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
Application number
JP61171646A
Other languages
English (en)
Inventor
康彦 永井
和夫 宝木
白石 高義
良一 佐々木
中川 聡夫
谷口 伸博
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.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Control Systems 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 Hitachi Ltd, Hitachi Control Systems Inc filed Critical Hitachi Ltd
Priority to JP61171646A priority Critical patent/JPS6329784A/ja
Publication of JPS6329784A publication Critical patent/JPS6329784A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、特定の法に対する任意の数の剰余計算を高速
に行う方式に関し、特に、多倍長剰余計算を暗号化アル
ゴリズムの計算単位とするR3A暗号方式の暗号処理速
度の高速化に適する。
〔従来の技術〕
現在、公開鍵暗号アルゴリズムとして最も有力な方法に
、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桁目の値を示すものとする。
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。
上記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)を再帰的に計算している。
上記の処理において、最も計算時間が掛かるのは、R8
A暗号アルゴリズムの計算単位であるモジュロ計算(剰
余計算)、 R=MIXM2 (+++od n) である、この一対の乗算と除算を、同一タイミングで実
行する計算法を以下に示す。
但し、 Qj :計算過程での商。
Rj:計算過程での剰余。
Ml、M2:計算過程での剰余、平文 M2.j :M2を、ビットごとにQ等分に分割し、そ
のうちj番目のに ビット列。
−”、kQ=m(m;M2の桁数) M2=M2.fl・2”−1)k+M2.(Q−1)・
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。
(R=R1=M’l XM2(mod  n))公知例
(宮口庄司;R3A公開分装号の高速計算法と暗号LS
Iの構成/情報処理学会論文誌Nov、1983.Vo
l、24. Na6. p p 764−771参照)
では、Qjの計算において、近似と補正処理を行い高速
化を計っている。
〔発明が解決しようとする問題点〕
前記公知例では、高速化に伴い暗号LSIのハードウェ
アが増加し、計算アルゴリズムも複雑なものとなってい
る。また、除算の処理ステップ数が多いため、処理が遅
くなるという欠点がある。
本発明の目的は、多倍長剰余計算の高速化を簡単な装置
により実現することにより、これを計算単位とする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を加算及び補正することにより
、剰余を求め高速化を可能にしている。
ただし、この場合、各に桁単位の被除数の上記除数nに
対する剰余を算出する必要がある。そこで、本発明にお
いては予め該除数に対する被除数(k桁単位)の剰余の
値を計算し、ROMカード。
光カードといった外部記憶装置に記憶しておき、必要に
応じて任意の被除数の部分剰余を直接参照できる被除数
/剰余テーブルを作成しておく、また、多倍長の部分剰
余加算にはビットスライス形の並列加算方式を採用する
〔作用〕
被除数/剰余テーブル参照方式は、商を求める過程を省
略し、多倍長除算を複数個の部分剰余の加算に変換する
ことにより、処理ステップ数を削減することができ、同
時に、並列計算を可能としたことにより、多倍長剰余計
算の高速化が達成できる。また、簡単な構成で剰余計算
装置が実現できる。
〔発明の実施例〕
以下、本発明の動作を第1図及び第2図を用いて説明す
る。
第1図は、本発明である高速多倍長剰余計算装置の構成
を示している。装置は、剰余計算処理を行う部分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が剰余として得られる。
次に、第1図の構成要素の動作を第2図のフローチャー
トに沿って被除数入力から剰余出力までの処理の流れを
説明する。
く剰余計算〉 ステップ110:被除数(2m桁)を入力し、上位m桁
の値をAとし、下位 m桁の数をSとする。
ステップ120:Aの値をに桁ずつ分割し、その値を下
位桁から順にAi (i=1.2.・・・・・・Q:m= Q −k)とする。
ステップ130:Q−+iにセットする。
ステップ140 : A、の値をパラメータとし部分剰
余rl  (m桁)を記憶領 域より参照する。
ステップ150 :  (Si r+ ) →S(注)
Sの桁数:m−+m+Δm ステップ160:i≧2ならば、i −1→iとしてス
テップ140へ飛ぶ。
ステップ170:6m = Oならば、ステップ200
へ飛ぶ。
ステップ180:Sの上位Δm桁をに桁ずつ分割し、そ
の値を下位桁から順 にSi  (i=1.2.・・・p) とする。
ただし、Δm=αk(α: 正の整数)とするように必要 とあらば、Sの上位に′0′ を付加する。
ステップ190:Sl→At 、 p−+2S(下位ホ
桁の値)→S としてステップ130へ飛ぶ。
ステップ200 : 54Rz ステップ210:  (S−B)→R2ステップ220
 : 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)と若干の補正ステップにより多倍長剰余計算が達
成できる。
被検数       除数 剰余: 11011101 (R<n)〔発明の効果〕 本発明による剰余計算アルゴリズムの計算時間は、2進
数2m桁の被除数と2進数m桁の除数からその編余を求
める時、除算による剰余計算方式の計算時間をT (2
m −m)とすると、約T((2m−m)/k)となる
。従って、ジャンプパラメータにの値が1の場合、同等
のものとなるが、kに2以上の値を取ることにより、本
発明の計算法は、k倍の速さで計算することができる。
また、前記公知例で示した多倍長の除算計算法を使用し
た場合と比べると、公知例では、まず、多倍長の除算計
算により商を求め、その商を使って剰余を求めている。
そのため、計算アルゴリズムや演算回路は、複雑なもの
になっている0本発明では、商を求める手順を省き、部
分剰余を使用した加算の繰り返しと補正の減算だけで直
接的に剰余を求めている。このため、処理も少なく演算
回路も簡単なものでよい、また、剰余計算を加減算に変
換したことにより、並列計算が可能となる。
これらのことから、本発明の多倍長剰余計算装置は、簡
単な装置によって実現でき、高速で多倍長の剰余計算を
実行できる。
【図面の簡単な説明】
第1図は本発明による高速多倍剰余計算装置のブロック
構成図、第2図は剰余計算処理のフローチャートである
。 3−外部記慣多41 第 2 0

Claims (1)

  1. 【特許請求の範囲】 1、特定の除数に対する剰余テーブルを予め記憶装置に
    格納しておき、任意の被除数が与えられた時、被除数を
    特定桁数で分割し、各区分に対する部分剰余を該剰余テ
    ーブルにより求め、各部分剰余の加算及び補正を並列計
    算することを特徴とする剰余計算方式。 2、前記剰余テーブルは、メモリーカードに入れること
    を特徴とする第1項の剰余計算方式。
JP61171646A 1986-07-23 1986-07-23 剰余計算方式 Pending JPS6329784A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499299A (en) * 1993-07-02 1996-03-12 Fujitsu Limited Modular arithmetic operation system

Cited By (1)

* Cited by examiner, † Cited by third party
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) 乗算剰余演算装置