(57)【特許請求の範囲】
【請求項１】
二進数に対応する構成要素で構成されるとともに論理変数と呼ばれる第１の構成要素ペア（ａｔ、ａf）および第２の構成要素ペア（ｂｔ、ｂf）を処理するために構成され、プリチャージ段階でａｔとａｆとｂｔとｂｆとが０であり、評価段階でａｔとａf、ｂｔとｂfがそれぞれ補完関係であり、ａｔとｂｔが非補完関係であり、セル（Ｔ）の第１のネットワークが前記第１の構成要素ペアの第１の構成要素と前記第２の構成要素ペアの第１の構成要素とで論理関数を実行し、デュアルセル（Ｆ）の第２のネットワークが前記第１の構成要素ペアの第２の構成要素と前記第２の構成要素ペアの第２の構成要素との補足ロジック内で動作する回路である差分論理によって保護される回路であって、
２つ以上の検出モジュールを具備し、
前記検出モジュールは、それぞれ、
前記第１の構成要素ペアの第１の構成要素と前記第２の構成要素ペアの第１の構成要素とを一まとめにした第１のベクトル（Ａｔ、Ｂｔ）と、前記第１の構成要素ペアの第２の構成要素と前記第２の構成要素ペアの第２の構成要素とを一まとめにした第２のベクトル（Ａf、Ｂf）とのそれぞれに、二進数で１のビットを付加し、該ビットを付加した第１のベクトルと該ビットを付加した第２のベクトルとの間で、各ベクトルの要素の乗算累積演算を実行する２つの乗算累積器（８１、８２）と、
前記２つの乗算累積器による演算の結果の差異を計算し、該計算した差異が前記プリチャージ段階または前記評価段階で、前記２つの乗算累積器による演算の結果に差異が検出された場合に、予め定めた値を出力するゼロコンパレータと
を具備する
ことを特徴とする回路。
【請求項２】
前記検出モジュールの前記ゼロコンパレータ（８４）の出力は、前記２つの演算の結果が一致しない状態の検出により、安定した出力
【数１】
0005891562.tif 000005
を生成するように、フリップフロップ（８５）に接続されることを特徴とする請求項１に記載の回路。
【請求項３】
前記回路が暗号化回路であることを特徴とする請求項１または２のいずれか一項に記載の回路。
【請求項４】
前記回路がＦＰＧＡタイプのプログラマブル回路であることを特徴とする請求項１〜３のいずれか一項に記載の回路。
【請求項５】
前記回路のタイプがＡＳＩＣであることを特徴とする請求項１〜３のいずれか一項に記載の回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、差分論理によって保護される暗号化回路において異常を検出するための方法及び回路に関する。これは特に、故障注入による攻撃からの暗号化回路の保護の分野に適用される。
【背景技術】
【０００２】
暗号化は特に以下のいずれかの保護を目的とする。
−  暗号化及びその双対処理である復号化による情報の機密性
−  又は、署名及び署名照合の処理による情報の一貫性のみ
【０００３】
暗号化では、公表された知識の現状において、可能性のあるあらゆる鍵を試すことによるしらみつぶしの攻撃よりも迅速な攻撃方法はないという意味で、安全である数学的方法を使用する。
【０００４】
一般的に、暗号化方法は、システムのセキュリティに必要とされる複雑な計算を伴う。この複雑性は、コンピュータに対しては特段な問題をもたらすものではないものの、通常低価格のマイクロコンピュータによって制御される高い計算能力を伴わない量販市場向け機器の場合には障害となる。こうしてもたらされる結果はいくつかの種類があり、例えばクレジットカードの場合に取引の署名に数分間もかかったり、ペイパービュー方式のテレビのデジタルデコーダの場合に必要な情報のスループットをたどらないといったことが考えられる。
【０００５】
システムの価格を上げずに、この種の問題を軽減するために、機器を制御する中央装置に対して、通常暗号化専用のコプロセッサの形式で、支援を付加するのが慣習である。
【０００６】
しかしながら、中央装置によって実現するにせよ、専用のコプロセッサによって実現するにせよ、いずれにしても、暗号化アルゴリズムは物理的な電子機器によって実現される。電子機器は、電気の法則に固有の性質に関連する不可避な欠陥を示す。
【０００７】
このように、数学的な見地から安全である暗号化システムは、アルゴリズムを実現する物理的なシステムの欠陥につけこむことにより攻撃され得る。計算の時間はデータの値、特に時間最適化されたソフトウェアシステムに依存する可能性があり、これによって「タイミング攻撃」タイプの攻撃が発生し、場合によっては実行時間の簡易測定に基づいて全ての秘密鍵を取り出すことが可能となることがある。又、瞬間的な電力消費もデータに依存する可能性があり、これによって以下のような一連の攻撃が発生することがある。
−  暗号化動作時に測定された消費電力の測定値に基づいて中央装置によって実行される処理の特定を試みるＳＰＡ（Ｓｉｍｐｌｅ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ）。
−  消費電力の差分解析ＤＰＡ（Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ）。消費電力の多くの測定で統計的演算（ランダムメッセージに対し、一定の鍵を使用して暗号化動作時に実行し、鍵のごく一部分に対して行われる仮定を有効または無効にする）を使用する。
−  「テンプレート」タイプの攻撃。第１の段階で、機密情報が一切含まれないということを除き、攻撃対象の装置と同じ装置を使用して、鍵のごく一部分の値によって指数化された消費モデルを構築し、第２の段階で、攻撃対象の装置の消費電力の数回の測定を使用して、測定された消費電力と最も近いモデルを特定し、これによってこのサブ鍵の値を特定する。
【０００８】
更に、導体を流れる電流が電磁場を発生させ、その測定により、電力消費に関連する特にＤＰＡによる攻撃と原則的には同じ攻撃を起こすことができる。
【０００９】
最後に、いわゆる積極的攻撃、つまり故障注入攻撃は、システムの動作を妨害し、間違った結果を利用してシステムの機密を取り出す。
【００１０】
暗号化アルゴリズムを実現し、機器のメモリに保持されている機密に関連する情報を漏洩しがちな物理的な機器の不備はいずれも「隠れチャネル」と呼ばれる。
【００１１】
故障攻撃は、本質的に非常に異なり得るアクティブ攻撃であり、特に以下の記事を参照されたい。Ｄａｖｉｄ  Ｎａｃｃａｃｈｅ著：「Ｆｉｎｄｉｎｇ  ｆａｕｌｔｓ」（ＩＥＥＥ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ，  ３（５），  ｐａｇｅｓ  ６１−６５，  ２００５：  ｔｅｍｐｅｒａｔｕｒｅ  ｏｒ  ｖｏｌｔａｇｅ  ｖａｒｉａｔｉｏｎ，  ｓｔｒｏｎｇ  ｓｐｕｒｉｏｕｓ  ｓｉｇｎａｌ  ｏｎ  ｔｈｅ  ｐｏｗｅｒ  ｓｕｐｐｌｙ  ｏｒ  ｂｙ  ｅｌｅｃｔｒｏｍａｇｎｅｔｉｃ  ｆｉｅｌｄ，  ｌａｓｅｒ  ｆｉｒｉｎｇｓ，  ｅｔｃ．）。故障が発生した結果、攻撃される回路のノードの値が変更される。故障は、シリコン上での衝撃に応じて、単一又は複数、永続的又は一過性のもとなり得る。一過性の故障注入は柔軟性が高いので、複数の試行を行うことにより一層強力な攻撃が引き起こされ、成功の可能性が増す。単一の故障による攻撃は、攻撃手順を簡略化する。故障攻撃は、誤りのない暗号化された出力と故障を伴う出力との間の差分解析に基づく。例えば、Ｇｉｌｌｅｓ  Ｐｉｒｅｔ及びＪｅａｎ−Ｊａｃｑｕｅｓ  Ｑｕｉｓｑｕａｔｅｒによる記事「Ａ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｆａｕｌｔ  Ａｔｔａｃｋ  Ｔｅｃｈｎｉｑｕｅ  ａｇａｉｎｓｔ  ＳＰＮ  Ｓｔｒｕｃｔｕｒｅｓ，  ｗｉｔｈ  Ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  ｔｈｅ  ＡＥＳ  ａｎｄ  ＫＨＡＺＡＤ」（ＣＨＥＳ，  ｖｏｌｕｍｅ  ２７７９  ｆｒｏｍ  ＬＮＣＳ，  ｐａｇｅｓ  ７７−８８，  Ｓｐｒｉｎｇｅｒ，  ２００３  ｏｎ  ＡＥＳ  ｅｎｃｒｙｐｔｉｏｎ）に記載されている攻撃は、故障が最後から２番目のラウンド又は後ろから３番目のラウンドに到達した場合に極めて効果的になる。
【００１２】
故障注入攻撃はこれまで非常に皮肉なことに、高くつくために、実際には経済的に強い不審な組織のみが利用するものと考えられていた。今では、インターネット上で皮膜剥離ステーション及びターンキー回転可能レーザーベンチをオーダすることが可能である。ここから、故障注入による攻撃の可能性がかなり高まるということになる。したがって、ＦＰＧＡ等の集積回路等の回路に植え込まれた暗号化プロセッサは今後、観察攻撃（特に、ＰＤＡ又はＥＭＡタイプ）及び故障注入タイプの攻撃に対する対応策を同時に実施した場合に限り、安全であるとみなされ得る。更に、Ｂｒｕｎｏ  Ｒｏｂｉｓｓｏｎ及びＰａｓｃａｌ  Ｍａｎｅｔによる記事「Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｂｅｈａｖｉｏｒａｌ  Ａｎａｌｙｓｉｓ」（ｉｎ  ＣＨＥＳ，  ｖｏｌｕｍｅ  ４７２７  ｆｒｏｍ  ＬＮＣＳ，  ｐａｇｅｓ  ４１３−４２６，  Ｓｐｒｉｎｇｅｒ，  ２００７）にあるように、観察と故障を組み合わせた攻撃が提案されている。
【００１３】
この種の攻撃に取り組むための有効な対策は冗長性の採用に依存する。例えば、計算ブロックを３回コピーし、それによって多数決関数により故障が注入されたブロックを除去することが可能である。この対策の障害の１つは、１つ又は複数の計算ブロックのコピー、或いは不変条件の検証に基づく一貫性チェックモジュールの挿入により、コストがかさむことである。
【００１４】
もう１つの対策は故障注入の検出にある。この場合、利用者に警告が与えられ、例えばシステムを再初期設定することにより、身を守るよう行動できる。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明の目的は、特に前述した障害を軽減することである。
【課題を解決するための手段】
【００１６】
本発明の主題は、差分論理で保護され、構成要素ペアによって表現される論理変数を処理する回路内で異常を検出するための方法であって、セルの第１のネットワークは、上記ペアの第１の構成要素で論理関数を実行し、デュアルセルの第２のネットワークは、第２の構成要素の補足ロジック内で動作し、入力において知られている状態にある変数をセルに配置するプリチャージ段階でセルの各ペアによって論理関数が実行され、その後に、計算がセルによって実行される評価段階が続く方法である。プリチャージ段階または評価段階で生じる少なくとも１つの一貫性のない状態によって、異常が検出される。
【００１７】
差分論理によって保護される回路は例えば暗号化回路である。
【００１８】
本発明の１つの様態によれば、プリチャージ段階で生じる一貫性のない状態の検出に論理ゲートが使用され、この論理ゲートは一貫性のある状態が（０、０）の場合は「ＯＲ」ゲート、又は一貫性のある状態が（１、１）の場合は「ＡＮＤ」ゲートである。
【００１９】
評価段階で生じる一貫性のない状態の検出に使用される論理ゲートは「ＸＮＯＲ」ゲートであってよい。
【００２０】
マルチプレクサは、例えば、一貫性のない状態の検出から生じる信号を選択することが可能であり、プリチャージ段階で一貫性のない状態を検出するゲートの出力はプリチャージ段階中に選択され、評価段階中に評価段階における一貫性のない状態を検出するためのゲートの出力が選択され、選択は構成信号によって制御される。
【００２１】
本発明の目的はまた、構成要素ペアによって表現される論理変数を処理する差分論理によって保護される回路であって、セルの第１のネットワークは、前記ペアの第１の構成要素で論理関数を実行し、デュアルセルの第２のネットワークは、第２の構成要素の補足ロジック内で動作し、入力において知られている状態にある変数をセルに配置するプリチャージ段階であり計算がセルによって実行される評価段階が後続にくるプリチャージ段階内のセルの各ペアによって論理関数が実行される回路であり、請求項のいずれか一項に記載の方法を実現する少なくとも１つの検出モジュールを備えると共に、回路の監視されるノードでプリチャージ段階又は評価段階中に論理変数の２つの構成要素の間の一貫性をテストする手段を含むことを特徴とする回路である。
【００２２】
この回路は例えばＦＰＧＡタイプのプログラマブル回路、あるいはＡＳＩＣタイプの回路である。
【００２３】
例えば、検出モジュールの少なくとも１つが、監視しているセルからの出力においてプリチャージ段階で一貫性のない状態を検出するための手段となる。
【００２４】
例えば、検出モジュールの少なくとも１つが、監視しているセルからの出力において評価段階で一貫性のない状態を検出するための手段となる。
【００２５】
検出モジュールの出力はチェーン化によって収集し、「ＯＲ」ゲートにより少なくとも１つの等電位に結果を集中させてもよい。
【００２６】
各検出チェーンの出力は、クロック信号によってトリガされ、チェーンの検出モジュールの１つによって少なくとも１つの一貫性のない状態が検出された場合に値１を取るグローバル出力を生成するフリップフロップに接続してもよい。
【００２７】
例として、回路の検出モジュールの少なくとも一部分をツリーとして構成し、最後の検出モジュールは前記モジュールによって監視される回路ノードの１つで少なくとも１つの一貫性のない状態が検出されたかどうかを示すグローバル信号を生成してもよい。
【００２８】
監視される構成要素のペアは例えばベクトルによってまとめてグループ化でき、検出モジュールは前記ベクトルのそれぞれに値１の低位ビットが付加された後ベクトル間で乗算累積演算を実行する２つの乗算累積器から構成され、この２つの演算の結果間の差異が計算され、その後ゼロコンパレータによって処理され、プリチャージ段階または評価段階で一貫性のない状態が検出されたときに値ゼロの出力を取る。
【００２９】
例えば、検出モジュールのゼロコンパレータの出力は、一貫性のない状態の検出により、安定した出力を生成するように、フリップフロップに接続される。
【００３０】
本発明は特に、隠れチャネルの観察による攻撃に取り組むことを本来目的としながら、それ以外の種類の攻撃又は障害を検出する、差分論理に基づく対策によって保護される回路の特性に依存するという利点を有する。
【００３１】
本発明の他の特性及び利点は、限定されない図で与えられ、添付の図面に関して提供される後続の説明の助けを借りて明白になる。
【図面の簡単な説明】
【００３２】
【図１】差分論理の「ＡＮＤ」ゲートを示す。
【図２】差分論理における計算ステップの段階を示す。
【図３】差分論理によって保護されるアーキテクチャに依存する異常検出の動作原理を示す。
【図４】異常を検出する方法を使用した例示的な回路を示す。
【図５】異常を検出するための第１の例示的なチェーンを示す。
【図６】異常を検出するための第２の例示的なチェーンを示す。
【図７】異常を検出するための例示的なツリー構造を示す。
【図８】乗算累積ブロックを使用した回路の方法の例示的な使用を示す。
【発明を実施するための形態】
【００３３】
図１は、差分論理の原理の例示的な説明として、ＷＤＤＬ論理（Ｗａｖｅ  Ｄｙｎａｍｉｃ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｌｏｇｉｃ）の「ＡＮＤ」ゲート１、２を示す。後者は２つのデュアル論理ネットワーク１、２から構成され、相補論理下で動作する。以降の説明ではＷＤＤＬ論理の例を使用するが、本発明の原理は例えばＭＤＰＬ論理（Ｍａｓｋｅｄ  Ｄｕａｌ−ｒａｉｌ  Ｐｒｅ−ｃｈａｒｇｅ  Ｌｏｇｉｃ）など、それ以外の種類の差分論理にも適用される。計算ネットワークの双対性に加えて、異なるロジック計算は、２つの別個の段階（プリチャージ段階及び評価段階）に主張されるように実行される。
【００３４】
データはデュアルレールで表現され、各論理変数ａは以下の方法でコード化された信号のペア（ａｔ、ａｆ）から形成される。
−  （０、０）はプリチャージ段階時の静止状態：ａの値は定義されておらず、Ωで示される。
−  （１、０）は、評価段階中のアクティブ状態。ここでａ＝１
−  （０、１）は、評価段階中の他のアクティブ状態。ここでａ＝０
【００３５】
論理ゲートＨは２つの入力（ａ及びｂ）を備え、出力ｓは物理的に２つのゲート１、２によって表わされる。この２つのゲートはそれぞれ、次に示すような論理関数Ｔ（ａｔ、ｂｔ）及びＦ（ａｆ、ｂｆ）を備える。
ｓｔ＝Ｔ（ａｔ、ｂｔ）          （１）
ｓｆ＝Ｆ（ａｆ、ｂｆ）          （２）
【００３６】
「ｔｒｕｅ」論理ネットワークは、信号ｓｔを伝達する関数Ｔに相当する。「ｆａｌｓｅ」デュアル論理ネットワークは、デュアル信号ｓｆを伝達する関数Ｆに相当する。図１は、関数Ｔを実行する「ｔｒｕｅ」ネットワークが２つの非相補的入力ａｔとｂｔを受け取る「ＡＮＤ」ゲートを示す。デュアル「ＯＲ」関数は関数Ｆを実行する。変数ｘのベクトルでは、以下の関係が満たされる。
【数１】
0005891562.tif 000002
【００３７】
図２は、例えばＷＤＤＬタイプの差分論理を使用する計算ステップの段階を示す。このステップは、プリチャージ２１と評価２２の連続した段階から構成される。入力変数ａｔ、ｂｔ、ａｆ、ｂｆの状態の例、及び対応する出力変数ｓｔ、ｓｆの例は、プリチャージ段階及び評価段階の反対側に提供される。図２のタイムチャートでは、プリチャージ段階から評価段階及び評価段階からプリチャージ段階への切り替え時において、遷移数が同じである（この例では３）ことを示している。消費電力は、ＣＭＯＳタイプの電子技術における遷移数に特に直接関係するので消費電力のバランスが取れる。
【００３８】
図３は、差分論理によって保護されるアーキテクチャに依存する異常検出の動作原理を示す。
【００３９】
差分論理によってダビングされるデュアルレールは本質的に冗長である。実際、論理状態の変数は信号「Ｔｒｕｅ」を必要とし、その値は、評価中及び同様にプリチャージ中における信号「Ｆａｌｓｅ」に対する補完的なものである。したがって、一貫性のない状態、つまり存在するはずでない状態が生じた場合に異常を検出しうる。例えばＷＤＤＬ論理では、一貫性のない状態、つまり以下が検出された場合に異常が検出される。
−  プリチャージ段階で、デュアル信号のペアが状態（Ｑｔ、Ｑｆ）＝（０、０）と異なる。
−  評価段階で、信号のペアが状態（Ｑｔ、Ｑｆ）＝（０、１）又は（Ｑｔ、Ｑｆ）＝（１、０）と異なる。
【００４０】
更に、デュアルレール論理からシングルレール論理への切り替えは変数の２つの構成要素から１つの信号だけを考慮することで行われるため、差分論理の単一故障が影響を及ぼす確率は１／２である。
【００４１】
多重故障の場合、提案する検出メカニズムでは、例えば評価段階に（１、０）に変換されうる（０、１）など、状態の共役変化を検出できない可能性がある。但し、以下の理由から、この典型的なケースが生じる可能性は極めて低い。
−  プリチャージ状態では、影響を受ける可能性がかなりある。
−  多重故障の場合、その他の変数が修正及び検出され得る。
−  ほとんどの攻撃では、両方の信号で同時にビット反転を行うことができない。例えば、温度、電圧、又は周波数を使用することによる前の位置決め時間の違反に基づく攻撃。
【００４２】
図３の例は、異常を検出するためのメカニズムを持つＷＤＤＬ差分ゲートの原理を示す。
【００４３】
この検出機能を実行するために、論理和演算を実行する「ＯＲ」ゲート３４により、プリチャージ段階でネットワークＴ３１及びＦ３２の出力における一貫性のない状態を検出できる。つまり、状態（０、１）、（１、０）、又は（１、１）が出現すると、「ＯＲ」ゲート３４の出力は１になる。
【００４４】
同様に、逆排他的ＯＲ演算を実行する「ＸＮＯＲ」ゲート３３により、評価段階でネットワークＴ３１及びＦ３２の出力における一貫性のない状態を検出できる。つまり、状態（０、０）又は（１、１）が出現すると、「ＸＮＯＲ」ゲート３３の出力は１になる。
【００４５】
その後、マルチプレクサ３５は、「ＯＲ」ゲート３４の出力又は「ＸＮＯＲ」ゲート３３の出力を選択することが可能である。前記マルチプレクサは入力信号ＰＲＥ／ＥＶＡＬが組み込まれている。例えば、以下の規則を使用してもよい。
−  プリチャージ段階では、ＰＲＥ／ＥＶＡＬは値０を取り、マルチプレクサ３５からの出力として「ＯＲ」ゲート３４の出力が伝送される。
−  評価段階では、ＰＲＥ／ＥＶＡＬは値１を取り、「ＸＮＯＲ」フリップフロップ３３の出力がマルチプレクサ３５からの出力として伝送される。
【００４６】
したがって、マルチプレクサ３５の出力で提供されるＦＡＵＬＴ信号は、一貫性のない状態が検出された場合は値１を取り、それ以外の場合は０のままである。
【００４７】
この方法の実現を簡略化するために、評価段階でのみ検出を行い、必要とする「ＸＮＯＲ」ゲートを１つだけにすることで複雑さを解消することが可能でありうる。又、プリチャージ段階でのみ検出を行い、必要とする「ＯＲ」ゲートを１つだけにすることで複雑さを解消することも可能でありうる。どちらの場合でも、マルチプレクサ３５の使用は必須ではない。このような複雑さの解消の欠点は、侵入を検出する機会が低減されることである。
【００４８】
図４は、故障を検出するための方法の例示的な使用を示す。故障検出は、例えば暗号化回路のネットワークＴ４１とネットワークＦ４２から構成される各デュアルゲートの出力に配置された検出モジュール内で実現しうる。前記モジュールを含む暗号化回路は、例えばＡＳＩＣ回路またはＦＰＧＡタイプのプログラマブル回路で実現される。
【００４９】
各デュアルゲートの出力に検出モジュールを配置する代わりに、回路の複雑さを解消するために、回路の重要ノードにのみ前記モジュールを実現することも可能である。所謂回路の「重要」ノードとは、検出モジュールによって監視される信号の安定性を保証するために、例えばＤフリップフロップ４３、４５等のレジスタの出力に置かれたノードである。つまり、図４の例では、セルＴ４１のネットワーク及びセルＦ４２のネットワークの出力で検出が行われる。検出モジュール４７は、Ｄフリップフロップから構成されるレジスタ４３、４５と４４、４６の２つのペアの間に配置される。その結果、各計算段階はクロック周期に相当する。差分論理を使用する暗号化回路は、多くのノードを含む。信号ＰＲＥ／ＥＶＡＬにより、プリチャージ段階又は評価段階の故障検出のための回路の各モジュールを構成できる。各モジュール４７の出力でのＦＡＵＬＴ信号により、異常（即ち、一貫性のない状態）が各監視ノードのレベルで検出されたかどうか識別できる。
【００５０】
図５は異常を検出するための例示的なチェーンを示す。前述したように、差分論理アーキテクチャを使用する暗号化回路に検出モジュールを配置し、監視対象の各ノードのレベルで異常を検出しうる。異常を収集する１つの方法は、検出回路をまとめてチェーン化することである。この手法は、検出が行われるゲート間にただ１つだけの等電位５６を有するという利点を示し、これによってＡＳＩＣ又はＦＰＧＡにおける配線が容易である。つまり、検出モジュール５１、５２のＦＡＵＬＴ信号は、「ＯＲ」ゲート５３、５４を使用してまとめてチェーン化される。
【００５１】
検出モジュールの出力信号は、グローバル出力信号ＧＬＯＢＡＬ＿ＦＡＵＬＴの信頼性を向上させるために、システムのグローバル状態を収集するフリップフロップ５５までチェーン化される。前記信号は、チェーンに存在する検出モジュールの１つで少なくとも１つの故障が検出された場合、値１を取る。
【００５２】
保護されるプロセッサのグローバルな動作速度を制限するクリティカルパスをチェーンが示すことが判明すれば、パイプラインレジスタを挿入してもよい。それでもなお、検出の待ち時間によって異常が検出される前に攻撃者に計算結果を回収させないようにする必要がある。
【００５３】
図６は、故障を検出するための第２の例示的なチェーンを示す。複雑さを解消するために、単一のチェーンを使用してもよい。例えば、図５に関して検出モジュールを簡略化して、「ＸＮＯＲ」ゲート６１、６２にしてもよい。この場合、一貫性のない状態の検出は、評価段階でのみ有効である。プリチャージ段階で検出モジュールの結果を無視するために、「ＡＮＤ」ゲート６６により、信号
【数２】
0005891562.tif 000003
が１の場合に限り、チェーンの各検出モジュールの故障検出結果を考慮することができる。検出モジュール６１、６２のＦＡＵＬＴ信号は、「ＯＲ」ゲート６３、６４を使用してまとめてチェーン化される。チェーン化された検出モジュールによって検出された異常は、グローバル出力信号ＧＬＯＢＡＬ＿ＦＡＵＬＴの信頼性を向上させるために、システムのグローバル状態を収集するフリップフロップ６５まで等電位６７で伝送される。前記信号は、チェーンのノードの１つで少なくとも１つの故障が検出された場合、値１を取る。
【００５４】
同じ原理で請求されるように、評価段階時にのみ一貫性のない状態を検出するように検出モジュールを簡略化することが可能である。この場合、評価段階、即ち信号ＰＲＥ／ＥＶＡＬが値１を取ったときのみグローバル検出の結果を考慮するように、図６の「ＸＮＯＲ」ゲート６１、６２の代わりに「ＯＲ」ゲートが使用され、「ＡＮＤ」ゲート６６への入力として使用される信号ＰＲＥ／ＥＶＡＬは信号
【数３】
0005891562.tif 000004
に置換される。
【００５５】
又、プリチャージ段階で一貫性のない状態を検出するためのチェーンと評価段階で一貫性のない状態を検出するためのチェーンの２つの独立したチェーンを使用して、マルチプレクサの使用を回避することもできる。
【００５６】
図７は、故障の検出のための例示的なツリー構造を示す。実際、検出パスを迅速化するために、検出モジュールをツリーとして構築してもよい。図７の例は、一貫性のない状態の検出が差分論理によって保護される回路の８つのノードで行われる例を示す。ペア（Ｑ１ｔ、Ｑ１ｆ）、（Ｑ２ｔ、Ｑ２ｆ）、．．．、（Ｑ８ｔ、Ｑ８ｆ）の状態は、図３及び４を使用して説明したような検出モジュール７１によって監視され、前記ノードのそれぞれのレベルに配置される。各モジュールによる検出の結果は、その後検出モジュールの第２のバンク７２に伝送され、その出力自体は検出モジュールの第３のバンク７３に伝送される。最終的に、最後の検出器７４は、監視している８つのノードについて一貫性のない状態のグローバル検出のための結果信号を生成する。フリップフロップ７５が、ＧＬＯＢＡＬ＿ＦＡＵＬＴ出力信号の信頼性を向上させるために、システムのグローバル状態を収集する。
【００５７】
図８は、乗算累積ブロックを使用した回路の方法の例示的な使用を示す。実際、「ｍｕｌｔｉｐｌｉｃａｔｉｏｎ  ａｎｄ  ａｃｃｕｍｕｌａｔｉｏｎ」の頭字語である通常ＭＡＣブロックと呼ばれる乗算累積ブロックを使用することで、検出を簡易化してもよい。これらのブロックは例えば特定のＦＰＧＡ回路で使用可能である。この場合、入力信号はＮビットのワードの２つのペアＡ＝（Ａｔ、Ａｆ）とＢ＝（Ｂｔ、Ｂｆ）とから構成される。Ａｆ及びＢｆは、Ａｔ及びＢｔのデュアル信号であり、従って、符号付整数の２つの補完的な表現で請求されるように以下の方法で表現される。
Ａｆ＝−Ａｔ−１          （５）
Ｂｆ＝−Ｂｔ−１          （６）
【００５８】
積Ａｔ×Ｂｔは、相対整数のセットで算出されるので、積（Ａｆ＋１）×（Ｂｆ＋１）に対応する必要がある。つまり、この２つの積が一致していない場合、単一故障を検出できる。
【００５９】
多重故障の場合、Ａ及びＢの故障が互いに打ち消しあい、同じ積をもたらすケースが存在する可能性があるが、こうしたケースが発生する確率は極めて低い。それでもなお、代数不変量に基づくこの整数乗法計算は、有効範囲を保証するので、故障注入に対して効果的な対抗策を構成する。
【００６０】
この原理を使用するには、ＡｆとＢｆではなく、Ａｆ＋１とＢｆ＋１を考慮する必要があるだけでなく、更にプリチャージと評価両方の段階で検出を行うために、これらの変数は決してゼロでない必要がある。これらの条件を満足するための簡単な方法は、４つのワードＡｔ、Ｂｔ、Ａｆ、及びＢｆに値１の低位のビットを付加することである。
【００６１】
２つのＭＡＣブロック８１、８２が使用される。第１の８１は、１に等しい低位ビットが付加されるＮビットのバイナリワードＡｔと同じく１に等しい低位ビットが付加されるＮビットのバイナリワードＢｔを入力として取る。第２のＭＡＣブロック８２は、１に等しい低位ビットが付加されるｎビットのバイナリワードＡｆと同じく１に等しい低位ビットが付加されるＮビットのバイナリワードＢｆを入力として取る。ブロック８１、８２それぞれによって出力された結果は、前記結果８３の差異を取ることにより、比較される。異常が検出されなければ、この差はゼロである。したがって、故障があるかないかを検出するために、ゼロコンパレータ８４が追加される。その後、出力信号の信頼性を向上させるために、コンパレータ８４の結果が入力としてフリップフロップ８５に伝送される。フリップフロップで出力される信号ＦＡＵＬＴは、異常が検出されなければ１のままで、逆の場合には値０を取る。
【図１】
0005891562.tif 000006
【図３】
0005891562.tif 000007
【図４】
0005891562.tif 000008
【図５】
0005891562.tif 000009
【図６】
0005891562.tif 000010
【図７】
0005891562.tif 000011
【図２】
0005891562.tif 000012
【図８】
0005891562.tif 000013