JP7222697B2 - リング発振器ベースの物理的複製不可能機能に対する頻繁な変更攻撃に対する対策 - Google Patents

リング発振器ベースの物理的複製不可能機能に対する頻繁な変更攻撃に対する対策 Download PDF

Info

Publication number
JP7222697B2
JP7222697B2 JP2018240550A JP2018240550A JP7222697B2 JP 7222697 B2 JP7222697 B2 JP 7222697B2 JP 2018240550 A JP2018240550 A JP 2018240550A JP 2018240550 A JP2018240550 A JP 2018240550A JP 7222697 B2 JP7222697 B2 JP 7222697B2
Authority
JP
Japan
Prior art keywords
computer system
mode
values
puf
hash
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.)
Active
Application number
JP2018240550A
Other languages
English (en)
Other versions
JP2019146158A (ja
Inventor
ラースロー ハース,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Boeing Co
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Publication of JP2019146158A publication Critical patent/JP2019146158A/ja
Application granted granted Critical
Publication of JP7222697B2 publication Critical patent/JP7222697B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/3236Cryptographic 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 cryptographic hash functions
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2123Dummy operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

本開示は、一般に、コンピュータシステムにおけるセキュリティの提供に関し、特に、リング発振器ベースの物理的複製不可能機能(PUF)に対する周波数変更攻撃に対する対策を使用して、コンピュータシステムにおけるセキュリティを提供することに関する。
PUFデバイスは、評価するのは簡単だが予測するのは困難なデバイスである。PUFデバイスは、それを製造した正確な製造プロセスを考慮しても、製造は容易であるが複製は実際不可能でなければならない。この点で、PUFデバイスは、(暗号)一方向性関数のハードウェアアナログである。PUFデバイスは、例えば安全なデバイス識別のために、又は情報セキュリティのためにコンピュータシステム内のルート暗号鍵の構成要素として、使用されるチップIDを生成するために使用することができる。
PUFデバイスは、複数の同一設計のリング発振器を用いて構築することができる。しかしながら、リング発振器ベースのPUFデバイスは、サイドチャネル上の発振器信号の漏洩を含み、リング発振器の周波数は、周波数変更攻撃により変更される可能性がある。ある種の単純で非侵襲的な物理的攻撃は、PUFデバイスの複数のリング発振器のうちの1つのリング発振器又は小グループの周波数を変更する可能性がある。権限のない第三者が、PUFデバイスのリング発振器への攻撃によってコンピュータシステムが正しく動作しなくなるかを観察する可能性がある。そのような攻撃を十分な回数繰り返すことによって、かつコンピュータシステムの始動時の動作を観察することによって、権限のない第三者が、PUFデバイスによって生成されるPUF値(例えばチップID)を再び生成し、よってコンピュータシステムの情報セキュリティに害を与えることができるかもしれない。
リング発振器ベースのPUFデバイスを周波数変更攻撃から保護するための既存の解決策は、金属シールド又は内部デジタル若しくはアナログフィルタのような物理的保護を使用することを含む。既存の解決策は、サイドチャネルでの情報漏洩とシグナルインジェクション攻撃を防止するために使用することができる。しかしながら、既存の解決策は、高価であり、効果がなく、脆弱であり、かつ回避するのが容易である。
したがって、上記で論じた問題のうちの少なくともいくつか、並びに他の起こりうる問題を考慮に入れるシステム及び方法を有することが望ましいだろう。
本開示の例示的な実施態様は、リング発振器ベースのPUFに対する周波数変更攻撃に対する対策を使用して、コンピュータシステムにおいてセキュリティを提供することを対象とする。既存の解決策とは対照的に、例示的な実施態様は、周波数変更攻撃に対するプロトコルレベルのアルゴリズム的対策を提供する。プロトコルレベルのアルゴリズム的対策は、PUFデバイスのリング発振器への攻撃がコンピュータシステムの適切な動作を妨げるかを権限のない第三者が容易に観察できないように、権限のない第三者を混乱させることができる。したがって、不正な第三者は、攻撃が成功したかどうかを簡単に知ることはできない。これらの対策は、制御ソフトウェア(ファームウェア)の変更のみを必要とするため、追加のハードウェアは必要ない。したがって、これらの対策は、安価であり、実装及び評価するのが容易である。
したがって、本開示は、以下の例示的実施態様を含むが、これらに限定されない。
いくつかの例示的な実施態様は、コンピュータシステムにおいてセキュリティを提供する方法を提供する。方法は、集積回路に実装され、PUFデバイスを含むシステムで実装され、方法は、コンピュータシステムの起動時に:同一の入力値を用いて予め設定された複数の回数だけPUFデバイスを呼び出し、集積回路の候補識別子として使用される複数のPUF値を生成すること;ハッシュ関数を候補識別子に適用し、それぞれのハッシュ値を生成すること;ハッシュ関数の適用から集積回路の受け入れられた識別子までの参照ハッシュ値に、不揮発性メモリからアクセスすること;参照ハッシュ値を使用して、それぞれの複数のハッシュ値のすべてを検証すること;及びそれぞれの複数のハッシュ値のうちのそれぞれのハッシュ値が検証されるときに、コンピュータシステムを第1のモードで動作可能にする、又はそうでなければ、それぞれのハッシュ値のいずれも検証されないときに、コンピュータシステムを第2のモードで動作可能にすることであって、それぞれのハッシュ値が、受け入れられた識別子と一致し、それによって受け入れられた識別子と解釈される候補識別子のうちの1つの候補識別子に対するものである、コンピュータシステムを第1のモードで動作可能にする、又はそうでなければ、コンピュータシステムを第2のモードで動作可能にすることを含む。
任意の前述の例示的実施態様の方法のいくつかの例示的実施態様、又は前述の例示的実施態様の任意の組み合わせにおいて、PUFデバイスは複数のリング発振器を含み、PUFデバイスの入力値は、複数のリング発振器のうちの対のリング発振器の識別子のシーケンスを含み、PUFデバイスを呼び出すように構成されている1つ又は複数の論理回路は、予め設定された複数の回数の各々について、シーケンス内の各対の識別子が、PUFデバイスに、リング発振器のそれぞれの対の発振周波数を比較させ、どちらが大きいかを示すビット値を出力させる、同一の入力値を適用するように構成されている1つ又は複数の論理回路を含み、ビット値は、対の識別子のシーケンスにわたって出力されるビット値のシーケンスのうちの1つであり、ビット値のシーケンスが入力値に対応する複数のPUF値のうちの1つである。
任意の前述の例示的実施態様の方法のいくつかの例示的実施態様、又は前述の例示的実施態様の任意の組み合わせにおいて、それぞれのハッシュ値のすべてを検証することは、それぞれのハッシュ値のうちの各ハッシュ値について、ハッシュ値を参照ハッシュ値と比較し、ハッシュ値が参照ハッシュ値と一致するかどうかを判定し、それによってハッシュ値が検証されることを含む。
任意の前述の例示的実施態様の方法のいくつかの例示的実施態様、又は前述の例示的実施態様の任意の組み合わせにおいて、コンピュータシステムを第1のモードで動作可能にすることは、コンピュータシステムに、少なくとも:ファームウェアとデータをコンピュータシステムのメモリ内にロードさせ;受け入れられた識別子を使用して、ファームウェアとデータのデータ認証を実行させ;鍵を用いてファームウェアとデータの復号操作を実行させる第1のモードで、コンピュータシステムを起動させることを含む。
任意の前述の例示的実施態様の方法のいくつかの例示的実施態様、又は前述の例示的実施態様の任意の組み合わせにおいて、コンピュータシステムを第2のモードで動作可能にすることは、コンピュータシステムに、少なくとも:ファームウェアとデータをコンピュータシステムのメモリ内にロードさせ;受け入れられた識別子がなくてもファームウェアとデータのデータ認証を実行させ、データ認証のいかなるエラーも無視させ;予め設定された無効な鍵を用いて、ファームウェアとデータの復号操作を実行させる第2のモードで、コンピュータシステムを起動させることを含む。
任意の前述の例示的実施態様の方法のいくつかの例示的実施態様、又は前述の例示的実施態様の任意の組み合わせにおいて、受け入れられた識別子は、コンピュータシステムのルート暗号鍵の構成要素として使用される。
任意の前述の例示的実施態様の方法のいくつかの例示的実施態様、又は前述の例示的実施態様の任意の組み合わせにおいて、第1のモードは、通常動作モードである。
任意の前述の例示的実施態様の方法のいくつかの例示的実施態様、又は前述の例示的実施態様の任意の組み合わせにおいて、第2のモードは、通常動作モードを模擬する偽の動作モードである。
任意の前述の例示的実施態様の方法のいくつかの例示的実施態様、又は前述の例示的実施態様の任意の組み合わせにおいて、コンピュータシステムを第2のモードで動作可能にすることは、コンピュータシステムに、予め設定された遅延の後にコンピュータシステムのユーザにセキュリティエラーを報告させる第2のモードで、コンピュータシステムを起動させることを含む。
いくつかの例示的な実施態様は、コンピュータシステムにおいてセキュリティを提供するための前述のシステムを提供し、システムは、任意の前述の例示的実施態様の方法、又は前述の例示的実施態様の任意の組合せの方法を少なくとも実行するように構成された1つ又は複数の論理回路を備える。
本開示の上記の特徴、態様、及び利点、及びその他の特徴、態様、及び利点は、下記の詳細な説明と共に、簡潔に後述する添付図面を参照することで明らかになろう。本開示は、本明細書に記載の特定の例示的な実施態様において、この開示内に明記する2つ、3つ、4つ、又はもっと多くの特徴又は要素が明示的に組み合わされているか、若しくは列挙されているか否かにかかわらず、かかる特徴又は要素の任意の組み合わせを含む。この開示は、本開示のいかなる分離可能な特徴又は要素も、その態様及び例示的な実施態様のいずれにおいても、本開示の文脈がそうでないことを明確に指示していない限り組合せ可能であること見なされるように、全体論的に読まれるためのものである。
したがって、この「発明の概要」は、本開示のいくつかの態様の基本的な理解を提供するために、いくつかの例示的な実施態様を要約することだけを目的に提供されていることが理解されよう。したがって、上述の例示的な実施態様は単なる例であり、いかなる意味においても、本開示の範囲又は本質を狭めると解釈すべきではないことが理解されよう。その他の例示的な実施態様、態様、及び利点は、添付図面と併せて下記の詳細説明を参照することで明らかになろう。添付図面は、例を用いて、記載されているいくつかの例示的な実施態様の原理を示すものである。
上記のように本開示の例示的な実施態様を一般的な用語で説明したが、これより添付図面を参照する。これらの図面は必ずしも正確な縮尺で描かれているわけではない。
本開示の例示的な実施態様による、コンピュータシステムにおいてセキュリティを提供するためのシステムを示す図である。 様々な例示的実施態様による、PUFデバイスを示す 様々な例示的実施態様による、コンピュータシステムにおいてセキュリティを提供する方法の様々なステップを示すフローチャートである。
本開示のいくつかの実施態様が、添付図面を参照してこれより下記でより網羅的に説明されるが、添付図面には、本開示の実施態様の全てではなく一部しか示されていない。実際のところ、本開示の様々な実施態様は、多くの異なる形態で実施され、本明細書に明記されている実施態様に限定されると解釈すべきではない。むしろ、これらの例示的な実施態様は、本開示が包括的かつ完全なものになるように、かつ、当業者に本開示の範囲が十分に伝わるように、提供されている。例えば、特に明記されない限り、「第1の」、「第2の」などとして参照されるものは、特定の順番を示すと解釈すべきではない。また、(特に明記されない限り)何か別のものの上にあると説明されうるものは、その代わりに下にあることもあり、逆もまた然りである。同様に、何か別の物の左にあると説明されうる物は、その代わりに右にあることもあり、逆もまた然りである。全体を通して、類似の参照番号は類似の要素を指す。
本開示の例示的な実施態様は、概して、コンピュータシステムにおいてセキュリティを提供すること、特に、リング発振器ベースのPUFに対する周波数変更攻撃に対する対策を使用して、コンピュータシステムにおいてセキュリティを提供することに関する。
図1は、本開示の例示的な実施態様による、コンピュータシステム110においてセキュリティを提供するためのシステム100を示す。コンピュータシステムは、図示されたようなシステムを含みうる。例えば、コンピュータシステムは、そのシステムを備えていてもよい。別の例では、コンピュータシステムとシステムは、2つの別々のシステムでありうる。
システム100は、少なくともその一部がマルチプレクサ、レジスタ、演算論理装置、メモリ、マイクロプロセッサなどの論理回路を含む又はそのような論理回路を用いて実装される複数の構成要素、ユニットなど(一般に「構成要素」)の各々の1つ又は複数を含みうる。システムは、いくつかの異なる用途のうちのいずれかのために設計されてもよく、システムへの周波数変更攻撃に対する対策を提供し、コンピュータシステム110におけるセキュリティを提供するために特定の適用性を有してもよい。
コンピュータシステム110は、プロセッサと、プロセッサに結合されたコンピュータ可読記憶媒体又はメモリとを含むことができ、プロセッサは、メモリに記憶された1つ又は複数のコンピュータプログラムを含むコンピュータ可読プログラムコードを実行するように構成される。1つ又は複数の機能、及び機能の組み合わせは、特定の機能を実行する専用の電子ハードウェアベースのシステム及び/又はプロセッサ、あるいは専用ハードウェアとプログラムコード命令の組み合わせによって実装されうることも理解されよう。
いくつかの例では、図示されるように、システム100は、集積回路120内に実装される。システムは、制御論理101とPUFデバイス102とを含む。コンピュータシステム110の起動時に、制御回路は、複数のPUF値、例えば複数のビット値のシーケンスを生成するために同一の入力値で、PUFデバイスを予め設定された複数の回数だけ、例えば10回、呼び出すように構成される。PUF値は、集積回路の候補識別子として使用される。本開示では、集積回路の識別子は、「チップID」と呼ばれることがある。
いくつかの例では、PUFデバイス102は、候補識別子(PUF値)をハッシュ値生成器103に提供するように構成される。ハッシュ値生成器は、ハッシュ関数を候補識別子に適用してそれぞれのハッシュ値を生成し、それぞれのハッシュ値を検証モジュール104に提供するように構成される。
いくつかの例では、検証モジュール104は、安全な不揮発性メモリ105からの参照ハッシュ値にアクセスするように構成され、これは、権限のない第三者によって変更することはできない。参照ハッシュ値は、ハッシュ値生成器103内のハッシュ関数を集積回路120の受け入れられた識別子に適用することから得られる。参照ハッシュ値は、集積回路の初期設定又は較正プロセス中に不揮発性メモリに格納することができる。検証モジュールは、参照ハッシュ値を使用して、ハッシュ値生成器からのそれぞれのハッシュ値のすべてを検証するように構成される。
いくつかの例では、検証モジュール104は、検証結果を有効化モジュール106に提供するように構成される。有効化モジュールは、複数のそれぞれのハッシュ値のそれぞれのハッシュ値が検証されるときに、コンピュータシステム110を第1のモードで動作可能にし、そうでなければ複数のそれぞれのハッシュ値のいずれも検証されないときに、コンピュータシステムを第2のモードで動作可能にする。検証されたそれぞれのハッシュ値は、受け入れられた識別子と一致する複数の候補識別子のうちの1つの候補識別子に対するものであり、したがって、検証されたそれぞれのハッシュ値は、それによって受け入れられた識別子として解釈される。
いくつかの例では、PUFデバイスは、複数のリング発振器を含み(以下の図2に示すように)、PUFデバイス102の同一の入力値は、PUFデバイス内の複数のリング発振器のうちの対のリング発振器の識別子のシーケンスを含む。予め設定された複数の回数のそれぞれについて、制御論理101は、シーケンス内の各対の識別子がPUFデバイスにPUFデバイス内の各対のリング発振器の発振周波数を比較させる同一の入力値を適用するように構成される。比較に基づいて、PUFデバイスは、それぞれの対のリング発振器のどの発振周波数がより大きいかを示すビット値を出力するように構成される。ビット値は、対の識別子のシーケンスにわたって出力されるビット値のシーケンスのうちの1つである。ビット値のシーケンスは、同一の入力値に対応する複数のPUF値のうちの1つである。
いくつかの例では、ハッシュ値生成器103によって生成された複数のそれぞれのハッシュ値の各ハッシュ値について、検証モジュール104は、ハッシュ値を参照ハッシュ値と比較して、ハッシュ値が参照ハッシュ値と一致する(例えば等しい)かどうかを判定し、それによってハッシュ値が検証されるよう構成される。
いくつかの例では、複数のそれぞれのハッシュ値のうちのそれぞれのハッシュ値が検証モジュール104によって検証されると、有効化モジュール106は、コンピュータシステム110を第1のモードで起動させるように構成される。第1のモードでは、コンピュータシステムが、少なくともファームウェアとデータをコンピュータシステムのメモリ内にロードし、受け入れられた識別子を使用してファームウェアとデータに対してデータ認証を実行し、チップIDに依存しうる有効な鍵を用いてファームウェアとデータに復号操作を実行する。
いくつかの例では、それぞれのハッシュ値のいずれも検証モジュール104によって検証されないとき、有効化モジュール106は、コンピュータシステム110を第2のモードで起動させるように構成される。第2のモードでは、コンピュータシステムは、ファームウェアとデータをコンピュータシステムのメモリ内にロードさせる。第2のモードでは、コンピュータシステムはまた、受け入れられた識別子がなくてもファームウェアとデータに対してデータ認証を実行し、データ認証におけるいかなるエラーも無視させる。第2のモードでは、コンピュータシステムは更に、予め設定された無効な鍵を用いてファームウェアとデータに対して復号操作を実行させる。結果が異なるにもかかわらず、これらのアクティビティは、第1の動作モードとまったく同じである。また、オプションで、第2のモードでは、コンピュータシステムが、予め設定された遅延の後にセキュリティエラーをコンピュータシステムのユーザに報告させる。これらのステップにより、攻撃が成功したと検出されうる際に、かなりの遅延がおこる可能性がある。
図2は、様々な例示的実施態様によるPUFデバイス102を示す。図示されるように、いくつかの例では、PUFデバイスは、n個の同一設計のリング発振器、例えばリング発振器201-203を含む。許容誤差内で製造上のばらつきがあると、n個のリング発振器がわずかに異なり、これらの差を予測することができない。n個のリング発振器の物理的な違いは、それらを異なる周波数で発振させる。異なる周波数は、温度及び供給電圧によって変化する可能性があり、その場合には、PUF値の較正又は補正が必要とされる。
一例では、PUFデバイス102はまた、2つのマルチプレクサ、例えばマルチプレクサ204及び205を含む。2つのマルチプレクサのそれぞれは、n個のリング発振器から1個のリング発振器を選択することができる。PUFデバイスの入力値は、n個のリング発振器のうちのリング発振器の対の識別子のシーケンスを含むことができる。入力値に基づいて、2つのマルチプレクサは、特定の対のリング発振器を選択することができる。例えば、入力値内の一対の識別子に基づいて、マルチプレクサ204は、リング発振器201を選択することができ、マルチプレクサ205は、リング発振器203を選択することができる。
一例では、PUFデバイス102はまた、2つのカウンタ、例えばカウンタ206及び207を含む。各カウンタは、マルチプレクサ204、205によって選択されたリング発振器の発振周波数を測定する。例えば、カウンタ206は、マルチプレクサ204によって選択されたリング発振器、例えばリング発振器201の発振周波数を測定することができ、カウンタ207は、マルチプレクサ205によって選択されたリング発振器、例えばリング発振器203の発振周波数を測定することができる。一例では、カウンタは、予め設定された期間内に対応するリング発振器の発振周期をカウントすることによって、周波数を測定する。
一例では、各選択された対、例えばリング発振器201及び203を含む対に対して、カウンタ206及び207によって測定された2つのリング発振器の発振周波数が、比較器208で比較される。各比較について、PUFデバイス102は、ビット値(例えば、カウンタ206によって測定されたリング発振器の周波数が、カウンタ207によって測定されたリング発振器の周波数より小さい場合は0、そうでない場合は1)を出力する。したがって、入力値がn個のリング発振器のリング発振器の対の識別子のシーケンスのシーケンスを含む場合、PUFデバイスは、比較のシーケンスを実行し、ビット値のシーケンスを出力し、それがPUF値を構成する。
n個のリング発振器がある場合、n個の可能な入力値があるが、比較するのはn・(n-1)/2個の順序付けられた対だけであることに留意されたい。ただし、特定の組の比較結果によって、他の比較結果が決定し、独立した比較の数が
Figure 0007222697000001
まで減少する。実際のシステムでは、リング発振器のいくつかの周波数は、確実に区別するには近すぎることがあり、したがって、確実な動作のため及び高い安全性のために、数百のリング発振器が、PUFデバイス102に必要とされることがある。
いくつかの例では、受け入れられた識別子は、コンピュータシステム110のルート暗号鍵の構成要素として使用される。他の秘密情報もまた、慣習的に、例えば非表示の不揮発性ストレージに格納される鍵値などのルート鍵生成に含めることができる。これらの情報は、例えばハッシュ関数によって一緒に「混合」して、コンピュータシステムのルート暗号鍵を生成することができる。受け入れられた識別子は、PUF構成要素が実装されているチップの実質的に固有の識別子としても使用することもできる。このチップIDは、慣習的に秘密にしてもよく、任意の依存するルート鍵の秘密を危うくすることはない。したがって、暗号ハッシュ関数のような一方向性関数をチップIDに適用し、チップの公開IDを得ることができる。
PUFデバイス102は、受け入れられた識別子として解釈され、再びチップIDと称されうる候補識別子を生成するために使用することができる。上述のように、このチップIDは時々、コンピュータシステム110のルート暗号鍵の構成要素として使用されうる。本開示の例示的な実施態様を更に例示するために、以下の説明は、PUFデバイスがコンピュータシステムのチップID又はルート鍵の構成要素を生成するために使用される様々な用途に関する更なる情報を提供する。これらの用途の少なくともいくつかについては、固定された(しばしば秘密の)一連の入力が選択されてもよく、連結された出力ビット(すなわち、PUF値)は、チップID、又はルート鍵の構成要素を形成することができる。チップIDは、(少なくとも極めて高い確率で)あらゆるチップ又は集積回路に固有のものとすることができる。デジタル指紋(暗号化ハッシュ値)は、正しいチップIDから計算され、参照が値を有するときに不揮発性メモリ105に記憶できる。ランダムな回路ノイズ又は周波数変更攻撃が計算されたチップIDを変更する可能性があるので、検証モジュール104は、計算されたすべてのチップIDが正しいかどうかを検証することができる。
発振信号は、電磁(EM)放射を介した容量式又は誘導式の方法で、PUFデバイス102内のリング発振器から漏洩する可能性がある。漏洩信号は、電力線又はPUFデバイスのコネクタ(ピン)で測定することができる。漏洩した信号を分析することによって、権限のない第三者がリング発振器の予想されるカウンタ値のテーブルを構築することができ、それは周波数変更攻撃を手助けすることになる。より長い時間を使用するが、周波数変更攻撃はまた、この知識がなくても機能する可能性がある。
権限のない第三者がPUFデバイス102について得ることができる主な情報は、生成されたPUF値が正しいか否かである。生成されたPUF値が不正確になるように、不正な第三者がPUFデバイス内のリング発振器の1つ又は2~3のターゲットとされる発振周波数を変更することができる場合、コンピュータシステム110は、正常に始動(起動)しないだろう。コンピュータシステムの異常な始動又は起動の動作を観察することにより、不正な第三者が、PUFデバイスの比較構造に関する貴重な情報を入手する。不正な第三者がこのような情報を十分に収集した場合、正しいPUF値(正しいチップID)が推測される可能性がある。
一例では、干渉は、磁気コイル、供給電圧変調による容量性プレート、出力ピン上の負荷変動、又はレーザインパルスを介して注入することができる。別の例では、その供給電圧が同じワイヤによって供給されるとき、又はその動作が基板の電位を変化させるときに、内部マイクロプロセッサ上において短いループで特定のプログラムを実行することによってさえ、干渉を注入することができる。
権限のない第三者は、その周波数に影響を与えるために、PUFデバイス102内のターゲットのリング発振器に干渉を注入する。この特定のリング発振器が干渉下で始動すると、この干渉にロックがかかる。この時点で、権限のない第三者が、干渉信号をより高い又はより低い周波数に徐々に調整し、ターゲットのリング発振器はそれに従うが、他のリング発振器はそれに従わない。このような攻撃下でコンピュータシステム110の起動動作を観察することによって、PUFの単一周波数の比較をチェックし、マッピングすることができる。
別の例では、供給電圧の速くて大きな(例えば5%)の振幅は、PUFデバイス102内の特定のリング発振器を、通常の条件下よりも著しく高い又は低い周波数で振動させる。周波数の変化は、例えば30%を超える周波数の変化などのように、顕著になりうる。PUFデバイス102内の全てのリング発振器が、速い電圧振幅によって等しく影響を受けるわけではない。供給ライン上の様々なリップルパターンに応じて漏洩発振信号を測定することにより、権限のない第三者は、他のグループに影響を与えずに、あるグループのリング発振器の周波数を変更する方法に関する情報を得ることができる。権限のない第三者も、リング発振器の周波数関係をどのように操作するかについての情報を収集することができる。コンピュータシステム110の起動動作を観察することによって、権限のない第三者は、どの周波数比較がPUFデバイス102によって実行されるかについての情報を得る。
権限のない第三者は、上述のように、PUFデバイス102内の特定の個々のリング発振器又はリング発振器のグループにそれらの周波数を変更させることができる。特定の1つ又は複数のリング発振器の周波数変化がコンピュータシステム110の起動を妨げると、権限のない第三者は、攻撃された周波数(及び対応するリング発振器)が比較のためにPUFデバイスで使用され、周波数の変化がいくつかの比較を反転させることを知る。異なるリング発振器が攻撃されるときのコンピュータシステムの起動時の動作を観察することによって、不正な第三者は、生成されたPUF値を知るために十分な情報を得ることができ、又は少なくとも徹底的な検索がその真の値を明らかにするように、そのエントロピーを低減することができる。これにより、チップIDとルート鍵への直接攻撃が可能になる。
いくつかの例では、システム100は、周波数変更攻撃に対するコンピュータシステム110の応答を難読化するための対策を提供する。難読化された応答は、権限のない第三者によって観察される可能性がある。周波数変更攻撃がなければ、PUF計算はノイズの多いプロセスであり、ランダムな回路ノイズ又は環境影響のために時折失敗する可能性があるので、生成されたチップIDが正しくない場合、コンピュータシステムは、それを再試行しなければならない。周波数変更攻撃では、PUF値の強制的な再計算は、攻撃がPUFデバイス102内のリング発振器の少なくとも1つの周波数比較に影響を及ぼすのに成功した(少なくとも高い確率で)ことを直ちに権限のない第三者に知らせる。権限のない第三者はまた、影響を受けた周波数比較が実際にPUF値を生成するために使用されていることを知ることもできる。
第1レベルの対策では、システム100の制御論理101は、チップID生成プロセスを実行するために予め設定された回数(例えば、k=10回)で、PUFデバイス102を呼び出すように構成される。k個の計算されたチップIDのうちのいずれか1つが正しい(記憶されたデジタル指紋、例えばハッシュ値を参照することによって検証される)場合、コンピュータシステム110は、もしあれば、k回のどの計算が失敗したかを明らかにせずに、正しいチップIDを使用することができる。一例では、システムの制御論理は、たとえk個のチップID計算のうちの第1又は第2のチップID計算において、正しいチップID値が早い段階で計算されたとしても、PUFデバイスを呼び出し、常にk個(例えば10個)すべてのチップID計算を実行するように構成される。そうでなければ、コンピュータシステム110の起動時間の変動は、PUF評価プロセスの成功及び失敗のシーケンスに依存しうる。始動タイミングの変動により、不正利用可能な情報が権限のない第三者に漏洩することがある。
いくつかの例では、k個の計算されたチップIDのうちのいずれか1つが正しい場合(計算されたハッシュ値が、検証モジュール104によって検証されるとき)、有効化モジュール106は、コンピュータシステム110を通常の動作モード(上述の第1のモード)で起動させるように構成される。通常動作モードでは、コンピュータシステムは、少なくとも:ファームウェアとデータをコンピュータシステムのメモリ内にロードし;受け入れられた識別子を使用してファームウェアとデータに対してデータ認証を実行し;ファームウェアとデータを復号操作する。
周波数変更攻撃は信頼性が低く、つまり、散発的にしか成功しない。いくつかの要因が、周波数変更攻撃の成功に影響を与えうる。例えば、回路ノイズは、権限のない第三者にとって予測不可能であるが、それは、PUFデバイス102内のリング発振器の発振周波数に影響を及ぼしうる。また、クロック信号は、位相スキューを有することがある。コンピュータシステム110は1つの正しいチップIDを用いて適切に動作することができるので、攻撃が成功すると、k個すべてのチップID計算が首尾よく攻撃され、k個すべてのPUF値が損なわれるに違いない。k個すべてのPUF値を無効にするために攻撃をk回繰り返さなければならない場合、ほぼ確実に、k個すべてのPUF値の中に1つ又は複数の正しいチップID計算が存在することになる。したがって、k回すべての試行がk回すべてのチップID計算に対して成功することを保証するために、攻撃を何度も繰り返さなければならない。一例では、攻撃が10%の時間成功し、k=10である場合、チップIDのk回すべての計算が反復攻撃によって台無しにされる可能性は10-10であり、極めて可能性が低くなる。したがって、第一段階の対策が有効である。
別の例では、第2レベルの対策は、チップID生成が完全に失敗した(チップID計算に対するk回すべての呼び出しが誤ったPUF値を生成した)かどうかの情報を隠すことができる。
いくつかの例では、チップID生成が完全に失敗した場合(計算されたハッシュ値のいずれも検証モジュール104によって検証されない場合)、コンピュータシステム110は、正しいチップIDがなくても又は正しいルート鍵がなくても機能しないことになる。この場合、有効化モジュール106は、コンピュータシステムを偽の動作モード(上述の第2のモード)で起動させるように構成される。偽の動作モードでは、コンピュータシステムに、ファームウェアとデータをコンピュータシステムのメモリ内にロードさせる。偽の動作モードでは、またコンピュータシステムに、受け入れられた識別子がなくてもファームウェアとデータに対してデータ認証を実行させ、データ認証におけるいかなるエラーも無視させる。偽の動作モードでは、更にコンピュータシステムに、予め設定された無効な鍵を用いてファームウェアとデータに対して復号操作を実行させる。更に、オプションで、偽の動作モードで、偽の起動手順の終わりに予め設定された遅延の後に、コンピュータシステムのユーザにセキュリティエラーを報告させる。偽の動作モードでは、コンピュータシステムは、すべての初期化作業を実行することができる。偽の動作モードは、通常動作モードを模擬する。
第2レベルの対策の有効性は、偽の動作モードが通常動作モードをどの程度模擬できるかに依存する。偽の動作モードでの機能の欠如、単純な電力解析、又はタイミング解析のいずれかにより、権限のない第三者が最終的になおも違いを見つける可能性があろう。すなわち、権限のない第三者は、周波数変更攻撃がPUFデバイス102を首尾よく攻撃したかを最終的に検出することができ、その結果、コンピュータシステム110は、通常動作モードで動作することができない。そのため、第2レベルの対策は、PUFデバイスへの攻撃を遅らせることができるが、すべての攻撃を防止できないかもしれない。この減速により、周波数変更攻撃がPUFデバイスの1つ又は複数のリング発振器に正常に影響を与えたことを検出するために権限のない第三者が使用する時間が、ミリ秒から秒に増加する可能性がある。それはPUFデバイスへの攻撃の3桁規模の減速である。
第2レベルの対策は、第1レベルの対策と組み合わせることも、別々に使用することもできる。保護されていないPUFデバイスを攻撃して、正しいチップIDを再び作成するのに、数週間かかることがある。上記の第1レベル及び第2レベルの対策を使用することによって、正しいチップIDを再び作成するための周波数変更攻撃は、数年に増やされる。それまでに、保護された情報は、権限のない第三者に無関係又は無価値になる可能性がある。チップごとにリング発振器が異なるため、1つのチップが(何年も試行した後に)首尾よく攻撃された場合、失われた秘密情報は、他のチップをより速く攻撃するために使用できないことに留意されたい。また、製造上のランダムなばらつきにより、リング発振器、更にはPUFデバイスも、配置されたコンピュータシステムごとに異なる。したがって、多くのコンピュータシステムを同時に攻撃しても、権限のない第三者には役立たない。1つのコンピュータシステムへの攻撃が成功するまでには長い時間がかかり、攻撃に成功したコンピュータシステムから得られた情報は、他のコンピュータシステムを攻撃するのに役立たない。
図3は、様々な例示的実施態様による、コンピュータシステム110においてセキュリティを提供する方法300の様々なステップを示すフローチャートである。方法は、システム100によって実施される。システムは、集積回路120内に実装され、複数のリング発振器、例えばリング発振器201-203を含むPUFデバイス102を含む。コンピュータシステムの始動時に、ブロック301において、方法は、複数のPUF値を生成するために、同一の入力値を用いてPUFデバイスを予め設定された複数の回数だけ呼び出すことを含む。PUF値は、集積回路の候補識別子として使用される。ブロック302において、方法は、ハッシュ関数を候補識別子に適用してそれぞれのハッシュ値を生成することを含む。ブロック303において、方法は、不揮発性メモリ105から参照ハッシュ値にアクセスすることを含む。参照ハッシュ値は、ハッシュ関数の適用から集積回路の受け入れられた識別子までである。ブロック304において、方法は、参照ハッシュ値を使用してそれぞれのハッシュ値のすべてを検証することを含む。ブロック305において、方法は、複数のそれぞれのハッシュ値のそれぞれのハッシュ値が検証されるときに、コンピュータシステムを第1のモードで動作可能にすること、又はそうでなければ、それぞれのハッシュ値のいずれも検証されないときに、コンピュータシステムを第2のモードで動作可能にすることを含む。検証されたそれぞれのハッシュ値は、一致する候補識別子のうちの候補識別子に対するものであり、それによって受け入れられた識別子と解釈される。
このセクションは、限定することなく、一連の段落として提示された本開示のシステム及び方法の更なる態様及び特徴を記載し、それらのいくつか又はすべては、明確かつ効率的に英数字で指定されうる。
A1. コンピュータシステムにおいてセキュリティを提供するためのシステムであって、集積回路に実装され、物理的複製不可能機能(PUF)デバイスと、前記コンピュータシステムの起動時に、少なくとも同一の入力値を用いて予め設定された複数の回数だけPUFデバイスを呼び出し、集積回路の候補識別子として使用される複数のPUF値を生成し;ハッシュ関数を候補識別子に適用し、それぞれのハッシュ値を生成し;ハッシュ関数の適用から集積回路の受け入れられた識別子までの参照ハッシュ値に、不揮発性メモリからアクセスし;参照ハッシュ値を使用して、それぞれの複数のハッシュ値のすべてを検証し;それぞれの複数のハッシュ値のうちのそれぞれのハッシュ値が検証されるときに、コンピュータシステムを第1のモードで動作可能にする、又はそうでなければ、それぞれのハッシュ値のいずれも検証されないときに、コンピュータシステムを第2のモードで動作可能にすることであって、それぞれのハッシュ値が、受け入れられた識別子と一致し、それによって受け入れられた識別子と解釈される候補識別子のうちの1つの候補識別子に対するものである、コンピュータシステムを第1のモードで動作可能にする、又はそうでなければ、コンピュータシステムを第2のモードで動作可能にするよう構成される1つ又は複数の論理回路を含む。
A2. PUFデバイスは複数のリング発振器を含み、PUFデバイスの入力値は、複数のリング発振器のうちの対のリング発振器の識別子のシーケンスを含み、PUFデバイスを呼び出すように構成されている1つ又は複数の論理回路が、予め設定された複数の回数の各々について、シーケンス内の各対の識別子が、PUFデバイスに、リング発振器のそれぞれの対の発振周波数を比較させ、どちらが大きいかを示すビット値を出力させる、同一の入力値を適用するように構成されている1つ又は複数の論理回路を含み、ビット値が、対の識別子のシーケンスにわたって出力されるビット値のシーケンスのうちの1つであり、ビット値のシーケンスが入力値に対応する複数のPUF値のうちの1つである、段落A1に記載のシステム。
A3. それぞれのハッシュ値のすべてを検証するように構成されている1つ又は複数の論理回路が、それぞれのハッシュ値のうちの各ハッシュ値について、ハッシュ値を参照ハッシュ値と比較し、ハッシュ値が参照ハッシュ値と一致するかどうかを判定し、それによってハッシュ値が検証されるように構成されている1つ又は複数の論理回路を含む、段落A1に記載のシステム。
A4. コンピュータシステムを第1のモードで動作可能に構成されている1つ又は複数の論理回路が、コンピュータシステムに、少なくとも:ファームウェアとデータをコンピュータシステムのメモリ内にロードさせ;受け入れられた識別子を使用して、ファームウェアとデータのデータ認証を実行させ;鍵を用いてファームウェアとデータの復号操作を実行させる第1のモードで、コンピュータシステムを起動させるように構成されていることを含む、段落A1に記載のシステム。
A5. コンピュータシステムを第2のモードで動作可能に構成されている1つ又は複数の論理回路が、コンピュータシステムに、少なくともファームウェアとデータをコンピュータシステムのメモリ内にロードさせ;受け入れられた識別子がなくてもファームウェアとデータのデータ認証を実行させ、データ認証のいかなるエラーも無視させ;予め設定された無効な鍵を用いて、ファームウェアとデータの復号操作を実行させる第2のモードで、コンピュータシステムを起動させるよう構成されていることを含む、段落A4に記載のシステム。
A6. 受け入れられた識別子が、コンピュータシステムのルート暗号鍵の構成要素として使用される、段落A1に記載のシステム。
A7. 第1のモードが通常動作モードである、段落A1に記載のシステム。
A8. 第2のモードが、通常動作モードを模擬する偽の動作モードである、段落A7に記載のシステム。
A9. コンピュータシステムを第2のモードで動作可能に構成されている1つ又は複数の論理回路が、コンピュータシステムに、予め設定された遅延の後にコンピュータシステムのユーザにセキュリティエラーを報告させる第2のモードで、コンピュータシステムを起動させるように構成されていることを含む、段落A5に記載のシステム。
B10. コンピュータシステムにおいてセキュリティを提供するためのシステムによって実装される方法であって、システムが、集積回路に実装され、物理的複製不可能機能(PUF)デバイスを備え、コンピュータシステムの起動時に、同一の入力値を用いて予め設定された複数の回数だけPUFデバイスを呼び出し、集積回路の候補識別子として使用される複数のPUF値を生成し;ハッシュ関数を候補識別子に適用し、それぞれのハッシュ値を生成し;ハッシュ関数の適用から集積回路の受け入れられた識別子までの参照ハッシュ値に、不揮発性メモリからアクセスし;参照ハッシュ値を使用して、それぞれの複数のハッシュ値のすべてを検証し;それぞれの複数のハッシュ値のうちのそれぞれのハッシュ値が検証されるときに、コンピュータシステムを第1のモードで動作可能にする、又はそうでなければ、それぞれのハッシュ値のいずれも検証されないときに、コンピュータシステムを第2のモードで動作可能にすることであって、それぞれのハッシュ値が、受け入れられた識別子と一致し、それによって受け入れられた識別子と解釈される候補識別子のうちの1つの候補識別子に対するものである、第1のモードで動作可能にする、又はそうでなければ、第2のモードで動作可能にする、方法。
B11. PUFデバイスが複数のリング発振器を含み、PUFデバイスの入力値が、複数のリング発振器のうちの対のリング発振器の識別子のシーケンスを含み、PUFデバイスを呼び出すことが、予め設定された複数回の各々について、シーケンス内の各対の識別子が、PUFデバイスに、リング発振器のそれぞれの対の発振周波数を比較させ、どちらが大きいかを示すビット値を出力させる、同一の入力値を適用することを含み、ビット値が、対の識別子のシーケンスにわたって出力されるビット値のシーケンスのうちの1つであり、ビット値のシーケンスが入力値に対応する複数のPUF値のうちの1つである、段落B10に記載の方法。
B12. それぞれのハッシュ値のすべてを検証することが、それぞれのハッシュ値のうちの各ハッシュ値について、ハッシュ値を参照ハッシュ値と比較し、ハッシュ値が参照ハッシュ値と一致するかどうかを判定し、それによってハッシュ値が検証されること含む、段落B10に記載の方法。
B13. コンピュータシステムを第1のモードで動作可能に構成されている1つ又は複数の論理回路が、コンピュータシステムに、少なくとも:ファームウェアとデータをコンピュータシステムのメモリ内にロードさせ;受け入れられた識別子を使用して、ファームウェアとデータのデータ認証を実行させ;鍵を用いてファームウェアとデータの復号操作を実行させる第1のモードで、コンピュータシステムを起動させることを含む、段落B10に記載の方法。
B14. コンピュータシステムを第2のモードで動作可能にすることは、コンピュータシステムに、少なくとも:ファームウェアとデータをコンピュータシステムのメモリ内にロードさせ;受け入れられた識別子がなくてもファームウェアとデータのデータ認証を実行させ、データ認証のいかなるエラーも無視させ;予め設定された無効な鍵を用いて、ファームウェアとデータの復号操作を実行させる第2のモードで、コンピュータシステムを起動させることを含む、段落B13に記載の方法。
B15. 受け入れられた識別子が、コンピュータシステムのルート暗号鍵の構成要素として使用される、段落B10に記載の方法。
B16. 第1のモードが通常動作モードである、段落B10に記載の方法。
B17. 第2のモードが、通常動作モードを模擬する偽の動作モードである、段落B16に記載の方法。
B18. コンピュータシステムを第2のモードで動作可能にすることが、コンピュータシステムに、予め設定された遅延の後にコンピュータシステムのユーザにセキュリティエラーを報告させる第2のモードで、コンピュータシステムを起動させることを含む、段落B14に記載の方法。
上述の説明及び添付図面において提示されている教示の恩恵を受ける、本開示に関連する当業者には、本明細書に明記された本開示の多数の修正例及びその他の実施形態が想起されよう。従って、本開示は開示された特定の実施態様に限定されず、修正例及び他の実施態様は付随する特許請求の範囲の中に含まれることが意図されているものと理解すべきである。更に、上述の説明及び添付図面は、要素及び/又は機能の特定の例示的な組み合わせに照らして例示的な実施態様を説明しているが、付随する特許請求の範囲から逸脱せずに、代替的な実施態様によって、要素及び/又は機能の様々な組み合わせが提供されうることを理解すべきである。つまり、付随する特許請求の範囲の一部に明記されうるように、例えば、明示的に上述されているものとは異なる要素及び/又は機能の組み合わせも想定される。本明細書では特定の用語が用いられているが、それらは、一般的な、及び説明的な意味でのみ使用されており、限定を目的とするものではない。

Claims (15)

  1. コンピュータシステムにおいてセキュリティを提供するためのシステムであって、集積回路に実装され、物理的複製不可能機能(PUF)デバイスと、前記コンピュータシステムの起動時に、少なくとも
    同一の入力値を用いて予め設定された複数の回数だけ前記PUFデバイスを呼び出し、前記集積回路の候補識別子として使用される複数のPUF値を生成し、
    ハッシュ関数を前記候補識別子に適用し、それぞれのハッシュ値を生成し、
    前記ハッシュ関数の適用から前記集積回路の受け入れられた識別子までの参照ハッシュ値に、不揮発性メモリからアクセスし、
    前記参照ハッシュ値を使用して、それぞれの複数の前記ハッシュ値のすべてを検証し、
    それぞれの複数の前記ハッシュ値のうちのそれぞれのハッシュ値が検証されるときに、前記コンピュータシステムを第1のモードで動作可能にする、又はそうでなければ、それぞれの前記ハッシュ値のいずれも検証されないときに、前記コンピュータシステムを第2のモードで動作可能にすることであって、それぞれの前記ハッシュ値が、前記受け入れられた識別子と一致し、それによって前記受け入れられた識別子と解釈される前記候補識別子のうちの1つの候補識別子に対するものである、前記コンピュータシステムを第1のモードで動作可能にする、又はそうでなければ、第2のモードで動作可能にする
    よう構成されている1つ又は複数の論理回路とを備えるシステム。
  2. 前記PUFデバイスが複数のリング発振器を含み、前記PUFデバイスの前記入力値が、前記複数のリング発振器のうちの対のリング発振器の識別子のシーケンスを含み、
    前記PUFデバイスを呼び出すように構成されている前記1つ又は複数の論理回路が、前記予め設定された複数の回数の各々について、前記シーケンス内の各対の識別子が、前記PUFデバイスに、前記リング発振器のそれぞれの対の発振周波数を比較させ、どちらが大きいかを示すビット値を出力させる、前記同一の入力値を適用するように構成されている前記1つ又は複数の論理回路を含み、前記ビット値が、前記対の識別子のシーケンスにわたって出力されるビット値のシーケンスのうちの1つであり、前記ビット値のシーケンスが前記入力値に対応する前記複数のPUF値のうちの1つである、請求項1に記載のシステム。
  3. それぞれの前記ハッシュ値のすべてを検証するように構成されている前記1つ又は複数の論理回路が、それぞれの前記ハッシュ値のうちの各ハッシュ値について、前記ハッシュ値を前記参照ハッシュ値と比較し、前記ハッシュ値が前記参照ハッシュ値と一致するかどうかを判定し、それによって前記ハッシュ値が検証されるように構成されている前記1つ又は複数の論理回路を含む、請求項1又は2に記載のシステム。
  4. 前記コンピュータシステムを前記第1のモードで動作可能に構成されている前記1つ又は複数の論理回路が、前記コンピュータシステムに、少なくとも
    ファームウェアとデータを前記コンピュータシステムのメモリ内にロードさせ、
    前記受け入れられた識別子を使用して、前記ファームウェアとデータのデータ認証を実行させ、
    鍵を用いて前記ファームウェアとデータの復号操作を実行させる
    前記第1のモードで、前記コンピュータシステムを起動させるように構成されていることを含む、請求項1から3のいずれか一項に記載のシステム。
  5. 前記コンピュータシステムを前記第2のモードで動作可能に構成されている前記1つ又は複数の論理回路が、前記コンピュータシステムに、少なくとも
    前記ファームウェアとデータを前記コンピュータシステムの前記メモリ内にロードさせ、
    前記受け入れられた識別子がなくても前記ファームウェアとデータの前記データ認証を実行させ、前記データ認証のいかなるエラーも無視させ、
    予め設定された無効な鍵を用いて、前記ファームウェアとデータの前記復号操作を実行させる
    前記第2のモードで、前記コンピュータシステムを起動させるように構成されていることを含む、請求項4に記載のシステム。
  6. 前記受け入れられた識別子が、前記コンピュータシステムのルート暗号鍵の構成要素として使用される、請求項1から5のいずれか一項に記載のシステム。
  7. 前記第1のモードが通常動作モードである、請求項1から6のいずれか一項に記載のシステム。
  8. 前記第2のモードが、前記通常動作モードを模擬する偽の動作モードである、請求項7に記載のシステム。
  9. 前記コンピュータシステムを前記第2のモードで動作可能に構成されている前記1つ又は複数の論理回路が、前記コンピュータシステムに、予め設定された遅延の後に前記コンピュータシステムのユーザにセキュリティエラーを報告させる前記第2のモードで、前記コンピュータシステムを起動させるように構成されていることを含む、請求項5に記載のシステム。
  10. コンピュータシステムにおいてセキュリティを提供するための、請求項1から9のいずれか一項に記載のシステムによって実装される方法であって、前記システムが、集積回路に実装され、前記コンピュータシステムの起動時に、
    同一の入力値を用いて予め設定された複数の回数だけ前記PUFデバイスを呼び出し、前記集積回路の候補識別子として使用される複数のPUF値を生成し、
    ハッシュ関数を前記候補識別子に適用し、それぞれのハッシュ値を生成し、
    前記ハッシュ関数の適用から前記集積回路の受け入れられた識別子までの参照ハッシュ値に、不揮発性メモリからアクセスし、
    前記参照ハッシュ値を使用して、それぞれの複数の前記ハッシュ値のすべてを検証し、
    それぞれの複数の前記ハッシュ値のうちのそれぞれのハッシュ値が検証されるときに、前記コンピュータシステムを第1のモードで動作可能にする、又はそうでなければ、それぞれの前記ハッシュ値のいずれも検証されないときに、前記コンピュータシステムを第2のモードで動作可能にすることであって、それぞれの前記ハッシュ値が、前記受け入れられた識別子と一致し、それによって前記受け入れられた識別子と解釈される前記候補識別子のうちの1つの候補識別子に対するものである、前記コンピュータシステムを第1のモードで動作可能にする、又はそうでなければ、前記コンピュータシステムを第2のモードで動作可能にする
    物理的複製不可能機能(PUF)デバイスを備える、方法。
  11. 前記PUFデバイスが複数のリング発振器を含み、前記PUFデバイスの前記入力値が、前記複数のリング発振器のうちの対のリング発振器の識別子のシーケンスを含み、
    前記PUFデバイスを呼び出すことが、前記予め設定された複数の回数の各々について、前記シーケンス内の各対の識別子が、前記PUFデバイスに、前記リング発振器のそれぞれの対の発振周波数を比較させ、どちらが大きいかを示すビット値を出力させる、前記同一の入力値を適用することを含み、前記ビット値が、前記対の識別子のシーケンスにわたって出力されるビット値のシーケンスのうちの1つであり、前記ビット値の前記シーケンスが前記入力値に対応する前記複数のPUF値のうちの1つである、請求項10に記載の方法。
  12. それぞれの前記ハッシュ値のすべてを検証することが、それぞれの前記ハッシュ値のうちの各ハッシュ値について、前記ハッシュ値を前記参照ハッシュ値と比較し、前記ハッシュ値が前記参照ハッシュ値と一致するかどうかを判定し、それによって前記ハッシュ値が検証されることを含む、請求項10又は11に記載の方法。
  13. 前記コンピュータシステムを前記第1のモードで動作可能にすることが、前記コンピュータシステムに、少なくとも
    ファームウェアとデータを前記コンピュータシステムのメモリ内にロードさせ、
    前記受け入れられた識別子を使用して、前記ファームウェアとデータのデータ認証を実行させ、
    鍵を用いて前記ファームウェアとデータの復号操作を実行させる
    前記第1のモードで、前記コンピュータシステムを起動させることを含む、請求項10から12のいずれか一項に記載の方法。
  14. 前記コンピュータシステムを前記第2のモードで動作可能にすることが、前記コンピュータシステムに、少なくとも
    前記ファームウェアとデータを前記コンピュータシステムの前記メモリ内にロードさせ、
    前記受け入れられた識別子がなくても前記ファームウェアとデータの前記データ認証を実行させ、前記データ認証のいかなるエラーも無視させ、
    予め設定された無効な鍵を用いて、前記ファームウェアとデータの前記復号操作を実行させる
    前記第2のモードで、前記コンピュータシステムを起動させることを含む、請求項13に記載の方法。
  15. 前記受け入れられた識別子が、前記コンピュータシステムのルート暗号鍵の構成要素として使用される、請求項10から14のいずれか一項に記載の方法。
JP2018240550A 2017-12-22 2018-12-25 リング発振器ベースの物理的複製不可能機能に対する頻繁な変更攻撃に対する対策 Active JP7222697B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/853,181 US10915635B2 (en) 2017-12-22 2017-12-22 Countermeasures to frequency alteration attacks on ring oscillator based physical unclonable functions
US15/853,181 2017-12-22

Publications (2)

Publication Number Publication Date
JP2019146158A JP2019146158A (ja) 2019-08-29
JP7222697B2 true JP7222697B2 (ja) 2023-02-15

Family

ID=65003101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018240550A Active JP7222697B2 (ja) 2017-12-22 2018-12-25 リング発振器ベースの物理的複製不可能機能に対する頻繁な変更攻撃に対する対策

Country Status (4)

Country Link
US (1) US10915635B2 (ja)
EP (1) EP3503466B1 (ja)
JP (1) JP7222697B2 (ja)
CN (1) CN110022214B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11082241B2 (en) * 2018-03-30 2021-08-03 Intel Corporation Physically unclonable function with feed-forward addressing and variable latency output
US10404454B1 (en) 2018-04-25 2019-09-03 Blockchain Asics Llc Cryptographic ASIC for derivative key hierarchy
US10778451B2 (en) * 2018-07-30 2020-09-15 United States Of America As Represented By The Secretary Of The Navy Device and method for hardware timestamping with inherent security
US11487872B2 (en) * 2018-12-07 2022-11-01 Hewlett Packard Enterprise Development Lp Detection of hardware security attacks
US11442492B2 (en) * 2019-03-04 2022-09-13 Intel Corporation Clock glitch mitigation apparatus and method
US11269999B2 (en) * 2019-07-01 2022-03-08 At&T Intellectual Property I, L.P. Protecting computing devices from malicious tampering
US20210258173A1 (en) * 2020-02-18 2021-08-19 International Business Machines Corporation Gain cell memory based physically unclonable function
CN114614987B (zh) * 2020-12-03 2023-07-07 北京京东方技术开发有限公司 一种集成电路及其数字指纹生成电路、方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008056612A1 (fr) 2006-11-06 2008-05-15 Panasonic Corporation Appareil de sécurité d'informations
WO2012164721A1 (ja) 2011-06-02 2012-12-06 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009533742A (ja) 2006-04-11 2009-09-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データベースなしのノイジーな低電力puf認証
US20130051552A1 (en) * 2010-01-20 2013-02-28 Héléna Handschuh Device and method for obtaining a cryptographic key
CN102948113A (zh) 2010-06-07 2013-02-27 三菱电机株式会社 信号处理系统
US20120183135A1 (en) * 2011-01-19 2012-07-19 Verayo, Inc. Reliable puf value generation by pattern matching
US8750502B2 (en) * 2012-03-22 2014-06-10 Purdue Research Foundation System on chip and method for cryptography using a physically unclonable function
DE102012219112A1 (de) * 2012-10-19 2014-04-24 Siemens Aktiengesellschaft Verwenden einer PUF zur Prüfung einer Authentisierung, insbesondere zum Schutz vor unberechtigtem Zugriff auf eine Funktion eines ICs oder Steuergerätes
US9787480B2 (en) * 2013-08-23 2017-10-10 Qualcomm Incorporated Applying circuit delay-based physically unclonable functions (PUFs) for masking operation of memory-based PUFs to resist invasive and clone attacks
US10958435B2 (en) * 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
JP6882678B2 (ja) * 2017-06-30 2021-06-02 富士通株式会社 衝突検出システムおよび衝突検出方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008056612A1 (fr) 2006-11-06 2008-05-15 Panasonic Corporation Appareil de sécurité d'informations
WO2012164721A1 (ja) 2011-06-02 2012-12-06 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法

Also Published As

Publication number Publication date
CN110022214B (zh) 2023-10-27
CN110022214A (zh) 2019-07-16
EP3503466A1 (en) 2019-06-26
EP3503466B1 (en) 2021-09-22
US20190384915A1 (en) 2019-12-19
US10915635B2 (en) 2021-02-09
JP2019146158A (ja) 2019-08-29

Similar Documents

Publication Publication Date Title
JP7222697B2 (ja) リング発振器ベースの物理的複製不可能機能に対する頻繁な変更攻撃に対する対策
US9965249B2 (en) Stochastic processing
US9953166B2 (en) Method for securely booting target processor in target system using a secure root of trust to verify a returned message authentication code recreated by the target processor
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
JP5031029B2 (ja) 複数のプロセッサにまたがるセキュア・ブートのシステム、方法およびプログラム
US10491401B2 (en) Verification of code signature with flexible constraints
US8386791B2 (en) Secure data processing method based particularly on a cryptographic algorithm
US11243744B2 (en) Method for performing a trustworthiness test on a random number generator
US10628575B2 (en) System and method to cause an obfuscated non-functional device to transition to a starting functional state using a specified number of cycles
US20160055331A1 (en) Detecting exploits against software applications
US20150242606A1 (en) Device having secure jtag and debugging method for the same
JP2013142917A (ja) パスワード認証回路と方法
Schink et al. Security and trust in open source security tokens
Krahmer et al. Correction fault attacks on randomized crystals-dilithium
Dai et al. A framework to eliminate backdoors from response-computable authentication
Mohammad et al. Required policies and properties of the security engine of an SoC
US11748481B1 (en) Verifying the integrity of a computing platform
US20220043900A1 (en) Method and device for authenticating an fpga configuration
Leiserson Side channels and runtime encryption solutions with Intel SGX
US20240020422A1 (en) Process and circuit for verifying the integrity of a software application
Sami et al. SAP: Silicon Authentication Platform for System-on-Chip Supply Chain Vulnerabilities
Feller et al. Requirements for Trustworthiness
US9747471B2 (en) Secure switch between modes
Ledwaba Determining the Performance Costs in Establishing Cryptography Services as Part of a Secure Endpoint Device for the Industrial Internet of Things
Hiller et al. Guest Editorial: Hardware/Software Cross-Layer Technologies for Trustworthy and Secure Computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221227

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: 20230117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230203

R150 Certificate of patent or registration of utility model

Ref document number: 7222697

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150