(57)【要約】【課題】乱数を発生させるための特に単純かつ効率的な小領域装置を提供する。【解決手段】乱数を発生させるための装置および方法を提供し、該装置は、少なくとも１つの発生器回路を有し、各発生器回路は、第１の動作モードおよび第２の動作モードを提供するように構成され、第１の動作モードにおいて、各発生器回路は発振器として動作し、第２の動作モードでは、各発生器回路は状態保持要素として動作する。次いで、制御信号発生器は、各発生器回路に入力するための制御信号を発生させる。各発生器回路は、第１の動作モードにおいて動作するように設定レベルの入力制御信号に応答し、第２の動作モードにおいて動作するように解除レベルの入力制御信号に応答する。入力制御信号が設定レベルから解除レベルに遷移する際に、各発生器回路は、状態保持要素内で発振器の電流値を取得し、乱数の少なくとも一部を形成するようにその電流値を出力するように構成される。【選択図】図３
2012186809.tif 000002
【特許請求の範囲】
【請求項１】
乱数を発生させるための装置であって、
少なくとも１つの発生器回路であって、前記少なくとも１つの発生器回路の各々は、第１の動作モードおよび第２の動作モードを提供するように構成され、前記第１の動作モードにおいて、前記少なくとも１つの発生器回路の各々は発振器として動作し、前記第２の動作モードにおいて、前記少なくとも１つの発生器回路の各々は状態保持要素として動作する、発生器回路と、
前記少なくとも１つの発生器回路の各々に入力するための制御信号を発生させるための、制御信号発生器と、を備え、
前記少なくとも１つの発生器回路の各々は、前記第１の動作モードにおいて動作するように設定レベルにある前記入力制御信号に応答し、前記第２の動作モードにおいて動作するように解除レベルにある前記入力制御信号に応答し、前記入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記少なくとも１つの発生器回路の各々は、前記状態保持要素内で前記発振器の電流値を取得し、前記乱数の少なくとも一部を形成するようにその電流値を出力するように構成される、装置。
【請求項２】
前記制御信号発生器は、前記パルスの期間中に前記設定レベルが提供され、前記パルスにおけるタイミングジッタが、前記少なくとも１つの発生器回路の各々が前記発振器として動作する周期、および前記状態保持要素内で前記発振器の前記電流値が取得される時間に影響を及ぼすように、前記制御信号をパルスとして発生させるように構成される、請求項１に記載の装置。
【請求項３】
前記少なくとも１つの発生器回路の各々は、電源電圧から動作し、前記電源電圧のノイズは、前記発振器の発振周波数を変化させる、請求項１または請求項２に記載の装置。
【請求項４】
前記発振器は、ループとして形成される複数の発振器段を備え、前記複数は奇数であり、
前記少なくとも１つの発生器回路の各々は、前記解除レベルにおける前記制御信号に応答して前記発振器段のサブセットをバイパスするように構成され、前記サブセットは、残りの偶数の発振器段が前記状態保持要素として動作するように奇数の発振器段を含む、請求項１から３のうちのいずれかに記載の装置。
【請求項５】
各発振器段は、インバータ回路を備える、請求項４に記載の装置。
【請求項６】
前記少なくとも１つの発生器回路の各々は、前記ループに挿入されたマルチプレクサをさらに備え、前記マルチプレクサは、前記制御信号が設定されると前記ループが維持され、前記制御信号が解除されると、前記発振器段の前記サブセットをバイパスすることによって前記マルチプレクサがサブループを作成するように、前記制御信号を受信するように構成される、請求項４または請求項５に記載の装置。
【請求項７】
前記複数の発振器段は３つの発振器段を備え、前記発振器段の前記サブセットは単一の発振器段を備える、請求項４から６のうちのいずれかに記載の装置。
【請求項８】
前記少なくとも１つの発生器回路は、複数の発生器回路を備え、
前記第２の動作モードで動作しているときに各発生器回路によって出力される前記電流値は、複数ビットの乱数の異なるビットを形成する、請求項１から７のうちのいずれかに記載の装置。
【請求項９】
前記制御信号発生器は、伝播経路を介して前記複数の発生器回路に前記制御信号を出力するように構成され、前記伝播経路は、前記複数の発生器回路によって非同一時間に前記制御信号の前記値における遷移が観察されるように構成される、請求項８に記載の装置。
【請求項１０】
前記伝播経路は、前記伝播経路に沿った前記制御信号の伝播を遅延させるように作用する一連のバッファ要素を備え、前記発生器回路の各々は、前記伝播経路に沿った関連する位置から前記制御信号を受信し、前記関連する位置は、異なる発生器回路ごとに異なる、請求項９に記載の装置。
【請求項１１】
各発生器回路のための前記伝播経路の長さがその発生器回路の位置に依存するように、前記複数の発生器回路がデータ処理装置内の異なる前記位置に配置される、請求項９または請求項１０に記載の装置。
【請求項１２】
乱数を発生させるための装置を操作する方法であって、
少なくとも１つの発生器回路を提供することと、
第１の動作モードおよび第２の動作モードを提供するように前記少なくとも１つの発生器回路の各々を構成することであって、前記第１の動作モードでは、前記少なくとも１つの発生器回路の各々は発振器として動作し、前記第２の動作モードでは、前記少なくとも１つの発生器回路の各々は状態保持要素として動作する、構成することと、
前記少なくとも１つの発生器回路の各々に入力するための制御信号を発生させることと、
設定レベルにある前記入力制御信号に応答して、前記第１の動作モードで前記少なくとも１つの発生器回路の各々を操作すること、および解除レベルにある前記入力制御信号に応答して、前記第２の動作モードで前記少なくとも１つの発生器回路の各々を操作することと、
前記少なくとも１つの発生器回路の各々の内で、前記入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記状態保持要素内で前記発振器の電流値を取得し、前記乱数の少なくとも一部を形成するようにその電流値を出力することと、を含む、方法。
【請求項１３】
乱数を発生させるための装置であって、
少なくとも１つの発生器手段であって、前記少なくとも１つの発生器手段の各々は、第１の動作モードおよび第２の動作モードを提供するためであり、前記第１の動作モードにおいて、前記少なくとも１つの発生器手段の各々は、発振器手段として動作するためであり、前記第２の動作モードにおいて、前記少なくとも１つの発生器手段の各々は、状態保持手段として動作するためである、少なくとも１つの発生器手段と、
前記少なくとも１つの発生器手段の各々に入力するための制御信号を発生させるための、制御信号発生手段と、を備え、
前記少なくとも１つの発生器手段の各々は、設定レベルにある前記入力制御信号に応答して前記第１の動作モードにおいて動作するため、および解除レベルにある前記入力制御信号に応答して前記第２の動作モードにおいて動作するためであり、前記入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記少なくとも１つの発生器手段の各々は、前記状態保持手段内で前記発振器手段の電流値を取得し、前記乱数の少なくとも一部を形成するようにその電流値を出力するためである、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数を発生させるための装置および方法に関する。
【背景技術】
【０００２】
先行技術の記載
乱数発生器は、多様な用途のために必要不可欠な構成要素である。セキュリティシステムにおいて、それらは認証および暗号化のためのシークレットキーまたはトークンを提供する。それらはまた、シミュレーションソフトウェアにおける種々の問題にも適用される。
【０００３】
そのような用途には、高品質な乱数源を提供することが重要な必要条件である。真の乱数は、予測不可能であり、乱数性の統計的特性を示す、ビットの集合である。
【０００４】
多数のハードウェア技術が乱数を発生させるために開発されており、そのような技術は、典型的にはデータ処理装置内にある乱数性の物理的な源を使用する。そのような回路は、真の乱数発生器（ＴＲＮＧ）と称されることが多い。
【０００５】
そのようなＴＲＮＧ回路の一例として、ＩＥＥＥ Ｊｏｕｒｎａｌ ｏｆ Ｓｏｌｉｄ−Ｓｔａｔｅ Ｃｉｒｃｕｉｔｓ，Ｖｏｌｕｍｅ４３，Ｎｏ．１（２００８年１月）７８〜８５ページに掲載のＣ Ｔｏｋｕｎａｇａらによる論文「Ｔｒｕｅ Ｒａｎｄｏｍ Ｎｕｍｂｅｒ Ｇｅｎｅｒａｔｏｒ ｗｉｔｈ ａ Ｍｅｔａｓｔａｂｉｌｉｔｙ−Ｂａｓｅｄ Ｑｕａｌｉｔｙ Ｃｏｎｔｒｏｌ」は、論理０レベルと論理１レベルとの間に位置する、準安定状態にある、すなわち、その保存された状態が不確定であるラッチを使用したＴＲＮＧの設計について記載している。準安定状態にあるそのようなラッチは、ラッチが転換される方向に寄与するノイズによって、時間とともに論理値０または論理値１のいずれかに転換される。この論文に記載される回路は、ラッチ内の既知の値に転換されるのにかかる時間をモニタリングするが、この時間は未知であり、効果的にランダムである。その転換時間は、次いで乱数に変換される。
【０００６】
ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎｓ ｏｎ Ｃｏｍｐｕｔｅｒｓ，Ｖｏｌｕｍｅ５２，Ｎｏ．４（２００３年４月）掲載のＭ Ｂｕｃｃｉらによる論文「Ａ Ｈｉｇｈ−Ｓｐｅｅｄ Ｏｓｃｉｌｌａｔｏｒ−Ｂａｓｅｄ Ｔｒｕｌｙ Ｒａｎｄｏｍ Ｎｕｍｂｅｒ Ｓｏｕｒｃｅ ｆｏｒ Ｃｒｙｐｔｏｇｒａｐｈｉｃ Ａｐｐｌｉｃａｔｉｏｎｓ ｏｎ ａ Ｓｍａｒｔ Ｃａｒｄ ＩＣ」は、低周波発振器がＤフリップフロップにおいて迅速な発振器のサンプリングを行う、発振器に基づく乱数発生器について記載している。低周波発振器の周期がより迅速な発振器の周期よりもはるかに高い標準偏差を特徴とする場合、２つの連続的なサンプリング時間にサンプリングされた発振器の状態は相関しない（すなわち、独立している）と推定することができ、したがって、ランダムなビットストリームを生成する。この論文に記載される発振器は、増幅されたノイズ源とともに提供され、周期長の約１０％の標準偏差を生じる。そのような高いジッタレベルは、ランダムストリームの質を向上させる。
【０００７】
ＩＥＥＥ Ａｓｉａｎ Ｓｏｌｉｄ−Ｓｔａｔｅ Ｃｉｒｃｕｉｔｓ Ｃｏｎｆｅｒｅｎｃｅ（２００９年１１月１６〜１８日、台北、台湾）１２１〜１２４ページ掲載のＴ Ｎａｋｕｒａらによる論文「Ｒｉｎｇ Ｏｓｃｉｌｌａｔｏｒ ＢａｓｅｄＲａｎｄｏｍ Ｎｕｍｂｅｒ Ｇｅｎｅｒａｔｏｒ Ｕｔｉｌｉｚｉｎｇ Ｗａｋｅ−Ｕｐ Ｔｉｍｅ Ｕｎｃｅｒｔａｉｎｔｙ」は、乱数を発生させるためにリング発振器のウェイクアップ時間の不確定性を用いる乱数発生回路について記載している。具体的には、その制御電圧がゼロから増加すると、リング発振器は発振を開始する前に準安定状態になる。準安定状態は、リング発振器のウェイクアップ時間の不確実性を引き起こし、その結果として大きなジッタをもたらし、次いでそれが乱数発生のために使用される。
【０００８】
ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎｓ ｏｎ Ｃｏｍｐｕｔｅｒｓ，Ｖｏｌｕｍｅ ５８，Ｎｏ．９（２００９年９月）１１９８〜１２１０ページ掲載のＤ Ｈｏｌｃｏｍｂらによる文献「Ｐｏｗｅｒ−Ｕｐ ＳＲＡＭ Ｓｔａｔｅ ａｓ ａｎ Ｉｄｅｎｔｉｆｙｉｎｇ Ｆｉｎｇｅｒｐｒｉｎｔ ａｎｄ Ｓｏｕｒｃｅ ｏｆ Ｔｒｕｅ Ｒａｎｄｏｍ Ｎｕｍｂｅｒｓ」は、ＳＲＡＭの初期状態を乱数源として使用する技術について記載している。しかしながら、この手法に伴う１つの問題は、プロセス変動に起因する歪みが常に存在することであり、そのため、そのような手法が決定論的チップ識別子を生成するために良好であるかもしれないにもかかわらず、乱数の連続的な発生が程度の差はあるものと同一であるため、乱数の発生にはあまり適さない。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Ｃ  Ｔｏｋｕｎａｇａ他，「Ｔｒｕｅ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｏｒ  ｗｉｔｈ  ａ  Ｍｅｔａｓｔａｂｉｌｉｔｙ−Ｂａｓｅｄ  Ｑｕａｌｉｔｙ  Ｃｏｎｔｒｏｌ」，ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ，Ｖｏｌｕｍｅ  ４３，Ｎｏ．１  （２００８年１月）  ７８〜８５ページ
【非特許文献２】Ｍ  Ｂｕｃｃｉ他，「Ａ  Ｈｉｇｈ−Ｓｐｅｅｄ  Ｏｓｃｉｌｌａｔｏｒ−Ｂａｓｅｄ  Ｔｒｕｌｙ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｓｏｕｒｃｅ  ｆｏｒ  Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｏｎ  ａ  Ｓｍａｒｔ  Ｃａｒｄ  ＩＣ」，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｏｍｐｕｔｅｒｓ，Ｖｏｌｕｍｅ  ５２，Ｎｏ．４  (２００３年４月)
【非特許文献３】Ｔ  Ｎａｋｕｒａ他，「Ｒｉｎｇ  Ｏｓｃｉｌｌａｔｏｒ  Ｂａｓｅｄ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｏｒ  Ｕｔｉｌｉｚｉｎｇ  Ｗａｋｅ−Ｕｐ  Ｔｉｍｅ  Ｕｎｃｅｒｔａｉｎｔｙ」，ＩＥＥＥ  Ａｓｉａｎ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ  （２００９年１１月１６〜１８日，台北，台湾）  １２１〜１２４ページ
【非特許文献４】Ｄ  Ｈｏｌｃｏｍｂ他，「Ｐｏｗｅｒ−Ｕｐ  ＳＲＡＭ  Ｓｔａｔｅ  ａｓ  ａｎ  Ｉｄｅｎｔｉｆｙｉｎｇ  Ｆｉｎｇｅｒｐｒｉｎｔ  ａｎｄ  Ｓｏｕｒｃｅ  ｏｆ  Ｔｒｕｅ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒｓ」，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｏｍｐｕｔｅｒｓ，  Ｖｏｌｕｍｅ  ５８，  Ｎｏ．９  （２００９年９月）  １１９８〜１２１０ページ
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記種々の先行技術による乱数発生器の全ては、比較的複雑であり、相当の領域を占めるため、多くの実装に実用的ではない。さらに、それらがアナログ回路を含むという点から配置に制約を生じ、異なる処理形態間で容易に移動可能ではない場合がある。したがって、処理形態が縮小し、ひいては個々の構成要素が小さくなるにつれて、そのような技術は、それらがそのような新しい処理形態に適用可能となるように、少なくともある程度再設計することが必要になるであろう。
【００１１】
このため、真の乱数を発生させるための改善された機構を提供することが望ましいことになる。
【課題を解決するための手段】
【００１２】
第１の態様から見ると、本発明は、乱数を発生させるための装置であって、少なくとも１つの発生器回路であって、前記少なくとも１つの発生器回路の各々は、第１の動作モードおよび第２の動作モードを提供するように構成され、第１の動作モードにおいて、前記少なくとも１つの発生器回路の各々は発振器として動作し、第２の動作モードにおいて、前記少なくとも１つの発生器回路の各々は状態保持要素として動作する、発生器回路と、前記少なくとも１つの発生器回路の各々に入力するための制御信号を発生させるための、制御信号発生器と、を備え、前記少なくとも１つの発生器回路の各々は、第１の動作モードにおいて動作するように設定レベルにある入力制御信号に応答し、第２の動作モードにおいて動作するように解除レベルにある入力制御信号に応答し、入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記少なくとも１つの発生器回路の各々は、状態保持要素内で発振器の電流値を取得し、乱数の少なくとも一部を形成するようにその電流値を出力するように構成される、装置を提供する。
【００１３】
本発明によれば、多数の発生器回路が提供され、各発生器回路は、その発生器回路に入力される制御信号の値に応じて、発振器または状態保持要素のいずれかとして動作することができる。制御信号が（例えば論理１レベルに）設定されると、各発生器回路は発振器として動作し、制御信号が（例えば論理０レベルに）解除されると、各発生器回路は、状態保持要素内で発振器の電流値を取得し、乱数の少なくとも一部を形成するようにその値を出力する。したがって、本発明の装置は、乱数を発生させるための非常に単純かつ効率的な機構を提供し、該装置は、既知の先行技術による乱数発生器よりもはるかに単純であり、比較的小さい領域を占めるため、多様な異なる用途のために実用的なソリューションを提供する。
【００１４】
制御信号は、各発生器回路がどれくらい長く発振器として動作するか、および乱数の少なくとも一部として出力するように発振器の電流状態がいつ取得されるか、の両方を決定するため、制御信号の遷移に本質的に存在するタイミングジッタが、各発生器回路からの出力がランダムであることを確実にする。さらに、同じ構成要素、すなわち各発生器回路が、ノイズ源（発振器）およびサンプラー（状態保持要素）の両方を形成するため、装置内で観察されるエントロピーは既知の先行技術よりも著しく高く、より高いエントロピーは、出力における乱数性の程度がより高いことを示す。
【００１５】
一実施形態において、制御信号の遷移におけるタイミングジッタは、出力における乱数性の唯一の源ではなく、それに加えて各発生器回路は、発振器の発振周波数をランダムな様式で変化させる電源電圧のノイズをともなう電源電圧から動作する。したがって、制御信号におけるタイミングジッタと電源電圧ノイズ（本明細書において電源電圧リップルとも称される）とが本設計内で一緒に動作し、装置に良好なエントロピーを有する乱数を発生させる。
【００１６】
制御信号発生器は、様々な方法で制御信号を発生させるように配設することができる。しかしながら、一実施形態において、制御信号発生器は、パルスの間に設定レベルが提供され、前記パルスのタイミングジッタが、前記少なくとも１つの発生器回路の各々が前記発振器として動作する周期、および状態保持要素内で発振器の電流値が取得される時間に影響を及ぼすように、制御信号を前記パルスとして発生させるように構成される。そのような実施形態において、乱数を出力することが所望されるときにいつでもパルスを発生させることができ、各パルスの発生の間に、各発生器回路は、最後に制御信号が設定状態から解除状態に遷移したとき（すなわち、前回のパルスの終り）に取得された値を出力し続ける。
【００１７】
各発生器回路は、多様な方法で構築することができる。しかしながら、一実施形態において、発振器は、ループとして形成される複数の発振器段を備え、前記複数は奇数である。さらに、各発生器回路は、前記解除レベルにある制御信号に応答して発振器段のサブセットをバイパスするように構成され、サブセットは、残りの偶数の発振器段が状態保持要素として動作するように奇数の発振器段を含む。こうして、発振器としての動作と状態保持要素としての動作の間で各発生器回路を切り換えるための、特に単純かつ効率的な機構を提供する。
【００１８】
種々の発振器段は、多様な方法で実装することができる。しかしながら、一実施形態において、各発振器段はインバータ回路を備える。
【００１９】
第２の動作モードにあるときに発振器段のサブセットをバイパスするように各発生器回路を配設することができる多数の方法がある。しかしながら、一実施形態において、各発生器回路は、ループに挿入されたマルチプレクサをさらに備え、マルチプレクサは、制御信号が設定されるとループが維持され、制御信号が解除されると、発振器段の前記サブセットをバイパスすることによってマルチプレクサがサブループを作成するように、制御信号を受信するように構成される。そのような様式におけるマルチプレクサの使用は、第２の動作モードにおいて発振器段のサブセットをバイパスするための単純な機構を提供する。
【００２０】
発振器内に提供される発振器段の数は、設計の選択の問題である。しかしながら、一般に、発振器は高周波数で発振することが望ましく、したがって、比較的少ない数の発振器段がこれを達成するのに役立つ。さらに、少数の発振器段はまた、回路を小さいままにするであろう。ある特定の実施形態において、複数の発振器段は３つの発振器段を備え、前記発振器段のサブセットは単一の発振器段を備える。よって、そのような実施形態において、その発生器回路が発振器として動作しているときには、各発生器回路内に３つの発振器段が存在し、その発生器回路が状態保持要素として動作しているときには、サブループは２つの発振器段のみを含み、事実上、発生器回路をラッチにする。
【００２１】
一実施形態において、各発生器回路は、乱数の一部を形成するために使用することができるシングルビットを出力する。したがって、一実施形態において、装置は、各々が上記のように構築された複数の発生器回路を備え、第２の動作モードで動作しているときに各発生器回路によって出力される電流値は、複数ビットの乱数の異なるビットを形成する。発生器回路は、任意の特定の実装に必要とされる乱数のサイズを提供するように、要求に応じて複製されればよいだけなので、これによって非常に拡張可能なソリューションが提供される。
【００２２】
さらに、各発生器回路が乱数の単一ビットを生成する、複数の発生器回路の存在自体が、発生する乱数の乱数性を増加させる役割を果たす。具体的には、一実施形態において、制御信号発生器は、伝播経路を介して複数の発生器回路に制御信号を出力するように構成され、伝播経路は、複数の発生器回路によって非同一時間に制御信号の値における遷移が観察されるように構成される。したがって、タイミングジッタが各発生器回路内の発振器の動作の長さおよび発振器の出力がラッチされるタイミングの両方に影響を及ぼすだけではなく、それに加えて、種々の発生器回路によって制御信号が受信される異なる時間が、任意の特定の発生器回路によって経験されるタイミングジッタをさらにランダム化する。また、各発生器回路が発振器として動作する絶対時間が若干異なるため、各個々の発生器回路によって経験される電源電圧リップルもまた異なる。
【００２３】
複数の発生器回路によって非同一時間に制御信号の値における遷移が観察されるように伝播経路を構成することができる多数の方法がある。一実施形態において、伝播経路は、伝播経路に沿った制御信号の伝播を遅延させる役割を果たす一連のバッファ要素を備え、発生器回路の各々は、伝播経路に沿った関連する位置から制御信号を受信し、関連する位置は、異なる発生器回路ごとに異なる。
【００２４】
代替の実施形態において、またはそれに加えて、各発生器回路のための伝播経路の長さがその発生器回路の位置に依存するように、複数の発生器回路がデータ処理装置内の異なる位置に配置される。複数の発生器回路を装置内の異なる位置に配置することによって、これは種々の発生器回路によって経験される環境条件が、装置内におけるそれらの位置に依存して変化することを意味し、ある程度の乱数性が各発生器回路の動作に再び導入される。
【００２５】
第２の態様から見ると、本発明は、乱数を発生させるための装置を操作する方法であって、少なくとも１つの発生器回路を提供することと、第１の動作モードおよび第２の動作モードを提供するように前記少なくとも１つの発生器回路の各々を構成することであって、第１の動作モードでは、前記少なくとも１つの発生器回路の各々は発振器として動作し、第２の動作モードでは、前記少なくとも１つの発生器回路の各々は状態保持要素として動作する、構成することと、前記少なくとも１つの発生器回路の各々に入力するための制御信号を発生させることと、設定レベルにある入力制御信号に応答して、第１の動作モードで前記少なくとも１つの発生器回路の各々を操作することと、解除レベルにある入力制御信号に応答して、第２の動作モードで前記少なくとも１つの発生器回路の各々を操作することと、前記少なくとも１つの発生器回路の各々の内で、入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、状態保持要素内で発振器の電流値を取得し、乱数の少なくとも一部を形成するようにその電流値を出力することと、を含む、方法を提供する。
【００２６】
第３の態様から見ると、本発明は、乱数を発生させるための装置であって、少なくとも１つの発生器手段であって、前記少なくとも１つの発生器手段の各々は、第１の動作モードおよび第２の動作モードを提供するためであり、第１の動作モードにおいて、前記少なくとも１つの発生器手段の各々は、発振器手段として動作するためであり、第２の動作モードにおいて、前記少なくとも１つの発生器手段の各々は、状態保持手段として動作するためである、少なくとも１つの発生器手段と、前記少なくとも１つの発生器手段の各々に入力するための制御信号を発生させるための、制御信号発生手段と、を備え、前記少なくとも１つの発生器手段の各々は、設定レベルにある入力制御信号に応答して第１の動作モードにおいて動作するため、および解除レベルの入力制御信号に応答して第２の動作モードにおいて動作するためであり、入力制御信号が前記設定レベルから前記解除レベルに遷移する際に、前記少なくとも１つの発生器手段の各々は、状態保持手段内で発振器手段の電流値を取得し、乱数の少なくとも一部を形成するようにその電流値を出力するためである、装置を提供する。
【００２７】
本発明は、添付図面に図示するように、その実施形態を参照して、単なる例示としてさらに記述される。
【図面の簡単な説明】
【００２８】
【図１】タイミングジッタを示す図である。
【図２】電源電圧リップルノイズを示す図である。
【図３】一実施形態にしたがって、乱数ビット発生器回路として使用されるセル構造を示す図である。
【図４】一実施形態にしたがって、図３の回路によってラッチされた値に、電圧リップルおよびタイミングジッタがどのような影響を及ぼすかを示す図である。
【図５】一実施形態にしたがって、複数ビットの乱数を発生させるために、どのように図３の回路の複数インスタンスを組み合わせることができるかを示す図である。
【発明を実施するための形態】
【００２９】
本発明の実施形態について記載する前に、図１および２を参照して、デジタル設計における不確定性の２つの源について記載する。すなわち、図１はタイミングジッタを示し、図２は電源電圧リップルを示す。
【００３０】
タイミングジッタは、周期信号の時間変動として定義される。一例として、グローバルクロック信号を分配する場合、正確にいつクロックエッジが現れるかについてある程度の不確定性が存在する。ジッタには多くの根本的な原因があり、それらのうちで最も重要なのは、電気回路のランダムノイズ源である。図１に示すように、理想的なケースでは、図１において垂直遷移１０によって示されるタイミングで信号が論理０レベルから論理１レベルに遷移する場合があるが、そのエッジのタイミングは、実際には図１のポイント１５とポイント２０の間で変動する場合がある。同様に、論理１レベルから論理０レベルへの遷移は、理想的には図１において数字２５によって示される垂直遷移で起こるかもしれないが、実際には、ポイント３０と３５との間の任意の時点で起こる場合がある。結果として、信号に対して標的パルス幅４０となる場合があるが、分配されたパルスの幅は、最小パルス幅４５から最大パルス幅５０まで、およびその間のいずかの範囲となる場合がある。これらの変動のために、合理的限界を超えてパルス幅を制御することはほぼ不可能である。以下の実施形態において、この不確定性が、ランダムなビットパターンを生成するために有益な方法で使用される。
【００３１】
タイミングジッタに加えて、電源電圧ノイズ（本明細書において電源電圧リップルとも称される）もまた、デジタル設計における不確定性の源を提供する。電源電圧ノイズは、電荷注入、電荷結合等を含む種々の理由に起因して存在する、電源電圧に対する過渡ノイズである。したがって、電源電圧は、理想的には図２に示すレベル６０であるが、ノイズは、破線７０によって示されるように時間とともにレベルを変化させる。現実には、１Ｖ電源で最大１０〜２５ｍＶのピークツーピークリップルノイズが観察されるのが一般的である。
【００３２】
以下に記載する実施形態では、乱数ビットを生成するために、タイミング（主にジッタ）および電源電圧リップルにおいて増加し続ける不確定性が利用される。１つの乱数ビットを生成するために一実施形態において使用される設計を図３に概略的に示す。単一乱数ビットを生成するために使用される発生器回路１００は、第１の動作モードおよび第２の動作モードの両方を提供するように構成され、選択されるモードは、経路１３０を通る制御信号として提供される選択信号の値に依存する。具体的には、多数のインバータ回路１０５、１１０、１１５を備えるループに挿入されたマルチプレクサ１２０を制御するために、選択信号が使用される。選択信号が設定されると（図３に示す実施形態では、信号は論理１の値に設定されている）、インバータ要素１０５、１１０、１１５が発振器段のループを形成し、次いで、信号がループの周囲を通る周波数の関数として変動する経路１４０上で観察される信号により、回路１００が発振器として作動することを理解されたい。
【００３３】
しかしながら、選択信号が解除レベル（この例では論理０レベル）に遷移すると、次いで、マルチプレクサ１２０が他の入力を選択し、したがって、インバータ要素１０５および１１０のみからなるサブループを作成し、インバータ要素１１５は、新しく形成されたサブループから除外される。この時点で、インバータ要素１０５、１１０はラッチを形成し、それに応じて経路１４０で観察される出力が静的となり、選択信号が設定状態から解除状態に遷移した時点で存在する値に留まる。
【００３４】
一実施形態において、選択信号はパルスとして提供されるため、乱数ビットの生成が必要な場合は、パルスがアサートされ、選択信号を解除レベルから設定レベルに遷移させ、次いで一定期間後に解除レベルに戻るように遷移させる。図１を参照して以前に記載したように、タイミングジッタのためにパルスの正確な幅が変動し、したがって、回路１００が発振器として動作する時間の量がタイミングジッタに依存して変動する。加えて、回路が発振器であることを終了し、状態保持要素となる実際の時点もまた、タイミングジッタに依存して変動する。さらに、図２を参照して以前に記載したように、インバータ要素１０５、１１０、１１５の各々が電源電圧によって駆動され、その電源電圧における任意のノイズもそれらの動作速度を変化させるため、電源電圧リップルノイズは発振の周波数を変化させる。結果として、パルスがアサート解除されたときに経路１４０を通って出力される値がランダムとなる。
【００３５】
図３では３つのインバータ要素１０５、１１０、１１５が示されているが、ループ内に提供される発振器段の正確な数は、設計の選択の問題として変化することができるが、但し奇数の発振器段が提供されるならば、第１の動作モードにおいて回路１００が発振器として作動することを確実にする。さらに、選択信号が解除されたときにバイパスされる発振器段の正確な数もまた変化する可能性があるが、但し奇数の段がバイパスされるならば、一旦、回路１００が第２の動作モードになると、偶数の段階がサブループ内に含まれる。
【００３６】
図４は、パルスがアサート解除されたときに、電圧リップルおよびタイミングジッタが、回路１００によってラッチされた値にどのように影響を及ぼす場合があるかを概略的に示している。最初に、選択信号がポイント２００で設定状態に遷移し、次いで、ステップ２１５で解除状態に戻るよう遷移する、理想的なケースが示される。また、交互の発振値の幅２３０、２４０が同じになるように、一定の電圧供給が回路に提供されることが想定される。この理想的なケースでは、線２５０によって示されるように、ラッチされた値は論理１レベルであることが分かる。図３を参照すると、これは、実際には、遷移２１５の時点で論理０値が上方入力としてマルチプレクサ１２０に提供され、経路１４０を通る出力を論理１レベル２５０にしていることを意味する。
【００３７】
図４の理想的なケースの下に、電圧リップルの影響を示す。ここでも同様に、選択信号は、タイミング２００で設定状態に遷移し、タイミング２１５で解除状態に戻るよう遷移することが想定される。しかしながら、電圧供給線上のノイズが発振の周波数に影響を及ぼすため、種々の発振ピーク２５５、２６０、２６２、２６４、２６６、２６８、２７０の長さが変動する。結果として、この例では、出力線２７５によって表されるように、時間２１５で論理０値がラッチされる。
【００３８】
つまり、ノイズの量に依存して、電圧リップルノイズは、たとえタイミングジッタが存在しなくても、異なる値のラッチングを直接もたらすことができる。
【００３９】
図４の下図は、選択信号の設定状態への遷移および／またはパルス終了時の解除状態への遷移の両方に影響を及ぼすことができる、タイミングジッタの効果を示す。図４の下図は、タイミング２８０で、すなわち、理想的なケースよりも若干早めに、選択信号が設定状態にアサートされ、結果として、発振器が予想したよりも早く発振し始める例を示している。加えて、完全性のために、図は、パルスがアサート解除されたときに生じる何らかのジッタも示しており、パルスはタイミング２８５でアサート解除されたことが想定される。この例でも同様に、これによって、線２９０によって示されるように論理値０が出力される。
【００４０】
分かりやすくするために、図４は、独立して生じる電圧リップルおよびタイミングジッタを示しているが、実際のシステムでは、電圧リップルおよびタイミングジッタの両方が同時に生じ、したがって、値に実質的な不確定性を付与し、選択信号が論理０値に解除されると、最終的に回路１００から出力される。このスキームは、単純ではあるものの、ランダムな出力ビットを生成するための強力かつ低コストの方法を提供する。
【００４１】
多くのシステムにおいて、複数ビットの乱数を発生させることが望みであり、これは、必要な回数だけそのセル構造を複製するだけで、図３のセル構造を使用して容易に達成することができ、セル構造の事例ごとに１ビットの乱数を生成する。これは、８ビットの乱数を発生させる例として図５で概略的に示される。それによると、図３の発振器回路の８つのインスタンス３００、３０５、３１０、３１５、３２０、３２５、３３０および３３５が提供され、各回路は同じ電源電圧４００から動作する。選択信号発生器４１０によって選択信号が発生し、伝播経路を通って乱数ビット発生器回路の各々に分配される。
【００４２】
この例では、選択信号発生器４１０によって生成されるパルスの受信タイミングが、異なる乱数ビット発生器回路間で確実に変動するように、一連のバッファ回路３４０、３４５、３５０、３５５、３６０、３６５、３７０が使用される。これにより、各バッファのランダムノイズ源に起因してジッタが最大化されること、および各乱数ビット発生器回路に入力される選択信号のジッタが相関していないことも確実になる。次いで、各乱数ビット発生器は、異なるタイミングジッタに供され、また発振器として動作している期間の間は異なる電源電圧リップルノイズに供され、各ビット発生器の出力がランダムであり、他の乱数ビット発生器のうちのいずれかの出力と相関していないことを確実にする。したがって、８ビットの乱数は、経路３８０、３８２、３８４、３８６、３８８、３９０、３９２および３９４を通って出力される信号によって作成される。
【００４３】
そのような実施形態は、集積回路等のデータ処理装置内で乱数を発生させるための、特に単純かつ効果的な機構を提供する。この設計は単純かつ低コスト（領域の観点から）であり、異なるサイズの乱数に容易に拡張可能であるため、多様な用途において使用することができる。
【００４４】
乱数の各ビットは、図３に示すような別個の乱数ビット発生器回路によって生成されるため、これらの個々の乱数ビット発生器回路は、所望に応じて集積回路の至る所に分布させることができる。実際に、集積回路の至る所に広く個々の乱数ビット発生器を分布させるためのステップが用いられる場合、それらの異なる乱数ビット発生器回路は異なる環境条件に曝露され、当然のことながら、異なるタイミングジッタおよび異なる電源電圧リップルを経験し、それによって発生する数字の乱数性をさらに向上させる。
【００４５】
上記実施形態によれば、ノイズ源（発振器）およびサンプラー（状態保持要素）の両方を提供するために同じ回路が使用される。特に単純かつ小領域の回路を提供することに加えて、この手法はまた、既知の先行技術の手法と比較してシステムのエントロピーを向上させ、既知の先行技術による回路と比べて出力における乱数性の向上を提供する。
【００４６】
上記実施形態において、乱数のエントロピーは、電源ノイズとタイミングジッタの関数であり、したがって、そのような装置に対してサイドチャネル攻撃を実装する者に対しては非常に困難であることになる。実際には、いかなるサイドチャネル攻撃もエントロピーをさらに向上させ、したがって、乱数発生においてさらに乱数性を生じさせることが予想される。
【００４７】
本明細書において特定の実施形態を記載してきたが、本発明はそれらに限定されるものではなく、本発明の範囲内でそれらに対して多くの修正および追加が行われてもよいことを理解されたい。例えば、本発明の範囲から逸脱することなく、以下の従属請求項の特徴の種々の組み合わせが、独立請求項の特徴とともになされる可能性がある。
【図１】
2012186809.tif 000003
【図２】
2012186809.tif 000004
【図３】
2012186809.tif 000005
【図４】
2012186809.tif 000006
【図５】
2012186809.tif 000007
【外国語明細書】
2012186809000001.pdf