JPH04277789A - Arithmetic unit and ciphered communication method using the same - Google Patents

Arithmetic unit and ciphered communication method using the same

Info

Publication number
JPH04277789A
JPH04277789A JP3040115A JP4011591A JPH04277789A JP H04277789 A JPH04277789 A JP H04277789A JP 3040115 A JP3040115 A JP 3040115A JP 4011591 A JP4011591 A JP 4011591A JP H04277789 A JPH04277789 A JP H04277789A
Authority
JP
Japan
Prior art keywords
integer
storage means
multiplication
remainder
input
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
JP3040115A
Other languages
Japanese (ja)
Inventor
Keiichi Iwamura
恵市 岩村
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 JP3040115A priority Critical patent/JPH04277789A/en
Priority to EP92301856A priority patent/EP0502712B1/en
Priority to US07/847,672 priority patent/US5313530A/en
Priority to AT92301856T priority patent/ATE193606T1/en
Priority to DE69231110T priority patent/DE69231110T2/en
Publication of JPH04277789A publication Critical patent/JPH04277789A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To calculate the residue calculation of integers consisting of a large number of figures and to perform ciphering and deciphering for an ciphered communication by using it. CONSTITUTION:The arithmetic unit which calculates a residue by dividing the product of 1st and 2nd given integer by a 3rd integer is provided with ROMS 15-18 as storage means for holding values, multipliers 11-14 which input the 1st integer by a specific number of bits at a time in order and multiply the 2nd integer, and an arithmetic means which adds the inputs from the ROMs 15-18 and the inputs from the multipliers 11-14, finds the residue for the 3rd integer as to values exceeding the maximum figure of the 3rd integer among the values of the ROMs 15-18, and outputs the result to storage means.

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は2つの整数を乗算し、そ
の結果をさらに他の整数で除算した剰余を求める演算、
すなわち、整数A、B、Nに関して、A・ B mod
 Nの乗除算を行う整数の演算装置に関する。特に、R
SA暗号(池野信一,小山謙二:“現代暗号理論”,電
子情報通信学会,1986,6章)のような暗号化技術
に好適な大きな桁の整数の乗除算を行う演算装置に関す
るものである。 【0002】また、本発明は上記演算装置を用いた暗号
化によって行われる、コンピュータネットワークにおけ
るホームバンク,ファームバンク,及び電子メールや電
子郵便などの様々な通信サービスに用いられる暗号化通
信方法に関する。 【0003】 【従来の技術】従来、na・mビットの整数Aとnb・
mビットの整数Bとnn・mビットの整数NによるR=
A・ B mod Nの演算を行う大きな桁の整数の乗
除算回路の方式は大きく2つに分けられる。1つは乗除
算をC=A・ Bの乗算とD=C mod Nの剰余計
算の2つに分けて実行する方式と、もう1つはAを1ビ
ット毎に分割したan−i(i=1・・・na・m) 
に対してR=2・ R+an−i・B mod N(i
=1・・・na・m)の部分積演算と剰余演算をna・
m回繰り返す方式である。 【0004】 【発明が解決しようとする課題】前者の方式は乗算回路
と剰余計算回路をパイプライン化した構成を取ることが
多く、構成及び制御が比較的簡単である。しかし、この
方式は乗算結果Cを一旦蓄えるメモリや乗算と剰余計算
の回路を独立に持つ必要があり、小さな回路規模で装置
を実現することは困難であった。 【0005】また、後者の方式は部分積演算とそれに対
する剰余演算であるので回路は比較的コンパクトにまと
めることができる。しかし、1回の部分積剰余演算に対
する桁上がり遅延時間の問題と、mod Nを実行する
ためのR>N判定をいかに行うか等の問題があった。 【0006】また、乗算に関しては乗算器を用いずan
−i =1の時のみ2・ RにBを加算することによっ
て演算を行うことが多く、この場合少なくともna・m
クロック以上必要になり処理速度が低下すると言う問題
点もあった。 【0007】また、an−i を複数ビットとした場合
、大きな桁の乗算器や除算器が必要になり、大きな桁数
の乗算器や除算器はROMやセルライブラリ等がないと
いった問題があった。そして、大きな桁数の乗算器や除
算器を自分で設計する場合、小さな桁数の乗算器や除算
器の回路構成をそのまま拡張したのでは回路構成が非常
に複雑になり実現が難しかった。 【0008】以上のように、従来の方式には種々の問題
点があり、効率的な乗除算回路の実現は難しかった。 【0009】そこで、本発明は、上述の欠点を除去し、
大きな桁の整数に関する乗除算を、小さな回路規模で効
率よく高速に実行する演算装置を提供することを目的と
する。 【0010】 【課題を解決するための手段】上記目的を達成するため
に、本発明では、与えられた第1、第2の整数の積を第
3の整数で除算した剰余を演算する演算装置に、値を保
持する記憶手段と、前記第1の整数を所定のビットずつ
順次入力して前記第2の整数に乗じる乗算手段と、前記
記憶手段からの入力と、前記乗算手段からの入力とを加
算し、前記記憶手段の値において前記第3の整数の最大
桁を越える部分につき、前記第3の整数に対する剰余を
求める演算を施し、その結果を前記記憶手段に出力する
演算手段とを具える。 【0011】 【実施例】(実施例1)簡単のためにna =nb =
nn =nとして説明する。n・ mビットの3つの整
数をA,B,Nとし、A・ B mod N=Rの演算
を実行することを考える。ここで、mビットの小さな桁
の2つの整数a,bの乗算a・ b=cを実行する乗算
器は公知の構成によって簡単に実現できる。1例として
ROMによって簡単に構成できることは明らかである。 【0012】A,B,Nを各々mビット毎にn分割する
と、次のように表せる。 A=An−1・Xn−1 +An−2・Xn−2+・・
・ +A1・X+A0B=Bn−1・Xn−1 +Bn
−2・Xn−2+・・・ +B1・X+B0N=Nn−
1・Xn−1 +Nn−2・Xn−2+・・・ +N1
・X+N0ここで、X=2mとし、A,B,Nについて
mビット毎に上位桁から分割したビット系列を各々An
−i ,Bn−i ,Nn−i(i=1・・・n)とす
る。この場合A,B,Nは多項式とみなすことができ、
R=A・ B mod Nは次のように表すことができ
る。 R=A・ B−Q・ N  (Q=[A・ B/N])
ただし、[Z]はZを超えない整数を表す。 【0013】従って、次のような実施例によってRを求
めることができる。 【0014】(アルゴリズム1) R0 =0     FOR  j=1  TO  n      
  Rj =Rj−1・X+An−j・B−Qj−1・
N            =Rj−1・X+An−j
・B+Ej−1 −Lj−1・Xn  NEXT IF  Rn >N  THEN  Rn =Rn −
Qn・N    ただし、Lj−1 =[Rj−1 ・
 X/Xn ]=[Rj−1 /Xn−1 ]    
        Qj−1 =[Lj−1・Xn /N
],Qn =[Rn /N]            
Lj−1・Xn=Qj−1・N+Ej−1     (
Ej−1 <N)アルゴリズム1はR>Nの判定を行わ
ないためにNの最大桁であるXn−1 を超えたRj−
1・Xの値Lj−1・Xnに対して、mod Nを行う
ようにしている。即ち、ビット的にXn−1を超えたR
の係数に対してmod Nを行っているのでR>Nの判
定を必要としない。また、Lj−1・Xn mod N
である−Qj−1・Nを実行する代わりに、Lj−1・
Xnを引いてその剰余であるEj−1 を加えている。 即ち、Lj−1 をEj−1に変換して加算している。 これによって、mod Nによる減算をすべて加算で行
うことができる。ただしこの場合、最後に1度だけRn
 >Nを判定して、Rn =Rn −Qn・Nの演算を
行う必要があるが、これは上に示した繰り返し演算が終
わった後であり、従来のように繰り返し演算の途中でR
>Nの判定を行う必要がないので、別の回路等で行うこ
とができ、全体の処理速度には影響しない。 【0015】次に、Rj の演算に伴う遅延時間が大き
いという問題があった。その遅延時間をなくすために、
アルゴリズム1においてRj をRj,n−i 、Bを
Bn−i に分解して次のアルゴリズム2のように表現
する。 (アルゴリズム2) FOR  j=1  TO  n     FOR  i=0  TO  n      
  Rj,n−i =Dj−1,n−i−1 +Cj−
1,n−i−2 +dwm  (An−j・Bn−i 
)                  +upm(A
n−j・Bn−i−1 )+Ej−1,n−i    
     Dj,n−i =dwm (Rj,n−i 
)        Cj,n−i =upm (Rj,
n−i )    NEXT NEXT ただし、Rj−1,n・Xn =Qj−1・N+Ej−
1 ,Qj−1 =[Rj−1,n・Xn/N] (1
)  Ej−1 =Ej−1,n−1・Xn−1 +E
j−1,n−2・Xn−2 +・・・ +Ej−1,1
・X                  +Ej−1
,0                       
                   (2)  D
0,n−i−1 =C0,n−i−2 =E0,n−i
 =Bn =B−1=0        dwm (Z
):Zの2m 桁以下の値        upm (
Z):Zの2m+1 以上の値を2m+1 で割った値
を意味する。 【0016】基本的にアルゴリズム1とアルゴリズム2
は同じであるが、アルゴリズム2の方がより実際の回路
の動作に近い形で表している。ここでn=4の場合を考
え、アルゴリズム2を図1のような回路で乗除算器を構
成する。 【0017】図1はAn−j・Bn−i を演算するm
*mビットの乗算器n個と、Rj−1,n の値から(
1)、(2)式によってEj−1,n−i の値を各々
出力するROMn個と、2ビットのキャリーを持つ4入
力mビット加算器または5入力加算器n+1個と、Rj
,n−i を格納するm+2ビットのレジスタn個から
構成される。このレジスタの下位mビットはRj,n−
i の下位m桁(dwm (Rj,n−i )=Dj,
n−i )を意味し、上位2ビットはRj,n−i の
m+1桁以上の値(upm (Rj,n−i )=Cj
,n−i )を意味する。これによって、各加算器毎の
桁上がりはCj,n−i によって各クロック毎に吸収
され、次のクロックで桁上がりとして右隣のレジスタの
下位mビットともに加算される。従って、アリゴリズム
(1)のようなRj の演算に伴う遅延時間をなくすこ
とができる。以上のようにDj,n−i ,Rj,n−
i ,Cj,n−i はレジスタの状態を表すが、添え
字のjはクロックを意味し、n−iは図1において右か
ら左にi=0からi=nとなる回路の位置を示す。 従って、初期状態(j=0)においてR0,0 は図1
の左端のレジスタを意味し、R0,n−1 =R0,3
 は右端のレジスタを意味する。ただし、R0,n =
R0,4 は右端の加算器からの出力を意味する。 【0018】次に図1の動作について説明する。 【0019】図1において各レジスタの初期状態(R0
,n−i−1 )はオール0とする。このとき、R0,
n−i−1 =0であるのでD0,n−i−1 =C0
,n−i−2 =0である。 【0020】最初のクロック(j=1)でA3 が入力
されるとA3・Bn−i(i=1・・・4)が各乗算器
から出力される。 その値を上位と下位のm桁毎に分けて各加算器で加えて
各々のレジスタ(R1,n−i:i=1・・・n )に
格納する。このとき、R1,n−i(i=1・・4) 
の下位mビットはD1,n−i として、桁上がりがあ
ればm+1ビット以上はC1,n−i としてレジスタ
に格納されている。 【0021】次のクロック(j=2)でA2 が入力さ
れるとA2・Bn−i(i=1・・・4)が同様に上の
乗算器から上位と下位mビット毎に出力される。このと
きR1,4 =upm (A3・B3 )が右端のレジ
スタから加算器を通して出力されるので、それを受けて
各ROMからE1,n−i の値が各加算器に出力され
る。そのとき、その加算器の左隣にあるレジスタの下位
mビットDj−1,n−i−1(i=2・・・4)も加
算器に入力されるが、2つ左隣のレジスタの上位2ビッ
トCj−1,n−i−2 は桁上がりキャリーとして同
じ加算器に入力される。従って、加算器は2ビットのキ
ャリーを持つ4入力mビット加算器または5入力加算器
として構成され、m+2ビットの出力を返す。従って、
レジスタはm+2ビットのレジスタで構成される。 【0022】更に次のクロック(j=3)でA1 が入
力されると同様にA1・Bn−i(i=1・・・4)が
上の乗算器から上位と下位mビット毎に出力される。こ
のときR2,4 =upm(A2・B3 )+dwm 
(A3・B3 )+E1,3 が右端のレジスタから加
算器を通して出力される。以下同様に、それを受けて各
ROMからE2,n−i の値が各加算器に出力され、
その加算器の左隣にあるレジスタの下位mビットと、2
つ左隣のレジスタの上位2ビットが同じ加算器に入力さ
れる。 【0023】更に、j=4のクロックでA0 が入力さ
れたときも同様の動作を行い、その結果、各レジスタに
格納された値がRn となっていることが判る。 【0024】(実施例2)実施例1のアルゴリズム2は
乗算器からの出力をdwm (An−j・Bn−i )
とupm(An−j・Bn−i−1 )の2つの出力に
分解しているが、Bを定数として扱える場合、図2及び
アルゴリズム3に示すようにAn−j の入力を受けて
、An−j・Bの値をいくつかのROMに分割してAB
j,n−i として出力することもできる。 (アルゴリズム3) FOR  j=1  TO  n     FOR  i=0  TO  n      
  Rj,n−i =Dj−1,n−i−1 +Cj−
