Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5455664B2 - 擬似乱数生成装置及び擬似乱数生成用プログラム - Google Patents
[go: Go Back, main page]

JP5455664B2 - 擬似乱数生成装置及び擬似乱数生成用プログラム - Google Patents

擬似乱数生成装置及び擬似乱数生成用プログラム Download PDF

Info

Publication number
JP5455664B2
JP5455664B2 JP2010005823A JP2010005823A JP5455664B2 JP 5455664 B2 JP5455664 B2 JP 5455664B2 JP 2010005823 A JP2010005823 A JP 2010005823A JP 2010005823 A JP2010005823 A JP 2010005823A JP 5455664 B2 JP5455664 B2 JP 5455664B2
Authority
JP
Japan
Prior art keywords
map
bijection
mapping
bijective
pseudo
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.)
Active
Application number
JP2010005823A
Other languages
English (en)
Other versions
JP2011145464A (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.)
Nihon University
Toshiba Information Systems Japan Corp
Original Assignee
Nihon University
Toshiba Information Systems Japan Corp
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 Nihon University, Toshiba Information Systems Japan Corp filed Critical Nihon University
Priority to JP2010005823A priority Critical patent/JP5455664B2/ja
Publication of JP2011145464A publication Critical patent/JP2011145464A/ja
Application granted granted Critical
Publication of JP5455664B2 publication Critical patent/JP5455664B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、全単射写像を用いて擬似乱数を生成する擬似乱数生成装置及び擬似乱数生成用プログラムに関するものである。
従来の擬似乱数生成装置においては、有限演算実装における非線形(カオス)写像を用いた擬似乱数生成法を採用したものが知られている(特許文献1参照)。この従来例にあっては、全単射を保証しない写像を用いていた。また、全単射を保証するものでも、短周期帯に落ち入ることで長い周期が得られなくなることから、周期を監視する機構が必要であった。
また、最大周期と一様性を保証する擬似乱数生成器として線形合同法や、M系列乱数(GFSR:Generalized Feedbacked Shift Register)が知られている。しかしながら、周期が限定されており生成パターンも一方向的に決定されたものを出力する方式であり、生成パターンが限られていた。また、これらの生成法では、一素周期の中で各値が一度だけ出現する。従って、ある値を観測したらその後、その値はその周期中で出現しない。
上記GFSRの改良としてTwisted GFSR、メルセンヌツイスターが存在するが、周期を延ばすパラメータ帯が固定値であり、それを探索する必要があるという労力が存在する。
更に、写像変更ないしは写像変換を用いた擬似乱数生成装置としては、二次元キャットマップのような写像を用いるものが知られている(特許文献2参照)。しかしながら、この二次元キャットマップは暗号化や復号に不適切と言われており、また、周期延長が可能なものでもない。
特開2003−152706号公報 特開2007−264147号公報
本発明は上記のような擬似乱数生成における現状に鑑みてなされたもので、その目的は、周期延長を行い、最大周期長と一様性を確保し、かつ大量に乱数を生成することのできる、全単射写像を用いた擬似乱数生成装置及び擬似乱数生成用プログラムを提供することである。
本発明に係る擬似乱数生成装置は、擬似乱数の生成に必要な写像関数と擬似乱数のビット長の初期値を設定する初期値設定手段と、この初期値設定手段により設定された写像関数を用いて、少なくとも1つの原全単射写像と、前記原全単射写像の逆写像と前記原全単射写像についてエルゴード的な全単射写像との写像計算により得られる周期延長用全単射写像と、を準備する全単射写像準備手段と、前記全単射写像準備手段により準備された、前記原全単射写像を一度ずつ用いて写像値を得た後に更に前記周期延長用全単射写像を用いて写像値を得る処理を繰り返す写像値計算手段と、前記写像値計算手段により得られた写像値からビット列を抽出するビット列抽出手段と、前記ビット列抽出手段によって抽出されたビット列を前記初期値設定手段により設定されたビット長となるまで出力する擬似乱数出力手段とを具備することを特徴とする。
本発明に係る擬似乱数生成装置では、全単射写像準備手段は、写像関数として、線形合同法による写像、M系列乱数による写像、変形テント関数による写像、或いは前記以外の手法により作成した全単射写像のいずれかを用いることを特徴とする。
本発明に係る擬似乱数生成装置では、全単射写像準備手段は、準備した全単射写像の数と全単射写像に含まれる集合の数の乗算により決まる周期毎に、エルゴード的な全単射写像を変更した新たな周期延長用全単射写像を準備することを特徴とする。
本発明に係る擬似乱数生成装置では、全単射写像準備手段は、準備した原全単射写像数の全単射写像がなされた場合に周期延長用全単射写像を準備することを特徴とする。
本発明に係る擬似乱数生成装置では、全単射写像準備手段は、全単射写像数の全単射写像がなされる前に予め周期延長用全単射写像を準備することを特徴とする。
本発明に係る擬似乱数生成用プログラムは、擬似乱数を生成するコンピュータを、乱数の生成に必要な写像関数と擬似乱数のビット長の初期値を設定する初期値設定手段、この初期値設定手段により設定された写像関数を用いて、少なくとも1つの原全単射写像と、前記原全単射写像の逆写像と前記原全単射写像についてエルゴード的な全単射写像との写像計算により得られる周期延長用全単射写像と、を準備する全単射写像準備手段、前記全単射写像準備手段により準備された、前記原全単射写像を一度ずつ用いて写像値を得た後に更に前記周期延長用全単射写像を用いて写像値を得る処理を繰り返す写像値計算手段、前記写像値計算手段により得られた写像値からビット列を抽出するビット列抽出手段、前記ビット列抽出手段によって抽出されたビット列を前記初期値設定手段により設定されたビット長となるまで出力する擬似乱数出力手段として機能させることを特徴とする。
本発明に係る擬似乱数生成用プログラムは、擬似乱数を生成するコンピュータを、全単射写像準備手段として、線形合同法による写像、M系列乱数による写像、変形テント関数による写像、或いは前記以外の手法により作成した全単射写像のいずれかを写像関数として用いるように機能させることを特徴とする。
本発明に係る擬似乱数生成用プログラムは、擬似乱数を生成するコンピュータを、全単射写像準備手段として、準備した全単射写像の数と全単射写像に含まれる集合の数の乗算により決まる周期毎に、エルゴード的な全単射写像を変更した新たな周期延長用全単射写像を準備するように機能させることを特徴とする。
本発明に係る擬似乱数生成用プログラムは、擬似乱数を生成するコンピュータを、全単射写像準備手段として、準備した原全単射写像数の全単射写像がなされた場合に周期延長用全単射写像を準備するように機能させることを特徴とする。
本発明に係る擬似乱数生成用プログラムは、擬似乱数を生成するコンピュータを、全単射写像準備手段として、全単射写像数の全単射写像がなされる前に予め周期延長用全単射写像を準備するように機能させることを特徴とする
本発明によれば、少なくとも1つの原全単射写像と、前記原全単射写像の逆写像と前記原全単射写像についてエルゴード的な全単射写像との写像計算により得られる周期延長用全単射写像と、を準備し、準備された、前記原全単射写像を一度ずつ用いて写像値を得た後に更に前記周期延長用全単射写像を用いて写像値を得る処理を繰り返すことにより写像値計算を行うので、周期延長用全単射写像によって周期延長が行われ、最大周期長と一様性を確保することができる。
本発明では、全単射写像であれば制限なく利用可能であり、写像の順番の入れ替えや再利用もできるため、生成パターンを豊富に提供することができる。
本発明の擬似乱数生成装置における全単射族による写像値の周期延長手法について説明するための写像値巡回状態を示す図。 本発明の擬似乱数生成装置における全単射族による写像値の周期延長全単射写像の生成について説明するための図。 本発明に係る擬似乱数生成装置の構成を示すブロック図。 本発明に係る擬似乱数生成装置を構成するコンピュータシステムのブロック図。 本発明に係る擬似乱数生成装置の第1の実施例の動作を説明するためのフローチャート。 本発明に係る擬似乱数生成装置の第2の実施例の動作を説明するためのフローチャート。 本発明の擬似乱数生成装置における全単射族による写像として、線形合同法を用いた各初期値の列を示す図。 本発明の擬似乱数生成装置における全単射族による写像として、M系列(GFSR)を用いた各初期値の列を示す図。 本発明の擬似乱数生成装置における全単射族による写像として、M系列(TGFSR)を用いた各初期値の列を示す図。 本発明の擬似乱数生成装置における全単射族による写像として用いる、変形テント写像のマップを示す図。 本発明の擬似乱数生成装置における全単射族による写像として、変形テント写像を用いた写像遷移を示す図。
以下添付図面を参照して、本発明に係る擬似乱数生成装置及び擬似乱数生成用プログラムを説明する。原理は次の通りである。例として次の(式1)に示す有限集合x(集合の数が4)の全単射族の写像“ f0、f1、f2”を3つ用意した場合の、図1の如き写像の列を例とする。
Figure 0005455664
これらの漸化式は次の(式2)により表わされる。
Figure 0005455664
上記において、選択する写像関数fyiの順番yに制限はないが、図1の例では
=(i+1)mod3 (i=0,1,…)を用いている。
上記写像によって繰り返し写像を行って得られる数列は、初期値x=0のとき、
0, 2, 1, 3, 1, 2, 2, 0, 3
を繰り返す周期長9の周期帯(初期値x=2、x=3によっても写像結果である数列のパターンが同じ)が得られる。また、初期値x=1のときには、
1, 3, 0
を繰り返す周期長3の周期帯が得られる。このように例示の写像をそのまま用いた場合には、生成パターンが2つの周期帯に分かれて存在する。
このように全単射写像を単に用いただけでは周期帯がいくつかに分かれ、短周期が存在し、各値の出現頻度が一様にならない。係る系として、有限演算下での非線形写像を用いて得られる乱数列があり、長周期性と一様性の保証された擬似乱数列を得ようとした場合に課題となる。
ここで、“f2”を理想的な写像“Q”に変更することによって、3種類の写像を用いる場合の最大周期長12を実現し、かつ各値の出現頻度が一様に3となる数列を得ることを可能にする。即ち、長周期性と一様性の保証された擬似乱数列を得るための理想的な全単射写像“Q”を次のようにして作成する。
まず、図1にて用いた全単射写像“f0、f1”の逆写像“f0 -1、f1 -1 ”を生成する。また、エルゴード的な全単射写像“α“を用意する。そして、これら逆写像“f0 -1、f1 -1 ”とエルゴード的な全単射写像“α“を用いて、図2に示すように写像“Q”を作る計算(Q=αf0 -1f1 -1)を実行する。
このように、図1にて用いた全単射写像“f2”を“Q”に変更することで、初期値x=1のとき
0, 2, 1, 1, 3, 0, 2, 0, 3, 3, 1, 2
を繰り返す最大周期長12の数列が得られ、各値の出現頻度が一様な値(3回)である数列を得ることが可能となる。
即ち、図2で用いた全単射写像の数が“3”であり、集合の数が“4”であり、素周期が3種類の全単射写像を用いるとき、その最大周期長は、3×4=12から求められる。そして、上記の通り、各値の出現頻度が一様に3回となっている擬似乱数列が得られていることが分かる。
上記において、選択する写像関数“fyi”(y=imodK:iは写像回数、Kは用意した全単射写像の数)は全単射であれば何でもよく、写像関数“fyi”は1回の写像の度に変更する。
図2で用いた周期延長計算に利用する写像“α“はいくつかの周期帯に分かれて短周期に落ちない、最大周期を持つ全単射写像であればよい(本発明において、周期延長計算に利用する写像“α“を「エルゴード的な全単射写像」と呼ぶ)。例えば、写像の集合要素を単純にシフト(f(x)=(x+1)modN ただし、Nは集合の数)したものとすることができる。選択した全単射写像の逆写像とエルゴード的な全単射写像とを用い、周期を延長する写像“Q”を計算して作ることが重要である。これによって、最大周期長と一様性を持つ乱数列を生成可能になることが分かった。
選択し得る全単射写像は、最大周期をもつ擬似乱数生成方法で知られる線形合同法、M系列(GSFR)、GSFRの周期を延長させた改良版(Twisted GFSR、メルセンヌツイスター等)のような完成されたものを用いることもできるが、短周期帯を含んでいても全単射写像であれば特に制限はない。これらの系では乱数列パターンは決定されているが、全単射写像“fyi”の順番の入れ替えや写像“Q”を変更することで乱数列のパターンを、より豊富に作ることが可能である。
本発明の実施例に係る擬似乱数生成装置は、図3に示すように構成される。即ち、初期値設定手段11、全単射写像準備手段12、写像値計算手段13、ビット列抽出手段14及び擬似乱数出力手段15を備える。初期値設定手段11は、擬似乱数の生成に必要な写像関数と擬似乱数のビット長の初期値を設定するものである。初期値に関しては、コンピュータシステムのキーボードなどの入力手段から入力することができる。
全単射写像準備手段12は、上記初期値設定手段11により設定された写像関数を用いて、少なくとも1つの原全単射写像と、上記原全単射写像の逆写像と上記原全単射写像についてエルゴード的な全単射写像との写像計算により得られる周期延長用全単射写像と、を準備するものである。また、写像値計算手段13は、上記全単射写像準備手段12により準備された、上記原全単射写像を一度ずつ用いて写像値を得た後に更に上記周期延長用全単射写像により写像値を得る処理を繰り返すものである。
ビット列抽出手段14は、上記写像値計算手段13により得られた写像値からビット列を抽出するものである。擬似乱数出力手段15は、上記ビット列抽出手段14によって抽出されたビット列を上記初期値設定手段11により設定されたビット長となるまで出力するものである。
擬似乱数生成装置は、図4に示されるコンピュータシステム100により実現される。このコンピュータシステム100は、擬似乱数を生成するコンピュータとしてのCPU101と、CPU101が用いる擬似乱数生成用プログラムが格納され、またCPU101が行った演算結果などが記憶されるメモリ102とを備えている。
CPU101には、キーボードやマウスなどのデータを入力するための入力部103と、生成された擬似乱数を表示出力やプリント出力或いは別システムに出力するための出力部104が備えられている。
このCPU101がメモリ102内の図5に示されるフローチャートに対応する擬似乱数生成用プログラムを実行することによって、図3の各手段として機能する。以下、このフローチャートに基づき擬似乱数生成装置の動作を説明する。スタートとなり、初期化処理を行う(S11)。初期化処理S11においは、例えばシードSeedが与えられ、このシードSeedに基づき予め用意されている写像関数が複数である場合に、1写像関数を選択する。写像関数としては、線形合同法による写像、M系列乱数の写像、GFSR(Generalized Feedbacked Shift Register)の写像、Twisted GFSR(GFSRの改良)の写像、メルセンヌツイスター(TGFSRの改良)の写像、変形テント写像、その他全単射を満たす任意の全単射写像(図2に示した写像等)を用いることができる。1つの写像関数を有する場合には、シードSeedに基づく選択は行われない。シードSeedは、プログラムの立ち上り毎に適当な数値を発生させるなどにより与えられるようにし、シードSeedと写像関数を対応付けたテーブルなどにより関数選択を行う。
更に、初期化処理S11においは、シードSeedに基づく写像初期値x0の決定(決定手法は写像関数と同様)、写像回数iを0とする初期化、写像の順番の設定、擬似乱数のランダムビット長nの設定(ユーザによる入力)などが行われる。
ステップS11に続いて、上記で選択した写像関数からK個の全単射写像f0〜fK-1を生成して写像の準備を行う(S12)。ここで準備された全単射写像f0〜fK-1を、上記写像関数から生成したという意味で原全単射写像という。ステップS12の次には、上記ステップS12において準備された原全単射写像を用いて、ステップS11の初期化処理において設定された写像の順番に基づき、写像計算を行って1つの写像値を得る。(S13)。
写像計算(S13)では、ステップS12において準備された原単射写像fy1の数がKであるとき、次の(式3)の漸化式により計算を行う。また、関数hによって写像の順番を選択する。
Figure 0005455664
上記のステップS13において写像値xi+1が得られると、iをi+1へカウントアップし(S14)、ステップS11の初期化処理において設定された位置の所定ビットを抽出してバッファへ蓄積する(S15)。例えば、最下位1ビットを抽出する場合の抽出式は、xi+1&1である。
ステップS15に続いて、蓄積したビット列を出力するタイミングであるかを検出し(S16)、YESである場合には蓄積しておいたビット列を出力する(S17)。出力タイミングとしては、(1)バッファが満杯になった時点に出力、(2)システムの要求時に出力、(3)ユーザの要求時に出力のいずれかなどが初期設定される。ステップS16においてNOである場合には、ステップS18へ進む。
ステップS16においてNOへ分岐するか、またはステップS17における処理が終わると、周期延長用全単射写像を準備するか否かの判定を行う(S18)。つまり、K回の原全単射写像による写像が終わったか検出される。ここで、ステップS18においてYESとなると、ステップS19において周期延長用全単射写像を準備する。
具体的には、既に述べた通り、原全単射写像“f0、f1・・・、fK-1”の逆写像“f0 -1、f1 -1 ・・・、fK-1 -1”を生成し、また、エルゴード的な全単射写像“α“を用意する。そして、これら逆写像“f0 -1、f1 -1 ・・・、fK-1 -1”とエルゴード的な全単射写像“α“を用いて乗算を行い、写像“Q”を作る。ここで、次の(式4)以降の関係が成り立っている。
Figure 0005455664
このステップS19の次には、ステップS13へ進み、ステップS19において準備された周期延長用全単射写像xi+1による写像計算を行って1つの写像値を得る(S13)。一方、上記ステップS18において、NOとなるとステップS20へ進んで、これまでに生成された擬似乱数のランダムビット長が初期設定された長さnとなったかを検出し(S20)、NOであればステップS12へ戻って処理を続け、ステップS20においてYESとなると処理を終了してエンドとなる。
このように、全単射写像準備手段12は、準備した全単射写像の数と全単射写像に含まれる集合の数の乗算により決まる周期毎に、エルゴード的な全単射写像を変更した新たな周期延長用全単射写像を準備するものである。そして、上記図5に示されるフローチャートでは、全単射写像準備手段12が、準備した原全単射写像数の全単射写像がなされた場合に周期延長用全単射写像を準備する(ステップS19)ことを示した。しかし、これによらず、次の図6のフローチャートに示すように、全単射写像数の全単射写像がなされる前に予め周期延長用全単射写像を準備する(ステップS30)としても良い。
図6のフローチャートにおいては、ステップS30において、ステップS11で選択した写像関数からK個の全単射写像f0〜fK-1を生成して写像の準備を行うと共に、原全単射写像“f0、f1・・・、fK-1”の逆写像“f0 -1、f1 -1 ・・・、fK-1 -1”を生成し、また、エルゴード的な全単射写像“α“を用意する。そして、これら逆写像“f0 -1、f1 -1 ・・・、fK-1 -1”とエルゴード的な全単射写像“α“を用いて乗算を行い、写像“Q”を作る。
作成した写像“Q”は、処理に備えてメモリ102内のバッファに格納しておき、必要な周期においてステップS13において用いる。エルゴード的な全単射写像“α“は、写像の集合要素を単純にシフト(f(x)=(x+1)modN ただし、Nは集合の数)したものとすることができる。この場合、1周期毎にシフト量を変化させるなどして1周期毎に異なるαを作成し、これを用いて周期延長用全単射写像を準備するようにしても良い。1周期毎に異なるαを作成することは、図5のフローチャートにおいてステップS19で行うようにしても良い。
図6のフローチャートにおいてステップS30以外では、図5のフローチャートにおける、周期延長用全単射写像を準備するか否かの判定を行うステップS18と周期延長用全単射写像を準備するステップS19の処理が削除される。また、ステップS20において、NOへ分岐するとステップS13へ戻って処理を続ける。これ以外は、図5において説明した処理と同様の処理が行われる。
次に、写像関数を線形合同法の写像とした場合に行われる擬似乱数生成処理の一例を説明する。一般的に利用されている線形合同法の式は次の(式5)で与えられる。
Figure 0005455664
例としてM=7とした場合、a=2,c=0の時、全単射写像“f0”とすると
Figure 0005455664
上記(式6)による列は、初期値X0 =1のとき、
1,2,4を繰り返す周期長3の周期帯と、
初期値X0 =3のとき
3,6,5を繰り返す周期長3の周期帯との計2つの周期帯が存在する。
a=5,c=0のとき、全単射写像“f1”とすると
Figure 0005455664
上記(式7)から
1,5,4,6,2,3の最大周期長6で循環する列が得られる。
2つの全単射写像“f0、f1”と、最大周期と一様性を実現する写像“Q”を用いて写像の列を作る。“f0、f1”の逆写像“f0 -1、f1 -1 ”と、ここでエルゴード的な全単射写像αは、次の通りである。
Figure 0005455664
このような全単射写像“α“と、上記逆写像“f0 -1、f1 -1 ”を用意して最大周期と一様性を実現する写像“Q”をQ=αf0 -1f1 -1により計算すると
Figure 0005455664
が得られ、“f→f→Q”の各初期値から得られる列は、図7のようになる。初期値が1の場合
1, 2, 3, 2, 4, 6, 3, 6, 2, 4, 1, 5, 5, 3, 1, 6, 5, 4
になり、最大周期長が3×6=18である、一様な出現頻度を満たす数列が得られる。
次に、写像関数をM系列乱数で知られるGFSR(Generalized Feedbacked Shift Register)の写像とした場合に行われる擬似乱数生成処理の一例を説明する。GFSRの漸化式は(式8)の通りであり、ここでn=3,m=1の場合には、(式9)となる。
Figure 0005455664
これにより、周期長7(2n-1)の循環する数列が生成できる。GFSRの全単射写像を“f0”とすると、f0は次の(式10)となる。
Figure 0005455664
次に、“ f0” と最大周期と一様性を実現する写像“Q”を用いて写像の列を作る。なお、GFSRでは設定の自由度が初期値x0のみであり、数列のパターンは1つだけである。“f0”の逆写像“f0 -1”と、ここでエルゴード的な全単射写像αは、次の通りである。
Figure 0005455664
このような全単射写像“α“と、上記逆写像“f0 -1”を用意して最大周期と一様性を実現する写像 “Q”をQ=αf0 -1により計算すると次のQが得られる。
Figure 0005455664
とQを用いて、“f→Q”とする写像を繰り返し、各初期値から得られる数列は図8に示す通りとなる。初期値が1の場合
1, 4, 2, 5, 3, 1, 4, 2, 5, 6, 6, 7, 7, 3, 1
となり、最大周期長が2×7=14であり、一様な出現頻度を満たす数列が得られる。
次に、写像関数をM系列乱数で知られるGFSRの改良版であるTGFSR(Twisted Generalized Feedbacked Shift Register)を含む写像とした場合に行われる擬似乱数生成処理の一例を説明する。TGFSRの漸化式は次の(式11)により表わされ、Aは次のような行列である。
Figure 0005455664
上記行列の最下行におけるベクトルaが最大周期を実現するものを選択すれば、周期は2nω-1になる。ここでn=2,m=1,ω=2の場合には、(式11)は次の(式12)の漸化式となるので、この漸化式を計算する。
Figure 0005455664
Aの行列を次の通りとして、全単射写像を計算すると、次の“f0”が得られる。
Figure 0005455664
上記“ f0”の写像は、
1,8,10,14,11,6の周期長6の列と
2,4,5,13,7,9の周期長6の列と
3,12,15の周期長3の列との、3つの短周期からなる周期帯を持つ。このため“f0”単独では最大周期が得られず、TGFSRとはならない。
Aの行列を次の通りとして、全単射写像を計算すると“f1”が得られる。
Figure 0005455664
上記“ f1”の写像では、
1, 12, 15, 7, 13, 3, 8, 10, 14, 11, 2, 4, 5, 9, 6
の最大周期を実現する周期長15の数列が得られる。“f1”はエルゴード的であり、TGFSRであるといえる。“f0”の逆写像“f0 -1 ”と、“f1”の逆写像“f1 -1 ”と、更に、ここでエルゴード的な全単射写像αとを次の通りに用意する。
Figure 0005455664
最大周期と一様性を実現する写像 “Q”をQ=αf0 -1f1 -1により計算すると、次のQが得られる。
Figure 0005455664
そして、“f→f→Q”の各初期値から得られる列は、図9に示す通りとなる。初期値が1の場合、
1, 8, 10, 2, 4, 5, 3, 12, 15, 4, 5, 9, 5, 13, 3, 6, 1, 12, 7, 9, 6, 8, 10, 14, 9, 2, 4, 10, 14, 11, 11, 6, 1, 12, 15, 7, 13, 7, 13, 14, 11, 2, 15, 3, 8
で循環し、最大周期長が3×15=45となり、一様な出現頻度を満たす数列が得られる。
この設計において、一般に任意のn,ωでは全単射写像が2ω−1+1個存在する。従って、全単射写像の周期を最低でも2ω−1+1とすることができる。このとき、擬似乱数列の素周期は、(2ω−1+1)(2−1)となり、各値の出現頻度は一様に、2ω−1+1となる。例えば、ω=32,n=624のとき、素周期は(231+1)(219968−1)となり、同じ演算精度32ビットで、状態の次元が32×624であるメルセンヌツイスター19937の周期219937−1より、遥かに長い周期列が得られる。
次に、写像関数を、一次元写像を用いた全単射族である変形テント写像とした場合に行われる擬似乱数生成処理の一例を説明する。演算精度Lビットとした時、演算幅N=2−1で表した変形テント写像式は次の式の通りであり、変形テント写像のマップを図10に示す。
Figure 0005455664
上記変形テント写像式から用意できる全単射写像の数をKとすると、下記のように各写像“fM j”の全単射写像を用意できる。ここで、用意できる全単射写像の最大個数は、K≦Nである。また、逆写像“fM j −1”は次の通りとなる。
Figure 0005455664
更に、エルゴード的な全単射写像“α“を用意し、次式のように写像“Q”を作る計算を実行する。
Figure 0005455664
上記のように、用意したK個の写像“fM j“によってK回分の写像計算を行った後、写像“Q”を適応して、図11に示すようにサイクリックに写像を行う。このばあいにおいて、各全単射写像“fM j“の集合の要素数は演算精度のN+1であることから、素周期(N+1)(K+1)であり、各値はK+1回出現する。素周期長はK=Nの時(N+1)であり、一様性が保証された擬似乱数列を得ることができる。
11 初期値設定手段
12 全単射写像準備手段
13 写像値計算手段
14 ビット列抽出手段
15 擬似乱数出力手段
100 コンピュータシステム
102 メモリ
103 入力部
104 出力部

