JP3878853B2 - 公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム - Google Patents

公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム Download PDF

Info

Publication number
JP3878853B2
JP3878853B2 JP2001555318A JP2001555318A JP3878853B2 JP 3878853 B2 JP3878853 B2 JP 3878853B2 JP 2001555318 A JP2001555318 A JP 2001555318A JP 2001555318 A JP2001555318 A JP 2001555318A JP 3878853 B2 JP3878853 B2 JP 3878853B2
Authority
JP
Japan
Prior art keywords
register
message
indicator
value
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001555318A
Other languages
English (en)
Other versions
JP2003521010A (ja
Inventor
ベノワ オリビエ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus SA filed Critical Gemplus SA
Publication of JP2003521010A publication Critical patent/JP2003521010A/ja
Application granted granted Critical
Publication of JP3878853B2 publication Critical patent/JP3878853B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/723Modular exponentiation
    • 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
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Lock And Its Accessories (AREA)

Description

【0001】
(技術分野)
本発明は、公開鍵暗号アルゴリズムを用いる電子構成品におけるアンチSPA(シンプルパワーアタック)モジュラべき乗演算アルゴリズムに関するものである。
【0002】
(背景技術)
公開鍵暗号アルゴリズムの特性は周知のものである。すなわち、計算され、パラメータが使用される。唯一知られていないのはプログラムメモリに含まれている秘密鍵である。これら暗号アルゴリズムの全体セキュリティは、カードに含まれており、このカードの外部には知られていないこの秘密鍵にある。この秘密鍵は、入力に用いられたメッセージの情報や、返事として供給された符号化メッセージの情報、あるいは公開鍵の情報などから単独に推定されることは不可能である。
【0003】
しかし、カードのマイクロプロセッサが、メッセージの署名、あるいはメッセージの解読のために暗号アルゴリズムを実行している過程にある時に、電流消費あるいは電流消費の分析に基づく外部アタックによって、悪意ある第三者がこのカードに含まれる秘密鍵を探し当てることが可能となることが明らかになった。こうしたアタックはシングルパワー分析の頭文字をとってSPAアタックと呼ばれている。
【0004】
こうしたSPAアタックの原理は、命令を実行するマイクロプロセッサの電流消費が、処理されるデータに応じて変わるという事実に基づいている。
特に、マイクロプロセッサで実行される命令はビットごとにデータアイテムを処理する必要があり、このビットが“1”か“0”のいずれであるかにより、異なる2つの電流プロファイルが存在する。一般に、マイクロプロセッサが“0”を処理している場合には、この実行の瞬間に第1消費電流振幅があり、また、マイクロプロセッサが“1”を処理している場合には、第1消費電流振幅とは異なる第2消費電流振幅がある。
【0005】
このように、SPAアタックは、処理されるビットの値に応じて命令を実行する間の、カードにおける電流消費プロファイルの違いを利用するものである。SPAアタックの実行は、単純化されたやり方として、ビットごとにデータを処理する少なくとも1つの命令の実行を含むアルゴリズムが実行される1つまたはそれ以上の特定の周期を識別し、そして、一方が“0”に等しいビット処理に相当し、他方が“1”に等しいビット処理に相当する2つの異なる電流消費プロファイルを識別することから成る。分析は、ノイズを削除するために平均化された、アルゴリズムの同一ランニングのカーブ上、またはおそらくnカーブ上にてなされる。
【0006】
モジュラべき乗演算は次の数式で定義される。
R=X mod N
ここで、Yはkビットのサイズを有する指数である。
Nはk’ビットのサイズを有する法である。
Xはk”ビットのサイズを有する、既知の変数である。
Rはモジュラべき乗演算の結果であり、k’ビットのサイズを有する。
【0007】
以下に記載の既知の従来アルゴリズムAあるいはBを用いることが出来る。
上記数式の計算に使用する従来アルゴリズムAは以下のとおりである。
Rは1に初期化される。すなわち、R=1;
Yの2進表現は、Y(k−1)で示される最上位ビットから最下位ビットY(0)まで推移する。
iが(k−1)から0まで変わる、各ビットY(i)について、追加演算R=Rが実行される。
ビットY(i)が1に等しい場合、次の演算から成る追加のステップが実行される。すなわち、R=R*X。
例えば、Yが5に等しい場合、その2進表現は101となる。
【0008】
上記のアルゴリズムが適用されると、
第1ビット[Y(2)=1]について、R=Rが実行され、その後に演算R*X=Xが実行され、すなわち結果は、R=Xとなる;
第2ビット[Y(1)=0]について、演算R=Rが実行され、すなわち結果は、R=Xとなり;
第3ビット[Y(0)=1]について、演算R=(Rが実行され、その後に演算R=R*Xが実行され、すなわち結果は、R=(X=Xとなる。
なお、上記Rは常に使用される。
当然、Yは5に等しいという例で説明した全ての数式はNを法として実行される。これによって、k’ビットのサイズを有するレジスタrと連動することが可能になる。
【0009】
上記で述べた数式を計算するために使用される従来のアルゴリズムBは以下の通りである。
Rは1に初期化され、ZはXに初期化される。すなわち、R=1、Z=X、ここでZは変数である。
Yの2進表現は、最下位ビットY(0)から最上位ビットY(k−1)まで推移する。
iが0から(k−1)まで変わる、各ビットY(i)について、iが0よりも大きいとき、追加演算Z=Zが実行される。
ビットY(i)が1に等しい場合、次の演算から成る追加のステップが実行される。すなわち、R=R*Z。
例えば、Yが5に等しい場合、その2進表現は101となる。
【0010】
上記アルゴリズムが適用されると、
第1ビット、Y(0)=1について、演算Z*は実行されず(i=0であるため)、演算R=R*Z=Xが実行される。
第2ビット[Y(1)]=0について、演算Z=Xが実行される。Y(1)=0であるため、Rは変わらない。
第3ビット[Y(2)=1]について、演算Z=Z=Xが実行される。そして、Y(2)が1に等しいとき、演算R=R*Zもまた実行される。ゆえに、Xが求められる。
なお、上記RおよびZは常に使用される。
当然、Yは5に等しいという例で説明したすべての数式はNを法として実行される。これによって、k’ビットのサイズを有するレジスタrおよびzと連動することが可能になる。
しかし、このアルゴリズムBはさらにメモリ(k’ビットのサイズを有する追加レジスタz)を必要とすることから、チップカードタイプの電子構成品においてはあまり使用されない。
【0011】
上記において説明した従来のアルゴリズムAおよびBに関して、Yの各ビットに従って、ビットが0の場合には1つの演算が実行され、ビットが1の場合には2つの演算が実行されることが理解される。これらのアルゴリズムAおよびBはRSAに使用される。なお、RSA暗号方式は最も広く用いられている公開鍵暗号方式である。これは暗号化の方法として、あるいは署名の方法として使用可能である。RSA暗号方式はその特定用途向けチップカードにおいて使用される。チップカードにおいてRSAの使用可能な用途に、データバンクへのアクセス、バンキングアプリケーション、例えば有料テレビなどの遠隔支払いアプリケーション、ガソリン販売、あるいは高速道路料金の支払い等があげられる。もちろん、これらの用途例は全てを網羅しているわけではない。
【0012】
RSA暗号方式の原理は以下の通りであり、3つの異なるパートに分けることが出来る。すなわち、
1)一組のRSAキーの生成
2)平文で書かれたメッセージの暗号メッセージへの暗号化
3)暗号メッセージの平文メッセージへの解読
【0013】
RSA暗号化演算は、演算C=M mod Nで表されるメッセージM mod Nに等しい暗号cを計算することから成る。ここで、eは公開暗号指数であり、Nは法である。
RSA解読演算は、解読が正確に実行され、かつ次の演算M’=C mod N(ここで、dは秘密解読指数であり、Nは法である。)で表される場合、Mに等しいメッセージM’を計算することから成る。
RSAはまさにモジュラべき乗演算であることが分かる。
【0014】
dはプライベートであることから、これは秘密エレメントであることが判明する。ゆえに、dは、本説明の初めのほうで述べたようなアルゴリズムである、従来のアルゴリズムAまたはBにおけるYに相当するものであることが分かる。しかし、RSAに使用されるこれらのアルゴリズムは、発明を実施する電子構成品の電流消費を調べることにより簡単にアタックされてしまう。
【0015】
これは、S(SQU)で示される、「2乗演算」と呼ばれるアルゴリズムAの演算RおよびアルゴリズムBの演算Zの署名Sが、S(MUL)で示される、「乗算演算」と呼ばれるアルゴリズムAの演算R*XおよびアルゴリズムBの演算Z*Rの署名Sとは異なると考えられる場合、上記のアルゴリズムAまたはBを実行している間の電流消費は、直接Yに基づく署名S(SQU)およびS(MUL)の連続より成るためである。
【0016】
例えば、アルゴリズムAの場合、5に等しいYについて、次の連続する署名がある。
[S(SQU),S(MUL)],[S(SQU)],[S(SQU),S(MUL)]、ここで、[S(MUL)]が後に続く署名[S(SQU)]の連なりは1に等しいビットであり、[S(SQU)]が後に続く署名[S(SQU)]は0に等しいビットである。
S(SQU)とS(MUL)を区別する方法が分かる場合に、簡単に電流消費を調べることで、Yの値全体を見つけ出すことが可能となる。このアタックの方法が上記のRSAに適用されると、定義上秘密としておくべき秘密解読指数であるY=dが見つけ出されてしまうので、不適当である。
【0017】
本発明はこの重大な欠点を取り除くことを可能にする。
しかし、本発明の創作力を明確に強調するために、依然欠点のあるアルゴリズムAおよびアルゴリズムBの改良例をあげることが効果的である。
従来のアルゴリズムAまたはBにおいて、本発明を実施する構成品は、MULで表される演算「乗算」よりも効果的にRを計算する、SQUで表される「自乗」と呼ばれる最適演算を有すると考えられる。
【0018】
アタックに対する最初の反撃は演算MULのみを使用することから成る。この場合、演算「乗算」の署名が残るにすぎず、値Yに遡ることを可能にするどんな情報も区別することがもはや出来なくなる。さらに正確に言うと、数学的演算「乗算」は2つのオペランドVおよびWを有しており、次の式によって定義される。
MUL(V,W)=V*W
理論上は1つは保護されるが、しかし実際には演算MUL(V,V)または演算MUL(V,W)が用いられる。ゆえに、オペランドが異なるため、電流消費の違いが依然としてある。よって、これは信頼のおける解決法とはいえない。
【0019】
(発明の開示)
本発明は、本アルゴリズムによりモジュラべき乗演算を実行し、上記のような欠点を回避することを可能にする。
2つのレジスタRおよびRと、結果がレジスタRにあることを意味する“0”に等しいか、または結果がレジスタRにあることを意味する“1”に等しいインジケータIとが使用される。このインジケータIにより、どちらのレジスタに正確な結果があるかを示すことが可能になる。
【0020】
アルゴリズムAを使用する本発明のアルゴリズムは、以下の初期設定ステップであるステップaおよびb、そして、k回(kはYのサイズである)実行される計算ステップであるステップc、d、e、およびfにより実行されることから成り、各ステップは以下の通りである。
a)R=1初期化する。
b)I=0初期化する。
Yの2進表現のビットY(i)ごとに“k−1”から“”について次の4つのステップc、d、e、およびfが実行される。Yの2進表現は最上位ビットY(k−1)から最下位ビットY(0)まで推移する。
c)I=0の場合、演算R=(Rが実行され、I=1の場合、演算R=(Rが実行される。
d)Iは補数をとられる。すなわち、“0”から“1”へ、または“1”から“0”へ値を変える。
e)Iについてテスト演算が繰り返され、I=0の場合、演算R=R*Xが実行され、I=1の場合、演算R=R*Xが実行される。
f)Y(i)が1に等しい場合、Iは補数をとられ、Y(i)が0に等しい場合、Iは不変に保たれる。
【0021】
このように、Yがどのような値でも、SQU演算およびMUL演算は常に実行される。ゆえに、ステップdにおいて、次の2つの署名の1つが存在する。S(R=SQU(R))またはS(R=SQU(R))。
また、ステップfにおいて、次の2つの署名の1つが存在する。S(R=MUL(R,X))またはS(R=MUL(R,X))。
ステップcの署名は等しくなる。なぜならば、これらは同一のオペランドを用い、そして同一演算(SQU)を実行するからである。
ステップeの署名は等しくなる。なぜならば、これらは同一のオペランドを用い、そして同一演算(MUL)を実行するからである。
従って、値Yに遡ることはもはや不可能であり、演算(SQU)および(MUL)の連続となる。本発明のアプリケーションは、モジュラべき乗演算アルゴリズムを必要とする公開鍵アルゴリズムを用いる電子構成品において保護された方式でモジュラべき乗演算を実行することを可能にする。
【0022】
従来のアルゴリズムBを用いる本発明のアルゴリズムは、初期設定ステップである以下のステップaおよびb、そしてk回(kはYのサイズである)実行される以下の計算ステップc、d、およびeにより実行されることから成る。
a)R=1およびZ=X初期化し、
b)I=0初期化する。
Yの2進表現のY(i)のビットごとに、3つのステップc、d、およびeが実行される。iは“0”から“k−1”まで変わり、Yの2進表現は最下位ビットY(0)から最上位ビットY(k−1)まで推移する。
c)演算Z:=Zが実行され、
d)I=0の場合、演算R:=R*Zが実行され、I=1の場合、演算R:=R*Zが実行される。
e)Y(i)=0の場合、Iは不変に保たれ、Y(i)=1の場合、Iは補数をとられる。
【0023】
このように、Yがどのような値でも、SQU演算およびMUL演算は常に実行される。ゆえに、ステップcにおいて署名S(SQU)が存在する。
ステップdにおいて、S(R=MUL(R,Z))またはS(R=MUL(R,Z))の2つの署名の1つが存在する。ステップdの署名は等しくなる。なぜならば、これらは同一のオペランドを用い、そして同一の演算(MUL)を実行するからである。
【0024】
従って、値Yに遡ることはもはや不可能であり、演算(SQU)と(MUL)の連続となる、本発明のアプリケーションは、モジュラべき乗演算アルゴリズムを必要とする公開鍵アルゴリズムを用いる電子構成品において保護方式でモジュラべき乗演算を実行することを可能にする。
本発明の例として、シュノール・アンド・エルガマル(SchnorrおよびE1 Gamal)署名アルゴリズムの変形であるDSA(ディジタル署名アルゴリズム)が使用される。
【0025】
ステップmに署名するために、次のステップが実行される。
1)乱数kの生成
2)r=(gmodp)modqの計算、ここでg、p、およびqはチップカードの外の世界に知られている公開整数である。
3)s=(K−1(H(m)+xr))modqの計算、ここでH()はチョッピング関数であり、xは公開鍵である。
ペア(r,s)はメッセージmの署名に対応する。
Kは秘密であることを注記する。
ステップ2は部分的にモジュラ冪法から成る。
r’=gmodpおよびr=r’modq
【0026】
モジュラ冪法が上記のような従来のアルゴリズムAまたはBとともに実行される場合、SPAアタックは値kに遡ることを可能にしてしまう。kが判明し、かつ、s、mおよびrが分かっているので、アタッカーは秘密鍵xを計算することが可能となる。こうして、アタッカーは署名の鍵を見つけ出し、システムは破壊される。ゆえに、本例のステップ2のモジュラ冪法を実行するために、本発明あるいは本発明の別形態を用いることが望ましい。
【0027】
このように、本発明においては、アルゴリズムを計算する方法が、電流消費を調べることでkを見つけ出すことを不可能にするため、アタッカーは秘密鍵xの値に遡ることができない。

