随机数产生装置和方法

文档序号:6476277阅读:313来源:国知局
专利名称:随机数产生装置和方法
技术领域
本发明是有关随机数产生装置及其方法。
背景技术
随机数被用于各种应用领域。例如计算机模拟,取样,数值解 析,编程,决策,加密,美术,娱乐等。为此,学者们提出了很多随 机数产生法。随着计算机的高速化,使得其所需要的随机数也大为增 加,进而要求随机数产生器能对应此需要。
而在另一方面,能以简单的结构来产生具有复杂的变化的数列的
混沌随机数产生方法被人们所期待。自Von Neumann等提出用式1来 产生随机数以来,很多学者发表了用式1来产生随机数的研究报告。 式(l)
(0<jc, <1, f = 0,1,2")
非专禾U文献1: Ulam,S.M. and Von Neumann, J., "On Combination of Stocastic Determistic Processes", Bull. AMS., Vol. 53, p.ll20(1947)在此 文献中,提出了用式(l)来产生随机数。
非专利文献2:香田徹 柿本厚志,'^擬似乱数i力才义,,,情 報処理学会論文誌A, Vol. 27No. 3pp. 289 — 296 (1 9 8 6 )。此文献中,作者指出将阈值取为0.5时,用式(l)产生的 随机数具有高的质量,但其计算式(l)一次只输出1比特的随机数。所 以有着随机数的产生速度慢的缺点。
非专利文献3: Phatak, S. C. and Rao, S. S., "logistic map: A Possible Random-number generator", Phys. Rev. E, Vol. 51 No. 4, pp. 3670-3678(1995).此文献显示了对用式(l)产生的数列能用变换式来将 具有U字形分布的Xt的系列变换成均等分布的数列。但是,变换后的 数列的前后数值存在着很强的相关。而用间隔取值的方法可以使数列存在的相关减弱。但要想能通过统计检验的话,移动间隔数需要取较 大的值。
非专利文献4:庄野克房,"力才7 二 > - 二 7 U >夕'",、〉工7° y ^力'一7 二 7 ,一y東京,東京,2 o 0 2。此文献中指出对式(l)
用固定小数点计算方法做成硬件回路来实现高速产生随机数的方法是 有效的。
专利文献5:特開2 0 0 5 — 2 2 8 1 6 9此文献提出用固定小数 点计算方法,扩展计算精度来计算式(l)。
以上的具有代表性的文献所显示的至今为止的利用式(l)来产生随 机数的方法所存在的问题是所产生出来的随机数不能将周期性(周期 长),品质(统计学上的乱杂性),产生速度等同时达到在实际应用领域 中能够满足的水平。

发明内容
本发明的目的是要提供一种在通用计算器(机)及专用硬件回路的 两方面都能实现,用上述计算式(l)来产生,随机数的产生速度,周期 长,随机数的品质都达到实用上的高水准的随机数生成装置和方法。
本发明是这样实现的 一种随机数产生装置,包括如下内容-将N(N是2以上的整数)比特的2进整数作为初始值接受的初始值 输入单元;
将以上N比特的2进数列变换成[((N-l)/m)]+l位的m比特的整数 (m是l以上的整数[]是舍去小数点以下的部分的计算沐准备对函数式 (l)进行用整数的计算来实行固定小数点计算的初始值变换单元;
用于保存上述初始值变换所输出的数据及保存计算精度N比特的 混沌计算器(反复计算)的计算所需要的输入数据的暂存器;
以上述暂存器内储存的[((N-l)/m)]+l位m比特的整数作为输入值 来对函数式(l)进行整数(分割)运算,且具有2N比特的计算结果的混沌 计算器;
将上述混沌计算器所具有的2N比特的计算结果中的前N比特作为函数式(l)的反复计算所需要的输入值而储存于暂存器,并且在2N 比特的计算结果的特定的比特之间进行1对1的排他逻辑和运算,并 将其N比特的结果作为随机数输出的抽出搅拌单元;
用来储存上述抽出搅拌单元所输出的N比特的随机数的随机数暂 存器;
用来控制上述初始值输入的初始值变换单元,混沌计算器,抽出 搅拌单元等来进行随机数产生的随机数产生控制单元;
作为上述混沌计算器的输入值a (aoa卜.a^)的计算结果的2N比 特的d的各比特(dod卜.d2^)在混沌计算器的计算过程中所受的输入 a的影响的比特数各不相同,具有不均匀的分布特性,上述抽出搅拌单 元所进行的在(dod卜.d2^)的特定的比特间所进行的1对1的排他逻 辑和(XOR)运算的搅拌手法是以所产生的随机数rj (i-O,l,...,N-l) 在此运算下成为其每一比特都能以不同形式受到输入值a的所有比特 的影响,上述(dod!…d2N.!)之中的di和di+N (i-0,l…N-l)之间的1 对1的排他逻辑和运算(r产di④d,)的搅拌手法为特征的随机数产生装 置。
一种随机数产生方法,是依照函数式xt+产4xt(l-xt沐产生随机数, 其包括如下步骤-
将输入的N(N是2以上的整数)比特的2进整数作为初始值接受;
将以上N比特的2进数列变换成[((N-l)/m)]+l位的m比特的整数 (m是l以上的整数[]是舍去小数点以下的部分的计算);
输入到具有N比特的计算精度和2N比特的计算结果的混沌计算
器;
用上述混沌计算器对输入值a(aoa卜.a^)用函数式(l)进行用整数 运算来实行的固定小数点计算,产生2N比特的2进数列d(dod卜.d2^); 上述混沌计算器的计算是由具有2m比特的计算能力(这里所说的
计算能力是指有整数的乘,力n,比特移位,比特间逻辑运算的能力)
的计算器来将N比特的整数分割成[((N-l)/m)]+l位的m比特的整数 来对函数式(l)进行整数(分割)运算 ,
6将上述混沌计算器的2N比特的计算结果d(do山...d,)中的前N比 特作为函数式(l)的反复计算所需要的输入值a(aoa,.. .a^);
对上述混沌计算器的输入值a (aoa卜.a^)的计算结果的,在混沌 计算器的计算过程中所受的输入a的影响的比特数各不相同的,具有 不均匀的分布特性的,2N比特的d的各比特(dQd卜.d2^)的特定的 比特之间进行1对1的排他逻辑和运算来产生N比特的随机数 r(ror卜.rN.,);
上述在(dod卜.cb^)的特定的比特间所进行的1对1的排他逻辑 和(XOR)运算的搅拌手法是以所产生的随机数ri (i-O,l,...N-l)在此 运算下成为其每一比特都能以不同形式受到输入值a的所有比特的影 响,上述(dod卜.d編)之中的di和di+N (i-0,l…N-l)之间的1对1 的排他逻辑和运算(r产di④di+w)的搅拌方法为特征的随机数产生方法。
本发明用固定小数点计算式(l),使其比浮动小数点来计算更为合 理和快速。
本发明在用固定小数点计算法计算式(l)时,用针对计算系统的计 算能力,进行了最佳分割计算的混沌计算器来进行整数运算。使得在 计算式(l)时的计算精度能容易地扩展,从而实现了产生的具有混沌动 态的数值系列具有更长的周期。
作为本发明的特征的搅拌手法使每计算式(l)一次,即可产生与计 算精度同样多的比特的2进随机数。并将原来的具有U字形分布的混 沌系列数值变换成均匀分布的2进随机数。
本发明利用简单的处理,实现了能适应于各种不同规模的计算系 统,能容易地扩展计算精度的,能高速产生具有长周期,高质量的统 计学性能的随机数的随机数产生装置。这种以简单的处理来实现目的 的形式,在确保随机数生成器的性能之上,并能实现低价格,是一种 被期待的产业技术。


下面结合附图和具体实施方式
对本发明作进一步说明。
图1为有关本发明的一个实施形态的随机数产生装置的构成图
7图2为m-32时的计算精度与式(l)的计算速度的关系表
图3为将N比特的整数的乘算(c-ab)展开成2进数时的计算式
图4为dl和r的轨迹的比较图
图5为dl的前8比特值的分布图.
图6为r的前8比特值的分布图
图7为r和dl的对应关系图
图8为随机数产生装置100的动作的实施例的流程图
图9为随机数的equidistribution检定的结果
图10为随机数的serial检定的结果
图11为随机数的poker检定的结果
图12为随机数的coupon collector's检定的结果
图13为随机数的run检定的结果
图14为随机数的birthday spacings检定的结果
图15为随机数的serial correlation检定的结果
图16为m=32时的计算精度和随机数产生速度的关系表
图中IOO随机数产生装置,102初始值输入单元,104初始值变 换单元,106储存器,108混沌计算器,110数值抽出搅拌处理单元, 112随机数储存器,114随机数产生控制单元。
具体实施例方式
以下我们边参照图式边说明本发明的实施形态和效果。我们来说 明本发明是,在计算式(l)时采用了最有效的计算方法,并使用了最有 效的搅拌方法的,随机数产生装置和方法。
图1是本发明的一个实施形态的随机数产生装置100的构成图。 本实施形态的随机数产生装置100是对N比特的2进数列,用具有 2m(m是1以上的整数)比特的计算能力的混沌计算器来进行反复计算, 并对每次计算所产生的混沌计算器的2N比特的结果的前N比特和后N 比特间进行比特间的排他逻辑和运算。由此来高速地产生长周期的, 优质的2进随机数数列。随机数产生装置100具备初始值输入单元102,初始值变换单元104,储存器106,混沌计算器108,数据抽出搅拌单 元110,随机数储存器112,随机数产生控制单元114等。
初始值输入单元102将输入的N比特的2进数列作为进行固定小 数点计算的初始值的小数点以下的部分接收。我们通过将式(l)的计算 用固定小数点计算法来实现,使得计算器的比特宽(精度)的利用效率比 浮动小数点计算法更高。通常高精度的科学计算是使用浮动小数点计 算法。但是用浮动小数点倍精度(符号1比特,指数11比特,数值部 52比特)来计算式(l)时,我们可以观察到其所使用的指数部不超过6 比特。很明显不管是在硬件还是在软件上计算,用固定小数点计算法 来计算计算式(l)更为合理和有效。
初始值变换单元104将N比特的2进数列变换成[((N-l)/m)]+l位 的m比特的整数,为实行对式(l)进行用整数的运算来实现的固定小数 点计算作准备。由于用整数的运算来实现式(l)的计算时的固定小数点 计算,使得计算速度更快计算精度的扩展也更容易。在2进制计算机 上对式(l)进行计算精度N比特的固定小数点计算时,xt的数值在离散 区间(1/2"-1/2、中变化。因此在能计算2m(比如64)比特的整数的计算 系统上,能容易地进行计算精度m(比如32)比特以下的,对式(1)的, 用整数的计算。由于整数的乘算,加算等的计算,能容易地用分割计 算来进行精度扩展,因此对式(l)用整数来实行的固定小数点计算,能 容易地扩展其计算精度。
储存器106用来储存为混沌计算器(反复)计算的[((N-l)/m)]+l位的 m比特的整数输入值。
但是如图2所示扩展了计算精度会使式(l)的计算速度急剧低下。 因此有必要做到计算一次式(l)而产生更多的比特的随机数。而在另一 方面我们知道对一定长的2进数列进行重复的比特运算(移动,置换, 逻辑运算)来获得比较复杂的数列的方法。但是存在着重复运算的次数 越多能够得到看上去越乱的数列,同时需要的时间则更长的问题。
混沌计算器108将储存在储存器106的[((N-l)/m)]+l位的m比特 的整数作为输入值,对式(l)用整数运算进行计算。由于[((N-l)/m)]+l 位的m比特的整数演算的原理与在小学所学的多位数IO进数的运算相
9同,在此省略其说明。
数值抽出搅拌单元110将混沌计算器108的2N比特的计算结果(d) 的前N比特(dl)作为(反复)计算式(l)的输入值存入储存器106,又将比 特di和dw(i-O,l...N-l)之间的排他逻和运算的N比特的结果作为随机 数r( ron..n懒出。本发明所提案的搅拌方法对有着显著不均匀分布 的2N比特的数列(d),只进行上述特定的比特间的一对一的排他逻辑 和运算,即能产生出均匀分布的与计算精度等长的随机数列。
将用整数对式(l)的计算,展开成2进数的计算,对其进行观察, 就能导出作为本发明的特征的搅拌方法。N比特的小数Xt的小数点以 下的部分作为N比特的整数a(aoa卜.^.0,则x产O.a;将l-Xt的小数点 以下的部分作为N比特的整数b(bob卜.b^),则l-x产O.b。也就是整数 a和b之间是互补的关系。在这里使c=ab, d=4c(c,d为2N比特的整数) 则d=4ab成为式(l)的整数运算的形式。在这里d(dod卜.d2^)的前N比 特为xw的小数点以下的部分。
在这里将d的前N比特作为N比特的整数dl , d的后N比特作为 N比特的整数d2,则xt+尸0.d。将整数a,b,c,d展开成2迸数,且其各比 特为(aoa….aN.0, (bob卜.bN》,(Cod…C2^) (dod,…d2N.,)时,我们来考察 c=ab, d=4c的计算过程和其结果。由于d=4c的整数4的乘算是由向左 移位2比特即可完成,在这里我们先考察c=ab (2个N比特的2进整 数a和b)的乘算过程和其结果。
如图3所示,将c-ab的运算展开为2进数,我们可以知道c的各 比特Ci与a,b的各比特之间存在着可用式2来表现的关系。
式2
0 + 、 (/ = 0)
户i
.乂a
(kci是从cw的进位,i-2N+l时,kc尸O) 在这里将Ci用输入a的各比特的函数来表示,可得到式3
10式3
7;() (/=。)
c, =' 乂 (a。 ,..., a,—) = 乂 (a。 ~ a") (1S / S AT -1)
乂(a肿…,a,^)-y;K一, a,一w) (W化2iV-l)
在这里Ci所含有的输入a的各比特的个数作为该比特所持有的复 杂度并以Sei表示,则c的各比特的复杂度如式4所示。 式4
—JV (0S"iV-l) 、一"[2iV-/ (A^"2iV-l)
由于d-4c则d的各比特如式5所示。在这里向左移位时,最左位
置的比特进入最右位置。
式5
^ =卜 (0化2iV-3)
根据以上的考察,很明显,以产生的2进数列的各比特,都具有 最大的复杂度为目标的,本发明所提案的搅拌方法,即由式(6)所产生 的2进数列r的各比特所具有的复杂度&均为N(计算精度的比特数)
式6
=(4④^)(4』)
(0为排他逻辑和(XOR)) 对式6作为搅拌手法的效果,用图4, 5, 6, 7来说明。 图4是对式(l),用固定小数点128比特计算精度来计算时的dl和 r的轨迹图。(将整数dl和r作为固定小数点计算的小数点以下的部分 来变换成O-l之间的数值)。dl的轨道是依照式(l)的,具有混沌动态的 轨迹。dl的数值在靠近O的时候,显示出单调增加的规则。而从r的 轨迹中却找不到这样的规则。dl和r之间也看不出有其他规则或关联。 图5显示的是dl的前8比特的数值的频度分布。图6是r的前8 比特的数值的频度分布。数值样本数都是65536个。dl的分布近似于 U字形状,而r的分布则近似于均匀分布。对r所进行的统计学的检定 的结果,稍后作说明。
ii由于输出的N比特的随机数r是由计算式(6)来产生,所以有可能 在r和dl之间存在着某种相关关系。如果r和dl之间存在着线性相关 关系,则由r能推测出dl,这也就是从某个r的2进数列可以推测出 其他的r的2进数列。因此在这里对r和dl的对应关系,在bitmap图 上进行确认。由于无法用高的计算精度(如128比特)来计算,表示r和 dl的对应关系,在这里我们对计算精度16比特时的r和dl的对应关 系进行观察。图7是取r为横轴,dl为纵轴,计算精度16比特时的所 有可能产生的,r值和dl值之间的对应关系图。由于式(l)具有对称性, 我们取输入值a从1到32767的32767个值进行了计算。其结果得到 的dl的值为28671个,r的值为32767个。从图7,我们可以看到对于 输入值a的从1到32767的值所计算出的dl值的分布是不均匀的,而 对应于不均匀的dl的分布,r的分布在1到65535之间均匀地被分散 了。也就是由式(6)的搅拌,将分布不均匀的dl变换成了均匀分布的随 机数r。而且r和dl之间不存在线性的相关关系。从以上的结果我们 可以确认到,对于由式(l)所计算出来的,具有不均匀分布特性的,Xt(dl) 的数列,用式(6)对其进行搅拌,可以得到均匀分布的随机数r。
从以上对式(6)的搅拌手法的效果的考察,可以看出本发明所提案 的f拌手法是有效的。
随机数储存器112将抽出搅拌单元产生的N比特的随机数储存其中。
随机数产生控制单元114控制各动作单元的动作及其反复操作来 产生随机数。
图8是随机数产生装置100的动作的流程图的例。以随机数产生 指今作为本流程所示的随机数产生装置100的动作的开始。
将输入到初始值输入单元102的N比特的2进数列作为初始值接 收(sl02)。然后初始值变换单元104将接收到的N比特的2进数列变换 成[((N-l)/m)]+l位的2m进数的整数(s104),并储存在储存器106中 (sl06)。之后,混沌计算器108将储存在储存器106的整数作为输入值, 进行式(l)的计算(s108)。接着,抽出搅拌单元将2N比特的计算结果, 整数(d)的前N比特的整数(dl)存入储存器106;并将前N比特的整数(dl)与后N比特的整数(d2)间进行比特间的排他逻辑和运算(sll0)。接下来, 将N比特随机数r储存于随机数储存器112中(sl12)。本流程图所示的 随机数产生装置100的动作终了。
要连续产生随机数时,将上述(sl08)到(sll2)的流程反复执行即可。
我们对用上述随机数产生装置在计算精度N=128比特时产生的随 机数进行了 7项目的统计学检定。由于本发明所提案的随机数产生器 所输出的随机数是2进数列,我们采用了f检定手法。?分布是在样 本数足够大时才有效的近似值。但是考虑到样本数较大时有可能掩盖 了存在于数列局部的规则性,我们做了多种数量的样本的Z检定。
上述统计学的检定是将每次计算所产生的128比特的随机数r连在 一起所进行的,因此有可能将存在于每次计算之间的,也就是每128 比特之间可能存在的规则掩盖掉。在此我们将同样的检定,对每计算 一次式(l),只取一个样本的数据采集方法,也实行了Z检定。
72检定包括Equidistribution检定,Serial检定,Poker检定,Coupon collector's检定,Run检定,Birthday spacings检定等6个项目。所有的 项目的检定各做了 1000次。对所取得的1000个的/值,分类成P〈P/c), 5%, 25%, 50%, 75%, 95%, 99°/。的7个区间,来与理论值进行比较。 再加上serial correlation检定,共计做了 7项目的检定。serial correlation 检定是对进入95%信赖区间的检定结果进行计数。
对将128比特的r连在一起的检定,所取得样本数为nl,n2,n3,n4 时的结果,及将128比特的r的最前面的数比特作为一个样本时的样本 数为nAl,nA2,nA3,nA4时的结果,如图9至图15所示。图9是从随机 数列取出8比特的整数样本所做的Equidistribution检定的结果。样本 数为 nl(nAl)=216 , n2(nA2)=216*10 , n3(nA3)=216*100 , n4(nA4)=216*1000,的4种,显示出良好的结果。图10是对所产生的8 比特的整数样本进行Serial检定的结果。样本数分别为nl(nAl)=22Q, n2(nA2)=22()*10, n3(nA3)=22()*100, n4(nA4)=22()*1000,也显示出良好 的结果。图11从随机数列取出了3比特的整数样本,进行5分类,自 由度为4的Poker检定的结果。样本数为nl(nAl)=21Q,n2(nA2)=21Q*10, n3(nA3)-21()*100, n4(nA4)=21Q*1000,样本数nl(nAl)时的;^值的进入
131%区间的数量超过2%,但样本数增加后的其他的3个检定结果都显示 出良好的结果。因此我们可以认为这是由于样本数过少而造成的结果。 图12是自由度为30的Coupon collector's检定的结果。样本数为 nl(nAl)=210, n2(nA2)=210*10, n3(nA3)=210*100, n4(nA4)=210*1000, 也显示出良好的结果。图13是32比特的整数随机数进行的Up run检 定的结果。样本数为nl(nAl)=216, n2(nA2)=216*10, n3(nA3)=216*100, n4(nA4)=216*1000,也显示出良好的结果。图14是对25比特的整数数 列进行的,参数r^225^29,自由度为3的,Birthday spacings检定的结 果。取样次数为nl(nAl)-103, n2(nA2)=104, n3(nA3)=105, n4(nA4)=106, 也显示出良好的结果。图15是对4比特的整数数列进行的serial correlation检定的结果。样本数为nl(nAl)=21Q, n2(nA2)=21Q*10, n3(nA3)=21Q*100, n4(nA4)=21Q*1000,在95%的信赖区间,1000次的检 定中相关系数c在/z-2ct2";U + 2ct之内的数量,基本上都在950以上, 可以说是良好的结果。以上严格的检定的结果,都显示出被检定的数 列具有良好的统计学上的均匀分布的特性。有关以上的检定方法的具 体内容记载于文献(DONALD E.Knuth, "The Art of Computer Programming, Vol.2, Seminumerical Algorithms Third Edition")
依照本发明,可以由非线性函数高速地产生出具有混沌变化的长 周期,并能通过严格的统计学的检定的随机数。此随机数能够应用于 各种领域计算机模拟,取样,数值解析,编程,决策,加密,美术, 娱乐等。
由于本发明在随机数产生上,只用了整数运算(加,乘,比特移位, 逻辑运算等),又由于整数能容易地实行分割计算,因此即使是不同的 计算系统(通用计算机(各种OS),专用硬件回路,微型计算机),只要能 进行最基本的整数运算,即能做到由相同的输入值得到相同的输出值 (结果)。
本发明在计算精度N的比特时,每计算式(l)一次,即可以最少的 搅拌数(一次),便可输出N比特的具有最大复杂度(N)的随机数。抑制 了由计算精度的扩展而导致的随机数产生速度的低下,实现了随机数 的高速产生。计算精度与随机数产生速度的关系如图16所示,达到了实用上的,高水准的数值。由于只用整数的加,乘,比特移位,逻辑 运算等计算机最容易执行的计算,所以能容易地做成集成电路,实现 更高的随机数产生速度。
本发明与不能用于信息安全的,传统的随机数产生法不同。由于 利用了混沌函数,并在产生随机数时利用了具有一方向性的排他逻辑
和运算,使得从所产生的一部分随机数r,无法推测出xt,也无法推测 出其他的随机数。
由此可见,本发明的随机数产生装置,具有能适应各种需求的各 种[性能与成本]的组合。具有好的扩展性,能应用于科研,及包含信息 安全领域在内的,广泛的产业领域中。
以上,用实施形态对本发明进行了说明,但本发明的技术手法并 不只限于上述实施形态所述的范围,能够对上述实施形态进行变更或 改良。上述发明是对产生混沌的式(l),进行每一次的计算,用最少的 搅拌次数(一次),来输出最多的(N比特),具有最大复杂度(N)的搅拌手 法。但是,以随机数的产生效率及品质的低下为代价,对上述实施形 态做变更也是可能的。很明显,像这样的变更改良后的形态也属于本 发明的技术的范围。
1权利要求
1、一种随机数产生装置,其特征在于,包括将N(N是2以上的整数)比特的2进整数作为初始值接受的初始值输入单元;将以上N比特的2进数列变换成[((N-1)/m)]+1位的m比特的整数(m是1以上的整数[]是舍去小数点以下的部分的计算)来准备对函数式(1)进行用整数的计算来实行固定小数点计算的初始值变换单元;用于保存上述初始值变换所输出的数据及保存计算精度N比特的混沌计算器(反复计算)的计算所需要的输入数据的暂存器;以上述暂存器内储存的[((N-1)/m)]+1位m比特的整数作为输入值来对函数式(1)进行整数(分割)运算,且具有2N比特的计算结果的混沌计算器;将上述混沌计算器所具有的2N比特的计算结果中的前N比特作为函数式(1)的反复计算所需要的输入值而储存于暂存器,并且在2N比特的计算结果的特定的比特之间进行1对1的排他逻辑和运算,并将其N比特的结果作为随机数输出的抽出搅拌单元;用来储存上述抽出搅拌单元所输出的N比特的随机数的随机数暂存器;用来控制上述初始值输入的初始值变换单元,混沌计算器,抽出搅拌单元等来进行随机数产生的随机数产生控制单元;作为上述混沌计算器的输入值a(a0a1...aN-1)的计算结果的2N比特的d的各比特(d0d1...d2N-1)在混沌计算器的计算过程中所受的输入a的影响的比特数各不相同,具有不均匀的分布特性,上述抽出搅拌单元所进行的在(d0d1...d2N-1)的特定的比特间所进行的1对1的排他逻辑和(XOR)运算的搅拌手法是以所产生的随机数ri(i=0,1,...,N-1)在此运算下成为其每一比特都能以不同形式受到输入值a的所有比特的影响,上述(d0d1...d2N-1)之中的di和di+N(i=0,1...N-1)之间的1对1的排他逻辑和运算<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><mo>(</mo><msub> <mi>r</mi> <mi>i</mi></msub><mo>=</mo><msub> <mi>d</mi> <mi>i</mi></msub><mo>&CirclePlus;</mo><msub> <mi>d</mi> <mrow><mi>i</mi><mo>+</mo><mi>N</mi> </mrow></msub><mo>)</mo> </mrow>]]></math> id="icf0001" file="A2008800023480002C1.tif" wi="23" he="4" top= "248" left = "74" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>的搅拌手法为特征的随机数产生装置。
2、 一种随机数产生方法,是依照函数式xt+产4xt(l-xt)来产生随机数,其特征在于,包括如下步骤将输入的N(N是2以上的整数)比特的2进整数作为初始值接受; 将以上N比特的2进数列变换成[((N-l)/m)]+l位的m比特的整数 (m是l以上的整数[]是舍去小数点以下的部分的计算);输入到具有N比特的计算精度和2N比特的计算结果的混沌计算器;用上述混沌计算器对输入值a(aoa卜.a^)用函数式(l)进行用整数 运算来实行的固定小数点计算,产生2N比特的2进数列d(dod卜.d2^);上述混沌计算器的计算是由具有2m比特的计算能力(这里所说的 计算能力是指有整数的乘,力卩,比特移位,比特间逻辑运算的能力) 的计算器来将N比特的整数分割成[((N-l)/m)]+l位的m比特的整数 来对函数式(l)进行整数(分割)运算;将上述混沌计算器的2N比特的计算结果d(dcd卜.cbM)中的前N比 特作为函数式(l)的反复计算所需要的输入值a(aoai...aw);对上述混沌计算器的输入值a (aoa卜.,a^)的计算结果的,在混沌 计算器的计算过程中所受的输入a的影响的比特数各不相同的,具有 不均匀的分布特性的,2N比特的d的各比特(dod卜.cbM)的特定的 比特之间进行1对1的排他逻辑和运算来产生N比特的随机数 r( ror卜.rN—i);上述在(dodL..d加.》的特定的比特间所进行的1对1的排他逻辑 和(XOR)运算的搅拌手法是以所产生的随机数ri (i=0,l,...N-l)在此 运算下成为其每一比特都能以不同形式受到输入值a的所有比特的影 响,上述(dod卜.d腿)之中的di和di+N (i-0,l…N-l)之间的1对1 的排他逻辑和运算(rrdied,)的搅拌方法为特征的随机数产生方法。
全文摘要
本发明提供一种用非线性函数来产生具有产生速度,周期长,品质都达到实用上的高水准的随机数生成装置。依照函数式x<sub>t+1</sub>=4x<sub>t</sub>(1-x<sub>t</sub>),将输入的N(N是2以上的整数)比特的2进数列变换成[((N-1)/m)]+1位的m比特的整数(m是1以上的整数[]是舍去小数点以下的部分的计算);由具有N比特的计算精度和2N比特的计算结果的混沌计算器,来进行整数(分割)运算,产生2N比特的2进数列d(d<sub>0</sub>d<sub>1</sub>...d<sub>2N-1</sub>);再将d的前N比特(d<sub>0</sub>d<sub>1</sub>...d<sub>N-1</sub>)作为混沌计算器的反复计算用的输入值,并将d的特定的比特d<sub>i</sub>和d<sub>i+N</sub>(i=0,1...N-1)之间的1对1的排他逻辑和运算(r<sub>i</sub>=d<sub>i</sub>⊕d<sub>i+N</sub>)的结果作为随机数r(r<sub>0</sub>r<sub>1</sub>...r<sub>N-1</sub>)输出为特征。
文档编号G06F7/58GK101636714SQ200880002348
公开日2010年1月27日 申请日期2008年11月13日 优先权日2007年11月20日
发明者董际国 申请人:董际国
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1