JP3659320B2 - 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器 - Google Patents

乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器 Download PDF

Info

Publication number
JP3659320B2
JP3659320B2 JP2000185582A JP2000185582A JP3659320B2 JP 3659320 B2 JP3659320 B2 JP 3659320B2 JP 2000185582 A JP2000185582 A JP 2000185582A JP 2000185582 A JP2000185582 A JP 2000185582A JP 3659320 B2 JP3659320 B2 JP 3659320B2
Authority
JP
Japan
Prior art keywords
multiplication
output
input
control signal
module
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 - Fee Related
Application number
JP2000185582A
Other languages
English (en)
Other versions
JP2002023999A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2000185582A priority Critical patent/JP3659320B2/ja
Priority to US09/990,021 priority patent/US6912558B2/en
Publication of JP2002023999A publication Critical patent/JP2002023999A/ja
Application granted granted Critical
Publication of JP3659320B2 publication Critical patent/JP3659320B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field

Description

【0001】
【発明の属する技術分野】
本発明は、乗算モジュール、乗法逆元演算回路、乗法逆元演算回路の制御方式、および装置に関し、より詳細には、ガロア拡大体GF(2)(mは任意の自然数)の乗法逆元演算を、低レイテンシかつ小規模な回路によって実現することを可能とする乗算モジュール、乗法逆元演算回路、乗法逆元演算回路の制御方式、装置、暗号装置および誤り訂正復号器に関する。
【0002】
【従来の技術】
まず、本発明も含めて、ハードウェア向けの逆数演算アルゴリズムの評価ポイントは次のとおりである。
(1)乗算器の個数
(2)レジスタの個数
(3)レイテンシ(順序回路の場合はクロック数*クロック周波数)。これは行う乗算の回数に強く依存する。
(4)順序回路の場合、最大動作周波数。当然ながら、同じクロック数で計算ができるなら、最大動作周波数が高い回路がよい。同じ最大動作周波数なら、少ないクロック数で計算ができる回路がよい。
上記の各ポイントについて従来手法や本発明がどうであるかは、後に比較として述べるので、以下に、従来手法の概要についてまずまとめる。
【0003】
方法1: Fermat's little theorem
文献[1]や[4]などに示されているとおり、
【0004】
【数1】
Figure 0003659320
の公式(Fermatの小定理)を用いて乗法逆元を計算する。この式のとおりに計算を進めると、m−2回の乗算が必要とされる
【0005】
この公式の計算を順序回路として作る場合には、図1に示した計算過程に基づいて、1個の乗算回路と1個の2乗回路を持つ順序回路とされ、(x)のi乗を求めながら(m−2)回のループで計算するアルゴリズムがよく用いられている。このときのレイテンシ(サイクル数)は(m−2)となる。
【0006】
組み合わせ回路で実現する場合は、図2のように木構造を作れば、Mを乗算回路のレイテンシとして
【0007】
【数2】
Figure 0003659320
のレイテンシが与えられる(一般に、べき乗演算のレイテンシはごく小さいので無視する)。
【0008】
方法2: 伊東・辻井のアルゴリズムと、その類似手法
文献[2]に、これまで知られている限りもっとも乗算回数が少なくて済むアルゴリズム(伊東・辻井のアルゴリズム)を示す。図3には、伊藤・辻井のアルゴリズムにおけるm=16における計算過程の例を示す。また、このアルゴリズムより以前に伊東らが文献[3]で提案した別アルゴリズムとして、
【0009】
【数3】
Figure 0003659320
等の関係を用いてべき数2−2を再帰的に2分解し、実計算はその逆の手順でボトムアップに乗算およびべき乗演算を進める、という方法も提案されている。いずれのアルゴリズムでも、順序回路にしたときサイクル数は、
【0010】
【数4】
Figure 0003659320
であり、組み合わせ回路にしたときレイテンシは、Mを乗算回路のレイテンシとして、
【0011】
【数5】
Figure 0003659320
となる(べき乗演算のレイテンシは、ごく小さいので無視した)。
【0012】
いずれのアルゴリズムでも、方法1と異なり、各乗算を逐次的に進めないと正しい計算結果が得られないという問題点がある。
【0013】
方法3: 乗算と部分体上での乗法逆元演算の組み合わせによる方法
文献[4], [2]などに、GF(2)においてm=kq(mが合成数)であるとき、GF(2)の乗法逆元演算をGF(2)の乗算とGF(2)(ないしGF(2))の乗法逆元演算に帰着する方法が示されている。これにより、うまく原始多項式や表現基底を選定すれば、かなり回路規模が縮小され、回路速度も速くなる場合が存在する。
【0014】
しかし、この方法は限られた特定の場合にしか使えないという問題がある。たとえばmが素数であればまったく使えないし、ターゲットの体GF(2)の原始多項式によっては、回路規模や速度の向上が得られないこともある。
【0015】
方法4: ユークリッド互除法
文献[5]等では、多項式上でユークリッド互除法を用いて乗法逆元を計算する方法が示されている。これは、入力多項式(乗法逆元を求めたい多項式)をA、原始多項式をFとしたとき、ユークリッド互除法でBA+FM=1を満たすB,Mを求めると、ガロア体上ではBがAの乗法逆元となるという性質を利用したものである。この方法は、一般にレイテンシがO(m)となるという問題点がある。
【0016】
代表的な文献:
[1]
S.B.Wicker and V.K.Bhargava (eds.), Reed-Solomon Codes and Their Applications, IEEE Press, 1994.
[2]
T.Itoh and S.Tsujii, "A Fast Algorithm for Computing Multiplicative Inverses inGF(2) Using Normal Bases," Information and Computation, vol.78, no.3, pp.171-177, 1988.
[3]
T.Itoh, O.Teechai and S.Tsujii, "A fast algorithm for computing multiplicative inverses in GF(2) using normal bases, J. Society for Electronic Communications (Japan), 44, 31-36, 1986.
[4]
J.Guajardo and C.Paar, "Efficient Algorithms for Elliptic Curve Cryptosystems," proc. of 17th Annual Intl. Cryptology Conf. (CRYPTO'97), LNCS1294, pp.342-356, 1997.
[5]
H.Brunner, A.Curiger and M.Hofstetter, "On computing multiplicative inverses in GF(2)", IEEE Trans. Computers, vol.42, pp.1010-1015, 1993.
【0017】
【発明が解決しようとする課題】
伊東のアルゴリズムでは、乗算回数は少ないが、回路のレイテンシが大きくなるという問題がある.逆にFermatでは,組み合わせ回路にしたとき、レイテンシは小さいが回路規模が大きくなり、順序回路にしたとき、レイテンシが大きくなる、という問題がある。
【0018】
本発明では両方の手法の良い部分をとり、順序回路、組み合わせ回路のいずれの場合についても、小規模な回路構成を達成し、さらに低レイテンシを、一度に達成するものである。本発明は、通常の回路設計で良くあるようなスピードとエリア(省スペース)とのトレードオフを与えることなく、それらを両方改善するものである。
【0019】
本発明は、任意のmを対象として、基本モジュールを組み合わせた形で、低いレイテンシ(順序回路の場合は少ない処理クロック数、組み合わせ回路の場合は少ディレイ)を乗算回数を増やすことなく達成するものである。既存の方法では、いずれもレイテンシを減らすこと自体が困難か、レイテンシを減らそうとすると回路規模がたいへん大きくなるという問題があった。具体的には、以下の通りである。
【0020】
(1)Fermatの定理をそのまま計算する方法では、組み合わせ回路にすればレイテンシは、
【0021】
【数6】
Figure 0003659320
にまで改善できるが、乗算回路がm−2個必要となる。
【0022】
(2)伊東・辻井の方法、およびその類似手法では、全体として行われる乗算の回数は、
【0023】
【数7】
Figure 0003659320
個で済むが、レイテンシを改善することが困難である。レイテンシは、順序回路で、
【0024】
【数8】
Figure 0003659320
サイクル、組み合わせ回路では、
【0025】
【数9】
Figure 0003659320
となり、Fermatよりも悪い。
【0026】
(4)部分体上の除算へ帰着する方法は、限られたmや原始多項式でしか使えない。なお、この方法は本発明と対立する手法ではなく、本手法と組み合わせて併用すれば、さらに回路性能を改善できる。
【0027】
(5)ユークリッド互除法による方法は、O(m)のレイテンシがかかり、その改善は簡単でないという問題点がある。
【0028】
本手法は、乗算の全回数が伊東・辻井とまったく同じ(Fermatより少ない)にも関わらず、レイテンシが最高で伊東・辻井の約半分(Fermatと同じ)に改善できる。
【0029】
【課題を解決するための手段】
乗法逆元計算は、乗算やべき乗演算を利用して行うが、計算の進め方によって得られる回路の性能が変わる。本発明は、基本モジュールを組み合わせた形で、低いレイテンシ(順序回路の場合は少ない処理クロック数、組み合わせ回路の場合は少ディレイ)を、乗算回数を増やすことなく達成するものである。
【0030】
すなわち、本発明の上記課題は、本発明の乗算モジュール、乗法逆元演算回路、該乗法逆元演算回路の制御方式、装置、暗号装置および誤り訂正復号器を提供することにより解決される。
【0031】
すなわち、本発明によれば、ガロア体GF(2m)(m≧1)上のmビットデータを乗算するための第1の入力部と第2の入力部とを含む乗算モジュールであって、
前記第1の入力部からの第1のmビットデータが入力される第1および第2のべき乗演算手段と、
前記第1のmビットデータおよび前記第1のべき乗演算手段からの出力が入力される第1の乗算手段と、
前記第2の入力部からの第2のmビットデータおよび前記第2のべき乗演算手段からの出力が入力される第2の乗算手段と、
前記第2の乗算手段の出力信号および前記第2のmビットデータが入力される選択手段と、
前記第1のべき乗演算手段と、前記第2のべき乗演算手段と、前記選択手段とにそれぞれ制御信号を出力する制御手段とを含んで構成され、
前記第1のべき乗演算手段には第1の制御信号が入力され、前記第2のべき乗乗算手段には第2の制御信号が入力され、前記選択手段には該選択手段の出力を制御するための第3の制御信号が入力され、前記第1の乗算手段が第1の出力信号を出力し、前記選択手段が第2の出力信号を出力する、乗算モジュールが提供される。
【0032】
本発明によれば、請求項1の乗算モジュールと、
第1の初期値が設定でき前記乗算モジュールの第1の出力信号が入力される、第1のレジスタ手段と、
第2の初期値が設定でき前記乗算モジュールの第2の出力信号が入力される、第2のレジスタ手段とを含み、
前記第1のレジスタ手段の出力が前記乗算モジュールの第1の入力部に接続され、前記第2のレジスタ手段の出力が前記乗算モジュールの第2の入力部に接続されており、
前記第2のレジスタ手段が、前記第1、第2、第3の制御信号に応じて前記第1の初期値の乗法逆元を与える、乗法逆元演算回路が提供される。
【0033】
本発明によれば、前記第1の初期値と前記第2の初期値とをレジスタ手段へ入力し、前記制御手段は、サイクル数が所定の数k(kは、自然数)となった場合に第1のべき乗演算手段にr=2 -1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2 -1)}+1、s=2としてs乗を計算させる第2の制御信号とを入力し、前記乗算モジュールの選択手段には、(m−1)の2進表現でのビットk−1が1の場合には前記第2のレジスタ手段の入力に前記第2の乗算手段の出力を入力し、(m−1)の2進表現でのビットk−1が1でない場合には前記第2のレジスタ手段の入力に前記第2のレジスタ手段の出力を与える第3の制御信号を入力する、乗法逆元演算回路が提供される。
【0034】
本発明によれば、請求項1の乗算モジュール2個と、第1の初期値が設定できる第1のレジスタ手段と、第2の初期値が設定できる第2のレジスタ手段とを含み、前記乗算モジュールのそれぞれ第1の出力を他の前記第1の入力部に接続し、前記乗算モジュールのそれぞれ第2の出力を他の前記第2の入力部に接続し、
前記乗算モジュール群の結合によって得られた回路に対し、前記乗算モジュールの第1の入力部に前記第1のレジスタ手段の出力が接続され、前記乗算モジュールの第2の入力部に前記第2のレジスタ手段の出力が接続され、前記乗算モジュールの第1の出力部に前記第1のレジスタ手段の入力が接続され、前記乗算モジュールの第2の出力部に前記第2のレジスタ手段の入力が接続された乗法逆元演算回路。
【0035】
本発明によれば、3個以上の請求項1の乗算モジュールと、第1の初期値が設定できる第1のレジスタ手段と、第2の初期値が設定できる第2のレジスタ手段とを含み、前記乗算モジュールのそれぞれ第1の出力を次の前記第1の入力部に接続し、前記乗算モジュールのそれぞれ第2の出力を次の前記第2の入力部に接続し、
前記乗算モジュール群の結合によって得られた回路に対し、前記乗算モジュールの第1の入力部に前記第1のレジスタ手段の出力が接続され、前記乗算モジュールの第2の入力部に前記第2のレジスタ手段の出力が接続され、前記乗算モジュールの第1の出力部に前記第1のレジスタ手段の入力が接続され、前記乗算モジュールの第2の出力部に前記第2のレジスタ手段の入力が接続された乗法逆元演算回路が提供される。
【0036】
本発明によれば、前記乗算モジュールの数n(nは、自然数)は、[log2(m-1)+1]以下とされる、乗法逆元演算回路が提供される。
【0037】
本発明によれば、制御手段により、i段目(n≧i≧1)の乗算モジュールに対して、サイクル数が所定の数q(qは自然数)となった場合に、p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算させる第2の制御信号とを入力し、前記i段目の乗算モジュールの選択手段には、(m−1)の2進表現でのビットp−1が1の場合には前記i段目の乗算モジュールの第2の出力に前記第2の乗算手段の出力を与え、(m−1)の2進表現でのビットp−1が1でない場合には前記i段目のモジュールの第2の出力に、前記i段目の乗算モジュールへの第2の入力部からのmビットデータを与える第3の制御信号を入力する、乗法逆元演算回路が提供される。
【0038】
本発明によれば、[log2(m-1)+1]個の請求項1の乗算モジュールと、
それぞれの前記乗算モジュールを制御するための第1の制御信号群と、第2の制御信号群と、第3の制御信号群とを与える制御手段とを含み、
前記乗算モジュールのそれぞれ第1の出力が次の前記乗算モジュールの第1の入力部に接続され、前記乗算モジュールのそれぞれ第2の出力が次の前記乗算モジュールの前記第2の入力部に接続されており、
前記制御手段は、所定段目k(kは、自然数)の乗算モジュールに対して、r=2 -1、s=2としてs乗を計算させる第1の制御信号を第1のべき乗演算手段に与え、r={(m−1)mod(2 -1)}+1、s=2としてs乗を計算させる第2の制御信号を第2のべき乗演算手段に与え、m−1の2進表現におけるビットk−1が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として第2の入力部から入力されるmビットデータを与える、乗法逆元演算回路が提供される。
【0039】
本発明によれば、前記乗算モジュールに接続される対となったレジスタ手段を含む、乗法逆元演算回路が提供される。
【0040】
本発明によれば、ガロア体GF(2m)(m≧1)上のmビットデータを乗算するための第1の入力部と第2の入力部とを含む乗算モジュールの制御方式であって、
第1および第2のべき乗演算手段に前記第1の入力部からの第1のmビットデータを入力する段階と、
第1の乗算手段に前記第1のmビットデータおよび前記第1のべき乗演算手段からの出力を入力する段階と、
第2の乗算手段に前記第2の入力部からの第2のmビットデータおよび前記第2のべき乗演算手段からの出力を入力する段階と、
選択手段に前記第2の乗算手段の出力信号および前記第2のmビットデータを入力する段階と、
制御回路から前記第1の乗算手段と、前記第2の乗算手段と、前記選択手段とにそれぞれ制御信号を出力する段階とを含み、
前記第1のべき乗演算手段に第1の制御信号を入力し、前記第2のべき乗演算手段に第2の制御信号を入力し、前記選択手段に該選択手段の出力を制御するための第3の制御信号を入力し、前記第1の乗算手段に第1の出力信号を出力させ、前記選択手段に第2の出力信号を出力させる、乗算モジュールの制御方式が提供される。
【0041】
本発明によれば、請求項1の乗算モジュールを与える段階と、
第1の初期値が設定でき前記乗算モジュールの第1の出力信号が入力される、第1のレジスタ手段を与える段階と、
第2の初期値が設定でき前記乗算モジュールの第2の出力信号が入力される、第2のレジスタ手段を与える段階とを含み、前記第1のレジスタ手段の出力が前記乗算モジュールの第1の入力部に接続され、前記第2のレジスタ手段の出力が前記乗算モジュールの第2の入力部に接続されており、
さらに、前記第2のレジスタ手段が、前記第1、第2、第3の制御信号に応じて前記第1の初期値の乗法逆元を与える段階とを含む、乗法逆元演算回路の制御方式が提供される。
【0042】
本発明によれば、前記第1の初期値と前記第2の初期値とを入力する段階と、サイクル数が所定の数k(kは、自然数)となった場合に第1のべき乗演算手段にr=2 -1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2 -1)}+1、s=2としてs乗を計算させる第2の制御信号とを入力し、前記乗算モジュールの選択手段には、(m−1)の2進表現でのビットk−1が1の場合には前記第2のレジスタ手段の入力に前記第2の乗算手段の出力を入力し、(m−1)の2進表現でのビットk−1が1でない場合には前記第2のレジスタ手段の入力に前記第2のレジスタ手段の出力を入力するための第3の制御信号を入力する段階を含む、乗法逆元演算回路の制御方式が提供される。
【0043】
本発明によれば、請求項1の乗算モジュール2個と、第1の初期値が設定できる第1のレジスタ手段と、第2の初期値が設定できる第2のレジスタ手段とを含み、前記乗算モジュールのそれぞれ第1の出力を他の前記第1の入力部に接続し、前記乗算モジュールのそれぞれ第2の出力を他の前記第2の入力部に接続した乗法逆元演算回路の制御方式であって、前記乗算モジュールの第1の出力部に前記第1のレジスタ手段の入力が接続され、前記乗算モジュールの第2の出力部に前記第2のレジスタ手段の入力が接続され、
前記乗算モジュール群の結合によって得られた回路に対し、前記乗算モジュールの第1の入力部に前記第1のレジスタ手段の出力を接続する段階と、前記乗算モジュールの第2の入力部に前記第2のレジスタ手段の出力を接続する段階と、を含む、乗法逆元演算回路の制御方式が提供される。
【0044】
本発明によれば、3個以上の請求項1の乗算モジュール2個と、第1の初期値が設定できる第1のレジスタ手段と、第2の初期値が設定できる第2のレジスタ手段とを含み、前記乗算モジュールのそれぞれ第1の出力を他の前記第1の入力部に接続し、前記乗算モジュールのそれぞれ第2の出力を他の前記第2の入力部に接続した乗法逆元演算回路の制御方式であって、前記乗算モジュールの第1の出力部に前記第1のレジスタ手段の入力が接続され、前記乗算モジュールの第2の出力部に前記第2のレジスタ手段の入力が接続され、
前記乗算モジュール群の結合によって得られた回路に対し、前記乗算モジュールの第1の入力部に前記第1のレジスタ手段の出力を接続する段階と、前記乗算モジュールの第2の入力部に前記第2のレジスタ手段の出力を接続する段階とを含む、乗法逆元演算回路の制御方式が提供される。
【0045】
本発明の請求項15の発明によれば、前記乗算モジュールの数n(nは、自然数)は、[log2(m-1)+1]以下とされる、乗法逆元演算回路の制御方式が提供される。
【0046】
本発明によれば、i段目(n≧i≧1)の乗算モジュールに対して、サイクル数が所定の数q(qは自然数)となった場合に、p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算させる第2の制御信号とを入力し、前記乗算モジュールの選択手段には、(m−1)の2進表現でのビットp−1が1の場合には前記i段目の乗算モジュールの第2の出力に前記第2の乗算手段の出力を与え、(m−1)の2進表現でのビットp−1が1でない場合には前記i段目の乗算モジュールの第2の出力に、前記i段目の乗算モジュールの第2の入力部からのmビットデータを与える第3の制御信号を入力する、乗法逆元演算回路の制御方式が提供される。
【0047】
本発明によれば、[log2(m-1)+1]個の請求項1の乗算モジュールを与える段階と、
それぞれの前記乗算モジュールを制御するための第1の制御信号群と、第2の制御信号群と、第3の制御信号群とを与える段階とを含み、前記乗算モジュールのそれぞれ前記第1の出力が次の前記第1の入力部に接続され、前記乗算モジュールのそれぞれ前記第2の出力が次の前記第2の入力部に接続されており、
所定段目k(kは、自然数)の乗算モジュールに対して、r=2 -1、s=2としてs乗を計算させる第1の制御信号を第1のべき乗演算手段に与え、r={(m−1)mod(2 -1)}+1、s=2としてs乗を計算させる第2の制御信号を第2のべき乗演算手段に与え、m−1の2進表現におけるビットk−1が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として第2の入力部から入力されるmビットデータを与える段階を含む、乗法逆元演算回路の制御方式が提供される。
【0048】
本発明によれば、前記乗算モジュールからの出力を対となったレジスタ手段に入力する段階を含む、乗法逆元演算回路の制御方式が提供される。
【0049】
本発明によれば、ガロア体GF(2m)(m≧1)上のmビットデータを乗算するための第1の入力部と第2の入力部とを含む乗算モジュールを用いる装置であって、該乗算モジュールは、
前記第1の入力部からの第1のmビットデータが入力される第1および第2のべき乗演算手段と、
前記第1のmビットデータおよび前記第1のべき乗演算手段からの出力が入力される第1の乗算手段と、
前記第2の入力部からの第2のmビットデータおよび前記第2のべき乗演算手段からの出力が入力される第2の乗算手段と、
前記第2の乗算手段の出力信号および前記第2のmビットデータが入力される選択手段と、
前記第1のべき乗演算手段と、前記第2のべき乗演算手段と、前記選択手段とにそれぞれ制御信号を出力する制御回路とを含んで構成され、
前記第1のべき乗演算手段には第1の制御信号が入力され、前記第2のべき乗乗算手段には第2の制御信号が入力され、前記選択手段には該選択手段の出力を制御するための第3の制御信号が入力され、前記第1の乗算手段が第1の出力信号を出力し、前記選択手段が第2の出力信号を出力する装置が提供される。
【0050】
本発明によれば、請求項1の乗算モジュールと、
第1の初期値が設定でき前記乗算モジュールの第1の出力信号が入力される、第1のレジスタ手段と、
第2の初期値が設定でき前記乗算モジュールの第2の出力信号が入力される、第2のレジスタ手段とを含み、
前記第1のレジスタ手段の出力が前記乗算モジュールの第1の入力部に接続され、前記第2のレジスタ手段の出力が前記乗算モジュールの第2の入力部に接続されており、
前記第2のレジスタ手段が、前記第1、第2、第3の制御信号に応じて前記第1の初期値の乗法逆元を与える、乗法逆元演算回路を含む装置が提供される。
【0051】
本発明によれば、前記第1の初期値と前記第2の初期値とを入力し、サイクル数が所定の数k(kは、自然数)となった場合に第1のべき乗演算手段にr=2 -1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2 -1)}+1、s=2としてs乗を計算させる第2の制御信号とを入力し、前記乗算モジュールの選択手段には、(m−1)の2進表現でのビットk−1が1の場合には前記第2のレジスタ手段の入力に前記第2の乗算手段の出力を入力し、(m−1)の2進表現でのビットk−1が1でない場合には前記第2のレジスタ手段の入力に前記第2のレジスタ手段の出力を入力するための第3の制御信号を入力する、乗法逆元演算回路を含む装置が提供される。
【0052】
本発明によれば、請求項1の乗算モジュール2個と、第1の初期値が設定できる第1のレジスタ手段と、第2の初期値が設定できる第2のレジスタ手段とを含み、前記乗算モジュールのそれぞれ第1の出力を他の前記第1の入力部に接続し、前記乗算モジュールのそれぞれ第2の出力を他の前記第2の入力部に接続し、
前記乗算モジュール群の結合によって得られた回路に対し、その第1の入力部に前記第1のレジスタ手段の出力が接続され、前記乗算モジュールの第2の入力部に前記第2のレジスタ手段の出力が接続され、前記乗算モジュールの第1の出力部に前記第1のレジスタ手段の入力が接続され、前記乗算モジュールの第2の出力部に前記第2のレジスタ手段の入力が接続された乗法逆元演算回路を含む、装置。
【0053】
本発明によれば、3個以上の請求項1の乗算モジュールと、第1の初期値が設定できる第1のレジスタ手段と、第2の初期値が設定できる第2のレジスタ手段とを含み、前記乗算モジュールのそれぞれ第1の出力を他の前記第1の入力部に接続し、前記乗算モジュールのそれぞれ第2の出力を他の前記第2の入力部に接続し、
前記乗算モジュール群の結合によって得られた回路に対し、その第1の入力部に前記第1のレジスタ手段の出力が接続され、前記乗算モジュールの第2の入力部に前記第2のレジスタ手段の出力が接続され、前記乗算モジュールの第1の出力部に前記第1のレジスタ手段の入力が接続され、前記乗算モジュールの第2の出力部に前記第2のレジスタ手段の入力が接続された乗法逆元演算回路を含む、装置が提供される。
【0054】
本発明の請求項24の発明によれば、前記乗算モジュールの数n(nは、自然数)は、[log2(m-1)+1]以下とされる乗法逆元演算回路を含む装置が提供される。
【0055】
本発明によれば、制御手段により、i段目(n≧i≧1)の乗算モジュールに対して、サイクル数が所定の数q(qは自然数)となった場合に、p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算する第2の制御信号とを入力し、前記i番目の乗算モジュールの選択手段には、(m−1)の2進表現でのビットp−1が1の場合には前記i番目の乗算モジュールの第2の出力に前記第2の乗算手段の出力を与え、(m−1)の2進表現でのビットp−1が1でない場合には前記i番目の乗算モジュールの第2の出力を、前記i段目の乗算モジュールの第2の入力部からのmビットデータとする第3の制御信号を入力する乗法逆元演算回路を含む、装置が提供される。
【0056】
本発明によれば、[log2(m-1)+1]個の請求項1の乗算モジュールと、
それぞれの前記乗算モジュールを制御するための第1の制御信号群と、第2の制御信号群と、第3の制御信号群とを与える制御手段とを含み、
前記乗算モジュールのそれぞれ第1の出力が他の前記乗算モジュールの第1の入力部に接続され、前記乗算モジュールのそれぞれ第2の出力が他の前記乗算モジュールの第2の入力部に接続されており、
前記制御手段は、所定段目k(kは、自然数)の乗算モジュールに対して、r=2 -1、s=2としてs乗を計算させる第1の制御信号を第1のべき乗演算手段に与え、r={(m−1)mod(2 -1)}+1、s=2としてs乗を計算させる第2の制御信号を第2のべき乗演算手段に与え、m−1の2進表現におけるビットk−1が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として前記第2の入力部から入力されるmビットデータを与える乗法逆元演算回路を含む装置が提供される。
【0057】
本発明によれば、前記乗算モジュールに接続される対となったレジスタ手段を含む、乗法逆元演算回路が提供される。
【0058】
本発明によれば、ガロア体GF(2m)(m≧1)上のmビットデータを乗算するため、第1の入力部からmビットデータおよびべき乗演算手段からの出力を乗算手段に入力する段階と、第2の入力部からのmビットデータおよび前記べき乗演算手段からの出力を乗算手段に入力する段階とを含む乗法逆元演算回路の制御方式であって、
p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算する第2の制御信号とを入力する段階と、
m−1の2進表現におけるビットk−1(kは、自然数)が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として前記第2の入力部から入力されるmビットデータを与える段階とを含む、乗法逆元演算回路の制御方式が提供される。
【0059】
本発明によれば、ガロア体GF(2m)(m≧1)上のmビットデータを乗算するため、第1の入力部からmビットデータおよびべき乗演算手段からの出力を乗算手段に入力する段階と、第2の入力部からのmビットデータおよび前記べき乗演算手段からの出力を乗算手段に入力する段階とを含む乗算方法を実行させるためのソースコードが記録されたコンピュータ可読な記録媒体であって、該記録媒体は、
p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算する第2の制御信号とを入力し、
m−1の2進表現におけるビットk−1(kは、自然数)が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として前記第2の入力部から入力されるmビットデータを与える、記録媒体が提供される。
【0060】
本発明によれば、ガロア体GF(2m)(m≧1)上のmビットデータを乗算するため、第1の入力部からmビットデータおよびべき乗演算手段からの出力を乗算手段に入力する段階と、第2の入力部からのmビットデータおよび前記べき乗演算手段からの出力を乗算手段に入力する段階とを含む乗算方法を実行させるためのソースコードが記録されたコンピュータ可読な伝送媒体であって、該伝送媒体は、
p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算する第2の制御信号とを入力し、
m−1の2進表現におけるビットk−1(kは、自然数)が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として前記第2の入力部から入力されるmビットデータを与える、伝送媒体が提供される。
【0061】
本発明によれば、ガロア体GF(2m)(m≧1)上のmビットデータを乗算するため、第1の入力部からのmビットデータおよびべき乗演算手段からの出力が入力される乗算手段と、第2の入力部からのmビットデータおよび前記べき乗演算手段からの出力が入力される乗算手段とを含む暗号装置であって、
p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算させる第2の制御信号とを入力するための手段と、
m−1の2進表現におけるビットk−1(kは、自然数)が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として前記第2の入力部から入力されるmビットデータを与えるための手段と、を含む暗号装置が提供される。
【0062】
本発明によれば、ガロア体GF(2m)(m≧1)上のmビットデータを乗算するため、第1の入力部からのmビットデータおよびべき乗演算手段からの出力が入力される乗算手段と、第2の入力部からのmビットデータおよび前記べき乗演算手段からの出力が入力される乗算手段とを含む誤り訂正復号器であって、
p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算する第2の制御信号とを入力するための手段と、
m−1の2進表現におけるビットk−1(kは、自然数)が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として前記第2の入力部から入力されるmビットデータを与えるための手段と、を含む誤り訂正復号器が提供される。
【0063】
本発明によれば、ガロア体GF(2m)(m≧1)上のmビットデータを乗算するため、第1の入力部からのmビットデータおよびべき乗演算手段からの出力が入力される乗算手段と、第2の入力部からのmビットデータおよび前記べき乗演算手段からの出力が入力される乗算手段とを含む装置であって、
p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算する第2の制御信号とを入力するための手段と、
m−1の2進表現におけるビットk−1(kは、自然数)が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として前記第2の入力部から入力されるmビットデータを与えるための手段と、を含む装置が提供される。
【0064】
【発明の実施の形態】
以下、本発明の図面に示した実施例をもって説明する。本発明においては、Hw(χ)はχの2進表現におけるハミング重み、[χ]はχの整数部(小数部を切り捨てた数)、aは、GF(2m)の原始多項式の根、aは、GF(2m)における1、Mは乗算回路のレイテンシを表わすものとする。また、後述するレジスタR1およびR2へと値を設定してから、次に値を設定するまでの期間を、1サイクルとする。
【0065】
図4の乗算モジュールを用い、順序回路として乗法逆元演算回路を構成する場合は、図5または図6のように、組み合わせ回路として実現する場合は図7のように回路を構成する。図5および図7における基本モジュール等の制御信号は、図8のように与える。図6における制御信号については後述する。また、後述する図12のようにパイプライン化することもできる。
【0066】
ここで、基本的な乗算モジュールは、2個の乗算回路と2個の2のべき乗演算回路(2乗演算を行う)、および出力Bのセレクタで構成される。各べき乗演算回路においてkをいくつにとるかは、モジュールの制御信号として外部より与えられる(図4)。順序回路として実現する場合(図5、図6)、図4の乗算モジュールを1個以上用い、その出力をレジスタに接続する。レジスタは初期値が設定できるものを用い、その初期値は外部より与えられる。レジスタ出力は乗算モジュール群の入力へフィードバックされる。乗算モジュールやセレクタの制御は、専用の制御手段、例えばコントロール回路によって行う。そのコントロール回路は、図8の手順に従って各制御信号を生成する。
【0067】
図8のアルゴリズムを回路として実装する実施例について説明する。このアルゴリズムから得られるデータフローグラフを、回路実装に用いる。各部品を組み合わせ回路で構成したうえでデータフローグラフ全体を静的に回路展開すれば組み合わせ回路が得られるし,リソースアロケーションとスケジューリングを行って順序回路とすることもできる。順序回路とする場合、乗算やべき乗演算などは必ずしもパラレル入出力である必要はない。
【0068】
なお,上記アルゴリズムでは
【0069】
【数10】
Figure 0003659320
などと剰余演算を行っているように見える個所があるが,これは実際には「m−1の2進表現のうち下位k−1ビットを抽出する」操作できわめて軽いハードで実現できる(組み合わせ回路にする場合は,これらは定数値となるので,事前計算による回路簡単化が可能)。また、2のべき乗演算も簡単な回路で作れるので基本的に乗算とレジスタだけのコストと考えてよい。
【0070】
さて、このアルゴリズムを順序回路化したときmが動的に変化できるようにするのは簡単である。レジスタはmによらずR1とR2の2つであり、それらの役割がmによって変わることはない。mに依存して変化するのは、ループの回数と、べき乗演算のべき数だけであり、データパスの構造はmにほとんど依存しない。データパスをコントロールするために、mからべき数
【0071】
【数11】
Figure 0003659320
の動的導出をしなければならないが、それはきわめて容易で、上記のとおりm−1の2進表現からビットを切り出すだけで行える。
【0072】
組み合わせ回路として実現する場合(図7)、図4の基本構成モジュールを直列に、
【0073】
【数12】
Figure 0003659320
個接続する。各モジュールの制御信号は、図8の手順に従って与えられる。その制御信号はmを固定すれば固定値となるので、それにより論理を簡単化できる。なお、mを別のレジスタで持っておき、そこから制御信号をデコードすることにより、任意のmに対処できるような回路を構成してもよい。
【0074】
図5の変形として、乗算モジュールを下記式
【0075】
【数13】
Figure 0003659320
の範囲内のn個を直列に接続して得られる回路に、図5と同様にレジスタと各モジュールの制御回路を付加して回路を構成することもできる(図6)。そのq(qは、自然数)サイクル目において、i段目(n≧i≧1)のモジュールの制御入力には、図8のn(q−1)+iサイクル目の制御信号を与える。たとえば、3段直列に接続した場合、1段目のモジュールには図8の1,4,7,…サイクル目の制御信号、2段目のモジュールには2,5,8,…サイクル目の制御信号、3段目のモジュールには3,6,9,…サイクル目の制御信号を、サイクルごとに与える。
【0076】
なお、本発明は、図4、図5、図6、図7、図12から冗長論理を削除して得られる回路をすべて含む。とくに、一方の入力に常に定数aが与えられる乗算回路は削除し、他方の入力をその出力と直結する。また、出力が使われないべき乗演算回路や、出力が固定の選択回路も削除する。さらに、図4において、乗算回路やべき乗演算回路などは必ずしも組み合わせ回路である必要はない。
【0077】
m=15の組み合わせ回路を例に、実際にどのような制御信号をモジュールに与えるかを図9に示す。
【0078】
m=15の場合、基本モジュールを4つ直列につなげた構造となる。モジュール番号を、入力側から1,2,3,4とする。このとき、図9に示すようにたとえばモジュール2には次のような制御信号を与える。
○べき乗演算回路1は、4乗演算を行う。
○べき乗演算回路2は、2乗演算を行う。
○選択回路は、出力Bに入力Bの値を出す。
他のモジュールについても同様である。ここで、モジュール1,2の乗算回路2、モジュール4の乗算回路1、モジュール1のべき乗演算回路2、モジュール4のべき乗演算回路1は、いずれも不要となるので削除し、それによって得られた回路を用いる。
【0079】
m=15で、図5のような順序回路として実現する場合、レジスタを初期化した後、4サイクルかけて処理を行う。基本回路モジュールへの制御信号は、図9におけるモジュール1,2,3,4と同じものをこの順に与える。制御信号の生成は、図5におけるべき乗レジスタ入力制御信号生成回路で行う。
【0080】
他のmについても、同様に基本モジュールの接続と制御を行う。
(1)図5のように順序回路として実装した場合:
計算にかかるサイクル数は、任意のmに対し、
Fermat : m−2
伊東 : [log2(m-1)]+Hw(m-1)-1
本発明 : [log2(m-1)]+1
で、本発明がもっとも良く、最大で伊東の約半分で計算できる。
たとえばm=192の場合
Fermat : 190
伊東 : 13
本発明 : 8
また、m=511の場合、
Fermat : 509
伊東 : 15
本手法 : 9
となり、大きくレイテンシが改善される。
【0081】
(2)図7のように組み合わせ回路として実装した場合:
乗算回路の個数(回路サイズ)は、任意のmに対し、
Fermat : m−2
伊東 : [log2(m-1)]+Hw(m-1)-1
本発明 : [log2(m-1)]+Hw(m-1)-1
で、伊東と本手法がもっとも良い.
【0082】
また、レイテンシ(スピード)は、
Fermat :{[log2(m-2)]+1}*乗算器のレイテンシ
伊東 :{[log2(m-1)]+Hw(m-1)-1}*乗算器のレイテンシ
本手法 :[log2(m-2)]+1}*乗算器のレイテンシ
で、Fermatと本手法がもっとも良い。伊東のアルゴリズムと本手法のレイテンシの違いを、図10のグラフに示す.
【0083】
以上をまとめると、本手法は、回路サイズを伊東と同じでFermatよりはるかに少なく保ったまま、伊東の約半分の(=Fermatと同じ)レイテンシに改善できる。また、図6下段のとおり、実際に汎用論理合成ツールで実回路を作成した場合にも、上記アルゴリズムの差がそのままゲート数や速度に現れる。図11には、本発明において、上述したm=14、15、16とした場合のデータフローグラフを示す。
【0084】
図12には、本発明の乗法逆元演算回路のさらに別の実施例を示す。図12の乗法逆元演算回路は、図7に示した実施例の構成に加えて、レジスタR1,R2が追加されている。これらの対となったレジスタR1,R2は、図12に示した乗法逆元演算回路を構成する乗算モジュールのいかなる位置においても、またいかなる個数でも配置することができる。
【0085】
【発明の効果】
上述したように、本発明によれば、基本モジュールを組み合わせた形で、低いレイテンシ(順序回路の場合は少ない処理クロック数、組み合わせ回路の場合は少ディレイ)を乗算回数を増やすことなく達成することができる。
【0086】
本手法では、動的にmを変えるのが、Fermatと同程度に容易である(順序回路として実装した場合)。レジスタの個数が2個と静的に決まっているので、任意のmでほぼ同じデータパスが使え、ループ回数などのコントロールを変更するだけでmを変更できる。コントロールを動的に変更するのも先述のとおり簡単な回路でできる。本手法は、逆元演算のみならず、べき乗演算の高速化に応用できる。
【0087】
本手法は、文献[4]等にあるComposite Fieldベースの高速化手法と組み合わせることで、より一層の回路規模縮小/レイテンシ短縮を実現できる。これまで本発明の図面に示した実施例をもって説明してきたが、本発明は図面に示した実施例に限定されるものではなく、種々の変更、除外、別の態様が可能である。また、本発明を適用することができる装置は、暗号装置、誤り復号装置ばかりではなく、ガロワ拡大体を用いるいかなる装置に対しても適用できることは言うまでもないことである。
【図面の簡単な説明】
【図1】 Fermatの定理を用いた従来の乗法逆元演算のアルゴリズムを示した図。
【図2】 従来の乗法逆元演算のアルゴリズムを木構造を用いて示した図。
【図3】 従来の乗法逆元演算のアルゴリズムを示した図。
【図4】 本発明の乗法モジュールを示した図。
【図5】 本発明の乗法逆元演算回路を示した図。
【図6】 本発明の乗法逆元演算回路の別の実施例を示した図。
【図7】 本発明の乗法逆元演算回路のさらに別の実施例を示した図。
【図8】 本発明に用いる制御信号を与えるため擬似コードを示した図。
【図9】 本発明に用いる制御信号を例示した図。
【図10】 本アルゴリズムと従来のアルゴリズムとのレイテンシを比較した図。
【図11】 本発明のアルゴリズムによるデータフローグラフとスケジューリングを示した図。
【図12】 図7に示した乗法逆元演算回路にレジスタを含ませたさらに別の実施例を示した図。
【符号の説明】
u1…第1のべき乗演算手段
u2…第2のべき乗演算手段
u3…第1の乗算手段
u4…第2の乗算手段
u5…選択手段
S0…第3の制御信号
S1…第1の制御信号
S2…第2の制御信号
R1…第1のレジスタ手段
R2…第2のレジスタ手段

Claims (16)

  1. ガロア体GF(2m)(m≧1)上のmビットデータを乗算するための第1の入力部と第2の入力部とを含む乗算モジュールであって、
    前記第1の入力部からの第1のmビットデータが入力される第1および第2のべき乗演算手段と、
    前記第1のmビットデータおよび前記第1のべき乗演算手段からの出力が入力される第1の乗算手段と、
    前記第2の入力部からの第2のmビットデータおよび前記第2のべき乗演算手段からの出力が入力される第2の乗算手段と、
    前記第2の乗算手段の出力信号および前記第2のmビットデータが入力される選択手段と、
    前記第1のべき乗演算手段と、前記第2のべき乗演算手段と、前記選択手段とにそれぞれ制御信号を出力する制御手段と
    第1の初期値が設定でき前記乗算モジュールの第1の出力信号が入力される、第1のレジスタ手段と、
    第2の初期値が設定でき前記乗算モジュールの第2の出力信号が入力される、第2のレジスタ手段とを含んで構成され、
    前記第1のべき乗演算手段には第1の制御信号が入力され、前記第2のべき乗演算手段には第2の制御信号が入力され、前記選択手段には該選択手段の出力を制御するための第3の制御信号が入力され、前記第1の乗算手段が第1の出力信号を出力し、前記選択手段が第2の出力信号を出力し、
    前記制御手段は、サイクル数が所定の数k(kは、自然数)となった場合に第1のべき乗演算手段にr=2 -1 、s=2 としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2 -1 )}+1、s=2 としてs乗を計算させる第2の制御信号とを入力し、前記乗算モジュールの選択手段には、(m−1)の2進表現でのビットk−1が1の場合には前記第2のレジスタ手段の入力に前記第2の乗算手段の出力を入力し、(m−1)の2進表現でのビットk−1が1でない場合には前記第2のレジスタ手段の入力に前記第2のレジスタ手段の出力を与える前記第3の制御信号を入力する、乗算モジュール。
  2. 請求項1の複数の乗算モジュールを含み
    前記第1のレジスタ手段の出力が前記乗算モジュールの第1の入力部に接続され、前記第2のレジスタ手段の出力が前記乗算モジュールの第2の入力部に接続されており、前記第2のレジスタ手段が、前記第1、第2、第3の制御信号に応じて前記第1の初期値の乗法逆元を与える、乗法逆元演算回路。
  3. 請求項1の乗算モジュール2個と、第1の初期値が設定できる第1のレジスタ手段と、第2の初期値が設定できる第2のレジスタ手段とを含み、前記乗算モジュールのそれぞれ第1の出力を他の前記第1の入力部に接続し、前記乗算モジュールのそれぞれ第2の出力を他の前記第2の入力部に接続し、
    前記乗算モジュール群の結合によって得られた回路に対し、前記乗算モジュールの第1の入力部に前記第1のレジスタ手段の出力が接続され、前記乗算モジュールの第2の入力部に前記第2のレジスタ手段の出力が接続され、前記乗算モジュールの第1の出力部に前記第1のレジスタ手段の入力が接続され、前記乗算モジュールの第2の出力部に前記第2のレジスタ手段の入力が接続された乗法逆元演算回路であって、前記乗算モジュールの数n(nは、自然数)は、 [log 2 (m-1)+1] 以下とされ、制御手段により、i段目(n≧i≧1)の乗算モジュールに対して、サイクル数が所定の数q(qは自然数)となった場合に、p={n(q−1)+i}として、第1のべき乗演算手段にr=2 p-1 、s=2 としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod (2 p-1 )}+1、s=2 としてs乗を計算させる第2の制御信号とを入力し、前記i段目の乗算モジュールの選択手段には、(m−1)の2進表現でのビットp−1が1の場合には前記i段目の乗算モジュールの第2の出力に前記第2の乗算手段の出力を与え、(m−1)の2進表現でのビットp−1が1でない場合には前記i段目のモジュールの第2の出力に、前記i段目の乗算モジュールへの第2の入力部からのmビットデータを与える第3の制御信号を入力する、乗法逆元演算回路。
  4. [log2(m-1)+1]個の請求項1の乗算モジュールと、
    それぞれの前記乗算モジュールを制御するための第1の制御信号群と、第2の制御信号群と、第3の制御信号群とを与える制御手段とを含み、
    前記乗算モジュールのそれぞれ第1の出力が次の前記乗算モジュールの第1の入力部に接続され、前記乗算モジュールのそれぞれ第2の出力が次の前記乗算モジュールの前記第2の入力部に接続されており、
    前記制御手段は、所定段目k(kは、自然数)の乗算モジュールに対して、r=2 -1、s=2としてs乗を計算させる第1の制御信号を第1のべき乗演算手段に与え、r={(m−1)mod(2 -1)}+1、s=2としてs乗を計算させる第2の制御信号を第2のべき乗演算手段に与え、m−1の2進表現におけるビットk−1が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として第2の入力部から入力されるmビットデータを与える、乗法逆元演算回路。
  5. ガロア体GF(2m)(m≧1)上のmビットデータを乗算するための第1の入力部と第2の入力部とを含む乗算モジュールの制御方式であって、
    第1および第2のべき乗演算手段に前記第1の入力部からの第1のmビットデータを入力する段階と、
    第1の乗算手段に前記第1のmビットデータおよび前記第1のべき乗演算手段からの出力を入力する段階と、
    第2の乗算手段に前記第2の入力部からの第2のmビットデータおよび前記第2のべき乗演算手段からの出力を入力する段階と、
    選択手段に前記第2の乗算手段の出力信号および前記第2のmビットデータを入力する段階と、
    制御回路から前記第1の乗算手段と、前記第2の乗算手段と、前記選択手段とにそれぞれ制御信号を出力する段階とを含み、
    第1の初期値が設定でき前記乗算モジュールの第1の出力信号が入力される、第1のレジスタ手段を与える段階と、
    第2の初期値が設定でき前記乗算モジュールの第2の出力信号が入力される、第2のレジスタ手段を与える段階とを含み、
    前記第1のべき乗演算手段に第1の制御信号を入力し、前記第2のべき乗演算手段に第2の制御信号を入力し、前記選択手段に該選択手段の出力を制御するための第3の制御信号を入力し、前記第1の乗算手段に第1の出力信号を出力させ、前記選択手段に第2の出力信号を出力させ、サイクル数が所定の数k(kは、自然数)となった場合に第1のべき乗演算手段にr=2 -1 、s=2 としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2 -1 )}+1、s=2 としてs乗を計算させる第2の制御信号とを入力し、前記乗算モジュールの選択手段には、(m−1)の2進表現でのビットk−1が1の場合には前記第2のレジスタ手段の入力に前記第2の乗算手段の出力を入力し、(m−1)の2進表現でのビットk−1が1でない場合には前記第2のレジスタ手段の入力に前記第2のレジスタ手段の出力を入力するための第3の制御信号を入力する段階を含む、乗算モジュールの制御方式。
  6. 請求項1の複数の乗算モジュールを与える段階と、
    前記第1のレジスタ手段の出力が前記乗算モジュールの第1の入力部に接続され、前記第2のレジスタ手段の出力が前記乗算モジュールの第2の入力部に接続され、前記第2のレジスタ手段が、前記第1、第2、第3の制御信号に応じて前記第1の初期値の乗法逆元を 与える請求項5に記載の乗法逆元演算回路の制御方式。
  7. 前記乗算モジュールの数n(nは、自然数)は、[log2(m-1)+1]以下とされる、請求項に記載の乗法逆元演算回路の制御方式。
  8. i段目(n≧i≧1)の乗算モジュールに対して、サイクル数が所定の数q(qは自然数)となった場合に、p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算させる第2の制御信号とを入力し、前記乗算モジュールの選択手段には、(m−1)の2進表現でのビットp−1が1の場合には前記i段目の乗算モジュールの第2の出力に前記第2の乗算手段の出力を与え、(m−1)の2進表現でのビットp−1が1でない場合には前記i段目の乗算モジュールの第2の出力に、前記i段目の乗算モジュールの第2の入力部からのmビットデータを与える第3の制御信号を入力する、請求項5、6または7に記載の乗法逆元演算回路の制御方式。
  9. 請求項1に記載の乗算モジュールを含む、装置。
  10. 請求項2、3または4に記載の乗法逆元演算回路を含む装置。
  11. 前記乗算モジュールの数n(nは、自然数)は、
    [log2(m-1)+1]以下とされる乗法逆元演算回路を含む請求項9または10に記載の装置。
  12. 前記制御手段により、i段目(n≧i≧1)の乗算モジュールに対して、サイクル数が所定の数q(qは自然数)となった場合に、p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算する第2の制御信号とを入力し、前記i番目の乗算モジュールの選択手段には、(m−1)の2進表現でのビットp−1が1の場合には前記i番目の乗算モジュールの第2の出力に前記第2の乗算手段の出力を与え、(m−1)の2進表現でのビットp−1が1でない場合には前記i番目の乗算モジュールの第2の出力を、前記i段目の乗算モジュールの第2の入力部からのmビットデータとする第3の制御信号を入力する乗法逆元演算回路を含む、請求項11に記載の装置。
  13. ガロア体GF(2m)(m≧1)上のmビットデータを乗算するため、第1の入力部からmビットデータおよびべき乗演算手段からの出力を乗算手段に入力する段階と、第2の入力部からのmビットデータおよび前記べき乗演算手段からの出力を乗算手段に入力する段階とを含む乗法逆元演算回路の制御方式であって、
    p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算する第2の制御信号とを入力する段階と、
    m−1の2進表現におけるビットk−1(kは、自然数)が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として前記第2の入力部から入力されるmビットデータを与える段階とを含む、乗法逆元演算回路の制御方式。
  14. ガロア体GF(2m)(m≧1)上のmビットデータを乗算するため、第1の入力部からmビットデータおよびべき乗演算手段からの出力を乗算手段に入力する段階と、第2の入力部からのmビットデータおよび前記べき乗演算手段からの出力を乗算手段に入力する段階とを含む乗算方法を実行させるためのソースコードが記録されたコンピュータ可読な記録媒体であって、該記録媒体は、コンピュータに対して、
    p={n(q−1)+i}として、第1のべき乗演算手段にr=2p-1、s=2としてs乗を計算させる第1の制御信号と、第2のべき乗演算手段にr={(m−1)mod(2p-1)}+1、s=2としてs乗を計算する第2の制御信号とを入力するステップと、
    m−1の2進表現におけるビットk−1(kは、自然数)が1の場合に選択手段の出力として第2の乗算手段の出力を与え、m−1の2進表現におけるビットk−1が1ではない場合には選択手段の出力として前記第2の入力部から入力されるmビットデータを与えるステップと、を実行させる記録媒体。
  15. 請求項2〜4のいずれか1項に記載の乗法逆元演算回路を含む、暗号装置。
  16. 請求項2〜4のいずれか1項に記載の乗法逆元演算回路を含む、誤り訂正復号器。
