JP2002358010A - べき乗剰余演算器 - Google Patents

べき乗剰余演算器

Info

Publication number
JP2002358010A
JP2002358010A JP2001163719A JP2001163719A JP2002358010A JP 2002358010 A JP2002358010 A JP 2002358010A JP 2001163719 A JP2001163719 A JP 2001163719A JP 2001163719 A JP2001163719 A JP 2001163719A JP 2002358010 A JP2002358010 A JP 2002358010A
Authority
JP
Japan
Prior art keywords
register
remainder
montgomery
bit
execution means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001163719A
Other languages
English (en)
Inventor
Kazuo Asami
和生 朝見
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.)
Renesas Design Corp
Mitsubishi Electric Corp
Original Assignee
Renesas Design Corp
Mitsubishi Electric Corp
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 Renesas Design Corp, Mitsubishi Electric Corp filed Critical Renesas Design Corp
Priority to JP2001163719A priority Critical patent/JP2002358010A/ja
Priority to US10/096,883 priority patent/US20030033340A1/en
Publication of JP2002358010A publication Critical patent/JP2002358010A/ja
Pending 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/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 回路規模が小さく、高速処理が可能なべき乗
剰余演算器を提供する。 【解決手段】 べき乗剰余演算器は、鍵eを保持するe
レジスタ102およびモンゴメリ変換をする乗数Yを保
持するYレジスタ103間でデータのやり取りを行なう
内部バス115と、鍵Nを保持するNレジスタ104、
モンゴメリ変換の演算時に行なう2B+Nの値を保持す
るB2Nレジスタ105、平文Xを保持するXレジスタ
106、暗号化および復号化のための演算を行なう演算
回路107および演算結果Pを保持するPレジスタ10
8間でデータのやり取りを行なうための内部バス116
と、べき乗剰余演算実行時のステートマシンとしての役
割を果たすべき乗剰余制御回路109と、モンゴメリ乗
算剰余演算と剰余演算との実行時のステートマシンとし
ての役割を果たすモンゴメリ乗算剰余・剰余制御回路1
10とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報通信ネットワ
ーク、交通、金融、医療、流通等の分野において使用さ
れる情報の暗号化技術および復号化技術で使用されるべ
き乗剰余演算器に関し、特に、モンゴメリ(Montgomer
y)のアルゴリズムを用いてべき乗剰余演算を行なうべ
き乗剰余演算器に関する。
【0002】
【従来の技術】情報通信技術の発展に伴い、情報ネット
ワーク上のセキュリティの確保(データの盗用や破壊を
防止すること)が重要視されるようになってきている。
そのため、情報の暗号化技術および復号化技術が採用さ
れることが多く、その適用分野は単なる情報通信分野に
留まらず、交通、金融、医療、流通等の身近な分野にま
で広がりつつある。この種の暗号化技術および復号化技
術には、高度なセキュリティを単純な原理によって実現
できることが要求される。
【0003】まず、この種の技術の理解を容易にするた
め、情報の暗号化・復号化についての概略を説明する。
暗号の世界においては、“非対称暗号アルゴリズム”が
質的に優れている。非対称暗号アルゴリズムとは、暗号
化鍵と復号化鍵とが異なっており、そのいずれか一方か
ら他方が“容易に計算できない”暗号アルゴリズムをい
う。この非対称暗号アルゴリズムの代表的なものに、べ
き乗剰余演算(ある数Xを何回も乗算してNで割った余
りをとる計算)を用いるタイプのRSA(Rivest-Shami
r-Adleman scheme)暗号がある。
【0004】RSA暗号を生成するには、次式(1)の
べき乗剰余演算の形式が基本として使用される。式
(1)は、XYをNで割ったときの余りを求めることを
意味する。また、式(1)において、Xは暗号化(復号
化)の対象となる平文、YおよびNは暗号化(復号化)
のための鍵(キー)である。
【0005】XYmodN …(1) このべき乗剰余演算を用いることにより、情報の暗号化
および復号化が容易に実行され、かつX、Y、Nのオペ
ランドビット長を長くすることで、各鍵の解読を困難に
することができる。
【0006】しかし、オペランドビット長を長くする
と、べき乗剰余演算に長時間を要することになる。そこ
で、オペランドビット長が長いべき乗剰余演算をいかに
短時間に終了させるかがポイントとなる。
【0007】次に、RSA暗号を例に取り、べき乗剰余
演算を使用した暗号化処理および復号化処理について説
明する。
【0008】[RSA暗号の暗号化および復号化につい
て]RSA暗号の暗号化には、次式(2)が用いられ
る。
【0009】C=MemodN …(2) 復号化には、次式(3)が用いられる。
【0010】M=CdmodN …(3) ここで、Mは暗号化の対象となる平文、Cは暗号化され
た平文すなわち暗号文である。また、式(2)における
eおよびNは暗号化鍵、式(3)におけるdおよびNは
復号化鍵である。また、以下の式(4)および式(5)
の関係が予め与えられている。
【0011】 N=p・q …(4) 1≡e・dmod{LCM(p−1,q−1)} …(5) ここで、「≡」は、左辺と右辺とが相似であることを意
味し、「LCM」は、最小公倍数を意味する。またpと
qとは互いに素な整数である。なお、eおよびNは公開
鍵であり、d、pおよびqは秘密鍵である。
【0012】式(4)および式(5)は、ともに暗号ア
ルゴリズムにおけるべき乗剰余演算の数値の条件を定義
している。式(4)は、Nは互いに素な大きな素数pお
よびqの積であることを示している。pおよびqはとも
に奇数なので、当然Nは奇数でなければならない。式
(5)は、式(4)で示したpおよびqからそれぞれ1
を減じた値同士の最小公倍数で、eおよびdの積e・d
を当該最小公倍数で割ったときの余りが1になることを
示している。
【0013】式(4)および式(5)の条件に基づき、
平文Mは式(2)を用いて暗号化され、また暗号化され
た平文M(暗号文C)は式(3)を用いて復号化され
る。
【0014】[べき乗剰余演算の演算方法について]次
に暗号化・復号化で使用される、べき乗剰余演算の演算
方法を説明する。A=MemodNのべき乗剰余演算は、整
数eの2進数展開をe=ek-1…e10として、以下の
フロー1に示す反復平方積法を用いることにより実行さ
れる。
【0015】 Aに格納された値が求めたいべき乗剰余演算の解にな
る。
【0016】以上のように演算の基本は、式(6)およ
び式(7)に示すように乗算と除算(mod算)である。
乗算は、初期値を1とするAの値に対してA×Aまたは
A×Mを行なう部分である。除算は、各々の乗算で得ら
れた値に対してmodN(Nで割ったときの余りを求める
演算)を行なう部分である。この“乗算と除算”(A×
AmodN、A×MmodN)を1対の演算として、“e”の
ビット値に従って繰返し演算が行なわれる。すなわち、
“e”の最上位ビットから最下位ビットまでの各ビット
の内容によって“乗算と除算”が行なわれる。
【0017】べき乗剰余演算は、基本となる剰余演算
(mod算)を繰返し行なうことで解が得られることを示
したが、この繰返し回数自体は、たかだか数百〜数千回
であるので、ソフトウェアによる処理でも十分に対応で
きる。しかし、この剰余演算自体すなわち除算をハード
ウェアによって実行するためには、大規模な演算回路と
複雑な処理手順とが必要とされる。このため改善が望ま
れていた。通常、e,d,M,Nなどは1024ビット
程度の大きな整数が用いられているので、高速指数計算
法を使用しても1回のRSA演算で平均1500回程度
の多重精度乗算と剰余算とを行なわなければならない。
特に剰余算は、近似法、剰余テーブル方式、モンゴメリ
のアルゴリズム等、多くの高速化手法が提案されてい
る。
【0018】このような、RSA暗号に代表される公開
鍵暗号の多くで利用される、べき乗剰余演算を高速に処
理するためには、1回当りの剰余算の高速化が要求され
る。モンゴメリのアルゴリズムは、剰余算を高速処理す
るアルゴリズムである。特に、乗算剰余演算において
は、除算をビットシフトなどで簡略化できるため、公開
鍵暗号(RSA暗号等)で用いられるべき乗剰余演算を
高速処理することができるという特徴がある。
【0019】一方、中国人の剰余定理により、合成数を
法とする演算は合成数を構成する互いに素な因数を法と
する演算から計算できる。これを1024ビット長RS
A暗号処理に適用すると、実際に必要なハードウェアと
しては、1024ビット長の法Nによるべき乗剰余演算
器ではなく、512ビット長の整数(ここではpおよび
qに相当する)を法とする演算回路のみでよい。このた
めハードウェアの小型化に繋がる。
【0020】べき乗剰余演算は、基本となる剰余演算
(mod算)を実行する手順が非常に複雑であるため、演
算回路が大規模化してしまうことを上述した。そこで、
モンゴメリは、剰余演算(mod算)を先のような一般的
な方法で行なわずに、“乗算”と簡単なビット列処理と
で行なうことによって解を得る仕組みを提案している。
以下にモンゴメリが提案している手法について簡単に説
明する。
【0021】[モンゴメリのアルゴリズム]剰余演算の
高速化を実現する一手法であるモンゴメリのアルゴリズ
ムについて説明する。
【0022】モンゴメリのアルゴリズムは、剰余の法N
(N>1)と、剰余の法Nと互いに素である基数R(R
>N)とを用いると、被剰余数をTとした場合、TR-1
modNの計算が基数Rによる除算のみで行なえる性質を
利用している。これにより、Nによる除算を用いること
なく剰余計算を行なうことができる。ここで、N,R,
-1およびTは整数である。被剰余数Tは0≦T<R・
Nを満たす数である。R-1は剰余の法Nの上での基数R
の逆数である。またここでさらに、R・R-1−N・N′
=1(0≦R-1<N、0≦N′<R)の関係を満たす整
数N′を考えることができる。さらに、この基数Rに2
のべき乗数を使用した場合、基数Rによる除算をシフト
操作に置き換えることができる。このため、T→TR-1
modN(被剰余数をTとした場合のTR-1modN)の計算
の高速処理が可能となる。
【0023】次にアルゴリズム1として、T→TR-1mo
dNのアルゴリズムMR(T)を示す。ただし、アルゴ
リズム1において(T+m・N)/Rは必ず割り切れる
ことが証明されている。
【0024】(アルゴリズム1)T→TR-1modNのア
ルゴリズムY=MR(T)は次のように表わされる。
【0025】 M=(TmodR)・N′modR …(8) Y=(T+m・N)/R …(9) if Y≧N then Y=Y−N Y<N then return Y 1回のMRでは、剰余TmodNではなくTR-1modNが求
められるだけである。よって、剰余TmodNを求めるた
めには、次に示すようにMR(T)と予め求めておいた
2modNとの積で、再びMR演算を行なえばよい。
【0026】MR(MR(T)・(R2modN)) =(TR-1modN)・(R2modN)・R-1modN =TR-1・R2・R-1modN =TmodN このようにして剰余TmodNを求めることができる。
【0027】以上のことにより、モンゴメリ法による乗
算剰余演算を使用して、これをべき乗剰余演算の反復平
方積法(繰返し2乗法)で実現するアルゴリズムを下記
に示す。鍵eの上位ビットから検索し、鍵のビットの値
が1の場合には、MR(X・Y)のモンゴメリ乗算剰余
演算を行なう。
【0028】 Y=Rr (Rr=R2modN(R=2k+2)) X=M X=MR(X,Y) …(10) Y=MR(1・Y) …(11) for j=k to 1 if ej==1 then Y=MR(X・Y) …(12) if j>1 then Y=MR(Y・Y) …(13) end for Y=MR(1・Y) …(14) Y=YmodN …(15) ここで、MR(X・Y)とMR(Y・X)とは等しく、
ejは鍵eのjビット目を表わす。512ビット長の整
数の場合k=512となり、512ビットのべき乗剰余
演算は514ビットのモンゴメリ乗算剰余演算と512
ビット剰余演算とにより実現できる。
【0029】また、ハードウェアとして実装するのに最
適な基数Wの逐次計算でモンゴメリ乗算剰余演算結果P
=MR(B・A)を求めると、以下のようになる。
【0030】 W=2d N0′=N′modW P=0 for j=0 to k M=(PmodW)・N0′ …(16) P=((P+(AmodW)・B・W+M・N)/W)mod2k …(17) A=A/W …(18) End dは自然数であり、ハードウェアに依存する数である。
このようにして、モンゴメリ乗算剰余演算結果Pを求め
ることができる。d=1の基数2の逐次計算で514ビ
ットモンゴメリ乗算剰余演算結果P=MR(B・A)を
求めると、以下のようになる。
【0031】 N0′=N′mod2 P=0 for j=0 to 514 M=(Pmod2)・N0′ …(19) P=((P+(Amod2)・B・2+M・N)/2)mod2514 …(20) A=A/2 …(21) end 以上のように、べき乗剰余演算を実現するために、ハー
ドウェアで512ビット長のべき乗剰余演算にモンゴメ
リ法を使用し、ソフトウェアで中国人の剰余定理を利用
した処理を使用することが従来採用されている。ハード
ウェアへの実装方式は複数通りあり、実際に様々な方式
が採用されていると思われる。その一例を以下に示す。
【0032】図5を参照して、従来のモンゴメリ法を利
用したべき乗剰余演算器は、外部バスとのインタフェー
ス回路101と、鍵eを保持するeレジスタ102と、
モンゴメリ変換をする乗数Yを保持するYレジスタ10
3と、鍵Nを保持するNレジスタ104と、モンゴメリ
変換の演算時に行なう2B+Nの値を保持するB2Nレ
ジスタ105と、平文Xを保持するXレジスタ106
と、暗号化および復号化のための演算を行なう演算回路
107と、演算結果Pを保持するPレジスタ108と、
べき乗剰余演算実行時のステートマシンとしての役割を
果たすべき乗剰余制御回路109と含む。
【0033】べき乗算剰余演算回路は、さらに、モンゴ
メリ乗算剰余演算と剰余演算との実行時のステートマシ
ンとしての役割を果たすモンゴメリ乗算剰余・剰余制御
回路110と、加算および減算の演算制御を行なう加算
・減算制御回路111と、各種モードを保持するモード
レジスタ112と、コマンドを保持するコマンドレジス
タ113と、ステータスを保持するステータスレジスタ
114と、各種レジスタと演算回路107間でのデータ
のやり取りを行なうための内部バス115と、eレジス
タ102、べき乗剰余制御回路109およびモンゴメリ
乗算剰余・剰余制御回路110に接続され、鍵eを一時
的に保持する一時保持レジスタ119とを含む。
【0034】従来のべき乗剰余演算器では、回路規模を
小さくするために、各レジスタ間を共通の内部バス11
5で接続している。
【0035】また、式(12)で鍵eのjビット目の値
ejを使用する際に、一時保持レジスタ119に予め保
持された鍵eのjビット目を読込んで使用していた。こ
れにより、式(12)のY=MR(X・Y)で必要とさ
れる値のレジスタからの読込みと、鍵eのjビット目の
読込みとを同時に行うことができる。よって、高速に演
算を行うことが可能となる。
【0036】
【発明が解決しようとする課題】しかし、従来のべき乗
剰余演算器では、高速に演算を行うことができる反面、
余分な配線領域やレジスタ領域が必要となり、回路規模
が大きくなってしまう。
【0037】この問題は、式(15)に示す剰余演算
や、式(10)〜式(14)に示すモンゴメリ剰余演算
の場合にも生ずる。すなわち、Yレジスタ103に保持
された値と、Nレジスタ104、B2Nレジスタ105
またはXレジスタ106に保持された値とを交互に読み
出すこととすると、演算時間が長くなるという問題があ
る。一方、どちらか一方の値を予め一時保持レジスタ1
19に保持し、演算を行うようにした場合には、高速演
算が可能となるが、余分な配線領域やレジスタ領域が必
要となるため、回路規模が大きくなってしまう。
【0038】本発明は上述の課題を解決するためになさ
れたもので、その目的は、回路規模が小さく、高速処理
が可能なべき乗剰余演算器を提供することである。
【0039】
【課題を解決するための手段】本発明のある局面に従う
べき乗剰余演算器は、第1の種類のデータを保持する第
1のレジスタ群と、第1のレジスタ群に保持されたデー
タと並行して参照可能な種類のデータを保持する第2の
レジスタ群と、第1のレジスタ群に接続された第1の内
部バスと、第2のレジスタ群に接続された第2の内部バ
スと、第1および第2の内部バスに接続され、第1およ
び第2のレジスタ群に保持された値を並行して参照し、
モンゴメリ乗算剰余演算を実行するためのモンゴメリ乗
算剰余演算実行手段と、第1および第2の内部バス、な
らびにモンゴメリ乗算剰余演算実行手段に接続され、第
1および第2のレジスタ群に保持された値を並行して参
照し、モンゴメリ乗算剰余演算実行手段との間でデータ
のやり取りを行ない、べき乗剰余演算を実行するための
べき乗剰余演算実行手段とを含む。
【0040】並行して参照可能なデータを第1および第
2のレジスタ群に分けて保持し、モンゴメリ乗算剰余演
算またはべき乗剰余演算を実行する際に、第1および第
2のレジスタ群に保持されたデータを並行して参照す
る。このため、データの読み出しを高速に行なうことが
でき、高速処理が可能となる。また、従来のように一時
保持レジスタを必要としない。このため、回路規模を小
さくすることができる。
【0041】好ましくは、第1のレジスタ群に保持され
る第1の種類のデータは、1ビットごとに参照されるデ
ータであり、べき乗剰余演算器は、さらに、第1の内部
バス、モンゴメリ乗算剰余演算実行手段およびべき乗剰
余演算実行手段に接続され、モンゴメリ乗算剰余演算実
行手段またはべき乗剰余演算実行手段から供給される信
号に基づいて定められるビットのデータを第1の内部バ
ス上より取得し、モンゴメリ乗算剰余演算実行手段また
はべき乗剰余演算実行手段に供給する1ビット選択回路
を含む。
【0042】第1のレジスタ群から1ビットごとデータ
を読み出すのではなく、第1の内部バス上に存在するデ
ータから1ビットごとにデータを読み出すことができる
ようになる。このため、第1のレジスタ群に複数のレジ
スタが含まれており、かつ1ビット選択回路がない状態
では、各レジスタごとに1ビットずつデータを取得する
ための回路を設けなければならないが、1ビット選択回
路を設けることにより、各レジスタごとに設けられてい
る1ビットのデータを取得するための回路を共通化する
ことができる。よって、回路規模の小さいべき乗剰余演
算器を提供することが可能になる。
【0043】さらに好ましくは、モンゴメリ乗算剰余演
算実行手段は、外部より供給されるモード信号に基づい
て、カウント回数を変更可能なカウンタを有する。
【0044】モード信号に基づいてカウンタのカウント
回数を変更することができる。このため、テスト時には
カウンタのカウント回数を減らすことにより、モンゴメ
リ乗算剰余演算実行手段のテスト時間を短縮することが
できる。
【0045】さらに好ましくは、べき乗剰余演算実行手
段は、外部より供給されるモード信号に基づいて、カウ
ント回数を変更可能なカウンタを有する。
【0046】モード信号に基づいてカウンタのカウント
回数を変更することができる。このため、テスト時には
カウンタのカウント回数を減らすことにより、べき乗剰
余演算実行手段のテスト時間を短縮することができる。
【0047】さらに好ましくは、カウンタは、直列に接
続された複数のフリップフロップを含み、モード信号に
応じて複数のフリップフロップの一部の動作を停止させ
る。
【0048】フリップフロップの一部の動作を停止させ
ることにより、カウント回数を変更することが可能にな
る。
【0049】
【発明の実施の形態】[実施の形態1] [べき乗剰余演算器のハードウェア構成]図1を参照し
て、本発明の実施の形態1に係るべき乗剰余演算器は、
外部バスとのインタフェースであるI/F(インタフェ
ース)回路101と、鍵eを保持するeレジスタ102
と、モンゴメリ変換をする乗数Yを保持するYレジスタ
103と、鍵Nを保持するNレジスタ104と、モンゴ
メリ変換の演算時に行なう2B+Nの値を保持するB2
Nレジスタ105と、平文Xを保持するXレジスタ10
6と、暗号化および復号化のための演算を行なう演算回
路107と、演算結果Pを保持するPレジスタ108
と、べき乗剰余演算実行時のステートマシンとしての役
割を果たすべき乗剰余制御回路109とを含む。
【0050】べき乗剰余演算回路は、さらに、モンゴメ
リ乗算剰余演算と剰余演算との実行時のステートマシン
としての役割を果たすモンゴメリ乗算剰余・剰余制御回
路110と、加算および減算の演算制御を行なう加算・
減算制御回路111と、各種モードを保持するモードレ
ジスタ112と、コマンドを保持するコマンドレジスタ
113と、ステータスを保持するステータスレジスタ1
14と、インタフェース回路101、eレジスタ102
およびYレジスタ103に接続され、各種レジスタ間で
データのやり取りを行なう内部バス115と、Nレジス
タ104、B2Nレジスタ105、Xレジスタ106、
演算回路107およびPレジスタ108に接続され、各
種レジスタと演算回路107間でデータのやり取りを行
なうための内部バス116と、内部バス115および1
16に接続され、内部バス115および116の間でデ
ータの受け渡しの制御を行なうバス分割回路117とを
含む。
【0051】[モンゴメリ演算の演算方法]べき乗剰余
演算を行なうにあたり、高速化を実現するためにモンゴ
メリ法による乗算剰余演算と剰余演算とを使用している
が、そのうち、式(12)の条件付モンゴメリ演算[if
ej==1 then Y=MR(X・Y)]の演算方法
について説明する。
【0052】まず、2B+Nの値を計算するためにNレ
ジスタ104から鍵Nが読み出され、内部バス116お
よび演算回路107を経由して、Pレジスタ108に保
持される。それと同時に、eレジスタ102から鍵eが
読み出され、内部バス115を経由してべき乗剰余制御
回路109にejが保持される。
【0053】次に、2B+N(ここではB=X)の演算
が実行され、演算結果がB2Nレジスタ105に書込ま
れる。それと同時に、Yレジスタ103に保持された乗
数Yが読み出され内部バス115を経由してモンゴメリ
乗算剰余・剰余制御回路110にY0(乗数Yの0ビッ
ト目の値)が保持される。Y0を利用するのは、式(1
2)のMR(X・Y)を実現する式(19)〜(21)
のループにおいて、Yに相当するAについての[Amo
d2]が、Aの0ビット目、すなわちYの0ビット目の
値に相当するからである。
【0054】次に、モンゴメリ乗算剰余・剰余制御回路
110に保持されたY0とP0(演算結果Pの0ビット
目の値)とに基づいて、Xレジスタ106、Nレジスタ
104およびB2Nレジスタ105に保持された値のい
ずれかが読込まれ、式(20)の演算が実行される。そ
れと同時に、Yレジスタ103に保持された乗数Yが読
込まれ、内部バス115を経由してモンゴメリ乗算剰余
・剰余制御回路110にY1が保持される。以下、同様
に式(19)〜(21)の演算が繰り返し実行される。
このとき、Yレジスタ103から読み出されるデータ
は、モンゴメリ演算P=MR(B・A)のAに相当す
る。このため、式(20)内の[Amod2]および式
(21)の[A=A/2]より、Yjが使用されること
となる。実際には、式(19)ではP0(N0´=1の
場合)が必要とされ、式(21)では1ビットのYjだ
けが必要とされる。
【0055】剰余演算を行なう際にも同様の処理が行な
われる。 [演算制御用カウンタ]図1に示したべき乗剰余制御回
路109内には、カウンタが設けられている。このカウ
ンタは、式(12)および(13)を実行する際に変数
jを変化させるために用いられる。
【0056】図2を参照して、カウンタは、/Q端子
(以下、/記号は反転を示す。)がD端子に接続されて
いるD(Delay)フリップフロップ201と、Dフ
リップフロップ201のQ端子がCLK(クロック)端
子に接続され、かつ/Q端子がD端子に接続されている
Dフリップフロップ202と、Dフリップフロップ20
2のQ端子がCLK端子に接続され、かつ/Q端子がD
端子に接続されているDフリップフロップ203と、D
フリップフロップ203のQ端子から出力される信号お
よびモード信号を入力として受けるNANDゲート20
4と、NANDゲート204の出力を入力として受ける
インバータ205とを含む。
【0057】カウンタは、さらに、インバータ205の
出力がCLK端子に接続され、かつ/Q端子がD端子に
接続されているDフリップフロップ206と、Dフリッ
プフロップ206のQ端子から出力される信号およびモ
ード信号を入力として受けるNANDゲート207と、
NANDゲート207の出力を入力として受けるインバ
ータ208と、Dフリップフロップ201のQ端子、D
フリップフロップ202のQ端子、インバータ205の
出力およびインバータ208の出力を入力として受ける
NORゲート209とを含む。
【0058】Dフリップフロップ201のQ端子より出
力される信号、Dフリップフロップ202のQ端子より
出力される信号、インバータ205の出力信号およびイ
ンバータ208の出力信号をそれぞれ信号A、信号B、
信号Cおよび信号Dと定義する。また、NORゲート2
09の出力を信号ENDと定義する。
【0059】モード信号がHighの時の各信号のタイ
ミングチャートは、図3(A)に示すようになる。すな
わち、クロック信号が16回入力されると、信号END
がLowからHighに変化する。このため、式(1
2)および(13)のループでk=16としたときのモ
ンゴメリ乗算剰余演算が実現できる。
【0060】一方、モード信号をLowにすると、信号
Cおよび信号Dが常にLowとなる。このため、各信号
のタイミングチャートは、図3(B)のようになり、ク
ロック信号が8回入力されると、信号ENDがLowか
らHighに変化する。このため、式(12)および
(13)のループでk=8としたときのモンゴメリ乗算
剰余演算が実現できる。
【0061】このように、モード信号によりループの回
数を変化させることができる。また、上述したカウンタ
と同様のカウンタが、モンゴメリ乗算剰余・剰余制御回
路110内にも設けられている。これにより、式(1
9)〜(21)に示すループの回数もモード信号の値に
より変化させることができるようになる。
【0062】以上説明したように本実施の形態ではYレ
ジスタ103とeレジスタ102とが使用する内部バス
(内部バス115)と、その他のレジスタ(Nレジスタ
104、B2Nレジスタ105、Xレジスタ106)が
使用する内部バス(内部バス116)とを分離した。こ
のため、Yレジスタ103またはeレジスタ102と、
Nレジスタ104、B2Nレジスタ105またはXレジ
スタ106とから同時にデータを読み出すことができ
る。よって、モンゴメリ乗算剰余演算を高速に実行する
ことができる。
【0063】また、従来のように一時保持レジスタを必
要としない。このため、回路規模を小さくすることがで
きる。
【0064】さらに、モード信号の値によりループ処理
の回数を減らすことができる。このため、ループ処理の
回数を減らしたテストを行なうことが可能となり、テス
ト時間の短縮を図ることができる。
【0065】[実施の形態2] [べき乗剰余演算器のハードウェア構成]図4を参照し
て、本発明の実施の形態2に係るべき乗剰余演算器は、
図1を参照して説明した実施の形態1に係るべき乗剰余
演算器のハードウェア構成において、内部バス115と
べき乗剰余制御回路109およびモンゴメリ乗算剰余・
剰余制御回路110との間に1ビット選択回路118を
設けたものである。その他の部品は、実施の形態1と同
様である。このため、その詳細な説明はここでは繰り返
さない。
【0066】また、べき乗剰余制御回路109およびモ
ンゴメリ乗算剰余・剰余制御回路110内にはカウンタ
がそれぞれ設けられている。これらのカウンタは、実施
の形態1に示したものと同様である。このため、その詳
細な説明はここでは繰り返さない。
【0067】[べき乗剰余演算の演算方法]本実施の形
態におけるべき乗剰余演算の演算方法と実施の形態1に
おけるそれとの違いを以下に説明する。
【0068】式(12)および(13)のループを実行
する際には、eレジスタ102に保持された鍵eが内部
バス115上に読み出される。それとともに、べき乗剰
余制御回路109は、自身の有するカウンタの状態に従
い、鍵eの読み出すべきビットjを1ビット選択回路1
18に指示する。1ビット選択回路118は、内部バス
115上に読み出された鍵eのjビット目の値ejを読
込み、べき乗剰余制御回路109に与える。
【0069】式(19)〜(21)のループを実行する
際には、Yレジスタ103に保持された乗数Y(式(1
9)〜(21)では乗数A)は、式(21)により1ビ
ットずつ右シフトされる。このため、乗数Yのjビット
目の値Yj(Aj)は、式(20)におけるAmod2
に相当する。よって、式(19)〜(21)のループを
実行する際には、Yレジスタ103に保持された乗数Y
が内部バス115に読み出される。それとともに、モン
ゴメリ乗算剰余・剰余制御回路110は、自身の有する
カウンタの状態に従い、乗数Yの読み出すべきビットj
を1ビット選択回路118に指示する。1ビット選択回
路118は、内部バス115上に読み出された乗数Yの
jビット目の値Yjを読込み、モンゴメリ乗算剰余・剰
余制御回路110に与える。
【0070】以上説明したように本実施の形態による
と、内部バス115はeレジスタ102およびYレジス
タ103のみについて用いられる。このため、eレジス
タ102に保持された鍵eまたはYレジスタ103に保
持された乗数Yを内部バス115に読み出したままの状
態で、べき乗剰余制御回路109またはモンゴメリ乗算
剰余・剰余制御回路110がビットを指定する。する
と、1ビット選択回路118が対応するビットのデータ
を内部バス115より読み出し、べき乗剰余制御回路1
09またはモンゴメリ乗算剰余・剰余制御回路110に
供給することができるようになる。
【0071】このため、べき乗剰余制御回路109また
はモンゴメリ乗算剰余・剰余制御回路110は、ビット
ごとにeレジスタ102またはYレジスタ103に保持
されたデータの読み出しを制御する必要がない。このた
め、べき剰余演算回路のハードウェア構成を簡略化で
き、回路規模を小さくすることが可能となる。
【0072】今回開示された実施の形態はすべての点で
例示であって制限的なものではないと考えられるべきで
ある。本発明の範囲は上記した説明ではなくて特許請求
の範囲によって示され、特許請求の範囲と均等の意味お
よび範囲内でのすべての変更が含まれることが意図され
る。
【0073】
【発明の効果】本発明によると、回路規模が小さく、高
速処理が可能なべき乗剰余演算器を提供することが可能
となる。
【図面の簡単な説明】
【図1】 本発明の実施の形態1に係るべき乗剰余演算
器のハードウェア構成を示すブロック図である。
【図2】 カウンタのハードウェア構成を示す図であ
る。
【図3】 カウンタの信号のタイミングチャートであ
る。
【図4】 本発明の実施の形態2に係るべき乗剰余演算
器のハードウェア構成を示すブロック図である。
【図5】 従来のモンゴメリ法を利用したべき乗剰余演
算器のハードウェア構成を示すブロック図である。
【符号の説明】
101 インタフェース回路、102 eレジスタ、1
03 Yレジスタ、104 Nレジスタ、105 B2
Nレジスタ、106 Xレジスタ、107 演算回路、
108 Pレジスタ、109 べき乗剰余制御回路、1
10 モンゴメリ乗算剰余・剰余制御回路、111 加
算・減算制御回路、112 モードレジスタ、113
コマンドレジスタ、114 ステータスレジスタ、11
5,116 内部バス、117 バス分割回路、118
1ビット選択回路、119 一時保持レジスタ、20
1,202,203,206 Dフリップフロップ、2
04,207 NANDゲート、204,205,20
8 インバータ、209NORゲート。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B056 AA01 AA04 BB00 FF00 FF08 FF09 FF15 5J104 AA18 AA22 JA23 NA18 NA22

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 第1の種類のデータを保持する第1のレ
    ジスタ群と、 前記第1のレジスタ群に保持されたデータと並行して参
    照可能な種類のデータを保持する第2のレジスタ群と、 前記第1のレジスタ群に接続された第1の内部バスと、 前記第2のレジスタ群に接続された第2の内部バスと、 前記第1および第2の内部バスに接続され、前記第1お
    よび第2のレジスタ群に保持された値を並行して参照
    し、モンゴメリ乗算剰余演算を実行するためのモンゴメ
    リ乗算剰余演算実行手段と、 前記第1および第2の内部バス、ならびに前記モンゴメ
    リ乗算剰余演算実行手段に接続され、前記第1および第
    2のレジスタ群に保持された値を並行して参照し、前記
    モンゴメリ乗算剰余演算実行手段との間でデータのやり
    取りを行ない、べき乗剰余演算を実行するためのべき乗
    剰余演算実行手段とを含む、べき乗剰余演算器。
  2. 【請求項2】 前記第1のレジスタ群に保持される第1
    の種類のデータは、1ビットごとに参照されるデータで
    あり、 さらに、前記第1の内部バス、前記モンゴメリ乗算剰余
    演算実行手段およびべき乗剰余演算実行手段に接続さ
    れ、前記モンゴメリ乗算剰余演算実行手段または前記べ
    き乗剰余演算実行手段から供給される信号に基づいて定
    められるビットのデータを前記第1の内部バス上より取
    得し、前記モンゴメリ乗算剰余演算実行手段または前記
    べき乗剰余演算実行手段に供給する1ビット選択回路を
    含む、請求項1に記載のべき乗剰余演算器。
  3. 【請求項3】 前記モンゴメリ乗算剰余演算実行手段
    は、外部より供給されるモード信号に基づいて、カウン
    ト回数を変更可能なカウンタを有する、請求項1または
    2に記載のべき乗剰余演算器。
  4. 【請求項4】 前記べき乗剰余演算実行手段は、外部よ
    り供給されるモード信号に基づいて、カウント回数を変
    更可能なカウンタを有する、請求項1〜3のいずれかに
    記載のべき乗剰余演算器。
  5. 【請求項5】 前記カウンタは、直列に接続された複数
    のフリップフロップを含み、前記モード信号に応じて前
    記複数のフリップフロップの一部の動作を停止させる、
    請求項3または4に記載のべき乗剰余演算器。
JP2001163719A 2001-05-31 2001-05-31 べき乗剰余演算器 Pending JP2002358010A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001163719A JP2002358010A (ja) 2001-05-31 2001-05-31 べき乗剰余演算器
US10/096,883 US20030033340A1 (en) 2001-05-31 2002-03-14 Power-residue calculating unit concurrently referring to data for concurrent reference

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001163719A JP2002358010A (ja) 2001-05-31 2001-05-31 べき乗剰余演算器

Publications (1)

Publication Number Publication Date
JP2002358010A true JP2002358010A (ja) 2002-12-13

Family

ID=19006631

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001163719A Pending JP2002358010A (ja) 2001-05-31 2001-05-31 べき乗剰余演算器

Country Status (2)

Country Link
US (1) US20030033340A1 (ja)
JP (1) JP2002358010A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007212701A (ja) * 2006-02-09 2007-08-23 Renesas Technology Corp 剰余演算処理装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3732450B2 (ja) * 2002-03-19 2006-01-05 沖電気工業株式会社 剰余演算器
US7187770B1 (en) * 2002-07-16 2007-03-06 Cisco Technology, Inc. Method and apparatus for accelerating preliminary operations for cryptographic processing
JP4360792B2 (ja) 2002-09-30 2009-11-11 株式会社ルネサステクノロジ べき乗剰余演算器
JP2004145010A (ja) * 2002-10-24 2004-05-20 Renesas Technology Corp 暗号回路
JP3576155B2 (ja) * 2002-11-11 2004-10-13 沖電気工業株式会社 乗算剰余演算器
EP1899803A2 (en) * 2005-06-29 2008-03-19 Koninklijke Philips Electronics N.V. Arrangement for and method of protecting a data processing device against an attack or analysis
CN101213513B (zh) * 2005-06-29 2013-06-12 爱迪德艾恩德霍芬公司 保护数据处理装置免受密码攻击或分析的设备和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353077A (ja) * 1999-04-07 2000-12-19 Matsushita Electric Ind Co Ltd 多倍長演算装置
JP2002229445A (ja) * 2001-01-30 2002-08-14 Mitsubishi Electric Corp べき乗剰余演算器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513133A (en) * 1992-11-30 1996-04-30 Fortress U&T Ltd. Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
JP3615622B2 (ja) * 1996-06-28 2005-02-02 株式会社ルネサステクノロジ マイクロコンピュータ
US6088453A (en) * 1997-01-27 2000-07-11 Kabushiki Kaisha Toshiba Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation
KR100308205B1 (ko) * 1998-09-29 2001-11-30 윤종용 저전력소모카운터
US6691143B2 (en) * 2000-05-11 2004-02-10 Cyberguard Corporation Accelerated montgomery multiplication using plural multipliers
JP2002108691A (ja) * 2000-09-29 2002-04-12 Mitsubishi Electric Corp 半導体記憶装置および半導体記憶装置の制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353077A (ja) * 1999-04-07 2000-12-19 Matsushita Electric Ind Co Ltd 多倍長演算装置
JP2002229445A (ja) * 2001-01-30 2002-08-14 Mitsubishi Electric Corp べき乗剰余演算器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007212701A (ja) * 2006-02-09 2007-08-23 Renesas Technology Corp 剰余演算処理装置