1,n−i−2 +ABj,n−i +Ej−1,n−
i         Dj,n−i =dwm (Rj
,n−i )        Cj,n−i =upm
 (Rj,n−i )    NEXT NEXT ただし、An−j・B=ABj−1,n・Xn +AB
j−1,n−1・Xn−1 +・・・ +ABj−1,
0  【0025】(実施例3)次に、ROMなどによる複数
ビット同士の乗算を行わず、アンド回路と加算器だけで
剰余乗算を実現させる例を説明する。 (アルゴリズム4) 【0026】 【数1】 この装置の構成例を図4に示す。この例では、An−j
 =(aj・m+m−1 ,・・・ aj・m+1 ,
aj・m )を1ビット毎独立にmビット同時に入力さ
せて、aj・m−k・B(k=0・・・m−1) を独
立にアンド回路38(1) 〜38(m) によって出
力する。このとき、aj・m−k・Bは、aj・m−k
 が0のとき0、1のときBである。この出力と、左隣
のレジスタの下位ビットと、その更に左にあるレジスタ
の上位ビットと、ROMからの出力とをm+3入力の加
算器によって加算していくことによって、剰余乗算が実
現できる。この時の各レジスタ44〜47の大きさはm
ビットの値のm+3項の和であるから、m+log2(
m+3) 以上あればよい。 【0027】また、図1〜3において、Rj,n の値
を1度レジスタにラッチさせるようにしてもよい。この
場合、Rj,n の値を1度レジスタにラッチするため
に処理に必要な1クロックの最大時間は、乗算または除
算に要する時間だけでよく、アルゴリズム2〜4の演算
を短時間毎に繰り返すことができる。対応する回路構成
を図4〜6に示す。 【0028】また、アルゴリズム1の代わりに、以下の
アルゴリズムを用いることもできる。 (アルゴリズム5) R0 =0     FOR  j=1  TO  n      
  Rj =Rj−1・X+An−j・B−Qj−1・
N・ X            =Rj−1・X+A
n−j・B+(Ej−1 −Lj−1・Xn )・ X
    NEXT IF  Rn >N  THEN  Rn =Rn −
Qn・N    ただし、Lj−1 =[Rj−1 /
Xn ]            Qj−1 =[Lj
−1・Xn+1/N],Qn =[Rn /N]   
         Lj−1・Xn+1 =(Qj−1
・N+Ej−1 )・ X    (Ej−1 <N)
ここで、Xは乗算器からの出力An−j・Bに対して剰
余Ej−1 の出力をずらすために必要であり、これに
よって図4〜5における左端のレジスタへの入力値演算
のための加算器をなくすことができる。図7〜9に、上
記アルゴリズムに対応する回路構成を示す。 【0029】また、図7〜図9の各回路の右端に更にレ
ジスタをc個追加すれば、−Qj−1・N・ Xc =
(−Lj−1・Xn+1 +Ej−1 )・ Xc と
なるので、任意に剰余出力Ej−1 をずらすことも可
能である。 【0030】以上によって入力値がmビット毎にn分割
されて入力されるときn・ mビットの乗除算回路が効
率的に実現できることが示せた。これは、na ≠n,
nb ≠n,nn ≠nの場合にも同様の回路構成で乗
除算回路が実現できることは明かである。 【0031】以上述べた実施例の回路では、Cj,n−
i によって桁上がりを一旦ホールドするために桁上が
りに関する遅延時間はなく、アルゴリズム2〜4の演算
を短時間毎に繰り返すことができる。 【0032】また、Nの最大桁であるXn−1 を超え
たRj−1の値Lj−1・Xn に対して、modNを
行うようにしているのでR>Nの判定を行わなくてよい
。また、−Qj−1・Nを実行する代わりに、−Qj−
1・N=−Lj−1・Xn +Ej−1 であるEj−
1 を加えることによって剰余演算を全て加算によって
行っている。 【0033】また、乗算を小さな桁毎に分解して実行し
たり(アルゴリズム2)、Bが定数の場合ROMによっ
て構成したり(アルゴリズム3)、乗算器を用いずアン
ドと加算器のみで乗算を実行したり(アルゴリズム4)
することによって大きな桁の乗算を行う乗算器を用いる
ことなく乗算が実行できる。従って、TTLやセルライ
ブラリなどによって小さな桁の乗算器が簡単に用いるこ
とができる場合にはアルゴルズム2、Bを定数として扱
える場合にはアルゴリズム3、ROMやセルライブラリ
の乗算器等がない場合はアルゴリズム4に対応する乗除
算回路が適している。 【0034】また、図1〜9のような同一の演算素子の
繰り返しによる構成はVLSI等の大規模回路を構成し
やすいという利点もある。 【0035】(実施例5)次に、上述の演算装置を用い
た暗号化通信の方法を説明する。通信しようとする平文
をM,暗号文をC,公開暗号鍵をe,復号鍵をd,公開
された法をNとすると、RSA暗号の暗号化と復号は次
のようなべき乗剰余演算で表される。 【0036】暗号化:C=Me mod N復号:M=
Cd mod N 従って、RSA暗号の暗号化と復号化は同様なべき乗剰
余演算回路によって実現できる。そこで、以下では暗号
化についてのみ説明する。 【0037】べき乗剰余演算:C=Me mod Nは
、単純に2数の剰余乗算を行っても実現できるが、M、
eが大きいと、その計算量は莫大なものとなる。そのた
め、本発明では、以下のアルゴリズムに従って計算を実
行する。ただし、eはkビットからなる整数であり、e
=ek,ek−1,・・・,e2,e1 で表されると
する。 【0038】   INPUT M,e,N            
                 (入力)  C=
