openssl RAND_add()文档引用了RFC1750.RFC1750对此事保持沉默
openssl RAND_add() documentation refers to RFC1750. RFC1750 is silent on the matter
openssl库的RAND_add
函数的文档中有关于熵参数的说明:
熵自变量是对buf中包含多少随机性的估计(的下界),以字节为单位。关于随机性来源以及如何估计其熵的详细信息可以在文献中找到,例如RFC 1750。
来源:http://linux.die.net/man/3/rand_add
RFC 1750可以在这里找到:https://www.rfc-editor.org/rfc/rfc1750.html
但它当然对";熵";(文本搜索显示该单词在文档中没有出现)。
以下是我的问题:
- 熵的论点具体应该是对什么的衡量
- 有效的值范围是多少(参数的类型为double)
非常感谢。
熵的论点具体应该是对什么的衡量?
输入对攻击者来说是多么的不可预测。
的有效值范围是多少(参数类型为double)
该值应该是攻击者需要猜测输入内容的猜测次数除以8的自然对数。这基本上与输入包含的熵的字节数相同。
它可能不使用这个词,但整个RFC都是关于熵的。它使用了"不可预测性"这个词。
根据;人;您引用的页面:
http://linux.die.net/man/3/rand_add
当num==熵时,RAND_Sed()等效于RAND_add()。
以下是关于";熵";自变量:
https://www.mail-archive.com/openssl-dev@openssl.org/msg09806.html
Lutz Jaenicke写道:
熵参数应该说明;不确定性";位于提供的数据。
如果我们选择一个值0,我们的意思是其中可能有熵,但是也许攻击者可以预测该值,所以我们使用它,但不计算它是一个非常不可预测的输入。
那么,如果我们知道每个字符(字节)的熵,正确的是什么推导熵参数正确值的公式?
如果熵是10%(压缩比1:10);数字字节的*10%";。
请再次注意,压缩比只是压缩消息中的信息量。如果我们不知道消息,它或多或少等于其中的熵(不可预测性)。如果消息是已知的,熵(从视图)为零!因此,这是一个艰难的决定用压缩大小估计来自源的熵有点像上限。
换句话说,如果你的缓冲区是";"完全随机";,则熵==bufsize。
最后,rand_add()手册页中引用的RFC 1750已被RFC 4086:所取代
https://www.rfc-editor.org/rfc/rfc4086