1、一维均匀分布随机数序列的产生方法引言:随机数序列主要应用于序列密码(流密码)。序列密码的强度完全依赖于序列的随机性与不可预测性。随机数在密码学中也是非常重要的,主要应用于数字签名(如美国数字签名标准中的数字签名算法)、消息认证码(如初始向量)、加密算法(如密钥)、零知识证明、身份认证(如一次性 nonce)和众多的密码学协议。关键词:随机数、随机数序列、均匀分布一、随机数及随机数序列的简介在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。产生随机数有多种不同的方法。这些方法被称为随
2、机数发生器。随机数最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。随机数序列分为真随机数序列与伪随机数序列,随机数分为真随机数和伪随机数。真随机数序列从真实世界的自然随机性源产生,办法是找出似乎是随机的事件然后从中提取随机性,如自然界中的抛币。在计算机中噪音可以选取真实世界的自然随机性,如从计算机时钟寄存器中取得本机的当前系统时间到秒(或微秒)级的数值,测量两次击键的时间间隔,相邻两次鼠标移动的时间间隔以及由计算机硬件报告的鼠标实际位置等。伪随机数序列用确定的算法产生,不是真正的随机数序列。伪随机数序列发生器指使用短的真随机数序列(称为种子)x 扩展成较长的伪随机数序列 y。在密
3、码学中伪随机数序列的使用大大减少了真随机数序列的使用,但不能完全取代真随机数序列的使用(如种子)。通常,我们需要的随机数序列应具有非退化性、周期长、相关系数小等优点。二、一维均匀分布的简介设连续型随机变量 X 的分布函数为 F(x)=(x-a)/(b-a),axb,则称随机变量 X 服从a,b上的均匀分布,记为 XUa,b。若x1,x2是a,b的任一子区间,则 Px1xx2=(x2-x1)/(b-a),这表明 X 落在a,b的子区间内的概率只与子区间长度有关,而与子区间位置无关,因此 X 落在a,b的长度相等的子区间内的可能性是相等的,所谓的均匀指的就是这种等可能性。三、一维均匀分布随机数序列
4、的产生方法1、迭代取中法: 这里在迭代取中法中介绍平方取中法,其迭代式如下:22nn2+1=/10)(mod)ssXR(其中, 是迭代算子,而 则是每次需要产生的随机数。nnR第一个式子表示的是将 平方后右移 s 位,并截右端的 2s 位,而第二个X式子则是将截尾后的数字再压缩 2s 倍,显然: 0 1。1nR但是,迭代取中法有一个缺点,即它比较容易退化成 0。平方取中法的实现结果:前 96 个测试生成的随机数序列:0.399000 0.920100 0.658400 0.349000 0.180100 0.243600 0.934000 0.235600 0.550700 0.327000
5、0.692900 0.011000 0.012100 0.014600 0.021300 0.045300 0.205200 0.210700 0.439400 0.307200 0.437100 0.105600 0.115100 0.324800 0.549500 0.195000 0.802500 0.400600 0.048000 0.230400 0.308400 0.511000 0.112100 0.256600 0.584300 0.140600 0.976800 0.413800 0.123000 0.512900 0.306600 0.400300 0.024000 0.0
6、57600 0.331700 0.002400 0.000500 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.0000
7、00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 从上述数据容易看出其易退化成 0 的缺点。2、乘同余法:乘同余法的迭代式如下:n+1=LamdX(od)/nnXMR各参数意义及各步的作用可参见 1当然,这里的参数的选取是有一定的理论基础的,否则所产生的随机数的周期将较小,相关性会较大。经过前人检验的
8、两组性能较好的素数取模乘同余法迭代式的系数为:1) ;535,21lamdM2) 。73、混合同余法:混合同余法是加同余法和乘同余法的混合形式,其迭代式如下: 1%/n nnXLamdXMiuR经前人研究表明,在 的条件下,参数 按如下选取可保2q0,lamdiuX证周期较大,概率统计特性好:+102(3)/cLamdMiuX, 取 附 近 的 数为 任 意 非 负 整 数但是,仔细研究可以看出它的一个致命的弱点,即随机数的生成在某一周期内成线性增长的趋势,显然,在大多数场合,这种极富“规律”型的随机数是不应当使用的。4、反函数法:当随机变量为连续型时,可以用到反函数法。采用概率积分变换原理,
9、对于随机变量 X 的分布函数 F(X)可以求其反函数。ii=XGR( )其中, 为一个 0-1 区间内的均匀分布的随机变量。iF(X)较简单时,求解较易,当 F(X)较复杂时,需要用到较为复杂的变换技巧。对于均匀分布,例子如下:已知炮弹对目标的方位角 在 内均匀分布,试用(0,1)均匀随机数iF-2变换,模拟弹着点方位角的抽样值 。i解: ()/(2)iiRF则 ,其中,R 为 0-1 区间上的均匀分布的随机数。iG由于这里相当对 0-1 上的分布进行线性变换,所以变换后仍呈均匀分布是显然的。四、心得体会通过这次的小论文,我深切地感受到要生成符合要求的随机数序列,绝不是一件很轻松的事,除了要有
10、相当的知识储备外,更应当有严谨求实的态度;否则,光凭主观感觉说某些随机数的随机性好,是会在实际应用中是要栽跟头的。伪随机序列作为一种信号形式,具有良好的相关特性,可作为雷达测距、同步和线性系统测量的信号。它还具有伪随机性,因而可用于加密系统和伪随机跳频等场合。伪随机序列应用广泛,在今后的学习生活中,我免不了会与其打交道,这次的小论文让我了解了伪随机序列并且对伪随机序列有了较为深刻的认识。参考文献: 1王可定.计算机摸拟及其应用.南京:东南大学出版社,1997.2宋立新.概率论与数理统计.北京:人民教育出版社,2008.3林元烈,梁宗霞.随机数学引论.北京:清华大学出版社,2003.4陈智雄.伪随机序列的设计及其密码学应用.厦门:厦门大学出版社,2012.5肖国震.伪随机序列及其应用.北京:国防工业出版社,1985.