説明

乱数を発生させるための装置および方法

【課題】乱数を発生させるための特に単純かつ効率的な小領域装置を提供する。
【解決手段】乱数を発生させるための装置および方法を提供し、該装置は、少なくとも1つの発生器回路を有し、各発生器回路は、第1の動作モードおよび第2の動作モードを提供するように構成され、第1の動作モードにおいて、各発生器回路は発振器として動作し、第2の動作モードでは、各発生器回路は状態保持要素として動作する。次いで、制御信号発生器は、各発生器回路に入力するための制御信号を発生させる。各発生器回路は、第1の動作モードにおいて動作するように設定レベルの入力制御信号に応答し、第2の動作モードにおいて動作するように解除レベルの入力制御信号に応答する。入力制御信号が設定レベルから解除レベルに遷移する際に、各発生器回路は、状態保持要素内で発振器の電流値を取得し、乱数の少なくとも一部を形成するようにその電流値を出力するように構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、乱数を発生させるための装置および方法に関する。
【背景技術】
【0002】
先行技術の記載
乱数発生器は、多様な用途のために必要不可欠な構成要素である。セキュリティシステムにおいて、それらは認証および暗号化のためのシークレットキーまたはトークンを提供する。それらはまた、シミュレーションソフトウェアにおける種々の問題にも適用される。
【0003】
そのような用途には、高品質な乱数源を提供することが重要な必要条件である。真の乱数は、予測不可能であり、乱数性の統計的特性を示す、ビットの集合である。
【0004】
多数のハードウェア技術が乱数を発生させるために開発されており、そのような技術は、典型的にはデータ処理装置内にある乱数性の物理的な源を使用する。そのような回路は、真の乱数発生器(TRNG)と称されることが多い。
【0005】
そのようなTRNG回路の一例として、IEEE Journal of Solid−State Circuits,Volume43,No.1(2008年1月)78〜85ページに掲載のC Tokunagaらによる論文「True Random Number Generator with a Metastability−Based Quality Control」は、論理0レベルと論理1レベルとの間に位置する、準安定状態にある、すなわち、その保存された状態が不確定であるラッチを使用したTRNGの設計について記載している。準安定状態にあるそのようなラッチは、ラッチが転換される方向に寄与するノイズによって、時間とともに論理値0または論理値1のいずれかに転換される。この論文に記載される回路は、ラッチ内の既知の値に転換されるのにかかる時間をモニタリングするが、この時間は未知であり、効果的にランダムである。その転換時間は、次いで乱数に変換される。
【0006】
IEEE Transactions on Computers,Volume52,No.4(2003年4月)掲載のM Bucciらによる論文「A High−Speed Oscillator−Based Truly Random Number Source for Cryptographic Applications on a Smart Card IC」は、低周波発振器がDフリップフロップにおいて迅速な発振器のサンプリングを行う、発振器に基づく乱数発生器について記載している。低周波発振器の周期がより迅速な発振器の周期よりもはるかに高い標準偏差を特徴とする場合、2つの連続的なサンプリング時間にサンプリングされた発振器の状態は相関しない(すなわち、独立している)と推定することができ、したがって、ランダムなビットストリームを生成する。この論文に記載される発振器は、増幅されたノイズ源とともに提供され、周期長の約10%の標準偏差を生じる。そのような高いジッタレベルは、ランダムストリームの質を向上させる。
【0007】
IEEE Asian Solid−State Circuits Conference(2009年11月16〜18日、台北、台湾)121〜124ページ掲載のT Nakuraらによる論文「Ring Oscillator BasedRandom Number Generator Utilizing Wake−Up Time Uncertainty」は、乱数を発生させるためにリング発振器のウェイクアップ時間の不確定性を用いる乱数発生回路について記載している。具体的には、その制御電圧がゼロから増加すると、リング発振器は発振を開始する前に準安定状態になる。準安定状態は、リング発振器のウェイクアップ時間の不確実性を引き起こし、その結果として大きなジッタをもたらし、次いでそれが乱数発生のために使用される。
【0008】
IEEE Transactions on Computers,Volume 58,No.9(2009年9月)1198〜1210ページ掲載のD Holcombらによる文献「Power−Up SRAM State as an Identifying Fingerprint and Source of True Random Numbers」は、SRAMの初期状態を乱数源として使用する技術について記載している。しかしながら、この手法に伴う1つの問題は、プロセス変動に起因する歪みが常に存在することであり、そのため、そのような手法が決定論的チップ識別子を生成するために良好であるかもしれないにもかかわらず、乱数の連続的な発生が程度の差はあるものと同一であるため、乱数の発生にはあまり適さない。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】C Tokunaga他,「True Random Number Generator with a Metastability−Based Quality Control」,IEEE Journal of Solid−State Circuits,Volume 43,No.1 (2008年1月) 78〜85ページ
【非特許文献2】M Bucci他,「A High−Speed Oscillator−Based Truly Random Number Source for Cryptographic Applications on a Smart Card IC」,IEEE Transactions on Computers,Volume 52,No.4 (2003年4月)
【非特許文献3】T Nakura他,「Ring Oscillator Based Random Number Generator Utilizing Wake−Up Time Uncertainty」,IEEE Asian Solid−State Circuits Conference (2009年11月16〜18日,台北,台湾) 121〜124ページ
【非特許文献4】D Holcomb他,「Power−Up SRAM State as an Identifying Fingerprint and Source of True Random Numbers」,IEEE Transactions on Computers, Volume 58, No.9 (2009年9月) 1198〜1210ページ
【発明の概要】
【発明が解決しようとする課題】
【0010】
上記種々の先行技術による乱数発生器の全ては、比較的複雑であり、相当の領域を占めるため、多くの実装に実用的ではない。さらに、それらがアナログ回路を含むという点から配置に制約を生じ、異なる処理形態間で容易に移動可能ではない場合がある。したがって、処理形態が縮小し、ひいては個々の構成要素が小さくなるにつれて、そのような技術は、それらがそのような新しい処理形態に適用可能となるように、少なくともある程度再設計することが必要になるであろう。
【0011】
このため、真の乱数を発生させるための改善された機構を提供することが望ましいことになる。
【課題を解決するための手段】
【0012】
第1の態様から見ると、本発明は、乱数を発生させるための装置であって、少なくとも1つの発生器回路であって、前記少なくとも1つの発生器回路の各々は、第1の動作モードおよび第2の動作モードを提供するように構成され、第1の動作モードにおいて、前記少なくとも1つの発生器回路の各々は発振器として動作し、第2の動作モードにおいて、前記少なくとも1つの発生器回路の各々は状態保持要素として動作する、発生器回路と、前記少なくとも1つの発生器回路の各々に入力するための制御信号を発生させるための、制御信号発生器と、を備え、前記少なくとも1つの発生器回路の各々は、第1の動作モードにおいて動作するように設定レベルにある入力制御信号に応答し、第2の動作モードにおいて動作するように解除レベルにある入力制御信号に応答し、入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記少なくとも1つの発生器回路の各々は、状態保持要素内で発振器の電流値を取得し、乱数の少なくとも一部を形成するようにその電流値を出力するように構成される、装置を提供する。
【0013】
本発明によれば、多数の発生器回路が提供され、各発生器回路は、その発生器回路に入力される制御信号の値に応じて、発振器または状態保持要素のいずれかとして動作することができる。制御信号が(例えば論理1レベルに)設定されると、各発生器回路は発振器として動作し、制御信号が(例えば論理0レベルに)解除されると、各発生器回路は、状態保持要素内で発振器の電流値を取得し、乱数の少なくとも一部を形成するようにその値を出力する。したがって、本発明の装置は、乱数を発生させるための非常に単純かつ効率的な機構を提供し、該装置は、既知の先行技術による乱数発生器よりもはるかに単純であり、比較的小さい領域を占めるため、多様な異なる用途のために実用的なソリューションを提供する。
【0014】
制御信号は、各発生器回路がどれくらい長く発振器として動作するか、および乱数の少なくとも一部として出力するように発振器の電流状態がいつ取得されるか、の両方を決定するため、制御信号の遷移に本質的に存在するタイミングジッタが、各発生器回路からの出力がランダムであることを確実にする。さらに、同じ構成要素、すなわち各発生器回路が、ノイズ源(発振器)およびサンプラー(状態保持要素)の両方を形成するため、装置内で観察されるエントロピーは既知の先行技術よりも著しく高く、より高いエントロピーは、出力における乱数性の程度がより高いことを示す。
【0015】
一実施形態において、制御信号の遷移におけるタイミングジッタは、出力における乱数性の唯一の源ではなく、それに加えて各発生器回路は、発振器の発振周波数をランダムな様式で変化させる電源電圧のノイズをともなう電源電圧から動作する。したがって、制御信号におけるタイミングジッタと電源電圧ノイズ(本明細書において電源電圧リップルとも称される)とが本設計内で一緒に動作し、装置に良好なエントロピーを有する乱数を発生させる。
【0016】
制御信号発生器は、様々な方法で制御信号を発生させるように配設することができる。しかしながら、一実施形態において、制御信号発生器は、パルスの間に設定レベルが提供され、前記パルスのタイミングジッタが、前記少なくとも1つの発生器回路の各々が前記発振器として動作する周期、および状態保持要素内で発振器の電流値が取得される時間に影響を及ぼすように、制御信号を前記パルスとして発生させるように構成される。そのような実施形態において、乱数を出力することが所望されるときにいつでもパルスを発生させることができ、各パルスの発生の間に、各発生器回路は、最後に制御信号が設定状態から解除状態に遷移したとき(すなわち、前回のパルスの終り)に取得された値を出力し続ける。
【0017】
各発生器回路は、多様な方法で構築することができる。しかしながら、一実施形態において、発振器は、ループとして形成される複数の発振器段を備え、前記複数は奇数である。さらに、各発生器回路は、前記解除レベルにある制御信号に応答して発振器段のサブセットをバイパスするように構成され、サブセットは、残りの偶数の発振器段が状態保持要素として動作するように奇数の発振器段を含む。こうして、発振器としての動作と状態保持要素としての動作の間で各発生器回路を切り換えるための、特に単純かつ効率的な機構を提供する。
【0018】
種々の発振器段は、多様な方法で実装することができる。しかしながら、一実施形態において、各発振器段はインバータ回路を備える。
【0019】
第2の動作モードにあるときに発振器段のサブセットをバイパスするように各発生器回路を配設することができる多数の方法がある。しかしながら、一実施形態において、各発生器回路は、ループに挿入されたマルチプレクサをさらに備え、マルチプレクサは、制御信号が設定されるとループが維持され、制御信号が解除されると、発振器段の前記サブセットをバイパスすることによってマルチプレクサがサブループを作成するように、制御信号を受信するように構成される。そのような様式におけるマルチプレクサの使用は、第2の動作モードにおいて発振器段のサブセットをバイパスするための単純な機構を提供する。
【0020】
発振器内に提供される発振器段の数は、設計の選択の問題である。しかしながら、一般に、発振器は高周波数で発振することが望ましく、したがって、比較的少ない数の発振器段がこれを達成するのに役立つ。さらに、少数の発振器段はまた、回路を小さいままにするであろう。ある特定の実施形態において、複数の発振器段は3つの発振器段を備え、前記発振器段のサブセットは単一の発振器段を備える。よって、そのような実施形態において、その発生器回路が発振器として動作しているときには、各発生器回路内に3つの発振器段が存在し、その発生器回路が状態保持要素として動作しているときには、サブループは2つの発振器段のみを含み、事実上、発生器回路をラッチにする。
【0021】
一実施形態において、各発生器回路は、乱数の一部を形成するために使用することができるシングルビットを出力する。したがって、一実施形態において、装置は、各々が上記のように構築された複数の発生器回路を備え、第2の動作モードで動作しているときに各発生器回路によって出力される電流値は、複数ビットの乱数の異なるビットを形成する。発生器回路は、任意の特定の実装に必要とされる乱数のサイズを提供するように、要求に応じて複製されればよいだけなので、これによって非常に拡張可能なソリューションが提供される。
【0022】
さらに、各発生器回路が乱数の単一ビットを生成する、複数の発生器回路の存在自体が、発生する乱数の乱数性を増加させる役割を果たす。具体的には、一実施形態において、制御信号発生器は、伝播経路を介して複数の発生器回路に制御信号を出力するように構成され、伝播経路は、複数の発生器回路によって非同一時間に制御信号の値における遷移が観察されるように構成される。したがって、タイミングジッタが各発生器回路内の発振器の動作の長さおよび発振器の出力がラッチされるタイミングの両方に影響を及ぼすだけではなく、それに加えて、種々の発生器回路によって制御信号が受信される異なる時間が、任意の特定の発生器回路によって経験されるタイミングジッタをさらにランダム化する。また、各発生器回路が発振器として動作する絶対時間が若干異なるため、各個々の発生器回路によって経験される電源電圧リップルもまた異なる。
【0023】
複数の発生器回路によって非同一時間に制御信号の値における遷移が観察されるように伝播経路を構成することができる多数の方法がある。一実施形態において、伝播経路は、伝播経路に沿った制御信号の伝播を遅延させる役割を果たす一連のバッファ要素を備え、発生器回路の各々は、伝播経路に沿った関連する位置から制御信号を受信し、関連する位置は、異なる発生器回路ごとに異なる。
【0024】
代替の実施形態において、またはそれに加えて、各発生器回路のための伝播経路の長さがその発生器回路の位置に依存するように、複数の発生器回路がデータ処理装置内の異なる位置に配置される。複数の発生器回路を装置内の異なる位置に配置することによって、これは種々の発生器回路によって経験される環境条件が、装置内におけるそれらの位置に依存して変化することを意味し、ある程度の乱数性が各発生器回路の動作に再び導入される。
【0025】
第2の態様から見ると、本発明は、乱数を発生させるための装置を操作する方法であって、少なくとも1つの発生器回路を提供することと、第1の動作モードおよび第2の動作モードを提供するように前記少なくとも1つの発生器回路の各々を構成することであって、第1の動作モードでは、前記少なくとも1つの発生器回路の各々は発振器として動作し、第2の動作モードでは、前記少なくとも1つの発生器回路の各々は状態保持要素として動作する、構成することと、前記少なくとも1つの発生器回路の各々に入力するための制御信号を発生させることと、設定レベルにある入力制御信号に応答して、第1の動作モードで前記少なくとも1つの発生器回路の各々を操作することと、解除レベルにある入力制御信号に応答して、第2の動作モードで前記少なくとも1つの発生器回路の各々を操作することと、前記少なくとも1つの発生器回路の各々の内で、入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、状態保持要素内で発振器の電流値を取得し、乱数の少なくとも一部を形成するようにその電流値を出力することと、を含む、方法を提供する。
【0026】
第3の態様から見ると、本発明は、乱数を発生させるための装置であって、少なくとも1つの発生器手段であって、前記少なくとも1つの発生器手段の各々は、第1の動作モードおよび第2の動作モードを提供するためであり、第1の動作モードにおいて、前記少なくとも1つの発生器手段の各々は、発振器手段として動作するためであり、第2の動作モードにおいて、前記少なくとも1つの発生器手段の各々は、状態保持手段として動作するためである、少なくとも1つの発生器手段と、前記少なくとも1つの発生器手段の各々に入力するための制御信号を発生させるための、制御信号発生手段と、を備え、前記少なくとも1つの発生器手段の各々は、設定レベルにある入力制御信号に応答して第1の動作モードにおいて動作するため、および解除レベルの入力制御信号に応答して第2の動作モードにおいて動作するためであり、入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記少なくとも1つの発生器手段の各々は、状態保持手段内で発振器手段の電流値を取得し、乱数の少なくとも一部を形成するようにその電流値を出力するためである、装置を提供する。
【0027】
本発明は、添付図面に図示するように、その実施形態を参照して、単なる例示としてさらに記述される。
【図面の簡単な説明】
【0028】
【図1】タイミングジッタを示す図である。
【図2】電源電圧リップルノイズを示す図である。
【図3】一実施形態にしたがって、乱数ビット発生器回路として使用されるセル構造を示す図である。
【図4】一実施形態にしたがって、図3の回路によってラッチされた値に、電圧リップルおよびタイミングジッタがどのような影響を及ぼすかを示す図である。
【図5】一実施形態にしたがって、複数ビットの乱数を発生させるために、どのように図3の回路の複数インスタンスを組み合わせることができるかを示す図である。
【発明を実施するための形態】
【0029】
本発明の実施形態について記載する前に、図1および2を参照して、デジタル設計における不確定性の2つの源について記載する。すなわち、図1はタイミングジッタを示し、図2は電源電圧リップルを示す。
【0030】
タイミングジッタは、周期信号の時間変動として定義される。一例として、グローバルクロック信号を分配する場合、正確にいつクロックエッジが現れるかについてある程度の不確定性が存在する。ジッタには多くの根本的な原因があり、それらのうちで最も重要なのは、電気回路のランダムノイズ源である。図1に示すように、理想的なケースでは、図1において垂直遷移10によって示されるタイミングで信号が論理0レベルから論理1レベルに遷移する場合があるが、そのエッジのタイミングは、実際には図1のポイント15とポイント20の間で変動する場合がある。同様に、論理1レベルから論理0レベルへの遷移は、理想的には図1において数字25によって示される垂直遷移で起こるかもしれないが、実際には、ポイント30と35との間の任意の時点で起こる場合がある。結果として、信号に対して標的パルス幅40となる場合があるが、分配されたパルスの幅は、最小パルス幅45から最大パルス幅50まで、およびその間のいずかの範囲となる場合がある。これらの変動のために、合理的限界を超えてパルス幅を制御することはほぼ不可能である。以下の実施形態において、この不確定性が、ランダムなビットパターンを生成するために有益な方法で使用される。
【0031】
タイミングジッタに加えて、電源電圧ノイズ(本明細書において電源電圧リップルとも称される)もまた、デジタル設計における不確定性の源を提供する。電源電圧ノイズは、電荷注入、電荷結合等を含む種々の理由に起因して存在する、電源電圧に対する過渡ノイズである。したがって、電源電圧は、理想的には図2に示すレベル60であるが、ノイズは、破線70によって示されるように時間とともにレベルを変化させる。現実には、1V電源で最大10〜25mVのピークツーピークリップルノイズが観察されるのが一般的である。
【0032】
以下に記載する実施形態では、乱数ビットを生成するために、タイミング(主にジッタ)および電源電圧リップルにおいて増加し続ける不確定性が利用される。1つの乱数ビットを生成するために一実施形態において使用される設計を図3に概略的に示す。単一乱数ビットを生成するために使用される発生器回路100は、第1の動作モードおよび第2の動作モードの両方を提供するように構成され、選択されるモードは、経路130を通る制御信号として提供される選択信号の値に依存する。具体的には、多数のインバータ回路105、110、115を備えるループに挿入されたマルチプレクサ120を制御するために、選択信号が使用される。選択信号が設定されると(図3に示す実施形態では、信号は論理1の値に設定されている)、インバータ要素105、110、115が発振器段のループを形成し、次いで、信号がループの周囲を通る周波数の関数として変動する経路140上で観察される信号により、回路100が発振器として作動することを理解されたい。
【0033】
しかしながら、選択信号が解除レベル(この例では論理0レベル)に遷移すると、次いで、マルチプレクサ120が他の入力を選択し、したがって、インバータ要素105および110のみからなるサブループを作成し、インバータ要素115は、新しく形成されたサブループから除外される。この時点で、インバータ要素105、110はラッチを形成し、それに応じて経路140で観察される出力が静的となり、選択信号が設定状態から解除状態に遷移した時点で存在する値に留まる。
【0034】
一実施形態において、選択信号はパルスとして提供されるため、乱数ビットの生成が必要な場合は、パルスがアサートされ、選択信号を解除レベルから設定レベルに遷移させ、次いで一定期間後に解除レベルに戻るように遷移させる。図1を参照して以前に記載したように、タイミングジッタのためにパルスの正確な幅が変動し、したがって、回路100が発振器として動作する時間の量がタイミングジッタに依存して変動する。加えて、回路が発振器であることを終了し、状態保持要素となる実際の時点もまた、タイミングジッタに依存して変動する。さらに、図2を参照して以前に記載したように、インバータ要素105、110、115の各々が電源電圧によって駆動され、その電源電圧における任意のノイズもそれらの動作速度を変化させるため、電源電圧リップルノイズは発振の周波数を変化させる。結果として、パルスがアサート解除されたときに経路140を通って出力される値がランダムとなる。
【0035】
図3では3つのインバータ要素105、110、115が示されているが、ループ内に提供される発振器段の正確な数は、設計の選択の問題として変化することができるが、但し奇数の発振器段が提供されるならば、第1の動作モードにおいて回路100が発振器として作動することを確実にする。さらに、選択信号が解除されたときにバイパスされる発振器段の正確な数もまた変化する可能性があるが、但し奇数の段がバイパスされるならば、一旦、回路100が第2の動作モードになると、偶数の段階がサブループ内に含まれる。
【0036】
図4は、パルスがアサート解除されたときに、電圧リップルおよびタイミングジッタが、回路100によってラッチされた値にどのように影響を及ぼす場合があるかを概略的に示している。最初に、選択信号がポイント200で設定状態に遷移し、次いで、ステップ215で解除状態に戻るよう遷移する、理想的なケースが示される。また、交互の発振値の幅230、240が同じになるように、一定の電圧供給が回路に提供されることが想定される。この理想的なケースでは、線250によって示されるように、ラッチされた値は論理1レベルであることが分かる。図3を参照すると、これは、実際には、遷移215の時点で論理0値が上方入力としてマルチプレクサ120に提供され、経路140を通る出力を論理1レベル250にしていることを意味する。
【0037】
図4の理想的なケースの下に、電圧リップルの影響を示す。ここでも同様に、選択信号は、タイミング200で設定状態に遷移し、タイミング215で解除状態に戻るよう遷移することが想定される。しかしながら、電圧供給線上のノイズが発振の周波数に影響を及ぼすため、種々の発振ピーク255、260、262、264、266、268、270の長さが変動する。結果として、この例では、出力線275によって表されるように、時間215で論理0値がラッチされる。
【0038】
つまり、ノイズの量に依存して、電圧リップルノイズは、たとえタイミングジッタが存在しなくても、異なる値のラッチングを直接もたらすことができる。
【0039】
図4の下図は、選択信号の設定状態への遷移および/またはパルス終了時の解除状態への遷移の両方に影響を及ぼすことができる、タイミングジッタの効果を示す。図4の下図は、タイミング280で、すなわち、理想的なケースよりも若干早めに、選択信号が設定状態にアサートされ、結果として、発振器が予想したよりも早く発振し始める例を示している。加えて、完全性のために、図は、パルスがアサート解除されたときに生じる何らかのジッタも示しており、パルスはタイミング285でアサート解除されたことが想定される。この例でも同様に、これによって、線290によって示されるように論理値0が出力される。
【0040】
分かりやすくするために、図4は、独立して生じる電圧リップルおよびタイミングジッタを示しているが、実際のシステムでは、電圧リップルおよびタイミングジッタの両方が同時に生じ、したがって、値に実質的な不確定性を付与し、選択信号が論理0値に解除されると、最終的に回路100から出力される。このスキームは、単純ではあるものの、ランダムな出力ビットを生成するための強力かつ低コストの方法を提供する。
【0041】
多くのシステムにおいて、複数ビットの乱数を発生させることが望みであり、これは、必要な回数だけそのセル構造を複製するだけで、図3のセル構造を使用して容易に達成することができ、セル構造の事例ごとに1ビットの乱数を生成する。これは、8ビットの乱数を発生させる例として図5で概略的に示される。それによると、図3の発振器回路の8つのインスタンス300、305、310、315、320、325、330および335が提供され、各回路は同じ電源電圧400から動作する。選択信号発生器410によって選択信号が発生し、伝播経路を通って乱数ビット発生器回路の各々に分配される。
【0042】
この例では、選択信号発生器410によって生成されるパルスの受信タイミングが、異なる乱数ビット発生器回路間で確実に変動するように、一連のバッファ回路340、345、350、355、360、365、370が使用される。これにより、各バッファのランダムノイズ源に起因してジッタが最大化されること、および各乱数ビット発生器回路に入力される選択信号のジッタが相関していないことも確実になる。次いで、各乱数ビット発生器は、異なるタイミングジッタに供され、また発振器として動作している期間の間は異なる電源電圧リップルノイズに供され、各ビット発生器の出力がランダムであり、他の乱数ビット発生器のうちのいずれかの出力と相関していないことを確実にする。したがって、8ビットの乱数は、経路380、382、384、386、388、390、392および394を通って出力される信号によって作成される。
【0043】
そのような実施形態は、集積回路等のデータ処理装置内で乱数を発生させるための、特に単純かつ効果的な機構を提供する。この設計は単純かつ低コスト(領域の観点から)であり、異なるサイズの乱数に容易に拡張可能であるため、多様な用途において使用することができる。
【0044】
乱数の各ビットは、図3に示すような別個の乱数ビット発生器回路によって生成されるため、これらの個々の乱数ビット発生器回路は、所望に応じて集積回路の至る所に分布させることができる。実際に、集積回路の至る所に広く個々の乱数ビット発生器を分布させるためのステップが用いられる場合、それらの異なる乱数ビット発生器回路は異なる環境条件に曝露され、当然のことながら、異なるタイミングジッタおよび異なる電源電圧リップルを経験し、それによって発生する数字の乱数性をさらに向上させる。
【0045】
上記実施形態によれば、ノイズ源(発振器)およびサンプラー(状態保持要素)の両方を提供するために同じ回路が使用される。特に単純かつ小領域の回路を提供することに加えて、この手法はまた、既知の先行技術の手法と比較してシステムのエントロピーを向上させ、既知の先行技術による回路と比べて出力における乱数性の向上を提供する。
【0046】
上記実施形態において、乱数のエントロピーは、電源ノイズとタイミングジッタの関数であり、したがって、そのような装置に対してサイドチャネル攻撃を実装する者に対しては非常に困難であることになる。実際には、いかなるサイドチャネル攻撃もエントロピーをさらに向上させ、したがって、乱数発生においてさらに乱数性を生じさせることが予想される。
【0047】
本明細書において特定の実施形態を記載してきたが、本発明はそれらに限定されるものではなく、本発明の範囲内でそれらに対して多くの修正および追加が行われてもよいことを理解されたい。例えば、本発明の範囲から逸脱することなく、以下の従属請求項の特徴の種々の組み合わせが、独立請求項の特徴とともになされる可能性がある。

