(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-06
(45)【発行日】2023-01-17
(54)【発明の名称】暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法
(51)【国際特許分類】
G09C 1/00 20060101AFI20230110BHJP
【FI】
G09C1/00 650A
(21)【出願番号】P 2021090958
(22)【出願日】2021-05-31
(62)【分割の表示】P 2017513499の分割
【原出願日】2015-08-31
【審査請求日】2021-06-07
(32)【優先日】2014-09-10
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】519271263
【氏名又は名称】タレス・ディス・フランス・エス・ア
(74)【代理人】
【識別番号】110001173
【氏名又は名称】弁理士法人川口國際特許事務所
(72)【発明者】
【氏名】ダビ・ビジラン
【審査官】金沢 史明
(56)【参考文献】
【文献】国際公開第2008/114315(WO,A1)
【文献】欧州特許出願公開第02738973(EP,A1)
【文献】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日検索],インターネット
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
H04L 9/00- 9/40
(57)【特許請求の範囲】
【請求項1】
べき乗演算Xを有する復号操作を行う暗号装置によって行われる方法であって、
べき乗演算S=m
d 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
iおよびdq
iを有し、繰り返しが、計算:
A=A*A mod n
IF (dp
i=0 && dq
i=0)
A=A*1 mod n
IF (dp
i=1 && dq
i=0)
A=A*mp mod n
IF (dp
i=0 && dq
i=1)
A=A*mq mod n
IF (dp
i=1 && dq
i=1)
A=A*m mod nを
0からkまで行う繰り返しである、請求項
1に記載の方法。
【請求項3】
フォールト攻撃から保護される電子デバイスであって、中央処理ユニット、メモリ、および命令ストレージを備え、請求項1
または2の方法を中央処理ユニットに実行させる命令を命令ストレージが含む、電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に電子暗号技術に関し、具体的には、連立べき乗技法を使用する乗算マスクを使用することによって、サイドチャネル攻撃からセキュリティデバイスを保護することに関する。
【背景技術】
【0002】
電子的な通信および商業は強力なツールだが、危険でもある。インターネットなど、広範囲でネットワーク技術が利用可能なことにより、通信および商業のためのオンラインツールがますます多く利用されるようになっている。通信文または商業のどちらの形であっても、重要なトランザクションを行うにはコンピュータおよびコンピュータネットワークを使用すると簡単または迅速になることに気付くユーザが年々増加している。しかし、電子トランザクションのセキュリティがそのトランザクションに参加する権利を持たない第三者による傍受を介して危険にさらされるという、リスクが常に存在する。悪意の第三者が、本来はプライベートなトランザクションおよびデータへアクセスした場合、経済的損失、プライバシー損失、さらには物理的安全性損失のリスクが存在する。電子トランザクションおよびデータのプライバシーに対する侵害を防ぐために採用される1つの機構が、暗号である。
【0003】
暗号は、第三者の存在下で数学的技法を使用してメッセージを秘匿するための技術であり、メッセージは、メッセージの受信者および/または送信者のみが知るはずの秘密鍵を使用してのみ復号可能なように暗号化される。
【0004】
暗号アルゴリズムは入力および出力を有する。暗号化の場合、入力は、「平文」で書かれた保護対象のメッセージである。この平文メッセージは暗号アルゴリズムで処理されて、「暗号文」、つまり出力を生成する。暗号文を生成するために、暗号アルゴリズムは、秘密鍵の使用を含む一定の数学演算を行う。鍵は、例えば送信者と受信者の間の共有秘密鍵であってもよいし、または、受信者が保有するプライベート鍵でもよい。
【0005】
よく使用される暗号技法の1つにRSAアルゴリズムがあり、その名前は、発明者であるRivest、Shamir、およびAdelmanにちなむ。安全性の高い暗号文を得るために、RSAアルゴリズムは、大きな整数の因数分解が困難であることに依存する。あるユーザが、ほぼ同じサイズの2つの大きな素数をランダムに選択し、その2つの数を乗算することによって、公開鍵を作成する。その結果、そのユーザの「公開鍵」が得られ、ユーザはそれを公開して、それにより他のエンティティがそのユーザに代わってメッセージを暗号化することができるようにしてもよい。「公開鍵」は公開されており、それを使用して誰もがメッセージを暗号化することができるが、暗号化されたメッセージは、対応する「プライベート鍵」を使用してのみ復号することができ、この鍵は事実上、公開鍵を生成するために使用された2つの素数から成る。したがって、RSAアルゴリズムにより得られるセキュリティにとって、プライベート鍵が秘密に保たれ、RSA暗号化されたメッセージのセキュリティを破ろうとする第三者に見つけられないことが非常に重要である。
【0006】
RSAアルゴリズムの詳細は本明細書の範囲外であるが、本明細書では考察の目的で、このアルゴリズムを、メッセージMを暗号化して暗号文Cにすること、および、暗号文Cを復号してメッセージMへ戻すことの、2つの相補的な計算に還元することができる。公開鍵は、2つの大きな素数pおよびqから算出される。pとqから、数n=pqが算出され、nは、プライベート鍵と公開鍵の両方の、法(モジュラス)である。さらに、pとqから公開鍵のべき指数eが計算される。
【0007】
1<e<φ(n)、かつ(e,φ(n))の最大公約数が1、すなわちeとφ(n)が互いに素であるようにeを選択する。ここで、n=pqおよびφ(n)はオイラーのトーシェント関数である。
【0008】
よって、公開鍵は1対の整数(n,e)から成る。
【0009】
対応するプライベート鍵は1対の整数(n,d)から成り、d≡e-1(mod φ(n))である。ここで、φ(n)はオイラーのトーシェント関数である。
【0010】
公開鍵(n,e)を使用して、次の式によってメッセージMが暗号文Cに暗号化される。
C=Me mod n
【0011】
対応するプライベート鍵(n,d)を使用して、次の式によって暗号文CからメッセージMが回復され、復号される。
M=Cd(mod n)
【0012】
また、RSAを使用してメッセージMに暗号署名を行い、署名付きメッセージS、すなわち次の式のメッセージにすることもできる。
S=Md(mod n)
【0013】
大きな整数のべき乗は高コストな計算なので、通常、これらの計算は直接には行われない。より効率的な、小さい整数のべき乗を伴う計算では、中国剰余定理を使用する。詳細には触れないが、中国剰余定理の手法は、次のべき乗剰余を含む。
Sp=Mp
dp mod p
Sq=Mq
dp mod q
ここで、dp=d mod (p-1)かつdq=d mod (q-1)であり、
Mp=M mod pかつMq=M mod qである。
【0014】
RSA-CRT署名の計算は、次の3つの主要ステップで構成される。
- Spの計算(計算の約45%)
- Sqの計算(計算の約45%)
- SpおよびSqからSを再結合(計算の約10%)
【0015】
サイドチャネル攻撃は、暗号計算を行うデバイスのプログラムタイミング、電力消費、および/または電子的放射を利用する。デバイスの挙動(タイミング、電力消費、および電子的放射)は変動し、暗号アルゴリズムで処理されるプログラムおよびデータに直接依存する。攻撃者は、これらの変動を利用して、機密データを推察し、その結果、プライベート鍵を回復することもできる。
【0016】
フォールト攻撃という名前は、計算が行われている間に故障(フォールト)を作り出し、その故障により生まれた結果を利用して秘密鍵を推定する手法に由来する。一般に、故障を注入するには、故障注入に最も成功しやすい瞬間を決定することを含む事前のステップが必要である。この事前のステップは通常、電力または電子的放射トレースの観察を通したプログラムのリバースエンジニアリングによって行われる。RSA-CRTは特にフォールト攻撃に対して弱く、その理由は、SpまたはSqのどちらかの計算のみを妨害するだけで、侵入者はプライベート鍵を推定することができ、どちらにしても、故障効果が引き起こされるからである。さらに、SpまたはSqを計算する機密ステップは通常、電力トレースで簡単に特定できるので、これらの2つのステップ中に故障を誘発させるための設定を比較的簡単に行うことができる。SpおよびSqは全体署名のそれぞれ約45%という大きな部分をプロセスで占めるので、どちらかの計算を妨害するための時間は十分ある。よって、SpとSqのどちらかの計算を妨害する故障によって、プライベート鍵の素因数を無許可で回復することが可能になり得る。
【0017】
フォールト攻撃からの防御に使用される機構の1つは、演算中に故障が導入されるのを確実に防ぐために、署名操作を2回行うことである。そのような操作を2回行えば、その対策は高費用になることがある。
【0018】
その他の従来技法には、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頁)がある。
【0019】
これらの従来技術の技法は2つのタイプに分類できる。
- Shamirの技法はAumullerおよびVigilantの技法の元となった技法であり、べき乗の前に、法に小さな乱数を乗算することを含む。この新しい数を法としてべき乗が行われ、べき乗の後に、この小さな乱数を法として、いくらかの無矛盾性チェックを行うことができる。再結合の後に、全体的な無矛盾性チェックが行われる。全体的な無矛盾性チェックの結果が正常でない場合は、フォールト攻撃が検出されたことになる。
- Giraudの技法は、モンゴメリ・ラダーのべき乗アルゴリズムの使用を含み、このアルゴリズムは、Xy mod Zを計算するとき、(X(y-1) mod Z, Xy mod Z)を出力する。
【0020】
これらの従来の技法に共通することは、Giraudの技法を除き、どの技法も、何らかの確率で故障を検知するということである。しかし、Giraudの技法には、実装に大量のRAMメモリを必要とするという短所がある。さらに、これらの技法は、Spの計算、Sqの計算、および再結合という3ステップ構造を保つ。3つのステップがあることにより、攻撃者に、フォールト攻撃をセットアップする機会が複数回与えられる。
【先行技術文献】
【特許文献】
【0021】
【非特許文献】
【0022】
【文献】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頁
【発明の概要】
【発明が解決しようとする課題】
【0023】
上記から、ホストコンピュータに接続されたスマートカードなどのポータブルセキュリティデバイスが、計算の効率が高く、過剰に大きなレジスタまたは他のストレージを必要とせず、フォールト攻撃から保護される暗号サービスの能力を提供できる安全な機構を提供する、改善された技術への需要がなおも存在することが明らかである。
【図面の簡単な説明】
【0024】
【
図1】1つまたは複数のサーバへのネットワークを介した接続を通して暗号サービスを行うために、例えばスマートカードなどのポータブルセキュリティデバイスが接続されたホストコンピュータの概略図である。
【
図2】ポータブルセキュリティデバイスの概略図である。
【
図3】
図2のポータブルセキュリティデバイスのメモリに記憶されたプログラムの概略図である。
【
図4】
図3に示されるポータブルセキュリティデバイスのメモリに記憶されてもよく、べき乗演算を含む復号を行う、従来技術の暗号モジュールのプログラムリスティングの概略図である。
【
図5】常時平方乗算アルゴリズムに従い、べき乗剰余を使用して、半分のサイズの要素で2つのべき乗演算すなわちS
p=(M
dp) mod pおよびS
q=(M
dq) mod qを行う、暗号復号操作を行うための従来技術の方法を示す図である。
【
図6】
図4および
図5のアルゴリズムと同じ鍵材料を使用しながらも、好ましい実施形態によって、べき乗をただ1回行うだけで復号を行う、半分のサイズの要素を使用する修正された復号アルゴリズムを実装する、暗号モジュールを示す図である。
【発明を実施するための形態】
【0025】
本発明の実施形態の下記の詳細な説明では添付図面を参照し、図面には、説明の目的で、本発明が実践されてもよい特定の実施形態の例が示される。これらの実施形態は、当業者が本発明を実施することを可能にするために十分詳細に説明される。本発明の様々な実施形態はそれぞれ異なっているが、必ずしも互いに排他的ではないことが理解される。例えば、本明細書で一実施形態に関連して記載される具体的な特徴、構造、または特性が、本発明の範囲を逸脱することなく他の実施形態の中に実装されてもよい。加えて、開示される各実施形態の中の個々の要素の位置または配置が、本発明の趣旨および範囲を逸脱することなく修正されてもよいことが理解される。下記の詳細説明は、したがって、制限的な意味に解釈されるべきではなく、本発明の範囲は添付の特許請求の範囲のみによって定められ、特許請求の範囲を与えられる均等物の全範囲とともに適切に解釈される。図面において、複数の図を通して、同様の数字は同じまたは類似の機能を指す。
【0026】
本発明の一実施形態では、スマートカードに格納されたプライベート鍵を使用して、差分電力解析攻撃のリスクを効率的に減少させる様式で、文書に電子署名を行うため、または暗号化された文書もしくはメッセージを復号するために使用するように、スマートカードまたは他のポータブルセキュリティデバイスの使用を可能にする技術が提供される。
【0027】
スマートカードは、内蔵されたマイクロプロセッサおよび安全なストレージを有するプラスティック製カードである。このカードはポータブル、安全、かつ耐タンパーである。スマートカードは、遠隔通信、銀行業務、商業、および住民基本台帳を含む多くの分野にセキュリティサービスを提供する。スマートカードは、そのスマートカードをスマートカードリーダに接続する電気コネクタを有するクレジットカード形状のカード、スマートカードが内蔵されたUSBトークン、および、携帯電話およびタブレットデバイス内で使用するためのSIMカードなどの、様々な形をとることができる。本明細書では、スマートカードは、本明細書に記載される技術の実装に使用されてもよいポータブルセキュリティデバイスの例として使用される。ポータブルセキュリティデバイスの他の例には、スマートメモリカード、フラッシュメモリなどが含まれる。好ましい一実施形態では、ポータブルセキュリティデバイスは、プロセッサ、プログラムおよびデータを記憶するためのメモリ、ならびに、そのデバイスを比較的タンパープルーフにするための、いくらかのセキュリティ機能を有する。それらのデバイスの例として、本明細書ではスマートカードを使用する。
【0028】
本明細書に記載される暗号計算のマスキングの機構は、暗号計算を行うために使用されるスマートカードまたは他のポータブルセキュリティトークンにおいて有利に使用されるが、同じ機構はまた、他の暗号プロセッサとともに使用され得る。よって、本明細書では、スマートカードを説明の目的にのみ使用する。
【0029】
デジタル署名およびその他の暗号は、スマートカードが提供する機能の例である。スマートカードは、安全なストレージ内にプライベート鍵または共有秘密鍵を格納し、暗号操作を行って、所与の入力にデジタル署名を生成するか、または、所与の入力を復号する。スマートカードは、パーソナルコンピュータ(PC)、携帯電話、タブレットデバイス、または銀行業務端末などのホストデバイスとともに動作する。EメールクライアントまたはウェブブラウザなどのPCアプリケーションは、通常、スマートカードを使用して文書への署名、文書の暗号化または復号を行う。暗号操作は、ユーザ認証のためのチャレンジレスポンス機構の一部であってもよい。PCアプリケーションとスマートカードは、ミドルウェアと呼ばれる、スマートカードと通信するように指定された何らかの暗号APIを通して対話する。このシナリオでは、スマートカードはPCにローカルでサービスを提供する。
【0030】
図1は、例えばスマートカードなどのポータブルセキュリティデバイス109とともにホストコンピュータ103を1つまたは複数のリモートサーバ113に接続するネットワーク111の概略図である。ホストコンピュータ103は、ウェブブラウザのウェブブラウザウィンドウ105を介してサーバ113の1つと対話するユーザ101によって操作される。
図1に示されるシナリオ例では、スマートカード109は、例えば文書への暗号署名、信頼できる相手113から受信したメッセージの復号、またはチャレンジレスポンス認証機構の一部として暗号操作を行うために、ユーザ101に代わって暗号操作を提供する。
【0031】
図1には、暗号が重要な役割を果たし得る1つのシナリオが示されているが、暗号には他にも多くの重要な用途がある。よって、本明細書に記載される技術の適用例は、
図1に示される用途の例に限定されない。
【0032】
図2は、例えばスマートカードなどのポータブルセキュリティデバイス109の概略図である。ポータブルセキュリティデバイス109は、バス202を介してランダムアクセスメモリ(RAM)203、読み出し専用メモリ(ROM)204、および不揮発性メモリ(NVM)205に接続されたプロセッサ201を含んでもよい。ポータブルセキュリティデバイス109は、プロセッサ201を、通常これもバス202を介して、コネクタ211に接続するための入出力インタフェース207をさらに含んでおり、そのコネクタによってポータブルセキュリティデバイス109がホストコンピュータ103に接続されてもよい。
【0033】
代替実施形態では、ホストコンピュータ103とポータブルセキュリティデバイス109の間の接続は、例えば近距離通信(NFC)またはその他のラジオ波もしくはマイクロ波通信技術を使用した、無線式である。
【0034】
NVM205および/またはROM204は、
図3に示されるように、コンピュータプログラム301を含んでもよい。本明細書では、コンピュータプログラム301はROM204またはNVM205にすべて同一場所で配置されていることを示しているが、実践ではそのような制限はなく、プログラムが複数のメモリにわたり分散してもよいし、さらにはRAM203に一時的にインストールされてもよい。さらに、ポータブルセキュリティデバイス109は複数のROMまたはNVMを含んでもよい。プログラム301は、ポータブルセキュリティデバイス109にロードされたアプリケーションプログラム(複数)ならびにオペレーティングシステムプログラムを含む。NVM205またはROM204はまた、プライベート鍵209または共有秘密鍵210などのプライベートデータを含有してもよく、データは基本形または導出された数量で記憶される。
【0035】
ポータブルセキュリティデバイス109のプログラム301は、暗号モジュール213、ユーザ認証モジュール215、通信モジュール217、およびオペレーティングシステムOS219を含んでもよい。
【0036】
よって、ポータブルセキュリティデバイス109は、コネクタ211を介して文書またはメッセージを受け取ってもよい。プロセッサ201は、暗号モジュール213の命令を実行することによって、文書/メッセージにデジタル署名を行うか、または、文書/メッセージをプライベート鍵209または共有秘密鍵210を使用して復号してもよい。通信モジュール217を通して提供される機能を使用して、プロセッサ201はホストコンピュータ103との間で通信の受信および送信を行ってもよい。
【0037】
図4は、暗号モジュール213の、従来技術の考えられる実装の概略である。暗号モジュール213は、1つまたは複数の関数、メソッド、またはルーチンを含み得る。
図4に示されるように、暗号関数()と呼ばれる1つの関数が考えられる。この関数は引数Mをとり、Mは署名または復号の対象となるメッセージである。暗号モジュール213で、標準的なRSAの式401、すなわちS=m
D mod nを使用して署名Sが計算される。
【0038】
別の従来技術の手法では、暗号操作を行うために中国剰余定理を使用して暗号関数()を実装し、これには半分のサイズの要素にべき乗剰余計算401を行うことが含まれる。
【0039】
当業者には理解されるように、この操作は、効率のために低いレベルの算術文に還元できる。M
dp mod pを効率的に計算するための一般的な手法は、常時平方乗算(Square-and-MultiplyAlways)アルゴリズムである。
図5は、従来の常時平方乗算手順を示す暗号モジュール213’のプログラムリスティングであり、下記のとおりに定められる数量dp、dq、およびiq(ステップ501)を使用して、Sp=M
dp 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=[dp
n-1,dp
n-2,....,dp
2,dp
1,dp
0]
かつ
dq=[dq
n-1,dq
n-2,...,dq
2,dq
1,dq
0]
【0040】
次に、ステップ503で、Garnerの式を使用してSが計算され得る。
S=Sq+q*(iq*(Sp-Sq) mod p
【0041】
図5のアルゴリズムは半分のサイズの要素を使用するので、
図4のアルゴリズムよりもずっと効率的である。
【0042】
本明細書で下記に記載される本発明の一実施形態によれば、暗号モジュール213’(
図6)は
図4および
図5のべき乗アルゴリズムの修正版を使用し、これは、
図5のアルゴリズムのように半分のサイズのべき指数を使用しながら、べき乗を1回だけ行う。この修正手法は、
図5に示される。
【0043】
図6は、半分のサイズのべき指数を使用しながらただ1回のべき乗を行って結果S=m
D mod nを計算する、修正版のべき乗剰余計算401cを示すプログラムリスティングであり、例えばポータブルセキュリティデバイス109の、例えばROM204またはNVM205などのメモリに組み込まれた暗号モジュール213”の好ましい実施形態に使用される。べき乗計算401cは、中国剰余定理の別の使用法によってSを計算する。
【0044】
このアルゴリズムの入力は次のとおりである。
m:復号されるメッセージ
qおよびp:乗算するとnになる2つの大きな素数
【0045】
べき乗計算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
【0046】
モジュラ算術により、上記の計算から、次の関係が成り立つことが示され得る。
mq mod p=1
mq mod q=m mod q
mp mod q=1
mp mod p=m mod p
【0047】
この計算は、数量dpおよびdqも使用し、これらは上記の数量pおよびqからそれぞれ次のように定まる。
dp=d mod (p-1)
dq=d mod (q-1)
【0048】
ステップ603でアキュムレータ値Aが1に初期化される。
【0049】
次に、dpのバイナリ表現dp=[dp0,dp1,....,dpk-1,dpk]およびdq=[dq0,dq1,....,dqk-1,dqk]を使用して、dpとdqの全ビットについて、アキュムレータAを修正しながらSが反復計算される(ループ605)。値Aは、dpiとdqiの各ビットの値に応じて下記のように更新される。
【0050】
各繰り返しの始めに、ステップ607で、AがA=A*A mod nにセットされる。
【0051】
値のペアdpiとdqiがとり得る値には、互いに排他的と考えられ得る4つの場合、dpi=0かつdqi=0、dpi=1かつdqi=0、dpi=0かつdqi=1、および、dpi=1かつdqi=1がある。
【0052】
1つ目の場合(dpi=0かつdqi=0)は、ステップ609で、AはA=A*1 mod nにセットされる。この演算は恒等演算であるからAの値を変化させないので、実際の実装では、なにもしないことによりこのステップは迂回される。
【0053】
2つ目の場合(dpi=1かつdqi=0)は、ステップ611で、AはA=A*mp mod nにセットされる。
【0054】
3つ目の場合(dpi=0かつdqi=1)は、ステップ613で、AはA=A*mq mod nにセットされる。
【0055】
4つ目の場合(dpi=1かつdqi=1)は、ステップ615で、AはA=A*m mod nにセットされる。
【0056】
最後に、dpiとdqiの全ビットがループ605によって処理された後でAに保持されている結果は値S=mD mod nであり、ステップ617で署名付きメッセージSとして呼び出し側ルーチンに返され得る。
【0057】
べき乗の各繰り返しiにおいて、アキュムレータAはSiに等しく、次のとおりである。
Si mod p=m(dp0 dp1 dp2...dpi) mod p
Si mod q=m(dq0 dq1 dq2...dqi) mod q
【0058】
これらの関係は、次の理由により真である。
- ステップ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のどちらに起因する変化もない。
【0059】
よって、最後の繰り返しの後、すなわちi=kのとき、
Sp=Sk mod p=mdp mod p
Sq=Sk mod q=mdq mod q
【0060】
言い換えれば、
Sp=S mod p
Sq=S mod q
したがって、
S=Sk=Aである。
【0061】
上記により、複数のべき乗をフォールト攻撃にさらすことなく、それにより、暗号化に使用された鍵材料の露見から保護しながら、半分のサイズのべき指数値を使用して非常に効率的な方法で署名付きメッセージSを算出する機構が本明細書に提示されることは明白である。
【0062】
前述した機構について、常時平方乗算技法を背景として説明してきた。この機構は、他のべき乗技法にも容易に適合される。
【0063】
本発明の特定の実施形態について説明および図示してきたが、本発明はそのように記載および図示されたとおりの、特定の形または部分の構成に制限されない。本発明は、特許請求の範囲のみによって制限される。