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

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

Info

Publication number
JP2002540654A
JP2002540654A JP2000600393A JP2000600393A JP2002540654A JP 2002540654 A JP2002540654 A JP 2002540654A JP 2000600393 A JP2000600393 A JP 2000600393A JP 2000600393 A JP2000600393 A JP 2000600393A JP 2002540654 A JP2002540654 A JP 2002540654A
Authority
JP
Japan
Prior art keywords
data
random
countermeasure method
cycle
operations
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.)
Abandoned
Application number
JP2000600393A
Other languages
English (en)
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 JP2002540654A publication Critical patent/JP2002540654A/ja
Abandoned legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 入力メッセージMに対して秘密鍵K式暗号化アルゴリズムを実施する電子構成部品内の対抗措置方法であって、出力データOPN(D)を算出するために、入力データDのビットごとの処理を含む一つの演算OPNまたは一連の演算が:入力データDと同じサイズの第一のランダムデータUの乱数を抽出する過程と;入力データと第一のランダムデータUの間で排他的論理和を実行して、第二のランダムデータVを計算する過程と;第一のランダムデータUと第二のランダムデータVに演算OPNまたは一連の演算を順次実行して、それぞれ第一のランダム結果OPN(U)と第二のランダム結果OPN(V)を算出する過程;とから成る。

Description

【発明の詳細な説明】
【0001】 本発明は秘密鍵式暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
に関するものである。それらはサービスまたはデータへのアクセスが厳しく管理
されるアプリケーションで用いられる。かかる構成部品はマイクロプロセッサと
メモリを中心に形成されたアーキテクチャを有し、その中のプログラムメモリに
秘密鍵が保存されている。
【0002】 これらの構成部品は、チップカードの特定アプリケーションのために、特にチ
ップカードの中で使用される。これらは、例えば、特定のデータバンクへのアク
セス・アプリケーション、銀行アプリケーション、例えばテレビ、ガソリン販売
、あるいはまた高速道路料金所通過のための、遠隔支払いアプリケーションであ
る。
【0003】 従って、これらの構成部品またはカードは、秘密鍵式暗号化アルゴリズムを利
用するものであり、その中で最もよく知られているのがDESアルゴリズムであ
る(英文ではData Encryption Standard)。他にも秘密鍵式アルゴリズムは存在
し、RC5アルゴリズムまた更にCOMP128アルゴリズムなどがある。もち
ろんこれで全てが含まれるわけではない。
【0004】 一般的にまた簡潔に、これらのアルゴリズムは、ホストシステム(サーバー、
銀行の現金支払機、・・・)によって(カードへの)入力に適用されたメッセー
ジとカード内に含まれる秘密鍵とから暗号化されるメッセージを計算し、この暗
号化メッセージをホストシステムに返す機能を有し、それによって、例えば、ホ
ストシステムは構成部品またはカードを認証し、データを交換することなどが可
能になる。
【0005】 秘密鍵式暗号化アルゴリズムの特性は、既に知られたものである:実施される
計算、用いられるパラメータ。唯一分かっていないのは、プログラムメモリ内に
保存されている秘密鍵である。これらの暗号化アルゴリズムの全てのセキュリテ
ィは、カード内に保存され、かつこのカードの外では知られていないこの秘密鍵
にある。この秘密鍵は、入力に適用されたメッセージと返された暗号化メッセー
ジが分かっているだけでは演繹できない。
【0006】 ところが、カードのマイクロプロセッサが暗号化メッセージを計算するための
暗号化アルゴリズムを実行している間の、消費電力つまり電力差分解析に基づく
外部からの攻撃によって、悪意のある第三者がこのカード内に保存されている秘
密鍵を見つけることができることが分かっている。これらの攻撃は、英語の Dif
ferential Power Analysis の頭字語で、DPA攻撃と呼ばれている。
【0007】 これらのDPA攻撃の原理は、命令を実行するマイクロプロセッサの消費電力
が、処理されるデータに従って変わるという事実に基づくものである。
【0008】 特に、マイクロプロセッサによって実行される命令がビットごとのデータ処理
を必要とするとき、このビットが「1」の値であるか「0」の値であるかによっ
て、異なる2つの電力波形が得られる。典型的には、マイクロプロセッサが「0
」を処理するなら、この実行の瞬間に消費電力の第一の振幅が得られ、マイクロ
プロセッサが「1」を処理するなら、第一のものとは異なる消費電力の第二の振
幅が得られる。
【0009】 このようにDPA攻撃は、処理されるビットの値に従って命令を実行する間の
カード内の消費電力波形の差分を利用する。簡略には、DPA攻撃の行動は、ビ
ットごとにデータを処理する少なくとも一つの命令の実行を含むアルゴリズムの
ランに固有の一つまたは複数の周期を識別し;アルゴリズムを適用する異なるメ
ッセージ毎に一つの曲線である、この又はこれらの周期の間で極めて多数Nの消
費電力曲線を読み取り;部分鍵について、すなわち予測可能な秘密鍵の少なくと
も一部について推定するために、データの1ビットに取られる値を、各曲線ごと
に予測し;対応するブール選択関数によって曲線をソートする;ことから成り、
予測値が「1」の値である曲線の第一のパケットと、予測値が「0」の値である
曲線の第二のパケットが得られる。得られた2つの曲線パケットの間の平均消費
電力の差分解析を実行して、情報信号DPA(t)が得られる。部分鍵の推定が
正しくなければ、各パケットには実際には「1」の処理に対応する曲線と、「0
」を処理する曲線が同じだけ存在する。従って、2つのパケットは消費電力につ
いて等しく、情報信号はほぼゼロである。部分鍵の推定が正しければ、一方のパ
ケットには現実に「0」の処理に対応する曲線が含まれ、他方のパケットには現
実に「0」の処理に対応する曲線が含まれる:得られた情報信号DPA(t)は
ゼロではない:ソートの基になったビットのマイクロプロセッサによる処理に対
応する消費ピークが含まれる。これらのピークは「1」を処理するか「0」を処
理するかによってマイクロプロセッサによる消費の差分に対応する振幅を有する
。従って、徐々に、電子構成部品内に含まれる秘密鍵の全体または一部を暴くこ
とが可能となる。
【0010】 マイクロプロセッサが、特定の瞬間にビットごとのデータ処理をしなければな
らないような実行のための秘密鍵式アルゴリズムは多数存在する。
【0011】 特に、アルゴリズムは、マイクロプロセッサによるかかる処理を必要とする置
換を一般的に含んでいる。これらのビットごとの処理を実行する際の消費電力を
解析することで、少なくとも処理されたデータの特定のビットの値を暴くことが
できる。このデータが分かることによって、暗号化アルゴリズムの実行の際に得
られた中間結果についての情報を得ることが可能であり、今度はそれらによって
、用いられた秘密鍵のビットの少なくとも一部を暴くことが可能になる。
【0012】 本発明は、対抗措置、すなわち受信妨害を適用することで、ビットごとに処理
を実行するデータを保護することを目的とし、このデータ処理の際の消費電力解
析によっては、このデータの情報が一切明らかにならないようになる:情報信号
DPA(t)は、DPA攻撃で実行された部分鍵または鍵のいかなる推定にも関
わらずゼロになる。
【0013】 請求の範囲に記載のごとく、本発明は秘密鍵K式暗号化アルゴリズムを用いる
電子構成部品内の対抗措置方法に関するものである。
【0014】 本発明によれば、対抗措置方法は、入力データに適用され、かつ少なくともビ
ットごとの処理を含む演算または一連の演算について、第一のデータと同じサイ
ズの第一のランダムデータをあらかじめ抽出し、第一のランダムデータと入力デ
ータの間で排他的論理和を実行して第二のランダムデータを計算し、第一のラン
ダムデータと第二のランダムデータに演算または一連の演算を順次適用すること
から成る。
【0015】 このようにして、演算または一連の演算はランダムデータしか処理しないので
、DPA攻撃は実施できなくなる。
【0016】 入力データについて、次の過程の適用に対応する出力データを見つけるには、
第一と第二のランダム結果の間で排他的論理和を計算するだけでよい。
【0017】 この対抗措置方法の第一の実施態様において、演算または一連の演算は、暗号
化されるメッセージから計算したデータを対象とする。
【0018】 本発明による対抗措置方法の第二の実施態様では、秘密鍵を直接の対象とし、
かつアルゴリズムの各サイクル毎に使用される部分鍵を算出する演算に、この方
法が適用される。
【0019】 本発明による対抗措置方法のこの実施態様では、上述の方法によって最初の過
程のシーケンスセットが実行され、第一のランダム部分鍵と第二のランダム部分
鍵が得られるようにる。
【0020】 この変型では、対象とするサイクルの真の部分鍵を計算する代わりに、これら
のランダム部分鍵が使用され、各サイクルの真の部分鍵がもはや明らかにされな
くなる:ランダム部分鍵しか処理されない。
【0021】 本発明のその他の特徴と利点は付属の図面を参照して、例としてあげられた非
制限的な下記の説明を読むことによっていっそう明らかになるだろう。 − 図1と2は、DESアルゴリズムの最初と最後のサイクルの詳細なフローチ
ャートである。 − 図3は、ビットごとのデータ処理を実行する演算に適用される、本発明によ
る対抗措置方法を模式的に表している。 − 図4は、DESアルゴリズム実行における本発明による対抗措置方法の第一
の実施態様を表している。 − 図5は、秘密鍵を処理するDESアルゴリズムの演算に対する、本発明によ
る方法の第二の実施態様を模式的に表している。 − 図6は、図5の略図に対応する対抗措置方法の適用におけるDESアルゴリ
ズムの詳細なフローチャートを表している。 − 図7は、本発明による対抗措置方法を実施することができるチップカードの
ブロック図を表している。
【0022】 DES秘密鍵式暗号化アルゴリズム(以下に、DESまたはDESアルゴリズ
ムと簡潔に称す)は、図1と2に示したごとく、T1からT16で表した16サ
イクルの計算を含んでいる。
【0023】 DESは、入力メッセージMに対する初期置換IPから開始する(図1)。入
力メッセージMは64ビットのワードfである。置換後に得られた64ビットの
ワードeを2つに分割して、第一サイクル(T1)の入力パラメータL0とR0
を形成する。L0は32ビットのワードdであり、ワードeの重みのある方の3
2ビットを含む。R0は32ビットのワードhであり、ワードeの重みのない方
の32ビットを含む。
【0024】 64ビットのワードqである秘密鍵Kも置換と圧縮を受けて、56ビットのワ
ードrを算出する。
【0025】 第一サイクルは、拡張と置換とから成る、パラメータR0に対する演算EXP
PERMを含み、48ビットのワードlを出力する。
【0026】 このワードlは、48ビットのワードbを算出するために、XORで表される
排他的論理和型の演算において、パラメータK1に組み合わされる。48ビット
のワードmであるパラメータK1は、48ビットのワードpを算出するある位置
のシフト(図1と2でSHIFTで表される演算)によってワードrから得られ
、それに置換と圧縮から成る演算(COMP PERMで表される演算)が適用
される。
【0027】 ワードbはSBOXで表される演算に適用され、その出力では32ビットのワ
ードaが得られる。この特定の演算は、入力データbに応じて定数表TC0から
得られた出力データaを算出することから成る。
【0028】 ワードaは置換P PERMを受け、32ビットのワードcを出力する。
【0029】 このワードcは、XORで表される、排他的論理和型の論理演算において、第
一サイクルT1の入力パラメータL0に組み合わされ、32ビットのワードgを
出力する。
【0030】 第一サイクルのワードh(=R0)は、次のサイクル(T2)の入力パラメー
タL1を算出し、第一サイクルのワードgは、次のサイクルの入力パラメータR
1を算出する。第一サイクルのワードpは、次のサイクルの入力rを算出する。
【0031】 他のサイクルT2からT16も同様に展開するが、ただしシフト演算SHIF
Tは対象となる複数のサイクルに従って、一つまたは二つの位置で行われる。
【0032】 このように、それぞれのサイクルTiは、入力にパラメータLi−1、Ri−
1、及びrを受け取り、出力に次のサイクルTi+1のためのパラメータLi、
Ri、及びrを算出する。
【0033】 DESアルゴリズムの最後に(図4)、暗号化されるメッセージは、最後の一
サイクルT16によって算出されたパラメータL16とR16から計算される。
【0034】 この暗号化メッセージCの計算は、実際には次の演算を含んでいる。 − ワードL16とR16の位置を逆転させ、次にそれらを連結することによっ
て、64ビットのワードe’を形成する。 − 暗号化メッセージCを形成する64ビットのワードf’を得るために、DE
S開始の置換とは逆の置換IP-1を適用する。
【0035】 ここで分かるように、このアルゴリズムは置換演算と同様に、ビットごとにデ
ータを処理する多数の演算を含んでいる。
【0036】 本発明による対抗措置方法によれば、暗号化メッセージを計算するマイクロプ
ロセッサがビットごとに処理をするとき、ソフトウェア対抗措置を適用する。こ
れにより、消費電力曲線に適用されるDPA攻撃の統計処理とブール選択関数か
らは、もはやいかなる情報も与えなくなる:情報信号DPA(t)は、実行され
た部分鍵のいかなる推定にも関わらずゼロとなる。
【0037】 従って、本発明によるソフトウェア対抗措置は、マイクロプロセッサによって
処理されるそれぞれのビットを推定できなくさせることにある。
【0038】 この対抗措置の原理を図3に表した。
【0039】 入力データをDとする。
【0040】 この入力データDについて計算する演算をOPNとし、結果をOPN(D)で表す
。この演算OPNは、マイクロプロセッサによる入力データDのビットごとの処理
を必要とする;それは、例えば置換である。
【0041】 本発明によれば、入力データDに演算OPNを適用して演算結果OPN(D)を計
算する代わりに、次の異なる過程を実施する。 − 入力データDと同じサイズ(例えば、32ビット)の第一のランダムデータ
Uについて乱数を抽出する。 − 入力データと第一のランダムデータの間で排他的論理和を実行して第二のラ
ンダムデータVを計算する:V=D XOR U。 − 第一のランダムデータUに対して演算OPNを計算し、第一のランダム結果O
PN(U)を得る。 − 第二のランダムデータVに対して演算OPNを計算して、第二のランダム結果
OPN(V)を得る。 − 第一と第二のランダム結果の間で排他的論理和を実行して、結果OPN(D)
を計算する:OPN(D)=OPN(U) XOR OPN(V)。
【0042】 この方法は単一の演算にも一連の演算にも適用できる。
【0043】 本発明による対抗措置方法の第一の実施態様は、アルゴリズムを適用するメッ
セージ(M)から計算したデータに対する演算に関するものである。この場合、
入力データDはメッセージMから計算したデータである。
【0044】 図4に示したDESアルゴリズムへのこの第一の実施態様の実施例では、この
方法を、一つには演算EXP PERMに、もう一つには演算P PERMに適用
するが、該演算は両者共に入力データをビットごとに処理する必要がある置換を
含んでいる。
【0045】 図において、これらの演算に対するこの対抗措置の適用を、CM(EXP P
ERM)とCM(P PERM)で表した。
【0046】 従って、本発明によるソフトウェア対抗措置は、それぞれの演算P PERM
とEXP PERMの代わりに、ランダム変数Uを用いて、図3に記載の計算シ
ーケンスに従って演算CM(EXP PERM)とCM(P PERM)を実行す
ることから成る。アルゴリズムの各サイクルは、演算EXP PERMと演算P
PERMを含んでいるので、この対抗措置をDESの各サイクルに適用できる。
【0047】 実験が示すところでは、最初の三サイクルと最後の三サイクルが、DPA攻撃
を可能にする。その後、ビットの予測が極めて困難、更には不可能になる。
【0048】 また、本発明による対抗措置方法の計算時間が経済的な実施は、DESのこれ
らの最初の三サイクルと最後の三サイクルにしか計算を適用しないことから成る
【0049】 本発明による対抗措置方法の様々な変型実施は、第一のランダムデータUのた
めの乱数を抽出することに関するものである。多くの計算時間があるかないかに
よって、本発明による対抗措置方法が実施されるそれぞれの演算または一連の演
算について、毎回新しい乱数を抽出することができる。
【0050】 従って、図4では、演算CM(EXP PERM)については、ランダムデー
タUのための値u1が抽出され、またCM(P PERM)演算については、ラ
ンダムデータUのための別の数値u2が抽出される。
【0051】 あるいは、アルゴリズムのサイクル毎に新規の乱数を、また更にはアルゴリズ
ム開始の時に一つだけ乱数を抽出することができる。
【0052】 基本的には、本発明による対抗措置方法の実施は、対抗措置に追加時間の多く
を割けるか否かによる当該アプリケーションに依存する。
【0053】 本発明による対抗措置方法の第二の実施態様を図5に示した。それはより具体
的には、アルゴリズムの複数のサイクルで使用されるそれぞれの部分鍵Kiを算
出するために、秘密鍵Kに適用される計算演算に関するものである。DESの例
において、これらの演算は次のものであり、つまりKEY PERMはDESの
開始の際に実行され、SHIFTとCOMP PERMはそれぞれのサイクルで
実行される。これらの演算の際の特定の瞬間に、マイクロプロセッサは秘密鍵の
一つのビットを別個に処理するので、従って、このビットに対するDPA攻撃の
可能性が残される。
【0054】 この場合、DPA攻撃によっては情報が得られなくなるように、これらの演算
を実行する前に、データ、この場合には秘密鍵を保護しながら本発明による対抗
措置方法が適用される。
【0055】 従って、図5に模式的に示したように、秘密鍵Kと同じサイズの第一のランダ
ムデータYの乱数を抽出する。秘密鍵Kと第一のランダムデータYの間で排他的
論理和を実行して、同じサイズの第二のランダムデータZを計算する:Z=K
XOR Y。
【0056】 実施例において、一連の演算は次の演算を含んでいる:KEY PERM、S
HIFT、COMP PERM。次にこの一連の演算を、2つのランダムデータ
YとZのそれぞれに順次適用する。従って、入力に順次適用されたこれら2つの
データYとZから、演算KEY PERM、SHIFT、COMP PERMの出
力では、順次、データY’、PiY'、KiY'、そしてZ’、Piz'、Kiz'がそれぞ
れ得られる。
【0057】 DESへの実際の応用例を図6に示す。
【0058】 DESでは、KEY PERM演算は最初に一度しか実施されないが、演算S
HIFTとCOMP PERMのシーケンスは各サイクルで実施される。
【0059】 くわえて、サイクルTiの演算SHIFTの出力は、次のサイクルTi+1の
演算SHIFTの入力として適用される(図1と2参照)。
【0060】 第二の実施態様の対抗措置方法をこのDESアルゴリズムに適用するために、
この場合、第一の演算KEY PERMをランダムデータYとZに適用し、それ
によってY’とZ’で表される2つの中間ランダムデータが与えられる。これら
2つの中間ランダムデータは、第一サイクルT1の演算SHIFTに順次適用さ
れて、P1Y'とP1Z'で表される2つの中間ランダムデータを算出する。これら2
つのランダムデータは、一方では次のサイクル(第二サイクル)の演算SHIF
Tのために作業メモリ内に記憶され、他方では第一サイクルの演算EXP PE
RMに順次適用されて、第一の中間結果K1Y'とK1Z'を算出する。
【0061】 各サイクルはこのように処理する。従って、各サイクルTiにおいて、第一の
ランダム結果:KiY'=EXP PERM(SHIFT (Y’))、及び第二の
ランダム結果:KiZ'=EXP PERM(SHIFT (Z’))が得られ、 中間ランダムデータSHIFT(Y’)=PiY'とSHIFT(Z’)=PiZ' が次のサイクルTi+1のために作業メモリに記憶される。
【0062】 このとき、それぞれのサイクルTi毎に、2つのランダム結果Kiy'とKiz'
間で排他的論理和を実行して、秘密鍵Kに適用されたこのサイクルの一連の演算
KEY PERM、SHIFT、COMP PERMに対応する対応部分鍵Kiを
再計算することができる:Ki=Kiy'XOR Kiz'
【0063】 しかし好ましくは、また図6に示したごとく、Tiサイクルの部分鍵Kiは再
計算しない。拡張置換演算EXP PERMによって算出されたデータlによる
排他的論理和演算XORにおいて、部分鍵Kiの代わりに第一のランダム結果K iy' を適用する。中間結果b’が得られる。
【0064】 次に、第二のランダム結果Kiz'とこの中間結果b’の排他的論理和XORを
実行して、出力のデータb=XOR(l,Ki)が見つかる。従って、図6に第
一サイクルと第二サイクルについて示したごとく、lからパラメータbを計算す
るために、それぞれのTiサイクルにおいて、次の演算が実行される: b’=l XOR KiY' b=b’ XOR Kiz'
【0065】 このように、暗号化メッセージの計算では、秘密部分鍵自体はもはや用いられ
ず、「ランダム部分鍵」が用いられる:従って、鍵は暗号化アルゴリズム実行の
前およびその間保護され、というのも、KiY'とKiz'はランダムであり、構成部
品(またはカード)の外界からは知られておらず、暗号化アルゴリズムを新たに
実行する都度変えることができるからである。なお、本発明による対抗措置方法
を部分鍵の計算と利用に適用するとき、秘密鍵に対する演算前の、アルゴリズム
実行の開始の際に、乱数を一度だけ抽出する。
【0066】 秘密鍵に対する本発明による対抗措置方法のこの第二の実施態様は、いわゆる
暗号化メッセージの計算に対する対抗措置方法の第一の実施態様と有利に組み合
わせることが可能であり、この組み合わせによって対抗措置が特に効果的になる
【0067】 本発明は、実施例を説明したDES秘密鍵式暗号化アルゴリズムに適用される
。もっと一般的には、特定の演算のマイクロプロセッサによる実行が、データの
ビットごとの処理を必要とする全ての秘密鍵式暗号化アルゴリズムに適用される
【0068】 DES秘密鍵式暗号化アルゴリズムにおける本発明による対抗措置方法を実施
する電子構成部品1は、典型的に、図10に示したごとく、マイクロプロセッサ
oPと、プログラムメモリ2と、作業メモリ3とを含む。乱数発生手段4が備え
られ、図3と5のフローチャートを参照すると、暗号化アルゴリズム実行の都度
、所望のサイズの乱数Uおよび/またはY(Uは32ビット、Yは64ビット)
を算出する。かかる構成部品は、不可侵性を向上させるために、特にチップカー
ド5に使用することができる。
【図面の簡単な説明】
【図1】 図1は、DESアルゴリズムの最初のサイクルの詳細なフローチャートである
【図2】 図2は、DESアルゴリズムの最後のサイクルの詳細なフローチャートである
【図3】 図3は、ビットごとのデータ処理を実行する演算に適用される、本発明による
対抗措置方法を模式的に表している。
【図4】 図4は、DESアルゴリズム実行における本発明による対抗措置方法の第一の
実施態様を表している。
【図5】 図5は、秘密鍵を処理するDESアルゴリズムの演算に対する、本発明による
方法の第二の実施態様を模式的に表している。
【図6】 図6は、図5の略図に対応する対抗措置方法の適用におけるDESアルゴリズ
ムの詳細なフローチャートを表している。
【図7】 図7は、本発明による対抗措置方法を実施することができるチップカードのブ
ロック図を表している。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年3月5日(2001.3.5)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の名称】秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措
置方法
【特許請求の範囲】
【発明の詳細な説明】
【0001】 本発明は秘密鍵式暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
に関するものである。それらはサービスまたはデータへのアクセスが厳しく管理
されるアプリケーションで用いられる。かかる構成部品はマイクロプロセッサと
メモリを中心に形成されたアーキテクチャを有し、その中のプログラムメモリに
秘密鍵が保存されている。
【0002】 これらの構成部品は、チップカードの特定アプリケーションのために、特にチ
ップカードの中で使用される。これらは、例えば、特定のデータバンクへのアク
セス・アプリケーション、銀行アプリケーション、例えばテレビ、ガソリン販売
、あるいはまた高速道路料金所通過のための、遠隔支払いアプリケーションであ
る。
【0003】 従って、これらの構成部品またはカードは、秘密鍵式暗号化アルゴリズムを利
用するものであり、その中で最もよく知られているのがDESアルゴリズムであ
る(英文ではData Encryption Standard)。他にも秘密鍵式アルゴリズムは存在
し、RC5アルゴリズムまた更にCOMP128アルゴリズムなどがある。もち
ろんこれで全てが含まれるわけではない。
【0004】 一般的にまた簡潔に、これらのアルゴリズムは、ホストシステム(サーバー、
銀行の現金支払機、・・・)によって(カードへの)入力に適用されたメッセー
ジとカード内に含まれる秘密鍵とから暗号化されるメッセージを計算し、この暗
号化メッセージをホストシステムに返す機能を有し、それによって、例えば、ホ
ストシステムは構成部品またはカードを認証し、データを交換することなどが可
能になる。
【0005】 秘密鍵式暗号化アルゴリズムの特性は、既に知られたものである:実施される
計算、用いられるパラメータ。唯一分かっていないのは、プログラムメモリ内に
保存されている秘密鍵である。これらの暗号化アルゴリズムの全てのセキュリテ
ィは、カード内に保存され、かつこのカードの外では知られていないこの秘密鍵
にある。この秘密鍵は、入力に適用されたメッセージと返された暗号化メッセー
ジが分かっているだけでは演繹できない。
【0006】 ところが、カードのマイクロプロセッサが暗号化メッセージを計算するための
暗号化アルゴリズムを実行している間の、消費電力つまり電力差分解析に基づく
外部からの攻撃によって、悪意のある第三者がこのカード内に保存されている秘
密鍵を見つけることができることが分かっている。これらの攻撃は、英語の Dif
ferential Power Analysis の頭字語で、DPA攻撃と呼ばれている。
【0007】 これらのDPA攻撃の原理は、命令を実行するマイクロプロセッサの消費電力
が、処理されるデータに従って変わるという事実に基づくものである。
【0008】 特に、マイクロプロセッサによって実行される命令がビットごとのデータ処理
を必要とするとき、このビットが「1」の値であるか「0」の値であるかによっ
て、異なる2つの電力波形が得られる。典型的には、マイクロプロセッサが「0
」を処理するなら、この実行の瞬間に消費電力の第一の振幅が得られ、マイクロ
プロセッサが「1」を処理するなら、第一のものとは異なる消費電力の第二の振
幅が得られる。
【0009】 このようにDPA攻撃は、処理されるビットの値に従って命令を実行する間の
カード内の消費電力波形の差分を利用する。簡略には、DPA攻撃の行動は、ビ
ットごとにデータを処理する少なくとも一つの命令の実行を含むアルゴリズムの
ランに固有の一つまたは複数の周期を識別し;アルゴリズムを適用する異なるメ
ッセージ毎に一つの曲線である、この又はこれらの周期の間で極めて多数Nの消
費電力曲線を読み取り;部分鍵について、すなわち予測可能な秘密鍵の少なくと
も一部について推定するために、データの1ビットに取られる値を、各曲線ごと
に予測し;対応するブール選択関数によって曲線をソートする;ことから成り、
予測値が「1」の値である曲線の第一のパケットと、予測値が「0」の値である
曲線の第二のパケットが得られる。得られた2つの曲線パケットの間の平均消費
電力の差分解析を実行して、情報信号DPA(t)が得られる。部分鍵の推定が
正しくなければ、各パケットには実際には「1」の処理に対応する曲線と、「0
」を処理する曲線が同じだけ存在する。従って、2つのパケットは消費電力につ
いて等しく、情報信号はほぼゼロである。部分鍵の推定が正しければ、一方のパ
ケットには現実に「0」の処理に対応する曲線が含まれ、他方のパケットには現
実に「0」の処理に対応する曲線が含まれる:得られた情報信号DPA(t)は
ゼロではない:ソートの基になったビットのマイクロプロセッサによる処理に対
応する消費ピークが含まれる。これらのピークは「1」を処理するか「0」を処
理するかによってマイクロプロセッサによる消費の差分に対応する振幅を有する
。従って、徐々に、電子構成部品内に含まれる秘密鍵の全体または一部を暴くこ
とが可能となる。
【0010】 マイクロプロセッサが、特定の瞬間にビットごとのデータ処理をしなければな
らないような実行のための秘密鍵式アルゴリズムは多数存在する。
【0011】 特に、アルゴリズムは、マイクロプロセッサによるかかる処理を必要とする置
換を一般的に含んでいる。これらのビットごとの処理を実行する際の消費電力を
解析することで、少なくとも処理されたデータの特定のビットの値を暴くことが
できる。このデータが分かることによって、暗号化アルゴリズムの実行の際に得
られた中間結果についての情報を得ることが可能であり、今度はそれらによって
、用いられた秘密鍵のビットの少なくとも一部を暴くことが可能になる。
【0012】 本発明に似てはいるが一線を画する三つの文献を以下に引用する。
【0013】 一つ目の文献《 NTT REVIEW, Vol.6, no.4,1997年7月1日, 85-90頁, ミヤグ
チ S:《SECRET KEY CIPHERS THAT CHANGE THE ENCIPHERMENT ALGORITHM UNDER
THE CONTROL OF THE KEY》, XP000460342》をD1と表記するが、これは、メッ
セージ式の及び数字を用いた既知の攻撃を避ける数学的問題への解決策に関する
ものである。記載されている方法は、《 アルゴリズムにおける鍵の一部分》と
翻訳されたており、いかなる秘密鍵式アルゴリズムについてもその《鍵スケジュ
ール》を変更する。しかしながら、この方法は、DES標準アルゴリズム、つま
りよく知られている秘密鍵式アルゴリズムをもはや対象としない。この文献に記
載されている科学技術は、データの回転及びデータの代入を実行することから成
る。
【0014】 二つ目の文献《 INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, IEEE
GLOBAL TELECOMMUNICATIONS CONFERENCE, フェニックス, アリゾナ, NOV. 3-8,
1997, vol.2, 1997年11月3日, 689-693頁, YI X ET AL:"A METHOD FOR OBTA
INING CRYPTOGRAPHICALLY STRONG 8X8 S-BOXES ", XP000737626》をD2と表記
するが、これは、DES標準アルゴリズム内のS BOXの改善を提案すること
に関し、暗号解読の構想に対してより高い安全性を与えるものであるが、つまり
数学的であって物理的暗号化法ではない。
【0015】 三つ目の文献《 FR-A-2 672 402》をD3と表記するが、これは、DES標準
アルゴリズムを利用して乱数発生器を構築する方法または装置に関するものであ
る。DESアルゴリズムは、例えば、乱数に相当し得る結果、つまりDESの外
に位置する結果を出力することを目的とした、カウンタのようなデータを伴う秘
密鍵式アルゴリズムである。
【0016】 本発明は、対抗措置、すなわち受信妨害を適用することで、ビットごとに処理
を実行するデータを保護することを目的とし、このデータ処理の際の消費電力解
析によっては、このデータの情報が一切明らかにならないようになる:情報信号
DPA(t)は、DPA攻撃で実行された部分鍵または鍵のいかなる推定にも関
わらずゼロになる。
【0017】 請求の範囲に記載のごとく、本発明は秘密鍵K式暗号化アルゴリズムを用いる
電子構成部品内の対抗措置方法に関するものである。
【0018】 本発明によれば、対抗措置方法は、入力データに適用され、かつ少なくともビ
ットごとの処理を含む演算または一連の演算について、第一のデータと同じサイ
ズの第一のランダムデータをあらかじめ抽出し、第一のランダムデータと入力デ
ータの間で排他的論理和を実行して第二のランダムデータを計算し、第一のラン
ダムデータと第二のランダムデータに演算または一連の演算を順次適用すること
から成る。
【0019】 このようにして、演算または一連の演算はランダムデータしか処理しないので
、DPA攻撃は実施できなくなる。
【0020】 入力データについて、次の過程の適用に対応する出力データを見つけるには、
第一と第二のランダム結果の間で排他的論理和を計算するだけでよい。
【0021】 この対抗措置方法の第一の実施態様において、演算または一連の演算は、暗号
化されるメッセージから計算したデータを対象とする。
【0022】 本発明による対抗措置方法の第二の実施態様では、秘密鍵を直接の対象とし、
かつアルゴリズムの各サイクル毎に使用される部分鍵を算出する演算に、この方
法が適用される。
【0023】 本発明による対抗措置方法のこの実施態様では、上述の方法によって最初の過
程のシーケンスセットが実行され、第一のランダム部分鍵と第二のランダム部分
鍵が得られるようにる。
【0024】 この変型では、対象とするサイクルの真の部分鍵を計算する代わりに、これら
のランダム部分鍵が使用され、各サイクルの真の部分鍵がもはや明らかにされな
くなる:ランダム部分鍵しか処理されない。
【0025】 このように、本発明は、DESにただ単に関係しているだけにすぎず、その構
造、データの入力、出力のいずれをも修正することがないという点において、文
献D1とはまず異なっている。以下に述べられて使用される演算XORによって
、ランダムパラメータでデータをマスクすることができる。
【0026】 また本発明は、物理的暗号化法の問題に取り組むこと、つまり副次的作用の発
生によって起こる問題を解決することを提案するという点において、さらに本発
明は、S BOXに関するものではなく、データの圧縮、置換、拡張時の安全性の向
上の問題に取り組んでいる点で、文献D2とは異なっている(以降に記載の図1
を比較参照のこと)。
【0027】 そして、本発明は、あらゆるタイプの攻撃に対してDESの実行を確実に行う
ためにDESアルゴリズムの内部で乱数を利用する点において、文献D3とは異
なっている。
【0028】 本発明のその他の特徴と利点は付属の図面を参照して、例としてあげられた非
制限的な下記の説明を読むことによっていっそう明らかになるだろう。 − 図1と2は、DESアルゴリズムの最初と最後のサイクルの詳細なフローチ
ャートである。 − 図3は、ビットごとのデータ処理を実行する演算に適用される、本発明によ
る対抗措置方法を模式的に表している。 − 図4は、DESアルゴリズム実行における本発明による対抗措置方法の第一
の実施態様を表している。 − 図5は、DESアルゴリズムの実行のエンドを模式的に示している。 − 図6は、秘密鍵を処理するDESアルゴリズムの演算に対する、本発明によ
る方法の第二の実施態様を模式的に表している。 − 図7は、図5の略図に対応する対抗措置方法の適用におけるDESアルゴリ
ズムの詳細なフローチャートを表している。 − 図8は、本発明による対抗措置方法を実施することができるチップカードの
ブロック図を表している。
【0029】 DES秘密鍵式暗号化アルゴリズム(以下に、DESまたはDESアルゴリズ
ムと簡潔に称す)は、図1と2に示したごとく、T1からT16で表した16サ
イクルの計算を含んでいる。
【0030】 DESは、入力メッセージMに対する初期置換IPから開始する(図1)。入
力メッセージMは64ビットのワードfである。置換後に得られた64ビットの
ワードeを2つに分割して、第一サイクル(T1)の入力パラメータL0とR0
を形成する。L0は32ビットのワードdであり、ワードeの重みのある方の3
2ビットを含む。R0は32ビットのワードhであり、ワードeの重みのない方
の32ビットを含む。
【0031】 64ビットのワードqである秘密鍵Kも置換と圧縮を受けて、56ビットのワ
ードrを算出する。
【0032】 第一サイクルは、拡張と置換とから成る、パラメータR0に対する演算EXP
PERMを含み、48ビットのワードlを出力する。
【0033】 このワードlは、48ビットのワードbを算出するために、XORで表される
排他的論理和型の演算において、パラメータK1に組み合わされる。48ビット
のワードmであるパラメータK1は、48ビットのワードpを算出するある位置
のシフト(図1と2でSHIFTで表される演算)によってワードrから得られ
、それに置換と圧縮から成る演算(COMP PERMで表される演算)が適用
される。
【0034】 ワードbはSBOXで表される演算に適用され、その出力では32ビットのワ
ードaが得られる。この特定の演算は、入力データbに応じて定数表TC0から
得られた出力データaを算出することから成る。
【0035】 ワードaは置換P PERMを受け、32ビットのワードcを出力する。
【0036】 このワードcは、XORで表される、排他的論理和型の論理演算において、第
一サイクルT1の入力パラメータL0に組み合わされ、32ビットのワードgを
出力する。
【0037】 第一サイクルのワードh(=R0)は、次のサイクル(T2)の入力パラメー
タL1を算出し、第一サイクルのワードgは、次のサイクルの入力パラメータR
1を算出する。第一サイクルのワードpは、次のサイクルの入力rを算出する。
【0038】 他のサイクルT2からT16も同様に展開するが、ただしシフト演算SHIF
Tは対象となる複数のサイクルに従って、一つまたは二つの位置で行われる。
【0039】 このように、それぞれのサイクルTiは、入力にパラメータLi−1、Ri−
1、及びrを受け取り、出力に次のサイクルTi+1のためのパラメータLi、
Ri、及びrを算出する。
【0040】 DESアルゴリズムの最後に(図5)、暗号化されるメッセージは、最後の一
サイクルT16によって算出されたパラメータL16とR16から計算される。
【0041】 この暗号化メッセージCの計算は、実際には次の演算を含んでいる。 − ワードL16とR16の位置を逆転させ、次にそれらを連結することによっ
て、64ビットのワードe’を形成する。 − 暗号化メッセージCを形成する64ビットのワードf’を得るために、DE
S開始の置換とは逆の置換IP-1を適用する。
【0042】 ここで分かるように、このアルゴリズムは置換演算と同様に、ビットごとにデ
ータを処理する多数の演算を含んでいる。
【0043】 本発明による対抗措置方法によれば、暗号化メッセージを計算するマイクロプ
ロセッサがビットごとに処理をするとき、ソフトウェア対抗措置を適用する。こ
れにより、消費電力曲線に適用されるDPA攻撃の統計処理とブール選択関数か
らは、もはやいかなる情報も与えなくなる:情報信号DPA(t)は、実行され
た部分鍵のいかなる推定にも関わらずゼロとなる。
【0044】 従って、本発明によるソフトウェア対抗措置は、マイクロプロセッサによって
処理されるそれぞれのビットを推定できなくさせることにある。
【0045】 この対抗措置の原理を図3に表した。
【0046】 入力データをDとする。
【0047】 この入力データDについて計算する演算をOPNとし、結果をOPN(D)で表す
。この演算OPNは、マイクロプロセッサによる入力データDのビットごとの処理
を必要とする;それは、例えば置換である。
【0048】 本発明によれば、入力データDに演算OPNを適用して演算結果OPN(D)を計
算する代わりに、次の異なる過程を実施する。 − 入力データDと同じサイズ(例えば、32ビット)の第一のランダムデータ
Uについて乱数を抽出する。 − 入力データと第一のランダムデータの間で排他的論理和を実行して第二のラ
ンダムデータVを計算する:V=D XOR U。 − 第一のランダムデータUに対して演算OPNを計算し、第一のランダム結果O
PN(U)を得る。 − 第二のランダムデータVに対して演算OPNを計算して、第二のランダム結果
OPN(V)を得る。 − 第一と第二のランダム結果の間で排他的論理和を実行して、結果OPN(D)
を計算する:OPN(D)=OPN(U) XOR OPN(V)。
【0049】 この方法は単一の演算にも一連の演算にも適用できる。
【0050】 本発明による対抗措置方法の第一の実施態様は、アルゴリズムを適用するメッ
セージ(M)から計算したデータに対する演算に関するものである。この場合、
入力データDはメッセージMから計算したデータである。
【0051】 図4に示したDESアルゴリズムへのこの第一の実施態様の実施例では、この
方法を、一つには演算EXP PERMに、もう一つには演算P PERMに適用
するが、該演算は両者共に入力データをビットごとに処理する必要がある置換を
含んでいる。
【0052】 図において、これらの演算に対するこの対抗措置の適用を、CM(EXP P
ERM)とCM(P PERM)で表した。
【0053】 従って、本発明によるソフトウェア対抗措置は、それぞれの演算P PERM
とEXP PERMの代わりに、ランダム変数Uを用いて、図3に記載の計算シ
ーケンスに従って演算CM(EXP PERM)とCM(P PERM)を実行す
ることから成る。アルゴリズムの各サイクルは、演算EXP PERMと演算P
PERMを含んでいるので、この対抗措置をDESの各サイクルに適用できる。
【0054】 実験が示すところでは、最初の三サイクルと最後の三サイクルが、DPA攻撃
を可能にする。その後、ビットの予測が極めて困難、更には不可能になる。
【0055】 また、本発明による対抗措置方法の計算時間が経済的な実施は、DESのこれ
らの最初の三サイクルと最後の三サイクルにしか計算を適用しないことから成る
【0056】 本発明による対抗措置方法の様々な変型実施は、第一のランダムデータUのた
めの乱数を抽出することに関するものである。多くの計算時間があるかないかに
よって、本発明による対抗措置方法が実施されるそれぞれの演算または一連の演
算について、毎回新しい乱数を抽出することができる。
【0057】 従って、図4では、演算CM(EXP PERM)については、ランダムデー
タUのための値u1が抽出され、またCM(P PERM)演算については、ラ
ンダムデータUのための別の数値u2が抽出される。
【0058】 あるいは、アルゴリズムのサイクル毎に新規の乱数を、また更にはアルゴリズ
ム開始の時に一つだけ乱数を抽出することができる。
【0059】 基本的には、本発明による対抗措置方法の実施は、対抗措置に追加時間の多く
を割けるか否かによる当該アプリケーションに依存する。
【0060】 本発明による対抗措置方法の第二の実施態様を図6に示した。それはより具体
的には、アルゴリズムの複数のサイクルで使用されるそれぞれの部分鍵Kiを算
出するために、秘密鍵Kに適用される計算演算に関するものである。DESの例
において、これらの演算は次のものであり、つまりKEY PERMはDESの
開始の際に実行され、SHIFTとCOMP PERMはそれぞれのサイクルで
実行される。これらの演算の際の特定の瞬間に、マイクロプロセッサは秘密鍵の
一つのビットを別個に処理するので、従って、このビットに対するDPA攻撃の
可能性が残される。
【0061】 この場合、DPA攻撃によっては情報が得られなくなるように、これらの演算
を実行する前に、データ、この場合には秘密鍵を保護しながら本発明による対抗
措置方法が適用される。
【0062】 従って、図5に模式的に示したように、秘密鍵Kと同じサイズの第一のランダ
ムデータYの乱数を抽出する。秘密鍵Kと第一のランダムデータYの間で排他的
論理和を実行して、同じサイズの第二のランダムデータZを計算する:Z=K
XOR Y。
【0063】 実施例において、一連の演算は次の演算を含んでいる:KEY PERM、S
HIFT、COMP PERM。次にこの一連の演算を、2つのランダムデータ
YとZのそれぞれに順次適用する。従って、入力に順次適用されたこれら2つの
データYとZから、演算KEY PERM、SHIFT、COMP PERMの出
力では、順次、データY’、PiY'、KiY'、そしてZ’、Piz'、Kiz'がそれぞ
れ得られる。
【0064】 DESへの実際の応用例を図7に示す。
【0065】 DESでは、KEY PERM演算は最初に一度しか実施されないが、演算S
HIFTとCOMP PERMのシーケンスは各サイクルで実施される。
【0066】 くわえて、サイクルTiの演算SHIFTの出力は、次のサイクルTi+1の
演算SHIFTの入力として適用される(図1と2参照)。
【0067】 第二の実施態様の対抗措置方法をこのDESアルゴリズムに適用するために、
この場合、第一の演算KEY PERMをランダムデータYとZに適用し、それ
によってY’とZ’で表される2つの中間ランダムデータが与えられる。これら
2つの中間ランダムデータは、第一サイクルT1の演算SHIFTに順次適用さ
れて、P1Y'とP1Z'で表される2つの中間ランダムデータを算出する。これら2
つのランダムデータは、一方では次のサイクル(第二サイクル)の演算SHIF
Tのために作業メモリ内に記憶され、他方では第一サイクルの演算EXP PE
RMに順次適用されて、第一の中間結果K1Y'とK1Z'を算出する。
【0068】 各サイクルはこのように処理する。従って、各サイクルTiにおいて、第一の
ランダム結果: KiY'=EXP PERM(SHIFT (Y’)) 及び第二のランダム結果: KiZ'=EXP PERM(SHIFT (Z’))が得られ、 中間ランダムデータSHIFT(Y’)=PiY'とSHIFT(Z’)=PiZ' が次のサイクルTi+1のために作業メモリに記憶される。
【0069】 このとき、それぞれのサイクルTi毎に、2つのランダム結果Kiy'とKiz'
間で排他的論理和を実行して、秘密鍵Kに適用されたこのサイクルの一連の演算
KEY PERM、SHIFT、COMP PERMに対応する対応部分鍵Kiを
再計算することができる:Ki=Kiy'XOR Kiz'
【0070】 しかし好ましくは、また図7に示したごとく、Tiサイクルの部分鍵Kiは再
計算しない。拡張置換演算EXP PERMによって算出されたデータlによる
排他的論理和演算XORにおいて、部分鍵Kiの代わりに第一のランダム結果K iy' を適用する。中間結果b’が得られる。
【0071】 次に、第二のランダム結果Kiz'とこの中間結果b’の排他的論理和XORを
実行して、出力のデータb=XOR(l,Ki)が見つかる。従って、図7に第
一サイクルと第二サイクルについて示したごとく、lからパラメータbを計算す
るために、それぞれのTiサイクルにおいて、次の演算が実行される: b’=l XOR KiY' b=b’ XOR Kiz'
【0072】 このように、暗号化メッセージの計算では、秘密部分鍵自体はもはや用いられ
ず、「ランダム部分鍵」が用いられる:従って、鍵は暗号化アルゴリズム実行の
前およびその間保護され、というのも、KiY'とKiz'はランダムであり、構成部
品(またはカード)の外界からは知られておらず、暗号化アルゴリズムを新たに
実行する都度変えることができるからである。なお、本発明による対抗措置方法
を部分鍵の計算と利用に適用するとき、秘密鍵に対する演算前の、アルゴリズム
実行の開始の際に、乱数を一度だけ抽出する。
【0073】 秘密鍵に対する本発明による対抗措置方法のこの第二の実施態様は、いわゆる
暗号化メッセージの計算に対する対抗措置方法の第一の実施態様と有利に組み合
わせることが可能であり、この組み合わせによって対抗措置が特に効果的になる
【0074】 本発明は、実施例を説明したDES秘密鍵式暗号化アルゴリズムに適用される
。もっと一般的には、特定の演算のマイクロプロセッサによる実行が、データの
ビットごとの処理を必要とする全ての秘密鍵式暗号化アルゴリズムに適用される
【0075】 DES秘密鍵式暗号化アルゴリズムにおける本発明による対抗措置方法を実施す
る電子構成部品1は、典型的に、図8に示したごとく、マイクロプロセッサoP
と、プログラムメモリ2と、作業メモリ3とを含む。乱数発生手段4が備えられ
、図3と5のフローチャートを参照すると、暗号化アルゴリズム実行の都度、所
望のサイズの乱数Uおよび/またはY(Uは32ビット、Yは64ビット)を算
出する。かかる構成部品は、不可侵性を向上させるために、特にチップカード5
に使用することができる。
【図面の簡単な説明】
【図1】 図1は、DESアルゴリズムの最初のサイクルの詳細なフローチャートである
【図2】 図2は、DESアルゴリズムの最後のサイクルの詳細なフローチャートである
【図3】 図3は、ビットごとのデータ処理を実行する演算に適用される、本発明による
対抗措置方法を模式的に表している。
【図4】 図4は、DESアルゴリズム実行における本発明による対抗措置方法の第一の
実施態様を表している。
【図5】 図5は、DESアルゴリズムの実行のエンドを模式的に示している。
【図6】 図6は、秘密鍵を処理するDESアルゴリズムの演算に対する、本発明による
方法の第二の実施態様を模式的に表している。
【図7】 図7は、図5の略図に対応する対抗措置方法の適用におけるDESアルゴリズ
ムの詳細なフローチャートを表している。
【図8】 図8は、本発明による対抗措置方法を実施することができるチップカードのブ
ロック図を表している。
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,US,UZ,VN,YU,ZA,ZW (72)発明者 フェット,ナタリー フランス共和国,エフ−13005 マルセイ ユ,バティモン 6,リュ デュ リュト ゥナン ジー.ペー.メスキ,20 (72)発明者 ブノワ,オリヴィエ フランス共和国,エフ−13400 オバーニ ュ,リュ ラステグ,22 Fターム(参考) 5B035 AA13 BB09 CA11 5J104 AA43 EA08 JA13 NA33 NA42 PA10

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 入力メッセージ(M)に対して秘密鍵K式暗号化アルゴリズ
    ムを実施する電子構成部品内の対抗措置方法であって、出力データ(OPN(D)
    )を算出するために、入力データ(D)からビットごとに処理する演算(OPN)
    または一連の演算が、以下の過程を含むことを特徴とする対抗措置方法。 − 入力データ(D)と同じサイズの、第一のランダムデータ(U)である、乱
    数を抽出し、 − 入力データと第一のランダムデータ(U)の間で排他的論理和を実行して、
    第二のランダムデータ(V)を計算し、 − 第一のランダムデータ(U)と第二のランダムデータ(V)に演算(OPN)
    または一連の演算を順次実行して、それぞれ第一のランダム結果(OPN(U))
    と第二のランダム結果(OPN(V))を算出する。
  2. 【請求項2】 更に以下の過程を含むことを特徴とする、請求項1に記載の
    対抗措置方法。 − 前記第一及び第二のランダム結果の間で排他的論理和を実行して、出力デー
    タ(OPN(D))を計算する。
  3. 【請求項3】 入力メッセージ(M)から計算されたデータを対象とする演
    算(EXP PERM,P PERM)に適用されることを特徴とする、請求項
    1または2に記載の対抗措置方法。
  4. 【請求項4】 前記演算または一連の演算を新たに実行するごとに、新しい
    乱数(U)を抽出することを特徴とする、請求項1から3のいずれか一つに記載
    の対抗措置方法。
  5. 【請求項5】 前記秘密鍵Kに対して実行される演算または一連の演算(K
    EY PERM,SHIFT,COMP PERM)に適用される、請求項1に記
    載の対抗措置方法。
  6. 【請求項6】 暗号化アルゴリズムが複数のサイクルの計算を含み、かつ各
    サイクル(Ti)ごとに対応する部分鍵(Ki)を算出するための秘密鍵Kに対す
    る一連の演算を含み、第一のランダム結果(KiY')と第二のランダム結果(Ki z' )を各サイクルごとに算出するために、前記一連の演算に適用されることを特
    徴とする、請求項5に記載の対抗措置方法。
  7. 【請求項7】 各サイクル(Ti)ごとに、出力データ(b)を算出するた
    めに、部分鍵(Ki)と入力データ(1)との間で実行される排他的論理和の演
    算であって、この演算が下記の演算に置換されることを特徴とする、請求項6に
    記載の対抗措置方法。 − 中間結果(b’)を算出するために、前記入力データ(1)と第一のランダ
    ム結果(KiY')との間で排他的論理和を計算し、 − 前記出力データ(b)を算出するために、前記中間結果(b’)と第二のラ
    ンダム結果(Kiz')との間で排他的論理和を計算する。
  8. 【請求項8】 暗号化アルゴリズムを新たに実行するごとに、新しい乱数(
    UまたはZ)を抽出することを特徴とする、請求項1,2,3,5,6,7のい
    ずれか一つに記載の対抗措置方法。
  9. 【請求項9】 請求項5から8のいずれか一つに記載の対抗措置方法と組み
    合わされることを特徴とする、請求項3または4に記載の対抗措置方法。
  10. 【請求項10】 DESアルゴリズムに適用されることを特徴とする、請求
    項1から9のいずれか一つに記載の対抗措置方法。
  11. 【請求項11】 乱数発生手段(4)を具備することを特徴とする、請求項
    1から10のいずれか一つに記載の対抗措置方法を利用するセキュリティ電子構
    成部品。
  12. 【請求項12】 請求項9に記載のセキュリティ電子構成部品を含むチップ
    カード。
JP2000600393A 1999-02-17 2000-01-20 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法 Abandoned JP2002540654A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR99/01937 1999-02-17
FR9901937A FR2789776B1 (fr) 1999-02-17 1999-02-17 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
PCT/FR2000/000130 WO2000049765A2 (fr) 1999-02-17 2000-01-20 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete

Publications (1)

Publication Number Publication Date
JP2002540654A true JP2002540654A (ja) 2002-11-26

Family

ID=9542146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000600393A Abandoned JP2002540654A (ja) 1999-02-17 2000-01-20 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法

Country Status (10)

Country Link
US (1) US7471791B1 (ja)
EP (1) EP1198921B1 (ja)
JP (1) JP2002540654A (ja)
CN (1) CN100393029C (ja)
AU (1) AU3057500A (ja)
DE (1) DE60027163T2 (ja)
ES (1) ES2262502T3 (ja)
FR (1) FR2789776B1 (ja)
MX (1) MXPA01008201A (ja)
WO (1) WO2000049765A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
WO2006006199A1 (ja) 2004-07-07 2006-01-19 Mitsubishi Denki Kabushiki Kaisha 電子素子及びデータ処理方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002247025A (ja) * 2001-02-22 2002-08-30 Hitachi Ltd 情報処理装置
JP4596686B2 (ja) 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
FR2916317B1 (fr) * 2007-05-15 2009-08-07 Sagem Defense Securite Protection d'execution d'un calcul cryptographique
FR2925968B1 (fr) * 2007-12-26 2011-06-03 Ingenico Sa Procede de securisation d'un microprocesseur, programme d'ordinateur et dispositif correspondants
WO2011121298A2 (en) 2010-03-31 2011-10-06 British Telecommunications Public Limited Company Secure data recorder
DE102010028375A1 (de) * 2010-04-29 2011-11-03 Robert Bosch Gmbh Schutz vor kryptoanalytischen Seitenkanalattacken
CN102110206B (zh) * 2010-12-27 2013-01-16 北京握奇数据系统有限公司 防御攻击的方法和具有攻击防御功能的装置
CN103546281B (zh) * 2013-10-31 2016-08-17 厦门市美亚柏科信息股份有限公司 动态的密钥生成方法和装置
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms
FR3056789B1 (fr) * 2016-09-27 2018-09-21 Safran Identity & Security Procede de chiffrement ou de dechiffrement symetrique par bloc

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2650458B1 (fr) * 1989-07-25 1991-10-11 Trt Telecom Radio Electr Procede de traitement d'une permutation irreguliere de donnees protegees par chiffrement
FR2650457A1 (fr) * 1989-07-25 1991-02-01 Trt Telecom Radio Electr Procede de traitement de donnees par compression et permutation pour carte a microcircuit
FR2672402B1 (fr) * 1991-02-05 1995-01-27 Gemplus Card Int Procede et dispositif pour la generation de nombres pseudo-aleatoires uniques.
US5550809A (en) * 1992-04-10 1996-08-27 Ericsson Ge Mobile Communications, Inc. Multiple access coding using bent sequences for mobile radio communications
US5625690A (en) * 1993-11-15 1997-04-29 Lucent Technologies Inc. Software pay per use system
US5870470A (en) * 1996-02-20 1999-02-09 International Business Machines Corporation Method and apparatus for encrypting long blocks using a short-block encryption procedure
US5764766A (en) * 1996-06-11 1998-06-09 Digital Equipment Corporation System and method for generation of one-time encryption keys for data communications and a computer program product for implementing the same
FR2776445A1 (fr) * 1998-03-17 1999-09-24 Schlumberger Ind Sa Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique
WO1999063696A1 (en) * 1998-06-03 1999-12-09 Cryptography Research, Inc. Using unpredictable information to minimize leakage from smartcards and other cryptosystems
WO1999067919A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP4317607B2 (ja) * 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
WO2006006199A1 (ja) 2004-07-07 2006-01-19 Mitsubishi Denki Kabushiki Kaisha 電子素子及びデータ処理方法
US8577942B2 (en) 2004-07-07 2013-11-05 Mitsubishi Electric Corporation Electronic device and data processing device for implementing cryptographic algorithms

Also Published As

Publication number Publication date
DE60027163T2 (de) 2007-03-29
DE60027163D1 (de) 2006-05-18
US7471791B1 (en) 2008-12-30
AU3057500A (en) 2000-09-04
WO2000049765A2 (fr) 2000-08-24
FR2789776A1 (fr) 2000-08-18
EP1198921B1 (fr) 2006-04-05
CN1630999A (zh) 2005-06-22
FR2789776B1 (fr) 2001-04-06
EP1198921A2 (fr) 2002-04-24
ES2262502T3 (es) 2006-12-01
MXPA01008201A (es) 2003-07-21
WO2000049765A3 (fr) 2002-02-28
CN100393029C (zh) 2008-06-04

Similar Documents

Publication Publication Date Title
US8638944B2 (en) Security countermeasures for power analysis attacks
Coron et al. On boolean and arithmetic masking against differential power analysis
Akkar et al. An implementation of DES and AES, secure against some attacks
AU2005263805B2 (en) Method and device for carrying out a cryptographic calculation
EP1398901B1 (en) Feistel type encryption method and apparatus protected against DPA attacks
JP5823639B2 (ja) ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法
Novak Side-channel attack on substitution blocks
Kircanski et al. On the sliding property of SNOW 3G and SNOW 2.0
JP2002540654A (ja) 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
JP3733027B2 (ja) 秘密鍵式暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
Borst et al. Cryptography on smart cards
EP1351430B1 (en) Expansion key generating device, encryption device and encryption system
JP3650333B2 (ja) 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
Ahmadi et al. Generalized meet in the middle cryptanalysis of block ciphers with an automated search algorithm
EP1587237A1 (en) Security countermeasures for power analysis attacks
Lim et al. Differential fault attack on lightweight block cipher PIPO
JP4195199B2 (ja) 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
US20050031121A1 (en) Encryption method and apparatus
EP2363974A1 (en) Variable table masking for cryptographic processes
JP2002529777A (ja) 秘密鍵式暗号化アルゴリズムを利用する電子構成部品内の対抗措置方法
Lu et al. Cryptanalysis of two white-box implementations of the SM4 block cipher
Banescu Cache timing attacks
Novak Side-channel based reverse engineering of secret algorithms
US7206408B1 (en) Countermeasure method in an electronic component using a dynamic secret key cryptographic algorithm
Lu et al. Cryptanalysis Of A Type Of White-Box Implementations Of The SM4 Block Cipher

Legal Events

Date Code Title Description
A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20040122