JP2000010479A - モンゴメリ・リダクション装置及び記録媒体 - Google Patents

モンゴメリ・リダクション装置及び記録媒体

Info

Publication number
JP2000010479A
JP2000010479A JP10178787A JP17878798A JP2000010479A JP 2000010479 A JP2000010479 A JP 2000010479A JP 10178787 A JP10178787 A JP 10178787A JP 17878798 A JP17878798 A JP 17878798A JP 2000010479 A JP2000010479 A JP 2000010479A
Authority
JP
Japan
Prior art keywords
integer
mod
montgomery
unit
calculation
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.)
Granted
Application number
JP10178787A
Other languages
English (en)
Other versions
JP3542278B2 (ja
Inventor
Atsushi Shinpo
淳 新保
Shinichi Kawamura
信一 川村
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP17878798A priority Critical patent/JP3542278B2/ja
Priority to US09/262,742 priority patent/US6546104B1/en
Publication of JP2000010479A publication Critical patent/JP2000010479A/ja
Application granted granted Critical
Publication of JP3542278B2 publication Critical patent/JP3542278B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 本発明は、モンゴメリ・リダクションを少な
い計算量で実現でき、大幅に効率化することができる。 【解決手段】 正の整数C,pを入力とし、pを2進表
現したときのビット長をLとして、n≧Lなる整数nを
用いてR=2n として定義されたRを用いて、D=C・
-1 mod pを計算するモンゴメリ・リダクション
装置1であって、C=αR+βを満たす整数ペア(α,
β)を算出する(α,β)抽出部2と、R-1=ε(mo
d p)を満たすεとβとを乗じた結果を求める乗算部
3と、αと乗算部の結果出力とを加算する加算部4と、
加算部の出力とpを法として合同なp以下の剰余値を求
める計算部5とを備えたモンゴメリ・リダクション装
置。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、計算機ネットワ
ークでのデータ通信におけるデータの暗号化や通信相手
の確認に利用される公開鍵暗号等、奇数の整数を法とす
る多倍長の乗算を含む演算処理を繰り返す時の利用に適
したモンゴメリ・リダクション装置及び記録媒体に関す
るものである。
【0002】
【従来の技術】情報通信ネットワークや計算機システム
では、電子的な情報の交換・累積が行われる。そのよう
なシステムが大規模化し、不特定多数のユーザが利用す
る状況では、悪意のユーザによる情報の盗聴や改ざんな
どが問題となる。その対策として公開鍵暗号技術を利用
する場合が多い。
【0003】ここで公開鍵暗号は、多倍長の奇整数を法
(モジュラス)とする演算(剰余演算系)で実現される
方式が多く、その高速化が性能に影響を与える。剰余演
算系では、特に乗算と除算が処理時間に与える影響が大
きい。例えば、RSA暗号では奇合成数を法とする剰余
演算系でのべき乗計算により暗号化と復号の各処理が実
行される。また、素体Fp上の楕円曲線暗号では、奇素
数を法とする加減乗除演算を適切に組み合わせて楕円曲
線上の点の加算を構成し、その点の加算演算の繰り返し
を用いて暗号化と復号の各処理が実行される。
【0004】剰余演算系での乗算(A*B mod p
の計算)を実現する場合には、多倍長の乗算(C=A
*B の計算)とその結果に対する多倍長の剰余計算
(Cmod p の計算)を構成する場合が多い。この
時、多倍長の剰余計算は多倍長の乗算よりも性能が劣る
ことが多く、剰余計算の効率化について幾つかの検討が
行われている。
【0005】剰余演算系での乗算の繰り返し実行に適し
た計算アルゴリズムとして、モンゴメリ算法が知られて
いる。同算法は文献(1)P.L.Montgomer
y,“Modular multiplication
without trial division”,
Math.of Comp,Vol.44,No.17
0,pp,519−521(1985)に詳しい。
【0006】モンゴメリ算法では、奇整数を法とする剰
余演算系での乗算を、次のように実行する。最初に乗数
Aと被乗数Bとの多倍長の乗算を実行し、Cを得る。こ
こでAとBは共に法である整数p以下のサイズとする。
次に、Cに対してモンゴメリ・リダクションと呼ばれる
演算を行い、法以下のサイズにする。すなわち、法pの
2倍程度のサイズであるCを法pのサイズに縮小させる
のである。このモンゴメリ・リダクションが通常での剰
余計算に相当し、その処理は概ね多倍長同士の乗算1回
と同じ処理量である。すなわち、剰余計算処理が効率化
される。計算機上の演算処理の中では、除算演算は他の
加算,減算又は乗算演算よりも処理に時間がかかるから
である。
【0007】さて、モンゴメリ算法は剰余演算系での乗
算の繰り返し実行に適したアルゴリズムと説明したが、
これは次の理由による。モンゴメリ算法はモンゴメリ演
算域の元(これも同じ法での剰余系である)の乗算アル
ゴリズムであり、一般の剰余系での乗算を実現するには
以下の処理が必要である。すなわち、まず乗数と被乗数
をモンゴメリ演算域に変換し、次にモンゴメリ乗算(乗
算とモンゴメリ・リダクション)を行い、最後にモンゴ
メリ演算域からもとの剰余系に結果を逆変換する必要が
ある。モンゴメリ演算域ともとの剰余系での元の対応関
係はモンゴメリ乗算の前後で保存される。したがって、
例えばべき乗など剰余演算系での乗算の繰り返しを行う
場合であれば、演算の最初にべき乗の底をモンゴメリ演
算域に変換すれば、モンゴメリ乗算の結果をその都度、
もとの剰余系での値に逆変換する必要は無く、繰り返し
モンゴメリ乗算の入力に適用できる。べき乗の最後にモ
ンゴメリ演算域の値をもとの剰余系での値に逆変換すれ
ば良い。モンゴメリ演算域への変換と逆変換はそれぞ
れ、剰余計算1回、乗算1回に相当する演算量であり、
全体の最初と最後に1回だけ行う場合にはオーバヘッド
にはならない。
【0008】モンゴメリ演算域の元と一般の剰余系の元
との間には、次の対応関係がある。まず、法pと互いに
素で、法pより大きな2のべき乗値をRとして定める。
一般には、Rは計算機のワードサイズの倍数とし、法p
のサイズを越える最も小さな値として定めることが多
い。例えば、32ビットCPUのソフトウェアを想定
し、法pが1024ビットの場合にはR=21024(=
(23232)、法pが160ビットならばR=2160
(=(2325 )とする。
【0009】このようなRのもと、一般の剰余系での元
をa.bとすると、それらに対応するモンゴメリ演算域
での元はA=aR(mod p)、B=bR(mod
p)である。モンゴメリ・リダクションでは、C=AB
に対してD=CR-1(modp)=(ab)R(mod
p)なる値が計算される。このモンゴメリ演算域での
元Dは、一般の剰余系での値 (ab)に対応してい
る。モンゴメリ・リダクションは、このD=CR-1(m
od p)に相当する演算であるため、例えば、モンゴ
メリ演算域の元Dを一般の剰余系の元dに逆変換する場
合にも利用できる。すなわち、d=DR-1(mod
p)=ab(mod p)である。
【0010】
【発明が解決しようとする課題】このモンゴメリ・リダ
クションは、モンゴメリ演算の中心となる演算処理であ
り、この演算の処理速度が暗号演算等の高速化に与える
影響は大きい。同演算は、モンゴメリ演算法以外の演算
方法に比べれば多倍長乗算1回程度と効率が良いが、近
年の暗号化技術の普及等に鑑みてより高速化を図りたい
という要請がある。
【0011】すなわち現状では、モンゴメリ・リダクシ
ョンを多倍長乗算1回程度の処理量より大きく削減する
手法は実現されておらず、実際にはモンゴメリ演算系を
利用しても演算効率の改善度が必ずしも十分ではないと
いう問題点がある。
【0012】本発明は、このような実情を考慮してなさ
れたもので、モンゴメリ・リダクションを少ない計算量
で実現でき、大幅に効率化することができるモンゴメリ
・リダクション装置及び記録媒体を提供することを目的
とする。
【0013】
【課題を解決するための手段】上記課題を解決するため
に、請求項1に対応する発明は、正の整数C,pを入力
とし、pを2進表現したときのビット長をLとして、n
≧Lなる整数nを用いてR=2n として定義されたRを
用いて、D=C・R-1 mod pを計算するモンゴメ
リ・リダクション装置であって、C=αR+βを満たす
整数ペア(α,β)を算出する(α,β)抽出部と、R
-1=ε(mod p)を満たすεとβとを乗じた結果を
求める乗算部と、αと乗算部の結果出力とを加算する加
算部と、加算部の出力とpを法として合同なp以下の剰
余値を求める計算部とを備えたモンゴメリ・リダクショ
ン装置である。
【0014】本発明によれば、例えばεを計算装置の1
ワード以下の値とすると、乗算部における計算は1ワー
ド整数×多倍長整数の乗算となる。また、加算部の実行
結果は、1ワード程度サイズの大きい結果となるため、
最後の計算部では1ワード分だけ縮小する剰余計算処理
を行なえば良い。他の部分での演算量はわずかであるた
め全体として処理量が軽減できる。
【0015】次に、請求項2に対応する発明は、正の整
数C,pを入力とし、pを2進表現したときのビット長
をLとして、n≧Lなる整数nを用いてR=2n として
定義されたRを用いて、D=C・R-1 mod pを計
算するモンゴメリ・リダクション装置であって、wをワ
ード長とし、Rを2w で割った値をR’とするときに、
C=αR’+βを満たす整数ペア(α,β)を算出する
(α,β)抽出部と、R’-1=ε(mod p)を満た
す整数εとβとを乗じた結果を求める乗算部と、αと乗
算部の結果出力とを加算する加算部と、加算部の出力T
とwとを入力として、T・2-w(mod p)を求める
計算部と備えたモンゴメリ・リダクション装置である。
【0016】本発明によれば、例えばεが計算装置の1
ワード以下の値とすると、乗算部での計算は1ワード整
数×多倍長整数の乗算程度となる。また、加算部の実行
結果は1ワード程度サイズの大きい値となる。最後の計
算部は、最下位1ワード分を縮小するモンゴメリ・リダ
クション演算、すなわち1ワード整数×多倍長整数の乗
算相当の処理量で実現できる。他の部分での演算量はわ
ずかであるため全体として処理量が削減できる。
【0017】次に、請求項3に対応する発明は、請求項
1に対応する発明をコンピュータに実現させるためのプ
ログラムを格納した記録媒体である。本発明の記録媒体
に格納されたプログラムをコンピュータにおいて読み出
せば、請求項1に係るモンゴメリ・リダクション装置が
実現される。
【0018】次に、請求項4に対応する発明は、請求項
2に対応する発明をコンピュータに実現させるためのプ
ログラムを格納した記録媒体である。本発明の記録媒体
に格納されたプログラムをコンピュータにおいて読み出
せば、請求項2に係るモンゴメリ・リダクション装置が
実現される。
【0019】次に、請求項5に対応する発明は、正の整
数C,pを入力とし、pを2進表現したときのビット長
をLとして、n≧Lなる整数nを用いてR=2n として
定義されたRを用いて、D=C・R-1 mod pを計
算するモンゴメリ・リダクション装置であって、Cに基
づき、その下位複数ワードからなる整数βと残りの上位
ワードからなる整数αとを算出する(α,β)抽出部
と、βとパラメータεとを乗じた値をさらにαと加算し
た加算結果が、Dと合同な値D’となる条件を満たすε
を用い、加算結果を求める加算部とを備えたモンゴメリ
・リダクション装置である。
【0020】本発明によれば、乗算部における計算は1
ワード整数×多倍長整数程度の乗算となる。また、加算
部の実行結果はDと合同な値D’となるが、このD’は
βがCの下位複数ワードであるので、1ワードづつリダ
クションしていく通常のモンゴメリ・リダクションに比
べれば少ない演算量でそのワード数までリダクションさ
れたものである。したがって、剰余計算の回数を少なく
することができ、モンゴメリ・リダクションを少ない計
算量で実現できる。
【0021】
【発明の実施の形態】本発明におけるモンゴメリ・リダ
クション装置及び方法は、剰余計算の効率化アルゴリズ
ムであるモンゴメリ・リダクションをさらに効率的に実
現するものである。具体的には、法pをモンゴメリ・リ
ダクションでの演算式に適した値として設定すること
で、その効率的な演算を実現可能とする。
【0022】モンゴメリ・リダクションは奇整数を法と
する剰余演算系における剰余計算を実行するアルゴリズ
ムである。法pに関しては奇数であること以上の制約は
ないが、実施形態では説明を簡単にするため法pは奇素
数であることを想定する。
【0023】モンゴメリ・リダクションの利用にあたっ
ては、法pのビットサイズから決定される定数Rを定め
る必要がある。定数Rの条件としては、R>pであるこ
とと、Rとpとが互いに素であることである。但し、モ
ンゴメリ・リダクションの中で、Rで剰余をとった結果
やRで割った商を求める手続きがあり、それら処理の効
率化のために、Rのサイズは実装される計算装置のワー
ド長の倍数に設定することが一般的である。すなわち、
計算装置のワード長をwとするとき、R=(2wL
(但しLは、R>pを満足する最小の整数)と設定され
ることが多い。以下では、設明を簡単にするため、pの
ビットサイズnはwの倍数とし、R=2nと設定される
ものとして説明する。なお、これらの説明上の都合によ
る想定で、発明自体が限定されるものではない。
【0024】モンゴメリ・リダクションでは、法pより
小さい正の整数A,Bの積Cに対して、D=CR-1
od pを計算する。ここで、R-1はR・R-1=1 m
odpを満たすRの乗法的逆元を表す。
【0025】以下、本発明の各実施形態について説明す
る。 (発明の第1の実施の形態)図1は本発明の第1の実施
の形態におけるモンゴメリ・リダクション計算法の原理
を説明する図である。
【0026】この発明では、R-1=ε(mod p)を
満たすεの存在するような法pを用いることを前提とす
る。ここでεは計算装置の1ワードで表現できる整数で
ある。なお、図1において、ブロックの1つは1ワード
を示している。
【0027】A、Bはともに法p以下の整数であるた
め、それらの積Cは法pの2倍のサイズ以下となる。R
は法pのサイズnに対して、2n なる値として設定され
ていることに注意すると、C=αR+βと分解すると
き、法pのサイズの位置(図1では下位側から4ワード
のところ)でCを上位側と下位側に分けたうちの上位側
の数値がα、下位側の数値がβとなる。
【0028】このとき、 D=C×R-1(mod p) =(αR+β)×R-1(mod p) =α+βR-1(mod p) =α+εβ(mod p) が成立する。ここで最後の式変形に法pの特殊性(R-1
=ε(mod p)つまり、この場合R-1=εが成り立
つ)を利用している。
【0029】図1に示すように、まずCを上位側のαと
下位側のβに分割し、βに法pから決まるεを掛ける。
この結果をαと加算する。以上で、モンゴメリ・リダク
ションとして求まる値Dと法pのもとで合同な値D’が
計算できる。
【0030】D’は図1に示したように法pよりも1ワ
ードだけサイズが大きな値として計算される。D’の値
から法pのもとで合同でpよりも小さい値Dを求めるに
は、D’を法pで割りその剰余を求める手法、あるい
は、予めpよりも1ワードだけ大きい値に関する剰余値
のテーブルを計算しておき、そのテーブルを参照してD
の値を求める手法、などを利用する。
【0031】剰余値のテーブルを利用する方法の具体例
としては、例えば次の方法がある。剰余テーブルTJ
して、TJ =2j ×R(mod p)(j=0,1,
2,…,w−1)を予め計算しておく。D’を上位1ワ
ードEとそれ以外の下位側データFとに分ける。Eの各
ビットを参照し、その最下位ビット(LSB)から第i
ビット(i=0,1,2,…,w−1)が1であれば、
FにTi を加算する。こうして法pのもとでD’と合同
でD’よりもサイズの小さい値が求まる。
【0032】この結果に対して再びRを越えた部分とR
未満の部分にデータを分けて同様の処理を繰り返すこと
ができる。こうした処理により法pよりもビットサイズ
が2〜3ビット程度大きい値にまで縮小された段階で、
結果が負にならない範囲でpを繰り返し減じることで法
pより小さい剰余値が計算できる。
【0033】以上に述べた演算原理を適用できる法p
は、R-1=ε(mod p)を式変形することによりε
R−1=0(mod p)と記述できることから、ε・
n −1がnビットの素数で割り切れる場合には、その
ときの素因数pとεを利用すれば良い。
【0034】次に、上記演算方法を実現する具体的な装
置を説明する。図2は本実施形態におけるモンゴメリ・
リダクション装置の構成例を示すブロック図である。
【0035】このモンゴメリ・リダクション装置1は、
CPU,メモリその他の周辺要素を具備する計算機がそ
のプログラムに制御されることで実現されるものであ
り、(α,β)抽出部2、T1乗算部3、T2加算部4
及びD剰余計算部5から構成されている。
【0036】また、本実施形態のモンゴメリ・リダクシ
ョン装置1は、モンゴメリ演算系における各演算のう
ち、モンゴメリ・リダクションのみを実行するものであ
る。この装置1の利用例については後述する。
【0037】(α,β)抽出部2は、本装置1における
モンゴメリ・リダクションの計算対象である多倍長整数
Cと、法の値pと、モンゴメリ演算の補助パラメータで
ある定数Rと、R-1=ε(mod p)なる値εとが入
力されると、α=C/R、β=C(mod R)なる両
データを抽出する。実際の処理としては、Cをワード単
位に並べ、Rよりも上位側のデータと下位側のデータと
して抽出する。
【0038】T1乗算部3は、εと(α,β)抽出部2
で抽出されたβとを乗算し、その結果T1を得る。この
部分3は1ワード数と多倍長整数の乗算を行なう計算部
である。
【0039】T2加算部4は、T1乗算部3の結果T1
と(α,β)抽出部2で抽出されたαとを加算処理して
結果T2を得る。D剰余計算部5は、T2加算部4で得
られたT2と法pとからD=T2(mod p)が求め
られる。剰余計算部5は整数の除算回路などで実現でき
る。この場合、多倍長整数を除数として、被除数は除数
より1ワードだけサイズの大きな除算を行なう回路があ
ればよい。
【0040】次に、以上のように構成された本発明の実
施の形態に係るモンゴメリ・リダクション装置の動作に
ついて説明する。図3は、本実施形態のモンゴメリ・リ
ダクション装置における計算手順を示す流れ図である。
【0041】まず、ステップS1でモンゴメリ・リダク
ションの対象であるデータC、法の値p、演算補助パラ
メータであるRとεとが(α,β)抽出部2に入力され
る。次にステップS2でα=C/Rとβ=C(mod
R)が(α,β)抽出部2により算出される。この処理
はCを下位側からnビットまでの部分とそれより上位の
部分とに分け、前者をβ、後者をαとすることでよい。
【0042】次にステップS3でT1乗算部3によりT
1=ε×βが計算され、続いてステップS4でT2加算
部4によりT2=α+T1が計算される。最後にステッ
プS5でD剰余計算部5によりD=T2(mod p)
なるDが計算され、ステップS6でこの値が出力されて
終了する。
【0043】以上の処理のうちステップS3は1ワード
の整数と多倍長整数の乗算である。また、S5を除算で
実行する場合には、多倍長整数同士の除算を行うことに
なるが、被除数の最上位1ワードだけを縮小すれば良い
ので処理量は少ない。全体として、通常のモンゴメリ・
リダクションで行なわれる多倍長整数同士の乗算1回よ
りも処理量が少なくなる。
【0044】上述したように、本発明の実施の形態に係
るモンゴメリ・リダクション装置は、法pをモンゴメリ
・リダクションでの演算式に適した値として設定するよ
うにしたので、モンゴメリ・リダクション演算をより少
ない計算量で実現することができる。
【0045】なお、本装置1では、本計算手法に適した
法pを予め選択しておく必要があるが、例えば代表的な
暗号アルゴリズムではそのような設定が可能であり、暗
号処理に必要な演算量を大きく削減することが可能とな
る。例えば公開鍵暗号など固定的に用いられる奇整数を
法とした剰余演算系において利用されるモンゴメリ・リ
ダクション演算において演算量が削減される。 (発明の第2の実施の形態)第1の実施形態で説明した
演算手法によれば1ワード数×多倍長整数の乗算1回で
所望のモンゴメリ・リダクション結果Dよりも1ワード
だけサイズの大きな結果D’が求められる。しかし、こ
の場合でもD’からDを求めるのに除算や剰余テーブル
などの演算が必要で、その処理の効率が良くないという
問題が残る。本実施形態では、この問題を解決できるモ
ンゴメリ・リダクションの計算法を説明する。
【0046】図4は本発明の第2の実施の形態における
モンゴメリ・リダクション計算法の原理を説明する図で
ある。本発明では、計算機の1ワードのビット長をwと
したとき、R-1w =ε(mod p)を満たすような
1ワード以内の整数εの存在する法pを用いることを前
提とする。
【0047】図1の場合と同様に、モンゴメリ・リダク
ションの対象であるCは法pの2倍のサイズ以下とな
る。この計算方法では、Cを上位側データαと下位側デ
ータβに分割するときに、R2-wの位置(法pのサイズ
よりも1ワード分だけサイズの小さい位置)でαとβに
分割する。すなわち、C=α(R・2-w)+βとなる。
図4の例では下から3ワード目で分割する。
【0048】このとき、 D=C×R-1(mod p) =(α(R・2-w)+β)・(R-1・2w )・2-w(mod p) =(α+β・(R-1・2w ))・2 w (mod p) =(α+βε)・2-w(mod p) が成立する。ここで最後の式変形にpの特殊性(R-1
w =ε(mod p)=ε)を利用している。
【0049】ここで、D’=α+βεとおくとD’は法
pのワード数よりも1ワードだけ大きい数となるが、D
=D’・2-w(mod p)は、文献(1)P.L.M
ontgomery,“Modular multip
lication without trial di
vision”,Math.of Comp.,Vo
l.44,No.170,pp.519−521(19
85)などに示されているモンゴメリ・リダクション計
算法をD’の最下位ワードのみに適用することで計算で
き、その結果は法p以下のサイズになる。D’からDを
求める計算量は1ワード数×多倍長整数の乗算1回程度
である。
【0050】以上に述べた演算原理を適用できる法p
は、R-1・2w =ε(mod p)を式変形することに
よりε(R・2-w)−1=0(mod p)となること
から、p=ε×2n-w −1となる形式を満たすものとな
る。
【0051】次に、上記演算方法を実現する具体的な装
置を説明する。図5は本実施形態におけるモンゴメリ・
リダクション装置の構成例を示すブロック図である。
【0052】このモンゴメリ・リダクション装置11
は、第1の実施形態と同様に計算機により実現されるも
のであり、図5はハードウエアとソフトウエアの結合か
らなる機能実現ブロックを示している。すなわちモンゴ
メリ・リダクション装置11は、(α,β)抽出部1
2、T1乗算部13、T2加算部14及びD計算部15
から構成されている。
【0053】(α,β)抽出部12は、本装置11にモ
ンゴメリ・リダクションの計算対象である多倍長整数C
と、法の値pと、モンゴメリ演算の補助パラメータであ
る定数Rと、R-1・2w =ε(mod p)なる値ε及
びwとが入力されると、α=C/(R2-w)、β=C
(mod(R2-w))なる両データを抽出する。
【0054】T1乗算部13は、1ワード数と多倍長整
数の乗算を行なう計算部であり、εと(α,β)抽出部
12で抽出されたβとを乗算し、その結果T1を得る。
T2加算部14は、T1乗算部13での計算結果T1
と、(α,β)抽出部12で抽出されたαとを加算処理
して結果T2を得る。
【0055】D計算部15は、T2加算部15で得たT
2と、法pとからD=T2・2-w(mod p)を求め
る。このD計算部15は1ワードと多倍長整数の乗算器
と多倍長の加算器で構成される。
【0056】次に、以上のように構成された本発明の実
施の形態に係るモンゴメリ・リダクション装置の動作に
ついて説明する。図6は、本実施形態のモンゴメリ・リ
ダクション装置における計算手順を示す流れ図である。
【0057】まず、ステップS11でモンゴメリ・リダ
クションの対象であるデータC、法の値p、演算補助パ
ラメータであるR及びε、計算機のワード長wが(α,
β)抽出部12に入力される。次にステップS12で
(α,β)抽出部12によりα=C/(R2-w)とβ=
C(mod(R2-w))が求められる。この処理はCを
下位側から法pのサイズより1ワードだけ小さいビット
位置までの部分とそれより上位の部分とに分け、前者を
β、後者をαとすることでよい。
【0058】次にステップS13でT1乗算部13によ
りT1=ε×βが計算され、さらにステップS14でT
2加算部14によりT2=α+T1が計算される。最後
にステップS15でD計算部15によりD=T2・2-w
(mod p)なるDが計算され、ステップS16でこ
の値が演算結果として出力されて終了する。
【0059】以上の処理のうちステップS13は1ワー
ドの整数と多倍長整数の乗算である。また、ステップS
15は1ワード分のモンゴメリ・リダクション演算を実
行することで計算でき、この部分の処理量も1ワードの
整数と多倍長整数の乗算である。従って、全体として1
ワードの整数と多倍長整数の乗算2回で計算可能でとな
る。
【0060】次に、ステップS15の具体的な計算手順
である1ワード分のモンゴメリ・リダクション演算の手
順を説明する。図7はD計算部における計算処理を示す
流れ図である。
【0061】まず、ステップS21で計算対象であるデ
ータT2、法の値p、演算補助パラメータである計算機
のワード長wを入力する。次にステップS22でδ’=
δ・v(mod 2w )を計算する。ここで、δはT2
の最下位の1ワードであり、vは法pの最下位の1ワー
ドをp0とした場合に、v・p0=−1(mod 2
w )を満たす値vである。
【0062】この演算法で用いる法pはp=ε×2n-w
−1なる形式となるため、必ずp0=−1(mod 2
w )となり、v=1である。従って、ステップS21の
処理はT2の最下位ワードを取り出し、その値をδ’に
格納することでよい。
【0063】次にステップS23でT3=T2+δ’p
を計算する。このとき、T3の最下位1ワードは0とな
ることに注意する。次に、ステップS24でT4=T3
/(2w )を求める。この処理は、T3の最下位1ワー
ドを除いたデータをT4とすることと等価である。
【0064】こうして得られた結果はpよりも1ビット
程度大きいことがある。そこでステップS25でT4と
pの大小比較を行ないT4がp以上ならばステップS2
6でT4からpを引く。これを繰り返すことでT4は法
p以下になるのでステップS27でT4を出力して終了
する。
【0065】上述したように、本発明の実施の形態に係
るモンゴメリ・リダクション装置は、法pをモンゴメリ
・リダクションでの演算式に適した値として設定するよ
うにしたので、第1の実施形態と比べてもモンゴメリ・
リダクション演算をより一層少ない計算量で実現するこ
とができる。
【0066】すなわち、従来は多倍長整数×多倍長整数
の乗算1回程度の計算量で行なわれていたモンゴメリ・
リダクション計算を、単精度整数×多倍長整数の乗算2
回程度の計算量で実現する。暗号処理で用いる典型的な
サイズでは、多倍長整数は単精度整数の5〜64倍の長
さを持つため、約2.5〜32倍もの処理量削減につな
がる。
【0067】なお、各実施形態における本発明のモンゴ
メリ・リダクション方法および装置の応用分野として
は、暗号装置などの情報セキュリティが挙げられる。例
えば、鍵配送方式の典型的なアルゴリズムであるDif
fie−Hellman法や公開鍵暗号におけるElG
amal暗号、楕円曲線暗号、ディジタル署名方式にお
けるDSA.ECDSAなどでは法pは固定的である。
そこで、法pとして本発明の処理方法が可能となるパラ
メータを選択すれば、鍵配送や暗号などの処理効率を大
きく改善できる。
【0068】図8は本発明に係るモンゴメリ・リダクシ
ョン手法の利用対象の一例を示す図である。同図におい
て、本発明のモンゴメリ・リダクション装置はモンゴメ
リ演算による楕円曲線暗号計算部分21で用いられる。
【0069】
【実施例】以下、実施形態で説明したモンゴメリ・リダ
クション装置1/11を楕円曲線暗号装置に適用する場
合を実施例として説明する。図9は本実施例に係る楕円
曲線暗号装置の構成例を示すブロック図である。
【0070】この楕円曲線暗号装置31はパーソナルコ
ンピュータやワークステーション等の計算機からなり、
モンゴメリ変換部32と、暗号化パラメータ格納部33
と、暗号計算部34と、モンゴメリ逆変換部35とから
構成されている。なお、暗号計算部34は、図8では楕
円曲線暗号計算部分21に対応する。
【0071】モンゴメリ変換部32は、装置31に入力
された暗号化対象データをFp 領域からモンゴメリ演算
域へ変換するものである。暗号化パラメータ格納部33
は、暗号化に必要な各種パラメータを暗号計算部34に
提供する。
【0072】モンゴメリ逆変換部35は、暗号計算部3
4により得られた暗号化データをモンゴメリ領域からF
p 領域へ逆変換するものである。暗号計算部34は、モ
ンゴメリ変換部32で変換されたデータを暗号化パラメ
ータを用いて暗号化する。この暗号計算部34は、モン
ゴメリ演算装置41と暗号制御装置42とを備えてい
る。
【0073】モンゴメリ演算装置41は、モンゴメリ加
減乗除演算を行うものであり、モンゴメリ加算装置51
と、モンゴメリ減算装置52と、モンゴメリ乗算装置5
3と、モンゴメリ除算装置54とから構成されている。
【0074】まず、モンゴメリ乗算装置53は、さらに
乗算器55とモンゴメリ・リダクション装置1/11と
から構成される。また、モンゴメリ除算装置54は、モ
ンゴメリ逆元装置56とモンゴメリ・リダクション装置
1/11とから構成される。ここで各部53,54に設
けられるモンゴメリ・リダクション装置1/11は、第
1もしくは第2の実施形態で説明した装置である。
【0075】暗号制御装置42は、モンゴメリ演算装置
41に設けられた各演算装置51,52,53,54を
用い、また暗号化パラメータ格納部33のパラメータに
基づき、入力データを暗号化するための処理を制御す
る。
【0076】このように構成された楕円曲線暗号装置3
1では、モンゴメリ・リダクション装置1又は11にお
いて効率的なモンゴメリ・リダクションが行われるの
で、入力データを高速に暗号化処理し暗号化データとし
て出力することができる。
【0077】なお、本発明は、上記各実施形態又は実施
例に限定されるものでなく、その要旨を逸脱しない範囲
で種々に変形することが可能である。また、実施形態又
は実施例に記載した手法は、計算機(コンピュータ)に
実行させることができるプログラム(ソフトウエア手
段)として、例えば磁気ディスク(フロッピーディス
ク、ハードディスク等)、光ディスク(CD−ROM、
DVD等)、半導体メモリ等の記憶媒体に格納し、また
通信媒体により伝送して頒布することもできる。なお、
媒体側に格納されるプログラムには、計算機に実行させ
るソフトウエア手段(実行プログラムのみならずテーブ
ルやデータ構造も含む)を計算機内に構成させる設定プ
ログラムをも含むものである。本装置を実現する計算機
は、記憶媒体に記録されたプログラムを読み込み、また
場合により設定プログラムによりソフトウエア手段を構
築し、このソフトウエア手段によって動作が制御される
ことにより上述した処理を実行する。
【0078】
【発明の効果】以上詳記したように本発明によれば、法
pをモンゴメリ・リダクションでの演算式に適した値と
して設定するようにしたので、モンゴメリ・リダクショ
ンを少ない計算量で実現でき、大幅に効率化することが
できるモンゴメリ・リダクション装置及び記録媒体を提
供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態におけるモンゴメリ
・リダクション計算法の原理を説明する図。
【図2】同実施形態におけるモンゴメリ・リダクション
装置の構成例を示すブロック図。
【図3】同実施形態のモンゴメリ・リダクション装置に
おける計算手順を示す流れ図。
【図4】本発明の第2の実施の形態におけるモンゴメリ
・リダクション計算法の原理を説明する図。
【図5】同実施形態におけるモンゴメリ・リダクション
装置の構成例を示すブロック図。
【図6】同実施形態のモンゴメリ・リダクション装置に
おける計算手順を示す流れ図。
【図7】D計算部における計算処理を示す流れ図。
【図8】本発明に係るモンゴメリ・リダクション手法の
利用対象の一例を示す図。
【図9】本発明の実施例に係る楕円曲線暗号装置の構成
例を示すブロック図。
【符号の説明】
1…モンゴメリ・リダクション装置 2…(α,β)抽出部 3…T1乗算部 4…T2加算部 5…D剰余計算部 11…モンゴメリ・リダクション装置 12…(α,β)抽出部 13…T1乗算部 14…T2加算部 15…D計算部 21…楕円曲線暗号計算部分 31…楕円曲線暗号装置 32…モンゴメリ変換部 33…暗号化パラメータ格納部 34…暗号計算部 35…モンゴメリ逆変換部 41…モンゴメリ演算装置 42…暗号制御装置 51…モンゴメリ加算装置 52…モンゴメリ減算装置 53…モンゴメリ乗算装置 54…モンゴメリ除算装置 55…乗算器 56…モンゴメリ逆元装置

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 正の整数C,pを入力とし、pを2進表
    現したときのビット長をLとして、n≧Lなる整数nを
    用いてR=2n として定義されたRを用いて、D=C・
    -1 mod pを計算するモンゴメリ・リダクション
    装置であって、 C=αR+βを満たす整数ペア(α,β)を算出する
    (α,β)抽出部と、 R-1=ε(mod p)を満たすεと前記βとを乗じた
    結果を求める乗算部と、 前記αと前記乗算部の結果出力とを加算する加算部と、 前記加算部の出力と前記pを法として合同なp以下の剰
    余値を求める計算部とを備えたことを特徴とするモンゴ
    メリ・リダクション装置。
  2. 【請求項2】 正の整数C,pを入力とし、pを2進表
    現したときのビット長をLとして、n≧Lなる整数nを
    用いてR=2n として定義されたRを用いて、D=C・
    -1 mod pを計算するモンゴメリ・リダクション
    装置であって、 wをワード長とし、Rを2w で割った値をR’とすると
    きに、C=αR’+βを満たす整数ペア(α,β)を算
    出する(α,β)抽出部と、 R’-1=ε(mod p)を満たす整数εと前記βとを
    乗じた結果を求める乗算部と、 前記αと前記乗算部の結果出力とを加算する加算部と、 前記加算部の出力Tと前記wとを入力として、T・2-w
    (mod p)を求める計算部と備えたことを特徴とす
    るモンゴメリ・リダクション装置。
  3. 【請求項3】 正の整数C,pを入力とし、pを2進表
    現したときのビット長をLとして、n≧Lなる整数nを
    用いてR=2n として定義されたRを用いて、D=C・
    -1 mod pを計算するモンゴメリ・リダクション
    装置を制御するプログラムであって、 C=αR+βを満たす整数ペア(α,β)を算出する
    (α,β)抽出手段と、 R-1=ε(mod p)を満たすεと前記βとを乗じた
    結果を求める乗算手段と、 前記αと前記乗算手段の結果出力とを加算する加算手段
    と、 前記加算手段の出力と前記pを法として合同なp以下の
    剰余値を求める計算手段としてコンピュータを機能させ
    るためのプログラムを記録したコンピュータ読み取り可
    能な記録媒体。
  4. 【請求項4】 正の整数C,pを入力とし、pを2進表
    現したときのビット長をLとして、n≧Lなる整数nを
    用いてR=2n として定義されたRを用いて、D=C・
    -1 mod pを計算するモンゴメリ・リダクション
    装置を制御するプログラムであって、 wをワード長とし、Rを2w で割った値をR’とすると
    きに、C=αR’+βを満たす整数ペア(α,β)を算
    出する(α,β)抽出手段と、 R’-1=ε(mod p)を満たす整数εと前記βとを
    乗じた結果を求める乗算手段と、 前記αと前記乗算手段の結果出力とを加算する加算手段
    と、 前記加算手段の出力Tと前記wとを入力として、T・2
    -w(mod p)を求める計算手段としてコンピュータ
    を機能させるためのプログラムを記録したコンピュータ
    読み取り可能な記録媒体。
  5. 【請求項5】 正の整数C,pを入力とし、pを2進表
    現したときのビット長をLとして、n≧Lなる整数nを
    用いてR=2n として定義されたRを用いて、D=C・
    -1 mod pを計算するモンゴメリ・リダクション
    装置であって、 前記Cに基づき、その下位複数ワードからなる整数βと
    残りの上位ワードからなる整数αとを算出する(α,
    β)抽出部と、 前記βとパラメータεとを乗じた値をさらに前記αと加
    算した加算結果が、前記Dと合同な値D’となる条件を
    満たす前記εを用い、前記加算結果を求める加算部とを
    備えたことを特徴とするモンゴメリ・リダクション装
    置。
JP17878798A 1998-06-25 1998-06-25 モンゴメリ・リダクション装置及び記録媒体 Expired - Fee Related JP3542278B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP17878798A JP3542278B2 (ja) 1998-06-25 1998-06-25 モンゴメリ・リダクション装置及び記録媒体
US09/262,742 US6546104B1 (en) 1998-06-25 1999-03-05 Montgomery reduction apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17878798A JP3542278B2 (ja) 1998-06-25 1998-06-25 モンゴメリ・リダクション装置及び記録媒体

Publications (2)

Publication Number Publication Date
JP2000010479A true JP2000010479A (ja) 2000-01-14
JP3542278B2 JP3542278B2 (ja) 2004-07-14

Family

ID=16054641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17878798A Expired - Fee Related JP3542278B2 (ja) 1998-06-25 1998-06-25 モンゴメリ・リダクション装置及び記録媒体

Country Status (2)

Country Link
US (1) US6546104B1 (ja)
JP (1) JP3542278B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149396A (ja) * 2000-11-07 2002-05-24 Hitachi Ltd データプロセッサ、半導体集積回路及びcpu
US6978016B2 (en) * 2000-12-19 2005-12-20 International Business Machines Corporation Circuits for calculating modular multiplicative inverse
JP2002229445A (ja) * 2001-01-30 2002-08-14 Mitsubishi Electric Corp べき乗剰余演算器
JP3820909B2 (ja) * 2001-04-24 2006-09-13 ソニー株式会社 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
IL143951A0 (en) * 2001-06-21 2003-09-17 Discretix Technologies Ltd A method and apparatus for carrying out efficiently arithmetic computations in hardware
US20030065697A1 (en) * 2001-08-29 2003-04-03 Shimman Patel Fast, iterative system and method for evaluating a modulo operation without using division
US7187770B1 (en) * 2002-07-16 2007-03-06 Cisco Technology, Inc. Method and apparatus for accelerating preliminary operations for cryptographic processing
JP2004226674A (ja) * 2003-01-23 2004-08-12 Renesas Technology Corp 情報処理方法
FR2880149B1 (fr) * 2004-12-23 2007-03-30 Oberthur Card Syst Sa Procede de traitement de donnees et dispositif associe
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
EP2350811B1 (en) * 2008-10-30 2016-12-14 Certicom Corp. Method and apparatus for modulus reduction
US8995651B1 (en) * 2010-06-11 2015-03-31 Marvell International Ltd. Multiple algorithm cryptography system
RU2019121710A (ru) * 2016-12-12 2021-01-12 Конинклейке Филипс Н.В. Электронное вычислительное устройство, выполненное с возможностью вычисления произведения целых чисел

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
US5159632A (en) 1991-09-17 1992-10-27 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
FR2726668B1 (fr) * 1994-11-08 1997-01-10 Sgs Thomson Microelectronics Procede de mise en oeuvre de reduction modulaire selon la methode de montgomery
US5724279A (en) * 1995-08-25 1998-03-03 Microsoft Corporation Computer-implemented method and computer for performing modular reduction
US5987131A (en) * 1997-08-18 1999-11-16 Picturetel Corporation Cryptographic key exchange using pre-computation

Also Published As

Publication number Publication date
US6546104B1 (en) 2003-04-08
JP3542278B2 (ja) 2004-07-14

Similar Documents

Publication Publication Date Title
US6920473B2 (en) Method and apparatus for modular multiplying and calculating unit for modular multiplying
US20110161390A1 (en) Modular multiplication processing apparatus
JP3542278B2 (ja) モンゴメリ・リダクション装置及び記録媒体
JP5182364B2 (ja) サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
JP3785044B2 (ja) べき乗剰余計算装置、べき乗剰余計算方法及び記録媒体
JP4180024B2 (ja) 乗算剰余演算器及び情報処理装置
US7050579B1 (en) Cryptographic methods and apparatus using word-wise montgomery multiplication
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
US20020174155A1 (en) Method for calculating arithmetic inverse over finite fields for use in cryptography
US7062044B1 (en) Method of elliptic curve cryptographic key agreement using coefficient splitting
JP2001051832A (ja) 乗算剰余演算方法および乗算剰余回路
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
JP2937982B2 (ja) モンゴメリ除算装置及びモンゴメリ逆元計算装置並びにモンゴメリ除算方法及びモンゴメリ逆元計算方法
KR100974624B1 (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
JP2004205870A (ja) 超楕円曲線スカラー倍演算方法及び装置
JP3626315B2 (ja) 剰余算装置、情報処理装置及び剰余算方法
KR20100062565A (ko) 모듈러스의 음의 역원을 구하는 방법
JP3966714B2 (ja) 暗号処理方法、そのプログラム及びその記録媒体
JP3024549B2 (ja) 循環演算にもとづく暗号文の復号化方法および装置
JP4348463B2 (ja) ガロア体GF(p)上の演算を実現する装置
JP3795315B2 (ja) 暗号化・復号化回路
JP2022117083A (ja) 演算システム、演算方法およびプログラム
JP2005316038A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム
JP2003316262A (ja) 乗算剰余演算方法及び演算装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040330

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees