(57)【要約】ハードウェア埋め込み遅延ＰＵＦ（「ＨＥＬＰ」）を使用する認証プロトコルであって、チップ内パス遅延のばらつきからランダム性を導き出す。チップ内パス遅延のばらつきは、暗号プリミティブのハードウェア実装、例えば、高度暗号規格（「ＡＥＳ」）アルゴリズムまたはセキュア・ハッシュ・アルゴリズム３（「ＳＨＡ−３」）の内部のパスに沿って発生する。ＰＵＦレスポンス・ビットストリングを格納する代わりとして、パス遅延を表すディジタル化タイミング値をセキュア・サーバ（ベリファイア）上のデータベースに格納することによって、プライバシーおよび相互認証の双方に対応する効率的な認証プロトコルの開発を可能にする。【選択図】図１
2019501609.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の認証プロトコルの生成方法であって、
いずれの種類の不揮発性メモリも必要とせずに、ハードウェア埋め込み遅延物理的クローニング不能機能を使用するステップを含む、方法。
【請求項２】
請求項１記載の方法において、前記１つ以上の認証プロトコルが、サーバ上にパス遅延情報を格納し、１組のパラメータを使用して、前記パス遅延情報から、複数の相関のないビットストリングを生成する、方法。
【請求項３】
請求項２記載の方法において、前記１つ以上の認証プロトコルが、トークンおよび前記サーバに、認証中にレスポンス・ビットストリングを交換することを要求する、方法。
【請求項４】
請求項２記載の方法において、前記１つ以上の認証プロトコルが、認証の間ハッシュ関数およびヘルパー・データを要求する、方法。
【請求項５】
１つ以上の認証プロトコルの生成方法であって、
トークンおよびサーバの双方を使用して、デュアル・ヘルパー・データ方式を含む、ハードウェア埋め込み遅延物理的クローニング不能機能を使用するステップを含み、前記デュアル・ヘルパー・データ方式が、ビットストリング生成方法のノイズ・レベルを低下させる、方法。
【請求項６】
請求項５記載の方法において、前記ノイズ・レベルが、単一ヘルパー・データ方式と比較して、約半分に低下される、方法。
【請求項７】
請求項５記載の方法において、前記ノイズ・レベルの低下が、ＰＮｍｏデュラス・パラメータを対応して減らすことによって、機能ユニットにおける入手可能エントロピ(availably entropy)へのアクセスを改善する、方法。
【請求項８】
１つ以上の認証プロトコルの生成方法であって、
測定ノイズをエントロピのソースとして利用する真の乱数発生（ＴRＮG）方式を含むハードウェア埋め込み遅延物理的クローニング不能機能を使用して、前記１つ以上の認証プロトコルにおいて高エントロピ・コンテンツを有するノンスおよびシードとして使用されるランダム・ビットストリングを生成するステップを含む、方法。
【請求項９】
請求項８記載の方法において、ＰＮモジュラスが低い値に設定され、マージン方法に類似する方式にしたがって、０に設定されたマージンを使用して、前記ランダム・ビットストリングが生成される、方法。
【請求項１０】
請求項８記載の方法において、前記ＴRＮＧによって生成された前記ランダム・ビットストリングが、同じ１組のパスが測定される毎に異なり、高い品質である、方法。
【請求項１１】
請求項１０記載の方法において、チップ内およびチップ間ハミング距離が、ほぼ理想的な５０％値である、方法。
【請求項１２】
１つ以上の認証プロトコルの生成方法であって、
プライバシー保護、相互認証プロトコルを含む、ハードウェア埋め込み遅延物理的クローニング不能機能を使用するステップを含む、方法。
【請求項１３】
請求項１２記載の方法において、前記プライバシー保護、相互認証プロトコルが、ＩＤフェーズおよびAuthenフェーズと呼ばれる少なくとも２つのフェーズを含む、方法。
【請求項１４】
請求項１３記載の方法において、前記ＩＤフェーズが、トークン・プライバシーを保証し、ビットストリングを生成するために１つのヘルパー・データ方式を使用する、方法。
【請求項１５】
請求項１３記載の方法において、前記Authenフェーズが、認証を実行し、非常に強いセキュリティ・プロパティを有し、ＨＥＬＰの強いＰＵＦ能力を利用する、方法。
【請求項１６】
請求項１３記載の方法において、前記Authenフェーズが、提案されたデュアル・ヘルパー・データ方式を利用して、更に信頼性を高め、セキュリティ・プロパティを強化する、方法。
【請求項１７】
請求項１３記載の方法において、前記ＩＤフェーズおよびAuthenフェーズの双方が、特殊エンロールメント・プロセスの間にトークンによって生成された、サーバ格納マルチビット・タイミング値を利用する、方法。
【請求項１８】
請求項１７記載の方法において、前記マルチビット・タイミング値が、パラメータと組み合わせて、再使用され、同じタイミング値を使用して１組の全く異なるレスポンス・ビットストリングを生成し、レスポンス・ビットストリングを直接格納する方式よりも、サーバ上における格納効率を高める、方法。
【請求項１９】
請求項１８記載の方法において、前記パラメータが、ＰＮモジュラス、前記タイミング値分布の平均および範囲、ＬＦＳＲ（１つまたは複数）のシード、ならびにマージン・パラメータを含む一群から選択される１つ以上である、方法。
【請求項２０】
請求項１２記載の方法において、前記プライバシー保護、相互認証プロトコルが、パス・タイミング情報を格納する、方法。
【請求項２１】
プライバシー保護、相互認証プロトコルであって、ＰＵＦレスポンス・ビットストリングではなく、サーバのデータベースにパス遅延値を格納する、プライバシー保護、相互認証プロトコル。
【請求項２２】
請求項２１記載のプライバシー保護、相互認証プロトコルであって、トークンからの強いビットストリングおよびヘルパー・データを使用して、「ノイズ」を大幅に低減し、前記トークンによって生成された１つ以上の強いビットストリング間のランダム性および一意性を著しく改善し、サーバが一層容易に、認証を要求する前記トークンを識別することを可能にする、デュアル・ヘルパー・データ方式を含む、プライバシー保護、相互認証プロトコル。
【請求項２３】
請求項２１記載のプライバシー保護、相互認証プロトコルであって、ビットストリング生成において使用するために、ノイズが最も低い最良のパスを選択するパス−選択−マスクを含む、プライバシー保護、相互認証プロトコル。
【請求項２４】
請求項２３記載のプライバシー保護、相互認証プロトコルであって、前記パス−選択−マスクが、任意の特定のトークンが生成することができる可能なビットストリングの数を増大させ、前記トークンを所有する敵対者が全ての可能なビットストリングを読み出すことを困難にする、プライバシー保護、相互認証プロトコル。
【請求項２５】
請求項２４記載のプライバシー保護、相互認証プロトコルにおいて、前記パス−選択−マスクが、
パス長バイアスを排除するモジュラス、
ディジタル化パス遅延値をシフトするMean、
ディジタル化パス遅延値をスケーリングするRange、
異なる組み合わせでパス遅延値を擬似ランダムに対にするノイズMarginおよびＬＦＳＲシード、
の一群から選択される１つ以上を含む、プライバシー保護、相互認証プロトコル。
【請求項２６】
請求項２５記載のプライバシー保護、相互認証プロトコルにおいて、前記パス−選択−マスクが、任意の特定のトークンが生成することができる可能なビットストリングの数を、指数的に大きな値に増大させる、プライバシー保護、相互認証プロトコル。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願に対する相互引用
本願は、２０１６年１月１１日に出願された米国仮特許出願第６２／２７７，２７６号、２０１６年２月１７日に出願された米国仮特許出願第６２／２９６，４９０号、２０１６年６月２日に出願された米国仮特許出願第６２／３４４，７５４号、および２０１６年１１月４日に出願された米国仮特許出願第６２／４１７，６１１号の権利を主張する。これらの出願をここで引用したことにより、各々、その内容が本願にも含まれるものとする。
【０００２】
連邦支援研究または開発に関する言明
本発明は、全米科学財団によって授与された契約第２７１３６８号の下で、政府支援によって行われた。政府は、本発明において一定の権利を保有する。
【０００３】
発明の分野
本発明は、２０１４年８月２８日に出願された国際特許出願ＰＣＴ／ＵＳ１４／０５３２７６、および２０１５年１２月１５日に出願された国際特許出願ＰＣＴ／ＵＳ１５／０６５９０９に開示されたような、ハードウェア埋め込み遅延ＰＵＦ（「ＨＥＬＰ」）を含む、物理的複製困難関数（「ＰＵＦ」：Physically Unclonable Function）の認証プロトコルに関する。これらの国際特許出願をここで引用したことにより、各々、その内容が本願にも含まれるものとする。具体的には、本発明はプライバシーおよび相互識別に対応する(provide)認証プロトコルに関する。
【従来技術】
【０００４】
集積回路（「ＩＣ」）は、チップまたはマイクロチップとしても知られ、コンピュータ、電話機、およびディジタル・アプリケーション(digital application)のような電子機器に使用される微細電子回路である。ＩＣは、通例、シリコンおよびゲルマニウムのような半導体デバイス、更にはキャパシタ、抵抗器、およびダイオードのような受動コンポーネントによって形成される。大抵の場合、ＩＣは半導体材料の薄い基板上に製造される。近年、ＩＣのトランジスタ毎の製造におけるコストは低下している。しかしながら、低コスト下によって製造の可能性(availability)は高まるが、クローニングやコピーのような脅威からＩＣを保護しなければならないだけでなく、不正流用(misappropriation)や無断使用に対しても保護されなければならない。脅威は、暗号化データへの無断アクセス、知的所有権（「ＩＰ」）の無断使用、およびハードウェアの盗用(piracy)またはＩＣの違法製造を含む、ＩＣ設計の複製を許してしまうおそれがある。クローニング、不正流用、およびセキュリティ鍵の無断使用の脅威は、特に、認証プロトコルにセキュリティ鍵を使用するコンピュータ・アプリケーションにおいては問題である。
【０００５】
多くのコンピュータ・ベースのハードウェア・セキュリティ方式が、ＩＣをクローニングおよび無断使用から保護するために存在する。これらのセキュリティ方式は、各ＩＣから導き出される、一意のクローニングができない識別子のようなセキュリティ鍵または署名へのアクセス可能性に依存する。セキュリティ鍵は、データ通信チャネルの暗号化を実行するメカニズム、またはフィールド・プログラマブル・ゲート・アレイ（「ＦＰＧＡ」）を含むコンピュータ・ベースのロジック・デバイスにおいてＩＰ窃盗(theft)保護を行うメカニズムのような、ハードウェア・セキュリティの高レベルにおいて実装されるコンピュータ・ベースのハードウェア・セキュリティ・メカニズムの基準を定める。
【０００６】
従来のセキュリティ鍵は、例えば、ＩＣ上のフラッシュ・メモリまたはリード・オンリ・メモリ（「ＲＯＭ」）に格納されているディジタル・データを使用して定められる。セキュリティの観点からは、セキュリティ鍵へのアクセスは、ＩＣ上に形成されているハードウェア回路に制限することが望ましい。生憎、これらの従来の技術を使用して格納されたセキュリティ鍵は、侵害的物理攻撃を受け、敵対者がセキュリティ鍵を学習することを可能にするおそれがある(can)。セキュリティ鍵が敵対者によって学習されると、クローンＩＣが作成されるおそれがあり、更にセキュリティ・プロトコルが脅威に晒されるおそれがある。
【０００７】
ランダム・ビットストリングが、暗号化、識別、認証、およびハードウェア・セキュリティにおける機能の有効化(feature activation)の基準を形成することができる。現在の技術では、暗号化のために鍵を形成する材料(keying material)は、ＦＰＧＡまたは特定用途集積回路（「ＡＳＩＣ」）上の不揮発性メモリにディジタル・ビットストリングとして格納されている場合がある。しかしながら、このように格納されている秘密は、探査攻撃(probing attack)を使用して秘密を盗むことができる、決意を持った敵対者(determined adversary)に対して安全ではないおそれがある。物理的複製困難関数（「ＰＵＦ」）は、不揮発性メモリにディジタル・ビットストリングを格納する代案として使用することができる。ＰＵＦとは、ビットストリングを生成するために製造ばらつきによって混入されたエントロピを利用するＩＣハードウェア・プリミティブであり、対応するばらつきを測定しディジタル化するためのオンチップ・インフラストラクチャを組み込むことができる。ＰＵＦは、パス遅延、漏れ電流、またはスタティック・ランダム・アクセス・メモリ（「ＳＲＡＭ」）起動パターンに生ずる自然なばらつきを測定およびディジタル化し、ランダム・ビットストリングを生成することができる。
【０００８】
ＰＵＦの実装(implementation)を使用してＩＣを保護するために、種々の技法が提案されている。チャレンジ・ベース(challenge-based)ＩＣ認証はその一例である。チャレンジ・ベースのＩＣ認証では、秘密鍵をＩＣ内に埋め込み、ＩＣがチャレンジに対して一意のレスポンスを生成することを可能にし、このレスポンスはそのチャレンジのみに有効である。つまり、鍵は秘密のままであり、認証を行うメカニズムはなりすましに対して耐性がある。遠隔有効化方式(remote activation scheme)は別の例である。遠隔有効化方式は、ＩＣ設計者が各ＩＣを起動時にロックし、次いで離れてそれをイネーブルすることを可能にして、知的所有権保護およびハードウェア・メータリング(hardware metering)に対応する(provide)。設計の有限状態機械（「ＦＳＭ」）に状態を追加し、秘密鍵の関数である制御信号を追加する。したがって、特定の有効化コードの受信まで、ハードウェアは施錠される(lock up)。ＰＵＦ実施の他の例には、遅延線の不一致、ＳＲＡＭの電源投入時のパターン、金属酸化物半導体（「ＭＯＳ」）デバイスの不一致、および入力依存漏れパターンが含まれる。しかしながら、これらの技法は各々、ＩＣのセキュリティ鍵の不正流用、クローニング、または無断使用に関係する脆弱性を有する。
【０００９】
ＰＵＦは、ディジタル秘密（ビットストリーム）を生成する手段として、ＩＣの物理的および電気的プロパティにおける各ＩＣに一意のばらつきから、エントロピ（乱雑さ）を抽出する。ビットストリングは、認証用途のためにハードウェア・トークンを一意に識別する役割を果たすことができる。ビットストリングは動作中に生成され、これによって、それらのディジタル・コピーを不揮発性メモリ（「ＮＶＭ」）に格納する必要性を解消し、これらのビットストリングは（理想的には）ある範囲の環境変動の下で再現可能である。秘密ビットストリングの正確な生成時刻、および侵害的探査攻撃（それを無効化するように作用する）に対するＰＵＦエントロピ・ソースの感度を制御できることは、リソースが制限されたハードウェア・トークンを含む埋め込み型ハードウェアにおける認証にとって、これらを魅力的にする更に別の属性である。
【００１０】
ＰＵＦは、「強いＰＵＦ」または「弱いＰＵＦ」に分類することができる。「強いＰＵＦ」は、暗号プリミティブおよび処理の数ならびに種類を減らすことによって、エリアおよびエネルギのオーバーヘッドを低減することができる。例えば、強いＰＵＦは、デバイス毎に大きな一意の１組のビットを生成することができ、機械学習攻撃、プロトコル攻撃、およびデバイス・リソース上の制約に関係する追加のチャレンジを有する。対照的に、エリア・オーバーヘッドは、「弱いＰＵＦ」においてエントロピ・ソースの物理的サイズを制限する。
【００１１】
提案された「弱いＰＵＦ」アーキテクチャの殆どは、エントロピ・ソースとして役割を果たすための専用の同一設計検査構造のアレイの挿入を必要とするが、エリア・オーバーヘッドのために、エントロピ・ソースの物理的サイズが制約を受ける。「弱いＰＵＦ」は認証に使用することができるが、これらは、これらの限られた量のエントロピを、秘密を機械学習するように設計された敵のインターフェース攻撃に対して保護するために、例えば、暗号ハッシュ(cryptographic hash)、暗号化(encryption)、およびＸＯＲ機能のような、難読化機能の挿入を必要とする。
【００１２】
一方、殆どの「強いＰＵＦ」は、既存のオンチップ・リソースにおいて利用可能なエントロピを利用することにより、特殊検査構造内における限られた量のエントロピを巧みに回避する(circumvent)。「強いＰＵＦ」は、認証処理のために非常に多数のチャレンジ−レスポンス対（「ＣＲＰ」）を生成することができる。
【００１３】
「アービタＰＵＦ」(arbiter PUF)として知られているものが、従前より最初の強いＰＵＦであると見なされている。何故なら、これは２ｎ通りのレスポンスを生成するように構成することができるからである。しかしながら、アービタＰＵＦは、少数のゲートだけでパスを定めるので、モデル構築攻撃を受け易い。具体的には、アービタＰＵＦは、通例、２５６個だけの論理ゲートで構成するので、機械学習（「ＭＬ」）攻撃の影響を受け易い。
【００１４】
ＰＵＦベースの認証プロトコルの最も単純な形態が、２つのフェーズ、即ち、エンロールメント(enrollment)および認証において実行される。実際に行われる認証処理のためにハードウェア・トークンを準備するプロセスをエンロールメントと呼ぶ。エンロールメントの間、セキュア・サーバは、対応する１組のレスポンスを生成するために、ＰＵＦに適用されるチャレンジから小さな部分集合をランダムに選択する。次いで、トークン毎のＣＲＰをサーバによってセキュア・データベースに記録し、実際に使用されたトークン(fielded token)を認証するために後で使用される。トークン毎に格納されるＣＲＰの数は少なくすることができる。何故なら、広大なＣＰＲ空間が、選択された部分集合の秘密性と合わせて、敵対者がトークンを偽装するためにクローンを構築するのを非常に難しくするからである。認証とは、証明する側(prover)、例えば、ハードウェア・トークンまたはスマート・カードと、検証する側(verifier)、セキュア・サーバまたはバンク(bank)との間において、一方または双方の補強証拠を使用して同一性を確認するプロセスである。電子機器、ソフトウェア、センサ、およびネットワーク接続サービス(connectivity)が埋め込まれ、データの収集および交換を可能にする、物理的物体のネットワーク（もののインターネット（「ＩｏＴ」）と呼ぶ）では、ハードウェア・トークンがリソースの制約を受け、したがって、コストが低く、エネルギが少なく、エリア・オーバーヘッドが少ない新規な認証技法が求められている用途の数が増えつつある。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、この単純な形態のＰＵＦベース認証プロトコルには、様々な欠点がある。第１に、これは認証トークンのプライバシー保護に対応せず、したがって、敵対者は連続する認証にわたって、実際に使用されたトークンを追跡することができる。トークンは、検証する側が適正な１組のＣＲＰを選択することを可能にするために、最初に何らかの型式のトークン−ＩＤを使用して、検証する側に自証しなければならないので、これは正しい。トークン−ＩＤが要求されるのは、エンロールメント中にトークン毎に、小さく、開示されていない、ＣＲＰの部分集合だけしか検証する側には記録されていないからである。また、トークン−ＩＤは、例えば、フューズを使用して焼き入れ(burn in)して、トークン上に永続的に格納されなければならず、そして平文で送られなければならないからである。これを回避するために、ＣＲＰ連鎖および暗号化方式が提案されているが、これらは連鎖コンポーネントを実装するために読み取り−書き込み可能なＮＶＭを必要とするので、追加のオーバーヘッドが発生する。
【００１６】
第２に、ＰＵＦベース認証プロトコルのこの単純な形態は、サービス拒否（「ＤＯＳ」：denial-of-service）攻撃の影響を受け易く、敵対者はこれを狙って(whereby)繰り返し認証を試みることによって、トークンのための検証する側のＣＲＰを枯渇させる。第３に、ＤＯＳ攻撃が仕掛けられなくても、格納されているＣＲＰは一連の有効な認証の間に使い尽くされる可能性がある。何故なら、検証する側は一旦使用したＣＲＰを削除しなければならず（再生攻撃を回避するため）、検証する側はトークン毎に固定数のＣＲＰしか格納していないからである。
【００１７】
認証のために、機能ユニットにおける遅延ばらつきを使用するプロトコルが提案されている。しかしながら、これらのプロトコルはタイミング値を直接利用し、パス長バイアス効果を考慮していない。既存のプロトコルにおける弱点は、ＰＵＦのエントロピ・ソースにおける弱点に関係する。プライバシー保護および相互認証をサポートする、最近提案されたプロトコルのように、他のプロトコルは軽量でなく、弱いＳＲＡＭ  ＰＵＦを利用し、トークン上にＮＶＭおよび様々な暗号機能を実装する必要がある。広いエリアが必要な暗号プリミティブおよび不揮発性メモリ（「ＮＶＭ」）を使用する従来の認証方法は、埋め込みアプリケーションを発展させるには、魅力に乏しい。
【００１８】
大きな暗号プロパティを有する真に強いＰＵＦを提供するために、信頼性および安全性を高める技法が求められている。本発明は、この要望を満足させる。
【課題を解決するための手段】
【００１９】
本発明は、暗号プロパティによる真に強いＰＵＦを提供する、ＰＵＦベース、端末相互間プライバシー保護、相互ＰＵＦベース認証プロトコルを対象とする。
【００２０】
本発明は、ＰＵＦベース、相互、プライバシー保護認証プロトコルを提供する。このプロトコルについて、ハードウェア埋め込み遅延ＰＵＦ（「ＨＥＬＰ」）を使用して説明し実施するが、任意の物理的複製困難関数（「ＰＵＦ」）も想定している。有利なこととして、プロトコルは不揮発性メモリも、トークン上の暗号プリミティブも必要としない。更に、パス遅延情報は、レスポンス・ビットストリングの代わりに、エンロール中にベリファイア(verifier)に格納される。
【００２１】
ハードウェア埋め込み遅延ＰＵＦ（［ＨＥＬＰ」）は、機能ユニットにおいてパス遅延ばらつきを利用する強いＰＵＦである。具体的には、ＨＥＬＰは、既存の機能ユニット内に存在する遅延のばらつきからビットストリングを生成し、多数のＣＲＰを供給する。更に、機能ユニットによって定められるパスは、複合相互接続構造を有し、これらを検査するために必要とされる検査シーケンスを決定するためには、長い実行時間の精巧な自動検査パターン生成（ＡＴＰＧ：automatic test pattern generation）ソフトウェアを必要とする。ＨＥＬＰに対してチャレンジを生成することの困難が、モデル構築攻撃を実行することの困難に新たな次元を追加する。何故なら、敵対者は、有効なモデル構築戦略を可能にするチャレンジを決定するために、最初に多大な手間をかけなければならないからである。尚、この手間は所与の実施(implementation)に対して一回だけかければよいが、検査生成戦略およびネットリスト特性に応じて、正当な時間量で要求される検査を計算することは実現不可能な場合もあると言うことができる。尚、この特性は敵対者にとってのみ欠点となることは注記してしかるべきである。信頼された機関(trusted authority)は、検査生成を狙うパスを選りすぐることができ（セキュア・データベースには制限された数のＣＲＰしか格納されていない）、したがって、検査生成時間を短く抑えることができる。
【００２２】
ＨＥＬＰは、２−ベクトル・シーケンスをチャレンジとして受け入れ、指数入力チャレンジ空間をサポートする。即ち、ｎ個の入力では、チャレンジの数は２２ｎにおいて上限に達する。これが示すのは、２ｎ個の入力ベクトルの内任意のものが後に、他の２ｎ個の入力ベクトルの内任意のものが続くことができるということである。ＨＥＬＰの信頼性を高めるために、２−ベクトル・シーケンスは、パスに沿って上昇遷移(rising transitions)または下降遷移(falling transitions)のいずれかを生成するが、双方は生成しないように制約を受ける。これによって、チャレンジ空間は２２ｎから２×（３ｎ−２ｎ）に縮小するが、それでもなお強いＰＵＦによって必要とされるような指数である。しかしながら、一意のパスの数は通例もっと小さい指数２ｍとなり、これが示すのは、２−ベクトル・シーケンスはこれらのパスを平均で約２×（３ｎ−２ｎ）／２ｍ回再検査するということである。レスポンス空間が２ｍと定義されるとすると、強いＰＵＦの条件を満たすためには、ｍは約６４以上である必要がある。この条件を満たすために組み合わせ論理回路を組み立てることができるが、結果的に生ずるサイズはリソース制約デバイスにとっては大きすぎる。
【００２３】
本発明によれば、サーバ上の強いレスポンス・ビットストリングの代わりに、パス・タイミング情報、例えば、測定されたパス遅延のディジタル化表現を、（セキュア）サーバ上のデータベースに格納し、プライバシーおよび相互認証に対応する効率的な認証プロトコルを可能にする。１組の処理パラメータとの組み合わせにより、パス遅延の格納は、複数のレスポンス・ビットストリングを同じ１組のパス遅延から生成することを可能にすることによって、レスポンス・ビットストリームに対して格別の利点をもたらす。具体的には、ベリファイアにおいて固定された１組の格納パス遅延を使用して、非常の大きな指数的な１組の(very large, exponential set)レスポンス・ビットストリングを生成することができる。
【００２４】
具体的には、本発明は、１組の構成パラメータを定めることによって、ＨＥＬＰのレスポンス空間を拡張する。２−ベクトル・シーケンスとこれらのパラメータとの組み合わせにより、ＣＲＰ空間を大きな指数に増大させる。例えば、構成パラメータの１つをパス−選択−マスク(Path-Select-Mask)と呼ぶ。これは、ベリファイアが、適用された２−ベクトル・シーケンスによって検査されたパスから、特定のパスの部分集合を選択し、ビットストリング生成プロセスにおいて使用することを可能にする。パス−選択−マスクは、それ自体によって、ｎ個からｋ個を選択する場合に可能な組み合わせの数(n-choose-k number of possibilities)をレスポンス空間のサイズに追加する。ｎおよびｋの値は、通例、それぞれ５０００から２０４８の範囲であり、これは３ｅ１４６７よりも大きい値に対応する。
【００２５】
本発明の一実施形態によれば、このプロトコルは、暗号プリミティブのハードウェア実現において、具体的には、高度暗号規格（「ＡＥＳ」）アルゴリズムにおいて提供される。しかしながら、任意の暗号ハッシュ関数、例えば、セキュア・ハッシュ・アルゴリズム３（「ＳＨＡ−３」）も考えられる。
【００２６】
一実施形態によれば、本発明は、エントロピのソースとして、ｓｂｏｘ−ｍｉｘｅｄｃｏｌと呼ばれるＡＥＳデータ・パス・コンポーネントを使用する。具体的には、ｓｂｏｘ−ｍｉｘｅｄｃｏｌは、ＳＢＯＸの４つのコピーとＭＩＸＥＤＣＯＬの１つのコピーとを含む、３２ビット・コラムＡＥＳの機能ユニットである。しかしながら、本発明によるプロトコルは、これよりも軽量の機能ユニット、例えば、１つのＡＥＳ  ＳＢＯＸコンポーネントから成るものを使用しても、実証および実現することができる。更に一般的には、本発明は、ハードウェア暗号化エンジン、および他の種類のデータ・パス・コンポーネントにも拡張することができる。
【００２７】
例示の目的で、本発明は、ＰＵＦベース認証プロトコルにおいて使用するための高統計品質(high statistical quality)のビットストリングを生成することができ、データは、Ｘｉｌｉｎｘ  Ｚｙｎｑ  ７０２０ＦＰＧＡの４５個のコピー上におけるｓｂｏｘ−ｍｉｘｅｄｃｏｌ機能ユニットから収集される。しかし、任意の数のコピーおよびＡＳＩＣのような任意のハードウェアが考えられる。
【００２８】
また、本発明は、小さな１組の測定されたパス遅延を使用して、指数的に大きなＣＲＰ空間を創り出す、１組の構成パラメータ、Ｍｏｄ、μｒｅｆ、Ｒｎｇｒｅｆ、５、マージン、パス−選択−マスクを提供する。また、本発明は、信頼性を高めるために、二重ヘルパー・データ（「ＤＨＤ」：Dual Helper Data）アルゴリズムも提供する。
【００２９】
本発明ならびにその属性および利点は、以下の１つの想定される実施形態の詳細な説明を、添付図面と関連付けて検討することによって、更に理解され、認められよう。
【００３０】
添付図面は、本明細書に組み込まれ、その一部を構成するが、本発明の実施態様を例示し、説明と共に、本発明の利点および原理を説明する役割を果たす。
【図面の簡単な説明】
【００３１】
【図１】図１は、本発明の実施形態にしたがって、パス遅延を測定するクロック・ストロービング方法を含む機能ユニット（「ＦＵ」）のブロック図である。
【図２】図２は、本発明の実施形態にしたがって、ＴＶ補償された上昇および下降ＰＵＦＮｕｍ差（ＰＮＤｃ）およびモジュラスを適用したＰＮＤｃ（「ｍｏｄＰＮＤｃ」）のランダムな対形成(pairing)を示すグラフである。
【図３】図３は、本発明の実施形態による、ＰＮＤｃおよび温度−電圧（「ＴＶ」）コーナーの温度−電圧補償（「ＴＶＣＯＭＰ」）を示すグラフである。
【図４】図４は、本発明の実施形態によるマージンおよび二重ヘルパー・データ（「ＤＨＤ」）アルゴリズムのブロック図を示す。
【図５Ａ】図５Ａは、本発明の実施形態による認証プロトコルのエンロール処理の流れ図を示す。
【図５Ｂ】図５Ｂは、本発明の実施形態による認証プロトコルの認証処理の流れ図を示す。
【図６Ａ】図６Ａは、本発明の実施形態にしたがって、平均スケール係数(Mean scaling factor)を使用した実際のチップ間ハンマリング距離(inter-chip hammering distance)の結果のグラフを示す。
【図６Ｂ】図６Ｂは、本発明の実施形態にしたがって、最大スケール係数を使用した実際のチップ間ハンマリング距離の結果のグラフを示す。
【図７Ａ】図７Ａは、本発明の実施形態にしたがって、平均スケール係数を使用したときの、２のマージンに対するアメリカ国立標準技術研究所（ＮＩＳＴ）統計検査結果のグラフを示す。
【図７Ｂ】図７Ｂは、本発明の実施形態にしたがって、平均スケール係数を使用したときの、３のマージンに対するＮＩＳＴ統計検査結果のグラフを示す。
【図８Ａ】図８Ａは、本発明の実施形態にしたがって、平均スケール係数を使用したときの、真のチップ間ハンマリング距離の結果のグラフを示す。
【図８Ｂ】図８Ｂは、本発明の実施形態にしたがって、最大スケール係数を使用したときの、真のチップ間ハンマリング距離の結果のグラフを示す。
【図９Ａ】図９Ａは、本発明の実施形態にしたがって、平均スケール係数を使用したときのエントロピの結果のグラフである。
【図９Ｂ】図９Ｂは、本発明の実施形態にしたがって、最大スケール係数を使用したときのエントロピの結果のグラフである。
【図１０Ａ】図１０Ａは、本発明の実施形態にしたがって、平均スケール係数を使用したときの失敗結果(failure results)の確率のグラフである。
【図１０Ｂ】図１０Ｂは、本発明の実施形態にしたがって、最大スケール係数を使用したときの失敗結果(failure results)の確率のグラフである。
【図１１Ａ】図１１Ａは、本発明の実施形態にしたがって、平均スケール係数を使用したときの最小ビットストリング・サイズの結果のグラフを示す。
【図１１Ｂ】図１１Ｂは、本発明の実施形態にしたがって、最大スケール係数を使用したときの最小ビットストリング・サイズのグラフを示す。
【図１２】図１２は、ＨＥＬＰ認証プロトコル・エリアおよびランタイム・オーバーヘッドの表を示す。
【発明を実施するための形態】
【００３２】
ハードウェア埋め込み遅延ＰＵＦ（「ＨＥＬＰ」）は、２０１４年８月２８日に出願された国際特許出願ＰＣＴ／ＵＳ１４／０５３２７６、および２０１５年１２月１５日に出願された国際特許出願ＰＣＴ／ＵＳ１５／０６５９０９記載されているような、機能ユニットにおけるパス遅延のばらつきを利用する、強力なＰＵＦである。これらの特許出願をここで引用したことにより、その内容が本願にも含まれるものとする。具体的には、ＨＥＬＰは、既存の機能ユニット内に存在する遅延のばらつきからビットストリングを生成し、多数のＣＲＰを提供する。
【００３３】
ＨＥＬＰのためのエントロピ（乱雑さ）のソースは、機能ユニットを定めるパスの遅延に生ずる製造ばらつきである。ＨＥＬＰは、図１に示すようなクロック・ストロービング方法を使用して、パス遅延を測定する。エントロピのソースは機能ユニットによって表される。この機能ユニットは、例えば、認証プロトコルのコンポーネント、即ち、整数除算器または暗号ハッシュ関数を実装する既存のオンチップ・マクロである。
【００３４】
先に示したように、ＨＥＬＰに対するチャレンジは、２−ベクトル・シーケンスおよびパス−選択−マスクから成る。また、「発射ローＦＦ」(Launch Row FF)および「捕獲ローＦＦ」(Capture Row FF)も機能ユニットのコンポーネントである。ＨＥＬＰを機能ユニットに統合するために必要な変更は、Ｃｌｋ２と命名され、捕獲ローＦＦを駆動する第２クロックの使用、および主出力ＰＯ［ｘ］上のＸＯＲゲートの追加だけで済む。
【００３５】
図１における「発射ローＦＦ」は、２−ベクトル・シーケンスを機能ユニットの主入力ＰＩ［ｘ］に適用するために使用され、一方「捕獲ローＦＦ」は主出力ＰＯ［ｘ］におけるパス遅延を測定するために使用される。パス遅延は、図１の左側に示すように、Ｃｌｋ１およびＣｌｋ２を使用して、一連の発射−捕獲クロッキング・イベント（クロック・ストロービングと呼ぶ）を適用することによって測定される。このシーケンスの最初のベクトルは初期化ベクトルを表す。第２ベクトルの適用により、クロック・ストロービング技法によってタイミングを合わされた１組の遷移を生成する。クロック・ストロービング技法は、２−ベクトル・シーケンスの反復適用を必要とする。この２−ベクトル検査シーケンスの反復適用毎に、Ｃｌｋ１およびＣｌｋ２間の位相ずれが、小さな固定Δｔだけ増大する。
【００３６】
２つのクロック間における位相ずれの値をディジタル的に制御し、この位相ずれの値を発射−捕獲間隔（「ＬＣＩ」）と呼ぶ。発射ＦＦから開始するパスに沿った伝搬エッジを捕獲ＦＦにおいて捕獲させる最も小さなＬＣＩは、出力上のＸＯＲゲートが０になるときに発生し、 パスに対するディジタル化タイミング値として使用される。多数のパスに対するディジタル・タイミング値は、複数の２−ベクトル検査シーケンスに対するクロック・ストロービング動作を繰り返すことによって得ることができる。以下の説明では、ＬＣＩパス・タイミング値を「ＰＵＦＮｕｍ」または「ＰＮ」と呼ぶ。
【００３７】
２つのランダムに選択されたＰＮの符号付きの差を「ＰＮＤｉｆｆ」または「ＰＮＤ」と呼ぶ。ＨＥＬＰは、２つの線形フィードバック・シフト・レジスタ（「ＬＦＳＲ」）を使用して、上昇ＰＮの各々を下降ＰＮと対にすることによって、ＰＮＤを組み立てる。ＬＦＳＲは、「ＬＦＳＲシード」と呼ばれる１対の構成パラメータによって初期化される。
【００３８】
本発明による認証プロトコルは、ＨＥＬＰがＰＮに加えてノンスを生成することを必要とする。ＰＮタイミング・エンジンを実装することを役割とするＶＨＤＬモジュールは、検査されるパスの部分集合内に存在するメタ−安定特性(meta-stability characteristics )を利用することによって、ＰＮ生成と並列にノンスを生成する。メタ−安定は、パスに対して、それを繰り返し測定し、次いで計算した平均の断片成分におけるばらつきを分析することによって判定される。周波数がほぼ等しい２つの連続ＰＮ値を生成するこれらのパスは、真の乱数（「ＴＲＮＧ」）のソースとして使用される。尚、このように生成されるノンスに伴うランダムな統計的プロパティは、アメリカ国立標準技術研究所（「ＮＩＳＴ」）統計検査の統計検査(statistical test statistical tests)の全てに合格することは注記してしかるべきである。
【００３９】
尚、Ｃｌｋ信号の細かい位相ずれを動的に制御する能力は、ＦＰＧＡにおけるオンチップ・ディジタル・クロック・マネージャ（「ＤＣＭ」）の一般的な機能(feature)である。例えば、Ｘｉｌｉｎｘは、この位相ずれ能力を、それらの最も低価格のＦＰＧＡにでさえも含む。ＤＣＭを含まない低コスト・コンポーネントについては、この位相ずれ能力は、マルチ・タップ遅延チェーン(multi-tapped delay chain)を使用すれば、小さなエリア・オーバーヘッドで実装することができる。
【００４０】
ＰＵＦの信頼性とは、ビットストリングが再生されるときに発生するビット反転エラーの数を指す。理想的なのは、ビットストリングは、再生(regeneration)の間、正確に再現(reproduce)されることであるが、これはＰＵＦでは殆ど不可能である。ＰＵＦにビット反転エラーを生じさせる原因となる「ノイズ」の最も大きなソースは、温度および／または供給電圧の変化（ＴＶノイズ）である。パス遅延のサンプル平均化は、測定ノイズ低減には有効であるが、この戦略はＴＶノイズには有効でなく、代わりに、ＴＶ補償（「ＴＶＣＯＭＰ」）方法が必要となる。ＴＶＣＯＭＰプロセスは、以下の式（１）および（２）によって記述される。
【００４１】
【数１】
2019501609.tif 000003
【００４２】
ここで、ｚｖａｌｉは、平均μｔｏｋｅｎを減算し、範囲Ｒｎｇｔｏｋｅｎで除算した後における、標準化されたＰＮＤを表し、μｔｏｋｅｎおよびＲｎｇｔｏｋｅｎは、ＴＶコーナーと呼ばれる、潜在的に悪い環境条件の下における再生中に得られる全てのＰＮＤの分布から導き出される。次いで、２つの追加の構成パラメータμｒｅｆおよびＲｎｇｒｅｆ（ｒｅｆは基準を意味する）を使用して、個々のｚｖａｌｉを１組のＰＮＤｃ（「ｃ」が付くのは、補償されたためである）に変換する。この線形変換は、ＴＶノイズを低減するのに非常に有効である。ＰＮＤｃに残る環境変動からのノイズを「未補償ＴＶノイズ」または「ＵＣ−ＴＶノイズ」と呼ぶ。
【００４３】
ビットストリング生成プロセスは、この符号付きＰＮＤを、モデル構築に対して(against)アルゴリズムを硬化させる(hardening)手段、およびＰＵＦレスポンスにおいて多様性を高める手段として使用する。「ｍｏｄ−ＰＮＤｃ」は、モジュラスをＰＮＤｃに適用することによって定められる。本発明の一実施形態によれば、モジュラスは、ＨＥＬＰアルゴリズムに対する第５の構成パラメータである（μｒｅｆ、Ｒｉｎｇｒｅｆ、およびＬＦＳＲシード・パラメータに追加する）。
【００４４】
モジュラスが必要なのは、機能ユニットにおけるパスの長さがばらつき、このパス長バイアスがＰＮＤｃ内に捕獲されるからである。モジュラスは、チップ内遅延ばらつき、即ち、最も重要なランダム性のソースを完全に保存しつつ、このバイアスを低減する。
【００４５】
図２は、チップＣ１から測定したＰＮの擬似ランダム対から計算した１組のＰＮＤｃ（１８）の見本を示す。各ＰＮＤｃは、異なるＴＶ条件の下で１６回測定した。１つの曲線が、エンロールメント条件（２５°Ｃ、１．００Ｖ）の下で得られたデータ点を接続し、一方残りの曲線は、１組の再生ＴＶコーナーの下における、例えば、温度−４０°Ｃ、０°Ｃ、２５°Ｃ、８５°Ｃ、１００°Ｃと、電源電圧０．９５Ｖ、１．００Ｖ、および１．０５Ｖの全ての組み合わせの下におけるデータ点を接続する。図２の最上位には、２０のモジュラスを適用した後におけるｍｏｄＰＮＤｃ値を示す。ｍｏｄＰＮＤｃは、以下で説明するＨＥＬＰビットストリング生成プロセスにおいて使用される。
【００４６】
本発明によれば、特にモジュラスがチップ内ばらつきの大きさよりも大きいときに、バイアス効果を更に低減するために、「オフセット」技法を使用することができる。図３は、概念を例示するために、１組で４５個のチップから得られたＰＮＤｃのグラフを示す。各曲線において線で接続された点は、同じチップによって生成され、ＴＶＣＯＭＰされた後における１６回のＴＶコーナー実験において測定されたＰＮＤｃの値を表す。先に引用したＵＣ−ＴＶＮｏｉｓｅは、ＴＶＣＯＭＰの後も残っており、最も下の曲線に注釈が付けられている。対照的に、チップ内ばらつき（「ＷＩＤ」）は、個々の曲線の垂直方向の延長によって表されており、これも図３において注釈が付けられている。このＰＮＤｃに対するＷＩＤの大きさは、約１１ＬＣＩである。２０のモジュラスを使用する場合、−１３１と−１２０との間に示されているこの曲線群の位置は、最悪のシナリオを表す。何故なら、ビットストリングにおいて生成されるビットは、殆ど全てのチップに対して同じであるからである（以下で論ずる）。この問題の元となる(create)バイアスは、図３の右側に示すように全ての曲線における点に６の定数を加算することによって、解消することができる。これによって、ＰＮＤｃ分布を−１２０を「中心に広げ」、生成されたビットストリングにおいて「１」を生成するチップ数を、「０」を生成するチップの数とほぼ等しくすることによって、このＰＮＤｃに含まれるエントロピを最大化する。適切なオフセットは、ベリファイアによって、格納されているエンロールメント・データを使用して計算され、トークンに送られた１組のパス−選択−マスクにおいてエンコードされる。
【００４７】
信頼性を高めるために、マージン技法を使用する。マージン技法は、ビット反転エラーを混入させる確率が最も高いｍｏｄＰＮＤｃを識別する。図２の最上位に沿って示されるｍｏｄＰＮＤｃデータは、図４において「（ａ）」によって示されるように、複製および拡大される。モジュラスによって定められた領域は、２つの半分に分割され、下半分は「０」領域として使用され（図４の「（ａ）」における０および９の間）、上半分は「１」領域として使用される。
【００４８】
マージニング(margining)を行わないと、ｍｏｄＰＮＤｃインデックス４、６、７、８、１０、および１４においてビット反転が起こる。何故なら、１６回のＴＶコーナー実験からのＰＮＤｃデータ点のグループにおける値の一部は、９−１０および１９−０において、０−１ラインと交差する(cross over)からである。マージン技法は、ｍｏｄＰＮＤｃに関連するビットに弱いクラスおよび強いクラスを作ることによって、これらのビット反転エラーを回避する。ｍｏｄＰＮＤｃに関連するビットは、ｍｏｄＰＮＤｃが０−１境界付近にあるマージン以内に入る場合、弱いとして分類され、そうでない場合強いビットとして分類される。マージンは、最良の結果に対して最悪のＵＣ−ＴＶＮｏｉｓｅレベルに設定されるのが理想的であるが、以下で更に論ずる認証プロトコルにおいて特定の失敗確率を達成するためにチューニングすることができる。
【００４９】
デュアル・ヘルパー・データ（「ＤＨＤ」）アルゴリズムを、ビット反転エラーを更に低減する手段として提案する。ハードウェア・トークンに対するヘルパー・データ（「ＨｅｌｐＤ」）およびレスポンス・ビットストリング（「ＲｅｓｐＢＳ」）が、図４において「（ｂ）」によって示され、一方図４における「（ｃ）」は、ベリファイアに対するＨｅｌｐＤおよびＲｅｓｐＢＳを示す。値は、図４における「（ａ）」に示すｍｏｄＰＮＤｃからのトークンおよびベリファイア強調データを使用して、導き出される。
【００５０】
実際に行われる認証では、エンロールメントにおける早期にベリファイア・データベースに格納されたデータを利用する。トークンおよびベリファイアＳｔｒｏｎｇＢＳを生成するために、以下の動作を実行する。最初に、トークンが、トークンＳｔｒｏｎｇＢＳを生成するために、マージニング技法を使用してヘルパー・データ（「トークンＨｅｌｐＤ」）を生成する。双方共ベリファイアに送信される。ベリファイア・データベースに格納されているトークン毎に、ベリファイアはヘルパー・データ（「ベリファイアＨｅｌｐＤ」）を計算し、次いでそれと受け取ったトークンＨｅｌｐＤとのビット毎のＡＮＤを取る。ベリファイアは、ＡＮＤを取ったＨｅｌｐＤを使用して、ベリファイアＳｔｏｒｏｎｇＢＳを組み立てつつ、同時に、トークンのＳｔｒｏｎｇＢＳから、ＡＮＤ演算の間に「１」から「０」に変化したトークンＨｅｌｐＤビットに対応する強いビットを排除する（この例では、図４における「（ｃ）」の一番下に沿って示すように、３ビットを排除する）。最後に、２つのＳｔｒｏｎｇＢＳを比較する。認証が成功するには、トークンおよびベリファイアＳｔｒｏｎｇＢＳ間の正確な一致、またはビットの全てではないが殆どが一致する場合に照合は成功したとする「ファジイ一致」のいずれかを必要とする。トークンおよびベリファイアのＨｅｌｐＤビットストリングのＡＮＤを取ることにより、個々のＨｅｌｐＤビットストリングがそれら自体によって使用されるときに必要とされるマージンよりも、約半分に減らすことが可能になる。ビット反転エラーが起こり得るのは、図４の「（ａ）」におけるキャプションおよび図によって示されるように、ＵＣ−ＴＶＮｏｉｓｅがｍｏｄＰＮＤｃに双方のマージンを超えて逆側の強ビット領域内まで移動させる場合であるので、これは正しい。ｍｏｄＰＮＤｃが移動するが「１」または「０」の弱いビット領域のいずれかに留まる場合、ＡＮＤ演算はこれを排除する。ＤＨＤ方式と共に使用するマージンを少なくすることによって、モジュラスを減らすことができ、したがって、チップ内ばらつきへのアクセスをし易くすることができる。
【００５１】
これより、プライバシー保護、相互認証プロトコルについて詳しく論ずる。パス遅延情報、ＰＮは、レスポンス・ビットストリングの代わりに、ベリファイア上に格納される。一例として、ＰＮは、各々、１５ビット値として表すことができる（これによって、４ビットの固定小数点精度で、±１０２４の範囲が得られる）。
【００５２】
このプロトコルは、複数のレスポンス・ビットストリングを固定した１組のＰＮから生成することを可能にするために、様々なパラメータを採用し、モジュラス（Ｍｏｄとも呼ぶ）、式（１）および（２）からのμｒｅｆおよびＲｎｇｒｅｆ、１対のＬＦＳＲシード（Ｓ）、マージン、およびパス−選択−マスクを含む。ベリファイアは、パス−選択−マスクにおいて１組のパスを指定し、前述のように、エントロピを改良するために、未使用ビットにオフセットをエンコードする。
【００５３】
チャレンジは、２−ベクトル・シーケンスおよびパス−選択−マスクとして定められる。エンロールメントの間、トークンがＰＮをベリファイアに転送することを可能にするために、ワンタイム・インターフェース(onetime interface)を使用する（ＦＰＧＡ上に特殊プログラミング・ビットストリングとして実装される）。このプロトコルは、プライバシー保護コンポーネントをサポートするために、トークン識別（ＩＤフェーズ）を認証（Ａｕｔｈｅｎフェーズ）から分離する。このプロトコルは、トークン上において暗号プリミティブも不揮発性メモリ（ＮＶＭ）も全く必要としない。
【００５４】
エンロール処理を図５Ａにおいて図表を用いて示す。製造の前に、自動検査パターン生成（「ＡＴＰＧ」）を使用して、ＩＤフェーズにおいて全てのトークンに対する共通の１組のチャレンジとして使用される、１組の検査ベクトル・シーケンス｛ｃｋ｝を選択する。ベクトルの数は、プライバシーに関するセキュリティ要件によって異なる。
【００５５】
共通のチャレンジは、安全な環境においてエンロールの間にトークンに送信され、機能ユニットＰＩに適用される。トークン生成ＰＮは、ベリファイアに送信され、図５（ａ）において｛ＰＮｊ｝として注釈が付けられる。ベリファイアは、ＶｅｒｉｆｉｅｒＧｅｎＩＤ（）を使用して、トークン毎に内部ベリファイアＩＤｉを生成し、ＩＤｉの下の集合｛ＰＮｊ｝をセキュア・データベースに格納する。
【００５６】
エンロールメントのＡｕｔｈｅｎフェーズの間に、トークン毎にＳｅｌｅｃｔＡＴＰＧ（ＩＤｉ）を使用して全く異なる１組のＡＴＰＧ−生成チャレンジを選択することを除いて、同様のプロセスを実行する。典型的な機能ユニットにおいてハザードがなく検査可能なパス(hazard-free testable path)の数は非常に大きくなることができるので、トークン毎に最小限に重複する集合を作成することが可能になる（以下で論ずるように、プライバシーの理由からいくらかの重複は望ましい）。尚、全てのパスに対して２−ベクトル・シーケンスを生成するタスクは、普通サイズの機能ユニットであっても、計算的に実現不可能となる可能性が高いことを注記しておく。しかしながら、ＡＴＰＧを使用してエンロールメント要件に合わせてパスのランダムな部分集合を絞り込む方が、実現可能でありしかも実用的である。Ａｕｔｈｅｎフェーズにおいて生成された１組のＰＮ、｛ＰＮｙ｝も、使用されるチャレンジ・ベクトルと共に、ＩＤｉの下でセキュア・データベースに格納される。
【００５７】
実際に使用されたトークン(fielded token)は、３−フェーズ・プロセスを使用して認証する。フェーズ１はトークン識別（「ＩＤフェーズ」）であり、フェーズ２はベリファイア認証（「相互フェーズ」）であり、フェーズ３はトークン認証（「Ａｕｔｈｅｎフェーズ」）である。ＩＤフェーズにおいて実行される処理を、図５Ｂにおいて図表を用いて示す。他の２つのフェーズは、以下で記す相違があるだけで、ほぼ同一である。
【００５８】
トークンは、「req. to authen」信号をベリファイアに送信することによって、このプロセスを開始する。ベリファイアは、ノンスｎ２を生成し、これを、トークンに対する選択された１組のチャレンジ｛ｃｋ｝と共にトークンに送信する。尚、送信されるチャレンジは、通例、エンロールメントの間に使用されたものの部分集合であることは、注記してしかるべきである。トークンは、ノンスｎ１を生成し、それをベリファイアに送信する。これによって、敵対者が系統的攻撃(systematic attack)を実行する手段としてｎ２を組み立てることを防止する。
【００５９】
トークンおよびベリファイアは、ｍ＝（ｎ１ＸＯＲｎ２）を計算し、ｍをＳｅｌＰａｒａｍ関数への入力パラメータとして使用する。ＳｅｌＰａｒａｍは、パラメータＭｏｄ、Ｓ、μｒｅｆ、Ｒｎｇｒｅｆ、およびマージンを、ｍからのビット・フィールドを使用して組み立てる。２つのＬＦＳＲシード・パラメータＳは、ｍにおけるビット・フィールドから直接導き出すことができる。残りのパラメータは、テーブル参照処理を、これらを特定の範囲に制約する手段として使用して、導き出される。例えば、Ｍｏｄはマージンによって下限が定められ(lower bounded)、３０未満の偶数に制約される。同様に、μｒｅｆおよびＲｎｇｒｅｆパラメータも、固定小数点の値の範囲に制約される。ＳｅｌＰａｒａｍは、ベリファイア上において同様に実行される。
【００６０】
一旦パラメータを選択したなら、ビットストリング処理プロセスを実行する。最初に、図５Ａにおいて参考としてＰＵＦ（｛ｃｋ｝）を引用すると、チャレンジ｛ｃｋ｝を適用して集合｛ＰＮ’ｊ｝を生成する。次いで、ＡｐｐＰａｒａｍ手順を、パラメータＳ、μｒｅｆ、Ｒｎｇｒｅｆ、およびＭｏｄパラメータと共に使用して、以上で説明したＰＮＤｉｆｆ、ＴＶＣＯＭＰ、およびモジュラス処理を１組のＰＮに適用し、集合｛ｍｏｄＰＮＤｃ’ｉ｝を生成する。次に、トークン上で、以上で説明し図４における「（ｂ）」によって図表を用いて示したマージニング・プロセスを使用して、ビットストリング生成（ＢｉｔＧｅｎＳ）を実行する。ＢｉｔＧｅｎＳは、マージンの制約の下で強いビットのみで構成されるビットストリングｂｓｓ’と、ヘルパー・データ・ストリングｈ’の双方を戻す。ｂｓｓ’およびｈ’の双方はベリファイアに送信される。
【００６１】
ベリファイアは、それに格納されているトークンｉデータ集合｛ＰＮｊ｝ｉの各々を、同じパラメータを使用して処理することによって、検索プロセスを実行する。しかしながら、図５ＢにおいてＢｉｔＧｅｎＤで示される、ＤＨＤ方式が代わりに使用される。ＢｉｔＧｎＤは、トークンのヘルパー・データｈ’とデータ集合毎に導き出されたヘルパー・データ（図示せず）とのＡＮＤをビット毎に取り、それを使用してトークンのビットストリングｂｓｓ’をｂｓｓ”に変更して、必要に応じてビットを排除し（図４における「（ｃ）」の一番下を参照）、ベリファイアのＳｔｒｏｇＢＳ  ｂｓｓを生成する。最後に、ベリファイアはｂｓｓ’をｂｓｓ”と比較し、一致が見られた場合、ＩＤフェーズは成功して完了する。
【００６２】
ＡｐｐＰａｒａｍおよびＢｉｔＧｅｎＤはデータベースに格納されている各｛ＰＮｊ｝ｉ毎に適用されなければならないので、これは大きなデータベースにとっては計算集約処理であるが、必要であれば、動作の独立性が与えられれば、検索処理を複数のＣＰＵにおいて並列で実行することができる。
【００６３】
以上で示したように、検索が終了するのは、一致が見られたとき、またはデータベースが使い果たされたときである。後者の場合、認証は、ＩＤフェーズの終了時に、失敗して終わる。したがって、ＩＤフェーズは、敵対者がサービス拒否攻撃においてベリファイアについてのトークンの認証情報を枯渇させるのを防止するゲートウェイとしても機能する。前者の場合、一致するベリファイア(matching verifier)のＩＤｉがフェーズ２のベリファイア認証（「相互フェーズ」）およびフェーズ３のトークン認証（「Ａｕｔｈｅｎフェーズ」）に渡される。相互フェーズでは、トークンとベリファイアの役割が逆転し、検索プロセスが省略されることを除いて、同じプロセスを実行する。また、ＩＤフェーズにおいて使用されたチャレンジを再使用し、２つの新たなノンス（ｎ３ＸＯＲｎ４）を使用してＳｅｌＰａｒａｍだけを実行することも考えられる。Ａｕｔｈｅｎフェーズは、トークンが再度ベリファイアに対して認証することが、ＩＤフェーズと同様であるが、「トークン特定」の１組のチャレンジ｛ｃｘ｝を使用する。相互フェーズと同様、検索プロセスを省略する。また、セキュリティ要件が低いアプリケーション、例えば、ＲＦＩＤおよびホーム自動化アプリケーションでは、Ａｕｔｈｅｎフェーズを省略できることも考えられる。
【００６４】
尚、Ｍｏｄ、Ｓ、μｒｅｆ、Ｒｎｇｒｅｆ、マージンによって与えられるパラメータ空間の多様性を仮定すると、プロトコルの実行毎に、送信される情報ｂｓｓ’およびｈ’は高い確率で異なるので、トークンのプライバシーはＩＤフェーズでは保護されることを注記しておく。この多様性は、先に論じたように、パス−選択−マスクの使用によって、指数的に増大する。更に、トークン認証フェーズにおいて異なるトークンによって使用されるチャレンジに重複(overlap)を作ることによって、このフェーズでも同様に追跡が妨げられる。
【００６５】
尚、ＨＥＬＰはエラー回避方式を使用し、したがって、以前に提案した逆ファジイ抽出方式、例えば、トークン上におけるエラー補正に伴う計算負担を低減するための動機付け因子は、ＨＥＬＰには存在しないことは注記してしかるべきである。その結果、ＨＥＬＰでは、認証方式の複数のフェーズにおいて提案したように、効率的なヘルパー・データ方式をいずれの方向にも実現することが可能である。
【００６６】
Ｍｏｄ、Ｓ、μｒｅｆ、Ｒｎｇｒｅｆ、マージンは、集合的に、１組の測定されたＰＮから全く異なるビットストリングを作成するために、限度内で変化することができるパラメータを表す。提案した認証方式のこの特徴は、ベリファイア上に多ビットＰＮを格納することに伴うオーバーヘッド増大を、レスポンス・ビットストリングの代替として、相殺する。しかしながら、この方式は、生成されたＳｔｒｏｎｇＢＳ間の高い統計的品質に大きく依存する。この章では、チップ内ハミング距離（「ＨＤｉｎｔｒａ」）、チップ間ハミング距離（「ＨＤｉｎｔｅｒ」）、およびＮＩＳＴ統計検査ツールを含む標準的なメトリックを、それぞれ、ビットストリングの再現性、一意性、およびランダム性の尺度として使用して、ＳｔｒｏｇＢＳの統計的品質を調査する。
【００６７】
本発明の一実施形態によれば、このプロトコルは、ｓｂｏｘ−ｍｉｘｅｄｃｏｌと呼ばれるＡＥＳデータ・パス・コンポーネントをエントロピのソースとして使用して、高度暗号化規格（「ＡＥＳ」）アルゴリズムのハードウェア実装において提供される。具体的には、ｓｂｏｘ−ｍｉｘｅｄｃｏｌは、ＳＢＯＸの４つのコピーおよびＭＩＸＥＤＣＯＬの１つのコピーを含む３２ビット・コラムＡＥＳの機能ユニットである。
【００６８】
データは、Ｘｉｌｉｎｘ  Ｚｙｎｑ７０２０ＦＰＧＡの４５個のコピー上において、ｓｂｏｘ−ｍｉｘｅｄｃｏｌ機能ユニットから収集されるが、任意の数のコピーおよびＡＳＩＣのような任意のハードウェアも考えられる。ｓｂｏｘ−ｍｉｘｅｄｃｏｌの実装には、Ｘｉｌｉｎｘ  Ｚｙｎｑ７０２０ＦＰＧＡ上において約３０００個のＬＵＴを必要とし、約８百万本のパスが得られる(provide)。しかしながら、約６００個のＬＵＴを所有する１つのＡＥＳ  ＳＢＯＸコンポーネントから成る、もっと軽量の機能ユニットを使用して、全体的な実装サイズ（ＨＥＬＰ＋機能ユニット）を約６０００個のＬＵＴから３０００個未満のＬＵＴに削減したプロトコルも実証されている。
【００６９】
具体的には、１６のＴＶコーナーの各々において４５個のチップから、１組で４０９６個のＰＮを収集する。ベリファイア・データベースに格納されるエンロールメント・データは、２５°Ｃ、１．００Ｖ（通常条件）で収集し、一方再生データは、部品に対する拡張工業グレード(extended industrial-grade)の温度−電圧仕様限度、−４０°Ｃ、０°Ｃ、２５°Ｃ、８５°Ｃ、１００°Ｃ、ならびに電圧０．９５Ｖ、１．００Ｖ、および１．０５Ｖの全ての組み合わせで収集する。約６００個の上昇および６００個の下降２−ベクトル検査シーケンスから、パス−選択−マスクを使用して、ノイズが少なく、チップ内ばらつきが大きい１組のパスを選択する。
【００７０】
検査データは、１組約１２００個のチャレンジを適用することによって、上昇遷移がある２０４８本のパスおよび下降遷移のある２０４８本のパスを検査することによって生成する。２０４８個の上昇エッジＰＮおよび２０４８個の下降エッジＰＮのＬＦＳＲ選択対（LFSR-selected pairing)を使用して、ＰＮＤを作成する。２０４８個の上昇エッジＰＮの各々を、２０４８個の下降エッジＰＮの内いずれかと対を形成し、４，１９４，３０４通りの可能な組み合わせを発生する(yield)ことができる。しかしながら、以下の結果は、これらの対の組み合わせの内２５６個の部分集合に絞った(directed)ものである。
【００７１】
エントロピを改善するために、先に論じたような２ビット・オフセット方式をＰＮＤｃに適用する。ベリファイアは、格納されているエンロールメント・データを使用して、オフセットを計算し、それを使用して個々のＰＮＤｃを上方向に、適用したモジュラスによって与えられた範囲の０、１／８、１／４、または３／８だけシフトして、分布を０−１ラインの中心に近づける。
【００７２】
刻みがサイズ２、ならびにマージンがサイズ２および３である、１０および３０間の１組のモジュラスについても調査する。図４における「（ａ）」によって示されるように、４つの弱い領域が要求され、２つの強いビット領域は少なくともサイズ１でなければならないので、モジュラスの最小値は４×マージン＋２によって与えられる。例えば、サイズ３のマージンに対する最も小さいモジュラスは１４であり、したがって１０および１２のモジュラスに対するヒストグラムにおけるエレメントは０になる。
【００７３】
この分析から、これらのパラメータの２０通りの組み合わせの内、１７個が有用であることが明らかになった。使用することができない組み合わせは、マージン２に対する１０のモジュラス、ならびにマージン３に対する１４および１６のモジュラスだけである。以上で示したように、ビットストリングのサイズは、これらのマージンおよびモジュラスの組み合わせには小さすぎる。
【００７４】
また、この分析は、μｒｅｆおよびＲｎｇｒｅｆパラメータによって与えられたスケール係数の組み合わせの内２つについても調査し（式（１）および（２）参照）、具体的には、４５個のチップの個々の分布から導かれた平均および最大推奨値について調査した。μｒｅｆおよびＲｎｇｒｅｆは、これらの平均値および最大値の間の１０個の異なる値に独立して設定できることが、控えめに推定される。
【００７５】
構成パラメータにこれらの境界を仮定すると、同じ１組のパス（ＰＮ）を使用して、合計で４，１９４，３０４×１７×１０×１０≒７０億通りの異なるビットストリングを生成することができる。先に論じたように、ベリファイアはパス−選択−マスクを２ベクトル・シーケンスの各々にも適用し、これによって可能なビットストリングの数が指数的に増大する。
【００７６】
チップ間ハミング距離は、２つの方法、即ち、実際(Actual)および真(True)で報告される。この章では、先に説明したＤＨＤ方法の適用後に生成されたＳｔｒｏｎｇＢＢを使用して、ＨＤｉｎｔｅｒを計算する。
【００７７】
以下のようにヘルパー・データ・ビットストリングの対のＡＮＤを取ることによって、１組のＳｔｒｏｇＢＳを作成する。最初に、エンロールメントｍｏｄＰＮＤｃを使用して、４５個のチップの各々に対して、１組で４５通りのヘルパー・データ・ビットストリングを作成する。第２に、これら４５個のチップの各再生コーナーの下で収集されたｍｏｄＰＮＤｃを使用して、ヘルパー・データを計算する。チップ毎に、エンロールメント・ヘルパー・データ・ビットストリングと、対応する再生ヘルパー・データ・ビットストリングとのＡＮＤを取る。
４５×１５個のＡＮＤを取ったデュアル・ヘルパー・データ・ビットストリングを使用して、図４の「（ｂ）」および「（ｃ）」に示した方法を使用して、対応する１組のＳｔｒｏｎｇＢＳを作成する。尚、ＤＨＤ方法は可変サイズのビットストリングを作成することは注記してしかるべきである。ＨＤｉｎｔｅｒＡ分析におけるチップの１つによって生成された最も小さいビットストリングを使用する。最も小さいビットストリングのサイズについて以下に分析し説明する(discuss)。
【００７８】
以下の式を使用して、ＨＤｉｎｔｅｒＡを計算する。
【数２】
2019501609.tif 000004
【００７９】
ＢおよびＮＣは、それぞれ、「チップ数」（４５）、再生ＴＶコーナーの数」、「ビット数」（最も小さいビットストリングのサイズ）、および「チップの組み合わせの数」（４５×４４／２＝９９０）を表す。式（３）は、単に、チップＳｔｒｏｇＢＳの可能な対の各々の間におけるビット毎の距離の全てを合計し、次いで試験されたビットの総数で除算することによって、この総和をパーセンテージに変換する。２５６個のシードの各々についてＨＤｉｎｔｅｒＡをこのように計算し、平均を取る。
【００８０】
μｒｅｆおよびＲｎｇｒｅｆに対する平均および最大スケール係数を使用したときの、モジュラスおよびマージンの組み合わせの各々について、ＨＤｉｎｔｅｒＡを図６Ａおよび図６Ｂに示す。棒グラフの高さは全て、理想である５０％に非常に近い。素晴らしい結果であるが、チップ間ＨＤを計算するこの手法は、従前からの手法とは異なる。何故なら、ビットストリングにおける対応する位置が異なるｍｏｄＰＮＤｃから生成されるからである。従前からの手法を使用した結果、即ち、ｍｏｄＰＮＤｃの位置がビットストリングにおいて保存される場所について、以下で論ずる。
【００８１】
先に引用したＳｔｒｏｇＢＳは、ＮＩＳＴ統計検査一式(suite)への入力として使用される。平均スケーリングおよび２５６個のＬＦＳＲシード対の内１つだけを使用した結果を、２および３のマージンについて、それぞれ、図７Ａおよび図７Ｂに示す（他の構成パラメータについての結果は、非常に似ている）。ＮＩＳＴ検査の判断基準では、４５個のチップの内少なくとも４２個が検査を通った場合、検査カテゴリを合格に分類する。図は、全ての棒グラフが４２の閾値ラインの上にあり、したがって、全ての検査カテゴリが通ったことを示す。ＮＩＳＴ検査１、２、および３に対する高さ０の棒グラフは、これらの検査に対するＮＩＳＴ要件に満たないサイズのビットストリングを生成したモジュラスを識別する。調査したパラメータの全ての組み合わせから生成されたビットストリングにＮＩＳＴ検査を適用したときの合格率は、約９８．８％である。
【００８２】
図８Ａおよび図８Ｂは、各々、本発明にしたがって、平均スケール係数および最大スケール係数を使用したときの、真のチップ間ハミング距離の結果のグラフを示す。平均スケール係数および最大スケール係数を使用したときのエントロピの結果を図９Ａおよび図９Ｂに示す。図１０Ａおよび図１０Ｂは、各々、本発明にしたがって、平均スケール係数および最大スケール係数を使用したときの失敗結果の確率のグラフを示す。本発明にしたがって、平均スケール係数および最大スケール係数を使用したときの、最も小さいビットストリング・サイズの結果を、図１１Ａおよび図１１Ｂに示す。
【００８３】
ＨＤｉｎｔｅｒＡと同様、ＨＤｉｎｔｅｒＴもビットストリングの９９０通りの対(pairing)およびＬＦＳＲシードの２５６通りの異なる対(pair)に渡る平均パーセントとして計算する。しかしながら、長さ２０４８の最大長ビットストリングを使用し、ビットストリングの対(pairing)毎に、双方のビットストリングにおいて強いと分類されたビットだけを使用して、ハミング距離を計算する。平均スケール係数の下では、ＨＤｉｎｔｅｒＴは３０％から５０％まで変動し、図８Ａによって示されるように、３０．２％がマージン３およびモジュラス３０に対する最小値である。最大スケーリングでは、ＨＤｉｎｔｅｒＴの値の殆どが、４０％および５０％の間にあり、図８Ｂによって示されるように、最小値は３８．７％である。これらの結果も非常に優れており、この範囲のモジュラスでは２ビットのオフセットを有効に使用できることを示す。
【００８４】
同様に、長さ２０４８のエンロールメントで生成された各ビットストリングからの強いビット、および以下の式を使用して、エントロピを計算する。
【数３】
2019501609.tif 000005
【００８５】
「１」の頻度ｐｉは、４５個のチップの内ビットが強いと識別されたチップだけを使用して、各ビット位置における「１」の端数として計算する。エントロピ値は、約１２４０から１９００以上までの範囲にわたって変動する。この分析では理想的な値は２０４８であるので、これらの結果は、各ビットがエントロピの０．６０および０．９３ビットの間で寄与することを示す。
【００８６】
失敗の確率は、１０−ｘからの指数ｘとして報告され、−６の値は百万回に１回の公算(chance)を示す。ＨＤｉｎｔｒａは、ＤＨＤ方式の下でチップ毎のエンロールメントＳｔｒｏｇＢＳと１５個の再生ＳｔｒｏｎｇＢＳの各々との対をなし、次いで１５通りのＤＨＤ−生成されたビットストリングの全ての組み合わせにわたって相違(difference)（ビット反転）を数えることによって計算する。全てのチップについてのビット反転の数を合計し、調査するビットの総数で除算する。次いで、このプロセスを１組で２５６個のＬＦＳＲシード対全てに使用して、平均ＨＤｉｎｔｒａを計算し、次いで、失敗の確率を表す指数に変換する。この結果は、失敗の確率が１０−２および１０−４の間で変化し、最も大きい（最悪）の値は１０−２．４であることを示す。したがって、いずれの認証に対しても、最悪の環境条件の下でトークンとベリファイアとの間において異なるビットは、１％未満である。
【００８７】
最小のＳｔｒｏｎｇＢＢのサイズを図１１Ａおよび図１１Ｂに示す。事実上の軽量セキュリティ規格を満たすために少なくとも８０ビットが必要とされるという条件を使用して、この判断基準を満たすことができないパラメータの組み合わせは、先に記したものだけ、即ち、２のマージンに対する１０のモジュラス、ならびに３のマージンに対する１４および１６のモジュラスだけである。
【００８８】
図１２は、本プロトコルのＩＤフェーズおよび相互フェーズに関連するリソース利用およびランタイム・オーバーヘッドを示す。図１２に示す表は、認証プロトコルにおいてリソースが使用される順にリソースを列挙し、「−」は、既に列挙されたリソースの繰り返し使用を示す。一番下にある合計は、エリア・オーバーヘッドが６０３８個のＬＵＴおよび１７２４個のＦＦであり、一方ランタイムは約１．２５秒であることを示す。１つのＡＥＳ  ＳＢＯＸコンポーネントのみを使用する代りの軽量実施態様では、２９０９個のＬＵＴおよび９５２個のＦＦのエリア・オーバーヘッド、ならびに約２．２秒のランタイムが発生する(yield)。
【００８９】
また、ＨＥＬＰの実装には、１８ビット乗算器と、サイズが７．５ＫバイトのオンチップＢＲＡＭメモリとを必要とする。実装に使用されるＸｉｌｉｎｘＩＰブロックは、Ｚｙｎｑ７０２０ＦＰＧＡのプロセッサとプログラマブル・ロジック・コンポーネントとの間で通信を実現するために、ＭＭＣＭと、デュアル・チャネル（６４ビット）ＡＸＩ−ＧＰＩＯを含む。８−コアの３．４ＧＨｚ、Ｉｎｔｅｌｉ７デスクトップ・コンピュータをベリファイアとして使用して、ランタイムを測定する。１．２５秒の認証時間は、トークンとベリファイアとの間のネットワーク送信を含む。ベリファイア上で実行される網羅的な検索は、データベースにおけるエントリ毎に約３００マイクロ秒を要する。報告されたランタイムは、エントリが１つだけのデータベースを使用する。したがって、比較的少数のトークン（１０Ｋ以下）を組み込むアプリケーションでは、平均して約１．５秒の検索時間を必要とし、約２．７５秒の総認証時間を必要とする。
【００９０】
これより、モデル構築に対する耐性(resistance)、およびＣＲＰ空間のサイズに関係するＨＥＬＰのセキュリティ・プロパティについて論ずる。レスポンス空間とは、各トークンが、前述の６つのユーザ定義パラメータを使用して生成することができるビットストリングの数を指す。セキュリティ分析は、エンロールメントの間に収集されたトークンのタイミング情報をベリファイアが安全に格納することを仮定しており、必要であればそれを暗号化することも仮定する。
【００９１】
既に述べたように、チャレンジ空間のサイズは、２×（３ｎ−２ｎ）個の２ベクトル・シーケンスであり、レスポンス・ビットストリングの数は、パス−選択−マスクによって導入される多様性を除いて、約７０億である。本プロトコルで使用する（ｎ１ＸＯＲｎ２）演算は、これらの構成パラメータに対する直接制御を許さない。パス−選択−マスクは、ビットストリング生成プロセスにおいて使用する１組のＰＮを変化させることによって、可能なレスポンス・ビットストリングの数を指数的に増大させる。ＨＥＬＰおよび本プロトコルのこれらの特性は、一体となって、モデル構築攻撃に対して著しい回復力を付加する。
【００９２】
２つの追加の要因が、更にＨＥＬＰのモデル構築に対する耐性を高める。第１の要因を「分布効果」(distribution effect)と呼ぶ。パス−選択−マスクによって選択されたＰＮは、ＰＮＤ分布の特性を変化させ、次いで、ＴＶＣＯＭＰプロセスによって各ＰＮＤがどのように変換されるかに影響を及ぼす（ＴＶＣＯＭＰプロセスについては、先に式（１）および式（２）を参照して説明した。具体的には、式１は、測定されたＰＮＤ分布のμｔｏｋｅｎおよびＲｎｇｔｏｋｅｎを使用して、式（２）によって示される逆変換を適用する前に、ＰＮＤを標準化する。最初の変換により、最終的なＰＮＤｃ値が、ＰＮＤ分布の他のコンポーネントに依存することになる。したがって、「ＰＵＦを破壊する」(break the PUF)メカニズムとして相対的パス遅延を学習するように設計された機械学習技法は、この「分布効果」を考慮に入れる必要がある。
【００９３】
ＨＥＬＰの物理モデルが、アービタＰＵＦのために開発されたモデルよりも複雑になると、機械学習（ＭＬ）アルゴリズムが十分な予測能力を達成するためには、たとえ可能であるとしても、遙かに多い訓練集合(training set)を必要とする可能性が高い。これは、様々な理由で正しい。第１に、敵対者は、ＭＬ攻撃の訓練フェーズにおいて使用されるベクトル対を生成するために、自動検査パターン生成（ＡＴＰＧ）を実行する必要がある。これは一時的なコストであるが、ＡＴＰＧは長いランタイムを必要とし、一般に、ハザードがなくロバストにパスを検査するベクトル対を発見することに失敗する。このベクトル対の発見には、訓練フェーズの間にどのパスが実際に検査されているかについての不確実性を排除する必要がある。第２に、あるレベルの不確実性は常に残る。何故なら、全てのパスが、ハザードがなくロバストに検査可能ではないからである。具体的には、パスが再収束しほぼ等しい基準遅延(nominal delay)を有する場合にタイミングを支配するパスは、チップ毎に異なる。第３に、アービタＰＵＦに対して有効であった、確率的に大体正しい（「ＰＡＣ」：Probably Approximately Correct）のようなＭＬアルゴリズムが成功を保証するのは、モデルのサイズが多項式である(polynomial in size)ときだけである。
【００９４】
以上で説明した実施形態は、あらゆる観点において、限定ではなく例示に過ぎないと解釈されるべきであり、本発明の範囲は以上の説明には限定されない。それでもなお、当業者には、本発明の範囲(scope)および本発明の範囲(range)内に該当し得る変更、交換、適応、ならびにその他の修正も認めることができよう。
【図１】
2019501609.tif 000006
【図２】
2019501609.tif 000007
【図３】
2019501609.tif 000008
【図４】
2019501609.tif 000009
【図５Ａ】
2019501609.tif 000010
【図５Ｂ】
2019501609.tif 000011
【図６Ａ】
2019501609.tif 000012
【図６Ｂ】
2019501609.tif 000013
【図７Ａ】
2019501609.tif 000014
【図７Ｂ】
2019501609.tif 000015
【図８Ａ】
2019501609.tif 000016
【図８Ｂ】
2019501609.tif 000017
【図９Ａ】
2019501609.tif 000018
【図９Ｂ】
2019501609.tif 000019
【図１０Ａ】
2019501609.tif 000020
【図１０Ｂ】
2019501609.tif 000021
【図１１Ａ】
2019501609.tif 000022
【図１１Ｂ】
2019501609.tif 000023
【図１２】
2019501609.tif 000024
【国際調査報告】
2019501609.tif 000025
2019501609.tif 000026