(57)【要約】【課題】廉価かつ簡易な構成の装置を用いて、より無秩序な乱数を発生させる新規な方法、並びに前記方法に適用する装置を提供する。【解決手段】決定的結果を出力する第１の電子回路の出力結果と、非決定的結果を出力する第２の電子回路の出力結果とを演算する。次いで、前記演算による演算結果を数値化し、乱数を生成する。【選択図】なし【特許請求の範囲】
【請求項１】
決定的結果を出力する第１の電子回路の出力結果と、非決定的結果を出力する第２の電子回路の出力結果とを演算する第１の工程と、
前記演算による演算結果を数値化し、乱数を生成する第２の工程と、
を具えることを特徴とする、乱数生成方法。
【請求項２】
前記第２の工程において、数値化した前記演算結果を所定の閾値と比較し、前記演算結果の、前記閾値との大小関係より“０”又は“１”の数値を割り当て、２進数的な乱数を生成するようにしたことを特徴とする、請求項１に記載の乱数生成方法。
【請求項３】
前記閾値を所定の乱数検定法の検定結果に基づいて変化させることを特徴とする、請求項２に記載の乱数生成方法。
【請求項４】
前記第１の工程において、前記第１の電子回路は決定的結果として数値を出力し、前記第２の電子回路は非決定的結果として所定の信号を出力し、前記数値と前記信号の出力値とを演算することを特徴とする、請求項１〜３のいずれか一に記載の乱数生成方法。
【請求項５】
前記第２の工程において、所定の数学的関数を設定し、前記数値と前記信号の出力値との演算結果を前記数学的関数の引数とし、前記数学的関数の、前記引数による演算結果を数値化して乱数を生成するようにしたことを特徴とする、請求項４に記載の乱数生成方法。
【請求項６】
前記数学的関数は、周期関数であることを特徴とする、請求項５に記載の乱数生成方法。
【請求項７】
前記周期関数は三角関数であることを特徴とする、請求項６に記載の乱数生成方法。
【請求項８】
前記第１の電子回路は、所定のソフトウエアが組み込まれたコンピュータを含むことを特徴とする、請求項１〜７のいずれか一に記載の乱数生成方法。
【請求項９】
前記第２の電子回路は、雑音発生回路を含むことを特徴とする、請求項１〜８のいずれか一に記載の乱数生成方法。
【請求項１０】
決定的結果を出力する第１の電子回路の出力結果と、非決定的結果を出力する第２の電子回路の出力結果とを演算する第１の工程と、
前記演算による演算結果を数値化する第２の工程と、
前記第１の工程及び前記第２の工程を繰り返して得た複数の数値化した演算結果を所定の区分に分割し、乱数列を生成する第３の工程と、
を具えることを特徴とする、乱数生成方法。
【請求項１１】
前記第２の工程において、数値化した前記演算結果を所定の閾値と比較し、前記演算結果の、前記閾値との大小関係より“０”又は“１”の数値を割り当てて２進数的な演算結果を得、
前記第３の工程において、複数の前記２進数的な演算結果を得、この複数の２進数的な演算結果を所定の区分に分割して、前記乱数列を生成することを特徴とする、請求項１０に記載の乱数生成方法。
【請求項１２】
前記第３の工程において、前記第１の工程の、前記第２の電子回路の前記非決定的結果として、前記第２の工程における前記２進数的な演算結果を用いることを特徴とする、請求項１１に記載の乱数生成方法。
【請求項１３】
前記閾値を所定の乱数検定法の検定結果に基づいて変化させることを特徴とする、請求項１１又は１２に記載の乱数生成方法。
【請求項１４】
前記第１の工程において、前記第１の電子回路は決定的結果として数値を出力し、前記第２の電子回路は非決定的結果として所定の信号を出力し、前記数学的変数と前記信号の出力値とを演算することを特徴とする、請求項１０〜１３のいずれか一に記載の乱数生成方法。
【請求項１５】
前記第２の工程において、所定の数学的関数を設定し、前記数値と前記信号の出力値との演算結果を前記数学的関数の引数とし、前記数学的関数の、前記引数による演算結果を数値化することを特徴とする、請求項１４に記載の乱数生成方法。
【請求項１６】
前記数学的関数は、周期関数であることを特徴とする、請求項１５に記載の乱数生成方法。
【請求項１７】
前記周期関数は三角関数であることを特徴とする、請求項１６に記載の乱数生成方法。
【請求項１８】
前記第１の電子回路は、所定のソフトウエアが組み込まれたコンピュータを含むことを特徴とする、請求項１０〜１７のいずれか一に記載の乱数生成方法。
【請求項１９】
前記第２の電子回路は、雑音発生回路を含むことを特徴とする、請求項１０〜１８のいずれか一に記載の乱数生成方法。
【請求項２０】
決定的結果を出力する第１の電子回路と、非決定的結果を出力する第２の電子回路とを具えることを特徴とする、乱数生成装置。
【請求項２１】
前記第１の電子回路は、所定のソフトウエアが組み込まれたコンピュータを含むことを特徴とする、請求項２０に記載の乱数生成装置。
【請求項２２】
前記第２の電子回路は、雑音発生回路を含むことを特徴とする、請求項２０又は２１に記載の乱数生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数生成方法、及び乱数生成装置に関する。
【背景技術】
【０００２】
完全に無秩序であり、かつ全体としては出現頻度が等しくなる乱数は、社会現象や物理現象の数値シュミレーションなどに広く利用されている。また、乱数は暗号技術としても重要な役割を果たしており、情報の保護の分野でもその需要が高い。現在、乱数の発生方法として種々の方法が開発されているが、そのほとんどはアルゴリズムによるソフト的な疑似乱数の生成である。
【０００３】
アルゴリズムによる乱数生成は、ある程度の信頼性を有し、高速に乱数生成を行なうことができるという点から広く利用されている。しかしながら、コンピュータは有限の情報しかとらないために、生成された乱数は周期性を持つことが確認されている。そのため、正確な解や十分なセキュリティが得られない場合があり、より無秩序な乱数発生方法の確立が望まれている。
【０００４】
近年、ハードウエアの発展に伴う処理速度の向上と信頼性の向上から、物理的な乱数の生成方法が開発されてきた。例えば、熱電子雑音や放射性物質の崩壊などの物理現象に基づいて生成された乱数は、予測不可能性の高い、理想的な乱数列であることが知られている。しかしながら、これらの方法では高価で大掛かりな装置を必要とすることが多い。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、廉価かつ簡易な構成の装置を用いて、より無秩序な乱数を発生させる新規な方法、並びに前記方法に適用する装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成すべく、本発明は、
決定的結果を出力する第１の電子回路の出力結果と、非決定的結果を出力する第２の電子回路の出力結果とを演算する第１の工程と、
前記演算による演算結果を数値化し、乱数を生成する第２の工程と、
を具えることを特徴とする、乱数生成方法に関する。
【０００７】
本発明によれば、決定的結果を出力する第１の電子回路と、非決定的結果を出力する第２の電子回路とから乱数生成装置を構成するようにしている。前記第１の電子回路からは決定的結果が出力されるものの、前記第２の電子回路からは非決定的結果が出力されるので、これらの出力結果を演算した演算結果は予測不可能なランダムなものとなる。したがって、前記演算結果を数値化すれば、目的とする乱数を得ることができる。
【０００８】
また、本発明によれば、乱数の生成を２つの電子回路からの出力結果に基づいて実施している。前記電子回路からは前記出力結果を比較的高速で出力できるため、これらの出力結果に対する前記演算を超高速演算機などを用いて高速で実施することにより、目的とする前記乱数を高速で生成できるようになる。
【０００９】
なお、前記第１の電子回路としては、電子計算機などを含むコンピュータを例示することができる。この場合、前記決定的結果は、前記コンピュータのソフトウエアによる演算の結果、例えば所定の数値として出力されるものであるので、周期性を有するようになる。しかしながら、前記第２の電子回路による非決定的結果と演算されるので、上述したように、得られる数値は予測不可能となり目的とする乱数を得ることができる。なお、前記コンピュータの代わりに所定の制御回路などを用いることもできる。
【００１０】
また、前記第２の電子回路としては、雑音発生回路を例示することができる。前記雑音発生回路は、必要に応じて増幅回路や差動回路、アナログ／ディジタル回路などを含むことができる。この場合、前記非決定的結果は、前記雑音発生回路からの雑音である。
【００１１】
さらに、前記演算は、加算や乗算のような算術演算でも良く、ANDやORのような論理演算でも良い。また、微分及び積分などの算術演算を用いることもでき、数種類の演算を組み合わせることもできる。
【００１２】
本発明においては、前記第２の工程において、上述のようにして得た数値化した演算結果を所定の閾値と比較し、前記閾値との大小関係より“０”又は“１”の数値を割り当て、２進数的な乱数を得るようにすることもできる。
【００１３】
前記第１の電子回路からの出力結果と、前記第２の電子回路からの出力結果とを演算したのみでは、十分に無秩序な乱数を得ることができず、乱数が使用される目的（例えば、暗号用乱数、シミュレーション用乱数等）に合致するか否かを調べる検定法に合格しない場合がある。この場合、前述したような閾値を適宜に設定し、前記演算結果の前記閾値との大小関係を採るようにすることによって、より無秩序な２進数的な乱数を得ることができるようになる。この結果、上述した検定法に十分に合格できる無秩序な乱数を生成することができるようになる。
【００１４】
前記検定法としては、有名な暗号用乱数検定である米国のNISTのFIPS140−2のテスト（モノビットテスト、ポーカーテスト、ランテスト、長ランチスト）を例示することができる。
【００１５】
なお、前記閾値は十分に無秩序な乱数が得られるように、適宜その値を変化させることができる。この場合、乱数の生成後において所定の検定法による検定の過程を含ませ、前記検定法による検定結果に基づき、より無秩序な乱数が得られるようにして前記閾値を設定することができる。
【００１６】
また、本発明においては、前記第１の電子回路から出力される前記決定的結果を上述したように所定の数値とし、前記第２の電子回路から出力される前記非決定的結果を前記雑音などの信号出力とすることができる。
【００１７】
さらに、本発明においては、所定の数学的関数を準備し、前記数値と前記信号出力との演算結果を前記数学的関数の引数とすることができる。この場合は、前記数学的関数の、前記引数による演算結果が目的とする乱数の基になり、前記演算結果を数値化することによって前記乱数を得ることができるようになる。この場合は、前記乱数は２段階の演算を通じて生成されるので、その無秩序性がより向上する。したがって、上述したような検定法に十分に合格できる乱数を生成することができる。
【００１８】
なお、前記演算結果が前記数学的関数の前記数学的引数として好ましい範囲を超える場合においては、前記演算結果に対して変調指数などの他の変数を乗算あるいは除算したり、同様な変数で加算あるいは減算を行ったりして、前記演算結果を前記数学的引数としての前記好ましい範囲内に設定する。
【００１９】
前記数学的関数としては、楕円体函数と総称される超幾何函数やMathieu函数、更には、各種Bessel函数、指数函数、双曲線函数などを例示することができるが、好ましくは周期関数を用いる。この場合、所定の閾値を設定することにより、前記数学的関数による数値化した演算結果を前記閾値の上下方向に適宜簡易に分散させることができるようになり、上述したような２進数的な乱数をより無秩序な状態で生成できるようになる。
【００２０】
同様の理由から、前記周期関数としてsin関数やcos関数などの三角関数を用いることが好ましい。
【００２１】
なお、上述した周期関数は周期性を有するが、その逆関数は一義的には決まらない。すなわち、前記逆関数の演算結果である数学的引数は一義的には決まらない。換言すれば、前記周期関数の演算結果は、上述した不確定な数学的引数を用いて得られるものであるので、周期性を有する連続的な数値として得られることはない。したがって、前記数学的引数の前記周期関数に対する演算結果を得、これを数値化することによって、より無秩序な乱数を生成できるものである。
【００２２】
本発明においては、決定的結果を出力する第１の電子回路の出力結果と、非決定的結果を出力する第２の電子回路の出力結果とを演算し、前記演算による演算結果を数値化するという工程を複数回繰り返して複数の数値化した演算結果を得、これを所定の区分に分割し、乱数列を生成することもできる。この場合、各区分に属する乱数列が一つの乱数を構成することになる。
【００２３】
また、前記繰り返しの演算工程において、前記第２の電子回路の前記非決定的結果として、最初の演算結果を数値化した２進数的演算結果、すなわち２進数的な乱数を用いることもできる。換言すれば、第１回目の工程において、前記第１の電子回路の出力結果と、前記第２の電子回路の非決定的な出力結果とを演算し、この演算結果を所定の閾値と比較して２進数的な乱数を生成し、次いで、２回目以降の、前記第１の電子回路の出力結果と、前記第２の電子回路の非決定的な出力結果とを演算する過程において、その第２の電子回路を用いた前記非決定的出力結果の代わりに前記２進数的な乱数を使用することもできる。
【発明の効果】
【００２４】
以上説明したように、本発明によれば、廉価かつ簡易な構成の装置を用いて、より無秩序な乱数を発生させる新規な方法、並びに前記方法に適用する装置を提供することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の詳細、並びにその他の特徴及び利点について、最良の形態に基づいて詳細に説明する。
【００２６】
高周波発振器に対して所定の雑音発生器からの雑音で周波数変調を行うと、前記出力は、
Vo＝sin（ωｃｔ+mVｎ）                                  （１）
のように周期関数で表すことができる。なお、Vｏは出力電圧であり、ωｃはこの出力電圧の周波数であり、tは時間であり、mは変調指数であり、Vnは雑音電圧である。なお、前記雑音発生器がアナログ式である場合、所定のA／D変換器を用い、前記雑音発生器からの雑音電圧を適宜ディジタル化することができる。
【００２７】
前記ωｃ及び前記mは、第１の電子回路としてのパーソナルコンピュータから決定的結果、すなわち数値として出力することができる。前記Vnは、第２の電子回路としての雑音発生回路から非決定的結果として出力することができる。したがって、これらの出力結果を乗算及び加算することによって、（１）式で表される周期関数の数学的引数とし、この数学的因数を用いて（１）式で表される周期関数を演算し、それを数値化すれば目的とする乱数を得ることができる。
【００２８】
このとき、所定の閾値を設定し、（１）式で表される周期関数の演算結果を前記閾値と比較し、その大小関係に応じて“０”又は“１”を割り当てるようにすれば、２進数的な乱数を得ることができるようになる。なお、前記演算結果に応じて前記閾値を適宜に変化させれば、無秩序性の高い乱数をより簡易に生成することができる。
【００２９】
また、（１）式で表される周期関数に対する複数の演算結果を得、これを数値化するとともに所定の区分で分割することによって乱数列を生成するようにすることもできる。この場合は、各乱数列が一つの乱数を構成するようになる。
【００３０】
（１）式の周期関数の、前記数学的因数に基づく演算は、前述した同じパーソナルコンピュータを用いて行うこともできるし、異なる超高速電子計算機などのコンピュータを用いることもできる。
【００３１】
（実施例）
所定のパーソナルコンピュータと、図１に示すダイオードを用いた雑音発生回路を用い、この雑音発生回路からの雑音をA／D変換器でディジタル化し、雑音電圧Vnとして前記パーソナルコンピュータ内に取り込んだ。なお、前記雑音電圧Vnは、+2047〜−2048の範囲内で変化させた。一方、前記パーソナルコンピュータでは、周波数ωｃを０から0.314づつ増やし6280まで変化させ、変調指数mを0.01〜1015の範囲で変化させた。
【００３２】
このような条件で得た数学的引数に基づいて、（１）式に示す周期関数を演算し、次いで、演算結果を数値化した。次いで、得られた複数の数値化された演算結果を０レベルの閾値と比較するとともに、その大小関係に応じて“０”又は“１”を割り当て、複数の２進数的な数値を得た。次いで、前記２進数的な数値を８bitsずつに区切って１０進数とし、図２に示すように、奇数番目の数字を横軸に、偶数番目の数字を横軸に割り当てプロットした。
【００３３】
図２から明らかなように、前記プロットは図の前面に均等に分布し、乱数になっていることが判る。また、mが0.1以上の場合においては、米国、NISTのFIPS140-2の検定に合格した。しかしながら、mが0.01の場合は、前記検定の内、ポーカテストとランテストには不合格となった。したがって、mを0.1以上とすることにより、十分に無秩序化した乱数が得られることが分かる。
【００３４】
以上、具体例を挙げながら発明の実施の形態に基づいて本発明を詳細に説明してきたが、本発明は上記内容に限定されるものではなく、本発明の範疇を逸脱しない限りにおいてあらゆる変形や変更が可能である。
【００３５】
例えば、図１に示す雑音発生回路に代えてより高速化した雑音発生回路を用いることもできる。図３は、高速化に使用する発振器の一例を示す回路図である。この場合、図１に示す雑音発生回路の出力端子を図３に示す回路の雑音入力端子に接続し、図３に示す発振器から出力された信号をA/D変換器でディジタル化することにより、高速で雑音信号を得ることができるようになる。この態様は、使用する電子計算機などのコンピュータが高速化した場合において有利である。
【００３６】
また、A／D変換器の変換速度は秒速１万回から１０万回程度である。一方、電子計算機などのコンピュータの計算速度は秒速１億回程度まで高速化されている場合がある。このような場合においては、前記A／D変換器の出力が不足し、乱数を生成する際の演算において、同じ雑音信号（雑音電圧）を使用することになり、前記乱数の無秩序性が劣化してしまう場合がある。
【００３７】
この対策として、最初の或る時間に、前記雑音発生器からのディジタル化した雑音信号を例えば2万個採取し、次の或る時間に更に2万個採取し、これらをベクトル的に乗算し、2万×2万個の2次元ベクトルデータを作る。各時間に得られる雑音信号は非決定的で不確定であるため、前記2次元ベクトルデータも不確定となる。したがって、前記雑音信号の代わりに前記2次元ベクトルデータを非決定的結果として使用することができる。
【００３８】
この場合、前記2次元ベクトルデータにおいて、列方向または行方向の要素を使うと短い周期性が現れやすくなるので、前記2次元ベクトルデータの対角要素を使用することが好ましい。
【００３９】
また、前記２万×２万個の２次元ベクトルの各要素を使い切ったら、新たに前記雑音発生器からのディジタル化した雑音信号を採取する手順を繰り返す。これによって、常に新たな非決定的結果を得ることができる。
【００４０】
また、上述した操作を繰り返し、前記2次元ベクトルデータの代わりに3次元ベクトルデータ又は4次元ベクトルデータ、さらにはより多次元のベクトルデータを用いることもできる。
【図面の簡単な説明】
【００４１】
【図１】本発明の乱数発生方法において使用する雑音発生回路の一例を示す構成図である。
【図２】本発明の乱数発生方法によって得た２万個の乱数の分布を示す図である。
【図３】高速化に使用する発振器の一例を示す回路図である。
【図１】
2005259004.tif 000002
【図２】
2005259004.tif 000003
【図３】
2005259004.tif 000004