(57)【要約】【課題】  ＩＤ、パスワードのような比較的短い乱数の生成・管理の方法及び装置を提供すること。【解決手段】  本発明に係る乱数生成・管理方法は、与えられたＮビットの２進数列Ｒと、2010033523.tif 000004以下の部分とし」、前記「」内の計算をｋ＝１，２，…，Ｋで、順次に行い（但し、ｋ＝Ｋのとき、ＲｉをＬＭＡＰの初期値ｘ０への変換はしない）、（Ｒとｉに管理される）多次元乱数Ｒｉを生成することを特徴とする。【選択図】図１
2010033523.tif 000002
【特許請求の範囲】
【請求項１】
乱数生成・管理方法であって、
与えられたＮ（Ｎは２以上の整数）ビットの２進数列Ｒと、次元数Ｋの次元座標ｉ（ｉ１，…，ｉｋ，…，ｉＫ）に対し（ｉｋは０以上の整数、ｋ：１，２，…，Ｋ）、
Ｒを非線形写像関数ｘｔ＝４ｘｔ（１−ｘｔ）（以下ＬＭＡＰと称する。０＜ｘｔ＜１）の初期値ｘ０の小数点以下の部分として、ｘ０に変換し、
「ＬＭＡＰに対し、計算精度Ｎビットの固定小数点演算を繰り返し、Ｎビットの２進数列Ｂｉｋを生成し（Ｂｉｋの各ビットは（ｂｋ，０ｂｋ，ｂｋ，１．．．ｂｋ，Ｎ−１））からなり、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１＝［２×ｘＮ×ｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮ×ｉｋ＋Ｎ−１］、［］は小数点以下を切り捨てる計算）、
再びＢｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換し、
上記ＬＭＡＰの計算を繰り返し、Ｎビットの２進数列Ｒｉ１，…，ｉｋ（ｋ＝１のときＲｉ１，…，ｉｋはＲｉ１であり、…、ｋ＝ＫのときＲｉ１，…，ｉｋはＲｉ１，…，ｉＫである）を生成し（Ｒｉ１，…，ｉｋｋの各ビットは（ｒｋ，０ｒｋ，１．．．ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１）、
再びＲｉ１，…，ｉＫをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換し、」
前記「」内の計算をｋ＝１，２，…，Ｋの値で、順次に行い（但し、ｋ＝Ｋのとき、ＲｉをＬＭＡＰの初期値ｘ０への変換はしない）、多次元乱数Ｒｉを生成することを特徴とする乱数生成・管理方法。
【請求項２】
乱数生成・管理装置であって、
Ｎ（Ｎは２以上の整数）ビットの２進数列Ｒを乱数生成初期値情報として、次元数Ｋの次元座標ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標情報として受付ける乱数生成・管理情報入力部と、
前記Ｒを非線形写像関数ｘｔ＝４ｘｔ（１−ｘｔ）（以下ＬＭＡＰと称する。０＜ｘｔ＜１）の初期値ｘ０の小数点以下の部分として、ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標値として、ＬＭＡＰの計算による乱数生成に備える初期値ｘ０及び次元座標値変換部と、
前記初期値及び次元座標値変換部で変換された初期値ｘ０及び次元座標値を格納する格納レジスタと、
前記格納レジスタに格納されている初期値ｘ０及び次元座標値に基づき、ＬＭＡＰに対し計算精度Ｎビットの固定小数点演算を繰り返し、Ｎビットの２進数列Ｂｉｋを生成し（Ｂｉｋの各ビットは（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１）からなり、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１＝［２×ｘＮ×ｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮ×ｉｋ＋Ｎ−１］）、再びＢｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換し、上記ＬＭＡＰの計算を繰り返し、Ｎビットの２進数列Ｒｉ１，…，ｉｋ（ｋ＝１のときＲｉ１，…，ｉｋはＲｉ１であり、…、ｋ＝ＫのときＲｉ１，…，ｉｋはＲｉ１，…，ｉＫである）を生成し（Ｒｉ１…，ｉｋの各ビットは（ｒｋ，０ｒｋ，１…ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、カオス２値系列を生成する「カオス計算器」と、
前記「カオス計算器」から出力されるＮビットの２値系列Ｒｉ１，…，ｉｋを格納する乱数格納レジスタと、
前記乱数生成・管理情報入力部の動作、初期値及び次元座標値変換部の動作、「カオス計算器」の計算及びＲｉ１，…，ｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換する計算をｋ＝１，２，…，Ｋの値で順次に行う（但し、ｋ＝Ｋのとき、ＲｉをＬＭＡＰの初期値ｘ０への変換はしない）ことにより多次元乱数Ｒｉの生成、を行わせる乱数生成制御部と、
を備えたことを特徴とする乱数生成・管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、乱数生成・管理方法及びその装置に関する。
【背景技術】
【０００２】  コンピュータシミュレーションのような短い時間で大量な乱数を消費する場合もあれば、認証、識別用ＩＤ、パスワード（ＰＷ）のような、限られた長さ（例えば１２８ビット）の乱数を生成する場合もある。ＩＤ、ＰＷのような数列は強いセキュリティーの元で管理される必要があるとされるが、現状では装置による有効な管理方法に関する報告はあまりない。顧客のＩＤなどの情報を保存した記録媒体を紛失したような報道がときおり聴かされる。【０００３】  ＩＤ、ＰＷのような乱数列の管理は難しく、現状ではメモリに保存する方法しかない。顧客のＩＤなどの情報を暗号化しないまま保存した記録媒体を紛失したことはその管理の難しさを物語っている。【０００４】  擬似乱数は再生可能である。シミュレーションで再び同じ乱数を必要となったとき、その乱数を生成するときの初期値（ｓｅｅｄ）を保存していれば、同じ乱数の生成は可能である。即ち、この長い乱数列は初期値を管理することにより、管理されていると考えてもよい。【０００５】  十分に周期性の長い２進ビット列（ｒ０ｒ１…ｒｔ…）（離散時間ｔ＝０，１，２，…）を生成する乱数生成器があるとして、以下のようなＩＤ、ＰＷの生成・管理システムを考える。秘密に管理する１つの共通の初期値と公開に管理するｔによってＩＤ、ＰＷの生成と管理をするシステムである。必要なときだけシステムに初期値とｔを与え、対応するＩＤ或いはＰＷを生成する。しかし、明らかにこのような方法では大きいｔに対応する乱数列（ＩＤ、ＰＷ）の生成に要する時間が長くなり、場合（例えばｔ＝２６４）によっては実用的なシステムとして機能しなくなる。【０００６】  一方、カオスがその特有な性質（非線形、初期値敏感性、計算の一方向性など）を持つため、乱数生成に役立つと期待されている。その中、ロジスティック写像（数１）（以下ＬＭＡＰと称する）による乱数の生成及び生成された数列に対する考察が数多くされた（例えば、非特許文献１−３）。【０００７】
【数１】
2010033523.tif 000003
【０００８】
【非特許文献１】  Ｕｌａｍ，Ｓ．Ｍ．ａｎｄ  Ｖｏｎ  Ｎｅｕｍａｎｎ，Ｊ．，‘‘Ｏｎ  Ｃｏｍｂｉｎａｔｉｏｎ  ｏｆ  Ｓｔｏｃａｓｔｉｃ  Ｄｅｔｅｒｍｉｓｔｉｃ  Ｐｒｏｃｅｓｓｅｓ’’，Ｂｕｌｌ．ＡＭＳ．，Ｖｏｌ．５３，ｐ．１１２０（１９４７））この文献で、数１による乱数生成が提案された。【０００９】
【非特許文献２】  香田徹・緒方栄次，”ベルヌイ試行とカオス”，電子通信学会論文誌Ａ，Ｖｏｌ．Ｊ６８−ＡＮｏ．２  ｐｐ．１４６−１５２（１９８５）この文献において、数１を用いて、閾値を０．５としたときに生成した乱数が良質であることを示した。【００１０】
【非特許文献３】  庄野克房，“カオスエンジニアリング”，シュプリンガーフェアラーリ東京，東京，２００２。この文献は、数１を用いて乱数生成を高速にするには固定小数点演算を用いたハードウェア化が有効と述べている。【００１１】  カオスＬＭＡＰの計算は一方向性を有する。即ち、ある初期値ｘ０から次々とｘｔ（ｔ＝１，２，…）が計算されるが、計算されたｘｔからｘ０を求めることはできない。それは２次関数ＬＭＡＰの逆関数ｘｔ＝（１±√（１−ｘｔ＋１））／２による計算で状態ｘｔを１ステップ戻す計算をするには、可能な２つの状態の中の１つを選択しないといけないからである（＋とーの符合の選択）。【００１２】  本願においてのＬＭＡＰにより生成する２進数列は、ｘｔに対し、閾値を０．５（ｘｔ≧０．５のとき１を出力、ｘｔ＜０．５のとき０を出力）としたときの２値系列を指す。また、本願の発明者は以下のＬＭＡＰが有する性質も確認している。【００１３】  計算精度をＮビットとした場合、ｔ＝０からＮ−１まで、連続して生成されたＮビットの２進数列（閾値０．５）があれば、その２進列を生成したｘ０をＬＭＡＰの逆関数による計算で求められる。この際、±の符合の選択は同じｔに対応する２値系列の値に従う（１：＋、０：−）。これは、ＬＭＡＰの計算はリャプノフ指数に従って発散するのに対し、ＬＭＡＰの逆関数の計算はリャプノフ指数に従って収束するからである。【００１４】  このような性質を持つＬＭＡＰが生成する２値系列はセキュリティー用乱数として適切でないことが明らかである。長いＬＭＡＰの２値系列に対し、先頭にある計算精度よりも長いビット数を知っていれば、それを使って、ＬＭＡＰの逆関数を計算してｘ０を求め、求められたｘ０からＬＭＡＰを計算し、その２値系列のすべてのビットを再生することができる。ただし、ＬＭＡＰが生成する２値系列の下位ビットから上位ビットを求めることはできない。【００１５】  計算精度Ｎビットのとき、０の最大連（連続している０の数）はＬＭＡＰを計算する過程の中ではＮ／２以下である。この性質は、ＬＭＡＰが生成する２値系列が持つ組み合わせの可能性を制限していると同時に、その２値系列からＮビットを切り出し、新たな初期値にする場合、その初期値がブラックホールと言われるような値０、０．２５、０．５、０．７５になることのないことを保証している。【００１６】  有限精度での計算のとき、初期値敏感性は以下のような形で観測される。２つの初期値に最下位ビットだけ異なっている場合でも、それぞれの初期値からＮ回計算したときの内部状態は完全に別（２つの状態の間に何らかの関係は見出せない）の軌道になっていることが確認できる（例えば、計算精度１２８ビットのときの初期値０．０．．．０１と０．０．．．１０の１２８回計算した結果はそれぞれ０．０１００…０１００と０．１１００…０１１０である（上位４ビットと下位４ビットだけを表示））。このことは２つの意味を持つ。【００１７】  その１、有限計算精度での計算は常に下位ビットに切り捨てが行われているため、Ｎ回の計算後、その状態と初期状態との間の関係はなくなる。即ち、計算しないで、Ｎステップ後の状態を予測することはできない。【００１８】  その��、２つの初期値に最下位ビットだけ異なっている場合でも、この２つの初期値から生成した２値系列は相関のない系列であり、ある２値系列から他の２値系列を推測することはできない。【００１９】  以上のＬＭＡＰが生成する２値系列が有する性質は次に述べる多次元乱数生成法において、重要な意味を持つ。
【発明の開示】
【発明が解決としようとする課題】
【００２０】  本発明は汎用計算器と専用ハードウェアの両方において、実現容易な、ＩＤ、ＰＷのような比較的短い乱数列を生成・管理する方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】本発明（請求項１）に係る乱数の生成・管理方法は、与えられたＮ（Ｎは２以上の整数）ビットの２進数列Ｒと、次元数Ｋ（Ｋは１以上の整数）の次元座標情報ｉ（ｉ１，…，ｉｋ，…，ｉＫ）に対し（ｉｋは０以上の整数、ｋ：１，２，…，Ｋ）、ＲをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換し、
「ＬＭＡＰに対し、計算精度Ｎビットの固定小数点演算を繰り返し、Ｎビットの２進数列Ｂｉｋを生成し（Ｂｉｋの各ビットは（ｂｋ，０ｂｋ，１．．．ｂｋ，Ｎ−１））からなり、ｂｋ，０＝［２×ｘＮｉｋ］、ｂｋ，１＝［２×ｘＮｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮｉｋ＋Ｎ−１］、［］は小数点以下を切り捨てる計算）、再びＢｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換し、上記ＬＭＡＰの計算を繰り返し、Ｎビットの２進数列Ｒｉ１，…，ｉｋ（ｋ＝１のときＲｉ１，…，ｉｋはＲｉ１であり、…、ｋ＝ＫのときＲｉ１，…，ｉｋはＲｉ１…，ｉＫである）を生成し（Ｒｉ１，…，ｉｋの各ビットは（ｒｋ，０ｒｋ，１．．．ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、再びＲｉ１，…，ｉＫをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換し、」
前記「」内の計算をｋ＝１，２，…，Ｋで、順次に行い（但し、ｋ＝Ｋのとき、ＲｉをＬＭＡＰの初期値ｘ０への変換はしない）、多次元乱数Ｒｉを生成することを特徴とする。
【００２２】本発明（請求項２）に係る乱数の生成・管理装置はＮ（Ｎは２以上の整数）ビットの２進数列Ｒを乱数生成初期値情報として、次元数Ｋの次元座標ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元情報として受付ける乱数生成・管理情報入力部と、前記Ｒをｘ０の小数点以下の部分として、ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標値として、ＬＭＡＰの計算による乱数生成に備える初期値ｘ０及び次元座標値変換部と、前記初期値及び次元座標値変換部で変換された初期値及び次元座標値を格納する格納レジスタと、前記格納レジスタに格納されている初期値及び次元座標値に基づき、ＬＭＡＰに対し、計算精度Ｎビットの固定小数点演算を繰り返し、Ｎビットの２進数列Ｂｉｋを生成し（Ｂｉｋの各ビットは（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１））からなり、ｂｋ，０＝［２×ｘＮｉｋ］、ｂｋ，１＝［２×ｘＮｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮｉｋ＋Ｎ−１］、［］は小数点以下を切り捨てる計算）、再びＢｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換し、上記ＬＭＡＰの計算を繰り返し、Ｎビットの２進数列Ｒｉ１，…，ｉｋ（ｋ＝１のときＲｉ１，…，ｉｋはＲｉ１であり、…、ｋ＝ＫのときＲｉ１，…，ｉｋはＲｉ１，…，ｉＫである）を生成し（Ｒｉ１，…，ｉｋの各ビットは（ｒｋ，０ｒｋ，１．．．ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、カオス２値系列を生成する「カオス計算器」と、前記「カオス計算器」から出力されるＮビットの２値系列Ｒｉ１，…，ｉｋを格納する乱数格納レジスタと、前記乱数生成・管理情報入力部の動作、初期値及び次元座標値変換部の動作、「カオス計算器」の計算及びＲｉ１，…，ｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換する計算をｋ＝１，２，…，Ｋの値で順次に行う（但し、ｋ＝Ｋのとき、ＲｉをＬＭＡＰの初期値ｘ０への変換はしない）ことにより多次元乱数Ｒｉの生成、を行わせる乱数生成制御部と、を備えたことを特徴とする。
【発明の効果】
【００２３】  本発明は次元座標情報に従った初期値の繰り返す生成により、多次元座標空間に置かれている大量な乱数列に対し、任意の座標に置かれている乱数列を高速に生成・再生できる。そのため、図１に示すように、管理用２進数列Ｒと規則ある次元座標情報ｉ（ｉ１，…，ｉｋ，…，ｉＫ）による２進数列Ｒｉ（ＩＤ、ＰＷ）の生成・管理システムの構築を可能にした。
【００２４】  本発明はカオス（ＬＭＡＰ）を利用したことで、規則ある次元情報ｉ（ｉ１，…，ｉｋ，…，ｉＫ）で生成されるＲｉは線形的な相関を持たない。そのため、ある乱数列Ｒｉとその次元座標情報ｉ（ｉ１，…，ｉｋ，…，ｉＫ）からＲを推測することはできない。また、他の次元座標情報により生成される乱数列を予測することもできない。
【００２５】  本発明はまた、ＬＭＡＰの計算を固定小数点演算にすることにより、整数演算のできるシステムであれば、ハードウェアでもソフトウェア上でも容易に本発明が提案する乱数生成・管理システムの構築を実現できる。そして、低価格化を可能にし、産業技術として望ましい形態である。
【発明を実施するための最良の形態】
【００２６】    以下、図面を参照しながら、発明の実施の形態を説明し、その効果を示す。【００２７】    図２は本発明の一実施形態である乱数生成・管理装置１００の構成図を示す。本実施形態の乱数生成・管理装置１００はＮビットの２進数列ＲをＬＭＡＰの初期値ｘ０に変換して、「ｘ０と次元座標情報ｉに基づき、「カオス計算器」を用いて、Ｎビットの２値系列Ｒｉ１，…，ｉＫを生成し、それを更にｘ０に変換する」計算をＫ回繰り返すことにより、多次元乱数Ｒｉを生成する。乱数生成・管理装置１００は乱数生成・管理情報入力部１０２、初期値及び次元座標値変換部１０４、格納レジスタ１０６、「カオス計算器」１０８、乱数格納レジスタ１１０、乱数生成制御部１１２を備える。【００２８】  乱数生成・管理情報入力部１０２はＮビットの２進数列Ｒと次元座標情報ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を受付る。【００２９】  初期値及び次元座標値変換部１０４は入力される２進数列Ｒ或いは多次元乱数生成の過程の中に生成される２進系列Ｒｉ１，…，ｉＫをｘ０に変換して、また、入力される次元座標情報を各次元における次元座標の値ｉ１，…，ｉｋ，…，ｉＫに変換して、固定小数点演算による多次元乱数の生成に備える。【００３０】  格納レジスタ１０６は初期値及び次元座標値変換部１０４で変換されたｘ０及びｉ１，…，ｉｋ，…，ｉＫを格納する。【００３１】  「カオス計算器」１０８は格納レジスタ１０６に格納されている初期値ｘ０を使って、順次に、次元座標ｉｋ（ｋ＝１，２，…Ｋ）に従い、ＬＭＡＰを計算し、Ｎビットの２進系列Ｒｉ１，…，ｉＫを生成する。【００３２】  「カオス計算器」の作業の詳細を説明する。【００３３】  「カオス計算器」は先ず、１０８は格納レジスタ１０６に格納されている初期値ｘ０と次元座標ｉｋを使って、ＬＭＡＰをＮ×ｉｋ回計算する。【００３４】  次に、ＬＭＡＰを計算しながら、ｂｋ，０＝［２×ｘＮｉｋ］、ｂｋ，１＝［２×ｘＮｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮｉｋ＋Ｎ−１］（［］は小数点以下を切り捨てる計算）を計算し、Ｎビットの２進数列Ｂｉｋ（ｂｋ，０ｂｋ，１．．．ｂｋ，Ｎ−１）を生成する。【００３５】  再びＢｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｘ０に変換し、ＬＭＡＰの計算をＮ回計算する。【００３６】  そして、ＬＭＡＰを計算しながら、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘＮ＋Ｎ−１］を計算し、Ｎビットの２進数列Ｒｉ１，…，ｉｋ（ｒｋ，０ｒｋ，１．．．ｒｋ，Ｎ−１）を生成して、出力する。【００３７】  （００３５）と（００３６）の計算を加えることで、（００１３）に示したＬＭＡＰが生成する２進系列において、上位ビット（Ｂｉｋ）による下位ビット（Ｂｉｋ＋１）に対する推測可能性を断ち切ることができた。【００３８】  乱数格納レジスタ１１０は「カオス計算器」１０８から出力される２進系列を格納する。【００３９】  乱数生成制御部１１２は多次元乱数を生成するための各部の動作の制御を行う。【００４０】  乱数生成制御部１１２は次元数Ｋの次元座標情報に対し、次元ｋ＝１からＫまで、順次に次元座標情報を使い、「カオス計算器」による計算を繰り返し、その出力を乱数格納レジスタ１１０に格納し、ｋ＜Ｋのとき、乱数格納レジスタ１１０に格納されている乱数を、初期値及び次元座標値変換部１０４により、ｘ０へ変換し、格納レジスタ１０６に格納し、ｋ＝Ｋのとき、乱数格納レジスタ１１０に格納されているＮビットの２進系列を乱数Ｒｉとし、計算を終了させる。【００４１】  ここに、多次元乱数の意味及びその効果を説明する。【００４２】  固定小数点演算、計算精度Ｎビット、ＬＭＡＰによる長さＮビットの２進数列の生成を考える。【００４３】  Ｎビットの初期値ｘ０を入力して、必要な数の２進ビット列ｒ（ｒ０ｒ１…）を生成する。乱数生成器の生成速度をＳｂｐｓ（ビット／秒）とし、２進数列を生成する以外の作業時間が十分に小さく、計算しないことにする。ここで、生成器からＭ×Ｎ（Ｍは２以上の整数）ビットの乱数を生成し、Ｍ本の長さＮビットの２進数列Ｒ（Ｒ０，…，Ｒｉ，…，ＲＭ−１）を切り出すとき、初期値ｘ０を用いたＲｉの生成に要する時間について検討する。【００４４】  このような生成法で生成される数列Ｒは直線上配置されているようにイメージすることができることから（図３）、この生成法を一次元生成法という。【００４５】  Ｎビットの数列であるから、明らかに、ｘ０から１本目の数列Ｒ０を生成する必要な時間はＮ／Ｓである。ｘ０から２本目の数列Ｒ１を生成する必要な時間は１本目の数列の生成時間も含むので、２Ｎ／Ｓとなる。このように、ｘ０からｉ本目の数列Ｒｉ−１の生成時間はｉ×Ｎ／Ｓとなる。【００４６】  取り得る乱数の数が多い方がいいから、Ｍのサイズが大きいほうが望ましいが、このような１つの初期値ｘ０から連続して乱数列を生成する方法では、Ｍを大きくすることができない。例えば、Ｍ＝２６４にした場合、例え乱数の生成速度が２４０ｂｐｓであっても、１本のＮビットの数列を生成するのに必要な時間は平均（１＋２６４）×Ｎ／２４０＞２２４秒となる。【００４７】  ここでＭ＝Ｍ１×Ｍ２（Ｍ１，Ｍ２は２以上の整数）とし、Ｎビットの初期値ｘ０からＭ１個のＮビットの乱数列を生成し、そして、生成されたＭ１個のＮビットの数列を新たな初期値にして、それぞれＭ２個のＮビットの乱数列を生成するような生成法を考える。生成されるＮビットの乱数をＲｉ１，ｉ２（ｉ１＝０，…，Ｍ１−１，ｉ２＝０，…，Ｍ２−１）で表す。【００４８】  このような生成法は生成される数列Ｒｉ１，ｉ２が２次元空間（座標）上に配置されているようにイメージすることができることから（図４）、これを２次元乱数生成法という。【００４９】  明らかに、Ｒの総数はＭ１×Ｍ２＝Ｍであり、初期値ｘ０から、Ｒｉ１，ｉ２の生成に必要な時間Ｔは以下のようになる。【００５０】  ＴＲ０，０＝（１×Ｎ＋１×Ｎ）／Ｓ＝２Ｎ／Ｓ
ＴＲ０，１＝（１×Ｎ＋２×Ｎ）／Ｓ＝３Ｎ／Ｓ
ＴＲ０，ｉ２＝（１×Ｎ＋（ｉ２＋１）×Ｎ）／Ｓ＝（ｉ２＋２）Ｎ／Ｓ
ＴＲｉ１，ｉ２＝（（１＋ｉ１）×Ｎ＋（ｉ２＋１）×Ｎ）／Ｓ＝（ｉ１＋ｉ２＋２）Ｎ／Ｓ【００５１】  即ち、１つの乱数列を生成するのに、必要な時間は、最も短いのは２Ｎ／Ｓで、最も長いのは  （Ｍ１＋Ｍ２）Ｎ／Ｓである。一次元生成法のときの最長時間Ｍ×Ｎ／Ｓ＝（Ｍ１×Ｍ２）Ｎ／Ｓと比べると、その違いが明白である。【００５２】  次元数をＫにして、Ｍ＝Ｍ１×…×Ｍｋ×…×ＭＫとし、Ｎビットの初期値ｘ０からＭ１個のＮビットの乱数列を生成する。そして、生成されたＭ１個のＮビットの数列を新たな初期値にして、それぞれＭ２個のＮビットの乱数列を生成する。同じように初期値作りをＭＫまで、Ｋ−１回して数列Ｒｉを生成する（ｉ１＝０，…，Ｍ１−１、ｉ２＝０，…，Ｍ２−１、…、ｉＫ＝０，…，ＭＫ−１）。数列ＲｉはＫ次元空間の中に位置座標（ｉ：ｉ１，ｉ２，…，ｉＫ）に置かれているようにイメージすることができるため、この生成法を多次元乱数生成法と称する。Ｋ次元座標空間の中に置かれている一本の数列を生成するのに必要な時間は、（Ｋ＋ｉ１＋ｉ２＋…＋ｉＫ）Ｎ／Ｓであり、最も短い時間はＫＮ／Ｓで、最も長い時間は（Ｍ１＋Ｍ２＋…＋ＭＫ）Ｎ／Ｓとなることが分かる。平均時間は  （Ｋ＋Ｍ１＋Ｍ２＋…＋ＭＫ）Ｎ／（２Ｓ）である。【００５３】  多次元乱数生成法の中の各パラメータＮ，Ｋ（ｋ），Ｍ（Ｍｋ）が持つ意味について説明する。【００５４】  Ｎは計算精度である。従って、取り得る初期値の種類（初期値空間のサイズ）はＮビットの値０…０，０１０…０，１０…０，１１０…０（０，０．２５，０．５，０．７５）を除く２Ｎ−４通りである。但し、ある初期値ｘ０から生成できるカオス状態の長さは２Ｎ／２に近いことから、Ｍが非周期状態である大きさは２Ｎ／２／Ｎと推測される。実際Ｎを３２〜６４の間で、多次元生成器の周期性について、数値計算によるＭの非周期状態長を検索した結果は２Ｎ／２に近い。それは繰り返す初期値の生成により、多次元乱数生成器が持つ周期性がもとのＬＭＡＰよりも長くなったと考えられる。【００５５】  次元サイズＭはある初期値ｘ０から生成できる数列の総数である。一般的には、乱数生成器が持つ周期性に制約される。しかし、多次元空間の中に複数の同じ数列が配置（どこかに配置されるかは分からない）されてもよいのであれば、その制約は受けない。【００５６】  Ｍｋは各次元の座標空間のサイズを決める（ｋ＝１，２，…，Ｋ）。また、Ｒｉの生成速度に影響を与える。Ｍｋのサイズが大きいとＲｉの平均生成速度が極端に遅くなることもある。ＭｋはＫと一緒にＲｉに対し分類する機能を持つ。というのは、特定の意味のある情報（例えば：トキ、ナマエ、ソシキ（ブモン）など）を持つことができる。即ち、Ｍｋの適切のサイズは生成速度だけでなく、分類上の便宜さと総合して、決める必要がある。尚、座標空間を最も効率よく表すにはＭ＝２ｍ、ｍ＝ｍ１＋…＋ｍＫとした方がよい（ｍ１，…，ｍＫは１以上の整数）。【００５７】  Ｋは次元数として分類する機能も持つ。Ｍが一定であるとき、Ｋを大きくすれば、Ｍｋの平均サイズが小さくなり、Ｒｉの生成速度が速くなる。また、個別のＭｋのサイズが極端に大きいとき、Ｒｉの生成速度が極端に遅くなることも��る。これは同じ次元（類）に属する座標数が大きく設定すると、一次元生成法で見たように、この次元においての平均生成時間は長くなるからである。このように、Ｋの設定は、次元の分類機能に従いながらも個別なＭｋのサイズが極端に大きくならないようにする必要がある。というのは、同じ類に属しても１つの次元で表する必要がない。即ち、分類上個別なＭｋのサイズが大きいとき、その類に対し、複数の次元にすることができる。【００５８】  Ｋ（ｋ）を分割することができる。【００５９】  計算精度Ｎビット、初期値ｘ０、次元数Ｋ、各次元のサイズＭ１，Ｍ２，…，ＭＫの多次元乱数生成システムを考える。中間次元ｋのときの状態を考察する。【００６０】  ｋ＝１のとき、初期値ｘ０からＭ１個のＮビットの２進数列Ｒ０，Ｒ１，…を生成することができる。ｋ＝２のとき、初期値ｘ０からＭ１個のＮビットの２進数列（中間初期値）ＲＲ０，Ｒ１，…が生成され、それぞれの中間初期値から、Ｍ２個のＮビットの２進数列Ｒｉ１，ｉ２を生成することができる。即ち、初期値ｘ０から総数Ｍ１×Ｍ２個のＮビットの２進数列を生成することができる。同じように、中間次元ｋにおいて、Ｍ１×Ｍ２×…×Ｍｋ個の中間初期値を生成できる。【００６１】  ここに、ｋ＝Ｋｕ，Ｋ＝Ｋｕ＋Ｋｄとすると、Ｋｄ＝Ｋ−Ｋｕとなる。即ち、初期値ｘ０、次元数Ｋｕ、各次元のサイズＭ１，Ｍ２，…，ＭＫｕの上位次元による多次元乱数生成システムが成り立つ。また、次元数Ｋｕの上位次元によるシステムが生成するＭ１×Ｍ２×，…，×ＭＫｕ個のＮビットの２進数列（中間初期値）をそれぞれの初期値とする下位次元による多次元乱数生成システム（次元数Ｋｄ、各次元のサイズＭＫｕ＋１，ＭＫｕ＋２，…，ＭＫ）も成立する。【００６２】  このように、２つのＫが１つの多（Ｋ）次元乱数生成システムに対応するが、Ｋを分割することにより、多次元乱数生成システムを分割することができる。そして、多次元乱数生成システムを分割する際、次元Ｋｕを界に、すべての下位次元を多次元乱数生成システムから分割する必要はない。任意の中間座標ｉ１，ｉ２，…，ｉＫｕの位置にあるＲｉ１，ｉ２，…，ｉＫｕを出力して、新たな下位多次元乱数生成システムの初期値にすると、一つ次元数Ｋｄの下位次元による多次元乱数生成システムが元の多次元乱数生成システムから分離される。【００６３】  また、明らかに、分割の逆作業として、分割した複数のシステムを再び連結（統合）することもできる。但し、分割されるときのそれぞれの中間次元座標情報を保存する必要がある。言い換えれば、再び連結する必要のある分割システムに対して、中間次元座標情報を保存しなければならない。再び連結する必要のない完全に独立する分割システムに対しては、その中間次元座標を削除すればよい。【００６４】  ＫをＫｕとＫｄの２分割について示したが、同じ方法で必要に応じた複数の分割もできることは言うまでもない。【００６５】  初期値ｘ０、次元座標ｉ（ｉ１，ｉ２，…，ｉＫ）から生成されたＲｉと、初期値Ｒｉ１，ｉ２，…，ｉＫｕ、次元座標ｉ′（ｉ（Ｋｕ＋１），ｉ（Ｋｕ＋２），…．ｉＫ）から生成されたＲｉ′は同値である。というのは、初期値ｘ０から初期値Ｒｉ１，ｉ２，…，��Ｋｕを得ることができるが、Ｒｉ１，ｉ２，…ｉＫｕから初期値ｘ０を得ることができない。このような関係を持つ初期値に対し、初期値ｘ０を上位初期値といい、初期値Ｒｉ１，ｉ２，…，ｉＫｕを下位初期値という。【００６６】  このような性質を持つ多次元乱数生成方法を用いて、階級的な乱数生成システムを構築することができる。即ち、上位初期値ｘ０と、下位初期値Ｒｉ１，ｉ２，…，ｉＫｕの持つ権限が異なり、初期値ｘ０を持つ者がＲｉ１，ｉ２，…，ｉＫｕを持つ者よりもより大きい権限を持つ。【００６７】  図５は多次元乱数生成・管理装置１００の動作の一例を示すフローチャートである。乱数生成命令により本フローチャートに示す乱数生成・管理装置１００の動作はスタートする。【００６８】  乱数生成・管理情報入力部１０２に入力されたＮビット２進数列と多次元座標情報を受け取り、変数ｋをｋ＝０とする（ｓ１０２）。そして、初期値及び次元座標値変換部１０４は変数ｋに１を足し、受け取ったＮビットの２進数列ＲをＬＭＡＰの初期値ｘ０に変換し、次元座標情報（ｉ１，ｉ２，…，ｉＫ）と共に（ｓ１０４）、格納レジスタ１０６に格納する（ｓ１０６）。次は１０６に格納されているｘ０と次元座標情報ｉに基づき、「カオス計算器」１０８がＮビットの２値系列Ｒｉ１，…，ｉＫを生成し、乱数格納レジスタ１１０に格納される（ｓ１０８）。ｋは次元数Ｋより小さい場合、Ｎビットの２値系列Ｒｉ１，…，ｉＫを初期値及び次元座標値変換部１０４に入力し（ｓ１１０）、（ｓ１０４）からの計算を繰り返す。ｋ＝Ｋになった場合、Ｎビットの２値系列Ｒｉ１，…，ｉＫを出力とし（ｓ１１２）、本フローチャートに示す乱数生成装置１００の動作は終了する。【００６９】  ここに、乱数を管理するシステムの具体例を用いて、本発明の効果を初期値敏感性、近傍座標の無相関性、生成速度、システムの分割などから確認する。【００７０】  工業製品にはこの製品を特定できる記号（番号）が与えられている。例えば、機種番号、製造番号、ロット番号、製造年月などがある。これらの番号は製品に関する情報の管理、及びアフターサービスの際に必要とされる。当然、これらの番号は管理されなければならない。こういう製品の番号は規則あるもの（連番）が多い。規則があるから情報量が少なく、管理しやすい。しかし、その反面、ある番号から他の番号を推測しやすく、悪用されやすい（似たような製品に、本物の製品の番号をつけて、成り済ましをする（コピー製品））。製品の番号を推測できないようにするには、規則ある番号に規則のない識別ＩＤ（乱数）番号を加えるとよいが、規則のない乱数を使うと、無限に近い工業製品の番号の管理が難しくなる。本願が提案する多次元乱数生成法はこのよう規則の見えない識別ＩＤ（乱数列）の管理問題に役立つ。【００７１】  多次元乱数生成法の三つの要素（Ｒ、ｉ、Ｒｉ）に対し、製品を識別できる（ユニークな）製品番号を次元座標（ｉ）に変換して、生成される製品識別ＩＤ（乱数列Ｒｉ）を製品番号に加えることにより、製品番号を推測できないことにするアイディアである。そのときの初期値ｘ０（Ｒ）は製品識別ＩＤを管理する管理キーとなる。正しい初期値ｘ０と製品番号により、対応する製品識��ＩＤが生成（再生）される。規則ある製品番号は推測できるが、付け加えられている製品識別ＩＤは推測できない。即ち、初期値ｘ０を持たない者は、正しい製品番号と製品識別ＩＤのペアを得ることができない。【００７２】  機種番号ＭＣ７８０、製造番号Ｃ０４２８７５のような製品番号を持つ製品の識別ＩＤを生成する単純化したシステムの例を示す。【００７３】  識別ＩＤを生成するために、製品番号を次元座標に変換する必要がある。ここに、機種番号と製造番号を図６に示すように変換させる（英字はＡＳＣＩＩコードの１６進表示、数字は１０進を１６進表示へ）。【００７４】  次元数Ｋ＝１４、各次元のサイズＭ１＝Ｍ２＝…＝Ｍ１４＝１６とし、管理キーを１２８ビットの初期値（１６進）ｘ０＝０…０１とすると、多次元乱数生成法により計算されたＲｉは１６進表示で、Ｂ４４７６８Ｂ０６Ｂ７Ａ２５Ｄ４６４Ｆ３５２３５５２ＢＤ０ＤＦＢとなる。対応する次元座標は１６進表示で、（ｉ＝４，Ｄ，４，３，２，Ｃ，４，４，３，０，Ａ，７，７，Ｂ）である。【００７５】  先ず、次元座標ｉを固定にし、初期値ｘ０に微小な変化を与え、生成されるＲｉを確認する。次元座標ｉを（４，Ｄ，４，３，２，Ｃ，４，４，３，０，Ａ，７，７，Ｂ）にしたときの例を示す。初期値ｘ０を０…０１と０…０２（１６進３２桁）にしたときのＲｉはそれぞれ（Ｂ４４７６８Ｂ０６Ｂ７Ａ２５Ｄ４６４Ｆ３５２３５５２ＢＤ０ＤＦＢ）と、（８８４９Ａ５９９４Ｅ６ｂ８６１Ｆ６２９８ＣＦＢ４Ｃ７Ｃ７１Ｅ９Ｆ）となる。初期値敏感性を確認できる。【００７６】  次に、初期値を固定にし、次元座標ｉに微小な変化を与え、生成されるＲｉを確認する。初期値ｘ０を０…０１にしたときの一例を示す。次元座標ｉを（４，Ｄ，４，３，２，Ｃ，４，４，３，０，Ａ，７，７，Ｂ）と、（４，Ｄ，４，３，２，Ｃ，４，４，３，０，Ａ，７，７，Ｃ）としたとき、得られたＲｉはそれぞれ（Ｂ４４７６８Ｂ０６Ｂ７Ａ２５Ｄ４６４Ｆ３５２３５５２ＢＤ０ＤＦＢ）と、（ＢＡ１３５９６７５Ｄ９５１２１５Ｄ６Ｆ１４４１１４２６Ｄ１Ｅ１３）である。近傍次元座標の非相関を確認できる。【００７７】  以上の結果から、多次元乱数生成法を用いて構築した乱数生成器は同じシステムの構成でも、異なった初期値の同じ次元座標にある乱数列の間から相関性を見出すことができない。即ち、同じ構成のシステムでも、同じ次元座標にある乱数列から初期値を推測することができない。又、ある次元座標に位置する乱数列から、その近傍の次元座標に位置する乱数列を推測することもできない効果を確認できた。【００７８】  （００５２）に２値系列の生成速度が与えられたときのある次元座標に位置する乱数列の生成に要する時間を示した。そのとき、２進数列を生成する以外の作業時間が十分に小さく、計算しないことにした。ここに、このような近似的に計算された生成時間を推測時間ｔ′とし、実際にかかった時間を実測時間ｔとして、２値系列の生成速度が４．９Ｍｂｐｓのときの両者の結果を図７に示す。近い結果であることを確認できる。また、十分に実用できる速度になっていることも確認できる。【００７９】  製品識別ＩＤを生成するシステムにおいて、製品番号は機種番号と製造番号���らなる。即ち、製品番号に機種を管理する部分（機種番号）とこの機種の製品を管理する部分（製造番号）にわかれている。ここで、製品番号を機種番号と製造番号に分割して、分割しない場合と分割した場合に生成される乱数列を確認する。【００８０】  初期値ｘ０が０…０１、次元座標ｉが（４，Ｄ，４，３，２，Ｃ，４，４，３，０，Ａ，７，７，Ｂ）のときに生成される乱数列Ｒｉは（００７５）に示した通りである。先ず、次元座標を（４，Ｄ，４，３，２，Ｃ，４）（機種管理）と（４，３，０，Ａ，７，７，Ｂ）（該当機種の製品）に分割する。そして、初期値ｘ０（０…０１）と次元座標ｉ１（４，Ｄ，４，３，２，Ｃ，４）から乱数列Ｒｉ′を生成する。更に、初期値Ｒｉ′と次元座標ｉ″（４，３，０，Ａ，７，７，Ｂ）から乱数列Ｒｉ″を生成し、分割しないときの乱数列Ｒｉと比較する。その結果、分割するときと分割しないときの乱数列は一致していることを確認できた。【００８１】  更に、分割した次元座標においてのＲｉ′とＲｉ″の生成に必要の時間を見ると、それぞれ０．００１４３７秒と０．００１４２１秒で、その合計は分割しないときの０．００２７８１秒とほぼ一致する。【００８２】  このように、計算方法など変えずに、単に初期値と次元座標を変えるだけで、子システムを容易に本システムから分離できる。また、分割によって、システムの計算量が軽減となり、乱数生成も速くなる。【００８３】  更に、分割によって、下位システムに上位システムに関する情報を持つ必要がなくなり、情報セキュリティーの観点から、上位システムがより安全になるといえる。例えば本製品管理システムの場合に、ある製品の生産拠点を海外などに移転したとき、このような管理システムの分割は有効である。
【産業上の利用可能性】
【００８４】  本発明によれば、本願が提案する乱数生成・管理方法は、一つのＮビットの２進数列Ｒ（初期値）とＭ（Ｍは１以上の整数）個の規則のある次元座標情報ｉによるＭ個の規則のないＮビットの２進数列Ｒｉを生成・管理できる（図１）【００８５】  本発明の乱数生成において、Ｒと規則あるｉによるＲｉの生成であるが、特定のｉとＲｉを用いて、他のＲｉを推測することも、Ｒを推測することもできない性質を持つ。このような性質を持つ乱数生成器は、情報セキュリティーなどの分野で幅広く応用できる。【００８６】  本発明の乱数生成法を用いれば、ＩＤ、ＰＷの使い捨てシステムの構築が可能となる。即ち、システム側とユーザー側が持つ秘密な（ＩＤ、ＰＷ）をＲにして、認証を行う度にユーザー側は新しいｉとＲを用いて、Ｒｉ（認証用ＩＤ、ＰＷ）を生成し、ｉとＲｉをシステム側へ送る。システム側は受け取ったｉと該当ユーザーのＲを用いて、Ｒｉを生成し、送られたものと照合し認証を行う。一つのｉは一度しか使われないため、盗聴されても問題が生じない。秘密なＲ（ＩＤ、ＰＷ）は通信路上など、外へ出すことはないため、安全である。Ｒは身体から採取した情報（指紋、静脈など）などを使えば記憶する必要もない。【００８７】  本発明の乱数生成法を暗号システムの暗号鍵生成・管理システムに応用すると、最も強い暗号と言われる使い捨て鍵暗号方式が実現可能となる。次元座標情報ｉを使い捨て（一度しか使わない）によって、同じ暗号鍵が使われることはない。【００８８】  本発明の乱数生成法を共通鍵暗号化通信に応用すると、同じ秘密鍵Ｒを持つ者の間に、使い捨て鍵の暗号化通信ができる。情報を送る度に、Ｒと新しいｉにより暗号鍵Ｒｉを生成し、情報を暗号化する。暗号化した情報とｉを相手に送るだけで、Ｒを送る必要はない。暗号化した情報とｉを受け取った相手側は、持っているＲとｉでＲｉを生成し、暗号化した情報を復号する。Ｒは通信路上に出ないから、安全である。【００８９】  本発明は乱数の生成において、数１を固定小数点演算で行うため、整数を用いた計算で実行できる。整数の分割計算が容易であるから、異なるシステム（汎用計算機（各種のＯＳ）、専用ハードウェア、マイクロコンピュータなど）であっても、最も基本的な整数演算（加算、乗算、ビットシフト、ビットごとの論理演算）ができるのであれば、同じ入力による同じ出力が得られる。【００９０】  従って、本発明の乱数生成装置は様々なニーズに対応できる「性能−コスト」の組合せを持ち、拡張性も富み、セキュリティー分野を中心とする幅広い産業の分野での応用が可能である。【００９１】  以上、実施形態を用いて本発明を説明したが、本発明の技術手段は上記実施形態に記載の範囲に限定されることではない。上記実施形態に変更または改良を加えることができる。また、上記発明は数１を用いて、２進系列を生成しているが、他の２進系列生成法を用いることも可能である。また、乱数の生成効率及び品質の低下を代償に上記実施形態に変更を加えることも可能である。そのような変更、改良を加えた形態も本発明の技術の範囲に含まれることは明らかである。
【図面の簡単な説明】
【００９２】
【図１】  本発明の乱数生成・管理システムの概念図
【図２】  本発明の一実施形態である乱数生成装置の構成図
【図３】  一次元乱数生成を示す図。
【図４】  二次元乱数生成を示す図。
【図５】  乱数生成装置１００の動作の一実施例を示すフローチャート。
【図６】  工業製品が持つ製品番号を次元座標情報への変換を示す表。
【図７】  多次元乱数生成法において、乱数生成に必要な時間の具体例を示す表。
【符号の説明】
【００９３】    １００  乱数生成・管理装置
１０２  乱数生成・管理情報入力部
１０４  初期値及び次元座標値変換部
１０６  格納レジスタ
１０８  「カオス計算器」
１１０  乱数格納レジスタ
１１２  多次元乱数生成制御部
【図１】
2010033523.tif 000005
【図２】
2010033523.tif 000006
【図３】
2010033523.tif 000007
【図４】
2010033523.tif 000008
【図５】
2010033523.tif 000009
【図６】
2010033523.tif 000010
【図７】
2010033523.tif 000011
【手続補正書】
【提出日】平成21年2月6日(2009.2.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
乱数生成・管理方法であって、
与えられたＮ（Ｎは２以上の整数）ビットの２進数列Ｒと、次元数Ｋの次元座標情報ｉ（ｉ１，…，ｉｋ，…，ｉＫ）に対し（ｉｋは０以上の整数、ｋ：１，２，…，Ｋ）、
Ｒを非線形写像関数ｘｔ＋１＝４ｘｔ（１−ｘｔ）（以下ＬＭＡＰと称する。０＜ｘｔ＜１）の初期値ｘ０の小数点以下の部分とし、ｉを各次元座標値ｉ１，…，ｉｋ，…，ｉＫとし、ｘ０とｉ１，…，ｉｋ，…，ｉＫを格納レジスタに格納し、
１．前記格納レジスタにある初期値ｘ０とｉｋに基づき、「カオス計算器」は、ＬＭＡＰに対し、計算精度Ｎビットの固定小数点演算を繰り返し、Ｎビットの２進数列Ｂｉｋを生成し（Ｂｉｋの各ビットは（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１）からなり、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１＝［２×ｘＮ×ｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮ×ｉｋ＋Ｎ−１］、［］は小数点以下を切り捨てる計算）、
２．前記「カオス計算器」は再びＢｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、ＬＭＡＰの計算を繰り返し、Ｎビットの２進数列Ｒｉ１，…，ｉｋ（ｋ＝１のときＲｉ１，…，ｉｋはＲｉ１であり、…、ｋ＝ＫのときＲｉ１，…，ｉｋはＲｉ１，…，ｉＫである）を生成し（Ｒｉ１，…，ｉｋの各ビットは（ｒｋ，０ｒｋ，１…ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、乱数格納レジスタに格納し、
３．前記乱数格納レジスタにあるＲｉ１，…，ｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、格納レジスタに格納し
前記１．、２．、３．の作業をｋ＝１，２，…，Ｋの値で順次に行い、（但し、ｋ＝Ｋのとき、ＲｉをＬＭＡＰの初期値ｘ０への変換はしない）、多次元乱数Ｒｉを生成することを特徴とする乱数生成・管理方法。
【請求項２】
乱数生成・管理装置であって、
Ｎ（Ｎは２以上の整数）ビットの２進数列Ｒを乱数生成初期値情報として、次元数Ｋの次元座標ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標情報として受付ける乱数生成・管理情報入力部と、
2010033523.tif 000012
の初期値ｘ０の小数点以下の部分として、ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標値として、ＬＭＡＰの計算による乱数生成に備える初期値・次元座標値変換部と、
2010033523.tif 000013
ジスタと、
前記格納レジスタに格納されている初期値ｘ０及び次元座標値に基づき、ＬＭＡＰに対し計算精度Ｎビットの固定小数点演算を繰り返し、Ｎビットの２進数列Ｂｉｋを生成し（Ｂｉｋの各ビットは（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１）からなり、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１
2010033523.tif 000014
Ｒｉ１，…，ｉｋ（ｋ＝１のときＲｉ１，…，ｉｋはＲｉ１であり、…、ｋ＝ＫのときＲｉ１，…，ｉｋはＲｉ１，…，ｉＫである）を生成し（Ｒｉ１，…，ｉｋの各ビットは（ｒｋ，０ｒｋ，１…ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、カオス２値系列を生成する「カオス計算器」と、
前記「カオス計算器」から出力されるＮビットの２値系列Ｒｉ１，…，ｉｋを格納する乱数格納レジスタと、
前記乱数生成・管理情報入力部の動作、初期値・次元座標値変換部の動作、「カオス計算器」
2010033523.tif 000015
を備えたことを特徴とする乱数生成・管理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】  本発明（請求項１）に係る乱数の生成・管理方法は、与えられたＮ（Ｎは２以上の整数）ビットの２進数列Ｒと、次元数Ｋ（Ｋは１以上の整数）の次元座標情報ｉ（ｉ１，…，ｉｋ，…，ｉＫ）に対し（ｉｋは０以上の整数、ｋ：１，２，…，Ｋ）、ＬＭＡＰの初期値ｘ０の小数点以下の部分とし、ｉを各次元座標値ｉ１，…，ｉｋ，…，ｉＫとし、ｘ０とｉ１，…，ｉｋ，…，ｉＫを格納レジスタに格納し、
１．前記格納レジスタにある初期値ｘ０とｉｋに基づき、「カオス計算器」は、ＬＭＡＰに対し、計算精度Ｎビットの固定小数点演算を繰り返し、Ｎビットの２進数列Ｂｉｋを生成し（Ｂｉｋの各ビットは（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１）からなり、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１＝［２×ｘＮ×ｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮ×ｉｋ＋Ｎ−１］、［］は小数点以下を切り捨てる計算）、
２．前記「カオス計算器」は再びＢｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、ＬＭＡＰの計算を繰り返し、Ｎビットの２進数列Ｒｉ１，…，ｉｋ（ｋ＝１のときＲｉ１，…，ｉｋはＲｉ１であり、…、ｋ＝ＫのときＲｉ１，…，ｉｋはＲｉ１，…，ｉＫである）を生成し（Ｒｉ１，…，ｉｋの各ビットは（ｒｋ，０ｒｋ，１…ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、乱数格納レジスタに格納し、
３．前記乱数格納レジスタにあるＲｉ１，…，ｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、格納レジスタに格納し、
前記１．、２．、３．の作業をｋ＝１，２，…，Ｋの順で行い、（但し、ｋ＝Ｋのとき、ＲｉをＬＭＡＰの初期値ｘ０への変換はしない）、多次元乱数Ｒｉを生成することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】  本発明（請求項２）に係る乱数の生成・管理装置はＮ（Ｎは２以上の整数）ビットの２進数列Ｒを乱数生成初期値情報として、次元数Ｋの次元座標ｉ（ｉ１，…，ｉｋ，…ｉＫ）を次元情報として受付ける乱数生成・管理情報入力部と、前記ＲをＬＭＡＰの初期値ｘ０の小数点以下の部分として、ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標値として、ＬＭＡＰの計算による乱数生成に備える初期値ｘ０・次元座標値変換部と、前記初期値・次元座標値変換部で変換された初期値及び次元座標値を格納する格納レジスタと、前記格納レジスタに格納されている初期値及び次元座標値に基づき、ＬＭＡＰに対し、計算精度Ｎビットの固定小数点演算を繰り返し、Ｎビットの２進数列Ｂｉｋを生成し（Ｂｉｋの各ビットは（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１））からなり、ｂｋ，０＝［２×ｘＮｉｋ］、ｂｋ，１＝［２×ｘＮｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮｉｋ＋Ｎ−１］、［］は小数点以下を切り捨てる計算）、再びＢｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、上記ＬＭＡＰの計算を繰り返し、Ｎビットの２進数列Ｒｉ１，…，ｉｋ（ｋ＝１のときＲｉ１，…，ｉｋはＲｉ１であり、…、ｋ＝ＫのときＲｉ１，…，ｉｋはＲｉ１，…，ｉＫである）を生成し（Ｒｉ１，…，ｉｋの各ビットは（ｒｋ，０ｒｋ，１…ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、カオス２値系列を生成する「カオス計算器」と、前記「カオス計算器」から出力されるＮビットの２値系列Ｒｉ１，…，ｉｋを格納する乱数格納レジスタと、前記乱数生成・管理情報入力部の動作、初期値・次元座標値変換部の動作、「カオス計算器」の計算及びＲｉ１，…，ｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分に変換する計算をｋ＝１，２，…，Ｋの値で順次に行う（但し、ｋ＝Ｋのとき、ＲｉをＬＭＡＰの初期値ｘ０への変換はしない）ことにより多次元乱数Ｒｉの生成、を行わせる乱数生成制御部と、を備えたことを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】  図２は本発明の一実施形態である乱数生成・管理装置１００の構成図を示す。本実施形態の乱数生成・管理装置１００はＮビットの２進数列ＲをＬＭＡＰの初期値ｘ０に変換して、「ｘ０と次元座標情報ｉに基づき、「カオス計算器」を用いて、Ｎビットの２値系列Ｒｉ１，…，ｉｋを生成し、それを更にｘ０に変換する」計算をＫ回繰り返すことにより、多次元乱数Ｒｉを生成する。乱数生成・管理装置１００は乱数生成・管理情報入力部１０２、初期値・次元座標値変換部１０４、格納レジスタ１０６、「カオス計算器」１０８、乱数格納レジスタ１１０、乱数生成制御部１１２を備える。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】変更
【補正の内容】
【００２９】初期値・次元座標値変換部１０４は入力される２進数列Ｒ或いは多次元乱数生成の過程の中に生成される２進系列Ｒｉ１，…，ｉｋをｘ０に変換して、また、入力される次元座標情報を各次元における次元座標の値ｉ１，…，ｉｋ，…，ｉＫに変換して、固定小数点演算による多次元乱数の生成に備える。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】  格納レジスタ１０６は初期値・次元座標値変換部１０４で変換されたｘ０及びｉ１，…，ｉｋ，…，ｉＫを格納する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】  「カオス計算器」１０８は格納レジスタ１０６に格納されている初期値ｘ０を使って、順次に、次元座標ｉｋ（ｋ＝１，２，…Ｋ）に従い、ＬＭＡＰを計算し、Ｎビットの２進系列Ｒｉ１，…，ｉｋを生成する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】再びＢｉｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、ＬＭＡＰの計算をＮ回計算する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】  乱数生成制御部１１２は次元数Ｋの次元座標情報に対し、次元ｋ＝１からＫまで、順次に次元座標情報を使い、「カオス計算器」による計算を繰り返し、その出力を乱数格納レジスタ１１０に格納し、ｋ＜Ｋのとき、乱数格納レジスタ１１０に格納されている乱数を、初期値・次元座標値変換部１０４により、ｘ０へ変換し、格納レジスタ１０６に格納し、ｋ＝Ｋのとき、乱数格納レジスタ１１０に格納されているＮビットの２進系列を乱数Ｒｉとし、計算を終了させる。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】  乱数生成・管理情報入力部１０２に入力されたＮビット２進数列と多次元座標情報を受け取り、変数ｋをｋ＝０とする（ｓ１０２）。そして、初期値・次元座標値変換部１０４は変数ｋに１を足し、受け取ったＮビットの２進数列ＲをＬＭＡＰの初期値ｘ０に変換し、次元座標情報（ｉ１，ｉ２，…，ｉＫ）と共に（ｓ１０４）、格納レジスタ１０６に格納する（ｓ１０６）。次は１０６に格納されているｘ０と次元座標情報ｉｋに基づき、「カオス計算器」１０８がＮビットの２値系列Ｒｉ１，…，ｉｋを生成し、乱数格納レジスタ１１０に格納される（ｓ１０８）。ｋは次元数Ｋより小さい場合、Ｎビットの２値系列Ｒｉ１，…，ｉｋを初期値・次元座標値変換部１０４に入力し（ｓ１１０）、（ｓ１０４）からの計算を繰り返す。ｋ＝Ｋになった場合、Ｎビットの２値系列Ｒｉ１，…，ｉＫを出力とし（ｓ１１２）、本フローチャートに示す乱数生成装置１００の動作は終了する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００９３
【補正方法】変更
【補正の内容】
【００９３】    １００  乱数生成・管理装置
１０２  乱数生成・管理情報入力部
１０４  初期値・次元座標値変換部
１０６  格納レジスタ
１０８  「カオス計算器」
１１０  乱数格納レジスタ
１１２  多次元乱数生成制御部
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2010033523.tif 000016
【手続補正書】
【提出日】平成21年4月23日(2009.4.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
乱数生成・管理方法であって、
与えられたＮ（Ｎは２以上の整数）ビットの２進数列Ｒと、次元数Ｋの次元座標情報ｉ（ｉ１，…，ｉｋ，…，ｉＫ）に対し（ｉｋは０以上の整数、ｋは次元番号、整数：１，２，…，Ｋ）、
Ｒを非線形写像関数ｘｔ＋１＝４ｘｔ（１−ｘｔ）（以下ＬＭＡＰと称する。０＜ｘｔ＜１）の初期値ｘ０の小数点以下の部分とし、ｉを各次元座標値ｉ１，…，ｉｋ，…，ｉＫとし、ｘ０とｉ１，…，ｉｋ，…，ｉＫを格納レジスタに格納し、
１．前記格納レジスタにある初期値ｘ０とｉｋに基づき、「カオス計算器」は、ＬＭＡＰに対し、計算精度Ｎビットの固定小数点演算をＮ×ｉｋ＋Ｎ−１回繰り返し、ｘＮ×ｉｋからｘＮ×ｉｋ＋Ｎ−１までのＮ個の値を用いて、Ｎビットの２進数列Ｂｋを生成し（Ｂｋの各ビットは上位ビットから（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１）からなり、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１＝［２×ｘＮ×ｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮ×ｉｋ＋Ｎ−１］、［］は小数点以下を切り捨てる計算）、
２．前記「カオス計算器］は再びＢｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、ＬＭＡＰの計算を２×Ｎ−１回繰り返し、Ｎビットの２進数列Ｒｋを生成し（Ｒｋの各ビットは上位ビットから（ｒｋ，０ｒｋ，１…ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、乱数格納レジスタに格納し、３．前記乱数格納レジスタにあるＲｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、格納レジスタに格納し、
前記１．、２．、３．の作業をｋ＝１，２，…，Ｋの値で順次に行い、（但し、ｋ＝Ｋのとき、前記３．の処理を行わない）、多次元乱数ＲＫを生成することを特徴とする乱数生成・管理方法。
【請求項２】
乱数生成・管理装置であって、
Ｎ（Ｎは２以上の整数）ビットの２進数列Ｒを乱数生成初期値情報として、次元数Ｋの次元座標ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標情報として受付ける乱数生成・管理情報入力部（ｉｋは０以上の整数、ｋは次元番号、整数：１，２，…，Ｋ）と、
前記Ｒを非線形写像関数ｘｔ＋１＝４ｘｔ（１−ｘｔ）（以下ＬＭＡＰと称する。０＜ｘｔ＜１）の初期値ｘ０の小数点以下の部分として、ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標値として、ＬＭＡＰの計算による乱数生成に備える初期値・次元座標値変換部と、
前記初期値・次元座標値変換部で変換された初期値ｘ０及び次元座標値を格納する格納レジスタと、
前記格納レジスタに格納されている初期値ｘ０及び次元座標値に基づき、ＬＭＡＰに対し計算精度Ｎビットの固定小数点演算をＮ×ｉｋ＋Ｎ−１回繰り返し、ｘＮ×ｉｋからｘＮ×ｉｋ＋Ｎ−１のＮ個の値を用いて、Ｎビットの２進数列Ｂｋを生成し（Ｂｋの各ビットは上位ビットから（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１）からなり、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１＝［２×ｘＮ×ｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮ×ｉｋ＋Ｎ−１］）、再びＢｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、上記ＬＭＡＰの計算を２×Ｎ−１回繰り返し、Ｎビットの２進数列Ｒｋを生成し（Ｒｋの各ビットは上位ビットから（ｒｋ，０ｒｋ，１…ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、カオス２値系列を生成する「カオス計算器」と、
前記「カオス計算器」から出力されるＮビットの２値系列Ｒｋを格納する乱数格納レジスタと、
前記乱数生成・管理情報入力部の動作、初期値・次元座標値変換部の動作、「カオス計算器」の計算及びＲｋをＬＭＡＰの初期値ｘ０の小数点以下の部分に変換する計算をｋ＝１，２，…，Ｋの値で順次に行う（但し、ｋ＝Ｋのとき、前記ＲｋをＬＭＡＰの初期値ｘ０への変換を行わない）ことにより多次元乱数ＲＫの生成、を行わせる乱数生成制御部と、
を備えたことを特徴とする乱数生成・管理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】本発明（請求項１）に係る乱数の生成・管理方法は、与えられたＮ（Ｎは２以上の整数）ビットの２進数列Ｒと、次元数Ｋの次元座標情報ｉ（ｉ１，…，ｉｋ，…，ｉＫ）に対し（ｉｋは０以上の整数、ｋは次元番号、整数：１，２，…，Ｋ）、Ｒを非線形写像関数ｘｔ＋１＝４ｘｔ（１−ｘｔ）（以下ＬＭＡＰと称する。０＜ｘｔ＜１）の初期値ｘ０の小数点以下の部分とし、ｉを各次元座標値ｉ１，…，ｉｋ，…，ｉＫとし、ｘ０とｉ１，…，ｉｋ，…，ｉＫを格納レジスタに格納し、
１．前記格納レジスタにある初期値ｘ０とｉｋに基づき、「カオス計算器」は、ＬＭＡＰに対し、計算精度Ｎビットの固定小数点演算をＮ×ｉｋ＋Ｎ−１回繰り返し、ｘＮ×ｉｋからｘＮ×ｉｋ＋Ｎ−１のＮ個の値を用いて、Ｎビットの２進数列Ｂｋを生成し（Ｂｋの各ビットは上位ビットから（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１）からなり、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１＝［２×ｘＮ×ｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮ×ｉｋ＋Ｎ−１］、［］は小数点以下を切り捨てる計算）、
２．前記「カオス計算器」は再びＢｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、ＬＭＡＰの計算を２×Ｎ−１回繰り返し、Ｎビットの２進数列Ｒｉ１，．．．，ｉｋ（Ｒｋで表す）を生成し（Ｒｋの各ビットは上位ビットから（ｒｋ，０ｒｋ，１…ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、乱数格納レジスタに格納し、
３．前記乱数格納レジスタにあるＲｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、格納レジスタに格納し、
前記１．、２．、３．の作業をｋ＝１，２，…，Ｋの値で順次に行い、（但し、ｋ＝Ｋのとき、前記３．の処理を行わない）、多次元乱数ＲＫを生成することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】本発明（請求項２）に係る乱数の生成・管理装置はＮ（Ｎは２以上の整数）ビットの２進数列Ｒを乱数生成初期値情報として、次元数Ｋの次元座標ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標情報として受付ける乱数生成・管理情報入力部（ｉｋは０以上の整数、ｋは次元番号、整数：１，２，…，Ｋ）と、前記Ｒを非線形写像関数ｘｔ＋１＝４ｘｔ（１−ｘｔ）（以下ＬＭＡＰと称する。０＜ｘｔ＜１）の初期値ｘ０の小数点以下の部分として、ｉ（ｉ１，…，ｉｋ，…，ｉＫ）を次元座標値として、ＬＭＡＰの計算による乱数生成に備える初期値・次元座標値変換部と、前記初期値・次元座標値変換部で変換された初期値ｘ０及び次元座標値を格納する格納レジスタと、前記格納レジスタに格納されている初期値ｘ０及び次元座標値に基づき、ＬＭＡＰに対し計算精度Ｎビットの固定小数点演算をＮ×ｉｋ＋Ｎ−１回繰り返し、ｘＮ×ｉｋからｘＮ×ｉｋ＋Ｎ−１までのＮ個の値を用いて、Ｎビットの２進数列Ｂｋを生成し（Ｂｋの各ビットは上位ビットから（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１）からなり、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１＝［２×ｘＮ×ｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮ×ｉｋ＋Ｎ−１］）、再びＢｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、上記ＬＭＡＰの計算を２×Ｎ−１回繰り返し、Ｎビットの２進数列Ｒｉ１，．．．，ｉｋ（Ｒｋで表す）を生成し（Ｒｋの各ビットは上位ビットから（ｒｋ，０ｒｋ，１…ｒｋ，Ｎ−１）からなり、ｒｋ，０＝［２×ｘＮ］、ｒｋ，１＝［２×ｘＮ＋１］、…、ｒｋ，Ｎ−１＝［２×ｘ２Ｎ−１］）、カオス２値系列を生成する「カオス計算器」と、前記「カオス計算器」から出力されるＮビットの２値系列Ｒｋを格納する乱数格納レジスタと、前記乱数生成・管理情報入力部の動作、初期値・次元座標値変換部の動作、「カオス計算器」の計算及びＲｋをＬＭＡＰの初期値ｘ０の小数点以下の部分に変換する計算をｋ＝１，２，…，Ｋの値で順次に行う（但し、ｋ＝Ｋのとき、前記ＲｋをＬＭＡＰの初期値ｘ０への変換を行わない）ことにより多次元乱数ＲＫの生成、を行わせる乱数生成制御部と、を備えたことを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】  次に、ＬＭＡＰを計算しながら、ｂｋ，０＝［２×ｘＮ×ｉｋ］、ｂｋ，１＝［２×ｘＮ×ｉｋ＋１］、…、ｂｋ，Ｎ−１＝［２×ｘＮ×ｉｋ＋Ｎ−１］（［］は小数点以下を切り捨てる計算）を計算し、Ｎビットの２進数列Ｂｋ（ｂｋ，０ｂｋ，１…ｂｋ，Ｎ−１）を生成する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】  再びＢｋをＬＭＡＰの初期値ｘ０の小数点以下の部分とし、ＬＭＡＰの計算をＮ回計算する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】  （００３５）と（００３６）の計算を加えることで、（００１３）に示したＬＭＡＰが生成する２進系列において、上位乱数による下位乱数に対する推測可能性を断ち切ることができた。