JP2003263111A - 乗算方法及び装置 - Google Patents

乗算方法及び装置

Info

Publication number
JP2003263111A
JP2003263111A JP2003032705A JP2003032705A JP2003263111A JP 2003263111 A JP2003263111 A JP 2003263111A JP 2003032705 A JP2003032705 A JP 2003032705A JP 2003032705 A JP2003032705 A JP 2003032705A JP 2003263111 A JP2003263111 A JP 2003263111A
Authority
JP
Japan
Prior art keywords
bit
multiplication
exclusive
input
inputs
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.)
Pending
Application number
JP2003032705A
Other languages
English (en)
Inventor
Kazuo Ota
和夫 太田
Kazumaro Aoki
和麻呂 青木
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 JP2003032705A priority Critical patent/JP2003263111A/ja
Publication of JP2003263111A publication Critical patent/JP2003263111A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 有限体の部分体上の乗算回数を削減し、高速
化を図る。 【解決手段】 本発明は、有限体の部分体上の乗算に、
n’ビット乗算と、n’ビット加算を利用して2n’ビ
ット乗算を用いる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、乗算方法及び装置
に係り、特に、誤り訂正符号化や暗号化における有限
体、例えば、
【0002】
【数7】 (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】
【数8】 が成り立つことにより、逆元が
【0005】
【数9】 で計算できることを利用している。これを用いた方法と
しては、例えば、文献「伊藤、辻井:正規基底を用いた
有限体における高速逆元算出アルゴリズム、電子情報通
信学会論文誌、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】
【数10】 での乗算がハードウェアで効率よく実現できることを利
用しており、
【0008】
【数11】 での逆元演算を
【0009】
【数12】 での乗算とシフト(ローテイトを含む)演算を組み合わ
せて実現する。現在知られている算法では、
【0010】
【数13】 での乗算がlog2m+{(m−1)を2進表現したときの
1の個数}回、ビットシフト演算が(m−1)回となる
こと、また、
【0011】
【数14】 が、
【0012】
【数15】 の2次拡大の時、部分体を用いると、
【0013】
【数16】 での逆元演算は、
【0014】
【数17】 での乗算が2回
【0015】
【数18】 でのシフト演算が1回
【0016】
【数19】 での逆元演算が1回となることが知られている。
【0017】その乗算算法をソフトウェアでそのまま実
現しようとすると、ビット単位の取り扱いが繁雑である
ため、効率が低下する問題がある。ビット単位の取り扱
いの詳細は、例えば、伊東らの論文のpp.1638-1639に詳
述されている。
【0018】そこで、
【0019】
【数20】 での乗算を、部分体を用いて計算する方法が知られてい
る。例えば、文献「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.Vandenb
erghe, P.D. Gersen, J.Vandewalle: A Fast Software
Implementation for Arithmetic 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】
【発明が解決しようとする課題】しかしながら、上記従
来のDe Winの方法による有限体の実装方法は、プロセッ
サの基本演算ビット数をw(例えば8や16)としたと
き、基礎体に
【0023】
【数21】 を用い、事前に基礎体上の演算を全て計算しておき、ま
た、F2 上の奇数次3項既約式xd +xt +1 (d>
t)を用いて、
【0024】
【数22】 により(数式の意味については例えば文献「彌永昌吉、
有馬哲、浅枝陽“詳解代数入門”東京図書,1990」
を参照)
【0025】
【数23】 の演算を実現し、それを用いて
【0026】
【数24】 を実装するというものである。De Win の方法では有限
体の乗算に通常の教科書的な筆算と同様の方法が用いら
れており、多くの部分体上の乗算を要する。本発明は、
上記の点に鑑みなされたもので、部分体上の乗算回数を
削減し、さらに高速化が可能な乗算方法及び装置を提供
することを目的とする。
【課題を解決するための手段】本発明は、 2n’ビッ
ト乗算を計算する際に、2つの被乗数、
【0027】
【数25】 と表せることを利用して、読み出しを高速に実行可能な
メモリのサイズが小さくて、対数変換テーブル、冪乗変
換テーブルを記憶できない場合に、コンピュータ上の計
算手段において、
【数26】 での乗算をその部分体
【0028】
【数27】 での乗算に帰着させて、そこでの演算算法を適用する。
【0029】また、本発明は、対数変換テーブルから一
度読み出した値を記憶しておき、他の演算でも流用す
る。
【0030】また、本発明は、2n’ビット乗算を計算
する乗算装置であって、
【0031】
【数28】 と表せることを利用して、n’ビット乗算と、n’ビッ
ト加算を利用して2n’ビット乗算を行う。
【0032】また、本発明は、複数のn’ビット乗算手
段、n’ビット排他的論理和手段、ビット列複製手段、
ビット列分割手段を有し、第1のビット列分割手段は、
m1 をx1 とy1 に分け、第2のビット列分割手段は、
m2 をx2 とy2 に分け、第1のビット列複製手段は、
入力x1 を複製し、第1のn’ビット乗算手段と、第1
のn’排他的論理和手段の入力とし、第2のビット列複
製手段は、入力y1 を複製し、第1のn’ビット排他的
論理和手段と、第2のn’ビット乗算手段の入力とし、
第3のビット列複製手段は、入力y2 を複製し、第2の
n’ビット排他的論理和手段と、第2のn’ビット乗算
手段の入力とし、第4のビット列複製手段は、入力x2
を複製し、第2のn’ビット排他的論理和手段と、第1
のn’ビット乗算手段の入力とし、第2のn’ビット排
他的論理和手段は、n’ビット排他的論理和値を計算
し、第3のn’ビット乗算手段の入力とし、第1のn’
ビット排他的論理和手段は、n’ビットの排他的論理和
値を計算し、第3のn’ビット乗算手段の入力とし、第
3のn’ビット乗算手段は、2つの入力t9 ,t10と定
数aの積、a×t9 ×t10を計算し、第5のビット列複
製手段の入力とし、第1のn’ビット乗算手段は、入力
の積を求め、第3のn’ビット排他的論理和手段の入力
とし、第2のn’ビット乗算手段は、入力の積を求め、
第4のn’ビット排他的論理和手段の入力とし、第5の
ビット列複製手段は、入力を複製し、第3のn’ビット
排他的論理和手段と、第4のn’ビット排他的論理和手
段の入力とし、第3のn’ビット排他的論理和手段は、
入力の排他的論理和値を計算し、ビット列結合手段の入
力とし、第4のn’ビット排他的論理和手段は、入力の
排他的論理和値を計算し、ビット列結合手段の入力と
し、ビット列結合手段は、入力ビットを結合し、出力m
0 を取得する。
【0033】上記のように、本発明は、キャシュメモリ
のサイズが小さくて、対数変換テーブル、冪乗変換テー
ブルを記憶できない場合には、
【0034】
【数29】 での乗算をその部分体
【0035】
【数30】 での乗算に帰着させて、そこでの演算算法を適用する。
【0036】また、
【0037】
【数31】 での逆元計算を実行できない場合にも、その部分体
【0038】
【数32】 での乗算と逆元計算に帰着させて、そこでの演算方法を
適用する。
【0039】さらに、本発明は、テーブルのアクセス回
数を削減するために、一度読み出した値を記憶してお
き、他の演算でも流用可能とする。
【0040】
【発明の実施の形態】図1は、本発明のnビット乗算装
置の構成である。但し、キャッシュメモリのサイズが小
さくて逆元計算装置において乗算テーブルを記憶できな
い場合に有効な算法であり、乗算をその部分体で乗算に
帰着させることで、部分体の演算に必要となる乗算テー
ブルのサイズを小さくできる。
【0041】以降ではパラメータn’を用いて説明す
る。
【0042】
【数33】 と表すと、
【0043】
【数34】
【0044】その実現例を以下の実施例で説明する。
【0045】
【実施例】以下に逆元計算装置に用いられる2n’ビッ
ト乗算装置について説明する。
【0046】図1に示す2n’ビット乗算装置は、ビッ
ト列分割装置601、602、ビット複製装置603,
608,613、n’ビット乗算装置604,607,
611、n’ビット排他的論理和装置605,609,
615、n’ビット複製装置606、ビット列複製装置
610、n’ビット排他的論理和装置614、ビット列
結合装置615から構成される。
【0047】以下、図1に示す2n’ビット乗算装置の
動作を説明する。
【0048】段階1: m1 をビット列分割装置601
を用いて、x1 とy1 に分ける。
【0049】段階2: m2 をビット列分割装置602
を用いて、x2 とy2 に分ける。
【0050】段階3: ビット列複製装置603を用い
て、入力x1 を複製し、n’ビット乗算装置604と、
n’ビット排他的論理和装置605の入力とする。
【0051】段階4: ビット列複製装置606を用い
て、入力y1 を複製し、n’ビット排他的論理和装置6
05と、n’ビット乗算装置607の入力とする。
【0052】段階5: ビット列複製装置608を用い
て、入力y2 を複製し、n’ビット排他的論理和装置6
09と、n’ビット乗算装置607の入力とする。
【0053】段階6: ビット列複製装置610を用い
て、入力x2 を複製し、n’ビット排他的論理和装置6
09と、n’ビット乗算装置604の入力とする。
【0054】段階7: n’ビット排他的論理和装置6
09を用いて、n’ビットの排他的論理和値を計算し、
n’ビット乗算装置611の入力とする。
【0055】段階8: n’ビット排他的論理和装置6
05を用いて、n’ビットの排他的論理和値を計算し、
n’ビット乗算装置611の入力とする。
【0056】段階9: n’ビット乗算装置611を用
いて、2つの入力t9 ,t10と定数aの積、a×t9 ×
t10を計算し、ビット列複製装置613の入力とする
(n’ビット乗算装置611の構成法は、図2に示され
ている)。
【0057】段階10: n’ビット乗算装置604を
用いて、入力の積を求め、n’ビット排他的論理和装置
614の入力とする。
【0058】段階11: n’ビット乗算装置607を
用いて、入力の積を求め、n’ビット排他的論理和装置
615の入力とする。
【0059】段階12: ビット列複製装置613を用
いて、入力を複製し、n’ビット排他的論理和装置61
4とn’ビット排他的論理和装置615の入力とする。
【0060】段階13: n’ビット排他的論理和装置
614を用いて、入力の排他的論理和値を計算し、ビッ
ト列結合装置616の入力とする。
【0061】段階14: n’ビット排他的論理和装置
615を用いて、入力の排他的論理和値を計算し、ビッ
ト列結合装置616の入力とする。
【0062】段階15: ビット列結合装置616を用
いて、入力ビットを結合し、2n’ビット乗算装置の出
力m0 とする。
【0063】以上のことから、
【0064】
【数35】 の要素の積は、
【0065】
【数36】 上の乗算4回と加算4回で、計算できることが分かる。
【0066】なお、本発明は、上記の実施の形態及び実
施例に限定されることなく、特許請求の範囲内におい
て、種々変更・応用が可能である。
【0067】
【発明の効果】上記のように、本発明によれば、乗算に
おいて、読み出しを高速に実行可能なメモリのサイズが
小さくて、対数変換テーブル、冪乗変換テーブルを記憶
できない場合でも、乗算が実行可能になる。
【図面の簡単な説明】
【図1】本発明の2n’ビット乗算装置の構成図であ
る。
【符号の説明】
601,602 ビット列分割装置 603,608,613 ビット複製装置 604,607,611 n’ビット乗算装置 605,609,615 n’ビット排他的論理和装置 606 n’ビット複製装置 610 ビット列複製装置 614 n’ビット排他的論理和装置 615 ビット列結合装置

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 2n’ビット乗算を計算する際に、2つ
    の被乗数、 【数1】 と表せることを利用して、 読み出しを高速に実行可能なメモリのサイズが小さく
    て、対数変換テーブル、冪乗変換テーブルを記憶できな
    い場合に、コンピュータ上の計算手段において、 【数2】 での乗算をその部分体 【数3】 での乗算に帰着させて、そこでの演算算法を適用し、 また、前記部分体 【数4】 での逆元計算を実行できない場合には、その部分体 【数5】 での乗算と逆元計算に帰着させて、そこでの演算算法を
    適用することを特徴とする乗算方法。
  2. 【請求項2】 前記対数変換テーブルから一度読み出し
    た値を記憶しておき、他の演算でも流用する請求項1記
    載の乗算方法。
  3. 【請求項3】 2n’ビット乗算を計算する乗算装置で
    あって、 【数6】 と表せることを利用して、n’ビット乗算と、n’ビッ
    ト加算を利用して2n’ビット乗算を行うことを特徴と
    する乗算装置。
  4. 【請求項4】 複数のn’ビット乗算手段、n’ビット
    排他的論理和手段、ビット列複製手段、ビット列分割手
    段を有し、 第1のビット列分割手段は、 m1 をx1 とy1 に分け、 第2のビット列分割手段は、 m2 をx2 とy2 に分け、 第1のビット列複製手段は、 前記入力x1 を複製し、第1のn’ビット乗算手段と、
    第1のn’排他的論理和手段の入力とし、 第2のビット列複製手段は、 前記入力y1 を複製し、前記第1のn’ビット排他的論
    理和手段と、第2のn’ビット乗算手段の入力とし、 第3のビット列複製手段は、 前記入力y2 を複製し、第2のn’ビット排他的論理和
    手段と、前記第2のn’ビット乗算手段の入力とし、 第4のビット列複製手段は、 前記入力x2 を複製し、前記第2のn’ビット排他的論
    理和手段と、前記第1のn’ビット乗算手段の入力と
    し、 前記第2のn’ビット排他的論理和手段は、 n’ビット排他的論理和値を計算し、第3のn’ビット
    乗算手段の入力とし、 前記第1のn’ビット排他的論理和手段は、 n’ビットの排他的論理和値を計算し、前記第3のn’
    ビット乗算手段の入力とし、 前記第3のn’ビット乗算手段は、 2つの入力t9 ,t10と定数aの積、a×t9 ×t10を
    計算し、第5のビット列複製手段の入力とし、 前記第1のn’ビット乗算手段は、 入力の積を求め、第3のn’ビット排他的論理和手段の
    入力とし、 前記第2のn’ビット乗算手段は、 入力の積を求め、第4のn’ビット排他的論理和手段の
    入力とし、 前記第5のビット列複製手段は、 入力を複製し、前記第3のn’ビット排他的論理和手段
    と、前記第4のn’ビット排他的論理和手段の入力と
    し、 前記第3のn’ビット排他的論理和手段は、 入力の排他的論理和値を計算し、ビット列結合手段の入
    力とし、 前記第4のn’ビット排他的論理和手段は、 入力の排他的論理和値を計算し、前記ビット列結合手段
    の入力とし、 前記ビット列結合手段は、 入力ビットを結合し、出力m0 を取得する請求項3記載
    の乗算装置。
JP2003032705A 2003-02-10 2003-02-10 乗算方法及び装置 Pending JP2003263111A (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (1)

Publication Number Publication Date
JP2003263111A true JP2003263111A (ja) 2003-09-19

Family

ID=29208426

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP2003263111A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005284111A (ja) * 2004-03-30 2005-10-13 Japan Science & Technology Agency 楕円曲線暗号の高速演算処理方法および装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005284111A (ja) * 2004-03-30 2005-10-13 Japan Science & Technology Agency 楕円曲線暗号の高速演算処理方法および装置

Similar Documents

Publication Publication Date Title
Öztürk et al. Low-power elliptic curve cryptography using scaled modular arithmetic
JP4067818B2 (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム及び楕円曲線暗号の演算方法
US20110161390A1 (en) Modular multiplication processing apparatus
US8862651B2 (en) Method and apparatus for modulus reduction
US7986779B2 (en) Efficient elliptic-curve cryptography based on primality of the order of the ECC-group
Granger et al. Faster ECC over
JP4351987B2 (ja) モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム
WO2012086076A1 (ja) 署名生成装置及び署名生成方法及び記録媒体
Balasubramaniam et al. Elliptic curve scalar multiplication algorithm using complementary recoding
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
JP3515306B2 (ja) 逆元演算装置
CN107463354B (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路
Nath et al. Security and efficiency trade-offs for elliptic curve Diffie–Hellman at the 128-bit and 224-bit security levels
JP2003263111A (ja) 乗算方法及び装置
Arazi et al. On calculating multiplicative inverses modulo $2^{m} $
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
JP3796867B2 (ja) 素数判定方法および装置
KR20090090881A (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
JP3435473B2 (ja) 暗号化・復号化方法及び装置
JP2004205870A (ja) 超楕円曲線スカラー倍演算方法及び装置
JP2007212768A (ja) 楕円曲線暗号における事前計算テーブル作成装置
JP2005316038A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム
JP2004102071A (ja) 多項式剰余系演算装置、方法及びプログラム
KR20210026410A (ko) 소수체와 이진체 상의 타원곡선을 지원하는 공개키 암호 시스템의 하드웨어 구현을 위한 연산장치 및 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050301