JP4467216B2 - 乱数発生方法及び装置 - Google Patents

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

Info

Publication number
JP4467216B2
JP4467216B2 JP2001272538A JP2001272538A JP4467216B2 JP 4467216 B2 JP4467216 B2 JP 4467216B2 JP 2001272538 A JP2001272538 A JP 2001272538A JP 2001272538 A JP2001272538 A JP 2001272538A JP 4467216 B2 JP4467216 B2 JP 4467216B2
Authority
JP
Japan
Prior art keywords
pulse
random
random number
time interval
counter
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 - Fee Related
Application number
JP2001272538A
Other languages
English (en)
Other versions
JP2003084970A (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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2001272538A priority Critical patent/JP4467216B2/ja
Priority to EP02020004A priority patent/EP1293889A3/en
Priority to US10/234,337 priority patent/US7080106B2/en
Priority to CN02141649.4A priority patent/CN1212564C/zh
Publication of JP2003084970A publication Critical patent/JP2003084970A/ja
Application granted granted Critical
Publication of JP4467216B2 publication Critical patent/JP4467216B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Manipulation Of Pulses (AREA)
  • Pinball Game Machines (AREA)
  • Burglar Alarm Systems (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、熱雑音発生源からの熱雑音に基づいて自然乱数、あるいは物理乱数を生成する乱数発生方法及び装置に関する。
【0002】
【従来の技術】
自然界におけるランダムな事象を検出して乱数を生成する様々な装置や方法が、従来より提案されている。この種の装置として、例えば、原子核の崩壊を利用した乱数生成器があるが、放射線を扱うことによる装置固有の問題があるため、現在では、抵抗体やダイオード等から発せられる熱雑音を利用した乱数発生装置へと、その主流が移行している。
【0003】
熱雑音を利用して乱数を発生する装置としては、例えば、特開2001−134422号公報に記載の乱数生成装置がある。図9は、特開2001−134422号公報に開示された熱雑音物理乱数生成装置の構成を示すブロック図である。同図に示す熱雑音物理乱数生成装置100では、抵抗やダイオード等の熱雑音発生素子101から発生した熱雑音電圧が、アナログ増幅器である前置増幅器102、及び主増幅器103で増幅され、増幅後のアナログパルス信号の波高値を、波高弁別器104が閾値で選択する。
【0004】
このように選択されたパルスは、波形整形器105によって矩形波に整形され、かかる整形によって得られた矩形波は、時間計測器106に送られる。この時間計測器106は、時計パルス発生器107から発生されたクロックパルスをもとに、パルス間の時間間隔を計測し、所定ビット単位でパルス数を計測する。そして、計測されたビット数を乱数値として、乱数生成器108で取り出し、それらを乱数貯蔵器・コントローラ109に格納する。
【0005】
ところで、この種の乱数生成装置で用いる増幅器(例えば、上記の前置増幅器102、主増幅器103)が理想的な増幅を行うとした場合、入力の各瞬時値が独立であれば、その出力の瞬時値も独立となる。従って、その値を一定電圧と比較してパルスを生成した場合、そのパルス間隔は理想的にふるまう。この一定電圧が、増幅後の電圧値の実効値(RMS値)に比べて、十分に高い場合、増幅された熱雑音との比較から生成されるパルスの発生確率は、ポアソン分布に従い、それらのパルス間隔は、指数分布に従う。そして、この時間間隔をNビットのビットカウンタで測定すると、そのカウント値は、パルスの発生頻度やカウンタのクロック周波数、カウンタのビット数等が、ある一定の条件を満たす場合に、一様乱数となる。
【0006】
【発明が解決しようとする課題】
しかしながら、実際の増幅器や増幅回路では、応答時間が有限となることが不可避であり、その帯域も有限である。そのため、入力の各瞬時値が独立であっても、その出力の各瞬時値は独立とはならない。従って、増幅後の電圧を一定電圧と比較してパルスを生成した場合、前の電圧値に影響を受けた電圧値で比較が行われるため、パルス間隔は指数分布に従わず、本来の指数分布に従うパルスに加えて、不正なパルスがまとわりつく(換言すれば、不正なパルスが混入する)ようになる。
【0007】
図10の(a)は、増幅器が理想的であるとした場合の増幅後の信号波形を示しており、振幅の大きい電圧の山の直後に電圧の小さい山がくる様子を示している。この信号波形に対して、点線201で示す閾値を基準に振幅の大小を比較すると、それによって生成されるパルスは、同図の(b)に示すように、大きい電圧の山でのみパルス202が発生する。
【0008】
これに対して、実際の増幅器において、増幅後の信号波形が、前の電圧値を引きずるような場合、図11の(a)に示すように、大きい電圧の山の直後にある小さな山は、理想的な増幅の場合に比べて、大きくなる。従って、点線205で示す閾値を基準に振幅の大小比較を行っても、入力時には大きい電圧の山より小さい山であるにもかかわらず、それがパルス生成に関与してしまい、図11の(b)に示すような、本来望まれるパルス206以外の不正なパルス207が生成される。
【0009】
上述したように、図11の(a)に示す波形からランダムパルスを生成した場合、本来生成されるべきパルスに加えて、上述した不正パルスが混入してしまうため、乱数値の一様性が乱される。つまり、上記従来の熱雑音物理乱数生成装置では、増幅器の応答特性が乱数生成に影響を与えており、不正パルスの混入したパルスをそのまま使用して乱数を生成している。そのため、乱数コードの小さなものが、他のコードよりも多く出現してしまい、出力乱数の一様性が確保できないという問題がある。
【0010】
このように、出現する乱数コードに偏りがあることは、乱数発生装置としては、致命的な問題を抱えることになり、かかる乱数発生装置を、真の乱数を必要とする他の装置に搭載した場合、その装置では、所望の結果が得られないという、二次的な問題もある。
【0011】
この発明は、上述の事情に鑑みてなされたもので、雑音増幅時の回路応答によって発生する、乱数性への影響を排除して、一様乱数を発生する乱数発生方法及び装置を提供することを目的としている。
【0012】
また、この発明は、熱雑音源から得られたランダムパルスの内、正規のパルスのパルス時間間隔に基づいて乱数を発生させる乱数発生方法及び装置を提供することを目的としている。
【0013】
【課題を解決するための手段】
上記課題を解決するために、請求項1記載の発明は、熱雑音発生源からの熱雑音に基づいて乱数を発生させる乱数発生方法であって、上記熱雑音の電圧レベルを増幅するステップと、上記増幅された熱雑音の電圧レベルと基準電圧レベルとを比較してランダムパルスを生成するステップと、上記ランダムパルスのパルス間の時間間隔を計測するステップと、上記時間間隔が所定時間以内であれば、該所定時間内に発生した上記ランダムパルスを排除するステップと、上記時間間隔が上記所定時間を超えていれば、該所定時間を超えたパルス間の時間間隔に基づいて乱数を発生させるステップとを備えることを特徴としている。
【0014】
また、請求項2記載の発明は、請求項1記載の乱数発生方法に係り、上記時間間隔の計測は、上記ランダムパルスを受けて起動するカウンタのカウント数に基づいて行われ、該カウント数が一定値以内のときに発生したランダムパルスを排除することを特徴としている。
【0015】
請求項3記載の発明は、請求項2記載の乱数発生方法に係り、上記所定時間は、上記カウンタによる計数が一周するカウント数に対応していることを特徴としている。
【0016】
また、請求項5記載の発明は、熱雑音発生源からの熱雑音に基づいて乱数を発生させる乱数発生装置であって、上記熱雑音の電圧レベルを増幅する手段と、上記増幅された熱雑音の電圧レベルと基準電圧レベルとを比較してランダムパルスを生成する手段と、上記ランダムパルスのパルス間の時間間隔を計測する計測手段と、上記時間間隔が所定時間以内であれば、該所定時間以内に発生した上記ランダムパルスを排除し、上記時間間隔が該所定時間を超えていれば、上記ランダムパルスを通過させるパルス制御手段と、上記通過したランダムパルスのパルス間の時間間隔に基づいて乱数を発生させる手段とを備えることを特徴としている。
【0017】
請求項6記載の発明は、請求項5記載の乱数発生装置に係り、上記計測手段は、上記ランダムパルスによって起動するカウンタであり、該カウンタのカウント数に基づいて上記時間間隔の計測を行い、上記パルス制御手段は、該カウント数が一定値以内のときに発生したランダムパルスを排除することを特徴としている。
【0018】
請求項7記載の発明は、請求項6記載の乱数発生装置に係り、上記カウンタのカウント数は、該カウンタの構成ビット数に依存し、上記時間間隔の計測は、該カウンタの動作周波数に依存することを特徴としている。
【0019】
さらには、請求項8記載の発明は、請求項7記載の乱数発生装置に係り、上記所定時間は、上記カウンタによる計数が一周するカウント数に対応していることを特徴としている。
【0020】
【発明の実施の形態】
以下、図面を参照して、この発明の実施の形態について詳細に説明する。図1は、この発明の実施の形態に係る乱数発生装置の全体構成を示すブロック図である。同図に示す乱数発生装置10は、自然界の雑音を増幅し、増幅後の雑音の電圧値と一定電圧を比較することでランダムパルスを生成して、そのパルスの時間間隔を計測することにより乱数を発生する。その際、後述する方法によって、増幅時の回路応答が原因となって発生する乱数性への影響を取り除いて、一様乱数を発生させる。
【0021】
そこで、この実施の形態に係る乱数発生装置の具体的な構成、及び動作について説明する。図1に示すように、この実施の形態に係る乱数発生装置10は、熱雑音発生素子12、増幅器13、比較器14、及び基準電圧源15からなる、ランダムパルスの発生源としてのランダムパルス発生器11を有する。これらの構成要素の内、熱雑音発生素子12は、例えば、抵抗等の導体、ダイオード等の半導体素子であり、この熱雑音発生素子12から発生した熱雑音電圧V1(例えば、マイクロボルト・オーダーの電圧)が、増幅器13によって増幅され、雑音電圧V2として、比較器14へ入力される。
【0022】
なお、熱雑音発生素子12から発生する熱雑音は、不規則で周期性のない、広帯域な雑音(不規則性雑音、あるいは白色雑音ともいう)であるが、その発生現象(発生メカニズム)については公知であるため、ここでは、その説明を省略する。
【0023】
比較器14は、増幅後の雑音電圧V2と、基準電圧源15によって生成された一定電圧V4とを比較して、ランダムパルスV3を得る。すなわち、一定電圧V4を閾値として、雑音電圧V2が、この閾値を超えている場合に論理Highの信号を出力し、閾値以下であれば、論理Lowの信号を出力することで、ランダムパルスV3を生成している。また、波形整形器16は、クロック発生器19からのクロック信号V9(具体的な信号周波数については、後述する)を用いてランダムパルスV3を打ち直し、それを矩形波V5に整形する。このようにすることで、後段のカウンタにおけるカウント動作が容易になるようにしている。
【0024】
波形整形器16による整形で得られたパルス信号V5は、パルス制御器17を介して、カウンタ18に送られる。そして、カウンタ18は、パルス信号V5の所定パルス間の時間間隔を計測する。より具体的には、クロック発生器19からのクロック信号V9を受けて動作するカウンタ18は、パルス制御器17から送られてくるパルスVX1の立ち上がり部分でカウントを開始し、そのカウント数が一定値を超えているかどうかを判別する。
【0025】
上記の判別結果は、制御信号VX2として、カウンタ18からパルス制御器17へ送られる。パルス制御器17は、この制御信号VX2をもとに、カウンタ18によるカウント開始後の所定時間内に発生したパルスを遮断(無視、あるいは排除と同義)し、パルス時間間隔が所定の時間以上である場合のみ、カウンタ18にパルスVX1を送出する。パルスVX1を受けたカウンタ18は、このようにパルス制御器17を通過してきたパルス間の時間間隔をカウント値V6として求め、それを乱数生成器21に対して出力する。
【0026】
乱数生成器21は、入力されたカウント値V6から、乱数値として所望のビット数を取り出し、それを乱数値V7として、コントローラ・貯蔵器22に格納する。コントローラ・貯蔵器22は、不図示の制御部(例えば、マイクロプロセッサからなる中央制御装置(CPU))からの制御を受けて、乱数発生装置10の外部へ乱数値V8(自然乱数、あるいは物理乱数)を出力する。
【0027】
なお、コントローラ・貯蔵器22における乱数値V7の格納は、例えば、先入れ先出し方式(FIFO)で行い、新たに発生した乱数が、以前に生成、及び格納された乱数を逐次、追い出す構成になっている。
【0028】
図2は、この実施の形態に係る乱数発生装置のパルス制御器17、及びカウンタ18の内部構成の一例を示すブロック図である。上述したように、カウンタ18は、パルスVX1の立ち上がり部分で開始したカウント数が一定値を超えているかどうかを判別する。そのため、カウンタ18は比較器25を内臓しており、その比較器25によって、カウント数Ncが所定値Aを超えたと判定された場合(Nc>A)、カウンタ18からパルス制御器17へは、論理”1”の制御信号VX2が出力される。しかし、カウント数Ncが所定値A以下の場合(Nc≦A)、カウンタ18からは、論理”0”の制御信号VX2が出力される。
【0029】
パルス制御器17は、論理積(AND)をとる動作をするゲート26を有しており、制御信号VX2が論理”1”のとき、ゲート26をON状態にして、波形整形器16からのパルス信号V5を通過させ(つまり、スルー状態にする)、パルス信号V5が、そのままパルスVX1としてカウンタ18へ送られるようにする。一方、制御信号VX2が論理”0”のときには、パルス制御器17からカウンタ18へパルス信号V5が送られるのを阻止するため、ゲート26がOFF状態となるよう動作する。別言すれば、パルス制御器17は、制御信号VX2をフラグとして、パルスの通過/阻止動作をする。
【0030】
次に、この実施の形態に係る乱数発生装置10において、増幅時の回路応答が原因となって発生する乱数性への影響を取り除き、一様乱数を生成するための方法について、その原理を含めて詳細に説明する。既に述べたように、増幅器(例えば、図1の増幅器13)が理想的な増幅器ではなく、増幅後の信号波形が、前の電圧値を引きずる場合、その波形本来の大きな電圧の山によるパルス生成は、理想的な増幅の場合よりも、時間的に遅れるが、それらの誤差はランダムであり、後述する本来のパルス間の時間間隔に影響はない。しかし、本来現れてはならない不正パルスが、発生する乱数に悪影響を及ぼすことは、上述の通りである。
【0031】
図3は、増幅器が理想的な場合と実際の場合とにおける、波形整形器16からの発生パルス(矩形波V5)に現れる違いを模式的に示している。同図の(a)は、理想状態に対応する発生パルスであり、(b)は、実際の増幅器による増幅後の信号に基づく発生パルスである。すなわち、図3の(a)におけるパルス間隔T,Tは、本来計測すべき、正規なパルス間の時間間隔であるが、同図(b)のT10,T12,T13,T15は、本来の時間間隔よりも明らかに短い状態で現れた不正パルスのパルス間隔である。
【0032】
従って、本来の時間間隔よりも短い間隔を有するパルスをもとに乱数を発生させると、乱数コードとして値の小さいコードが異常に多く発生することになる。それは、波形整形器の後段で行うパルス計測において、余分なパルス時間間隔(T10,T12,T13等)を見てしまい、実際にカウントされるべきではないパルス間隔がカウントされるからである。そこで、この発明に係る乱数発生装置10では、正規のパルスにまとわりつくように発生する、所定の時間よりも明らかに短い時間間隔で生じた不正パルスを排除して、正規のパルスのみで乱数を発生させる。
【0033】
なお、図3では、パルスの時間間隔を、個々のパルスの立ち上がり部分を見て計測しているが、これに限定されるものではなく、各々のパルスの立ち下り部分の間隔を計測しても、事情は全く変わらない。
【0034】
一般的に、発生確率がポアソン分布となるランダムパルス間の時間をカウンタで測定し、それをもとに乱数を発生させる場合、そのランダムパルスの発生頻度が高いと、乱数の度数分布に偏りが生じる。今、カウンタのビット数をN[bit]、カウンタの動作周波数をf[Hz]、ランダムパルスの生成頻度をλ[CPS]とすると、最小の乱数コードと最大の乱数コードについての出現度数の比は、以下の式で表すことができる。
【0035】
【数1】
Figure 0004467216
【0036】
なお、ランダムパルスの生成頻度は、閾値電圧(例えば、図10、図11の点線201,205で示される閾値)の大小で調節される。
【0037】
発生する乱数が一様であると言えるためには、上記の式で示される比が、できる限り1に近いことが必須の要件となる。例えば、カウンタのビット数がN=8[bit]、動作周波数がf=16[MHz]、ランダムパルスの生成頻度がλ=2000[CPS]の場合、この比は0.97となる。よって、この比を1近傍に維持するには、生成頻度λを大きくできないことが分かる。このことは、パルス生成のための閾値(例えば、図1に示す一定電圧V4)は、できるだけ高く設定した方がよいことを意味する。
【0038】
従って、パルス間の平均時間間隔は、カウンタの動作クロック単位で計測すると相当大きくなる。上記の例では、生成頻度λが2000[CPS]であるから、パルス間隔は、平均して8000クロック分になる。
【0039】
正規のパルスに対して、不正なパルスは、上述したように所定時間よりも明らかに短い時間間隔で生じるため、これらの不正パルスを排除すれば、正規のパルスのみで乱数を発生できることになる。そこで、この実施の形態に係る乱数発生装置10では、図1に示すカウンタ18を8ビット構成にして、あるパルスを検知した後、カウンタ18のカウントが一周するまでの間に、その次に到来するパルスを検出した場合、そのパルスを無視するよう動作する。
【0040】
具体的には、8ビット構成のカウンタ18は、256クロックでカウントを一周するので、256クロック以内に到来したパルスを全て排除する。この例では、正規のパルスが、平均して8000クロック分のパルス間隔を有しているため、256クロック以内に出現するパルスを排除したとしても、正規のパルスを除外してしまう確率は、非常に低い。
【0041】
図1に示すカウンタ18は、クロック発生器19が発生した16[MHz]のクロック信号V9をもとにカウント動作する。このカウンタ18は、パルス制御器17からのパルスVX1の立ち上がり部分を見てカウントを開始し、そのカウント値が一定値(上記の256クロック分)を超えているかどうかを判別する。この判別結果は、その結果に対応した所定の論理状態を有する制御信号VX2として、カウンタ18からパルス制御器17へ送られるため、上述したゲート機能(ゲートのON/OFF)を有するパルス制御器17は、カウンタ18によるカウント値が一定値を超えていない時間内に入力されたパルスを排除する。
【0042】
また、パルス制御器17は、制御信号VX2の論理状態をもとに、カウンタ18がパルスのカウントを開始してから所定時間以上経過したことを認識したときに、カウンタ18に対してパルスVX1を送出する。その結果、所定時間内に発生したパルスによっては、乱数が発生せず、所定時間以上のパルス間隔を有するパルス(正規のパルス)によってのみ乱数が発生するため、乱数生成器21からは、一様乱数が出力されることになる。
【0043】
図4は、この実施の形態に係る乱数発生装置の動作手順、特に、パルス制御器17、及びカウンタ18における制御手順を示すフローチャートである。同図のステップS1では、最初のパルスの有無が判定される。このステップで、パルスの到来が検出されれば、続くステップS2において、カウンタ18でのカウント動作が起動する。そして、ステップS3で、そのカウンタ18でのカウント値が一周したかどうかを見る。
【0044】
すなわち、ステップS3では、カウンタ18のカウント値と所定の値Aとの比較を行い、そのカウント値が所定値Aを超えていれば、カウント値が一周したと判断する。なお、カウント値の一周とは、既に述べたように、カウンタ18が8ビット構成の場合、256クロック分のカウントを意味する。
【0045】
ステップS4で、カウント値が一周したと判断されれば、次のステップS5において、カウンタ18からパルス制御器17に、論理状態が”1”の制御信号VX2が出力される。続くステップS6では、ステップS1で検出されたパルスの次に到来するパルス(以降において適宜、「次パルス」ともいう)を検出する。
【0046】
ステップS6で、次パルスが検出されたならば、そのときの制御信号VX2の論理状態は、上記のように”1”であるから、最初のパルスと次パルスとの時間間隔が所定時間以上あることを意味している。そこで、ステップS7において、パルス制御器17は、その到来したパルス(上記の「次パルス」)を通過させて、カウンタ18へ送る。
【0047】
なお、ステップS1で検出されたパルスは、最初のパルスであるから、パルス制御器17からカウンタ18へは、無条件に送られる。
【0048】
上記の「次のパルス」を受けると、カウンタ18は、ステップS8において、先のパルスと次パルスのパルス時間間隔を計測する。その計測結果は、カウンタ18からカウント値V6として出力されるため、ステップS9で、乱数生成器21によって、そのカウント値V6に基づいて乱数が生成される。ステップS9における乱数生成後、処理は、再びステップS2に戻り、カウンタ18を起動(再起動)する。
【0049】
一方、カウンタ18のカウント値が一周していない場合(ステップS3で、NOと判断された場合)は、ステップS11において、カウンタ18からパルス制御器17へ、論理状態が”0”の制御信号VX2が出力される。そして、次のステップS12で、上記ステップS1で検出されたパルスに続くパルス(すなわち、「次パルス」)の有無を検出する。ここで、次パルスが検出されなければ、ステップS3に戻って、カウンタ18のカウント値が一周したかどうかを再度、見る。
【0050】
これに対して、ステップS12で、次のパルスが検出されたならば、そのパルスは、カウンタ18におけるカウント値が一定値を超えていない(つまり、カウント値≦所定値Aで、カウント値が一周していない)時間内に出現したパルスであるため、ステップS13で、パルス制御器17は、そのパルスを無視(排除)する。このように、「次パルス」を無視する処理をすることで、前のパルスから所定時間内に発生した後のパルスによって、乱数値を発生させない。
【0051】
上記のステップS13の後、処理をステップS3に戻して、カウンタ18におけるカウントが一周しているか否かを判定する。そして、この判定結果に応じて、上述した処理と同じ処理を実行する。
【0052】
次に、上述した、この発明に係る乱数の発生アルゴリズムが、期待した効果を奏するかどうかを確認するために行ったシミュレーションについて説明する。図5は、C言語によるシミュレーションに使用した回路構成を示している。同図のRND51は、乱数関数(一様乱数関数)から得られた乱数値を足し合わせて、正規分布となる乱数値を生成しており、それによって、熱雑音に似せた乱数を生成している。
【0053】
ここでは、これら生成された乱数を、低域通過フィルタ(LPF)52,54、及び高域通過フィルタ(HPF)53,55からなる、2段構成のデジタル・フィルタを通過させた場合と、生成された乱数から、そのままパルス生成した場合とを比較した。なお、ここで使用した乱数値は16メガ・サンプル毎秒であり、デジタル・フィルタのカットオフ周波数は、LPFは3KHz、HPFは120KHzである。また、デジタル・フィルタは、簡単のため、バタワース型フィルタにしている。そして、パルスの出現頻度は、約2000[CPS]となるように、増幅器56における閾値Vtの調整を行った。
【0054】
図6〜図8は、シミュレーション結果をグラフ化したもの(度数分布)であり、横軸は乱数コード、縦軸は乱数の発生度数である。仮に、図5のシミュレーション回路において、フィルタを介さず、かつ、増幅器56が理想的に働いた場合を想定してシミュレーションすると、図6に示す結果が得られる。同図に示す度数は、度数分布に使用した乱数値が8192個で、乱数コードが8ビットであるため、期待値32を中心に振れている。
【0055】
それに対して、図5に示すシミュレーション回路のフィルタを介して得たパルスをもとに乱数を発生させると、図7に示すように、明らかに、乱数コードの小さな部分(乱数コード0〜50の範囲)の度数が他より突出して、一様な分布からずれて発生することが分かる。そこで、カウンタの一周分に相当する256クロック以内の短い時間間隔で発生したパルスを排除すると、図8に示すように、図7の場合に比べて、乱数コードの小さい部分の度数が正常になる、つまり、一様な分布を呈することが分かる。これは、この発明に係る乱数の発生アルゴリズムを適用することで、一様乱数が得られることに他ならない。
【0056】
なお、上述した実施の形態に係る乱数発生装置は、より一様性の高い乱数を必要とする機器、例えば、暗号化装置、ICカード、確率が勝敗を左右するゲーム機や遊技機、本人認証装置等に適用することができる。
【0057】
このように、この実施の形態によれば、最初のパルスを検出後、カウンタのカウント数が所定値を超えた場合、カウンタのカウントが一周したとして、次の到来パルスを通過させてカウンタへ送り、それらのパルス間の時間間隔に基づく乱数を発生させるが、カウント数が所定値以下の場合には、カウンタへパルス信号が送られるのを阻止して、そのパルスが乱数発生には関与しない構成とすることで、パルス検出後の所定時間内に発生した次パルスによっては、乱数が発生しないため、本来現れてはならない不正パルスが、生成する乱数に悪影響を及ぼすことを回避できる。
【0058】
すなわち、増幅時の回路応答により発生する不正パルスを無視するよう構成することで、それら不正パルスによる、生成乱数の乱数性への悪影響を取り除くことができ、ランダムパルスの内、正規のパルスのパルス間隔に基づいて乱数が発生するため、出現率に偏りのない一様乱数(自然乱数、あるいは物理乱数)を得ることができる。
【0059】
なお、この発明の具体的な構成は、上記の実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲における種々の設計変更等も、この発明に含まれる。例えば、上述した実施の形態において、図4に示す乱数発生処理では、検出された次パルスをステップS13で無視した後、ステップ3に戻って、再度、カウンタの一周が終了したか否かを判定しているが、かかる不正パルスを無視した後、カウント値の一周していないカウンタ18をリセットしてから、ステップ3の処理に戻るようにしてもよい。
【0060】
また、上述した実施の形態の乱数発生処理では、正常なパルスの立ち上がり部分に同期させてカウンタを起動した後は、不正パルスが検出されても、本来の正常な次パルスが検出されるまで、カウンタのカウント動作を継続させているが、これに限定されず、以下のように動作させてもよい。例えば、図3の(b)に示すように、真のパルス到来後、タイミングta,tb,tc等で不正パルスを検出する度にカウンタ18をリセットする。
【0061】
この場合、同図のT11,T14等が乱数発生のためのパルス時間間隔となる。しかし、このようなカウント処理をしても、上述のように、正規なパルスの時間間隔に対して、不正パルスが短い時間間隔で生じるため、発生する乱数の一様性に影響はない。
【0062】
さらに、上記の実施の形態に係る乱数発生装置では、パルスの通過/遮断を制御するパルス制御器17と、パルス間の時間間隔を計測するカウンタ18とを個別に設ける構成にしているが、カウンタ18内にパルス制御器17を内臓して、カウンタ18自身がパルス制御機能を有するようにしてもよい。
【0063】
また、上記の実施の形態に係る乱数発生装置全体を制御する、不図示の中央制御装置(CPU)によって、基準電圧源15、及びクロック発生器19を制御する構成をとり、それによって、基準電圧源15で生成される電圧V4やクロック発生器19からのクロック信号V9を適宜、可変するようにしてもよい。
【0064】
さらには、上記の実施の形態に係る乱数発生装置において、例えば、図1に示す波形整形器16以降における制御の一部、あるいは全部をソフトウエア制御で置き換えてもよい。すなわち、パルスの通過/遮断制御、パルス時間間隔の計測、乱数値の取り出し等に対して、上述したハードウエア構成によるパルス操作と同じ動作をソフトウエア制御で行うようにしても、上記と同じ結果(一様性の高い乱数)が得られる。
【0065】
【発明の効果】
以上説明したように、この発明の構成によれば、熱雑音発生源からの熱雑音の電圧レベルを増幅して得た電圧レベルと基準電圧レベルとを比較してランダムパルスを生成し、それらランダムパルスのパルス間の時間間隔が所定時間以内であれば、その所定時間内に発生したランダムパルスを排除するが、時間間隔が所定時間を超えていれば、その所定時間を超えたパルス間の時間間隔に基づいて乱数を発生させる。つまり、所定時間よりも明らかに短い時間間隔で生じた不正パルスを排除して、正規のパルスの時間間隔でのみで乱数を発生させているため、これら不正パルスによる、生成乱数の乱数性への悪影響を取り除いて、一様乱数を発生させることができる。
【0066】
また、ランダムパルスを排除する所定時間を、パルス間の時間間隔を計測するカウンタによる計数が一周するカウント数に対応させることで、そのカウンタの取り扱いが容易になり、カウンタの構成ビット数に合わせた制御ができる。
【図面の簡単な説明】
【図1】この発明の実施の形態に係る乱数発生装置の全体構成を示すブロック図である。
【図2】実施の形態に係る乱数発生装置のパルス制御器、及びカウンタの内部構成の一例を示すブロック図である。
【図3】増幅器が理想的な場合と実際の場合とにおける波形整形器からの発生パルスの違いを模式的に示す図である。
【図4】実施の形態に係る乱数発生装置の動作手順を示すフローチャートである。
【図5】乱数の発生のシミュレーションに使用した回路構成を示す図である。
【図6】理想状態におけるシミュレーション結果を示す図である。
【図7】フィルタがある場合におけるシミュレーション結果を示す図である。
【図8】短時間間隔でのパルスを排除したシミュレーション結果を示す図である。
【図9】従来の熱雑音物理乱数生成装置の構成を示すブロック図である。
【図10】増幅器が理想的であるとした場合の増幅信号及び生成パルス波形を示す図である。
【図11】実際の増幅器における増幅信号及び生成パルス波形を示す図である。
【符号の説明】
10 乱数発生装置
11 ランダムパルス発生器(ランダムパルスを生成する手段)
12 熱雑音発生素子(熱雑音発生源)
13 増幅器(増幅する手段)
14 比較器
15 基準電圧源
16 波形整形器
17 パルス制御器(パルス制御手段)
18 カウンタ(計測手段)
19 クロック発生器
21 乱数生成器(乱数を発生させる手段)
22 コントローラ・貯蔵器
25 比較器
26 ゲート

Claims (10)

  1. 熱雑音発生源からの熱雑音に基づいて乱数を発生させる乱数発生方法であって、
    前記熱雑音の電圧レベルを増幅するステップと、
    前記増幅された熱雑音の電圧レベルと、基準電圧レベルとを比較してランダムパルスを生成するステップと、
    前記ランダムパルスのパルス間の時間間隔を計測するステップと、
    前記時間間隔が所定時間以内であれば、該所定時間内に発生した前記ランダムパルスを排除するステップと、
    前記時間間隔が前記所定時間を超えていれば、該所定時間を超えたパルス間の時間間隔に基づいて乱数を発生させるステップとを備えることを特徴とする乱数発生方法。
  2. 前記時間間隔の計測は、前記ランダムパルスを受けて起動するカウンタのカウント数に基づいて行われ、該カウント数が一定値以内のときに発生したランダムパルスを排除することを特徴とする請求項1記載の乱数発生方法。
  3. 前記所定時間は、前記カウンタによる計数が一周するカウント数に対応していることを特徴とする請求項2記載の乱数発生方法。
  4. さらに、前記ランダムパルスに対して波形整形を施すステップを備えることを特徴とする請求項1記載の乱数発生方法。
  5. 熱雑音発生源からの熱雑音に基づいて乱数を発生させる乱数発生装置であって、
    前記熱雑音の電圧レベルを増幅する手段と、
    前記増幅された熱雑音の電圧レベルと基準電圧レベルとを比較してランダムパルスを生成する手段と、
    前記ランダムパルスのパルス間の時間間隔を計測する計測手段と、
    前記時間間隔が所定時間以内であれば、該所定時間以内に発生した前記ランダムパルスを排除し、前記時間間隔が該所定時間を超えていれば、前記ランダムパルスを通過させるパルス制御手段と、
    前記通過したランダムパルスのパルス間の時間間隔に基づいて乱数を発生させる手段とを備えることを特徴とする乱数発生装置。
  6. 前記計測手段は、前記ランダムパルスによって起動するカウンタであり、該カウンタのカウント数に基づいて前記時間間隔の計測を行い、前記パルス制御手段は、該カウント数が一定値以内のときに発生したランダムパルスを排除することを特徴とする請求項5記載の乱数発生装置。
  7. 前記カウンタのカウント数は、該カウンタの構成ビット数に依存し、前記時間間隔の計測は、該カウンタの動作周波数に依存することを特徴とする請求項6記載の乱数発生装置。
  8. 前記所定時間は、前記カウンタによる計数が一周するカウント数に対応していることを特徴とする請求項7記載の乱数発生装置。
  9. さらに、前記ランダムパルスに対して波形整形を施す手段を備えることを特徴とする請求項5記載の乱数発生装置。
  10. 熱雑音発生源からの熱雑音を増幅して得られた該熱雑音の電圧レベルと基準電圧レベルとを比較してランダムパルスを生成し、該ランダムパルスの時間間隔に基づいて乱数を生成する処理をコンピュータに実行させるためのプログラムであって、
    前記ランダムパルスのパルス間の時間間隔を計測する処理と、
    前記時間間隔が所定時間以内であれば、該所定時間内に発生した前記ランダムパルスを排除する処理と、
    前記時間間隔が前記所定時間を超えていれば、該所定時間を超えた時間間隔に基づいて乱数を発生させる処理とをコンピュータに実行させるためのプログラム。
JP2001272538A 2001-09-07 2001-09-07 乱数発生方法及び装置 Expired - Fee Related JP4467216B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2001272538A JP4467216B2 (ja) 2001-09-07 2001-09-07 乱数発生方法及び装置
EP02020004A EP1293889A3 (en) 2001-09-07 2002-09-05 Random number generating method and random number generating device
US10/234,337 US7080106B2 (en) 2001-09-07 2002-09-05 Random number generating method and random number generating device
CN02141649.4A CN1212564C (zh) 2001-09-07 2002-09-09 随机数产生方法和随机数产生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001272538A JP4467216B2 (ja) 2001-09-07 2001-09-07 乱数発生方法及び装置

Publications (2)

Publication Number Publication Date
JP2003084970A JP2003084970A (ja) 2003-03-20
JP4467216B2 true JP4467216B2 (ja) 2010-05-26

Family

ID=19097896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001272538A Expired - Fee Related JP4467216B2 (ja) 2001-09-07 2001-09-07 乱数発生方法及び装置

Country Status (4)

Country Link
US (1) US7080106B2 (ja)
EP (1) EP1293889A3 (ja)
JP (1) JP4467216B2 (ja)
CN (1) CN1212564C (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4521708B2 (ja) * 2001-03-12 2010-08-11 ルネサスエレクトロニクス株式会社 乱数生成装置
WO2004017191A1 (ja) * 2002-08-14 2004-02-26 Institute For Advanced Studies Co., Ltd. 乱数生成装置及び乱数生成方法
EP1435558A1 (en) * 2003-01-02 2004-07-07 Texas Instruments Incorporated On-device random number generator
WO2004081786A1 (ja) * 2003-03-13 2004-09-23 Leisure Electronics Technology Co.,Ltd. 乱数検定方法及び乱数検定装置
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 隨機脈衝產生源及半導體裝置、使用該源產生隨機數及/或機率之方法與程式
DE102006031537B4 (de) * 2005-12-27 2007-10-31 Industrial Technology Research Institute (Itri), Chutung Zufallszahl-Erzeugungsvorrichtung und Verfahren zum Erzeugen einer Zufallszahl
JP4883273B2 (ja) * 2006-01-11 2012-02-22 日本電気株式会社 乱数品質管理装置および管理方法
US8346832B2 (en) * 2006-10-12 2013-01-01 The Regents Of The University Of Michigan Random number generator
US7904494B2 (en) * 2006-12-08 2011-03-08 International Business Machines Corporation Random number generator with random sampling
JP2008242832A (ja) * 2007-03-27 2008-10-09 Toshiba Corp 乱数生成装置
CN101765828A (zh) * 2007-05-10 2010-06-30 迪斯-恩特有限责任公司 非确定性统计数据发生器
JP5090216B2 (ja) * 2008-03-10 2012-12-05 株式会社エルイーテック 乱数発生装置及び乱数発生方法
CN101727308B (zh) * 2008-10-28 2012-02-01 苏州中科集成电路设计中心有限公司 集成电路中真随机数的产生方法
CN101751240B (zh) * 2008-12-04 2011-12-07 北京中电华大电子设计有限责任公司 一种比较相等电阻热噪声的真随机数发生器电路
JP5577799B2 (ja) * 2009-04-10 2014-08-27 株式会社デンソー 車載モータの駆動制御方法
JP2014123284A (ja) * 2012-12-21 2014-07-03 Makita Corp 乱数発生装置
CN103197912B (zh) * 2013-03-21 2016-02-10 北京理工大学 一种用于深空通信协议编码的均匀随机数生成方法
CN104506166B (zh) * 2014-11-25 2017-06-13 武汉工程大学 无序脉冲发生电路
CN106919365A (zh) 2016-08-29 2017-07-04 阿里巴巴集团控股有限公司 计算机系统中随机数的生成方法及装置
US10367645B2 (en) * 2016-10-26 2019-07-30 International Business Machines Corporation Proof-of-work for smart contracts on a blockchain
CN107041015B (zh) * 2017-04-07 2020-01-10 惠州市天泽盈丰物联网科技股份有限公司 避免网传数据碰撞的方法
CN108307267B (zh) * 2017-11-27 2020-09-08 中科观世(北京)科技有限公司 基于目标信息分布模式的随机采样系统
KR102372740B1 (ko) * 2019-04-09 2022-03-14 한국전자통신연구원 난수 생성 장치 및 이의 동작 방법
CN110045947B (zh) * 2019-04-22 2021-09-17 湖南国科微电子股份有限公司 一种随机数发生单元与装置
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
US20220308836A1 (en) * 2021-03-23 2022-09-29 Usa As Represented By The Secretary Of The Army Actively stabilized random number generator

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2539014A (en) * 1949-02-16 1951-01-23 Walter J Frantz Random digit generator
US3763380A (en) * 1971-05-05 1973-10-02 Stock Equipment Co Method and apparatus for measuring rates of random pulses
JPH02242327A (ja) * 1989-03-15 1990-09-26 Oki Electric Ind Co Ltd 乱数発生装置
US6046616A (en) * 1998-08-07 2000-04-04 Tritech Microelectronics, Ltd. Two dimensional random pulse generator
JP3480822B2 (ja) * 1999-11-02 2003-12-22 斎藤 威 熱雑音ランダムパルス発生装置及び乱数生成装置

Also Published As

Publication number Publication date
JP2003084970A (ja) 2003-03-20
US7080106B2 (en) 2006-07-18
EP1293889A3 (en) 2006-04-26
CN1405672A (zh) 2003-03-26
CN1212564C (zh) 2005-07-27
EP1293889A2 (en) 2003-03-19
US20030050943A1 (en) 2003-03-13

Similar Documents

Publication Publication Date Title
JP4467216B2 (ja) 乱数発生方法及び装置
US7206797B2 (en) Random number slip and swap generators
JP4486961B2 (ja) 乱数取出し方法及びこれを用いた乱数生成装置
US8234322B2 (en) Apparatus and method for generating random numbers
JP2005526299A (ja) 環境センサを用いてランダムビットストリングを生成する方法および装置
CN107290578B (zh) 最终发生时触发
EP1241564A2 (en) Random number generator which can generate a random number based on uniform distribution
US5315627A (en) Pseudo-random repetitive sampling of a signal
US7516169B2 (en) Generating random data
US7620135B2 (en) Data processing apparatus that identifies a communication clock frequency
WO2003071414A3 (en) On-line randomness test for detecting irregular pattern
US20030187890A1 (en) Gap average on-line randomness test
JP2008242815A (ja) 乱数発生回路用テスト回路及び乱数発生回路用テスト方法
WO2004081786A1 (ja) 乱数検定方法及び乱数検定装置
CN112782474A (zh) 频率检测电路及频率检测方法
JP2001117757A (ja) 確率発生器および乱数発生器
JP3338726B2 (ja) サージ識別装置
WO2022248117A1 (fr) Procédé de génération de nombres aléatoires
JP2003098193A (ja) 波形表示装置
JP2002008132A (ja) 確率的判定装置および乱数生成装置。
US8266346B2 (en) Data processing apparatus that processes incoming bits
JP2002024000A (ja) 確率的選択装置
WO2009028717A1 (ja) 乱数の生成システム及び方法
JP2004085404A (ja) 単一光子検出器評価装置、そのためのプログラムおよび記録媒体
JPH06168383A (ja) 赤外線検出装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100128

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: 20100202

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: 20100223

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4467216

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees