(57)【特許請求の範囲】
【請求項１】
第１の電子デバイス（ＥＤ２）における、第１の計算手段（ＣＭ１）と、第２の計算手段（ＣＭ２）と、比較手段（ＣＭ３）と、制御手段（ＣＭ４）とを備える制御デバイス（ＣＤ）が実行する方法であり、第１の電子デバイス（ＥＤ２）によって第２の電子デバイスからメッセージと共に受信され、少なくとも１つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへの適用の結果である、コードの真正性を制御するための方法において、
（ｉ）第１の電子デバイスによって、第２の電子デバイスから前記メッセージとコードとを受信するステップと、
（ｉｉ）第１の結果を決定するために、第１の計算手段（ＣＭ１）によって、前記受信されたメッセージに、開始ステップから選択された中間ステップまで、前記所定の鍵を用いて前記全単射アルゴリズムを部分的に適用するステップと、
（ｉｉｉ）第２の結果を決定するために、第２の計算手段（ＣＭ２）によって、前記受信されたメッセージを使用すると同時に、前記受信されたコードに、終了ステップから選択された前記中間ステップまで、前記所定の鍵を用いて前記全単射アルゴリズムを逆の方法で部分的に適用するステップと、
（ｉｖ）比較手段（ＣＭ３）によって、前記第１および第２の結果を比較して、前記第１および第２の結果が同一の場合には、前記受信されたコードが真正であるとみなすステップとを含むことを特徴とする方法。
【請求項２】
前記中間ステップの選択が、全単射アルゴリズムの１つの適用から別のものまで変化することを特徴とする、請求項１に記載の方法。
【請求項３】
前記中間ステップの選択が、全単射アルゴリズムの１つの適用から別のものまでランダムに変化することを特徴とする、請求項２に記載の方法。
【請求項４】
前記全単射アルゴリズムが、前記受信されたメッセージの分割から生じるデータのＮ個のブロックにそれぞれ適用される、Ｎ個の連続部分を含み、第１のアルゴリズム部分が、第１のブロックを所定の値と組み合わせることを含み、後続の各アルゴリズム部分が、後続のブロックを、先行するブロックへの先行するアルゴリズム部分の適用の結果と組み合わせることを含み、前記方法はさらに、
制御手段（ＣＭ４）によって、ステップ（ｉ）での前記受信されたメッセージをＮ個の連続するブロックに分割することと、
制御手段（ＣＭ４）によって、中間ステップとしてｎ番目のアルゴリズム部分の終了を選択することによって中間ステップを規定することと、
第１の計算手段（ＣＭ１）によって、前記第１のアルゴリズム部分から前記中間ステップまで、前記全単射アルゴリズムを実行することとを含むことを特徴とする、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記全単射アルゴリズムが、前記受信されたメッセージの分割から生じるデータのＮ個のブロックにそれぞれ適用される、Ｎ個の連続部分を含み、各アルゴリズム部分が、複数のサブ部分を含み、第１のアルゴリズム部分が、第１のブロックを所定の値と組み合わせることを含み、後続の各アルゴリズム部分が、後続のブロックを、先行するブロックへの先行するアルゴリズム部分の適用の結果と組み合わせることを含み、前記方法はさらに、
制御手段（ＣＭ４）によって、ステップ（ｉ）での前記受信されたメッセージをＮ個の連続するブロックに分割することと、
制御手段（ＣＭ４）によって、前記中間ステップとしてｎ番目のアルゴリズム部分の中間サブ部分を選択することによって中間ステップを規定することと、
第１の計算手段（ＣＭ１）によって、前記第１のアルゴリズム部分から前記中間ステップまで、前記全単射アルゴリズムを実行することとを含むことを特徴とする、請求項１から３のいずれか一項に記載の方法。
【請求項６】
ステップ（ｉｉ）および（ｉｉｉ）で、Ｎ番目のものとは異なる各アルゴリズム部分において、所定の鍵の第１の部分を用いて、暗号化または暗号アルゴリズムあるいは前記暗号化または暗号アルゴリズムの逆バージョンのみを、適用することを含み、ステップ（ｉｉｉ）で、第１の中間結果を得るため、前記受信されたコードに、所定の鍵の前記第１の部分を用いて前記暗号化または暗号アルゴリズムの前記逆バージョンを最初に適用し、次に、第２の中間結果を得るため、前記第１の中間結果に、前記所定の鍵の第２の部分を用いて前記暗号化または暗号アルゴリズムを適用し、それから、第３の中間結果を得るため、前記第２の中間結果に、所定の鍵の前記第１の部分を用いて暗号化または暗号アルゴリズムの前記逆バージョンを再び適用し、最後に、Ｎ番目のアルゴリズム部分の逆バージョンの結果を得るため、前記第３の中間結果から前記受信されたメッセージのデータの前記Ｎ番目のブロックを分離することを含むことを特徴とする、請求項４または５に記載の方法。
【請求項７】
前記暗号化または暗号アルゴリズムが、少なくとも単純なデータ暗号化標準アルゴリズム、トリプルデータ暗号化標準アルゴリズム、高度暗号化標準アルゴリズム、およびＲＳＡアルゴリズムを含むグループから選択されることを特徴とする、請求項６に記載の方法。
【請求項８】
第１の電子デバイス（ＥＤ２）によって第２の電子デバイスからメッセージと共に受信され、少なくとも１つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへの適用の結果である、コードの真正性を制御するための制御デバイス（ＣＤ）であって、（ｉ）第１の電子デバイスによって、第２の電子デバイスから前記メッセージとコードとを受信するための受信手段と、（ｉｉ）第１の結果を決定するため、前記受信されたメッセージに、開始ステップから選択された中間ステップまで、前記所定の鍵を用いて前記全単射アルゴリズムを部分的に適用するように構成された第１の計算手段（ＣＭ１）と、（ｉｉｉ）第２の結果を得るために、前記受信されたメッセージを使用すると同時に、前記受信されたコードに、終了ステップから選択された前記中間ステップまで、前記所定の鍵を用いて前記全単射アルゴリズムを逆の方法で部分的に適用するように構成された第２の計算手段（ＣＭ２）と、（ｉｖ）前記第１および第２の結果を比較し、前記第１および第２の結果が同一の場合には、前記受信されたコードの真正性を示す情報を出力するように構成された比較手段（ＣＭ３）とを備えることを特徴とする制御デバイス（ＣＤ）。
【請求項９】
全単射アルゴリズムの１つの適用から別のものまで前記中間ステップの選択を変化させるように構成された制御手段（ＣＭ４）を備えることを特徴とする、請求項８に記載の制御デバイス。
【請求項１０】
前記制御手段（ＣＭ４）が、全単射アルゴリズムの１つの適用から別のものまで前記中間ステップの選択をランダムに変化させるように構成されることを特徴とする、請求項９に記載の制御デバイス。
【請求項１１】
前記受信されたメッセージをデータのＮ個のブロックに分割し、ここで、前記全単射アルゴリズムが、前記受信されたメッセージの分割から生じるデータのＮ個のブロックにそれぞれ適用される、Ｎ個の連続部分を含み、第１のアルゴリズム部分が、第１のブロックを所定の値と組み合わせることを含み、後続の各アルゴリズム部分が、後続のブロックを、先行するブロックへの先行するアルゴリズム部分の適用の結果と組み合わせることを含み、
中間ステップとしてｎ番目のアルゴリズム部分の終了を選択し、
前記第１のアルゴリズム部分から前記中間ステップまで、前記全単射アルゴリズムを実行するように構成された制御手段（ＣＭ４）を備えることを特徴とする、請求項８から１０のいずれか一項に記載の制御デバイス。
【請求項１２】
前記受信されたメッセージをデータのＮ個のブロックに分割し、ここで、前記全単射アルゴリズムが、前記受信されたメッセージの分割から生じるデータのＮ個のブロックにそれぞれ適用される、Ｎ個の連続部分を含み、各アルゴリズム部分が、複数のサブ部分を含み、第１のアルゴリズム部分が、第１のブロックを所定の値と組み合わせることを含み、後続の各アルゴリズム部分が、後続のブロックを、先行するブロックへの先行するアルゴリズム部分の適用の結果と組み合わせることを含み、
中間ステップとしてｎ番目のアルゴリズム部分の中間サブ部分を選択し、
前記第１のアルゴリズム部分から前記中間ステップまで、前記全単射アルゴリズムを実行するように構成された制御手段（ＣＭ４）を備えることを特徴とする、請求項８から１０のいずれか一項に記載の制御デバイス。
【請求項１３】
前記第１（ＣＭ１）および第２（ＣＭ２）の計算手段は、Ｎ番目のものとは異なる各アルゴリズム部分において、所定の鍵の第１の部分を用いて、暗号化または暗号アルゴリズムあるいは前記暗号化または暗号アルゴリズムの逆バージョンのみを、適用するように構成され、前記第２の計算手段（ＣＭ２）は、第１の中間結果を得るため、前記受信されたコードに、所定の鍵の前記第１の部分を用いて前記暗号化または暗号アルゴリズムの前記逆バージョンを適用し、次に、第２の中間結果を得るため、前記第１の中間結果に、前記所定の鍵の第２の部分を用いて前記暗号化または暗号アルゴリズムを適用し、それから、第３の中間結果を得るため、前記第２の中間結果に、所定の鍵の前記第１の部分を用いて暗号化または暗号アルゴリズムの前記逆バージョンを再び適用し、最後に、Ｎ番目のアルゴリズム部分の逆バージョンの結果を得るため、前記第３の中間結果から前記受信されたメッセージのデータの前記Ｎ番目のブロックを分離するように構成されることを特徴とする、請求項１１または１２に記載の制御デバイス。
【請求項１４】
前記暗号化または暗号アルゴリズムが、少なくとも単純なデータ暗号化標準アルゴリズム、トリプルデータ暗号化標準アルゴリズム、高度暗号化標準アルゴリズム、およびＲＳＡアルゴリズムを含むグループから選択されることを特徴とする、請求項１３に記載の制御デバイス。
【請求項１５】
請求項８から１４のいずれか一項に記載の制御デバイス（ＣＤ）を備え、前記電子デバイスが少なくともスマートカード、メモリカードリーダ、通信デバイス、およびポータブルメモリ手段を含むグループから選択されることを特徴とする、電子デバイス（ＥＤ２）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証されて受信したメッセージを使用する電子デバイスまたは製品に関し、より正確には、受信したメッセージに関連付けられたコードの制御の認証に関するものである。
【背景技術】
【０００２】
当業者に知られているように、いくつかの電子デバイスは、例えば、機能および／または権利（アクセスまたはクレジットなど）を制御するために、他の電子デバイスに送信されるように意図されたメッセージを生成する。非承認メッセージを送信するための非承認の電子デバイスを避けるため、送信する前に、全単射アルゴリズムが、少なくとも１つの所定の鍵を用いて、このメッセージに適用され得る。この全単射アルゴリズムは、順次、例えばメッセージの分割によるデータのＮ個のブロックに、適用される暗号化または暗号アルゴリズムを含み得る。
【０００３】
この適用の結果は、一般的に、ＭＡＣ（「メッセージ認証コード」）と呼ばれているコードである。このコードと関連したメッセージが関係している電子デバイスに送信される。この受信されたコードを認証するため、電子デバイスは参照コードを得るために受信したメッセージに、同じ所定の鍵を用いて同じ全単射アルゴリズムを適用する。この参照コードが受信されたコードと同一である場合、後者は真正であるとみなされ、メッセージは使用され得るが、そうでない場合は、メッセージは拒否される。
【０００４】
あいにく、このような全単射アルゴリズムは、使用する各所定の鍵を得るために攻撃者によって攻撃され、承認された任意のメッセージを送信することが可能になり得る。そのために、この攻撃者は、電子デバイスに、異なるコードを含む同じメッセージを連続して送信し、受信したコードとそれぞれ比較する必要がある参照コードを計算させることができ、それから、これらの連続比較から、および攻撃を受けた電子デバイスに生じる物理的効果の変動からそれぞれ所定の鍵を推測し得る。いくつかの内部動作またはプロセスが、例えば、特定の消費電力、特定の温度または特定の電磁相互作用のような特性的な物理効果によって認識され得ることが想起される。
【０００５】
消費電力解析に基づく攻撃は、（一般にＤＰＡ（「差分電力解析」）と呼ばれる）全単射アルゴリズムのステップを開始または全単射アルゴリズムのステップを終了する際のいずれかで行われ得る。（一般的には「開始によるＤＰＡ」と呼ばれる）最初のものは、例えば、特定の対策でブロックすることは比較的容易である。（一般的には「終了によるＤＰＡ」と呼ばれる）第２のものは、ブロックすることがより困難である。それらは、攻撃者が攻撃される電子デバイスによって受信されたコード（または送信されたＭＡＣ）を知っている時、攻撃者は全単射アルゴリズムに使用される暗号化または暗号アルゴリズムの適用の結果を知ることが可能になるので、実行され得る。この第２のタイプの攻撃は、計算された参照コードが受信されたコード（または送信されたＭＡＣ）と、バイトごとに比較される事実によって容易化される。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明の目的は、参照コードを計算することなく受信されたコードを認証することによって、少なくとも部分的に、上述の欠点を克服することである。
【課題を解決するための手段】
【０００７】
より正確には、本発明は、電子デバイスによってメッセージと共に受信され、少なくとも１つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへの適用の結果である、コードの真正性を制御するための方法を提供し、次のステップを含んでいる。
（ｉ）第１の結果を得るために、受信されたメッセージに、開始ステップから選択された中間ステップまで、この所定の鍵を用いてこの全単射アルゴリズムを部分的に適用すること、
（ｉｉ）第２の結果を得るために、受信されたメッセージを使用すると同時に、受信されたコードに、終了ステップからこの選択された中間ステップまで、この所定の鍵を用いてこの全単射アルゴリズムを逆の方法で部分的に適用すること、
（ｉｉｉ）これらの第１および第２の結果が同一である場合は、受信されたコードが真正であるとみなすことである。
【０００８】
本発明による制御方法には、別個または組み合わせて、考慮される追加の特徴を含み得、特に次のとおりである。
【０００９】
−  中間ステップは、可能ならランダムに、１つの適用から別のものまで変化し得る；
−  全単射アルゴリズムが、受信されたメッセージの分割の結果であってそれぞれが前のブロックに前のアルゴリズム部分を適用した結果と組み合わされたデータのＮ個のブロックに、それぞれ適用されなければならないＮ個の連続部分を含む場合、ステップ（ｉ）で受信されたメッセージの分割に最初に進み、中間ステップとして、ｎ番目のアルゴリズム部分の終了を選択する場合もあれば、または変形形態では、中間ステップとして、ｎ番目のアルゴリズム部分の中間サブ部分を選択する場合もある；
ステップ（ｉ）および（ｉｉ）で、Ｎ番目のものとは異なる各アルゴリズム部分において、所定の鍵の第１の部分を用いて、暗号化または暗号アルゴリズムあるいはこの暗号化または暗号アルゴリズムの逆バージョンのみを、適用し得る。この場合、ステップ（ｉｉ）で、まず、第１の中間結果を得るため、受信されたコードに、所定の鍵の第１の部分を用いて暗号化または暗号アルゴリズムの逆バージョンを適用し得、次に、第２の中間結果を得るため、第１の中間結果に、所定の鍵の第２の部分を用いて暗号化または暗号アルゴリズムを適用し得、それから、第３の中間結果を得るため、第２の中間結果に、所定の鍵の第１の部分を用いて暗号化または暗号アルゴリズムの逆バージョンを再び適用し得、最後に、Ｎ番目のアルゴリズム部分の逆バージョンの結果を得るため、第３の中間結果から受信されたメッセージのデータのＮ番目のブロックを分離し得る；
−  暗号化または暗号アルゴリズムは、少なくとも単純なデータ暗号化標準アルゴリズム（ＤＥＳ）、トリプルデータ暗号化標準アルゴリズム（ＴＤＥＳ）、高度暗号化標準アルゴリズム（ＡＥＳ）、およびＲＳＡアルゴリズム（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ（リベスト  シャミア  エーデルマン））を含むグループから選択され得る。
【００１０】
本発明はさらに、電子デバイスによってメッセージと共に受信され、少なくとも１つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへ適用結果である、コードの真正性を制御することを意図した、制御デバイスも提供し、次を含んでいる。
【００１１】
−  第１の結果を得るため、受信されたメッセージに、開始ステップから選択された中間ステップまで、この所定の鍵を用いてこの全単射アルゴリズムを部分的に適用するように構成された第１の計算手段、
−  第２の結果を得るために、受信されたメッセージを使用すると同時に、受信されたコードに、終了ステップから選択された中間ステップまで、所定の鍵を用いて全単射アルゴリズムを逆の方法で部分的に適用するように構成された第２の計算手段、
−  これらの第１および第２の結果を比較し、第１および第２の結果が同一である場合には、受信されたコードの真正性を示す情報を出力するように構成された比較手段。
【００１２】
本発明による制御デバイスには、別個または組み合わせて、考慮される追加の特徴を含み得、特に次のとおりである。
【００１３】
−  可能ならランダムに、１つの適用から別のものまで中間ステップを変化させるように構成された制御手段を備え得る;
−  全単射アルゴリズムが、受信されたメッセージの分割の結果であってそれぞれが前のブロックに前のアルゴリズム部分を適用した結果と組み合わされたデータのＮ個のブロックに、それぞれ適用されなければならないＮ個の連続部分を含む場合、受信されたメッセージをデータのＮ個のブロックに分割し、中間ステップとして、ｎ番目のアルゴリズム部分の終了を選択するか、または変形形態では、中間ステップとして、ｎ番目のアルゴリズム部分の中間サブ部分を選択するように構成された制御手段を備え得る；
第１および第２の計算手段は、Ｎ番目のものとは異なる各アルゴリズム部分において、所定の鍵の第１の部分を用いて、暗号化または暗号アルゴリズムあるいはこの暗号化または暗号アルゴリズムの逆バージョンのみを、適用するように構成され得る。この場合、第２の計算手段は、第１の中間結果を得るため、受信されたコードに、所定の鍵の第１の部分を用いて暗号化または暗号アルゴリズムの逆バージョンを適用し、次に、第２の中間結果を得るため、第１の中間結果に、所定の鍵の第２の部分を用いて暗号化または暗号アルゴリズムを適用し、それから、第３の中間結果を得るため、第２の中間結果に、所定の鍵の第１の部分を用いて暗号化または暗号アルゴリズムの逆バージョンを再び適用し、最後に、Ｎ番目のアルゴリズム部分の逆バージョンの結果を得るため、第３の中間結果から受信されたメッセージのデータのＮ番目のブロックを分離するようにさらに構成され得る；
−  暗号化または暗号アルゴリズムは、少なくとも単純なデータ暗号化標準アルゴリズム（ＤＥＳ）、トリプルデータ暗号化標準アルゴリズム（ＴＤＥＳ）、高度暗号化標準アルゴリズム（ＡＥＳ）、およびＲＳＡアルゴリズム（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ（リベスト  シャミア  エーデルマン））を含むグループから選択され得る。
【００１４】
本発明はさらに、上記で導入されたような制御デバイスを備える電子デバイスも提供する。
【００１５】
この電子デバイスは、少なくともスマートカード、メモリカードリーダ、通信デバイス、およびポータブルメモリ手段を含むグループから選択され得る。
【００１６】
本発明の他の特徴および利点は、以下の詳細な仕様および添付の図面を調べることで明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】本発明による制御デバイスを備え、マイクロプロセッサを有する第３の電子デバイスを備える第２の電子デバイスに結合された第１の電子デバイスを概略的かつ機能的に例示する図である。
【図２】本発明に従う制御デバイスによって実施された制御方法で使用され得るアルゴリズムの一例を概略的かつ機能的に例示する図である。
【発明を実施するための形態】
【００１８】
添付の図面は、本発明を完成するだけでなく、必要に応じて、その定義に寄与するために機能し得る。
【００１９】
本発明は、特に、電子デバイスによって関連するメッセージと共に受信され、少なくとも１つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへの適用の結果である、コードの真正性の制御を意図した、制御方法および関連した制御デバイスＣＤの提供を目的としている。
【００２０】
次の説明では、電子デバイスＥＤ２がスマートカードであるとみなされる。例えば、クレジットカードまたは電子識別子カードあるいは電子パスポートであっても構わない。しかし、本発明は、このタイプの電子デバイスに限定されるものではない。これは、セキュリティで保護されたデバイスの多く、特にカードリーダ、ソフトウェア保護ドングル、通信デバイス（例えば、スマートフォン、電子タブレット、あるいは固定またはポータブルコンピュータ）、ポータブルメモリ手段（例えば、ＵＳＢキー）、およびスマートメータデバイス内のマシンツーマシン通信の中に存在する安全なモジュールが関係している。
【００２１】
図１に示す例では、電子デバイスＥＤ２は、さらに別の電子デバイスＥＤ１から送信されたデータを少なくとも受信できる、別の電子機器のＥＤ３に配置されている。
【００２２】
例えば、電子デバイスＥＤ３は、通信モジュールを含むカードリーダであり、電子装置ＥＤ１は固定またはポータブルコンピュータ（または他のいずれかのタイプの通信機器（またはデバイス））である。
【００２３】
電子デバイスＥＤ１は、電子デバイスＥＤ３に送信されるメッセージを生成し、関連メッセージと共に送信されるコードを生成するために、生成された各メッセージに、少なくとも１つの所定の鍵Ｋを用いて選択された全単射アルゴリズムを適用するように構成された計算モジュールＣＭ４を備えている。
【００２４】
次の説明では、全単射アルゴリズムが、それぞれが送信されるメッセージの分割結果である、データのＮ個のブロックＢｎ（ｎ＝１からＮ）に順次適用される暗号化または暗号アルゴリズムを含むことが考察される。
【００２５】
この暗号化または暗号アルゴリズムは、いわゆる単純なデータ暗号化標準アルゴリズム（またはＤＥＳ）であり得る。しかし、これは、例えば、トリプルデータ暗号化標準アルゴリズム（またはＴＤＥＳ）、または高度暗号化標準アルゴリズム（またはＡＥＳ）、あるいはＲＳＡアルゴリズム（リベスト  シャミア  エーデルマン）であり得る可能性もある。
【００２６】
例えば、計算モジュールＣＭ４は、おのおの生成されたメッセージを、同じビット数Ｍを有する、データのＮ個のブロックＢｎ（例えばＭ＝８バイト（すなわち、６４ビット）とＮ＝１６）に分割し、次に全単射アルゴリズムの第１の部分ＰＡ１を実行するように構成されている。この第１の部分ＰＡ１は、データの第１のブロックＢ１（ｎ＝１）と所定値ＰＶとを組み合わせ（ＣＮ）第１の値を得て、この第１の値に少なくとも１つの所定の鍵Ｋの第１の部分Ｋ１を用いて例えばＤＥＳなどの暗号化アルゴリズムＣＡが適用されることを含みうる。ＤＥＳ  ＣＡの適用は結果ＲＰ１を提供し、それはさらに、第１の部分ＰＡ１の実行の結果でもある。次に、計算モジュールＣＭ４は、データの第２のブロックＢ２（ｎ＝２）と結果ＲＰ１を組み合わせ（ＣＮ）ある値を得て、この値に所定の鍵Ｋの第１の部分Ｋ１を用いてＤＥＳ  ＣＡが適用される。ＤＥＳ  ＣＡの適用は結果ＲＰ２を提供し、それはさらに、第２の部分ＰＡ２の実行の結果でもある。計算モジュールＣＭ４は、２≦ｎ≦Ｎ−１で、データの各ブロックＢｎに対して同様の方法で進む。最後に、計算モジュールＣＭ４は、データのＮ番目のブロックＢＮ（ｎ＝Ｎ）とＮ−１番目の部分ＰＡＮ−１の実行の結果ＲＰＮ−１を組み合わせ（ＣＮ）ある値を得て、この値に所定の鍵Ｋの第１の部分Ｋ１を用いてＤＥＳ  ＣＡを適用して別の値を得て、この別の値に（第１の部分Ｋ１の相補的な部分である）所定の鍵Ｋの第２の部分Ｋ２を用いてＤＥＳ  ＣＡ（ＤＥＳ−１）の逆バージョンＣＡ−１が適用されてさらに別の値が得られ、このさらに別の値に所定の鍵Ｋの第１の部分Ｋ１を用いてＤＥＳ  ＣＡが適用される。このＤＥＳ  ＣＡの最後の適用は結果ＲＰＮを提供し、これはさらに、Ｎ番目の部分ＰＡＮの実行の結果である。この最終結果ＲＰＮは全単射アルゴリズムを適用した生成されたメッセージのコード（またはＭＡＣ）である。ひとたび、電子デバイスＥＤ１が自由に使えるこのコードおよび関連付けられたメッセージを有すると、それらは、ここで電子デバイスＥＤ２による認証制御のために、電子デバイスＥＤ３に送信され得る。
【００２７】
図１に例示する非限定的な例では、電子デバイスＥＤ２は、本発明による制御デバイスＣＤを備えるマイクロプロセッサＭＰを含んでいる。
【００２８】
制御デバイスＣＤが、マイクロプロセッサＭＰ（または、例えば集積回路などの任意の均等な手段）に配置されることが必ずしも必須ではないことに留意することは重要である。実際には、マイクロプロセッサＭＰに結合され、受信されたメッセージおよび関連するコードにアクセスし得るデバイスであり得る。そのような制御デバイスＣＤも、電子デバイスＥＤ２またはＥＤ３の別のデバイスに配置され得る。
【００２９】
そのため、制御デバイスＣＤは、少なくとも部分的にソフトウェアモジュールから、電子回路またはハードウェアモジュールから、あるいはさらに、ハードウェアおよびソフトウェアモジュールの組み合わせから作られ得る（この最後の場合、制御デバイスＣＤはさらにソフトウェアインタフェースを備え、ハードウェアおよびソフトウェアモジュール間のインターワーキングを可能にする）。ソフトウェアモジュールから作られる場合、これはメモリ手段または電子デバイスによって読み取られ得るいずれかのコンピュータソフトウェア製品に記憶され得る。
【００３０】
図１に例示されているように、本発明による制御デバイスＣＤは、少なくとも第１のＣＭ１および第２のＣＭ２計算手段ならびに比較手段ＣＭ３を備えている。
【００３１】
第１の計算手段ＣＭ１は、第１の結果ＦＲを得るために、開始ステップから選択された中間ステップまで、同じ所定の鍵Ｋで計算モジュールＣＭ４によって実行されるものと同じ全単射アルゴリズムを部分的に、電子デバイスＥＤ２によって受信されるメッセージに適用するように構成されている。
【００３２】
第２の計算手段ＣＭ２は、第２の結果ＳＲを得るために、この考慮されるメッセージを使用すると同時に、考慮されるメッセージと共に受信されたコードＲＣに、終了ステップから選択された中間ステップまで、同じ所定の鍵Ｋを用いて同じ全単射アルゴリズムを逆の方法で部分的に適用するために構成されている。
【００３３】
言い換えれば、第１の計算手段ＣＭ１は、全単射アルゴリズムの一部を従来の方法で実行し、すなわち、最初（または開始ステップ）―これは、第１の値を得るために受信されたメッセージのデータの第１のブロックＢ１と所定の値ＰＶを組み合わせることを含む―から、選択された中間ステップに至るまで、実行し、一方、第２の計算手段ＣＭ２は全単射アルゴリズムの相補的な部分を逆の方法で実行し、すなわち、終了（または終了ステップ）―これは、第１の中間結果を得るため、受信されたコードＲＣ（関係しているメッセージに関連している）に、所定の鍵Ｋの第１の部分Ｋ１を用いて暗号化または暗号アルゴリズムＣＡ（ここでは例えば、ＤＥＳ−１）の逆バージョンＣＡ−１を適用することを含む―から選択された中間ステップに至るまで、実行する。実行されたアルゴリズムが全単射であるから、受信されたコードＲＣが真正である場合、第１の結果ＦＲは第２の結果ＳＲと必ず同一でなければならない。受信されたコードＲＣは、これが計算モジュールＣＭ４による関連メッセージへの所定の鍵Ｋを用いる全単射アルゴリズムの適用の結果の場合、真正とみなされる。
【００３４】
比較手段ＣＭ３は、第１のＦＲと第２のＳＲの結果（受信されたメッセージおよび関連して受信されたコードＲＣに対して第１のＣＭ１と第２のＣＭ２の計算手段によって計算される）を比較し、これら第１のＦＲと第２のＳＲの結果が同一の時、この受信されたコードＲＣの真正性を表す情報を出力するように構成されている。
【００３５】
したがって参照コードは、受信されたコードＲＣが真正とみなされた時を除いて、計算されることはなく、計算には現れない。
【００３６】
さらに攻撃者は、受信されたコードＲＣが全単射アルゴリズムのエントリなので、もはや終了によってＤＰＡを実行することはできない。
【００３７】
その上、機密の動作である、最終的な比較が計算された２つの中間結果で行われるので、攻撃者は計算されたこれら２つの中間結果をどちらも選択することはできない。そのため、安全性が大幅に改善される。
【００３８】
その上さらに、最終的な比較が計算された参照コードで行われないので、この最終的な比較の間に誤っているとみなされるバイトが受信されたコードＲＣのどのバイトが誤っているかを示すことはできない。そのため、最終的な比較をランダムな順序で行う必要がない。
【００３９】
本発明による制御デバイスＣＤによって実施され得る、アルゴリズムの非限定的な例が図２で例示されている。この例では、選択された中間ステップが第２のアルゴリズム部分ＰＡ２の終了であるとみなされる。そのため、第１の結果ＦＲは第２のアルゴリズム部分ＰＡ２の実行の結果ＲＰ２で、一方、第２の結果ＳＲは第３のアルゴリズム部分ＰＡ３の逆の方法での実行の結果ＲＰ３である。
【００４０】
さらに正確には、この例では、ひとたび受信されたメッセージが、同じビット数Ｍを有するデータのＮ個のブロックＢｎ（例えばＭ＝８バイト（すなわち、６４ビット）とＮ＝１６）に分割されると、第１の計算手段ＣＭ１は全単射アルゴリズムの第１の部分ＰＡ１を実行する。
【００４１】
図１で例示されているように、制御デバイスＣＤは、各受信されたメッセージをデータのＮ個のブロックＢｎに分割するように構成された制御手段ＣＭ４を備え得る。
【００４２】
第１の部分ＰＡ１は、データの第１のブロックＢ１と所定値ＰＶとを組み合わせ（ＣＮ）第１の値を得、この第１の値に所定の鍵Ｋの第１の部分Ｋ１を用いて、暗号化アルゴリズムＣＡ（ここでは例えばＤＥＳ）が適用されることを、含み得る。ＤＥＳ  ＣＡの適用は結果ＲＰ１を提供し、それはさらに、第１の部分ＰＡ１の実行の結果でもある。次に、第１の計算モジュールＣＭ１は、データの第２のブロックＢ２と結果ＲＰ１を組み合わせ（ＣＮ）ある値を得て、その値に所定の鍵Ｋの第１の部分Ｋ１を用いて、ＤＥＳ  ＣＡが適用される。ＤＥＳ  ＣＡの適用は結果ＲＰ２を提供し、それはさらに、第２の部分ＰＡ２およびこの例では第１の結果ＦＲの実行の結果でもある。
【００４３】
同時に（しかし、後でも可能であるが）第２の計算手段ＣＭ２は、逆の方法で全単射アルゴリズムのＮ番目の部分ＰＡＮを実行する。そのため、これ（ＣＭ２）は、受信されたコードＲＣに、所定の鍵Ｋの第１の部分Ｋ１を用いて暗号化アルゴリズムＣＡの逆バージョンＣＡ−１（ここではＤＥＳ−１）を適用し、第１の中間結果を得る。次に、この第１の中間結果に、所定の鍵Ｋの第２の部分Ｋ２（これは第１の部分Ｋ１の補完的な部分）を用いてＤＥＳ  ＣＡを適用し、第２の中間結果を得る。さらに、この第２の中間結果に、所定のキーＫの第１の部分Ｋ１を用いて暗号化アルゴリズムＣＡの逆バージョンＣＡ−１（ここではＤＥＳ−１）を再度適用し第３の中間結果を得て、そして最後に、この第３の中間結果から受信されたメッセージのデータのＮ番目のブロックＢＮを分離して（ＣＮ−１）、Ｎ番目のアルゴリズム部分ＰＡＮの逆バージョンの結果ＲＰＮを得る。
【００４４】
ここでは、「分離する」（ｄｉｓｓｏｃｉａｔｉｎｇ）によって、組み合わせるＣＮ（ここでは、第１のＰＡ１および第２のＰＡ２アルゴリズム部分で実行される）の逆関数ＣＮ−１を意味している。
【００４５】
次に、第２の計算手段ＣＭ２は逆の方法で全単射アルゴリズムのＮ−１番目の部分ＰＡＮ−１を実行する。そうであるから、これ（ＣＭ２）は、結果ＲＰＮに、所定の鍵Ｋの１番目の部分Ｋ１を用いて暗号化アルゴリズムＣＡの逆バージョンＣＡ−１（ここではＤＥＳ−１）を適用した値を得て、この値から、受信されたメッセージのデータのＮ−１番目のブロックＢＮ−１を分離して（ＣＮ−１）、Ｎ−１番目のアルゴリズム部分ＰＡＮ−１の逆バージョンの結果ＲＰＮ−１を得る。第２の計算手段ＣＭ２は、（ＳＲ＝ＲＰ３で）第３のアルゴリズム部分ＰＡ３の逆バージョンの適用の終了で第２の結果ＳＲを得るために、３≦ｎ≦Ｎ−１で、データの各ブロックＢｎに同じ方法で進んでいく。
【００４６】
次にこの第２の結果ＳＲが、比較手段ＣＭ３によって第１の結果ＦＲと比較される。
【００４７】
アルゴリズムの上述の例では、中間ステップは、ｎ番目のアルゴリズム部分ＰＡｎの終了であり、ここでｎは１より大きくＮ未満（２≦ｎ≦Ｎ−１）（ここでは、例えばｎ＝２）である。しかし、これは必須でない。実際のところ、中間ステップは、ｎ番目のアルゴリズム部分ＰＡｎ（２≦ｎ≦Ｎ−１で）の中間サブ部分とし得る。例えば、この中間サブ部分は、ｎ番目のアルゴリズム部分ＰＡｎを組み合わせる（ＣＮ）ことの終了（第１の計算手段ＣＭ１の場合）またはこのｎ番目のアルゴリズム部分ＰＡｎ暗号化アルゴリズムＣＡの逆バージョンＣＡ−１（ここではＤＥＳ−１）の適用の終了（第２の計算手段ＣＭ２の場合）とし得る。
【００４８】
制御手段ＣＭ４は、第１のＣＭ１および第２のＣＭ２の計算手段がそれぞれの計算を停止しなければならない、中間ステップを選択するように構成され得る。
【００４９】
第１のＣＭ１および第２のＣＭ２の計算手段がそれぞれの計算を停止しなければならない、中間ステップの選択が事前に定義され得ることに留意することは重要である。しかし、この選択は、好適には、全単射アルゴリズムの１つの適用（または実行）から別のものまで、可能ならランダムな方法で、変化し得る。制御手段ＣＭ４はこの選択の役割を担い得る。
【００５０】
本発明はさらに、電子デバイスＥＤ２のための制御方法という点から考慮され得る。そのような方法は図１および図２を参照して上述したものなど、制御デバイスＣＤによって実施され得る。したがって、その主な特徴のみが以下で述べられる。
【００５１】
本発明による制御方法には、次のステップが含まれる。
（ｉ）第１の結果を得るため、受信されたメッセージに、開始ステップから選択された中間ステップまで、この所定の鍵Ｋを用いてこの全単射アルゴリズムを部分的に適用すること、
（ｉｉ）第２の結果ＳＲを得るために、この受信されたメッセージを使用すると同時に、メッセージと共に受信されたコードＲＣに、終了ステップから選択されたこの中間ステップまで、この所定の鍵Ｋを用いてこの全単射アルゴリズムを逆の方法で部分的に適用すること、
（ｉｉｉ）これら第１および第２の結果が同一の場合には、この受信されたコードＲＣが真正であるとみなすこと。
【００５２】
これら第１（ｉ）、第２（ｉｉ）、および第３（ｉｉｉ）のステップはそれぞれ、第１の計算手段ＣＭ１、第２の計算手段ＣＭ２、および比較手段ＣＭ３によって実行され得る。
【００５３】
本発明は、例示目的のみの、上述の制御方法、制御デバイス、および電子デバイスの実施形態に限定されるものではなく、以下の請求項の範囲内で、当業者によって考慮され得るすべての代替の実施形態を包含するものである。
【図１】
0006356687.tif 000002
【図２】
0006356687.tif 000003