Claims (5)

  1. 数式R=X mod Nにより定義されるモジュラべき乗演算アルゴリズムを実行する、メッセージ暗号化または解読方法であって、
    前記Yはkビットのサイズを有する指数であり、前記メッセージ暗号化方法では公開暗号指数であり、前記メッセージ解読方法では秘密解読指数であり、
    前記Nはk'ビットのサイズを有する法であり、
    前記Xはk”ビットのサイズを有する既知の変数であり、前記メッセージ暗号化方法では暗号化すべきメッセージであり、前記メッセージ解読方法では暗号化されたメッセージであり、
    前記Rはモジュラべき乗演算の結果であり、かつk'ビットのサイズを有し、前記メッセージ暗号化方法では暗号化されたメッセージであり、前記メッセージ解読方法では解読されたメッセージであり、
    前記メッセージ暗号化または解読方法は、
    前記モジュラべき乗演算アルゴリズムにおいてレジスタR1およびR2および結果が前記レジスタR1にあるときには0を示し、結果が前記レジスタR2にあるときには1を示すインジケータIを使用するステップと、
    マイクロプロセッサを使用して前記モジュラべき乗演算アルゴリズムを実行するステップとを含み、
    前記アルゴリズムは、以下の実行ステップ、つまり初期設定ステップと呼ばれるステップaおよびb、つまり、
    a)前記レジスタR1を1に、レジスタZをXに初期化するステップと、
    b)前記インジケータ0に初期化するステップと、
    また、計算ステップと呼ばれるステップc、d、およびe、つまり、
    iが“0”から“k−1”まで変わる、したがってYの2進表現が最下位ビットY(0)から最上位ビットY(k−1)まで推移するYの2進表現のY(i)の各ビットに対して、
    c)前記レジスタZの値を自乗して格納する演算Z:=Zを実行するステップと、
    d)前記インジケータIが0を示す場合、前記レジスタR1の値と前記レジスタZの値とを乗算して前記レジスタR2に格納する演算R:=R*Zを実行し、また、前記インジケータIが1を示す場合、前記レジスタR2の値と前記レジスタZの値とを乗算して前記レジスタR1に格納する演算R:=R*Zを実行するステップと、
    e)Y(i)=0の場合、前記インジケータの値を不変に保ち、Y(i)=1の場合、前記インジケータの値の補数をとるステップとを含むことを特徴とするメッセージ暗号化または解読方法。
  2. 数式R=X mod Nにより定義されるモジュラべき乗演算アルゴリズムを実行する、メッセージ暗号化または解読方法であって、
    前記Yはkビットのサイズを有する指数であり、前記メッセージ暗号化方法では公開暗号指数であり、前記メッセージ解読方法では秘密解読指数であり、
    前記Nはk'ビットのサイズを有する法であり、
    前記Xはk”ビットのサイズを有する既知の変数であり、前記メッセージ暗号化方法では暗号化すべきメッセージであり、前記メッセージ解読方法では暗号化されたメッセージであり、
    前記Rはモジュラべき乗演算の結果であり、かつk'ビットのサイズを有し、前記メッセージ暗号化方法では暗号化されたメッセージであり、前記メッセージ解読方法では解読されたメッセージであり、
    前記メッセージ暗号化または解読方法は、
    前記モジュラべき乗演算アルゴリズムにおいてレジスタR1およびR2および結果が前記レジスタR1にあるときには0を示し、結果が前記レジスタR2にあるときには1を示すインジケータIを使用するステップと、
    マイクロプロセッサを使用して前記モジュラべき乗演算アルゴリズムを実行するステップとを含み、
    前記アルゴリズムは、以下の実行ステップ、つまり初期設定ステップと呼ばれるステップaおよびb、つまり、
    a)前記レジスタR1を1に初期化するステップと、
    b)前記インジケータ0に初期化するステップと、
    また、計算ステップと呼ばれるステップc、d、e、およびf、つまり、
    iが“k−1”から“0”まで変わる、したがってYの2進表現が最上位ビットY(k−1)から最下位ビットY(0)まで推移するYの2進表現のY(i)の各ビットに対して、
    c)前記インジケータIが0を示す場合に、前記レジスタR1の値を自乗して前記レジスタR2に格納する演算R=(Rを実行し、前記インジケータIが1を示す場合に、前記レジスタR2の値を自乗して前記レジスタR1に格納する演算R=(Rを実行するステップと、
    d)ステップcのどちらの場合でも、前記インジケータの値の補数をとる、つまり、“0”から“1”へ、または“1”から“0”へ値を変えるステップと、
    e)前記インジケータIについてテスト演算を繰り返し、前記インジケータIが0を示す場合、前記レジスタR1の値とXとを乗算して前記レジスタR2に格納する演算R=R*Xを実行し、前記インジケータIが1を示す場合、前記レジスタR2の値とXとを乗算して前記レジスタR1に格納する演算R=R*Xを実行するステップと、
    f)Y(i)が1に等しい場合、前記インジケータの値の補数をとるステップと、Y(i)が0に等しい場合、前記インジケータの値を不変に保つステップとを含むことを特徴とするメッセージ暗号化または解読方法。
  3. レジスタR1およびR2と、インジケータIと、マイクロプロセッサとを含む電子構成品であって、
    前記電子構成品は請求項1または2に記載の方法を実行することを特徴とする電子構成品。
  4. 請求項3に記載の電子構成品において、チップカードタイプのポータブル電子機器であることを特徴とする電子構成品。
  5. レジスタR1およびR2と、インジケータIと、マイクロプロセッサとを含む電子端末装置であって、
    前記電子端末装置は請求項1または2に記載の方法を実行することを特徴とする電子端末装置。
