JP4195007B2 - 乱数生成装置及び乱数生成方法 - Google Patents

乱数生成装置及び乱数生成方法 Download PDF

Info

Publication number
JP4195007B2
JP4195007B2 JP2004528826A JP2004528826A JP4195007B2 JP 4195007 B2 JP4195007 B2 JP 4195007B2 JP 2004528826 A JP2004528826 A JP 2004528826A JP 2004528826 A JP2004528826 A JP 2004528826A JP 4195007 B2 JP4195007 B2 JP 4195007B2
Authority
JP
Japan
Prior art keywords
random
pulse
noise
random number
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2004528826A
Other languages
English (en)
Other versions
JPWO2004017191A1 (ja
Inventor
威 齊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsui and Co Ltd
L E Tech CO Ltd
Original Assignee
Mitsui and Co Ltd
L E Tech CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsui and Co Ltd, L E Tech CO Ltd filed Critical Mitsui and Co Ltd
Publication of JPWO2004017191A1 publication Critical patent/JPWO2004017191A1/ja
Application granted granted Critical
Publication of JP4195007B2 publication Critical patent/JP4195007B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Manipulation Of Pulses (AREA)

Description

本発明は、抵抗体、半導体、もしくは導体等からなる熱雑音発生素子がランダムに発生する熱雑音、あるいはLEDやPINダイオード等の発光素子がランダムに発生する光の雑音などに基づいて物理乱数を生成する乱数生成装置及び乱数生成方法に関する。
自然現象に基づいて物理乱数を取り出す方法の一つに、抵抗、ダイオード等の半導体、あるいは導体を熱雑音発生素子として用いる方法が知られている。熱雑音発生素子において発生する熱雑音は、発生頻度、振幅ともにランダムなので、この熱雑音に基づいて物理乱数を取り出すことができる。このような熱雑音発生素子を利用した各種の乱数生成装置は、多数の文献において開示されている。
熱雑音発生素子を用いて物理乱数を生成するもっとも一般的な方法は、ある瞬間に熱雑音発生素子が出力する熱雑音を増幅してサンプリングし、その値をある閾値と比較して乱数を取り出す方法である。すなわち、熱雑音発生素子から出力され、増幅された熱雑音を一定周期でサンプリングし、そのサンプリングされた値がある閾値を超えていれば「1」、超えていなければ「0」というルールを設定しておくことによって、物理乱数をディジタル的に取り出すことができる。
熱雑音発生素子を用いて物理乱数を生成する他の方法として、ランダムに発生する熱雑音が、ある閾値を超えてから次にその閾値を超えるまでの時間間隔を測定し、その時間計測値をそのまま乱数値として取り出す方法が知られている。この方法による乱数生成装置の一例が、日本の特許公報である特開2001−134422号公報において説明されている。
この乱数生成装置では、熱雑音発生素子から出力される熱雑音を増幅し、このその波高がある閾値を超える瞬間に立ち上がる方形パルスを生成する回路を構成し、これとは別にこのパルスよりも十分に周波数が高いクロックを生成する回路及びクロックをカウントするカウンタを設け、一つのパルスが発生してから次のパルスが発生するまでの間に生成されるクロックをカウンタでカウントし、このカウント値を乱数として取り出す。ただし、カウンタのビット数(nビットとする)は有限のため、2回カウントするとカウンタはリセットされ、再び1からカウントを始めるので、実際に取り出される乱数値の種類は2個である。この方法は、熱雑音のパルス一発当たりにnビットの乱数が生成されるので、熱雑音を瞬間的にサンプリングする方法に比べ、高速に乱数を生成することができる。
しかしながら、時間間隔を計測する方法では、計測時間が指数関数分布を示すことから、計測時間に基づいて得られる乱数値には、わずかながら出現頻度に不均一を生じる。この程度の不均一はこれまでは無視されてきたが、より良好な乱数を取り出すためには、かかる不均一を解消することが望ましい。
また、単位時間当たりに取り出す乱数の数を多くしようとすると、すなわち乱数を高速に発生させようとすると、熱雑音に基づく連続するパルスが時間的に近づいて発生する頻度が高くなる。この場合、増幅回路の周波数特性などに起因してこれらのパルスを回路的に識別することができないことがある。このため、カウンタのカウント動作が一巡する前の小さい値の出現頻度がやや小さくなり、このことも出現頻度を不均一にする原因の一つとなっている。
本発明は、このような技術的背景のもとになされたものであり、簡易な回路構成でありながら、より高速に乱数を生成するとともに、各値の出現頻度を均一化することができる乱数生成装置及び乱数生成方法を提供することを目的とする。
上記の課題を解決すべくなされた本発明に係る乱数生成装置は、雑音発生素子と、雑音発生素子において発生した雑音に基づく波形を増幅する増幅手段と、前記増幅手段より出力される信号が所定の閾値より低い状態から当該閾値を上回った時点又は当該閾値より高い状態から当該閾値を下回った時点においてランダムパルスを生成するランダムパルス生成手段と、一定周期を有する基準パルスを生成する基準パルス発生手段と、前記基準パルスと前記ランダムパルスとの間の時間間隔を計測する計時手段とを含んで構成され、前記計時手段による計測値を乱数値として出力する。
ここで、前記計時手段は、前記基準パルスよりも高い周波数のクロック信号を発生するクロック信号発生手段と、前記クロック信号のクロック数をカウントするカウント手段とを含んで構成され、前記基準パルスと前記ランダムパルスとの間のクロック数をカウントしたカウント値を計測値とする。
さらに、上記の課題を解決すべくなされた本発明に係る乱数生成装置は、雑音発生素子と、雑音発生素子において発生した雑音に基づく波形を増幅する増幅手段と、前記増幅手段より出力される信号が所定の閾値より低い状態から当該閾値を上回った時点において第一のランダムパルスを生成する第一のランダムパルス生成手段と、前記増幅手段より出力される信号が所定の閾値より高い状態から当該閾値を下回った時点において第二のランダムパルスを生成する第二のランダムパルス生成手段と、一定周期を有する基準パルスを生成する基準パルス発生手段と、前記基準パルスよりも高い周波数のクロック信号を発生するクロック信号発生手段と、前記クロック信号のクロック数を互いに逆の方向にカウントする第一及び第二のカウント手段と、排他的論理和演算を行う演算手段とを含んで構成され、前記第一のカウント手段は前記基準パルスと前記第一のランダムパルスとの間のクロック数をカウントし、前記第二のカウント手段は前記基準パルスと前記第二のランダムパルスとの間のクロック数をカウントし、前記演算手段は、第一のタウンと手段と第二のカウント手段の対応する桁の値について排他的論理和演算を行い、その演算結果を乱数として出力する。
上述の乱数生成装置を複数設け、それぞれから生成される乱数を一括して一つの乱数とすることができ、これにより乱数生成速度を高速化することができる。
前記雑音発生素子は熱雑音発生素子又は発光素子とすることができ、熱雑音発生素子の場合は熱雑音に基づいて、発光素子の場合は光の雑音に基づいて、乱数を生成することができる。
図1は、本発明の実施形態に係る乱数生成回路のブロック図である。
図2は、熱雑音発生素子10の両端に生じる熱雑音による微小な電位変動の波形を模式的に示した図(A)、増幅器12によって増幅された熱雑音の波形を模式的に示した図(B)、そして、ランダムパルス生成器14aから出力されるランダムパルスの波形を模式的に示した図(C)である。
図3は、図1の上段のA型乱数生成部8aにおける各部の波形を説明するための図である。
図4は、熱雑音に基づくパルスの平均発生数が毎秒約10万個である乱数生成装置を用いて、その乱数の発生数を10秒間にわたってカウントする実験を連続して13万5千回繰り返した実験結果を示した図である。
図5は、熱雑音に基づくパルスの平均発生数が毎秒約1万個である乱数生成装置を用いて、一つの基準パルスからランダムパルスまでの時間をクロックパルスのカウント数として測定した実験の結果を示したグラフである。
図6は、図1の乱数生成回路を用いて実際に乱数を生成する実験を行って得られた乱数の分布をとった結果を示した図である。
図7は、図1に示した乱数生成回路を多数段連結し、それぞれの乱数生成装置から得られる乱数値を一括して一つの乱数値として出力する乱数生成回路を示した図である。
以下に、図面を参照しながら本発明の実施の一形態について説明する。図1は、本実施形態の乱数生成回路のブロック図を示している。図1の乱数生成回路は、8a、8bという二つの乱数生成部からなり(前者をA型乱数生成部、後者をB型乱数生成部とする)、これらが単一の熱雑音発生素子10に基づいて、それぞれ乱数を生成する。以下では、各乱数生成部を構成する回路要素を含めて、A型とB型を区別する必要がないときは添字a、bを省略し、単に乱数生成部8等と記す。なお、各乱数生成部ごとに個別に熱雑音発生素子10を設けてもよい。
図1のブロック図において、熱雑音発生素子10は、熱雑音に基づいてパルス状の電位変動を出力する素子であり、通常は抵抗が熱雑音発生素子として用いられることが多い。熱雑音の発生はランダムな現象であることが、一般に認められている。図1の回路では、熱雑音発生素子10の両端に電圧を印加していないが、これは外部から印加される電圧が熱雑音発生素子の両端間の電位変動に影響を与えて物理乱数の真性を損なうことを排除するためである。
符号12a、12bは熱雑音発生素子10において発生する熱雑音を増幅する増幅器を、符号14a、14bは熱雑音に基づいてランダムパルスを生成するランダムパルス生成器を、符号20a、20bはクロックパルスを生成するクロックパルス生成器を、符号16a、16bはクロックパルスをカウントするカウンタを、符号18a、18bはそれぞれカウンタ16a、16bのカウント動作をトリガーする基準パルス生成器をそれぞれ示している。なお、クロックパルス生成器20aと20bは、図1のように別々のものを設けるのではなく、単一のクロックパルス生成器としてもよい。
図2(A)は、熱雑音発生素子10の両端に生じる熱雑音による微小な電位変動の波形を模式的に示している。同図に示すように、各熱雑音は、その時間幅も発生頻度もランダムである。実際には、この電位変動は極めて微小であるため、増幅する前の波形をこのような形で観測することはできない。
図1のブロック図において、増幅器12は、熱雑音発生素子10の両端に生じる熱雑音を増幅する。前述のように熱雑音は微小な電位変動であるため、必要な増幅度を得るために、例えば前置増幅回路と主増幅回路というように、増幅器12を必要に応じて複数段の増幅回路から構成することもできる。
図2(B)は、増幅器12によって増幅された熱雑音の波形を模式的に示している。実際の増幅回路には周波数特性や増幅度の制約があるため、熱雑音に基づく波形を忠実に増幅することはできない。増幅回路の出力では、増幅可能な周波数帯域を超えるほど素速い電位変動や極めて微小な変動などはキャンセルされる。また、増幅回路から出力される熱雑音に基づくパルスの幅は、増幅回路に固有の時定数によって影響を受ける。したがって、図2(B)に示した波形は、このような増幅回路の回路特性の影響を受けて得られたものである。こうして得られた図2(B)のパルスの平均的な持続時間は、同図に示すように、200ナノ秒程度である。
図1のブロック図において、ランダムパルス生成器14は、ランダムに発生する熱雑音から、予め閾値を設定しておき、増幅器12の出力がこの閾値を超えたときに、一定時間幅のパルス(「ランダムパルス」という)を取り出す回路である。一般に、この閾値が高いと、得られるランダムパルスの数は少なくなり、生成できる乱数の速度は低下する、熱雑音以外のノイズなどの影響を排除する効果は高くなる。一方、この閾値が低いと、得られるランダムパルスの数は多くなり、乱数の生成速度は高速になるが、乱数の真性に影響を与えるノイズを拾いやすくなる。このため、閾値をどこに設定するかは、実際のアプリケーションを考慮して決められる。
ランダムパルス生成器14のうち、14aは、熱雑音に基づく波形が所定の閾値を超えた時点で立ち上がるランダムパルスを生成する。一方、14bは、熱雑音に基づく波形が所定の閾値よりも高い状態からこの閾値を下回った時点で立ち上がるランダムパルスを生成する。ランダムパルス生成器14aと14bの閾値は、同じであってもよいし異なっていてもよい。
図2(C)は、ランダムパルス生成器14aから出力されるランダムパルスの波形を模式的に示している。同図に示すように、生成されるランダムパルスは、いずれもそのパルス幅が10ナノ秒となるようランダムパルス生成器14a、14bを構成してある。これらのランダムパルスは熱雑音に基づくものであるが、熱雑音に基づく信号に回路的な処理を加えて得られるものであることから、このランダムパルスの発生頻度が本当にランダムであるかどうかを別途検証する必要がある。
図1のブロック図において、基準パルス発生器18a、18bから生成される基準パルスは、それぞれ、カウンタ16a、16bがカウント動作を開始するためのトリガーパルスとなる。ここでは、カウンタ16a、16bをいずれも4ビット・カウンタとして説明する。クロックパルス生成器20a、20bは、基準パルス生成器18a、18bが生成する基準パルスよりも十分に高い周波数(例えば300倍程度)のクロックパルスを常時生成している。カウンタ16aは順方向カウンタであり、一つのクロックパルスが入来するごとに1ずつインクリメントされる。一方、カウンタ16bは逆方向カウンタであり、クロックパルスが入来するごとに1ずつデクリメントされる。そして、いずれのカウンタも、4ビット分(すなわち16まで)カウントとするごとにリセットされ、再び最初からカウントする。
このように、一対の基準パルス発生器18a、18bと、順方向カウンタ16a及び逆方向カウンタ16bを設けた点が、本実施形態の乱数生成回路の一つの特徴である。
ここで、ランダムパルスの平均発生数を毎秒約1万とすると、ランダムパルスとランダムパルスの平均的な時間間隔は約100マイクロ秒である。この場合、基準パルス生成器18a、18bは、周期がこの100マイクロ秒と同程度となる周波数で基準パルスを生成する。また、カウンタ16a、16bは、ここでは4ビット・カウンタとして説明するが、これは一例であり、例えば8ビット・カウンタ、16ビット・カウンタ等であってもよい。
図3は、図1の上段のA型乱数生成部8aにおける各部の波形、すなわち、基準パルス発生器18aから生成される基準パルス(A)、ランダムパルス生成器14aから生成されるランダムパルス(B)、クロックパルス生成器20aから生成されるクロックパルス(C)、そしてカウンタ16aによってカウントされるクロックパルスのカウント値(D)の間の関係を説明するための図である。なお、下段の乱数生成部8bについても同様に考えることができるので、ここでは乱数生成部8bについては波形の図示を省略した。
図3(A)において、基準パルス発生器18aから基準パルス30が生成されると、カウンタ16aはクロックパルスのカウント動作を開始する。続いて、ランダムパルス生成器14aにおいて熱雑音に起因するランダムパルス32が生成され、これがカウンタ16aに入来すると、カウンタ16aはカウント動作を停止する。この間に発生したクロックパルスのパルス数が「19」だったとすると、4ビット・カウンタ16のカウント値は、「19」を「16(=2)」で割った余りである「3」となる。
また、基準パルス30が生成されるとカウンタ16aはクロックパルスのカウント動作を開始する。しかし、次の基準パルス30が生成されるまでにランダムパルスが入来しない場合は、カウンタ16aはカウント動作を継続し、その後にランダムパルス32が入来した時点でカウント動作を停止する。この間に発生したクロックパルスのパルス数が「853」だったとすると、4ビット・カウンタ16aのカウント値は、「853」を「16(=2)」で割った余りである「5」となる。
さらに、基準パルス30が生成されてからランダムパルス32が生成されるまでのクロックパルス数が「6」だったとすると、4ビット・カウンタ16aのカウント値は、「6」を「16(=2)」で割った余りである「6」となる。同様に、基準パルス30が生成されてからランダムパルス32が生成されるまでのクロックパルス数が「120」だったとすると、4ビット・カウンタ16aのカウント値は、「120」を「16(=2)」で割った余りである「8」となる。
ここで、図3(D)に示した4ビット・カウンタ16aのカウント値である「3」、「5」、「6」、「8」が、そのまま乱数値となっている点が注目される。同様に、下段の乱数生成部8bの逆方向カウンタである4ビット・カウンタ16bのカウント値も、それがそのまま乱数値となる。しかも、両カウンタのカウント値として得られる乱数値はそれぞれ独立しており、互いに依存関係はない。したがって、単一の熱雑音発生素子からの熱雑音波形の1周期の間に2個の乱数値が得られる。
このようにして得られた乱数がどの程度真の乱数であるかを検証する方法について説明する。得られた乱数が真の乱数であること確かめるには、一定時間にわたって集積した各値の分布がポアッソン分布に従うことを示せばよいことが数学的に知られている。あるいは、個体数が多いときにはポアッソン分布はガウス分布で近似でき、本実施形態のように個体数が非常に多い場合には、得られた値の分布がガウス分布に従うことを示せばよい。
図4は、熱雑音に基づくパルスの平均発生数が毎秒約10万個である乱数生成装置を用いて、その乱数の発生数を10秒間にわたってカウントする実験(すなわち平均計測数は約100万個となる)を連続して13万5千回繰り返した実験結果を示している。図の一つひとつの黒のドットが実験値をプロットしたものである。一方、図4に実線で示した曲線は、偏差σ=1,025を持つガウス分布を示している。なお、図4の縦軸の頻度の目盛りは対数である点に注意する。
図4を見ると分かるように、黒のドットは、ガウス分布を示す曲線上によく乗っており、したがって偏差σは、
σ=N1/2=1,025
となっている。このことから、ランダムな現象である熱雑音に基づいて、それに回路的な処理を施しても、ここで得られる乱数が非常によい乱数であることが示されたことになる。
また、本実施形態のように、基準パルスとランダムパルスとの間の時間を計測し、その計測結果を取り出したものが真の乱数になっているとすれば、その時間間隔の分布は指数関数分布となることが数学的に知られている。図5は、熱雑音に基づくパルスの平均発生数が毎秒約1万個である乱数生成装置を用いて、一つの基準パルスからランダムパルスまでの時間を、クロックパルスのカウント数として測定した実験結果を示したグラフである。同図に示した一つひとつのドットが、時間間隔の頻度を示している。図5の場合も、頻度を示す縦軸の目盛りは対数である。
図5の実験結果から、時間間隔の頻度を示すドットは明らかに直線となっていおり、図5の縦軸が対数であることから、乱数の発生頻度の分布は指数関数的に減少している。このことから、熱雑音に基づいて本実施形態の乱数生成装置によって生成した乱数は、真の乱数であることが分かる。
なお、図5に示すような指数分布は、exp(−t/T)に比例する分布として表すことができる。ここで、横軸のtは時間間隔であり、Tは熱雑音と熱雑音の時間間隔の平均値である。熱雑音の平均発生数が約1万であるから、T〜(1/10,000)=100μ秒である。この平均時間間隔Tを図5に矢印で示す。
ところで、熱雑音と熱雑音の間の時間間隔が、図5に示すように指数関数分布を示すということは、この時間を計測した値を乱数として用いた場合に、それぞれの乱数の出現頻度が完全には均一でなく、わずかではあるが、大きい値ほど出現しにくいことになる。実際の乱数生成装置では、図5の横軸のうち、時間間隔ゼロから僅かに数マイクロ秒程度の極めて短い時間間隔の範囲のみを乱数生成に用いているので、乱数値の出現頻度の不均一さは極めて小さい。
上記のように、本発明では基準パルスを導入し、この基準パルスからランダムパルスまでの時間を計測し、その計測値をそのまま乱数として取り出している。このように基準パルスを導入すると、以下のような利点がある。
前述のように増幅回路12から出力される熱雑音に基づくパルスの幅は200ナノ秒程度である。このパルス幅は、少なくとも部分的には増幅回路12の高周波特性に依存する。この場合(図2(B)参照)、基準パルスを導入せずにランダムパルスから次のランダムパルスまでの時間を計測してこれを乱数値として出力すると、熱雑音に基づくパルスが200ナノ秒程度の短時間の間に連続して起こったような場合には、両者を区別することができない。その結果、カウンタが一巡してリセットされる前の例えば「0」、「1」、「2」等の小さい値は、取り出すことができない。もちろん、カウンタがリセットされれば最初からカウントし直すのでこれらの値が全く出現しないわけではないが、その出現頻度が他の値に比べて小さくなることは避けられない。すなわち、乱数の値の出現頻度に不均一が生じることになる。
これに対して、本発明のように一定の周期で発生する基準パルスを導入し、これをカウンタがカウント動作を開始するトリガーパルスとして用いることにより、ある基準パルスとその後に発生するランダムパルスとの時間間隔が、200ナノ秒よりも相当程度短くても、その時間間隔を計測することができる。このためカウンタが一巡してリセットされる前の「0」、[1]、「2」等の小さい値であっても取り出すことができるようになる。これは、言い換えると、等価的に増幅回路12の高周波特性が改善されたことを意味する。これにより、乱数の値、特に小さい値の出現頻度の不均一さが改善される。
さらに、図1に示した乱数生成回路には、排他的論理和回路22を設けてある。この排他的論理和回路22は、順方向カウンタ16aと逆方向カウンタ16bの対応する桁同士の排他的論理和をとり、得られた4ビットの値を乱数値として取り出す。例えば一桁目を考えると、カウンタ16aの一桁目の値が「0」でカウンタ16bの一桁目の値も「0」であれば、排他的論理和をとった結果は「1」となり、カウンタ16aの一桁目の値が「1」でカウンタ16bの一桁目の値も「1」であれば、排他的論理和をとった結果は「1」となる。一方、カウンタ16aの一桁目とカウンタ16bの一桁目の一方が「0」で他方が「1」であれば、排他的論理和をとった結果は「0」となる。他の桁についても同様である。
このように、順方向カウンタ16aと逆方向カウンタ16bの対応する桁同士の排他的論理和をとったものを最終的な乱数値とすることによって、以下のような効果が得られる。
図6は、図1の乱数生成回路を用いて実際に乱数を生成する実験を行って得られた乱数の分布をとった結果を示している。図6の実験では、クロック周波数Fが100MHz、ランダムパルスの生成数Nが毎秒約100,000個の乱数生成装置を用いている。図6(a)は、順方向カウンタ16aの各カウント値の出現頻度の分布を示している。これを見ると分かるように、僅かではあるが明らかに右肩下がりの分布を示し、値が大きくなるほど出現頻度が低下している。この傾きは、理論上は−N/F=−0.001である。図6の縦軸が常用対数であることに注意し、縦軸の値の常用対数をとって実際に図6(a)の傾き求めると、−0.001030となり、理論とよく合っていることが分かる。
図6(b)は、逆方向カウンタ16bの各カウント値の出現頻度の分布を示している。これを見ると分かるように、僅かではあるが明らかに右肩上がりの分布を示している。すなわち4ビットのカウント値は、値が大きくなるほど出現頻度が上昇している。この傾きは、理論上はN/F=0.001であり、実際に図6(b)の傾き求めると0.001094となり、理論とよく合っていることが分かる。
図6(c)は、順方向カウンタ16aと逆方向カウンタ16bそれぞれのカウント値の対応する桁同士について排他的論理和演算を行って得られる値の分布を示している。これを見ると分かるように、分布はほぼ水平である。すなわち、この排他的論理和演算の結果得られる4ビットの乱数値は、出現頻度が均一化されたほぼ完全な乱数と考えることができる。
図7は、図1に示した乱数生成回路を多数段連結し、それぞれの乱数生成回路から得られる乱数値を一括して一つの乱数値として出力する乱数生成回路を示している。図7において、8a、8a、…、8aはA型乱数生成部、8b、8b、…8bはB型乱数生成部である。また、22、22、…222nは排他的論理和回路である。符号24は、乱数値を取り出し方を制御する乱数制御回路である。
図7のように、単一の乱数生成回路を多数段連結すれば、それだけ乱数生成速度を高速化することができる。この場合、図6(c)に示すように、一つの乱数生成回路の乱数値の出現頻度が均一化されているが、これらを多数段連結した場合には、得られる高速乱数はより均一性を持つ。したがって、図1に示す乱数生成回路は、これを多数段連結して乱数生成速度を高速化する場合に、物理乱数の完全性を維持することができるという利点がある。
なお、本発明は上記の実施形態には限定されず、請求の範囲に記載した発明の要旨の範囲内において種々の変更が可能であり、これらも本発明の技術的範囲に含まれる。
例えば、上記の実施形態では、基準パルスをカウンタ16a、16bのカウント動作を開始するトリガーパルスとし、ランダムパルスが入来した時点でカウント動作を終了するように構成したが、逆にランダムパルスをカウント動作開始のトリガーパルスとし、基準パルスが入来した時点でカウント動作を終了するように構成しても同様の効果が得られる。また、上記の実施形態では、カウンタ16aと16bの対応する桁同士の排他的論理和をとった値を最終的な乱数値として出力したが、カウンタ16a、16bのカウント値をそのまま最終的な乱数値として出力することも可能である。
さらに、上記の実施形態では、熱雑音発生素子からの熱雑音に基づいて物理乱数を生成する場合について説明したが、本発明はこれ以外にも、例えばLEDやPINダイオード等の発光素子からランダムに発せられる光の雑音に基づいて、その雑音パルス間の時間間隔を測定し、これに基づいて物理乱数を生成する場合にも適用可能である。
本発明は、熱雑音発生素子がランダムに発生する熱雑音や、発光素子がランダムに発する光の雑音に基づいて物理乱数を取り出すので、簡単な回路構成で物理乱数を生成することができる。また、本発明によって乱数生成速度の高速化及び乱数値の出現頻度の均一化が達成される。乱数を利用した各種のシミュレーション、例えば金融派生商品(デリバティブ)、建造物の強度シミュレーション、天気予報、シミュレーションを利用した高度な遊技機等に好適に適用できる。

Claims (9)

  1. 雑音発生素子と、
    雑音発生素子において発生した雑音に基づく波形を増幅する増幅手段と、
    前記増幅手段より出力される信号が所定の閾値より低い状態から当該閾値を上回った時点又は当該閾値より高い状態から当該閾値を下回った時点においてランダムパルスを生成するランダムパルス生成手段と、
    一定周期を有する基準パルスを生成する基準パルス発生手段と
    前記基準パルスが入ってから前記ランダムパルスが入るまでの時間間隔又は前記ランダムパルスが入ってから前記基準パルスが入るまでの時間間隔を計測する計時手段とを含み、
    前記計時手段による計測値を乱数値として出力することを特徴とする乱数生成装置。
  2. 前記計時手段は、前記基準パルスよりも高い周波数のクロック信号を発生するクロック信号発生手段と、前記クロック信号のクロック数をカウントするカウント手段とを含み、前記基準パルスと前記ランダムパルスとの間のクロック数をカウントしたカウント値を計測値とするものである請求項1に記載の乱数生成装置。
  3. 雑音発生素子と、
    雑音発生素子において発生した雑音に基づく波形を増幅する増幅手段と、
    前記増幅手段より出力される信号が所定の閾値より低い状態から当該閾値を上回った時点において第一のランダムパルスを生成する第一のランダムパルス生成手段と、
    前記増幅手段より出力される信号が所定の閾値より高い状態から当該閾値を下回った時点において第二のランダムパルスを生成する第二のランダムパルス生成手段と、
    一定周期を有する基準パルスを生成する基準パルス発生手段と
    前記基準パルスよりも高い周波数のクロック信号を発生するクロック信号発生手段と、
    前記クロック信号のクロック数を互いに逆の方向にカウントする第一及び第二のカウント手段と、
    排他的論理和演算を行う演算手段とを含み、
    前記第一のカウント手段は前記基準パルスと前記第一のランダムパルスとの間のクロック数をカウントし、前記第二のカウント手段は前記基準パルスと前記第二のランダムパルスとの間のクロック数をカウントし、前記演算手段は、第一のカウント手段と第二のカウント手段の対応する桁の値について排他的論理和演算を行い、その演算結果を乱数として出力することを特徴とする乱数生成装置。
  4. 請求項1乃至3に記載の乱数生成装置を複数設け、それぞれから生成される乱数を同時に出力する乱数生成装置。
  5. 前記雑音発生素子は熱雑音発生素子であり、前記雑音は熱雑音である、請求項1乃至4のうちいずれか一項に記載の乱数生成装置。
  6. 前記雑音発生素子は発光素子であり、前記雑音は光に基づく雑音である、請求項1乃至4のうちいずれか一項に記載の乱数生成装置。
  7. 雑音発生素子における雑音の発生に基づいてランダムパルスを生成する工程と、
    一定周期を有する基準パルスを生成する工程と
    前記基準パルスが入ってから前記ランダムパルスが入るまでの時間間隔又は前記ランダムパルスが入ってから前記基準パルスが入るまでの時間間隔を計測し、その計測値を乱数値として出力する工程とを含むことを特徴とする乱数生成方法。
  8. 前記雑音発生素子は熱雑音発生素子であり、前記雑音は熱雑音である、請求項7に記載の乱数生成方法。
  9. 前記雑音発生素子は発光素子であり、前記雑音は光に基づく雑音である、請求項7に記載の乱数生成方法。
JP2004528826A 2002-08-14 2003-02-04 乱数生成装置及び乱数生成方法 Expired - Lifetime JP4195007B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002236689 2002-08-14
JP2002236689 2002-08-14
PCT/JP2003/001100 WO2004017191A1 (ja) 2002-08-14 2003-02-04 乱数生成装置及び乱数生成方法

Publications (2)

Publication Number Publication Date
JPWO2004017191A1 JPWO2004017191A1 (ja) 2005-12-08
JP4195007B2 true JP4195007B2 (ja) 2008-12-10

Family

ID=31884421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004528826A Expired - Lifetime JP4195007B2 (ja) 2002-08-14 2003-02-04 乱数生成装置及び乱数生成方法

Country Status (5)

Country Link
US (1) US8234322B2 (ja)
EP (1) EP1544726B1 (ja)
JP (1) JP4195007B2 (ja)
AU (1) AU2003285742A1 (ja)
WO (1) WO2004017191A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1755033B1 (en) * 2004-05-24 2013-12-11 Leisure Electronics Technology Co., Ltd. Random number extraction method and random number generation device using the same
TWI408903B (zh) * 2004-06-30 2013-09-11 Noriyoshi Tsuyuzaki 隨機脈衝產生源及半導體裝置、使用該源產生隨機數及/或機率之方法與程式
ATE404914T1 (de) 2006-02-15 2008-08-15 Jaycrypto Ltd Verfahren und vorrichtung zum erzeugen von initialwerten für einen zufallszahlengenerator
GB0603523D0 (en) 2006-02-22 2006-04-05 Qinetiq Ltd Apparatus and method for generating random numbers
JP4678335B2 (ja) * 2006-05-30 2011-04-27 Fdk株式会社 物理乱数生成装置
JP2009054075A (ja) * 2007-08-29 2009-03-12 Osamu Kameda 乱数の生成システム及び方法
US8583712B2 (en) 2007-09-18 2013-11-12 Seagate Technology Llc Multi-bit sampling of oscillator jitter for random number generation
JP5295651B2 (ja) * 2008-06-13 2013-09-18 株式会社東芝 乱数生成装置
JP5794741B2 (ja) * 2009-11-25 2015-10-14 アクララ・テクノロジーズ・リミテッド・ライアビリティ・カンパニーAclara Technologies LLC. 乱数発生器
US8762439B2 (en) * 2011-04-14 2014-06-24 Apple Inc. System and method for random number generation using asynchronous boundaries and phase locked loops
US9477443B1 (en) 2013-06-06 2016-10-25 Tectrolabs L.L.C. Method and apparatus of entropy source with multiple hardware random noise sources and continuous self-diagnostic logic
WO2014200326A1 (en) * 2013-06-11 2014-12-18 Mimos Berhad Device and method for outputting random data
US10367645B2 (en) * 2016-10-26 2019-07-30 International Business Machines Corporation Proof-of-work for smart contracts on a blockchain
KR102372740B1 (ko) * 2019-04-09 2022-03-14 한국전자통신연구원 난수 생성 장치 및 이의 동작 방법
KR20200144192A (ko) * 2019-06-17 2020-12-29 한국전자통신연구원 난수 생성 장치 및 이의 동작 방법
US10901695B1 (en) * 2020-03-03 2021-01-26 Randaemon Sp. Z O.O. Apparatus, systems, and methods for beta decay based true random number generator
US12055655B2 (en) * 2021-06-24 2024-08-06 Intel Corporation Signal-to-noise ratio range consistency check for radar ghost target detection
CN114123977B (zh) * 2021-11-26 2022-11-29 南京鼓楼医院 一种基于可控断裂结的白噪声发生方法
CN117149136B (zh) * 2023-10-30 2024-03-29 华中师范大学 一种产生随机电报噪声的方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB841287A (en) * 1957-03-15 1960-07-13 Her Majesty S Postmaster Cener Improvements in or relating to random number indicating equipment
US3124753A (en) * 1961-08-21 1964-03-10 Methpuira
US3612845A (en) * 1968-07-05 1971-10-12 Reed C Lawlor Computer utilizing random pulse trains
JPS5178159A (ja) * 1974-12-28 1976-07-07 Fuji Heavy Ind Ltd
JPS51128239A (en) * 1975-04-30 1976-11-09 Nec Corp Random-digital-pattern generating system
JPS5745645A (en) * 1980-08-29 1982-03-15 Matsushita Electric Ind Co Ltd Random number generator
JPH11296348A (ja) * 1998-04-07 1999-10-29 Takeshi Saito 自然乱数およびハイブリッド乱数生成装置
WO2000038037A1 (en) * 1998-12-18 2000-06-29 The Regents Of The University Of California A RANDOM NUMBER GENERATOR BASED ON THE SPONTANEOUS α-DECAY
JP2000276329A (ja) * 1999-03-26 2000-10-06 Takeshi Saito 超高速物理乱数生成装置
JP2000305753A (ja) * 1999-04-16 2000-11-02 Takeshi Saito 物理乱数生成装置
JP3480822B2 (ja) * 1999-11-02 2003-12-22 斎藤 威 熱雑音ランダムパルス発生装置及び乱数生成装置
US6763363B1 (en) * 1999-12-02 2004-07-13 Honeywell International Inc. Computer efficient linear feedback shift register
JP4521708B2 (ja) * 2001-03-12 2010-08-11 ルネサスエレクトロニクス株式会社 乱数生成装置
JP4467216B2 (ja) * 2001-09-07 2010-05-26 Necエレクトロニクス株式会社 乱数発生方法及び装置
US6963888B2 (en) * 2001-11-29 2005-11-08 Koninklijke Philips Electronics N.V. Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability
WO2004008290A2 (en) * 2002-07-16 2004-01-22 Ruth, Michael A system and method for providing corporate governance-related services
US20040107124A1 (en) * 2003-09-24 2004-06-03 James Sharpe Software Method for Regulatory Compliance

Also Published As

Publication number Publication date
WO2004017191A1 (ja) 2004-02-26
EP1544726A1 (en) 2005-06-22
EP1544726B1 (en) 2012-08-22
EP1544726A4 (en) 2007-10-03
AU2003285742A1 (en) 2004-03-03
US8234322B2 (en) 2012-07-31
JPWO2004017191A1 (ja) 2005-12-08
AU2003285742A8 (en) 2004-03-03
US20050198091A1 (en) 2005-09-08

Similar Documents

Publication Publication Date Title
JP4195007B2 (ja) 乱数生成装置及び乱数生成方法
JP4486961B2 (ja) 乱数取出し方法及びこれを用いた乱数生成装置
US7080106B2 (en) Random number generating method and random number generating device
JP3480822B2 (ja) 熱雑音ランダムパルス発生装置及び乱数生成装置
US8471750B2 (en) System and method for compressive sensing
US20100332575A1 (en) High-Speed Random Number Generator
KR102372740B1 (ko) 난수 생성 장치 및 이의 동작 방법
US7266575B2 (en) Random number generator which can generate a random number based on an uniform distribution
US20130191427A1 (en) Pseudo-noise generator
JPH11160432A (ja) 光パルスレーダ装置及び光パルス受光装置
JP4837549B2 (ja) 物理乱数発生器および物理乱数発生装置
CN114123977A (zh) 一种基于可控断裂结的白噪声发生方法
US9866780B1 (en) Pixel information recovery by oversampling a comparison of pixel data and a noise signal
KR100512477B1 (ko) 전자회로 잡음을 이용한 난수발생 방법 및 장치
JP6381452B2 (ja) ジッタ分離装置
JP2002261844A (ja) 回線品質監視装置及び回線品質監視方法
JP3479719B2 (ja) 光線路測定装置
JP2003014786A (ja) トリガ信号生成装置
CN116388959A (zh) 基于汉明重量的故障攻击的能力测试方法及系统
SU857960A1 (ru) Генератор случайных чисел
CN110568468A (zh) 一种辐射脉冲计数突变算法
JPS59178033A (ja) 中継器の立ち上がり特性の検出方式
JP2001075782A (ja) 半導体物理乱数生成装置
JP2004286547A (ja) 信号周期計測装置
JPH0547073B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080820

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080916

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080924

R150 Certificate of patent or registration of utility model

Ref document number: 4195007

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141003

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term