(57)【要約】【課題】電力変動攻撃対策を有するコンピューティングシステムを提供する。【解決手段】コンピュータシステムは、ディザ制御回路に応答して、クロックモジュールのチャネルセレクタを有するコントローラに第１のクロック周波数を提供する前に、クロックモジュールの少なくとも１つの発振器を用いて異なる周波数の範囲を生成するように配置され得る。ディザ制御回路の指示に従って、システム動作の実行中に第１のクロック周波数が第２のクロック周波数に変化する前に、コントローラを用いてシステム動作が実行され得る。第２のクロック周波数は、異なる周波数の範囲から選択され得る。コンピューティングシステムは、システム動作の実行の終了時に第１のクロック周波数に戻ってもよい。【選択図】図１
2018182737.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
クロックモジュールの少なくとも１つの発振器を用いて異なる周波数の範囲を生成するステップと、
ディザ制御回路に応答して前記クロックモジュールのチャネルセレクタを有するコントローラに第１のクロック周波数を提供するステップと、
前記コントローラを用いてシステム動作を実行するステップと、
前記ディザ制御回路によって指示された前記システム動作の前記実行中に前記第１のクロック周波数を第２のクロック周波数に変化させるステップであって、前記第２のクロック周波数が前記異なる周波数の範囲から選択されるステップと、
前記システム動作の前記実行の終了時に前記第１のクロック周波数に戻るステップと、を含む方法。
【請求項２】
前記チャネルセレクタが、グリッチレスマルチプレクサである、請求項１に記載の方法。
【請求項３】
前記クロックモジュールが、第１及び第２の電圧制御発振器を備える、請求項１に記載の方法。
【請求項４】
前記ディザ制御回路が、前記システム動作の前記実行中に前記第２のクロック周波数を第３のクロック周波数に改変し、前記第３のクロック周波数が、それぞれの前記第１のクロック周波数及び前記第２のクロック周波数とは異なり、前記異なる周波数の範囲から選択される、請求項１に記載の方法。
【請求項５】
前記ディザ制御回路が、前記コントローラに接続されたタイマーからランダムな時間間隔を受信する、請求項１に記載の方法。
【請求項６】
前記ディザ制御回路によって、前記ランダムな時間間隔が、所定の最小間隔時間よりも長く、所定の最大間隔時間よりも短いことが検証される、請求項５に記載の方法。
【請求項７】
前記ディザ制御回路が、前記第２のクロック周波数を選択するために一様乱数を使用する、請求項１に記載の方法。
【請求項８】
前記第１クロック周波数又は前記第２クロック周波数のいずれかが、前記システム動作の前記実行前、前記実行中及び前記実行後に前記コントローラに連続的に提供される、請求項１に記載の方法。
【請求項９】
前記第１のクロック周波数と前記第２のクロック周波数との間での変化することにより、前記実行されたシステム動作の部分の時間と電力との相関を不明瞭にする、請求項１に記載の方法。
【請求項１０】
方法であって、
クロックモジュールの発振器を用いて異なる周波数の範囲を生成するステップと、
ディザ制御回路に応答して前記クロックモジュールを有するコントローラに第１のクロック周波数を提供するステップと、
前記コントローラを用いて第１のシステム動作を実行するステップと、
前記ディザ制御回路によって指示された前記システム動作の前記実行中に、ランダムな時間で、前記第１のクロック周波数を第２及び第３のクロック周波数に順次切り替えるステップと、
前記システム動作の前記実行の終了時に前記第１のクロック周波数に戻るステップと、を含む方法。
【請求項１１】
前記チャネルセレクタが、同期クロックマルチプレクサである、請求項１０に記載の方法。
【請求項１２】
ルックアップテーブルが前記コントローラによって維持され、擬似乱数発生器から導出された値によってインデックス付けされる、請求項１０に記載の方法。
【請求項１３】
前記ディザ制御回路が、前記第２のクロック周波数及び前記第３のクロック周波数を選択し、前記第１のクロック周波数が前記システム動作を実行するために排他的に使用された場合とほぼ同じである前記第１のシステム動作の全実行時間を提供する、請求項１０に記載の方法。
【請求項１４】
前記第２のクロック周波数が、前記第１のクロック周波数よりも大きく、前記第３のクロック周波数が、前記第１のクロック周波数よりも小さい、請求項１２に記載の方法。
【請求項１５】
前記それぞれ第１、第２、及び第３のクロック周波数間で変化することは、同期しており、グリッチがない、請求項１０に記載の方法。
【請求項１６】
第２のシステム動作が前記コントローラによって実行され、前記ディザ制御回路が、前記第１のクロック周波数に戻る前に前記第２のシステム動作の前記実行中に前記第１のクロック周波数を第４、第５及び第６のクロック周波数に切り替え、前記第４、第５及び第６クロック周波数が、互いに異なり、また前記第１クロック周波数と異なる、請求項１０に記載の方法。
【請求項１７】
前記第４、第５、及び第６のクロック周波数が、それぞれ、前記それぞれの第２、第３、及び第４のクロック周波数とは異なる、請求項１６に記載の方法。
【請求項１８】
前記第１のシステム動作中にクロック周波数を切り替えることで、前記コントローラのデータ依存電力の変動に依存してサイドチャネル攻撃を防ぐ、請求項１０に記載の方法。
【請求項１９】
チャネルセレクタ及び発振器を有するクロックモジュールに接続されたコントローラを含む装置であって、前記チャネルセレクタが、間隔タイマー及びクロックディザ制御回路と連動する前記コントローラに応答して、時間の経過と共に複数の異なるクロック周波数を提供する、装置。
【請求項２０】
前記複数の異なるクロック周波数が、前記コントローラに接続されたルックアップテーブルにおいてローカルに記憶される、請求項１９に記載の装置。
【発明の詳細な説明】
【発明の概要】
【課題を解決するための手段】
【０００１】
いくつかの実施形態によるコンピューティングシステムは、ディザ制御回路に応答して、クロックモジュールのチャネルセレクタを有するコントローラに第１のクロック周波数を提供する前に、クロックモジュールの少なくとも１つの発振器を用いて異なる周波数の範囲を生成する。ディザ制御回路の指示に従って、システム動作の実行中に第１のクロック周波数が第２のクロック周波数に変化する前に、コントローラを用いてシステム動作が実行される。第２のクロック周波数は、異なる周波数の範囲から選択され、コンピューティングシステムは、システム動作の実行の終了時に第１のクロック周波数に戻る。
【０００２】
他の実施形態は、クロックモジュールの発振器を用いて異なる周波数の範囲を生成するようにコンピューティングシステムを構成し、その後、ディザ制御回路に応答して、クロックモジュールを有するコントローラに第１のクロック周波数を提供する。第１のシステム動作は、ディザ制御回路によって指示されるとおり、システム動作の実行中に第１のクロック周波数がランダムな時間に第２及び第３のクロック周波数に順次切り替えられる前にコントローラを用いて実行される。コンピューティングシステムは、システム動作の実行の終了時に第１のクロック周波数に戻る。
【０００３】
コンピューティングシステムは、他の実施形態では、チャネルセレクタ及び発振器を有するクロックモジュールに接続されたコントローラを有する。チャネルセレクタは、間隔タイマー及びクロックディザ制御回路と連動するコントローラに応答して、時間の経過と共に複数の異なるクロック周波数を提供するように配置される。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態に従って配置された例示的コンピューティングシステムのブロック図である。
【図２Ａ】それぞれ、図１のコンピューティングシステムに関連する例示的動作データを示す。
【図２Ｂ】それぞれ、図１のコンピューティングシステムに関連する例示的動作データを示す。
【図２Ｃ】それぞれ、図１のコンピューティングシステムに関連する例示的動作データを示す。
【図３】様々な実施形態に従って構成されたコンピューティングシステムの動作データをプロットする。
【図４】図１のコンピューティングシステム内で使用され得る例示的なクロック周波数ディザ回路を示す。
【図５】図１のコンピューティングシステム内で使用可能な例示的クロック周波数ディザ回路を示す。
【図６】クロック周波数ディザ回路を利用する例示的コンピューティングシステムの様々な態様のタイミング図を提供する。
【図７】図１のコンピューティングシステムの一部として作成され、維持され得るルックアップテーブルの例を示す。
【図８】図１のコンピューティングシステムで実行される攻撃対策ルーチンである。
【発明を実施するための形態】
【０００５】
コンピューティング技術の継続的な進歩により、増加する個人情報の量をデジタル形式で記憶することが可能になっている。機密情報の電子的記憶では、個人のデジタルデータに対する望ましくない攻撃のリスクを軽減するための厳重なセキュリティプロトコルに重点を置いている。
【０００６】
暗号化キーなどの機密情報は、メモリやプロセッサなどのコンピューティングハードウェアから、及びコンピューティングハードウェアによってその情報が使用されている間、アルゴリズムが情報を処理している間に発生するデータ依存の電力変動を観察することにより、直接抽出することができる。システムノイズにより、わずかな電力変動の単純な観察結果が不明瞭になり得るが、それでも、反復捕捉及びコヒーレント積分技術によりノイズから対象の変動の一部を抽出することができる。
【０００７】
したがって、各種の実施形態は、一般に、選択されたシステム動作の実行中に異なる周波数間でランダムにホッピングするクロック信号を生成すること及び使用することを対象とする。重要な実行シーケンスの間中、異なるクロック周波数間で変化することにより、電力変動の時間相関は、重要な実行シーケンスが繰返されることによって不明瞭になる。
【０００８】
データ依存の電力変動を観察するサイドチャネル攻撃を阻止するために、単一周波数クロックをランダムに無効にできることが企図される。しかし、このような技術は、特に多数のクロック停止が導入された場合に、実行時間が短縮することによりシステム性能を低下させる可能性がある。システム動作の実行中、ランダムな時間のランダムな周波数に対してクロック周波数ホッピングをインテリジェントに用いる本開示の様々な実施形態により、低下させたクロックレートを使用しているにもかかわらずコンピューティングシステムが完全な能力で動作し続けることが可能になる。
【０００９】
図１は、本開示の様々な実施形態が実施され得るコンピューティングシステム１００の例を示す。システム１００は、有線及び／又は無線ネットワーク１０６を介して１つ以上のリモートホスト１０４に接続された任意の数及びタイプのコンピューティングデバイス１０２を使用することができる。例えば、コンピューティングシステム１００は、複数の異なるリモートホスト１０４を、ハードディスクドライブ（ＨＤＤ）及び不揮発性ソリッドステートメモリなどの２つの異なるコンピューティングデバイス１０２に接続して、順次又は並行データアクセスを提供することができ、データの読み出し又はデータの書き込みを行うことができる。
【００１０】
あるいは、コンピューティングデバイス１０２は、コンピュータ、スマートフォン、サーバ、又はネットワークノードであってもよい。図１に示す非限定的実施形態では、コンピューティングデバイスは、プログラマブルコントローラなどのローカルプロセッサ１０８を有し、少なくとも１つのローカル不揮発性メモリ１１０と通信する。コンピューティングデバイス１０２は、データ記憶、データ生成、及びデータ通信動作を提供することができる追加のローカル回路を有し得る。コンピューティングデバイス１０２は、任意の数のローカル１１２又はリモート１１４電源から電力を引き出すことができる。
【００１１】
任意の数のリモートホスト１０４が１つ以上のコンピューティングデバイス１０２へアクセスするための権限が与えられ得るが、リモートホストは権限のない方法でアクセスを得てもよい。このようなアクセスは、コンピューティングデバイス１０２に関するデータ及び／又は情報の監視、変更、又は盗み出しを試みる攻撃ホスト１１６として特徴付けることができる。例えば、攻撃ホスト１１６は、コンピューティングデバイス１０２からデータを盗み、コンピューティングデバイス１０２内でデータを変更し、コンピューティングデバイス１０２により電力消費を監視し、コンピューティングデバイス１０２にデータを挿入することができる。権限のないアクセスは、ネットワーク１０６を含むか、又はコンピューティングデバイス１０２の電源又は接地、入力に接続された抵抗器を介するなど、電源経路への直接接続を介して行われ得る。
【００１２】
攻撃ホスト１１６がコンピューティングデバイス１０２の電力消費をどのように監視できるかに関わらず、暗号化、復号化、セキュリティプロトコル、機密データを含む各種データ処理など、システム動作中の電力変動を分析することにより、コンピューティングデバイスを攻撃するために使用され得るデータシーケンスを識別することができる。すなわち、攻撃ホスト１１６は、コンピューティングデバイス１０２への権限のないアクセスを得るために使用することができる内部デバイス情報をレンダリングする１つ以上の様式で、コンピューティングデバイス１０２の電力変動を検出することができる。
【００１３】
また、図２Ａ〜図２Ｃは、それぞれ、図１のシステム１００などのコンピューティングシステムにおけるコンピューティングデバイスによるデータパターン１２４の実行に対応する電力シーケンス例１２２をプロットしたものである。図２Ａに示すように、電力シーケンス１２２は、経時的に異なっている信号振幅を有する。
【００１４】
電気ノイズ及び故意に誘発されたディザノイズなどのシステムノイズにより、電力シーケンス１２２が不明瞭になり得る。それにもかかわらず、高度な攻撃ホストは、データシーケンス１２４の処理中に電力ピン変動又は他の放出（例えば、電磁放射、熱影響など）を繰り返し捕捉することによって、ノイズからサイドチャネル情報を抽出する統計的方法を利用し得る。図２Ｂは、ノイズ１２６によって不明瞭となった電力シーケンス１２２の例を例解する。電力シーケンス１２２は、ノイズ充填電力消費の反復評価がデータシーケンス１２４の一部又は全てをどのように提供できるかを伝えるために部分的に示されている。
【００１５】
図２Ｃのグラフは、様々な実施形態に従ってクロックをランダムな時間にランダムな周波数に改変した結果、１００を超えるデータシーケンス１２２の実行での電力変動を監視した。図２Ｃの電力変動は、電源からの電力流に自然発生的に又は人工的に挿入され得るノイズと共に存在することに留意されたい。異なるクロック周波数を使用することにより、データシーケンス１２４に対する電力シーケンス１２２の時間相関の不明瞭さを増強させる可能性があるが、反復データシーケンス１２４の実行は依然としてデータシーケンス１２２をレンダリングし得る。したがって、反復データシーケンス１２４の実行により、データ１２２シーケンスと電力１２２シーケンスとの間の時間相関のノイズ妨害が明確とならないように、ランダムクロック周波数はランダムな時間に利用される。
【００１６】
図３は、コンピューティングシステムにおける各種実施形態によるクロック周波数ディザリングから生じる雑音の少ない電力シーケンス１３２を提供する。周波数ディザリングは、不明瞭となるデータシーケンスを識別し、ランダムなクロック周波数へのシフトをランダムな時間に誘導することを含む。データシーケンスが繰り返し実行されても、クロック周波数のディザリングにより、コンピューティングシステムによって消費される電力の電圧の引出し（グラフ化された振幅）及び時間ドメインの両方を改変し、事象の時間が相関関係にないようにすることは、電力シーケンス１３２から理解され得る。
【００１７】
図４には、例示的なクロック周波数ディザ回路１４０のブロック図が示されている。ディザ回路１４０は、図１及び図２に示すようなものなど、コンピューティングデバイス及びシステムの一部としてクロック攻撃対策ロジックを使用して、プロセッサ又は論理ブロッククロック信号などの１つ以上のクロック信号をランダムな時間にランダムに切り替えることができる。ディザ回路１４０は、コンピューティング構成要素の特定の構成に限定されず、図４に示す実施形態におけるローカルプロセッサ１４２を有する。ローカルプロセッサ１４２は、ローカルのリードオンリーメモリ（ＲＯＭ）１４４及びランダムアクセスメモリ（ＲＡＭ）１４６と通信する。
【００１８】
以前にタグ付けされたデータを含むシステム動作が待ち行列に入れられると、ローカルプロセッサ１４２のファームウェアはクロックディザ制御モジュール１４８を起動して、クロック周波数ディザリングの実行の一部又は全部を指示することができる。ディザ制御モジュール１４８は、間隔タイマモジュール１５０からのランダム間隔、及びローカルプロセッサ１４２と同じコンピューティングデバイス内に位置付けられた１つ以上のシステムオンチップ（ＳＯＣ）基準クロックから導出された少なくとも１つの乱数を受信することができる。
【００１９】
少なくとも１つの電圧制御発振器（ＶＣＯ）１５２は、分周回路１５４によって複数の異なるクロック周波数１５６に分離された周波数範囲を生成することができる。種々のクロック周波数は、個々に固有であってもよく、互いに複数であってもよく、又は集合的なパターンであってもよいことに留意されたい。１つ以上のＶＣＯ回路の使用が示されているが、これらに限定されないが位相ロックループ（ＰＬＬ）シンセサイザ、水晶発振器などの他の形態の発振器（発振回路）を使用してもよい。
【００２０】
１つ以上のクロック周波数は、グリッチレスマルチプレクサ１５８を介してディザ制御モジュール１４８によって選択され、ローカルプロセッサ１４２によってデータシーケンス、セキュリティアルゴリズム又はデータ暗号化／復号の実行などのシステム動作を実行するために利用される。グリッチレスマルチプレクサ１５８は、クロック周波数が変化したときにグリッチ又はチョップクロック信号を除去することができる任意のコンピューティング構成部品であり得る。
【００２１】
これらに限定されないが、グリッチレスマルチプレクサ１５８は、複数の周波数１５６からの異なるクロック周波数の間での切り替え時に、出力されるクロック信号１６０におけるタイミング及び位相の不一致を論理的に回避するクロックゲート構成を有するマイクロコントローラであることが企図される。ディザ制御モジュール１４８は、周波数選択ルックアップテーブル（ＬＵＴ）１６２を動作させ、任意の数の異なる周波数を一様乱数によって選択することができる。
【００２２】
ルックアップテーブル１６２は、ローカルプロセッサ１４２及びディザ制御モジュール１４８が、システム動作中に及びデータシーケンス間で異なるクロック周波数を使用することに関連し得る正味周波数の低下を緩和するために出力されたクロック周波数を個別に、又は集合的にバイアスさせることができるようになる。例えば、プロセッサ１４２及び制御モジュール１４８は、実行された高速周波数後に比較的遅い周波数、又はその逆など、以前に実行されたクロック周波数を平衡させる時間ドメインを有する周波数が提供されるまで、ルックアップテーブル１６２からランダムクロック周波数を繰り返し呼び出すことができる。
【００２３】
コンピューティングデバイス／システムにとって最小の正味周波数の低下をもたらすためにクロック周波数をバイアスさせる結果、ホストは、クロック周波数のディザリングが発生していることを識別することができない。ディザ制御モジュール１４８は、さらに確実にクロック周波数が変化する間の所定の間隔を維持させ得る。例えば、ディザ制御モジュール１４８は、間隔タイマモジュール１５０によってもたらされる間隔が、確実に最小時間以上最大時間以下であるようにし、これにより、グリッチレス周波数スイッチ間のクロックストールの影響が制限され、かつシステム動作の実行寿命を超えて周波数スイッチを拡散する十分な時間を確保し得る。
【００２４】
グリッチレスマルチプレクサ１５８の使用は、クロック周波数が変化する間にシームレスなタイミングを提供し得る。しかし、グリッチレスマルチプレクサ１５８は、同期マルチプレクサよりも物理的に大きく、電子的に複雑であり得る。したがって、種々の実施形態は、図５の非限定的な実施形態に示されるように、同期マルチプレクサ１７２を有するクロック周波数ディザ回路１７０を配置する。非常に高速のクロックは、電圧制御発振器１５２によって提供されるため、ハードウェアによって使用される最大周波数、及び周波数の切り替えが生じないときに使用される複数の低下した周波数を生成するように分割される。最大ハードウェア周波数は、プロセッサ１４２又はコンピューティングデバイスの不揮発性メモリなど、システム動作を実行する任意の構成部品の最大周波数能力とし得ることに留意されたい。
【００２５】
同期マルチプレクサ１７２を利用する結果として、異なるクロック周波数間で切り替えを行うことは同期的であり、一時停止、グリッチ、周波数タイミングの改変を伴うことなく行うことができる。図６は、様々な実施形態によりディザ回路１４０／１７０がどのように動作し得るかを示す出力クロック信号のサンプルを描写する。スイッチングイネーブル信号１８２は、クロック周波数スイッチングを有効にするようにプロセッサ１４２をトリガするシステム動作が検出されるまで、ローカルプロセッサ１４２から非アクティブ状態のままであり、開始時間１８４に起動される。
【００２６】
開始時間１８４は、ディザ制御モジュール１４８からマルチプレクサ１５８／１７２へのクロック選択信号にカスケード接続される。クロック信号１８６は、回路１４０を表し、グリッチレスマルチプレクサ１５８は、第１のランダムに選択された時間間隔１９０の第１のランダムクロック周波数１８８、続いて、第２の時間間隔１９４の第２のランダムクロック周波数１９２、続いて、第３の時間間隔１９８の第３のランダムクロック周波数１９６を提供する。信号１８６によって示されるように、間隔が異なり、また、周波数がそれぞれ異なり、第１の周波数１８８を遅いとみなし、第２の周波数１９２を高速とみなし、第３の周波数１９６を中間とみなす。
【００２７】
グリッチレスマルチプレクサによるクロック周波数の切り替えは、タイミング遅延２００に対応しており、各新しい周波数が、一貫したクロック周波数が使用されるときには存在しないポーズから開始する。比較すると、クロック信号２０２は、回路１７０の同期マルチプレクサ１７２によって供給され、各新しい周波数の開始時にポーズを有さない。したがって、クロック周波数スイッチングの実装は、グリッチレス又は同期マルチプレクサを使用してカスタマイズできることが理解できよう。
【００２８】
図７は、いくつかの実施形態に従って構成及び利用され得る例示的な周波数選択ルックアップテーブル２１０を表す。ローカルプロセッサによりディザ制御モジュールが起動すると、新しいランダムな周波数及びランダムな時間間隔が制御モジュールによって選択され、その後プログラマブルルックアップテーブルに記憶される。このテーブルは、擬似乱数生成器から導出された値によってインデックス付けされ、時間の経過と共にパターン化された乱数のリスクを緩和することができる。
【００２９】
非限定的なテーブル２１０に示すように、複数の異なる周波数は、ｆ０、ｆ１、ｆ２、及びｆ３からなり、ｆ０は最大クロック周波数であり、ｆ３は最低クロック周波数である。それぞれのクロック周波数は、一様に分布した３ビットの擬似乱数生成器によってインデックス付けされる。
【００３０】
いくつかの実施形態では、ステートマシンは、より低い周波数間隔の間に最大周波数間隔を置き、これにより、テーブル２１０は、デフォルトクロック周波数よりも低いクロック周波数のリスト化を引き起こす。図７に示すテーブル構成については、正味周波数は、式１によって示される：
【００３１】
【数１】
2018182737.tif 000003
【００３２】
したがって、ディザ制御モジュールによって、デフォルトのクロック周波数よりも一般に高いクロック周波数の別個のルックアップテーブルを作成して、様々なクロック周波数を使用して、正味クロック周波数がデフォルトのクロック周波数に近くなるようにすることができる。ディザ制御モジュールでは、１つ以上の別個のルックアップテーブルを有する代わりに、より高い範囲の周波数を達成するために単一のルックアップテーブルの周波数をバイアスし得ることが企図される。
【００３３】
図７に例示されるように、ルックアップテーブルにおける周波数の一様でない分布を使用することにより、デフォルト（基本）クロック周波数に対して正味周波数をより高く重み付けする働きをする。いくつかの実施形態では、同じ基本クロック周波数がシステムによって使用されてもよい。他の場合には、基本クロック周波数は異なる動作時間でも変化し得る。より低い基本クロック周波数が電力節約モードで使用され、より高い基本クロック周波数が実行モード中に使用されてもよい。それにもかかわらず、ルックアップテーブル２１０の周波数は、基本クロック周波数に対して低下している周波数を表す。テーブル中の低下した周波数は、特定の周波数値に対応してもよく、又は選択された基本周波数の選択されたパーセンテージを表してもよい。
【００３４】
ルックアップテーブルの数及び内容にかかわらず、デフォルトクロックよりも低いクロック周波数を使用することによって生じる正味周波数の低下の性能損失を軽減するために、選択されたクロック周波数を記憶することで、より高い周波数に有利なクロック周波数の分布を熟考することが可能になる。したがって、コンピューティングシステムは、ランダムクロック周波数を使用して、プロセッサ／システム性能の低下を最小限に抑えるか、又は全くない状態にして潜在的な電力変動監視攻撃に対処することができる。
【００３５】
図８は、図１〜７によるコンピューティングシステムの様々な実施形態によって実行され得る例示的な攻撃対策ルーチン２２０を提供する。システム動作中にランダムな時間間隔の間にランダムに選択されたクロック周波数を実行することができるディザ制御モジュールに接続されたローカルプロセッサを有するコンピュータシステムが最初に提供される。既存のコンピュータシステムは、ステップ２２２において、電圧制御発振器を複数の異なるクロック周波数に分割するために利用される。
【００３６】
ローカルプロセッサが一様のデフォルトクロック周波数で１つ以上のシステム動作を実行することから、各種クロック周波数は任意の時間長の間使用されないままであり得る。判定２２４は、次回の待機システム動作を連続的に又は散発的に評価して、その動作が重要であるかどうかを決定することができる。機密データを含む、システムセキュリティに関する、又はシステム設定の表示など、所定の基準を満たす場合、動作は重要であるとみなされ得る。判定２２４は、待ち行列に入れられたシステム動作のデータ及び機密度を予測するために予測モジュールを使用することができる。判定２２４の決定はまた、待ち行列に入れられたシステム動作を、データ暗号化又はファームウェア更新などの重要な動作の既知のリストと比較することを含むことができる。
【００３７】
保留中のシステム動作が重要でない場合、プロセッサに一様のデフォルトクロック周波数が提供されている間、ステップ２２６ではシステム動作を実行する。システム動作が重要であるとみなされる場合、判定２２４は、プロセッサをトリガして、ステップ２２８でディザ制御モジュールに対策イネーブル信号を送信するようにする。ディザ制御モジュールは、ステップ２３２においてプログラマブルルックアップテーブルに記憶された第１の周波数及び第１のタイミング間隔をステップ２３０で選択するように進む。
【００３８】
次に、ステップ２３４において、デフォルトのクロック周波数が、選択された第１のクロック周波数にシフトされる。ステップ２３０においてランダムに選択された時間間隔の重要なシステム動作を実行後、ステップ２３６では、現在の（第１の）クロック周波数から異なる次のクロック周波数に切り替える。ステップ２３４及び２３６のスイッチは、グリッチレス又は同期マルチプレクサが使用されているかどうかに依存して、時間遅延を含んでもよい。
【００３９】
重要なシステム動作の実行中に、任意の数の異なるクロック周波数が使用されてもよい。判定２３８では、３つ以上の異なるクロック周波数が使用されるかどうかを評価する。その後、重要なシステム動作の実行中に、ステップ２３６に戻ることによって追加の異なるクロック周波数が選択され、利用される。追加のクロック周波数を使用しない場合、判定２４０は、システム動作が完了したかどうかを決定する。システム動作が完了すると、ステップ２４２を促して、ローカルプロセッサをデフォルトクロック周波数に戻すようにし、未完了システム動作では判定２３８に戻り、判定２４０でルーチン２２０がステップ２４２に進むまで、動作が非デフォルトクロック周波数で連続的に実行される。
【００４０】
本開示の様々な実施形態により、電力変動を監視する攻撃に対する保護を強化してシステム動作を実行することができる。システム動作の実行中に任意の数の異なる、ランダムに選択されたクロック周波数をランダムな時間量で利用することができることにより、デバイスのプロセッサ及びメモリなどの態様のコンピューティングデバイスのデータシーケンスと電力消費との間の時間相関が不明瞭になる。選択されたクロック周波数ルックアップテーブルを維持することにより、低下されたクロック周波数での動作の実行による最小限の性能損失とするために、ランダムな周波数を分散又はバイアスを与えることができる。
【００４１】
本技術は、スイッチ、サーバ、及び他の電気閉鎖アプリケーションなどの任意の数の他のアプリケーションにおいて容易に利用できることから、様々な実施形態は、データ記憶装置に限定されないことに留意されたい。本開示の様々な実施形態の多数の特徴が、様々な実施形態の構造及び機能の詳細と共に前述の説明に記載されているが、この詳細な説明は例示的なものに過ぎず、特に、添付の特許請求の範囲が表現されている用語の広範な一般的意味によって示される全範囲に対して、本技術の原理内の部分の構造及び配置に関する事項の詳細な変更がなされてもよいことが理解されるべきである。
【図１】
2018182737.tif 000004
【図２Ａ】
2018182737.tif 000005
【図２Ｂ】
2018182737.tif 000006
【図２Ｃ】
2018182737.tif 000007
【図３】
2018182737.tif 000008
【図４】
2018182737.tif 000009
【図５】
2018182737.tif 000010
【図６】
2018182737.tif 000011
【図７】
2018182737.tif 000012
【図８】
2018182737.tif 000013
【外国語明細書】
2018182737000001.pdf