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

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

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

特開2024-32812デバイスの物理的変動に関連する関数に基づくターゲットデータの生成
<>
  • 特開-デバイスの物理的変動に関連する関数に基づくターゲットデータの生成 図1
  • 特開-デバイスの物理的変動に関連する関数に基づくターゲットデータの生成 図2
  • 特開-デバイスの物理的変動に関連する関数に基づくターゲットデータの生成 図3A
  • 特開-デバイスの物理的変動に関連する関数に基づくターゲットデータの生成 図3B
  • 特開-デバイスの物理的変動に関連する関数に基づくターゲットデータの生成 図4A
  • 特開-デバイスの物理的変動に関連する関数に基づくターゲットデータの生成 図4B
  • 特開-デバイスの物理的変動に関連する関数に基づくターゲットデータの生成 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024032812
(43)【公開日】2024-03-12
(54)【発明の名称】デバイスの物理的変動に関連する関数に基づくターゲットデータの生成
(51)【国際特許分類】
   H04L 9/10 20060101AFI20240305BHJP
【FI】
H04L9/10 Z
【審査請求】有
【請求項の数】12
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024006418
(22)【出願日】2024-01-18
(62)【分割の表示】P 2020544757の分割
【原出願日】2019-06-05
(31)【優先権主張番号】62/683,483
(32)【優先日】2018-06-11
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】509285746
【氏名又は名称】クリプトグラフィ リサーチ, インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(74)【代理人】
【識別番号】100140431
【弁理士】
【氏名又は名称】大石 幸雄
(72)【発明者】
【氏名】マーソン,マーク エヴァン
(72)【発明者】
【氏名】ベスト,スコット
(72)【発明者】
【氏名】ハントシュー,ヘレナ
(72)【発明者】
【氏名】ウー,ウィンスロップ ジョン
(57)【要約】
【課題】デバイスの物理的変動に関連する関数に基づくターゲットデータの生成を行う。
【解決手段】デバイスの物理的変動に対応する値を受信することができる。さらに、デバイスの物理的変動に関連するヘルパーデータを受信することができる。結果データを、デバイスの物理的変動に対応する値とヘルパーデータとの組み合わせに基づいて生成することができる。エラー訂正操作を結果データに対して実行して、エラー訂正操作に関連する1つ以上のコードワードを識別することができる。続いて、1つ以上のコードワードに基づいてターゲットデータを生成することができる。
【選択図】図2
【特許請求の範囲】
【請求項1】
デバイスの物理的変動に対応する値を受信することと、
前記デバイスの前記物理的変動に関連するヘルパーデータを受信することと、
前記デバイスの前記物理的変動に対応する前記値と前記ヘルパーデータとの組み合わせに基づいて結果データを生成することと、
処理デバイスによって、前記結果データに対してエラー訂正操作を実行して、前記エラー訂正操作に関連する1つ以上のコードワードを識別することと、
前記1つ以上のコードワードに基づいてターゲットデータを生成することと、を含む、方法。
【請求項2】
前記デバイスの前記物理的変動に対応する前記値は、物理複製困難関数(PUF)の出力に関連しており、前記ターゲットデータは、前記PUFの前記出力および前記ヘルパーデータに基づいてさらに生成される、請求項1に記載の方法。
【請求項3】
前記デバイスのメモリに前記ヘルパーデータを記憶することと、
前記ターゲットデータを生成する要求に応答して、前記メモリから前記ヘルパーデータを取得することと、をさらに含む、請求項1に記載の方法。
【請求項4】
前記結果データは、前記識別された1つ以上のコードワードおよびエラー項に対応し、前記エラー項は、前記デバイスの前記物理的変動の以前の出力およびデバイスの物理的変動に対応する前記値に対応する、請求項1に記載の方法。
【請求項5】
前記結果データに対して前記エラー訂正操作を実行することにより、前記結果データから前記エラー項が除去される、請求項4に記載の方法。
【請求項6】
メモリと、
前記メモリと動作可能に結合された処理デバイスであって、
デバイスの物理的変動に対応する値を受信し、
前記デバイスの前記物理的変動に関連するヘルパーデータを受信し、
前記デバイスの前記物理的変動に対応する前記値と前記ヘルパーデータとの組み合わせに基づいて結果データを生成し、
前記結果データに対してエラー訂正操作を実行して、前記エラー訂正操作に関連する1つ以上のコードワードを識別し、
前記1つ以上のコードワードに基づいてターゲットデータを生成する、処理デバイスと、を備えるシステム。
【請求項7】
前記デバイスの前記物理的変動に対応する前記値は、物理複製困難関数(PUF)の出力に関連しており、前記ターゲットデータは、前記PUFの前記出力および前記ヘルパーデータに基づいてさらに生成される、請求項6に記載のシステム。
【請求項8】
前記処理デバイスはさらに、
前記デバイスのメモリに前記ヘルパーデータを記憶し、
前記ターゲットデータを生成する要求に応答して、前記メモリから前記ヘルパーデータを取得する、請求項6に記載のシステム。
【請求項9】
前記結果データは、前記識別された1つ以上のコードワードおよびエラー項に対応し、前記エラー項は、前記デバイスの前記物理的変動の以前の出力およびデバイスの物理的変動に対応する前記値に対応する、請求項6に記載のシステム。
【請求項10】
前記結果データに対して前記エラー訂正操作を実行することにより、前記結果データから前記エラー項が除去される、請求項9に記載のシステム。
【請求項11】
命令を含む非一時的なコンピュータ可読媒体であって、前記命令は、処理デバイスによって実行されたときに、前記処理デバイスに、
デバイスの物理的変動に対応する値を受信することと、
前記デバイスの前記物理的変動に関連するヘルパーデータを受信することと、
前記デバイスの前記物理的変動に対応する前記値と前記ヘルパーデータとの組み合わせに基づいて結果データを生成することと、
前記結果データに対してエラー訂正操作を実行して、前記エラー訂正操作に関連する1つ以上のコードワードを識別することと、
前記1つ以上のコードワードに基づいてターゲットデータを生成することと、を含む操作を実行させる、非一時的なコンピュータ可読媒体。
【請求項12】
前記デバイスの前記物理的変動に対応する前記値は、物理複製困難関数(PUF)の出力に関連しており、前記ターゲットデータは、前記PUFの前記出力および前記ヘルパーデータに基づいてさらに生成される、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項13】
前記結果データは、前記識別された1つ以上のコードワードおよびエラー項に対応し、前記エラー項は、前記デバイスの前記物理的変動の以前の出力およびデバイスの物理的変動に対応する前記値に対応する、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項14】
前記結果データに対して前記エラー訂正操作を実行することにより、前記結果データから前記エラー項が除去される、請求項13に記載の非一時的なコンピュータ可読媒体。
【請求項15】
ターゲットデータを識別することと、
デバイスの抵抗器の対を識別することと、
前記デバイスの前記抵抗器の対に関連する複数の値を受信することであって、前記複数の値の特定の値は、前記デバイスの前記抵抗器の対のうちの2つの抵抗器間の抵抗の差に基づく、受信することと、
処理デバイスによって、前記ターゲットデータおよび前記デバイスの前記抵抗器の対に関連する前記複数の値に基づいてヘルパーデータを生成することと、を含む、方法。
【請求項16】
前記ターゲットデータおよび前記デバイスの前記抵抗器の対に関連する前記複数の値に基づいて前記ヘルパーデータを生成し、
前記ターゲットデータのビットと一致する前記複数の値のサブセットを識別し、前記ヘルパーデータは、前記複数の値の前記サブセットに関連する前記デバイスの前記抵抗器の対を識別する、請求項15に記載の方法。
【請求項17】
前記ヘルパーデータは、前記ターゲットデータの前記ビットと一致する前記複数の値の前記サブセットの順序をさらに指定する、請求項16に記載の方法。
【請求項18】
生成されるターゲットデータを受信することと、
複数のランダムな値を受信することと、
前記複数のランダムな値および前記ターゲットデータに基づいて1つ以上のコードワードを生成することと、
処理デバイスによって、前記デバイスの物理的変動に対応する出力値、前記ターゲットデータ、および前記1つ以上のコードワードに基づいて、前記デバイスの前記物理的変動に関連するヘルパーデータを生成することと、を含む、方法。
【請求項19】
前記デバイスの物理的変動は、スタティックランダムアクセスメモリ(SRAM)に対応する物理複製困難関数(PUF)に関連する、請求項18に記載の方法。
【請求項20】
前記ヘルパーデータの前記生成は、排他的論理和(XOR)演算に基づく、請求項18に記載の方法。
【請求項21】
抵抗器の複数の対に関連する複数の値を決定することと、
ターゲットデータおよび前記抵抗器の複数の対に関連する前記複数の値に基づくヘルパーデータを受信することと、
処理デバイスによって、前記ヘルパーデータおよび前記抵抗器の複数の対に関連する前記複数の値に基づいて前記ターゲットデータを生成することと、を含む、方法。
【請求項22】
前記複数の値のそれぞれが、前記抵抗器の複数の対のうちの2つのそれぞれの抵抗器間の抵抗の差に対応する、請求項21に記載の方法。
【発明の詳細な説明】
【図面の簡単な説明】
【0001】
本開示は、以下に与えられる詳細な説明から、および本開示の様々な実装の添付図面から、より完全に理解されるであろう。
図1】本開示のいくつかの実施形態による、物理複製困難関数を含む例示的なデバイスを示す。
図2】いくつかの実施形態による、物理複製困難関数を使用することによってヘルパーデータおよびターゲットデータを生成する例示的な方法のフロー図である。
図3A】本開示のいくつかの実施形態による、物理複製困難関数のヘルパーデータを生成する例示的な方法のフロー図である。
図3B】本開示のいくつかの実施形態による、ヘルパーデータの生成を示す。
図4A】本開示のいくつかの実施形態による、物理複製困難関数を使用することによってターゲットデータを生成する例示的な方法のフロー図である。
図4B】本開示のいくつかの実施形態による、ターゲットデータの生成を示す。
図5】本開示のいくつかの実施形態が動作し得るコンピュータシステムの実施形態のブロック図を示す。
【発明を実施するための形態】
【0002】
本開示の態様は、デバイスの物理的変動に関連する関数に基づいてターゲットデータを生成することを対象とする。一般に、半導体デバイスは、半導体デバイスの半導体製造プロセスの結果としての物理的変動を含み得る。物理的変動は、特定の半導体デバイスに固有であり得る。例えば、物理的変動は、半導体デバイスの固有のハードウェア特性または挙動であり得る。物理的変動は、半導体製造プロセスの一部として、半導体デバイスにランダムに導入され得る。半導体デバイスにおけるそのような物理的変動は、物理的変動を表す値を生成する物理複製困難関数(PUF)に関連し得る。
【0003】
物理複製困難関数を使用して、デバイスで操作を実行するために使用されるターゲットデータを生成することができる。例えば、PUFは、特定の半導体デバイスの予測不可能なまたは未知であるが一定の値に対応し得る。PUFに対応する値を使用して、デバイスによって使用される秘密暗号鍵などのターゲットデータを生成することができる。このような暗号鍵は、他の複数のデバイス間で共通である場合がある。様々なデバイスの様々なPUFに対応する値は未知で予測不可能であり得るため、各デバイスのPUFに対応する値を使用する場合、追加のデータ(すなわち、ヘルパーデータ)を使用して、予想されるターゲットデータの生成を容易にすることができる。例えば、ヘルパーデータを使用して、PUFに対応するどの値が選択され、ターゲットデータを生成するために使用されるべきかを決定できる。その結果、対応するヘルパーデータとPUFに対応する値の組み合わせを使用して、PUFに対応する値がデバイス間で異なり得る場合に、各デバイスに同じターゲットデータを生成できる。
【0004】
例として、PUFはスタティックランダムアクセスメモリ(SRAM)の物理的変動に対応し得、ここで、SRAMを含むデバイスの初期化時にSRAMの特定のビットが「0」の値または「1」の値にバイアスされ得る。ヘルパーデータは、ターゲットデータの生成に使用されるPUFに対応する値として、SRAMのどの特定のバイアスされたビットを選択して、使用するべきかを識別できる。ヘルパーデータは、PUFに対応する値が選択された後にPUFによって生成され得、ヘルパーデータは、メモリに記憶され得る。続いて、ヘルパーデータをメモリから取得し、後でPUFに提供することができるので、PUFの対応する値を選択して、同じターゲットデータを生成することができる。その結果、ヘルパーデータを使用して、PUFの反復可能であるがランダムな値の特定のビットを選択し、ターゲットデータを生成できる。
【0005】
PUFに対応する値(すなわち、PUF値)を使用すると、PUFを含むデバイスの製造中に、結果として、PUF値がエクスポートされ得る。さらに、PUFに対応する値の使用は、(例えば、PUFに対応する値で暗号鍵を暗号化するために)追加の操作で使用されてもよい。ただし、デバイスの製造中のPUF値のこのようなエクスポート、または追加の操作でのPUF値の使用は、PUF値を露出し得るので、不正なエンティティがPUF値を取得して、デバイスのセキュリティを危険にさらす場合がある。例えば、PUF値を使用してデバイスで使用される暗号鍵を生成する場合、PUF値がエクスポートされた後、暗号鍵が不正なエンティティによって取得または生成される場合がある。
【0006】
本開示の態様は、例えば(これに限定されないが)SRAMにおける物理的変動に対応するPUFを利用することによって、上記および他の欠陥に対処する。例えば、SRAMエラー訂正操作で使用されるコードワードは、ターゲットデータの値および乱数に基づいて生成することができる。一般に、ヘルパーデータはさらに、ターゲットデータと、ターゲットデータの値と乱数に基づくコードワードとの組み合わせである場合がある。その後、ヘルパーデータを使用してターゲットデータを生成できる。例えば、PUFの出力が受信され、ヘルパーデータと組み合わされてもよい。コードワードを生成するために、PUFの出力とヘルパーデータとの組み合わせに対してエラー訂正操作を実行することができる。その後、コードワードを使用して、対応するターゲットデータを決定できる。
【0007】
本開示の利点には、ターゲットデータにおける改善されたセキュリティが含まれるが、これに限定されない。例えば、PUFの値はエクスポートされないため、不正なエンティティによって取得される可能性が低いので、PUFの値に基づいて生成されるターゲットデータは、PUFの値がエクスポートされる場合よりも安全であると考えられ得る。したがって、操作を実行するときに、PUFを使用して暗号鍵に対応するターゲットデータを生成するデバイスの操作は、より安全であり得る。さらに、第1の顧客向けに製造されたデバイスは、製造時に第1のターゲット値を生成するようにプログラムされてもよく、一方で、第2の顧客向けに製造されたデバイスは、第2のターゲット値を生成するようにプログラムされてもよい。
【0008】
図1は、物理複製困難関数を含む例示的なデバイス100を示す。デバイス100は、集積回路を含むことができ、ここで、集積回路の一部は、ターゲットデータを生成するために使用される物理複製困難関数に対応する物理的変動に関連する。一般に、物理複製困難関数は、限定されるものではないが、スタティックランダムアクセスメモリ(SRAM)PUF(ランダムな電圧オフセットに依存する)、タイミングPUF(予測不可能な競合条件に依存する)、インピーダンスPUF(抵抗、静電容量、またはインダクタンスの不一致に依存する)などに対応する回路とすることができる。このようなPUF回路は、不揮発性メモリに記憶されているヘルパーデータを利用して、PUF回路の出力(例えば、PUF値)の長期安定性を達成できる。
【0009】
図1に示すように、デバイス100は、物理複製困難関数110、メモリ120、およびデバイスコンポーネント130を含むことができる。メモリ120は、デバイスの不揮発性メモリとすることができ、物理複製困難関数110は、集積回路または集積回路の構造もしくは部分に対応することができる。さらに、デバイスコンポーネント130は、暗号操作に関連する機能を実行する回路とすることができる。例えば、暗号操作は、物理複製困難関数110を使用することにより生成されるターゲットデータを使用することにより、入力データを暗号化および/または解読することであり得る。
【0010】
物理複製困難関数110は、PUF110の物理的変動およびメモリ120からのヘルパーデータ140に基づいてターゲットデータ141を生成することができる。例えば、物理複製困難関数110は、ターゲットデータ150を受信することができる。いくつかの実施形態では、ターゲットデータ150は、あるクラスのデバイス用の暗号鍵であり得る。例えば、ターゲットデータ150は、デバイスのクラス内の各デバイス(例えば、デバイス100および他のデバイス)によって使用または生成されることが意図されている暗号クラス鍵であり得る。ターゲットデータ150を受信した後、物理複製困難関数110は、ターゲットデータ150および物理複製困難関数110に関連する物理的変動に対応する値に基づいてヘルパーデータ140を生成することができる。いくつかの実施形態では、物理複製困難関数110の物理的変動は、複数の値に対応する場合がある。例えば、第1の値は、物理複製困難関数110の構造における第1の物理的変動に対応し得、第2の値は、物理複製困難関数110の構造における第2の物理的変動に対応し得る。いくつかの実施形態では、物理複製困難関数110がSRAMに対応する場合、第1の物理的変動は、デバイス100の初期化時または起動時に、SRAMの第1のビットが「0」の値または「1」の値のどちらによりバイアスされているかに対応し得、第2の物理的変動は、デバイス100の初期化時または起動時に、SRAMの第2ビットが「0」の値または「1」の値のどちらによりバイアスされているかに対応し得る。したがって、物理複製困難関数110の構造における異なる物理的変動はそれぞれ、ターゲットデータ150を生成するために使用され得る異なるビットに対応し得る。ヘルパーデータ140は、物理複製困難関数110の異なる物理的変動に対応するどの特定のビットを選択し、かつ使用して、受信したターゲットデータ150を生成すべきかを識別してもよいし、または受信したターゲットデータ150を生成するために使用してもよい。
【0011】
一例として、ターゲットデータ150は、「00110」の値であり得る。物理複製困難関数110は、その異なる物理的変動の結果として値「001111111110」を提供し得る。ヘルパーデータ140は、最初の4ビット「0011」および最後のビット「0」が、ターゲットデータ150を生成するために物理複製困難関数110から選択されるべきであることを識別し得る。ヘルパーデータには特定のビットの利用に対応する情報または他のそのような情報が含まれているため、ヘルパーデータからの情報だけでは、攻撃者またはヘルパーデータを取得できる他のそのような不正なエンティティが所望するターゲット値を明らかにしない。同じまたは代替の実施形態では、ヘルパーデータは、最初の4つのビットを変更せずに選択し得、次に5番目のビットを選択して、反転し得るか、または別のタイプの変更を実行し得るなどの、追加情報を含むことができる。いくつかの実施形態では、物理複製困難関数110がSRAMに対応する場合、ヘルパーデータ150は、以下でさらに詳細に説明するように、コードワードおよび物理複製困難関数110の出力に対応し得る。
【0012】
図1を参照すると、ヘルパーデータ140は、物理複製困難関数110によって生成された後、メモリ120に記憶され得る。その後、デバイスコンポーネント130は、ターゲットデータ150が提供されることを要求し得る。それに応じて、ヘルパーデータ140は、物理複製困難関数110に提供されて、ヘルパーデータ140を生成するために使用された元のターゲットデータ150と一致し得る後続のターゲットデータ141を生成し得る。いくつかの実施形態では、後続のターゲットデータ141は、デバイスコンポーネント130によって使用される暗号鍵、または暗号鍵を生成するために使用される値に対応することができる。
【0013】
図2は、物理複製困難関数を使用することによってヘルパーデータおよびターゲットデータを生成する例示的な方法200のフロー図である。方法200は、ハードウェア(例えば、処理デバイス、回路、専用ロジック、プログラム可能ロジック、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば、処理デバイス上で起動または実行される命令)またはそれらの組み合わせを含み得る処理ロジックによって実行され得る。いくつかの実施形態では、方法200は、図1のデバイス100の物理複製困難関数110および/または他のデバイスコンポーネント130によって実行され得る。
【0014】
図2に示すように、方法200は、ブロック210で、処理ロジックが物理複製困難関数(PUF)にターゲットデータを提供することで開始することができる。例えば、後で複製されることを意図する暗号鍵が、PUFに提供されてもよい。処理ロジックはさらに、ターゲットデータに基づいてPUFからヘルパーデータを生成してもよい(ブロック220)。例えば、ヘルパーデータは、PUFからの値を使用することによってターゲットデータを再現するための追加データを提供することができ、および/またはターゲットデータをPUFの出力値として複製するために選択および使用すべきであるPUFの物理的変動に対応する特定のビットを識別することができる。いくつかの実施形態では、PUFはSRAMに対応し得、ヘルパーデータは、PUFの出力値とコードワードとの組み合わせであり得る。ヘルパーデータの生成に関するさらなる詳細は、図3Aおよび図3Bに関連して説明される。その後、処理ロジックは、ヘルパーデータをメモリに記憶することができる(ブロック230)。ヘルパーデータは、後でターゲットデータを生成するための後続の取得のためにメモリに記憶され得る。処理ロジックはさらに、PUFを用いてターゲットデータを生成する要求を受信することができる(ブロック240)。例えば、ターゲットデータを生成するための要求は、ヘルパーデータが生成されてメモリに記憶された後に受信されてもよい。同じターゲットデータを生成するための要求は、デバイスコンポーネントによる操作で使用されるべきターゲットデータに対応する暗号鍵に対するデバイスコンポーネントからの要求に応答することができる。処理ロジックは、メモリでヘルパーデータをPUFに提供することができる(ブロック250)。例えば、以前に受信されたターゲットデータに基づいてPUFによって以前に生成されたヘルパーデータは、後でPUFに提供され得る。その後、処理ロジックは、PUFおよびヘルパーデータに基づいてターゲットデータを生成することができる(ブロック260)。例えば、ヘルパーデータは、PUFによって受信され、ヘルパーデータを生成するために使用された以前のターゲットデータを反映する、PUFに対応する値を生成または選択するために使用され得る。いくつかの実施形態では、ヘルパーデータは、結果を生成するために、PUFの出力と組み合わされてもよく、ここで、コードワードを取得するために結果に対してエラー訂正が実行される。さらに、コードワードを使用して、ターゲットデータを導出または生成することができる。コードワードからターゲットデータを生成することに関するさらなる詳細は、図4Aおよび図4Bに関連して説明される。コードワードは、エラー訂正操作で使用されるエラー訂正コードであり得る。
【0015】
したがって、デバイスの回路(例えば、PUF)の物理的変動は、複数のビットまたは値を表すことができる。ヘルパーデータは、物理的変動によって表されるビットもしくは値のサブセット、および/またはターゲットデータを生成するために物理的変動によって表されるビットもしくは値と組み合わせて使用される追加データ(例えば、コードワード)を識別するために使用できる。例えば、ヘルパーデータは、物理的変動によって表されるビットの特定の数および順序と、エラー訂正操作で使用されるコードワードを識別することができるので、その数と順序は、エラー訂正操作の実行後のターゲットデータに対応するか、またはそのターゲットデータである。
【0016】
図3Aは、物理複製困難関数のヘルパーデータを生成する例示的な方法300のフロー図である。方法300は、ハードウェア(例えば、処理デバイス、回路、専用ロジック、プログラム可能ロジック、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば、処理デバイス上で起動または実行される命令)またはそれらの組み合わせを含み得る処理ロジックによって実行され得る。いくつかの実施形態では、方法300は、図1のデバイス100の物理複製困難関数110および/または他のデバイスコンポーネント130によって実行され得る。
【0017】
方法300は、SRAMに対応するPUFのヘルパーデータの生成に対応し得る。図3Aに示すように、方法300は、ブロック310で、処理ロジックが、この例では、スタティックランダムアクセスメモリ(SRAM)に対応する物理複製困難関数のターゲットデータを受信することで開始することができる。他の実施形態では、PUFは、ヘルパーデータを利用して安定性を保証する他の任意のタイプのPUF回路(例えば、限定されないが、電圧オフセットベースのPUF、タイミングベースのPUF、またはインピーダンスベースのPUF)に対応し得る。処理ロジックは、乱数生成器からランダムな値を受信することができる(ブロック320)。例えば、PUFを含むデバイスは、1つ以上のランダムな値または数を生成する乱数生成器コンポーネントをさらに含むことができる。その後、処理ロジックは、ランダムな値およびターゲットデータに基づいてエラー訂正に関連するコードワードを生成することができる(ブロック330)。生成されたコードワードは、エラー訂正操作で使用される要素(例えば、コードワード)のセットを含むコードワードベースから選択されてもよい。コードワードベースの第1の部分は、ターゲットデータのビットの値に基づいて選択され得、コードワードベースの第2の部分は、ランダムな値のビットの値に基づいて選択され得る。コードワードベースは、ターゲットデータのビット数に対応するかまたはそれに等しい第1のサブセットと、生成されるランダムな値の数に対応するかまたはそれに等しい第2のサブセットを含み得る。対応するビットの値が「1」である場合、特定のコードワードが選択されてもよく、対応するビットの値が「0」である場合、特定のコードワードは選択されなくてもよい。したがって、第1のサブセットからのコードワードは、「1」であるターゲットデータの対応するビット値に基づいて選択されてもよく、第2のサブセットからのコードワードは、「1」である乱数の対応するビット値に基づいて選択されてもよい。
【0018】
図3Aを参照すると、処理ロジックは、PUFの出力値とコードワードとの間で排他的論理和(XOR)演算をさらに実行して、SRAMに対応するPUFのヘルパーデータを生成することができる(ブロック340)。例えば、PUFの出力値は、ヘルパーデータを生成するために、生成されたコードワードと組み合わされ得る。続いて、ヘルパーデータは、PUFを含むデバイスの不揮発性メモリに記憶され得る。
【0019】
図3Bは、ヘルパーデータの生成を示す。一般に、ヘルパーデータは、図3Aに関して説明したように、SRAMに対応するPUFに対して生成され得る。示されるように、利用可能なコードワードベース390が提供され得る。利用可能なコードワードベース390は、エラー訂正操作で使用され得る複数のコードワードを含み得る。ターゲットデータ391も受信され得、乱数392が生成され得る。ターゲットデータ391および乱数392のビットの値に基づいて、利用可能なコードワードベース390とは異なるコードワードを選択して、エラー訂正操作のために生成および使用されるヘルパーデータで使用することができる。例えば、利用可能なコードワードベース390は、ターゲットデータ391の利用可能な各ビットに対するコードワードと、乱数392の利用可能な各ビットに対するコードワードとを含み得る。示されるように、ターゲットデータ391の最初のビットは0であるので、コードワードCを使用しなくてよい(例えば、「0」の値とコードワードの組み合わせはゼロである)。さらに、ターゲットデータ391の次のビットは「1」であるため、コードワードCを使用することができる。ターゲットデータ391の残りのビットの値に基づいて、コードワードCを使用することができ、他のコードワードは使用しなくてよい(例えば、7番目のビットは「1」の値であり、他のビットは「0」の値にある)。さらに、乱数392は、第1、第2、および第4のビットの値を含むので、次に、コードワードはd、d、およびdを使用することができる。したがって、結果として得られるコードワードベース393は、コードワードC、C、d、d、およびdを含むことができる。次に、結果として得られるコードワードベース393は、XOR演算に基づいてPUFの出力と組み合わされ、ヘルパーデータを生成することができる。
【0020】
図4Aは、物理複製困難関数を使用することによってターゲットデータを決定する例示的な方法400のフロー図である。方法400は、ハードウェア(例えば、処理デバイス、回路、専用ロジック、プログラム可能ロジック、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば、処理デバイス上で起動または実行される命令)またはそれらの組み合わせを含み得る処理ロジックによって実行され得る。いくつかの実施形態では、方法400は、図1のデバイス100の物理複製困難関数110および/または他のデバイスコンポーネント130によって実行され得る。
【0021】
図4Aに示すように、方法400は、ブロック410で、処理ロジックが、この例では、SRAMに対応する物理複製困難関数の出力を受信することで開始することができる。例えば、デバイスコンポーネントは、ターゲットデータを要求することができる。いくつかの実施形態では、ターゲットデータは、デバイスコンポーネントによって使用される暗号鍵、または暗号鍵を生成するために使用される値に対応し得る。ターゲットデータは、デバイスコンポーネントによって使用される任意の他のタイプの秘密データに対応する場合がある。処理ロジックはさらに、PUFのヘルパーデータを受信することができる(ブロック420)。例えば、ヘルパーデータは、不揮発性メモリから取得できる。処理ロジックはさらに、PUFの出力とPUFのヘルパーデータとの間でXOR演算を実行することができる(ブロック430)。例えば、PUFの物理的変動に対応する値およびヘルパーデータを組み合わせて結果を生成することができる。さらに、処理ロジックは、XOR演算の結果に対してエラー訂正を実行して、コードワードを識別することができる(ブロック440)。ヘルパーデータは、コードワードと、コードワードが生成されたときのPUFの以前の出力との組み合わせとすることができるため、ヘルパーデータとPUFの出力との間のXOR演算の結果は、ヘルパーデータ、PUFの以前の出力、およびPUFの現在の出力の組み合わせに対応し得る。PUFの以前の出力とPUFの現在の出力とのXORの組み合わせは、エラー項になる場合がある。例えば、エラー訂正操作は、XOR演算の結果(例えば、PUFの現在の出力とPUFの以前の出力との組み合わせ)からエラー項を削除し、エラー訂正操作の結果がコードワードになるようにすることができる。その後、処理ロジックは、識別されたコードワードに基づいてターゲットデータを決定することができる(ブロック450)。ターゲットデータは、どのコードワードが使用されたかに基づいて生成され得る。例えば、コードワードは、コードワードに符号化された元のランダムな値を取得するために復号化され得る。次に、ターゲットデータのビットによって代用または置換された元のランダムな値のビットを表すことができる復号値の第1のビット(例えば、第1のビットグループ)を読み取ることによって、ターゲットデータを取得することができる。
【0022】
したがって、PUFの現在の出力とヘルパーデータとの組み合わせに対してエラー訂正操作を実行することによって、ターゲットデータを生成することができる。エラー訂正操作を使用すると、PUFの現在の出力とヘルパーデータとの組み合わせからエラー項が削除され、以前にヘルパーデータを生成するためにターゲットデータが受信されたときに生成されたコードワードが生成され得る。その後、コードワードを使用して、ターゲットデータを決定することができる。
【0023】
図4Bは、ターゲットデータの生成を示す。一般に、ターゲットデータは、図4Aに関して説明したように、SRAMに対応するPUFを使用することによって生成され得る。示されるように、PUF460は、現在のPUF出力461を生成し得る。さらに、現在のPUF出力461およびヘルパーデータ462(例えば、図3Aおよび図3Bに関して説明したように、コードワードおよび以前のPUF出力に基づくヘルパーデータ)は、結果データ464を生成するためにXOR演算に基づいて組み合わされ得る。いくつかの実施形態では、結果データ464は、エラー項(例えば、以前のPUF出力および現在のPUF出力)ならびにターゲットデータの値および乱数に基づいて以前に選択または生成されたコードワードに対応する値であり得る。例えば、結果データ464は、現在のPUF出力461、コードワード、およびコードワードが選択されたときの以前のPUF出力のXORの組み合わせであり得る。現在のPUF出力461と以前のPUF出力とのXORの組み合わせは、エラー項に対応し得る。エラー訂正操作465は、結果データ464に対して実行され、コードワード466が残るように、エラー項(例えば、現在のPUF出力461と以前のPUF出力とのXORの組み合わせ)を除去することができる。その後、ターゲットデータ467は、コードワード466から導出され得る。
【0024】
いくつかの実施形態では、PUFの物理的変動は、一対の名目上同一の抵抗器間の抵抗の差に対応し得る。例えば、「0」の値は、第1の抵抗器と第2の抵抗器との間の(すなわち、製造中に生じたランダムな変動による)抵抗の差が所定の閾値よりも大きい場合に一対の抵抗器に割り当てられ得、「1」の値は、第1の抵抗器と第2の抵抗器との間の抵抗の差が所定の閾値よりも小さい場合に一対の抵抗器に割り当てられ得る。いくつかの実施形態では、一対の抵抗器間の抵抗の差が「0」および「1」の値に対応する閾値のいずれも超えない場合、特定対の抵抗器は、PUFの値の決定に使用されなくてもよい。そのような例では、ヘルパーデータは、抵抗器の対を識別することができ、ここで、対応する対の抵抗の差は、その抵抗器の対から「0」または「1」の値を決定するために使用できるほど十分に大きい。ヘルパーデータは、ターゲットデータを決定するために使用される抵抗器の対に関連する値の順序をさらに識別することができる。同じまたは代替の実施形態では、PUFの物理的変動は、2つの信号経路間の競合条件に対応し得る。例えば、第1の経路が第2の経路の前に競合条件を満たす場合に「0」の値が割り当てられ得、第2の経路が第1の経路の前に競合条件を満たす場合に「1」の値が割り当てられ得る。そのような例では、ヘルパーデータは、ターゲットデータを生成するために使用できる経路の対を識別できる。
【0025】
いくつかの実施形態では、ヘルパーデータは、PUFの第1の出力値とコードワードとの間の組み合わせを表す値であり得る。コードワードは、ターゲットデータのビットを使用することによって生成され得る。いくつかの実施形態では、値は、PUFの第1の出力値とコードワードとの排他的論理和(XOR)の組み合わせであり得る。次に、PUFの第2のファジー読み取り(つまり、不安定であり、後続の読み取り間で異なる可能性があるいくつかのビットを含む読み取り)の出力でヘルパーデータを使用して、次いで、エラー項を削除するために結果にエラー訂正を実行することによって、コードワードを回復することができる。次に、結果のコードワードからターゲットデータを回復することができる。
【0026】
図5は、本明細書で論じられる方法論のうちのいずれか1つ以上を機械に実行させるための命令のセットが中で実行され得るコンピュータシステム500の例を示す。代替の実装では、機械は、LAN、イントラネット、エクストラネット、および/またはインターネット内の他の機械に接続(例えば、ネットワーク化)されてもよい。機械は、クライアントーサーバネットワーク環境内のサーバもしくはクライアント機械の能力内で、ピアツーピア(または分散型)ネットワーク環境内のピア機械として、あるいはクラウドコンピューティングインフラストラクチャもしくは環境内のサーバまたはクライアント機械として動作することができる。
【0027】
機械は、パーソナルコンピューター(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、Webアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはその機械によって行われるアクションを指定する命令のセットを(順次または別の方法で)実行できる任意の機械とすることができる。さらに、単一の機械が示されているが、「機械」という用語は、本明細書で論じられる方法論のいずれか1つ以上を実行する命令のセット(または複数のセット)を個別または共同で実行する機械の任意の集まりも含むとみなされるものとする。
【0028】
例示的なコンピュータシステム500は、処理デバイス502、メインメモリ504(例えば、読み取り専用メモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)もしくはラムバスDRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ506(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、およびデータストレージデバイス518を含み、これらは、バス530を介して互いに通信する。
【0029】
処理デバイス502は、マイクロプロセッサ、中央処理装置などの1つ以上の汎用処理デバイスを表す。より具体的には、処理デバイスは、複雑命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサとすることができる。処理デバイス502はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどの1つ以上の専用処理デバイスであってもよい。処理デバイス502は、本明細書で論じられる操作およびステップを実行するための命令526を実行するように構成される。
【0030】
コンピュータシステム500は、ネットワーク520上で通信するためのネットワークインターフェースデバイス508をさらに含み得る。コンピュータシステム500はまた、ビデオディスプレイユニット510(例えば、液晶ディスプレイ(LCD)またはブラウン管(CRT))、英数字入力デバイス512(例えば、キーボード)、カーソル制御デバイス614(例えば、マウス)、グラフィック処理ユニット522、信号生成デバイス516(例えば、スピーカ)、グラフィック処理ユニット522、ビデオ処理ユニット528、およびオーディオ処理ユニット532を含むことができる。
【0031】
データ記憶デバイス518は、本明細書に説明される方法論または機能のいずれか1つ以上を具現化する命令またはソフトウェア526の1つ以上のセットが記憶される機械可読記憶媒体524(コンピュータ可読媒体としても知られる)を含むことができる。命令526はまた、コンピュータシステム500によるその実行中、メインメモリ504内および/または処理デバイス502内に完全にまたは少なくとも部分的に存在し得、メインメモリ504および処理デバイス502はまた、機械可読記憶媒体を構成する。
【0032】
一実装では、命令526は、本明細書で説明されるような機能を実装するための命令を含む。機械可読記憶媒体524は、例示的な実装では単一の媒体であるように示されているが、「機械可読記憶媒体」という用語は、1つ以上の命令セットを記憶する単一の媒体または複数の媒体(例えば、集中型もしくは分散型データベース、ならびに/または関連するキャッシュおよびサーバ)を含むとみなされるべきである。「機械可読記憶媒体」という用語はまた、機械による実行のための命令セットを記憶または符号化することができ、機械に本開示の方法論のいずれか1つ以上を実行させる任意の媒体を含むとみなされるものとする。したがって、「機械可読記憶媒体」という用語は、限定ではないが、固体メモリ、光学媒体、および磁気媒体を含むとみなされるものとする。
【0033】
前述の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズムおよび記号表現に関して提示されてきた。これらのアルゴリズムの説明と表現は、データ処理技術分野の当業者が自身の作業の内容を他の当業者に最も効果的に伝えるために使用する方法である。アルゴリズムは、ここで、一般に、望ましい結果につながる自己矛盾のない一連の操作であると考えられている。操作は、物理量の物理的な操作を必要とするものである。通常、必ずしもではないが、これらの量は、保存、結合、比較、および別の方法で操作が可能な電気信号または磁気信号の形態をとる。主に一般的な使用の理由から、これらの信号をビット、値、要素、記号、文字、用語、数値などと呼ぶことが時には便利であることが判明している。
【0034】
ただし、これらの用語および類似の用語はすべて適切な物理量に関連付けられるべきものであり、これらの量に適用される便利なラベルにすぎないことに留意されたい。上記の議論から明らかなように別段明記しない限り、説明全体を通して、本開示は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表現されるデータを、コンピュータシステムのメモリもしくはレジスタまたは他のそのような情報記憶デバイス内の物理量として同様に表現される他のデータに操作および変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよびプロセスに言及し得ることが理解される。
【0035】
本開示はまた、本明細書の動作を実行するための装置に関する。この装置は、意図された目的のために特別に構築されてもよく、またはコンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化または再構成される汎用コンピュータを備えてもよい。このようなコンピュータプログラムは、コンピュータシステムバスにそれぞれ接続された、フロッピーディスク、光ディスク、CD-ROM、および光磁気ディスクを含む任意のタイプのディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気もしくは光カード、または電子命令を記憶するのに適した任意のタイプの媒体などであるがこれらに限定されない、コンピュータ可読記憶媒体に記憶され得る。
【0036】
本明細書に提示されているアルゴリズムおよび表示は、任意の特定のコンピュータまたは他の装置に本質的に関連しているわけではない。本明細書の教示に従って、様々な汎用システムをプログラムと共に使用する場合があり、または方法を実行するためのより専門的な装置を構築することが好都合であると判明する場合もある。これらの様々なシステムの構造は、以下の説明に述べられている通りである。さらに、本開示は、特定のプログラミング言語に関して説明されていない。本明細書で説明されるように開示の教示を実装するために、様々なプログラミング言語が使用されてもよいことが理解されよう。
【0037】
本開示は、命令を記憶した機械可読媒体を含み得るコンピュータプログラム製品またはソフトウェアとして提供され得、これは、コンピュータシステム(または他の電子デバイス)をプログラムして、本開示に従うプロセスを実行するために使用され得る。機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、読み取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスなどの機械(例えば、コンピュータ)可読記憶媒体を含む。
【0038】
前述の開示では、本開示の実装は、その特定の例示的な実装に関して説明されてきた。以下の特許請求の範囲に述べられているように、本開示の実装のより広い趣旨および範囲から逸脱することなく、様々な修正を加えることができることは明らかであろう。したがって、本開示および図面は、限定的な意味ではなく例示的な意味で見なされるべきである。
図1
図2
図3A
図3B
図4A
図4B
図5
【手続補正書】
【提出日】2024-01-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デバイスの物理的変動に対応する値を受信することであって、前記デバイスの前記物理的変動に対応する前記値は、物理複製困難関数(PUF)の出力に関連していることと、
前記PUFによって、入力ターゲットデータを使用して、前記デバイスの前記物理的変動に関連するヘルパーデータを導出し、前記デバイスのメモリに前記ヘルパーデータを記憶することと、
ターゲットデータを生成する要求に応答して、前記メモリから前記ヘルパーデータを取得することと、
前記デバイスの前記物理的変動に対応する前記値と前記メモリから取得された前記ヘルパーデータとの組み合わせに基づいて結果データを生成することと、
処理デバイスによって、前記結果データに対してエラー訂正操作を実行して、前記エラー訂正操作に関連する1つ以上のコードワードを識別することと、
前記1つ以上のコードワードに基づいて前記ターゲットデータを生成することであって、前記入力ターゲットデータは、前記ターゲットデータと一致することと、を含む、方法。
【請求項2】
前記ターゲットデータは、前記PUFの前記出力および前記ヘルパーデータに基づいてさらに生成される、請求項1に記載の方法。
【請求項3】
前記結果データは、前記識別された1つ以上のコードワードおよびエラー項に対応し、前記エラー項は、前記デバイスの前記物理的変動の以前の出力および前記デバイスの前記物理的変動に対応する前記値に対応する、請求項1に記載の方法。
【請求項4】
前記結果データに対して前記エラー訂正操作を実行することにより、前記結果データから前記エラー項が除去される、請求項3に記載の方法。
【請求項5】
メモリと、
前記メモリと動作可能に結合された処理デバイスであって、
デバイスの物理的変動に対応する値を受信し、前記デバイスの前記物理的変動に対応する前記値は、物理複製困難関数(PUF)の出力に関連し、
前記PUFによって、入力ターゲットデータを使用して、前記デバイスの前記物理的変動に関連するヘルパーデータを導出し、前記メモリに前記ヘルパーデータを記憶し、
ターゲットデータを生成する要求に応答して、前記メモリから前記ヘルパーデータを取得し、
前記デバイスの前記物理的変動に対応する前記値と前記メモリから取得された前記ヘルパーデータとの組み合わせに基づいて結果データを生成し、
前記結果データに対してエラー訂正操作を実行して、前記エラー訂正操作に関連する1つ以上のコードワードを識別し、
前記1つ以上のコードワードに基づいて前記ターゲットデータを生成し、前記入力ターゲットデータは、前記ターゲットデータと一致する、処理デバイスと、を備えるシステム。
【請求項6】
前記ターゲットデータは、前記PUFの前記出力および前記ヘルパーデータに基づいてさらに生成される、請求項5に記載のシステム。
【請求項7】
前記結果データは、前記識別された1つ以上のコードワードおよびエラー項に対応し、前記エラー項は、前記デバイスの前記物理的変動の以前の出力および前記デバイスの前記物理的変動に対応する前記値に対応する、請求項5に記載のシステム。
【請求項8】
前記結果データに対して前記エラー訂正操作を実行することにより、前記結果データから前記エラー項が除去される、請求項7に記載のシステム。
【請求項9】
命令を含む非一時的なコンピュータ可読媒体であって、前記命令は、処理デバイスによって実行されたときに、前記処理デバイスに、
デバイスの物理的変動に対応する値を受信することであって、前記デバイスの前記物理的変動に対応する前記値は、物理複製困難関数(PUF)の出力に関連していることと、
前記PUFによって、入力ターゲットデータを使用して、前記デバイスの前記物理的変動に関連するヘルパーデータを導出し、前記デバイスのメモリに前記ヘルパーデータを記憶することと、
ターゲットデータを生成する要求に応答して、前記メモリから前記ヘルパーデータを取得することと、
前記デバイスの前記物理的変動に対応する前記値と前記メモリから取得された前記ヘルパーデータとの組み合わせに基づいて結果データを生成することと、
前記結果データに対してエラー訂正操作を実行して、前記エラー訂正操作に関連する1つ以上のコードワードを識別することと、
前記1つ以上のコードワードに基づいて前記ターゲットデータを生成することであって、前記入力ターゲットデータは、前記ターゲットデータと一致することと、を含む操作を実行させる、非一時的なコンピュータ可読媒体。
【請求項10】
前記ターゲットデータは、前記PUFの前記出力および前記ヘルパーデータに基づいてさらに生成される、請求項9に記載の非一時的なコンピュータ可読媒体。
【請求項11】
前記結果データは、前記識別された1つ以上のコードワードおよびエラー項に対応し、前記エラー項は、前記デバイスの前記物理的変動の以前の出力および前記デバイスの前記物理的変動に対応する前記値に対応する、請求項9に記載の非一時的なコンピュータ可読媒体。
【請求項12】
前記結果データに対して前記エラー訂正操作を実行することにより、前記結果データから前記エラー項が除去される、請求項11に記載の非一時的なコンピュータ可読媒体。
【外国語明細書】