我想为一个大状态PRNG (基于xorshift1024)构建一个种子器,并一直在考虑使用使用多个256位密钥的Aes Ctr,其中计数器被多次加密(类似于3 3DES)。
这是否会以任何方式降低Aes Ctr的统计质量?安全性不是问题,但是产生的随机数序列的唯一性是。我之所以考虑Aes,是因为它内置于.net和mono中。
发布于 2018-12-22 00:25:44
没有必要超出256位的安全性。如果您想要组合多个键--大概是因为您不确定它们是否提供足够的安全性--那么您可以将它们连接起来,并将它们用作提供提取和扩展的KBKDF的输入密钥材料(例如HKDF)。然后,输出可以用来为您的PRNG添加种子。
似乎您正在尝试使用CTR模式构建自己的KDF。这样的KDF已经存在,但它们通常不提供熵的提取,只是静态大小(128,192或256位)键控材料的扩展。证明你的方案确实能很好地提取熵,这是很难实现的。
使用HKDF的唯一缺点是,键控材料必须在内存中才能执行计算;您应该确保这是(1)可能的,(2)可能的。这个缺点有多大取决于情况。
发布于 2018-12-21 05:58:55
如果我正确理解了您的问题,您希望使用AES -CTR加密的输出作为具有1024位状态的PRNG的种子(因此您需要加密的四个输出)。
因此,如果您使用四种不同的AES密钥加密四倍于零的字符串,并将输出连接起来,这将为您的PRNG提供一个统计上的好的和唯一的种子。
https://crypto.stackexchange.com/questions/66032
复制相似问题