(57)【特許請求の範囲】
【請求項１】
プログラマブル暗号回路を保護する方法であって、
各セルの論理関数を定義するメモリベースのセル（１０１）からなるゲート自体を使用し、対の信号からなる２値変数に関する計算を行うことができる差動ネットワークを統合するように前記回路を構成し、前記差動ネットワークは、前記対の第１の成分に関する論理関数（Ｔ）を実施するセルの第１のネットワーク（１）と、前記対の第２の成分に関する相補論理（Ｆ）で動作するデュアルセルの第２のネットワーク（２）とを含み、計算ステップは、前記変数を前記セルの入力で既知の状態にするプレチャージ段階（４１）と、前記セルによって計算を行う評価段階（４３）とを含む方法において、
各々の前記プレチャージ段階および前記評価段階の前に同期段階（４２、４４）が実行されることを特徴とする方法。
【請求項２】
前記変数同期段階（４２）を、変数群で実行し、入力変数を搬送する数個の信号を受信可能な各セルに前記評価段階の前で挿入し、前記同期を最遅延信号で実行することを特徴とする、請求項１に記載の方法。
【請求項３】
前記変数同期段階（４４）を、変数群で実行し、入力変数を搬送する数個の信号を受信可能な各計算セルに前記プレチャージ段階の前で挿入し、前記同期を最遅延信号で実行することを特徴とする、請求項１または２に記載の方法。
【請求項４】
完全一致セルを用いてランデブー機構（５６、５７、５８）によって前記同期段階（４２、４４）を前記差動ネットワーク（５３、５４、５５）の各セルに対して実行し、前記セルの入力は前記差動ネットワークの前記セルの入力に共通であり、前記セルの出力は前記セルの動作を制御し、前記完全一致セルの入力で値が完全に一致する場合にランデブーが行われ、同期後に前記ランデブーに到達した場合にのみ前記ゲートの出力は変化することを特徴とする、請求項２または３に記載の方法。
【請求項５】
前記同期段階は、２つの完全一致セル、即ち、前記差動計算ネットワークに共通の入力を有し、それぞれ前記評価段階および前記プレチャージ段階を承認するＵ１セル（６１）およびＵ０セル（６２）を使用し、
−前記Ｕ１セルが、すべての入力、各変数に関連付けられている対の信号がプレチャージ状態のままであるとすぐに前記評価を承認する信号（６３）を生成し、
−前記Ｕ０セルが、すべての入力、各変数に関連付けられている対の信号が前記プレチャージ状態に切り換わっているとすぐに前記プレチャージを承認する信号（６４）を生成する
ことを特徴とする、請求項４に記載の方法。
【請求項６】
前記同期段階の場合、前記Ｕ０セルの代わりに、前記プレチャージ段階の前に前記入力変数をゼロにリセットする汎用信号（ＰＲＥ）を使用し、前記信号（ＰＲＥ）はその他の信号よりも先行していることを特徴とする、請求項５のいずれか一項に記載の方法。
【請求項７】
前記同期段階は、
−前記差動計算ネットワークに共通の入力を有し、すべての入力が前記プレチャージ状態のままであるとすぐに前記評価を承認する信号を生成するＵ１セル（６１）と、
−前記Ｕ１セルの出力を前記リセット信号（ＰＲＥ）に結合するゲート（７１）と
を使用し、
結合同期信号
【数１】
0005509485.tif 000020
は、その２進値によって前記プレチャージ段階または前記評価段階を承認することを特徴とする、請求項６に記載の方法。
【請求項８】
各セルの論理関数を定義するメモリベースのセル（１０１）からなるゲート自体を含み、前記回路は対の信号からなる２値変数に関する計算を行うことができる差動ネットワークを統合し、前記差動ネットワークは、前記対の第１の成分に関する論理関数（Ｔ）を実施するセルの第１のネットワーク（１）と、前記対の第２の成分に関する相補論理（Ｆ）で動作するデュアルセルの第２のネットワーク（２）とを含み、計算ステップは、前記変数を前記セルの入力で既知の状態にするプレチャージ段階（４１）と、前記セルによって計算を行う評価段階（４３）とを含むプログラマブル回路において、
各々の前記プレチャージ段階および前記評価段階の前に同期段階（４２、４４）が実行されることを特徴とするプログラマブル回路。
【請求項９】
前記変数同期段階（４２）を、変数群で実行し、入力変数を搬送する数個の信号を受信可能な各セルに前記評価段階の前で挿入し、前記同期を最遅延信号で実行することを特徴とする、請求項８に記載の回路。
【請求項１０】
前記変数同期段階（４４）を、変数群で実行し、入力変数を搬送する数個の信号を受信可能な各計算セルに前記プレチャージ段階の前で挿入し、前記同期を最遅延信号で実行することを特徴とする、請求項８または９に記載の回路。
【請求項１１】
完全一致セルを用いてランデブー機構（５６、５７、５８）によって前記同期段階（４２、４４）を前記差動ネットワーク（５３、５４、５５）の各セルに対して実行し、前記セルの入力は前記差動ネットワークの前記セルの入力に共通であり、前記セルの出力は前記セルの動作を制御し、前記完全一致セルの入力で値が完全に一致する場合にランデブーが行われ、同期後に前記ランデブーに到達した場合にのみ前記ゲートの出力は変化することを特徴とする、請求項９または１０に記載の回路。
【請求項１２】
前記同期段階は、２つの完全一致セル、即ち、前記差動計算ネットワークに共通の入力を有し、それぞれ前記評価段階および前記プレチャージ段階を承認するＵ１セル（６１）およびＵ０セル（６２）を使用し、
−前記Ｕ１セルが、すべての入力、各変数に関連付けられている対の信号がプレチャージ状態のままであるとすぐに前記評価を承認する信号（６３）を生成し、
−前記Ｕ０セルが、すべての入力、各変数に関連付けられている対の信号が前記プレチャージ状態に切り換わっているとすぐに前記プレチャージを承認する信号（６４）を生成する
ことを特徴とする、請求項１１に記載の回路。
【請求項１３】
前記同期段階の場合、前記Ｕ０セルの代わりに、前記プレチャージ段階の前に前記入力変数をゼロにリセットする汎用信号（ＰＲＥ）を使用し、前記信号（ＰＲＥ）はその他の信号に対して先行していることを特徴とする、請求項１２のいずれか一項に記載の回路。
【請求項１４】
前記同期段階は、
−前記差動計算ネットワークに共通の入力を有し、すべての入力が前記プレチャージ状態のままであるとすぐに前記評価を承認する信号を生成するＵ１セル（６１）と、
−前記Ｕ１セルの出力を前記リセット信号（ＰＲＥ）に結合するゲート（７１）と
を使用し、
結合同期信号
【数２】
0005509485.tif 000021
は、その２進値によって前記プレチャージ段階または前記評価段階を承認することを特徴とする、請求項１３に記載の回路。
【請求項１５】
前記差動ネットワークのセルは、マルチプレクサ（１０３、１０４、１０５）の木に関連付けられている論理関数を定義する前記メモリ（１０１）と、前記メモリの値を受信する前記木の第１のカラム（１０３）の前記マルチプレクサの入力と、前記セルの出力を形成する最後のマルチプレクサ（１０２）の出力とを含むので、前記結合同期信号
【数３】
0005509485.tif 000022
は前記第１のカラム（１０３）の前記マルチプレクサを制御し、その他のカラムの前記マルチプレクサを前記セルの入力信号によって制御することを特徴とする、請求項１４に記載の回路。
【請求項１６】
前記入力変数の前記対の信号は、それぞれのセルで同一カラムのマルチプレクサに関連付けられていることを特徴とする、請求項１５に記載の回路。
【請求項１７】
少なくとも１つの保護ゲートを含み、２ｎ入力の４つのセルは２ｎ−１入力の保護ゲート（１２）を生成するのに使用され、２つのセルは前記完全一致セルであるＵ１セルを生成するのに使用され、２つのセルは前記差動ネットワーク用であることを特徴とする、請求項８〜１６のいずれか一項に記載の回路。
【請求項１８】
少なくとも１つの保護ゲートを含み、２ｎ入力の８つのセルは２ｎ入力の保護ゲート（１４）を生成するのに使用され、４つのセルは前記完全一致セルであるＵ１セルおよびＵ０セルを生成するのに使用され、２つのセルは前記差動ネットワーク用に使用され、２つのセルは前記ゲートの出力を「フリーズさせる」前記ランデブー用に使用され、前記使用論理関数は増加特性を考慮する必要があることを特徴とする、請求項８〜１７のいずれか一項に記載の回路。
【請求項１９】
少なくとも１つの保護ゲートを含み、２ｎ入力の２つのセルはｎ入力の保護ゲート（１５）を生成するのに使用され、前記２つのセルは前記完全一致を統合する前記差動ネットワークを生成するのに使用され、前記使用論理関数は増加特性を考慮する必要があることを特徴とする、請求項８〜１８のいずれか一項に記載の回路。
【請求項２０】
暗号機能を果たすことを特徴とする、請求項８〜１９のいずれか一項に記載の回路。
【請求項２１】
ＦＰＧＡ型であることを特徴とする、請求項８〜２０のいずれか一項に記載の回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル暗号回路を保護する方法に関する。本発明はまた、その方法で保護される回路に関する。本発明は、特に、差分電力解析攻撃に対するこの種の回路の保護に適用される。
【背景技術】
【０００２】
暗号の目的は、特に、
−暗号化による情報の機密およびその双対演算、即ち復号、または
−署名および署名検証演算による完全性のみ
のいずれかを保護することである。
【０００３】
公知の現状では、すべての可能な鍵の検査に対応する総当たり攻撃よりも速い攻撃方法がないという意味で暗号は信頼できる数学的方法を使用している。
【０００４】
一般に、暗号化方法には、システムの機密保護に必要な複雑な計算がある。この複雑さは、コンピュータにとって特定の問題を引き起こさないが、高い計算能力を持たない一般大衆によって使用される装置、一般に安価なマイクロプロセッサによって制御される装置の場合、障害となる。その結果、桁違いの状態になることがあり、例えば、銀行のカードで取引に署名するのに数分かかったり、デジタル有料テレビのデコーダが処理データ速度について行くことができなかったりする。
【０００５】
システムのコストを増加させることなくこの種の問題を軽減するために、一般に暗号専用コプロセッサの形態で、装置を制御する中央処理装置に対して支援するのが普通である。
【０００６】
しかし、中央処理装置または専用コプロセッサによって実施するかどうか、すべての場合に暗号アルゴリズムを物理的電子装置によって実施する。しかし、電気の法則の固有の性質のために、電子装置には避けられない欠陥がある。
【０００７】
従って、以下のように、アルゴリズムを実施する物理的システムの欠陥を利用することによって、数学的な観点から信頼できる暗号システムを攻撃することがある。
−計算の持続時間は、特に時間最適化ソフトウェアシステム上でデータの値に左右されることがあり、ある場合に単純な実行時間測定値に基づいてすべての秘密鍵を発見できるタイミング攻撃を引き起こすことがある。
−瞬時電力消費も、データに左右されることがあり、例えば以下のような一連の攻撃を引き起こすことがある。
−暗号演算中に測定される電力消費の測定値に基づいて中央処理装置によって実行される演算の差分をとることを試みるＳＰＡ（単純電力解析）、
−鍵の制限部分について立てられた仮説を有効または無効にする一定の鍵を用いて、ランダムメッセージに関する暗号演算中に実行される、多くの電力消費測定値に関する統計的演算を使用するＤＰＡ（差分電力解析）、
−第１の段階で、攻撃された装置と同一の装置（この同一の装置は機密を含まないという点を除く）を使用して、鍵の制限部分の値によって索引が付けられた電力モデルを構築し、
−第２の段階で、攻撃された装置によって消費された電力の数個の測定値を使用して、測定電力レベルが最も近いモデルを判定し、この副鍵の値を判定する
−テンプレート攻撃、
−導体に流れる任意の電流は、特にＤＰＡによる電力消費に基づく攻撃と原理的に同一の攻撃を引き起こすことがある測定値、電磁場を生成する。
−最後に、システムの機密を発見するために偽の結果を利用するように、攻撃はシステムの演算を妨害する。
【０００８】
装置のメモリに記憶された機密に関する情報を漏洩でき、暗号アルゴリズムを実施する物理的装置の任意の欠陥は、「キャッシュチャネル」と呼ばれている。
【０００９】
ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）型の再構成可能回路は、暗号を必要とする用途で非常に広く使用されている。少なくとも２つの理由がある。第１に、暗号規格は急速に変化しており、脆弱性を有するあるアルゴリズムを、その欠陥を修正した他のアルゴリズムと交換する。さらに、鍵サイズなどの暗号パラメータも可変である。従って、性能を低下させずに、柔軟性が必要である。実際に、計算が複雑なので、暗号アルゴリズムは保護する。ＦＰＧＡは、完全に電力および柔軟性に関するこの要件を満たす。第２に、ある暗号用途は、少量の同報通信である。これは、特に、例えば人工衛星上のシステムの場合である。よって、ＦＰＧＡの解決策は、例えばＡＳＩＣ型の専用の実装よりも効率的である。しかし、すべての暗号回路のように、暗号機能を搭載したＦＰＧＡは、特にキャッシュチャネルによる攻撃に対して弱い。
【００１０】
特に電力消費測定による攻撃に反撃する既知の対策では、差動論理、より詳細には、論理ネットワークの複製を使用する。よって、特にＤＰＡに対して電力消費をデータから独立させ従って使用不可能にしてデュアルポートが今にも消費しているように、相補論理で動作するデュアル物理ゲートのように、各論理ゲートを複製する。各計算で一定数の遷移、従って一定の電力消費を確実にするために、差動論理は、以下の２つの作業段階、
−変数を既知の状態にするプレチャージ段階と、
−一定数の遷移を用いて計算を実行する評価段階と
を必要とする。
【００１１】
よって、差動論理の使用および実装に必要なデュアルレール接続のせいで、暗号回路の複雑さは２倍を超える。
【００１２】
あるＦＰＧＡは海賊行為対抗保護手段をその構成に統合しているけれども、その実装に対する攻撃に耐えるように設計されているものはない。従って、保護手段には、特に、ＤＡＴＥ’０４の会議録（２４６〜２５１頁、２００４年２月）における「安全なＤＰＡ耐性のＡＳＩＣまたはＦＰＧＡ実装のための論理レベル設計手法（Ａ  ｌｏｇｉｃ  Ｌｅｖｅｌ  Ｄｅｓｉｇｎ  Ｍｅｔｈｏｄｏｌｏｇｙ  ｆｏｒ  ａ  Ｓｅｃｕｒｅ  ＤＰＡ  Ｒｅｓｉｓｔａｎｔ  ＡＳＩＣ  ｏｒ  ＦＰＧＡ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）」、Ｋ．ＴｉｒｉおよびＩ．Ｖｅｒｂａｕｗｈｅｄｅによる文献内で提案されているＷＤＤＬ論理、またはＣＨＥＳ’０５の会議録（ＬＮＣＳの３６５９巻、１７２〜１８６頁、Ｓｐｒｉｎｇｅｒ、２００５年９月）で掲載のＬＮＣＳにおける「マスクデュアルレール・プレチャージ論理：経路設定制約無しのＤＰＡ耐性（Ｍａｓｋｅｄ  Ｄｕａｌ  Ｒａｉｌ  Ｐｒｅ−Ｃｈａｒｇｅ  Ｌｏｇｉｃ：ＤＰＡ  Ｒｅｓｉｓｔａｎｃｅ  ｗｉｔｈｏｕｔ  ｒｏｕｔｉｎｇ  Ｃｏｎｓｔｒａｉｎｔｓ）」、Ｔ．ＰｏｐｐおよびＳ．Ｍａｎｇａｒｄによる文献に提案のＭＤＰＬ論理のようなＲＴＬ（レジスタ転送レベル）における解決策がある。これらの解決策は、攻撃者によって利用可能な論理および技術的偏見を与えるので、不十分である。
【００１３】
提案されたすべての種類の差動論理において、皮相電力消費の均衡にもかかわらず、二次現象では不均衡が明らかになり、よって情報が漏洩する。最も重要な現象は、特に、差動ネットワークにおける予測評価および技術格差である。
暗号ハードウェアおよび組み込みシステム（ＣＨＥＳ  ２００６  コンピュータサイエンスにおける講義ノート：ＬＮＣＳ、Ｓｐｒｉｎｇｅｒ、Ｂｅｒｌｉｎ、４２４９巻、２００６年１月１日、２５５〜２６９頁）の「デュアルレール・プレチャージ論理スタイルを用いたＤＰＡ対抗手段の機密保護評価（Ｓｅｃｕｒｉｔｙ  Ｅｖａｌｕａｔｉｏｎ  ｏｆ  ＤＰＡ  Ｃｏｕｎｔｅｒｍｅａｓｕｒｅｓ  Ｕｓｉｎｇ  Ｄｕａｌ−Ｒａｉｌ  Ｐｒｅ−ｃｈａｒｇｅ  Ｌｏｇｉｃ  Ｓｔｙｌｅ）」、スズキ・ダイスク（Ｄａｉｓｕｋｕ  Ｓｕｚｕｋｉ）らによる文献には、ＷＤＤＬおよびＭＤＰＬデュアルレール論理モードが記載されている。
暗号ハードウェアおよび組み込みシステム（ＣＨＥＳ  ２００６  コンピュータサイエンスにおける講義ノート：ＬＮＣＳ、Ｓｐｒｉｎｇｅｒ、Ｂｅｒｌｉｎ、４２４９巻、２００６年１月１日、２３２〜２４１頁）の「３段階デュアルレール・プレチャージ論理（Ｔｈｒｅｅ−Ｐｈａｓｅ  Ｄｕａｌ−Ｒａｉｌ  Ｐｒｅ−ｃｈａｒｇｅ  Ｌｏｇｉｃ）」、Ｍａｒｃｏ  Ｂｕｃｃｉらによる別の文献では、３段階論理を取り扱っている。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明の目的の１つは、特に、これらの現象を回避することができ、特にＦＰＧＡ技術における暗号回路上で電力消費測定による攻撃を極めて一層困難にすることにある。
【課題を解決するための手段】
【００１５】
このために、本発明の主題の１つは、プログラマブル暗号回路を保護する方法であり、前記方法は、各セルの論理関数を定義するメモリベースのセルからなるゲート自体を使用し、対の信号からなる２値変数に関する計算を行うことができる差動ネットワークを統合するように回路を構成し、差動ネットワークは、対の第１の成分に関する論理関数を実施するセルの第１のネットワークと、対の第２の成分に関する相補論理で動作するデュアルセルの第２のネットワークとを含む。計算ステップは、２つの段階、全変数の２つの信号を既知の同一状態（例えば、０）にするプレチャージ段階と、各変数を表す２つのうち１つの信号が活動状態である場合、セルによって実際の計算を行う評価段階と、各々のプレチャージ段階および評価段階の前の同期段階とを含む。
【００１６】
例えば、変数同期段階を、変数群で実行し、入力変数を搬送する数個の信号を受信可能な各セルに評価段階の前で挿入し、同期を最遅延信号で実行する。
【００１７】
また、変数同期段階を、変数群で実行し、入力変数を搬送する数個の信号を受信可能な各計算セルにプレチャージ段階の前で挿入してもよく、同期を最遅延信号で実行する。
【００１８】
例えば、完全一致セルを用いてランデブー機構によって同期段階を差動ネットワークの各セルに対して実行し、セルの入力は差動ネットワークの前記セルの入力に共通であり、セルの出力は当該セルの動作を制御し、完全一致セルの入力で値が完全に一致する場合にランデブーが行われ、同期後にランデブーに到達した場合にのみゲートの出力は変化する。
【００１９】
方法を一層理解し易くするために、（非相補および相補変数に対応する）すべての対の信号を、プレチャージ段階中に（０、０）状態であるとみなす。この推論は、（１、１）状態にも当てはまる。
【００２０】
完全一致セルは、２種類あり、共通の入力を有し、それぞれ評価段階およびプレチャージ段階を許可する１への完全一致Ｕ１セルおよび０への完全一致Ｕ０セルである。
−１への完全一致Ｕ１セルは、すべての入力変数がプレチャージ状態のままであるとすぐに評価を許可する信号を生成する。この条件は、すべての対の入力信号がプレチャージ状態（０、０）から（０、１）状態または（１、０）状態に切り換わっていると述べることになる。
−０への完全一致Ｕ０セルは、すべての入力変数が評価状態のままであるとすぐにプレチャージを許可する信号を生成する。この条件は、すべての対の入力信号が評価状態（０、１）または（１、０）からプレチャージ状態（０、０）に切り換わっていると述べることになる。
【００２１】
１への完全一致または０への完全一致が非活動状態である限り、計算セルを「フリーズ」させる（即ち、メモリに記憶する）。
【００２２】
１つの特定の実施形態では、ゲートは、プレチャージ段階の前に入力変数をゼロにリセットする大域信号ＰＲＥを受信する。この信号は、すべてのゲートに共通であり、その他の信号よりも先行している。ＰＲＥによって提供されるプレチャージにより、ランデブーでの必要な暗記と完全一致Ｕ０セルの両方を無くすことができる。
【００２３】
同期段階は、例えば、
−すべての入力変数がプレチャージ状態のままであるとすぐに評価を許可する信号を生成するＵ１完全一致セルと、
−Ｕ１セルの出力をゼロリセット信号ＰＲＥに結合するゲートと
を使用し、
結合同期信号
【数１】
0005509485.tif 000002
は、その２進値によってプレチャージ段階
【数２】
0005509485.tif 000003
または評価段階
【数３】
0005509485.tif 000004
を許可する。
【００２４】
また、本発明の主題は、上述の方法に従って保護される回路である。プログラマブル回路は、例えばプログラマブル暗号回路であり、各セルの論理関数を定義するメモリベースのセルからなるゲート自体を含み、前記回路は対の信号からなる２値変数に関する計算を行うことができる差動ネットワークを統合し、差動ネットワークは、対の第１の成分に関する論理関数を実施するセルの第１のネットワークと、対の第２の成分に関する相補論理で動作するデュアルセルの第２のネットワークとを含む。計算ステップは、変数をセルの入力で既知の状態にするプレチャージ段階と、セルによって計算を行う評価段階と、各々のプレチャージ段階および評価段階の前の同期段階とを含む。
【００２５】
１つの特定の実施形態では、差動ネットワークのセルは、マルチプレクサの木に関連付けられている論理関数を定義するメモリと、メモリの値を受信する木の第１のカラムのマルチプレクサの入力と、セルの出力を形成する最後のマルチプレクサの出力とを含むので、結合同期信号
【数４】
0005509485.tif 000005
は第１のカラムのマルチプレクサを制御し、その他のカラムのマルチプレクサをセルの入力信号によって制御する。
【００２６】
例えば、入力変数の対の信号は、それぞれのセルで同一カラムのマルチプレクサに関連付けられている。
【００２７】
回路は、例えば少なくとも１つの保護ゲートを含み、２ｎ入力の４つのセルは２ｎ−１入力の保護ゲートを生成するのに使用され、２つのセルは完全一致Ｕ１を生成するのに使用され、２つのセルは差動ネットワーク用である。
【００２８】
回路は、例えば少なくとも１つの保護ゲートを含み、２ｎ入力の８つのセルは２ｎ入力の保護ゲートを生成するのに使用され、４つのセルは完全一致Ｕ１およびＵ０を生成するのに使用され、２つのセルは差動ネットワーク用に使用され、２つのセルはゲートの出力を「フリーズさせる」ランデブー用に使用され、使用論理関数は増加特性を考慮する必要がある。
【００２９】
１つの実施形態では、回路は、少なくとも１つの保護ゲートを含んでもよく、２ｎ入力の２つのセルはｎ入力の保護ゲートを生成するのに使用され、２つのセルは完全一致を統合する差動ネットワークを生成するのに使用され、使用論理関数は増加特性を考慮する必要がある。
【００３０】
本発明の他の特徴と利点は、下記の添付図面と併せて以下の説明から明瞭になろう。
【図面の簡単な説明】
【００３１】
【図１】差動論理におけるＡＮＤゲートである。
【図２】例えばＦＰＧＡ型のプログラマブル回路での差動論理における計算ステップの段階の提示である。
【図３】差動論理における予測評価の例である。
【図４】本発明によるＢＣＤＬ（均衡セルベース差動論理）回路内の計算ステップにおけるプレチャージ段階と評価段階との間に挿入された同期段階の例示である。
【図５】計算セルに到達するための差動ネットワーク内の経路差の例示である。
【図６】差動ネットワークにおいて計算が続く入力で変数を同期させるＢＣＤＬゲートの動作原理である。
【図７】本発明によるＢＣＤＬゲートにおける簡易計算段階の例示である。
【図８】大域信号を用いて前述の簡易計算段階を実施するＢＣＤＬゲートの動作原理である。
【図９】前述の計算段階に含まれる信号のためのタイミング図の提示である。
【図１０】特にＦＰＧＡ型のプログラマブルネットワークにおける計算セルのアーキテクチャの提示である。
【図１１ａ−１１ｄ】本発明による回路内の電力均衡の例示である。
【図１２】ＢＣＤＬゲートの構造の提示である。
【図１３】ＦＰＧＡセルにおける完全一致関数の例示的な実施形態である。
【図１４】多数の入力を受入れ可能でランデブーセルを必要とし、大域プレチャージ入力を有しないＢＣＤＬゲートの例示的な実施形態である。
【図１５】完全一致および計算関数を同一セルに統合する、数個の入力を有するＢＣＤＬゲートの例示的な実施形態である。
【発明を実施するための形態】
【００３２】
図１は、差動論理の原理を例示する例としてＷＤＤＬ論理におけるＡＮＤゲート１、２を示す。このゲートは、相補論理モードで動作する２つのデュアル論理ネットワーク１、２からなる。データを、デュアルレール形式で示し、各論理変数ａを、次のようにして符号化される１対の信号（ａｔ，ａｆ）から形成する。
−停止状態の場合、（０、０）。ａの値を、定義せず、以後Ωで表す。
−（１、０）は活動状態であり、ａ＝１である。
−（０、１）は活動状態であり、ａ＝１である。
【００３３】
２つの入力ａ、ｂおよび１つの出力ｓを有する論理ゲートＨを、以下のように、それぞれ論理関数Ｔ（ａｔ，ｂｔ）およびＦ（ａｆ，ｂｆ）を有する２つのゲート１、２で物理的に表す。
−  ｓｔ＝Ｔ（ａｔ，ｂｔ）
−  ｓｆ＝Ｆ（ａｆ，ｂｆ）
【００３４】
「真」の論理ネットワークは、信号ｓｔを送出する関数Ｔに対応する。「偽」のデュアル論理ネットワークは、デュアル信号ｓｆを送出する関数Ｆに対応する。図１は、関数Ｔを実行する「真」のネットワーク１が２つの非相補入力ａｔおよびｂｔを受ける「ＡＮＤ」ゲートを例示する。「ＯＲ」デュアル関数は、関数Ｆを実行する。信号ｘの場合、下記の方程式を満たす。
【数５】
0005509485.tif 000006
【００３５】
図２は、例えばＷＤＤＬ（波動力学差動論理）型の差動論理における計算ステップの段階を示す。このステップは、連続段階、即ちプレチャージ段階２１と評価段階２２とを含む。入力変数ａｔ，ｂｔ，ａｆ，ｂｆおよび対応する出力変数ｓｔ，ｓｆの状態の例を、プレチャージおよび評価段階の下で示す。図２のタイミング図は、変数がプレチャージ段階から評価段階に切り換わるまたその逆の場合、遷移数が同一（この場合、３個）であることを示す。
【００３６】
電力消費を、特にＣＭＯＳ電子技術において遷移数と直接関連付けるので、消費電力は均衡している。
【００３７】
しかし、皮相電力の均衡にもかかわらず、二次作用がデータ漏洩を引き起こすことがある。例えば、ａｔがａｆより進んでいるまたは遅れている場合、攻撃者が時間推移を見抜き、そこから変数ａの値を推測することがある。均衡のとれたデュアルレール相互接続を使用することによって、即ち、特に長さと静電容量の点で電気的な観点から完全に均衡のとれた２本の回線を用いて、この現象を阻止することもできる。デュアルレール回線の均衡がとれていると仮定して、現在提案の論理モードにおいて攻撃の可能性を与える多くの他の現象がある。上述のように、最も重要な現象は、特に、差動ネットワークにおける予測評価および技術格差である。
【００３８】
図３は、予測評価を用いたＷＤＤＬ論理におけるタイミング図を例示する。信号ａが信号ｂより進んでいるまたは遅れている場合、予測評価は、図３に例示するように行われることがある。従って、信号ａおよびｂの成分間の遅延は、ＡＮＤ関数とＯＲ関数との間の論理差によってゲート１、２の出力で反映される。時間間隔Δｔ１およびΔｔ２から、信号ａが０に等しいか１に等しいかを知ることができる。より正確には、図３において、ｂはａよりも常に速い。タイミング図の前半の場合にｂが０に等しいか後半の場合にｂが１に等しいかによって、出力は、Δｔ１でより遅くまたはΔｔ２でより速く評価を行い、これによってｂの値を漏らす。予測評価２２があるのと同じように、ある信号が他の信号よりも速く０に切り換わることを意味する予測プレチャージ２１がある。
【００３９】
特に、ｂをａよりも速くする以下の２つの理由がある。
−データ信号ｂｔおよびｂｆはゲートに直接接続されているのに対して、ａｔおよびａｆは多くの相互接続従って多くのスイッチング素子を通過する。
−データ信号ａｔおよびａｆは中間ゲートを通過するのに対して、ｂｔおよびｂｆは直接到達する。
【００４０】
技術によって電力消費による攻撃に対する脆弱性を引き起こすもう１つの現象は、論理ネットワークとその補完物との間の消費エネルギーの差である。例えば、ＷＤＤＬ論理では、ａが１に等しい場合、ＡＮＤゲートに関して、ＡＮＤゲートは、ｂが１に等しい場合、切り換わり、それ以外の場合、ＯＲゲートである。従って、このことから、ＡＮＤおよびＯＲゲートの遷移が同一の電力消費を有しない場合、ｂの値を推測することができる。
【００４１】
ＭＤＰＬ論理では、この問題を克服しているが、追加コストがかかる。第１に、１クロックサイクル当たり１マスクビットを生成する真の乱数発生器を有する必要がある。さらに、各ゲートの１つの入力をマスクに対して確保する必要がある。
【００４２】
特異な性質のために、ＷＤＤＬ論理の複雑さは、必然的に通常の論理の２倍である。その上、増加関数でなければならない関数ＴおよびＦの選択に対する追加の重大な制約がある。この条件により、計算段階中に寄生切り換えを防止し、論理コーンに沿ってプレチャージ値の伝播を保証することができる。この増加関数の制約により、セルの型がＦＰＧＡに制限される。ＭＤＰＬ論理は、ＦＰＧＡにおいて生成するのがさらに一層複雑である。
【００４３】
本発明は、特に、均衡セルベース差動論理、略して以後ＢＣＤＬ論理と呼ばれる、予測評価および技術格差の欠陥を無くす新規な型の論理を生成する。ＢＣＤＬ論理で動作する回路では、以下のように、
−プレチャージ段階または評価段階への実際の切り換えの前にデータ同期ステップを各ゲートで追加し、
−同期をデータ群で実行し、
−回路によって実行される計算と並行して同期計算を実行する。
【００４４】
本発明は、この演算を、
−大域レベルで、即ち計算セルＴ，Ｆ間で、および
−局所レベルで、即ち計算セルの内部で、
適用する。
【００４５】
図４は、同期ステップを例示する。この同期ステップを、デュアルネットワークＴ，Ｆを介して各ゲートで評価段階の前に実行する。特に、予測評価およびプレチャージの問題を回避することができる。
【００４６】
同期は、最遅延信号を待つことである。従って、２つの信号間の計算時間の差に起因する予測評価の原因を、最遅延信号を待つことによって取り除く。
【００４７】
図４は、プレチャージおよび評価サイクルからなる４つの連続同期および計算段階４１、４２、４３、４４を例示する。第１の段階４１は、プレチャージ計算を実行し、第２の段階４２は、例えば状態１における最後の信号を待つことによって第１の同期を実行する。この段階に評価段階４３が続き、評価段階４３に同期段階４４が続き、同期段階４４は次のサイクルのプレチャージステップ４１の前である。この同期ステップ４４は、例えば状態０における最後の信号を待つことを課す。
【００４８】
図５は、２つのシフトレジスタ５１、５２とデュアルＴ，Ｆのゲート５３、５４、５５とを含むデュアル論理ネットワークの一部を例示する。第１の経路５０１は、第１のシフトレジスタ５１から来る信号ａを搬送し、第２の経路５０２は、第２のシフトレジスタ５２から来る信号ｂを搬送する。２つの経路は、Ｔ，Ｆゲート５５の入力で一緒になり、ゲート５５は出力信号ｓを送出する。信号ａを、一連のゲート５３、５４によって第１の経路で遅延させる。また、これらのゲートは、他の経路５０３、５０４から来る信号を入力として受ける。各ゲートの入力で、ブロック５６、５７、５８は同期を実行する。図５に示す例では、信号ｓを送出する最終ゲート５５は、最遅延信号（この例では信号ａ）の到達に対応する時刻t2でのみ計算を行う。
【００４９】
非同期論理における同期は、ランデブーセルＲＶを用いて２つの信号間で行われる。セルＲＶは、２つの入力が同一の論理値Ｌを有する場合にのみ論理値Ｌに切り換わり、それ以外の場合には状態変化しない。従って、セルＲＶは、入力信号が０または１に完全に一致する場合にのみ状態を変化させるメモリである。ＢＣＤＬ論理では、ランデブーは、ＦＰＧＡ回路の同一のセル内のデータ群で行われる。例えば、特定のＵ０およびＵ１セルが使用される。
【００５０】
Ｕ１セルは、評価を許可する信号を生成し、この信号は、全データが予め定義された状態Ωのままであるとすぐに１に切り換わる。より詳細には、Ｕ１（ｘ、ｙ、．．．）で表す信号を、下記の方程式で定義する。
ｘ≠（０、０）かつｙ≠（０、０）．．．の場合、Ｕ１（ｘ、ｙ、．．．）＝１、それ以外の場合、Ｕ１（ｘ、ｙ、．．．）＝０  （１）
【００５１】
Ｕ０セルは、状態Ωに戻る出力を許可する信号を生成する。この信号は、下記の方程式に従って各入力が状態Ωであるとすぐに１に切り換わる。
ｘ＝ｙ＝（０、０）．．．の場合、Ｕ０（ｘ、ｙ、．．．）＝１、それ以外の場合、Ｕ０（ｘ、ｙ、．．．）＝０  （２）
【００５２】
従って、完全に一致する場合、即ちＵ０またはＵ１が活動状態である場合にのみ、この計算を開始し、完全に一致しない、即ちＵ０およびＵ１が非活動状態である限り、計算をフリーズさせる。
【００５３】
図６は、データ群同期の原理を例示する。プレチャージまたは評価計算を行うＴ，Ｆデュアルポート６０とＵ１セル６１およびＵ０セル６２へのデータａ、ｂ、ｃの並列入力がある。Ｕ１セルは評価許可信号６３をゲート６０に送信し、Ｕ０セルはプレチャージ許可信号６４をゲートに送信する。
【００５４】
情報を搬送する信号に関する真の計算に評価は対応するのに対して全信号は０状態に切り換わる必要があるので、プレチャージ計算は評価計算よりも単純である。この特性を、例えばその他の信号よりも速い大域ゼロリセット信号を用いて、例えばプレチャージの前の同期段階４４を無くしながらＢＣＤＬ論理で利用することができる。
【００５５】
図７は、プレチャージ段階４１の直前で全信号をゼロに設定するこの信号ＰＲＥを例示する。プレチャージおよび評価サイクルは、この場合、評価段階４３の前に１つだけの同期段階４２を含む、わずか３つの段階からなる。これにより、特に下記の２つの理由でゲートの構造が単純化される。
−信号ＰＲＥと交換されるので、０への完全一致ステップをもはや実行する必要はない。
−信号ＰＲＥが先行しているので、完全一致の際にのみ出力が０または１に変化するように（ランデブー）、ゲートの出力をもはや記憶する必要はない。信号ＰＲＥの到達直後に出力は０に変化し、１に完全に一致する場合にのみ出力は１に切り換わることができる。
【００５６】
図８は、図７に例示するように、大域プレチャージ信号ＰＲＥを介してプレチャージ切り換えコマンドを受信するＡＮＤゲート７１と評価の場合に必要な０への完全一致を交換するので、ＢＣＤＬ論理における簡易ゲート構造を例示する。よって、ＡＮＤゲートからの出力７２としての信号
【数６】
0005509485.tif 000007
は、以下のように計算を同期させることができる。
−信号ＰＲＥの直後に
【数７】
0005509485.tif 000008
が０に切り換わると、入力とは無関係にプレチャージを強いる。
−信号ＰＲＥの一部が１でありまた入力値のランデブーが引き起こされていることを示す、
【数８】
0005509485.tif 000009
が１に切り換わると、評価段階が開始する。
【００５７】
図９は、プレチャージ段階２１および評価段階２２中の信号ａ、ｂ、ｓおよび
【数９】
0005509485.tif 000010
に対するタイミング図を示す。これらのタイミング図は、信号
【数１０】
0005509485.tif 000011
の遷移９１中の入力とは無関係にプレチャージ段階２１を強いることを示す。
【００５８】
大域レベルで適用された上述の解決策では、ＢＣＤＬ論理を使用して、回路全体にわたって予測評価に伴う問題に対処する。攻撃に対する堅牢性も、特に技術格差および局所的予測評価を回避するために、単独のＢＣＤＬゲートのレベルで局所的に検証する必要がある。その上、同期の追加により、複雑さが非常に増加してはいけない。
【００５９】
図１０は、３つの入力ａ、ｂ、ｃを有するＦＰＧＡ回路のセルの構造を例示する。ＦＰＧＡ回路では、セルの論理関数を定義するＬＵＴ（ルックアップ・テーブル）１０１を含むメモリベースのセルで論理を実行する。図１０は、３つのカラム１０３、１０４、１０５を形成するマルチプレクサ１０２の木に関連付けられたルックアップ・テーブル（ＬＵＴ）１０１にセルの構造が基づいていることを示す。ルックアップ・テーブル１０１は、ｘ、ｙおよびｚが値０または値１をとる各３つ組（ｘ、ｙ、ｚ）に対する関数ｓの２進値を記憶する。
【００６０】
第１のカラム、即ち入力カラムを、木の第１段のマルチプレクサ１０２から形成し、第３のカラム１０５を、最終段のマルチプレクサ、即ち出力マルチプレクサから形成する。入力ａ、ｂ、ｃは、マルチプレクサを制御する。従って、カラムの数は、入力の数に対応する。関数の各値ｓ（ｘ、ｙ、ｚ）は、入力カラム１０３のマルチプレクサの入力にある。マルチプレクサの段を制御する２進値ａ、ｂ、ｃの種々の組合せにより、入力カラム１０３の入力を選択することができる。
【００６１】
本発明によれば、下記の２つのピン配列モードに基づいて局所的堅牢性を向上させる。
−信号
【数１１】
0005509485.tif 000012
は、マルチプレクサの木の第１のカラムに入る。
−「真」の入力ｅｔおよび「偽」の入力ｅｆの対を、ゲートＴおよびゲートＦ上のそれぞれの同じピンに関連付ける。
【００６２】
これらのピン配列モードにより、局所的機密保護に関して大きな成果を挙げることができ、実現に要するコストは非常に安い。
【００６３】
第１に、寄生切り換えがない。信号
【数１２】
0005509485.tif 000013
はプレチャージ段階中に最初に切り換わるので、データ入力が切り換わる場合に寄生切り換えの危険が全くなく、内部等電位をすべて強制的に０にする。同様に、信号は、評価段階の前に最後に切り換わる。従って、データによって制御されたマルチプレクサは、ゼロを選択する。次に、信号
【数１３】
0005509485.tif 000014
は、関数の値が事前配置マルチプレクサ１０２を通過するのを許可する。
【００６４】
第２に、複雑さを軽減する。同じ理由で、これは、マルチプレクサが入力上に正しく既に配置されているので寄生切り換えを回避するために増加関数を有する必要がないからである。これにより、特に、増加関数の部分組立品よりもずっと高い最適化潜在能力を与える、ｎ入力のＬＵＴに対して２ｎの数まで、すべての可能な関数を使用することができる。例えば、４入力のＬＵＴに対して、６５５３６個の可能な関数の中から１６６個の増加関数があるだけである。
【００６５】
第３に、技術的偏見を大いに減らす。ＴおよびＦの等電位切り換えの総数は、入力の組合せに応じて変わらない。この数は、一定であり、ＬＵＴの入力数がｎの場合、２ｎ−１に等しい。従って、これにより、ＴおよびＦの対に関して電力消費プロファイルは同一であるのでＴ活動をＦ活動と区別するのが困難になる。さらに、経時的なマルチプレクサによる一連の切り換えは、データと無関係である。
【００６６】
最後に、ＬＵＴテーブル内で予測評価および予測プレチャージがない。これは、信号の後に常に到達する評価を遅延させ、データを待つことなくプレチャージを強いるのは信号
【数１４】
0005509485.tif 000015
であるからである。換言すれば、データとは無関係に、評価を常に遅延させプレチャージを常に予測する。
【００６７】
図１１ａ、１１ｂ、１１ｃおよび１１ｄは、３入力のＬＵＴテーブルの例においてＢＣＤＬ論理で切り換わる場合、電力消費均衡を例示する。より詳細には、これらの４つの図は、信号
【数１５】
0005509485.tif 000016
が切り換わる場合、２入力のＸＯＲゲートにおける全組合せを示す。これらの全図において、１番上のセルは「真」のゲートＴであり、１番下のセルは「偽」のゲートＦである。回路ＴおよびＦの切り換えに対応する時間依存大域電力ピークを、曲線１１１で表し、ピークは、カラムに面し、対応するカラムが切り換わる場合に消費される電力に対応する。一例を挙げれば、図１１ａは、第２のカラム１０４および第３のカラム１０５に接続される入力信号が（０、０）に等しい場合に対応する。太字で示すマルチプレクサ１１２、１１３、１１４、１１５、１１６、１１７および１１８は、それらの出力が切り換わるのが見える。曲線１１１は、この第１の組合せ（０、０）に対応する電力ピークを示す。下記の図で組合せに関連付けられる電力曲線１１１は同一である。従って、切り換え時間の点であろうと電力消費の点であろうとＴ、Ｆの対で大域均衡がある。換言すれば、図１１ａ、１１ｂ、１１ｃおよび１１ｄに示すように、各組合せ（０、０）、（０、１）、（１、０）および（１、１）に関して同時に起こる多数の切り換え演算がある。
【００６８】
任意のＦＰＧＡシステムでアプリケーションを実施するプログラムを用いて、ＢＣＤＬ論理への切り換えが自動的に行われることもある。標準ＦＰＧＡツールから得られる解析ツールにより、論理を上述の論理に変換できる。解析は、ＢＣＤＬゲートの変形で代替論理素子に限定される。対の相互接続線を、均衡のとれた方法で経路設定する必要がある。
【００６９】
図１２は、４つのセル１２１、１２２、１２３および１２４、即ち２つの１への完全一致セル１２１および１２２と関数Ｔ用の１つのセル１２３とそのデュアル関数Ｆ用の１つのセル１２４とを含むＢＣＤＬゲートの構造を例示する。上述のＵ１セルのカスケード接続は可能である。例えば、ＢＣＤＬゲートは、以下のように構成される。
−相補論理で動作する２つのデュアルセル１２３、１２４であって、各セルはｎ個の入力を受け、Ｔセルの場合はＥｉｔ、Ｆセルの場合はＥｉｆ、ｉは１からｎまで変わり、ＴおよびＦセルは、それぞれ出力信号の成分ｓｔおよびｓｆを送出する。
−１に完全に一致させ、信号
【数１６】
0005509485.tif 000017
を生成する２つのＵ１セルであって、各セルは、対（Ｅｉｔ，Ｅｉｆ）の半分に対応するｎ個の入力を受ける。
【００７０】
図１３は、完全に一致させるＵ１セルにカスケード接続されたＵ’１セル１２２の実施形態を例示する。入力（Ｅｉｔ，Ｅｉｆ）．．．（Ｅｊｔ，Ｅｊｆ）をＯＲゲート１２１に接続し、これらのＯＲゲートの出力をＡＮＤゲート１２２の入力で結合し、反転信号
【数１７】
0005509485.tif 000018
をこのゲート１２２の入力でＯＲゲートの出力に結合する。ＡＮＤゲート１２２の出力は、信号
【数１８】
0005509485.tif 000019
を送出する。
【００７１】
大域プレチャージ無しで多数の入力付きのＢＣＤＬゲートの実施の１つでは、大域プレチャージ信号ＰＲＥを使用してもしなくてもよい。次に、上述のように４つの段階で計算を行う。これにより、特に、ＴおよびＦゲート用のＬＵＴテーブルで１つの入力を得て入力数を増加することができる。一方、大域プレチャージを、０への完全一致計算と交換する必要がある。その上、完全に一致しない場合、ランデブーを行う（即ち、計算を「フリーズさせる」）必要がある。このために、特定ランデブーセルを使用する。
【００７２】
従って、図１４に示すように、大域プレチャージ無しのＢＣＤＬゲートは、以下のように構成される。
−ＴおよびＦ関数用の相補論理で動作する２つのセル１２３、１２４であって、各セルはｎ個の入力を受ける。
−出力信号の成分ｓｔおよびｓｆを送出する少なくとも２つのランデブーセルＲＶ１４３、１４４であって、ＲＶセルを、それぞれＴおよびＦ関数を有するセルに関連付け、正確な数はＬＵＴの入力数に左右される。
−０に完全に一致させる２つのＵ０セル１４１、１４２であって、セルの出力をランデブーセルの入力に接続する。
−１に完全に一致させる２つのＵ１セル１２１、１２２であって、セルの出力をランデブーセルの入力に接続する。
【００７３】
図１４に例示するゲートは、特に、ＤＥＳ暗号化アルゴリズムのＳボックスを実施するのに適している。大域プレチャージ無しのＢＣＤＬゲートは、例えばＷＤＤＬ論理のように増加関数を有する条件を常に満たす必要がある。
【００７４】
数個の入力で大域プレチャージ無しのＢＣＤＬゲートを実施する場合、１への完全一致関数を、図１５に示す例に例示するようにＴおよびＦセルに統合してもよい。次に、１への完全一致関数は最速信号の到達時にＴおよびＦ関数をゼロにリセットするので、信号ＰＲＥをもはや使用する必要はない。しかし、Ｕ１セルがより遅い場合に予測よりも早くＴおよびＦセルがプレチャージ段階に切り換わることができる信号経路があるので、Ｕ１セルを分離した場合、この原理は適用できない。この場合、信号ＰＲＥが存在しないので、プレチャージの０値の伝播が再度あり、増加関数を使用して寄生切り換えを防止し、論理コーンに沿ってプレチャージを伝播させる必要がある。図１５に示す例では、入力信号のデュアル成分（Ｅｉｔ，Ｅｉｆ）を、Ｔセル１５１およびＦセル１５２に統合されたＯＲゲート１５３に送信し、これらの入力をさらに、セル１５１、１５２の実際のＴおよびＦゲートの入力に接続する。これらのセルの出力およびＯＲゲート１５３の出力を、ＡＮＤゲート１５４の入力に結合し、ＡＮＤゲートの出力は、出力信号の成分ｓｔおよびｓｆを送出する。図１５は、少数の入力を有する関数の特定の場合におけるゲートを例示する。１への完全一致論理をＴおよびＦセルに統合し、従って最速信号でプレチャージ段階に切り換わることができる。
【図１】
0005509485.tif 000023
【図２】
0005509485.tif 000024
【図３】
0005509485.tif 000025
【図４】
0005509485.tif 000026
【図５】
0005509485.tif 000027
【図６】
0005509485.tif 000028
【図７】
0005509485.tif 000029
【図８】
0005509485.tif 000030
【図９】
0005509485.tif 000031
【図１０】
0005509485.tif 000032
【図１１ａ−１１ｄ】
0005509485.tif 000033
【図１２】
0005509485.tif 000034
【図１３】
0005509485.tif 000035
【図１４】
0005509485.tif 000036
【図１５】
0005509485.tif 000037