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

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

▶ クリプトグラフィ リサーチ, インコーポレイテッドの特許一覧

特許7560535暗号化物理複製困難関数回路ヘルパーデータ
<>
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図1A
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図1B
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図1C
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図2
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図3A
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図3B
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図3C
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図3D
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図4
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図5
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図6
  • 特許-暗号化物理複製困難関数回路ヘルパーデータ 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】暗号化物理複製困難関数回路ヘルパーデータ
(51)【国際特許分類】
   H04L 9/10 20060101AFI20240925BHJP
【FI】
H04L9/10 Z
【請求項の数】 20
(21)【出願番号】P 2022502570
(86)(22)【出願日】2020-09-28
(65)【公表番号】
(43)【公表日】2022-12-23
(86)【国際出願番号】 US2020053134
(87)【国際公開番号】W WO2021071691
(87)【国際公開日】2021-04-15
【審査請求日】2023-09-25
(31)【優先権主張番号】62/912,351
(32)【優先日】2019-10-08
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/978,631
(32)【優先日】2020-02-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】509285746
【氏名又は名称】クリプトグラフィ リサーチ, インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】ベスト,スコット,シー.
(72)【発明者】
【氏名】ウィットナー,ジョエル
【審査官】平井 誠
(56)【参考文献】
【文献】米国特許出願公開第2019/0138753(US,A1)
【文献】欧州特許出願公開第3046095(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/10
(57)【特許請求の範囲】
【請求項1】
システムであって、
複数の暗号化ヘルパーデータセットを格納する不揮発性メモリであって、前記複数の暗号化ヘルパーデータセットが、複数の鍵の互いとは異なる前記複数の鍵のそれぞれのものを使用して復号可能である、不揮発性メモリと、
物理複製困難関数回路であって、前記複数の暗号化ヘルパーデータのそれぞれの復号化バージョンであるそれぞれの復号化ヘルパーデータセットを使用する前記物理複製困難関数回路に基づいて、複数の異なる指紋値を出力する物理複製困難関数回路と、を備える、システム。
【請求項2】
前記システムの第1の認証が、前記複数の異なる指紋値のうちの第1のものに基づく、請求項1に記載のシステム。
【請求項3】
前記システムの第2の認証が、前記複数の異なる指紋値のうちの第2のものに基づく、請求項2に記載のシステム。
【請求項4】
前記複数の鍵のうちの第1のものを受信し、前記複数の鍵のうちの前記第1のものに基づいて、前記複数の暗号化ヘルパーデータセットのうちの第1のものから前記複数の暗号化ヘルパーデータセットの前記復号化バージョンのうちの第1のものを生成するプロセッサであって、前記複数の暗号化ヘルパーデータセットのうちの前記第1のものが、前記複数の異なる指紋値のうちの第1のものを出力するために前記物理複製困難関数回路によって使用される、プロセッサ、をさらに備える、請求項1に記載のシステム。
【請求項5】
前記複数の暗号化ヘルパーデータセットのうちの前記第1のものが、前記複数の異なる指紋値のうちの前記第1のものを出力するために前記物理複製困難関数回路によって使用された後に、前記プロセッサが、前記複数の鍵のうちの第2のものを受信し、前記複数の鍵のうちの前記第2のものに基づいて、前記複数の暗号化ヘルパーデータセットのうちの第2のものから前記複数の暗号化ヘルパーデータセットの前記復号化バージョンのうちの第2のものを生成し、前記複数の暗号化ヘルパーデータセットのうちの前記第2のものが、前記複数の異なる指紋値のうちの第2のものを出力するために前記物理複製困難関数回路によって使用される、請求項4に記載のシステム。
【請求項6】
前記複数の暗号化ヘルパーデータセットの前記復号化バージョンのうちの前記第2のものが生成された後に、前記システムの外部の検証ソフトウェアが、前記複数の異なる指紋値のうちの前記第2のものを出力し、および前記複数の異なる指紋値のうちの前記第2のものを出力しない前記物理複製困難関数回路に基づいて、前記システムが真正であることを決定することである、請求項5に記載のシステム。
【請求項7】
前記複数の異なる指紋値のうちの前記第1のものが、暗号化データの第1のブロックを復号化するために使用され、前記複数の異なる指紋値のうちのうちの前記第2のものが、暗号化データの第2のブロックを復号化するために使用される、請求項5に記載のシステム。
【請求項8】
前記暗号化データの第1のブロックが、前記システムによって実行される第1の実行可能コードを含み、前記暗号化データの第2のブロックが、前記システムによって実行される第2の実行可能コードを含む、請求項7に記載のシステム。
【請求項9】
認証方法であって、
検証システムから第1の復号鍵を受信することと、
前記第1の復号鍵を使用して、不揮発性メモリから、物理複製困難関数(PUF)回路ヘルパーデータの第1のブロックを復号化することと、
第1のPUF回路出力値を生成するために、前記PUF回路によって、前記PUF回路ヘルパーデータの第1のブロックを使用することと、
前記第1のPUF回路出力値に基づいて、前記検証システムに第1の認証値を提供することと、
前記検証システムから前記第1の復号鍵を受信した後に、前記検証システムから第2の復号鍵を受信することと、
前記第2の復号鍵を使用して、不揮発性メモリから、PUF回路ヘルパーデータの第2のブロックを復号化することと、
第2のPUF回路出力値を生成するために、前記PUF回路によって、前記PUF回路ヘルパーデータの第2のブロックを使用することと、
前記第2のPUF回路出力値に基づいて、前記検証システムに第2の認証値を提供することと、を含む、方法。
【請求項10】
前記第1のPUF出力値が、前記第1の認証値を生成するために使用される第1の鍵分割に寄与し、前記第2のPUF出力値が、前記第2の認証値を生成するために使用される第2の鍵分割に寄与する、請求項9に記載の方法。
【請求項11】
前記第2の復号鍵を提供した後に、前記検証システムが、前記PUF回路を含むシステムが真正であることを示すものとして、前記第1のPUF回路出力値に基づく認証値を受諾しない、請求項9に記載の方法。
【請求項12】
第1のチャレンジ刺激の第1のインジケータを受信することであって、前記第1のチャレンジ刺激が、前記第1のPUF回路出力値を生成するために、前記PUF回路によって使用される、受信することをさらに含む、請求項9に記載の方法。
【請求項13】
前記第1のチャレンジ刺激が、前記第2のPUF回路出力値を生成するために、前記PUF回路によって使用される、請求項12に記載の方法。
【請求項14】
第2のチャレンジ刺激の第2のインジケータを受信することであって、前記第2のチャレンジ刺激が、前記第2のPUF回路出力値を生成するために、前記PUF回路によって使用される、受信することをさらに含む、請求項12に記載の方法。
【請求項15】
認証されるシステムであって、
ホストシステムへのインターフェースと、
前記インターフェースに結合された証明者集積回路と、を備え、前記証明者集積回路が、
物理複製困難関数(PUF)回路ヘルパーデータの第1のブロック、およびPUF回路ヘルパーデータの第2のブロックを、暗号化形態で格納する不揮発性メモリであって、前記PUF回路ヘルパーデータの第1のブロックが、第1の復号鍵を使用して復号化され、前記PUF回路ヘルパーデータの第2のブロックが、第2の復号鍵を使用して復号化される、不揮発性メモリと、
前記インターフェースから前記第1の復号鍵を受信し、前記第1の復号鍵を使用して前記PUF回路ヘルパーデータの第1のブロックを復号化する処理回路と、
前記PUF回路ヘルパーデータの第1のブロックを使用して、第1のPUF回路出力値を生成するPUF回路と、
前記第1のPUF回路出力値に基づいて、前記インターフェースに提供される第1の認証値を生成する前記処理回路と、
前記インターフェースから前記第1の復号鍵を受信した後に、第2の復号鍵を受信し、前記第2の復号鍵を使用して前記PUF回路ヘルパーデータの第2のブロックを復号化する前記処理回路と、
前記PUF回路ヘルパーデータの第2のブロックを使用して、前記第1のPUF回路出力値とは異なる第2のPUF回路出力値もまた生成する前記PUF回路と、
前記第1の認証値が前記インターフェースに提供された後に、前記第2のPUF回路出力値に基づいて、前記インターフェースに提供される第2の認証値を生成する前記処理回路と、を備える、システム。
【請求項16】
前記第1のPUF出力値が、前記第1の認証値を生成するために使用される第1の鍵分割に寄与し、前記第2のPUF出力値が、前記第2の認証値を生成するために使用される第2の鍵分割に寄与する、請求項15に記載のシステム。
【請求項17】
前記第2の復号鍵が受信された後に、前記第2のPUF回路出力値に基づく認証値が、前記PUF回路を含む前記システムが真正であることを示す、請求項15に記載のシステム。
【請求項18】
前記インターフェースが、第1のチャレンジ刺激の第1のインジケータをさらに受信し、前記第1のチャレンジ刺激が、前記第1のPUF回路出力値を生成するために前記PUF回路によって使用される、請求項15に記載のシステム。
【請求項19】
前記第1のチャレンジ刺激が、前記第2のPUF回路出力値を生成するために前記PUF回路によって使用される、請求項18に記載のシステム。
【請求項20】
前記インターフェースが、第2のチャレンジ刺激の第2のインジケータをさらに受信し、前記第2のチャレンジ刺激が、前記第2のPUF回路出力値を生成するために前記PUF回路によって使用される、請求項18に記載のシステム。
【発明の詳細な説明】
【図面の簡単な説明】
【0001】
図1A-1C】認証システムを図示する。
図2】認証システムの動作方法を図示するフローチャートである。
図3A-3D】ソフトウェアコードを認証するシステムを図示する。
図4】ソフトウェアコードの認証方法を図示するフローチャートである。
図5】認証デバイスを構成するためのシステムを図示する。
図6】認証されたソフトウェアコードを実行するようにシステムを構成する方法を図示するフローチャートである。
図7】処理システムを図示するブロック図である。
【発明を実施するための形態】
【0002】
「物理複製困難関数」(PUF)回路は、マイクロプロセッサダイなどの半導体デバイスのための一意識別子として機能し得る物理的に定義された「デジタル指紋」を生成する回路である。一般に、PUF回路は、集積回路の製造中に、自然に、かつ必然的に発生する固有の物理的変形に依存する。これらの変形は、従来の再現可能な回路によって確実に生成され得るものよりも小さいため、いわゆる「ヘルパーデータ」は、PUF回路自体がそうでなくても、そのダイ上のPUF出力が時間の経過とともに再現可能であることを保証するために、PUF回路を備えた各集積回路ダイに対して生成される。
【0003】
実施形態では、複数のヘルパーデータソリューション(別名、ヘルパーデータブロック)、したがって、複数の可能なPUF出力値が、所与の集積回路ダイのために生成される。これらのヘルパーデータブロックは、暗号化され、集積回路ダイ上の不揮発性メモリに格納される。実施形態では、各ヘルパーデータブロックは、暗号化されているため、各ヘルパーデータブロックは、その集積回路ダイに格納されている他の暗号化ヘルパーデータブロックとは異なる復号鍵によってのみ復号化することができる。他の実施形態では、各暗号化ヘルパーデータブロックは、異なる復号鍵のセットに依存する。例えば、第1の暗号化データブロックは、第1の鍵のみを必要とし得るが、第2のブロックは、第1および第2の両方を必要とする、などである。
【0004】
実施形態では、検証システムは、第1のヘルパーデータブロックが復号化されることを可能にする第1の鍵を提供する。復号化された第1のヘルパーデータブロックは、PUF回路に提供される。PUF回路は、集積回路と検証システムの間の認証プロセス中にさらに使用される第1のPUF出力を生成するために、この復号化ヘルパーデータを使用する。
【0005】
第1のPUF出力が敵対者によって危険にさらされるときに(または任意の期間(例えば、1年)後に)、検証システムは、再構成される。検証システムは、第1のPUF出力値ではなく、第2のPUF出力値(第1とは異なる)に基づいて真正性を決定するように再構成される。検証システムはまた、第2の暗号化ヘルパーデータブロックが復号化されることを可能にする第2の鍵(第1の鍵とは異なる)を提供するように再構成される。この復号化された第2のヘルパーデータを使用することは、PUF回路が第2のPUF出力値を生成する結果をもたらす。
【0006】
したがって、(侵害された)第1のPUF出力値のみを有する敵対者の複製もしくは偽造システムまたは集積回路は、システムが第2の鍵を利用するように再構成された後に、検証システムで正しく認証されなくなる。しかしながら、最初に第2の暗号化データブロックでプロビジョニングされた真正システムは、第2のPUF出力値を生成することができ、したがって、正常に認証される。
【0007】
システムが第2の鍵を利用するように再構成されると、敵対者は、第2のPUF出力値を取得しようと試みる可能性がある。しかしながら、第2のPUF出力値は、第2の復号鍵が検証システムに提供されるまでフィールドで生成されないため、偽造者は、リバースエンジニアリングを開始するために、検証システムが第2の復号鍵で再構成されるまで待機しなければならない。これは、(1)検証システムが第2の復号鍵および第2の暗号化ヘルパーデータブロックの使用を開始するとすぐに、第1のPUF出力値のみを有する敵対者の偽造品が機能しなくなること、(2)敵対者が、第2のPUF出力値を侵害するために労力および出費を繰り返さなければならないこと、の2つの注目すべき効果を有する。暗号化ヘルパーデータブロックおよび関連する鍵の数は、(メモリの制約内で)任意に多くなり得るため、偽造者は、リバースエンジニアリングプロセスを何度も繰り返さなければならず、偽造を継続するために要求される労力が倍増する。
【0008】
図1A図1Cは、認証システムを図示する。図1Aでは、認証システム100は、システム110と、ホストプロセッサ120と、更新システム125と、を備える。システム110は、不揮発性メモリ(NVM)130と、プロセッサ150と、物理複製困難関数(PUF)回路180と、インターフェース115と、を含む。NVM130、プロセッサ150、およびPUF回路180は、証明集積回路111の実装に含まれ得る。ホストプロセッサ120は、検証ソフトウェア(またはファームウェア)121を含む。更新システム125は、複数の復号鍵171~173を含む。
【0009】
システム110は、インターフェース115を介してホストプロセッサ120に動作可能に結合されている。システム110は、少なくともシステム110をホストプロセッサ120に対して認証するために、ホストプロセッサ120に対して動作可能に結合されている。ホストプロセッサは、少なくともシステム110が真正であることを検証するための検証ソフトウェア121を含む。システム110は、例えば、プリンタカートリッジであり得る。ホストプロセッサ120は、プリンタが偽造プリンタカートリッジを使用していないことを保証するための、例えば、システム110を認証するプリンタの一部であり得る。
【0010】
ホストプロセッサ120は、更新システム125に動作可能に結合されている。ホストプロセッサ120は、例えば、検証ソフトウェア121への更新ならびに/またはホストプロセッサ120および/もしくはシステム110を含むデバイスを操作する追加情報を受信するために、更新システム125に動作可能に結合されている。ホストプロセッサ120は、ネットワーク(図1A図1Cには示されていない)を介して更新システム125に動作可能に結合され得る。ホストプロセッサ120は、ホストプロセッサ120と更新システム125との間の通信を提供することができる任意の手段によって、更新システム125に動作可能に結合され得る。実施形態では、更新システム125は、インターネット接続サーバ上で実行されるソフトウェアプロセスであり、ホストプロセッサ120と更新システム125との間の通信は、処理ノード、ルータ、ゲートウェイ、それらの組み合わせを含む様々なネットワーク要素間でデータを搬送するための物理的および/または無線データリンクを含む、有線および/または無線通信ネットワークを含み得、ローカルエリアネットワーク、ワイドエリアネットワーク、およびインターネットワーク(インターネットを含む)を含み得る。データを搬送するための物理メディア、追加のプロセッサ、ルータ、ゲートウェイ、ならびに物理的および/または無線データリンクなどの他の要素は、ホストプロセッサ120および更新システム125との間の通信を容易にするために存在し得るが、明確にするために省略されている。
【0011】
システム110のプロセッサ150は、NVM130およびPUF回路180に動作可能に結合されている。プロセッサ150は、インターフェース115に動作可能に結合されている。プロセッサ150は、インターフェース115を介してホストプロセッサ120と通信し得る。実施形態では、PUF回路180は、PUF回路180の物理的特性(例えば、抵抗、静電容量、閾値電圧、接続性など)のチップ固有の変形に基づいて指紋値を生成するために使用される。PUF回路180は、1つ以上の改ざん防止(すなわち、シールド)構造を追加的に含み得る。物理的特性は、製造中に導入されるランダムな物理的要因に依存する。これは、これらの物理的特性におけるチップ間の変形を予測不可能かつ制御不能にし、指紋値を変更せずにPUF回路180および/または改ざん防止構造を重複、複製、または修正することが事実上不可能になる。
【0012】
実施形態では、NVM130は、暗号化ヘルパーデータブロック161~163の複数のセット160でプロビジョニングされ、それらを格納する。本明細書に記載されるように、PUF回路180の役割は、チップ固有のデジタル識別子または指紋を導出するために、製造の変形を活用することである。したがって、指紋は、製造されたPUF回路180の特定のインスタンスに結び付けられている。PUF回路の例は数多くあり、それらの多くは、それ自体で、または任意選択的なチャレンジ刺激169(例えば、電圧、電流、デジタル値など)が提供された後に、ノイズの多いビットストリングを生成するように構成されている。ノイズの多いビットストリームは、典型的には、PUF応答と称される。刺激は、典型的には、PUFチャレンジ(別名、PUFチャレンジ刺激)と称される。例えば、PUF回路180は、ノイズの多いビットストリングを生成するように、制御または「チャレンジ」され得る。PUF回路180が複数回チャレンジされるとき、PUF回路180は、異なるノイズの多いビットストリームを1回以上生成し得る。これらのノイズの多いビットストリームの相違を、PUF回路180によって出力される単一の安定した指紋値に解読することは、ヘルパーデータを使用して解読される。ヘルパーデータは、例えば、安定したビットインジケータ、エラー訂正コードなどを含み得る。ヘルパーデータは、より正式には、Armkenecht らの「A Formal Foundation for the Security Features of Physical Functions」,Proceedings 2011 IEEE Symposium on Security and Privacy,397頁~412頁,2011で定義されており、これは、あらゆる目的のために参照により本明細書に組み込まれる。
【0013】
図1Bに少なくとも部分的に図示された実施形態では、検証ソフトウェア121を実行しているホストプロセッサ120は、第1の復号鍵171でプロビジョニングされる。ホストプロセッサ120は、更新システム125によって復号鍵171を提供され得る。ホストプロセッサ120は、図1A図1Cに示されていない初期構成/製造システムによって復号鍵171を提供され得る。認証シーケンスの開始前または開始近くで、復号鍵171は、インターフェース115を介してホストプロセッサ120上で実行している検証ソフトウェア121によってプロセッサ150に通信される。プロセッサ150は、暗号化ヘルパーデータブロック161を復号化するために、復号鍵171を使用する。本明細書に記載されるように、ホストプロセッサ120には、他の暗号化ヘルパーデータブロック162~163を復号化する復号鍵172~173が提供されないため、復号鍵171が、他の暗号化ヘルパーデータブロック162~163を復号化するために、使用することができないことに留意されたい。代替的な実施形態では、ヘルパーデータブロックのうちの1つ(例えば、ヘルパーデータブロック161)は、非暗号化フォーマットで格納される場合があり、後続のブロック(例えば、暗号化ヘルパーデータブロック162~163)のみが暗号化フォーマットで格納されることに留意されたい。これは、例えば、(非暗号化ヘルパーデータブロックを利用する)初期シリコンを分析する敵対者が、後続のデータブロックに復号プロセスが必要であることを認識しないようにするために行われる場合がある。
【0014】
本明細書に記載されるように、ホストプロセッサ120上で実行している検証ソフトウェア121は、インターフェース115を介してシステム110に復号鍵171を提供する。本明細書において考察されるように、復号鍵171は、「Nの1」であり、ここで、「N」は、少なくとも2である。第1の復号鍵171を使用して、プロセッサ150は、暗号化ヘルパーデータブロック161を復号化する。プロセッサ150は、復号化ヘルパーデータ(別名、復号化バージョン)をPUF回路180に提供する。第1の復号化ヘルパーデータを使用して、PUF回路180は、第1のヘルパーデータブロックに関連付けられた第1のPUF出力値を生成する。プロセッサ150は、認証プロセスの一部として、この第1のPUF出力値を、単独で、または他の鍵データ(例えば、NVMコアから受信された)と組み合わせて使用する。特に、プロセッサ150は、検証ソフトウェア121を実行しているホストプロセッサ120に対してシステム110を認証するために、この第1のPUF出力値を使用する。
【0015】
PUF出力値が認証プロセスで使用され得ることによるアプローチは、数多く存在する。例えば、第1のPUF出力値は、私有鍵として(または私有鍵導出プロセスへの入力として)使用され得、検証ソフトウェア121は、システム110の真正性を検証するために、チャレンジ/応答プロトコル(例えば、標準の「SSH」プロトコルによって使用される公開/私有認証プロセスと同様)を利用する場合がある。他のアプローチは、公開鍵/私有鍵ではなく対称鍵または事前共有鍵に依存する場合があり、この場合、PUF出力は、鍵として、共有秘密として、または鍵/秘密導出プロセスへの入力として再び使用され得る。他のアプローチは、PUF出力値に基づいて、システム110内の異なるサブシステムを選択的に有効または無効にする場合がある。一般に、本明細書に記載されるような暗号化ヘルパーデータブロックの使用は、それ自体がPUF技術と互換性がある任意の認証プロセスと互換性を持たせることができる。
【0016】
検証ソフトウェア121は、暗号化ヘルパーデータブロック162~163のための復号鍵172~173を最初は提供されないので、敵対者は、「N-1」ヘルパーデータブロック162~163を復号化することができない。換言すれば、たとえ敵対者がシステム110のNVMを完全に侵害し、それによってそのすべてのコンテンツを知っていたとしても、敵対者は、検証ソフトウェア121に復号鍵172(次いで、認証システム100に提供される)が提供されるまで、暗号化ヘルパーデータブロック162に関連付けられる第2のPUF出力値を決定することができない。同様に、敵対者は、検証ソフトウェア121に復号鍵173が提供されるまで、暗号化ヘルパーデータブロック163に関連付けられた第3のPUF出力値を決定することができないなどである。
【0017】
したがって、例えば、敵対者が、暗号化ヘルパーデータブロック161に関連付けられた第1のPUF出力値に加えて、すべてのNVMコンテンツ(暗号化ヘルパーデータブロック162および163を含む)を取得し、システム110の互換性のある複製を送り出す場合、ホストプロセッサ120上で実行している検証ソフトウェア121は、(例えば、更新システム125を介して)異なる暗号化ヘルパーデータブロック161~163を復号化する異なる復号鍵172~173の使用を開始するために、更新され得る。複製されたチップは、もはや互換性がなくなる。敵対者がNVMからの暗号化ヘルパーデータブロック161~163のコピーを有するとしても、そのデータは、NVMのコンテンツとは異なり、PUF回路180自体は複製可能ではないので、互換性のある部分では有用ではない。
【0018】
このプロセスは、図1Bおよび図1Cを参照してさらに図示されている。図1Bでは、認証システム101は、暗号化ヘルパーデータブロック161を復号化するために使用され得る復号鍵171でプロビジョニングされた検証ソフトウェア121を含む。検証ソフトウェア121は、暗号化ヘルパーデータブロック162を復号化するために使用され得る復号鍵172、または暗号化ヘルパーデータブロック163を復号化するために使用され得る復号鍵173でプロビジョニングされていない。
【0019】
実施形態では、復号鍵171は、認証プロセスの一部としてシステム110に提供されている(鍵1 171からの点線の矢印によって図1Bに図示される)。他の実施形態では、復号鍵171は、認証プロセスの前に(例えば、電源投入またはリセットプロセスの一部として)システム110に提供されている。プロセッサ150は、第1の暗号化ヘルパーデータブロック161を復号化するために、復号鍵171を使用する。第1の復号化ヘルパーデータブロック181は、PUF回路180に提供されている。チャレンジ刺激169は、任意選択的に、PUF回路180に提供され得る。実施形態では、チャレンジ刺激169は、暗号化ヘルパーデータブロック161、NVM130内の別の暗号化ソース、および/または検証ソフトウェア121から復号化され得る。換言すれば、ヘルパーデータブロック181とチャレンジ刺激169との組み合わせは、暗号化されて、NVM130に格納され得る。検証ソフトウェア121からであろうとNVM130からであろうと、チャレンジ刺激169は、同じ復号化ヘルパーデータブロック181を使用しながら、PUF回路180が複数の異なる指紋値を生成することを可能にする。これらの複数の異なる指紋値は、認証スキームの一部としてソフトウェア121によって使用され得る。
【0020】
PUF回路180は、第1の復号化ヘルパーデータブロック181を使用して、第1のPUF出力値185を生成する。PUF回路180は、第1のPUF出力値185をプロセッサ150に提供する。本明細書に記載されるように、プロセッサ150は、システム110と検証ソフトウェア121を実行しているホストプロセッサ120との間の認証プロセスにおいて、第1のPUF出力値185を使用し得る。
【0021】
図1Cでは、認証システム102は、暗号化ヘルパーデータブロック162を復号化するために使用され得る第2の復号鍵172でプロビジョニングされた検証ソフトウェア121を含む。検証ソフトウェア121は、任意選択的に、暗号化ヘルパーデータブロック161を復号化するために使用され得る第1の復号鍵171でプロビジョニングされ得る。検証ソフトウェア121は、暗号化ヘルパーデータブロック163を復号化するために使用され得る復号鍵173でプロビジョニングされていない。
【0022】
実施形態では、復号鍵172は、認証プロセスの一部としてシステム110に提供されている(鍵2 172からの点線の矢印によって図1Cに図示される)。他の実施形態では、暗号鍵172は、認証プロセスの前に(例えば、電源投入またはリセットプロセスの一部として)システム110に提供されている。プロセッサ150は、第2の暗号化ヘルパーデータブロック162を復号化するために、復号鍵172を使用する。第2の復号化ヘルパーデータブロック182は、PUF回路180に提供されている。チャレンジ刺激169は、任意選択的に、PUF回路180に提供され得る。実施形態では、チャレンジ刺激169は、暗号化ヘルパーデータブロック162、NVM130内の別の暗号化ソース、および/または検証ソフトウェア121から復号化され得る。換言すれば、ヘルパーデータブロック182とチャレンジ刺激169との組み合わせは、暗号化されて、NVM130に格納され得る。検証ソフトウェア121からであろうとNVM130からであろうと、チャレンジ刺激169は、同じ復号化ヘルパーデータブロック182を使用しながら、PUF回路180が複数の異なる指紋値を生成することを可能にする。これらの複数の異なる指紋値は、認証スキームの一部としてソフトウェア121によって使用され得る。
【0023】
PUF回路180は、第2の復号化ヘルパーデータブロック182を使用して、第2のPUF出力値186を生成する。PUF回路180は、第2のPUF出力値186をプロセッサ150に提供する。本明細書に記載されるように、プロセッサ150は、システム110と検証ソフトウェア121を実行しているホストプロセッサ120との間の認証プロセスにおいて、第2のPUF出力値186を使用することができる。
【0024】
図2は、認証システムの動作方法を図示するフローチャートである。図2に図示されるステップは、認証システム100、認証システム101、認証システム102、および/またはそれらの構成要素のうちの1つ以上によって実行され得る。第1の復号鍵は、検証システムから受信される(202)。例えば、システム110は、検証ソフトウェア121を実行しているホストプロセッサ120から、暗号化ヘルパーデータブロック161を復号化するために使用され得るが、他の暗号化ヘルパーデータブロック162~163を復号化するためには使用されない第1の復号鍵171を受信し得る。いくつかの実施形態では、後続の暗号化ヘルパーデータブロック162~163は、第1の復号鍵171を含む復号鍵のセットに依存することに留意されたい。例えば、暗号化データブロック161は、第1の復号鍵171のみを要求する場合がある一方、第2のブロック162は、第1の復号鍵171および第2の鍵値の両方を要求するなどである。
【0025】
第1の復号鍵を使用して、不揮発性メモリからの物理複製困難関数(PUF)回路ヘルパーデータの第1のブロックを復号化する(204)。例えば、第1の復号鍵171を使用して、プロセッサ150は、暗号化ヘルパーデータブロック161を不揮発性メモリ130から取得し、暗号化ヘルパーデータブロック161を復号化し得る。PUF回路によって、PUF回路ヘルパーデータの第1のブロックは、第1のPUF回路出力値を生成するために使用される(206)。例えば、PUF回路180は、第1のPUF出力値185を生成するために、復号化ヘルパーデータブロック181を使用し得る。
【0026】
第1のPUF回路出力値に基づいて、第1の認証値は、導出され、検証システムに提供される(208)。例えば、PUF出力値185に基づいて、プロセッサ150は、検証ソフトウェア121を実行しているホストプロセッサ120に認証値を提供し得る。認証値は、例えば、システム110を認証するために使用される、復号化値、暗号化値、トークン、鍵分割値、チャレンジ/応答プロトコルの結果などであり得る。実施形態では、第1のPUF回路出力値は、それ自体で、または他のデータと組み合わせて、第1の認証値を生成するために、チャレンジ/応答プロトコル中にそれ自体が使用される秘密鍵または私有鍵のいずれかの生成または導出に寄与する。
【0027】
検証システムから第1の復号鍵を受信した後に、第2の復号鍵は、検証システムから受信される(210)。例えば、復号鍵171を受信した後に、システム110は、検証ソフトウェア121を実行しているホストプロセッサ120から、暗号化ヘルパーデータブロック162を復号化するために使用することができるが、他の暗号化ヘルパーデータブロック161または163を復号化するためには使用することができない第2の復号鍵172を受信し得る。例では、検証ソフトウェア121は、第1のPUF出力値185が敵対者および/または偽造者によって侵害された後に、または他の方法で、決定された後に、第2の復号鍵172でプロビジョニングされる。次いで、この第2の復号鍵172は、第1の復号鍵171の代わりに、認証プロセスの一部としてシステム110に提供される。別の例では、検証ソフトウェア121は、選択された期間(例えば、1年)の後に、第2の復号鍵172でプロビジョニングされる。その選択された期間の後に、次いで、この第2の復号鍵172は、第1の復号鍵171の代わりに、認証プロセスの一部としてシステム110に提供される。いくつかの実施形態では、システム110が第2の復号鍵172を受信した後に、認証プロセスは、第1の復号鍵171および第2の復号鍵172の両方に依存し得ることに留意されたい。
【0028】
第2の復号鍵を使用して、不揮発性メモリからのPUF回路データの第2のブロックを復号化する(212)。例えば、第2の復号鍵172を使用して、プロセッサ150は、暗号化ヘルパーデータブロック162を不揮発性メモリ130から取得し、暗号化ヘルパーデータブロック162を復号化し得る。PUF回路によって、PUF回路ヘルパーデータの第2のブロックは、第2のPUF回路出力値を生成するために使用される(214)。例えば、PUF回路180は、第2のPUF出力値186を生成するために、復号化ヘルパーデータブロック182を使用し得る。
【0029】
第2のPUF回路出力値に基づいて、第2の認証値は、導出され、検証システムに提供される(216)。例えば、PUF出力値186に基づいて、プロセッサ150は、検証ソフトウェア121を実行しているホストプロセッサ120に認証値を提供し得る。認証値は、例えば、システム110を認証するために使用される、復号化値、暗号化値、トークン、鍵分割値、チャレンジ/応答プロトコルの結果などであり得る。実施形態では、第2のPUF回路出力値は、それ自体で、または他のデータと組み合わせて、第2の認証値を生成するために、チャレンジ/応答プロトコル中にそれ自体が使用される秘密鍵または私有鍵のいずれかの生成または導出に寄与する。
【0030】
したがって、第1のPUF出力値185のみをコピーした偽造システム/集積回路は、これらの偽造品が真正であることを示す検証ホストプロセッサ120をもはやもたらさない。しかしながら、第2の暗号化ヘルパーデータブロック162でプロビジョニングされている真正システム110は、第2のPUF出力値186を生成することができ、認証され得る。
【0031】
敵対者は、第2のPUF出力値186を取得しようとする可能性がある。しかしながら、第2のPUF出力値186は、第2の復号鍵172が検証ソフトウェア121に提供されるまでフィールドで生成されないため、敵対者は、リバースエンジニアリングシステム110を開始するために、検証ソフトウェア121が第2の復号鍵172で再構成されるまで待機しなければならない。したがって、検証ソフトウェア121が第2の復号鍵172および第2の暗号化ヘルパーデータブロック162の使用を開始するとすぐに、第1のPUF出力値185のみを有する偽造品は、機能しなくなる。また、敵対者は、第2のPUF出力値186を侵害するために、第1のPUF出力値185を侵害するために使用される労力および出費を繰り返さなければならない。暗号化ヘルパーデータブロック161~163および関連する復号鍵171~173の数は、任意に多くなり得るため、偽造者は、リバースエンジニアリングプロセスを何度も繰り返さなければならず、それによって、対応する数だけ偽造を継続するために要求される労力が倍増し得る。
【0032】
システム110が敵対者によって複製されていないことを保証することができることに加えて、暗号化ヘルパーデータの概念は、代替的に、真正システム内のファームウェアが許可されていない互換性のあるシステム内にコピーされていないことを保証するために、使用することができる。図3A図3Dは、ソフトウェアコードを認証するシステムを図示する。図3Aでは、システム300は、システム310と、ホストプロセッサ320と、を備える。ホストプロセッサ320内で実行している検証ソフトウェア321は、ヘルパーデータ復号鍵371でプロビジョニングされている。システム310は、不揮発性メモリ(NVM)330と、プロセッサ350と、物理複製困難関数(PUF)回路380と、インターフェース315と、を含む。不揮発性メモリ330は、暗号化ヘルパーデータブロック361および暗号化組み込みソフトウェア351でプロビジョニングされ、それらを格納する。不揮発性メモリ330はまた、システム310の通常の機能を実装する組み込みソフトウェア(別名、ファームウェア)を含む。
【0033】
システム310は、インターフェース315を介してホストプロセッサ320に動作可能に結合されている。システム310は、任意選択的に、システム310をホストプロセッサ320に対して認証し得る。システム310のプロセッサ350は、NVM330およびPUF回路380に動作可能に結合されている。プロセッサ350は、インターフェース315に動作可能に結合されている。プロセッサ350は、インターフェース315を介してホストプロセッサ320と通信し得る。実施形態では、PUF回路380は、PUF回路180を参照して本明細書に記載されるものと同じ方法で指紋値を生成するために使用される。
【0034】
実施形態では、NVM330は、暗号化ヘルパーデータブロック361および暗号化ソフトウェア351でプロビジョニングされ、それらを格納する。ソフトウェア321を実行しているホストプロセッサ320は、ヘルパーデータ復号鍵371でプロビジョニングされている。ホストプロセッサ320は、(図3A図3Dには示されていない)初期構成/製造システム、更新プロセス、および/またはアップグレードプロセスによってヘルパーデータ復号鍵371を提供され得る。ヘルパーデータ復号鍵371は、暗号化ヘルパーデータブロック361を復号化する。ヘルパーデータ復号鍵371は、暗号化ソフトウェア351を復号化しない。ホストプロセッサ320は、暗号化ソフトウェア351を復号化するための鍵を提供されていない。
【0035】
ホストプロセッサ320上で実行しているソフトウェア321は、インターフェース315を介してシステム310にヘルパーデータ復号鍵371を提供する。ヘルパーデータ復号鍵371を使用して、プロセッサ350は、暗号化ヘルパーデータブロック361を復号化する。プロセッサ350は、この復号化ヘルパーデータをPUF回路380に提供する。復号化ヘルパーデータを使用して、PUF回路380は、PUF出力値を生成する。プロセッサ350は、暗号化ソフトウェア351を復号(および任意選択的に実行)するために、このPUF出力値を、単独で、または他の鍵データ(例えば、NVMコアから受信された)と組み合わせて使用する。真正システムのNVM330のコンテンツを単にコピーし、それらのコンテンツを互換性のある(ただし無許可の)システムにインストールしただけの敵対者は、その復号プロセスがシステム310および暗号化ヘルパーデータブロック361に固有である、PUF出力値を要求するため、コピーされたコンテンツ内の暗号化ソフトウェア351を正しく復号化することができない。このようにして、PUF回路および暗号化ヘルパーデータブロックは、真正ファームウェアが、互換性があるが許可されていないシステム内にコピーされることができないことを保証するために、使用することができる。
【0036】
このプロセスは、図3Bおよび図3Cを参照してさらに図示されている。図3Bでは、システム302は、暗号化ヘルパーデータブロック361を復号化するために使用され得るヘルパーデータ復号鍵371でプロビジョニングされたソフトウェア321を含む。ソフトウェア321は、暗号化ソフトウェア351を直接復号化するために使用され得る復号鍵でプロビジョニングされていないことに留意されたい。代わりに、ヘルパーデータ復号鍵371は、暗号化ヘルパーデータブロック361を復号化するためにのみ使用することができ、次に、暗号化ソフトウェア351を復号化するために使用されることができるPUF出力を生成するために、使用することができる。
【0037】
図3Bに図示されるように、ヘルパーデータ復号鍵371は、動作可能に結合されたシステム310(鍵1 371からの点線の矢印によって図3Bに図示される)に提供されている。プロセッサ350は、暗号化ヘルパーデータブロック361を復号化するために、ヘルパーデータ復号鍵371を使用する。復号化ヘルパーデータブロック381は、PUF回路380に提供されている。チャレンジ刺激369は、任意選択的に、PUF回路380に提供され得る。実施形態では、チャレンジ刺激369は、暗号化ヘルパーデータブロック361またはNVM330内の別の暗号化ソースおよび/またはソフトウェア321から復号化され得る。
【0038】
図3Cにおいて、PUF回路380は、復号化ヘルパーデータブロック381を使用して、PUF出力値385を生成する。PUF回路380は、PUF出力値385をプロセッサ350に提供する。実施形態では、プロセッサ350は、暗号化ソフトウェア351を復号化するための鍵として、ここでPUF出力値385を使用し得る。別の実施形態では、プロセッサ350は、PUF出力値385を鍵分割として、またはさもなければ、PUF出力値385に基づいて暗号化ソフトウェア351を復号化する鍵を生成する導出プロセスにおいて使用し得る。実施形態では、復号化ソフトウェア329は、ここでプロセッサ350によって実行され得る。復号化ソフトウェア329は、システム310を認証するためにソフトウェア321によって使用され得る。例えば、ソフトウェア329は、検証ソフトウェア321に戻される認証メッセージを含む、システム310の動作を構成するために、使用することができる。別の実施形態では、復号化ソフトウェア329は、ホストプロセッサ320に戻され、そこで実行される。
【0039】
図3A図3Cは、1つの復号化ヘルパーデータブロック361を使用した結果である1つのPUF出力値385に基づいて、暗号化ソフトウェア351のうちの1つのブロックが復号化されるシステムを図示する。図3Dは、暗号化ヘルパーデータ361~362の複数のブロック360が、暗号化ソフトウェア351~357の複数のブロック359を復号化するために複数のヘルパーデータ復号鍵371~372と組み合わせて使用され得るシステムを図示する。複数のヘルパーデータ復号鍵371~377が、図1A図1Cおよび図2を参照して記載された認証システムと同様の方法で偽造を阻止するために、時間の経過とともに一度に1つずつホストプロセッサ320に解放され得ることも理解されたい。例えば、敵対者は、真正システム310内のすべてのファームウェアをコピーし、互換性を保証するために復号化バージョンのソフトウェア329を含む場合がある。これらの複製されたシステムは、検証ソフトウェアが新しいヘルパーデータ復号鍵372~377(新しい暗号化ヘルパーデータブロック362~367に対応する)を使用して互換性のあるシステムを認証するまで(例えば、1年後)正しく認証する。
【0040】
図4は、ソフトウェアコードの認証方法を図示するフローチャートである。図4に図示されるステップは、システム300、システム301、および/またはそれらの構成要素のうちの1つ以上によって実行され得る。第1の復号鍵は、ホストシステムから受信される(402)。例えば、システム310は、ソフトウェア321を実行しているホストプロセッサ320から、暗号化ヘルパーデータブロック361を復号化するために使用され得るが、暗号化ソフトウェア351を復号化するためには使用されないヘルパーデータ復号鍵371を受信し得る。
【0041】
復号鍵を使用して、不揮発性メモリからの物理複製困難関数(PUF)回路ヘルパーデータのブロックを復号化する(404)。例えば、ヘルパーデータ復号鍵371を使用して、プロセッサ350は、暗号化ヘルパーデータブロック361を不揮発性メモリ330から取得し、暗号化ヘルパーデータブロック361を復号化し得る。PUF回路によって、PUF回路ヘルパーデータの第1のブロックは、PUF回路出力値を生成するために使用される(406)。例えば、PUF回路380は、PUF出力値385を生成するために、復号化ヘルパーデータブロック381を使用し得る。
【0042】
PUF回路出力値に基づいて、第2の復号鍵が生成される(408)。例えば、PUF出力値385に基づいて、プロセッサ350は、暗号化ソフトウェア351を復号化するために使用することができる復号鍵を導出し得る。
【0043】
第2の復号鍵を使用して、不揮発性メモリからの暗号化ブロックソフトウェアコードは、復号化される(410)。例えば、第2の復号鍵としてPUF出力値385を使用して、プロセッサ350は、復号化ソフトウェア329を生成するために、不揮発性メモリ330から暗号化ソフトウェア351を取得し、暗号化ソフトウェア351を復号化し得る。任意選択的に、ソフトウェアコードのブロックに基づいて、システムは、認証される(412)。例えば、復号化ソフトウェア329に基づいて、ソフトウェア321は、システム310が真正であることを検証し得る。この検証は、復号化ソフトウェア329の特性(チェックサムなど)および/または復号化ソフトウェア329の機能(例えば、チャレンジトークンへの正しい応答など)に基づき得る。ソフトウェアコードが、実行される(414)。例えば、プロセッサ350および/またはホストプロセッサ320は、復号化ソフトウェア329を実行し得る。
【0044】
図5は、認証デバイスを構成するためのシステムを図示する。図5では、構成システム500は、システム510と、登録システム520と、更新システム525と、を備える。システム510は、不揮発性メモリ(NVM)530と、プロセッサ550と、物理複製困難関数(PUF)回路580と、インターフェース515と、を含む。実施形態では、NVM530、プロセッサ550、およびPUF回路580は、システム510(例えば、プリンタカートリッジ)内の集積回路511(例えば、認証チップ)の実装に含まれ得る。更新システム525には、複数の暗号鍵571~573が提供される(または生成される)。
【0045】
システム510は、インターフェース515を介して登録システム520に動作可能に結合されている。登録システム520は、暗号化形態でシステム510内に格納される複数のヘルパーデータソリューションを計算するか、または他の方法で、見つけるために、システム510に動作可能に結合される。
【0046】
登録システム520(例えば、デバイス製造中に使用されるテスターハードウェア)は、更新システム525(例えば、1つ以上のテスターハードウェアプラットフォームにセキュリティ鍵を提供することが可能であるLAN接続サーバ)に動作可能に結合されている。登録システム520は、例えば、PUF回路580に関連付けられた複数のヘルパーデータブロックを暗号化するための暗号鍵571~573を受信するために更新システム525に動作可能に結合されている。これらの暗号化ヘルパーデータブロック561~563は、NVM530に格納されている。
【0047】
システム510のプロセッサ550は、NVM530およびPUF回路580に動作可能に結合されている。プロセッサ550は、インターフェース515に動作可能に結合されている。プロセッサ550は、インターフェース515を介して登録システム520と通信し得る。実施形態では、登録システム520は、PUF回路580がPUF回路580の物理的特性(例えば、抵抗、静電容量、閾値電圧、接続性など)のチップ固有の変形に基づいて、複数の安定した指紋値を生成することを可能にする複数のヘルパーデータソリューションを検索するように、PUF回路580に指示する。PUF回路580は、1つ以上の改ざん防止(すなわち、シールド)構造を含み得る。物理的特性は、製造中に導入されるランダムな物理的要因に依存する。これは、これらの物理的特性におけるチップ間の変形を予測不可能かつ制御不能にし、指紋値を変更せずにPUF回路580および/または改ざん防止構造を重複、複製、または修正することが事実上不可能になる。
【0048】
実施形態では、登録システム520は、NVM530内に暗号化ヘルパーデータブロック561~563の複数のブロック560を格納するようにプロセッサ550に指示する。PUF回路580は、デジタル識別子または指紋を導出するために、製造の変形を活用する。したがって、指紋は、製造されたPUF回路580の特定のインスタンスに結び付けられている。PUF回路580は、それ自体で、または任意選択的な刺激569(例えば、電圧、電流、デジタル値など)が提供された後に、ノイズの多いビットストリングを生成するように構成されている。ノイズの多いビットストリームは、典型的には、PUF応答と称される。刺激は、典型的には、PUFチャレンジ(別名、PUFチャレンジ刺激)と称される。
【0049】
実施形態では、システム510は、復号鍵571を使用して復号化することができる第1の暗号化ヘルパーデータブロックで登録システム520によってプロビジョニングされる。登録システム520(例えば、製造テスター)には、更新システム525(例えば、製造テスターのLAN接続サーバ)によって復号鍵571が提供され得る。実施形態では、復号鍵571は、他の暗号化ヘルパーデータブロック562~563を復号化しない。システム510はまた、それぞれ復号鍵572~573を使用して復号化することができる暗号化ヘルパーデータブロック562~563で登録システム520によってプロビジョニングされる。登録システム520には、更新システム525によって復号鍵572~573が提供され得る。実施形態では、復号鍵572~573は、そのそれぞれの復号鍵571~573に関連付けられていない他の暗号化ヘルパーデータブロック562~563を復号化しない。他の実施形態では、後続の暗号化ヘルパーデータブロック562~563は、第1の復号鍵571を含む復号鍵のセットに依存する。例えば、暗号化データブロック561は、第1の復号鍵571のみを要求する場合がある一方、第2のブロック562は、第1の復号鍵571および第2の復号鍵572の両方を要求するなどである。
【0050】
図6は、認証の理由で、または認証されたソフトウェアコードを実行するために、複数の暗号化ヘルパーデータ画像でシステムを登録する方法を図示するフローチャートである。図6に図示されるステップは、構成システム500および/またはその構成要素のうちの1つ以上によって実行され得る。PUF回路と、不揮発性メモリと、を含む、集積回路が、受信される(602)。例えば、構成システム500は、集積回路511(例えば、認証IC)のインスタンスを含むシステム510(例えば、プリンタカートリッジ)のインスタンスを受信し得る。
【0051】
ランダム検索を使用して、PUF回路が第1のヘルパーデータを使用して第1の安定した出力値を提供することを可能にする第1のヘルパーデータを見つける(604)。例えば、登録システム520は、PUF回路580から第1の安定した出力値を生成する第1のヘルパーデータブロックを見つけるために、ランダム検索を使用し得る。第1のヘルパーデータブロックは、第1の暗号鍵を使用して暗号化される(606)。例えば、第1のヘルパーデータブロックは、暗号化ヘルパーデータブロック561を生成するために、第1の暗号鍵を使用して暗号化され得る。暗号化された第1のヘルパーデータは、集積回路の不揮発性メモリ内に格納される(608)。例えば、登録システム520は、暗号化ヘルパーデータブロック561をNVM530内に格納するようにシステム510を制御または指示し得る。実施形態では、暗号および復号鍵は、同じである(すなわち、対称暗号)。別の実施形態では、暗号および復号鍵は、異なる(すなわち、非対称暗号)。
【0052】
ランダム検索を使用して、PUF回路が第2のヘルパーデータを使用して第2の安定した出力値を提供することを可能にする第2のヘルパーデータを見つける(610)。例えば、登録システム520は、PUF回路580から、第1の安定した出力値とは異なる第2の安定した出力値を生成する第2のヘルパーデータブロックを見つけるために、ランダム検索を使用し得る。第2のヘルパーデータブロックは、第2の暗号鍵を使用して暗号化される(612)。例えば、第2のヘルパーデータブロックは、暗号化ヘルパーデータブロック562を生成するために、暗号鍵572を使用して暗号化され得る。暗号化された第2のヘルパーデータは、集積回路の不揮発性メモリ内に格納される(614)。例えば、登録システム520は、暗号化ヘルパーデータブロック562をNVM530内に格納するようにシステム510を制御または指示し得る。
【0053】
上記の方法、システム、およびデバイスは、コンピュータシステムに実装され得るか、またはコンピュータシステムによって格納され得る。上記の方法はまた、非一時的コンピュータ可読媒体に格納され得る。本明細書に記載のデバイス、回路、およびシステムは、当技術分野で利用可能なコンピュータ支援設計ツールを使用して実装され、このような回路のソフトウェア記述を含むコンピュータ可読ファイルによって具体化され得る。これは、認証システム100、認証システム101、認証システム102、システム300、および/または構成システム500のうちの1つ以上の要素、ならびにそれらの構成要素を含むが、これらに限定されない。これらのソフトウェアの記述は、挙動、レジスタ転送、論理構成要素、トランジスタ、およびレイアウトジオメトリレベルの記述であり得る。さらに、ソフトウェアの記述は、記憶媒体に格納されるか、または搬送波によって通信され得る。
【0054】
このような記述が実装され得るデータ形式には、Cなどの挙動言語をサポートする形式、VerilogおよびVHDLなどのレジスタ転送レベル(RTL)言語をサポートする形式、ジオメトリ記述言語をサポートする形式(GDSII、GDSIII、GDSIV、CIF、およびMEBESなど)、ならびに他の好適な形式および言語が含まれるが、これらに限定されない。さらに、機械可読媒体上のこのようなファイルのデータ転送は、インターネット上の多様な媒体を介して、または、例えば、電子メールを介して電子的に行われ得る。物理ファイルは、4mm磁気テープ、8mm磁気テープ、3-1/2インチフロッピー媒体、CD、DVDなどの機械可読媒体に実装され得ることに留意されたい。
【0055】
図7は、回路構成要素720の表現を含む、処理する、または生成するための処理システム700の一実施形態を示すブロック図である。処理システム700は、1つ以上のプロセッサ702、メモリ704、および1つ以上の通信デバイス706を含む。プロセッサ702、メモリ704、および通信デバイス706は、有線および/または無線接続708の任意の好適なタイプ、数、および/または構成を使用して通信する。
【0056】
プロセッサ702は、メモリ704に格納された1つ以上のプロセス712の命令を実行して、ユーザ入力714およびパラメータ716に応答して回路構成要素720を処理および/または生成する。プロセス712は、電子回路を設計、シミュレート、分析、および/もしくは検証するため、ならびに/または電子回路用のフォトマスクを生成するために使用される任意の好適な電子設計自動化(EDA)ツールまたはその一部であり得る。表現720は、図に示されるように、認証システム100、認証システム101、認証システム102、システム300、および/または構成システム500の全部または一部、ならびにそれらの構成要素を記述するデータを含む。
【0057】
表現720は、挙動、レジスタ転送、論理構成要素、トランジスタ、およびレイアウトジオメトリレベルの記述のうちの1つ以上を含み得る。さらに、表現720は、記憶媒体に格納されるか、または搬送波によって通信され得る。
【0058】
表現720が実装され得るデータ形式には、Cなどの挙動言語をサポートする形式、VerilogおよびVHDLなどのレジスタ転送レベル(RTL)言語をサポートする形式、ジオメトリ記述言語をサポートする形式(GDSII、GDSIII、GDSIV、CIF、およびMEBESなど)、ならびに他の好適な形式および言語が含まれるが、これらに限定されない。さらに、機械可読媒体上のこのようなファイルのデータ転送は、インターネット上の多様な媒体を介して、または、例えば、電子メールを介して電子的に行われ得る。
【0059】
ユーザ入力714は、キーボード、マウス、音声認識インターフェース、マイクロフォンおよびスピーカー、グラフィックディスプレイ、タッチスクリーン、または他のタイプのユーザインターフェースデバイスからの入力パラメータを含み得る。このユーザインターフェイスは、複数のインターフェイスデバイスに分散され得る。パラメータ716は、表現720を定義することを助けるために入力される仕様および/または特性を含み得る。例えば、パラメータ716は、デバイスタイプ(例えば、NFET、PFETなど)、トポロジー(例えば、ブロック図、回路記述、概略図など)、および/またはデバイス記述(例えば、デバイス特性、デバイスの寸法、電源電圧、シミュレーション温度、シミュレーションモデルなど)を定義する情報を含み得る。
【0060】
メモリ704は、プロセス712、ユーザ入力714、パラメータ716、および回路構成要素720を格納する非一時的コンピュータ可読記憶媒体の任意の好適なタイプ、数、および/または構成を含む。
【0061】
通信デバイス706は、処理システム700から別の処理もしくは記憶システム(図示せず)に情報を送信し、および/または別の処理もしくは記憶システム(図示せず)から情報を受信する、任意の好適なタイプ、数、および/または構成の有線および/または無線デバイスを含む。例えば、通信デバイス706は、回路構成要素720を別のシステムに送信し得る。通信デバイス706は、プロセス712、ユーザ入力714、パラメータ716、および/または回路構成要素720を受信し、プロセス712、ユーザ入力714、パラメータ716、および/または回路構成要素720をメモリ704に格納させることができる。
【0062】
本発明の上記の説明は、例示および説明の目的で提示されている。網羅的であること、または本発明を開示された正確な形態に限定することを意図するものではなく、上記の教示に照らして他の修正および変形が可能であり得る。実装形態は、本発明の原理およびその実際の用途を最良に説明するために選択および記載されており、それにより、当業者は、企図される特定の使用に適した様々な実施形態および修正で本発明を最大限に利用することができる。添付の特許請求の範囲は、先行技術によって制限される場合を除いて、本発明の他の代替的な実施形態を含むと解釈されるべきであることが意図されている。
図1A
図1B
図1C
図2
図3A
図3B
図3C
図3D
図4
図5
図6
図7