(57)【要約】【課題】ＤＥＳ等を実行する際の電流消費を分析し、それに基づいて行われる攻撃に対抗することができる強化された暗号プロトコルを提供する。【解決手段】第１の電子的エンティティＡと第２の電子的エンティティＢとの間で、あるメッセージＭを生成する。Ｍは、２つのエンティティＡ、Ｂによって処理されるが、攻撃を受けるエンティティＢでは、ＤＥＳとして知られる一連の操作が実行される。その結果生成される応答Ｒは、前記Ｍに適用されてＡによって実行される他の類似したプロセスの結果と比較される。Ｂが実行する処理は、所定の操作（Ｏ１，Ｏ２，Ｏ３…Ｏｎ）かあるいは補完された同一の操作（−Ｏ１，−Ｏ２，−Ｏ３…−Ｏｎ）である。その選択はランダムに行われる。【選択図】図２
2008067416.tif 000002
【特許請求の範囲】
【請求項１】
攻撃に曝される第１の電子的エンティティ（Ａ）と第２の電子的エンティティ（Ｂ）との間に暗号プロトコルを生成する方法であって、それによってなんらかのメッセージ（Ｍ）が生成され、それに基づいて一連の操作が前記第２のエンティティによって実行されて、その結果としての応答メッセージ（Ｒ）が生成され、その応答は前記メッセージに適用されて前記第１のエンティティによって実行される他の類似したプロセスの結果と比較される方法において、
少なくとも前記一連の操作のある段階において、前記第２のエンティティが選択されたタイプの操作（Ｏ１，Ｏ２，Ｏ３…Ｏｎ）かあるいは補完された同一の操作（−Ｏ１，−Ｏ２，−Ｏ３…−Ｏｎ）のいずれかを実行し、その選択はランダムな決定に依存するとともに、
前記応答は前記一連の最後の操作の結果によって構成され、可能であれば補完される
ことを特徴とする方法。
【請求項２】
補完することが可能な操作は排他的論理和として知られる操作であることを特徴とする請求項１に記載の方法。
【請求項３】
補完することが可能な操作は前記メッセージあるいは前記一連の操作を実行して得られる中間結果のビットの並べ換えという既知の操作であることを特徴とする請求項１又は２に記載の方法。
【請求項４】
補完することが可能な操作はテーブルへのインデックスされたアクセスとして知られる操作であることを特徴とする請求項１ないし３に記載の方法。
【請求項５】
補完することが可能な操作は排他的論理和関数の適用に関して安定な操作であることを特徴とする請求項１ないし４に記載の方法。
【請求項６】
補完することが可能な操作は前記メッセージあるいは前記一連の操作を実行中に得られる中間結果を格納空間の一のロケーションから他のロケーションへ移動することである請求項５に記載の方法。
【請求項７】
前記メッセージあるいは前記一連の操作におけるそれ以前の操作を実行して得られる中間結果を利用し、前記一連の操作の新しい操作に関連するランダムなパラメータ（Ｓ'ａ）の状態に応じてそのメッセージ又は中間結果にその新しい操作又は補完された同一の操作を適用し、補完カウンタ（Ｃｃ）を更新し、前記応答の最終的な構成について決定するために、前記一連の操作を実行完了した際このカウンタの状態を考慮する、先行するいずれか一の請求項に記載の方法。
【請求項８】
前記メッセージあるいは前記一連の操作におけるそれ以前の操作を実行して得られる中間結果を利用し、前記一連の操作の新しい操作に関連するランダムなパラメータ（Ｓ'ａ）の状態に応じてそのメッセージ又は中間結果にその新しい操作を適用し、前記中間結果の一部を構成するとともに、前記応答を最終的に構成するのに必要な情報を、操作から操作へと転送する、請求項１ないし６のいずれかに記載の方法。
【請求項９】
前記第２のエンティティには前記メッセージを処理するために２つの一連の操作（Ｃｈ１、Ｃｈ２）が規定されており、その一方は一連のデータ操作からなり、他方は前記一連の操作と補完的な操作及び最終的な補完（Ｃ）からなり、前記メッセージを受け取るごとに、前記２つの一連の操作のうちの一方をランダムに実行するように決定される、請求項１ないし６のいずれかに記載の方法。
【請求項１０】
前記一連の操作が実行される際に、前記操作を通常の態様で実行したときの操作の数と、補完を用いて実行したときの操作の数との差（ｄ）を計算し、前記の差が所定の値を超えたときに、その差を十分に減少させるため、そのポイントまで最小で利用されている（通常の、又は補完的な）モードにおいて、一定の数の操作を連続して実行するために、通常の態様で、あるいは補完的に操作を実行する決定に基づいてハザード（Ｓ'ａ）が除去される、先行する請求項のいずれかに記載の方法。
【請求項１１】
前記補完はバイト単位で実行されることを特徴とする先行する請求項のいずれかに記載の方法。
【請求項１２】
前記補完はビット単位で実行されることを特徴とする請求項１ないし１０のいずれかに記載の方法。
【請求項１３】
前記一連の操作におけるいくつかの連続した操作が交換可能であるときに、それらの実行の順序をランダムに並べ換えることを特徴とする先行する請求項のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つの電子的エンティティ間の暗号プロトコル実行方法に関する。エンティティの一つとして、例えば（ただし、これに限られないが）、スマートカードがある。特に、本発明は、「攻撃」（すなわち、動作中の機器の解析に基づいて不正手段を試みること。特に、不正手段を試みる者によってなされる暗号プロトコル実行中の電流消費の測定による。）を避けるための前記プロトコルの完全化に関する。
【背景技術】
【０００２】
ある暗号化された電子的エンティティ、特にマイクロ回路カードは、動作中におけるある一定のパラメータを解析することに基づいた攻撃に弱いということが知られている。カード内でなされる計算から情報は「漏れる」ことがあると言われている。典型的には、カードを持っている不正手段を試みる者によりなされる暗号プロトコルの実行である。このようなプロトコルの実行中に解析されるパラメータは、典型的には、計算の実行中の計算時間又は電磁放射の相違でありうるが、しかし、とりわけ、コードを破るための試みがなされようとする電子的エンティティによる電流消費であることがある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、従来の攻撃にあっては、不正手段を試みる者の手に落ちた電子的エンティティに、ランダムなメッセージに基づいてある一定数の暗号プロトコルを実行させるから、まず間違いなく失敗に終わるが、ＤＥＳ（Data Encryption Standard）の略称で知られる一連の操作をそのエンティティ、すなわちマイクロ回路カードが実行したごとの結果を得る。その場合、前記ＤＥＳを実行するごとの電流消費が解析される。この攻撃の目的は、前記エンティティの秘密コードを発見することである。ＤＥＳに関しては、これは有名なアルゴリズムであり、銀行のカードやアクセスコントロールカードの分野で現在広く使用されているものである。
【０００４】
例として、エンティティＡ（例えばサーバ）とエンティティＢ（例えばＤＥＳがプログラミングされているマイクロ回路カード）との間の通常の認証の枠組みにおいて、２つのエンティティ間の情報の交換は次のようになる。
【０００５】
‐  ＡとＢとが共通の鍵を持つことを仮定し、サーバＡが、カードＢにメッセージを送信するよう要求する。  
‐  Ｂがなんらかのメッセージを送信し、そのメッセージをメモリに記憶する。  
‐  Ａは鍵を使ってそのメッセージにＤＥＳを適用し、カードＢに結果を返す。  
‐  同時に、カードＢは、カードＢ自身の鍵を使って、カードＢがサーバＡに送信したメッセージにＤＥＳを適用する。カードＢは、サーバＡによって生成された結果と比較される結果を得る。２つの結果が同一であれば、認証が正当とされる。
【０００６】
さらに、不正のケース、すなわち、不正を行おうとする者がカードを持っており、鍵を決定しようとしている場合においては、不正を試みる者は自分がメッセージを発信することができるリーダにカードを接続して、さらにそのリーダを操作が実行されている間の電流消費を記録する手段に接続することができる。
【０００７】
これらの簡易な手段を基礎として、不正を試みる者は、サーバＡの代わりにカードに接続するシステムＦを作り上げる。
【０００８】
そのとき、その過程は以下の通りである。Ｆは、認証を開始する場合とまったく同様に、カードからのメッセージを要求する。Ｂはそのメッセージを送信する。Ｆは、Ｂが送信したメッセージをＤＥＳによって処理した結果と推定される他のメッセージをＢへ送信する。このメッセージは、もちろん正しくない。しかし、Ｂは、Ｂ自身の鍵を使用してＤＥＳを実行し、Ｆが送信した（正しくない）メッセージと比較するために、その結果を得ようとする。この比較結果は、必然的に否定的なものとなるが、不正を試みる者は、ＢにＤＥＳの実行を開始させることに成功したこととなる。前記ＤＥＳの実行中に、電流消費が検出され、保存される。
【０００９】
Ｆが、同様の条件の下で、カードＢによりある一定数のＤＥＳを実行させることができ、毎回電流消費を保存することが可能であれば、既知の原理による攻撃を実施することができる。この攻撃（「ＤＰＡ」（Differential Power Analysis）と呼ばれる。）は、エンティティＢの秘密鍵を再構築することを可能とする。
【００１０】
国際公開第ＷＯ９９／６３６９６号は、アルゴリズム実行中に「漏洩」を起こす可能性がある利用可能な情報を減らすことにより、このタイプの攻撃に対抗することを目的とする。そのために、特に、本文献は秘密鍵を発見するために必要なサイクルの数を増加させるべく、暗号プロトコルにハザードを導入することを示唆している。
【課題を解決するための手段】
【００１１】
本発明は、あるＤＥＳの操作をランダムに補完することにより「ＤＰＡ」タイプの攻撃を正確に回避する対策を提案する。
【００１２】
本発明は、特に、ＤＥＳを使用するエンティティに適用するが、以下に説明するように、後述する一定の性質を有する連続した操作を含むものであれば、ＤＥＳ以外の他のアルゴリズムを使用するエンティティ（マイクロ回路カード）にも適用することができる。
【００１３】
より詳細には、本発明は、攻撃に曝される第１の電子的エンティティと第２の電子的エンティティとの間に暗号プロトコルを生成する方法に係わり、それによってなんらかのメッセージが生成され、それに基づいて一連の操作が前記第２のエンティティによって実行されて、その結果としての応答メッセージが生成され、その応答は前記メッセージに適用されて前記第１のエンティティによって実行される他の類似したプロセスの結果と比較される方法において、少なくとも前記一連の操作のある段階において、前記第２のエンティティが選択されたタイプの操作かあるいは補完された同一の操作のいずれかを実行し、その選択はランダムな決定に依存するとともに、前記応答は前記一連の最後の操作の結果によって構成され、可能であれば補完されることを特徴とする。
【００１４】
この補完は、２つの１６進数００又はＦＦの一方と現在のバイトとの排他的論理和をランダムにとることによってバイト単位で実行されるか、あるいは現在のバイトの連続する８つのビットを一括して処理し、００からＦＦまでの１６進数の中から各ビットを処理するごとにランダムに選択された数との排他的論理和をとることによって、ビット単位で実行される。
【００１５】
補完が可能である操作としては、排他的論理和と呼ばれる操作、前記メッセージあるいは、前記一連の操作を実行する間に、すなわちここに記載の実施例によれば、ある一定のＤＥＳ操作を実行した後に得られる中間結果のビットの並べ換えが挙げられる。また、テーブルへのインデックスされたアクセスという操作や排他的論理和関数の適用と比較して安定な操作、特に、前記メッセージあるいは前記の中間結果を格納空間の一のロケーションから他のロケーションへ移動させる操作も挙げられる。
【００１６】
一つの可能な実施例によれば、前記第２のエンティティには前記メッセージを処理するために２つの一連の操作が規定されており、その一方の一連の操作は一連のデータ操作からなり、他方の一連の操作は前記一連の操作と補完的な操作及び最終的な補完からなり、前記第１のエンティティからの前記メッセージを受け取るごとに、前記２つの一連の操作のうちの一方をランダムに実行するように決定される。
【００１７】
他の実施例によると、好適であれば、本発明の方法では、前記メッセージ又は前記一連の操作の先行する操作を実行して得られる中間結果を利用し、それに前記一連の操作のあらたな操作又はその同じ操作を補完したものを、前記あらたな操作に関連するランダムなパラメータの状態に応じて適用し、補完カウンタを更新し、前記一連の操作を実行し終えた時点で、前記応答を最終的に生成することを決定するためにそのカウンタの状態を考慮する。
【００１８】
さらに他の有利な変形例によれば、本発明の方法は、前記メッセージ又は前記一連の操作の先行する操作を実行して得られる中間結果を利用し、それに前記一連の操作のあらたな操作又はその同じ操作を補完したものを、前記あらたな操作に関連するランダムなパラメータの状態に応じて適用し、前記応答を最終的に構成するのに必要な、前記中間結果の一部を形成する情報を、操作から操作へ転送する。
【００１９】
さらに、この方法が前記した攻撃に関して完全な効率を保つには、ＤＥＳ等を実行する際に、操作が正常なモードで実行される場合の回数と、操作が補完を伴って実行される場合の回数との差は、あまり大きなものであってはならないことが判明した。したがって、前記一連の操作が実行される間に、操作が正常なモードで実行された回数と、操作が補完を伴って実行された回数との差を計算するとともに、前記の差が所定の値を超えた場合に、その差を低減させるため、一定の数の連続した操作について、正常なモードあるいは補完モードで操作を実行するかの決定に基づいて、ハザードが削除されるという点でも、注目されるべきである。
【発明を実施するための最良の形態】
【００２０】
原理に基づき暗号プロトコルの実行方法を次に記述し、これにより、本発明の理解がより深まり、他の長所がより明白となる。本記述は、単に実施例であり、補足として図が参照される。なお、本明細書においては、ある操作ＯｎやメッセージＭなどの補完された操作Ｏｎバーや補完されたメッセージＭバー等につき、記載上の都合から、−Ｏｎあるいは−Ｍなどと表記するものとする。
【００２１】
図１を特に考察すると、２つの電子的エンティティＡ、Ｂ間の暗号プロトコルの生成方法が、これらのエンティティのうちの一つで実行されうる（図１には一部が図示されている。）。典型的には、後者Ｂが例えばサーバＡに接続されているときに、スマートカードＢにおいて実行されうる。本発明によるＤＥＳは、スマートカードＢにプログラムされている。後者はまた、ＤＥＳの実行中の一連の操作Ｏ１，Ｏ２，Ｏ３…Ｏｎのいくつかに介入することが可能な秘密鍵Ｋをメモリに含む。暗号プロトコルの生成中に、最初のエンティティ（典型的には、前記サーバＡ）は、２番目のエンティティ（カードＢ）に、あるメッセージＭを送信することを要求する。Ｂにより生成されたメッセージはなんらかのメッセージであり、カードＢのメモリに記憶される。Ａがこのメッセージを自らのＤＥＳで処理する間、カードＢは、サーバＡに送ったメッセージＭに、自らの鍵Ｋを使って、本発明によるＤＥＳを適用する。本例において、カードＢに適用されるＤＥＳは２つの連続する操作を含む。操作Ｏ１，Ｏ２，Ｏ３…Ｏｎからなる第一の一連の操作Ｃｈ１は、従来のＤＥＳに対応する。操作−Ｏ１，−Ｏ２，−Ｏ３…−Ｏｎからなる第２の一連の操作Ｃｈ２は、従来と同様の操作が同様に連続しているものであるが、補完されている。第２の一連の操作Ｃｈ２は、最後の補完された操作−Ｏｎの終了後に生成される結果の包括的な補完Ｃにより完了する。
【００２２】
さらに、前記のなんらかのメッセージの生成毎に２つの一連の操作のうちどちらを実行するかがランダムに決定される。このランダムな選択は、セレクタＳａという記号で表され、メッセージＭと２つの一連の操作の各々との間に置かれる。セレクタの位置決めはランダムであり、言い換えると、メッセージＭが処理されなければならないその度毎に、２つの一連の操作Ｃｈ１、Ｃｈ２のどちらかがランダムに選択される。
【００２３】
もし補完でない一連の操作が選択されたら、最後の操作Ｏｎにより得られる結果は、サーバＡにより生成されたものと比較される応答Ｒを構成する。補完である一連の操作が選択された場合には、最後の操作−Ｏｎの結果は補完され、応答Ｒを構成する。
【００２４】
図２に示される実施例には、本発明の原理にしたがいプログラミングされたＤＥＳが再び表される。すなわち、通常のＤＥＳ操作Ｏ１，Ｏ２，Ｏ３…Ｏｎ又は類似の補完された操作−Ｏ１，−Ｏ２，−Ｏ３…−Ｏｎを有している。メッセージそれ自身が補完されうる、すなわち、ＤＥＳの実行の開始において、Ｍがそのまま使われるか、又は、補完された形−Ｍで使用されるかである。鍵Ｋは、少なくとも一定の操作の実行のために使用される。しかし、操作の選択（すなわち、通常の操作と補完バージョンの選択）は、ある操作から次の操作へとランダムに決定される。言い換えると、メッセージＭ又は先行する操作Ｏｉ（又は−Ｏｉ）の実行から生ずる中間結果が使われ、新たな操作に関係するランダムなパラメータの状態に依存して、新たな一連の操作又はその補完のバージョン（すなわち、Ｏｉ＋１又は  −Ｏｉ＋１）のどちらかが適用される。このランダムパラメータは、セレクタＳ'ａによって生成される。そして、図２のパスを追うと以下のことがわかる。すなわち、メッセージＭ（そのままのＭであり、その補完−Ｍでない）が使われ（Ｓ'ａで生成されるコマンド１による）、操作−Ｏ１がコマンド２により選択され、それから、操作−Ｏ２がコマンド３により選択され、それから操作Ｏ３がコマンド４により選択され、最後に、コマンドｎによる操作−Ｏｎの選択で一連の操作の終了となる。この場合に、最後の操作−Ｏｎの結果は、エンティティＡが自分自身の鍵を使って生成するもう一つの結果と比較される結果Ｒ又は補完された結果−Ｒを構成しうる。Ｒと−Ｒの選択はセレクタＳ'ａによるプロセスの生成を通して供給される補完カウンタＣｃの状態により与えられる。言い換えると、補完カウンタＣｃにより、エンティティＡの計算と比較される応答の最終構成に対して、結果Ｒとその補完である結果−Ｒのうちどちらを妥当であるとすることが必要であるかを知ることが可能になる。
【００２５】
また、変形例によりカウンタＣｃを除去することが可能となることに注目すべきである。中間結果の一部を形成する情報であり、かつ、ＤＥＳ操作が補完の形式で実行されたときの回数を表す情報を一の操作から他の操作へ転送することで十分である。このケースにおいて、一の操作から他の操作へ転送される中間結果は、それ自身で、図２に示される実施例におけるカウンタＣｃにより最終的に与えられる情報と等価な情報を構成する。このケースにおいては、操作Ｏｎ又は−Ｏｎの実行により与えられる最終の中間結果は、補完される又は補完されないのどちらかであるが、この選択はそれ自身が持っている情報の一部に依存して決められる。応答Ｒの最終形態はこの結果から得られる。
【００２６】
図１又は図２に戻ると、セレクタＳａ又はＳ'ａは通常の方法で実行された操作の回数と補完の方法で実行された操作の回数の相違を計算するために使用されることに注目すべきである。この差ｄは保存され、操作毎に更新される。
【００２７】
この差が所定の値を超えるとき（このときに、ＤＰＡの攻撃に対しての本方法の効率が落ちる可能性がある。）には、Ｓ'ａを一時的に抑制する命令が生成される。言い換えると、通常の方法又は補完された方法で操作を実行する決定から、ハザードが除去される。これは、そのポイントまで最小で利用された（正常のモードあるいは補完されたモード）モードで、ある一定数の以後の操作を実行するためである。その差ｄの値が十分少なくなったときに、前記ハザードは再び利用されるようになる。
【００２８】
従来のＤＥＳの総ての操作が今述べた一又は他の変形例による実現を許すことがわかる。
【００２９】
例として、補完することが可能であり、したがって今述べた方法の実現とコンパチブルなある一定の操作について説明する。
【００３０】
補完が可能である操作としては、排他的論理和として知られている操作がある。
【００３１】
補完が可能であるもう一つの操作は、メッセージＭあるいは、一連の操作を実行する間に得られる中間結果のビットの並べ換えとして知られた操作である。並べ換え（単純、圧縮、又は拡張）に対しては、並べ換えられたマスクをメモリに保存しておくと好都合である。
【００３２】
補完が可能であるもう一つの操作は、テーブルへのインデックスされたアクセスとして知られる操作である。
【００３３】
補完が可能であるもう一つの操作は、メッセージあるいは一連の操作の実行中に得られる中間結果をエンティティＢ内に定義される格納空間の一のロケーションから他のロケーションへ移動させる操作である。実際には、マスクは、排他的論理和によりランダムに移動するデータへ適用される。
【００３４】
より一般的には、補完が可能である操作は排他的論理和の適用に関して安定な操作である。すなわち、
【数１】
2008067416.tif 000003
【００３５】
のような操作である。これは、データの並べ換えや移動のケースである。（他のケースもある。）
【００３６】
既述のように、従来のＤＥＳは既に定義した基準を満たす操作からなるが、本発明も、また、上記で与えられる条件を満たす操作から構成されるなら、ＤＥＳの機能に類似の機能を実行するあらゆるアルゴリズムに適応する。
【００３７】
ランダムな性質を持つ他の操作は上で述べられた方法を定義している操作と結合させることができる。特に、いくつかの連続する操作が交換可能であるとき、ランダムに実行の順序を並べ換えることが可能である。
【図面の簡単な説明】
【００３８】
【図１】暗号プロトコルの実行、より詳しくは本発明によってプログラムされたＤＥＳの実行の一部を示す図である。
【図２】本発明によるＤＥＳを実行する他の方法を例示する図である。
【符号の説明】
【００３９】
Ａ    サーバ（第１の電子的エンティティ）
Ｂ    スマートカード（第２の電子的エンティティ）
ＣＣ  補完カウンタ
Ｋ    秘密鍵
Ｍ    メッセージ
Ｏｎ    操作
−Ｏｎ  補完された操作Ｏｎ
Ｒ    応答
Ｓａ、Ｓ'ａ  セレクタ
【図１】
2008067416.tif 000004
【図２】
2008067416.tif 000005
【手続補正書】
【提出日】平成19年11月28日(2007.11.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバエンティティとマイクロ回路エンティティ間での認証用暗号プロトコルの実行方法であって、前記認証用暗号プロトコルを実行している際に前記マイクロ回路エンティティへのDPA攻撃に抵抗するための方法であり、
−  前記サーバエンティティと前記マイクロ回路エンティティの両方に第一の一連の操作を含むDESを記憶するステップ；
−  前記サーバエンティティと前記マイクロ回路エンティティ間でメッセージを交換させるステップ；
−  サーバ結果を得るべく、前記サーバエンティティが、当該サーバエンティティに記憶されている前記第一の一連の操作を前記メッセージに適用するステップ；
−  前記マイクロ回路エンティティが、当該マイクロ回路エンティティに記憶されている前記第一の一連の操作から第二の一連の操作を決定するステップ、ここで、
(i)前記第二の一連の操作は、連続した複数の操作を含み、
(ii)当該複数の操作は、それぞれ、前記第一の一連の操作における対応する操作に相当し、
(iii)前記第二の一連の操作における各操作は、前記第一の一連の操作における対応する操作と同じ状態にある操作か、あるいは、当該対応する操作の補完された状態の操作であり、
(iv)前記マイクロ回路エンティティが前記第一の一連の操作から第二の一連の操作を決定する前記ステップは、前記第一の一連の操作における対応する部分に相当する、前記第二の一連の操作の少なくとも一部分として、前記第一の一連の操作のうちの当該少なくとも一部分を、
・前記第一の一連の操作と同じ状態か、あるいは
・前記第一の一連の操作の補完された状態
のどちらかでランダムに選択するステップを含み、
(v)前記マイクロ回路エンティティが前記第二の一連の操作を決定する前記ステップは、
・前記第二の一連の操作のうちの少なくとも幾つかの操作を、前記第一の一連の操作における対応する操作と同じ状態とし、
・前記第二の一連の操作のうちのその他の操作を、前記第一の一連の操作における対応する操作に対して補完された状態とする
ものである； 
−  前記マイクロ回路エンティティが前記第二の一連の操作を前記メッセージに適用して、適用した結果としての適用結果メッセージを得るステップ、ここで、
前記マイクロ回路エンティティが前記第二の一連の操作を適用する前記ステップは、前記マイクロ回路エンティティが前記第二の一連の操作を決定する前記ステップに応じて、前記第二の一連の操作のうちの最終操作の結果を、
・同じ状態か、あるいは
・補完された状態
のどちらかで、当該適用結果メッセージとして出力することを選択するステップを含む；及び
−  前記第二の一連の操作から得られた前記適用結果メッセージを前記サーバ結果と比較して、前記サーバ結果と前記適用結果メッセージとが一致する場合に、前記サーバエンティティと前記マイクロ回路エンティティ間での認証を有効にするステップ
を備える方法。
【請求項２】
前記第二の一連の操作の前記少なくとも一部分に相当する前記第一の一連の操作の前記対応する部分は、排他的論理和関数を備える、請求項１に記載の方法。
【請求項３】
前記第二の一連の操作の前記少なくとも一部分に相当する前記第一の一連の操作の前記対応する部分は、中間結果のビットの並び換え操作を備え、
前記中間結果は、当該ビットの並び換え操作に先行する前記第二の一連の操作の操作を実行することによって得られるものである、請求項１に記載の方法。
【請求項４】
前記第二の一連の操作の前記少なくとも一部分に相当する前記第一の一連の操作の前記対応する部分は、テーブルへのインデックスされたアクセス操作を備える、請求項１に記載の方法。
【請求項５】
前記第二の一連の操作の前記少なくとも一部分に相当する前記第一の一連の操作の前記対応する部分は、排他的論理和関数の適用に関して安定な操作を備える、請求項１に記載の方法。
【請求項６】
前記第二の一連の操作の前記少なくとも一部分に相当する前記第一の一連の操作の前記対応する部分は、格納空間の一のロケーションから他のロケーションへ中間結果を移動させる操作であり、
当該中間結果は、当該移動操作に先行する前記第二の一連の操作の操作を実行することによって得られるものである、請求項５に記載の方法。
【請求項７】
前記ランダムに選択するステップは、
前記第一の一連の操作のうちの連続した幾つかの部分を特定することと、
前記第一の一連の操作のうちの前記連続した幾つかの部分の各部分について、当該部分を、通常の状態か、あるいは補完された状態のどちらかでランダムに選択することと
を備える、請求項１に記載の方法。
【請求項８】
前記ランダムに選択するステップは、
前記第一の一連の操作のうちの連続した幾つかの操作を特定することと、
前記第一の一連の操作のうちの前記連続した操作の各操作について、当該操作を、通常の状態か、あるいは補完された状態のどちらかでランダムに選択することを備える、請求項１に記載の方法。
【請求項９】
前記ランダムに選択するステップは、前記第一の一連の操作のうちの前記連続した幾つかの部分の各部分について生成されたランダムなパラメータの状態に依って実行され、
前記ランダムに選択するステップは、補完カウンタを更新することを含み、
前記最終操作の結果を同じ状態または補完された状態で前記適用結果メッセージとして出力することを選択する前記ステップは、前記補完カウンタの状態により決定される、請求項７に記載の方法。
【請求項１０】
前記ランダムに選択するステップは、前記第一の一連の操作のうちの前記連続した幾つかの部分の各部分について生成されたランダムなパラメータの状態に依って実行され、
前記ランダムに選択するステップは、前記第一の一連の操作のうちの前記連続した幾つかの部分の各部分について、前記最終操作の結果を同じ状態または補完された状態で前記適用結果メッセージとして出力することを選択する前記ステップにて使用するための情報を送信することを含む、請求項７に記載の方法。
【請求項１１】
前記ランダムに選択するステップは、前記第二の一連の操作のうちの各操作が前記第一の一連の操作の各操作と同じ状態にある回数と、前記第二の一連の操作のうちの各操作が前記第一の一連の操作の各操作に対して補完された状態にある回数との差に等しいパラメータを計算するステップを含み、
この差が所定の閾値を超えた場合に、この差を減少させるべく、前記連続した幾つかの部分のうちの次の部分を通常の状態または補完された状態でランダムに選択する前記ステップが実行される、請求項７に記載の方法。
【請求項１２】
前記第二の一連の操作の前記少なくとも一部分に相当する前記第一の一連の操作の前記対応する部分の前記補完された状態は、バイトごとの補完によって得られる、請求項１に記載の方法。
【請求項１３】
前記第二の一連の操作の前記少なくとも一部分に相当する前記第一の一連の操作の前記対応する部分の前記補完された状態は、ビットごとの補完によって得られる、請求項１に記載の方法。
【請求項１４】
前記マイクロ回路エンティティが前記第二の一連の操作を決定する前記ステップは、前記第一の一連の操作のうちの連続した可換な操作の順序を決定するステップをさらに含む、請求項１に記載の方法。
【請求項１５】
連続した可換な操作の前記順序を決定する前記ステップは、ランダムに実行される、請求項１４に記載の方法。
【請求項１６】
前記ランダムに選択するステップは、前記第一の一連の操作のうちの前記連続した幾つかの操作の各操作について生成されたランダムなパラメータの状態に依って実行され、
前記ランダムに選択するステップは、補完カウンタを更新することを含み、
前記最終操作の結果を同じ状態または補完された状態で前記適用結果メッセージとして出力することを選択する前記ステップは、前記補完カウンタの状態により決定される、請求項８に記載の方法。
【請求項１７】
前記ランダムに選択するステップは、前記第一の一連の操作のうちの前記連続した幾つかの操作の各操作について生成されたランダムなパラメータの状態に依って実行され、
前記ランダムに選択するステップは、前記第一の一連の操作のうちの前記連続した幾つかの操作の各操作について、前記最終操作の結果を同じ状態または補完された状態で前記適用結果メッセージとして出力することを選択する前記ステップにて使用するための情報を送信することを含む、請求項８に記載の方法。
【請求項１８】
前記ランダムに選択するステップは、前記第二の一連の操作のうちの各操作が前記第一の一連の操作の各操作と同じ状態にある回数と、前記第二の一連の操作のうちの各操作が前記第一の一連の操作の各操作に対して補完された状態にある回数との差に等しいパラメータを計算するステップを含み、
この差が所定の閾値を超えた場合に、この差を減少させるべく、前記第二の一連の操作のうちの次の操作を通常の状態または補完された状態でランダムに選択する前記ステップが実行される、請求項８に記載の方法。
【請求項１９】
サーバエンティティとマイクロ回路エンティティ間での認証用暗号プロトコルの実行方法であって、前記認証用暗号プロトコルを実行している際に前記マイクロ回路エンティティへのDPA攻撃に抵抗するための方法であり、
−  前記サーバエンティティと前記マイクロ回路エンティティの両方に第一の一連の操作を含むDESを記憶するステップ；
−  前記サーバエンティティと前記マイクロ回路エンティティ間でメッセージを交換させるステップ；
−  サーバ結果を得るべく、前記サーバエンティティが、当該サーバエンティティに記憶されている前記第一の一連の操作を前記メッセージに適用するステップ；
−  前記マイクロ回路エンティティが、当該マイクロ回路エンティティに記憶されている前記第一の一連の操作から第二の一連の操作を決定するステップ、ここで、
(i)前記第二の一連の操作は、連続した複数の操作を含み、
(ii)当該複数の操作は、それぞれ、前記第一の一連の操作における対応する操作に相当し、
(iii)前記第二の一連の操作における各操作は、前記第一の一連の操作における対応する操作と同じ状態にある操作か、あるいは、当該対応する操作の補完された状態の操作であり、
(iv)前記マイクロ回路エンティティが前記第一の一連の操作から第二の一連の操作を決定する前記ステップは、
・前記第一の一連の操作と同じ状態にある前記第一の一連の操作の全体、あるいは
・最終的な補完ステップが選択的に後続する、補完された状態にある前記第一の一連の操作の全体
のどちらかをランダムに選択するステップを含む；
−  前記マイクロ回路エンティティが前記第二の一連の操作を前記メッセージに適用して、適用した結果としての適用結果メッセージを得るステップ；及び
−  前記第二の一連の操作から得られた前記適用結果メッセージを前記サーバ結果と比較して、前記サーバ結果と前記適用結果メッセージとが一致する場合に、前記サーバエンティティと前記マイクロ回路エンティティ間での認証を有効にするステップ
を備える方法。
【請求項２０】
前記ランダムに選択するステップは、前記第一の一連の操作のうちの各操作が通常状態にあった回数と、前記第一の一連の操作のうちの各操作が補完された状態にあった回数との差であるパラメータを計算することを含み、
この差が所定の閾値を超えた場合に、この差を減少させるべく、次の前記第二の一連の操作を通常の状態または補完された状態でランダムに選択する前記ステップが実行される、請求項１９に記載の方法。
【請求項２１】
サーバエンティティとマイクロ回路エンティティ間での認証用暗号プロトコルの実行方法であって、前記認証用暗号プロトコルを実行している際に前記マイクロ回路エンティティへのDPA攻撃に抵抗するための方法であり、
−  前記サーバエンティティと前記マイクロ回路エンティティの両方に一連の操作を含むDESを記憶するステップ、ここで、当該一連の操作における各操作は、通常の状態と、補完された状態とを有する；
−  前記サーバエンティティと前記マイクロ回路エンティティ間でメッセージを交換させるステップ；
−  サーバ結果を得るべく、前記サーバエンティティが、当該サーバエンティティに記憶されている前記一連の操作の全操作を前記メッセージに適用するステップ；
−  前記マイクロ回路エンティティが、
・当該マイクロ回路エンティティに記憶されている前記一連の操作のうちの複数の操作からなる少なくとも一のサブグループ中の各操作について、当該操作をその通常の状態またはその補完された状態で適用することをランダムに選択しつつ、
・当該マイクロ回路エンティティに記憶されている当該一連の操作の全操作を前記メッセージに適用する
ステップ、ここで、
前記マイクロ回路エンティティが前記一連の操作を適用する前記ステップは、
・前記一連の操作のうちの幾つかの操作を、その通常の状態で適用し、
・前記一連の操作のうちの他の操作を、その補完された状態で適用する
ものである； 
−  前記マイクロ回路エンティティが前記一連の操作の全操作を適用する前記ステップに応じて、前記マイクロ回路エンティティが、前記一連の操作のうちの最終操作の結果を
・その通常の状態か、あるいは
・その補完された状態
のどちらかで、適用結果メッセージとして出力することを選択するステップ；及び
−  前記マイクロ回路エンティティから得られた前記適用結果メッセージを前記サーバ結果と比較して、前記サーバ結果と前記適用結果メッセージとが一致する場合に、前記サーバエンティティと前記マイクロ回路エンティティ間での認証を有効にするステップ
を備える方法。