JPH11143688A - 演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置 - Google Patents

演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置

Info

Publication number
JPH11143688A
JPH11143688A JP30475897A JP30475897A JPH11143688A JP H11143688 A JPH11143688 A JP H11143688A JP 30475897 A JP30475897 A JP 30475897A JP 30475897 A JP30475897 A JP 30475897A JP H11143688 A JPH11143688 A JP H11143688A
Authority
JP
Japan
Prior art keywords
arithmetic
circuit
montgomery
reciprocal
mod
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
JP30475897A
Other languages
English (en)
Inventor
Soichi Okada
壮一 岡田
Naoya Torii
直哉 鳥居
Takayuki Hasebe
高行 長谷部
Masahiko Takenaka
正彦 武仲
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP30475897A priority Critical patent/JPH11143688A/ja
Publication of JPH11143688A publication Critical patent/JPH11143688A/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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

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)

Abstract

(57)【要約】 【課題】 小さい回路規模で演算処理を行える、RSA
暗号演算と楕円暗号演算との両方が可能な装置を提供す
る。 【解決手段】 RSA暗号演算装置に、加減算回路3と
逆数演算回路6とを付加することにより、RSA暗号処
理と楕円暗号処理との両演算が可能である。乗算剰余演
算回路2で、変数を格納するためにレジスタではなくワ
ーキングメモリを使用して、回路規模を小型化を図る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、RSA暗号の演算
装置及び楕円暗号の演算装置、並びに、これらの演算装
置における各種の演算回路に関する。
【0002】
【従来の技術】高度情報化社会と呼ばれる現代社会で
は、コンピュータネットワークを基盤として、ビジネス
上の重要な文書・画像情報が電子的な情報という形で伝
送通信されて処理される。このような電子情報は、容易
に複写が可能である、複写物とオリジナルとの区別が困
難であるという性質があり、情報保全の問題が重要視さ
れている。特に、無線を利用したネットワークにおいて
は、電子情報の傍受が容易なために、これを防止する対
策が望まれている。このような対策の有効な手法とし
て、人類の過去の歴史上で主として軍事,外交面に用い
られてきた暗号技術が注目されており、種々のネットワ
ークにも導入されつつある。
【0003】暗号とは、情報の意味が当事者以外には理
解できないように情報を変換することである。暗号にお
いて、誰でも理解できる元の文(平文)を第三者には意
味がわからない文(暗号文)に変換することが暗号化で
あり、また、暗号文を平文に戻すことが復号化である。
この暗号化の過程及び復号化の過程には、それぞれ暗号
鍵及び復号鍵と呼ばれる秘密の情報が用いられる。
【0004】このような鍵を用いる暗号化方式には、秘
密鍵暗号系と公開鍵暗号系とが存在する。秘密鍵暗号系
は、送信者と受信者とが同じ暗号鍵を持つことによって
暗号通信を行う方式であり、送信者はある情報を秘密の
暗号鍵に基づいて暗号化して受信者に送り、受信者はこ
の暗号鍵を用いて暗号を復号して元の情報を得る。これ
に対して、公開鍵暗号系では、公開されている受信者の
公開鍵で送信者が情報を暗号化して送信し、受信者は自
分の秘密鍵でその暗号を復号して元の情報を得る。
【0005】公開鍵暗号系の中で最も有力な暗号系とし
て、1977年にRivest,Shamir及びAdleman の3人によっ
て発明されたRSA暗号がある。以下、このRSA暗号
の原理について簡単に説明する。
【0006】RSA暗号では、暗号鍵(e,N)、復号
鍵(d,N)、平文をM、暗号文をCとした場合、暗号
化Eと復号化Dのアルゴリズムは、べき乗剰余演算を用
いて次のように表される。 C=E(M)=Me mod N M=D(C)=Cd mod N 但し、e・d≡1 mod[LCM{(p−1),(q−
1)}], N=p・q(p,qは大きな素数) e,N:公開鍵 d:秘密鍵 LCM(Lowest Common Multiple) :最小公倍数
【0007】上記式の場合に、それぞれe回の乗算と除
算、d回の乗算と除算を行わなければならず、通常、
e,d,M,Nは 512ビット以上の大きな整数が用いら
れ、高速指数演算法を用いても、1回のRSA演算で平
均 770回の乗算と剰余演算とを行わなければならない。
よって、RSA暗号演算を高速に行うためには、剰余演
算の高速化が必要不可欠であり、特に剰余演算は、近似
法,モンゴメリのアルゴリズム等、多くの高速化手法が
提案されている。
【0008】RSA暗号に代表される公開鍵暗号系の多
くで利用されるべき乗剰余アルゴリズムを高速に処理す
るためには、1回あたりの剰余アルゴリズムの高速化が
要求される。このような観点に基づいて、本発明者等
は、剰余演算の高速化を実現するべく、モンゴメリのア
ルゴリズムを用いた乗算剰余演算装置を提案している
(特開平7−20778 号公報)。この乗算剰余演算装置で
は、モンゴメリ法による剰余演算における繰り返し処理
の部分にテーブルを用いて、効率良く剰余演算処理を高
速化し、剰余演算の処理速度を向上させる。
【0009】ここで、モンゴメリのアルゴリズムについ
て簡単に説明する。モンゴメリのアルゴリズムは、剰余
の法N(N>1)と、剰余の法Nと互いに素である基数
Rとを用いると、被剰余数TからTR-1 modNの計算が
基数Rによる除算のみで行えることを利用して、Nによ
る除算を用いることなく剰余計算を行うアルゴリズムで
ある。ここで、N,N′,R,R-1及びTは整数であ
り、被剰余数Tは0≦T<RN、R-1は剰余の法Nの上
での基数Rの逆数であり、RR-1−NN′=1(0≦R
-1<N,0≦N′<R)の関係を満たす。
【0010】更に、この基数Rに2のべき乗数を使用し
た場合、基数Rによる除算をシフト操作に置き換えるこ
とができるため、T→TR-1 modNの計算の高速処理が
可能となる。具体的なアルゴリズムとして、T→TR-1
modNのアルゴリズムREDC(T)を以下に示す。但し、
このアルゴリズムにおいて、(T+mN)/Rは必ず割
り切れる。 T→TR-1 modNのアルゴリズムREDC(T) m=(T modR)N′ modR t=(T+mN)/R もし、t<Nの場合にはtになり、それ以外はt−N即
ち、 REDC(T)=t (t<N) REDC(T)=t−N (t≧N)
【0011】1回のREDCでは、剰余T modNではなくT
-1 modNが求められるだけである。そこで、剰余T m
odNを求めるためには、以下に示すように、REDC(T)
と予め求めておいたR2 mod Nとの積で、再びREDCを行
えばよい。 REDC(REDC(T)×(R2 mod N)) =(TR-1 modN)(R2 mod N)R-1 modN =TR-1×R2 ×R-1 modN =T modN このようにして、簡単にT modNを求めることができ
る。
【0012】
【発明が解決しようとする課題】特開平7−20778 号公
報に示した乗算剰余演算装置では、モンゴメリのアルゴ
リズムでの変数はレジスタに格納しているが、RSA演
算にあっては、演算処理の高速化に加えてその演算装置
の回路規模の小型化も重要な問題である。
【0013】ところで、RSA暗号は、公開鍵暗号の中
でも、有力で実用的な暗号形式であると言われており、
RSA暗号用の演算チップの開発が積極的に進められて
いる。しかし、近年、RSA暗号の強度の低下について
言及されるようになり、RSA暗号に代わる公開鍵暗号
として、楕円暗号が注目されている。
【0014】楕円暗号の基本演算について、以下に記述
する。有限体Fp(pはp>3の素数)において、Fp
上の楕円曲線E(Fp)は、 y2 =x3 +ax+b 但し、a,bは0≦a,b<pなる整数であり、 4a3 +27b2 ≠0(mod p) で表され、楕円曲線上の点とは、E(Fp)上の点の組と
無限遠点Oとのことを言う。
【0015】この楕円曲線E(Fp)上の点は、以下の加
算ルールで加算を行う。 (1)O+O=O (2)(x,y)+O=(x,y) (3)(x,y)+(x,−y)=O (点(x,y)と点(x,−y)とは逆数の関係にあ
る) (4)逆数の関係にない2点(x1 ,y1 ),(x2
2 )に対して、加算結果を(x3 ,y3 )とする。 (x1 ,y1 )≠(x2 ,y2 )の場合 (x1 ,y1 )+(x2 ,y2 )=(x3 ,y3 ) 但し、x3 =λ2 −x1 −x23 =λ(x1 −x3 )−y1 λ=(y1 −y2 )/(x1 −x2 ) (x1 ,y1 )=(x2 ,y2 )の場合 2(x1 ,y1 )=(x3 ,y3 ) 但し、x3 =λ2 −2x13 =λ(x1 −x3 )−y1 λ=(3x1 2 +a)/2y1
【0016】次に、楕円曲線上の点を高速に加算する手
法を説明する。まず、楕円曲線上の点を三次元空間で表
現する。即ち、(x,y)を(x/z,y/z)と対応
させる(三次元投影法)。三次元で表した点の座標をモ
ンゴメリ系に変換し、加算ルールに従って点の加算(各
座標では、mod p 上で加減乗算)を行う。最後に、z座
標の逆数z-1 mod pを求め、それをx座標及びy座標と
乗算して、点の加算結果を得る。
【0017】上述したような楕円暗号演算を行う場合、
上記の加算ルール(4)のように、毎回、除算を行わな
ければならないし、三次元投影法にモンゴメリ法を適用
して加算処理を行う手法においても、最後に、逆数を演
算しなければならない。RSA暗号演算を行う回路構成
では、除算,逆数演算を行うことができず、ソフトウェ
アでこれらの演算処理を行うと、長時間要するという問
題がある。例えば192ビットの逆数演算を10000 回行っ
た場合、拡張ユークリッドでは約12秒、モンゴメリイン
バースアルゴリズムでは、約7.3 秒かかる(Pentium 13
3 MHz)。
【0018】本発明は斯かる事情に鑑みてなされたもの
であり、小さい回路規模で演算処理が可能であり、変数
のビット長の拡張にも対応できる演算装置、及び、RS
A暗号演算装置を提供することを目的とする。
【0019】本発明の他の目的は、RSA暗号演算装置
に、加減算回路と逆数演算回路とを付加することによ
り、楕円暗号演算を可能とする楕円暗号演算装置を提供
することにある。
【0020】本発明の更に他の目的は、小さい回路規模
で演算時間が早い楕円暗号演算装置を提供することにあ
る。
【0021】
【課題を解決するための手段】請求項1に係る演算装置
は、モンゴメリのアルゴリズムに応じた演算を含む演算
処理を行う演算装置において、変数と途中の演算結果と
を格納するワーキングメモリを設けたことを特徴とす
る。
【0022】請求項2に係るRSA暗号演算装置は、モ
ンゴメリのアルゴリズムを利用して、RSA暗号処理を
行うRSA暗号演算装置において、変数と途中の演算結
果とを格納するワーキングメモリを設けたことを特徴と
する。
【0023】請求項3に係る楕円暗号演算装置は、モン
ゴメリのアルゴリズムを利用して、楕円暗号処理を行う
楕円暗号演算装置において、変数と途中の演算結果とを
格納するワーキングメモリを設けた乗算剰余演算回路
と、モンゴメリ系での演算に必要なパラメータを演算す
るパラメータ演算回路と、加減算を行う加減算回路と、
モンゴメリ系での逆数演算を行う逆数演算回路とを備え
ることを特徴とする。
【0024】請求項4に係る楕円暗号演算装置は、請求
項3において、前記逆数演算回路は、モンゴメリの逆数
アルゴリズムにおける2組4個の変数の加算処理を各組
毎にそれぞれ並列的に行う2個の加算器を有することを
特徴とする。
【0025】請求項5に係る楕円暗号演算装置は、請求
項3において、前記パラメータ演算回路及び/または前
記逆数演算回路は、ビットのシフト処理を結線のつなぎ
替えにて行うように構成したことを特徴とする。
【0026】図1は、本発明の原理説明図である。図に
おいて1は、RSA暗号及び楕円暗号の演算を行う演算
装置である。演算装置1は、モンゴメリ系での乗算を行
う乗算剰余演算回路2と、加算・減算を行う加減算回路
3と、モンゴメリ系での演算に必要なパラメータR2 mo
d p を計算するR2 mod p 演算回路4と、モンゴメリ系
での演算に必要なパラメータp′を計算するp′演算回
路5と、入力変数zの逆数z-1を求める逆数演算回路6
とを有する。また、7は排他的論理和を求めるXOR回
路である。
【0027】図1の構成は、RSA暗号演算装置に加減
算回路3及び逆数演算回路6を付加したものであって、
RSA暗号演算を行えるだけでなく楕円暗号演算も行え
る構成である。
【0028】次に、本発明の動作原理について説明す
る。モンゴメリ系への変換処理は、乗算剰余演算回路2
とR2 mod p 演算回路4とを用いて行う。与えられる開
始点P(x0 /z0 ,y0 /z0 )とすると、 X0 =REDC(x0 ×R2 mod p ) =x0 ×R2 ×R-1 mod p =x0 ×R mod p Y0 =REDC(y0 ×R2 mod p ) =y0 ×R2 ×R-1 mod p =y0 ×R mod p Z0 =REDC(z0 ×R2 mod p ) =z0 ×R2 ×R-1 mod p =z0 ×R mod p となる。但し、この変換は、開始点だけについて行う。
【0029】モンゴメリ系への変換後は、加算ルールに
従って加算を行う。その結果、以下の式に基づく演算を
mod p の上で行うことになる。
【0030】点(x1 ,y1 ,z1 ),(x2 ,y2
2 )の演算結果を点(x3 ,y3,z3 )とすると、 (1)加算(異なる2点) x3 =AB y3 =C(A2 1 2 −B)−A3 1 23 =A3 1 2 但し、A=x2 1 −x1 2 , B=C2 1 2
2 D C=y2 1 −y1 2 , D=x2 1 +x1 2 (2)2倍算(同じ点) x3 =2AB y3 =C(4D−B)−8E23 =8A3 但し、A=y1 1 , B=C2 −8D, C=3x1
2 +az1 2 ,D=x1 E, E=y1 A で表される。実際には、変数a,bに対して、 乗算 a×b → REDC(a×b) 加算 a+b → a+b>pの場合 a+b−p それ以外 a+b 減算 a−b → a>bの場合 a−b それ以外 a−b+p の演算を、乗算剰余演算回路2と加減算回路3とを用い
て行う。
【0031】最後に、逆数演算回路6にz3 ×Rを入力
して、z3 ×R mod pのモンゴメリインバースZ3 -1
3 -1×R-1×R mod p=z3 -1 mod pを求めて、REDC
((x 3 ×R mod p)×Z3 -1)とREDC((y3 ×R mod
p)×Z3 -1)とを計算する。逆数演算回路6は、モン
ゴメリ系での逆数演算アルゴリズム(モンゴメリインバ
ースアルゴリズム)に基づいて演算を行う。演算結果
は、 REDC((x3 ×R mod p)×Z3 -1)=x3 ×R×z3 -1×R-1 mod p =x3 ×z3 -1 mod p REDC((y3 ×R mod p)×Z3 -1)=y3 ×R×z3 -1×R-1 mod p =y3 ×z3 -1 mod p となる。
【0032】以上の演算処理により、楕円曲線上の開始
点Pに対して、kPを得る。そして実際の暗号化・復号
化処理は、次のような手順で行う。図2は、送信者Aと
受信者Bとにおける暗号化・復号化処理の関係を示す模
式図である。
【0033】(送信者A側での暗号化)乱数kに対し
て、 kP=(x1 ,y1 ) kQB =(x2 ,y2 ) を計算する。平文Mとx2 との排他的論理和をXOR回
路7で計算し、暗号文Cを得る。(x1 ,y1 ,C)を
受信者Bへ送る。
【0034】(送信者B側での復号化)dB (x1 ,y
1 )=dB kP=kdB P=kQB =(x2 ,y2 )を
得る。暗号文Cとx2 との排他的論理和をXOR回路7
計算して、平文Mを得る。
【0035】上述したような構成において、本発明の乗
算剰余演算回路2は、従来の変数格納用のレジスタの代
わりにワーキングメモリ(変数格納用とワーク用)を用
いている。よって、従来より回路規模を小さくでき、ま
た、変数のビット長の拡張にも対応できる。
【0036】また、本発明の逆数演算回路6は、2つの
加算器を有し、2組の変数(1組あたり2つの変数で合
計4つの変数)に対して、1サイクルで同時に演算を行
う。よって、演算時間の高速化を図れる。
【0037】また、本発明のp′演算回路5と逆数演算
回路6とにおいて、シフト演算処理を結線のつなぎ替え
にて行うようにする。よって、これらの回路の規模を小
さくできる。
【0038】
【発明の実施の形態】以下、本発明をその実施の形態を
示す図面を参照して具体的に説明する。図3〜図7は、
前述した図1における乗算剰余演算回路2,加減算回路
3,R2 modp 演算回路4,p′演算回路5及び逆数演
算回路6の各回路のハードウェア構成を示す図である。
図3〜図7を参照して、各回路について具体的に説明す
る。
【0039】(乗算剰余演算回路)図3は、乗算剰余演
算回路2の内部構成の一例を示す。図においてFFはフ
リップフロップを示し、64×64乗算器は64ビット×64ビ
ットの乗算器、64加算器は64ビットの加算器をそれぞれ
示す。本発明では、レジスタの代わりにワーキングメモ
リを利用する。
【0040】本例の乗算剰余演算回路2では、途中の計
算結果を格納するワーキングメモリの容量を小さくする
ために、乗数を分割して乗算剰余演算を行う方式を採用
する。例えば、被乗数A(192 ビット),乗数B(192
ビット)とした場合、乗数Bを64ビット単位に分割して
部分積毎に剰余を求めていく。
【0041】モンゴメリ系では、下位64ビットがすべて
0になるようにpの倍数を加算するために、通常の部分
積剰余演算とは異なり、下位64ビットから計算していく
必要がある。即ち、A×B0 の乗算を行い、その結果の
値(192 +64ビット)の下位64ビットが0となるよう
に、pの倍数を足していく。pの倍数は、下位64ビット
の値にp′をかけた結果の下位64ビットである。次に、
A×B1 ,A×B2 に同様の計算を行う。
【0042】以下に、アルゴリズムを示す。 i=0; i<3; ++ i←0, W←0 W←A×Bi +W W←W+(((W mod 264)×p′)mod 264)×p W←W/264
【0043】(加減算回路)図4は、加減算回路3の内
部構成の一例を示す。図において、FFはフリップフロ
ップ、64FFは64ビットのフリップフロップ、64加算器
は64ビットの加算器をそれぞれ示す。
【0044】加減算回路3において、コマンドレジスタ
に加算か減算かを設定する。設定した値(0または1)
によって第1,第2のセレクタの制御が、下記表1のよ
うに行われる。
【0045】
【表1】
【0046】a,b,pを64ビット単位で下位から演算
を行い、各回の演算の結果を、下記表2のように第4,
第5のワーキングメモリに格納していく。このような演
算・格納処理を3回行う。
【0047】
【表2】
【0048】3回目の演算後、第1,第2の64加算器で
のキャリー情報とコマンドレジスタでの設定情報とによ
り、第4のワーキングメモリと第5のワーキングメモリ
との何れの結果を選択するかを、下記表3のように、判
定器にて判定する。
【0049】
【表3】
【0050】(R2 mod p 演算回路)図5は、R2 mod
p 演算回路4の内部構成の一例を示す。図において、F
Fはフリップフロップ、64加算器は64ビットの加算器を
それぞれ示す。
【0051】ここで、pの値を192 ビットとする。即
ち、R=2192 となる値を用い、R2mod p 演算回路4
では、2384 mod p を計算することになる。基本的な演
算方法としては、 ステップ1 Y←R mod p, T←192 ステップ2 Y←Y×2 mod p ステップ3 T←T−1,もし、T=0の場合はステップ4へ それ以外はステップ2へ ステップ4 R2 mod p ←Y なる計算を行うことが一般的である。ここでは、計算時
間の短縮化を図るために、2ビット単位での処理を行う
ことにする。つまり、 ステップ1 Y←R mod p, T←192 ステップ2 Y←Y×4 mod p ステップ3 T←T−2,もし、T=0の場合はステップ4へ それ以外はステップ2へ ステップ4 R2 mod p ←Y なる計算を行う。
【0052】このようなY×4 mod pの計算をハードウ
ェアで行う場合、なにも引かない、−p,−2p,−3
pの剰余演算が必要となり、並列に行うには、4個の加
算器が必要になる。本例のR2 mod p 演算回路4では、
このような演算を表4に示すようなアルゴリズムを用い
て2個の加算器(第1,第2の64加算器)で行い、回路
規模の削減と計算の高速化とを実現している。つまり、
被除数Yの上位3ビット,除数Pの上位2ビットに応じ
て、以下の表4のような処理を行う。
【0053】
【表4】
【0054】なお、1024ビットのRSA演算の場合に
は、R=21024としてR2 mod p 演算回路4での演算を
行う。
【0055】(p′演算回路)図6は、p′演算回路5
の内部構成の一例を示す。本発明では、1ビットのシフ
ト演算処理が結線のつなぎ替えにて行われるように構成
されており、回路規模の小型化を図っている。
【0056】モンゴメリ系では、R×R-1−p×p′=
1となるp′を用いて演算を行う。p′演算回路5でこ
のp′を求める。上記式の両辺にmod Rをとることによ
り、、以下のようになる。 p×p′≡R−1(mod R)
【0057】Rは2のべき乗の値をとるため、右辺は何
倍してもR以下のビット(本暗号ハードウェア下位64ビ
ット)に関しては、p×p′の値がすべて1になるよう
に、p′を選べば良い。p′を求めるアルゴリズムは、
以下のとおりである。 ステップ1 Y←0, T←0,p′←0 ステップ2 Y mod 2=0の場合はY←Y+p, p′←p′+2T ステップ3 Y←Y/2 ステップ4 T=63の場合は終了 それ以外はステップ2へ
【0058】この演算は、下位のビットからpのべき数
倍を加えていくことにより、下位64ビットがすべて1に
なるようなpを求めていく演算である。
【0059】(逆数演算回路(モンゴメリインバース演
算回路))図7は、逆数演算回路6の内部構成の一例を
示す。図において、FFはフリップフロップ、64FFは
64ビットのフリップフロップ、64加算器は64ビットの加
算器をそれぞれ示す。本発明では、第1の64加算器,第
2の64加算器の2個の加算器を有し、後述するような
u,vの2変数に対する第1の64加算器での処理と、後
述するようなr,sの2変数に対する第2の64加算器で
の処理とを、1サイクルで同時に行うようにして、演算
時間の短縮化を図っている。
【0060】楕円曲線上の点の加算処理の結果、得られ
る座標値は、 X座標 x3 ×R mod p Y座標 y3 ×R mod p Z座標 z3 ×R mod p である。ここで、Z座標の逆数z3 -1を求めて、最終的
に座標(x3 ×z3 -1,y3 ×z3 -1)を求めるのであ
るが、逆数演算に以下のモンゴメリインバースアルゴリ
ズムを用いてz3 -1を求める。
【0061】[アルゴリズム] 入力:a,b,n (aは奇数(a>b>0,nはaの
ビット数)) 出力:『互いに素でない』またはb-1×2n mod a 第1フェーズ u←a, v←b, r←0, s←1 k←0 v=0になるまで、以下を繰り返す。 uが偶数の場合 u←u/2, s←2s uが奇数の場合 vが偶数のとき v←v/2, r←2r vが奇数のとき u>vの場合 u←(u−v)/2,r←r+s,s←
2s u≦vの場合 v←(v−u)/2,s←r+s,r←
2r k←k+1 u≠1なら 『互いに素でない』を返す。 r≧aなら r←r−a 第2フェーズ i=1; i≦k−n;++ rが偶数の場合 r←r/2 rが奇数の場合 r←(r+a)/2 a−rを返す。
【0062】R=2192 よりn=192(固定)となり、k
<nの場合が出てくる。そのため、上記アルゴリズムの
第2フェーズを以下のように、拡張する。 第2フェーズ k≧nの場合 i=1; i≦k−n;++ rが偶数のとき r←r/2 rが奇数のとき r←(r+a)/2 k<nの場合 i=1; i≦k−n;++ r←2r r>aのとき r←r−a それ以外は そのまま a−rを返す。
【0063】また、逆数を計算するアルゴリズムとし
て、拡張ユークリッドが知られているが、モンゴメリイ
ンバースアルゴリズムでは、計算の途中に負の値をとら
ないため、ハードウェアでの実現に有効である。
【0064】上述した本例の乗算剰余演算回路2,加減
算回路3,R2 mod p 演算回路4及びp′演算回路5の
回路規模の合計は約5万8千ゲートであり、これに上述
の逆数演算回路6の約5千ゲートの回路規模の追加によ
り、楕円暗号演算が可能となる。また、上述した本回路
構成での楕円暗号演算の処理時間は、約60msec(ク
ロック5MHz,データ長192 ビット)であり、逆数演
算回路(モンゴメリインバース演算回路)6の処理時間
は、約0.6 msecと評価できる。
【0065】
【発明の効果】以上説明したように、本発明によれば、
乗算剰余演算回路に、加減算回路と逆数演算回路とを付
加することにより、RSA暗号演算と楕円暗号演算との
両演算が可能となる。また、レジスタの代わりにワーキ
ングメモリを使って回路規模の小型化を実現することに
より、演算チップの省スペース化という効果がある。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】暗号化・復号化処理の関係を示す模式図であ
る。
【図3】乗算剰余演算回路の構成図である。
【図4】加減算回路の構成図である。
【図5】R2 mod p 演算回路の構成図である。
【図6】p′演算回路の構成図である。
【図7】逆数演算回路(モンゴメリインバース演算回
路)の構成図である。
【符号の説明】
1 演算装置 2 乗算剰余演算回路 3 加減算回路 4 R2 mod p 演算回路 5 p′演算回路 6 逆数演算回路(モンゴメリインバース演算回路) 7 XOR(Exclusive OR)回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 長谷部 高行 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 武仲 正彦 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 モンゴメリのアルゴリズムに応じた演算
    を含む演算処理を行う演算装置において、変数と途中の
    演算結果とを格納するワーキングメモリを設けたことを
    特徴とする演算装置。
  2. 【請求項2】 モンゴメリのアルゴリズムを利用して、
    RSA暗号処理を行うRSA暗号演算装置において、変
    数と途中の演算結果とを格納するワーキングメモリを設
    けたことを特徴とするRSA暗号演算装置。
  3. 【請求項3】 モンゴメリのアルゴリズムを利用して、
    楕円暗号処理を行う楕円暗号演算装置において、変数と
    途中の演算結果とを格納するワーキングメモリを設けた
    乗算剰余演算回路と、モンゴメリ系での演算に必要なパ
    ラメータを演算するパラメータ演算回路と、加減算を行
    う加減算回路と、モンゴメリ系での逆数演算を行う逆数
    演算回路とを備えることを特徴とする楕円暗号演算装
    置。
  4. 【請求項4】 前記逆数演算回路は、モンゴメリの逆数
    アルゴリズムにおける2組4個の変数の加算処理を各組
    毎にそれぞれ並列的に行う2個の加算器を有する請求項
    3記載の楕円暗号演算装置。
  5. 【請求項5】 前記パラメータ演算回路及び/または前
    記逆数演算回路は、ビットのシフト処理を結線のつなぎ
    替えにて行うように構成した請求項3記載の楕円暗号演
    算装置。
