JPH09204296A - べき乗剰余演算方法及び装置 - Google Patents
べき乗剰余演算方法及び装置Info
- Publication number
- JPH09204296A JPH09204296A JP8011938A JP1193896A JPH09204296A JP H09204296 A JPH09204296 A JP H09204296A JP 8011938 A JP8011938 A JP 8011938A JP 1193896 A JP1193896 A JP 1193896A JP H09204296 A JPH09204296 A JP H09204296A
- Authority
- JP
- Japan
- Prior art keywords
- modn
- calculation
- modular exponentiation
- exponent
- digit
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/723—Modular exponentiation
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
べき乗剰余演算を高速に行なうことができるべき乗剰余
演算方法及び装置を提供すること。 【解決手段】 整数M,N及びべき指数Eが与えられた
ときに、C=ME modNで表されるべき乗剰余演算を
行なう方法であって、まず、整数M,N,及び所定の定
数b,n,mを用いて、Mj ・bi modNの値を、j
=1,2,…,m−1かつi=0,1,2,…,n−1
について計算し、この計算によって得られた計算値の一
部又は全部をテーブル要素とするテーブルを作成する工
程と、べき指数Eをm進数表現するとともに、Cをb進
数表現し、このときのべき指数Eの各桁ej を最上位桁
から最下位桁まで走査しながら、Cの各桁Ci の値とテ
ーブル要素との積和をCの新たな計算結果として最下位
桁まで計算して最終結果を得る工程とを具備する。
Description
及び装置に関し、特に、情報通信、情報処理の分野にお
いて、べき乗剰余演算を高速に行なうための演算方法及
び装置に関する。
セキュリティを確保するために何らかの暗号化を施すこ
とが必要になる場合がある。以下で定義される、べき乗
剰余演算は公開鍵を用いた暗号化手法としてよく用いら
れている。
は暗号化した結果であり、M、E、Nには整数が用いら
れる。
のビット数は十分大きくする必要があり、例えば、商用
暗号でも512ビットまたは1024ビット、あるいは
それ以上の長さのNが使用される。この結果、べき乗剰
余演算の演算量は非常に大きくなるので、演算を高速に
行なう方法が必要となっている。
乗剰余演算を剰余乗算の繰り返しに展開する。種々の展
開方法のうち優れた方式であると考えられているものに
m進計算法と呼ばれる展開方法がある(Knuth 著、「準
数値算法/算術演算」、「サイエンス社出版」、p29
1)。
べき乗剰余演算の処理の流れを示すフローチャートであ
る。ここでは、べき指数Eは次のようにm進数展開され
るものとする。
る。
した後、M、M2 modN、M3 modN、…、Mm-1
modNの値を計算して記憶部A1 、A2 、A3 、…、
Am- 1 に記憶するとともに(ステップS52)、パラメ
ータjをl−1に、変数Cを1に初期化しておく(ステ
ップS53)。
桁に向けて順次走査して、各桁ejの値に応じて、
(1) M、M2 modN、M3 modN、…、Mm-1
modNの値を、途中結果CにmodNをとりながら掛
け(ステップS55)、(2) 途中結果CをmodN
をとりながらm乗する(ステップS57)、という演算
を繰り返す。
(2)の処理は行われない。なお、(2)で、Cのm乗
を求める場合は適当な剰余乗算に展開して行なう。例え
ば、m=2k に選ぶと、(2)はk回の剰余乗算で計算
できる。
は、基本的に乗算と除算とからなっており、仮に乗算と
除算との処理量が同程度であるとした場合、乗算2回程
度の処理量が(1)の乗算を行なうために必要となる。
ループに着目すると、M及びNは定数であってループ内
では変化しない。したがって、 M、M2 modN、M
3 modN、…、Mm-1 modNの値も定数となる。こ
れにより、上記(1)の剰余乗算は変数Cに定数を掛け
て剰余をとる演算となって、定数倍剰余演算と呼ばれる
特殊な形をしている。
て、従来のように通常の乗算と除算とを用いて結果を得
るのに比べて処理時間を短縮するための方法が論じられ
ていた。
の場合は最小のメモリーで実現することができ、「2進
法」と呼ばれているが、この2進法に対して上記した定
数倍剰余演算を乗算1回程度の演算で実現する方法が、
文献(Shin-ichi Kawamura,Kyoko Takabayashi, and At
sushi Shimbo:"A fast modulara exponentiation algor
ithm", IEICE Trans.,Vol.E74,No.8,pp.2136-2143,Augu
st 1991 )に開示されている。
(1)、(2)で行われる剰余乗算は、基本的に乗算と
除算とからなっており、仮に乗算と除算との処理量が同
程度であるとした場合、乗算2回程度の処理量が(1)
の乗算を行なうために必要となる。
余演算を乗算1回程度で行なう方法を開示しているが、
m=2以外の場合の定数倍剰余演算については課題とし
て述べているだけで、具体的な手法については開示して
いない。
たものであり、その目的とするところは、m(>2)進
のべき乗アルゴリズムに対して、定数倍剰余演算の考え
方を適用して、べき乗剰余演算を高速に行なうことがで
きるべき乗剰余演算方法及び装置を提供することにあ
る。
めに、第1の発明に係るべき乗剰余演算方法は、整数
M,N及びべき指数Eが与えられたときに、C=ME m
odNで表されるべき乗剰余演算を行なう方法であっ
て、まず、整数M,N,及び所定の定数b,n,mを用
いて、Mj ・bi modNの値を、j=1,2,…,m
−1かつi=0,1,2,…,n−1について計算し、
この計算によって得られた計算値の一部又は全部をテー
ブル要素とするテーブルを作成する工程と、前記べき指
数Eをm進数表現するとともに、演算結果Cをb進数表
現し、このときの前記べき指数Eの各桁ej を最上位桁
から最下位桁まで走査しながら、演算結果Cの各桁Ci
の値と前記テーブル要素との積和
結果を得る工程とを具備する。また、第2の発明に係る
べき乗剰余演算装置は、第1の発明におけるべき乗剰余
演算を用いてべき乗剰余演算を行なう。
実施形態を詳細に説明する。図1は本発明が適用される
べき乗剰余演算装置の構成を示す図であり、図2は図1
に示すべき乗剰余演算装置によるべき乗剰余演算処理の
概略を説明するためのフローチャートである。図1の制
御部100は以下に述べる各部の動作を制御するもので
ある。
して平文Mと、暗号化鍵N、Eが入力されてメモリ
(M)2a、メモリ(N)2b、メモリ(E)2cに各
々記憶される(ステップS1)。テーブル作成部3は入
力されたM、Nを用いてn行(m−1)列の参照テーブ
ル4を作成する(ステップS2)。
から下へ向かって、M、M・bmodN、M・b2 mo
dN、…、M・bn-1 modNである。ここで、bは定
数倍剰余演算の処理単位(処理ブロック)であり、これ
については後述する。bは通常、2のべきにとると計算
機との整合が良い。Nを1ビットとするとき1=n・l
og2 (b)としている。
M2 ・bmodN、…、M2 ・bn-1 modNであり、
第1列とはM倍の関係(ただしmodN)にある。さら
に、第3列は第2列とM倍の関係にあり、最後の第(n
−1)列は第1列とはMm-2倍の関係にある。
ko Takabayashi, and Atsushi Shimbo:"A fast modular
a exponentiation algorithm", IEICE Trans.,Vol.E74,
No.8,pp.2136-2143,August 1991 )に開示されているテ
ーブル参照方式は上記した参照テーブル4の第1列のみ
を用いているが、本実施形態では第1列のみのテーブル
を横方向に展開することによって一般化し、このテーブ
ルを参照するようにすることによって、高次のべき乗ア
ルゴリズムを高速化することを意図している。
を示すフローチャートである。ここでは、まず参照テー
ブル4の第1列を作成し、このデータを第2列目以降の
テーブル要素(エントリ)の作成に利用することによっ
てテーブル作成を効率化している。第1列は与えられた
値をM倍してmodNを取った値を多倍長乗算1回程度
の時間で計算するのに使用できるので、従来のように乗
算と除算とを用いて同じ計算を行なうのに比較して計算
の効率が良い。
1列を作成する。次に、この第1列のエントリを用いて
第2列第1行の要素である、M2 modNを演算する
(ステップS22)。次に求めたM2 modNとNとか
ら第2列を作成する(ステップS23)。次に、第1列
のエントリとM2 modNとを用いて、第3列第1行の
要素である、M3 modNを演算し(ステップS2
4)、このM3 modNとNとから第3列を作成する
(ステップS25)。そして、最後にMm-1 modNと
Nから第m−1列を作成する(ステップS26)。
列の要素とを用いて現在着目している列の第1行要素を
演算し、その要素を出発点として同じ列の要素を展開す
ることを繰り返しながらテーブル要素を作成することに
よって参照テーブル4を完成する。
成したら次はパラメータjをl−1に、変数Cを1に初
期化した後(ステップS3)、ステップS4に移行す
る。ここで、べき指数Eは前記したようにm進数に展開
されており、ステップS4ではMSB側から順次、各桁
ej (1〜m−1に対応)が0か否かを判定する。ここ
で0の場合は次のステップS5をスキップするが、それ
以外の場合はステップS5を実行する。ステップS5で
はC×AejmodN計算部5が参照テーブル4を用いて
C×AejmodNを計算する。これは定数倍剰余演算と
呼ばれている。また、Cm modN計算部7はCm mo
dNを計算する(ステップS7)。C×AejmodNと
Cm modNの演算は概ね交互に行なわれる形で処理を
進められ、その時点で得られた演算結果はメモリ(C)
6に記憶される。このようにして、べき乗剰余演算処理
が効率よく行われる。
演算の手続きを図4を参照して説明する。ここで変数C
は以下のようにb進数表現されており、(n−1)の桁
である。
値と参照テーブル4の第ej 列要素であるMejbi mo
dNとの積
る。
ら順に乗算器Qo 、Q1 、Q2 、Qn-1 で第ej 列要素
の第1行目、第2行目、…、第n行目と順に掛け合わさ
れ、その結果が加算部20で総和されてC′作成部21
でC′が作成される。このC′と最終結果CはmodN
で等価な値であるが、Nの倍数の誤差を含んでいる。そ
こで、補正部22でC′からNの倍数を引いて値の補正
を行い、C収得部23で最終結果C(C<N)を得る。
Cの各桁の値と、テーブルエントリとの積を演算するの
に要する時間であり、それはほぼ2つの多倍長整数を掛
け合わせるのに要する時間に等しい。
その後で除算を行なうという手続きを用いていたので、
本実施形態の2倍程度の時間を要していた。図6はmo
dNが512ビット、2進数展開した変数Cにおいてb
=216としたときに、従来の演算方法とテーブルを使用
した本発明の演算方法とについて、相対的処理時間を比
較したものである。
る。このようにして定数倍剰余演算が終わると、次のス
テップ6においてパラメータjが0か否かの判定を行な
う。ここで0でなければ、ステップS7で変数Cをm乗
してmodNをとる処理を行なう。0ならばべき指数の
全桁を処理し終えているので最終結果Cを出力して(ス
テップS9)、処理を終了する。
ルゴリズムに対するテーブル参照について述べたが、類
似の高次べき乗アルゴリズムとして知られているm−a
rray法(Knuthの方法)にも適用できることは
勿論である。
アルゴリズムに対して、べき乗剰余演算を高速に行なう
ことができるようになる。
を示す図である。
余演算処理の概略を示すフローチャートである。
である。
ある。
チャートである。
演算方法とについて、相対的処理時間を比較した結果を
示す図である。
(N)、2c…メモリ(E)、3…テーブル作成部、4
…参照テーブル、5…C×AejmodN計算部、6…メ
モリ(C)、7…Cm modN計算部、8…出力部、1
00…制御部。
Claims (2)
- 【請求項1】 整数M,N及びべき指数Eが与えられた
ときに、C=ME modNで表されるべき乗剰余演算を
行なう方法であって、 まず、整数M,N,及び所定の定数b,n,mを用い
て、Mj ・bi modNの値を、j=1,2,…,m−
1かつi=0,1,2,…,n−1について計算し、こ
の計算によって得られた計算値の一部又は全部をテーブ
ル要素とするテーブルを作成する工程と、 前記べき指数Eをm進数表現するとともに、演算結果C
をb進数表現し、このときのべき指数Eの各桁ej を最
上位桁から最下位桁まで走査しながら、演算結果Cの各
桁Ci の値と前記テーブル要素との積和 【数1】 をCの新たな計算結果として最下位桁まで計算して最終
結果を得る工程と、 を具備することを特徴とするべき乗剰余演算方法。 - 【請求項2】 請求項1に記載のべき乗剰余演算方法に
よってべき乗剰余演算を行なうことを特徴とするべき乗
剰余演算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01193896A JP3504050B2 (ja) | 1996-01-26 | 1996-01-26 | べき乗剰余演算方法及び装置 |
US08/785,845 US5870478A (en) | 1996-01-26 | 1997-01-24 | Modular exponentiation calculation apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01193896A JP3504050B2 (ja) | 1996-01-26 | 1996-01-26 | べき乗剰余演算方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09204296A true JPH09204296A (ja) | 1997-08-05 |
JP3504050B2 JP3504050B2 (ja) | 2004-03-08 |
Family
ID=11791602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01193896A Expired - Fee Related JP3504050B2 (ja) | 1996-01-26 | 1996-01-26 | べき乗剰余演算方法及び装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5870478A (ja) |
JP (1) | JP3504050B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999627A (en) * | 1995-01-07 | 1999-12-07 | Samsung Electronics Co., Ltd. | Method for exponentiation in a public-key cryptosystem |
US6064740A (en) * | 1997-11-12 | 2000-05-16 | Curiger; Andreas | Method and apparatus for masking modulo exponentiation calculations in an integrated circuit |
US7587044B2 (en) * | 1998-01-02 | 2009-09-08 | Cryptography Research, Inc. | Differential power analysis method and apparatus |
WO1999035782A1 (en) * | 1998-01-02 | 1999-07-15 | Cryptography Research, Inc. | Leak-resistant cryptographic method and apparatus |
EP1090480B1 (en) * | 1998-06-03 | 2019-01-09 | Cryptography Research, Inc. | Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems |
AU5458199A (en) * | 1998-07-02 | 2000-01-24 | Cryptography Research, Inc. | Leak-resistant cryptographic indexed key update |
US6182104B1 (en) * | 1998-07-22 | 2001-01-30 | Motorola, Inc. | Circuit and method of modulo multiplication |
US20030065696A1 (en) * | 2001-09-28 | 2003-04-03 | Ruehle Michael D. | Method and apparatus for performing modular exponentiation |
US6922717B2 (en) | 2001-09-28 | 2005-07-26 | Intel Corporation | Method and apparatus for performing modular multiplication |
FR2862454A1 (fr) * | 2003-11-18 | 2005-05-20 | Atmel Corp | Methode de reduction modulaire aleatoire et equipement associe |
FR2885711B1 (fr) * | 2005-05-12 | 2007-07-06 | Atmel Corp | Procede et materiel modulaire et aleatoire pour la reduction polynomiale |
US20100088526A1 (en) * | 2008-10-02 | 2010-04-08 | Mcm Portfolio Llc | System and Method for Modular Exponentiation |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04362988A (ja) * | 1990-01-12 | 1992-12-15 | Toshiba Corp | 剰余乗算計算装置 |
DE69231110T2 (de) * | 1991-03-05 | 2000-11-16 | Canon Kk | Rechengerät und Verfahren zum Verschlüsseln/Entschlüsseln von Kommunikationsdaten unter Verwendung desselben |
EP0531158B1 (en) * | 1991-09-05 | 1999-08-11 | Canon Kabushiki Kaisha | Method of and apparatus for encryption and decryption of communication data |
US5274707A (en) * | 1991-12-06 | 1993-12-28 | Roger Schlafly | Modular exponentiation and reduction device and method |
US5299262A (en) * | 1992-08-13 | 1994-03-29 | The United States Of America As Represented By The United States Department Of Energy | Method for exponentiating in cryptographic systems |
JPH0720778A (ja) * | 1993-07-02 | 1995-01-24 | Fujitsu Ltd | 剰余計算装置、テーブル作成装置および乗算剰余計算装置 |
US5349551A (en) * | 1993-07-30 | 1994-09-20 | The United States Of America As Represented By The Director Of National Security Agency | Device for and method of preforming an N-bit modular multiplication in approximately N/2 steps |
-
1996
- 1996-01-26 JP JP01193896A patent/JP3504050B2/ja not_active Expired - Fee Related
-
1997
- 1997-01-24 US US08/785,845 patent/US5870478A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3504050B2 (ja) | 2004-03-08 |
US5870478A (en) | 1999-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3784156B2 (ja) | モジュラ掛け算方法 | |
KR101062558B1 (ko) | 암호화 기법 연산을 위한 컴퓨터 판독 가능한 저장 매체, 시스템 및 방법 | |
JP3504050B2 (ja) | べき乗剰余演算方法及び装置 | |
JPH1195661A (ja) | 指数剰余演算装置および指数剰余演算処理をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JPH0720778A (ja) | 剰余計算装置、テーブル作成装置および乗算剰余計算装置 | |
JP2002207429A (ja) | 効率的な冪乗法および装置 | |
JP3532860B2 (ja) | 剰余系表現を利用した演算装置及び方法及びプログラム | |
JP2001505325A (ja) | タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置 | |
JP3542278B2 (ja) | モンゴメリ・リダクション装置及び記録媒体 | |
US6763366B2 (en) | Method for calculating arithmetic inverse over finite fields for use in cryptography | |
JP2001051832A (ja) | 乗算剰余演算方法および乗算剰余回路 | |
EP1455270B1 (en) | Method and apparatus for basis conversion in finite field and a multiplier | |
JP2000132096A (ja) | スカラー倍算方法およびその装置 | |
KR100902847B1 (ko) | 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체 | |
KR20060037941A (ko) | 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법 | |
JP3145368B2 (ja) | 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体 | |
JP3434220B2 (ja) | 逆元演算装置、及びそのプログラム記録媒体 | |
KR100742093B1 (ko) | 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법 | |
KR100257123B1 (ko) | 변형된 몽고메리 모듈라 곱셈을 적용한 고속 멱승 방법 | |
JP4541485B2 (ja) | べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体 | |
JP3332270B2 (ja) | べき乗演算装置 | |
JP4293665B2 (ja) | 剰余乗算装置 | |
KR20100026358A (ko) | 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체 | |
JP2003084667A (ja) | 同一基底に対する複数の冪乗剰余演算を行う方法と装置並びにプログラム | |
JPH11212951A (ja) | 乗算剰余演算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20031202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20031209 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071219 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081219 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091219 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |