它似乎(对于非专家)/dev/random
被认为可用作纯随机数据的来源。但是,我对文件的分析感到好奇/dev/random
。
/dev/random
是来自硬件的噪声数据的收集点。随着从硬件中收集到更多的噪音,文件会被扩展;随着新噪声的添加,旧数据会四处移动,因此整个文件代表一种熵源。
我将假设它/dev/random
只会使用一次,以避免重复使用一次性垫所引起的问题。然后有一件事困扰着我——熵是如何估计的。我对以下问题本身的答案不太感兴趣,而对过去的研究是否考虑了这些问题并提供了任何相关信息更感兴趣。
文件中熵的位数是如何计算的?我怀疑它不是文件的大小,因为stat
和ls -s
return 0
,但熵的位数在/proc/sys/kernel/random/entropy_avail
. 它是否类似于除了位本身之外无需学习任何东西即可获得的位数?
我并不真正理解源代码或 Gutterman 等人的解释。我怀疑人们无法准确地计算出这个值。entropy_avail
但是,可以保证如果我从 中读取的位数少于/dev/random
,那么该字符串中的熵大约是字符串的长度吗?换句话说,是entropy_avail
可以从读取中获得的随机位数的保守下限的值/dev/random
吗?
我很想参考最后一个!