Claims (10)

  1. 擬似乱数の生成に必要な写像関数と擬似乱数のビット長の初期値を設定する初期値設定手段と、
    この初期値設定手段により設定された写像関数を用いて、少なくとも1つの原全単射写像と、前記原全単射写像の逆写像と前記原全単射写像についてエルゴード的な全単射写像との写像計算により得られる周期延長用全単射写像と、を準備する全単射写像準備手段と、
    前記全単射写像準備手段により準備された、前記原全単射写像を一度ずつ用いて写像値を得た後に更に前記周期延長用全単射写像を用いて写像値を得る処理を繰り返す写像値計算手段と、
    前記写像値計算手段により得られた写像値からビット列を抽出するビット列抽出手段と、
    前記ビット列抽出手段によって抽出されたビット列を前記初期値設定手段により設定されたビット長となるまで出力する擬似乱数出力手段と
    を具備することを特徴とする擬似乱数生成装置。
  2. 全単射写像準備手段は、写像関数として、線形合同法による写像、M系列乱数による写像、変形テント関数による写像、或いは前記以外の手法により作成した全単射写像のいずれかを用いることを特徴とする請求項1に記載の擬似乱数生成装置。
  3. 全単射写像準備手段は、準備した全単射写像の数と全単射写像に含まれる集合の数の乗算により決まる周期毎に、エルゴード的な全単射写像を変更した新たな周期延長用全単射写像を準備することを特徴とする請求項1または2に記載の擬似乱数生成装置。
  4. 全単射写像準備手段は、準備した原全単射写像数の全単射写像がなされた場合に周期延長用全単射写像を準備することを特徴とする請求項1乃至3のいずれか1項に記載の擬似乱数生成装置。
  5. 全単射写像準備手段は、全単射写像数の全単射写像がなされる前に予め周期延長用全単射写像を準備することを特徴とする請求項1乃至3のいずれか1項に記載の擬似乱数生成装置。
  6. 擬似乱数を生成するコンピュータを、
    擬似乱数の生成に必要な写像関数と擬似乱数のビット長の初期値を設定する初期値設定手段、
    この初期値設定手段により設定された写像関数を用いて、少なくとも1つの原全単射写像と、前記原全単射写像の逆写像と前記原全単射写像についてエルゴード的な全単射写像との写像計算により得られる周期延長用全単射写像と、を準備する全単射写像準備手段、
    前記全単射写像準備手段により準備された、前記原全単射写像を一度ずつ用いて写像値を得た後に更に前記周期延長用全単射写像を用いて写像値を得る処理を繰り返す写像値計算手段、
    前記写像値計算手段により得られた写像値からビット列を抽出するビット列抽出手段、
    前記ビット列抽出手段によって抽出されたビット列を前記初期値設定手段により設定されたビット長となるまで出力する擬似乱数出力手段
    として機能させる擬似乱数生成用プログラム。
  7. 擬似乱数を生成するコンピュータを、
    全単射写像準備手段として、線形合同法による写像、M系列乱数による写像、変形テント関数による写像、或いは前記以外の手法により作成した全単射写像のいずれかを写像関数として用いるように機能させることを特徴とする請求項6に記載の擬似乱数生成用プログラム。
  8. 擬似乱数を生成するコンピュータを、
    全単射写像準備手段として、準備した全単射写像の数と全単射写像に含まれる集合の数の乗算により決まる周期毎に、エルゴード的な全単射写像を変更した新たな周期延長用全単射写像を準備するように機能させることを特徴とする請求項6または7に記載の擬似乱数生成装置。
  9. 擬似乱数を生成するコンピュータを、
    全単射写像準備手段として、準備した原全単射写像数の全単射写像がなされた場合に周期延長用全単射写像を準備するように機能させることを特徴とする請求項6乃至8のいずれか1項に記載の擬似乱数生成用プログラム。
  10. 擬似乱数を生成するコンピュータを、
    全単射写像準備手段として、全単射写像数の全単射写像がなされる前に予め周期延長用全単射写像を準備するように機能させることを特徴とする請求項6乃至8のいずれか1項に記載の擬似乱数生成用プログラム。