JP30475897A 1997-11-06 1997-11-06 演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置 Pending JPH11143688A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30475897A JPH11143688A (ja) 1997-11-06 1997-11-06 演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30475897A JPH11143688A (ja) 1997-11-06 1997-11-06 演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置

Publications (1)

Publication Number Publication Date
JPH11143688A true JPH11143688A (ja) 1999-05-28

Family

ID=17936883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30475897A Pending JPH11143688A (ja) 1997-11-06 1997-11-06 演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置

Country Status (1)

Country Link
JP (1) JPH11143688A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020071327A (ko) * 2001-03-06 2002-09-12 미션텔레콤 주식회사 씨알티를 이용한 하이래딕스 알에스에이 모듈로 멱승 처리기
JP2004078495A (ja) * 2002-08-15 2004-03-11 Sony Corp 非接触式icカード
US7080110B2 (en) 2000-12-19 2006-07-18 International Business Machines Corporation Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements
KR100617384B1 (ko) 2004-09-24 2006-08-31 광주과학기술원 Rsa 보안 모듈의 몽고메리 곱셈기
US7277540B1 (en) 1999-01-20 2007-10-02 Kabushiki Kaisha Toshiba Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography
JP2010164721A (ja) * 2009-01-15 2010-07-29 Sharp Corp モンゴメリ乗算のための演算回路及び暗号回路
US7870395B2 (en) 2006-10-20 2011-01-11 International Business Machines Corporation Load balancing for a system of cryptographic processors
US7890559B2 (en) 2006-12-22 2011-02-15 International Business Machines Corporation Forward shifting of processor element processing for load balancing

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277540B1 (en) 1999-01-20 2007-10-02 Kabushiki Kaisha Toshiba Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography
US7080110B2 (en) 2000-12-19 2006-07-18 International Business Machines Corporation Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements
KR20020071327A (ko) * 2001-03-06 2002-09-12 미션텔레콤 주식회사 씨알티를 이용한 하이래딕스 알에스에이 모듈로 멱승 처리기
JP2004078495A (ja) * 2002-08-15 2004-03-11 Sony Corp 非接触式icカード
KR100617384B1 (ko) 2004-09-24 2006-08-31 광주과학기술원 Rsa 보안 모듈의 몽고메리 곱셈기
US7870395B2 (en) 2006-10-20 2011-01-11 International Business Machines Corporation Load balancing for a system of cryptographic processors
US7890559B2 (en) 2006-12-22 2011-02-15 International Business Machines Corporation Forward shifting of processor element processing for load balancing
JP2010164721A (ja) * 2009-01-15 2010-07-29 Sharp Corp モンゴメリ乗算のための演算回路及び暗号回路

