JP2009500710A - 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 - Google Patents
攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 Download PDFInfo
- Publication number
- JP2009500710A JP2009500710A JP2008519041A JP2008519041A JP2009500710A JP 2009500710 A JP2009500710 A JP 2009500710A JP 2008519041 A JP2008519041 A JP 2008519041A JP 2008519041 A JP2008519041 A JP 2008519041A JP 2009500710 A JP2009500710 A JP 2009500710A
- Authority
- JP
- Japan
- Prior art keywords
- data processing
- processing device
- calculation
- attack
- analysis
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7238—Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/728—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 using Montgomery reduction
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
特に秘密鍵を見出すことを目的とした、例えば電磁放射(EM)攻撃のような攻撃、又は例えば差分電力解析(DPA)のような解析が安全に回避される、少なくとも1つのデータ処理装置、特に例えば少なくとも1つのチップカード又はスマートカードのような少なくとも1つの埋め込みシステムを、少なくとも1つの攻撃、特に例えば少なくとも1つの電流追跡解析のような少なくとも1つのサイドチャネル攻撃から保護するための装置及び方法であって、前記データ処理装置、特に前記データ処理装置の少なくとも1つの集積回路が、計算、特に暗号演算を実行する装置及び方法を更に発展させるため、少なくとも1つのランダム的な変数により、前記計算の全ての中間結果を隠蔽することが提案される。
Description
本発明は、一般的には、暗号解析を防ぐ技術分野に関し、特に少なくとも1つの攻撃に対して、例えば少なくとも1つの電磁(Electro Magnetic、EM)放射攻撃に対して、又は少なくとも1つの解析に対して、例えば少なくとも1つの差分電力解析(Differential Power Analysis、DPA)に対して、少なくとも1つのデータ処理装置を保護する技術分野に関する。
更に詳細には、本発明は、少なくとも1つのデータ処理装置、特に例えば少なくとも1つのチップカード又はスマートカードのような少なくとも1つの埋め込みシステムを、少なくとも1つの攻撃、特に例えば少なくとも1つの電流追跡解析のような少なくとも1つのサイドチャネル攻撃から保護するための装置及び方法であって、前記データ処理装置、特に前記データ処理装置の少なくとも1つの集積回路が、計算、特に暗号演算を実行するための装置及び方法に関する。
特にチップカード又はスマートカードのような埋め込みシステムのようなデータ処理装置は、鍵を交換するために公開鍵基盤(PKI)システムを利用し、秘密鍵を見出すことを目的とする幾つかの形態の攻撃に対して保護される必要がある。斯かる攻撃の1つは、
−チップ上の、特にむき出しの(従って光に敏感な)チップ上の、1以上の光源、又は
−チップ上の、何らかの種類の電磁(EM)放射源
を目標とすることにより、計算、特に暗号演算に影響を与えることである。
−チップ上の、特にむき出しの(従って光に敏感な)チップ上の、1以上の光源、又は
−チップ上の、何らかの種類の電磁(EM)放射源
を目標とすることにより、計算、特に暗号演算に影響を与えることである。
RSA(Rivest-Shamir-Adleman)アルゴリズム及び/又は楕円曲線暗号(Elliptic Curve Cryptography、ECC)アルゴリズムに基づく計算のためには、多くの乗算が必要とされる。通常これらの計算は、例えば電流追跡解析のような、サイドチャネル攻撃に対する保護なく実行される。
このことは、DPA攻撃に対して脆弱であり得る。なぜなら、同一の乗算が実行される度に、攻撃者が多くの電流追跡を為し得るからである。これらの追跡を加算した後には、ノイズの殆どが除去される。攻撃者が異なる入力に対し同一のことを実行すると、該攻撃者は電流追跡を比較し、ビット毎に秘密鍵を知ることができる。
国際特許出願公開WO01/97009A1の先行技術文献は、モジュール型のべき乗ルーティンを有する暗号計算のための方法を開示している。該既知の方法は、中間結果を隠蔽するための2つのランダム的な変数を用いて動作する。これに関連して、国際特許出願公開WO01/97009A1の先行技術は、ランダム的な変数の加算を用いて動作するが、乗算演算のみが隠蔽される。
しかしながら、結果が次の計算のために利用される前に、該結果は最初に隠蔽されず、該結果はやはり脆弱になる。乗算はDPAに対して敏感であるのみならず、隠蔽されていない結果のランダムアクセスメモリ(RAM)のアクセスに対しても敏感である。
Jean-Sebastien Coron及びLouis Goubinによる先行技術の論文「On Boolean and Arithmetic Masking against Differential Power Analysis」は、DPA攻撃を議論し、全ての入力及び出力をマスキングすることを提案している(第2頁、第4及び5段落)。第5段落は乗算によるRSAのマスキングを議論しており、Thomas S. Messergesによる「Securing the AES Finalists Against Power Analysis Attacks」(FSE 2000、Springer-Verlag)に参照が為されている。
Radu Muresanによる先行技術の論文「Modeling and applications of current dynamics in a complex processor core」は、ECCを適用する前に楕円曲線上の点を隠蔽することを言及している(第33乃至37頁)。
本発明の技術的な背景に関して、更なる参照が、以下に対して為され得る:
−Luca Benini、Angelo Galati、Alberto Macii、Enrico Macii及びMassimo Poncinoによる先行技術の論文「Energy-Efficient Data Scrambling on Memory-Processor Interfaces」、
−Tom Lashによる先行技術の論文「A Study of Power Analysis and the Advanced Encryption Standard - Recommendations for Designing Power Analysis Resistant Devices」、
−欧州特許出願公開EP1267514A9、
−英国特許出願公開GB2345229A、
−米国特許出願公開US2003/0194086A1、
−国際特許出願公開WO00/42511A1、
−国際特許出願公開WO01/08012A1、
−国際特許出願公開WO02/50658A1、
−国際特許出願公開WO03/101039A1、及び
−Larry T. McDaniel IIIによる先行技術の論文「An Investigation of Differential Power Analysis Attacks on FPGA-based Encryption Systems」。
−Luca Benini、Angelo Galati、Alberto Macii、Enrico Macii及びMassimo Poncinoによる先行技術の論文「Energy-Efficient Data Scrambling on Memory-Processor Interfaces」、
−Tom Lashによる先行技術の論文「A Study of Power Analysis and the Advanced Encryption Standard - Recommendations for Designing Power Analysis Resistant Devices」、
−欧州特許出願公開EP1267514A9、
−英国特許出願公開GB2345229A、
−米国特許出願公開US2003/0194086A1、
−国際特許出願公開WO00/42511A1、
−国際特許出願公開WO01/08012A1、
−国際特許出願公開WO02/50658A1、
−国際特許出願公開WO03/101039A1、及び
−Larry T. McDaniel IIIによる先行技術の論文「An Investigation of Differential Power Analysis Attacks on FPGA-based Encryption Systems」。
上述した欠点及び短所を発端とし、議論されたような先行技術を考慮に入れ、本発明の目的は、本技術分野における上述したような装置、及び本技術分野における上述したような種類の方法を更に発展させ、特に秘密鍵を見出すことを目的とした、例えばEM放射攻撃のような攻撃、又は例えばDPAのような解析を、安全に回避することを可能とすることにある。
本発明の目的は、請求項1の特徴を有する装置、及び請求項7の特徴を有する方法により達成される。本発明の有利な実施例及び好適な改良は、それぞれの従属請求項に開示される。
本発明は主に、非脆弱性、特にDPAに対する非脆弱性を提供するため、中間結果を隠蔽するための装置及び方法を利用するという発想に基づく。とりわけ、斯かる隠蔽は、少なくとも1つのランダム的な変数を利用することにより、計算、特に暗号演算に含まれる乗算において利用される。
より具体的には、メッセージMが変数Vによって隠蔽されることができる。該変数Vは、ランダム的に選択された変数vから導出されることができる。このようにして、全ての中間結果もが隠蔽される。これら中間結果は、計算の終了まで、特に暗号演算の終了まで、隠蔽されたままとなる。
本発明の好適な実施例によれば、RSA計算全体の間又はECC計算の全体の間一定に保たれるが、新たな計算が開始されると変化させられるランダム的な変数によって、全ての中間結果が隠蔽される。これにより、全ての入力が同一である場合であっても、全ての電流追跡が変化させられる。なぜなら、ランダム的な変数は同一でないからである。
本発明の好適な実施例においては、モンゴメリ還元(Montgomery reduction)の原理が利用される。モンゴメリ還元は、Peter L. Montgomeryによって1985年に発表された、モジュール型計算における乗算のための効率的なアルゴリズムである。より具体的には、モンゴメリ還元は、c=ab・mod(n)を計算するための方法であり、ここでa、b及びnはkビットのバイナリ数である。
モンゴメリ還元は、ここでは特に暗号化に適用される。mを正の整数とし、R及びTをR>m、gcd(m,R)=1且つ0≦T<mRとなる整数とする。ここでgcdは最大公約数(greatest common divisor)である。古典的な方法を使わずにTR-1mod(m)を算出することは、Rに対するTモジュロmのモンゴメリ還元と呼ばれる。Rの適切な選択により、モンゴメリ還元が効率的に計算されることができる。
有利にも、本発明はモンゴメリ還元に限定されるものではなく、本発明は他の還元原理にも適合されることができる。
本発明は、GF(p)及びGF(2n)の両方について適用可能である。本文脈において、アーキテクチャが素(p)拡大体及び二項(2n)拡大体の両方におけるオペランドで動作することが可能である場合、該アーキテクチャが統一されていると呼ぶ。
pが素数である場合、整数モジュロpは、GF(p)により示されるp個の元を持つ体を形成する。有限体は、有限の体の次数即ち有限個の元を持つ体であり、ガロア体(Galois Field)又はGFとも呼ばれる。有限体の次数は常に素数であるか又は素数のべき乗である。各素数のべき乗について、正確に1つの(「正確に1つ」は「同型を除いて(up to an isomorphism)正確に1つ」を意味するという通常の注意による)有限体GF()が存在する。GF(p)はp次の素体と呼ばれ、剰余類(residue class)モジュロpの体である。
n>1である場合、GF()は、係数がGF(p)に属する多項式の同値類(equivalence class)の体として表現され得る。いずれのn次の既約多項式もが、同型を除いて同一の体を導出する。
本発明は更に、計算、特に暗号演算を実行する少なくとも1つの集積回路を有する、データ処理装置、特に例えばチップカード又はスマートカードのような埋め込みシステムに関する。ここで前記集積回路は、
−少なくとも1つの攻撃に対して、特に少なくとも1つのEM放射攻撃に対して、又は
−少なくとも1つの暗号解析に対して、特に少なくとも1つのDPAに対して、
少なくとも1つのランダム的な変数によって、前記計算の全ての中間結果を隠蔽することにより、保護される。
−少なくとも1つの攻撃に対して、特に少なくとも1つのEM放射攻撃に対して、又は
−少なくとも1つの暗号解析に対して、特に少なくとも1つのDPAに対して、
少なくとも1つのランダム的な変数によって、前記計算の全ての中間結果を隠蔽することにより、保護される。
本発明は最後に、DPAに対して保護されるべき上述したような少なくとも1つのデータ処理装置における、上述したような少なくとも1つの装置の使用、及び/又は上述したような方法の使用に関する。
既に上述したように、本発明の教示を有利な態様で実施化及び改善する幾つかの選択肢がある。この目的のため、請求項1に従属する及び請求項7に従属する請求項に参照が為される。本発明の更なる改善、特徴及び利点は、例として示される好適な実施例及び添付図面を参照しながら、以下により詳細に説明される。
データ処理装置の実施例、即ち暗号演算を実行する集積回路(IC)を有するチップカード又はスマートカードの形をとる埋め込みシステムは、PKIシステムを参照し、本発明の方法に従って動作する。即ち、保護装置100(図1を参照)により不正使用及び/又は操作から保護される。
基本的に、変数X及びYが、X=X/v'mod(N)及びY=Y/v'mod(N)により隠蔽されることが想定される。本文脈においては、下線は変数が隠蔽されることを示す。
次いで、積X・Yが以下のように算出される:R=X・Y・v'mod(N)。Rは、X及びYと同様に隠蔽され、それ故Rは次の演算において使用されることができる。モンゴメリ還元により引き起こされる、後続するBによる除算を補償するため、v'により乗算する代わりに、v=v'B(B=2n、即ちBは2のべき乗)により乗算される。
しかしながら、隠蔽補正を可能な限り単純なものとするため、vは単一の語であることが望ましい。それ故、v'を選択する代わりに、vがランダム的な単一の語として選択され、ここでv'=v/Bmod(N)である。付加的な還元の可能性を低減させるため、vの幾つかの最上位ビット(MSB)がゼロと選択され、積R・vを同数のビットだけ小さくする。
本発明は、オペランドの逆数を計算する能力を必要とする。
本集積回路の暗号計算は、RSAアルゴリズムに基づくものであっても良い(米国特許US4405829、又は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月を参照)。該アルゴリズムは暗号化C=Memod(N)を計算するためのものであり、ここで、
Mは暗号化されるべきメッセージであり、
N=p・qであり、
eは(p-1)(q-1)と互いに素であり、
dはxedmod[(p-1)(q-1)]=1であるような数である。
Mは暗号化されるべきメッセージであり、
N=p・qであり、
eは(p-1)(q-1)と互いに素であり、
dはxedmod[(p-1)(q-1)]=1であるような数である。
復号化はM=Cdmod(N)を計算する。
Me(又はCd)を計算するための方法の1つは、以下のとおりである:
第1のステップ:R=1から始める。
第2のステップ:左から右へと指数eを走査する。
第3のステップ:R=R2mod(N)を常に計算する。
第4のステップ:eの走査されたビットが1である場合、R=R・M・mod(N)が更に計算される。
第1のステップ:R=1から始める。
第2のステップ:左から右へと指数eを走査する。
第3のステップ:R=R2mod(N)を常に計算する。
第4のステップ:eの走査されたビットが1である場合、R=R・M・mod(N)が更に計算される。
かくして、本計算は幾つかの二乗及び乗算を有する。
係数N及び全てのオペランドが、nビットから成る幾つかの語mを有すると仮定する。モジュール還元の後、変数はnビットから成るm個の語を有するが、最上位語(MSW)は更に数ビットを持ち得る。モジュール還元の前に、結果は更なる語(通常は1又はm)を持つ。
最初の段階即ち初期隠蔽は、M=Mv'-1=MBv-1mod(N)を算出する。vは単一の語であるが、B・v-1によるモジュール乗算はMの全ての語を完全に変化させる。初期隠蔽のみが、逆数演算を必要とする。
乗算X・Yを隠蔽する第2段階において、隠蔽されていない場合におけるように
が最初に計算される。次いで、
が計算される。本文脈において、
は、隠蔽されているが規定の方法で隠蔽されたものではないことは留意されるべきである。このことは、vの1つの語による完全な
の乗算、及び後続するモンゴメリ還元を必要とする。
本文脈において、最初にX=Xvを計算することは可能であるが効率的ではないことは、留意されるべきである。なぜなら、このことはオペランドの1つを非隠蔽化するからである。X及びYがn個の語を有する場合、X・Yの乗算及び還元は2n2+n個の乗算を必要とする。隠蔽補正演算は、2n+1個の乗算を更に必要とする。例えば64ビットから成るn=16個の語を用いる1024ビットのRSAについては、このことは演算能力の約6パーセントを付加的に必要とする。
二乗X2を隠蔽する第3の段階において、隠蔽されていない場合におけるように
が最初に計算される。次いで、
が計算される。本文脈において、
は、隠蔽されているが規定の方法で隠蔽されたものではないことは留意されるべきである。このことは、vの1つの語による完全な
の乗算、及び後続するモンゴメリ還元を必要とする。
モジュール二乗は、3/2(n2+n)個の乗算により実行されることができる。隠蔽補正演算は、2n+1個の乗算を更に必要とする。例えば64ビットから成るn=16個の語を用いる1024ビットのRSAについては、このことは演算能力の約8パーセントを付加的に必要とする。
最後の段階即ち最終的な非隠蔽化において、全てのRSA計算が実行されたときに、最終結果Rが非隠蔽化される必要がある。該最終的な非隠蔽化は、モンゴメリ還元を用い、R=Rv・mod(N)を算出することにより為される。
ECCについては(M. Ernst、M. Jung、F. Madlenerらによる先行技術の論文「A Reconfigurable System on Chip Implementation for Elliptic Curve Cryptography over GF(2n)」、381-399頁を参照)、楕円曲線及び該曲線上の点Pが選択される。
第1のインスタンスAにおいて、ランダム的な数aが選択される。公開鍵としてaPが計算され第2のインスタンスBに送信される。第2のインスタンスBにおいても、ランダム的な数bが選択される。公開鍵としてbPが計算され第1のインスタンスAに送信される。次いで第1のインスタンスAはK=a(bP)を計算し、第2のインスタンスBはK'=b(aP)を計算する。ここでK=K'であり、このことは2つのインスタンスA及びBの共通の秘密である。
基本的な演算は、スカラaによる点Pの乗算である。該乗算は、(a回)繰り返される点の加算:X=aP=P+P+...+Pである:
−R=Pで開始;
−スカラaを左から右へと走査:
−−R=2Rmod(N)を常に計算(所謂点倍算(point doubling))
−−aの走査されたビットが1である場合、R=R+Pmod(N)が更に算出される(所謂点加算(point addition))。
−R=Pで開始;
−スカラaを左から右へと走査:
−−R=2Rmod(N)を常に計算(所謂点倍算(point doubling))
−−aの走査されたビットが1である場合、R=R+Pmod(N)が更に算出される(所謂点加算(point addition))。
所謂点倍算のためのアルゴリズム及び所謂点加算のためのアルゴリズムは、XY±Zmod(N)及びX2±Zmod(N)のような演算を利用する(RSAアルゴリズムと同様であるが、第3のオペランドZが加算又は減算される)。
これらの演算は、RSAアルゴリズムについての方法と同一の方法で隠蔽される。
点倍算アルゴリズム及び点加算アルゴリズムはまた、X-1を計算する逆数演算を必要とし、ここでXX-1mod(N)=1である。
隠蔽補正(即ち結果の乗算)は、乗算又は二乗にのみ適用され、加算又は乗算には適用されない。それ故、最初にXYmod(N)又はX2mod(N)が計算される。
第1の段階即ち初期隠蔽において、点PのX座標及びY座標の両方が、最初に隠蔽される必要がある。初期隠蔽は、RSAアルゴリズムについて上述した方法と同一の方法で為される。
第2の段階、即ち乗算(R=XY±Z)及び二乗(R=X2±Z)において、最初に、積
又は二乗
が計算される。次いで、
が計算される。これに関連して、m=3及びn=64である192ビットのECCについて、隠蔽されていない乗算は21個の乗算を必要とし、隠蔽された乗算は27個の乗算、即ち28パーセント多い乗算を必要とすることは留意されるべきである。これらは共に付加的な還元を伴わない。隠蔽されていない二乗は18個の乗算を必要とし、隠蔽された二乗は24個の乗算、即ち33パーセント多い乗算を必要とする。
最後のステップ即ち反転において、隠蔽されていない反転がR=X-1mod(N)を計算する。隠蔽された反転はR=(Xv2)-1mod(N)を計算する。このことは以下のように理解される:R=R/v=X-1/v=(Xv)-1v-1=(Xv2)-1。
隠蔽されていない中間結果を与えるため、最初にXをvにより乗算し次いでまたvにより乗算することに比べ、最初にv2を計算し次いでv2をXにより乗算することが好ましい。
本発明の実装は、少なくとも部分的にソフトウェアベースであっても良い。これに関連して、RSAプログラミング及び/又はECCプログラミングに適したプロセッサが、上述した隠蔽を実装しても良い。
本発明による保護装置100のハードウェア実装の例が、図1に示される。本実装の例は、以下を実行する能力を有する:
−それ自体知られた乗算器10の実装を用いたXY+R+Cのタイプの乗算、及び
−それ自体知られた反転アルゴリズムの実装を用いたX-1mod(N)タイプの逆数の計算。
−それ自体知られた乗算器10の実装を用いたXY+R+Cのタイプの乗算、及び
−それ自体知られた反転アルゴリズムの実装を用いたX-1mod(N)タイプの逆数の計算。
乗算器10及び反転器30がそれぞれメモリ20に接続され(図1における参照記号12及び32)、メモリ20において全てのオペランドが保存される。前記結果もまた該メモリ20に保存される。
更に状態機械40が存在し、該状態機械40は、
−必要とされるタイプの計算を実行するため乗算器10を制御し、
−反転演算のため反転器30を制御し、
−メモリ20から入力オペランドを読み込み、
−結果をメモリ20に書き込む。
−必要とされるタイプの計算を実行するため乗算器10を制御し、
−反転演算のため反転器30を制御し、
−メモリ20から入力オペランドを読み込み、
−結果をメモリ20に書き込む。
100 装置
10 装置100の乗算ユニット
12 乗算ユニット10とメモリユニット20との間の接続
20 装置100のメモリユニット
30 装置100の反転ユニット
32 反転ユニット30とメモリユニット20との間の接続
40 装置100の状態機械
10 装置100の乗算ユニット
12 乗算ユニット10とメモリユニット20との間の接続
20 装置100のメモリユニット
30 装置100の反転ユニット
32 反転ユニット30とメモリユニット20との間の接続
40 装置100の状態機械
Claims (11)
- 少なくとも1つのデータ処理装置、特に例えば少なくとも1つのチップカード又はスマートカードのような少なくとも1つの埋め込みシステムを、少なくとも1つの攻撃、特に例えば少なくとも1つの電流追跡解析のような少なくとも1つのサイドチャネル攻撃から保護するための装置であって、前記データ処理装置、特に前記データ処理装置の少なくとも1つの集積回路が、計算、特に暗号演算を実行する装置において、少なくとも1つのランダム的な変数により、前記計算の全ての中間結果を隠蔽することを特徴とする装置。
- 前記ランダム的な変数は、
前記計算の全体の間一定に保たれ、
新たな計算が開始されたときに変化させられる
ことを特徴とする、請求項1に記載の装置。 - 前記計算は、RSAアルゴリズム及び/又は楕円曲線暗号アルゴリズムに基づくことを特徴とする、請求項1又は2に記載の装置。
- モンゴメリ還元又は他のタイプの還元を利用することを特徴とする、請求項1乃至3のいずれか一項に記載の装置。
- 前記オペランド、特に全てのオペランドと、前記計算の結果、特に全ての結果を保存するための、少なくとも1つのメモリユニットと、
前記メモリユニットに接続された少なくとも1つの乗算ユニットと、
前記メモリユニットに接続された少なくとも1つの反転ユニットと、
少なくとも1つの状態機械と、
を有し、前記状態機械は、
必要とされるタイプの計算を実行するために前記乗算ユニットを制御し、
反転演算のために前記反転ユニットを制御し、
前記メモリユニットから入力オペランドを読み取り、及び/又は
前記計算の結果、特に全ての結果を、前記メモリユニットに書き込むことを特徴とする、請求項1乃至4のいずれか一項に記載の装置。 - データ処理装置、特に例えばチップカード又はスマートカードのような埋め込みシステムのようなデータ処理装置であって、計算、特に暗号演算を実行する少なくとも1つの集積回路を有するデータ処理装置において、請求項1乃至5のいずれか一項に記載の装置を有することを特徴とするデータ処理装置。
- 少なくとも1つのデータ処理システム、特に例えば少なくとも1つのチップカード又はスマートカードのような少なくとも1つの埋め込みシステムを、少なくとも1つの攻撃、特に例えば少なくとも1つの電流追跡解析のような少なくとも1つのサイドチャネル攻撃から保護するための方法であって、前記データ処理装置、特に前記データ処理装置の少なくとも1つの集積回路が、計算、特に暗号演算を実行する方法において、少なくとも1つのランダム的な変数により、前記計算の全ての中間結果を隠蔽することを特徴とする方法。
- 前記ランダム的な変数は、
前記計算の全体の間一定に保たれ、
新たな計算が開始されたときに変化させられる
ことを特徴とする、請求項7に記載の方法。 - 前記計算は、RSAアルゴリズム及び/又は楕円曲線暗号アルゴリズムに基づくことを特徴とする、請求項7又は8に記載の方法。
- モンゴメリ還元又は他のタイプの還元を利用することを特徴とする、請求項7乃至9のいずれか一項に記載の方法。
- 差分電力解析から保護されるべき少なくとも1つの請求項6に記載のデータ処理装置における、請求項1乃至5のいずれか一項に記載の装置、及び/又は請求項7乃至10のいずれか一項に記載の方法の使用。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP05105803 | 2005-06-29 | ||
| PCT/IB2006/052053 WO2007000701A2 (en) | 2005-06-29 | 2006-06-23 | Arrangement for and method of protecting a data processing device against an attack or analysis |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009500710A true JP2009500710A (ja) | 2009-01-08 |
Family
ID=37479306
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008519041A Pending JP2009500710A (ja) | 2005-06-29 | 2006-06-23 | 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20100287384A1 (ja) |
| EP (1) | EP1899803A2 (ja) |
| JP (1) | JP2009500710A (ja) |
| CN (1) | CN101213512A (ja) |
| WO (1) | WO2007000701A2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8966264B2 (en) | 2010-05-28 | 2015-02-24 | Nec Corporation | Signature generation apparatus, signature method, non-transitory computer readable medium storing signature generation program |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1899804B1 (en) | 2005-06-29 | 2012-11-07 | Irdeto B.V. | Arrangement for and method of protecting a data processing device against a cryptographic attack or analysis |
| FR2889005A1 (fr) * | 2005-07-19 | 2007-01-26 | Gemplus Sa | Integrite materielle permanente des donnees |
| US8352752B2 (en) * | 2006-09-01 | 2013-01-08 | Inside Secure | Detecting radiation-based attacks |
| DE102007000589B9 (de) * | 2007-10-29 | 2010-01-28 | Bundesdruckerei Gmbh | Verfahren zum Schutz einer Chipkarte gegen unberechtigte Benutzung, Chipkarte und Chipkarten-Terminal |
| CN101729241B (zh) * | 2008-10-23 | 2012-01-25 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
| FR2977952A1 (fr) | 2011-07-13 | 2013-01-18 | St Microelectronics Rousset | Protection d'un calcul d'exponentiation modulaire par multiplication par une quantite aleatoire |
| CN102412965B (zh) * | 2011-08-09 | 2013-11-27 | 深圳市德卡科技有限公司 | 椭圆曲线密码协处理器 |
| DE102011117219A1 (de) * | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Bestimmen eines Divisionsrests und Ermitteln von Primzahlkandidaten für eine kryptographische Anwendung |
| CN103684763A (zh) * | 2012-09-19 | 2014-03-26 | 北京握奇数据系统有限公司 | 基于rsa算法的数据加密方法、装置及智能卡 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003177668A (ja) * | 2001-09-06 | 2003-06-27 | Stmicroelectronics Sa | 秘密量をもった計算をスクランブルする方法 |
| WO2005008955A1 (ja) * | 2003-07-22 | 2005-01-27 | Fujitsu Limited | 個人鍵を用いた耐タンパ暗号処理 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4405829A (en) * | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
| RU2153191C2 (ru) * | 1998-09-29 | 2000-07-20 | Закрытое акционерное общество "Алкорсофт" | Способ изготовления вслепую цифровой rsa-подписи и устройство для его реализации (варианты) |
| US7599491B2 (en) * | 1999-01-11 | 2009-10-06 | Certicom Corp. | Method for strengthening the implementation of ECDSA against power analysis |
| DE19963407A1 (de) * | 1999-12-28 | 2001-07-12 | Giesecke & Devrient Gmbh | Tragbarer Datenträger mit Zugriffsschutz durch Nachrichtenverfremdung |
| JP2002358010A (ja) * | 2001-05-31 | 2002-12-13 | Mitsubishi Electric Corp | べき乗剰余演算器 |
| US7403620B2 (en) * | 2002-07-02 | 2008-07-22 | Stmicroelectronics S.A. | Cyphering/decyphering performed by an integrated circuit |
| US7177423B2 (en) * | 2003-06-09 | 2007-02-13 | Certicom Corp. | Method and apparatus for exponentiation in an RSA cryptosystem |
| GB0313663D0 (en) * | 2003-06-13 | 2003-07-16 | Hewlett Packard Development Co | Mediated rsa cryptographic method and system |
| US7363499B2 (en) * | 2003-09-18 | 2008-04-22 | Sun Microsystems, Inc. | Blinded encryption and decryption |
| US7739521B2 (en) * | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
| US7742596B2 (en) * | 2004-08-24 | 2010-06-22 | General Dynamics C4 Systems, Inc. | Reliable elliptic curve cryptography computation |
| KR100617384B1 (ko) * | 2004-09-24 | 2006-08-31 | 광주과학기술원 | Rsa 보안 모듈의 몽고메리 곱셈기 |
| JP4351987B2 (ja) * | 2004-11-19 | 2009-10-28 | 株式会社東芝 | モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム |
| EP1899804B1 (en) * | 2005-06-29 | 2012-11-07 | Irdeto B.V. | Arrangement for and method of protecting a data processing device against a cryptographic attack or analysis |
-
2006
- 2006-06-23 WO PCT/IB2006/052053 patent/WO2007000701A2/en not_active Ceased
- 2006-06-23 CN CNA2006800234489A patent/CN101213512A/zh active Pending
- 2006-06-23 EP EP06765837A patent/EP1899803A2/en not_active Withdrawn
- 2006-06-23 US US11/993,289 patent/US20100287384A1/en not_active Abandoned
- 2006-06-23 JP JP2008519041A patent/JP2009500710A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003177668A (ja) * | 2001-09-06 | 2003-06-27 | Stmicroelectronics Sa | 秘密量をもった計算をスクランブルする方法 |
| WO2005008955A1 (ja) * | 2003-07-22 | 2005-01-27 | Fujitsu Limited | 個人鍵を用いた耐タンパ暗号処理 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8966264B2 (en) | 2010-05-28 | 2015-02-24 | Nec Corporation | Signature generation apparatus, signature method, non-transitory computer readable medium storing signature generation program |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1899803A2 (en) | 2008-03-19 |
| WO2007000701A2 (en) | 2007-01-04 |
| US20100287384A1 (en) | 2010-11-11 |
| CN101213512A (zh) | 2008-07-02 |
| WO2007000701A3 (en) | 2007-03-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3188001B1 (en) | Modular multiplication device and method | |
| US20090092245A1 (en) | Protection Against Side Channel Attacks | |
| JP5179358B2 (ja) | 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 | |
| CN101416154A (zh) | 安全解密方法 | |
| JP5182364B2 (ja) | サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法 | |
| JP4668931B2 (ja) | 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置 | |
| JP2004304800A (ja) | データ処理装置におけるサイドチャネル攻撃防止 | |
| JP5977996B2 (ja) | サイドチャンネル攻撃に対する抵抗力のあるモジュラー累乗法及び装置 | |
| WO2019121747A1 (en) | Device and method for protecting execution of a cryptographic operation | |
| JP4351987B2 (ja) | モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム | |
| Batina et al. | SoK: SCA-secure ECC in software–mission impossible? | |
| CN110048840B (zh) | 一种基于rsa算法的信息处理方法、系统及相关组件 | |
| JP5261088B2 (ja) | 不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法 | |
| JP2009500710A (ja) | 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 | |
| Batina et al. | Flexible hardware design for RSA and elliptic curve cryptosystems | |
| KR101990861B1 (ko) | 논-모듈러 승산기, 논-모듈러 승산 방법 및 계산 장치 | |
| JP2010139544A (ja) | 剰余演算装置、及び剰余演算方法 | |
| JP4626148B2 (ja) | 復号または署名作成におけるべき乗剰余算の計算方法 | |
| US7496758B2 (en) | Method and apparatus for protecting an exponentiation calculation by means of the chinese remainder theorem (CRT) | |
| Batina et al. | SCA-secure ECC in software–mission impossible? | |
| Yin et al. | A randomized binary modular exponentiation based RSA algorithm against the comparative power analysis | |
| Tunstall et al. | Coordinate blinding over large prime fields | |
| Takemura et al. | ECC Atomic Block with NAF against Strong Side-Channel Attacks on Binary Curves | |
| Boscher et al. | Fault resistant RSA signatures: Chinese remaindering in both directions | |
| HK1122883A (en) | Arrangement for and method of protecting a data processing device against an attack or analysis |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090527 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111108 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111115 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120522 |