JPH0916379A - 通信方法とその装置 - Google Patents

通信方法とその装置

Info

Publication number
JPH0916379A
JPH0916379A JP7165805A JP16580595A JPH0916379A JP H0916379 A JPH0916379 A JP H0916379A JP 7165805 A JP7165805 A JP 7165805A JP 16580595 A JP16580595 A JP 16580595A JP H0916379 A JPH0916379 A JP H0916379A
Authority
JP
Japan
Prior art keywords
calculation
format
predetermined
sequence
bits
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.)
Withdrawn
Application number
JP7165805A
Other languages
English (en)
Inventor
Keiichi Iwamura
恵市 岩村
Takahisa Yamamoto
貴久 山本
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 JP7165805A priority Critical patent/JPH0916379A/ja
Publication of JPH0916379A publication Critical patent/JPH0916379A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 高速に誤り訂正符号処理や暗号処理を行うこ
とができる通信方法とその装置を提供する。 【構成】 CPU1121は、通信装置1120全体の
制御を行う。暗号部1127は、RAM1123に格納
されている通信データの暗号処理を行い符号データを出
力する。復号部1126は、外部の通信装置から伝送さ
れた暗号データを復号し、RAM1123へ格納させ
る。復号部1126は、入力した暗号データの復号化処
理で「A・B+M・N」或いは、「A・B mod N」の
演算を行う時は、剰余演算回路200に演算要求を出し
て実行させる。そして、剰余演算回路200は、その演
算結果を復号部1126へ出力する。また、暗号部11
27で通信データの暗号化処理を行う際等で、必要とな
る疑似乱数生成処理は基本的に剰余演算であり、剰余演
算回路200に演算要求を出して実行させる。剰余演算
回路200は、その演算結果を暗号部1127へ出力す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディジタル通信システ
ムやデジタル記憶システム、特に、ディジタル通信シス
テムやデジタル記憶システムにおける誤り訂正符号処理
や暗号処理方法とその装置に関する。
【0002】
【従来の技術】近年、コンピュータネットワークを用い
た情報通信システムの急速な進展とともに、データ内容
の保護を目的とする暗号技術の重要性が高まっている。
【0003】なかでも、暗号通信等に用いる乱数列はあ
る時点までに発生された乱数列のみからその時点以後に
発生されるべき乱数列が容易にわからないことが必要で
ある。1983年にプレナム・プレス(PLENUM PRESS)が
発行したアドバンセズ・イン・クリプトロジー(ADOVANC
ES IN CRYPTOLOGY,61〜78頁)には、この条件を満たす
乱数列が掲載されている。即ち、乱数列を{b1,b2
…}とすると、ビットbi は、以下の漸化式を計算する
ことで生成される。 bi=「xiの最下位ビット」(i=1、2、・・・) xi=xi-1 2 mod n (i=1、2、・・・) (式1) x0: 任意の初期整数 ここで、 n=p・q p、q: 素数 で与えられる。しかし、nを因数分解するのと同じ手間
をかければ、b1 ,b2,…,bi のみからbi+1 を求
められることが前記文献に示されている。よって、因数
分解を困難にするためには、nを数百ビットの長さにす
る必要があり、このとき「x2 mod n」の計算に時
間がかかるという問題点がある。
【0004】また、電子情報通信学会発行の「現代暗号
理論」(池野信一,小山謙二著)の第6章に示されてい
るRSA(Rivest-Shamir-Adleman)暗号化処理は、平文
をm、暗号文をc、公開鍵をeとnとすると、次式で示
される演算、即ち、 c=me mod n (i=1、2、・・・) (式2) ここで、 n=p・q p、q: 素数 を行うことによって実現される。このRSA暗号もその
安全性の根拠をnを因数分解することの困難さにおいて
おり、やはり因数分解を困難にするためにnを数百ビッ
トの長さにする必要があり、「me mod n」のべき乗剰
余の計算に時間がかかる問題がある。
【0005】この問題に対して、n=p・q(p、q:
素数)であることを利用して中国人の剰余定理を用いる
次のような方法が知られている。以下、上述の乱数列生
成方法と、RSA暗号化処理にそれぞれ対応する方法例
を示す。
【0006】[中国人の剰余定理を用いた乱数生成処
理] xi=a・p・zi+b・q・yi (式3) ここで、 yi=yi-1 2 mod p (式4) zi=zi-1 2 mod q (式5) y0,z0: 任意の初期整数 a・p+b・q=1 尚、ここで、演算子「+」は、整数加算を意味する。
【0007】次に、RSA暗号化処理方法を示す。 [中国人の剰余定理を用いたRSA暗号化処理] c=a・p・c2+b・q・c1 (式6) ここで、 c1=m1e1 mod p (式7) c2=m2e2 mod q (式8) e1=e mod p-1 e2=e mod q-1 m1=m mod p m2=m mod q a・p+b・q=1 尚、ここで、演算子「+」は、整数加算を意味する。
【0008】中国人の剰余定理は例えば、昭晃堂発行
「符号理論」,岩垂,今井)で説明されている。(式
4),(式5),(式7),(式8)は全てnの半分の
ビット数程度であるmax(p,q)以下の数の四則演
算で実行できるので、n以下の数の四則演算によって実
行される式(1),式(2)の演算より速く実行でき
る。尚、中国人の剰余定理を用いた演算は上述の例だけ
でなく、その他の様々な符号や暗号(鍵共有方式や零知
識証明等も含む)に対しても用いることができる。
【0009】
【発明が解決しようとする課題】しかし、暗号化処理が
必要な通信システム等においては、その暗号自体の安全
性の確保するために、nは数百ビットの整数であること
が必須である。そのため、その約半分のビット数であっ
ても十分に大きな整数を対象とした演算が必要で、通信
装置において、暗号化/復号化処理部分に多大な処理時
間を要していた。特に、(式3),(式6)の中国人の
剰余定理に関する演算をさらに高速かつ効率的に実行す
る方法の開発が望まれていた。
【0010】本発明は上記従来例に鑑みてなされたもの
で、ディジタル通信システムやデジタル記憶システム等
における誤り訂正符号処理や暗号処理を高速に行う誤り
訂正符号処理や暗号処理方法とその装置を提供すること
を目的とする。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、本発明の通信方法とその装置は以下の構成を備え
る。即ち、初期値U0を所定の初期値Y0とした時、次形
式の漸化式: Ui=(Ui-1・Ui-1+Wi-1・C)/R; (i=0,1,2,...,n
-1)と、 Wi-1=Ui-1・Ui-1・D mod R;(i=0,1,2,...,n-1) から得られる系列のUi(i=0,1,2,...,n-1)をYi(i=0,1,
2,...,n-1)とし、初期値U0を所定の初期値Z0とした
時、前記形式の漸化式から得られる系列Ui(i=0,1,
2,...,n-1)をZi(i=0,1,2,...,n-1)とし、疑似乱数列X
i(i=0,1,2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,
n-1)形式の演算に基づいて生成する疑似乱数生成手段
と、前記疑似乱数生成手段で生成された疑似乱数に基づ
いて、平文から暗号文を生成する暗号生成手段と、前記
暗号文を出力する出力手段とを備える。
【0012】また、別の発明は、平文から、暗号文列X
i(i=0,1,2,...,n-1)を生成する通信装置であって、初期
値U0を所定の初期値Y0とし、Ei(i=0,1,2,...,n-1)を
所定の系列とした時、次形式の漸化式: Ui=(Ui-1・Ei-1+Wi-1・C)/R; (i=0,1,2,...,n
-1)と、 Wi-1=Ui-1・Ei-1・D mod R;(i=0,1,2,...,n-1) から得られる系列Ui(i=0,1,2,...,n-1)をYi(i=0,1,
2,...,n-1)とし、前記U0を任意の初期値Z0とした時、
前記形式の漸化式から得られる系列Ui(i=0,1,2,...,n-
1)をZi(i=0,1,2,...,n-1)とし、暗号文列Xi(i=0,1,
2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,n-1)形式
の演算に基づいて生成する暗号生成手段と、前記暗号文
列を出力する出力手段とを備える。
【0013】また、別の発明は、初期値U0を所定の初
期値Y0とした時、次形式の漸化式: Ui=(Ui-1・Ui-1+Wi-1・C)/R; (i=0,1,2,...,n
-1)と、 Wi-1=Ui-1・Ui-1・D mod R;(i=0,1,2,...,n-1) から得られる系列のUi(i=0,1,2,...,n-1)をYi(i=0,1,
2,...,n-1)とし、初期値U0を所定の初期値Z0とした
時、前記形式の漸化式から得られる系列Ui(i=0,1,
2,...,n-1)をZi(i=0,1,2,...,n-1)とし、疑似乱数列X
i(i=0,1,2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,
n-1)形式の演算に基づいて生成する疑似乱数生成工程
と、前記疑似乱数生成工程で生成された疑似乱数に基づ
いて、平文から暗号文を生成する暗号生成工程と、前記
暗号文を出力する出力工程とを備える。
【0014】また、別の発明は、平文から、暗号文列X
i(i=0,1,2,...,n-1)を生成する通信方法であって、初期
値U0を所定の初期値Y0とし、Ei(i=0,1,2,...,n-1)を
所定の系列とした時、次形式の漸化式: Ui=(Ui-1・Ei-1+Wi-1・C)/R; (i=0,1,2,...,n
-1)と、 Wi-1=Ui-1・Ei-1・D mod R;(i=0,1,2,...,n-1) から得られる系列Ui(i=0,1,2,...,n-1)をYi(i=0,1,
2,...,n-1)とし、前記U0を任意の初期値Z0とした時、
前記形式の漸化式から得られる系列Ui(i=0,1,2,...,n-
1)をZi(i=0,1,2,...,n-1)とし、暗号文列Xi(i=0,1,
2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,n-1)形式
の演算に基づいて生成する暗号生成工程と、前記暗号文
列を出力する出力工程とを備える。
【0015】
【作用】以上の構成において、疑似乱数生成手段が、初
期値U0を所定の初期値Y0とした時、次形式の漸化式: Ui=(Ui-1・Ui-1+Wi-1・C)/R; (i=0,1,2,...,n
-1)と、 Wi-1=Ui-1・Ui-1・D mod R;(i=0,1,2,...,n-1) から得られる系列のUi(i=0,1,2,...,n-1)をYi(i=0,1,
2,...,n-1)とし、初期値U0を所定の初期値Z0とした
時、前記形式の漸化式から得られる系列Ui(i=0,1,
2,...,n-1)をZi(i=0,1,2,...,n-1)とし、疑似乱数列X
i(i=0,1,2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,
n-1)形式の演算に基づいて生成し、暗号生成手段が、前
記疑似乱数生成手段で生成された疑似乱数に基づいて、
平文から暗号文を生成し、出力手段が、前記暗号文を出
力する。
【0016】また、別の発明は、平文から、暗号文列X
i(i=0,1,2,...,n-1)を生成する通信装置であって、暗号
生成手段が、初期値U0を所定の初期値Y0とし、Ei(i=
0,1,2,...,n-1)を所定の系列とした時、次形式の漸化
式: Ui=(Ui-1・Ei-1+Wi-1・C)/R; (i=0,1,2,...,n
-1)と、 Wi-1=Ui-1・Ei-1・D mod R;(i=0,1,2,...,n-1) から得られる系列Ui(i=0,1,2,...,n-1)をYi(i=0,1,
2,...,n-1)とし、前記U0を任意の初期値Z0とした時、
前記形式の漸化式から得られる系列Ui(i=0,1,2,...,n-
1)をZi(i=0,1,2,...,n-1)とし、暗号文列Xi(i=0,1,
2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,n-1)形式
の演算に基づいて生成し、出力手段が、前記暗号文列を
出力する。
【0017】また、別の発明は、初期値U0を所定の初
期値Y0とした時、次形式の漸化式: Ui=(Ui-1・Ui-1+Wi-1・C)/R; (i=0,1,2,...,n
-1)と、 Wi-1=Ui-1・Ui-1・D mod R;(i=0,1,2,...,n-1) から得られる系列のUi(i=0,1,2,...,n-1)をYi(i=0,1,
2,...,n-1)とし、初期値U0を所定の初期値Z0とした
時、前記形式の漸化式から得られる系列Ui(i=0,1,
2,...,n-1)をZi(i=0,1,2,...,n-1)とし、疑似乱数列X
i(i=0,1,2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,
n-1)形式の演算に基づいて生成し、前記生成された疑似
乱数に基づいて、平文から暗号文を生成し、前記暗号文
を出力する。
【0018】また、別の発明は、平文から、暗号文列X
i(i=0,1,2,...,n-1)を生成する通信方法であって、初期
値U0を所定の初期値Y0とし、Ei(i=0,1,2,...,n-1)を
所定の系列とした時、次形式の漸化式: Ui=(Ui-1・Ei-1+Wi-1・C)/R; (i=0,1,2,...,n
-1)と、 Wi-1=Ui-1・Ei-1・D mod R;(i=0,1,2,...,n-1) から得られる系列Ui(i=0,1,2,...,n-1)をYi(i=0,1,
2,...,n-1)とし、前記U0を任意の初期値Z0とした時、
前記形式の漸化式から得られる系列Ui(i=0,1,2,...,n-
1)をZi(i=0,1,2,...,n-1)とし、暗号文列Xi(i=0,1,
2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,n-1)形式
の演算に基づいて生成し、前記暗号文列を出力する。
【0019】
【実施例】
[第1の実施例]以下説明する実施例では、暗号化処理、
特に、上述した[中国人の剰余定理を用いた乱数生成処
理]と[中国人の剰余定理を用いたRSA暗号化処理]
の高速化/効率化に焦点を当てて説明する。
【0020】(式3)、(式6)において、a,bは
p,qによって定まる定数であるので、(式3),(式
6)の右辺の「a・p」,「b・q」は予め計算してお
くことができる。以下、(式3),(式6)は同型であ
るため、(式6)をピックアップして以下の話を進める
ことにする。
【0021】ここで、a・p=A、b・q=M、c1=
B、c2=Nと、置き換えると、(式6)は次の一般形
に書き直すことができる。尚、(式3)についても同様
に次の一般形に書き直すことができるのは言うまでもな
い。 Q=A・B+M・N (式9) 次に、(式7)と(式8)のべき乗剰余演算を行う処理
方法について、以下説明する。
【0022】剰余乗算に対して、モンゴメリ法(P.L.Mon
tgomery:“Modular multiplicationwithout trial divi
sion, “Math.of Computation,Vol.44,1985,pp.519-52
1)と呼ばれる次のような手法が知られている。以下、モ
ンゴメリ法を簡潔に説明する。
【0023】<モンゴメリ法>NとRを互いに素な整数
とし、 N'=−N-1 mod R とするとき、任意の整数T、(T+M・N)/R は次
の関係を満足する。 (T+M・N)/R=T・R-1 mod N ただし、 M=T・N'mod R ここで、rを任意の整数として、 R=2r とすれば、Rによる除算をバイナリ数を基本とするデジ
タル演算処理系で演算するには、(T+M・N)の演算
結果のrビットのシフト処理かまたは、単に下位rビッ
トを無視することにより容易に除算できる。
【0024】以上説明したモンゴメリー法を使えば、次
の形式の剰余演算、 Q=A・B mod N は、次式を実行することと等価になる。即ち、 Q=(A・B+M・N)/R (式10) ここで、 M=A・B・(−N-1 mod R)mod R N-1=1/N mod R R=2r 尚、上述したように、(A・B+M・N)/Rの項の演
算で、Rでの除算は、実際の処理では、下位rビットを
無視するだけでよく、容易に除算できる。
【0025】以下、(式10)を高速に演算するための
方法を以下に説明する。
【0026】まず、(式9)の右辺の項を、 「A・B+M・N」=T とおく。ここで、AとMは、それぞれ「k・v」ビット
の整数とする。また、BとNは、「s・d」ビットの整
数とする。そして、A、M、B、Nは同じビット長、す
なわち、「k・v=s・d」であるとする。ここで、
A,Mをvビット,B,Nをdビット毎に分割すると、
A,B,M,Nは、各々次のように表すことができる。 A=Ak-1・Yk-1+Ak-2・Yk-2+・・・+A1・Y+A0 B=Bs-1・Xs-1+Bs-2・Xs-2+・・・+B1・X+B0 M=Mk-1・Yk-1+Mk-2・Yk-2+・・・+M1・Y+M0 N=Ns-1・Xs-1+Ns-2・Xs-2+・・・+N1・X+N0 ただし、 Y=2v X=2d ここで、Ai(i=0,…,k−1),Mi(i=0,
…,k−1)は、それぞれA,Mを下位桁からvビット
毎に分割した各ビットを表す。
【0027】また、Bj(j=0,…,s−1),Nj
(j=0,…,s−1)は、それぞれB,Nを下位桁から
dビット毎に分割した各ビットを表す。ここで、Tは、
次の演算をi=0からk−1まで繰り返すことによって
求められる。 T(i)=T(i-1)/x+Ai・B+Mi・N (式12) ただし、T(k-1)=T /x: T(i-1)を下位へdビットシフト 図1は、(式12)を実行するための基本演算回路の一
例を示す図である。図1の基本演算回路20は具体的に
は、繰り返し制御変数i、jに関して、次の繰り返し演
算処理(アルゴリズム1)を行う。 (アルゴリズム1) FOR(i=0 to k-1) (行1) FOR(j=0 to s-1) (行2) Ti,j=dwd(Ti-1,j+1)+Ai・Bj+Mi・Nj+upd(Ti,j-1) (式13) NEXT; (行3) NEXT; (行4) ただし、 dwd(Ti-1,j+1) : Ti-1,j+1のdビット
以下の部分値を返す関数 upd(Ti,j-1) : Ti,j-1のd+1ビット以上の部分
値を返す関数 (行1)は、(行4)までの処理を、制御変数iが
「0」から「k-1」まで、カウント1づつ増加させて
実行させる繰り返し文である。また、(行2)は、(行
3)までの処理を、制御変数jが「0」から「s-1」
まで、カウント1づつ増加させて実行させる繰り返し文
である。これらの繰り返し条件で、(式13)を繰り返
し実行することにより、Tk-1,s-1を求める。この求め
られたTk-1,s -1が、「A・B+M・N」の演算結果と
なる。そして、前述したように、(式10)のQを求め
るために、Rで割る処理は、「A・B+M・N」の演算
結果から、r+1ビット以上のビット部分を抽出するだ
けでよい。このような処理手順で、剰余演算の解である
Qを求めることができる。
【0028】以上説明した処理を要約すると、(式
6)、(式7)、(式8)で示した暗号化処理は、制御
変数iに関して、まず、(式7)と(式8)をモンゴメ
リ法を利用した本実施例の処理方法で演算し、次に、中
国人の剰余定理を利用して生成された(式6)の整数乗
加算を実行する処理を繰り返すことで暗号系列cを生成
することができる。
【0029】また同様に、(式3)、(式4)、(式
5)で示した疑似乱数生成処理は、制御変数iに関し
て、まず、(式4)と(式5)をモンゴメリ法を利用し
た本実施例の処理方法で演算し、次に、中国人の剰余定
理を利用して生成された(式3)の整数乗加算を実行す
る処理を繰り返すことで疑似乱数列xi(i=0,1,...)を生
成することができる。
【0030】次に、アルゴリズム1を実行するための基
本要素である、図1に示す基本演算回路20の構成につ
いて以下説明する。
【0031】Bin(1),Nin(3)には、それぞれB
j ,Njをdビット毎に入力する。R1(9),R2
(10)は、それぞれAi(4),Mi(5)のvビット
データを予め入力して、保持するvビットのレジスタで
ある。また、R3(11)、R4(12)はそれぞれd
ビットのレジスタであり、不図示の同じクロックが入力
されており、このクロックに同期して入力ラッチ/出力
が行われる。R3(11)には、Bin(1)からのdビ
ットのパラレルデータが入力する。また、R3(11)
のdビットのパラレル出力は、R4(12)にdビット
パラレル入力される。R4(12)のdビットパラレル
出力はBout(6)に出力される。従って、直列に接続
したR3(11)、R4(12)の構成回路で、Bin
(1)の入力データを2クロック遅延させBout(6)
に出力させる。また、同様にR5(13)、R6(1
4)はそれぞれdビットのレジスタであり、R3(1
1)、R4(12)に入力しているクロックと同じクロ
ックが入力されており、このクロックに同期して入力ラ
ッチ/出力が行われる。R5(13)には、Nin(3)
からのdビットパラレルデータが入力する。また、R5
(13)のdビットパラレル出力は、R6(14)にd
ビットパラレル入力される。R6(14)のdビットパ
ラレル出力はNout(8)に出力される。従って、直列
に接続したR5(13)、R6(14)の構成回路で、
Nin(3)の入力データを2クロック遅延させNout
(8)に出力させる。R7(15)は、加算器(16)
からの出力を入力する「d+v+1」ビットのレジスタ
であり、不図示のクロックに同期させてTout(7)へ
ラッチした下位dビットを出力し、ラッチした上位「d
+1」ビットは加算器(16)にフィードバック入力す
る。乗算器(17)、(18)は、共に「vビットデー
タ」x「dビットデータ」の乗算を行う。乗算器(1
7)は、Bin(1)に入力するdビットのBjと、予め
レジスタR1(9)にラッチしたAi(4)のvビット
データ間の乗算を行い、その結果を加算器16へ出力す
る。同様に、乗算器18は、Nin(3)に入力するdビ
ットのNjと、予めレジスタR2(10)にラッチした
Mi(5)のvビットデータ間の乗算を行い、その結果
を加算器(16)へ出力する。加算器(16)は、乗算
器(17)、(18)、R7(15)の上位「d+1」
ビットデータ、Tin(2)から前演算結果値を入力し
て、その加算結果をR7(15)へ出力する。
【0032】次に、(式12)において、i=0から
「k−1」まで同様の演算をk回繰り返す漸化処理回路
22の回路構成の一例を図2に示す。漸化処理回路22
は、基本演算回路(20)とメモリ(21)から構成さ
れる。基本演算回路(20)の出力Tout(7)のデー
タをメモリ(21)に格納し、メモリ(21)に格納さ
れたデータを基本演算回路(20)のTin(2)にフィ
ードバックさせる構成をとる。また、Bj,Njの各ビッ
ト列をjを順に更新することで繰り返し入力させ、それ
に同期して、Ai,Miの各ビット列をiを順に更新する
ことで繰り返し入力させることによって、(式12)の
漸化処理を実行することができる。
【0033】尚、第1の実施例では、A,B,M,Nの
ビット長がそれぞれ「k・v=m・d」ビットの同じサ
イズである時の例を示したが、各ビット長が異なる場合
でも、それらの最大ビット長に合わせて、パデイングす
ることによって、同様に処理できることは言うまでもな
い。このことは、以下に示す実施例についても同様であ
る。
【0034】以上、説明したように、中国人の剰余定理
を用いた暗号化処理、あるいは乱数生成の基本処理を、
図2に示すような簡単な漸化処理回路(22)で実現で
き、高速に実行できる。 [第2の実施例]第2の実施例では、(式12)での繰
り返し演算の高速化を計るために、複数の基本演算回路
(20)を用いて、シストリックアレイ処理を行う一例
を説明する。図3は、このシストリックアレイ処理を行
う1シストリックアレイ処理回路構成を説明する図であ
る。
【0035】このシストリックアレイ構成によれば、第
1の実施例の図2に示したようにメモリ21を用いて処
理を逐次的に繰り返す必要がなく、漸化処理が複数の基
本演算回路(20)によって、シストリックアレイ的に
実行されるので、さらに高速な処理が実現できる。尚、
図3のシストリックアレイ処理回路は、基本演算回路2
0をk個用いているので、図2に示した回路構成に比べ
て回路規模が大きくなる。
【0036】しかしながら、近年のVLSI技術の進歩
によって、トランジスタを1チップに超高集積化するこ
とが可能となってきており、第2の実施例の並列化回路
構成による回路規模の増大の問題は解消されてきてい
る。 [第3の実施例]第3の実施例では、第1の実施例の図
1を参照して説明した基本演算回路(20)に関連し
て、外部からAi ,Mi(i=0,…,k−1)のデー
タ値を順次入力しながら演算できる基本演算回路(4
0)を用いて、剰余演算を高速に行う方法を説明する。
【0037】第1の実施例では、Ai,Mi(i=0,
…,k−1)のデータ値は、予め基本演算回路20内に
設定されていたが、第3の実施例では、外部からAi
i(i=0,…,k−1)のデータ値を順次入力しな
がら演算できる基本演算回路40を示す。以下、図4を
参照して、基本演算回路40について説明する。
【0038】Bin(41),Nin(43)には、それぞ
れBj,Nj をdビット毎に入力する。R1(49),
R2(50)は、それぞれAin(62) ,Min(6
3)のvビットデータを入力して、保持するvビットの
レジスタである。また、R3(51)、R4(52)は
それぞれdビットレジスタであり、不図示の同じクロッ
クが入力されており、このクロックに同期して入力ラッ
チ/出力が行われる。R3(51)には、Bin(41)
からのdビットパラレルデータを入力する。また、R3
(51)のdビットパラレル出力は、R4(12)にd
ビットパラレル入力される。R4(12)のdビットパ
ラレル出力はBoutに出力される。従って、直列に接続
したR3(51)、R4(52)の構成回路で、Bin
(41)の入力データを2クロック遅延させBoutに出
力させる。また、同様にR5(53)、R6(54)は
それぞれdビットレジスタであり、R3(51)、R4
(52)に入力しているクロックと同じクロックが入力
されており、このクロックに同期して入力ラッチ/出力
が行われる。R5(53)には、Nin(43)からのd
ビットパラレルデータが入力する。また、R5(53)
のdビットパラレル出力は、R6(54)にdビットパ
ラレル入力される。R6(14)のdビットパラレル出
力はNout(48)に出力される。従って、直列に接続
したR5(53)、R6(54)の構成回路で、Nin
(43)の入力データを2クロック遅延させNout48
に出力させる。R7(55)は、加算器56からの出力
を入力する「d+v+1」ビットのレジスタであり、不
図示のクロックに同期させてTout47へラッチした下
位dビットを出力し、ラッチした上位「d+1」ビット
は加算器56にフィードバック入力する。乗算器57、
58は、共に「vビットデータ」x「dビットデータ」
の乗算を行う。乗算器57は、Bin(41)に入力する
dビットのデータと、レジスタR1(49)にラッチし
たvビットデータ間の乗算を行い、その結果を加算器5
6へ出力する。同様に、乗算器58は、Nin(43)に
入力するdビットのデータと、レジスタR2(50)に
ラッチしたMin(63)のvビットデータ間の乗算を行
い、その結果を加算器56へ出力する。加算器56は、
乗算器57、58、R7(55)の上位「d+1」ビッ
トデータ、Tin(42)から前演算結果値を入力して、
その加算結果をR7(55)へ出力する。
【0039】図5は、式(12)での繰り返し演算を基
本演算回路40をシストリックアレイ状に並べて連結す
る構成で実行する一例を示している。この場合、第1の
実施例の図2に示したようにメモリ21を用いて処理を
繰り返す必要がなく、処理がシストリックアレイ的に実
行されるので高速な処理が実現できる。
【0040】図5の回路構成150の動作を以下説明す
る。#1、#2、・・・、#k+1の各PEは基本演算
回路40である。各PEは以下のように接続されてい
る。即ち、 #1 #2 Aout(64) --- Ain(62) Bout(46) --- Bin(41) Tout(47) --- Tin(42) Nout(48) --- Nin(43) Mout(65) --- Min(63) 他のPE間も同様に接続されている。各PEには、各P
Eを動作させるタイミングを与える共通の基本クロック
clk(157)を入力する。PE#1は、(式12)
の各変数に割り当てられるデータを基本クロックclk
(157)に同期して入力する。また、PE#2は、そ
の演算結果を基本クロックclk(157)に同期して
逐次出力する。
【0041】#1のAin(62)とMin(63)に各々入力させ
るデータAi(151),Mi(156)は、Bj(15
2),Nj(155)より1クロック早く入力させる。
それは、乗算器(57)と乗算器(58)での乗算時に
は、レジスタR1(49)とレジスタR2(50)に対
して、データAi(151) ,Mi(156)が既にラ
ッチされている必要があるからである。Tin(42)には、
「0」値が常に入力させる。
【0042】#1に、clk(157)に同期して、デ
ータA0,M0が入力されると、それぞれR1(49),
R2(50)にラッチされる。従って、A0・Bj(j=
0,…,m−1)の演算を全てのjに対して実行するこ
とができる。また、Bj,Njは2クロック遅れて次のP
Eに入力されるが、Ai,Miは1クロックしか遅れない
ので、#iのPEにおいて、Ai,iがBj,Nj(j=
0,…,m−1)の前に入力され保持できているので、
#i+1のPEでは、Ai+1,Mi+1が各々Bj,Mj(j
=0,…,m−1)の前に入力され保持できる。従っ
て、#i,#i+1のPEにおいて無理なく式(12)
の演算が実行できる。従って、図1のPEの回路構成に
対して、Ai,Miを伝送するR8,R9の2つのvビッ
トレジスタを追加すれば、第3の実施例のPEを構成で
きる。 [第4の実施例](式9)の中国人の剰余定理は(式1
2)をk回繰り返すことによって演算できるので、第1
の実施例では、1個のPEをk回用いることによって小
さな回路規模で(式9)を演算した。
【0043】また、第2、第3の実施例では、k個のP
Eをシストリックアレイ状に並べることによって、(式
9)を高速に演算した。従って、p個(1≦p≦k)の
PEを用いれば、k/p回の繰り返しによって、(式
9)を高速に演算できることは明かである。この場合、
基本的に、処理速度はPEの数pに比例して上がるの
で、必要な処理速度をPEの数によって調整することが
できる。
【0044】第4の実施例では、必要な処理速度や回路
構成のコストに応じて、柔軟にPEの数を選択、変更す
ることができる剰余演算回路の1例を図6を参照して、
以下説明する。
【0045】図6に示す剰余演算回路(200)は、シ
ストリックアレイ状に並べられた、複数のPEを集積し
たICチップ(203)と、剰余演算の中間結果等をバ
ッファするRAM202と、剰余演算回路(200)全
体の演算のタイミングを制御する制御部201を備え
る。近傍のICチップ(203)間の、剰余演算のため
の入力線と出力線が接続されることにより、複数のIC
チップ(203)による1次元のシストリックアレイ構
成が実現される。先頭のICチップ(203)の、途中
剰余演算結果の出力線は、RAM(202)の入力デー
タ線に接続され、途中剰余演算結果値は、RAM(20
2)に格納される。また、RAM(202)の出力デー
タ線は、最前列にシストリックアレイ接続されたICチ
ップ(203)のデータ入力線に接続される。そして、
RAM(202)から、途中剰余演算結果データを、最
前列にシストリックアレイ接続されたICチップ(20
3)に入力し、次の剰余演算を行う。ICチップ(20
3)には、複数のPEが1次元シストリックアレイアレ
イ状に接続されて、集積されている。一方、制御部(2
01)は、剰余演算回路(200)に組み込まれたPE
(204)の数に対応した、剰余演算のスタート/スト
ップタイミング制御信号等を各ICチップ(203)に
与え、また、RAM(202)への剰余演算のための各
初期値設定等を行う。
【0046】このように、p個のPE(204)をシス
トリックアレイ接続し、RAM(202)を介してフィ
ードバックさせる構成をとることによって、要求される
処理速度やコストに対応して、任意の個数のPEからな
る構成を柔軟に構成させることができる。また、各PE
(204)は、同じ回路構成で、各PE(204)の接
続あるいはレイアウトが規則的であるため、容易に装置
化しやすいという利点をもつ。
【0047】尚、制御部201は、例えばマイクロプロ
セッサと、剰余演算制御ソフトウエアを格納したROM
や作業用のRAMによって実現できる。 [第5の実施例]第5の実施例では、(式10)のモンゴ
メリ法による剰余演算を実行するシストリックアレイに
ついて図7と図5を参照して説明する。
【0048】さらに、中国人の剰余定理による剰余演算
方法のうちの(式9)の形式の演算も実行可能なPEに
ついて、図8を用いて説明する。
【0049】ここで、モンゴメリー法を用いて、 T=A・B・R-1 mod N=(A・B+M・N)/R の演算を実行することを考える。ここでは簡単のために
A,B,M,Nをk・v=s・dビットの整数とし、
A,Mをvビット、B,Nをdビット毎に分割すると次
のように表わせる。ただし、Y=2v ,X=2d とす
る。 A=Ak-1・Yk-1+Ak-2・Yk-2+…+A1・Y1+A0 B=Bs-1・Xs-1+Bs-2・Xs-2+…+B1・X1+B0 N=Ns-1・Xs-1+Ns-2・Xs-2+…+N1・X1+N0 T=Ts-1・Xs-1+Ts-2・Xs-2+…+T1・X1+T0 (式14) ここで、Ai(i=0,…,k-1)はAを下位桁からvビ
ット毎に分割したビット系列を表わし、Bj ,Nj ,T
j (j=0,…,m-1)は各々B,N,Tについて下位
桁からdビット毎に分割したビット系列を表わす。この
場合、モンゴメリーの剰余乗算は、次の演算をi=0か
らkまで繰り返すことによって求められる。ただし、T
*iは1回目の演算におけるTの値を意味し、式(14)
におけるTi とは異なる。 T*i=(T*i-1 +Ai・B・Y+Mi-1・N)/Y (式15) ただし、 Mi-1=(T*i-1 mod Y)・N0 'mod Y T*1=0 N0 '=N'mod Y この演算をシストリックアレイで実現するための処理ア
ルゴリズムは次のようになる。 FOR i=0 to k (行51) Mi-1=dwv(dwv(Ti-1,1)・N0 ') (行52) FOR j=0 to m (行53) Ri,j=Ti-1,j+l+Ci,j-1+Aij-1+Mi-1・Nj (行54) Ti,j=dwv(Ri,j) (行55) Ci,j=UPv(Ri,j) (行56) NEXT (行57) NEXT (行58) (行51)の制御文は、(行58)までの処理を、制御
変数iが「0」から「k」まで、カウント1づつ増加さ
せて実行させる繰り返し文である。また、(行52)
は、右辺の式、即ち、dwv(dwv(Ti-1,1)・
0 ')を計算して、左辺Mi-1に代入する代入文であ
る。尚、ここで、dwv(α)は、ビット列αのvビッ
ト以下の値を返す関数である。従って、式「dwv(d
v(Ti-1,1)・N0 ')」は、Ti-1,1のビット列のv
ビット以下のビットをまず求め、次に、そのビットとN
0 'の乗算を行い、その乗算値のビット列のvビット以下
のビットを抽出する処理によって求められ、Mi-1に代
入される。(行53)の制御文は、(行57)までの処
理を、制御変数jが「0」から「m]まで、カウント1
づつ増加させて実行させる繰り返し文である。(行5
4)は、右辺の式、即ち、 Ri,j=Ti-1,j+l+Ci,j-1+Aij-1+Mi-1・Nj を計算して、左辺、即ちRi,jに代入する代入文であ
る。(行55)は、右辺の式、即ち、dwv(Ri,j)を
計算、即ち、(行54)で計算されたRi,jからvビッ
ト以下のビットを抽出して、左辺、即ちTi,jに代入す
る代入文である。(行56)はUPv(Ri,j)、即ち、
(行54)で計算されたRi,jからV+1ビット以上のビッ
トを抽出して、Ci,jに代入する代入文である。
【0050】以上説明した演算処理を、制御変数i、j
に基づいて繰り返すことにより、(式10)の演算を高
速に行うことができる。
【0051】次に、このアルゴリズムを実行するPE構
成を、図7に示す。そのPEを複数用いたシストリック
アレイ構成を、図5に示す。このアルゴリズムのj,i
は、クロック及びPEの位置に対応する。また、図5に
おいて、PE間はそれぞれ、AinとAout 、BinとBou
t 、TinとTout 、MinとMout 、NinとNout が各々
接続されている。また、#1のPEのTin、Minの入力
には各々論理「0」が設定されているが、Bin、Ninに
は各々Bj、Nj(j=0,…,m-1)が下位桁から順に
入力される。ただし、Bjは、Njに対して1クロック遅
れで入力される。また、Ai(i=0,…,k-1)を下位
桁からNj(155)に同期させて入力させる。この場
合、Ai(i=0,…,k-1)はBj(j=0,…,m-1)
よりも1クロック先に入力されるので、#1のPEにお
いて、A0が入力されると同時にR1(78)のレジスタ
にA0が保持される。また、Bjは2クロック遅れて次の
PEに入力されるが、Aiは1クロックしか遅れないの
で、#i-1のPEにおいて、AiがBj(j=0,…,m
-1)の前に入力され保持できる。
【0052】以降、説明を容易にするために、v=dの
場合について、図7のPEの構成を説明する。図7にお
いて、77と71はdビットxdビットの乗算器を示
し、79は加算器を示す。加算器(79)の入力及び出
力は次のようになる。乗算器(77)からの出力Ai
j-1と乗算器(71)からの出力Mi-1・Njは各々2
・dビットであり、前PEからの出力Ti-1,j+1 は、d
ビットの値である。従って、Ci,j-1が、 Ci,j-1<22*d+1 であれば加算器(79)からの出力は「2・d+2」ビ
ットの値である。また、R0(72)〜R6(81),
R8(70)はdビットのレジスタであり、加算器(7
9)からの出力を受けるR7(82)は「2・d+2」
ビットのレジスタである。R7(82)は、LSB(最
下位ビット)からdビット目までをTi, jとして次のP
Eに出力し、上位の「d+2」ビットをCi,jとして、
加算器(79)へフィードバックする。R0(72)は
0 'の下位dビットを保持しており、R2(73)は加
算器(79)からの最初の出力Ti,1の下位dビットと
R0(72)との乗算結果の下位dビットをM1として
保持し、次のPEにおいて用いられる。
【0053】AiとMi-1は、以下のように、BjとNj
入力される前に、各々R1(78)とR2(73)に設
定され、Nj はBj に比べて1クロック前に入力される
ので、Ai・Bj-1とMi-1とNjが同時に演算される。ま
た、Ti-1,j+1をAi・Bj-1及びMi-1・Njと同時に演
算するために、Bin,Ninから入力されるBj,Njは2
クロック遅らされて次のPEに出力される。これは式
(15)におけるYによるdビットのビットシフトに相
当する。
【0054】従って、図7のPEによって式(15)の
演算を行うことができ、図5のシストリックアレイによ
ってモンゴメリーの剰余乗算が高速に実現できることが
わかる。
【0055】また、図7はv=dとして説明したが、v
≦dであるvに対しても同様の手法によって同様のモン
ゴメリーの剰余乗算を実行できることは明らかである。
【0056】以上、説明したように、(式1)または
(式4),(式5)のような自乗剰余演算や(式2)ま
たは(式7),(式8)のようなべき乗剰余演算を、図
7に示したPE及び、そのPEを用いたシストリックア
レイ(図5)を用いて、効率的かつ高速に実行できる。 (第6の実施例)次に、式(10)のモンゴメリ法によ
る剰余演算と、さらに、中国人の剰余定理による剰余演
算方法のうちの(式9)の形式の演算も実行可能なP
E、即ち、図4で示した基本演算回路(40)での処理
も実行できる第6の実施例であるPEの構成について以
下説明する。第6の実施例のPEの回路構成を図8に示
すが、これは、基本的に図7と図4の回路を合成して、
上述の2つの機能を実現したものである。
【0057】図7のPEと図4のPEを比較した場合、
構造はほぼ同じでMの取得方法が異なるだけである。ま
た、PEの動作における違いは、上述したように、Bj
はNjに対して同時に入力されず、1クロック遅れて入
力されるところである。
【0058】従って、図8に示すPE(90)の構成に
よって、中国人の剰余定理による剰余演算方法のうちの
(式9)の形式の演算と、式(10)のモンゴメリ法に
よる剰余演算を選択的に実行することができる。
【0059】この選択は、PE(90)のセレクタS
(91)による選択切替によって行う。セレクタS(9
1)は、式(9)の演算を選択するときは、R9(9
2)からの出力を選択し、式(10)の演算を選択する
ときは乗算器(93)からの出力を選択する。ただし、
Bin(41)に入力させるBj とNin(43)に入力さ
せるNj のタイミングの違いはセレクタS(91)の選
択タイミングに同期して制御される。
【0060】また、本実施例は、実施例3に示したA
i ,Mi を自動的に設定できる場合を示しているが、図
1のPEのようにAi ,Mi を外部から設定してもよ
い。よって、図1,図4のPEを用いた場合と同様に図
8のPEを用いて図2,図5,図6のような装置化が可
能になる。
【0061】例えば、[中国人の剰余定理を用いた乱数
生成処理]の処理手順を示す(式3)〜(式5)に基づ
いて、乱数生成演算を図6の装置によって実現する方法
を、以下に説明する。尚、制御部201には、各式の演
算を行う順序と各PEに対するタイミング制御手順を指
示するプログラムは、内部の不図示のROM等に、予め
格納されているとし、内部の不図示のCPUによって実
行される。
【0062】この実行は、(式4)→(式5)→(式
3)→(式4)→...の順に演算を繰り返す。ここ
で、最初の(式4),(式5)は剰余乗算であるので、
上述したように、モンゴメリー法による演算方法、即
ち、(式10)による演算を行うために、制御部201
は、各PEのセレクタS91、及び入力のタイミングを
制御する。即ち、セレクタS91の制御に関して、(式
3)に対応する演算時には、R9(94)からの出力を
選択して、Mout(48)に出力する。即ち、図4のP
Eと同じ演算を行う。また逆に、(式4)あるいは(式
5)に対応する演算時には、乗算器(93)からの出力
を選択して、Mout(48)に出力する。即ち、図7の
PEと同じ演算を行う。
【0063】次に、(式4)→(式5)→(式3)→
(式4)→...の順の演算手順について、以下説明す
る。
【0064】まず、制御部201は、予めRAM202
に格納されている所定の初期値y0とpを、RAM20
2のアドレスを制御することによって読みだし、PEに
入力させる。そして、(式4)に対応する演算を行い、
計算したy1 をRAM202に格納する。その後、また
RAM202のアドレスを制御することによって、予め
RAM202に格納されたz0 とqを読みだし、PEに
入力させて、(式5)に対応する演算を実行し、z1
求めRAM202に格納する。尚、以上の(式4)(式
5)に関する処理では、各PEのセレクタS91は、乗
算器93からの出力を選択する。その後、(式3)を実
行するために、(式9)の演算ができるように、各PE
のセレクタS91、及び入力タイミングを制御する。そ
して、RAM202格納されたy1 とz1 を読みだし、
予め計算された「a・p」,「b・q」値と共に、PE
(204)に入力する。その結果、(式3)の最初の出
力であるx1 が得られる。以後、前述したの処理を繰り
返すことによって、疑似乱数生成を高速に行うことがで
きる。 [第7の実施例]以上、剰余演算を高速に実行する剰余
演算方法とその装置について焦点をあてて説明してきた
が、第7の実施例では、それら剰余演算方法とその装置
を備える通信装置(1120)の一例を示す。
【0065】図9は、第6の実施例の演算部を備える通
信装置(1120)による、n対nの通信システム(3
02)の構成を示す。図9における結線(301)は、
ローカルエリアネットワーク(LAN)のような局所的
な通信網、または電話回線のような大域的な通信網を表
す。また、A〜Zは、各通信装置(1120)の利用者
を意味する。これらの通信機または端末を用いる利用者
は本発明による演算装置を用いて前述した乱数発生やR
SA暗号処理をはじめとする種々の演算を行い、他の利
用者と通信を行うことができる。
【0066】図10は、第7の実施例の通信装置(11
20)の構成概要を示す図である。この図を参照して、
以下第7の実施例の通信装置(1120)を詳細に説明
する。
【0067】CPU(1121)は、通信装置(112
0)全体の制御を行う。その制御プログラムは、予めR
OM(1124)に格納されており、CPU(112
1)はこの制御プログラムを実行する。キーボード(1
122)は、通信装置(1120)に対するコマンドや
データを入力する入力端末である。RAM(1123)
は、CPU(1121)が各種処理を実行するための作
業データや、通信データを格納する。モニタ(112
5)は、通信装置(1120)での各種処理結果、通信
データ、キーボード(1122)からの入力コマンド等
を表示する。暗号部(1127)は、RAM(112
3)に格納されている通信データの暗号処理を行い、通
信線(1129)に対して符号データを出力する。復号
部(1126)は、外部の通信装置からから通信線(1
128)を介して伝送された暗号データを復号し、RA
M(1123)へ格納させる。200は、図6で説明し
た剰余演算回路である。復号部(1126)は、入力し
た暗号データの復号化処理で「A・B+M・N」或い
は、「A・B mod N」形式の演算を行う時は、剰余演
算回路(200)に演算要求を出して、その剰余演算を
剰余演算回路(200)で実行させる。そして、剰余演
算回路(200)は、その演算結果を復号部(112
6)へ出力する。また、暗号部(1127)で通信デー
タの暗号化処理を行う際等で、必要となる疑似乱数生成
処理は基本的に剰余演算であり、剰余演算回路(20
0)にその剰余演算の演算要求を出して剰余演算回路
(200)で実行させる。そして、剰余演算回路(20
0)は、その演算結果を暗号部1127へ出力する。
【0068】以上説明したように、暗号処理/復号処理
/疑似乱数生成処理等で「A・B+M・N」或いは、
「A・B mod N」形式の演算を行う際は、剰余演算回
路(200)で独立して高速に実行できるので、通信処
理全体の処理能力をあげることができる。
【0069】尚、第7の実施例では、通信装置間での暗
号化/復号化処理について説明したが、これは、通信装
置と記録媒体間での暗号化/復号化処理についても同様
に処理できる。記録媒体としては、例えばハードデイス
クやフロッピーデイスク等のような磁気記録媒体でもよ
い。この場合、記録媒体へのアクセス装置が通信装置に
相当し、通信系と同様に記録系においても、利用者A〜
Zは、本実施例による回路及び方法を用いた演算装置に
よって個別にこのシステムを利用することができる。
【0070】また、本実施例による回路及び方法を用い
た演算装置は、通信装置機と通信網の間に挿入されてい
たり、通信装置に接続された端末装置に内蔵されていて
もよい。また、該演算装置が通信装置に接続されていな
くても、ICカードのような携帯用の装置に内蔵し、必
要なときに通信装置に接続された端末装置と接続しても
よい。
【0071】尚、本実施例よる1つのPEで、疑似乱数
発生処理や暗号処理は、本実施例の演算方法により簡単
な整数演算で実現できるので、PEを集積回路によって
実現しなくても、通常のDSP(デジタルシグナルプロ
セッサ)やCPU等によっても前述の中国人の剰余定理
を簡単かつ高速に演算することができる。
【0072】また、本発明は回路構成が規則的であり、
PE間の接続がレジスタを通して隣接したPEのみと行
われているので、制御や遅延も局所的になりVLSIに
よる実用化にも最適である。
【0073】また、実施例4に示したようなp個のPE
からなる装置化(チップ化)を行っておけば、装置化後
に要求される高速化や扱う整数のビット数の変化に対応
して、インプリメントするPEのチップ数を変えるだけ
で容易に対応することができる。
【0074】また、本実施例では、(式12)の演算
(または剰余演算)を異なるiに対して独立に行うこと
ができるので、PEを従属に接続せず独立した演算素子
として用い、よく知られたマイクロプログラミングの手
法によって実現することも容易である。
【0075】また、図1,図4のPEは(式12)の演
算(または剰余乗算)を一括して実行しているが、(式
12)の演算(または剰余乗算)を種々に分解した演算
素子によって、最終的に(式12)の演算(または剰余
乗算)を実行してもよい。
【0076】尚、本発明は、複数の機器から構成される
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによって達成される場合にも適用で
きることは言うまでもない。
【0077】
【発明の効果】以上説明したように本発明によれば、デ
ィジタル通信システムやデジタル記憶システム等におけ
る誤り訂正符号処理や暗号処理を高速に行うことができ
る。
【0078】
【図面の簡単な説明】
【図1】第1の実施例である剰余演算を行うPEの構成
を説明する図である。
【図2】第1の実施例である剰余演算を行う漸化処理回
路の構成を説明する図である。
【図3】第2の実施例である剰余演算を行うシストリッ
クアレイ処理回路の構成を説明する図である。
【図4】第3の実施例である剰余演算を行うためのPE
の構成を説明する図である。
【図5】第3の実施例である剰余演算を行うためのシス
トリックアレイ処理回路の構成を説明する図である。
【図6】第4の実施例である柔軟にPE数を設定できる
剰余演算回路構成の図である。
【図7】第5の実施例であるモンゴメリーの剰余演算の
ためのPEの構成を示す図である。
【図8】第5の実施例である図4と図7に示した回路の
動作を選択できるPEの構成を示す図である。
【図9】第6の実施例である通信装置とそのシステムを
説明する図である。
【図10】第6の実施例である通信装置の詳細を説明す
る図である。
【符号の説明】
200 剰余演算部 1120 通信装置 1121 CPU 1122 キーボード 1123 RAM 1124 QROM 1125 モニタ 1126 復号部 1127 暗号部 1128 入力通信線 1129 出力通信線

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 初期値U0を所定の初期値Y0とした時、
    次形式の漸化式: Ui=(Ui-1・Ui-1+Wi-1・C)/R; (i=0,1,2,...,n
    -1)と、 Wi-1=Ui-1・Ui-1・D mod R;(i=0,1,2,...,n-1) から得られる系列のUi(i=0,1,2,...,n-1)をYi(i=0,1,
    2,...,n-1)とし、初期値U0を所定の初期値Z0とした
    時、前記形式の漸化式から得られる系列Ui(i=0,1,
    2,...,n-1)をZi(i=0,1,2,...,n-1)とし、疑似乱数列X
    i(i=0,1,2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,
    n-1)形式の演算に基づいて生成する疑似乱数生成手段
    と、 前記疑似乱数生成手段で生成された疑似乱数に基づい
    て、平文から暗号文を生成する暗号生成手段と、前記暗
    号文を出力する出力手段とを備えることを特徴とする通
    信装置。
  2. 【請求項2】 前記疑似乱数生成手段は、前記"A・Yi+
    B・Zi"の演算に対応する、"a・b+c・d"形式の演算を
    行う第1の演算手段と、前記"(Ui-1・Ui-1+Wi-1
    C)/R"の演算に対応する、"(a・b+c・d)/r"形式
    の演算を行う第2の演算手段と、前記第1の演算手段で
    演算された第1の演算値と、前記第2の演算手段で演算
    された第2の演算値のいずれかを選択出力する選択手段
    とを備えることを特徴とする請求項1に記載の通信装
    置。
  3. 【請求項3】 前記"a・b+c・d"形式の演算は、a、
    cを所定のvビット単位のk個に分割した、a、cのそ
    れぞれに対応する各部分項ai,ci、(i=0,1,2,...,k-
    1)に基づき、T(i)=T(i-1)/x+ai・b+ci・d、(i=
    0,1,2,...,k-1)の漸化式計算によって、生成されるT(k
    -1)を、前記"a・b+c・d"形式の演算結果とすることを
    特徴とする請求項2に記載の通信装置。
  4. 【請求項4】 前記"a・b+c・d"形式の演算は、a、
    cを所定のvビット単位のk個に分割した、a、cのそ
    れぞれに対応する各部分項ai,ci、(i=0,1,2,...,k-
    1)と、b、dを所定のwビット単位のS個に分割した、
    b、dのそれぞれに対応する各部分項bj、dj、(j=0,
    1,2,...,s-1)とに基づき、T(i,j)=dwd(T(i-1,j+
    1))+ai・bj+ci・dj+upd(T(i,j-1))、(j=0,1,
    2,...,S-1)(i=0,1,2,...,k-1)の漸化式計算によって、
    生成されるT(k-1,S-1)を、前記"a・b+c・d"形式の演
    算結果とし、dwd(T(i-1,j+1))は、T(i-1,j+1)のw
    ビット以下の部分値を抽出し、upd(T(i,j-1))は、
    T(i,j-1)のw+1ビット以上の部分値を抽出することを
    特徴とする請求項2に記載の通信装置。
  5. 【請求項5】 rは2のz乗と等価であり、前記"a・b
    +c・d"形式の演算結果のz+1ビット以上の部分を、前
    記"(a・b+c・d)/r"形式の演算結果とすることを特徴
    とする請求項3に記載の通信装置。
  6. 【請求項6】 平文から、暗号文列Xi(i=0,1,2,...,n-
    1)を生成する通信装置であって、 初期値U0を所定の初期値Y0とし、Ei(i=0,1,2,...,n-
    1)を所定の系列とした時、次形式の漸化式: Ui=(Ui-1・Ei-1+Wi-1・C)/R; (i=0,1,2,...,n
    -1)と、 Wi-1=Ui-1・Ei-1・D mod R;(i=0,1,2,...,n-1) から得られる系列Ui(i=0,1,2,...,n-1)をYi(i=0,1,
    2,...,n-1)とし、前記U0を任意の初期値Z0とした時、
    前記形式の漸化式から得られる系列Ui(i=0,1,2,...,n-
    1)をZi(i=0,1,2,...,n-1)とし、暗号文列Xi(i=0,1,
    2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,n-1)形式
    の演算に基づいて生成する暗号生成手段と、 前記暗号文列を出力する出力手段とを備えることを特徴
    とする通信装置。
  7. 【請求項7】 前記暗号生成手段は、前記"A・Yi+B・
    i"の演算に対応する、"a・b+c・d"形式の演算を行
    う第1の演算手段と、前記"(Ui-1・Ei-1+Wi-1
    C)/R"の演算に対応する、"(a・b+c・d)/r"形式
    の演算を行う第2の演算手段と、前記第1の演算手段で
    演算された第1の演算値と、前記第2の演算手段で演算
    された第2の演算値のいずれかを選択出力する選択手段
    とを備えることを特徴とする請求項6に記載の通信装
    置。
  8. 【請求項8】 前記"a・b+c・d"形式の演算は、a、
    cを所定のvビット単位のk個に分割した、a、cのそ
    れぞれに対応する各部分項ai,ci、(i=0,1,2,...,k-
    1)に基づき、T(i)=T(i-1)/x+ai・b+ci・d、(i=
    0,1,2,...,k-1)の漸化式計算によって、生成されるT(k
    -1)を、前記"a・b+c・d"形式の演算結果とすることを
    特徴とする請求項7に記載の通信装置。
  9. 【請求項9】 前記"a・b+c・d"形式の演算は、a、
    cを所定のvビット単位のk個に分割した、a、cのそ
    れぞれに対応する各部分項ai,ci、(i=0,1,2,...,k-
    1)と、b、dを所定のwビット単位のS個に分割した、
    b、dのそれぞれに対応する各部分項bj、dj、(j=0,
    1,2,...,s-1)とに基づき、T(i,j)=dwd(T(i-1,j+
    1))+ai・bj+ci・dj+upd(T(i,j-1))、(j=0,1,
    2,...,S-1)(i=0,1,2,...,k-1)の漸化式計算によって、
    生成されるT(k-1,S-1)を、前記"a・b+c・d"形式の演
    算結果とし、dwd(T(i-1,j+1))は、T(i-1,j+1)のw
    ビット以下の部分値を抽出し、upd(T(i,j-1))は、
    T(i,j-1)のw+1ビット以上の部分値を抽出することを
    特徴とする請求項7に記載の通信装置。
  10. 【請求項10】 rは2のz乗と等価であり、前記"a・
    b+c・d"形式の演算結果の上位zビットを、前記"(a・
    b+c・d)/r"形式の演算結果とすることを特徴とする
    請求項8記載の通信装置。
  11. 【請求項11】 初期値U0を所定の初期値Y0とした
    時、次形式の漸化式: Ui=(Ui-1・Ui-1+Wi-1・C)/R; (i=0,1,2,...,n
    -1)と、 Wi-1=Ui-1・Ui-1・D mod R;(i=0,1,2,...,n-1) から得られる系列のUi(i=0,1,2,...,n-1)をYi(i=0,1,
    2,...,n-1)とし、初期値U0を所定の初期値Z0とした
    時、前記形式の漸化式から得られる系列Ui(i=0,1,
    2,...,n-1)をZi(i=0,1,2,...,n-1)とし、疑似乱数列X
    i(i=0,1,2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,
    n-1)形式の演算に基づいて生成する疑似乱数生成工程
    と、 前記疑似乱数生成工程で生成された疑似乱数に基づい
    て、平文から暗号文を生成する暗号生成工程と、前記暗
    号文を出力する出力工程とを備えることを特徴とする通
    信方法。
  12. 【請求項12】 前記疑似乱数生成工程は、前記"A・Y
    i+B・Zi"の演算に対応する、"a・b+c・d"形式の演算
    を行う第1の演算工程と、前記"(Ui-1・Ui-1+Wi-1
    ・C)/R"の演算に対応する、"(a・b+c・d)/r"形
    式の演算を行う第2の演算工程と、前記第1の演算工程
    で演算された第1の演算値と、前記第2の演算工程で演
    算された第2の演算値のいずれかを選択出力する選択工
    程とを備えることを特徴とする請求項11に記載の通信
    方法。
  13. 【請求項13】 前記"a・b+c・d"形式の演算は、
    a、cを所定のvビット単位のk個に分割した、a、c
    のそれぞれに対応する各部分項ai,ci、(i=0,1,
    2,...,k-1)に基づき、T(i)=T(i-1)/x+ai・b+ci
    ・d、(i=0,1,2,...,k-1)の漸化式計算によって、生成さ
    れるT(k-1)を、前記"a・b+c・d"形式の演算結果とす
    ることを特徴とする請求項12に記載の通信方法。
  14. 【請求項14】 前記"a・b+c・d"形式の演算は、
    a、cを所定のvビット単位のk個に分割した、a、c
    のそれぞれに対応する各部分項ai,ci、(i=0,1,
    2,...,k-1)と、b、dを所定のwビット単位のS個に分
    割した、b、dのそれぞれに対応する各部分項bj
    j、(j=0,1,2,...,s-1)とに基づき、T(i,j)=dwd
    (T(i-1,j+1))+ai・bj+ci・dj+upd(T(i,j-1))、
    (j=0,1,2,...,S-1)(i=0,1,2,...,k-1)の漸化式計算によ
    って、生成されるT(k-1,S-1)を、前記"a・b+c・d"形
    式の演算結果とし、dwd(T(i-1,j+1))は、T(i-1,j+
    1)のwビット以下の部分値を抽出し、upd(T(i,j-
    1))は、T(i,j-1)のw+1ビット以上の部分値を抽出する
    ことを特徴とする請求項12に記載の通信方法。
  15. 【請求項15】 rは2のz乗と等価であり、前記"a・
    b+c・d"形式の演算結果のz+1ビット以上の部分を、
    前記"(a・b+c・d)/r"形式の演算結果とすることを特
    徴とする請求項13に記載の通信方法。
  16. 【請求項16】 平文から、暗号文列Xi(i=0,1,2,...,
    n-1)を生成する通信方法であって、 初期値U0を所定の初期値Y0とし、Ei(i=0,1,2,...,n-
    1)を所定の系列とした時、次形式の漸化式: Ui=(Ui-1・Ei-1+Wi-1・C)/R; (i=0,1,2,...,n
    -1)と、 Wi-1=Ui-1・Ei-1・D mod R;(i=0,1,2,...,n-1) から得られる系列Ui(i=0,1,2,...,n-1)をYi(i=0,1,
    2,...,n-1)とし、前記U0を任意の初期値Z0とした時、
    前記形式の漸化式から得られる系列Ui(i=0,1,2,...,n-
    1)をZi(i=0,1,2,...,n-1)とし、暗号文列Xi(i=0,1,
    2,...,n-1)を、A・Yi+B・Zi、(i=0,1,2,...,n-1)形式
    の演算に基づいて生成する暗号生成工程と、 前記暗号文列を出力する出力工程とを備えることを特徴
    とする通信方法。
  17. 【請求項17】 前記暗号生成工程は、前記"A・Yi+B
    ・Zi"の演算に対応する、"a・b+c・d"形式の演算を行
    う第1の演算工程と、前記"(Ui-1・Ei-1+Wi-1
    C)/R"の演算に対応する、"(a・b+c・d)/r"形式
    の演算を行う第2の演算工程と、前記第1の演算工程で
    演算された第1の演算値と、前記第2の演算工程で演算
    された第2の演算値のいずれかを選択出力する選択工程
    とを備えることを特徴とする請求項16に記載の通信方
    法。
  18. 【請求項18】 前記"a・b+c・d"形式の演算は、
    a、cを所定のvビット単位のk個に分割した、a、c
    のそれぞれに対応する各部分項ai,ci、(i=0,1,
    2,...,k-1)に基づき、T(i)=T(i-1)/x+ai・b+ci
    ・d、(i=0,1,2,...,k-1)の漸化式計算によって、生成さ
    れるT(k-1)を、前記"a・b+c・d"形式の演算結果とす
    ることを特徴とする請求項17に記載の通信方法。
  19. 【請求項19】 前記"a・b+c・d"形式の演算は、
    a、cを所定のvビット単位のk個に分割した、a、c
    のそれぞれに対応する各部分項ai,ci、(i=0,1,
    2,...,k-1)と、b、dを所定のwビット単位のS個に分
    割した、b、dのそれぞれに対応する各部分項bj
    j、(j=0,1,2,...,s-1)とに基づき、T(i,j)=dwd
    (T(i-1,j+1))+ai・bj+ci・dj+upd(T(i,j-1))、
    (j=0,1,2,...,S-1)(i=0,1,2,...,k-1)の漸化式計算によ
    って、生成されるT(k-1,S-1)を、前記"a・b+c・d"形
    式の演算結果とし、dwd(T(i-1,j+1))は、T(i-1,j+
    1)のwビット以下の部分値を抽出し、upd(T(i,j-
    1))は、T(i,j-1)のw+1ビット以上の部分値を抽出する
    ことを特徴とする請求項17に記載の通信方法。
  20. 【請求項20】 rは2のz乗と等価であり、前記"a・
    b+c・d"形式の演算結果の上位zビットを、前記"(a・
    b+c・d)/r"形式の演算結果とすることを特徴とする
    請求項18記載の通信方法。
JP7165805A 1995-06-30 1995-06-30 通信方法とその装置 Withdrawn JPH0916379A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7165805A JPH0916379A (ja) 1995-06-30 1995-06-30 通信方法とその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7165805A JPH0916379A (ja) 1995-06-30 1995-06-30 通信方法とその装置

Publications (1)

Publication Number Publication Date
JPH0916379A true JPH0916379A (ja) 1997-01-17

Family

ID=15819335

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7165805A Withdrawn JPH0916379A (ja) 1995-06-30 1995-06-30 通信方法とその装置

Country Status (1)

Country Link
JP (1) JPH0916379A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004246350A (ja) * 2003-01-24 2004-09-02 Sharp Corp 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
US7080110B2 (en) 2000-12-19 2006-07-18 International Business Machines Corporation Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements
US7870395B2 (en) 2006-10-20 2011-01-11 International Business Machines Corporation Load balancing for a system of cryptographic processors
US7890559B2 (en) 2006-12-22 2011-02-15 International Business Machines Corporation Forward shifting of processor element processing for load balancing
US8532288B2 (en) 2006-12-01 2013-09-10 International Business Machines Corporation Selectively isolating processor elements into subsets of processor elements

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080110B2 (en) 2000-12-19 2006-07-18 International Business Machines Corporation Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements
JP2004246350A (ja) * 2003-01-24 2004-09-02 Sharp Corp 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
JP4563037B2 (ja) * 2003-01-24 2010-10-13 シャープ株式会社 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
US7870395B2 (en) 2006-10-20 2011-01-11 International Business Machines Corporation Load balancing for a system of cryptographic processors
US8532288B2 (en) 2006-12-01 2013-09-10 International Business Machines Corporation Selectively isolating processor elements into subsets of processor elements
US7890559B2 (en) 2006-12-22 2011-02-15 International Business Machines Corporation Forward shifting of processor element processing for load balancing

Similar Documents

Publication Publication Date Title
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
USRE44697E1 (en) Encryption processor with shared memory interconnect
Güneysu Utilizing hard cores of modern FPGA devices for high-performance cryptography
US7024560B2 (en) Power-residue calculating unit using Montgomery algorithm
US5121429A (en) Digital signal processing
JP3302043B2 (ja) 暗号通信方法及びそのシステム
JPH0916379A (ja) 通信方法とその装置
JP2001051832A (ja) 乗算剰余演算方法および乗算剰余回路
US7113593B2 (en) Recursive cryptoaccelerator and recursive VHDL design of logic circuits
US20020172355A1 (en) High-performance booth-encoded montgomery module
KR100413947B1 (ko) 모듈라 지수승 연산 방식을 이용한 rsa 암호 장치
US6614909B1 (en) Methods, systems, and circuits for generating keys for public key cryptosystems using parallel processing for modular operations of IC cards
JP2004334212A (ja) モンゴメリ掛け算器及び掛け算方法
KR100498736B1 (ko) 블록 암호용 다항식 곱셈장치 및 방법
KR100406724B1 (ko) 모듈러 엔에 대한 곱셈의 역원 연산기 및 그를 포함하는데이터 암호화 장치
US7471789B2 (en) Encryption circuit achieving higher operation speed
US6275837B1 (en) Method for the implementation of an elementary modular operation according to the Montgomery method
CA2617389C (en) Encryption processor with shared memory interconnect
Ali et al. Optimal datapath design for a cryptographic processor: the Blowfish algorithm
KR20020071327A (ko) 씨알티를 이용한 하이래딕스 알에스에이 모듈로 멱승 처리기
CN117527198A (zh) 数据安全处理方法、装置、计算机设备及存储介质
RS VLSI Implementation Of High Performance Montgomery Modular Multiplication For Crypto graphical Application
JP3323516B2 (ja) 演算装置及びこれを備えた暗号化装置、復号装置
JP2003216034A (ja) べき乗剰余演算器
JP2002215022A (ja) 有限体データ記録媒体、有限体データ演算方法及びその装置、そのプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020903