1                        
              (初期設定)  FOR
 i=k TO 1       IF  ei=1  THEN  C=C
・ M mod N       (演算1)    
  IF  i >1  THEN  C=C・ C 
mod N     (演算2)  NEXT   従って、この場合、べき乗剰余演算は、C=C・ 
B mod N(BはMまたはC)の剰余乗算の繰り返
しによって実現される。この剰余乗算は図1のごとき回
路によって実現できる。このアルゴリズムを効率的に実
行する回路を図2に示す。101、102は各々M,e
,の値を格納するシフトレジスタであり、103、10
4は各々N,Cの値を格納するレジスタである。また、
105,106は入力を選択するセレクタスイッチ、1
07はレジスタ104のCの値をmビット毎(mは任意
の整数)に上位桁から選択しシリアルに出力するマルチ
プレクサ、108はC=C・ B mod Nの演算を
実行する剰余乗算回路である。109はei=1または
i >1を判定して演算1,2の実行を制御したり、入
力及び初期設定時にセレクタやレジスタのクリア信号や
プリセット信号などを制御するコントローラであり、カ
ウンタとROMといくつかの論理回路によって簡単に実
現できる。 【0039】次に、この回路の動作について説明する。 【0040】入力は平文Mと公開された鍵eとNである
。そこでレジスタ101〜103に、M,e,Nをシリ
アルまたはパラレルに入力する。このとき、セレクタ1
05はMを選択することでMをレジスタ101に入力す
る。それと同時に、レジスタ104にはCの値を入力す
る代わりに、レジスタのクリア信号またはプリセット信
号によってC=1となるように初期設定する。 【0041】入力及び初期設定が終了すると、演算1,
2に示した剰余乗算が開始される。ここで、演算1,2
の違いは剰余乗算C=C・ B mod Nにおいて、
BがMかCかの違いである。従って、演算1を実行する
ときは、セレクタ106はレジスタ101からのmビッ
ト毎のシリアル出力Mを選択し、演算2を実行するとき
はマルチプレクサ107からのmビット毎のシリアル出
力であるCを選択するように制御される。また、シフト
レジスタ101からのmビット毎のシリアル出力Mはセ
レクタ105を介して、再びシフトレジスタ101に入
力される。剰余乗算回路108の構成及び動作は前述の
通りである。剰余乗算回路108の出力するCをレジス
タ104にパラレル入力し、次の剰余乗算に用いること
によって演算1,2が効率的に繰り返される。 【0042】また、この装置で、M、eの代わりに、C
、dを入力することにより、暗号文の複号を行うことが
できる。 【0043】 【発明の効果】以上説明したごとく、本発明の演算装置
によれば、小さな回路規模で、高速な剰余乗算が実行で
きるという効果がある。 【0044】また、本発明演算装置は同一の演算素子の
繰り返しにより構成されるので、VLSI等による回路
化を実現しやすいという効果もある。 【0045】また、本発明によれば、暗号化通信のため
の暗号化/複号装置を小さな回路規模で実現できるとい
う効果がある。
Detailed Description of the Invention [0001] [Industrial Application Field] The present invention relates to an operation for multiplying two integers and further dividing the result by another integer to obtain a remainder;
That is, for the integers A, B, and N, A・B mod
The present invention relates to an integer arithmetic device that performs N multiplications and divisions. In particular, R
It relates to an arithmetic device that performs multiplication and division of large-digit integers suitable for encryption techniques such as SA cryptography (Shinichi Ikeno, Kenji Koyama: "Modern Cryptography Theory", Institute of Electronics, Information and Communication Engineers, 1986, Chapter 6). . [0002] The present invention also relates to an encrypted communication method that is performed by encryption using the above-mentioned arithmetic unit and is used for various communication services such as a home bank, a farm bank, and e-mail and e-mail in a computer network. [0003] Conventionally, na.m bit integers A and nb.
R= by m-bit integer B and nn・m-bit integer N
There are two main types of multiplication/division circuits for large-digit integers that perform A/B mod N operations. One is a method that divides multiplication and division into two parts: multiplication of C=A・B and remainder calculation of D=C mod N, and the other is a method that divides A into each bit and performs an-i(i =1...na・m)
For R=2・R+an−i・B mod N(i
=1...na・m) partial product operation and remainder operation are performed by na・
This method is repeated m times. [0004] The former method often takes a configuration in which the multiplication circuit and the remainder calculation circuit are pipelined, and the configuration and control are relatively simple. However, this method requires independent memory for temporarily storing the multiplication result C and circuits for multiplication and remainder calculation, making it difficult to realize a device with a small circuit scale. Furthermore, since the latter method involves a partial product operation and a remainder operation therefor, the circuit can be made relatively compact. However, there were problems such as the carry delay time for one partial product remainder calculation and how to determine R>N for executing mod N. [0006] Regarding multiplication, an
Calculation is often performed by adding B to 2・R only when −i = 1; in this case, at least na・m
There was also the problem that it required more than the clock, which slowed down the processing speed. [0007] Furthermore, when an-i is made into multiple bits, a multiplier or divider with a large number of digits is required, and there is a problem that a multiplier or divider with a large number of digits does not have a ROM or cell library. . When designing a multiplier or divider with a large number of digits yourself, if you simply extended the circuit configuration of a multiplier or divider with a small number of digits, the circuit configuration would become extremely complex and difficult to implement. As described above, the conventional system has various problems, and it has been difficult to realize an efficient multiplication/division circuit. [0009] Therefore, the present invention eliminates the above-mentioned drawbacks and
It is an object of the present invention to provide an arithmetic device that efficiently executes multiplication and division regarding large-digit integers with a small circuit scale at high speed. Means for Solving the Problems In order to achieve the above object, the present invention provides an arithmetic device that calculates the remainder obtained by dividing the product of given first and second integers by a third integer. a storage means for holding a value; a multiplication means for sequentially inputting the first integer bit by bit and multiplying the second integer by the second integer; and an input from the storage means and an input from the multiplication means. and calculating means for calculating a remainder with respect to the third integer for the portion of the value in the storage means that exceeds the maximum digit of the third integer, and outputting the result to the storage means. I can do it. [Example] (Example 1) For simplicity, na = nb =
The explanation will be made assuming that nn = n. Let us assume that three n·m-bit integers are A, B, and N, and perform the operation A·B mod N=R. Here, a multiplier that performs the multiplication a·b=c of two small m-bit integers a and b can be easily realized with a known configuration. It is clear that it can be easily constructed using a ROM as an example. When A, B, and N are each divided into n parts every m bits, it can be expressed as follows. A=An-1・Xn-1 +An-2・Xn-2+...
・ +A1・X+A0B=Bn-1・Xn-1 +Bn
-2・Xn-2+... +B1・X+B0N=Nn-
1・Xn-1 +Nn-2・Xn-2+... +N1
・X+N0 Here, let X = 2m, and the bit series divided from the upper digit every m bits for A, B, and N is each An
-i, Bn-i, Nn-i (i=1...n). In this case, A, B, and N can be regarded as polynomials,
R=A・B mod N can be expressed as follows. R=A・B−Q・N (Q=[A・B/N])
However, [Z] represents an integer not exceeding Z. [0013] Therefore, R can be determined by the following example. (Algorithm 1) R0 =0 FOR j=1 TO n
Rj = Rj-1・X+An-j・B-Qj-1・
N = Rj-1・X+An-j
・B+Ej-1 −Lj-1・Xn NEXT IF Rn >N THEN Rn =Rn −
Qn・N However, Lj−1 = [Rj−1 ・
X/Xn]=[Rj-1/Xn-1]
Qj-1 = [Lj-1・Xn /N
], Qn = [Rn /N]
Lj-1・Xn=Qj-1・N+Ej-1 (
Ej-1 <N) Algorithm 1 does not judge R>N, so if Rj-1 exceeds Xn-1, which is the maximum digit of N,
Mod N is performed on the value Lj-1.Xn of 1.X. That is, R exceeding Xn-1 bitwise
Since mod N is applied to the coefficients of , it is not necessary to determine whether R>N. Also, Lj-1・Xn mod N
Instead of executing −Qj−1・N, Lj−1・N
Xn is subtracted and its remainder Ej-1 is added. That is, Lj-1 is converted to Ej-1 and added. This allows all subtractions by mod N to be performed by additions. However, in this case, Rn only once at the end.
>N and perform the calculation Rn = Rn -Qn・N, but this is done after the iterative calculation shown above is completed, and unlike the conventional method, R
>N does not need to be determined, so it can be done in a separate circuit, etc., and the overall processing speed is not affected. [0015] Next, there is a problem that the delay time associated with the calculation of Rj is large. In order to eliminate that delay time,
In Algorithm 1, Rj is decomposed into Rj,ni and B is decomposed into Bn-i and expressed as in Algorithm 2 below. (Algorithm 2) FOR j=1 TO n FOR i=0 TO n
Rj, n-i = Dj-1, n-i-1 +Cj-
1, n-i-2 +dwm (An-j・Bn-i
) +upm(A
n-j・Bn-i-1)+Ej-1, n-i
Dj, n-i = dwm (Rj, n-i
) Cj, n-i = upm (Rj,
n-i) NEXT NEXT However, Rj-1, n・Xn =Qj-1・N+Ej-
1, Qj-1 = [Rj-1, n・Xn/N] (1
) Ej-1 = Ej-1, n-1・Xn-1 +E
j-1,n-2・Xn-2 +... +Ej-1,1
・X +Ej-1
,0
(2) D
0, n-i-1 = C0, n-i-2 = E0, n-i
=Bn =B-1=0 dwm (Z
): Value of 2m digit or less of Z upm (
Z): Means the value obtained by dividing the value of Z greater than or equal to 2m+1 by 2m+1. Basically, Algorithm 1 and Algorithm 2
are the same, but Algorithm 2 expresses the operation of the actual circuit more closely. Here, considering the case where n=4, a multiplier/divider is constructed using a circuit as shown in FIG. 1 in Algorithm 2. FIG. 1 shows m for calculating An-j·Bn-i.
*From n multipliers of m bits and the value of Rj-1,n (
1), (2), n ROMs each outputting the value of Ej-1, n-i, 4-input m-bit adder or 5-input adder n+1 with 2-bit carry, and Rj
, n-i. The lower m bits of this register are Rj,n-
The lower m digits of i (dwm (Rj, n-i) = Dj,
n-i), and the upper 2 bits are the value of m+1 or more digits of Rj, n-i (upm (Rj, n-i) = Cj
, n-i). As a result, the carry for each adder is absorbed by Cj,ni at each clock, and is added together with the lower m bits of the register on the right as a carry in the next clock. Therefore, the delay time associated with the calculation of Rj as in algorithm (1) can be eliminated. As mentioned above, Dj, n-i, Rj, n-
i, Cj, n-i represent the state of the register, the subscript j means the clock, and n-i indicates the position of the circuit from right to left in Figure 1 from i = 0 to i = n. . Therefore, in the initial state (j=0), R0,0 is as shown in Figure 1.
means the leftmost register of R0,n-1 =R0,3
means the rightmost register. However, R0,n =
R0,4 means the output from the rightmost adder. Next, the operation of FIG. 1 will be explained. In FIG. 1, the initial state of each register (R0
, n-i-1) are all 0. At this time, R0,
Since n-i-1 = 0, D0, n-i-1 = C0
, n-i-2 =0. When A3 is input at the first clock (j=1), A3·Bn-i (i=1...4) is output from each multiplier. The value is divided into upper and lower m digits, added by each adder, and stored in each register (R1, n-i: i=1...n). At this time, R1, n-i (i=1...4)
The lower m bits are stored in the register as D1, n-i, and if there is a carry, the m+1 bits or more are stored in the register as C1, n-i. When A2 is input at the next clock (j=2), A2·Bn-i (i=1...4) are similarly output from the upper multiplier for each of the upper and lower m bits. . At this time, R1,4=upm (A3·B3) is output from the rightmost register through the adder, and in response to this, the value of E1,ni is output from each ROM to each adder. At that time, the lower m bits Dj-1, n-i-1 (i=2...4) of the register to the left of the adder are also input to the adder, but The upper two bits Cj-1 and n-i-2 are input to the same adder as a carry carry. Therefore, the adder is configured as a 4-input m-bit adder or a 5-input adder with 2 bits of carry and returns an output of m+2 bits. Therefore,
The register consists of m+2 bit registers. Furthermore, when A1 is input at the next clock (j=3), A1·Bn-i (i=1...4) are output from the upper multiplier every m bits of upper and lower m bits. Ru. At this time, R2,4 = upm(A2・B3)+dwm
(A3·B3)+E1,3 is output from the rightmost register through the adder. Similarly, in response to this, the value of E2, n-i is output from each ROM to each adder,
The lower m bits of the register to the left of the adder, and 2
The upper two bits of the register to the left are input to the same adder. Furthermore, when A0 is input at the clock of j=4, the same operation is performed, and as a result, it can be seen that the value stored in each register is Rn. (Embodiment 2) Algorithm 2 of Embodiment 1 converts the output from the multiplier into dwm (An-j·Bn-i)
It is decomposed into two outputs: and upm(An-j・Bn-i-1), but if B can be treated as a constant, as shown in Figure 2 and Algorithm 3, after receiving the input of An-j, - Divide the value of j・B into several ROMs and write AB
It can also be output as j, n−i. (Algorithm 3) FOR j=1 TO n FOR i=0 TO n
Rj, n-i = Dj-1, n-i-1 +Cj-
1, n-i-2 +ABj, n-i +Ej-1, n-
i Dj, ni = dwm (Rj
, n-i) Cj, n-i = upm
(Rj, n-i) NEXT NEXT However, An-j・B=ABj-1, n・Xn +AB
j-1, n-1・Xn-1 +... +ABj-1,
(Third Embodiment) Next, an example will be described in which the multiplication of multiple bits using a ROM or the like is not performed, and the remainder multiplication is realized using only an AND circuit and an adder. (Algorithm 4) ##EQU00001## An example of the configuration of this device is shown in FIG. In this example, An-j
=(aj・m+m−1 ,... aj・m+1 ,
m bits of aj・m) are simultaneously inputted bit by bit independently, and aj・m−k・B (k=0...m−1) are independently inputted by AND circuits 38(1) to 38(m). Output. At this time, aj・m−k・B is aj・m−k
When is 0, it is 0, and when it is 1, it is B. Modulo multiplication can be realized by adding this output, the lower bits of the register on the left, the upper bits of the register further to the left, and the output from the ROM using an adder with m+3 inputs. At this time, the size of each register 44 to 47 is m
Since it is the sum of m+3 terms of bit values, m+log2(
m+3) or more is sufficient. Furthermore, in FIGS. 1 to 3, the value of Rj,n may be latched once in a register. In this case, the maximum processing time of one clock required to latch the value of Rj,n in the register once is only the time required for multiplication or division, and the operations of Algorithms 2 to 4 are repeated at short intervals. be able to. Corresponding circuit configurations are shown in FIGS. 4-6. Furthermore, instead of Algorithm 1, the following algorithm can also be used. (Algorithm 5) R0 = 0 FOR j = 1 TO n
Rj = Rj-1・X+An-j・B-Qj-1・
N・X=Rj−1・X+A
n-j・B+(Ej-1 −Lj-1・Xn)・X
NEXT IF Rn >N THEN Rn =Rn −
Qn・N However, Lj-1 = [Rj-1 /
Xn ] Qj−1 = [Lj
-1・Xn+1/N], Qn = [Rn /N]
Lj-1・Xn+1 = (Qj-1
・N+Ej-1 )・X (Ej-1 <N)
Here, X is necessary to shift the output of the remainder Ej-1 with respect to the output An-j·B from the multiplier, and thereby The adder can be eliminated. 7 to 9 show circuit configurations corresponding to the above algorithm. Furthermore, if c registers are added to the right end of each circuit in FIGS. 7 to 9, -Qj-1·N·Xc =
(-Lj-1.Xn+1 +Ej-1).Xc, so it is also possible to shift the remainder output Ej-1 arbitrarily. As described above, it has been shown that an n·m bit multiplication/division circuit can be efficiently realized when an input value is input after being divided into n parts every m bits. This means that na ≠ n,
It is clear that a multiplication/division circuit can be realized with a similar circuit configuration also in the case of nb≠n and nn≠n. In the circuit of the embodiment described above, Cj,n-
Since the carry is once held by i, there is no delay time related to the carry, and the operations of Algorithms 2 to 4 can be repeated at short intervals. Furthermore, since mod N is performed for the value Lj-1·Xn of Rj-1 that exceeds Xn-1, which is the maximum digit of N, it is not necessary to determine whether R>N. Also, instead of executing -Qj-1・N, -Qj-
Ej- where 1.N=-Lj-1.Xn +Ej-1
By adding 1, all remainder operations are performed by addition. In addition, multiplication can be performed by decomposing it into small digits (algorithm 2), if B is a constant, it can be constructed from ROM (algorithm 3), or multiplication can be performed using only an AND and an adder without using a multiplier. (Algorithm 4)
By doing so, multiplication can be performed without using a multiplier that performs multiplication of large digits. Therefore, if a small digit multiplier can be easily used due to TTL or a cell library, algorithm 2, if B can be treated as a constant, algorithm 3, and if there is no ROM or cell library multiplier, algorithm A multiplication/division circuit corresponding to 4 is suitable. [0034] Furthermore, the configuration in which the same arithmetic elements are repeated as shown in FIGS. 1 to 9 has the advantage that it is easy to configure a large-scale circuit such as a VLSI. (Embodiment 5) Next, a method of encrypted communication using the above-mentioned arithmetic device will be explained. Assuming that the plaintext to be communicated is M, the ciphertext is C, the public encryption key is e, the decryption key is d, and the published modulus is N, the encryption and decryption of RSA encryption is expressed by the following exponentiation and remainder operation. be done. Encryption: C=Me mod N Decryption: M=
Cd mod N Therefore, encryption and decryption of the RSA encryption can be realized by a similar modular exponentiation calculation circuit. Therefore, only encryption will be explained below. Power remainder operation: C=Me mod N can be realized by simply performing remainder multiplication of two numbers, but M,
When e is large, the amount of calculation becomes enormous. Therefore, in the present invention, calculations are performed according to the following algorithm. However, e is an integer consisting of k bits, and e
=ek, ek-1,..., e2, e1. INPUT M,e,N
(input) C=
1
(Initial setting) FOR
i=k TO 1 IF ei=1 THEN C=C
・M mod N (operation 1)
IF i > 1 THEN C=C・C
mod N (operation 2) NEXT Therefore, in this case, the exponentiation remainder operation is C=C・
This is realized by repeating modular multiplication of B mod N (B is M or C). This remainder multiplication can be realized by a circuit as shown in FIG. A circuit that efficiently executes this algorithm is shown in FIG. 101 and 102 are M and e, respectively.
, is a shift register that stores the values of 103, 10
4 is a register that stores the values of N and C, respectively. Also,
105 and 106 are selector switches for selecting input;
07 is a multiplexer that selects the value of C in the register 104 every m bits (m is an arbitrary integer) from the upper digit and outputs it serially, and 108 is a remainder multiplication circuit that executes the operation of C=C・B mod N. . 109 is a controller that determines whether ei = 1 or i > 1 and controls the execution of calculations 1 and 2, and controls clear signals and preset signals of selectors and registers during input and initial setting, and controls the counter and ROM. This can be easily realized using some logic circuits. Next, the operation of this circuit will be explained. The inputs are plaintext M and public keys e and N. Therefore, M, e, and N are input to registers 101 to 103 serially or in parallel. At this time, selector 1
05 inputs M into the register 101 by selecting M. At the same time, instead of inputting the value of C to the register 104, it is initialized so that C=1 by a register clear signal or a preset signal. [0041] When the input and initial settings are completed, calculation 1,
The remainder multiplication shown in 2 is started. Here, operations 1 and 2
The difference is in the remainder multiplication C=C・B mod N,
The difference is whether B is M or C. Therefore, when executing operation 1, selector 106 selects serial output M for every m bits from register 101, and when executing operation 2, selects C, which is serial output for every m bits from multiplexer 107. controlled to do so. Further, the serial output M of every m bits from the shift register 101 is inputted to the shift register 101 again via the selector 105. The configuration and operation of the remainder multiplication circuit 108 are as described above. By inputting C output from the remainder multiplication circuit 108 in parallel to the register 104 and using it for the next remainder multiplication, operations 1 and 2 are efficiently repeated. In addition, in this device, instead of M and e, C
, d, the ciphertext can be decrypted. [0043] As explained above, the arithmetic device of the present invention has the advantage of being able to execute modular multiplication at high speed with a small circuit scale. Furthermore, since the arithmetic device of the present invention is constructed by repeating the same arithmetic elements, it has the advantage that it is easy to realize circuitization using VLSI or the like. Further, according to the present invention, there is an effect that an encryption/decryption device for encrypted communication can be realized with a small circuit scale.