JP2000185582A 2000-06-21 2000-06-21 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器 Expired - Fee Related JP3659320B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000185582A JP3659320B2 (ja) 2000-06-21 2000-06-21 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器
US09/990,021 US6912558B2 (en) 2000-06-21 2001-11-21 Multiplication module, multiplicative inverse arithmetic circuit, multiplicative inverse arithmetic control method, apparatus employing multiplicative inverse arithmetic circuit, and cryptographic apparatus and error correction decoder therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000185582A JP3659320B2 (ja) 2000-06-21 2000-06-21 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器

Publications (2)

Publication Number Publication Date
JP2002023999A JP2002023999A (ja) 2002-01-25
JP3659320B2 true JP3659320B2 (ja) 2005-06-15

Family

ID=18685889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000185582A Expired - Fee Related JP3659320B2 (ja) 2000-06-21 2000-06-21 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器

Country Status (2)

Country Link
US (1) US6912558B2 (ja)
JP (1) JP3659320B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4676071B2 (ja) * 2001-02-13 2011-04-27 富士通株式会社 べき乗剰余演算方法、逆数演算方法およびそれらの装置
US20030219118A1 (en) * 2002-05-23 2003-11-27 Beverly Harlan T. Optimized multiplicative inverse
CN100373372C (zh) * 2002-09-17 2008-03-05 联发科技股份有限公司 自动功率控制回路的误差校正系统和方法
JP2004126057A (ja) * 2002-09-30 2004-04-22 Toshiba Corp 逆元計算装置及び逆元計算方法
US7089276B2 (en) * 2002-10-18 2006-08-08 Lockheed Martin Corp. Modular Galois-field subfield-power integrated inverter-multiplier circuit for Galois-field division over GF(256)
JP3818263B2 (ja) 2003-01-28 2006-09-06 日本電気株式会社 Aes暗号処理装置、aes復号処理装置、aes暗号・復号処理装置、aes暗号処理方法、aes復号処理方法、および、aes暗号・復号処理方法
KR100652376B1 (ko) * 2004-07-29 2006-12-01 삼성전자주식회사 분리 연산 가능한 구조를 가지는 모듈러 곱셈기와 이를포함하는 암호화 시스템
US8443028B2 (en) * 2009-06-02 2013-05-14 Exelis Inc. Circuits and methods for performing exponentiation and inversion of finite field elements
GB2576536B (en) * 2018-08-22 2021-05-05 Imagination Tech Ltd Float division by constant integer

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950010452B1 (ko) * 1992-11-30 1995-09-18 삼성전자 주식회사 유한체상의 역수 산출방법 및 장치
WO1995012845A1 (en) * 1993-11-04 1995-05-11 Cirrus Logic, Inc. Finite field inversion
FR2723455B1 (fr) * 1994-08-05 1996-10-31 Sgs Thomson Microelectronics Circuit d'inversion d'elements d'un corps de galois
US5812438A (en) * 1995-10-12 1998-09-22 Adaptec, Inc. Arithmetic logic unit and method for numerical computations in galois fields
US6052704A (en) * 1998-01-12 2000-04-18 National Science Council Exponentiation circuit and inverter based on power-sum circuit for finite field GF(2m)
KR100304193B1 (ko) * 1998-02-06 2001-11-22 윤종용 리드솔로몬복호기의역수구현회로
US6760742B1 (en) * 2000-02-18 2004-07-06 Texas Instruments Incorporated Multi-dimensional galois field multiplier
US6779011B2 (en) * 2001-02-28 2004-08-17 Maxtor Corporation System for performing multiplication and division in GF(22M)

