Random 催芽过程中PRNG种子的随机变化

Random 催芽过程中PRNG种子的随机变化,random,Random,我使用XOR one time pad为私有本地存储使用自制的python脚本。密钥文件是使用python的“随机”内置模块提供的PRNG生成的。由于PRNG中种子的大小受到限制,可能的种子数量也受到限制,因此引入了一个针对暴力攻击的弱点,即计算工具的能力不断增强。 如果每两个字节随机更改一次种子,是否会增加脚本的强度(例如)? 脚本变慢了,但在我的情况下这不是问题 fct used:SystemRandom().randint(0255)SystemRandom-这是可选的,可能不存在-使用操

我使用XOR one time pad为私有本地存储使用自制的python脚本。密钥文件是使用python的“随机”内置模块提供的PRNG生成的。由于PRNG中种子的大小受到限制,可能的种子数量也受到限制,因此引入了一个针对暴力攻击的弱点,即计算工具的能力不断增强。 如果每两个字节随机更改一次种子,是否会增加脚本的强度(例如)? 脚本变慢了,但在我的情况下这不是问题


fct used:SystemRandom().randint(0255)

SystemRandom
-这是可选的,可能不存在-使用操作系统的随机数生成器,根据其对Python 3的作用

由于PRNG中种子的大小有限,因此可能的种子数量也有限,因此在计算工具不断增强的能力方面引入了一个针对暴力攻击的弱点

这是不正确的,因为
SystemRandom
也依赖于操作系统收集的熵。任何种子都通常混合到状态中,因此添加到随机数生成器收集的熵中

但是,请注意文档中的以下内容:

因此,
seed()
jumpahead()
方法没有效果,被忽略

因此,即使运行时/库通常支持添加种子,也不可能将种子添加到熵池中

顺便说一句,
SystemRandom([seed])
调用中的初始种子会发生什么,从文档中完全不清楚,但是您似乎无论如何都不会使用它


请注意,您说过可以每2个字节“随机更改种子”。如果该种子确实是随机的,那么您可能希望将其用作OTP。如果随机数据流的质量取决于不同随机数流的随机性,那么会发生一些奇怪的事情

幸运的是,在大多数系统上,系统的随机数生成器都是安全的,无论您是否自己进行种子设定


OTP几乎从来都不是正确的答案。尝试使用诸如ChaCha20之类的流密码。

如果您是通过算法生成密钥的,那么您不是在使用一次性键盘。如果可以从种子生成流,则可以节省存储空间,并根据需要生成流。