(57)【特許請求の範囲】
【請求項１】
ノイズ源と、
前記ノイズ源からランダムな信号を発生する回路と、
所定の周期で時間とともに電圧が単調増加する出力波形を発生させる回路と、
前記ランダムな信号が発生したことを検出して、前回に前記ランダムな信号が発生した時点の電圧値を前記出力波形から取得する電圧値取得回路と、
前記電圧値をデジタル値に変換して乱数値として出力する回路と、
を備えた乱数発生装置。
【請求項２】
前記出力波形は、鋸歯状波又は対数カーブであることを特徴とする請求項１に記載の乱数発生装置。
【請求項３】
前記出力波形を発生させる回路は、前記電圧値取得回路がランダムな信号を検出したことに呼応して前記出力波形を再び初期状態から発生する、請求項１または２に記載の乱数発生装置。
【請求項４】
ノイズ源から発生したランダムな信号を検出する処理と、
所定の周期で時間とともに電圧が単調増加する出力波形を発生させる波形発生処理と、
前記ランダムな信号が発生した時点の電圧値を前記出力波形から取得する電圧値取得処理と、
前記電圧値をＡ／Ｄ変換して乱数値として出力する処理と、
を含む乱数発生方法。
【請求項５】
前記出力波形は、鋸歯状波又は対数カーブであることを特徴とする請求項４に記載の乱数発生方法。
【請求項６】
前記電圧値取得処理は、ランダムな信号を検出すると、前記出力波形の生成を初期状態から繰り返す指令としてのリセット信号を前記波形発生処理に対して出力する、請求項４または５に記載の乱数発生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、雑音源等から生じるランダムパルス信号を利用した技術に関し、特に、自然乱数を生成するための乱数発生装置及び乱数発生方法に係るものである。
【背景技術】
【０００２】
近年、ゲーム機器をはじめとする様々な装置、或いは実験計画や暗号鍵の生成における処理のために乱数が多用されるようになった。乱数の生成は、しばしば、コンピュータを用いたソフトウェア処理で行われる。しかし、ソフトウェアによる乱数の生成は、厳密な不規則性を備えた真の乱数という観点からみると限界がある。一方、例えば、抵抗、ダイオード等の半導体、あるいは導体の熱雑音発生源から発生するホワイトノイズを利用して得たランダムパルスを基に乱数を生成することもでき、この場合は真正乱数とみなせることが知られている。
【０００３】
いま、熱雑音発生源からのランダムパルスを時間軸上で連続させた場合で、所定の閾値を超えるパルス（以下、「サンプリングパルス」と称する。）を検出したときを独立な事象が生じた時点とすれば、この独立な事象間の生起間隔は指数分布に従うことがわかっている。つまり、サンプリングパルス間の時間間隔が表す値は、指数分布に従う自然乱数とみなすことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記サンプリングパルス間の時間間隔、すなわち、前回のサンプリングパルス発生時を開始時刻として次に生起したサンプリングパルスまでの時間間隔（ｔ）は、計時手段を使って計測される。この計時手段は、一般に、サンプリングパルスよりも高い周波数のクロック信号を発生するクロック信号発生手段と、前記クロック信号のクロック回数をカウントするカウント手段（カウンタ）とを含んで構成され、サンプリングパルス間でカウントされたクロック数を基にサンプリングパルス間の時間間隔（ｔ）を計測する。図５は、サンプリングパルス間の時間間隔をカウンタで計測して、そのカウント値を乱数値１、乱数値２、乱数値３、…とするものである。
【０００５】
しかしながら、上述したようなカウンタにより計測された時間間隔は、例えば８ビットカウンタであれば０〜２５５までの整数値であらわされ、本来は連続量として表現される時間（ｔ）をカウンタの離散的な値で近似的に表現していることになる。もちろん、カウンタのビット数を増やして離散値としてとりうる値の範囲を広げれば、量子化の精度は向上するが、デジタルデータであることには変わりない。
【０００６】
そこで、本発明は、物理現象に基づいて独立に発生する事象から、時間間隔の計測以外の方法で真正乱数値を発生させることを目的とする。
【課題を解決するための手段】
【０００７】
前記目的を達成するために、本発明による乱数発生装置は、ノイズ源と、前記ノイズ源からランダムな信号を発生する回路と、所定の周期で時間とともに電圧が単調増加する出力波形を発生させる回路と、前記ランダムな信号が発生したことを検出して、前回に前記ランダムな信号が発生した時点の電圧値を前記出力波形から取得する電圧値取得回路と、前記電圧値をデジタル値に変換して乱数値として出力する回路とを備えることを特徴とする。
また、本発明の乱数発生装置による出力波形は鋸歯状波又は対数カーブであり、さらに、出力波形を発生させる回路は前記電圧値取得回路がランダムな信号を検出したことに呼応して前記出力波形を再び初期状態から発生することを特徴とする。
【０００８】
前記目的を達成するために、本発明による乱数発生方法は、ノイズ源から発生したランダムな信号を検出する処理と、所定の周期で時間とともに電圧が単調増加する出力波形を発生させる波形発生処理と、前記ランダムな信号が発生した時点の電圧値を前記出力波形から取得する電圧値取得処理と、前記電圧値をＡ／Ｄ変換して乱数値として出力する処理とを含むことを特徴とする。
また、本発明の乱数発生方法による出力波形は鋸歯状波又は対数カーブであり、さらに、電圧値取得処理はランダムな信号を検出すると前記出力波形の生成を初期状態から繰り返す指令としてのリセット信号を前記波形発生処理に対して出力することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、物理現象に基づいて独立に発生する事象から、所定の周期内で時間とともに電圧が単調増加する電圧波形における電圧値を基に乱数値を決定するので、カウンタによる計測手段が不要となる。このため、カウンタ分解能の影響を受けずに乱数値を生成することが可能となり高精度な乱数値を発生することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施形態について説明する。図１は、乱数発生のために鋸歯状波発生回路からの鋸歯状波を利用して、各サンプリングパルス発生時の電圧値を計測する場合を説明するための図である。サンプリングパルスをａ，ｂ，ｃ，ｄ…で示している。熱雑音発生源等から発生するランダムパルスそのものであることは勿論、多数のランダムパルスのうち、例えば、正負の符号を無視した絶対量としての大きさが所定の閾値よりも大きなものだけをフィルタリングして残ったものが図に示した上記のサンプリングパルスである。本発明は、従来のように各サンプリングパルス間においてクロック数が何回であったかのカウントを計測する方法を採用しない。具体的には図１に示すように、あるサンプリングパルス（例えば、ａ）を鋸歯状波の周期の開始時点にあわせて（このとき、電圧値を０に設定しておく。）、次のサンプリングパルス（ｂ）を検出した時点の電圧値（Ｖb）を計測する。鋸歯状波発生回路における電圧値は、Ａ／Ｄ変換などを行い数値化することで乱数値とすることができる。図１の場合、サンプリングパルス（ｂ）が発生したタイミングで電圧値（Ｖb）を乱数値として得ることができる。なお、図１に示す鋸歯状波の横軸は時間を、縦軸は電圧値を示している。
【００１１】
さらに、次のサンプリングパルスが発生したタイミングでの電圧値を計測するために、サンプリングパルス（ｂ）の電圧値（Ｖb）を計測した時点でその電圧値を０に戻し、その後にサンプリングパルスｃを検出すると、そのときの電圧値（Ｖc）を計測する。すると、この電圧値（Ｖc）を乱数値として得ることができる。この処理を、サンプリングパルスを検出するたび繰り返していけばカウンタを用いずにサンプリングパルス発生時の電圧値を計測することが可能となる。
【００１２】
なお、鋸歯状波発生回路は、一定の周期で鋸歯状波の電圧増加をリセットし、再び所定の最大電圧値になるまで時間とともに電圧増加を繰り返して、連続した鋸歯状波を形成するものだが、例えば図１に示すようにサンプリングパルスｅ〜ｆとの時間間隔が鋸歯状波の周期よりも長くなることがある。この場合、鋸歯状波発生回路所定は所定の最大電圧値に到達後にリセット処理を行い、２回目以降の周期で次のサンプリングパルス（ｆ）の検出を行うようにすればよい。鋸歯状波の周期の設定は、熱雑音発生源の種類等からのサンプリングパルスの発生レートに応じて適切な値に設定すればよく、好ましくは、例えば、サンプリングパルスの単位時間あたりの平均発生回数よりも大きめに設定する。また、後述するＡ／Ｄコンバータの分解能にあわせて適当な周期を設定することも可能であり、結果としてサンプリングパルスを確実に検出することが望まれる。
【００１３】
上述の鋸歯状波の利用に基づいて電圧値から乱数値を得る乱数発生装置１００の一実施例を図２に示す。乱数発生装置１００は、ランダムパルス発生回路１、電圧値取得回路２、鋸歯状波発生回路３、Ａ／Ｄコンバータ４、乱数値格納回路５、入出力回路６を含む構成である。なお、乱数発生装置１００は、本発明の内容を説明するための一例であってこれらに限定することものではなく、且つ本発明の技術思想を変更又は逸脱しない範囲の変更を含むものとする。
【００１４】
ランダムパルス発生回路１は、熱雑音などの熱音源からランダムなパルスを発生する回路である。なお、図２では特に明示していないが、このランダムパルスの中から大きさが所定以上のものを抽出してサンプリングパルスを生成するフィルタリング機能をランダムパルス発生回路１に備えたり、或いはランダムパルス発生回路１とは別個にサンプリングパルス生成回路を設けるように構成される。ランダムパルス発生回路１（又はサンプリングパルス生成回路）から得られたサンプリングパルスは電圧値取得回路２に入力される。
【００１５】
鋸歯状波発生回路３は、所定の周期で図１に示したような鋸歯状波を発生する回路である。周期内において時間と電圧値が比例関係で対応することから、電圧値の計測によって経過時間を識別することができる。電圧値取得回路２は、ランダムパルス発生回路１（又はサンプリングパルス生成回路）から入力されたサンプリングパルスを受けた時に、鋸歯状波発生回路３が発生する鋸歯状波の電圧値を取得し、この電圧値をＡ／Ｄコンバータ４に出力する。また、電圧値取得回路２は、電圧値の取得時に鋸歯状波発生回路３に対してリセット信号を出力し、これに呼応して鋸歯状波発生回路３は、鋸歯状波の発生を周期の初期状態に戻す。すなわち、鋸歯状波としての所定の最大電圧値になる前であっても電圧値を０にリセットして、再び所定の周期で鋸歯状波を発生する処理に戻る。
【００１６】
Ａ／Ｄコンバータ４は、電圧値取得回路２が取得したアナログとしての電圧値をデジタル値に変換して乱数値を決定し、これを乱数値格納回路５に出力する。乱数値格納回路５は、Ａ／Ｄコンバータ４から出力された各乱数値を格納する回路である。そして、入出力回路６は、外部からの要求に応じて乱数値格納回路５に記憶されている乱数値を読み出し、外部に出力する回路である。
【００１７】
本実施形態における鋸歯状波を利用した乱数発生装置１００によれば、計測した電圧値を直接乱数値とすることができるため、サンプリングパルス間の時間間隔（ｔ）を計測するためのカウンタ手段を無くすことができる。しかも、電圧値取得回路２から出力されるデータはアナログ値であるので、サンプリングパルス間の時間間隔（ｔ）を連続関数で表現した指数分布との親和性が高く、歪みの少ない指数分布を出力することが可能になる。その結果、この指数分布の結果を基に真正乱数性の検定を行う場合は、回路を簡略化しつつも、検定処理および検定精度を従来と較べて同等のものとすることができる。
【００１８】
次に、本発明の第２の実施形態について説明する。第２の実施形態は、上述した鋸歯状波の代りに対数カーブを使用する。図３が対数カーブを利用して電圧値を取得する乱数発生装置２００の一実施例を表した図である。図１の鋸歯状波発生回路３の代りに対数波形発生回路７を使用し、その他の回路については図１の場合と同様であるので説明を省略する。図４は、対数波形発生回路７によって対数カーブを生成したときの、サンプリングパルスとの関係をあらわした図である。図１の場合と同様にサンプリングパルスがａ，ｂ，ｃ，ｄ…で発生するとした場合の各時間間隔（ｔ）を対数カーブにおける電圧値で識別するものである。
【００１９】
例えば、あるサンプリングパルス（例えば、ａ）を対数カーブの周期の開始時点にあわせて（このとき、電圧値を０に設定しておく。）、次のサンプリングパルス（ｂ）を検出した時点の電圧値（Ｖ'b）を計測し、この電圧値を乱数値として取得する。対数波形発生回路７における電圧値は、所定の対数カーブの曲率に従って時間ともに増加する。図１に示す鋸歯状波のときと同様に、その後、次のサンプリングパルス（ｃ）発生時の電圧値を計測するために、サンプリングパルス（ｂ）の電圧値（Ｖ'b）を計測した時点でその電圧値を０に戻して、サンプリングパルス（ｃ）発生時の電圧値（Ｖ'c）を計測し、この電圧値を乱数値として取得する。この処理を、サンプリングパルスを検出するたび繰り返していけばカウンタを用いずに乱数値の取得が可能となる。
【００２０】
サンプリングパルス間の時間間隔を直接的に計測せずに、次のサンプリングパルスが到来したときの電圧値を計測して、この電圧値を乱数値として特定する基本概念は、鋸歯状波でも対数カーブでも同じである。したがって、本実施形態による効果としてカウンタ手段を無くすことができるという点において基本的には鋸歯状波を利用した場合と同様であるが、特に対数カーブを利用したときの特徴としては以下の点が挙げられる。
【００２１】
鋸歯状波を基にサンプリングパルス発生時の電圧値を計測した場合、その電圧値の分布が指数分布で表現されるということは、時間間隔（ｔ）が小さいものほど発生頻度が高いということを意味する。逆に言えば、鋸歯状波の周期が何度も繰り返して次のサンプリングパルスが到来するというようなサンプリングパルス間の時間間隔が長くなるようなケースは生じにくいことになる。ところで、実際の乱数の使用には、生成された乱数は真正であるか否かの検証が行われ、当該検証に合格した乱数のみが実用に供されるのだが、乱数検定の一項目として無規則性の評価がある。これは、ｉ番目の値とｊ番目の値に何の相関がないこと、即ち、所定の時間幅でみればすべての値がみな一様に平坦に出現しているというものであり、一様性の評価と言い換えられることができる。このため、例えば、熱雑音源から発生するパルス間の時間間隔を測定して得た乱数値に対して排他的論理和の演算処理を施すことによって、時間間隔（ｔ）のどれをとっても皆一様な確率を意味する平らな直線の分布に変換されるかどうかを検証する。鋸歯状波を利用した時間間隔の計測の場合は、この平らな直線が形成されるかの付加的な演算処理が必要になるのである。
【００２２】
一方、対数カーブで電圧値を計測してサンプリングパルス間の時間間隔（ｔ）を算出する場合、時間間隔（ｔ）は上述したような指数分布の特徴を呈さない。つまり、時間間隔（ｔ）が対数圧縮された値として出力されるので、サンプリングパルスが真正乱数であれば平らな直線の分布となる。これは、鋸歯状波の利用による時間間隔の計測で必要とされる付加的な演算処理を省略することとなり、直接、真正乱数としての検定の一項目を評価できるという効果を有している。
【００２３】
また、第１の実施形態又は第２の実施形態では、鋸歯状波あるいは対数カーブの曲線が発生する電圧値の最大値を乱数値の最大値とすることができるため、乱数の最大値を任意に設定することが容易である。
【００２４】
なお、上述した実施形態では、鋸歯状波又は対数カーブの出力波形から得られる電圧値を計測する例を説明したが、これらに限定されるものではない。電圧値が一定の周期内で一意的に対応づけられる任意の出力波形によって本発明の技術思想が実現されることは容易に理解されるものである。
【図面の簡単な説明】
【００２５】
【図１】本発明の乱数生成検定方法を実現する装置のブロック構成図である。
【図２】本発明の乱数生成検定方法の一本実施形態としての検定動作手順を示すフローチャートである。
【図３】本発明の乱数生成検定方法の一本実施形態としての検定動作手順を示すフローチャートであり、特に、タイマ処理に関するものである。
【図４】本発明の乱数生成検定方法を示すイメージ図である。
【図５】サンプリングパルス間の時間間隔をカウンタで計測した時の図である。
【符号の説明】
【００２６】
１      ランダムパルス発生回路
２      電圧値取得回路
３      鋸歯状波発生回路
４      Ａ／Ｄコンバータ
５      乱数値格納回路
６      入出力回路
７      対数カーブ発生回路
【図１】
0005090216.tif 000002
【図２】
0005090216.tif 000003
【図３】
0005090216.tif 000004
【図４】
0005090216.tif 000005
【図５】
0005090216.tif 000006