随机模块的随机性与提供的种子之间的关系

时间:2016-01-03 05:39:33

标签: python random cryptography entropy

所以我试图获得一个加密强大的随机数生成器...事情是,由于某些原因,我仍然希望能够为生成器分配一个随机种子(它可以是一个相对较大的种子,如果但必要的。)

所以鉴于此...如果使用加密强随机生成器(如pycrypto的随机模块,或random.SystemRandom)为常规python随机模块生成随机种子,随机模块是否具有足够的随机性和熵被认为是密码学强的吗?

2 个答案:

答案 0 :(得分:2)

  

如果使用加密强随机生成器(如pycrypto的随机模块或random.SystemRandom)为常规python随机模块生成随机种子,随机模块是否有足够的随机性和熵可供考虑密码学强吗?

没有。无论你使用什么种子都不会将默认的伪随机数生成器(random.Random)变成密码学上强伪随机数生成器(random.SystemRandom)。请参阅PEP 0506 -- Adding A Secrets Module To The Standard Library

答案 1 :(得分:0)

我找到了手动获取随机数的绝佳来源:https://www.random.org/它们使用大气噪声生成随机数。此外,他们确实有一个API,所以也许这是一个选项。

就适用于加密目的而言,一般的智慧是依赖于“真正的随机性”,即优先于伪随机数生成器的硬件或物理随机源。您可以查看Diceware password generator了解某些背景信息。