JP2000214777A - 巾乗剰余演算を行う演算装置 - Google Patents
巾乗剰余演算を行う演算装置Info
- Publication number
- JP2000214777A JP2000214777A JP11013258A JP1325899A JP2000214777A JP 2000214777 A JP2000214777 A JP 2000214777A JP 11013258 A JP11013258 A JP 11013258A JP 1325899 A JP1325899 A JP 1325899A JP 2000214777 A JP2000214777 A JP 2000214777A
- Authority
- JP
- Japan
- Prior art keywords
- power
- residue
- data
- unit
- modular exponentiation
- 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
Links
Abstract
(57)【要約】
【課題】 暗号システム等において、巾乗剰余演算をよ
り高速に実行することが課題である。 【解決手段】 分配器22は、入力データをと2つの巾
乗剰余演算器23に分配し、2つの巾乗剰余演算器23
は、2つの巾乗剰余演算を並行して行う。待ち合わせ器
24は、2つの巾乗剰余演算の完了を待ち合わせ、加算
器25は、中国人の剰余定理に基づく加算処理を行う。
り高速に実行することが課題である。 【解決手段】 分配器22は、入力データをと2つの巾
乗剰余演算器23に分配し、2つの巾乗剰余演算器23
は、2つの巾乗剰余演算を並行して行う。待ち合わせ器
24は、2つの巾乗剰余演算の完了を待ち合わせ、加算
器25は、中国人の剰余定理に基づく加算処理を行う。
Description
【0001】
【発明の属する技術分野】本発明は、安全で信頼性の高
い通信ネットワークを構築するために必要な暗号システ
ム等において用いられる演算装置に関する。
い通信ネットワークを構築するために必要な暗号システ
ム等において用いられる演算装置に関する。
【0002】
【従来の技術】従来より、ネットワーク上での電文秘
匿、改ざん防止、および相手認証等のセキュリティを実
現するために、通信データの暗号化が行われている。こ
のような暗号化アルゴリズムは、秘密鍵暗号と公開鍵暗
号に大別される。公開鍵暗号によれば、鍵の配送が不要
となり、不特定多数の間での暗号通信が可能である。さ
らに、公開鍵暗号によりディジタル署名も可能となっ
た。
匿、改ざん防止、および相手認証等のセキュリティを実
現するために、通信データの暗号化が行われている。こ
のような暗号化アルゴリズムは、秘密鍵暗号と公開鍵暗
号に大別される。公開鍵暗号によれば、鍵の配送が不要
となり、不特定多数の間での暗号通信が可能である。さ
らに、公開鍵暗号によりディジタル署名も可能となっ
た。
【0003】このような公開鍵暗号の代表的なものとし
て、RSA暗号がある。このRSA暗号はオイラーの定
理に基づいており、暗号化処理の流れは以下の通りであ
る。 [1]まず、データ受信者は、以下の公開鍵および秘密
鍵を用意する。
て、RSA暗号がある。このRSA暗号はオイラーの定
理に基づいており、暗号化処理の流れは以下の通りであ
る。 [1]まず、データ受信者は、以下の公開鍵および秘密
鍵を用意する。
【0004】p,q:素数 n:これらの素数pとqの積(=pq) e:(p−1)(q−1)と互いに素な任意の数 d:eの逆元、すなわち、de≡1 mod(p−1)
(q−1) ここで、(e,n)が公開鍵に対応し、dが秘密鍵に対
応する。また、de≡1mod(p−1)(q−1)
は、合同式と呼ばれ、左辺(=de)および右辺(=
1)を(p−1)(q−1)で割ったときの剰余が一致
することを表している。 [2]次に、データ受信者は、公開鍵(e,n)を公開
する。 [3]次に、データ送信者は、送信するデータ(平文)
M(<n)を、データ受信者が公開した公開鍵を使っ
て、以下のように暗号化する。 C=Me mod n (1) (1)式は、eを巾数としnを法とするデータMの巾乗
剰余演算を表し、データCは、Me をnで割ったときの
剰余に対応する。 [4]次に、データ送信者は、公開鍵を使って暗号化さ
れたデータC(<n)を、公開鍵を公開したデータ受信
者に送付する。 [5]次に、公開鍵を使って暗号化されたデータCを受
信したデータ受信者は、それを秘密鍵を使って以下のよ
うに復号化する。 P=Cd mod n (2) (2)式は、dを巾数としnを法とするデータCの巾乗
剰余演算を表す。データ送信者が正しい公開鍵を使用し
て暗号化したデータを送付した場合、P=Medmod
n=Mとなる。
(q−1) ここで、(e,n)が公開鍵に対応し、dが秘密鍵に対
応する。また、de≡1mod(p−1)(q−1)
は、合同式と呼ばれ、左辺(=de)および右辺(=
1)を(p−1)(q−1)で割ったときの剰余が一致
することを表している。 [2]次に、データ受信者は、公開鍵(e,n)を公開
する。 [3]次に、データ送信者は、送信するデータ(平文)
M(<n)を、データ受信者が公開した公開鍵を使っ
て、以下のように暗号化する。 C=Me mod n (1) (1)式は、eを巾数としnを法とするデータMの巾乗
剰余演算を表し、データCは、Me をnで割ったときの
剰余に対応する。 [4]次に、データ送信者は、公開鍵を使って暗号化さ
れたデータC(<n)を、公開鍵を公開したデータ受信
者に送付する。 [5]次に、公開鍵を使って暗号化されたデータCを受
信したデータ受信者は、それを秘密鍵を使って以下のよ
うに復号化する。 P=Cd mod n (2) (2)式は、dを巾数としnを法とするデータCの巾乗
剰余演算を表す。データ送信者が正しい公開鍵を使用し
て暗号化したデータを送付した場合、P=Medmod
n=Mとなる。
【0005】このRSA暗号処理の流れにおいて、デー
タ送信者が公開鍵を使って(1)式の巾乗剰余演算を行
う場合、公開鍵eとしては一般的に小さく、かつ、高速
に巾乗剰余演算が可能な値(例えば、216+1)が使用
されるため、その巾乗剰余演算を比較的高速に行うこと
が可能である。
タ送信者が公開鍵を使って(1)式の巾乗剰余演算を行
う場合、公開鍵eとしては一般的に小さく、かつ、高速
に巾乗剰余演算が可能な値(例えば、216+1)が使用
されるため、その巾乗剰余演算を比較的高速に行うこと
が可能である。
【0006】しかし、データ受信者が秘密鍵を使って
(2)式の巾乗剰余演算を行う場合、秘密鍵は大きな値
であるため、その巾乗剰余演算の計算量は大きなものと
なる。そこで、一般的には、以下に紹介する中国人の剰
余定理を用いて、(2)式の巾乗剰余演算に要する時間
の削減が行われている。 [中国人の剰余定理]mi (i=1,2,...,r)
を互いに素な正の整数とし、ai (i=1,
2,...,r)を正の整数とすると、r個の連立合同
式 x=ai mod mi (i=1,2,...,r) (3) は、M=Πmi を法とする一意な解を持ち、その解は次
式で与えられる。 x=Σai Mi yi mod M (4) ただし、i=1,2,...,rに対して、 Mi =M/mi ,yi =Mi -1 mod mi (5) である。
(2)式の巾乗剰余演算を行う場合、秘密鍵は大きな値
であるため、その巾乗剰余演算の計算量は大きなものと
なる。そこで、一般的には、以下に紹介する中国人の剰
余定理を用いて、(2)式の巾乗剰余演算に要する時間
の削減が行われている。 [中国人の剰余定理]mi (i=1,2,...,r)
を互いに素な正の整数とし、ai (i=1,
2,...,r)を正の整数とすると、r個の連立合同
式 x=ai mod mi (i=1,2,...,r) (3) は、M=Πmi を法とする一意な解を持ち、その解は次
式で与えられる。 x=Σai Mi yi mod M (4) ただし、i=1,2,...,rに対して、 Mi =M/mi ,yi =Mi -1 mod mi (5) である。
【0007】ここで、r=2とすると、上述の中国人の
剰余定理は次のように書き換えられる。 [中国人の剰余定理](r=2) p,qを互いに素な正の整数とし、a,bを整数とす
る。このとき、 x=a mod p, (6) x=b mod q (7) を満たすx(<pq)が唯一存在し、 x=(a−b)(q-1 mod p)q+b (8) となる。この中国人の剰余定理を使用することにより、
(2)式の巾乗剰余演算を以下のようにして行うことが
できる。[1]まず、データ受信者は、以下のパラメー
タを用意する。
剰余定理は次のように書き換えられる。 [中国人の剰余定理](r=2) p,qを互いに素な正の整数とし、a,bを整数とす
る。このとき、 x=a mod p, (6) x=b mod q (7) を満たすx(<pq)が唯一存在し、 x=(a−b)(q-1 mod p)q+b (8) となる。この中国人の剰余定理を使用することにより、
(2)式の巾乗剰余演算を以下のようにして行うことが
できる。[1]まず、データ受信者は、以下のパラメー
タを用意する。
【0008】p,q:素数 n:これらの素数pとqの積(=pq) e:(p−1)(q−1)と互いに素な任意の数 d:eの逆元、すなわち、de≡1 mod(p−1)
(q−1) dp :d mod (p−1) dq :d mod (q−1) u:q-1 mod p データ受信者は、素数p,qを認識しているため、これ
らの値をデータを受信する前にあらかじめ用意しておく
ことが可能である。[2]次に、データ受信者は、デー
タCを受信し、次式を計算する。 a=Cdp mod p (9) (9)式は、dp を巾数としpを法とするデータCの巾
乗剰余演算を表す。[3]さらに、データ受信者は、次
式を計算する。 b=Cdq mod q (10) (10)式は、dq を巾数としqを法とするデータCの
巾乗剰余演算を表す。[4]最後に、データ受信者は、
(9)式のaと(10)式のbを用いて、次式を計算す
る。 a≧bなら、 x=((a−(b mod p))u mod p)q+b mod n (11) a<bなら、 x=((a+p−(b mod p))u mod p)q+b mod n (12) (11)式および(12)式はともに、pとnを法とす
る剰余演算を含んでおり、得られたxは(2)式のCd
mod nと一致する。
(q−1) dp :d mod (p−1) dq :d mod (q−1) u:q-1 mod p データ受信者は、素数p,qを認識しているため、これ
らの値をデータを受信する前にあらかじめ用意しておく
ことが可能である。[2]次に、データ受信者は、デー
タCを受信し、次式を計算する。 a=Cdp mod p (9) (9)式は、dp を巾数としpを法とするデータCの巾
乗剰余演算を表す。[3]さらに、データ受信者は、次
式を計算する。 b=Cdq mod q (10) (10)式は、dq を巾数としqを法とするデータCの
巾乗剰余演算を表す。[4]最後に、データ受信者は、
(9)式のaと(10)式のbを用いて、次式を計算す
る。 a≧bなら、 x=((a−(b mod p))u mod p)q+b mod n (11) a<bなら、 x=((a+p−(b mod p))u mod p)q+b mod n (12) (11)式および(12)式はともに、pとnを法とす
る剰余演算を含んでおり、得られたxは(2)式のCd
mod nと一致する。
【0009】図7は、この中国人の剰余定理を用いた従
来の巾乗剰余演算装置の構成図である。図7の巾乗剰余
演算装置1は、巾乗剰余演算器2と加算器3を備え、上
述の[2]〜[4]の処理を順に行う。
来の巾乗剰余演算装置の構成図である。図7の巾乗剰余
演算装置1は、巾乗剰余演算器2と加算器3を備え、上
述の[2]〜[4]の処理を順に行う。
【0010】演算装置1には、上述したパラメータp、
q、n、e、d、dp 、dq 、およびuの他に受信デー
タCが入力データとして入力される。演算装置1は、ま
ず、受け取った入力データからデータの組(dp ,p,
C)を生成し、巾乗剰余演算器2に渡す。そして、巾乗
剰余演算器2は、受け取ったデータをもとに(9)式の
巾乗剰余演算を行い、その結果を返す。
q、n、e、d、dp 、dq 、およびuの他に受信デー
タCが入力データとして入力される。演算装置1は、ま
ず、受け取った入力データからデータの組(dp ,p,
C)を生成し、巾乗剰余演算器2に渡す。そして、巾乗
剰余演算器2は、受け取ったデータをもとに(9)式の
巾乗剰余演算を行い、その結果を返す。
【0011】次に、演算装置1は、受け取った入力デー
タからデータの組(dq ,q,C)を生成し、巾乗剰余
演算器2に渡す。そして、巾乗剰余演算器2は、受け取
ったデータをもとに(10)式の巾乗剰余演算を行い、
その結果を返す。
タからデータの組(dq ,q,C)を生成し、巾乗剰余
演算器2に渡す。そして、巾乗剰余演算器2は、受け取
ったデータをもとに(10)式の巾乗剰余演算を行い、
その結果を返す。
【0012】次に、演算装置1は、データの組(a,
b,u,p,q,n)を加算器3に渡す。そして、加算
器3は、受け取ったデータをもとに(11)式または
(12)式の演算を行う。最後に、演算装置1は、得ら
れたxの値を(2)式のCd mod nの演算結果と
して出力する。
b,u,p,q,n)を加算器3に渡す。そして、加算
器3は、受け取ったデータをもとに(11)式または
(12)式の演算を行う。最後に、演算装置1は、得ら
れたxの値を(2)式のCd mod nの演算結果と
して出力する。
【0013】
【発明が解決しようとする課題】しかしながら、上述し
た従来の巾乗剰余演算装置には次のような問題がある。
た従来の巾乗剰余演算装置には次のような問題がある。
【0014】RSA暗号の安全性は、公開鍵nの因数分
解の難しさに基づいているが、パーソナルコンピュータ
等の演算速度の向上に伴い、因数分解の処理時間が短縮
される傾向にある。このため、安全性を確保するには、
公開鍵nとして、よりビット数の大きな値を用いる必要
があり、復号化のための巾乗剰余演算においてもより多
くの計算量が要求される。
解の難しさに基づいているが、パーソナルコンピュータ
等の演算速度の向上に伴い、因数分解の処理時間が短縮
される傾向にある。このため、安全性を確保するには、
公開鍵nとして、よりビット数の大きな値を用いる必要
があり、復号化のための巾乗剰余演算においてもより多
くの計算量が要求される。
【0015】ところで、従来の巾乗剰余演算装置では、
全体の処理時間のうち(9)式および(10)式の巾乗
剰余演算の時間が大半を占めており、公開鍵nのビット
数が大きくなれば、演算時間はさらに増大する。そこ
で、この巾乗剰余演算の処理時間を改善することが望ま
れる。
全体の処理時間のうち(9)式および(10)式の巾乗
剰余演算の時間が大半を占めており、公開鍵nのビット
数が大きくなれば、演算時間はさらに増大する。そこ
で、この巾乗剰余演算の処理時間を改善することが望ま
れる。
【0016】本発明の課題は、暗号システム等において
利用される巾乗剰余演算をより高速に実行する演算装置
を提供することである。
利用される巾乗剰余演算をより高速に実行する演算装置
を提供することである。
【0017】
【課題を解決するための手段】図1は、本発明の演算装
置の原理図である。図1の演算装置は、入力手段11、
第1の演算手段12、第2の演算手段13、格納手段1
4、第3の演算手段15、および出力手段16を備え
る。
置の原理図である。図1の演算装置は、入力手段11、
第1の演算手段12、第2の演算手段13、格納手段1
4、第3の演算手段15、および出力手段16を備え
る。
【0018】入力手段11は、データを入力し、演算手
段12は、入力データに関する第1の巾乗剰余演算を行
い、演算手段13は、演算手段12と並行して、入力デ
ータに関する第2の巾乗剰余演算を行う。そして、格納
手段14は、第1および第2の巾乗剰余演算の結果を格
納し、演算手段15は、第1および第2の巾乗剰余演算
の結果を用いて所定の演算を行い、出力手段16は、所
定の演算の結果を出力する。
段12は、入力データに関する第1の巾乗剰余演算を行
い、演算手段13は、演算手段12と並行して、入力デ
ータに関する第2の巾乗剰余演算を行う。そして、格納
手段14は、第1および第2の巾乗剰余演算の結果を格
納し、演算手段15は、第1および第2の巾乗剰余演算
の結果を用いて所定の演算を行い、出力手段16は、所
定の演算の結果を出力する。
【0019】このような演算装置によれば、演算手段1
2および13により、2つの巾乗剰余演算が並行して行
われ、それらの演算結果が、一旦、格納手段14に格納
される。その後、演算手段15により、2つの巾乗剰余
演算の結果が格納手段14から取り出され、所定の演算
が行われて、出力手段16により、その演算結果が出力
される。
2および13により、2つの巾乗剰余演算が並行して行
われ、それらの演算結果が、一旦、格納手段14に格納
される。その後、演算手段15により、2つの巾乗剰余
演算の結果が格納手段14から取り出され、所定の演算
が行われて、出力手段16により、その演算結果が出力
される。
【0020】前述の中国人の剰余定理に基づく暗号演算
の場合、演算手段12および13は、暗号データCに関
する(9)式および(10)式の巾乗剰余演算を並行し
て行い、演算手段15は、それらの演算結果を用いて
(11)式または(12)式の演算を行う。このよう
に、2つの巾乗剰余演算を並行して処理することで、
(2)式の巾乗剰余演算の結果を高速に得ることができ
る。
の場合、演算手段12および13は、暗号データCに関
する(9)式および(10)式の巾乗剰余演算を並行し
て行い、演算手段15は、それらの演算結果を用いて
(11)式または(12)式の演算を行う。このよう
に、2つの巾乗剰余演算を並行して処理することで、
(2)式の巾乗剰余演算の結果を高速に得ることができ
る。
【0021】例えば、図1の入力手段11は、後述する
図5のネットワーク接続装置37に対応し、図1の格納
手段14は、図5のメモリ32に対応し、図1の出力手
段16は、図5の出力装置34に対応する。また、例え
ば、図1の演算手段12および13は、後述する図2の
巾乗剰余演算器23に対応し、図1の演算手段15は、
図2の加算器25に対応する。
図5のネットワーク接続装置37に対応し、図1の格納
手段14は、図5のメモリ32に対応し、図1の出力手
段16は、図5の出力装置34に対応する。また、例え
ば、図1の演算手段12および13は、後述する図2の
巾乗剰余演算器23に対応し、図1の演算手段15は、
図2の加算器25に対応する。
【0022】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を詳細に説明する。
明の実施の形態を詳細に説明する。
【0023】中国人の剰余定理に基づく巾乗剰余演算に
おいて、(9)式の演算Cdp mod pと(10)式
の演算Cdq mod qの間には依存性がなく、それぞ
れ独立して実行することが可能である。そこで、本実施
形態においては、分配器と2つの巾乗剰余演算器を用い
て、これらの2つの巾乗剰余演算を並行して行う。そし
て、待ち合わせ器を用いて、2つの巾乗剰余演算の完了
を待ち合わせ、加算器を用いて、中国人の剰余定理に基
づく加算処理を行う。2つの巾乗剰余演算を並行に処理
することで、処理速度が向上する。
おいて、(9)式の演算Cdp mod pと(10)式
の演算Cdq mod qの間には依存性がなく、それぞ
れ独立して実行することが可能である。そこで、本実施
形態においては、分配器と2つの巾乗剰余演算器を用い
て、これらの2つの巾乗剰余演算を並行して行う。そし
て、待ち合わせ器を用いて、2つの巾乗剰余演算の完了
を待ち合わせ、加算器を用いて、中国人の剰余定理に基
づく加算処理を行う。2つの巾乗剰余演算を並行に処理
することで、処理速度が向上する。
【0024】図2は、このような巾乗剰余演算装置の構
成図である。図2の演算装置21は、分配器22、2つ
の巾乗剰余演算器23(#1,#2)、待ち合わせ器2
4、および加算器25を備える。
成図である。図2の演算装置21は、分配器22、2つ
の巾乗剰余演算器23(#1,#2)、待ち合わせ器2
4、および加算器25を備える。
【0025】演算装置1には、上述したパラメータp、
q、n、e、d、dp 、dq 、およびuと、受信データ
Cとが、入力データとして入力される。演算装置1は、
まず、受け取った入力データを分配器22に渡す。
q、n、e、d、dp 、dq 、およびuと、受信データ
Cとが、入力データとして入力される。演算装置1は、
まず、受け取った入力データを分配器22に渡す。
【0026】分配器22は、図3に示すように、受け取
った入力データから2つのデータの組(dp ,p,C)
および(dq ,q,C)を生成し、それぞれのデータの
組を入力として巾乗剰余演算器#1および#2に演算を
同時に依頼する。ここでは、巾乗剰余演算器#1に演算
Cdp mod pを依頼し、巾乗剰余演算器#2に演算
Cdq mod qを依頼する。
った入力データから2つのデータの組(dp ,p,C)
および(dq ,q,C)を生成し、それぞれのデータの
組を入力として巾乗剰余演算器#1および#2に演算を
同時に依頼する。ここでは、巾乗剰余演算器#1に演算
Cdp mod pを依頼し、巾乗剰余演算器#2に演算
Cdq mod qを依頼する。
【0027】巾乗剰余演算器#1および#2は、それぞ
れが受け取ったデータをもとに、互いに独立して巾乗剰
余演算a=Cdp mod pおよびb=Cdq mod
qを並行して行い、それぞれの演算が完了した時点で、
待ち合わせ器24に完了を通知する。このとき、巾乗剰
余演算器#1から送られる完了通知には演算結果aが含
まれており、巾乗剰余演算器#2から送られる完了通知
には、演算結果bが含まれている。
れが受け取ったデータをもとに、互いに独立して巾乗剰
余演算a=Cdp mod pおよびb=Cdq mod
qを並行して行い、それぞれの演算が完了した時点で、
待ち合わせ器24に完了を通知する。このとき、巾乗剰
余演算器#1から送られる完了通知には演算結果aが含
まれており、巾乗剰余演算器#2から送られる完了通知
には、演算結果bが含まれている。
【0028】待ち合わせ器24は、巾乗剰余演算器#1
および#2からの完了通知を待ち合わせた後、データの
組(a,b,u,p,q,n)を生成して加算器25に
渡す。そして、加算器25は、受け取ったデータの組
(a,b,u,p,q,n)をもとに、aとbの大小関
係に応じて(11)式または(12)式の演算を行う。
最後に、演算装置21は、得られたxの値を(2)式の
Cd mod nの演算結果として出力する。
および#2からの完了通知を待ち合わせた後、データの
組(a,b,u,p,q,n)を生成して加算器25に
渡す。そして、加算器25は、受け取ったデータの組
(a,b,u,p,q,n)をもとに、aとbの大小関
係に応じて(11)式または(12)式の演算を行う。
最後に、演算装置21は、得られたxの値を(2)式の
Cd mod nの演算結果として出力する。
【0029】このような演算装置21によれば、2つの
巾乗剰余演算a=Cdpmod pとb=Cdq mod
qが並行して処理される。RSA暗号処理においては、
十分な安全性を確保するために、pとqが極端に異なら
ないように決められていることが多く、その結果、これ
らの2つの巾乗剰余演算の計算量は同じ程度になる。こ
のため、2つの巾乗剰余演算を並行して行えば、処理時
間を従来の約半分に削減することが可能である。
巾乗剰余演算a=Cdpmod pとb=Cdq mod
qが並行して処理される。RSA暗号処理においては、
十分な安全性を確保するために、pとqが極端に異なら
ないように決められていることが多く、その結果、これ
らの2つの巾乗剰余演算の計算量は同じ程度になる。こ
のため、2つの巾乗剰余演算を並行して行えば、処理時
間を従来の約半分に削減することが可能である。
【0030】また、演算装置21は、(9)〜(12)
式に示した中国人の剰余定理に基づく巾乗剰余演算のみ
ならず、並行処理可能な2つの巾乗剰余演算を含む任意
の演算を行うことができる。この場合、加算器25は、
必要に応じて、他の演算器等に置き換えてもよい。
式に示した中国人の剰余定理に基づく巾乗剰余演算のみ
ならず、並行処理可能な2つの巾乗剰余演算を含む任意
の演算を行うことができる。この場合、加算器25は、
必要に応じて、他の演算器等に置き換えてもよい。
【0031】図4は、待ち合わせ器24が行う処理のフ
ローチャートである。待ち合わせ器24は、まず、巾乗
剰余演算器#1または#2からの完了通知を待ち合わ
せ、定期的に完了通知を受信したかどうかを判定する
(ステップS1)。完了通知を受信していなければ判定
を繰り返し、完了通知を受信すると、それが巾乗剰余演
算器#1からのものかどうかを判定する(ステップS
2)。
ローチャートである。待ち合わせ器24は、まず、巾乗
剰余演算器#1または#2からの完了通知を待ち合わ
せ、定期的に完了通知を受信したかどうかを判定する
(ステップS1)。完了通知を受信していなければ判定
を繰り返し、完了通知を受信すると、それが巾乗剰余演
算器#1からのものかどうかを判定する(ステップS
2)。
【0032】巾乗剰余演算器#1から完了通知を受け取
った場合、次に、巾乗剰余演算器#2から既に完了通知
を受信しているかどうかを確認する(ステップS3)。
ここで、巾乗剰余演算器#2からの完了通知を受信済の
場合は、2つの巾乗剰余演算器の演算が完了したことに
なる。そこで、加算器25を呼び出して、データの組
(a,b,u,p,q,n)を渡し(ステップS4)、
処理を終了する。巾乗剰余演算器#2からの完了通知を
受信していない場合は、ステップS1の処理を行って、
その完了通知を待つ。
った場合、次に、巾乗剰余演算器#2から既に完了通知
を受信しているかどうかを確認する(ステップS3)。
ここで、巾乗剰余演算器#2からの完了通知を受信済の
場合は、2つの巾乗剰余演算器の演算が完了したことに
なる。そこで、加算器25を呼び出して、データの組
(a,b,u,p,q,n)を渡し(ステップS4)、
処理を終了する。巾乗剰余演算器#2からの完了通知を
受信していない場合は、ステップS1の処理を行って、
その完了通知を待つ。
【0033】ステップS2において、受け取った完了通
知が巾乗剰余演算器#2からのものである場合、次に、
巾乗剰余演算器#1から既に完了通知を受信しているか
どうかを確認する(ステップS5)。ここで、巾乗剰余
演算器#1からの完了通知を受信済の場合は、2つの巾
乗剰余演算器の演算が完了したことになる。そこで、ス
テップS4の処理を行って、処理を終了する。巾乗剰余
演算器#1からの完了通知を受信していない場合は、ス
テップS1の処理を行って、その完了通知を待つ。
知が巾乗剰余演算器#2からのものである場合、次に、
巾乗剰余演算器#1から既に完了通知を受信しているか
どうかを確認する(ステップS5)。ここで、巾乗剰余
演算器#1からの完了通知を受信済の場合は、2つの巾
乗剰余演算器の演算が完了したことになる。そこで、ス
テップS4の処理を行って、処理を終了する。巾乗剰余
演算器#1からの完了通知を受信していない場合は、ス
テップS1の処理を行って、その完了通知を待つ。
【0034】このような待ち合わせ器24を設けること
で、巾乗剰余演算器#1および#2の演算が終了した
後、2つの演算結果を合わせて直ちに加算器25に入力
することができる。したがって、必要最小限の待ち合わ
せ時間の後、加算器25の処理を開始することができ
る。
で、巾乗剰余演算器#1および#2の演算が終了した
後、2つの演算結果を合わせて直ちに加算器25に入力
することができる。したがって、必要最小限の待ち合わ
せ時間の後、加算器25の処理を開始することができ
る。
【0035】図2の演算装置21において、分配器2
2、巾乗剰余演算器23、待ち合わせ器24、および加
算器25は、それぞれ、任意のハードウェアまたはソフ
トウェアにより実現することができる。特に、2つの巾
乗剰余演算器23としては、巾乗剰余演算専用の2つの
IC(integrated circuit)チップ(演算専用プロセッ
サ)を用いてもよく、並行して動作するデュアルCPU
(中央処理装置)を搭載したコンピュータの場合、各C
PUに各巾乗剰余演算器23の処理を行わせることもで
きる。
2、巾乗剰余演算器23、待ち合わせ器24、および加
算器25は、それぞれ、任意のハードウェアまたはソフ
トウェアにより実現することができる。特に、2つの巾
乗剰余演算器23としては、巾乗剰余演算専用の2つの
IC(integrated circuit)チップ(演算専用プロセッ
サ)を用いてもよく、並行して動作するデュアルCPU
(中央処理装置)を搭載したコンピュータの場合、各C
PUに各巾乗剰余演算器23の処理を行わせることもで
きる。
【0036】図2の演算装置21は、例えば、図5に示
すような情報処理装置(コンピュータ)を用いて構成す
ることができる。図5の情報処理装置は、CPU31、
メモリ32、入力装置33、出力装置34、外部記憶装
置35、媒体駆動装置36、ネットワーク接続装置3
7、および2つの演算専用プロセッサ38(#1,#
2)を備え、それらはバス39により互いに接続されて
いる。
すような情報処理装置(コンピュータ)を用いて構成す
ることができる。図5の情報処理装置は、CPU31、
メモリ32、入力装置33、出力装置34、外部記憶装
置35、媒体駆動装置36、ネットワーク接続装置3
7、および2つの演算専用プロセッサ38(#1,#
2)を備え、それらはバス39により互いに接続されて
いる。
【0037】メモリ32は、例えば、ROM(read onl
y memory)、RAM(random access memory)等を含
み、処理に用いられるプログラムとデータを格納する。
CPU31は、メモリ32を利用してプログラムを実行
することにより、必要な処理を行う。
y memory)、RAM(random access memory)等を含
み、処理に用いられるプログラムとデータを格納する。
CPU31は、メモリ32を利用してプログラムを実行
することにより、必要な処理を行う。
【0038】この場合、図2の分配器22、待ち合わせ
器24、および加算器25は、メモリ32の特定のプロ
グラムコードセグメントに格納されたソフトウェアコン
ポーネントに対応する。
器24、および加算器25は、メモリ32の特定のプロ
グラムコードセグメントに格納されたソフトウェアコン
ポーネントに対応する。
【0039】入力装置33は、例えば、キーボード、ポ
インティングデバイス、タッチパネル等であり、ユーザ
からの指示や情報の入力に用いられる。出力装置34
は、例えば、ディスプレイ、プリンタ等であり、ユーザ
への問い合わせや処理結果の出力に用いられる。
インティングデバイス、タッチパネル等であり、ユーザ
からの指示や情報の入力に用いられる。出力装置34
は、例えば、ディスプレイ、プリンタ等であり、ユーザ
への問い合わせや処理結果の出力に用いられる。
【0040】外部記憶装置35は、例えば、磁気ディス
ク装置、光ディスク装置、光磁気ディスク(magneto-op
tical disk)装置等である。この外部記憶装置35に、
上述のプログラムとデータを保存しておき、必要に応じ
て、それらをメモリ32にロードして使用することもで
きる。
ク装置、光ディスク装置、光磁気ディスク(magneto-op
tical disk)装置等である。この外部記憶装置35に、
上述のプログラムとデータを保存しておき、必要に応じ
て、それらをメモリ32にロードして使用することもで
きる。
【0041】媒体駆動装置36は、可搬記録媒体40を
駆動し、その記録内容にアクセスする。可搬記録媒体4
0としては、メモリカード、フロッピーディスク、CD
−ROM(compact disk read only memory )、光ディ
スク、光磁気ディスク等、任意のコンピュータ読み取り
可能な記録媒体が用いられる。この可搬記録媒体40に
上述のプログラムとデータを格納しておき、必要に応じ
て、それらをメモリ32にロードして使用することもで
きる。
駆動し、その記録内容にアクセスする。可搬記録媒体4
0としては、メモリカード、フロッピーディスク、CD
−ROM(compact disk read only memory )、光ディ
スク、光磁気ディスク等、任意のコンピュータ読み取り
可能な記録媒体が用いられる。この可搬記録媒体40に
上述のプログラムとデータを格納しておき、必要に応じ
て、それらをメモリ32にロードして使用することもで
きる。
【0042】ネットワーク接続装置37は、任意のネッ
トワーク(回線)を介してデータ送信者の装置と通信
し、暗号化されたデータCを受信する。また、必要に応
じて、上述のプログラムとデータを外部の装置から受け
取り、それらをメモリ32にロードして使用することも
できる。
トワーク(回線)を介してデータ送信者の装置と通信
し、暗号化されたデータCを受信する。また、必要に応
じて、上述のプログラムとデータを外部の装置から受け
取り、それらをメモリ32にロードして使用することも
できる。
【0043】演算専用プロセッサ#1および#2は、図
2の巾乗剰余演算器#1および#2に対応し、それぞ
れ、与えられたデータの組をもとに巾乗剰余演算を行っ
て、演算結果をメモリ32に格納する。
2の巾乗剰余演算器#1および#2に対応し、それぞ
れ、与えられたデータの組をもとに巾乗剰余演算を行っ
て、演算結果をメモリ32に格納する。
【0044】図6は、図5の情報処理装置にプログラム
とデータを供給することのできるコンピュータ読み取り
可能な記録媒体を示している。可搬記録媒体40や外部
のデータベース41に保存されたプログラムとデータ
は、メモリ32にロードされる。そして、CPU31
は、そのデータを用いてそのプログラムを実行し、必要
な処理を行う。
とデータを供給することのできるコンピュータ読み取り
可能な記録媒体を示している。可搬記録媒体40や外部
のデータベース41に保存されたプログラムとデータ
は、メモリ32にロードされる。そして、CPU31
は、そのデータを用いてそのプログラムを実行し、必要
な処理を行う。
【0045】
【発明の効果】本発明によれば、2つの巾乗剰余演算を
並行に処理することが可能となり、中国人の剰余定理に
見られるような複雑な巾乗剰余演算を高速化することが
できる。これにより、例えば、公開鍵暗号のデータ受信
者が秘密鍵を用いて行う巾乗剰余演算の処理時間が削減
される。
並行に処理することが可能となり、中国人の剰余定理に
見られるような複雑な巾乗剰余演算を高速化することが
できる。これにより、例えば、公開鍵暗号のデータ受信
者が秘密鍵を用いて行う巾乗剰余演算の処理時間が削減
される。
【図1】本発明の演算装置の原理図である。
【図2】実施形態の巾乗剰余演算装置の構成図である。
【図3】分配器と巾乗剰余演算器の処理を示す図であ
る。
る。
【図4】待ち合わせ器の処理のフローチャートである。
【図5】情報処理装置の構成図である。
【図6】記録媒体を示す図である。
【図7】従来の巾乗剰余演算装置の構成図である。
1、21 巾乗剰余演算装置 2、23 巾乗剰余演算器 3、25 加算器 11 入力手段 12、13、15 演算手段 14 格納手段 16 出力手段 22 分配器 24 待ち合わせ器 31 CPU 32 メモリ 33 入力装置 34 出力装置 35 外部記憶装置 36 媒体駆動装置 37 ネットワーク接続装置 38 演算専用プロセッサ 39 バス 40 可搬記録媒体 41 データベース
Claims (6)
- 【請求項1】 データを入力する入力手段と、 入力データに関する第1の巾乗剰余演算を行う第1の演
算手段と、 前記第1の演算手段と並行して、前記入力データに関す
る第2の巾乗剰余演算を行う第2の演算手段と、 前記第1および第2の巾乗剰余演算の結果を格納する格
納手段と、 前記第1および第2の巾乗剰余演算の結果を用いて所定
の演算を行う第3の演算手段と、 前記所定の演算の結果を出力する出力手段とを備えるこ
とを特徴とする演算装置。 - 【請求項2】 前記入力データを前記第1および第2の
演算手段に分配する分配手段と、前記第1および第2の
巾乗剰余演算の完了を待ち合わせる待ち合わせ手段をさ
らに備えることを特徴とする請求項1記載の演算装置。 - 【請求項3】 前記第3の演算手段は、前記第1および
第2の巾乗剰余演算の結果を用いた剰余演算を行って、
前記所定の演算の結果を生成することを特徴とする請求
項1記載の演算装置。 - 【請求項4】 暗号データを入力する入力手段と、 前記暗号データに関する第1の巾乗剰余演算を行う第1
の演算手段と、 前記第1の演算手段と並行して、前記暗号データに関す
る第2の巾乗剰余演算を行う第2の演算手段と、 前記第1および第2の巾乗剰余演算の結果を格納する格
納手段と、 前記第1および第2の巾乗剰余演算の結果を用いて、中
国人の剰余定理に基づく演算を行う第3の演算手段と、 前記中国人の剰余定理に基づく演算の結果を出力する出
力手段とを備えることを特徴とする演算装置。 - 【請求項5】 素数pおよびq、該素数pとqの積n、
(p−1)(q−1)と互いに素な任意の数e、および
該任意の数eの逆元dをパラメータとして用いて、dを
巾数としnを法とするデータCの巾乗剰余演算を行う演
算装置であって、 d mod(p−1)を巾数としpを法とする前記デー
タCの巾乗剰余演算と、d mod(q−1)を巾数と
しqを法とする該データCの巾乗剰余演算を並行して行
う演算手段と、 前記演算手段による2つの巾乗剰余演算の完了を待っ
て、中国人の剰余定理に基づき該2つの巾乗剰余演算の
結果を合成する加算手段と、 合成結果を出力する出力手段とを備えることを特徴とす
る演算装置。 - 【請求項6】 コンピュータのためのプログラムを記録
した記録媒体であって、 入力データに関する第1の巾乗剰余演算と、該入力デー
タに関する第2の巾乗剰余演算を並行して行うステップ
と、 前記第1および第2の巾乗剰余演算の結果を格納するス
テップと、 前記第1および第2の巾乗剰余演算の結果を用いて所定
の演算を行うステップとを含む処理を前記コンピュータ
に実行させるためのプログラムを記録したコンピュータ
読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11013258A JP2000214777A (ja) | 1999-01-21 | 1999-01-21 | 巾乗剰余演算を行う演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11013258A JP2000214777A (ja) | 1999-01-21 | 1999-01-21 | 巾乗剰余演算を行う演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000214777A true JP2000214777A (ja) | 2000-08-04 |
Family
ID=11828206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11013258A Pending JP2000214777A (ja) | 1999-01-21 | 1999-01-21 | 巾乗剰余演算を行う演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000214777A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007220260A (ja) * | 2006-02-20 | 2007-08-30 | Toshiba Corp | 半導体記憶装置 |
JP2007234086A (ja) * | 2006-02-27 | 2007-09-13 | Toshiba Corp | 半導体記憶装置 |
US7356140B2 (en) | 2003-01-24 | 2008-04-08 | Sharp Kabushiki Kaisha | Encrypting device, decrypting device, cryptosystem including the same devices, encrypting method, and decrypting method |
WO2019092804A1 (ja) * | 2017-11-08 | 2019-05-16 | 日本電気株式会社 | 乱数生成システム、乱数生成方法および乱数生成プログラム |
-
1999
- 1999-01-21 JP JP11013258A patent/JP2000214777A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356140B2 (en) | 2003-01-24 | 2008-04-08 | Sharp Kabushiki Kaisha | Encrypting device, decrypting device, cryptosystem including the same devices, encrypting method, and decrypting method |
JP2007220260A (ja) * | 2006-02-20 | 2007-08-30 | Toshiba Corp | 半導体記憶装置 |
US8201055B2 (en) | 2006-02-20 | 2012-06-12 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
JP2007234086A (ja) * | 2006-02-27 | 2007-09-13 | Toshiba Corp | 半導体記憶装置 |
WO2019092804A1 (ja) * | 2017-11-08 | 2019-05-16 | 日本電気株式会社 | 乱数生成システム、乱数生成方法および乱数生成プログラム |
JPWO2019092804A1 (ja) * | 2017-11-08 | 2020-11-12 | 日本電気株式会社 | 乱数生成システム、乱数生成方法および乱数生成プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7940927B2 (en) | Information security device and elliptic curve operating device | |
US6285760B1 (en) | Method and apparatus for digital signature authentication | |
JP4137385B2 (ja) | 公開鍵および秘密鍵による暗号化方法 | |
JP4086503B2 (ja) | 暗号演算装置及び方法並びにプログラム | |
US20110161390A1 (en) | Modular multiplication processing apparatus | |
JPH1195661A (ja) | 指数剰余演算装置および指数剰余演算処理をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JPH11305996A (ja) | 乗算を用いる計算装置のデ―タ処理高速化方法および装置 | |
US8300810B2 (en) | Method for securely encrypting or decrypting a message | |
US20060126830A1 (en) | Montgomery transform device, arithmetic device, IC card, encryption device, decryption device and program | |
Parrilla et al. | Elliptic curve cryptography hardware accelerator for high-performance secure servers | |
KR100436814B1 (ko) | 아이씨카드용 알에스에이 암호 연산 장치 | |
EP1068565B1 (en) | Acceleration and security enhancements for elliptic curve and rsa coprocessors | |
US20020041683A1 (en) | Method for selecting optimal number of prime factors of a modulus for use in a cryptographic system | |
KR20050106416A (ko) | 암호화 시스템 내의 모듈러 멱승 결과 결정 장치 및 방법 | |
US6609141B1 (en) | Method of performing modular inversion | |
US7454625B2 (en) | Method and apparatus for protecting a calculation in a cryptographic algorithm | |
JP4626148B2 (ja) | 復号または署名作成におけるべき乗剰余算の計算方法 | |
JP2002323852A (ja) | 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム | |
JP2000214777A (ja) | 巾乗剰余演算を行う演算装置 | |
US7113593B2 (en) | Recursive cryptoaccelerator and recursive VHDL design of logic circuits | |
JP2003216026A (ja) | 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにコンピュータ・プログラム | |
JP4494965B2 (ja) | 処理中の計算を容易にするための暗号化方法、及び装置 | |
JP3137190B2 (ja) | メッセージ変換方法 | |
KR20090080842A (ko) | Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체 | |
JPH076025A (ja) | 冪剰余演算方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040706 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20041102 |