(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-15
(45)【発行日】2022-04-25
(54)【発明の名称】乱数生成回路及び乱数生成方法
(51)【国際特許分類】
G06F 7/58 20060101AFI20220418BHJP
A63F 5/04 20060101ALI20220418BHJP
A63F 7/02 20060101ALI20220418BHJP
【FI】
G06F7/58 680
A63F5/04 612
A63F7/02 326Z
(21)【出願番号】P 2020006037
(22)【出願日】2020-01-17
【審査請求日】2020-01-17
(32)【優先日】2019-01-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508197206
【氏名又は名称】新唐科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】100102923
【氏名又は名称】加藤 雄二
(72)【発明者】
【氏名】ジヴ ハーシュマン
【審査官】白石 圭吾
(56)【参考文献】
【文献】米国特許第09774317(US,B1)
【文献】特開2003-296101(JP,A)
【文献】特開2005-242635(JP,A)
【文献】国際公開第2011/117929(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 7/58-7/72
G09C 1/00-5/00;H04K 1/00-3/00;H04L 9/00-9/04
H03K 3/64-3/86
A63F 5/04
A63F 7/02
(57)【特許請求の範囲】
【請求項1】
第1入力および第1出力を有する第1インバータ、及び第2入力および第2出力を有する第2インバータであって、前記第1出力は前記第2入力に供給され、前記第2出力は前記第1入力に供給された第1インバータ及び第2インバータと、
閉じた時に、前記第1出力を前記第1入力に、前記第2出力を前記第2入力にそれぞれ短絡させることにより、前記第1インバータ及び前記第2インバータをメタステーブル状態に設定し、開いた時に、前記第1インバータ及び前記第2インバータを前記メタステーブル状態から解放して双安定ランダム状態に移行するように構成されたスイッチと、
前記スイッチを交互に開閉するように構成され、前記双安定ランダム状態にある時、前記第1インバータ及び前記第2インバータの少なくとも1つから複数のランダム値を出力させるように構成された
論理回路と、
を備える、
前記論理回路は、前記第1インバータの第1出力信号及び前記第2インバータの第2出力信号の少なくとも1つからセルフジッタクロック信号を導出し、当該セルフジッタクロック信号を使用して前記スイッチを交互に開閉するように構成されることを特徴とする乱数生成回路。
【請求項2】
前記論理回路は、クロック信号を前記スイッチに印加することにより前記スイッチを交互に開閉するように構成される請求項1に記載の乱数生成回路。
【請求項3】
前記論理回路は、ノイズ信号を前記スイッチに印加するように構成される請求項1に記載の乱数生成回路。
【請求項4】
前記論理回路は、前記複数のランダム値を蓄積することにより、前記複数のランダム値のランダム性を高めるように構成される請求項1に記載の乱数生成回路。
【請求項5】
機能的入力信号を受信し、機能的出力信号を出力する機能フリップフロップと、
前記複数のランダム値が前記機能的出力信号の値と時間インターリーブされた出力信号を生成するマルチプレクサーと、
をさらに備える請求項1に記載の乱数生成回路。
【請求項6】
前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、
前記スイッチとインバータのペアを有する少なくとも1つの追加の乱数生成ステージを含み、
前記論理回路は、前記乱数生成ステージと前記追加の乱数生成ステージのそれぞれの出力をXOR演算により、前記複数のランダム値のランダム性を高めるように構成される請求項1に記載の乱数生成回路。
【請求項7】
前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、
前記スイッチとインバータのペアを有する少なくとも1つの追加の乱数生成ステージを含み、
前記論理回路は、前記追加の乱数生成ステージによって生成された前記複数のランダム値に基づいて、前記乱数生成ステージの前記スイッチを交互に開閉するように構成される請求項1に記載の乱数生成回路。
【請求項8】
前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、
前記スイッチとインバータのペアを有する少なくとも1つの追加の乱数生成ステージを含み、
前記論理回路は、ノイズ信号を生成するように構成された発振器と、
前記ノイズ信号によって駆動され、複数のインバータ又はバッファステージを有し、前記複数のインバータまたは前記バッファステージの出力信号が、外部ノイズとして前記乱数生成ステージ及び前記少なくとも1つの追加の乱数生成ステージに印加されるインバータチェーン又はバッファステージチェーンと、
を含む請求項1に記載の乱数生成回路。
【請求項9】
前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、
前記スイッチとインバータのペアを有する少なくとも1つの追加の乱数生成ステージを含み、
前記論理回路は、複数の遅延素子を有し且つクロック信号のレプリカを生成する遅延素子チェーンを備え、
前記遅延素子の出力信号は、前記乱数生成ステージ及び前記少なくとも1つの追加の乱数生成ステージの前記スイッチに印加される請求項1に記載の乱数生成回路。
【請求項10】
前記論理回路は、
前記第1インバータの前記第1出力信号及び前記第2インバータの前記第2出力信号の少なくとも1つが、第1論理値を表す電圧から所定距離未満の場合、前記セルフジッタクロック信号を前記第1論理値に設定することと、
前記第1インバータの前記第1出力信号及び前記第2インバータの前記第2出力信号の両方が、前記第1論理値を表す電圧から前記所定距離よりも大きい場合、前記セルフジッタクロック信号を第2論理値に設定することと、によって、
前記セルフジッタクロック信号を導出するように構成される請求項1に記載の乱数生成回路。
【請求項11】
第1入力および第1出力を有する第1インバータ、及び第2入力および第2出力を有する第2インバータであって、前記第1出力は前記第2入力に供給され、前記第2出力は前記第2入力に供給された第1インバータ及び第2インバータを動作させるステップと、
閉じた時に、前記第1出力を前記第1入力に、前記第2出力を前記第2入力にそれぞれ短絡させることにより、前記第1インバータ及び前記第2インバータをメタステーブル状態に設定し、開いた時に、前記第1インバータ及び前記第2インバータを前記メタステーブル状態から解放して双安定ランダム状態にするように構成されたスイッチを交互に開閉させるステップと、
前記双安定ランダム状態にある時、前記第1インバータ及び前記第2インバータの少なくとも1つから複数のランダム値を出力させるステップと、
前記スイッチを交互に開閉させるステップには、前記第1インバータの第1出力信号及び前記第2インバータの第2出力信号の少なくとも1つからセルフジッタクロック信号を導出し、当該セルフジッタクロック信号を使用して前記スイッチを交互に開閉することを含む乱数生成方法。
【請求項12】
前記スイッチを交互に開閉させるステップは、クロック信号を前記スイッチに印加することをさらに含む請求項11に記載の乱数生成方法。
【請求項13】
ノイズ信号を前記スイッチに印加することをさらに含む請求項11に記載の乱数生成方法。
【請求項14】
前記複数のランダム値を蓄積することにより、前記複数のランダム値のランダム性を高めることをさらに含む請求項11に記載の乱数生成方法。
【請求項15】
機能フリップフロップを使用して、機能的入力信号を受信し、機能的出力信号を出力することと、
マルチプレクサーを使用して、前記複数のランダム値が前記機能的出力信号の値と時間インターリーブされた出力信号を生成することと、
をさらに含む請求項11に記載の乱数生成方法。
【請求項16】
前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、
前記乱数生成ステージと追加の乱数生成ステージのそれぞれの出力をXOR演算により、前記複数のランダム値のランダム性を高めることをさらに含み、
前記追加の乱数生成ステージは、スイッチとインバータのペアを有する請求項11に記載の乱数生成方法。
【請求項17】
前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、
追加の乱数生成ステージによって生成された複数のランダム値に基づいて、前記乱数生成ステージの前記スイッチを交互に開閉することをさらに含み、
前記追加の乱数生成ステージは、スイッチとインバータのペアを有する請求項11に記載の乱数生成方法。
【請求項18】
前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、
ノイズ信号を生成することと、
前記ノイズ信号を使用してインバータチェーン又はバッファステージチェーンを駆動して、前記インバータチェーン又は前記バッファステージチェーンが有する複数のインバータまたは複数のバッファステージの出力信号を、外部ノイズとして前記乱数生成ステージ及び少なくとも1つの追加の乱数生成ステージに印加することと、をさらに含み、
前記追加の乱数生成ステージは、スイッチとインバータのペアを有する請求項11に記載の乱数生成方法。
【請求項19】
前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、
遅延素子チェーンを使用して、クロック信号のレプリカを生成することと、
前記遅延素子チェーンが有する複数の遅延素子の出力信号を、前記乱数生成ステージ及び少なくとも1つの追加の乱数生成ステージのスイッチに印加すること、をさらに含み、
前記追加の乱数生成ステージは、スイッチとインバータのペアを有する請求項11に記載の乱数生成方法。
【請求項20】
前記セルフジッタクロック信号を導出するステップは、
前記第1インバータ
の前記第1出力信号及び前記第2インバータの前記
第2出力信号の少なくとも1つが、第1論理値を表す電圧から所定距離未満の場合、前記セルフジッタクロック信号を前記第1論理値に設定することと、
前記第1インバータ
の前記第1出力信号及び前記第2インバータの前記第2出力信号の両方が、前記第1論理値を表す電圧から前記所定距離よりも大きい場合、前記セルフジッタクロック信号を第2論理値に設定することと、
をさらに含む請求項11に記載の乱数生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、乱数生成回路及び乱数生成方法に関し、特に、短絡バックツーバックインバータ(back-to-back inverters)に基づく乱数生成回路及び乱数生成方法に関する。
【背景技術】
【0002】
乱数生成のためのさまざまな回路および技術が知られている。一部のRNG(RNG)は、メタスタビリティに基づいており、例えば、電子コンポーネントをメタステーブル状態に設定する。一例として、Barangi氏らは、2016年1月第52期第1号の「IEEE Transaction on Magnetics」誌に掲載された「高速でエネルギーリミテッドされたアプリケーション向けのストレイントロニクスに基づいた真性RNG」(Straintronics-Based True Random Number Generator for High-Speed and Energy-Limited Applications)において、メタスタスタビリティに基づいたRNGについて説明している。
また、Srinivasan氏らは、2010年7月第52期第1号の「IEEE Symposium on VLSI Circuits (VLSIC)」誌に掲載された「45nm CMOS内の2.4GHz 7mW全デジタルPVT変動耐性を有する真性RNG」(2.4GHz 7mW all-digital PVT-variation tolerant True Random Number Generator in 45nm CMOS)において、自己校正フィードバックループ機能を有する2段階の粗粒子調整/微粒子調整を使用するRNG(a RNG that uses two-step coarse/fine-grained tuning)について説明している。
【先行技術文献】
【非特許文献】
【0003】
【文献】2016年1月第52期第1号の「IEEE Transaction on Magnetics」誌に掲載された「高速でエネルギーリミテッドされたアプリケーション向けのストレイントロニクスに基づいた真性RNG」
【文献】2010年7月第52期第1号の「IEEE Symposium on VLSI Circuits (VLSIC)」誌に掲載された「45nm CMOS内の2.4GHz 7mW全デジタルPVT変動耐性を有する真性RNG」(
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、ランダム性の高い乱数生成回路及び乱数生成方法を提供することにある。
【課題を解決するための手段】
【0005】
本発明の実施例にかかる乱数生成回路は、第1入力および第1出力を有する第1インバータ、及び第2入力および第2出力を有する第2インバータであって、前記第1出力は前記第2入力に供給され、前記第2出力は前記第2入力に供給された第1インバータ及び第2インバータと、閉じた時(ON)に、前記第1出力を前記第1入力に、前記第2出力を前記第2入力にそれぞれ短絡させることにより、前記第1インバータ及び前記第2インバータをメタステーブル状態に設定し、開いた時(OFF)に、前記第1インバータ及び前記第2インバータを前記メタステーブル状態から解放して双安定ランダム状態(a bi-stable random state)に移行するように構成されたスイッチと、前記スイッチを交互に開閉するように構成され、前記双安定ランダム状態にある時、前記第1インバータ及び前記第2インバータの少なくとも1つから複数のランダム値を出力させるように構成された論理回路と、を備える。
【0006】
また、本発明のいくつかの実施形態に係る乱数生成回路において、前記論理回路は、クロック信号を前記スイッチに印加することにより前記スイッチを交互に開閉するように構成される。また、本発明のいくつかの実施形態に係る乱数生成回路において、前記論理回路は、ノイズ信号を前記スイッチに印加するように構成される。また、本発明の一実施形態に係る乱数生成回路において、前記論理回路は、前記複数のランダム値を蓄積することにより、前記複数のランダム値のランダム性(randomness)を高めるように構成される。
【0007】
また、本発明の一実施形態に係る乱数生成回路は、機能的入力信号を受信し、機能的出力信号を出力する機能フリップフロップと、前記複数のランダム値が前記機能的出力信号の値と時間インターリーブ(time-interleaved)された出力信号を生成するマルチプレクサー(MUX)と、をさらに備える。
【0008】
また、本発明の一実施形態に係る乱数生成回路において、前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージ(RNG stage)を形成し、前記乱数生成回路は、前記スイッチとインバータのペアを有する少なくとも1つの追加の乱数生成ステージを含み、前記論理回路は、前記乱数生成ステージと前記追加の乱数生成ステージのそれぞれの出力をXOR演算により、前記複数のランダム値のランダム性を高めるように構成されている。
【0009】
また、本発明の一実施形態に係る乱数生成回路において、前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、前記乱数生成回路は、前記スイッチとインバータのペアを有する少なくとも1つの追加の乱数生成ステージを含み、前記論理回路は、前記追加の乱数生成ステージによって生成された前記複数のランダム値に基づいて、前記乱数生成ステージの前記スイッチを交互に開閉するように構成されている。
【0010】
また、本発明の一実施形態に係る乱数生成回路において、前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、前記乱数生成回路は、前記スイッチとインバータのペアを有する少なくとも1つの追加の乱数生成ステージを含み、前記論理回路は、ノイズ信号を生成するように構成された発振器と、前記ノイズ信号によって駆動され、複数のインバータ又はバッファステージを有し、前記複数のインバータまたは前記バッファステージの出力信号が、外部ノイズとして前記乱数生成ステージ及び前記少なくとも1つの追加の乱数生成ステージに印加されるインバータ又はバッファステージチェーン(a chain of inverter or buffer stages)と、を含む。
【0011】
また、本発明の一実施形態に係る乱数生成回路において、前記スイッチ、前記第1インバータ、及び前記第2インバータは、乱数生成ステージを形成し、前記乱数生成回路は、前記スイッチとインバータのペアを有する少なくとも1つの追加の乱数生成ステージを含み、前記論理回路は、複数の遅延素子を有し且つクロック信号のレプリカを生成する遅延素子チェーンを備え、前記遅延素子の出力信号は、前記乱数生成ステージ及び前記少なくとも1つの追加の乱数生成ステージの前記スイッチに印加される。
【0012】
また、本発明の一実施形態に係る乱数生成回路において、前記論理回路は、前記第1インバータ及び前記第2インバータの第1出力信号及び第2出力信号の少なくとも1つからセルフジッタクロック信号(a self-jittering clock signal)を導出し、当該セルフジッタクロック信号を使用して前記スイッチを交互に開閉するように構成される。また、本発明の一実施形態に係る乱数生成回路において、前記論理回路は、前記第1インバータ及び前記第2インバータの前記出力信号の少なくとも1つが、第1論理値を表す電圧から所定距離未満の場合、前記セルフジッタクロック信号を前記第1論理値に設定することと、前記第1インバータ及び前記第2インバータの前記出力信号の両方が、前記第1論理値を表す電圧から前記所定距離よりも大きい場合、前記セルフジッタクロック信号を第2論理値に設定することによって、前記セルフジッタクロック信号を導出するように構成される。
【0013】
本発明の実施例にかかる乱数生成方法は、第1入力および第1出力を有する第1インバータ、及び第2入力および第2出力を有する第2インバータであって、前記第1出力は前記第2入力に供給され、前記第2出力は前記第2入力に供給された第1インバータ及び第2インバータを動作させるステップと、閉じた時に、前記第1出力を前記第1入力に、前記第2出力を前記第2入力にそれぞれ短絡させることにより、前記第1インバータ及び前記第2インバータをメタステーブル状態に設定し、開いた時に、前記第1インバータ及び前記第2インバータを前記メタステーブル状態から解放して双安定ランダム状態にするように構成されたスイッチを交互に開閉させるステップと、前記双安定ランダム状態にある時、前記第1インバータ及び前記第2インバータの少なくとも1つから複数のランダム値を出力させるステップと、を含む。
【図面の簡単な説明】
【0014】
【
図1】FIG1は、本発明の一実施形態に係るRNG(RNG)を概略的に示すブロック図である。
【
図2】FIG2A~FIG2Bは、本発明の実施形態に係る後段処理機能を有するRNGを概略的に示すブロック図である。
【
図3】FIG3は、本発明の一実施形態に係る、機能フリップフロップと統合されたRNGを概略的に示すブロック図である。
【
図4】FIG4A~FIG4Bは、本発明の実施形態に係る、パラレル排他的論理和演算された(parallel XORed)乱数生成ステージを含むRNGを概略的に示すブロック図である。
【
図5】FIG5A~FIG5Bは、本発明の実施形態に係る、カスケードされた乱数生成ステージを含むRNGを概略的に示すブロック図。
【
図6】FIG6は、本発明の一実施形態に係るランダム性が強化されたRNGを概略的に示すブロック図である。
【
図7】FIG7は、本発明の一実施形態に係る駆動強度較正(drive strength calibration)機能を有するRNGを概略的に示すブロック図である。
【
図8】FIG8は、本発明の一実施形態に係る、シフトレジスタ(shift register)を用いた駆動強度較正機能を有するRNGを概略的に示すブロック図である。
【
図9】FIG9は、本発明の実施形態に係る、セルフジッタクロック信号を有すRNGを概略的に示すブロック図である。
【
図10】FIG10は、本発明の実施形態に係る、セルフジッタクロック信号を有すRNGを概略的に示すブロック図である。
【発明を実施するための形態】
【0015】
以下、本発明について、図に示す実施形態に基づいて説明する。
【0016】
本明細書で説明される本発明の実施形態は、乱数生成のための改善された方法および回路を提供する。本明細書で開示されているRNGは、例えば暗号操作を実行するシステムや乱数を使用する他のアプリケーションで使用できる。また、本書で説明するRNGは、小型且つ高速で、拡張性があるため、高速乱数(high rate of random numbers)を必要とする低コストで低消費電流のシステムにとって特に魅力的である。
【0017】
いくつかの開示された実施形態において、乱数生成回路は、バックツーバック方式で接続されたインバータのペア(NOTゲート)を含。即ち、各インバータの入力は他のインバータの出力に接続されている。インバータのペアーの間にスイッチが接続されている。スイッチが閉じられた時(ON)に、インバータはメタステーブル状態になり、その出力が、論理「0」を表す電圧と論理「1」を表す電圧との間にある電圧範囲内でドリフトするか、又はワンダリング(ふらつく)するようになる。一方、スイッチを開いた時(OFF)に、インバータがメタステーブル状態から解放されて双安定状態に移行されるようになる。
【0018】
双安定状態に移行されると、一方のインバータの出力が論理「1」で安定し、もう一方のインバータの出力が論理「0」で安定する。ただし、どのインバータが論理「1」を出力し、どのインバータが論理0」を出力するかの選択はランダムに行われ、スイッチが開けた瞬間のインバーターの出力における瞬時アナログ電圧に依存される。従って、スイッチを開閉するたびに、上記インバータのペアがランダムなバイナリ値を生成する。そして、いずれかのインバータの出力を使用してランダム値を抽出することができる。
【0019】
また、いくつかの実施形態では、RNGは、例えばクロック信号を使用してスイッチを交互に開閉する制御ロジックをさらに備え、一体のインバータから生成されたランダム値のシーケンスを出力する。
【0020】
ここでは、短絡されたバックツーバック式インバータのビルディングブロックに基づく様々RNGの構成について説明する。いくつかの開示された構成では、論理回路は複数のランダム値を蓄積することによりランダム性を強化することができる。他の開示された構成では、カスケードされたインバータを二対以上含む。さらに他の実施形態では、インバータの出力は、スイッチを切り替えるために使用されるセルフジッター交代信号(self-jittering alternate signal)を導出するために使用される。この乱数生成スキームでは、インバータのメタステーブル状態とスイッチを切り替える交代信号によって生成されたタイムジッタの両方によって導入されたノイズによって、ランダム性を高めることができる。
【0021】
また、いくつかの実施形態では、RNGは、より良いランダム性を実現させるために、インバータの駆動強度を較正する較正回路を含む。しかし、実際、多くのアプリケーションでは、短絡方式自体には、インバータ間の不整合を補償する固有の自己校正特性を備えているため、上記ような校正回路は必要ない。
【0022】
また、本発明に開示された乱数生成スキームは簡単に実現でき、多くのアプリケーションで十分な程度のランダム性を提供できる。このように、本発明に開示された乱数生成回路は簡単であるため、例えば100Mbps以上の高速動作を対応できる。
【0023】
以下、バックツーバック式インバータによる断続的な短絡(intermittent shorting)を利用したRNGについて説明する。
【0024】
図1は、本発明の一実施形態に係るRNG20を概略的に示すブロック図である。
図1に示すように、RNG20は入力としてアナログノイズを受信し、このノイズを使用して出力としてランダムビットのシーケンスを生成する。また、上記ノイズは、例えば、抵抗器全体の熱ノイズ、宇宙線や電磁放射、既存のデジタルやアナログ回路の動作、又はリング発振器などのノイズ発生器回路によるノイズなど、如何なる適切なノイズ源からのもので有り得る。また、上記ノイズは、適切なハイパスフィルターによるフィルター処理で、後続のノイズサンプル間の相関性を減らすことができる。
【0025】
本実施例では、RNG20は、アナログノイズからランダムビットを生成するサンプリング回路24と、ランダムビットのランダム性を高める後段処理回路28と、を含む。別の実施形態では、後段処理回路28を省略してもよい。その場合、サンプリング回路24によって生成された出力ビットはRNG20の出力として機能する。
【0026】
サンプリング回路24は、インバータのペア(論理NOTゲート)32A、32Bを含む。この2つのインバータはバックツーバック方式で接続されている。すなわち、インバータ32Aの出力はインバータ32Bの入力に供給され、インバータ32Bの出力はインバータ32Aの入力に供給される。アナログ入力ノイズは、このバックツーバック接続上の任意の指定ポイントに印加できる。スイッチ36は、バックツーバック接続されたインバータの間に接続されており、クロック信号CLKによって駆動される。
【0027】
いくつかの実施形態では、アナログノイズは適切な回路によって生成される。他の実施形態では、例えば、電磁フィールド、宇宙放射、および/または近くの信号への容量性カップリングを介して、環境から収集される自然ノイズなと、上記アナログノイズとしても十分なり得る。
【0028】
また、いくつかの実施形態では、論理素子、例えばバッファ又はインバータは、サンプリング回路24の出力に(例えば、サンプリング回路24の出力と後段処理回路28の入力との間のDOライン上に)配置される。スイッチ36が閉じられて論理素子の出力が論理「0」又は論理「1」にある場合、この論理素子を調整することで入力におけるメタステーブル状態を解決できる。具体的には、例えば、非対称のNMOS及びPMOS属性を持つインバーターを使用して実現できる。
【0029】
FIG1の下部 は、サンプリング回路24のより詳細な回路実現を具体化したものである。FIG1に示すように、インバータ32Aは、正の金属酸化物半導体電界効果トランジスタ(PMOSFET、または簡略してPMOS)P1およびNMOSFET N1(簡略してNMOS)を使用して実現されている。インバータ入力は、P1およびN1のゲートに適用される。P1のソースピンは電源電圧VCC に接続され、N1のソースピンはアースに接続される。P1のドレーンピンはN1のドレーンピンに接続されており、このポイントはインバータ出力としても使用される。インバータ32Bは、PMOS P2 と NMOS N2 を使用して同様の方法で実現される。スイッチ36は、FET(この例では NMOSだが、PMOSも構成する場合がある )を使用して実現されている。このFETのゲートは、クロック信号CLKによって駆動され、そのソースとドレインがインバータのペアを介して接続されている。
【0030】
現在の例では、クロック信号が高い場合はスイッチ36が閉じ、クロック信号が低い場合は開いている。スイッチ36が閉じている場合、インバータは短絡している。つまり、各インバータの出力が入力(および他のインバータの入力および出力)に短絡している。このような場合(クロック高間隔)、インバータ32Aと32Bはメタステーブル状態にあり、論理「0」を表す電圧と論理「1」を表す電圧の間にある電圧範囲で出力が変化する。平均すると、各インバータの出力電圧は論理「0」を表す電圧と論理「1」を表す電圧の中間付近になるが、アナログノイズであるために、ある時点での実際の瞬間電圧はランダムに変化することがある。
【0031】
(現在の例ではクロックLowに移行している)スイッチを開くと、インバータがメタステーブル状態から双安定状態に解放される。双安定状態に入ると、インバータ32Aの出力は、スイッチ36が開いた時点の瞬間的な電圧値に応じて、双安定でランダム状態(論理「1」または論理「0」)に収束する。インバータ32Bの出力は反対の状態に収束する。2つのインバータは、スイッチ36が再び閉じるまで(クロック信号CLKの次の立ち上がりエッジでの現在の例)、これらの安定した出力状態を維持する。
【0032】
したがって、クロックLow間隔ごとに、各インバータの出力はそれぞれのランダムなバイナリ値を提供する。現在の例では、必ずしもそうではないが、ランダムなバイナリ値はインバータ32A の出力から取得される。
【0033】
クロック信号CLKには任意の適切なクロックレートを使用できる。1つの実施形態では、クロック周波数は200MHzの順序である。クロック信号は正確である必要がないため、単純なクロック生成回路(リング・オシレーターなど)を使用して生成することができる。
【0034】
上記の短絡バックツーバックインバータ方式は、2つのインバータの駆動強度間の不一致を可能にするための内蔵補正を提供する。FIG1の下部を参照した場合 、スイッチ36を開くと、インバータ32Aと32Bが収束する状態は、drive_strength(N1)+drive_strength(P2)とdrive_strength(N2)+drive_strength(P1)の間の競合によって異なる。したがって、例えば、最初の順序の不一致では、drive_strength(N1)>drive_strength(N2)およびdrive_strength(P1)>drive_strength(P2)が同じ比率で補正される。
【0035】
そのため、多くのアプリケーションでは、較正なしで達成されたランダム性で十分である。たとえば、発明者が行ったコンピュータシミュレーションでは、インバータ32Aと32B間の駆動強度が 5%不一致であってもランダム性が高く、各インバータ内のPMOSトランジスタとNMOSトランジスタ間の駆動強度が50%不一致であることが示されている。シミュレーションでは、公称電圧レベルはVDD=1.2Vと仮定され、噴射ノイズレベルは±25mVであった。ただし、必要に応じて、追加の較正回路を追加することもできる。例えば、以下のFIG7を参照する。
【0036】
ランダムなバイナリー値のシーケンスは、後段処理回路28に提供される(クロックサイクルごとに1つ)。FIG1において、後段処理回路28は、入力(D)、出力(Q)、および反転出力(上にラインを引いたQ)を持つDフリップフロップ(D-FF)40で構成されている。反転出力(上にラインを引いたQ)は入力Dに短絡する。ランダムデータ値はD-FFのクロック入力(CP)に適用される。D-FF 40の出力Qは、DOのサンプリングレートよりも低いレートでサンプリングされる。例えば、1/1/4 または1/16 の係数やその他のフラクションによってサンプリングされる。このようにして、D-FF40はランダムなバイナリ値を蓄積し、生成されたランダムシーケンスのランダム性を向上させる。出力Qは回路28(およびRNG20全体)の出力として機能する。
【0037】
ロジック回路は、スイッチ36を駆動するクロック信号CLKにノイズを適用する(例えば、スイッチの実現に使用するFETのゲートにノイズを適用する)。その結果、ゲートからのノイズが容量性カップリング(スイッチ36のゲートと他のピンの間)を介してインバータに伝達される可能性がある。さらに、また、あるいは、クロック信号のノイズにより、スイッチを閉じるタイミングと開くタイミングが完全に周期的ではなく、むしろタイムジッタが含まれている。これらの効果は、出力ランダムビットのランダム性のレベルを高めるのに役立ち、また、回路が周囲のコンポーネントのデータトランジションに対してあまり敏感でないようにする。
【0038】
また、スイッチ36(ゲートのクロック信号に必ずしも該当しない)にノイズを加える他の形態を使用することもできる。具体例では、リング・オシレータ(リングに接続された奇数のインバータ・ステージで構成)を使用してこのノイズを発生させる。リング・オシレータの各インバータ・ステージは、インバータ32A、32B、またはスイッチ36に接続されたネットに電気的に(抵抗、コンデンサー、または他のいずれかを介して)結合でき、全体的なノイズに寄与し、非常に高いノイズ・レベルを実現する(インバータ32Aおよび32Bのトランジション電圧の順序)。また、スイッチ36にノイズを適用したり、スイッチ36を介してノイズを発生させる必要はない。図に示すように、ノイズはインバータに直接適用される場合がある。また、電源ライン、基板、またはその他のソースからノイズが発生することもある。
【0039】
一部の実施形態では、インバータ32Aおよび32Bは、メタステーブル状態でのリーク電流を低減するために、高スレッショルド電圧(HVT)インバータとなっている。スイッチ36は、スイッチング速度を向上させるために、強力な低スレッショルド電圧(LVT)NMOSで構成される場合もある。
【0040】
代替ランダム性強化スキーム
【0041】
FIG2AとFIG2Bは、現在の発明の代替実施形態に従って、代替後段処理スキームを持つRNGを図示したブロック図である。FIG2Aでは、後段処理はXORゲート44およびオプションの遅延素子48によって実行される。FIG2Bでは、後段処理はXORゲート56とD-フリップフロップ52 によって実行される。フリップフロップ52はクロック信号でクロックされる。XORゲート56は、フリップフロップ52のフィードバック・ループ内に配置される。
【0042】
通常、スイッチ36とクロックライン遅延は、D型フリップフロップ52がD型フリップフロップ52の反転された前の出力XOされたインバータ32Bの出力の双安定状態をサンプリングするように設定される。フリップフロップ52の前の出力信号の非反転信号を使用したXOR演算、または線形フィードバック・シフト・レジスター(LFSR)などより高度なフィードバック方式を実行するXOR演算も適用可能である。
【0043】
どちらの後段処理方式も、ランダム性を高めるために複数のランダムビット値を蓄積するために使用され、FIG 1の後段処理回路28を置き換えることができる。いずれの方式でも、ランダム性を高めるために、出力はクロック信号CLKのレートよりも低いレートでサンプリングされることがある。
【0044】
FIG3は、現在の発明の実施形態に応じて、機能フリップフロップ(FF)と統合されたRNGを図示したブロック図である。この実現では、公開されたRNGスキームは機能フリップフロップ60と統合されており、場合によってはFFゲートの一部を共有する。「機能フリップフロップ」という用語は、このFFの入力(D)および出力(Q)がホストシステムの機能信号であることを意味する。インバータ32Aおよび32B、スイッチ36およびFF60に加えて、この回路はクロック信号CLKによってクロック駆動されるマルチプレクサ MUX)64で構成されている。
【0045】
回路の出力(Qoutと表示)は、時間の関数としてFIGの下部に示されている。ここに示すように、各クロックサイクルはそれぞれ「RNG時間間隔」とそれに続く「機能時間間隔」で構成される。RNG時間間隔では、MU 64がRNG出力を選択するため、Qoutの値はランダムになる。機能時間間隔では、MUX64がFF出力を選択するため、Qoutの値は機能FF60の出力になる。つまり、 Qoutは、機能出力信号の値とタイムインターリーブされたランダム値で構成される。
【0046】
FIG3の回路は、たとえば、ホストシステムでのDPA(電力差分解析)攻撃など、サイドチャネル攻撃を緩和する場合に役立つ。機能データとランダムデータを多重化して攻撃を緩和するその他の側面については、2018年11月18日に提出された米国特許申請16/194,342で取り上げられ、「小規模オーバーヘッドのランダム事前課金を使用したサイドチャネル攻撃の緩和」というタイトルで現在の特許申請の担当者に割り当てられ、ここでの開示が参考にして組み込まれている。
【0047】
FIG4AとFIG4Bは、現在の発明の実施形態に従って、並列XORされた乱数生成ステージで構成される 乱数生成を図示したブロック図である。FIGに示すように、 乱数生成ステージはFIG1のサンプリング回路24に類似している。XORゲートは、乱数生成ステージの出力間でXOR を実行し、ランダム出力 DO を生成する。FIG4Aでは、1つの乱数生成ステージはクロック信号CLKによってクロックされ、もう1つの乱数生成ステージはクロック信号CLKの反転によってクロックされる。FIG4B、両方の乱数生成ステージは、クロック信号CLKの同じ位相でクロックされる。
【0048】
パラレルXOR演算スキームは、単一乱数生成ステージのランダム性に比べてランダム性のレベルを高める。FIG4AとFIG4Bの構成は、例えば、2つの乱数生成ステージを示す。代替実施形態では、任意の適切な数の乱数生成ステージを並行して XORed することができる。また、その他の適切な乱数生成ステージ構成(FIG2BまたはFIG2A)をXORedにすることができる。FIG1、FIG2AおよびFIG2Bの累積スキームとの比較では、パラレルXOR演算ではダウンサンプリングは必要ないが、この利点はハードウェアの二重化に伴うものである。
【0049】
FIG5AおよびFIG5Bは、現在の発明の実施形態に応じて、カスケード乱数生成ステージで構成される乱数生成を図示したブロック図である。これらのスキームは、1つの乱数生成ステージのランダム性に比べて、ランダム性のレベルを高めるもう1つの方法を提供する。
【0050】
これらのカスケード方式では、1つの乱数生成ステージの出力(DO)が、カスケード内の次の乱数生成ステージのクロック信号(CLK)として使用される。FIGに示すように、各乱数生成ステージはFIG1のサンプリング回路24に類似している。FIG5Bでは、各乱数生成ステージはFIG2AのRNGに類似している。
【0051】
FIG5AとFIG5Bの構成は、例えば、2つのカスケード乱数生成ステージを表現する。代替実施形態では、任意の適切な数の乱数生成ステージをカスケードできる。また、その他の適切な 乱数生成ステージ構成(FIG2B)をカスケード接続できる。カスケードされたスキームでも、ハードウェアは複製される。一方、ダウンサンプリングなしでランダム性が向上し、元のクロックレートを維持する。
【0052】
FIG6は、現在の発明の別の実施形態に従って、ランダム性が強化されたRNG100を図表化したブロック図である。この設定は、RNG出力のランダム性レベルを上げるもう1つの方法である。
【0053】
現在の例では、RNG100は乱数生成ステージ102の多元性で構成されている。任意の数の 乱数生成ステージ102を使用できる。各乱数生成ステージ102は、上記で説明したように、バックツーバックインバータのペアとスイッチで構成されている。乱数生成ステージは、XOR演算(FIG4AまたはFIG4B)または各乱数生成ステージ102を後段処理装置28に接続する。各乱数生成ステージ102には、それぞれのスイッチをクロックするクロック入力信号CLK、外部ノイズを受信するための「A」入力、およびランダムビットを出力するための「DO」出力がある。
【0054】
RNG100はさらに、インバータ108のチェーンを駆動するリング・オシレータ (RO)104で構成されている。各乱数生成ステージ102の「A」入力は、容量性カップリングを介してインバータチェーンの選択されたタップに結合される。したがって、各乱数生成ステージ102は、外部ノイズとして機能するRO信号の遅延または反転レプリカを受信する。代替実施形態では、RNG100は複数のROs104で構成され、通常は異なる周波数を持ち、各ROがそれぞれのインバータ108 のチェーンを駆動する。インバータに替わり、バッファを使用することもできる。
【0055】
RNG100は、遅延素子116のチェーンを駆動するクロックソース112も構成されている。チェーンの各タップは、特定のクロック位相を生成する(φで表示)。各乱数生成ステージ102の「CLK」入力は、遅延素子のチェーンの選択されたタップに接続される。つまり、選択されたクロック位相によってクロックされる。
【0056】
ノイズとクロック信号の複製が異なるさまざまな乱数生成ステージのクロックおよび外部ノイズ入力を駆動することで、 乱数生成出力全体のランダム性レベルが向上する。一部の実施形態では、「CLK」と「RO」の1つだけが複数のタップで構成される。CLKはROに非同期である場合もある。複数のROが実現されている場合、その周波数は非同期である。一部の実施形態では、 LFSRの出力からクロックを取得するなど、ROおよびCLKの少なくとも1つが意図的なジッタで実現される。
【0057】
オプションの駆動強度較正
【0058】
FIG7は、現在の発明の具体化に従って、駆動強度較正を伴うRNGを図示したブロック図である。この例では、RNGは、上記で説明したように、バックツーバック短絡インバータ32Aおよび32Bで構成されている。さらに、RNGは、インバータにそれぞれ結合された駆動強度較正回路66のペアで構成されている。
【0059】
各駆動強度較正回路66は、フィルタ68と制御回路72で構成されている。フィルター68ローパスは、インバータの出力で電圧をフィルタリングする。フィルターされた出力電圧に基づいて、制御回路72はインバータの駆動強度を調整する。2つの駆動強度較正回路66は互いに独立して動作する。
【0060】
駆動強度較正回路66の実現例をFIGの下部に示す。この例では、各フィルター68は抵抗コンデンサ(RC)フィルターで構成され、各制御回路72はトランジスタで構成されている。トランジスタはそれぞれのインバータのNMOSのバイアスを調整し、たとえば、ある時点で、バランスの取れていないRNGサンプルにより、P1 N1インバータの平均出力が低下し、結合コンデンサCの電圧が降下して、N1ソースピンとグラウンド間の抵抗が大きくなり、「0」を駆動する能力が低下する。「P1 N1」インバータの平均電圧が上昇する。逆も同様である。同様に、「P2 N2」プロセスでも同じプロセスが発生する。
【0061】
FIG7の例では、インバータ32Aと32Bの両方が較正される。別の実施形態では、インバータの1つのみが較正され、その場合は回路66の1つが省略される。
【0062】
FIG8は、現在の発明の別の実施形態に従って、シフトレジスター76を使用した駆動強度較正付きRNGを図示したブロック図である。この代替較正スキームでは、シフトレジスター76はQ[N-1:0]と呼ばれるデジタルワードを保持する。このワードは、インバータ32Aおよび32BのNMOS トランジスタにそれぞれ適用される較正値を指定する。FIGの下部に示すように、N個のトランジスタのスタックが互いに並列に接続され、各インバータのNMOSに結合されている。各トランジスタのゲートは、そのインバータのコントロールワードのそれぞれのビットによって駆動される。一方のインバータはコントロールワードの値で較正され、もう一方のインバータはこの値の逆で較正される。FIG8の例では、インバータ32Aと32Bの両方が較正される。別の実施形態では、インバータの1つのみが較正される。
【0063】
例えばFIG7またはFIG8のスキームを使用して駆動強度較正を実行する場合、駆動強度制御はプロセスごとに調整できる。
【0064】
セルフジッタリングクロック信号を備えたRNG
【0065】
FIG9は、現在の発明の具体化に従って、セルフジッタクロック信号を持つRNGを図示したブロック図である。この実施形態では、スイッチ36をトグルさせる交流信号(CLK)は、信号トランジション時間にランダムジッタを発生させる方法で、2つのインバータの出力からRNG内に導出される。
【0066】
セルフジッタークロック信号は、何らかのシステムクロックでサンプリングされた場合(後段処理後の場合もある)、出力ビットのランダム性を改善するのに役立つ。このシステムクロックのレートがCLKよりもかなり低い場合、ランダム性の改善はさらに大きくなる。セルフジッタークロック信号によって得られるランダム性の改善は、上記の長さで記述された短絡バックツーバックインバータのランダム性に加えて行われる。
【0067】
FIG9のRNGは、上記の実施形態のように、バックツーバックインバータ32Aと32B、およびスイッチ36で構成されている。現在の実施形態では、ポイント「A」および「B」(2つのインバータの瞬間出力電圧)の電圧が、またはゲート80のそれぞれの入力にフィードバックされる。
【0068】
ORゲート80の出力には、ANDゲート84の1つの入力が提供され、もう1つの入力はイネーブル信号によって駆動される。およびゲート84はオプションで、RNGを選択的に有効または無効にするために使用する。次の説明では、ENABLE信号が「1」であることを前提としている。したがって、ORゲート80の出力は、ANDゲート84の出力にそのまま反映される。ANDゲート84の出力は遅延素子88によって遅延される。遅延素子88の出力は、スイッチ36に供給されるCLK 信号である。遅延素子88もオプションであり、一部の実施形態では省略できる。
【0069】
上記の回路は、スイッチ36をトグルさせる交流クロック信号CLKを生成する。前述のように、インバータの出力「A」および「B」は、またはゲート80の入力にフィードバックされる。ただし、従来のOR ゲートとは異なり、ORゲート80では入力が論理「1」として解釈されるのは、その電圧が論理「1」を表す電圧に近い場合だけである。それ以外の場合、つまり、「1」と「0」を表す電圧範囲のほとんどの電圧範囲で、ゲート80は入力を論理「0」として解釈する。特に、インバータ32Aと32B がメタステーブル状態の場合、 ORゲート80への「A」と「B」入力は論理「0」として解釈される。
【0070】
たとえば、論理「0」が0Vの電圧で表され、論理「1」が1.2Vの電圧で表される場合を考える。従来のORゲートとは異なり、0.6V未満の電圧は「0」と見なされ、0.6Vを超える電圧は「1」と見なされる。または、ゲート80は、電圧が1Vを超える場合は特定の入力を「1」と見なし、それ以外の場合は「0」と見なす。または、他の適切なしきい値を使用することもできる。通常、使用されるしきい値は、「1」を表す電圧と「0」を表す電圧の中間点よりも「1」を表す電圧に近い値である。
【0071】
スイッチ36が開くと(CLKが論理「1」から論理「0」になる)、ポイント「A」と「B」のいずれかの電圧が任意の電圧から「1」を表す電圧に移行し、もう一方のポイントの電圧が任意の電圧から「0」を表す電圧に移行する。これらのトランジションの持続時間は、スイッチ36が開いた時点での「A」および「B」の実際の電圧に応じてランダムに変化する。
【0072】
ORゲート80は、入力「A」と「B」を論理「1」として解釈するのは、入力が「0」と「1」を表す電圧に近づいた場合だけである(中間点を「0」と「1」の間で交差した場合は解釈されない)。したがって、スイッチ36のオープンからゲート80の出力までの時間間隔はランダムになる。この時点で、およびゲート84および遅延素子88の追加(オプション)遅延後、クロック信号CLKは「1」になり、スイッチ 36は閉じられる。
【0073】
スイッチ36が閉じると、ポイント「A」および「B」(2つのインバータの出力)の電圧がメタステーブル状態になる。またはゲート80は、これらの電圧を「0」と解釈し、「0」を出力する。およびゲート84および遅延素子88の追加(オプション)遅延後、クロック信号CLKは「0」になり、スイッチ36 が開く。このプロセスは継続され、前述の説明からもわかるように、スイッチ36はランダムなタイミングジッタを持つレートでトグルされる。
【0074】
通常、またはゲート80は、スイッチ36が閉じている場合(インバータ32Aおよび32Bが短絡している場合)、ORゲートの両方の入力(インバータの断続的なメタステーブル出力)が「0」と確実に解釈されるように設計されているため、ORゲートの出力は「0」で安定している。ORゲートは通常、これらの断続的な値によって過剰なリーク電流が発生しないように実現される。以下に説明するように、DLY88の遅延は、異なる立ち上がり時間と立ち下がり時間の遅延を持つように設計されている場合がある。特に、スイッチ36を閉じた後、「A」および「B」がメタステーブル状態になるように遅延を設計することができる。
【0075】
FIG9の下部は、上記の要件を満たしているORゲート80の実現例を示している。この例では、 ORゲートは、1組の強PMOSトランジスタ92と1組の弱NMOSトランジスタ96を使用して実現されている。ここで、「弱トランジスタ」という用語は、トランジスタの動作を引き起こすために大きなゲート電圧が必要であることを意味する(つまり、入力を「1」と解釈する)。また、その逆も同様である 。
【0076】
たとえば、弱NMOS は、チャネル長Lまたはチャネル幅Wが大きい高スレッショルド電圧(HVT)トランジスタ、またはその両方を構成できる。同じトークンを使用すると、強PMOSは、例えば、チャネル長Lおよび/またはチャネル幅Wが大きい低スレッショルド電圧(LVT)トランジスタで構成される。追加のシリアル・コンポーネント(抵抗器、トランジスタ、ダイオードなど)を各NMOS96デバイスのソースとアースの間に挿入できる。この実現によりNMOS96のデバイスによる論理 「1」の認識がさらに弱くなる。この構成では、入力「A」と「B」の両方が「1」を表す電圧に近い場合にのみ、ゲート80の出力が「1」になる。
【0077】
FIG9の例では、交流クロック信号CLKは、上記で説明したように、非従来型またはゲートを使用して、ポイント「A」および「B」の電圧から得られる。代替実施形態では、ORゲートを同等の特性を持つNANDゲートに置き換えることができる。
【0078】
フィードバック経路の遅延(ゲート80を介してポイント「A」および「B」から、ゲート84を使用している場合はゲート88、スイッチ36のゲートまで)は、通常、スイッチ36の開閉時ポイント「A」および「B」の電圧が安定するのに十分な大きさである必要がある。一部の実施形態では、閉じたスイッチ36(「0」から「1」へのCLK)と開いたスイッチ36(「1」から「0」へのCLK)に異なる遅延が適用される。このような非対称遅延は、サイクルタイム(ビットレート)を損なうことなく、スイッチの開閉時の安定化を可能にするのに役立つ。
【0079】
FIG10は、現在の発明の具体化に従って、セルフジッタクロック信号を持つRNGを図示したブロック図である。乱数生成素子の一部、すなわちインバータ32Aおよび32B、スイッチ36、遅延素子88およびゲート84は、FIG9の乱数生成のものと類似している。しかし、現在の実施形態では、FIG9のゲート80ではなく、RNGは2つのインバータ100と104、およびXNORゲート108 (NORまたは同等のXOR+NOTを除く)で構成される。インバータ100および104への入力は、両方ともポイント「A」から取得される。(または、両方の入力をポイント「B」から取得できる)。
【0080】
FIG10の実施形態では、インバータ100は、強PMOSと弱NMOSを使用して実現されている。一方、インバータ104は、弱PMOSと強NMOSを使用して実現されている。インバータ32Aと 32Bが双安定状態の場合、インバータ100と104の出力(XNORゲート108の入力)は同じ論理状態(「1」または両方「0」)になる。その結果、XNORゲート108の出力は「1」になる。インバータ 32Aと32Bがメタステーブル状態の場合、インバータ100と104の出力(XNORゲート108の入力)は反対の論理状態(1つが「1」、もう1つが「0」)になる。その結果、XNORゲート108 の出力は「0」になる。
【0081】
上記の説明からわかるように、インバータ100および104およびXNORゲート108の動作は、FIG9のORゲート80の動作と論理的に同等である。FIG10とFIG9との違いは、インバータ32Aと32Bの1つ出力だけ(つまり、ポイント「A」またはポイント「B」だけ)がセルフジッタクロックの生成に使用されることにある。
【0082】
また、インバータ32Aおよび(または)インバータ32Bの出力から交流クロック交互信号CLK(self-jittering alternating CLK signal)を生成する他の適切な回路を使用することもできる。
【0083】
その他の実施形態およびバリエーション
【0084】
FIG1、2A、2B、3、4A、4B、5A、5B、6~10に示すRNG構成は、概念を明確にするために純粋に示された構成例である。他の実施形態では、他の適切な構成を使用することができる。これらのFIGおよび代替実施形態では、インバータ32A、32B、およびスイッチ36以外の回路要素を総称して「論理回路」と呼ぶ。その他の可能な機能の中で、ロジック回路はスイッチを交互に閉じて開く(クロック信号を使用するなど)ように構成され、インバータからランダムな値を出力する。FIGのように実施されている。例えば、ロジック回路はスイッチのトグルに使用される交流信号を生成する。ロジック回路の他の機能は、ランダム性を高めるなど、さまざまな後段処理を構成することができる。
【0085】
開示されたRNGは、1つまたは複数のディスクリート・コンポーネント、1つまたは複数の特定用途向け集積回路(ASIC)、1つまたは複数のフィールドプログラム可能ゲートアレイ(FPGA)など、適切なハードウェアを使用して実現することができる。
【0086】
このように、上記の実施形態が例として挙げられており、現在の発明は、特に下文で示され、また、下文で示されているものに限定されていないことが認められる。むしろ、現在の発明の範囲には、上文に説明された様々な特徴および前述の説明を読めばその技術に熟練した人物には想起され、かつ以前の技術では開示されていないそれに関するバリエーションや変更の組み合わせと副組み合わせの両方が含まれる。すべての用語が現在の仕様で明示的または黙示的に行われた定義に矛盾するような仕方でこれらの組み込まれた文書で定義されている限り、現在の仕様の定義のみが考慮されるべき場合を除き、現在の特許申請書に参照して組み込まれた文書は申請書の不可分の一部と考慮されるものとされる。
【符号の説明】
【0087】
100、104、32A、32B…インバータ
102…乱数生成ステージ
108…インバータチェーン
112…クロックソース
116…遅延素子チェーン
20…RNG
24…サンプリング回路
28…後段処理回路
36…スイッチ
40、52…D型フリップフロップ
44…XORゲート
48、88…遅延素子
56…XORゲート
60…機能フリップフロップ
64…マルチプレクサー(MUX)
66…駆動強度較正回路
68…フィルター
72…駆動強度制御回路
76…シフトレジスタ
80…ORゲート
84…ANDゲート
92…強PMOS
96…弱PMOS
CLK…クロック信号