(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6356687
(24)【登録日】2018年6月22日
(45)【発行日】2018年7月11日
(54)【発明の名称】メッセージへの全単射アルゴリズムの適用によるコードの真正性を制御するための制御方法およびデバイス
(51)【国際特許分類】
H04L 9/32 20060101AFI20180702BHJP
G09C 1/00 20060101ALI20180702BHJP
【FI】
H04L9/00 675A
G09C1/00 640D
【請求項の数】15
【全頁数】13
(21)【出願番号】特願2015-541184(P2015-541184)
(86)(22)【出願日】2013年11月12日
(65)【公表番号】特表2015-534415(P2015-534415A)
(43)【公表日】2015年11月26日
(86)【国際出願番号】EP2013073636
(87)【国際公開番号】WO2014072529
(87)【国際公開日】20140515
【審査請求日】2016年8月12日
(31)【優先権主張番号】12306396.8
(32)【優先日】2012年11月12日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】504326572
【氏名又は名称】ジエマルト・エス・アー
(74)【代理人】
【識別番号】110001173
【氏名又は名称】特許業務法人川口國際特許事務所
(72)【発明者】
【氏名】サルガド,ステファニー
【審査官】
金沢 史明
(56)【参考文献】
【文献】
特開平03−007399(JP,A)
【文献】
特表2005−503069(JP,A)
【文献】
特開2010−220064(JP,A)
【文献】
特開平10−154976(JP,A)
【文献】
全銀協ICキャッシュカード標準仕様,全国銀行協会 業務部,2001年 3月,初版,p.附11−1
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
第1の電子デバイス(ED2)における、第1の計算手段(CM1)と、第2の計算手段(CM2)と、比較手段(CM3)と、制御手段(CM4)とを備える制御デバイス(CD)が実行する方法であり、第1の電子デバイス(ED2)によって第2の電子デバイスからメッセージと共に受信され、少なくとも1つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへの適用の結果である、コードの真正性を制御するための方法において、
(i)第1の電子デバイスによって、第2の電子デバイスから前記メッセージとコードとを受信するステップと、
(ii)第1の結果を決定するために、第1の計算手段(CM1)によって、前記受信されたメッセージに、開始ステップから選択された中間ステップまで、前記所定の鍵を用いて前記全単射アルゴリズムを部分的に適用するステップと、
(iii)第2の結果を決定するために、第2の計算手段(CM2)によって、前記受信されたメッセージを使用すると同時に、前記受信されたコードに、終了ステップから選択された前記中間ステップまで、前記所定の鍵を用いて前記全単射アルゴリズムを逆の方法で部分的に適用するステップと、
(iv)比較手段(CM3)によって、前記第1および第2の結果を比較して、前記第1および第2の結果が同一の場合には、前記受信されたコードが真正であるとみなすステップとを含むことを特徴とする方法。
【請求項2】
前記中間ステップの選択が、全単射アルゴリズムの1つの適用から別のものまで変化することを特徴とする、請求項1に記載の方法。
【請求項3】
前記中間ステップの選択が、全単射アルゴリズムの1つの適用から別のものまでランダムに変化することを特徴とする、請求項2に記載の方法。
【請求項4】
前記全単射アルゴリズムが、前記受信されたメッセージの分割から生じるデータのN個のブロックにそれぞれ適用される、N個の連続部分を含み、第1のアルゴリズム部分が、第1のブロックを所定の値と組み合わせることを含み、後続の各アルゴリズム部分が、後続のブロックを、先行するブロックへの先行するアルゴリズム部分の適用の結果と組み合わせることを含み、前記方法はさらに、
制御手段(CM4)によって、ステップ(i)での前記受信されたメッセージをN個の連続するブロックに分割することと、
制御手段(CM4)によって、中間ステップとしてn番目のアルゴリズム部分の終了を選択することによって中間ステップを規定することと、
第1の計算手段(CM1)によって、前記第1のアルゴリズム部分から前記中間ステップまで、前記全単射アルゴリズムを実行することとを含むことを特徴とする、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記全単射アルゴリズムが、前記受信されたメッセージの分割から生じるデータのN個のブロックにそれぞれ適用される、N個の連続部分を含み、各アルゴリズム部分が、複数のサブ部分を含み、第1のアルゴリズム部分が、第1のブロックを所定の値と組み合わせることを含み、後続の各アルゴリズム部分が、後続のブロックを、先行するブロックへの先行するアルゴリズム部分の適用の結果と組み合わせることを含み、前記方法はさらに、
制御手段(CM4)によって、ステップ(i)での前記受信されたメッセージをN個の連続するブロックに分割することと、
制御手段(CM4)によって、前記中間ステップとしてn番目のアルゴリズム部分の中間サブ部分を選択することによって中間ステップを規定することと、
第1の計算手段(CM1)によって、前記第1のアルゴリズム部分から前記中間ステップまで、前記全単射アルゴリズムを実行することとを含むことを特徴とする、請求項1から3のいずれか一項に記載の方法。
【請求項6】
ステップ(ii)および(iii)で、N番目のものとは異なる各アルゴリズム部分において、所定の鍵の第1の部分を用いて、暗号化または暗号アルゴリズムあるいは前記暗号化または暗号アルゴリズムの逆バージョンのみを、適用することを含み、ステップ(iii)で、第1の中間結果を得るため、前記受信されたコードに、所定の鍵の前記第1の部分を用いて前記暗号化または暗号アルゴリズムの前記逆バージョンを最初に適用し、次に、第2の中間結果を得るため、前記第1の中間結果に、前記所定の鍵の第2の部分を用いて前記暗号化または暗号アルゴリズムを適用し、それから、第3の中間結果を得るため、前記第2の中間結果に、所定の鍵の前記第1の部分を用いて暗号化または暗号アルゴリズムの前記逆バージョンを再び適用し、最後に、N番目のアルゴリズム部分の逆バージョンの結果を得るため、前記第3の中間結果から前記受信されたメッセージのデータの前記N番目のブロックを分離することを含むことを特徴とする、請求項4または5に記載の方法。
【請求項7】
前記暗号化または暗号アルゴリズムが、少なくとも単純なデータ暗号化標準アルゴリズム、トリプルデータ暗号化標準アルゴリズム、高度暗号化標準アルゴリズム、およびRSAアルゴリズムを含むグループから選択されることを特徴とする、請求項6に記載の方法。
【請求項8】
第1の電子デバイス(ED2)によって第2の電子デバイスからメッセージと共に受信され、少なくとも1つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへの適用の結果である、コードの真正性を制御するための制御デバイス(CD)であって、(i)第1の電子デバイスによって、第2の電子デバイスから前記メッセージとコードとを受信するための受信手段と、(ii)第1の結果を決定するため、前記受信されたメッセージに、開始ステップから選択された中間ステップまで、前記所定の鍵を用いて前記全単射アルゴリズムを部分的に適用するように構成された第1の計算手段(CM1)と、(iii)第2の結果を得るために、前記受信されたメッセージを使用すると同時に、前記受信されたコードに、終了ステップから選択された前記中間ステップまで、前記所定の鍵を用いて前記全単射アルゴリズムを逆の方法で部分的に適用するように構成された第2の計算手段(CM2)と、(iv)前記第1および第2の結果を比較し、前記第1および第2の結果が同一の場合には、前記受信されたコードの真正性を示す情報を出力するように構成された比較手段(CM3)とを備えることを特徴とする制御デバイス(CD)。
【請求項9】
全単射アルゴリズムの1つの適用から別のものまで前記中間ステップの選択を変化させるように構成された制御手段(CM4)を備えることを特徴とする、請求項8に記載の制御デバイス。
【請求項10】
前記制御手段(CM4)が、全単射アルゴリズムの1つの適用から別のものまで前記中間ステップの選択をランダムに変化させるように構成されることを特徴とする、請求項9に記載の制御デバイス。
【請求項11】
前記受信されたメッセージをデータのN個のブロックに分割し、ここで、前記全単射アルゴリズムが、前記受信されたメッセージの分割から生じるデータのN個のブロックにそれぞれ適用される、N個の連続部分を含み、第1のアルゴリズム部分が、第1のブロックを所定の値と組み合わせることを含み、後続の各アルゴリズム部分が、後続のブロックを、先行するブロックへの先行するアルゴリズム部分の適用の結果と組み合わせることを含み、
中間ステップとしてn番目のアルゴリズム部分の終了を選択し、
前記第1のアルゴリズム部分から前記中間ステップまで、前記全単射アルゴリズムを実行するように構成された制御手段(CM4)を備えることを特徴とする、請求項8から10のいずれか一項に記載の制御デバイス。
【請求項12】
前記受信されたメッセージをデータのN個のブロックに分割し、ここで、前記全単射アルゴリズムが、前記受信されたメッセージの分割から生じるデータのN個のブロックにそれぞれ適用される、N個の連続部分を含み、各アルゴリズム部分が、複数のサブ部分を含み、第1のアルゴリズム部分が、第1のブロックを所定の値と組み合わせることを含み、後続の各アルゴリズム部分が、後続のブロックを、先行するブロックへの先行するアルゴリズム部分の適用の結果と組み合わせることを含み、
中間ステップとしてn番目のアルゴリズム部分の中間サブ部分を選択し、
前記第1のアルゴリズム部分から前記中間ステップまで、前記全単射アルゴリズムを実行するように構成された制御手段(CM4)を備えることを特徴とする、請求項8から10のいずれか一項に記載の制御デバイス。
【請求項13】
前記第1(CM1)および第2(CM2)の計算手段は、N番目のものとは異なる各アルゴリズム部分において、所定の鍵の第1の部分を用いて、暗号化または暗号アルゴリズムあるいは前記暗号化または暗号アルゴリズムの逆バージョンのみを、適用するように構成され、前記第2の計算手段(CM2)は、第1の中間結果を得るため、前記受信されたコードに、所定の鍵の前記第1の部分を用いて前記暗号化または暗号アルゴリズムの前記逆バージョンを適用し、次に、第2の中間結果を得るため、前記第1の中間結果に、前記所定の鍵の第2の部分を用いて前記暗号化または暗号アルゴリズムを適用し、それから、第3の中間結果を得るため、前記第2の中間結果に、所定の鍵の前記第1の部分を用いて暗号化または暗号アルゴリズムの前記逆バージョンを再び適用し、最後に、N番目のアルゴリズム部分の逆バージョンの結果を得るため、前記第3の中間結果から前記受信されたメッセージのデータの前記N番目のブロックを分離するように構成されることを特徴とする、請求項11または12に記載の制御デバイス。
【請求項14】
前記暗号化または暗号アルゴリズムが、少なくとも単純なデータ暗号化標準アルゴリズム、トリプルデータ暗号化標準アルゴリズム、高度暗号化標準アルゴリズム、およびRSAアルゴリズムを含むグループから選択されることを特徴とする、請求項13に記載の制御デバイス。
【請求項15】
請求項8から14のいずれか一項に記載の制御デバイス(CD)を備え、前記電子デバイスが少なくともスマートカード、メモリカードリーダ、通信デバイス、およびポータブルメモリ手段を含むグループから選択されることを特徴とする、電子デバイス(ED2)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証されて受信したメッセージを使用する電子デバイスまたは製品に関し、より正確には、受信したメッセージに関連付けられたコードの制御の認証に関するものである。
【背景技術】
【0002】
当業者に知られているように、いくつかの電子デバイスは、例えば、機能および/または権利(アクセスまたはクレジットなど)を制御するために、他の電子デバイスに送信されるように意図されたメッセージを生成する。非承認メッセージを送信するための非承認の電子デバイスを避けるため、送信する前に、全単射アルゴリズムが、少なくとも1つの所定の鍵を用いて、このメッセージに適用され得る。この全単射アルゴリズムは、順次、例えばメッセージの分割によるデータのN個のブロックに、適用される暗号化または暗号アルゴリズムを含み得る。
【0003】
この適用の結果は、一般的に、MAC(「メッセージ認証コード」)と呼ばれているコードである。このコードと関連したメッセージが関係している電子デバイスに送信される。この受信されたコードを認証するため、電子デバイスは参照コードを得るために受信したメッセージに、同じ所定の鍵を用いて同じ全単射アルゴリズムを適用する。この参照コードが受信されたコードと同一である場合、後者は真正であるとみなされ、メッセージは使用され得るが、そうでない場合は、メッセージは拒否される。
【0004】
あいにく、このような全単射アルゴリズムは、使用する各所定の鍵を得るために攻撃者によって攻撃され、承認された任意のメッセージを送信することが可能になり得る。そのために、この攻撃者は、電子デバイスに、異なるコードを含む同じメッセージを連続して送信し、受信したコードとそれぞれ比較する必要がある参照コードを計算させることができ、それから、これらの連続比較から、および攻撃を受けた電子デバイスに生じる物理的効果の変動からそれぞれ所定の鍵を推測し得る。いくつかの内部動作またはプロセスが、例えば、特定の消費電力、特定の温度または特定の電磁相互作用のような特性的な物理効果によって認識され得ることが想起される。
【0005】
消費電力解析に基づく攻撃は、(一般にDPA(「差分電力解析」)と呼ばれる)全単射アルゴリズムのステップを開始または全単射アルゴリズムのステップを終了する際のいずれかで行われ得る。(一般的には「開始によるDPA」と呼ばれる)最初のものは、例えば、特定の対策でブロックすることは比較的容易である。(一般的には「終了によるDPA」と呼ばれる)第2のものは、ブロックすることがより困難である。それらは、攻撃者が攻撃される電子デバイスによって受信されたコード(または送信されたMAC)を知っている時、攻撃者は全単射アルゴリズムに使用される暗号化または暗号アルゴリズムの適用の結果を知ることが可能になるので、実行され得る。この第2のタイプの攻撃は、計算された参照コードが受信されたコード(または送信されたMAC)と、バイトごとに比較される事実によって容易化される。
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで、本発明の目的は、参照コードを計算することなく受信されたコードを認証することによって、少なくとも部分的に、上述の欠点を克服することである。
【課題を解決するための手段】
【0007】
より正確には、本発明は、電子デバイスによってメッセージと共に受信され、少なくとも1つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへの適用の結果である、コードの真正性を制御するための方法を提供し、次のステップを含んでいる。
(i)第1の結果を得るために、受信されたメッセージに、開始ステップから選択された中間ステップまで、この所定の鍵を用いてこの全単射アルゴリズムを部分的に適用すること、
(ii)第2の結果を得るために、受信されたメッセージを使用すると同時に、受信されたコードに、終了ステップからこの選択された中間ステップまで、この所定の鍵を用いてこの全単射アルゴリズムを逆の方法で部分的に適用すること、
(iii)これらの第1および第2の結果が同一である場合は、受信されたコードが真正であるとみなすことである。
【0008】
本発明による制御方法には、別個または組み合わせて、考慮される追加の特徴を含み得、特に次のとおりである。
【0009】
− 中間ステップは、可能ならランダムに、1つの適用から別のものまで変化し得る;
− 全単射アルゴリズムが、受信されたメッセージの分割の結果であってそれぞれが前のブロックに前のアルゴリズム部分を適用した結果と組み合わされたデータのN個のブロックに、それぞれ適用されなければならないN個の連続部分を含む場合、ステップ(i)で受信されたメッセージの分割に最初に進み、中間ステップとして、n番目のアルゴリズム部分の終了を選択する場合もあれば、または変形形態では、中間ステップとして、n番目のアルゴリズム部分の中間サブ部分を選択する場合もある;
ステップ(i)および(ii)で、N番目のものとは異なる各アルゴリズム部分において、所定の鍵の第1の部分を用いて、暗号化または暗号アルゴリズムあるいはこの暗号化または暗号アルゴリズムの逆バージョンのみを、適用し得る。この場合、ステップ(ii)で、まず、第1の中間結果を得るため、受信されたコードに、所定の鍵の第1の部分を用いて暗号化または暗号アルゴリズムの逆バージョンを適用し得、次に、第2の中間結果を得るため、第1の中間結果に、所定の鍵の第2の部分を用いて暗号化または暗号アルゴリズムを適用し得、それから、第3の中間結果を得るため、第2の中間結果に、所定の鍵の第1の部分を用いて暗号化または暗号アルゴリズムの逆バージョンを再び適用し得、最後に、N番目のアルゴリズム部分の逆バージョンの結果を得るため、第3の中間結果から受信されたメッセージのデータのN番目のブロックを分離し得る;
− 暗号化または暗号アルゴリズムは、少なくとも単純なデータ暗号化標準アルゴリズム(DES)、トリプルデータ暗号化標準アルゴリズム(TDES)、高度暗号化標準アルゴリズム(AES)、およびRSAアルゴリズム(Rivest Shamir Adleman(リベスト シャミア エーデルマン))を含むグループから選択され得る。
【0010】
本発明はさらに、電子デバイスによってメッセージと共に受信され、少なくとも1つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへ適用結果である、コードの真正性を制御することを意図した、制御デバイスも提供し、次を含んでいる。
【0011】
− 第1の結果を得るため、受信されたメッセージに、開始ステップから選択された中間ステップまで、この所定の鍵を用いてこの全単射アルゴリズムを部分的に適用するように構成された第1の計算手段、
− 第2の結果を得るために、受信されたメッセージを使用すると同時に、受信されたコードに、終了ステップから選択された中間ステップまで、所定の鍵を用いて全単射アルゴリズムを逆の方法で部分的に適用するように構成された第2の計算手段、
− これらの第1および第2の結果を比較し、第1および第2の結果が同一である場合には、受信されたコードの真正性を示す情報を出力するように構成された比較手段。
【0012】
本発明による制御デバイスには、別個または組み合わせて、考慮される追加の特徴を含み得、特に次のとおりである。
【0013】
− 可能ならランダムに、1つの適用から別のものまで中間ステップを変化させるように構成された制御手段を備え得る;
− 全単射アルゴリズムが、受信されたメッセージの分割の結果であってそれぞれが前のブロックに前のアルゴリズム部分を適用した結果と組み合わされたデータのN個のブロックに、それぞれ適用されなければならないN個の連続部分を含む場合、受信されたメッセージをデータのN個のブロックに分割し、中間ステップとして、n番目のアルゴリズム部分の終了を選択するか、または変形形態では、中間ステップとして、n番目のアルゴリズム部分の中間サブ部分を選択するように構成された制御手段を備え得る;
第1および第2の計算手段は、N番目のものとは異なる各アルゴリズム部分において、所定の鍵の第1の部分を用いて、暗号化または暗号アルゴリズムあるいはこの暗号化または暗号アルゴリズムの逆バージョンのみを、適用するように構成され得る。この場合、第2の計算手段は、第1の中間結果を得るため、受信されたコードに、所定の鍵の第1の部分を用いて暗号化または暗号アルゴリズムの逆バージョンを適用し、次に、第2の中間結果を得るため、第1の中間結果に、所定の鍵の第2の部分を用いて暗号化または暗号アルゴリズムを適用し、それから、第3の中間結果を得るため、第2の中間結果に、所定の鍵の第1の部分を用いて暗号化または暗号アルゴリズムの逆バージョンを再び適用し、最後に、N番目のアルゴリズム部分の逆バージョンの結果を得るため、第3の中間結果から受信されたメッセージのデータのN番目のブロックを分離するようにさらに構成され得る;
− 暗号化または暗号アルゴリズムは、少なくとも単純なデータ暗号化標準アルゴリズム(DES)、トリプルデータ暗号化標準アルゴリズム(TDES)、高度暗号化標準アルゴリズム(AES)、およびRSAアルゴリズム(Rivest Shamir Adleman(リベスト シャミア エーデルマン))を含むグループから選択され得る。
【0014】
本発明はさらに、上記で導入されたような制御デバイスを備える電子デバイスも提供する。
【0015】
この電子デバイスは、少なくともスマートカード、メモリカードリーダ、通信デバイス、およびポータブルメモリ手段を含むグループから選択され得る。
【0016】
本発明の他の特徴および利点は、以下の詳細な仕様および添付の図面を調べることで明らかになるであろう。
【図面の簡単な説明】
【0017】
【
図1】本発明による制御デバイスを備え、マイクロプロセッサを有する第3の電子デバイスを備える第2の電子デバイスに結合された第1の電子デバイスを概略的かつ機能的に例示する図である。
【
図2】本発明に従う制御デバイスによって実施された制御方法で使用され得るアルゴリズムの一例を概略的かつ機能的に例示する図である。
【発明を実施するための形態】
【0018】
添付の図面は、本発明を完成するだけでなく、必要に応じて、その定義に寄与するために機能し得る。
【0019】
本発明は、特に、電子デバイスによって関連するメッセージと共に受信され、少なくとも1つの所定の鍵を用いる全単射アルゴリズムの前記メッセージへの適用の結果である、コードの真正性の制御を意図した、制御方法および関連した制御デバイスCDの提供を目的としている。
【0020】
次の説明では、電子デバイスED2がスマートカードであるとみなされる。例えば、クレジットカードまたは電子識別子カードあるいは電子パスポートであっても構わない。しかし、本発明は、このタイプの電子デバイスに限定されるものではない。これは、セキュリティで保護されたデバイスの多く、特にカードリーダ、ソフトウェア保護ドングル、通信デバイス(例えば、スマートフォン、電子タブレット、あるいは固定またはポータブルコンピュータ)、ポータブルメモリ手段(例えば、USBキー)、およびスマートメータデバイス内のマシンツーマシン通信の中に存在する安全なモジュールが関係している。
【0021】
図1に示す例では、電子デバイスED2は、さらに別の電子デバイスED1から送信されたデータを少なくとも受信できる、別の電子機器のED3に配置されている。
【0022】
例えば、電子デバイスED3は、通信モジュールを含むカードリーダであり、電子装置ED1は固定またはポータブルコンピュータ(または他のいずれかのタイプの通信機器(またはデバイス))である。
【0023】
電子デバイスED1は、電子デバイスED3に送信されるメッセージを生成し、関連メッセージと共に送信されるコードを生成するために、生成された各メッセージに、少なくとも1つの所定の鍵Kを用いて選択された全単射アルゴリズムを適用するように構成された計算モジュールCM4を備えている。
【0024】
次の説明では、全単射アルゴリズムが、それぞれが送信されるメッセージの分割結果である、データのN個のブロックBn(n=1からN)に順次適用される暗号化または暗号アルゴリズムを含むことが考察される。
【0025】
この暗号化または暗号アルゴリズムは、いわゆる単純なデータ暗号化標準アルゴリズム(またはDES)であり得る。しかし、これは、例えば、トリプルデータ暗号化標準アルゴリズム(またはTDES)、または高度暗号化標準アルゴリズム(またはAES)、あるいはRSAアルゴリズム(リベスト シャミア エーデルマン)であり得る可能性もある。
【0026】
例えば、計算モジュールCM4は、おのおの生成されたメッセージを、同じビット数Mを有する、データのN個のブロックBn(例えばM=8バイト(すなわち、64ビット)とN=16)に分割し、次に全単射アルゴリズムの第1の部分PA1を実行するように構成されている。この第1の部分PA1は、データの第1のブロックB1(n=1)と所定値PVとを組み合わせ(CN)第1の値を得て、この第1の値に少なくとも1つの所定の鍵Kの第1の部分K1を用いて例えばDESなどの暗号化アルゴリズムCAが適用されることを含みうる。DES CAの適用は結果RP1を提供し、それはさらに、第1の部分PA1の実行の結果でもある。次に、計算モジュールCM4は、データの第2のブロックB2(n=2)と結果RP1を組み合わせ(CN)ある値を得て、この値に所定の鍵Kの第1の部分K1を用いてDES CAが適用される。DES CAの適用は結果RP2を提供し、それはさらに、第2の部分PA2の実行の結果でもある。計算モジュールCM4は、2≦n≦N−1で、データの各ブロックBnに対して同様の方法で進む。最後に、計算モジュールCM4は、データのN番目のブロックBN(n=N)とN−1番目の部分PAN−1の実行の結果RPN−1を組み合わせ(CN)ある値を得て、この値に所定の鍵Kの第1の部分K1を用いてDES CAを適用して別の値を得て、この別の値に(第1の部分K1の相補的な部分である)所定の鍵Kの第2の部分K2を用いてDES CA(DES
−1)の逆バージョンCA
−1が適用されてさらに別の値が得られ、このさらに別の値に所定の鍵Kの第1の部分K1を用いてDES CAが適用される。このDES CAの最後の適用は結果RPNを提供し、これはさらに、N番目の部分PANの実行の結果である。この最終結果RPNは全単射アルゴリズムを適用した生成されたメッセージのコード(またはMAC)である。ひとたび、電子デバイスED1が自由に使えるこのコードおよび関連付けられたメッセージを有すると、それらは、ここで電子デバイスED2による認証制御のために、電子デバイスED3に送信され得る。
【0027】
図1に例示する非限定的な例では、電子デバイスED2は、本発明による制御デバイスCDを備えるマイクロプロセッサMPを含んでいる。
【0028】
制御デバイスCDが、マイクロプロセッサMP(または、例えば集積回路などの任意の均等な手段)に配置されることが必ずしも必須ではないことに留意することは重要である。実際には、マイクロプロセッサMPに結合され、受信されたメッセージおよび関連するコードにアクセスし得るデバイスであり得る。そのような制御デバイスCDも、電子デバイスED2またはED3の別のデバイスに配置され得る。
【0029】
そのため、制御デバイスCDは、少なくとも部分的にソフトウェアモジュールから、電子回路またはハードウェアモジュールから、あるいはさらに、ハードウェアおよびソフトウェアモジュールの組み合わせから作られ得る(この最後の場合、制御デバイスCDはさらにソフトウェアインタフェースを備え、ハードウェアおよびソフトウェアモジュール間のインターワーキングを可能にする)。ソフトウェアモジュールから作られる場合、これはメモリ手段または電子デバイスによって読み取られ得るいずれかのコンピュータソフトウェア製品に記憶され得る。
【0030】
図1に例示されているように、本発明による制御デバイスCDは、少なくとも第1のCM1および第2のCM2計算手段ならびに比較手段CM3を備えている。
【0031】
第1の計算手段CM1は、第1の結果FRを得るために、開始ステップから選択された中間ステップまで、同じ所定の鍵Kで計算モジュールCM4によって実行されるものと同じ全単射アルゴリズムを部分的に、電子デバイスED2によって受信されるメッセージに適用するように構成されている。
【0032】
第2の計算手段CM2は、第2の結果SRを得るために、この考慮されるメッセージを使用すると同時に、考慮されるメッセージと共に受信されたコードRCに、終了ステップから選択された中間ステップまで、同じ所定の鍵Kを用いて同じ全単射アルゴリズムを逆の方法で部分的に適用するために構成されている。
【0033】
言い換えれば、第1の計算手段CM1は、全単射アルゴリズムの一部を従来の方法で実行し、すなわち、最初(または開始ステップ)―これは、第1の値を得るために受信されたメッセージのデータの第1のブロックB1と所定の値PVを組み合わせることを含む―から、選択された中間ステップに至るまで、実行し、一方、第2の計算手段CM2は全単射アルゴリズムの相補的な部分を逆の方法で実行し、すなわち、終了(または終了ステップ)―これは、第1の中間結果を得るため、受信されたコードRC(関係しているメッセージに関連している)に、所定の鍵Kの第1の部分K1を用いて暗号化または暗号アルゴリズムCA(ここでは例えば、DES
−1)の逆バージョンCA
−1を適用することを含む―から選択された中間ステップに至るまで、実行する。実行されたアルゴリズムが全単射であるから、受信されたコードRCが真正である場合、第1の結果FRは第2の結果SRと必ず同一でなければならない。受信されたコードRCは、これが計算モジュールCM4による関連メッセージへの所定の鍵Kを用いる全単射アルゴリズムの適用の結果の場合、真正とみなされる。
【0034】
比較手段CM3は、第1のFRと第2のSRの結果(受信されたメッセージおよび関連して受信されたコードRCに対して第1のCM1と第2のCM2の計算手段によって計算される)を比較し、これら第1のFRと第2のSRの結果が同一の時、この受信されたコードRCの真正性を表す情報を出力するように構成されている。
【0035】
したがって参照コードは、受信されたコードRCが真正とみなされた時を除いて、計算されることはなく、計算には現れない。
【0036】
さらに攻撃者は、受信されたコードRCが全単射アルゴリズムのエントリなので、もはや終了によってDPAを実行することはできない。
【0037】
その上、機密の動作である、最終的な比較が計算された2つの中間結果で行われるので、攻撃者は計算されたこれら2つの中間結果をどちらも選択することはできない。そのため、安全性が大幅に改善される。
【0038】
その上さらに、最終的な比較が計算された参照コードで行われないので、この最終的な比較の間に誤っているとみなされるバイトが受信されたコードRCのどのバイトが誤っているかを示すことはできない。そのため、最終的な比較をランダムな順序で行う必要がない。
【0039】
本発明による制御デバイスCDによって実施され得る、アルゴリズムの非限定的な例が
図2で例示されている。この例では、選択された中間ステップが第2のアルゴリズム部分PA2の終了であるとみなされる。そのため、第1の結果FRは第2のアルゴリズム部分PA2の実行の結果RP2で、一方、第2の結果SRは第3のアルゴリズム部分PA3の逆の方法での実行の結果RP3である。
【0040】
さらに正確には、この例では、ひとたび受信されたメッセージが、同じビット数Mを有するデータのN個のブロックBn(例えばM=8バイト(すなわち、64ビット)とN=16)に分割されると、第1の計算手段CM1は全単射アルゴリズムの第1の部分PA1を実行する。
【0041】
図1で例示されているように、制御デバイスCDは、各受信されたメッセージをデータのN個のブロックBnに分割するように構成された制御手段CM4を備え得る。
【0042】
第1の部分PA1は、データの第1のブロックB1と所定値PVとを組み合わせ(CN)第1の値を得、この第1の値に所定の鍵Kの第1の部分K1を用いて、暗号化アルゴリズムCA(ここでは例えばDES)が適用されることを、含み得る。DES CAの適用は結果RP1を提供し、それはさらに、第1の部分PA1の実行の結果でもある。次に、第1の計算モジュールCM1は、データの第2のブロックB2と結果RP1を組み合わせ(CN)ある値を得て、その値に所定の鍵Kの第1の部分K1を用いて、DES CAが適用される。DES CAの適用は結果RP2を提供し、それはさらに、第2の部分PA2およびこの例では第1の結果FRの実行の結果でもある。
【0043】
同時に(しかし、後でも可能であるが)第2の計算手段CM2は、逆の方法で全単射アルゴリズムのN番目の部分PANを実行する。そのため、これ(CM2)は、受信されたコードRCに、所定の鍵Kの第1の部分K1を用いて暗号化アルゴリズムCAの逆バージョンCA
−1(ここではDES
−1)を適用し、第1の中間結果を得る。次に、この第1の中間結果に、所定の鍵Kの第2の部分K2(これは第1の部分K1の補完的な部分)を用いてDES CAを適用し、第2の中間結果を得る。さらに、この第2の中間結果に、所定のキーKの第1の部分K1を用いて暗号化アルゴリズムCAの逆バージョンCA
−1(ここではDES
−1)を再度適用し第3の中間結果を得て、そして最後に、この第3の中間結果から受信されたメッセージのデータのN番目のブロックBNを分離して(CN
−1)、N番目のアルゴリズム部分PANの逆バージョンの結果RPNを得る。
【0044】
ここでは、「分離する」(dissociating)によって、組み合わせるCN(ここでは、第1のPA1および第2のPA2アルゴリズム部分で実行される)の逆関数CN
−1を意味している。
【0045】
次に、第2の計算手段CM2は逆の方法で全単射アルゴリズムのN−1番目の部分PAN−1を実行する。そうであるから、これ(CM2)は、結果RPNに、所定の鍵Kの1番目の部分K1を用いて暗号化アルゴリズムCAの逆バージョンCA
−1(ここではDES
−1)を適用した値を得て、この値から、受信されたメッセージのデータのN−1番目のブロックBN−1を分離して(CN
−1)、N−1番目のアルゴリズム部分PAN−1の逆バージョンの結果RPN−1を得る。第2の計算手段CM2は、(SR=RP3で)第3のアルゴリズム部分PA3の逆バージョンの適用の終了で第2の結果SRを得るために、3≦n≦N−1で、データの各ブロックBnに同じ方法で進んでいく。
【0046】
次にこの第2の結果SRが、比較手段CM3によって第1の結果FRと比較される。
【0047】
アルゴリズムの上述の例では、中間ステップは、n番目のアルゴリズム部分PAnの終了であり、ここでnは1より大きくN未満(2≦n≦N−1)(ここでは、例えばn=2)である。しかし、これは必須でない。実際のところ、中間ステップは、n番目のアルゴリズム部分PAn(2≦n≦N−1で)の中間サブ部分とし得る。例えば、この中間サブ部分は、n番目のアルゴリズム部分PAnを組み合わせる(CN)ことの終了(第1の計算手段CM1の場合)またはこのn番目のアルゴリズム部分PAn暗号化アルゴリズムCAの逆バージョンCA
−1(ここではDES
−1)の適用の終了(第2の計算手段CM2の場合)とし得る。
【0048】
制御手段CM4は、第1のCM1および第2のCM2の計算手段がそれぞれの計算を停止しなければならない、中間ステップを選択するように構成され得る。
【0049】
第1のCM1および第2のCM2の計算手段がそれぞれの計算を停止しなければならない、中間ステップの選択が事前に定義され得ることに留意することは重要である。しかし、この選択は、好適には、全単射アルゴリズムの1つの適用(または実行)から別のものまで、可能ならランダムな方法で、変化し得る。制御手段CM4はこの選択の役割を担い得る。
【0050】
本発明はさらに、電子デバイスED2のための制御方法という点から考慮され得る。そのような方法は
図1および
図2を参照して上述したものなど、制御デバイスCDによって実施され得る。したがって、その主な特徴のみが以下で述べられる。
【0051】
本発明による制御方法には、次のステップが含まれる。
(i)第1の結果を得るため、受信されたメッセージに、開始ステップから選択された中間ステップまで、この所定の鍵Kを用いてこの全単射アルゴリズムを部分的に適用すること、
(ii)第2の結果SRを得るために、この受信されたメッセージを使用すると同時に、メッセージと共に受信されたコードRCに、終了ステップから選択されたこの中間ステップまで、この所定の鍵Kを用いてこの全単射アルゴリズムを逆の方法で部分的に適用すること、
(iii)これら第1および第2の結果が同一の場合には、この受信されたコードRCが真正であるとみなすこと。
【0052】
これら第1(i)、第2(ii)、および第3(iii)のステップはそれぞれ、第1の計算手段CM1、第2の計算手段CM2、および比較手段CM3によって実行され得る。
【0053】
本発明は、例示目的のみの、上述の制御方法、制御デバイス、および電子デバイスの実施形態に限定されるものではなく、以下の請求項の範囲内で、当業者によって考慮され得るすべての代替の実施形態を包含するものである。