Similar Documents

Publication Publication Date Title
US8504602B2 (en) Modular multiplication processing apparatus
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
JPH0720778A (ja) 剰余計算装置、テーブル作成装置および乗算剰余計算装置
Kobayashi et al. Fast elliptic curve algorithm combining Frobenius map and table reference to adapt to higher characteristic
WO2010048719A1 (en) Method and apparatus for modulus reduction
US20020126838A1 (en) Modular exponentiation calculation apparatus and modular exponentiation calculation method
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
JP3542278B2 (ja) モンゴメリ・リダクション装置及び記録媒体
JPH11143688A (ja) 演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置
Moon et al. Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications
KR100457177B1 (ko) 유한체 상의 두 원소의 곱을 구하는 직렬-병렬 곱셈기
JP4177526B2 (ja) 乗算剰余演算方法および乗算剰余回路
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
US20040174995A1 (en) Cryptosystems
CN1230736C (zh) 智能卡模乘器vlsi结构的计算机实现方法
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
Kobayashi et al. Fast modular inversion algorithm to match any operation unit
JP3123820B2 (ja) 有限可換群における演算器
JP3615405B2 (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP2000137436A (ja) 素体上楕円曲線上の点の演算方法およびその装置
KR100322740B1 (ko) 모듈러 연산장치 및 그 방법
CN114513306B (zh) 数据加密传输方法、系统
JP3779479B2 (ja) Icカード
KR102348797B1 (ko) Rsa 암호화 시스템의 rsa 회로 모듈
Poomagal et al. Modular multiplication algorithm in cryptographic processor: A review and future directions

Legal Events

Date Code Title Description
A977 Report on retrieval

Effective date: 20040518

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040525

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040716

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041206

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20041209

A912 Removal of reconsideration by examiner before appeal (zenchi)

Effective date: 20050701

Free format text: JAPANESE INTERMEDIATE CODE: A912