Also Published As

Publication number Publication date
US20030033340A1 (en) 2003-02-13

Similar Documents

Publication Publication Date Title
Öztürk et al. Low-power elliptic curve cryptography using scaled modular arithmetic
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
US20110161390A1 (en) Modular multiplication processing apparatus
US7024560B2 (en) Power-residue calculating unit using Montgomery algorithm
Karakoyunlu et al. Efficient and side-channel-aware implementations of elliptic curve cryptosystems over prime fields
JP4180024B2 (ja) 乗算剰余演算器及び情報処理装置
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
JP2002358010A (ja) べき乗剰余演算器
EP3352411B1 (en) Method of generating cryptographic key pairs
Moon et al. Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications
KR100478974B1 (ko) 직렬 유한체 승산기
US7319750B1 (en) Digital circuit apparatus and method for accelerating preliminary operations for cryptographic processing
JP2006023647A (ja) 乗算剰余演算器及び情報処理装置
JP4360792B2 (ja) べき乗剰余演算器
CN115270155A (zh) 一种获取大数拓展最大公约数的方法及硬件架构
US20020114449A1 (en) Modular multiplier and an encryption/decryption processor using the modular multiplier
EP1480119A1 (en) Montgomery modular multiplier and method thereof
KR20100062565A (ko) 모듈러스의 음의 역원을 구하는 방법
KR100974624B1 (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
JP2003216411A (ja) 多倍長演算処理装置およびicデバイス
CN114513306B (zh) 数据加密传输方法、系统
Pinckney et al. Public key cryptography
US7471789B2 (en) Encryption circuit achieving higher operation speed
KR20000009759A (ko) 모듈러 곱셈기
Thomas 16 Very-Large-Scale

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080402

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110405