(57)【要約】ソフトデータを使用し、チップ認証手段としてＰＵＦレスポンス・ビットストリングの代わりにヘルパーデータ・ビットストリングを交換しそれらを互いに相関させることにより、攻撃を防ぐプライバシー保護、相互ＰＵＦ型認証プロトコルである。【選択図】図７Ａ
2021528925.tif 000002
【特許請求の範囲】
【請求項１】
物理複製困難関数（ＰＵＦ）に基づくソフトデータを利用して、サーバ及びクライアントの両方でヘルパーデータ及びレスポンスの各ビットストリングを生成する、クライアントとサーバとの間のメッセージ交換プロトコル。
【請求項２】
前記ソフトデータは、信号に関するデジタル化された測定値である、請求項１に記載のメッセージ交換プロトコル。
【請求項３】
前記デジタル化された測定値は、伝搬遅延、電圧、及び電流の一群から選択される何れかである、請求項２に記載のメッセージ交換プロトコル。
【請求項４】
前記サーバ及びクライアントの両方で生成された各ビットストリングを互いに相関させて、該ビットストリングを定義しているビット列における一致度を決定する、請求項１に記載のメッセージ交換プロトコル。
【請求項５】
前記ソフトデータから得たレスポンス・ビットストリングに含まれるビットを強又は弱の何れかに分類し、これらのビットを使用してヘルパーデータ・ビットストリングを定義する、請求項１に記載のメッセージ交換プロトコル。
【請求項６】
ヘルパーデータ・ビットストリングのペアから作り出された相関係数を含む、請求項１に記載のメッセージ交換プロトコル。
【請求項７】
前記相関係数を使用して前記クライアントとサーバとを相互認証する、請求項６に記載のメッセージ交換プロトコル。
【請求項８】
前記クライアント又はサーバを第三者に公開しない、請求項１に記載のメッセージ交換プロトコル。
【請求項９】
チップの登録及び認証のための方法であって、
サーバを用いて、一組のチャレンジを生成するステップと、
前記サーバを用いて、前記一組のチャレンジをチップに送信するステップと、
前記チップを用いて、ＰＵＦに１つ以上のチャレンジを適用し、一組のソフトデータを生成するステップと、
前記チップを用いて、前記サーバに前記一組のソフトデータを返すステップと、
前記サーバを用いて、識別子を作成するステップと、
前記サーバを用いて、セキュアデータベースにおける前記識別子下に前記一組のソフトデータを格納するステップとを備える、チップの登録及び認証のための方法。
【請求項１０】
実地のチップを用いて、前記識別子を送信することなく、前記サーバに認証を要求するステップと、
前記サーバを用いて、チャレンジの部分集合を選択するステップと、
前記サーバから前記チップに前記チャレンジの部分集合を送信するステップと、
前記チップを用いて、該チップのＰＵＦに前記チャレンジの部分集合を適用するステップと、
前記チップを用いて、第１ヘルパーデータ・ビットストリングを生成するステップと、
前記第１ヘルパーデータ・ビットストリングを前記サーバに送信するステップとを備える、請求項９に記載の方法。
【請求項１１】
前記サーバを用いて、前記セキュアデータベースに格納された前記実地のチップに関するソフトデータの組を処理するステップと、
前記サーバを用いて、前記格納されたソフトデータの組を使用して第２ヘルパーデータ・ビットストリングを生成するステップと、
前記第１ヘルパーデータ・ビットストリングと前記第２ヘルパーデータ・ビットストリングとを相関させることにより、係数を作り出すステップと、
前記係数を閾値と比較して、前記実地のチップの特性を決定するステップとを備える、請求項１０に記載の方法。
【請求項１２】
前記相関化ステップは、ビット単位のＡＮＤ演算、ビット単位のＸＮＯＲ演算、波形演算の一群から選択される方法を用いるステップを有する、請求項１１に記載の方法。
【請求項１３】
前記特性は、真正登録チップ、非真正登録チップ、非真正未登録チップ、及び、非真正模造チップの一群から選択される何れかである、請求項１１に記載の方法。
【請求項１４】
前記ソフトデータに閾値技術を適用して、前記ヘルパーデータ・ビットストリングを生成する、請求項１０に記載の方法。
【請求項１５】
前記ソフトデータは、信号に関するデジタル化された測定値であって、該測定値は、伝搬遅延、電圧、電流の一群から選択される何れか１つ以上を含む、請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願）
本出願は、２０１８年６月２７日に出願された米国仮特許出願第６２／６９０６５０号の優先権を主張するものである。
（技術分野）
本発明は、モノのインターネット（ＩｏＴ）や組み込みアプリケーションの認証のためのプロトコルに関するものである。
【０００２】
プライバシー保護、相互物理複製困難関数（ＰＵＦ）型認証プロトコルでは、チップ認証手段としてＰＵＦレスポンス・ビットストリングの代わりにヘルパーデータ・ビットストリングを交換しそれらを互いに相関させることで、攻撃を防ぐようにしている。特に、本発明では、物理複製困難関数（ＰＵＦ）アーキテクチャを利用して、ある集積回路チップから別の集積回路チップに向けた信号において生じる固有のランダムなばらつきを捕らえてＰＵＦのエントロピー源を示すソフトデータを作り出す。該ソフトデータは、相関型ロバスト認証技術の入力として使用するためにビットストリングに変換する。
【背景技術】
【０００３】
ロバストな認証やキーの生成は、信頼の基点を定めるために、また、通信におけるデータの完全性と機密性を実現するために非常に重要となる。そのため、キーを格納したり、認証プロトコルにおいて暗号化プリミティブを使用したりする従来の不揮発性メモリ（ＮＶＭ）の代替として、物理複製困難関数（ＰＵＦ）が提案されている。ＰＵＦを用いると、製造過程において存在しゼロとはならない有限の許容誤差により生じる集積回路内の信号挙動の小さな変化を測定して、キーとビットストリングがオンザフライで再現可能になる。
【０００４】
いわゆる強いＰＵＦの特別なクラスは、数えきれないほどの再現可能なビットを生成できるため、セキュアハッシュのようにエントロピーを増進させる暗号プリミティブを採用することなく認証プロトコル用の固有のレスポンス・ビットストリングを構成でき、ＩｏＴデバイスにおけるエネルギーと領域のオーバーヘッドを削減できるようになる。
【０００５】
保護されていないインタフェースを介して組み込みＰＵＦに直接アクセスできるようになるＰＵＦ型認証プロトコルは、暗号化プリミティブを使用してチャレンジとレスポンスを難読化しないので、通常は非常にシンプルで且つコンパクトであり、故に、最も魅力的な使用シナリオとなっている。
【０００６】
保護されていないインタフェースを備えたプロトコルの欠点は、組み込みＰＵＦがモデル構築型の攻撃を受けやすいという点である。モデル構築は、通常、機械学習（ＭＬ）アルゴリズムを用いて実行され、攻撃者の目的は、ＰＵＦのチャレンジ−レスポンスの挙動のモデルを構築し、その後に該モデルを使用して任意のチャレンジに対するＰＵＦのレスポンスを予測することにある。これを達成できれば、該モデルを使用して実際のデバイスになりすますことができる。ＭＬ攻撃は、コンピュータによる大量の計算を必要とするが、保護されていないインタフェースを使用するＰＵＦ型認証プロトコルにとっては深刻な脅威となる。
【０００７】
そのため、チップを認証する手段としてＰＵＦレスポンス・ビットストリングを使用しない、プライバシー保護、相互ＰＵＦ型認証プロトコルの改良が要請されている。本発明は、チップ認証手段としてのヘルパーデータ・ビットストリングを交換しそれらを相関させることにより、上記要請に応えるものである。
【発明の概要】
【０００８】
本発明は、モデル構築型の攻撃に対して耐性のある、保護されていないインタフェースを備えたＰＵＦ型のプライバシー保護、相互認証プロトコルに関するものである。本手法は、ハードウェア組み込み型遅延ＰＵＦ（ＨＥＬＰ）を用いて説明しているが、ソフトデータを作り出せる何れのＰＵＦアーキテクチャに対しても適用できる。ソフトデータとは、測定された信号、例えば、経路遅延、周波数、電圧や電流などの金属抵抗の大きさを示すデジタル値のことである。ソフトデータは、あるチップ又はトークンから別のチップ又はトークンに向けた信号において生じる固有のランダムなばらつきを捕らえてＰＵＦのエントロピー源を示すものである。したがって、本プロトコルは、アービターＰＵＦの拡張バージョンや、リングオシレータ（「ＲＯ」）のような従来の弱いＰＵＦにも適用でき、さらに、認証アプリケーションにおいて必要があれば、チャレンジ−レスポンス空間をｎから２ｎに拡張する単純な機能強化も行える。
【０００９】
ＰＵＦアーキテクチャでは、通常、ソフトデータを暗号化及び認証に使用するビットストリングとキーとに変換する一組の関数を定義する。本発明に係る認証プロトコルでは、相関型ロバスト認証と称する相関技術への入力として、ソフトデータ、及び、ＰＵＦアーキテクチャにより作り出されるソフトデータに対応したヘルパーデータ・ビットストリングを使用する。ヘルパーデータ・ビットストリングを相関させることにより、サーバは、実地のチップやデバイス（トークン或いはクライアントともいう）を正しく且つ安全に認証することができるようになる。また、チップおよびサーバ間のメッセージ交換において、レスポンス・ビットストリングを開示する必要が無くなり、したがって、チャレンジ−レスポンス・ペア（ＣＲＰ）に機械学習アルゴリズムを適用するといった従来のアプローチはもはや不可能になる、という利点がある。
【００１０】
ヘルパーデータ・ビットストリングは、ＰＵＦレスポンス・ビットストリングから得られたものであり、したがって、このヘルパーデータ・ビットストリングは、ＰＵＦのエントロピー源に関するランダム性と一意性とを承継している。クライアントおよびサーバ間のメッセージ交換において、ＰＵＦレスポンス・ビットストリングを排除することで、モデル構築型のような攻撃がさらに実行困難になる。
【００１１】
このサーバおよびチップ間のメッセージ交換は、ＰＵＦの機密に関わる情報を開示しないため、該認証プロトコルは、ＰＵＦ型認証プロトコルに対して一般に実行される、なりすまし、機械学習、及びその他のタイプの攻撃に耐性がある、という利点がある。
【００１２】
本認証プロトコルでは、チップがヘルパーデータ・ビットストリングを構成し、これをサーバに送信する。送信されたヘルパーデータ・ビットストリングは、通常、レスポンス・ビットストリング内の弱いビットを識別するためにサーバによって使用されるが、それ以外の場合は、該レスポンス・ビットストリングのそれ自体に関する情報は開示されない。該サーバは、登録データを使用して一組のヘルパーデータ・ビットストリングを構成し、該ビットストリングをセキュアデータベースに格納する。チップのヘルパーデータ・ビットストリングとサーバが生成したヘルパーデータ・ビットストリングとをビット単位でＡＮＤし、ＡＮＤしたビットストリング内の「１」の数をカウントすることにより、チップのヘルパーデータ・ビットストリングをサーバが生成した各ヘルパーデータ・ビットストリングと相関させる。ビット単位のＡＮＤ型相関に代わる他の選択肢としては、ビット単位のＸＮＯＲ型相関や、従来の時間領域や周波数領域のデジタル信号処理形式の相関などが考えられる。
【００１３】
登録データを使用して構成したヘルパーデータ・ビットストリングの１つがチップのヘルパーデータ・ビットストリングと相関がある、つまり、「１」が多くある場合には、サーバは該チップを認証する。同様の処理をサーバからチップへと逆に実行すると相互（双方向）認証が可能になるが、しらみつぶし探索に資する要素を伴うものではない。したがって、ヘルパーデータ・ビットストリングがＰＵＦの回路要素で発生するランダムなばらつきから得られたものという事実があるにもかかわらず、ＰＵＦの機密に関わる情報が攻撃者に開示されることはない。
本発明の上記の及び他の例示的な特徴及び利点は、添付図面の参照による以下の説明で明らかになる。
【００１４】
尚、以下の図面は、本明細書の一部を形成し、本発明の特定の実施形態又は各種態様に関する説明を補足するために含めたものである。本発明の各実施形態は、提示した詳細な説明と合わせて添付図面を参照することで最も適切に理解できる場合がある。以下の説明と添付図面は、本発明のある特定の例や態様を強調していることもある。しかし、当業者であれば、その例や態様の一部を他の例や態様と組み合わせて用いることができる点を理解するであろう。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の実施形態に係るＨＥＬＰアーキテクチャのブロック図である。
【図２】図２は、本発明の実施形態に係る登録中に作成されるＨＥＬＰ  ＰＮデータベースを示すブロック図である。
【図３Ａ】図３Ａは、登録条件下及び再現条件下での第１集積回路に関するＰＮのインデックスのグラフを示す図である。
【図３Ｂ】図３Ｂは、登録条件下での第１集積回路に関するサーバ側のヘルパーデータ・ビットストリング及びレスポンス・ビットストリングを示す図である。
【図３Ｃ】図３Ｃは、再現条件下での第１集積回路に関するチップ側のヘルパーデータ・ビットストリング及びレスポンス・ビットストリングを示す図である。
【図４Ａ】図４Ａは、登録条件下及び再現条件下での第２集積回路に関するＰＮのインデックスのグラフを示す図である。
【図４Ｂ】図４Ｂは、登録条件下での第２集積回路に関するサーバ側のヘルパーデータ・ビットストリング及びレスポンス・ビットストリングを示す図である。
【図４Ｃ】図４Ｃは、再現条件下での第２集積回路に関するチップ側のヘルパーデータ・ビットストリング及びレスポンス・ビットストリングを示す図である。
【図５Ａ】図５Ａは、サーバに対する第１集積回路の認証におけるヘルパーデータ・ビットストリングの相関を示す図である。
【図５Ｂ】図５Ｂは、サーバに対する第２集積回路の認証におけるヘルパーデータ・ビットストリングの相関を示す図である。
【図６Ａ】図６Ａは、５００個のチップに関する９種のＴＶコーナーにわたるヘルパーデータ・ビットストリングの相関のグラフを示す図である。
【図６Ｂ】図６Ｂは、図６Ａのヘルパーデータ・ビットストリングの相関に基づいた曲線の構成説明図である。
【図７Ａ】図７Ａは、本発明に係る改良されたプライバシー保護、相互ＰＵＦ型認証プロトコルを示す図である。
【図７Ｂ】図７Ｂは、本発明に係る相関型ロバスト認証技術を用いて実行される各ステップを示すフローチャートである。
【図７Ｃ】図７Ｃは、本発明に係る相関型ロバスト認証技術を用いて実行される各ステップを示すフローチャートである。
【図７Ｄ】図７Ｄは、本発明に係る相関型ロバスト認証技術を用いて実行される各ステップを示すフローチャートである。
【図８Ａ】図８Ａは、本発明の実施形態に係る相関係数（ビット）のグラフを示す図である。
【図８Ｂ】図８Ｂは、本発明の実施形態に係る相関係数の変動率（％）を示すグラフである。
【図９Ａ−Ｆ】図９Ａ〜図９Ｆは、ワーストケースにおける真正登録（「ＡＥ」）チップと非真正登録（「ＮＥ」）チップとの間の相関係数（「ＣＣ」）の差異に関するグラフを示す図である。
【発明を実施するための形態】
【００１６】
本発明は、チップ認証手段としてＰＵＦレスポンス・ビットストリングの代わりにヘルパーデータ・ビットストリングを交換しそれらを相関させることによって攻撃を防ぐプライバシー保護、相互ＰＵＦ型認証プロトコルに関する。物理複製困難関数（ＰＵＦ）アーキテクチャは、あるチップから別のチップに向けた信号において生じる固有のランダムなばらつきを捕らえて該ＰＵＦのエントロピー源を示すソフトデータを作り出す。該ソフトデータは、相関型ロバスト認証技術の入力として使用するためにビットストリングに変換される。
【００１７】
多様なＰＵＦアーキテクチャが知られている。ＰＵＦのエントロピー（ランダム性）の源は、チップ間及びチップ内で生じるチップ間処理及びダイ内処理に基づく母集団のばらつきである。ＰＵＦアーキテクチャでは、処理のばらつきの影響によってもたらされた小さな信号のばらつきを測定するために用いるメカニズムを定めている。その測定処理の中には、チップにおける既存のアーキテクチャ機能を利用するものもあり、例えば、ＳＲＡＭ  ＰＵＦは、単にＳＲＡＭアレイに電力を供給するだけで、該ＳＲＡＭ  ＰＵＦのエントロピー源を測定する、つまり、個々のＳＲＡＭセルを測定するようになっている。しかし、ほとんどのＰＵＦの場合、回路要素をチップに追加する必要があり、例えば、ＲＯ  ＰＵＦでは、ＲＯのアレイ内の要素に関連する周波数を選択し測定するために、ＭＵＸとカウンターの組が必要になる。
【００１８】
別の例を挙げると、ＨＥＬＰ  ＰＵＦでは、組み合わせ論理経路の遅延を正確に計時するためのランチ−キャプチャ・クロック・メカニズム（ｌａｕｎｃｈ−ｃａｐｔｕｒｅ  ｃｌｏｃｋｉｎｇ  ｍｅｃｈａｎｉｓｍ）が追加される。エントロピー源に関連する信号挙動を測定しデジタル化するＰＵＦアーキテクチャの場合、デジタル化された値は、強いチャレンジ・レスポンス・ペア（ＣＲＰ）形式の認証にて利用可能な追加情報を提供するものとなる。デジタル化された値は、ＲＯ周波数や経路遅延などの信号挙動の大きさを示し、ＰＵＦアーキテクチャによって定められた数学的プロセスの入力としてよく用いられる。数学的演算の目的は、エントロピー源を示す個々の回路要素の多くの複製間で生じる差異を増幅することにある。デジタル化された値は、ソフトデータと呼ばれ、最終的にビットに変換され、ＣＲＰのレスポンスに使用される。
【００１９】
ソフトデータを作り出す上記ＰＵＦアーキテクチャに関し（ＲＯ及びＨＥＬＰ  ＰＵＦの２つは、例示に過ぎない。）、ビットへの変換は、様々な方法でなしうる。例えば、ＲＯ  ＰＵＦでは、通常、ＲＯのペアを選択し、２つのＲＯに関するソフトデータを減算することにより差異を計算する。差異の符号は、ビットを生成するために使用でき、例えば、負の差異については「０」を作り、正の差異については「１」を作る。ＨＥＬＰ  ＰＵＦは、経路遅延のペア間の差異も計算し、該差異に「０」又は「１」を割り当てるためにモジュラス演算（Ｍｏｄｕｌｕｓ  ｏｐｅｒａｔｉｏｎ）を用いる。
【００２０】
略全てのＰＵＦアーキテクチャでは、レスポンスを再生成するときに発生するレスポンス・ビットストリングの差異になるビット反転エラーも取り扱う必要がある。ビット反転エラーは、例えば２つのＲＯ周波数間の差異の大きさがゼロに近い場合に最も生じやすい。この場合、環境条件が悪化しうる状況下の実地で行われるその後の再現においては、該差異の符号が変化し、対応するビットが「０」から「１」に反転し或いはその逆になったりすることがある。認証プロトコルは、少数のビット反転エラーに耐えるように設計できるが、発生する可能性のあるビット反転エラーの数は殆どのＰＵＦアーキテクチャでは多すぎて、ハッシュ環境で再現が行われたとき、認証が正しく動作することを保証することができない。
【００２１】
この問題に対処するため、略全てのＰＵＦアーキテクチャにおいて、再現時の信頼性を向上させるためのエラー修正又はエラー回避の方法を定めている。エラー修正は、この２つの信頼性向上方法のうちで、より一般的なものである。該エラー修正は、通常、線形ブロック符号又はＢｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｈｑｕｅｎｇｈｅｎ符号（ＢＣＨ符号）に基づくアルゴリズムを使用し、ＰＵＦレスポンス・ビットを最終的なレスポンス・ビットストリングへと処理する。しかし、略全てのエラー修正方式において、ソフトデータの差異の大きさは無視され、ビット反転エラーを作り出す可能性の高いビットを含むＰＵＦレスポンス・ビットのすべてを用いて比較的小さいが再現性のあるレスポンス・ビットストリングを構成している。
【００２２】
一方、エラー回避方式は、信頼性を欠くとみなしたビットをスキップする閾値方法を組み込んでいる。ビットの信頼性は、多くの場合、ビットに関連するソフトデータ、特に、ソフトデータ値からビット反転ラインまでの距離に直接関係している。ビット反転ラインは、ＰＵＦアーキテクチャにより、「０」と「１」の間のソフト閾値として定められる。エラー修正方法とは異なり、エラー回避方法は、ソフトデータの値を作り出すＰＵＦアーキテクチャでのみ使用できるものであり、例えば、ＲＯ、金属抵抗に関するもの、及び、ＨＥＬＰ  ＰＵＦは、その数例である。
【００２３】
一般的な使用シナリオでは、登録フェーズが実行されるとともに該フェーズにおいてセキュア設備のＰＵＦにチャレンジが適用され、最初にレスポンス・ビットストリングが生成される。エラー修正又はエラー回避の何れかの方法を使用するＰＵＦアーキテクチャにおいては、レスポンス・ビットストリングだけでなく、ヘルパーデータ・ビットストリングも作り出される。ヘルパーデータ・ビットストリングは、通常、セキュア設備によって格納され、その後の再現中にデバイス上のＰＵＦでレスポンス・ビットストリングが正確に再現されるよう、実地のデバイスに送信される。生成されたヘルパーデータ・ビットストリングの形式は、採用されているエラー修正方法やエラー回避方法によって大きく異なる。本発明の貢献の主要部は、ヘルパーデータ・ビットストリングに関するものであり、特に、エラー回避方法によって生成されるヘルパーデータ・ビットストリングに関するものである。
【００２４】
提案技術の原理を例示するため、一組のＺｙｎｑ  ＦＰＧＡから収集したデータと併せてＨＥＬＰ  ＰＵＦアーキテクチャを用いる。ＨＥＬＰでは、組み合わせ論理ブロックを介して経路遅延の正確なデジタルタイミング値を取得するためのランチ−キャプチャ技術を用いている。
【００２５】
図１は、全加算器の組み合わせ論理ブロックを含むＨＥＬＰアーキテクチャ１００のブロック図である。ただし、任意の機能ユニットを使用できる。例えば、Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）の一列を用いた組み合わせ論理を使用できる。図１に示すように、経路遅延（タイミング）のソフトデータを作り出すため、クロック・ストローブ（ｃｌｏｃｋ  ｓｔｒｏｂｉｎｇ）を用いる。論理信号は、左側に示したランチ（Ｌａｕｎｃｈ）ＦＦからＣｌｋ１を使用して送り出され、右側に示すキャプチャ（Ｃａｐｔｕｒｅ）ＦＦにＣｌｋ２を使用して捕捉されるように遷移する。
【００２６】
ＦＰＧＡのデジタルクロックマネージャー（ＤＣＭ）を使用してクロックを作り出しており、Ｃｌｋ２において動的で微小な位相シフトが生じるようになっている。動的で微小な位相シフトにより、ＦＰＧＡのプログラマブル・ロジック（ＰＬ）で実行される状態機械において、図１の右側に示すように、１８ｐｓの増分ずつ位相シフトを増やしていくことができる。全加算器を通る経路は、図示した経路に沿って伝搬する信号がキャプチャ（Ｃａｐｔｕｒｅ）ＦＦにより正常に捕えられるまでランチ（Ｌａｕｎｃｈ）ＦＦに２つのベクトル・シーケンスを繰り返し適用することにより調節される。この例では、図１の中央部に示すように、２つのベクトル・シーケンスの第１のベクトルＶ１から作られた「０」が、Ｖ２によって作られた「１」で上書きされたときに、正常な捕捉が起きる。これが起きると、現時点における微小な位相シフト値であって０から約５００までの間の整数が、当該経路のデジタル化されたタイミング値としてＨＥＬＰにより記録される。これらのタイミング値は、ＨＥＬＰに関するソフトデータを示している。
【００２７】
登録中、各チップに関してのＰＵＦ数（「ＰＮ」）と称す一組のタイミング値は、図２に示すように、セキュアデータベース１５０における行（row）に格納される。このデータは、各チップが実地のシステムに展開された後、当該各チップを認証するためにセキュアサーバによって参照される。レスポンス・ビットストリングとは対照的に、サーバへのソフトデータの格納は、本発明の相関型ロバスト認証技術と公知にして現行のＰＵＦ型プロトコルとの間に存在するいくつかの重要な違いのうちの１つ目にあたる。上述のように、本提案のプロトコルは、ヘルパーデータ・ビットストリングを利用して認証を実行する。ヘルパーデータ・ビットストリングは、サーバのセキュアデータベースに格納されたＰＮと、実地のデバイス（チップ或いはトークンともいう）を示すＦＰＧＡのＰＬ側にプログラムされたＨＥＬＰのインスタンスとから得られる。各トークンに関するエントロピーは、サーバ・データベースに格納されたＰＮによって捕えられている。該プロトコルに対し機械学習攻撃を実行する攻撃者は、ネットワーク上でオープンに交換されるビットストリング・レスポンスをリバースエンジニアリングすることにより、データベースに格納されている上記タイミング情報を学習しようとするであろう。一度学習すれば、その攻撃者は上記トークンになりすますことができる。そのため、ＰＮとレスポンス・ビットストリングとの関係を見えなくし、攻撃者にとって上記の作業が困難となるか又は不可能となるよう、隠したままにしておくことが非常に重要となる。
【００２８】
図３Ａ〜図３Ｃおよび図４Ａ〜図４Ｃは、相関型ロバスト認証技術の前段工程として、マージニングと称されるエラー回避方式を使用して、如何にしてＦＰＧＡでビットストリングとヘルパーデータ・ビットストリングとを生成するのかを示したものである。登録中に収集されてセキュアデータベースに格納されたデータの環境条件は、公称供給電圧条件（１．００Ｖ）且つ２５℃としているが、実地のトークンは、高温（８５℃）及び低供給電圧（−５％、又は、０．９５Ｖ）の条件にさらされている。
【００２９】
図３Ａは、登録条件下及び再現条件下での第１集積回路（「トークンＣ１」）に関するＰＮのインデックスのグラフ２００を示しており、図４Ａは、登録条件下及び再現条件下での第２集積回路（「トークンＣ２」）に関するＰＮのインデックスのグラフ３００を示している。グラフ２００及びグラフ３００の各々において、ｘ軸に沿って１８個の一組のＰＮ（タイミング値）をプロットする。そして、セキュアデータベースから取得したＰＮを曲線「Ａ１」、「Ｂ１」で示し、実地の再現時にこれらの各チップによりオンザフライで生成されたＰＮを「Ａ２」、「Ｂ２」で示す。補償されていない温度−電圧ノイズ（「ＴＶＮoise」）は、図３Ａにおける曲線「Ａ１」と「Ａ２」とのオフセット、図４Ａにおける曲線「Ｂ１」と「Ｂ２」とのオフセットを引き起こす。図３Ａにおける２つ目のデータポイントに「ｗｒａｐ」と表示した興味深い例が見られるが、ここでは、再現中にＴＶＮｏｉｓｅが原因となり、２０に近い登録値から０に近い値に戻るといったデータポイントの大きなずれ（ｗｒａｐ）が生じている。これらの異常にもかかわらず、各グラフに示された曲線「Ａ１」と「Ａ２」、曲線「Ｂ１」と「Ｂ２」は、非常に近接して互いを追っている。つまり、これらは互いに相関している。
【００３０】
ＨＥＬＰ  ＰＵＦは、以下のアルゴリズムを適用してＰＮをビットストリングに変換する。先ず、疑似乱数発生器でＰＮのペアを選択し、それらの差異を生成する。次に、温度−電圧補償方法（「ＴＶＣｏｍｐ」）を該差異に適用して、環境条件によってもたらされる変化を受けたタイミング値の測定値を補償する。そして、補償後の差異にモジュラス演算を適用して、経路長の偏りの影響を除去する。
【００３１】
モジュラス演算は、モジュラスで割った後に正の剰余を返すような標準的な方法で定義している。モジュラスの値は、ＨＥＬＰアルゴリズムで用いる幾つかのパラメータの１つである。図３Ａ及び図４Ａに示すグラフでは、ｙ軸上で当該ｙ軸の最大値を反映した２０のモジュラスを使用している。
【００３２】
前述のとおり、ＨＥＬＰに実装されているエラー回避方式は、マージニングと称される。マージニング方式は、ビット反転エラーの可能性が高い場合、ソフトデータ（つまり、ＰＮ）をスキップする。これらビット反転の可能性の高い領域は、図３Ａのグラフ２００及び図４Ａのグラフ３００の中央において「弱」と表示され、ビット反転ラインである０、１０、２０に隣接して位置している。言い換えると、これらのビット反転ラインから２．０の距離内にあるＰＮは、その値が変化する可能性が最も高い。例えば、「ｗｒａｐ」と表示されたＰＮは、補償されていないＴＶＮｏｉｓｅによってもたらされたビット反転エラーであることを示している。「弱」領域にあるＰＮには、ヘルパーデータ・ビットストリングにおいて「０」が割り当てられる。
【００３３】
図３Ｂは、登録条件下での第１集積回路に関するサーバ側のヘルパーデータ・ビットストリング及びレスポンス・ビットストリングの図２２０を示している。図３Ｂに示すように、「Ｃ１ヘルパーデータ」ビットストリングは「０００」から始まるが、これは、図３Ａのグラフ２００における「Ａ１」曲線内の最初の３つのＰＮの状態を反映したものである。これに対し、図３Ａのグラフ２００における４番目の位置にあるＰＮは「強１」領域内に入っているので、この４番目のビットは「１」になる。
【００３４】
図３Ｂの「Ｃ１混合ＢＳ」は、１８個のＰＮの其々に関するビット値を記録したものであり、ＰＮ＜１０．０を満たすＰＮには「０」を割り当て、ＰＮ≧１０．０を満たすＰＮには「１」を割り当てたものである。このレスポンス・ビットストリングは、「Ｃ１ヘルパーデータ」ビットストリングと１対１で対応し、強いビットと弱いビットの両方を含んでいる。「Ｃ１強ＢＳ」は、「Ｃ１混合ＢＳ」から構成したものであって、「Ｃ１ヘルパーデータ」ビットストリングにおいて「強」と識別されたビットのみを選択することで構成したものである。
【００３５】
図４Ｂは、登録条件下での第２集積回路に関するサーバ側のヘルパーデータ・ビットストリング及びレスポンス・ビットストリングを示している。
【００３６】
図３Ｃは、再現条件下での第１集積回路に関するトークン側のヘルパーデータ・ビットストリング及びレスポンス・ビットストリングの図２４０を示している。この図３Ｃは、図３Ａのグラフ２００における曲線「Ａ２」のデータポイントを用いて生成された対応するビットストリングを示している。図４Ｃは、再現条件下での第２集積回路に関するトークン側のヘルパーデータ・ビットストリング及びレスポンス・ビットストリングの図３４０を示している。この図４Ｃは、図４Ａのグラフ３００における曲線「Ｂ２」のデータポイントを用いて生成された対応するビットストリングを示している。
【００３７】
ある公知のＨＥＬＰ認証プロトコルは、図３Ｂ及び図４Ｂでモデル化したサーバ並びに図３Ｃ及び図４Ｃでモデル化したトークン間において、ヘルパーデータ・ビットストリング及び強いビットストリングの両方を交換するデュアル・ヘルパーデータ方式を記述している。上述のとおり、強いビットストリングを攻撃者に公開すると、攻撃者が機械学習（ＭＬ）アルゴリズムを使用してセキュアデータベースに格納されているＰＮをリバースエンジニアリングしようとするモデル構築型の攻撃が可能になる。これまでＨＥＬＰをモデル化する試みは成功していないが、レスポンス・ビットストリングの公開は、ＭＬ攻撃が可能になるという脆弱性を意味する。ＰＮ間の関係を推測できるＭＬ攻撃を構築できるようになれば、他のチャレンジへのレスポンス・ビットストリングを予測し、そのトークンになりすますことができる。
【００３８】
攻撃を低減させる戦略的な手順として、認証プロトコルは、ヘルパーデータ・ビットストリングのみを交換するものとなっている。認証は、サーバにおいて登録データを使用して生成されたヘルパーデータ・ビットストリングを、トークンによりオンザフライで生成されたヘルパーデータ・ビットストリングと相関させることにより行われる。最も単純な戦略的な相関手順は、サーバとトークンのヘルパーデータ・ビットストリングをビット単位でＡＮＤし、そのＡＮＤしたバージョンの「１」の数を数えることで新たなビットストリングを算出することである。「１」の数は、相関係数（「ＣＣ」）であり、当該２つのヘルパーデータ・ビットストリングの間に存在する類似性の度合いを反映している。
【００３９】
図５Ａは、サーバに対する第１集積回路の認証におけるヘルパーデータ・ビットストリングの相関の図２５０を示し、図５Ｂは、サーバに対する第２集積回路の認証におけるヘルパーデータ・ビットストリングの相関の図３５０を示している。ヘルパーデータ・ビットストリングは、図３Ａ〜図４Ｃに示すようにして、ソフトデータから取得される。一例であるが、図５ＡはトークンＣ１による認証試行を示し、図５ＢはトークンＣ２による試行を示している。図５Ａの最上部のビットストリング２５１、及び、図５Ｂの最上部のビットストリング３５１は、トークンによってサーバに送信されるヘルパーデータ・ビットストリングである。サーバは、受信したヘルパーデータ・ビットストリングごとに、該サーバのセキュアデータベースに格納しているＰＮを使用して、しらみつぶし探索の作業を行う。このとき、サーバは、各列にヘルパーデータ・ビットストリングを構成する。
【００４０】
サーバは、構成した各々のヘルパーデータ・ビットストリングと受信したトークンのヘルパーデータ・ビットストリングとをビット単位でＡＮＤする。例えば、そのＡＮＤバージョンは、図５Ａにおいて「Ｃ1  ＡＮＤ  Ｃ1  ヘルパーデータ」、「Ｃ1  ＡＮＤ  Ｃ２  ヘルパーデータ」と表示したものである。説明したように、ビット単位のＡＮＤ演算は、ビットストリングが似ているほどより多くの「１」を保存するように動作する相関処理の一形態である。図５Ａの符号２５２や図５Ｂの符号３５２で示すように、ＡＮＤしたヘルパーデータ・ビットストリングの右側にＣＣ（「１」の数）を記載しておく。
【００４１】
認証試行の両結果は、サーバが生成したヘルパーデータ・ビットストリングが、認証を試みているトークンに属しているＰＮデータから得たものであった場合には相関がより強い、ということを示している。つまり、認証を試みているトークンは、ＣＣによって与えられた情報のみを使用して、サーバとの関係で正しく識別される。この例では、ＨＥＬＰアルゴリズムの各反復処理により作り出される２０４８個という比較的多数のＰＮのうち、１８個という少数のＰＮだけを使用している。
【００４２】
５００個のＦＰＧＡを使用すると、図６Ａのグラフ４００に示す結果になる。図６Ａは、ＨＥＬＰ  ＰＵＦからのヘルパーデータ・ビットストリングを３のマージンと１８のモジュラスで相関させて得た、９種のＴＶコーナーにわたって収集した全ビットストリング及びＰＮを示したものである。９つの曲線の其々は、５００個のチップ（ｘ軸）に関してＣＣ（ｙ軸）をプロットしたものである。認証を試みているトークンは、符号４２５で示すように、Ｃ２５０で表示している。
【００４３】
図６Ｂにおける図表４５０は、図６Ａの曲線をどのように構成するのかを示している。図の左側に示した２５℃、１．００Ｖの条件で再現されたトークンのヘルパーデータ・ビットストリングは、図の右側に示したサーバに送信される。また、２回目の認証要求も示しており、この場合におけるトークンは、環境条件を−４０℃、１．０５Ｖに設定した状態のヘルパーデータを再現している。サーバは、これら２つの認証ごとに個別に登録ＤＢに格納しているデータを使用してしらみつぶし探索を実行し、５００個の一組のＣＣを算出する。これらのＣＣを図６Ａの一番上と一番下の曲線の如くｘ軸に沿ってプロットする。図６Ａの残りの７つの曲線に関するＣＣを構成するために同様の処理を実行するが、その場合、他のＴＶコーナーに対応するＰＮを用いる。
【００４４】
図６Ａのチップ番号Ｃ２５０（真正登録（「ＡＥ」）チップと呼ぶ）のＣＣは、一番上の曲線では４５０ビットを超え、一番下の曲線では約３８０ビットと変化する。トークンが過酷な環境条件にさらされると相関は弱くなるが、ＤＢにおける残り４９９個のチップ（非真正登録（「ＮＥ」）チップと称す）により作り出されたＣＣに対して、相関は、依然として強いままである。ＮＥチップから得られる最大値は、約２６０である。ＡＥのＣＣとＮＥのＣＣとの間にある大きなマージンは、サーバが認証成功と認証失敗とを非常に高い確率で（本例では２６０から３８０の間の任意の値で機能する）区別可能となる閾値を定めることを示している。
【００４５】
ＡＥ及びＮＥの認証試行のみを考えているが、非真正未登録（「ＮＮ」）や非真正模造（「ＮＣ」）の認証試行も対象になる。
【００４６】
ＡＮＤ相関方式においては、攻撃者は全てを「１」にしてヘルパーデータ・ビットストリングを構成することが可能であり、その場合、多数の一致が保証されてしまう。しかし、セキュアＤＢ内のすべてのデータの組に大きなＣＣが発生し、それによりサーバによってフラグが立てられ、認証試行は失敗する。認証試行の成功として分類されるためには、サーバは１つのＣＣだけが閾値を超えることを許容するため、これは事実である。図７Ａは、本発明に係る改良されたプライバシー保護、相互ＰＵＦ型認証プロトコルの図５００を示している。この図７Ａは、チップとサーバとの間のメッセージ交換を含む、登録及びチップ認証に関わる演算を示したものである。
【００４７】
図７Ｂ〜図７Ｄは、本発明に係る相関型ロバスト認証技術を用いて実行される各ステップを示すフローチャートである。
【００４８】
登録は、ＰＵＦのソフトデータにアクセス可能となる機密のＦＰＧＡプログラミング・ビットストリームを使用して、セキュア設備内で実行される。図７Ｂは、図７Ａに示す相関型ロバスト認証技術を用いて実行される各ステップのフローチャート５２０を示している。ステップ５２１で、サーバは、チャレンジ{ｃｋ}を生成し、ステップ５２２で、該チャレンジ{ｃｋ}をチップに送信する。次いで、ステップ５２３で、チップは、該チャレンジをそのＰＵＦに適用して{ＰＮｊ}の組を生成し、ステップ５２４で、該{ＰＮｊ}をサーバに返す。ステップ５２５で、サーバは、チップの識別子であるＩＤｉを生成する。ステップ５２６で、サーバは、そのセキュアデータベースＤＢ内における該ＩＤｉ下にソフトデータの組{ＰＮｊ}を格納する。
【００４９】
図７Ｃは、ＨＥＬＰ  ＰＵＦの認証の第１フェーズ（チップ認証）に向けた、相関型ロバスト認証技術を用いて実行される各ステップのフローチャート５３０を示している。ステップ５３１で、実地のチップiは、サーバに認証を要求する（注意：プライバシー保護のため、チップＩＤはサーバに送信されない。）。ステップ５３２で、サーバは、ノンスｎ２を作り出す。ステップ５３３で、サーバは、一組のチャレンジ{ｃｍ}を選択する。チャレンジ{ｃｍ}は、登録中に使用されるチャレンジ{ｃｋ}の部分集合である。ステップ５３４で、ノンスとチャレンジの部分集合との両方をチップに送信する。ステップ５３５で、該ノンスｎ２を使用してパラメータを選択する。パラメータは、マージン・パラメータやモジュラス・パラメータとすることができる。ステップ５３６で、チップは、該チップ及びサーバが生成したノンスｎ１及びｎ２のＸＮＯＲ演算を用いて選択したパラメータ（つまり、マージン）とともに、チャレンジ{ｃｍ}を該チップのＰＵＦに適用する。ステップ５３７で、例えば上記のマージン方式を使用して、ヘルパーデータ・ビットストリングｈ’を生成する。ステップ５３８で、ｈ’及びｎ１の両方をサーバに送信する。
【００５０】
次に、サーバは、図７Ｄのフローチャート５４０のステップ５４１に示すように、該サーバのデータベースに格納している各チップｉのソフトデータの組{ＰＮｊ}ｉを処理することにより、しらみつぶし探索を実行する。ステップ５４２で、格納済みの各々のデータの組{ＰＮｊ}ｉと、チップで使用されたものと同じパラメータ（マージン）とを使用して、ヘルパーデータ・ビットストリングｈを内部的に生成する。次いで、ヘルパーデータ・ビットストリングｈ’をビット単位のＡＮＤ演算（前述）に基づきｈと相関させるが、これは他の方法によっても可能であり、例えば、ビット単位のＸＮＯＲ、或いは、信号処理で用いられる標準的な波形相関方法によっても可能である。ステップ５４３で、続くステップ５４４で閾値ｔと比較しうる相関係数ＣＣｉを作り出す。該閾値は、例えば、セキュア設備内の特性評価処理によって事前に決定される。特性評価の目標は、真正登録チップ（ＡＥ）を非真正登録チップ（ＮＥ）、非真正未登録チップ（ＮＮ）、及び非真正模造チップ（ＮＣ）から明確に区別する閾値を選択することである。
【００５１】
改良されたプライバシー保護、相互ＰＵＦ型認証プロトコルにおける最後の段階は、チップがサーバを認証する処理である。そのフェーズは図示しないが、メッセージ交換が逆になること、及び、しらみつぶし探索の処理が省かれることを除いて同様である。チップ認証が成功しない限りサーバ認証を実行しないが、その場合、サーバはチップのソフトデータの組{ＰＮｊ}ｉを識別している。サーバは、該{ＰＮｊ}ｉを使用して別のヘルパーデータ・ビットストリングを生成し、これをチップに送信する。サーバ認証中に生成されたヘルパーデータ・ビットストリングは、チップ認証中に生成されたものとは区別されることに留意されたい。これは、このフェーズにおいて、チャレンジ部分集合{ｃｍ}とノンスｎ１及びｎ２とが別途選択されるからである。ＨＥＬＰアルゴリズムに関して知られているように、ノンスによって選択されるマージン・パラメータに加えて他のパラメータを導入することで、ＣＲＰ空間を拡張することができる。認証は、チップ認証フェーズとサーバ認証フェーズの両方が成功した場合に成功し、そうでなければ失敗する。
【００５２】
以下は、ワーストケースのシナリオを示す実験結果である。ＨＥＬＰ  ＣＲＰ空間に関する更に大きな組を使用する。解析したデータは、９種の温度−電圧（ＴＶ）コーナーに関するものであり、登録済みの５００個の一組のチップ・インスタンスから収集したものである。
【００５３】
ＨＥＬＰアルゴリズムの完全なＣＲＰ空間は、（１）複数のチャレンジ（２つのベクトルの複数のシーケンス）の複数の組とチャレンジの各組が４０９６のＰＮを作り出すよう対応した経路選択マスク（Ｐａｔｈ−Ｓｅｌｅｃｔ−Ｍａｓｋ）、ならびに、（２）２つのＬＦＳＲ（線形帰還シフトレジスタ）シード、基準平均（ｒｅｆｅｒｅｎｃｅ  ｍｅａｎ）や基準範囲（ｒｅｆｅｒｅｎｃｅ  ｒａｎｇｅ）と呼ばれる２つの浮動小数点パラメータ、モジュラス、及び、マージンからなる一組のパラメータによって定められる。該複数のチャレンジと経路選択マスクは、エントロピー源として使用される機能ユニットのサイズと指数関数的に関連したサイズを持つＣＲＰ空間を作り出す。該パラメータにより、ＣＲＰ空間が約２２１だけ増加するため、複数のチャレンジと経路選択マスクの組ごとにそれらのパラメータを変化させることによって、２２１の２０４８ビットを持つビットストリングを生成できる。パラメータを変更することで作り出されたヘルパーデータ・ビットストリングの解析に焦点を合わせるため、複数のチャレンジと経路選択マスクの１組のみを解析に使用する。これは、ＣＲＰ空間全体のごく一部の部分集合を表すにすぎないが、各々の結果は、統計的に有意なサンプルの全体において、相関型ロバスト認証技術がうまく機能することを示している。
【００５４】
２つのＬＦＳＲシード・パラメータにより、それぞれが２０４８ビットの長さを持つ別個の２０４８までビットストリングを生成することができる。基準平均と基準範囲により、別個のビットストリングの数が約１００倍に増加する。以下は、１０の別個のＬＦＳＲシード、１組の基準平均及び基準範囲、及び、１１個のモジュラスと３個のマージンの組を使用して生成したヘルパーデータ・ビットストリングを解析したものである。
【００５５】
図８Ａのグラフ６００、及び図８Ｂのグラフ６５０を用いて、ワーストケースの解析のために採ったアプローチを示す。本実施形態における提示データは、１つのモジュラス及びマージンのみを使用して得たものであるが、以下では、より大きな組に拡張する。図８Ａの符号６０１で示す曲線は、ｘ軸に沿って識別した５００個のＡＥチップの認証時にサーバにより算出されたＣＣをプロットしたものである。これらの曲線は、上記のように作成したものであるが、全５００個のチップ、９種のＴＶコーナー（図６Ｂのチップを参照）、及び１０個のＬＦＳＲシードを含んだものになっている。したがって、５００個のＡＥに関するＣＣ（ＡＥ  ＣＣ）の其々について、９０本の曲線が存在している。図８Ａの符号６０２で示す曲線は、其々の認証試行における、残りの４９９個のＣＣのうちでワーストケースの（最大の）ＮＥに関するＣＣ（ＮＥ  ＣＣ）をプロットしたものであり、符号６０３で示す曲線は、平均のＮＥ  ＣＣをプロットしたものである。
【００５６】
図８Ａの曲線は、図６Ａの曲線と異なる形式によるものである点に留意されたい。特に、図８Ａの曲線６０１におけるＣＣは、ＡＥチップのみに対応しており、曲線６０２は、図６Ａの各曲線における４９９個のＮＥ  ＣＣのうちの１つのＣＣ（ワーストケース）のみをプロットしている。したがって、図６Ａの曲線からの２点のみが図８Ａにプロットされ、曲線６０１、６０２の縦方向のペアとなって見えている。各ペアの２点は、ＡＥ ＣＣとＮＥ ＣＣの間の分離幅のワーストケース（最小）を示しており、サーバ上でＮＥチップがＡＥチップであると誤って認証されるような接近状態を視覚的に表したものである。要するに、ＣＣのペアの数は、５００×９ＴＶコーナー×１０ＬＦＳＲシードで与えられので、４５０００となる。各ペアは５００回の認証試行に対応することから、全体で４５０００×５００＝２２５０００００（２２.５Ｍ）回の認証試行があることに留意されたい。
【００５７】
示したとおり、図８Ａの主な特徴は、曲線６０１の点と曲線６０２の点とのペア間の距離（分離幅）である。該分離幅は、認証時にＡＥチップとＮＥチップ、ＮＮチップ、及びＮＣチップとを区別するサーバ機能の鍵になる。残念ながら、一部のＡＥ認証の失敗（誤判定により認証失敗とすること）や一部のＮＥ認証の成功（誤判定により認証成功とすること）を伴うことなく、２点間にハード閾値（水平線）を引くことはできない。
【００５８】
【数１】
2021528925.tif 000003
この問題に対処するために、以下のようにしてＰＣＨと呼ぶ式（１）の変動率ＣＣを計算する。先ず、チップのヘルパーデータ・ビットストリングを使用し、サーバが計算した其々のヘルパーデータ・ビットストリングに対して一組のＣＣを計算する。次いで、１番目と２番目に大きい２つのＣＣを識別して式（１）に適用し、ＰＣＨの値を得る。サーバは、該ＰＣＨがハード閾値よりも大きければチップの認証に成功し、そうでなければ失敗する。認証に成功した場合、最大のＣＣであるＣＣｌａｒｇｅｓｔに関する登録ＤＢ内のソフトデータは、認証を試みている該チップが真正であると識別する。
【００５９】
【数２】
2021528925.tif 000004
図８Ｂの曲線は、式（２）に示すＰＣＨＡＥ＿ＷＣとして定義され、図８ＡのＣＣを用いて該ＣＣと密接に関係する指標をプロットしたものである。
【００６０】
ここで、ＣＣＡＥは、図８Ａの曲線６０１から得られたＡＥに関するものであり、ＣＣｗｏｒｓｔ＿ｃａｓｅ＿ＮＥは、同図におけるペアのもう一方の点、つまり、曲線６０２から得たものである。実際には、認証チップについては知られていないが、図８Ａの全てのＣＣのペアについて、ＣＣｌａｒｇｅｓｔ＝ＣＣＡＥであり、また、ＣＣ２ｎｄ＿ｌａｒｇｅｓｔ＝ＣＣｗｏｒｓｔ＿ｃａｓｅ＿ＮＥであることは判っている。したがって、式（１）と式（２）は、このＣＣの組において同じ結果になる。実際、ＰＣＨＡＥ＿ＷＣは、５００個のチップを対象とした認証試行にてサーバによって生成された何れかのＣＣＡＥが最大とならない場合には負の値になる。最小のＰＣＨＡＥ＿ＷＣは、図８Ｂにおいて丸で囲んだ部分に存在し、約１８％である。これは、２２．５Ｍ回の認証の全体にわたり、全てのＡＥ ＣＣがＮＥ ＣＣよりもかなり大きいことを意味する。ビットで表すと、図８Ａに示すように約３００ビットである。したがって、ＡＥ ＣＣとＮＥ ＣＣとの分離幅は、約３００×０．１８＝５４ビットである。よって、図８Ｂに示すように、サーバが高確率で且つ適切にチップを認識し認証できるようになるハード閾値を例えば１５％と定めることができるようになる。
【００６１】
さて、ＣＲＰ空間を用いた検証について議論する。ＰＣＨＡＥ＿ＷＣを報知する解析を１１個のモジュラス及び３個のマージンの組に拡張する。この解析を、オフセットの有りと無しとで繰り返す。ＨＥＬＰアルゴリズムのオフセットは、強いビットストリング（図３Ｂ、図３Ｃ、図４Ｂ、図４Ｃで強ＢＳと表示したもの）のエントロピー及び一意性を大幅に向上させることができる。これは、マージン方式を使用してＰＮをビットにする前に、図３Ａ及び図４Ａに示すようなＰＮに適用される登録ＤＢのデータを使用して、サーバに一組のオフセットを計算させることにより達成される。オフセットは、モジュラスの１／２未満の小さな垂直シフトであり、ＰＮに関し、母集団の半数のチップが「０」を作り、半数が「１」を作ることを確実にすることで、各ＰＮにおけるエントロピーを最適化する。
【００６２】
オフセットは、ＣＣにほとんど影響しない。図３Ａのグラフ２００及び図４Ａのグラフ３００における弱領域及び強領域は、これが事実である理由を示している。０と１０のビット反転ラインによって決定される強いビットストリングの値とは異なり、ヘルパーデータ・ビットストリングの値は、４つの強−弱領域境界によって決定される。これらの境界の位置により、ヘルパーデータ・ビットストリングは、「強０」及び「強１」で表示した何れかの強ビット領域において０と１との間で反転しうる。したがって、強いビットストリングに関するエントロピーを向上させるためにＰＮ母集団をオフセットさせても、ＣＣはほとんど影響を受けない。実際には、図９に示す結果のとおり、相関は僅かに減少する。オフセットを計算し適用する処理のオーバーヘッドを無くすことは、公知の強いビットストリング・アプローチに対する相関型ロバスト認証技術のもう１つの利点となる。
【００６３】
図９は、ワーストケースにおける、真正登録（「ＡＥ」）チップと非真正登録（「ＮＥ」）チップとの間の相関係数（「ＣＣ」）の差異を式（２）のＰＣＨＡＥ＿ＷＣを使用してパーセント表示した場合のグラフであり、該グラフは、最良の環境条件（図９Ａ及び図９Ｂの２５℃，１．００Ｖ）及び最悪の環境条件（図９Ｃ及び図９Ｄの−４０℃，０．９５Ｖ、図９Ｅ及び図９Ｆの８５℃，１．０５Ｖ）の下で、マージン２〜４、モジュラス１０〜３０にわたって行った２２．５Ｍ回の認証試行により得たものである。
【００６４】
図９に示すように、図９Ａ、図９Ｃ、及び図９Ｅは、オフセットを使用しない場合の結果を示し、また、図９Ｂ、図９Ｄ、及び図９Ｆはオフセット、特に母集団のオフセットを使用した場合の結果を示している。バーの高さは、ｘ軸に沿って与えられたモジュラス及びｙ軸に沿って与えられたマージンからなる一組のパラメータに対するワーストケースのＰＣＨＡＥ＿ＷＣを表している。各々のマージン−モジュラスの組み合わせごとに１つのＰＣＨＡＥ＿ＷＣのみを報告していること、特に、図８Ｂの「最小値」と表示した丸で囲んだ点に対応する値を報告していることに留意されたい。高さが負のバーは、少なくとも１つの認証失敗が発生したことを表している。つまり、上記の通り計算した５００個のチップのＣＣに関し、少なくとも１つのＣＣＡＥは、最大のＣＣではないことを示している。
【００６５】
正のバーは、サーバが２２．５Ｍ回の認証の全てでＡＥチップを正しく識別していることを示し、負のバーは、ＮＥチップについて少なくとも１つの誤認証が発生していることを示している。オフセットを適用しなかった場合の結果は、オフセットを適用した場合の結果よりも僅かに良好である。
【００６６】
より具体的には、図９の各図は、３種のＴＶコーナー、つまり、図９Ａ及び図９Ｂにおいては２５℃且つ１．００Ｖ、図９Ｃ及び図９Ｄにおいては−４０℃且つ０．９５Ｖ、図９Ｅ及び図９Ｆにおいては８５℃且つ１．０５Ｖの場合の結果を示している。図９Ｃ及び図９Ｄと、図９Ｅ及び図９Ｆとは、ワーストケースのＴＶコーナーにおける結果を示しており、残る６つのＴＶコーナーに関する結果についても、比較的に大きなバーを作り出している。これらの結果から、バーの高さが負になってプライバシー保護、相互ＰＵＦ型認証プロトコルで使用できないマージン−モジュラスの組み合わせが明らかになった。
【００６７】
しかし、「オフセットなし」の棒グラフにおいては、マージン３且つモジュラス１８〜２４の間、マージン４で且つモジュラス２２〜２８の間では、高さが１５％を超えるバーを作り出す。オフセットありの図でも同様の結果が得られているが、バーが僅かに小さくなっている。非認証の誤りを避けるため、ハード閾値を約１２％まで下げてもよい。
【００６８】
図９Ａ及び図９Ｂにおける各棒グラフは、ＴＶコーナーが２５℃且つ１．００Ｖの場合のものであり、最良の結果を示している。オフセットなしの結果とオフセットありの結果との間には僅かな差異しかない。また、他のＴＶコーナーの結果とは異なり、全てのモジュラスとマージンに関して各バーの高さが正になっており、ＣＣＡＥの値が各解析で実施された２２．５Ｍ回の認証の組全体を通して最大値となっていることを示している。
【００６９】
プライバシー保護、相互ＰＵＦ型認証プロトコルは、チップを認証する手段として、ＰＵＦレスポンス・ビットストリングの代わりにヘルパーデータ・ビットストリングを交換し、これらを相関させるものである。ヘルパーデータは、ＰＵＦレスポンス・ビットストリングから得られるので、ヘルパーデータ・ビットストリングは、ＰＵＦのエントロピー源に関するランダム性と一意性の各特性を承継している。チップ及びサーバの間でのメッセージ交換において、ＰＵＦレスポンス・ビットストリングを排除することで、モデル構築のような攻撃が大幅に困難化する。
【００７０】
相関型ロバスト認証技術は、ＨＥＬＰアルゴリズムを使用して、統計的に有意なＦＰＧＡの組において実証されており、また、サーバ及びチップの両方が単純な方法である閾値方法を使用して真正チップと非真正チップとを区別するものである。
【００７１】
上記のように、この作業でＨＥＬＰを用いているが、これは、あくまでも例示を目的としたものである。本発明は、リングオシレータ（「ＲＯ」）やアービターＰＵＦの拡張バージョンなどを含む、ソフトデータ、即ち、遅延や金属抵抗などの信号挙動の大きさを補足するデジタル化された値を作り出すものであれば、どのようなＰＵＦにも適用可能であると考えられる。
【００７２】
本開示の内容は、種々の修正や形態の代替が可能であり、また、本発明の特定の例示的な実施形態を一例としての図面にて示し、詳細に説明してきた。しかし、本開示の内容を上述した特定の実施形態に限定する意図はないこと、むしろ、本開示の内容は、添付の特許請求の範囲によって定まる開示範囲に属する全ての修正物、同等物、及び代替物を含むものであると理解されたい。
【図１】
2021528925.tif 000005
【図２】
2021528925.tif 000006
【図３Ａ】
2021528925.tif 000007
【図３Ｂ】
2021528925.tif 000008
【図３Ｃ】
2021528925.tif 000009
2021528925.tif 000010
【図４Ａ】
2021528925.tif 000011
【図４Ｂ】
2021528925.tif 000012
【図４Ｃ】
2021528925.tif 000013
【図５Ａ】
2021528925.tif 000014
【図５Ｂ】
2021528925.tif 000015
【図６Ａ】
2021528925.tif 000016
【図６Ｂ】
2021528925.tif 000017
【図７Ａ】
2021528925.tif 000018
【図７Ｂ】
2021528925.tif 000019
【図７Ｃ】
2021528925.tif 000020
【図７Ｄ】
2021528925.tif 000021
【図８Ａ】
2021528925.tif 000022
【図８Ｂ】
2021528925.tif 000023
【図９Ａ】
2021528925.tif 000024
【図９Ｂ】
2021528925.tif 000025
【図９Ｃ】
2021528925.tif 000026
【図９Ｄ】
2021528925.tif 000027
【図９Ｅ】
2021528925.tif 000028
【図９Ｆ】
2021528925.tif 000029
【国際調査報告】
2021528925.tif 000030