随机数
统计学术语
随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
定义
随机数是专门的随机试验的结果。
统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。
产生随机数有多种不同的方法。这些方法被称为随机数生成器。随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无关系。
密码学范畴
根据密码学原理,随机数的随机性检验可以分为三个标准:
相应的,随机数也分为三类:
随机数在密码学中非常重要,保密通信中大量运用的会话密钥的生成即需要真随机数的参与。如果一个随机数生成算法是有缺陷的,那么会话密钥可以直接被推算出来。若果真发生这种事故,那么任何加密算法都失去了意义。
密码学中大量利用伪随机数生成器的应用还有流密码。流密码的著名例子是RC4。流密码的原理是利用一个密码学安全的伪随机数生成器根据密钥产生一串密码学安全的伪随机比特列,再将消息与上述随机比特列按位异或运算。
没有数学证明表示密码学安全的伪随机数生成器是确实存在的。其存在性证明涉及到P和NP的数学难题。
运用
真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等,这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。
使用计算机产生真随机数的方法是获取cpu频率与温度的不确定性以及统计一段时间的运算次数每次都会产生不同的值,系统时间的误差以及声卡的底噪等。
在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的发生器叫做伪随机数发生器
在真正关键性的应用中,比如在密码学中,人们一般使用真正的随机数。
C语言、C++、C#、Java、Matlab、PHP、C51等程序语言和软件中都有对应的随机数生成函数
参考资料
最新修订时间:2023-06-24 09:32
目录
概述
定义
密码学范畴
参考资料