作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我已经开始了一些工作,其中需要一些高质量的随机字节,例如一次 32 个用于某些加密应用程序的初始化向量。我的问题是,这可能会同时被多次调用,我无法承受 block /dev/random
问题来等待更多的熵收集。
我可以用它来播种其他算法,例如 /dev/urandom
可能做的事情 - 但是我不相信我无法理解的东西,我没有关于它的方法的任何现成资源我也不知道它在许多内核版本之间是否保持相同,我更喜欢某种定义明确的方法。
您是否知道您可以想到的超过标准 PRNG 的任何方法,这些方法足以用于(同时) key 生成等?
某些密码(例如带有大种子的 RC4)是否足以生成随机输出? (我见过一个使用它的/dev/frandom 实现,但我并不完全确定。)
如果这意味着什么,我在一个 headless 的 Debian 服务器上,这是缺乏熵收集的原因。
最佳答案
响应很简单:使用/dev/urandom
,而不是/dev/random
。 /dev/urandom
是加密安全的,不会阻塞。 /dev/random
相对于 /dev/urandom
的“优越性”仅存在于特定的理论设置中,如果随机字节仅用于大约任何“普通”密码算法,例如加密或签名。
参见 this了解更多详情。
(相信我,我是密码学家。)
关于linux - 比/dev/random 更快但在密码学上有用的 RNG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6949546/
我是一名优秀的程序员,十分优秀!