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

べき乗剰余演算器

Info

Publication number
JP2002229445A
JP2002229445A JP2001021128A JP2001021128A JP2002229445A JP 2002229445 A JP2002229445 A JP 2002229445A JP 2001021128 A JP2001021128 A JP 2001021128A JP 2001021128 A JP2001021128 A JP 2001021128A JP 2002229445 A JP2002229445 A JP 2002229445A
Authority
JP
Japan
Prior art keywords
montgomery
register
circuit
bit
modular exponentiation
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
Application number
JP2001021128A
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 JP2001021128A priority Critical patent/JP2002229445A/ja
Priority to TW090113222A priority patent/TW509882B/zh
Priority to US09/877,074 priority patent/US7024560B2/en
Priority to DE10141460A priority patent/DE10141460A1/de
Priority to CNB011408537A priority patent/CN1242321C/zh
Priority to KR10-2001-0058509A priority patent/KR100442218B1/ko
Publication of JP2002229445A publication Critical patent/JP2002229445A/ja
Withdrawn 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/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/52Multiplying; Dividing
    • 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)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 高速処理が可能なべき乗剰余演算器を提供す
る。 【解決手段】 べき乗剰余演算回路は、外部バスとのイ
ンタフェースであるI/F(インタフェース)回路10
1と、鍵eを保持するeレジスタ102と、モンゴメリ
変換をする乗数Yを保持するYレジスタ103と、鍵N
を保持するNレジスタ104と、モンゴメリ変換の演算
時に行なう2B+Nの値を保持するB2Nレジスタ10
5と、平文Xを保持するXレジスタ106と、暗号化お
よび復号化のための演算を行なう演算回路107と、演
算結果Pを保持するPレジスタ108と、べき乗剰余演
算実行時のステートマシンとしての役割を果たすべき乗
剰余制御回路109と、モンゴメリ乗算剰余演算と剰余
演算との実行時のステートマシンとしての役割を果たす
モンゴメリ乗算剰余・剰余制御回路110と、加算およ
び減算の演算制御を行なう加算・減算制御回路111と
を含む。

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暗号の暗号化および復号化につい
て] (1) 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】 (フロー1) begin A=1 for i=k−1 to 0 begin A=A2modN …(6) If ei=1 then A=A・MmodN …(7) end end 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(X・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ビットのモンゴメリ乗算剰余演算と51
2ビット剰余演算とにより実現できる。
【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】
【発明が解決しようとする課題】しかし、従来の回路で
は、図8に示すような手順で処理が行なわれている。す
なわち、512ビット長のべき乗剰余演算にモンゴメリ
法を使用した回路を実装したハードウェアを用い、式
(10)〜式(18)を式そのままに実行している。た
とえば、ej==0のときは式(12)をスキップして
いる。一方、式(17)においては毎回すべての計算を
実行している。そのため複雑な処理手順が必要とされ、
より一層の高速化が望まれている。また、回路規模が小
さくて済み、LSI(Large Scale Integration)化に
適した回路が必要となっているので、演算処理をできる
だけ簡略化し全体の計算量を削減し、処理速度の向上を
図ることが必要である。
【0033】本発明は上述の課題を解決するためになさ
れたもので、その目的は、高速処理が可能なべき乗剰余
演算器を提供することである。
【0034】
【課題を解決するための手段】本発明のある局面に従う
べき乗剰余演算器は、モンゴメリ乗算剰余演算を行なう
際の一方の引数を2倍した値と剰余の法とを加算した値
を保持するレジスタと、レジスタに接続され、レジスタ
に保持された値を参照して、モンゴメリ乗算剰余演算を
実行するためのモンゴメリ乗算剰余演算実行手段と、モ
ンゴメリ乗算剰余演算実行手段に接続され、モンゴメリ
乗算剰余演算実行手段との間でデータのやり取りを行な
い、べき乗剰余演算を実行するためのべき乗剰余演算実
行手段とを含む。
【0035】モンゴメリ乗算剰余演算に頻繁に用いられ
る値をレジスタに保持することにより、モンゴメリ乗算
剰余演算を高速に実行することができる。
【0036】好ましくは、べき乗剰余演算実行手段は、
2進数表現されたべき指数の各ビットの値に関わらず、
モンゴメリ乗算剰余演算実行手段においてモンゴメリ乗
算剰余演算を実行し、べき乗剰余演算を実行する。
【0037】べき指数の各ビットの値に関わらず、常に
モンゴメリ乗算剰余演算が実行される。このため、べき
乗剰余演算器を暗号化装置および復号化装置に用いた場
合であっても、タイミング攻撃に対する耐性を確保する
ことができる。
【0038】さらに好ましくは、べき乗剰余演算器は、
さらに、べき乗剰余演算実行手段における演算モードを
保持するためのモードレジスタを含み、べき乗剰余演算
実行手段は、モードレジスタに保持された値に基づい
て、2進数表現されたべき指数の各ビットの値に基づい
たモンゴメリ乗算剰余演算を実行するか否かを判断し、
モンゴメリ乗算剰余演算を実行する。
【0039】モードレジスタに保持された値に基づい
て、2進数表現されたべき指数の各ビットの値に基づい
たモンゴメリ乗算剰余演算を実行するか否かを判断す
る。このため、テスト時には、2進数表現されたべき指
数の各ビットの値に基づいたモンゴメリ乗算剰余演算を
実行するようにし、実際使用する際には、べき指数の各
ビットの値に関わらず、常にモンゴメリ乗算剰余演算を
実行するようにすれば、テスト時間を短縮でき、かつタ
イミング攻撃に対する耐性を確保することができる。
【0040】さらに好ましくは、べき乗剰余演算実行手
段は、2進数表現されたべき指数の各ビットの値に基づ
いて、モンゴメリ乗算剰余演算を実行するか否かを判断
し、モンゴメリ乗算剰余演算を実行する。
【0041】2進数表現されたたべき指数の各ビットの
値に基づいて、モンゴメリ乗算剰余演算を実行するか否
かを判断し、モンゴメリ乗算剰余演算を実行する。この
ため、ビットの値として1が出現するまでの間は、モン
ゴメリ乗算剰余演算の結果が予めわかっている場合があ
る。このような場合に、処理をスキップすることによ
り、高速に処理することができる。
【0042】さらに好ましくは、べき乗剰余演算実行手
段は、2進数のビット列を加算する加算器を含み、加算
器は、2進数のビット列を所定ビットごとに分割し、分
割後のビット列同士で加算を行なう複数のサブ加算器を
含む。
【0043】加算器をサブ加算器に分割してパイプライ
ン処理を実行することにより、高速に加算を行なうこと
ができる。このため、べき乗剰余演算を高速に実行する
ことが可能になる。
【0044】さらに好ましくは、べき乗剰余演算器は、
さらに、モンゴメリ乗算剰余演算実行手段およびべき乗
剰余演算実行手段に接続され、演算の一部を取出して実
行するための手段を含む。
【0045】べき乗剰余演算時に行なう各種演算を取出
して実行することにより、様々な種類の暗号化処理を実
現できるようになる。
【0046】
【発明の実施の形態】[実施の形態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とを含む。
【0047】べき乗算剰余演算回路は、さらに、モンゴ
メリ乗算剰余演算と剰余演算との実行時のステートマシ
ンとしての役割を果たすモンゴメリ乗算剰余・剰余制御
回路110と、加算および減算の演算制御を行なう加算
・減算制御回路111と、各種モードを保持するモード
レジスタ112と、コマンドを保持するコマンドレジス
タ113と、ステータスを保持するステータスレジスタ
114と、各種レジスタと演算回路107間でのデータ
のやり取りを行なうための内部バス115とを含む。
【0048】べき乗剰余演算を行なうにあたり、高速化
を実現するためにモンゴメリ法による乗算剰余演算を使
用しているが、そのモンゴメリ法の演算[P=MR(B
・A)]行なう最初に[2B+N]なる計算を行ない、
その結果をB2Nレジスタ105に格納する。
【0049】モンゴメリ法の演算MR(B・A)の動作
について説明する。ここで、B=X、A=Yの場合を考
える。まず、[2B+N]の計算を行なう。[2B+
N]の演算は、以下のようにして行なわれる。演算回路
107は、Nレジスタ104に保持された値を0と加算
し、Pレジスタ108に記憶する。演算回路107は、
Xレジスタ106に保持された値を2倍し、その値とP
レジスタ108に保持された値とを加算し、Pレジスタ
108に書込む。モンゴメリ乗算剰余・剰余制御回路1
10は、Pレジスタ108に保持された値をB2Nレジ
スタ105に書込む。次に、式(19)、(20)およ
び(21)の演算を515回繰返し実行する。
【0050】モンゴメリ乗算剰余演算中の式(20)を
計算時、Amod2==1およびM==1の場合はB2N
レジスタ105からデータを読出し、内部バス115を
介し読出されたデータとPレジスタ108に記憶された
値とを演算回路107にて加算する。また、Amod2=
=0およびM==1の場合はNレジスタ104からデー
タを読出し演算回路107にてPレジスタ108に記憶
された値と加算する。Amod2==0およびM==0の
場合は[0+P]の加算を実行する。0は内部バス11
5を流れるデータを0にするなどして生成される。eレ
ジスタ102は鍵e、Yレジスタ103はY、Nレジス
タ104は法N、Xレジスタ106はXを保持するレジ
スタで、Pレジスタ108はモンゴメリ乗算剰余演算の
式中式(19)および式(20)に出てくる値Pを保持
するレジスタである。
【0051】[演算回路107に設けられた加算器の構
成]図2を参照して、演算回路107内に設けられたパ
イプライン処理を実行する加算器について説明する。
【0052】この加算器は、モンゴメリ乗算剰余演算を
行なう加算器の構成を複数のサブ加算器に分割し、加算
器のキャリーの段数を少なくした構成としている。加算
器は、サブ加算器内のキャリー回路(SubC回路)72
7〜741と、サブ加算器内でキャリーが発生する可能
性を示すキャリー回路(LookC回路)742〜752
と、サブ加算器間でキャリーを伝播させるためのキャリ
ー回路(MainC回路)720および726と、加算結果
を得るためのキャリー回路(SlaveC回路)716〜7
19および721〜725と、実際に加算処理を行なう
アダー回路(adder)701〜715とを含む。
【0053】キャリー回路(LookC)742〜752
は、下位のサブ加算器でキャリーが発生したと仮定し
て、ビット同士の加算を行ない、キャリーが発生する可
能性を判断する。
【0054】一例として、15ビットのパイプライン処
理を実行する加算器について説明する。
【0055】15ビットの場合、下位ビットから4+5
+6=15の段数が適当とする。まず、4段のサブ加算
器内では普通に加算が行なわれ、キャリーが検出され、
加算結果が得られる。5段のサブ加算器では、4段のサ
ブ加算器からのキャリーを含めてSlaveC回路とadder回
路により5段の加算結果を得る。また、別途同時に5段
内だけのキャリーをSubC回路で検出する。またLookC
回路は下位のビットからキャリーが発生したと仮定して
キャリー信号を検出する。
【0056】そして4段のサブ加算器からのキャリー信
号で次の6段のサブ加算器へのキャリーをSubC回路7
35とLookC回路745からの信号どちらにするかをMa
inC回路720が選択する。同様に6段のサブ加算器で
も加算結果を得る。
【0057】たとえば、4段のサブ加算器において「1
111+1110」の加算が行なわれる場合を想定す
る。各ビットでの演算は以下のようになる。
【0058】 0ビット 0+1=1 キャリーなし 1ビット 1+1=0 キャリーあり 2ビット 1+1+1(1ビットからのキャリー)=1 キャリーあり 3ビット 1+1+1(2ビットからのキャリー)=1 キャリーあり このとき、SubC回路730からは「キャリーあり」の
信号がMainC回路720に与えられる。よって、このと
きは、MainC回路720は、下位のサブ加算器からキャ
リーがあるとして加算演算を行なったLookC742〜7
46のキャリーを、5段のサブ加算器のキャリーとして
6段のサブ加算器に出力する。逆に、SubC回路730
から「キャリーなし」の信号がMainC回路720に与え
られると、MainC回路720は、SubC回路735のキ
ャリーを出力する。
【0059】このようにサブ加算器として分割していな
い場合、14ビットの加算は0ビットからのキャリーを
持って加算する必要があるので、14段の回路分の時間
が必要であるが、複数に分割すると、0ビットからのキ
ャリーは、SubC727〜730,MainC回路720,S
laveC回路721〜725の10段分の処理時間で済
む。
【0060】たとえば「00010101100110
1」と「010000011110010」とを加算す
る場合について説明する。SubC回路727は、0ビッ
ト目同士の加算(1+0)を行なう。加算結果(1)は
アダー回路701に供給される。また、キャリー(0)
は、SubC回路728およびアダー回路702に供給さ
れる。アダー回路701は、SubC回路727から受取
った値を0ビット目の加算結果として出力する。
【0061】SubC回路728は、1ビット目の値(0
および1)と、0ビット目からのキャリー(0)との加
算(0+1+0)を行なう。加算結果(1)はアダー回
路702に供給される。また、キャリー(0)は、Sub
C回路729およびアダー回路703に供給される。ア
ダー回路702は、0ビット目のキャリー(0)と2ビ
ット目の加算結果(1)とを加算して、1ビット目の加
算結果(1)を出力する。同様に、アダー回路703〜
715では、前のビットのキャリーと着目しているビッ
トの加算結果との加算が行なわれる。
【0062】LookC回路742は、4段のサブ加算器で
キャリーが発生したと仮定して4ビット目のキャリーの
計算を行なう。すなわち、4ビット目の値同士の加算と
キャリー(1)との加算(0+1+1)が実行される。
演算の結果のキャリーはLookC回路743に与えられ
る。LookC回路747においても同様の処理が行なわれ
る。
【0063】LookC回路743は、5ビット目の値とLo
okC回路742からのキャリーとの加算演算(0+1+
1)を実行し、演算の結果のキャリー(1)をLookC7
44に供給する。以下、LookC回路744〜746およ
び748〜752においても同様の処理が行なわれる。
LookC回路746の出力は、MainC回路720に供給さ
れる。LookC回路752の出力は、MainC回路726に
供給される。
【0064】SubC回路731は、5ビット目同士の加
算(0+1)を行なう。加算結果(1)は、アダー回路
705およびSlaveC回路716に供給される。キャリ
ー(0)は、SubC回路732に供給される。SubC回路
736でも同様の処理が行なわれる。
【0065】SubC回路732は、6ビット目同士の加
算と5ビット目のキャリー(0)との加算(0+1+
0)を行なう。加算結果(1)は、アダー回路706お
よびSlaveC717に供給される。キャリー(0)は、S
ubC回路733に供給される。同様に、SubC回路73
3〜735において、前のビットのキャリーと着目して
いるビットの値との加算が行なわれる。なお、SubC回
路735における加算結果はアダー回路709のみに供
給され、SubC回路735におけるキャリーは、MainC
回路720に供給される。SubC回路736〜741に
おいても同様の処理が行なわれる。
【0066】SlaveC回路716は、3ビット目のキャ
リー(0)と、4ビット目の加算結果(1)とを加算
し、キャリーをアダー回路706およびSlaveC回路7
17に供給する。SlaveC回路717〜719および7
21〜725においても同様の処理が行なわれる。
【0067】MainC回路720は、SubC回路730が
出力する前段のサブ加算器のキャリーが1の場合には、
LookCの出力をSlaveC回路721に供給し、キャリー
が0の場合には、SubC回路735の出力するキャリー
をSlaveC回路721に供給する。MainC回路726も
同様の処理を行なう。
【0068】以上説明したようにして、15ビットのデ
ータ同士の加算が行なわれる。すなわち、SubC回路、L
ookC回路およびMainC回路で計算が行なわれた後、Sla
veC回路およびアダー回路で計算が行われる。このよう
に二段階にわけて加算処理が実行される。
【0069】例に挙げた15ビットではあまり大きな段
数の差は発生していないが、もっと大きなビットの加算
器たとえば130ビットでは、分割しない場合は129
段分の処理時間がかかるのに対し、分割した場合は30
段分の処理時間ですむ。また、6段のサブ加算器のキャ
リーに来る0ビットからのキャリーを求めるための回路
の段数を5段(SubC回路727〜730,MainC回路
720の5段)とし、6段のサブ加算器内のキャリーを
求めるための回路の段数を6段(SubC回路736〜7
41とLookC回路747〜752との2通りとも6段)
としている。このような構成にすることにより、もっと
大きなビットの加算器でも段数の違いがほとんどない構
成にすることができる。これにより、タイミングなどに
対する回路設計が容易になり、回路規模も小さくできる
という効果がある。
【0070】なお、130ビットのパイプラインでの加
算器では、4段、5段、6段、7段、8段、9段、10
段、11段、12段、13段、14段、15段および1
6段のサブ加算器により加算器を構成するのが適当であ
る。
【0071】[べき乗剰余演算処理について]図3は、
べき乗剰余演算処理のフローチャートである。図4は、
信号のタイミングを示すタイムチャートである。
【0072】従来は、モンゴメリ法による乗算剰余演算
を使用してべき乗剰余演算を行なう場合、鍵eのビット
を検索しej==1の場合は、式(12)の[Y=MR
(X・Y)]を実行し、ej==0の場合は、式(1
2)[Y=MR(X・Y)]をスキップし実行しなかっ
た。本実施の形態では、ejの値にかかわらず常に式
(12)の[MR(X・Y)]を実行する。式(12)
の演算結果をYレジスタ103に記憶させるときにej
の値301をチェックし、ej==1の場合はYレジス
タ書込信号304を出してYレジスタ103に演算結果
を書込み、ej==0の場合はYレジスタ書込信号30
4を出さないでYレジスタ103に演算結果を書込まな
いようする。このように、常に式(12)を実行するこ
とにより、べき乗剰余演算時間を一定にすることができ
る。MR(X・Y)演算信号302は、“H”のとき演
算中であることを示す。Yレジスタ書込信号303は、
“H”のときYレジスタ103にデータを書込むことを
示す。
【0073】以上のように、常に式(12)の演算を実
行するようにしたため演算時間が鍵の値に関係なく一定
になる。このため、タイミング攻撃に対する耐性を確保
できるという効果がある。なお、タイミング攻撃とは、
暗号文、鍵の長さによって、処理時間が変化することに
着目し、暗号の解読を行うことを意味する。
【0074】[べき乗剰余演算以外の演算について]べ
き乗剰余演算器には、べき乗剰余制御回路109、モン
ゴメリ乗算剰余・剰余制御回路110および加算・減算
制御回路111が含まれる。このため、これらの制御回
路を単独または組合わせて使用することにより、モンゴ
メリ乗算剰余演算、剰余演算、ストア演算、加算、減
算、条件付加算、条件付減算など、各種演算を独立して
実行することが可能である。
【0075】このようにべき乗剰余演算を構成する各種
演算を独立して実行可能にしたことによりRSA暗号以
外の各種暗号の演算を行なうことができるようになる。
また、何らかの原因でべき乗剰余演算器が動作しない場
合に、各種演算を独立して実行することにより、動作し
ない原因を究明することができる。
【0076】以上説明したように、本実施の形態では、
頻繁に用いられる[2B+N]の結果を保持するB2N
レジスタ105を設けることにより、モンゴメリ乗算剰
余演算の高速化と演算回路の簡略化とを図ることができ
る。
【0077】[実施の形態2]本発明の実施の形態2に
係るべき乗剰余演算器は、実施の形態1に係るべき乗剰
余演算器と同様の構成を有する。このため、その詳細な
説明は、ここでは繰返さない。
【0078】図5は、実施の形態2における信号のタイ
ミングを示すタイムチャートである。本実施の形態で
は、モードレジスタ112に所定の値を設定することに
より、べき乗剰余演算の実行方法を異ならせるものであ
る。
【0079】スキップモード信号401が“H”の場合
には、ej==0のときは式(12)を演算しないで式
(13)[Y=MR(Y・Y)]だけを演算する。スキ
ップモード信号401が”L”の場合には、実施の形態
1と同様の動作をする。
【0080】以上のように、式(12)の演算をスキッ
プするモードを設定できるようにしたので、テスト時間
の短縮を図ることができる。
【0081】[実施の形態3]本発明の実施の形態3に
係るべき乗剰余演算器は、実施の形態1に係るべき乗剰
余演算器と同様の構成を有する。このため、その詳細な
説明は、ここでは繰返さない。
【0082】図6は実施の形態3における信号のタイミ
ングを示すタイムチャートである。通常の方法でべき乗
剰余演算を行なっていくと、式(11)の演算結果は、 となる。最初のj=kからej==0の間、条件式のと
おり式(12)ではYの値は変化しない。このため、式
(13)の演算だけを考えると、 となり、演算結果は同じである。以上のようにej==
1で式(12)[Y=MR(X・Y)]を演算しYの値
が変化するまでは式(13)[Y=MR(Y・Y)]を
演算してもYの値が変化しない。よってej==1にな
るまでは式(12)および式(13)の演算を実行しな
くても構わないことがわかる。
【0083】通常は、演算時間を一定にするためにすべ
ての演算を実行しているが、モードレジスタ112に値
を設定することにより、サーチモード信号501を
“H”にし、繰返し演算(式(12)および式(1
3))において、ej==1になるまでは式(12)お
よび(13)の演算を実行しないで、[j−1]の演算
のみ実行する。このようにej==1か否かをチェック
するモードを設けた。
【0084】以上のように、式(12)および(13)
の演算をスキップするモードを設定できるようにしたの
で、鍵eの値によってはテスト時間の短縮が大幅に図れ
るという効果がある。
【0085】[実施の形態4]本発明の実施の形態4に
係るべき乗剰余演算器は、実施の形態1に係るべき乗剰
余演算器と同様の構成を有する。このため、その詳細な
説明は、ここでは繰返さない。
【0086】図7は実施の形態4における信号のタイミ
ングを示すタイムチャートである。本実施の形態では、
実施の形態2で説明したスキップモードおよび実施の形
態3で説明したサーチモードの両方のモードをモードレ
ジスタ112に設定することができる。
【0087】たとえば、両方のモードを設定した場合に
は、ej==1になるまでは式(12)および式(1
3)を演算しない。一度ej==1になった後は式(1
2)および式(13)をともに演算する。その後は、e
jの値によって、ej==0のときは、式(12)をス
キップし式(13)のみ実行する。また、ej==1の
ときは式(12)および式(13)の両方の演算を実行
する。
【0088】以上説明したように、スキップモードおよ
びサーチモードの両方のモードをモードレジスタ112
に設定することにより、実施の形態2または実施の形態
3よりもさらにテスト時間の短縮を図ることができる。
【0089】今回開示された実施の形態はすべての点で
例示であって制限的なものではないと考えられるべきで
ある。本発明の範囲は上記した説明ではなくて特許請求
の範囲によって示され、特許請求の範囲と均等の意味お
よび範囲内でのすべての変更が含まれることが意図され
る。
【0090】
【発明の効果】本発明によると、モンゴメリ乗算剰余演
算に頻繁に用いられる値をレジスタに保持することによ
り、モンゴメリ乗算剰余演算を高速に実行することがで
きる。
【図面の簡単な説明】
【図1】 べき乗剰余演算回路のハードウェア構成を示
すブロック図である。
【図2】 演算回路内に設けられたパイプライン処理を
実行する加算器のハードウェア構成を示すブロック図で
ある。
【図3】 べき乗剰余演算処理のフローチャートであ
る。
【図4】 信号のタイミングを示すタイムチャートであ
る。
【図5】 信号のタイミングを示すタイムチャートであ
る。
【図6】 信号のタイミングを示すタイムチャートであ
る。
【図7】 信号のタイミングを示すタイムチャートであ
る。
【図8】 従来のべき乗剰余演算処理のフローチャート
である。
【符号の説明】
101 I/F回路、102 eレジスタ、103 Y
レジスタ、104 Nレジスタ、105 B2Nレジス
タ、106 Xレジスタ、107 演算回路、108
Pレジスタ、109 べき乗剰余制御回路、110 モ
ンゴメリ乗算剰余・剰余制御回路、111 加算・減算
制御回路、112 モードレジスタ、113 コマンド
レジスタ、114 ステータスレジスタ、115 内部
バス、701〜715 アダー回路、716〜719,
721〜725 SlaveC回路、720,726 Main
C回路、727〜741 SubC回路、742〜752
LookC回路。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 モンゴメリ乗算剰余演算を行なう際の一
    方の引数を2倍した値と剰余の法とを加算した値を保持
    するレジスタと、 前記レジスタに接続され、前記レジスタに保持された値
    を参照して、モンゴメリ乗算剰余演算を実行するための
    モンゴメリ乗算剰余演算実行手段と、 前記モンゴメリ乗算剰余演算実行手段に接続され、前記
    モンゴメリ乗算剰余演算実行手段との間でデータのやり
    取りを行ない、べき乗剰余演算を実行するためのべき乗
    剰余演算実行手段とを含む、べき乗剰余演算器。
  2. 【請求項2】 前記べき乗剰余演算実行手段は、2進数
    表現されたべき指数の各ビットの値に関わらず、モンゴ
    メリ乗算剰余演算実行手段においてモンゴメリ乗算剰余
    演算を実行し、べき乗剰余演算を実行する、請求項1に
    記載のべき乗剰余演算器。
  3. 【請求項3】 さらに、べき乗剰余演算実行手段におけ
    る演算モードを保持するためのモードレジスタを含み、 前記べき乗剰余演算実行手段は、前記モードレジスタに
    保持された値に基づいて、2進数表現されたべき指数の
    各ビットの値に基づいたモンゴメリ乗算剰余演算を実行
    するか否かを判断し、モンゴメリ乗算剰余演算を実行す
    る、請求項1または2に記載のべき乗剰余演算器。
  4. 【請求項4】 前記べき乗剰余演算実行手段は、2進数
    表現されたべき指数の各ビットの値に基づいて、モンゴ
    メリ乗算剰余演算を実行するか否かを判断し、モンゴメ
    リ乗算剰余演算を実行する、請求項1〜3のいずれかに
    記載のべき乗剰余演算器。
  5. 【請求項5】 前記べき乗剰余演算実行手段は、2進数
    のビット列を加算する加算器を含み、 前記加算器は、2進数のビット列を所定ビットごとに分
    割し、分割後のビット列同士で加算を行なう複数のサブ
    加算器を含む、請求項1〜4のいずれかに記載のべき乗
    剰余演算器。
  6. 【請求項6】 さらに、前記モンゴメリ乗算剰余演算実
    行手段および前記べき乗剰余演算実行手段に接続され、
    演算の一部を取出して実行するための手段を含む、請求
    項1〜5のいずれかに記載のべき乗剰余演算器。
JP2001021128A 2001-01-30 2001-01-30 べき乗剰余演算器 Withdrawn JP2002229445A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2001021128A JP2002229445A (ja) 2001-01-30 2001-01-30 べき乗剰余演算器
TW090113222A TW509882B (en) 2001-01-30 2001-05-31 Power-residue calculating unit using Montgomery algorithm
US09/877,074 US7024560B2 (en) 2001-01-30 2001-06-11 Power-residue calculating unit using Montgomery algorithm
DE10141460A DE10141460A1 (de) 2001-01-30 2001-08-23 Potenzrestberechnungseinheit unter Verwendung eines Montgomery-Algorithmus
CNB011408537A CN1242321C (zh) 2001-01-30 2001-09-21 应用蒙哥马利算法的幂剩余运算器
KR10-2001-0058509A KR100442218B1 (ko) 2001-01-30 2001-09-21 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001021128A JP2002229445A (ja) 2001-01-30 2001-01-30 べき乗剰余演算器

Publications (1)

Publication Number Publication Date
JP2002229445A true JP2002229445A (ja) 2002-08-14

Family

ID=18886731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001021128A Withdrawn JP2002229445A (ja) 2001-01-30 2001-01-30 べき乗剰余演算器

Country Status (6)

Country Link
US (1) US7024560B2 (ja)
JP (1) JP2002229445A (ja)
KR (1) KR100442218B1 (ja)
CN (1) CN1242321C (ja)
DE (1) DE10141460A1 (ja)
TW (1) TW509882B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002358010A (ja) * 2001-05-31 2002-12-13 Mitsubishi Electric Corp べき乗剰余演算器
US7471789B2 (en) 2002-10-24 2008-12-30 Renesas Technology Corp. Encryption circuit achieving higher operation speed
JP2009258460A (ja) * 2008-04-18 2009-11-05 Renesas Technology Corp データ処理装置
JP2012032740A (ja) * 2010-08-03 2012-02-16 Chugoku Electric Power Co Inc:The 暗号装置及びその方法
JP2016009114A (ja) * 2014-06-25 2016-01-18 ルネサスエレクトロニクス株式会社 データ処理装置及び復号処理方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002229445A (ja) * 2001-01-30 2002-08-14 Mitsubishi Electric Corp べき乗剰余演算器
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 株式会社ルネサステクノロジ べき乗剰余演算器
KR100481586B1 (ko) * 2002-11-22 2005-04-08 한국전자통신연구원 모듈러 곱셈 장치
US7532720B2 (en) * 2003-10-15 2009-05-12 Microsoft Corporation Utilizing SIMD instructions within montgomery multiplication
US20060059219A1 (en) * 2004-09-16 2006-03-16 Koshy Kamal J Method and apparatus for performing modular exponentiations
FR2880149B1 (fr) * 2004-12-23 2007-03-30 Oberthur Card Syst Sa Procede de traitement de donnees et dispositif associe
CN100382012C (zh) * 2005-05-18 2008-04-16 上海迪申电子科技有限责任公司 一种操作数长度可伸缩的蒙哥马利模乘器运算方法
KR101006105B1 (ko) * 2009-10-28 2011-01-07 (주)성주 워터피아건설 분수용 잠수 노즐
KR101011998B1 (ko) * 2010-06-04 2011-01-31 신공항하이웨이 주식회사 액상 제설재 살포장치
CN103888246A (zh) * 2014-03-10 2014-06-25 深圳华视微电子有限公司 低功耗小面积的数据处理方法及其数据处理装置
TWI784406B (zh) * 2020-06-04 2022-11-21 熵碼科技股份有限公司 採用迭代計算的模數運算電路
CN112491543B (zh) * 2020-11-24 2022-06-07 杭州电子科技大学 基于改进的蒙哥马利模幂电路的ic卡解密方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4977595A (en) * 1989-04-03 1990-12-11 Nippon Telegraph And Telephone Corporation Method and apparatus for implementing electronic cash
JP3302043B2 (ja) * 1992-05-18 2002-07-15 キヤノン株式会社 暗号通信方法及びそのシステム
FR2726667B1 (fr) * 1994-11-08 1997-01-17 Sgs Thomson Microelectronics Procede de mise en oeuvre de multiplication modulaire selon la methode montgomery
JP3615622B2 (ja) * 1996-06-28 2005-02-02 株式会社ルネサステクノロジ マイクロコンピュータ
JPH1165439A (ja) * 1996-08-09 1999-03-05 Nippon Telegr & Teleph Corp <Ntt> N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体
JP3570114B2 (ja) * 1996-10-21 2004-09-29 富士ゼロックス株式会社 データ検証方法およびデータ検証システム
EP0878796B1 (en) * 1997-05-13 2006-04-19 Kabushiki Kaisha Toshiba Information recording apparatus, information reproducing apparatus, and information distribution system
KR100257123B1 (ko) 1997-05-16 2000-05-15 문상재 변형된 몽고메리 모듈라 곱셈을 적용한 고속 멱승 방법
KR100256776B1 (ko) * 1997-06-26 2000-05-15 유기영 몽고메리 모듈러 승산 장치
CA2253009C (en) * 1997-11-04 2002-06-25 Nippon Telegraph And Telephone Corporation Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method
JP3616897B2 (ja) 1998-01-27 2005-02-02 富士通株式会社 モンゴメリ法による乗算剰余計算装置
JP3542278B2 (ja) * 1998-06-25 2004-07-14 株式会社東芝 モンゴメリ・リダクション装置及び記録媒体
JP2000165375A (ja) 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
JP2002229445A (ja) * 2001-01-30 2002-08-14 Mitsubishi Electric Corp べき乗剰余演算器
JP4360792B2 (ja) * 2002-09-30 2009-11-11 株式会社ルネサステクノロジ べき乗剰余演算器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002358010A (ja) * 2001-05-31 2002-12-13 Mitsubishi Electric Corp べき乗剰余演算器
US7471789B2 (en) 2002-10-24 2008-12-30 Renesas Technology Corp. Encryption circuit achieving higher operation speed
JP2009258460A (ja) * 2008-04-18 2009-11-05 Renesas Technology Corp データ処理装置
JP2012032740A (ja) * 2010-08-03 2012-02-16 Chugoku Electric Power Co Inc:The 暗号装置及びその方法
JP2016009114A (ja) * 2014-06-25 2016-01-18 ルネサスエレクトロニクス株式会社 データ処理装置及び復号処理方法

Also Published As

Publication number Publication date
US7024560B2 (en) 2006-04-04
TW509882B (en) 2002-11-11
US20020101984A1 (en) 2002-08-01
KR100442218B1 (ko) 2004-07-30
DE10141460A1 (de) 2002-08-14
KR20020063793A (ko) 2002-08-05
CN1368674A (zh) 2002-09-11
CN1242321C (zh) 2006-02-15

Similar Documents

Publication Publication Date Title
JP2002229445A (ja) べき乗剰余演算器
US7904498B2 (en) Modular multiplication processing apparatus
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
KR20070008012A (ko) 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
Karakoyunlu et al. Efficient and side-channel-aware implementations of elliptic curve cryptosystems over prime fields
JP3302043B2 (ja) 暗号通信方法及びそのシステム
JP2011512556A (ja) 楕円曲線上の多数の点を計算する装置及び方法
JP2004004341A (ja) べき乗剰余計算装置、べき乗剰余計算方法及びプログラム
JP2002358010A (ja) べき乗剰余演算器
JP4360792B2 (ja) べき乗剰余演算器
JP4836208B2 (ja) 暗号化/復号化プログラム、暗号化/復号化装置及び拡大体の乗算装置
JP2010245753A (ja) 暗号演算回路装置
KR100974624B1 (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
JP4664514B2 (ja) 素数生成装置及びプログラム
KR100297110B1 (ko) 모듈러곱셈기
JP2004334212A (ja) モンゴメリ掛け算器及び掛け算方法
KR20100062565A (ko) 모듈러스의 음의 역원을 구하는 방법
JP4990843B2 (ja) 暗号演算装置、その方法、及びプログラム
Jacobson Jr et al. Comparison of scalar multiplication on real hyperelliptic curves.
JP5179933B2 (ja) データ処理装置
US7480380B2 (en) Method for efficient generation of modulo inverse for public key cryptosystems
US7471789B2 (en) Encryption circuit achieving higher operation speed
JP3137599B2 (ja) BのC乗のnを法とした剰余を計算する回路
JP2006091086A (ja) モンゴメリ逆元演算装置を備えた半導体装置およびicカ−ド
CN115712408A (zh) 一种用于公钥密码算法加速的协处理器

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