(57)【特許請求の範囲】
【請求項１】
１つ以上の出力を含む組み合わせ論理回路と、
前記組み合わせ論理回路の前記１つ以上の出力をサンプリングする１つ以上の機能状態サンプリングコンポーネントと、
前記機能状態サンプリングコンポーネントにそれぞれ関連付けられ、対応する前記機能状態サンプリングコンポーネントと共に前記組み合わせ論理回路の同じ出力をサンプリングし、前記機能状態サンプリングコンポーネントとは別に所定時間オフセットを有する１つ以上の保護状態サンプリングコンポーネントと、
前記機能状態サンプリングコンポーネントによってサンプリングされた前記出力と、前記保護状態サンプリングコンポーネントによってサンプリングされたすべての前記同じ出力との間の不一致を検出し、前記不一致に応じて応答アクションを開始する保護ロジックと、
を備えることを特徴とする電子デバイス。
【請求項２】
前記組み合わせ論理回路の前記出力を遅延して遅延出力を生成する遅延素子をさらに含み、
前記機能状態サンプリングコンポーネントは、前記出力および前記遅延出力の一方をサンプリングし、前記保護状態サンプリングコンポーネントは、前記出力と前記遅延出力のもう一方をサンプリングする請求項１に記載の電子デバイス。
【請求項３】
クロック信号を遅延させて遅延クロック信号を生成する遅延素子をさらに含み、
前記機能状態サンプリングコンポーネントは、前記クロック信号と前記遅延クロック信号の一方によってクロックされるように構成され、対応する前記保護状態サンプリングコンポーネントは、前記クロック信号と前記遅延クロック信号のもう一方によってクロックされる請求項１に記載の電子デバイス。
【請求項４】
前記機能状態サンプリングコンポーネント及び前記対応する保護状態サンプリングコンポーネントは、フリップフロップを含む請求項１に記載の電子デバイス。
【請求項５】
前記機能状態サンプリングコンポーネントは、第２ラッチを駆動する第１ラッチを含み、
前記対応する保護状態サンプリングコンポーネントは、前記第１ラッチに関連付けられた第３ラッチを含む請求項１に記載の電子デバイス。
【請求項６】
前記保護ロジックは、２つ以上の前記機能状態サンプリングコンポーネントと２つ以上の前記保護状態サンプリングコンポーネントとの間で検出された複数の不一致を統合し、統合された前記不一致に応答して応答アクションを開始する請求項１に記載の電子デバイス。
【請求項７】
前記保護ロジックは、検出された前記不一致がクロックサイクルの所定期間に発生したときにのみ応答アクションを開始する請求項１に記載の電子デバイス。
【請求項８】
前記機能状態サンプリングコンポーネントは、第１閾値電圧で前記組み合わせ論理回路の出力をサンプリングし、前記対応する保護状態サンプリングコンポーネントは、前記第１閾値電圧よりも高い第２閾値電圧で前記組み合わせ論理回路の同じ出力をサンプリングする請求項１に記載の電子デバイス。
【請求項９】
電子デバイスを保護するための方法であって、
１つまたは複数の機能的状態サンプリングコンポーネントを使用して、組み合わせ論理回路の１つまたは複数の出力をサンプリングすることと
前記１つまたは複数の機能状態サンプリングコンポーネントに関連付けられた１つまたは複数の保護状態サンプリングコンポーネントを使用して、前記１つまたは複数の出力をサンプリングし、各前記保護状態サンプリングコンポーネント及び対応する機能状態サンプリングコンポーネントは、前記組み合わせ論理回路の同じ出力をサンプリングし、前記機能状態サンプリングコンポーネントとは別に所定時間オフセットを有することと、
前記機能状態サンプリングコンポーネントによってサンプリングされた前記出力と、前記保護状態サンプリングコンポーネントによってサンプリングされたすべての前記同じ出力との間の不一致を検出し、前記不一致に応じて応答アクションを開始することと、を含む方法。
【請求項１０】
前記１つ以上の出力をサンプリングすることは、
前記組み合わせ論理回路の出力を遅延させて遅延出力を生成することと、
前記機能状態サンプリングコンポーネントによって、前記出力と前記遅延出力の一方をサンプリングすることと、
前記対応する保護状態サンプリングコンポーネントによって、前記出力と前記遅延出力のもう一方をサンプリングすることと、
を含む請求項９に記載の方法。
【請求項１１】
前記１つ以上の出力をサンプリングすることは、
クロック信号を遅延させて遅延クロック信号を生成することと、
前記クロック信号と前記遅延クロック信号の一方によって前記機能状態サンプリングコンポーネントをクロッキングすることと、
前記クロック信号と前記遅延クロック信号のもう一方によって前記対応する保護状態サンプリングコンポーネントをクロッキングすることと、を含む請求項９に記載の方法。
【請求項１２】
前記機能状態サンプリングコンポーネント及び前記対応する保護状態サンプリングコンポーネントは、フリップフロップを含む請求項９に記載の方法。
【請求項１３】
前記機能状態サンプリングコンポーネントは、第２ラッチを駆動する第１ラッチを含み、
前記対応する保護状態サンプリングコンポーネントは、前記第１ラッチに関連付けられた第３ラッチを含む請求項９に記載の方法。
【請求項１４】
保護ロジックは、２つ以上の前記機能状態サンプリングコンポーネントと２つ以上の前記保護状態サンプリングコンポーネントとの間で検出された複数の不一致を統合し、統合された前記不一致に応答して応答アクションを開始する請求項９に記載の方法。
【請求項１５】
保護ロジックは、検出された前記不一致がクロックサイクルの所定期間に発生したときにのみ応答アクションを開始する請求項９に記載の方法。
【請求項１６】
前記機能状態サンプリングコンポーネントは、第１閾値電圧で前記組み合わせ論理回路の出力をサンプリングし、前記対応する保護状態サンプリングコンポーネントは、前記第１閾値電圧よりも高い第２閾値電圧で前記組み合わせ論理回路の同じ出力をサンプリングする請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路におけるデータセキュリティに関し、特に、フォールトインジェクション攻撃に対する保護のための方法およびシステムに関する。
【背景技術】
【０００２】
フォールトインジェクション攻撃は、暗号回路などの安全な電子回路から情報にアクセス、分析、または抽出するために使用される一連の技術である。フォールトインジェクション攻撃は、通常、信号線に物理的に接触する、高出力レーザーまたは電磁パルスを適用する、電源やその他の外部インターフェイスにグリッチを発生させるなど、回路にフォールトを発生させることを伴う。この障害により、回路が機密情報を出力したり、回路または格納されている情報を攻撃者が侵入したりする可能性がある。
【０００３】
フォールトインジェクション攻撃を検出および／または軽減するためのさまざまな技術が知られている。たとえば、米国特許出願公開第２００９／０３１５６０３号では、電子回路において、複数の第１フリップフロップの組からの少なくとも１つの第１フリップフロップの状態の不安定を検出するための方法および回路を記載している。組内の第１フリップフロップの各出力を、機能目的とは関係なく、信号とその反転信号を提供するために結合され、同じ状態に強制されたデータ入力を持つ２つの第２フリップフロップをトリガーし、各出力を検出の結果を提供するために結合されている。グループ内の第１フリップフロップの１つのトリガーエッジごとにパルスを含むパルス信号は、第２フリップフロップを初期化できる。
【０００４】
別の例として、米国特許第７，９７７，９６５号は、デジタルＩＣにおけるソフトエラー検出のためのシステムおよび方法を記載している。このシステムは、ラッチに結合された監視回路を含み、この回路は、ラッチの状態変化に対する応答が可能である。システムはさらに、ラッチおよび観測回路に提供される同期されたクロッキングを含む。ラッチの場合、クロッキングは、ラッチがデータを受信できない時間枠を定義する。そして、同期された方法で、クロッキングは観測回路における応答を可能にしている。クロッキングは、ラッチがデータを受信できないときにウィンドウ内でのみ回路の応答が可能になるように同期される。
【０００５】
米国特許出願公開第２００５／０２３５１７９号は、いくつかのビットを並列に含む機能結果を受信し、同期結果を供給する機能同期フリップフロップを含む論理モジュールを含む論理回路を記載している。機能するフリップフロップの完全性をチェックするためのモジュールは、機能結果を受け取り、最初のコードを供給する最初のコーディングブロックと、同期結果を受け取り、２番目のコードを供給する２番目のコーディングブロックと、最初のコードを受信して３番目のコードを供給するチェック同期フリップフロップと、第２のコードを第３のコードと比較し、第１のエラー信号を供給する比較器と、を含む。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願２００９／０３１５６０３
【特許文献２】米国特許出願７，９７７，９６５
【特許文献３】米国特許出願２００５／０２３５１７９
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、相対遅延を伴うフリップフロップを用いてデータサンプリング完全性チェックを行う電子デバイスおよびその方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の実施形態に係る電子デバイスは、組み合わせ論理回路と、１つまたは複数の機能状態サンプリングコンポーネントと、１つまたは複数の保護状態サンプリングコンポーネントと、お保護論理と、を含む。組み合わせ論理回路は、１つまたは複数の出力を有する。機能状態サンプリングコンポーネントは、組み合わせ論理回路のそれぞれの出力をサンプリングするように構成されている。保護状態サンプリングコンポーネントは、それぞれ、機能状態サンプリングコンポーネントに関連付けられている。各保護状態サンプリングコンポーネントとそれに対応する機能状態サンプリングコンポーネントは、組み合わせ論理回路の同じ出力をサンプリングする。ただし、保護状態サンプリングコンポーネントには、所定時間オフセット（ｐｒｅｄｅｆｉｎｅｄ  ｔｉｍｅ  ｏｆｆｓｅｔ）を有する。保護ロジックは、機能状態サンプリングコンポーネントによってサンプリングされた出力と保護状態サンプリングコンポーネントによってサンプリングされた各出力との不一致を検出し、その不一致に応じて応答アクション（ｒｅｓｐｏｎｓｉｖｅ  ａｃｔｉｏｎ）を開始するように構成されている。
【０００９】
また、本発明の実施形態では、電子デバイスは、組み合わせ論理回路の出力を遅延して遅延出力を生成するように構成された遅延素子をさらに含み、機能状態サンプリングコンポーネントは、出力および遅延出力の一方をサンプリングするように構成され、保護状態サンプリングコンポーネントは、出力と遅延出力のもう一方をサンプリングするように構成されている。
【００１０】
また、他の実施形態では、電子デバイスは、クロック信号を遅延させて遅延クロック信号を生成するように構成された遅延素子をさらに含み、機能状態サンプリングコンポーネントは、クロック信号と遅延クロック信号の一方によってクロックされるように構成され、それに対応する保護状態サンプリングコンポーネントは、クロック信号および遅延クロック信号の他方によってクロックされるように構成される。
【００１１】
また、他の実施形態では、機能状態サンプリングコンポーネントおよび対応する保護状態サンプリングコンポーネントは、フリップフロップ（ＦＦ）を含む。また、別の実施形態では、機能状態サンプリングコンポーネントは、第２ラッチを駆動する第１ラッチを含み、対応する保護状態サンプリングコンポーネントは、第１ラッチに関連付けられた第３ラッチを含む。
【００１２】
さらに別の実施形態では、保護ロジックは、２つ以上の機能状態サンプリングコンポーネントと２つ以上の保護状態サンプリングコンポーネントとの間で検出された複数の不一致を統合するように構成され、統合された不一致に応答して応答アクションを開始する。さらに別の実施形態では、保護ロジックは、検出された不一致がクロックサイクルの所定期間に発生したときにのみ応答アクションを開始するように構成されている。開示された実施形態では、機能状態サンプリングコンポーネントは、第１閾値電圧で組み合わせ論理回路の出力をサンプリングするように構成され、対応する保護状態サンプリングコンポーネントは、第１閾値電圧よりも高い第２閾値電圧で組み合わせ論理回路の同じ出力をサンプリングするように構成される。
【００１３】
本発明の実施形態による電子デバイスを保護する方法は、１つまたは複数の機能的状態サンプリングコンポーネントを使用して、組み合わせ論理回路の１つまたは複数の出力をサンプリングすることを含む。１つまたは複数の出力は、それぞれ機能状態サンプリングコンポーネントに関連付けられている１つまたは複数の保護状態サンプリングコンポーネントを使用してサンプリングされる。各保護状態サンプリングコンポーネント及び対応する機能状態サンプリングコンポーネントは、同じ組み合わせ論理回路の出力をサンプリングする。ただし、機能状態サンプリングコンポーネントには、関連する所定時間オフセットを有する。機能状態サンプリングコンポーネントによってサンプリングされた出力と、保護状態サンプリングコンポーネントによってサンプリングされたそれぞれの出力との間の不一致が検出され、その不一致に応答して応答アクションが開始される。
【００１４】
また、本発明の一実施形態による電子デバイスは、クロック生成回路と、組み合わせ論理回路と、１つまたは複数の機能状態サンプリングコンポーネントと、保護論理と、を含む。クロック生成回路は、周期的なクロックサイクルを有するクロック信号を生成するように構成される。組み合わせ論理回路には、複数の内部ネットと１つ以上の出力が含まれる。１つまたは複数の機能状態サンプリングコンポーネントは、組み合わせ論理回路のそれぞれの出力をクロック信号に従って周期的にサンプリングするように構成される。保護ロジックは、内部ネットまたは組み合わせロジック回路の出力から１つ以上の信号を受信し、受信した１つ以上の信号における、周期的なクロックサイクルの所定部分で発生する信号の不安定性を検出するように構成される。信号は安定しており、検出された信号の不安定性に応答して応答アクションを開始することが期待される。
【００１５】
いくつかの実施形態では、保護ロジックは、クロック信号から導出され、信号が安定していると予想され、  周期的なクロックサイクルの所定部分での信号の不安定性の発生を検出するための制御信号を受信する。また、一実施形態では、保護ロジックは、検出された信号不安定性に応答してパルスを生成し、パルスで保護状態サンプリングコンポーネントのデータ入力を駆動し、保護状態サンプリングコンポーネントの出力に応答して応答アクションを開始するように構成される。
【００１６】
開示された実施形態では、保護ロジックは、検出された信号の不安定性に応答して修正されたクロック信号を生成し、修正されたクロック信号で保護状態サンプリングコンポーネントのクロック入力を駆動し、保護状態サンプリングコンポーネントの出力に応答して応答アクションを開始するように構成される。例示的な実施形態では、保護論理は、組み合わせ論理回路のクリティカルタイミングパス上にない各内部ネットから信号を受信するように構成される。
【００１７】
本発明の実施形態によれば、複数の内部ネットと１つまたは複数の出力とを有する組み合わせ論理回路を保護する方法がさらに提供される。出力は、周期的なクロックサイクルを有するクロック信号に従ってサンプリングされる。  この方法は、組み合わせ論理回路の内部ネットまたは出力から１つまたは複数の信号を受け取ることを含む。  組み合わせ論理回路の設計に従って、信号が安定であることが期待される、周期的なクロックサイクルの所定期間に発生する信号不安定性の検出が、１つ以上の受信信号で行われる。  検出された信号の不安定性に応答して、応答アクションが開始される。
【図面の簡単な説明】
【００１８】
【図１Ａ】図１Ａ及び図１Ｂは、本発明の実施形態による、相対遅延を伴う一対のフリップフロップを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図１Ｂ】図１Ａ及び図１Ｂは、本発明の実施形態による、相対遅延を伴う一対のフリップフロップを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図２Ａ】図２Ａ及び２Ｂは、本発明の実施形態による、重複ラッチおよび相対遅延を有するＦＦ回路を使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図２Ｂ】図２Ａ及び２Ｂは、本発明の実施形態による、重複ラッチおよび相対遅延を有するＦＦ回路を使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図３Ａ】図３Ａ〜図３Ｃは、本発明の実施形態による、複数の組み合わせ論理ネットからの信号間の不一致を検出することによってデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図３Ｂ】図３Ａ〜図３Ｃは、本発明の実施形態による、複数の組み合わせ論理ネットからの信号間の不一致を検出することによってデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図３Ｃ】図３Ａ〜図３Ｃは、本発明の実施形態による、複数の組み合わせ論理ネットからの信号間の不一致を検出することによってデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図４】図４は、本発明の実施形態による、クリティカルタイミングパスから外れている複数の組み合わせ論理ネットを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図５】図５は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図６】図６は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【図７】図７は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明について、図に示す実施形態に基づいて説明する。
【００２０】
本明細書で説明される本発明の実施形態は、タイミング違反を引き起こすことを目的とする攻撃、例えば、フォールトインジェクション攻撃から電子デバイスを保護するための改善された方法および回路を提供する。本明細書で説明する実施形態は、主にグリッチの注入を含むフォールトインジェクション攻撃に言及しているが、開示される技法は、他の様々な種類の攻撃に対する保護にも等しく有用である。開示された技術は、メモリデバイスおよび組み込みコントローラなどの様々なタイプの電子デバイスで使用することができる。
【００２１】
開示された実施形態では、電子デバイスは組み合わせ論理回路を備える。組み合わせ論理回路は、通常、機能データに対して指定された操作を一緒に実行する複数の相互接続された論理ステージを備える。組み合わせ論理回路は、１つ以上の入力で処理するための機能データを受信し、１つ以上の出力で処理結果を送信する。
【００２２】
電子デバイスは、連続するクロックサイクルで組み合わせ論理回路の出力をサンプリングするように構成された１つまたは複数のフリップフロップ（ＦＦ）をさらに含む。これらのＦＦは、組み合わせ論理回路の出力における機能信号の状態をサンプリングするため、本明細書では「機能ＦＦ」と呼ばれる。機能ＦＦによってサンプリングされた出力は、次のクロックサイクルで組み合わせ論理回路への入力として機能することができる。
【００２３】
実際には、組み合わせロジックが入力を処理する（処理結果を出力するまで）には時間がかかります。この時間は、本明細書では伝播遅延と呼ばれる。適切に動作させるには、組み合わせロジックの伝播遅延が電子デバイスのセットアップ時間とホールド時間の要件に準拠している必要がある。そうしないと、機能しているＦＦが誤った値をサンプリングする可能性がある（このようなイベントは「タイミング違反」と呼ばれる）。通常の動作条件（デバイスがサポートするように設計された条件）で、セットアップ時間とホールド時間の要件が満たされた場合、機能ＦＦを供給する組み合わせロジック出力は、機能ＦＦが結果を正しくサンプリングすることを保証するために、機能ＦＦサンプリング時間前後の正しい処理結果で安定していることが設計によって保証されている。
【００２４】
攻撃シナリオの例として、攻撃者は、機能しているＦＦに誤った意図しない値をサンプリングさせる可能性がある。たとえば、機能しているＦＦまたは組み合わせロジックにグリッチを挿入または誘導することにより、または、例えばクロック周波数、温度、または電圧範囲を改ざんするなど、通常の動作条件外で電子デバイスを動作させる可能性がある。
【００２５】
フォールトインジェクション攻撃が原因で、組み合わせ論理回路の１つ以上の入力にグリッチが存在するシナリオの例では、グリッチは、例えば、１ｎＳ未満の短い電圧スパイク、または任意の他の適切なグリッチを含み得る。グリッチは組み合わせ論理回路に入り、１つ以上の出力に伝播する可能性がある。
【００２６】
組み合わせロジック回路の特定の出力で、伝播したグリッチ効果が問題の出力をサンプリングする機能ＦＦのサンプリング時間と偶然に一致すると、機能ＦＦが誤った状態をサンプリングする可能性があるす。この誤った状態は、次のクロックサイクルで組み合わせ論理回路への入力として使用される。このような場合、組み合わせ論理回路が誤動作する可能性がある。たとえば、フォールトインジェクション攻撃のシナリオでは、組み合わせ論理回路を強制的に異常な状態にすると、望ましくない情報漏洩が発生する可能性がある。
【００２７】
電子デバイスを攻撃から保護するために、いくつかの実施形態では、電子デバイスは、「保護ＦＦ」と呼ばれる１つまたは複数の追加のＦＦ、および保護ロジックを含む。各保護ＦＦは、機能ＦＦの１つに関連付けられ、組み合わせ論理回路の対応する機能ＦＦと同じ出力をサンプリングするように構成されているが、機能ＦＦに対して所定時間オフセットを有する。時間オフセットは、通常、機能ＦＦの少なくとも１つと対応する保護ＦＦが異なる値をキャプチャする可能性が高いほど長く設定される。この異なる値は、組み合わせロジックまたは他の挿入された障害を介して挿入されたグリッチ伝播による、サンプリング時間前後の（組み合わせロジック）出力の不安定性に起因する。
【００２８】
保護ロジックは、機能ＦＦによってサンプリングされた出力と、保護ＦＦによってサンプリングされたそれぞれの時間オフセット出力との間の不一致を検出するように構成されている。不一致が検出された場合、保護ロジックは、適切な応答アクションを開始するように、たとえばアラートを発行するように構成される。
【００２９】
本明細書では、デュアルサンプリング方式のさまざまな実装について説明する。例えば、時間オフセットは、２つのＦＦのうちの１つに提供されるデータ（組み合わせ論理出力）またはクロック信号のいずれかを遅延させることによって実現できる。いくつかの実施形態では、機能ＦＦの一部のみ、例えば、ただ１つのラッチが、保護ＦＦにて複製される。いくつかの実施形態では、保護ロジックは、機能／保護ＦＦの複数のペアからの起こり得る不一致を統合できる。
【００３０】
いくつかの実施形態では、機能的ＦＦの選択された部分的なサブセットのみが、開示された技術を使用して保護される。いくつかの実施形態では、機能ＦＦおよび対応する保護ＦＦは、異なる閾値電圧でサンプリングするように構成されるため、両方のサンプリング時間にグリッチが存在する場合でも、小さなグリッチが一方の保護／機能ＦＦによってキャプチャされ、もう一方はキャプチャされないようにしている。一部の実施形態では、保護ＦＦへの入力は、対応する機能ＦＦの入力に対して反転される。
【００３１】
さらに、開示された技術は、ＦＦに限定されず、様々な他の適切なタイプの状態サンプリングコンポーネントを使用して実現できる。本開示の文脈および特許請求の範囲において、「状態サンプリングコンポーネント」という用語は、組み合わせ論理回路の出力の現在の状態をサンプリングする任意のコンポーネントを指す。状態サンプリングコンポーネントは、例えば、ラッチ、スタティックランダムアクセスメモリ（ＳＲＡＭ）セル、または他の適切なタイプのメモリセルを含み得る。明確にするために、以下の説明は、例として、主にＦＦを参照する。
【００３２】
本明細書で説明される他の実施形態では、保護論理は、組合せ論理回路から選択された信号を受信する。保護ロジックは、１つ以上の信号で、組み合わせロジック回路の設計に従って信号が安定していると予想されるクロックサイクルの所定部分で発生する信号の不安定性を検出するように構成される。検出された信号の不安定性に応答して、適切な応答アクションが開始される。
【００３３】
上記の技法のいくつかの変形について説明する。いくつかの実施形態では、保護ロジックは、検出された信号の不安定性に応答してパルスを生成し、そのパルスでラッチのデータ入力を駆動する。ラッチの出力は、応答アクションを開始するために使用される。他の実施形態では、保護ロジックは、検出された信号の不安定性に応答して修正されたクロック信号を生成し、修正されたクロック信号でＦＦのクロック入力を駆動する。ＦＦ出力は、応答アクションを開始するために使用される。例示的な実施形態では、選択された信号は、組み合わせ論理回路のクリティカルタイミングパス上にないネットから取得する。
【００３４】
図１Ａは、本発明の実施形態による、データサンプリングの完全性を検証するための回路を備える電子デバイス２０を概略的に示すブロック図である。デバイス２０は、例えば、開示された技術を使用するフォールトインジェクション攻撃から保護された安全な不揮発性メモリデバイスまたは安全な埋め込みコントローラを含み得る。あるいは、デバイス２０は、攻撃に対する保護が望まれる任意の他の適切なタイプの電子デバイスを含むことができる。
【００３５】
通常、必ずしもではないが、デバイス２０の様々な要素は、集積回路（ＩＣ）に含まれる。デバイス２０は、通常、その指定された機能を実行するための様々な入力および出力（図示せず）を含む。
【００３６】
この例では、デバイス２０は、簡潔さのために「組み合わせ論理」とも呼ばれる組み合わせ論理回路２４を備える。組み合わせ論理回路２４は、通常、機能データに対して何らかの指定された動作を一緒に実行する複数の相互接続された論理ステージ（例えば、論理ゲート）を含む。安全装置において、例えば、組み合わせロジック回路２４は、暗号化または復号化、または安全な署名または検証などの暗号操作の一部またはすべてを実行することができる。しかしながら、一般に、開示された技術は、他の任意の適切な機能を実行する他の任意の適切なタイプの組み合わせ論理と共に使用することができる。組み合わせ論理２４は、処理のための機能データを受信するための１つまたは複数の入力と、処理結果を出力するための１つまたは複数の出力とを含む。
【００３７】
電子デバイス２０は、１つまたは複数のデュアルサンプリングＦＦ回路２８をさらに含む。各ＦＦ回路２８は、各クロックサイクルで組み合わせ論理２４のそれぞれの出力をサンプリングする。各ＦＦ回路２８によってサンプリングされた出力は、次のクロックサイクルにおいて組み合わせ論理２４のそれぞれの入力として使用される。各ＦＦ回路２８は、適切なクロック生成回路によって生成され、クロックツリーロジック（ｃｌｏｃｋ  ｔｒｅｅ  ｌｏｇｉｃ）４０によって提供される、ＣＫで示されるクロック信号によってクロックされる。
【００３８】
図１Ａの下部は、各ＦＦ回路２８の内部構造を示す。ＦＦ回路２８によってサンプリングされる組み合わせ論理２４の出力は、Ｄ＿ｉｎで示される。組合せ論理回路２４への入力としてフィードバックされるべきＦＦ回路２８のサンプリングされた出力は、Ｑ＿ｏｕｔで示される。
【００３９】
この実施形態では、ＦＦ回路２８は、機能ＦＦ  ３２Ａおよび保護ＦＦ３２Ｂを備える。この例では、両方のＦＦがＤ−ＦＦであるが、他の適切なＦＦタイプも代替実施形態で使用することができる。機能ＦＦ３２Ａは、ＣＫの各サイクルでＱ＿ｏｕｔを生成するようにＤ＿ｉｎをサンプリングするように構成されている。保護ＦＦ  ３２Ｂは、Ｄ＿ｉｎの遅延レプリカをサンプリングするように構成されている。
【００４０】
この例では、ＦＦ回路２８は、所定の時間オフセットだけＤ＿ｉｎを遅延させる遅延素子３６を含む。保護ＦＦ３２Ｂは、遅延素子３６の出力で遅延されたＤ＿ｉｎをサンプリングする。ＦＦ３２ＡおよびＦＦ  ３２Ｂの両方は、同じクロック信号ＣＫによってクロックされる。上記で説明したように、遅延素子３６の遅延は、通常、ＦＦ３２Ａおよび３２Ｂが攻撃のイベントで異なる値をサンプリングするのに十分な長さに設定される。一方、長い遅延素子は面積を消費するため、極端に長い遅延は回避する必要がある。また、遅延はＦＦ回路のセットアップ時間またはホールド時間のマージンから減少する。例示的な実施形態では、遅延素子３６の遅延は、０．５〜３ｎｓの範囲である。あるいは、他の適切な遅延値を使用することもできる。
【００４１】
排他的ＯＲ（ＸＯＲ）ゲート４４は、機能ＦＦ３２Ａと保護ＦＦ  ３２Ｂのサンプリングされた出力（Ｑ）との間で論理ＸＯＲ演算を実行する。ＸＯＲゲート４４の出力はアラート信号として使用される。
【００４２】
Ｄ＿ｉｎにグリッチが存在しない場合、ＦＦ  ３２Ａと３２Ｂのサンプリングされた出力は同じになるため、アラート信号はＬｏｗのままになる。Ｄ＿ｉｎがＦＦサンプル時間の直前（遅延素子３６の遅延より短い）に変化する場合、通常、ＦＦ３２Ａおよび３２Ｂの１つは変更後の値をサンプリングし、もう１つは変更前の値をサンプリングする。２つのＦＦが同じ値をサンプリングする場合、アラート信号はＬｏｗのままになります。ＦＦ３２Ａと３２Ｂが異なる値をサンプリングすると、アラート信号が高くなり、データサンプリングの整合性が損なわれたことを示す。したがって、この例では、ＸＯＲゲート４４は、ＦＦ３２ＡとＦＦ３２Ｂのサンプリングされた出力間の不一致を検出する保護ロジックとして機能する。
【００４３】
図１Ａの例では、遅延は、保護ＦＦ（ＦＦ３２Ｂ）によってサンプリングされたデータ信号（Ｄ＿ｉｎ）に適用され、機能ＦＦ（ＦＦ３２Ａ）は、遅延されていないデータ信号（Ｄ＿ｉｎ）をサンプリングする。しかしながら、代わりに、機能ＦＦ（ＦＦ３２Ａ）によってサンプリングされたデータ信号に遅延が適用されてもよく、その場合、保護ＦＦ（ＦＦ３２Ｂ）は遅延されていないデータ信号をサンプリングする。
【００４４】
図１Ａの例では、すべての機能ＦＦがそれぞれの保護ＦＦによって保護されている。代替実施形態では、機能ＦＦの選択されたサブセットのみがこの方法で保護される。
【００４５】
図１Ｂは、本発明の実施形態による、相対遅延を伴う１対のフリップフロップ（ＦＦ）を使用してデータサンプリングの完全性を検証するための代替のＦＦ回路を概略的に示すブロック図である。図１Ｂの回路は、上記の図１ＡのＦＦ回路２８の代わりに使用することができる。本実施形態は、時間オフセットがデータ信号の代わりにクロック信号を遅延させることによって達成されるという点で図１Ａの実施形態とは異なる。
【００４６】
図１Ｂの実施形態では、機能ＦＦ３２Ａおよび保護ＦＦ３２Ｂの両方が、遅延されていないデータ信号Ｄ＿ｉｎ（組み合わせ論理２４の出力の１つ）をサンプリングする。遅延素子３６は、クロック信号ＣＫを遅延させるように構成される。機能ＦＦ  ３２Ａは、遅延されていないクロック信号でクロックされ、一方、保護ＦＦ  ３２Ｂは、遅延クロック信号（遅延素子３６の出力）でクロックされる。代替実施形態では、機能ＦＦ３２Ａは、遅延クロック信号でクロックされてもよく、その場合、保護ＦＦ３２Ｂは、遅延されていないクロック信号でクロックされる。
【００４７】
いくつかの実施形態では、遅延クロックは、図１および図２の構造などの保護されたＦＦ構造のグループに対して一度生成される。言い換えれば、単一の遅延素子３６は、複数の保護されたＦＦに役立つことができる。
【００４８】
場合によっては、（回路動作が正しくても）ＸＯＲ４４の出力へのタイミング伝搬の違いにより、ＦＦ３２Ａの信号ＱとＦＦ３２Ｂの信号Ｑの遷移時間の前後で、アラート信号が瞬間的にアサートすることがあります。  したがって、いくつかの実施形態では、アラート信号は、そのようなグリッチをフィルタリングして誤ったアラートを防止するために追加のＦＦでサンプリングされてもよい。
【００４９】
図２Ａは、本発明の別の実施形態による、データサンプリングの完全性を検証するためのＦＦ回路４８を概略的に示すブロック図である。ＦＦ回路４８は、上記の図１ＡのＦＦ回路２８の代わりに、例えば、電子デバイス２０において使用することができる。この実施形態、および以下の図２Ｂの実施形態は、対応する保護状態サンプリングコンポーネントを実装するために、機能状態サンプリングコンポーネント全体を複製することは必須ではないことを示している。
【００５０】
図２Ａの例では、機能的状態サンプリングコンポーネントは、２つのラッチ、すなわち第２のラッチＬ２を駆動する第１ラッチＬ１を含むＦＦを含む。ラッチＬ１は、データ信号Ｄ（組み合わせロジック２４の出力の１つ）をサンプリングする。ラッチＬ２は、ラッチＬ１の出力をサンプリングし、回路４８のサンプリングされた出力Ｑを出力する。ラッチＬ１のイネーブル（「Ｅ」）入力は、クロック信号の反転バージョンによって駆動される。ラッチＬ２のイネーブル入力は、クロック信号の２回反転されたバージョンによって駆動される。
【００５１】
本実施例では、保護状態サンプリングコンポーネントは、Ｌ１１で示されるラッチを含む。ラッチＬ１１は、ラッチＬ１と同じ（反転）クロック信号によって有効化され、データ信号Ｄの遅延レプリカをサンプリングする。データ信号の遅延されたレプリカは、遅延素子３６によって生成される。ＸＯＲゲート４４は、ラッチＬ１およびＬ１１のサンプリングされた出力をＸＯＲする。ＸＯＲゲート４４の出力はアラート信号として使用される。
【００５２】
図２Ａの例では、ＸＯＲゲート４４は、機能状態サンプリングコンポーネントと保護状態サンプリングコンポーネントのサンプリングされた出力間の不一致を検出する保護ロジックとして機能する。
【００５３】
図２Ｂは、本発明の別の実施形態による、データサンプリングの完全性を検証するためのＦＦ回路５６を概略的に示すブロック図である。ＦＦ回路５６は、上記の図１ＡのＦＦ回路２８の代わりに、例えば、電子デバイス２０において使用することができる。本実施形態は、時間オフセットがデータ信号の代わりにクロック信号を遅延させることによって達成されるという点で図２Ａの実施形態とは異なる。
【００５４】
図２Ｂの実施形態では、ラッチＬ１およびＬ１１の両方が、遅延されていないデータ信号Ｄ（組み合わせ論理２４の出力の１つ）をサンプリングする。遅延素子３６は、（反転された）クロック信号を遅延させるように構成される。ラッチＬ１は、遅延されていない（反転された）クロック信号によって有効化されるが、ラッチＬ１１は、遅延された（反転された）クロック信号（遅延素子３６の出力）によって有効化される。代替の実施形態では、ラッチＬ１は、遅延（反転）クロック信号によって有効化されるが、ラッチＬ１１は、非遅延（反転）クロック信号によって有効にされる。
【００５５】
図１および図２の実施形態では、  図２Ａおよび図２Ｂに示されるように、ラッチＬ１１は、ＣＬＫがＨｉｇｈの場合にのみその出力を安定に保ち、誤ったアラート検出をフィルタリングするために、例えば、ＣＬＫの立ち下がりエッジによってアラートをサンプリングすることができる。複数のアラート信号をＯＲゲートなどで統合し、アラート信号のグループに１つのサンプリング素子を使用できる。
【００５６】
図１Ａ、図１Ｂ、図２Ａ、および図２Ｂに示す電子機器および回路の構成は、純粋に概念を明確にするために描かれている構成例である。代替の実施形態では、他の任意の適切な構成を使用することができる。
【００５７】
例えば、上述の実施形態では、機能状態サンプリングコンポーネントおよび対応する保護状態サンプリングコンポーネントは、同じしきい値電圧でデータ信号をサンプリングする。代替の実施形態では、機能状態サンプリングコンポーネントは、対応する保護状態サンプリングコンポーネントよりも低い閾値電圧を有する。
【００５８】
いくつかの実施形態では、図１Ａ、図１Ｂ、図２Ａ、および図２Ｂに記載された実施形態のいずれかは、通常のＦＦセルの代わりに、シングルライブラリセル（ｓｉｎｇｌｅ  ｌｉｂｒａｒｙ  ｃｅｌｌ）を使用できる。他の実施形態では、これらの回路は、（図面に示されているように）個別のデバイスとして使用できる。
【００５９】
機能ＦＦと保護ＦＦによってサンプリングされたデータの間に相対遅延を挿入することを含む開示された技術のいずれにおいても、遅延は、保護ＦＦによってサンプリングされたデータ信号（この場合、機能ＦＦは遅延されていないデータ信号をサンプリングする）、または、機能ＦＦによってサンプリングされたデータ信号（この場合、保護ＦＦは遅延されていないデータ信号をサンプリングする）に適用される。
【００６０】
図３Ａおよび図３Ｂは、本発明の実施形態による、組み合わせ論理ネットから取得された信号の信号不安定性を検出することによってデータサンプリングの完全性を検証する保護論理回路を含む電子デバイスを概略的に示すブロック図である。
【００６１】
図３Ａの回路例は、組み合わせ論理回路からの複数の選択された信号を統合する。図３Ｂの保護論理回路は、信号の不安定性が、組み合わせ論理回路の設計に従って信号が安定であると予想されるクロックサイクルの所定の部分内で発生するかどうかをチェックする。この文脈において、「信号の不安定性」および「信号の変化」という用語は、ある論理状態から別の論理状態への遷移、すなわち「Ｌｏｗ」から「Ｈｉｇｈ」またはその逆への遷移を指す。
【００６２】
図３Ａに示される構成では、ＦＦ６２は、組み合わせ論理２４の出力をサンプリングする。各ＦＦ６２は、クロックサイクルごとに組み合わせロジック２４のそれぞれの出力をサンプリングし、サンプリングされた各ＦＦ６２の出力は、次のクロックサイクルで組み合わせロジック２４のそれぞれの入力として使用される。各ＦＦ６２は、適切なクロック生成回路によって生成され、クロックツリーロジック４０によって提供される、ＣＫで示されるクロック信号によってクロックされる。典型的な回路にも入力と出力がありますが、簡略化するために図面から省略している。
【００６３】
さらに、保護論理は、統合論理「ＸＯＲ」出力を生成するように、組み合わせ論理２４からのいくつかの信号間で論理ＸＯＲを実行するＸＯＲゲート６０を備える。デバイスはさらに、クロックツリーロジック４０から「パルス」と示される制御信号を出力する。「パルス」信号は、クロック信号から導出され、「ＸＯＲ」出力信号（ＸＯＲゲート６０の出力）がＦＦ６２によるサンプリングに対して安定であると予想されるクロックサイクルの部分を定義する。この信号は、図３Ｂおよび３Ｃの回路で使用して、禁止時間ウィンドウ中にＸＯＲ信号に変化が発生したかどうかを検出できる。クロックサイクルの一部は、例えば、機能状態サンプリングコンポーネントのサンプリング時間に関連して、またはクロック信号の周期性を有する他の任意の適切な基準時間に関連して定義され得る。
【００６４】
図３Ｂの回路は、図３Ａの回路から統合されたＸＯＲ信号および「パルス」信号を受信する。遅延要素６４は、ＤＬＹ１で示される遅延によって統合されたＸＯＲ信号を遅延させる。ＸＯＲゲート６８は、統合されたＸＯＲ信号の遅延されたレプリカおよび遅延されていないレプリカをＸＯＲする。ＡＮＤゲート７６は、ＸＯＲゲート６８の出力と「パルス」信号との間の論理ＡＮＤを生成する。ＡＮＤゲート７６の出力は、ラッチ７２（または他の適切な保護状態サンプリング構成要素）の「ＳＥＴ」データ入力を設定する。ＮＯＴゲート８０は、「パルス」信号を反転し、否定された「パルス」信号でラッチ７２の「リセット」入力を駆動する。ラッチ７２の出力は警報信号として機能する。
【００６５】
この構成では、アラート信号は、（ｉ）組み合わせロジック２４の出力の１つまたは複数（または、以下の図４のような他の検出された信号）で変更が検出され、及び（ｉｉ）データ信号（組み合わせロジック２４の出力）が安定している必要がある時間間隔中に発生した場合にのみＨｉｇｈになる。
【００６６】
図３Ｃは、本発明の実施形態による、図３Ｂの保護論理回路の代替の実装を概略的に示すブロック図である。上記の図３Ｂでは、ラッチ７２は、クロックサイクルごとに定期的にリセットされ、すなわち、アラート信号がクリアされ、グリッチ検出プロセスがサイクルごとに自動的に繰り返される。図３Ｃでは、グリッチが検出されると、アラート信号は外部の「ＲＥＳＥＴ」信号がアサートされるまでＨｉｇｈのままとなる。
【００６７】
図３Ａ〜図３Ｃの構成は、純粋に例として示されている。代替の実施形態では、任意の他の適切な統合スキームを使用することができる。
【００６８】
図４は、本発明の実施形態による、クリティカルタイミングパスから外れている複数の組み合わせ論理ネットを使用してデータサンプリングの完全性を検証するための回路を備える電子デバイス８１を概略的に示すブロック図である。組み合わせ論理２４は、いくつかの（楕円として描かれている）部分に分解されて示されている。組み合わせロジック２４を介したクリティカルタイミングパスは、破線８４で示されている。
【００６９】
この例では、Ｎ１、Ｎ２、およびＮ３で示される３つのネットを選択して保護する。保護論理の一部と見なされるＸＯＲゲート８２は、ネットＮ１、Ｎ２、Ｎ３から取得した信号のＸＯＲを実行する。ＸＯＲゲート８２の出力は、上記の図３Ｂまたは図３Ｃ、または以下の図５〜図７の回路などの保護回路に入力されるＸＯＲ信号として機能する。ＸＯＲゲート８２の役割は、上記の図３ＡのＸＯＲゲート６０の役割と同様である。
【００７０】
様々な実施形態では、デバイス８１の任意の適切なネットを保護のために選択することができる。特に、クリティカルタイミングパス８４上にないネットを選択することは有利である。この選択により、保護スキームによるセットアップ時間および／またはホールド時間のマージンの減少は許容できる。デバイス８１の全体的な性能（例えば、達成可能な最大クロックレート）は、保護スキームによって低下することはない。
【００７１】
図３Ａ〜図３Ｃおよび図４に示される電子デバイスおよび回路の構成は、概念を明確にするために純粋に示される構成例である。代替の実施形態では、他の任意の適切な構成を使用することができる。
【００７２】
例えば、上記の例示的な回路は、組み合わせ論理回路２４内の複数のネットから信号を収集するが、開示された技術はまた、単一のネットに適用され得る。後者の場合、ＸＯＲゲート６０は省略できる。
【００７３】
様々な実施形態では、上述の様々な回路によって生成された「アラート」信号は、グリッチがサンプリングされたことを検出すると、任意の適切な応答アクションを開始または実行するために使用され得る。たとえば、電子デバイス２０は、ホストまたは人間のユーザに警告を発し、デバイス回路または機能の一部または全部をシャットダウンするか、または機密データを消去することができる。
【００７４】
図５および６は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための保護論理回路を概略的に示すブロック図である。図５および６の回路は、組み合わせ論理２４の選択されたネットにおける、安定していると予想されるクロックサイクルの一部の間に発生する信号の不安定性（例えば、グリッチ）を検出するという点で、上記の図３Ｂおよび３Ｃの回路に類似している。ただし、図３Ｂおよび図３Ｃの回路とは異なり、図５および図６の回路は、ＦＦのデータ入力ではなく、ＦＦのクロック入力をゲーティングすることによってアラートをトリガーする。
【００７５】
ここで図５を参照する。図５の回路は、選択された出力および／または組み合わせ論理２４の内部ネットから取られた２つ以上の信号間で論理ＸＯＲを実行して、統合「ＸＯＲ」出力を生成するＸＯＲゲート９０を備える。本例は、「１」、「２」、および「３」と表される３つの信号を示すが、開示される技術は、他の任意の適切な数の信号とともに使用され得る。さらに下の図７は、多数のネットから取得された多数の信号を処理するための追加のスキームを示している。
【００７６】
遅延要素６４は、ＤＬＹ１で示される遅延によってＸＯＲ信号を遅延させる。ＸＯＲゲート６８は、ＸＯＲ信号の遅延および非遅延レプリカをＸＯＲし、インバータ（ＮＯＴゲート）９４は、ＸＯＲゲート６８の出力を反転する。この時点までの回路は、「信号変化検出器」と見なすことができます。選択したネット（「１」、「２」、「３」）のいずれかで信号変化（たとえば、アタックによるグリッチ）が発生した場合  ）、ＮＯＴゲート９４は長さがＤＬＹ１のパルスを出力する。
【００７７】
本実施態様では、検出された信号変化は、クロック信号ＣＬＫがＬｏｗ（「０」）の間にそれが発生した場合にのみアラートをトリガーするべきである。この例では、「Ｌｏｗ」から「Ｈｉｇｈ」へのクロック遷移（クロックの立ち上がり）でサンプリングが実行されると想定しており、信号は、通常の動作で、クロックが「Ｌｏｗ」ときに安定していると期待されるように選択する必要がある。
【００７８】
関心のある信号変化のみを検出するために、ＯＲゲート９８は、インバータ９４の出力とクロック信号ＣＬＫ（適切なクロック生成回路によって生成される）との間の論理ＯＲを出力する。ＯＲゲート９８の出力における信号は、ここでは修正されたクロック信号と呼ばれる。この変更されたクロック信号は、保護ＦＦ１０２のクロッキングに使用される。ＦＦ１０２のデータ入力（Ｄ）は常に「Ｈｉｇｈ」に設定される。ＦＦ１０２は通常、リセット時にＲＳＴラインを使用して「０」に初期化される。
【００７９】
ＦＦ  １０２の出力（Ｑ）（「ＴＯＧＧＬＥ」と示される）は、以下のように攻撃を検出するために使用される：ＯＲゲート９８の出力（したがって、ＦＦ  １０２のクロックＣＫ）は、クロック信号ＣＬＫを含む。さらに、クロック信号ＣＬＫが「Ｌｏｗ」のときに、選択したネット（「１」、「２」、または「３」）のいずれかで信号の変化（たとえば、アタックによるグリッチ）が発生した場合、長さがＤＬＹ１の予備パルスは、ＯＲゲート９８の出力に（したがって、ＦＦ１０２のクロックＣＫに）現れる。実際、図５の例では、通常の動作条件下で、ＯＲゲート９８の出力は常に「Ｈｉｇｈ」のままで、クロック遷移は予期されない。したがって、任意のクロックの立ち上がりエッジが攻撃を示す可能性がある。
【００８０】
通常の状態（つまり、ＣＬＫが「Ｌｏｗ」のときにネット「１」、「２」、「３」の信号が変化しない場合）では、ＦＦ  １０２のＴＯＧＧＬＥ出力は常に「Ｌｏｗ」である。ＣＬＫが「ＬＯＷ」のときにネット「１」、「２」、「３」の１つまたは複数で信号の変化が発生すると、ＦＦ１０２のＴＯＧＧＬＥ出力が「Ｈｉｇｈ」に遷移する。したがって、ＴＯＧＧＬＥは、疑わしい攻撃を示すアラート信号として使用できる。
【００８１】
いくつかの実施形態では、上記の回路は複数回複製され、各回路は組み合わせ論理２４の異なるネットのセットを処理する。ＯＲゲート１０４は、複数の回路のＴＯＧＧＬＥ出力のＯＲをとる。ＯＲゲート１０４の出力はアラート信号として使用される。
【００８２】
ここで図６を参照する。図６の回路は、ＦＦ１０２のクロックＣＫがゲートされる方法、すなわち、ＸＯＲゲート９０とＯＲゲート９８との間の回路の部分において、図５の回路と同様である。図５の回路とは異なり、図６では、ＦＦ１０２の出力（Ｑ）は、インバータ（ＮＯＴゲート）１１０を介してＦＦ１０２のデータ入力（Ｄ）にフィードバックされる。図５のように、通常の状態（つまり、ＣＬＫが「Ｌｏｗ」のときにネット「１」、「２」、「３」の信号が変化しない場合）では、ＦＦ  １０２のＴＯＧＧＬＥ出力は常に「Ｌｏｗ」です。ＣＬＫが「Ｌｏｗ」のときにネット「１」、「２」、「３」の１つまたは複数で信号の変化が発生すると、ＦＦ１０２のＴＯＧＧＬＥ出力が「Ｈｉｇｈ」に遷移する。したがって、トグルは、疑わしい攻撃を示すアラート信号として使用できる。
【００８３】
図６の代替構成では、インバータ９４を省略できる。この代替構成では、ＦＦ１０２のＴＯＧＧＬＥ出力は、ＦＦ  １０２のＣＫに適用されるすべてのクロックパルスでＴＯＧＧＬＥする（極性を「高」と「低」の間で反転する）。
【００８４】
通常の状態（つまり、ＣＬＫが「Ｌｏｗ」のときにネット「１」、「２」、「３」の信号が変化しない場合）では、ＦＦ１０２のＴＯＧＧＬＥ出力は、クロック信号ＣＬＫのすべてのサイクルでトグルする。さらに、ＦＦのＴＯＧＧＬＥ出力は、ＣＬＫが「ＬＯＷ」のときにネット「１」、「２」、「３」の１つまたは複数で信号の変化が発生したときにもトグルする（ＸＯＲ６８の出力に現れ、ＣＫに伝播する余分なパルスのため）。ＴＯＧＧＬＥ信号の通常の定期的なトグルパターンのこの変更を使用して、攻撃を検出できる。
【００８５】
図６のスキームでも（インバータ１１０が省略された図６の代替構成を含む）、上述の回路は複数回複製され、各回路は組み合わせ論理２４の異なるネットのセットを処理する。ＸＯＲゲート１０６は、複数の回路のトグル出力をＸＯＲすることができる。次に、ＸＯＲゲート１０６の出力を警報信号として使用することができる。
【００８６】
図７は、本発明の実施形態による、クロックゲーティングを使用してデータサンプリングの完全性を検証するための回路を概略的に示すブロック図である。図７の回路は、複数のクロックゲート収集ブロック１１４を含む。各ブロック１１４は、上記の図５または図６の回路のクロックゲーティング部分と構造が類似している。（ＸＯＲゲート９０とＯＲゲート９８の間の回路部分であるが、ＦＦ１０２はない）。
【００８７】
ＡＮＤゲート１１８は、複数のブロック１１４の出力の論理ＡＮＤを出力し、ＡＮＤゲート１１８の出力は、単一のＦＦ１０２のＣＫ入力をクロックするために使用される。図７の統合スキームは、ＦＦの数を削減するため、ダイ面積の効率的な利用に有益である。
【００８８】
例として、図７の回路は、図６のＦＦスキームを使用する（ＦＦ１０２の出力Ｑは、インバータ１１０を介して入力Ｄにフィードバックされる）。しかしながら、代替として、図５のスキーム（ＦＦ  １０２の入力Ｄが一定に保持される）も使用することができる。インバータ１１０が省略された図６の代替構成を使用する場合、ＡＮＤゲート１１８はＯＲゲートで置き換えられるべきである。
【００８９】
図５〜図７に示されている電子デバイスと回路の構成は、概念を明確にするために純粋に描かれている構成の例である。代替の実施形態では、他の任意の適切な構成を使用することができる。
【００９０】
たとえば、上記のように、図５〜図７の例は、「Ｌｏｗ」から「Ｈｉｇｈ」（クロックの立ち上がり）へのクロック遷移をサンプリングする回路に適している。つまり、クロックが「低」のときに信号が安定していることが期待される  。ただし、この選択は純粋に例として行われる。開示された回路は、「Ｈｉｇｈ」から「Ｌｏｗ」（クロックフォール）へのクロック遷移をサンプリングする回路での動作に直接的な方法で適合させることができ、クロックが「ハイ」のときに信号が安定していることが期待される。
【００９１】
別の例として、図５および６の例示的な回路は、組み合わせ論理回路２４内の複数のネットから信号を収集するが、開示された技術はまた、単一のネットに適用され得る。後者の場合、ＸＯＲゲート９０は省略できる。
【００９２】
様々な実施形態において、開示された電子デバイスおよび回路のいずれかは、１つまたは複数のディスクリートコンポーネント、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、１つまたは複数のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）の使用など、任意の適切なハードウェアを使用して実装されてもよい。
【００９３】
上述の実施例は、一例として引用されたものであり、本発明は、特に上で示され説明されたものに限定されないことである。むしろ、本発明の範囲は、上述した様々な特徴の組み合わせ及び部分的な組み合わせ、ならびに前述の説明を読むことによって当業者に想到し得る変形および修正の両方を含む。本特許出願において参照により援用される文書は、本明細書において明示的または暗示的になされた定義と矛盾するとき、これらの組み込まれた文書で定義される用語を除いて、本明細書の定義を考慮する必要がある。
【符号の説明】
【００９４】
２０、８１…電子デバイス
２４…組み合わせ回路
２８、４８、５６…ＦＦ回路
３２Ａ…機能ＦＦ
３２Ｂ、１０２…保護ＦＦ
３６、６４…遅延素子
４０…クロックツリーロジック
４４、６０、６８、８２、９０、１０６…ＸＯＲゲート
６２…ＦＦ（フリップフロップ）
７２…ラッチ
７６、１１８…ＡＮＤゲート
８０…ＮＯＴゲート
８４…クリティカルタイミングパス
９４、１１０…インバータ（ＮＯＴゲート）
９８、１０４…ＯＲゲート
１１４…クロックゲート収集ブロック
Ｄ…データ信号
Ｌ１…第１ラッチ
Ｌ１１…ラッチ
Ｌ２…第２ラッチ
Ｑ…出力
【図１Ａ】
0006968234.tif 000002
【図１Ｂ】
0006968234.tif 000003
【図２Ａ】
0006968234.tif 000004
【図２Ｂ】
0006968234.tif 000005
【図３Ａ】
0006968234.tif 000006
【図３Ｂ】
0006968234.tif 000007
【図３Ｃ】
0006968234.tif 000008
【図４】
0006968234.tif 000009
【図５】
0006968234.tif 000010
【図６】
0006968234.tif 000011
【図７】
0006968234.tif 000012