JP6096930B2 - データ依存型回路経路応答を使用する一意でクローン化不能なプラットフォーム識別子 - Google Patents

データ依存型回路経路応答を使用する一意でクローン化不能なプラットフォーム識別子 Download PDF

Info

Publication number
JP6096930B2
JP6096930B2 JP2015549795A JP2015549795A JP6096930B2 JP 6096930 B2 JP6096930 B2 JP 6096930B2 JP 2015549795 A JP2015549795 A JP 2015549795A JP 2015549795 A JP2015549795 A JP 2015549795A JP 6096930 B2 JP6096930 B2 JP 6096930B2
Authority
JP
Japan
Prior art keywords
identifier
circuits
circuit
threshold
frequency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015549795A
Other languages
English (en)
Other versions
JP2016510498A (ja
JP2016510498A5 (ja
Inventor
シュー・グオ
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016510498A publication Critical patent/JP2016510498A/ja
Publication of JP2016510498A5 publication Critical patent/JP2016510498A5/ja
Application granted granted Critical
Publication of JP6096930B2 publication Critical patent/JP6096930B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/30Marginal testing, e.g. by varying supply voltage
    • G01R31/3004Current or voltage test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31725Timing aspects, e.g. clock distribution, skew, propagation delay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings

Description

米国特許法第119条に基づく優先権の主張
本出願は、参照により本明細書に明確に組み込まれている、2012年12月20日に出願された「Unique and Unclonable Platform Identifiers Using Data-Dependent Circuit Path Responses」という名称の米国仮出願第61/740333号の優先権を主張する。
様々な特徴は、一意でクローン化不能な識別子を生成することに関し、より詳細には、物理的な回路または構成要素の固有の特性に基づく識別子に関する。
ソフトウェア保護は、ソフトウェアの許可されないコピーを防止するために使用される一種のコンピュータセキュリティ技法である。言い換えれば、ソフトウェアは、ユーザがそのソフトウェアを使用するための適切なライセンスを有しているかどうかを判定し、有している場合にのみ実行できるようにしなければならない。
ソフトウェア保護に関する別の問題は、ソフトウェアが実行されるチップ(たとえば、半導体デバイス)またはプラットフォームが偽造チップであるかどうかをどのように特定するかである。偽造チップが増加しており、電子機器サプライチェーンに危険をもたらす。偽造半導体による製品に対する付随的影響としては、呼断のようなささいな問題からはるかに重大な問題まで広範囲の問題が生じ得る。したがって、電子機器サプライチェーンにおける偽造チップの使用を特定して抑制することが重要である。
ソフトウェア知的財産およびコンテンツ保護に関する最大の問題の1つは、保護されるソフトウェアが実行されるハードウェアプラットフォームを特定できるようにすることである。既存のチップ設計に特別な論理を追加する必要がなく、すでに製造されているチップに適用することもできるゼロコスト解決手段を設計する必要がある。
したがって、特別な論理および/または特定専用回路構成要素の必要なしに、ソフトウェアが、実行されるハードウェアプラットフォームを一意に特定するのを可能にする解決手段が必要である。
一意の識別子を生成するための、処理回路において動作可能な方法が提供される。1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を実施してよい。様々な例において、1つまたは複数の回路は、(a)汎用計算構成要素、(b)非識別子専用計算構成要素、および/または(c)非記憶回路および/または非メモリ回路であってよい。他の例において、1つまたは複数の回路は、(a)1つまたは複数の内部計算構成要素、(b)1つまたは複数の外部計算構成要素、および/または(c)内部計算構成要素と外部計算構成要素の組合せのうちの少なくとも1つを含んでよい。
1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、1つまたは複数の試験を1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して繰り返してよい。(a)試験の繰返しごとに動作周波数を高くすること、(b)試験の繰返しごとに動作電圧を低下させること、および/または(c)試験の繰返しごとに動作周波数と動作電圧の組合せを調整することのうちの少なくとも1つによって動作周波数および/または動作電圧を調整する。
1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認してよい。一例では、しきい値周波数は、所与のデータ依存型回路経路に関する試験が試験に対する誤った応答を示す周波数であってよい。別の例では、しきい値周波数は、所与のデータ依存型回路経路に関する試験に対する予想される応答が予想されない応答に変化する周波数であってよい。
次いで、1つまたは複数のデータ依存型回路経路について確認された複数のしきい値周波数および/またはしきい値電圧に基づいて識別子を生成してよい。一例では、識別子を処理回路を含むプラットフォームに関連付けてよい。別の例では、この方法は、(a)ソフトウェアアプリケーションのインストールを識別子に関連付けること、および/または処理回路上でのソフトウェアアプリケーションの実行を識別子を首尾よく検証することにバインドすることをさらに行ってよい。識別子を首尾よく検証するには、識別子の元のインスタンスを識別子のその後生成されたインスタンスと比較してそれらのインスタンスが同じであることを確認してよい。いくつかの例では、識別子は、(a)1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧あるいは(b)2つ以上の異なる回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づいてよい。識別子をその後検証できるように記憶してよい。検証プロセスの間に、あらかじめ記憶された識別子を取り込んでよい。生成された識別子を次いで、あらかじめ記憶された識別子と比較して、それらの識別子が同じであるかどうかを確認してよい。
一意の識別子を生成するための、処理回路に結合された1つまたは複数の回路を備える装置を提供することができる。(a)1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を実施すること、(b)1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験を繰り返すこと、(c)1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認すること、ならびに/あるいは(d)1つまたは複数のデータ依存型回路経路について確認された複数のしきい値周波数および/またはしきい値電圧に基づいて識別子を生成することを行うように処理回路を適合してよい。
一例では、識別子を処理回路を含むプラットフォームに関連付けてよい。別の例では、ソフトウェアアプリケーションのインストールを識別子に関連付けてよく、処理回路上でのソフトウェアアプリケーションの実行を識別子を首尾よく検証することにバインドする。識別子を首尾よく検証するには、識別子の元のインスタンスを識別子のその後生成されたインスタンスと比較してそれらのインスタンスが同じであることを確認してよい。
様々な例では、1つまたは複数の回路は、(a)汎用計算構成要素、(b)非識別子専用計算構成要素、ならびに/あるいは非記憶回路および/または非メモリ回路であってよい。
(a)試験の繰返しごとに動作周波数を高くすること、(b)試験の繰返しごとに動作電圧を低下させること、および/または(c)試験の繰返しごとに動作周波数と動作電圧の組合せを調整することのうちの少なくとも1つによって動作周波数および/または動作電圧を調整してよい。
1つまたは複数の回路は、(a)1つまたは複数の内部計算構成要素、(b)1つまたは複数の外部計算構成要素、ならびに/あるいは(c)内部計算構成要素と外部計算構成要素の組合せのうちの少なくとも1つを含んでよい。
しきい値周波数は、(a)所与のデータ依存型回路経路に関する試験において試験に対する誤った応答が示され、ならびに/あるいは(b)所与のデータ依存型回路経路に関する試験に対する予想される応答が予想されない応答に変化する周波数であってよい。
この識別子は、(a)1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧ならびに/あるいは(b)2つ以上の異なる回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づいてよい。
様々な特徴、性質、および利点は、下記の詳細な説明を図面と併せ読めば明らかになるであろう。図中、同様の参照符号は、全体を通じて同様の部分を表す。
搭載構成要素もしくは回路または非搭載構成要素もしくは回路のデータ依存型回路経路応答情報を利用することによって識別子(ID)を抽出する方法を示す図である。 複数の搭載構成要素もしくは回路または非搭載構成要素もしくは回路のデータ依存型回路経路応答情報を利用することによってプラットフォーム識別子(ID)を抽出する方法を示す図である。 様々な動作周波数における1組の入力ベクトルの例示的な結果を示す表である。 様々な動作電圧における1組の入力ベクトルの例示的な結果を示す表である。 様々な動作周波数-電圧対における1組の入力ベクトルの例示的な結果を示す表である。 データ依存型回路経路に基づいて一意でクローン化不能な識別子を算出するように適合することのできる例示的な処理回路を示す図である。 1つまたは複数の搭載構成要素、回路、および/または半導体ならびに/あるいは1つまたは複数の非搭載構成要素、回路、および/または半導体のデータ依存型回路経路応答情報を利用することによって一意でクローン化不能なプラットフォーム識別子(ID)を算出する方法を示す図である。
以下の説明では、本開示の様々な態様の完全な理解を提供するために具体的な詳細が与えられる。しかしながら、態様はこれらの具体的な詳細を伴わずに実施され得ることが当業者により理解されるだろう。たとえば、態様が不要な詳細で不明瞭になるのを避けるために、回路がブロック図で示されることがある。他の場合には、本開示の態様を不明瞭にしないように、よく知られている回路、構造および技法を詳細に示さないことがある。
「例示的な」という言葉は、「例、事例、または例示として機能する」ことを意味するように本明細書で使用される。「例示的な」として本明細書で説明されるいかなる実装形態または態様も、必ずしも本開示の他の態様よりも好ましいまたは有利なものと解釈されるべきではない。同様に、「態様」という用語は、本開示のすべての態様が、論じられた特徴、利点または動作モードを含むことを必要とするとは限らない。
概要
第1の態様は、各半導体回路に固有の一意の特性を使用して、実行時にソフトウェアによって抽出することができ、ソフトウェアが予想されるかまたは対象となる半導体回路上で実行されているかどうかまたはその代わりにシミュレータ環境または偽造プラットフォーム上で実行されているかどうかを判定するのに使用することができる一意でクローン化不能なプラットフォーム識別子を生成するのを可能にする。半導体製造におけるばらつきに起因して、同じ半導体回路の2つのインスタンスにおける同じ回路経路が異なる応答(たとえば、経路遅延、周波数応答、電圧応答など)を有し得る。たとえば、同じ設計の各データ依存型経路の安定した動作に関するしきい値周波数が(ただしそれぞれに異なる半導体回路において)異なり得る。同じ設計を有する半導体回路間のこのようなばらつきを、各半導体回路を特徴付け一意でクローン化不能な識別子を生成するために使用することができる。
第2の態様は、それぞれに異なる入力ベクトルを生成し適用してそれぞれに異なるデータ依存型回路経路をシミュレートし、次いでデータ依存型回路経路ごとの周波数特性を抽出するのを可能にする。一例では、1組の命令が所与の入力を使用して様々な演算(たとえば、それぞれに異なる数学演算など)を実行することができる。使用される入力に応じて、実行される演算は、それぞれに異なる回路経路(すなわち、データ依存型経路)を使用してよい。したがって、入力ベクトルは、一意でクローン化不能なプラットフォーム識別子を生成するように特徴付けることができる複数のデータ依存型経路を導入する働きをすることができる。複数の入力ベクトルを使用することによって、各データ依存型回路経路は、回路経路ごとの結果が不安定になる(たとえば、試験結果が前の試験から変化するかまたは正しくなくなる)まで繰返し試験される。あらかじめ規定された試験に関する直前の既知の安定した電圧/周波数が一意の識別子を生成するために使用される。
第3の態様は、複数の異なる半導体回路間で、ならびに/あるいは複数の内部分岐回路もしくは構成要素および/または外部分岐回路もしくは構成要素にわたってデータ依存型回路経路を特徴付けるのを可能にする。様々な半導体回路、分岐回路、および/または構成要素における2つ以上のデータ依存型回路経路の特徴付けを使用して一意でクローン化不能な識別子を生成する。
一意でクローン化不能な識別子の例示的な生成
物理的構成要素(たとえば、半導体デバイス、電気経路、電気的構成要素など)の固有のばらつきおよびデータ依存型回路経路の使用に基づいてハードウェアデバイスの一意でクローン化不能な識別子を生成するための機構が提供される。たとえば、複数の半導体デバイスを製造する際、複雑な半導体プロセスによって、製造者または設計者の制御を超えたわずかなばらつきが導入される。同じシリコンウェハから2つの半導体デバイスが製造される場合でも、同じになるように設計された電線/電気経路はおそらく幅が数ナノメートル異なる。シリコンの表面における微視的な違いも、電気経路の曲率のほぼトリビアルなばらつきを導入することがある。さらに、半導体デバイスをプリント回路板に半田付けすると、容量/インピーダンスなどの差が生じることがある。これらの一意の特性は制御不能で物理的構成要素(たとえば、半導体デバイス)に固有の特性であり、これらの特性を定量化すると固有の一意でクローン化不能な識別子を生成することができる。さらに、(たとえば、1つまたは複数の半導体デバイスを通過する)1つまたは複数のデータ依存型回路経路を使用して識別子の固有性をさらに向上させる。
本手法は、半導体設計に特別な論理(たとえば、回路構成要素、トランジスタなど)を追加する必要のないゼロコスト解決手段を実現することができ、場合によってはすでに製造されている半導体デバイスに適用することができる。
図1は、搭載構成要素もしくは回路または非搭載構成要素もしくは回路のデータ依存型回路経路応答情報を利用することによって識別子(ID)を抽出する方法を示す。この例では、構成要素または回路104を、入力ベクトル102と識別子ジェネレータ106を備える識別子生成モジュールによって試験する。いくつかの例によれば、構成要素または回路は、(a)電気的に受動的な構成要素および電気的に能動的な構成要素を有するプリント回路板、(b)半導体デバイス、および/または(c)処理デバイスを含んでよい。構成要素または回路104は、その動作周波数110および/またはその動作電圧112を調整することによって動的に構成可能であってよい。
ここで説明するように、構成要素または回路104は、複数のデータ依存型回路経路A114、B116、C118、およびD120を含んでよい。たとえば、構成要素または回路104は、与えられる入力データに応じて異なるように演算を実行する信号プロセッサ、演算モジュールなどであってよい。たとえば、加算と乗算演算は、演算モジュールにおいて異なる経路を取ってよい。さらに、より大きい数の加算演算は、より小さい数の加算演算とは異なる経路を取ってよい。そのような「経路」は、たとえば、構成要素または回路104において特定の演算が実行されるトランジスタおよび/または電気的トレースを指してよい。
入力ベクトル102は、ある演算および/または計算を構成要素または回路104によって実行させる1つまたは複数の命令および/またはデータ入力を含んでよい。入力ベクトルの様々な例は、D1および/またはD2に対するより複雑な演算のうちで特に、D1+D2、D1×D2、D1/D2、log(D1)、ビット単位のD1 AND D2、D1 XOR D2の演算を実行することを含んでよく、この場合、D1およびD2はデータ入力(たとえば、数、ビットストリングなど)である。入力ベクトルは、構成要素をそれぞれに異なる動作モードで動作させる任意の制御信号または構成であってよい。
繰返しごとに構成要素または回路104の動作周波数110および/または電圧112が調整される(たとえば、周波数を高くすること、電圧を低下させることなど)ので、単一の入力ベクトルを数回実行することができる。繰返しごとに、構成要素/回路104が依然として安定していることを確認するための検査を実行する(たとえば、入力ベクトルに対して予想される応答/結果または正しい応答/結果を与える)。データ依存型回路経路応答/結果が変化するしきい値動作周波数(またはしきい値動作電圧)が特定されるまでこのプロセスを繰り返す。しきい値周波数および/またはしきい値電圧が特定された後、データ依存型回路経路に対するその特定の入力ベクトルの実行を停止または終了する。次いで、その特定の入力ベクトルに関するそのようなしきい値周波数を(たとえば、1つまたは複数の他の入力ベクトルに関するしきい値周波数と組み合わせて)使用して構成要素または回路の識別子を生成してよい。
しきい値周波数および/またはしきい値電圧は多数の方法で確認されてよい。第1の例では、動作周波数110を増分的に高くし、一方、動作電圧112を一定に維持する。しきい値電圧および/またはしきい値周波数は、入力ベクトルに対する応答/結果が変化するかまたは正しくなくなるしきい値電圧および/またはしきい値周波数である。
第2の例では、動作電圧112を増分的に低下させ、それに応じて動作周波数110を低下させる。たとえば、結果/応答が変化するまで、入力ベクトルの繰返しごとに動作電圧112を増分的に低減(低下)させてよい。動作電圧112を低減させると、これによって動作周波数も低減することに留意されたい。特定の入力ベクトルに対する正しい結果/応答を与える直前の最低電圧(または得られる動作周波数)を(たとえば、1つまたは複数の他の入力ベクトルの最低電圧と組み合わせて)使用して構成要素または回路の識別子を生成する。
第3の例では、動作電圧112を増分的に低下させ、一方、動作周波数110を増分的に高くする。たとえば、しきい値周波数/電圧(たとえば、特定のデータ経路が安定でなくなる周波数/電圧対)が特定されるまで、(たとえば、あらかじめ規定された周波数/電圧対に従って)周波数と電圧の両方の組合せを調整してよい。
識別子ジェネレータ106は、試験ベクトルごとの最高安定動作周波数(または最低安定動作電圧)を記録してよく、次いでこれらを使用して構成要素、回路、または半導体の一意でクローン化不能な識別子を算出する。
一例では、構成要素、回路、または半導体の最高動作周波数を最長(臨界)回路経路遅延(たとえば、最大レイテンシを有するチェーンにおいて接続された一連のそれぞれに異なるゲートまたは論理デバイス)によって求めてよい。このことは、構成要素、回路、または半導体が、特定の試験ベクトルにおいてそれが計算するデータ値に依存するそれぞれに異なる経路遅延を有するより短い経路を有することも意味する。回路経路遅延に対する半導体プロセスばらつきの影響に起因して、同じ設計であるがそれぞれに異なる構成要素、回路、または半導体における各データ依存型臨界経路の最高周波数/最低電圧はランダムなばらつきを有する。このことは、各データ依存型回路経路のこれらの最高周波数(または最低電圧)情報を特徴付けることによって、特定の構成要素、回路、および/または半導体の識別情報が適切に得られることも意味する。
いくつかの実装形態では、データ依存型回路経路は、入力を受け取り出力を供給する動的回路経路であってよい。したがって、データ依存型回路経路は非記憶回路経路および/または非メモリ回路経路である。
図2は、複数の搭載構成要素もしくは回路または非搭載構成要素もしくは回路のデータ依存型回路経路応答情報を利用することによってプラットフォーム識別子(ID)を抽出する方法を示す。この態様は、図1において説明した手法と同様に働くが、複数の構成要素または回路204、206、および208を使用して1つまたは複数の入力ベクトル202を実行する。各構成要素または回路204、206、および208について、構成要素または回路204、206、および208ごとに対応する動作電圧および/または動作周波数を繰返し調整しつつ入力ベクトルを実行してよい。
一実装形態では、第1の構成要素または回路204の動作周波数を高くして第1の構成要素または回路204における1つまたは複数のデータ依存型経路の最高安定周波数を確認してよい。一方、第2の構成要素または回路206の動作電圧を低下させて第2の構成要素または回路206における1つまたは複数のデータ依存型経路の最低安定電圧を確認してよい。同様に、第3の構成要素または回路208の動作周波数/電圧対を調整して第3の構成要素または回路208における1つまたは複数のデータ依存型経路のしきい値安定周波数/電圧対を確認してよい。識別子ジェネレータは次いで、複数の構成要素または回路204、206、および208に関するこの応答情報を使用してプラットフォーム(たとえば、各構成要素または回路の組合せ)の一意でクローン化不能な固有の識別子を算出してよい。
図3は、様々な動作周波数における1組の入力ベクトルの例示的な結果を示す表である。これらの入力ベクトルは、1つまたは複数の構成要素、回路、および/または半導体デバイスに対して実施されていてよい。1つまたは複数の周波数Freq-A、Freq-B、Freq-C、Freq-D、Freq-E、および/またはFreq-Fにわたって動作周波数を増分的に調整し(たとえば、高くし)つつ、入力ベクトル(たとえば、試験a、試験b、試験c、試験d)の各々を繰返し実行することができる。諒解されるように、入力ベクトルは、入力ベクトルごとのデータ依存型回路経路に応じて、最高/しきい値動作周波数まで合格または不合格になり得る。合格は、データ依存型回路経路が特定の動作周波数で入力ベクトルに対して予想通りに応答するかまたは正しく応答したことを意味する。不合格は、データ依存型回路経路が特定の動作周波数で入力ベクトルに応答して誤った応答または予想されない応答をするかあるいは応答が変化したことを意味する。たとえば、試験cでは、合格から不合格への遷移がFreq-CとFreq-Dとの間に行われる。したがって、しきい値周波数はFreq-CまたはFreq-Dとして選択されてよい。入力ベクトルが合格から不合格に遷移するこのしきい値周波数を記録しかつ使用してプラットフォームに関連する一意でクローン化不能な識別子を生成してよい。
図4は、様々な動作電圧における1組の入力ベクトルの例示的な結果を示す表である。これらの入力ベクトルは、1つまたは複数の構成要素、回路、および/または半導体デバイスに対して実施されていてよい。1つまたは複数の電圧Volt-A、Volt-B、Volt-C、Volt-D、Volt-E、および/またはVolt-Fにわたって動作電圧を増分的に調整し(たとえば、低下させ)つつ、入力ベクトル(たとえば、試験a、試験b、試験c、試験d)の各々を繰返し実行することができる。諒解されるように、入力ベクトルは、入力ベクトルごとのデータ依存型回路経路に応じて、最低/しきい値動作電圧まで合格または不合格になり得る。合格は、データ依存型回路経路が特定の動作電圧で入力ベクトルに対して予想通りに応答するかまたは正しく応答したことを意味する。不合格は、データ依存型回路経路が特定の動作電圧で入力ベクトルに応答して誤った応答または予想されない応答をするかあるいは応答が変化したことを意味する。たとえば、試験aでは、合格から不合格への遷移がVolt-DとVolt-Eとの間に行われる。したがって、しきい値電圧はVolt-DまたはVolt-Eとして選択されてよい。入力ベクトルが合格から不合格に遷移するこのしきい値電圧を記録しかつ使用してプラットフォームに関連する一意でクローン化不能な識別子を生成してよい。
図5は、様々な動作周波数-電圧対における1組の入力ベクトルの例示的な結果を示す表を示す。これらの入力ベクトルは、1つまたは複数の構成要素、回路、および/または半導体デバイスに対して実施されていてよい。1つまたは複数の周波数/電圧対Freq/Volt-A、Freq/Volt-B、Freq/Volt-C、Freq/Volt-D、Freq/Volt-E、および/またはFreq/Volt-Fにわたって動作周波数/電圧対を増分的に調整し(たとえば、高くしまたは低下させ)つつ、入力ベクトル(たとえば、試験a、試験b、試験c、試験d)の各々を繰返し実行することができる。諒解されるように、入力ベクトルは、入力ベクトルごとのデータ依存型回路経路に応じて、しきい値動作周波数/電圧対まで合格または不合格になり得る。合格は、データ依存型回路経路が特定の動作周波数/電圧対での入力ベクトルに対して予想通りに応答するかまたは正しく応答したことを意味する。不合格は、データ依存型回路経路が特定の動作周波数/電圧対での入力ベクトルに応答して誤った応答または予想されない応答をするかあるいは応答が変化したことを意味する。たとえば、試験dでは、合格から不合格への遷移がFreq/Volt-BとFreq/Volt-Cとの間に行われる。したがって、しきい値周波数/電圧対はVolt-BまたはVolt-Cとして選択されてよい。入力ベクトルが合格から不合格に遷移するこのしきい値周波数/電圧対を記録しかつ使用してプラットフォームに関連する一意でクローン化不能な識別子を生成してよい。
図6は、データ依存型回路経路に基づいて一意でクローン化不能な識別子を算出するように適合することのできる例示的な処理回路を示す。一例では、1つまたは複数のデータ依存型回路経路の特性に基づいて一意の識別子の生成を実行するための命令を含む外部記憶デバイス604に処理回路602を結合してよい。別の例では、1つまたは複数のデータ依存型回路経路の特性に基づいて一意の識別子の生成を実行するために記憶デバイス604を処理回路602と一体化してよい。処理回路602は、1つまたは複数の内部分岐回路610、612、および/または614ならびに/あるいは1つまたは複数の外部構成要素616、618、および620の動作周波数を調整するのを可能にするプログラム可能な周波数モジュール622(たとえば、クロックジェネレータなど)を含んでもよい。さらに、処理回路602は、1つまたは複数の内部分岐回路610、612、および/または614ならびに/あるいは1つまたは複数の外部構成要素616、618、および620の動作電圧を調整するのを可能にするプログラム可能な電圧モジュール624を含んでもよい。
処理回路602は、1つまたは複数の内部分岐回路610、612、および/または614ならびに/あるいは1つまたは複数の外部構成要素616、618、および620のデータ依存型経路応答情報を確認するための記憶デバイス604からの1つまたは複数の命令を含むかまたは得てよい。分岐回路610、612、614および/または構成要素616、618、620に対して1つまたは複数の演算を実行または実施するために、1つまたは複数の入力ベクトル606が処理回路によって使用されてよい。これらの入力ベクトルは、データ依存型回路経路ごとにしきい値周波数および/またはしきい値電圧が確認されるまで、試験中の分岐回路610、612、614および/または構成要素616、618、620の各々の動作周波数および/または動作電圧を増分的に調整しつつ、複数回実行されてよい。次に、識別子ジェネレータ608が、試験された複数のデータ依存型経路の、得られたしきい値周波数および/またはしきい値電圧を使用して一意の識別子622を生成する。
一例では、処理回路602、内部/外部回路610、612、614、および/または構成要素616、618、および620を含むプラットフォームに一意に識別子を関連付ける。
別の例では、一意の識別子を処理回路上でのソフトウェアアプリケーションのインストールまたは実行に関連付ける。
さらに別の例では、処理回路602上のソフトウェアアプリケーションの実行を一意の識別子を首尾よく検証することにバインドしてよい。たとえば、ソフトウェアアプリケーションが実行されるたびに、検証を実行し、一意の識別子に基づいて、ソフトウェアアプリケーションがインストールされたときと同じプラットフォーム上でまだ実行されていることを確認する。一意の識別子を首尾よく検証するには、一意の識別子の元のインスタンスを一意の識別子のその後生成されたインスタンスと比較してそれらのインスタンスが同じであることを確認してよい。
図7は、1つまたは複数の搭載構成要素、回路、および/または半導体ならびに/あるいは1つまたは複数の非搭載構成要素、回路、および/または半導体のデータ依存型回路経路応答情報を利用することによって一意でクローン化不能なプラットフォーム識別子(ID)を算出する方法を示す。1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して1つまたは複数の試験(たとえば、入力ベクトル、計算動作など)を実施してよい(702)。1つまたは複数の回路が識別子専用回路ではなく、汎用回路であってよいことに留意されたい。いくつかの例では、1つまたは複数の回路は、非記憶回路および/または非メモリ回路である。
1つまたは複数の試験は、1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、1つまたは複数の回路の1つまたは複数のデータ依存型回路経路に対して繰り返されてよい(704)。たとえば、1つまたは複数の回路の各々の動作周波数を高くし、ならびに/あるいは1つまたは複数の回路の動作電圧を低下させてよい。1つまたは複数のデータ依存型回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認してよい(706)。たとえば、そのようなしきい値周波数またはしきい値電圧は、特定の試験で不合格になり始まる(たとえば、結果/応答が変化する)最高周波数または最低電圧であってよい。
次いで、1つまたは複数のデータ依存型回路経路について確認された複数のしきい値周波数および/またはしきい値電圧に基づいて識別子が生成されてよい(708)。一例では、識別子は、1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づいて(たとえば、生成されて)よい。別の例では、識別子は、2つ以上の異なる回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい値電圧に基づいてよい。
識別子が最初に生成された場合、後で検証できるように(たとえば、非揮発性メモリに)記憶されてよい(710)。たとえば、ソフトウェアアプリケーションは、プラットフォーム上にインストールされるときに第1の識別子を得て記憶してよく、それによって、ソフトウェアのインストールをプラットフォーム用の1つまたは複数の特定の回路、マイクロプロセッサ、および/または半導体デバイスにバインドする。
識別子を検証する場合、あらかじめ記憶されている識別子を取り込む(712)。(ステップ708からの)新たに生成された識別子を次いで、あらかじめ記憶された識別子と比較し、それらの識別子が同じであるかどうかを確認する(714)。それらの識別子が同じである場合、記憶されている識別子と新たに生成された識別子の両方を生成するために使用されたプラットフォームは同じであり、検証は成功したと結論付けてよい。そうでない場合、新たに生成された識別子と記憶されている識別子が異なる場合、検証は失敗である。たとえば、それ以後のソフトウェアアプリケーションの起動時に、新たに生成された識別子をあらかじめ記憶されている識別子に対して検証し、それによってソフトウェアのインストールをプラットフォーム用の1つまたは複数の専用回路、マイクロプロセッサ、および/または半導体デバイスにバインドすることによって、ソフトウェアアプリケーションが元のプラットフォーム上で実行されていることを検証してよい。
システムオンチッププラットフォームに対して2つの例示的な実装形態シナリオを定義してよい。第1の例では、プラットフォーム識別子抽出制御ソフトウェアを有するプロセッサ、プログラマブルクロックジェネレータ、およびオンチップバスに結合されプロセッサと通信するオンチップ計算構成要素。オンチップ計算構成要素は、識別子を生成するために識別子抽出制御ソフトウェアによって使用することができる1つまたは複数のデータ依存型回路経路を実現してよい。第2の例では、プラットフォーム識別子抽出制御ソフトウェアを有するプロセッサ、プログラマブルクロックジェネレータ、およびプロセッサと通信するオフチップ計算構成要素。ここで、オフチップ計算構成要素は、識別子を生成するために識別子抽出制御ソフトウェアによって使用することができる1つまたは複数のデータ依存型回路経路を実現してよい。
どちらの例示的な実装形態シナリオでも、プロセッサは指定された周波数で安定した状態で動作してよく、いくつかのステップを実行する。第1に、制御ソフトウェアは、それぞれに異なるデータ依存型回路経路にアドレス指定してオン/オフチップ計算構成要素を第1の動作周波数で試験することのできる試験(入力)ベクトルの集合とともに実行されてよい。第2に、制御ソフトウェアは次いで、試験(入力)ベクトルとともに実行されてよく、同時に、データ依存型回路経路ごとのしきい値周波数(たとえば、最高周波数)が確認されならびに/あるいは記録されるまで、クロック周波数ジェネレータが、試験中の計算構成要素に供給されるクロック周波数(たとえば、動作周波数)を高くするかまたは低下させるように調整される。次いで、比較定量化手順を使用して、プラットフォーム識別子であってもよい一意の識別子を生成してよい。プラットフォームが複数のオンチップ計算構成要素および/またはオフチップ計算構成要素を有する場合、複数の抽出された識別子を組み合わせて単一のプラットフォーム識別子を得てよい。
この手法は、多くが、低電力消費が可能な融通性に富んだクロック周波数制御機構をすでに有する、既存のプロセッサ、半導体、および/またはチップに適用可能であってよい。さらに、一意の識別子を生成するためのこの手法は、外部の高価な試験セットアップおよび手順を使用する必要のないハードウェアにバインドされる。さらに、特別なハードウェア論理を追加することによって現在のチップ設計を変更する必要がなく、ソフトウェア要求によってこの手法の機能を有効化することができ、したがって、この手法はゼロコスト解決手段である。
図面に示す構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴、または機能に再構成および/または結合されてよく、あるいは、いくつかの構成要素、ステップまたは機能に組み込まれてもよい。本発明から逸脱することなしに、さらなる要素、構成要素、ステップ、および/または機能を追加することもできる。図に示す装置、デバイス、および/または構成要素は、図に記載した方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。また、本明細書で説明したアルゴリズムは、効率的にソフトウェアに実装されてもよく、かつ/またはハードウェアに組み込まれてもよい。
その上、本開示の一態様では、図に示す処理回路は、図に記載したアルゴリズム、方法、および/またはステップを行うように特に設計かつ/または配線接続される専用プロセッサ(たとえば、特定用途向け集積回路(たとえば、ASIC))であり得る。したがって、そのような専用プロセッサ(たとえば、ASIC)は、図に記載したアルゴリズム、方法、および/またはステップを実行するための手段の一例であり得る。コンピュータ可読記憶媒体はまた、専用プロセッサ(たとえば、ASIC)によって実行されるとき、図に記載したアルゴリズム、方法、および/またはステップを専用プロセッサに行わせる、プロセッサ可読命令を記憶することもできる。
また、本開示の態様は、フローチャート、流れ図、構造図またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは動作を逐次プロセスとして説明し得るが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並び替えられ得る。プロセスは、その動作が完了したときに終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応する場合がある。処理が関数に対応する場合、その終了は、関数が、関数の呼び出しまたはmain関数に戻ることに対応する。
その上、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、ならびに/または、情報を記憶するための他の機械可読媒体、およびプロセッサ可読媒体、および/もしくはコンピュータ可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表し得る。「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」という用語は、限定はされないが、ポータブルもしくは固定記憶デバイス、光記憶デバイス、ならびに、命令および/もしくはデータを記憶、格納または搬送することが可能な様々な他の媒体のような、非一時的媒体を含み得る。したがって、本明細書で説明される様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」および/または「プロセッサ可読媒体」に記憶され、1つまたは複数のプロセッサ、機械および/またはデバイスによって実行され得る命令および/またはデータによって、完全にまたは部分的に実装され得る。
さらに、本開示の態様は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶され得る。プロセッサは必要なタスクを実行することができる。コードセグメントは、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡し、かつ/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して、渡され、転送され、または送信され得る。
本明細書で開示される例に関して説明される様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明される機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替としてプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
本明細書で開示される例に関して説明される方法またはアルゴリズムは、ハードウェアで、プロセッサによって実行可能なソフトウェアモジュールで、または両方の組合せで、処理ユニット、プログラミング命令、または他の指示の形態で直接具現化されてよく、単一のデバイスに含まれるかまたは複数のデバイスにわたって分散されてよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体に存在し得る。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、かつその記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体はプロセッサと一体であり得る。
さらに、本明細書で開示される態様に関して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者は諒解するだろう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上記では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。
本明細書で説明する本発明の様々な特徴は、本発明から逸脱することなく様々なシステムで実装され得る。上記の本開示の態様は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。本開示の態様の説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置に容易に適用することができ、多くの代替形態、変更形態、および変形形態が当業者には明らかであろう。
102 入力ベクトル
104 構成要素または回路
106 識別子ジェネレータ
110、118 動作周波数
112、120 動作電圧
114、116、118、120 データ依存型回路経路
202 入力ベクトル
204、206、208 構成要素または回路
602 処理回路
604 外部記憶デバイス
606 入力ベクトル
608 識別子ジェネレータ
610、612、614 内部分岐回路
616、618、620 外部構成要素
622 プログラム可能な周波数モジュール、識別子
624 プログラム可能な電圧モジュール

Claims (15)

  1. 一意の識別子を生成するための、処理回路において動作可能な方法であって、
    1つまたは複数の回路の1つまたは複数の回路経路に対して1つまたは複数の試験を実施するステップと、
    前記1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、前
    記1つまたは複数の試験を前記1つまたは複数の回路の前記1つまたは複数のデータ回路経路に対して繰り返すステップと、
    前記1つまたは複数の回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認するステップと、
    前記1つまたは複数の回路経路について確認された複数の前記しきい値周波数および/またはしきい値電圧に基づいて識別子を生成するステップとを含む方法。
  2. 前記識別子が、前記処理回路を含むプラットフォームに関連付けられる、請求項1に記
    載の方法。
  3. ソフトウェアアプリケーションのインストールを前記識別子に関連付けるステップと、
    前記処理回路上での前記ソフトウェアアプリケーションの実行を前記識別子を首尾よく
    検証することにバインドするステップとをさらに含む、請求項1に記載の方法。
  4. 前記識別子を首尾よく検証するために、前記識別子の元のインスタンスを前記識別子の
    その後生成されたインスタンスと比較してそれらの前記インスタンスが同じであることを
    確認する、請求項3に記載の方法。
  5. 前記1つまたは複数の回路は、汎用計算構成要素であり、
    前記1つまたは複数の回路は、非識別子専用計算構成要素であるか、または、非記憶回路および/または非メモリ回路である、請求項1に記載の方法。
  6. 前記動作周波数および/または動作電圧は、
    前記試験の繰返しごとに前記動作周波数を高くすること、
    前記試験の繰返しごとに前記動作電圧を低下させること、および/または
    前記試験の繰返しごとに前記動作周波数と動作電圧の組合せを調整すること
    のうちの少なくとも1つによって調整される、請求項1に記載の方法。
  7. 前記1つまたは複数の回路は、
    1つまたは複数の内部計算構成要素、
    1つまたは複数の外部計算構成要素、および/または
    内部計算構成要素と外部計算構成要素の組合せのうちの少なくとも1つを含む、請求項1
    に記載の方法。
  8. 前記しきい値周波数は、所与の回路経路に関する試験が前記試験に対する誤った応答を示す周波数である、請求項1に記載の方法。
  9. 前記しきい値周波数は、所与の回路経路に関する試験に対する予想される応答が予想されない応答に変化する周波数である、請求項1に記載の方法。
  10. 前記識別子は、
    1つの回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/またはしきい
    値電圧に基づく、請求項1に記載の方法。
  11. 前記識別子は、
    2つ以上の異なる回路の2つ以上の異なる回路経路の2つ以上のしきい値周波数および/ま
    たはしきい値電圧に基づく、請求項1に記載の方法。
  12. 前記識別子を後で検証できるように記憶するステップをさらに含む、請求項1に記載の
    方法。
  13. あらかじめ記憶された識別子を取り込むステップと、
    前記生成された識別子を前記あらかじめ記憶された識別子と比較して、それらの前記識
    別子が同じであるかどうかを確認するステップとをさらに含む、請求項1に記載の方法。
  14. 1つまたは複数の回路の1つまたは複数の回路経路に対して1つまたは複数の試験を実施するための手段と、
    前記1つまたは複数の回路の各々の動作周波数および/または動作電圧を調整しつつ、前記1つまたは複数の試験を前記1つまたは複数の回路の前記1つまたは複数の回路経路に対して繰り返すための手段と、
    前記1つまたは複数の回路経路の各々についてしきい値周波数および/またはしきい値電圧を確認するための手段と、
    前記1つまたは複数の回路経路について確認された複数の前記しきい値周波数および/またはしきい値電圧に基づいて識別子を生成するための手段と
    を備える装置。
  15. 少なくとも1つのプロセッサによって実行されたときに、前記少なくとも1つのプロセッ
    サに、請求項1乃至13の何れか1項に記載の方法を実施させる命令が記憶された機械可読記憶媒体。
JP2015549795A 2012-12-20 2013-12-20 データ依存型回路経路応答を使用する一意でクローン化不能なプラットフォーム識別子 Expired - Fee Related JP6096930B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261740333P 2012-12-20 2012-12-20
US61/740,333 2012-12-20
US13/752,215 2013-01-28
US13/752,215 US9449153B2 (en) 2012-12-20 2013-01-28 Unique and unclonable platform identifiers using data-dependent circuit path responses
PCT/US2013/077049 WO2014100647A1 (en) 2012-12-20 2013-12-20 Unique and unclonable platform identifiers using data-dependent circuit path responses

Publications (3)

Publication Number Publication Date
JP2016510498A JP2016510498A (ja) 2016-04-07
JP2016510498A5 JP2016510498A5 (ja) 2017-02-09
JP6096930B2 true JP6096930B2 (ja) 2017-03-15

Family

ID=50976391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015549795A Expired - Fee Related JP6096930B2 (ja) 2012-12-20 2013-12-20 データ依存型回路経路応答を使用する一意でクローン化不能なプラットフォーム識別子

Country Status (7)

Country Link
US (1) US9449153B2 (ja)
EP (1) EP2923214B1 (ja)
JP (1) JP6096930B2 (ja)
KR (1) KR101773490B1 (ja)
CN (1) CN104854465B (ja)
TW (1) TWI559162B (ja)
WO (1) WO2014100647A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2922701C (en) * 2013-08-28 2021-05-04 Stc.Unm Systems and methods for leveraging path delay variations in a circuit and generating error-tolerant bitstrings
US20160047855A1 (en) * 2014-08-15 2016-02-18 Case Western Reserve University Pcb authentication and counterfeit detection
JP6608457B2 (ja) * 2014-12-15 2019-11-20 エスティーシー. ユーエヌエム 信頼性を高めた物理的クローン不能関数ビットストリーム生成方法
EP3046096B1 (en) * 2015-01-15 2022-03-30 Siemens Aktiengesellschaft A protection method of writting encrypted data to a memory device and reading decrypted data from the memory device using the power up of a PUF
EP3535682A4 (en) * 2016-11-04 2020-06-24 Stc.Unm SYSTEM AND METHODS FOR STATISTICAL QUALITY ENTROPY AND METRIC
FR3065556B1 (fr) * 2017-04-19 2020-11-06 Tiempo Circuit electronique securise par perturbation de son alimentation.
US10810346B2 (en) 2018-09-28 2020-10-20 Taiwan Semiconductor Manufacturing Co., Ltd. Static voltage drop (SIR) violation prediction systems and methods
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
GB201919297D0 (en) 2019-12-24 2020-02-05 Aronson Bill Temperature sensing physical unclonable function (puf) authenication system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161213A (en) * 1999-02-17 2000-12-12 Icid, Llc System for providing an integrated circuit with a unique identification
US7215684B1 (en) * 2000-09-20 2007-05-08 Qualcomm Incorporated Method and apparatus for reducing transmission overhead in a communication system
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
JP4524176B2 (ja) * 2004-12-17 2010-08-11 パナソニック株式会社 電子デバイスの製造方法
US8127347B2 (en) 2006-12-29 2012-02-28 02Micro International Limited Virtual firewall
US20110002461A1 (en) * 2007-05-11 2011-01-06 Validity Sensors, Inc. Method and System for Electronically Securing an Electronic Biometric Device Using Physically Unclonable Functions
US20110215829A1 (en) 2007-08-22 2011-09-08 Intrinsic Id B.V. Identification of devices using physically unclonable functions
WO2011047062A1 (en) 2009-10-13 2011-04-21 Tiger's Lair Inc. Protecting electronic systems from counterfeiting and reverse-engineering
FR2955394B1 (fr) 2010-01-18 2012-01-06 Inst Telecom Telecom Paristech Circuit integre en silicium comportant une fonction physiquement non copiable, procede et systeme de test d'un tel circuit
US8619979B2 (en) * 2010-06-25 2013-12-31 International Business Machines Corporation Physically unclonable function implemented through threshold voltage comparison
JP5354611B2 (ja) * 2010-07-29 2013-11-27 独立行政法人産業技術総合研究所 電子回路部品の真贋判定方法
JP5474705B2 (ja) * 2010-08-23 2014-04-16 ルネサスエレクトロニクス株式会社 半導体装置
TWM443215U (en) 2012-04-19 2012-12-11 C One Technology Corp Portable storage device wit security mechanism and validation system

Also Published As

Publication number Publication date
KR101773490B1 (ko) 2017-08-31
TW201430605A (zh) 2014-08-01
TWI559162B (zh) 2016-11-21
EP2923214B1 (en) 2016-10-19
JP2016510498A (ja) 2016-04-07
US9449153B2 (en) 2016-09-20
WO2014100647A1 (en) 2014-06-26
US20140181986A1 (en) 2014-06-26
KR20150097624A (ko) 2015-08-26
CN104854465B (zh) 2018-01-09
CN104854465A (zh) 2015-08-19
EP2923214A1 (en) 2015-09-30

Similar Documents

Publication Publication Date Title
JP6096930B2 (ja) データ依存型回路経路応答を使用する一意でクローン化不能なプラットフォーム識別子
JP6377865B2 (ja) リング発振器ベースの物理的複製不可関数および年齢検知回路を使用した集積回路識別およびディペンダビリティ検証
JP6949843B2 (ja) ハードウェアインテグリティチェック
US8966355B2 (en) Apparatus and method for comparing pairs of binary words
EP3031168A1 (en) Systems, methods and apparatuses for prevention of unauthorized cloning of a device
JP2016510498A5 (ja)
US9858382B2 (en) Computer program product for timing analysis of integrated circuit
CN106548098B (zh) 用于检测故障攻击的方法和系统
CN108537066B (zh) 安全代码跳转和执行选通
KR102076770B1 (ko) 반도체 장치
US10193694B1 (en) Method and apparatus for securely configuring parameters of a system-on-a-chip (SOC)
JP2010097328A (ja) ループ最適化システム、ループ最適化方法、及びループ最適化用プログラム
US20200401690A1 (en) Techniques for authenticating and sanitizing semiconductor devices
US9885754B2 (en) Integrated circuit with self-verification function, verification method and method for generating a BIST signature adjustment code
JP6003735B2 (ja) Dimm擬似故障発生方法およびdimm擬似故障発生装置
KR20190068829A (ko) 소프트웨어 테스트를 위한 테스트케이스 관리 장치 및 관리 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161219

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161219

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170216

R150 Certificate of patent or registration of utility model

Ref document number: 6096930

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees