JPH05324277A - 暗号通信方法 - Google Patents

暗号通信方法

Info

Publication number
JPH05324277A
JPH05324277A JP4124982A JP12498292A JPH05324277A JP H05324277 A JPH05324277 A JP H05324277A JP 4124982 A JP4124982 A JP 4124982A JP 12498292 A JP12498292 A JP 12498292A JP H05324277 A JPH05324277 A JP H05324277A
Authority
JP
Japan
Prior art keywords
mod
input
output
multiplication
modular
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.)
Granted
Application number
JP4124982A
Other languages
English (en)
Other versions
JP3302043B2 (ja
Inventor
Keiichi Iwamura
恵市 岩村
Takahisa Yamamoto
貴久 山本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP12498292A priority Critical patent/JP3302043B2/ja
Priority to US07/941,236 priority patent/US5321752A/en
Priority to AT92308056T priority patent/ATE183315T1/de
Priority to DE69229766T priority patent/DE69229766T2/de
Priority to EP92308056A priority patent/EP0531158B1/en
Publication of JPH05324277A publication Critical patent/JPH05324277A/ja
Priority to HK98112269A priority patent/HK1011430A1/xx
Application granted granted Critical
Publication of JP3302043B2 publication Critical patent/JP3302043B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 暗号通信方法において、必要となる剰余乗算
またはべき乗剰余演算を小さな回路規模で高速に演算す
る。 【構成】 剰余乗算Q=A・B mod N及びべき乗剰余
演算C=Me mod Nを、Nと素な整数Rを用いた同形の
演算Z=U・ V・ R-1 mod Nの繰り返しにより実現す
る。また、この演算を同一の回路による繰り返し演算、
または同一構成の複数の回路による並列処理によって実
行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータネットワー
クにおけるホームバンク、ファームバンク、電子メール
及び電子会議などの様々な通信サービスに用いられる暗
号化技術に関する。特にべき乗剰余演算及び剰余乗算を
用いる暗号方式(RSA暗号、エルガマル暗号等)、鍵
共有方式(DH型鍵共有方式、ID-based鍵共有方式
等)、零知識証明方式等を用いて暗号通信を行うシステ
ムに関する。
【0002】
【従来の技術】近年、コンピュータネットワークを用い
た情報通信システムの急速な進展とともに、データ内容
の保護を目的とする暗号技術の重要性が高まっている。
特に、コンピュータネットワークの高速化・大容量化が
進展する中で、高速な暗号技術が不可欠になりつつあ
る。
【0003】かかる暗号技術において、べき乗剰余演算
及び剰余乗算は種々の暗号技術に用いられている重要な
演算であり、次のような利用例を挙げることができる。
【0004】まず、暗号方式には秘密鍵暗号方式と公開
鍵暗号方式があることが知られている。公開鍵暗号方式
では暗号化鍵と復号鍵とが異なり、暗号化鍵は公開し、
復号鍵は受信者が秘密に保持するもので、公開された暗
号化鍵から復号鍵を推定するのが困難なようになってい
るものである。その公開鍵暗号方式としてRSA暗号や
エルガマル暗号などのべき乗剰余演算及び剰余乗算に基
づく暗号がよく用いられている。更にこれらの暗号は、
秘密通信機能の他に認証と呼ばれるもう1つの用途があ
ることが注目されている。認証とは、通信文の送信者が
正しいかどうかを検査する機能であり、ディジタル署名
とも呼ばれている。これらの暗号を用いたディジタル署
名では、送信者のみが知っている秘密鍵で署名でき、偽
造できないので安全であり認証通信として金融機関など
で多く用いられている。
【0005】また、同一の鍵を送信者と受信者が秘密に
共有する秘密鍵暗号方式として、乱数をデータに加える
バーナム暗号が知られているが、その乱数として平方剰
余と呼ばれるべき乗剰余演算及び剰余乗算に基づく乱数
が知られている。
【0006】また、以上の秘密鍵暗号方式及び公開鍵暗
号方式は、鍵配送方式または鍵共有方式と呼ばれる技術
とともに用いられることが多い。鍵配送方式としては、
DiffieとHellman によるDH型鍵配送方式がよく知られ
ているが、この方式もべき乗剰余演算及び剰余乗算を用
いて演算を行う。さらに、鍵共有方式としてID-based
鍵共有方式が注目されているが、この方式を含む種々の
鍵共有方式においてべき乗剰余演算及び剰余乗算が用い
られている。
【0007】他に、暗号技術には零知識証明と呼ばれる
ものがある。これは自分がある知識を持っていること
を、その内容をいっさい告げることなく(=零知識)、
相手に納得させる(=証明)方法である。これにも、べ
き乗剰余演算及び剰余乗算に基づく種々の手法がある。
【0008】以上の暗号技術の詳細については池野信
一,小山謙二著“現代暗号理論”,電子情報通信学会
(1986)及び辻井重男,笠原正雄著“暗号と情報セキュ
リティ”,昭晃堂(1990)等に詳しく説明されている。
【0009】従って、種々の暗号システムを効率よく構
成するために、効率的なべき乗剰余演算及び剰余乗算回
路の実現が望まれていた。更に、高速なべき乗剰余演算
及び剰余乗算回路が構成できれば、種々の暗号システム
の高速化が実現できる。
【0010】ところで、Nを法とする剰余乗算を演算す
る方法として、Nと素な整数Rを用いて演算を行う手法
がある。例えば、モンゴメリーによって提案された手法
〔モンゴメリー法〕(Montgomery,P.L.:“Modular mult
iplication without trial division, ”Math. of Comp
utation,Vol.44,1985,pp.519-521 )は、Q=A・ Bmod
Nの代わりにQ=A・ B・ R-1 mod Nを演算するこ
とで、除算を行うことなしに剰余乗算を計算することが
できる。
【0011】一方、処理を高速化していく1つの手法と
して、並列処理がある。その代表的なアーキテクチャと
してシストリックアレイが知られている。シストリック
アレイは処理を数種類の演算素子(プロセッシング・エ
レメント:以後PE)によるパイプライン処理によって
実行し、高速処理を実現する。また、制御がPE単位の
局所的なものですみ容易である。従って、シストリック
アレイは全体構造の規則性とPE単位の局所性を有し、
VLSI等の大規模な処理の装置化を容易にするアーキ
テクチャとして知られている。このような並列処理的手
法は大規模な処理を必要とする大きな整数に対するべき
乗剰余演算及び剰余乗算の高速化にも適していると考え
られるが、従来の手法の中でシストリックアレイ等の並
列処理的手法をべき乗剰余演算及び剰余乗算に対して適
用したものは殆どなかった。
【0012】そこで、本出願人は、先に特願平3-225986
号として、シストリックアレイを用いた剰余乗算回路を
提案したが、これはモンゴメリー法を用いたものではな
い。一方、モンゴメリー法を用いたアレイがイブンによ
って提案されている。( Shimon Even: “Systolic mod
ular multiplication,”Advances in Cryptology-CRYPT
O'90,pp.619-624,Springer-Verlag.)
【0013】
【発明が解決しようとしている課題】上述のような暗号
システムに用いられるべき乗剰余演算及び剰余乗算で用
いられる整数は、十分な安全性を確保するために512
ビット以上のビット数を持つことが要求される。このよ
うに大きな整数に対するべき乗剰余演算及び剰余乗算を
通常のコンピュータを用いて高速に演算することは困難
であった。
【0014】また、モンゴメリー法を繰り返してべき乗
剰余演算を実行する場合、剰余乗算を繰り返す度に出力
の最大ビット数が大きくなり、同じ回路によってべき乗
剰余演算を実行することは困難であった。これについ
て、イブンのアレイは、剰余乗算出力のビット数が入力
値のビット数を越えた場合の処理を行うPEについて示
されておらず、べき乗剰余演算に対しては不十分なもの
になっている。
【0015】さらに、従来のモンゴメリー法は後述する
ようにQ=A・ B・ R-1 mod Nの演算を行う前後に、
A,B及びQに対して別の演算を行う必要があり、数種
類の演算手段が必要であった。
【0016】また、特に、上述のイブンのアレイは、乗
算T=A・ Bを実行するアレイと、定数として扱われる
Rに対する剰余演算Q=T・ R-1 mod Nを実行するア
レイから構成されている。従って、イブンのシストリッ
クアレイは、Tを演算するアレイとQを演算するアレイ
が2種類必要であるために効率的ではなかった。さら
に、PE内で行なれる演算として1ビット毎の演算のみ
を提案しており、柔軟性に欠けていた。
【0017】
【課題を解決するための手段】そこで、本発明の目的
は、上述の欠点を除去し、暗号通信におけるべき乗剰余
演算及び剰余乗算を、剰余の法となるNと素であるRを
用いた剰余乗算を繰り返すだけで実行する方法を提供す
ることにある。
【0018】また、本発明の他の目的は、モンゴメリー
法を用いて、より小さな回路規模で高速にべき乗剰余演
算及び剰余乗算を実行する回路を実現することにある。
【0019】かかる課題を解決するために、本発明で
は、Nを法とする整数A、Bの剰余乗算Q=A・ B mod
Nを利用して、通信内容の暗号化または復号を行なう
暗号通信方法において、入力データU、Vに対して、N
と素である整数Rを用いて、Z=U・V・R-1 mod N
を演算して出力する演算部を1つ以上具える。
【0020】また、本発明の他の態様によれば、Nを法
とする整数M、eに関するべき乗剰余演算:C=Me mo
d Nを利用して、通信内容の暗号化または復号を行なう
暗号通信方法において、入力データU、Vに対して、N
と素である整数Rを用いて、Z=U・V・R-1 mod N
を演算して出力する演算部を1つ以上具える。
【0021】また、本発明の他の態様によれば、入力さ
れた整数A、Bに対するNを法とした剰余乗算Q=A・
B mod Nを利用して、通信内容の暗号化または復号を
行なう暗号通信方法において、Nと素である整数Rを用
いて、入力されたA及び前記RよりA・ R mod Nを演
算してその結果をAR とする演算工程と、入力されたB
及び前記RよりB・ R mod Nを演算してその結果をB
R とする演算工程と、前記演算結果AR 、BR 及び前記
Rに基づき、AR・BR ・ R-1 mod Nを求めてその結果
をTR とする演算工程と、前記TR と前記RとによりT
R・R-1 mod Nを演算し、その結果としてQを求める演
算工程とを有し、前記TR を求める演算工程に、Ai
任意の整数vによる前記AR のvビット毎の分割、Y=
v として、 Ti =( Ti-1 +Ai・BR・Y+Mi-1・N)/Y Mi-1 =( Ti-1 mod Y)・( −N-1 mod Y) mod Y の順次演算により実行する演算工程とを具える。
【0022】また、本発明の他の態様によれば、入力さ
れた整数A、Bに対するNを法とした剰余乗算Q=A・
B mod Nを利用して、通信内容の暗号化または復号を
行なう暗号通信方法において、Nと素である整数Rを用
いて、入力されたA及び前記RよりA・ R mod Nを演
算してその結果をAR とする演算工程と、入力されたB
及び前記RよりB・ R mod Nを演算してその結果をB
R とする演算工程と、前記演算結果AR 、BR 及び前記
Rに基づき、AR・BR ・ R-1 mod Nを求めてその結果
をTR とする演算工程と、前記TR と前記RとによりT
R・R-1 mod Nを演算し、その結果としてQを求める演
算工程とを有し、前記TR を求める演算工程に、Ai
任意の整数vによる前記AR のvビット毎の分割、Y=
v として、 Ti =( Ti-1 /Y+Ai・BR )+Mi・N Mi-1 =((Ti-1 /Y+Ai・BR )mod Y)・( −N-1 mod Y) mod Y の順次演算により実行する演算工程を具える。
【0023】
【作用】入力データU、Vに対して、Nと素である整数
Rを用いて、Z=U・V・R-1mod Nを演算して出力
する1つ以上の演算部に対して、Aと、RR =R2 mod
Nなる定数RR とを入力して、AR =A・ RR・R-1 mod
Nを出力させ、Bと、前記定数RR とを入力して、BR
=B・ RR・R-1 mod Nを出力させ、出力された前記A
R と前記BR とを入力して、TR =AR・BR ・ R-1 mod
Nを出力させ、出力された前記TR と定数1とを入力
して、TR・1・ R-1 mod NをQとして出力させること
により、前記剰余乗算Q=A・ B mod Nを実行する。
【0024】入力データU、Vに対して、Nと素である
整数Rを用いて、Z=U・V・R-1mod Nを演算して
出力する1つ以上の演算部に対して、Mと、RR =R2
modNなる定数RR とを入力して、MR =M・ RR・R-1
modNを出力させ、eの2進表現をe=〔et,et-1,…,
1 〕とし、CR の初期値をCR =RR・R-1 modNと
して、順次高位ビットからのei の値に従って、ei
1なるときに、前記演算部に対してCR とMR とを入力
して、CR・MR・R-1 modNを新たなCR として出力さ
せ、更に、前記ei におけるiが1より大なるときに
は、前記演算部に対して2つの入力データとして共にC
R を入力して、CR・CR・R-1 mod Nを新たなCR とし
て出力させ、全ての前記ei に対する処理の終了後に、
前記演算部に対してCR と定数1とを入力して、C=C
R・1・ R-1 mod Nを出力させることにより、前記べき
乗剰余演算C=Me mod Nを実行する。
【0025】入力データU、Vに対して、Nと素である
整数Rを用いて、Z=U・V・R-1mod Nを演算して
出力する1つ以上の演算部に対して、Mと、RR =R2
modNなる定数RR とを入力して、MR =M・ RR・R-1
modNを出力させ、eの2進表現をe=〔et,et-1,…,
1 〕とし、CR の初期値をCR =RR・R-1 modNと
して、順次低位ビットからのei の値に従って、ei
1なるときに、前記演算部に対してCR とMR とを入力
して、CR・MR・R-1 modNを新たなCR として出力さ
せ、更に、前記ei におけるiがtより小なるときに
は、前記演算部に対して2つの入力データとして共にM
R を入力して、MR・MR・R-1 mod Nを新たなMR とし
て出力させ、全ての前記ei に対する処理の終了後に、
前記演算部に対してCR と定数1とを入力して、C=C
R・1・ R-1 mod Nを出力させることにより、前記べき
乗剰余演算C=Me mod Nを実行する。
【0026】入力された整数A、Bに対するNを法とし
た剰余乗算Q=A・ B mod Nを、Nと素である整数R
を用いて、入力されたA及び前記RよりA・ R mod N
を演算してその結果をAR とし、入力されたB及び前記
RよりB・ R mod Nを演算してその結果をBR とし、
前記演算結果AR 、BR 及び前記Rに基づき、AR・BR
・ R-1 mod Nを求めてその結果をTR とし、前記TR
と前記RとによりTR・R-1 mod Nを演算し、その結果
としてQを求めるようにし、前記TR を求める演算を、
i を任意の整数vによる前記AR のvビット毎の分
割、Y=2v として、 Ti =( Ti-1 +Ai・BR・Y+Mi-1・N)/Y Mi-1 =( Ti-1 mod Y)・( −N-1 mod Y) mod Y の順次演算により実行する。
【0027】入力された整数A、Bに対するNを法とし
た剰余乗算Q=A・ B mod Nを、Nと素である整数R
を用いて、入力されたA及び前記RよりA・ R mod N
を演算してその結果をAR とし、入力されたB及び前記
RよりB・ R mod Nを演算してその結果をBR とし、
前記演算結果AR 、BR 及び前記Rに基づき、AR・BR
・ R-1 mod Nを求めてその結果をTR とし、前記TR
と前記RとによりTR・R-1 mod Nを演算し、その結果
としてQを求めるようにし、前記TR を求める演算を、
i を任意の整数vによる前記AR のvビット毎の分
割、Y=2v として、 Ti =( Ti-1 /Y+Ai・BR )+Mi・N Mi-1 =((Ti-1 /Y+Ai・BR )mod Y)・( −N-1 mod Y) mod Y の順次演算により実行する。
【0028】
【実施例】以下、Nを法とする剰余乗算を、Nと素であ
る整数Rを用いた値に対する剰余乗算として、モンゴメ
リーによって提案された手法(モンゴメリー法)を例に
とり説明を行う。まず、べき乗剰余演算及び剰余乗算を
用いる暗号システムについて示し、次にモンゴメリー法
を用いたべき乗剰余演算及び剰余乗算を行う場合の前後
の処理法とモンゴメリー法を用いた剰余乗算の入出力の
整合性について示す。さらに、モンゴメリー法を実行す
るPEを示し、それを複数並列に用いることによってべ
き乗剰余演算及び剰余乗算を効率的に実行する回路を示
す。
【0029】〔暗号システム〕まず、図1に示すn対n
の通信系における暗号システムについて説明する。図1
における結線はローカルエリアネットワーク(LAN)
のような局所的な通信網、または電話回線のような大域
的な通信網を表す。ここで、A〜Zは利用者であり、そ
れぞれに通信網につながるための通信機(通信端末)T
が割り当てられている。暗号装置は、入力された情報を
暗号化して出力するものであり、例えば、その通信機T
に内臓させ、通信機Tが暗号化情報を出力する構成とし
てもよいし、通信機Tと通信網の間に挿入させて、通信
機Tの出力を暗号化して通信網に出力するようにしても
よい。また、通信機に接続され、通信機に情報を出力す
る装置に内臓させることもできる。また、暗号装置が通
信機に常時接続されていなくても、ICカードのような
携帯用の装置に暗号装置を内蔵し、必要なときに通信機
または通信機に接続された装置と接続する構成としても
よい。このような暗号装置によって、秘密通信や認証通
信及び鍵共有,零知識証明などの暗号通信を行うことが
できる。
【0030】このような暗号装置で必要となる、剰余乗
算回路またはべき乗剰余演算回路の例としては、平文M
を入力し、e及びNを他の入力または記憶された値とし
て、暗号C=Me mod Nを出力するべき乗剰余演算回路
を考えることができる。この場合、べき乗剰余演算回路
が暗号装置そのものとなる。秘密通信の場合、同様の暗
号装置により、逆演算M=Cd mod Nによって復号を行
うこともある。また、剰余乗算回路またはべき乗剰余演
算回路を暗号装置の一部として、暗号装置への外部から
の入力あるいは暗号装置内の他の処理部の処理結果をこ
の回路に入力して、演算を実行し、演算結果を暗号装置
の外部への出力あるいは暗号装置内の他の処理部に対す
る入力とする構成をとることもできる。
【0031】また、記憶媒体へのアクセスを通信と見な
した場合は、磁気ディスク等のような記憶媒体と、この
記録媒体へのアクセス装置が通信機に相当し、通信系と
同様に記憶系においても本発明による回路を用いた暗号
装置によって、暗号システムを利用することができる。
【0032】〔モンゴメリーの剰余乗算〕次の定理がモ
ンゴメリーによって導かれた。
【0033】定理1:NとRを互いに素な整数、Tを任
意の整数とし、N' =−N-1 mod Rとし、M=T・
N' mod Rとするとき、次の関係を満足する。
【0034】 (T+M・ N)/R=T・ R-1 mod N (1) 証明:略 従って、剰余乗算:Q=A・ B mod Nを実行する場
合、Nに対して素である整数Rを用いて次のようにして
行うことができる。
【0035】 AR =A・ R mod N (2) BR =B・ R mod N (3) T =AR・BR (4) TR =T・ R-1 mod N=(T+M・ N)/R (5) Q =TR・R-1 mod N (6) ここで、式(4),(5)の演算をモンゴメリーの剰余
乗算と呼ぶとすると、モンゴメリーの剰余乗算は次のよ
うに表すことができる。
【0036】 TR =AR・BR・R-1 mod N =(AR・BR +M・ N)/R (7) ただし、M=AR・BR・N' mod R (8) モンゴメリーの剰余乗算においてNが奇数の場合、R=
n (nは任意の整数)と選べば、RはNに対して素な
整数になる。この場合、Rによる除算はビットシフトの
みで済むので、式(5)または式(7)のモンゴメリー
の剰余乗算は乗算のみによって実行できる。
【0037】このとき、式(2),(3)及び(6)の
前後の処理もまたモンゴメリーの剰余乗算によって次の
ように実行できる。
【0038】 AR =A・ R mod N =A・ RR・R-1 mod N BR =B・ R mod N =B・ RR・R-1 mod N Q =TR・R-1 mod N=TR・1・ R-1 mod N ただし、RR =R2 mod N RR はNによって一意に定まる値であるので、Nを定め
たときに定まり、定数として扱うことができる。従っ
て、図2に示すようにZ=X・Y・R-1 mod Nを実行
する演算回路を用いて、式(2)〜(6)の演算が共通
に実行でき、求める剰余乗算:Q=A・ B mod Nが演
算される。図2は入力組(A,RR ),(B,RR ),
(AR ,BR ),(TR ,1)に対する出力が各々A
R ,BR ,TR ,Qであることを示している。
【0039】〔モンゴメリーのべき乗剰余演算1〕ま
た、モンゴメリー法を用いて、べき乗剰余演算:C=M
e mod Nも次のようにして実行される。
【0040】 INPUT M,e,N,RRR =M・ RR・R-1 mod N (9) CR =1・ RR・R-1 mod N (10) FOR i=t TO 1 IF ei =1 THEN CR =CR・MR・R-1 mod N (11) IF i >1 THEN CR =CR・CR・R-1 mod N (12) NEXT C=CR・1・ R-1 mod N (13) 従って、べき乗剰余演算もモンゴメリーの剰余乗算のみ
によって実行できる。なお、式(10)に示すCR の初
期値は、RR とNによって定まるので定数として扱うこ
ともできる。以後、このようにモンゴメリーの剰余乗算
のみを用いたべき乗剰余演算をモンゴメリーのべき乗剰
余演算と呼ぶ。
【0041】ここで、以上のように、モンゴメリーのべ
き乗剰余演算を実行する場合、1つの演算結果を次の演
算の入力として乗算を繰り返すので、各乗算を同一の回
路構成で実現しようとするとき、出力の最大ビット数が
入力の最大ビット数を越えてしまうと実現が困難とな
る。
【0042】そこで、式(7)のモンゴメリーの剰余乗
算において、入力と出力の最大ビット数が等しくなるた
めの条件を以下に考察する。
【0043】定理2:式(7),(8)においてAR
n+u ,BR <2n+u ,N<2n ,R=2n+ r としたと
き、TR <2n+u となるためには、u=1かつr>1、
または、u>1かつr=u+1ならば十分である。
【0044】証明: R=2n+r とすると式(8)よりM<2n+r . AR <2n+u ,BR <2n+u ,N<2n とすると、 AR・BR <22(n+u),M・ N<22n+r. キャリーによる桁上がりを考慮して、 AR・BR +M・ N<max (22(n+u)+1,22n+r+1). よって、TR <max (2n+2u+1-r,2n+1 ). 従って、2n+2u+1-r≦2n+1 の場合:TR <2n+1 . ∴ u=1,r>1 (14) 2n+2u+1-r>2n+1 の場合:TR <2n+2u+1-r. ∴ u>1,r=u+1 (15) ただし、max (A,B)はA,Bのうち大きい方を選択
する関数である。
【0045】このとき、式(14),(15)の条件を
満足していればモンゴメリーのべき乗剰余演算はすべて
モンゴメリーの剰余乗算の単純な繰り返しによって実現
することができる。従って、図3に示すように式(9)
〜(13)に対してセレクタSによって入力を選択する
だけでべき乗剰余演算が実行できる。
【0046】なお、図3の回路で、2つのセレクタS
は、選択可能なフィードバック入力として、一方にC
R 、他方にCR ,MR を一時蓄えるメモリを具えるもの
とする。このようなメモリは、2つのセレクタSの前に
設けて、両セレクタSが共通に利用できるようにしても
よいことはもちろんである。また、このようなセレクタ
Sにおける入力の切換のためには、例えば、eをシフト
レジスタに記憶させ、eiを上位ビットから順次出力さ
せ、その出力を受けて、ei =1であるか、およびi
>1であるかの判定を行い、切換信号を出力する制御部
(論理回路やカウンタなどにより構成できる)を設けれ
ばよい。
【0047】このとき、式(14),(15)の条件を
満足していればモンゴメリーのべき乗剰余演算はすべて
モンゴメリーの剰余乗算の単純な繰り返しによって実現
することができる。ただし、式(14),(15)から
u>0であるので、演算結果であるCだけは、C<Nと
なるように補正しなければならない。
【0048】従来のイブンの手法では、このような補正
をモンゴメリーの剰余乗算を行う度に行わなければなら
ないが、本方式はモンゴメリーのべき乗剰余演算の終了
後に1度だけ補正を行えばよい。また、この補正は簡単
な処理であるので、以下に示すモンゴメリーのべき乗剰
余演算のための回路規模や処理速度に比べてほとんど影
響しない。
【0049】〔モンゴメリーのべき乗剰余演算2〕ま
た、べき乗剰余演算:C=Me mod Nは次のようにして
も実行できる。
【0050】 INPUT M,e,N,RRR =M・ RR・R-1 mod N CR =1・ RR・R-1 mod N FOR i=1 TO t IF ei =1 THEN CR =CR・MR・R-1 mod
N IF i <t THEN MR =MR・MR・R-1 mod
N NEXT C=CR・1・ R-1 mod N この場合も、式(14),(15)の条件を用いればモ
ンゴメリーの剰余乗算の単純な繰り返しによってCが演
算できることは明らかである。また、図3の回路で、2
つのセレクタSがそれぞれCR ,MR を選択可能とする
と共に、2つのセレクタSが、ともにMR を選択可能と
するだけで、同様にべき乗剰余演算が実行できることは
明らかである。
【0051】以上によって、べき乗剰余演算及び剰余乗
算が式(16)を演算する演算回路のみによって実行で
きることが示された。
【0052】 Z=X・ Y・ R-1 mod N (16) また、これを式(7)に示すモンゴメリーの剰余乗算を
用いて演算する場合には、式(14),(15)の条件
を満足する入力値を用いることによって、モンゴメリー
の剰余乗算の単純な繰り返しによって剰余乗算及びべき
乗剰余演算が実行できることも示された。
【0053】式(16)または式(7)は整数演算であ
るので、その演算回路及び方法は種々の手法によって実
現できる。例えば、CPU等を用いれば簡単に実現でき
ることは明らかである。
【0054】従って、式(16)または式(7)を実行
する共通の演算回路及び方法によって、剰余乗算及びべ
き乗剰余演算を用いた種々の暗号システムが効率的に構
成できる。
【0055】〔モンゴメリーの剰余乗算及びべき乗剰余
回路の実施例1〕TR =AR・BR・R-1 mod N(AR
R <2n+u ,R=2n+r ,N<2n 整数,u,rは式
(14),(15)の条件を満たす)の剰余乗算を考え
る。ARをvビット毎、BR ,N,TR をdビット毎に
分割すると、次のように表せる。ただし、n+r≦m・
d,n+r≦k・ v,X=2d ,Y=2v (v≦d)。
【0056】 AR =Ak-1・Yk-1+Ak-2・Yk-2+・・・+A1・Y+ A0R =Bm-1・Xm-1+Bm-2・Xm-2+・・・+B1・X+ B0 N =Nm-1・Xm-1+Nm-2・Xm-2+・・・+N1・X+ N0R =Tm-1・Xm-1+Tm-2・Xm-2+・・・+T1・X+ T0 (17) ここで、Ai(i=0,…,k-1,n+u <i でAi =0) はAR
を下位桁からvビット毎に分割したビット系列を表し、
j ,Nj ,Tj(j=0,…,m-1) は各々BR ,N,TR
ついて下位桁からdビット毎に分割したビット系列を表
す。この場合、モンゴメリーの剰余乗算は次の演算をi=
0 からk まで繰り返すことよって求められる。ただし、
T_iはi回目の演算におけるTR の値を意味し、式(1
6)におけるTi とは異なる。
【0057】 T_i=( T_i-1+Ai・BR・Y+Mi-1・N)/Y (18) ただし、Mi-1 =( T_i-1 mod Y)・N0' mod Y,T
_-1 =0,N0'=N'mod Y この演算を並列処理で実現するために、BR ,NをBj
,Nj を用いて表すと次のようになる。
【0058】アルゴリズム1: FOR i=0 TO k Mi-1 =dwv (dwv (Ti-1,0 )・ N0') FOR j=0 TO m−1 Ri,j =Ti-1,j +Li-2,j+1・X/ Y2 +Y・ Ai・Bj
+Mi-1・Nji,j =dwv (Ri,j ) Ti,j =(Ri,j −Li,j )/Y NEXT NEXT ただし、dwd (Z)=Z mod 2d upd (Z)=(Z−dwd (Z))/2d Ti,j ,Li,j の初期値は全て0 アルゴリズム1において、Y・ Ai・Bj ,Li-2,j+1・X
/ Y2 ,およびTi,j=(dwd+v (Ri,j )−Li,j
/Y等の定数X=2d ,Y=2v による乗除算は他の値
に対してビットをずらすことによって実現される。従っ
て、Ti,j に関する演算はRi,j のLSBに対してvビ
ット目からd+v−1ビット目までの値をTi,j とする
ことを意味する。ただし、Li,j はRi,j のLSBから
v−1ビット目までの値である。このようにTi,j を得
るための1/Y演算をRi,j 毎の下位へのビットシフト
によって実現しているので、Li-2,j+1 はRi,j を演算
するときに用いられ、X/ Y2 によって桁を合わせて演
算される。
【0059】図2はアルゴリズム を行う回路である。
アルゴリズム1においてiはクロックを意味し、jは図
3におけるレジスタ(R)の位置に対応し、右から左に
i,0 からRi,m-1 のレジスタを示す。
【0060】以下、簡単のためにv=1の場合について
図2の回路と動作を説明する。図2においてBj ,N
j(j=0,…,m-1) 及びN0'は、各々に記された値を乗数と
して持つdビットの乗算器を示し、d個のアンドによっ
て実現できる。Nが奇数であれば、N0'=1であるの
で、Mi-1 を演算する乗算器は省略でき、Ti-1,0 のL
SBをとして出力する。また、+で示される加算器の入
力及び出力は次のようになる。下部の乗算器からの出力
i-1・Nj はdビット、上部の乗算器からの出力Ai・B
j もdビットであるが、その値を2倍するためにMi-1
j に対して1ビット上位桁にシフトして入力する。レ
ジスタからの入力Ti-1,j は、Ri-1,j のLSBから2
ビット目からを1ビット下位にシフトさせ、Mi-1・Nj
と同位の値として入力する。Li-2,j+1・2d-2 は2つ前
のPEからの1ビット出力Li-2,j+1をMi-1・Nj のL
SBからd−1ビット目に入力することを意味する。こ
の場合、Ti-1,j <2d+2 であれば、加算器からの出力
はd+3ビットとなる。従って、加算器からの出力を受
けるレジスタは各々d+3ビットレジスタとなる。
【0061】以上のようにして、図4の回路で式(1
8)の演算が実行でき、A0 からAまで入力すること
によってモンゴメリーの剰余乗算が実行できる。
【0062】また、図2はv=1として説明したが、v
≦dであるvに対しても同様の手法によってモンゴメリ
ーの剰余乗算を実行できることは明らかである。
【0063】本実施例によるモンゴメリーの剰余乗算回
路は非常に小さな回路規模で、高速処理を実現する。
【0064】〔モンゴメリーの剰余乗算及びべき乗剰余
回路の実施例2〕この演算をシストリックアレイで実現
するために、B ,NをBj ,Nj を用いて表すと次
のようになる。
【0065】アルゴリズム2: FOR i=0 TO k Mi-1 =dwv (dwv(Ti-1,0 )・ N0') FOR j=0 TO m−1 Ri,j =Ti-1,j +Ci,j-1+Li-2,j+1・X/ Y2+Y・ A
i・Bj +Mi-1・Nji,j =dwv (Ri,j ) Ti,j =(dwd+v (Ri,j )−Li,j )/Y Ci,j =upd+v (Ri,j ) NEXT NEXT ただし、dwd (Z)=Z mod 2d upd (Z)=(Z−dwd (Z))/2di,j ,Ci,j ,Li,j の初期値は全て0 アルゴリズム2において、Ci,j-1 は桁上がりとしてR
i,j を演算する時に用いられる。また、Y・ Ai・Bj
i-2,j+1・X/ Y2 ,およびTi,j =(dwd+v(R
i,j )−Li,j )/Y等のX,Yを定数としてもつ演算
は他の値に対してビットをずらすことによって実現され
る。従って、Ti,j に関する演算はRi,j LSBに対し
てvビット目からd+v−1ビット目までの値をTi,j
とすることを意味する。
【0066】ただし、Li,j はRi,j のLSBからv−
1ビット目までの値である。このようにTi,j を得るた
めの1/Y演算をRi,j 毎の下位へのビットシフトによ
って実現しているので、Li-2,j+1 はRi,j を演算する
ときに用いられ、X/ Y2 によって桁を合わせて演算さ
れる。
【0067】図5はアルゴリズム2においてRi,j ,L
i,j ,Ti,j ,Ci,j を演算する回路である。図6は図
5の回路を1つのPE(プロセッシング・エレメント)
として、それを縦列に接続したシストリックアレイであ
る。アルゴリズム2において、jはクロックを意味し、
iは図6におけるPEの位置に対応し、左から右にi=
0(#1)からi=k(#k+1)のPEを示す。
【0068】図6において#i+1番目のPEはAi(i=
0,…,k) の値が内部レジスタに設定されており、PE間
はBinとBout ,DinとDout ,TinとTout ,Lin
out ,MinとMout ,NinとNout が各々接続されて
いる。また、#1のPEのBin,Ninには各々Bj ,N
j(j=0,…,m-1) が下位桁から順に入力され、Din
in,Lin,Minの入力には各々0が設定されている。
【0069】以下、簡単のために、v=1の場合につい
て図5の回路と動作を説明する。図5において×は乗算
器を示し、d個のアンドによって実現できる。R1〜R
3は各々Ai ,Mi-1 ,N0'を保持する1ビットレジス
タである。Nが奇数であれば、N0'=1であるのでを演
算する乗算器とN0'を保持するR3は省略され、R2は
i-1,0 のLSBをとして保持する。また、R4,R5
はBin,Ninからの入力を1クロック遅らせて次のPE
に送るためのdビットレジスタである。+で示される加
算器の入力及び出力は次のようになる。下部の乗算器か
らの出力Mi-1・Nj はdビット、上部の乗算器からの出
力Ai・Bj もdビットであるが、その値を2倍するため
にMi-1・Nj に対して1ビット上位桁にシフトして入力
する。前PEからの入力Ti-1,j は、Ri-1,j のLSB
から2ビット目からd+1ビット目までのdビットを1
ビット下位にシフトさせ、Mi-1・Nj と同位の値として
入力する。Li-2,j+1・2d-2 は2つ前のPEからの1ビ
ット出力Li-2,j+1 をMi-1・Nj のLSBからd−1ビ
ット目に入力することを意味する。この場合、桁上がり
ビットであるCi,j-1 はCi,j-1 <2d+2 であれば、加
算器からの出力はd+3ビットとなるので、Ci,j-1
2ビットの値となる。従って、加算器からの出力を受け
るR6はd+3ビットレジスタとなる。
【0070】以上により、図5のPE1つで式(18)
の演算を実行できることがわかる。このPEを図6のよ
うにk+1個パイプライン状に接続し、クロックに同期
させて動作させることによってモンゴメリーの剰余乗算
が高速に実行できる。
【0071】ただし、図6のアレイからの最終出力はk
+1番目のPEからの出力Tk,jk,j と、k番目のP
Eからの出力Lk-1,j+1 に分離されているので、アルゴ
リズム2の処理の後、次のような演算を行う。
【0072】アルゴリズム3: FOR j=0 TO m−1 Rk+1,j =Tk,j+k+1,j-1+Lk-1,j+1・X/ Y2k+1,j =dwd (Rk+1,j ) Ck+1,j =upd (Rk+1,j ) Tk+2,j =Tk+1,j+k+2,j-1+Lk,j+1・X/ Y Ck+2,j =upd (Tk+2,j ) NEXT ここで、Tk+2,j がTR を分割したビット系列Tj(j=0,
…,m-1) となる。Rk+1,j の演算はアルゴリズム2にお
いてAi =Mi-1 =0とした場合の演算と同様であるの
で、図5のPEによって実現される。Tk+2,j の演算
は、ほぼRk+1,jの演算と同様であるが、Tk+1,j ,C
k+1,j は1/2演算が行われずLk,j+1 もLk-1,j+1
対して1ビット上位桁で加算される。従って、図7に示
すように図5のPEの加算器とレジスタR6のLSBの
下に1ビット分のハーフアダー(HA)とレジスタ(R
7)を用意し、HAには前PEの出力Ri-1,j のLSB
と、Ck+2,j-1 を入力し(この時、Ck+2,j-1 は高々1
ビットの値である)、その加算結果を新たに用意したレ
ジスタへ、キャリービットを加算器へのキャリーとして
入力する。このようにすればLk,j+1 は自動的に1ビッ
ト上位の桁として加算される。従って、Tk+2,j を演算
するPEは他のPEと異なるが、i=k+2の時のみ加
算器へのキャリーとしてハーフアダーからのキャリーを
選択する1ビットのセレクタを加えれば全てのPEを1
つのPEで実現できる。
【0073】従って、TR を得るには図6のPEとして
図7に示したPEを用い、さらに図6のアレイの後にP
Eを2個追加した計k+3個のPEを用いたアレイによ
ってモンゴメリーの剰余乗算が高速演算される。
【0074】また、図5及び図7はv=1として説明し
たが、v≦dであるvに対しても同様の手法によってモ
ンゴメリーの剰余乗算を実行できることは明かである。
【0075】〔モンゴメリーの剰余乗算及びべき乗剰余
回路の実施例3〕また、次のようなシストリックアレイ
を構成することができる。式(17)の演算を次のよう
なアルゴリズムによって実行する。
【0076】アルゴリズム4: FOR i=0 TO k Mi-1 =dwv (dwv (Ti-1,1 )・ N0') FOR j=0 TO m Ri,j =Ti-1,j+1 +Ci,j-1 +Ai・Bj-1 +Mi-1・N
ji,j =dwv (Ri,j ) Ci,j =upv (Ri,j ) NEXT NEXT アルゴリズム4におけるRi,j 演算のアルゴリズム2と
の違いは、Mi-1・Nj対するAi・Bj 及びTi-1,j の桁
の違いをビットずれではなく、用いるBj 及びTi,j
jに関する係数をずらすことによって実現している点で
ある。従って、アルゴリズム2でビットずれのために生
じる値Li,j はアルゴリズム4では生じない。
【0077】アルゴリズム4のRi,j ,Ti,j ,Ci,j
の演算を実行するPE及びシストリックアレイを図8,
9に示す。アルゴリズム4のj,iもそれぞれ、クロッ
ク及びPEの位置に対応する。また、図9においても#
i+1のPEにはAi(i=0,…,k) の値が内部レジスタに
設定されており、PE間はBinとBout ,TinとT
out ,MinとMout ,NinとNout が各々接続されてい
る。また、#1のPEのTin,Minの入力には各々0が
設定されているが、Bin,Ninには各々Bj ,Nj(j=0,
…,m-1) が下位桁から順に入力される。ただし、アルゴ
リズムIの場合と異なりBj はNj に対して1クロック
遅れで入力される。
【0078】以降、簡単のためにv=dの場合について
説明する。図8において、×はdビット・ dビットの乗
算器を示し、+は加算器を示す。加算器の入力及び出力
は次のようになる。上部の乗算器からの出力Ai・Bj-1
と下部の乗算器からの出力Mi-1・Nj は各々2・ dビッ
トであり、前PEからの出力Ti-1,j+1 はdビットの値
である。従って、Ci,j-1 がCi,j-1 <22・d+1 であれ
ば加算器からの出力は2・ d+2ビットの値である。ま
た、R1〜R7はdビットのレジスタであり、加算器か
らの出力を受けるR8は2・ d+2ビットのレジスタで
ある。レジスタR8は、LSBからdビット目までをT
i-1,j+1 として次のPEへ出力し、上位のd+2ビット
をCi,j-1 として加算器へフィードバックする。
【0079】図8ではNj はBj に比べて1クロック前
に入力されるのでAi・Bj-1 とMi-1・Nj が同時に演算
される。また、Ti-1,j+1 をAi・Bj-1 及びMi-1・Nj
と同時に演算するために、Bin,Ninから入力されるB
j ,Nj は2クロック遅らされて次のPEに出力され
る。
【0080】従って、図8のPEによっても式(17)
の演算を行うことができ、図9のシストリックアレイに
よってモンゴメリーの剰余乗算が高速に実現できること
がわかる。この場合、アルゴリズム に相当する処理は
必要なく、図9に示すようにm+1個のPEによってア
レイが構成できる。
【0081】また、図8はv=dとして説明したが、v
<dであるvに対しても同様の手法によってモンゴメリ
ーの剰余乗算を実行できることは明らかである。
【0082】〔モンゴメリーの剰余乗算及びべき乗剰余
回路の実施例4〕また、実施例3に示したアルゴリズム
4を実行する場合、Ai は予めPEに設定している必要
はなく、図10のようにAinからAi(i=0,…,k-1) を下
位桁からNj に同期させて入力させ、図11のようにA
inとAout を接続して次のPEに送る構成にしてもよ
い。この場合、Ai(i=0,…,k-1) はBj(j=0,…,m-1) よ
りも1クロック先に入力されるので、#1のPEにおい
てA0 が入力されると同時にR1のレジスタにA0 を保
持すると、A0・Bj(j=0,…,m-1) を演算を全てのjに対
して実行することができる。また、Bj は2クロック遅
れて次のPEに入力されるが、Ai は1クロックしか遅
れないので、#i−1のPEにおいてAi がBj(j=0,
…,m-1) の前に入力され保持できたとすると、#iのP
EではAi+1 がBj(j=0,…,m-1) の前に入力され保持で
きる。従って、#iのPEにおいて無理なくAi+1・B
j(j=0,…,m-1) の演算が実行できる。従って、回路規模
及び処理速度を変えることなくアルゴリズム4を図1
0,11のPE及びシストリックアレイによっても実現
できる。
【0083】〔モンゴメリーの剰余乗算及びべき乗剰余
回路の実施例5〕モンゴメリーのべき乗剰余演算は式
(17)の演算の繰り返しによって実行できる。図10
及び図8,10に示したPEは式(17)の演算を行う
ことができるので、図12のようにメモリと組み合わせ
れば、1つのPEを( 3・ t/2+2)・q回(qはモン
ゴメリーの剰余乗算アレイを構成するために必要なPE
の数で、図7のPEではk+3個,図8,10のではk
−2個)用いてモンゴメリーのべき乗剰余演算を処理で
きる。もし、p個のPEを用いるならば、( 3・ t/2
+2)・q/p回の繰り返しでモンゴメリーのべき乗剰余
演算を処理できる。処理速度は繰り返し回数に反比例す
るので、この方式は処理速度をPEの数に比例させるこ
とができ、また、PEの数による処理速度の高速化また
は回路規模の小型化に対して同じ効率のべき乗剰余演算
回路を構成することができる。
【0084】従って、図13に示すような装置化が可能
になる。図13において、SYMC(Systolic Modular
Exponentiation Chip)と表されているのは、p個のP
Eを縦列接続したものをチップ化したものである。pは
1≦p≦( 3・ t/2+2)・qであれば任意であるの
で、任意の回路規模のチップを構成することができる。
また、SYMCは回路構成に規則性をもつので装置化及
びチップ化が非常に行いやすい。また、処理速度はSY
MCの数に比例して高速化できるので、図13に示すよ
うにSYMCを従属に接続するだけでよい。この場合、
SYMCの処理回数を変える必要があるが、これは制御
回路を外部からプログラミング可能なROM等によって
構成することによって容易に実現できる。
【0085】〔モンゴメリーの剰余乗算及びべき乗剰余
演算回路のその他の実施例〕上記実施例によるアルゴリ
ズムでは1つのPEで行う処理は簡単な整数演算である
ので、PEを別にチップ化しなくても通常のDSPやC
PU等によってもモンゴメリーのべき乗剰余演算を簡単
に実現することができる。
【0086】また、上記実施例はシストリックアレイを
基本としているので、回路構成が規則的であり、制御や
遅延も局所的であるのでVLSIによる実用化にも最適
である。
【0087】また、上記実施例のPEを従属に接続せず
独立した演算素子として用い、よく知られたマイクロプ
ログラミング的な手法によって制御して剰余乗算及びべ
き乗剰余演算を実現することも容易である。
【0088】また、図5,7及び図8,10のPEは式
(18)の演算を一括して実行しているが、式(18)
を種々に分解した演算素子によって最終的に式(18)
の演算を実行する場合も本発明は含んでいる。
【0089】また、本発明をシストリックアレイによっ
て実行する場合、制御信号もデータと同時に入力させる
ことができ、制御信号の伝送レジスタまで含んだものを
PEとすることもできる。
【0090】以上によってシストリックアレイを用いた
べき乗剰余演算及び剰余乗算回路及び方法の構成法が示
された。この方式はイブンによる手法の欠点をすべて解
決した回路及び方法を提供する。それによって、次のよ
うな効果を持つ効率的な暗号システムを構成することが
できる。
【0091】高速な暗号システムが必要な場合、本発明
によるべき乗剰余演算及び剰余乗算回路をVLSI等に
よって構成すればよい。この場合、本発明によるべき乗
剰余演算及び剰余乗算回路は簡単なPEによる規則構造
を持ち、かつ、PEの制御とPE内の遅延時間は局所的
であるので、VLSIに最適である。これによって、高
速な暗号システムが構成される。
【0092】また、高速性よりも小型回路による暗号シ
ステムが要求される場合は、本発明によるべき乗剰余演
算及び剰余乗算回路をPE数個で構成すればよい。この
場合も、PEによる規則構造と制御と遅延時間の局所性
といった特徴は失われず回路化しやすい。また、PE内
で行われる演算は簡単な整数演算であるので、本発明に
よる演算手順はCPUやDSP等のソフト的な手法によ
っても簡単な暗号システムを実現することができる。
【0093】また、いくつかのPEからなる小型回路
(SYMC等)による暗号装置を構成した後で、高速性
が必要となっても図10のように、その小型回路を縦続
に接続して行けば、回路規模に比例した高速化が実現で
きる。従って、暗号装置を作り直すことなく、継ぎ足し
て行くだけで必要に応じた高速化が簡単に行える暗号シ
ステムを実現できる。
【0094】また、1度暗号システムを構成した後で、
暗号システムの強度を増すために演算する整数のビット
数を増す場合も、同一の回路または、PEの数を増した
同様の回路によって対応することができる。これは、本
発明のべき乗剰余演算及び剰余乗算回路が回路規模と処
理回数を簡単にトレードオフできるので、演算すべき整
数のビット数の違いを処理回数の違いに帰着できるため
である。従って、システムの暗号的な強度を増す場合に
も、暗号装置をつくり直す必要がない。また、演算する
整数のビット数を減少させる場合にも、暗号装置をつく
り直すことのない暗号システムを実現することができ
る。
【0095】以上のような効果は、特願平3-225986号で
も述べているように従来のべき乗剰余演算及び剰余乗算
による暗号装置では実現できないものである。従って、
本発明によるべき乗剰余演算及び剰余乗算回路及び方法
を用いることによって柔軟で拡張性のある暗号システム
を構成することができる。
【0096】次に、特願平3-225986号のシストリックア
レイ(以後、アレイ0と呼ぶ)と本発明の実施例1に示
したシストリックアレイ(アレイ1),実施例2,3に
示したシストリックアレイ(アレイ2)の比較を行う。
【0097】アレイ0は除算を伴うために剰余テーブル
(ROM等)によって剰余演算を行うが、アレイ1,2
はすべて乗算によって剰余乗算が演算できるため1クロ
ックに必要な処理時間がアレイ0に比べて短いために高
速処理できる。また、アレイ1,2はROM等の剰余テ
ーブルを用いず、ANDゲートのような回路規模のくす
ることができる。また、アレイ0はキャリービットの処
理のためのPEを必要とするが、アレイ1,2は必要と
しないので必要なPEの数がアレイ0に比べて少ない。
従って、同じ程度の回路規模を用いた場合、アレイ1,
2はアレイ0に対して数倍の高速処理が行える。
【0098】また、アレイ1はアレイ0に比べてPEの
種類が少なく図7に示したようにPEを共通化しやす
い。また、アレイ2は1種類のPEのみで構成できる。
従って、アレイ1,2はアレイ0よりも容易に回路化す
ることができ、アレイ0より無駄のない回路を構成する
ことができる。
【0099】また、アレイ0が剰余テーブルを用いてい
る場合、演算すべき各整数のビット数の増加に対してア
レイ1,2はアレイ0よりも柔軟性が高い。これは、ア
レイ0がROM等の剰余テーブルを用いている場合、テ
ーブルの最大容量によって各整数のビット数が制限され
るためである。これに対し、アレイ1,2は乗算によっ
て剰余が演算されるので剰余テーブルが必要なく演算す
る整数のビット数に制限がない。ただし、演算する整数
のビット数が減少する場合(中国人の剰余定理を用いる
場合等)には、アレイ0〜アレイ2の柔軟性は同じであ
り、制限がない。よって、演算する整数のビット数の変
化に対して、アレイ1,2はアレイ0と異なり制限がな
い。従って、アレイ1,2は演算する整数のビット数の
異なる演算に対してもSYMC等の回路を全く作り直す
必要がない。
【0100】以上のことから、上記実施例による剰余乗
算及びべき乗剰余方式を用いた暗号装置は、上述の効果
を最も小さな回路で高速に、かつ柔軟に実現できる暗号
システムを提供することができる。
【0101】〔モンゴメリーの剰余乗算及びべき乗剰余
回路の実施例6〕i回目の演算におけるTR の値T_
iを、式(18)におけるT_iとは異なり、 T_i=( T_i-1/Y+Ai・BR)+Mi・N (19) ただし、Mi =((T_i-1/Y+Ai・BR) mod Y)・N0'
mod Y, T_-1 =0,N0'=N' mod Y この演算を複数のPEによる並列処理で実現するため
に、BR ,NをBj ,Nj に分解して次のように表す。 アルゴリズム5: FOR i=0 TO k−1 FOR j=0 TO m−1 Si,j =Ti-1,j /Y+Ai・Bj +Ci,j-1i =dwv (dwv (Si,0 )・ N0') Ri,j =Si,j +Mi・Nj +Li-1,j+1・X Li,j =dwv (Ri,j ) Ti,j =dwd+v (Ri,j )−Li,ji,j =upd+v (Ri,j ) NEXT NEXT ただし、dwd (Z)=Z mod 2d upd (Z)=(Z−dwd (Z))/2di,j ,Ci,j ,Li,j の初期値は全て0 アルゴリズム5において、Ci,j-1 は桁上がりとしてS
i,j を演算する時に用いられる。また、Li-1,j+1・X,
およびTi-1,j /Y等のX,Yを定数としてもつ演算は
他の値に対してビットをずらすことによって実現でき
る。従って、Ti,j に関する演算はRi,j のLSBに対
してvビット目からd+v−1ビット目までの値をT
i,j とすることを意味する。ただし、Li,j はRi,j
LSBからv−1ビット目までの値である。このように
i,j を得るための1/Y演算をRi,j 毎の下位へのビ
ットシフトによって実現しているので、Li-1,j+1 はR
i,j 演算するときに用いられ、Xによって桁を合わせて
演算される。
【0102】アルゴリズム5においてiを処理回数,j
をクロックと考えると各jに対して演算しなければなら
ないのはSi,j 及びRi,j のみであり(Li,j ,T
i,j ,Ci,j はビットシフトのみで実現される)、S
i,j 及びRi,j は次の同型の演算によって実現される。
【0103】 f=d/y+a・ b+c・ x (20) ただし、yは2v または1,xは2d または1 x,yはビットシフトの有無であるので、式(20)は
図14に示すPEによって演算できる。
【0104】以下、簡単のためにv=1の場合について
図14の回路と動作を説明する。図14において×は乗
算器を示し、d個のアンドによって実現できる。R1は
aを保持する1ビットレジスタである。S1,S2は入
力d,cをyまたはxによってビットシフトさせるかど
うかを選択するセレクタである。+で示される加算器は
乗算器からの出力a・ bとセレクタからの出力d/y及
びc・ xの加算を行いfを演算する。R2は加算器から
の出力を保持するレジスタである。以上によって、図1
4のPEで式(20)が演算できることが分かる。
【0105】従って、アルゴリズム5の各演算は図15
のように図14のPEを2つ組み合わせれば求めること
ができる。ただし、図15のBin,Ninには各々Bj
j(j=0,…,m-1) が下位桁から順に入力されるとする。
この場合、左のPEでSi,jが演算され、右のPEでR
i,j が演算される。また、v=1であるのでNが奇数で
あれば、N0'=1となり、Si,0 のLSBがMi とな
り、右のPEのレジスタR1に保持される。また、R
i,j はCi,j ,Ti,j ,Li,j に分割されて表示されて
いる。よって、図15をk個または図14のPEを2・
k個用いればアルゴリズム5が実行できることは明らか
である。以上から、図14のPEによって式(19)を
効率的に並列処理できることがわかる。
【0106】また、図14,15はv=1として説明し
たが、v<dであるvに対しても同様の手法によってモ
ンゴメリーの剰余乗算を実行できることは明らかであ
る。
【0107】〔モンゴメリーの剰余乗算及びべき乗剰余
回路の実施例7〕また、次のようなシストリックアレイ
を構成することができる。式(14)の演算を次のよう
なアルゴリズムによって実行する。 アルゴリズム6: FOR i=0 TO k FOR j=0 TO m Si,j =Ti-1,j+1 +upv (Si,j-1 )+Ai・Bj Mi =dwv (dwv (Si,0 )・ N0') Ri,j =dwv (Si,j )+upv (Ri,j-1 )+Mi・Nji,j =dwv (Ri,j ) NEXT NEXT アルゴリズム6のアルゴリズム5に対する違いは、式
(19)のTi-1 /Yをビットずれではなく、クロック
のずれによって実現している点である。従って、アルゴ
リズム5でビットずれのために生じる値Li,j は、アル
ゴリズム6では生じない。
【0108】アルゴリズム6を実行するPE及びシスト
リックアレイを図16,17に示す。アルゴリズム6の
j,iもまた、それぞれがクロック及び処理回数に対応
する。また、図17のBin,Ninには各々Bj ,Nj(j=
0,…,m-1) が下位桁から順に入力される。
【0109】以降、簡単のためにv=dの場合について
説明をする。まず、図16において、×はdビット・ d
ビットの乗算器を示し、+は加算器を示す。R1はAi
またはMi を保持するレジスタであり、R2は加算器か
らの出力を保持するレジスタであり、そのvビット目以
上は桁上がりとして1クロック遅れで加算器にフィード
バック入力されている。これによって、図17では左の
PEにおいてSi,j が演算され、右のPEにおいてR
i,j が演算されることがわかる。このとき、Miは外部
にある乗算器によってN0'と乗算され右のPEへ出力さ
れる。従って、図7のPEはアルゴリズム6を並列処理
によって実現するための効率的な基本演算子になってい
ることがわかる。
【0110】また、図16,17はv=dとして説明し
たが、v<dであるvに対しても同様の手法によってモ
ンゴメリーの剰余乗算を実行できることは明らかであ
る。
【0111】〔モンゴメリーの剰余乗算及びべき乗剰余
回路の実施例8〕モンゴメリーのべき乗剰余演算は式
(19)の演算の繰り返しによって実行できる。図14
及び図16に示したPEは式(19)の演算を行うこと
ができるので、図18のようにメモリと組み合わせれ
ば、1つのPEを( 3・ t/2+2)・q回(qはモンゴ
メリーの剰余乗算アレイを構成するために必要なPEの
数で、図14のPEでは2・ k個,図16のPEでは2
・(k+1) 個)用いてモンゴメリーのべき乗剰余演算を
処理できる。もし、p個のPEを用いるならば、( 3・
t/2+2)・q/p回の繰り返しでモンゴメリーのべき
乗剰余演算を処理できる。処理速度は繰り返し回数に反
比例するので、この方式は処理速度をPEの数に比例さ
せることができ、また、PEの数による処理速度の高速
化または回路規模の小型化に対して同じ効率のべき乗剰
余演算回路を構成することができる。
【0112】従って、図19に示すような装置化が可能
になる。図19においてMEC(Modular Exponentiati
on Chip )と表されているのは、p個のPEを組み合わ
せてチップ化したものである。pは1≦p≦( 3・ t/
2+2)・qであれば任意であるので、任意の回路規模の
チップを構成することができる。また、MECは回路構
成に規則性をもつので装置化及びチップ化が非常に行い
やすい。また、処理速度はMECの数に比例して高速化
できるので、図7に示すようにMECを複数用いればよ
い。この場合、各MECの制御をチップ数に応じて変え
る必要があるが、これは制御回路を外部からプログラミ
ング可能なROM等によって構成することによって容易
に実現できる。
【0113】〔モンゴメリーの剰余乗算及びべき乗剰余
演算回路のその他の実施例〕本発明によるアルゴリズム
では1つのPEで行う処理は簡単な整数演算であるの
で、PEを別にチップ化しなくても通常のDSPやCP
U等によってもモンゴメリーのべき乗剰余演算を簡単に
実現することができる。
【0114】また、本発明は回路構成が規則的であり、
制御や遅延も局所的であるのでVLSIによる実用化に
も最適である。
【0115】また、図14,16のPEを組み合わせた
ものを1つのPEとして構成することも可能である。
【0116】以上によってPEを用いたべき乗剰余演算
及び剰余乗算回路及び方法の構成法が示された。それに
よって、次のような効果を持つ効率的な暗号システムを
構成することができる。
【0117】高速な暗号システムが必要な場合、本発明
によるべき乗剰余演算及び剰余乗算回路をVLSI等に
よって構成すればよい。この場合、本発明によるべき乗
剰余演算及び剰余乗算回路は簡単なPEによる規則構造
を持つので、VLSIに最適である。これによって、高
速な暗号システムが構成される。
【0118】また、高速性よりも小型回路による暗号シ
ステムが要求される場合は、本発明によるべき乗剰余演
算及び剰余乗算回路をPE数個で構成すればよい。この
場合も、PEによる規則構造といった特徴は失われず回
路化しやすい。また、PE内で行われる演算は簡単な整
数演算であるので、本発明による演算手順はCPUやD
SP等のソフト的な手法によっても簡単な暗号システム
を実現することができる。
【0119】また、いくつかのPEからなる小型回路
(MEC等)による暗号装置を構成した後で、高速性が
必要となっても図19のように、その小型回路を複数用
いれば回路規模に比例した高速化が実現できる。従っ
て、暗号装置を作り直すことなく、回路を増して行くだ
けで必要に応じた高速化が簡単に行える暗号システムを
実現できる。
【0120】また、1度暗号システムを構成した後で、
暗号システムの強度を増すために演算する整数のビット
数を増す場合も、同一の回路または、PEの数を増した
同様の回路によって対応することができる。これは、本
発明のべき乗剰余演算及び剰余乗算回路が回路規模と処
理回数を簡単にトレードオフできるので、演算すべき整
数のビット数の違いを処理回数の違いに帰着できるため
である。従って、システムの暗号的な強度を増す場合に
も、暗号装置をつくり直す必要がない。また、演算する
整数のビット数を減少させる場合にも、暗号装置をつく
り直すことのない暗号システムを実現することができ
る。
【0121】以上のような効果は、効率的に並列処理を
用いない従来のべき乗剰余演算及び剰余乗算による暗号
装置では実現できないものである。従って、本発明によ
るべき乗剰余演算及び剰余乗算回路及び方法を用いるこ
とによって柔軟で拡張性のある暗号システムを構成する
ことができる。
【0122】
【発明の効果】以上説明したように、本発明によれば、
べき乗剰余演算及び剰余乗算が、 Z=X・ Y・ R-1 mod N (16) の繰り返し演算によって実行できる。従って、必要な演
算は、同一または同型の演算回路によって実行できる。
【0123】また、これをモンゴメリーの剰余乗算 Z=X・ Y・ R-1 mod N =(X・ Y+S・ N)/R ただし、S=X・Y・N’ mod N を用いて演算する場合には、条件を満足する入力値を用
いることによって、モンゴメリーの剰余乗算の単純な繰
り返しによって剰余乗算及びべき乗剰余演算が実行でき
る。
【0124】また、必要な演算は整数演算であるので、
その演算回路が簡単に実現できるようになった。
【0125】従って、共通の演算回路及び方法によっ
て、剰余乗算及びべき乗剰余演算を用いた種々の暗号シ
ステムが効率的に構成できるようになった。
【0126】本発明によるモンゴメリーの剰余乗算回路
は非常に小さな回路規模で、高速処理を実現する。
【0127】本発明によるシストリックアレイを用いた
べき乗剰余演算及び剰余乗算回路によって、次のような
効果を持つ効率的な暗号システムを構成することができ
る。
【0128】高速な暗号システムが必要な場合、本発明
によるべき乗剰余演算及び剰余乗算回路をVLSI等に
よって構成すればよい。この場合、本発明によるべき乗
剰余演算及び剰余乗算回路は簡単なPEによる規則構造
を持ち、かつ、PEの制御とPE内の遅延時間は局所的
であるので、VLSIに最適である。これによって、高
速な暗号システムが構成される。
【0129】また、高速性よりも回路規模の小型化が暗
号システムに要求される場合は、本発明によるべき乗剰
余演算及び剰余乗算回路をPE数個で構成すればよい。
この場合も、PEによる規則構造と制御と遅延時間の局
所性といった特徴は失われず回路化しやすい。また、P
E内で行われる演算は簡単な整数演算であるので、本発
明による演算手順はCPUやDSP等のソフト的な手法
によっても簡単な暗号システムを実現することができ
る。
【0130】また、いくつかのPEからなる小型回路
(SYMC等)による暗号装置を構成した後で、高速性
が必要となっても、その小型回路を縦続に接続して行く
ことで、回路規模に比例した高速化が実現できる。従っ
て、暗号装置をまったく新たに作り直すことなく、継ぎ
足して行くだけで必要に応じた高速化が簡単に行える暗
号システムを実現できる。
【0131】また、回路規模と処理回数を簡単にトレー
ドオフできるので、1度暗号システムを構成した後で、
暗号システムの強度(解読に対する安全性)を高めるた
めに演算する整数のビット数を増加させる場合も、演算
すべき整数のビット数の違いを処理回数の違いに帰着で
きるため、同一の回路または、PEの数を増した同様の
回路によって対応することができる。従って、この場
合、暗号装置を新たにつくり直す必要がない。また、演
算する整数のビット数を減少させる場合にも、暗号装置
をあらためてつくり直さずに対処することができる。
【0132】従って、本発明によるべき乗剰余演算及び
剰余乗算回路及び方法を用いることによって柔軟で拡張
性のある暗号システムを構成することができる。
【図面の簡単な説明】
【図1】暗号システムを用いる通信系の構成例を示す図
である。
【図2】本発明による剰余乗算回路の例を示す図であ
る。
【図3】本発明によるべき乗剰余演算回路の例を示す図
である。
【図4】実施例の剰余乗算回路のブロック構成図であ
る。
【図5】実施例のPE(プロセッシング・ エレメント)
を示す図である。
【図6】図5のPEを用いたシストリックアレイを示す
図である。
【図7】共通化PEを示す図である。
【図8】他の実施例のPEを示す図である。
【図9】図8のPEを用いたシストリックアレイを示す
図である。
【図10】他の実施例のPEを示す図である。
【図11】図10のPEを用いたシストリックアレイを
示す図である。
【図12】PEとメモリを組み合わせた回路
【図13】SYMCを用いたべき乗剰余演算及び剰余乗
算回路を示す図である。
【図14】実施例2のPEを示す図である。
【図15】図14のPEを用いた回路を示す図である。
【図16】実施例2のPEを示す図である。
【図17】図16のPEを用いた回路を示す図である。
【図18】図17の回路とメモリを組み合わせた回路を
示す図である。
【図19】MECを用いたべき乗剰余演算及び剰余乗算
回路を示す図である。
【符号の説明】
T 通信端末 S,SL セレクタ R,Ri レジスタ H ハ−フアダ− + 加算器 Bi 乗算器 Ni 乗算器 PE プロセッシング・エレメント MEC べき乗剰余演算チップ SYMC シストリックべき乗剰余演算チップ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 Nを法とする整数A、Bの剰余乗算Q=
    A・ B mod Nを利用して、通信内容の暗号化または復
    号を行なう暗号通信方法において、 入力データU、Vに対して、Nと素である整数Rを用い
    て、Z=U・V・R-1mod Nを演算して出力する演算
    部を1つ以上設け、 当該演算部に対して、 Aと、RR =R2 mod Nなる定数RR とを入力して、A
    R =A・ RR・R-1 modNを出力させ、 Bと、前記定数RR とを入力して、BR =B・ RR・R-1
    mod Nを出力させ、 出力された前記AR と前記BR とを入力して、TR =A
    R・BR ・ R-1 mod Nを出力させ、 出力された前記TR と定数1とを入力して、TR・1・ R
    -1 mod NをQとして出力させることにより、前記剰余
    乗算Q=A・ B mod Nを実行することを特徴とする暗
    号通信方法。
  2. 【請求項2】 Nを法とする整数M、eに関するべき乗
    剰余演算:C=Memod Nを利用して、通信内容の暗号
    化または復号を行なう暗号通信方法において、 入力データU、Vに対して、Nと素である整数Rを用い
    て、Z=U・V・R-1mod Nを演算して出力する演算
    部を1つ以上設け、 当該演算部に対して、Mと、RR =R2 mod Nなる定数
    R とを入力して、 MR =M・ RR・R-1 modNを出力させ、 eの2進表現をe=〔et,et-1,…, e1 〕とし、CR
    の初期値をCR =RR・R-1 mod Nとして、順次高位ビ
    ットからのei の値に従って、ei =1なるときに、前
    記演算部に対してCR とMR とを入力して、CR・MR・R
    -1 modNを新たなCR として出力させ、 更に、前記ei におけるiが1より大なるときには、前
    記演算部に対して2つの入力データとして共にCR を入
    力して、CR・CR・R-1 mod Nを新たなCR として出力
    させ、 全ての前記ei に対する処理の終了後に、前記演算部に
    対してCR と定数1とを入力して、C=CR・1・ R-1 m
    od Nを出力させることにより、前記べき乗剰余演算C
    =Me mod Nを実行することを特徴とする暗号通信方
    法。
  3. 【請求項3】 Nを法とする整数M、eに関するべき乗
    剰余演算:C=Memod Nを利用して、通信内容の暗号
    化または復号を行なう暗号通信方法において、 入力データU、Vに対して、Nと素である整数Rを用い
    て、Z=U・V・R-1mod Nを演算して出力する演算
    部を1つ以上設け、 当該演算部に対して、Mと、RR =R2 mod Nなる定数
    R とを入力して、 MR =M・ RR・R-1 modNを出力させ、 eの2進表現をe=〔et,et-1,…, e1 〕とし、CR
    の初期値をCR =RR・R-1 mod Nとして、順次低位ビ
    ットからのei の値に従って、ei =1なるときに、前
    記演算部に対してCR とMR とを入力して、CR・MR・R
    -1 modNを新たなCR として出力させ、 更に、前記ei におけるiがtより小なるときには、前
    記演算部に対して2つの入力データとして共にMR を入
    力して、MR・MR・R-1 mod Nを新たなMR として出力
    させ、 全ての前記ei に対する処理の終了後に、前記演算部に
    対してCR と定数1とを入力して、C=CR・1・ R-1 m
    od Nを出力させることにより、前記べき乗剰余演算C
    =Me mod Nを実行することを特徴とする暗号通信方
    法。
  4. 【請求項4】 前記演算部に、定数RR と定数1とを入
    力して、出力RR・1・R-1 modNをCR の初期値とする
    ことを特徴とする請求項2あるいは3に記載の暗号通信
    システム。
  5. 【請求項5】 nをN<2n なる値とするとき、前記演
    算部において、定数R、入力データU、Vが、u=1か
    つr>1,または、u>1かつr=u+1なるu,rに
    対して、R=2n+r 、U<2n+u ,V<2n+u を満たし
    ていることを特徴とする請求項1ないし4に記載の暗号
    通信システム。
  6. 【請求項6】 入力された整数A、Bに対するNを法と
    した剰余乗算Q=A・ B mod Nを利用して、通信内容
    の暗号化または復号を行なう暗号通信方法において、N
    と素である整数Rを用いて、 入力されたA及び前記RよりA・ R mod Nを演算して
    その結果をAR とし、 入力されたB及び前記RよりB・ R mod Nを演算して
    その結果をBR とし、 前記演算結果AR 、BR 及び前記Rに基づき、AR・BR
    ・ R-1 mod Nを求めてその結果をTR とし、 前記TR と前記RとによりTR・R-1 mod Nを演算し、
    その結果としてQを求めるようにし、 前記TR を求める演算を、Ai を任意の整数vによる前
    記AR のvビット毎の分割、Y=2v として、 Ti =( Ti-1 +Ai・BR・Y+Mi-1・N)/Y Mi-1 =( Ti-1 mod Y)・( −N-1 mod Y) mod Y の順次演算により実行することを特徴とする暗号通信方
    法。
  7. 【請求項7】 前記順次演算における各1回の演算を、
    1つの演算素子によって実行し、前記順次演算全体をパ
    イプライン処理により実行することを特徴とした請求項
    6に記載の暗号通信方法。
  8. 【請求項8】 前記順次演算において、Yによる乗算ま
    たは除算を、加算において、ビット位置をずらして加算
    することにより実行することを特徴とした請求項6に記
    載の暗号通信方法。
  9. 【請求項9】 前記順次演算において、Bj ,Nj をそ
    れぞれ任意の整数dによる前記BR 、Nのdビット毎の
    分割として、Ai・Bj-1 とMi-1・Nj とを演算し、該演
    算結果と前回の順次演算結果Ti-1 を加算することを特
    徴とした請求項6に記載の暗号通信方法。
  10. 【請求項10】 入力された整数A、Bに対するNを法
    とした剰余乗算Q=A・ B mod Nを利用して、通信内
    容の暗号化または復号を行なう暗号通信方法において、
    Nと素である整数Rを用いて、 入力されたA及び前記RよりA・ R mod Nを演算して
    その結果をAR とし、 入力されたB及び前記RよりB・ R mod Nを演算して
    その結果をBR とし、 前記演算結果AR 、BR 及び前記Rに基づき、AR・BR
    ・ R-1 mod Nを求めてその結果をTR とし、 前記TR と前記RとによりTR・R-1 mod Nを演算し、
    その結果としてQを求めるようにし、 前記TR を求める演算を、Ai を任意の整数vによる前
    記AR のvビット毎の分割、Y=2v として、 Ti =( Ti-1 /Y+Ai・BR )+Mi・N Mi-1 =((Ti-1 /Y+Ai・BR )mod Y)・( −N-1 mod Y) mod Y の順次演算により実行することを特徴とする暗号通信方
    法。
JP12498292A 1991-09-05 1992-05-18 暗号通信方法及びそのシステム Expired - Fee Related JP3302043B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP12498292A JP3302043B2 (ja) 1992-05-18 1992-05-18 暗号通信方法及びそのシステム
US07/941,236 US5321752A (en) 1991-09-05 1992-09-04 Method of and apparatus for encryption and decryption of communication data
AT92308056T ATE183315T1 (de) 1991-09-05 1992-09-04 Verfahren und gerät zum verschlüsseln und entschlüsseln von kommunikationsdaten
DE69229766T DE69229766T2 (de) 1991-09-05 1992-09-04 Verfahren und Gerät zum Verschlüsseln und Entschlüsseln von Kommunikationsdaten
EP92308056A EP0531158B1 (en) 1991-09-05 1992-09-04 Method of and apparatus for encryption and decryption of communication data
HK98112269A HK1011430A1 (en) 1991-09-05 1998-11-24 Method of and apparatus for encryption and decryption of communication data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12498292A JP3302043B2 (ja) 1992-05-18 1992-05-18 暗号通信方法及びそのシステム

Publications (2)

Publication Number Publication Date
JPH05324277A true JPH05324277A (ja) 1993-12-07
JP3302043B2 JP3302043B2 (ja) 2002-07-15

Family

ID=14899006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12498292A Expired - Fee Related JP3302043B2 (ja) 1991-09-05 1992-05-18 暗号通信方法及びそのシステム

Country Status (1)

Country Link
JP (1) JP3302043B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899191A (en) * 1988-03-10 1990-02-06 Olympus Optical Co., Ltd. Exposure control apparatus for lens-shutter type camera
KR100400210B1 (ko) * 1997-01-10 2003-11-14 삼성전자주식회사 디지털 서명을 위한 모듈라 곱셈장치
JP2004501396A (ja) * 2000-05-15 2004-01-15 エム−システムズ フラッシュ ディスク パイオニアーズ リミテッド 整数の計算フィールド範囲の拡張
KR100442218B1 (ko) * 2001-01-30 2004-07-30 미쓰비시 덴키 시스템 엘에스아이 디자인 가부시키가이샤 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
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
US7266577B2 (en) 2002-05-20 2007-09-04 Kabushiki Kaisha Toshiba Modular multiplication apparatus, modular multiplication method, and modular exponentiation apparatus
US7471789B2 (en) 2002-10-24 2008-12-30 Renesas Technology Corp. Encryption circuit achieving higher operation speed
JP2010044398A (ja) * 1999-04-07 2010-02-25 Panasonic 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
US8352529B2 (en) 2006-01-13 2013-01-08 Fujitsu Limited Modular multiplication calculation apparatus used for montgomery method
US8532288B2 (en) 2006-12-01 2013-09-10 International Business Machines Corporation Selectively isolating processor elements into subsets of processor elements

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899191A (en) * 1988-03-10 1990-02-06 Olympus Optical Co., Ltd. Exposure control apparatus for lens-shutter type camera
KR100400210B1 (ko) * 1997-01-10 2003-11-14 삼성전자주식회사 디지털 서명을 위한 모듈라 곱셈장치
JP2010044398A (ja) * 1999-04-07 2010-02-25 Panasonic Corp 多倍長演算装置
JP2004501396A (ja) * 2000-05-15 2004-01-15 エム−システムズ フラッシュ ディスク パイオニアーズ リミテッド 整数の計算フィールド範囲の拡張
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
KR100442218B1 (ko) * 2001-01-30 2004-07-30 미쓰비시 덴키 시스템 엘에스아이 디자인 가부시키가이샤 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
US7266577B2 (en) 2002-05-20 2007-09-04 Kabushiki Kaisha Toshiba Modular multiplication apparatus, modular multiplication method, and modular exponentiation apparatus
US7471789B2 (en) 2002-10-24 2008-12-30 Renesas Technology Corp. Encryption circuit achieving higher operation speed
US8352529B2 (en) 2006-01-13 2013-01-08 Fujitsu Limited Modular multiplication calculation apparatus used for montgomery method
US7870395B2 (en) 2006-10-20 2011-01-11 International Business Machines Corporation Load balancing for a system of cryptographic processors
US8532288B2 (en) 2006-12-01 2013-09-10 International Business Machines Corporation Selectively isolating processor elements into subsets of processor elements
US7890559B2 (en) 2006-12-22 2011-02-15 International Business Machines Corporation Forward shifting of processor element processing for load balancing

Also Published As

Publication number Publication date
JP3302043B2 (ja) 2002-07-15

Similar Documents

Publication Publication Date Title
EP0531158B1 (en) Method of and apparatus for encryption and decryption of communication data
EP0656709B1 (en) Encryption device and apparatus for encryption/decryption based on the Montgomery method using efficient modular multiplication
US7320015B2 (en) Circuit and method for performing multiple modulo mathematic operations
CN109067538B (zh) 安全协议方法、计算机设备及存储介质
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件***及方法
US6795553B1 (en) Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method
US20060008081A1 (en) Modular-multiplication computing unit and information-processing unit
US7024560B2 (en) Power-residue calculating unit using Montgomery algorithm
JP3302043B2 (ja) 暗号通信方法及びそのシステム
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
JP4177526B2 (ja) 乗算剰余演算方法および乗算剰余回路
US7319750B1 (en) Digital circuit apparatus and method for accelerating preliminary operations for cryptographic processing
KR100478974B1 (ko) 직렬 유한체 승산기
US20020172355A1 (en) High-performance booth-encoded montgomery module
US7113593B2 (en) Recursive cryptoaccelerator and recursive VHDL design of logic circuits
Lu et al. A programmable VLSI architecture for computing multiplication and polynomial evaluation modulo a positive integer
JPH0916379A (ja) 通信方法とその装置
US20050165875A1 (en) Arithmetic device
Al-Tuwaijry et al. A high speed RSA processor
US7471789B2 (en) Encryption circuit achieving higher operation speed
JPH07152319A (ja) 暗号化装置
Kakde et al. Performance analysis of Montgomery multiplier for public key cryptosystem
JP3323516B2 (ja) 演算装置及びこれを備えた暗号化装置、復号装置
Ku et al. Parallel Montgomery Multiplication and Squaring over GF (2 m) Based on Cellular Automata

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020409

LAPS Cancellation because of no payment of annual fees