JP3515306B2 - 逆元演算装置 - Google Patents

逆元演算装置

Info

Publication number
JP3515306B2
JP3515306B2 JP01573997A JP1573997A JP3515306B2 JP 3515306 B2 JP3515306 B2 JP 3515306B2 JP 01573997 A JP01573997 A JP 01573997A JP 1573997 A JP1573997 A JP 1573997A JP 3515306 B2 JP3515306 B2 JP 3515306B2
Authority
JP
Japan
Prior art keywords
input
bit
multiplication
conversion table
bit string
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
Application number
JP01573997A
Other languages
English (en)
Other versions
JPH10214262A (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 JP01573997A priority Critical patent/JP3515306B2/ja
Priority to US09/014,891 priority patent/US6038581A/en
Publication of JPH10214262A publication Critical patent/JPH10214262A/ja
Priority to US09/484,896 priority patent/US6202076B1/en
Priority to US09/638,322 priority patent/US6266688B1/en
Application granted granted Critical
Publication of JP3515306B2 publication Critical patent/JP3515306B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、逆元演算方法及び
置に係り、特に、誤り訂正符号や暗号化における有限
体、例えば、
【0002】
【数16】 (GF(2m )と書くこともある)での四則演算のう
ち、逆元演算を高速に実行するための逆元演算方法及び
置に関する。
【0003】
【従来の技術】F2mでの逆元演算の高速な実現方法とし
て、Massey, Omura による正規基底を用いた乗算(J.Mas
sey, J.Omura: Computational Method and Apparatus f
or Finite Field Arithmetic, US Patent Number 4,58
7,627) を利用する算法がある。その原理は、有理体上
でフェルマーの小定理
【0004】
【数17】 が成り立つことにより、逆元が
【0005】
【数18】 で計算できることを利用している。これを用いた方法と
しては、例えば、文献「伊藤、辻井:正規基底を用いた
有限体における高速逆元算出アルゴリズム、電子情報通
信学会論文誌、A,Vol. J70-A, No.11, pp.1637-1645(19
87) 」、文献「P.C. van Ooschot, S,A. vanstone: A G
eometric Approach to Root Finding in GF(q m ), IEE
E Trans. on Information Theory, Vol.35, No.2, pp.4
44-453(1989)」等がある。
【0006】どちらの方法においても、正規基底を用い
ると
【0007】
【数19】 での乗算がハードウェアで効率よく実現できることを利
用しており、
【0008】
【数20】 での逆元演算を
【0009】
【数21】 での乗算とシフト(ローテイトを含む)演算を組み合わ
せて実現する。現在知られている算法では、
【0010】
【数22】 での乗算がlog2m+{(m−1)を2進表現したときの
1の個数}回、ビットシフト演算が(m−1)回となる
こと、また、
【0011】
【数23】 が、
【0012】
【数24】 の2次拡大の時、部分体を用いると、
【0013】
【数25】 での逆元演算は、
【0014】
【数26】 での乗算が2回
【0015】
【数27】 でのシフト演算が1回
【0016】
【数28】 での逆元演算が1回となることが知られている。
【0017】その乗算算法をソフトウェアでそのまま実
現しようとすると、ビット単位の取り扱いが繁雑である
ため、効率が低下する問題がある。ビット単位の取り扱
いの詳細は、例えば、伊東らの論文のpp.1638-1639に詳
述されている。
【0018】そこで、
【0019】
【数29】 での乗算を、部分体を用いて計算する方法が知られてい
る。例えば、文献「A.Pincin:"A New Algorithm for Mu
ltiplication in Finite Fields"IEEE Transactions on
computers, Vol.38, No.7, pp.1045-1049, July 1989
」に紹介されている。
【0020】ソフトウェアでの有限体の四則演算を実現
する場合には、ハードウェア実現時に比べて、メモリサ
イズの制約が緩いので、事前計算とし、その計算結果を
テーブルとして持っておき、必要な情報を読み出すこと
で、高速化が可能となる。この特徴を利用した高速算法
として、例えば、E.De. Win, A. Bosselaers, S.Vanden
berghe, P.D. Gersen, J.Vandewalle: A Fast Software
Implementation forArithmetic Operations in GF(2 n
), Advances in Cryptology-ASIACRYPT'96 (Lecture N
otes in Computer Science 1163), pp.65-76, Springer
-Verlag. 1996がある。
【0021】ところで、多くの秘密鍵暗号は、F関数を
複数回数繰り返すことで、安全性を高めている。F関数
に冪乗演算を利用すると安全性が保証できることが知ら
れている(文献「K.Nyberg: "Differentially uniform
mappings for cryptography," Advaces in Cryptology
- EUROCRYPT'93(Lecture Notes in Computer Science 7
65), pp.55-64, Springer-Verlag, 1994 」と文献「K.N
yberg, L.R. Knudsen:"Provable Security Against a D
ifferential Attack," Journal of Cryptology, Vol.
8, pp.27-37, Springer-International, 1995 」) これ
らの文献では、立法演算と逆元演算等を用いてF関数を
構成することが推奨されている。
【0022】
【発明が解決しようとする課題】しかしながら、上記従
来の入力データを素体F2 上の正規基底を用いて表現
し、伊東ら、van Ooschot らの算法を用いて
【0023】
【数30】 での逆元演算をそのままソフトウェアで実現すると、ビ
ット単位の取扱いが繁雑なため、効率が低下するという
問題がある。
【0024】本発明は、上記の点に鑑みなされたもの
で、ソフトウェアでは、ハードウェアでの実現時に比べ
てメモリを多く利用可能なことを利用して、事前計算の
結果をテーブルに記憶することで、
【0025】
【数31】 での逆元演算について、効率のよい逆元演算を可能とす
る逆元演算方法及び装 提供することを目的とする。
【0026】
【課題を解決するための手段】本発明は、コンピュータ
上の計算手段を用いて、有限体
【0027】
【数32】 での逆元演算を計算する方法において、
【0028】
【数33】 要素mを、
【0029】
【数34】 と表したとき、有限体
【0030】
【数35】 での逆元が、(a(x+y)2 +xy)-1yα+(a
(x+y)2 +xy)-1x(α+1)となることを利用
して、正規基底を拡張ユークリッドの互除法と組み合わ
せて、有限体
【0031】
【数36】 での逆元演算を、
【0032】
【数37】 での乗算、加算と逆元演算に帰着させることを特徴とす
る逆元演算方法。
【0033】また、本発明は、部分体の乗法群
【0034】
【数38】 での2項演算(乗算)を、1項演算(対数変換)で計算
可能なZ/(2n'−1)Zでの2項演算(和)に変換
し、その結果を1項演算(冪乗演算)で部分体
【0035】
【数39】 に引き戻す。
【0036】また、本発明は、対数変換テーブルを参照
して入力要素xの対数、 e=log g x を求め、 f=−emod (2n −1) で補数fを計算し、gf を冪乗変換テーブルから読み出
して、x-1を計算する。また、本発明は、高速に読み出
し可能なメモリが十分に使用可能な場合、部分体
【0037】
【数40】 での2項演算(乗算)の計算結果を乗算テーブルとして
保持する。
【0038】また、本発明は、乗算演算において、1つ
の被定数(x1 =a)が固定の場合には、部分体
【0039】
【数41】 での乗算計算結果(x=a×x2 、あるいは、x=a×
2 ×x3 )を乗算テーブルとして保持する。
【0040】また、本発明は、乗算演算において一方の
被乗数(x1 =a)が固定の場合に、部分体
【0041】
【数42】 での乗算を、部分体
【0042】
【数43】 を用いた算法に帰着させる。
【0043】図1は、本発明の原理構成図である。
【0044】本発明は、有限体
【0045】
【数44】 での逆数演算を計算する逆元演算装置であって、
【0046】
【数45】 となることを利用して、処理を行う複数のnビット乗算
手段、nビット排他的論理和手段、ビット列複製手段、
ビット列結合手段及びビット列分割手段とを有し、ビッ
ト列分割手段は、2nビットの入力mをnビットの2つ
のxとyに分け、該xを第1のビット列複製手段の、該
yを第2のビット列複製手段の入力とし、第1のビット
列複製手段は、入力xを複製し、複製されたt1 を第1
のnビット乗算手段の、複製されたt2 を第3のビット
列複製手段の入力とし、第3のビット列複製手段は、t
2 を複製し、複製されたt3 を第1のnビット排他的論
理和手段の、複製されたt4 を第2のnビット乗算手段
の入力とし、第2のビット列複製手段は、入力yを複製
し、複製されたt5 を第1のnビット排他的論理和手段
の、t6を第4のビット列複製手段の入力とし、第1の
nビット排他的論理和手段は、入力t3 とt5 の排他的
論理和値t7 を計算し、第5のビット列複製手段の入力
とし、第5のビット列複製手段は、入力t7 を複製し、
複製されたt8 とt9 を第3のnビット乗算手段の入力
とし、第3のnビット乗算手段は、入力t8 と入力t9
の積t10を計算し、第4のnビット乗算手段の入力と
し、第4のnビット乗算手段は、入力αと入力t10の積
11を計算し、第2のnビット排他的論理和手段の入力
とし、第4のビット列複製手段は、入力t6 を複製し、
複製されたt12を第1のnビット乗算手段の、複製され
たt13を第5のnビット乗算手段の入力とし、第1のn
ビット乗算手段は、入力t1 と入力t12の積t14を計算
し、第2のnビット排他的論理和手段の入力とし、第2
のnビット排他的論理和手段は、入力t11とt14の排他
的論理和値t15を計算し、nビット逆元計算手段の入力
とし、nビット逆元計算手段は、入力t15の逆元t16
計算し、第6のビット列複製手段の入力とし、第6のビ
ット列複製手段は、入力t16を複製し、複製されたt17
を第2のビット乗算手段の、入力t15を第5のnビット
乗算手段の入力とし、第2のnビット乗算手段は、入力
2 と入力t17の積t19を計算し、ビット列結合手段の
入力とし、第5のnビット乗算手段は、入力t13と入力
18の積t20を計算し、ビット列結合手段の入力とし、
ビット列結合手段は、入力t19と入力t20を結合して入
力mの逆元とする。
【0047】また、本発明は、第1、第2、第3、第
4、第5のnビット乗算手段は、問い合わせ手段、加算
手段、対数変換テーブル及び冪乗変換テーブルを含み、
【0048】
【数46】 の2つの要素x1 とx2 から対数変換テーブルを参照し
て2つの対数 e1 =log g1 , e2 =log g2 を求め、加算手段を用いて、 e=e1 +e2 mod (2n −1) でeを計算し、問い合わせ手段は、ge を冪乗変換テー
ブルから読み出して、 x=x1 ×x2 を計算する。
【0049】また、本発明の問い合わせ手段は、2つの
入力x1 ,x2 を、対数変換テーブルの入力とし、問い
合わせ手段は、対数変換テーブルから、入力x1 ,x2
に基づいて2つの対数 e1 =log g1 , e2 =log g2 を求め、対数e1 ,e2 を加算手段の入力とし、加算手
段は、 e=e1 +e2 mod (2n −1) を計算し、問い合わせ手段の入力とし、問い合わせ手段
は、eの冪乗変換テーブルの入力とし、冪乗変換テーブ
ルは、x=ge を問い合わせ手段の入力とし、問い合わ
せ手段は、xを出力する。
【0050】また、本発明は、問い合わせ手段により対
数変換テーブルを用いて求められた対数e= logg xよ
り、 f=−e mod(2n −1) を計算する補数手段を更に有し、問い合わせ手段は、補
数手段により入力されたfを冪乗変換テーブルの入力と
し、冪乗変換テーブルからx’=gf を取得して、x’
を出力する。
【0051】また、本発明は、入力x1 ,x2 について
の乗算を行い、xを出力する乗算テーブルを更に有し、
問い合わせ手段は、2つの入力x1 ,x2 を乗算テーブ
ルの入力とし、 x=x1 ×x2 を取得して、出力する。
【0052】また、本発明は、nビット乗算手段におい
て、一方の被乗数(x1 =a)が固定の場合、問い合わ
せ手段は、入力xを乗算テーブルの入力とし、乗算テー
ブルを用いて、乗算結果x’=a×xを乗算テーブルか
ら読み出し、x’を出力する。
【0053】また、本発明の第1のnビット乗算手段及
び、第2のnビット乗算手段は、第1のnビット乗算手
段及び、第2のnビット乗算手段の被乗数(t1
4)が同じ値(x)の場合、該第1のnビット乗算手
段及び該第2のnビット乗算手段で対数変換テーブルか
ら読み出した値を保持する。
【0054】上記のように、本発明の逆元演算方法及び
装置によれば、正規基底を拡張ユークリッドの互除法と
組み合わせて、
【0055】
【数47】 での逆元演算を、
【0056】
【数48】での乗算、加算を逆元演算に帰着させる。こ
れにより、部分体
【0057】
【数49】 での乗算、加算の回数を従来の算法より少なくする。
【0058】また、本発明では、部分体の乗法群
【0059】
【数50】 での2項演算(乗算)を、1項演算(対数変換)で計算
が容易なZ/(2n'−1)Zでの2項演算(和)に変換
し、その結果を1項演算(冪乗変換)で部分体
【0060】
【数51】 に引き戻す。ここで、
【0061】
【数52】 での乗算演算テーブルを2項演算として作成すると、メ
モリとして、(2n'2×n’ビットが必要となるが、
1項演算である対数変換と冪乗変換の事前計算の結果を
記憶じた対数変換テーブルと冪乗変換テーブルのサイズ
は、それぞれ約2n'×n’ビットにできる。
【0062】また、本発明では、高速に読み出し可能な
メモリが十分に使用できる場合、部分体
【0063】
【数53】 での2項演算(乗算)の計算結果を乗算テーブルとして
保持する。これにより、テーブル参照、及びZ/(2n'
−1)Zでの演算処理を削減する。
【0064】また、本発明では、乗算演算で1つの被乗
数(x1 =a)が固定の場合には、部分体
【0065】
【数54】 での乗算の計算結果(x=a×x2 ,あるいは、x=a
×x2 ×x3 )を乗算テーブルとして保持する。
【0066】また、本発明は、
【0067】
【数55】 での乗算を、部分体
【0068】
【数56】 を用いた算法に帰着させる。
【0069】
【数57】 での乗算結果を記憶するテーブルは、約(2n2 ×n
ビットとなるが、部分体
【0070】
【数58】 での乗算結果を記憶するテーブルは、約(2n/22 ×
(n/2)=(2n )×(n/2)ビットとなる。乗算
を部分体の乗算に帰着させることを繰り返すことで、読
み出しを高速に実行可能なメモリ(キャッシュメモリ)
サイズまでテーブルを小さくできるようなパラメータ
n’を持つ部分体が利用可能となる。
【0071】
【発明の実施の形態】図2は、本発明の2nビット逆元
演算装置の構成を示す。
【0072】同図において、
【0073】
【数59】 は、
【0074】
【数60】 上の2次元ベクトル空間であるので、
【0075】
【数61】 を用いて(ここで、「\」は差集合を表す)、
【0076】
【数62】 は、
【0077】
【数63】 と表すことができる。
【0078】
【数64】 を、
【0079】
【数65】 でのmの逆元演算は、拡張ユークリッの互除法を利用
して計算すると、(a+(x+y)2 +xy)-1yα+
(a(x+y)2 +xy)-1x(α+1)となることが
分かる。これにより、
【0080】
【数66】 での加算演算が2回(t7 =x+y=t3 +t5 ,t15
=a(x+y)2 +xy=t11+t14
【0081】
【数67】での乗算演算が5回(t10=(x+y)2
8 ×t9 ,t11=a(x+y)2=at10,t14=x
y=t112,t19=t174 ,t20=t1318
【0082】
【数68】 での逆元演算が1回(t 16 =t 15 -1 必要となる。
【0083】図3は、本発明の逆演算装置のnビット乗
算装置の構成を示す。
【0084】
【数69】 での乗算で、メモリに対数変換テーブルと冪乗変換テー
ブルを記憶できる場合には、対数変換テーブル202と
冪乗変換テーブル205を用意しておき、
【0085】
【数70】 の2つの要素x1 とx2 を、対数変換テーブル202を
参照して2つの対数、e1 =log g1 とe1 = log g
2 を求め、e=e1 +e2 mod (2n'−1)でeを計
算し、ge を冪乗変換テーブル205から読み出すこと
で、x=x1 ×x2 を計算する。ここで、要素gは、
【0086】
【数71】 の原始元、
【0087】
【数72】 とする。
【0088】図4は、本発明のnビット逆元演算装置の
構成を示す。
【0089】
【図73】 での逆元演算では、対数変換テーブル302を参照し
て、
【0090】
【数74】 の要素xの対数,e= logg xを求め、f=−e mod
(2n'−1)でfを計算し、gf を冪乗変換テーブル3
05から読み出すことで、x-1を計算する。
【0091】なお、図3中の冪乗変換テーブル205、
対数変換テーブル202をそのまま使用できる。
【0092】図5は、本発明のnビット冪乗装置の構成
(その1)を示す。
【0093】
【数75】 での乗算で、メモリ400に乗算テーブル402を記憶
できる場合には、乗算テーブル402を用意しておき、
【0094】
【数76】 の2つの要素x1 、x2 をキーとして、乗算結果x=x
1 ×x2 を乗算テーブル402から読み出す。
【0095】図6は、本発明のnビット乗算装置の構成
(その2)を示す。同図は、nビット乗算装置500の
構成であり、nビット乗算装置500では、一方の被乗
数(x1 =a)が固定なので、乗算テーブル(x=a×
2 )502を用意しておき、第2の被乗数x2 をキー
として、乗算結果x=a×x2 をそのテーブル502か
ら読み出す。ax12 のように、被乗数の種類が増え
ても、この考え方は有効である。
【0096】なお、図2に示す構成において、t1 とt
4 は、同じ値(x)であるので、nビット乗算装置10
3、107で対数変換テーブルを2回参照する必要はな
い。nビット乗算装置103で読み出した値を、そのま
まnビット乗算装置107でも使用することで、対数変
換テーブルの参照処理を削減できる。同様のことが、t
6 とt9 ,t12とt13,t17とt18でも発生する。
【0097】
【実施例】以下、図面と共に本発明の実施例を説明す
る。
【0098】まず、図2の2nビット逆元演算装置の構
成に従って説明する。
【0099】有限体
【0100】
【数77】 の逆元を
【0101】
【数78】 上の演算を用いて、計算する算法を示す。
【0102】
【数79】 は、
【0103】
【数80】 上の2次元のベクトル空間であるので、
【0104】
【数81】 を用いて(ここで「\」は差集合を表す)、要素
【0105】
【数82】 と表すことができる。
【0106】本発明では、要素
【0107】
【数83】 と表したとき、
【0108】
【数84】 での逆元演算は、拡張ユークリッドの互除法を利用して
計算すると、(a(x+y)2 +xy)-1yα+(a
(x+y)2 +xy)-1x(α+1)となることが証明
できるので、その事実を利用して、その計算を行う装置
である。ここで、記号×,+,Dはそれぞれ、nビット
乗算装置、nビット排他的論理和装置、ビット列複製装
置を表す。
【0109】段階1: 2nビットの入力mをビット列
分割装置101を用いて、nビットの2つのxとyに分
け、xをビット列複製装置102の、yをビット列複製
装置105の入力とする。
【0110】段階2: ビット列複製装置102を用い
て、入力xを複製し、t1 をnビット乗算装置の103
の、t2 をビット列複製装置104の入力とする。
【0111】段階3: ビット列複製装置104を用い
て、入力t2 を複製し、t3 をnビット排他的論理和装
置106の、t4 をnビット乗算装置107の入力とす
る。 段階4: ビット列複製装置105を用いて、入力yを
複製し、t5 をnビット排他的論理和装置106の、t
6 をビット列複製装置108の入力とする。
【0112】段階5: nビット排他的論理和装置10
6を用いて、入力t3 とt5 の排他的論理和値t7 を計
算し、ビット列複製装置109の入力とする。
【0113】段階6: ビット列複製装置109を用い
て、入力t7 を複製し、t8 とt9をnビット乗算装置
110の入力とする。
【0114】段階7: nビット乗算装置110を用い
て、入力t6 とt9 の積t10を計算し、nビット乗算装
置111の入力とする。
【0115】段階8: nビット乗算装置111を用い
て、入力aとt10の積t11を計算し、nビット排他的論
理和装置112の入力とする。
【0116】段階9: ビット列複製装置108を用い
て、入力t6 を複製し、t12をnビット乗算装置103
の、t13をnビット乗算装置113の入力とする。
【0117】段階10: nビット乗算装置103を用
いて、入力t1 とt12の積t14を計算し、nビット排他
的論理和装置112の入力とする。
【0118】段階11: nビット排他的論理和装置1
12を用いて、入力t11とt14の排他的論理和値t15
計算し、nビット逆元演算装置114の入力とする。
【0119】段階12: nビット逆元計算装置114
を用いて、入力t15の逆元t16を計算し、ビット列複製
装置115の入力とする。
【0120】段階13: ビット列複製装置115を用
いて、入力t16を複製し、t17をnビット乗算装置10
7の、t18をnビット乗算装置113の入力とする。
【0121】段階14: nビット乗算装置107を用
いて、入力t4 とt17の積 19を計算し、ビット列結合
装置116の入力とする。
【0122】段階15: nビット乗算装置113を用
いて、入力t13とt18の積t20を計算し、ビット列結合
装置116の入力とする。
【0123】段階16: ビット列結合装置116を用
いて、入力t19とt20を結合して、入力mの逆元とする
(出力結果は2nビットとなる)。
【0124】また、上記の段階1から段階16の計算順
序は、この例に限定されるものではない。
【0125】なお、nビット逆元計算装置114は、キ
ャッシュメモリが小さくて、図4に示す算法を実装でき
ないときには、図2に示す構成法をt15をmと見做すこ
とで再帰的に実現できる。
【0126】図3は、nビット乗算装置の構成例であ
る。対数変換テーブル202と冪乗変換テーブル205
を用意しておき、
【0127】
【数85】の2つの要素x1 とx2 から、対数変換テー
ブル202を参照して2つの対数、e1 = logg1
2 = logg2 を求め、e=e1 +e2 mod (2n
1)でeを計算し、ge を冪乗変換テーブル205から
読み出すことで、x=x1 ×x2 を計算する。
【0128】段階1: 問い合わせ装置201は、2つ
の入力、x1 ,x2 を、対数変換テーブル202の入力
とする。
【0129】段階2: 対数変換テーブル202を用い
て、2つの対数、e1 = logg1とe2 = logg2
を求め、問い合わせ装置201の入力とする。
【0130】段階3: 問い合わせ装置201は、e1
とx2 を、加算装置203の入力とする。
【0131】段階4: 加算装置203を用いて、e=
1 +e2 mod(2n −1)を計算し、問い合わせ装置
204の入力とする。
【0132】段階5: 問い合わせ装置204は、eを
冪乗変換テーブル205の入力とする。
【0133】段階6: 冪乗変換テーブル205を用い
て、x=ge を冪乗変換テーブルから読み出し、問い合
わせ装置204の入力とする。
【0134】段階7: 問い合わせ装置204を用い
て、xを出力する。
【0135】また、上記の段階1から段階7の計算順序
は、この例に限定されるものではない。
【0136】図4は、本発明のnビット逆元計算装置の
構成例である。対数変換テーブル302を参照して、
【0137】
【数86】 の要素xの対数、e= logg xを求め、f=−e mod
(2n −1)でfを計算し、gf を冪乗変換テーブル3
05から読み出すことで、x-1を計算する。
【0138】段階1: 問い合わせ装置301は、入力
xを、対数変換テーブル302の入力とする。
【0139】段階2: 対数変換テーブル302を用い
て、対数、e= logg xを求め、問い合わせ装置301
の入力とする。
【0140】段階3: 問い合わせ装置301は、e
を、補数装置303の入力とする。
【0141】段階4: 補数装置303を用いて、f=
−e mod(2n −1)を計算し、問い合わせ装置304
の入力とする。
【0142】段階5: 問い合わせ装置304は、fを
冪乗変換テーブル305の入力とする。
【0143】段階6: 冪乗変換テーブル305を用い
て、x’=gf を冪乗変換テーブルから読み出し、問い
合わせ装置304の入力とする。
【0144】段階7: 問い合わせ装置304を用い
て、x’を出力する。
【0145】また、上記の段階1から段階7の計算順序
は、この例に限定されるものではない。
【0146】図5は、本発明の図2中のnビット乗算装
置の構成例である。乗算テーブル402を用意してお
き、
【0147】
【数87】 の2つの要素x1 とx2 をキーとして、乗算結果x=x
1 ×x2 をそのテーブルから読み出す。
【0148】段階1: 問い合わせ装置401は、2つ
の入力x 1 ,x2 を、乗算テーブル402の入力とす
る。
【0149】段階2: 乗算テーブル402を用いて、
乗算結果x=x1 ×x2 をそのテーブルから読み出し、
問い合わせ装置401の入力とする。
【0150】段階3: 問い合わせ装置401を用い
て、xを出力する。
【0151】また、上記の段階1から段階3の計算順序
は、この例に限定されるものではない。
【0152】図6は、本発明の図2中のnビット乗算装
置の構成例である。ただし、図2中のnビット乗算装置
111のように、一方の被乗数(x1 =a)が固定の場
合の実現例である。
【0153】段階1: 問い合わせ装置501は、入力
xを、乗算テーブル502の入力とする。
【0154】段階2: 乗算テーブル502を用いて、
乗算結果x’=a×xをそのテーブルから読み出し、問
い合わせ装置501の入力とする。
【0155】段階3: 問い合わせ装置501を用い
て、x’を出力する。
【0156】また、上記の段階1から段階3の計算順序
は、この例に限定されるものではない。
【0157】なお、本発明で用いた数学の事実
【0158】
【数88】 ことは、
【0159】
【数89】 と表すと、
【0160】
【数90】 の積m0 は、m0 =m12 =(x12 +a(x1
1 )(x2 +y2 ))α+(y12 +a(x1 +y
1 )(x2 +y2 ))(α+1)と表せるので、
【0161】
【数91】 が示せることにより明らかである(ただし、m≠0と仮
定)。
【0162】なお、本発明は、上記の実施例に限定され
ることなく、特許請求の範囲内で種々変更・応用が可能
である。
【0163】
【発明の効果】本発明を、従来の算法の組み合わせの場
合と比較する。伊東らの算法(伊東・辻井の文献のp.
1643−1644の算法)を用いて、
【0164】
【数92】 での逆元演算を、
【0165】
【数93】 での乗算と
【0166】
【数94】での逆元演算、シフト演算に帰着させる。
【0167】
【数95】 ここで、
【0168】
【数96】 での乗算をPincinの改良算法で部分体
【0169】
【数97】の四則演算で実現すると、部分体
【0170】
【数98】 の乗算4回、加算4回を必要とするので、
【0171】
【数99】 となる。一方、本発明では、
【0172】
【数100】 ・暗号処理適用時の演算量 64ビットブロック暗号の暗号化処理のF関数として、
立法演算と逆元演算が推奨されている。64ビット暗号
を例にとって、立法演算を、Pincinの改良算法で
実現する場合と、逆元演算を本発明で実現する場合を比
較する。
【0173】
【数101】 ワークステーションで実現することを考える。最近の多
くのCPUではキャッシュメモリの大きさが256KB
以上なので、部分体
【0174】
【数102】 の対数変換テーブルと冪乗変換テーブルは、高速にアク
セス可能なテーブルとして保持できる。
【0175】テーブル参照回数、演算でのeと逆元演算
でのfの計算内容を見ると、1項演算である逆元演算の
方が乗算より高速に実現できることがわかる。従って、
本発明では、逆元演算の処理量は立法演算に比べて、
【0176】
【数103】 での乗算が1回分以上
【0177】
【数104】 での加算が1回分削減できることがわかる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の逆元演算装置の構成図である。
【図3】本発明の逆元演算装置のnビット乗算装置の構
成図である。
【図4】本発明のnビット逆元計算装置の構成図であ
る。
【図5】本発明のnビット乗算装置の構成図である。
【図6】本発明のnビット乗算装置の構成図である。
【符号の説明】
101 nビット列分割装置、nビット列分割手段 102,104,105,108,109,115 ビ
ット列複製装置、ビット列複製手段 103,107,110,111,113 nビット乗
算装置、ビット乗算手段 114 nビット列結合装置、ビット列結合手段 116 ビット列結合装置、ビット列結合手段 200 nビット乗算装置 201,204 問い合わせ装置 202 対数変換テーブル 203 加算装置 205 冪乗変換テーブル 300 nビット逆元計算装置 301,304 問い合わせ装置 302 対数変換テーブル 303 補数装置 305 冪乗変換テーブル 400 nビット乗算装置 401 問い合わせ装置 402 乗算テーブル 500 nビット乗算装置 501 問い合わせ装置 502 乗算テーブル
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 GF(2m)における逆元の高速算法 について,電子情報通信学会技術研究報 告,1997年 7月18日,Vol.87, No.120,p.1−4 A.Pinchin,A New A lgorithm for Multi plication in Finit e Fields,IEEE Tran saction on copmput ers,Vol.38 No.7,p. 1045−1049 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 650 G06F 17/10 JICSTファイル(JOIS)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 有限体 【数13】 での逆数演算を計算する逆元演算装置であって、 【数14】 となることを利用して、処理を行う複数のnビット乗算
    手段、nビット排他的論理和手段、ビット列複製手段、
    ビット列結合手段及びビット列分割手段とを有し、 前記ビット列分割手段は、 2nビットの入力mをnビットの2つのxとyに分け、
    該xを第1のビット列複製手段の、該yを第2のビット
    列複製手段の入力とし、 前記第1のビット列複製手段は、前記入力xを複製し、
    複製されたt1 を第1のnビット乗算手段の、複製され
    たt2 を第3のビット列複製手段の入力とし、 前記第
    3のビット列複製手段は、 前記t2 を複製し、複製されたt3 を第1のnビット排
    他的論理和手段の、複製されたt4 を第2のnビット乗
    算手段の入力とし、 前記第2のビット列複製手段は、 前記入力yを複製し、複製されたt5 を前記第1のnビ
    ット排他的論理和手段の、t6 を第4のビット列複製手
    段の入力とし、 前記第1のnビット排他的論理和手段は、 前記入力t3 と前記t5 の排他的論理和値t7 を計算
    し、第5のビット列複製手段の入力とし、 前記第5のビット列複製手段は、 前記入力t7 を複製し、複製されたt8 とt9 を第3の
    nビット乗算手段の入力とし、 前記第3のnビット乗算手段は、 前記入力t8 と前記入力t9 の積t10を計算し、第4の
    nビット乗算手段の入力とし、 前記第4のnビット乗算手段は、 入力αと前記入力t10の積t11を計算し、第2のnビッ
    ト排他的論理和手段の入力とし、 前記第4のビット列複製手段は、 前記入力t6 を複製し、複製されたt12を前記第1のn
    ビット乗算手段の、複製されたt13を第5のnビット乗
    算手段の入力とし、 前記第1のnビット乗算手段は、 前記入力t1 と前記入力t12の積t14を計算し、前記第
    2のnビット排他的論理和手段の入力とし、 前記第2のnビット排他的論理和手段は、 前記入力t11とt14の排他的論理和値t15を計算し、n
    ビット逆元計算手段の入力とし、 前記nビット逆元計算手段は、 前記入力t15の逆元t16を計算し、第6のビット列複製
    手段の入力とし、 前記第6のビット列複製手段は、 前記入力t16を複製し、複製されたt17を前記第2のビ
    ット乗算手段の、前記入力t15を第5のnビット乗算手
    段の入力とし、 前記第2のnビット乗算手段は、 前記入力t2 と前記入力t17の積t19を計算し、前記ビ
    ット列結合手段の入力とし、 前記第5のnビット乗算手段は、 前記入力t13と前記入力t18の積t20を計算し、前記ビ
    ット列結合手段の入力とし、 前記ビット列結合手段は、 前記入力t19と前記入力t20を結合して前記入力mの逆
    元とすることを特徴とする逆元演算装置。
  2. 【請求項2】 前記第1、第2、第3、第4、第5のn
    ビット乗算手段は、問い合わせ手段、加算手段、対数変
    換テーブル及び冪乗変換テーブルを含み、 【数15】 の2つの要素x1 とx2 から前記対数変換テーブルを参
    照して2つの対数 e1 =log g1 , e2 =log g2 を求め、 前記加算手段を用いて、 e=e1 +e2 mod (2n −1) でeを計算し、 前記問い合わせ手段は、 ge を前記冪乗変換テーブルから読み出して、 x=x1 ×x2 を計算する請求項記載の逆元演算装置。
  3. 【請求項3】 前記問い合わせ手段は、 2つの入力x1 ,x2 を、前記対数変換テーブルの入力
    とし、 前記問い合わせ手段は、 前記対数変換テーブルから、前記入力x1 ,x2 に基づ
    いて2つの対数 e1 =log g1 , e2 =log g2 を求め、前記対数e1 ,e2 を前記加算手段の入力と
    し、 前記加算手段は、 e=e1 +e2 mod (2n −1) を計算し、前記問い合わせ手段の入力とし、 前記問い合わせ手段は、 前記eの前記冪乗変換テーブルの入力とし、 前記冪乗変換テーブルは、 x=ge を前記問い合わせ手段の入力とし、 前記問い合わせ手段は、 xを出力する請求項記載の逆元演算装置。
  4. 【請求項4】 前記問い合わせ手段により前記対数変換
    テーブルを用いて求められた対数e= logg xより、 f=−e mod(2n −1) を計算する補数手段を更に有し、 前記問い合わせ手段は、 前記補数手段により入力されたfを前記冪乗変換テーブ
    ルの入力とし、 前記冪乗変換テーブルからx’=gf を取得して、x’
    を出力する請求項記載の逆元演算装置。
  5. 【請求項5】 前記入力x1 ,x2 についての乗算を行
    い、xを出力する乗算テーブルを更に有し、 前記問い合わせ手段は、 前記2つの入力x1 ,x2 を前記乗算テーブルの入力と
    し、 x=x1 ×x2 を取得して、出力する請求項記載の逆元演算装置。
  6. 【請求項6】 前記nビット乗算手段において、 一方の被乗数(x1 =a)が固定の場合、 前記問い合わせ手段は、入力xを乗算テーブルの入力と
    し、 前記乗算テーブルを用いて、乗算結果x’=a×xを前
    記乗算テーブルから読み出し、x’を出力する請求項
    記載の逆元演算装置。
  7. 【請求項7】 前記第1のnビット乗算手段及び、前記
    第2のnビット乗算手段は、 前記第1のnビット乗算手段及び、前記第2のnビット
    乗算手段の被乗数(t1 ,t4 )が同じ値(x)の場
    合、該第1のnビット乗算手段及び該第2のnビット乗
    算手段で前記対数変換テーブルから読み出した値を保持
    する請求項記載の逆元演算装置。
JP01573997A 1997-01-29 1997-01-29 逆元演算装置 Expired - Lifetime JP3515306B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP01573997A JP3515306B2 (ja) 1997-01-29 1997-01-29 逆元演算装置
US09/014,891 US6038581A (en) 1997-01-29 1998-01-28 Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US09/484,896 US6202076B1 (en) 1997-01-29 2000-01-18 Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US09/638,322 US6266688B1 (en) 1997-01-29 2000-08-14 Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01573997A JP3515306B2 (ja) 1997-01-29 1997-01-29 逆元演算装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003032705A Division JP2003263111A (ja) 2003-02-10 2003-02-10 乗算方法及び装置

Publications (2)

Publication Number Publication Date
JPH10214262A JPH10214262A (ja) 1998-08-11
JP3515306B2 true JP3515306B2 (ja) 2004-04-05

Family

ID=11897140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01573997A Expired - Lifetime JP3515306B2 (ja) 1997-01-29 1997-01-29 逆元演算装置

Country Status (1)

Country Link
JP (1) JP3515306B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60137269D1 (de) * 2000-03-09 2009-02-12 Mitsubishi Electric Corp Blockchiffriergerät
JP4676071B2 (ja) * 2001-02-13 2011-04-27 富士通株式会社 べき乗剰余演算方法、逆数演算方法およびそれらの装置
DE10222212A1 (de) 2002-05-16 2003-12-04 Giesecke & Devrient Gmbh Ausspähungsgeschützte modulare Inversion
JP4970291B2 (ja) * 2008-01-07 2012-07-04 株式会社東芝 ペアリング計算装置及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A.Pinchin,A New Algorithm for Multiplication in Finite Fields,IEEE Transaction on copmputers,Vol.38 No.7,p.1045−1049
GF(2m)における逆元の高速算法について,電子情報通信学会技術研究報告,1997年 7月18日,Vol.87, No.120,p.1−4

Also Published As

Publication number Publication date
JPH10214262A (ja) 1998-08-11

Similar Documents

Publication Publication Date Title
US7904498B2 (en) Modular multiplication processing apparatus
US6202076B1 (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
Öztürk et al. Low-power elliptic curve cryptography using scaled modular arithmetic
US7986779B2 (en) Efficient elliptic-curve cryptography based on primality of the order of the ECC-group
US8862651B2 (en) Method and apparatus for modulus reduction
JPH0720778A (ja) 剰余計算装置、テーブル作成装置および乗算剰余計算装置
US6721771B1 (en) Method for efficient modular polynomial division in finite fields f(2{circumflex over ( )}m)
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
CA2310588A1 (en) Transformation methods for optimizing elliptic curve cryptographic computations
JP4351987B2 (ja) モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム
US6772184B2 (en) Method for efficient modular division over prime integer fields
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP3515306B2 (ja) 逆元演算装置
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
JPH11143688A (ja) 演算装置並びにこれを利用したrsa暗号演算装置及び楕円暗号演算装置
Arazi et al. On calculating multiplicative inverses modulo $2^{m} $
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
Wu An efficient common-multiplicand-multiplication method to the Montgomery algorithm for speeding up exponentiation
JP2000137436A (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP2003263111A (ja) 乗算方法及び装置
JP4502817B2 (ja) 楕円曲線スカラー倍計算方法および装置
KR102253211B1 (ko) 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치 및 방법
JP3435473B2 (ja) 暗号化・復号化方法及び装置
KR20090090881A (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
Lou et al. An efficient Montgomery exponentiation algorithm by using signed-digit-recoding and folding techniques

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: 20040113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040115

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

Free format text: PAYMENT UNTIL: 20090123

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090123

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100123

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110123

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110123

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120123

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130123

Year of fee payment: 9

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term