IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ピーキューシールド・リミテッドの特許一覧

<>
  • 特表-乱数生成 図1
  • 特表-乱数生成 図2
  • 特表-乱数生成 図3
  • 特表-乱数生成 図4
  • 特表-乱数生成 図5
  • 特表-乱数生成 図6
  • 特表-乱数生成 図7
  • 特表-乱数生成 図8
  • 特表-乱数生成 図9
  • 特表-乱数生成 図10
  • 特表-乱数生成 図11
  • 特表-乱数生成 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-21
(54)【発明の名称】乱数生成
(51)【国際特許分類】
   G06F 7/58 20060101AFI20231214BHJP
【FI】
G06F7/58 680
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023532199
(86)(22)【出願日】2021-11-26
(85)【翻訳文提出日】2023-05-25
(86)【国際出願番号】 GB2021053088
(87)【国際公開番号】W WO2022112788
(87)【国際公開日】2022-06-02
(31)【優先権主張番号】2018650.8
(32)【優先日】2020-11-26
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】2020614.0
(32)【優先日】2020-12-24
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】522023897
【氏名又は名称】ピーキューシールド・リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マルック-ユハニ・オラヴィ・サーリネン
(57)【要約】
乱数生成に使用するためのエントロピーソース(900)について説明されている。エントロピーソースは、第1のビットのシーケンス(911)を出力するノイズ源(905)と、ノイズ源(905)から第1のビットのシーケンス(911)を受信し、第2の相関除去ビットのシーケンス(912)を出力するノイズ調整器(910)とを含む。ノイズ調整器910は、直列に通信可能に結合された複数のノイズ調整ステージ913、914を含む。各ノイズ調整ステージ(913、914)は、前の入力ビット値のセットを格納するkビットのシフトレジスタ構成(808)を備え、フォンノイマン式バイアス除去を実行するためのフォンノイマンセル(818)のセットを格納し、各フォンノイマンセルは、状態を有し、また入力ビット値を受信し、シフトレジスタ構成のビット値に基づいて出力ビット値を条件付きで生成するためにフォンノイマンセル(818)のセットの1つを選択するセレクタ(810)を備え、選択されたフォンノイマンセル状態は選択後に更新される。エントロピーソース(900)はまた、ノイズ調整器(910)から第2の相関除去ビットのシーケンスを受信して格納するためのバッファ(915)であって、多数のビットを出力ランダムビットシーケンスとして配信するためにポーリングされるように構成される、バッファ(915)を備える。
【特許請求の範囲】
【請求項1】
乱数生成に使用するためのエントロピーソース(900)であって、
第1のビットのシーケンス(911)を出力するノイズ源(905)と、
前記ノイズ源(905)から前記第1のビットのシーケンス(911)を受信し、第2の相関除去ビットのシーケンス(912)を出力するノイズ調整器(910)であって、
直列に通信可能に結合された複数のノイズ調整ステージ(913、914)を備え、
各ノイズ調整ステージ(913、914)は、
前の入力ビット値のセットを格納するkビットシフトレジスタ構成(808)、
フォンノイマン式バイアス除去を実行するフォンノイマンセルのセット(818)であって、各フォンノイマンセルが状態を有する、前記フォンノイマンセルのセット、及び
入力ビット値を受信し、前記シフトレジスタ構成の前記ビット値に基づいて条件付きで出力ビット値を生成するために前記フォンノイマンセルのセット(818)の1つを選択するセレクタ(810)であって、前記選択されたフォンノイマンセルの前記状態は選択後に更新される、前記セレクタ、を備える、前記ノイズ調整器(910)と、
前記ノイズ調整器(910)から前記第2の相関除去ビットのシーケンスを受信して格納するためのバッファ(915)であって、多数のビットを出力ランダムビットシーケンスとして配信するためにポーリングされるように構成される、前記バッファ(915)とを備える、エントロピーソース(900)。
【請求項2】
前記ノイズ源(905)はリング発振器(905)を含む、請求項1に記載のエントロピーソース(900)。
【請求項3】
前記リング発振器(905)は、フリーランニング式ループで通信可能に結合された複数のインバータ(205)を含み、前記複数のインバータは奇数を含む、請求項2に記載のエントロピーソース(900)。
【請求項4】
システムクロック信号に基づいて前記フリーランニング式ループからサンプリングされたビットを出力するためのラッチ(235)を備える、請求項3に記載のエントロピーソース(900)。
【請求項5】
前記第1のビットのシーケンス(911)をもたらす生のノイズインターフェイスを備える、請求項1から4のいずれか一項に記載のエントロピーソース(900)。
【請求項6】
各ノイズ調整ステージ(913、914)がイネーブル入力(806)を備え、前記イネーブル入力(806)がアクティブであるときに、入力ビットのシーケンスが前記シフトレジスタ及び前記セレクタに供給される、請求項1から5のいずれか一項に記載のエントロピーソース(900)。
【請求項7】
前記複数のノイズ調整ステージ(913、914)における第1のノイズ調整ステージ(913)のイネーブル入力(806)は、前記第1のノイズ調整ステージ(913)によって出力され、前記複数のノイズ調整ステージ(913、914)における第2のノイズ調整ステージ(914)にイネーブル入力(806)として渡される、請求項6に記載のエントロピーソース(900)。
【請求項8】
前記複数のノイズ調整ステージ(913、914)のそれぞれがクロック入力を備え、前記複数のノイズ調整ステージ(913、914)のそれぞれが、前記クロック入力及び前記イネーブル入力がアクティブであるときに起動される、請求項7に記載のエントロピーソース(900)。
【請求項9】
各フォンノイマン(818)セルは、5つの可能な状態を有し、選択されると、入力ビット値と前記フォンノイマンセルの前記現在の状態とに基づいて前記状態間を遷移するように構成される、請求項1から8のいずれか一項に記載のエントロピーソース(900)。
【請求項10】
前記フォンノイマンセル(818)について、
状態λでは、前記状態は前記入力ビット値に設定され、
状態0では、前記入力ビット値が1の場合、前記状態は第1の値を表す「H」状態に設定され、それ以外の場合、前記状態は前記状態λに設定され、
状態1では、前記入力ビット値が0の場合、前記状態は第2の値を表す「T」状態に設定され、それ以外の場合、前記状態は前記状態λに設定され、
前記「H」状態では、出力は0に設定され、前記状態は前記入力ビット値に設定され、
前記「T」状態では、出力は1に設定され、前記状態は前記入力ビット値に設定される、請求項9に記載のエントロピーソース(900)。
【請求項11】
kが3に等しい、請求項1から10のいずれか一項に記載のエントロピーソース(900)。
【請求項12】
前記エントロピーソース(900)は、ソフトウェアドライバからポーリングされるハードウェア回路を備える、請求項1から11のいずれか一項に記載のエントロピーソース(900)。
【請求項13】
前記ソフトウェアドライバは、暗号化調整器(126)からソフトウェアアプリケーション(160)へ導出されたデータを供給する前に、前記エントロピーソース(900)によって供給された前記出力ランダムビットシーケンスに暗号操作を適用する前記暗号化調整器(126)を含む、請求項12に記載のエントロピーソース(900)。
【請求項14】
前記エントロピーソース(900)の動作状態を示すレジスタ(940)を含む、請求項1から13のいずれか一項に記載のエントロピーソース(900)。
【請求項15】
前記動作状態は、以下の状態、
前記バッファ(915)が前記出力ランダムビットシーケンスを供給することができることを示す第1の状態、
前記バッファ(915)がまだ満杯ではないことを示す第2の状態、
テスト状態を示す第3の状態、及び
障害を示す第4の状態のうちの少なくとも1つを表す、請求項14に記載のエントロピーソース(900)。
【請求項16】
1つまたは複数のオンラインテスト(920、930)を含む、請求項14または請求項15に記載のエントロピーソース(900)。
【請求項17】
前記1つまたは複数のオンラインテスト(920、930)が、
前記ノイズ源(905)によって出力された反復ビットの数をカウントし、定義された閾値を超える前記数に応答してアラームを出力する反復回数テスト(922)と、
前記ノイズ源(905)によって出力されたビット値の所定のウィンドウ内部で多数の0ビットと1ビットを比較する適応比例テスト(924)のうちの1つ以上を含む、請求項16に記載のエントロピーソース(900)。
【請求項18】
前記エントロピーソースが、前記第1のビットのシーケンスと比較してバイアスを低減し、及び/または前記出力ランダムビットレートシーケンスの前記エントロピーを増加するよう構成され、前記エントロピーソース(900)は、前記第1のビットのシーケンスの前記エントロピーに従って変化する出力ビットレートで前記出力ランダムビットシーケンスを出力するように構成され、前記第1のビットのシーケンスの前記エントロピーの増加が出力ビットレートの増加と関連付けられ、また前記第1のビットのシーケンスのエントロピーの減少は、前記出力ビットレートの減少と関連付けられ、それによって、前記第1のビットのシーケンスと比較して前記出力ランダムビットシーケンスのバイアスを減らし、及び/または前記エントロピーを増加させ、前記出力ビットレートは、別様にはバイアスの増加及び/またはエントロピーの減少につながる入力ビットを破棄することで減少する、請求項1から17のいずれか一項に記載のエントロピーソース(900)。
【請求項19】
前記kビットシフトレジスタ構成は、システムクロックの各クロックサイクルで動作し、前記入力ビットストリームの次の入力ビットを前記シフトレジスタ構成にロードし、前記フォンノイマンセルのセットは、前記それぞれの宛先ロジックセルにクロックインされた前記入力ビットストリームの前記次の入力ビットと前の入力ビットに基づいてバイアス除去操作を実行するように講成された2の宛先ロジックセルで構成され、前記それぞれの宛先ロジックセルによって実行される前記バイアス除去操作の前記結果に従って、出力ビットを出力するか、または出力ビットを出力せず、
前記セレクタは、前記シフトレジスタ構成にロードされた前記入力ビットストリームのk個の前の入力ビットのシーケンスによって決定されるアドレスに基づいて宛先ロジックセルを選択するように動作し、それによって、前記シフトレジスタに導入される次の各入力ビットはまた、前記選択されたロジックセルにクロックインされ、それぞれのバイアス除去操作が実行され、
前記セレクタによって決定されたアドレスのシーケンスは、所定の2状態のマルコフ連鎖の遷移に対応する順序で宛先ロジックセルのそれぞれのシーケンスを選択する、請求項1から18のいずれか一項に記載のエントロピーソース(900)。
【請求項20】
プロセッサによって実行されるとき、請求項1から19のいずれか一項に記載の前記エントロピーソース(900)を実装するように構成されたコンピュータプログラムコードを含む、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は乱数生成に関する。具体的には、ただし排他的ではなく、本発明は、乱数(またはランダムビットシーケンス)の生成に使用するエントロピーソース、及びエントロピーソース及び他の乱数生成パイプラインでエントロピーを増加できるノイズ調整器に関する。
【背景技術】
【0002】
真の乱数生成は、いずれかのコンピュータセキュリティシステムの最も重要な部分の1つである。これは、秘密鍵やその他の機密性の高いセキュリティパラメータが最終的に由来するものだからである。真の乱数、またはむしろランダムビットシーケンスに満たないものはサイバー攻撃の機会が増え、それは真にランダムではないシーケンスを予測できることに基づいている可能性がある。
【0003】
乱数を生成するための多くの方式が知られている。例えば、特定のインテル(登録商標)プロセッサは、オンチップのエントロピーソースからシードされたオンチップのハードウェア乱数生成器から乱数を返すRDRANDまたはRDSEED命令を提供する。
【0004】
本明細書では、エントロピーソースは一般に、ランダムな文字を有するビットストリームを生成するハードウェアビットソースである。外部エントロピーが利用できないか、信頼できない可能性があるため、エントロピーソースは一般的にオンチップで見られる。エントロピーソースは、リング発振器などの電子回路またはシステムからの熱ノイズなどの現象に基づくノイズ源を使用して、ランダムビットを生成し得る。例えば、RDSEED命令のエントロピーソースは、自己タイミング回路で非同期に実行され、シリコン内部の熱ノイズを使用して、ランダムビットストリームを出力する。
【0005】
エントロピーソースは通常、修飾可能なレベルのエントロピーを有する。高いエントロピーは高いランダム性を意味し、一方で低いエントロピーは低いランダム性を意味し、エントロピーソースが異なればエントロピーのレベルも異なる。エントロピーのレベルは、業界で標準的なテスト手順を使用して確立できる。
【0006】
多くの場合、エントロピーソース自体は、アプリケーションで使用される乱数の配信に使用されない。代わりに、エントロピーソースからの出力を使用して、ソフトウェアのアプリケーションで使用する乱数を生成する暗号法の及び/または決定論的疑似乱数生成器などの下流の乱数生成器をシードすることができる。そのような下流の乱数生成器は、それぞれのエントロピーソースによってもたらされるランダムなビットに基づいて、ハードウェアまたはソフトウェアで実現することができる。
【0007】
Intel(商標)やAMD(商標)のプロセッサなどの大規模集積回路に関連する既知の特定の乱数生成器は、AESなどの既存の命令を使用して暗号化調整器を実装する。それは、例えば、ソースからビットサンプルを取得して、条件付けされた(つまり、暗号化された)エントロピーサンプルを生成する。
【0008】
既知の暗号化調整器は、一部のシナリオでは十分に機能するが、それらは、リソースに制約のある、いわゆる軽量のプロセッサ及び/または組み込みシステムを使用するアプリケーションには適していない可能性がある。それは、AESなどの機能をサポートするためのチップの不動産や処理能力を有していないことがある。したがって、軽量のマイクロコントローラ、RISK-Vなどの縮小命令セットアーキテクチャ、及び/またはポスト量子暗号に適合したプロセッサに適した新しい種類のエントロピーソースが必要である。
【0009】
Mブラムによる論文”Independent unbiased coin flips from a correlated biased source - a finite state Markov Chain”,Combinatorica 6 (2) (1986), pp 97-108では、バイアスのあるコインを使用してそれを拡張し、予想される線形の時間で任意のマルコフ連鎖からHsとTsの独立したバイアスのないシーケンスを生成する、完全にバイアスのないコインをシミュレートするためのフォンノイマンのスキームの使用方法が説明されている。ブラムは、AとBの2つのアルゴリズムを提示し、アルゴリズムAは「悪い」アルゴリズムであり、アルゴリズムBは「良い」アルゴリズムであると示している。ブラムの論文は理論的かつ数学的なものであり、低コストの組み込みコンピューティングプラットフォームに適したエントロピーソースの具体的な設計をもたらすものではない。「アルゴリズムB」は高レベルの方法として提示されているが、このアルゴリズムの具体的な実装はもたらされていない。
【発明の概要】
【0010】
本発明の態様及び実施形態は、添付の特許請求の範囲に開示されている。
本開示の様々な特徴は、本開示の特徴を一緒に示す添付の図面と併せて、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0011】
図1】例による、エントロピーソースと、エントロピーソースからエントロピービットを受信できるソフトウェア環境とを含むアーキテクチャの概略的なブロック図である。
図2】例によるハードウェアノイズ源のブロック図である。
図3】1状態のマルコフ連鎖の概略的なブロック図である。
図4】2状態のマルコフ連鎖の概略的なブロック図である。
図5】4状態のマルコフ連鎖の概略的なブロック図である。
図6】マルコフ状態の数に応じて様々なノイズ調整器がどのように機能するかを示すグラフである。
図7】8状態のマルコフ連鎖の概略的なブロック図である。
図8】例による、8状態を有するノイズ調整器のハードウェア実装の概略的なブロック図である。
図9】例による、フォンノイマン式バイアス除去を実行できる疑似コードの例である。
図10】aは、例による、フォンノイマンデバイアサのシグマ(σ)に対するイールドのグラフである。 bは、64状態のブラムB調整器のシグマ(σ)に対するイールドのグラフである。
図11】例による実用的なエントロピーソースのアーキテクチャである。
図12】例によるノイズ調整器によって実行されるステップを示す流れ図である。
【発明を実施するための形態】
【0012】
本明細書で説明する例は、乱数のシーケンスを安全かつ効率的に生成するためのエントロピーソースを提供する。好ましい例では、エントロピーソースはハードウェアで実装され、コンピューティングプラットフォーム上のアプリケーションにランダムビットシーケンスを配信するために、安全なカーネルまたはオペレーティングシステムサービスによってリソースとして使用される。他の例では、エントロピーソースは、「保護された」乱数ソースとして、またはエンクレーブ、シミュレータ、及び仮想マシンの「仮想エントロピーソース」として、ファームウェア及び/またはソフトウェアで実装され得る。エントロピーソースは、特に効率的な計算構成を備えた、軽量で適応性のある非暗号化(算術)ノイズ調整メカニズムを含むことができる。製造業者がハードウェアとソフトウェア(例えば、ファームウェア)の両方を制御できる「単一ベンダー」の実装では、本例は、独立した評価を可能にする破損していないノイズ源を確実にする一連のコンポーネントをもたらし得る。したがって、現在のエントロピーソースの例は、安全なマイクロコントローラプロファイルの一部として含めることができる最小限の真の乱数生成器を提示する。エントロピーソースの好ましいハードウェア構成は、一般的なFPGA開発プラットフォームを介したフィールドプログラマブルゲートアレイ(FPGA)の形式だけでなく、特定用途向け集積回路(ASIC)のフローを介した簡単な合成による標準的なセルロジックコンポーネントから安価に構築することもできる。
【0013】
特定の例では、ノイズ源とエントロピーソースのノイズ調整器の両方が継続的なテストを行う。ノイズ源からの前処理されたノイズ信号も評価に使用できる。エントロピーソースは、縮小命令セットコンピュータ(RISC)中央処理装置(CPU)、例えばRISC-V CPUの一部として実装することができ、ノイズ源、ノイズ調整器、ヘルステスト、及びアラームのシグナリング機構で実装することができる。CPUのグローバルリセットラインは、ゼロ化とビルトインセルフテストの開始という2つの目的を果たせる。本明細書で説明するノイズ調整器は、暗号化調整器よりもはるかに少ないエネルギーを使用し、実装面積がはるかに小さく、計算の困難の仮定をなしにし得るため、本質的にそれらを「量子的に安全」にする。エントロピーソースは、多数の「ポスト量子」セキュリティ標準(National Institute of Standards and Technology(NIST)によって設定されたものなど)もサポートしているため、大規模なポスト量子実装の基礎を形成する。
【0014】
本明細書で説明するエントロピーソースの例は、複雑なセットのエンジニアリングおよび検証の要件(例えば、様々な暗号化の規格によって設定されたものなど)を満たしながら、小さな(シリコン)領域内部で優れた能力を発揮する、軽量で安全なマイクロコントローラの真の乱数生成器をもたらすのに特に適している。組み込みシステムは、説明されている実装に従って、オンチップエントロピーソースから特に恩恵を受ける可能性がある。これらのシステムでは、外部エントロピーが利用できないか、高度な暗号化標準を満たしていない可能性があるためである(例えば、操作に対してオープンである可能性があり、及び/または概して信頼できない可能性がある)。
【0015】
説明されている例では、真の乱数生成器の特定の要件が、専用のハードウェア(またはソフトウェア)エントロピーソースによってもたらされ得る可能性がある。これにより、そのとき使用前にソフトウェアで計算集約的な暗号化調整を行う必要性が軽減される。エントロピーソースの本例は、以前のCPUベースの乱数生成から脱却しているものであり、多くの場合、「30パート」の後の暗号化調整と「1パート」のエントロピー生成である。これは通常、これらのCPUベースの乱数生成器が暗号攻撃や操作に対して開放的になっているためである。本例はさらに、エントロピーソースをもたらし、追加のランダムビットが必要に応じて(例えば、ポーリングされて)供給され得る。比較対象のCPUベースの乱数生成器(Intel(登録商標)プロセッサで使用されるものなど)では、より大きなビットシーケンス(例えば、128ビットを超える)の場合、大きな(例えば、512ビットのブロック)を、特にバッテリー駆動またはその他の組み込み実装のために、リソース集約的に計算する必要がある場合がある。
【0016】
図1は、本明細書の例に適用できるアーキテクチャ100を示している。アーキテクチャ100は、エントロピーソース110、この場合は(必ずではないが)ノイズ源を含むハードウェアエントロピーソース112、ノイズ調整器114、ノイズ調整器114からエントロピービットを受信して格納するためのバッファ116、及びポーリング信号を受信し、エントロピービットを配信するためのハードウェアインターフェイス118を含む。
【0017】
本目的のために、ノイズ調整器114は、ノイズ源112から受信したビットのエントロピーを増大させるものであり、(モデルなどから)冗長であることがわかっている特徴を破棄しながらビットストリームの「重要な」特徴またはエントロピービットを保持することを目的とするデバイスまたは処理モジュールと考えることができる。例えば、リング発振器などの電子回路でサイクルごとのジッターが一定の割合で蓄積すると仮定すると、低頻度入力(含まれるサイクル数が少ない)は、高頻度入力よりも「捨てる」ビットが多い可能性がある。例えば低周波発振器ソースの場合、破棄されたビットはゼロまたは1の長いランを含む場合があるが、それらのランの長さの最下位ビットがかなりの量のエントロピーを保持している場合がある。その状況におけるノイズ調整器114は、動的な「不可逆的な圧縮アルゴリズム」と類似していると見なすことができる。
【0018】
アーキテクチャ100は、ソフトウェアドライバ122及びソフトウェアアプリケーション160を含むソフトウェア120も備える。ソフトウェアドライバ122は、ポーリング信号を送信し、エントロピービットを受信することによってハードウェアインターフェイス118と対話するためのポーリングインターフェイス124を備える。ソフトウェアドライバ122は、暗号化調整器などのさらなる調整器126、及び/またはエントロピービットを取得し、ソフトウェアアプリケーション160によって必要とされる必要な規格のランダムビットを生成する決定論的乱数生成器(DRNG)126を含むことができる。
【0019】
本例では、ソフトウェアアプリケーション160は、ソフトウェアドライバ122を介してエントロピーソース110からエントロピービットを受信する暗号化アプリケーションであり得る。ソフトウェアドライバは、ソフトウェアアプリケーション160によって命令されると、ハードウェアインターフェイス118を介してバッファ116をポーリングし、ビットストリーム、例えば256ビット(バッファが256個の位置を有する場合)を受信する。エントロピーソース110は、バッファ116がいっぱいになると、エントロピービットのみを配信することができる。ソフトウェアドライバ122及びソフトウェアアプリケーション160の構成は、ユースケースに応じて変化し、ここではさらなる詳細は提示しない。エントロピーソース110は、場合によっては、RISC-VプロセッサなどのRISCベースのプロセッサ用の安全なマイクロコントローラプロファイルの一部として実装することができる。
【0020】
図2は、本例のエントロピーソース110に適したノイズ源200を示す。この例におけるノイズ源200は、フリーランニング式ループで接続された奇数個のNOTゲート205a、205b、205c(インバータ)のために構成されたリング発振器を備えるハードウェア回路である。知られているように、出力がシングルエンドで反転しているため、奇数のNOTゲートによって発振が可能になる。この例では、実質的に3つのNOTゲートがある。第1のNOTゲート205aは、NANDゲートとして実現され、それにより、NANDゲートのイネーブル入力215に印加されるイネーブル信号「イネーブル」は、回路を活性化し、NANDゲートをループ内の第1のNOTゲートとして論理的に動作させる。したがって、リング発振器は、イネーブル信号が「1」であり、NANDゲートによって出力される値がNANDゲートの第2の入力に印加される入力の反転である場合に動作する。NANDゲートへの第2の入力220は、フィードバックライン230によってループ内の最後のNOTゲート205cの出力225からフィードバックされる。出力ビットは、ループ225の出力において、システムクロックCLK信号によってクロックされるD型ラッチ235によってサンプリングされる。システムクロックは、ループのフリーランニング式頻度よりも低いレートで実行される。ノイズ源200は、ラッチ235の出力240からノイズビットを出力する。
【0021】
図2に示すような種類のリング発振器は、ノイズ源として使用されることが知られている。実行中、遷移(1→0または0→1)のタイミングは電子位相ノイズの影響を受け、時間の経過とともに予測不能になる(つまり、明らかによりランダムになる)。したがって、リング発振器の出力における信号レベルは、ノイズ調整器114に入力されるビットを生成するために使用される「ノイズ」サンプルを導出するために、例えば示されるようにクロックラッチ235によって定期的にサンプリングされ得る。もちろん、ノイズサンプルは完全にランダムなわけではなく、通常、ある程度のバイアスや相関関係を示すことがわかるが、後述するように、下流の条件付けによってランダム性を改善することができる。実装において、図1及び2に示されるようなノイズ源は、デジタルまたはアナログ回路、または確率的シミュレータを使用して実装され得る。好ましい実装では、ノイズ源110、200は、ASICまたはFPGAの実装に利用可能なもののような標準的なセルロジックコンポーネントを使用して実装され得る。
【0022】
リング発振器のランダム性は、タイミングジッタに起因する。タイミングジッタは強いガウス特性を有することを示すことができ、基準クロックCLKに対する位相差が累積し、分散σ がサイクルごとにほぼ直線的に増加することがわかる。
【0023】
留意されることに、多重ラング発振器のXORシーケンスなどの比較対象のノイズ源が検討されていた。しかし、このような構成は、多くのジッターがなくても出力シーケンスが見た目はランダムである疑似乱数生成器に至ると判明した。これは、生成されたエントロピーを正確に推定することを困難にした。
【0024】
一般的な条件下では、時間t後の遷移時間の標準偏差(不確実性)σが、例えばCMOSリング発振器の場合、次のように推定できる。
【数1】
時間t、比例定数η≒1、ボルツマン定数k、絶対温度T、消費電力P、電源電圧VDD、及びデバイス特性電圧Vcharを使用する。本目的では、ループ内のNOTゲートの数Nは能力に実質的な影響を与えないが、Nと頻度fは既知の動的スイッチング方程式を介してPに影響する。
【0025】
前述の式から、温度と電圧の変動がリング発振器のジッターに大きく影響し、その結果、それぞれのノイズ源のエントロピーのレベルに影響を与える可能性があることが明らかである。したがって、本明細書でさらに説明するように、エントロピーソースは、エントロピーのレベルの増加または減少に適応するために、ある程度の適応行動から利益を得ることができることが、本目的のために認識されている。
【0026】
他の例では、別のノイズ源を使用する場合がある。これらには、ノイズの多いダイオードなどの連続及びショット(ポアソン)電子ノイズプロセスが含まれる。ノイズの入力としてデジタル化できる物理ソースには、熱、光学、機械、及び量子現象が含まれる。ランダム性をもたらす量子現象には、量子状態の重ね合わせ、量子状態のエンタングルメント、ハイゼンベルグの不確定性、量子トンネリング、自然放出または放射性の崩壊が含まれる。ノイズ源は直接物理的である必要がない。導出されたランダムソースの例には、コンピュータシステムのシステムイベントや通信トラフィックが含まれる。本明細書の教示に基づく他の例は、任意のそのような代替ノイズ源を使用することができる。
【0027】
エントロピーソースは、エントロピーソースによって配信されるビットストリームのエントロピーを増加させるために、ノイズ調整器と呼ばれることもある調整器を含むことができる。エントロピーは、さもなければエントロピーソースのエントロピーを減らすように作動する、例えば、0または1の長いストリームなどの冗長ビット、またはノイズ源を特徴付けるアーティファクトを削除することによって増加させることができる。
【0028】
本例のノイズ調整器114は、ノイズ源112から出力されるビットを調整するために、1つまたは複数のマルコフ連鎖を実装する関数及び論理を使用する。いわゆる決定論的回路でマルコフ連鎖を使用することは批判される可能性がある(例えば、David Johnston, “Random Number Generators - Principles and Practices: A Guide for Engineers and Programmers”, De Gruyter, 2018を参照)。なぜなら、マルコフ連鎖は有限の状態のセットしか有していないのに対し、説明したようなノイズ源112から導出されるものなどの現実世界のエントロピービットは、おそらく無限の数の状態を有するからである。したがって、実際のマルコフ連鎖が現実世界のエントロピービットストリームのすべての可能な状態を追跡することは不可能である。また、「状態付き調整器」がビットストリーム内のビットをより独立させることができると期待するのは、おそらく直観に反する。しかしながら、マルコフ連鎖の使用は、わずかな状態であっても、ノイズ源112によって生成されるエントロピービットのバイアス及び相関を低減するのに大いに役立つということが本明細書で判定された。実際、本明細書でノイズ調整器に適用されるマルコフ連鎖は、エントロピーを業界の規格で要求される下限の閾値を十分に上回るまで増加させることができることが示されている。
【0029】
本明細書で説明する特定の例では、モデルから冗長であることがわかっているビットシーケンスを破棄しながら、「重要な」特徴またはエントロピービットを保持するように構成されたデバイスとして、ノイズ調整器が使用される。ノイズ調整器は、生のノイズ源に非可逆の圧縮アルゴリズムの形式を実装していると見なすことができる。場合によっては、エントロピーソース内のノイズ調整の後に、入力エントロピーを出力ビットにさらに均等に分配信するハッシュ関数などの暗号化コンディショニング(例えば、ポーリング後のソフトウェア内部)が続き得る。例では、ノイズ調整器は、通常の条件と敵対的な条件の両方で適切な独立したエントロピーコンテンツをもたらすように構成することができる。ノイズ(例えば、ノイズ源からのビット)を処理して、必要な一連の制約を満たすことができない場合、エントロピーソースには、特徴的で識別可能な障害モードと、それらを検出するメカニズムがある。これはすべて、小型で電力効率の高い実装回路内で設けられる。
【0030】
図3、4、5はそれぞれ、ノイズ調整器の実装の一部としてモデル化できるマルコフ連鎖の例を示している。図3は、1つの状態Nを有するマルコフ連鎖300の第1の例である。図3の構成は、後述するように、いわゆるフォンノイマンデバイアサとして適用することもできる。図3のマルコフ連鎖300では、1つの状態Nは0または1(または表Hまたは裏T)であり得、状態には2つの可能な遷移Pr(0)=pN及びPr(1)=1-pNがある。バイアスのないコイントスを使用して遷移を判定するようなバイアスのないシステムでは、Pr(0)=Pr(1)=0.5である。しかし、バイアスのあるシステムでは、例えば、一連のコイントスで裏よりもはるかに多く表を出すものでは、Pr(0)≠Pr(1)のように、1状態のマルコフ連鎖に基づくフォンノイマンデバイアサを使用して、コイントスのペアを鑑みて、シーケンスのバイアスを除去することができる。フォンノイマンデバイアサは、0をシーケンスHTに、1をシーケンスTHに割り当て、HHまたはTTを含む任意のシーケンスを減じることができる。これにより、バイアスのないビットストリームが生成され、Pr(0).Pr(1)=Pr(1).Pr(0)=pN.(1-pN)であることに気付かされる。結局、フォンノイマンデバイアサに基づく調整器は、pNの事前の知識がなくても、また入力シーケンスビットレートの最大25%の出力レートであっても、コイン(出力ビット)が相関していない限り、入力ビットエントロピーのレベルに関係なくバイアスのない出力ビットを生成する。相関は、例えば、長いラン「HHHHHHTTTTTT」であり得るが、これは「正の」系列相関を示し得、一方で交互のパターン「HTHTHTHTHT」は「負の」系列相関を示し得る。いずれの種類の相関も、不完全なノイズ源112のアーティファクト、またはノイズ源112の不完全な環境条件(例えば、非常に低い動作温度)である可能性がある。相関は、以前のコイントスから次の出力コインを予測するのを補助する場合があるため、一般にランダム性に関して望ましくない特性である。留意されたいこととして、前述の例のどちらにもいかなる絶対的なバイアス、H=1/2及びT=1/2がなく、そのため、基本的なフォンノイマン調整器は、系列相関に対して保護せず(絶対的なバイアスのみに対する、それがソースにおいて一定であると仮定する)、説明するように、これが、さらなる対策が必要な理由である。
【0031】
相関は、マヌエル・ブラムによって提唱されたn状態のマルコフモデル、式中n>1、を使用して軽減できる。図4は2状態のマルコフ連鎖400を示し、図5は4状態のマルコフ連鎖500を示す。各マルコフ連鎖は、それぞれの遷移とそれに付随する遷移の発生確率とともに表示される。説明するように、2状態のマルコフ連鎖400は、現在のビットと前のビットとの間の相関を緩和することができ、4状態のマルコフ連鎖500は、現在のビットと2つの先行するビットとの間の相関を緩和することができる。より一般的には、2状態のマルコフ連鎖は、最大k個の先行するビットのローカル相関を軽減できることがわかっている。
【0032】
マルコフ連鎖の場合、単一の入力ビットと現在の状態0≦i<nが次の状態を決定する。ここでも、状態から抜け出すための補完的な確率pと1-pを持つ2つの選択肢がある。これらの「出口確率」は、時間の経過とともに変化しない限り、静的であると仮定され得る。これらの仮定により、任意の状態が選択され、状態遷移が追跡され、その単一の状態からのみ終了ビットが記録される。結果として得られるビットシーケンスには、無相関のバイアスpがある。次いで、それらのビットのみにフォンノイマンデバイアサを適用して、(前述の状態相関仮定を介して)同時に相関除去され、バイアスのないビットシーケンスを生成できることが理解されている。
【0033】
ブラムは、すべての状態を独立したフォンノイマンデバイアサとして見なし、それらの出力を直接マージすることによって出力レートを増加させる直接的なアプローチでは、独立したバイアスのない出力ビットが得られないことを観察した。したがって、別のアプローチとして、ブラムはこれに対処するための修正を提案した。これは、マルコフの仮定(つまり、確率モデルの無記憶特性)が成り立つが、その静的な出口確率に関する知識がないと仮定したものである。修正は、ブラムのいわゆる「アルゴリズムB」で提示される(Independent unbiased coin flips from a correlated biased source-a finite state Markov Chain”, M Blum, Combinatorica 6 (2) (1986), pp97-108で提示されているように)。この変形例では、モデルは、その状態が再入力された後にのみ、その状態から(バイアスが除去された)フォンノイマンビットを出力する。この遅延により、アルゴリズムBで採用されたアプローチは「忍耐強い」と言われている。
【0034】
ブラムのアルゴリズムBに従って、概して動作するかまたはそれを実装している本明細書の調整器は、ブラムB調整器と呼ばれる。本明細書で説明する実装は、ブラムのアルゴリズムに対する一般的な批判、つまり現実世界のエントロピーソース回路は無限の状態を有する傾向があるという批判に対処している。したがって、これらの状態をうまく追跡することは不可能である。よって、ブラムのアルゴリズムの単純な実装では、状態を追跡する必要性に対処する必要がある。本例では、図8、9及び11に示されるような多段階の多状態の構成が、これに対処するための効率的かつ実行可能なノイズ調整構成をもたらすことが分かった。ここに記載されているノイズ調整器は、様々なノイズ源やシミュレーションで動作するようにテストされている。テストには、ノイズ源デバイス(ノイズ源を実装するFPGAなど)を様々な環境温度(-50°Cもの低温を含む)にさらしたり、長時間の実行(リング発振器の位相ロックのテストなど)を許可したりすることも含まれていた。多くの理論モデルは、実世界の条件下でエントロピーソースがどのように機能するかを考慮しておらず、シリコン領域や計算サイクルなどのリソースの制約も考慮していないことに留意されたい。
【0035】
本目的のために実行された実験では、図4のマルコフ連鎖400が検討された。実際のリング発振器を使用した実験で、2つの状態(及び2つの「フォンノイマンデバイアサ」)を有することにより、調整器が、0/1のランまたは交互のパターン(..010101..)として示される、直接連続するビット間の強い正または負の系列相関という一般的な問題を大幅に軽減できることが実証された。このような2状態モデルでは、0ビットに続く1ビットの確率p0は、別の1ビットに続く1ビットの確率p1とは異なる(独立している)。このような単純な相関除去の限界を特定することは可能であるが、2つの出口確率が同じであると仮定するよりもはるかに効果的である。
【0036】
本目的のために、様々な調整器の能力が、様々なノイズコーパスデータセット{コーパスA~コーパスE}を使用して評価されている。図6のグラフでは、x軸は調整器のマルコフの状態の数であり、y軸の目盛りは、データセットが様々な調整器を使用して調整された後の、様々なノイズコーパスデータセットのエントロピーを表しており、フォンノイマンデバイアサ(マルコフの1状態)から、2という数のマルコフ状態、式中kは2から10の範囲、を有する様々なブラムB調整器までの範囲に亘る。見てわかるように、エントロピーはk=3まで急速に増加するが、k=3より後には、マルコフ状態の数が増加しているにもかかわらず、エントロピーは横ばいになる(0.8~0.9の領域に落ち着く)。
【0037】
したがって、実際的な観点からは、2=8の状態のブラムB調整器は、アーキテクチャと電力のオーバーヘッドを最小限に抑えながら、例えば、組み込みプロセッサにてバイアスがなく比較的相関のないビットの形で比較的高いエントロピーをもたらし得ることが示されている。言い換えると、より多くの状態のブラムB調整器を本明細書での例に適用できるが、結果として得られるビットシーケンスのエントロピーの増加が比較的小さいため、追加の状態のアーキテクチャのオーバーヘッドは通常保証されない。さらに、ノイズ源から入力された最新のビットとの相関が最も強いと仮定すると、8状態のブラムB調整器は、ほとんどの場合、適切に相関除去を実行することが期待されるはずである。
【0038】
本例に従って実装できる8状態のブラムB調整器に対するマルコフ連鎖700を図7に示す。図7には、(新しいビットDの到着による)状態間の可能な遷移のそれぞれが示されている。より具体的には、各状態には2つの可能な入口遷移と2つの可能な出口遷移がある。例えば、状態000には、状態001(次のビットD=0のとき)とそれ自体(次のビットD=0のとき)から入ることができる。状態000からの出口遷移は、状態100(次のビットD=1のとき)及びそれ自体(次のビットD=0のとき)である。別の例では、状態110は、状態101(次のビットD=1のとき)及び状態100(次のビットD=1のとき)から入ることができる。状態110からの出口遷移は、状態111(次のビットD=1のとき及び状態011(次のビットD=0のとき)である。等々がある。このような状態マシンは、後述するように、バイアスを除去し、入力ビットに関連して少なくともk=3(前の3つの状態の場合)のローカル相関に対処するための調整器として効果的であることが証明されている。
【0039】
図7のマルコフ連鎖700を実装する8の状態のブラムB調整器800を実装するように構成されたアーキテクチャが図8に示されている。ブラムB調整器は、サンプル(「0」または「1」)をノイズ源200(図2)の出力240から受け取る入力D802を備える。入力ビットを含む入力ビットストリームは、クロック信号CLK804によってクロックされたとき、イネーブル入力W806がアクティブなときにロードされ、シフトレジスタ構成808及びセレクタ810に供給される。アーキテクチャ800は、必要に応じて調整器をリセット(または再準備)するためのリセット入力RST812も有する。アーキテクチャ800はさらに、出力ビットストリームを形成するバイアスが緩和された/相関除去ビットの値を出力する出力Q814と、イネーブルラインW806の値を下流のモジュールに送るイネーブル出力E816とを有する。
【0040】
シフトレジスタ構成は前の入力ビットのメモリとして動作するため、シフトレジスタ構成はブラムB調整器(または実際には、マルコフ連鎖を実現するいずれかの回路)の状態を近似し、それぞれの遷移で表現または対応できることが理解されている。したがって、1ビットのシフトレジスタは2状態のマルコフ連鎖で使用でき、2ビットのシフトレジスタは4状態のマルコフ連鎖で使用でき、この現在の例では3ビットのシフトレジスタを8状態のマルコフ連鎖などで使用できる。本明細書の例では、シフトレジスタ構成808の役割を果たすために、メモリ及び命令/論理回路の任意の適切な構成を適用することができる。
【0041】
セレクタ810は、この例ではフォンノイマンセル818を含む8つの宛先ロジックセルのうちの1つを選択するように構成され、これらは、後述するように、シフトレジスタ構成808のビット値{Dj-1、Dj-2、Dj-3}によって決定されるアドレス指定または選択に従って、フォンノイマン式バイアス除去を実行する。入力Dは、セレクタ810によって選択されたフォンノイマンセル818に送られる。選択されたフォンノイマンセル818は、その現在の状態Sと新しい入力ビットDの値に基づいて、ブラムB調整器の出力Qを生成する。残りの7つのフォンノイマンセルは、セレクタ810によってそれらが再度選択されるまで、その状態を維持し、いかなる機能も実行しない。次のクロックサイクルCLKで、入力ビットDはDj-1でシフトレジスタ構成808に入り、シフトレジスタ808の最も古いビットDj-3はドロップまたは破棄される。本明細書の例では、セレクタ810の役割を果たすために、メモリ及び命令/論理回路の任意の適切な構成を適用することができる。
【0042】
理解されるように、入力ビットがシフトレジスタ構成808に入ると、セレクタ801は、図7のマルコフ連鎖700によって表されるセル間の遷移に従ってフォンノイマンセル818を選択し、それによって相関除去を実行する。本明細書の例では、フォンノイマンセル818の役割を果たすために、メモリ及び命令/論理回路の任意の適切な構成を適用することができる。
【0043】
図8のアーキテクチャの動作は、次のフォンノイマンセル818の選択に相当する遷移に関して、次のように説明することができる。ビットの入力ストリームが{a,b,c,d,e,f}であると仮定する。シフトレジスタ構成810への入力ビット「クロック」として、次のアドレス、すなわち[cba,dcb,edc,fed]が生成される(なぜなら、新しいビットDは常にシフトレジスタ構成808の左側のセルに入り、最も右側のビットがシフトレジスタの右側のセルからドロップアウトするからである)。例えば、{a,b,c,d,e,f}={0,1,0,1,1,0}の値の場合、図7のマルコフ連鎖700で結果として生じる遷移は、010(d=1)→101(e=1)→110(f=0)→011のようになる。
【0044】
もちろん、シフトレジスタ構成808の左側にビットを供給することは、1つの選択肢に過ぎない。シフトレジスタ構成808の右側にビットを供給することも実行可能であり、その場合、アドレス[abc,bcd,cde,def]を配信し、シフトレジスタ構成808は代わりに「スライディングウィンドウ」のように入力ビットストリームに亘り動作する。この場合、マルコフ連鎖700の特定の遷移は、可能な遷移の新しいセットに一致するように変更する必要がある。
【0045】
ブラムのアルゴリズムBによると、図8のアーキテクチャが完全に相関除去を実行するわけではないことが理解されよう。これは、完全な相関除去を行うには、マルコフ連鎖の状態遷移がそれぞれのノイズ源の確率モデルと正確に一致する必要があり、実際的ではないからである。ただし、図8で適用されるシフトレジスタ/アドレッシングアプローチは、少なくとも、ノイズ源から入力された最新のビットとの相関が最も強いということが当てはまる限り、高度な相関除去をもたらすことがわかっている。
【0046】
フォンノイマンセル818は、論理に従って、図9の疑似コードに従って入力ビットDを処理する。各フォンノイマンセルは、5つの可能な状態S={λ,0,1,H,T}及びブラムB調整器800のものに一致する入力/出力を有する。次の入力ビットD及び現在の状態Sは、フォンノイマンセル818の挙動を決定し、フォンノイマンセル818は、すでに述べたように、フォンノイマン式バイアス除去を実行するために入力ビットのペアのシーケンスに対して動作する。
【0047】
フォンノイマンセルの動作中、及び図9を参照すると、次のようになる。
アクション(Wがアクティブで入力DのCLKで):
o S=λのとき、SはDの値を取る
o S=0でD=1の場合、Sは’H’を取るか、そうでなければSはλを取る
o D=0でS=1の場合、Sは’T’を取るか、そうでなければSはλを取る
o S=’H’の場合、Q=0を出力し、SをDの値に設定する
o S=’T’の場合、Q=1を出力し、SをDの値に設定する
【0048】
既に示したように、入力ビットD802は、クロック信号CLK804によってクロックされるとき(イネーブル入力W806がアクティブであるとき)、シフトレジスタ構成808及びセレクタ810に供給され、ロジックに従って出力Q814を生成する(または生成しない)。出力を生成する際、状態はS=HかTかに関係なくDの値に設定される。これは、「ワイプオンリード」と考えることができる。各フォンノイマンセルは、状態を保存するために3つの内部フリップフロップを使用して効率的に実装することができ、各セルには外部から単純なシリアルデータストリームインターフェイスを設けることができる。
【0049】
図8、9、及び11で説明した2段階のノイズ調整器の利点の1つは、エントロピービットがいくらか失われる一方で、その状態がノイズの特性に迅速に適応し、ノイズの特性が変化するにつれて出力レートが変化する可能性さえあることである。これにより、エントロピーソースは現実世界のノイズ源の「完全」には満たない動作に実用的な方法で対処できるようになり、理論的な完全性を仮定して要求する学術的または理論的なモデルとは対照的である。また、それはエントロピーソースが異なるノイズ源を使用できるようにする。例えば、同じノイズ調整器を異なるノイズ源と合成し、それに応じてその出力を適応させることができる。
【0050】
本明細書の例示的な設計に到達するにあたり、様々なエントロピーソースの構成がモデル化され、サンプリングされたデジタル発振器ノイズ源を仮定してテストされている。サンプリングされたデジタル発振器ソースの場合、信号の振幅は無視され、周期Tのパルス波は相対パルス幅(「デューティサイクル」)Dと見なされる。一定のサンプリングレートが仮定され、サンプルビットは時間の尺度として使用される。
【0051】
正弦波位相ωはx=(ω-δ)/2πで0≦x<1の範囲で正規化され、式中δはリーディングエッジの位置である。基本頻度F=1/Tは、位相に対するビットごとの増分であり、ビットごとのジッターσはその分散である。(F,D,σ)ノイズ源のサンプラーの動作は、次のようにモデル化でき、
【数2】
式中
【数3】
【0052】
何らかの初期状態xが与えられ、正規分布ランダム生成器(サンプラー)Nを使用すると、これら2つの方程式を使用して、モデルに一致するビットz、z、z、..のシミュレートされたシーケンスを生成できる。ビットごとの分散σは、標準偏差√(σ/F)によって「RMSジッター」測定値tjit(cc)に関連付けられる。
【0053】
図10aは、単一状態のフォンノイマンデバイアサのイールドに対する前述のモデルに従ってジッターランダムネス(シグマ、σ)をシミュレートした結果を示すグラフであり、図10bは同じ結果を示すが、64の状態(つまり、k=6)、及びスライディングウィンドウシフトレジスタ設計を有するブラムB調整器のグラフである。
【0054】
グラフのイールド(y軸)は、調整器に入力されるビット数に対する、調整器から出力されるビット数の比率である。イールドは、いずれかの所与の入力ビットレートに対する調整器の「出力速度」を示すだけでなく、約√(σ/Y)である累積されたRMSジッターを示すため、重要なパラメータである。
【0055】
ブラムB調整器によって最初にいくつかのビットが破棄されるため(すべての状態が最初は「λ」であるため)、調整器に所与のパラメータ(F、D、σ)で2000ビットを供給し、いくつのビットが出力されたかを測定することによって、連続的なイールドを概算した。フォンノイマンデバイアサの場合、出力は0から500の間になり得る(最大イールド0.5、最初の1000ビットは破棄されている)。シミュレーションでは、それぞれn=40000サンプル(1000ビット)を使用した。フォンノイマンデバイアサは基本的なバイアスを完全に処理することが期待されるため、バイアスはデューティサイクルD=1/2に設定された。頻度Fは、0と「ナイキスト境界」1/2の間のサンプリング頻度を法とするランダムであった。
【0056】
図10aに示すように、フォンノイマンデバイアサのイールドは、ジッターに関係なくY=0.25で平均化される。σが増加するにつれて、フォンノイマンデバイアサのイールドは平均0.25に維持され、平均付近の分散は減少し、その結果、σが0.4に近づくまでに、イールドは約0.2~0.3の範囲に留まる。対照的に、ブラムB調整器はまた、σが十分に大きい場合Y=0.25をイールドし(及び<0.1のイールドでの低分散、またσ<0.20のとき、概ね線形のジッター反応を配信する(Y=0.06+0.9×σに近似)。これは、各出力バイトの分散が低下すると、ジッターエントロピーが蓄積されるため、望ましい応答特性である。実際的な観点では、これはブラムB調整器が適応的であることを示しており、入力ビットストリームのσ(したがってエントロピーのレベル)が低い場合はより少ないエントロピービットを生成し、σ(したがってエントロピーのレベル)が増加するにつれていっそう多くのビットを生成する。ブラムB調整器は、入力ビットストリームのシグマ(及びエントロピーのレベル)が十分に高い場合、フォンノイマンデバイアサと同じ平均レベルである0.25のイールドに近づく。
【0057】
ブラムB調整器の適応的な性質は、調整器が様々な種類のノイズ源で動作することを意味するだけでなく、環境パラメータ、特に温度が変化しても、出力ビットのエントロピーの最小レベルが維持されることを意味する。これは、通常、温度制御された環境に存在するコンピュータサーバーやその他のコンピュータシステムとは異なり、様々な場所や極端な場所や環境のあらゆる様式において設置できるデバイスやシステムにとって非常に重要である。現目的のために、凍結スプレーを使用して回路を凍結することにより、動作温度を-50°Cまで変化させて能力をテストし、ブラムB調整器の適応的な性質はモデリングと一致していた。
【0058】
ブラムB調整器の実用的な設計を考えると、ブラムB調整器のビットパターン状態iは、前縁や立下りエッジなどのローカルエントロピーの「特徴」を「分離」して相関除去を実行できることに留意されたい。しかし、このような相関除去の範囲は、出力ビットではなく、むしろk入力ビットに関連しており、これは低エントロピーまたは可変エントロピーのノイズ源の問題であると認識されている。前述のように、状態数kを増やすと状況がわずかに改善される可能性があるが、そうするとリターンの減少に至り、指数関数的に増加する回路フットプリントが犠牲になる。したがって、本明細書での例では、はるかに多数の状態を有する単一の調整器ではなく、適度な数の状態(及び比較的低い不動産オーバーヘッド)を有する2つの段階の調整器をそれぞれ適用する。一例では、調整器の両方の段階がブラムB調整器である。このようにして、2段階の可変イールドの適応ノイズ条件を組み合わせて、より巨視的な特徴を軽減する。便利なことに、ブラムB調整器の両方の段階でk=3(8状態)を採用している。2つの8状態のステージを有すると、実装サイズがより小さくなるだけでなく、6ビットのウィンドウに制限された単一の調整器よりも、優れた適応能力を発揮できる可能性がある。言い換えれば、両方のブラムB調整器は適応的に動的であるため、全体的な「メモリ」は距離の6ビットをはるかに超えて到達し、2x8の状態のブラムB調整器の能力は、単一の64状態のブラムB調整器よりも優れた相関除去とイールドをもたらすはずである。したがって、図8及び11の構成は、ブラムの「アルゴリズムB」の標準的な実装によって提唱されていない改善されたエントロピーソースをもたらす。例えば、エントロピーソースは、ハードウェアで効率的に実装され、例えば、RISC-V派生の埋め込み及び低コストのチップにRISC-Vエントロピーソースのインターフェイスを設けることができる。エントロピーソースは、そのとき、スマートカードやその他のスマートデバイスのポスト量子暗号など、高度で効率的な暗号化用途に対してランダムビットの安全なソースをもたらす場合がある。
【0059】
これは、強くバイアスがつけられた、またはシリアルに調整される入力に役立つ。例えば、最初の「機能検出」段階のイールドはわずか0.1であり得、第2のステージからの出力は、6ではなく3/0.1=30の生のノイズビットの関数であることから、3ビットを認識する。
【0060】
したがって、本明細書で説明する特定の例は、従来の設計原則に反する2段階ノイズ調整器をもたらす。例えば、通常は、いずれかの暗号化調整器の前にエントロピーパスで疑似ランダム性を回避することが望まれる。しかし、本例では、状態付きの調整器を使用している。しかし、この状態付きの調整器は、出力ビットをより独立させるために適用される。例えば、入力ビットが異なると、異なって遅延するフォンノイマンセルへの分岐が発生し、フォンノイマンセルへの入力ビットがセルの状態変化を設定する。これにより、入力ビットに基づいて分岐状態のカスケードが発生するが、キャリーオン効果はフォンノイマンセルによって実装される「読み取り時の消去」プロパティによって制限される(例えば、ビットが状態から読み取られるとき、状態ビットSはλに設定され、もはやその出力ビットに関する情報は含まれていない)。
【0061】
実用的なエントロピーソース900の例を図11に示す。エントロピーソース900の構造は、図1のアーキテクチャのハードウェア部分110に大まかに従う。具体的には、エントロピーソース900は、ノイズ源905、ノイズ調整器910、及びソフトウェアドライバー(図示せず)によってポーリングできるバッファ915を備えている。ノイズ調整器910はさらに、第2のブラムB調整器と直列の第1のブラムB調整器を含むノイズ調整の2つのステージ913、914を有することを特徴とし、第1のステージからの出力Q、Eは、入力D、Wとして第2のステージに入る。ノイズ調整器は、ノイズ源905からビットを受信するための入力911と、ビットをバッファ915に配信するための出力912とを有する。例によれば、ノイズ調整器910の各ブラムB調整器は、8状態のブラムB調整器である。両方のブラムB調整器は、例えば、図8に従って配置される。例えば、各ノイズ調整ステージ(すなわち、ブラムB調整器として実装される)は、前の入力ビット値のセットを格納するkビットのシフトレジスタ構成808及び、フォンノイマン式バイアス除去を実行するためのフォンノイマンセル818のセットを備え得て、各フォンノイマンセルは、状態Sを有し、また入力ビット値を受信し、シフトレジスタ構成のビット値に基づいて出力ビット値を条件付きで生成するためにフォンノイマンセル818のセットの1つを選択するセレクタ810を備え得て、選択されたフォンノイマンセル状態は選択後に更新される。ノイズ源905は、第1のビットのシーケンス911を「生の」ノイズビットの形で出力し、ノイズ調整器910は、ノイズ源905から第1のビットのシーケンス911を受信し、第2の相関除去ビットのシーケンス912を出力する。ノイズ調整器910は、直列に通信可能に結合された複数のノイズ調整ステージ913、914を備える。バッファ915は、ノイズ調整器910から第2の相関除去ビットのシーケンスを受信し、格納する。バッファ915は、多数のビットを出力ランダムビットシーケンスとして、例えば、エントロピーソースをポーリングし、満杯のときにバッファからビットを取り出すソフトウェアドライバに配信するためにポーリングされるように構成される。
【0062】
図11に示すように、例によれば、ノイズ源905とノイズ調整器911の出力の両方が、アラームを発生させることができるオンラインテスト920、930を任意選択に有する。この例によれば、ソフトウェアドライバなどの外部ソフトウェアによってポーリングまたは読み取ることができる動作状態ではない(OPST)940は、そのようなアラーム及び/またはバッファ915の状態によって決定され、バッファ915が満杯で、アラームが発生していない場合に、Poll_Entropyの命令により、エントロピービットが利用可能になる。OPST940は、状態レジスタでアクセス可能なビットを含むことができる。例によると、OPST940インジケーターは、ES16(状態:01-アラームなし、バッファが満杯で、エントロピービットを配信可能)、WAIT(状態:10-バッファがまだ満杯ではない)、BIST(状態:00-組み込み式自己テスト、これは動作リセットRSTの後、または回復可能な障害が検出された後に発生する)、DEAD(状態:11-致命的/回復不能-エントロピーソースが予想される閾値を下回って動作しているか、動作していない)である。オンラインテスト及び/または生のノイズへのアクセスにより、継続的なテストと評価が可能になり得る。これは、セキュリティのリスクまたは攻撃を特定し、安全な機能を確認するために使用される場合がある。特定の実装では、プロセッサのグローバルリセット(RST)ラインには、ゼロ化と組み込み式自己テスト(BIST)の開始という2つの目的があり得る。
【0063】
図11のノイズ調整器は、任意選択で、ノイズ調整の前にノイズ源905から生のサンプルを読み取るために(例えば、ソフトウェアドライバ122を介して)使用できるGetNoiseインターフェイスも有する。このようにして、ノイズ源905の能力、及び生成されるビットの質は、既知の技法を使用してエントロピーソースの外で評価することができる。
【0064】
本明細書の例によれば、2つの偽陽性率がオンラインテストに適用される。第1のレートα=2-64は、致命的なノイズ源の障害を示し、第2のレートβ=2-20は、回復可能なエントロピーソースの障害を示す。レートは、「テストされたビットごと」に表現され得る。境界は構成可能であり、ユースケースに従って設定できる。
【0065】
本目的では、致命的な障害率αをノイズ源ビットとの関係で表す。これは、連続して動作するノイズ源が比較的高速であっても、システム全体の障害率に大きな影響を与えないように選択されている。偽陽性率は、関連するサンプリング頻度に応じて、約400/GHz年後に各テストで50%に達する。
【0066】
ソフトウェアドライバ122が16×16=256ビットのES16ブロックを処理する暗号化調整器126を有すると仮定すると、2次アラームレートβは、ノイズ調整器の出力ビットに関連して解釈される。したがって、4つのテストでは、1-(1-β)4・256≒0.001であることがわかり、1000個のエントロピーソースブロックのうち1個程度が回復可能なアラームを生成する。これは、致命的ではないアラームの割合を監視できるように、十分に高くなるように選択されている。1/16のノイズ調整器のイールド(β/16=α)を仮定すると、3回連続して失敗した後、致命的な境界が満たされることがわかる。
【0067】
ノイズ源905のオンラインテスト920は、反復回数テスト(RCT)922及び適応比例テスト(APT)924を含む。両方のテストは、閾値のエントロピーレベルを持つことを目的としており、それより下でアラームが生成され、エントロピーソース900からエントロピービットが出力されるのを防ぐ。本例によれば、エントロピーレベル(最小エントロピー)はH=0.5に設定され、これはp=2-0.5=0.7071の最大確率に対応する。もちろん、ノイズ源(この例ではリング発振器)はそれよりも優れた設計になっているため、これよりも悪いいずれかのバイアスが発生した場合は、それぞれの回路に劣化または障害があった可能性がある。
【0068】
本例によれば、RCT922は、繰り返される同一のサンプル(1または0のラン)をカウントする。致命的なカットオフ閾値が設定され、それを下回るとアラームが生成され、エントロピーソース900からのエントロピービットの出力が防止される。本例によれば、致命的なカットオフは次のように計算される。
【数4】
【0069】
129ビットを超える繰り返しサンプルのいずれかのランでアラームが生成されるようにする。ユースケースに応じて、他の閾値を使用できる。
【0070】
本例によれば、APT924は、以下のように単純な、バイアスのテストである。BとBを1024ビットのウィンドウWの0または1ビットの数とする。{B,B}≧Captのカットオフ値のCaptの場合、致命的なアラームがトリガーされる。
【数5】
【0071】
最小エントロピーH=0.5、Capt=841で、この閾値を超える値は、エントロピーソース900からのエントロピービットの出力を妨げる致命的なアラームを引き起こす。ユースケースに応じて、他の閾値を使用できる。
【0072】
ノイズ調整器910の能力に関して、例えば、ノイズ源の疑似ランダム動作が(例えば、外部干渉または複雑な位相ロックによる)重大な全体エントロピー損失を引き起こしている場合、バイアスまたは短い繰り返しのパターンが予想され得る。これらは、自己相関テストを使用してテストできる。例えば、出力ビットシーケンスをそれ自体の遅延(またはシフト)バージョンとXORすることによってテストできる。元のシーケンスが十分にランダムである場合、XORの結果もランダムになるはずであるが、系列相関はバイアスを引き起こす。本例によれば、4つのノイズ調整器出力テストは、バイアス(XORなし)を測定し、1、2、及び3ビットの位置遅延したシーケンスでXORのバイアスを測定する。これらのテストは、H>0.5と仮定して実行できる。
【0073】
BISTは、停止によって、またはノイズ調整器テストによって非致命的なアラームが生成されたときに開始され得る。例によれば、次のBISTテストを使用できる。
- ウォームアップ:ノイズ源テスト(APT及びRCP)が有効になる前に、ノイズ源からの最初の100,000サイクルが破棄される。状態はBISTである。ノイズ源がウォームアップ以外のいずれかの時間にアラームをテストすると、DEAD状態になる。
- 出力テスト:ノイズ調整器からの最初の1,024ビットは出力されないが、BISTモードでの自己テストとして使用される。この段階には4つの完全な256ビットのブロックがあり、NCTアラームがカウントされる。アラーム0はBISTの成功を意味し、アラーム1または2はBISTを最初から再開し(ただし、タイムアウトはクリアしない)、一方でアラーム3または4は致命的なDEAD状態を引き起こす。
- タイムアウト:BISTテストが106サイクルで終了しない(十分な出力がない)場合、それは致命的なエラーDEAD状態に至る。
【0074】
前述のテスト及び関連するパラメータは、特定のリング発振器または動作頻度でうまく機能するように調整できる。例によれば、BIST状態は、ソフトウェアドライバ120によって少なくとも1回ポーリングされるまで持続するので、ドライバは致命的でないエラーさえも登録することができる。
【0075】
多数の異なる256メガビットのノイズコーパス(サンプルA~サンプルD)を使用して、図11に示す種類の2ステージノイズ調整器(各ステージは8状態のブラムB調整器)で実行されたテストを、次の表に示す。
【表1】
【0076】
エントロピーとイールドの評価は、データがIID(独立かつ同一分布である)であるとは仮定せず、ノイズ調整器910への入力911、H、2つのBlumB調整器の間、H、およびノイズ調整器910からの出力912、Hで行われる。さらに、Hminが示されている。これは、出力がIIDビット(バイアスのみに基づく)を生成すると見なされる場合の配置の最終的な最小エントロピーである。サンプルAで見られるように、Hは常にHよりも高いわけではなく、これは、「ランダム性」の性質に起因する入力サンプルに応じた能力の多少のばらつきがあることを意味する。しかし、一般に、第1のステージのブラムB調整器はエントロピーとイールドを大幅に増加させることが示されているが、第2のステージのブラムB調整器はHminに向かってエントロピーとイールドのゲインを増加させることが示されている。
【0077】
示されているように、総イールドはY<1/16である。したがって、調整器は、25MHz基準クロックに対してリング発振器をサンプリングするノイズ源に対して1Mbpsを超える公称出力速度を有するように見える場合がある。これは、実際的な観点では、ランダムビットストリームを必要とするほとんどの適用に対して十分に高速である。
【0078】
本明細書で説明される特定の例は、独立同分布(IID)に近い、及び/または出力ビット当たり少なくとも0.997ビットのシャノンエントロピーを含む出力ランダムビットシーケンスをもたらし得る。これは、通常はIIDではない、及び/または前述のエントロピー基準を満たさない比較生ノイズ源とは異なる。本例では、エントロピーソースに組み込まれたノイズ調整器という形で、暗号化の後処理ではなく「算術」を提示する。これらは、暗号化調整器よりもはるかにリソース効率が高く、計算上の困難な仮定がない可能性があるため、これらがポスト量子コンピューティングと暗号化に適しているものになる(例えば、それらを本質的に「量子的に安全」にする)。
【0079】
比較乱数生成器で使用される多くの「ランダム性テスト」は、モンテカルロシミュレーションのランダム性を評価するのに適している場合があるが、セキュリティ及び暗号化の用途には適していない場合があることに留意されたい。例えば、線形代数による暗号分析は、特定の乱数生成器で使用される線形フィードバックシフトレジスタで生成された「ランダムな」ビットシーケンスがセキュリティのリスクをもたらす可能性があることを示している。これらの比較の事例では、線形フィードバックシフトレジスタの内部状態は、比較的少量の出力から導き出すことができ、将来及び過去の出力をほとんど労力をかけずに再現することができる。「乱数」生成器の出力が暗号化キーリングに使用される場合、これは壊滅的な結果になる可能性がある。対照的に、本例は、過去または将来の出力発見のリスクなしに、暗号化アプリケーションに適したランダムビットシーケンスをもたらす。
【0080】
例によるエントロピーソースの動作を示すフロー図を図12に示す。
【0081】
第1のステップ1000では、ノイズ源905によってノイズサンプルが生成される。次に1010で、ノイズ調整器910の第1のブラムB調整器ステージ913がノイズサンプルを調整し、次の1020で、調整されたノイズサンプルは、ノイズ調整器910の第2のブラムB調整器ステージ914によってさらに調整される。次に、調整されたノイズサンプルはバッファ915に格納され、そこからソフトウェアドライバ122が、調整されたノイズサンプルをポーリングして受信することができる。
【0082】
前述の説明は、説明した原理の例を示して説明するために提示されてきた。この説明は、網羅的であることを意図するものではなく、または開示されるいずれかの厳密な形態にこれらの原理を限定することを意図するものではない。上述の教示に照らして多くの変更形態及び変形形態が可能である。例えば、ランダムビットをノイズ調整器に配信するために、異なるノイズ源が採用されてもよい。このようなノイズ源は、「オンチップ」で回路を構成し得るか、または外部デバイスまたはシステムから派生し得る。また、ノイズ調整器の形状が異なる場合がある。例えば、任意の数のブラムB調整器を使用することができる。ブラムB調整器は1つだけである場合もあれば、(例示のように)2つある場合もあれば、3つ、4つ、5つ、またはそれ以上のブラムB調整器など、2つ超ある場合もある。ブラムB調整器ごとに、状態の数は任意の数2で8と異なる場合がある。または、1つのブラムB調整器には8つの状態があり得、別のものには異なる数の状態がある場合がある。ブラムB調整器の状態数は、例えば、シフトレジスタのステージ数や、出力(例えば)フォンノイマンデバイアサを選択するための関連ロジックという観点で、ロジックの構成を決める。他の例では、ノイズ調整器は、少なくとも1つのブラムB調整器と、他の方法でバイアス除去及び/または相関除去を実行する1つまたは複数の他のステージとを備えることができる。関連付けられたパラメータ及び/または閾値による、様々な他のテストまたはアラームを、エントロピーソースの様々な構成に適用することができる。本明細書の例によれば、ノイズ調整器、及びより一般には実際のエントロピーソースは、ユースケースによって決定されたように、固定配線または構成可能な回路などのハードウェア、ファームウェア、ソフトウェア、または前述の任意の適切な組み合わせで、制限なく実現され得る。本明細書の例によるエントロピーソースは、中央処理装置と統合されてもよいし、例えばコプロセッサまたはコンピュータ/処理アーキテクチャ全体の他の別個の処理装置として、それとは独立して動作及び実現されてもよい。他の例では、エントロピーソースは、スタンドアロンの処理環境、例えば、接続されたIoTデバイスまたは装置に配置できる組み込みプロセッサに統合することができる。例では、エントロピーソースは、軽量マイクロコントローラ、RISK-Vなどの縮小命令セットアーキテクチャ、及び/またはポスト量子暗号に適合したプロセッサに展開されるように適合されている。
【0083】
任意の1つの例に関連して説明された任意の特徴は、単独でまたは説明した他の特徴と組み合わせて使用し得、また、他の任意の例の任意の特徴、または任意の他の例の任意の組み合わせと組み合わせて使用し得ることを理解されたい。
【0084】
特許請求されていない特定の例は、これより一連の条項として提示される。
【0085】
ある場合では、入力ビットシーケンスと比較して出力ビットシーケンスのバイアスを低減及び/またはエントロピーを増加させるために、処理モジュールまたはノイズ調整器が設けられる。処理モジュールは、入力ビットシーケンスのエントロピーに従って変化する出力ビットレートで出力ビットシーケンスを出力するように構成され、その結果、入力ビットシーケンスのエントロピーの増加は、出力ビットレートの増加と関連付けられ、入力ビットシーケンスのエントロピーの減少は、出力ビットレートの減少に関連付けられる。
【0086】
処理モジュールは、ソースから入力ビットを受信するための入力と、乱数生成に使用する出力ビットを生成するための出力とを有することができる。処理モジュールは、各状態が、1つまたは複数の前の状態からの2つの入口遷移と、1つまたは複数の後続の状態への2つの出口遷移とを有する2状態のマルコフ連鎖(例えば、k=3の場合)を実装することができる。処理モジュールは、ブラムのアルゴリズムBに従ってビットを出力するように構成された処理ブロックを備えることができ、処理ブロックはマルコフ連鎖を実装する。処理モジュールは、第1のマルコフ連鎖と直列に、少なくとも第1の2の状態のマルコフ連鎖及び第2の2の状態のマルコフ連鎖を実装することができる。k及びJはいずれも3に等しくてもよい。処理ブロックは、ブラムのアルゴリズムBの少なくとも2つの連続する段階に従ってビットを出力するように構成されてもよく、各段階はマルコフ連鎖のインスタンスを実装する。
【0087】
特定の事例では、入力、セレクタ、及び2個の出力ロジックセルを備えるロジックデバイスが設けられ、セレクタは、入力で受信された入力ビットシーケンスからのL個の入力ビットのシーケンスに基づいて出力ロジックセルを選択するように配置され、選択された出力ロジックセルは入力ビット値で動作する出力ロジックセルの論理に従って出力ビットを生成するように構成される。ロジックデバイスは、上の例で説明したように、フォンノイマンセルを含むことができる。
【0088】
ロジックデバイスは、入力ビットシーケンスを受信するシフトレジスタを備えることができ、シフトレジスタのLステージは、セレクタをアドレス指定して、2個の出力ロジックセル(例えば、L=3)の1つを選択するように配置される。出力ロジックセルのそれぞれは、バイアス除去の論理動作を実行するように構成されてもよく、バイアス除去論理動作は、遅延されたフォンノイマン式バイアス除去論理動作を含んでもよい。ロジックデバイスは、ブラムのアルゴリズムBに従ってビットを出力するように、及び/またはマルコフ連鎖を実装するように構成され得る。セレクタは、入力ビットシーケンスに基づいて出力ロジックセルを選択し、それによってマルコフ連鎖を実現するように構成することができる。
【0089】
ある場合には、上述の処理モジュールは、やはり上述の少なくとも1つのロジックデバイスを含むことができる。ある場合には、2つ以上のロジックデバイスを直列に配置することができ、第1のロジックデバイスからの出力ビットが入力ビットとして第2のロジックデバイスに供給される。
【0090】
ある場合では、乱数生成に使用するためのエントロピーソースは、上述の処理モジュールの形でノイズ源及びノイズ調整器を含むことができる。乱数生成に使用するハードウェア回路は、このエントロピーソースを構成することができる。ノイズ源はリング発振器を含むことができ、リング発振器は、フリーランニング式ループで接続された複数のインバータ、例えば3つのインバータを含むことができる。好ましくは、インバータの数は奇数である。ハードウェア回路は、出力されたランダムビットシーケンスに含まれるいくつかのビットを保持するためのバッファを備えることができる。バッファは、ポーリングされ、保持されたランダムビットシーケンスのいくつかのビットを配信するように構成され得る。
【0091】
ある場合では、入力ビットシーケンスと比較して出力ビットシーケンスのバイアスを低減及び/またはエントロピーを増加させるために、適応レートエントロピーソースがもたらされ、適応レートエントロピーソースは、入力ビットシーケンスのエントロピーに従って適応する出力ビットレートで出力ビットシーケンスを出力するように構成されて、入力ビットシーケンスのエントロピーの増加は出力ビットレートの増加に関連付けられ、入力ビットシーケンスのエントロピーの減少は出力ビットレートの減少に関連付けられるようにする。
【0092】
ある場合では、入力ビットシーケンスと比較して出力ビットシーケンスのバイアスを低減し、及び/またはエントロピーを増加させるように構成された処理モジュールがもたらされ、処理モジュールは、入力ビットシーケンスのエントロピーに応じて変化する出力ビットレートで出力ビットシーケンスを出力するようにさらに構成され、入力ビットシーケンスのエントロピーの増加は出力ビットレートの増加に関連付けられ、入力ビットシーケンスのエントロピーの減少は出力ビットレートの減少に関連付けられ、それによって、入力ビットシーケンスと比較して出力ビットシーケンスのバイアスを低減及び/またはエントロピーを増大させ、出力ビットレートは、さもなければバイアスの増大及び/またはエントロピーの低減につながる入力ビットを破棄することによって低減される。
【0093】
ある場合では、第1のエントロピーを有する入力ビットストリームを受信するための入力と、第1のエントロピーと比較して増加した第2のエントロピーを有する出力ビットストリームを配信するための出力とを備えるノイズ調整器がもたらされる。ノイズ調整器は、システムクロックの各クロックサイクルで動作して、入力ビットストリームの次の入力ビットをシフトレジスタ構成にロードするシフトレジスタ構成、それぞれの宛先ロジックセルによって実行されるバイアス除去の動作の結果に従って、それぞれの宛先ロジックセルにクロックインされ、出力ビットを出力するか出力ビットを出力しないかのいずれかである、入力ビットストリームの次の入力ビットと前の入力ビットに基づいてバイアス除去の動作を実行するように各々配置された2の宛先ロジックセル、及びシフトレジスタ配列にロードされた入力ビットストリームのk個の前の入力ビットのシーケンスによって決定されるアドレスに基づいて宛先ロジックセルを選択するように動作するセレクタを含み得、それによってシフトレジスタに導入される次の各入力ビットがまた、選択されたロジックセルにクロックインされ、それぞれのデバイアス動作が実行され、セレクタによって決定されたアドレスのシーケンスが、所定の2状態のマルコフ連鎖の遷移に対応する順序で宛先ロジックセルのそれぞれのシーケンスを選択する。ノイズ調整器は、前述のように2つの処理ブロックを含むことができ、第2の処理ブロックは、最初に述べた処理ブロックと同じ形式を有し、直列に動作する。
【符号の説明】
【0094】
100 アーキテクチャ
110 エントロピーソース
112 ハードウェアエントロピーソース
114 ノイズ調整器
116 バッファ
118 ハードウェアインターフェイス
120 ソフトウェア
122 ソフトウェアドライバ
124 ポーリングインターフェイス
126 調整器
160 ソフトウェアアプリケーション
200 ノイズ源
205a、205b、205c NOTゲート
220 NANDゲートへの第2の入力
225 ループ
230 フィードバックライン
235 D型ラッチ
240 ラッチの出力
300 マルコフ連鎖
400 2状態のマルコフ連鎖
500 4状態のマルコフ連鎖
700 マルコフ連鎖
800 ブラムB調整器
801 セレクタ
802 入力D
804 クロック信号CLK
806 イネーブル入力W
808 シフトレジスタ構成
810 セレクタ
812 リセット入力RST
814 出力Q
816 イネーブル出力E
818 フォンノイマンセル
900 エントロピーソース
905 ノイズ源
910 ノイズ調整器
911 第1のビットのシーケンス
912 第2の相関除去ビットのシーケンス
913、914 ノイズ調整の2つのステージ
915 バッファ
920、930 オンラインテスト
922 反復回数テスト(RCT)
924 適応比例テスト(APT)
940 OPST
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【国際調査報告】