JP2001555318A 2000-01-26 2001-01-18 公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム Expired - Fee Related JP3878853B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR00/01333 2000-01-26
FR0001333A FR2804225B1 (fr) 2000-01-26 2000-01-26 Algorithme d'exponentiation modulaire dans un composant electrique mettant en oeuvre un algorithme de chiffrement a cle publique
PCT/FR2001/000166 WO2001055838A2 (fr) 2000-01-26 2001-01-18 Algorithme d'exponentation modulaire dans un composant electronique mettant en oeuvre un algorithme de chiffrement a cle publique

Publications (2)

Publication Number Publication Date
JP2003521010A JP2003521010A (ja) 2003-07-08
JP3878853B2 true JP3878853B2 (ja) 2007-02-07

Family

ID=8846598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001555318A Expired - Fee Related JP3878853B2 (ja) 2000-01-26 2001-01-18 公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム

Country Status (9)

Country Link
US (1) US7174016B2 (ja)
EP (1) EP1254408B1 (ja)
JP (1) JP3878853B2 (ja)
CN (1) CN1397035A (ja)
AU (1) AU2001235547A1 (ja)
DE (1) DE60100992T2 (ja)
FR (1) FR2804225B1 (ja)
MX (1) MXPA02006801A (ja)
WO (1) WO2001055838A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
TW586086B (en) * 2002-12-27 2004-05-01 Ind Tech Res Inst Method and apparatus for protecting public key schemes from timing, power and fault attacks
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
FR2887351A1 (fr) * 2005-06-16 2006-12-22 St Microelectronics Sa Protection d'un calcul d'exponentiation modulaire effectue par un circuit integre
FR2972064B1 (fr) * 2011-02-25 2013-03-15 Inside Secure Procede de cryptographie comprenant une operation d'exponentiation
EP2793123A1 (en) * 2013-04-16 2014-10-22 Gemalto SA Method to securely execute a modular exponentiation
CN103441843B (zh) * 2013-07-26 2016-09-21 北京华大信安科技有限公司 Rsa算法私钥元素获取方法及获取装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064740A (en) * 1997-11-12 2000-05-16 Curiger; Andreas Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
ATE418099T1 (de) * 1998-06-03 2009-01-15 Cryptography Res Inc Gesicherte moduläre potenzierung mit leckminimierung für chipkarten und andere kryptosysteme

Also Published As

Publication number Publication date
CN1397035A (zh) 2003-02-12
AU2001235547A1 (en) 2001-08-07
EP1254408A2 (fr) 2002-11-06
WO2001055838A2 (fr) 2001-08-02
FR2804225B1 (fr) 2002-05-03
WO2001055838A3 (fr) 2001-12-20
JP2003521010A (ja) 2003-07-08
EP1254408B1 (fr) 2003-10-15
DE60100992T2 (de) 2004-11-11
US7174016B2 (en) 2007-02-06
US20030053621A1 (en) 2003-03-20
MXPA02006801A (es) 2002-10-23
DE60100992D1 (de) 2003-11-20
FR2804225A1 (fr) 2001-07-27

Similar Documents

Publication Publication Date Title
Yen et al. Power analysis by exploiting chosen message and internal collisions–vulnerability of checking mechanism for RSA-decryption
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
JP4671571B2 (ja) 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
US6298135B1 (en) Method of preventing power analysis attacks on microelectronic assemblies
JP4668931B2 (ja) 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置
US20090092245A1 (en) Protection Against Side Channel Attacks
US20050152541A1 (en) Tamper-proof elliptic encryption with private key
WO2018017421A1 (en) Modular exponentiation with side channel attack countermeasures
EP3596876B1 (en) Elliptic curve point multiplication device and method for signing a message in a white-box context
US20060098814A1 (en) Method for communicating securely over an insecure communication channel
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
JP5365624B2 (ja) 電力解析攻撃への対策機能を備えた復号装置、プログラム、及び復装置を組み込んだ組込機器装置
JP2002540483A (ja) 楕円曲線型公開鍵暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
EP2005291A2 (en) Decryption method
JP2010164904A (ja) 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法
GB2399904A (en) Side channel attack prevention in data processing by adding a random multiple of the modulus to the plaintext before encryption.
JP2002261751A (ja) 暗号処理方法
JP3878853B2 (ja) 公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム
US7983415B2 (en) Method for performing iterative scalar multiplication which is protected against address bit attack
JP2008525834A (ja) 暗号用の安全かつコンパクトな累乗方法
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
Smart Physical side‐channel attacks on cryptographic systems
JPH11296075A (ja) メッセ―ジ符号化方法及び暗号解析装置
Okeya et al. Security analysis of CRT-based cryptosystems
JP2008141385A (ja) 暗号方法、暗号装置および暗号プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060404

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060808

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060913

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: 20061023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061106

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: 20101110

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131110

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S631 Written request for registration of reclamation of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313631

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

Free format text: PAYMENT UNTIL: 20131110

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees