(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-13
(45)【発行日】2023-07-24
(54)【発明の名称】乱数発生器
(51)【国際特許分類】
G06F 7/58 20060101AFI20230714BHJP
G09C 1/00 20060101ALI20230714BHJP
【FI】
G06F7/58 680
G09C1/00 650B
G06F7/58 620
【外国語出願】
(21)【出願番号】P 2021195812
(22)【出願日】2021-12-02
【審査請求日】2022-01-24
(32)【優先日】2021-02-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-10-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520196623
【氏名又は名称】▲しゃーん▼碼科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】游 鈞恆
(72)【発明者】
【氏名】邵 啓意
(72)【発明者】
【氏名】莊 ▲かい▼▲しぇん▼
(72)【発明者】
【氏名】▲呉▼ 孟益
【審査官】征矢 崇
(56)【参考文献】
【文献】特開2002-278749(JP,A)
【文献】欧州特許出願公開第03709157(EP,A1)
【文献】特開2019-192220(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F7/58
G09C1/00
(57)【特許請求の範囲】
【請求項1】
乱数発生器であって、
第1予備的乱数および第2予備的乱数を含む複数の予備的乱数を出力するように構成されている、第1ステージ発生器であり、
前記第1予備的乱数は、第1時点で出力され、かつ、前記第2予備的乱数は、前記第1時点の後の第2時点で出力される、
第1ステージ発生器と、
前記第1ステージ発生器に結合され、少なくとも前記第1予備的乱数に従って最終出力を生成するように構成されている、第2ステージ発生器であり、レシード回路を含み、
前記レシード回路は、レシード信号を生成するように構成されており、前記レシード信号は、前記第2予備的乱数に従って前記最終出力を生成するか否かを制御するように構成されている、
第2ステージ発生器と、
を含み、
前記第2ステージ発生器が、前記第2予備的乱数を使用することなく、前記第2ステージ発生器の現在のデータサイクルで前記最終出力を生成する場合に、前記第1ステージ発生器は、前記第2ステージ発生器の次のデータサイクルで前記最終出力を生成するために前記第2予備的乱数を保持
し、かつ、前記第2予備的乱数を使用する場合には、前記第2ステージ発生器は、前記第1予備的乱数および前記第2予備的乱数に従って前記最終出力を生成する、
乱数発生器。
【請求項2】
前記乱数発生器は、さらに、
第1動的エントロピービットおよび第2動的エントロピービットを提供するように構成されている、動的エントロピー源、
を含み、
真の乱数発生(TRNG)モードの最中に、前記第1ステージ発生器は、前記第2動的エントロピービットに従って予備的乱数を出力するように構成されており、かつ、前記第2ステージ発生器の前記レシード回路は、前記第1動的エントロピービットに従って前記レシード信号を生成するように構成されている、
請求項1に記載の乱数発生器。
【請求項3】
前記第2ステージ発生器は、さらに、
線形フィードバックシフトレジスタ(LFSR)であり、LFSR乱数を出力するように構成されている、線形フィードバックシフトレジスタと、
第1予備的乱数および前記LFSR乱数に従って、前記最終出力を生成するように構成されている、処理回路と、
を含み、
前記レシード信号が第1論理値を示す場合に、前記LFSRは、第2予備的乱数を使用することなく、事前決定されたルールに従って、前記LFSR乱数を出力し、かつ、
前記レシード信号が第2論理値を示す場合に、前記LFSRは、第2予備的乱数に従って、前記LFSR乱数を出力する、
請求項1に記載の乱数発生器。
【請求項4】
前記第1ステージ発生器は、
第1アドレス、第2アドレス、および第3アドレスに従って、それぞれに、第1静的エントロピー番号、第2静的エントロピー番号、および第3静的エントロピー番号を出力するように構成されている、静的エントロピーアレイと、
リフレッシュ信号を生成するように構成されている、リフレッシュ回路と、
を含み、
前記第1ステージ発生器は、少なくとも前記第1静的エントロピー番号および前記第2静的エントロピー番号に従って、複数の予備的乱数を生成し、かつ、
前記リフレッシュ信号は、前記第3静的エントロピー番号に従って、任意の前記予備的乱数を生成するか否かを制御するように構成されている、
請求項1に記載の乱数発生器。
【請求項5】
前記第1ステージ発生器は、さらに、
線形フィードバックシフトレジスタ(LFSR)であり、LFSR乱数を出力するように構成されている、線形フィードバックシフトレジスタと、
前記第1静的エントロピー番号、前記第2静的エントロピー番号、および前記LFSR乱数に従って、前記予備的乱数を生成するように構成されている、処理回路と、
を含み、
前記リフレッシュ信号が第1論理値を示す場合に、前記LFSRは、前記第3静的エントロピー番号を使用することなく、事前決定されたルールに従って、前記LFSR乱数を出力し、かつ、
前記リフレッシュ信号が第2論理値を示す場合に、前記LFSRは、前記第3静的エントロピー番号に従って、前記LFSR乱数を出力する、
請求項4に記載の乱数発生器。
【請求項6】
前記第1ステージ発生器は、さらに、
前記第1アドレス、前記第2アドレス、および前記第3アドレスを生成するように構成されている、アドレスカウンタ、
を含み、
前記第1アドレスおよび前記第2アドレスのそれぞれは、前記第1ステージ発生器の複数の出力サイクルのそれぞれにおいてリフレッシュされ、かつ、
前記リフレッシュ信号は、さらに、前記第3アドレスをリフレッシュするか否かを制御するように構成されている、
請求項5に記載の乱数発生器。
【請求項7】
前記第1ステージ発生器は、さらに、
前記レシード信号に従って、内部クロックを生成するように構成されている、クロック制御回路であり、前記リフレッシュ回路、前記アドレスカウンタ、および前記LFSRのそれぞれは、前記内部クロックに従って動作する、クロック制御回路、
を含み、
前記第2ステージ発生器が、前記第2予備的乱数を使用することなく、前記第2ステージ発生器の現在のデータサイクルで最終出力を生成する場合に、前記クロック制御回路は、前記第2予備的乱数を保持するために、前記リフレッシュ回路、前記アドレスカウンタ、および前記LFSRの動作を停止するように前記内部クロックをディセーブルする、
請求項6に記載の乱数発生器。
【請求項8】
前記静的エントロピーアレイは、第1方向に配置された前記静的エントロピーアレイ内の静的エントロピーユニットの第1グループから読出されたデータをグループ化することによって前記第1静的エントロピー番号を出力し、
前記静的エントロピーアレイは、第2方向に配置された前記静的エントロピーアレイ内の静的エントロピーユニットの第2グループから読出されたデータをグループ化することによって前記第2静的エントロピー番号を出力し、かつ、
前記静的エントロピーアレイは、第3方向に配置された前記静的エントロピーアレイ内の静的エントロピーユニットの第3グループから読出されたデータをグループ化することによって前記第3静的エントロピー番号を出力し、
前記静的エントロピーユニットの第1グループ、前記静的エントロピーユニットの第2グループ、および前記静的エントロピーユニットの第3グループは、それぞれに、前記第1アドレス、前記第2アドレス、および前記第3アドレスに対応している、
請求項4に記載の乱数発生器。
【請求項9】
前記静的エントロピーユニットの第1グループは、垂直方向に配置され、
前記静的エントロピーユニットの第2グループは、水平方向に配置され、かつ、
前記静的エントロピーユニットの第3グループは、傾斜方向に配置されている、
請求項8に記載の乱数発生器。
【請求項10】
前記静的エントロピーアレイは、物理複製困難関数(PUF)アレイ、または、PUFアレイから読出されたデータを保管するレジスタアレイである、
請求項4に記載の乱数発生器。
【請求項11】
乱数発生器であって、
第1動的エントロピービットを提供するように構成されている、動的エントロピー源と、
第1ステージ発生器であり、
第1アドレスおよび第2アドレスに従って、第1静的エントロピー番号および第2静的エントロピー番号を、それぞれに、出力するように構成されている、静的エントロピー源と、
リフレッシュ信号を生成するように構成されている、リフレッシュ回路と、
を含み、
前記第1ステージ発生器は、少なくとも前記第1静的エントロピー番号に従って、第1予備的乱数および第2予備的乱数を含む複数の予備的乱数を生成し、かつ、前記リフレッシュ信号は、前記第2静的エントロピー番号に従って、前記複数の予備的乱数のいずれを生成するか否かを制御するように構成されており、
前記第1予備的乱数は第1時点で生成され、かつ、前記第2予備的乱数は第1時点の後の第2時点で生成される、
第1ステージ発生器と、
前記第1ステージ発生器に結合され、少なくとも前記第1予備的乱数に従って、最終出力を生成するように構成されている、第2ステージ発生器であり、
第1動的エントロピービットに従って、レシード信号を生成するように構成されている、レシード回路であり、
前記レシード信号は、前記第2予備的乱数に従って、前記最終出力を生成するか否かを制御するように構成されている、
レシード回路、を含む、
第2ステージ発生器と、
を含む、乱数発生器。
【請求項12】
前記第2ステージ発生器が、前記第2予備的乱数を使用することなく、前記第2ステージ発生器の現在のデータサイクルで前記最終出力を生成する場合に、前記第1ステージ発生器は、前記第2ステージ発生器の次のデータサイクルで前記最終出力を生成するために前記第2予備的乱数を保持する、
請求項11に記載の乱数発生器。
【請求項13】
前記第1ステージ発生器は、さらに、前記動的エントロピー源によって提供される第2動的エントロピービットに従って、前記複数の予備的乱数を生成するように構成されており、かつ、
前記第1動的エントロピービットは、前記第2動的エントロピービットとは異なる、
請求項11に記載の乱数発生器。
【請求項14】
前記第2ステージ発生器は、さらに、
線形フィードバックシフトレジスタ(LFSR)であり、LFSR乱数を出力するように構成されている、線形フィードバックシフトレジスタと、
前記第1予備的乱数および前記LFSR乱数に従って、前記最終出力を生成するように構成されている、処理回路と、
を含み、
前記レシード信号が第1論理値を示す場合に、前記LFSRは、第2予備的乱数を使用することなく、事前決定されたルールに従って、前記LFSR乱数を出力し、かつ、
前記レシード信号が第2論理値を示す場合に、前記LFSRは、第2予備的乱数に従って、前記LFSR乱数を出力する、
請求項11に記載の乱数発生器。
【請求項15】
前記乱数発生器の初期プロシージャの間に、前記レシード回路は、第2ステージ発生器の複数のデータサイクルについて、第1動的エントロピービットに従って、前記レシード信号を生成し、かつ、
前記初期プロシージャの後で乱数発生器の出力プロシージャの間に、前記乱数発生器は、モード制御信号に従って、真の乱数発生(TRNG)モードまたは疑似乱数発生(PRNG)モードのどちらで動作するかを決定する、
請求項14に記載の乱数発生器。
【請求項16】
前記第1ステージ発生器は、さらに、
線形フィードバックシフトレジスタ(LFSR)であり、LFSR乱数を出力するように構成されている、線形フィードバックシフトレジスタと、
前記第1静的エントロピー番号および前記LFSR乱数に従って、前記複数の予備的乱数を生成するように構成されている、処理回路と、
を含み、
前記リフレッシュ信号が第1論理値を示す場合に、前記LFSRは、前記第2静的エントロピー番号を使用することなく、事前決定されたルールに従って、前記LFSR乱数を出力し、かつ、
前記リフレッシュ信号が第2論理値を示す場合に、前記LFSRは、前記第2静的エントロピー番号に従って、前記LFSR乱数を出力する、
請求項11に記載の乱数発生器。
【請求項17】
前記第1ステージ発生器は、さらに、
前記第1アドレスおよび前記第2アドレスを生成するように構成されている、アドレスカウンタ、
を含み、
前記第1アドレスは、前記第1ステージ発生器の複数の出力サイクルのそれぞれにおいてリフレッシュされ、かつ、
前記リフレッシュ信号は、さらに、前記第2アドレスをリフレッシュするか否かを制御するように構成されている、
請求項16に記載の乱数発生器。
【請求項18】
前記第1ステージ発生器は、さらに、
前記レシード信号に従って、内部クロックを生成するように構成されている、クロック制御回路であり、前記リフレッシュ回路、前記アドレスカウンタ、および前記LFSRのそれぞれは、前記内部クロックに従って動作する、クロック制御回路、
を含み、
前記第2ステージ発生器が、前記第2予備的乱数を使用することなく、前記第2ステージ発生器の現在のデータサイクルで最終出力を生成する場合に、前記クロック制御回路は、前記第2予備的乱数を保持するために、前記リフレッシュ回路、前記アドレスカウンタ、および前記LFSRの動作を停止するように前記内部クロックをディセーブルする、
請求項17に記載の乱数発生器。
【請求項19】
前記静的エントロピー源は、静的エントロピーアレイによって実装され、
前記静的エントロピーアレイは、第1方向に配置された前記静的エントロピーアレイ内の静的エントロピーユニットの第1グループから読出されたデータをグループ化することによって前記第1静的エントロピー番号を出力し、
前記静的エントロピーアレイは、第2方向に配置された前記静的エントロピーアレイ内の静的エントロピーユニットの第2グループから読出されたデータをグループ化することによって前記第2静的エントロピー番号を出力し、
前記静的エントロピーユニットの第1グループおよび前記静的エントロピーユニットの第2グループは、それぞれに、前記第1アドレスおよび前記第2アドレスに対応しており、かつ、
前記第1方向と前記第2方向それぞれは、垂直方向、水平方向、傾斜方向のうち1つを表し、前記静的エントロピーユニットの第1グループおよび前記静的エントロピーユニットの第2グループは、異なる方向に配置されている、
請求項11に記載の乱数発生器。
【請求項20】
前記静的エントロピー源は、さらに、第3方向に配置された前記静的エントロピーアレイ内の静的エントロピーユニットの第3グループから読出されたデータをグループ化することによって、第3アドレスに従って第3静的エントロピー番号を出力するように構成されており、
前記第3方向は、前記垂直方向、前記水平方向、および前記傾斜方向のうち1つを表し、
前記静的エントロピーユニットの第1グループ、前記静的エントロピーユニットの第2グループ、および前記静的エントロピーユニットの第3グループは、異なる方向に配置されておりる、
前記第1ステージ発生器は、少なくとも第1静的時点でおよび第3静的エントロピー数に従って、前記複数の予備的乱数を生成する、
請求項19に記載の乱数発生器。
【請求項21】
前記第1ステージ発生器は、さらに、前記複数の予備的乱数のうちの第3予備的乱数を出力するように構成されており、
前記最終出力は、少なくとも前記第1予備的乱数および前記第3予備的乱数に従って生成され、
前記第3予備的乱数は、前記第2時点の前の第3時点で生成される、
請求項11に記載の乱数発生器。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、乱数発生メカニズムに関する。そして、より詳細には、乱数発生器に関する。
【背景技術】
【0002】
乱数発生器は、情報セキュリティ関連機能の実装のために電子システムにおいて広く利用されている。関連技術は、乱数を生成するためのいくつかの乱数生成メカニズムを提案してきた。しかしながら、乱数生成メカニズムにはいくつかの欠点を有している。例えば、真の乱数発生器は乱数を生成するために少なくとも1つのエントロピー源(entropy source)を必要とするが、エントロピー源の乱数関連の品質は、典型的には、米国国立標準技術研究所(NIST) SP800-90B(例えば、パワーオンテスト)で定義されたテスト項目をパスさせるのに十分ではない。加えて、疑似乱数発生器は、真の乱数発生器と比較して、より高い乱数の出力速度を提供し得るが、疑似乱数発生器によって生成された乱数の繰り返しパターンは、関連技術における問題であり得る。
【0003】
従って、乱数発生器の新しいアーキテクチャ、および、生成された乱数の乱数関連品質を改善するための関連乱数生成法が必要とされている。
【発明の概要】
【0004】
本発明の目的は、任意の副作用を導くることなく、または、副作用を起こしにくい方法で、乱数発生器の全体的な性能を改善するように、乱数発生器を提供することである。
【0005】
本発明の少なくとも1つの実施形態は、乱数発生器を提供する。本乱数発生器は、第1ステージ発生器、および、第1ステージ発生器に結合された第2ステージ発生器を含む。第1ステージ発生器は、第1予備的乱数および第2予備的乱数を含む複数の予備的乱数を出力するように構成されており、ここで、前記第1予備的乱数は、第1時点で出力され、前記第2予備的乱数は、前記第1時点の後の第2時点で出力される。第2ステージ発生器は、少なくとも第1予備的乱数に従って最終出力を生成するように構成されている。より詳細には、第2ステージ発生器は、レシード信号を生成するように構成されているレシード回路を含み、ここで、レシード信号は、第2予備的乱数に従って最終出力を生成するか否かを制御するように構成されている。加えて、第2ステージ発生器が、第2予備的乱数を使用することなく、第2ステージ発生器の現在のデータサイクルで最終出力を生成する場合に、第1ステージ発生器は、第2ステージ発生器の次のデータサイクルで最終出力を生成するために第2予備的乱数を保持する。
【0006】
本発明の少なくとも1つの実施形態は、乱数発生器を提供する。本乱数発生器は、動的エントロピー源、第1ステージ発生器、および第2ステージ発生器を含む。動的エントロピー源は、第1動的エントロピービットを提供するように構成されている。第1ステージ発生器は、静的エントロピー源およびリフレッシュ回路を含む。静的エントロピー源は、第1アドレス及び第2アドレスに従って、それぞれに、第1静的エントロピー番号及び第2静的エントロピー番号を出力するように構成されており、そして、リフレッシュ回路は、リフレッシュ信号を生成するように構成されている。ここで、第1ステージ生成器は、少なくとも第1静的エントロピー番号に従って、第1予備的乱数及び第2予備的乱数を含む複数の予備的乱数を生成し、そして、リフレッシュ信号は、第2静的エントロピー番号に従って、複数の予備的乱数を生成するか否かを制御するように構成されている。より詳細には、第1予備的乱数は第1時点で生成され、第2予備的乱数は第1時点の後の第2時点で生成される。第2ステージ発生器は、第1ステージ発生器に結合され、少なくとも第1予備的乱数に従って最終出力を生成するように構成されている。第2ステージ発生器は、第1動的エントロピービットに従ってレシード信号を生成するように構成されているレシード回路を含み、ここで、レシード信号は、第2予備的乱数に従って最終出力を生成するか否かを制御するように構成されている。
【0007】
第1ステージ発生器の出力制御機構の助けを借りて、本発明の実施形態によって提供される乱数発生器により生成される乱数の品質を大幅に改善することができる。加えて、乱数のフィールドが大幅に拡張され得る。従って、乱数発生器が擬似乱数モードの下で動作する場合に、乱数発生器から出力される乱数は、関連技術の擬似乱数発生器と比較して、より高い品質を有することができる。
【0008】
本発明のこれら及び他の目的は、種々の図面および図面に示されている好ましい実施形態に係る以下の詳細な説明を読んだ後で、当業者にとって疑いなく明らかになるであろう。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明の一つの実施形態に従って、乱数発生器を示す図である。
【
図2】
図2は、本発明の一つの実施形態に従って、
図1に示す乱数発生器の動作フローを示す図である。
【
図3】
図3は、本発明の一つの実施形態に従って、真の乱数発生モードの分岐スキーム(diverging scheme)を示す図である。
【
図4】
図4は、本発明の一つの実施形態に従って、擬似乱数生成モードの分岐スキームを示す図である。
【
図5】
図5は、本発明の一つの実施形態に従って、任意のランダムエッセンス保持(random-essence-hold)機構を伴わない、PUFベースのランダムエッセンス発生器の出力スキームを示す図である。
【
図6】
図6は、本発明の一つの実施形態に従って、乱数発生方法の動作フローを示す図である。
【
図7】
図7は、本発明の一つの実施形態に従って、
図1に示される乱数発生器に関連するいくつかの信号を示す図である。
【
図8】
図8は、本発明の別の実施形態に従って、
図1に示される乱数発生器に関連するいくつかの信号を示す図である。
【
図9】
図9は、本発明の一つの実施形態に従って、ランダムエッセンス保持機構を有するPUFベースのランダムエッセンス発生器の出力スキームを示す図である。
【
図10】
図10は、本発明の一つの実施形態に従って、
図1に示されるPUFベースのランダムエッセンス発生器のいくつかの詳細を示す図である。
【
図11】
図11は、本発明の一つの実施形態に従って、PUFアレイから読出されたPUF番号の出力スキームを示す図である。
【
図12】
図12は、本発明の一つの実施形態に従って、
図10に示されたPUFベースのランダムエッセンス発生器に関連するいくつかの信号を示す図である。
【発明を実施するための形態】
【0010】
図1は、本発明の一つの実施形態に従って、乱数発生器10を示す図である。
図1に示すように、乱数発生器10は、動的(dynamic)エントロピー源20、物理複製困難関数(Physical Unclonable Function、PUF)ベースのランダムエッセンス発生器(PREG)100のような第1ステージ発生器、および、乱数抽出器50のような第2ステージ発生器を含んでよく、ここで、乱数抽出器50は動的エントロピー源20およびPREG 100に結合されている。動的エントロピー源20は、少なくとも1つの動的エントロピービットを提供するように構成されており、例えば、動的エントロピービットB
DYN1を乱数抽出器50に提供し、動的エントロピービットB
DYN2をPREG 100に提供する。動的エントロピー源20から出力される動的エントロピービットは、第1論理値と第2論理値との間でランダムかつ予測不可能な方法で動的に変化し得る(例えば、「0」と「1」との間で変動している)。動的エントロピー源20は、予測不可能なランダムな信号を出力することができる任意のコンポーネントによって実現することができる。動的エントロピー源20の例は、これらに限定されるわけではないが、熱ノイズサンプリング回路、タイミングジッタサンプリング回路(例えば、リング発振器)、スタティックランダムアクセスメモリ(SRAM)セルの転移安定性、等を含み得る。
【0011】
いくつかの実施形態において、動的エントロピービットBDYN1及び動的エントロピービットBDYN2は同一であってよい(例えば、動的エントロピー源20は、PREG 100及び乱数抽出器50の両方に同じ動的エントロピービットを提供する)。いくつかの実施例において、動的エントロピービットBDYN1及び動的エントロピービットBDYN2は同一であってよい(例えば、動的エントロピー源20は、PREG 100及び乱数抽出器50の両方に同じ動的エントロピービットを提供する)。いくつかの実施例において、動的エントロピービットBDYN1及び動的エントロピービットBDYN2は互いに異なっていてよい。動的エントロピービットBDYN1及び動的エントロピービットBDYN2の一方がクラックされても、他方がクラックされない限り、少なくとも1つの動的エントロピービットが含まれ、それによって、乱数発生器10の全体的な動作のランダム性(randomness)が確保される。例えば、動的エントロピービットBDYN1がクラックされるが、動的エントロピービットBDYN2がクラックされない場合、PREG 100の動作(以下のパラグラフで説明される)のランダム性を保証することができる。別の例について、動的エントロピービットBDYN1がクラックされるが、動的エントロピービットBDYN2がクラックされない場合、乱数抽出器50の動作のランダム性を保証することができる。
【0012】
この実施形態において、PREG 100は、乱数OUT
PREGのような予備的(preliminary)乱数を出力するように構成されており、この場合、第1時点での乱数OUT
PREG出力は第1予備的乱数として受け取られ(taken)、第2時点での乱数OUT
PREG出力は第2予備的乱数として受け取られる。乱数抽出器50は、少なくとも第1予備的乱数に従って、乱数OUT
RNGのような最終出力を生成するように構成されている。
図1に示すように、乱数抽出器50は、レジスタR1およびR2、第1線形フィードバックシフトレジスタ(linear feedback shift register、LFSR)51(簡略化のために
図1においては「LFSR-1」とラベル付けされている)、新たなステージ発生器52(例えば、排他的OR論理回路)、レシード(reseeded)制御回路53のようなレシード回路、および、処理回路54(簡略化のために「+」を伴う円で示されている)を含み得る。
【0013】
例えば、時点t=1において(例えば、PREG 100の第1出力サイクルにおいて)、PREG 100からの乱数OUTPREG出力はRE[1]である。時点t=2において(例えば、PREG 100の第2出力サイクルにおいて)、PREG 100からの乱数OUTPREG出力はRE[2]であり、かつ、RE[1]はレジスタR1に保管される(例えば、レジスタR1からの乱数OUTR1出力はRE[1]である)。時点t=3において(例えば、PREG 100の第3出力サイクルにおいて)、PREG 100からの乱数OUTPREG出力はRE[3]であり、RE[2]はレジスタR1に保管され(例えば、レジスタR1からの乱数OUTR1出力はRE[2]であり)、かつ、RE[1]はレジスタR2に保管される(例えば、レジスタR2からの乱数OUTR2出力はRE[1]である)。時点t=3における乱数OUTR1およびOUTR2のそれぞれ(例えば、RE[1]およびRE[2])は、第1予備的乱数の例であってよく、そして、時点t=3における乱数OUTPREG(例えば、RE[3])は、第2予備的乱数の例であってよい。
【0014】
レシード制御回路(reseed control circuit)53は、動的エントロピービットBDYN1に従って、レシードイネーブル信号ENRESEED1を生成するように構成される。例えば、レシード制御回路53は、動的エントロピービットBDYN1及び乱数OUTRNGに従ってレシードイネーブル信号ENRESEED1を生成することがでる。そして、より詳細に、レシードイネーブル信号ENRESEED1は、動的エントロピービットBDYN1と、乱数OUTRNGのうち事前決定されたビット(例えば、乱数OUTRNGのL番目ビット、Lは正の整数)の排他的論理和(XOR)結果であってよいが、本発明はそれに限定されるものではない。レシード制御回路53の処理に基づいて、動的エントロピービットBDYN1のような低品質の動的エントロピー(例えば、「0」および「1」の不均衡発生率を伴うもの)は、乱数OUTRNGのうち事前決定されたような高品質のランダムビット(例えば、「0」および「1」の実質的に等しい発生率を伴うもの)と混合され、それに含まれる動的エントロピーを用いて高品質のランダム制御ビット(例えば、レシードイネーブル信号ENRESEED1)を生成することができる。
【0015】
この実施形態において、レシードイネーブル信号ENRESEED1は、第2予備的乱数に従って乱数OUTRNGを生成するか否かを制御するように構成されている。詳細には、レシードイネーブル信号ENRESEED1は、出力(例えば、乱数OUTLFSR1)を生成するために、第2予備的乱数を用いてLFSR 51をレシードするか否かを制御するように構成されている。LFSRの初期状態は初期シード(seed)によって決定され得ることに留意する。ここで、LFSRは、入力ビットが以前の状態の線形関数であるシフトレジスタであり、そして、線形関数は、原始多項式によって定義されることが好ましく、それは、LFSRの状態(例えば、LFSRの出力)を原始多項式に対応する事前決定されたルールで切り替える。第1LFSR 51はLFSRの一例であり、乱数OUTLFSR1のようなLFSR乱数を出力するように構成されている。レシードイネーブル信号ENRESEED1が第1論理値(例えば"0")を示す場合、第1LFSR 51は、RE[3]のような第2予備的乱数を使用することなく、第1事前決定ルール(例えば、第1原始多項式に対応するルール)に従って乱数OUTLFSR1を出力する。別の言葉で言えば、第1LFSR 51はレシードされない。レシードイネーブル信号ENRESEED1が第2論理値(例えば、「1」)を示す場合、第1LFSR 51は、第2予備的乱数に従って乱数OUTLFSR1を出力する。詳細には、新たなステージ発生器52は、RE[3]のような第2予備的乱数及び乱数OUTRNGに従って新たなシード(new seed)を生成することができ(例えば、新たなシードはRE[3]のXOR結果及び乱数OUTRNGであってよい)、そして、レシードイネーブル信号ENRESEED1が第2論理値(例えば、「1」)を示すときに、新たなシードは、第1LFSR 51にその次の状態であるとして書き込まれてよい。ここで、この動作は、第1LFSR 51をレシードすること(reseeding)と称することができる。加えて、処理回路54は、乱数OUTR1、OUTR2、OUTLFSR1に従って乱数OUTRNGを生成するように構成されている。例えば、処理回路54は、乱数OUTR1及びOUTR2に対してXOR演算を実行して、予備的XOR結果を生成し、次いで、の予備的XOR結果及び乱数OUTLFSR1に対してXOR演算を実行して、乱数OUTRNGを生成することができるが、本発明はそれに限定されるものではない。
【0016】
この実施形態において、乱数発生器10の初期プロシージャの間に、レシード制御回路53は、乱数抽出器50の複数のデータサイクルについて、動的エントロピービットBDYN1に従って、レシードイネーブル信号ENRESEED1を生成する。初期プロシージャの後で乱数発生器10の出力プロシージャの間に、乱数発生器10は、モード制御信号MODECTRLに従って、真の乱数発生(true random number generating、TRNG)モードまたは疑似乱数発生(pseudo random number generating、PRNG)モードのどちらで動作するかを決定する。詳細には、PREG 100およびレシード制御回路53それぞれは、PRNGモードまたはTRNGモード下で動作するか否かを決定するために、モード制御信号MODECTRLを受信し得る。乱数発生器10がTRNGモードの下で動作する場合(例えば、モード制御信号MODECTRLが論理値「0」を示す場合)、レシード制御回路53は、上述のように、動的エントロピービットBDYN1に応じて、レシードイネーブル信号ENRESEED1を生成することができる。乱数発生器10がPRNGモードの下で動作する場合(例えば、モード制御信号MODECTRLが論理値「1」を示す場合)、レシード制御回路53は、動的エントロピービットBDYN1を使用することなく、レシードイネーブル信号ENRESEED1を生成することができる(例えば、レシード制御回路53は、レシードイネーブル信号ENRESEED1として上記の乱数OUTRNGの中の事前決定されたビットを出力することができる)。
【0017】
いくつかの実施形態において、乱数発生器10内の品質チェック回路(図示なし)は、乱数OUTRNGを受信し、かつ、乱数OUTRNGの品質をチェックするために処理回路54に結合されてよい(例えば、乱数OUTRNGのハミング重み(hamming weight)が事前決定された基準を満たすか否かをチェックする)。乱数OUTRNGのハミング重みが事前決定された基準を満たさない場合、品質チェック回路は、乱数発生器10に結合されたプロセッサに、この時点で乱数OUTRNGが利用できないことを知らせるために、乱数発生器10の外側に対してアラームを発生し得る。いくつかの実施形態においては、乱数発生器10に結合されたプロセッサが、品質チェック回路から発行されたアラームを受信すると、プロセッサは、乱数発生器10をレシードまたはリブートするためにレシード信号を送信することができるが、本発明は、これに限定されるものではない。
【0018】
図2は、本発明の一つの実施形態に従って、
図1に示す乱数発生器10の動作フロー(working flow)を示す図であり、ここで、本動作フローは、
図1に示す乱数発生器10に適用可能である。
図2に示す動作フローにおいては、1つ以上のステップを追加、削除、または修正することができ、全体的な結果を達成することが妨げられない場合、これらのステップは、
図2に示す正確な順序で実行される必要はないことに留意されたい。例えば、必要に応じて、上記の品質チェックが動作フローに追加されてよい。
【0019】
ステップS21では、乱数発生器10のパワーオンされた後で、乱数発生器10は、第1LFSRステージの出力をステージ毎(stage by stage)に分岐させるために、動的エントロピーによる初期レシード判定(initial reseed judgement)を利用することができ、ここで、このステップは、上記の初期プロシージャの一例であり、そして、簡略化のために、
図2では「分岐LFSRステージ:動的エントロピーを用いた初期レシード判定」とラベル付けされている。
【0020】
ステップS22では、第1LFSR 51の出力のフィールドが所定のレベルまで拡張された後で、乱数発生器10は、制御信号MODE
CTRLに従ってPRNGモードの下で動作するか、または、TRNGモードの下で動作するかを決定することができる。ここで、このステップは、簡略化のために、
図2において「モード選択:PRNG/TRNG」とラベル付けされている。選択がPRNGモードの場合、動作フローはステップS23に進み、選択がTRNGモードの場合、動作フローはステップS25に進む。ステップS22および以降のステップは、上記の出力プロシージャの一例であってよい。
【0021】
ステップS23では、乱数発生器10が、擬似乱数(簡略化のために「擬似RNを出力」とラベル付けされている)の出力を開始することができる。
【0022】
ステップS24では、乱数発生器10が、動的エントロピービットBDYN1を使用することなく、レシードイネーブル信号ENRESEED1を生成するように、レシード制御回路を制御することができる(例えば、乱数OUTRNGの事前決定されたビットをレシードイネーブル信号ENRESEED1とする)。ここで、このステップは、簡略化のために「動的エントロピーなしのレシード判定」とラベル付けされている。
【0023】
ステップS25では、乱数発生器10が、真の乱数を出力し始めることができる(簡略化のために「真のRNを出力」とラベル付けされている)。
【0024】
ステップS26では、乱数発生器10が、レシード制御回路を制御して、動的エントロピービットBDYN1に従って、レシードイネーブル信号ENRESEED1を生成することができる(例えば、動的エントロピービットBDYN1と、乱数OUTRNGの事前決定されたビットのXOR結果をとる)。ここで、このステップは、「動的エントロピーを用いたレシード判定」とラベル付けされている。
【0025】
図3は、本発明の一つの実施形態に従って、TRNGモードの分岐スキームを示す図である。S0は第1LFSR 51の初期シードを表し、そして、この初期シードは、レシードされない条件とレシードされる条件に応じて、それぞれ2つの状態S1aとS1bに分岐すると仮定する。第1LFSR 51の状態がS1aである場合、状態S1aは、レシードされない状態とレシードされる状態に応じて、それぞれS2aとS2bの2つの状態に分岐する。第1LFSR 51の状態がS1bである場合、状態S1bは、レシードされない状態とレシードされる状態に応じて、それぞれS2cとS2dの2つの状態に分岐する。従って、Nステージの分岐の後で、初期シードS0は、SNaからSNbのような2
N個の状態に分岐し得る。そして、乱数発生器10は、乱数の出力を開始し得る。第1LFSR 51の状態がSNaである場合、乱数発生器10の出力は、レシードされない条件およびレシードされる条件に応じて、それぞれ2つの乱数T1aおよびT1bに分岐し得る。第1LFSR 51の状態がSNbである場合、乱数発生器10の出力は、レシードされない条件とレシードされる条件に応じて、それぞれT1cとT1dの2つの乱数に分岐する。乱数T2a~T2hは、同様の方法で分岐し得るものであり、ここでは簡略化のために繰り返さない。
図3に示すように、乱数発生器10は、TRNGモードの下で上記の判定メカニズムをレシードすることにより、その出力のフィールドを拡張し続けることができる。
【0026】
図4は、本発明の一つの実施形態に従って、PRNGモードの分岐スキームを示す図であり、PRNGモードの下での初期Nステージ分岐の詳細は、TRNGモードと同じであり、ここでは簡略化のために繰り返さない。初期Nステージ分岐が終了した後で、乱数発生器10は、第1LFSR 51をレシードするか否かを制御するために動的エントロピービットB
DYN1を使用することを停止し得る。従って、レシード判定は静的エントロピーのみによって決定される。ここで、この静的(static)エントロピーは、レシード判定を制御するために動的エントロピービットB
DYN1を使用している乱数発生器10が停止した後で変化しない(分岐停止)初期Nステージ分岐の分岐結果に関連し得る。第1LFSR 51に関するレシード判定はもはや動的エントロピーの影響を受けないので、第1LFSR 51は、静的エントロピー源として作用し得る。いくつかの実施形態において、この静的エントロピーは、PUFアレイによって実装される静的エントロピー源に関連し得る。そして、
図10に示されるPREG 100の詳細に関連する以下のパラグラフでさらに説明される。動的エントロピーはもはやレシード判定に関与しないので、第1LFSR 51の各状態(例えば、SNaからSNbまで)に関する乱数の出力は、分岐することなく単一のパターン(例えば、状態SNaに関してはP1aからP2a、そして、状態SNbに関してはP1bからP2b)を有し得る。PRNGモードで動作する乱数発生器10は、初期のNステージ分岐が終了した後では、その出力のフィールドを拡張し続けることはできないが、乱数の出力は、動的エントロピーを収集するために時間を費やすことなく実行することができ、従って、TRNGモードと比較してより高い出力レートを達成する。
【0027】
パワーオン試験に関連する性能を向上させる目的で、PREG 100は、ランダムエッセンス保持機構を備えている。詳細には、乱数抽出器50が、第2予備的乱数(例えば、RE[3])を使用することなく、乱数抽出器50の現在のデータサイクル(例えば、T番目のデータサイクル)において乱数OUTRNGを生成する場合、PREG 100は、PREG 100の次のデータサイクル(例えば、(T+1)番目のデータサイクル)において乱数OUTRNGを生成するための第2予備的乱数(例えば、RE[3])を保持することができる。
【0028】
図5は、本発明の一つの実施形態に従って、ランダムエッセンス保持機構を伴わないPREG 100の出力スキーム(例えば、ランダムエッセンス保持機構は無効化される)を示す図である。動的ランダムビットB
DYN2の低品質の影響をより良く理解するために、PREG 100は、その中の静的エントロピー(例えば、PUFアレイのようなその中の静的エントロピー源)に基づくランダム数を出力するだけであることが仮定される。乱数発生器10の最初のパワーオン後に、PREG 100は、乱数RE[1]、RE[2]、RE[3]、RE[4]、RE[5]、RE[6]、RE[7]、RE[8]およびRE[9]を順次に出力する。ここで、乱数RE[1]、RE[2]、RE[3]は、第1データサイクル(例えば、T=1)において乱数OUT
RNGを生成するために配置され、乱数RE[4]、RE[5]、RE[6]は、第2データサイクル(例えば、T=2)において乱数OUT
RNGを生成するために配置され、そして、乱数RE[7]、RE[8]、RE[9]は、第3データサイクル(例えば、T=3)において乱数OUT
RNGを生成するために配置されている。乱数発生器10の2回目のパワーオン後に、PREG 100は、動的ランダムビットB
DYN2の品質が低いために、最初のパワーオンと類似の出力または同一の出力を生成する。つまり、最初のパワーオン後の第Tサイクルで乱数OUT
RNGを生成するコンポーネントは、2回目のパワーオン後の第Tサイクルで乱数OUT
RNGを生成するコンポーネントと類似または同一であり得る。そして、従って、乱数OUT
RNGはパワーオン試験をパスすることができない。よって、ランダムエッセンス保持機構をイネーブルすることが好ましい。
【0029】
図6は、本発明の一つの実施形態に従って、乱数発生方法の動作フローを示す図であり、動作フローは、乱数発生器(例えば、
図1に示す乱数発生器10)に適用可能である。
図6に示す動作フローにおいて、1つ以上のステップを追加、削除、または修正することができ、全体的な結果を達成することが妨げられない場合、これらのステップは、
図6に示す正確な順序で実行される必要はないことに留意されたい。
【0030】
ステップS61において、乱数発生器は、第1動的エントロピービットを提供するために、動的エントロピー源を利用することができる。
【0031】
ステップS62において、乱数発生器は、予備的乱数を出力するために第1ステージ発生器を利用することができ、ここで、第1時点における予備的乱数出力は第1予備的乱数として、第2時点における予備的乱数出力は第2予備的乱数としてとられる。
【0032】
ステップS63において、乱数発生器は、最終的な乱数を生成するために、少なくとも第1予備的乱数に従って、第2ステージ発生器を利用することができる。
【0033】
ステップS64において、乱数発生器は、第1動的エントロピービットに従って、レシード信号を生成するためにレシード回路を利用することができ、ここで、レシード信号は、第2予備的乱数に従って、最終的な乱数を生成するか否かを制御するように構成されている。
【0034】
ステップS65においては、第2ステージ発生器が、第2予備的乱数を使用することなく、第2ステージ発生器の現在のデータサイクルにおいて最終的な乱数を生成する場合、乱数発生器は、第2ステージ発生器の次のデータサイクルにおいて最終的な乱数を生成するための第2予備的乱数を保持するために、第1ステージ発生器を利用することができる。
【0035】
より良く理解するために、
図7を参照されたい。
図7は、本発明の一つの実施形態に従って、
図1に示される乱数発生器10に関連するいくつかの信号を示す図である(例えば、乱数発生器10のメインクロックCLK、レシードイネーブル信号EN
RESEED1、乱数OUT
LFSR1、乱数OUT
LFSR1、OUT
PREG、およびOUT
RNG、並びに、動的エントロピービットB
DYN1)。乱数OUT
RNGは、さらに、乱数OUT
RNGをメインクロックの4サイクル毎に更新させるために、乱数抽出器50の出力クロックによって同期されていることに留意されたい。ここで、出力クロックの現在のデータサイクルで生成された乱数OUT
RNGは、出力クロックの次のデータサイクルで出力され得る。乱数発生器10のパワーオン後で、かつ、メインクロックCLKがトグリング(toggling)を開始する前に、乱数OUT
LFSR1は、初期状態にある(例えば、第1LFSR 51の初期シード)。動的エントロピービットB
DYN1は、ランダムな方法で、「0」と「1」の間をトグルすることができる(より良く理解するために、
図7では「H/L」とラベル付けされている)。
図7の実施形態において、レシードイネーブル信号EN
RESEED1が「0」に維持されるので、第1LFSR 51からの乱数OUT
LFSR1の出力は、レシード動作をすることなく、第1事前決定されたルールに従って切り替えられる(例えば、第1LFSR 51は、「t=1」、「t=2」、「t=3」、「t=4」、「t=5」、「t=6」、および「t=7」とラベル付けされたサイクルにおいて、L1、L2、L3、L4、L5、L6、およびL7を順次出力する)。PREG 100は、乱数RE[1]、RE[2]、およびRE[3]を順次出力する。ここで、乱数OUT
RNG(例えば、「t=5」とラベル付けされたサイクルで出力される乱数R1)は、乱数RE[3]を使用することなく、現在のデータサイクルで生成され、そして、PREG 100は、
図7に示すように、乱数RE[3]が次のデータサイクルで乱数OUT
RNGを生成するために利用することができるように、乱数RE[3]を保持する。
【0036】
図8を参照されたい。
図8は、本発明の別の実施形態に従って、
図1に示される乱数発生器10に関連するいくつかの信号を示している(例えば、乱数発生器10のメインクロックCLK、レシードイネーブル信号EN
RESEED1、乱数OUT
LFSR1、OUT
PREG、およびOUT
RNG、並びに、動的エントロピービットB
DYN1)。
図7の実施形態と比較すると、
図8に示されるレシードイネーブル信号EN
RESEED1は、「t=4」とラベル付けされたサイクルで「1」を示し、そして、第1LFSR 51は、従って、レシードされて、「t=5」とラベル付けされたサイクルで乱数L5'出力する。ここで、「t=6」および「t=7」とラベル付けされたサイクルでの乱数OUT
LFSR1は、それぞれL6'およびL7'である。加えて、
図8に示すレシードイネーブル信号EN
RESEED1は、「t=4」とラベル付けされたサイクルで「1」を示し、これは、乱数OUT
RNG(例えば、「t=5」とラベル付けされたサイクルで出力される乱数R1)が、乱数RE[1]、RE[2]、RE[3]に従って生成されることを意味するので、PREG 100は、「t=5」、「t=6」、および「t=7」とラベル付けされたサイクルで、それぞれに、乱数RE[4]、RE[5]、およびRE[6]を出力するように進行する。
【0037】
図9は、本発明の一つの実施形態に従って、ランダムエッセンス保持機構を有するPREG 100の出力スキームを示す図である(例えば、ランダムエッセンス保持機構がイネーブルされている)。最初のパワーオン後の第1データサイクル(例えば、T=1)において、PREG 100は、乱数RE[1]、RE[2]、およびRE[3]を出力する。ここで、レシードイネーブル信号EN
RESEED1は、第1データサイクルにおいて「1」を示すことが仮定されている。それは、乱数OUT
LFSR1が、乱数RE[3]に従って生成されることを意味する。従って、第1データサイクルでの乱数OUT
RNGは、乱数RE[1]と乱数RE[2](それぞれレジスタR2とレジスタR1の出力に対応する)、および、乱数OUT
LFSR1(乱数RE[3]に従って生成される)に従って生成される。最初のパワーオン後の第2データサイクル(例えば、T=2)において、PREG 100は、さらに、乱数RE[4]、RE[5]、およびRE[6]を出力する。ここで、レシードイネーブル信号EN
RESEED1は、第2データサイクルにおいて「0」を示すことが仮定されている。それは、乱数RE[6]を使用することなく、乱数OUT
RNGが生成されることを意味し、そして、PREG 100は、最初のパワーオン後の第3データサイクル(例えば、T=3)で使用されるために乱数RE[6]を保持する。従って、第2データサイクルにおける乱数OUT
RNGは、乱数RE[4]およびRE[5](それぞれレジスタR2およびレジスタR1の出力に対応する)、および、乱数OUT
LFSR1(乱数RE[6]を使用することなく生成される)に従って生成されるだろう。最初のパワーオン後の第3データサイクルにおいて、PREG 100は、さらに、乱数RE[7]およびRE[8]を出力する。ここで、レシードイネーブル信号EN
RESEED1は、第3データサイクルにおいて「1」を示すことが仮定されている。それは、乱数OUT
LFSR1が、乱数RE[8]に従って生成されることを意味する。従って、第3データサイクルにおける乱数OUT
RNGは、乱数RE[6]およびRE[7](それぞれレジスタR2およびレジスタR1の出力に対応する)、および、乱数OUT
LFSR1(乱数RE[8]に従って生成される)に従って生成されるだろう。
【0038】
対照的に、2回目のパワーオン後の第1データサイクル(例えば、T=1)において、PREG 100は、乱数RE[1]、RE[2]、およびRE[3]を出力する。ここで、レシードイネーブル信号ENRESEED1は、第1データサイクルにおいて「0」を示すことが仮定されている。それは、乱数RE[3]を使用することなく、乱数OUTRNGが生成されることを意味し、そして、PREG 100は、第2データサイクル(例えば、T=2)で使用されるために乱数RE[3]を保持する。従って、第1データサイクルでの乱数OUTRNGは、乱数RE[1]と乱数RE[2](それぞれレジスタR2とレジスタR1の出力に対応する)、および、乱数OUTLFSR1(乱数RE[3]を使用することなく生成される)に従って生成される。2回目のパワーオン後の第2データサイクル(例えば、T=2)において、PREG 100は、さらに、乱数RE[4]およびRE[5]を出力する。ここで、レシードイネーブル信号ENRESEED1は、第2データサイクルにおいて「0」を示すことが仮定されている。それは、乱数RE[5]を使用することなく乱数OUTRNGが生成されることを意味し、そして、PREG 100は、2回目のパワーオン後の第3データサイクル(例えば、T=3)において利用されるために乱数RE[5]を保持する。従って、第2データサイクルにおける乱数OUTRNGは、乱数RE[3]とRE[4](それぞれレジスタR2およびレジスタR1の出力に対応する)、および、乱数OUTLFSR1(乱数RE[5]を使用することなく生成される)に従って生成される。2回目のパワーオン後の第3データサイクル(例えば、T=3)において、PREG 100は、さらに、乱数RE[6]およびRE[7]を出力する。ここで、レシードイネーブル信号ENRESEED1は、第3データサイクルにおいて「0」を示すことが仮定されている。それは、乱数RE[7]を使用することなく乱数OUTRNGが生成されることを意味し、そして、PREG 100は、第3データサイクルの次のデータサイクルにおいて利用されるために乱数RE[7]を保持する。従って、第3データサイクルにおける乱数OUTRNGは、乱数RE[5]とRE[6](それぞれレジスタR2およびレジスタR1の出力に対応する)、および、乱数OUTLFSR1(乱数RE[7]を使用することなく生成される)に従って生成される。
【0039】
最初のパワーオン後に「1」を示すレシードイネーブル信号EN
RESEED1の時点は、2回目のパワーオン後に「1」を示すレシードイネーブル信号EN
RESEED1の時点と異なり得るため、最初のパワーオン後のT回目の乱数OUT
RNGを生成するための構成要素は、2回目のパワーオン後のT回目の乱数OUT
RNGを生成するための構成要素と異なり得る。そして、乱数OUT
RNGは、従って、試験にパスすることができる。例えば、ランダムエッセンス保持機構がディセーブルされていると仮定すると、N番目のデータサイクル(例えば、T=N)における乱数OUT
R2、OUT
R1、およびOUT
PREGは、それぞれ、最初のパワーオンおよび2回目のパワーオンの両方の条件について、それぞれに、常にRE[3N-2]、RE[3N-1]、およびRE[3N]である。そして、従って、乱数OUT
RNGは、最初のパワーオンおよび2回目のパワーオンの両方の条件について、常に、乱数RE[3N-2]とRE[3N-1]および乱数OUT
LFSR1のXOR結果である。ここで、N番目のデータサイクルにおいてレシードイベントが発生した場合(例えば、レシードイネーブル信号EN
RESEED1が「1」を示す)、第1LFSR 51をレシードするために利用される乱数は、最初のパワーオンおよび2回目のパワーオンの両方の条件において、常にRE[3N]となる。別の例においては、
図9の実施形態に示されるようにランダムエッセンス保持機構がイネーブルされていると仮定すると、最初のパワーオン後の第2データサイクル(例えば、T=2)において乱数OUT
RNGを生成するために利用される乱数は、RE[4]およびRE[5]であってよいが、2回目のパワーオン後の第2データサイクル(例えば、T=2)において乱数OUT
RNGを生成するために利用される乱数は、RE[3]およびRE[4]であってよい。加えて、所定のデータサイクルについて、新たなステージ発生器52によって利用される乱数は、異なるパワーオンイベントに対して同様に予測不可能であり得る。より具体的には、乱数OUT
RNGを生成するために利用される乱数の可能な組み合わせの複雑性は、Tが増加するときに(例えば、より多くのデータサイクルの後で)増加され得る。従って、ランダムエッセンス保持機構は、パワーオン試験の結果に利益をもたらすことができる。
【0040】
図10は、本発明の一つの実施形態に従って、
図1に示されるPREG 100のいくつかの詳細を示す図である。この実施形態において、PREG 100は、PUFアレイ110のような静的エントロピーアレイによって実装される静的エントロピー源、アドレスカウンタ120、第2LFSR(簡略化のために「LFSR-2」と表示)130、ステージリフレッシュ回路140のようなリフレッシュ回路、処理回路150(簡略化のために「+」を伴う円で示されている)、および、エッセンス保持論理回路160のようなクロック制御回路を含み得る。PUFアレイ110は、オンチップのフィンガープリント(fingerprint)とみなすことができる。異なるチップの物理的特性は、製造プロセスにおける制御不可能な要因のせいで相互にわずかに異なり得るので、これらの差異は、コピーまたは予測することができない。加えて、これらの物理的特性は、チップが製造された後に決定され、かつ、変更不能なので、PUFアレイ110は「静的(“static”)」エントロピー源として利用され得る。いくつかの実施形態において、静的エントロピーアレイは、乱数発生器10に接続された外部PUFアレイから読出されたデータを保管するレジスタアレイであってよい。場合によって、レジスタアレイの読出し速度は、外部PUFアレイの読出し速度よりもはるかに速くあり得る。従って、乱数発生器10がパワーオンされるとき、外部PUFアレイに保管された全てのPUFデータは、最初にレジスタアレイの中へダンプ(dumped)され得る。そして、PUFデータに関連する全ての後続する動作は、外部PUFアレイを読出すのではなく、レジスタアレイを読出すことによって実行され得るが、本発明は、それに限定されない。
【0041】
この実施形態において、PUFアレイ110は、アドレスADDR
X等の第1アドレスに応じてPUF番号PUF
X等の第1静的エントロピー番号を出力し、アドレスADDR
Y等の第2アドレスに応じてPUF番号PUF
Y等の第2静的エントロピー番号を出力し、そして、アドレスADDR
Z等の第3アドレスに応じてPUF番号PUF
Z等の第3静的エントロピー番号を出力するように構成されている。アドレスカウンタ120は、PUF番号PUF
X、PUF
Y、およびPUF
Zの出力を制御するために、アドレスADDR
X、ADDR
Y、およびADDR
Zを生成するように構成さていれる。よりよく理解するために、
図11を参照されたい。
図11は、本発明の一つの実施形態に従って、PUFアレイ110から読出されたPUF番号PUF
X、PUF
X、およびPUF
Xの出力スキームを示す図である。
図11に示すように、PUFアレイ110の各PUFユニットに保管されたデータは、D
RA、CAによって例示されてよく、ここで、RAは行(raw)アドレスを表し、そして、CAは列(column)アドレスを表し得る。例えば、PUFアレイ110のPUFユニットの第1行に保管されたデータは、{D
1,1,D
1,2,D
1,3,...,D
1,31,D
1,32}であってよく、PUFアレイ110のPUFユニットの第2行に保管されたデータは{D
2,1,D
2,2,D
2,3,...,D
2,31,D
2,32}であってよく、そして、残りは、類推によって推論され得る。例えば、PUFアレイ110のPUFユニットの第32の行は{D
32,1,D
32,2,D
32,3,..,D
32,31,D
32,32}であってよい。加えて、PUFアレイ110は、第1方向に配置された(例えば、垂直方向に配置された)PUFアレイ110内のPUFユニットの第1グループから読出されたデータをグループ化することによってPUF番号PUF
Xを出力することができ、そして、PUFユニットの第1グループは、アドレスADDR
Xに対応し、ここで、アドレスADDR
Xの値はnxによって表され得る。そして、アドレスADDR
Xの異なる値に対応するPUF番号PUF
Xは、{P
X(nx)|nx=1,2,3,...,32}={D
1,nx,D
2,nx,D
3,nx,...,D
31,nx,D
32,nx}によって表すことができる。PUFアレイ110は、第2方向に配置された(例えば、水平方向に配置された)PUFアレイ110内のPUFユニットの第2グループから読出されたデータをグループ化することにより、PUF番号PUF
Yを出力することができ、そして、PUFユニットの第2グループはアドレスADDR
Yに対応し、ここで、アドレスADDR
Yの値は、nyによって表され得る。そして、アドレスADDR
Yの異なる値に対応するPUF番号PUF
Yは、{P
Y[ny]|ny=1,2,3,...,32}={D
ny,1,D
ny,2,D
ny,3,...,D
ny,31,D
ny,32}によって表すことができる。PUFアレイ110は、第3方向に配置された(例えば、傾斜(askew)方向に配置された)PUFアレイ110内のPUFユニットの第3グループから読出されたデータをグループ化することによってPUF番号PUF
Zを出力することができ、そして、PUFユニットの第3グループは、アドレスADDR
Zに対応している。ここで、アドレスADDR
Zの値は、nzで表すことができ、そして、アドレスADDR
Zの異なる値に対応するPUF番号PUF
Zは、{P
Z[nz]|nz=1,2,3,...,32}で表すことができる。例えば、P
Z[1]={D
1,1,D
2,2,D
3,3,...,D
31,31,D
32,32}、P
Z[2]={D
1,2,D
2,3,D
3,4,...,D
31,32,D
32,1}であり、そして、残りは、類推によって推論され得る。例えばP
Z[32]={D
1,32,D
2,1,D
3,2,...,D
31,30,D
32,31}である。
【0042】
図10の実施形態において、ステージリフレッシュ回路140は、動的エントロピー源20から動的エントロピービットB
DYN2に従ったリフレッシュ信号を生成するように構成されており、リフレッシュ信号の例は、リフレッシュイネーブル信号EN
REFRESHおよびレシードイネーブル信号EN
RESEED2を含み得るが、本発明はそれに限定されるものではない。例えば、ステージリフレッシュ回路140は、動的エントロピービットB
DYN2および乱数OUT
PREGに従って、リフレッシュ信号(例えば、リフレッシュイネーブル信号EN
REFRESH及びレシードイネーブル信号EN
RESEED2のいずれか)を生成することができ、そして、より詳細には、リフレッシュ信号は、動的エントロピービットB
DYN2及び乱数OUT
PREGのうちの事前決定されたビット(例えば、Mが正の整数である乱数OUT
PREGのM番目ビット)のXOR結果であり得るが、本発明はそれに限定されるものではない。ステージリフレッシュ回路140の処理に基づいて、そこに含まれる動的エントロピーを有する高品質のランダム制御ビット(例えば、リフレッシュイネーブル信号EN
REFRESH及びレシードイネーブル信号EN
RESEED2のいずれか)を生成することができる。PREG 100は、少なくともPUF番号PUF
XおよびPUF
Yに従って、乱数OUT
PREGを生成し、リフレッシュ信号(例えば、レシードイネーブル信号EN
RESEED2)は、PUF番号PUF
Zに従って、乱数OUT
PREGを生成するか否かを制御するように構成されている。第2LFSR 130は、LFSRの別の例であり、乱数OUT
LFSR2のようなLFSR乱数を出力するように構成されている。リフレッシュ信号(例えば、レシードイネーブル信号EN
RESEED2)が第1論理値(例えば、「0」)を示す場合に、第2LFSR 130は、PUF番号PUF
Zを使用することなく、第2事前決定されたルール(例えば、第2原始多項式(primitive polynomial)に対応するルール)に従って、乱数OUT
LFSR2を出力する。第1LFSR 51および第2LFSR 130は、2つの異なる原始多項式(例えば、第1原始多項式は第2原始多項式とは異なる)で実装されることが好ましいことに留意されたい。リフレッシュ信号(例えば、レシードイネーブル信号EN
RESEED2)が第2論理値(例えば、「1」)を示す場合に、第2LFSR 130は、PUF番号PUF
Zに従って、乱数OUT
LFSR2を出力する。この実施形態において、ステージリフレッシュ回路140は、第2LFSR 130をレシードするために、PUF番号PUF
Zに従って、新しい乱数STAGE
NEWを生成することができる。例えば、ステージリフレッシュ回路140は、PUF番号PUF
Z及び乱数OUT
PREGに従って、新しい乱数STAGE
NEWを生成することができる(例えば、新しい乱数STAGE
NEWは、PUF番号PUF
Z及び乱数OUT
PREGのXOR結果であり得る)が、本発明は、それに限定されるものではない。処理回路150は、PUF番号PUF
X、PUF番号PUF
Y、および乱数OUT
LFSR2に従って、乱数OUT
PREGを生成するように構成されている。例えば、処理回路150は、PUF番号PUF
X及びPUF
Yに対してXOR演算を行って予備的XOR結果を生成し、そして、次いで、この予備的XOR結果及び乱数OUT
LFSR2に対してXOR演算を行って乱数OUT
PREGを生成することができるが、本発明はこれに限定されるものではない。
【0043】
加えて、アドレスADDRXおよびADDRYそれぞれは、PREG 100の複数の出力サイクルの各々においてリフレッシュされ(例えば、1ユニットステップだけ増加され)、リフレッシュ信号(例えば、リフレッシュイネーブル信号ENREFRESH)は、さらに、アドレスADDRZをリフレッシュするか否かを制御するように構成されている。例えば、リフレッシュイネーブル信号ENREFRESHが第1論理値(例えば、「0」)を示す場合に、アドレスカウンタ120は、アドレスADDRZのリフレッシュを防止し、そして、リフレッシュイネーブル信号ENREFRESHが第2論理値(例えば、「1」)を示す場合に、アドレスカウンタは、アドレスADDRZをリフレッシュする。リフレッシュイネーブル信号ENREFRESHは、好ましくは、レシードイネーブル信号ENRESEED2と相関されている。いくつかの実施形態において、ステージリフレッシュ回路140は、アドレスADDRZの各値に対応するPUF番号PUFZがスキップされることなく利用できることを保証するために、アドレスカウンタ120および第2LFSR 130の両方に同じイネーブル信号を提供する(例えば、ENREFRESH=ENRESEED2)。
【0044】
この実施形態において、ステージリフレッシュ回路140は、PRNGモードまたはTRNGモードのどちらで動作するかを決定するために、モード制御信号MODECTRLを受信することができる。乱数発生器10がTRNGモードの下で動作する場合(例えば、モード制御信号MODECTRLが論理値「0」を示す場合)、ステージリフレッシュ回路140は、上述のように、動的エントロピービットBDYN2に従ってリフレッシュ信号(例えば、レシードイネーブル信号ENRESEED2およびリフレッシュイネーブル信号ENREFRESHのいずれか)を生成することができる。乱数発生器10がPRNGモードの下で動作する場合(例えば、モード制御信号MODECTRLが論理値「1」を示す場合)、ステージリフレッシュ回路140は、動的エントロピービットBDYN2を使用することなく、リフレッシュ信号(例えば、レシードイネーブル信号ENRESEED2およびリフレッシュイネーブル信号ENREFRESHのいずれか)を生成することができる(例えば、ステージリフレッシュ回路140は、レシードイネーブル信号ENRESEED2およびリフレッシュイネーブル信号ENREFRESHのいずれかといった、リフレッシュ信号として、上述した乱数OUTPREGの中の事前決定されたビットを出力することができる)。
【0045】
いくつかの実施形態において、PUFアレイ110は、PUF番号PUFYおよびPUFZを処理回路150に送信し、そして、PUF番号PUFXをステージリフレッシュ回路140に送信する。このステージリフレッシュ回路140において、アドレスADDRYおよびADDRZそれぞれは、PREG 100の複数の出力サイクルの各々においてリフレッシュされ(例えば、1ユニットステップだけ増加される)、リフレッシュ信号(例えば、リフレッシュイネーブル信号ENREFRESH)は、アドレスADDRXをリフレッシュするか否かを制御するように構成されているが、本発明はそれに限定されるものではない。いくつかの実施形態において、PUFアレイ110は、PUF番号PUFZおよびPUFXを処理回路150に送信し、そして、PUF番号PUFYをステージリフレッシュ回路140に送信する。ステージリフレッシュ回路140において、アドレスADDRZおよびADDRXそれぞれは、PREG 100の複数の出力サイクルの各々においてリフレッシュされ(例えば、1ユニットステップだけ増加される)、リフレッシュ信号(例えば、リフレッシュイネーブル信号ENREFRESH)は、アドレスADDRYをリフレッシュするか否かを制御するように構成されているが、本発明は、それに限定されるものではない。
【0046】
加えて、エッセンス保持論理160は、再構成されたイネーブル信号ENRESEED1に従って、内部クロックCLKPREGを生成するように構成されており、ステージリフレッシュ回路140、アドレスカウンタ120、および第2LFSR 130それぞれは、内部クロックCLKPREGに従って動作する。レシードイネーブル信号ENRESEED1が第1論理値(例えば、「0」)を示す場合、すなわち、乱数抽出器50が第2予備的乱数を使用することなく、乱数抽出器50の現在のデータサイクルにおいて乱数OUTRNGを生成することを意味する場合に、エッセンス保持論理は、第2予備的乱数を保持するために(例えば、乱数OUTPREGを第2予備的乱数のような現在の番号に保持するために)、内部クロックCLKPREGをディセーブルして(例えば、内部クロックCLKPREGを停止させる)、ステージリフレッシュ回路140、アドレスカウンタ120、および第2LFSR 130の動作を停止させることができる。
【0047】
図12は、本発明の実施形態による、
図10に示されるPREG 100に関連するいくつかの信号(例えば、乱数発生器10のメインクロックCLK、リフレッシュイネーブル信号EN
REFRESH、乱数OUT
LFSR2、PUF
X、PUF
Z、およびOUT
PREG、並びに、動的エントロピービットB
DYN2)を示す図である。乱数発生器10がパワーオンされた後で、かつ、メインクロックCLKがトグリングを開始する前に、乱数OUT
LFSR2は初期状態にある(例えば、第2LFSR 130の初期シード)。そして、第2LFSR 130は、第2LFSR 130が全くレシードされない条件の下で、乱数M1、M2、M3、M4、M5、M6、M7を順次出力し得ることが仮定される。動的エントロピービットB
DYN2は、ランダムな方法で、「0」と「1」との間でトグルし得る(より良く理解するために、
図12では「H/L」とラベル付けされている)。「t=1」とラベル付けされたサイクルで、乱数PUF
ZはP
Z[1]であり、そして、第2LFSR 130は乱数M1を出力する。ここで、リフレッシュイネーブル信号EN
REFRESHは「0」を示す(これは、第2LFSR 130はレシードされず、乱数PUF
Zは次のサイクルでリフレッシュされないことを意味する)。「t=2」とラベル付けされたサイクルで、乱数PUF
ZはP
Z[1]に保持され、そして、第2LFSR 130は、第2LFSR 130がレシードされないので、乱数M2を出力する。ここで、リフレッシュイネーブル信号EN
REFRESHは「0」を示す(これは、第2LFSR 130はレシードされず、乱数PUF
Zは次のサイクルでリフレッシュされないことを意味する)。「t=3」とラベル付けされたサイクルで、乱数PUF
ZはP
Z[1]に保持され、そして、第2LFSR 130は、第2LFSR 130がレシードされないので、乱数M3を出力する。ここで、リフレッシュイネーブル信号EN
REFRESHは「1」を示す(これは、第2LFSR 130がレシードされ、乱数PUF
Zが次のサイクルでリフレッシュされることを意味する)。「t=4」とラベル付けされたサイクルで、乱数PUF
ZはP
Z[2]としてリフレッシュされ、そして、第2LFSR 130は、第2LFSR 130がレシードされるので、乱数M4'を出力する(第2LFSR 130がレシードされない条件に対応しているM4の代わりに)。ここで、リフレッシュイネーブル信号EN
REFRESHは「1」を示す(これは、第2LFSR 130がリフレッシュされ、乱数PUF
Zが次のサイクルでリフレッシュされることを意味する)。「t=5」とラベル付けされたサイクルで、乱数PUF
ZはP
Z[3]としてリフレッシュされ、そして、第2LFSR 130は、第2LFSR 130がレシードされるので、乱数M5''を出力する(第2LFSR 130がレシードされない条件に対応しているM5'の代わりに)。ここで、リフレッシュイネーブル信号EN
REFRESHは「0」を示す(これは、第2LFSR 130はレシードされず、乱数PUF
Zは次のサイクルでリフレッシュされないことを意味する)。「t=6」とラベル付けされたサイクルで、乱数PUF
ZはP
Z[3]に保持され、そして、第2LFSR 130は、第2LFSR 130がリフレッシュされないので、乱数M6''を出力する。ここで、リフレッシュイネーブル信号EN
REFRESHは「1」を示す(これは、第2LFSR 130がリフレッシュされ、乱数PUF
Zは次のサイクルでリフレッシュされることを意味する)。「t=7」とラベル付けされたサイクルで、乱数PUF
ZはP
Z[4]としてリフレッシュされ、そして、第2LFSR 130がレシードされるので、乱数M7'''を出力する(第2LFSR 130がレシードされない条件に対応しているM7''の代わりに)。ここで、リフレッシュイネーブル信号EN
REFRESHは「0」を示す(これは、第2LFSR 130はレシードされず、乱数PUF
Zは次のサイクルで更新されないことを意味する)。
【0048】
レシード制御回路52及び/又はステージリフレッシュ回路140によって実行されるレシード判定(reseeding judgement)は、第1LFSR 51及び/又は第2LFSR 130の出力パターンを変更/スクランブルするように構成され得る。加えて、ランダムエッセンス保持機構の助けを借りて、乱数OUT
RNGを生成するために利用されているPREG 100からの任意の乱数出力のタイミングは予測不可能であり得る(例えば、RE[5]は、最初のパワーオン後の第2サイクルで使用されるが、RE[5]は、
図9に示すように、2回目のパワーオンの後の第3サイクルで使用される)。これは、パワーオン試験に有益である。従って、本発明の実施形態によって提供されるマルチステージ(例えば、マルチループ)処理を伴う乱数発生器によって生成される乱数の品質は、大幅に改善され得る。より詳細には、たとえ乱数発生器内の動的エントロピー源の品質が低くても、少なくとも1つの動的エントロピービットB
DYN1およびB
DYN2が利用される限り、レシード判定およびランダムエッセンス保持機構は、上述のように、動的エントロピーの利益を伴い実行され得る。そして、乱数発生器は、依然として、高品質の乱数を出力することができる。加えて、乱数のフィールドは大幅に拡張され得る。従って、PRNGモードに基づいて生成される乱数の品質は、従来技術と比較して大幅に改善され得る。
【0049】
当業者であれば、本発明の教示を保持しながら、装置および方法に係る多くの修正および変更が成され得ることを容易に理解するであろう。従って、上記の開示は、添付の請求項によってのみ限定されるものと解釈されるべきである。