JP7038185B2 - レジスタ内容のインテグリティを検証するシステム、および、その方法 - Google Patents

レジスタ内容のインテグリティを検証するシステム、および、その方法 Download PDF

Info

Publication number
JP7038185B2
JP7038185B2 JP2020205761A JP2020205761A JP7038185B2 JP 7038185 B2 JP7038185 B2 JP 7038185B2 JP 2020205761 A JP2020205761 A JP 2020205761A JP 2020205761 A JP2020205761 A JP 2020205761A JP 7038185 B2 JP7038185 B2 JP 7038185B2
Authority
JP
Japan
Prior art keywords
register
contents
hash
mode
integrated circuit
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
JP2020205761A
Other languages
English (en)
Other versions
JP2021096852A (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 JP2021096852A publication Critical patent/JP2021096852A/ja
Application granted granted Critical
Publication of JP7038185B2 publication Critical patent/JP7038185B2/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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/032Protect output to user by software means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0405Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals comprising complete test loop
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Shift Register Type Memory (AREA)

Description

本発明は、集積回路に保存される内容のインテグリティの維持に関するものである。
集積回路の記憶内容の検証、すなわち、メモリ保護、エラー検出、あるいは、エラー訂正は、重要な目標として認識されている。よって、集積回路は、メモリアレイ、および、オンザフライメモリエラー検出/訂正機能、たとえば、パリティ、あるいは、エラー訂正コード(ECC)電気回路を有する。しかし、ECCは、大きいメモリにとって非常に高くつき、且つ、暗号メモリ検証ほど強くない。よって、暗号メモリ検証は、通常、ファームウェア、あるいは、専用ハードウェア中で実行されるダイジェスト-リドゥ比較(digest redo compare)と称される技術を用いて達成され、記憶内容は、一度要約されて、リファレンスを生成する。その後、ダイジェストは、時々(たとえば、周期的に)、リドゥされるとともに、比較が実行されるたびに、新しいダイジェストが、リファレンスダイジェストと同じであるか検証する。たとえば、記憶空間は、複数の"チャンク(chunk)"に分離、あるいは、分割される。その後、プロセッサは、各チャンクのハッシュ(hash)を計算、および、保存し、通常、チップ上に秘密鍵を保存する。プロセッサが、メモリ中のチャンクCからブロックを読み取るとき、プロセッサは、チャンクC全体を読み取る、あるいは、ロードし、すでにロードされたチャンクのハッシュを再計算するとともに、その後、再計算された最新のハッシュとメモリ中に保存されたチャンクCに関するハッシュを比較する。比較において差が生じていない場合、すべてが良好である一方、再計算された最新のハッシュが、保存されたハッシュと異なる場合、メモリアレイの物理的、および、電気的インテグリティが、完全であると分かっていると仮定すれば、これは、記憶内容がすでに改ざんされていることを示す。
米国特許第8146028号で、従来のレジスタ倍加/複製が記述されており、これは、現有のレジスタ内容検証方法である。通常、既定のレジスタは、並列に結合された複数のフリップフロップを有し、これは、倍加したフリップフロップを有し、複数のフリップフロップを生成すると考えられ、全てのフリップフロップを維持するとともに、時々、あるいは、周期的に(たとえば、連続して)、複数のフリップフロップ間の値を比較して、複製の実例間のミスマッチを検出し、検出された場合、それは、不正な変更の存在を表す。通常、倍加が実現するとき、各レジスタは、それ自身のシャドウ(shadow)、および、比較論理を有するので、レジスタ間に、依存性や相関がない。
Bertaccoの米国特許8341473号で、ここで表示、および、記述される任意の実施形態と連動して用いられる論理素子のインテグリティチェック(ただし、それらの内容のインテグリティではない)が記述されている。Bertaccoは、https://patents.google.com/patent/US8341473B2/zh-cnで、"四段階分割トランザクション(split transaction)テスト工程を用いて、レジスタファイルのインテグリティをチェックする方法"を記述している。
集積回路の安全性の改善は、集積回路産業における不変の関心事である。安全性を改善する一方法は、集積回路上のレジスタの内容をしっかりと保護することである。レジスタの内容の保護は、通常、レジスタが存在する装置の正常な操作期間中ずっと、意図された修正以外に、レジスタ内容は、完全なままであることを保証する。
ある実施形態は、集積回路の配置、および/または、制御設定のインテグリティを維持するシステム、あるいは、方法を提供する。
ある実施形態は、集積回路の上の少なくとも一つのレジスタの内容のインテグリティをチェックするシステム、あるいは、方法を提供する。
客観的に、集積回路の記憶内容の検証より、集積回路のレジスタ内容に対する検証は、文献中で得られる重要視は大幅に少なくなければならない。レジスタ内容検証が完全に討論されるとき、通常、倍加(たとえば、複製)により達成される。少数のレジスタ(現代の集積回路中、提供される数千個のレジスタ中の少数のレジスタ、且つ、数量が増加中)は、内容検証が必要であるとみなされ、その後、それらのレジスタのために、専用の保護ハードウェアが実現される。
本文中のある実施形態は、大量のレジスタ(たとえば、現代の集積回路上に提供される数千個のレジスタ全部)に広範な保護(内容検証)を提供する。
本文中のある実施形態は、ダイジェストベースのレジスタ内容インテグリティ検証を提供し、数千個のレジスタ、あるいは、さらに多くのレジスタが集積回路上に存在するとき、ダイ面積の観点からいうと、さらに効率的である(さらに小さいダイ面積が必要である)。
ある実施形態は、集積回路のレジスタ(たとえば、レジスタファイル)の内容に対し、インテグリティチェックを実行するハードウェアを提供し、その方式は、集積回路の通常機能に対し透過的である、あるいは、通常機能を破壊しない。ハッシュは、ハードウェア、ソフトウェア、あるいは、ファームウェア中で実現されるロジックを用いて、IC記憶内容検証のために計算され、これは、通常、最も簡単なオプション、あるいは、ハードウェアに関してコストが一番低いオプションの設計者の選択に基づく。記憶内容を検証するとき、および、レジスタ内容を検証するとき、ハッシュの計算は、類似して、あるいは、完全に同じように実行されるが、しかし、通常、メモリのハッシュが計算されている間、メモリは使用、あるいは、アクセスできず、中断することなく、レジスタ値が得られる。
以下の用語は、現有の技術文献中に出現する任意の定義、あるいは、明細書に基づいて解釈されるか、あるいは、各自の範囲内で以下の内容を含む。
レジスタファイル(resister file):通常、単一集積回路上に、一組のレジスタを有することを意図する。従来のレジスタファイルは、ウィキペディアの“レジスタファイル”項目で記述されている。一実施形態によると、集積回路は、一つ以上のレジスタファイルを有するとともに、既定のレジスタファイル、あるいは、一組のレジスタファイル中の全レジスタに、一ダイジェストを計算する。一実施形態によると、集積回路は、一つ以上のレジスタバンクを有するとともに、既定のレジスタバンク、あるいは、一組のレジスタバンク中の全レジスタに、一ダイジェストを計算する。しかし、理解できることは、図1、および、本文の他の場所で言及されるレジスタファイルは、少なくとも一つのファイル、あるいは、より一般的には、単一の集積回路上の任意の複数のレジスタを有することを意図し、たとえば、"レジスタバンク"は、複数のレジスタファイル、あるいは、その他の任意のレジスタ群を有する。
認証(Auth):ダイジェストを有することを意図する。
“ダイジェスト”(digest)(“ダイジェスト機能”とも称される):任意のサイズのデータを、固定サイズのビットストリングにマップする計算アルゴリズム;ダイジェスト機能の出力であるこのビットストリングは、時に、“ダイジェスト”と称される。ここで用いられるダイジェストと言う用語は、暗号ダイジェストを含み、データは、暗号機能、たとえば、暗号ハッシュ関数によりマップされる。しかし、すべてのダイジェストが暗号化されるわけではなく、より一般的には、IC設計者が望む強度に基づいて、任意の適当なダイジェストが用いられる。たとえば、ダイジェストは、チェックサムダイジェストを有し、このような状況下で、データは、通常、固定サイズの合計(fixed-size sum)によりマップされる。
スナップショット(snapshot):集積回路のレジスタの現在の内容のハッシュは、集積回路中に保存される。通常、スナップショットとして保存されるハッシュはタイムスタンプされず、これは、通常、保存されたハッシュが最新のものであることを知っているだけで十分であるからである。たとえば、一個のフルダイジェストが保存されるか否か、あるいは、ここで記述される段階的実施形態のように、いくつかの部分的なダイジェスが保存されるか否かに基づいて、一つ以上の現在有効なスナップショットを有する。
よって、少なくとも以下の実施形態が提供される。
第一実施形態:レジスタ内容のインテグリティを検証するシステムは、少なくとも一つのメモリ、および/または、少なくとも一つのプロセッサ、および/または、多数のレジスタを有する集積回路と連動して操作し、このシステムは、レジスタ内容検証ロジックを有し、“学習モード(Study Mode)”と称される第一モード下で、あるいは、“学習モード”と称される第一モードにある時だけ、レジスタ内容検証ロジックが設置されて、レジスタの内容の少なくとも一部を読み取る、および/または、第一認証、あるいは、ダイジェスト(たとえば、内容に関するハッシュ)を計算する、および/または、第一ハッシュを保存し、これにより、最新のリファレンスハッシュを提供し、および、”検証モード(Verify Mode)“と称される第二モード下で、あるいは、“検証モード”と称される第二モードにある時だけ、レジスタ内容検証ロジックは、少なくとも一つの第二認証、あるいは、ダイジェスト(たとえば、内容に関するハッシュ)を計算、および/または、第二ハッシュとリファレンスハッシュを比較し、且つ、これにより、内容検証出力("障害検出"出力と称される)を提供して、リファレンスと第二ハッシが等しいか否かを表示する。
通常、二つのハッシュが等しくない時、障害が検出される。
内容検証出力("障害検出"出力とも称される)(たとえば、図1に示される)は、通常、二個のハッシュが等しくなく、且つ、ハードウェアにより受信される一指示を有し、ハードウェアは、応答可能なように、ある動作を実行する。および/または、"障害検出"出力は、ファームウェアに発信されるフラグ/中断を有し、フラグ/中断は、応答可能なように、ある動作をトリガーする(あるいは、指令を与えて実行する)。"障害検出"出力に対応して、ハードウェア、および/または、ファームウェアにより実行される任意の適当な動作は、たとえば、リセットや再開始に限定されず、電源が循環するまで、あるいは、永遠に停止する。
ここで記述されるレジスタ内容検証の特別な利点は、メモリに相反するレジスタは、常に、それらの値を得ることに使用可能であることである(それらを要約し、比較する)。要約/比較目的でレジスタの内容を識別するために、レジスタのインターフェースは、“所有”されたり、引き継がれたりする必要がない。対照的に、従来の方法で、記憶内容を検証するとき、メモリが仲裁される、あるいは、引き継がれて、記憶内容を検証し、メモリの正常な操作が中断され、検証された後、釈放されるとともに、一旦、メモリが引き継がれると、メモリは、釈放されるまで、任意のその他の操作に使用できなくなる。
実施形態のその他の特別な利点は、以下の問題を克服することである。当技術分野で周知のように、倍加は、主に、少数のレジスタの保護だけを試みるレジスタ内容検証に有用であった。この適度な目的は、集積回路上の一部のレジスタだけが、適正に、あるいは、間違って、保護が必要であると見なされたから、および/または、最初に、少数のレジスタだけが、集積回路上に存在したからであり、早期の集積回路と同じであるが、現在は、もうこのようではない。よって、理由のいかんにかかわらず、歴史的に、倍加を用いてレジスタ内容を検証することにより生じる費用は大きくない。現在、多くの、あるいは、ほとんどの集積回路は、数千のレジスタの保護から恩恵を受けるが、従来の倍加を用いるこの保護の提供は、今日であっても大きなコスト負担を生じるとともに、集積回路の設計がさらに多くのレジスタを有するにつれて、このようなコスト負担はさらに大きくなると考えられる。よって、各集積回路が、少数のレジスタだけを有するとき、倍加はすでに十分に有効であるが、各集積回路が、さらに多くのレジスタを有するように設計されるとき、これは、段々と満たされなくなり、また、実際、各チップのレジスタ数量は不断に増長する。ここで表示、および、記述される実施形態は、さらに高い効率を提供する。
理解できることは、実践中、比較的大量のフリップフロップが存在すると仮定すると、ここの実施形態は、倍加より少ないセルを添加する。
理解できることは、集積回路が一定数量のレジスタを有すると、システムは、コスト効果が高くなることである。一旦、一定数量のレジスタが超過すると、ダイジェストは、倍加よりもさらに効率的になるので、たとえば、倍加はロジックを必要として、各ペアを比較して、各ペアが等しいことを確保するので、集積回路上で、ダイジェストと検証ロジックの実行が理に適うようになる(倍加を用いるよりさらに効率的になる)。ここで記述されるダイジェストと検証ロジックにおいて、このロジックは必要ない/使用されない。
今日の集積回路においても、システムに高いコスト効果を有させるレジスタ数があり、各集積回路のレジスタ数は、ここ何年も、増加傾向にある事実は言うまでもない。
一般的に、第一ハッシュ、および、第二ハッシュは、それぞれ、以下の群の一ハッシュを有する:MD5、SHA-1、SHA-2、NTLM、および、LANMAN.MD。一般的に、第一、および、第二ハッシュは、同じアルゴリズムを用いて計算されなければならず、さもなければ、第一、および、第二ハッシュを比較するのは無意味である(比較の基準がない)。
第二実施形態:前述の任意の実施形態のシステムにおいて、レジスタ内容の合法の修正(レジスタ値修正とも称される)が発生し、且つ、レジスタ内容検証ロジックが学習モードであるとき、学習モードの操作は停止し、および、レジスタ内容の合法の修正が終了時に、レジスタ内容の検証ロジックが学習モードを再起動し、且つ、新たに計算された第一ハッシュで、前に保存された任意のリファレンスハッシュを代替する。
任意のレジスタ書き込み(たとえば、“監視されるレジスタ”に対する書き込み)は、合法のレジスタ修正であると見なされ(これは、その後、本文の実施形態により、ハードウェアの不正な変更の検出、あるいは、防止を促進する)、書き込みが合法であると見なされる場合、悪質なファームウェアが一レジスタを書き込むのは、検出不能である。
本文のロジックは、任意の適当な方法を採用して、いつ、合法のレジスタ修正が終了するのか確定し、ロジックは、この時間点で、モードを切り換えて、新しいハッシュ/ダイジェストを計算する。たとえば、レジスタ書き込みは、通常、既知の最大ICクロック周期cを必要とする。よって、ロジックは、c個のクロックをカウントするとともに、その後、ロジックは安全に(レジスタが現在、新値を保存すると仮定する)、新しいハッシュ/ダイジェストを計算する。
第三実施形態:前述の任意の実施形態のシステムにおいて、レジスタ内容の合法の修正が発生し、且つ、ロジックが学習モードでない時、レジスタ内容検証ロジックは、レジスタ内容の合法な修正が終了後、且つ、検証モードを起動する前に、学習モードを起動する。
第四実施形態:前述の任意の実施形態のシステムにおいて、レジスタ内容の合法の修正が発生し、且つ、レジスタ内容検証ロジックが検証モードであるとき、検証モードの操作を中止し、および、レジスタ内容の合法の修正が終了時、レジスタ検証ロジックは、検証モードに戻る前に、学習モードに戻る。
第五実施形態:少なくとも一つのレジスタの複数の内容のインテグリティの検査方法は、一つのレジスタの内容(数値、とも称する)を要約して、ダイジェストを生成する工程、および、このダイジェストとリファレンスを比較することにより、内容のインテグリティを検証する工程、を有する。
第六実施形態:前述の任意の実施形態のシステムにおいて、レジスタ内容検証ロジックが検証モードにある時、レジスタが、連続して、ハッシュ、および、比較され、これにより、頻繁な複数の内容検証出力を提供し、高い安全性を得る。
第七実施形態:前述の任意の実施形態のシステムにおいて、リファレンスと第二ハッシュが等しくないたびに、内容検証出力は、
応答可能なように、前述の動作をトリガーするファームウェア、および、
前述の動作を実行するハードウェア、
の少なくとも一つにより受信されて、少なくとも一つの動作を実行させる。
第八実施形態:前述の任意の実施形態のシステムにおいて、前述の少なくとも一つの動作は、集積回路を組み込んだ一装置をリセットする工程を有する。
第九実施形態:前述の任意の実施形態のシステムにおいて、リファレンスと第二ハッシュが等しくない場合、内容検証出力は、ファームウェアに発信するフラグ/中断を有し、さらに高いレベルのソフトウェアに前記集積回路を組み込んだ前記システムがハッキング攻撃を受けている可能性があることを警告することに用いられる。
第十実施形態:前述の任意の実施形態のシステムにおいて、動作は、集積回路のハードウェアすべてに対して完全なハードウェアリセットを有する。
この命令は、“ハードウェアからハードウェア”までである。一般的に、ハードウェア中の信号は、完全な、あるいは、部分的な/選択的なICリセットをトリガーする。
第11実施形態:前述の任意の実施形態のシステムにおいて、前述の動作は、システムリセット、たとえば、再初期化を有する。
第12実施形態:前述の任意の実施形態のシステムにおいて、前述の動作は、装置は電源がオフになり、且つ、再度オンになるまで、集積回路を組み込んだ一装置を中止する工程を有する。
第七実施形態から第12実施形態の代替、あるいは、補充として、レジスタ内容検証ロジックは、適当な出力メッセージを、エンジニアにトリガーして、このICは、永遠に停止、あるいは、撤退すべきであると提言する。このロジックは、ある出力信号をアサートする、あるいは、このような停止状態にあることを表示する方式で、あるアクセスに応答する。
第十三実施形態:前述の任意の実施形態の方法において、リファレンスは、時刻tにおいて少なくとも1つのレジスタ内の内容を検証することにより、時刻tであらかじめ計算したダイジェストを含む。
第十四実施形態:前述の任意の実施形態のシステムにおいて、複数のハッシュ中の各ハッシュは、複数のレジスタを有するレジスタファイル上で計算される。
第十五実施形態:前述の任意の実施形態のシステムにおいて、集積回路は、一つ以上のレジスタファイルを有し、且つ、上述の複数のハッシュのそれぞれは、一つ以上のレジスタファイル中の既定のレジスタファイル中の全レジスタ上で計算される。
第十六実施形態:前述の任意の実施形態のシステムにおいて、集積回路は、一つ以上のレジスタバンクを有し、且つ、各ハッシュは、既定のレジスタバンク中の全レジスタで計算される。
第十七実施形態:前述の任意の実施形態のシステムにおいて、さらに、多数のレジスタを有する集積回路を有し、レジスタ内容検証ロジックは、集積回路上に設置される。
第十八実施形態:前述の任意の実施形態の方法において、レジスタは、少なくとも一つのレジスタファイルを有する。
第十九実施形態:前述の任意の実施形態の方法において、ダイジェストは、一ハッシュを有する。
第二十実施形態:前述の任意の実施形態のシステムにおいて、集積回路は、第一エントリーポイントを有するプロセッサを有し、リセット後に実行される第一命令を有し、リファレンスと第二ハッシュが等しくない場合、内容検証出力は、ハードウェアリセット信号をトリガーし、プロセッサに、第一エントリーポイントまで戻らせる。
第二十一実施形態:前述の任意の実施形態のシステムにおいて、レジスタ内容検証ロジックは、集積回路中のハードウェアで実施される。
文中、あるいは、添付図面中の任意の商標は所有者の財産であり、本文中に出現する商標は、本発明の一実施形態をどのように実行するかの一例を説明、あるいは、解釈するためだけに用いられる。
特に説明されない限り、以下の討論から理解できることは、明細書全体の討論中、"処理"、"推算"、"推定"、"選択"、"順序付け"、"格付け"、"計算"、"決定"、"生成"、"再評価"、"分類"、"産出"、"ステレオマッチング"、"登録"、"検出"、"関連"、"スーパーインポーズ"、"獲得"等の用語の使用は、計算システムのレジスタ、および/または、メモリ内の物理量として表されるデータを、計算システムのメモリ、レジスタ、あるいは、その他のこのような情報ストレージ、送信、あるいは、ディスプレイデバイス中の物理量として同じように表されるその他のデータに運用、および/または、転換する少なくとも一つのコンピュータ、あるいは、計算システム、あるいは、プロセッサ、あるいは、類似する電子計算装置の動作、および/または、プロセスを指す。用語“コンピュータ”は、データ処理能力を有する任意の種類の電子装置で、これに限定されないが、パソコン、サーバ、組み込み式コア、計算システム、通信装置、プロセッサ(たとえば、デジタルシグナルプロセッサ(DSP)、マイクロコントローラー、フィールドプログラム可能なゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)、および、その他の電子計算装置を含んできると広範に解釈されるべきである。
本文で単独でリストされる素子は、異なる素子である必要がないとともに、あるいは、同じ構造であってもよい。存在する素子や特徴の陳述は、(a)素子、あるいは、特徴が存在する実施形態、(b)素子、あるいは、特徴が存在しない実施形態、および、(c)素子、あるいは、特徴が選択的にその実施形態中に存在する、たとえば、ユーザーが、素子、あるいは、特徴を設定、存在するか否かを選択することができる、を含むことを意図する。
ある実施形態のシステムの簡潔なブロック図である。説明されるブロックの全て、あるいは、任意の一部が提供され、図に示されるような適当な方式で互いに関連する。 ある実施形態の方法の簡潔なフローチャートである。説明される操作の全て、あるいは、任意の一部が提供され、図に示されるような適当な順序で配列される。
理解できることは、本文中で特に明記されない限り、異なる図面で説明される素子、および/または、描写中の素子は、単一の実施形態に組み合わせることができることである。
本発明の範囲中に含まれる方法、および、システムは、具体的に示された実施形態中のいくつか(たとえば、任意の適当な一部)、あるいは、すべての機能ブロックを有し、それらは、任意の適当な順序で配列される。
本文の描写、および、図示される計算、機能、あるいは、論理素子は、各種形式、たとえば、ハードウェア回路として実現され、たとえば、これに限定されないが、カスタムVLSI回路、あるいは、ゲートアレイ、あるいは、プログラム可能なハードウェアデバイスとして実現され、これに限定されないが、FPGA、あるいは、ソフトウェアプログラムコードとして実現され、少なくとも一つの有形、あるいは、無形のコンピュータ可読媒体に保存されるとともに、少なくとも一つのプロセッサ、あるいは、それらの任意の適当な組み合わせにより実行可能である。特定の機能コンポーネントは、一個の特定のソフトウェアコードのシーケンスにより形成され、これらのソフトウェアコードは、本文で討論される機能コンポーネントに基づいて、共同で作用を発揮、あるいは、表現する。たとえば、コンポーネントは、いくつかの符号系列上に分布し、たとえば、これに限定されないが、オブジェクト、製造工程、機能、ルーティン、プログラムであるとともに、一般的に、共同で操作するいくつかのコンピュータファイルに由来する。
適当であれば、ここで記述される任意の論理機能は、即時応用として実施されるとともに、任意の適当なアーキテクチャの代替案を採用し、たとえば、これに限定されないが、ASIC、あるいは、DSP、あるいは、それらの任意の適当な組み合わせである。実際、上述の任意のハードウェアコンポーネントは、一つ以上のハードウェアデバイスを有し、たとえば、同一地点にある、あるいは、互いに離れたチップである。
認証は、しばしば、ストレージ(たとえば、メモリ)中で保持されるコード、および/または、データのチャンクに適用される。通常、このメモリは、読み取るための指定されたアクセスを必要とする。
集積回路中のレジスタ、たとえば、配置/制御レジスタは、通常、集積回路の配置、および/または、制御設定を保存する。よって、集積回路のレジスタは、通常、たとえば、集積回路の操作の各種モードを設定することにより、ICを配置、および、たとえば、どのように、ICが各種機能を実行するかを制御する。IC配置の例は、クロック周波数の設定、ある機能の有効化/無効化、IO端子の機能の選択等を有する。よって、ハッカーは、配置/制御レジスタに不正侵入して、データを盗む、および/または、IC、あるいは、ICを組み込んだ一装置を故障させる。配置、および、制御レジスタは通常、高度に分散され、それらは、それぞれ、多数の異なる論理機能/ブロックに結合される多数の論理チャンクで発生する。
ある実施形態は、認証をレジスタに適用する働きをする。
ある実施形態によると、従来、メモリの内容検証を提供するのに用いられてきた方法を用いることにより、レジスタの内容検証が提供され、内容を一度要約して、リファレンスを生成し、その後、周期的に、再要約して、新しいダイジェストを生成するとともに、このような各周期中で、新しいダイジェストがリファレンスダイジェストと同じであることを確認する工程を有する。たとえば、装置は、少なくとも一つのレジスタファイルの内容のインレグリティをチェックするために提供されるとともに、装置が配置されて、以下の操作を含む一サイクルを少なくとも一回実行する:レジスタファイルの内容(レジスタファイル中の値)を要約して、これにより、ダイジェストを生成するとともに、ダイジェストを検証する。
メモリ読み取り時のように、通常、指定されたアクセスを必要とするのと違って、レジスタの内容を獲得するのは、通常、指定されたアクセスを必要としない。レジスタ中に保存される配置と制御設定値は、通常、周辺のハードウェアの設計者の決定権で、可用か、あるいは、“公開する”かを決定して、周辺のICハードウェアに見せたり、使用させたりする。これは、通常、レジスタが、保存に用いる任意の物理的構造を指しても、さらに一般的に、各レジスタが、並列に結合された複数のフリップフロップを有しても、各フリップフロップは出力を有し、任意の周辺のハードウェアにとっては、通常、“可用”であるからである。対照的に、通常、機能要求、および、既定のメモリセル中に保存される値を得る適任性(eligibility)、あるいは、権限付与の条件方面において、標準記憶装置は、トランザクションの導入を要求する方法で構築される。
理解できることは、ここで記述されるレジスタファイルの要約は、時間を消耗するとともに、持続した要約は実現困難である。しかし、理解できることは、レジスタファイル(たとえば、配置と制御レジスタのファイル)は、メモリよりも静態であるので、連続した要約は不要であることである。メモリと相対して、一旦、リセット後、配置と制御レジスタが初期化されると、配置と制御レジスタは、通常、変化が少ない。レジスタ内容に対する変化は、少ないか、ほぼ存在しないので、ファイルを探査する頻度は少ない(その内容を検証することができ、ここで記述される要約を含む)。快速に変化する状況と反対に、さらに多くのメモリ特徴が、いつでも、以下の変化を必要とし、これは、この要約を実現困難にする。随時、ハッキングが発生するので、集積回路のセキュリティ問題を処理するエンジニアの決定権で、探査の頻度が設定される。
図1は、本発明の一実施形態によるシステム1の簡潔なブロック図である。説明されるブロックの全部、あるいは、任意の一部が提供される。図1の装置は、通常、単一の集積回路中にすべて配備される。図1のシステムは、通常、ハードウェア、あるいは、ファームウェア/ソフトウェアで実現されるレジスタ内容検証ロジック11を有し、連続して(一般的に)、レジスタファイル内容に対し、インテグリティチェックを実行する。図1のシステム1は、一つ、あるいは、それ以上のレジスタ10を有する(たとえば、一つ以上のレジスタファイル)。
レジスタ内容インテグリティチェックは、たとえば、一つ以上のレジスタ10上で循環し、レジスタ内容は、通常(仮定)、大部分が静態であり、たとえば、リセット後初期化され、その後、ほぼ変化がない。各周期において、図1のレジスタ内容検証ロジック11は、通常、内容を要約するとともに、装置のいつもの操作を中断することなく、レジスタ10中の値の要約を検証する。図1のシステム1は、レジスタ内容検証ロジック11を有し、このレジスタ内容検証ロジック11は、レジスタファイル10の内容に対して、インテグリティチェックを実行するとともに、たとえば、ハードウェア中に存在する。
または、あるいは、さらに、図1のレジスタ内容検証ロジック11は、ソフトウェア、あるいは、ファームウェアで、たとえば、それぞれ、ソフトウェア、あるいは、ファームウェアを用いて、関連のあるレジスタ10を読み取る、および、それらを要約/認証することにより実現される。これらの操作が適当に、主題システム(集積回路)のパフォーマンスに重い負担をかけない場合、これは適当である。
ハードウェア実施の特別な利点は、レジスタ内容検証ロジック11のために、バス、および、レジスタアクセス経路が、縛られたり、占有されたりする必要がなく、干渉されたり、中断されずに、それらの正常な操作を継続することができることである。たとえば、ハードウェア実現は、ICバスにより、各レジスタにアクセスするいかなる必要も回避できる。これは、レジスタがICバスによりアクセスされる場合、それらのICバスにより供給されるその他の機能が、少なくとも一部が中断され、たとえば、遅延し、これは、これらのICバスにより供給されるその他の機能に貢献する全てのIC機能に不利な影響を与えるからである。
通常、フロップ出力(たとえば、保護されるレジスタ中で、並列フリップフロップを出る論理信号)は、任意の適当な任意の適当な追加目的地に送られる。たとえば:
1.目的地は、恐らく、所与のIC“ブロック”を有し、たとえば、到着信号が‘1’であるとき、このブロックは有効にされ、到着信号が‘0’であるとき、無効にされる。
2.目的地は、恐らく、どのクロックを用いるかを選択するロジックを有し、ロジックは、クロックA(たとえば、到着信号が‘1’であるとき)、あるいは、クロックB(到着信号が‘0’であるとき)を選択する。
よって、ダイジェスト機能の増加、および/または、この目的のために提供された追加配線のために、レジスタ専用のダイ面積が増加する。
図1において、四個の台形は、ある実施形態において提供される各デコーダー/マルチプレクサ15~18を示し、複数のレジスタ10から入力を収集するとともに、制御信号に基づいて一部を伝達する。たとえば、複数のレジスタ10の出力は、一組のセクレター、および、デコーダーを通過して、レジスタ中に保存されるビットの一部を生成し、レジスタ中に保存されないビットと異なり、一部は興味を持たれる。
図2は、レジスタ内容インテグリティ検証方法を示す図で、この方法は、図1、および、図2により説明される。この方法は、以下の操作中、適当な順序で配列される全て、あるいは、任意の一部を有する。
操作a:設計段階(工程20):ICの設計者は、ICの構造がこの実施形態を実現できるように確保する。通常、設計段階期間において、集積回路上のレジスタから、一組の特定のレジスタが選択される。この選択は、通常、設計段階期間中に発生し、どの組のレジスタ(たとえば、集積回路上の全レジスタ、あるいは、集積回路上のある一部のレジスタ)か確定することにより、ここで表示、および、記述されるインテグリティチェック機能により監視されるインテグリティを受け入れる。
この組のレジスタは、データのインテグリティ(たとえば、識別は、外部のハードウェアにより実行される不要な任意の変更)を監視することが特に重要な一組のレジスタファイルを有する。
図1の装置中で説明されるレジスタ10は、この組のレジスタを表す。
また、各追加エンジンが、ダイ面積の方面で、不要なコストを生成するので、設計者は、設計段階で、ハッシュ方法(たとえば:MD5、SHA-1、SHA-2、NTLMおよびLANMAN.MDの一つ)を選択すると共に、集積回路上の一種のエンジン(この選択されたハッシュ方法を実行するたった一個のエンジン)だけを有する。
設計段階の後、図1の装置は、正常な操作を開始し、且つ、操作の方法は、以下の操作の全て、あるいは、任意の一部を有する。
操作b(工程21);レジスタはリセットされ、たとえば、ICハードウェアは、特定の固定黙認値に設定する。
操作c(工程22):レジスタは、通常、ICのいつもの操作を構築する正常な事象のシーケンスの一部として初期化される。このレジスタ初期化は、通常、ファームウェアにより実行される。
操作d(工程23):図1の装置(たとえば、図1のレジスタ内容検証ロジック11)が有効になる。図1のレジスタ内容検証ロジック11の状態機械は、最初、システムを“学習モード”に置く。
学習モードにおいて、システムは、レジスタ10(たとえば、レジスタファイル)からレジスタ値を捕捉するとともに、図1に示されるように、ハードウェア、あるいは、ファームウェア/ソフトウェアで実施される適当なダイジェスト機能を用いて、捕捉されたレジスタ値を要約、あるいは、ハッシュし(あるいは、その他の任意の認証を実施)、これにより、期待値(図1に示される“スナップショット”13中に保存される期待される要約、とも称される)を生成する。この実施形態において、適当なダイジェスト機能を実行するハードウェアは、図1のプロセッサ12である。
学習モード期間中の任意の時に、一指示LW(legit write)("合法な書き込み")が、レジスタ内容検証ロジック11のシステムの状態機械により受信される場合、正当なレジスタ値修正が進行中であり、状態機械は、図1のシステム1の操作を中止するとともに、たとえば、修正が今完成することを確保するのに十分な適当な数量のクロック周期を待った後、学習プロセスをもう一度開始し、レジスタを再捕捉して、更新されたダイジェストを生成する。
“合法の書き込み”は、通常、ICのメインプロセッサに由来するとともに、通常、すべての保護されたレジスタの書き込み指示を結合する。
通常、集積回路のメインプロセッサ(たとえば)が、レジスタ書き込みを発信するとき、プロセッサは、通常、一組のアドレス、および、データを提示し、その後、書き込みトランザクションを示す制御信号が伴う。アドレスはその後、ICロジックにデコードされて、書き込むレジスタを決定する。
よって、システムの状態機械により受信される指示LWは、有効な宛先アドレス(target address)と書き込みトランザクションを示す制御信号の論理結合を有し、この宛先アドレスはデコードされて、本文中で記述されるように、監視、あるいは、保護されるレジスタファイル中の一レジスタを指し示す。
指示LWは、通常、従来の集積回路が、レジスタ書き込みを実行するのに用いられる一指示を有する。
再捕捉時、一般的に、レジスタを捕捉する順序は変化して、“学習モード”および“検証モード”下で攻撃に対し計時することができない。理解できることは、ダイジェストは、2進値を、連続して処理、あるいは、“合計する”に関与すると見なされる。通常、各ダイジェスト完成時、たとえば、各周期で、異なる順序で処理を実行する、あるいは、異なる順序で、“和”が“総計される”。簡潔な例を挙げると、ある集積回路は、A、B、および、Cの3個のレジスタだけを有する。よって、第一時間、たとえば、周期nで、これらのレジスタを要約するとき、順序は、A→C→B、すなわち、第一ダイジェストレジスタA、次に、C、そして、Bである。次の時間、たとえば、周期n+1で、順序は、C→A→B、すなわち、まず、ダイジェストレジスタC、次に、A、そして、Bである。次の時間、要約の順序は、B、次に、C、その後、Aである。レジスタが各周期で要約される順序は、たとえば、図1の状態機械によりランダムに決定されるか、あるいは、図1の状態機械中に保存される決まったパターンに従う。たとえば、一周期が、A→C→Bを用いる場合、次の周期は、常に、C→A→Bを用い、次に、B→C→Aを用い、次の周期は、A→C→Bに戻る。
レジスタを捕捉する順序が変化する場合、ここで表示、および、記述されるインテグリティチェック機能に対する攻撃を計時するのが困難、あるいは、不可能になるので、これは有利である。これは、成功の攻撃は、通常、学習モードが起動時の学習段階と“検証モード”(以下の参考操作eのように)が起動時の検証段階が、同じレジスタを攻撃する必要があるからである。
各周期が、常に、同じ順序で、レジスタを使用する場合、随時、どのレジスタが要約されるかが容易に分別される、および/または、それに応じて、正確な攻撃計時が容易である。対照的に、たとえば、上述のように、異なる順序が異なる周期で用いられる場合、成功の攻撃の計時がさらに困難、あるいは、さらには不可能になる。
操作e(工程24):全レジスタが要約されるとき、状態機械は、図1のシステムを“検証モード”に切り換え、このモード中、図1のレジスタ内容検証ロジック11は、少なくとも一度、および、通常は、少なくとも複数回(たとえば、連続して)、以下の検証周期を実行する。
周期操作I:図1のダイジェスト機能(たとえば、図1のプロセッサ12により)を利用して、図1のレジスタの内容を要約する。
周期操作II:図1の比較器14により、要約された内容と“学習モード”期間で得られた期待ダイジェスト(“スナップショット”とも称される)を比較し、これにより、要約した内容を検証する(あるいは、検証しない)。比較結果に基づいて、内容検証出力OCVを生成する(失敗検出)。
周期操作Iに関し、任意の適当なダイジェスト、たとえば、MD5、SHA-1、SHA-2、NTLMおよび、LANMAN.MDが用いられて、周期操作I中のレジスタ内容を要約する(および、相関するレジスタ値中の変化が、現在の要約を取り消す度に、同じダイジェストが用いられて、要約を再計算する)。
一般的に、多くのレジスタの内容のために、単一ダイジェストが計算され、各レジスタに対し一ダイジェストを計算するのではない。損益分岐点は、通常、数千のレジスタビットである。つまり、ダイ面積にとって、たとえば、数千個のレジスタビットの"損益分岐点"で、ここで表示、および、記述される要約方法によるインテグリティチェックは、倍加よりさらに効率的になる。理解できることは、今日であっても、多くの、あるいは、ほとんどの従来の集積回路は、少なくとも1K個のレジスタ(すなわち、8K個のレジスタビット)を有し、時にはもっと多い。損益分岐点を計算するため、一例のダイジェスト、たとえば、SHA1を考慮するとともに、従来のように、いくつの論理セルにより実施するかを判断して、ダイジェストエンジンを構成するロジックを合成し、これにより、ここで表示、および、記述されるハードウェア中のダイジェスト方法により、インテグリティチェックを実施するのに必要とされるセルの数量を決定する。
合成操作は、たとえば、EDAツールにより実行されるとともに、RTL中で得られる論理方程式を有し、それらを、適当なVLSI技術の複数の論理ゲート中に合併して、その後、それらを、ICレイアウト中に配置するとともに製造を実行する。
セル数、たとえば、約5000個の論理セルは、レジスタビット数量の範囲であると見なされ、複製と相対して、その範囲は、ここで表示、および、記述される要約方法により、インテグリティチェックを正当化する。これは、損益分岐数量のレジスタを生成する(たとえば、ビット毎に、8個のレジスタを有すると仮定すると、5k個のレジスタビットは、5k/8個のレジスタに対応する)。理解できることは、損益分岐点は、とりわけ、単一ダイジェストが計算されるときのレジスタ数量に基づく。ダイジェストがさらに多くのレジスタに計算される場合、ダイジェストを計算するのに、さらに多くのハードウェアが必要となり、損益分岐点を増加させる。
周期操作IIにおいて、あるレジスタ内容のダイジェスト(すなわち、レジスタ内容の"リファレンス要約結果")の検証は、通常、同一レジスタ内容の再要約を有し、これにより、第二要約結果が生じるとともに、第二要約結果とリファレンス要約結果を比較し、内容検証出力OCVを生成する。差異がない場合、ダイジェストは"検証済み"であると見なされる。操作f(工程25)において、記述されるように、任意の研究、あるいは、検証期間の任意の時、正当なレジスタ値修正("合法の書き込み")に用いられる指示LWを受信する場合、図1のレジスタ内容検証ロジック11は、検証を中止するとともに、学習モードに戻り、これにより、レジスタを再キャプチャして、更新された期待値、期待ダイジェストを生じる。通常、この点で、前に保存された期限切れの期待ダイジェスト、つまり、スナップショットは廃棄され、たとえば、新たに更新された期待ダイジェストで代替される。
理解できることは、毎回、この方法が実行されるときに、上記の操作c、d、e、I、IIが必ずしも、すべて実行されなくてもよいことである。たとえば、ICが実行されるたびに、あるいは、時に、ここで記述される方法が実行される。この種の状況が発生するとき、レジスタが初期化され(一回;ICがリセット、あるいは、再開始される場合、初期化が再発生し、この状況下で、通常、この方法は一番初めに戻る)。通常、続いて(レジスタ初期化後)、学習モードに進入して、ダイジェストを計算する。その後、操作モードが検証モードに切り換わる。その後、ダイジェストは、少したって、あるいは、周期的に、あるいは、連続して再計算されるとともに、通常、毎回、オリジナルダイジェストと比較される。これは、一事象により停止されるまで、永遠に続き、たとえば:エラーが検出される(たとえば、再計算されたオリジナルのダイジェスト比較が失敗なので)、あるいは、監視されるレジスタが書き込まれる(この状況下で、操作モードは、通常、学習モードに戻って、再度、要約を実行する)、あるいは、電源がオフになる、あるいは、ICがリセットされる、この状況下で、通常、この方法は、リセット、および、初期化を取り消す。
図1のレジスタ内容検証ロジック11(たとえば、操作の上述の方法)の速度、および/または、周期性、および/または、繰り返しの頻度の決定は、通常、正常なIC活動と無関係であり、よって、検証周期は、任意の速度下、あるいは、周期性で発生し、これは、通常、セキュリティ、および、電力消耗に関する設計者の考慮に基づく。一実施形態によると、レジスタは、連続して、スキャン、および、要約されるとともに、要約は、非常に頻繁に、適当なリファレンスと比較される。しかし、低い安全性でも十分であると見なされる、および/または、電力消耗が重要な設計考察である場合、スキャン、要約、および、比較は、連続して実行される必要がなく、頻繁に実行されなくてもよく、たとえば、時々だけ、あるいは、たとえば、周期的に実行される。インテグリティチェックハードウェア(たとえば、図1のレジスタファイル10自身以外の全素子)による電力消耗とレジスタ内容セキュリティ間に妥協点が必要である。よって、ある程度で、安全性は重要であり、電力消耗はあまり重要でなく、これにより、スキャン、要約、および、比較は頻繁に実行され、安全性があまり重要ではなく、電力消耗が重要である使用案件において、スキャン、要約、および、比較は、そんなに頻繁に実行されない。
ステッピング(段階的インテグリティチェック)
ある実施形態によると、インテグリティチェックは、複数のステップで実行、あるいは、バッチで実行され、一回で全部実行するのではない。一個の集積回路が、たとえば、N=500個のレジスタを有することを考慮する。ある実施形態によると、レジスタは、たとえば、S=5個の集合、あるいは、セクションに分割、あるいは、分離されるとともに、各レジスタに対してではなく、各N:S=100個のレジスタに対して、ダイジェスト(たとえば、スナップショット)が計算、あるいは、保持される。これで、人々が早期に(全部を実行した後ではなく、複数のステップ中のいくつかを実行した後)、あるレジスタが損壊したか否かを知る。通常、各部分sに対し、部分s+1のダイジェストを計算する前(通常は、条件)、部分s(s=1…S)に対して計算されるダイジェストは、部分sの前に保存されたダイジェストと比較される。一般的に、段階的実施形態は、早期に(非段階的実施形態と相対して)、一レジスタがすでに損壊していることを検出し、これは、とりわけ有利であり、なぜなら、複数のステップ中から残りのステップを実行する必要を消去するからである(損壊したレジスタが、最後のセクション以外の一セクション中に含まれる場合)。たとえば、第一セクションのダイジェストが失敗である場合(比較により、第一セクションの前に保存されたダイジェストと等しくないことが発見される)、もう、第二、第三、および、第四セクションのダイジェストを計算する必要がない。
ここで記述される各素子は、ここで記述される、あるいは、説明される全ての属性を有する、あるいは、その他の実施形態に基づいて、ここで描写される属性の任意の一部を有する。
ファームウェアが、ある実施形態を実行するのに用いられる場合、それは、不揮発性メモリ、たとえば、フラッシュ、あるいは、ROMに保存される。
二者選択的に、ここで記述されるある実施形態は、部分的にあるいは、独占的に(すなわち、ファームウェアがない)、ハードウェア中で実現され、この種の状況下で、本文で描写される一部、あるいは、全部の変数、パラメータ、連続操作、および、計算は、ハードウェア中にある。
理解できることは、"強制的"、"要求"、"必要"および"必須"等の用語は、はっきりとさせる目的で、本文で描写される特定の実施方式や応用の背景下で実施される実施の選択に注意を向けるものであり、制限を意図するものではなく、代替実施形態において、相同の素子は、被強制的、および、非必需のものとして定義され、完全に排除することもできる。
システム実施形態は、対応する処理実施形態を有する。特徴は、本領域中で既知の特徴と結合することもでき、特に、従来の技術の一節、あるいは、提示される出版物中で描写されるそれらの特徴に限定されない。
理解できることは、わかりやすくするため、別々の実施形態の上下文中で描写される任意の特徴、特性、ロジック、モジュール、ブロック、操作、あるいは、機能は、明細書中や一般知識で特にある教示が、相互に矛盾し、結合できないと示さない限り、単一の実施形態中で結合することもできる。ここで表示、および、記述される任意のシステムが用いられて、ここで表示、および、記述される操作、あるいは、方法を実行、あるいは、結合する。
反対に、簡潔にするため、本文の単一実施形態の上下文中で描写される任意のモジュール、ブロック、操作、機能は、単独で提供されてもよいし、あるいは、従来の技術の特徴(特に、従来の技術の一節、あるいは、提示される出版物中の描写内容に限定されない)を有する任意の適当なサブ結合で提供されてもよいし、異なる順序で提供されてもよい。
"たとえば"という用語が用いられて、一例を示しているが、制限を意図するものではない。各方法は、本文で示される、あるいは、記述されるように、描写、あるいは、記述される適当に順序付けされた操作の一部、あるいは、すべてを有する。
1…システム
10…レジスタ
11…レジスタ内容検証ロジック
12…プロセッサ
13…スナップショット
14…比較器
15~18…デコーダー/マルチプレクサ
LW…指示
OCV…内容検証出力

Claims (19)

  1. レジスタ内容のインテグリティを検証するシステムであって、前記システムは、少なくとも一つのメモリ、少なくとも一つのプロセッサ、および、多数のレジスタを有する集積回路と連動して操作し、
    レジスタ内容検証ロジックを有して、学習モード下で、前記レジスタ内容検証ロジックが、前記レジスタの内容の少なくともいくつかを読み取って、前記内容に関する第一ハッシュを計算するとともに、前記第一ハッシュを保存して、最新のリファレンスハッシュを提供し、および、検証モード下で、前記レジスタ内容検証ロジックが、前記内容に関する第二ハッシュを計算して、前記第二ハッシュと前記リファレンスハッシュを比較し、且つ、内容検証出力を提供して、前記リファレンスと第二ハッシュが等しいか否かを示すこと
    前記レジスタ内容検証ロジックが前記検証モードであり、且つ、レジスタ内容の合法の修正が発生する場合、前記検証モードの操作は停止し、および、
    前記レジスタ内容の合法の修正が終了するとき、前記レジスタ内容検証ロジックは、前記検証モードに戻る前に、前記学習モードに戻ること、を特徴とするシステム。
  2. 前記ロジックが前記学習モードであり、且つ、レジスタ内容の合法の修正が発生する場合、前記学習モードの操作が停止し、および、
    前記レジスタ内容の合法の修正が終了時、前記レジスタ内容検証ロジックは、前記学習モードを再起動し、且つ、新たに計算された第一ハッシュで、前に保存された前記リファレンスハッシュを代替することを特徴とする請求項1に記載のシステム。
  3. 前記ロジックが前記学習モードでなく、且つ、前記レジスタ内容の合法の修正が発生する場合、前記レジスタ内容検証ロジックは、前記レジスタ内容の合法の修正が終了した後、且つ、前記検証モードを起動する前に、前記学習モードを起動すること、
    を特徴とする請求項1に記載のシステム。
  4. 前記レジスタ内容検証ロジックが前記検証モードにある時、前記レジスタが、連続して、ハッシュ、および、比較され、これにより、複数の前記内容検証出力を提供し、高い安全性を得ることを特徴とする請求項1に記載のシステム。
  5. 前記リファレンスと第二ハッシュが等しくない度に、前記内容検証出力は、
    応答可能なように、動作をトリガーするファームウェア、および、
    少なくとも一つの前記動作を実行するハードウェア、
    の少なくとも一つにより受信されて、少なくとも一つの前記動作を実行させることを特徴とする請求項1に記載のシステム。
  6. 前記の少なくとも一つの動作は、前記集積回路を組み込んだ一装置をリセットする工程を有することを特徴とする請求項に記載のシステム。
  7. 前記リファレンスと第二ハッシュが等しくない場合、前記内容検証出力は、ファームウェアに発信されるフラグ/中断を有し、さらに高いレベルのソフトウェアに前記集積回路を組み込んだ前記システムがハッキング攻撃を受けている可能性があることを警告することを特徴とする請求項1に記載のシステム。
  8. 前記動作は、前記集積回路のハードウェアの全てに対し完全なハードウェアリセットを有することを特徴とする請求項に記載のシステム。
  9. 前記動作はシステムリセットを有することを特徴とする請求項に記載のシステム。
  10. 前記動作は、装置の電源がオフになり、且つ、再度オンになるまで、前記集積回路を組み込んだ前記装置を停止する工程を有することを特徴とする請求項に記載のシステム。
  11. 前記のハッシュ中の各ハッシュは、複数のレジスタを有する一レジスタファイルで計算されることを特徴とする請求項1に記載のシステム。
  12. 前記集積回路は、一つ以上のレジスタファイルを有し、且つ、前記複数のハッシュのそれぞれは、一つ以上のレジスタファイル中の既定のレジスタファイル中の全レジスタで計算されることを特徴とする請求項11に記載のシステム。
  13. 前記集積回路は、一つ以上のレジスタバンクを有し、且つ、前記複数のハッシュのそれぞれは、既定のレジスタバンク中の全レジスタ中で計算されることを特徴とする請求項11に記載のシステム。
  14. 前記レジスタ内容検証ロジックは、前記集積回路上に設置されることを特徴とする請求項1に記載のシステム。
  15. 前記集積回路は、リセット後に実行される第一命令を含むエントリーポイントを有するプロセッサを有し、
    前記リファレンスと第二ハッシュが等しくない場合、前記内容検証出力は、ハードウェアリセット信号をトリガーし、前記プロセッサに、前記エントリーポイント(entry point)まで戻らせることを特徴とする請求項14に記載のシステム。
  16. 前記レジスタ内容検証ロジックは、前記集積回路内のハードウェアで実施されることを特徴とする請求項1に記載のシステム。
  17. レジスタの内容のインテグリティをチェックする方法であって、前記方法は、
    第1モードにおいて、前記レジスタの前記内容のリファレンスダイジェストを計算し、
    前記第1モードの後の第2モードにおいて、前記レジスタの前記内容の前記インテグリティを検証し、
    前記レジスタの前記内容を要約して、ダイジェストを生成する工程、および、
    前記ダイジェストと前記リファレンスダイジェストを比較することにより、前記レジスタの前記内容のインテグリティを検証する工程、を有し、
    前記第2モードでレジスタ内容の合法の修正が発生する場合、前記第2モードの操作を停止し、および、前記修正が終了するとき、前記第2モードに戻る前に、前記第1モードに戻ること、
    を特徴とする方法。
  18. 前記レジスタは、少なくともひとつのレジスタファイルを有することを特徴とする請求項17に記載の方法。
  19. 前記ダイジェストは一ハッシュを有することを特徴とする請求項17に記載の方法。
JP2020205761A 2019-12-17 2020-12-11 レジスタ内容のインテグリティを検証するシステム、および、その方法 Active JP7038185B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/717,473 2019-12-17
US16/717,473 US11386234B2 (en) 2019-12-17 2019-12-17 Security systems and methods for integrated circuits

Publications (2)

Publication Number Publication Date
JP2021096852A JP2021096852A (ja) 2021-06-24
JP7038185B2 true JP7038185B2 (ja) 2022-03-17

Family

ID=76317563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020205761A Active JP7038185B2 (ja) 2019-12-17 2020-12-11 レジスタ内容のインテグリティを検証するシステム、および、その方法

Country Status (4)

Country Link
US (1) US11386234B2 (ja)
JP (1) JP7038185B2 (ja)
CN (1) CN112992249B (ja)
TW (1) TWI772988B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2592436B (en) * 2020-02-28 2022-02-23 Imagination Tech Ltd Critical workload check
TWI829138B (zh) 2022-04-08 2024-01-11 信驊科技股份有限公司 電子裝置以及其資料傳輸的保護裝置
US20230418954A1 (en) * 2022-06-27 2023-12-28 Micron Technology, Inc. Detecting information modification in a memory system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002543492A (ja) 1999-04-23 2002-12-17 ギーゼッケ ウント デフリエント ゲーエムベーハー 外部からの不正操作に対するコンピュータコアの保護

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968460B1 (en) * 2001-05-10 2005-11-22 Advanced Micro Devices, Inc. Cryptographic randomness register for computer system security
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US6880149B2 (en) * 2002-04-01 2005-04-12 Pace Anti-Piracy Method for runtime code integrity validation using code block checksums
US7216369B2 (en) * 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US8140824B2 (en) * 2002-11-21 2012-03-20 International Business Machines Corporation Secure code authentication
US7921300B2 (en) * 2003-10-10 2011-04-05 Via Technologies, Inc. Apparatus and method for secure hash algorithm
GB0601849D0 (en) * 2006-01-30 2006-03-08 Ttp Communications Ltd Method of maintaining software integrity
KR100823738B1 (ko) * 2006-09-29 2008-04-21 한국전자통신연구원 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법
US7853804B2 (en) * 2007-09-10 2010-12-14 Lenovo (Singapore) Pte. Ltd. System and method for secure data disposal
US7966538B2 (en) 2007-10-18 2011-06-21 The Regents Of The University Of Michigan Microprocessor and method for detecting faults therein
CN101527631B (zh) * 2008-03-04 2011-07-06 财团法人工业技术研究院 基于单向杂凑函数的记录系统与方法
US9613215B2 (en) * 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
US8146028B1 (en) 2008-11-19 2012-03-27 Xilinx, Inc. Duplicate design flow for mitigation of soft errors in IC operation
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
JP5335634B2 (ja) * 2009-09-29 2013-11-06 レノボ・シンガポール・プライベート・リミテッド システム管理モードの特権レベルを保護するコンピュータ
EP2611070A1 (en) * 2011-12-28 2013-07-03 Gemalto SA Method for establishing secure card history and audit for property hand-over
US8971144B2 (en) * 2012-01-19 2015-03-03 Quixant Plc Hardware write-protection
US9396359B2 (en) * 2013-09-09 2016-07-19 Whitecanyon Software, Inc. System and method for encrypted disk drive sanitizing
JP6244759B2 (ja) * 2013-09-10 2017-12-13 株式会社ソシオネクスト セキュアブート方法、半導体装置、及び、セキュアブートプログラム
US9583218B1 (en) * 2014-01-24 2017-02-28 Altera Corporation Configurable register circuitry for error detection and recovery
US10185633B2 (en) * 2015-12-15 2019-01-22 Intel Corporation Processor state integrity protection using hash verification
US10248814B2 (en) * 2017-01-25 2019-04-02 Hewlett Packard Enterprise Development Lp Memory integrity monitoring
US10116436B1 (en) * 2017-09-26 2018-10-30 Intel Corporation Techniques for preventing memory timing attacks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002543492A (ja) 1999-04-23 2002-12-17 ギーゼッケ ウント デフリエント ゲーエムベーハー 外部からの不正操作に対するコンピュータコアの保護

Also Published As

Publication number Publication date
JP2021096852A (ja) 2021-06-24
CN112992249B (zh) 2023-12-05
US20210182432A1 (en) 2021-06-17
US11386234B2 (en) 2022-07-12
TW202125525A (zh) 2021-07-01
CN112992249A (zh) 2021-06-18
TWI772988B (zh) 2022-08-01

Similar Documents

Publication Publication Date Title
JP7038185B2 (ja) レジスタ内容のインテグリティを検証するシステム、および、その方法
JP5586628B2 (ja) 分散puf
CN103530548B (zh) 基于移动可信计算模块的嵌入式终端可信启动方法
US10776493B2 (en) Secure management and execution of computing code including firmware
EP3678025B1 (en) Computer code integrity checking
US8751817B2 (en) Data processing apparatus and validity verification method
TWI801468B (zh) 用於保護電子裝置之安全性之設備、方法及系統以及相關的微控制器
US11392722B2 (en) Electronic control device, program falsification detection method, and computer readable non- transitory tangible storage medium
JP2021179982A (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
TWI748419B (zh) 用於記憶體錯誤修正之系統及方法
US11531785B2 (en) PUF-based data integrity
JP7097407B2 (ja) ビットエラー修正の試行錯誤を優先順位付けるためのシステムおよび方法
CN113971276B (zh) 使用迭代验证过程验证机器可读指令
US20240193275A1 (en) Electronic device and secure booting method thereof
US20210192049A1 (en) Electronic device and method of updating software
US20200401690A1 (en) Techniques for authenticating and sanitizing semiconductor devices
CN116662970A (zh) 固件真实性检查

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220307

R150 Certificate of patent or registration of utility model

Ref document number: 7038185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150