JP2010005823A 2010-01-14 2010-01-14 擬似乱数生成装置及び擬似乱数生成用プログラム Active JP5455664B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010005823A JP5455664B2 (ja) 2010-01-14 2010-01-14 擬似乱数生成装置及び擬似乱数生成用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010005823A JP5455664B2 (ja) 2010-01-14 2010-01-14 擬似乱数生成装置及び擬似乱数生成用プログラム

Publications (2)

Publication Number Publication Date
JP2011145464A JP2011145464A (ja) 2011-07-28
JP5455664B2 true JP5455664B2 (ja) 2014-03-26

Family

ID=44460377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010005823A Active JP5455664B2 (ja) 2010-01-14 2010-01-14 擬似乱数生成装置及び擬似乱数生成用プログラム

Country Status (1)

Country Link
JP (1) JP5455664B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7098099B2 (ja) * 2017-10-03 2022-07-11 利和 石崎 証明書発行及び認証システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001013870A (ja) * 1999-06-29 2001-01-19 Nec Corp 共通鍵暗号化又は復号化方法と、共通鍵暗号化又は復号化プログラムを記録した記憶媒体
WO2008114829A1 (ja) * 2007-03-19 2008-09-25 Tokyo Denki University 暗号装置、復号装置、暗号プログラム、復号プログラム、及び記録媒体
JP2011123693A (ja) * 2009-12-11 2011-06-23 Netcomsec Co Ltd 整数系列の周期判定方法、周期判定装置及び周期判定プログラム

