(57)【要約】  暗号鍵を決定するように構成される電子暗号装置（１００）であって、暗号装置は、  −  登録局面の間に第１のノイジービットストリング（１１２）を作成し、再構成局面の間に第２のノイジービットストリング（１１４）を作成するように構成される物理的複製困難関数（ＰＵＦ）（１１０）と、  −  物理的複製困難関数が正しく機能することを確証するための統計的検定を実行するように構成される統計ユニット（１２０）であって、統計的検定が、ヘルパーデータを用いて物理的複製困難関数のための統計パラメータを計算し、統計的検定が、統計パラメータが統計的検定の基準を満たす場合に正しく機能することを決定する、統計ユニット（１２０）と  を備える。
2018525920.tif 000002
【特許請求の範囲】
【請求項１】
電子暗号装置（１００）であって、
第１の局面の間に第１のノイジービットストリング（１１２）を作成するように構成される物理的複製困難関数（ＰＵＦ）（１１０）と、
第１の局面の間に第１のノイジービットストリングからヘルパーデータを生成するように構成されるヘルパーデータ創成ユニット（１３０）であって、ヘルパーデータが、後の第２の局面の間に、前記ヘルパーデータ、および、ＰＵＦによって作成される第２のノイジービットストリング（１１４）からの第１のノイジービットストリング（１１２）の再構成を許容する、ヘルパーデータ創成ユニット（１３０）と、
物理的複製困難関数が正しく機能することを確証するための統計的検定を実行するように構成される統計ユニット（１２０）であって、統計的検定が、ヘルパーデータを用いて物理的複製困難関数のための統計パラメータを計算し、統計的検定が、統計パラメータが統計的検定の基準を満たす場合に正しく機能することを決定する、統計ユニット（１２０）と
を備える、電子暗号装置（１００）。
【請求項２】
電子暗号装置が登録局面と後の再構成局面とのために構成され、
物理的複製困難関数（ＰＵＦ）（１１０）が、登録局面の間に第１のノイジービットストリング（１１２）を作成し、再構成局面の間に第２のノイジービットストリング（１１４）を作成するように構成され、
ヘルパーデータ創成ユニット（１３０）が、登録局面の間に第１のノイジービットストリングからヘルパーデータを生成するように構成され、ヘルパーデータが、再構成局面の間に、前記ヘルパーデータおよび第２のノイジービットストリング（１１４）からの第１のノイジービットストリング（１１２）の再構成を許容するように構成される、請求項１に記載の電子暗号装置（１００）。
【請求項３】
暗号鍵を決定するように構成され、
再構成局面の間に第２のノイジービットストリング（１１４）およびヘルパーデータから暗号鍵を決定するように構成される鍵導出ユニット（１５４）を備える、請求項２に記載の電子暗号装置（１００）。
【請求項４】
統計的検定が第１の統計的検定（１２２）を含み、統計ユニットが、第１のノイジービットストリングから生成されるヘルパーデータにおいて登録局面の間に第１の統計的検定を実行するように構成され、
電子暗号装置が、第１の統計的検定が物理的複製困難関数が正しく機能することを確証しない場合、登録局面の間に、第１のノイジービットストリングから生成されるヘルパーデータを廃棄し、第１の統計的検定が正しく機能することを確証する場合、ヘルパーデータを記憶するように構成される、請求項２または３に記載の電子暗号装置（１００）。
【請求項５】
第１の統計的検定が、０ビットまたは１ビットについての物理的複製困難関数のバイアスが許容可能なバイアス範囲内であることを確証するように構成される、請求項４に記載の電子暗号装置（１００）。
【請求項６】
ヘルパーデータ創成ユニットが、
エラー訂正反復コードの一続きの反復コード語（２１１−２１５）を選択し、
一続きのうちの各々の反復コード語を、第１のノイジービットストリング（２０１−２０５）の対応する部分で排他的論理和（ＸＯＲ）を取り、それによってヘルパーデータの少なくとも一部を得る
ように構成される、請求項４または５に記載の電子暗号装置（１００）。
【請求項７】
エラー訂正コードが、最も内部のコードが反復コードである連接エラー訂正コードであり、エラー訂正反復コードの一続きのコード語が、連接エラー訂正コードから１つまたは複数のコード語を選択することで選択される、請求項６に記載の電子暗号装置（１００）。
【請求項８】
第１の統計的検定が、
一続きの反復コード語のうちの各々の反復コード語について、前記反復コード語と第１のノイジービットストリングの対応する部分の排他的論理和のハミング重み（２３１−２３６）を決定することと、
決定されたハミング重みから、物理的複製困難関数のバイアスが許容可能なバイアス範囲内にあるかどうかを決定することとを含む、請求項５との組み合わせでの請求項６または７に記載の電子暗号装置（１００）。
【請求項９】
第１の統計的検定が、
上側ハミング重み閾値を上回る、または、下側ハミング重み閾値を下回る決定されたハミング重みの数を計数することと、
前記計数された数が許容される計数されたハミング重みの範囲内にある場合、物理的複製困難関数のバイアスが許容可能なバイアス範囲内にあるかどうかを決定することと
を含む、請求項８に記載の電子暗号装置（１００）。
【請求項１０】
第１の統計的検定が、
一続きの反復コード語のうちの各々の反復コード語について、前記反復コード語と第１のノイジービットストリングの対応する部分の排他的論理和のハミング重み（２３１−２３６）を決定することと、
ｎが反復コード語のビット長である場合に
【数１】
2018525920.tif 000010
以下である各々のハミング重みｗについて、ｗまたはｎ−ｗに等しい決定されたハミング重みの数を計数し、それによってハミング重みの観察された頻度を得ることと、
ハミング重みの観察された頻度と、ＰＵＦについてのハミング重みの特定された頻度とに対して、観察された分布を理論的な分布と比較するために、統計的検定を適用することと、
観察された分布を理論的な分布と比較するための統計的検定が、ハミング重みの観察された頻度とＰＵＦについてのハミング重みの特定された頻度とが分布の閾値より近いことを指示する場合、ＰＵＦが正しく機能することを決定することと
を含む、請求項５、６、または７のいずれかに記載の電子暗号装置（１００）。
【請求項１１】
統計的検定が第２の統計的検定（１２４）を含み、統計ユニット（１２０）が、登録局面の間に生成されるヘルパーデータを用いて、再構成局面の間に第２の統計的検定を実行するように構成され、
エラー訂正ユニット（１５２）が、再構成局面の間に、第１のノイジービットストリング（１１２）を第２のノイジービットストリング（１１４）およびヘルパーデータから再構成するように構成され、さらに、第１のノイジービットストリングと第２のノイジービットストリングとの間の差異を決定するように構成され、第２の統計的検定が、前記差異から統計パラメータを決定する、請求項２から１０のいずれか一項に記載の電子暗号装置（１００）。
【請求項１２】
統計パラメータが、
第１のノイジービットストリングと第２のノイジービットストリングとの間の差異の総数、
第１のノイジービットストリングと第２のノイジービットストリングとの間の差異における最も長い一連の差異ビット、および、
第１のノイジービットストリングと第２のノイジービットストリングとの間の差異における最も長い一連の非差異ビット
のうちの少なくとも１つを含む、請求項１１に記載の電子暗号装置（１００）。
【請求項１３】
第２の統計的検定が正しく機能することを指示する場合のみ、エントロピ集中関数を、物理的複製困難関数によって作成されるノイジービットストリングに適用することで、乱数シードを生成するように構成される乱数シード生成ユニット（１４０）であって、
乱数シード生成ユニット（１４０）が、エントロピ集中関数を第２のノイジービットストリングに適用するように構成される、
または、
物理的複製困難関数（ＰＵＦ）（１１０）が、再構成局面の間にさらなるノイジービットストリングを作成するように構成され、第２のノイジービットストリング（１１４）がさらなるノイジービットストリングと異なり、
乱数シード生成ユニット（１４０）が、エントロピ集中関数をさらなるノイジービットストリングに適用するように構成される、
乱数シード生成ユニット（１４０）を備える、請求項１０、１１、および１２のいずれか一項に記載の電子暗号装置（１００）。
【請求項１４】
物理的複製困難関数（ＰＵＦ）（１１０）がメモリに基づかれ、第２のノイジービットストリング（１１４）およびさらなるノイジービットストリングがメモリにおいてインターリーブされる、請求項１３に記載の電子暗号装置（１００）。
【請求項１５】
電子暗号方法であって、
第１のノイジービットストリング（１１２）を第１の局面の間に物理的複製困難関数（ＰＵＦ）（１１０）で作成するステップと、
第１の局面の間に第１のノイジービットストリングからヘルパーデータを生成するステップであって、ヘルパーデータが、後の第２の局面の間に、前記ヘルパーデータ、および、ＰＵＦによって作成される第２のノイジービットストリング（１１４）からの第１のノイジービットストリング（１１２）の再構成を許容する、生成するステップと、
物理的複製困難関数が正しく機能することを確証するための統計的検定を実行するステップであって、統計的検定が、ヘルパーデータを用いて物理的複製困難関数のための統計パラメータを計算し、統計的検定が、統計パラメータが統計的検定の基準を満たす場合に正しく機能することを決定する、実行するステップと
を含む、電子暗号方法。
【請求項１６】
登録局面と後の再構成局面とを含み、
登録局面が、
第１のノイジービットストリング（１１２）を物理的複製困難関数（ＰＵＦ）（１１０）で作成するステップと、
第１の局面の間に第１のノイジービットストリングからヘルパーデータを生成するステップであって、ヘルパーデータが、再構成局面の間に、前記ヘルパーデータ、および、ＰＵＦによって作成される第２のノイジービットストリング（１１４）からの第１のノイジービットストリング（１１２）の再構成を許容する、生成するステップと
を含み、
再構成局面が、
第２のノイジービットストリング（１１４）を物理的複製困難関数（ＰＵＦ）（１１０）で作成するステップを含み、
登録局面または再構成局面が統計的検定を実行するステップを含む、請求項１５に記載の電子暗号方法。
【請求項１７】
統計的検定が第１の統計的検定（１２２）を含み、第１の統計的検定が、第１のノイジービットストリングから生成されるヘルパーデータにおいて登録局面の間に実行され、
登録局面がさらに、
第１の統計的検定が物理的複製困難関数が正しく機能することを確証しない場合、第１のノイジービットストリングから生成されるヘルパーデータを廃棄し、第１の統計的検定が正しく機能することを確証する場合、ヘルパーデータを記憶するステップを含む、請求項１６に記載の方法。
【請求項１８】
統計的検定が第２の統計的検定（１２４）を含み、第２の統計的検定が、登録局面の間に生成されるヘルパーデータを用いて、再構成局面の間に実行され、
再構成局面がさらに、
第１のノイジービットストリング（１１２）を第２のノイジービットストリング（１１４）およびヘルパーデータから再構成するステップと、
第１のノイジービットストリングと第２のノイジービットストリングとの間の差異を決定し、第２の統計的検定が前記差異から統計パラメータを決定するステップと
を含む、請求項１６または１７に記載の方法。
【請求項１９】
コンピュータプログラムがコンピュータで実行されるとき、請求項１５、１６、１７、および１８の方法のいずれか１つを実施するように構成されるコンピュータプログラム命令を含む、コンピュータプログラム（１０２０）。
【請求項２０】
請求項１９に記載のコンピュータプログラム（１０２０）を含むコンピュータ可読媒体（１０００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号装置、暗号方法、コンピュータプログラム、およびコンピュータ可読媒体に関する。
【背景技術】
【０００２】
物理的複製困難関数は、デジタル識別子を導出するために製造上のばらつきを利用する。したがって、デジタル識別子は物理的媒体と結び付けられる。物理的複製困難関数はランダム処理のばらつきに依存するため、ＰＵＦを創成することは容易であるが、特定の所定の識別子を生じさせるＰＵＦを創成することは、完全に不可能であるとは言えないが、非常に困難である。製造上のばらつきは、例えばメモリ素子において、異なる物理的特性をもたらす。物理的特性には、ドーピング濃度、酸化膜厚、チャネル長さ、（例えば、金属層の）構造上の幅、寄生量（例えば、抵抗、静電容量）などがあり得る。デジタル回路設計が複数回製造されるとき、これらの物理的特性は若干ばらつくことになり、それと共に、例えばメモリ素子といったＩＣ要素の挙動を、ある状況において異なるように振る舞わせることになる。例えば、起動の挙動は、物理的特性における製造上のばらつきによって決定される。
【０００３】
ＰＵＦが装置固有の予測不可能なレスポンスを作成するという事実は、ＰＵＦを、暗号鍵をそこから生成するための非常に適した候補にさせている。従来の不揮発性鍵記憶装置と対照的に、ＰＵＦに基づく鍵は、デジタル形式で記憶されず、ＰＵＦの物理的構造における小さいランダムな偏差から生じている。さらに、鍵自体の生成は、低品質のものであり得る外部から提供されるランダム性に依存せず、装置自体の高エントロピ固有のランダム性を用いる。これらの要因の組み合わせは、暗号鍵記憶装置のための非常に安全な解決策をもたらすことができる。
【０００４】
ＰＵＦを用いると、鍵を記憶するための安全なメモリに対する要求が回避できる。ＰＵＦは、さらに、リバースエンジニアリングによって暗号鍵を得ようとする悪意のある試みに対して生来の保護を提供するが、これは、試みの間にＰＵＦに負わされ得る損傷がデジタル識別子を変えてしまう可能性があるためである。好ましくは、デジタル識別子は、物理的複製困難関数が埋め込まれる電子装置に一意的である。
【０００５】
例えば、例えばＳＲＡＭといった一部のメモリ素子の起動の挙動がＰＵＦのような挙動を演じることが、観察されている。このようなメモリは、電源投入されたとき、これは、メモリを構成するコンポーネント、たとえば、ゲートもしくはトランジスタの少なくとも部分的にランダムな物理的特性、たとえば、互いに関する物理的配置構成に依存する、コンテンツを含む、すなわち、一連のデータ値を備える傾向を有する。メモリは、複数回電源投入された場合、大きな割合まで同じコンテンツを含むことになる。
【０００６】
ＰＵＦは予測不可能で装置に一意的なレスポンスを提供し、しかもその物理的という素性のため、測定ノイズおよび環境の影響を受ける可能性がある。他方で暗号鍵は、完璧に信頼できる完全なエントロピのものである必要がある。この隔たりを繋ぐために、ＰＵＦレスポンスにいくらかの後処理が必要とされる。ノイズに対処するための１つの方法は、いわゆるファジーエクストラクタの使用である。ファジーエクストラクタは、「ノイズのある（ノイジー）」ランダム値を信頼できる鍵へと変換することができる。エラー訂正手続きが、これらの変動を訂正し、ＰＵＦが使用されるたびに同一のデジタル識別子が導出されることを確保するために、この処理において使用され得る。エラー訂正手続きは、いわゆるヘルパーデータを使用する。ファジーエクストラクタは、２つの段階を含み得る。最初の登録段階では、暗号鍵がＰＵＦレスポンスから導出される。登録過程では、ＰＵＦレスポンスについてのヘルパーデータが作成される。後に現場で、再構成段階が、ＰＵＦレスポンスを再評価し、同じ鍵を再構成するために登録段階からのヘルパーデータを使用する。したがって、ヘルパーデータは登録段階と再構成段階との間で記憶される必要がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００７／１１６３２５号
【特許文献２】国際公開第２００９／０２４９１３号
【特許文献３】米国特許出願公開第２００３／０２０４７４３号明細書
【特許文献４】欧州特許第２１９１４１０号明細書
【特許文献５】国際公開第２０１１／０１８４１４号
【特許文献６】国際公開第２０１２／０６９５４５号
【特許文献７】国際公開第２０１２／０４５６２７号
【発明の概要】
【課題を解決するための手段】
【０００８】
この点におけるファジーエクストラクタの望ましい性質は、ヘルパーデータが、導出される鍵についての情報を含んでいないということである。別の言い方をすると、ヘルパーデータは、極秘情報を含んでおらず、生成された鍵を攻撃するのに使用することはできない。結果として、ヘルパーデータは、公に記憶および通信されてもよく、鍵の直接的な記憶装置が必要であるように敵から保護する必要がない。
【０００９】
ファジーエクストラクタの動作は、エラー訂正コードの使用に基づかれてもよい。典型的には、エラー訂正コードはブロックコードであり、例えば線形エラー訂正ブロックコードといった線形である。登録の間、ファジーエクストラクタは、例えば、ＰＵＦレスポンスビットにおいていくつかのパリティ関係を計算し、これらの関係をヘルパーデータにおいて開示することで、ＰＵＦレスポンスについてのヘルパーデータを計算する。ヘルパーデータは、例えば、１つまたは複数のコード語とＰＵＦレスポンスとの間の差異を計算することで、計算され得る。
【００１０】
開示のおかげで、ＰＵＦレスポンスの予測不可能性（そのエントロピによって測定される）は、相当に低減され得る。発明者は、ＰＵＦが大きなバイアスを有する場合、ヘルパーデータによる鍵についての情報漏えいがゼロではないことを見出している。実際、ＰＵＦが非常に大きいバイアスを有する場合、ヘルパーデータは、攻撃者による鍵の完全な再構成を可能にするような十分な鍵についての情報を暴露しさえする可能性がある。
【００１１】
ビットストリングにおける純粋なランダムからの偏差、具体的にはバイアスは、偏差を検出するように設計された統計的検定を用いて検出できる。しかしながら、ＰＵＦレスポンスは、秘密鍵および／または乱数シードなど、極秘情報を生成するために使用されるため、極秘データである。ＰＵＦレスポンスなどの秘密データのあらゆる取り扱いは、情報の追加的な漏えいをもたらす可能性があり得る。具体的には、情報は、秘密データが処理されるあらゆるときにおいて、電力消費、電磁放射など、いわゆるサイドチャネルを通じて漏えいさせられ得る。そのため、ＰＵＦの異常な挙動を検出したとき、ＰＵＦレスポンスの追加的な取り扱いを導入することを回避したいという要求がある。
【００１２】
−  第１の局面の間に第１のノイジービットストリング（１１２）を作成するように構成される物理的複製困難関数（ＰＵＦ）（１１０）と、
−  第１の局面の間に第１のノイジービットストリングからヘルパーデータを生成するように構成されるヘルパーデータ創成ユニット（１３０）であって、ヘルパーデータが、後の第２の局面の間に、前記ヘルパーデータ、および、ＰＵＦによって作成される第２のノイジービットストリング（１１４）からの第１のノイジービットストリング（１１２）の再構成を許容する、ヘルパーデータ創成ユニット（１３０）と、
−  物理的複製困難関数が正しく機能することを確証するための統計的検定を実行するように構成される統計ユニット（１２０）であって、統計的検定が、ヘルパーデータを用いて物理的複製困難関数のための統計パラメータを計算し、統計的検定が、統計パラメータが統計的検定の基準を満たす場合に正しく機能することを決定する、統計ユニット（１２０）と
を備える、電子暗号装置（１００）が提示される。
【００１３】
ヘルパーデータは、ＰＵＦにおいて検定を実行する目標のために特に創成されてもよい。その場合、ヘルパーデータは、検定が実行された後に廃棄されてもよい。このような健全性検定は、ＰＵＦの健全性が監視される非常に安全な用途において望ましいとされる。ＰＵＦの状態が悪化する場合、具体的には、健全性が閾値を下回って低下する場合、ＰＵＦが将来的に正常に機能しなくなる危険性があり得る。検定を用いると、装置は、例えば装置を置き換えるために、例えば装置の使用者にアラートするといった、適切な行動を取ることができる。
【００１４】
この目的のために作成されるヘルパーデータは、装置を登録するために使用されるヘルパーデータと同じ種類のものであり、そのステップが実施されない場合であっても、第１のノイジービットストリングの再構成を許容するものである。このようなヘルパーデータはパブリックデータとなるように設計され、したがって、ヘルパーデータに統計的検定を実施することで、少なくとも正常なヘルパーデータ生成の間に行われるよりも多くなることはなく、情報が漏えいすることはない。検定の目的だけのために生成されたヘルパーデータは、登録のために生成されたヘルパーデータと異なるエラー訂正コードを使用でき、例えば、前者は反復コードだけを使用し、後者は例えば反復コードを内部コードとして可能ならば使用する連接コードといった、より洗練されたコードを使用してもよい。
【００１５】
ＰＵＦの品質を確証するための具体的に重要な時点は、登録の間である。登録局面の間、後で暗号鍵を導出するために使用されるヘルパーデータが生成される。また、このヘルパーデータは第１のノイジービットストリングの再構成を許容するが、一部の実施形態は、実際には第１のノイジービットストリングの再構成に向けてずっと進んでいくわけではく、登録コード語を再構成するだけの可能性もある（本明細書における例を参照）。実施形態では、第１の局面はいわゆる登録局面であり、第２の局面はいわゆる再構成局面である。
【００１６】
本発明の態様は、暗号鍵を決定するために構成される電子暗号装置である。暗号装置は、登録局面と後の再構成局面とのために構成される。暗号装置は、
−  登録局面の間に第１のノイジービットストリングを作成し、再構成局面の間に第２のノイジービットストリングを作成するように構成される物理的複製困難関数と、
−  再構成局面の間に第２のノイジービットストリングから暗号鍵を決定するために、登録局面の間に第１のノイジービットストリングからヘルパーデータを生成するように構成されるヘルパーデータ創成ユニットと、
−  物理的複製困難関数が正しく機能することを確証するための統計的検定を実行するように構成される統計ユニットであって、統計的検定が、ヘルパーデータを用いて物理的複製困難関数のための統計パラメータを計算し、統計的検定が、計算されたパラメータが統計的検定の基準を満たす場合に正しく機能することを決定する、統計ユニットと
を備える。
【００１７】
統計ユニットは、検定を実行するためにヘルパーデータを使用するように構成される。ヘルパーデータは、概して秘密データとして見なされない。したがって、統計的検定における間にヘルパーデータを使用することは、追加的な極秘情報を漏えいすることはない。
【００１８】
実施形態では、統計的検定が第１の統計的検定を含み、統計ユニットが、第１のノイジービットストリングから生成されるヘルパーデータにおいて登録局面の間に第１の統計的検定を実行するように構成される。登録局面の間、ヘルパーデータは第１のノイジービットストリングから生成される。したがって、異常なヘルパーデータを検出するために統計的検定を実行することは、異常なＰＵＦを間接的に検出する。再構成局面の間、同じヘルパーデータが利用可能であり、また、追加のＰＵＦレスポンス、すなわち、第２のノイジービットストリングが利用可能である。実施形態では、統計的検定が第２の統計的検定を含み、統計ユニットが、登録局面の間に生成されるヘルパーデータを用いて、再構成局面の間に第２の統計的検定を実行するように構成される。
【００１９】
暗号装置は電子装置である。例えば、暗号装置は、携帯電話またはタブレットなど、モバイル電子装置であり得る。暗号装置は、スマートカード、キーフォブ、または他の携帯型安全装置であり得る。暗号装置はセットトップボックスであり得る。
【００２０】
本発明のさらなる態様は電子暗号方法に関係する。また、暗号方法は登録局面および再構成局面の間に適用され得る。例えば、実施形態では、
登録局面と後の再構成局面とを含み、
−  登録局面が、
−  第１のノイジービットストリング（１１２）を物理的複製困難関数（ＰＵＦ）（１１０）で作成するステップと、
−  登録局面の間に第１のノイジービットストリングからヘルパーデータを生成するステップであって、ヘルパーデータが、再構成局面の間に、暗号鍵を第２のノイジービットストリング（１１４）から決定するように構成される、生成するステップと
を含み、
−  再構成局面が、
−  第２のノイジービットストリング（１１４）を物理的複製困難関数（ＰＵＦ）（１１０）で作成し、暗号鍵を決定するステップを含み、
−  登録局面または再構成局面が、
−  物理的複製困難関数が正しく機能することを確証するための統計的検定を実行するステップであって、統計的検定が、ヘルパーデータを用いて物理的複製困難関数のための統計パラメータを計算し、統計的検定が、統計パラメータが統計的検定の基準を満たす場合に正しく機能することを決定する、実行するステップと
を含む、電子暗号方法がある。
【００２１】
本明細書に記載されている暗号装置および暗号方法は、幅広い範囲の実用的な用途で適用できる。このような実用的な用途には、暗号鍵および／または乱数シードを用いる暗号アルゴリズムを通じてのデータの機密性および真正性の保護がある。用途には、例えば、個人データの保護、銀行での用途、通信保護、デジタル著作権管理の用途などがある。乱数の暗号用途は、鍵共有プロトコル、誓約、署名方式などがある。
【００２２】
本発明による方法は、コンピュータで実施される方法としてコンピュータ上で、または専用のハードウェアで、または両方の組み合わせで、実施され得る。本発明による方法のための実行可能なコードは、コンピュータプログラム製品で記憶されてもよい。コンピュータプログラム製品の例には、メモリ装置、光学記憶装置、集積回路、サーバ、オンラインソフトウェアなどがある。好ましくは、コンピュータプログラム製品は、前記プログラム製品がコンピュータで実行されるときに本発明による方法を実施するためのコンピュータ可読媒体に記憶される非一時的プログラムコード手段を含む。
【００２３】
好ましい実施形態では、コンピュータプログラムは、コンピュータプログラムがコンピュータで実行されるとき、本発明による方法のすべてのステップを実施するように構成されたコンピュータプログラムコード手段を含む。好ましくは、コンピュータプログラムはコンピュータ可読媒体に具現化される。
【００２４】
本発明の別の態様は、ダウンロードして利用可能であるコンピュータプログラムを作る方法を提供する。この態様は、コンピュータプログラムが、例えばＡｐｐｌｅのＡｐｐ  Ｓｔｏｒｅ、ＧｏｏｇｌｅのＰｌａｙ  Ｓｔｏｒｅ、またはＭｉｃｒｏｓｏｆｔのＷｉｎｄｏｗｓ  Ｓｔｏｒｅなどにアップロードされ、コンピュータプログラムがこのような店舗からダウンロードして利用可能であるとき、使用される。
【００２５】
本発明のさらなる詳細、態様、および実施形態は、図面を参照して、例を用いるだけで記述されている。図における要素は、簡潔性および明確性のために示されており、必ずしも一定の縮尺で描写されていない。図では、すでに記述した要素に対応する要素は同じ参照数字を有してもよい。
【図面の簡単な説明】
【００２６】
【図１】暗号装置の実施形態の例を示す概略図である。
【図２】第１の統計的検定の例を示す概略図である。
【図３ａ】第１の統計的検定の例についての概略的な流れ図である。
【図３ｂ】第１の統計的検定の例についての失敗率曲線を示す図である。
【図４ａ】第２の統計的検定の例を示す概略図である。
【図４ｂ】エラーベクトルの例を示す概略図である。
【図５】暗号装置の実施形態の例を示す概略図である。
【図６ａ】第２の統計的検定の例についての概略的な流れ図である。
【図６ｂ】第２の統計的検定の例についての失敗率曲線を示す図である。
【図７】暗号方法の例についての概略的な流れ図である。
【図８ａ】実施形態によるコンピュータプログラムを備える書き込み可能部を有するコンピュータ可読媒体の概略図である。
【図８ｂ】実施形態によるプロセッサシステムを描写した概略図である。
【発明を実施するための形態】
【００２７】
図１、図２、図４ａ、図４ｂ、および図５における参照数字の一覧
１００  暗号装置
１１０  物理的複製困難関数（ＰＵＦ）
１１２  第１のノイジービットストリング
１１４  第２のノイジービットストリング
１１６  さらなるノイジービットストリング
１２０  統計ユニット
１２２  第１の統計的検定
１２４  第２の統計的検定
１３０  ヘルパーデータ創成ユニット
１３２  ヘルパーデータ記憶部
１４０  乱数シード生成ユニット
１４４  ヘルパーデータ
１５０  正規化部
１５２  エラー訂正ユニット
１５４  鍵導出ユニット
２００  第１のノイジービットストリング
２０１−２０５  第１のノイジービットストリングのブロック
２１０  反復コード語のシーケンス
２１１−２１５  反復コード語
２２０  ヘルパーデータ
２２１−２２６  第１のノイジービットストリングのマスクされたブロック
２３０  ハミング重みのシーケンス
２３１−２３６  ハミング重み
２４０  計数器ユニット
２４２  計数
５００  第２のノイジービットストリング
５１０  第１のノイジービットストリング
５２０  エラーベクトル
５２１  一連の差異
５２２  一連の非差異
５４０  計数器ユニット
５４２  エラー計数
【００２８】
本発明は、多くの異なる形態において実施形態とさせられるが、本開示が、本発明の原理の例として見なされ、示されて記述されている特定の実施形態に本発明を限定するように意図されていないという理解で、１つまたは複数の特定の実施形態が図面に示されて本明細書で詳細に記述されている。
【００２９】
以下においては、理解の目的のために、実施形態の要素が動作において記述されている。しかしながら、それぞれの要素が、それら要素によって実施されるとして記述されている機能を、実施するように構成されることは、明らかである。
【００３０】
図１は、暗号装置１００の実施形態の例を概略的に示している。
【００３１】
暗号装置１００は、物理的複製困難関数（ＰＵＦ）１１０を備えている。暗号装置１００は、ＰＵＦ１１０のレスポンスから暗号鍵を決定するように構成される電子装置である。
【００３２】
ＰＵＦ１１０に加えて、暗号装置１００は、ヘルパーデータ創成ユニット１３０と、ヘルパーデータ記憶部１３２と、正規化部１５０と、エラー訂正ユニット１５２と、鍵導出ユニット１５４とを備えている。これらのユニットは、ＰＵＦ１１０のノイズレスポンスから、再現可能な暗号鍵を作成するために協働する。以下において、それらの関数が先ず記述されている。
【００３３】
ＰＵＦ、ヘルパーデータ、および鍵再構成
暗号装置１００は、登録局面と後の再構成局面とのために構成されている。ＰＵＦ１１０は、登録局面の間に第１のノイジービットストリング１１２を作成し、再構成局面の間に第２のノイジービットストリング１１４を作成するように構成されている。複数回繰り返され得る再構成局面の間、同じ暗号鍵が作成される。同じ暗号鍵は、登録の間にも作成され得る。
【００３４】
登録局面の間、暗号鍵の繰り返される同一の作成を可能にするヘルパーデータ１４４が作成される。暗号装置１００は、再構成局面の間に第２のノイジービットストリング１１４から暗号鍵を決定するために、登録局面の間に第１のノイジービットストリング１１２からヘルパーデータ１４４を生成するように構成されるヘルパーデータ創成ユニット１３０を備えている。
【００３５】
続いて作成されるノイジービットストリングとの間の変化の大きさは、異なる種類のＰＵＦの間で異なり、つまり、ＰＵＦ１１０の種類について典型的な変化の大きさに依存して、エラー訂正コードは、この大きさのエラーについて訂正するように選択され得る。ＰＵＦのノイジービットストリングの長さは、所望の鍵長さ、ＰＵＦのエラー割合、および／またはＰＵＦのバイアスレベルに対して選択され得る。
【００３６】
ＰＵＦ１１０は、ノイジービットストリングを再び作成するために、例えば電源停止から続いて電源投入といった、電源サイクルを必要としてもよい。電源投入信号はチャレンジとして解釈されてもよい。メモリに基づくＰＵＦについて、メモリにおけるアドレスとの組み合わせでの電源投入信号は、チャレンジとして解釈されてもよい。
【００３７】
装置１００では、ＰＵＦ１１０は、ノイジービットストリングを少なくとも２回作成する。登録局面の間における１回では、ＰＵＦ１１０は第１のノイジービットストリングを作成する。後の使用局面の間では、ＰＵＦ１１０は第２のノイジービットストリングを作成する。第１のノイジービットストリングと第２のノイジービットストリングとは互いに対して十分に近く、例えば、それらの差異のハミング重みは閾値未満である。
【００３８】
ＰＵＦは、物理的装置を用いて関数を実際に評価することなく関数の出力を予測するのが計算によっては実行不可能であるような方法で物理的装置に結び付けられたランダム関数である。さらに、ＰＵＦが物理的システムによって実現されるため、コピーすることは難しい。完全には制御されていない（つまり、いくらかのランダム性を含む）作成過程によって作成される物理的なシステムは、ＰＵＦの優れた候補になることが分かっている。実施形態では、ＰＵＦ１１０と、延いては暗号装置１００とは、ＰＵＦ１１０によって提供されるレスポンスと、それから導出される鍵とに基づいて、一意的に識別できる。鍵は識別子として使用でき、装置を識別する。
【００３９】
ＰＵＦの物理的システムは、刺激と複雑な方法で相互作用するように設計され、一意的であるが予測不可能なレスポンスをもたらす。ＰＵＦの刺激はチャレンジとして言及される。あるＰＵＦは、より大きい幅の異なるチャレンジを許容し、異なるレスポンスを作成する。ＰＵＦチャレンジおよび対応するレスポンスは、合わせてチャレンジレスポンス対と呼ばれる。しかしながら、ＰＵＦは単一のチャレンジも有してよい。ＰＵＦ１１０は単一チャレンジＰＵＦであり得る。ＰＵＦ１１０は複数チャレンジＰＵＦであってもよい。複数チャレンジＰＵＦの場合、ＰＵＦ１１０は、ノイジービットストリング、具体的には、第１および第２のノイジービットストリングを作成するとき、同じチャレンジまたはチャレンジのセットでチャレンジされる。
【００４０】
ＰＵＦの適切なソースは、、電源投入されたとき、メモリの識別のために有用な電源投入値のレスポンスパターンを含む電子揮発性メモリによって形成され、そのレスポンスパターンは、メモリ要素の物理的特性に依存する。
【００４１】
装置を一意的に識別するために使用されるＰＵＦの１つの知られている例は、いわゆるＳＲＡＭ  ＰＵＦであり、ＳＲＡＭ  ＰＵＦは、ＳＲＡＭセルが、始動されるとき、ドーピングのばらつきによるトランジスタの閾値電圧におけるばらつきのため、ランダム状態で始動するという事実に基づかれている。これが複数回行われるとき、各々のセルは、ほとんどの場合に同じ状態で始動することになる。これらのＰＵＦは、基板にＳＲＡＭメモリを有する任意の装置で実現され得る。
【００４２】
メモリを識別するために十分に安定しているランダム始動挙動を示す任意のメモリは、チャレンジ可能メモリと呼ばれる。始動挙動がランダムであるため、２つの異なるメモリは、それらの始動メモリパターンにおいて大きい差異を有することになり、始動挙動が安定であるため、同じメモリの２つの始動メモリパターンは小さい差異を有することになる。このようなメモリの例は、前述したようなＳＲＡＭメモリセルであるが、フリップフロップのようなメモリ素子でもある。実際、フィードバックループを備える任意の種類の揮発性メモリが使用できる。この種類のＳＲＡＭ  ＰＵＦは、特許公開ＷＯ／２００７／１１６３２５においてより詳細に記載されている。
【００４３】
ＰＵＦに基づかれた第２の種類のＳＲＡＭは、デュアルポートＲＡＭで構成され得る。両方のポートで同じときに異なる情報を書き込むことで、メモリセルは未定義の状態にさせられ、ＰＵＦのような挙動を示す。この種類のＰＵＦは、ＷＯ２００９０２４９１３においてより詳細に記載されている。他のいわゆる固有ＰＵＦは遅延現象に基づかれており、例えば、ＵＳ２００３０２０４７４３を参照されたい。ＰＵＦは、例えば、ＦＰＧＡにおける、交差結合インバータまたは交差結合ラッチによるＳＲＡＭメモリセルを刺激することで構成されてもよく、いわゆるバタフライＰＵＦであり、欧州特許ＥＰ２１９１４１０Ｂ１およびＷＯ２０１１０１８４１４Ａ２を参照されたい。ＰＵＦ１１０は、例えばＷＯ２０１２０６９５４５に記述されているような複数のバスキーパを含む物理的複製困難関数、または、フリップフロップ（ＷＯ／２０１２／０４５６２７）であり得る。
【００４４】
興味深いことに、ＰＵＦレスポンスは、２つの異なる使用のために使用できる。一方で、ヘルパーデータを使用してノイズを抑えることで、ＰＵＦレスポンスは暗号鍵を作成するために使用できる。他方で、ノイズは、乱数シードをＰＵＦレスポンスから作成することで活用されてもよい。第１の場合では、ＰＵＦレスポンスの安定性が使用され、第２の場合では、そのノイズが使用される。
【００４５】
ヘルパーデータ創成ユニット１３０は、登録局面の間に第１のノイジービットストリング１１２からヘルパーデータを生成するように構成され、そのため、暗号鍵が再構成局面の間に第２のノイジービットストリング１１４から決定できる。
【００４６】
ヘルパーデータ創成ユニット１３０は、エラー訂正コードから１つまたは複数のコード語を得るように、および、ヘルパーデータ１４４を決定するように、構成されている。ヘルパーデータは、エラー訂正コードに基づかれる、いわゆるコードオフセット方法を用いて決定される。正規化部とエラー訂正部との組み合わせは、ファジーエクストラクタと称されることもある。鍵導出はファジーエクストラクタに含まれてもよい。（ｎ，ｋ，ｄ）バイナリエラー訂正コードはビット長ｎのコード語のセットであり、そのためコードのうちの任意の２つのコード語は、少なくともｄのハミング距離を有し、コードは次元ｋを有する。
【００４７】
例えば、登録段階では、１つまたは複数のランダムコード語がブロックコードから選択され、いわゆる登録コード語である。例えば、登録コード語は、ランダムに選択されたシードをコード化することで得ることができる。ヘルパーデータ創成ユニット１３０は、次に、登録コード語と第１のＰＵＦレスポンス１１２との間の差異を決定する。第１のＰＵＦレスポンス１１２は登録レスポンスとも称される。
【００４８】
第１のＰＵＦレスポンス１１２は、第１および第２のノイジービットストリングを複数のコード語サイズにすることが必要とされる場合、パディングされ得る、または、短縮され得る。
【００４９】
第１のノイジービットストリング１１２と登録コード語との間の差異は、オフセットとも称される。２進値の場合、２つのベクトルの間のオフセットは、排他的論理和（ＸＯＲ）演算によって得られる。このコードオフセットはヘルパーデータとして使用されてもよい。実施形態では、ヘルパーデータ１４４は、例えば、第１のＰＵＦレスポンス１１２のＸＯＲ、および、１つまたは複数のコード語といった、オフセットを含む。ヘルパーデータ１４４はヘルパーデータ記憶部１３２に記憶される。
【００５０】
ヘルパーデータがヘルパーデータ創成ユニット１３０によって生成された後、ヘルパーデータ記憶部１３２は、登録局面の間にヘルパーデータを記憶するように構成される。ヘルパーデータ記憶部１３２は、ヘルパーデータ１４４を記憶するための、フラッシュメモリといった不揮発性メモリであり得る。装置１００に含まれるメモリを使用するヘルパーデータ記憶部１３２の代わりに、実施形態では、ヘルパーデータ１４４は、例えばヘルパーデータ記憶部１３２によって、外部で記憶される。
【００５１】
再構成段階では、ＰＵＦが再評価され、第２のノイジービットストリング１１４が得られる。第２のノイジービットストリング１１４は、登録されたＰＵＦレスポンス１１２のノイジー版である。正規化部１５０が、再構成局面の間にヘルパーデータ１４４を第２のノイジービットストリングに適用し、ノイズと共に１つまたは複数のコード語を決定するように構成されている。これはノイジーコード語である。具体的には、ノイジーコード語は、ノイズが加わった登録コード語である。
【００５２】
第２のＰＵＦレスポンスを、ノイズ低減データ１４４に含まれるコードオフセットだけ変更することによって、第２のＰＵＦレスポンスは登録コード語のノイジー版になる。２進値の場合、この変更もまたＸＯＲ演算へと還元される。
【００５３】
エラー訂正ユニット１５２が、１つまたは複数の訂正されたコード語を得る前記１つまたは複数のノイジーコード語を訂正するように構成される。エラー訂正ユニット１５２は複数回の訂正のために構成されてもよい。具体的には、エラー訂正ユニット１５２は、再構成局面の間、第１のノイジービットストリング１１２を第２のノイジービットストリング１１４およびヘルパーデータから再構成するように構成され得る。正規化部１５０はエラー訂正ユニット１５２に含まれてもよい。
【００５４】
ノイジーコード語は、登録コード語が取られたエラー訂正コードに対応するエラー訂正アルゴリズムを用いて訂正できる。再構成の間のＰＵＦレスポンスビットエラーの数が多すぎることがないならば、訂正されたコード語は、元の登録されたコード語と等しくなる。
【００５５】
必要であれば、この訂正されたコード語をコードオフセットでもう１回変更することで、元の登録されたＰＵＦレスポンスを再構成してもよい。このレスポンスから、登録された鍵が結果として抽出できる。代替で、鍵は、元の登録されたＰＵＦレスポンスを再構成することなく、訂正されたコード語から得られてもよい。鍵を導出するために、訂正されたコード語を復号することも可能である。復号することは、１回または複数回の複合を伴ってもよい。内部コードを復号することで、最も近いコード語に向けて訂正できる、および／または、不良のコード語を消去できる。不良のコード語を消去する場合、次の外部コードは、エラーおよび消去を有するコード語を訂正するように構成されてもよい。
【００５６】
鍵導出ユニット１５４は、再構成局面の間に第２のノイジービットストリング１１４およびヘルパーデータから暗号鍵を決定するように構成される。具体的には、鍵導出ユニット１５４は、エラー訂正ユニット１５２の出力から暗号鍵を導出できる。例えば、鍵導出ユニット１５４は、鍵導出関数を１つまたは複数の訂正されたコード語に適用してもよい。代替で、鍵導出ユニット１５４は、鍵導出関数（ＫＤＦ）を、１つもしくは複数の訂正されたコード語の復号に、または、訂正されたＰＵＦレスポンスビットに適用してもよい。このような鍵導出関数の例には、ＩＥＥＥ  Ｓｔｄ  １３６３−２０００、ＮＩＳＴ−ＳＰ８００−１０８および５６−Ｃに定められているＫＤＦ１、ならびに、ＡＮＳＩ  Ｘ９．４２などにおける同様の関数がある。鍵導出関数はハッシュ関数であってもよい。登録の間、暗号鍵は、必要により、導出されてもよく、この場合には再構成は必要とされない。
【００５７】
装置１００は乱数シード生成ユニット１４０を備えてもよい。乱数シード生成ユニット１４０は、第１の統計的検定が正しく機能することを指示する場合のみ、エントロピ集中関数を、例えば第２のノイジービットストリングといったＰＵＦレスポンスに適用することで、乱数シードを生成するように構成されている。エントロピ集中関数は、この場合には第２のノイジービットストリング１１４であるより大きいストリングにおけるエントロピを、この場合には乱数シードであるより小さいストリングへと集中させる。エントロピ集中関数の例は、ハッシュ関数であり、具体的には、ＳＨＡ−１などの暗号ハッシュ関数、圧縮関数、および、例えばＮＩＳＴ−ＳＰ８００−９０などに定められているような、シードを導出するための導出関数である。
【００５８】
乱数シードは、乱数シードに依存して乱数のシーケンスを生成するように構成される疑似乱数生成器で使用され得る。乱数は、多くの暗号プロトコルで使用されることができ、非暗号用途を有してもよい。疑似乱数生成器は、図１において別にされて示されていない。
【００５９】
例えば、疑似乱数生成器は、例えばＮＩＳＴ−ＳＰ８００−９０において定義および例示されているような、いわゆる決定論的乱数生成器（ＤＲＢＧ）であってもよい。疑似乱数生成器は、乱数シードから始まる、計数器モードで実行する言わばＡＥＳといったブロック暗号、または、乱数シードで鍵の掛けられたＲＣ４、乱数シードでシードされたフォーチュナなどのストリーム暗号であってもよい。
【００６０】
数式では、装置１００のこの部分は次のように記述できる。第１のノイジービットストリングをＸとし、第２のノイジービットストリングをＹとし、登録コード語をＳとする。Ｓは、例えば、Ｓ＝Ｅｎｃ（ｓ）（ここで、ｓはランダムストリングである）といった、エラー訂正コードのコード化関数に従ってランダムストリングをコード化することで得ることができる。コード化関数Ｅｎｃは、エラー訂正コードに従って、ｓに冗長性を与えることができる。対応する復号化関数Ｄｅｃがあり、そのためｓ＝Ｄｅｃ（Ｅｎｃ（ｓ））である。ランダムストリングＳは、例えば、真の乱数生成器、または、可能ならばＰＵＦ１１０からシードされる疑似乱数生成器といった、乱数生成器によって得ることができる。
【００６１】
２進の場合についてのヘルパーデータは、ヘルパーデータ創成ユニット１３０によって、
【数１】
2018525920.tif 000003
として得ることができる。正規化部１５０は、
【数２】
2018525920.tif 000004
を計算する。
【数３】
2018525920.tif 000005
である。第１のノイジービットストリングと第２のノイジービットストリングとが近いため、登録コード語Ｓとノイジーコード語Ｓ’とが同じく近い。エラー訂正部１５２はＳをＳ’から再構成する。ここで、鍵導出ユニット１５４は、Ｓから（例えばＳから直接的に）、または、Ｓの復号のｓから、または、第１のノイジービットストリング
【数４】
2018525920.tif 000006
からなど、Ｓから鍵を導出できる。ヘルパーデータＷは、第２のノイジービットストリングＹからの第１のノイジービットストリングＸの再構成を可能とするが、Ｘを実際に再構成することは必要なく、Ｓまたはｓを再構成することは十分であり得ることは、留意されたい。登録の間、暗号鍵は、Ｓ、ｓ、またはＸから同じ手法で生成されてもよい。
【００６２】
乱数シード生成ユニット１４０は、エントロピ集中関数を第２のノイジービットストリングＹに適用してもよく、例えば、ｇ（Ｙ）を得、ｇはエントロピ集中関数である。
【００６３】
統計的検定
残念ながら、ＰＵＦ１１０が、その典型的な期待される挙動に一致するレスポンスを作成しないことが起こり得る。以下の２つのエントロピ態様、すなわち、ノイズエントロピと装置間エントロピとは、重要である。
【００６４】
ノイズエントロピ：同じＰＵＦインスタンスを繰り返し測定するときのノイズの大きさに関するエントロピ。これは、ＰＵＦを乱数生成のために使用するときに重要である。ＰＵＦから導出される高品質の乱数シードを確保するためには、繰り返される測定において十分なランダム性がなければならない。他方で、ランダム性は、暗号鍵が繰り返し導出できるように十分な信頼性を達成するために、制限されなければならない（安定したビットが十分あるべきである）。
【００６５】
装置間エントロピ：装置間の一意性に関するエントロピ。これは、一意的な「電子指紋」を各々の装置に与える、製造プロセスにおける制御されないばらつきによって引き起こされるエントロピである。ＰＵＦのインスタンスまたは装置のセットからのＰＵＦレスポンス測定値を所与として、測定されていない実例／装置のＰＵＦレスポンスは、理想的には予測不可能となるべきである。ＰＵＦが安全な鍵記憶装置のために使用されるとき、この性質は、攻撃者が、同様のＰＵＦインスタンスのセットへのアクセスを有する場合であっても、攻撃されている特定のチップにおいて鍵のあらゆる情報を得られないことを保証する。
【００６６】
登録の間、十分にランダムでない第１のノイジービットストリング１１２を作成するＰＵＦは、十分なエントロピを有していない暗号鍵をもたらす可能性があるが、さらに悪くは、暗号鍵を構成するために使用されるエントロピの全部または一部を漏えいするヘルパーデータ１４４をもたらす可能性がある。これが起こる具体的な状況は、ＰＵＦ１１０のバイアスが、大きすぎるとき、または、小さすぎるときである。例えば、第１のノイジービットストリング１１２が過度に多くのゼロビットを含む場合、ヘルパーデータ１４４は、登録コード語に等しい過度に多くのビットを含む。
【００６７】
再構成の間、異なる問題が生じる。第１のノイジービットストリング１１２が第２のノイジービットストリング１１４に近すぎる場合、つまり、ＰＵＦにおけるノイズが小さすぎる場合、乱数シード生成ユニット１４０によって作成される乱数シードは、十分にランダムとならない。したがって、疑似乱数生成器によって作成される乱数は、期待されているよりも予測可能になってしまう。これは、例えば、予測不可能な乱数を必要とする暗号プロトコルにおいて安全性の問題をもたらす可能性がある。
【００６８】
特定の装置が正確に作動するＰＵＦを有し、そのエントロピが十分であることを確かとするために、装置がそのＰＵＦソースにおいてある種の確認を実行できることが望ましい。この方法では、健全性確認を通過しない装置は、製造の間に、または、このような選択が関連する装置ライフサイクルにおける後の時点において、フィルタされ得る。
【００６９】
ノイズエントロピは、ＰＵＦレスポンスを繰り返し読み取り、これらの測定にわたるノイズ挙動において何らかの分析を行うことで実行時に装置によって確認され得る。例えば、複数のＰＵＦレスポンスが互いとの間で少なくとも特定の最小ハミング距離を有することが確認され得る、または、ＰＵＦレスポンスは、ｓｐｅｃｉａｌ  ｐｕｂｌｉｃａｔｉｏｎ  ＳＰ  ８００−２２において明記されているＮＩＳＴ統計的検定一式など、標準化されたランダム性検定に通され得る。しかしながら、完全なＮＩＳＴ検定一式は、コードサイズが極めて大きく、多くの作業メモリを必要とし、実行するのに長い時間が掛かる。そのため、ハードウェアにおける実装はもちろん、デバイスの実行時におけるクイック検定に適していない。具体的には電源スイッチのないメモリに基づくＰＵＦである、実際のところ重要である特定の種類のＰＵＦの実施について、同じＰＵＦソースの複数の測定を集めることは、測定同士の間で装置を再び電源投入することを必要とする可能性があるため、さらに実用的ではなくなる。
【００７０】
別の問題は、この要件が、複数の装置から集められたＰＵＦレスポンスを分析することを必要とするため、装置間エントロピを推定することであり、これは典型的にはオフラインのやり方でのみ行われ得る。単一の装置における実行時に複数の装置からのＰＵＦ測定を比較することは、実用的ではない。
【００７１】
実行時にＰＵＦ品質を検定するための最も実用的な方法は、単一のＰＵＦ測定においてランダム性の分析を実行することによるものであることが明らかとなる。少なくとも単一のＰＵＦレスポンスが、最も限定されたシナリオにおいても常に利用可能である。単一のＰＵＦレスポンス内で測定されるＰＵＦ統計値は、少なくとも複数の装置にわたるＰＵＦ統計値に関する分布に従うと考えることができる。これは複数の装置にわたる挙動を保証できないが、極端な場合における異常ＰＵＦ挙動に少なくともフラグを付けることができる。
【００７２】
以下にヘルパーデータを使用する統計的検定が記述されている。ヘルパーデータを使用しない統計的検定が可能であることは、留意されたい。代わりに、暗号装置が、ＰＵＦからのプレーンなレスポンスにおいて統計的検定を実施するように構成されてもよい。例えば、単一のＰＵＦレスポンスにおいてＦＩＰＳ  １４０−１（モノビット検定、ポーカー検定、ラン検定、およびロングラン検定）検定を実施できる。検定が登録の間に失敗する場合、ヘルパーデータは生成または廃棄されない。検定が再構成の間に失敗する場合、乱数シードがＰＵＦから作成されない。これらの検定は、装置間エントロピを確証するのに特に効率的である。
【００７３】
プレーンなＰＵＦレスポンスデータにおけるこのような統計的検定は非常に都合が良いが、安全性の危険をもたらしもする。概して、ＰＵＦレスポンスデータは秘密変数として考慮され、秘密変数におけるあらゆる演算は、最大限の注意を持って取り扱われるべきである。プレーンなＰＵＦレスポンスデータにおける検定の各々において計算される検定統計値は、導出される鍵の安全性に影響を与えるＰＵＦレスポンスについての情報を開示できる。この情報の漏えいは、例えば検定統計値が外部から可読であるため、明示的な可能性がある、または、例えば検定統計値の計算または記憶がサイドチャネル攻撃によって攻撃され、それらの値を暴露する可能性があるため、意図的でない可能性がある。追加的な情報を暴露することなく、特にはサイドチャネルを通じて追加的な情報を暴露することなく、ＰＵＦにおいて健全性確認を実施したいという要求がある。
【００７４】
装置１００は、ＰＵＦ１１０が正しく機能することを確証するための統計的検定を実行するように構成される統計ユニット１２０を備えている。統計的検定は、ヘルパーデータを用いて物理的複製困難関数のための統計パラメータを計算し、計算されたパラメータが統計的検定の基準を満たす場合、正しく機能することを決定する。
【００７５】
実施形態では、統計的検定は第１の統計的検定１２２を含んでいる。第１の統計的検定１２２は、先に示した第１の問題に対処し、つまり、鍵についての過剰な情報を漏えいするヘルパーデータの生成を検出する。第１の統計的検定は、登録局面の間に関連する。実施形態では、統計的検定は第２の統計的検定１２４を含んでいる。第２の統計的検定１２４は、先に示した第２の問題に対処し、つまり、ＰＵＦが乱数シードの信頼できる生成について小さすぎるノイズしか持たないことを検出する。
【００７６】
第１の統計的検定１２２
発明者は、プレーンなＰＵＦレスポンスデータにおいて検定を実行する代わりに、例えば特定の構造のランダムマスクで排他的論理和が取られるといった、マスクされたＰＵＦレスポンスデータにおいて修正の統計的検定を実施してもよいという洞察を得た。ランダムマスクのオーバーレイは、ほとんどの統計的検定を複雑にするが、必ずしもそれらを不可能にしない。適切な修正を導入することで、多くの検定は、マスクされたＰＵＦレスポンスデータでなおも実施され得る。さらに、これらのマスクされた検定が、安全性の危険をもたらし得るＰＵＦレスポンスについての情報をほとんどまたはまったく露出しないことが、示され得る。
【００７７】
ヘルパーデータなどのマスクされたＰＵＦレスポンスデータにおいて統計的検定を実行することは、より安全である。ＰＵＦレスポンスデータに反して、ヘルパーデータは、概して、秘密変数と見なされず、典型的には、パブリック変数であると仮定される。いずれにしてもヘルパーデータがパブリックであるため、ヘルパーデータにおいて計算された検定統計値は、秘密情報をまったく暴露できない。コードオフセット構造といった、しばしば使用されるＰＵＦに基づく鍵生成器構造では、ヘルパーデータは、線形ブロックコードからのランダムコード語でマスクされたＰＵＦレスポンスとして解釈されてもよい。したがって、ヘルパーデータにおける検定は、マスクされたＰＵＦレスポンスデータにおいて検定する特別な場合である。
【００７８】
実施形態では、統計ユニット１２０は、第１のノイジービットストリング１１２から生成されるヘルパーデータにおける登録局面の間に第１の統計的検定１２２を実行するように構成されている。暗号装置１００が、第１の統計的検定が物理的複製困難関数が正しく機能することを確証しない場合、登録局面の間に、第１のノイジービットストリングから生成されるヘルパーデータを廃棄するように構成されている。
【００７９】
第１の統計的検定は、特に登録局面の間の実行に適している。登録局面の間、次の再構成局面の間の暗号鍵の繰り返しの再構成を許容するヘルパーデータが生成される。ヘルパーデータが生成される時点で、ＰＵＦが正しく機能することを確証することが特に重要であり、さもなければおそらく安全でない鍵またはヘルパーデータが生成され得る。しかしながら、他の時点においても、例えば、ＰＵＦの差し迫った失敗をアラートすることといった、ＰＵＦが正しく機能することを確証することが望まれてもよい。アラートする場合、ヘルパーデータにおいて統計的検定を実行するという唯一の目的を終えて、登録であるかのように、ヘルパーデータが生成されてもよい。このようなヘルパーデータは、例えば反復コード語といった、あまり洗練されていないエラー訂正コードを用いてもよい。
【００８０】
登録の間に生成されたヘルパーデータにおいて統計的検定を実行することは、このヘルパーデータがあらゆる場合で生成され、パブリックデータと見なされるため、情報を漏えいすることに対して特に耐性があり、そのため追加的な情報の漏えいが起こらない。
【００８１】
統計パラメータから始まって、統計的検定は、データが（登録の間に）エラー訂正コードからのランダムなコード語でマスクされ（例えば、排他的論理和が取られ）、バイアスをいくらか許容したという仮定の下で、または、データがいくらか許容されたノイズレベルを伴うエラーベクトルであるという仮定の下で、検定パラメータの分布を決定することで構成され得る。いずれの場合も、データがランダムであると仮定することは、ＰＵＦデータは、例えばノイズおよびバイアスについて、ランダムからのいくらかの偏差が許容されるため、満足できる結果を作成しないことに留意されたい。
【００８２】
以下において、特に重要な例、つまり、エラー訂正コードが反復コードであるときのバイアスの検出が編み出されている。
【００８３】
バイアスがヘルパーデータを通じてＰＵＦビットの漏えいをもたらすため、登録の間のバイアス検出は重要である。あるバイアスは、鍵を計算するためにより長いＰＵＦレスポンスを用いることで補償でき、そのため鍵における残余の不確実性がなおも十分に大きく、しかしながらそうであったとしても、ＰＵＦのバイアスは、ＰＵＦが設計された範囲内にあるべきである。実施形態では、統計的検定は、０ビットまたは１ビットについての物理的複製困難関数のバイアスが許容可能なバイアス範囲内であることを確証するように構成されている。
【００８４】
反復コードは、たくさんのエラーを訂正できるが符号の複雑さが非常に小さいため、ＰＵＦノイズ低減にうまく適合されている。実施形態では、エラー訂正コードが、最も内部のコードが反復コードである連接エラー訂正コードであり、エラー訂正反復コードの一続きのコード語が、連接エラー訂正コードから１つまたは複数のコード語を選択することで選択される。
【００８５】
連接コードは、２つ以上のより単純なコードから構成されるエラー訂正コードである。２つのコードから構成される連接コードでは、これらのより単純なコードは、内部コードおよび外部コードと呼ばれる。連接コードのコード語は、メッセージを最初に外部コードに従ってコード化し、その結果を内部コードでコード化するものであり得る。３つ以上のコードがある場合、メッセージは連続するより内部のコードでコード化される。その構成のため、最も内部のコードが反復コードである連接コードが、反復コード語のシーケンスであるコード語を有する。適切な外部コードは、リードソロモンコード、リード−マラーコード、ＢＣＨコード、またはゴレイコードなどであり得る。
【００８６】
反復コードが連接コードの最も内部のコードとして使用されるとき、ヘルパーデータ創成ユニット１３０は、エラー訂正反復コードの一続きの反復コード語を選択し、第１のノイジービットストリングの対応する部分と一続きのうちの各々の反復コード語の排他的論理和（ＸＯＲ）を取るように構成され、したがってヘルパーデータの少なくとも一部を得る。
【００８７】
第１の統計的検定の実施形態は、図２を用いて示されている。
【００８８】
図２は、例えば第１のノイジービットストリング１１２といった、第１のノイジービットストリング２００を示している。
【００８９】
図２は、コード語２１１、２１２、２１３、２１４、および２１５で示された反復コード語のシーケンス２１０をさらに示している。反復コード語は、０ビットだけ、または、１ビットだけから成る。反復コード語は少なくとも２ビットの長さであるが、３ビット、４ビット、５ビット、７ビット、８ビット、１６ビット以上など、より長くてもよい。ｎ≧３での長さｎの反復コードは、
【数５】
2018525920.tif 000007
ビットのエラーまで訂正でき、（ｎ−１）ビットのエラーまで検出できる。図２では、０の反復コード語が空白の四角（２１１、２１４、および２１５）として示され、１の反復コード語が影付きの四角（２１２および２１３）として示されている。影付きは、シーケンス２１０に適用されているだけであり、他の列にはない。１および０のコード語の具体的なシーケンスは、単なる例示である。これらのシーケンスは、ランダムな反復コード語を直接的に生成することで、または、最も内部のコードが反復コードである連接コードからランダムなコード語を生成することで、得られてもよい。例えば、ランダムコード語は、（真の）乱数生成器（別にされて示されていない）を使用して生成されてもよい。
【００９０】
第１のノイジービットストリング２００は、反復コード語２１０と同じ大きさのブロック（部分）へと分割されている。第１のノイジービットストリング２００におけるビットパターンは、例えばＰＵＦ仕様内で、ランダム、または、少なくともランダムに近くなるべきである。
【００９１】
第１のノイジービットストリング２００とシーケンス２１０の排他的論理和は、ＰＵＦレスポンス２００のマスク版である。例えば、コード語のシーケンスは、ヘルパーデータ創成ユニット１３０によって選択されてもよく、この場合、シーケンス２２０はヘルパーデータである。ヘルパーデータ２２０は、コード語と同じ長さのブロックに分割されてもいる。第１の統計的検定は、ＰＵＦレスポンス２００においてではなく、ヘルパーデータ２２０において実施される。この方法では、計算がＰＵＦレスポンスにおいて直接的に実施されないため、ＰＵＦレスポンスにおける重要な情報の漏えいの機会はより少ない。ＰＵＦレスポンスでコード語の排他的論理和を取ることはＰＵＦデータで計算するが、これは、第１にほとんど電力を必要としない計算であり、そのためサイドチャネルへの寄与は小さく、第２に、ヘルパーデータを計算するときにいずれにせよ行われる必要がある演算である。ヘルパーデータにおいて第１の統計的検定を実行することで、プレーンなＰＵＦレスポンスへの追加のアクセスは必要とされない。
【００９２】
実施形態では、第１の統計的検定は、ヘルパーデータ２２０の各々のブロックについてハミング重み（２３１−２３６）を決定することを含む。決定されたハミング重みから、物理的複製困難関数のバイアスが許容可能なバイアス範囲内にあるかどうかが決定される。その決定はいくつかの方法で行うことができる。
【００９３】
例えば、第１の統計的検定は、上側ハミング重み閾値を上回る、または、下側ハミング重み閾値を下回る決定されたハミング重みの数を計数することを含んでもよい。反復コードのブロックの大きさがｎである場合、都合の良い選択は、ｎ−１となるように上側ハミング重み閾値を取り、１となるように下側ハミング重み閾値を取ることである。この方法では、ヘルパーデータ２２０のすべての０のブロックまたはすべての１のブロックだけが計数される。実施形態では、上側ハミング重み閾値はｎ−ｃであり、下側ハミング重み閾値はｃであり、ｃ＜ｎ／２である。例えば、ｃは、１、２、３、または４などであり得る。反復コードのより長いブロックの大きさは、より大きい値のｃを許容する。ｃ≧２の値を使用することは、特により大きいブロックの大きさについて、より極秘となる。
【００９４】
これは、計数器ユニット２４０によって行われてもよい。計数器ユニット２４０の出力、つまり、極端なハミング重みの数は、統計的検定によって計算される統計パラメータである。計数は計数２４２として示されている。
【００９５】
ハミング重みの分布は、増加するバイアスに応じて変化できる。適度なバイアスの場合、通常より大きい（または、小さい）ハミング重みの数は、バイアスがさらに、増加するにつれて増加し始め、分布がいちばん端へとさらに移動する。例えば、長さ８のブロックを考える。１ビットについてのバイアスが増加するにつれて、ハミング重み６および７を伴うブロックの数が増加することになる。しかしながら、バイアスがさらに増大する場合、重み８のブロックの数における増加がそれらを上回るため、ハミング重み６および７を伴うブロックの数は再び減少する。したがって、分布がバイアスと共に変化するため、極端ではないハミング重みを計数するとき、注意が必要である。上側閾値または下側閾値を上回るまたは下回るハミング重みを計数することは、この分布変化によって非対称とされない。
【００９６】
最後に、第１の統計的検定は、例えば、計数２４２が許容された計量されたハミング重み範囲にあるかどうかといった、計数２４２が統計的検定の基準を満たすかどうかを決定する。例えば、基準は、計数２４２が上側係数閾値を下回ることであり得る。極端なハミング重みを伴うヘルパーデータ２２０のブロックが多すぎる場合、ＰＵＦはバイアスされやすい。
【００９７】
任意選択で、基準は、計数２４２が下側計数閾値を上回ることも要求し得る。これは大きなバイアスに関係しないが、それでも極端なハミング重みが少なすぎるため、ＰＵＦのランダム性が欠けていることを指し示している。
【００９８】
上側係数閾値および下側計数閾値についての値は、大きさｎのランダムブロックについてのハミング重みの２項分布と、許容可能な第一種過誤（ＰＵＦが正確に作動しているにも拘らずＰＵＦが不十分なランダム性であるとして分類される可能性）とから導出できる。
【００９９】
代替で、第１の統計的検定は、すべての異なるハミング重みの発生を表にしてもよく、ハミング重みｗ１およびｗ２は、ｗ１＋ｗ２＝ｎの場合にひとまとめにされる。したがって、表は
【数６】
2018525920.tif 000008
の入力を有する。ハミング重み２３０の観察された頻度は、所与のブロックの大きさについてのハミング重みの理論的な（例えば、折り返された２項）分布と比較されてもよく、ＰＵＦのランダムな出力を仮定している。観察された分布が理論的な分布から過度に大きく異なる場合、ＰＵＦは、不十分なランダム性であると見出される。例えば表とされた頻度といった、観察された分布を、理論的な分布と比較することは、いわゆるカイ二乗検定を用いてもよい。この代替は、真のランダム挙動からのよりわずかな偏差を検出するが、その許容されたバイアス範囲など、ＰＵＦの実際のパラメータになおも調節され得る。実施形態では、この検定は、先の検定より長いノイジービットストリングに適合される。
【０１００】
実施形態では、第１の統計的検定は以下のことを含む。
【０１０１】
−  一続きの反復コード語の各々の反復コード語について、前記反復コード語と第１のノイジービットストリングの対応する部分の排他的論理和のハミング重み（２３１−２３６）を決定すること。例えば、ハミング重み２３０が決定され得る。
【０１０２】
−  ｎが反復コード語のビット長である場合に
【数７】
2018525920.tif 000009
以下である各々のハミング重みｗについて、ｗまたはｎ−ｗに等しい決定されたハミング重みの数を計数し、それによってハミング重みの観察された頻度を得ること。例えば、長さｎ＝８の反復コードについては以下の計数が得られる。
【０１０３】
０および８に等しい、１および７に等しいなど、３および５に等しい、ならびに、４に等しいハミング重みの数といった、全体で５の計数がこの場合には得られる。
【０１０４】
−  ハミング重みの観察された頻度と、ＰＵＦについてのハミング重みの特定された頻度とに対して、観察された分布を理論的な分布と比較するために、統計的検定を適用すること。例えば、特定された頻度は、例えば、１／２のバイアスの理想、または、ＰＵＦの実際の仕様に対応するバイアスといった、バイアスを仮定することで、および、ＰＵＦの仕様と反復コード語の数が与えられてのハミング重みの期待される分布を計算することで、得られてもよい。統計的検定は、例えばカイ二乗検定またはコルモゴロフ−スミルノフ検定といった、任意の２つの分布を比較するように設計された一般的な検定とでき、コルモゴロフ−スミルノフ検定は、反復コードのブロック長さが非常に長い場合に適している。統計的検定は、例えば折り返された２項分布といった特定の分布を、観察された分布と比較するための特定の検定であってもよい。観察された分布は、より極秘であるという利点を有する。このような検定は、統計学の文献から知られている。
【０１０５】
−  観察された分布を理論的な分布と比較するための統計的検定が、ハミング重みの観察された頻度とＰＵＦについてのハミング重みの特定された頻度とが分布の閾値より近いことを指示する場合、ＰＵＦが正しく機能することを決定すること。統計的検定は、比較された分布の閾値である統計パラメータを作成することになる。分布の閾値は、例えば１０∧−６など、所望の第一種過誤率から計算できる。
【０１０６】
ハミング重みは、統計的信頼性を維持しつつ情報を素早く要約するための都合の良い方法であるが、しかしながら、物理的複製困難関数が正しく機能することを確証するために第１のノイジービットストリングから生成されたヘルパーデータを登録局面の間に検定する第１の統計的検定は、ハミング重みを必ずしも使用する必要はない。なおもさらにわずかな偏差が、ハミング重みを用いることなく検出されることができる。例えば、第１の統計的検定は以下の検定を実施できる。ｎビットの２∧ｎの可能なビットパターンが、２∧（ｎ−１）の対で分割されてもよく、各々の対における２つのパターンは、互いの補数になっている。各々の対について、対におけるパターンのうちの１つに等しい一続き２２０におけるブロックの数が計数される。最後に、対にわたって観察された分布が、前述したように、理論的な分布と比較される。これらの検定は、対応するビットストリング長さについて計算される適切な閾値を用いて、より短いビットストリングに適用できるが、より長いビットストリングへの適用に適している。
【０１０７】
第１の統計的検定の実用的な例
コードオフセット構成に続いてＰＵＦに基づく鍵生成器を考える。使用されたエラー訂正コードは、外部コードとしての（２４、１２）２進ゴレイコードと、内部コードとしての（８、１）反復コードとの連接である。このコード構成は１５回繰り返される。このコードに基づく鍵生成器は、使用されたＰＵＦが１５％未満のビットエラー率と、バイアスが範囲［４１．８％．．．５８．２％］にある状態で独立同分布している（ｉ．ｉ．ｄ．）ビットとを有する限り、１０−６未満の失敗率で安全な１２８ビット鍵を導出することができる。ＰＵＦのバイアスがこの範囲外になる場合、導出された鍵は潜在的に安全でない。（ｖａｎ  ｄｅｒ  Ｌｅｅｓｔら、ＣＨＥＳ−２０１２を参照）。１０∧−６より大きいまたは小さい失敗率が可能であり、用途に依存する。
【０１０８】
検定詳細：
マスクされた反復コード２進比検定が、使用されたＰＵＦが必要とされる範囲内でバイアスを有することを確証するために使用される。この検定のために、ＰＵＦレスポンスビットがｉ．ｉ．ｄ．であることが仮定される。検定は、この鍵生成器によって作成されているコードオフセットヘルパーデータに適用できるように設定され、そのため、導出されるデータがパブリック情報と考えられるため、検定統計値は極秘情報を漏えいできない。
【０１０９】
コードオフセットヘルパーデータ構成において排他的論理和が取られる８ビット反復コード語と合致するＰＵＦレスポンスの連続８ビットシーケンスが考えられる。全体で、すべてのＰＵＦレスポンスは、１５ｘ２４＝３６０のこのような８ビットシーケンスから成る。これらの８ビットＰＵＦレスポンスシーケンスのハミング重みは、パラメータ（ｎ＝８、ｐ＝ＰＵＦのバイアス）での２項分布に従う。
【０１１０】
（ランダムな）８ビット反復コード語で排他的論理和が取られた後、対応する８ビットヘルパーデータシーケンスのハミング重みは、ＰＵＦレスポンスのハミング重み（反復コード語がすべて０の場合）、または、その補数（反復コード語がすべて１の場合）のいずれかと同じである。したがって、これらの８ビットヘルパーデータシーケンスのハミング重みは、次式によって定められる分布に従う（すべての数学はＭａｔＬａｂでの取り決めを用いている）。
【０１１１】
Ｐｒ［ＨＷ＝ｓ］＝Ｐｒ［ＨＷ＝ｎ−ｓ］＝１／２＊ＢｉｎｏＰＤＦ（ｓ；ｎ，ｐ）＋１／２＊ＢｉｎｏＰＤＦ（ｎ−ｓ；ｎ，ｐ）、
これは０および１の反復コード語がランダムに均一に起こるからである。より一般的には、
Ｓ≠ｎ／２の場合、ｑ（ｓ）＝Ｐｒ［ＨＷ＝ｓまたはｎ−ｓ］＝ＢｉｎｏＰＤＦ（ｓ；ｎ，ｐ）＋ＢｉｎｏＰＤＦ（ｎ−ｓ；ｎ，ｐ）、
さもなければ、ｑ（ｓ）＝Ｐｒ［ＨＷ＝ｓ］＝ＢｉｎｏＰＤＦ（ｓ；ｎ，ｐ）
であると述べることができる。
【０１１２】
したがって、ｑ（ｓ）は、ハミング重みがｓまたはｎ−ｓのいずれかのｎビットのヘルパーデータシーケンスの期待される発生率である。この期待される発生率に基づいて、ｎビットのヘルパーデータシーケンスのセットにおいてハミング重みｓまたはｎ−ｓの発生数における上界および／または下界を決定することもでき、つまり、非常に高い確率で、Ｋ個連続するｎビットのヘルパーデータシーケンスのセットにおけるハミング重みｓまたはｎ−ｓの発生数が、所定の上界（または所定の下界）より小さく（または大きく）なる。我々は、この検定をマスクされた反復コード２進比検定と言及する。
【０１１３】
この例では、我々は、例えばｓ＝０を考える、つまり、（ＨＷ＝０またはＨＷ＝８−０＝８）の発生が、８ビットのヘルパーデータシーケンスについて考えられる。ＰＵＦバイアスについての値は、許容可能なバイアスが安全な鍵生成をなおも有するための閾値、つまり、ｐ＝５８．２％（または、ｐ＝４１．８％）に設定される。これは次式を生じさせる。
ｑ（ｓ＝０）＝ＢｉｎｏＰＤＦ（０；８，５８．２％）＋ＢｉｎｏＰＤＦ（８；８，５８．２％）＝１．４１％
【０１１４】
したがって、観察されたヘルパーデータのうち、Ｋ＝３６０の８ビットシーケンスの平均１．４１％において、または、約５個のシーケンスは、ＰＵＦのバイアスが５８．２％であるとき、０または８のハミング重みを持つと期待される。さらに、これらの状況において、圧倒的な可能性（１−１０−６超）で、ハミング重み０または８を伴う観察された８ビットシーケンスの数は、次式のため、当然ながら２０より小さい。
Ｐｒ［（＃ＨＷ＝０または８を伴う観察されたシーケンス）≦１９］＝ＢｉｎｏＣＤＦ（１９；３６０，１．４１％）＞１−１０−６
【０１１５】
ハミング重み（０または８）の２０以上の観察が起こる可能性が非常に低いため、これは上界として設定できる。ハミング重み（０または８）の観察の数が１９を超える場合、非常に高い可能性で、これはＰＵＦの高すぎるバイアスのためであり、マスクされた反復コード２進比検定は失敗を出力することになる。この例の鍵生成器についてのこの検定の基本的な流れは、図３ａに示されている。
【０１１６】
図３ｂは、０または８のＨＷで、３６０個のシーケンスにおける２０個未満の８ビットシーケンスを観察する上界を用いて、ｎ＝８ビット反復コードに関してのマスクされた反復コード２進比検定についての失敗率曲線を示している。この検定は、許容可能なバイアス区間［４１．８％．．．５８．２％］について、１０−６未満の失敗率を有し、その区間の外側でより高い失敗率を有するように調節されていた。検定の失敗は、この検定に従っては、バイアスが許容できないことを指し示している。
【０１１７】
失敗を出力する検定の確率は、ＰＵＦの実際の真のバイアスに依存する。提示されている例については、この関係は図３ｂに示されている。この曲線は、範囲［４１．８％．．．５８．２％］における許容可能なバイアスについて、検定の失敗率が１０−６未満であることを示している（したがって、検定は、許容可能なバイアスでＰＵＦを誤って拒絶する１０−６未満の非常に小さいフォールスリジェクションレートを有する）。しかしながら、バイアスが許容可能な区間の外側である場合、検定の失敗率は１０−６を超えて急激に上昇し、７０％超または３０％未満のバイアスについて、１００％にすぐに到達する（検定によって検出された１００％の確実性を伴わない、おおよそ［３０％．．．４１．８％］および［５８．２％．．．７０％］といった、許容できないバイアスレベルの特定の区間がある）。
【０１１８】
検定がＰＵＦにおいていくらかのバイアスを許容するために調節され得ることに留意されたい。この場合、許容可能なバイアス区間内にバイアスを伴うＰＵＦは、正確に機能するとして解釈されるべきである。完璧な５０−５０のバイアスからの偏差を検出するだけの統計的検定は、多くのＰＵＦが適度なバイアスを有するため、実際のところ有用ではない。このような適度なバイアスは、（例えば、完璧なバイアスを伴うＰＵＦについて必要とされるよりも、暗号鍵または乱数シードを導出するためにより大きいＰＵＦレスポンスを用いる）暗号装置の残りの部分が適度なバイアスを考慮するように設計され得るため、許容可能である。このようなシステムであっても、ＰＵＦが許容可能なバイアス区間の外側にあるバイアスを有する場合、問題が生じる可能性がある。実施形態では、統計的検定は、０ビットまたは１ビットについての物理的複製困難関数のバイアスが許容可能なバイアス範囲内であることを確証するように構成されている。
【０１１９】
この検定は、他の許容可能なバイアスレベル、および、提示した数式に基づかれる他の必要とされる検定失敗率のために調節されてもよい。さらに、検定は、例えば、ＨＷ＝（１もしくは７）またはＨＷ＝４、．．．といった、他のハミング重み観察のために調節されてもよく、許容可能なハミング重み観察の数についての上界または下界をもたらすことができる。異なるハミング重み観察を伴う検定の組み合わせを用いることも可能である。検定は、他の反復コード長さについて同様に採用されてもよい。
【０１２０】
第２の統計的検定１２４
第１の統計的検定と同様に、第２の統計的検定も、ＰＵＦレスポンスにおける新たな演算の導入を回避するために、ヘルパーデータを使用する。第１の統計的検定は、登録局面の間にＰＵＦレスポンスから生成されるヘルパーデータにおいて演算できる。第２の統計的検定は、登録局面の間に生成される同じヘルパーデータと、再構成局面の間に生成されるＰＵＦレスポンス出力とにおいて演算できる。
【０１２１】
図１を参照する。再構成局面の間、ＰＵＦ１１０は第２のノイジービットストリング１１４を生成する。正規化部１５０は、第２のノイジービットストリング１１４を、ヘルパーデータ記憶部１３２において登録の間に記憶されたヘルパーデータ１４４と組み合わせる。２進データについて、ヘルパーデータ１４４と第２のノイジービットストリング１１４は排他的論理和が取られ得る。正規化演算の結果は、コード語、またはコード語のシーケンスに近いビットストリングが得られることである。後者は、訂正可能ビットストリングと言及されてもよい。エラー訂正ユニット１５２は、エラー訂正アルゴリズムを訂正可能なビットストリングに適用する。エラー訂正アルゴリズムは、登録コード語が引き出されたエラー訂正コードに対応する。エラー訂正の後、再現可能な暗号鍵が導出され得る信頼できるビットストリングが得られる。
【０１２２】
第２の統計的検定は、訂正されたエラーの数から、ＰＵＦに関する結果を引き出す。興味深いことに、第２の統計的検定は、ＰＵＦが最小の数のエラーを有することを必要とする。エラーが少なすぎることは、ＰＵＦのノイズが少なすぎ、そのため乱数シードを導出するのに適していないという合図である。
【０１２３】
実施形態では、統計的検定は第２の統計的検定１２４を含んでいる。第２の統計的検定（１２４）は、ヘルパーデータ記憶部に記憶されたヘルパーデータを用いて、再構成局面の間に実行される。エラー訂正ユニットは、第１のノイジービットストリングと第２のノイジービットストリングとの間の差異ビットの数、つまり、訂正エラーの数を計数するように構成される。第２の統計的検定は、異なるビットの数が差異閾値より大きい場合、正しく機能することを決定する。
【０１２４】
図４ａは、これを行う１つの方法を示している。例えばノイジービットストリング１１４といった、第２のノイジービットストリング５００が示されている。第２のノイジービットストリング５００は、再構成局面の間にＰＵＦ１１０から直接的に得られてもよい。第２のノイジービットストリング５００は、例えば、エラー訂正部１５２によって訂正されるエラー訂正コードのコード語の訂正可能な近傍にマッピングされるといった、正規化部１５０によって正規化されることになる。実施形態では、エラー訂正ユニット１５２は、第２のノイジービットストリング５００とヘルパーデータから登録コード語を決定する。登録コード語およびヘルパーデータから、元の第１のノイジービットストリングが計算され得る。ヘルパーデータを作り出すために以前に使用された第１のノイジービットストリングは、第１のノイジービットストリング５１０として、図４ａに示されている。第２のノイジービットストリング５００と第１のノイジービットストリング５１０との間の差異は、エラーベクトル５２０である。２進の場合について、エラーベクトル５２０は、ビットストリング５００と５１０における排他的論理和演算によって得ることができる。エラーベクトル５２０は、第１および第２のノイジービットストリングがどこで異なるかを指し示す。例えば計数器ユニットといったハミング重み演算器５４０は、エラーベクトル５２０のハミング重み５４２を計算する（例えば、エラーベクトル５２０における１ビットを計数するように構成された計数機ユニット５４０）。
【０１２５】
ＰＵＦが暗号鍵を導出するのに適しているため、エラーベクトル５２０のハミング重み、つまり、エラー計数５４２は、ある閾値未満となる。そうでない場合、ＰＵＦは信頼できる鍵を導出するには不安定すぎる。ＰＵＦにおけるエラーの数が期待されているよりも大きくなるかどうかを確証するための必要性がより小さくなる。ＰＵＦが期待されるよりも多くのエラーを有する場合、これは、再構成局面の間に導出された暗号鍵が登録局面の間に導出された鍵と異なりやすいため、やがて明らかになる可能性がある。そのため、再構成鍵での復号演算などが、失敗することになる。この状況は残念であるが、少なくとも、ＰＵＦが失敗したことは明らかである。ＰＵＦが失敗したことは、エラー計数５４２が小さすぎる場合、不明確である。
【０１２６】
乱数シードが、十分なエントロピを有する第２のノイジービットストリング５１０から導出される場合、このベクトルのハミング重みは十分に大きくなるべきである。実施形態では、第２の統計的検定は、異なるビットの数が差異閾値より大きい場合、正しく機能することを決定する。
【０１２７】
エラーベクトル５２０におけるエラーの分布は、エラーベクトル５２０にわたってランダムに分布されるべきである。実施形態では、第２の統計的検定は、エラーベクトル５２０における１ビットの分布が、ＰＵＦが設計されているランダム性からさらに異なることがないことを確証する。有意性は用途に依存する可能性があり、例えば、１０∧−６の有意水準が使用されてもよい。分布は、エラーベクトル５２０を複数の部分で分割し、各々の部分のハミング重みが閾値より大きいことを決定することで確証されてもよい。実施形態では、エラーベクトル５２０は、計算開始の前に十分に計算される必要はない。エラーベクトル５２０の部分は、ハミング重みへの寄与が計数され、その後にその部分が廃棄され、エラーベクトル５２０の次の部分が計算されてもよい。
【０１２８】
エラーベクトル５２０における統計的検定を実施することは、具体的には、ＰＵＦのノイズエントロピを検定する。良好なＰＵＦについて、典型的には、装置間エントロピは、ノイズエントロピを支配する。したがって、第２のノイジービットストリングにおける、例えばＦＩＰＳ検定といった従来の乱数検定は、ノイズエントロピが低すぎる場合であっても、高い確率で成功することになる。
【０１２９】
ＰＵＦに基づく鍵生成のエラー訂正過程では、登録手続きと再構成手続きとの間で異なるＰＵＦレスポンスビットが訂正される。この検定は、特定の大きさのＰＵＦブロックにおいて訂正されるビットの数を計数する。多くのエラー訂正手続きでは、エラー計数５４２がいずれにしても二次的な出力として提供されることに留意されたい。この場合、追加の計算は、差異の総数を得るために必要とされない。
【０１３０】
第２の統計的検定１２４の実施形態では、計算された統計パラメータは、第１のノイジービットストリングと第２のノイジービットストリングとの間の差異の総数である。この形の実施形態は図４ａに示されている。差異の総数は、ノイズエントロピについての直接的な情報を与え、例えば差異の総数の閾値より小さいといった、差異の総数が小さすぎる場合、ＰＵＦは、小さすぎるノイズエントロピを有するとして解釈される可能性がある。この場合、乱数シードをＰＵＦから導出することは勧められない。しかし、鍵を第２のノイジービットストリングから再構成することはなおも可能である。装置間エントロピは、ノイズエントロピが小さすぎるとしても十分であり得る。
【０１３１】
第２の統計的検定１２４の実施形態では、計算された統計パラメータは、第１のノイジービットストリングと第２のノイジービットストリングとの間の差異において最も長い一連の差異ビットである。第２の統計的検定１２４の実施形態では、計算された統計パラメータは、第１のノイジービットストリングと第２のノイジービットストリングとの間の差異において最も長い一連の非差異ビットである。図４ｂはこれらの実施形態を示している。図４ｂは、例えば、再構成された第１のノイジービットストリングと第２のノイジービットストリングとの間の排他的論理和といった、エラーベクトルの一部を示しており、例えばエラーベクトル５２０の一部を示している。この実施形態では、１ビットは差異に対応し、エラーとも言及され、０ビットは非差異に対応し、すなわち第１のノイジービットストリングと第２のノイジービットストリングとが一致する位置である。最も長い一連の統計値は、第２のノイジービットストリングにおけるノイズの分布についての情報を提供する。例えば、統計的検定は、最も長い一連の差異ビットが、上側の最も長い一連の差異ビット閾値を上回る、または、下側の最も長い一連の差異ビット閾値を下回ることを決定できる。例えば、統計的検定は、最も長い一連の非差異ビットが、上側の最も長い一連の非差異ビット閾値を上回る、または、下側の最も長い一連の非差異ビット閾値を下回ることを決定できる。上側または下側の最も長い閾値は、設計された許容可能なノイズ範囲でＰＵＦについての一連の理論的分布を決定することで計算され得る。
【０１３２】
参照５２１において、一連の差異が見られ、例えば、すべてエラーであるエラーベクトルにおける一続きの連続ビットが見られる。参照５２２において、一連の非差異が見られ、例えば、すべて非差異であるエラーベクトルにおける一続きの連続ビットが見られる。図４ｂでは、最も長い一連、すなわち、少なくともエラーベクトルの示した部分の最も長いところが、指し示されている。
【０１３３】
最も長い一連の決定は漸次的に行われてもよい。この場合、エラーベクトルは、任意の具体的なときに装置１００において完全には利用可能である必要はない。エラーベクトルの一部が計算されてもよく、統計パラメータが更新され、エラーベクトルの一部は新たな部分によって置き換えられる。
【０１３４】
これらの実施形態では、ＰＵＦレスポンスは登録と再構成との間で再評価され、そうでなければ検定は有意義な結果を作成できない。
【０１３５】
理論的には、ＰＵＦが、例えば安定性とランダム性との両方が十分であるといった、正確に作動している場合、同じ第２のノイジービットストリングが、暗号鍵を再構成するために、および、乱数シードを導出するために、使用されてもよい。乱数シードは、訂正されていない第２のノイジービットストリングから計算され、暗号鍵は、訂正された第２のノイジービットストリングから再構成される。例えば、実施形態では、乱数シード生成ユニット１４０は、第２の統計的検定が正しく機能することを指示する場合のみ、エントロピ集中関数を第２のノイジービットストリングに適用することで、乱数シードを生成するように構成されている。乱数シードが十分に長く十分にランダムである場合、訂正されていない第２のノイジービットストリングにおけるノイズは、訂正されていない第２のノイジービットに存在するあらゆる情報を支配することになる。この場合、例えば暗号ハッシュ関数といった、強力な非可逆的エントロピ集中関数が望ましい。
【０１３６】
しかしながら、暗号鍵についての情報が乱数作成を通じて漏えいし得るあらゆる機会を回避するために、異なるＰＵＦレスポンスが乱数シードを作成するために使用されてもよい。例えば、実施形態では、物理的複製困難関数１１０は、再構成局面の間に、第２のノイジービットストリング１１４と、さらなるノイジービットストリング１１６とを作成するように構成され、第２のノイジービットストリング１１４とさらなるノイジービットストリング１１６とは重ならない。乱数シード生成ユニット１４０は、第２の統計的検定が正しく機能することを指示する場合のみ、エントロピ集中関数をさらなるノイジービットストリングに適用するように構成されている。これは、乱数が暗号鍵についての情報を漏えいできないという利点を有する。
【０１３７】
例えば、実施形態では、ＰＵＦはメモリに基づかれ、第１および第２のノイジービットストリングは第１のメモリアドレスから得られ、さらなるノイジービットストリングは第２のメモリアドレスから得られ、第１および第２のメモリアドレスは異なり、好ましくは重ならない。第１および第２のノイジービットストリングは、例えば同じアドレスといった、同じ第１のチャレンジに対するレスポンスとして解釈でき、さらなるノイジービットストリングは、第１のチャレンジと異なり、例えば異なるアドレスといった、第２のチャレンジに対するレスポンスとして解釈できる。他のＰＵＦがその手法で使用されてもよく、例えば、遅延ＰＵＦが、第１および第２のノイジービットストリングを作成するために第１のチャレンジでチャレンジされ、さらなるノイジービットストリングを作成するために、再構成の間に第２のチャレンジでチャレンジされてもよい。
【０１３８】
図５は、さらなるノイジービットストリング１１６を用いる実施形態を示している。例えば、この実施形態では、第２のノイジービットストリングは、正規化部１５０によって、例えばコード語の訂正可能な近傍における語といった、訂正可能なビットストリングにマッピングされてもよい。第２の統計的検定は、訂正された第２のノイジービットストリングと、訂正されていないノイジービットストリングとの間の差異において実施され、訂正された第２のノイジービットストリングが第１のノイジービットストリングと同じであることに留意されたい。ＰＵＦが、例えば十分なエントロピまたは十分なノイズを有するなど、その仕様内で作動していることを第２の統計的検定が指し示す場合、乱数シードはここではさらなるノイジービットストリング１１６から導出される。実施形態では、第２のノイジービットストリングおよびさらなるノイジービットストリングは、それらがＰＵＦの異なる部分から得られるため、統計的に独立しているが、第１および第２のノイジービットストリングは、ノイズを除いて同じである。
【０１３９】
実験は、第２のノイジービットストリングから計算された統計値がＰＵＦ全体を表しており、そのためさらなるノイジービットストリングも表していることを示している。この関係は、第２のノイジービットストリングおよびさらなるノイジービットストリングをインターリーブすることでさらに向上できる。例えば、ＰＵＦはメモリに基づくＰＵＦとでき、第１および第３のメモリは、さらなるビットストリングへの寄与に対処し、第２および第４のメモリは、第２のノイジービットストリングへの寄与に対処し、第１のアドレスは第２のアドレスより小さく、第２のアドレスは第３のアドレスより小さく、第３のアドレスは第４のアドレスより小さい。
【０１４０】
第２の統計的検定の実用的な例
メモリに基づくＰＵＦレスポンスの１キロバイト（８１９２ビット）部分が、１２８ビットの安全強度を伴うＤＲＢＧのシードのために使用される。８１９２ビット部分はさらなるＰＵＦレスポンスである。［ＮＩＳＴ、ＳＰ８００−９０Ａ、Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ｆｏｒ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｉｏｎ  Ｕｓｉｎｇ  Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  Ｒａｎｄｏｍ  Ｂｉｔ  Ｇｅｎｅｒａｔｏｒｓ］によれば、このＰＵＦレスポンスデータのノイズの最小エントロピは、少なくとも１９２ビットとなるべきである。このＰＵＦは、［４０％−６０％］内のバイアスのために設計されている。このようなＰＵＦが十分なノイズ最小エントロピに８１９２ビットを提供するために、その（平均）ビットエラー率は、少なくとも２．６％となる必要があるように決定される。
【０１４１】
このＰＵＦレスポンスの別の部分（２８８０ビット）は、鍵生成のために使用される。これらは第１および第２のノイジービットストリングである。この部分は、ＤＲＢＧのシードのために使用される部分とは完全に別とできるが、それらは同じＰＵＦに由来するため、バイアスおよびビットエラー率に対して同じ品質を有すると仮定される。鍵生成のために使用される部分は、ＰＵＦレスポンスにおけるビットエラーの存在下で同じ鍵を再構成するために、エラー訂正構成（例えば、コードオフセットヘルパーデータ構成）に通される。
【０１４２】
検定詳細：
鍵再構成の間に、鍵生成器は、そのノイズのある形態とそのエラー訂正形態との両方において、ＰＵＦレスポンスの一部へのアクセスを有するため、起こったビットエラーの数を計数できる。この計数の観察に基づいて、ビットエラー率が少なくとも２．６％であるという仮定の下でこれが現実的な観察であるかどうかかが決定され得る。具体的には、観察されたビットエラーの数についての下側の閾値を決定できる。
Ｔ＝ＢｉｎｏＣＤＦ−１（１０−６；２８８０，２．６％）＝３８
【０１４３】
観察されたビットエラーの数がこの閾値を下回る場合、高い確率（１−１０−６超）で、これは平均ビットエラー率が十分に高くないためである。その場合、このビットエラー数検定は失敗を出力することになる。この例の鍵生成器についてのこの検定の基本的な流れは、図６ａに示されている。原理的にこの状況における失敗検定は、鍵生成自体についての結果を有しておらず、検定結果（鍵生成に基づかれる）は、ＤＲＢＧのシードにとっての重要性のものだけであることに留意されたい。
【０１４４】
失敗を出力する検定の確率は、ＰＵＦの実際の真のビットエラー率に依存する。提示されている例については、この関係は図６ｂに示されている。図６ｂは、２．６％超の許容可能なビットエラー率について、１０−６未満の失敗率を有するように調節されたビットエラー数検定についての失敗率曲線を示している。この具体的な検定は、２８８０ビットＰＵＦレスポンス部分における観察されたビットエラーの数が３８より小さい場合、失敗を出力する。検定の失敗は、この検定に従っては、ビットエラー率（ノイズ最小エントロピ）が許容できないことを指し示している。
【０１４５】
この曲線は、２．６％より大きい許容可能なビットエラー率について、検定の失敗率が１０−６未満であることを示している（したがって、検定は、許容可能なビットエラー率を有するＰＵＦを誤って拒絶する１０−６未満の非常に小さいフォールスリジェクションレートを有する）。しかしながら、平均ビットエラー率が許容可能な限度より小さい場合、検定の失敗率は１０−６を超えて上昇し、１．０％未満の平均ビットエラー率について１００％に近付く。検定によって検出される１００％の確実性を伴わない、おおよそ［１．０％．．．２．６％］の、許容できない平均ビットエラー率の特定の区間がある。異なる用途に応じて、第一種過誤と第二種過誤の間の異なるトレードオフと対応するエラーレベルが作られてもよい。この検定は、他の許容可能な平均ビットエラー率レベル、および、提示した数式に基づかれる他の必要とされる検定失敗率のために調節されてもよい。
【０１４６】
典型的には、装置１００は、装置１００において記憶される適切なソフトウェアを実行するマイクロプロセッサ（図示せず）を備えており、例えば、そのソフトウェアは、例えば、ＲＡＭなどの揮発性メモリまたはフラッシュなどの不揮発性メモリといった（図示せず）、対応するメモリにダウンロードおよび／または記憶されていてもよい。代替で、装置１００は、全部または一部で、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）として、プログラマブル論理で実装されてもよい。装置１００は、全部または一部で、いわゆる特定用途向け集積回路（ＡＳＩＣ）、つまり、それらの特定の使用のためにカスタマイズされた集積回路（ＩＣ）として実装されてもよい。
【０１４７】
実施形態では、装置１００は、物理的複製困難関数回路、ヘルパーデータ創成回路、統計回路、鍵導出回路、エラー訂正回路、乱数シード生成回路、正規化回路、および／またはヘルパーデータ記憶回路を備える。回路は、本明細書に記載した対応するユニットを実装する。回路はプロセッサ回路および記憶装置回路とでき、プロセッサ回路は、記憶装置回路における電子的に表された命令を実行する。回路はＦＰＧＡまたはＡＳＩＣなどであってもよい。
【０１４８】
図７は、暗号方法の例についての流れ図を概略的に示している。方法７００は、例示の実施形態であり、任意選択の特徴を含んでおり、実施形態では、方法７００は、本明細書に記載されているように構成され得る。方法７００は、装置１００、１０１、１１１０などの装置において実行され得る。
【０１４９】
暗号方法７００は登録局面７１０と再構成局面７３０とを含む。
【０１５０】
登録局面７１０は、
−  第１のノイジービットストリング（１１２）を物理的複製困難関数（ＰＵＦ  １１０）で作成するステップ７１２と、
−  再構成局面の間に、暗号鍵を第２のノイジービットストリング（１１４）から決定するために、第１のノイジービットストリングからヘルパーデータを生成するステップ７１４と、
−  第１のノイジービットストリングから生成されたヘルパーデータにおいて第１の統計的検定を実行するステップ７１６と
を含む。
【０１５１】
例えば、装置間エントロピが小さすぎるように見え、または、ＰＵＦのバイアスが大きすぎるといった、ＰＵＦが正確に機能しないことを第１の統計的検定が指し示す場合、ヘルパーデータは廃棄される（７１８および７２０）。一部の装置では、例えば、異なるチャレンジを試す、および、新たな第１のノイジービットストリングを作成するといった、回復機構があってもよい。ＰＵＦが単一回チャレンジのＰＵＦである場合、同じチャレンジが再び適用されてもよく、例えば、ＳＲＡＭを再電源投入するといった、メモリを再電源投入することで、メモリに基づくＰＵＦの場合である。他の装置では、装置は全体で廃棄されなければならない可能性がある。
【０１５２】
再構成局面７３０は、
−  第２のノイジービットストリング（１１４）を物理的複製困難関数（ＰＵＦ  １１０）で作成するステップ７３２と、
−  第１のノイジービットストリング（１１２）を第２のノイジービットストリング（１１４）およびヘルパーデータから再構成するステップと、
−  例えば、暗号鍵が、ハッシュ関数を適用することでなど、第１のノイジービットストリングから導出され得るといった、暗号鍵を決定するステップ７３６と、
−  第１のノイジービットストリングと第２のノイジービットストリングとの間の差異を決定するステップ７３８と、
−  前記差異において第２の統計的検定を実行するステップ７４０と
を含む。
【０１５３】
ＰＵＦが第２の統計的検定によると正確に作動している７４２場合、エントロピ集中関数が乱数シードを生成するために適用される７４４。エントロピ集中関数は、第２のノイジービットストリングの全部または一部に適用されてもよく、または、ＰＵＦ１１０のさらなるレスポンスに適用されてもよい。
【０１５４】
当業者には明らかとなるように、方法を実行する多くの異なる方法が可能である。例えば、ステップの順番は変更されてもよく、または、一部のステップは並行して実行されてもよい。さらに、ステップ同士の間で、他の方法ステップが挿し込まれてもよい。挿し込まれたステップは、本明細書に記載されているものなどの方法の改良を表してもよく、または、方法に関係されてなくてもよい。例えば、ステップ７３６および７４０は、少なくとも部分的に、平行して実行されてもよい。さらに、所与のステップは、次のステップが開始される前に完全には完了していなくてもよい。
【０１５５】
本発明による方法は、プロセッサシステムに方法７００を実施させるための命令を含むソフトウェアを用いて実行されてもよい。ソフトウェアは、システムの特定の下位エンティティによって取られるステップを含むだけでもよい。ソフトウェアは、ハードディスク、フロッピ、メモリなど、適切な記憶媒体に記憶され得る。ソフトウェアは、有線もしくは無線に従って、または、インターネットなどのデータネットワークを用いて、信号として送信されてもよい。ソフトウェアは、ダウンロードで、および／または、サーバにおける遠隔使用で利用可能とされてもよい。本発明による方法は、方法を実施するために、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）といった、プログラマブル論理を構成するように配置されたビットストリームを用いて実行されてもよい。
【０１５６】
本発明が、本発明を実行するように適合された、特にはキャリア上またはキャリア内におけるコンピュータプログラムであるコンピュータプログラムにも拡張することが理解されよう。プログラムは、ソースコード、オブジェクトコード、コード中間ソース、および、部分的にコンパイルされた形態などのオブジェクトコードの形態で、または、本発明による方法の実施での使用に適した任意の他の形態であり得る。コンピュータプログラム製品に関連する実施形態は、前述した方法のうちの少なくとも１つの処理ステップの各々に対応するコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに分割されてもよい、および／または、静的または動的にリンクされ得る１つまたは複数のファイルで記憶されてもよい。コンピュータプログラム製品に関連する別の実施形態は、前述したシステムおよび／または製品のうちの少なくとも１つの手段の各々に対応するコンピュータ実行可能命令を含む。
【０１５７】
図８ａは、コンピュータプログラム１０２０を含む書き込み可能部１０１０を有するコンピュータ可読媒体１０００を示しており、コンピュータプログラム１０２０は、実施形態による、プロセッサシステムに暗号方法を実施させるための命令を含む。コンピュータプログラム１０２０は、物理的な印として、または、コンピュータ可読媒体１０００の磁化を用いて、コンピュータ可読媒体１０００に具現化され得る。しかしながら、任意の他の適切な実施形態が同じく考えられる。さらに、コンピュータ可読媒体１０００は、光学ディスクとしてここでは示されているが、ハードディスク、ソリッドステートメモリ、フラッシュメモリなど、任意の適切なコンピュータ可読媒体であってよく、書き込み不可能または書き込み可能であり得ることが理解されよう。コンピュータプログラム１０２０は、プロセッサシステムに前記暗号方法を実施させるための命令を含む。
【０１５８】
図８ｂは、実施形態によるプロセッサシステム１１００の概略的な描写を示している。プロセッサシステムは、１つまたは複数の集積回路１１１０を備えている。１つまたは複数の集積回路１１１０のアーキテクチャは、図８ｂに概略的に示されている。回路１１１０は、実施形態による方法を実行するために、および／または、そのモジュールもしくはユニットを実装するために、コンピュータプログラム構成要素を実行するための、例えばＣＰＵといった、処理ユニット１１２０を備えている。回路１１１０は、プログラムコード、データなどを記憶するためのメモリ１１２２を備えている。メモリ１１２２の一部は読み取り専用であり得る。回路１１１０は、例えばアンテナ、コネクタ、またはその両方など、通信要素１１２６を備えてもよい。回路１１１０は、方法で定められた処理の一部または全部を実施するための専用集積回路１１２４を備えてもよい。プロセッサ１１２０、メモリ１１２２、専用ＩＣ１１２４、および通信要素１１２６は、バスといった相互接続部１１３０を介して互いと接続され得る。プロセッサシステム１１１０は、アンテナおよび／またはコネクタをそれぞれ使用して、接触および／または非接触の通信のために構成されてもよい。
【０１５９】
前述の実施形態が本発明を限定するのではなく例示していることと、当業者が多くの代替の実施形態を設計できることとは、留意されるべきである。
【０１６０】
クレームにおいて、丸括弧の間に配置された参照符号は、クレームを限定するとして解釈されるものではない。「備える（ｃｏｍｐｒｉｓｅ）」という動詞およびその活用形の使用は、クレームにおいて述べられたもの以外の要素またはステップの存在を排除しない。要素に先行する「１つ（ａまたはａｎ）」という冠詞は、このような要素の複数の存在を排除しない。本発明は、いくつかの別個の要素を備えるハードウェアを用いて、および、適切にプログラムされたコンピュータを用いて、実施されてもよい。いくつかの手段を列記する装置クレームでは、これらの手段のうちのいくつかは、１つの同じハードウェアの品物によって具現化されてもよい。特定の方策が相互に異なる独立クレームにおいて提唱されているという事実だけによって、これらの方策の組み合わせが有利になるように使用できないということを指し示すことはない。
【０１６１】
クレームでは、丸括弧における参照は、実施形態の図面における符号、または、実施形態の式に言及しており、それによってクレームの理解度を高めている。これらの参照は、クレームを限定するとして解釈されるものではない。
【図１】
2018525920.tif 000011
【図２】
2018525920.tif 000012
【図３ａ】
2018525920.tif 000013
【図３ｂ】
2018525920.tif 000014
【図４ａ】
2018525920.tif 000015
【図４ｂ】
2018525920.tif 000016
【図５】
2018525920.tif 000017
【図６ａ】
2018525920.tif 000018
【図６ｂ】
2018525920.tif 000019
【図７】
2018525920.tif 000020
【図８ａ】
2018525920.tif 000021
【図８ｂ】
2018525920.tif 000022
【国際調査報告】
2018525920.tif 000023
2018525920.tif 000024
2018525920.tif 000025