JP4308293B2 - 乱数生成装置及び方法 - Google Patents

乱数生成装置及び方法 Download PDF

Info

Publication number
JP4308293B2
JP4308293B2 JP2007325253A JP2007325253A JP4308293B2 JP 4308293 B2 JP4308293 B2 JP 4308293B2 JP 2007325253 A JP2007325253 A JP 2007325253A JP 2007325253 A JP2007325253 A JP 2007325253A JP 4308293 B2 JP4308293 B2 JP 4308293B2
Authority
JP
Japan
Prior art keywords
bits
bit
random number
input
integer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007325253A
Other languages
English (en)
Other versions
JP2009129432A (ja
Inventor
際国 董
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to JP2007325253A priority Critical patent/JP4308293B2/ja
Priority to US12/594,956 priority patent/US8589460B2/en
Priority to CN2008800023487A priority patent/CN101636714B/zh
Priority to PCT/JP2008/071062 priority patent/WO2009066709A1/ja
Priority to TW097144486A priority patent/TW200923769A/zh
Publication of JP2009129432A publication Critical patent/JP2009129432A/ja
Application granted granted Critical
Publication of JP4308293B2 publication Critical patent/JP4308293B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

本発明は、乱数生成装置及びその方法に関する。
さまざまな応用分野で乱数が役立つ。例えば:シミュレーション、サンプリング、数値解析、コンピュータプログラミング、意思決定、暗号、美術、レクリエーションなど。そのため、多くの乱数生成法が考案された。コンピュータが高速になることにつれ、今までより多くの乱数を消費することになり、乱数生成器に更にこれを応えるように要請する。
一方、簡単な構成で複雑な数列を生成することでカオスによる乱数の生成が期待される。フォンノイマン(Von Neumann)らが式(1)による乱数生成を提案した以来、式(1)による乱数生成の考察が数多く報告された。
Figure 0004308293
Ulam,S.M.and Von Neumann,J.,‘‘On Combination of Stocastic Determistic Processes’’,Bull.AMS.,Vol.53,p.1120(1947))この文献で、式(1)による乱数生成が提案された。

香田徹・柿本厚志,‘‘擬似乱数とカオス’’,情報処理学会論文誌A,Vol.27No.3pp.289−296(1986)。この文献において、式(1)を用いて、閾値を0.5としたときに生成した乱数が良質であることを示したが、一回の写像で1ビットしか出力しないため、生成速度が遅い欠点がある。

Phatak,S.C.and Rao,S.S.,‘‘logisticmap:A Possible Random−number enerator’’,Phys.Rev.E,Vol.51 No.4,pp.3670−3678(1995)。この文献において、式(1)が生成した数列に対し、変換式を用いて、U字型の分布を持つxの系列を一様分布の数列に変換することができた。しかし、変換された数列に強い相関が存在している。そのため、シフトという手段使って、数列に存在する相関を弱めることができるが、統計的検定に耐えるようにするにはシフト数を大きくする必要があるとの結果を示した。

庄野克房,‘‘カオスエンジニアリング’’,シュプリンガーフェアラーリ東京,東京,2002。この文献は、式(1)を用いて乱数生成を高速にするには固定小数点演算を用いたハードウェア化が有効と述べている。

