本発明は実施形態を多くの異なる形態で受け入れる余地があるものの、本開示が本発明の原理の例示として考えられるべきであり、図示され説明されている特定の実施形態に本発明を限定するよう意図されてはいないという理解の下に、1つまたは複数の特定の実施形態が図面に示され、本明細書において詳細に説明される。
次に、理解しやすくするために、実施形態の要素は、動作に関して説明される。しかしながら、それぞれの要素は、それらによって実行される通りに説明されている機能を実行するように配置構成されていることは明らかになるだろう。
図1aおよび1bは、バイアスを通じてのエントロピー損失の概略を示している。図1aおよび1bには、登録時の「エントロピーの流れ」の概念が図示されている。なお、図1aおよび1bのボックスの相対的サイズは、PUF応答、ノイズ低減データ、および鍵の相対的サイズを必ずしも示さない。
PUF10は、特定の量のエントロピーを持つ応答11を生成する。登録手続きは、PUF応答に含まれるエントロピーの比較的大きな部分を公開するノイズ低減データ12を生成する。ノイズ低減データ公開の後の残りのエントロピーは、暗号的に安全な秘密鍵を生成するために使用される。完全にランダムな鍵を取得するために、鍵の長さ(ビット単位)は、ノイズ低減データ公開により低減されたPUF応答エントロピーよりも決して大きくなり得ない。
実際、ファジー抽出器は、特定のノイズレベルおよび特定の量のエントロピーを持つ応答を発生する特定のタイプのPUFを扱うように設計され得る。基本の誤り訂正符号のパラメータは、最大予想数のビット誤りを取り扱うことができるように選択される。これらのパラメータから、1回の応答に対する結果として生じるノイズ低減データ公開が計算され、したがって、残りの鍵エントロピーも計算され得る。最後に、PUFのサイズ(応答内のビットの個数)は、完全エントロピー鍵を抽出するために鍵エントロピーの十分な総量が残されるまで増やされる。
PUF応答エントロピーは、PUF応答におけるバイアスの存在によって、すなわち、2値応答0が1よりもシステマティックに多く見られる(またはその逆の)場合に、低減される。バイアスによるエントロピー損失は、図1aおよび1bにおいて参照番号15で示されている。
エントロピーフローが与えられた量の応答エントロピーのために設計されているファジー抽出器を仮定する。図1aは、わずかなバイアスの場合を示す略図である。PUF応答11の陰影部分15は、バイアスによる図1aの元々の状況に関するエントロピーの低減である。応答エントロピーが低減されるので、これは、ノイズ低減データ公開および鍵データ13内の残りのエントロピーに対しても影響し、最終的な暗号鍵は、鍵データ13から導出される。始めにエントロピーが少なく、ノイズ低減データの公開後に残されているエントロピーが少ないので、残りの鍵エントロピーは低減される。これは、鍵データ13がバイアスがない場合に予想されるのと比べてあまりランダムでないので、問題になり得る。PUF応答におけるバイアスによって引き起こされる、鍵エントロピーのこの低減は、鍵漏洩と呼ばれる。
たとえば大きなバイアスがあることで、PUF応答エントロピーが著しく低減される状況では、鍵漏洩は、非常に大きなものとなり得る。これは、図1bに示されている。その場合、応答エントロピーは小さいので、ノイズ低減データの公開後に残されているものはない。したがって、鍵を抽出する秘密の素材は残されていない。実際、このことは、ノイズ低減データは、鍵によって使用されるエントロピーを含む、応答エントロピーすべてを公開することを意味する。言い替えれば、鍵は、ノイズ低減データから導出され得る。ファジー抽出器は、したがって、全く安全でなくなる。
バイアス除去データを使用しない、鍵漏洩問題への可能な代替的ソリューションは、PUF応答エントロピーが低減される最悪の場合に合わせてファジー抽出器を設計することである。言い替えれば、ファジー抽出器は、出来る限り低減されたエントロピーを取り扱うためのエントロピーマージンがあるように設計される。しかしながら、このソリューションには多数の問題がある:
1.エントロピーマージンは、PUF応答エントロピーの小さな低減にしか対処できない(たとえば、数パーセントのオーダーの小さなバイアス)。マージンは、PUF応答エントロピーが減少するときに非常に速く激減する。
2.ファジー抽出器の設計は、わずかに低減するエントロピーであってもPUFを考慮するときにたちまち非常に不効率なものとなる。PUF応答内に存在するほぼすべてのエントロピーは、ノイズ低減データによって公開されるので、PUFのサイズ(応答ビットの個数)は、安全な鍵を導出するためにある程度のエントロピーが残されるため非常に大きなサイズになる必要がある。
3.従来の方法を使用することで、PUF応答エントロピーが著しく低減される場合に(たとえば、大きなバイアスにより)鍵エントロピーが残されているファジー抽出器を設計することは全く不可能になることがある。PUFのサイズを大きくしても、応答ビット毎の実効エントロピー寄与分が0になるので、その場合に役立ち得ない。
鍵漏洩問題に対する別のアプローチは、非常に高い、または完全ですらあるエントロピーを持つ応答を生成するPUFをのみを考慮するものである。このアプローチは、バイアス除去データを必要としない。これは、ファジー抽出器設計からPUF構築に鍵漏洩問題をシフトすることなので、実際にはソリューションにならない。理想的とは言えないPUF設計だが、それを使用し続けることが望まれている。さらに、このオプションには多数の問題がある:
1.バイアスしていないPUF応答のために設計されているファジー抽出器には、常に偶然に一致して生じる可能性のある最もわずかなバイアスですら対処するためのマージンはほとんどまたは全くない。
2.その構造のせいで、いくつかのタイプのPUFは、本質的に、バイアスされた、または低減されたエントロピー応答を有する。したがって、このソリューションは、これらのタイプのPUFに対して適用可能でない。
3.典型的には高エントロピー応答を有するPUFタイプであっても、完全にバイアスしていない応答をほんの滅多にしか有しない。PUFタイプのバイアスを推定するときに特定のレベルの不確定性を常に有する。さらに、現場における数千または数百万のPUFインスタンスを用いる実用的なアプリケーションでは、バイアスが平均的な「バイアスしていない」場合から著しく逸脱する可能性のある外れ値のインスタンスも考慮しなければならない。
4.PUF応答のバイアスは、PUF構造の外部の条件、たとえば、温度の影響も受け得る。すべての状況下でファジー抽出器を安全に動作させたい場合、PUF応答が(わずかに)バイアスされる可能性のあることを考慮する必要がある。
以下で説明されている実施形態は、バイアスされたPUF応答の場合に鍵漏洩問題を軽減する。発明者らは、初期登録ステップの前のおよび/または初期登録ステップと一体になったバイアス除去動作を導入することがPUF応答におけるバイアスを低減することを発見した。次いで、これは、ノイズ低減データなどのサイド情報の鍵漏洩を改善する。
図2は、電子暗号デバイス100の一実施形態の一例を示す略図である。
デバイス100は、通常PUFと称される、いわゆる物理的複製不可能関数110を備える。デバイス100は、暗号鍵を決定するように配置構成される。暗号デバイスは、登録フェーズおよびその後の再構築フェーズのために配置構成される。PUF110は、登録フェーズでは第1のノイズのあるビット列112を、再構築フェーズでは第2のノイズのあるビット列114を生成するように配置構成される。複数回繰り返され得る、再構築フェーズでは、同じ暗号鍵が生成される。登録フェーズでは、暗号鍵の繰り返される同一の生成を可能にし、および/またはPUF内のバイアスを低減するデータが生成され得る。
PUF110の信頼性が例外的に高く、および/またはアプリケーションの信頼性の重要性が低い場合に、ノイズ低減データなしで済ませることができる。後者の場合、バイアス除去は、鍵の低減されたエントロピーを回避するために、まだ価値があり得る。この場合、バイアス除去されたPUF応答は、たとえば、保持ビットを連結すること、鍵導出関数を適用すること、などによって鍵を導入するために使用することが可能である。
その後生成されるノイズのあるビット列の間の変化の量は、異なるタイプのPUF同士の間で異なり、変化の量に応じて、この誤り量を訂正するために、誤り訂正符号が選択され得る。ノイズのあるビット列は、暗号鍵を生成するのに十分な安定性および十分な長さを有する。PUFのノイズのあるビット列の長さは、所望の鍵長さ、PUFの誤りパーセンテージ、および/またはPUFのバイアスレベルなどに関して選択され得る。
PUF110は、ノイズのあるビット列を再び生成するために、パワーサイクル、たとえば、電源をオフにした後に電源をオンにする操作を必要とし得る。電源オン信号は、チャレンジとみなされ得る。デバイス100において、PUF110は、ノイズのあるビット列を少なくとも2回生成する。登録フェーズにおいて1回、PUF110は、第1のノイズのあるビット列を生成する。その後使用フェーズにおいて、PUF110は、第2のノイズのあるビット列を生成する。第1および第2のノイズのあるビット列は、互いに十分に近く、たとえば、その差のハミング重みは、閾値よりも小さい。
PUFは、物理的デバイスに結び付けられた確率関数であり、その結び付きは実際にその物理的デバイスを使用してそれを評価しないと関数の出力を予測することが計算的に実行不可能であるような仕方である。さらに、PUFは物理的システムによって実現されているので、複製作成が難しい。完全には制御されない(すなわち、何らかのランダム性を含む)生産プロセスによって生産される物理的システムは、PUFの良好な候補であることがわかる。一実施形態において、PUF110およびしたがって暗号デバイス100は、PUF110によって与えられる応答と、それから導出される鍵とに基づき一意に識別され得る。鍵は、デバイスを識別する、識別子として使用され得る。
PUFの物理的システムは、刺激と複雑な仕方で相互作用し、一意であるが、予測不可能な応答を引き起こすように設計される。PUFの刺激は、チャレンジと称される。何らかのPUFは、より広い範囲の異なるチャレンジを可能にし、異なる応答を生成する。PUFチャレンジおよび対応する応答は、まとめてチャレンジ−応答(レスポンス)−ペアと呼ばれる。しかしながら、PUFは、単一のチャレンジも有し得る。PUF110は、単一チャレンジPUFであってよい。PUF110は、複数チャレンジPUFであってもよい。後者の場合、PUF110は、ノイズのあるビット列、特に、第1および第2のノイズのあるビット列を生成するときに同じチャレンジまたはチャレンジのセットでチャレンジされる。
PUFの好適なソースは、電源がオンした時に、メモリの識別に有用な電源オン値の応答パターンを含む電子的揮発性メモリによって形成され、その応答パターンはメモリ素子の物理的特性に依存する。
デバイスを一意に識別するために使用されるPUFの知られている一例は、いわゆるSRAM PUFであり、これは、SRAMセルが起動されるときに、トランジスタの閾値電圧のばらつきに起因してランダムな状態で起動するという事実に基づくが、そのばらつきは同様にドーピングのばらつきに起因している。これが複数回で実行されるときに、各セルは時間の大半において同じ状態で起動する。これらのPUFは、オンボードにSRAMメモリを有する任意のデバイス上で実現され得る。
メモリを識別するために十分に安定しているランダム起動挙動を示すメモリは、チャレンジ可能なメモリと呼ばれる。起動挙動がランダムであると、2つの異なるメモリは、その起動メモリパターンに大きな差異を有し、起動挙動が安定していると、同じメモリの2つの起動メモリパターンは、小さな差異を有する。そのようなメモリの例は、述べたようなSRAMメモリセルであるが、フリップフロップに似たメモリ素子でもある。実際、フィードバックループを備える任意のタイプの揮発性メモリが使用され得る。
第2の種類のSRAMベースPUFが、デュアルポートRAMで構成され得る。両方のポートに同時に異なる情報を書き込むことによって、メモリセルは、未定義状態にされ、PUFに似た挙動を示す。この種類のPUFは、WO2009024913号においてより詳しく説明される。他のいわゆる固有(Intrinsic)PUFは、遅延現象に基づくものであり、たとえば、US20030204743号を参照。PUFは、FPGA上でSRAMメモリセルをシミュレートすることによって、たとえば、交差結合インバータまたはラッチ、いわゆるバタフライ型PUFによって構築されるものとしてよく、これは、EP2191410B1号およびWO2011018414A2号を参照。PUF110は、たとえば、WO2012069545号で説明されているような、複数のバスキーパーを含む物理的複製不可能関数であってよい。
デバイス100は、バイアス除去ユニット120を備える。バイアス除去ユニット120は、PUF110の出力、特に、第1のノイズのあるビット列112におけるバイアスを低減するように配置構成される。バイアス除去ユニット120は、登録フェーズにおいて第1のノイズのあるビット列112からバイアス除去データ142を決定するように配置構成される。バイアス除去データは、第1のノイズのあるビット列内のビットを保持または破棄としてマークする。
バイアス除去データは、バイアス除去の後のPUF110の出力がPUF110の直接の応答よりも低いバイアスを有するように選択される。一実施形態において、バイアス除去ユニット120は、バイアス除去情報によって保持としてマークされている第1のビット列のビットの中の1ビットの割合と0ビットの割合との間の絶対差が、第1のノイズのあるビット列の間よりも小さくなるように配置構成される。一実施形態において、バイアス除去ユニット120は、バイアス除去情報によって保持としてマークされている第1のビット列のビットの中の1ビットの割合と0ビットの割合との間の絶対差が、0になるように配置構成され得る。
より単純な一実施形態において、バイアス除去ユニットは、PUF応答のビット長よりも小さい、所定の数kにより配置構成され得る。この数は、バイアスを考慮して、PUF110が少なくともk個の0ビットおよび少なくともk個の1ビットを有する高い確率を有するように選択される。実際、実用的なバイアスについて、この確率は、PUF応答のビット長が十分に大きく取れると仮定して、任意に高くできる。
バイアス除去ユニットは、保持されている第1のPUF応答112内のビットのうちからk個の0ビットおよびk個の1ビットをランダムに選択し、他のすべてを破棄するように配置構成され得る。バイアス除去データ142は、登録フェーズにおいてどのビットが保持としてマークされて、どのビットが破棄されたかを示す。この情報は、いく通りもの仕方で記録され得る。たとえば、バイアス除去データ142は、保持ビットを示すためのビットマスクを含み得る。保持ビットは、後で、たとえば、ビット単位の「and」演算により選択され得る。たとえば、バイアス除去データ142は、選択されたビットを指すインデックスのリストを含み得る。
k個の0ビットおよびk個の1ビットをランダムに選択するこの方法は、バイアスを低減するか、または取り除くことすらするように働くが、それでも、少しの欠点がある。まず第一に、正確にk個の0および1が選択されるので、予測不可能性(すなわち、エントロピー)は、攻撃者が正確にk個の0および1があることを知っているため、事実上少ししか低減されず、真にランダムな列では、それは必ずしも0ビットおよび1ビットの同じ数にならない。さらに、0と1とをランダムに選択するために確率的手法を使用することもできる。しかしながら、独立したランダム性の発生源は利用可能でない場合がある。以下の実施形態のうちのいくつかは、独立したランダム性の発生源を必要としないが、これに対するビット列内の固有のランダム性を使用する。
最後に、バイアスが一様でない場合、非一様性の一部は、「バイアス除去された」ビット列の中に存続し得る。たとえば、PUFに位置依存のバイアスがある場合、たとえば、PUF応答の第1の部分がPUF応答の第2の部分と異なるバイアスを有する(たとえば、応答の半分の一方が0にバイアスされ、応答の半分の他方が1にバイアスされる)場合、この方法はそれを取り除くことができない可能性もある、すなわち、「バイアス除去された」ビット列は、同じ位置ベースのバイアスをそのまま有することになる。以下に示されている実施形態では、バイアス除去が局所的なので、この弱点はない。
デバイス100は、鍵再構築ユニット150を備える。鍵再構築ユニット150は、バイアス除去データによって保持としてマークされている第2のノイズのあるビット列内のビットから暗号鍵を決定するように配置構成される。暗号鍵は、バイアス除去データによって破棄としてマークされている第2のノイズのあるビット列内のビットから独立している。たとえば、鍵再構築ユニット150は、バイアス除去データ142によって保持としてマークされているビットを第2のPUF応答114から選択し、破棄としてマークされているビットを無視するように配置構成され得る。
鍵再構築ユニット150は、新たなバイアス除去動作を実行せず、その結果、新しい選択は元の選択と極めて異なることがあり得ることに留意されたい。その結果、登録および再構築時に、または異なる再構築フェーズの間で、同じ鍵を導出することが可能でなくなる。その代わりに、再構築ユニット150は、登録フェーズにおいて取得されたバイアス除去データを適用する。たとえば、バイアス除去データは、たとえば、ローカルのデバイス100に、または外部の、たとえばデバイス100に接続可能であるものとしてよいサーバ内に、たとえば、電子データ接続を通じて、格納され得る。
暗号デバイス100は、ノイズ低減機能により拡張され得る。たとえば、保持ビットにノイズ低減のための従来のファジー抽出器が適用され得る。
たとえば、暗号デバイス100は、登録フェーズにおいてバイアス除去データによって保持としてマークされる第1のノイズのあるビット列内のビットに対するノイズ低減データを決定するように配置構成されているノイズ低減ユニットと、前記ノイズ低減データに依存する形で再構築フェーズにおいてバイアス除去データによって保持としてマークされる第2のノイズのあるビット列内のビット内のノイズを低減するように配置構成されている誤り訂正器とを備え得る。
図3は、電子暗号デバイス101の一実施形態の一例を示す略図である。電子暗号デバイス101は、デバイス100の改良であり、ノイズ低減機能を備える。
電子暗号デバイス100と同様に、デバイス101は、第1のノイズのあるビット列112、第2のノイズのあるビット列114を生成するPUF110、バイアス除去データ142を生成するバイアス除去ユニット120、および鍵再構築ユニット150を備える。
デバイス101は、ノイズ低減ユニット130を備える。ノイズ低減ユニット130は、第1の誤り訂正符号から1つまたは複数の第1の符号語を取得し、1つまたは複数の符号語から保持としてバイアス除去データによってマークされている第1のノイズのあるビット列内のビットに対するノイズ低減データ144を決定するように配置構成される。ノイズ低減データは、登録フェーズにおいて決定される。
デバイス101は、正規化器152を、たとえば、鍵再構築ユニット150の一部として備える。正規化器152は、再構築フェーズにおいてバイアス除去データによって保持としてマークされている第2のノイズのあるビット列内のビットにノイズ低減データを適用し、ノイズと一緒に1つまたは複数の第1の符号語を決定するように配置構成される。
デバイス101は、前記1つまたは複数のノイズのある第1の符号語を訂正し1つまたは複数の訂正された符号語を取得するように配置構成されている誤り訂正器154を備える。誤り訂正器154は、複数ラウンドの訂正を行うように配置構成され得る。
デバイス101は、鍵導出ユニット156を備え得る。鍵導出は、誤り訂正器154の出力から暗号鍵を導出する。たとえば、鍵導出ユニット156は、鍵導出関数を1つまたは複数の訂正された符号語に適用し得る。代替的に、鍵導出ユニット156は、鍵導出関数(KDF)を1つまたは複数の訂正された符号語の復号、または訂正され保持されているPUF応答ビットに適用し得る。そのような鍵導出関数の例は、IEEE Std 1363−2000、NIST−SP800−108、および56−Cにおいて定義されているKDF1ならびにANSI X9.42における類似の関数、などを含む。鍵導出関数は、ハッシュ関数であってもよい。
任意選択で、デバイス101は、バイアス除去データ142およびノイズ低減データ144を記憶するためにストレージ140、たとえば、不揮発性メモリ、たとえば、フラッシュメモリを備える。ストレージ140がデバイス101に備えられる代わりに、一実施形態では、バイアス除去データ142およびノイズ低減データ144を外部に格納する。バイアス除去データ142およびノイズ低減データ144は、組み合わされて単一のビット列にされてよい。
ノイズ低減データを決定する一方法は、誤り訂正符号に基づくいわゆる符号オフセット方法である。正規化器と誤り訂正器との組合せは、ときにはファジー抽出器とも称される。鍵導出は、ファジー抽出器に含めることもできる。
たとえば、登録段階において、1つまたは複数のランダム符号語がブロック符号から、たとえば、ランダム選択されたシードを符号化することによって選択され、符号語と保持としてマークされている第1のPUF応答のビットとの間の差が計算される。第1のPUF応答は、登録応答とも称され、1つまたは複数のランダム符号語は、登録符号語とも称される。
第1のPUF応答の保持部分は、保持部分を符号語のサイズの倍数にする必要がある場合にパディングされるか、または短縮され得る。
この差は、オフセットとも称される。2進値の場合、2つのベクトルの間のオフセットは、排他的OR(XOR)演算によって取得され得る。この符号オフセットは、ノイズ低減データとして使用され得る。一実施形態において、ノイズ低減データ144は、オフセット、たとえば、第1のPUF応答の保持部分と1つまたは複数の符号語とのXORを含む。
再構築段階において、PUFは再評価され、登録されたPUF応答のノイズのあるバージョンが、すなわち、第2のPUF応答が取得される。ノイズ低減データ144に含まれる符号オフセットによって第2のPUF応答の保持部分をシフトすることによって、登録符号語のノイズのあるバージョンに辿り着く。2進値の場合、このシフトは、再び、XOR演算に帰着する。ノイズのある符号語は、登録符号語が取られた誤り訂正符号に対応する誤り訂正アルゴリズムを使用して訂正され得る。再構築時にPUF応答ビット誤りの数が大きすぎないとした場合、訂正された符号語は、最初に登録されている符号語に等しい。
好ましければ、この訂正された符号語を符号オフセットでもう一度シフトすることによって最初に登録されたPUF応答の保持部分を再構築することができる。この応答から、登録された鍵は、結果として、抽出され得る。代替的に、鍵は、最初に登録されたPUF応答を再構築することなく訂正された符号語から取得され得る。また、訂正された符号語を復号し、場合によっては復号の1つまたは複数のさらなるラウンドの後に、鍵を導出することも可能である。
符号オフセットファジー抽出器の下にある誤り訂正ブロック符号が、次元kおよび長さnを有する場合((n,k)−符号とも表される)、ノイズ低減データの公開は(n−k)を上限とすることを示され得る。したがって、ノイズ低減データが、第1のPUF応答について計算された場合、バイアス除去を適用することなく、鍵抽出のために残っているエントロピーは、少なくともH(X)−(n−k)であり、ここで第1のPUF応答Xは、エントロピーH(X)を有するとした。いくつかの単純な符号構築(特に小さい次元kの符号、たとえば、反復符号)について、ノイズ低減データの公開は、より正確に計算されるものとしてよく、より厳密な上限が決定され得る。
符号パラメータ(n,k)は、符号に対する必要な誤り訂正能力によって決定されることに留意されたい。より大きい誤り訂正能力は、典型的には、より低い率k/nの符号を生み出す。多くの誤りを訂正することができる必要のある符号は、n>>kを有し、したがって、ノイズ低減データ公開上限(n−k)は、非常に大きくなる。その結果、そのような符号に対する実効ノイズ低減データ公開は、典型的には、非常に高くもなり、その結果、鍵抽出に対する残っているエントロピーはほとんどないか、または全くないことすらある。残念なことに、バイアスはH(X)を小さくし、したがって、残っているエントロピーに対する下限、すなわち、H(X)−(n−k)は0に近くなるか、または負にすらなり得る。これは、明らかに、鍵漏洩問題を示している。
符号オフセット方法の代替となる、ノイズ低減データを構築する方法がある。たとえば、PUF出力は、誤り訂正符号によりパリティビットが計算されるデータビットとしてみなされ得る。パリティビットは、ノイズ低減データとして格納される。PUF応答を再構築するために、格納されているパリティビットとともに同じパリティビットが計算され、格納される。パリティビットの差から、第1のノイズのあるPUF応答ビットと第2のノイズのある応答ビットとの間の差が、復号されるものとしてよく、第1のPUF応答は、第2のPUF応答をしかるべく訂正することによって再構築され得る。この構築は、ときにはシンドローム構築ヘルパーデータ(Syndrome−construction helper data)と称される。これは、バイアス除去と組み合わされ得る。たとえば、パリティビットは、保持としてマークされているビットについて計算され得る。再構築時に、パリティビットは、保持としてマークされている第2のPUF応答のビットに付加され得る。
電子暗号デバイスの実施形態において、バイアス除去ユニットは、最初に、ノイズ低減データを計算する前に、たとえば、それを登録する前に、場合によってバイアスされているPUF応答をバイアス除去する。バイアス除去演算は、第1のPUF応答の長さ縮小に匹敵する、PUF応答の特定のエントロピー損失を引き起こす。これは、バイアス除去損失と呼ばれ得る。しかしながら、結果として得られるバイアス除去されたPUF応答を登録することによって、PUF応答におけるバイアスによるさらなる鍵漏洩をもはや必要としない。概念的には、PUF応答におけるバイアスによるエントロピー低減は、バイアス除去損失によって吸収され、その結果、応答バイアスによる鍵漏洩は、低減されるか、または取り除かれる、と言える。
バイアスが、低減された応答エントロピーの唯一の原因であると仮定した場合、バイアス除去されたPUF応答は、完全エントロピーを有することができ、何であれ鍵漏洩はなくなる。しかしながら、バイアス以外の、低減されたエントロピーの他の原因、たとえば、ビット相関があり得る。バイアスは、PUF応答におけるPUF応答におけるエントロピー低減の重要な原因のように見える。
PUF応答のビットを破棄するのにコストがかかる。このコストは、バイアス除去損失と称され、ノイズ低減データ公開による損失の上に来る。PUFのサイズ、たとえば、応答ビットの数は、この追加の損失を補償するためにしかるべく増やす必要があり得る。バイアス除去損失は、バイアスによるエントロピー低減のみと比べて著しく大きくなり得ることに留意されたい。たとえば、バイアス除去をすでにバイアスしていない応答に適用するときに、バイアスによるPUF応答のエントロピー低減は0であるが(すでにバイアスしていないので)、バイアス除去損失は、典型的には0よりも大きくなる。
図4aは、電子暗号デバイスの一実施形態の一例における登録フェーズを示す略図である。図4bは、電子暗号デバイスの一実施形態の一例における再構築フェーズを示す略図である。図4aおよび4bを参照しつつ開示されている方法は、電子暗号デバイス101または100の実施形態によって実行され得る。
図4aには、たとえば、PUF110によって生成される、第1のPUF応答412が図示されている。PUF110は、バイアスされる、たとえば、1および0ビットの異なる確率を有し、ノイズがある、たとえば、複数回チャレンジされたときにわずかに異なる応答を発生するものとしてよい。
第1のノイズのあるビット列412は、一連のビットペアとしてみなされ得る。これは、一連の波括弧によって図4a内で示されている。
便宜上、ビット列内のビットは、たとえば、ビット列内のビットに、たとえば1から始まる整数を割り当てることによって、インデックスに関連付けられ得る。第1の応答は、同じビットペアiにおいて2i−1および2iのビットインデックスを有することによって、ビットペアに区分され得る。2つの等しいビットを含むビットペアは、等ビットペアと呼ばれる。2つの等しくないビットを含むビットペアは、不等ビットペアと呼ばれる。ビットペアは、PUF応答中で必ずしも連続している必要はない。
バイアス除去ユニット120は、第1の一連のビットペア内の不等ビットペアを識別し、第1のノイズのあるビット列内の不等ビットペアを保持としてマークするように配置構成され得る。一実施形態において、バイアス除去ユニットは、バイアス除去データにおいてすべての等ビットペアを破棄としてマークするように配置構成される。それでも、後者は、以下で説明されているように、必要というわけではない。一連のビットペア412の下には、不等または等として識別されたビットペアが示されている。保持ビットペアの両方のビットが保持されることに留意されたい。
一実施形態において、第1のPUF応答のビットは、不等ビットペアを選択し、等ビットペアを破棄することによってバイアス除去される連続したペアに分割される。不等ビットペアは、全体として考えられる。結果は、図4aに、バイアス除去された第1のPUF応答414として示されている。
バイアス除去された第1のPUF応答414内のビットペアはすべて不等であることに留意されたい。その結果、列414のエントロピーは、たとえば、各ペアの第1のビットのみを取ることによって取得されるのと同じである。しかしながら、ビット列414は、ノイズ低減ユニットについて選択された誤り訂正符号と組み合わせて考えたときにより良好なノイズ低減が得られるという利点を有する。さらに、バイアス除去されたPUF応答414が、まだ完全なエントロピーのものではないとしても、ノイズ低減データにより結果として生じる鍵漏洩はもはやない。エントロピーは、たとえば、鍵導出関数を使用して、後から濃縮させられ得る。
第1の誤り訂正符号からの1つまたは複数の第1の符号語415は、たとえば、ノイズ低減ユニット130によって取得される。好ましくは、誤り訂正符号の符号語は、偶数の長さを有する。必要な場合、バイアス除去された応答414のいくつかのビットペアは、破棄され得るか、またはバイアス除去された応答414は、1つまたは複数の第1の符号語内のビットの数がバイアス除去されたビット列414内のビットの数に等しくなるように、たとえば、ゼロビットでパディングされ得る。図4aに示されている例では、2つの符号語が、長さ4の反復符号から取られる。反復符号は、(n,k)型(4,1)を有する。同じ符号語に属するビットは、破線のボックスで示されている。
反復符号は、非常に高い誤り訂正能力を有し、効率的に復号可能である。しかしながら、他の符号、たとえば、アダマール符号、BCH符号なども可能である。
第1の符号語415は、ランダム登録シードのビットを符号化することによって、たとえば、誤り訂正符号に関連付けられている誤り訂正符号器を使用してアンコーディングされているたとえば平文、データ語を符号語にマッピングすることによって、生成され得る。いくつかの実施形態では、第1の符号語を、第2の誤り訂正符号から1つまたは複数の第2の符号語のビットを符号化することによって、取得する。第2の符号語は、ランダム登録シードのビットなどを符号化することによって生成され得る。2つの符号を使用することには、誤り訂正に対する高い能力が得られ、さらに効率的な符号化および復号を行える利点がある。
一実施形態において、ノイズ低減データ144は、たとえば、ノイズ低減ユニット130によって取得され、これは保持としてバイアス除去情報によってマークされた第1のビット列412内のビット、たとえば、バイアス除去された列414内に示されているビットと1つまたは複数の符号語415との間の差を含む。この差は、XOR演算によって得ることができる。
しかしながら、バイアス除去情報によって破棄としてマークされている第1のビット列内のビットと第1のノイズのあるビット列内の破棄ビットに対応する1つまたは複数の符号語内のビットとの間の差は、取得されない。ノイズ低減データは、後者の差を含まない。したがって、第1のPUF応答のバイアスされた部分は漏洩しない。
一実施形態において、ノイズ低減データは、バイアス除去情報によって保持としてマークされている第1のビット列内のビットの連結と1つまたは複数の符号語との間の差を含む。
バイアス除去データとノイズ低減データとを符号化するための方法は多数ある。図4aは、両方のデータを組み合わせて単一のビット列にするバイアス除去データおよびノイズ低減データ440を示している。1つまたは複数の符号語の各ビットは、第1のビット列の保持ビットに対応する。たとえば、1つまたは複数の符号語415は、1、2、3、4、5、6、などのビットが第1の応答412の1、2、5、6、9、10などのビットに対応する列を一緒に形成する。保持ビットに対応するビット列440におけるインデックスは、同じインデックスを持つ第1のPUF応答内のビットと前記保持ビットに対応する1つまたは複数の符号語のビットとの間の差を格納する。
たとえば、「a」とマークされているビットペアは、列412の第1の2つの保持ビットと1つまたは複数の符号語415の第1の2つのビットとの間の差に対応する。
破棄されるビットのインデックスを有する列440内のビットペアは、すべてゼロのビットペアで埋められるものとしてよい。代替的に、すべて1のペアも使用され得る。たとえば、「b」とマークされているビットペアはすべてゼロである。列440内の等ビットペアは、破棄ビットペアをマークする。列440の不等ビットペアは、ノイズ低減データを含む。
一実施形態において、組み合わされたバイアス除去およびノイズ低減データ440は、元のバイアスされた第1のPUF応答412と同じ長さを有するものとしてよい。
この情報を記録するための代替的方法が多数あり、そのうちのいくつかが図4aに示されている。たとえば、バイアス除去データ442は、1ビットが、たとえば、保持ビットを指し、ゼロビットが破棄ビットを示すビットマスクである。たとえば、バイアス除去データ442’は、保持ビットペアのこの場合における、インデックスのリストである。ノイズ低減データ444は、ノイズ低減データのみを含むビット列である。ノイズ低減データ444は、たとえば列442または442’を使用して保持ビットが識別された後に使用され得る。わかりやすくするために、ノイズ低減データ444は、対応するビットの下に描かれているが、しかしながら、これらは、連結された形態で格納され得る。
バイアス除去データおよびノイズ低減データは、たとえば、ストレージ140に格納されるか、または外部に、たとえば、外部サーバ(図示せず)上に格納され得る。
再構築フェーズにおいて、第2のPUF応答422は、第1のPUF応答412を生成した同じPUFによって、たとえば、PUF110によって、生成される。第2のPUF応答は、たとえば、ハミング距離を用いた場合に、第1の応答412に近く、しかしながら、ある量のノイズがある。第2の応答422内のビットのうちのいくつかは、応答412と異なる。図4bに示されている例の中の異なるビットは、矢印で示されている。
第2のPUF応答422は、ビットペアに区分される。バイアス除去データにおいて破棄としてマークされているビットペアが破棄される。比較のため、データ440は、第2の応答422の下に図示されており、そこでは、破棄ビットペアを示すゼロビットペアはずらされている。保持としてマークされているビットは、バイアス除去された第2のPUF応答423を形成する。
バイアスは、たとえば、環境、たとえば温度の変化により、第1の応答の生成時と第2の応答の生成時とでわずかに異なり得ることに留意されたい。これは、しかしながら、ノイズ低減データが第2のPUF応答に対して生成されていないのであまり重要なものでなく、したがって追加の鍵漏洩が生じない。
バイアス除去されたPUF応答423のビットペア、すなわち、保持としてマークされているビットは、ノイズ低減データとXORされ、その結果、ノイズのある符号語424が形成される。正規化器152は、バイアス除去データによって保持としてマークされている第2のノイズのあるビット列内のビットにノイズ低減データを追加、たとえばXOR、することができる。
ノイズのある符号語424は、ノイズが加えられた1つまたは複数の第1の符号語415である。ノイズが存在しなかった場合、ノイズのある符号語424は、符号語415と同一である。図4bの例では、両方の符号語が誤りを含んでいる。
ノイズのある符号語424は、たとえば、誤り訂正器154によって訂正され、訂正された符号語426を取得し得る。誤り訂正器154は、訂正された符号語426を復号し、1つまたは複数の復号された符号語427を取得することを続けることも可能である。この場合、復号された符号語は、これがk=1の符号であるので、符号語毎に単一のビットである。しかし、この復号ステップは、必要というわけではない。
一実施形態において、鍵は、復号された符号語427として直接みなすことも可能である。しかしながら、鍵導出関数を、復号された符号語427、または訂正された符号語426のいずれかに適用することが好ましい。後者は、鍵導出ユニット156によって実行され得る。
代替的に、復号されたビット427は、連結符号構築の場合に上位レベルの符号語の符号ビットとみなされ得る。その場合、反復符号語のハミング重みは、上位レベルの復号器に対する軟判定情報としても使用され得る。
図4aおよび4bを参照しつつ説明されている実施形態の利点は、バイアスされたPUF応答による鍵漏洩は、ノイズ低減データが計算される前にPUF応答がバイアス除去されるので取り除かれたという点である。したがって、このバイアス除去ファジー抽出器は、鍵漏洩なしの、または少なくとも鍵漏洩が低減されて、バイアスされたPUFからの鍵生成に使用され得る。
別の利点は、不等ビットペアの両方のビットが考慮されるという事実により効率が改善されることである。一目では、これは、結果として得られるバイアス除去されたPUF応答が実際にはバイアスしていないので、直観に反しているが、各ビットペアのパリティは奇数なのでもはや独立したビットを有しない。この結果、バイアス除去されたPUF応答に対するエントロピーが低減され、実効エントロピーは、応答の長さの半分にすぎない。古典的なフォンノイマンバイアス除去は、選択されたペアの第2のビットも破棄することによってこれを回避してしまう。
しかしながら、ここで、ノイズ低減データ公開とバイアス除去損失のインテリジェントな組合せが効果を現す。バイアス除去された応答内のビットペアのパリティは、公然と知られているという事実は、この情報が反復符号オフセットノイズ低減データを通じてとにかく公開されるので問題にならない。反復符号オフセットはすでに偶数個のPUF応答ビットの各組合せのパリティを公開していることに留意されたい。安全性の点で見ると、仮想攻撃者は、とにかくノイズ低減データから同じ情報を得るので、これらのパリティに関する知識を利用して生成された鍵素材を攻撃することはできない。ファジー抽出器によって提供される鍵素材は、所与のノイズ低減データの公開について安全なので、所与のビットペアパリティの公開によるこのエントロピー低減について安全なままである。したがって、保持ビットペアの両方のビットを使用することによって追加のエントロピー損失はないが、誤り訂正は改善される。
バイアス除去されたPUF応答内のエントロピーは、鍵の中に濃縮される、たとえば、鍵導出関数によって、たとえば、保持ビットの長さの半分以下に濃縮され得る。
符号オフセットノイズ低減データは、とにかくビットペアパリティ情報を公開するので、古典的なフォンノイマンバイアス除去が行うように不等ペアの第2のビットを破棄することによってPUF応答エントロピーから2回目に減算される必要はない。したがって、バイアスの同じレベルについて、ここに提示されているソリューションは、古典的なフォンノイマンバイアス除去と比較したときにバイアス除去されたビットの数の2倍を保持する。たとえば、元のPUF応答がすでにバイアスしていないときに、古典的なフォンノイマンバイアス除去は、平均してビットの1/4(3/4の実効バイアス除去損失)を保持するが、図4aに示されている実施形態ではビットの1/2(1/2の実効バイアス除去損失)を保持する。実効バイアス除去損失のこの低減は、実際のバイアス除去損失の一部がノイズ低減データ公開と重なり合い、したがってもはや実効損失はないので、可能である。
図4aおよび4bの実施形態は、バイアスされたPUF応答に対する鍵漏洩問題に効果的に対処し、バイアス除去損失をノイズ低減データ公開とインテリジェントに組み合わせてその結果著しい改善をもたらす。
ノイズ低減ユニットは、登録フェーズにおいてバイアス除去されたPUF応答414に対するノイズ低減データを決定するように配置構成されるものとしてよく、誤り訂正器は、前記ノイズ低減データに依存して再構築フェーズにおいてバイアス除去されたPUF応答423内のビットのノイズを低減するように配置構成され得る。たとえば、ノイズ低減データは、たとえば、正規化器によって、バイアス除去されたPUF応答をノイズ符号語にマッピングするために使用され得る。
図5aは、電子暗号デバイスの一実施形態の一例における登録フェーズを示す略図である。図5bは、電子暗号デバイスの一実施形態の一例における再構築フェーズを示す略図である。図5aおよび5bを参照しつつ開示されている方法は、図4aおよび4bを参照しつつ説明されている方法に基づいており、これらは、電子暗号デバイス101または100の実施形態によって実行され得る。
図4aのように、登録は、一連のビットペアとみなされる、第1のPUF応答512を生成するステップを含む。不等ビットペアは、たとえば、バイアス除去ユニット120によって識別され、保持としてマークされる。不等ビットペアは、参照番号513aで不等号によりマークされている。等ビットペアのうち、第1および第2の等ビットペアは、たとえば、バイアス除去ユニット120によって、第1の等ビットペアが第2の等ビットペアの逆である、一連のビットペア内で識別される。
たとえば、バイアス除去ユニット120は、第1のPUF応答512内の第1の等ビットペアを識別し、第1のPUF応答512内の次の等ビットペアを識別するように配置構成され得る。第1の等ビットペアが次の等ビットペアに等しい場合、両方とも破棄としてマークされ、そうでない場合、少なくとも第1の等ビットペアは、保持としてマークされる。バイアス除去ユニット120は、次の2つの等ビットペアを繰り返し見つけて、等しい場合にそれらを両方とも破棄し、2つのペアが不等である場合に少なくとも第1のペアを保持するように配置構成され得る。
一実施形態において、バイアス除去は、複数ラウンドで実行され、第1ラウンドで、不等ビットペアは保持としてマークされ、等ビットペアは破棄としてマークされる。第2ラウンドで、前の回に破棄された等ビットペアは、次に、バイアス除去の第2ラウンドで再考察されている。破棄ビットは、四つ組みにグループ分けされる。(0,0,1,1)および(1,1,0,0)の形の四つ組みが保持される、保持としてマークすることによってバイアス除去されたPUFに追加されるものとしてよく、(0,0,0,0)および(1,1,1,1)の形の四つ組みは、依然として破棄される。
これでバイアス除去されたPUF応答はペアと四つ組みのリスト(ランダムな順序の)からなるので、偶数の長さの反復符号語の終わりは四つ組みの終わりとアラインメントしないことがあり得る。しかしながら、この実施形態の安全性は、単一の選択されたグループ(ペア、四つ組み、...など)のビットが同じ符号語(反復符号語など)内で常に使用される場合に改善される。これは、ビット選択(たとえば、四つ組み)が異なる符号語にわたって使用される場合に、攻撃者がこのことを利用してこれらの符号語上のパリティを学習し得るからである。反復符号の場合、攻撃者は、たとえば、2つの連続する反復符号語が同じであるか、または異なるかを学習し得る。これは、エントロピー損失、したがって鍵漏洩を引き起こす。
単一の選択されたグループ(ペア、四つ組み、...)のビットが同じ符号語内で常に使用されることを確実にするために、場合によっては、反復符号語の落ちるグループのトレーリングビットは破棄され得る。図5の例では、これは、例示的なPUF応答の終わり(「e」)で生じる:最後の選択された四つ組みについて、現在の反復符号語に第1のビットペアのみが使用され得る。この場合、その四つ組みの最後のビットペアは、破棄されるべきであり、これは次の反復符号語の開始としては使用できない。
一実施形態において、ビットの不等ペアの両方のビットが保持としてマークされる。しかしながら、一実施形態において、等ビットペアの中のペアの第2の等ビットペアは、第1および第2のビットペアが1つまたは複数の符号語のうちの同じ符号語との差において使用される場合にバイアス除去データによって保持として、および他の場合には破棄としてのみマークされる。
第1の符号語515は、図5aに示されている。第1の符号語のビットは、第1の応答512の対応する保持ビット、すなわち、差が計算されるビットとアライメントされる。
第1の応答512内の第1の2つの等ビットペアは、「c」で参照される。両方とも等しい、この場合、両方とも0であるので、両方とも破棄される。第2の2つの等ビットペアは、「d」で参照され、2つのペアは不等であり、したがって少なくとも第1のペアが保持される。第2のペアは、第1のペアと同じ符号語内のビットと対応するので、第2のペアも保持される。第3のペアは、「e」で参照され、2つのペアは不等であり、したがって少なくとも第1のペアが保持される。第2のペアは、第1のペアと異なる符号語内のビットと対応するので、第2のペアは破棄される。バイアス除去された第1のPUF応答514内の「f」、すなわち、第1のPUF応答512の保持ビットでは、等ビットペアの保持ペアの4つのすべてのビットは、同じ符号語内に入る場合に保持されるが、「g」では、第1のビットペアのみが、入らない場合に保持されることに留意されたい。2つのゼロビットは、第1の応答512の最終的な2つのビットが、たとえば、より多くの符号語が続く場合に破棄されることを指示するためにバイアス除去データ542に付加され得る。
グループのトレーリングビットを破棄する代わりに、グループの順序が変更されてよく、たとえば、グループ(ペア、四つ組み、またはセット)の終わりが常に反復符号語終わりとアライメントするようにすることが可能である。たとえば、バイアス除去ユニット120は、第1のPUF応答110内のビットの、請求項において第1の転置とも称される、転置を選択し、その転置をバイアス除去データ142の一部として格納することができる。鍵を再構築するときに、転置は、最初に、たとえば、再構築ユニットによって、第2のPUF応答に適用され、その後、バイアス除去およびノイズ除去が本明細書で説明されているように進行する。たとえば、前記転置は、ペアよりも大きいグループ、たとえば四つ組みを符号語の先頭に置くものとしてよく、これは、トレーリングビット(図に示されていない)を回避する。一実施形態において、バイアス除去ユニットは、第1および第2の等ビットペアが1つまたは複数の符号語の同じ符号語との差で使用されるように第1の一連のビットペアの転置を決定するように配置構成される。転置は、第1のPUF応答のより多くのビットが、ノイズ低減データを生成し、したがってバイアス除去損失を減らすために使用できるという利点を有する。
ビットペアまたは四つ組みを識別する上記のバイアス除去方法は、2ラウンドよりも多いラウンド数に拡張され得る。たとえばより多くのラウンドのために、八つ組み(8ビット)に働く第3ラウンドが、直接的に、追加され得る。これは、バイアス除去損失をなおいっそう低減する。しかしながら、より多くのラウンドを追加する追加の利得は、たちまち非常に小さくなる。たとえば、第1ラウンドは、不等ビットペアを識別し得る。第2ラウンドは、残りのペアの間で、不等四つ組みを識別し得る。第3ラウンドは、第2ラウンドの不等八つ組みの後にまだ保持されていないビットペア間を識別し得る。
たとえば、一実施形態では、バイアス除去ユニットは、一連のビットペア内の等ビットペアの第1および第2のセットを識別するように配置構成され、第1および第2のセットは同じサイズを有し、第1のセット内のすべての等ビットペアは同じであり、第2のセット内のすべての等ビットペアは同じであり、第1のセットのビットペアは第2のセット内のビットペアの逆であり、バイアス除去データは第1のセットの少なくとも等ビットペアを保持としてマークする。
追加の選択の結果は、バイアス除去された第1のPUF応答514である。等ビットペアのいくつかが保持されるので、第1のPUF応答は、図4aの方法が有しているのよりも小さいバイアス除去損失を有する。図4aのように、第1の符号語515が取得される。図5bの例では、6ビット反復符号が使用される。バイアス除去データ542の可能な表現が、図5aに示されている。バイアス除去データ542は、1ビットを使用して、破棄ビットを示すために保持ビットおよびゼロビットを指示する。1つまたは複数の符号語515の各ビットは、第1のPUF応答512内の保持ビットに対応する。ノイズ低減データ544は、保持ビットと1つまたは複数の符号語515の対応するビットとの間の差を含む。ノイズ低減データ544は、第1の応答ビットと符号語ビットとの間の差を表すノイズ低減データ544内のビットのインデックスが第1の応答内の前記第1の応答ビットのインデックスと同じであるように格納され得る。データ544内の残りのビットは、任意、たとえば、ランダムに埋められる、ゼロに設定される、空のままにされる、などとしてよく、図5aでは、これらは0で埋められる。
図4aおよび5aにおいて、1つまたは複数の符号語(たとえば、415、515)の各ビットは、第1のPUF応答内の保持ビットに対応することに留意されたい。ノイズ低減データは保持ビットと対応する符号語ビットとの間の差を含む。
図5bによって示されている再構築フェーズは、図4bの場合と大部分同じである。第2のPUF応答522は、たとえば、PUF110から取得され、登録された応答に関するビット誤りは、説明を目的として矢印でマークされている。この応答522から、保持ビットは、バイアス除去データを使用して選択され、それによりバイアス除去された第2のPUF応答523を取得する。バイアス除去された第2のPUF応答523は、ノイズ低減データに追加され、ノイズのある符号語524を取得する。図4aのように、訂正された符号語は復号され、復号された符号語527を取得することができる。代替的に、符号語は、直接的に、たとえば、これらをハッシュすることなどによって、使用され得る。
バイアス除去データ542、442、ノイズ低減データ544、444、ただし、組み合わされたデータ440も、かなり高いレベルの構造を有し、その結果より効率的な処理および通信を行えるように圧縮され得ることに留意されたい。
たとえば、反復符号が第1の符号に使用される場合、およびビットペアが第1ラウンドのバイアス除去によって選択される場合、対応するノイズ低減データビットペアは、常に、奇数パリティを有し、したがって単一ビットによって表されるものとしてよく、その結果、そのペアに対して50%の圧縮が行われ得る。四つ組みの符号オフセットノイズ低減データについても類似の圧縮が可能である。
図5aおよび5bによって示されているバイアス除去は、図4aおよび4bで例示されている方法のすべての利点を有し、さらに、バイアス除去損失がさらに低減されるので改善された効率を有する。この低減は、基本的な抽出器によって破棄されたビットペアのいくつかが現在保持されているという事実に由来する。
第2ラウンドにおける選択された四つ組みは、ここでもまた、単一ビットのみではなく、全体として使用され得ることに留意されたい。すなわち、等ビットペアの保持ペアのすべてのビットが保持としてマークされる。ビットの各選択された四つ組みは、効果的に、情報の1ビットを含むだけであり、したがって、3つのビットのエントロピー低減がある。しながら、この低減は、ここでもまた、反復符号オフセットノイズ低減データによって公開される情報と完全に重なり合い、したがって2回目に減算される必要はない。言い替えれば、選択された四つ組みについても、バイアス除去損失および反復符号オフセットノイズ低減データ公開は組み合わされる。
図6aは、電子暗号デバイスの一実施形態の一例における登録フェーズを示す略図である。図6bは、電子暗号デバイスの一実施形態の一例における再構築フェーズを示す略図である。図6aおよび6bを参照しつつ開示されている方法は、電子暗号デバイス101または100の実施形態によって実行され得る。
図4aおよび5aの方法は、特別な攻撃シナリオに対する脆弱性を有し、われわれはこれを多重登録公開問題と称する。
多重登録公開問題は、同じPUFがバイアス除去符号オフセットファジー抽出器において複数回使用されるときに生じる。したがって、登録されたPUF応答は、いくつかのランダムビット誤りまで等しい。たとえば、攻撃者は、バイアス除去およびノイズ低減データが同じPUFについて2回計算されるようにデバイスを操作する。
多重登録公開問題の根本の原因は、バイアス除去ステップが確率論的である、すなわち、同じPUFを2回バイアス除去すると、その結果、特定の時点までランダムである2つの異なるバイアス除去選択がなされる、という事実であり、異なるインデックスを有する、異なるビットが保持される。バイアス除去選択のランダム性は、PUF応答上のノイズによって引き起こされる。この確率論的性質により、両方の登録におけるバイアス除去されたPUF応答は、元のPUF応答の異なる選択に基づき得る。その結果、両方の登録におけるバイアス除去損失およびノイズ低減データ公開も、元のPUF応答エントロピーの異なる部分を公開する。その結果、ノイズ低減データおよび両方の登録のバイアス除去損失によって公開される組み合わされた情報は、1つの単一の登録の情報よりも大きい。
多重登録問題は、いくつかの実施形態において生じる必要はない。たとえば、登録は、安全な場所、たとえば、そこでしか利用できない何らかの機器を必要とする場所で行われ得る。たとえば、デバイスは、同じPUFに基づく複数の登録を防ぐように配置構成され得る。これは、PUFの登録状態を格納することによって、たとえば、ワンタイムプログラマブル(OTP)メモリ素子を用いて行われ得る(たとえば、ヒューズが、PUFが登録されるときに切れる)。
図6aおよび6bには、多重登録公開問題に対する低減された脆弱性を有するPUF応答をバイアス除去する実施形態が示されている。図6aおよび6bの実施形態は、図4aおよび4bの実施形態に基づく。
図6aには、一連のビットペアに区分されるものとしてみなされる、第1のPUF応答612が示されている。ビットペア内で、等ビットペアおよび不等ビットペアが、たとえば、バイアス除去ユニット120によって識別される。不等ビットのペアは保持され、等ビットのペアは破棄される。保持ビットペア内の両方のビットが保持される。
図4aおよび5aと異なり、廃棄ビット位置は、登録時に役割を果たし続ける。概念的には、等ビットの破棄ペアは、消去記号(ε)のペアによって置き換えられる。消去は、特別な第3の記号(0および1とは異なる)としてみなされ得る。以下では、消去記号を実装するための様々な方法が説明されている。たとえば、記号0、1、およびεは、各々2つのビットで符号化され得る。代替的に、消去記号の効果は、消去記号位置などを示すインデックスのリストを格納することによって実装され得る。
その結果得られるバイアス除去された第1のPUF応答614は、図6aに示されている。その結果得られるバイアス除去された第1のPUF応答614は、不等ビットのペアおよび消去記号のペアを含む。バイアス除去されたPUF応答614は、元のバイアスされたPUF応答612と同じ長さであるが、ただし、バイアス除去されたPUF応答614が2つではなく3つの記号を有するより大きいアルファベットにわたることを考慮する。
第1の誤り訂正符号からの1つまたは複数の第1の符号語615は、たとえば、ノイズ低減ユニット130によって取得される。図4aおよび5aについて指摘されているように、第1の誤り訂正符号は、第2の誤り訂正符号から1つまたは複数の第2の符号語のビットを符号化することによって取得され得る。この後者のオプションは、図6aで使用されており、図6cおよび6dを参照しつつ以下でさらに説明される。図6aにおいて、ここでもまた、反復符号が一例として使用されている。しかしながら、他の誤り訂正符号も、代わりに使用され得る。第1の誤り訂正符号は、好ましくは、偶数長符号であり、(n,k)表記で、nは偶数である。奇数符号は、たとえば、各符号語についてパディングビットをバイアス除去された列614に追加すること、または各符号語の1ビットを破棄することなどによっても使用され得ることに留意されたい。パディングビットは、ゼロであってもよい。
図6aにおいて、第1のPUF応答612およびバイアス除去されたPUF応答614の各ビットは、1つまたは複数の符号語615のビットに対応する。これは、図4aおよび5aにおいて重要な相違であり、そこでは、第1のPUF応答の保持ビットの間に対応関係のみがあったが、図6aでは、第1のPUF応答の、保持と破棄の両方の、すべてのビットと1つまたは複数の符号語615のビットとの間に対応関係がある。これは、第1のPUF応答612のいかなるビットが、同じ符号語において、異なる登録にまたがっても、使用されることを意味する。
組み合わされているバイアス除去およびノイズ低減データは、バイアス除去された第1のPUF応答614と1つまたは複数の符号語615との間の差を決定することによって取得される。図6aの例では、符号は、長さ6の反復符号であるが、他の誤り訂正符号、たとえば、アダマール、BCHなどが適用可能である。
組み合わされているバイアス除去およびノイズ低減データは、バイアス除去されたPUF応答614と1つまたは複数の符号語615との間の差を取得する、たとえば、それらのXOR演算を実行することによって取得される。XOR演算は、追加の消去記号εを許容するように拡張される。われわれは、ときには拡張されたXORをε−XOR演算と称する:0および1にのみ作用するときに、ε−XOR演算は、XOR演算と同じであるが、オペランドの1つがεであるときに、結果は、常に、他のオペランドに関係なくεとなる。したがって、ε−XOR(0,0)=ε−XOR(1,1)=0、およびε−XOR(0,1)=ε−XOR(1,0)=1、およびε−XOR(ε,0)=ε−XOR(ε,1)=εである。
偶数長誤り訂正符号が使用される場合、好ましければ、常に、自然数個のバイアス除去されたPUF応答のペアがある(トレーリングビットはない)。図6aにおいて、バイアス除去およびノイズ低減データ640は、バイアス除去されたPUF応答614および1つまたは複数の符号語615に対するε−XOR演算の結果を示している。
1つまたは複数の符号語の各符号語がビットの完全なセットと組み合わされるように図4aおよび5aにおいて行われているように第1のPUF応答からビットをスキップする代わりに、図6aでは、ビットは、消去記号によって示されているように、破棄ビットに対応している場合に符号語から消去される。図6aによる実施形態において、第1のPUF応答のビットと、1つまたは複数の符号語のビットとの間に固定された一対一の対応関係があり、ビットを破棄または保持としてマークしても、この関係は変化しない。
組み合わされたバイアス除去およびノイズ低減データ640は、元の(バイアスされた)PUF応答612と同じ長さを有する。2進値形式の0、1、およびε−記号の表現は、列640を符号化するために使用され得る。列640内の構造により、これは、演算および通信が容易であるように望ましいときにかなり圧縮され得る。圧縮は、列640に特有の圧縮形式を使用してよいが、任意の可逆圧縮アルゴリズムが使用され得る。
消去記号は、概念的には、理解が比較的容易であるが、それにもかかわらず、追加の記号の使用を回避することは実施形態において可能である。たとえば、図6aは、組み合わされたノイズおよびバイアス除去データ640の代替形態として、バイアス除去データ642およびノイズ低減データ644を示している。
バイアス除去データ642は、第1のノイズのあるビット列内のどのビットが保持または破棄としてマークされているかを示す。図6aの場合、バイアス除去データ642は、ビットマスクであり、そこでは、1ビットが保持ビットを指し、0ビットが破棄ビットを示す。この場合、破棄ビットは、ε記号としてみなされ得る。ノイズ低減データ644は、保持ビットと1つまたは複数の符号語の対応するビットとの差を含む。図6aの例では、ノイズ低減データ644は、保持ビットおよび対応するビットとの差を第1のノイズのある応答612内の保持ビットのインデックスと同じインデックスとして格納し、破棄ビットに対応するノイズ低減データ644内のビットは、任意に、この場合、0で埋められるか、または空のままにされてよい。ノイズ低減データ644は、符号語ビットと破棄ビットとの間の差を含まない。
一実施形態において、第1のノイズのあるビット列内のビット、1つまたは複数の符号語内のビット、およびノイズ低減データ内のビットは、すべて、インデックスを有する。インデックスを目的として、1つまたは複数の符号語は、たとえば、符号語を連結することによって、1つの長い列とみなされる。すべての3つの列は、同じ長さであり得るか、または、たとえば、第1のノイズのあるPUF応答をパディングすることによって、同じ長さにされ得る。インデックスは、都合よく、1からnなど値をとり得る。第1のPUF応答内のビットと1つまたは複数の符号語の同じインデックスを持つビットとの間の差は、ノイズ低減データに、たとえば、同じインデックスを持つビットのところに格納される。第1のPUF応答内の破棄ビットと同じであるインデックスを持つノイズ低減データ内のビットは、0、1に設定されるか、またはランダムに埋められるなど操作が行われ得る。
バイアス除去およびノイズ低減データは、次のように取得され得る:第1のPUF応答内の各ビットペアについて、ビットペアを等または不等として識別する。ビットペアが等しい場合、ビットペアをバイアス除去データ内で破棄としてマークする。ビットペアが不等である場合、第1のPUF応答内のビットペアと1つまたは複数の符号語内の対応するビットペアとの間の差を計算する、たとえば、XORを実行し、その差をノイズ低減データ内に、たとえば、対応する位置にあるビットペアのところに格納する。たとえば、バイアス除去データ、たとえば、バイアス除去データ642およびノイズ低減データ、たとえば、ノイズ低減644は、次のアルゴリズム(擬似コードで表されている)によって取得され得る。
i=1から第1のPUF応答におけるビットペアの数まで
ビットペアiが等しい場合、ビットペアiをバイアス除去データ内で破棄としてマークする
そうでなければ、第1のPUF応答内のビットペアiと1つまたは複数の符号語内のビットペアiとの間の差、たとえばXORを計算し、その差をノイズ低減データ内に格納する
次に
ビットペアiは、ビット2i−1および2i(1から開始してカウントする)とみなされてよい。第1のノイズのあるビット列内のビットは、同じインデックスを有する1つまたは複数の符号語内のビットに対応し得る。ビットをノイズ低減データ内に格納するステップは、差分ビットペアを付加することによって行われ得る。代替的に、ビットをノイズ低減データ内に格納するステップは、差分を対応するビットペア位置に格納することなどによって行われ得る。ビットペアを破棄としてマークすることは、いろいろな仕方で、たとえば、インデックスをリスト内に列挙すること、ビット、またはビットマスク内のビットペアをマークすることなどによるものとしてよい。
再構築段階は、図6bに従い、次のように動作し得る。図示されているのは、第2のPUF応答622であり、そこでは、登録PUF応答612との差は、矢印で示されている。第2のPUF応答622の下で、登録段階で生成されたバイアス除去およびノイズ低減データ640は、ここでもまた示されている。
ノイズのある第2のPUF応答622は、消去記号を考慮して、ここでは、バイアス除去およびノイズ低減データ640とのε−XORを使用することによって追加され、その結果、バイアス除去され、正規化された第2のPUF応答624となる。バイアス除去された第2のPUF応答624は、バイアス除去およびノイズ低減データ640内の消去記号に対応する各ビットに対する消去記号εを含む。
ビット列624は、ノイズと消去の両方による影響を受ける1つまたは複数の符号語とみなされ得る。誤り訂正符号内の消去記号は、位置が知られているノイズのタイプとしてみなされ得る。ノイズの影響のみを受けた符号語が訂正された図4bおよび5bの状況のように、ノイズおよび消去の影響を受けた符号語も、訂正され得る。いかなる符号の場合のように、訂正は、ノイズおよび消去の量が多すぎない場合にのみ可能である。より高いレベルのバイアスまたはノイズを持つPUFは、たとえば、より高い最小距離(d)を有する、より強力な誤り訂正符号を使用することによって訂正され得る。
図6aおよび6bの例では、第1の符号語は、長さ6の反復符号である。反復符号は、比較的容易な訂正アルゴリズムを可能にするが、より複雑な誤り訂正符号もノイズおよび/または消去の存在下で訂正を可能にすることに留意されたい。反復符号について、符号語は、0と1のどちらが非消去記号の間で過半数であるかをカウントすることによって復号され得る。過半数がない場合、符号語は、復号され得ない、すなわち、0または1復号記号は等しく可能性が高いことに留意されたい。必要ならば、元の符号語615は、必要ならば、復号したものを符号化することによって復元され得る。
各符号語について特定の1つの復号が決定されるこの後者のタイプの復号は、硬判定復号と呼ばれる。硬復号符号語627は、図6bに示されている。第2の符号語について、硬判定は不正であったことに留意されたい。第3の符号語について、0および1は両方とも等しく可能性が高い。硬判定が必要な場合、ランダムな選択が行われてもよい。硬判定復号で偶然に第3の符号語に対して0を選択した場合、その結果得られる第2の符号語(0,0,0,1)は、正しく(0,1,0,1)に訂正されることに留意されたい。しかしながら、硬判定復号で偶然に1を選択した場合、誤りの数は、訂正する第2の誤り訂正符号に対して大きすぎる。より強力な誤り訂正符号がこれらの誤りを防ぐことができたが、より低い符号レート(分数k/n)と引き換えにあり得る。
図6は、図4aおよび5aで示されている実施形態についても述べられた、誤り訂正符号の別の使用を示している。
図6cに示されているのは、すべての符号語650がリストされている、第2の誤り訂正符号である。この例示的な符号は、(n,k,d)型(4,2,2)符号である。たとえば、第2の誤り訂正符号は、リードソロモン誤り訂正符号であってよい。図6cに示されているのは、シード630とも呼ばれる、符号語の復号である。
登録時に、1つまたは複数のランダムな符号語は、第2の誤り訂正符号650から選択され得る。代替的に、1つまたは複数のランダムシードが、シード630から選択され、第2の誤り訂正符号に従って符号化され得る。図6aの場合、1つまたは複数の(この場合1つの)符号語(0,1,0,1)を取得するためにシード(0,1)がランダムに選択され、符号化された。1つまたは複数の第2の符号語のビットは、第1の誤り訂正符号に従って符号化される。長さ6の反復符号に従ってビット(0,1,0,1)を符号化するステップは、1つまたは複数の第1の符号語615をもたらす。
復号時に、この連結符号構築は、有利に使用され得る。ノイズのあるおよび消去された符号語624を復号する硬判定の代わりに、1つまたは複数のノイズのある第1の符号語の訂正の信頼度を示す信頼度情報が計算される、すなわち、軟復号符号語628である。軟復号符号語628は、復号の信頼度を示すものである。この場合、軟復号符号語628は、0が負の値で復号され、1の復号が正の値で示されることを示す。決定不可能な復号は、0値で示される。軟復号符号語628の大きさは、訂正の信頼度を示す。より大きい大きさは、より高い信頼度値を示す。図6aで使用されているような反復符号については、予想される復号および前記復号の信頼度の両方が、単一の、たとえば、正または負の整数で符号化され得る。より複雑な第1の誤り訂正符号については、2つの値が、各符号語、予想される復号、たとえば、複数のビット、および信頼度値、たとえば、整数に使用され得る。
図6bでは、軟復号は、1ビットを+1と、0ビットを−1とカウントし、消去を無視することによって取得された。
1つまたは複数のノイズのある第1の符号語の訂正の信頼度を示す信頼度情報は、誤り訂正器の一部であるか、または組み合わされ得る、信頼度情報抽出器によって決定され得る。信頼度情報抽出器は、図3に別個に示されてはいない。軟判定復号器は、信頼度情報を使用して1つまたは複数の第2の符号語を復号するように構成され得る。軟判定復号器は、最小距離リスト復号器であってよい。代替的に、軟判定復号器は、異なるタイプの軟判定復号、たとえば、ターボ復号器、トレリスベース復号器などであってよい。一実施形態において、最小距離リスト復号器は、信頼度情報と第2の誤り訂正符号語の各1つとの間の距離を計算し、最小距離を復号として選択するように構成される。
軟判定情報としても知られている、信頼度情報は、第2の符号語を復号するために使用され得る。図6aの例において、軟判定値は、外れ値(第2の)符号語の軟判定復号を行うために使用される。この例では、これは、最小距離リスト復号器を用いて行われる。
第2の誤り訂正符号650の第2の符号語の間の近さは、軟判定情報628と符号語の各1つとの間の内積、またはドット積を計算することによって求めることができる。軟判定復号、たとえば、最小距離、または最大相関復号は、図6dに示されている。内積については、0ビットは、−1値とみなされる。相関の結果は、651に示されている。符号語(0,1,0,1)は、最も高い内積を有し、したがって、最も可能性の高い復号であることに留意されたい。近さ値は、たとえば、何らかの最大相関値から、それらを減算することによって、距離値に変換されるものとしてよく、この場合、相関は、24から減算される。距離値は、652に示されている。第2の符号語符号(0,1,0,1)は、最小距離を有する。
この場合、軟判定復号は、4つの反復符号語のうちの2つが正しく復号されないことがあるという事実があるにもかかわらず、正しく復号されたシードを返す。
図6aおよび6bにより示されている消去バイアス除去符号オフセットファジー抽出器は、図4aおよび4bに関して示されているバイアス除去のすべての利点を有し、さらに、多重登録問題に悩まされないか、または少なくともあまりない。消去は、誤り訂正の効率と無関係であり、誤り訂正に寄与することも、また悪化させることもないことに留意されたい。バイアス除去、たとえば、消去によって引き起こされる損失も、符号オフセットノイズ低減データに完全に含まれるので、この場合のバイアス除去損失がノイズ低減データ公開と完全に重なり合うことも観察され得る。
重要なことは、消去バイアス除去符号オフセットファジー抽出器は、多重登録公開問題に悩まされないことである。元のPUF応答のすべてのビットペアが、無変更または消去として、保持されるので、バイアス除去手続きはもはや確率論的でないというのが、これに対する理由である。したがって、同じPUFの多重登録が考慮されるときに蓄積情報漏洩はあり得ない。
説明されている実施形態では、独立して分布するバイアスを扱う。すなわち、実施形態は、バイアスが均一である場合に最もよく働くように見える。それにもかかわらず、いくつかの形態の不均一なバイアスであっても、図4−6による実施形態を使用して扱われる。たとえば、第1の一連のビットが第1のバイアスを有し、その後の第2の一連のビットが第2のバイアスを有する場合に、バイアスは、正しく扱われる。それは、これらの実施形態が局所的ビットペアを使用してどのビットを保持し、どのビットを破棄するかを決定するからである。場合によっては、第1の一連と第2の一連との間の領域に、何らかのエントロピー損失があり得る。したがって、異なるバイアスレベルを持つ複数のゾーンを有することは、大きな問題になるようには思えない。
しかしながら、他の形態の不均一なバイアスは、より大きいエントロピー損失を引き起こし得る。たとえば、奇数インデックスを持つビットに対するバイアスレベルが偶数インデックスを持つビットに対するバイアスと異なるPUFを考える。バイアス除去の後であっても、そのようなPUFは、バイアスが偶数/奇数のインデックスに依存しない他の何らかの形の類似のPUFに比べて低いエントロピーを有し得る。バイアス除去は、バイアス除去データを選択する前に転置を実行することによって改善され得、この転置は、第2の転置とも称される。一般的に、第2の転置は、第1の転置の前に実行されることに留意されたい。
たとえば、一実施形態において、バイアス除去ユニット120は、第1のノイズのあるビット列内のビットを保持または破棄としてマークする前に第2の転置により第1のノイズのあるビット列を転置し、それぞれ第1および第2のバイアスレベルを有する第1のノイズのあるビット列の第1および第2の部分内のビットを、一緒にグループ化するように配置構成される。鍵再構築ユニット150は、バイアス除去データによって保持としてマークされている第2のノイズのあるビット列内のビットを決定する前に第2の転置により第1のノイズのあるビット列を転置し、第1のノイズのあるビット列の第1および第2の部分内のビットを一緒にグループ化するように配置構成される。
たとえば、第1の部分は、第1または第2のノイズのあるビット列の偶数ビット、すなわち、偶数インデックスを持つビットであってよく、第2の部分は、奇数ビット、すなわち、奇数インデックスを持つビットであってよく、その逆も可能である。たとえば第2の転置は、第1の部分のすべてのビットを第1または第2のノイズのあるビット列の前に転置し得る。たとえば、転置は、ベクトル、たとえば、インデックスのうちの各インデックスがビット位置を指しているインデックスの配列として表され得る。たとえば、ベクトルは、[0,2,4,6,8,10,...,2l,1,3,5,7,9,...,2l−1]であり、偶数および奇数ビット位置を一緒にグループ化するものとしてよく、ここでn=2lビットが使用される。一実施形態において、符号語は、偶数ビット位置のみ、またはいずれかの奇数ビット位置のみからのビットから減算されるだけである。
第2の転置は、バイアス除去データ内に含まれ得る。しかしながら、第2の転置は、たとえば、同じタイプのメモリベースのPUFを共有する、類似のPUFによりあるクラスのデバイスに対して固定される形で選択され得る。後者の場合、第2の転置は、事前決定されるものとして含まれ、たとえば、デバイスに格納され得る。第2の転置は、PUFを読み出すために使用されるPUFのアドレス復号器内に含まれ得る。
第1の転置も第2の転置もビットがメモリ内で異なる位置に移動されることを(それは可能であるが)必要としないが、ビットを異なる形で取り扱うことによっても実装され得ることに留意されたい。異なるアドレッシングが、ソフトウェアで、たとえば、転置されたアドレスを使用して、またはハードウェアで、たとえば、転置アドレス復号器を使用して、実行され得る。
図9aは、電子暗号デバイス102の一実施形態の一例を示す略図である。暗号デバイス102は、以下で説明されていることを除きデバイス101と同じである。
興味深いことに、PUF応答は、2つの異なる用途に使用できる。一方で、ヘルパーデータを使用してノイズを抑制することによって、暗号鍵を生成するためにPUF応答が使用され得る。もう一方で、ノイズは、PUF応答からランダムシードを生成することによって利用され得る。第1の場合においてPUF応答の安定性が使用され、第2の場合においてそのノイズが使用される。
残念なことに、たまに、PUF110が仕様の範囲内にない応答を生成することがあり得る。乱数を生成するために、特に、PUFのノイズエントロピーが重要である。ノイズエントロピーは、同じPUFインスタンスを繰り返し測定したときのノイズの量に関係するエントロピーである。これは、乱数生成にPUFを使用するときに重要である。高品質のランダムシードがPUFから導出されることを確実にするために十分なランダム性が繰り返される測定になければならない。
良好なPUFに関して、典型的には、デバイス間エントロピー(デバイスの間のPUF応答の差に関係するエントロピー)がノイズエントロピーを決定付ける。したがって、残念なことに、第2のノイズのあるビット列についての従来の乱数検定、たとえば、FIPS 140−1検定は、エントロピーが低すぎても高い確率で成功する。
暗号デバイス102は、物理的複製不可能関数のノイズレベルを検証するために再構築フェーズにおいて統計的検定を実行するように配置構成されている統計ユニット160を備える。統計的検定では、上で示されている第2の問題、すなわち、ランダムシードの信頼できる生成に対してPUFが有するノイズエントロピーが小さすぎたと検出することに対処する。
統計的検定は、バイアス除去データおよび第2のノイズのあるビット列にアクセスできる。バイアス除去データは、第1のノイズのあるビット列のビットを直接識別することを許さないが、バイアス除去は、第2のノイズのあるビット列と比較できる第1のノイズのあるビット列に関する情報をもたらす。一実施形態において、バイアス除去データは、第1のノイズのあるビット列内でどのビットパターンが等しいか、または等しくないかを指示する。統計的検定は、第2のノイズのあるビット列内の同じビットペアが依然等しいかまたは等しくないかを検証することができる。これは、それらが変化していることを必ずしも除外しない:たとえば、ビットペアは、00から11へ、01から10へ変化している可能性があり、そのような変化を検出することは、このバイアス除去データでは可能でない。しかしながら、第1のノイズのあるビット列と第2のノイズのあるビット列との間でごく少数の変化しか検出されない場合、PUFは低ノイズエントロピーを有する可能性が高い。
一実施形態において、統計的検定は、バイアス除去データおよび第2のノイズのあるビット列を使用して第1のノイズのあるビット列内では等しいが第2のノイズのあるビット列内では等しくなく、および/または第1のノイズのあるビット列内では等しくないが第2のノイズのあるビット列内では等しいビットペアの数をカウントするように配置構成される。統計的検定は、物理的複製不可能関数のノイズレベルが、カウントが閾値よりも高い場合に十分であると決定する。
閾値は、その仕様に従ってPUFの統計的分布、たとえば、PUFのノイズ率から決定され得る。さらに、第2のノイズのあるビット列内のビットの数および所望の偽陽性率が知られている。これらのパラメータから、閾値が決定され得る。
たとえば、第1のノイズのあるビット列は、非負整数iについてビットペアb2ib2i+1で除算された、b0b1b2b3...とみなされ得る。第2のノイズのあるビット列は、ビットペアs2is2i+1で除算されたビットs0s1s2s3...とみなされ得る。統計的検定では、b2ib2i+1が等ペアであるが、s2is2i+1が不等ペアである、および/またはその逆であるiの数をカウントする。
暗号デバイス102は、統計的検定が正しく機能していることを示している場合のみ物理的複製不可能関数によって生成されるノイズのあるビット列にエントロピー濃縮関数を適用することによってランダムシードを生成するように配置構成されているランダムシード生成ユニット165を備える。エントロピー濃縮関数は、より大きい列、この場合より小さい列内の第2のノイズのあるビット列114、この場合、ランダムシードにおけるエントロピーを濃縮する。エントロピー濃縮関数の例は、ハッシュ関数、特に、SHA−1などの暗号学的ハッシュ関数、圧縮関数、およびたとえば、NIST−SP800−90において定義されているような、シードを導出するための導出関数などである。
ランダムシードは、ランダムシードに応じて一連の乱数を生成するように配置構成されている擬似乱数生成器において使用され得る。乱数は、多くの暗号プロトコルにおいて使用され、非暗号アプリケーションも有し得る。擬似乱数生成器は、図9aに別個に示されてはいない。
たとえば、擬似乱数生成器は、ランダムシードから始まる、カウンタモードで実行される、ブロック暗号、たとえば、AES、またはランダムシードを鍵とするRC4、ランダムシードをシードとするFortunaなどのストリーム暗号であってよい。
理論上、PUFが正しく動作している、たとえば、安定しており、かつ十分にランダムである場合に、同じ第2のノイズのあるビット列は、暗号鍵を再構築し、ランダムシードを導出するために使用され得る。ランダムシードは、無訂正の第2のノイズのあるビット列から計算されるが、暗号鍵は、訂正された第2のノイズのあるビット列から再構築される。たとえば、一実施形態において、ランダムシード生成ユニット165は、統計的検定が正しく機能していることを示している場合のみ第2のノイズのあるビット列にエントロピー濃縮関数を適用することによってランダムシードを生成するように配置構成される。ランダムシードが十分に長く、十分にランダムである場合、訂正されていない第2のノイズのあるビット列内のノイズは、訂正されていない第2のノイズのあるビット内に存在するすべての情報を決定付ける。この場合、強不可逆エントロピー濃縮関数(strong non−invertible entropy concentration function)、たとえば暗号ハッシュ関数が、望ましい。
しかしながら、暗号鍵に関する情報が乱数生成を通じて漏れるあらゆる可能性を回避するために、異なるPUF応答がランダムシードを生成するために使用され得る。たとえば、一実施形態では、物理的複製不可能関数110は、再構築フェーズにおいて第2のノイズのあるビット列114およびさらなるノイズのあるビット列116を生成するように配置構成され、第2のノイズのあるビット列114およびさらなるノイズのあるビット列116は重なり合わない。ランダムシード生成ユニット165は、統計的検定が正しく機能していることを示している場合のみさらなるノイズのあるビット列にエントロピー濃縮関数を適用するように配置構成される。これは、乱数が暗号鍵に関する情報を漏らすことができないという利点を有する。
たとえば、一実施形態において、PUFは、メモリベースであり、第1および第2のノイズのあるビット列は第1のメモリアドレスから取得され、さらなるノイズのあるビット列は、第2のメモリアドレスから取得され、第1および第2のメモリアドレスは異なっており、好ましくは重なり合わない。第1および第2のノイズのあるビット列は、同じ第1のチャレンジ、たとえば、同じアドレスへの応答としてみなされてよく、さらなるノイズのあるビット列は、第1のチャレンジと異なる第2のチャレンジ、たとえば、異なるアドレスへの応答としてみなされてよい。他のPUFは、この方式で使用されるものとしてよく、たとえば、遅延PUFは、第1のチャレンジでチャレンジされ、第1および第2のノイズのあるビット列を生成し、再構築時に第2のチャレンジでチャレンジされ、さらなるノイズのあるビット列を生成し得る。
図9aは、さらなるノイズのあるビット列116を使用する一実施形態を示している。たとえば、1つまたは複数の統計的検定が、第2のノイズのあるビット列114およびバイアス除去データ142に対して実行される。統計的検定が、PUFがその仕様内で働いている、たとえば、十分なエントロピーまたは十分なノイズなどを有していることを示す場合、そこでランダムシードがさらなるノイズのあるビット列116から導出される。一実施形態において、第2のおよびさらなるノイズのあるビット列は、PUFの異なる部分から取得されるときに統計的に独立しているが、第1および第2のビット列は、ノイズを除き同じである。
実験は、第2のノイズのあるビット列から計算された統計量は、PUF全体を代表する量であり、したがって、さらなるノイズのあるビット列についても代表する量であることを示している。この関係は、第2のノイズのあるビット列とさらなるノイズのあるビット列とをインタリーブすることによってさらに改善され得る。たとえば、PUFは、メモリベースのPUFであり、第1および第3のメモリアドレスはさらなるビット列に寄与し、第2および第4のメモリアドレスは第2のビット列に寄与し、第1のアドレスは第2のアドレスよりも小さく、第2のアドレスは第3のアドレスよりも小さく、第3のアドレスは第4のアドレスよりも小さい。
図9bは、図6のデータを使用する、異なる実施形態を示している。図9bは、一連のビットペア613に分割された第1のPUF応答612、バイアス除去データ642、および第2のPUF応答622を示している。バイアス除去データ642から、この第1のノイズのあるビット列(全体)が再構築時に利用可能でない場合があるとしても第1のノイズのあるビット列内でどのビットペアが等しく、どのビットペアが等しくないかが決定されるものとしてよく、この場合、バイアス除去データ642内のゼロペアは、第1のノイズのあるビット列612内の等ペアを示し、バイアス除去データ642内の1のペアは第1のノイズのあるビット列612内の不等ペアを示す。
一実施形態において、統計ユニットは次のように配置構成される:
− バイアス除去データから、第1のビット列内の不等ビットペアを決定する。
− 第2のノイズのあるビット列内の等ビットペアおよび第1のビット列内の不等ビットペアである第2のノイズのあるビット列内のビットペアの個数をカウントし、第1の数を取得する。図9bにおいて、そのようなペアは、波括弧で示されている。第1の数は、参照632のところに与えられており、この例では1である。
− 第1の数が第1の閾値よりも大きい場合に物理的複製不可能関数のノイズレベルを検証する。
一実施形態において、統計ユニットは次のように配置構成される:
− バイアス除去データから、第1のビット列内の等ビットペアを決定する。
− 第2のノイズのあるビット列内の不等ビットペアおよび第1のビット列内の等ビットペアである第2のノイズのあるビット列内のビットペアの個数をカウントし、第2の数を取得する。図9bにおいて、そのようなペアは、波括弧で示されている。第2の数は、参照634のところに与えられており、この例では4である。
− 第2の数が第2の閾値よりも大きい場合に物理的複製不可能関数のノイズレベルを検証する。
一実施形態において、両方の組合せがカウントされ、その結果このカウントに対する第1および第2の数の和、この場合、5が得られる。
(実践例)
本明細書で説明されているようなバイアス除去ソリューションの実施形態は、その後再構築時に破棄されるかまたは消去されるべき等ビットペアを登録時に識別する。検定の一実施形態では、再構築時に、特定のサイズのPUFブロック内のこれらのマークされているペアが等ビットを有効に含むかどうかをチェックし、これがその場合でないペアの数をカウントし、この数がマークされているペアの総数に関する特定の閾値よりも大きいことを検証する。この閾値は、ブロックサイズ、必要なPUFノイズエントロピー品質パラメータ、および所望の偽陽性率に基づき前もって決定され得る。
同じ挙動に基づく他の検定統計量(等としてマークされた不等ペアの総数の代わりに)、たとえば等としてマークされた不等ペアの/間の最長連が使用され得る。
この検定は、PUF応答が登録と再構築との間で再評価されることを必要とする。これがその場合でなければ、この検定は、意味ある結果を生み出し得ず、実行されないか、または無視される。
この例において:セキュリティ強度128ビットのシードをDRBGに与えるために、PUF応答(さらなるノイズのあるビット列)の1Kバイト(8192ビット)部分が使用される。[NIST、SP800−90A、Recommendation for Random Number Generation Using Deterministic Random Bit Generators]によれば、このPUF応答データのノイズの最小エントロピーは、少なくとも192ビットであるべきである。このPUFは、最大[30%−70%]までバイアスされうることが知られている。そのようなPUFが8192ビットの十分なノイズ最小エントロピーを与えるために、その(平均)ビット誤り率は、少なくとも2.9%でなければならないと決定される。
鍵生成のために、このPUF応答(第1および第2のノイズのあるビット列)の別の部分(6864ビット)が使用される。この部分は、DRBGにシードを与えるために使用される部分から完全に分離しているものとしてよいが、これらは同じPUFに由来するので、バイアスおよびビット誤り率に関して同じ品質を有すると仮定される。鍵生成に使用される部分は、フォンノイマンベースのバイアス除去前処理と組み合わせて符号オフセットヘルパーデータ構築を配備する(本明細書で説明されているような)誤り訂正機構に通される。バイアス除去前処理機能は、その後再構築において結果として無視される(破棄されるか、または消去される)等ビットペアを、登録時に検出する。
検定詳細:
鍵再構築時に、バイアス除去を伴う鍵生成器は、等しくあるべきビットペアの知識を有しているので、等しいものとしてマークされたが、再構築時にはもはや等しくないビットペアの数を観察することによって平均ビット誤り率を推定することができる。分析では、われわれは、PUFを、互いに独立で同一の分布に従うビットを有するものとしてモデル化している。
バイアスpおよび平均ビット誤り率peを有する互いに独立で同一の分布(i.i.d.)に従うビットを持つPUF応答では、等ビットペアを観察する確率は(1−p)2+p2であり、nビットPUF応答内の観察された等ビットペアの数は、パラメータ(floor(n/2),(1−p)2+p2)により2項分布している。再構築時に不等ビットペアを観察する確率は、このペアが登録時に等しいものとしてマークされていたとした場合に、次のように決定され得る:
Prob(不等ペア@再構築|等ペア@登録)
=2*(1−pe/(2(1−p)))*(pe/(2(1−p)))*(1−p)2/((1−p)2+p2)+2*(1−pe/(2p))*(pe/(2p))*p2/((1−p)2+p2)
=pe*(1−pe)/(p2+(1−p)2)。
その結果、再構築時に不等である等ペアを登録時に観察する確率は、次のようになる:
Prob(不等ペア@再構築 かつ 等ペア@登録)
=Prob(不等ペア@再構築|等ペア@登録)*Prob(等ペア@登録)
=(pe*(1−pe))/(p2+(1−p)2)*((1−p)2+p2)
=pe*(1−pe)。
興味深いことに、この確率は、PUF応答のバイアスから独立していて、平均ビット誤り率にのみ依存している。これは、このことが生じるビットペアの数が平均ビット誤り率にのみ依存し、この数の観察が平均ビット誤り率レベルを評価するために使用され得ることを伴う。
この結果に基づき、登録時に等としてマークされた観察されたが、再構築時に不等であるペアの数に対する下側閾値は、与えられた例について、次のように設定され得る:
T=BinoCDF−1(10−6;6864/2,2.9%*(1−2.9%))=54。
したがって、平均ビット誤り率が、十分に高い場合、高い確率(>1−10−6)で、これらのビットペアのうちの54を超えるペアが観察されるべきである。これがその場合でなければ、フォンノイマンバイアス除去ペア同等性検定(Von Neumann Debiasing Pair Equality Test)では失敗を出力する。この例示的な鍵生成器に対するこの検定の基本的な流れは、図10に示されている。この状況における失敗検定は、原理上、バイアス除去および/または鍵生成それ自体に対する結果を伴わず、検定結果(バイアス除去に基づく)は、DRBGのシード指定にとって重要であるにすぎないことに留意されたい。
図11は、許容可能なビット誤り率=2.9%に対して失敗率<10−6を有するようにチューニングされた、フォンノイマンバイアス除去ペア同等性検定に対する失敗率曲線を示している。この特定の検定では、6864ビットPUF応答部分内で登録時に等しいとしてマークされた観察された不等ビットペアの数が54よりも小さい場合に失敗を出力する。検定の失敗は、この検定により、ビット誤り率(ノイズ最小エントロピー)が許容できないことを示す。
この検定で失敗を出力する確率は、PUFの実際の現実のビット誤り率(actual real bit error rate)に依存する。提示されている例について、この関係が図11に示されている。この曲線は、2.9%よりも大きい許容可能なビット誤り率について、検定の失敗率は<10−6であることを示している(したがって、検定は、許容可能なビット誤り率を持つPUFを誤って棄却する非常に小さな誤棄却率<10−6を有する)。しかしながら、平均ビット誤り率が、許容可能な限度よりも小さい場合、検定の失敗率は、10−6を超えて上昇し、平均ビット誤り率<1.3%について100%に近づく(許容できない平均ビット誤り率の特定の区間、おおよそ[1.3%...2.6%]があり、これは100%の確実性で検定によって検出されない)。
典型的には、デバイス100および101などの、バイアス除去データ生成、ノイズ低減データ生成、および/または鍵再構築を実行するためのデバイスは、各々、デバイス100、101に格納されている適切なソフトウェアを実行するマイクロプロセッサ(図示せず)を備え、たとえば、そのソフトウェアは、ダウンロードされ、および/または対応するメモリ、たとえば、RAMなどの揮発性メモリまたはフラッシュ(図示せず)などの不揮発性メモリに記憶されていてよい。代替的に、デバイス100および101は、全体としてまたは一部だけ、プログラマブルロジックで、たとえば、フィールドプログラマブルゲートアレイ(FPGA)として、実装され得る。デバイス100および101は、全体としてまたは一部だけ、いわゆる特定用途向け集積回路(ASIC)、すなわち、その特定の用途のためにカスタマイズされた集積回路(IC)として実装されてもよい。
一実施形態において、電子暗号デバイスは、バイアス除去回路および鍵再構築回路を備える。電子暗号デバイスは、ノイズ低減回路、誤り訂正器回路、信頼度情報抽出器回路、軟判定復号器回路、統計的検定回路、ランダムシード生成器回路のうちの1つまたは複数も備え得る。これらの回路は、本明細書で説明されている対応するユニットを実装する。回路は、プロセッサ回路およびストレージ回路であってよく、プロセッサ回路はストレージ回路内に電子的に表現される命令を実行する。これらの回路は、FPGA、ASIC、または同様のものであってもよい。
図7は、暗号鍵を決定するように構成されている電子暗号方法700の一実施形態を示す略図である。方法700は、登録フェーズ710およびその後の再構築フェーズ720を有する。
登録フェーズ710は
− 物理的複製不可能関数(PUF)(110)を使用して第1のノイズのあるビット列を生成するステップ712と、
− 第1のノイズのあるビット列内のバイアスを低減するために第1のノイズのあるビット列からバイアス除去データを決定するステップ714であって、バイアス除去データは第1のノイズのあるビット列内のビットを保持または破棄としてマークする、決定するステップ714とを含む。
再構築フェーズ720は
− 物理的複製不可能関数(PUF)(110)を使用して第2のノイズのあるビット列を生成するステップ722と、
− バイアス除去データによって保持としてマークされている第2のノイズのあるビット列内のビットから暗号鍵を決定するステップ724であって、暗号鍵はバイアス除去データによって破棄としてマークされている第2のノイズのあるビット列内のビットから独立している、決定するステップ724とを含む。
暗号鍵は、また、登録フェーズにおいて、そのようなもので都合がよければ、たとえば、保持としてマークされている第1のノイズのあるビット列内のビットから、決定され得る。
方法700を実行する多くの異なる方法が、当業者に明らかなように、可能である。たとえば、ステップの順序は、変えることができるか、またはいくつかのステップが、並列に実行され得る。さらに、ステップとステップの間に、他の方法ステップが挿入されてもよい。挿入されたステップは、本明細書で説明されているような方法の改良を表し得るか、またはその方法に無関係であってもよい。さらに、与えられたステップは、次のステップが開始される前に完全に終了していなくてもよい。
本発明による方法は、方法700をプロセッサシステムに実行させるための命令を備える、ソフトウェアを使用して実行され得る。ソフトウェアは、システムの特定のサブエンティティによって実行されるステップのみを含み得る。ソフトウェアは、ハードディスク、フロッピー、メモリなどの、好適なストレージ媒体に記憶され得る。ソフトウェアは、電線を流れる信号として、またはワイヤレスで、またはデータネットワーク、たとえば、インターネットを使用して送信され得る。ソフトウェアは、ダウンロードおよび/またはサーバ上のリモートでの使用に利用可能にされ得る。本発明による方法は、方法を実行するようにプログラマブルロジック、たとえば、フィールドプログラマブルゲートアレイ(FPGA)を構成するように配置構成されたビットストリームを使用して実行され得る。
本発明は、コンピュータプログラム、特に、本発明を実施するように構成された、キャリア上のまたはキャリア内のコンピュータプログラムにも拡張されることは理解されるだろう。プログラムは、ソースコード、オブジェクトコード、コード中間ソース、および部分的にコンパイルされた形態などのオブジェクトコードの形態、または本発明による方法の実装で使用するのに適している他の任意の形態をとり得る。コンピュータプログラム製品に関係する一実施形態は、説明されている方法のうちの少なくとも1つの処理ステップの各々に対応するコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに細分され、および/または静的にもしくは動的にリンクされ得る1つまたは複数のファイルに格納され得る。コンピュータプログラム製品に関係する別の実施形態は、説明されているシステムおよび/または製品のうちの少なくとも1つの手段の各々に対応するコンピュータ実行可能命令を含む。
図8aは、コンピュータプログラム1020を含む書き込み可能部分1010を有するコンピュータ可読媒体1000を示しており、コンピュータプログラム1020は一実施形態により暗号鍵を決定するための方法をプロセッサシステムに実行させるための命令を備える。コンピュータプログラム1020は、コンピュータ可読媒体1000上に物理的マークとして、またはコンピュータ可読媒体1000の磁化を用いて具現化され得る。しかしながら、他の好適な実施形態も同様に企図され得る。さらに、コンピュータ可読媒体1000はここでは光ディスクとして示されているが、コンピュータ可読媒体1000は、ハードディスク、ソリッドステートメモリ、フラッシュメモリなどの好適な任意のコンピュータ可読媒体であってよく、記録不可能または記録可能であってよい。コンピュータプログラム1020は、暗号鍵を決定する方法のうちの前記方法をプロセッサシステムに実行させるための命令を備える。
図8bは、一実施形態による、プロセッサシステム1100を示す概略配置図である。プロセッサシステムは、1つまたは複数の集積回路1110を備える。1つまたは複数の集積回路1110のアーキテクチャは、図8bに概略として示されている。回路1110は、一実施形態による方法を実行するためにおよび/またはそのモジュールもしくはユニットを実装するためにコンピュータプログラムコンポーネントを動作させるための処理ユニット1120、たとえば、CPUを備える。回路1110は、プログラミングコード、データなどを記憶するためのメモリ1122を備える。メモリ1122の一部は、リードオンリーであってよい。回路1110は、通信要素1126、たとえば、アンテナ、コネクタ、または両方、および同様のものを備え得る。回路1110は、方法において定義されている処理の一部または全部を実行するための専用集積回路1124を含み得る。プロセッサシステム1100は、一実施形態において使用するためのPUF1128を備え得る。プロセッサ1120、メモリ1122、専用IC1124、PUF1128、および通信要素1126は、相互接続部1130、たとえば、バスを介して互いに接続され得る。プロセッサシステム1110は、アンテナおよび/またはコネクタを、それぞれ使用して、接触型および/または非接触型通信を行うように配置構成され得る。
上述の実施形態は、本発明を制限するのではなく本発明を例示するものであり、当業者であれば、多くの代替的実施形態を設計することができることに留意されたい。
請求項において、括弧の間に入っている参照記号は、請求項を制限するものとして解釈されないものとする。「備える、含む」という動詞およびその活用形を使用していても、請求項で述べられているもの以外の要素もしくはステップの存在を除外しない。「a」または「an」という冠詞を要素の前に付けていても、複数のそのような要素の存在を除外しない。本発明は、いくつかの明確に異なる要素を含むハードウェアを用いて、および適切にプログラムされているコンピュータを用いて実装されてもよい。いくつかの手段を列挙しているデバイス請求項において、これらの手段のうちのいくつかは、ハードウェアの1つおよび同じ項目によって具現化され得る。特定の測定が、相互に異なる従属請求項において引用されているという単なる事実は、これらの測定の組合せが有利に使用され得ないことを示すものではない。
請求項において、括弧内の参照は、実施形態の図面の中の参照記号または実施形態の公式を参照するものであり、それにより、請求項の理解度を高める。これらの参照は、請求項を制限するものとして解釈されないものとする。