首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >白盒理论概念

白盒理论概念
EN

Cryptography用户
提问于 2020-10-02 05:43:25
回答 4查看 787关注 0票数 3

有什么理论上安全的白盒概念吗?

最近我一直在读关于白盒[123.]的文章.似乎白盒处理代码混淆,它不知道是否存在一个完美的白盒。

我对这背后的理论概念很好奇。对于流密码,理论上的概念是PRF。对于分组密码,它是PRP。对于散列函数,它是单向函数.有比白盒子更好的东西吗?

我正在寻找一些不一定实用的东西,但我们实际上可以证明这实现了完美的白盒,比如一个真正的置乱代码或什么的。

最新消息。我隐约记得在网上读到了一些东西

如果一个超级大内存存在,白盒是可能的。内存可以作为查找表加载,明文作为查找键,密文作为查找值。由于加密密钥不涉及查找表(以前曾用于创建查找表),因此无法恢复加密,但加密仍然是可能的。

但我找不到消息来源。有人知道这件事吗?

EN

回答 4

Cryptography用户

发布于 2020-10-02 06:53:43

注意:白盒密码技术已经超出了我的舒适范围,而且我还没有关注这一领域的最新发展。以下是我目前的观点,我希望看到它受到挑战,并在这个过程中学习。

在我看来,白盒密码学的传统目标(也是业界最想要的)是设计软件,用嵌入在软件中的秘密密钥的特定实例计算标准公钥加密转换(如键控PRP,理想的AES),这样软件泄漏就不会泄漏密钥。

我不知道有任何严肃的说法说,这甚至是接近实现的。相反,以AES为PRP的WBC竞赛集中在上述目标上,AFAIK都以快速密钥提取结束。

关于这一目标,我们似乎甚至没有实际安全的WBC,因此理论上更没有安全的WBC。与对称密码中的更好的情况相比,我们有实际的安全PRPs和PRF,但从理论上说,从基本原理上来说没有安全的构造。

但是,如果我们允许使用WBC构造带WBC的键式转换,那么上面定义的WBC的一个变体实际上是可行的:例如,将AES-256相似的WES-256的实际安全WBC实现是很简单的,定义为:

\begin{align} \text{WES-256}:\quad&\{0,1\}^{256}\times\{0,1\}^{128}\to\{0,1\}^{128}\\ &P\mapsto\text{WES-256}(K,P)\underset{\text{def}}=\text{AES-256}(\text{SHA-256}(K),P) \end{align}

如果采用这种不同的定义,那么WBC的安全性就来自于更传统的构造。

我的结论是,我对WBC的理论目标没有很好的定义,因此无法回答这个问题!

票数 6
EN

Cryptography用户

发布于 2020-10-02 07:28:15

因为我想我们把这当作一个密码问题,而不是逆向工程,所以我会给出一个正式的答案。

众所周知,白盒密码的目的是隐藏用于执行某些加密操作的密钥。这种系统的问题是,算法本身必须知道密钥;用不知道的密钥成功地加密或解密某些东西是非常困难的。

在算法知道用于执行加密操作的密钥的任何情况下,反向工程师可以从算法的内存中获取密钥。你可以试着阻止逆向工程师这样做,但是逆向工程不是NP-完全问题;对于一个拥有必要技能的人来说,这其实是相当容易的。

也许你没有加载钥匙,但是一些基于钥匙的单向操作.祝贺你!您只是使用了不同的密钥,并且没有更改任何安全属性。

假设您使用了一些输入,对其执行了一些难以理解的计算,并使用结果值作为键.祝贺你!你也什么也没做,因为反向工程师的全部工作是破译看似“无法破解”的代码,而且他们往往很擅长。

而且,没有什么能阻止他们简单地运行计算本身。他们不需要理解代码就能运行它。你可以尝试各种技术来阻止他们这样做,这就是所谓的反逆向工程。但无论在理论上还是实践上,它都无法阻止任何像样的逆向工程。

就在几天前,我受命逆向工程一个恶意软件样本,试图使用这样一个白盒系统来阻止我理解它的作用。我解密了示例中的每一个加密字符串,目前正在等待将反向工程示例上传到我的公共GitHub的审批。

总之,白盒密码不起作用。

票数 5
EN

Cryptography用户

发布于 2020-10-04 13:50:28

不是主要的答案,而是有用的东西。

有一个不可压缩性的概念,它要求很难有意义地压缩有意大的白盒实现。虽然对于现有的密码器很难实现,但是设计具有不可压缩实现的新对称密码是很容易的。

为什么?其主要思想可能是防止代码提升攻击:比如说,从手机中提取1GB比128位密钥难得多。尤其是在一次大规模的攻击中,比如说,恶意软件。当然,在实践中,业界不愿意使用这样的实现,因为没有人愿意白白吃1GB的存储。

多么?例如,考虑一个Feistel网络,其中Feistel函数是截断的AES实例(使用主键,或者更好地从中派生)。在不可压缩的实现中,我们将把这个函数作为一个查找表(我们将其截断以具有任何所需的大小)。不难证明,压缩方案隐含着AES的非随机性,因此不可压缩性降低到AES的安全性。

一些参考资料:

  1. Delerablée等人对称加密方案的白盒安全概念。https://ia.cr/2013/523
  2. Biryukov等人基于and结构的加密方案:黑匣子、白盒和公钥https://ia.cr/2014/474
  3. Bogdanov等人重温白盒密码学:空间硬密码。
  4. Bogdanov等人走向实用的白盒密码:优化效率和空间硬度。https://www.iacr.org/archive/asiacrypt2016/10031190/10031190.pdf
  5. Fouque等人高效且可证明的白盒基元。https://ia.cr/2019/329
  6. Cho等人。WEM:一种新的基于偶数Mansour结构http://www.cs.haifa.ac.il/~orrd/crypt/WEM.pdf的白盒分组密码
  7. Bock等人不可压缩白盒密码学https://ia.cr/2019/329的双半内射PRGs
  8. Koike等人银河:基于流密码的空间硬密码家族
票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/84303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档