JP4248950B2 - 乱数発生装置 - Google Patents

乱数発生装置 Download PDF

Info

Publication number
JP4248950B2
JP4248950B2 JP2003179798A JP2003179798A JP4248950B2 JP 4248950 B2 JP4248950 B2 JP 4248950B2 JP 2003179798 A JP2003179798 A JP 2003179798A JP 2003179798 A JP2003179798 A JP 2003179798A JP 4248950 B2 JP4248950 B2 JP 4248950B2
Authority
JP
Japan
Prior art keywords
random number
circuit
signal
output
delay
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
JP2003179798A
Other languages
English (en)
Other versions
JP2005018251A (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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2003179798A priority Critical patent/JP4248950B2/ja
Priority to TW093115596A priority patent/TWI286289B/zh
Priority to KR1020040047200A priority patent/KR100668554B1/ko
Priority to CNB2004100616927A priority patent/CN100399261C/zh
Priority to CNA2008100956490A priority patent/CN101290566A/zh
Priority to US10/874,360 priority patent/US7424500B2/en
Publication of JP2005018251A publication Critical patent/JP2005018251A/ja
Priority to US12/193,105 priority patent/US8260835B2/en
Application granted granted Critical
Publication of JP4248950B2 publication Critical patent/JP4248950B2/ja
Priority to US13/565,591 priority patent/US9052975B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03BGENERATION OF OSCILLATIONS, DIRECTLY OR BY FREQUENCY-CHANGING, BY CIRCUITS EMPLOYING ACTIVE ELEMENTS WHICH OPERATE IN A NON-SWITCHING MANNER; GENERATION OF NOISE BY SUCH CIRCUITS
    • H03B25/00Simultaneous generation by a free-running oscillator of oscillations having different frequencies
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • G11C2029/3602Pattern generator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Pulse Circuits (AREA)
  • Manipulation Of Pulses (AREA)
  • Advance Control (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は乱数発生装置に関し、特に、リング発振回路を備える乱数発生装置に関する。
【0002】
【従来の技術】
情報セキュリティ分野においては乱数の使用が不可欠であり、近年、一様性(乱数の確率値および出現率に差異が生じないこと)を有し、かつ乱数出現の規則性や前後の相関性、周期性などを有しない自然乱数(真正乱数)を発生する高性能な乱数発生装置の需要が高まっている。このような乱数発生装置として、微弱放射線、抵抗やダイオードの熱雑音、水晶発振器の揺らぎなどの自然現象を利用して得られるランダムパルスを用いたものがある。
【0003】
従来の乱数発生装置では、乱数を生成するフリップフロップの入力ラインにジッタ生成回路を付加し、入力信号のジッタによってフリップフロップ出力の不確定動作範囲を広げるものが提案されている(たとえば、特許文献1参照)。
【0004】
また、リング発振回路を構成する電界効果トランジスタのサブストレート効果を利用することによって、リング発振回路の発振周波数を変動させ、周波数の変動するクロック信号を生成するものもある。この場合、周波数が変動するクロック信号のパルス数をカウンタで計数することによって乱数を生成する(たとえば、特許文献2参照)。
【0005】
【特許文献1】
特開2002−366347号公報
【0006】
【特許文献2】
特開2001−331306号公報
【0007】
【発明が解決しようとする課題】
しかし、自然現象によるランダムパルスを利用した乱数発生装置では、ランダムパルス発生源、信号増幅器、波形整形回路、一様性適正化回路などのアナログ要素が多く含まれるため、回路規模が大きくかつ複雑になってしまう。このため、これらを一体のLSI(大規模集積回路)としてマイコンやASIC(Application Specific Integrated Circuit:アプリケーション固有集積回路)に搭載することは難しかった。さらに、熱雑音を利用したものは外部ノイズなどの影響を受けやすいため動作の安定性に欠けていた。また、放射線を利用したものは環境への影響が懸念されていた。
【0008】
超小型・薄型ハイテク機器に適用するためには、上記特許文献1,2に記載した方法では十分でなく、さらに小型で消費電力が小さく、高性能な乱数発生装置が要求される。
【0009】
それゆえに、この発明の主たる目的は、小型で消費電力が小さく、高性能な乱数発生装置を提供することである。
【0010】
【課題を解決するための手段】
この発明に係る乱数発生装置は、ループ状に接続された複数の遅延回路と、複数の遅延回路で形成されたループ内に複数の遅延回路の総遅延時間よりも短いパルス幅のパルス信号を発生させるパルス発生回路と、複数の遅延回路のうちのある遅延回路の出力ノードに接続され、その出力ノードをパルス信号が通過した回数をカウントし、そのカウント値に基づいて真正乱数データ信号を出力するカウンタとを備えたものである。
【0011】
【発明の実施の形態】
[実施の形態1]
図1は、この発明の実施の形態1による乱数発生装置の概略構成を示すブロック図である。図1において、この乱数発生装置は、真正乱数発生部1、LFSR(Linear Feedback Shift Register:線形帰還シフトレジスタ)2、EX−OR(エクスクルーシブ・オア)ゲート3、乱数格納部4およびCPU(Central Processing Unit:中央処理装置)5を備える。
【0012】
真正乱数発生部1は、CPU5からの乱数発生要求信号に応じて真正乱数データ(規則性がなく質の高い乱数データ)を生成する。LFSR2は、CPU5からのクロック信号に応じて一様性のある擬似乱数データ(“0”と“1”の発生確率がともに50%で、規則性のある擬似的な乱数データ)を生成する。真正乱数発生部1とLFSR2は非同期とする。なお、LFSR2は、CPU5からのクロック信号を受ける代わりに、CPU5からのライト信号を受けてもよい。
【0013】
EX−ORゲート3は、真正乱数発生部1からの真正乱数データとLFSR2からの擬似乱数データとの排他的論理和データを乱数格納部4へ与える。真正乱数発生部1の出力真正乱数データは一様性が保証されていないが、LFSR2の出力擬似乱数データは一様性が保証されているため、EX−ORゲート3からは一様性のある乱数データが出力される。
【0014】
乱数格納部4は、CPU5からのライト信号に応じてEX−ORゲート3からの乱数データを記憶し、CPU5からのリード信号に応じて乱数値を出力する。CPU5は、乱数発生要求信号、クロック信号、ライト信号およびリード信号を生成して真正乱数発生部1、LFSR2および乱数格納部4を制御し、乱数格納部4から乱数値を読出す。
【0015】
図2は、図1に示した真正乱数発生部1の構成を示すブロック図である。図2において、この真正乱数発生部1は、起動入力生成部11、リング発振器12およびカウンタ13を含む。
【0016】
起動入力生成部11は、CPU5からの乱数発生要求信号に応じて、真正乱数データを発生させるための起動信号を生成する。リング発振器12は、起動入力生成部11からの起動信号に応じて発振状態または安定状態になる。カウンタ13は、リング発振器12のループ上のノードを伝達する信号のパルス数をカウントすることによって真正乱数データを出力する。
【0017】
図3は、図2に示したリング発振器12およびカウンタ13の構成を示す回路図である。図3において、このリング発振器12はEX−ORゲート21および4個のインバータ22を含み、カウンタ13は5個のフリップフロップ23および4個のEX−ORゲート24を含む。
【0018】
リング発振器12において、EX−ORゲート21の出力端子と一方入力端子との間に4個のインバータ22が直列接続される。EX−ORゲート21の他方入力端子は、起動入力生成部11からの起動信号を受ける。EX−ORゲート21および4個のインバータ22はループを形成し、このループは起動信号が「L」レベルのときは安定状態になり、起動信号が「H」レベルのときは発振状態になる。各出力ノードN1〜N5は、それぞれ対応するフリップフロップ23のクロック入力端子に接続される。
【0019】
各フリップフロップ23は、その負論理出力端子とデータ入力端子とが接続された、1ビットのカウンタである。各フリップフロップ23は、クロック入力端子に入力される信号の立上りエッジに応じて出力信号を反転させる。各EX−ORゲート24は、その一方入力端子が対応のフリップフロップ23の正論理出力信号を受け、その他方入力端子が前段のEX−ORゲート24の出力信号を受け、それらの排他的論理和信号を出力する。ただし、初段のEX−ORゲート24は、その一方入力端子が出力ノードN1に対応するフリップフロップ23の正論理出力信号を受け、その他方入力端子が出力ノードN2に対応するフリップフロップ23の正論理出力信号を受ける。
【0020】
図4(A)(B)(C)は、図3に示したリング発振器12およびカウンタ13の動作を説明するためのタイムチャートである。図4(A)(B)(C)において、「H」レベルと「L」レベルの間の不確定な状態であるメタステーブルを出力ノードN1〜N5に発生させるための3通りの起動信号のパターンを示す。
【0021】
図4(A)において、起動信号は、時刻t0に「H」レベルに立上げられ、時間T0経過後に「L」レベルに立下げられるパルス信号である。この時間T0(パルス幅)は、リング発振器12のループの遅延時間T1よりも短い時間とする。初期状態において出力ノードN1,N3,N5の電位が「L」レベル、出力ノードN2,N4の電位が「H」レベルの安定状態であった場合、出力ノードN1の電位はEX−ORゲート21による遅延時間だけ起動信号が遅延されたパルス波形になる。この出力ノードN1の電位変化に応じて、出力ノードN2の電位はインバータ22による遅延時間だけ出力ノードN1のパルス波形が遅延され、かつ反転された波形になる。各出力ノードN1〜N5でこのような動作が順次繰り返され、パルス波形は徐々になまってくる。このように波形がなまっている状態がメタステーブルである。このメタステーブルの波形は時間が経つにつれて徐々に小さくなり、ループを2周した後出力ノードN1で消滅する(メタステーブルの波形がフリップフロップ23のしきい値を超えなくなった時点で、メタステーブルが消滅したと判断する)。この場合、各フリップフロップ23は、それぞれパルス数を2回ずつカウントする。すなわち、初期状態において各フリップフロップ23の正論理出力信号が“0”であった場合、各フリップフロップ23の正論理出力信号は1回目のカウントで“1”になり、2回目のカウントで“0”になる。このため、メタステーブル消滅後の最終段のEX−ORゲート24の出力信号は“0”になる。
【0022】
なお、このメタステーブルの寿命は制御できない。すなわち、メタステーブルが消滅するノードはランダムである。たとえば、メタステーブルがループを2周した後出力ノードN2で消滅した場合、出力ノードN1に対応するフリップフロップ23はパルス数を3回カウントし、出力ノードN2〜N5に対応するフリップフロップ23はそれぞれパルス数を2回ずつカウントする。すなわち、初期状態において各フリップフロップ23の正論理出力信号が“0”であった場合、メタステーブル消滅後の出力ノードN1に対応するフリップフロップ23の正論理出力信号は“1”になり、出力ノードN2〜N5に対応するフリップフロップ23の正論理出力信号はそれぞれ“0”になる。このため、メタステーブル消滅後の最終段のEX−ORゲート24の出力信号は“1”になる。したがって、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1におけるカウンタ13の出力信号は、メタステーブルの寿命に依存した真正乱数データとなる。
【0023】
なお、EX−ORゲート21やインバータ22の遅延特性によって、メタステーブルが消滅するノードがいずれかのノードに偏る場合がある。しかし、フリップフロップ23を奇数個(5個)設けることによって、メタステーブルが同じノードで消滅した場合でも、メタステーブルの周回数が異なるとカウンタ13の出力信号は異なる。すなわち、メタステーブルがループを1周した後出力ノードN2で消滅した場合における最終段のEX−ORゲート24の出力信号(“0”)と、メタステーブルがループを2周した後出力ノードN2で消滅した場合における最終段のEX−ORゲート24の出力信号(“1”)とは異なる。このため、カウンタ13からは質の高い乱数が出力される。
【0024】
図4(B)において、起動信号は、時刻t0に「H」レベルに立上げられ、時間T0経過後に「L」レベルに立下げられ、時刻t10に「H」レベルに立上げられる。時刻t0から時刻t10までの動作は、図4(A)で説明した動作と同様であり、出力ノードN1〜N5に順次メタステーブルが発生する。時刻t10に起動信号が「H」レベルに立上げられたことに応じて、ループが発振状態になる。ループが発振状態になっても、図4(A)で説明した場合と同様にメタステーブルの波形は時間が経つにつれて徐々に小さくなって、ループを2周した後出力ノードN2で消滅する。メタステーブルの寿命は制御できないため、メタステーブルが消滅するノードはランダムである。したがって、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1におけるカウンタ13の出力信号はメタステーブルの寿命に依存した真正乱数データとなる。
【0025】
図4(C)において、起動信号は、時刻t0に「L」レベルに立下げられる。時刻t0において、起動信号が「L」レベルに立下げられたことに応じて、ループが発振状態から安定状態に遷移するとともに、出力ノードN1〜N5に順次メタステーブルが発生する。メタステーブルの波形は時間が経つにつれて徐々に小さくなって、ループを2周した後出力ノードN1で消滅する。メタステーブルの寿命は制御できないため、メタステーブルが消滅するノードはランダムである。したがって、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1におけるカウンタ13の出力信号はメタステーブルの寿命に依存した真正乱数データとなる。
【0026】
また、ここではインバータ22が4個、フリップフロップ23が5個の場合について説明したが、インバータ22が任意の偶数個、フリップフロップ23が任意の個数であってもよい。
【0027】
図5は、図1に示したLFSR2の構成を示す回路図である。図5において、このLFSR2は、n個(ただし、nは任意の自然数)のフリップフロップ31、複数のEX−ORゲート32、ANDゲート33およびORゲート34を含む。
【0028】
各フリップフロップ31は、そのデータ入力端子が前段のフリップフロップ31の正論理出力端子に接続され、そのクロック入力端子がCPU5からのクロック信号を受け、その負論理出力端子がANDゲート33の入力端子に接続される。ただし、初段のフリップフロップ31は、そのデータ入力端子がORゲート34の出力端子に接続される。
【0029】
各EX−ORゲート32は、その一方入力端子が対応のフリップフロップ31の正論理出力信号を受け、その他方入力端子が前段のEX−ORゲート32の出力信号を受け、それらの排他的論理和信号を出力する。ただし、初段のEX−ORゲート32は、その一方入力端子が(n−2)段目のフリップフロップ31の正論理出力信号を受け、その他方入力端子がn段目のEX−ORゲート32の出力信号を受ける。
【0030】
このように、複数段のフリップフロップ31を直列に接続し、最終出力をフィードバックする構成により、擬似乱数が生成されることは周知である。このLFSR2が出力する擬似乱数データの繰返し周期はEX−ORゲート32の数および位置に応じて異なり、擬似乱数データの繰返し周期が最も長くなるようにEX−ORゲート32の数および位置が定められる。この場合、繰返し周期が(2n−1)の擬似乱数データが生成される。
【0031】
ANDゲート33は、n個のフリップフロップ31の負論理出力信号の論理積信号を出力する。ORゲート34は、最終段のEX−ORゲート32の出力信号およびANDゲート33の出力信号に応じた信号を出力する。この構成により、すべてのフリップフロップ31の正論理出力信号が“0”になってLFSR2の出力擬似乱数データが“0”の安定状態になることが防止される。
【0032】
図6は、図1に示した乱数格納部4の構成を示す回路図である。図6において、この乱数格納部4は、8個のフリップフロップ41および8個のバッファ回路42を含み、8ビットの乱数データを格納することができる。
【0033】
各フリップフロップ41は、そのデータ入力端子が前段のフリップフロップ41の正論理出力端子に接続され、そのクロック入力端子がCPU5からのライト信号を受け、その正論理出力端子が対応するバッファ回路42に接続される。ただし、初段のフリップフロップ41は、そのデータ入力端子がEX−ORゲート3から乱数データを受ける。8個のバッファ回路42は、CPU5からのリード信号に応じて、対応する8個のフリップフロップ41に記憶された乱数データを、8ビットの乱数値としてバスを介してCPU5に出力する。
【0034】
図7は、図6に示した乱数格納部4の動作を説明するためのタイムチャートである。図7において、乱数値は16進数で表示され、初期状態における乱数値を“0”とする。
【0035】
起動信号が「H」レベルの時は真正乱数発生部1のリング発振器12が発振状態になり、起動信号が「L」レベルのときは安定状態になる。なお、ここでは動作説明の便宜を図るため、乱数データは起動信号の立下りエッジに応じて“1”または“0”にされる信号に簡略化する。起動信号のパルス幅は(t21−t20)、ライト信号のパルス幅は(t22−t21)であり、起動信号およびライト信号の周期はともに(t23−t22)である。時刻t21において、起動信号が「L」レベルに立下げられ、乱数データが“1”にされるとともに、ライト信号が「H」レベルに立上げられる。時刻t22において、ライト信号が「L」レベルに立下げられたことに応じて、初段のフリップフロップ41がその瞬間の乱数データ“1”を記憶する。このとき、16進数で表わされる乱数値は“01”(2進表現では00000001)になる。
【0036】
時刻t23において、ライト信号が「L」レベルに立下げられたことに応じて、初段のフリップフロップ41がその瞬間の乱数データ“1”を記憶するとともに、2段目のフリップフロップ41が時刻t22に初段のフリップフロップ41によって記憶された乱数データ“1”を記憶する。このとき、乱数値は“03”(2進表現では00000011)になる。このようにして、時刻t24における乱数値は“06”(2進表現では00000110)、時刻t25における乱数値は“0C”(2進表現では00001100)になる。この動作を順次繰返すことによって、時刻t29における乱数値は“C6”(2進表現では11000110)になって8ビットの乱数データが記憶される。その後、CPU5からのリード信号に応じて、乱数値“C6”を出力する。
【0037】
このように、乱数格納部4を8段のシフトレジスタで構成することによって8ビットの乱数データが格納できるため、CPU5の乱数格納部4へのアクセス頻度が少なくて済む。
【0038】
以上のように、この実施の形態1では、真正乱数発生部1のリング発振器12を発振制御し、メタステーブルの寿命を“0”,“1”に2値化することによって真正乱数データを生成する。したがって、小型で消費電力が小さく、高性能な乱数発生装置が実現できる。
【0039】
なお、ここでは8ビットの乱数データを記憶する場合について説明したが、乱数格納部4をm個(ただし、mは任意の自然数)のフリップフロップ41およびm個のバッファ回路42で構成すれば、mビットの乱数データを記憶させることができる。
【0040】
[実施の形態1の変更例]
図8は、この発明の実施の形態1の変更例によるリング発振器12およびカウンタ13の構成を示す回路図であって、図3と対比される図である。図8のリング発振器12およびカウンタ13を参照して、図3のリング発振器12およびカウンタ13と異なる点は、カウンタ13のフリップフロップ23の数が3個に減っている点である。図8において、フリップフロップ23は奇数番目の出力ノードN1,N3,N5にのみ接続される。
【0041】
リング発振器12において、EX−ORゲート21の遅延特性により、出力ノードN1の電位が「H」レベルまたは「L」レベルのどちらかに偏る傾向がある。たとえば、EX−ORゲート21の出力信号が「L」レベルに立下げられるときの遅延時間が、「H」レベルに立上げられるときの遅延時間よりも長い場合、EX−ORゲート21の出力ノードN1の電位は「H」レベルに偏る傾向がある。さらに、各インバータ22の遅延特性により、メタステーブルが消滅するノードは奇数番目の出力ノードN1,N3,N5、若しくは偶数番目の出力ノードN2,N4のどちらかに偏る傾向がある。この場合、図3に示したようにすべての出力ノードN1〜N5にフリップフロップ23が接続された構成では、カウンタ13からの真正乱数データが“0”か“1”のどちらかに偏ってしまい、真正乱数データの一様性が保たれない。
【0042】
しかし、図8のように奇数番目の出力ノードN1,N3,N5にのみフリップフロップ23を接続する構成であれば、メタステーブルの消滅するノードが奇数番目の出力ノードN1,N3,N5、若しくは偶数番目の出力ノードN2,N4のどちらかに偏った場合でも、カウンタ13からの真正乱数データが“0”か“1”のどちらかに偏らない。たとえば、メタステーブルが消滅するノードが出力ノードN1,N5の場合と出力ノードN3の場合とでは、カウンタ13からの真正乱数データは異なる。このため、真正乱数データの一様性が改善される。
【0043】
したがって、この実施の形態1の変更例では、リング発振器12の奇数番目の出力ノードN1,N3,N5に対応してフリップフロップ23を設けることによって、真正乱数発生部1で生成する真正乱数データの質を高めることができ、さらに高性能な乱数発生装置が実現できる。
【0044】
なお、ここでは奇数番目の出力ノードN1,N3,N5にフリップフロップ23を接続した場合について説明したが、偶数番目の出力ノードN2,N4にフリップフロップ23を接続した場合も同様の効果が得られる。
【0045】
[実施の形態2]
図9は、この発明の実施の形態2によるリング発振器50およびカウンタ13の構成を示す回路図であって、図3と対比される図である。図9のリング発振器50およびカウンタ13を参照して、図3のリング発振器12およびカウンタ13と異なる点は、EX−ORゲート21がNANDゲート51で置換されている点である。
【0046】
図10(A)(B)(C)は、このリング発振器50およびカウンタ13の動作を説明するためのタイムチャートである。図10(A)(B)(C)において、メタステーブルを出力ノードN1〜N5に発生させるための3通りの起動信号のパターンを示す。
【0047】
図10(A)において、起動信号は、時刻t0に「H」レベルに立上げられ、時間T0経過後に「L」レベルに立下げられるパルス信号である。この時間T0(パルス幅)は、リング発振器50のループの遅延時間T1よりも短い時間とする。初期状態において出力ノードN1,N3,N5の電位が「H」レベル、出力ノードN2,N4の電位が「L」レベルの安定状態であった場合、出力ノードN1の電位はNANDゲート51による遅延時間だけ起動信号が遅延され、かつ反転されたパルス波形になる。この出力ノードN1の電位変化に応じて、出力ノードN2〜N5に順次メタステーブルが発生する。メタステーブルの波形は時間が経つにつれて徐々に小さくなり、出力ノードN5で消滅する。メタステーブルの寿命は制御できないため、メタステーブルが消滅するノードはランダムである。したがって、メタステーブルが発生した時間から所定時間経過後の時刻t1におけるカウンタ13の出力信号は、メタステーブルの寿命に依存した真正乱数データとなる。
【0048】
なお、この場合はNANDゲート51を用いた回路構成より、起動信号が「L」レベルのときは出力ノードN1の電位が「H」レベルに固定される。すなわち、メタステーブルは1周しかしない。このため、メタステーブルが1周する間に消滅するような回路構成にする。
【0049】
図10(B)において、起動信号は、時刻t0に「H」レベルに立上げられ、時間T0経過後に「L」レベルに立下げられ、時刻t30に「H」レベルに立上げられる。時刻t0から時刻t30までの動作は、図10(A)で説明した動作と同様であり、出力ノードN1〜N5に順次メタステーブルが発生する。時刻t30に起動信号が「H」レベルに立上げられたことに応じて、ループが発振状態になる。メタステーブルはループを1周した後出力ノードN1で消滅する。メタステーブルの寿命は制御できないため、メタステーブルが消滅するノードはランダムである。したがって、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1におけるカウンタ13の出力信号はメタステーブルの寿命に依存した真正乱数データとなる。なお、この場合は時刻t30に起動信号を「H」レベルに固定するため、メタステーブルが1周する間に消滅するような回路構成にしなくてもよい。
【0050】
図10(C)において、起動信号は、時刻t0に「L」レベルに立下げられる。時刻t0において、起動信号が「L」レベルに立下げられたことに応じて、ループが発振状態から安定状態に遷移するとともに、出力ノードN1〜N5に順次メタステーブルが発生する。メタステーブルの波形は時間が経つにつれて徐々に小さくなって、出力ノードN5で消滅する。メタステーブルの寿命は制御できないため、メタステーブルが消滅するノードはランダムである。したがって、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1におけるカウンタ13の出力信号はメタステーブルの寿命に依存した真正乱数データとなる。
【0051】
なお、この場合は起動信号を「L」レベルに固定するため、メタステーブルは1周しかしない。このため、メタステーブルが1周する間に消滅するような回路構成にする。
【0052】
以上のように、この発明の実施の形態2では、実施の形態1と同様に真正乱数発生部1のリング発振器50を発振制御し、メタステーブルの寿命を“0”,“1”に2値化することによって真正乱数データを生成する。したがって、小型で消費電力が小さく、高性能な乱数発生装置が実現できる。
【0053】
なお、ここではインバータ22が4個、フリップフロップ23が5個の場合について説明したが、インバータ22が任意の偶数個、フリップフロップ23が任意の個数の場合でも同様の効果が得られる。
【0054】
[実施の形態3]
図11は、この発明の実施の形態3によるリング発振器60の構成を示す回路図である。図11において、このリング発振器60はスイッチ回路SW1および7個のインバータ22を含む。
【0055】
リング発振器60において、出力ノードN11と出力ノードN18との間に7個のインバータ22が直列接続される。スイッチ回路SW1は、起動信号が「H」レベルの場合は出力ノードN11と出力ノードN18とを接続し、起動信号が「L」レベルの場合は出力ノードN11と出力ノードN17とを接続する。すなわち、起動信号が「H」レベルの場合はループ内のインバータ22の数が7個(奇数個)になるように、起動信号が「L」レベルの場合はループ内のインバータ22の数が6個(偶数個)になるように切換える。このため、起動信号が「L」レベルのときはループが安定状態になり、起動信号が「H」レベルのときはループが発振状態になる。出力ノードN11〜N18は、それぞれカウンタ13の対応するフリップフロップのクロック入力端子に接続される。
【0056】
このリング発振器60の動作は、図4(A)(B)(C)のタイムチャートで示した動作と同様である。図4(A)(B)(C)に示した3通りの起動信号のパターンに応じて、出力ノードN11〜N18に順次メタステーブルが発生する。メタステーブルの寿命は制御できないため、メタステーブルが消滅するノードはランダムである。したがって、メタステーブルが発生した時間から所定時間経過後(メタステーブル消滅後)のカウンタ13の出力信号は、メタステーブルの寿命に依存した真正乱数データとなる。
【0057】
以上のように、この実施の形態3では、リング発振器60の7個(奇数個)のインバータ22からなるループと6個(偶数個)のインバータ22からなるループとを切換えるスイッチ回路SW1を設け、メタステーブルの寿命を“0”,“1”に2値化することによって真正乱数データを生成する。したがって、小型で消費電力が小さく、高性能な乱数発生装置が実現できる。
【0058】
なお、ここではスイッチ回路SW1が7個のインバータ22からなるループと6個のインバータ22からなるループとを切換える場合について説明したが、スイッチ回路SW1が任意の奇数個のインバータ22からなるループと任意の偶数個のインバータ22からなるループとを切換えるように構成すれば同様の効果が得られる。
【0059】
[実施の形態3の変更例]
図12は、この発明の実施の形態3の変更例によるリング発振器70の構成を示す回路図である。図12において、このリング発振器70は、3個のインバータ22および3個のインバータ71、インバータ72、NANDゲート73〜75を含む。図12のリング発振器70は、図11のリング発振器60のスイッチ回路SW1を、NANDゲート73〜75およびインバータ72を用いて具体化したものである。すなわち、NANDゲート73〜75およびインバータ72によって、奇数個のインバータからなるループと偶数個のインバータからなるループとが切換えられる。
【0060】
リング発振器70において、3個のインバータ22は出力ノードN21と出力ノードN24との間に直列接続され、3個のインバータ71は出力ノード24と出力ノードN25との間に直列接続される。NANDゲート73は、その一方入力端子が出力ノードN24に接続され、その他方入力端子は起動信号を受ける。NANDゲート74は、その一方入力端子が出力ノードN25に接続され、その他方入力端子はインバータ72を介して起動信号を受ける。NANDゲート75は、その一方入力端子がNANDゲート73からの信号を受け、その他方端子がNANDゲート74からの信号を受け、その出力端子はノードN21に接続される。出力ノードN21〜N24は、それぞれカウンタ13の対応するフリップフロップのクロック入力端子に接続される。
【0061】
この構成により、起動信号が「H」レベルのときはNANDゲート74の出力信号が「H」レベルに固定されるため、3個のインバータ22およびNANDゲート73,75からなるループ、すなわち奇数個のインバータからなるループとみなすことができる。起動信号が「L」レベルのときはNANDゲート73の出力信号が「H」レベルに固定されるため、3個のインバータ22と3個のインバータ71とNANDゲート74,75からなるループ、すなわち偶数個のインバータからなるループとみなすことができる。このため、起動信号が「H」レベルのときはループが発振状態になり、起動信号が「L」レベルのときはループが安定状態になる。
【0062】
このリング発振器70の動作は、図11に示したリング発振器60の動作と同様である。なお、図3および図9で示したリング発振器12,50では、起動信号のタイミングによってはメタステーブルが発生しない場合がある。しかし、図12に示したリング発振器70では、確実にメタステーブルが発生する。
【0063】
図13は、図3に示したリング発振器12のメタステーブルが発生しない場合の動作を説明するためのタイムチャートであって、図4(C)と対比される図である。図13において、時刻t0より早い時刻t40に起動信号が「L」レベルに立下げられる。
【0064】
時刻t40において、起動信号が「L」レベルに立下げられたこと応じて、ループが発振状態から安定状態に遷移する。このとき、出力ノードN1の電位は、出力ノードN5の電位変化に応じて「H」レベルに立上げられた瞬間に、起動信号が「L」レベルに立下げられたこと応じて「L」レベルに立下げられる。このため、出力ノードN1〜N5にはメタステーブルが発生しない。
【0065】
図14(A)(B)は、図12に示したリング発振器70が確実にメタステーブルを発生する動作を説明するためのタイムチャートである。図14(A)は、時刻t0に起動信号が「L」レベルに立下げられた場合のタイムチャートであり、図14(B)は時刻t0よりも早い時刻t40に起動信号が「L」レベルに立下げられた場合のタイムチャートである。
【0066】
図14(A)において、時刻t0に起動信号が「L」レベルに立下げられたこと応じて、ループが発振状態から安定状態に遷移する。このとき、図4(C)に示したタイムチャートと同様に、出力ノードN21〜N25に順次メタステーブルが発生する。メタステーブルの波形は時間が経つにつれて徐々に小さくなって、ループを1周した後出力ノードN22で消滅する。なお、このメタステーブルの寿命は制御できない。すなわち、メタステーブルが消滅するノードはランダムである。この場合、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1におけるカウンタ13の出力信号は、メタステーブルの寿命に依存した真正乱数データとなる。
【0067】
図14(B)において、時刻t40までは出力ノードN21の電位が出力ノードN24の電位変化に応じて変動する発振状態である。時刻t40に起動信号が「L」レベルに立下げられたこと応じて、ループが発振状態から安定状態に遷移する。このとき、出力ノードN21の電位は、出力ノードN25の電位変化に応じて変動し、「H」レベルに立上げられた後「L」レベルに立下げられる。このため、出力ノードN21〜N25に順次メタステーブルが発生する。このように確実にメタステーブルが発生するのは、奇数個のインバータで形成されるループと偶数個のインバータで形成されるループとの遅延時間の差を利用しているためである。メタステーブルの波形は時間が経つにつれて徐々に小さくなって、ループを1周した後出力ノードN24で消滅する。なお、このメタステーブルの寿命は制御できない。すなわち、メタステーブルが消滅するノードはランダムである。この場合、時刻t40から所定時間経過後(メタステーブル消滅後)の時刻t41におけるカウンタ13の出力信号は、メタステーブルの寿命に依存した真正乱数データとなる。
【0068】
以上のように、この実施の形態3の変更例では、リング発振器70の奇数個のインバータからなるループと偶数個のインバータからなるループとを切換える切換回路を設け、これらのループの遅延時間の差を利用することによって、確実にメタステーブルを発生することができる。したがって、さらに高性能な乱数発生装置が実現できる。
【0069】
なお、ここではインバータ22が3個、インバータ71が3個の場合について説明したが、任意の奇数個のインバータからなるループと任意の偶数個のインバータからなるループとが切換えられるように構成すれば同様の効果が得られる。
【0070】
[実施の形態4]
図15は、この発明の実施の形態4によるリング発振器80の構成を示す回路図である。図15において、このリング発振器80はスイッチ回路SW11および7個のインバータ22を含む。
【0071】
リング発振器80において、出力ノードN11と出力ノードN18との間に7個のインバータ22が直列接続される。スイッチ回路SW11は、起動信号が「H」レベルの場合は出力ノードN11と出力ノードN14とを接続し、起動信号が「L」レベルの場合は出力ノードN11と出力ノードN18とを接続する。すなわち、起動信号が「H」レベルの場合はループ内のインバータ22が3個(奇数個)になるように、起動信号が「L」レベルの場合はループ内のインバータ22が7個(奇数個)になるように切換える。このため、ループは起動信号が「H」レベルのときは短ループ発振状態(発振周波数が高い)になり、起動信号が「L」レベルのときは長ループ発振状態(発振周波数が低い)になる。出力ノードN11〜N18は、それぞれカウンタ13の対応するフリップフロップのクロック入力端子に接続される。
【0072】
図16は、このリング発振器80の動作を説明するためのタイムチャートである。図16において、時刻t0に起動信号が「L」レベルに立下げられる。
【0073】
時刻t0において、起動信号が「L」レベルに立下げられたことに応じて、出力ノードN11〜N18に順次メタステーブルが発生する。メタステーブルの波形は時間が経つにつれて徐々に小さくなり、ループを1周した後出力ノードN1で消滅する。なお、このメタステーブルの寿命は制御できない。すなわち、メタステーブルが消滅するノードはランダムである。したがって、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1におけるカウンタ13の出力信号は、メタステーブルの寿命に依存した真正乱数データとなる。
【0074】
以上のように、この発明の実施の形態4では、リング発振器80の3個(奇数個)のインバータ22からなる短ループと7個(奇数個)のインバータ22からなる長ループとを切換えるスイッチ回路SW11を設けることによって、リング発振器80のループの遅延時間よりも短いパルス幅の起動信号を生成しなくても、起動信号を「L」レベルに立下げるだけで簡単にメタステーブルを発生することができる。したがって、より簡易な構成の乱数発生装置が実現できる。
【0075】
なお、ここでは、リング発振器80のインバータ22が7個の場合について説明したが、このインバータ22が任意の奇数個の場合において、短ループの発振周波数が長ル−プの発振周波数よりも十分高くなるように構成すれば同様の効果が得られる。
【0076】
また、このリング発振器は、図12に示したリング発振器70と同様にNANDゲートを用いて具体化することもできる。
【0077】
[実施の形態5]
図17は、この発明の実施の形態5によるリング発振器90の構成を示す回路図である。図17において、このリング発振器90は、5個のNANDゲート91を含む。
【0078】
各NANDゲート91は、その一方入力端子が前段のNANDゲート91の出力信号を受け、その他方入力端子が起動信号を受ける。ただし、初段のNANDゲート91は、その一方入力端子が最終段のNANDゲート91の出力信号を受ける。これら5個のNANDゲート91はループを形成し、このループは起動信号が「L」レベルのときは安定状態になり、起動信号が「H」レベルのときは発振状態になる。出力ノードN31〜N35は、それぞれカウンタ13の対応するフリップフロップのクロック入力端子に接続される。
【0079】
図18は、このリング発振器90の動作を説明するためのタイムチャートである。図18において、初期状態は出力ノードN31〜N35の電位が「H」レベルの安定状態である。時刻t0に起動信号が「H」レベルに立上げられたことに応じて、各NANDゲート91の出力ノードN31〜N35の電位が「L」レベル立下げられた後、ループが安定状態から発振状態に遷移する。このとき、出力ノードN32〜N35に順次メタステーブルが発生する。メタステーブルの波形は時間が経つにつれて徐々に小さくなって、出力ノードN35で消滅する。なお、このメタステーブルの寿命は制御できない。すなわち、メタステーブルが消滅するノードはランダムである。この場合、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1におけるカウンタ13の出力信号はメタステーブルの寿命に依存した真正乱数データとなる。
【0080】
以上のように、この実施の形態5では、リング発振器90のループの遅延時間よりも短いパルス幅の起動信号を生成しなくても、起動信号を「H」レベルに立上げるだけで簡単にメタステーブルを発生することができる。したがって、より簡易な構成の乱数発生装置が実現できる。
【0081】
なお、ここではNANDゲート91が5個の場合について説明したが、NANDゲート91が任意の奇数個の場合でも同様の効果が得られる。
【0082】
[実施の形態5の変更例]
図19は、この発明の実施の形態5の変更例によるリング発振器の構成を示す回路図であって、図18と対比される図である。図19のリング発振器100を参照して、図18のリング発振器90と異なる点は、NANDゲート91の数が6個に増えている点である。これらの6個のNANDゲート91はループを形成し、このループは起動信号が「L」レベルおよび「H」レベルのときに安定状態になる。出力ノードN31〜N36は、それぞれカウンタ13の対応するフリップフロップのクロック入力端子に接続される。
【0083】
初期状態は出力ノードN31〜N36の電位が「H」レベルの安定状態である。時刻t0に起動信号が「H」レベルに立上げられたことに応じて、各NANDゲート91の出力ノードN31〜N36の電位が「L」レベル立下げられた後、出力ノードN31,N33,N35の電位が「L」レベル、出力ノードN32,N34,N36の電位が「H」レベルの安定状態に遷移する。このとき、出力ノードN32〜N36に順次メタステーブルが発生する。メタステーブルの波形は時間が経つにつれて徐々に小さくなって消滅する。なお、このメタステーブルの寿命は制御できない。すなわち、メタステーブルが消滅するノードはランダムである。この場合、時刻t0から所定時間経過後(メタステーブル消滅後)の時刻t1におけるカウンタ13の出力信号はメタステーブルの寿命に依存した真正乱数データとなる。
【0084】
以上のように、この実施の形態5の変更例では、実施の形態4と同様にリング発振器100のループの遅延時間よりも短いパルス幅の起動信号を生成しなくても、起動信号を「H」レベルに立上げるだけで簡単にメタステーブルを発生することができる。したがって、より簡易な構成の乱数発生装置が実現できる。
【0085】
なお、ここではNANDゲート91が6個の場合について説明したが、NANDゲート91が任意の偶数個の場合でも同様の効果が得られる。
【0086】
[実施の形態6]
図20は、この発明の実施の形態6によるリング発振器110の構成を示すブロック図である。図20において、このリング発振器110はDL(遅延回路)111〜DL114を含む。
【0087】
DL111〜DL114は、1個または複数個の素子で構成され、正論理信号を出力する遅延回路(たとえば、偶数個のインバータを直列接続した遅延回路)である。すなわち、出力ノードN41が「H」レベルであれば出力ノードN42〜N44も「H」レベルになり、出力ノードN41が「L」レベルであれば出力ノードN42〜N44も「L」レベルになる。
【0088】
さらに、DL111〜DL114はそれぞれ同じ遅延特性を持つ遅延回路とする。すなわち、DL111〜DL114の出力信号が「L」レベルに立下げられるときの遅延時間はそれぞれ等しく、DL111〜DL114の出力信号が「H」レベルに立上げられるときの遅延時間はそれぞれ等しい。出力ノードN41〜N44は、それぞれカウンタ13の対応するフリップフロップのクロック入力端子に接続される。
【0089】
以上のような構成により、起動入力生成部11からの起動信号に応じてメタステーブルが発生した場合、メタステーブルが消滅するノードがいずれかのノードに偏る可能性が低くなる。
【0090】
したがって、この実施の形態6では、メタステーブルの寿命の偏りが少なくなり、質の高い真正乱数データが生成される。このため、さらに高性能な乱数発生装置が実現できる。
【0091】
[実施の形態6の変更例]
この発明の実施の形態6の変更例では、図20のDL111〜DL113は、1個または複数個の素子で構成され、負論理信号を出力する遅延回路(たとえば、奇数個のインバータを直列接続した遅延回路)とする。すなわち、出力ノードN41の電位が「H」レベルであれば、出力ノードN42,N44の電位が「L」レベル、出力ノードN43の電位が「H」レベルになる。
【0092】
さらに、DL111,DL113はそれぞれ同じ遅延特性を持つ遅延回路とし、DL112,114はそれぞれ同じ遅延特性を持つ遅延回路とし、DL111,DL113とDL112,114は相反するの遅延特性を持つ遅延回路とする。すなわち、DL111,DL113の出力信号が「L」レベルに立下げられるときの遅延時間が、「H」レベルに立上げられるときの遅延時間よりも長い場合は、DL112,DL114の出力信号が「L」レベルに立下げられるときの遅延時間が、「H」レベルに立上げられるときの遅延時間よりも短い。出力ノードN41〜N44は、それぞれカウンタ13の対応するフリップフロップのクロック入力端子に接続される。
【0093】
以上のような構成により、起動入力生成部11からの起動信号に応じてメタステーブルが発生した場合、メタステーブルが消滅するノードがいずれかのノードに偏る可能性が低くなる。
【0094】
したがって、この実施の形態6の変更例では、実施の形態6と同様にメタステーブルの寿命の偏りが少なくなり、質の高い真正乱数データが生成される。このため、さらに高性能な乱数発生装置が実現できる。
【0095】
[実施の形態7]
図21は、この発明の実施の形態7によるリング発振器110およびカウンタ120の構成を示すブロック図である。図21において、このリング発振器110はDL111〜DL114を含み、カウンタ120は4個のフリップフロップ23、ANDゲート121〜124およびEX−ORゲート125を含む。
【0096】
DL111〜DL114は、1個または複数個の素子で構成される遅延回路である。出力ノードN41〜N44は、それぞれ対応するフリップフロップ23のクロック入力端子に接続される。各フリップフロップ23は、その負論理出力端子とデータ入力端子とが接続された、1ビットのカウンタである。ANDゲート121〜124は、その一方入力端子がそれぞれ信号EN11〜EN14を受け、その他方入力端子がそれぞれ対応するフリップフロップ23の正論理出力信号を受け、その出力端子がEX−ORゲート125に接続される。EX−ORゲート125は、ANDゲート121〜124の出力信号の排他的論理和信号を出力する。
【0097】
以上のような構成により、この実施の形態7では、信号EN11〜EN14のうち1つだけ「H」レベルにし、他の3つを「L」レベルにしてEX−ORゲート125の出力信号を観測することによって、DL111〜114および各フリップフロップ23の回路テストを行なうことができる。たとえば、ループを発振状態にし、信号EN11を「H」レベル、信号EN12〜EN14を「L」レベルにしたときのEX−ORゲート125の出力信号を観測する。このとき、EX−ORゲート125の出力信号が正常であれば、DL111〜114および出力ノードN41に接続されたフリップフロップ23は正常であり、EX−ORゲート125の出力信号が異常であれば、DL111〜114または出力ノードN41に接続されたフリップフロップ23に障害があると判断できる。同様に、信号EN12〜EN14のうち1つだけを順次「H」レベルにして、それぞれの場合のEX−ORゲート125の出力信号を観測することによって、DL111〜114および各フリップフロップ23の回路テストを行なうことができる。
【0098】
[実施の形態8]
図22は、この発明の実施の形態8による乱数発生装置の概略構成を示すブロック図であって、図1と対比される図である。図22の乱数発生装置を参照して、図1の乱数発生装置と異なる点は、乱数生成制御部131および乱数生成ビット数カウンタ132が追加されている点である。
【0099】
図22において、乱数生成制御部131は、乱数発生要求信号を生成して真正乱数発生部1、LFSR2および乱数生成ビット数カウンタ132に与えるとともに、ライト信号を生成して乱数格納部4に与える。乱数生成ビット数カウンタ132は、乱数生成制御部131からの乱数発生要求信号のパルス数をカウントし、乱数格納部4が格納できるビット数だけカウントすると、乱数生成完了通知信号を生成してCPU5および乱数生成制御部131に与える。
【0100】
図23は、この乱数発生装置の動作を説明するためのタイムチャートである。図23において、このタイムチャートは乱数格納部4が8ビットの乱数データを格納する場合の各信号の波形を示す。
【0101】
真正乱数発生部1は、乱数生成制御部131からの乱数発生要求信号に応じて真正乱数データを生成する。真正乱数発生部1に含まれるリング発振器は、乱数発生要求信号が「H」レベルの時にループが発振状態になり、「L」レベルのときにループが安定状態になるものとする。LFSR2は、乱数生成制御部131からの乱数発生要求信号に応じて擬似乱数を生成する。
【0102】
乱数生成ビット数カウンタ132は、乱数生成制御部131からの乱数発生要求信号のパルス数を順次カウントする。時刻t50において、乱数生成ビットカウント値が“8”になったことに応じて乱数生成完了通知信号を「H」レベルに立上げるとともに、乱数生成ビットカウント値を“0”にリセットする。
【0103】
乱数生成制御部131は、乱数生成ビット数カウンタ132からの乱数生成完了通知信号が「H」レベルの期間、乱数発生要求信号を「L」レベルに保持する。これにより、乱数生成完了通知信号が「H」レベルにされている期間、真正乱数発生部1およびLFSR2は乱数生成動作を停止する。
【0104】
CPU5は、乱数生成ビットカウンタ132からの乱数生成完了通知信号が「H」レベルにされたことに応じて、時刻t51にリード信号を「H」レベルに立上げて乱数格納部4に格納された8ビットの乱数値を読出す。
【0105】
時刻t52において、乱数生成ビットカウンタ132は乱数生成完了通知信号を「L」レベルに立下げ、乱数生成制御部131は乱数発生要求信号を「H」レベルに立上げ、CPU5はリード信号を「L」レベルに立下げる。
【0106】
以上のように、この実施の形態8では、CPU5が乱数格納部4から乱数値を読出すときに、乱数発生要求信号を一定期間「L」レベルに保持し、真正乱数発生部1およびLFSR2の乱数生成動作を停止する。したがって、真正乱数発生部1およびLFSR2の動作頻度を少なくすることができる。これにより、乱数発生装置の低消費電力化が実現できる。
【0107】
[実施の形態8の変更例]
図24は、この発明の実施の形態8の変更例による乱数発生装置の概略構成を示すブロック図であって、図22と対比される図である。図24の乱数発生装置を参照して、図22の乱数発生装置と異なる点は、EX−ORゲート3と乱数格納部4との間にスイッチ回路SW21が追加されている点である。
【0108】
図24において、スイッチ回路SW21を切換えることによって、乱数格納部4が乱数生成ビット数カウンタ132からの乱数生成完了通知信号を受けるようにした場合、乱数生成制御部131および乱数生成ビット数カウンタ132の動作テストを行なうことができる。
【0109】
図25は、この乱数発生装置の動作を説明するためのタイムチャートである。図25において、乱数値は16進数で表示され、初期状態における乱数値を“0”とする。
【0110】
乱数生成制御部131は、周波数が等しく、所定の位相差を有する乱数発生要求信号およびライト信号を生成する。乱数格納部4は、ライト信号の立下りエッジに応じてその瞬間の乱数生成完了通知信号の値を記憶する。時刻t50までは、乱数生成完了通知信号は「L」レベル(“0”)なので、乱数格納部4の乱数値は“0”である。時刻t50に乱数生成完了通知信号が「H」レベル(“1”)に立上げられるため、時刻t60において乱数値は“1”になる。CPU5は、乱数生成完了通知信号が「H」レベル(“1”)にされたことに応じて、時刻t51にリード信号を「H」レベルに立上げて乱数格納部4の乱数値を読出す。このときに読出された乱数値が“1”であれば、乱数生成制御部131および乱数生成ビット数カウンタ132は正常であると判断される。一方、読出された乱数値が“1”以外の値であれば、乱数生成制御部131または乱数生成ビット数カウンタ132に障害が存在すると考えられる。時刻t52において、乱数生成ビットカウンタ132は乱数生成完了通知信号を「L」レベルに立下げ、乱数生成制御部131は乱数発生要求信号を「H」レベルに立上げ、CPU5はリード信号を「L」レベルに立下げる。
【0111】
以上のように、この実施の形態8の変更例では、乱数生成制御部131および乱数生成ビット数カウンタ132の動作テストを行なうことができる。
【0112】
[実施の形態9]
図26は、この発明の実施の形態9による乱数発生装置の概略構成を示すブロック図であって、図1と対比される図である。図26の乱数発生装置を参照して、図1の乱数発生装置と異なる点は、真正乱数発生部1の数が2個に増えている点である。
【0113】
図26において、2個の真正乱数発生部1は、それぞれCPU5からの乱数発生要求信号に応じて真正乱数データを生成し、EX−ORゲート3に出力する。2個の真正乱数発生部1の発振周波数は互いに異なるものとする。この構成によって、一方の真正乱数発生部1がメタステーブルを発生しない場合でも、他方の真正乱数発生部1がメタステーブルを発生すればよい。
【0114】
したがって、この実施の形態9では、真正乱数発生部1を複数個設けることによって、発生する乱数の質が高くなる。このため、さらに高性能な乱数発生装置が実現できる。
【0115】
なお、ここでは真正乱数発生部1が2個の場合について説明したが、互いに発振周波数の異なる真正乱数発生部1を3以上の複数個設けてもよい。この場合、いずれかの真正乱数発生部1がメタステーブルを発生すればよく、同様の効果が得られる。
【0116】
[実施の形態10]
図27は、この発明の実施の形態10による乱数発生装置の概略構成を示すブロック図であって、図1と対比される図である。図27の乱数発生装置を参照して、図1の乱数発生装置と異なる点は、真正乱数発生部1が起動入力生成部11と複数のリング発振器+カウンタ141に置換されている点と、EX−ORゲート3および乱数格納部4が複数個に増えている点である。
【0117】
図27において、起動入力生成部11は、図2に示した起動入力生成部11と同じであり、CPU5からの乱数発生要求信号に応じて起動信号を生成する。各リング発振器+カウンタ141は、図2に示したリング発振器12およびカウンタ13を含み、起動入力生成部11からの起動信号に応じて、真正乱数データを生成して対応するEX−ORゲート3に出力する。この構成により、1個の起動入力生成部11で複数の真正乱数データを並列して生成することができる。LFSR2は、CPU5からのクロック信号に応じて、擬似乱数データを生成して複数のEX−ORゲート3に出力する。なお、LFSR2は、CPU5からのクロック信号を受ける代わりに、CPU5からのライト信号を受けてもよい。各EX−ORゲート3は、対応するリング発振器+カウンタ141からの真正乱数データとLFSR2からの擬似乱数データとの排他的論理和データを対応する乱数格納部4に出力する。各乱数格納部4は、CPU5からのライト信号に応じて対応するEX−ORゲート3からの乱数データを記憶し、CPU5からのリード信号に応じて記憶した乱数値を出力する。
【0118】
以上のように、この実施の形態10では、複数のリング発振器+カウンタ141、複数のEX−ORゲート3および複数の乱数格納部4をそれぞれ並列に設けることによって、複数ビットの乱数データを同時に生成することができる。したがって、乱数をより高速に生成することができる。このため、さらに高性能な乱数発生装置が実現できる。
【0119】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0120】
【発明の効果】
以上のように、この発明に係る乱数発生装置では、ループ状に接続された複数の遅延回路と、複数の遅延回路で形成されたループ内に複数の遅延回路の総遅延時間よりも短いパルス幅のパルス信号を発生させるパルス発生回路と、複数の遅延回路のうちのある遅延回路の出力ノードに接続され、その出力ノードをパルス信号が通過した回数をカウントし、そのカウント値に基づいて真正乱数データ信号を出力するカウンタとが設けられる。この場合、ループ内に発生するメタステーブルの寿命を“0”,“1”に2値化することによって真正乱数データを生成する。したがって、小型で消費電力が小さく、高性能な乱数発生装置が実現できる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1による乱数発生装置の概略構成を示すブロック図である。
【図2】 図1に示した真正乱数発生部の構成を示すブロック図である。
【図3】 図2に示したリング発振器およびカウンタの構成を示す回路図である。
【図4】 図3に示したリング発振器およびカウンタの動作を説明するためのタイムチャートである。
【図5】 図1に示したLFSRの構成を示す回路図である。
【図6】 図1に示した乱数格納部の構成を示す回路図である。
【図7】 図6に示した乱数格納部の動作を説明するためのタイムチャートである。
【図8】 この発明の実施の形態1の変更例によるリング発振器およびカウンタの構成を示す回路図である。
【図9】 この発明の実施の形態2によるリング発振器およびカウンタの構成を示す回路図である。
【図10】 図9に示したリング発振器およびカウンタの動作を説明するためのタイムチャートである。
【図11】 この発明の実施の形態3によるリング発振器の構成を示す回路図である。
【図12】 この発明の実施の形態3の変更例によるリング発振器の構成を示す回路図である。
【図13】 図3に示したリング発振器のメタステーブルが発生しない場合の動作を説明するためのタイムチャートである。
【図14】 図12に示したリング発振器が確実にメタステーブルを発生する動作を説明するためのタイムチャートである。
【図15】 この発明の実施の形態4によるリング発振器の構成を示す回路図である。
【図16】 図15に示したリング発振器の動作を説明するためのタイムチャートである。
【図17】 この発明の実施の形態5によるリング発振器の構成を示す回路図である。
【図18】 図17に示したリング発振器の動作を説明するためのタイムチャートである。
【図19】 この発明の実施の形態5の変更例によるリング発振器の構成を示す回路図である。
【図20】 この発明の実施の形態6によるリング発振器の構成を示すブロック図である。
【図21】 この発明の実施の形態7によるリング発振器およびカウンタの構成を示すブロック図である。
【図22】 この発明の実施の形態8による乱数発生装置の概略構成を示すブロック図である。
【図23】 図22に示した乱数発生装置の動作を説明するためのタイムチャートである。
【図24】 この発明の実施の形態8の変更例による乱数発生装置の概略構成を示すブロック図である。
【図25】 図24に示した乱数発生装置の動作を説明するためのタイムチャートである。
【図26】 この発明の実施の形態9による乱数発生装置の概略構成を示すブロック図である。
【図27】 この発明の実施の形態10による乱数発生装置の概略構成を示すブロック図である。
【符号の説明】
1 真正乱数発生部、2 LFSR、3,21,24,32,125 EX−ORゲート、4 乱数格納部、5 CPU、11 起動入力生成部、12,50,60,70,80,90,100,110 リング発振器、13,120 カウンタ、22,71,72 インバータ、23,31,41 フリップフロップ、33,121〜124 ANDゲート、34 ORゲート、42 バッファ回路、51,73〜75,91 NANDゲート、111〜114 遅延回路、131 乱数生成制御部、132 乱数生成ビット数カウンタ、141 リング発振器+カウンタ。

Claims (19)

  1. 乱数発生装置であって、
    ループ状に接続された複数の遅延回路、
    前記複数の遅延回路で形成されたループ内に前記複数の遅延回路の総遅延時間よりも短いパルス幅のパルス信号を発生させるパルス発生回路、および
    前記複数の遅延回路のうちのある遅延回路の出力ノードに接続され、その出力ノードを前記パルス信号が通過した回数をカウントし、そのカウント値に基づいて真正乱数データ信号を出力するカウンタを備える、乱数発生装置。
  2. 前記複数の遅延回路のうちの1つの遅延回路は論理ゲート回路を含み、
    前記論理ゲート回路の一方入力ノードは前段の遅延回路の出力信号を受け、その出力ノードは後段の遅延回路の入力ノードに接続され、
    前記パルス発生回路は、前記論理ゲート回路の他方入力ノードに起動信号を与えて前記パルス信号を発生させる、請求項1に記載の乱数発生装置。
  3. 前記論理ゲート回路は排他的論理和ゲート回路であり、
    前記1つの遅延回路以外の各遅延回路はインバータである、請求項2に記載の乱数発生装置。
  4. 前記論理ゲート回路はNANDゲート回路であり、
    前記1つの遅延回路以外の各遅延回路はインバータである、請求項2に記載の乱数発生装置。
  5. 前記複数の遅延回路の各々は論理ゲート回路を含み、
    各論理ゲート回路の一方入力ノードは前段の論理ゲート回路の出力信号を受け、
    前記パルス発生回路は、各論理ゲート回路の他方入力ノードに起動信号を与えて前記パルス信号を発生させる、請求項1に記載の乱数発生装置。
  6. 前記論理ゲート回路はNANDゲート回路である、請求項5に記載の乱数発生装置。
  7. ループ状に接続される遅延回路の数は変更可能になっており、
    前記パルス発生回路は、ループ状に接続される遅延回路の数を変えることによって前記パルス信号を発生させる、請求項1に記載の乱数発生装置。
  8. 前記パルス発生回路は、起動信号が第1の電位の場合は第1の数の遅延回路をループ状に接続してリングオシレータを構成し、前記起動信号が第2の電位の場合は第2の数の遅延回路をループ状に接続して減衰回路を構成する、請求項7に記載の乱数発生装置。
  9. 前記パルス発生回路は、起動信号が第1の電位の場合は第1の数の遅延回路をループ状に接続して第1のリングオシレータを構成し、前記起動信号が第2の電位の場合は第2の数の遅延回路をループ状に接続して第2のリングオシレータを構成する、請求項7に記載の乱数発生装置。
  10. 前記複数の遅延回路は、
    出力信号が第1の電位から第2の電位まで第1の遅延時間で変化し、出力信号が第2の電位から第1の電位まで第2の遅延時間で変化する第1のインバータ、および
    出力信号が第1の電位から第2の電位まで前記第2の遅延時間で変化し、出力信号が第2の電位から第1の電位まで前記第1の遅延時間で変化する第2のインバータを交互に含む、請求項1から請求項9までのいずれかに記載の乱数発生装置。
  11. 互いに異なる遅延回路の出力ノードに接続された複数のカウンタを備え、
    さらに、前記複数のカウンタからの真正乱数データ信号を加算する第1の加算回路を備える、請求項1から請求項10までのいずれかに記載の乱数発生装置。
  12. 前記カウンタは奇数個設けられている、請求項11に記載の乱数発生装置。
  13. 前記複数のカウンタに対応する各遅延回路の出力信号の論理レベルは同じである、請求項11または請求項12に記載の乱数発生装置。
  14. さらに、前記複数のカウンタのうちのいずれか1つのカウンタを選択し、選択したカウンタの出力信号のみを前記第1の加算回路に与える選択回路を備える、請求項11から請求項13までのいずれかに記載の乱数発生装置。
  15. さらに、0と1の出現率が等しい擬似乱数データ信号を出力する擬似乱数発生回路、および
    前記第1の加算回路からの真正乱数データ信号と前記擬似乱数発生回路からの擬似乱数データ信号とを加算して乱数データ信号を出力する第2の加算回路を備える、請求項11から請求項14までのいずれかに記載の乱数発生装置。
  16. さらに、前記第2の加算回路からの乱数データ信号を順次記憶し、予め定められたビット数の乱数データ信号を含む乱数値を生成する乱数格納回路を備える、請求項15に記載の乱数発生装置。
  17. さらに、前記乱数格納回路で記憶された乱数データ信号のビット数をカウントするビット数カウンタ、および
    前記ビット数カウンタによって予め定められたビット数がカウントされたことに応じて、前記乱数格納回路から前記乱数値を読み出す制御回路を備える、請求項16に記載の乱数発生装置。
  18. 前記ビット数カウンタによって予め定められたビット数がカウントされた後の予め定められた期間だけ乱数生成動作が停止され、前記制御回路は前記予め定められた期間に前記乱数格納回路から前記乱数値を読み出す、請求項17に記載の乱数発生装置。
  19. 前記ビット数カウンタは、前記予め定められたビット数をカウントしたことに応じて、制御信号を第1の電位から第2の電位に変化させ、さらに、テスト時に、前記乱数データ信号の代わりに前記制御信号を前記乱数格納回路に与える切換回路を備える、請求項17または請求項18に記載の乱数発生装置。
JP2003179798A 2003-06-24 2003-06-24 乱数発生装置 Expired - Lifetime JP4248950B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2003179798A JP4248950B2 (ja) 2003-06-24 2003-06-24 乱数発生装置
TW093115596A TWI286289B (en) 2003-06-24 2004-06-01 Random number generator
KR1020040047200A KR100668554B1 (ko) 2003-06-24 2004-06-23 링 발진 회로를 구비한 난수 발생 장치
CNA2008100956490A CN101290566A (zh) 2003-06-24 2004-06-24 具备环形振荡电路的随机数产生装置
CNB2004100616927A CN100399261C (zh) 2003-06-24 2004-06-24 具备环形振荡电路的随机数产生装置
US10/874,360 US7424500B2 (en) 2003-06-24 2004-06-24 Random number generator with ring oscillation circuit
US12/193,105 US8260835B2 (en) 2003-06-24 2008-08-18 Random number generator with ring oscillation circuit
US13/565,591 US9052975B2 (en) 2003-06-24 2012-08-02 Random number generator with ring oscillation circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003179798A JP4248950B2 (ja) 2003-06-24 2003-06-24 乱数発生装置

Publications (2)

Publication Number Publication Date
JP2005018251A JP2005018251A (ja) 2005-01-20
JP4248950B2 true JP4248950B2 (ja) 2009-04-02

Family

ID=33535093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003179798A Expired - Lifetime JP4248950B2 (ja) 2003-06-24 2003-06-24 乱数発生装置

Country Status (5)

Country Link
US (3) US7424500B2 (ja)
JP (1) JP4248950B2 (ja)
KR (1) KR100668554B1 (ja)
CN (2) CN100399261C (ja)
TW (1) TWI286289B (ja)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325021B2 (en) * 2003-03-14 2008-01-29 Nxp B.V. VLSI implementation of metastability-based random number generator using delay ladders
JP4248950B2 (ja) * 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
CN1991859B (zh) * 2005-12-30 2010-05-05 财团法人工业技术研究院 随机数产生器及其种子计数值产生单元
WO2007099716A1 (ja) * 2006-03-01 2007-09-07 Bellwood International, Inc. データ通信システムおよび可搬型メモリ
US7594104B2 (en) * 2006-06-09 2009-09-22 International Business Machines Corporation System and method for masking a hardware boot sequence
US7774616B2 (en) * 2006-06-09 2010-08-10 International Business Machines Corporation Masking a boot sequence by providing a dummy processor
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US20070288738A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for selecting a random processor to boot on a multiprocessor system
US20070288740A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for secure boot across a plurality of processors
KR100921815B1 (ko) * 2007-06-18 2009-10-16 주식회사 애트랩 지연시간 측정회로 및 지연시간 측정 방법
DE102007040343B4 (de) * 2007-08-27 2010-12-30 Siemens Ag Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
US8583712B2 (en) * 2007-09-18 2013-11-12 Seagate Technology Llc Multi-bit sampling of oscillator jitter for random number generation
KR101481572B1 (ko) * 2007-10-19 2015-01-26 삼성전자주식회사 난수 발생 장치
US8180816B2 (en) * 2007-11-30 2012-05-15 Infineon Technologies Ag Control of a pseudo random number generator and a consumer circuit coupled thereto
JP2009193523A (ja) * 2008-02-18 2009-08-27 Seiko Epson Corp 乱数発生回路、電子機器、およびi/oセルのテスト方法
US8131789B2 (en) * 2008-03-28 2012-03-06 Atmel Corporation True random number generator
DE102008018678B4 (de) * 2008-04-14 2011-02-03 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
DE102008022918A1 (de) * 2008-05-09 2009-12-03 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
US8081037B2 (en) * 2008-06-11 2011-12-20 Qualcomm Incorporated Ring oscillator using analog parallelism
DE102008048292B4 (de) * 2008-09-22 2012-07-12 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erzeugen einer Zufallsbitfolge
JP5074359B2 (ja) * 2008-11-12 2012-11-14 日本電信電話株式会社 乱数生成回路
US8539009B2 (en) * 2008-12-16 2013-09-17 Lsi Corporation Parallel true random number generator architecture
US9594541B2 (en) * 2009-01-06 2017-03-14 Inside Secure System and method for detecting FRO locking
US8886692B2 (en) 2009-02-09 2014-11-11 Samsung Electronics Co., Ltd. Apparatus for generating random number
KR101579837B1 (ko) 2009-02-09 2015-12-24 삼성전자주식회사 난수 발생 장치 및 난수 발생 방법
US9335971B1 (en) * 2009-02-27 2016-05-10 Calamp Corp. High entropy random bit source
CN101510150B (zh) * 2009-03-24 2014-12-31 北京中星微电子有限公司 随机数产生装置
US20100281088A1 (en) * 2009-04-29 2010-11-04 Psigenics Corporation Integrated true random number generator
US8522065B2 (en) * 2009-09-06 2013-08-27 Percello Ltd. Generating a random number in an existing system on chip
CA2781608C (en) * 2009-11-25 2018-11-06 Aclara RF Systems Inc. Random number generator
KR20110060033A (ko) * 2009-11-30 2011-06-08 박옥희 해상 구조물용 커플링
KR101646506B1 (ko) * 2009-11-30 2016-08-10 삼성전자주식회사 난수 발생기
US8583711B2 (en) * 2009-12-02 2013-11-12 Seagate Technology Llc Random number generation system with ring oscillators
US8635260B2 (en) * 2009-12-02 2014-01-21 Seagate Technology Llc Random number generator incorporating channel filter coefficients
JP5356362B2 (ja) * 2010-12-15 2013-12-04 日本電信電話株式会社 乱数生成回路
JP6083586B2 (ja) * 2011-01-19 2017-02-22 公立大学法人首都大学東京 リング発振器
US8285767B2 (en) * 2011-03-07 2012-10-09 Arm Limited Apparatus and method for generating a random number
CN102736890A (zh) * 2011-04-15 2012-10-17 深圳市证通电子股份有限公司 基于开环结构的高速随机数发生器
US8788551B2 (en) 2011-11-15 2014-07-22 Seagate Technology Llc Random number generation using switching regulators
US9201630B2 (en) * 2012-02-10 2015-12-01 Seagate Technology Llc Random number generation using startup variances
CN103049242B (zh) * 2012-12-04 2015-09-30 清华大学 数字式真随机数发生器电路
JP2014123284A (ja) * 2012-12-21 2014-07-03 Makita Corp 乱数発生装置
KR20140108362A (ko) 2013-02-25 2014-09-11 삼성전자주식회사 난수 발생기
US9846568B2 (en) 2013-05-23 2017-12-19 Synopsys, Inc. System and method for dynamic tuning feedback control for random number generator
DE102013210147A1 (de) * 2013-05-31 2014-12-18 Siemens Aktiengesellschaft Erzeugen von Zufallsbits
US9009495B2 (en) 2013-06-28 2015-04-14 Envieta, LLC High speed cryptographic combining system, and method for programmable logic devices
DE102013219768A1 (de) * 2013-09-30 2015-04-02 Siemens Aktiengesellschaft Erzeugen von Zufallsbits
CN104714774A (zh) * 2013-12-14 2015-06-17 中国航空工业集团公司第六三一研究所 一种基于数字电路的真随机数的产生方法
US9189202B2 (en) 2013-12-23 2015-11-17 The University Of Massachusetts Generate random numbers using metastability resolution time
CN104866280B (zh) * 2014-02-26 2018-07-27 紫光同芯微电子有限公司 一种利用存储器单元实现随机数发生的方法
TWI497409B (zh) * 2014-07-18 2015-08-21 Winbond Electronics Corp 亂數產生器及其亂數產生方法
CN104317551A (zh) * 2014-10-17 2015-01-28 北京德加才科技有限公司 一种超高安全的真随机数生成方法及真随机数生成系统
CN104298486B (zh) * 2014-10-23 2018-02-27 山东维固信息科技股份有限公司 一种嵌入式数据安全系统用soc芯片的随机数发生器
KR101571635B1 (ko) * 2014-10-30 2015-11-24 엘에스산전 주식회사 Plc 고속 카운터의 동작 방법
US9557964B2 (en) 2014-11-21 2017-01-31 Winbond Electronics Corp. Random number generator and method for generating random number thereof
CN104506166B (zh) * 2014-11-25 2017-06-13 武汉工程大学 无序脉冲发生电路
JP6287785B2 (ja) * 2014-11-28 2018-03-07 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP6423277B2 (ja) * 2015-01-09 2018-11-14 株式会社メガチップス 乱数生成装置及び乱数生成方法
CN106291148A (zh) * 2015-05-20 2017-01-04 中芯国际集成电路制造(上海)有限公司 测试电路及其测试方法
US9891888B2 (en) * 2015-06-17 2018-02-13 Nxp B.V. Digital true random number generator based on S-boxes
US9910639B2 (en) 2015-11-30 2018-03-06 International Business Machines Corporation Random number generation using threshold switching mechanism
US10520975B2 (en) 2016-03-03 2019-12-31 Regents Of The University Of Minnesota Polysynchronous stochastic circuits
CN105870778A (zh) * 2016-06-21 2016-08-17 中国工程物理研究院应用电子学研究所 大功率激光引信脉冲驱动源
CN106293617B (zh) * 2016-08-12 2018-11-09 上海坚芯电子科技有限公司 真随机数发生器
CN106325814B (zh) * 2016-08-12 2018-11-20 西安电子科技大学 基于双环耦合振荡电路的真随机数生成器
US10235138B2 (en) 2016-09-30 2019-03-19 International Business Machines Corporation Instruction to provide true random numbers
US10331410B2 (en) 2016-11-09 2019-06-25 Google Llc Hardened random number generator with ring oscillator collapse time random truncation
CN106775583B (zh) * 2016-11-18 2019-03-05 杭州电子科技大学 一种高速真随机数的产生方法
US10740686B2 (en) 2017-01-13 2020-08-11 Regents Of The University Of Minnesota Stochastic computation using pulse-width modulated signals
CN106875878B (zh) * 2017-02-27 2020-04-14 京东方科技集团股份有限公司 温度检测电路、显示面板及显示装置
WO2019030667A1 (en) * 2017-08-08 2019-02-14 Politechnika Warszawska RANDOM NUMBER GENERATOR
PL236966B1 (pl) * 2017-08-08 2021-03-08 Politechnika Warszawska Generator losowy
PL237197B1 (pl) * 2017-08-08 2021-03-22 Politechnika Warszawska Generator losowy
PL238519B1 (pl) * 2017-08-08 2021-08-30 Politechnika Warszawska Generator fizycznie niekopiowalnych kluczy kryptograficznych
PL237476B1 (pl) * 2017-08-08 2021-04-19 Politechnika Warszawska Generator fizycznie niekopiowalnych kluczy kryptograficznych
PL236963B1 (pl) * 2017-08-08 2021-03-08 Politechnika Warszawska Generator losowy
PL236964B1 (pl) * 2017-08-08 2021-03-08 Politechnika Warszawska Generator losowy
PL236965B1 (pl) * 2017-08-08 2021-03-08 Politechnika Warszawska Generator losowy
JP6867594B2 (ja) * 2017-09-13 2021-04-28 富士通株式会社 乱数生成回路及び乱数生成回路の制御方法
KR102420037B1 (ko) * 2017-11-29 2022-07-12 서울대학교산학협력단 실시간 캘리브레이션을 지원하는 tdc
US10996929B2 (en) 2018-03-15 2021-05-04 Regents Of The University Of Minnesota High quality down-sampling for deterministic bit-stream computing
TWI662471B (zh) * 2018-05-31 2019-06-11 華邦電子股份有限公司 真實隨機數產生裝置及其產生方法
US10748591B2 (en) * 2019-01-13 2020-08-18 Ememory Technology Inc. Random code generator
US11023208B2 (en) 2019-01-23 2021-06-01 International Business Machines Corporation True random number generator
JP7317297B2 (ja) * 2019-03-05 2023-07-31 ブリルニクスジャパン株式会社 固体撮像装置、固体撮像装置の駆動方法、および電子機器
US11126404B2 (en) * 2019-05-20 2021-09-21 Nxp B.V. Random number generator using multiple entropy sources and a method for generating random numbers
CN112291056B (zh) * 2019-07-25 2024-02-23 熵码科技股份有限公司 加密密钥生成器及传输系统
CN111782179B (zh) * 2020-06-05 2023-09-01 上海赛昉科技有限公司 一种真随机数发生器
CN111969981B (zh) * 2020-10-21 2021-01-12 鹏城实验室 一种时钟产生电路和随机数产生电路
KR20220095576A (ko) 2020-12-30 2022-07-07 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US11601120B2 (en) * 2021-02-03 2023-03-07 Nuvoton Technology Corporation Attack-resistant ring oscillators and random-number generators
US11962305B2 (en) 2021-06-09 2024-04-16 Nxp B.V. Ring oscillator based true random number generator and a method for generating a random number
KR20230011092A (ko) * 2021-07-13 2023-01-20 삼성전자주식회사 링 오실레이터, 이를 포함하는 난수 생성 장치 및 난수 생성 장치의 동작 방법
CN116582111B (zh) * 2023-05-23 2024-02-23 合芯科技有限公司 振荡环电路及测量时序电路读取时间的装置和方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769777A (en) * 1986-06-25 1988-09-06 General Electric Company Unpredictable bit stream generator
US4905176A (en) 1988-10-28 1990-02-27 International Business Machines Corporation Random number generator circuit
JPH06314188A (ja) 1993-04-28 1994-11-08 N T T Data Tsushin Kk 乱数生成装置
JPH0946136A (ja) 1995-08-02 1997-02-14 Sony Corp ガウス雑音発生装置および方法
US5903522A (en) * 1996-04-19 1999-05-11 Oak Technology, Inc. Free loop interval timer and modulator
JP3439606B2 (ja) 1996-08-02 2003-08-25 沖電気工業株式会社 リング発振回路
US6194971B1 (en) * 1997-04-21 2001-02-27 Ati Technologies, Inc. Method and apparatus for phase shifting a controlled oscillator and applications thereof
US5864491A (en) * 1997-11-10 1999-01-26 Telefonaktiebolaget L M Ericsson Apparatus and associated method for generating a pseudo random number
US6065029A (en) * 1998-05-26 2000-05-16 N*Able Technologies, Inc. Method and system for providing a random number generator
JP3680091B2 (ja) 1999-04-13 2005-08-10 株式会社日立製作所 乱数生成装置
JP3650826B2 (ja) 1999-11-05 2005-05-25 株式会社 沖マイクロデザイン 乱数発生集積回路
FR2802661B1 (fr) * 1999-12-21 2003-10-31 Bull Sa Generateur de nombres aleatoires haut debit
TW536672B (en) * 2000-01-12 2003-06-11 Hitachi Ltd IC card and microcomputer
US6631390B1 (en) * 2000-03-06 2003-10-07 Koninklijke Philips Electronics N.V. Method and apparatus for generating random numbers using flip-flop meta-stability
US6480072B1 (en) 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
US6327734B1 (en) 2000-04-28 2001-12-11 Philips Oral Healthcare, Inc. Force sensing system for a toothbrush
JP4251759B2 (ja) 2000-05-19 2009-04-08 Okiセミコンダクタ株式会社 乱数発生回路
JP2001344094A (ja) 2000-05-31 2001-12-14 Ntt Electornics Corp 乱数発生回路
JP3762955B2 (ja) 2000-06-05 2006-04-05 松下電器産業株式会社 データ再生装置
JP3446742B2 (ja) 2001-02-07 2003-09-16 いわき電子株式会社 乱数発生装置および確率発生装置
JP3487299B2 (ja) 2001-06-06 2004-01-13 いわき電子株式会社 乱数発生装置および確率発生装置
US6807553B2 (en) 2001-04-23 2004-10-19 Safenet B.V. Digital true random number generator circuit
JP2003131867A (ja) 2001-08-15 2003-05-09 Syst Kogaku Kk 乱数生成装置
TW531659B (en) 2001-12-11 2003-05-11 Chung Shan Inst Of Science Single-pulse radar multi-target real-time simulation generator
US7315874B2 (en) * 2003-03-14 2008-01-01 Nxp B.V. Electronic circuit for random number generation
JP4248950B2 (ja) * 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
WO2007034540A1 (ja) * 2005-09-20 2007-03-29 Fujitsu Limited 電源電圧調整装置
JP4812085B2 (ja) * 2005-12-28 2011-11-09 ルネサスエレクトロニクス株式会社 半導体集積回路
US7612622B2 (en) * 2008-03-27 2009-11-03 Intel Corporation Method and device for determining a duty cycle offset
KR101094200B1 (ko) * 2010-01-08 2011-12-14 (주)에이젯 메모리 모듈 테스트를 위한 메모리 모듈 테스터 장치 및 테스트 방법

Also Published As

Publication number Publication date
JP2005018251A (ja) 2005-01-20
CN100399261C (zh) 2008-07-02
US9052975B2 (en) 2015-06-09
US20080313249A1 (en) 2008-12-18
US20040264233A1 (en) 2004-12-30
CN1573681A (zh) 2005-02-02
CN101290566A (zh) 2008-10-22
TWI286289B (en) 2007-09-01
KR20050001377A (ko) 2005-01-06
US20120303690A1 (en) 2012-11-29
US7424500B2 (en) 2008-09-09
TW200504586A (en) 2005-02-01
US8260835B2 (en) 2012-09-04
KR100668554B1 (ko) 2007-01-16

Similar Documents

Publication Publication Date Title
JP4248950B2 (ja) 乱数発生装置
US7376687B2 (en) Pseudo-random number generator
JP4471901B2 (ja) 乱数発生装置
CN111694545B (zh) 随机数产生器
JP2003173254A (ja) 乱数生成回路
JP2006294001A (ja) 乱数発生回路
JP2006139756A (ja) 乱数発生器および乱数を発生する方法
KR20140110142A (ko) 난수 발생기
US10187044B1 (en) Bistable-element for random number generation
US10613832B2 (en) Random number generating system and random number generating method thereof
TWI579763B (zh) 具有亂數產生模式的儲存電路
US20100201409A1 (en) Frequency Divider Circuit
JP5119417B2 (ja) 擬似乱数生成装置
JP5356362B2 (ja) 乱数生成回路
KR20120101836A (ko) 난수 발생 장치
JP2006197367A (ja) カウンタ回路と、それを含む半導体装置
JPH11312078A (ja) 乱数発生回路を有する半導体装置
TW202234852A (zh) 隨機數產生器
JP5056262B2 (ja) データ送信装置、データ受信装置、データ転送装置、及び電子機器
JP2009053906A (ja) 乱数発生装置
JP2016206917A (ja) 半導体集積回路装置及びそれを用いた電子機器
JP3896037B2 (ja) プログラマブル・デジタル信号発生回路
JP2002236582A (ja) 乱数発生装置および確率発生装置
JP2009294873A (ja) 乱数発生装置
JP2000091907A (ja) 高速カウンタ回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081222

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

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

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

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4248950

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

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

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

Free format text: PAYMENT UNTIL: 20120123

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140123

Year of fee payment: 5

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term