特開2005−228169 この文献は計算精度を拡張して、固定小数点演算による式(1)の計算方法を提案した。
以上の代表的な文献を含む今までの式(1)による乱数生成法に存在する共通の問題点は、乱数の周期長、品質(統計的乱数性)と生成速度をすべて(同時に)実用的に満足できるような高いレベルに達することが出来なかった点である。
発明が解決としようとする課題
本発明は汎用計算器と専用ハードウェアの両方において、式(1)を計算して、乱数の生成速度と生成される乱数の周期長、品質(統計的乱数性)が共に実用的な高いレベルに達するような乱数生成装置及び方法を提供することを目的とする。
課題を解決するための手段
本発明(請求項1)に係る乱数生成装置はN(Nは2以上の整数)ビットの2進数列を初期値として受付ける初期値入力部と、前記Nビットの2進数列を[((N−1)/m)]+1桁のm(mは1以上の整数、[ ]は小数点以下を切り捨て)ビットの整数に変換して、非線形写像関数xt+1=4x(1−x)に対する固定小数点演算を整数の演算による実現に備える初期値変換部と、前記初期値変換部の出力及び計算精度Nビットの「カオス計算器」が(繰り返し)計算するための入力(a(a...aN−1))を格納する格納レジスタと、前記格納レジスタに格納されている[((N−1)/m)]+1桁のmビットの整数を入力とし、関数xt+1=4x(1−x)に対し整数(分割)演算により実行し、2Nビットの計算結果d(d...d2N−1)を有する「カオス計算器」と、前記「カオス計算器」の2Nビットの計算結果dに対し、上位Nビット(d...dN−1)を関数xt+1=4x(1−x)を繰り返し計算するための入力として格納レジスタに格納し、また、2Nビットの計算結果dの特定のビットの間に論理演算をして得たNビットの結果を乱数r(r...rN−1)として出力する抽出・撹拌部と、前記抽出・撹拌部の出力するNビットの乱数を格納する乱数格納レジスタと、前記初期値入力部、初期値変換部、「カオス計算器」、抽出・撹拌部による乱数の生成を行わせる乱数生成制御部とを備え、前記入力aに対する計算結果である2Nビットのdの各ビットが「カオス計算器」の計算過程において、計算によって影響を受けた入力aのビット数が異なり、dが一様分布でない統計的特性を示し、前記dの各ビットがそれぞれ入力aから影響を受けているビットの数をそれぞれのビットが持つ複雑度とし、前記入力aとの関連するビット数(複雑度)の異なる2Nビットの片寄りのある分布を持つdに対し、前記抽出・撹拌部で行われるdの特定のビット間の論理演算で生成される乱数r(i=0,1,...N−1)が入力aから異なる形で影響を受けるビットの数をrが持つ複雑度として、それをsriであらわし、前記dの特定のビットの間の論理演算はその演算で生成される乱数rの各ビットr(i=0,1,...N−1)か持つsriがすべてのi値において、最大(sri=N、即ち入力aのすべてのビットから異なる形で影響を受けること)となることを条件とする(rを一様分布の乱数にして出力する)撹拌手段であることを特徴とする。
本発明(請求項2)に係る請求項1記載の乱数生成装置は前記(請求項1)に記載されるsri=Nとなる条件を満たすd(d...d2N−1)の特定のビット間の論理演算はdとdi+N(i=0,1...N−1)との間の1対1の論理演算であることを特徴とする。
本発明(請求項3)に係る請求項1記載の乱数生成装置は前記(請求項1及び請求項2)に記載されるsri=Nとなる条件を満たすd(d...d2N−1)の特定のビット間即ち、d
Figure 0004308293
ることを特徴とする。
本発明(請求項4)に係る乱数生成方法は、非線形写像関数xt+1=4x(1−x)に従い、与えられたN(Nは2以上の整数)ビットの2進数列を初期値として受け取り、受け取った前記Nビットの初期値を[((N−1)/m)]+1桁のm(mは1以上の整数、[ ]は小数点以下を切り捨て)ビットの整数に変換して、関数xt+1=4x(1−x)を計算する計算精度Nビット、2Nビットの計算結果を有する「カオス計算器」に入力し、前記「カオス計算器」を用いて、Nビットの入力(a(a...aN−1))に対し、整数演算による固定小数点演算を実行し、2Nビットの2進数列d(d...d2N−1)を生成し、前記「カオス計算器」の計算は2m(mは1以上の整数)ビットの計算能力(ここにいう計算能力は整数の加算、乗算、ビットシフト、ビットごとの論理演算などの計算ができることを指す)を有する計算器により、Nビットの整数演算を[((N−1)/m)]+1桁のmビットの整数に分割して計算され、前記「カオス計算器」の2Nビットの計算結果dに対し、上位Nビット(d...dN−1)を関数xt+1=4x(1−x)を繰り返し計算するための入力(a)とし、前記dに対し特定のビットの間に論理演算を行い、Nビットの結果を乱数r(r...rN−1)として出力し、前記入力aに対する計算結果である2Nビットのdの各ビットが「カオス計算器」の計算過程において、計算によって影響を受けた入力aのビット数が異なり、一様分布でない統計的な特性を示し、前記dの各ビットがそれぞれ入力aから影響を受けているビットの数をそれぞれのビットが持つ複雑度とし、前記入力aとの関連するビット数(複雑度)の異なる2Nビットの片寄りのある統計的分布特性を持つdに対し、前記dの特定のビットの間の論理演算で生成される乱数r(i=0,1,...N−1)が入力aから、異なる形で影響を受けるビットの数をrが持つ複雑度として、それをsriであらわし、前記dの特定のビットの間の論理演算はその演算で生成される乱数rの各ビットrが持つsriがすべてのi値において、最大(sri=N、即ち入力a(a...aN−1)のすべてのビットから異なる形で影響を受けること)となることを条件とする(rを一様分布の乱数にして出力する)撹拌方法を特徴とする。
本発明(請求項5)に係る請求項4記載の乱数生成方法は前記(請求項4)に記載されるsri=Nとなる条件を満たすd(d...d2N−1)の特定のビット間の論理演算はdとdi+N(i=0,1...N−1)との間の1対1の論理演算であることを特徴とする。
本発明(請求項6)に係る請求項4記載の乱数生成方法は前記(請求項4及び請求項5)に記載されるsri=Nとなる条件を満たすd(d...d2N−1)の特定のビット間(即ち、d
Figure 0004308293
であることを特徴とする。
発明の効果
本発明が式(1)の計算に固定小数点演算を用いることで、計算精度(ビット幅)において、浮動小数点演算よりも効率のよい形態と高速化を実現した。
本発明が式(1)を固定小数点演算で演算するときに、整数を用いて、そして利用可能な演算システムの計算能力に最も適した分割計算による「カオス計算器」を用いて計算することで、計算精度の拡張を容易にし、生成されるカオスの振る舞いをする時系列の長周期化を実現した、
本発明の特徴とする撹拌手段は式(1)を一回計算する度に計算精度と同じビット数の2進乱数列を出力することができ、且つ、U字形の分布を持つカオスの振る舞いをする時系列から、一様分布の2進乱数列に変換することができた。
以上の3つの基本、単純の操作により、様々な規模のシステムに対応できる、計算精度を容易に拡張できる、周期性と生成速度と統計的性質が同時に実用的な高いレベルに達する乱数を生成する乱数生成装置を実現した。このような単純操作による目的実現の形態は乱数生成器の性能を保証した上、低価格化を可能にし産業技術として望ましい形態である。
以下、図面を参照しながら、発明の実施の形態を説明し、その効果を示す。本実施形態は本発明が式(1)の計算において、最も有効な計算方法を採用し、その上、最も有効な撹拌手段を用いた乱数生成装置及び方法であることを説明する。
図1は本発明の一実施形態である乱数生成装置100の構成図を示す。本実施形態の乱数生成装置100はNビットの2進数列に対し、2m(mは1以上の整数)ビットの計算能力を有する「カオス計算器」を用いて繰り返し計算し、「カオス計算器」の計算結果である2Nビット2進数列に対し、上位Nビットと下位Nビットとの間にビットごとの排他的論理和演算により長周期、良質な2進乱数列を高速に生成する。乱数生成装置100は初期値入力部102、初期値変換部104、格納レジスタ106、「カオス計算器」108、データ抽出・撹拌部110、乱数格納レジスタ112、乱数生成制御部114を備える。
初期値入力部102はNビットの2進数列を固定小数点演算を行うための初期値の小数点以下の部分として受付ける。式(1)の計算を固定小数点演算にすることで、計算器のビット幅の利用効率を浮動小数点演算よりも高くした。一般に、高い計算精度を必要とする科学計算は浮動小数点演算が使われる。しかし、浮動小数点倍精度(仮数部52ビット、指数11ビット、符号1ビット)で式(1)の計算を観察すると、使われる指数部は最大6ビットであることがわかる。このように、式(1)の計算はハードウェアにしてもOS上で計算しても、固定小数点演算のほうが合理的で有効であることが明らかである。
初期値変換部104はNビットの2進数列を[((N−1)/m)]+1桁のmビットの整数に変換して、式(1)の固定小数点演算を整数の演算による実現に備える。式(1)の固定小数点演算を整数の計算にしたことで、計算はより高速となり、計算精度の拡張も容易となった。2進計算機の上で式(1)を計算精度Nビットの固定小数点演算をするとき、xが1/2に離散化され、区間(1/2,1−1/2)の中で振舞いをする。そのため、2m(例えば64)ビット整数をサポートするシステムでは計算精度m(例えば32)ビット以下の式(1)の計算に整数を用いて容易にできる。整数の乗算、加算などは分割計算により計算精度が容易に拡張できることから、式(1)に対し、整数演算を用いた固定小数点演算の計算精度を容易に拡張できる。
格納レジスタ106は計算精度Nビットの「カオス計算器」が(繰り返し)計算するための入力としての[((N−1)/m)]+1桁のmビットの整数を格納する。
しかし、計算精度を拡張すると、図2に示したように写像速度が急速に低下する。そのため、一回の写像でより多いビットの数列の出力が必要となる。一方、一定の長さの数列に対し、ビット操作(移動、置換、論理演算)を繰り返すことにより複雑な数列が得られることが知られている。しかし、操作の繰り返す回数をより多くすることでよりランダムに見える数列が得られるが、操作回数を多くすると処理に要する時間も長くなるという問題がある。
「カオス計算器」108は格納レジスタ106に格納されている[((N−1)/m)]+1桁のmビットの整数を入力とし、式(1)に対し整数演算により実行する。[((N−1)/m)]+1桁のmビットの整数における式(1)の演算(乗算、減算,加算)の原理は小学校で学んだ多桁10進数の演算と同じであるため、説明を省略する。
抽出・撹拌部110は「カオス計算器」108の2Nビットの計算結果(d)に対し、上位Nビット(d1)を式(1)を繰り返し計算するための入力として、格納レジスタ106に格納する。また、ビットdとdi+N(i=0,1...N−1)との間の排他的論理和演算(ri
Figure 0004308293
が提案する撹拌手段及び撹拌方法は著しい偏りの分布を持つ2Nビットの数列(d)に対し、特定のビット間に1対1の排他的論理和の演算を施すだけで、一様分布の計算精度のビット幅長(Nビット)の乱数の生成ができた。
整数を用いる式(1)の計算を2進数の計算に展開して観察すると本発明の特徴とする撹拌方法が導かれる。Nビットの小数xの小数点以下の部分をNビットの整数aとすると、x=0.aが成立する。1−xの小数点以下の部分をNビットの整数bとすると、
Figure 0004308293
となっている。ここにc=ab、d=4cとすると(c、dは2Nビットの整数)、d=4abは式(1)の整数演算形態となる。ただし、dは2Nビットの整数であり、その上位Nビットはxt+1の小数点以下の部分になる。
ここでdの上位Nビットからなる整数をd1とし、下位Nビットからなる整数をd2とするとxt+1=0.d1が成り立つ。整数a、b、c、dを2進数に展開し、それぞれの各ビットを(a...aN−1)、(b...bN−1)、(c...c2N−1)、(d...d2N−1)とし、式c=ab、d=4cの演算過程とその結果を考察する。式d=4cの整数4の乗算は左へ2ビットシフトで実現されるため、まず、式c=ab(2つのNビットの2進整数aとb)の乗算の過程とその結果cを考察する。
c=abの演算を2進数に展開すると、図3のようになる。図3からcの各ビットcとa、bの各ビットの間に式(2)の関係が存在することが分かる。
Figure 0004308293
(kciはci+1からの桁上げ、i=2N−1のとき、kci=0)
ここに、cを入力aの各ビットの関数であらわすと、式(3)が得られる。
Figure 0004308293
ここにcの各ビットcが含む入力aの各ビットの数をそのビットが持つ複雑度とし、それをsciとすると、cの各ビットの複雑度は式(4)となる。
Figure 0004308293
dの各ビットはd=4cにより、式(5)となる。ただし、左ビットシフト演算で上位に押し出されたビットはその順番で下位に入れる。
Figure 0004308293
以上の考察に基づき、生成される2進数列の各ビットが最大な複雑度を有することを目標とした本発明が提案する撹拌方法である式(6)が生成する2進乱数列rの各ビットが有する複雑度sriはすべてN(計算精度ビット長)であることが明らかとなる。
Figure 0004308293
式(6)を手段とする撹拌の3つの効果を図4,5,6,7を用いて説明する。
図4は固定小数点演算計算精度128ビットで計算されたd1とrの軌道である(整数値d1とrをそれぞれ固定小数点表示の小数点以下の部分とし、0〜1の間の値に変換して表示した)。d1の軌道は式(1)によるカオスの振る舞いをする軌道であり(固定小数点演算128ビット)、d1の値が0に近付いたときには数回の単調増加の規則が確認できる。それに対しrの軌道にはこのような規則は見当たらない。また、d1とrの間にそれ以外の規則のあるような関連も見られない。
図5は計算精度128ビットで計算されたd1の先頭8ビットの値の度数分布で、図6はrの先頭8ビットの値の度数分布である。データ数はそれぞれ65536である。d1の分布はU字形に近い形になっている。それに対し、rの分布はほぼ一様分布になっていることが確認できる。なお、rに対する統計的検定の結果は後に示す。
出力されるNビットの乱数rは式(6)により生成されることから、rとd1の間に何らかの相関関係を持つ可能性があると考えられる。両者の間に線形的な相関関係をもつのであれば、rからd1即ちxを推測することが可能となる。それは、あるrの2進数列から他のrの2進数列を推測できるという意味でもある。ここに、両者の対応関係をビットマップ上で確認する。高い計算精度(例えば128ビット)でのd1とrのすべての対応関係を計算、表示することができないため、ここに計算精度16ビットでの対応関係を出力して観察する。図7はd1を横軸に、対応するrを縦軸にして計算精度16ビットのときのとり得るすべてのd1を計算し、それとrの対応関係をプロットしたビットマップである。式(1)が対称性を有するため、計算は入力aを1〜32767の32767個の値にして行った。その結果、計算精度16ビットのとき、aのとり得る65534(16ビットの2進整数0...0と10...0を除く)の値に対し、得られたd1の値は28671個であり、rの値の数は32767である、図7から、入力aの値1〜32767に対し、d1の分布は偏っているが、偏っているd1の分布に対し、rは1〜65535の間に均一に分散されていることが観察される。出力rの分布が式(6)の撹拌により、偏りのあるd1をとり得る値の全域に均一に分散されていることを図7でわかる。またrとd1の間に線形的な相関関係を持たないことも確認された。以上の結果から、式(1)で計算される偏りのあるx(d1)の系列に対し、式(6)による撹拌がその偏りを拡散し、一様分布のrの系列を出力する効果があることを確認できた。
以上式(6)の撹拌手段の効果を考察した結果、本発明が提案する撹拌手段が有効であることを示している。
乱数格納レジスタ112は抽出・撹拌部が生成したNビットの乱数を2進数列で格納する。
乱数生成制御部114は乱数生成のための各部の動作と繰り返し作業の制御を行う。
図8は乱数生成装置100の動作の一例を示すフローチャートである。乱数生成命令により本フローチャートに示す乱数生成装置100の動作はスタートする。
初期値入力部102に入力されたNビット2進数列を初期値として受け取る(s102)。そして、初期値変換部104は受け取ったNビットの2進数列を[((N−1)/m)+1]桁の2進数の整数に変換し(s104)、格納レジスタ106に格納する(s106)。次は106に格納されている整数を「カオス計算器」108が入力として写像する(s108)。そして、抽出・撹拌部は写像結果である2Nビット長の整数(d)の上位Nビットの整数(d1)を格納レジスタ106に格納し、上位Nビットの整数(d1)と下位Nビットの整数(d2)との間にビットごとの排他的論理和を演算する(s110)。続いて、乱数格納レジスタ112はNビットの乱数rを格納し(s112)、本フローチャートに示す乱数生成装置100の動作は終了する。
乱数を継続して生成する場合、前記(s108)から(s112)を繰り返すことで乱数が生成される。
前記乱数生成装置を用いて計算精度N=128ビットで生成した乱数列を7項目の統計的検定を行った。本発明が提案する乱数生成器の出力が2進ビット列であるため、統計的検定はχ検定を採用した。χ分布はサンプル数が十分大きいときだけ有効な近似値であるが局所的にランダムではない挙動を平滑化してしまう可能性を考慮して、複数のサンプル数において、χ検定を行った。
また、計算精度128ビットの生成器は一回の計算(写像)で出力される2進数列rはr...r127の128ビットであるため、検定は出力されるすべてのビットに対し行った。しかし、この検定方法では、一回の写像で複数の2進ブロック(サンプル)を出力するため、写像ごとに生成される128ビットの乱数の間に存在するランダムでない挙動を平滑化してしまう可能性がある。ここに同じ検定を「一回の写像に1つの2進ブロック(サンプル)しか出力しない場合」に対しても行った。
χ検定は等分布検定、シリアル検定、ポーカー検定、クーポン券収集検定、上昇連検定、誕生日間隔検定の6項目を行った。各検定においてのサンプル数はそれぞれの検定のカテゴリ数に応じて決定するが、すべての項目の検定は1000回行った。χ検定は得られる1000個のχ値に対し、P<1%,5%,25%,50%,75%,95%,99%の7のカテゴリに分類して、その理論値との比較を行う。それらの検定に加え、シリアル相関検定の計7各項の検定をした。シリアル相関検定は95%の信頼区間に入る数を計数する。
それぞれの128ビットの数列rのすべてのビットに対する検定の4種類のサンプル数をn1、n2、n3、n4としたときの結果と、128ビットの数列rの先頭1つの2進ブロック(サンプル)しか出力しない場合に対する検定の4週類のサンプル数をnA1、nA2、nA3、nA4としたときの結果を図9〜15に示す。図9は8ビットの整数数列(0〜255)を生成し、等分布検定を行った結果である。サンプル数はn1(nA1)=216、n2(nA2)=216×10、n3(nA3)=216×100、n4(nA4)=216×1000の4通りとした。検定結果は理論値の近傍にあり,良好な結果を示している。図10は8ビットの整数数列を生成し、シリアル検定(2次元の等分布検定)を行った結果である。サンプル数はn1(nA1)=220、n2(nA2)=220×10、n3(nA3)=220×100、n4(nA4)=220×1000の4通りとした。検定結果が理論値の近傍に点在し、良好な結果を示している。図11は3ビットの整数数列を生成し、5週類のカテゴリ、自由度4のポーカー検定を行った結果である。サンプル数はn1(nA1)=210、n2(nA2)=210×10、n3(nA3)=210×100、n4(nA4)=210×1000の4通りとした。n1(nA1)の場合のχ値の上側の1%に入る数が2%を超え、やや多いが、サンプル数を増やしたその他の場合は何れも良好な結果となっている。n1(nA1)の検定結果はデータ数が少な過ぎることが原因といえる。図12は自由度30のクーポン券収集検定を行った結果である。サンプル数はn1(nA1)=210、n2(nA2)=210×10、n3(nA3)=210×100、n4(nA4)=210×1000の4通りとした。良好な結果を示している。図13は32ビットの整数の数列を生成し、上昇連の検定を行った結果である、サンプル数はn1(nA1)=216、n2(nA2)=216×10、n3(nA3)=216×100、n4(nA4)=216×1000の4通りとした。何れも良好な結果を示している。図14は25ビットの整数数列を生成し,パラメータm=225、n=2自由度3の誕生日間隔検定を行った結果である。試行回数はn1(nA1)=10、n2(nA2)=10、n3(nA3)=10、n4(nA4)=10の4通りとした。良好な結果を示している。図15は4ビットの整数(0〜15)の数列を生成し、シリアル相関検定を行った結果である。サンプル数はn1(nA1)=210、n2(nA2)=210×10、n3(nA3)=210×100、n4(nA4)=210×1000の4通りとした。95%の信頼区間では1000回の検定で、相関係数Cがμ−2σ≦C≦μ+2σに入る数はほとんど950以上になっている。良好な結果と言える、厳しい検定の結果が何れも検定対象はランダムといえる結果を示している。なお、検定の具体的な手順は文献{DONALD E.Knuth, “The Art of Computer Programming, Vol.2, Seminumerical Algorithms Third Edition‘’,株式会社アスキー(2004))}に示されている。
本発明によれば、非線形関数から生成するカオスの振る舞いをする長周期、厳しい統計的検定に耐える乱数を高速に生成できる、それはさまざまな応用分野:シミュレーション、サンプリング、数値解析、コンピュータプログラミング、意思決定、暗号、美術、レクリエーションなどで利用できる。
本発明は乱数の生成において、整数を用いた計算(加算、乗算、ビットシフト、論理演算)だけで実行されるため、整数の分割計算が容易であるから、異なるシステム(汎用計算機(各種のOS)、専用ハードウェア、マイクロコンピュータなど)であっても、最も基本的な整数演算(加算、乗算、ビットシフト、ビットごとの論理演算)ができるのであれば、同じ入力による同じ出力が得られる。
本発明は計算精度Nビットのとき、一回の写像につき、最小の撹拌回数(一回)で最大の複雑度(N)を有するビットを最多(Nビット)に出力ができ、計算精度の拡張による乱数生成速度の低下を抑え、より高速な乱数生成を実現した。計算精度と乱数生成速度の関係の例を図16に示す。十分に実用的な高いレベルに達した数値である。加算、乗算、ビットシフト、論理演算などのコンピュータが最も得意とした計算しか行わないため、集積回路化も容易に実現でき、更なる高速化も容易である。
本発明はセキュリティー用に不向きな伝統的乱数生成法である線形合同法と違い、カオスの振る舞いをする時系列を生成する非線形写像を計算することにより、乱数を生成する上、撹拌方法に一方向性を有する排他的論理和の演算を施したことで、出力された乱数から内部状態xを予測することができない。また、出力された一部の乱数から他の乱数を推測することもできない。
従って、本発明の乱数生成装置は様々なニーズに対応できる「性能−コスト」の組合せを持ち、拡張性も富み、科学研究、セキュリティー分野を含む幅広い産業の分野での応用が可能である。
以上、実施形態を用いて本発明を説明したが、本発明の技術手段は上記実施形態に記載の範囲に限定されることではない。上記実施形態に変更または改良を加えることができる。また、上記発明は計算式がシンプルなカオスを生成する式(1)に対し、一回の写像につき、最小の撹拌回数(一回)で最大の複雑度(N)を有するビットを最多(Nビット)に出力する撹拌手段であるが、乱数の生成効率及び品質の低下を代償に上記実施形態に変更を加えることも可能である。そのような変更、改良を加えた形態も本発明の技術の範囲に含まれることは明らかである。
本発明の一実施形態である乱数生成装置の構成図 m=32のときの計算精度と写像速度の間の関係を示す表。 Nビットの整数の乗算(c=ab)を2進数に展開した計算式。 d1とrの軌道の比較の図。 d1の上位8ビットコードの分布を示す図。 rの上位8ビットコードの分布を示す図。 d1とrの対応関係を示す図。 乱数生成装置100の動作の一実施例を示すフローチャート。 乱数に対する等分布検定の結果を示す図。 乱数に対するシリアル検定の結果を示す図。 乱数に対するポーカー検定の結果を示す図。 乱数に対するクーポン券収集検定の結果を示す図。 乱数に対する上昇連検定の結果を示す図。 乱数に対する誕生日間隔検定の結果を示す図。 乱数に対するシリアル相関検定の結果を示す図。 m=32のときの計算精度と乱数生成速度の間の関係を示す表。
100 乱数生成装置
102 初期値入力部
104 初期値変換部
106 格納レジスタ
108 「カオス計算器」
110 抽出・撹拌処理部
112 乱数格納レジスタ
114 乱数生成制御部
〔手数料に関する特記事項〕特許法第195条の2の規定による審査請求料の免除

Claims (6)

  1. 乱数生成装置であって、
    N(Nは2以上の整数)ビットの2進数列を初期値として受付ける初期値入力部と、
    前記Nビットの2進数列を[((N−1)/m)]+1桁のm(mは1以上の整数、[ ]は小数点以下を切り捨て)ビットの整数に変換して、非線形写像関数xt+1=4x(1−x)に対する固定小数点演算を整数の演算による実現に備える初期値変換部と、
    前記初期値変換部の出力及び計算精度Nビットの「カオス計算器」が(繰り返し)計算するための入力(a(a...aN−1))を格納する格納レジスタと、
    前記格納レジスタに格納されている[((N−1)/m)]+1桁のmビットの整数を入力とし、関数xt+1=4x(1−x)に対し整数(分割)演算により実行し、2Nビットの計算結果d(d...d2N−1)を有する「カオス計算器」と、
    前記「カオス計算器」の2Nビットの計算結果dに対し、上位Nビット(d...dN−1)を関数xt+1=4x(1−x)を繰り返し計算するための入力として格納レジスタに格納し、また、2Nビットの計算結果dの特定のビットの間に論理演算をして得たNビットの結果を乱数r(r...rN−1)として出力する抽出・撹拌部と、
    前記抽出・撹拌部の出力するNビットの乱数rを格納する乱数格納レジスタと、
    前記初期値入力部、初期値変換部、「カオス計算器」、抽出・撹拌部による乱数の生成を行わせる乱数生成制御部と、
    を備え、
    前記入力aに対する計算結果である2Nビットのd(d...d2N−1)の各ビットが「カオス計算器」の計算過程において、計算によって影響を受けた入力a(a...aN−1)のビット数が異なり、dが一様分布でない統計的特性を示し、
    前記d(d...d2N−1)の各ビットがそれぞれ入力a(a...aN−1)から影響を受けているビットの数をそれぞれのビットが持つ複雑度とし、
    前記入力a(a...aN−1)との関連するビット数(複雑度)の異なる2Nビットの片寄りのある分布を持つd(d...d2N−1)に対し、
    前記抽出・撹拌部で行われるd(d...d2N−1)の特定のビット間の論理演算で生成される乱数r(i=0,1,...N−1)が入力a(a...aN−1)から異なる形で影響を受けるビットの数をrが持つ複雑度として、それをsriであらわし、
    前記dの特定のビットの間の論理演算はその演算で生成される乱数rの各ビットr(i=0,1,...N−1)が持つsriがすべてのi値において、最大(sri=N、即ち入力a(a...aN−1)のすべてのビットから異なる形で影響を受けること)となることを条件し、(rを一様分布の乱数にして出力する)撹拌手段を構成することを特徴とする乱数生成装置。
  2. 前記(請求項1)に記載されるすべてのi値において、sri=Nとなる条件を満たすd(d...d2N−1)の特定のビット間の論理演算はdとdi+N(i=0,1...N−1)との間の1対1の論理演算であることを特徴とする請求項1記載の乱数生成装置。
  3. 前記(請求項1及び請求項2)に記載されるすべてのi値において、sri=Nとなる条件を満たすdの特定のビット間即ち、dとdi+N(i=0,1...N−1)との間の1対1の論理演算は
    Figure 0004308293
  4. 乱数生成方法であって、
    非線形写像関数xt+1=4x(1−x)に従い、
    与えられたN(Nは2以上の整数)ビットの2進数列を初期値として受け取り、
    受け取った前記Nビットの初期値を[((N−1)/m)]+1桁のm(mは1以上の整数、[ ]は小数点以下を切り捨て)ビットの整数に変換して、関数xt+1=4x(1−x)を計算する計算精度Nビット、2Nビットの計算結果を有する「カオス計算器」に入力し、
    前記「カオス計算器」を用いて、Nビットの入力(a(a...aN−1))に対し、整数演算による固定小数点演算を実行し、2Nビットの2進数列d(d...d2N−1)を生成し、
    前記「カオス計算器」の計算は2m(mは1以上の整数)ビットの計算能力(ここにいう計算能力は整数の加算、乗算、ビットシフト、ビットごとの論理演算などの計算ができることを指す)を有する計算器により、Nビットの整数演算を[((N−1)/m)]+1桁のmビットの整数に分割して計算され、
    前記「カオス計算器」の2Nビットの計算結果dに対し、上位Nビット(d...dN−1)を関数xt+1=4x(1−x)を繰り返し計算するための入力(a)とし、
    前記dに対し、特定のビットの間に論理演算を行い、Nビットの結果を乱数r(r...rN−1)として出力し、
    前記入力aに対する計算結果である2Nビットのdの各ビットが「カオス計算器」の計算過程において、計算によって影響を受けた入力aのビット数が異なり、一様分布でない統計的な特性を示し、
    前記dの各ビットがそれぞれ入力aから影響を受けているビットの数をそれぞれのビットが持つ複雑度とし、
    前記入力aとの関連するビット数(複雑度)の異なる2Nビットの片寄りのある統計的分布特性を持つdに対し、
    前記dの特定のビットの間の論理演算で生成される乱数rの各ビットr(i=0,1,...N−1)が入力aから、異なる形で影響を受けるビットの数をrが持つ複雑度として、それをsriであらわし、
    前記dの特定のビットの間の論理演算はその演算で生成される乱数rが持つsriがすべてのi値において、最大(sri=N、即ち入力a(a...aN−1)のすべてのビットから異なる形で影響を受けること)となることを条件とし、(rを一様分布の乱数にして出力する)撹拌方法を構成することを特徴とする乱数生成方法。
  5. 前記(請求項4)に記載されるすべてのi値において、sri=Nとなる条件を満たすd(d...d2N−1)の特定のビット間の論理演算はdとdi+N(i=0,1...N−1)との間の1対1の論理演算であることを特徴とする請求項4記載の乱数生成方法。
  6. 前記(請求項4及び請求項5)に記載されるすべてのi値において、sri=Nとなる条件を満たすd(d...d2N−1)の特定のビット間(即ち、dとdi+N(i=0,1...N−1)との間)の
    Figure 0004308293
    記載の乱数生成方法。
JP2007325253A 2007-11-20 2007-11-20 乱数生成装置及び方法 Expired - Fee Related JP4308293B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007325253A JP4308293B2 (ja) 2007-11-20 2007-11-20 乱数生成装置及び方法
US12/594,956 US8589460B2 (en) 2007-11-20 2008-11-13 Random number generator and random number generating method thereof
CN2008800023487A CN101636714B (zh) 2007-11-20 2008-11-13 随机数产生装置和方法
PCT/JP2008/071062 WO2009066709A1 (ja) 2007-11-20 2008-11-13 乱数生成装置及び方法
TW097144486A TW200923769A (en) 2007-11-20 2008-11-18 Random number generating apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007325253A JP4308293B2 (ja) 2007-11-20 2007-11-20 乱数生成装置及び方法

Publications (2)

Publication Number Publication Date
JP2009129432A JP2009129432A (ja) 2009-06-11
JP4308293B2 true JP4308293B2 (ja) 2009-08-05

Family

ID=40667531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007325253A Expired - Fee Related JP4308293B2 (ja) 2007-11-20 2007-11-20 乱数生成装置及び方法

Country Status (5)

Country Link
US (1) US8589460B2 (ja)
JP (1) JP4308293B2 (ja)
CN (1) CN101636714B (ja)
TW (1) TW200923769A (ja)
WO (1) WO2009066709A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4345072B1 (ja) * 2008-07-28 2009-10-14 際国 董 乱数生成・管理方法及び装置
WO2011158948A1 (en) 2010-06-18 2011-12-22 Semiconductor Energy Laboratory Co., Ltd. Method of manufacturing power storage device
US8564529B2 (en) 2010-06-21 2013-10-22 Semiconductor Energy Laboratory Co., Ltd. Method for driving liquid crystal display device
WO2011162166A1 (en) 2010-06-25 2011-12-29 Semiconductor Energy Laboratory Co., Ltd. Liquid crystal display device and electronic appliance
US9286848B2 (en) 2010-07-01 2016-03-15 Semiconductor Energy Laboratory Co., Ltd. Method for driving liquid crystal display device
CN102971784B (zh) 2010-07-02 2016-08-03 株式会社半导体能源研究所 液晶显示装置及驱动液晶显示装置的方法
US8868630B1 (en) * 2011-03-18 2014-10-21 Board Of Regents Of The University Of Texas System Verification of pseudorandom number streams
CN107203365B (zh) 2016-03-17 2020-09-08 阿里巴巴集团控股有限公司 随机数的生成及获取方法和装置
JP6980407B2 (ja) * 2016-05-30 2021-12-15 ローム株式会社 乱数生成方法
CN106919365A (zh) 2016-08-29 2017-07-04 阿里巴巴集团控股有限公司 计算机系统中随机数的生成方法及装置
CN109670343B (zh) * 2017-10-17 2023-01-03 华邦电子股份有限公司 随机数产生系统及其随机数产生方法
TWI634480B (zh) * 2017-10-17 2018-09-01 華邦電子股份有限公司 隨機數產生系統及其隨機數產生方法
WO2019162808A1 (ja) 2018-02-23 2019-08-29 株式会社半導体エネルギー研究所 表示装置及びその動作方法
JP7019475B2 (ja) * 2018-03-23 2022-02-15 東芝情報システム株式会社 乱数生成装置
CN110308892B (zh) * 2019-07-01 2023-08-22 湖南国科微电子股份有限公司 一种基于查表法的游程测试方法
EP3770751B1 (en) * 2019-07-25 2023-10-18 PUFsecurity Corporation High speed encryption key generating engine
CN116126282B (zh) * 2022-12-21 2023-08-18 辉羲智能科技(上海)有限公司 自动驾驶辅助控制方法、系统及其ai计算方法、装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014445A (en) * 1995-10-23 2000-01-11 Kabushiki Kaisha Toshiba Enciphering/deciphering apparatus and method incorporating random variable and keystream generation
JPH1153173A (ja) * 1997-08-07 1999-02-26 Nec Corp 擬似乱数発生方法及び装置
US6263146B1 (en) * 1998-11-12 2001-07-17 Communications Research Laboratory Ministry Of Posts And Telecommunications Apparatus for optically generating chaotic random numbers
CA2356629A1 (en) * 1998-12-18 2000-06-29 Joseph Edward Quinn A random number generator based on the spontaneous .alpha.-decay
US7209885B1 (en) * 1999-06-28 2007-04-24 Yazaki Corporation Compressed code generating method and compressed code decompressing method
JP2003023421A (ja) * 2001-07-09 2003-01-24 C4 Technology Inc 暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置
JP2003152706A (ja) * 2001-11-12 2003-05-23 Toshiba Information Systems (Japan) Corp 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置
EP1326363A1 (en) * 2001-12-27 2003-07-09 STMicroelectronics S.r.l. Chaos-based block encryption
EP1532515A2 (en) 2002-06-06 2005-05-25 Cryptico A/S Method for improving unpredictability of output of pseudo-random number generators
US7047262B2 (en) * 2002-08-21 2006-05-16 Koninklijke Philips Electronics N.V. Entropy estimation and decimation for improving the randomness of true random number generation
JP2005228169A (ja) * 2004-02-16 2005-08-25 Bittech Inc 乱数生成装置
JP4363273B2 (ja) * 2004-07-28 2009-11-11 日本ビクター株式会社 乱数発生回路

Also Published As

Publication number Publication date
TWI435265B (ja) 2014-04-21
US8589460B2 (en) 2013-11-19
CN101636714B (zh) 2012-02-01
TW200923769A (en) 2009-06-01
JP2009129432A (ja) 2009-06-11
WO2009066709A1 (ja) 2009-05-28
US20100235418A1 (en) 2010-09-16
CN101636714A (zh) 2010-01-27

Similar Documents

Publication Publication Date Title
JP4308293B2 (ja) 乱数生成装置及び方法
Connolly et al. Stochastic rounding and its probabilistic backward error analysis
Zhu et al. Secure image encryption scheme based on a new robust chaotic map and strong S-box
Cang et al. Pseudo-random number generator based on a generalized conservative Sprott-A system
JPH07248841A (ja) 非線形関数発生装置およびフォーマット変換装置
US11169778B2 (en) Converting floating point numbers to reduce the precision
Chakraborti et al. A phase II nonparametric control chart based on precedence statistics with runs-type signaling rules
JP2022513300A (ja) 数を変換するためのハードウェア・モジュール
US20040078401A1 (en) Bias-free rounding in digital signal processing
US6792439B2 (en) Method and apparatus for generating random numbers with improved statistical properties
Tynymbayev et al. Devices for multiplying modulo numbers with analysis of the lower bits of the multiplier
JP2006338045A (ja) カオス・ニューラルネットワークを用いた乱数生成システム
Keller Chaotic pseudo random number generators: A case study on replication study challenges
CN102904715A (zh) 基于耦合混沌映射系统的并行伪随机比特发生器
Xingbo Number of digits in two integers and their multiplication
Isupov et al. RNS-based data representation for handling multiple-precision integers on parallel architectures
JP2005228169A (ja) 乱数生成装置
Miyazaki et al. Period and link length of logistic map over integers
WO2023199440A1 (ja) 符号付き整数の剰余積計算装置、符号付き整数の剰余積計算方法及び、プログラム
Al-Qadeeb et al. Software Simulation of Variable Size Message Encryption Based RSA Crypto-Algorithm Using Ms. C# .NET
Haider et al. A novel pseudo-random number generator based on multivariable optimization for image-cryptographic applications
JP2006285830A (ja) 疑似乱数生成器強度評価装置及び暗号化装置
KR20130024487A (ko) 확장된 nist 소수를 이용한 모듈러 곱셈 및 모듈러 지수승 방법
JP2003076272A (ja) カオス・ニューラルネットワークを用いた乱数生成システム
López-Hernández et al. Digital implementation of a pseudo-random noise generator using chaotic maps

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090407

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

R150 Certificate of patent or registration of utility model

Ref document number: 4308293

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees