説明

乱数発生装置及び乱数発生方法

【課題】物理現象に基づいて独立に発生する事象から、時間間隔の計測以外の方法で真正乱数値を発生させることを目的とする。
【解決手段】ノイズ源からランダムな信号を発生する回路と、所定の周期で時間とともに電圧が単調増加する出力波形を発生させる回路と、前記ランダムな信号が発生したことを検出して、前回に前記ランダムな信号が発生した時点の電圧値を前記出力波形から取得する電圧値取得回路と、前記電圧値をデジタル値に変換して乱数値として出力する回路とを備えるので、所定の周期内で時間とともに電圧が単調増加する電圧波形における電圧値を基に乱数値を決定することが可能となり、カウンタによる計測手段がなくても乱数値を発生することができる。

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

【特許請求の範囲】
【請求項1】
ノイズ源と、
前記ノイズ源からランダムな信号を発生する回路と、
所定の周期で時間とともに電圧が単調増加する出力波形を発生させる回路と、
前記ランダムな信号が発生したことを検出して、前回に前記ランダムな信号が発生した時点の電圧値を前記出力波形から取得する電圧値取得回路と、
前記電圧値をデジタル値に変換して乱数値として出力する回路と、
を備えた乱数発生装置。
【請求項2】
前記出力波形は、鋸歯状波又は対数カーブであることを特徴とする請求項1に記載の乱数発生装置。
【請求項3】
前記出力波形を発生させる回路は、前記電圧値取得回路がランダムな信号を検出したことに呼応して前記出力波形を再び初期状態から発生する、請求項1または2に記載の乱数発生装置。
【請求項4】
ノイズ源から発生したランダムな信号を検出する処理と、
所定の周期で時間とともに電圧が単調増加する出力波形を発生させる波形発生処理と、
前記ランダムな信号が発生した時点の電圧値を前記出力波形から取得する電圧値取得処理と、
前記電圧値をA/D変換して乱数値として出力する処理と、
を含む乱数発生方法。
【請求項5】
前記出力波形は、鋸歯状波又は対数カーブであることを特徴とする請求項4に記載の乱数発生方法。
【請求項6】
前記電圧値取得処理は、ランダムな信号を検出すると、前記出力波形の生成を初期状態から繰り返す指令としてのリセット信号を前記波形発生処理に対して出力する、請求項4または5に記載の乱数発生方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−217513(P2009−217513A)
【公開日】平成21年9月24日(2009.9.24)
【国際特許分類】
【出願番号】特願2008−60101(P2008−60101)
【出願日】平成20年3月10日(2008.3.10)
【出願人】(591107481)株式会社エルイーテック (37)
【出願人】(501462686)株式会社アイ・エイ・エス総合研究所 (4)