(57)【要約】【課題】  発生する真性乱数の相関関係を最小限に抑えることが可能な真性乱数発生装置を提供する。【解決手段】  真性乱数生成装置は，少なくともクロックを生成することで，刻々と変動する変動値を出力する発振器と；変動値をサンプリングするためのサンプリングクロックを調整する調整値を記憶する調整値記憶部と；入力してくるシステムクロックと，調整値記憶部に格納された調整値とに基づき，サンプリングクロックを生成するサンプリングクロック生成器と；サンプリングクロックに従い，発振器から出力される変動値をサンプリングし，乱数値を出力する乱数出力部とを備え，乱数出力部が出力した乱数値は，調整値記憶部に調整値としてフィードバックされる。【選択図】    図１
2005174206.tif 000002
【特許請求の範囲】
【請求項１】
少なくともクロックを生成することで，刻々と変動する変動値を出力する発振器と；
前記変動値をサンプリングするためのサンプリングクロックを調整する調整値を記憶する調整値記憶部と；
入力してくるシステムクロックと，前記調整値記憶部に格納された調整値とに基づき，サンプリングクロックを生成するサンプリングクロック生成器と；
前記サンプリングクロックに従い，前記発振器から出力される変動値をサンプリングし，乱数値を出力する乱数出力部と；
を備え，
前記乱数出力部が出力した前記乱数値は，前記調整値記憶部に調整値としてフィードバックされることを特徴とする，真性乱数生成装置。
【請求項２】
前記真性乱数生成装置は，さらに前記発振器が出力する変動値を格納するカウンタを備えることを特徴とする，請求項１に記載の真性乱数生成装置。
【請求項３】
前記真性乱数生成装置には，複数の前記発振器が並列に備わることを特徴とする，請求項１に記載の真性乱数生成装置。
【請求項４】
前記乱数出力部により出力された前記乱数値には，所定の加算値が加算されることを特徴とする，請求項１に記載の真性乱数生成装置。
【請求項５】
前記サンプリングクロック生成器は，前記調整値記憶部に格納された調整値を前記システムクロックの周波数に乗算することで，サンプリングクロックの周波数を決定することを特徴とする，請求項１に記載の真性乱数生成装置。
【請求項６】
少なくともクロックを生成することで，刻々と変動する変動値を出力する変動値出力処理と；
入力してくるシステムクロックと，既に格納された調整値とに基づき，サンプリングクロックを生成するサンプリングクロック生成処理と；
前記サンプリングクロックに従い，前記変動値をサンプリングし，乱数値を出力する乱数出力処理と；
前記乱数値を，調整値として調整値記憶部にフィードバックする調整値格納処理とが含まれることを特徴とする，真性乱数生成方法。
【請求項７】
前記乱数出力処理により出力された前記乱数値には，所定の加算値が加算され，フィードバックされることを特徴とする，請求項６に記載の真性乱数生成装置。
【請求項８】
前記サンプリングクロック生成処理は，前記調整値を前記システムクロックの周波数に乗算することで，サンプリングクロックの周波数を決定することを特徴とする，請求項６に記載の真性乱数生成方法。
【請求項９】
前記調整値格納処理は，出力される前記乱数値のうち，該乱数値の出力回数に応じて乱数値を抽出し，前記調整値としてフィードバックすることを特徴とする，請求項６に記載の真性乱数生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は乱数を生成する真性乱数生成装置または真性乱数生成方法に関する。
【背景技術】
【０００２】
近代，コンピュータまたはネットワーク等の情報技術の発達に伴い，携帯電話やインターネットなどにおける電子商取引をはじめ様々な取引や，仕組みが生み出され，セキュリティ技術が不可欠となっている。
【０００３】
実際，コンピュータウィルスやクラッカーなどの攻撃が増え，多くの個人や組織に被害をもたらしている。これらの攻撃からシステムを守るために，暗号の応用が急速に進歩している。
【０００４】
暗号を作成する際に，乱数を用いることは一般的であるが，暗号で用いる乱数は，安全な乱数であることが必要であり，一般的に安全な乱数とは，予測不可能性および統計的性質等の条件を満たす乱数のことをいう。上記条件を満たす乱数は真性乱数として暗号鍵等の生成や，擬似乱数の種（シード）等に用いることが可能である。
【０００５】
真性乱数は，暗号学的に安全な乱数であり，“０”と“１”の発生する確率がそれぞれ約１／２で，各ビット相互間は相関関係がなく，他のビットの部分は独立（Ｉｎｄｅｐｅｎｄｅｎｔ  ａｎｄ  Ｉｄｅｎｔｉｃａｌｌｙ  Ｄｉｓｔｒｉｂｕｔｅｄ）している。
【０００６】
【非特許文献１】岡本栄司著，「暗号理論入門」，第２版，共立出版株式会社，２００３年３月１日
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら，真性乱数を発生する際には，一般的に，発振器や，クロック発振器等を用いて真性乱数が発生するが，発振器から生成される高周波波形を，クロック発振器が生成するクロックでサンプリングする間隔を充分に大きくする必要があった。
【０００８】
上記サンプリング間隔が充分に大きくしない場合，連続して乱数を発生させると，前に発生した乱数と，今回発生した乱数との間に，多項式計算等による相関関係が生じてしまい，発生した乱数が真性乱数として機能し得ない。
【０００９】
したがって，サンプリング間隔を充分に大きくできない，又は高速に真性乱数を得ることが必要である等の制約がある場合，相関関係が生じないように真性乱数を発生させることが，非常に困難であった。
【００１０】
本発明は，上記問題点に鑑みてなされたものであり，本発明の目的は，発生する真性乱数の相関関係を最小限に抑えることが可能な，新規かつ改良された真性乱数発生装置を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するため，本発明の第１の観点によれば，真性乱数生成装置が提供され，上記真性乱数生成装置は，少なくともクロックを生成することで，刻々と変動する変動値を出力する発振器と；変動値をサンプリングするためのサンプリングクロックを調整する調整値を記憶する調整値記憶部と；入力してくるシステムクロックと，調整値記憶部に格納された調整値とに基づき，サンプリングクロックを生成するサンプリングクロック生成器と；サンプリングクロックに従い，発振器から出力される変動値をサンプリングし，乱数値を出力する乱数出力部とを備え，乱数出力部が出力した乱数値は，調整値記憶部に調整値としてフィードバックされることを特徴としている。
【００１２】
本発明によれば，真性乱数生成装置は，高周波などのクロックに基づき，変動値を生成している。また，変動値をサンプリングするたび毎に，システムクロックと調整値記憶部に格納された調整値とに基づき，サンプリングクロックを動的に生成している。さらに，変動値をサンプリングすることで出力される乱数値は，調整値記憶部にフィードバックされ，調整値として格納される。かかる構成によれば，サンプリングクロックが不規則に変化するため，出力される乱数値の相関関係の発生を最小限に防ぎ，または相関関係を複雑化することで，出力される乱数値の推測困難性を高めることができる。
【００１３】
上記調整値は，サンプリングクロックの周波数を少なくとも変倍するための値であるように構成することができ，また上記乱数出力部は，サンプリングクロックの周波数のタイミングで変動値を取得するように構成することができる。
【００１４】
真性乱数生成装置は，さらに発振器が出力する変動値を格納するカウンタを備えるように構成してもよい。かかる構成によれば，桁数の大きい乱数値等を生成することができ，乱数性能を向上させることができる。
【００１５】
真性乱数生成装置には，複数の発振器が並列に備わるように構成することができる。かかる構成によれば，複数の桁数からなる乱数値等を生成することができ，容易に解析されず，乱数性能の向上化が図れる。
【００１６】
乱数出力部により出力された乱数値には，所定の加算値が加算されるように構成することができる。かかる構成により，サンプリングする際の時間間隔をある程度保つことができ，出力される乱数値の相関関係の発生または乱数値を解析される可能性を最小限に抑えられる。
【００１７】
サンプリングクロック生成器は，調整値記憶部に格納された調整値をシステムクロックの周波数に乗算することで，サンプリングクロックの周波数を決定するように構成することができる。かかる構成により，変動値をサンプリングし，乱数値を出力するためのサンプリングクロックの周波数を固定化せず，動的に変動させることで，乱数性能を向上させ，出力される乱数値の相関関係の発生または乱数値を解析される可能性を最小限に抑えられる。
【００１８】
また，上記課題を解決するために，本発明の別の観点によれば，真性乱数生成方法が提供され，上記真性乱数生成方法は，少なくともクロックを生成することで，刻々と変動する変動値を出力する変動値出力処理と；入力してくるシステムクロックと，既に格納された調整値とに基づき，サンプリングクロックを生成するサンプリングクロック生成処理と；サンプリングクロックに従い，変動値をサンプリングし，乱数値を出力する乱数出力処理と；乱数値を，調整値として調整値記憶部にフィードバックする調整値格納処理とが含まれることを特徴としている。
【００１９】
本発明によれば，高周波などのクロックに基づき，変動値を出力処理している。また，変動値をサンプリングするたび毎に，システムクロックと調整値記憶部に格納された調整値とに基づき，サンプリングクロックを動的に生成するサンプリングクロック生成処理している。さらに，変動値をサンプリングすることで出力される乱数値は，調整値格納処理により，調整値記憶部にフィードバックされ，調整値として格納される。かかる構成によれば，サンプリングクロックが不規則に変動するため，出力される乱数値の相関関係の発生を最小限に防ぎ，または相関関係を複雑化することで，出力される乱数値の推測困難性を高めることができる。
【００２０】
乱数出力処理により出力された乱数値には，所定の加算値が加算され，フィードバックされるように構成してもよい。
【００２１】
サンプリングクロック生成処理は，調整値をシステムクロックの周波数に乗算することで，サンプリングクロックの周波数を決定するように構成してもよい。
【００２２】
調整値格納処理は，出力される乱数値のうち，該乱数値の出力回数に応じて乱数値を抽出し，調整値としてフィードバックするように構成することができる。かかる構成により，乱数値が出力される度に，必ずしも乱数値がフィードバックされ，調整値として格納されるとは限らないようにすることで，出力される乱数値の解析の困難性を向上させ，乱数性能を高めることができる。
【発明の効果】
【００２３】
以上説明したように，本発明によれば，大幅な改良又は多額のコストをかけなくとも，真性乱数生成装置によって生成される各乱数の相関関係の発生を最小限に抑え，生成される乱数の推測の困難性を大幅に向上させることが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下，本発明の好適な実施の形態について，添付図面を参照しながら詳細に説明する。なお，以下の説明及び添付図面において，略同一の機能及び構成を有する構成要素については，同一符号を付することにより，重複説明を省略する。
【００２５】
まず，図１を参照しながら，第１の実施の形態にかかる真性乱数生成装置の回路構成について説明する。図１は，第１の実施の形態にかかる真性乱数生成装置の回路構成の概略を示すブロック図である。
【００２６】
第１の実施の形態にかかる真性乱数生成装置は，高周波発振回路をサンプリングして乱数を得る装置であり，図１に示すように，真性乱数生成装置は，発信器１０１と，乱数出力レジスタ１０５と，サンプリングクロック生成回路１０７と，サンプリングクロック周波数設定レジスタ１０９とから少なくとも構成される。
【００２７】
発振器１０１は，システムクロック７とは無関係に動作するリングオシレータ（ｒｉｎｇ  ｏｓｃｉｌｌａｔｏｒ：環状発振回路）などの高周波発振回路である。なお，第１の実施の形態にかかる発振器１０１は，高周波発振回路に限定されない。
【００２８】
リングオシレータとは，インバータ回路(反転回路)を１，３，５…など奇数個組み合わせることでクロック発生など発振機能を持つ回路である。デバイスの応答遅延特性を調べることに使われることがある。
【００２９】
上記発振器１０１からはカウントソース５が出力される。カウントソース５は，発振器１０１により発生される“０”または“１”のクロックの値である。発振器１０１は，双方のうちどちらかの値を周期的にカウントソース５として出力している。なお，本実施の形態にかかるカウントソース５は，例えば，刻々と変動する変動値などに該当する。
【００３０】
したがって，図１に示す発振器１０１は，“０”または“１”の１ビットの値を交互に，カウントソース５の値として出力している。なお，カウントソース５の値は１ビットの場合に限らず，複数ビットからなる場合も実施可能であるが，詳細は後述する。
【００３１】
乱数出力レジスタ１０５は，発振器１０１から発振されるカウントソース５の値を，サンプリングクロック８で，サンプリングする。サンプリングされた値は，真性乱数として乱数出力９が出力される。なお，本実施の形態にかかる乱数出力レジスタ１０５は，例えば，乱数値を出力する乱数出力部などに該当する。また，乱数値は，本実施の形態にかかる乱数出力９に該当する。
【００３２】
サンプリングクロック８は，サンプリングクロック生成回路１０７によって出力される。上記サンプリングクロック８の周波数のタイミングで乱数出力レジスタ１０５によるサンプリングが行われる。
【００３３】
サンプリングクロック生成回路１０７は，外部から入力するシステムクロック７のクロック周波数の値と，サンプリングクロック周波数設定レジスタ１０９に設定されたサンプリングクロック周波数設定値１１の値とを乗算し，乗算結果の周波数からなるサンプリングクロック８を出力する。
【００３４】
つまり，サンプリングクロック生成回路１０７は，サンプリングクロック周波数設定レジスタ１０９からサンプリングクロック周波数設定値１１を受信し，システムクロック７に上記サンプリングクロック周波数設定値１１を掛け合わせて，サンプリングクロック８を出力している。
【００３５】
なお，システムクロック７は，例えば，ＯＳなどのシステムで用意されている時計機能に使われるクロックである。サンプリングクロック８は，例えば，１１倍など，システムクロック７の整数倍の周波数である。
【００３６】
サンプリングクロック周波数設定レジスタ１０９は，図１に示すように，外部から乱数出力９が入力され，上記乱数出力９の値を格納する。格納された乱数出力９の値は，サンプリングクロック周波数設定値１１として，サンプリングクロック生成回路１０７に出力される。なお，本実施の形態にかかるサンプリングクロック周波数設定レジスタ１０９は，例えば，調整値として格納可能な調整値記憶部などに該当する。また，調整値は，本実施の形態にかかるサンプリングクロック周波数設定値１１に相当する。
【００３７】
したがって，サンプリングクロック周波数設定レジスタ１０９から出力されるサンプリングクロック周波数設定値１１は，真性乱数である乱数出力９に基づいて出力されるため推定の困難な不規則な値といえる。
【００３８】
なお，乱数出力９は，乱数出力レジスタ１０５から出力されるが，図１に示すように，出力された乱数出力９そのままをサンプリングクロック周波数設定レジスタ１０９に格納する場合に，限定されず，例えば，乱数出力９に所定値を加算する等の調整又は補正処理をした後に設定される場合等でもよい。詳細は後述する。
【００３９】
次に，図２を参照しながら，第１の実施の形態にかかる真性乱数生成装置に適用される乱数生成処理の動作について説明する。図２は，第１の実施の形態にかかる乱数生成処理の概要を示すフローチャートである。
【００４０】
まず，発振器１０１，乱数出力レジスタ１０５，サンプリングクロック生成回路１０７，およびサンプリングクロック周波数設定レジスタ１０９が起動開始し，カウントソース５や，システムクロック７が送信されてくる。
【００４１】
サンプリングクロック周波数設定レジスタ１０９には，開始当初，乱数出力９が入力されないため，予め所定の初期値がサンプリングクロック周波数設定値１１として格納されている。なお，初期値は，場合に応じて変更することが可能である。
【００４２】
したがって，サンプリングクロック周波数設定レジスタ１０９からは，上記初期値のサンプリングクロック周波数設定値１１がサンプリングクロック生成回路１０７に伝送される。
【００４３】
サンプリングクロック生成回路１０７は，外部からのシステムクロック７の周波数と，初期値が設定されたサンプリングクロック周波数設定値１１とを乗算することで，サンプリングクロック８を出力する。
【００４４】
次に，図２に示すように，乱数出力レジスタ１０５は，外部から送信されるサンプリングクロック８に従って，発振器１０１から出力されるカウントソース５の値をサンプリングする（Ｓ２０１）。
【００４５】
次に，乱数出力レジスタ１０５によって，カウントソース５の値がサンプリングされると，真性乱数である乱数出力９が出力される（Ｓ２０３）。
【００４６】
乱数出力レジスタ１０５から出力された乱数出力９は，そのままサンプリングクロック周波数設定レジスタ１０９に送信され，サンプリングクロック周波数設定レジスタ１０９の所定記憶領域に乱数出力９の値が格納される（Ｓ２０５）。
【００４７】
つまり，上記初期値に基づいてサンプリングクロック８が設定されることで，乱数出力レジスタ１０５から出力された乱数出力９が，初期値が格納されたサンプリングクロック周波数設定レジスタ１０９にフィードバックされることで，サンプリングのタイミングを不規則にし，乱数出力９の値の相関関係の発生を低減するとともに，乱数出力９の推測困難性を高めることができる。
【００４８】
次に，サンプリングクロック周波数設定レジスタ１０９に，上記乱数出力９の値が設定されると（Ｓ２０５），乱数出力９の値が設定されたサンプリングクロック周波数設定値１１がサンプリングクロック生成回路１０７に送信される。
【００４９】
上記説明したように，起動開始直後のサンプリングクロック周波数設定レジスタ１０９には，乱数出力９の値が格納されていないため，予め設定されていた初期値がサンプリングクロック周波数設定値１１に設定され，サンプリングクロック生成回路１０７に送信されていた。しかしここで，乱数出力９が乱数出力レジスタ１０５から出力されると，サンプリングクロック周波数設定値１１に乱数出力９の値が設定され，サンプリングクロック生成回路１０７に出力されているのがわかる。
【００５０】
次に，サンプリングクロック生成回路１０７は，サンプリングクロック周波数設定レジスタ１０９から乱数出力９の値が設定されたサンプリングクロック周波数設定値１１を取得し，上記サンプリングクロック周波数設定値１１の値とシステムクロック７とを乗算した結果値を，サンプリングクロック８の周波数値に設定する（Ｓ２０７）。
【００５１】
設定処理（Ｓ２０７）されたサンプリングクロック８は，上記説明の初期値から設定処理されたサンプリングクロック８と相違する。さらに，以降のサンプリングクロック設定処理で設定されたサンプリングクロック８も，乱数出力９の値が不規則に変動するため，サンプリングクロック８の周波数を推測することは困難である。さらに過去のサンプリングクロック８との相関関係も極めて小さいといえる。
【００５２】
サンプリングクロック設定処理後（Ｓ２０７），サンプリングクロック８が乱数出力レジスタ１０５に出力されると，乱数出力レジスタ１０５は，上記説明の通り，サンプリングクロック８に従い，カウントソース５をサンプリングする（Ｓ２０９）。
【００５３】
サンプリング処理（Ｓ２０９）されると，乱数出力レジスタ１０５によって，真性乱数である乱数出力９が出力される（Ｓ２１１）。
【００５４】
サンプリングクロック８が乱数出力９の値によって，刻々と変化するため，サンプリングする間隔やタイミングも不規則に変更する。したがって，上記乱数出力処理（Ｓ２１１）で出力された乱数出力９と，前回の乱数出力処理（Ｓ２０３）で出力された乱数出力９との間では，相関関係がほぼ無いといえる。
【００５５】
乱数出力９が乱数出力レジスタ１０５から出力されると，上記サンプリングクロック周波数設定レジスタ１０９に上記乱数出力９が格納される（Ｓ２１３）。なお，第１の実施の形態にかかる乱数生成処理は，図２に示すように，サンプリングクロック設定処理，サンプリング処理，乱数出力処理，格納処理と同様に繰り返し，真性乱数が生成される。
【００５６】
また，第１の実施の形態にかかる真性乱数生成装置に適用された乱数生成処理は，真性乱数生成装置に備わる発振器１０１，乱数出力レジスタ１０５，サンプリングクロック生成回路１０７，サンプリングクロック周波数設定レジスタ１０９などのハードウエアを用いた場合を例に挙げて説明したが，かかる例に限定されず，例えば，複数のモジュールからなるコンピュータプログラムで第１の実施の形態にかかる乱数生成処理を実行してもよい。
【００５７】
次に，図３を参照しながら，第２の実施の形態にかかる真性乱数生成装置の回路構成について説明する。図３は，第２の実施の形態にかかる真性乱数生成装置の回路構成の概略を示すブロック図である。なお，以降の説明では，第２の実施の形態にかかる真性乱数生成装置と，第１の実施の形態にかかる真性乱数生成装置とは同様の構成部分が多いため，双方の相違点について詳細に説明する。
【００５８】
図３に示すように，第２の実施の形態にかかる真性乱数生成装置は，発信器１０１と，乱数出力レジスタ１０５と，サンプリングクロック生成回路１０７と，サンプリングクロック周波数設定レジスタ１０９と，外部回路１１１とから少なくとも構成される。
【００５９】
図３に示すように，第２の実施の形態にかかる真性乱数生成装置は，第１の実施の形態にかかる真性乱数生成装置と比較すると，外部回路１１１を備えている点で相違している。
【００６０】
外部回路１１１は，乱数出力レジスタ１０５から出力される乱数出力９を受信すると，上記乱数出力９に対して調整処理を実行し，設定値１０を出力する。上記調整処理は，例えば，下駄を履かせるため所定値を加算，または所定値を乗算など，乱数出力９の値がある一定のレベル値に達するよう補正する処理である。
【００６１】
なお，外部回路１１１は，乱数出力レジスタ１０５から出力される乱数出力９を，そのまま乱数出力９として処理する場合と，乱数出力９に調整処理をする場合と，双方の場合を使い分けることも実施可能である。詳細は後述する。
【００６２】
外部回路１１１によって，調整処理を実行することで，サンプリングクロック生成回路１０７でサンプリングクロック８が設定される際に，サンプリングクロック８の周波数を一定以上の長さにすることが可能となり，生成された乱数出力９の相関関係が生じるのをより低減させることが可能となる。
【００６３】
また，外部回路１１１は，乱数出力レジスタ１０５から出力される乱数出力９の値に応じて，所定値を加算等することで，設定値１０が所定の範囲内に収まるよう調整処理を実行してもよい。
【００６４】
次に，図４を参照しながら，第２の実施の形態にかかる真性乱数生成装置に適用された乱数生成処理の動作について説明する。図４は，第２の実施の形態にかかる乱数生成処理の概要を示す説明図である。
【００６５】
まず，発振器１０１，乱数出力レジスタ１０５，サンプリングクロック生成回路１０７，サンプリングクロック周波数設定レジスタ１０９，および外部回路１１１が起動開始し，カウントソース５や，システムクロック７が送信されてくる。
【００６６】
次に，図４に示すように，発振器１０１からカウントソース５ａが乱数出力レジスタ１０５に出力される。乱数出力レジスタ１０５は，第１の実施の形態にかかる乱数生成処理で説明したように，サンプリングクロック生成回路１０７から出力されるサンプリングクロック８に従い，乱数出力９ａを出力する。
【００６７】
なお，上記乱数出力９ａが出力される際のサンプリングクロック８は，サンプリングクロック周波数設定レジスタ１０９に格納された初期値に基づいて，サンプリングクロック生成回路１０７によって出力されたものである。
【００６８】
次に，乱数出力９ａは，乱数出力レジスタ１０５によって，外部回路１１１に出力される（Ｓ４０１ａ）。外部回路１１１は，乱数出力９を最初の１回目に受信した場合，調整処理を実行し，設定値１０ｂを出力はせず，乱数として使用するに留まる。
【００６９】
上記乱数出力９ａが乱数出力レジスタ１０５から外部回路１１１に伝送されると，１回目の乱数生成処理の一連の動作は終了する。
【００７０】
次に，発振器１０１から２回目のカウントソース５ｂが出力されると，乱数出力レジスタ１０５は，上記説明したように，サンプリングクロック生成回路１０７から出力されるサンプリングクロック８に従い，乱数出力９ｂを出力する。
【００７１】
なお，上記乱数出力９ｂが出力される際のサンプリングクロック８は，第１の実施の形態にかかる乱数生成処理で説明したように，設定値が格納されていないため，予め格納された初期値に基づき，サンプリングクロック生成回路１０７によって出力されたものである。
【００７２】
次に，乱数出力９ｂは，乱数出力レジスタ１０５によって，外部回路１１１に出力されると（Ｓ４０１ｂ），外部回路１１１は，受信した乱数出力９ｂの値について上記調整処理を実行し，調整後の結果値を設定値１０ｂとしてサンプリングクロック周波数設定レジスタ１０９に出力する。これによって，サンプリングクロック周波数設定値１１に設定される値が初期値から設定値１０ｂに変更することになる。
【００７３】
上記乱数出力９ｂが乱数出力レジスタ１０５から外部回路１１１に伝送され（Ｓ４０１ｂ），外部回路からサンプリングクロック周波数設定レジスタ１０９に設定値１０ｂが出力されると，２回目の乱数生成処理の一連の動作は終了する。
【００７４】
次に，発振器１０１から３回目のカウントソース５ｃが出力されると，乱数出力レジスタ１０５は，上記説明したように，サンプリングクロック生成回路１０７から出力されるサンプリングクロック８に従い，乱数出力９ｃを出力する。
【００７５】
なお，上記乱数出力９ｃが出力される際のサンプリングクロック８は，上記説明したように，２回目の乱数生成処理で設定値１０ｂがサンプリングクロック周波数設定レジスタ１０９に格納されているため，上記設定値１０ｂに基づき，サンプリングクロック生成回路１０７によって設定されたものである。
【００７６】
次に，乱数出力９ｃは，乱数出力レジスタ１０５によって，外部回路１１１に出力されると（Ｓ４０１ｃ），外部回路１１１は，受信した乱数出力９ｃの値について上記調整処理を実行せず，そのまま乱数出力９ｃとして処理するに留まる。
【００７７】
上記乱数出力９ｃが乱数出力レジスタ１０５から外部回路１１１に伝送されると（Ｓ４０１ｃ），３回目の乱数生成処理の一連の動作は終了する。
【００７８】
次に，発振器１０１から４回目のカウントソース５ｄが出力されると，乱数出力レジスタ１０５は，上記説明したように，サンプリングクロック生成回路１０７から出力されるサンプリングクロック８に従い，乱数出力９ｄを出力する。
【００７９】
なお，上記乱数出力９ｄが出力される際のサンプリングクロック８は，上記説明したように，３回目の乱数生成処理では設定値が出力されないため，２回目の乱数生成処理でサンプリングクロック周波数設定レジスタ１０９に格納された設定値１０ｂに基づき，サンプリングクロック生成回路１０７によって設定されたものである。
【００８０】
次に，乱数出力９ｄは，乱数出力レジスタ１０５によって，外部回路１１１に出力されると（Ｓ４０１ｄ），外部回路１１１は，受信した乱数出力９ｄの値について上記調整処理を実行し，調整後の結果値を設定値１０ｄとしてサンプリングクロック周波数設定レジスタ１０９に出力する。これによって，サンプリングクロック周波数設定値１１に設定される値が設定値１０ｂから設定値１０ｄに変更することになる。
【００８１】
上記乱数出力９ｄが乱数出力レジスタ１０５から外部回路１１１に伝送され（Ｓ４０１ｄ），外部回路からサンプリングクロック周波数設定レジスタ１０９に設定値１０ｄが出力されると，４回目の乱数生成処理の一連の動作は終了する。
【００８２】
なお，４回目以降の第２の実施の形態にかかる乱数生成処理の動作については，上記１回目から４回目に説明したのとほぼ同様であるため，詳細な説明は省略する。
【００８３】
以上から，第２の実施の形態にかかる乱数生成処理によれば，外部回路１１１は，調整処理された設定値１０を，乱数生成処理の偶数回目の場合に出力し，奇数回目の場合には出力せずに，交互に出力することから，連続して設定値１０を出力するよりも，より相関関係が生じにくくなり，乱数出力９の値を推測することを困難とならしめることが可能となる。
【００８４】
なお，第２の実施の形態にかかる乱数生成処理では，外部回路１１１から設定値１０が出力されるのは，乱数生成処理が偶数回目の場合を例に挙げて説明したが，かかる例に限定されず，例えば，設定値１０は，乱数生成処理が奇数回目の場合，外部回路１１１から出力されても実施可能である。
【００８５】
第２の実施の形態にかかる乱数生成処理では，外部回路１１１から設定値１０の出力する／出力しないを，交互に切り替える場合に限定されず，外部回路１１１からの設定値１０の出力は，いかなる出力パターンの場合であっても実施することができる。例えば，外部回路１１１からの設定値１０の出力が，乱数生成処理の１回目，２回目，５回目，１０回目，…の場合，設定値が出力されても実施することができる。
【００８６】
さらに，第２の実施の形態にかかる乱数生成処理では，乱数出力レジスタ１０５から出力された乱数出力９は，毎回少なくとも乱数として活用されていたが，かかる例に限定されない。例えば，乱数出力９は，外部回路１１１に伝送されても，乱数として活用されない場合は，ただ単に削除されるか，または設定値１０のみ出力される場合でも実施することができる。また，乱数出力９の外部回路１１１への出力によって，乱数として活用されるか設定値１０として出力されるかの双方のいずれかの場合でも実施することができる。
【００８７】
次に，図５を参照しながら，第３の実施の形態にかかる真性乱数生成装置について説明する。図５は，第３の実施の形態にかかる真性乱数生成装置の概略的な回路構成を示すブロック図である。なお，以降の説明では，第３の実施の形態にかかる真性乱数生成装置と，第２の実施の形態にかかる真性乱数生成装置とは同様の構成部分が多いため，双方の相違点について詳細に説明する。
【００８８】
図５に示すように，第３の実施の形態にかかる真性乱数生成装置は，発信器１０１（１０１ａ，１０１ｂ，・・・，１０１ｎ）と，乱数出力レジスタ１０５と，サンプリングクロック生成回路１０７と，サンプリングクロック周波数設定レジスタ１０９と，外部回路１１１とから少なくとも構成される。
【００８９】
図５に示すように，第３の実施の形態にかかる真性乱数生成装置は，第２の実施の形態にかかる真性乱数生成装置と比較すると，複数の発信器１０１（１０１ａ，１０１ｂ，・・・，１０１ｎ）を備えている点で相違している。
【００９０】
図５に示す各発信器１０１は，“０”又は“１”の値を出力するクロックを出力することから，乱数出力レジスタ１０５に出力されるカウントソース５は，発信器１０１の個数と同じだけの桁数からなる。
【００９１】
したがって，乱数出力レジスタ１０５によってサンプリングされる乱数出力９は桁数が複数ビットからなることから，第３の実施にかかる真性乱数生成装置は，一度に複数ビットからなる真性乱数を生成することができる。
【００９２】
次に，図６を参照しながら，第４の実施の形態にかかる真性乱数生成装置について説明する。図６は，第４の実施の形態にかかる真性乱数生成装置の概略的な回路構成を示すブロック図である。なお，第４の実施の形態にかかる真性乱数生成装置と，第２の実施の形態にかかる真性乱数生成装置とは同様の構成部分が多いため，双方の相違点について詳細に説明する。
【００９３】
図６に示すように，第４の実施の形態にかかる真性乱数生成装置は，発信器１０１と，乱数出力レジスタ１０５と，サンプリングクロック生成回路１０７と，サンプリングクロック周波数設定レジスタ１０９と，外部回路１１１と，カウンタ１１３とから少なくとも構成される。
【００９４】
図６に示すように，第４の実施の形態にかかる真性乱数生成装置は，第２の実施の形態にかかる真性乱数生成装置と比較すると，カウンタ１１３を備えている点で相違している。
【００９５】
カウンタ１１３は，発信器１０１から出力されるカウントソース５に同期して動作するカウント可能なカウンタである。つまり，カウンタ１１３は，上記カウントソース５を桁数が複数ビットの範囲で，順次カウントアップする。
【００９６】
したがって，カウンタ１１３から出力されるカウント出力６には，カウンタ１１３によってカウントされた桁数が複数ビットからなる値が含まれている。なお，カウンタ１１３がカウント可能な値は，桁数が１又は２以上のビット数であれば，いかなるビット数の場合であっても実施できる。なお，本実施の形態にかかるカウント出力６は，例えば，刻々と変動する変動値などに該当する。
【００９７】
したがって，乱数出力レジスタ１０５によってサンプリングされる乱数出力９は複数ビットから構成されることから，第４の実施にかかる真性乱数生成装置は，一度に複数ビットからなる真性乱数を生成することができる。
【００９８】
上記説明した第３の実施の形態にかかる真性乱数生成装置と，第４の実施の形態にかかる真性乱数生成装置とは，乱数出力レジスタ１０５によって，一度に複数ビットの桁数からなる乱数出力９をサンプリングすることができる点については共通する。
【００９９】
しかしながら，第４の実施の形態にかかる真性乱数生成装置には，発信器１０１（１０１ａ，１０１ｂ，・・・，１０１ｎ）を備えず，１つの発信器１０１と，カウンタ１１３とを備えている点で，第３の実施の形態にかかる真性乱数生成装置とは相違する。
【０１００】
第４の実施の形態にかかる真性乱数生成装置は，複数の発信器１０１（１０１ａ，１０１ｂ，・・・，１０１ｎ）を備える必要がないため，機器を備えるスペースを第３の実施の形態にかかる真性乱数生成装置よりも省略することができ，小型化を図れる。
【０１０１】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明はかかる例に限定されない。当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例を想定し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１０２】
上記実施形態においては，発信器１０１，乱数出力レジスタ１０５，外部回路１１１，サンプリングクロック周波数設定レジスタ１０９，サンプリングクロック生成回路１０７，またはカウンタ１１３が，回路等のハードウェアから構成される場合を例にあげて説明したが，本発明はかかる例に限定されない。例えば，上記発信器１０１，乱数出力レジスタ１０５，外部回路１１１，サンプリングクロック周波数設定レジスタ１０９，サンプリングクロック生成回路１０７，もしくはカウンタ１１３のうち少なくとも一つ又は任意の組み合わせが，１又は２以上のモジュール又はコンポーネントからなるコンピュータプログラムで実現される場合であっても実施することができる。
【産業上の利用可能性】
【０１０３】
本発明は，本発明は乱数を生成する真性乱数生成装置または真性乱数生成方法に適用可能である。
【図面の簡単な説明】
【０１０４】
【図１】第１の実施の形態にかかる真性乱数生成装置の回路構成の概略を示すブロック図である。
【図２】第１の実施の形態にかかる乱数生成処理の概要を示すフローチャートである。
【図３】第２の実施の形態にかかる真性乱数生成装置の回路構成の概略を示すブロック図である。
【図４】第２の実施の形態にかかる乱数生成処理の概要を示す説明図である。
【図５】第３の実施の形態にかかる真性乱数生成装置の概略的な回路構成を示すブロック図である。
【図６】第４の実施の形態にかかる真性乱数生成装置の概略的な回路構成を示すブロック図である。
【符号の説明】
【０１０５】
５      カウントソース
６      カウント出力
７      システムクロック
８      サンプリングクロック
９      乱数出力
１０      設定値
１１      サンプリングクロック周波数設定値１１
１０１      発信器
１０５      乱数出力レジスタ
１０７      サンプリングクロック生成回路
１０９      サンプリングクロック周波数設定レジスタ
１１１      外部回路
１１３      カウンタ
【図１】
2005174206.tif 000003
【図２】
2005174206.tif 000004
【図３】
2005174206.tif 000005
【図４】
2005174206.tif 000006
【図５】
2005174206.tif 000007
【図６】
2005174206.tif 000008