为了账号安全,请及时绑定邮箱和手机立即绑定

2018年secrets模块的默认熵还够用吗?

2018年secrets模块的默认熵还够用吗?

Helenr 2021-09-02 17:17:48
在文档中它说:截至 2015 年,相信 32 字节(256 位)的随机性足以满足 secrets 模块预期的典型用例。下面有一个注释:注意:该默认值随时可能更改,包括在维护版本期间。并且您可以在Python 3.7的源代码中看到 32 字节仍然是默认值。DEFAULT_ENTROPY = 32 # number of bytes to return by default安全吗?是否有更改或重新评估此设置的时间表?
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

熵问题的答案是,是的,256 位的秘密不能被暴力破解,也不会很快变得实用。

但是,您将需要对非对称加密算法使用更大的密钥。预测这些类型的密钥有多强也更难。密钥强度和密钥长度并不总是相同的。(256 位 RSA 没有 256 位的强度。)非对称算法的世界比对称算法更具有军备竞赛的品质。

我经常看到与比特币哈希率或 DES 破解硬件相关的蛮力工作。您不能将用于这两个目的的性能指标直接转换为针对其他算法的强力性能指标,但我们可以将它们用于估计目的。

看起来比特币 2018 的峰值估计哈希率约为每秒 6000 万个 terra-hash。为了便于计算,让我们将每秒60 * 10 6+12 个散列四舍五入到 2 的下一个幂 2 66

现在让我们假设

  • 我们提高了硬件的效率。假设某些新技术在使用相同能量的情况下完成的工作量是现代硬件的 100 万倍。

  • 人类设法以某种方式产生了百万倍的电力。(也许使用融合或魔法。)

  • 假设我们获得了新技术并且我们的计算机时钟速度增加了 100 万倍。

  • 我们的 GPU 的内核数是其一百万倍,或者我们可以将计算机尺寸缩小相同的倍数。

  • 人类居住在其他恒星系统中,我们的人口增加了一百万。

  • 每个人都可以买得起一百万倍于现在的计算机,他们都想猜出你的 256 位秘密。

让我们假设每个改进都是正交的,并且我们的蛮力与所有这些改进成线性比例。让每个一百万四舍五入到 2 20。我们的新性能指标是每秒2 66+6(20) = 2 186 次猜测。测试每个可能的 256 位值需要多长时间?

需要 2 256 / 2 186 = 2 256-186 = 2 70秒。那是超过37 万亿年。比大爆炸以来经过的时间长数千倍。所以使用 256 位熵是相当保守的。

(以我们目前在现实世界中拥有的技术和资源,我们甚至无法暴力破解 128 位机密。)

量子计算机并不是对称算法的一个大问题。如果我们使用 256 位对称密钥,那么它仍然需要使用Grover 算法进行 2 128 次函数评估。然而,它可以合理地假设成本ñ评估量子计算机上的至少成本ñ经典计算机上的评价。

如果您生成许多随机值并希望每个值都是唯一的,则您需要使用两倍于您认为由于生日问题而可能需要的位数。对 k 位哈希函数的通用碰撞攻击成本大约相当于 2 k/2哈希函数评估。对于量子计算机,它可能是 2 k/3。(所以不要混淆密钥长度和哈希函数输出长度。)

这些通用攻击具有理想的功能。特定的算法可能会被“破解”,这意味着发现了比蛮力更好的攻击。

重要的是,您生成的任何秘密都是使用不可预测的输入得出的。如果你想要一个n位的安全级别,你需要有n 位的熵。(因此您不能使用 Mersenne Twister 或 PCG,也不能使用系统时间或密码初始化您的 RNG。)

256 位的熵在 2018 年是好的,除非出现不可思议的科幻般的技术进步或魔法,否则在 3018 年仍然是安全的。


查看完整回答
反对 回复 2021-09-02
?
互换的青春

TA贡献1797条经验 获得超6个赞

是的,256 位仍然被认为足够了。

请参阅 Bruce Schneier 的文章中的部分 - “警告标志 #5:可笑的密钥长度”:

更长的密钥长度更好,但仅在一定程度上。AES 将具有 128 位、192 位和 256 位密钥长度。这比可预见的未来所需的时间要长得多。事实上,我们甚至无法想象一个可以进行 256 位蛮力搜索的世界。它需要在物理学和我们对宇宙的理解方面取得一些根本性的突破。对于公钥密码学,2048 位的密钥具有相同的属性;再长是没有意义的。

有关更多详细信息,请阅读RFC 4086 - 安全随机性要求

3.1. 所需体积

对于 AES,密钥可以是 128 位,并且,正如我们在第 8 节中的示例所示,即使是最高安全性系统也不太可能需要超过 200 位的强密钥材料。

此外,- 你仍然需要一个很好的随机源。这是与密钥长度不同的因素。


查看完整回答
反对 回复 2021-09-02
  • 2 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信