JP2011530093A - 累乗法による暗号化を保護する解決策 - Google Patents
累乗法による暗号化を保護する解決策 Download PDFInfo
- Publication number
- JP2011530093A JP2011530093A JP2011521538A JP2011521538A JP2011530093A JP 2011530093 A JP2011530093 A JP 2011530093A JP 2011521538 A JP2011521538 A JP 2011521538A JP 2011521538 A JP2011521538 A JP 2011521538A JP 2011530093 A JP2011530093 A JP 2011530093A
- Authority
- JP
- Japan
- Prior art keywords
- mod
- rsa
- integer
- message
- modr
- 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
- 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
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)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本発明は、侵入型攻撃に対して冪剰余x=mDmodNの計算を保護する方法および電子装置に関する。本発明は、メッセージmにマスクを適用すること、および冪剰余が実行された後に、マスクによって導入された特性のおかげで累乗が変更されなかったことを認証することを含む。
Description
本発明は、Bellcore攻撃などの侵入型攻撃に対して冪剰余の実行を保護する方法に関する。本発明はまた、そのような方法を実装する電子装置、特にスマートカードにも関する。
本発明は、より具体的には、RSA−CRTシステムのコンテキストで使用される冪剰余の保護に関する。RSAは、1977年にRivest、Shamir、およびAdlemanによって導入された(直接的モードのRSAを記載している「Rivest,R.L.,Shamir,A.,Adelman,L.M.:A Method for obtaining digital signatures and public−key cryptosystems.Technical Report MIT/LCS/TM−82(1977)」を参照)。RSAの使用は、非常に広まっている(通常、ウェブサイトに安全に接続するとき、バンクカードを使用するときなどはいつもRSAを使用している)。
いわゆる直接モードにおいて、(N,e)はRSA公開鍵および(N,d)はRSA秘密鍵であって、N=p*qとなり、ここでpおよびqは大きい素数整数、gcd((p−1),e)=gcd((q−1),e)=1、およびd=e−1mod((p−1)*(q−1))である。メッセージm<NのRSA署名は、S=mdmodNによって与えられる。
暗号化対応アーキテクチャの計算能力が向上するにつれて、RSA鍵サイズは時間超過するほど膨れあがっている。2K−RSA(2048ビット鍵を使用するRSA)が、現在では標準的な機能である。プロセッサが通常はほとんどRAMメモリを持たず、数メガヘルツのクロック周波数で動作する組み込み装置にとって、これは強い制約である。RSAは、直接的モードよりも中国の剰余定理モードにおいて、より有効である。RSA−CRTドメインは、RSA公開鍵(N,e)およびRSA秘密鍵(p,q,dp,dq,iq)からなり、ここでN=p*q、pおよびqは大きい素数整数、gcd((p−1),e)=gcd((q−1),e)=1、dp=e−1mod(p−1)、dq=e−1mod(q−1)、およびiq=q−1modpである。RSA係数サイズの半分のデータを扱うので、CRTを利用するRSAは、理論的には約4倍の速度であり、したがって組み込み機器により適している。CRTモードでのRSA署名の単純なCRT実装は、図1に記載されている。
ハードウェア機器上の侵入型攻撃は通常、装置の予想される挙動を中断すること、および影響を受けやすいデータを推測するために異常動作させることからなる。このような攻撃は、90年代後半に導入された。これらにより、通常は安全であると考えられているスマートカード、HSMなどの暗号装置に保存された鍵素材を攻撃者に回復させることができるので、これらは深刻な問題である。これにより、攻撃者は正当なユーザになりすますことができる(たとえばユーザの口座から金融取引を行う、ユーザの電話回線を使用する、ユーザの名義で違法行為を行うなど)。侵入型攻撃の負担を伴わずに、純粋なソフトウェア手段でコンピュータを破壊する、より簡単な方法が通常はたくさんあるので、過去にはこのような攻撃は、パーソナルコンピュータにとって深刻であるとは考えられていなかった。しかしながら、増加する詐欺のため、およびTPM(信頼済みプラットフォームモジュール、その仕様はTrusted Computing Groupによって管理される)などの部品の登場により、これが変化することができた。TPMは、可能性のある全ての製品の分類(PDA、プリンタ、携帯電話など)に安全な暗号機能を導入するように意図され、特に企業向けPCで、またあらゆる種類の電子装置でも、ますます一般的になっている。そのため侵入型攻撃は、今や暗号装置または安全性の高いコンピュータ(たとえば高感度のサーバ)のみならず、以前よりもはるかに多くの装置にとって脅威となっている。ハードウェア製造者の技術的対応が展開されるにつれ、新たなハードウェア解決策が定期的に追加されている。しかしながら、これらは有効なソフトウェア対策が組み込まれている場合にのみ有効となり得ることは、広く信じられている。攻撃者がハードウェアを完全に手中に収めたとき、組み込み機器はこの種の攻撃に特に曝される。侵入型攻撃の典型的な例は、1つの偽署名に与えられたRSA秘密鍵を攻撃者に回復させる、当初のBellcore攻撃である。
Bellcore攻撃は、1996年にBellcore Instituteによって導入された差分故障攻撃である。これは、「Boneh,D.,Demillo,R.A.,Lipton,R.J.:On the importance of checking cryptographic protocols for faults.Lecture Notes in Computer Science 1233(1997)37〜51」に記載されている。組み込みプラットフォーム上では、攻撃者は装置に完全にアクセスできるので、この攻撃は、通常は「容易」だと考えられる。Sp=mdpmodpまたはSq=mdqmodqのいずれかの計算(図1に示されるステップ)の中断は、電圧グリッチ、レーザー、または温度変化などの方法で実現されることが可能である。一旦正確な中断が得られると攻撃は成功し、攻撃者は単一のgcd計算でRSA素因数を回復することができるようになる。実際、構造的に、S=Sq+q*(iq *(Sp−Sq)modp)=Sp+p*(ip *(Sq−Sp)modq)である。正しい署名Sおよび偽の署名S’に注目すると、ここでSpまたはSqのいずれか(ただし両方ではない)は同じ入力メッセージに対して不正であるが、gcd(S−S’,N)はqまたはpのいずれかである。Bellcore攻撃の標準的な改善は、「Joye,M.,Lenstra,A.K.,Quisquater,J.J.:Chinese remaindering based cryptosystems in the presence of faults.Journal of Cryptology:the journal of the International Association for Cryptologic Research 12(4)(1999)241〜245」に記載されており、pまたはqとなるgcd((S’e−m)modN,N)を計算することによって、本物の署名がなくてもNの因数分解を回復できるようにする。このように、RSA秘密要素pおよびqが回復され、その結果、RSA−CRT秘密鍵全体が回復される。
Bellcoreによって導入されたような故障攻撃は、たとえばRSA署名の目的などで、冪剰余を実装する暗号製品にとって、やはり大きな脅威である。公開指数が知られると、出力する前に署名を認証することができ、それによってBellcore攻撃を防止する。しかしながら、ほとんどの場合は組み込み機器上で、公開指数は知られておらず、故障攻撃への耐性を複雑な問題にしている。
Bellcore攻撃の発見以来、研究団体によって解決策が提案されてきた。1997年には、Shamirが、CRTモードでRSA署名生成を実行している時に秘密指数dが知られると仮定して、洗練された解決策を提案した(EUROCRYPT’97のランプセッションでも発表された、1999年11月の米国特許第5,991,415号明細書、「Shamir,A.:Method and apparatus for protecting public key schemes from timing and fault attacks」に記載)。しかしながら実際には、このパラメータはほとんど利用できない。RSAのCRT安全実装も提案された:
2002年、Aumullerらによる(Aumuller,C.,Bier,P.,Fischer,W.,Hofreiter,P.,Seifert,J.P.:Fault attacks on rsa with crt:Concrete results and practical countermeasures.In B.S.Kaliski Jr.,c.K.,Paar,C.,eds:Cryptographic Hardware and Embedded Systems−CHES 2002.Volume 2523 of Lecture Notes in Computer Science.(2002)260〜275)
2003年、Blomerらによる(Blomer,J.,Otto,M.,Seifert,J.P.:A new crt−rsa algorithm secure against bellcore attacks.In:CCS’03:Proceedings of the 10th ACM conference on Computer and communications security,New York,NY,USA,ACM(2003)311〜320)、
2005年、JoyeおよびCietによる(Joye,M.,Ciet,M.:Practical fault countermeasures for chinese remaindering based rsa.In Breveglieri,L.,Koren,I.,eds.:2nd Workshop on Fault Diagnosis and Tolerance in Cryptography−FDTC 2005.(2005))
2005年、Giraudによる(Giraud,C:Fault resistant rsa implementation.In Breveglieri,L.,Koren,I.,eds.:2nd Workshop on Fault Diagnosis and Tolerance in Cryptography−FDTC 2005.(2005)142〜151)、および
2007年、KimおよびQuisquaterによる(Kim,C.H.,Quisquater,J.J.:How can we overcome both side channel analysis and fault attacks on rsa−crt? In Breveglieri,L.,Gueron,S.,Koren,I.,Naccache,D.,Seifert,J.P.,eds.:FDTC.(2007)21〜29)
2002年、Aumullerらによる(Aumuller,C.,Bier,P.,Fischer,W.,Hofreiter,P.,Seifert,J.P.:Fault attacks on rsa with crt:Concrete results and practical countermeasures.In B.S.Kaliski Jr.,c.K.,Paar,C.,eds:Cryptographic Hardware and Embedded Systems−CHES 2002.Volume 2523 of Lecture Notes in Computer Science.(2002)260〜275)
2003年、Blomerらによる(Blomer,J.,Otto,M.,Seifert,J.P.:A new crt−rsa algorithm secure against bellcore attacks.In:CCS’03:Proceedings of the 10th ACM conference on Computer and communications security,New York,NY,USA,ACM(2003)311〜320)、
2005年、JoyeおよびCietによる(Joye,M.,Ciet,M.:Practical fault countermeasures for chinese remaindering based rsa.In Breveglieri,L.,Koren,I.,eds.:2nd Workshop on Fault Diagnosis and Tolerance in Cryptography−FDTC 2005.(2005))
2005年、Giraudによる(Giraud,C:Fault resistant rsa implementation.In Breveglieri,L.,Koren,I.,eds.:2nd Workshop on Fault Diagnosis and Tolerance in Cryptography−FDTC 2005.(2005)142〜151)、および
2007年、KimおよびQuisquaterによる(Kim,C.H.,Quisquater,J.J.:How can we overcome both side channel analysis and fault attacks on rsa−crt? In Breveglieri,L.,Gueron,S.,Koren,I.,Naccache,D.,Seifert,J.P.,eds.:FDTC.(2007)21〜29)
これらの解決策は、後により詳細に説明される。これらの解決策は全て、実行時間、メモリ消費量、または個人化管理制約のいずれかに対して、劇的な影響を有する。
Bellcore攻撃の発見の1年後にShamirによって提案された、洗練された解決策は、
再結合の保護を含むShamirの方法のその他の改善は、後に提案された。一例として、上記の参考文献の中で、Aumullerらは2002年にCRT再結合も保護する慎重な実装を提案した。Aumullerらは、オイラーのトーティエント関数の評価が自明な、小さい素数を使用する。一方では、この解決策は良好な性能を与える。他方では、無作為の素数の選択が現実の不都合を構成する。Shamirの方法とは対照的に、dpおよびdqのみ(dではなく)が必要とされる。アルゴリズムは、図2に全て記載されている。提案は、パラメータtが素数である方法の効率的な変形を使用する。したがって、解決法は良好な性能を与える。RSAの単純なCRT実装と比較すると、わずか2つの付加的な累乗モジュロtおよびわずかなモジュラー簡約(reductions)のみが必要とされる。しかしこの解決法は、無作為の素数が選択される方法に関連する大きな欠点がある。これが固定されていたり、固定表から無作為に選択されたりすると、この素数が回復された場合、新たな弱点を表す可能性がある。装置ごとに異なれば、これは個人化管理に影響を与える。各署名に対して無作為に生成される場合には、許容不可能な減速を招く。
Shamirの方法の一般化と伝染計算とを組み合わせた、その他の解決法が提案された。この組合せの主旨は、偽の署名S’、すなわちS’≠SmodpおよびS’≠Smodqにおいてgcd攻撃が不可能となるように、故障が誘発されたらすぐに署名Sを感染させることからなる。この考えは、2001年にYen、Kim、Lim、およびMoonによって導入された(Yen,S.M.,Kim,S.,Lim,S.,Moon,S.:Rsa speedup with residue number system immune against hardware fault cryptanalysis.In:ICISC’01:Proceedings of the 4th International Conference Seouls on Information Security and Cryptology,London,UK,Springer−Verlag(2002)397〜413)。後に、Blomer、Otto、およびSeifertが、2003年に(既に上述された)伝染計算に基づく解決策を提案した。残念ながら、Shamirの当初の方法については、dの利用可能性を必要とする。さらに、解決策に要するいくつかのパラメータt1およびt2は、かなり強力な特性を満たす必要がある:必要とされる特性の中でも、gcd(t1,t2)=gcd(d,φ(t1))=gcd(d,φ(t2))=1でなければならず、ここでφはオイラーのトーティエント関数を表す。t1およびt2は通常は、RSA鍵、および鍵の寿命を通じて使用される同じ値とともに一度だけ生成されるべきであるが、しかしt1およびt2は一般的に、強力な個人化制約のあるコンテキストに保存されることはできない。したがって、各署名におけるt1およびt2の生成は、無視できない。Aumullerらの解決策と比較すると、BOSアルゴリズムは、t1およびt2の生成、t1およびt2のトーティエント関数φの2つの評価、および2つの反転を必要とする。これは、簡潔さおよび実行時間の観点から、重要な欠点を構成する。
JoyeおよびCietは、伝染計算に基づく洗練された解決策を打ち出した(上記参考文献を参照)。Aumullerらの解決策と比較すると、2つの乱数t1およびt2についてφ(t1)およびφ(t2)を計算するだけでよいので、彼らによるShamirの方法の一般化は、BOSよりも効率的である。しかしながら、これらはt1およびt2の完全な因数分解を示唆しているので、評価は無視できないものである。結果として、JoyeおよびCietの解決策は、実行時間の観点から満足のいくものではない。
2007年に、KimおよびQuisquaterは、Shamirの方法および伝染計算の組合せにも基づいて、RSA無効化故障攻撃および全ての知られているサイドチャネル攻撃のCRT実装を提案した(上記参考文献を参照)。しかしながら、各署名で彼らが提案した方式は、1つの反転モジュロNか、またはサイズ|N|の3つの異常にフォーマットされたパラメータを更新および保存することのいずれかを必要とする。残念ながら、そのようなパラメータの鍵コンテナは、典型的な資源制約のある装置の不揮発性メモリにおいては一般的に入手可能なものはなく、したがって、パラメータは一般的に毎回計算されなくてはならず、この解決法は、実行時間の観点からほとんど許容できなくなってしまう。
2005年には、Giraudが、故障攻撃に対してCRTでRSAを保護する有効な方法を提案した(上記参考文献を参照)。彼の解決策は、モンゴメリ−ラダー累乗法アルゴリズムの特性に基づいており、これは具体的には、Joye,M.,Yen,S.:The montgomery powering ladder.In B.S.Kaliski Jr.,c.K.,Paar,C,eds.:Cryptographic Hardware and Embedded Systems−CHES 2002.Volume 2523 of Lecture Notes in Computer Science.(2002)291〜302に記載されている。この累乗法アルゴリズムを使用して、Giraudは、
Rivest,R.L.,Shamir,A.,Adelman,L.M.:A Method for obtaining digital signatures and public−key cryptosystems.Technical Report MIT/LCS/TM−82(1977)
Boneh,D.,Demillo,R.A.,Lipton,R.J.:On the importance of checking cryptographic protocols for faults.Lecture Notes in Computer Science 1233(1997)37〜51
Joye,M.,Lenstra,A.K.,Quisquater,J.J.:Chinese remaindering based cryptosystems in the presence of faults.Journal of Cryptology:the journal of the International Association for Cryptologic Research 12(4)(1999)241〜245
Aumuller,C.,Bier,P.,Fischer,W.,Hofreiter,P.,Seifert,J.P.:Fault attacks on rsa with crt:Concrete results and practical countermeasures.In B.S.Kaliski Jr.,c.K.,Paar,C.,eds:Cryptographic Hardware and Embedded Systems−CHES 2002.Volume 2523 of Lecture Notes in Computer Science.(2002)260〜275
Blomer,J.,Otto,M.,Seifert,J.P.:A new crt−rsa algorithm secure against bellcore attacks.In:CCS’03:Proceedings of the 10th ACM conference on Computer and communications security,New York,NY,USA,ACM(2003)311〜320
Joye,M.,Ciet,M.:Practical fault countermeasures for chinese remaindering based rsa.In Breveglieri,L.,Koren,I.,eds.:2nd Workshop on Fault Diagnosis and Tolerance in Cryptography−FDTC 2005.(2005)
Giraud,C:Fault resistant rsa implementation.In Breveglieri,L.,Koren,I.,eds.:2nd Workshop on Fault Diagnosis and Tolerance in Cryptography−FDTC 2005.(2005)142〜151
Kim,C.H.,Quisquater,J.J.:How can we overcome both side channel analysis and fault attacks on rsa−crt? In Breveglieri,L.,Gueron,S.,Koren,I.,Naccache,D.,Seifert,J.P.,eds.:FDTC.(2007)21〜29
Joye,M.,Paillier,P.:Gcd−free algorithms for computing modular inverses.In B.S.Kaliski Jr.,c.K.,Paar,C.,eds.:CHES.(2003)243〜253
Yen,S.M.,Kim,S.,Lim,S.,Moon,S.:Rsa speedup with residue number system immune against hardware fault cryptanalysis.In:ICISC’01:Proceedings of the 4th International Conference Seouls on Information Security and Cryptology,London,UK,Springer−Verlag(2002)397〜413
Joye,M.,Yen,S.:The montgomery powering ladder.In B.S.Kaliski Jr.,c.K.,Paar,C,eds.:Cryptographic Hardware and Embedded Systems−CHES 2002.Volume 2523 of Lecture Notes in Computer Science.(2002)291〜302
Sun Microsystems Inc.:Javacard 2.2.2−application programming interface.Technical report(2006)
過去数年間にわたり、このために安全な実装のためのいくつかの技術が公開されてきたが、これらは全て特定の組み込みプラットフォームが直面する制約による不十分さに悩まされてきた。
実際に、制約のある組み込みアーキテクチャにおいて、通常は、少なくとも以下を同時に最適化しようとする:
実行時間
安全なRSA−CRT署名計算は、妥当な時間内で実行されなければならない。明確な範囲を与えずに解決策によって追加された時間オーバーヘッドは、全体的なRSA署名計算と比較して、可能な限り小さいままにすべきである。これは、特にわずか数メガヘルツのクロック周波数で動作するマイクロコントローラにとって、非常に重要である。
実行時間
安全なRSA−CRT署名計算は、妥当な時間内で実行されなければならない。明確な範囲を与えずに解決策によって追加された時間オーバーヘッドは、全体的なRSA署名計算と比較して、可能な限り小さいままにすべきである。これは、特にわずか数メガヘルツのクロック周波数で動作するマイクロコントローラにとって、非常に重要である。
メモリ消費量
解決策は、セキュリティパラメータを保存するために、余分なRAMメモリバッファを必要とする。2K RSAが標準的な機能として一般的にサポートされ、現在の装置、特にあまり性能の良くない物(たとえば低価格スマートカード)では、総メモリ消費量が1Kbから2Kb(キロバイト)の間のままであることが好ましい。
解決策は、セキュリティパラメータを保存するために、余分なRAMメモリバッファを必要とする。2K RSAが標準的な機能として一般的にサポートされ、現在の装置、特にあまり性能の良くない物(たとえば低価格スマートカード)では、総メモリ消費量が1Kbから2Kb(キロバイト)の間のままであることが好ましい。
個人化管理
数百万人によって展開されるスマートカードなどの制約のある装置にとって、および各スマートカードが異なる場合には、個人化は、各スマートカードに含まれる、関連のある(かつ通常は異なる)情報(カードの持ち主の名前、銀行口座番号、特定のデータなど)をロードすることからなるタスクである。多くの分野において、いくつかの個人化態様は、公的機関または事実上のいずれかによって、標準化される。たとえば、携帯電話で使用されるSIMカードのファイルシステムは、相互運用性の許容可能なレベルを保証するために高度に標準化されている(ほとんどのSIMカードも、ほとんどの携帯電話においても動作する)。このような標準化は、とりわけ制約された装置に暗号素材が保存される方法に関わることが多い。したがって、入力鍵パラメータの利用可能性は、非常に厳しい制約である。頻繁に、RSA操作のため、RSA署名の実行中に、鍵要素p、q、dp、dq、iqを含むCRT分解と同様に、入力メッセージmのみが知られ、標準に準拠したままにしたい場合には、不揮発性メモリに余分な可変パラメータは保存されなくてもよい。このような制約は、大量生産要件にも起因しており、その場合に装置内で異常にフォーマットされた鍵の個人化は高価であって、そのため古典的なRSA−CRT鍵セットとは異なるものを保存するために、不揮発性メモリ(たとえばEEPROMまたはフラッシュ)において、カスタマイズ可能な鍵コンテナは通常利用可能ではなく、この一例は、「Sun Microsystems Inc.:Javacard 2.2.2−application programming interface.Technical report(2006)」に記載されている。その他のタイプの鍵セットは、非Java環境(たとえば専用OS、.NET OSなど)において利用可能であるが、これらは通常、同じ種類の制約を有する。
数百万人によって展開されるスマートカードなどの制約のある装置にとって、および各スマートカードが異なる場合には、個人化は、各スマートカードに含まれる、関連のある(かつ通常は異なる)情報(カードの持ち主の名前、銀行口座番号、特定のデータなど)をロードすることからなるタスクである。多くの分野において、いくつかの個人化態様は、公的機関または事実上のいずれかによって、標準化される。たとえば、携帯電話で使用されるSIMカードのファイルシステムは、相互運用性の許容可能なレベルを保証するために高度に標準化されている(ほとんどのSIMカードも、ほとんどの携帯電話においても動作する)。このような標準化は、とりわけ制約された装置に暗号素材が保存される方法に関わることが多い。したがって、入力鍵パラメータの利用可能性は、非常に厳しい制約である。頻繁に、RSA操作のため、RSA署名の実行中に、鍵要素p、q、dp、dq、iqを含むCRT分解と同様に、入力メッセージmのみが知られ、標準に準拠したままにしたい場合には、不揮発性メモリに余分な可変パラメータは保存されなくてもよい。このような制約は、大量生産要件にも起因しており、その場合に装置内で異常にフォーマットされた鍵の個人化は高価であって、そのため古典的なRSA−CRT鍵セットとは異なるものを保存するために、不揮発性メモリ(たとえばEEPROMまたはフラッシュ)において、カスタマイズ可能な鍵コンテナは通常利用可能ではなく、この一例は、「Sun Microsystems Inc.:Javacard 2.2.2−application programming interface.Technical report(2006)」に記載されている。その他のタイプの鍵セットは、非Java環境(たとえば専用OS、.NET OSなど)において利用可能であるが、これらは通常、同じ種類の制約を有する。
コードサイズ
実行可能なコード用にわずかな保存スペースしか有していないマイクロコントローラ上で(通常はROMまたはフラッシュ)、コードサイズは大きな問題である。解決策によって追加された余分なコードサイズは、解決策によって保護される暗号操作(通常は署名)の総コードサイズと比較して、可能な限り小さいままにすべきである。
実行可能なコード用にわずかな保存スペースしか有していないマイクロコントローラ上で(通常はROMまたはフラッシュ)、コードサイズは大きな問題である。解決策によって追加された余分なコードサイズは、解決策によって保護される暗号操作(通常は署名)の総コードサイズと比較して、可能な限り小さいままにすべきである。
これは、Bellcore攻撃を食い止めて組み込みシステムの強い要求を満たすRSAのCRT実装を考案することは難しい問題のままであることを示しており、専門家達は10年以上にわたってこれを解決しようと試みてきたが、成功していない。
したがって、本発明の目的は、資源制約のある装置に適合する、冪剰余(および特にRSA署名)を安全に計算できるようにする、解決策を見出すことである。たとえ豊富な資源があっても、通常はその資源を無駄に浪費したくはないので、このような解決策は、当然ながら、より高性能な装置にも非常に良好に適合する。
本発明およびその利点は、添付図面を参照して、以下の明細書でより詳細に説明され、ここで「エラー!参照元が見つかりません」は単純なRSAのCRT実装を示す。図2はAumullerらによるRSAのCRT実装を示し、図3は本発明の好適な実施形態を示す。
本発明の好適な実施形態による方法において、冪剰余x=mDmodNが計算され、ここでmはメッセージ、Dは指数、およびNは係数である。当該技術分野において知られているように、メッセージmは係数Nより小さくなるべきである。冪剰余は、いずれの整数環
ここで
においても計算可能である。冪剰余は、整数の環または有限フィールドで累乗法を必要とするいずれの暗号システムにも使用可能であり、具体的には:
Diffie−Hellman鍵共有(Diffie,W.,Hellman,M.E.:New directions in cryptography.IEEE Transactions on Information Theory IT−22(6)(1976)644〜654)、
El Gamal暗号解読(El Gamal,T.:A public−key cryptosystem and a signature scheme based on discrete logarithms.In:CRYPTO.(1984)10〜18)、
RSA直接的モード、
Schnorr(Schnorr,C.P.:Efficient signature generation by smart cards.Journal of Cryptology 4(3)(1991)161〜174)、
DSA(National Institute of Standards and Technology:Digital Standard Signature.Federal Information Processing Standards Publications 186(1994))、
KCDSA(Lim,Lee:A study on the proposed korean digital signature algorithm.In:ASIACRYPT:Advances in Cryptology−ASIACRYPT:International Conference on the Theory and Application of Cryptology,LNCS,Springer−Verlag(1998)175〜186)、
その他。
Diffie−Hellman鍵共有(Diffie,W.,Hellman,M.E.:New directions in cryptography.IEEE Transactions on Information Theory IT−22(6)(1976)644〜654)、
El Gamal暗号解読(El Gamal,T.:A public−key cryptosystem and a signature scheme based on discrete logarithms.In:CRYPTO.(1984)10〜18)、
RSA直接的モード、
Schnorr(Schnorr,C.P.:Efficient signature generation by smart cards.Journal of Cryptology 4(3)(1991)161〜174)、
DSA(National Institute of Standards and Technology:Digital Standard Signature.Federal Information Processing Standards Publications 186(1994))、
KCDSA(Lim,Lee:A study on the proposed korean digital signature algorithm.In:ASIACRYPT:Advances in Cryptology−ASIACRYPT:International Conference on the Theory and Application of Cryptology,LNCS,Springer−Verlag(1998)175〜186)、
その他。
しかしながらそれは、CRTを備えるRSAの場合に特に関連がある。
2つのパラメータ、すなわちk、およびRとNとが互いに素となるような整数Rが、使用される。kおよびRは両方とも、好ましくはNよりはるかに小さい。たとえばRは32ビットまたは64ビット長でもよく、その一方でNはたとえば1024ビット長であってもよい。整数kおよびRはいずれの値にも設定可能であるが、ただしRはNと互いに素となるべきである。多くの場合、RがNよりもはるかに短い場合には、NとRは必ず互いに素であるので、素数性を試験する必要なく、いずれのRが選択されることも可能である。たとえば、RSAの場合、Nは、Nのサイズのほぼ半分である2つの大きい素数の積である。したがって、Rはどの素数とも等しくなることが不可能であり(Rは短すぎるため)、そのためRは必ず各素数と互いに素であり(素数性の定義による)、結果的にRはNとも互いに素である。RがNと互いに素であるか否かを事前に知ることができないときには、相互素数性テストを利用することができる。たとえばFermatテスト、Miller−Rabinテスト、Solovay−Strassenテストなど、当該技術分野において多くの素数性テストが知られているが、しかし相互素数性テストを使用する方がより効率がよい。相互素数性テストは、2つの数のgcd(最大公約数)が一方と等しいか否かを検証するテストである。たとえばユークリッドおよびバイナリユークリッド法など、2つの数のgcdを計算する方法はいくつかある。このようなテストは、RおよびNが互いに素か否かを判断するために使用可能であり、そうでない場合には、パラメータRはNと互いに素になるまで変更されるべきである。Rを変更するためには、素数生成に通常使用される技術の1つに依存することが可能である(特にRSA鍵のペアを作成するときに適用される)。たとえば、新たなRは無作為に選択されてもよく、または新たなRは、たとえば関数R=f(R)によって、以前のRから計算されてもよい。非常に単純な関数fの例は、以下を含む。Rが偶数の場合には、Rに/Rから1またはいずれかの奇数を加えるかまたは減じる。Rが奇数の場合には、Rに/Rから2を加えるかまたは減じる(またはいずれかの偶数を加えるかもしくは減じる)。最も単純な方法は、Rが奇数であることを確認し(そうでない場合には1を加え)、その後相互素数性テストがNおよび新たに計算されたRに適合するまで、2を加えることである。
冪剰余の計算は、以下のステップの実装によって侵入型攻撃から保護される。
a.α=1modN、α=0modR、β=0modN、およびβ=1modRとなるようにマスクαおよびマスクβを生成する。マスクαの上記特性は、高い確率でメッセージmの改ざんの検出を可能にするように設計されている。マスクβの上記特性は、高い確率で指数Dの改ざんの検出を可能にするように設計されている。
b.マスクされたメッセージm’=(m*α+k*β)mod(N*R)を計算することによって、マスクαおよびβでメッセージmをマスクする。
c.冪剰余x’=m’Dmod(N*R)を計算する。
d.(x’−kD)modR=0の場合、x=x’modNを出力するか、そうでなければ解決策を適用する。(x’−kD)modR≠0の場合には、マスクは特性(x’−kD)modR=0が認証されるように設計されているので、どこかで侵入型攻撃が発生したに違いない。また、この特性を維持しながらx’の値を変更することは非常に難しいので、何らかの侵入型攻撃が発生した場合には特性はもはや認証されない可能性が非常に高い。したがって、(x’−kD)modR=0の場合には、攻撃がなかった可能性が最も高く、方法は、x=x’modNに等しい、指数の予想された結果を出力することができ、そうでなければ検出された攻撃に応えて解決策を適用するはずである。
a.α=1modN、α=0modR、β=0modN、およびβ=1modRとなるようにマスクαおよびマスクβを生成する。マスクαの上記特性は、高い確率でメッセージmの改ざんの検出を可能にするように設計されている。マスクβの上記特性は、高い確率で指数Dの改ざんの検出を可能にするように設計されている。
b.マスクされたメッセージm’=(m*α+k*β)mod(N*R)を計算することによって、マスクαおよびβでメッセージmをマスクする。
c.冪剰余x’=m’Dmod(N*R)を計算する。
d.(x’−kD)modR=0の場合、x=x’modNを出力するか、そうでなければ解決策を適用する。(x’−kD)modR≠0の場合には、マスクは特性(x’−kD)modR=0が認証されるように設計されているので、どこかで侵入型攻撃が発生したに違いない。また、この特性を維持しながらx’の値を変更することは非常に難しいので、何らかの侵入型攻撃が発生した場合には特性はもはや認証されない可能性が非常に高い。したがって、(x’−kD)modR=0の場合には、攻撃がなかった可能性が最も高く、方法は、x=x’modNに等しい、指数の予想された結果を出力することができ、そうでなければ検出された攻撃に応えて解決策を適用するはずである。
この第一の実施形態の簡素化されたバージョンにおいて、整数kはゼロに等しく、このことはマスクβを計算する必要がないこと、および上記ステップがより簡単であることを意味する。この技術は、実装がより簡単であり、より少ないメモリを必要とし、少し高速であるが、しかしながら、特に攻撃が指数Dのみに影響する場合には、侵入型攻撃を検出する確率が少し低い。したがって、簡素化された方法は、以下のステップを含む:
a.α=1modNおよびα=0modRとなるようにマスクαを生成し、
b.マスクされたメッセージm’=(m*α)mod(N*R)を計算することによって、マスクαでメッセージmをマスクし、
c.冪剰余x’=m’Dmod(N*R)を計算し、
d.x’modR=0の場合、x=x’modNを出力するか、そうでなければ解決策を適用する。
a.α=1modNおよびα=0modRとなるようにマスクαを生成し、
b.マスクされたメッセージm’=(m*α)mod(N*R)を計算することによって、マスクαでメッセージmをマスクし、
c.冪剰余x’=m’Dmod(N*R)を計算し、
d.x’modR=0の場合、x=x’modNを出力するか、そうでなければ解決策を適用する。
先の2つの実施形態の1つによる方法に対応する、第三の好適な実施形態による方法において、αは式α=(1−N*((1/N)modR)mod(N*R)で計算される。当然ながら、たとえばN*Rの倍数を加えることによって、その他の値が使用されることも可能である。
第四の好適な実施形態において、マスクβを利用する上記の実施形態は、式β=(N*((1/N)modR))mod(N*R)でβを計算する。同様に、βにはその他の値が可能である(たとえばN*Rの倍数を加える)。
第五の好適な実施形態において、先の実施形態は、以下のように改良される。冪剰余x’=m’Dmod(N*R)を実行する前に、m=m’modNが認証され、そうでない場合には、解決策が適用される。冪剰余の後にm=m’modNをもう一度認証することも、可能である。攻撃が発生したことがわかっている場合に冪剰余を実行しないために(解決策の結果、通常の出力手段を使用して出力が与えられなくても、これはある程度の情報を漏らす可能性がある)、冪剰余の前にm=m’modNを認証することが有利である。攻撃が気付かれないままである可能性(ハッカーが冪剰余の最中になんとかしてm’を変更してテスト(x’−kD)modR=0をどうにか飛ばすか、またはたとえば侵入型攻撃によって、このテスト(x’−kD)modR=0を適切に認証させるという、ありそうもない状況)を最小限に抑えるために冪剰余の後に(上述のように)もう一度認証することも、理にかなっているかも知れない。m≠m’modNの場合には、メッセージをマスクしている最中またはマスク後に攻撃が発生したに違いない。構造的に、オリジナルメッセージmは、マスクされたメッセージm’モジュロNに等しくなるべきである(単一のマスクαが使用されても、αおよびβの両方のマスクが使用されても)。この等式が認証されない場合には、攻撃があったに違いない(たとえばマスク操作中に誤作動を発生させる)。マスクされたメッセージm’の値が変更され、しかし同時に変更されたオリジナルメッセージmがまだマスクされたメッセージm’モジュロNに等しいように操作を中断させることは、ハッカーにとって非常に難しいので、攻撃が検出される可能性は高い。
第六の好適な実施形態において、先の実施形態の解決策は、必要とされる冪剰余のいずれの結果も出力しないことを含む。その代わりに、たとえば、エラー状態を出力することが可能である。(出力がないため)ハッカーは改ざんされた出力の解析を容易に実行できず、(方法をハッキングしようとする際に)エラーを生成したことが既にわかっているため、エラー状態からあまり有益な情報を推論することができないので、これは有利である。ハッカーが取得できる情報は、方法が彼の攻撃を検出したという事実のみである。あるいは、たとえば、無作為の結果を出力することが可能である。このようにすると、いくつかの数学的特性が、予想される偽出力と一致すべきであったが無作為出力と一致していないことを見出すことが出来ない限り、ハッカーは、彼の攻撃が検出されたか否かさえわからないが、方法中の解決策へのこの予想されない結果を突き止めることは、彼の攻撃中の故障を突き止めることよりも、彼にとって非常に難しい。好適な実施形態において、侵入型攻撃の検出は、侵入型攻撃の回数を計数すること、および計数が所定の閾値に到達した後に冪剰余を計算している実体を遮断することなど、別の解決策を始動させることができる。閾値は1とすることができ、すなわち攻撃が検出されるとすぐに、実体が遮断される。解決策は、関連する実体に攻撃が発生したことを知らせるために記録および/または報告手段を含むこともできる。冪剰余の最中またはその後に改ざん(具体的にはマスクされたメッセージ、または指数、またはその両方の改ざん)を検出するための解決策も、メッセージのマスキングの改ざんを検出するための追加解決策(マスク前、またはマスキング中にメッセージが変更されたか否か、または冪剰余が完了する前にマスクされたメッセージが変更されたか否かを確認するために好適な実施形態に追加された)も、同じ解決策であってもよい。あるいは、たとえば、メッセージのマスキング中に、または冪剰余中などもっと後の段階で、攻撃が検出されたか否かを記録することが可能である。
第七の好適な実施形態において、上述の実施形態は、整数Rに乱数を使用することによって改良される。Rは好ましくは超高性能乱数生成器(RNG)で生成される。このような高性能RNGは、通常はハードウェア手段(チップ内のノイズのサンプリングなど)に、およびハードウェアソースから取得されたシードの後処理(後処理は通常はソフトウェア内で実行可能)に依存する。最初に高性能RNGで中間乱数を生成し、次にこの中間乱数を処理して乱数Rを処理することが可能である(たとえば、その統計的特性をさらに向上させるために中間乱数は暗号プロセッサを通過することができる)。
第八の好適な実施形態において、各冪剰余のために新しい乱数Rを生成することによって、第七の実施形態が改良されている。これは方法の解析をより難しくするので、有利である(ハッカーは決して同じパラメータRを見つけることがなく、これはリバースエンジニアリングをより複雑にする)。
第九の実施形態において、先の実施形態(パラメータkを含まない第二の実施形態を除く)は、以下のように改良される。整数iからなる、別のパラメータが使用される。整数iは、好ましくは2に等しいが、しかしこれより大きくてもよい。比較的小さい数であることが好ましい。整数Rは、R=riとなるように整数rをi乗することによって得られる。整数rは、gcd(N,ri)=gcd(N,r)=1、すなわちNとrとが互いに素となるような、いずれの値を有することもできる。rの長さは、好ましくは予想されるRの長さをiで割った商よりも大きい(たとえば、Rが64ビットを有すると予想され、i=4である場合には、rは好ましくは少なくとも16ビット長となるべきである)。rが予想されるRの長さをiで割った商よりも長いと役に立たないが、長い可能性がある。(たとえば、モジュロを用いて)Rは後に予想される長さまで圧縮されることが可能である。整数Rが、第七または第八の好適な実施形態により、乱数である場合、rは好ましくは高性能RNGで取得され、rのi乗が後処理の形式となり(上述)、したがってRは高性能RNGから得られた乱数であると考えられる。しかしながら、Rは(ith乗根を有するため)いくつかの特性を呈し、そのためおそらくrそのものほど無作為とは考えられないが、しかしその段階で、Rのこのような特性に依存する攻撃は想定されない。riがNと互いに素ではない場合には、条件が合うまで別のrを無作為に選択することができる(しかし上述のように、Rが短いという単純な事実は、たとえばRSA向けなど、多くの場合にRとNを互いに素とする)。値k=1+rに整数kが設定される。これは、さもなければかなり長くなってしまう可能性のあるkDの計算の高速化を可能にするので、非常に有利である。実際、
変形例において、第十の改良型方法が提案されるが、ここで第一、第三、第四、第五、第六、第七、または第九(第九の実施形態が第八の実施形態によって実行されないとき)の実施形態のいずれか1つによる本方法は、秘密指数Dおよび関連する係数Nを用いる方法によって実行される、いくつかの冪剰余(たとえば、係数Nおよび関連する指数Dとともに呼び出される次の32の冪剰余)に、または全ての冪剰余にさえも、数Rおよび整数kを再利用することによって、改良される。方法は、冪剰余のために数セットのパラメータを扱うことができる。たとえば、いくつかのRSA鍵が利用可能であって、どの鍵がRSA署名操作に使用されるかに依存する場合、異なるパラメータNおよびDが使用されることもあり得る(たとえば、重要な事柄には、中級もしくは上級X.509認証に関連するRSA鍵による署名、またはあまり重要ではない日常的な事柄にはより低性能なX.509認証に関する鍵による署名)。そのような場合、異なるパラメータ(たとえばNおよびD)に対しても、同じRおよびkが使用されると決定されてもよい。あるいは、異なるパラメータ(たとえばNおよびD)には異なるRおよびkが使用されてもよいが、しかし与えられたパラメータのセット(たとえばNおよびD)について、Rおよびkは変更されることはないか、またはたまにしか変更されない。この改良バージョンによれば、マスクαおよびβは、値kDmodRと同様に、多くの冪剰余のために一度予備計算される。特にkDmodRを計算することは(αおよびβも)時間がかかり、事前にそれを行うことによって方法の性能が(実行速度の観点から)向上するので、これは有利である。RSAの場合には、NおよびRを含むRSA鍵を生成した直後に、R、k、kDmodR、α、およびβも計算することが可能となり、RSA署名の時には、これらのパラメータR、k、kDmodR、α、およびβはメモリから読み出されるだけでよく、いかなる計算も伴わない。この実施形態はより高速であるが、しかし同じ素材を数回再利用することによって攻撃が容易になるので、当然ながら、各指数に無作為のRを生成するよりもわずかに安全性が劣る。
好適な実施形態において、上記の方法は、図3に示される乱数R1、R2、R3、およびR4などの乱数による内部マスキング操作も含む。
本発明の好適な実施形態のより詳細な説明が、以下に記載される。
指数dモジュロNに対するNよりも小さいメッセージmの一般的な累乗法を検討する。Rがたとえば64ビットの整数乱数である、累乗モジュロNRを実行する。NとRが互いに素、すなわちgcd(N,R)=1であると仮定する。RSAでは、このような乱数がpより小さくqより小さければこの特性が自動的に認証され、64ビットの乱数ではこれに該当する。
αを
中国の剰余定理を適用して、
におけるαおよびβの存在および一意性を得る。Garnerのアルゴリズムを使用して、これらの整数を作る:
α=R・(R−1modN)=1−[N・(N−1modR)]modNR
β=N・(N−1modN)=1−[R・(R−1modN)]modNR
ここでR=r2、ただしrはたとえば32ビットの乱数、となるようにRを検討すると、以下の結果が得られる:
α=R・(R−1modN)=1−[N・(N−1modR)]modNR
β=N・(N−1modN)=1−[R・(R−1modN)]modNR
ここでR=r2、ただしrはたとえば32ビットの乱数、となるようにRを検討すると、以下の結果が得られる:
定理1(
における累乗恒等式)。Nおよびrをgcd(N,r)=1となるような整数とし、β=N・(N−1modr2)およびα=1−βmodNr2とする。いずれの
についてもいずれの
についても、
(αm+β・(1+r))d=αmd+β・(1+dr)modNr2
(αm+β・(1+r))d=αmd+β・(1+dr)modNr2
安全な累乗法アルゴリズム
に対する整数m<Nの累乗mdを実行したい。Nと互いに素な整数乱数rを選択し、β=N・(N−1modr2)およびα=1−βmodNr2を計算する。定理1を適用して、要素mを累乗し、中断が生じないことを確認するために、以下のように処理する:
1.
を計算する、
2.
であることを確認し、不等の場合には「エラー検出」を返す、
3.
およびS=SrmodN(=mdmodN)を計算する、
4.Sr=αS+β・(1+dr)modNr2であることを確認し、不等の場合には「エラー検出」を返す。
におけるβ=β2およびαβ=0の等式のため(αおよびβの構成による)、Srの整合性も、以下の判定のいずれか1つによって確認される:
1.βSr=β・(1+dr)modNr2
2.N・(Sr−β・(1+dr))=0modNr2
3.Sr=1+drmodr2
最適な選択肢は、ハードウェアアーキテクチャおよびアルゴリズムのコンテキストによって異なる。この解決策は、累乗法
に基づくいずれの暗号方式にも適用されてもよい(RSA[9]、Diffie−Hellman鍵共有[14]、ElGamal[15]、・・・)。ここでRSAのCRT実装へのその適用を強調しているが、これは特に関連性があるように思われる。
1.
2.
3.
4.Sr=αS+β・(1+dr)modNr2であることを確認し、不等の場合には「エラー検出」を返す。
1.βSr=β・(1+dr)modNr2
2.N・(Sr−β・(1+dr))=0modNr2
3.Sr=1+drmodr2
最適な選択肢は、ハードウェアアーキテクチャおよびアルゴリズムのコンテキストによって異なる。この解決策は、累乗法
CRTを備えるRSAへの適用
pおよびqは素数なので、rは自動的にpおよびqと互いに素となり、以下のように定義する:βp=p・(p−1modr2)、αp=1−βpmodpr2、βq=q・(q−1modr2)、およびαq=1−βpmodqr2。図3は、CRTを備えるRSAへの解決策の可能な適用を示す。累乗SprおよびSqrが
および
に対して実行される。以下を判定することにより、各累乗が中断されていないことを確認する:
および
2つの64ビットの整数乱数R3およびR4を選択する。その後:
Sprを
に、Sqrを
に、変換する。
次に、結果的に生じた署名が
に再結合される:
そして、最終整合性判定を実行する:
S=R4+qiq・(R3−R4)modr2
全ての確認が正しければ、結果SmodNを返す。
pおよびqは素数なので、rは自動的にpおよびqと互いに素となり、以下のように定義する:βp=p・(p−1modr2)、αp=1−βpmodpr2、βq=q・(q−1modr2)、およびαq=1−βpmodqr2。図3は、CRTを備えるRSAへの解決策の可能な適用を示す。累乗SprおよびSqrが
Sprを
次に、結果的に生じた署名が
S=R4+qiq・(R3−R4)modr2
全ての確認が正しければ、結果SmodNを返す。
乱数生成器の性能を検証することが推奨される。iq≠0modrになるようにrを選択することも、推奨される。実際、(Sp−Sq)mod(p*r2)の結果またはqが変更されていても認証N*[S−R4−q*iq *(R3−R4)]=0mod(N*r2)は真なので、rでiqを割ると、故障検出確率が低下する。そのため、rがiqを割る間に無作為のrの生成を更新することを推奨する。無作為のrは、ハードウェアアーキテクチャの制限内で可能な限り大きくすべきであり、Nと比較して好ましくは小さくすべきであることを踏まえる。rをセキュリティパラメータと見なすことができるので、これが大きいほど、故障検出確率は高くなる。実際、攻撃の最大成功確率は2−(|r|−1)ln2である(さらなる詳細は、下記および付録Bを参照)。そのため、rは少なくとも32ビットの整数乱数であることを推奨する。最後に、セキュリティレベルを最適化するために、1に等しい最上位ビットを有するrを選択することが好ましい。反転の効率を最適化するために、奇数のrを選択することも好ましい。
本発明は、冪剰余x=mDmodNを計算するように配置された電子装置にも関し、ここでmはメッセージ、Dは指数、およびNは係数である。装置は、以下を含むことにより、侵入型攻撃に対して冪剰余を保護するように設定され、
a.α=1modN、α=0modR、β=0modN、およびβ=1modRとなるように、マスクαおよびマスクβを生成する手段と、
b.マスクされたメッセージm’=(m*α+k*β)mod(N*R)を計算することによって、マスクαおよびβでメッセージmをマスクする手段と、
a.冪剰余x’=m’Dmod(N*R)を計算する手段と、
b.(x’−kD)modR=0か否かを判定する手段であって、
この条件が確認された場合にはx=x’modNを出力し、
そうでなければ解決策を適用する、手段を含み、
ここで整数kおよび整数Rは、RとNとが互いに素となるように与えられる。
a.α=1modN、α=0modR、β=0modN、およびβ=1modRとなるように、マスクαおよびマスクβを生成する手段と、
b.マスクされたメッセージm’=(m*α+k*β)mod(N*R)を計算することによって、マスクαおよびβでメッセージmをマスクする手段と、
a.冪剰余x’=m’Dmod(N*R)を計算する手段と、
b.(x’−kD)modR=0か否かを判定する手段であって、
この条件が確認された場合にはx=x’modNを出力し、
そうでなければ解決策を適用する、手段を含み、
ここで整数kおよび整数Rは、RとNとが互いに素となるように与えられる。
電子装置は、パーソナルコンピュータ、サーバ、電話、PDAなどであってもよい。好適な実施形態において、電子装置はセキュリティ装置であり、具体的には、これはスマートカード、HSM、USB鍵、またはいかなる形態の暗号トークンであってもよい。
装置は好ましくは、本発明による方法を実装する。方法のために上述された全ての変形例は、装置にも等しく適用される。
後に、図3の好適な実施形態について、故障攻撃に対する耐性の解析、サイドチャネル解析、および性能解析を提供する。
その後、付録AおよびBにおいて、本発明で使用される定理および特性のいくつかの実証を提供する。
故障攻撃に対する耐性
以下の故障モデルは、仮定により、攻撃者ができることを定義する。装置を中断することにより、攻撃者は:
元の値と無相関な、まったく無作為の結果を取得するメモリ内で値を変更すること(恒久的故障として知られる)、
ローカルレジスタ内で操作されているとき、メモリ内の大域的な値を変更せずに値を変更することができるということを意味している。操作および取得された値は、攻撃者に対して完全に無作為であり、元の値とは無相関である(過渡故障として知られる)。
以下の故障モデルは、仮定により、攻撃者ができることを定義する。装置を中断することにより、攻撃者は:
元の値と無相関な、まったく無作為の結果を取得するメモリ内で値を変更すること(恒久的故障として知られる)、
ローカルレジスタ内で操作されているとき、メモリ内の大域的な値を変更せずに値を変更することができるということを意味している。操作および取得された値は、攻撃者に対して完全に無作為であり、元の値とは無相関である(過渡故障として知られる)。
設計は、以下のことが可能な攻撃者には対応していない:
コード実行を変更すること。プロセッサ命令は、コードの実行中には置換または削除されることは不可能である。このような攻撃者は、EEPROMをダンプして秘密鍵を獲得する力を有している場合がある、
入力要素、メッセージm、ならびに鍵(p、q、dp、dq,iq)に恒久的故障を注入すること。署名中はいつでも認証され得る完全性値とともに入力要素が与えられると考える、
条件判定のブール型結果を変更すること。「a=bの場合」という表現は、変更できない真または偽の結果を有する。ここでセキュリティのレベルに関して妥協した。実際、感染計算に基づくその他のいくつかの方法とは対照的に設計は条件判定を使用する。しかしながら、これらの判定を計算の無条件感染と置き換えることが可能である。
コード実行を変更すること。プロセッサ命令は、コードの実行中には置換または削除されることは不可能である。このような攻撃者は、EEPROMをダンプして秘密鍵を獲得する力を有している場合がある、
入力要素、メッセージm、ならびに鍵(p、q、dp、dq,iq)に恒久的故障を注入すること。署名中はいつでも認証され得る完全性値とともに入力要素が与えられると考える、
条件判定のブール型結果を変更すること。「a=bの場合」という表現は、変更できない真または偽の結果を有する。ここでセキュリティのレベルに関して妥協した。実際、感染計算に基づくその他のいくつかの方法とは対照的に設計は条件判定を使用する。しかしながら、これらの判定を計算の無条件感染と置き換えることが可能である。
図3に記載されるRSAのCRT実装を検討し、セクション3、4で説明された推奨に従ってきたと想定する。|a|がaのビットサイズでありaがaの故障値であることに留意して、いくつかの故障シナリオを再検討し、関連する成功確率を特定してみる(確率は、付録Bにおいてより詳述されている):
p’の計算中に過渡的な方法でpもしくはrを変更、または
の判定の前に恒久的な方法でp’を変更する(q’についても同様である):
の判定の後、累乗の最中にのみ恒久的故障が発生する場合には:
の計算中に過渡的な方法でmを変更、または判定の前に恒久的な方法で
を変更する(
p’の計算中に過渡的な方法でpもしくはrを変更、または
サイドチャネル解析
この研究ではサイドチャネル解析は調査されないが、設計は、サイドチャネル攻撃に対する適合した追加解決策と組み合わせられるべきである。
この研究ではサイドチャネル解析は調査されないが、設計は、サイドチャネル攻撃に対する適合した追加解決策と組み合わせられるべきである。
性能解析
実行時間
最も高コストなステップは、2つの反転である。これらは、rの長さの2倍の長さを有するパラメータ上で実行される。ipr0=p−1modrおよびiqr0=q−1modrであることに留意して、ipr0およびiqr0からiprおよびiqrを計算するためのトリックを利用する。実際に、p=p0+p1rmodr2およびipr1=[−ipr0p1−((ipr0p0−1)/r)]・ipr0modrとする。さらに、ipr=ripr1+ipr0(iqrについても同様である)。このように、わずか2つの反転モジュロrのみが、iprおよびiqrを計算するために必要とされる。rがたとえば32ビット値であって、32ビットチップのアーキテクチャ上で実装が行われる場合、アルゴリズムのループは32ビット単精度データ上の比較、シフト、減算、および加算で構成されるので、SPA安全拡張バイナリgcdアルゴリズムは非常に効率的に実装されることが可能である。このコンテキストにおいて、解決策が追加された実行時間は、明らかにAumullerらの解決策[4]よりも低コストである。より小さいマイクロコントローラ上では、実行時間はハードウェアアーキテクチャに依存することになるが、しかし2つの反転はせいぜい2つの累乗モジュロt(|t|=|r|の場合)と同程度のコストと考えられる状態に非常に近づいている。したがって、提案は、2つの付加的なトーティエント計算が必要とされるJoyeおよびCietの解決法[6]よりも効率的である。攻撃者が乗算から2乗を識別することができないような特性を我々の累乗アルゴリズムのみが有する場合、我々のアルゴリズムがGiraudの解決策[7]とほぼ同じくらい効率的であるとも考えられる。累乗がマスクされる、CRTを備えるRSAの場合には、累乗アルゴリズムは、モンゴメリ−ラダーアルゴリズム[13]とは対照的に不安定になり得る。係数および指数が64ビットの整数乱数によって無作為抽出されると考えた場合、各累乗に対して約
実行時間
最も高コストなステップは、2つの反転である。これらは、rの長さの2倍の長さを有するパラメータ上で実行される。ipr0=p−1modrおよびiqr0=q−1modrであることに留意して、ipr0およびiqr0からiprおよびiqrを計算するためのトリックを利用する。実際に、p=p0+p1rmodr2およびipr1=[−ipr0p1−((ipr0p0−1)/r)]・ipr0modrとする。さらに、ipr=ripr1+ipr0(iqrについても同様である)。このように、わずか2つの反転モジュロrのみが、iprおよびiqrを計算するために必要とされる。rがたとえば32ビット値であって、32ビットチップのアーキテクチャ上で実装が行われる場合、アルゴリズムのループは32ビット単精度データ上の比較、シフト、減算、および加算で構成されるので、SPA安全拡張バイナリgcdアルゴリズムは非常に効率的に実装されることが可能である。このコンテキストにおいて、解決策が追加された実行時間は、明らかにAumullerらの解決策[4]よりも低コストである。より小さいマイクロコントローラ上では、実行時間はハードウェアアーキテクチャに依存することになるが、しかし2つの反転はせいぜい2つの累乗モジュロt(|t|=|r|の場合)と同程度のコストと考えられる状態に非常に近づいている。したがって、提案は、2つの付加的なトーティエント計算が必要とされるJoyeおよびCietの解決法[6]よりも効率的である。攻撃者が乗算から2乗を識別することができないような特性を我々の累乗アルゴリズムのみが有する場合、我々のアルゴリズムがGiraudの解決策[7]とほぼ同じくらい効率的であるとも考えられる。累乗がマスクされる、CRTを備えるRSAの場合には、累乗アルゴリズムは、モンゴメリ−ラダーアルゴリズム[13]とは対照的に不安定になり得る。係数および指数が64ビットの整数乱数によって無作為抽出されると考えた場合、各累乗に対して約
メモリ消費量
解決策は、Aumullerらの[4]ならびにJoyeおよびCietの実装[6]とほぼ同程度のメモリを必要とする。明らかに、メモリ消費量が深刻な欠点であるGiraudの提案[7]よりもはるかに少ないメモリを必要とする。図3において、iprおよびiqrはスタックに保存されることが可能なので、
および
の計算中にはβp、βqはRAMに保持されないと考えることができる。βpおよびβqは、必要なときに「オンザフライ」で計算されることが可能である。値mpと同じように、mpmodr2だけはスタックに保存されることが可能である。メモリ消費量が最大となる瞬間は、
がそれぞれ長さ|p|+2|r|、および|q|+2|r|を有する場合を除いて、再結合中に発生する(古典的なRSA−CRT署名のときと同様)。最終的な結果は、長さ|N|+2|r|を有する。コプロセッサレジスタのサイズは2Kに制限されてもよいので、いくつかの暗号プロセッサは、Nが2K整数である場合、最終認証(S−R4−qiq・(R3−R4))・N≡0modNr2を実行することができない。この場合、最終認証は、S−R4−qiq・(R3−R4)≡0modr2に置き換えられることが可能である。
解決策は、Aumullerらの[4]ならびにJoyeおよびCietの実装[6]とほぼ同程度のメモリを必要とする。明らかに、メモリ消費量が深刻な欠点であるGiraudの提案[7]よりもはるかに少ないメモリを必要とする。図3において、iprおよびiqrはスタックに保存されることが可能なので、
個人化管理
提案された実装は、計算に必要な通常のパラメータ、入力メッセージmおよび古典的なRSA−CRT鍵セット(p,q,dp,dq,iq)のみを必要とする。
提案された実装は、計算に必要な通常のパラメータ、入力メッセージmおよび古典的なRSA−CRT鍵セット(p,q,dp,dq,iq)のみを必要とする。
コードサイズ
解決策は、主にRSA−CRT署名用に既に開発された算術演算に基づいている。やはり古典的な算術演算に基づくモジュラー反転のみが実装されるべきである。モジュラー反転のコードは、RSA鍵生成を供給する際にRSA署名も供給する製品に含まれる場合が多い。モジュラー反転のコードが追加される必要があったとしても、これは許容可能なコードサイズオーバーヘッドを生じる。
解決策は、主にRSA−CRT署名用に既に開発された算術演算に基づいている。やはり古典的な算術演算に基づくモジュラー反転のみが実装されるべきである。モジュラー反転のコードは、RSA鍵生成を供給する際にRSA署名も供給する製品に含まれる場合が多い。モジュラー反転のコードが追加される必要があったとしても、これは許容可能なコードサイズオーバーヘッドを生じる。
A.定理1の証明
主張
NおよびRをgcd=(N,R)=1となるような整数とし、β=(N・(N−1modR))およびα=1−βmodNRとする。αおよびβは、以下の特性に従う非ゼロ要素である:
1.α2=αmodNR
2.β2=βmodNR
3.αβ=0modNR(αおよびβは
のゼロ因子(divisors)である)
主張
NおよびRをgcd=(N,R)=1となるような整数とし、β=(N・(N−1modR))およびα=1−βmodNRとする。αおよびβは、以下の特性に従う非ゼロ要素である:
1.α2=αmodNR
2.β2=βmodNR
3.αβ=0modNR(αおよびβは
証明
これは明らかに、αおよびβの定義から来ている。
これは明らかに、αおよびβの定義から来ている。
補題1.
Nおよびrをgcd=(N,r)=1となるような整数とし、β=N・(N−1modr2)およびα=1−βmodNr2とする。するといずれの
およびいずれの
ペアでも:
(αA+βB)d=αAd+βBdmodNr2 (1)
証明
R=r2とする。αβ=0modNr2なので、いずれの
およびいずれの
でも、以下が得られる:
(αA+βB)d=(αA)d+(βB)dmodNr2=αAd+βBdmodNr2
なぜならαd=αおよびβd=βモジュロNr2である。
Nおよびrをgcd=(N,r)=1となるような整数とし、β=N・(N−1modr2)およびα=1−βmodNr2とする。するといずれの
(αA+βB)d=αAd+βBdmodNr2 (1)
証明
R=r2とする。αβ=0modNr2なので、いずれの
(αA+βB)d=(αA)d+(βB)dmodNr2=αAd+βBdmodNr2
なぜならαd=αおよびβd=βモジュロNr2である。
補題2.
Nおよびrを互いに素である整数とし、β=N・(N−1modr2)とする。いずれの
でも、以下のようになる:
β・(1+r)d=β・(1+dr)modNr2 (2)
証明
β=0modNなので、式はモジュロNを取る。β=1modr2なのでこれはモジュロr2も取り、いずれの
でも、(1+r)d=1+drmodr2となる。したがって、中国の剰余定理により、式はモジュロNr2を取る。
最後に、式(1)および(2)を組み合わせて、定理1の累乗恒等式を得ると、いずれの
およびいずれの
でも、以下のようになる:
(am+β・(1+r))d=amd+β・(1+dr)modNr2
Nおよびrを互いに素である整数とし、β=N・(N−1modr2)とする。いずれの
β・(1+r)d=β・(1+dr)modNr2 (2)
証明
β=0modNなので、式はモジュロNを取る。β=1modr2なのでこれはモジュロr2も取り、いずれの
最後に、式(1)および(2)を組み合わせて、定理1の累乗恒等式を得ると、いずれの
(am+β・(1+r))d=amd+β・(1+dr)modNr2
B.故障攻撃の成功確率に関する詳細
4.1において定義された故障モデルを検討してみる。攻撃者は値A(A=BmodC)を変更し、Aとは無相関の無作為の値Aを取得すると仮定する。ここでテストA=BmodCに合格する成功確率の一般式を与えるが、ただしCはtビットの整数である。2t−1<C<2t,C=1mod2とする。セクション3、4における推奨によれば、rは奇数で、その最上位ビットは1であり、pにも同じ特性を推測することができる。Cは一定であると考える。Eは故障が検出されない事象、Pr[E]はEの全確率、Pr[E|C]はCを前提とするEの確率、Pr[c=C]はc=Cとなるように考慮された集合Sにおいて要素cを取る確率、とする。取得される無作為の結果は均一に分布するので、以下のことがわかる:
Pr[E]を計算することを望む。S={Cs.t.2t−1<C<2tandC=1mod2}としてみる。全確率の定理より、以下のようになる:
Cは一定なので:
恒等式(3)および(5)を式(4)に代入すると、以下が得られる:
とすると:
なので、以下のように概算してもよい:
したがって:
これにより、確率値2−(|p|−1)ln2、2−(|p’|−1)ln2、および2−(|r|−1)ln2が説明される。
4.1において定義された故障モデルを検討してみる。攻撃者は値A(A=BmodC)を変更し、Aとは無相関の無作為の値Aを取得すると仮定する。ここでテストA=BmodCに合格する成功確率の一般式を与えるが、ただしCはtビットの整数である。2t−1<C<2t,C=1mod2とする。セクション3、4における推奨によれば、rは奇数で、その最上位ビットは1であり、pにも同じ特性を推測することができる。Cは一定であると考える。Eは故障が検出されない事象、Pr[E]はEの全確率、Pr[E|C]はCを前提とするEの確率、Pr[c=C]はc=Cとなるように考慮された集合Sにおいて要素cを取る確率、とする。取得される無作為の結果は均一に分布するので、以下のことがわかる:
Claims (11)
- 侵入型攻撃に対して、mをメッセージ、Dを指数、Nを係数とする冪剰余x=mDmodNの計算を保護する方法であって、整数kが与えられ、RおよびNが互いに素となるように整数Rが与えられたとき、
a.α=1modN、α=0modR、β=0modN、およびβ=1modRとなるようにマスクαおよびマスクβを生成するステップと、
b.マスクされたメッセージm’=(m*α+k*β)mod(N*R)を計算することによって、マスクαおよびβでメッセージmをマスクするステップと、
c.冪剰余x’=m’Dmod(N*R)を計算するステップと、
d.(x’−kD)modR=0の場合、x=x’modNを出力するか、そうでなければ解決策を適用するステップと、を含むことを特徴とする、方法。 - 整数kがゼロに等しく、マスクβを計算しないことによって方法が簡素化され、したがって、
a.α=1modNおよびα=0modRとなるようにマスクαを生成するステップと、
b.マスクされたメッセージm’=(m*α)mod(N*R)を計算することによって、マスクαでメッセージmをマスクするステップと、
c.冪剰余x’=m’Dmod(N*R)を計算するステップと、
d.x’modR=0の場合、x=x’modNを出力するか、そうでなければ解決策を適用するステップと、を含む、請求項1に記載の方法。 - αが公式α=(1−N*((1/N)modR)mod(N*R)で計算される、請求項1または2に記載の方法。
- βが公式β=(N*((1/N)modR))mod(N*R)で計算される、請求項1、または請求項1による請求項3に記載の方法。
- 冪剰余x’=m’Dmod(N*R)の実行の前および/または後にm=m’modNが認証され、そうでない場合には解決策が適用される、請求項1から4のいずれか一項に記載の方法。
- 解決策(複数可)が、必要な冪剰余の結果をまったく出力しないステップを含む、請求項1から5のいずれか一項に記載の方法。
- Rが乱数である、請求項1から6のいずれか一項に記載の方法。
- 各冪剰余に対して新しい乱数Rが生成される、請求項7に記載の方法。
- 1より大きい整数iが与えられると、数Rは、R=riとなるように数rをi乗することによって得られ、整数kは値k=1+rに設定される、請求項2を除く請求項1から8のいずれか一項に記載の方法。
- 方法によって実行されるいくつかまたは全ての冪剰余に数Rおよび整数kが再利用され、マスクαおよびβが、値kDmodRと同様に、全ての前記冪剰余のために一度予備計算される、請求項1、3、4、5、6、7、または8に従属しない場合の9のいずれか一項による方法。
- mをメッセージ、Dを指数、Nを係数とする冪剰余x=mDmodNを計算するように配置された電子装置であって、侵入型攻撃に対して冪剰余を保護するために、
a.α=1modN、α=0modR、β=0modN、およびβ=1modRとなるようにマスクαおよびマスクβを生成する手段と、
b.マスクされたメッセージm’=(m*α+k*β)mod(N*R)を計算することによって、マスクαおよびβでメッセージmをマスクする手段と、
c.冪剰余x’=m’Dmod(N*R)を計算する手段と、
d.(x’−kD)modR=0か否かを判定する手段であって、
この条件が確認された場合には、x=x’modNを出力し、
そうでなければ、解決策を適用する手段を含み、RとNとが互いに素となるように整数kおよび整数Rが与えられることを特徴とする、電子装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08305453.6 | 2008-08-06 | ||
EP08305453A EP2154604A1 (en) | 2008-08-06 | 2008-08-06 | Countermeasure securing exponentiation based cryptography |
PCT/EP2009/059867 WO2010015562A2 (en) | 2008-08-06 | 2009-07-30 | Zero divisors protecting exponentiation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011530093A true JP2011530093A (ja) | 2011-12-15 |
Family
ID=40275969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011521538A Withdrawn JP2011530093A (ja) | 2008-08-06 | 2009-07-30 | 累乗法による暗号化を保護する解決策 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8639944B2 (ja) |
EP (2) | EP2154604A1 (ja) |
JP (1) | JP2011530093A (ja) |
BR (1) | BRPI0916991A2 (ja) |
WO (1) | WO2010015562A2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2895609A1 (fr) * | 2005-12-26 | 2007-06-29 | Gemplus Sa | Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee |
EP2228715A1 (en) * | 2009-03-13 | 2010-09-15 | Thomson Licensing | Fault-resistant calculcations on elliptic curves |
FR2946207A1 (fr) * | 2009-05-28 | 2010-12-03 | Proton World Internat Nv | Protection d'une generation de nombres premiers pour algorithme rsa |
EP2293185A1 (en) * | 2009-09-04 | 2011-03-09 | Thomson Licensing | Exponentiation method resistant against skipping attacks and apparatus for performing the method |
DE102011117236A1 (de) * | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Effiziente Primzahlprüfung |
CN102567234B (zh) * | 2011-12-26 | 2014-10-01 | 北京握奇数据系统有限公司 | Usb接口设备进行数据处理的方法及usb接口设备 |
US10235278B2 (en) * | 2013-03-07 | 2019-03-19 | International Business Machines Corporation | Software testing using statistical error injection |
US10367637B2 (en) * | 2016-07-22 | 2019-07-30 | Qualcomm Incorporated | Modular exponentiation with transparent side channel attack countermeasures |
CN108111309A (zh) * | 2018-02-28 | 2018-06-01 | 北京融通高科微电子科技有限公司 | Rsa私钥掩码运算方法、协处理器及rsa运算装置 |
CN109379185B (zh) * | 2018-10-22 | 2021-04-27 | 飞天诚信科技股份有限公司 | 一种安全的rsa运算实现方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748410B1 (en) * | 1997-05-04 | 2004-06-08 | M-Systems Flash Disk Pioneers, Ltd. | Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication |
US5991415A (en) | 1997-05-12 | 1999-11-23 | Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science | Method and apparatus for protecting public key schemes from timing and fault attacks |
CN100390695C (zh) * | 2001-11-14 | 2008-05-28 | 国际商业机器公司 | 更少信息泄露的设备与方法 |
US7194633B2 (en) * | 2001-11-14 | 2007-03-20 | International Business Machines Corporation | Device and method with reduced information leakage |
FR2888690A1 (fr) * | 2005-07-13 | 2007-01-19 | Gemplus Sa | Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe |
-
2008
- 2008-08-06 EP EP08305453A patent/EP2154604A1/en not_active Withdrawn
-
2009
- 2009-07-30 WO PCT/EP2009/059867 patent/WO2010015562A2/en active Application Filing
- 2009-07-30 JP JP2011521538A patent/JP2011530093A/ja not_active Withdrawn
- 2009-07-30 BR BRPI0916991A patent/BRPI0916991A2/pt not_active IP Right Cessation
- 2009-07-30 US US13/057,703 patent/US8639944B2/en active Active
- 2009-07-30 EP EP09781287A patent/EP2332040B1/en not_active Not-in-force
Also Published As
Publication number | Publication date |
---|---|
EP2154604A1 (en) | 2010-02-17 |
US8639944B2 (en) | 2014-01-28 |
WO2010015562A2 (en) | 2010-02-11 |
EP2332040A2 (en) | 2011-06-15 |
BRPI0916991A2 (pt) | 2015-11-24 |
US20110131424A1 (en) | 2011-06-02 |
EP2332040B1 (en) | 2012-05-16 |
WO2010015562A3 (en) | 2010-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Genkin et al. | May the fourth be with you: A microarchitectural side channel attack on several real-world applications of curve25519 | |
US7506165B2 (en) | Leak-resistant cryptographic payment smartcard | |
US8850221B2 (en) | Protection against side channel attacks with an integrity check | |
JP2011530093A (ja) | 累乗法による暗号化を保護する解決策 | |
US9571289B2 (en) | Methods and systems for glitch-resistant cryptographic signing | |
Vigilant | RSA with CRT: A new cost-effective solution to thwart fault attacks | |
US11290272B2 (en) | Elliptic curve point multiplication device and method in a white-box context | |
US20170187529A1 (en) | Modular multiplication device and method | |
WO2018019233A1 (zh) | 一种运算方法和安全芯片 | |
JP2004304800A (ja) | データ処理装置におけるサイドチャネル攻撃防止 | |
US11824986B2 (en) | Device and method for protecting execution of a cryptographic operation | |
Blömer et al. | Wagner’s Attack on a secure CRT-RSA Algorithm Reconsidered | |
EP1347596A1 (en) | Digital signature methods and apparatus | |
Le et al. | On double exponentiation for securing RSA against fault analysis | |
JP3952304B2 (ja) | 電子コンポネントにおいて公開指数を求める暗号アルゴリズムを実行する方法 | |
EP1691501B1 (en) | Leak-resistant cryptography method an apparatus | |
KR101112570B1 (ko) | 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체 | |
KR100953716B1 (ko) | Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체 | |
Ha et al. | Power Analysis Attacks on the Right-to-Left Square-Always Exponentiation Algorithm. | |
Ha et al. | Secure RSA implementation against horizontal correlation power analysis attack | |
Khan et al. | Investigating the blinding approach to resist power analysis attacks on modular exponentiation | |
Shukla et al. | A Comparative analysis of the attacks on public key RSA cryptosystem | |
Fournaris | Hardware module design for ensuring trust | |
Delosevic | Fault attacks and countermeasures for elliptic curve cryptosystems | |
Singh et al. | A Secure Method For Digital Signature Generation for Tamperproof Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20121002 |