(57)【要約】暗号化アクセスを使う電子エンティティをＤＦＡタイプの攻撃から保護する方法に関する。暗号化アルゴリズムの一部をなす巡回プロセスの選択されたステップの計算結果（リザルト、Ｒｍ、Ｋｎ）を記憶し、少なくとも前記巡回プロセスの少なくとも１部を再実施し、前記記憶したものに対応する新リザルトを再計算する。前記２つのリザルトを比較し、両者が異なる場合は、暗号文（ＭＣ）の送出を禁止するものである。
2005522912.tif 000002
【特許請求の範囲】
【請求項１】
暗号化アルゴリズムの実行手段を有する暗号化アクセスを有する電子エンティティのセキュリティ化方法であって、
前記アルゴリズムは、演算群の系列（「ラウンド」と言う）を入力文に応用するステップからなり、該ラウンドは、一連のサブキー（K０、．．．Kｎ）を使い、各サブキーは、初期キー（Ｋ）から実行される巡回プロセスにより継続的に生成されるものであって、
前記巡回プロセスの中間ステップのリザルト（Ｒｍ，Ｋｎ）を記憶し、少なくとも、前記巡回プロセスのステップの一部の再実行を行い、記憶されたものに対応するリザルトを再計算し、前記対応する再計算リザルト値と前記記憶したリザルト値とを比較し、前記２つの値が異なる場合は、前記アルゴリズムを実施して作成した暗号文（ＭＣ）の送出を禁止することを特徴とする暗号化アクセスを有する電子エンティティのセキュリティ方法。
【請求項２】
サブキー（Ｋｎ）の値を記憶し、前記巡回プロセスのステップの一部の再実行を行い、少なくとも、記憶した前記サブキーに対応するサブキーを再計算することを特徴とする請求項１記載の方法。
【請求項３】
前記巡回プロセスの中間リザルト（Ｒｍ）の値を記憶し、前記巡回プロセスのステップの一部の再実行を行い、少なくとも、前記記憶したものに対応するリザルトを再計算することを特徴とする請求項１記載の方法。
【請求項４】
最終サブキー（Ｋｎ）値を記憶し、前記サブキーの系列を生成するステップの最終部分の再実行を行い、少なくとも、前記最終サブキーの第２回目の計算を行うことを特徴とする請求項２記載の方法。
【請求項５】
前記サブキーの系列の全生成ステップを再実行することを特徴とする請求項４記載の方法。
【請求項６】
ＡＥＳアルゴリズムに応用することを特徴とする請求項１乃至５記載の方法。
【請求項７】
ＤＥＳアルゴリズムに応用することを特徴とする請求項１乃至６記載の方法。
【請求項８】
請求項１乃至７に基づく方法を実行する手段を有することを特徴とする自律型電子エンティティ。
【請求項９】
ＩＣカードの形態で構成されることを特徴とする請求項８記載の電子エンティティ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化されたアクセスを使う電子的エンティティ、例えば、ＩＣカード、のセキュリティ化方法に関する。殊に、DFA（Differential Fault Analysis）という周知の攻撃を、検知する方法を改良することを目的とする。本発明は、殊に、AES又はDESのような、周知のアルゴリズムを保護することを目的とするものである。
【背景技術】
【０００２】
暗号化されたアクセスを使う電子的エンティティ、殊に、ICカードは、DFAと呼ばれる攻撃に対して脆弱である。DFAは、中間算出（resultat intermediaire、以下、中間リザルトという）の値を変えて、暗号アルゴリズムの実行を妨害し（perturber）、正規の暗号文とエラーを有する暗号文との間の差分を処理し、該差分から電子エンティティの秘密キー情報を推理するものである。ICカードの外部環境に影響を与えることにより、エラーを極めて容易に発生できる。例えば、ピーク電圧を発生させたり、カードに（例えば、レーザ光線の）閃光を照射したり、外部クロックの周波数を強制的に変更させたりする等である。
【０００３】
よく用いられるアルゴリズムの中の、DES（Data Encryption Standard）及び、殊に、AES(Advanced Encryption Standard)について述べる。留意することは、この２アルゴリズムAES、DESは、共通に、入力文に対し、「ラウンド（rounds）」と呼ばれる演算群（groupes d’operation）の系列（succession）を応用することである。ラウンドの演算は、一連のサブキー（sous-cles）のコントロールの下で行われる。該サブキーは、初期秘密キー（対象とする電子的エンティティに特定されている）から順次、作成されるものである。不正行為者は、この初期キー（以下Kと呼ぶ）を検出しようとするのである。アルゴリズムの一部は、サブキーの生成に割当てられており、AESの場合、非線形関数Fを使って、キー拡張（extension）プロセスを実行する。該関数は、前記初期キーに応用され、ついで、再度、上記関数を応用して算出したリザルトに応用される。以下、同様に繰り返される。前記サブキーは、初期キーKから算出される中間リザルトの系列から生成される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
現在まで、実際に、AESタイプのアルゴリズムに対して、DFAタイプの攻撃方法を実際使うことはできないと考えられてきた。しかしながら、本発明に基づく研究が、明らかにしたことであるが、DFAタイプの３つの攻撃が、関数Fの応用と最終「ラウンド」の開始端と同期すると、前記入力キーKが128ビットで符号化されている場合、最終サブキーの全オクテットを検出することができるのである。現在、アルゴリズムAESを使用しているほとんどシステムは、入力キーKが128ビットで符号化されている。この情報を知ることにより、入力キーを検出することができる。
【課題を解決するための手段】
【０００５】
本発明は、この種の攻撃に対して、単純で、効果的な撃退法を提供する。
本発明は、暗号化されたアクセスを使う電子的エンティティを保護する方法に関するものであって、前記エンティティは、暗号化アルゴリズムの実行手段を有する。前記手段は、それぞれ一連のサブキーを使うことにより、「ラウンド」と呼ばれる演算群の系列を、入力文に応用するものである。前記サブキーは、初期秘密キーから、巡回プロセスにより、系列的に作成されるものである。
その特徴は、巡回プロセスと呼ばれる前記ステップにおけるリザルトを記憶すること、少なくとも、前記巡回プロセスのステップの一部を再実行し、前記記憶されたものに対応するリザルトの再計算をすること、前記記憶されたリザルト値と対応する再計算リザルト値とを比較すること、仮に、前記２つの値が異なる場合、前記アルゴリズムを実行して得た、暗号文の送信を禁止すること、である。
【０００６】
実際、サブキー生成の巡回プロセスの間に、DFA攻撃に基づくエラーが発生する場合、記憶された結果に対応する再計算リザルトは、当然異なる。なぜなら、同一「エラー」を２回続けて起こすことは、現実に不可能であるからである。
【０００７】
例えば、記憶されるリザルト（中間リザルトと呼ばれる）は、キー多様化プロセスの１つのステップである。該ステップでは、非線形関数Fを先行する類似のステップのリザルトに応用する。また、サブキーの１つ（例えば、最後のサブキー）を記憶し、前記巡回プロセスの前ステップから、該サブキーを再計算することができる。
【０００８】
以下の説明に基づいて、本発明はより良く理解でき、本発明の特徴はより明らかになる。数値は、例示であり、付属の図面に参照のために付けられたものである。
【発明を実施するための最良の形態】
【０００９】
図１において、電子エンティティ１１は、ICカードで、不可欠な部品を有する。上記部品とは、即ち、金属コンタクト部１２（これは、カードに含まれるもので、IC回路１３をカードリーダと接続するためのものである）、サーバ又はこれに類するもの（IC回路は、認証の後、これと情報を交換することができる）である。前記認証には、例えばアルゴリズムAES、DESのような、秘密キーを使用する周知のアルゴリズムを使う。
典型的には、IC回路１３は、マイクロプロセッサ１４（複数の入力が、コンタクト部に接続される）と、前記マイクロプロセッサに接続されるメモリMと、から構成される。該カードが外部ユニットに接続され、所与の機能（金融取引、電話又は情報処理サービスへのアクセス、アクセスのコントロール等々）を実行する時、認証手続が、カードのなかで、実行される。該プロセスは、IC回路１３においてプログラムされており、該プログラムに、前記メモリMの１部分が提供される。
【００１０】
例えば、認証手続において、アルゴリズムAESを実行する。その動作について、図２を参照して説明する。アルゴリズムAESは、入力文MEについて処理を行う。該入力文は、電子エンティティが接続されている外部ユニットから、平文で伝送されて来る。エンティティ１１は、秘密キーKを有している。該キーは、記憶されており、アルゴリズムは、前記入力文MEを、所定数のサブキーK０、K1、K2、．．．、Kn-1、Knを使って変換した後、暗号文MCを作成する。他方、非線形関数Fは、電子エンティティの中でプログラムされており、最初はキーKに応用し、次に、キーKの変換結果のリザルトR1に応用し、更に、リザルトR１の変換結果のリザルトR2に応用する。以下同様にして、続けられる。サブキーK０、．．．Knは、該関数FによるキーKの拡張プロセスから生成されたものである。
【００１１】
詳述すれば、キーKは、１２８ビット、１９２ビット又は２５６ビットのワードである。入力文MEは、１２８ビットのワードである。如何なる組合わせも可能であるが、当業者は、実行速度と要求されるセキュリティレベルとの条件を勘案して、最良の選択をする。しかし、実際は、ほとんどのアルゴリズムAESでは、１２８ビットのキーが使われている。サブキーK０、K1、．．．Knは、入力文のフォーマットでなければならない。こうして、各サブキーは、関数Fを使うキー拡張プロセスにおいて生成される、１又は２の連続するリザルトから作成される。
【００１２】
前記の例において、キーKは、１９２ビットで符号化されている。その結果、サブキーK0は、キーKの、最初の２／３から算出される。サブキーK1は、キーＫの残りの１／３と、関数Fによる前記キーの最初の変換の中間リザルトであるR1の最初の１／３から算出される。サブキーＫ２は、中間リザルトＲ１の残りの２／３から算出される。、以下、サブキーＲｎまで同様に生成される。
【００１３】
入力文の処理については、次のように実行される。
前記入力文ＭＥは、関数即ちexclusif16によってサブキーK0と組合わせられる。その後、その結果は、サブキーK１を使って（avec intervention）、演算群（ROUND１という）で計算される。次に、前記結果は、再び、サブキーＫ２を使って、ROUND２と呼ばれる演算群で計算される。サブキーＫｎー１を使って、最後のROUNDである、ROUNDｎ−１迄、同様の計算が行われる。
各ROUND（つまり、１からｎー１まで）は、４つの変換から構成されている。しかし、サブキーＫｎを使うROUNDｎ（最終ROUND）は、３つの変換のみを有する。該最終ROUNDのリザルトは、暗号化文ＭＣであり、これは、外部に送出されるからである。
【００１４】
本発明を基礎として、以下を明らかにした。即ち、
前記のアルゴリズムAES実行中に、所定時に、指定されるような外乱を引き起こす場合、或るサブキー、殊に、前記例における最終サブキーの全オクテットを、以下の方法で、検出することができる。
【００１５】
―最後の関数Fを使って外乱を起こす場合、最後から２番目のキー拡張に関する情報を、関数Fを使って検出することができる。即ち、最後から２番目のリザルトRｍ−１の最後の４オクテットを検出することができる。
【００１６】
―関数Fによって最後から２番目の拡張実行時に外乱を起こす時、Rｍ−１に隣接した４オクテットを検出することができる。
【００１７】
―最後ラウンド(ROUNDn-1)の初期に外乱を起こす時、関数Fによって最終のキー拡張の８オクテット、つまり、Rmを検出することができる。これらオクテットはサブキーKnに属するものである。
【００１８】
―先のリザルトを処理して、関数Fによるキーの最後の拡張Rmにおいて、更に分割された６オクテットを検出することができる。これらのオクテットも、サブキーKnに属する。
【００１９】
サブキーKnの最後の２オクテットを検出するためには、これら最後の２オクテットを見つけるまで、全ての可能性を検討しなければならない。その結果、若しキーKが１２８ビットで符号化されていたならば、上記攻撃を実行するだけで、該キーを確実に検出することができる。注意すべき事は、現在使われているアルゴリズムAESの大半においては、キーKが、実際に、１２８ビットで符号化されており、中間リザルトR１、R２．．．RｍとサブキーK１、K２．．．（この場合、ｎ＝ｍ）との間の差異は、無い。何故ならば、各サブキーは、対応する中間リザルトRｉの全体（totalite）から構成されるからである。
【００２０】
しかし、上記例において、キーＫは、１９２ビットで符号化されており、上記の攻撃（既に概略を述べた）ではキーを検出することはできない。何故ならば、リザルトＲｍの全部が知られるわけではないからである。従って、不完全にしか知られていない結果から、キーＫまで「遡る」ことはできない。
しかしながら、セキュリティのレベルをかなり低めることになる。というのは、キーに関する部分的な情報を自由にできるのであるから、他の攻撃（周知の、例えば、ＤＰＡタイプのような攻撃）の効果を高めることになるからである。
【００２１】
それがどんなものであろうとも、このタイプの攻撃に対する防御方法は、中間リザルトＲｉ、例えばＲｍ、を記憶することである。又は、サブキー、例えば、この場合では、最後のサブキーＫｎ、を記憶することである。これにより、関数Ｆによるキー拡張プロセスを、実質的に再実行し、少なくとも、一連の、前記サブキー作成のステップの一部分を、つまり、記憶されたものに対応するリザルトを再計算するのである。この時から、２つの値（中間リザルト又はサブキー）を使うことができる。そして、電子エンティティがＤＦＡタイプの攻撃を受けかった場合には、これらの値は同一でなければならない。もし、これらの値が異なっている場合は、リザルトの値又は記憶されたサブキーの値を、対応する再計算されたリザルト又はサブキーと比較し、最終ラウンドから出力される暗号文ＭＣの送出を禁止するだけで十分である。
【００２２】
図３はこれを説明するものである。同図において、アルゴリズムAESは、（実施態様によれば）前記サブキーの系列を生成するステップ全部、具体的には、キーＫの拡張プロセスを再実行して、終了しているものとする。この実施例によると、図２を参照して説明したアルゴリズムAESは、最初に実行され、その結果、暗号文ＭＣが作成されている。最終サブキーＫｎが記憶されている。
【００２３】
次に、前記エンティティの秘密キーＫから、関数Ｆを使って、キー拡張プロセスを再実行される。該プロセスにより、新たな値Ｋｎが決定される。以前に記憶された値と前記新たな値を比較する（一致性テスト）。仮に２つの値が一致する場合は、暗号文ＭＣの送出が許可される。然し、２つの値が一致しない場合は、外部に、値(valeur)ＭＣは送出されず、エラー文が送出される。
【００２４】
前記した最後の例において、キー拡張の全プロセスを再実行し、最終サブキーＫｎの新たな計算を行う。以前説明したように、中間リザルトＲｉ又はサブキーを記憶し、少なくとも、サブキーの系列の生成ステップの一部を再実行し、中間リザルト又は記憶されたものに対応するサブキーの再計算を行う。
一般的に、関数Ｆを使うキー拡張の全部のサイクルを再実行するのではなく、少なくとも、前記サブキーの系列の生成ステップの一部を、より具体的に言えば、関数Ｆによる拡張プロセスの最終部分を再実行する場合は、有利である。
【００２５】
（キーＫから始まる）キー拡張の、全巡回プロセスを再実行しない場合は、再出発する中間リザルト（又はサブキー）を記憶しなければならないことは明らかである。
【００２６】
本発明は、アルゴリズムAESのセキュリティ化に限定されるものではない。その例として、周知のアルゴリズムDESを、図４に示す。該アルゴリズムにおいて、キーＫの拡大プロセスは、概略、以下の通りである。
キーＫ（６４ビット）は、ビット上のパーミュテーションＰ１により、５６ビットに縮小化される。結果、２８ビットの２ワード２０に分割される。
【００２７】
場合によって、前記２部分の各々に対し、１又は２ビットのパーミュテーションＲ（ビット上の循環ローテーション）を行う。２つのリザルトは集められて、５６ビットから構成される、新たなワード２１を形成する。該ワードは、新たなパーミュテーションＰ２によって、４８ビットに連結され、サブキーＫ１が生成される。
【００２８】
更に、５６ビットのワード２１が、２つの循環ローテーションRに従い処理され、新ワード２２が生成される。新ワード２２に対して、再度、パーミュテーションＰ２を行い、サブキーＫ２が生成される。この処理が、Ｋ１６に至るまで、繰り返される。
【００２９】
他方、６４ビットの入力文ＭＥに、以下の変換を行う。最初に、ビット上のパーミュテーションＰ３を行う。その結果に、サブキーK１を使いながら、ROUND１を構成する関数を使って計算する。次に、対応する別のサブキーを使いながら、次の別のラウンドを実行する（サブキーK１６に至るまで）。最終ラウンドのリザルトに、逆パーミュテーションP３−を行う。該逆パーミュテーションを行って、送信用の暗号文MCが作成される。
【００３０】
前記したアルゴリズムDESの一般構造は、本発明の実施に適するものである。例えば、サブキーK16を記憶し、パーミュテーションP１とローテーションRからなるキーKの多様化（divertification）プロセスの全プロセス又は部分プロセスを再実行するだけで十分である。テストは、最終パーミュテーションP2の前に、最終の中間リザルト（ワード３６）の値について行われる。この場合、それは、記憶される最終リザルトであって、サブキーK１６ではない。
【産業上の利用可能性】
【００３１】
勿論、本発明は、前記のプロセスを実行する手段を有する全ての電子エンティティに関するものである。殊に全てのICカードに関するものである。
【図面の簡単な説明】
【００３２】
【図１】本発明を実施するＩＣカードのような電子エンティティの概略図である。
【図２】ＡＥＳと呼ばれるアルゴリズムを説明するフローチャートである。
【図３】ＡＥＳの実行を例とした本発明の実施例を説明するフローチャートである。
【図４】本発明を応用するアルゴリズムＤＥＳを説明するフローチャートである。
【図１】
2005522912.tif 000003
【図２】
2005522912.tif 000004
【図３】
2005522912.tif 000005
【図４】
2005522912.tif 000006
【国際調査報告】
2005522912.tif 000007
2005522912.tif 000008
2005522912.tif 000009
2005522912.tif 000010