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

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

▶ 新唐科技股▲ふん▼有限公司の特許一覧

特許7458427攻撃耐性のリングオシレータおよび乱数発生器
<>
  • 特許-攻撃耐性のリングオシレータおよび乱数発生器 図1
  • 特許-攻撃耐性のリングオシレータおよび乱数発生器 図2
  • 特許-攻撃耐性のリングオシレータおよび乱数発生器 図3
  • 特許-攻撃耐性のリングオシレータおよび乱数発生器 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-21
(45)【発行日】2024-03-29
(54)【発明の名称】攻撃耐性のリングオシレータおよび乱数発生器
(51)【国際特許分類】
   G09C 1/00 20060101AFI20240322BHJP
   G06F 7/58 20060101ALI20240322BHJP
   H03K 3/84 20060101ALI20240322BHJP
【FI】
G09C1/00 650B
G06F7/58 680
H03K3/84 Z
【請求項の数】 13
(21)【出願番号】P 2022008667
(22)【出願日】2022-01-24
(65)【公開番号】P2022119190
(43)【公開日】2022-08-16
【審査請求日】2022-01-24
(31)【優先権主張番号】17/166012
(32)【優先日】2021-02-03
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】508197206
【氏名又は名称】新唐科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】110000291
【氏名又は名称】弁理士法人コスモス国際特許商標事務所
(72)【発明者】
【氏名】アロン,モシェ
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2016-010004(JP,A)
【文献】特開平09-146761(JP,A)
【文献】特開平02-128218(JP,A)
【文献】米国特許出願公開第2009/0248771(US,A1)
【文献】宮崎武 他,ロジスティック写像による擬似乱数生成器の乱数種への全数探索攻撃について,電子情報通信学会技術研究報告,2005年11月08日,第105巻 第336号,pp.29-33
【文献】VASYLTSOV, I. et al.,Fast Digital TRNG Based on Metastable Ring Oscillator,Lecture Notes in Computer Science,Vol.5154,2008年,pp.164-180
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
G06F 7/58
H03K 3/84
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
カスケード接続された複数のインバータ、
前記カスケード内の少なくともそれぞれの第1および第2の点から取得された少なくともそれぞれの第1および第2の出力信号をフィードバックするように構成された、少なくとも第1および第2のフィードバックタップ、
前記第1および前記第2のフィードバックタップを前記カスケードの入力に多重化するように構成されたマルチプレクサ、および
ビットシーケンスを生成し、前記ビットシーケンスを用いて前記マルチプレクサを制御するように構成されたシーケンスジェネレータを含み、
前記複数のインバータ、前記第1のフィードバックタップ、前記第2のフィードバックタップ、および前記マルチプレクサは、均一のユニットゲート遅延を有するNANDゲートを用いて実装され、
(i)前記カスケードの前記入力から前記第1のフィードバックタップを介して前記カスケードの前記入力に戻り、前記複数のインバータ、前記第1のフィードバックタップ、および前記マルチプレクサの第1のグループを含む前記NANDゲートの第1の数、および(ii)前記カスケードの前記入力から前記第2のフィードバックタップを介して前記カスケードの前記入力に戻り、前記複数のインバータ、前記第2のフィードバックタップ、および前記マルチプレクサの第2のグループを含む前記NANDゲートの第2の数は、1より大きい互いに素な関係の数である発振回路。
【請求項2】
前記第1の点は前記カスケードの中間点であり、前記第2の点は前記カスケードの端部である請求項1に記載の発振回路。
【請求項3】
前記シーケンスジェネレータは、前記マルチプレクサが、少なくとも前記第1と前記第2のフィードバックタップ間で交互に切り替わるように制御するように構成される請求項1に記載の発振回路。
【請求項4】
前記シーケンスジェネレータは、線形フィードバックシフトレジスタ(LFSR)を含む請求項1に記載の発振回路。
【請求項5】
前記第1の数と前記第2の数は、両方とも奇数である請求項1に記載の発振回路。
【請求項6】
第1の周波数範囲で第1の信号を生成するように構成された第1の発振器、
第2の周波数範囲で第2の信号を生成するように構成され、前記第1の周波数範囲より低い第2の発振器、および
前記第2の信号を用いることによって、前記第1の信号をサンプリングするように構成されたサンプリング回路を含み、
前記第1および前記第2の発振器の少なくとも1つは、
カスケード接続された複数のインバータ、
前記カスケード内の少なくともそれぞれの第1および第2の点から取得された少なくともそれぞれの第1および第2の出力信号をフィードバックするように構成された、少なくとも第1および第2のフィードバックタップ、
前記第1および前記第2のフィードバックタップを前記カスケードの入力に多重化するように構成されたマルチプレクサ、および
ビットシーケンスを生成し、前記ビットシーケンスを用いて前記マルチプレクサを制御するように構成されたシーケンスジェネレータを含み、
前記複数のインバータ、前記第1のフィードバックタップ、前記第2のフィードバックタップ、および前記マルチプレクサは、均一のユニットゲート遅延を有するNANDゲートを用いて実装され、
(i)前記カスケードの前記入力から前記第1のフィードバックタップを介して前記カスケードの前記入力に戻り、前記複数のインバータ、前記第1のフィードバックタップ、および前記マルチプレクサの第1のグループを含む前記NANDゲートの第1の数、および(ii)前記カスケードの前記入力から前記第2のフィードバックタップを介して前記カスケードの前記入力に戻り、前記複数のインバータ、前記第2のフィードバックタップ、および前記マルチプレクサの第2のグループを含む前記NANDゲートの第2の数は、1より大きい互いに素な関係の数である乱数発生器(RNG)回路。
【請求項7】
前記シーケンスジェネレータは、前記マルチプレクサが、少なくとも前記第1と前記第2のフィードバックタップ間で交互に切り替わるように制御するように構成される請求項6に記載のRNG回路。
【請求項8】
前記シーケンスジェネレータは、線形フィードバックシフトレジスタ(LFSR)を含む請求項6に記載のRNG回路。
【請求項9】
(i)カスケード接続された複数のインバータ、および(ii)前記カスケード内の少なくともそれぞれの第1および第2の点から取得された少なくともそれぞれの第1および第2の出力信号をフィードバックするように構成された、少なくとも第1および第2のフィードバックタップを含む回路を動作させるステップ、
シーケンスジェネレータを用いてビットシーケンスを生成するステップ、および
前記ビットシーケンスを用いて少なくとも前記第1および前記第2のフィードバックタップを前記カスケードの入力に多重化するようにマルチプレクサを制御するステップを含み、
前記複数のインバータ、前記第1のフィードバックタップ、前記第2のフィードバックタップ、および前記マルチプレクサは、均一のユニットゲート遅延を有するNANDゲートを用いて実装され、
(i)前記カスケードの前記入力から前記第1のフィードバックタップを介して前記カスケードの前記入力に戻り、前記複数のインバータ、前記第1のフィードバックタップ、および前記マルチプレクサの第1のグループを含む前記NANDゲートの第1の数、および(ii)前記カスケードの前記入力から前記第2のフィードバックタップを介して前記カスケードの前記入力に戻り、前記複数のインバータ、前記第2のフィードバックタップ、および前記マルチプレクサの第2のグループを含む前記NANDゲートの第2の数は、1より大きい互いに素な関係の数である方法。
【請求項10】
前記第1の点は前記カスケードの中間点であり、前記第2の点は前記カスケードの端部である請求項9に記載の方法。
【請求項11】
前記マルチプレクサを制御するステップは、前記マルチプレクサに少なくとも前記第1と前記第2のフィードバックタップ間を交互に切り替えさせるステップを含む請求項9に記載の方法。
【請求項12】
前記ビットシーケンスを生成するステップは、線形フィードバックシフトレジスタ(LFSR)を用いて前記ビットシーケンスを生成するステップを含む請求項9に記載の方法。
【請求項13】
前記第1の数と前記第2の数は、両方とも奇数である請求項9に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データセキュリティに関するものであり、特に、攻撃耐性のリングオシレータ(RO)および乱数発生器(RNG)に関するものである。
【背景技術】
【0002】
乱数生成のための様々な技術が当技術分野で知られている。例えば、暗号攻撃を受けにくい乱数発生器(特許文献1参照)について説明されている。乱数発生器の動作原理は、自走リングオシレータからの可変周波数で動作される疑似乱数発生器の出力の低周波サンプリングに基づいている。
【先行技術文献】
【特許文献】
【0003】
【文献】米国特許第4,905,176号
【発明の概要】
【発明が解決しようとする課題】
【0004】
攻撃耐性のリングオシレータ(RO)および乱数発生器(RNG)を提供する。
【課題を解決するための手段】
【0005】
本明細書で説明される本発明の実施形態は、カスケード接続された複数のインバータ、少なくとも第1および第2のフィードバックタップ、および交互切り替え回路を含む発振回路を提供する。少なくとも第1および第2のフィードバックタップは、カスケード内の少なくともそれぞれの第1および第2の点から取得された少なくともそれぞれの第1および第2の出力信号をフィードバックするように構成される。交互切り換え回路は、少なくとも第1と第2のフィードバックタップ間を交互に切り替えることによって少なくとも第1および第2の出力信号から入力信号を導出し、入力信号をカスケードの入力に印加するように構成される。
【0006】
いくつかの実施形態では、第1の点はカスケードの中間点であり、第2の点はカスケードの端部である。開示された実施形態では、交互切り替え回路は、擬似ランダムスイッチングパターンで少なくとも第1と第2のフィードバックタップ間で交互に切り替わるように構成される。
【0007】
いくつかの実施形態では、交互切り替え回路は、(i)少なくとも第1および第2のフィードバックタップをカスケードの入力に多重化するように構成されたマルチプレクサ、および(ii)ビットシーケンスを生成し、ビットシーケンスによってマルチプレクサを制御するように構成されたシーケンスジェネレータを含む。例示的な実施形態では、シーケンスジェネレータは、線形フィードバックシフトレジスタ(LFSR)を含む。
【0008】
一実施形態では、(i)カスケードの入力から第1のフィードバックタップを介してカスケードの入力に戻るインバータの数、および(ii)カスケードの入力から第2のフィードバックタップを介してカスケードの入力に戻るインバータの数は、両方とも奇数である。一実施形態では、(i)カスケードの入力から第1のフィードバックタップを介してカスケードの入力に戻るインバータの数、および(ii)カスケードの入力から第2のフィードバックタップを介してカスケードの入力に戻るインバータの数は、相互に素数である。
【0009】
本発明の一実施形態によれば、第1の発振器、第2の発振器、およびサンプリング回路を含む乱数発生器(RNG)回路がさらに提供される。第1の発振器は、第1の周波数範囲で第1の信号を生成するように構成される。第2の発振器は、第1の周波数範囲より低い第2の周波数範囲で第2の信号を生成するように構成される。サンプリング回路は、第2の信号を用いて第1の信号をサンプリングすることによって、疑似ランダムデータを出力するように構成される。第1および第2の発振器の少なくとも1つは、カスケード接続された複数のインバータ、少なくとも第1および第2のフィードバックタップ、および交互切り替え回路を含む。少なくとも第1および第2のフィードバックタップは、カスケード内の少なくともそれぞれの第1および第2の点から取得された少なくともそれぞれの第1および第2の出力信号をフィードバックするように構成される。交互切り替え回路は、少なくとも第1と第2のフィードバックタップ間を交互に切り替えることによって少なくとも第1および第2の出力信号から入力信号を導出し、入力信号をカスケードの入力に印加するように構成される。
【0010】
本発明の一実施形態によれば、(i)カスケード接続された複数のインバータ、および(ii)カスケード内の少なくともそれぞれの第1および第2の点から取得された少なくともそれぞれの第1および第2の出力信号をフィードバックするように構成された、少なくとも第1および第2のフィードバックタップを含む回路を動作させるステップを含む方法がさらに提供される。入力信号は、少なくとも第1と第2のフィードバックタップ間を交互に切り替えることによって、少なくとも第1および第2の出力信号から導出される。入力信号はカスケードの入力に印加される。
【0011】
添付の図面とともに以下の詳細な説明および実施例を検討することで、本発明をより完全に理解できる。
【図面の簡単な説明】
【0012】
図1図1は、本発明の実施形態による、攻撃耐性のリングオシレータ(RO)を概略的に示すブロック図である。
図2図2は、本発明の実施形態による、図1のROの動作方法を概略的に示すフローチャートである。
図3図3は、本発明の実施形態による、図1のROによって生成された出力信号を示す図である。
図4図4は、本発明の実施形態による、攻撃耐性の乱数発生器(RNG)を概略的に示すブロック図である。
【発明を実施するための形態】
【0013】
本明細書で説明される本発明の実施形態は、改良されたリングオシレータ(RO)および乱数発生器(RNG)、ならびに関連する方法を提供する。開示されたROおよびRNGは、フォールトインジェクションやその他のサイドチャネル攻撃など、さまざまなタイプのセキュリティ脅威に対して耐性がある。従って、開示された技術は、例えば、乱数生成を含む様々な暗号化アプリケーションに有用である。
【0014】
いくつかの実施形態では、ROは、カスケード接続された複数のインバータを含む。2つのフィードバックタップは、カスケード内の2つの異なる点(例えば、1つはカスケードの端部から、もう1つは中間点から)から取得された2つの出力信号をフィードバックするために接続される。マルチプレクサ(MUX)は、2つのフィードバックタップ間で選択するように構成され、選択されたフィードバックタップをカスケードの入力に接続する。
【0015】
フィードバックタップの1つがMUXによって選択されたとき、ROは特定のループ遅延がある。もう1つのフィードバックタップが選択されたとき、RO回路は異なるループ遅延を有する。MUXのトグルは、リングオシレータのループ遅延を発生させ、それによりその発振周波数が2つのフィードバックタップに関連した2つの値間で交互に切り替わる(alternate)。
【0016】
いくつかの実施形態では、ROは、ビットシーケンスを生成するシーケンスジェネレータを含み、ビットシーケンスは、MUXをトグルする選択信号として用いられる。シーケンスジェネレータは、例えば、疑似ランダムビットシーケンスを生成する線形フィードバックシフトレジスタ(LFSR)を含み得る。RO出力は、カスケード内の任意の適切な点から取得されることができる。
【0017】
上述のように動作するとき、ROは、迅速かつ予測不可能な方法で2つのループ遅延間、従って2つの発振周波数間で交互に切り替わる。このような交互切り替えにより、ROは攻撃に対する耐性が高くなる。
【0018】
以下に説明する実施形態は、例として、主に2つのフィードバックタップを有する構成に言及している。しかしながら、一般に、ROは、2つ以上のループ遅延とそれぞれの発振周波数を交互に切り替えるように多重化された、多数のフィードバックタップを含む可能性がある。
【0019】
本発明のいくつかの実施形態では、開示された交互切り替え周波数のROの設計は、乱数発生器(RNG)のビルディングブロックとして用いられる。例示的な実施形態では、RNGは、高周波信号を生成するように構成された高周波発振器、および低周波信号を生成するように構成された低周波発振器を含む。2つの発振器は、互いに非同期で動作する。RNGは、低周波信号を用いて高周波信号をサンプリングするように構成されたサンプリング回路をさらに含む。サンプリング回路の出力、即ち低周波信号でサンプリングされた高周波信号は、RNGの出力として用いられる。
【0020】
いくつかの実施形態では、RNG内の発振器の一方または両方は、交互の発振周波数を有する開示された設計を用いて実装され得る。このようなRNGは、攻撃に対して非常に耐性が高い。例えば、ROベースのRNGに対して攻撃する従来のタイプは、RO発振周波数に同期したサイドチャネル信号(例えば、電磁信号)を用いる。開示された技術は、そのような攻撃を不可能にする。
【0021】
攻撃耐性のリングオシレータの設計
図1は、本発明の実施形態による、攻撃耐性のリングオシレータ(RO)20を概略的に示すブロック図である。RO20は、さまざまなシステムおよびアプリケーションに用いられることができる。特に、攻撃耐性の乱数発生器(RNG)の設計におけるこのようなROの使用については、以下に詳しく説明する。本発明の一実施形態によるROおよびRNGは、暗号操作を行う安全な集積回路(IC)など、乱数の使用を含む任意の適切なシステムまたはアプリケーションで用いられることができる。
【0022】
RO20は、カスケード接続された複数の論理インバータを含む。本例では、カスケードは24Aおよび24Bで示される2つのセクションで形成され、各セクションはインバータのサブセットを含んでいる。カスケードの入力はP1で示され、セクション24Aの端部の中間点はP2で示され、カスケードの端部はP3で示される。本例では、P3もRO出力となる。また、RO出力はカスケード内の任意の他の適切な点から取得されることができる。
【0023】
RO20はさらに、インバータのカスケード内のそれぞれの異なる点に接続された、26Aおよび26Bで示される2つのフィードバックタップをさらに含む。本例では、フィードバックタップ26Aは、中間点(P2)からの出力信号をフィードバックし、フィードバックタップ26Bは、カスケードの端部(P3)からの出力信号をフィードバックする。
【0024】
インバータおよびフィードバックタップのカスケードに加えて、RO20は、2つのフィードバックタップを交互に切り替えることにより、フィードバックタップ26Aおよび26Bによってフィードバックされる出力信号から入力信号を導出するように構成される「交互切り替え回路」を含む。得られた入力信号は,カスケードの入力、即ち、点P1に提供される。
【0025】
図1の実施形態では、交互切り替え回路は、マルチプレクサ(MUX)28および線形フィードバックシフトレジスタ(LFSR)36を含む。フィードバックタップ26Aおよび26Bは、MUX28のそれぞれの入力に接続される。MUX28の出力は、カスケードの入力(P1に)に接続される。LFSR36の出力は、MUX28を制御するSELECT信号として用いられる。
【0026】
本例では、2つのNANDゲート32Aおよび32BもRO20の動作を選択的に有効または無効にするように、フィードバックパスに配置される。NANDゲート32Aおよび32Bのそれぞれでは、1つの入力がそれぞれのフィードバックタップに接続され、もう1つの入力がENABLE信号に接続される。NANDゲート32Aおよび32Bの出力は、MUX28のそれぞれの入力に接続される。代替の実施形態では、NADAゲート32Aおよび32Bは省略されることができ、その場合、フィードバックタップ26Aおよび26Bは、MUX28の入力に直接接続される。
【0027】
LFSR36は、任意の適切な初期値(「シード」)で初期化されることができる。LFSRは、インバータのカスケードにより生成されたクロック信号でクロックされる。図1の例に見られるように、LFSR36はP3からの出力信号を入力として受信し、この信号をクロックとして用いる。
【0028】
いくつかの実施形態では、各クロックサイクルにおいて、LFSR36は、新しいビット値を疑似ランダム的に生成する。このビット値は、MUX28の2つの入力間で選択するように用いられる。例えば、一般性を失うことなく、LFSR36が「0」値を生成するクロックサイクルでは、MUX28は入力A(従ってフィードバックタップ26A)をカスケードの入力に接続し、LFSR36が「1」値を生成するクロックサイクルでは、MUX28は入力B(従ってフィードバックタップ26B)をカスケードの入力に接続する。または、反対の規則(convention)が用いられることもできる。
【0029】
フィードバックタップ26Aが選択されたクロックサイクルでは、RO20は、フィードバックタップ26Aを介して合計ループ遅延(例えば、P1からP1に戻る)で決定された発振周波数で発振する。図に見られるように、このループ遅延は、以下のコンポーネントの遅延の合計より得られる。
・セクション24A
・NANDゲート32A
・MUX28
【0030】
フィードバックタップ26Bが選択されたクロックサイクルでは、RO20は、フィードバックタップ26Bを介して合計ループ遅延(例えば、P1からP1に戻る)で決定された、異なる(より低い)発振周波数で発振する。これらのクロックサイクルでのループ遅延は、以下のコンポーネントの遅延の合計より得られる。
・セクション24A
・セクション24B
・NANDゲート32B
・MUX28
【0031】
図1の例示的な実施形態では、インバータのカスケードのセクション24Aおよび24B、ならびにMUX28は、NANDゲートを用いて実装される。この実装は、図の底部にある2つの挿入図に示されている。図に示すように、MUX28は、4つのNANDゲート40を用いて実装され、カスケード内の各インバータ(セクション24Aおよび24B)は、それぞれのNANDゲート44を用いて実装され、NANDゲート44の入力は短絡状態になる(shorted together)。
【0032】
本実施形態では、フィードバックタップ26Aが選択されたときの合計ループ遅延は、D1=(N1+3)・Dで得られ、フィードバックタップ26Bが選択されたときの合計ループ遅延は、D2=(N1+N2+3)・Dで得られ、Dは単一のNANDゲートの単位遅延を示し、N1はセクション24Aのインバータの数を示し、N2はセクション24Bのインバータの数を示している。両方のループ遅延の3・D項は、MUX28の遅延(2・Dに等しい)およびNANDゲート32Aまたは32Bの遅延(1・Dに等しい)を計算に入れている。
【0033】
通常、フィードバックタップ26Aが選択されたときにトラバースされたインバータの総数(D1/D)、およびフィードバックタップ26Bが選択されたときにトラバースされたインバータの総数(D2/D)は、両方とも奇数である。いくつかの実施形態では、必ずしもそうではないが、インバータD1/DおよびD2/Dの総数が相互に素数となるように、N1およびN2が選択される。一例では、N1=20およびN2=6であり、D1=23およびD2=29となる。
【0034】
非限定的な例では、D=50pSec、23・D=1.15nS(~896MHzの発振周波数に対応)、および29・D=1.45nS(~689MHzの発振周波数に対応)である。しかしながら、代替の実施形態では、任意の他の適切な値が用いられてもよい。
【0035】
図1に示されたRO20の構成は、単に概念を明確にするために描かれた構成例である。代替の実施形態では、任意の他の適切な構成が用いられ得る。例えば、LFSR36の代わりに、MUX28は、任意の他の適切なシーケンスジェネレータによって制御され得る。MUX28を制御するビットシーケンスは、必ずしも擬似ランダムである必要はない。
【0036】
さらに、代替の実施形態では、RO20は、M個のフィードバックタップ、M>2を含み得る。このような実施形態では、MUX28はM個の入力を含む。シーケンスジェネレータ(例えば、LFSR)が用いられて、M個の入力間で交互に切り替えるマルチビット値を生成し、それによりRNGがM個の異なる発振周波数間で交互に切り替えることができるようになる。
【0037】
図2は、本発明の実施形態による、RO20の動作方法を概略的に示すフローチャートである。この方法は、動作ステップ50で、インバータおよびフィードバックタップ26Aと26Bのカスケードを動作させることから始まる。交互切り替えステップ54において、交互切り替え回路(例えば、LFSR36およびMUX28)は、フィードバックタップ26Aおよび26Bによって提供された2つの出力信号間で交互に切り替わる。入力駆動ステップ58において、MUX28の出力はインバータのカスケードの入力に印加される。
【0038】
図3は、本発明の実施形態による、時間の関数として図1のRO20によって生成された出力信号の例を示す図である。この図は、2つの発振周波数間の交互切り替えを示している。図に示すように、RO出力信号は2つの異なる発振周波数を有する2つのタイプの時間間隔間で交互に切り替わる。
・時間間隔60A、60B、60C、…、間にMUX28が入力A(従ってフィードバックタップ26A)をカスケードの入力に接続し、これにより、RO20は、フィードバックタップ26Aを介したループ遅延によって決定される発振周波数で発振する。
・時間間隔64A、64B、…、間にMUX28が入力B(従ってフィードバックタップ26B)をカスケードの入力に接続し、これにより、RO20は、フィードバックタップ26Bを介したループ遅延によって決定される発振周波数で発振する。
【0039】
時間間隔60A、64A、60B、64B、…の長さは、LFSR36の出力の「0」と「1」のランレングスによって決定されるため、疑似ランダムである。
【0040】
攻撃耐性の乱数発生器設計
上述のように、いくつかの実施形態では、RO20の交互周波数の設計は、乱数発生器(RNG)ののビルディングブロックとして用いられる。
【0041】
図4は、本発明の実施形態による、攻撃耐性の乱数発生器(RNG)70を概略的に示すブロック図である。RNG70は、高周波信号を生成するように構成された高周波RO74、および低周波信号を生成するように構成された低周波RO78を含む。高周波RO74と低周波RO78は、互いに非同期で動作する。いくつかの実施形態では、一方または両方のROは、例えば、熱雑音または任意の他の適切な雑音源に由来するノイズを増幅するアナログ雑音源を用いて、意図的にノイズを発生させる。
【0042】
高周波信号および低周波信号は、低周波信号の周波数が高周波信号の周波数より大幅に低くければ、任意の適切な周波数を有することができる。いくつかの実施形態では、必ずしもそうではないが、高周波信号の周波数はMHzのオーダーであり、低周波信号の周波数はKHzのオーダーである。
【0043】
RNG70は、低周波信号を用いて高周波信号をサンプリングするように構成されたサンプリング回路82をさらに含む。サンプリング回路82の出力は、RNGの出力「RANDOM DATA OUT(ランダムデータ出力)」として提供される。例示的な実施形態では、サンプリング回路82は、低周波信号の立ち上がりエッジで高周波信号をサンプリングする。または、立ち下がりエッジ、または立ち上がりエッジと立ち下がりエッジの両方でサンプリングが用いられることもできる。
【0044】
高周波および低周波発振器に基づくRNGのさらなる態様は、上記で引用した米国特許第4,905,176号に記載されており、2020年8月18日に出願された米国特許出願第16 / 995,951号「Distributed Random-Number Generator(分散乱数発生器)」からの優先権を主張するものであり、引用によって本願に援用される。
【0045】
いくつかの実施形態では、高周波RO74、低周波RO78、またはその両方が、上述の図1の構成を用いて実施され得る。このように、高周波RO74と低周波RO78のいずれかまたは両方が交互に切り替わる発振周波数を有し、RNG70を攻撃に対して耐性があるようにする。2つの発振器の周波数は、任意の時間で、周波数の交互切り替えに関係なく、低周波信号の周波数が高周波信号の周波数より低くなるように選択される。
【0046】
図4に示されたRNG70の構成は、単に概念を明確にするために描かれた例示的な構成である。代替的な実施形態では、任意の他の適切な構成を用いてもよい。例えば、発振器74および78の一方のみがRO20の構成を用いて実施されたとき、他方の発振器は必ずしもリングオシレータである必要はない。
【0047】
様々な実施形態において、開示されたROおよびRNG回路は、任意の適切なハードウェアまたはファームウェアを用いて、例えば、1つ以上のディスクリート部品、1つ以上の特定用途向け集積回路(ASIC)、および1つ以上のフィールドプログラマブルゲートアレイ(FPGA)などを用いて実施され得る。
【0048】
上述の実施形態は、例として引用されており、以下の特許請求の範囲は、上述に具体的に開示および記載された内容に限定されないことに留意されたい。むしろ、本発明の範囲は、上述の様々な特徴のコンビネーションおよびサブコンビネーションの両方、ならびに前述の説明を読んで当業者が知るであろう、先行技術に開示されていないその変形および修正を含む。参照することにより本特許出願に組み込まれた文書は、組み込まれた文書の用語の定義が本明細書で明示的または暗黙的になされた定義と矛盾する場合を除いて、本出願の不可欠な部分と見なされ、本明細書の定義のみが考慮されるべきである。
【符号の説明】
【0049】
20 攻撃耐性のリングオシレータ(RO)
24A、24B セクション
26A、26B フィードバックタップ
28 マルチプレクサ(MUX)
32A、32B NANDゲート
36 線形フィードバックシフトレジスタ(LFSR)
40、44 NANDゲート
P1、P2、P3 点
50、54、58 ステップ
60A、60B、60C、64A、64B 時間間隔
70 乱数発生器(RNG)
74 高周波RO
78 低周波RO
82 サンプリング回路
図1
図2
図3
図4