JP2005044090A - 乱数発生装置 - Google Patents

乱数発生装置 Download PDF

Info

Publication number
JP2005044090A
JP2005044090A JP2003202219A JP2003202219A JP2005044090A JP 2005044090 A JP2005044090 A JP 2005044090A JP 2003202219 A JP2003202219 A JP 2003202219A JP 2003202219 A JP2003202219 A JP 2003202219A JP 2005044090 A JP2005044090 A JP 2005044090A
Authority
JP
Japan
Prior art keywords
random number
number generator
clock signal
oscillator
circuit
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.)
Granted
Application number
JP2003202219A
Other languages
English (en)
Other versions
JP2005044090A5 (ja
JP4290500B2 (ja
Inventor
Naoki Handa
直樹 半田
Koji Takeda
幸治 竹田
Morohisa Yamamoto
師久 山本
Masafumi Oshiba
雅史 大柴
Shigemitsu Tawara
繁充 田原
Atsuo Omiya
厚生 近江谷
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
Renesas Semiconductor Package and Test Solutions Co Ltd
Original Assignee
Renesas Technology Corp
Renesas Northern Japan Semiconductor Inc
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, Renesas Northern Japan Semiconductor Inc filed Critical Renesas Technology Corp
Priority to JP2003202219A priority Critical patent/JP4290500B2/ja
Publication of JP2005044090A publication Critical patent/JP2005044090A/ja
Publication of JP2005044090A5 publication Critical patent/JP2005044090A5/ja
Application granted granted Critical
Publication of JP4290500B2 publication Critical patent/JP4290500B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Manipulation Of Pulses (AREA)

Abstract

【課題】熱雑音による電流変化を利用したアナログ的な手段とディジタル的な手段の双方を用いて乱数を発生する時のランダム性を強化する。
【解決手段】半導体デバイスの熱雑音による電流変化を利用してビット列を発生する第1の乱数発生部(1)と、第1の乱数発生部で発生されたビット列を入力し、帰還路付きのシフトレジスタを用いて乱数を発生する第2の乱数発生部(2)を有する。第1の乱数発生部は、前記電流変化に基いて発振周波数が変化される発振器を用いて第1のクロック信号(10)を発生する第1のクロック発生部(11)と、第1のクロック信号よりも周波数の低い第2のクロック信号(12)を発生する第2のクロック発生部(13)と、第2クロック信号に同期して第1クロック信号をラッチするサンプル部(14)を有し、サンプル部からの出力に基いて前記ビット列(3)を発生する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は乱数発生装置に係り、例えば暗号演算等セキュリティ機能に必要なシステムに使用される組み込み型マイクロコントローラ若しくはデータプロセッサ等の半導体集積回路に適用して有効な技術に関する。
【0002】
【従来の技術】
IDや暗号キーの付与等に利用される乱数発生装置には高いランダム性が要求される。例えば公知のM(Maximum Length Sequence)系列疑似乱数発生回路はシフトレジスタを有しそのシフトレジスタの所定ノードをXOR(排他的論理和ゲート)を介してシフトレジスタの先頭に帰還させる構成を有し、疑似乱数ビット列を発生する。このM系列疑似乱数発生回路は、シフトレジスタの初期値とシフトクロック数がわかれば、出力のビットが分かり、また、シフトレジスタのビット数にて決まる周期で、乱数列が繰り返す再現性がある為、真の乱数列を発生することはできない。
【0003】
従来、高いランダム性を実現するために、ノイズ発生源が発生するノイズを帯域制限増幅器により帯域制限して増幅し、これをサンプルホールド回路で標本化してディジタル信号に変換し、得られた信号をM系列符号発生回路においてソフトウェア処理で乱数を発生する乱数発生回路が提供されている(特許文献1)。また、熱雑音を増幅し、これを電圧制御発振器に入力しては低周波数信号を発生し、この低周波数信号に同期して高周波数信号を順次ラッチし、これをフォンノイマンコレクタで論理値1と0の配分をバランスさせて乱数を発生する技術が提供されている(非特許文献1の図1、図2、図3)。
【0004】
【特許文献1】
特開2000−66879号公報
【非特許文献1】
Benjamin Jun and Paul Kocker, ”THE INTEL RANDOM NUMBER GENERATOR”, CRYPTOGRAPHY RESEARCH, INC. WHITE PAPER PREPARED FOR INTEL CORPORATION, p.1−8, Aprill 22, 1999.
【0005】
【発明が解決しようとする課題】
上記従来技術はノイズによるランダム性に着目しているが、ノイズのランダム成分を取り出すための手段である、ノイズの帯域制限増幅器、熱雑音の増幅について具体的な記載がない。また、ノイズによるランダム性の強化をM系列符号発生回路やフォンノイマンコレクタというディジタル回路部分で行うだけである。アナログ回路部分に対してもランダム性を更に強化する余地のあることが本発明者によって見出された。更に、ディジタル回路部分に対してもM系列疑似乱数発生回路又はフォンノイマンコレクタ以外にランダム性を強化する余地がある。
【0006】
本発明の目的は、熱雑音による電流変化を利用したアナログ的な手段とディジタル的な手段の双方を用いて乱数を発生する時のランダム性を強化することにある。
【0007】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0008】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0009】
乱数発生装置は、半導体デバイスの熱雑音による電流変化を利用してビット列(3)を発生する第1の乱数発生部(1)と、前記第1の乱数発生部で発生されたビット列を入力し、帰還路付きのシフトレジスタを用いて乱数を発生する第2の乱数発生部(2)を有する。前記第1の乱数発生部は、前記電流変化に基いて発振周波数が変化される発振器を用いて第1のクロック信号(10)を発生する第1のクロック発生部(11)と、前記第1のクロック信号よりも周波数の低い第2のクロック信号(12)を発生する第2のクロック発生部(13)と、前記第2クロック信号に同期して前記第1クロック信号をラッチするサンプル部(14)を有し、前記サンプル部からの出力信号(16)に基いて前記ビット列を発生する。
【0010】
M系列疑似乱数発生回路と類似の第2の乱数発生部には前段の第1の乱数発生部からのビット列を供給するので、M系列疑似乱数発生回路における乱数の周期性に対してランダム性を向上させることができる。このとき、第1の乱数発生部における第1のクロック発生部では半導体デバイスの熱雑音による電流変化に基いて発振周波数が変化される発振器を用いて第1のクロック信号を発生するから、制限帯域増幅による熱雑音の増幅に比べて熱雑音のランダム成分を容易に得ることができ、この点において、ランダム性の向上に資することができる。
【0011】
本発明の具体的な形態として、前記第2のクロック発生部は、前記電流変化に基いて発振周波数が変化される発振器を有する。これにより、サンプル部におけるサンプリングされる同期信号の他にサンプリングする信号にもランダム性が付加され、乱数のランダム性強化に資することができる。
【0012】
前記第1のクロック発生部は、前記電流変化を受ける第1の発振器(20)と前記第1の発振器の発振出力を入力して発振する第2の発振器(22)とを有する。第2の発振器は電圧制御発振器であり、第1の発振器は第2の発振器の制御電圧を生成する。直列2段の発振器を用いることにより熱雑音による電流変化から周波数変化のランダム性を大きく採ることが可能になり、乱数のランダム性強化につながる。
【0013】
前記第1の発振器は例えば前記電流変化を生ずる電流源(40)を有する。本発明の望ましい形態では、前記電流源が動作電源系の同相のノイズ成分をキャンセルする差動アンプ(50)を出力段に有するのがよい。半導体デバイスの熱雑音に基板電流の影響が重畳されるような場合に熱雑音によるランダム成分を大きく取り出すことができるからでる。
【0014】
本発明の望ましい形態では、前記第1の乱数発生部は、前記サンプル部からの出力をnビット単位でそのnビットの論理値1と0の偏りに応じた論理値1又は0に変換して前記第2の乱数発生部に前記ビット列を出力するビットスムース回路(ビットスムース部)(15)を有する。アナログ的な乱数発生回路の出力に、製造バラツキ等によりビット列の0と1に偏りができた場合でも、偏りを補正して乱数のランダム性を向上させることができる。
【0015】
前記nビットを可変可能に指定する制御レジスタ(90)を有し、前記制御レジスタはバスに接続される。ビット列の0と1に偏りが大きければnのビット数を大きくしてランダム性能を確保し、偏りが小さければnのビット数を小さく乱数発生効率を向上させる選択が可能になる。
【0016】
前記第2の乱数発生部で発生される乱数を保持するデータレジスタ(83)を有し、前記データレジスタはバスに接続される。
【0017】
本発明の具体的な形態として、半導体基板に上記乱数発生装置と、前記バスに接続された中央処理装置を搭載する。データレジスタの乱数に対する処理、制御レジスタに対する制御データの設定を中央処理装置の動作プログラムに従って行うことができる。
【0018】
【発明の実施の形態】
《乱数発生装置の概要》
図1には本発明の一例に係る乱数発生装置5が示される。乱数発生装置5は、半導体デバイスの熱雑音による電流変化を利用してビット列3を発生する第1の乱数発生部(前段乱数発生部)1と、前記第1の乱数発生部1で発生されたビット列3を入力し、帰還路付きのシフトレジスタを用いて乱数4を発生する第2の乱数発生部(終段乱数発生部)2を有する。前記ビット列3は例えばビットシリアルなデータ列とされる。前記乱数4は例えば8ビットとされる。ここで、乱数発生装置5は、半導体集積回路にオンチップされ、半導体デバイスとは当該半導体集積回路上に形成されるポリシリコン抵抗や抵抗として機能されるMOSトランジスタなどのデバイスを意味する。
【0019】
前記第1の乱数発生部1は、前記電流変化に基いて発振周波数が変化される発振器を用いて第1のクロック信号(高速クロック信号)10を発生する第1のクロック発生部(高速クロック発振器)11と、前記第1のクロック信号10よりも周波数の低い第2のクロック信号(低速クロック信号)12を発生する第2のクロック発生部(低速クロック発振器)13と、前記第2クロック信号12に同期して前記第1クロック信号10をラッチするサンプル部(サンプリング用ラッチ回路)14を有する。図2に例示されるようにサンプリング用ラッチ回路14は周期がランダムに変わる高速クロック信号10を低速クロック信号12の立ち上りエッジに同期してラッチしていく。また、ラッチのタイミングは立ち下がりエッジに同期しても良い。高速クロック信号10の周期がランダムに変わるから低速クロック信号12の周期が一定でもラッチされるデータの論理値はランダムに変化する。
【0020】
M系列疑似乱数発生回路と類似の回路構成を有する終段乱数発生部2には前段乱数発生部1からのビット列3を供給するので、M系列疑似乱数発生回路が発生する乱数の周期性に対してランダム性を向上させることができる。このとき、前段乱数発生部1における高速クロック発振器11では半導体デバイスの熱雑音による電流変化に基いて発振周波数が変化される発振器を用いて高速クロック信号10を発生するから、熱雑音用MOSトランジスタに流れる電流の熱雑音によるゆらぎを制限帯域増幅によって増幅するような場合に比べて熱雑音のランダム成分(即ち熱雑音のゆらぎによるランダム成分)を容易に得ることができ、この点において、ランダム性の向上に資することができる。
【0021】
ここでは、前記低速クロック発振器13も、半導体デバイスの熱雑音による電流変化に基いて発振周波数が変化される発振器を有する。これにより、サンプリング用ラッチ回路14におけるサンプリングされる信号である高速クロック信号10の他にサンプリングする信号である低速クロック信号12にもランダム性即ちジッタ成分が付加され、乱数のランダム性強化に資することができる。要するに、図2において、高速クロック信号10と共に低速クロック信号12もランダムなジッタを有することになり、低速クロック信号12の立ち上りタイミングもランダムに変化するようになる。
【0022】
前記高速クロック発振器11は、前記半導体デバイスの熱雑音による電流変化を受ける第1の発振器(変調用発振器)20と前記変調用発振器20の発振出力(変調用クロック信号)21を入力して発振する第2の発振器(電圧制御発振器)22とを有する。変調用クロック信号21は電圧制御発振器22の制御電圧になる。直列2段の発振器20、22を用いることにより熱雑音による電流変化から周波数変化のランダム性を大きく採ることが可能になり、乱数のランダム性強化につながる。
【0023】
この例では、前記サンプリング用ラッチ回路14の次段にはビットスムース回路15が配置される。ビットスムース回路15は、前記サンプリング用ラッチ回路14からの出力ビット列16をnビット単位でそのnビットの論理値1と0の偏りに応じた論理値1又は0に変換し、変換結果を前記ビット列3として前記終段乱数発生部2に出力する。アナログ的な乱数発生回路である前段乱数発生部1の出力に、製造バラツキ等によりビット列の0と1に偏りができた場合でも、偏りを補正して乱数のランダム性を向上させることができる。
【0024】
《終段乱数発生部》
図3には前記終段乱数発生部2の詳細が例示される。終段乱数発生部2はM系列疑似乱数発生回路と類似の回路構成を有する。この回路例はシフトレジスタ長が31ビットの例である。31ビットのシフトレジスタを構成する31個のラッチ回路LT0〜LT30を有する。ラッチ回路LT0〜LT30は例えばDラッチにより構成され、シフトクロック信号VCの変化に同期してデータをラッチする。特に図示はしないが夫々のラッチ回路LT0〜LT30は、マスタ段とスレーブ段を有し、シフトクロック信号VCのサイクル毎に、マスタ段からスレーブ段への内部転送と、マスタ段の入力ラッチ動作とをノン・オーバラップで行うことによってシフトレジスタ動作を行う。
【0025】
28番目のラッチ回路LT27の出力は前段乱数発生部1からのビット列3と共にXORゲート30に供給されて初段ラッチ回路LT0に帰還される。31ビットの既知のM系列疑似乱数発生回路ではシフトレジスタの最終出力段と28番目のラッチ回路出力とのXORを初段データラッチに帰還させる。これ故に、既知のM系列疑似乱数発生回路では、シフトレジスタの初期値とシフトクロック数がわかれば、出力のビットが分かり、また、シフトレジスタのビット数にて決まる周期で、乱数列が繰り返す再現性があり、真の乱数列を発生することはできない。これに対し、前記終段乱数発生部2ではシフトレジスタの帰還系に配置されたXORゲート30には前段乱数発生部1からのランダムなビット列3が供給されるので、乱数のランダム性が飛躍的に向上する。
【0026】
終段側のラッチ回路LT23〜LT30の8ビットは出力ゲート31を介して8ビット単位で乱数4を出力する。DTは出力ゲート31の制御信号である。尚、特に図示はしないが、16ビットの乱数データが必要であれば、シフトレジスタの16ビット分の出力を乱数として並列出力すればよい。
【0027】
《高速クロック発振器》
図4には電圧制御発振器22の一例が示される。電圧制御発振器22は電流源回路35、直列5段のリングオシレータ36及び出力ドライバ37を有する。リングオシレータ36には、前記変調用クロック信号21をゲートに受ける電流源MOSトランジスタM1に流れる電流がミラー電流として供給され、これがリングオシレータの動作電流となる。リングオシレータの終段は出力ドライバ37で位相反転されて高速クロック信号10となる。高速クロック信号10は前記変調用クロック信号21の周期のランダム性に依存して変調されジッタを持つことになる。
【0028】
図5には電圧制御発振器22の別の例が示される。図4の構成に対し、電流源回路35のミラー回路に流れる電流を前記変調用クロック信号21に同期して切り替える。即ち、発振周波数を決めるMOSトランジスタM1に流れる電流Iが,前記変調用クロック信号21の周期に同期して定電流源で決まる電流I1,I2とされ、これによって高速クロック信号10はジッタを持つことになる。
【0029】
図6には変調用発振器20の一例が示される。変調用発振器20は、熱雑音電流源40、電流制御回路41、リングオシレータ42、1/M分周器43、及び1/N分周器44によって構成される。熱雑音電流源40は半導体デバイスの熱雑音による電流変化を生ずる。この熱雑音電流源40に流れる電流には熱雑音成分が重畳される。この熱雑音電流源40の電流がカレントミラー負荷を介してリングオシレータ42に動作電流として与えられる。その動作電流は熱雑音に呼応してランダムに歪み、それによって変調用クロック信号21の周期がランダムに変動する。変調用クロック信号21の1/M分周信号、1/N分周信号のランダムな周期の変動に従ってリングオシレータ42の電流制御MOSトランジスタM2,M3のコンダクタンスをランダムに変化させる。それらランダムなコンダクタンス変化によっても変調用クロック信号21の周期に対するランダム性が強化される。このように、熱雑音電流源40によるランダムなジッタの生成、リングオシレータ42の分周出力で動作電流をフィードバック制御することによる新たなジッタの生成を経ることにより、変調用クロック信号21には常に新たなジッタが重畳され、変調用クロック信号21の周期には高いランダム性が獲得されている。
【0030】
図7には熱雑音電流源40の一例が示される。熱雑音電流源40は差動アンプ50を有し、一対の差動入力MOSトランジスタM5,M6のゲートには、図示を省略する定電流源に流れる電流の電流ミラー回路で生成される電圧V1,V2が印加される。差動入力MOSトランジスタM5,M6のゲートに至る経路には比較的高抵抗のnチャンネル型MOSトランジスタM7,M8が熱雑音を発生させるために挿入され、ゲートに電源電圧VDDが接続される。差動アンプ50のパワースイッチMOSトランジスタM9のゲートには同じく図示を省略する定電流源に流れる電流の電流ミラー回路で生成される電圧V3が印加される。MOSトランジスタM9のゲートに至る経路には比較的高抵抗のpチャンネル型MOSトランジスタM10が熱雑音を発生させるために挿入され、当該MOSトランジスタM10のゲートに回路の接地電圧VSSが接続される。差動アンプ50の一対の差動入力には同じDC電圧V1,V2を発生する電流源が接続されるために、一対の差動入力に至る双方の回路におけるアンバランス成分は熱雑音成分である。従って、差動アンプ50は電源系や基板電流によるノイズ等の同相ノイズをキャンセルして熱雑音成分のアンバランス分に応ずる熱雑音電流Iを生成する。要するに、熱雑音によるランダム成分に応ずる電流Iを容易に発生させることができる。
【0031】
図8には熱雑音電流源40の別の例が示される。同図に示される回路は図7のような同相成分のキャンセルについて考慮していない回路構成であり、定電流源51に流れる電流の電流ミラー回路によって構成され、比較的高抵抗のpチャンネル型MOSトランジスタM11とnチャンネル型MOSトランジスタM12が熱雑音を発生させるために挿入されて構成され、回路構成は図7よりも簡素化されている。
【0032】
《低速クロック発振器》
図9には低速クロック発振器13の例が示される。低速クロック発振器13は、熱雑音電流源回路55、56、ハイレベルでオンする充放電スイッチ回路60、61コンパレータ57,58、及びフリップフロップ59によって構成される。熱雑音電流源回路55には図7又は図8で説明した回路構成を持つ熱雑音電流源回路40を利用してもよい。また、熱雑音電流源回路56には図7又は図8で説明した回路構成のうち、NMOS及びPMOSを夫々PMOS及びNMOSに変更し、更に最終段のGND接続のNMOSをVDD接続のPMOSへ変更した構成にすることで熱雑音電流源回路として用いることが可能となる。コンパレータ57の反転入力端子(−)には相対的に高いレベルの参照電位用電源62が与えられる、コンパレータ58の非反転入力端子(+)には相対的に低いレベルの参照電位電源63が与えられる。フリップフロップ59の出力端子Q電圧がハイレベルのとき、反転出力端子QNの出力電圧はローレベルにされ、このとき、充放電スイッチ回路60がオン、充放電スイッチ回路61がオフにされ、これによって充電容量64に対する充電動作が行なわれている。コンパレータ57の非反転入力端子(+)とコンパレータ58の反転入力端子(−)には充電容量64の充電電圧が印加される。充電電圧が前記高レベル参照電位を超えるとコンパレータ57の出力がハイレベルに反転し、フリップフロップ59がリセットされ、出力端子Qがローレベルに反転され、出力端子QNがハイレベルに反転される。出力端子Qのローレベル変化に同期してクロック信号12が立ち上りエッジ変化される。出力端子QNのハイレベル変化に同期して、今度は充放電スイッチ回路60がオフ、充放電スイッチ回路61がオンにされ、これによって充電容量64に対する放電動作が行なわれている。充電容量64の端子電圧が前記低レベル参照電位以下にされるとコンパレータ58の出力がハイレベルに反転し、フリップフロップ59がセットされ、出力端子Qがハイレベルに反転され、出力端子QNがローレベルに反転される。出力端子Qのハイレベル変化に同期してクロック信号12が立ち下がりエッジ変化される。以上の動作を繰返すことにより、充電容量64に対する充放電動作によって現れる三角波を元にして矩形の低速クロック信号12が形成される。熱雑音電流源回路55、56は熱雑音電流を発生するので、それが充放電時間に影響し、低速クロック信号12の周期にはランダムなばらつきを生ずる。
【0033】
図10には低速クロック発振器13の別の例が示される。低速クロック発振器13は、電流源回路65、リングオシレータ66、出力ドライバ67、三角波発生回路68、及びインバータ69によって構成される。電流源回路65には図7又は図8で説明した回路構成を持つ熱雑音電流源70を利用してもよい。低速クロック発振器13の基本発振周波数はリングオシレータ66の構成で決まるが、リングオシレータ66は熱雑音電流源70による電流を動作電流とするから、リングオシレータ66で生成されるクロック信号にはランダムな揺らぎによりジッタが重畳される。三角波回路68は出力ドライバ67から出力される周期信号のハイレベル期間で容量素子71の充電を行い、出力ドライバ67から出力される周期信号のローレベル期間で容量素子71の放電を行って三角波を形成する。三角波はインバータ69の論理閾値電圧にしたがって矩波に整形される。三角波には前記三角波発生回路68が保有する容量素子71及び高抵抗素子72の影響によってランダムなジッタが加わり、インバータ69から出力される矩形波はジッタをもった低速クロック信号12として後段に出力される。
【0034】
図11には低速クロック発振器13の更に別の例が示される。同図に示される低速クロック発振回路13は図10の構成に対し、インバータの出力に3個の1/2分周器74,75,76を直列接続し、分周器75の出力をリングオシレータ66に、分周器74の出力を三角波発生回路68にフィードバックすることにより、リングオシレータ66と三角波発生回路68の動作電流に更にランダムなノイズ成分を重畳し、分周器76から出力する低速クロック信号12のジッタのランダム性を強化したものである。
【0035】
《ビットスムース回路》
図12にはサンプリング用ラッチ回路14とビットスムース回路15が例示される。サンプリング用ラッチ回路14は直列8段のラッチ回路LT0〜LT7によってシフトレジスタを構成し、初段ラッチ回路LT0のデータ入力端子には高速クロック信号10が供給され、夫々のラッチ回路LT0〜LT7のクロック端子には低速クロック信号12が並列に供給される。特に図示はしないが夫々のラッチ回路LT0〜LT7は、マスタ段とスレーブ段を有し、低速クロック信号12のサイクル毎に、マスタ段からスレーブ段への内部転送と、マスタ段の入力ラッチ動作とをノン・オーバラップで行うことによってシフトレジスタ動作を行う。
【0036】
ビットスムース回路15は、先頭から順番に2個づつデータラッチ回路の出力を受ける2入力型XORゲートG1,G2,G3,G4を有する。更に、XORゲートG1,G2の出力を受ける2入力型のXORゲートG5と、XORゲートG3,G5の出力を受ける2入力型のXORゲートG6と、XORゲートG4,G6の出力を受ける2入力型のXORゲートG7を有する。セレクタSELはXORゲートG1,G5,G6,G7の出力を選択信号S1〜S4によって選択する。XORゲートG1はデータラッチ回路LT0,LT1にラッチされた2ビットの論理値1の個数が奇数なら1を、偶数又は0個なら0を出力する。XORゲートG5はデータラッチ回路LT0〜LT3にラッチされた4ビットの論理値1の個数が奇数なら1を、偶数又は0個なら0を出力する。以下同様にXORゲートG6、G7はその入力に関係するデータラッチ回路にラッチされた複数ビットの論理値1の個数が奇数なら1を、偶数又は0個なら0を出力する。これによってサンプリング用ラッチ回路14の先頭2ビット、4ビット、6ビット、又は8ビットをその論理値1の個数の偶数奇数に従って論理値1又は0の1ビットに圧縮、換言すれば平均化する。2ビット毎の圧縮を利用する場合には前記信号S1でXORゲートG1の出力を選択して低速クロック信号12の2サイクルに一度の割合でその選択出力を利用すればよい。4ビット毎の圧縮を利用する場合には前記信号S2でXORゲートG5の出力を選択して低速クロック信号12の4サイクルに一度の割合でその選択出力を利用すればよい。6ビット毎の圧縮を利用する場合には前記信号S3でXORゲートG6の出力を選択して低速クロック信号12の6サイクルに一度の割合でその選択出力を利用すればよい。8ビット毎の圧縮を利用する場合には前記信号S4でXORゲートG7の出力を選択して低速クロック信号12の8サイクルに一度の割合でのそ選択出力を利用すればよい。これにより、サンプリング用ラッチ回路14にサンプリングされるデータ列に論理値1,0の偏りがあっても、セレクタSELからはそのような偏りを平均化したビット列3を得ることができる。
【0037】
サンプリング用ラッチ回路14からの出力が完全にランダムならば,0/1の出現確率は,1:1である。しかしながら,回路素子バラツキ、動作条件等で、0/1の出現確率が1:1にならない場合がある。よって、サンプリング用ラッチ回路14の次段に、ビットスムース回路15が設けられることにより、0/1の出現に偏りの少ないランダムなビット列3を得ることができる。これは乱数のランダム性を向上させるのに資することができる。
【0038】
《乱数発生装置の制御》
図13には乱数発生装置5の全体が例示される。乱数発生装置5は乱数発生部80と制御部81から成る。乱数発生部80は、前記変調用発振器20、電圧制御発振器22、低速クロック発振器13、サンプリング用ラッチ回路14、ビットスムース回路15、終段乱数発生部2、乱数データレジスタ83、低速クロックカウンタ(VBカウンタ)84、及びスムースビット数カウンタ(VCカウンタ)85を有し、前記乱数を8ビット単位で乱数データレジスタ83に保持する。制御部81は制御レジスタ90、ビットスムース・カウンタ制御回路91、乱数生成終了検出回路92、及びフラグ制御回路93を有し、乱数発生装置5のリセット、スタンバイ、動作クロック制御、レジスタ83,90のリード・ライト制御などを行う。
【0039】
制御レジスタ90はビットスムース回路15におけるスムースビット数の指定ビットSMTH1,SMTH2、乱数データレジスタ83が保有する乱数の有効ビットDVALID等を有する。ビットスムース・カウンタ制御回路91はスムースビット数の指定ビットSMTH1,SMTH2を入力し、指定されるスムースビット数に応じて選択信号S1〜S4の一つを選択レベルにする。これによってビットスムース回路15のセレクタSELが選択動作され、VBカウンタ84ではシフトクロック信号VCの1サイクルを規定する低速クロック信号12のカウント数が決定される。例えばスムースビット数が8ビットであれば、選択信号S4が選択レベルにされ、ビットスムース回路15はセレクタSELにてXORゲートG7の出力を選択し、VBカウンタ84は低速クロック信号12の8サイクルを計数する毎にシフトクロック信号VCを1サイクル変化させる。終段乱数発生回路2はシフトクロック信号VCのサイクル毎にシフト動作を行ってビットムース回路15から出力されるビット列をラッチしていく。VCカウンタ85はシフトクロック信号VCのサイクル数を計数する。乱数生成終了検出回路92はVCカウンタ85の計数値から、最初の31カウントと、その後の8カウント毎のカウントアップを検出する。最初の31カウントのカウントアップを待てば、その後は8カウント毎にラッチ回路LT24〜LT30に乱数がシフト入力されることになる。カウントアップの検出信号DTは終段乱数発生部2とフラグ制御回路93に与えられる。終段乱数発生部2はカウントアップの検出毎に、ゲート回路31から8ビットの乱数を乱数データレジスタ83にロードする。フラグ検出回路93は、カウントアップの検出毎に、信号RSにてVCカウンタ85の計数値を初期値に戻し、有効ビットDVALIDを有効にセットし、また、割込み要求信号rndiを外部に出力する。これにより、割込み要求に応答する回路、例えば図示を省略する中央処理装置が乱数データレジスタ83の乱数をデータバスDBからリードして、所定の処理を行う。乱数データレジスタ83の指定は例えばアドレスバスABから与えられるアドレス信号で行なわれる。また、有効ビットDVALIDの監視を行う図示を省略する外部回路が有効ビットDVALIDのセット状態に応答して乱数データレジスタ83の乱数をリードするようにしてもよい。乱数データレジスタ83に対する乱数リードを検出した後、前記有効ビットDVALIDは無効にリセットされる。
【0040】
《半導体集積回路》
図14には乱数発生装置5を搭載した半導体集積回路、例えばマイクロプロセッサ100が例示される。マイクロプロセッサ100は、CMOSなどの半導体集積回路製造技術により単結晶シリコンのような1個の半導体基板に形成される。
【0041】
マイクロプロセッサ100は、中央処理装置(CPU)101、CPU101の処理プログラムを保有するリード・オンリ・メモリ(ROM)102、CPU101のワーク領域に利用されるランダム・アクセス・メモリ(RAM)103、乱数発生装置(RNG)5、割込みコントローラ(IRC)104、及び入出力回路(I/O)105を有し、それらはデータバスDBとアドレスバスAB等で接続される。割込みコントローラ104は前記割込み要求信号rndiに代表される内外の割込み要求信号に対する優先制御及びマスク制御を行ってCPU101に割込み信号IRQを出力する。CPU101は命令のフェッチと解読を行って当該命令を実行するための演算制御を行う。CPU101は、割込み信号IRQによって割込みが指示されると、現在実行中の命令実行を中断し、割込み要因に応答する処理プログラムに命令実行シーケンスを変更し、その処理プログラムを実行した後、中断した元の処理プログラムの実行に復帰する。例えばCPU101は乱数データレジスタ83から読み込んだ乱数を用いて所定の処理を行う。
【0042】
以上説明した実施の形態によれば以下の作用効果を得る。
【0043】
(1)M系列疑似乱数発生回路と類似の終段乱数発生部2には前段乱数発生部1からのビット列を供給するので、M系列疑似乱数発生回路における乱数の周期性に対してランダム性を向上させることができる。このとき、前段乱数発生部1における高速クロック発振器11では半導体デバイスの熱雑音による電流変化に基いて発振周波数が変化される発振器を用いて高速クロック信号10を発生するから、制限帯域増幅による熱雑音の増幅に比べて熱雑音のランダム成分を容易に得ることができ、この点において、ランダム性の向上に資することができる。即ち、高速クロック発振器11は抵抗やMOSトランジスタのチャネル抵抗の熱雑音による電流変化を利用したアナログ的な真性乱数発生器として位置付けることができる。アナログ的な真性乱数発生器の出力であるビット列には、周期的な再現性が無い為、後段のM系列疑似乱数発生回路としての終段乱数発生部2の出力ビット列の周期的なビット列の再現性を崩すことができ、また、M系列疑似乱数発生回路としての終段乱数発生部2は前段のアナログ的な真性乱数発生器としての前段乱数発生部1におけるプロセスバラツキなどによる偏りを分散させることができ、結果として、乱数発生装置5は、真の乱数発生が可能となる。換言すれば、アナログ的な乱数発生回路の出力に、製造バラツキ等により乱数ビット列の0と1に偏りができた場合でも、ディジタル的な乱数発生回路により、偏りを補正し、乱数性を向上させることが可能になる。
【0044】
(2)アナログ的な乱数列を発生させる前段乱数発生部1として、2つの発振器11,13で発生される高速なクロック信号10と低速なクロック信号12を用い、それら高速クロック信号10及び低速クロック信号12はともに熱雑音を元にしたランダムなジッタを持ち、低速クロック信号12により、高速クロック信号10をサンプリング用ラッチ回路14でサンプリングすることにより、サンプリングされたデータに論理値0,1のランダム性を得ることができる。
【0045】
(3)XORゲートを用いて複数ビット単位でその1,0の偏りを平均化するビットスムース回路15を用いることにより、M系列疑似乱数発生回路に入力されるビット列に対するランダム性を更に強化することができる。
【0046】
(4)ディジタル的な回路とアナログ的な回路を組み合わせることにより,コンパクトな回路で乱数発生を実現することが可能である。したがって、これをマイクロプロセッサなどの半導体集積回路の搭載して、暗号化処理などに用いることができる。
【0047】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0048】
例えば、低速クロック発振器13には熱雑音による電流変化が発振クロックに重畳される回路形式を積極的に採用しなくてもよい。終段乱数発生部2のシフトレジスタビット数は31ビットに限定されず、例えばM系列疑似乱数発生回路の論理構成を流用して適宜変更可能である。また、以上で説明した各種発振器の回路構成は適宜変更可能である。本発明は暗号演算を専門に実施する暗号演算プロセッサ、乱数の必要なシステムに使用されるマイクロコントローラ、ランダムな自然現象をシミュレーションする装置、LSIテストで必要なランダムなテストパターンを発生する装置等に広く適用することができる。
【0049】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0050】
すなわち、本発明によれば、熱雑音による電流変化を利用したアナログ的な手段とシフトレジスタを用いたディジタル的な手段の双方を用いて乱数を発生する時のランダム性を強化することができる。
【図面の簡単な説明】
【図1】本発明の一例に係る乱数発生装置5のブロック図である。
【図2】夫々ランダムなジッタを有する低速クロック信号で高速クロック信号をラッチするタイミングを例示するタイミングチャートである。
【図3】終段乱数発生部の詳細を例示する論理回路図である。
【図4】電圧制御発振器の一例を示す回路図である。
【図5】電圧制御発振器の別の例を示す回路図である。
【図6】変調用発振器の一例を示す回路図である。
【図7】熱雑音電流源の一例を示す回路図である。
【図8】熱雑音電流源の別の例を示す回路図である。
【図9】低速クロック発振器の一例を示す回路図である。
【図10】低速クロック発振器の別の例を示す回路図である。
【図11】低速クロック発振器の更に別の例を示す回路図である。
【図12】サンプリング用ラッチ回路とビットスムース回路を例示する論理回路図である。
【図13】乱数発生装置の全体を例示するブロック図である。
【図14】乱数発生装置を搭載した半導体集積回路の一例であるマイクロプロセッサのブロック図である。
【符号の説明】
1 前段乱数発生部(第1の乱数発生部)
2 終段乱数発生部(第2の乱数発生部)
3 ビット列
4 乱数
5 乱数発生装置
10 高速クロック信号
11 高速クロック発振器(第1のクロック発生部)
12 低速クロック信号
13 低速クロック発振器(第2のクロック発生部)
14 サンプリング用ラッチ回路(サンプル部)
15 ビットスムース回路
20 変調用発振器(第1の発振部)
22 電圧制御発振器(第2の発振部)
40 熱雑音電流源
50 差動アンプ
83 乱数データレジスタ
90 制御レジスタ
SMTH1,SMTH2 スムースビット数の指定ビット
DB データバス
100 マイクロプロセッサ(半導体集積回路)
101 中央処理装置

Claims (9)

  1. 半導体デバイスの熱雑音による電流変化を利用してビット列を発生する第1の乱数発生部と、前記第1の乱数発生部で発生されたビット列を入力し、帰還路付きのシフトレジスタを用いて乱数を発生する第2の乱数発生部を有し、
    前記第1の乱数発生部は、前記電流変化に基いて発振周波数が変化される発振器を用いて第1のクロック信号を発生する第1のクロック発生部と、前記第1のクロック信号よりも周波数の低い第2のクロック信号を発生する第2のクロック発生部と、前記第2クロック信号に同期して前記第1クロック信号をラッチするサンプル部を有し、前記サンプル部からの出力に基いて前記ビット列を発生することを特徴とする乱数発生装置。
  2. 前記第2のクロック発生部は、前記電流変化に基いて発振周波数が変化される発振器を有することを特徴とする請求項1記載の乱数発生装置。
  3. 前記第1のクロック発生部は、前記電流変化を受ける第1の発振器と前記第1の発振器の発振出力を入力して発振する第2の発振器とを有することを特徴とする請求項1又は2記載の乱数発生装置。
  4. 前記第1の発振器は前記電流変化を生ずる電流源を有することを特徴とする請求項3記載の乱数発生装置。
  5. 前記電流源が動作電源系の同相のノイズ成分をキャンセルする差動アンプを出力段に有することを特徴とする請求項4記載の乱数発生装置。
  6. 前記第1の乱数発生部は、前記サンプル部からの出力をnビット単位でそのnビットの論理値1と0の偏りに応じた論理値1又は0に変換して前記第2の乱数発生部に前記ビット列を出力するビットスムース部を有することを特徴とする請求項1記載の乱数発生装置。
  7. 前記nビットを可変可能に指定する制御レジスタを有し、前記制御レジスタはバスに接続されることを特徴とする請求項6記載の乱数発生装置。
  8. 前記第2の乱数発生部で発生される乱数を保持するデータレジスタを有し、前記データレジスタはバスに接続されることを特徴とする請求項6記載の乱数発生装置。
  9. 半導体基板に請求項7又は8記載の乱数発生装置を有し、前記バスに接続された中央処理装置を有することを特徴とする半導体集積回路。
JP2003202219A 2003-07-28 2003-07-28 乱数発生装置 Expired - Fee Related JP4290500B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003202219A JP4290500B2 (ja) 2003-07-28 2003-07-28 乱数発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003202219A JP4290500B2 (ja) 2003-07-28 2003-07-28 乱数発生装置

Publications (3)

Publication Number Publication Date
JP2005044090A true JP2005044090A (ja) 2005-02-17
JP2005044090A5 JP2005044090A5 (ja) 2006-09-07
JP4290500B2 JP4290500B2 (ja) 2009-07-08

Family

ID=34262003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003202219A Expired - Fee Related JP4290500B2 (ja) 2003-07-28 2003-07-28 乱数発生装置

Country Status (1)

Country Link
JP (1) JP4290500B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006294001A (ja) * 2005-03-15 2006-10-26 Toshiba Corp 乱数発生回路
JP2008124852A (ja) * 2006-11-14 2008-05-29 Sanyo Electric Co Ltd チャージポンプ回路
GB2447243A (en) * 2007-03-05 2008-09-10 Richard Hoptroff Random number generation method
US9377997B2 (en) 2013-03-04 2016-06-28 Samsung Electronics Co., Ltd. Random number generator
JP2016118934A (ja) * 2014-12-19 2016-06-30 株式会社メガチップス 乱数生成装置及び乱数生成方法
JP2019194873A (ja) * 2019-06-11 2019-11-07 東芝メモリ株式会社 ランダマイザおよび半導体記憶装置
JP2019197394A (ja) * 2018-05-10 2019-11-14 ウィンボンド エレクトロニクス コーポレーション 固有データ生成装置、半導体装置および認証システム
CN113434114A (zh) * 2021-07-15 2021-09-24 兆讯恒达科技股份有限公司 一种随机数生成电路及相应的安全芯片
CN114584305A (zh) * 2022-04-28 2022-06-03 苏州云途半导体有限公司 一种随机数发生器、电子电路和系统级芯片
CN115037283A (zh) * 2022-08-12 2022-09-09 山东华翼微电子技术股份有限公司 一种高速相位抖动物理随机源电路及其工作方法
EP4092522A1 (en) 2021-05-19 2022-11-23 Renesas Electronics Corporation Semiconductor device and method for verifying random number data
CN116069295A (zh) * 2022-12-22 2023-05-05 海光集成电路设计(北京)有限公司 真随机数发生电路、方法及电子设备

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4559985B2 (ja) * 2005-03-15 2010-10-13 株式会社東芝 乱数発生回路
JP2006294001A (ja) * 2005-03-15 2006-10-26 Toshiba Corp 乱数発生回路
JP2008124852A (ja) * 2006-11-14 2008-05-29 Sanyo Electric Co Ltd チャージポンプ回路
GB2447243A (en) * 2007-03-05 2008-09-10 Richard Hoptroff Random number generation method
US9377997B2 (en) 2013-03-04 2016-06-28 Samsung Electronics Co., Ltd. Random number generator
JP2016118934A (ja) * 2014-12-19 2016-06-30 株式会社メガチップス 乱数生成装置及び乱数生成方法
JP2019197394A (ja) * 2018-05-10 2019-11-14 ウィンボンド エレクトロニクス コーポレーション 固有データ生成装置、半導体装置および認証システム
US11983303B2 (en) 2018-05-10 2024-05-14 Winbond Electronics Corp. Intrinsic data generation device, semiconductor device and authentication system
JP2019194873A (ja) * 2019-06-11 2019-11-07 東芝メモリ株式会社 ランダマイザおよび半導体記憶装置
EP4092522A1 (en) 2021-05-19 2022-11-23 Renesas Electronics Corporation Semiconductor device and method for verifying random number data
KR20220156762A (ko) 2021-05-19 2022-11-28 르네사스 일렉트로닉스 가부시키가이샤 반도체 장치 및 난수 데이터의 검증 방법
CN113434114A (zh) * 2021-07-15 2021-09-24 兆讯恒达科技股份有限公司 一种随机数生成电路及相应的安全芯片
CN113434114B (zh) * 2021-07-15 2024-04-16 兆讯恒达科技股份有限公司 一种随机数生成电路及相应的安全芯片
CN114584305B (zh) * 2022-04-28 2022-07-26 苏州云途半导体有限公司 一种随机数发生器、电子电路和系统级芯片
CN114584305A (zh) * 2022-04-28 2022-06-03 苏州云途半导体有限公司 一种随机数发生器、电子电路和系统级芯片
CN115037283B (zh) * 2022-08-12 2022-10-21 山东华翼微电子技术股份有限公司 一种高速相位抖动物理随机源电路及其工作方法
CN115037283A (zh) * 2022-08-12 2022-09-09 山东华翼微电子技术股份有限公司 一种高速相位抖动物理随机源电路及其工作方法
CN116069295A (zh) * 2022-12-22 2023-05-05 海光集成电路设计(北京)有限公司 真随机数发生电路、方法及电子设备
CN116069295B (zh) * 2022-12-22 2023-10-20 海光集成电路设计(北京)有限公司 真随机数发生电路、方法及电子设备

Also Published As

Publication number Publication date
JP4290500B2 (ja) 2009-07-08

Similar Documents

Publication Publication Date Title
JP4290500B2 (ja) 乱数発生装置
TWI758688B (zh) 隨機數產生器
JP4740611B2 (ja) 可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させるキースケジュラ
JP3696209B2 (ja) シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US11487505B2 (en) Physical unclonable function based true random number generator, method for generating true random numbers, and associated electronic device
US9166795B2 (en) Device and method for forming a signature
JP4417389B2 (ja) デジタルロジックを利用した乱数発生装置及び方法
US7587439B1 (en) Method and apparatus for generating a random bit stream in true random number generator fashion
JP2004086867A (ja) 高速二進比較回路及び高速二進データの比較方法
JP2007207054A (ja) データ処理装置
CN112468117A (zh) 时钟发生电路
JP2006509286A (ja) 真正乱数の発生システムおよび発生方法
JP2011197981A (ja) I/o拡張回路
Sikarwar et al. Low power implementation of advanced encryption standard using efficient shift registers in 45 nm technology
JP2004157168A (ja) 乱数生成装置
Ryu et al. A design of low power 16-B ALU
JP2001344094A (ja) 乱数発生回路
US7349937B2 (en) Fast incrementer using zero detection and increment method thereof
Katoh et al. A physically unclonable function using time-to-digital converter with linearity self-calibration and its FPGA implementation
Naik et al. Design of Energy Efficient Magnitude Comparator Architecture using 8T XOR Gate
JP4189729B2 (ja) タイマーカウント値の非同期読み出し方法及びタイマー
US20040143614A1 (en) Hiding the internal state of a random number generator
US7919991B1 (en) Comparator circuit
JP3936476B2 (ja) 符号生成器
Antoniadis et al. An efficient implementation of a delay-based PUF construction

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060721

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090309

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120410

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120410

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130410

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140410

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

LAPS Cancellation because of no payment of annual fees