JPS6329784A - 剰余計算方式 - Google Patents
剰余計算方式Info
- Publication number
- JPS6329784A JPS6329784A JP61171646A JP17164686A JPS6329784A JP S6329784 A JPS6329784 A JP S6329784A JP 61171646 A JP61171646 A JP 61171646A JP 17164686 A JP17164686 A JP 17164686A JP S6329784 A JPS6329784 A JP S6329784A
- Authority
- JP
- Japan
- Prior art keywords
- remainder
- calculation
- digits
- value
- dividend
- 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
Links
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、特定の法に対する任意の数の剰余計算を高速
に行う方式に関し、特に、多倍長剰余計算を暗号化アル
ゴリズムの計算単位とするR3A暗号方式の暗号処理速
度の高速化に適する。
に行う方式に関し、特に、多倍長剰余計算を暗号化アル
ゴリズムの計算単位とするR3A暗号方式の暗号処理速
度の高速化に適する。
現在、公開鍵暗号アルゴリズムとして最も有力な方法に
、R3A方式がある。R3A方式では、平文をM、暗号
文をC2暗号所をe、d、n (但し、e≠n)とした
とき、その暗号化と復号化のアルゴリズムは、 C=M6(mad n):暗号化 M=C’ (mod n) :復号化で表わされる。
、R3A方式がある。R3A方式では、平文をM、暗号
文をC2暗号所をe、d、n (但し、e≠n)とした
とき、その暗号化と復号化のアルゴリズムは、 C=M6(mad n):暗号化 M=C’ (mod n) :復号化で表わされる。
暗号化鍵の大きさは、n=2400゜o−822400
以上が、暗号強度の面から適当とされている。しかし、
その反面、暗号鍵の値が大きいため、暗号計算量は大き
くなる。
以上が、暗号強度の面から適当とされている。しかし、
その反面、暗号鍵の値が大きいため、暗号計算量は大き
くなる。
従来、R3A方式を実行するハードウェアにおいては、
以下の処理手順により前記の暗号化および復号化が、実
行されていた。この時、eは2進数u+1桁の値として
、 e=E(u)2u+E(u−1)・2u−”+=−+−
E(0) ・20で表わすことができ、E (i)は、
2進数eのi桁目の値を示すものとする。
以下の処理手順により前記の暗号化および復号化が、実
行されていた。この時、eは2進数u+1桁の値として
、 e=E(u)2u+E(u−1)・2u−”+=−+−
E(0) ・20で表わすことができ、E (i)は、
2進数eのi桁目の値を示すものとする。
S tep、1 : C4−1
Step、 2 : for i = u to Os
tep−1(a)Ml←C;M2←C; R4−MI XM2 (mod n) ;C4−
R; (b) if E (i) =1 the
nM1←C;M2←8; R4−MI XM2 (mod n) ;C4−
R; next 1 Step、3 : Halt。
tep−1(a)Ml←C;M2←C; R4−MI XM2 (mod n) ;C4−
R; (b) if E (i) =1 the
nM1←C;M2←8; R4−MI XM2 (mod n) ;C4−
R; next 1 Step、3 : Halt。
上記S tep、 1〜3において、u+1回のループ
計算が行われる。第1回目のループ計算においては、E
(u)=1のとき、Mの値をCとして求めている。ま
た、第を回目のループ計算においては、E (t)=1
のとき、1==uからi = t + 1までに計算さ
れたCの値の自乗とMの値との積の剰余としてCを求め
ている。E (t)=Oの場合は、i=uからi=t+
1までに求めた値の自乗の剰余を求めている。このよう
な手順により、M” (nod n) =(ME(u)
・2”0ME(u−1)・2”−j、、ME(0)・’
) (、、dn)を再帰的に計算している。
計算が行われる。第1回目のループ計算においては、E
(u)=1のとき、Mの値をCとして求めている。ま
た、第を回目のループ計算においては、E (t)=1
のとき、1==uからi = t + 1までに計算さ
れたCの値の自乗とMの値との積の剰余としてCを求め
ている。E (t)=Oの場合は、i=uからi=t+
1までに求めた値の自乗の剰余を求めている。このよう
な手順により、M” (nod n) =(ME(u)
・2”0ME(u−1)・2”−j、、ME(0)・’
) (、、dn)を再帰的に計算している。
上記の処理において、最も計算時間が掛かるのは、R8
A暗号アルゴリズムの計算単位であるモジュロ計算(剰
余計算)、 R=MIXM2 (+++od n) である、この一対の乗算と除算を、同一タイミングで実
行する計算法を以下に示す。
A暗号アルゴリズムの計算単位であるモジュロ計算(剰
余計算)、 R=MIXM2 (+++od n) である、この一対の乗算と除算を、同一タイミングで実
行する計算法を以下に示す。
但し、 Qj :計算過程での商。
Rj:計算過程での剰余。
Ml、M2:計算過程での剰余、平文
M2.j :M2を、ビットごとにQ等分に分割し、そ
のうちj番目のに ビット列。
のうちj番目のに ビット列。
−”、kQ=m(m;M2の桁数)
M2=M2.fl・2”−1)k+M2.(Q−1)・
2(Q−2)k+・・・+M2,1・20(−)ニーを
越えない、最大の整数とする。
2(Q−2)k+・・・+M2,1・20(−)ニーを
越えない、最大の整数とする。
<R=MI XM2(mad n)の計算アルゴリズム
〉5tep、1 : Ru+1+0 8tep、 2 : for j = Q to l
5teo−1Qj←[((2K・Rj + 1)+(M
1・M2.j))÷nコ Rj←(2に−Rj + 1)+(M 1・M2.j)
−Q j +n next j S tep、3 : Halt。
〉5tep、1 : Ru+1+0 8tep、 2 : for j = Q to l
5teo−1Qj←[((2K・Rj + 1)+(M
1・M2.j))÷nコ Rj←(2に−Rj + 1)+(M 1・M2.j)
−Q j +n next j S tep、3 : Halt。
(R=R1=M’l XM2(mod n))公知例
(宮口庄司;R3A公開分装号の高速計算法と暗号LS
Iの構成/情報処理学会論文誌Nov、1983.Vo
l、24. Na6. p p 764−771参照)
では、Qjの計算において、近似と補正処理を行い高速
化を計っている。
(宮口庄司;R3A公開分装号の高速計算法と暗号LS
Iの構成/情報処理学会論文誌Nov、1983.Vo
l、24. Na6. p p 764−771参照)
では、Qjの計算において、近似と補正処理を行い高速
化を計っている。
前記公知例では、高速化に伴い暗号LSIのハードウェ
アが増加し、計算アルゴリズムも複雑なものとなってい
る。また、除算の処理ステップ数が多いため、処理が遅
くなるという欠点がある。
アが増加し、計算アルゴリズムも複雑なものとなってい
る。また、除算の処理ステップ数が多いため、処理が遅
くなるという欠点がある。
本発明の目的は、多倍長剰余計算の高速化を簡単な装置
により実現することにより、これを計算単位とするR3
A暗号方式の処理速度を向上し、実用的なR3A公開鍵
暗分装置を提供することにある。
により実現することにより、これを計算単位とするR3
A暗号方式の処理速度を向上し、実用的なR3A公開鍵
暗分装置を提供することにある。
第2の実施例では、剰余を求める際、第1の実施例のよ
うに、商を求めて被除数から減算する手順を用いず、剰
余計算が加減乗算を保存する性質を用いる。すなわち A (Ilod n) = (A Q・2 (Q−””
(nod n)+ A Q−t・2 (” −2)k”
(mod n) + −+ A x・2 ”(mod
n) + S )(mo、d n)この様にして、2進
被除数A(2m桁)の上位m桁をに桁(k≧2)単位に
分割し、各単位で求まる除数n (m桁)に対する部分
剰余と波除数下位m桁Sを加算及び補正することにより
、剰余を求め高速化を可能にしている。
うに、商を求めて被除数から減算する手順を用いず、剰
余計算が加減乗算を保存する性質を用いる。すなわち A (Ilod n) = (A Q・2 (Q−””
(nod n)+ A Q−t・2 (” −2)k”
(mod n) + −+ A x・2 ”(mod
n) + S )(mo、d n)この様にして、2進
被除数A(2m桁)の上位m桁をに桁(k≧2)単位に
分割し、各単位で求まる除数n (m桁)に対する部分
剰余と波除数下位m桁Sを加算及び補正することにより
、剰余を求め高速化を可能にしている。
ただし、この場合、各に桁単位の被除数の上記除数nに
対する剰余を算出する必要がある。そこで、本発明にお
いては予め該除数に対する被除数(k桁単位)の剰余の
値を計算し、ROMカード。
対する剰余を算出する必要がある。そこで、本発明にお
いては予め該除数に対する被除数(k桁単位)の剰余の
値を計算し、ROMカード。
光カードといった外部記憶装置に記憶しておき、必要に
応じて任意の被除数の部分剰余を直接参照できる被除数
/剰余テーブルを作成しておく、また、多倍長の部分剰
余加算にはビットスライス形の並列加算方式を採用する
。
応じて任意の被除数の部分剰余を直接参照できる被除数
/剰余テーブルを作成しておく、また、多倍長の部分剰
余加算にはビットスライス形の並列加算方式を採用する
。
被除数/剰余テーブル参照方式は、商を求める過程を省
略し、多倍長除算を複数個の部分剰余の加算に変換する
ことにより、処理ステップ数を削減することができ、同
時に、並列計算を可能としたことにより、多倍長剰余計
算の高速化が達成できる。また、簡単な構成で剰余計算
装置が実現できる。
略し、多倍長除算を複数個の部分剰余の加算に変換する
ことにより、処理ステップ数を削減することができ、同
時に、並列計算を可能としたことにより、多倍長剰余計
算の高速化が達成できる。また、簡単な構成で剰余計算
装置が実現できる。
以下、本発明の動作を第1図及び第2図を用いて説明す
る。
る。
第1図は、本発明である高速多倍長剰余計算装置の構成
を示している。装置は、剰余計算処理を行う部分1と除
数及び除数に対応する複数個の部分剰余を記憶したテー
ブルを含む外部記憶装置3から成る。
を示している。装置は、剰余計算処理を行う部分1と除
数及び除数に対応する複数個の部分剰余を記憶したテー
ブルを含む外部記憶装置3から成る。
本装置への入力データ10は被除数であり、レジスタ1
2に格納される。レジスタ12に格納されたデータの上
位m桁をに桁(k≧2)ずつ分割し、そのに桁の値を部
分剰余検索用パラメータとしてレジスタ13に格納する
。外部記憶装置3に記憶されている剰余テーブル21及
び除数22は、内部記憶装置2に取り込まれ、部分剰余
はレジスタ13の値により参照されレジスタ14へ、除
数はレジスタ17へ格納される。また、レジスタ12に
格納されているデータの下位m桁をレジスタ15に取り
込む、このレジスタ14のデータとレジスタ17のデー
タのうちセレクタ23で選ばれたどちらか一方のデータ
とレジスタ15のデータを並列加減算処理部16によっ
て処理し、その結果により比較処理部18がループまた
は終了処理を行う、また、これらの処理は、記憶装置を
内部に含む制御装置19により制御される。以上の繰り
返しにより、出力データ11が剰余として得られる。
2に格納される。レジスタ12に格納されたデータの上
位m桁をに桁(k≧2)ずつ分割し、そのに桁の値を部
分剰余検索用パラメータとしてレジスタ13に格納する
。外部記憶装置3に記憶されている剰余テーブル21及
び除数22は、内部記憶装置2に取り込まれ、部分剰余
はレジスタ13の値により参照されレジスタ14へ、除
数はレジスタ17へ格納される。また、レジスタ12に
格納されているデータの下位m桁をレジスタ15に取り
込む、このレジスタ14のデータとレジスタ17のデー
タのうちセレクタ23で選ばれたどちらか一方のデータ
とレジスタ15のデータを並列加減算処理部16によっ
て処理し、その結果により比較処理部18がループまた
は終了処理を行う、また、これらの処理は、記憶装置を
内部に含む制御装置19により制御される。以上の繰り
返しにより、出力データ11が剰余として得られる。
次に、第1図の構成要素の動作を第2図のフローチャー
トに沿って被除数入力から剰余出力までの処理の流れを
説明する。
トに沿って被除数入力から剰余出力までの処理の流れを
説明する。
く剰余計算〉
ステップ110:被除数(2m桁)を入力し、上位m桁
の値をAとし、下位 m桁の数をSとする。
の値をAとし、下位 m桁の数をSとする。
ステップ120:Aの値をに桁ずつ分割し、その値を下
位桁から順にAi (i=1.2.・・・・・・Q:m= Q −k)とする。
位桁から順にAi (i=1.2.・・・・・・Q:m= Q −k)とする。
ステップ130:Q−+iにセットする。
ステップ140 : A、の値をパラメータとし部分剰
余rl (m桁)を記憶領 域より参照する。
余rl (m桁)を記憶領 域より参照する。
ステップ150 : (Si r+ ) →S(注)
Sの桁数:m−+m+Δm ステップ160:i≧2ならば、i −1→iとしてス
テップ140へ飛ぶ。
Sの桁数:m−+m+Δm ステップ160:i≧2ならば、i −1→iとしてス
テップ140へ飛ぶ。
ステップ170:6m = Oならば、ステップ200
へ飛ぶ。
へ飛ぶ。
ステップ180:Sの上位Δm桁をに桁ずつ分割し、そ
の値を下位桁から順 にSi (i=1.2.・・・p) とする。
の値を下位桁から順 にSi (i=1.2.・・・p) とする。
ただし、Δm=αk(α:
正の整数)とするように必要
とあらば、Sの上位に′0′
を付加する。
ステップ190:Sl→At 、 p−+2S(下位ホ
桁の値)→S としてステップ130へ飛ぶ。
桁の値)→S としてステップ130へ飛ぶ。
ステップ200 : 54Rz
ステップ210: (S−B)→R2ステップ220
: R2<Oならば、R= RIR2≧Oならば、R
= Rz ステップ230 : Halt 剰余R以上の手順に
より、剰余を高速に求めることができる。最後に、簡単
な一実施例として具体的な数値を用いて処理手順を説明
する。
: R2<Oならば、R= RIR2≧Oならば、R
= Rz ステップ230 : Halt 剰余R以上の手順に
より、剰余を高速に求めることができる。最後に、簡単
な一実施例として具体的な数値を用いて処理手順を説明
する。
く設定〉
除数: 101011011 (m = 9桁)被除数
: 101010101010101010 (2m
= 18桁)ジャンプパラメーター:に=3 テーブル検索用パラメータ:000≦AI≦111被除
数/剰余テーブル: く剰余計算〉 ■部分剰余の加算 1、入力データ設定(ステップ110)m = 9 ;
A = 101010101S =01010101
0 2、検索用パラメータ、検索回数の設定(ステップ12
0) k=3.A1=101.Az=010゜−As=101 Q=m/に;Q=3 3、部分剰余検索及び加算(ステップ130〜ステツプ
160) A1= 101 ; r z=010000011Az
= 010 ; rz=011010011A3:’=
101 ; r 5=000111000S =(S
+ rz+ rz+ r3)=1000111000
■剰余算出の補正(Δm≠0) 1、各種データ設定(ステップ170〜ステツプ19o
) Sz=OO1;Ax=OO1 p=l ; 12=1 S =OO0111000 2、部分剰余検索及び加算(ステップ130〜ステツプ
160) A I = OO1; r x = 01010010
1S =(rt+ 5)=0110111013、剰余
の決定(ステップ170.ステップ200〜ステツプ2
30) 6m = O; Rz=011011101R2<O;
剰余R: Rz=011011101上記実施例におい
て、従来の除算による剰余計算方式が商決定・減算のス
テップを9回(2m−m)必要としたのに対し、本方式
では部分剰余検索・加算のステップ3回((2m−m)
/k)と若干の補正ステップにより多倍長剰余計算が達
成できる。
: 101010101010101010 (2m
= 18桁)ジャンプパラメーター:に=3 テーブル検索用パラメータ:000≦AI≦111被除
数/剰余テーブル: く剰余計算〉 ■部分剰余の加算 1、入力データ設定(ステップ110)m = 9 ;
A = 101010101S =01010101
0 2、検索用パラメータ、検索回数の設定(ステップ12
0) k=3.A1=101.Az=010゜−As=101 Q=m/に;Q=3 3、部分剰余検索及び加算(ステップ130〜ステツプ
160) A1= 101 ; r z=010000011Az
= 010 ; rz=011010011A3:’=
101 ; r 5=000111000S =(S
+ rz+ rz+ r3)=1000111000
■剰余算出の補正(Δm≠0) 1、各種データ設定(ステップ170〜ステツプ19o
) Sz=OO1;Ax=OO1 p=l ; 12=1 S =OO0111000 2、部分剰余検索及び加算(ステップ130〜ステツプ
160) A I = OO1; r x = 01010010
1S =(rt+ 5)=0110111013、剰余
の決定(ステップ170.ステップ200〜ステツプ2
30) 6m = O; Rz=011011101R2<O;
剰余R: Rz=011011101上記実施例におい
て、従来の除算による剰余計算方式が商決定・減算のス
テップを9回(2m−m)必要としたのに対し、本方式
では部分剰余検索・加算のステップ3回((2m−m)
/k)と若干の補正ステップにより多倍長剰余計算が達
成できる。
被検数 除数
剰余: 11011101 (R<n)〔発明の効果〕
本発明による剰余計算アルゴリズムの計算時間は、2進
数2m桁の被除数と2進数m桁の除数からその編余を求
める時、除算による剰余計算方式の計算時間をT (2
m −m)とすると、約T((2m−m)/k)となる
。従って、ジャンプパラメータにの値が1の場合、同等
のものとなるが、kに2以上の値を取ることにより、本
発明の計算法は、k倍の速さで計算することができる。
数2m桁の被除数と2進数m桁の除数からその編余を求
める時、除算による剰余計算方式の計算時間をT (2
m −m)とすると、約T((2m−m)/k)となる
。従って、ジャンプパラメータにの値が1の場合、同等
のものとなるが、kに2以上の値を取ることにより、本
発明の計算法は、k倍の速さで計算することができる。
また、前記公知例で示した多倍長の除算計算法を使用し
た場合と比べると、公知例では、まず、多倍長の除算計
算により商を求め、その商を使って剰余を求めている。
た場合と比べると、公知例では、まず、多倍長の除算計
算により商を求め、その商を使って剰余を求めている。
そのため、計算アルゴリズムや演算回路は、複雑なもの
になっている0本発明では、商を求める手順を省き、部
分剰余を使用した加算の繰り返しと補正の減算だけで直
接的に剰余を求めている。このため、処理も少なく演算
回路も簡単なものでよい、また、剰余計算を加減算に変
換したことにより、並列計算が可能となる。
になっている0本発明では、商を求める手順を省き、部
分剰余を使用した加算の繰り返しと補正の減算だけで直
接的に剰余を求めている。このため、処理も少なく演算
回路も簡単なものでよい、また、剰余計算を加減算に変
換したことにより、並列計算が可能となる。
これらのことから、本発明の多倍長剰余計算装置は、簡
単な装置によって実現でき、高速で多倍長の剰余計算を
実行できる。
単な装置によって実現でき、高速で多倍長の剰余計算を
実行できる。
第1図は本発明による高速多倍剰余計算装置のブロック
構成図、第2図は剰余計算処理のフローチャートである
。 3−外部記慣多41 第 2 0
構成図、第2図は剰余計算処理のフローチャートである
。 3−外部記慣多41 第 2 0
Claims (1)
- 【特許請求の範囲】 1、特定の除数に対する剰余テーブルを予め記憶装置に
格納しておき、任意の被除数が与えられた時、被除数を
特定桁数で分割し、各区分に対する部分剰余を該剰余テ
ーブルにより求め、各部分剰余の加算及び補正を並列計
算することを特徴とする剰余計算方式。 2、前記剰余テーブルは、メモリーカードに入れること
を特徴とする第1項の剰余計算方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61171646A JPS6329784A (ja) | 1986-07-23 | 1986-07-23 | 剰余計算方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61171646A JPS6329784A (ja) | 1986-07-23 | 1986-07-23 | 剰余計算方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6329784A true JPS6329784A (ja) | 1988-02-08 |
Family
ID=15927070
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61171646A Pending JPS6329784A (ja) | 1986-07-23 | 1986-07-23 | 剰余計算方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6329784A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5499299A (en) * | 1993-07-02 | 1996-03-12 | Fujitsu Limited | Modular arithmetic operation system |
-
1986
- 1986-07-23 JP JP61171646A patent/JPS6329784A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5499299A (en) * | 1993-07-02 | 1996-03-12 | Fujitsu Limited | Modular arithmetic operation system |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5210710A (en) | Modulo arithmetic processor chip | |
| US20040179681A1 (en) | Apparatus and method for performing montgomery type modular multiplication | |
| JP4034585B2 (ja) | 楕円曲線演算装置及び楕円曲線演算方法 | |
| US7024560B2 (en) | Power-residue calculating unit using Montgomery algorithm | |
| CN107154851A (zh) | 一种数据加密和解密的方法及装置 | |
| US7480691B2 (en) | Arithmetic device for multiple precision arithmetic for Montgomery multiplication residue arithmetic | |
| KR100508092B1 (ko) | 저전력 모듈로 곱셈을 수행하는 연산장치 | |
| JP2000010479A (ja) | モンゴメリ・リダクション装置及び記録媒体 | |
| KR100478974B1 (ko) | 직렬 유한체 승산기 | |
| JPH05324277A (ja) | 暗号通信方法 | |
| JP2001051832A (ja) | 乗算剰余演算方法および乗算剰余回路 | |
| JP2002358010A (ja) | べき乗剰余演算器 | |
| KR100297110B1 (ko) | 모듈러곱셈기 | |
| JP4105803B2 (ja) | 楕円曲線演算装置 | |
| JP4541485B2 (ja) | べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体 | |
| US12578926B2 (en) | Secure square root computation system, secure normalization system, methods therefor, secure computation apparatus, and program | |
| JPS6211937A (ja) | 高速剰余計算装置 | |
| JPS6350883A (ja) | 分割整数剰余計算機 | |
| JPH11161164A (ja) | 公開鍵暗号方式と暗号化装置および復号装置 | |
| US12476789B1 (en) | Computational function transformation (CFT) in computer implemented cryptography | |
| JP2001194996A (ja) | 多項式の除算装置 | |
| JP3795315B2 (ja) | 暗号化・復号化回路 | |
| CN117527198A (zh) | 数据安全处理方法、装置、计算机设备及存储介质 | |
| JPS6034131B2 (ja) | 乗除算回路 | |
| JPH03250314A (ja) | 乗算剰余演算装置 |