JP3390966B2 - 平方数を法とした剰余演算装置及びそのプログラム記録媒体 - Google Patents

平方数を法とした剰余演算装置及びそのプログラム記録媒体

Info

Publication number
JP3390966B2
JP3390966B2 JP07935698A JP7935698A JP3390966B2 JP 3390966 B2 JP3390966 B2 JP 3390966B2 JP 07935698 A JP07935698 A JP 07935698A JP 7935698 A JP7935698 A JP 7935698A JP 3390966 B2 JP3390966 B2 JP 3390966B2
Authority
JP
Japan
Prior art keywords
mod
remainder
input
calculating
bit
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.)
Expired - Fee Related
Application number
JP07935698A
Other languages
English (en)
Other versions
JPH11282349A (ja
Inventor
成憲 内山
龍明 岡本
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP07935698A priority Critical patent/JP3390966B2/ja
Publication of JPH11282349A publication Critical patent/JPH11282349A/ja
Application granted granted Critical
Publication of JP3390966B2 publication Critical patent/JP3390966B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は平方数を法とし
た、乗算、自乗、巾乗を行う装置、及びそのプログラム
記録媒体に関する。
【0002】
【従来の技術】RSAに代表される公開鍵暗号システム
では、ビット数の大きな自然数を法とした乗算剰余演
算、巾剰剰余演算、自乗剰余演算を多数処理する必要性
がある。多数の高速乗算法が提案されているが、従来、
良く知られている高速算法としては、くりかえし二乗法
などのように、一般の自然数に用いられるものと、特殊
な形の自然数に対する高速化の二種類に分類出来ると思
われる。高速算法については、Knuth,D.E.
著,“準数値算法4”、サイエンス社を参照(以下、こ
の文献を文献1と称す)
【0003】
【発明が解決しようとする課題】ほとんどの公開鍵暗号
の安全性は、ある種の数学の問題を計算量的観点から解
く難しさに依存しており、特に、RSAやその他多くの
公開鍵暗号は、素因数分解問題の難しさに依存してい
る。即ち、昨今の素因数分解問題の解法アルゴリズムの
進歩により、その安全性のパラメータとなる公開鍵のビ
ット数も必然的に大きくならざるを得ない。現在では、
RSAの公開鍵は、ビット数を1024ビットにとるこ
とが推奨されている。さらに、公開鍵暗号は、単純に暗
号に利用できるだけでなく、デジタル署名と呼ばれるも
のにも応用できることが知られているが、これは、電子
マネー等で使う場合を考えると、パワーの小さなICカ
ード上での演算処理にも対応出来るようにする必要性が
あり、従って、乗算剰余演算、巾剰剰余演算、自乗剰余
演算を多数処理する必要性がある公開鍵暗号にとって
は、乗算剰余演算、巾剰剰余演算、自乗剰余演算の高速
化は非常に重要なものであると考えられる。デジタル署
名に関しては、岡本−山本共著、“現代暗号”、産業図
書を参照。(以下この文献を、文献2と称する)この発
明の目的は、ある種の公開鍵暗号やデジタル署名などで
使われる、modp2 のような、高巾の自然数を法とする
ものに対して有効な、高速な乗算剰余演算装置、巾剰剰
余演算装置及び自乗剰余演算装置とのプログラム記録媒
体、を提案することにある。このある種の公開鍵暗号に
ついては、IEICE Technical Repo
rt ISEC97−55,vol.97,pp.25
−31(1997)に、内山らによって、“A New
Public−KeyCryptosystem a
s Secure as Factoring”と題し
て、(以下、この文献を文献3と称す)論及されてお
り、またこの、あるデジタル署名については、IEEE
Trans.Inf.Theory,IT−36,v
ol.1,pp.47−53(1990)に、岡本龍明
によって、“A Fast Signature Sc
heme based on Congruentia
l Polynomal Operations”と題
して論及されている。(以下、この文献を文献4と称
す)
【0004】
【課題を解決するための手段】pを自然数、pのビット
数を|p|で表すことにする。x,y∈Z/p2 Z(Z
/p2 Zはp2 を法とする剰余群)に対して、xy mod
2 を計算することを考える。以下、処理量の比較を
するために、1単位を、|p|ビットの自然数どうしの
乗算を1単位とする。すると、一般に、xy mod p2
は12単位かかることが知られている。これは、x,y
がZ/pZの元だとした時に、乗算x×yに1単位、x
yを mod pするのに、2単位かかり、従って3単位か
かるので、Z/p 2 Zの場合、ビット数が2倍、即ち、
処理量は4倍になり、12単位かかることが分かる。
【0005】この高速化のために、 mod pでの乗算剰
余演算を全面的に援用する。x=a+bp mod p2
y=c+dp mod p2 と表わされており、これらを、
それぞれx=(a,b),y=(c,d)と表す。なお
x=x´mod p2 とすると、aはx´をpで割った余り
であり、bはその商である。ここではx,yはこのよう
な関係で入力されるとしている。bdp2 mod p2 =0
であるから、xy=ac+(ad+bc)p mod p2
となり、e=ac mod p、g=〔ac/p〕,f=a
d+bc+g mod pとおけば、上述の記号を用いてx
y=(e,f)と書ける。ここで、〔z〕は、zを超え
ない最大の整数を表すとする。さて、今、これを次のよ
うに計算する。まず、acの計算で1単位、e,gはa
c mod pの計算で同時に求められるので、これが2単
位、次に、ad,bcの計算にそれぞれ1単位で2単
位、足し算は、かけ算に比べて処理量は無視出来、残り
のad+bc+g mod pは、2単位、従って、最終的
にかかる処理量は7単位であると見積もれる。
【0006】以上述べたこの発明の原理を適用した場合
の各演算装置における演算アルゴリズムは以下のように
なる。 (1)平方数を法とした場合の乗算剰余演算のアルゴリ
ズム 入力:x=(a,b),y=(c,d),p 出力:xy=(e,f) ステップ1 ac,ad,bcの計算。
【0007】ステップ2 e=ac mod p,g=〔a
c/p〕の計算。 ステップ3 f=ad+bc+g mod pの計算。 (2)平方数を法とした場合の自乗剰余演算のアルゴリ
ズム 入力:x=(a,b)p 出力:x2 =(e,f) ステップ1 a2 ,abの計算。
【0008】ステップ2 e=a2 mod p,g=〔a
2 /p〕の計算。 ステップ3 f=2ab+g mod pの計算。 (3)平方数を法とした場合の巾乗剰余演算のアルゴリ
ズム 入力:x=(a,b),m,p 出力:xm =(e,f) 局所変数i,yを準備しておく、初期値i=y=1 ステップ1 mの下位iビット目が0であれば、yにy2 mod p2
を代入し、そうでなければ、yに、y2 ×x mod p2
を代入、iにi+1を代入。 ステップ2 ikであれば、ステップ1に戻る。そうでなければ、
修了して、y=(e,f)を出力する。kはmのビット
数。
【0009】このアルゴリズム自体は例えば文献1に示
されていて公知であるがこの発明ではこのステップ1の
中で使われている、自乗演算、乗算剰余演算は上記
(2)、(1)の各アルゴリズムによるものとする。同
様に、二乗を考えると、前記(2)のアルゴリズムから
処理量は6単位であると考えられる。従って、乗算剰余
演算処理は、7/12倍に出来る。次に、巾乗剰余演算
について、処理量を比較してみる。
【0010】自然数mに対して(k=|m|とする)、
上述のxを mod p2 でm乗、即ち、xm mod p2 を計
算することを考える。これは、くりかえし二乗法を用い
て、4×(3/2)×k×3=18k、即ち、18k単
位かかることが知られている。これを、この発明により
実行することを見積もれば、次のようになる。同じ、く
りかえし二乗法を用いて計算すると、y2 mod p2
6単位、y2 ×x modp2 に(6+7)単位かかるから
{6+(6+7)/2}×k=19k/2、即ち、19
k/2単位かかり、結局(1/18)/(19/2)=
19/36倍に出来る。
【0011】
【発明の実施の形態】1.平方数を法とした場合の乗算
剰余演算装置の一実施例について図1を参照して説明す
る。まず、入力x=(a,b)、y(c,d)、pがレ
ジスタよりなる入力手段11に入力保持される乗算器1
2が、入力手段11からx=(a,b),y=(c,
d)を受けとると、ac,ad,bcを計算し、acを
レジスタ13に格納して剰余器14に、ad,bcをレ
ジスタ15に格納して加算器16にそれぞれ入力する。
剰余器14には入力手段11よりpも入力されe=ac
mod pと〔ac/p〕をそれぞれ計算してg=〔ac
/p〕をレジスタ17を介して加算器18に入力する。
加算器16は、ad+bcを出力し、これを加算器18
に入力する。加算器18は、ad+bc+gを出力し、
これを剰余器19に入力し、剰余器19には入力手段1
1からpも入力され、f=ad+bc+g mod pを計
算して出力して出力手段21より外部へ出力する。また
剰余器14で計算されたe=ac mod pが出力手段2
2を介して外部へ出力される。つまり最終的に、この乗
算剰余演算装置100は、xy=(e,f)を出力して
停止する。各部の順次制御各レジスタに対する格納、取
出しなどは制御部23により行われる。
【0012】2.平方数を法とした場合の自乗剰余演算
装置の一実施例について図2を参照して説明する。ま
ず、入力手段31にx(a,b),pが入力保持され
る、入力手段31中のaが自乗器32でa2 の計算がな
され、その結果がレジスタ33に格納されて剰余器34
に入力される。剰余器34には入力手段31からpも入
力され、e=a2 mod pとg=〔a2 /p〕とを計算
して出力し、それぞれレジスタ35,36に格納する。
一方、入力手段31からx=(a,b)を乗算器38が
受けとると、乗算器38はabを計算してシフト器39
に入力し、シフト器39はabを1ビット左シフトして
2abを加算器41に入力する。加算器41にはレジス
タ36のgが入力され、2ab+gを出力し、これを剰
余器42に入力して剰余器42には入力手段31からp
も入力されf=2ab+g mod pを計算して出力手段
43を通じて外部へ出力する。レジスタ35も出力手段
としてe=a2 modpを外部へ出力する。つまり最終的
に、自乗剰余演算装置200は、x2 =(e,f)を出
力して停止する。各部の制御、各レジスタに対する格
納、取出しなどは制御部44が行う。
【0013】3.平方数を法とした場合の巾乗剰余演算
装置の一実施例について図3を参照して説明する。 メ
モリ52の中に局所変数i,yの領域が確保され、それ
ぞれ、初期値i=y=1が設定されてある。まず、入力
手段52にx=(a,b),m,pが入力保持され、入
力x=(a,b),mをビット判定器53が受けとる
と、ビット判定器53にはメモリ51の中のi,yも入
力され、mの下位第iビット目が0なら、自乗剰余演算
装置54にyの値を入力し、自乗剰余演算装置54には
入力手段52からpも入力され、y2 mod p2 の値を
計算してyとしてメモリ51に格納する。自乗剰余演算
装置54,55は共に図2に示した構成のものであっ
て、従ってy2 =c+dpと表現して計算される。乗算
剰余演算装置57は図1に示した構成のものでありy=
(c,d)と表現されて計算される。
【0014】ビット判定器53で下位第iビット目がゼ
ロでないときは、自乗剰余演算装置55にyの値を入力
してy2 mod p2 を計算してレジスタ56に格納し、
このレジスタ56内の値をyとして乗算剰余演算装置5
7に入力し、この装置57にはx,pも入力し結局、y
2 x mod p2 を計算して出力し、これをyとしてメモ
リ51に入力する。さらに、メモリ51内のiにi+1
を加算器58で行ってiを更新する。次に、ビット判定
器59において、ikかどうか判定し、そうであれば
ビット判定器53の処理に戻り上述を繰り返す。そうで
なければ、メモリ51内のy=(e,f)=xm mod
2 をレジスタよりなる出力手段60により出力して停
止する。各部の制御、各レジスタと、メモリに対する格
納、取出しなどは制御部61で行う。自乗剰余演算装置
54と55は同一のものを用いてもよい。
【0015】上述した各剰余演算装置による各機能はコ
ンピュータがプログラムを読出し、解読実行することに
よって行わせることもできる。
【0016】
【発明の効果】以上述べたようにこの発明によれば平方
数を法とした場合では、従来の、乗算剰余演算、巾乗剰
余演算及び自乗剰余演算に比べて、それぞれ12/7
倍、36/19倍、2倍高速な処理が可能となり、文献
3,4で提案されているような自然数の巾を法とした剰
余演算を必要とする公開鍵暗号、デジタル署名等におけ
る処理時間の大幅な短縮が期待出来る。
【図面の簡単な説明】
【図1】この発明の平方数を法とした場合の「乗算剰余
演算装置」における一実施例の機能的構成を示す図
【図2】この発明の平方数を法とした場合の「自乗剰余
演算装置」における一実施例の機能的構成を示す図
【図3】この発明の平方数を法とした場合の「巾乗剰余
演算装置」における一実施例の機能的構成を示す図
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 650 G09C 1/00 620 G06F 7/72 JICSTファイル(JOIS)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 x=a+bp mod p2 、y=c+dp m
    od p2 の関係があるa、b、c、d、pが入力され
    てxy mod p2 =e+fp mod p2 を出力する剰余
    演算装置において、 上記入力に対し、ac,ad,bcの各乗算を行う乗算
    手段と、 上記acと上記pとが入力されて、e=ac mod pと
    g=〔ac/p〕をそれぞれ演算する第1剰余手段と
    (〔z〕はzを越えない整数値)上記ad,bc,gを
    加算する加算手段と、 上記ad+ac+gと上記pが入力されてf=d+b
    c+g mod pを計算する第2剰余手段と、 上記eとfを演算結果として出力する手段と、 上記各手段を順次動作させる制御手段と、 を具備する剰余演算装置。
  2. 【請求項2】 x=a+bp mod p2 の関係がある
    a、b、pが入力されてx2 =e+fp mod p2 を出
    力する剰余演算装置において、 上記aが入力されてa2 を計算出力する自乗手段と、 上記a2 と上記pが入力され、e=a2 mod pとg
    〔a2 /p〕をそれぞれ計算する第1剰余手段と、 上記a,bが入力され、abを計算する乗算手段と、 上記abが入力され、1ビット左へシフトして2abを
    得るシフト手段と、 上記gと2abが入力され、これらを加算する加算手段
    と、 その加算手段の加算結果と上記pが入力されてf=2a
    b+g mod pを計算する第2剰余手段と、 上記e及び上記fを出力する手段と、 上記各手段を順次動作させる制御手段と、 を具備する剰余演算装置。
  3. 【請求項3】 x=a+bp mod p2 の関係がある
    a、b、pとmが入力され、y=xm mod p2 を出力
    する剰余演算装置において、 初期値i=y=1の局所変数i,yを記憶するメモリ
    と、 上記yとpが入力され、y2 mod p2 を計算してその
    結果をyとして出力する請求項2記載の剰余演算装置よ
    りなる自乗剰余演算手段と、 上記自乗剰余演算手段の出力yと上記xとpが入力され
    て、y・x mod p2を演算してその結果をyとして出
    力する請求項1記載の剰余演算装置よりなる乗算剰余演
    算手段と、 上記mの下位第iビット目が0か否か判定する第1ビッ
    ト判定手段と、 その第1ビット判定手段で0と判定されると、上記自乗
    剰余演算手段による演算を行ってその結果の出力yで、
    0と判定されないと上記自乗剰余演算手段及び上記乗算
    剰余演算手段による各演算を行ってその結果の出力y
    で、上記メモリ内の局所変数yを更新する手段と、 上記メモリ内の局所変数iを+1して更新する手段と、 上記更新されたiがmのビット数以下か否かを判定する
    第2ビット判定手段と、 上記第2ビット判定手段の判定がmのビット数以下であ
    れば、上記第1ビット判定手段の判定、その判定結果に
    もとづく、処理を繰返し、上記判定がmのビット数以下
    でなければ、その時のyの値を外部へ出力するように各
    手段を動作させる制御手段と、 を具備する剰余演算装置。
  4. 【請求項4】 請求項1に記載した剰余演算装置とし
    、コンピュータを機能させるためのプログラムを記
    したコンピュータ読み取り可能な記録媒体
  5. 【請求項5】 請求項2に記載した剰余演算装置とし
    、コンピュータを機能させるためのプログラムを記
    したコンピュータ読み取り可能な記録媒体
  6. 【請求項6】 請求項3に記載した剰余演算装置とし
    、コンピュータを機能させるためのプログラムを記録
    したコンピュータ読み取り可能な記録媒体
JP07935698A 1998-03-26 1998-03-26 平方数を法とした剰余演算装置及びそのプログラム記録媒体 Expired - Fee Related JP3390966B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP07935698A JP3390966B2 (ja) 1998-03-26 1998-03-26 平方数を法とした剰余演算装置及びそのプログラム記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07935698A JP3390966B2 (ja) 1998-03-26 1998-03-26 平方数を法とした剰余演算装置及びそのプログラム記録媒体

Publications (2)

Publication Number Publication Date
JPH11282349A JPH11282349A (ja) 1999-10-15
JP3390966B2 true JP3390966B2 (ja) 2003-03-31

Family

ID=13687629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07935698A Expired - Fee Related JP3390966B2 (ja) 1998-03-26 1998-03-26 平方数を法とした剰余演算装置及びそのプログラム記録媒体

Country Status (1)

Country Link
JP (1) JP3390966B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2696223C1 (ru) * 2018-12-04 2019-07-31 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Арифметико-логическое устройство для формирования остатка по произвольному модулю от числа

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HANDBOOK of APPLIED CRYPTOGRAPHY,p.595−596

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2696223C1 (ru) * 2018-12-04 2019-07-31 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Арифметико-логическое устройство для формирования остатка по произвольному модулю от числа

Also Published As

Publication number Publication date
JPH11282349A (ja) 1999-10-15

Similar Documents

Publication Publication Date Title
US8504602B2 (en) Modular multiplication processing apparatus
EP0917047B1 (en) Apparatus for modular inversion for information security
US6920473B2 (en) Method and apparatus for modular multiplying and calculating unit for modular multiplying
US20080044013A1 (en) Koblitz Exponentiation with Bucketing
EP0984357B1 (en) Apparatus and method for elliptic-curve multiplication and recording medium having recorded thereon a program for implementing the method
JP4351987B2 (ja) モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム
KR101154845B1 (ko) 스칼라 배산기 및 스칼라 배산프로그램
JP3390966B2 (ja) 平方数を法とした剰余演算装置及びそのプログラム記録媒体
JP4202701B2 (ja) 多項式剰余系演算装置、方法及びプログラム
CN113467752B (zh) 用于隐私计算的除法运算装置、数据处理系统及方法
JP2007526513A (ja) 要素の累乗またはスカラー乗算の方法
JP3460798B2 (ja) 楕円積和演算計算方法、楕円積和演算計算装置及び楕円積和演算計算プログラムを記録した記録媒体
JP3638493B2 (ja) 楕円曲線自乗演算装置、およびこのプログラム記録媒体
JP3626315B2 (ja) 剰余算装置、情報処理装置及び剰余算方法
Kaihara et al. A hardware algorithm for modular multiplication/division based on the extended Euclidean algorithm
JP3515462B2 (ja) 剰余系演算装置及び方法
JP2001265218A (ja) 楕円曲線上の演算方法及び装置と、演算プログラムを記録した記録媒体
JP3842641B2 (ja) モンゴメリ乗算を用いるコプロセッサを使用する演算装置及び方法
JP3992883B2 (ja) 演算装置及び演算方法
US7337203B2 (en) Exponent calculation apparatus and method, and program
JP2003043915A (ja) 演算装置及び演算方法及び演算プログラム
JP2003216034A (ja) べき乗剰余演算器
JP2001194995A (ja) 楕円曲線上の演算計算方法及び装置と、演算計算プログラムを記録した記録媒体
JP2003271055A (ja) ウインドウ処理装置、ウインドウ処理プログラムおよびその記録媒体
JP2001318598A (ja) 楕円曲線上の演算方法及び装置と、演算プログラムを記録した記録媒体

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080124

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090124

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090124

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100124

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110124

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110124

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120124

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130124

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees