JPH04277789A - 演算装置及びこれを用いた暗号化通信方法 - Google Patents

演算装置及びこれを用いた暗号化通信方法

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
English (en)
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/ja
Priority to AT92301856T priority patent/ATE193606T1/de
Priority to DE69231110T priority patent/DE69231110T2/de
Priority to EP92301856A priority patent/EP0502712B1/en
Priority to US07/847,672 priority patent/US5313530A/en
Publication of JPH04277789A publication Critical patent/JPH04277789A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

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

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】また、本発明によれば、暗号化通信のため
の暗号化/複号装置を小さな回路規模で実現できるとい
う効果がある。
【図面の簡単な説明】
【図1】本発明演算装置の回路構成例を示す図である。
【図2】本発明演算装置の回路構成例を示す図である。
【図3】本発明演算装置の回路構成例を示す図である。
【図4】本発明演算装置の回路構成例を示す図である。
【図5】本発明演算装置の回路構成例を示す図である。
【図6】本発明演算装置の回路構成例を示す図である。
【図7】本発明演算装置の回路構成例を示す図である。
【図8】本発明演算装置の回路構成例を示す図である。
【図9】本発明演算装置の回路構成例を示す図である。
【図10】暗号化・複号装置の構成例を示す図である。
【符号の説明】
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  剰余乗算回路

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】  与えられた第1、第2の整数の積を第
    3の整数で除算した剰余を演算する演算装置であって、
    値を保持する記憶手段と、前記第1の整数を所定のビッ
    トずつ順次入力して前記第2の整数に乗じる乗算手段と
    、前記記憶手段からの入力と、前記乗算手段からの入力
    とを加算し、前記記憶手段の値において前記第3の整数
    の最大桁を越える部分につき、前記第3の整数に対する
    剰余を求める演算を施し、その結果を前記記憶手段に出
    力する演算手段とを有することを特徴とする演算装置。
  2. 【請求項2】  前記演算手段において、前記剰余を求
    める演算を施すために、前記記憶手段の値において前記
    第3の整数の最大桁を越える部分につき、当該部分に代
    わり、前記剰余を加えることを特徴とする請求項1記載
    の演算装置。
  3. 【請求項3】  前記記憶手段は複数個のレジスタを有
    し、前記演算手段は、それぞれが所定の桁部分同士を加
    算する複数個の加算器を含み、当該レジスタは、保持し
    ている値の上位桁部分と下位桁部分とを異なる加算器に
    出力することを特徴とする請求項1記載の演算装置。
  4. 【請求項4】  前記乗算手段は、前記所定のビット数
    同士の乗算を行なう複数の乗算器を含み、当該各乗算器
    は、乗算結果の上位桁部分と下位桁部分とを異なる加算
    器に出力することを特徴とする請求項3記載の演算装置
    。
  5. 【請求項5】  前記乗算手段は、前記所定のビット数
    ずつ入力された第1の整数の各ビットと第2の整数との
    積を出力する論理回路を有することを特徴とする請求項
    1記載の演算装置。
  6. 【請求項6】送信すべき情報Mに対して、与えられた整
    数e、Nから暗号C=Me mod Nを求めて、暗号
    Cを送信する暗号化通信方法において、暗号化装置に、
    与えられた第1、第2の整数の積を第3の整数で除算し
    た剰余を演算する演算装置であって、値を保持する記憶
    手段と、前記第1の整数を所定のビットずつ順次入力し
    て前記第2の整数に乗じる乗算手段と、前記記憶手段か
    らの入力と、前記乗算手段からの入力とを加算し、前記
    記憶手段の値において前記第3の整数の最大桁を越える
    部分につき、前記第3の整数に対する剰余を求める演算
    を施し、その結果を前記記憶手段に出力する演算手段と
    を有する演算装置を設けたことを特徴とする暗号化通信
    方法。
  7. 【請求項7】受信した暗号Cに対して、与えられた整数
    d、Nから情報M=Cd mod Nを求めて、暗号C
    を情報Mに複号する暗号化通信方法において、複号装置
    に、与えられた第1、第2の整数の積を第3の整数で除
    算した剰余を演算する演算装置であって、値を保持する
    記憶手段と、前記第1の整数を所定のビットずつ順次入
    力して前記第2の整数に乗じる乗算手段と、前記記憶手
    段からの入力と、前記乗算手段からの入力とを加算し、
    前記記憶手段の値において前記第3の整数の最大桁を越
    える部分につき、前記第3の整数に対する剰余を求める
    演算を施し、その結果を前記記憶手段に出力する演算手
    段とを有する演算装置を設けたことを特徴とする暗号化
    通信方法。
JP3040115A 1991-03-05 1991-03-06 演算装置及びこれを用いた暗号化通信方法 Pending JPH04277789A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP3040115A JPH04277789A (ja) 1991-03-06 1991-03-06 演算装置及びこれを用いた暗号化通信方法
AT92301856T ATE193606T1 (de) 1991-03-05 1992-03-04 Rechengerät und verfahren zum verschlüsseln/entschlüsseln von kommunikationsdaten unter verwendung desselben
DE69231110T DE69231110T2 (de) 1991-03-05 1992-03-04 Rechengerät und Verfahren zum Verschlüsseln/Entschlüsseln von Kommunikationsdaten unter Verwendung desselben
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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3040115A JPH04277789A (ja) 1991-03-06 1991-03-06 演算装置及びこれを用いた暗号化通信方法

Publications (1)

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

Family

ID=12571846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3040115A Pending JPH04277789A (ja) 1991-03-05 1991-03-06 演算装置及びこれを用いた暗号化通信方法

Country Status (1)

Country Link
JP (1) JPH04277789A (ja)

Similar Documents

Publication Publication Date Title
KR100267009B1 (ko) 고속 암호화 처리를 위한 어레이 구조를 가지는 모듈러 곱셈장치
US5764554A (en) Method for the implementation of modular reduction according to the Montgomery method
Okada et al. Implementation of elliptic curve cryptographic coprocessor over GF (2m) on an FPGA
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
US5313530A (en) Calculating apparatus and method of encrypting/decrypting communication data by using the same
US5121429A (en) Digital signal processing
US6061706A (en) Systolic linear-array modular multiplier with pipeline processing elements
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
JP3532860B2 (ja) 剰余系表現を利用した演算装置及び方法及びプログラム
JP3302043B2 (ja) 暗号通信方法及びそのシステム
JP2004258141A (ja) モンゴメリ乗算剰余の多倍長演算のための演算装置
JP3406914B2 (ja) 演算装置及びこれを備えた暗号化装置、復号装置
EP1504335A2 (en) Fast multiplication circuits
US5999953A (en) Method for the production of a parameter Jo associated with the implementation of a modular operation according to the Montgomery method
JP3323516B2 (ja) 演算装置及びこれを備えた暗号化装置、復号装置
JP3210420B2 (ja) 整数上の乗算回路
US7403965B2 (en) Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication
US20060161610A1 (en) Device and method for generating a sequence of numbers
JP3129525B2 (ja) 整数上の乗算回路
JPH0916379A (ja) 通信方法とその装置
US6275837B1 (en) Method for the implementation of an elementary modular operation according to the Montgomery method
US20040081317A1 (en) Encryption circuit achieving higher operation speed
KR100858559B1 (ko) 잉여 이진수의 덧셈 방법, 잉여 이진수의 곱셈 방법, 잉여이진수 덧셈기 및 잉여 이진수 곱셈기
JP3129526B2 (ja) 整数上の乗算回路
Ku et al. Design of new AB 2 multiplier over GF (2 m) using cellular automata