Also Published As

Publication number Publication date
JP2011145464A (ja) 2011-07-28

Similar Documents

Publication Publication Date Title
CA2633923C (en) Mixed radix number generator with chosen statistical artifacts
EP2962185B1 (en) Random number generator and stream cipher
Bauke et al. Random numbers for large-scale distributed Monte Carlo simulations
EP2000900B1 (en) Extending a repetition period of a random sequence
JP4851493B2 (ja) 先験的に定義された統計的アーティファクトを有する混合基数変換
Merah et al. A pseudo random number generator based on the chaotic system of Chua’s circuit, and its real time FPGA implementation
Peinado et al. Generation of pseudorandom binary sequences by means of linear feedback shift registers (LFSRs) with dynamic feedback
Drukker et al. Generating halton sequences using mata
JP5670849B2 (ja) 擬似乱数生成装置、および、擬似乱数生成方法
JP5455664B2 (ja) 擬似乱数生成装置及び擬似乱数生成用プログラム
JP2017058501A (ja) ハッシュ関数計算装置および方法
JP2006072891A (ja) セルオートマトンに基づく、制御可能な周期を有する擬似乱数シーケンスの生成方法および装置
JP2018503862A5 (ja)
Williams et al. International leadership in nursing
JP4709685B2 (ja) 擬似乱数生成装置、擬似乱数生成方法および擬似乱数生成プログラム並びに暗号化装置および復号化装置
Mocanu et al. Global feedback self-programmable cellular automaton random number generator
Adak et al. Maximal length cellular automata in GF (q) and pseudo-random number generation
KR101630791B1 (ko) 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
JP5268741B2 (ja) 擬似乱数生成器、擬似乱数生成方法及び擬似乱数生成プログラム
Markovski et al. Classification of quasigroups by random walk on torus
JP2011123693A (ja) 整数系列の周期判定方法、周期判定装置及び周期判定プログラム
Mertens Random number generators: A survival guide for large scale simulations
JP7564473B1 (ja) 疑似乱数生成装置及び疑似乱数生成用プログラム
CN120447869A (zh) 一种伪随机数生成方法、装置、设备及介质
Parker The period of the Fibonacci random number generator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131220

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: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140107

R150 Certificate of patent or registration of utility model

Ref document number: 5455664

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250