一种基于规整元胞自动机的伪随机数生成方法

文档序号:7809996阅读:457来源:国知局
一种基于规整元胞自动机的伪随机数生成方法
【专利摘要】本发明公开了一种基于规整元胞自动机的伪随机数生成方法包括步骤:首先令规整元胞自动机的长度为256个元胞,并设定演化规则;其次设置密钥以及所需伪随机序列长度L;再次将密钥作为规整元胞自动机的初始全局状态,规整元胞自动机前向迭代产生不同时刻的全局状态,取被4除余1的时刻的全局状态作为二进制序列输出,直到输出的二进制序列长度大于或等于L则停止迭代;最后若二进制序列长度等于L则将该二进制序列直接作为伪随机序列输出,若二进制序列长度大于L则将长度L之后的比特舍去后作为伪随机序列输出。本发明采用规整元胞自动机设计伪随机序列发生器,不仅能够获得高质量的伪随机序列,而且具有逻辑结构简单、易于软硬件实现等优点。
【专利说明】—种基于规整元胞自动机的伪随机数生成方法

【技术领域】
[0001]本发明涉及一种基于规整元胞自动机的伪随机数生成方法,属于信息安全领域中的密码产生技术。

【背景技术】
[0002]随机数发生器具有许多用途,比如应用于加密设备、Monte Carlo模拟、内建自测试电路等。在过去的几十年,元胞自动机已被广泛应用于随机数发生器。元胞自动机固有的简单性、规整性和计算并行性等特点,使其在硬件实现时比其它模型更容易并且更快速。
[0003]元胞自动机可以分为规整元胞自动机和非规整元胞自动机。规整元胞自动机的所有元胞遵循相同的演化规则,而非规整元胞自动机中每个元胞可以拥有不同的演化规则。Wolfram第一个提出了使用规则30的一维规整元胞自动机产生伪随机序列,但不久就被Miere等人破译,指出当密钥长度为300至500比特之间,采用已知明文攻击可恢复密钥。随后,许多研究者采用非规整元胞自动机设计伪随机序列发生器。例如,Hortensius等人对规则30、45、90和150元胞自动机生成的伪随机数进行了研究,发现由规则90和150组成的非规整元胞自动机生成伪随机序列周期最大。Sipper等人提出用遗传算法来实现非规整元胞自动机规则的搜索,让计算机自动寻找到最优的元胞自动机组合规则以构造伪随机数发生器,从而避免了以前手动方法的烦琐。然而,采用非规整元胞自动机生成伪随机序列时,规则的组合和邻居的数量必须谨慎选择才能获得良好的随机性。


【发明内容】

