(57)【要約】【課題】  物理乱数発生源から取り出したデジタルデータとしての物理素乱数から複数個の物理乱数を高速に生成する。【解決手段】  ホワイトノイズを発生させる物理乱数発生源と、前記ホワイトノイズを入力してデジタルデータとしての物理素乱数に変換するアナログ・デジタル変換機構と、前記物理素乱数を複数個入力して物理素乱数配列を生成する物理素乱数配列生成機構と、前記物理素乱数配列を入力してホワイトノイズ配列を生成するホワイトノイズ配列生成機構と、前記ホワイトノイズ配列を入力して複数の物理乱数を生成するホワイトノイズ合成機構と、前記生成された複数の物理乱数を入力して物理乱数データとして外部に出力する外部出力インターフェースとを有する。【選択図】  図１
2011060158.tif 000002
【特許請求の範囲】
【請求項１】
ホワイトノイズを発生させる物理乱数発生源と、前記ホワイトノイズを入力してデジタルデータとしての物理素乱数に変換するアナログ・デジタル変換機構と、前記物理素乱数を複数個入力して物理素乱数配列を生成する物理素乱数配列生成機構と、前記物理素乱数配列を入力してホワイトノイズ配列を生成するホワイトノイズ配列生成機構と、前記ホワイトノイズ配列を入力して複数の物理乱数を生成するホワイトノイズ合成機構と、前記生成された複数の物理乱数を入力して物理乱数データとして外部に出力する外部出力インターフェースとを有する物理乱数生成装置。
【請求項２】
前記ホワイトノイズ配列生成機構は前記物理素乱数配列生成機構から入力した物理素乱数配列から実数部と虚数部をもつホワイトノイズ配列を生成し、前記ホワイトノイズ合成機構は前記ホワイトノイズ配列に逆フーリエ変換を行い実数部の出力値を物理乱数として出力する請求項１記載の物理乱数生成装置。
【請求項３】
前記物理素乱数配列生成機構は配列バッファを備え、前記物理素乱数を所定周波数の第１クロックで前記配列バッファに順次格納し、前記格納した物理素乱数を前記所定周波数より速い第２クロックで前記配列バッファから順次出力する請求項１記載の物理乱数生成装置。
【請求項４】
前記物理素乱数配列生成機構、前記ホワイトノイズ配列生成機構、前記ホワイトノイズ合成機構を複数組備え、各物理素乱数配列生成機構には前記アナログ・デジタル変換機構から同一の物理素乱数が入力され、各物理素乱数配列生成機構の各配列バッファ毎に物理素乱数の格納ポインタの初期値を変えることにより異なる物理素乱数配列を生成する請求項３記載の物理乱数生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理乱数生成技術に関し、特にハードウェアによって乱数を生成する場合における高い乱数性と生成過程の高速化および少ない回路規模での実現等に好適な物理乱数生成技術である。
【背景技術】
【０００２】
益々大規模化、高精細化する物理乱数を用いた科学技術計算や数値シミュレーション、統計学の計算では、電子計算機の処理能力とともに電子計算機の入力としての物理乱数も高速に生成されなければ所要の計算結果を得ることができない。
【０００３】
電子計算機のもつ処理能力を充分に発揮するには、電子計算機の処理能力に見合った高速な物理乱数生成装置が必要となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３６８００９１号公報
【特許文献２】特開２００７−３２３１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電子計算機の処理能力の向上に伴い電子計算機の入力としての物理乱数も高速に生成されなければ計算機のもつ処理能力を充分に発揮することができなくなってきた。解決しようとする問題点は、（１）物理乱数生成は、物理乱数発生源からアナログ・デジタル変換によりデジタルデータとして取り出されるが、アナログ・デジタル変換回路の動作周波数はデジタル回路のように周波数を高くし出力できるデジタルデータ量を多くすることには限界がある。（２）アナログ・デジタル変換回路はデジタル回路に比べ回路規模が大きくなってしまうため複数個のアナログ・デジタル変換回路を限られた基板上に実装することは難しい。（３）物理乱数発生源から発生するホワイトノイズをアナログ・デジタル変換機構によりデジタルデータとしての乱数性の高い物理素乱数（以下物理素乱数と呼ぶ）を取り出す実装の問題として、物理乱数発生源から取り出すノイズ成分には、ホワイトノイズの他にショット雑音、フリッカー雑音等があり、アンプやフィルタ等のアナログ回路を経てくる間に純粋なホワイトノイズではなくなってしまう。また、アナログ・デジタル変換回路の素子のばらつきによる偏りも発生する。
【０００６】
本発明の目的は、ハードウェアによって物理乱数を生成する技術において高い乱数性と高速な物理乱数生成を小さな生成回路規模で実現することにある。
【課題を解決するための手段】
【０００７】
本発明の物理乱数生成装置は、ホワイトノイズを発生させる物理乱数発生源と、前記ホワイトノイズを入力してデジタルデータとしての物理素乱数に変換するアナログ・デジタル変換機構と、前記物理素乱数を複数個入力して物理素乱数配列を生成する物理素乱数配列生成機構と、前記物理素乱数配列を入力してホワイトノイズ配列を生成するホワイトノイズ配列生成機構と、前記ホワイトノイズ配列を入力して複数の物理乱数を生成するホワイトノイズ合成機構と、前記生成された複数の物理乱数を入力して物理乱数データとして外部に出力する外部出力インターフェースとを有する。
【発明の効果】
【０００８】
本発明の物理乱数生成装置によれば、ハードウェアによって物理乱数列を生成する物理乱数生成技術において、高い乱数性と高速な物理乱数生成を小さな生成回路規模で実現することができる、という効果が得られる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施の形態である物理乱数生成装置の構成の基本構成を示す概念図である。
【図２】図１に例示した本発明の物理乱数生成装置の変形例を示す概念図である。
【図３】アナログ・デジタル変換機構の動作を説明する図である。
【図４】物理素乱数配列生成機構における物理素乱数配列の生成を示す図である。
【図５】物理素乱数配列生成機構の配列バッファ毎に異なる物理素乱数配列の生成を示す図である。
【図６】物理素乱数配列生成機構の配列バッファからの数値列の出力を示す図である。
【図７】逆フーリエ変換による物理乱数の生成を示す図である。
【発明を実施するための形態】
【００１０】
図１は、本発明の一実施の形態である物理乱数生成装置の構成の基本構成を示す概念図である。本実施の形態の物理乱数生成装置は、全てのスペクトルが同じ強さをもつホワイトノイズ２１を発生させる物理乱数発生源１０、ホワイトノイズ２１をデジタルデータに変換するアナログ・デジタル変換機構１２、複数の物理素乱数２３から物理素乱数配列を生成する物理素乱数配列生成機構１３、物理素乱数配列生成機構１３の中にある物理素乱数配列を格納する配列バッファ１３Ａ、物理素乱数配列からホワイトノイズの周波数成分ごとの位相列とする数列としてホワイトノイズ配列を生成するホワイトノイズ配列生成機構１４、ホワイトノイズ配列からホワイトノイズ合成を行うホワイトノイズ合成機構１５、アナログ・デジタル変換機構１２および物理素乱数配列生成機構１３、ホワイトノイズ配列生成機構１４、ホワイトノイズ合成機構１５、乱数データまとめ制御部１９を制御する配列バッファ制御部１１、乱数を使用する外部の任意の情報処理装置との間のインターフェースを提供する物理乱数データまとめ部１６を含んでいる。
【００１１】
すなわち、物理乱数発生源１０から発生した全てのスペクトルが同じ強さをもつホワイトノイズ２１をアナログ・デジタル変換機構１２に入力する。アナログ・デジタル変換機構１２により変換されたデジタルデータの任意のビットを物理素乱数２３とする。物理素乱数２３から物理素乱数配列を作成するため、複数の物理素乱数２３を数列として記憶する配列バッファ１３Ａへ入力する。各物理素乱数配列生成機構１３の物理素乱数配列はそれぞれ異なる物理素乱数配列にするため、配列バッファ１３Ａ毎に物理素乱数２３を書き込む順序は異なる。ホワイトノイズ配列生成機構１４では物理素乱数配列生成機構１３の中にある配列バッファ１３Ａから物理素乱数配列を入力し、ホワイトノイズ配列を作成する。ホワイトノイズ配列を入力としホワイトノイズ合成機構１５でホワイトノイズ合成を行う。複数のホワイトノイズ合成機構１５から出力された物理乱数は、乱数データまとめ部１６に入力されまとめられる。乱数データまとめ部１６は、外部からの要求により物理乱数データをデータを取り出しやすいように加工し、物理乱数として出力する。
【００１２】
このような構成の本実施の形態の物理乱数発生装置の動作としては、まず、物理乱数発生源１０から物理乱数の素となるホワイトノイズ２１を発生させる。図３にあるように発生したホワイトノイズ２１をアナログ・デジタル変換機構１２に入力する。アナログ・デジタル変換機構１２ではクロック信号Ａ２２Ａのサイクル毎にホワイトノイズ２１の大きさをサンプリングし、その値をデジタルデータに変換する。デジタルデータはクロック信号Ａ２２Ａのサイクル毎にアナログ・デジタル変換機構１２から出力される。アナログ・デジタル変換機構１２により変換されたデジタルデータを物理素乱数２３とする。物理素乱数２３を物理素乱数配列生成機構１３の中で物理素乱数配列を生成する。
【００１３】
物理素乱数配列の生成は、例えば、図４にあるように５１２個の入力素乱数列から物理素乱数配列を生成する場合、入力した物理素乱数２３を物理素乱数配列として配列バッファ１３Ａのポインタで示した場所に格納する。ポインタは、クロック信号Ａ２２Ａのサイクル毎にカウントアップする。５１２個の入力素乱数を格納してひとつの物理素乱数配列は完成する。次の５１２サイクルでもうひとつの物理素乱数配列が完成する。この５１２サイクル毎に生成される物理素乱数配列は配列バッファ１３Ａのポインタで示した場所に交互に格納され更新される。それぞれの５１２サイクルのうち１サイクル目の値はゼロを格納する。
【００１４】
物理素乱数配列は、図５にあるように各物理素乱数配列生成機構１３の中で各配列バッファ１３Ａ毎に格納するポインタの初期値を変え、異なる物理素乱数配列となるようにする。配列バッファ１３Ａからの数値列の出力は、クロック信号Ｂ２２Ｂのサイクル毎に出力する。この数値列がホワイトノイズ配列生成機構１４の入力となる。
【００１５】
図６にあるように最初の１０２４サイクルは配列バッファ１３Ａに物理素乱数が格納されていないため何も出力しない。次の１０２４サイクルで配列バッファ１３Ａの０番目から昇順に５１１番目までの値を出力した後、再度０番目の値を出力し、その後５１１番目から降順に１番目までの値を出力する。３回目の１０２４サイクルでは、ポインタを５１２加算し配列バッファ１３Ａの５１２番目から昇順に１０２３番目までの値を出力した後、再度５１２番目の値を出力し、その後１０２３番目から降順に５１３番目までの値を出力する。以降、２回目の１０２４サイクルと３回目の１０２４サイクルを繰り返し物理素乱数配列を出力する。物理素乱数配列を入力しホワイトノイズ配列生成機構１４で配列の大きさが１０２４のホワイトノイズ配列を生成する。クロック信号Ｂ２２Ｂは、クロック信号Ａ２２Ａの２倍の周波数とする。すなわち、アナログ・デジタルデータ変換機構により生成されるデジタルデータの２倍の速さでホワイトノイズ配列を生成する。ホワイトノイズ配列生成機構１４の中でホワイトノイズの周波数成分ごとの位相列とする数列としてホワイトノイズ配列を生成する。
【００１６】
図７にあるようにホワイトノイズ配列生成機構１４では物理素乱数配列生成機構１３から出力された物理素乱数列から実数部と虚数部をもつホワイトノイズ配列への変換を行う。実数部は、実数部生成回路２４で物理素乱数配列生成機構１３から入力した各物理素乱数配列のビット列から生成された０以上１未満の素乱数を出力する。虚数部は、虚数部生成回路２５で実数部生成回路２４から入力した素乱数を１から２乗した値を引いて平方根をとった値を生成する。生成された値を１サイクル目から５１２サイクル目まではデータ反転回路１４１が無効となり生成された値がそのまま出力される。５１３サイクル目から１０２４サイクル目はデータ反転回路１４１が有効となり生成された値のマイナス値が出力される。
【００１７】
ホワイトノイズ合成機構１５ではホワイトノイズ配列をホワイトノイズの周波数成分ごとの位相列として入力しホワイトノイズ合成を行う。ホワイトノイズ合成は、周期性を取り除き原理的なホワイトノイズへ変換するため逆フーリエ変換を行い実数部の出力値を物理乱数として出力する。逆フーリエ変換回路１５１は、実数部Ｉｒ［ｎ］と虚数部Ｉｉ［ｎ］の値を入力しクロックサイクル毎に逆フーリエ変換された実数部Ｏｒ［ｎ］と虚数部Ｏｉ［ｎ］の値を出力する。クロック信号Ｂ２２Ｂのサイクル毎に出力される実数部の値を物理乱数としてホワイトノイズ合成機構１５から出力する。ホワイトノイズ合成は１０２４サイクル毎に行う。
【００１８】
ホワイトノイズ配列の生成とホワイトノイズ合成を数式であらわすと、数１にあるように５１２個の物理素乱数列から配列の大きさが１０２４のホワイトノイズ配列を生成する。ホワイトノイズ配列は、実数部と虚数部の値をもつ。
【００１９】
【数１】
2011060158.tif 000003
【００２０】
表１は数１により生成されたホワイトノイズ配列の実数部と虚数部の値を示している。表１にあるように１０２４個の配列のうち２個目から５１２個目の実数部の値は、５１２個の物理素乱数列のうち２個目から５１２個目の各物理素乱数列のビット列から生成した０以上１未満の素乱数とし、５１３個目から１０２４個目の実数部の値は、５１２個の物理素乱数列を反転させて５１２個目から２個目の各物理素乱数列のビット列から生成した０以上１未満の素乱数とする。また、２個目から５１２個目の虚数部は５１２個の物理素乱数列のうち２個目から５１２個目の各物理素乱数列のビット列から生成した０以上１未満の素乱数をそれぞれ１から２乗した値を引いて平方根をとった値とし、５１３個目から１０２４個目の虚数部は５１２個の物理素乱数列を反転させ５１２個目から２個目の各物理素乱数列のビット列から生成した０以上１未満の素乱数をそれぞれ１から２乗した値を引いて平方根をとった値をマイナスしたものとする。１個目と５１３個目の実数部の値および虚数部の値はともに０とする。
【００２１】
【表１】
2011060158.tif 000004
【００２２】
生成した配列の大きさが１０２４のホワイトノイズ配列を入力とし、逆フーリエ変換によりホワイトノイズ合成を行い出力される実数部の値から１０２４個の物理乱数を生成する。各ホワイトノイズ合成機構１５から出力される物理乱数を乱数データまとめ部１６に送る。乱数データまとめ部１６では複数の物理乱数のビット列を並べてシフトレジスタ１７に保存する。シフトレジスタのどこに保存するかは制御部１９が指示する。シフトレジスタ１７は、クロック信号Ｂ２２Ｂに同期してシフト動作と、各ホワイトノイズ合成機構１５から出力される物理乱数データの書き込みを行う。シフトレジスタ１７は、物理乱数データを物理乱数データバッファ１８に送り、乱数データまとめ制御部１９は、物理乱数データバッファ１８に書き込み指示を行う。物理乱数データバッファ１８は、書き込み指示を受けた時のシフトレジスタ１７からの物理乱数データを記憶する。また、物理乱数データバッファ１８は、外部からの読出し要求に対し、物理乱数データ２０の出力と出力した物理乱数データ２０の消去を行う機能と、汎用バス等に対する接続インターフェースを有し物理乱数データを外部の任意の装置等に供給することができる。
【００２３】
図２は、前述の図１に例示された物理乱数生成装置の変形例を示す概念図である。図２の構成では、物理素乱数２３を物理素乱数配列生成機構１３の中にある循環配列バッファ１３Ｂへ書き込む構成となっている。すなわち、循環配列バッファ１３Ｂにはひとつの物理素乱数配列が格納されている。この物理素乱数配列を入力とし、ホワイトノイズ配列生成機構１４において全てのスペクトルが同じ強さをもつ物理現象のスペクトルの位相列としてのホワイトノイズ配列が生成される。この数列を使ってホワイトノイズ合成を行った後、数値列を循環させることで異なる物理素乱数配列となり、この新しい物理素乱数列からホワイトノイズ配列生成機構１４において新たなホワイトノイズ配列を作成することができる。循環させた物理素乱数列から生成されたホワイトノイズ配列を入力とし再度ホワイトノイズ合成を行い物理乱数を生成する。ホワイトノイズ合成方法は、前記と同じ数式を用いる。物理素乱数配列を循環させることによりひとつのホワイトノイズ合成機構１５で複数回のホワイトノイズ合成を行い、物理素乱数２３の書き込み速度の数倍のクロックを用いることが可能となる。また、回路規模を小さくしながら高い乱数生成能力を維持することができる。
【符号の説明】
【００２４】
１０：ホワイトノイズ発生源、１１：配列バッファ制御部、１２：アナログ・デジタル変換機構、１３：物理素乱数配列生成機構、１３Ａ：配列バッファ、１３Ｂ：循環配列バッファ、１４：ホワイトノイズ配列生成機構、１５：ホワイトノイズ合成機構、１６：乱数データまとめ部、１７：シフトレジスタ、１８：物理乱数データバッファ、１９：乱数データまとめ制御部、２０：物理乱数データ、２１：ホワイトノイズ、２２Ａ：クロック信号Ａ、２２Ｂ：クロック信号Ｂ、２３：物理素乱数、２４：実数部生成回路、２５：虚数部生成回路、１４１：データ反転回路、１５１：逆フーリエ変換回路
【図１】
2011060158.tif 000005
【図２】
2011060158.tif 000006
【図３】
2011060158.tif 000007
【図４】
2011060158.tif 000008
【図５】
2011060158.tif 000009
【図６】
2011060158.tif 000010
【図７】
2011060158.tif 000011