JP2002528754A - 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法 - Google Patents
秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法Info
- Publication number
- JP2002528754A JP2002528754A JP2000577797A JP2000577797A JP2002528754A JP 2002528754 A JP2002528754 A JP 2002528754A JP 2000577797 A JP2000577797 A JP 2000577797A JP 2000577797 A JP2000577797 A JP 2000577797A JP 2002528754 A JP2002528754 A JP 2002528754A
- Authority
- JP
- Japan
- Prior art keywords
- data
- sequence
- cycle
- countermeasure method
- output data
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures 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)
Abstract
Description
方法に関するものである。サービスやデータへのアクセスが厳正に管理されるア
プリケーションで用いられる。そのアーキテクチャは、マイクロプロセッサやメ
モリの周辺で形成されるものであり、該メモリの一つのプログラム・メモリは秘
密鍵を保存している。
ド内で特に用いられる。例えば、あるデータ・バンクにアクセスするアプリケー
ション、銀行業務アプリケーション、遠隔式通行料金徴収アプリケーション、ま
た例えば、テレビ用、ガソリン供給や自動車道路の通行料金徴収所を通過する為
のものなどである。
するものであり、その中でも最もよく知られているのがDESアルゴリズム(英
語文献のData Encryption Standardの略語)である。
秘密鍵式暗号化アルゴリズムには他にもRC5アルゴリズムやCOMP128ア
ルゴリズムがある。言うまでもなく、ここに挙げたもので全てが網羅されている
わけではない。
システム(サーバー、銀行の現金自動支払い機…)とカード内に収納された秘密
鍵とで(カードに)入力されたメッセージから、暗号化されたメッセージを計算
することと、この暗号化されたメッセージをホスト・システムに返すことであり
、例えばホスト・システムは、構成部品またはカードを認証したり、データを交
換したりすることができるようになる。
ことから成る攻撃に対しては弱く、悪意ある第三者が、秘密鍵を発見できること
になる。これらの攻撃をDPA攻撃と言い、Differential Pow
er Analysis(電力差分解析)という英語の略語である。
電力は、処理されるデータにより変化するという事実に基づいている。
トの値が「1」か「0」かによって、波形の異なる二種類の電流を発生させる。
典型的には、その命令が「0」を処理するなら、消費される電流の第一の振幅が
この実行時点に現れ、その命令が「1」を処理するなら、第一とは異なる第二の
振幅が現れることになる。
既に知られたものである。唯一知られていないのは、プログラム・メモリに保存
された秘密鍵である。これは、入力されたメッセージと、返された暗号化された
メッセージを知っているだけでは、演繹不可能である。
ドに平文で入力されたメッセージと、カードに保存されている秘密鍵とだけに依
存している。そのアルゴリズムで計算される他のデータもまた暗号化されたメッ
セージ(一般的にはカードからホスト・システムに向かって平文で出力される)
と、カードに保存されている秘密鍵とだけから再計算することが可能である。さ
らに詳しく言うと、これらの特定データの各ビットは、入力又は出力メッセージ
と、鍵の限定された数の特定ビットとに基づいて、決定することができる。
された部分鍵に対応している。
る。
「0」を処理するのかにより消費電力の波形が異なるというその差分と、既知の
入力又は出力メッセージ及び対応する部分鍵の推定からそのアルゴリズムの命令
によって標的ビットを計算することができるというその可能性とを、利用するこ
となのである。
、電流の多数の測定曲線に、つまりそれぞれが攻撃者の知っている入力メッセー
ジに関する曲線に、選択のブール関数を、つまり部分鍵の推定の関数であって一
つの標的ビットの予測値により各曲線毎に規定される関数を、当てはめることで
ある。
て、この標的ビットが取る値は「0」なのか「1」なのかを予測することが実際
に可能になる。
して、対象となる部分鍵を推定する為に当てはめ、これらの曲線を二つのパケッ
トに選別する。その第一パケットは、部分鍵の推定に従って、「0」で標的ビッ
トを処理した曲線を再グループ化したものであり、第二パケットは、「1」で標
的ビットを処理した曲線を再グループ化したものである。各パケットごとに消費
電力の平均を取ることで、第一パケットの平均消費曲線M0(t)と、第二パケ
ットの平均消費曲線M1(t)とが得られる。
したN本の曲線のなかから全ての曲線が実際に再グループ化されていることにな
り、第二パケットは、「1」で標的ビットを処理したN本の曲線のなかから全て
の曲線が実際に再グループ化されていることになる。その場合、第一パケットの
平均消費曲線M0(t)は、クリティカル命令を実行する瞬間は除いて、「0」
で標的ビットを処理する際に特徴のある消費電力の波形(波形0)を伴う平均消
費を、どの場所でも示すことになる。換言すれば、常に「0」という値をもった
標的ビットは別として、全曲線について、処理される全ビットが「1」という値
をもつ可能性も「0」という値をもつ可能性も同じ確率で与えられている。これ
は以下の式で表現することができる。 M0(t)=〔(波形0+波形1)/2〕t≠tci+〔波形0〕tci即ち M0(t)=〔Vmt〕t≠tci+〔波形0〕tci 但し、ここでtciは、クリティカル命令が実行されたクリティカル時点を示す
。
する瞬間は除いて、「1」で標的ビットを処理する際に特徴のある消費電力の波
形(波形1)を伴う平均消費を、どの場所でも示すことになる。これは以下の式
で表現することができる。 M1(t)=〔(波形0+波形1)/2〕t≠tci+〔波形1〕tci即ち M1(t)=〔Vmt〕t≠tci+〔波形1〕tci
M0(t)と曲線M1(t)との差分から、このビットを処理するクリティカル
命令の実行時点tci、即ち図1に示された例で言うとtc0からtc6のとこ
ろで、波形0─波形1に等しい振幅を有する信号DPA(t)が得られ、クリティ
カル時点外では、ほぼゼロに等しい振幅を有する信号が得られるということであ
る。
の場合、統計的には、各パケットの中には、実際には「0」で標的ビットを処理
した曲線と、「1」で標的ビットを処理した曲線とが同数存在することになる。
その場合、結果として得られる平均曲線M0(t)の位置は、式(波形0+波形1 )/2=Vmで得られる平均値の周辺であり、というのも、各曲線について、標
的ビットを含めた処理された全ビットに、「0」の値を取るのと、「1」の値を
取るのと同じ確率が与えられているからである。
線M1(t)の振幅は、式(波形0+波形1)/2=Vmで得られる平均値の周辺
にあることになる。
は、ほぼゼロに等しい。部分鍵の推定が外れた場合の信号DPA(t)は、図2
に示されている。
の波形の差分を用いて、与えられた部分鍵を推定する為の選択のブール関数に従
った消費電力曲線の抽出を行うことである。得られた曲線の二つのパケット間で
の平均消費電力の差分を解析することにより、情報信号DPA(t)が得られる
。
数メッセージのそれぞれにつき、カードによるアルゴリズムの実行を行わせる。 c−部分鍵の推定を行う。 d−乱数メッセージのそれぞれにつき、標的ビット内の一つの値を予測し、該
値は、メッセージ(入力又は出力)の数ビットと、推定された部分鍵とのみに依
存するものであって、それによりブール選択関数を得る。 e−このブール選択関数により(つまり、部分鍵の推定の下、各曲線について
の、この標的ビットの予測値が「0」であるか「1」であるかにより)曲線を選
別する。 f─結果として得られた平均消費電力曲線を、各パケットにおいて計算する。 g−これらの平均曲線の差を出し、信号DPA(t)を得る。
トの曲線は、入力又は出力で適用されるメッセージが、カード内で「0」の標的
ビットを与えた曲線に実際に対応しており、第二パケットの曲線は、入力又は出
力で適用されるメッセージが、カード内で「1」の標的ビットを与えた曲線に実
際に対応している。
(標的ビットを処理する)に対応するtc0からtc6までの時点においてゼロ
ではない。
。捕捉期間中に少なくとも一つのクリティカル時点があれば十分である。
各パケットの中には、実際には、「0」の標的ビットに対応する曲線と、「1」
の標的ビットに対応する曲線とが、同数あることになる。(図2に示されている
ように)いずれの場合も信号DPA(t)はほぼゼロである。ステップc−に戻
って部分鍵の推定をやり直さなければならない。
に移ることができる。例えば、DESアルゴリズムでは、64ビットの鍵を使う
が、そのうちの56ビットだけが有効である。DPA攻撃を行うと、有効な56
ビットのうちの少なくとも48ビットを再構成することができる。
t)をゼロにするような対抗措置方法を電子構成部品において利用することであ
る。
ている場合から見分けることが完全にできなくなる。この対抗措置方法により、
電子構成部品はDPA攻撃から守られる。
て処理されるデータを、予測不可能にすることができる。
ついて、クリティカル命令で処理される標的ビットは、同じ確率で0又は1の値
をとる。攻撃者が、自分で計算したブール選択関数を使って所与の部分鍵の推定
に基づき作成する各パケットの曲線においては、実際に標的ビット「0」を処理
した曲線も、実際に「1」の標的ビットを処理した曲線も、同じことになる。信
号DPA(t)は、部分鍵の推定が当たっていようといなかろうと、常にゼロに
なるであろう。
ルゴリズムを利用する電子構成部品内での対抗措置方法に関するものであり、そ
のアルゴリズムの利用には入力データから出力データを算出する為の第一手段を
使用することが含まれ、出力データおよび/または派生データはクリティカル命
令で処理される。本発明の対抗措置方法は、出力データおよび派生データが予測
不可能になるように、他の手段を用いることが準備されている。
る。
述べられるが、説明はあくまで参考に供するものであって、説明した事項のみに
限定する趣旨のものではない。 ・図1及び2は、既に説明したが、DPA(t)信号を示すものである。その信
号はDPA攻撃を行う場合、秘密鍵Kの部分鍵を推測していくにつれて、入手可
能である。 ・図3及び4は、DESアルゴリズムの初めの数サイクルと終わりの数サイクル
の計算の実行フローチャートである。 ・図5は、DESアルゴリズムで用いられる演算SBOXのブロック図である。 ・図6は、演算SBOXで用いられる入力と出力の基本定数表の一例を示す。 ・図7及び8は、本発明の対抗措置方法の第一の実施態様による、DESアルゴ
リズムの初めの数サイクルと終わりの数サイクルの計算の実行フローチャートの
一例を示している。 ・図9及び10は、それぞれ本発明で用いられる第二と第三の基本定数表を示し
ている。 ・図11は、本発明の対抗措置方法の実施態様によるDES実行の一般的フロー
チャートを示している。 ・図12は、本発明の対抗措置方法を利用する電子構成部品を備えたチップカー
ドの簡略化したブロック図を示す。
発明はこの例のみに限定されるものではない。本発明は、秘密鍵式暗号化アルゴ
リズム一般に応用される。
する)は、図3及び4に示されたように、T1からT16の記号を付された十六
サイクルの計算を含んでいる。
る。入力メッセージMは64ビットのワードfである。置換後、64ビットのワ
ードeが得られ、それを二つに分割して最初のサイクル(T1)の入力パラメー
タL0とR0を形成する。L0は、ワードeのより重みのある方の32ビットを
含む32ビットのワードdである。R0は、ワードeのより軽めの方の32ビッ
トを含む32ビットのワードhである。
perm)されて、56ビットのワードrを算出する。
P PERMが含まれ、48ビットのワードlの出力が得られる。
タK1と組み合わされて、48ビットのワードbを算出する。パラメータK1は
48ビットのワードmであり、ワードrを、まずシフト(図3及び4のSHIF
Tと記された演算)し、その後、置換及び圧縮(COMP PERMと記された
演算)を行って得られる。
ードaが得られる。この演算は特に図5及び6との関連で詳細に説明することと
する。
イクルT1の入力パラメータL0と組み合わされ、32ビットのワードgを出力
する。
ータL1を与え、最初のサイクルのワードgは、次のサイクルの入力パラメータ
R1を与える。最初のサイクルのワードpは、次のサイクルの入力rを与える。
Tは別であり、該シフト演算は、対象となるサイクルによって一または二の位置
で行われる。
の入力を受けると、次のサイクルTi+1の為に、Li、Ri及びrというパラ
メータを出力する。
最後のサイクルT16で与えられたL16及びR16のパラメータから計算され
る。
ワードe’を形成する。 ・DESの最初のものとは逆の置換IP-1を適用して、暗号化されたメッセージ
Cを形成する64ビットのワードf’を得る。
タbに応じて出力データaを算出する為の定数表TC0が含まれている。
形で示され、それぞれワードbの6ビットだけの入力を受け取り、ワードaの4
ビットだけの出力を算出する。
1からb6までのビットを受け取り、出力データとしてワードaのa1からa4
までのビットを算出する。
に記憶される。
ある特定の1ビットは、入力されたデータbの6ビットのみに依存し、つまり、
秘密鍵Kの6ビットと、入力メッセージ(M)とのみに依存する。
のある特定の1ビットは、秘密鍵Kの6ビットと、暗号化されたメッセージ(C
)とのみに基づいて再計算することが可能である。
ビットを標的ビットとして選ぶとき、鍵Kの6ビットの推定を行うだけで、入力
メッセージ(M)又は所与の出力メッセージ(C)の為の標的ビットの値を予測
することができる。換言すれば、DESに関しては、6ビットの部分鍵の推定を
行うだけでよい。
行う際には、64個の可能性なかから、一つの正当な部分鍵の推定を判別しなけ
ればならない。
TC08による出力の1ビット)だけを取り上げ、これらの標的ビットのそれぞ
れにDPA攻撃を行うことで、秘密鍵の6×8=48ビットまでを見破ることが
可能である。
、DPA攻撃で分かる。
予測可能なデータは、最初のサイクル(T1)で計算されるデータa及びgであ
る。
Xの出力データである。入力パラメータL0を使って、置換(P PERM)と
排他的論理和演算を行うことにより、データaからデータgが計算される。
である。派生データcは、データaのビットの単純な置換に対応している。
、というのも、それはワードgのビット置換に対応しており、ワードgのビット
の幾つかは更に複写されているからである。
に予測可能なデータ又は派生データを処理する、クリティカル命令である。
ル命令は、演算SBOX、演算P PERMの終了の命令、そして、最初のサイ
クルT1の演算XORの開始の命令である。
の終わりでの演算XORの終了の命令から、第二のサイクルT2の演算SBOX
の開始まで、そして第三のサイクルT3(L2=h(T2)=g(T1))の終
わりでの演算XORの開始までの、全ての命令である。
から予測可能なデータは、第十六のサイクルT16のデータaと、第十四のサイ
クルT14のワードhに等しいデータL15である。
第十六のサイクルの、演算SBOX、置換演算P PERMの終了の命令、そし
て演算XORの開始の命令である。
いては、第十四のサイクルT14の演算XORの終了の命令から、第十五のサイ
クルT15の演算SBOXの開始まで、そして第十六のサイクルT16の終わり
の演算XORの開始のまでの、全ての命令である。
命令について、クリティカル命令が、ある一つのデータとその補数とを同じ確率
で処理することから成る。従って、DPA攻撃上での標的ビットが何であろうと
、このビットを処理するクリティカル命令は「1」または「0」のどちらかを同
じ確率で処理することになる。
ずである。換言すれば、攻撃者は、幾つもの可能性ある攻撃の間で、つまり所与
の部分鍵を推定するための曲線を抽出する為に可能な幾つものブール選択関数の
間で、選択肢を有す。本発明の対抗措置方法を利用するには、各クリティカル命
令によって処理されるデータは、二回に一回、ある値又はその補数を無作為に抽
出するということに注意をしなければならない。従って、本発明の対抗措置方法
を、DESアルゴリズムに適用するについては、完全な保護の為に、DESの最
初のクリティカル命令と、DESの最後のクリティカル命令とに対抗措置方法を
適用しなければならない。
タか、もしくは演算SBOXの出力データの派生データである。
及びgである。データaは最初のサイクルの演算SBOXの出力データである。
g=P PERM(a)XOR L0であるから、データgはデータaから計算
される。従ってgは最初のサイクルの演算SBOXの出力データaの派生データ
である。従って、DESの開始のクリティカル命令で処理される全データは、最
初のサイクルの演算SBOXの出力データaから直接または間接的に導き出され
る。
データaと、第十四のサイクルT14のデータgであり、gはL15に等しい。
ルT14の演算SBOXの出力データaから計算される。但し、L15=P P
ERM(a) XOR L14。
タも予測不可能にすることになる。従って、DESアルゴリズムのクリティカル
命令によって処理される全データが、予測不可能になる。
C0に存するものであり、各サイクルごとに使用されて、入力データSから出力
データEを算出する。
aを予測不可能にする為の他の手段として、少なくとももう一つ他の定数表を用
いることから成り、クリティカル命令によって処理されるこの出力データ及び/
または派生データが全て予測不可能になるようにする。
ころでは様々な定数表の使用は、二分の一の確率の統計法則によって制御される
。
dと出力データの一方または両方に、補数を取ったデータを対応させるような定
数表である。
態様を示している。
を受けない演算とデータには、既に述べた図3におけるのと同じ表記になってい
る。
数表TC1が準備されている。この第二定数表TC1の作用を受けた全データは、
それら数字の上に、′や ̄の記号が付けられている。DESの開始のクリティカ
ル命令によって、対抗措置方法の作用を受ける全データが、処理されるのが見て
取れる。
つの第二定数表から形成されていることに注目されたい。
力データEについて、第一のものから算出される出力データSの補数/Sを、第
二のものが出力するという定数表である。
表TC01に対して補数が取られた出力を与えるものである。
OXの出力として、第一定数表TC0を用いて得られるデータaの補数/aが得
られる。同様に、最初のサイクルT1で得られるのは、補数データ/gであり、
第二のサイクルT2で得られるのは、補数データ/h,/L2,/l及び/bで
ある。
二表を使うことにより、クリティカル命令により処理されるDESの初めで可能
性のある全標的ビットは、「1」の値と「0」の値とを同じ確率で取る。
もの第一定数表を使う必要があり、というのも、このDESの最後のクリティカ
ル命令で処理される全データを予測不可能にする為には、第十四のサイクルT1
4で計算された出力データaと、第十六のサイクルT16で計算された出力デー
タaとを同時に考慮に入れなければならないからである。
示されている。
れた第二定数表TC1が用いられる。
おいて用いられる。
データSの補数/Sを算出する表である。第一基本定数表TC0から導き出され
る、対応する第三基本定数表TC21の一例は、図10に示されている。
理することが、図8に示されている。
い。他の可能性も考えられる。例えば、DESの最後に適用される対抗措置方法
について、定数表TC1を、第一定数表TC0との関係で規定されたもう一つの定
数表と組み合わせて使用することで、入力データの補数/Eに対して出力データ
Sを算出することも可能である。
表を使う必要があり、このDESの終了のクリティカル命令で処理される全デー
タが予測不可能になるようにする為である。
る。DESの入力に適用される対抗措置方法は、計算された中間結果L3’とR
3’とを生成するが、該結果は正解ではないのである。従って、その後に続く全
中間結果もまた正解ではない。
された中間結果L16’とR16’とを生成するが、該結果は正解ではない。
、毎回、正しい中間結果を有するアルゴリズム列を再開できるように、準備され
なければならない。
クルにあるので、これらの最初の三サイクルを二倍することにする。換言すれば
、少なくとも最初の三サイクルT1、T2、T3をそれぞれ含む二つのシーケン
スを実行するように準備する。第一シーケンスSEQAは、各サイクル毎に、第
一定数表TC0を用いている。もう一つのシーケンスSEQBは、少なくとも最
初のサイクルT1において、第二定数表TC1を用いる。図示された例では、続
く二サイクルT2及びT3において、第一定数表が使われている。
り例示されたところでの様々な定数表の使用は、二分の一の確率の統計法則によ
って制御されている。その場合、この二分の一の確率の統計法則は、これらの様
々な手段の使用の順序に、つまり例示されたところでは、二つのシーケンスSE
QAとSEQBの実行の順序に、特に適用される。
されたメッセージCを作成する為には、DESの終了のクリティカル命令を含む
三サイクルT14、T15及びT16も二倍する(図7)。従って、少なくとも
最後の三サイクルT14、T15及びT16を含む二つのシーケンスを実行する
ことになる。第一シーケンスSEQA’には、各サイクル毎に、第一定数表TC 0 が用いられる。もう一つのシーケンスSEQB’には、他の定数表TC1及びT
C2が用いられる。前述したように、その場合、二分の一の確率の統計法則は、
これら二つのシーケンスSEQA’とSEQB’の実行の順序に適用される。
しかしながら、それらのシーケンスのどちらのクリティカル命令を実行する時で
あろうとも、一つのデータを処理する可能性は、その補数を処理する可能性と等
しくなる。
抗措置方法を包含するように変更されなければならない。図11に示されている
のは、本発明に適合した実行フローチャートの例であり、図7及び8との関連で
述べられた実施態様によってDESの初めと終わりで対抗措置方法を利用するも
のである。この例において、シーケンスSEQA及びSEQBには最初の三サイ
クルが含まれており、シーケンスSEQA’及びSEQB’には最後の三サイク
ルが含まれている。
EYと記された入力パラメータをバックアップすることから成り、実際には、C
ONTEXT0と記された一時メモリ領域内でのパラメータL0、R0及びrに
対応している。
し、0または1に等しい値RND1を無作為抽出する。
ーケンスSEQBを実行し、該シーケンスにおいて、サイクルT1には第二定数
表TC1を、サイクルT2とT3には第一定数表TC0を用いる。CONTEXT
2と記された一時メモリ領域内で、出力パラメータL3’、R3’ (誤った値
を有する)をバックアップする。
入力パラメータを復活(アンドゥ)させてRND1の値の補数をとる。例におい
て、RND1=0が得られる。その場合には、三サイクルT1、T2及びT3で
第一定数表が使われるT1、T2、T3のもう一つのシーケンスSEQAを実行
することになる。CONTEXT1と記された一時メモリ領域内で、出力パラメ
ータ(正しい値)をバックアップする。
。その場合には、CONTEXT1復活をさせ、次のサイクル(T4)で、正し
い値を有する中間結果L3、R3を算出する。
(TC0)から始めて、T1(TC1)、T2(TC0)、T3(TC0)で終わる
。
タL13、R13を一時メモリ領域CONTEXT0でバックアップし、最初の
サイクルに類似した方法で、残りのサイクルT14、T15及びT16について
処理する。
にしなければならない。特にこの理由から、前述の応用例においては、一時メモ
リ領域CONTEXT2において、誤った値(L3’,R3’またはL16’,
R16’)もバックアップするように準備されている。
、DPA攻撃が実を結ぶ可能性がでてくる。
に特に限定されるものではない。全ての秘密鍵式暗号化アルゴリズムに応用され
る。一般的には、入力データから出力データを算出する為の第一手段の使用を含
むアルゴリズムであって、出力データ及び/または派生データがクリティカル命
令によって処理されるようなアルゴリズムを、完全に利用する為に、本発明の対
抗措置方法に他の手段を用いることを含み、出力データ及び派生データが予測不
可能になるようにする。
則によって制御されている。
段の入力及び出力データのどちらか一方に、補数データを対応させるものである
。
、第一定数表TC0に存する。DESの初めでは、他の手段は、第二定数表TC1 に存する。例において、DESの終わりでは、二つの異なった定数表TC1及び
TC2に存する。
る為には、まず、このアルゴリズムの予測可能な全データと、これらのデータあ
るいは派生データとを処理する、DPA攻撃に対して致命的な命令の全てを確定
しなければならない。次に、クリティカル命令によって処理される全データが予
測不可能になるように、アルゴリズムにおいて、本発明の意味での第一手段と他
の手段を識別しなければならない。DESアルゴリズムについては、第一手段は
定数表TC0である。例において、他の手段は他の定数表である。これらの手段
は、他のアルゴリズムについての様々な演算であってもよい。同一のアルゴリズ
ムについて、これらの手段は、識別されたクリティカル命令による様々な演算に
存することができる。
1は、典型的には、図12に示されているように、マイクロプロセッサμP、プ
ログラム・メモリ2と作業メモリ3を含んでいる。前述の例においては、プログ
ラム・メモリに記憶されている様々な定数表である、本発明の様々な手段の使用
を制御できるようにする為に、0と1との間の乱数を生成する手段4が準備され
ており、図11に示されているように、DESを実行する毎に、RND1の値を
算出することになる。このような構成部品はチップカードCPに特に用いられ、
カードの不可侵性を高めることができる。
の実行フローチャートである。
の実行フローチャートである。
初めの数サイクルと終わりの数サイクルの計算の実行フローチャートの一例を示
している。
初めの数サイクルと終わりの数サイクルの計算の実行フローチャートの一例を示
している。
。
チャートを示している。
ドの簡略化したブロック図を示す。
Claims (12)
- 【請求項1】秘密鍵(K)式暗号化アルゴリズムを利用する電子構成部品内
での対抗措置方法であり、アルゴリズムの利用には、入力データ(E)から出力
データ(S)を算出する為の第一手段(TC0)を使うことが含まれており、出
力データ及び/または派生データは、クリティカル命令によって処理される、対
抗措置方法であって、出力データ及び派生データが予測不可能になるように、他
の手段(TC1)を使用するように準備されていることを特徴とする対抗措置方
法。 - 【請求項2】様々な手段(TC0,TC1)の使用は、二分の一の確率の統計
法則によって制御されていることを特徴とする、請求項1に記載の対抗措置方法
。 - 【請求項3】アルゴリズムが、十六サイクルの計算(T1,. . . , T16
)の利用を含んでいる対抗措置方法であって、少なくとも最初の三サイクル(T
1,T2,T3)から形成された第一シーケンス(SEQA)と第二シーケンス
(SEQB)の実行を含んでおり、シーケンス実行の順序は、二分の一の確率の
統計法則によるものであり、第一シーケンス(SEQA)は各サイクル毎に第一
手段(TC0)を用いており、第二シーケンス(SEQB)は少なくとも最初の
サイクル(T1)で他の手段(TC1)を用いていることを特徴とする、請求項
2に記載の対抗措置方法。 - 【請求項4】第一シーケンスと第二シーケンスは、それぞれ最初の三サイク
ル(T1,T2,T3)で形成されていることを特徴とする、請求項3に記載の
対抗措置方法。 - 【請求項5】他の手段は第二手段(TC1)から成り、該第二手段は、同一
の入力データ(E)については、第一手段(TC0)の出力データ(S)の補数
(/S)を出力するものであることを特徴とする、請求項3または4に記載の対
抗措置方法。 - 【請求項6】アルゴリズムが、十六サイクルの計算(T1,. . . , T16
)の利用を含んでいる対抗措置方法であって、少なくとも最後の三サイクル(T
14,T15,T16)からそれぞれが形成された第一シーケンス(SEQA’
)と第二シーケンス(SEQB’)の実行を含んでおり、シーケンスの実行の順
序は、二分の一の確率の統計法則によるものであり、第一シーケンス(SEQA
’)は各サイクル毎に第一手段(TC0)を用いており、第二シーケンス(SE
QB’)は他の手段(TC1,TC2)を用いていることを特徴とする、請求項2
に記載の対抗措置方法。 - 【請求項7】第一シーケンスと第二シーケンスはそれぞれ最後の三サイクル
で形成されており、第二シーケンスで用いられる他の手段は第二手段(TC1)
と第三手段(TC2)を含んでいることを特徴とする、請求項6に記載の対抗措
置方法。 - 【請求項8】第二手段(TC1)は、同一の入力データ(E)について、第
一手段(TC0)の出力データ(S)の補数(/S)を出力するものであり、こ
れら第二手段は第十四のサイクル(T14)の為に第二シーケンス(SEQB’
)で用いられることを特徴とする、請求項6または7に記載の対抗措置方法。 - 【請求項9】第三手段(TC2)は、入力データ(E)の補数について、第
一手段(TC0)の出力データ(S)の補数(/S)を出力するものであり、第
十五のサイクルと第十六のサイクル(T15,T16)について、第二シーケン
スで用いられることを特徴とする、請求項8に記載の対抗措置方法。 - 【請求項10】様々な手段は定数表を基にすることを特徴とする、請求項1
から9のいずれか一つに記載の対抗措置方法。 - 【請求項11】入力データから出力データを算出する為の様々な手段(TC 0 ,TC1,TC2)は、前記構成部品のプログラム・メモリに不揮発的に書き込
まれていること、そして、前記様々な手段の使用を制御する為の、0または1の
乱数(RND1)の生成手段を含んでいることを特徴とする、請求項1から10
のいずれか一つに記載の対抗措置方法を利用する電子構成部品。 - 【請求項12】請求項11に記載の電子構成部品を含むチップカード。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
FR9812989 | 1998-10-16 | ||
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 true JP2002528754A (ja) | 2002-09-03 |
JP4195199B2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006174274A (ja) * | 2004-12-17 | 2006-06-29 | Toshiba Corp | 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード |
JP2008067416A (ja) * | 2000-01-31 | 2008-03-21 | Oberthur Card Systems Sa | 2つの電子的エンティティ間における暗号プロトコル実行方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2345229B (en) * | 1998-12-23 | 2003-12-03 | Motorola Ltd | Method for encrypting data |
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 |
WO2003075506A1 (en) * | 2002-03-07 | 2003-09-12 | 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 |
JP5017439B2 (ja) * | 2010-09-22 | 2012-09-05 | 株式会社東芝 | 暗号演算装置及びメモリシステム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02199561A (ja) * | 1988-11-10 | 1990-08-07 | Sgs Thomson Microelectron Sa | 許可を得ていない保護データ検出に対する安全装置 |
JPH07202849A (ja) * | 1993-12-21 | 1995-08-04 | General Instr Corp Of Delaware | 信号化演算における相補性回避装置 |
JPH10154976A (ja) * | 1996-11-22 | 1998-06-09 | Toshiba Corp | タンパーフリー装置 |
JP2000066585A (ja) * | 1998-08-20 | 2000-03-03 | Toshiba Corp | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2672402B1 (fr) * | 1991-02-05 | 1995-01-27 | Gemplus Card Int | Procede et dispositif pour la generation de nombres pseudo-aleatoires uniques. |
-
1998
- 1998-10-16 FR FR9812989A patent/FR2784829B1/fr not_active Expired - Fee Related
-
1999
- 1999-09-13 DE DE69928684T patent/DE69928684T2/de not_active Expired - Lifetime
- 1999-09-13 AU AU56275/99A patent/AU5627599A/en not_active Abandoned
- 1999-09-13 JP JP2000577797A patent/JP4195199B2/ja not_active Expired - Fee Related
- 1999-09-13 ES ES99942957T patent/ES2255296T3/es not_active Expired - Lifetime
- 1999-09-13 EP EP99942957A patent/EP1119939B1/fr not_active Expired - Lifetime
- 1999-09-13 CN CNB998122416A patent/CN1166111C/zh not_active Expired - Fee Related
- 1999-09-13 WO PCT/FR1999/002172 patent/WO2000024155A1/fr active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02199561A (ja) * | 1988-11-10 | 1990-08-07 | Sgs Thomson Microelectron Sa | 許可を得ていない保護データ検出に対する安全装置 |
JPH07202849A (ja) * | 1993-12-21 | 1995-08-04 | General Instr Corp Of Delaware | 信号化演算における相補性回避装置 |
JPH10154976A (ja) * | 1996-11-22 | 1998-06-09 | Toshiba Corp | タンパーフリー装置 |
JP2000066585A (ja) * | 1998-08-20 | 2000-03-03 | Toshiba Corp | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008067416A (ja) * | 2000-01-31 | 2008-03-21 | Oberthur Card Systems Sa | 2つの電子的エンティティ間における暗号プロトコル実行方法 |
JP2006174274A (ja) * | 2004-12-17 | 2006-06-29 | Toshiba Corp | 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード |
JP4634788B2 (ja) * | 2004-12-17 | 2011-02-16 | 株式会社東芝 | 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード |
Also Published As
Publication number | Publication date |
---|---|
JP4195199B2 (ja) | 2008-12-10 |
CN1323476A (zh) | 2001-11-21 |
EP1119939B1 (fr) | 2005-11-30 |
DE69928684D1 (de) | 2006-01-05 |
CN1166111C (zh) | 2004-09-08 |
WO2000024155A1 (fr) | 2000-04-27 |
AU5627599A (en) | 2000-05-08 |
FR2784829B1 (fr) | 2000-12-29 |
DE69928684T2 (de) | 2006-08-24 |
EP1119939A1 (fr) | 2001-08-01 |
FR2784829A1 (fr) | 2000-04-21 |
ES2255296T3 (es) | 2006-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7334133B2 (en) | Method for making a computer system implementing a cryptographic algorithm secure using Boolean operations and arithmetic operations and a corresponding embedded system | |
EP1873671B2 (en) | A method for protecting IC Cards against power analysis attacks | |
US20210050313A1 (en) | Cryptographic device arranged to compute a target block cipher | |
KR102539111B1 (ko) | 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치 | |
Clavier et al. | Improved collision-correlation power analysis on first order protected AES | |
US7543159B2 (en) | Device and method with reduced information leakage | |
US7194633B2 (en) | Device and method with reduced information leakage | |
US20040025032A1 (en) | Method and system for resistance to statiscal power analysis | |
JP2011103686A (ja) | 暗号化されたアクセスを使う電子的エンティティのセキュリティ化方法 | |
JP3733027B2 (ja) | 秘密鍵式暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法 | |
Borst et al. | Cryptography on smart cards | |
JP3650333B2 (ja) | 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法 | |
JP2002528754A (ja) | 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法 | |
US7471791B1 (en) | Method for countermeasure in an electronic component using a secret key algorithm | |
TW200411593A (en) | Method and apparatus for protecting public key schemes from timing, power and fault attacks | |
JP2004310752A (ja) | データ処理装置における誤り検出 | |
JP2002529777A (ja) | 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法 | |
JP2005134478A (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
Fu et al. | Linear regression side channel attack applied on constant xor | |
JP2005031471A (ja) | 暗号処理装置、および暗号処理方法 | |
JP2006054568A (ja) | 暗号化装置、復号化装置、および方法、並びにコンピュータ・プログラム | |
Schramm et al. | Embedded cryptography: Side channel attacks | |
DeTrano et al. | Exploiting small leakages in masks to turn a second-order attack into a first-order attack | |
JP4634788B2 (ja) | 暗号演算回路と、該暗号演算回路を有する情報処理装置及びicカード | |
Kaminaga et al. | Power analysis and countermeasure of RSA cryptosystem |
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 |