JP7206324B2 - 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法 - Google Patents

暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法 Download PDF

Info

Publication number
JP7206324B2
JP7206324B2 JP2021090958A JP2021090958A JP7206324B2 JP 7206324 B2 JP7206324 B2 JP 7206324B2 JP 2021090958 A JP2021090958 A JP 2021090958A JP 2021090958 A JP2021090958 A JP 2021090958A JP 7206324 B2 JP7206324 B2 JP 7206324B2
Authority
JP
Japan
Prior art keywords
mod
exponentiation
cryptographic
message
accumulator
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.)
Active
Application number
JP2021090958A
Other languages
English (en)
Other versions
JP2021144239A (ja
Inventor
ダビ・ビジラン
Original Assignee
タレス・ディス・フランス・エス・ア
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 タレス・ディス・フランス・エス・ア filed Critical タレス・ディス・フランス・エス・ア
Publication of JP2021144239A publication Critical patent/JP2021144239A/ja
Application granted granted Critical
Publication of JP7206324B2 publication Critical patent/JP7206324B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

本発明は一般に電子暗号技術に関し、具体的には、連立べき乗技法を使用する乗算マスクを使用することによって、サイドチャネル攻撃からセキュリティデバイスを保護することに関する。
電子的な通信および商業は強力なツールだが、危険でもある。インターネットなど、広範囲でネットワーク技術が利用可能なことにより、通信および商業のためのオンラインツールがますます多く利用されるようになっている。通信文または商業のどちらの形であっても、重要なトランザクションを行うにはコンピュータおよびコンピュータネットワークを使用すると簡単または迅速になることに気付くユーザが年々増加している。しかし、電子トランザクションのセキュリティがそのトランザクションに参加する権利を持たない第三者による傍受を介して危険にさらされるという、リスクが常に存在する。悪意の第三者が、本来はプライベートなトランザクションおよびデータへアクセスした場合、経済的損失、プライバシー損失、さらには物理的安全性損失のリスクが存在する。電子トランザクションおよびデータのプライバシーに対する侵害を防ぐために採用される1つの機構が、暗号である。
暗号は、第三者の存在下で数学的技法を使用してメッセージを秘匿するための技術であり、メッセージは、メッセージの受信者および/または送信者のみが知るはずの秘密鍵を使用してのみ復号可能なように暗号化される。
暗号アルゴリズムは入力および出力を有する。暗号化の場合、入力は、「平文」で書かれた保護対象のメッセージである。この平文メッセージは暗号アルゴリズムで処理されて、「暗号文」、つまり出力を生成する。暗号文を生成するために、暗号アルゴリズムは、秘密鍵の使用を含む一定の数学演算を行う。鍵は、例えば送信者と受信者の間の共有秘密鍵であってもよいし、または、受信者が保有するプライベート鍵でもよい。
よく使用される暗号技法の1つにRSAアルゴリズムがあり、その名前は、発明者であるRivest、Shamir、およびAdelmanにちなむ。安全性の高い暗号文を得るために、RSAアルゴリズムは、大きな整数の因数分解が困難であることに依存する。あるユーザが、ほぼ同じサイズの2つの大きな素数をランダムに選択し、その2つの数を乗算することによって、公開鍵を作成する。その結果、そのユーザの「公開鍵」が得られ、ユーザはそれを公開して、それにより他のエンティティがそのユーザに代わってメッセージを暗号化することができるようにしてもよい。「公開鍵」は公開されており、それを使用して誰もがメッセージを暗号化することができるが、暗号化されたメッセージは、対応する「プライベート鍵」を使用してのみ復号することができ、この鍵は事実上、公開鍵を生成するために使用された2つの素数から成る。したがって、RSAアルゴリズムにより得られるセキュリティにとって、プライベート鍵が秘密に保たれ、RSA暗号化されたメッセージのセキュリティを破ろうとする第三者に見つけられないことが非常に重要である。
RSAアルゴリズムの詳細は本明細書の範囲外であるが、本明細書では考察の目的で、このアルゴリズムを、メッセージMを暗号化して暗号文Cにすること、および、暗号文Cを復号してメッセージMへ戻すことの、2つの相補的な計算に還元することができる。公開鍵は、2つの大きな素数pおよびqから算出される。pとqから、数n=pqが算出され、nは、プライベート鍵と公開鍵の両方の、法(モジュラス)である。さらに、pとqから公開鍵のべき指数eが計算される。
1<e<φ(n)、かつ(e,φ(n))の最大公約数が1、すなわちeとφ(n)が互いに素であるようにeを選択する。ここで、n=pqおよびφ(n)はオイラーのトーシェント関数である。
よって、公開鍵は1対の整数(n,e)から成る。
対応するプライベート鍵は1対の整数(n,d)から成り、d≡e-1(mod φ(n))である。ここで、φ(n)はオイラーのトーシェント関数である。
公開鍵(n,e)を使用して、次の式によってメッセージMが暗号文Cに暗号化される。
C=M mod n
対応するプライベート鍵(n,d)を使用して、次の式によって暗号文CからメッセージMが回復され、復号される。
M=C(mod n)
また、RSAを使用してメッセージMに暗号署名を行い、署名付きメッセージS、すなわち次の式のメッセージにすることもできる。
S=M(mod n)
大きな整数のべき乗は高コストな計算なので、通常、これらの計算は直接には行われない。より効率的な、小さい整数のべき乗を伴う計算では、中国剰余定理を使用する。詳細には触れないが、中国剰余定理の手法は、次のべき乗剰余を含む。
Sp=M dp mod p
Sq=M dp mod q
ここで、dp=d mod (p-1)かつdq=d mod (q-1)であり、
=M mod pかつM=M mod qである。
RSA-CRT署名の計算は、次の3つの主要ステップで構成される。
- Spの計算(計算の約45%)
- Sqの計算(計算の約45%)
- SpおよびSqからSを再結合(計算の約10%)
サイドチャネル攻撃は、暗号計算を行うデバイスのプログラムタイミング、電力消費、および/または電子的放射を利用する。デバイスの挙動(タイミング、電力消費、および電子的放射)は変動し、暗号アルゴリズムで処理されるプログラムおよびデータに直接依存する。攻撃者は、これらの変動を利用して、機密データを推察し、その結果、プライベート鍵を回復することもできる。
フォールト攻撃という名前は、計算が行われている間に故障(フォールト)を作り出し、その故障により生まれた結果を利用して秘密鍵を推定する手法に由来する。一般に、故障を注入するには、故障注入に最も成功しやすい瞬間を決定することを含む事前のステップが必要である。この事前のステップは通常、電力または電子的放射トレースの観察を通したプログラムのリバースエンジニアリングによって行われる。RSA-CRTは特にフォールト攻撃に対して弱く、その理由は、SpまたはSqのどちらかの計算のみを妨害するだけで、侵入者はプライベート鍵を推定することができ、どちらにしても、故障効果が引き起こされるからである。さらに、SpまたはSqを計算する機密ステップは通常、電力トレースで簡単に特定できるので、これらの2つのステップ中に故障を誘発させるための設定を比較的簡単に行うことができる。SpおよびSqは全体署名のそれぞれ約45%という大きな部分をプロセスで占めるので、どちらかの計算を妨害するための時間は十分ある。よって、SpとSqのどちらかの計算を妨害する故障によって、プライベート鍵の素因数を無許可で回復することが可能になり得る。
フォールト攻撃からの防御に使用される機構の1つは、演算中に故障が導入されるのを確実に防ぐために、署名操作を2回行うことである。そのような操作を2回行えば、その対策は高費用になることがある。
その他の従来技法には、Shamir(Shamir、米国特許第5991414号、「Method and apparatus for protecting public key schemes from timing and fault attacks」)、Aumuller(Aumullerら、「Concrete results and practical countermeasures, Cryptographic Hardware and Embedded Systems」-CHES 2002:4th International Workshop、Volume 4)、Giraud(Giraud,C.、「An RSA implementation resistant to fault attacks and to simple power analysis」、IEEE Transactions on Computers (Volume:55、Issue:9)、2006年9月)、およびVigilant(「Cryptographic Hardware and Embedded Systems」-CHES 2008、Lecture Notes in Computer Science Volume 5154、2008年、130-145頁)がある。
これらの従来技術の技法は2つのタイプに分類できる。
- Shamirの技法はAumullerおよびVigilantの技法の元となった技法であり、べき乗の前に、法に小さな乱数を乗算することを含む。この新しい数を法としてべき乗が行われ、べき乗の後に、この小さな乱数を法として、いくらかの無矛盾性チェックを行うことができる。再結合の後に、全体的な無矛盾性チェックが行われる。全体的な無矛盾性チェックの結果が正常でない場合は、フォールト攻撃が検出されたことになる。
- Giraudの技法は、モンゴメリ・ラダーのべき乗アルゴリズムの使用を含み、このアルゴリズムは、X mod Zを計算するとき、(X(y-1) mod Z, X mod Z)を出力する。
これらの従来の技法に共通することは、Giraudの技法を除き、どの技法も、何らかの確率で故障を検知するということである。しかし、Giraudの技法には、実装に大量のRAMメモリを必要とするという短所がある。さらに、これらの技法は、Spの計算、Sqの計算、および再結合という3ステップ構造を保つ。3つのステップがあることにより、攻撃者に、フォールト攻撃をセットアップする機会が複数回与えられる。
米国特許第5991414号明細書
Aumullerら、「Concrete results and practical countermeasures, Cryptographic Hardware and Embedded Systems」-CHES 2002:4th International Workshop、Volume 4 Giraud,C.、「An RSA implementation resistant to fault attacks and to simple power analysis」、IEEE Transactions on Computers (Volume:55、Issue:9)、2006年9月 Vigilant、「Cryptographic Hardware and Embedded Systems」-CHES 2008、Lecture Notes in Computer Science Volume 5154、2008年、130-145頁
上記から、ホストコンピュータに接続されたスマートカードなどのポータブルセキュリティデバイスが、計算の効率が高く、過剰に大きなレジスタまたは他のストレージを必要とせず、フォールト攻撃から保護される暗号サービスの能力を提供できる安全な機構を提供する、改善された技術への需要がなおも存在することが明らかである。
1つまたは複数のサーバへのネットワークを介した接続を通して暗号サービスを行うために、例えばスマートカードなどのポータブルセキュリティデバイスが接続されたホストコンピュータの概略図である。 ポータブルセキュリティデバイスの概略図である。 図2のポータブルセキュリティデバイスのメモリに記憶されたプログラムの概略図である。 図3に示されるポータブルセキュリティデバイスのメモリに記憶されてもよく、べき乗演算を含む復号を行う、従来技術の暗号モジュールのプログラムリスティングの概略図である。 常時平方乗算アルゴリズムに従い、べき乗剰余を使用して、半分のサイズの要素で2つのべき乗演算すなわちS=(Mdp) mod pおよびS=(Mdq) mod qを行う、暗号復号操作を行うための従来技術の方法を示す図である。 図4および図5のアルゴリズムと同じ鍵材料を使用しながらも、好ましい実施形態によって、べき乗をただ1回行うだけで復号を行う、半分のサイズの要素を使用する修正された復号アルゴリズムを実装する、暗号モジュールを示す図である。
本発明の実施形態の下記の詳細な説明では添付図面を参照し、図面には、説明の目的で、本発明が実践されてもよい特定の実施形態の例が示される。これらの実施形態は、当業者が本発明を実施することを可能にするために十分詳細に説明される。本発明の様々な実施形態はそれぞれ異なっているが、必ずしも互いに排他的ではないことが理解される。例えば、本明細書で一実施形態に関連して記載される具体的な特徴、構造、または特性が、本発明の範囲を逸脱することなく他の実施形態の中に実装されてもよい。加えて、開示される各実施形態の中の個々の要素の位置または配置が、本発明の趣旨および範囲を逸脱することなく修正されてもよいことが理解される。下記の詳細説明は、したがって、制限的な意味に解釈されるべきではなく、本発明の範囲は添付の特許請求の範囲のみによって定められ、特許請求の範囲を与えられる均等物の全範囲とともに適切に解釈される。図面において、複数の図を通して、同様の数字は同じまたは類似の機能を指す。
本発明の一実施形態では、スマートカードに格納されたプライベート鍵を使用して、差分電力解析攻撃のリスクを効率的に減少させる様式で、文書に電子署名を行うため、または暗号化された文書もしくはメッセージを復号するために使用するように、スマートカードまたは他のポータブルセキュリティデバイスの使用を可能にする技術が提供される。
スマートカードは、内蔵されたマイクロプロセッサおよび安全なストレージを有するプラスティック製カードである。このカードはポータブル、安全、かつ耐タンパーである。スマートカードは、遠隔通信、銀行業務、商業、および住民基本台帳を含む多くの分野にセキュリティサービスを提供する。スマートカードは、そのスマートカードをスマートカードリーダに接続する電気コネクタを有するクレジットカード形状のカード、スマートカードが内蔵されたUSBトークン、および、携帯電話およびタブレットデバイス内で使用するためのSIMカードなどの、様々な形をとることができる。本明細書では、スマートカードは、本明細書に記載される技術の実装に使用されてもよいポータブルセキュリティデバイスの例として使用される。ポータブルセキュリティデバイスの他の例には、スマートメモリカード、フラッシュメモリなどが含まれる。好ましい一実施形態では、ポータブルセキュリティデバイスは、プロセッサ、プログラムおよびデータを記憶するためのメモリ、ならびに、そのデバイスを比較的タンパープルーフにするための、いくらかのセキュリティ機能を有する。それらのデバイスの例として、本明細書ではスマートカードを使用する。
本明細書に記載される暗号計算のマスキングの機構は、暗号計算を行うために使用されるスマートカードまたは他のポータブルセキュリティトークンにおいて有利に使用されるが、同じ機構はまた、他の暗号プロセッサとともに使用され得る。よって、本明細書では、スマートカードを説明の目的にのみ使用する。
デジタル署名およびその他の暗号は、スマートカードが提供する機能の例である。スマートカードは、安全なストレージ内にプライベート鍵または共有秘密鍵を格納し、暗号操作を行って、所与の入力にデジタル署名を生成するか、または、所与の入力を復号する。スマートカードは、パーソナルコンピュータ(PC)、携帯電話、タブレットデバイス、または銀行業務端末などのホストデバイスとともに動作する。EメールクライアントまたはウェブブラウザなどのPCアプリケーションは、通常、スマートカードを使用して文書への署名、文書の暗号化または復号を行う。暗号操作は、ユーザ認証のためのチャレンジレスポンス機構の一部であってもよい。PCアプリケーションとスマートカードは、ミドルウェアと呼ばれる、スマートカードと通信するように指定された何らかの暗号APIを通して対話する。このシナリオでは、スマートカードはPCにローカルでサービスを提供する。
図1は、例えばスマートカードなどのポータブルセキュリティデバイス109とともにホストコンピュータ103を1つまたは複数のリモートサーバ113に接続するネットワーク111の概略図である。ホストコンピュータ103は、ウェブブラウザのウェブブラウザウィンドウ105を介してサーバ113の1つと対話するユーザ101によって操作される。図1に示されるシナリオ例では、スマートカード109は、例えば文書への暗号署名、信頼できる相手113から受信したメッセージの復号、またはチャレンジレスポンス認証機構の一部として暗号操作を行うために、ユーザ101に代わって暗号操作を提供する。
図1には、暗号が重要な役割を果たし得る1つのシナリオが示されているが、暗号には他にも多くの重要な用途がある。よって、本明細書に記載される技術の適用例は、図1に示される用途の例に限定されない。
図2は、例えばスマートカードなどのポータブルセキュリティデバイス109の概略図である。ポータブルセキュリティデバイス109は、バス202を介してランダムアクセスメモリ(RAM)203、読み出し専用メモリ(ROM)204、および不揮発性メモリ(NVM)205に接続されたプロセッサ201を含んでもよい。ポータブルセキュリティデバイス109は、プロセッサ201を、通常これもバス202を介して、コネクタ211に接続するための入出力インタフェース207をさらに含んでおり、そのコネクタによってポータブルセキュリティデバイス109がホストコンピュータ103に接続されてもよい。
代替実施形態では、ホストコンピュータ103とポータブルセキュリティデバイス109の間の接続は、例えば近距離通信(NFC)またはその他のラジオ波もしくはマイクロ波通信技術を使用した、無線式である。
NVM205および/またはROM204は、図3に示されるように、コンピュータプログラム301を含んでもよい。本明細書では、コンピュータプログラム301はROM204またはNVM205にすべて同一場所で配置されていることを示しているが、実践ではそのような制限はなく、プログラムが複数のメモリにわたり分散してもよいし、さらにはRAM203に一時的にインストールされてもよい。さらに、ポータブルセキュリティデバイス109は複数のROMまたはNVMを含んでもよい。プログラム301は、ポータブルセキュリティデバイス109にロードされたアプリケーションプログラム(複数)ならびにオペレーティングシステムプログラムを含む。NVM205またはROM204はまた、プライベート鍵209または共有秘密鍵210などのプライベートデータを含有してもよく、データは基本形または導出された数量で記憶される。
ポータブルセキュリティデバイス109のプログラム301は、暗号モジュール213、ユーザ認証モジュール215、通信モジュール217、およびオペレーティングシステムOS219を含んでもよい。
よって、ポータブルセキュリティデバイス109は、コネクタ211を介して文書またはメッセージを受け取ってもよい。プロセッサ201は、暗号モジュール213の命令を実行することによって、文書/メッセージにデジタル署名を行うか、または、文書/メッセージをプライベート鍵209または共有秘密鍵210を使用して復号してもよい。通信モジュール217を通して提供される機能を使用して、プロセッサ201はホストコンピュータ103との間で通信の受信および送信を行ってもよい。
図4は、暗号モジュール213の、従来技術の考えられる実装の概略である。暗号モジュール213は、1つまたは複数の関数、メソッド、またはルーチンを含み得る。図4に示されるように、暗号関数()と呼ばれる1つの関数が考えられる。この関数は引数Mをとり、Mは署名または復号の対象となるメッセージである。暗号モジュール213で、標準的なRSAの式401、すなわちS=m mod nを使用して署名Sが計算される。
別の従来技術の手法では、暗号操作を行うために中国剰余定理を使用して暗号関数()を実装し、これには半分のサイズの要素にべき乗剰余計算401を行うことが含まれる。
当業者には理解されるように、この操作は、効率のために低いレベルの算術文に還元できる。Mdp mod pを効率的に計算するための一般的な手法は、常時平方乗算(Square-and-MultiplyAlways)アルゴリズムである。図5は、従来の常時平方乗算手順を示す暗号モジュール213’のプログラムリスティングであり、下記のとおりに定められる数量dp、dq、およびiq(ステップ501)を使用して、Sp=Mdp mod p(アルゴリズム401a)およびSq=Μdq mod q(アルゴリズム401b)を計算する。
dp=d mod (p-1)
dq=d mod (q-1)
iq=q-1 mod p
ここで、dpおよびdqは、次のバイナリ表現で記述される。
dp=[dpn-1,dpn-2,....,dp,dp,dp
かつ
dq=[dqn-1,dqn-2,...,dq,dq,dq
次に、ステップ503で、Garnerの式を使用してSが計算され得る。
S=Sq+q*(iq*(Sp-Sq) mod p
図5のアルゴリズムは半分のサイズの要素を使用するので、図4のアルゴリズムよりもずっと効率的である。
本明細書で下記に記載される本発明の一実施形態によれば、暗号モジュール213’(図6)は図4および図5のべき乗アルゴリズムの修正版を使用し、これは、図5のアルゴリズムのように半分のサイズのべき指数を使用しながら、べき乗を1回だけ行う。この修正手法は、図5に示される。
図6は、半分のサイズのべき指数を使用しながらただ1回のべき乗を行って結果S=m mod nを計算する、修正版のべき乗剰余計算401cを示すプログラムリスティングであり、例えばポータブルセキュリティデバイス109の、例えばROM204またはNVM205などのメモリに組み込まれた暗号モジュール213”の好ましい実施形態に使用される。べき乗計算401cは、中国剰余定理の別の使用法によってSを計算する。
このアルゴリズムの入力は次のとおりである。
m:復号されるメッセージ
qおよびp:乗算するとnになる2つの大きな素数
べき乗計算401cは、3つの予備計算601を行うことによって開始する。
iq=q-1 mod p
mq=1+q*iq*(m-1) mod n
mp=1+(1-q*iq)*(m-1) mod n
モジュラ算術により、上記の計算から、次の関係が成り立つことが示され得る。
mq mod p=1
mq mod q=m mod q
mp mod q=1
mp mod p=m mod p
この計算は、数量dpおよびdqも使用し、これらは上記の数量pおよびqからそれぞれ次のように定まる。
dp=d mod (p-1)
dq=d mod (q-1)
ステップ603でアキュムレータ値Aが1に初期化される。
次に、dpのバイナリ表現dp=[dp,dp,....,dpk-1,dp]およびdq=[dq,dq,....,dqk-1,dq]を使用して、dpとdqの全ビットについて、アキュムレータAを修正しながらSが反復計算される(ループ605)。値Aは、dpとdqの各ビットの値に応じて下記のように更新される。
各繰り返しの始めに、ステップ607で、AがA=A*A mod nにセットされる。
値のペアdpとdqがとり得る値には、互いに排他的と考えられ得る4つの場合、dp=0かつdq=0、dp=1かつdq=0、dp=0かつdq=1、および、dp=1かつdq=1がある。
1つ目の場合(dp=0かつdq=0)は、ステップ609で、AはA=A*1 mod nにセットされる。この演算は恒等演算であるからAの値を変化させないので、実際の実装では、なにもしないことによりこのステップは迂回される。
2つ目の場合(dp=1かつdq=0)は、ステップ611で、AはA=A*mp mod nにセットされる。
3つ目の場合(dpi=0かつdq=1)は、ステップ613で、AはA=A*mq mod nにセットされる。
4つ目の場合(dpi=1かつdq=1)は、ステップ615で、AはA=A*m mod nにセットされる。
最後に、dpとdqの全ビットがループ605によって処理された後でAに保持されている結果は値S=m mod nであり、ステップ617で署名付きメッセージSとして呼び出し側ルーチンに返され得る。
べき乗の各繰り返しiにおいて、アキュムレータAはSに等しく、次のとおりである。
mod p=m(dp0 dp1 dp2...dpi) mod p
mod q=m(dq0 dq1 dq2...dqi) mod q
これらの関係は、次の理由により真である。
- ステップ615でmを乗算するとき、nはn=pqと定められているので、アキュムレータの乗算A*mはモジュロp*qをとられる。
- ステップ611でmpを乗算するとき、その乗算は1 modulo qであるからアキュムレータの乗算A*mpはA*m modulo pに等しく、その結果、qに起因するAの変化はない。
- ステップ613でmqを乗算するとき、その乗算は1 modulo pであるから、アキュムレータの乗算A*mqはA*m modulo qに等しく、その結果、pに起因するAの変化はない。
- ステップ609で1を乗算するとき、乗算A*1の乗算はΑ*1 modulo p and qであり、その結果、モジュロpまたはモジュロqのどちらに起因する変化もない。
よって、最後の繰り返しの後、すなわちi=kのとき、
Sp=S mod p=mdp mod p
Sq=S mod q=mdq mod q
言い換えれば、
Sp=S mod p
Sq=S mod q
したがって、
S=S=Aである。
上記により、複数のべき乗をフォールト攻撃にさらすことなく、それにより、暗号化に使用された鍵材料の露見から保護しながら、半分のサイズのべき指数値を使用して非常に効率的な方法で署名付きメッセージSを算出する機構が本明細書に提示されることは明白である。
前述した機構について、常時平方乗算技法を背景として説明してきた。この機構は、他のべき乗技法にも容易に適合される。
本発明の特定の実施形態について説明および図示してきたが、本発明はそのように記載および図示されたとおりの、特定の形または部分の構成に制限されない。本発明は、特許請求の範囲のみによって制限される。

Claims (3)

  1. べき乗演算Xを有する復号操作を行う暗号装置によって行われる方法であって、
    べき乗演算S=m mod nと等価な暗号操作を行う対象であるメッセージmを受け取り、
    dp=d mod (p-1)かつdq=d mod (q-1)であるようなdpおよびdqであって、pおよびqが、n=pqであるような素数であるように、べき指数dから2つのべき指数dpおよびdqを決定し、
    mを、底mから決定される2つのサブ底mpおよびmqに分割し、ここで、mp=1+q*iq*(m-1) mod nかつ mq=1+(1-q*iq)*(m-1) mod nであって、iq=q -1 mod pであり、
    べき乗演算Xと等価な結果Sを生成するように、dpおよびdqの各ビットの値に応じて、アキュムレータAにm、mp、mqまたは1を乗算し、乗算した結果をnで割った余りをアキュムレータAに代入する繰り返しをすべてのビットに対して行い、
    アキュムレータAの最終値を値Sとして返すことを含む、方法。
  2. dpおよびdqが0からkによりインデックス付けされたビットdpおよびdqを有し、繰り返しが、計算:
    A=A*A mod n
    IF (dp=0 && dq=0)
    A=A*1 mod n
    IF (dp=1 && dq=0)
    A=A*mp mod n
    IF (dp=0 && dq=1)
    A=A*mq mod n
    IF (dp=1 && dq=1)
    A=A*m mod nを
    0からkまで行う繰り返しである、請求項1に記載の方法。
  3. フォールト攻撃から保護される電子デバイスであって、中央処理ユニット、メモリ、および命令ストレージを備え、請求項1または2の方法を中央処理ユニットに実行させる命令を命令ストレージが含む、電子デバイス。
JP2021090958A 2014-09-10 2021-05-31 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法 Active JP7206324B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14306393.1 2014-09-10
EP14306393.1A EP2996033A1 (en) 2014-09-10 2014-09-10 System and method for one-time Chinese-remainder-theorem exponentiation for cryptographic algorithms
JP2017513499A JP2017526981A (ja) 2014-09-10 2015-08-31 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017513499A Division JP2017526981A (ja) 2014-09-10 2015-08-31 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2021144239A JP2021144239A (ja) 2021-09-24
JP7206324B2 true JP7206324B2 (ja) 2023-01-17

Family

ID=52232049

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017513499A Pending JP2017526981A (ja) 2014-09-10 2015-08-31 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法
JP2021090958A Active JP7206324B2 (ja) 2014-09-10 2021-05-31 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017513499A Pending JP2017526981A (ja) 2014-09-10 2015-08-31 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法

Country Status (5)

Country Link
US (1) US10277393B2 (ja)
EP (2) EP2996033A1 (ja)
JP (2) JP2017526981A (ja)
ES (1) ES2729874T3 (ja)
WO (1) WO2016037885A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019079048A1 (en) * 2017-10-18 2019-04-25 Cryptography Research, Inc. PROTECTION OF A MODULAR INVERSION OPERATION AGAINST EXTERNAL SURVEILLANCE ATTACKS
FR3088452B1 (fr) * 2018-11-08 2023-01-06 Idemia France Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique
WO2023141935A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Techniques, devices, and instruction set architecture for balanced and secure ladder computations
WO2023141934A1 (en) 2022-01-28 2023-08-03 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations
WO2023141933A1 (en) 2022-01-28 2023-08-03 Nvidia Corporation Techniques, devices, and instruction set architecture for efficient modular division and inversion
US11930114B1 (en) * 2023-08-02 2024-03-12 Thomas Michael Kremen Message encryption through identification of a sequential prime number

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114315A1 (ja) 2007-03-19 2008-09-25 Fujitsu Limited Fault攻撃対策機能を搭載した組み込み装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991414A (en) 1997-09-12 1999-11-23 International Business Machines Corporation Method and apparatus for the secure distributed storage and retrieval of information
EP2605444A1 (en) * 2011-12-16 2013-06-19 Gemalto SA Method for signing or deciphering a message using CRT RSA resisting Differential Side-Channel Analysis
US8861718B2 (en) * 2012-02-10 2014-10-14 Electronics And Telecommunications Research Institute Method of preventing fault-injection attacks on Chinese Remainder Theorem-Rivest Shamir Adleman cryptographic operations and recording medium for storing program implementing the same
EP2738973A1 (en) * 2012-11-30 2014-06-04 Gemalto SA System and method for cryptography using multiplicative masking using simultaneous exponentiation techniques

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114315A1 (ja) 2007-03-19 2008-09-25 Fujitsu Limited Fault攻撃対策機能を搭載した組み込み装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Pablo Rauzy, Sylvain Guilley,A Formal Proof of Countermeasures Against Fault Injection Attacks on CRT-RSA,Cryptology ePrint Archive,2014年01月,Report 2013/506,Ver. 20140130171541,pp. 1-22,https://eprint.iacr.org/2013/506/20140130:171541,[2019年4月18日検索],インターネット

Also Published As

Publication number Publication date
EP2996033A1 (en) 2016-03-16
EP3191936B1 (en) 2019-03-13
JP2017526981A (ja) 2017-09-14
JP2021144239A (ja) 2021-09-24
US20170257211A1 (en) 2017-09-07
EP3191936A1 (en) 2017-07-19
WO2016037885A1 (en) 2016-03-17
US10277393B2 (en) 2019-04-30
ES2729874T3 (es) 2019-11-06

Similar Documents

Publication Publication Date Title
JP7206324B2 (ja) 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法
EP3091690B1 (en) Rsa decryption using multiplicative secret sharing
US20190034170A1 (en) Homogenous Atomic Pattern for Double, Add, and Subtract Operations for Digital Authentication Using Elliptic Curve Cryptography
US10367637B2 (en) Modular exponentiation with transparent side channel attack countermeasures
JP2017526981A5 (ja)
US11290272B2 (en) Elliptic curve point multiplication device and method in a white-box context
US8639944B2 (en) Zero divisors protecting exponentiation
RU2579990C2 (ru) Защита от пассивного сниффинга
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
US9992013B2 (en) System and method for providing defence to a cryptographic device against side-channel attacks targeting the extended euclidean algorithm during decryption operations
EP2738973A1 (en) System and method for cryptography using multiplicative masking using simultaneous exponentiation techniques
US10673610B2 (en) System and method for protecting a cryptographic device against fault attacks while performing cryptographic non-linear operations using linear error correcting codes
WO2017114739A1 (en) System and method for hiding a cryptographic secret using expansion
EP3166013B1 (en) Modular exponentiation using randomized addition chains
US10361855B2 (en) Computing a secure elliptic curve scalar multiplication using an unsecured and secure environment
US9755829B2 (en) Generation of cryptographic keys
WO2018148819A1 (en) Cryptographic scheme with fault injection attack countermeasure
US20170012769A1 (en) Imbalanced montgomery ladder
Shukla et al. A Comparative analysis of the attacks on public key RSA cryptosystem

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230104

R150 Certificate of patent or registration of utility model

Ref document number: 7206324

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150