JP2008533791A - 電磁放射攻撃からデータ処理デバイスを保護する装置及び方法 - Google Patents
電磁放射攻撃からデータ処理デバイスを保護する装置及び方法 Download PDFInfo
- Publication number
- JP2008533791A JP2008533791A JP2008500300A JP2008500300A JP2008533791A JP 2008533791 A JP2008533791 A JP 2008533791A JP 2008500300 A JP2008500300 A JP 2008500300A JP 2008500300 A JP2008500300 A JP 2008500300A JP 2008533791 A JP2008533791 A JP 2008533791A
- Authority
- JP
- Japan
- Prior art keywords
- data processing
- mod
- proof
- processing device
- calculation
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/77—Protecting 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 in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/723—Modular exponentiation
-
- 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
- G06F2207/7271—Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
少なくとも1つのデータ処理デバイス、特に少なくとも1つの埋め込みシステム、例えば少なくとも1つのチップカード又はスマートカードを、少なくとも1つの攻撃、特に少なくとも1つの電磁放射攻撃から保護するための装置及び方法であって、上記データ処理デバイスは、計算、特に暗号演算を行う少なくとも1つの集積回路を備え、上記電磁放射攻撃は秘密鍵を見つけ出すことを目的とし、安全に回避すべきものであり、上記装置及び方法を更に発展させるために、少なくとも1つのF−証明で上記計算をチェックすることを提案する。
Description
本発明は一般に、暗号解析を阻止する技術分野に関するものであり、特に、少なくとも1つのデータ処理デバイスを少なくとも1つの電磁放射攻撃から保護する技術分野に関するものである。
本発明は具体的には、少なくとも1つのデータ処理デバイス、特に少なくとも1つのチップカード又はスマートカード等の少なくとも1つの埋め込みシステムを、少なくとも1つの攻撃、特に少なくとも1つの電磁放射攻撃から保護するための装置及び方法であって、このデータ処理デバイスが、計算、特に暗号演算を行う少なくとも1つの集積回路を備えている装置及び方法に関するものである。
データ処理デバイス、特にチップカード又はスマートカード等の埋め込みシステムは、PKI(公開鍵基盤)システムを用いて鍵を交換し、そして秘密鍵を見つけ出すことを目的とするいくつかの形の攻撃から保護しなければならない。
かかる攻撃の1つは、むき出しの(従って感光性の)チップに、
1つ以上の光源又は
ある種の電磁放射源
を指向させることにより、計算、特に暗号演算に影響を与えることである。
かかる攻撃の1つは、むき出しの(従って感光性の)チップに、
1つ以上の光源又は
ある種の電磁放射源
を指向させることにより、計算、特に暗号演算に影響を与えることである。
機械的なチップ又は電子光線若しくはレーザ光線による極秘データの読み出しから集積回路を保護するために、従来技術文献である独国特許公開第4018688号明細書は、集積回路の感光性の部分に保護層を設けること、及びこの保護層の容量、誘導性、又は抵抗が外部からの侵害により変化していないか周期的にチェックすることを提案している。
特開平11−008616号明細書は、中国人剰余定理を用いることによって高速に署名作成処理を行うIC(集積回路)カードの欠陥を利用する攻撃に対して、このICカードの安全性を高めることを開示している。
欧州特許公開第1233372号明細書によれば、不正及び/又は操作からチップ装置を保護する電気回路又は電子回路装置及び方法を提供するために、検出器ユニットの出力電圧がこの検出器ユニット上への入射光の尺度である検出器ユニット、及びこの検出器ユニットに後続し、この検出器ユニットの出力電圧と基準電圧とを比較するために設けた比較器ユニットを配置している。このようにして、検出器の出力電圧と基準電圧との比較中に故障メッセージが発生した場合に、保護すべきチップ装置のデータ及び/又は機能を一時的又は永久に遮断及び/又は消去及び/又はブロック及び/又は中断する。
欧州特許公開第1326203号は、回路のデジタル部分を保護するための方法及び装置に関するものである。この方法及び装置は特に、かかるデジタル回路内のメモリユニット、特に秘密データを含むスマートカードコントローラ内のメモリユニットを、回路のデジタル部分、特にスマートカードコントローラのデジタル部分を、例えば光フラッシュ攻撃による短時間の電圧降下によって未定義状態に変化させる攻撃から保護するために用いることができる。
英国特許公開第2319150号は、関連するセキュリティ方法を伴う認証方法を提案する。この認証方法は、秘密鍵アルゴリズムを施した乱数から計算結果を得るステップを含む。上記セキュリティ方法は、上記秘密鍵アルゴリズムを施した基準乱数からテスト結果を計算するステップと、このテスト結果と基準結果を比較するステップと、このテスト結果がこの基準結果と同一であるときのみに計算結果を送ることを保証するステップとを含む。
上述した欠点及び短所から始まり、以上で説明した従来技術を考慮すれば、本発明の目的は、技術分野の所で述べた種類の装置及び方法を更に発展させて、秘密鍵を見つけ出すことを目的とする電磁放射攻撃を安全に回避することを可能にすることにある。
本発明の目的は、請求項1の特徴を備える装置並びに請求項6の特徴を備える方法によって達成される。本発明の有利な好適例及び目的に合わせた改良については、それぞれの従属請求項に開示する。
本発明は、電磁放射攻撃、特に、たとえば光フラッシュ攻撃のような光攻撃からチップカード又はスマートカードを保護するためのF−計算及び/又はF−証明(F−プルーフ(F−proof))を使用し、これにより、IC(集積回路)カードの欠陥を利用したこうした攻撃に対するICカードの安全性が大幅に高まる、という思想に主に基づくものである。
F−計算及び/又はF−チェック(いわゆるF−証明)を用いることは、英国特許公開第2319150に開示されている乱数計算よりもより一般化された方法である、というのは本発明も4ビットの倍数で良好に機能するからである。
かかる電磁放射攻撃は、光源又は他の電磁放射源をチップ上に指向させることにより計算に影響を与えることによって秘密鍵を見つけ出そうとする。埋め込みシステム、特にチップカード又はスマートカードを保護するために、F−証明によって計算をチェックする。F−証明は16進法用であり、10進法用の9−証明(9−プルーフ(9−proof))と類似している。
10進法用には、この9−証明は既知である。2つの数を乗算する際には、各数において各桁の数字を加算し、両方の加算値を乗算し、その結果を9で除算し、その剰余を保存する。そして、上記2つの数を乗算した結果を求め、その各桁の数字を加算し、ここでも9で除算し、その剰余を保存しておく。9−証明では、両方の剰余が等しくなる。
16進法用には、F−証明がこれに相当する証明である。このF−証明は、GF(p)ですでに知られているかもしれないが、本発明が証明を記述するGF(2n)では知られていない。この関係では、アーキテクチャが、素数(p)拡大体のオペランドとバイナリ(2n)拡大体のオペランドで共に機能することができる場合は、このアーキテクチャは統一されていると言われる。
pが素数の場合、pを法とする整数は、p個の要素を有する体を形成し、GF(p)で表される。有限体は、有限の体次数の体、つまり有限の要素数の体であり、ガロア体又はGFともいわれる。有限体の次数は、常に素数又は素数の累乗である。素数の累乗毎に、ちょうど1つの有限体GF()が存在する(注:「ちょうど1つ」とは「同型まで含めてちょうど1つ」という意味である)。GF(p)は次数pの素体といわれ、pを法とする剰余類の体である。
n>1である際には、GF()は、その係数がGF(p)に属する多項式の同値類の体として表わすことができる。n次のあらゆる既約の多項式は、同型まで含めて同じ体を生み出す。
本発明の特に進歩的な改良によれば、F−証明によって計算のエラーが見つかると、埋め込みシステムへのアクセスを拒否する。この関係では、F−計算は、いわゆるF−証明によって計算、特に暗号演算をチェックする。F−計算がエラーを見つけると、結果を出さない。
かかるF−計算又はF−チェックは効果的である、というのは、光攻撃又は電磁放射攻撃は粗く、かかる攻撃の場所も時間も微細でないからである。この理由により、攻撃者は正確な瞬間における計算も、必要な部分、つまりゲート位置も正確に攻撃することはできない。かかる攻撃のために、ほとんどの場合、試行錯誤法が用いられる。
本発明は更に、計算、特に暗号演算を行う少なくとも1つの集積回路を備えたデータ処理デバイス、特に埋め込みシステム、例えばチップカード又はスマートカードに関するものであり、ここでは、少なくとも1つのF−証明で上記計算をチェックすることによって、少なくとも1つの攻撃、特に少なくとも1つの電磁放射攻撃から上記集積回路を保護する。
最後に、本発明は、上述した装置の少なくとも1つ及び/又は上述した方法の少なくとも1つの、上述したデータ処理デバイスの少なくとも1つにおける使用に関するものである。
既に上記したように、本発明の教示を有利な方法で具体化並びに改善するいくつかの選択肢が存在する。この目的のために、請求項1及び請求項6にそれぞれ従属する請求項を参照し、本発明の更なる改善、特徴、及び利点を、好適な実施例及び添付の図面を参照しながら、以下でより詳細に説明する。
図1から図3では、対応する部分には同一の参照番号を用いる。
データ処理デバイス、すなわち、暗号演算を行うIC(集積回路)を備えたチップカード又はスマートカードの形の埋め込みシステムの実施例は、PKI(公開鍵基盤)システムを参照し、本発明の方法により機能し、すなわち不正及び/又は操作から保護される。
上記集積回路の暗号計算は、暗号化C=Me mod(N)のための計算を行うRSA(リベスト−シャミア−エーデルマン)アルゴリズム(米国特許4405829号又はRon Rivest,Adi Shamir,Len Adleman著:”A Method for Obtaining Digital Signatures and Public−Key Cryptosystems”,Communications of the ACM、21(2),120〜126ページ,1978年2月)に基づくものである。ここに、
Mは暗号化すべき平文であり、
N=p・qであり、
eは(p−1)(q−1)と互いに素であり、
dはxed mod[(p−1)(q−1)]=1を満足し、
暗号解読するにはM=Cd mod(N)を計算する。
Mは暗号化すべき平文であり、
N=p・qであり、
eは(p−1)(q−1)と互いに素であり、
dはxed mod[(p−1)(q−1)]=1を満足し、
暗号解読するにはM=Cd mod(N)を計算する。
Me(又はCd)を計算する方法の1つは次の通りである:
R=Mから開始し、
指数eを左から右にスキャンし、
常にR=R2 mod(N)を計算し、
スキャンしたeのビットが1であるとき、さらに、R=R・M mod(N)を計算する。
R=Mから開始し、
指数eを左から右にスキャンし、
常にR=R2 mod(N)を計算し、
スキャンしたeのビットが1であるとき、さらに、R=R・M mod(N)を計算する。
従って、計算は、多くの平方算及び乗算から成る。約すために、剰余Nは多数(Q)回結果から減算されるか結果に加算される。
乗算は一般に以下のようになる:
R=X・Y−Q・N、ただしX=R、Y=Mである。
始めに、F(M)及びF(N)を計算し、FM及びFNとして記憶する。X(=R)が前の計算結果であるので、F(X)も既知でありFXとして記憶する。
R=X・Y−Q・N、ただしX=R、Y=Mである。
始めに、F(M)及びF(N)を計算し、FM及びFNとして記憶する。X(=R)が前の計算結果であるので、F(X)も既知でありFXとして記憶する。
F−証明は、F=FX・FY−F(Q)・FN及びF(R)を計算し、即ち結果から計算する。
そしてF−証明はF=F(R)であることをチェックする。この値は次のチェックで用いるために記憶しておく。
係数Qが計算されると、約す期間中にF(Q)が計算される。
平方算は一般に以下のようになる:
R=X2−Q・N、ただしX=Rである。
F−証明は、F(R)=FX 2−F(Q)・FNであることをチェックする。
R=X2−Q・N、ただしX=Rである。
F−証明は、F(R)=FX 2−F(Q)・FNであることをチェックする。
M.Ernest,M.Jung,F.Madlener,et al:"A Reconfigurable System on Chip Implementation for Elliptic Curve Cryptography over GF(2n)"
ECC(楕円曲線暗号法)(M.Ernest,M.Jung,F.Madlener他著:”A Reconfigurable System on Chip Implementation for Elliptic Curve Cryptography over GF(2n)”、381〜399ページ参照)については、ある楕円曲線及びこの曲線上のある点Pを選択する。
第1のインスタンス(手続き)Aでは、乱数aを選択し、a・Pを計算し、公開鍵として第2の手続きBに送る。この第2のインスタンスBでは、乱数bを選択し、b・Pを計算し、公開鍵として第1のインスタンスBに送る。そして、第1のインスタンスAはK=a・(b・P)を計算し、第2のインスタンスBはK’=b・(a・P)を計算する。このときK=K’であり、これは2つのインスタンスAとBに共有の秘密である。
基本演算は点Pにスカラーaを掛ける乗算である。これは、点の反復加算、即ちX=aP=P+P+…+P(a回)である:
R=Pから開始し、
スカラーaを左から右にスキャンし、
常にR=2R mod(N)を計算し(いわゆる点の倍加)、
スキャンしたaのビットが1のとき、さらにR=R+P mod(N)を計算する(いわゆる点の加算)。
R=Pから開始し、
スカラーaを左から右にスキャンし、
常にR=2R mod(N)を計算し(いわゆる点の倍加)、
スキャンしたaのビットが1のとき、さらにR=R+P mod(N)を計算する(いわゆる点の加算)。
いわゆる点の倍加に関するアルゴリズム及びいわゆる点の加算のためのアルゴリズムは、演算X・Y±Z mod(N)及びX2±Z mod(N)を用いる(RSA(リベスト−シャミア−エーデルマン)アルゴリズムのようであるが第3のオペランドZを加算又は減算する)。
RSA(リベスト−シャミア−エーデルマン)アルゴリズムと同様の方法で、F−証明は:
F(R)=FX・FY±FZ−F(Q)・FN;
F(R)=FX 2±FZ−F(Q)・FN
をチェックする。
F(R)=FX・FY±FZ−F(Q)・FN;
F(R)=FX 2±FZ−F(Q)・FN
をチェックする。
点の倍加アルゴリズム及び点の加算アルゴリズムは逆数演算も必要とし、この演算はX−1[X・X−1 mod(N)=1]を計算する。この演算も、F−証明によって、すなわち、いわゆる逆数用のF−証明によってチェックすることができる(以下参照)。
X mod(N)の逆数をX−1とし、即ちX・X−1=1 mod(N)である。
F(X)は前に計算されていると仮定し、Xの逆数の計算後に、つまりX−1の計算後に、F(X−1) mod(F)を計算する。
ここで、逆数X−1の計算は、F(X・X−1) mod(F)=F(X)・F(X−1) mod(F)=1を計算することによって容易にチェックすることができる。
結果が1と異なる場合は、逆数X−1の計算は、特にある種の攻撃、例えば電磁放射攻撃により誤っている。
このチェック、つまりこの逆数用のF−証明は、XとX−1 mod(N)との乗算よりも使う演算パワーがずっと小さく、この乗算の結果も1になるべきものである。さらに、F(X−1)の値も残りのチェックのために必要である。従って、F(X)・F(X−1) mod(F)の計算が加わるだけである。
F−証明自体については、次の定義及び性質が存在する。
ガロア体GF(p)について、
X=xn−1Bn−1+xn−2Bn−2+...+x0;
B=24;
GF(p)に対しF=B−1
とする。
X=xn−1Bn−1+xn−2Bn−2+...+x0;
B=24;
GF(p)に対しF=B−1
とする。
定義F(X)=X mod(F)により、第1の補助定理は:
F(X)=xn−1+xn−2+...+x0 mod(F)である。
F(X)=xn−1+xn−2+...+x0 mod(F)である。
GF(p)についての証明:
F(X)=xn−1Bn−1+xn−2Bn−2+...+x0 mod(B−1) (B−1をxn−1Bn−2回減算する)
=(xn−1+xn−2)Bn−2+...+x0 mod(B−1) (B−1を(xn−1+xn−2)Bn−3回減算する)
=(xn−1+xn−2+xn−3)Bn−3+...+x0 mod(B−1) (B−1を(xn−1+xn−2+xn−3)Bn−4回減算する)
この手順を繰り返して、F(X)=xn−1+xn−2+...+x0 mod(F)を得る。
F(X)=xn−1Bn−1+xn−2Bn−2+...+x0 mod(B−1) (B−1をxn−1Bn−2回減算する)
=(xn−1+xn−2)Bn−2+...+x0 mod(B−1) (B−1を(xn−1+xn−2)Bn−3回減算する)
=(xn−1+xn−2+xn−3)Bn−3+...+x0 mod(B−1) (B−1を(xn−1+xn−2+xn−3)Bn−4回減算する)
この手順を繰り返して、F(X)=xn−1+xn−2+...+x0 mod(F)を得る。
第2の補助定理は、F(X+Y)=F(X)+F(Y) mod(F)である。
GF(p)についての証明:
F(X+Y)=F(X)+F(Y) mod(F)
=xn−1Bn−1+xn−2Bn−2+…+x0+(yn−1Bn−1+yn−2Bn−2+...+y0) mod(B−1)
=(xn−1+yn−1)Bn−1+(xn−2+yn−2)Bn−2+...+(x0+y0) mod(B−1)
=xn−1+yn−1+xn−2+yn−2+...+(x0+y0) mod(B−1)
=xn−1+xn−2+…+x0+yn−1+yn−2+...+y0
=F(X)+F(Y)
F(X+Y)=F(X)+F(Y) mod(F)
=xn−1Bn−1+xn−2Bn−2+…+x0+(yn−1Bn−1+yn−2Bn−2+...+y0) mod(B−1)
=(xn−1+yn−1)Bn−1+(xn−2+yn−2)Bn−2+...+(x0+y0) mod(B−1)
=xn−1+yn−1+xn−2+yn−2+...+(x0+y0) mod(B−1)
=xn−1+xn−2+…+x0+yn−1+yn−2+...+y0
=F(X)+F(Y)
第3の補助定理は、F(X−Y)=F(X)−F(Y) mod(F)である。
GF(p)についての証明:
F(X−Y)=F(X)−F(Y) mod(F)
=xn−1Bn−1+xn−2Bn−2+...+x0−(yn−1Bn−1+yn−2Bn−2+...+y0) mod(B−1)
=(xn−1−yn−1)Bn−1+(xn−2−yn−2)Bn−2+...+(x0−y0) mod(B−1)
=xn−1−yn−1+xn−2−yn−2+...+(x0−y0) mod(B−1)
=xn−1+xn−2+...+x0−(yn−1+yn−2+...+y0)
=F(X)−F(Y)
GF(2n)においては、こうした演算はない。
F(X−Y)=F(X)−F(Y) mod(F)
=xn−1Bn−1+xn−2Bn−2+...+x0−(yn−1Bn−1+yn−2Bn−2+...+y0) mod(B−1)
=(xn−1−yn−1)Bn−1+(xn−2−yn−2)Bn−2+...+(x0−y0) mod(B−1)
=xn−1−yn−1+xn−2−yn−2+...+(x0−y0) mod(B−1)
=xn−1+xn−2+...+x0−(yn−1+yn−2+...+y0)
=F(X)−F(Y)
GF(2n)においては、こうした演算はない。
第4の補助定理は、F(X・Y)=F(X)・F(Y) mod(F)である。
GF(p)についての証明:
F(X・Y)=F(X)・F(Y) mod(F)
=(xn−1Bn−1+xn−2Bn−2+...+x0)(yn−1Bn−1+yn−2Bn−2+...+y0) mod(B−1)
=xn−1Bn−1(yn−1Bn−1+yn−2Bn−2+...+y0)
+xn−2Bn−2(yn−1Bn−1+yn−2Bn−2+...+y0)
+...
+x0(yn−1Bn−1+yn−2Bn−2+...+y0) mod(B−1)
=Bn−1(xn−1yn−1Bn−1+xn−1yn−2Bn−2+...+xn−1y0)
+Bn−2(xn−2yn−1Bn−1+xn−2yn−2Bn−2+...+xn−2y0)
+Bn−3(xn−3yn−1Bn−1+xn−3yn−2Bn−2+...+xn−3y0)
+...
+B0(x0yn−1Bn−1+x0yn−2Bn−2+…+x0y0) mod(B−1)
=Bn−1(xn−1yn−1+xn−1yn−2+…+xn−1y0) (第1の補助定理により)
+Bn−2(xn−2yn−1+xn−2yn−2+…+xn−2y0)
+Bn−3(xn−3yn−1+xn−3yn−2+…+xn−3y0)
+...
+B0(x0yn−1+x0yn−2+…+x0y0) mod(B−1)
=xn−1’Bn−1+xn−2’Bn−2+…+x0’
ここに、i=0,1,…,n−1についてxi−1’=xi−1(yn−1+yn−2+…+y0)である。
F(X・Y)=xn−1’+xn−2’+…+x0’=(xn−1+xn−2+…+x0)(yn−1+yn−2+…+y0)=F(X)F(Y)
F(X・Y)=F(X)・F(Y) mod(F)
=(xn−1Bn−1+xn−2Bn−2+...+x0)(yn−1Bn−1+yn−2Bn−2+...+y0) mod(B−1)
=xn−1Bn−1(yn−1Bn−1+yn−2Bn−2+...+y0)
+xn−2Bn−2(yn−1Bn−1+yn−2Bn−2+...+y0)
+...
+x0(yn−1Bn−1+yn−2Bn−2+...+y0) mod(B−1)
=Bn−1(xn−1yn−1Bn−1+xn−1yn−2Bn−2+...+xn−1y0)
+Bn−2(xn−2yn−1Bn−1+xn−2yn−2Bn−2+...+xn−2y0)
+Bn−3(xn−3yn−1Bn−1+xn−3yn−2Bn−2+...+xn−3y0)
+...
+B0(x0yn−1Bn−1+x0yn−2Bn−2+…+x0y0) mod(B−1)
=Bn−1(xn−1yn−1+xn−1yn−2+…+xn−1y0) (第1の補助定理により)
+Bn−2(xn−2yn−1+xn−2yn−2+…+xn−2y0)
+Bn−3(xn−3yn−1+xn−3yn−2+…+xn−3y0)
+...
+B0(x0yn−1+x0yn−2+…+x0y0) mod(B−1)
=xn−1’Bn−1+xn−2’Bn−2+…+x0’
ここに、i=0,1,…,n−1についてxi−1’=xi−1(yn−1+yn−2+…+y0)である。
F(X・Y)=xn−1’+xn−2’+…+x0’=(xn−1+xn−2+…+x0)(yn−1+yn−2+…+y0)=F(X)F(Y)
本発明の実施に関しては、x=F(X)、y=F(Y)の表記を用い、x及びyは4ビット(1ニブル)から成る。
GF(p)に関する総和 mod(F)は次式となる:
F(X+Y)=F(x)+F(y) mod(F)=x+y mod(F)。
F(X+Y)=F(x)+F(y) mod(F)=x+y mod(F)。
多数回の連続演算を行わなければならないので、オペランドのうち1つ(ここではx)は桁上げ保存型となる。結果がFであるときは、Fを0に戻さないでFのままにする。
x4c’は、x3s+x3c+y3の和の桁上げである。
この結果は、mod(F)をとらなければならない。従ってx4c’=1の場合、Fはを減算するか、あるいはその2の補数、即ち1を加算する。従って、x4c’はLSB(最下位ビット)に加算される。しかし、この加算を繰り下げて、0であるx0cの箇所に記憶する。従って、以下の結果が得られる。ここでF(x’)=F(x)+F(y)=F(x+y)である。
要約すれば、通常の桁上げ保存加算が実行され、桁上げは、LSB(最下位ビット)として(ビット4の代わりにビット0に)記憶される。
GF(2n)の場合、(指標cを有する)すべての桁上げ項は0である。加算は単純なビット単位の排他論理和となる。
加算の場合には、入力は反転されないが、減算の場合は、入力は排他論理和によって反転される(図1の加算、減算を参照)。
レジスタを経由して出力を入力xにフィードバックし、そして入力yがYオペランドの連続するニブル(4ビット)である際に、回路はF(Y)を計算し、即ちオペランド全体のF(Y)を4ビットのステップで計算する。
減算 mod(F)は以下のようになる:
F(X−Y)=F(X)−F(Y) mod(F)=x−y mod(F)、
ここにx−y=−B+x+(B−y−1)+1 mod(F)である。F=B−1を加算すると、x−y=x+(B−y−1)=x+y’が得られ、ここに
である。
F(X−Y)=F(X)−F(Y) mod(F)=x−y mod(F)、
ここにx−y=−B+x+(B−y−1)+1 mod(F)である。F=B−1を加算すると、x−y=x+(B−y−1)=x+y’が得られ、ここに
減算の代わりに、F(X)とF(Y)のビット単位の反転とを加算する。
GF(2n)の場合には、減算は存在しない。
GF(p)についての乗算 mod(F)は次式のようになる:
F(X・Y)=F(X)・F(Y)mod(F)=x・ymod(F)。
F(X・Y)=F(X)・F(Y)mod(F)=x・ymod(F)。
まず、倍加 mod(F)を調べる:
F(2x)=2x323+2x222+2x121+2x020 mod(F)=x324+x223+x122+x021。
F(2x)=2x323+2x222+2x121+2x020 mod(F)=x324+x223+x122+x021。
この式を減算x3(B−1)=x3(24−1)によって約すと:
F(2x)=x3+x223+x122+x021となる。
F(2x)=x3+x223+x122+x021となる。
従って、倍加 mod(F)は、1ビットの左ローテーション(循環)と同じである。同様の方法で、2n mod(F)の乗算は、nビットの左ローテーションと同じであることを証明することができる。乗算は、シフトしたオペランドを多数回加算することと同じであり、従って1ビットに代わるローテーションが行われる。
F(x・y)=x・y mod(F)
=(x323+x222+x121+x020)(y323+y222+y121+y020)
=23(x3y323+x3y222+x3y121+x3y020)
+22(x2y323+x2y222+x2y121+x2y020)
+21(x1y323+x1y222+x1y121+x1y020)
+20(x0y323+x0y222+x0y121+x0y020) mod(F)
=x3y023+x3y322+x3y221+x3y120
+x2y123+x2y022+x2y321+x2y220
+x1y223+x1y122+x1y021+x1y320
+x0y323+x0y222+x0y121+x0y020 mod(F)
=(x3y0+x2y1+x1y2+x0y3)23
+(x3y3+x2y0+x1y1+x0y2)23
+(x3y2+x2y3+x1y0+x0y1)23
+(x3y1+x2y2+x1y3+x0y0)23 mod(F)
F(x・y)=x・y mod(F)
=(x323+x222+x121+x020)(y323+y222+y121+y020)
=23(x3y323+x3y222+x3y121+x3y020)
+22(x2y323+x2y222+x2y121+x2y020)
+21(x1y323+x1y222+x1y121+x1y020)
+20(x0y323+x0y222+x0y121+x0y020) mod(F)
=x3y023+x3y322+x3y221+x3y120
+x2y123+x2y022+x2y321+x2y220
+x1y223+x1y122+x1y021+x1y320
+x0y323+x0y222+x0y121+x0y020 mod(F)
=(x3y0+x2y1+x1y2+x0y3)23
+(x3y3+x2y0+x1y1+x0y2)23
+(x3y2+x2y3+x1y0+x0y1)23
+(x3y1+x2y2+x1y3+x0y0)23 mod(F)
この計算は、桁上げ保存加算器CSAによってなされる(図2参照)。CSA(桁上げ保存加算器)は、3つの数を一緒に加算するという課題を2つの数を加算するという課題に変換する。9つの数を一緒に加算する場合には、3個のCSA(桁上げ保存加算器)を用いて9つの数を6つの数に減らすことができ、そして、これらの6つの数は4つの数に減らすことができる。この関係では、桁上がり入力を前の計算から取得し、桁上がり出力を、その後の計算のために記憶する。
CSA演算技法の利点はその速さである、というのは、乗算ステップが大幅に短く、乗算中の桁上げ伝搬が存在しない、即ち桁上げは後のために保存されるからである。桁上げ保存加算器は、冗長桁表現と呼ばれる計算技法の基本例である。
冗長桁表現のための基本的なモチベーション(動機付け)は、次の点にある:
コンパクトでない数の異なる表現では、計算がより容易になることが多い;
中間結果に2進表現を用いることは、表現をコンパクトにするために特別な論理回路を必要とする。
冗長桁表現のための基本的なモチベーション(動機付け)は、次の点にある:
コンパクトでない数の異なる表現では、計算がより容易になることが多い;
中間結果に2進表現を用いることは、表現をコンパクトにするために特別な論理回路を必要とする。
従って、3つの結果を加算し、桁上げ及び和の結果を与える。以上で示したように、総和 mod(F)の下では、上位の桁上げはビット0になる。そして、第4の結果を加算し、このことも桁上げ及び和の結果を与える。そして、上位の桁上げはビット0、即ちf0cとなる。
GF(2n)については、通常のように全ての桁上げ項が削除される。
平方算 mod(F)に関しては、x=yとして乗算関数F(X2)を用いる可能性の他に、この関数用の演算論理回路は非常に単純である。F(x)の平方を示す次の表中にF(X2)を見つけて、容易に合成することができる。
全ての入力ビットが反転する際に、結果は変化しない。
最後に結果を、桁上げ総和形式から、桁上げ保存加算器とは独立した全加算器(図3参照)によって標準形式に変換しなければならない。出てくる桁上げをまず計算し、そして桁上がり入力として加算する。
GF(2n)については、通常のように全ての桁上げ項が削除される。
Claims (10)
- 少なくとも1つのデータ処理デバイス、特に少なくとも1つの埋め込みシステム、例えば少なくとも1つのチップカード又はスマートカードを、少なくとも1つの攻撃、特に少なくとも1つの電磁放射攻撃から保護する装置であって、前記データ処理デバイスが、計算、特に暗号演算を実行する少なくとも1つの集積回路を備えた装置において、
前記計算を少なくとも1つのF−証明でチェックすることを特徴とする装置。 - 請求項1に記載の装置において、前記F−証明が16進法用に設計されていることを特徴とする装置。
- 請求項1又は請求項2に記載の装置において、前記計算において前記F−証明によって少なくとも1つのエラーが発見されると、前記データ処理デバイスへのアクセスを拒否することを特徴とする装置。
- 請求項1〜請求項3のいずれか1つに記載の装置において、前記計算がリベスト−シャミア−エーデルマン(RSA)アルゴリズム及び/又は楕円曲線暗号(ECC)アルゴリズムに基づくことを特徴とする装置。
- データ処理デバイス、特に埋め込みシステム、例えばチップカード又はあるスマートカードであって、計算、特に暗号演算を実行する少なくとも1つの集積回路を備えたデータ処理デバイスにおいて、
少なくとも1つのF−証明で前記計算をチェックすることによって、前記集積回路を少なくとも1つの攻撃、特に少なくとも1つの電磁放射攻撃から保護することを特徴とするデータ処理デバイス。 - 少なくとも1つのデータ処理デバイス、特に少なくとも1つの埋め込みシステム、例えば少なくとも1つのチップカード又はスマートカードを、少なくとも1つの攻撃、特に少なくとも1つの電磁放射攻撃から保護する方法であって、前記データ処理デバイス、特に前記データ処理デバイスの少なくとも1つの集積回路が計算、特に暗号演算を実行する方法において、
前記計算を少なくとも1つのF−証明でチェックすることを特徴とする方法。 - 請求項6に記載の方法において、前記F−証明が16進法用に設計されていることを特徴とする方法。
- 請求項6又は請求項7に記載の方法において、前記計算において前記F−証明によって少なくとも1つのエラーが発見されると、前記データ処理デバイスへのアクセスを拒否することを特徴とする方法。
- 請求項6〜請求項8のいずれか1つに記載の方法において、前記計算がリベスト−シャミア−エーデルマン(RSA)アルゴリズム及び/又は楕円曲線暗号(ECC)アルゴリズムに基づくことを特徴とする方法。
- 請求項5に記載の少なくとも1つのデータ処理デバイスにおける、請求項1〜請求項4のいずれか1つに記載の少なくとも1つの装置及び/又は請求項6〜請求項8のいずれか1つに記載の方法の使用法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05101761 | 2005-03-08 | ||
PCT/IB2006/050639 WO2006095281A1 (en) | 2005-03-08 | 2006-03-01 | Arrangement for and method of protecting a data processing device against e[lectro] m[agnetic] radiation attacks |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008533791A true JP2008533791A (ja) | 2008-08-21 |
Family
ID=36602411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008500300A Withdrawn JP2008533791A (ja) | 2005-03-08 | 2006-03-01 | 電磁放射攻撃からデータ処理デバイスを保護する装置及び方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090279695A1 (ja) |
EP (1) | EP1859345A1 (ja) |
JP (1) | JP2008533791A (ja) |
CN (1) | CN101147123A (ja) |
WO (1) | WO2006095281A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352752B2 (en) * | 2006-09-01 | 2013-01-08 | Inside Secure | Detecting radiation-based attacks |
CN101950342B (zh) * | 2010-09-20 | 2013-03-13 | 北京海泰方圆科技有限公司 | 一种集成电路卡访问控制权限的管理装置及方法 |
JP2012169756A (ja) * | 2011-02-10 | 2012-09-06 | Hitachi Ltd | 暗号化通信検査システム |
CN107403798B (zh) * | 2017-08-11 | 2019-02-19 | 北京兆易创新科技股份有限公司 | 一种芯片及其检测方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1378905A (fr) * | 1963-08-23 | 1964-11-20 | Perfectionnements applicables à la réalisation de calculateurs numériques industriels | |
US4405829A (en) * | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
US6108419A (en) * | 1998-01-27 | 2000-08-22 | Motorola, Inc. | Differential fault analysis hardening apparatus and evaluation method |
US6724894B1 (en) * | 1999-11-05 | 2004-04-20 | Pitney Bowes Inc. | Cryptographic device having reduced vulnerability to side-channel attack and method of operating same |
DE10101995A1 (de) * | 2001-01-18 | 2002-07-25 | Philips Corp Intellectual Pty | Schaltungsanordnung und Verfahren zum Schützen mindestens einer Chipanordnung vor Manipulation und/oder vor Mißbrauch |
FR2819663B1 (fr) * | 2001-01-18 | 2003-04-11 | Gemplus Card Int | Dispositif et procede d'execution d'un algorithme cryptographique |
DE10202700A1 (de) * | 2002-01-24 | 2003-08-07 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Erzeugen eines Befehlscodes |
-
2006
- 2006-03-01 EP EP06710996A patent/EP1859345A1/en not_active Ceased
- 2006-03-01 WO PCT/IB2006/050639 patent/WO2006095281A1/en active Application Filing
- 2006-03-01 JP JP2008500300A patent/JP2008533791A/ja not_active Withdrawn
- 2006-03-01 CN CNA2006800072357A patent/CN101147123A/zh active Pending
- 2006-03-01 US US11/817,811 patent/US20090279695A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN101147123A (zh) | 2008-03-19 |
EP1859345A1 (en) | 2007-11-28 |
WO2006095281A1 (en) | 2006-09-14 |
US20090279695A1 (en) | 2009-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8850221B2 (en) | Protection against side channel attacks with an integrity check | |
KR100891323B1 (ko) | 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치 | |
JP4668931B2 (ja) | 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置 | |
CA2796149C (en) | Method for strengthening the implementation of ecdsa against power analysis | |
US8738927B2 (en) | Arrangement for and method of protecting a data processing device against an attack or analysis | |
EP1457875B1 (en) | Apparatus and method for performing Montgomery type modular multiplication | |
JP2008541166A (ja) | ランダム化されたモジュラー多項式のリダクション方法およびそのためのハードウェア | |
US6973190B1 (en) | Method for protecting an electronic system with modular exponentiation-based cryptography against attacks by physical analysis | |
US20100287384A1 (en) | Arrangement for and method of protecting a data processing device against an attack or analysis | |
JP2011530093A (ja) | 累乗法による暗号化を保護する解決策 | |
KR100652377B1 (ko) | 모듈라 지수승 알고리즘, 기록매체 및 시스템 | |
US7907724B2 (en) | Method and apparatus for protecting an RSA calculation on an output by means of the chinese remainder theorem | |
JP2010164904A (ja) | 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法 | |
KR100731387B1 (ko) | 암호화 시스템 내의 모듈러 멱승 결과 결정 장치 및 방법 | |
JP2008533791A (ja) | 電磁放射攻撃からデータ処理デバイスを保護する装置及び方法 | |
US20040125950A1 (en) | Method for protecting public key schemes from timing, power and fault attacks | |
JP2004227344A (ja) | 乗算器及び暗号回路 | |
US6609141B1 (en) | Method of performing modular inversion | |
EP1347596B1 (en) | Digital signature methods and apparatus | |
US20060274894A1 (en) | Method and apparatus for cryptography | |
JP2005020735A (ja) | データ処理装置におけるサイドチャネル攻撃防止 | |
US20240187206A1 (en) | Method and system for protecting cryptographic operations against side-channel attacks | |
Mohamed | High Performance Hardware for Modular Division/Inverse | |
CN116647318A (zh) | 防御密码系统时间攻击的方法及密码系统处理电路 | |
JP2008141385A (ja) | 暗号方法、暗号装置および暗号プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090911 |