首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PRNG利用超大型种子

PRNG利用超大型种子
EN

Cryptography用户
提问于 2012-07-17 12:10:15
回答 4查看 1.3K关注 0票数 2

谁能提出一个好的(CS)PRNG算法,利用一个非常大的(理想的任意大的)种子?我想使用几千字节,也许是几百千字节的随机数据来生成几十兆字节的PRNG输出。我所知道的PRNG算法只需要相对较小的种子:我想充分利用我所拥有的随机输入数据。

EN

回答 4

Cryptography用户

回答已采纳

发布于 2012-07-24 18:55:52

您正在做的事情听起来很像许多系统上的/dev/随机和/dev/urandom珠三角:这些系统接受任意大的数字序列(如果有真正的硬件随机数发生器,或者来自环境噪声,如击键定时),并将其输入CSPRNG;输出通过/dev/随机和/dev/urandom提供。

也许您可以以某种方式提取其中任何一个系统的源代码实现,并使用户级的变体,而不是从环境源获得的输入,只从您的大种子输入。

  • 使用FreeBSD和AIX实现/dev/ 雅罗算法随机
  • OpenBSD使用基于RC4的算法实现/dev/随机(这与艾萨克相同吗?)
  • 福图纳
  • 我的理解是,许多其他CSPRNG实现都有一种方式来提供更多的熵。
票数 3
EN

Cryptography用户

发布于 2012-07-23 19:25:40

Barak和Halevi提议的PRNG应该能够满足您的需要并提供足够的安全性。

他们的PRNG有一个API next和refresh。refresh使用任意长的字符串,并使用它更新PRNG的内部状态。next返回一定数量的随机字节(如果需要更多字节,只需连续调用next )。

它们证明了它们的PRNG的一些非常好的特性(它们共同定义了PRNG的健壮性),并给出了具体的实现。

整篇论文绝对值得一读。

票数 3
EN

Cryptography用户

发布于 2012-07-29 07:26:21

别费神。以任何密码安全的CSPRNG为例。给它一个随机密钥(确保密钥长度至少为128位)。你的任务完成了。一旦密钥长度为128位左右,任何额外的长度都没有意义。

如果你有一个一千位的种子,先把它打散,把它缩小到你的CSPRNG键的正确大小--但是要确保你的种子中至少有那么多的熵。或者,更好的是,使用安全的伪随机数字生成器(如/dev/urandomCryptGenRandom )生成密钥。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/3257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档