説明

暗号化されたアクセスを使う電子的エンティティのセキュリティ化方法

【課題】DFAタイプの3つの攻撃に対して、単純で、効果的な撃退法を提供することである。
【解決手段】本発明のセキュリティ方法は、暗号化アルゴリズムの一部をなす巡回プロセスの選択されたステップの計算結果(リザルト)を記憶し、少なくとも前記巡回プロセスの少なくとも1部を再実施し、前記記憶したものに対応する新リザルトを再計算し、前記2つのリザルトを比較し、両者が異なる場合は、暗号文(MC)の送出を禁止することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化されたアクセスを使う電子的エンティティ(例えば、ICカード)のセキュリティ化方法に関する。殊に、DFA(Differential Fault Analysis)という周知の攻撃を、検知する方法を改良することを目的とする。本発明は、殊に、AES又はDESのような、周知のアルゴリズムを保護することを目的とするものである。
【背景技術】
【0002】
暗号化されたアクセスを使う電子的エンティティ(殊に、ICカード)は、DFAと呼ばれる攻撃に対して脆弱である。DFAは、中間算出(resultat intermediaire、以下、中間リザルトという)の値を変えて、暗号アルゴリズムの実行を妨害し(perturber)、正規の暗号文とエラーを有する暗号文との間の差分を処理し、該差分から電子エンティティの秘密キー情報を推理するものである。ICカードの外部環境に影響を与えることにより、エラーを極めて容易に発生できる。例えば、ピーク電圧を発生させたり、カードに(例えば、レーザ光線の)閃光を照射したり、外部クロックの周波数を強制的に変更させたりする等である。
【0003】
よく用いられるアルゴリズムの中の、DES(Data Encryption Standard)及び、殊に、AES(Advanced Encryption Standard)について述べる。留意することは、この2アルゴリズムAES、DESは、共通に、入力文に対し、「ラウンド(rounds)」と呼ばれる演算群(groupes d’operation)の系列(succession)を応用することである。ラウンドの演算は、一連のサブキー(sous-cles)のコントロールの下で行われる。該サブキーは、初期秘密キー(対象とする電子的エンティティに特定されている)から順次、作成されるものである。不正行為者は、この初期キー(以下Kと呼ぶ)を検出しようとするのである。アルゴリズムの一部は、サブキーの生成に割当てられており、AESの場合、非線形関数Fを使って、キー拡張(extension)プロセスを実行する。該関数は、前記初期キーに応用され、ついで、再度、上記関数を応用して算出したリザルトに応用される。以下、同様に繰り返される。前記サブキーは、初期キーKから算出される中間リザルトの系列から生成される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
現在まで、実際に、AESタイプのアルゴリズムに対して、DFAタイプの攻撃方法を実際使うことはできないと考えられてきた。しかしながら、本発明に基づく研究が、明らかにしたことであるが、DFAタイプの3つの攻撃が、関数Fの応用と最終「ラウンド」の開始端と同期すると、前記入力キーKが128ビットで符号化されている場合、最終サブキーの全バイトを検出することができるのである。現在、アルゴリズムAESを使用しているほとんどシステムは、入力キーKが128ビットで符号化されている。この情報を知ることにより、入力キーを検出することができる。
【課題を解決するための手段】
【0005】
本発明は、この種の攻撃に対して、単純で、効果的な撃退法を提供する。
本発明は、暗号化されたアクセスを使う電子的エンティティを保護する方法に関するものであって、前記エンティティは、暗号化アルゴリズムの実行手段を有する。前記手段は、それぞれ一連のサブキーを使うことにより、「ラウンド」と呼ばれる演算群の系列を、入力文に応用するものである。前記サブキーは、初期秘密キーから、巡回プロセスにより、系列的に作成されるものである。
その特徴は、巡回プロセスと呼ばれる前記ステップにおけるリザルトを記憶すること、少なくとも、前記巡回プロセスのステップの一部を再実行し、前記記憶されたものに対応するリザルトの再計算をすること、前記記憶されたリザルト値と対応する再計算リザルト値とを比較すること、仮に、前記2つの値が異なる場合、前記アルゴリズムを実行して得た、暗号文の送信を禁止すること、である。
【0006】
実際、サブキー生成の巡回プロセスの間に、DFA攻撃に基づくエラーが発生する場合、記憶された結果に対応する再計算リザルトは、当然異なる。なぜなら、同一「エラー」を2回続けて起こすことは、現実に不可能であるからである。
【0007】
例えば、記憶されるリザルト(中間リザルトと呼ばれる)は、キー多様化プロセスの1つのステップである。該ステップでは、非線形関数Fを先行する類似のステップのリザルトに応用する。また、サブキーの1つ(例えば、最後のサブキー)を記憶し、前記巡回プロセスの前ステップから、該サブキーを再計算することができる。
【0008】
以下の説明に基づいて、本発明はより良く理解でき、本発明の特徴はより明らかになる。数値は、例示であり、付属の図面に参照のために付けられたものである。
【図面の簡単な説明】
【0009】
【図1】本発明を実施するICカードのような電子エンティティの概略図である。
【図2】AESと呼ばれるアルゴリズムを説明するフローチャートである。
【図3】AESの実行を例とした本発明の実施例を説明するフローチャートである。
【図4】本発明を応用するアルゴリズムDESを説明するフローチャートである。
【発明を実施するための形態】
【0010】
図1において、電子エンティティ11は、ICカードで、不可欠な部品を有する。上記部品とは、即ち、金属コンタクト部12(これは、カードに含まれるもので、IC回路13をカードリーダと接続するためのものである)、サーバ又はこれに類するもの(IC回路は、認証の後、これと情報を交換することができる)である。前記認証には、例えばアルゴリズムAES、DESのような、秘密キーを使用する周知のアルゴリズムを使う。
典型的には、IC回路13は、マイクロプロセッサ14(複数の入力が、コンタクト部に接続される)と、前記マイクロプロセッサに接続されるメモリMと、から構成される。該カードが外部ユニットに接続され、所与の機能(金融取引、電話又は情報処理サービスへのアクセス、アクセスのコントロール等々)を実行する時、認証手続が、カードのなかで、実行される。該プロセスは、IC回路13においてプログラムされており、該プログラムに、前記メモリMの1部分が提供される。
【0011】
例えば、認証手続において、アルゴリズムAESを実行する。その動作について、図2を参照して説明する。アルゴリズムAESは、入力文MEについて処理を行う。該入力文は、電子エンティティが接続されている外部ユニットから、平文で伝送されて来る。エンティティ11は、秘密キーKを有している。該キーは、記憶されており、アルゴリズムは、前記入力文MEを、所定数のサブキーK0、K1、K2、...、Kn-1、Knを使って変換した後、暗号文MCを作成する。他方、非線形関数Fは、電子エンティティの中でプログラムされており、最初はキーKに応用し、次に、キーKの変換結果のリザルトR1に応用し、更に、リザルトR1の変換結果のリザルトR2に応用する。以下同様にして、続けられる。サブキーK0、...Knは、該関数FによるキーKの拡張プロセスから生成されたものである。
【0012】
詳述すれば、キーKは、128ビット、192ビット又は256ビットのワードである。入力文MEは、128ビットのワードである。如何なる組合わせも可能であるが、当業者は、実行速度と要求されるセキュリティレベルとの条件を勘案して、最良の選択をする。しかし、実際は、ほとんどのアルゴリズムAESでは、128ビットのキーが使われている。サブキーK0、K1、...Knは、入力文のフォーマットでなければならない。こうして、各サブキーは、関数Fを使うキー拡張プロセスにおいて生成される、1又は2の連続するリザルトから作成される。
【0013】
前記の例において、キーKは、192ビットで符号化されている。その結果、サブキーK0は、キーKの、最初の2/3から算出される。サブキーK1は、キーKの残りの1/3と、関数Fによる前記キーの最初の変換の中間リザルトであるR1の最初の1/3から算出される。サブキーK2は、中間リザルトR1の残りの2/3から算出される。、以下、サブキーRnまで同様に生成される。
【0014】
入力文の処理については、次のように実行される。
前記入力文MEは、関数即ちexclusif16によってサブキーK0と組合わせられる。その後、その結果は、サブキーK1を使って、演算群(ROUND1という)
で計算される。次に、前記結果は、再び、サブキーK2を使って、ROUND2と呼ばれる演算群で計算される。サブキーKnー1を使って、最後のROUNDである、ROUNDn−1迄、同様の計算が行われる。
各ROUND(つまり、1からnー1まで)は、4つの変換から構成されている。しかし、サブキーKnを使うROUNDn(最終ROUND)は、3つの変換のみを有する。該最終ROUNDのリザルトは、暗号化文MCであり、これは、外部に送出されるからである。
【0015】
本発明を基礎として、以下を明らかにした。即ち、
前記のアルゴリズムAES実行中に、所定時に、指定されるような外乱を引き起こす場合、或るサブキー、殊に、前記例における最終サブキーの全バイトを、以下の方法で、検出することができる。
【0016】
―最後の関数Fを使って外乱を起こす場合、最後から2番目のキー拡張に関する情報を、関数Fを使って検出することができる。即ち、最後から2番目のリザルトRm−1の最後の4バイトを検出することができる。
【0017】
―関数Fによって最後から2番目の拡張実行時に外乱を起こす時、Rm−1に隣接した4バイトを検出することができる。
【0018】
―最後ラウンド(ROUNDn-1)の初期に外乱を起こす時、関数Fによって最終のキー拡張の8バイト、つまり、Rmを検出することができる。これらバイトはサブキーKnに属するものである。
【0019】
―先のリザルトを処理して、関数Fによるキーの最後の拡張Rmにおいて、更に分割された6バイトを検出することができる。これらのバイトも、サブキーKnに属する。
【0020】
サブキーKnの最後の2バイトを検出するためには、これら最後の2バイトを見つけるまで、全ての可能性を検討しなければならない。その結果、若しキーKが128ビットで符号化されていたならば、上記攻撃を実行するだけで、該キーを確実に検出することができる。注意すべき事は、現在使われているアルゴリズムAESの大半においては、キーKが、実際に、128ビットで符号化されており、中間リザルトR1、R2...RmとサブキーK1、K2...(この場合、n=m)との間の差異は、無い。何故ならば、各サブは、対応する中間リザルトRiの全体(totalite)から構成されるからである。
【0021】
しかし、上記例において、キーKは、192ビットで符号化されており、上記の攻撃(既に概略を述べた)ではキーを検出することはできない。何故ならば、リザルトRmの全部が知られるわけではないからである。従って、不完全にしか知られていない結果から、キーKまで「遡る」ことはできない。
しかしながら、セキュリティのレベルをかなり低めることになる。というのは、キーに関する部分的な情報を自由にできるのであるから、他の攻撃(周知の、例えば、DPAタイプのような攻撃)の効果を高めることになるからである。
【0022】
それがどんなものであろうとも、このタイプの攻撃に対する防御方法は、中間リザルトRi(例えばRm)、又は、サブキー(例えば、この場合では、最後のサブキーKn)を記憶することである。これにより、関数Fによるキー拡張プロセスを、実質的に再実行し、少なくとも、一連の、前記サブキー作成のステップの一部分を、つまり、記憶されたものに対応するリザルトを再計算するのである。この時から、2つの値(中間リザルト又はサブキー)を使うことができる。そして、電子エンティティがDFAタイプの攻撃を受けかった場合には、これらの値は同一でなければならない。もし、これらの値が異なっている場合は、リザルトの値又は記憶されたサブキーの値を、対応する再計算されたリザルト又はサブキーと比較し、最終ラウンドから出力される暗号文MCの送出を禁止するだけで十分である。
【0023】
図3はこれを説明するものである。同図において、アルゴリズムAESは、(実施態様によれば)前記サブキーの系列を生成するステップ全部、具体的には、キーKの拡張プロセスを再実行して、終了しているものとする。この実施例によると、図2を参照して説明したアルゴリズムAESは、最初に実行され、その結果、暗号文MCが作成されている。最終サブキーKnが記憶されている。
【0024】
次に、前記エンティティの秘密キーKから、関数Fを使って、キー拡張プロセスを再実行される。該プロセスにより、新たな値Knが決定される。以前に記憶された値と前記新たな値を比較する(一致性テスト)。仮に2つの値が一致する場合は、暗号文MCの送出が許可される。然し、2つの値が一致しない場合は、外部に、値(valeur)MCは送出されず、エラー文が送出される。
【0025】
前記した最後の例において、キー拡張の全プロセスを再実行し、最終サブキーKnの新たな計算を行う。以前説明したように、中間リザルトRi又はサブキーを記憶し、少なくとも、サブキーの系列の生成ステップの一部を再実行し、中間リザルト又は記憶されたものに対応するサブキーの再計算を行う。
一般的に、関数Fを使うキー拡張の全部のサイクルを再実行するのではなく、少なくとも、前記サブキーの系列の生成ステップの一部を、より具体的に言えば、関数Fによる拡張プロセスの最終部分を再実行する場合は、有利である。
【0026】
(キーKから始まる)キー拡張の、全巡回プロセスを再実行しない場合は、再出発する中間リザルト(又はサブキー)を記憶しなければならないことは明らかである。
【0027】
本発明は、アルゴリズムAESのセキュリティ化に限定されるものではない。その例として、周知のアルゴリズムDESを、図4に示す。該アルゴリズムにおいて、キーKの拡大プロセスは、概略、以下の通りである。
キーK(64ビット)は、ビット上のパーミュテーションP1により、56ビットに縮小化される。結果、28ビットの2ワード20に分割される。
【0028】
場合によって、前記2部分の各々に対し、1又は2ビットのパーミュテーションR(ビット上の循環ローテーション)を行う。2つのリザルトは集められて、56ビットから構成される、新たなワード21を形成する。該ワードは、新たなパーミュテーションP2によって、48ビットに連結され、サブキーK1が生成される。
【0029】
更に、56ビットのワード21が、2つの循環ローテーションRに従い処理され、新ワード22が生成される。新ワード22に対して、再度、パーミュテーションP2を行い、サブキーK2が生成される。この処理が、K16に至るまで、繰り返される。
【0030】
他方、64ビットの入力文MEに、以下の変換を行う。最初に、ビット上のパーミュテーションP3を行う。その結果に、サブキーK1を使いながら、ROUND1を構成する関数を使って計算する。次に、対応する別のサブキーを使いながら、次の別のラウンドを実行する(サブキーK16に至るまで)。最終ラウンドのリザルトに、逆パーミュテーションP3を行う。該逆パーミュテーションを行って、送信用の暗号文MCが作成される。
【0031】
前記したアルゴリズムDESの一般構造は、本発明の実施に適するものである。例えば、サブキーK16を記憶し、パーミュテーションP1とローテーションRからなるキーKの多様化(divertification)プロセスの全プロセス又は部分プロセスを再実行するだけで十分である。テストは、最終パーミュテーションP2の前に、最終の中間リザルト(ワード36)の値について行われる。この場合、それは、記憶される最終リザルトであって、サブキーK16ではない。
【産業上の利用可能性】
【0032】
勿論、本発明は、前記のプロセスを実行する手段を有する全ての電子エンティティに関するものである。殊に全てのICカードに関するものである。

【特許請求の範囲】
【請求項1】
暗号化アルゴリズムの実行手段を有する暗号化アクセスを有する電子エンティティのセキュリティ化方法であって、
前記アルゴリズムは、演算群の系列(「ラウンド」と言う)を入力文に応用するステップからなり、該ラウンドは、一連のサブキー(K0、...Kn)を使い、各サブキーは、初期キー(K)から実行される巡回プロセスにより継続的に生成されるものであって、
前記巡回プロセスの中間ステップのリザルト(Rm,Kn)を記憶し、少なくとも、前記巡回プロセスのステップの一部の再実行を行い、記憶されたものに対応するリザルトを再計算し、前記対応する再計算リザルト値と前記記憶したリザルト値とを比較し、前記2つの値が異なる場合は、前記アルゴリズムを実施して作成した暗号文(MC)の送出を禁止することを特徴とする暗号化アクセスを有する電子エンティティのセキュリティ方法。
【請求項2】
サブキー(Kn)の値を記憶し、前記巡回プロセスのステップの一部の再実行を行い、少なくとも、記憶した前記サブキーに対応するサブキーを再計算することを特徴とする請求項1記載の方法。
【請求項3】
前記巡回プロセスの中間リザルト(Rm)の値を記憶し、前記巡回プロセスのステップの一部の再実行を行い、少なくとも、前記記憶したものに対応するリザルトを再計算することを特徴とする請求項1記載の方法。
【請求項4】
最終サブキー(Kn)値を記憶し、前記サブキーの系列を生成するステップの最終部分の再実行を行い、少なくとも、前記最終サブキーの第2回目の計算を行うことを特徴とする請求項2記載の方法。
【請求項5】
前記サブキーの系列の全生成ステップを再実行することを特徴とする請求項4記載の方法。
【請求項6】
AESアルゴリズムに応用することを特徴とする請求項1乃至5記載の方法。
【請求項7】
DESアルゴリズムに応用することを特徴とする請求項1乃至6記載の方法。
【請求項8】
請求項1乃至7に基づく方法を実行する手段を有することを特徴とする自律型電子エンティティ。
【請求項9】
ICカードの形態で構成されることを特徴とする請求項8記載の電子エンティティ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−103686(P2011−103686A)
【公開日】平成23年5月26日(2011.5.26)
【国際特許分類】
【出願番号】特願2011−207(P2011−207)
【出願日】平成23年1月4日(2011.1.4)
【分割の表示】特願2003−582947(P2003−582947)の分割
【原出願日】平成15年4月2日(2003.4.2)
【出願人】(508372630)オベルトゥル テクノロジ (11)
【Fターム(参考)】