【特許請求の範囲】
【請求項1】
乱数を発生させるための装置であって、
少なくとも1つの発生器回路であって、前記少なくとも1つの発生器回路の各々は、第1の動作モードおよび第2の動作モードを提供するように構成され、前記第1の動作モードにおいて、前記少なくとも1つの発生器回路の各々は発振器として動作し、前記第2の動作モードにおいて、前記少なくとも1つの発生器回路の各々は状態保持要素として動作する、発生器回路と、
前記少なくとも1つの発生器回路の各々に入力するための制御信号を発生させるための、制御信号発生器と、を備え、
前記少なくとも1つの発生器回路の各々は、前記第1の動作モードにおいて動作するように設定レベルにある前記入力制御信号に応答し、前記第2の動作モードにおいて動作するように解除レベルにある前記入力制御信号に応答し、前記入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記少なくとも1つの発生器回路の各々は、前記状態保持要素内で前記発振器の電流値を取得し、前記乱数の少なくとも一部を形成するようにその電流値を出力するように構成される、装置。
【請求項2】
前記制御信号発生器は、前記パルスの期間中に前記設定レベルが提供され、前記パルスにおけるタイミングジッタが、前記少なくとも1つの発生器回路の各々が前記発振器として動作する周期、および前記状態保持要素内で前記発振器の前記電流値が取得される時間に影響を及ぼすように、前記制御信号をパルスとして発生させるように構成される、請求項1に記載の装置。
【請求項3】
前記少なくとも1つの発生器回路の各々は、電源電圧から動作し、前記電源電圧のノイズは、前記発振器の発振周波数を変化させる、請求項1または請求項2に記載の装置。
【請求項4】
前記発振器は、ループとして形成される複数の発振器段を備え、前記複数は奇数であり、
前記少なくとも1つの発生器回路の各々は、前記解除レベルにおける前記制御信号に応答して前記発振器段のサブセットをバイパスするように構成され、前記サブセットは、残りの偶数の発振器段が前記状態保持要素として動作するように奇数の発振器段を含む、請求項1から3のうちのいずれかに記載の装置。
【請求項5】
各発振器段は、インバータ回路を備える、請求項4に記載の装置。
【請求項6】
前記少なくとも1つの発生器回路の各々は、前記ループに挿入されたマルチプレクサをさらに備え、前記マルチプレクサは、前記制御信号が設定されると前記ループが維持され、前記制御信号が解除されると、前記発振器段の前記サブセットをバイパスすることによって前記マルチプレクサがサブループを作成するように、前記制御信号を受信するように構成される、請求項4または請求項5に記載の装置。
【請求項7】
前記複数の発振器段は3つの発振器段を備え、前記発振器段の前記サブセットは単一の発振器段を備える、請求項4から6のうちのいずれかに記載の装置。
【請求項8】
前記少なくとも1つの発生器回路は、複数の発生器回路を備え、
前記第2の動作モードで動作しているときに各発生器回路によって出力される前記電流値は、複数ビットの乱数の異なるビットを形成する、請求項1から7のうちのいずれかに記載の装置。
【請求項9】
前記制御信号発生器は、伝播経路を介して前記複数の発生器回路に前記制御信号を出力するように構成され、前記伝播経路は、前記複数の発生器回路によって非同一時間に前記制御信号の前記値における遷移が観察されるように構成される、請求項8に記載の装置。
【請求項10】
前記伝播経路は、前記伝播経路に沿った前記制御信号の伝播を遅延させるように作用する一連のバッファ要素を備え、前記発生器回路の各々は、前記伝播経路に沿った関連する位置から前記制御信号を受信し、前記関連する位置は、異なる発生器回路ごとに異なる、請求項9に記載の装置。
【請求項11】
各発生器回路のための前記伝播経路の長さがその発生器回路の位置に依存するように、前記複数の発生器回路がデータ処理装置内の異なる前記位置に配置される、請求項9または請求項10に記載の装置。
【請求項12】
乱数を発生させるための装置を操作する方法であって、
少なくとも1つの発生器回路を提供することと、
第1の動作モードおよび第2の動作モードを提供するように前記少なくとも1つの発生器回路の各々を構成することであって、前記第1の動作モードでは、前記少なくとも1つの発生器回路の各々は発振器として動作し、前記第2の動作モードでは、前記少なくとも1つの発生器回路の各々は状態保持要素として動作する、構成することと、
前記少なくとも1つの発生器回路の各々に入力するための制御信号を発生させることと、
設定レベルにある前記入力制御信号に応答して、前記第1の動作モードで前記少なくとも1つの発生器回路の各々を操作すること、および解除レベルにある前記入力制御信号に応答して、前記第2の動作モードで前記少なくとも1つの発生器回路の各々を操作することと、
前記少なくとも1つの発生器回路の各々の内で、前記入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記状態保持要素内で前記発振器の電流値を取得し、前記乱数の少なくとも一部を形成するようにその電流値を出力することと、を含む、方法。
【請求項13】
乱数を発生させるための装置であって、
少なくとも1つの発生器手段であって、前記少なくとも1つの発生器手段の各々は、第1の動作モードおよび第2の動作モードを提供するためであり、前記第1の動作モードにおいて、前記少なくとも1つの発生器手段の各々は、発振器手段として動作するためであり、前記第2の動作モードにおいて、前記少なくとも1つの発生器手段の各々は、状態保持手段として動作するためである、少なくとも1つの発生器手段と、
前記少なくとも1つの発生器手段の各々に入力するための制御信号を発生させるための、制御信号発生手段と、を備え、
前記少なくとも1つの発生器手段の各々は、設定レベルにある前記入力制御信号に応答して前記第1の動作モードにおいて動作するため、および解除レベルにある前記入力制御信号に応答して前記第2の動作モードにおいて動作するためであり、前記入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記少なくとも1つの発生器手段の各々は、前記状態保持手段内で前記発振器手段の電流値を取得し、前記乱数の少なくとも一部を形成するようにその電流値を出力するためである、装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−186809(P2012−186809A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−49193(P2012−49193)
【出願日】平成24年3月6日(2012.3.6)
【出願人】(594154428)エイアールエム リミテッド (85)
【Fターム(参考)】