JP4195007B2 - 乱数生成装置及び乱数生成方法 - Google Patents
乱数生成装置及び乱数生成方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random 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
熱雑音発生素子を用いて物理乱数を生成するもっとも一般的な方法は、ある瞬間に熱雑音発生素子が出力する熱雑音を増幅してサンプリングし、その値をある閾値と比較して乱数を取り出す方法である。すなわち、熱雑音発生素子から出力され、増幅された熱雑音を一定周期でサンプリングし、そのサンプリングされた値がある閾値を超えていれば「1」、超えていなければ「0」というルールを設定しておくことによって、物理乱数をディジタル的に取り出すことができる。
熱雑音発生素子を用いて物理乱数を生成する他の方法として、ランダムに発生する熱雑音が、ある閾値を超えてから次にその閾値を超えるまでの時間間隔を測定し、その時間計測値をそのまま乱数値として取り出す方法が知られている。この方法による乱数生成装置の一例が、日本の特許公報である特開2001−134422号公報において説明されている。
この乱数生成装置では、熱雑音発生素子から出力される熱雑音を増幅し、このその波高がある閾値を超える瞬間に立ち上がる方形パルスを生成する回路を構成し、これとは別にこのパルスよりも十分に周波数が高いクロックを生成する回路及びクロックをカウントするカウンタを設け、一つのパルスが発生してから次のパルスが発生するまでの間に生成されるクロックをカウンタでカウントし、このカウント値を乱数として取り出す。ただし、カウンタのビット数(nビットとする)は有限のため、2n回カウントするとカウンタはリセットされ、再び1からカウントを始めるので、実際に取り出される乱数値の種類は2n個である。この方法は、熱雑音のパルス一発当たりにnビットの乱数が生成されるので、熱雑音を瞬間的にサンプリングする方法に比べ、高速に乱数を生成することができる。
しかしながら、時間間隔を計測する方法では、計測時間が指数関数分布を示すことから、計測時間に基づいて得られる乱数値には、わずかながら出現頻度に不均一を生じる。この程度の不均一はこれまでは無視されてきたが、より良好な乱数を取り出すためには、かかる不均一を解消することが望ましい。
また、単位時間当たりに取り出す乱数の数を多くしようとすると、すなわち乱数を高速に発生させようとすると、熱雑音に基づく連続するパルスが時間的に近づいて発生する頻度が高くなる。この場合、増幅回路の周波数特性などに起因してこれらのパルスを回路的に識別することができないことがある。このため、カウンタのカウント動作が一巡する前の小さい値の出現頻度がやや小さくなり、このことも出現頻度を不均一にする原因の一つとなっている。
本発明は、このような技術的背景のもとになされたものであり、簡易な回路構成でありながら、より高速に乱数を生成するとともに、各値の出現頻度を均一化することができる乱数生成装置及び乱数生成方法を提供することを目的とする。
ここで、前記計時手段は、前記基準パルスよりも高い周波数のクロック信号を発生するクロック信号発生手段と、前記クロック信号のクロック数をカウントするカウント手段とを含んで構成され、前記基準パルスと前記ランダムパルスとの間のクロック数をカウントしたカウント値を計測値とする。
さらに、上記の課題を解決すべくなされた本発明に係る乱数生成装置は、雑音発生素子と、雑音発生素子において発生した雑音に基づく波形を増幅する増幅手段と、前記増幅手段より出力される信号が所定の閾値より低い状態から当該閾値を上回った時点において第一のランダムパルスを生成する第一のランダムパルス生成手段と、前記増幅手段より出力される信号が所定の閾値より高い状態から当該閾値を下回った時点において第二のランダムパルスを生成する第二のランダムパルス生成手段と、一定周期を有する基準パルスを生成する基準パルス発生手段と、前記基準パルスよりも高い周波数のクロック信号を発生するクロック信号発生手段と、前記クロック信号のクロック数を互いに逆の方向にカウントする第一及び第二のカウント手段と、排他的論理和演算を行う演算手段とを含んで構成され、前記第一のカウント手段は前記基準パルスと前記第一のランダムパルスとの間のクロック数をカウントし、前記第二のカウント手段は前記基準パルスと前記第二のランダムパルスとの間のクロック数をカウントし、前記演算手段は、第一のタウンと手段と第二のカウント手段の対応する桁の値について排他的論理和演算を行い、その演算結果を乱数として出力する。
上述の乱数生成装置を複数設け、それぞれから生成される乱数を一括して一つの乱数とすることができ、これにより乱数生成速度を高速化することができる。
前記雑音発生素子は熱雑音発生素子又は発光素子とすることができ、熱雑音発生素子の場合は熱雑音に基づいて、発光素子の場合は光の雑音に基づいて、乱数を生成することができる。
図2は、熱雑音発生素子10の両端に生じる熱雑音による微小な電位変動の波形を模式的に示した図(A)、増幅器12によって増幅された熱雑音の波形を模式的に示した図(B)、そして、ランダムパルス生成器14aから出力されるランダムパルスの波形を模式的に示した図(C)である。
図3は、図1の上段のA型乱数生成部8aにおける各部の波形を説明するための図である。
図4は、熱雑音に基づくパルスの平均発生数が毎秒約10万個である乱数生成装置を用いて、その乱数の発生数を10秒間にわたってカウントする実験を連続して13万5千回繰り返した実験結果を示した図である。
図5は、熱雑音に基づくパルスの平均発生数が毎秒約1万個である乱数生成装置を用いて、一つの基準パルスからランダムパルスまでの時間をクロックパルスのカウント数として測定した実験の結果を示したグラフである。
図6は、図1の乱数生成回路を用いて実際に乱数を生成する実験を行って得られた乱数の分布をとった結果を示した図である。
図7は、図1に示した乱数生成回路を多数段連結し、それぞれの乱数生成装置から得られる乱数値を一括して一つの乱数値として出力する乱数生成回路を示した図である。
図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から基準パルス301が生成されると、カウンタ16aはクロックパルスのカウント動作を開始する。続いて、ランダムパルス生成器14aにおいて熱雑音に起因するランダムパルス321が生成され、これがカウンタ16aに入来すると、カウンタ16aはカウント動作を停止する。この間に発生したクロックパルスのパルス数が「19」だったとすると、4ビット・カウンタ16のカウント値は、「19」を「16(=24)」で割った余りである「3」となる。
また、基準パルス302が生成されるとカウンタ16aはクロックパルスのカウント動作を開始する。しかし、次の基準パルス303が生成されるまでにランダムパルスが入来しない場合は、カウンタ16aはカウント動作を継続し、その後にランダムパルス322が入来した時点でカウント動作を停止する。この間に発生したクロックパルスのパルス数が「853」だったとすると、4ビット・カウンタ16aのカウント値は、「853」を「16(=24)」で割った余りである「5」となる。
さらに、基準パルス304が生成されてからランダムパルス323が生成されるまでのクロックパルス数が「6」だったとすると、4ビット・カウンタ16aのカウント値は、「6」を「16(=24)」で割った余りである「6」となる。同様に、基準パルス305が生成されてからランダムパルス324が生成されるまでのクロックパルス数が「120」だったとすると、4ビット・カウンタ16aのカウント値は、「120」を「16(=24)」で割った余りである「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/T0)に比例する分布として表すことができる。ここで、横軸のtは時間間隔であり、T0は熱雑音と熱雑音の時間間隔の平均値である。熱雑音の平均発生数が約1万であるから、T0〜(1/10,000)=100μ秒である。この平均時間間隔T0を図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において、8a1、8a2、…、8anはA型乱数生成部、8b1、8b2、…8bnはB型乱数生成部である。また、221、222、…222nは排他的論理和回路である。符号24は、乱数値を取り出し方を制御する乱数制御回路である。
図7のように、単一の乱数生成回路を多数段連結すれば、それだけ乱数生成速度を高速化することができる。この場合、図6(c)に示すように、一つの乱数生成回路の乱数値の出現頻度が均一化されているが、これらを多数段連結した場合には、得られる高速乱数はより均一性を持つ。したがって、図1に示す乱数生成回路は、これを多数段連結して乱数生成速度を高速化する場合に、物理乱数の完全性を維持することができるという利点がある。
なお、本発明は上記の実施形態には限定されず、請求の範囲に記載した発明の要旨の範囲内において種々の変更が可能であり、これらも本発明の技術的範囲に含まれる。
例えば、上記の実施形態では、基準パルスをカウンタ16a、16bのカウント動作を開始するトリガーパルスとし、ランダムパルスが入来した時点でカウント動作を終了するように構成したが、逆にランダムパルスをカウント動作開始のトリガーパルスとし、基準パルスが入来した時点でカウント動作を終了するように構成しても同様の効果が得られる。また、上記の実施形態では、カウンタ16aと16bの対応する桁同士の排他的論理和をとった値を最終的な乱数値として出力したが、カウンタ16a、16bのカウント値をそのまま最終的な乱数値として出力することも可能である。
さらに、上記の実施形態では、熱雑音発生素子からの熱雑音に基づいて物理乱数を生成する場合について説明したが、本発明はこれ以外にも、例えばLEDやPINダイオード等の発光素子からランダムに発せられる光の雑音に基づいて、その雑音パルス間の時間間隔を測定し、これに基づいて物理乱数を生成する場合にも適用可能である。
Claims (9)
- 雑音発生素子と、
雑音発生素子において発生した雑音に基づく波形を増幅する増幅手段と、
前記増幅手段より出力される信号が所定の閾値より低い状態から当該閾値を上回った時点又は当該閾値より高い状態から当該閾値を下回った時点においてランダムパルスを生成するランダムパルス生成手段と、
一定周期を有する基準パルスを生成する基準パルス発生手段と、
前記基準パルスが入ってから前記ランダムパルスが入るまでの時間間隔又は前記ランダムパルスが入ってから前記基準パルスが入るまでの時間間隔を計測する計時手段とを含み、
前記計時手段による計測値を乱数値として出力することを特徴とする乱数生成装置。 - 前記計時手段は、前記基準パルスよりも高い周波数のクロック信号を発生するクロック信号発生手段と、前記クロック信号のクロック数をカウントするカウント手段とを含み、前記基準パルスと前記ランダムパルスとの間のクロック数をカウントしたカウント値を計測値とするものである請求項1に記載の乱数生成装置。
- 雑音発生素子と、
雑音発生素子において発生した雑音に基づく波形を増幅する増幅手段と、
前記増幅手段より出力される信号が所定の閾値より低い状態から当該閾値を上回った時点において第一のランダムパルスを生成する第一のランダムパルス生成手段と、
前記増幅手段より出力される信号が所定の閾値より高い状態から当該閾値を下回った時点において第二のランダムパルスを生成する第二のランダムパルス生成手段と、
一定周期を有する基準パルスを生成する基準パルス発生手段と、
前記基準パルスよりも高い周波数のクロック信号を発生するクロック信号発生手段と、
前記クロック信号のクロック数を互いに逆の方向にカウントする第一及び第二のカウント手段と、
排他的論理和演算を行う演算手段とを含み、
前記第一のカウント手段は前記基準パルスと前記第一のランダムパルスとの間のクロック数をカウントし、前記第二のカウント手段は前記基準パルスと前記第二のランダムパルスとの間のクロック数をカウントし、前記演算手段は、第一のカウント手段と第二のカウント手段の対応する桁の値について排他的論理和演算を行い、その演算結果を乱数として出力することを特徴とする乱数生成装置。 - 請求項1乃至3に記載の乱数生成装置を複数設け、それぞれから生成される乱数を同時に出力する乱数生成装置。
- 前記雑音発生素子は熱雑音発生素子であり、前記雑音は熱雑音である、請求項1乃至4のうちいずれか一項に記載の乱数生成装置。
- 前記雑音発生素子は発光素子であり、前記雑音は光に基づく雑音である、請求項1乃至4のうちいずれか一項に記載の乱数生成装置。
- 雑音発生素子における雑音の発生に基づいてランダムパルスを生成する工程と、
一定周期を有する基準パルスを生成する工程と、
前記基準パルスが入ってから前記ランダムパルスが入るまでの時間間隔又は前記ランダムパルスが入ってから前記基準パルスが入るまでの時間間隔を計測し、その計測値を乱数値として出力する工程とを含むことを特徴とする乱数生成方法。 - 前記雑音発生素子は熱雑音発生素子であり、前記雑音は熱雑音である、請求項7に記載の乱数生成方法。
- 前記雑音発生素子は発光素子であり、前記雑音は光に基づく雑音である、請求項7に記載の乱数生成方法。
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)
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)
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 |
-
2003
- 2003-02-04 WO PCT/JP2003/001100 patent/WO2004017191A1/ja active Application Filing
- 2003-02-04 JP JP2004528826A patent/JP4195007B2/ja not_active Expired - Lifetime
- 2003-02-04 AU AU2003285742A patent/AU2003285742A1/en not_active Abandoned
- 2003-02-04 EP EP03788003A patent/EP1544726B1/en not_active Expired - Lifetime
-
2005
- 2005-02-14 US US11/058,725 patent/US8234322B2/en not_active Expired - Fee Related
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 |