JP4195199B2 - 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法 - Google Patents

秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法 Download PDF

Info

Publication number
JP4195199B2
JP4195199B2 JP2000577797A JP2000577797A JP4195199B2 JP 4195199 B2 JP4195199 B2 JP 4195199B2 JP 2000577797 A JP2000577797 A JP 2000577797A JP 2000577797 A JP2000577797 A JP 2000577797A JP 4195199 B2 JP4195199 B2 JP 4195199B2
Authority
JP
Japan
Prior art keywords
sequence
data
output data
execution
countermeasure method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000577797A
Other languages
English (en)
Other versions
JP2002528754A (ja
Inventor
クラヴィエ、クリストフ
ブノワ,オリビエ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus SA filed Critical Gemplus SA
Publication of JP2002528754A publication Critical patent/JP2002528754A/ja
Application granted granted Critical
Publication of JP4195199B2 publication Critical patent/JP4195199B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)

Description

【0001】
本発明は、秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法に関するものである。サービスやデータへのアクセスが厳正に管理されるアプリケーションで用いられる。そのアーキテクチャは、マイクロプロセッサやメモリの周辺で形成されるものであり、該メモリの一つのプログラム・メモリは秘密鍵を保存している。
【0002】
このようなあるアプリケーションについて、これらの構成部品は、チップカード内で特に用いられる。例えば、あるデータ・バンクにアクセスするアプリケーション、銀行業務アプリケーション、遠隔式通行料金徴収アプリケーション、また例えば、テレビ用、ガソリン供給や自動車道路の通行料金徴収所を通過する為のものなどである。
【0003】
従って、これらの構成部品やこれらのカードは、秘密鍵式アルゴリズムを利用するものであり、その中でも最もよく知られているのがDESアルゴリズム(英語文献のData Encryption Standardの略語)である。秘密鍵式暗号化アルゴリズムには他にもRC5アルゴリズムやCOMP128アルゴリズムがある。言うまでもなく、ここに挙げたもので全てが網羅されているわけではない。
【0004】
一般的かつ簡潔に述べると、これらのアルゴリズムが果たす機能は、ホスト・システム(サーバー、銀行の現金自動支払い機…)とカード内に収納された秘密鍵とで(カードに)入力されたメッセージから、暗号化されたメッセージを計算することと、この暗号化されたメッセージをホスト・システムに返すことであり、例えばホスト・システムは、構成部品またはカードを認証したり、データを交換したりすることができるようになる。
【0005】
ところで、これらの構成部品やこれらのカードは、消費電力の差分を解析することから成る攻撃に対しては弱く、悪意ある第三者が、秘密鍵を発見できることになる。これらの攻撃をDPA攻撃と言い、Differential Power Analysis(電力差分解析)という英語の略語である。
【0006】
これらのDPA攻撃の原理は、マイクロプロセッサが命令を実行する際の消費電力は、処理されるデータにより変化するという事実に基づいている。
【0007】
特に1ビットデータを処理するマイクロプロセッサの一つの命令は、このビットの値が「1」か「0」かによって、波形の異なる二種類の電流を発生させる。典型的には、その命令が「0」を処理するなら、消費される電流の第一の振幅がこの実行時点に現れ、その命令が「1」を処理するなら、第一とは異なる第二の振幅が現れることになる。
【0008】
実行される計算や、用いられるパラメータなど、暗号化アルゴリズムの特徴は既に知られたものである。唯一知られていないのは、プログラム・メモリに保存された秘密鍵である。これは、入力されたメッセージと、返された暗号化されたメッセージを知っているだけでは、演繹不可能である。
【0009】
しかしながら、暗号化アルゴリズムでは、計算される幾つかのデータは、カードに平文で入力されたメッセージと、カードに保存されている秘密鍵とだけに依存している。そのアルゴリズムで計算される他のデータもまた暗号化されたメッセージ(一般的にはカードからホスト・システムに向かって平文で出力される)と、カードに保存されている秘密鍵とだけから再計算することが可能である。さらに詳しく言うと、これらの特定データの各ビットは、入力又は出力メッセージと、鍵の限定された数の特定ビットとに基づいて、決定することができる。
【0010】
従って、特定データの各ビットは、その鍵の、ある特定ビットが集まって形成された部分鍵に対応している。
【0011】
予想可能なこれらの特定データのビットを、以後、標的ビットと呼ぶことにする。
【0012】
従って、DPA攻撃の基本的な考え方は、まず、命令が「1」を処理するのか「0」を処理するのかにより消費電力の波形が異なるというその差分と、既知の入力又は出力メッセージ及び対応する部分鍵の推定からそのアルゴリズムの命令によって標的ビットを計算することができるというその可能性とを、利用することなのである。
【0013】
従って、DPA攻撃の原理は、与えられた部分鍵の推定を検証することであり、電流の多数の測定曲線に、つまりそれぞれが攻撃者の知っている入力メッセージに関する曲線に、選択のブール関数を、つまり部分鍵の推定の関数であって一つの標的ビットの予測値により各曲線毎に規定される関数を、当てはめることである。
【0014】
当該部分鍵を推定することにより、与えられた入力又は出力メッセージについて、この標的ビットが取る値は「0」なのか「1」なのかを予測することが実際に可能になる。
【0015】
その際に、標的ビットによる予測値「0」又は「1」を、選択のブール関数として、対象となる部分鍵を推定する為に当てはめ、これらの曲線を二つのパケットに選別する。その第一パケットは、部分鍵の推定に従って、「0」で標的ビットを処理した曲線を再グループ化したものであり、第二パケットは、「1」で標的ビットを処理した曲線を再グループ化したものである。各パケットごとに消費電力の平均を取ることで、第一パケットの平均消費曲線M0(t)と、第二パケットの平均消費曲線M1(t)とが得られる。
【0016】
部分鍵の推定が当たっていれば、第一パケットは、「0」で標的ビットを処理したN本の曲線のなかから全ての曲線が実際に再グループ化されていることになり、第二パケットは、「1」で標的ビットを処理したN本の曲線のなかから全ての曲線が実際に再グループ化されていることになる。その場合、第一パケットの平均消費曲線M0(t)は、クリティカル命令を実行する瞬間は除いて、「0」で標的ビットを処理する際に特徴のある消費電力の波形(波形0)を伴う平均消費を、どの場所でも示すことになる。換言すれば、常に「0」という値をもった標的ビットは別として、全曲線について、処理される全ビットが「1」という値をもつ可能性も「0」という値をもつ可能性も同じ確率で与えられている。これは以下の式で表現することができる。
M0(t)=〔(波形0+波形1)/2〕ttci+〔波形0tci即ち
M0(t)=〔Vmtttci+〔波形0tci
但し、ここでtciは、クリティカル命令が実行されたクリティカル時点を示す。
【0017】
同様に、第二パケットの平均消費曲線M1(t)は、クリティカル命令を実行する瞬間は除いて、「1」で標的ビットを処理する際に特徴のある消費電力の波形(波形1)を伴う平均消費を、どの場所でも示すことになる。これは以下の式で表現することができる。
M1(t)=〔(波形0+波形1)/2〕ttci+〔波形1tci即ち
M1(t)=〔Vmtttci+〔波形1tci
【0018】
これで、2の波形、波形0と波形1は等しくないことが分かる。その際に、曲線M0(t)と曲線M1(t)との差分から、このビットを処理するクリティカル命令の実行時点tci、即ち図1に示された例で言うとtc0からtc6のところで、波形0─波形1に等しい振幅を有する信号DPA(t)が得られ、クリティカル時点外では、ほぼゼロに等しい振幅を有する信号が得られるということである。
【0019】
部分鍵の推定が外れた場合は、その抽出は現実に即していないことになる。その場合、統計的には、各パケットの中には、実際には「0」で標的ビットを処理した曲線と、「1」で標的ビットを処理した曲線とが同数存在することになる。その場合、結果として得られる平均曲線M0(t)の位置は、式(波形0+波形1)/2=Vmで得られる平均値の周辺であり、というのも、各曲線について、標的ビットを含めた処理された全ビットに、「0」の値を取るのと、「1」の値を取るのと同じ確率が与えられているからである。
【0020】
第二パケットについても同じ推論が成り立ち、それによれば、平均電力消費曲線M1(t)の振幅は、式(波形0+波形1)/2=Vmで得られる平均値の周辺にあることになる。
【0021】
この場合、M0(t)− M1(t)での差から算出される信号DPA(t)は、ほぼゼロに等しい。部分鍵の推定が外れた場合の信号DPA(t)は、図2に示されている。
【0022】
従って、DPA攻撃は、処理されるビットの値に応じた命令実行中の消費電力の波形の差分を用いて、与えられた部分鍵を推定する為の選択のブール関数に従った消費電力曲線の抽出を行うことである。得られた曲線の二つのパケット間での平均消費電力の差分を解析することにより、情報信号DPA(t)が得られる。
【0023】
その場合、DPA攻撃は一般に以下のように進行する。
a−N個(例えばNは1000に等しい)の乱数メッセージを抽出する。
b−(構成部品の給電端子で測定して)消費電力の曲線を毎回拾い、N個の乱数メッセージのそれぞれにつき、カードによるアルゴリズムの実行を行わせる。
c−部分鍵の推定を行う。
d−乱数メッセージのそれぞれにつき、標的ビット内の一つの値を予測し、該値は、メッセージ(入力又は出力)の数ビットと、推定された部分鍵とのみに依存するものであって、それによりブール選択関数を得る。
e−このブール選択関数により(つまり、部分鍵の推定の下、各曲線についての、この標的ビットの予測値が「0」であるか「1」であるかにより)曲線を選別する。
f─結果として得られた平均消費電力曲線を、各パケットにおいて計算する。
g−これらの平均曲線の差を出し、信号DPA(t)を得る。
【0024】
部分鍵の推定が当たっていれば、ブール選択関数も当たっており、第一パケットの曲線は、入力又は出力で適用されるメッセージが、カード内で「0」の標的ビットを与えた曲線に実際に対応しており、第二パケットの曲線は、入力又は出力で適用されるメッセージが、カード内で「1」の標的ビットを与えた曲線に実際に対応している。
【0025】
従って、図1の場合において、信号DPA(t)は、クリティカル命令の実行(標的ビットを処理する)に対応するtc0からtc6までの時点においてゼロではない。
【0026】
攻撃者はクリティカル時点を精確に知る必要はないということに注意されたい。捕捉期間中に少なくとも一つのクリティカル時点があれば十分である。
【0027】
部分鍵の推定が当たっていなければ、抽出は現実に即しておらず、その場合、各パケットの中には、実際には、「0」の標的ビットに対応する曲線と、「1」の標的ビットに対応する曲線とが、同数あることになる。(図2に示されているように)いずれの場合も信号DPA(t)はほぼゼロである。ステップc−に戻って部分鍵の推定をやり直さなければならない。
【0028】
推定が正しいことが判明すれば、鍵全体を再構成するまで、他の部分鍵の評価に移ることができる。例えば、DESアルゴリズムでは、64ビットの鍵を使うが、そのうちの56ビットだけが有効である。DPA攻撃を行うと、有効な56ビットのうちの少なくとも48ビットを再構成することができる。
【0029】
本発明の目的は、たとえ部分鍵の推定が当たっている場合でも、信号DPA(t)をゼロにするような対抗措置方法を電子構成部品において利用することである。
【0030】
このようにすれば、部分鍵の推定が当たっている場合を、部分鍵の推定が外れている場合から見分けることが完全にできなくなる。この対抗措置方法により、電子構成部品はDPA攻撃から守られる。
【0031】
本発明によれば、対抗措置方法は、標的ビット、即ちクリティカル命令によって処理されるデータを、予測不可能にすることができる。
【0032】
事実、この対抗措置方法のため、入力時に用いられるメッセージのそれぞれについて、クリティカル命令で処理される標的ビットは、同じ確率で0又は1の値をとる。攻撃者が、自分で計算したブール選択関数を使って所与の部分鍵の推定に基づき作成する各パケットの曲線においては、実際に標的ビット「0」を処理した曲線も、実際に「1」の標的ビットを処理した曲線も、同じことになる。信号DPA(t)は、部分鍵の推定が当たっていようといなかろうと、常にゼロになるであろう。
【0033】
従って、本発明の特徴として挙げられるように、本発明は、秘密鍵式暗号化アルゴリズムを利用する電子構成部品内での対抗措置方法に関するものであり、そのアルゴリズムの利用には入力データから出力データを算出する為の第一手段を使用することが含まれ、出力データおよび/または派生データはクリティカル命令で処理される。本発明の対抗措置方法は、出力データおよび派生データが予測不可能になるように、他の手段を用いることが準備されている。
【0034】
本発明では、様々な手段の使用は、二分の一の確率の統計法則によって制御される。
【0035】
本発明の他の特徴と利点は、添付図面を参照しつつ、以下の説明により詳細に述べられるが、説明はあくまで参考に供するものであって、説明した事項のみに限定する趣旨のものではない。
・図1及び2は、既に説明したが、DPA(t)信号を示すものである。その信号はDPA攻撃を行う場合、秘密鍵Kの部分鍵を推測していくにつれて、入手可能である。
・図3及び4は、DESアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートである。
・図5は、DESアルゴリズムで用いられる演算SBOXのブロック図である。
・図6は、演算SBOXで用いられる入力と出力の基本定数表の一例を示す。
・図7及び8は、本発明の対抗措置方法の第一の実施態様による、DESアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートの一例を示している。
・図9及び10は、それぞれ本発明で用いられる第二と第三の基本定数表を示している。
・図11は、本発明の対抗措置方法の実施態様によるDES実行の一般的フローチャートを示している。
・図12は、本発明の対抗措置方法を利用する電子構成部品を備えたチップカードの簡略化したブロック図を示す。
【0036】
本発明をDES暗号アルゴリズムへの一つの応用例において説明していく。本発明はこの例のみに限定されるものではない。本発明は、秘密鍵式暗号化アルゴリズム一般に応用される。
【0037】
暗号化アルゴリズムDES(以後、DESあるいはDESアルゴリズムと略称する)は、図3及び4に示されたように、T1からT16の記号を付された十六サイクルの計算を含んでいる。
【0038】
DESは、まず入力メッセージM(図3)についての最初の置換IPから始まる。入力メッセージMは64ビットのワードfである。置換後、64ビットのワードeが得られ、それを二つに分割して最初のサイクル(T1)の入力パラメータL0とR0を形成する。L0は、ワードeのより重みのある方の32ビットを含む32ビットのワードdである。R0は、ワードeのより軽めの方の32ビットを含む32ビットのワードhである。
【0039】
秘密鍵Kは64ビットのワードqであり、それ自体が置換及び圧縮(key perm)されて、56ビットのワードrを算出する。
【0040】
最初のサイクルは、パラメータR0について、拡張及び置換から成る演算EXP PERMが含まれ、48ビットのワードlの出力が得られる。
【0041】
このワードlは、XORと記された排他的論理和型の演算において、パラメータK1と組み合わされて、48ビットのワードbを算出する。パラメータK1は48ビットのワードmであり、ワードrを、まずシフト(図3及び4のSHIFTと記された演算)し、その後、置換及び圧縮(COMP PERMと記された演算)を行って得られる。
【0042】
ワードbは、SBOXと記された演算を適用されて、出力では32ビットのワードaが得られる。この演算は特に図5及び6との関連で詳細に説明することとする。
【0043】
ワードaは、置換P PERMを受け、32ビットのワードcを出力する。
【0044】
このワードcは、XORと記された排他的論理和型の演算において、最初のサイクルT1の入力パラメータL0と組み合わされ、32ビットのワードgを出力する。
【0045】
最初のサイクルのワードh(=R0)は、次のサイクル(T2)の入力パラメータL1を与え、最初のサイクルのワードgは、次のサイクルの入力パラメータR1を与える。最初のサイクルのワードpは、次のサイクルの入力rを与える。
【0046】
他のサイクルT2からT16も同様に進行するが、但し、シフト演算SHIFTは別であり、該シフト演算は、対象となるサイクルによって一または二の位置で行われる。
【0047】
従って、各サイクルTiごとに、Li−1、Ri−1及びrというパラメータの入力を受けると、次のサイクルTi+1の為に、Li、Ri及びrというパラメータを出力する。
【0048】
DESアルゴリズムの終わり(図4)において、暗号化されたメッセージは、最後のサイクルT16で与えられたL16及びR16のパラメータから計算される。
【0049】
この暗号化されたメッセージCの計算には実際は以下の演算が含まれている。
・ワードL16とR16の位置を逆にし、次にそれらを連結して、64ビットのワードe’を形成する。
・DESの最初のものとは逆の置換IP-1を適用して、暗号化されたメッセージCを形成する64ビットのワードf’を得る。
【0050】
演算SBOXについては図5と6で詳しく示されている。それには、入力データbに応じて出力データaを算出する為の定数表TC0が含まれている。
【0051】
実際には、この定数表TC0は、八つの基本定数表TC01からTC08という形で示され、それぞれワードbの6ビットだけの入力を受け取り、ワードaの4ビットだけの出力を算出する。
【0052】
従って図6に示された基本定数表TC01は、入力データとしてワードbのb1からb6までのビットを受け取り、出力データとしてワードaのa1からa4までのビットを算出する。
【0053】
実際には、これらの八つの基本定数表は、電子構成部品のプログラム・メモリに記憶される。
【0054】
最初のサイクルT1の演算SBOXにおいて、定数表TC0の出力データaのある特定の1ビットは、入力されたデータbの6ビットのみに依存し、つまり、秘密鍵Kの6ビットと、入力メッセージ(M)とのみに依存する。
【0055】
最後のサイクルT16の演算SBOXにおいて、定数表TC0の出力データaのある特定の1ビットは、秘密鍵Kの6ビットと、暗号化されたメッセージ(C)とのみに基づいて再計算することが可能である。
【0056】
ところで、DPA攻撃の原理をもう一度振り返ってみると、出力データaの1ビットを標的ビットとして選ぶとき、鍵Kの6ビットの推定を行うだけで、入力メッセージ(M)又は所与の出力メッセージ(C)の為の標的ビットの値を予測することができる。換言すれば、DESに関しては、6ビットの部分鍵の推定を行うだけでよい。
【0057】
従って、与えられた標的ビットの為のそのようなアルゴリズムにDPA攻撃を行う際には、64個の可能性なかから、一つの正当な部分鍵の推定を判別しなければならない。
【0058】
従って、標的ビットとしてワードaの八つのビット(基本定数表TC01からTC08による出力の1ビット)だけを取り上げ、これらの標的ビットのそれぞれにDPA攻撃を行うことで、秘密鍵の6×8=48ビットまでを見破ることが可能である。
【0059】
従って、DESにおいて、クリティカル命令は、アルゴリズムの最初と最後で、DPA攻撃で分かる。
【0060】
DESアルゴリズムの初めにおいて、入力メッセージMと部分鍵の推定とから予測可能なデータは、最初のサイクル(T1)で計算されるデータa及びgである。
【0061】
最初のサイクルT1のデータa(図3)は、対象となるサイクルの演算SBOXの出力データである。入力パラメータL0を使って、置換(P PERM)と排他的論理和演算を行うことにより、データaからデータgが計算される。
【0062】
事実、最初のサイクルのデータcは、最初のサイクルのデータaの派生データである。派生データcは、データaのビットの単純な置換に対応している。
【0063】
第二のサイクルのデータlは、最初のサイクルのデータgの派生データであり、というのも、それはワードgのビット置換に対応しており、ワードgのビットの幾つかは更に複写されているからである。
【0064】
aとgが分かれば、これらの派生データも知ることができる。
【0065】
アルゴリズムの最初のクリティカル命令は、最初のサイクルのデータaのように予測可能なデータ又は派生データを処理する、クリティカル命令である。
【0066】
従って、最初のサイクルT1のデータaや派生データcを処理するクリティカル命令は、演算SBOX、演算P PERMの終了の命令、そして、最初のサイクルT1の演算XORの開始の命令である。
【0067】
データg又は派生データを処理するクリティカル命令は、最初のサイクルT1の終わりでの演算XORの終了の命令から、第二のサイクルT2の演算SBOXの開始まで、そして第三のサイクルT3(L2=h(T2)=g(T1))の終わりでの演算XORの開始までの、全ての命令である。
【0068】
DESアルゴリズムの終わりに、暗号化されたメッセージCと部分鍵の推定とから予測可能なデータは、第十六のサイクルT16のデータaと、第十四のサイクルT14のワードhに等しいデータL15である。
【0069】
第十六のサイクルのデータa又は派生データを処理するクリティカル命令は、第十六のサイクルの、演算SBOX、置換演算P PERMの終了の命令、そして演算XORの開始の命令である。
【0070】
このデータ又は派生データを処理するクリティカル命令は、データL15については、第十四のサイクルT14の演算XORの終了の命令から、第十五のサイクルT15の演算SBOXの開始まで、そして第十六のサイクルT16の終わりの演算XORの開始のまでの、全ての命令である。
【0071】
このDESアルゴリズムに適用する本発明の対抗措置方法は、各クリティカル命令について、クリティカル命令が、ある一つのデータとその補数とを同じ確率で処理することから成る。従って、DPA攻撃上での標的ビットが何であろうと、このビットを処理するクリティカル命令は「1」または「0」のどちらかを同じ確率で処理することになる。
【0072】
実際には、これは標的となる可能性のある各ビットについて必ず当てはまるはずである。換言すれば、攻撃者は、幾つもの可能性ある攻撃の間で、つまり所与の部分鍵を推定するための曲線を抽出する為に可能な幾つものブール選択関数の間で、選択肢を有す。本発明の対抗措置方法を利用するには、各クリティカル命令によって処理されるデータは、二回に一回、ある値又はその補数を無作為に抽出するということに注意をしなければならない。従って、本発明の対抗措置方法を、DESアルゴリズムに適用するについては、完全な保護の為に、DESの最初のクリティカル命令と、DESの最後のクリティカル命令とに対抗措置方法を適用しなければならない。
【0073】
DESにおいて、クリティカル命令によって処理される全データは、出力データか、もしくは演算SBOXの出力データの派生データである。
【0074】
実際に、DESの初めで、予測可能なデータは最初のサイクルT1のデータa及びgである。データaは最初のサイクルの演算SBOXの出力データである。g=P PERM(a)XOR L0であるから、データgはデータaから計算される。従ってgは最初のサイクルの演算SBOXの出力データaの派生データである。従って、DESの開始のクリティカル命令で処理される全データは、最初のサイクルの演算SBOXの出力データaから直接または間接的に導き出される。
【0075】
DESの終わりについては、予測可能なデータは、第十六のサイクルT16のデータaと、第十四のサイクルT14のデータgであり、gはL15に等しい。
【0076】
データaは、第十六のサイクルT16の演算SBOXの出力データである。
【0077】
データL15は、DESアルゴリズムの通常の実行において、第十四のサイクルT14の演算SBOXの出力データaから計算される。但し、L15=P PERM(a) XOR L14。
【0078】
特にこれらの演算SBOXの出力データaを予測不可能にすると、全派生データも予測不可能にすることになる。従って、DESアルゴリズムのクリティカル命令によって処理される全データが、予測不可能になる。
【0079】
従って、演算SBOXは、第一手段に対応しており、該第一手段は、定数表TC0に存するものであり、各サイクルごとに使用されて、入力データSから出力データEを算出する。
【0080】
DESアルゴリズムに対抗措置方法を応用する一つの実施態様は、出力データaを予測不可能にする為の他の手段として、少なくとももう一つ他の定数表を用いることから成り、クリティカル命令によって処理されるこの出力データ及び/または派生データが全て予測不可能になるようにする。
【0081】
アルゴリズムの実行において、様々な手段の使用は、つまり例示されているところでは様々な定数表の使用は、二分の一の確率の統計法則によって制御される。
【0082】
他の一つの定数表または他の複数の定数表は、第一定数表TC0の入力データdと出力データの一方または両方に、補数を取ったデータを対応させるような定数表である。
【0083】
従って、図7及び8は、本発明の対抗措置方法のDESアルゴリズムへの応用態様を示している。
【0084】
図7はアルゴリズムの初めを示している。本発明の対抗措置方法によって変更を受けない演算とデータには、既に述べた図3におけるのと同じ表記になっている。
【0085】
DESアルゴリズムの初めには、最初のサイクルT1の演算SBOXに第二定数表TC1が準備されている。この第二定数表TC1の作用を受けた全データは、それら数字の上に、′や ̄の記号が付けられている。DESの開始のクリティカル命令によって、対抗措置方法の作用を受ける全データが、処理されるのが見て取れる。
【0086】
第一定数表が実は八つの第一定数表から形成されており、第二定数表もまた八つの第二定数表から形成されていることに注目されたい。
【0087】
図示された実施例において、第一定数表TC0と第二定数表TC1は、同一の入力データEについて、第一のものから算出される出力データSの補数/Sを、第二のものが出力するという定数表である。
【0088】
図9はそのような第二基本表TC11を示しており、図6に示された第一基本表TC01に対して補数が取られた出力を与えるものである。
【0089】
このような第二定数表TC1を用いることで、最初のサイクルT1の演算SBOXの出力として、第一定数表TC0を用いて得られるデータaの補数/aが得られる。同様に、最初のサイクルT1で得られるのは、補数データ/gであり、第二のサイクルT2で得られるのは、補数データ/h,/L2,/l及び/bである。
【0090】
出力データを算出する為に、二分の一の確率の統計法則に従って第一表又は第二表を使うことにより、クリティカル命令により処理されるDESの初めで可能性のある全標的ビットは、「1」の値と「0」の値とを同じ確率で取る。
【0091】
DESアルゴリズムの終わりでは、本発明の対抗措置方法の実施態様には幾つもの第一定数表を使う必要があり、というのも、このDESの最後のクリティカル命令で処理される全データを予測不可能にする為には、第十四のサイクルT14で計算された出力データaと、第十六のサイクルT16で計算された出力データaとを同時に考慮に入れなければならないからである。
【0092】
このDESアルゴニズムの最後に応用される対抗措置方法の実施例は、図8に示されている。
【0093】
二つの定数表TC1とTC2を使うように準備されている。
【0094】
第十四のサイクルT14の演算SBOXにおいて、DESの初めで既に使用された第二定数表TC1が用いられる。
【0095】
そして、第三定数表TC2は、第十五及び第十六のサイクルの演算SBOXにおいて用いられる。
【0096】
この第三定数表TC2は、第一定数表TC0の入力データEの補数/Eに、出力データSの補数/Sを算出する表である。第一基本定数表TC0から導き出される、対応する第三基本定数表TC21の一例は、図10に示されている。
【0097】
そのような定数表を用いることで、全てのクリティカル命令は補数データを処理することが、図8に示されている。
【0098】
本発明は、これらの定数表TC1とTC2などの例にのみ限定されるものではない。他の可能性も考えられる。例えば、DESの最後に適用される対抗措置方法について、定数表TC1を、第一定数表TC0との関係で規定されたもう一つの定数表と組み合わせて使用することで、入力データの補数/Eに対して出力データSを算出することも可能である。
【0099】
一般的には、DESの終わりには、対象となるサイクルに応じて、様々な定数表を使う必要があり、このDESの終了のクリティカル命令で処理される全データが予測不可能になるようにする為である。
【0100】
しかしながら、図7及び8との関連で述べられた実施態様には不都合な点がある。DESの入力に適用される対抗措置方法は、計算された中間結果L3’とR3’とを生成するが、該結果は正解ではないのである。従って、その後に続く全中間結果もまた正解ではない。
【0101】
同様に、DESの終わりで、DESの入力に適用される対抗措置方法は、計算された中間結果L16’とR16’とを生成するが、該結果は正解ではない。
【0102】
全ての場合において、暗号化されたメッセージは誤りである。
【0103】
従って、本発明のこの実施態様において、一旦クリティカル命令が出されると、毎回、正しい中間結果を有するアルゴリズム列を再開できるように、準備されなければならない。
【0104】
実際には、既にみたように、DESの開始のクリティカル命令は最初の三サイクルにあるので、これらの最初の三サイクルを二倍することにする。換言すれば、少なくとも最初の三サイクルT1、T2、T3をそれぞれ含む二つのシーケンスを実行するように準備する。第一シーケンスSEQAは、各サイクル毎に、第一定数表TC0を用いている。もう一つのシーケンスSEQBは、少なくとも最初のサイクルT1において、第二定数表TC1を用いる。図示された例では、続く二サイクルT2及びT3において、第一定数表が使われている。
【0105】
既に見たように、本発明の対抗措置方法において、様々な手段の使用は、つまり例示されたところでの様々な定数表の使用は、二分の一の確率の統計法則によって制御されている。その場合、この二分の一の確率の統計法則は、これらの様々な手段の使用の順序に、つまり例示されたところでは、二つのシーケンスSEQAとSEQBの実行の順序に、特に適用される。
【0106】
同様に、DESの終わりで正しいパラメータL16及びR16を得て、暗号化されたメッセージCを作成する為には、DESの終了のクリティカル命令を含む三サイクルT14、T15及びT16も二倍する(図7)。従って、少なくとも最後の三サイクルT14、T15及びT16を含む二つのシーケンスを実行することになる。第一シーケンスSEQA’には、各サイクル毎に、第一定数表TC0が用いられる。もう一つのシーケンスSEQB’には、他の定数表TC1及びTC2が用いられる。前述したように、その場合、二分の一の確率の統計法則は、これら二つのシーケンスSEQA’とSEQB’の実行の順序に適用される。
【0107】
その場合、クリティカル命令は、各シーケンスに一度ずつ、二回実行される。しかしながら、それらのシーケンスのどちらのクリティカル命令を実行する時であろうとも、一つのデータを処理する可能性は、その補数を処理する可能性と等しくなる。
【0108】
従って、電子構成部品で利用されるDESの計算プログラムは、本発明による抗措置方法を包含するように変更されなければならない。図11に示されているのは、本発明に適合した実行フローチャートの例であり、図7及び8との関連で述べられた実施態様によってDESの初めと終わりで対抗措置方法を利用するものである。この例において、シーケンスSEQA及びSEQBには最初の三サイクルが含まれており、シーケンスSEQA’及びSEQB’には最後の三サイクルが含まれている。
【0109】
その場合、計算プログラムは、特に計算の初めに、DATA IN 及び KEYと記された入力パラメータをバックアップすることから成り、実際には、CONTEXT0と記された一時メモリ領域内でのパラメータL0、R0及びrに対応している。
【0110】
次に、この計算プログラムに従って、第一ループ・カウンタFRを0にセットし、0または1に等しい値RND1を無作為抽出する。
【0111】
例において、もしRND1が1に等しいならば、まず、T1、T2、T3のシーケンスSEQBを実行し、該シーケンスにおいて、サイクルT1には第二定数表TC1を、サイクルT2とT3には第一定数表TC0を用いる。CONTEXT2と記された一時メモリ領域内で、出力パラメータL3’、R3’ (誤った値を有する)をバックアップする。
【0112】
もしFRが1に等しくないならば、それを1にセットし、CONTEXT0の入力パラメータを復活(アンドゥ)させてRND1の値の補数をとる。例において、RND1=0が得られる。その場合には、三サイクルT1、T2及びT3で第一定数表が使われるT1、T2、T3のもう一つのシーケンスSEQAを実行することになる。CONTEXT1と記された一時メモリ領域内で、出力パラメータ(正しい値)をバックアップする。
【0113】
もしFRが1であるならば、二つのシーケンスが実行されたということである。その場合には、CONTEXT1復活をさせ、次のサイクル(T4)で、正しい値を有する中間結果L3、R3を算出する。
【0114】
もしRND1の値がゼロであるならば、T1(TC0)、T2(TC0)、T3(TC0)から始めて、T1(TC1)、T2(TC0)、T3(TC0)で終わる。
【0115】
サイクルT13の終わりにたどり着いて、このサイクルで算出されたパラメータL13、R13を一時メモリ領域CONTEXT0でバックアップし、最初のサイクルに類似した方法で、残りのサイクルT14、T15及びT16について処理する。
【0116】
いずれの場合においても、計算の道筋がどうあろうと、命令の数は厳密に同一にしなければならない。特にこの理由から、前述の応用例においては、一時メモリ領域CONTEXT2において、誤った値(L3’,R3’またはL16’,R16’)もバックアップするように準備されている。
【0117】
実際、もし二つの可能な道筋との間で何らかの違いがあるなら、その場合には、DPA攻撃が実を結ぶ可能性がでてくる。
【0118】
本発明による対抗措置方法は、DESアルゴリズムに関して記述された実施例に特に限定されるものではない。全ての秘密鍵式暗号化アルゴリズムに応用される。一般的には、入力データから出力データを算出する為の第一手段の使用を含むアルゴリズムであって、出力データ及び/または派生データがクリティカル命令によって処理されるようなアルゴリズムを、完全に利用する為に、本発明の対抗措置方法に他の手段を用いることを含み、出力データ及び派生データが予測不可能になるようにする。
【0119】
様々な手段、つまり、第一手段と他の手段の使用は、二分の一の確率の統計法則によって制御されている。
【0120】
他の手段には幾つもの異なった手段が含まれていてもよい。それらは、第一手段の入力及び出力データのどちらか一方に、補数データを対応させるものである。
【0121】
更に詳細に記述されたDESへの対抗措置方法の応用態様例では、第一手段は、第一定数表TC0に存する。DESの初めでは、他の手段は、第二定数表TC1に存する。例において、DESの終わりでは、二つの異なった定数表TC1及びTC2に存する。
【0122】
従って、本発明の対抗措置方法を所定の秘密鍵式暗号化アルゴリズムに適用する為には、まず、このアルゴリズムの予測可能な全データと、これらのデータあるいは派生データとを処理する、DPA攻撃に対して致命的な命令の全てを確定しなければならない。次に、クリティカル命令によって処理される全データが予測不可能になるように、アルゴリズムにおいて、本発明の意味での第一手段と他の手段を識別しなければならない。DESアルゴリズムについては、第一手段は定数表TC0である。例において、他の手段は他の定数表である。これらの手段は、他のアルゴリズムについての様々な演算であってもよい。同一のアルゴリズムについて、これらの手段は、識別されたクリティカル命令による様々な演算に存することができる。
【0123】
秘密鍵式暗号化アルゴリズムで本発明の対抗措置方法を利用する電子構成部品1は、典型的には、図12に示されているように、マイクロプロセッサμP、プログラム・メモリ2と作業メモリ3を含んでいる。前述の例においては、プログラム・メモリに記憶されている様々な定数表である、本発明の様々な手段の使用を制御できるようにする為に、0と1との間の乱数を生成する手段4が準備されており、図11に示されているように、DESを実行する毎に、RND1の値を算出することになる。このような構成部品はチップカードCPに特に用いられ、カードの不可侵性を高めることができる。
【図面の簡単な説明】
【図1】 図1は、DPA(t)信号を示すものである。
【図2】 図2は、DPA(t)信号を示すものである。
【図3】 図3は、DESアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートである。
【図4】 図4は、DESアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートである。
【図5】 図5は、DESアルゴリズムで用いられる演算SBOXのブロック図である。
【図6】 図6は、演算SBOXで用いられる入力と出力の基本定数表の一例を示す。
【図7】 図7は、本発明の対抗措置方法の第一の実施態様によるDESアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートの一例を示している。
【図8】 図8は、本発明の対抗措置方法の第一の実施態様によるDESアルゴリズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートの一例を示している。
【図9】 図9は、それぞれ本発明で用いられる第二と第三の基本定数表を示している。
【図10】 図10は、それぞれ本発明で用いられる第二と第三の基本定数表を示している。
【図11】 図11は、本発明の対抗措置方法の実施態様によるDES実行の一般的フローチャートを示している。
【図12】 図12は、本発明の対抗措置方法を利用する電子構成部品を備えたチップカードの簡略化したブロック図を示す。

