JPH07199807A - 暗号化用剰余乗算回路、暗号装置、および暗号通信システム - Google Patents

暗号化用剰余乗算回路、暗号装置、および暗号通信システム

Info

Publication number
JPH07199807A
JPH07199807A JP5348567A JP34856793A JPH07199807A JP H07199807 A JPH07199807 A JP H07199807A JP 5348567 A JP5348567 A JP 5348567A JP 34856793 A JP34856793 A JP 34856793A JP H07199807 A JPH07199807 A JP H07199807A
Authority
JP
Japan
Prior art keywords
encryption
remainder
arithmetic
output
communication system
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
JP5348567A
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 JP5348567A priority Critical patent/JPH07199807A/ja
Publication of JPH07199807A publication Critical patent/JPH07199807A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 小規模な回路により高速に暗号化のための剰
余乗算を行い得る暗号化用剰余乗算回路を提供する。 【構成】 整数Ac,Bc,NによるAc・Bc mo
d Nなる演算を行うに当たり、数種類のプロセッシン
グ・ユニットPEをパイプライン状に複数接続し、各プ
ロセッシング・ユニットPEにAcをmaビット毎に分
けたAna-j(j=1,2,…,na)(ma,naは任
意の整数)を上位桁から設定し、Bcをmbビット毎に
分けたBnb-j(j=1,2,…,nb)(mb,nbは
任意の整数)を上位桁から1段目のプロセッシング・ユ
ニットPEに入力し、各プロセッシング・ユニットPE
においてRj=Rj-1・X+Ana-j・Bc mod N、
またはRj=Rj+Ana-j・Bc mod N(j=1,
2,…,na)を計算して次段のプロセッシング・ユニ
ットPEに入力し、当該演算を繰返すことによって最終
段のプロセッシング・ユニットPEからAc・Bc m
od Nの剰余乗算結果を得る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、剰余乗算回路等に関
し、特にコンピュータネットワーク等を介して秘密通信
を行うに当たり、通信内容を秘密にするための暗号化を
行うのに好適な暗号化用剰余乗算回路、暗号装置、およ
び暗号通信システムに関する。
【0002】
【従来の技術】近年、コンピュータネットワークを用い
た各種の情報通信システムの急速な発展に伴って、デー
タ内容の機密保持のための暗号化技術の重要性が高まっ
てきている。特に、コンピュータネットワークの高速化
・大容量化が進む中で、高速伝送可能な暗号化技術が不
可欠になっている。
【0003】暗号化方式としては種々の方式が開発され
ているが、剰余乗算処理は、種々の暗号化方式に用いら
れている。例えば、同一の鍵を送信者と受信者が秘密に
共有する秘密鍵暗号方式の中には、乱数を用いた暗号が
あるが、乱数にも自乗剰余乱数と呼ばれる剰余乗算に基
づく乱数がある。
【0004】また、公開鍵暗号方式は、暗号化鍵と復号
鍵とが異なり、暗号化鍵は公開し、復号鍵は受信者が秘
密に保持するもので、公開された暗号化鍵から復号鍵を
推定するのが困難なようになっているものである。この
公開鍵暗号方式には、RSA暗号やエルガマル暗号など
の剰余乗算に基づく暗号が知られている。
【0005】これらの暗号は、秘密通信機能の他に、認
証と呼ばれるもう1つの用途があることが注目されてい
る。認証とは、通信文の送信者が正しいか否かを検査す
る機能であり、デジタル署名とも呼ばれている。公開鍵
暗号を用いたデジタル署名では、送信者のみが知ってい
る秘密鍵で署名でき、偽名できないので安全であり、認
証通信として金融機関などで多く用いられている。
【0006】また、秘密鍵暗号方式、公開鍵暗号方式
は、鍵配送方式または鍵共有方式と呼ばれる技術と共に
用いられることが多い。鍵配送方式としては、Diff
ieとHellmanによるDH型鍵配送方式が知られ
ているが、この方式も剰余乗算を用いて演算を行う。さ
らに、鍵共有方式として、ID−based鍵共有方式
が注目されているが、種々の鍵共有方式において剰余乗
算が用いられている。
【0007】他に、暗号技術には零知識証明と呼ばれる
ものがあり、暗号の世界では、今、最も関心を集めてい
る。これは、例えばAが間違いなくAであることを証明
するために、AがA固有の情報(知識)を持っているこ
とを、そのA固有の知識を相手に一切提示することなく
(=零知識)、すなわち、他者がAに“なりすます”こ
とができないような形で、相手に納得させる(=証明)
方式である。これにも、剰余乗算に基づく種々の方法が
ある。
【0008】従って、高速な剰余乗算が行えれば、種々
の暗号システムに対する高速化が実現できる。これらの
詳細については、池野信一,小山謙二著「現代暗号理
論」(電子情報通信学会:1986)、辻井重男,笠原
政雄著「暗号と情報セキュリティ」(昭晃堂:199
0)等に詳しく説明されている。
【0009】
【発明が解決しようとする課題】しかし、RSA暗号、
エルガマル暗号、鍵配送・共有、デジタル署名、零知識
証明等により剰余乗算に基づいて暗号化を行う場合、剰
余乗算による演算処理が複雑になるため、大規模な演算
システムを必要とし、処理時間も長時間を要していた。
【0010】本発明は、このような事情の下になされた
もので、その目的は、小規模な回路により高速に暗号化
のための剰余乗算を行い得る暗号化用剰余乗算回路を提
供することにある。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、整数Ac,Bc,NによるAc・Bcm
od Nなる演算を行う剰余乗算回路において、数種類
の演算素子をパイプライン状に複数接続し、各演算素子
にAcをmaビット毎に分けたAna-j(j=1,2,
…,na)(ma,naは任意の整数)を上位桁から設
定し、Bcをmbビット毎に分けたBnb-j(j=1,
2,…,nb)(mb,nbは任意の整数)を上位桁か
ら1段目の演算素子に入力し、各演算素子においてRj
=Rj-1・X+Ana-j・Bc mod N、またはRj
j+Ana-j・Bc mod N(j=1,2,…,n
a)を計算して次段の演算素子に入力し、当該演算を繰
返すことによって最終段の演算素子からAc・Bc m
od Nの剰余乗算結果を得るよう構成されている。
【0012】そして、前記数種類の演算素子のうちの1
つは、第1の演算素子として、maビット・mbビット
の乗算を行う乗算部と、前段の演算素子からの最初の出
力を受けて剰余Ej-1、または−Q・Nを出力する剰余
出力部と、前記乗算部、剰余出力部、前段の演算素子の
各出力を加算する加算部と、該加算部からの出力を格納
する格納部とを有しており、前記数種類の演算素子のう
ちの1つは、第2の演算素子として、前段の演算素子
(第1の演算素子等)からの出力をキャリーとともに加
算する加算部と、最上位桁から剰余Ej-1、または−Q
・Nを出力する剰余出力部と、最上位桁にキャリーが生
じないように前記剰余出力部を制御する制御部とを有し
ている。
【0013】
【作用】整数Ac,Bc,NによるAc・Bc mod
Nなる演算を行うに当たって、パイプライン状に接続
された各演算素子には、Acをmaビット毎に分けたA
na-j(j=1,2,…,na)(ma,naは任意の整
数)が上位桁から設定される。また、1段目の演算素子
には、Bcをmbビット毎に分けたBnb-j(j=1,
2,…,nb)(mb,nbは任意の整数)が上位桁か
ら入力される。そして、各演算素子では、Rj=Rj-1
X+Ana-j・Bc mod N、またはRj=Rj+A
na-j・Bc mod N(j=1,2,…,na)が計
算されて次段の演算素子に入力される。このような演算
を繰返すことにより、最終段の演算素子からAc・Bc
mod Nの剰余乗算結果が得られる。
【0014】この場合、前記数種類の演算素子のうちの
1つ(第1の演算素子)を構成する乗算部は、maビッ
ト・mbビットの乗算を行い、剰余出力部は、前段の演
算素子からの最初の出力を受けて剰余Ej-1、または−
Q・Nを出力し、加算部は、前記乗算部、剰余出力部、
前段の演算素子の各出力を加算し、格納部は、加算部か
らの出力を格納する。
【0015】また、前記数種類の演算素子のうちの1つ
(第2の演算素子)を構成する加算部は、前段の演算素
子(第1の演算素子等)からの出力をキャリーとともに
加算し、剰余出力部は、最上位桁から剰余Ej-1、また
は−Q・Nを出力し、制御部は、最上位桁にキャリーが
生じないように前記剰余出力部を制御する。
【0016】
【実施例】以下、本発明の実施例を図面に基づいて詳細
に説明する。
【0017】図1は、本発明の実施例による暗号化用剰
余乗算回路を含む暗号装置、および暗号通信システムを
適用した通信系を示しており、ローカルエリアネットワ
ークのような局所的、または電話回線網等の大域的な通
信網Lに多数の通信端末T1〜Tnが相互通信可能に接
続されている。
【0018】図1において、各通信端末T1〜Tnに
は、暗号化用剰余乗算回路を含むRSA暗号などの暗号
装置が内蔵されているが、この暗号装置は、各通信端末
T1〜Tnと通信網Lの間に挿入してもよい。また、I
Cカードのような携帯用の媒体に暗号装置の機能を搭載
し、必要なときに通信端末T1〜Tnに接続(装着)し
てもよい。さらに、磁気ディスク等の記録媒体を通信網
Lに代わる通信路とみなし、暗号化用剰余乗算回路を含
む暗号装置を、その記録媒体へのデータの入出力装置に
内蔵したり、その入出力装置に接続された端末に含ませ
たり、またはICカード等の携帯用の媒体に搭載し、必
要なときに端末に接続(装着)してもよい。これによっ
て、記録装置においても、通信網の場合と同様に、個別
に暗号システムを利用することができるようになる。
【0019】暗号装置内の暗号化用剰余乗算回路は、各
自の秘密鍵または公開鍵に基づいてRSA暗号化、ラビ
ン暗号化、エルガマル暗号化を行って暗号通信する場合
や、その暗号通信において認証、鍵配送・共有、デジタ
ル署名、零知識証明等を行う場合の暗号化の過程におい
て利用される。
【0020】次に、図1の通信系において、利用者Aか
ら利用者Bへ通信文MをRSA暗号を用いて暗号通信す
る場合の手順を示す。ただし、利用者A〜Zの公開鍵e
i(i=A 〜Z)は公開されており、利用者A〜Zは各自
の秘密鍵di(i=A〜Z)を秘密に保持しているものと
する。また、公開鍵と秘密鍵の間には、
【数1】ei・di=1(mod L) の関係が成り立つものとする。ただし、N=p・qであ
る大きな素数p,qとしたとき、Lは(p−1)と(q
−1)の最小公倍数である。
【0021】(手順1A)…利用者Aは、次に示す数式
2に基づいて、利用者Bの公開鍵eBにより通信文Mを
暗号化し、その暗号化された暗号文Cを利用者Bに送
る。
【数2】 (手順2A)…利用者Bは、次に示す数式3に基づい
て、自分の秘密鍵dBにより通信文Cを復号し、もとの通
信文Mを得る。
【数3】
【0022】これにより、手順1Aと手順2Aの間の通
信路では、通信文Mは暗号文Cに暗号化されて秘密通信
を行うことができる。すなわち、利用者Aは、利用者B
以外の利用者の秘密鍵では復号できないようにするた
め、利用者Bの公開鍵eBにより通信文Mを暗号化した
通信文Cを利用者Bに送り、利用者Bは、この暗号化し
た通信文Cを自分だけが知っている自己の秘密鍵dBによ
り復号するので、暗号通信が成立する。
【0023】従って、手順1A,2Aの演算を実行する
装置がRSA暗号による暗号装置となり、効率的な暗号
装置を構成できれば、効率的な暗号通信システムを構築
できる。RSA暗号による暗号装置において要求される
上記手順1A、手順2Aの数式2、数式3の演算を行う
回路は、同様の回路構成で実現できる。
【0024】手順1Aにおける数式2について考える
と、この数式2の演算を実行するアルゴリズムは、次の
ように表すことができる。ただし、eはkビットからな
る整数であり、e=[ek,k-1,…e2,1]で表され
るとする。
【0025】 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 従って、手順1A,2Aは、C=C・B mod N
(BはMまたはC)の剰余乗算の繰返しにより実現され
る。
【0026】次に、利用者Aと利用者BがDH型公開鍵
配送方式を用いて鍵配送・共有する場合の手順を示す。 (手順0B)…素数pと原始根αを定め、公開鍵として
前もって全員に知らせておく。 (手順1B)…利用者Aは0<XA<pなる整数XAを任
意に選んで秘密に保持し、次の数式4で得られるYA
利用者Bに送信する。
【数4】 利用者Bも0<XB<pなる整数XBを任意に選んで秘密
に保持し、次の数式5で得られるYBを利用者Aに送信
する。
【数5】 (手順2B)…上記のようにして利用者A,B間で
A、YBを交換した後、利用者Aは、共有鍵Kを次の数
式6により得る。
【数6】 利用者Bも、YA、YBを交換した後、共有鍵Kを次の数
式7により得る。
【数7】
【0027】以上の手順により、利用者A,Bは鍵K=
α" XA B mod p(なおX"XA・XBはXのXA・XB
を意味する。以下、一般に文章中におけるべき乗は、
X"m=Xのm乗という表現形式で表わすこととする)を
共有することができる。なお、YAとYBが第3者に知ら
れたとしても、それらからXA、XB、Kを推定すること
はできない。さらに、素数pと原始根αが判っていて
も、XA、XB、Kを推定するには離散的対数を解く莫大
な計算量が必要となり、事実上XA、XB、Kを推定する
ことは不可能である。これにより、生成された暗号化鍵
(共有鍵K)により暗号化処理を行うことができるよう
になる。
【0028】従って、手順1B,2Bの演算を実行する
装置がDH型公開鍵配送方式による鍵配送・共有装置と
なる。また、暗号方式が剰余乗算に基づく方式である場
合には、同一の回路によって鍵配送・共有装置と暗号装
置とを構成できる。従って、効率的な剰余乗算回路を構
成できれば、効率的な鍵配送・共有及び暗号システムを
構築できるようになる。
【0029】DH型公開鍵配送方式による鍵配送・共有
装置は、手順1B,2Bに対して、A,Bともに同様の
回路で構成できる。手順1Bに対応するY=α"x
odpについて考えると、手順1Bを実行するアルゴリ
ズムは、次のように表すことができる。ただし、Xはk
ビットからなる整数であり、X=[Xk,k-1,…,X2,
X1 ]で表されるとする。
【0030】 INPUT α,X,p (入力) C=1 (初期設定) FOR i=k TO 1 IF Xi=1 THEN C=C・α mod N (演算1) IF i>1 THEN C=C・C mod N (演算2) NEXT 従って、手順1B,2Bは、C=C・B mod N
(BはαまたはC)の剰余乗算の繰返しにより実現され
る。
【0031】次に、利用者Aから利用者Bへ通信文Mを
RSA暗号を用いて署名付き暗号通信を行う場合の手順
を示す。ただし、利用者A〜Zの公開鍵ei(i=A 〜
Z)は公開されており、利用者A〜Zは各自の秘密鍵di
(i=A〜Z)を秘密に保持しているものとする。また、
公開鍵と秘密鍵の間には、上記数式1の関係が成り立つ
ものとする。
【0032】送信側: (手順1C)…利用者Aは、次に示す数式8に基づい
て、自己(A)の秘密鍵dAにより通信文Mに署名し、署
名文Sを作成する。
【数8】 (手順2C)…利用者Aは、次に示す数式9に基づい
て、公開鍵eBにより署名文Sを暗号化し、暗号文Cを利
用者Bに送信する。
【数9】
【0033】受信側: (手順3C)…利用者Bは、次に示す数式10に基づい
て、自己(B)の秘密鍵dBにより暗号文Cを復号し、元
の署名文Sを得る。
【数10】 (手順4C)…利用者Bは、次に示す数式11に基づい
て、利用者Aの公開鍵eAを用いて署名文Sを復元し、元
の通信文Mを得る。
【数11】
【0034】もし、通信文Mが意味のある文であれば、
利用者Bは、この通信文Mを確かに利用者Aから受信し
たことを確認する。この場合、送信者Aの公開鍵は不特
定多数に公開されているので、利用者Bに限らず全ての
利用者が利用者Aの署名文Sを手順4Cに従って認証で
き、送信者Aは、通信文Mを利用者Bに送信したことを
否定することはできなくなる。さらに、署名文Sは、暗
号文Cに暗号化されて秘密通信を行うことができる。す
なわち、送信者Aは、自己の秘密鍵dAにより通信文Mに
署名し、送信相手Bの公開鍵eBにより暗号化して送信相
手Bに送信するので、署名付き暗号通信が成立する。
【0035】従って、手順1C〜4Cの演算を実行する
装置がRSA暗号による署名付き暗号装置となり、効率
的な剰余乗算回路を構成できれば、効率的な署名付き暗
号通信システムを構築できるようになる。
【0036】RSA暗号による署名付き暗号装置は、手
順1C〜4Cに対して同様の回路で構成できる。手順1
Cに対応するS=M"d mod Nについて考えると、
手順1Cを実行するアルゴリズムは、次のように表すこ
とができる。ただし、dはkビットからなる整数であ
り、d=[dk,k-1,…,d2,d1 ]で表されるとす
る。
【0037】 INPUT M,d,N (入力) S=1 (初期設定) FOR i=k TO 1 IF di=1 THEN S=S・M mod N (演算1) IF i>1 THEN S=S・S mod N (演算2) NEXT 従って、手順1C〜4Cは、S=S・B mod N
(BはMまたはS)の剰余乗算の繰返しにより実現され
る。
【0038】次に、利用者Aから利用者Bへ通信文Mを
RSA暗号を用いて認証通信を行う場合の手順を示す。
ただし、利用者A〜Zの公開鍵ei(i=A 〜Z)は公開
されており、利用者A〜Zは各自の秘密鍵di(i=A〜
Z)を秘密に保持しているものとする。また、公開鍵と
秘密鍵の間には、上記数式1の関係が成り立つものとす
る。
【0039】(手順1D)…利用者Aは、上記した数式
8に基づいて、自己(A)の秘密鍵dAにより通信文Mに
署名し、署名文Sを利用者Bに送信する。 (手順2D)…利用者Bは、次に示す数式12に基づい
て、利用者Aの公開鍵eAにより署名文Sを復元し、元の
通信文Mを得る。
【数12】
【0040】もし、通信文Mが意味のある文であれば、
利用者Bは、この通信文Mを確かに利用者Aから受信し
たことを確認する。この場合、送信者Aの公開鍵は不特
定多数に公開されているので、利用者Bに限らず全ての
利用者が利用者Aの署名文Sを手順2Dに従って認証で
き、送信者Aは、通信文Mを利用者Bに送信したことを
否定することはできなくなる。すなわち、送信者Aは、
自己の秘密鍵dAにより通信文Mに署名して利用者Bに送
信したことになり、認証通信が成立する。
【0041】従って、手順1D,2Dの演算を実行する
装置がRSA暗号による認証装置となり、効率的な剰余
乗算回路を構成できれば、効率的な認証通信システムを
構築できるようになる。
【0042】RSA暗号による署名付き暗号装置は、手
順1Dの署名生成と手順2Dの署名検査に対して同様の
回路で構成できる。手順1Dの署名生成に対応するS=
M”d mod Nについて考えると、この署名生成を
実行するアルゴリズムは、前述したRSA暗号による署
名付き暗号装置の場合と全く同様に表される。従って、
署名生成と署名検査は、S=S・B mod N(Bは
MまたはS)の剰余乗算の繰返しにより実現される。
【0043】次に、利用者Aが利用者Bに零知識証明を
する場合の手順を示す。 (手順0E)…まず、利用者Aは、素数p、p −1以下
の整数a、p −2以下の秘密の乱数xを任意に選択し
て、次式で示されるbを計算する。そして、利用者A
は、xを秘密に保ちつつ、(a,b,p)を認証者Bに
送信しておく。
【数13】
【0044】(手順1E)…利用者Aは、乱数rを選択
し、次式に示すRを計算して認証者Bに送信する。
【数14】 (手順2E)…利用者Bは、2進数e=0、または1を
ランダムに選択し利用者Aに送信する。 (手順3E)…利用者Aは、2進数eを受信すると、e
=0ならば乱数rを認証者Bに送信する。e=1なら
ば、次式に示すtを計算して認証者Bに送信する。
【数15】t=(x+r) mod (p−1) (手順4E)…認証者Bは、e=0のときは、次式に示
すRrを計算してRr=Rmod pを検査し、e=1の
ときは、次式に示すRtを計算してRt=b mod p
を検査する。
【数16】 (手順5E)…検査式が成立しないときは、利用者Aで
ないことが確認されたので終了する。検査式が成立する
ときは、手順1E〜4Eを繰返す毎に利用者Aである確
率が高くなる。
【0045】この例は、離散対数問題に対する零知識証
明である。2進数e=0の場合は、利用者Aが乱数xを
保持しているか否か不明であり、いわゆる“なりすま
し”が可能である。しかし、2進数e=1の場合は、本
当に乱数xを保持していないと検査式が矛盾する。従っ
て、認証者Bが2進数eの値を完全にランダムに選択す
るとすれば、1/2の確率で2進数e=1が選択される
ので、十分大きなn回の繰返し対してほぼ“1”の確率
でa"t=b・R mod pが検査されることになる。
【0046】手順0E,1E,3E,4Eの剰余乗算回
路は、同一の回路で構成できる。例えば手順0Eの数式
13のb=a"x mod pについて考えると、手順0
Eを実行するアルゴリズムは、次のように表すことがで
きる。ただし、xはkビットからなる整数であり、k=
[xk,k-1,…,x2,1]で表されるとする。
【0047】 INPUT a,x,p (入力) C=1 (初期設定) FOR i=k TO 1 IF xi=1 THEN C=C・a mod p (演算1) IF i>1 THEN C=C・C mod p (演算2) NEXT 従って、手順0Eは、C=C・B mod p(Bはa
またはC)の剰余乗算の繰返しにより実現される。
【0048】以下に、効率的な剰余乗算回路の構成法を
説明する。 [剰余乗算回路例1]R=A・B mod N(A,
B,Nはk=m・nビットの整数)の剰余乗算を考えた
場合、Aを1ビット毎、Bをmビット毎に分割すると、
A、Bは次のように表せる。
【数17】
【数18】 ここで、X=2"mとし、A、Bについて上位桁から分割
したビット系列を夫々Ak-j(j=1,…k)、B
n-i(i=1,…n)とする。この場合、剰余乗算は、
次の演算をj=1からkに対して繰返すことによって求
められることが知られている。
【数19】 Rj=Rj-1・2 + Ak-j・B − Q・N ただし、Q=[Rj-1/N] ,R0=0
【0049】この演算を次のようなアルゴリズムで実行
する。 D0,n-i−1=0 , C0,n-i−1=0 FOR j=1 TO k FOR i=1 TO n NEXT NEXT ただし、
【数20】
【数21】 であり、 dwm-1(Z):Zの2"m-1桁以下の値 upm-1(z):zの2"m以上の値を2"mで割った値であ
る。
【0050】図2は、上記アルゴリズムにおいてPEと
示された処理を行う回路を示し、図3は、図2の回路を
1つの演算素子として、縦続に複数接続したシストリッ
クアレイである(村岡洋一著「並列処理」昭晃堂,19
86,pp131〜133参照)。シストリックアレイ
は、プロセッシング・エレメント(PE)と呼ばれる小
さな数種類の演算素子によるパイプライン処理によって
演算が実行される。従って、図2に示す回路は図3のシ
ストリックアレイのプロセッシング・エレメントPEと
なる。
【0051】上記アルゴリズムにおける「i」はクロッ
クを意味し、「j」は図3におけるプロセッシング・エ
レメントPEの#の数値(エレメントNo.)に対応
し、左から右にj=1(#1)からj=k(#k)とな
るプロセッシング・エレメントPEの位置を示す。図3
の各プロセッシング・エレメントPEは、Ak-j(j=
1,…k)の値が内部レジスタに設定されている。プロ
セッシング・エレメントPE間は、BinとBout、Sin
とSout、DinとDout、CinとCout、TinとToutが各
々接続される。このとき、Cout以外の出力は、各レジ
スタRによって、1クロック遅延されて出力される。ま
た、#1(j=1:1段目)のプロセッシング・エレメ
ントPEのBinは、Bn-i(i=1,…n)が上位桁か
ら順に入力され、それに合わせてTinから後述するタイ
ミング信号Tn-i(i=1,…n)が入力される。ま
た、#1の1段目のプロセッシング・エレメントPEの
Din、Sin、Cin入力には、夫々「0」が設定される。
【0052】次に、プロセッシング・エレメントPEの
構成要素、および動作を乗算部、加算部、剰余部、遅延
部に分解して説明する。 (a)乗算部 乗算部は、図2のAk-jを設定するレジスタR1と乗算
器M1によって構成される。乗算器M1は、Ak-jが1
ビットであるので、Ak-j=1のときBinから入力され
るBn-iを出力するm個のアンドゲートにより簡単に構
成できる。また、Ak-jを設定するレジスタR1は、1
ビットのレジスタでよい。
【0053】(b)加算部 加算部は、図2の加算器A1とその出力を受けるレジス
タR2によって構成される。加算器A1は、乗算器M1
の出力Ak-j・Bn-iと後述する剰余出力Ej-1,n-iとDi
n,Cinからの信号を入力する4入力加算器によって構
成される。Dinからは、接続された前段のプロセッシン
グ・エレメントPE(#j−1のPE)のレジスタの
(m−1)ビット以下の値がDj-1,n−i(i=1,
…n)として入力される。入力されたDj-1,n-iは、1
ビット上位へシフトされ、最下位桁に「0」が挿入され
ることにより2・Dj-1,n-iとして加算器A1に入力さ
れる。また、Cinからの入力は、2つ前の2段前のプロ
セッシング・エレメントPE(#j−2のPE)のレジ
スタのmビット以上の値であり、Cj-2,n-iと表され
る。このCj-2,n-iは、2・Dj-1,n-iと同じ桁であり、
キャリービットとして加算器A1に入力される。また、
k-j・Bn-iとEj-1,n-iは、mビットの値であるの
で、加算器A1からの出力は、(m+2)ビット(2ビ
ットはキャリービット)になる。従って、加算器出力を
受けるレジスタR2は、(m+2)ビットのレジスタで
よい。
【0054】(c)剰余部 剰余部は、Sinから入力されるSj-1,n-1の値を保持す
るレジスタR3と、剰余Ej-iを出力する剰余出力回路
C1からなる。剰余Ej-1は、数式7,8によってS
j-1,n-1から導かれ、タイミング信号Tn-iに応じてmビ
ット毎にEj-1,n-iとして出力される(Tn-in-1を表
す)。Ej-1,n-iはBn-iと同じ桁であるので、Tn-i
n-iは同期して入力される。Sj-1,n-1は3ビットの値
であり、Tn-in-1を表すので、log nビットの値
である。従って、3+log nビット入力、mビット
出力を持つROMによって、Ej,n-iの出力回路(剰余
出力回路C1)を実現することができる。また、Sj-1,
n-1を入力・保持する3ビットのレジスタとセレクタも
必要とする。
【0055】(d)遅延部 Bin、Tinから入力されるBn-iとTn-iの値をパイプラ
イン的に伝送するためのレジスタR4,R5によって構
成される。レジスタR4,R5は、Bn-i,n-iに対し
て各々mビット、log nビットを必要とする。
【0056】以上の説明から、図2に示した1つのプロ
セッシング・エレメントPEにより、Ak-jに対する数
式19の演算を実行できることが判る。このようなプロ
セッシング・エレメントPEをAk-j(j=1,…k)
に対してK個パイプライン状に接続し、クロックに同期
させて動作させることによって、剰余乗算R=A・Bm
od Nを高速に実行することが可能となる。
【0057】図4は、k=n=m=4とした場合の図3
の回路の動作を示すタイムチャートを示している。この
場合、図2,3において、Ak-jを設定するレジスタ以
外の各レジスタの初期状態は、全て「0」としている。
以下、図4のタイムチャートを参照しながら図3の回路
の動作を説明する。
【0058】1段目のプロセッシング・エレメントPE
(j=1)において、BがBinからmビット毎にB3,
…B0の順で入力されると、その値を受ける乗算器から
A3・Bn-i(i=1,…4)が順次出力される。これを
加算器に入力しレジスタでラッチした値をRxとする。
Rxの下位4ビットをDxで表すと、1段目のプロセッシ
ング・エレメントPEからは、D15,D11,D7,D3が
出力される。ここで、Dxにおける添字Xは得られたビ
ット系列の最下位桁−1の値を表すが、この値は、次の
ようにして決定される。
【0059】すなわち、Aは1ビット毎に分解されるの
で、Ak-jはAの(k−j)+1桁目のビットを表す。
また、Bは、m=4より4ビット毎に分解されるので、
Bn-iはBの4・((n−i)+1)桁目から4(4−
i)+1桁目までのビットb4((n-i)+1)-1)〜b4(n-i)
を表す。従って、Ak-j・Bn−iは、多項式の乗算で
考えると、4・((n−i)+1)+(k−j)桁目か
ら4(n−i)+(k−j)+1桁目のビットを表す。
Rx=Ak-j・Bn-i+Ex+Dx+Sxであり、Rxの最下
位桁は、Ak-j・Bn-iの最下位桁と同じであるので、X
=4(n−i)+(k−j)となる。
【0060】2段目のプロセッシング・エレメントPE
(j=2)において、1クロック遅れてBがBinからm
ビット毎に入力されると、乗算器M1からA2・Bn-i
(i=1,…4)が出力される。このとき、Dinから最
初の入力D15が入力されているので、再上位桁d18は、
数式20,21に従って剰余E14〜E2に変換され、タ
イミング信号Tn-i(Tn-iはBn-iに同期したn−iを
表す3,…0の値)に従って出力される。ここで、Ex
も4ビット毎の出力である。j≠1の場合、ExとDx,
Sxは「0」とは限らないので、D14〜D2とS18〜S6
の出力がレジスタから出力される。ここで、S18〜S6
は、加算によって生じた桁上がりキャリーであり、Rx
の上位2ビットの値である。
【0061】次の3段目のプロセッシング・エレメント
PE(j=3)においても、j=2の2段目のプロセッ
シング・エレメントPEと同様の演算が行われるが、剰
余は、D14の再上位桁D17以上の値(S18を含む)から
数式20,21によって生成される。
【0062】最終段のプロセッシング・エレメントPE
(j=4)においても、j=3の3段目のプロセッシン
グ・エレメントPEと同様の演算が行われるが、ここで
は、J=2の2段目のプロセッシング・エレメントPE
からのキャリーが更に加算される。ここで、最終段のプ
ロセッシング・エレメントPEでの加算は、最初E12で
示されるように、16桁から13桁目である。2段目の
プロセッシング・エレメントPEからの最初のキャリー
は、S14の2ビットであるので、16桁目と15桁目で
ある。従って、同じ加算器A1によって加算できる。こ
の最終段のプロセッシング・エレメントPEからの出力
が、剰余乗算の結果となっていることが判る。また、図
2の1つのプロセッシング・エレメントPEにより、A
k-jに対する数式19の演算を実行できることも判る。
【0063】[剰余乗算回路例2]シストリックアレイ
は、全てのプロセッシング・エレメントPEで同一の処
理が行われ、プロセッシング・エレメントPE間の入出
力関係も同一である。従って、シストリックアレイは、
同一回路の時分割処理が行い易いアーキテクチャとなっ
ている。最も簡単な構成は、図5に示したように、1つ
のプロセッシング・エレメントPEとメモリ1によって
実現できる。
【0064】この剰余乗算回路は、次のように動作す
る。すなわち、 (a) 最初、プロセッシング・エレメントPEにA
k-1を設定し、Tn-i(i=1,…n)を順次プロセッシ
ング・エレメントPEに入力する。剰余乗算回路例1に
おいて示したように、1つのプロセッシング・エレメン
トPEは、Ak-jに対する数式6の演算を実行するの
で、その出力であるR=Ak-1・Bがメモリ1に入力さ
れる。また、Bn-i,n-i(i=1,…n)の入力が終
り次第、プロセッシング・エレメントPEの設定をAk-
2に変更する。
【0065】(b) メモリm内の前演算結果であるR
をプロセッシング・エレメントPEにフィードバック入
力し、Bn-i,n-iも繰返し入力する。それによって、
プロセッシング・エレメントPEからR=R・X+A
k-2・B−Q・Nが出力されるので、その出力を再びメ
モリに蓄える。
【0066】(C) 以下、順次、プロセッシング・エ
レメントPEの設定を、Ak-j(j=3,…k)に変更
して、同様の処理を繰返す。このようにして、図5の簡
単な回路により、剰余乗算が実行される。これは、k個
のプロセッシング・エレメントPEが各々1回ずつ行っ
た演算を、1個のプロセッシング・エレメントPEによ
りk回実行することにより可能となったものである。
【0067】なお、図5のプロセッシング・エレメント
PEを1個ではなく、P個パイプライン状に接続し、各
プロセッシング・エレメントPEにAk-j〜Ak-j+p-1
連続して設定することによって、P個のプロセッシング
・エレメントPEによるK/P回の演算の繰返しで剰余
乗算を実行することができる。これは、P個のプロセッ
シング・エレメントPEの回路規模を、処理速度(K/
P回の演算)でトレードオフしたものと考えることがで
きる。このように、シストリックアレイで構成した回路
は、簡単に回路規模と処理速度のトレードオフができ、
回路の小型化を図ることができる。
【0068】[RSA暗号装置、DH型公開鍵配送装
置、および零知識証明装置用の剰余乗算回路例1]キャ
リーを持たない入力に対する剰余乗算を実行する場合に
は、前述の剰余乗算回路例1,2のような剰余乗算回路
でよい。ただし、この回路から得られる剰余乗算結果
は、mビット毎に1ビット以上のキャリービットを含
む。この場合、キャリービットの補正は、別の回路によ
り行った方が回路構成も簡単で処理時間も短くて済む。
しかし、RSA暗号、DH型公開鍵配送方式、零知識証
明のように前の剰余乗算の結果を用いて剰余乗算を繰返
す場合に補正を別回路で行うと、キャリー補正は剰余乗
算結果が最後のプロセッシング・エレメントPEから出
力され終わった時点から開始されるので、その間、シス
トリックアレイの他のプロセッシング・エレメントPE
は待ち状態になり、効率が低下する。そこで、キャリー
を考慮したシストリックアレイを考える必要がある。
【0069】ここで、数式17,18のビット系列に対
してmビットに1ビットの割合でキャリービットを持つ
ビット系列を各々Ac、Bcとする。Ac、Bcのキャリー
ビットの系列を各々a、bとすると、Ac、Bcは各々次
のように表すことができる。
【数22】
【数23】
【0070】ここで、Ac、Bcに対するRc=Ac・Bc
mod Nの剰余乗算は、BをBcに替えた数式6の
演算をm回行う度に1度、Acのキャリービットak-j
対して、
【数24】Rj=Rj+ak-j・Bc−Q・N の演算を行うことによって実行される。ただし、ak-j
は、前段での演算の係数Ak-jと同じ桁であるので、右
辺のRjは、数式19と異なり2倍されず、jの値もイ
ンクリメントされない。
【0071】そこで、Ac、Bcに対するRc=Ac・Bc
mod Nの剰余乗算は、次のようなアルゴリズムで
表せる。 D0,n-i−1=0;C0,n-i−1=0 FOR s=1 TO k/m FOR c=1 TO m FOR i=1 TO n P j=(s−1)・m+c NEXT NEXT P FOR i=1 TO n NEXT NEXT FOR i=1 TO n NEXT
【0072】ただし、 Sk+1,n-i・Xn=Qk+1・N+Ek+1j-1=Ej-1,n-1・Xn-1+…+Ej-1,1・X+Ej-1,0 Sk+1,n-1:upm(Rk,+1,n-i)+upm(Rk+1,n-1) または、upm(Rk,n-1)+upm(Rk+1,n-i)+1
【0073】上記アルゴリズムに示したPEA、PE
B、PECの処理は、図6、図7、図8のようなプロセ
ッシング・エレメントPEによって夫々実現できる。
【0074】(PEA)図6に示したPEAの処理を行
うプロセッシング・エレメントPEは、上記アルゴケズ
ムにおいてPEAとして示された部分のBをBcに替え
た数式19に対する処理を行う。ただし、図2のプロセ
ッシング・エレメントPEとの違いは、Bcのキャリー
処理を行うためにBcに関する入力をBn-iからBn-i
n-iにしたことである。従って、図6に示すように、
n-iとbn-iを同時にBinとbinから入力し、Ak-j
の論理積をとる。よって、プロセッシング・エレメント
PEの乗算部のアンド回路は、m+1個になる。ただ
し、Ak-j・bn-iのアンド出力は、Ak-j・Bn-iのアン
ド出力の最下位ビットと同じ桁である。
【0075】(PEB)図7に示したPEBの処理を行
うプロセッシング・エレメントPEは、上記アルゴケズ
ムにおいてPEBとして示された数式24に対する処理
を行う。従っ23て、PEAをm回行う毎に1回PEB
の処理を行う。PEBには、Acのキャリービットak-j
が設定される。数式24の右辺のRjは2倍されないの
で、前段のプロセッシング・エレメントPEのレジスタ
出力Rj-1,n-iのmビット以下をDj-1,n-iとしてD´in
から入力し、m+1ビット以上をSj-1,n-iとしてS´i
nから入力する。これによって、図7のプロセッシング
・エレメントPEによって数式11の演算が実行され
る。
【0076】(PEC)図8に示したプロセッシング・
エレメントPEによりなされるPECの処理は、剰余乗
算の最終出力のキャリービットをmビット毎に1ビット
とするために行われる。従って、上記アルゴリズムにお
いては、最後に1度だけPECの処理が実行される。
【0077】すなわち、図8に示したプロセッシング・
エレメントPEは、まず、前段のプロセッシング・エレ
メントPEからの出力であるDout、Sout、Coutを加
算加算器A2により加算して1つの値Rk,n-iのする。
次に、Rk,n-iのmビット以上の値Ck,n-iをレジスタR
6で遅延させて、加算器A3にてmビット以下の値D
k,n-iと加算することによって、その加算結果のキャリ
ーCk;1,n-iを1ビットにする。ただし、最上位桁のキ
ャリーCk,n-1は、別のレジスタR7に保持しておく。
次に、最終結果の最上位桁のキャリービットを「0」に
するために、加算器A4により、レジスタR7に保持し
た最上位桁のキャリーCk,n-1とレジスタR8にて遅延
された最上位桁のキャリーCk+1,n-1とを加算すること
により、最上位桁の剰余Ek+1,n-1を計算し、最終結果
の最上位桁であるDk+1,j-1+Ck+1,n-2+Ek+1,n-1
予め計算する。
【0078】ここで、この最上位桁にキャリーが生成さ
れる場合、最終結果であるRk+2,n-iの演算には、1+
k,n-1+Ck+1,n-iに対する剰余を出力し、最上位桁の
キャリービットが無いように判定・制御する。この判定
は、回路は、図8における判定回路Jにより行われる。
なお、この判定回路Jは3ビットのROMと加算器によ
って実現される。
【0079】従って、RSA暗号装置、DH型公開鍵配
送装置、および零知識証明装置は、図9のような構成を
もつシストリック剰余乗算回路によって実現される。図
9において、PEAのm個毎にPEBが1個用いられ、
剰余乗算の最後にPEBの代わりにPECが1個用いら
れる。これによって、図9のシストリックアレイと同様
の構成を持つ回路に図9からの出力を入力しても同様の
剰余乗算を実行することができる。
【0080】また、シストリックアレイの小型化に対し
ても、図6のプロセッシング・エレメントPEを中心に
PEA〜PECの機能をセレクタによって切替えるプロ
セッシング・エレメントPEを1つ含む回路によって同
様の小型剰余乗算回路を構成できる。PEA〜PECの
機能は類似しているので、大部分の回路を共有でき、プ
ロセッシング・エレメントPEの共通化のための回路規
模の増大は小さい。
【0081】PEA〜PECの機能の共通化には種々の
パターンが考えられるが、例として図10に示すような
プロセッシング・エレメントPEが考えられる。図10
のプロセッシング・エレメントPEは、PEA〜PEC
の全ての機能を含んだプロセッシング・エレメントであ
る。
【0082】図10のプロセッシング・エレメントPE
と図6〜図8のプロセッシング・エレメントPEとの相
違点は、以下の通りである。すなわち、 乗算部: 図10における乗算部は、PEA、PEBの
機能については、m+1個のアンド回路によって構成さ
れる乗算回路とAk-jまたはak-jを設定する1ビットレ
ジスタによって構成される。PECの機能については、
乗算部を有しない。
【0083】加算部: 図10における加算部は、PE
A、PEBの機能については、4入力加算器によって構
成される。この場合、4入力加算器は、3個の2入力加
算器で置き換えて考える。また、m+2ビットのレジス
タが設けられる。PECの機能については、2入力全加
算器3個と、m+1ビットレジスタ2個と、2ビットレ
ジスタ2個と、1ビットレジスタ1個と、判定回路によ
って構成される。判定回路は、3ビット入力mビット出
力のROMと加算器1個によって構成できる。
【0084】剰余部: 図10における剰余部は、PE
A、PECの機能については、(3+log n )ビ
ット入力mビット出力のROMと、3ビットのセレク
タ、レジスタにより構成される。PEBの機能について
は、Rの桁上がりがないので、(2+log n )ビ
ット入力mビット出力のROMと、2ビットのセレク
タ、レジスタにより構成される。
【0085】遅延部: 図10における遅延部は、PE
A、PEBの機能については、Bn-iに対するm+1ビ
ットのレジスタと、Tn-iに対するlog n ビット
のレジスタにより構成される。PECの機能について
は、Tn-iに対するlog nビットのレジスタのみで
よい。
【0086】m=8の場合、PEA〜PECの機能に対
応する回路規模は、図11のようになる。すなわち、図
9のシストリックアレイを構成するためには、PEAの
機能に対応する回路が512個、PEBの機能に対応す
る回路が63個、PECの機能に対応する回路が1個必
要となるが、簡単のために図9において最も多く用いら
れるPEAの機能に対応する回路が576個あるとする
と、図9のシストリックアレイの回路規模は、468K
ゲートとなる。
【0087】また、1クロックに必要な最大の処理時間
は、セレクタから剰余部のROMと加算器を通過する遅
延時間であるので、高速なROMを用いれば約50ns
ec程度で処理できると考えられる。RSA暗号、また
は零知識証明の鍵eまたはdを512ビットとした場
合、図9のシストリックアレイ1組によってRSA暗
号、零知識証明の暗号化と復号を200Kbps程度の
処理速度で実現できる。この処理速度は、200Kbp
sの転送速度でデータが入力されても、シストリックア
レイによるパイプライン処理によってバッファにオーバ
ーフローすることなく、リアルタイムで処理できる速度
を意味する。また、DH型公開鍵配送での手順1A,2
Aにおける指数XA,XBを各々512ビットとした場
合、図9のシストリックアレイ1組によってDH型公開
鍵配送を100Kbpsの処理速度で実現できる。この
処理速度は、100Kbpsの転送速度でデータが入力
されても、シストリックアレイによるパイプライン処理
によってバッファにオーバーフローすることなく、リア
ルタイムで処理できる速度を意味する。いずれの場合に
おいても、効率=処理速度/回路規模と定義すると、m
=8の場合の剰余乗算シストリックアレイの効率は、
0.42bps/ゲートとなる。
【0088】図12は、mの値を大きくしていった場合
のPEAの機能に対応する回路規模と処理効率を示した
ものであり、横列はmの大きさを示し、縦列は上から順
に、乗算部、加算部、剰余部、遅延部、PEAの機能に
対応する回路規模、図9の回路に必要なプロセッシング
・エレメントPEの数、図9の回路の回路規模、RSA
暗号の鍵e,d、またはDH型公開鍵方式の各指数
A,XBを512ビットとした場合の処理速度、効率を
示している。
【0089】mが大きくなるにつれて加算器に対する遅
延時間が積み重なっていくので、図12に示したよう
に、mが倍になっても処理速度は正確には倍にはなら
ず、倍より多少は小さくなると考えられる。しかし、m
が大きくなることによる処理速度の高速化と比較する
と、遅延時間の累積は無視できるほど小さい。従って、
mが大きくなるにつれて、効率は向上していくことが判
る。すなわち、mを大きくすれば効率のよい剰余乗算回
路を実現できるようになる。
【0090】また、この方式は、プロセッシング・エレ
メントPEを共通化すれば、p個のプロセッシング・エ
レメントPEによってp/k(p≦k)の回路の小型化
が可能となる。さらに、図9のシストリックアレイの出
力を同様のシストリックアレイに入力することができる
ので、プロセッシング・エレメントPEの数を増やして
いけば、処理速度はそれに比例して速くなる。従って、
この方式は、処理速度の高速化と回路規模の小型化を同
様の割合で図った剰余乗算回路を実現することができ
る。例えば、m=8の場合を考えると、q・812ゲー
ト(qは131072≧q≧1の整数)の回路規模でq
・347bpsの処理速度のRSA暗号装置の剰余乗算
回路が実現できる。また、m=128で考えると、q・
4867ゲートの回路規模でq・6.2Kbpsの処理
速度のRSA暗号装置、DH型公開鍵配送装置、または
零知識証明装置の剰余乗算回路が実現できる。
【0091】[RSA暗号装置、DH型公開鍵配送装
置、および零知識証明装置用の剰余乗算回路例2]PE
A〜PEA処理機能は、図11,12に示したように、
比較的小さな回路規模で実現できる。さらに、本発明に
よる剰余乗算回路は、シストリックアレイの小型化から
も判るように、任意のp個のプロセッシング・エレメン
トPEにより構成できる。従って、この方式は、任意の
回路規模で剰余乗算回路を構成でき、かつ、回路構成が
規則性を持つので回路化、およびゲート化を非常に単に
行えるという特徴を持っている。そこで、図13に示し
たように、プロセッシング・エレメントPEを1個から
数個を単位としてチップ化し(以後、SRC:シストリ
ックRSAチップと呼ぶ)、RAM2と組合わせ、それ
らを外部からプログラミング制御することによって、R
SA暗号装置、DH型公開鍵配送装置、および零知識証
明装置を簡単に実現することができる(図13において
SRCが1個の場合相当する)。この場合、外部からの
プログラミング制御は、ROM3により柔軟に対応する
ことができる。
【0092】また、さらなる高速処理が必要な場合は、
図13に示したように、複数個のSRCを縦続に接続す
ればよい。これによって、使用するプロセッシング・エ
レメントPEの数、すなわちSRCのチップ数に比例し
た高速化が簡単に行える。これもSRCの処理回数を制
御回によって変えるだけで簡単に実現することができ
る。以上のように、本発明による剰余乗算回路は、非常
に回路化し易く、かつ高速化も簡単に実現できる実用的
に方式であることが判る。
【0093】[ラビン暗号装置の例]ラビン暗号の暗号
化と復号は、平文をM、暗号文Cとしたとき、それぞ
れ、次のような数式25,26に基づいて実行されるこ
とが知られている。ただし、数式25,26における
p,qはn=p・qとなる大きな素数であり、bは0≦
b≦nとなる整数である。すなわち、暗号化は、
【数25】C=M(M+b) mod n に基づいて行い、復号は、次に示す連立方程式を解い
て、Mを求めることにより行う。
【数26】M2+Mb−C=0 (mod p ) M2+Mb−C=0 (mod q )
【0094】ラビン暗号の剰余乗算は繰返されず、1度
だけでよいので、図2,3によるシストリックアレイに
より実現できる。この場合、キャリービット処理は、フ
ルアダーなどによって構成される別回路によって簡単に
行える。また、小型化に対しては、図5,図13の回路
により実現できることも明らかである。
【0095】[エルガマル暗号装置の例1]秘密通信に
対するエルガマル暗号は、平文をM、暗号文C1,C2
したとき、それぞれ、次のような数式27,28に基づ
いて実行されることが知られている。ただし、数式2
7,28におけるpは大きな素数、αはmod p の
下での原始根、xは0<x<pなる任意の整数、yはy
=α"x mod p 、kは乱数であり、暗号化は、
【数27】 に基づいて行い、復号は、次に示す数式28を解いて、
Mを求めることにより行う。
【数28】
【0096】公開鍵p,αを1つの通信系に対して共通
化すると、C1=α"k mod pの演算は、ALi=αに
対する2のi乗乗として予め計算しておけるので、
【数29】 C=C・ALi mod p (Cの初期値は1) なる剰余乗算の繰返しに帰着できる。
【0097】この場合、Cはキャリービットを持つが、
ALiはキャリービットを持たないので、図6のプロセッ
シング・エレメントPEのみを用いたシストリックアレ
イによる剰余乗算回路を構成することができる。他の演
算は、RSA暗号と同様の演算によって実現できるの
で、エルガマル暗号装置もRSA暗号装置と同様の回路
構成で構成できることは明らかである。 [エルガマル暗号装置の例2]認証通信に対するエルガ
マル暗号は、平文をM、署名文をSとすると、次のよう
な手順で実行できることが知られている。ただし、pを
大きな素数、αをmod pの下での原始根、xを0<
x<pなる任意の整数、y=α"x mod p、kを乱
数、r=α"k mod pとする。ここでは、xが秘密
鍵であり、y、p、αが公開鍵である。
【0098】署名生成:平文Mと、rと、次のSを送信
する。
【数30】S=(M−x・r)/k mod p−1 署名検査:
【数31】 が成立すれば、認証したことになる。
【0099】公開鍵p,qを1つの通信系に対して共通
化すると、α"Mの演算はALi=αに対する2のi乗乗と
して予め計算しておけるので、C=C・ALi mod
p(Cの初期値は1)の剰余乗算の繰返しに帰着でき
る。この場合、Cはキャリービットを持つが、ALiはキ
ャリービットを持たないので、図6のプロセッシング・
エレメントPEを用いてシストリックアレイによる剰余
乗算回路を構成することができる。他の演算は、べき剰
余演算または剰余乗算によって実現される。従って、認
証用のエルガマル暗号装置も図11のような回路構成に
より実現できることは明らかである。
【0100】[ID−based鍵共有方式の例]ID
情報による認証を付けた次のようなID−based鍵
共有方式も知られている。すなわち、このID−bas
ed鍵共有方式では、 (手順1F)…センターは、一方向性関数としてRSA
暗号を公開する。すなわち、2つの素数p,q、および
復号鍵dを秘密に持ち、n(=p・q)と、暗号化鍵e
と、GF(p)と同時にGF(q)の原始元となるαと
を公開する。
【0101】(手順2F)…各利用者jは、ネットワー
ク加入時にセンターに自己のIDjを登録し、センター
から次式で示されるsjを受け取る。
【数32】 (手順3F)…利用者Aと利用者Bとで鍵を共有する場
合、利用者Aは乱数kAを任意に選択し、次式で示され
るcAを利用者Bに送信する。
【数33】 (手順4F)…利用者Bは乱数kBを任意に選択し、次
式で示されるcBを利用者Aに送信する。
【数34】 (手順5F)…利用者Aは、次のyを計算し、yを共有
鍵とする。
【数35】 (手順6F)…利用者Bは、次のyを計算し、yを共有
鍵とする。
【数36】
【0102】このID−based鍵共有方式において
も、手順2F〜6Fの計算は、全て剰余乗算によって実
現される。従って、図3,5,9,11に示した回路に
よって、このID−based鍵共有方式が構成できる
ことは明らかである。
【0103】[零知識証明装置の例]前述した零知識証
明方式の他に、次のような零知識証明方式がFiat、
Shamirによって提案されている。このアルゴリズ
ムは、整数nの素因数分解が未知のとき、nを法として
平方根を求める問題の困難さに基づいており、次のよう
な手順により零知識を証明する。すなわち、
【0104】(手順1G)…センターは、2つの大きな
素数p、qを選択し、これらのn=p・qを公開する。
また、任意の数値系列を値域[0,n)、すなわち0以
上、n未満の値域に写像する疑似ランダム関数fを公開
する。 (手順2G)…小さなjの値に対してvj=f(ID,
j)を計算する。IDは各ユーザーがセンターに登録す
る公開のID情報である。 (手順3G)…vjがmod nで平方剰余になるk個
のjを選択し、vj-1 の最小の平方根sjを計算する。 (手順4G)…IDと、k個のsjの値と、それらのイ
ンデックスjの値を記憶したスマートカード(ICカー
ド)を発行する。ここで、jの値は、一般に飛び飛びの
値になるが、簡単のため、以下ではj=1,2,…,k
とする。
【0105】このような環境の下で、手順5G〜手順1
0Gを実行することにより、例えばを利用者Aを被認証
者、利用者Bを認証者とした場合の被認証者Aであるこ
との証明(認証)を行う。すなわち、
【0106】(手順5G)…被認証者Aは、認証者Bに
自己のIDを送信する。 (手順6G)…認証者Bは、vj=f(ID,j)を生
成する。ただし,j=1,2,…,kである。
【0107】以下、手順7G〜10Gをi=1からtま
でt回繰返し、t回の検査に成功すれば、認証者Bの通
信相手は被認証者Aであると考える。 (手順7G)…被認証者Aは、乱数ri [0,n)を
生成し、次のxiを認証者Bに送信する。
【数37】xi=ri2 mod n (手順8G)…認証者Bは、被認証者Aに2進乱数ベク
トル(ei 1,ei2…eik)を送信する。 (手順9G)…被認証者Aは、次のyiを計算して認証
者Bに送信する。
【数38】yi=riΠsj mod n eij=1 (手順10G)…認証者Bは、次式が成立するかどうか
を検査する。もし、成立しなければ、認証者Bの通信相
手は被認証者Aではないことが検知できる。
【数39】xi=yi2Πvj mod n eij=1
【0108】以上の手順において、乱数生成以外の手順
7G,9G,10Gの演算は、全て剰余乗算の繰返しに
よって構成されている。従って、このFiat、Sha
mirによる零知識証明方式も、上記の剰余乗算回路に
よって実現できることは明らかである。
【0109】以上説明したように、シストリックアレイ
を用いた効率的な剰余乗算回路を実現することができ
る。この剰余乗算回路を用いることにより、RSA暗号
装置、ラビン暗号装置、エルガマル暗号装置、DH型公
開鍵配送装置、零知識証明装置等による効率的な暗号シ
ステムを構築することが可能になる。すなわち、高速な
暗号システムを構築する場合、本方式による剰余乗算回
路をVLSI等によって構成すればよい。この場合、本
方式による剰余乗算回路は、プロセッシング・エレメン
トPEによる簡単な規則構造を持ち、かつプロセッシン
グ・エレメントPEの制御とプロセッシング・エレメン
トPEの遅延時間は局所的であるので、VLSI化に適
している。
【0110】また、高速性よりも小型化が優先される場
合には、剰余乗算回路を少数のプロセッシング・エレメ
ントPEにより構成すればよい。この場合にも、プロセ
ッシング・エレメントPEによる簡単な規則構造と、プ
ロセッシング・エレメントPEの制御とプロセッシング
・エレメントPEの遅延時間の局所性といった特徴は失
われず、簡単に回路化することができる。また、プロセ
ッシング・エレメントPE内で行われる演算は、簡単な
整数演算であるので、本方式による演算手順は、CPU
やDSP等のソフト的な手法によっても簡単に行うこと
ができる。
【0111】また、小型化を優先した暗号システムを構
成した後に、高速化を図るような場合は、図1に示した
ように、その小型な回路を縦続に接続するだけで、接続
数に比例した高速化が可能となる。また、暗号システム
を構成した後に、認証や暗号の強度を増すために鍵のビ
ット数を増やす場合も、同一の回路、またはプロセッシ
ング・エレメントPEの数を増やした同様の回路によっ
て対応することができる。これは、本方式による剰余乗
算回路が、回路規模と処理回数をトレードオフできるの
で、鍵のビット数の違いを処理回数の違いに帰着させら
れるためである。このことは、システムの伝送速度や鍵
のビット数の変化など、システムの仕様が変化しても、
暗号装置を物理的に作り直す必要がないことを意味す
る。
【0112】また、従来、RSA暗号の復号処理に対し
て、中国人の剰余定理(Chinese remain
der theorem)による高速化手法が知られて
おり、この場合、暗号化と復号、署名生成と署名検査で
鍵のビット数が異なるため、同一の剰余乗算回路によっ
て暗号化と復号、署名生成と署名検査を実行し難いとい
った問題が生じていたが、本方式による剰余乗算回路
は、鍵のビット数の違いに対応できるので、同一の剰余
乗算回路により暗号化と復号、署名生成と署名検査を実
行することができる。また、中国人の剰余定理による高
速化手法は、基本的に並列に実行できるので、複数のチ
ップによって演算を実行する場合、本方式による剰余乗
算回路は最適である。
【0113】以上のような効果は、従来の剰余乗算によ
る暗号装置では実現できないものであり、本方式による
剰余乗算回路を使用することによって初めて実現される
ものである。また、上記の暗号方式のみならず、剰余乗
算を用いる他の暗号方式を採用した暗号システムに対し
ても、本方式の剰余乗算回路を適用できることは言うま
でもない。
【0114】
【発明の効果】以上説明したように、本発明の暗号化用
剰余乗算回路によれば、小規模の複数の演算素子を縦続
に接続してパイプライン処理を行うことにより、小規模
な回路により高速に暗号化のための剰余乗算を行うこと
ができ、剰余乗算を利用した各種の暗号化システムの高
速化、小型化を図ることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施例に係る暗号化用剰余乗算回路を
含む暗号システムを適用した通信系を示す図である。
【図2】プロセッシング・エレメントの構成を示すブロ
ック図である。
【図3】複数のプロセッシング・エレメントを縦続して
なるシストリックアレイを示す図である。
【図4】図3のシストリックアレイの動作を示すタイム
チャートである。
【図5】プロセッシング・エレメントとメモリとを組合
わせた剰余乗算回路を示す図である。
【図6】RSA暗号のためのPEA処理を行うプロセッ
シング・エレメントを示す図である。
【図7】RSA暗号のためのPEB処理を行うプロセッ
シング・エレメントを示す図である。
【図8】RSA暗号のためのPEC処理を行うプロセッ
シング・エレメントを示す図である。
【図9】RSA暗号装置等を構成するPEA〜PEC処
理用のプロセッシング・エレメントのシストリックアレ
イを示す図である。
【図10】PEA〜PEC処理用の各プロセッシング・
エレメントを共通化したプロセッシング・エレメントを
示す図である。
【図11】PEA〜PEC処理に対応する回路規模を示
す図である。
【図12】各プロセッシング・エレメントが処理すべき
ビット数m別に見たPEA処理に対応する回路規模、お
よび処理効率を示す図である。
【図13】SRCに対応する剰余乗算回路を示す図であ
る。
【符号の説明】
PE…プロセッシング・エレメント T…通信端末 A,A1〜A4…加算器 M,M1…乗算器 R,…レジスタ C,C1…剰余出力回路 J,J1…判定回路 S…セレクタ SRC…シストリックRSAチップ 1…RAM 2…ROM

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 整数Ac,Bc,NによるAc・Bc
    mod Nなる演算を行う剰余乗算回路において、 数種類の演算素子をパイプライン状に複数接続し、各演
    算素子にAcをmaビット毎に分けたAna-j(j=1,
    2,…,na)(ma,naは任意の整数)を上位桁か
    ら設定し、Bcをmbビット毎に分けたBnb-j(j=
    1,2,…,nb)(mb,nbは任意の整数)を上位
    桁から1段目の演算素子に入力し、各演算素子において
    j=Rj-1・X+Ana-1・Bc mod N、またはR
    j=Rj+Ana-j・Bc mod N(j=1,2,…,
    na)を計算して次段の演算素子に入力し、当該演算を
    繰返すことによって最終段の演算素子からAc・Bc
    mod Nの剰余乗算結果を得るよう構成したことを特
    徴とする暗号化用剰余乗算回路。
  2. 【請求項2】 前記暗号化用剰余乗算回路は、maビッ
    ト・mbビットの乗算を行う乗算部と、前段の演算素子
    からの最初の出力を受けて剰余Ej-1、または−Q・N
    を出力する剰余出力部と、前記乗算部、剰余出力部、前
    段の演算素子の各出力を加算する加算部と、該加算部か
    らの出力を格納する格納部とを有する第1の演算素子を
    含むことを特徴とする請求項1記載の暗号化用剰余乗算
    回路。
  3. 【請求項3】 前記暗号化用剰余乗算回路は、前段の演
    算素子からの出力をキャリーとともに加算する加算部
    と、最上位桁から剰余Ej-1、または−Q・Nを出力す
    る剰余出力部と、最上位桁にキャリーが生じないように
    前記剰余出力部を制御する制御部とを有する第2の演算
    素子を含むことを特徴とする請求項1記載の暗号化用剰
    余乗算回路。
  4. 【請求項4】 前記暗号化用剰余乗算回路は、請求項
    2、請求項3記載の第1の演算素子、第2の演算素子の
    機能を組合わせてなる第3の演算素子を含むことを特徴
    とする請求項1記載の暗号化用剰余乗算回路。
  5. 【請求項5】 請求項1、請求項2、請求項3、または
    請求項4記載の暗号化用剰余乗算回路の数種類を1つの
    演算単位とする第1の演算手段と、該第1の演算手段に
    よる演算を制御する第1の制御手段と、該第1の制御手
    段の制御の下に該第1の演算手段から出力された演算結
    果を記憶する第1の記憶手段とを設けたことを特徴とす
    る暗号装置。
  6. 【請求項6】 請求項5記載の第1の演算手段を数個パ
    イプライン状に接続してなる第2の演算手段と、該第2
    の演算手段による演算を制御する第2の制御手段と、該
    第2の制御手段の制御の下に該第2の演算手段から出力
    された演算結果を記憶する第2の記憶手段とを設けたこ
    とを特徴とする暗号装置。
  7. 【請求項7】 請求項5、または請求項6記載の暗号装
    置を通信端末に内蔵したことを特徴とする暗号通信シス
    テム。
  8. 【請求項8】 請求項5、または請求項6記載の暗号装
    置を通信端末に接続したことを特徴とする暗号通信シス
    テム。
  9. 【請求項9】 請求項5、または請求項6記載の暗号装
    置を記録媒体への入出力を行う入出力装置に内蔵したこ
    とを特徴とする暗号通信システム。
  10. 【請求項10】 請求項5、または請求項6記載の暗号
    装置を記録媒体への入出力を行う入出力装置に接続した
    ことを特徴とする暗号通信システム。
  11. 【請求項11】 請求項5、または請求項6記載の暗号
    装置をICカードに内蔵したことを特徴とする暗号通信
    システム。
  12. 【請求項12】 請求項7、請求項8、請求項9、請求
    項10、または請求項11記載の暗号通信システムは、
    署名付き暗号通信を行うことを特徴とする暗号通信シス
    テム。
  13. 【請求項13】 請求項7、請求項8、請求項9、請求
    項10、または請求項11記載の暗号通信システムは、
    認証通信を行うことを特徴とする暗号通信システム。
  14. 【請求項14】 請求項7、請求項8、請求項9、また
    は請求項10記載の暗号通信システムは、鍵配送・共有
    暗号通信を行うことを特徴とする暗号通信システム。
  15. 【請求項15】 請求項7、請求項8、請求項9、また
    は請求項10記載の暗号通信システムは、零知識証明を
    行うことを特徴とする暗号通信システム。
JP5348567A 1993-12-27 1993-12-27 暗号化用剰余乗算回路、暗号装置、および暗号通信システム Withdrawn JPH07199807A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5348567A JPH07199807A (ja) 1993-12-27 1993-12-27 暗号化用剰余乗算回路、暗号装置、および暗号通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5348567A JPH07199807A (ja) 1993-12-27 1993-12-27 暗号化用剰余乗算回路、暗号装置、および暗号通信システム

Publications (1)

Publication Number Publication Date
JPH07199807A true JPH07199807A (ja) 1995-08-04

Family

ID=18397892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5348567A Withdrawn JPH07199807A (ja) 1993-12-27 1993-12-27 暗号化用剰余乗算回路、暗号装置、および暗号通信システム

Country Status (1)

Country Link
JP (1) JPH07199807A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005013243A1 (ja) * 2003-07-31 2005-02-10 Fujitsu Limited モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005013243A1 (ja) * 2003-07-31 2005-02-10 Fujitsu Limited モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム
JPWO2005013243A1 (ja) * 2003-07-31 2006-09-28 富士通株式会社 モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム
US7792893B2 (en) 2003-07-31 2010-09-07 Fujitsu Limited Device and method for calculating conversion parameter of montgomery modular multiplication and program therefor
JP4616169B2 (ja) * 2003-07-31 2011-01-19 富士通株式会社 モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム

Similar Documents

Publication Publication Date Title
EP0531158B1 (en) Method of and apparatus for encryption and decryption of communication data
EP0656709B1 (en) Encryption device and apparatus for encryption/decryption based on the Montgomery method using efficient modular multiplication
US4351982A (en) RSA Public-key data encryption system having large random prime number generating microprocessor or the like
US4218582A (en) Public key cryptographic apparatus and method
US4424414A (en) Exponentiation cryptographic apparatus and method
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
WO2009026771A1 (fr) Procédé pour négocier une clé, chiffrer et déchiffrer des informations, signer et authentifier les informations
JP2008520144A (ja) カスタム静的ディフィ−ヘルマン(Diffie−Hellman)群
Abdullah et al. Security improvement in elliptic curve cryptography
JP3302043B2 (ja) 暗号通信方法及びそのシステム
Rentería-Mejía et al. Lattice-based cryptoprocessor for CCA-secure identity-based encryption
JP2001051832A (ja) 乗算剰余演算方法および乗算剰余回路
US11895230B2 (en) Information processing apparatus, secure computation method, and program
JPH11212456A (ja) モンゴメリ法による乗算剰余計算装置
JPH07199807A (ja) 暗号化用剰余乗算回路、暗号装置、および暗号通信システム
Tynymbayev et al. Development of Modular Reduction Based on the Divider by Blocking Negative Remainders for Critical Cryptographic Applications
You et al. Secure two-party computation approach for ntruencrypt
Pathirage et al. Multi-Prime RSA Verilog Implementation Using 4-Primes
US7403965B2 (en) Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication
KR100406138B1 (ko) 엔티알유 암/복호화 장치
Nyman Cryptography: A study of modern cryptography and its mathematical methods
Wilhelm Aspects of hardware methodologies for the NTRU public-key cryptosystem
Gideskog Viability of Post Quantum Digital Signature Algorithms on Field Programmable Gate Arrays
Dukes et al. Understanding Polynomial Maps over Finite Fields
Banerjee et al. Improved Trial Division Technique for Primality Checking in RSA Algorithm

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20031212