[0004]本发明所要解决的技术问题是提供一种基于规整元胞自动机的伪随机数生成方法,与非规整元胞自动机相比,规整元胞自动机由于只需要一个演化规则因此在软硬件实现上更为简单并且所需的存储空间更少。
[0005]本发明为解决上述技术问题采用以下技术方案:
[0006]本发明提供一种基于规整元胞自动机的伪随机数生成方法,具体实施步骤如下:
[0007]步骤1:令规整元胞自动机的长度为256个元胞,该规整元胞自动机的演化规则如下:
[0008]-
=(? ? ? Θ s;+1 ? s.+2 ? 0;—2 -s')? (si,.s.■ sl+1) Θ (s._2 ■(丨.St1.s;+1)
[0009]式中,f (.)为布尔函数;彳为第i个元胞在t时刻的状态,i的取值为1-256,Si1为第1-Ι个元胞在t时刻的状态,为第i_2个元胞在t时刻的状态,^ !力第i+Ι个元胞在t时刻的状态,Stn2为第i+2个元胞在t时刻的状态,St;1为第i个元胞在t+Ι时刻的状态,所述状态的取值为O或I ;?是异或运算符,?是与运算符,-是非运算符;元胞的边界采用周期型,即 sO = S2S6,S-l= A ^ S251 = ,S2SH = ;
[0010]步骤2,设置密钥K,密钥K为256比特的二进制序列kAh,k256 ;同时,设置需要产生的伪随机序列长度为L比特;其中,L为正整数;
[0011]步骤3,将密钥K作为规整元胞自动机在t = O时刻的全局状态彳,规整元胞自动机根据步骤I中的演化规则向前迭代,依次产生不同t时刻的全局状态
■’取被4除余I的时刻的全局状态作为二进制序列输出,当输出的二进制序列长度大于或等于L比特时规整元胞自动机停止迭代;
[0012]步骤4,若步骤3中规整元胞自动机输出的二进制序列长度等于L比特,则将该二进制序列直接作为伪随机序列输出;若规整元胞自动机输出的二进制序列长度大于L比特,则将长度L之后的比特舍去后的二进制序列作为伪随机序列输出;从而完成伪随机数的生成。
[0013]本发明采用以上技术方案与现有技术相比,具有以下技术效果:
[0014]本发明与非规整元胞自动机相比,采用规整元胞自动机设计伪随机序列发生器,不仅能够获得高质量的伪随机序列,而且由于只需要一个演化规则因此在软硬件实现上更为简单,所需的存储空间更少。

【专利附图】

【附图说明】
[0015]图1是本发明的一个实施例的伪随机序列生成步骤图。
[0016]图2是规整元胞自动机迭代15625次的过程图。

【具体实施方式】
[0017]下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0018]本【技术领域】技术人员可以理解的是,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
[0019]本【技术领域】技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
[0020]下面结合附图对本发明的技术方案做进一步的详细说明:
[0021]在本发明一种基于规整元胞自动机的伪随机数生成方法的一个实施例中,需要产生1000000比特的伪随机序列,依据本发明的技术方案,按照以下步骤进行,如图1所示。
[0022]步骤1:令规整元胞自动机的长度为256个元胞,该规整元胞自动机的演化规则如下:
^r1 =/(d,《K+2)
[0023]-
=S^1 Θ Sti θ s(+1 θ Sl1 θ (β\—2 -^)θ (S丨—i.S1i.S。) ? ((2.A.S1i.‘ )
[0024]式中,f (.)为布尔函数;4为第i个元胞在t时刻的状态,i的取值为1-256,Sil为第1-Ι个元胞在t时刻的状态,^力第i_2个元胞在t时刻的状态,^ +L力第i+Ι个元胞在t时刻的状遠、与第i+2个元胞在t时刻的状态,5;+1为第i个元胞在t+Ι时刻的状态,所述状态的取值为O或I ;“θ”是异或运算符,“ ?”是与运算符,是非运算符;元胞的边界米用周期型,即 sQ = S256,I = S2SS,S257 = 5I,^258 = Λ2。
[0025]步骤2:设置密钥K,密钥K为256比特的二进制序列kAh,k256 ;同时,设置需要产生的伪随机序列长度为1000000比特。
[0026]步骤3:将256比特密钥二进制序列k” k2, k3,...,k256作为规整元胞自动机在t = O时刻的全局状态...,K56,规整元胞自动机根据步骤I中的演化规则前向迭代,如图2所示,依次产生不同时刻的全局状态取被4除余I的时刻的全局状态,即t = 1,5,9,13,…时刻的全局状态
?4,..”456、、S?】,…,S。、6?3,…,A...,作为二进制序列输出 ο
[0027]当t = 15625 时亥lj,由 t = 1,5,9,13,...,15625 时亥Ij 的全局状态
C1C5y5C.5 士C9C%9 J>ClVV3 t1315625 15625 1562515625
Λ--3,".,-56、 31,…,?256、?,?256、?2 ,…,)256 Λ …、t5I,…,0256
组成的二进制序列长度为1000192比特,该长度大于需要产生的伪随机序列长度1000000比特,因此规整元胞自动机停止迭代。此时,规整元胞自动机取 t = 1,5,9,13,...,15625 时刻的全局状态…,46、办、
sy2sl...,S9256、氺.....WW,..:作为二进制序列输出。
[0028]步骤4,由于步骤3中规整元胞自动机输出的二进制序列长度为1000192比特,大于所需产生的伪随机序列长度1000000比特,则取输出的二进制序列中的前1000000比特作为伪随机序列输出;从而完成伪随机数的生成。
[0029]下面对本发明一种基于规整元胞自动机的伪随机数生成方法提出的方法进行随机性测试。
[0030]目前,已有的随机性测试方法不下百种,其中比较有代表性的是美国国家标准与技术研究所(NIST)公布的SP800-22标准,该标准提供了一个统计测试套件STS (Statistical Test Suite),它是一个统计软件包,共包含了 15种不同的检验方法,分别为单比特频数检验、块内频数检验、游程检验、块内最长游程检验、二元矩阵秩检验、离散傅里叶变换检验、非重叠模块匹配检验、重叠模块匹配检验、Maurer通用统计检验、线性复杂度检验、序列检验、近似熵检验、累加和检验、随机游动检验、随机游动状态频数检验。这些检验方法可测试任意长二进制序列的随机特性,主要致力于判定可能存在于序列中的多种多样的非随机性。
[0031]在测试过程中,我们首先利用上述基于规整元胞自动机的伪随机数生成方法产生长度为1000000比特的伪随机序列,将长度1000000比特的伪随机序列分割成100个长度为10000比特的伪随机序列,然后采用NIST STS(Vers1n 2.1.1),每一种检验方法对于每一个序列均会产生相应的概率值P-value, P-value是属于O?I之间的数,将P-value和选取的显著性水平(α = 0.01)对比,如果P-value彡α,则认为该序列成功通过此项测试。NIST采用两种方法判定一个输出序列是否随机,分别是通过率和P-value的分布。
[0032](I)通过率
[0033]通过率是指通过序列占所有检验序列的比例。这里引入统计学中的置信区间理论,它定义为:多±3^^^,其中,? 1 α为显著性水平,m为序列个数。
Vmp = l-a,
[0034]若测试的通过率落入置信区间内,则可以认为所测算法产生的序列是随机的。以本文选取的显著性水平α = 0.01为例,如果序列个数m为100,那么置信区间就是
(1-0.01)±3、(1 — 0.01 )0-Θ 1 = 0,99士0.02985 ,即[0.96015,1.2885]。
V100
[0035](2) P-value 的分布
[0036]因为真随机序列的P-value服从均匀分布,所以可以根据P-value值分布的均匀性来描述随机特性。由于P-value是属于O?I之间的数,因此将区间[0,I]平均等分为 10 个子区间:[0.0, 0.1),[0.1, 0.2),[0.2,0.3),[0.3,0.4),[0.4,0.5),[0.5,0.6),[0.7,0.8),[0.8,0.9),[0.9,1.0],当序列足够多时,P-value 应平均分布在这10个区间内,统计P-value在每个子区间出现的频数,记为Fi, i = 1,2,3,...,10,若序列个数为m,则有F1+F2+...+F10 = m,计算统计量Z」=Σ^ '匕咐。然后再计算



卜丨 ml \ ()
9Y2、
P-valuc, = igamc(—,—),其中,igamc 是不完全 Gamma 函数。若 P_valueT ^ 0.0001,则认为
2 2
P-value服从均匀分布,序列是随机的。
[0037]如表I所示,给出了 NIST测试结果。从结果能够看出,15项检验的通过率均落在置信区间[0.96015,1.2885]之中,并且所有的P_valueT大于0.0001,这说明基于规整元胞自动机的伪随机数生成方法产生的伪随机序列具有良好的随机性。
[0038]表I NIST测试结果
[0039]

【权利要求】
1.一种基于规整元胞自动机的伪随机数生成方法,其特征在于,所述方法包括以下处理步骤: 步骤1:令规整元胞自动机的长度为256个元胞,该规整元胞自动机的演化规则如下: s 1 =/(d ^ K)
=(I ? sI Φ sL ? ? ((2.4 ) ? (sIl.S>1.sL ) ? ((2.4—1.sI s.) 式中,f (.)为布尔函数;4为第i个元胞在t时刻的状态,i的取值为l-25b ^为第1-1个元胞在t时刻的状态,Stl 2为第1-2个元胞在t时刻的状态,s;+l为第i+Ι个元胞在t时刻的状态,为第i+2个元胞在t时刻的状态,?;+Ι为第i个元胞在t+Ι时刻的状态,所述状态的取值为O或I ;@是异或运算符,.是与运算符,-是非运算符;元胞的边界采用周期型,即 sO = S256,I = ^255 , S257 = ’ ^258 = S2 ; 步骤2,设置密钥K,密钥K为256比特的二进制序列kik2k3,k256 ;同时,设置需要产生的伪随机序列长度为L比特;其中,L为正整数; 步骤3,将密钥K作为规整元胞自动机在t = O时刻的全局状态,七°56,规整元胞自动机根据步骤I中的演化规则向前迭代,依次产生不同t时刻的全局状态;取被4除余I的时刻的全局状态作为二进制序列输出,当输出的二进制序列长度大于或等于L比特时,规整元胞自动机停止迭代; 步骤4,若步骤3中规整元胞自动机输出的二进制序列长度等于L比特,则将该二进制序列直接作为伪随机序列输出;若规整元胞自动机输出的二进制序列长度大于L比特,则将长度L之后的比特舍去后的二进制序列作为伪随机序列输出;从而完成伪随机数的生成。
【文档编号】H04L9/20GK104135363SQ201410362589
【公开日】2014年11月5日 申请日期:2014年7月28日 优先权日:2014年7月28日
【发明者】平萍, 毛莺池, 吕鑫, 许峰, 王志坚 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1