关于随机数
一般来说随机数在系统中用于生成对称密钥,所以随机数在安全中的地位至关重要,由于系统或者硬件的因素,生成真实的随机数存在着性能上的问题,对于服务端来说,一次生成大量的真随机数比较困难,实际应用中都是把真随机数作为种子+随机数生成算法生成大量的随机数,称为伪随机数。
为了保证伪随机数的安全性,防止被预测,对于种子是由相应的要求的。
1)熵(Entropy):在封闭系统中衡量无序、随机或差异性的量度,在信息论中,一个
离散随机变量的熵定义为:
其中的pi是各事件发生的概率。
2)熵源(Entropy Source):不可预测数据流的源。不一定满足均匀分布,熵源包括噪
声源,例如热噪声或者硬盘寻道时间,数字化过程,评估过程,选择性条件化过程和健康
度测试等等。
3)健康度测试(Health Testing):在运行中或者之前测试和验证算法实现工作情况是
否符合预期设计要求。
4)内部状态(Internal State):确定性随机数产生器初始化以后存储在其中的信息集合。
5)时间随机数(Nonce):一个基于时间变化的变量,几乎不可能重复,例如时间戳
等
6)个性化字符串(Personalization String):一个可选的字符串,混合了秘密输入和时
间随机数,用于产生随机数种子。
7)安全强度(Security Strength):一个与破解密码系统需要进行的操作数相关的数字。
在这个标准中,该数字为(112、128、192、256)集合中的一个,需要进行的操作数为
2Security_Strength。
8)种子(Seed):一个字符串用于确定性随机数产生器系统的输入,它决定了确定性
随机数产生器的部分内部状态,它的熵值必须足以满足系统安全强度的要求。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
