(57)【要約】  廉価かつ簡易な構成の装置を用いて、無秩序な乱数を発生させる新規な方法及び装置を提供する。所定の発振器からの雑音又は信号をＡ／Ｄ変換器に入力する。次いで、前記Ａ／Ｄ変換器から出力された値に対して“０”又は“１”を割り当てて２進数列を形成する。次いで、前記２進数列を所定の桁数で区切り、ｎ進乱数を生成する。【特許請求の範囲】
【請求項１】
所定の発振器からの雑音又は信号をＡ／Ｄ変換器に入力する工程と、
前記Ａ／Ｄ変換器から出力された値に対して“０”又は“１”を割り当てて２進数列を形成する工程と、
前記２進数列を所定の桁数で区切り、ｎ進乱数を生成する工程と、
を具えることを特徴とする乱数生成方法。
【請求項２】
前記Ａ／Ｄ変換器の出力が２進法であって、前記出力値の“０”に対して“０”又は“１”の数値を割り当て、前記出力値の“１”に対して“１”又は“０”の数値を割り当て、前記２進数列を形成することを特徴とする、請求項１に記載の乱数生成方法。
【請求項３】
前記Ａ／Ｄ変換器の出力がｍ進法（ｍは４以上の偶数）であって、前記出力値の奇数値に対して“０”又は“１”の数値を割り当て、前記出力値の偶数値に対して“１”又は“０”の数値を割り当て、前記２進数列を形成することを特徴とする、請求項１に記載の乱数生成方法。
【請求項４】
前記Ａ／Ｄ変換器の出力がｍ進法（ｍは３以上の奇数）であって、前記出力値の“０”から“ｍ−２”までの数値を利用し、前記数値が奇数値であれば“０”又は“１”の数値を割り当て、前記数値が偶数値であれば“１”又は“０”の数値を割り当て、前記２進数列を形成することを特徴とする、請求項１に記載の乱数生成方法。
【請求項５】
前記Ａ／Ｄ変換器の出力がｍ進法（ｍは３以上の奇数）であって、前記出力値の“１”から“ｍ−１”までの数値を利用し、前記数値が奇数値であれば“０”又は“１”の数値を割り当て、前記数値が偶数値であれば“１”又は“０”の数値を割り当て、前記２進数列を形成することを特徴とする、請求項１に記載の乱数生成方法。
【請求項６】
前記Ａ／Ｄ変換器からの出力値は、Ａ／Ｄ変換による最下位ビットを用いることを特徴とする、請求項１〜５のいずれか一に記載の乱数生成方法。
【請求項７】
前記Ａ／Ｄ変換器からの出力値は、Ａ／Ｄ変換による複数のビットを用い、対応するビット毎の、時間経過によって得られた変動値を用いることを特徴とする、請求項１〜５の
いずれか一に記載の乱数生成方法。
【請求項８】
前記対応するビット毎の、前記変動値に基づいて得た２進数列を、前記複数のビットの全体に亘って結合し、この結合して得た２進数列に基づいて前記ｎ進乱数を生成することを特徴とする、請求項７に記載の乱数生成方法。
【請求項９】
前記発振器は複数の発振器であって、各発振器からの出力を結合して前記Ａ／Ｄ変換器に入力することを特徴とする、請求項１〜８のいずれか一に記載の乱数生成方法。
【請求項１０】
前記出力の結合は、和を取る方法、差を取る方法及び乗算する方法の少なくとも１つの方法を用いて行うことを特徴とする、請求項９に記載の乱数生成方法。
【請求項１１】
前記乗算は、乗算回路又は非線形素子を含むミキサー回路を用いて行なうことを特徴とする、請求項１０に記載の乱数生成方法。
【請求項１２】
前記発振器は、三角波、正弦波、ショット雑音、及びＤ／Ａ変換器出力の少なくとも一つを生成することを特徴とする、請求項１〜８のいずれか一に記載の乱数生成方法。
【請求項１３】
前記三角波、前記正弦波、前記ショット雑音、及び前記Ｄ／Ａ変換器出力は、微分回路及びハイパスフィルターの少なくとも一方を介した後、前記Ａ／Ｄ変換器に入力するようにしたことを特徴とする、請求項１２に記載の乱数生成方法。
【請求項１４】
前記信号に対して周波数、位相及び振幅の少なくとも１種の変調を付加することを特徴とする、請求項１〜１３のいずれか一に記載の乱数生成方法。
【請求項１５】
所定の雑音又は信号を生成及び発振するための発振器と、
前記雑音又は前記信号をＡ／Ｄ変換するためのＡ／Ｄ変換器と、
前記Ａ／Ｄ変換器から出力された値に対して “０”又は“１”を割り当てて２進数列を形成し、前記２進数列を所定の桁数で区切り、ｎ進乱数を生成するための計算機と、
を具えることを特徴とする、乱数生成装置。
【請求項１６】
前記Ａ／Ｄ変換器の出力が２進法であって、前記計算機において、前記出力値の“０”に対して“０”又は“１”の数値を割り当て、前記出力値の“１”に対して“１”又は“０”の数値を割り当て、前記２進数列を形成することを特徴とする、請求項１５に記載の乱数生成装置。
【請求項１７】
前記Ａ／Ｄ変換器の出力がｍ進法（ｍは４以上の偶数）であって、前記計算機において、前記出力値の奇数値に対して“０”又は“１”の数値を割り当て、前記出力値の偶数値に対して“１”又は“０”の数値を割り当て、前記２進数列を形成することを特徴とする、請求項１５に記載の乱数生成装置。
【請求項１８】
前記Ａ／Ｄ変換器の出力がｍ進法（ｍは３以上の奇数）であって、前記計算機において、前記出力値の“０”から“ｍ−２”までの数値を利用し、前記数値が奇数値であれば“０”又は“１”の数値を割り当て、前記数値が偶数値であれば“１”又は“０”の数値を割り当て、前記２進数列を形成することを特徴とする、請求項１５に記載の乱数生成装置。
【請求項１９】
前記Ａ／Ｄ変換器の出力がｍ進法（ｍは３以上の奇数）であって、前記計算機において、前記出力値の“１”から“ｍ−１”までの数値を利用し、前記数値が奇数値であれば“０”又は“１”の数値を割り当て、前記数値が偶数値であれば“１”又は“０”の数値を割り当て、前記２進数列を形成することを特徴とする、請求項１５に記載の乱数生成装置。
【請求項２０】
前記Ａ／Ｄ変換器からの出力値は、Ａ／Ｄ変換による最下位ビットを用いることを特徴とする、請求項１５〜１９のいずれか一に記載の乱数生成装置。
【請求項２１】
前記Ａ／Ｄ変換器からの出力値は、Ａ／Ｄ変換による複数のビットを用い、対応するビット毎の、時間経過によって得られた変動値を用いることを特徴とする、請求項１５〜２０のいずれか一に記載の乱数生成装置。
【請求項２２】
前記対応するビット毎の、前記変動値に基づいて得た２進数列を、前記複数のビットの全体に亘って結合し、この結合して得た２進数列に基づいて前記ｎ進乱数を生成することを特徴とする、請求項２１に記載の乱数生成装置。
【請求項２３】
前記発振器は複数の発振器であって、各発振器からの出力を結合して前記Ａ／Ｄ変換器に入力することを特徴とする、請求項１５〜２２のいずれか一に記載の乱数生成装置。
【請求項２４】
前記出力の結合は、和を取る方法、差を取る方法及び乗算する方法の少なくとも１つの方法を用いて行うことを特徴とする、請求項２３に記載の乱数生成装置。
【請求項２５】
前記乗算は、非線形素子を含むミキサー回路を用いて行なうことを特徴とする、請求項２４に記載の乱数生成装置。
【請求項２６】
前記発振器は、三角波、正弦波、ショット雑音、及びＤ／Ａ変換器出力の少なくとも一つを生成することを特徴とする、請求項１５〜２２のいずれか一に記載の乱数生成装置。
【請求項２７】
前記三角波、前記正弦波、前記ショット雑音、及び前記Ｄ／Ａ変換器出力は、微分回路及びハイパスフィルターの少なくとも一方を介した後、前記Ａ／Ｄ変換器に入力するようにしたことを特徴とする、請求項２６に記載の乱数生成装置。
【請求項２８】
前記信号に対して周波数、位相及び振幅の少なくとも１種の変調を付加するための変調器を具えることを特徴とする、請求項１５〜２７のいずれか一に記載の乱数生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数生成方法及び乱数生成装置に関する。
【背景技術】
【０００２】
完全に無秩序であり、かつ全体としては出現頻度が等しくなる乱数は、社会現象や物理現象の数値シュミレーションなどに広く利用されている。また、乱数は暗号技術としても重要な役割を果たしており、情報の保護の分野でもその需要が高い。現在、乱数の発生方法として種々の方法が開発されているが、そのほとんどはアルゴリズムによるソフト的な疑似乱数の生成である。【０００３】
アルゴリズムによる乱数生成は、ある程度の信頼性を有し、高速に乱数生成を行なうことができるという点から広く利用されている。しかしながら、コンピュータは有限の情報しかとらないために、生成された乱数は周期性を持つことが確認されている。そのため、正確な解や十分なセキュリティが得られない場合があり、より無秩序な乱数発生方法の確立が望まれている。【０００４】
近年、ハードウエアの発展に伴う処理速度の向上と信頼性の向上から、物理的な乱数の生成方法が開発されてきた。例えば、熱電子雑音や放射性物質の崩壊などの物理現象に基づいて生成された乱数は、予測不可能性の高い、理想的な乱数列であることが知られている。しかしながら、これらの方法では高価で大掛かりな装置を必要とすることが多い。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、廉価かつ簡易な構成の装置を用いて、無秩序な乱数を発生させる新規な方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成すべく、本発明は、
所定の発振器からの雑音又は信号をＡ／Ｄ変換器に入力する工程と、
前記Ａ／Ｄ変換器から出力された値に対して“０”又は“１”を割り当てて２進数列を形成する工程と、
前記２進数列を所定の桁数で区切り、ｎ進乱数を生成する工程と、
を具えることを特徴とする乱数生成方法に関する。【０００７】
また、本発明は、
所定の雑音又は信号を生成及び発振するための発振器と、
前記雑音又は前記信号をＡ／Ｄ変換するためのＡ／Ｄ変換器と、
前記Ａ／Ｄ変換器から出力された値に対して “０”又は“１”を割り当てて２進数列を形成し、前記２進数列を所定の桁数で区切り、ｎ進乱数を生成するための計算機と、
を具えることを特徴とする、乱数生成装置に関する。【０００８】
例えば、水晶発振器で発生させた三角波を用いて、１２ビット長の、２進法Ａ／Ｄ変換器を使用した場合について説明する。前記Ａ／Ｄ変換器の１２ビット長総てを使用すると、前記三角波の波形振幅を２１２＝４０９６分割する（４０９６ステップ）ことになる。
サンプリング周波数が１ＭＨｚとすると、サンプリング間隔は１μsであるから、前記Ａ／Ｄ変換器のビットを０、１，０，１…と交互に出力させるための必要条件は、（1），（2）式より約１２２Ｈｚの周波数を有する波形が必要ということになる（図１）。【０００９】
【数１】
2006054476.tif 000002
【数２】
2006054476.tif 000003
【００１０】
これが乱数になる必要条件は、ある時刻において最低1ステップの範囲の振幅的変動が必要である。これを時間変動に置き換えて考えると、乱数になるための必要条件は、1周期（8192μs）のうちで、最低でもサンプリング間隔に相当する１μsの時間的変動が必要であると言い換えられる。そのための時間的変化量は、（3）式より約１２２×１０−６と表すことができる。
【数３】
2006054476.tif 000004
【００１１】
この時間的変化量を周波数変動に置き換えると、周波数と時間幅は逆数関係にあるので、乱数になるための必要条件は、周波数変化率で（4）式より約１２２×１０−６となる。
【数４】
2006054476.tif 000005
【００１２】
以上のようなサンプリング間隔を1μs、ビット長を１２ビットとしたものをさらに一般化し、サンプリング間隔をls、ビット長をnビットとする。このとき、前記（２）式は（５）式のように書き表すことができる。
【数５】
2006054476.tif 000006
【００１３】
信号の周波数が（５）式で表される周波数より十分に高くなれば、（４）式で示すような、乱数が生成されるための必要条件である周波数変化率は十分大きくなる。したがって、前記周波数変化率が前記水晶発振器における周波数安定度よりも十分大きくなると、前記水晶発振器から発せされる通常の信号が前記Ａ／Ｄ変換器内に取り込まれることにより、前記信号がＡ／Ｄ変換された後のビットは、“０”及び“１”がランダムに配列するようになる。したがって、“０”に対して“０”又は“１”の数値を割り当て、“１”に対して“１”又は“０”の数値を割り当てることにより、ランダムな２進数列を得ることができ、これを所定の桁数で区切ることにより、画定桁数に応じたｎ進乱数を得ることができるようになる。【００１４】
換言すれば、Ａ／Ｄ変換器を用い、所定の発振器から十分高い周波数の信号を適宜に導入することにより、Ａ／Ｄ変換後にランダムな２進数列を形成することができ、これに基づいて目的とするランダムなｎ進乱数を生成することができる。【００１５】
本発明の好ましい態様においては、前記Ａ／Ｄ変換器からの出力値は、Ａ／Ｄ変換による最下位ビットを用いる。前記最下位ビットは揺らぎが大きいため、前記Ａ／Ｄ変換器からの出力値がよりランダムなものとなり、前記２進数列をランダムなものとすることができる。この結果、前記２進数列を所定の桁数で区切って得たｎ進乱数のランダム性がより向上するようになる。【００１６】
また、本発明の他の好ましい態様においては、所定の変調器を用いて、前記Ａ／Ｄ変換器に入力すべき前記信号に対して、周波数、位相及び振幅の少なくとも１種の変調を付加する。この場合、前記信号自体にある程度のランダム性が付加されるようになるため、前記Ａ／Ｄ変換器を通過した後の前記出力値はよりランダムなものとなる。この結果、前記２進数列さらには前記ｎ進乱数のランダム性をより向上させることができるようになる。【００１７】
前記Ａ／Ｄ変換器としては、出力が２進法であるものを用いることができる。この場合、上述したように、前記出力値の“０”に対して“０”又は“１”の数値を割り当て、前記出力値の“１”に対して“１”又は“０”の数値を割り当て、前記２進数列を形成する。【００１８】
また、前記Ａ／Ｄ変換器の出力がｍ進法（ｍは４以上の偶数）であるものを用いることができる。この場合、前記出力値の奇数値に対して“０”又は“１”の数値を割り当て、前記出力値の偶数値に対して“１”又は“０”の数値を割り当て、前記２進数列を形成する。【００１９】
さらに、前記Ａ／Ｄ変換器の出力がｍ進法（ｍは３以上の奇数）であるものを用いることができる。この場合、前記出力値の“０”から“ｍ−２”までの数値を利用し、前記数値が奇数値であれば０”又は“１”の数値を割り当て、前記数値が偶数値であれば“１
”又は“０”の数値を割り当て、前記２進数列を形成することができる。また、前記出力値の“１”から“ｍ−１”までの数値を利用し、前記数値が奇数値であれば“０”又は“１”の数値を割り当て、前記数値が偶数値であれば“１”又は“０”の数値を割り当て、前記２進数列を形成することができる。
【発明の効果】
【００２０】
以上説明したように、本発明によれば、廉価かつ簡易な構成の装置を用いて、より無秩序な乱数を発生させる新規な方法、並びに前記方法に適用する装置を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】発振器から発せられた三角波の一例を示す図である。
【図２】本発明の乱数生成方法に用いる装置の一例を概略的に示す図である。
【図３】本発明の乱数生成方法に用いる装置のその他の例を概略的に示す図である。
【図４】図３の装置で用いるショット雑音発生回路の回路図の一例である。
【図５】発振器からの発振周波数と検定通過率との関係を示すグラフである。
【図６】同じく、発振器からの発振周波数と検定通過率との関係を示すグラフである。
【図７】サンプリング周波数と検定通過率との関係を示すグラフである。
【図８】本発明で使用する乗算回路の一例を示す図である。
【図９】図８に示す乗算回路を用いて乱数を生成した際の検定率を示すグラフである。
【符号の説明】
【００２２】
１０，２０  乱数生成装置
１１  発振器
１２，２２  Ａ／Ｄ変換器
１３，２３  計算機
１７，２７  変調器
２１  ショット雑音発生回路
２４  直流電源
【発明を実施するための最良の形態】
【００２３】
以下、本発明の詳細、並びにその他の特徴及び利点について、最良の形態に基づいて詳細に説明する。【００２４】
図２は、本発明の乱数生成方法に用いる装置の一例を概略的に示す図である。図２において、乱数生成装置１０は、信号生成手段としての発振器１１と、Ａ／Ｄ変換器１２と、計算機１３とを有している。発振器１１からは、例えば三角波及び正弦波などの所定の信号が生成及び発振され、Ａ／Ｄ変換器１２内に導入され、所定のＡ／Ｄ変換が施されて所定の値が出力される。発振器１１は、水晶発振器、ＬＣ発振器やＣＲ発振器などから構成することができる。【００２５】
Ａ／Ｄ変換器１２は任意のｍ進法のものを用いることができる。２進法のＡ／Ｄ変換器から構成した場合は、その出力値は２進数となり、“０”又は“１”の数値が出力されることになる。ｍ進法（ｍ≧３）のＡ／Ｄ変換器から構成した場合、その出力値はｍ進数となり、“０”から“ｍ−１”の数値が出力されることになる。【００２６】
したがって、２進法のＡ／Ｄ変換器を用いた場合、その出力値“０”に対して“０”又は“１”を割り当て、出力値“１”に対して“１”又は“０”を割り当てることにより、２進数列を得ることができる。したがって、この２進数列を所定の桁数で区切ることにより、その画定桁に応じたｎ進乱数を生成することができるようになる。【００２７】
また、ｍ＝２ｎ（ｎは２以上の整数）進法のＡ／Ｄ変換器、すなわち４以上の偶数進数のＡ／Ｄ変換器を用いた場合、その出力値の奇数値に対して“０”又は“１”の数値を割り当て、前記出力値の偶数値に対して“１”又は“０”の数値を割り当てることにより、前記２進数列を得ることができる。したがって、上述したように、前記２進数列を所定の桁数で区切ることにより、その画定桁に応じたｎ進乱数を生成することができるようになる。【００２８】
さらに、ｍ＝２ｎ−１（ｎは２以上の整数）進法のＡ／Ｄ変換器、すなわち３以上の奇数進数のＡ／Ｄ変換器を用いた場合、その出力値の“０”から“ｍ−２”までの数値を利用し、前記数値が奇数値であれば“０”又は“１”の数値を割り当て、前記数値が偶数値であれば“１”又は“０”の数値を割り当てることにより、前記２進数列を得ることができる。この場合も、前記２進数列を所定の桁数で区切ることにより、その画定桁に応じたｎ進乱数を生成することができるようになる。【００２９】
なお、３以上の奇数進数を用いる場合、前記出力値の“１”から“ｍ−１”までの数値を利用し、同様に前記数値が奇数値であれば“０”又は“１”の数値を割り当て、前記数値が偶数値であれば“１”又は“０”の数値を割り当てることにより、前記２進数列を得ることができ、前記同様にｎ進乱数を生成することができるようになる。【００３０】
Ａ／Ｄ変換器１２からは、２進法のＡ／Ｄ変換器を用いる、あるいはｍ進法のＡ／Ｄ変換器を用いるいずれの場合においても、Ａ／Ｄ変換によって複数の数値（ビット）が出力される。したがって、２進法のＡ／Ｄ変換器を用いた場合の出力値“０”又は“１”、あるいはｍ進法を用いた場合の奇数出力値及び偶数出力値、並びに“０”から“ｍ−１”までの出力値は、任意のビットのものを用いることができる。【００３１】
しかしながら、特に最下位のビットを用いることにより、前記最下位ビットは揺らぎが大きいため、前記Ａ／Ｄ変換器からの出力値がよりランダムなものとなり、前記２進数列をランダムなものとすることができる。この結果、前記２進数列を所定の桁数で区切って得た前記ｎ進乱数のランダム性がより向上するようになる。【００３２】
なお、以上説明したような最下位ビットを含む適当なビットの選択、２進数列の形成、及び目的とするｎ進乱数の生成は、Ａ／Ｄ変換器１２の後方に設けた計算機１３によって行われる。【００３３】
また、上述した最下位ビットの代わりに、Ａ／Ｄ変換による複数のビットを用い、対応するビット毎の、時間経過によって得られた変動値を用いることができる。かかる場合の具体例について以下に説明する。【００３４】
Ａ／Ｄ変換器出力の内容を最下位桁から上位桁に向かってｒ０、ｒ１、ｒ２、・・・と表し、時刻の経過をｔ０、ｔ１、ｔ２、ｔ３、・・・と表す。例えば  最下位桁の時刻ｔ０、ｔ１、ｔ２、ｔ３における値を表示する場合はｒ０,０、ｒ０,１、ｒ０,２、ｒ０,３とする。同様に最下位桁のうえの桁の時刻ｔ０、ｔ１、ｔ２、ｔ３における値を表示する場合はｒ１,０、ｒ１,１、ｒ１,２、ｒ１,３とする。今まで述べてきた乱数の生成法は、例えばｒ０,０、ｒ０,１、ｒ０,２、ｒ０,３・・・の値に対して、“０”又は“１”をルールによって割り当てて2進数列を形成するものであった。現在、LC発振器の周波数３MHｚとし、Ａ／Ｄ変換器のサンプリング速度を２０ＭＨzとしてもNISTの統計的暗号用乱数検定FIPS１４０−２を１００％合格する性能を実現している（NIST：National Institute
of Standards and Technology、FIPS： Federal Information Processing Standards）。即ち、原理的には1秒間に２千万個の安全な暗号用乱数を生成できている。【００３５】
さらに、Ａ／Ｄ変換器出力の複数（ｍ個）の桁を用いて、対応する桁毎に上述の方法で乱数列を作ることが出来る。この様にすれば一定時間に一桁だけ使う方法に比べｍ倍の暗号用２進乱数数列が得られる。例えばｍ＝３とすれば、一定時間に、ｒ０,０、ｒ０,１、ｒ０,２、ｒ０,３・・・に対応する2進乱数数列と、ｒ１,０、ｒ１,１、ｒ１,２、ｒ１,３・・・に対応する2進乱数数列と、ｒ２,０、ｒ２,１、ｒ２,２、ｒ２,３・・・に対応する2進乱数数列を作ることが出来る。この例では3倍の暗号用乱数が生成されたことになる。【００３６】
また、更に別な方法として、ある時刻ｔnにおけるＡ／Ｄ変換器のｍ個の桁の出力ｒ０n、ｒ１n、ｒ２n、・・・ｒmn、を組み合わせることによって、その値に対応する2進乱数数列を作れば、ｍ個の乱数が得られる。これを各時刻で行えば一定時間に1桁のみしか使わない場合のm倍の長さの暗号用2進数列を形成することが出来る。桁の組み合わせ方法を変えることによって、統計的暗号用乱数検定FIPS１４０−２に合格しやすい乱数を生成することが出来る。時刻毎に桁の組み合わせ方法を変えることによって統計的暗号用乱数検定FIPS１４０−２に合格しやすい乱数を生成することが出来る。単に桁の組み合わせ順番を変えるだけでなく、或る桁を使ったり、使わなかったりをランダムに行うことで合格しやすい乱数を生成出来る。【００３７】
また、本発明においては、図２の破線で示すように、発振器１１及びＡ／Ｄ変換器１２の間に変調器１７を設けることができる。変調器１７は、周波数変調器、位相変調器、及び振幅変調器の少なくとも一つから構成することができる。【００３８】
周波数変調器、位相変調器、及び振幅変調器を用いることにより、それぞれ発振器１１から発せられた信号の、周波数、位相及び振幅が変調されることになる。この場合、前記信号自体にある程度のランダム性が付加されるようになるため、Ａ／Ｄ変換器１２を通過した後の出力値はよりランダムなものとなる。この結果、前記出力値に対して“０”又は“１”を割り当てることにより得た２進数列、結果としてｎ進乱数のランダム性をより向上させることができるようになる。【００３９】
周波数変調器、位相変調器、及び振幅変調器としては、それぞれ例えば（「電子回路」、桜庭一郎著、森北出版）に開示されたような、公知の変調器を用いることができる。具体的には、前記周波数変調器として、ＬＣ発振回路を含む変調器を用いることができる。前記位相変調器としては、所定の位相回路を含む変調器を用いることができる。前記振幅変調器としては、ベース変調回路又はコレクタ変調回路を含む変調器を用いることができる。これら変調器の入力信号としては例えば図4のショット雑音発生回路の出力が使用
できる。【００４０】
図３は、本発明の乱数生成方法に用いる装置のその他の例を概略的に示す図である。図３に示す乱数生成装置２０は、直流電源２４と、ショット雑音発生回路２１と、Ａ／Ｄ変換器２２と、計算機２３とを具えている。Ａ／Ｄ変換器２２は、図１に示す例と同様に、２進法あるいはｍ進法（ｍは４以上の偶数あるいは３以上の奇数）のＡ／Ｄ変換器から構成することができる。また、計算機２３は計算機１３と同様のものから構成することができる。ショット雑音発生回路２１は、例えば図４に示すような回路構成のものを用いることができる。この場合においては、直流電源２４及びショット雑音発生回路２１が発振器として機能することになる。【００４１】
図３に示す乱数生成装置においては、直流電源２４から例えば±１２Ｖの直流電圧がショット雑音発生回路２１に印加される。すると、ショット雑音発生回路２１からは所定の雑音が生成及び発振され、Ａ／Ｄ変換器２２内に導入され、所定のＡ／Ｄ変換が施されて所定の値が出力される。【００４２】
Ａ／Ｄ変換器２２からの出力値は、上述したようにその種類によって異なり、２進法のＡ／Ｄ変換器を用いた場合は、“０”又は“１”の数値が出力され、これに基づいた２進数列が形成され、さらにｎ進乱数が生成されることになる。ｍ進法のＡ／Ｄ変換器を用いた場合は、“０”から“ｍ−１”の数値が出力され、奇数値及び偶数値毎に“０”又は“１”などの数値が割り当てて２進数列を形成され、さらにｎ進乱数が形成されることになる。【００４３】
なお、この場合においても、前記同様に、Ａ／Ｄ変換器２２から出力されるビット中の最下位ビットを用いることが好ましい。また、図中、破線で示すように、変調器２７を設けることが好ましい。これによって、図１に関連して説明したように、よりランダムなｎ進乱数を得ることができるようになる。【００４４】
変調器２７は、変調器１７と同様のものから構成することができる。また、ショット雑音発生回路についても図４に示すもの以外のものを用いることができ、ショット雑音発生回路以外の雑音発生回路を用いることもできる。【００４５】
なお、図３に示すショット雑音発生回路に代えてＤ／Ａ変換器を用い、この変換器からの出力をＡ／Ｄ変換器２２に対して入力すべき信号として用いることができる。この場合は、直流電源２４に代えて所定の計算機を用い、この計算機からのディジタル信号をＤ／Ａ変換してアナログ信号に変換する。【００４６】
前記ディジタル信号としては、物理乱数や数式乱数とすることができる。また、任意のテキストファイル、音声、楽器、電子楽器、画像などの信号やファイルを時系列的に出力させたものであっても良い。あるいは、前記計算機内の回路の任意の点（場所）のディジタル信号を上記Ｄ／Ａ変換器に入力して、アナログ信号に変換するようにしても良い。【００４７】
このように、上記計算機からのいろいろな信号をＤ／Ａ変換器に入力すると、その出力はかなりランダムであり、サンプリング速度が遅ければ物理乱数になる可能性がある。なお、前記信号を他の信号の変調信号として用いるなど、前記他の信号と結合させることによって、結合して得た信号のランダム性が格段に高くなるので、サンプリング速度を十分に高くすることができるようになる。したがって、前記結合信号をＡ／Ｄ変換器に入力して乱数を生成した場合に、前記Ａ／Ｄ変換器の上位ビットまで検定を通過する乱数とすることができ、乱数の高速化を実現することができるようになる。【００４８】
また、図１〜図３に示すいずれの例においても、発振器からの三角波及び正弦波、ショット雑音発生回路からの雑音信号、Ｄ／Ａ変換器からの出力信号を、微分回路又はハイパスフィルターの少なくとも一方を介した後、Ａ／Ｄ変換器に入力するようにすることができる。このように、微分回路やハイパスフィルターを介することにより、前記信号における高域周波数を取り出すことができるようになるので、前記信号におけるノイズ成分が増大し、Ａ／Ｄ変換器に入力して乱数を生成した場合のランダム性が増大する。その結果、Ａ／Ｄ変換器の上位ビットまで検定を通過する乱数を生成することができるようになり、乱数の高速化が可能となる。
【実施例】
【００４９】
以下、実施例により本発明の特徴、利点及び効果を具体的に示す。なお、得られた乱数の評価は、現在最も厳しいとされるNIST（National Institute of Standards and Technology）のFIPS140-2[4]に示される統計学的乱数生成テストを採用した。【００５０】
（実施例１）
＜水晶発振器による乱数生成＞
（１）三角波を使用した場合
水晶振動子を基準とした発振器（水晶発振器：NF CORPORATION  WAVE FACTORY1946）の出力を−４．９５〜＋４．９５Ｖの三角波とし、この信号を１２ビット長の２進法Ａ／Ｄ変換を用いてＡ／Ｄ変換し、計算機に取り込んだ。このときサンプリング周波数は１ＭＨｚとした。前記発振器の発振周波数と、検定通過率の関係とを図５に示す。図の横軸は発振周波数、縦軸は検定通過率を示す。図５より、発振周波数が約１５ｋＨｚ以上であれば、ほぼ100％検定を通過していることがわかる。【００５１】
（２）正弦波を使用した場合
上記（１）と同じ水晶発振器を用い、その出力を−４．９５〜＋４．９５Ｖの正弦波とした。なお、サンプリング周波数は１ＭＨｚとした。このときの水晶発振器の発振周波数と、検定通過率の関係を図６に示す。図６より、正弦波は三角波と比較して、より低い発振周波数で検定を通過することがわかる。【００５２】
（実施例２）
＜ショット雑音発生回路による乱数生成＞
図４に示すショット雑音発生回路からの出力を１２ビット長の２進法Ａ／Ｄ変換を用いてＡ／Ｄ変換し、計算機に取り込んだ。取り込んだデータの下位ビットから順に、rO、r1、r2…とした。各rOを20,000個用いて1組としたものをrO（20000）と表し、以下r1を20,000個用いて1組としたものをr1（20000）…と表す。これらのデータ列について、サンプリング周波数を変化させた場合の、サンプリング周波数と検定通過率の関係を図７に示す。図７より、下位ビットを用いるほど、高いサンプリング周波数まで高い検定通過率を維持しており、特に最下位ビットr0で顕著であることが分かる。【００５３】
以上、具体例を挙げながら発明の実施の形態に基づいて本発明を詳細に説明してきたが、本発明は上記内容に限定されるものではなく、本発明の範疇を逸脱しない限りにおいてあらゆる変形や変更が可能である。【００５４】
例えば、所定の雑音又は信号を生成及び発振するための発振器を複数台用い、それらの出力を結合してＡ／Ｄ変換器に入力することにより、乱数生成の高速化を実現することができる。【００５５】
上記結合の方法としては、和を取る方法、差を取る方法、乗算をする方法が考えられる。特に、乗算をする方法は複雑な信号を発生するので、最下位桁よりも上の桁から生成する乱数列の検定が通り易くなる。【００５６】
例として二つの正弦波信号を考える。それぞれの信号の周波数をｆ１、ｆ２とした場合、乗算回路を通した後の出力成分は、ｆ１、ｆ２の外に２ｆ１、２ｆ２、ｆ１＋ｆ２、ｆ１〜ｆ２が出る。もし二つの信号が雑音であれば、雑音は多くの周波数成分を含んでいるので、乗算回路を通ったあとの出力は非常に沢山の複雑な信号を含むことになる。これらの出力をＡ／Ｄ変換器に入力すると最下位桁よりも上の桁の更に上の桁から生成する乱数列の検定が通り易くなる。【００５７】
更に、三つ以上の雑音又は信号を生成及び発振するための発振器を用いればより複雑な信号を含む出力を乗算回路から得ることが出来、より上位桁から生成する乱数列の検定が通り易くなる。【００５８】
また更に、複数の信号がそれぞれ雑音で変調されたものであり、これらを上述のように、和を取る方法、差を取る方法、乗算をする方法で結合すれば更に乱数生成速度の高速化が可能である。【００５９】
このように最下位桁よりも上の多くの桁が使えることになると、乱数生成速度が、使える桁数だけ速くなる。一般に、乱数生成速度を速くするためにＡ／Ｄ変換器のサンプリング周波数を10倍にすると費用も10倍になるが、乗算回路を用いる方法では僅かな費用の増加ですむので実用化の利点は大きい。【００６０】
乗算回路としては専用のIC  NJM１４９６等を使えばよい。和や差を取る方法としては演算増幅器（例えば７４１）を用いればよい。高い周波数で和をとる場合はトランジスタやFETの入力に直接複数の雑音又は信号を加えればよい。【００６１】
なお、前記乗算は乗算回路又は非線形素子を含むミキサー回路を用いて行うことができる。この場合、上記発振器から発せられた信号は互いに前記非線形素子に印加されて、他の周波数の信号が生成されるようになる。乗算回路又はミキサー回路などを用いて乗算を行なうことにより、生成される信号成分には、入力した元の信号のそれぞれの２乗波、入力した元の信号の和や差、入力した元の信号そのものなどが含まれるようになる。この結果、生成される信号成分のランダム性は元の信号よりも強くなる。また、上記ミキサー回路に含まれる上記非線形素子は、２乗特性の他に、３乗特性及び４乗特性を有する。そのため、当初存在しなかった多くの信号成分が生成され、ランダム性が更に強くなる。【００６２】
したがって、Ａ／Ｄ変換器を通じて乱数を生成した場合に、前記Ａ／Ｄ変換器の上位ビットまで検定を通過する乱数を生成することができるようになり、乱数の更なる高速化が可能となる。【００６３】
なお、図８は、上述した乗算回路の一例を示す回路図であり、図９は、図８に示す乗算回路を用いて乱数を生成した際の検定率を示すグラフである。図８に示すような乗算回路により高次のビットまで十分な検定通過率を示し、乱数を生成できることが分かる。【００６４】
なお、上記非線形素子としては、ダイオードやトランジスタなどを挙げることができ、上記ミキサー回路としては、前記非線形素子をＢ級やＣ級で動作させた回路などを例示することができる。なお、このＢ級及びＣ級の動作は、上述した「電子回路」（桜庭一郎著、森北出版）などに記載されている。
【産業上の利用分野】
【００６５】
本発明の乱数生成方法及び乱数生成装置は、社会現象や物理現象の数値シュミレーションなどに用いることができる。また、情報保護分野における暗号技術としても用いることができる。
【図１】
2006054476.tif 000007
【図２】
2006054476.tif 000008
【図３】
2006054476.tif 000009
【図４】
2006054476.tif 000010
【図５】
2006054476.tif 000011
【図６】
2006054476.tif 000012
【図７】
2006054476.tif 000013
【図８】
2006054476.tif 000014
【図９】
2006054476.tif 000015
【国際調査報告】
2006054476.tif 000016
2006054476.tif 000017
2006054476.tif 000018
2006054476.tif 000019
2006054476.tif 000020