JPH07129085A - Rsa暗号方式の暗号化器及び復号器に使用する高速ベキ乗剰余演算法 - Google Patents

Rsa暗号方式の暗号化器及び復号器に使用する高速ベキ乗剰余演算法

Info

Publication number
JPH07129085A
JPH07129085A JP5280484A JP28048493A JPH07129085A JP H07129085 A JPH07129085 A JP H07129085A JP 5280484 A JP5280484 A JP 5280484A JP 28048493 A JP28048493 A JP 28048493A JP H07129085 A JPH07129085 A JP H07129085A
Authority
JP
Japan
Prior art keywords
addition
power
mod
multiplier
digit
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
JP5280484A
Other languages
English (en)
Inventor
Kenji Satake
賢治 佐竹
Masao Kasahara
正雄 笠原
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.)
JONAN DENKI KOGYOSHO KK
Original Assignee
JONAN DENKI KOGYOSHO KK
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 JONAN DENKI KOGYOSHO KK filed Critical JONAN DENKI KOGYOSHO KK
Priority to JP5280484A priority Critical patent/JPH07129085A/ja
Publication of JPH07129085A publication Critical patent/JPH07129085A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 指数乗算法におけるベキ乗演算を実施する乗
算器に(n+1)進乗算器を用いることで高速処理可能
なRSA暗号方式を提供する。 【構成】 RSA暗号システムで示されるRSA型暗号
化装置内のMe modRx −y及び復号装置内のCd
od Rx −yの演算の実施において、この演算のベキ
乗剰余演算のベキ乗部分に基数mの部分の積同士の加算
には冗長加算器を用いたn+1乗進乗算器を使用、n+
1進乗算器の最終出力の上位デジツト値と下位デジツト
値を加算し、そのベキ乗結果の剰余値を求めることによ
つて上記ベキ乗剰余演算を高速処理する。更にn+1進
乗算器を使用し、除算を使用せずn+1進乗算器の各部
分の上位デジツト値と下位デジツト値を加算し、そのベ
キ乗結果の剰余値を求めることで上記ベキ乗剰余演算を
高速処理する。 【効果】 多大の計算ステツプを必要とするベキ乗剰余
演算を1ステツプで処理することを可能にした。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、RSA暗号方式を用い
た暗号化装置及び復号装置の各装置内のベキ乗剰余演算
部の実施処理を高速にする方法に関するものである。
【0002】
【従来の技術】従来、情報通信技術の発展に伴い通信路
(伝送路、メモリ等)を用いたデ−タ通信の秘密保護と
して暗号化技術は情報分野に止まらず電子送金、シヨツ
ピング、レジヤ−等の様々な分野に使用されるようにな
つた。このようなネツトワ−ク型社会にふさわしい暗号
化方式として従来より公開鍵暗号方式が存在する。この
公開鍵暗号方式は各人(或は各端末)が暗号化鍵と復号
化鍵とを一つづつ作成し暗号化鍵を公開し複号化鍵を秘
密に保持する方式であり、例えば、Aという人宛に暗号
文を送信したい人は誰でもAが公開した暗号化鍵を使用
して、Me modnなる演算を実行し、平文Mを暗号文
Cに変換する。従つて鍵配送の必要がないため利点が大
きい。公開鍵方式の中でもRSA暗号方式は1978年RI
VEST、SHAMIR、ADLEMANの3人によつ
て発明されて多大の注目を集め実用化されるに至つた。
【0003】
【発明が解決しようとする課題】RSA暗号方式は多大
の注目を集め実用化されているものの、この暗号方式は
その暗号化装置による平文の暗号化、復号装置による暗
号文の復号を処理する際、各装置内でベキ乗演算及び剰
余演算を繰り返し使用するため暗号化及び復号に膨大な
計算時間が必要になるという解決すべき課題がある。本
発明は指数乗算法におけるベキ乗演算を実施する乗算器
にn+1進乗算器を用いることで従来法式と同様な安全
性を確保して、なおかつ高速処理可能なRSA暗号方式
を提供することを目的とするものである。この場合にお
ける平文の暗号化通信の手順は従来のRSA暗号方式と
同じである。
【0004】
【課題を解決するための手段】本発明の第1発明は、一
般にベキ乗剰余演算式には高速指数乗算法が用いられ
る。ここで、この乗算法におけるベキ乗演算を実施する
乗算器にn+1進乗算器を用いることで法演算が除算を
用いずに加算で置き換えることが可能であり、通常の除
算で必要な除数の桁数に比例したステツプ数の削減が可
能になる。指数乗算法によりMのベキ乗を求める場合の
第iステツプにおける値をCi とする。ベキ指数の2進
展開したビツトによつて、 Ci ・Ci mod n → Ci +1 (1) Ci ・M mod n → Ci +1 などの計算がその第iステツプで実行される。ここで求
められた結果が次の第i+1ステツプで用いられる。
【0005】これらの演算実行時間が実際の暗号通信に
おいて問題視されるのは、 A.ベキ乗演算 B.剰余演算 を繰り返し実行しなければならないために、その演算時
間が過大になることである。そこで、このことを解決す
るために第1発明においては次のように行うことを見出
した。Aの乗算器については、 (i) 基数mのBooth の手法を加算木と併用 (ii) 部分積同士の加算には冗長2進加算器を用い部分
積の桁数に関係なく一定時間で加算を実行 によりその高速化をはかる。Bの部分の剰余演算につい
ては、 (iii) 上で示した乗算器をn+1進乗算器として構成し
たものを使用することによりその高速化をはかる。この
n+1進乗算器を使用すれば1回の加算でここでの剰余
演算が実現できる。このことを以下に説明する。
【0006】n+1進乗算器とは、被乗数aと乗数bそ
れぞれをn+1進の1デシツトで表したものをその入力
値とする乗算器である。この2数の乗算結果はn+1進
2デジツトの値で出力される。この乗算結果は、 (i) 上位デジツトを表す2進系列の最下位ビツトの重
みがn+1から始まる。 (ii) 下位デジツトを表す2進系列の最下位ビツトの重
みが通常の2進数と同じ1から始まる。 2デジツト数値となる。
【0007】被乗数aの上位デジツトの2進系列をa
(2) とし下位デジツトの2進系列a(1 ) とし、同様に乗
数bの上位デジツトの2進系列をb(2) とし下位デジツ
トの2進系列をb(1) とする。詳細な乗算器の内部構成
法は後記するのでここでは剰余演算が1回の加算で実現
可能なことについて記載する。この乗算器にaとb、即
ち、a(2)(1) とb(2)(1) なる(n+1)進数値
が入力されると出力結果としてc(2)(1) なる2デジ
ツトの値が得られる。乗数も被乗数もn以下の値である
ため上位デジツトの値は何れも0であるので実質的には
a,bとも1デジツトの値を入力することになる。この
ような乗算器を考えるとaとbの乗算結果の法nでの剰
余値は、この乗算器出力の上位デジツトc(2) と下位デ
ジツトc(1 ) との値を加え合わせたものと合同として扱
える。但し、この値は補正処理が必要である。
【0008】この補正加算器もc(2) とc(1) に対する
加算器も勿論冗長2進数で実施するので桁数に関係なく
一定時間での加算処理が終了する。Aの部分で述べたよ
うに、部分積の処理にはBooth の手法による冗長2進木
を用いた加算手法を使用する。部分積や加算木部分では
高速化を計るために被乗数の桁上げのビツトシフト操作
やBooth の手法でのビツトシフト操作を部分積を求める
際に実行する必要があるが、ここで注意すべきことは、
扱う値の上位デジツトと下位デジツトのそれぞれのビツ
ト系列に重みの差がありその補正が必要となることであ
る。例えば、n+1進の値を1デジツト4ビツトで構成
した2デジツト表記を考える。まず2進での2デジツト
表記の各ビツトの重み系列とn+1進での2デジツト表
記の各ビツトの重み系列についてはそれぞれ、 となる。
【0009】前記の加算木部分のビツトシフト操作及び
Booth の手法でのビツトシフト操作をある被乗数に施し
た場合、下位デジツトの最上位ビツトからの数ビツト系
列を上位デジツトへシフトされたビツト系列を上位デジ
ツトでそのまま使用するには、その重み差の補正が必要
である。この補正に使用する重み差系列、即ち、2進で
の2デジツト表記の各ビツトの重み系列とn+1進での
2デジツト表記の各ビツトの重み系列との差を表す系列
は、 となる。従つてビツトシフト操作により得られた上位デ
ジツトの1が出現する場所に対応した重み差系列の値を
その補正値として、このビツトシフト操作により得られ
たビツト系列に加算する必要がある。この補正処理部分
は明らかに並行加算処理が可能である。
【0010】またこの方式を用いれば、重み差の大きさ
は上位デジツトの各ビツトでそれぞれ異なるものの、ビ
ツト毎に項比2の等比数列になつているので、補正時に
加算するビツトパタ−ンがビツトシフトした相似のパタ
−ンとなる。従つて加算木を作る際にそのビツト系列の
1の部分が重ならないように暗号方式の各バラメ−タを
設定すれば最速で一段の加算処理で重み補正が可能とな
る。この重み差系列は、通信先が異なれば法nも異なる
ので通信先のエンテイテイ毎に前処理よりこれを求める
必要がある。しかしこの通信前に行う前処理は、nのビ
ツト長個程度の個数の減算をするだけであり、しかもバ
ラレル処理可能な一段の加算処理で求まるので、冗長2
進加算器を使用すればこの前処理は数クロツク程度で完
了する。
【0011】以上のことよりn+1進乗算器の剰余値を
求めるには次のような場合がある。 (1) 部分積毎に重み補正して加算木における2入力加算
器毎の結果に重み補正する。 (2) 部分積を2進のまま使用した上で加算木における2
入力加算器毎の結果に重み補正する。 (1) についてはビツトシフトした値に、前記の重み補正
を施す。ここで、下位デジツトがn+1以上の値になる
場合があるが、部分積の加算が2入力のため下位デジツ
トは最高でも1ビツトの桁上りしか起こらないのでn+
1を越える値かどうかをコンパレ−タで監視し、越えた
場合24 −n+1の2の補数値を下位デジツトに加算す
る。そして上位デジツトの最下位に1だけ加算すれば補
正が終了する。ここでも加算時の桁上りは冗長2進数の
特徴より考慮する必要はなく、またコンパレ−タも下位
デジツトの上位数ビツトを監視するだけでよく、数クロ
ツクで処理が終了する。(2) については部分積を求める
際には重み補正はせずに、加算木における2入力加算器
毎の結果のみに重み補正を行えばよい。この場合一段の
加算処理で終了する。以上によりnによる除算は1ステ
ツプの加算により遂行されることが明らかである。但
し、ここでは乗算は並列処理により高速化を行うものと
する。またRSA暗号方式の暗号化器及び復号器以外で
もベキ乗剰余演算を使用するものにも有効であることを
付記しておく。
【0012】第2発明については、一般にベキ乗剰余演
算式には高速指数乗算法が用いられる。ここで、この乗
算法におけるベキ乗演算を実行する乗算器にn+1進乗
算器を用いることで法演算が除算を用いずに加算で置き
換えることが可能であり、通常の除算で必要な除数の桁
数に比例したステツプ数の削減が可能になる。指数乗算
法によりMのベキ乗を求める場合の第iステツプにおけ
る値をCi とする。ベキ指数の2進展開したビツト列に
よつて、 Ci ・Ci mod n → Ci+1 (2) Ci ・M mod n → Ci+1 などの計算がその第iステツプで実行される。ここで求
められた結果が次の第i+1ステツプで用いられる。
【0013】これらの演算実行時間が実際の暗号通信に
おいて問題視されるのは、 A ベキ乗演算 B 剰余演算 を繰り返し実行しなければならないために、その演算時
間が過大になることである。そこで、このことを解決す
るために本発明の手法では次のように行う。Aの部分の
乗算器について、 (iii) 基数mのBooth の手法を加算木と併用 (iv) 部分積同士の加算には冗長2進加算器を用い部分
積の桁数に関係なく一定時間で加算を実行 によりその高速化をはかる。Bの部分の剰余演算につい
ては、 (v) 上で示した乗算器をn+1進乗算器として構成した
ものを使用によりその高速化をはかる。このn+進乗算
器を使用すれば1回の加算でここでの剰余演算が実現で
きる。このことを以下に説明する。
【0014】n+1進乗算器とは、被乗数aと乗数bそ
れぞれをn+1進の1デジツトで表したものをその入力
値とする乗算器である。この2数の乗算結果はn+1進
2デジツトの値で出力される。この乗算結果は、 (vi) 上位デジツトを表す2進系列の最下位ビツトの重
みがn+1から始まる。 (vii) 下位デジツトを表す2進系列の最下位ビツトの重
みが通常の2進数と同じ1から始まる。 2デジツト数値となる。被乗数aの上位デジツトの2進
系列をa(2) とし下位デジツトの2進系列をa(1 )
し、同様に乗数bの上位デジツトの2進系列をb(2)
し下位デジツトの2進系列をb(1) とする。詳細な乗算
器の内部構成法は後記するのでここでは剰余演算が1回
の加算で実現可能なことについて述べる。
【0015】この乗算器にaとb、即ち、a(2)(1)
とb(2)(1) なる(n+1)進数値が入力結果として
(2)(1) なる2デジツトの値が得られる。乗数も被
乗数もn以下の値であるため上位デジツトの値は何れも
0であるので実質的にはa,bとも1デジツトの値を入
力することになる。このような乗算器においてはaとb
の乗算結果の法nでの剰余値は、この乗算器出力の上位
デジツトc(2) と下位デジツトc(1) との値を加え合わ
せたものと合同として扱える。但し、この値は補正処理
が必要である。
【0016】この補正加算器もc(2) とc(1) に対する
加算器も勿論冗長2進数で実行するので桁数に関係なく
一定時間での加算処理が終了する。Aの部分で述べたよ
うに、部分積の処理にはBooth の手法による冗長2進木
を用いた加算手法を使用する。部分積や加算木部分では
高速化を計るために被乗数の桁上げのビツトシフト操作
やBooth の手法でのビツトシフト操作を部分積を求める
際に実行する必要があるが、ここで注意すべきことは、
扱う値の上位デジツトと下位デジツトのそれぞれのビツ
ト系列に重みの差がありその補正が必要となることであ
る。例えば、n+1進の値を1デジツト4ビツトで構成
した2デジツト表記においてはまず2進での2デジツト
表記の各ビツトの重み系列とn+1進での2デジツト表
記の各ビツトの重み系列についてそれぞれは、 となる。
【0017】前記の加算木部分のビツトシフト操作及び
Booth の手法でのビツトシフト操作をある被乗数に施し
た場合、下位デジツトの最上位ビツトからの数ビツトの
ビツト系列を上位デジツトで使用しなければならない。
しかし下位デジツトから上位デジツトへシフトされたビ
ツト系列を上位デジツトでそのまま使用するには、その
重み差の補正をする必要がある。この補正に使用する重
み差系列、即ち、2進での2デジツト表記の各ビツトの
重み系列とn+1進での2デジツト表記の各ビツトの重
み系列との差を表す系列は、 となる。従つてビツトシフト操作により得られた上位デ
ジツトの1が出現する場所に対応した重み差系列の値を
その補正値として、このビツトシフト操作により得られ
たビツト系列に加算する必要がある。この補正処理部分
は明らかに並行加算処理可能である。
【0018】またこの方式を用いれば、重み差の大きさ
は上位デジツトの各ビツトでそれぞれことなるものの、
ビツト毎に項比2の等比数列になつているので、補正時
に加算するビツトパタ−ンがビツトシフトした相似のパ
タ−ンとなる。従つて加算木を作る際にそのビツト系列
の1の部分が重ならないように暗号方式の各パラメ−タ
を設定すれば最速で一段の加算処理で重み補正が可能と
なる。この重み差系列は、通信先が異なれば法nも異な
るので通信先のエンテイテイ毎に前処理よりこれを求め
る必要がある。しかしこの通信前に行う前処理は、nの
ビツト長個程度の個数の減算をするだけあり、しかもパ
ラレル処理可能な一段の加算処理で求まるので、冗長2
進加算器を使用すればこの前処理は数クロツク程度で完
了する。
【0019】以上のことよりn+1進乗算器の剰余値を
求めるには次のような場合がある。 1 部分積毎に重み補正して加算木の最終加算結果のみ
に重み補正する。 2 部分積を2進のまま使用した上で加算木の最終加算
結果のみに重み補正する。 1についてはビツトシフトした値に、前記の重み補正を
施す。ここで、下位デジツトがn+1以上の値になる場
合があるが、部分積の加算が2入力のため下位デジツト
は最高でも1ビツトの桁上りしか起こらないのでn+1
を越える値かどうかをコンパレ−タで監視し、越えた場
合24 −n+1の2の補数値を下位デジツトに加算す
る。そして上位デジツトの最下位に1だけ加算すれば補
正が終了する。ここでも加算時の桁上りは冗長2進数の
特徴より考慮する必要はなく、またコンパレ−タも下位
デジツトの上位数ビツトを監視するだけでよく数クロツ
クで処理が終了する。加算木の最終加算結果はnのビツ
ト数が500程度とすれば、はみ出し桁が高々7ビツト
程度なので、数個の補正値を加算すれば重み補正処理が
終了する。これは2段程度の加算処理可能である。2に
ついては部分積を求める際には重み補正はせずに、加算
木の最終加算結果のみに重み補正を行えばよい。この場
合、2段の加算処理で終了する。以上により、nによる
除算は1ステツプの加算により遂行されることが明らか
である。但し、ここでは乗算は並列処理により高速化を
行うものとする。またRSA暗号方式の暗号化器及び復
号器以外でもベキ乗剰余演算を使用するものにも有効で
あることを付記する。
【0020】
【作用】上記の手段によるRSA暗号方式を用いたデ−
タ暗号通信は、平文Mの暗号化及び暗号文Cの復号に使
用する法演算が除算を用いずに乗算器と加算器とで置き
換えることが可能であり、通常の除算で必要な除数の桁
数に比例した演算ステツプ数の削減が可能になる。
【0021】次に本発明を実施例によつて説明する。
【実施例1】RSA暗号において平分Mの暗号化を実行
する式は、 Me = C mod n (3) であり暗号文Cの復号を実行する式は、 Cd = M mod n (4) である。但し、 M : メツセ−ジ C : 暗号文 e : 公開鍵 d : 秘密鍵 n : p・q p,q : 大きな素数(秘密) また一般にRSA暗号では2<e≪dと選ばれることが
多いが、本発明では計算時間の短縮化に関するものであ
るのでe及びdには上記のような制約はない。本発明の
システム構成原理図をRSA暗号システム〔図1〕に示
す。
【0022】
【図1】 M : 平文(メツセ−ジ) e : 公開鍵 Rx −y: 公開鍵n〔R,x(nの桁数),yは小さ
くない整数〕 C : 暗号文 d : 秘密鍵
【0023】ここで用いられる式(3) 及び式(4) を実施
する際、一般的に指数演算法〔図2〕が用いられる。即
ち、この演算法の第iステツプに第1発明の方法を用い
るのである。これをハ−ドウエア構成した場合のブロツ
ク図を〔図3〕に示す。〔図3〕の回路はj個の部分積
値を一括加算するj入力加算器とその結果をn+1進補
正したものの上位デジツトと下位デジツトとを加算する
上下デジツト加算器とその加算結果を補正する最終補正
器で構成されている。よつて通常の剰余演算回路を必要
としないため指数演算法の1ステツプにあたるa・b
mod nなる計算は、加算処理部分に要するクロツク
数で計算可能である。
【0024】
【図2】
【0025】
【図3】
【0026】
【実施例2】RSA暗号において平文Mの暗号化を実行
する式は、 Me = C mod n (5) であり暗号文Cの復号を実行する式は、 Cd = M mod n (6) である。但し、 M : メツセ−ジ C : 暗号文 e : 公開鍵 d : 秘密鍵 n : p・q p,q : 大きな素数(秘密) また一般にRSA暗号では2<e≪dと選ばれることが
多いが、本発明では計算時間の短縮化に関するものであ
るためe及びdにはこのような制約はないものとする。
本発明のシステム構成原理図をRSA暗号システム〔図
1〕に示す。
【0027】ここで用いられる前記式(5) 及び式(6) を
実施する際、一般的に指数演算法〔図2〕が用いられ
る。即ち、この演算法の第iステツプに手法2を用い
る。これをハ−ドウエア構成した場合のブロツク図を
〔図4〕に示す。この図の回路はj個の部分積値を2個
づつ加算する2入力加算器とその結果をn+1進補正し
たものの上位デジツトと下位デジツトとを加算する上下
デジツト加算器とその加算結果を補正する一括加算する
j/2入力加算器とその加算結果を補正する最終補正器
で構成されている。よつて通常の剰余演算回路を必要と
しないため指数演算法の1ステツプにあたるa・b m
od nなる計算は、加算処理部分に要するクロツク数
で計算可能になる。
【0028】
【図4】
【0029】
【発明の効果】本発明の効果を纏めると次の通りであ
る。 (1) 本発明によつてRSA暗号方式を用いた暗号通信に
おける平文の暗号化と復号にかかる時間の著しい短縮が
従来のRSA暗号と同程度の安全性を確保したうえ法n
に特別な制限を加えることなく可能となつた。即ち、多
大の計算ステツプを必要とするベキ乗剰余演算を1ステ
ツプで処理することが可能になつた。 (2) 本発明に使用する乗算器はセル配列構造であつて暗
号化装置又は復号装置内の規則正しい配線が可能であ
り、このためレイアフトが容易でVLSI化に適してい
る。
【図面の簡単な説明】
【図1】RSA暗号システム
【図2】高速指数乗算法のフロ−チヤ−ト
【図3】逐次剰余方式自乗剰余回路を示すブロツク図。
【図4】剰余並行方式自乗剰余回路を示すブロツク図。
【手続補正書】
【提出日】平成6年5月12日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正内容】
【0022】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正内容】
【0023】ここで用いられる式(3)及び式(4)を
実施する際、一般的に指数演算法〔図1〕が用いられ
る。即ち、この演算法の第iステツプに第1発明の方法
を用いるのである。これをハードウエア構成した場合の
ブロツク図を〔図2〕に示す。〔図2〕の回路はj個の
部分積値を一括加算するj入力加算器とその結果をn+
1進補正したものの上位デジツトと下位デジツトとを加
算する上下デジツト加算器とその加算結果を補正する最
終補正器で構成されている。よつて通常の剰余演算回路
を必要としないため指数演算法の1ステツプにあたるa
・b mod nなる計算は、加算処理部分に要するク
ロツク数で計算可能である。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正内容】
【0024】
【図1】
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正内容】
【0025】
【図2】
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正内容】
【0026】
【実施例2】RSA暗号において平文Mの暗号化を実行
する式は、 M= C mod n (5) であり暗号文Cの復号を実行する式は、 C= M mod n (6) である。但し、 M : メツセージ C : 暗号文 e : 公開鍵 d : 秘密鍵 n : p・q p,q : 大きな素数(秘密) また一般にRSA暗号では2<e≪dと選ばれることが
多いが、本発明では計算時間の短縮化に関するものであ
るためe及びdにはこのような制約はないものとする。
本発明のシステム構成原理図をRSA暗号システムに示
す。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0027
【補正方法】変更
【補正内容】
【0027】ここで用いられる前記式(5)及び式
(6)を実施する際、一般的に指数演算法〔図1〕が用
いられる。即ち、この演算法の第iステツプに手法2を
用いる。これをハードウエア構成した場合のブロツク図
を〔図3〕に示す。この図の回路はj個の部分積値を2
個づつ加算する2入力加算器とその結果をn+1進補正
したものの上位デジツトと下位デジツトとを加算する上
下デジツト加算器とその加算結果を補正する一括加算す
るj/2入力加算器とその加算結果を補正する最終補正
器で構成されている。よつて通常の剰余演算回路を必要
としないため指数演算法の1ステツプにあたるa・b
mod nなる計算は、加算処理部分に要するクロツク
数で計算可能になる。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正内容】
【0028】
【図3】 ─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成6年8月26日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正内容】
【0022】RSA暗号システム M : 平文(メツセージ) e : 公開鍵 R−y: 公開鍵n〔R,x(nの桁数),yは小さ
くない整数〕 C : 暗号文 d : 秘密鍵
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正内容】
【0023】ここで用いられる式(3)及び式(4)を
実施する際、一般的に指数演算法〔図1]が用いられ
る。即ち、この演算法の第iステツプに第1発明の方法
を用いるのである。これをハードウエア構成した場合の
ブロツク図を〔図2〕に示す。〔図2〕の回路はj個の
部分積値を一括加算するj入力加算器とその結果をn+
1進補正したものの上位デジツトと下位デジツトとを加
算する上下デジツト加算器とその加算結果を補正する最
終補正器で構成されている。よつて通常の剰余演算回路
を必要としないため指数演算法の1ステツプにあたるa
・b mod nなる計算は、加算処理部分に要するク
ロツク数で計算可能である。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正内容】
【0024】
【図1】
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正内容】
【0025】
【図2】
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正内容】
【0026】
【実施例2】RSA暗号において平文Mの暗号化を実行
する式は、 M= C mod n (5) であり暗号文Cの復号を実行する式は、 C= M mod n (6) である。但し、 M : メツセージ C : 暗号文 e : 公開鍵 d : 秘密鍵 n : p・q p,q : 大きな素数(秘密) また一般にRSA暗号では2<e《dと選ばれることが
多いが、本発明では計算時間の短縮化に関するものであ
るためe及びdにはこのような制約はないものとする。
本発明のシステム構成原理図をRSA暗号システムに示
す。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0027
【補正方法】変更
【補正内容】
【0027】ここで用いられる前記式(5)及び式
(6)を実施する際、一般的に指数演算法〔図1〕が用
いられる。即ち、この演算法の第iステツプに手法2を
用いる。これをハードウエア構成した場合のブロツク図
を〔図3〕に示す。この図の回路はj個の部分積値を2
個づつ加算する2入力加算器とその結果をn+1進補正
したものの上位デジツトと下位デジツトとを加算する上
下デジツト加算器とその加算結果を補正する一括加算す
るj/2入力加算器とその加算結果を補正する最終補正
器で構成されている。よつて通常の剰余演算回路を必要
としないため指数演算法の1ステツプにあたるa・b
mod nなる計算は、加算処理部分に要するクロツク
数で計算可能になる。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0028
【補正方法】変更
【補正内容】
【0028】
【図3】 ─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成6年8月26日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正内容】
【図面の簡単な説明】
【図1】高速指数乗算法のフローチヤート
【図2】逐次剰余方式自乗剰余回路を示すブロツク図。
【図3】剰余並行方式自乗剰余回路を示すブロツク図。
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 下記RSA暗号システムで示されるRS
    A型の暗号化装置内のMe mod Rx −y、及び復号
    器装置内のCd mod Rx −yの演算の実施におい
    て、通常の指数演算法を用いて、この演算処理の第iス
    テツプのCi 2mod Rx −yなるベキ乗剰余演算をベ
    キ乗部分に基数mのBooth の手法を加算木と併用し、そ
    の部分積同士の加算には冗長加算木を用いたn+1進乗
    算器を使用し、従来の除数の桁数に比例した処理時間を
    要する除算を使用せずn+1進乗算器の最終出力結果の
    上位デジツト値と下位デジツト値を加算し、そのベキ乗
    結果の剰余値を求めることで上記ベキ乗剰余演算を高速
    処理することを特徴とするRSA暗号方式の暗号化器及
    び復号器に使用する逐次剰余方式の高速ベキ乗剰余演算
    法。 M : 平文(メツセ−ジ) e : 公開鍵 Rx −y: 公開鍵n〔R,x(nの桁数)yは小さく
    ない整数〕 C : 暗号文 d : 秘密鍵
  2. 【請求項2】 下記RSA暗号システムで示されるRS
    A型の暗号化装置内のMe mod Rx −y、及び復号
    器装置内のCd mod Rx −yなる演算の実施におい
    て、通常の指数演算法を用いて、この演算処理の第iス
    テツプのCi 2mod Rx −yなるベキ乗剰余演算をベ
    キ乗部分に基数mのBooth の手法を加算木と併用し、そ
    の部分積同士の加算には冗長加算木を用いたn+1進乗
    算器を使用し、従来の除数の桁数に比例した処理時間を
    要する除算を使用せずn+1進乗算器の各部分積の上位
    デジツト値と下位デジツト値を加算し、そのベキ乗結果
    の剰余値を求めることで上記ベキ乗剰余演算を高速処理
    することを特徴とするRSA暗号方式の暗号化器及び複
    号器に使用する剰余並行方式の高速ベキ剰余演算法。 M : 平文(メツセ−ジ) e : 公開鍵 Rx −y: 公開鍵n〔R,x(nの桁数),yは小さ
    くない整数〕 C : 暗号文 d : 秘密鍵
JP5280484A 1993-10-13 1993-10-13 Rsa暗号方式の暗号化器及び復号器に使用する高速ベキ乗剰余演算法 Pending JPH07129085A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5280484A JPH07129085A (ja) 1993-10-13 1993-10-13 Rsa暗号方式の暗号化器及び復号器に使用する高速ベキ乗剰余演算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5280484A JPH07129085A (ja) 1993-10-13 1993-10-13 Rsa暗号方式の暗号化器及び復号器に使用する高速ベキ乗剰余演算法

Publications (1)

Publication Number Publication Date
JPH07129085A true JPH07129085A (ja) 1995-05-19

Family

ID=17625724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5280484A Pending JPH07129085A (ja) 1993-10-13 1993-10-13 Rsa暗号方式の暗号化器及び復号器に使用する高速ベキ乗剰余演算法

Country Status (1)

Country Link
JP (1) JPH07129085A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023040335A1 (zh) * 2021-09-14 2023-03-23 超聚变数字技术有限公司 一种人脸识别方法、设备及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023040335A1 (zh) * 2021-09-14 2023-03-23 超聚变数字技术有限公司 一种人脸识别方法、设备及系统

Similar Documents

Publication Publication Date Title
JP3784156B2 (ja) モジュラ掛け算方法
US7320015B2 (en) Circuit and method for performing multiple modulo mathematic operations
US6876745B1 (en) Method and apparatus for elliptic curve cryptography and recording medium therefore
US8085931B2 (en) Computation method, computing device and computer program
US20010033655A1 (en) Timing attack resistant cryptographic system
US20100023571A1 (en) Modular multiplication calculation apparatus used for Montgomery method
US5121429A (en) Digital signal processing
US20090086961A1 (en) Montgomery masked modular multiplication process and associated device
EP0952697B1 (en) Elliptic curve encryption method and system
KR100459732B1 (ko) 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법
EP1600852B1 (en) Method and apparatus for calculating a modular inverse
US7113593B2 (en) Recursive cryptoaccelerator and recursive VHDL design of logic circuits
US6477556B1 (en) Method and apparatus for arithmetic operation and recording medium of method of operation
JPH07129085A (ja) Rsa暗号方式の暗号化器及び復号器に使用する高速ベキ乗剰余演算法
US7403965B2 (en) Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication
KR20040055523A (ko) GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치
Anoop et al. Performance analysis of montgomery multiplier
Nedjah et al. Simulation model for hardware implementation of modular multiplication
JPH08254949A (ja) Rsa暗号方式の暗号化器及び復号器に使用する高速ベキ乗剰余演算法
Dhanabal et al. Design of Montgomery Multiplier for High Speed Pairing Computation with Modified Compressor for Floating-point Unit
CN117938347A (zh) 用于抵御侧信道攻击的安全加密系统及方法
Elsherbiny et al. Fast Calculation of the Modular Exponential Function in the RSA Cipher
JPS63240219A (ja) 乗算剰余演算装置
JP2001188468A (ja) ガロア体上の元の除算演算方法および除算演算回路
KR20020049659A (ko) 계산된 모듈라 결과값을 이용한 모듈라 곱셈방법 및 그 장치