【図面の簡単な説明】[Brief explanation of the drawing]

【図1】本発明演算装置の回路構成例を示す図である。FIG. 1 is a diagram showing an example of a circuit configuration of an arithmetic device of the present invention.

【図2】本発明演算装置の回路構成例を示す図である。FIG. 2 is a diagram showing an example of the circuit configuration of the arithmetic device of the present invention.

【図3】本発明演算装置の回路構成例を示す図である。FIG. 3 is a diagram showing an example of the circuit configuration of the arithmetic device of the present invention.

【図4】本発明演算装置の回路構成例を示す図である。FIG. 4 is a diagram showing an example of the circuit configuration of the arithmetic device of the present invention.

【図5】本発明演算装置の回路構成例を示す図である。FIG. 5 is a diagram showing an example of the circuit configuration of the arithmetic device of the present invention.

【図6】本発明演算装置の回路構成例を示す図である。FIG. 6 is a diagram showing an example of the circuit configuration of the arithmetic device of the present invention.

【図7】本発明演算装置の回路構成例を示す図である。FIG. 7 is a diagram showing an example of a circuit configuration of an arithmetic device of the present invention.

【図8】本発明演算装置の回路構成例を示す図である。FIG. 8 is a diagram showing an example of the circuit configuration of the arithmetic device of the present invention.

