JP7122142B2 - 電力変動攻撃対策を有するコンピューティングシステム - Google Patents

電力変動攻撃対策を有するコンピューティングシステム Download PDF

Info

Publication number
JP7122142B2
JP7122142B2 JP2018073102A JP2018073102A JP7122142B2 JP 7122142 B2 JP7122142 B2 JP 7122142B2 JP 2018073102 A JP2018073102 A JP 2018073102A JP 2018073102 A JP2018073102 A JP 2018073102A JP 7122142 B2 JP7122142 B2 JP 7122142B2
Authority
JP
Japan
Prior art keywords
clock
clock frequency
frequencies
frequency
system operation
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
JP2018073102A
Other languages
English (en)
Other versions
JP2018182737A (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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2018182737A publication Critical patent/JP2018182737A/ja
Application granted granted Critical
Publication of JP7122142B2 publication Critical patent/JP7122142B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/75Protecting 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 inhibiting the analysis of circuitry or operation
    • 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/75Protecting 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 inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting 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 inhibiting the analysis of circuitry or operation with measures against power attack
    • 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/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Description

いくつかの実施形態によるコンピューティングシステムは、ディザ制御回路に応答して、クロックモジュールのチャネルセレクタを有するコントローラに第1のクロック周波数を提供する前に、クロックモジュールの少なくとも1つの発振器を用いて異なる周波数の範囲を生成する。ディザ制御回路の指示に従って、システム動作の実行中に第1のクロック周波数が第2のクロック周波数に変化する前に、コントローラを用いてシステム動作が実行される。第2のクロック周波数は、異なる周波数の範囲から選択され、コンピューティングシステムは、システム動作の実行の終了時に第1のクロック周波数に戻る。
他の実施形態は、クロックモジュールの発振器を用いて異なる周波数の範囲を生成するようにコンピューティングシステムを構成し、その後、ディザ制御回路に応答して、クロックモジュールを有するコントローラに第1のクロック周波数を提供する。第1のシステム動作は、ディザ制御回路によって指示されるとおり、システム動作の実行中に第1のクロック周波数がランダムな時間に第2及び第3のクロック周波数に順次切り替えられる前にコントローラを用いて実行される。コンピューティングシステムは、システム動作の実行の終了時に第1のクロック周波数に戻る。
コンピューティングシステムは、他の実施形態では、チャネルセレクタ及び発振器を有するクロックモジュールに接続されたコントローラを有する。チャネルセレクタは、間隔タイマー及びクロックディザ制御回路と連動するコントローラに応答して、時間の経過と共に複数の異なるクロック周波数を提供するように配置される。
いくつかの実施形態に従って配置された例示的コンピューティングシステムのブロック図である。 それぞれ、図1のコンピューティングシステムに関連する例示的動作データを示す。 それぞれ、図1のコンピューティングシステムに関連する例示的動作データを示す。 それぞれ、図1のコンピューティングシステムに関連する例示的動作データを示す。 様々な実施形態に従って構成されたコンピューティングシステムの動作データをプロットする。 図1のコンピューティングシステム内で使用され得る例示的なクロック周波数ディザ回路を示す。 図1のコンピューティングシステム内で使用可能な例示的クロック周波数ディザ回路を示す。 クロック周波数ディザ回路を利用する例示的コンピューティングシステムの様々な態様のタイミング図を提供する。 図1のコンピューティングシステムの一部として作成され、維持され得るルックアップテーブルの例を示す。 図1のコンピューティングシステムで実行される攻撃対策ルーチンである。
コンピューティング技術の継続的な進歩により、増加する個人情報の量をデジタル形式で記憶することが可能になっている。機密情報の電子的記憶では、個人のデジタルデータに対する望ましくない攻撃のリスクを軽減するための厳重なセキュリティプロトコルに重点を置いている。
暗号化キーなどの機密情報は、メモリやプロセッサなどのコンピューティングハードウェアから、及びコンピューティングハードウェアによってその情報が使用されている間、アルゴリズムが情報を処理している間に発生するデータ依存の電力変動を観察することにより、直接抽出することができる。システムノイズにより、わずかな電力変動の単純な観察結果が不明瞭になり得るが、それでも、反復捕捉及びコヒーレント積分技術によりノイズから対象の変動の一部を抽出することができる。
したがって、各種の実施形態は、一般に、選択されたシステム動作の実行中に異なる周波数間でランダムにホッピングするクロック信号を生成すること及び使用することを対象とする。重要な実行シーケンスの間中、異なるクロック周波数間で変化することにより、電力変動の時間相関は、重要な実行シーケンスが繰返されることによって不明瞭になる。
データ依存の電力変動を観察するサイドチャネル攻撃を阻止するために、単一周波数クロックをランダムに無効にできることが企図される。しかし、このような技術は、特に多数のクロック停止が導入された場合に、実行時間が短縮することによりシステム性能を低下させる可能性がある。システム動作の実行中、ランダムな時間のランダムな周波数に対してクロック周波数ホッピングをインテリジェントに用いる本開示の様々な実施形態により、低下させたクロックレートを使用しているにもかかわらずコンピューティングシステムが完全な能力で動作し続けることが可能になる。
図1は、本開示の様々な実施形態が実施され得るコンピューティングシステム100の例を示す。システム100は、有線及び/又は無線ネットワーク106を介して1つ以上のリモートホスト104に接続された任意の数及びタイプのコンピューティングデバイス102を使用することができる。例えば、コンピューティングシステム100は、複数の異なるリモートホスト104を、ハードディスクドライブ(HDD)及び不揮発性ソリッドステートメモリなどの2つの異なるコンピューティングデバイス102に接続して、順次又は並行データアクセスを提供することができ、データの読み出し又はデータの書き込みを行うことができる。
あるいは、コンピューティングデバイス102は、コンピュータ、スマートフォン、サーバ、又はネットワークノードであってもよい。図1に示す非限定的実施形態では、コンピューティングデバイスは、プログラマブルコントローラなどのローカルプロセッサ108を有し、少なくとも1つのローカル不揮発性メモリ110と通信する。コンピューティングデバイス102は、データ記憶、データ生成、及びデータ通信動作を提供することができる追加のローカル回路を有し得る。コンピューティングデバイス102は、任意の数のローカル112又はリモート114電源から電力を引き出すことができる。
任意の数のリモートホスト104が1つ以上のコンピューティングデバイス102へアクセスするための権限が与えられ得るが、リモートホストは権限のない方法でアクセスを得てもよい。このようなアクセスは、コンピューティングデバイス102に関するデータ及び/又は情報の監視、変更、又は盗み出しを試みる攻撃ホスト116として特徴付けることができる。例えば、攻撃ホスト116は、コンピューティングデバイス102からデータを盗み、コンピューティングデバイス102内でデータを変更し、コンピューティングデバイス102により電力消費を監視し、コンピューティングデバイス102にデータを挿入することができる。権限のないアクセスは、ネットワーク106を含むか、又はコンピューティングデバイス102の電源又は接地、入力に接続された抵抗器を介するなど、電源経路への直接接続を介して行われ得る。
攻撃ホスト116がコンピューティングデバイス102の電力消費をどのように監視できるかに関わらず、暗号化、復号化、セキュリティプロトコル、機密データを含む各種データ処理など、システム動作中の電力変動を分析することにより、コンピューティングデバイスを攻撃するために使用され得るデータシーケンスを識別することができる。すなわち、攻撃ホスト116は、コンピューティングデバイス102への権限のないアクセスを得るために使用することができる内部デバイス情報をレンダリングする1つ以上の様式で、コンピューティングデバイス102の電力変動を検出することができる。
また、図2A~図2Cは、それぞれ、図1のシステム100などのコンピューティングシステムにおけるコンピューティングデバイスによるデータパターン124の実行に対応する電力シーケンス例122をプロットしたものである。図2Aに示すように、電力シーケンス122は、経時的に異なっている信号振幅を有する。
電気ノイズ及び故意に誘発されたディザノイズなどのシステムノイズにより、電力シーケンス122が不明瞭になり得る。それにもかかわらず、高度な攻撃ホストは、データシーケンス124の処理中に電力ピン変動又は他の放出(例えば、電磁放射、熱影響など)を繰り返し捕捉することによって、ノイズからサイドチャネル情報を抽出する統計的方法を利用し得る。図2Bは、ノイズ126によって不明瞭となった電力シーケンス122の例を例解する。電力シーケンス122は、ノイズ充填電力消費の反復評価がデータシーケンス124の一部又は全てをどのように提供できるかを伝えるために部分的に示されている。
図2Cのグラフは、様々な実施形態に従ってクロックをランダムな時間にランダムな周波数に改変した結果、100を超えるデータシーケンス122の実行での電力変動を監視した。図2Cの電力変動は、電源からの電力流に自然発生的に又は人工的に挿入され得るノイズと共に存在することに留意されたい。異なるクロック周波数を使用することにより、データシーケンス124に対する電力シーケンス122の時間相関の不明瞭さを増強させる可能性があるが、反復データシーケンス124の実行は依然としてデータシーケンス122をレンダリングし得る。したがって、反復データシーケンス124の実行により、データ122シーケンスと電力122シーケンスとの間の時間相関のノイズ妨害が明確とならないように、ランダムクロック周波数はランダムな時間に利用される。
図3は、コンピューティングシステムにおける各種実施形態によるクロック周波数ディザリングから生じる雑音の少ない電力シーケンス132を提供する。周波数ディザリングは、不明瞭となるデータシーケンスを識別し、ランダムなクロック周波数へのシフトをランダムな時間に誘導することを含む。データシーケンスが繰り返し実行されても、クロック周波数のディザリングにより、コンピューティングシステムによって消費される電力の電圧の引出し(グラフ化された振幅)及び時間ドメインの両方を改変し、事象の時間が相関関係にないようにすることは、電力シーケンス132から理解され得る。
図4には、例示的なクロック周波数ディザ回路140のブロック図が示されている。クロック周波数ディザ回路140は、クロックモジュール及びコントローラを含む。コントローラは、ローカルプロセッサ142を含む。コントローラは、リードオンリーメモリ(ROM)144、ランダムアクセスメモリ146、ディザ制御モジュール148、間隔タイマモジュール150、周波数選択ルック-アップテーブル(LUT)162と接続される。コントローラはさらに、クロックモジュールに接続される。クロックモジュールは、少なくとも1つの電圧制御発振器(VCO)152、分周回路154、グリッチレスマルチプレクサ158を含む。ディザ回路140は、図1及び図2に示すようなものなど、コンピューティングデバイス及びシステムの一部としてクロック攻撃対策ロジックを使用して、プロセッサ又は論理ブロッククロック信号などの1つ以上のクロック信号をランダムな時間にランダムに切り替えることができる。ディザ回路140は、コンピューティング構成要素の特定の構成に限定されず、図4に示す実施形態におけるローカルプロセッサ142を有する。ローカルプロセッサ142は、ローカルのリードオンリーメモリ(ROM)144及びランダムアクセスメモリ(RAM)146と通信する。
以前にタグ付けされたデータを含むシステム動作が待ち行列に入れられると、ローカルプロセッサ142のファームウェアはクロックディザ制御モジュール148を起動して、クロック周波数ディザリングの実行の一部又は全部を指示することができる。ディザ制御モジュール148は、間隔タイマモジュール150からのランダム間隔、及びローカルプロセッサ142と同じコンピューティングデバイス内に位置付けられた1つ以上のシステムオンチップ(SOC)基準クロックから導出された少なくとも1つの乱数を受信することができる。
少なくとも1つの電圧制御発振器(VCO)152は、分周回路154によって複数の異なるクロック周波数156に分離された周波数範囲を生成することができる。種々のクロック周波数は、個々に固有であってもよく、互いに複数であってもよく、又は集合的なパターンであってもよいことに留意されたい。1つ以上のVCO回路の使用が示されているが、これらに限定されないが位相ロックループ(PLL)シンセサイザ、水晶発振器などの他の形態の発振器(発振回路)を使用してもよい。
1つ以上のクロック周波数は、グリッチレスマルチプレクサ158を介してディザ制御モジュール148によって選択され、ローカルプロセッサ142によってデータシーケンス、セキュリティアルゴリズム又はデータ暗号化/復号の実行などのシステム動作を実行するために利用される。グリッチレスマルチプレクサ158は、クロック周波数が変化したときにグリッチ又はチョップクロック信号を除去することができる任意のコンピューティング構成部品であり得る。
これらに限定されないが、グリッチレスマルチプレクサ158は、複数の周波数156からの異なるクロック周波数の間での切り替え時に、出力されるクロック信号160におけるタイミング及び位相の不一致を論理的に回避するクロックゲート構成を有するマイクロコントローラであることが企図される。ディザ制御モジュール148は、周波数選択ルックアップテーブル(LUT)162を動作させ、任意の数の異なる周波数を一様乱数によって選択することができる。
ルックアップテーブル162は、ローカルプロセッサ142及びディザ制御モジュール148が、システム動作中に及びデータシーケンス間で異なるクロック周波数を使用することに関連し得る正味周波数の低下を緩和するために出力されたクロック周波数を個別に、又は集合的にバイアスさせることができるようになる。例えば、プロセッサ142及び制御モジュール148は、実行された高速周波数後に比較的遅い周波数、又はその逆など、以前に実行されたクロック周波数を平衡させる時間ドメインを有する周波数が提供されるまで、ルックアップテーブル162からランダムクロック周波数を繰り返し呼び出すことができる。
コンピューティングデバイス/システムにとって最小の正味周波数の低下をもたらすためにクロック周波数をバイアスさせる結果、ホストは、クロック周波数のディザリングが発生していることを識別することができない。ディザ制御モジュール148は、さらに確実にクロック周波数が変化する間の所定の間隔を維持させ得る。例えば、ディザ制御モジュール148は、間隔タイマモジュール150によってもたらされる間隔が、確実に最小時間以上最大時間以下であるようにし、これにより、グリッチレス周波数スイッチ間のクロックストールの影響が制限され、かつシステム動作の実行寿命を超えて周波数スイッチを拡散する十分な時間を確保し得る。
グリッチレスマルチプレクサ158の使用は、クロック周波数が変化する間にシームレスなタイミングを提供し得る。しかし、グリッチレスマルチプレクサ158は、同期マルチプレクサよりも物理的に大きく、電子的に複雑であり得る。したがって、種々の実施形態は、図5の非限定的な実施形態に示されるように、同期マルチプレクサ172を有するクロック周波数ディザ回路170を配置する。非常に高速のクロックは、電圧制御発振器152によって提供されるため、ハードウェアによって使用される最大周波数、及び周波数の切り替えが生じないときに使用される複数の低下した周波数を生成するように分割される。最大ハードウェア周波数は、プロセッサ142又はコンピューティングデバイスの不揮発性メモリなど、システム動作を実行する任意の構成部品の最大周波数能力とし得ることに留意されたい。
同期マルチプレクサ172を利用する結果として、異なるクロック周波数間で切り替えを行うことは同期的であり、一時停止、グリッチ、周波数タイミングの改変を伴うことなく行うことができる。図6は、様々な実施形態によりディザ回路140/170がどのように動作し得るかを示す出力クロック信号のサンプルを描写する。スイッチングイネーブル信号182は、クロック周波数スイッチングを有効にするようにプロセッサ142をトリガするシステム動作が検出されるまで、ローカルプロセッサ142から非アクティブ状態のままであり、開始時間184に起動される。
開始時間184は、ディザ制御モジュール148からマルチプレクサ158/172へのクロック選択信号にカスケード接続される。クロック信号186は、回路140を表し、グリッチレスマルチプレクサ158は、第1のランダムに選択された時間間隔190の第1のランダムクロック周波数188、続いて、第2の時間間隔194の第2のランダムクロック周波数192、続いて、第3の時間間隔198の第3のランダムクロック周波数196を提供する。信号186によって示されるように、間隔が異なり、また、周波数がそれぞれ異なり、第1の周波数188を遅いとみなし、第2の周波数192を高速とみなし、第3の周波数196を中間とみなす。
グリッチレスマルチプレクサによるクロック周波数の切り替えは、タイミング遅延200に対応しており、各新しい周波数が、一貫したクロック周波数が使用されるときには存在しないポーズから開始する。比較すると、クロック信号202は、回路170の同期マルチプレクサ172によって供給され、各新しい周波数の開始時にポーズを有さない。したがって、クロック周波数スイッチングの実装は、グリッチレス又は同期マルチプレクサを使用してカスタマイズできることが理解できよう。
図7は、いくつかの実施形態に従って構成及び利用され得る例示的な周波数選択ルックアップテーブル210を表す。ローカルプロセッサによりディザ制御モジュールが起動すると、新しいランダムな周波数及びランダムな時間間隔が制御モジュールによって選択され、その後プログラマブルルックアップテーブルに記憶される。このテーブルは、擬似乱数生成器から導出された値によってインデックス付けされ、時間の経過と共にパターン化された乱数のリスクを緩和することができる。
非限定的なテーブル210に示すように、複数の異なる周波数は、f、f、f、及びfからなり、fは最大クロック周波数であり、fは最低クロック周波数である。それぞれのクロック周波数は、一様に分布した3ビットの擬似乱数生成器によってインデックス付けされる。
いくつかの実施形態では、ステートマシンは、より低い周波数間隔の間に最大周波数間隔を置き、これにより、テーブル210は、デフォルトクロック周波数よりも低いクロック周波数のリスト化を引き起こす。図7に示すテーブル構成については、正味周波数は、式1によって示される:
Figure 0007122142000001
したがって、ディザ制御モジュールによって、デフォルトのクロック周波数よりも一般に高いクロック周波数の別個のルックアップテーブルを作成して、様々なクロック周波数を使用して、正味クロック周波数がデフォルトのクロック周波数に近くなるようにすることができる。ディザ制御モジュールでは、1つ以上の別個のルックアップテーブルを有する代わりに、より高い範囲の周波数を達成するために単一のルックアップテーブルの周波数をバイアスし得ることが企図される。
図7に例示されるように、ルックアップテーブルにおける周波数の一様でない分布を使用することにより、デフォルト(基本)クロック周波数に対して正味周波数をより高く重み付けする働きをする。いくつかの実施形態では、同じ基本クロック周波数がシステムによって使用されてもよい。他の場合には、基本クロック周波数は異なる動作時間でも変化し得る。より低い基本クロック周波数が電力節約モードで使用され、より高い基本クロック周波数が実行モード中に使用されてもよい。それにもかかわらず、ルックアップテーブル210の周波数は、基本クロック周波数に対して低下している周波数を表す。テーブル中の低下した周波数は、特定の周波数値に対応してもよく、又は選択された基本周波数の選択されたパーセンテージを表してもよい。
ルックアップテーブルの数及び内容にかかわらず、デフォルトクロックよりも低いクロック周波数を使用することによって生じる正味周波数の低下の性能損失を軽減するために、選択されたクロック周波数を記憶することで、より高い周波数に有利なクロック周波数の分布を熟考することが可能になる。したがって、コンピューティングシステムは、ランダムクロック周波数を使用して、プロセッサ/システム性能の低下を最小限に抑えるか、又は全くない状態にして潜在的な電力変動監視攻撃に対処することができる。
図8は、図1~7によるコンピューティングシステムの様々な実施形態によって実行され得る例示的な攻撃対策ルーチン220を提供する。システム動作中にランダムな時間間隔の間にランダムに選択されたクロック周波数を実行することができるディザ制御モジュールに接続されたローカルプロセッサを有するコンピュータシステムが最初に提供される。既存のコンピュータシステムは、ステップ222において、電圧制御発振器を複数の異なるクロック周波数に分割するために利用される。
ローカルプロセッサが一様のデフォルトクロック周波数で1つ以上のシステム動作を実行することから、各種クロック周波数は任意の時間長の間使用されないままであり得る。判定224は、次回の待機システム動作を連続的に又は散発的に評価して、その動作が重要であるかどうかを決定することができる。機密データを含む、システムセキュリティに関する、又はシステム設定の表示など、所定の基準を満たす場合、動作は重要であるとみなされ得る。判定224は、待ち行列に入れられたシステム動作のデータ及び機密度を予測するために予測モジュールを使用することができる。判定224の決定はまた、待ち行列に入れられたシステム動作を、データ暗号化又はファームウェア更新などの重要な動作の既知のリストと比較することを含むことができる。
保留中のシステム動作が重要でない場合、プロセッサに一様のデフォルトクロック周波数が提供されている間、ステップ226ではシステム動作を実行する。システム動作が重要であるとみなされる場合、判定224は、プロセッサをトリガして、ステップ228でディザ制御モジュールに対策イネーブル信号を送信するようにする。ディザ制御モジュールは、ステップ232においてプログラマブルルックアップテーブルに記憶された第1の周波数及び第1のタイミング間隔をステップ230で選択するように進む。
次に、ステップ234において、デフォルトのクロック周波数が、選択された第1のクロック周波数にシフトされる。ステップ230においてランダムに選択された時間間隔の重要なシステム動作を実行後、ステップ236では、現在の(第1の)クロック周波数から異なる次のクロック周波数に切り替える。ステップ234及び236のスイッチは、グリッチレス又は同期マルチプレクサが使用されているかどうかに依存して、時間遅延を含んでもよい。
重要なシステム動作の実行中に、任意の数の異なるクロック周波数が使用されてもよい。判定238では、3つ以上の異なるクロック周波数が使用されるかどうかを評価する。その後、重要なシステム動作の実行中に、ステップ236に戻ることによって追加の異なるクロック周波数が選択され、利用される。追加のクロック周波数を使用しない場合、判定240は、システム動作が完了したかどうかを決定する。システム動作が完了すると、ステップ242を促して、ローカルプロセッサをデフォルトクロック周波数に戻すようにし、未完了システム動作では判定238に戻り、判定240でルーチン220がステップ242に進むまで、動作が非デフォルトクロック周波数で連続的に実行される。
本開示の様々な実施形態により、電力変動を監視する攻撃に対する保護を強化してシステム動作を実行することができる。システム動作の実行中に任意の数の異なる、ランダムに選択されたクロック周波数をランダムな時間量で利用することができることにより、デバイスのプロセッサ及びメモリなどの態様のコンピューティングデバイスのデータシーケンスと電力消費との間の時間相関が不明瞭になる。選択されたクロック周波数ルックアップテーブルを維持することにより、低下されたクロック周波数での動作の実行による最小限の性能損失とするために、ランダムな周波数を分散又はバイアスを与えることができる。
本技術は、スイッチ、サーバ、及び他の電気閉鎖アプリケーションなどの任意の数の他のアプリケーションにおいて容易に利用できることから、様々な実施形態は、データ記憶装置に限定されないことに留意されたい。本開示の様々な実施形態の多数の特徴が、様々な実施形態の構造及び機能の詳細と共に前述の説明に記載されているが、この詳細な説明は例示的なものに過ぎず、特に、添付の特許請求の範囲が表現されている用語の広範な一般的意味によって示される全範囲に対して、本技術の原理内の部分の構造及び配置に関する事項の詳細な変更がなされてもよいことが理解されるべきである。

Claims (20)

  1. 方法であって、
    クロックモジュールの少なくとも1つの発振器を用いて異なる周波数の範囲を生成するステップと、
    ディザ制御回路に応答して前記クロックモジュールのチャネルセレクタによってコントローラに第1のクロック周波数を提供するステップと、
    前記コントローラを用いてシステム動作を実行するステップと、
    前記ディザ制御回路によって指示された前記システム動作の前記実行中に前記第1のクロック周波数を第2のクロック周波数に変化させるステップであって、前記第2のクロック周波数が前記異なる周波数の範囲から選択されるステップと、
    前記システム動作の前記実行の終了時に前記第1のクロック周波数に戻るステップと、を含む方法。
  2. 前記チャネルセレクタが、グリッチレスマルチプレクサである、請求項1に記載の方法。
  3. 前記クロックモジュールが、第1及び第2の電圧制御発振器を備える、請求項1に記載の方法。
  4. 前記ディザ制御回路が、前記システム動作の前記実行中に前記第2のクロック周波数を第3のクロック周波数に改変し、前記第3のクロック周波数が、それぞれの前記第1のクロック周波数及び前記第2のクロック周波数とは異なり、前記異なる周波数の範囲から選択される、請求項1に記載の方法。
  5. 前記ディザ制御回路が、前記コントローラに接続されたタイマーからランダムな時間間隔を受信する、請求項1に記載の方法。
  6. 前記ディザ制御回路によって、前記ランダムな時間間隔が、所定の最小間隔時間よりも長く、所定の最大間隔時間よりも短いことが検証される、請求項5に記載の方法。
  7. 前記ディザ制御回路が、前記第2のクロック周波数を選択するために一様乱数を使用する、請求項1に記載の方法。
  8. 前記第1クロック周波数又は前記第2クロック周波数のいずれかが、前記システム動作の前記実行前、前記実行中及び前記実行後に前記コントローラに連続的に提供される、請求項1に記載の方法。
  9. 前記第1のクロック周波数と前記第2のクロック周波数との間での変化することにより、前記実行されたシステム動作の部分の時間と電力との相関を不明瞭にする、請求項1に記載の方法。
  10. 方法であって、
    クロックモジュールの発振器を用いて異なる周波数の範囲を生成するステップと、
    ディザ制御回路に応答して前記クロックモジュールによってコントローラに第1のクロック周波数を提供するステップと、
    前記コントローラを用いて第1のシステム動作を実行するステップと、
    前記ディザ制御回路によって指示された前記システム動作の前記実行中に、ランダムな時間で、前記第1のクロック周波数を第2及び第3のクロック周波数に順次切り替えるステップと、
    前記システム動作の前記実行の終了時に前記第1のクロック周波数に戻るステップと、を含む方法。
  11. 前記チャネルセレクタが、同期クロックマルチプレクサである、請求項10に記載の方法。
  12. ルックアップテーブルが前記コントローラによって維持され、擬似乱数発生器から導出された値によってインデックス付けされる、請求項10に記載の方法。
  13. 前記ディザ制御回路が、前記第2のクロック周波数及び前記第3のクロック周波数を選択し、前記第1のクロック周波数が前記システム動作を実行するために排他的に使用された場合とほぼ同じである前記第1のシステム動作の全実行時間を提供する、請求項10に記載の方法。
  14. 前記第2のクロック周波数が、前記第1のクロック周波数よりも大きく、前記第3のクロック周波数が、前記第1のクロック周波数よりも小さい、請求項12に記載の方法。
  15. 前記それぞれ第1、第2、及び第3のクロック周波数間で変化することは、同期しており、グリッチがない、請求項10に記載の方法。
  16. 第2のシステム動作が前記コントローラによって実行され、前記ディザ制御回路が、前記第1のクロック周波数に戻る前に前記第2のシステム動作の前記実行中に前記第1のクロック周波数を第4、第5及び第6のクロック周波数に切り替え、前記第4、第5及び第6クロック周波数が、互いに異なり、また前記第1クロック周波数と異なる、請求項10に記載の方法。
  17. 前記第4、第5、及び第6のクロック周波数が、それぞれ、前記それぞれの第2、第3、及び第4のクロック周波数とは異なる、請求項16に記載の方法。
  18. 前記第1のシステム動作中にクロック周波数を切り替えることで、前記コントローラのデータ依存電力の変動に依存してサイドチャネル攻撃を防ぐ、請求項10に記載の方法。
  19. チャネルセレクタ及び発振器を有するクロックモジュールに接続されたコントローラを含む装置であって、前記チャネルセレクタが、間隔タイマー及びクロックディザ制御回路と連動する前記コントローラに応答して、前記チャネルセレクタが時間の経過と共に複数の異なるクロック周波数を前記コントローラに提供する、装置。
  20. 前記複数の異なるクロック周波数が、前記コントローラに接続されたルックアップテーブルにおいてローカルに記憶される、請求項19に記載の装置。
JP2018073102A 2017-04-19 2018-04-05 電力変動攻撃対策を有するコンピューティングシステム Active JP7122142B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/491,654 2017-04-19
US15/491,654 US10459477B2 (en) 2017-04-19 2017-04-19 Computing system with power variation attack countermeasures

Publications (2)

Publication Number Publication Date
JP2018182737A JP2018182737A (ja) 2018-11-15
JP7122142B2 true JP7122142B2 (ja) 2022-08-19

Family

ID=63852910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018073102A Active JP7122142B2 (ja) 2017-04-19 2018-04-05 電力変動攻撃対策を有するコンピューティングシステム

Country Status (3)

Country Link
US (1) US10459477B2 (ja)
JP (1) JP7122142B2 (ja)
CN (1) CN108733133B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459477B2 (en) * 2017-04-19 2019-10-29 Seagate Technology Llc Computing system with power variation attack countermeasures
KR102348912B1 (ko) * 2019-12-06 2022-01-11 주식회사 이와이엘 부채널 공격 방어를 위한 난수발생기 및 이의 동작 방법
EP3839779A1 (en) * 2019-12-18 2021-06-23 Thales DIS France SA Electronic system and methods for a dynamic activation of countermeasures
CN111756219A (zh) * 2020-07-05 2020-10-09 上海韦孜美电子科技有限公司 一种开关频率抖动方法、开关电路及dc-dc转换器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002526840A (ja) 1998-09-30 2002-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 差動電流消費分析を防止するためのデータ処理装置および作動方法
JP2004078495A (ja) 2002-08-15 2004-03-11 Sony Corp 非接触式icカード
JP2005512240A (ja) 2001-12-13 2005-04-28 キャナル プラス テクノロジーズ 電気式解析から保護されるデジタル電子部品
JP2013243656A (ja) 2012-05-19 2013-12-05 Freescale Semiconductor Inc セキュアモジュールのための改ざん検出器
WO2017050999A1 (fr) 2015-09-25 2017-03-30 Gemalto Sa Generateur d'horloge aleatoire

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0611117B2 (ja) * 1984-12-31 1994-02-09 ティアツク株式会社 ディジタル−アナログ変換装置
US5231636A (en) 1991-09-13 1993-07-27 National Semiconductor Corporation Asynchronous glitchless digital MUX
US5416434A (en) * 1993-03-05 1995-05-16 Hewlett-Packard Corporation Adaptive clock generation with pseudo random variation
US5381416A (en) * 1993-11-08 1995-01-10 Unisys Corporation Detection of skew fault in a multiple clock system
US5404402A (en) * 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
WO1999067766A2 (en) 1998-06-03 1999-12-29 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
US6594760B1 (en) 1998-12-21 2003-07-15 Pitney Bowes Inc. System and method for suppressing conducted emissions by a cryptographic device
US6807232B2 (en) 2000-12-21 2004-10-19 National Instruments Corporation System and method for multiplexing synchronous digital data streams
EP1263139A3 (en) * 2001-05-30 2006-07-05 STMicroelectronics Limited Glitch-free multiplexer
WO2004053685A1 (en) 2002-12-12 2004-06-24 Arm Limited Instruction timing control within a data processing system
US7417468B2 (en) 2003-09-17 2008-08-26 The Regents Of The University Of California Dynamic and differential CMOS logic with signal-independent power consumption to withstand differential power analysis
US6958635B2 (en) * 2003-10-14 2005-10-25 Qualcomm Incorporated Low-power direct digital synthesizer with analog interpolation
CN100504716C (zh) * 2004-01-28 2009-06-24 Nxp股份有限公司 在数字处理系统中用于超频的方法和装置
US8584122B2 (en) * 2006-03-31 2013-11-12 Ebay Inc. Batch scheduling
US20080091975A1 (en) * 2006-10-17 2008-04-17 Konstantin Kladko Method and system for side-channel testing a computing device and for improving resistance of a computing device to side-channel attacks
US7870336B2 (en) 2006-11-03 2011-01-11 Microsoft Corporation Operating system protection against side-channel attacks on secrecy
US7756231B2 (en) * 2007-01-09 2010-07-13 Freescale Semiconductor, Inc. Digital clock generating circuit and method of operation
KR101428787B1 (ko) 2007-02-08 2014-08-08 가부시키가이샤 한도오따이 에네루기 켄큐쇼 클록 신호 생성 회로 및 반도체 장치
US8089318B2 (en) * 2008-10-17 2012-01-03 Marvell World Trade Ltd. Methods, algorithms, circuits, and systems for determining a reference clock frequency and/or locking a loop oscillator
US8190944B2 (en) * 2009-12-11 2012-05-29 Ati Technologies Ulc Device configured to switch a clock speed for multiple links running at different clock speeds and method for switching the clock speed
CA2792302A1 (en) 2010-03-25 2011-09-29 Irdeto Canada Corporation System and method for dynamic, variably-timed operation paths as a resistance to side channel and repeated invocation attacks
GB2479871A (en) 2010-04-26 2011-11-02 David Coyne System for preventing side channel attacks on a synchronous logic device.
US8427194B2 (en) 2010-05-24 2013-04-23 Alexander Roger Deas Logic system with resistance to side-channel attack by exhibiting a closed clock-data eye diagram
GB2487901B (en) 2011-02-03 2019-12-04 Advanced Risc Mach Ltd Power signature obfuscation
US9250671B2 (en) 2011-02-16 2016-02-02 Honeywell International Inc. Cryptographic logic circuit with resistance to differential power analysis
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
KR101870249B1 (ko) * 2012-01-25 2018-06-22 삼성전자주식회사 디더 제어 회로와 이를 포함하는 장치들
US9887833B2 (en) 2012-03-07 2018-02-06 The Trustees Of Columbia University In The City Of New York Systems and methods to counter side channel attacks
US9343162B2 (en) 2013-10-11 2016-05-17 Winbond Electronics Corporation Protection against side-channel attacks on non-volatile memory
US9436603B1 (en) 2014-02-27 2016-09-06 Amazon Technologies, Inc. Detection and mitigation of timing side-channel attacks
US9871651B2 (en) 2014-06-16 2018-01-16 Cisco Technology, Inc. Differential power analysis countermeasures
US9720486B2 (en) * 2015-09-25 2017-08-01 Advanced Micro Devices, Inc. Method and device for noise reduction in multi-frequency clocking environment
US10891396B2 (en) * 2016-05-27 2021-01-12 Samsung Electronics Co., Ltd. Electronic circuit performing encryption/decryption operation to prevent side- channel analysis attack, and electronic device including the same
FR3053485A1 (fr) * 2016-06-29 2018-01-05 STMicroelectronics (Alps) SAS Procede et circuit de controle dynamique de consommation d'energie
US10459477B2 (en) * 2017-04-19 2019-10-29 Seagate Technology Llc Computing system with power variation attack countermeasures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002526840A (ja) 1998-09-30 2002-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 差動電流消費分析を防止するためのデータ処理装置および作動方法
JP2005512240A (ja) 2001-12-13 2005-04-28 キャナル プラス テクノロジーズ 電気式解析から保護されるデジタル電子部品
JP2004078495A (ja) 2002-08-15 2004-03-11 Sony Corp 非接触式icカード
JP2013243656A (ja) 2012-05-19 2013-12-05 Freescale Semiconductor Inc セキュアモジュールのための改ざん検出器
WO2017050999A1 (fr) 2015-09-25 2017-03-30 Gemalto Sa Generateur d'horloge aleatoire

Also Published As

Publication number Publication date
US20180307835A1 (en) 2018-10-25
CN108733133B (zh) 2021-06-04
JP2018182737A (ja) 2018-11-15
US10459477B2 (en) 2019-10-29
CN108733133A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
JP7122142B2 (ja) 電力変動攻撃対策を有するコンピューティングシステム
US11750361B2 (en) Clock period randomization for defense against cryptographic attacks
Yang et al. An all-digital edge racing true random number generator robust against PVT variations
Rahman et al. TI-TRNG: Technology independent true random number generator
EP2625640B1 (en) Physical unclonable function with improved start-up behaviour
TWI520055B (zh) 用於產生隨機數之裝置與方法
KR101946509B1 (ko) 클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 시스템 및 방법
EP3393078B1 (en) Secure execution environment clock frequency hopping
KR20160008532A (ko) 진성 난수 생성기에 대한 자동 제어 시스템 및 방법
JP2004302915A (ja) 擬似乱数発生回路
Lampert et al. Robust, low-cost, auditable random number generation for embedded system security
Luo et al. A quantitative defense framework against power attacks on multi-tenant FPGA
US10263767B1 (en) System and method for power analysis resistant clock
Yao et al. Programmable ro (pro): A multipurpose countermeasure against side-channel and fault injection attack
Islam et al. PMU-Trojan: On exploiting power management side channel for information leakage
KR20180059872A (ko) 랜덤 클럭 생성기
Luo et al. Faulty clock detection for crypto circuits against differential fault analysis attack
US11906581B2 (en) Hardware component and a method for implementing a camouflage of current traces generated by a digital system
Gyorfi et al. High performance true random number generator based on FPGA block RAMs
KR20080050220A (ko) 오실레이터 샘플링 방법을 이용한 실난수 발생 장치
Mahmoud et al. Practical Implementations of Remote Power Side-Channel and Fault-Injection Attacks on Multitenant FPGAs
Kohlbrenner The design and analysis of a true random number generator in a field programmable gate array
Islam et al. A Software Approach Towards Defeating Power Management Side Channel Leakage
Likhithashree et al. Design of Power-Efficient Ring Oscillator based Physically Unclonable Functions for FPGA
Yoo et al. A robust and practical random number generator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220808

R150 Certificate of patent or registration of utility model

Ref document number: 7122142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150