Also Published As

Publication number Publication date
US6912558B2 (en) 2005-06-28
US20020032711A1 (en) 2002-03-14
JP2002023999A (ja) 2002-01-25

Similar Documents

Publication Publication Date Title
Bailey et al. Optimal extension fields for fast arithmetic in public-key algorithms
Yang et al. A new RSA cryptosystem hardware design based on Montgomery's algorithm
Ding et al. High-speed ECC processor over NIST prime fields applied with Toom–Cook multiplication
US7805479B2 (en) Scalable, faster method and apparatus for montgomery multiplication
JP2744091B2 (ja) 有限体の乗法的逆数元を計算するデータ処理方法及び装置
Groszschaedl et al. Instruction set extension for fast elliptic curve cryptography over binary finite fields GF (2/sup m/)
Kim et al. FPGA implementation of high performance elliptic curve cryptographic processor over GF (2163)
JP3659320B2 (ja) 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
Machhout et al. Efficient hardware architecture of recursive Karatsuba-Ofman multiplier
Hutter et al. A versatile and scalable digit-serial/parallel multiplier architecture for finite fields GF (2/sup m/)
US7240204B1 (en) Scalable and unified multiplication methods and apparatus
US6377969B1 (en) Method for multiplication in Galois fields using programmable circuits
Abdulrahman et al. High-speed hybrid-double multiplication architectures using new serial-out bit-level mastrovito multipliers
Halbutogullari et al. Parallel multiplication in GF (2 k) using polynomial residue arithmetic
Rashidi et al. High-speed hardware implementations of point multiplication for binary Edwards and generalized Hessian curves
Namin et al. A new finite-field multiplier using redundant representation
O'Rourke et al. Achieving NTRU with Montgomery multiplication
KR100670780B1 (ko) 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법
Kadu et al. Hardware implementation of efficient elliptic curve scalar multiplication using vedic multiplier
Sutter et al. Comparative study of SRT-dividers in FPGA
Namin et al. A High-Speed Word Level Finite Field Multiplier in ${\BBF} _ {2^ m} $ Using Redundant Representation
Koppermann et al. Fast FPGA implementations of Diffie-Hellman on the Kummer surface of a genus-2 curve
US20050246406A9 (en) Emod a fast modulus calculation for computer systems
Li et al. Low-complexity versatile finite field multiplier in normal basis

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040917

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20050301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050308

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090325

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees