随机数产生装置和方法.pdf

上传人:a2 文档编号:856614 上传时间:2018-03-15 格式:PDF 页数:21 大小:1.01MB
返回 下载 相关 举报
摘要
申请专利号:

CN200880002348.7

申请日:

2008.11.13

公开号:

CN101636714A

公开日:

2010.01.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F7/58; G09C1/00

主分类号:

G06F7/58

申请人:

董际国

发明人:

董际国

地址:

日本国东京都千代田区三崎町2丁目4-5-401

优先权:

2007.11.20 JP 325253/2007

专利代理机构:

中国商标专利事务所有限公司

代理人:

宋义兴

PDF下载: PDF下载
内容摘要

本发明提供一种用非线性函数来产生具有产生速度,周期长,品质都达到实用上的高水准的随机数生成装置。依照函数式xt+1=4xt(1-xt),将输入的N(N是2以上的整数)比特的2进数列变换成[((N-1)/m)]+1位的m比特的整数(m是1以上的整数[]是舍去小数点以下的部分的计算);由具有N比特的计算精度和2N比特的计算结果的混沌计算器,来进行整数(分割)运算,产生2N比特的2进数列d(d0d1...d2N-1);再将d的前N比特(d0d1...dN-1)作为混沌计算器的反复计算用的输入值,并将d的特定的比特di和di+N(i=0,1...N-1)之间的1对1的排他逻辑和运算(ri=di⊕di+N)的结果作为随机数r(r0r1...rN-1)输出为特征。

权利要求书

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(a 0 a 1 ...a N-1 )的计算结果的2N比 特的d的各比特(d 0 d 1 ...d 2N-1 )在混沌计算器的计算过程中所受的输入 a的影响的比特数各不相同,具有不均匀的分布特性,上述抽出搅拌单 元所进行的在(d 0 d 1 ...d 2N-1 )的特定的比特间所进行的1对1的排他逻 辑和(XOR)运算的搅拌手法是以所产生的随机数r i (i=0,1,...,N-1) 在此运算下成为其每一比特都能以不同形式受到输入值a的所有比特 的影响,上述(d 0 d 1 ...d 2N-1 )之中的d i 和d i+N (i=0,
2: ..N-1)之间的1 对1的排他逻辑和运算 ( r i = d i ⊕ d i + N ) ]]> 的搅拌手法为特征的随机数产生装 置。 2、一种随机数产生方法,是依照函数式x t+1 =4x t (1-x t )来产生随机 数,其特征在于,包括如下步骤: 将输入的N(N是2以上的整数)比特的2进整数作为初始值接受; 将以上N比特的2进数列变换成[((N-1)/m)]+1位的m比特的整数 (m是1以上的整数[]是舍去小数点以下的部分的计算); 输入到具有N比特的计算精度和2N比特的计算结果的混沌计算 器; 用上述混沌计算器对输入值a(a 0 a 1 ...a N-1 )用函数式(1)进行用整数 运算来实行的固定小数点计算,产生2N比特的2进数列d(d 0 d 1 ...d 2N-1 ); 上述混沌计算器的计算是由具有2m比特的计算能力(这里所说的 计算能力是指有整数的乘,加,比特移位,比特间逻辑运算的能力) 的计算器来将N比特的整数分割成[((N-1)/m)]+1位的m比特的整数 来对函数式(1)进行整数(分割)运算; 将上述混沌计算器的2N比特的计算结果d(d 0 d 1 ...d 2N-1 )中的前N比 特作为函数式(1)的反复计算所需要的输入值a(a 0 a 1 ...a N-1 ); 对上述混沌计算器的输入值a(a 0 a 1 ...a N-1 )的计算结果的,在混沌 计算器的计算过程中所受的输入a的影响的比特数各不相同的,具有 不均匀的分布特性的,2N比特的d的各比特(d 0 d 1 ...d 2N-1 )的特定的 比特之间进行1对1的排他逻辑和运算来产生N比特的随机数 r(r 0 r 1 ...r N-1 ); 上述在(d 0 d 1 ...d 2N-1 )的特定的比特间所进行的1对1的排他逻辑 和(XOR)运算的搅拌手法是以所产生的随机数r i (i=0,1,...N-1)在此 运算下成为其每一比特都能以不同形式受到输入值a的所有比特的影 响,上述(d 0 d 1 ...d 2N-1 )之中的d i 和d i+N (i=0,1...N-1)之间的1对1 的排他逻辑和运算 ( r i = d i ⊕ d i + N ) ]]> 的搅拌方法为特征的随机数产生方法。

说明书


随机数产生装置和方法

    【技术领域】

    本发明是有关随机数产生装置及其方法。

    背景技术

    随机数被用于各种应用领域。例如:计算机模拟,取样,数值解析,编程,决策,加密,美术,娱乐等。为此,学者们提出了很多随机数产生法。随着计算机的高速化,使得其所需要的随机数也大为增加,进而要求随机数产生器能对应此需要。

    而在另一方面,能以简单的结构来产生具有复杂的变化的数列的混沌随机数产生方法被人们所期待。自Von Neumann等提出用式1来产生随机数以来,很多学者发表了用式1来产生随机数的研究报告。

    式(1)

    xt+1=4xt(1-xt)

    (0<xt<1,t=0,1,2,...)

    非专利文献1:Ulam,S.M.and Von Neumann,J.,“On Combination ofStocastic Determistic Processes”,Bull.AMS.,Vol.53,p.1120(1947)在此文献中,提出了用式(1)来产生随机数。

    非专利文献2:香田徹·柿本厚志,“凝似乱数とカオス”,情報処理学会論文誌A,Vol.27 No.3pp.289-296(1986)。此文献中,作者指出将阈值取为0.5时,用式(1)产生的随机数具有高的质量,但其计算式(1)一次只输出1比特的随机数。所以有着随机数的产生速度慢的缺点。

    非专利文献3:Phatak,S.C.and Rao,S.S.,“logistic map:A PossibleRandom-number generator”,Phys.Rev.E,Vol.51 No.4,pp.3670-3678(1995).此文献显示了对用式(1)产生的数列能用变换式来将具有U字形分布的xt的系列变换成均等分布的数列。但是,变换后的数列的前后数值存在着很强的相关。而用间隔取值的方法可以使数列存在的相关减弱。但要想能通过统计检验的话,移动间隔数需要取较大的值。

    非专利文献4:庄野克房,“カオスエンジニアリング“,シユプリンガ一フエアラ一リ東京,東京,2002。此文献中指出对式(1)用固定小数点计算方法做成硬件回路来实现高速产生随机数的方法是有效的。

    专利文献5:特開2005-228169此文献提出用固定小数点计算方法,扩展计算精度来计算式(1)。

    以上的具有代表性的文献所显示的至今为止的利用式(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的排他逻辑和运算(ri=di⊕di+N)]]>的搅拌手法为特征的随机数产生装置。

    一种随机数产生方法,是依照函数式xt+1=4xt(1-xt)来产生随机数,其包括如下步骤:

    将输入的N(N是2以上的整数)比特的2进整数作为初始值接受;

    将以上N比特的2进数列变换成[((N-1)/m)]+1位的m比特的整数(m是1以上的整数[]是舍去小数点以下的部分的计算);

    输入到具有N比特的计算精度和2N比特的计算结果的混沌计算器;

    用上述混沌计算器对输入值a(a0a1...aN-1)用函数式(1)进行用整数运算来实行的固定小数点计算,产生2N比特的2进数列d(d0d1...d2N-1);

    上述混沌计算器的计算是由具有2m比特的计算能力(这里所说的计算能力是指有整数的乘,加,比特移位,比特间逻辑运算的能力)的计算器来将N比特的整数分割成[((N-1)/m)]+1位的m比特的整数来对函数式(1)进行整数(分割)运算;

    将上述混沌计算器的2N比特的计算结果d(d0d1...d2N-1)中的前N比特作为函数式(1)的反复计算所需要的输入值a(a0a1...aN-1);

    对上述混沌计算器的输入值a(a0a1...aN-1)的计算结果的,在混沌计算器的计算过程中所受的输入a的影响的比特数各不相同的,具有不均匀的分布特性的,2N比特的d的各比特(d0d1...d2N-1)的特定的比特之间进行1对1的排他逻辑和运算来产生N比特的随机数r(r0r1...rN-1);

    上述在(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的排他逻辑和运算(ri=di⊕di+N)]]>的搅拌方法为特征的随机数产生方法。

    本发明用固定小数点计算式(1),使其比浮动小数点来计算更为合理和快速。

    本发明在用固定小数点计算法计算式(1)时,用针对计算系统的计算能力,进行了最佳分割计算的混沌计算器来进行整数运算。使得在计算式(1)时的计算精度能容易地扩展,从而实现了产生的具有混沌动态的数值系列具有更长的周期。

    作为本发明的特征的搅拌手法使每计算式(1)一次,即可产生与计算精度同样多的比特的2进随机数。并将原来的具有U字形分布的混沌系列数值变换成均匀分布的2进随机数。

    本发明利用简单的处理,实现了能适应于各种不同规模的计算系统,能容易地扩展计算精度的,能高速产生具有长周期,高质量的统计学性能的随机数的随机数产生装置。这种以简单的处理来实现目的的形式,在确保随机数生成器的性能之上,并能实现低价格,是一种被期待的产业技术。

    【附图说明】

    下面结合附图和具体实施方式对本发明作进一步说明。

    图1为有关本发明的一个实施形态的随机数产生装置的构成图

    图2为m=32时的计算精度与式(1)的计算速度的关系表

    图3为将N比特的整数的乘算(c=ab)展开成2进数时的计算式

    图4为d1和r的轨迹的比较图

    图5为d1的前8比特值的分布图

    图6为r的前8比特值的分布图

    图7为r和d1的对应关系图

    图8为随机数产生装置100的动作的实施例的流程图

    图9为随机数的equidistribution检定的结果

    图10为随机数的serial检定的结果

    图11为随机数的poker检定的结果

    图12为随机数的coupon collector′s检定的结果

    图13为随机数的run检定的结果

    图14为随机数的birthday spacings检定的结果

    图15为随机数的serial correlation检定的结果

    图16为m=32时的计算精度和随机数产生速度的关系表

    图中:100随机数产生装置,102初始值输入单元,104初始值变换单元,106储存器,108混沌计算器,110数值抽出搅拌处理单元,112随机数储存器,114随机数产生控制单元。

    【具体实施方式】

    以下我们边参照图式边说明本发明的实施形态和效果。我们来说明本发明是,在计算式(1)时采用了最有效的计算方法,并使用了最有效的搅拌方法的,随机数产生装置和方法。

    图1是本发明的一个实施形态的随机数产生装置100的构成图。本实施形态的随机数产生装置100是对N比特的2进数列,用具有2m(m是1以上的整数)比特的计算能力的混沌计算器来进行反复计算,并对每次计算所产生的混沌计算器的2N比特的结果的前N比特和后N比特间进行比特间的排他逻辑和运算。由此来高速地产生长周期的,优质的2进随机数数列。随机数产生装置100具备初始值输入单元102,初始值变换单元104,储存器106,混沌计算器108,数据抽出搅拌单元110,随机数储存器112,随机数产生控制单元114等。

    初始值输入单元102将输入的N比特的2进数列作为进行固定小数点计算的初始值的小数点以下的部分接收。我们通过将式(1)的计算用固定小数点计算法来实现,使得计算器的比特宽(精度)的利用效率比浮动小数点计算法更高。通常高精度的科学计算是使用浮动小数点计算法。但是用浮动小数点倍精度(符号1比特,指数11比特,数值部52比特)来计算式(1)时,我们可以观察到其所使用的指数部不超过6比特。很明显不管是在硬件还是在软件上计算,用固定小数点计算法来计算计算式(1)更为合理和有效。

    初始值变换单元104将N比特的2进数列变换成[((N-1)/m)]+1位的m比特的整数,为实行对式(1)进行用整数的运算来实现的固定小数点计算作准备。由于用整数的运算来实现式(1)的计算时的固定小数点计算,使得计算速度更快计算精度的扩展也更容易。在2进制计算机上对式(1)进行计算精度N比特的固定小数点计算时,xt的数值在离散区间(1/2N,1-1/2N)中变化。因此在能计算2m(比如64)比特的整数的计算系统上,能容易地进行计算精度m(比如32)比特以下的,对式(1)的,用整数的计算。由于整数的乘算,加算等的计算,能容易地用分割计算来进行精度扩展,因此对式(1)用整数来实行的固定小数点计算,能容易地扩展其计算精度。

    储存器106用来储存为混沌计算器(反复)计算的[((N-1)/m)]+1位的m比特的整数输入值。

    但是如图2所示扩展了计算精度会使式(1)的计算速度急剧低下。因此有必要做到计算一次式(1)而产生更多的比特的随机数。而在另一方面我们知道对一定长的2进数列进行重复的比特运算(移动,置换,逻辑运算)来获得比较复杂的数列的方法。但是存在着重复运算的次数越多能够得到看上去越乱的数列,同时需要的时间则更长的问题。

    混沌计算器108将储存在储存器106的[((N-1)/m)]+1位的m比特的整数作为输入值,对式(1)用整数运算进行计算。由于[((N-1)/m)]+1位的m比特的整数演算的原理与在小学所学的多位数10进数的运算相同,在此省略其说明。

    数值抽出搅拌单元110将混沌计算器108的2N比特的计算结果(d)的前N比特(d1)作为(反复)计算式(1)的输入值存入储存器106,又将比特di和di+N(i=0,1...N-1)之间的排他逻和运算的N比特的结果作为随机数r(r0r1...rN-1)输出。本发明所提案的搅拌方法对有着显著不均匀分布的2N比特的数列(d),只进行上述特定的比特间的一对一的排他逻辑和运算,即能产生出均匀分布的与计算精度等长的随机数列。

    将用整数对式(1)的计算,展开成2进数的计算,对其进行观察,就能导出作为本发明的特征的搅拌方法。N比特的小数xt的小数点以下的部分作为N比特的整数a(a0a1...aN-1),则xt=0.a;将1-xt的小数点以下的部分作为N比特的整数b(b0b1...bN-1),则1-xt=0.b。也就是整数a和b之间是互补的关系。在这里使c=ab,d=4c(c,d为2N比特的整数)则d=4ab成为式(1)的整数运算的形式。在这里d(d0d1...d2N-1)的前N比特为xt+1的小数点以下的部分。

    在这里将d的前N比特作为N比特的整数d1,d的后N比特作为N比特的整数d2,则xt+1=0.d。将整数a,b,c,d展开成2进数,且其各比特为(a0a1...aN-1),(b0b1...bN-1),(c0c1...c2N-1)(d0d1...d2N-1)时,我们来考察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

    ci=0+kci(i=0)Σj=1i(bi-jaj-1)+kci(1≤i≤N)Σj=i2N-1(bj-1-(N-1)ai-j+(N-1))+kci(N<i≤2N-1)]]>

    (kci是从ci+1的进位,i=2N+1时,kci=0)

    在这里将ci用输入a的各比特的函数来表示,可得到式3

    式3

    ci=fi()(i=0)fi(a0,...,ai-1)=fi(a0~ai-1)(1≤i≤N-1)fi(aN-1,...,ai-N)=fi(aN-1~ai-N)(N≤i≤2N-1)]]>

    在这里ci所含有的输入a的各比特的个数作为该比特所持有的复杂度并以sci表示,则c的各比特的复杂度如式4所示。

    式4

    sci=i(0≤i≤N-1)2N-i(N≤i≤2N-1)]]>

    由于d=4c则d的各比特如式5所示。在这里向左移位时,最左位置的比特进入最右位置。

    式5

    di=ci+2(0≤i≤2N-3)ci-2N+2(2N-2≤i≤2N-1)]]>

    根据以上的考察,很明显,以产生的2进数列的各比特,都具有最大的复杂度为目标的,本发明所提案的搅拌方法,即由式(6)所产生的2进数列r的各比特所具有的复杂度sri均为N(计算精度的比特数)

    式6

    r=d1⊕d2]]>

    =(d0⊕dN)(d1⊕dN+1)...(dN-1⊕d2N-1)]]>

    (为排他逻辑和(XOR))

    对式6作为搅拌手法的效果,用图4,5,6,7来说明。

    图4是对式(1),用固定小数点128比特计算精度来计算时的d1和r的轨迹图。(将整数d1和r作为固定小数点计算的小数点以下的部分来变换成0-1之间的数值)。d1的轨道是依照式(1)的,具有混沌动态的轨迹。d1的数值在靠近0的时候,显示出单调增加的规则。而从r的轨迹中却找不到这样的规则。d1和r之间也看不出有其他规则或关联。

    图5显示的是d1的前8比特的数值的频度分布。图6是r的前8比特的数值的频度分布。数值样本数都是65536个。d1的分布近似于U字形状,而r的分布则近似于均匀分布。对r所进行的统计学的检定的结果,稍后作说明。

    由于输出的N比特的随机数r是由计算式(6)来产生,所以有可能在r和d1之间存在着某种相关关系。如果r和d1之间存在着线性相关关系,则由r能推测出d1,这也就是从某个r的2进数列可以推测出其他的r的2进数列。因此在这里对r和d1的对应关系,在bitmap图上进行确认。由于无法用高的计算精度(如128比特)来计算,表示r和d1的对应关系,在这里我们对计算精度16比特时的r和d1的对应关系进行观察。图7是取r为横轴,d1为纵轴,计算精度16比特时的所有可能产生的,r值和d1值之间的对应关系图。由于式(1)具有对称性,我们取输入值a从1到32767的32767个值进行了计算。其结果得到的d1的值为28671个,r的值为32767个。从图7,我们可以看到对于输入值a的从1到32767的值所计算出的d1值的分布是不均匀的,而对应于不均匀的d1的分布,r的分布在1到65535之间均匀地被分散了。也就是由式(6)的搅拌,将分布不均匀的d1变换成了均匀分布的随机数r。而且r和d1之间不存在线性的相关关系。从以上的结果我们可以确认到,对于由式(1)所计算出来的,具有不均匀分布特性的,xt(d1)的数列,用式(6)对其进行搅拌,可以得到均匀分布的随机数r。

    从以上对式(6)的搅拌手法的效果的考察,可以看出本发明所提案的搅拌手法是有效的。

    随机数储存器112将抽出搅拌单元产生的N比特的随机数储存其中。

    随机数产生控制单元114控制各动作单元的动作及其反复操作来产生随机数。

    图8是随机数产生装置100的动作的流程图的例。以随机数产生指今作为本流程所示的随机数产生装置100的动作的开始。

    将输入到初始值输入单元102的N比特的2进数列作为初始值接收(s102)。然后初始值变换单元104将接收到的N比特的2进数列变换成[((N-1)/m)]+1位的2m进数的整数(s104),并储存在储存器106中(s106)。之后,混沌计算器108将储存在储存器106的整数作为输入值,进行式(1)的计算(s108)。接着,抽出搅拌单元将2N比特的计算结果,整数(d)的前N比特的整数(d1)存入储存器106;并将前N比特的整数(d1)与后N比特的整数(d2)间进行比特间的排他逻辑和运算(s110)。接下来,将N比特随机数r储存于随机数储存器112中(s112)。本流程图所示的随机数产生装置100的动作终了。

    要连续产生随机数时,将上述(s108)到(s112)的流程反复执行即可。

    我们对用上述随机数产生装置在计算精度N=128比特时产生的随机数进行了7项目的统计学检定。由于本发明所提案的随机数产生器所输出的随机数是2进数列,我们采用了χ2检定手法。χ2分布是在样本数足够大时才有效的近似值。但是考虑到样本数较大时有可能掩盖了存在于数列局部的规则性,我们做了多种数量的样本的χ2检定。

    上述统计学的检定是将每次计算所产生的128比特的随机数r连在一起所进行的,因此有可能将存在于每次计算之间的,也就是每128比特之间可能存在的规则掩盖掉。在此我们将同样的检定,对每计算一次式(1),只取一个样本的数据采集方法,也实行了χ2检定。

    χ2检定包括:Equidistribution检定,Serial检定,Poker检定,Couponcollector′s检定,Run检定,Birthday spacings检定等6个项目。所有的项目的检定各做了1000次。对所取得的1000个的χ2值,分类成P<1%,5%,25%,50%,75%,95%,99%的7个区间,来与理论值进行比较。再加上serial correlation检定,共计做了7项目的检定。serial correlation检定是对进入95%信赖区间的检定结果进行计数。

    对将128比特的r连在一起的检定,所取得样本数为n1,n2,n3,n4时的结果,及将128比特的r的最前面的数比特作为一个样本时的样本数为nA1,nA2,nA3,nA4时的结果,如图9至图15所示。图9是从随机数列取出8比特的整数样本所做的Equidistribution检定的结果。样本数为n1(nA1)=216,n2(nA2)=216*10,n3(nA3)=216*100,n4(nA4)=216*1000,的4种,显示出良好的结果。图10是对所产生的8比特的整数样本进行Serial检定的结果。样本数分别为n1(nA1)=220,n2(nA2)=220*10,n3(nA3)=220*100,n4(nA4)=220*1000,也显示出良好的结果。图11从随机数列取出了3比特的整数样本,进行5分类,自由度为4的Poker检定的结果。样本数为n1(nA1)=210,n2(nA2)=210*10,n3(nA3)=210*100,n4(nA4)=210*1000,样本数n1(nA1)时的χ2值的进入1%区间的数量超过2%,但样本数增加后的其他的3个检定结果都显示出良好的结果。因此我们可以认为这是由于样本数过少而造成的结果。图12是自由度为30的Coupon collector′s检定的结果。样本数为n1(nA1)=210,n2(nA2)=210*10,n3(nA3)=210*100,n4(nA4)=210*1000,也显示出良好的结果。图13是32比特的整数随机数进行的Up run检定的结果。样本数为n1(nA1)=216,n2(nA2)=216*10,n3(nA3)=216*100,n4(nA4)=216*1000,也显示出良好的结果。图14是对25比特的整数数列进行的,参数m=225n=29,自由度为3的,Birthday spacings检定的结果。取样次数为n1(nA1)=103,n2(nA2)=104,n3(nA3)=105,n4(nA4)=106,也显示出良好的结果。图15是对4比特的整数数列进行的serialcorrelation检定的结果。样本数为n1(nA1)=210,n2(nA2)=210*10,n3(nA3)=210*100,n4(nA4)=210*1000,在95%的信赖区间,1000次的检定中相关系数c在μ-2σ≤c≤μ+2σ之内的数量,基本上都在950以上,可以说是良好的结果。以上严格的检定的结果,都显示出被检定的数列具有良好的统计学上的均匀分布的特性。有关以上的检定方法的具体内容记载于文献:(DONALD E.Knuth,“The Art of ComputerProgramming,Vol.2,Seminumerical Algorithms Third Edition”)

    依照本发明,可以由非线性函数高速地产生出具有混沌变化的长周期,并能通过严格的统计学的检定的随机数。此随机数能够应用于各种领域:计算机模拟,取样,数值解析,编程,决策,加密,美术,娱乐等。

    由于本发明在随机数产生上,只用了整数运算(加,乘,比特移位,逻辑运算等),又由于整数能容易地实行分割计算,因此即使是不同的计算系统(通用计算机(各种OS),专用硬件回路,微型计算机),只要能进行最基本的整数运算,即能做到由相同的输入值得到相同的输出值(结果)。

    本发明在计算精度N的比特时,每计算式(1)一次,即可以最少的搅拌数(一次),便可输出N比特的具有最大复杂度(N)的随机数。抑制了由计算精度的扩展而导致的随机数产生速度的低下,实现了随机数的高速产生。计算精度与随机数产生速度的关系如图16所示,达到了实用上的,高水准的数值。由于只用整数的加,乘,比特移位,逻辑运算等计算机最容易执行的计算,所以能容易地做成集成电路,实现更高的随机数产生速度。

    本发明与不能用于信息安全的,传统的随机数产生法不同。由于利用了混沌函数,并在产生随机数时利用了具有一方向性的排他逻辑和运算,使得从所产生的一部分随机数r,无法推测出xt,也无法推测出其他的随机数。

    由此可见,本发明的随机数产生装置,具有能适应各种需求的各种[性能与成本]的组合。具有好的扩展性,能应用于科研,及包含信息安全领域在内的,广泛的产业领域中。

    以上,用实施形态对本发明进行了说明,但本发明的技术手法并不只限于上述实施形态所述的范围,能够对上述实施形态进行变更或改良。上述发明是对产生混沌的式(1),进行每一次的计算,用最少的搅拌次数(一次),来输出最多的(N比特),具有最大复杂度(N)的搅拌手法。但是,以随机数的产生效率及品质的低下为代价,对上述实施形态做变更也是可能的。很明显,像这样的变更改良后的形态也属于本发明的技术的范围。

随机数产生装置和方法.pdf_第1页
第1页 / 共21页
随机数产生装置和方法.pdf_第2页
第2页 / 共21页
随机数产生装置和方法.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《随机数产生装置和方法.pdf》由会员分享,可在线阅读,更多相关《随机数产生装置和方法.pdf(21页珍藏版)》请在专利查询网上搜索。

本发明提供一种用非线性函数来产生具有产生速度,周期长,品质都达到实用上的高水准的随机数生成装置。依照函数式xt+14xt(1-xt),将输入的N(N是2以上的整数)比特的2进数列变换成(N-1)/m)+1位的m比特的整数(m是1以上的整数是舍去小数点以下的部分的计算);由具有N比特的计算精度和2N比特的计算结果的混沌计算器,来进行整数(分割)运算,产生2N比特的2进数列d(d0d1.d2N-1);。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1