【図9】本発明演算装置の回路構成例を示す図である。FIG. 9 is a diagram showing an example of the circuit configuration of the arithmetic device of the present invention.

【図10】暗号化・複号装置の構成例を示す図である。FIG. 10 is a diagram showing a configuration example of an encryption/decryption device.

【符号の説明】[Explanation of symbols]

11〜14  乗算器 15〜18  ROM 19〜23  加算器 24〜27  レジスタ 28〜32  ROM 33〜37  加算器 38(1) 〜38(m) アンド回路39〜43  
加算器 44〜50  レジスタ 101,102  シフトレジスタ 103,104  レジスタ 105〜106  セレクタ 107  マルチプレクサ 108  剰余乗算回路
11-14 Multipliers 15-18 ROM 19-23 Adders 24-27 Registers 28-32 ROM 33-37 Adder 38(1)-38(m) AND circuits 39-43
Adders 44-50 Registers 101, 102 Shift registers 103, 104 Registers 105-106 Selector 107 Multiplexer 108 Remainder multiplication circuit

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】  与えられた第1、第2の整数の積を第
3の整数で除算した剰余を演算する演算装置であって、
値を保持する記憶手段と、前記第1の整数を所定のビッ
トずつ順次入力して前記第2の整数に乗じる乗算手段と
、前記記憶手段からの入力と、前記乗算手段からの入力
とを加算し、前記記憶手段の値において前記第3の整数
の最大桁を越える部分につき、前記第3の整数に対する
剰余を求める演算を施し、その結果を前記記憶手段に出
力する演算手段とを有することを特徴とする演算装置。
1. An arithmetic device that calculates a remainder when a product of given first and second integers is divided by a third integer,
a storage means for holding a value; a multiplication means for sequentially inputting the first integer bit by bit and multiplying the second integer by the second integer; and adding the input from the storage means and the input from the multiplication means. and calculating means for calculating a remainder with respect to the third integer for a portion of the value in the storage means that exceeds the maximum digit of the third integer, and outputting the result to the storage means. Characteristic computing device.
【請求項2】  前記演算手段において、前記剰余を求
める演算を施すために、前記記憶手段の値において前記
第3の整数の最大桁を越える部分につき、当該部分に代
わり、前記剰余を加えることを特徴とする請求項1記載
の演算装置。
2. In the calculation means, in order to perform the calculation for the remainder, the remainder is added in place of the portion of the value in the storage means that exceeds the maximum digit of the third integer. The arithmetic device according to claim 1, characterized in that:
【請求項3】  前記記憶手段は複数個のレジスタを有
し、前記演算手段は、それぞれが所定の桁部分同士を加
算する複数個の加算器を含み、当該レジスタは、保持し
ている値の上位桁部分と下位桁部分とを異なる加算器に
出力することを特徴とする請求項1記載の演算装置。
3. The storage means has a plurality of registers, the calculation means includes a plurality of adders each adding predetermined digit parts, and the register has a plurality of registers, each of which adds a predetermined digit part. 2. The arithmetic device according to claim 1, wherein the upper digit part and the lower digit part are output to different adders.
【請求項4】  前記乗算手段は、前記所定のビット数
同士の乗算を行なう複数の乗算器を含み、当該各乗算器
は、乗算結果の上位桁部分と下位桁部分とを異なる加算
器に出力することを特徴とする請求項3記載の演算装置
4. The multiplication means includes a plurality of multipliers that perform multiplication between the predetermined number of bits, and each multiplier outputs an upper digit part and a lower digit part of the multiplication result to a different adder. The arithmetic device according to claim 3, characterized in that:
【請求項5】  前記乗算手段は、前記所定のビット数
ずつ入力された第1の整数の各ビットと第2の整数との
積を出力する論理回路を有することを特徴とする請求項
1記載の演算装置。
5. The multiplication means includes a logic circuit that outputs the product of each bit of the first integer inputted in units of the predetermined number of bits and the second integer. computing device.
【請求項6】送信すべき情報Mに対して、与えられた整
数e、Nから暗号C=Me mod Nを求めて、暗号
Cを送信する暗号化通信方法において、暗号化装置に、
与えられた第1、第2の整数の積を第3の整数で除算し
た剰余を演算する演算装置であって、値を保持する記憶
手段と、前記第1の整数を所定のビットずつ順次入力し
て前記第2の整数に乗じる乗算手段と、前記記憶手段か
らの入力と、前記乗算手段からの入力とを加算し、前記
記憶手段の値において前記第3の整数の最大桁を越える
部分につき、前記第3の整数に対する剰余を求める演算
を施し、その結果を前記記憶手段に出力する演算手段と
を有する演算装置を設けたことを特徴とする暗号化通信
方法。
6. An encrypted communication method in which a cipher C=Me mod N is determined from given integers e and N for information M to be transmitted, and the cipher C is transmitted, the encryption device comprising:
An arithmetic device that calculates a remainder when a product of given first and second integers is divided by a third integer, the device comprising: a storage means for holding a value; and a predetermined bit of the first integer that is sequentially inputted. a multiplication means for multiplying the second integer by adding the input from the storage means and the input from the multiplication means, and for the part of the value in the storage means that exceeds the maximum digit of the third integer; , and arithmetic means for performing an arithmetic operation to obtain a remainder with respect to the third integer and outputting the result to the storage means.
【請求項7】受信した暗号Cに対して、与えられた整数
d、Nから情報M=Cd mod Nを求めて、暗号C
を情報Mに複号する暗号化通信方法において、複号装置
に、与えられた第1、第2の整数の積を第3の整数で除
算した剰余を演算する演算装置であって、値を保持する
記憶手段と、前記第1の整数を所定のビットずつ順次入
力して前記第2の整数に乗じる乗算手段と、前記記憶手
段からの入力と、前記乗算手段からの入力とを加算し、
前記記憶手段の値において前記第3の整数の最大桁を越
える部分につき、前記第3の整数に対する剰余を求める
演算を施し、その結果を前記記憶手段に出力する演算手
段とを有する演算装置を設けたことを特徴とする暗号化
通信方法。
Claim 7: For the received cipher C, obtain information M=Cd mod N from given integers d and N, and calculate the cipher C.
In an encrypted communication method for decoding information M into information M, the decoding device is provided with an arithmetic device that calculates a remainder when the product of given first and second integers is divided by a third integer, a storage means for holding; a multiplication means for sequentially inputting the first integer bit by bit and multiplying the second integer; and adding the input from the storage means and the input from the multiplication means;
and an arithmetic device for calculating a remainder with respect to the third integer for a portion of the value in the storage means that exceeds the maximum digit of the third integer, and outputting the result to the storage means. An encrypted communication method characterized by:
JP3040115A 1991-03-05 1991-03-06 Arithmetic unit and ciphered communication method using the same Pending JPH04277789A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP3040115A JPH04277789A (en) 1991-03-06 1991-03-06 Arithmetic unit and ciphered communication method using the same
EP92301856A EP0502712B1 (en) 1991-03-05 1992-03-04 Calculating apparatus and method of encrypting/decrypting communication data by using the same
US07/847,672 US5313530A (en) 1991-03-05 1992-03-04 Calculating apparatus and method of encrypting/decrypting communication data by using the same
AT92301856T ATE193606T1 (en) 1991-03-05 1992-03-04 COMPUTING DEVICE AND METHOD FOR ENCRYPTING/DECRYPTING COMMUNICATIONS DATA USING THE SAME
DE69231110T DE69231110T2 (en) 1991-03-05 1992-03-04 Computing device and method for encrypting / decrypting communication data using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3040115A JPH04277789A (en) 1991-03-06 1991-03-06 Arithmetic unit and ciphered communication method using the same

