JP4182226B2 - 剰余系の計算方法及び装置並びにプログラム - Google Patents
剰余系の計算方法及び装置並びにプログラム Download PDFInfo
- Publication number
- JP4182226B2 JP4182226B2 JP2005242956A JP2005242956A JP4182226B2 JP 4182226 B2 JP4182226 B2 JP 4182226B2 JP 2005242956 A JP2005242956 A JP 2005242956A JP 2005242956 A JP2005242956 A JP 2005242956A JP 4182226 B2 JP4182226 B2 JP 4182226B2
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- multiplication
- digits
- variable
- mod
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/722—Modular multiplication
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)
Description
そして、ほとんどの場合、その剰余系指数演算は非常に大きな整数の乗算剰余算(剰余系乗算)を繰返し計算することにより実現されており、その乗算剰余算の繰返し計算には膨大な時間が必要であった。
P.L. Montgomery, "Modular Multiplication without Trial Division," Mathematics of Computation, vol.44,no.170,pp.519-521, Apr.1985. S.E Eldridge and C.D. Walter, "Hardware Implementation of Montgomery's Modular Multiplication Algorithm," IEEE Transactions on Computers, vol.42,no.6,pp.693-699,Jun.1993. N. Takagi, "A Radix-4 Modular Multiplication Hardware Algorithm for Modular Exponentiation," IEEE Transactions on Computers, vol.41, no.8, pp.949-956, Aug. 1992.
本発明は、こうした問題に鑑みなされたもので、剰余系における乗算剰余算の繰り返し計算をサイクル時間を増すことなく高速化するための計算方法を提供することを目的とする。
前述したように、RSA等の公開鍵暗号システムでは、暗号化と復号化のために非常に大きな整数の乗算剰余算(剰余系乗算)を繰返し計算することにより実現されている。
例えば、法M=9753とする乗算剰余算、 5432×4321 mod 9753を考える。
5432×4321 mod 9753
=23471672 mod 9753=5954
となり、8桁を4桁で割る割り算を行う必要がある。
5432×4321 mod 9753
=(5432×4300 mod 9753
+5432×21 mod 9753) mod 9753 となり、上位部分と下位部分とを並列計算することができるようになる。
このように、乗数4321を上位2桁と下位2桁に分割すると、下位部分は、6桁を4桁で割る割り算となり、確かに計算が簡単になる。
そこで、本発明では、剰余系を新たに定義する領域に変換し、乗数を上位部分と下位部分とに分割した場合に、剰余演算の部分で上位部分、下位部分ともに計算の桁数を減らして並列計算ができるようにし、ひいては計算の高速化を可能としたのである。
図1に示すように、剰余系における変数U,Vを新たに定義する領域では、各々X=U・R mod M、Y=V・R mod Mに変換する。また、剰余系における乗算剰余算U・V mod MをX・Y・R-1 mod M=U・V・R mod Mに置き換える。
このようにして、パラメータmを導入することにより、n桁の乗数Yを上位(n−m)桁のYHと下位m桁のYLとの二つの部分に分割し、これらを並列に処理することが可能となる。ここで、0<m<n、m:整数とする。
部分YLとに分けて、それらを並列に計算し、その計算結果を逆変換して元の領域に戻す
ことにより最終的に乗算剰余算の結果を得るという剰余系の計算方法がある。
X・Y・R -1 mod M・・・式1
に置換し、剰余系における計算と同じ計算を行い、その計算結果Zを演算
Z・R -1 mod M・・・式2
にて逆変換して剰余系における計算結果を得ることを特徴とする。
したがって、剰余系の演算を新たに定義した領域において計算しようとすると、上記の変換や逆変換が必要となるものの、乗算剰余算において乗数Yを上位部分YHと下位部分YLとに分けて計算できるので、例えば公開鍵暗号等の計算のように、剰余系において乗算剰余算を繰返し行わなければならない計算を高速化することができる。
R=r m
とし、変数Yを
Y=Y H ・r m +Y L ・・・式3
によって、上位(n−m)桁のY H と下位m桁のY L とに分割し、(mは、m<nを満たす整数)式1を、
(X・Y H mod M+X・Y L ・R -1 mod M)mod M・・・式4
に変換して、式4の
X・Y H mod M・・・式4a
と、
X・Y L ・R -1 mod M・・・式4b
と、を並列処理で実行するようにするとよい。
Mで
X・YH mod M
を計算して出力する第1乗算剰余算器(20)と、変数Yを分割した下位m桁のYL、変
数X及び法Mで
X・YL・r-m mod M
を計算して出力する第2乗算剰余算器(30)と、第1乗算剰余算器(20)の出力及び第2乗算剰余算器(30)の出力を加算し、その加算結果を出力する加算器(40)と、を備えたことを特徴とする乗算剰余演算装置である。
(新たに定義した領域における計算方法の説明)
Rをrmとする。ただし、0<m<nで、rmは整数とする。このとき、R=rmはMと互いに素である。
法をM(rn-1<M<rn、かつ、Mとrとが互いに素)とし、n桁の被乗算X、n桁の乗算Y(0≦X,Y<M)を入力とし、Z=X・Y・r-m mod Mを出力する演算であり、具体的には以下の手順で実行される。
ステップ2としてAとBHに従来のインターリーブ法を適用して、(n−m)桁分の乗算剰余算を行い、その結果としてSを得る。また、AとBLに従来のモンゴメリ乗算における計算方法を適用して、m桁分の計算を行い、Tを得る。
そして、並列処理が終了して、SとTの両者が得られると、ステップ3へ移行する。
このようにして最終的に得られたZが新たに定義した領域での計算結果となる。
以上の手順を式に表すと下記のようになる。
0≦X,Y<M
出力:Z=X・Y・r-m mod M
演算手順:
ステップ1:A:=X;M:=M;S:=0;T:=0;
BH:=YH;BL:=YL (但し、Y=YHrm+YL)
ステップ2:{S:=Interleaved_modmul(A,BH,M);
T:=Montgomery_modmul(A,BL,M);}
ステップ3:Z:=S+T mod M;
なお、ステップ2の中で、Interleaved_modmul(A,BH,M)は、前述のインターリーブ法による乗算剰余算を示しており、Aは被乗数、BHは乗数、Mは法を示している。
また、ステップ2における{ }内の計算は並列に行う。
ここでは、基数を2とし、基数2の符号付きディジット表現により、すべての加減算を桁上げの伝搬なしに行うものとする。
ステップ1として、S,Tを0に初期化し、被乗数XをAに代入する。さらに、乗数Yをパラメータm(=n/2)により、上位のYHと下位のYLとに分割し、各々をBHとBLとに代入する(図2のS110参照)。
(H1)Sを左(上位)へ1桁シフトする。
桁、(n−1)番目の桁をq1、つまり、q1=[sn+1snsn-1]とする。
(H3)q1が0よりも大きければSから法Mを減じて、それを新たなSとし、q1が
0よりも小さければSに法Mを加算したものを新たなSとする。
加算したものを新たなSとする。
(H5)新たなSの(n+1)番目の桁、n番目の桁、(n−1)番目の桁をq2、
つまり、q2=[sn+1snsn-1]とする。
0よりも小さければSに法Mを加算したものを新たなSとする。
(H7)BHを左へ1ビットシフトする。
(L1)被乗数Aと乗数BLの最下位ビットb0との論理積をとり、その結果にTを加
算したものを新たなTとする。
(L3)q3が0でなければ、Tに法Mを加算して、それを右へ1桁シフトしたもの を新たなTとする。一方、q3が0であればTを右へ1桁シフトし、それを 新たなTとする。
以上のように、並列処理で上位部分の乗算剰余算結果Sと下位部分の乗算剰余算結果Tとを得る。
そして、新たなSの(n+1)番目の桁、n番目の桁、(n−1)番目の桁をq2、つまり、q2=[sn+1snsn-1]とする。
ステップ4として、Sを周知の演算方法により、基数2の符号付きディジット表現から通常の2進数表現に変換し、その結果を出力Zとする(図2では省略)。
このようにして最終的に得られた出力Zが乗数Yと被乗数Xとの法Mに基づく新たに定義した領域における乗算剰余算結果となる。
入力:M:2n-1<M<2n、gcd(M、2)=1
X、Y:0≦X,Y<M
出力:Z=X・Y・2-n/2 mod M(0≦Z<M)
演算手順:
ステップ1:A:=X;BH:=YH;BL:=YL;S:=0;T:=0;M:=M;
ステップ2:for i:=1 to n/2
do H and L in parallel
H:do
S:=2・S;
q1:=[sn+1snsn-1]
if q1>0 then S:=S−M
elseif q1<0 then S:=S+M;
S:=S+bn-1・A;
q2:=[sn+1snsn-1];
if q2>0 then S:=S−M
elseif q2<0 then S:=S+M;
BH:=BH<<1;
enddo
L:do
T:=T+b0・Ai;
q3:=t0
if q3 ≠ 0 then T:=(T+M)>>1
else T:=T>>1;
BL:=BL>>1;
enddo
endfor
ステップ3:S:=S+T;
q2:=[sn+1snsn-1];
if q2>0 then S:=S−M
elseif q2<0 then S:=S+M;
ステップ4:Z:=SD2_to_Binary(S);
ステップ5:if Z<0 then Z:=Z+M;
以上に説明した、基数を2とした場合の新たに定義した領域における計算では、nビットの乗数が同じビット数(n/2)の上位部分と下位部分とに分割され、上位部分はインターリーブ法で乗算剰余算され、下位部分はモンゴメリ乗算における計算方法で計算されている。さらに、その2つの計算は並列処理で、ほぼ同時に実行されている。
すなわち、通常、処理するビット数が同じであれば、インターリーブ法よりもモンゴメリ乗算における計算の方が高速であるので、インターリーブ法によりn/2ビットの乗算剰余算(つまり、上位部分の乗算剰余算)が終了したときには、モンゴメリ乗算における計算方法によるn/2ビットの計算(つまり、下位部分の計算)は終了している。
例えば、インターリーブ法とモンゴメリ法との演算速度の違いを考慮すれば、全体の計算時間をより短縮できる分割方法を決定することができる。つまり、インターリーブ法とモンゴメリ乗算における計算方法との演算速度の比がp:qのときには、下位部分のビット数mをおよそ、n・q/(p+q)とすれば、上位部分と下位部分の計算時間がほぼ同じになり、全体の計算時間を短縮することができる。
(乗算剰余演算装置の説明)
次に、上記説明した新たに定義した領域における計算を実行するための乗算剰余演算装置1について図3に従って説明する。
図3に示すように、乗算剰余演算装置1は、主に分割回路10、乗算剰余算回路20、モンゴメリ乗算回路30、加算回路40、剰余算回路50とを備えている。
S=X・YH mod M・・・式10
を計算して、Sを加算回路40に出力するための公知の回路である。
T=X・YL・r-m mod M・・・式20
を実行して、Tを加算回路40に出力するための公知の回路である。
剰余算回路50は、加算回路40の出力S+T及び法Mを入力として剰余算を行い、Zを出力するための回路、すなわち、
Z=S+T mod M・・・式30
によりZを出力するための公知の回路である。
乗算剰余演算装置1には、r進、n桁の変数Y、変数X及び法Mが入力される。
入力された変数Yは、分割回路10に入力され、変数Xは、乗算剰余算回路20、モンゴメリ乗算回路30に入力され、法Mは、乗算剰余算回路20、モンゴメリ乗算回路30及び剰余算回路50に入力される。
分割された上位部分YHは、乗算剰余算回路20に入力され、変数Xと法Mとで上記式10に従って乗算剰余算が実行され、その結果Sが出力される。
例えば、本実施形態では、乗数を分割した上位部分の計算(式4aによるの計算)にインターリーブ法を用い、下位部分の計算(式4bによる計算)にモンゴメリ乗算における計算を用いたが、各計算はそれらに限定されるものではなく、数学的に並列処理できる計算方法であればどのような計算方法であってもよい。
Claims (2)
- r進の整数Mを法とする剰余系において(ただし、Mとrとは互いに素)、前記法M、r進でn桁の変数Y及び変数Xが入力されたときに前記変数Yを上位(n−m)桁のY H
及び下位m桁のY L に分割する分割手段と、
前記変数Yを分割した上位(n−m)桁のY H 、前記変数X及び前記法Mで
X・Y H mod M
を計算して出力する第1乗算剰余算器と、
前記変数Yを分割した下位m桁のY L 、前記変数X及び前記法Mで
X・Y L ・r -m mod M
を計算して出力する第2乗算剰余算器と、
前記第1乗算剰余算器の出力及び前記第2乗算剰余算器の出力を加算し、その加算結果を出力する加算器と、
を備えたことを特徴とする乗算剰余演算装置。 - 請求項1に記載の乗算剰余演算装置において、
前記加算器の加算結果を入力し、前記法Mによる剰余算を行って出力する剰余算器を備えたことを特徴とする乗算剰余演算装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005242956A JP4182226B2 (ja) | 2005-08-24 | 2005-08-24 | 剰余系の計算方法及び装置並びにプログラム |
| US11/365,665 US20070050442A1 (en) | 2005-08-24 | 2006-03-02 | Method, apparatus, and program for modular arithmetic |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005242956A JP4182226B2 (ja) | 2005-08-24 | 2005-08-24 | 剰余系の計算方法及び装置並びにプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2007057811A JP2007057811A (ja) | 2007-03-08 |
| JP4182226B2 true JP4182226B2 (ja) | 2008-11-19 |
Family
ID=37805634
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005242956A Expired - Lifetime JP4182226B2 (ja) | 2005-08-24 | 2005-08-24 | 剰余系の計算方法及び装置並びにプログラム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20070050442A1 (ja) |
| JP (1) | JP4182226B2 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7991162B2 (en) * | 2007-09-14 | 2011-08-02 | University Of Ottawa | Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields |
| JP6193051B2 (ja) * | 2013-08-15 | 2017-09-06 | Necプラットフォームズ株式会社 | アドレス生成回路及びアドレス生成方法 |
| US10068070B2 (en) * | 2015-05-05 | 2018-09-04 | Nxp B.V. | White-box elliptic curve point multiplication |
| KR20220078155A (ko) * | 2020-12-03 | 2022-06-10 | 삼성전자주식회사 | 암호 프로세서, 암호 프로세서의 동작 방법 및 이를 포함한 전자 장치 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69229766T2 (de) * | 1991-09-05 | 2000-03-23 | Canon K.K., Tokio/Tokyo | Verfahren und Gerät zum Verschlüsseln und Entschlüsseln von Kommunikationsdaten |
| GB2352309B (en) * | 1999-07-21 | 2004-02-11 | Advanced Risc Mach Ltd | A system and method for performing modular multiplication |
| KR100458031B1 (ko) * | 2003-03-14 | 2004-11-26 | 삼성전자주식회사 | 몽고메리 유형의 모듈라 곱셈 장치 및 방법 |
| US20040252829A1 (en) * | 2003-04-25 | 2004-12-16 | Hee-Kwan Son | Montgomery modular multiplier and method thereof using carry save addition |
| JP2004326112A (ja) * | 2003-04-25 | 2004-11-18 | Samsung Electronics Co Ltd | マルチプルモジュラス選択器、累算器、モンゴメリー掛け算器、マルチプルモジュラス発生方法、部分掛け発生方法、累算方法、掛け算方法、モジュラス選択器、およびブースレコーダ |
| KR100508092B1 (ko) * | 2003-05-09 | 2005-08-17 | 삼성전자주식회사 | 저전력 모듈로 곱셈을 수행하는 연산장치 |
-
2005
- 2005-08-24 JP JP2005242956A patent/JP4182226B2/ja not_active Expired - Lifetime
-
2006
- 2006-03-02 US US11/365,665 patent/US20070050442A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| JP2007057811A (ja) | 2007-03-08 |
| US20070050442A1 (en) | 2007-03-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Kwon et al. | Two implementation methods of a 1024-bit RSA cryptoprocessor based on modified Montgomery algorithm | |
| JP3784156B2 (ja) | モジュラ掛け算方法 | |
| Erdem et al. | A general digit-serial architecture for Montgomery modular multiplication | |
| US8504602B2 (en) | Modular multiplication processing apparatus | |
| KR101326078B1 (ko) | 모듈러 곱셈 방법, 모듈러 곱셈기 및 모듈러 곱셈기를구비하는 암호 연산 시스템 | |
| Kaihara et al. | A hardware algorithm for modular multiplication/division | |
| JPH11305995A (ja) | 計算装置のデ―タ処理高速化方法および装置。 | |
| Zhang et al. | An efficient CSA architecture for Montgomery modular multiplication | |
| JP4180024B2 (ja) | 乗算剰余演算器及び情報処理装置 | |
| Shieh et al. | A new algorithm for high-speed modular multiplication design | |
| CN113467752B (zh) | 用于隐私计算的除法运算装置、数据处理系统及方法 | |
| Tian et al. | Efficient software implementation of the SIKE protocol using a new data representation | |
| JP2004258141A (ja) | モンゴメリ乗算剰余の多倍長演算のための演算装置 | |
| JP2004227344A (ja) | 乗算器及び暗号回路 | |
| JP4170267B2 (ja) | 乗算剰余演算器及び情報処理装置 | |
| JP4182226B2 (ja) | 剰余系の計算方法及び装置並びにプログラム | |
| EP1600852B1 (en) | Method and apparatus for calculating a modular inverse | |
| JP5175983B2 (ja) | 演算装置 | |
| Alkar et al. | A hardware version of the RSA using the Montgomery's algorithm with systolic arrays | |
| JP3626315B2 (ja) | 剰余算装置、情報処理装置及び剰余算方法 | |
| US20260058793A1 (en) | Montgomery multiplier architecture | |
| Parihar et al. | Montgomery Modular Multiplier in RSA Cryptosystem | |
| Li et al. | HTMMM: Novel Hybrid Truncated Montgomery Modular Multiplication Algorithm and Hardware Architecture | |
| CN120744994A (zh) | 使用优化后的截断乘法电路执行截断乘法的方法及装置 | |
| Lee et al. | A Scalable Structure for a Multiplier and an Inversion Unit in GF (2m) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071031 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20071101 |
|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20071116 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071218 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080213 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080415 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080609 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080610 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080610 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080710 |
|
| 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: 20080805 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4182226 Country of ref document: JP |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| EXPY | Cancellation because of completion of term |