Claims (10)

  1. 秘密鍵(K)式暗号化アルゴリズムを利用する電子構成部品内での消費電力差分解析による攻撃への対抗措置方法であり、そのアルゴリズムの利用には、入力データ(E)から出力データ(S)を算出する為のデジタル処理の第一手段(TC )を使うことが含まれており、前記出力データ及び/またはこの出力データの派生データが、前記攻撃に対して致命的となる前記アルゴリズムの命令によって処理される、対抗措置方法であって、前記第一手段とデジタル処理の他の手段(TC )を使用するように準備され、
    該他の手段は、前記第一手段の入力データ及び/または前記第一手段の出力データの補数を取ることにより前記第一手段から得られ、出力データ及び前記派生データが予測不可能になり、
    前記第一手段及び前記他の手段は定数表であり、
    前記アルゴリズムが十六サイクルの計算(T1,..,T16)の利用を含んでいる対抗措置方法であって、少なくとも最初の三サイクル(T1,T2,T3)からそれぞれ形成された第一シーケンス(SEQA)と第二シーケンス(SEQB)の実行を含んでおり、
    前記第一シーケンス及び前記第二シーケンスの実行の順序に関しては、前記第一シーケンスの実行が前記第二シーケンスの実行の後に続く確率が50%であり、一方、前記第二シーケンスの実行が前記第一シーケンスの実行の後に続く確率が50%であり、
    これら二つのシーケンス内の各サイクルにおいては、前記手段(TC ,TC )のうちから選択された、ただ一つの手段が用いられ、
    第一シーケンス(SEQA)は各サイクル毎に第一手段(TC)を用いており、第二シーケンス(SEQB)は少なくとも最初のサイクル(T1)で他の手段(TC)を用いることを特徴とする、対抗措置方法。
  2. 第一及び第二シーケンスは、それぞれ最初の三サイクル(T1,T2,T3)で形成されていることを特徴とする、請求項に記載の対抗措置方法。
  3. 他の手段は第二手段(TC)から成り、同一の入力データ(E)については、第一手段(TC)の出力データ(S)の補数(/S)を出力するものであることを特徴とする、請求項またはに記載の対抗措置方法。
  4. 秘密鍵(K)式暗号化アルゴリズムを利用する電子構成部品内での消費電力差分解析による攻撃への対抗措置方法であり、そのアルゴリズムの利用には、入力データ(E)から出力データ(S)を算出する為のデジタル処理の第一手段(TC )を使うことが含まれており、前記出力データ及び/またはこの出力データの派生データが、前記攻撃に対して致命的となる前記アルゴリズムの命令によって処理される、対抗措置方法であって、前記第一手段とデジタル処理の他の手段(TC ,TC )を使用するように準備され、
    該他の手段は、前記第一手段の入力データ及び/または前記第一手段の出力データの補数を取ることにより前記第一手段から得られ、出力データ及び前記派生データが予測不可能になり、
    前記第一手段及び前記他の手段は定数表であり、
    前記アルゴリズムが、十六サイクルの計算(T1,..,T16)の利用を含んでいる対抗措置方法であって、少なくとも最後の三サイクル(T14,T15,T16)からそれぞれ形成された第一シーケンス(SEQA’)と第二シーケンス(SEQB’)の実行を含んでおり、
    前記第一シーケンス及び前記第二シーケンスの実行の順序に関しては、前記第一シーケンスの実行が前記第二シーケンスの実行の後に続く確率が50%であり、一方、前記第二シーケンスの実行が前記第一シーケンスの実行の後に続く確率が50%であり、
    第一シーケンス(SEQA’)は各サイクルごとに第一手段(TC)を用いており、第二シーケンス(SEQB’)は他の手段(TC,TC)を用いていることを特徴とする、対抗措置方法。
  5. 第一及び第二シーケンスは、それぞれ最後の三サイクルで形成されており、第二シーケンスで用いられる他の手段は、第二手段(TC)と第三手段(TC)を含んでいることを特徴とする、請求項に記載の対抗措置方法。
  6. 第二手段(TC)は、同一の入力データ(E)について、第一手段(TC)の出力データ(S)の補数(/S)を出力するものであり、これらの第二手段は、第十四のサイクル(T14)について第二シーケンス(SEQB’)で用いられることを特徴とする、請求項またはに記載の対抗措置方法。
  7. 第三手段(TC)は、入力データ(E)の補数をとるようなものであり、第一手段(TC)の出力データ(S)の補数(/S)を出力し、第十五及び第十六のサイクル(T15,T16)について第二シーケンスで用いられることを特徴とする、請求項に記載の対抗措置方法。
  8. DESタイプの秘密鍵(K)式暗号化アルゴリズムを使用する、マイクロプロセッサと、プログラム・メモリと、作業メモリとを含む電子構成部品であり、
    入力データ(E)から出力データ(S)を算出するためのデジタル処理の第一手段(TC)が設けられ、
    前記出力データ及び/またはこの出力データからの派生データは、消費電力差分解析による攻撃に対して致命的な前記アルゴリズムの命令によって処理される電子構成部品であって、
    該電子構成部品は、請求項1から請求項のいずれか一つに記載の前記攻撃に対する対抗措置方法を実装する実装手段を備え、
    該実装手段はデジタル処理の他の手段(TC)を備え、
    前記第一手段(TC )及び前記他の手段(TC )は、より具体的には、前記プログラム・メモリに保存されており、
    該他の手段は、前記第一手段の入力データ及び/または前記第一手段の出力データの補数を取ることにより前記第一手段から得られ、出力データ及び前記派生データが予測不可能になり、
    前記第一手段(TC)及び前記他の手段(TC)は定数表であり、
    第一シーケンスの実行が第二シーケンスの実行の後に続く確率が50%であり、一方、第二シーケンスの実行が第一シーケンスの実行の後に続く確率が50%であり、
    前記他の手段(TC)は前記電子構成部品における前記プログラム・メモリの前記第一手段に据えつけられ、
    前記第一手段(TC 及び前記他の手段(T)の使用を制御するために、0または1の乱数(RND1)の生成手段を含んでいることを特徴とする、電子構成部品。
  9. DESタイプの秘密鍵(K)式暗号化アルゴリズムを使用する、マイクロプロセッサと、プログラム・メモリと、作業メモリとを含む電子構成部品であり、
    入力データ(E)から出力データ(S)を算出するためのデジタル処理の第一手段(TC )が設けられ、
    前記出力データ及び/またはこの出力データからの派生データは、消費電力差分解析による攻撃に対して致命的な前記アルゴリズムの命令によって処理される電子構成部品であって、
    該電子構成部品は、請求項4から請求項7のいずれか一つに記載の前記攻撃に対する対抗措置方法を実装する実装手段を備え、
    該実装手段はデジタル処理の他の手段(TC ,TC )を備え、
    前記第一手段(TC )及び前記他の手段(TC ,TC )は、より具体的には、前記プログラム・メモリに保存されており、
    該他の手段は、前記第一手段の入力データ及び/または前記第一手段の出力データの補数を取ることにより前記第一手段から得られ、出力データ及び前記派生データが予測不可能になり、
    前記第一手段(TC )及び前記他の手段(TC ,TC )は定数表であり、
    第一シーケンスの実行が第二シーケンスの実行の後に続く確率が50%であり、一方、 第二シーケンスの実行が第一シーケンスの実行の後に続く確率が50%であり、
    前記他の手段(TC ,TC )は前記電子構成部品における前記プログラム・メモリの前記第一手段に据えつけられ、
    前記第一手段(TC )及び前記他の手段(TC ,TC )の使用を制御するために、0または1の乱数(RND1)の生成手段を含んでいることを特徴とする、電子構成部品。
  10. DESタイプの秘密鍵(K)式暗号化アルゴリズムを実装する為の、請求項8又は9に記載の電子構成部品を備えたチップカード。
JP2000577797A 1998-10-16 1999-09-13 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法 Expired - Fee Related JP4195199B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9812989 1998-10-16
FR9812989A FR2784829B1 (fr) 1998-10-16 1998-10-16 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
PCT/FR1999/002172 WO2000024155A1 (fr) 1998-10-16 1999-09-13 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete

Publications (2)

Publication Number Publication Date
JP2002528754A JP2002528754A (ja) 2002-09-03
JP4195199B2 true JP4195199B2 (ja) 2008-12-10

Family

ID=9531647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000577797A Expired - Fee Related JP4195199B2 (ja) 1998-10-16 1999-09-13 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法

Country Status (8)

Country Link
EP (1) EP1119939B1 (ja)
JP (1) JP4195199B2 (ja)
CN (1) CN1166111C (ja)
AU (1) AU5627599A (ja)
DE (1) DE69928684T2 (ja)
ES (1) ES2255296T3 (ja)
FR (1) FR2784829B1 (ja)
WO (1) WO2000024155A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2345229B (en) * 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data
FR2804524B1 (fr) * 2000-01-31 2002-04-19 Oberthur Card Systems Sas Procede d'execution d'un protocole cryptographique entre deux entites electroniques
JP4596686B2 (ja) 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
FR2830146B1 (fr) * 2001-09-24 2003-10-31 Gemplus Card Int Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant
AU2003207931A1 (en) * 2002-03-07 2003-09-16 Axalto Sa Method for making safe an electronic cryptography assembly with a secret key
FR2858496B1 (fr) 2003-07-31 2005-09-30 Gemplus Card Int Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
JP4634788B2 (ja) * 2004-12-17 2011-02-16 株式会社東芝 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード
JP5017439B2 (ja) * 2010-09-22 2012-09-05 株式会社東芝 暗号演算装置及びメモリシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2638869B1 (fr) * 1988-11-10 1990-12-21 Sgs Thomson Microelectronics Dispositif de securite contre la detection non autorisee de donnees protegees
FR2672402B1 (fr) * 1991-02-05 1995-01-27 Gemplus Card Int Procede et dispositif pour la generation de nombres pseudo-aleatoires uniques.
US5473693A (en) * 1993-12-21 1995-12-05 Gi Corporation Apparatus for avoiding complementarity in an encryption algorithm
JPH10154976A (ja) * 1996-11-22 1998-06-09 Toshiba Corp タンパーフリー装置
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体

Also Published As

Publication number Publication date
AU5627599A (en) 2000-05-08
DE69928684T2 (de) 2006-08-24
DE69928684D1 (de) 2006-01-05
EP1119939B1 (fr) 2005-11-30
FR2784829B1 (fr) 2000-12-29
EP1119939A1 (fr) 2001-08-01
CN1166111C (zh) 2004-09-08
FR2784829A1 (fr) 2000-04-21
ES2255296T3 (es) 2006-06-16
JP2002528754A (ja) 2002-09-03
CN1323476A (zh) 2001-11-21
WO2000024155A1 (fr) 2000-04-27

Similar Documents

Publication Publication Date Title
US11362802B2 (en) Cryptographic device arranged to compute a target block cipher
Acıiçmez et al. Trace-driven cache attacks on AES (short paper)
Choukri et al. Round reduction using faults
KR102539111B1 (ko) 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
US7543159B2 (en) Device and method with reduced information leakage
US20040025032A1 (en) Method and system for resistance to statiscal power analysis
GB2345229A (en) Encryption system resists differential power analysis attacks
JP3733027B2 (ja) 秘密鍵式暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
JP3650333B2 (ja) 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
JP4195199B2 (ja) 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
Rebeiro et al. An enhanced differential cache attack on CLEFIA for large cache lines
JP2004310752A (ja) データ処理装置における誤り検出
JP2002529777A (ja) 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
Feix et al. Defeating iso9797-1 mac algo 3 by combining side-channel and brute force techniques
US7206408B1 (en) Countermeasure method in an electronic component using a dynamic secret key cryptographic algorithm
Nguyen et al. Improved differential cache attacks on SMS4
JP2007251390A (ja) 半導体集積回路
DeTrano et al. Exploiting small leakages in masks to turn a second-order attack into a first-order attack
Coron et al. Analysis of the split mask countermeasure for embedded systems
Faugère et al. Algebraic side channel analysis
Taha et al. Cache-Timing Attack Against AES Crypto-Systems Countermeasure Using Weighted Average Time Masking Algorithm
Gebotys Third order differential analysis and a split mask countermeasure for low energy embedded processors
Huang Cache-collision timing attacks against AES-GCM
MXPA01003792A (en) Countermeasure method in an electronic component using a secret key cryptographic algorithm
Ptáček Power analysis of AES

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070417

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070717

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070724

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070914

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071127

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080303

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080326

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080916

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080925

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees