发布于 2015-07-19 22:21:55
第一件事: PRNG (伪随机数发生器)不能提供一次的衬垫.
提醒:一次性便携版…
只有当四点都得到满足时,我们才是在谈论OTP。
您的PRNG想法无法满足这些参数,因为它既不是真正的随机,也不是纯文本。此外,当不使用CSRNG (加密安全随机数生成器)时,您一定要重用它,部分原因是常规PRNG算法的重复内部状态。
示例:您作为示例提到的“Mersenne”PRNG不是加密安全的。考虑到少量的输出,S比较容易计算出未来的所有产出。换句话说:S很有预见性,在密码学方面你什么也不想用。这样的算法不是为了密码安全而构建的!它们是专为蒙特卡罗模拟之类的东西设计的。
保持简短(并积极地忽略其他潜在问题,如缺少身份验证等):您的“密码”的安全性将与您的PRNG的安全性保持一致,这意味着您使用常规PRNG创建的任何内容都不能被认为是加密安全的。
老实说,当我看到经过良好审查的选项(各种加密安全流密码,许多安全块密码可以运行在CTR模式,等等)。我只想知道你为什么会考虑基于一些PRNG创建自己的、自制的解决方案。您可以相信这样一个事实:尝试基于简单的PRNG创建流密码是一个非常糟糕的想法。
同样适用于您的相关密钥生成思想,…。存在pbkdf解决方案是有原因的!
https://crypto.stackexchange.com/questions/27021
复制相似问题