Publications (1)

Publication Number Publication Date
JPH04277789A true JPH04277789A (en) 1992-10-02

Family

ID=12571846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3040115A Pending JPH04277789A (en) 1991-03-05 1991-03-06 Arithmetic unit and ciphered communication method using the same

Country Status (1)

Country Link
JP (1) JPH04277789A (en)

Similar Documents

Publication Publication Date Title
KR100267009B1 (en) Method and device for modular multiplication
Okada et al. Implementation of Elliptic Curve Cryptographic Coprocessor over GF (2 m) on an FPGA
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
US5121429A (en) Digital signal processing
KR100442218B1 (en) Power-residue calculating unit using montgomery algorithm
JP3532860B2 (en) Arithmetic device, method, and program using remainder representation
JP3302043B2 (en) Encryption communication method and system
JP2004258141A (en) Arithmetic unit for multiple length arithmetic of montgomery multiplication residues
JP3406914B2 (en) Arithmetic device, encryption device and decryption device provided with the same
JP2001051832A (en) Multiplication residue arithmetic method and multiplication residue circuit
US20060161610A1 (en) Device and method for generating a sequence of numbers
JP4182226B2 (en) Remainder calculation method, apparatus and program
Lu et al. A programmable VLSI architecture for computing multiplication and polynomial evaluation modulo a positive integer
KR100413947B1 (en) RSA cipher device using modular exponentiation algorithm
JPH04277789A (en) Arithmetic unit and ciphered communication method using the same
Wang et al. A novel fast modular multiplier architecture for 8,192-bit RSA cryposystem
JP3323516B2 (en) Arithmetic device, encryption device and decryption device provided with the same
JPH0916379A (en) Communication method and equipment therefor
US7403965B2 (en) Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication
JP3129525B2 (en) Multiplication circuit over integers
JP3210420B2 (en) Multiplication circuit over integers
Nadjia et al. Montgomery modular exponentiation on FPGA
KR100858559B1 (en) Method for adding and multipying redundant binary and Apparatus for adding and multipying redundant binary
Shirase et al. An architecture for elliptic curve cryptograph computation
CN115712408A (en) Coprocessor for accelerating public key cryptographic algorithm