JP2002215022A - Finite field data recording medium, finite field data operation method, its device, and its program - Google Patents

Finite field data recording medium, finite field data operation method, its device, and its program

Info

Publication number
JP2002215022A
JP2002215022A JP2001007866A JP2001007866A JP2002215022A JP 2002215022 A JP2002215022 A JP 2002215022A JP 2001007866 A JP2001007866 A JP 2001007866A JP 2001007866 A JP2001007866 A JP 2001007866A JP 2002215022 A JP2002215022 A JP 2002215022A
Authority
JP
Japan
Prior art keywords
finite field
data
word
bits
bit
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
JP2001007866A
Other languages
Japanese (ja)
Inventor
Kazumaro Aoki
和麻呂 青木
Tetsutaro Kobayashi
鉄太郎 小林
Fumisato Hoshino
文学 星野
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 JP2001007866A priority Critical patent/JP2002215022A/en
Publication of JP2002215022A publication Critical patent/JP2002215022A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To quickly process the operation of a finite field GF(2m) in bulk by software. SOLUTION: The j-th bit, for example, the fourth bit a2,4 (0<=j<m) of the i-th element, for example, the second element (0<=i<w) out of w elements a0 to aw-1 of the field GF(2m) shown in Figure 1A is arranged in the (i=4)th bit of the (j=4)th word as shown in Figure 1B to convert the w elements to m words of w bits per word. One word is the processing unit of a computer. Operation is performed with data converted in this manner.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は情報セキュリティ
技術や符号技術で用いられる標数2の有限体上の演算、
特に楕円曲線上の演算を用いて構成される楕円暗号に適
用される有限体データ記録媒体、有限体データ演算方法
及びその装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an operation on a finite field of characteristic 2 used in information security technology and coding technology,
In particular, the present invention relates to a finite field data recording medium, a finite field data calculation method, and a finite field data calculation method applied to elliptic cryptography configured using operations on elliptic curves.

【0002】[0002]

【従来の技術】近年、インターネットなどの発達により
様々な情報を公衆回線を用いて、やり取りすることが増
えた。公衆回線は誰でも利用できることから中継情報の
盗聴・改竄(かいざん)などを容易に行なうことができ
る。盗聴のような悪意ある行為に対抗するためには情報
セキュリティ技術が有効である。従来、情報セキュリテ
ィ技術のうち、公開鍵系方式の実現に冪(べき)乗剰余
演算がよく用いられてきたが、近年、鍵と呼ばれる秘密
に保持すべき情報を少なくできることや、高速性などか
ら有限体上の楕円曲線のなす群を用いた方式、すなわち
楕円暗号が注目されている。
2. Description of the Related Art In recent years, with the development of the Internet and the like, various types of information have been exchanged using a public line. Since the public line can be used by anyone, the relay information can be easily eavesdropped or falsified. Information security technology is effective to counter malicious acts such as eavesdropping. Conventionally, among information security technologies, exponentiation modular exponentiation has often been used for realizing a public key system. In recent years, however, the number of information to be kept secret, called a key, can be reduced, and the speed is high. Attention has been paid to a method using a group formed by elliptic curves on a finite field, that is, elliptic encryption.

【0003】暗号に用いる楕円曲線は定義体と呼ばれる
有限体GF(q)上で定義される楕円曲線E/GF
(q)の、GF(qm)有理点からなる群E(GF
(qm))(qは素数の冪でmは1以上)を用いること
が殆んどである。楕円曲線のなす群E(GF(qm))
の演算は、有限体GF(qm)の四則演算により行なわ
れる。つまり、有限体の演算を高速に行なうことが、楕
円暗号の高速化につながる。一方、文献「Biham:“A F
ast New DES Implementation in Software,”pp. 260-2
72,Fast Software Encryption,4th International Work
shop,FSE'97,Lecture Notes in Computer Science 126
7,1997」(以下文献Bと呼ぶ)で、共通鍵ブロック暗号
DESの処理を高速にソフトウェアで実現する方法が提
案されている。DESはハードウェアで高速に処理でき
るように設計された暗号であり、64ビットCPUで実
装することを考えると、64ビット同時に処理できる命
令があるにも関わらず6ビット単位や4ビット単位など
64ビットに比べて非常に少ないビット数ずつしか処理
できず、64ビットCPUの性能を生かすことが従来は
できなかった。文献Bでは64ビットCPUを64並列
のSIMD型1ビットCPUとみなすことにより、64
個のデータを一度に処理することにより、無駄なく64
ビットCPUの性能を生かすことに成功している。その
後、この方法はビットスライス法と呼ばれるようになっ
た。
An elliptic curve used for encryption is an elliptic curve E / GF defined on a finite field GF (q) called a definition field.
The group E (GF) of (q) consisting of GF (q m ) rational points
(Q m )) (q is a power of a prime number and m is 1 or more) in most cases. Group E of elliptic curves (GF (q m ))
Is performed by the four arithmetic operations of the finite field GF (q m ). In other words, performing a finite field operation at high speed leads to speeding up of elliptic encryption. On the other hand, the document “Biham:“ AF
ast New DES Implementation in Software, ”pp. 260-2
72, Fast Software Encryption, 4th International Work
shop, FSE'97, Lecture Notes in Computer Science 126
7, 1997 "(hereinafter referred to as Document B) proposes a method for realizing the processing of the common key block cipher DES by software at high speed. DES is a cipher designed to be processed at high speed by hardware. Considering that a DES is implemented by a 64-bit CPU, even though there are instructions that can process 64 bits simultaneously, 64 bits such as 6 bits or 4 bits are used. Only a very small number of bits can be processed compared to the number of bits, and the performance of a 64-bit CPU cannot be conventionally utilized. In Document B, the 64-bit CPU is regarded as a 64-parallel SIMD type 1-bit CPU.
By processing all data at once, 64
It has succeeded in utilizing the performance of the bit CPU. Later, this method came to be called the bit slice method.

【0004】[0004]

【発明が解決しようとする課題】楕円暗号に用いられる
有限体として、従来、ハードウェアで有利となるq=2
の場合か、ソフトウェアで有利なm=1でqが素数の場
合が主に用いられてきた。ソフトウェアでもq=2の場
合を実現するための様々な方法が提案されてきたが、ハ
ードウェアでの実現に比べて性能が大幅に落ちる場合が
あった。従って、q=2の場合、すなわち標数2の有限
体を用いた楕円暗号をサーバー上で処理する場合などに
は、大量の有限体四則演算処理が必要なことから特別な
ハードウェアを必要とし、ソフトウェアのみで処理する
ことは困難であった。即ち、有限体GF(2m)の要素
は長さmのビット列で表すことができる。つまり、従来
法ではwビットCPU([A]はAより大きい最小整数
を示す)で、有限体GF(2 m)のw個の要素は、一要
素を[m/w]個のレジスタやメモリに納めたものをw
個並置していた。例えば有限体GF(2163)(m=1
63)の64個は図4に示すようにCPUの処理単位で
ある1ワードがw=64ビットの場合、各有限体の要素
は1ワード(64ビット)の3つのレジスタに分割され
てそれぞれ格納される。従って、3つ目のレジスタに格
納された最上位ビットを含む部分については29ビット
が無駄になっており、それだけ不用な演算をすることに
なる。また有限体の要素と要素の例えば乗算の場合は1
ワードレジスタ中の1つのビットを取出して、演算する
必要が生じるが、その1ビットの選出にはシフトやアン
ドを実行して行うため処理が面倒であった。
SUMMARY OF THE INVENTION Used for elliptic cryptography
Conventionally, as a finite field, q = 2 which is advantageous in hardware
Or in the case where m = 1 and q is a prime number
Combination has been used mainly. Q = 2 in software
Various methods have been proposed for realizing
Performance may be significantly reduced compared to hardware implementation.
there were. Therefore, if q = 2, that is, a finite characteristic 2
When processing elliptic cryptography using a field on a server, etc.
Is special because it requires a large amount of finite field arithmetic operations.
Requires hardware and is handled by software only
It was difficult. That is, the finite field GF (2m) Element
Can be represented by a bit string of length m. In other words,
Modulo w-bit CPU ([A] is the smallest integer greater than A
), The finite field GF (2 mW) elements are necessary
The element stored in [m / w] registers and memory is w
It was juxtaposed. For example, the finite field GF (2163) (M = 1
63) are 64 processing units of CPU as shown in FIG.
If one word has w = 64 bits, the elements of each finite field
Is divided into three registers of one word (64 bits)
Are stored respectively. Therefore, the third register has
29 bits for the part containing the most significant bit stored
Is wasted, and doing unnecessary calculations
Become. In the case of multiplication of elements of a finite field, for example, 1
Extract one bit from word register and operate
However, it is necessary to shift or un-
The process was troublesome because it was executed by executing the command.

【0005】この発明の目的では、標数2の有限体の演
算を大量にかつ高速にソフトウェアで処理することを可
能とするデータ構造記録媒体、有限体データ演算方法及
びその装置を提供することにある。
SUMMARY OF THE INVENTION It is an object of the present invention to provide a data structure recording medium, a finite field data calculation method and a finite field data calculation method capable of processing a large number of finite fields of characteristic 2 in large quantities and at high speed by software. is there.

【0006】[0006]

【課題を解決するための手段】標数2の有限体の演算は
ハードウェア向きであることから、ビットスライス法に
より、ソフトウェアで処理を効率的に実現することがで
きる。この発明はビットスライス法による処理を可能と
するためにデータ構造を工夫したものである。この発明
では、例えば図1Aに示すようなmビットで表現され有
限体GF(2 m)のw個の要素a0 ,a1 ,…,aw を、
そのi番目(0≦i<w)のGF(2m)要素のjビッ
ト目(0≦j<m)を、図1Bに示すようにj番目のワ
ードのiビット目に配置する。例えば図1A中のi=2
番目の要素a2 のj=4番目のビットa2,4 は、図2B
中のj=4番目のワードのi=2ビット目に配置され
る。つまり各要素a0 ,…,aw-1 のjビット目によ
り、j番目のワードのwビットが構成される。
The operation of a finite field of characteristic 2 is
Because it is suitable for hardware, the bit slice method
More efficient processing can be realized by software.
Wear. The present invention enables processing by the bit slice method.
The data structure is devised in order to perform The invention
Is represented by m bits as shown in FIG. 1A, for example.
Restricted field GF (2 m) W elements a0, a1, ..., awTo
The ith (0 ≦ i <w) GF (2m) Element j bit
(G) (0 ≦ j <m) as shown in FIG.
It is placed at the i-th bit of the code. For example, i = 2 in FIG. 1A
The element aTwoJ = fourth bit a of2,4 Figure 2B
Located at the i = 2 bit of the j = fourth word in
You. That is, each element a0, ..., aw-1According to the j-th bit of
Thus, w bits of the j-th word are configured.

【0007】ここで、iとjについては、一つのGF
(2m)の要素ごとにワード中の同じビット位置に配置
されている限り、どのような組合せをとっても問題な
い。つまり、要素a0 ,…,aw-1 の各jビット目で、必
ずしもj番目のワードを構成する必要はなく、要素
0 ,…,aw-1 の各jビット目は、何れのワードに配置
してもよい。ただし、そのワード内のビット配列順は、
常に一定とする。これを一般的に表わすと、a0 ,…,a
w-1 を、{0,1,…,w−1}の置換pを用い、aの
ビット位置j(0≦j<m)毎にwビット ap(w-1),j,ap(w-2),j,…,ap(0),j をmワード中の1ワードとして配置するようにすればよ
い。
Here, for i and j, one GF
As long as they are arranged at the same bit position in the word for each element of (2 m ), there is no problem in any combination. In other words, the elements a 0, ..., at each j-th bit of a w-1, it is not necessary to configure the j-th word, the elements a 0, ..., each j-th bit of a w-1, any of the May be placed in words. However, the bit arrangement order in that word is
Always be constant. This can be generally expressed as a 0 , ..., a
w−1 is replaced by w bits a p (w−1) , j, a p at each bit position j (0 ≦ j <m) using the permutation p of {0, 1,. (w-2) , j,..., a p (0) , j may be arranged as one word out of m words.

【0008】所でmは1以上の整数であるが、通常は8
以上であり、例えば暗号の分野では160〜256がよ
く使われ、wも1以上の整数であるが、使用するコンピ
ュータの処理単位である1ワードのビット数と等しい
か、これよりわずか小さい値でもよく、一般的には、現
在の所、32や64、最近では128も用いられる。こ
の発明ではこのように有限体GF(2m)のw個の要素
が、1ワードにwビットずつ割当てられたmワードに変
換されるため、ビットスライス法による処理が可能で、
ソフトウェアでの処理を効率的に行うことができる。
Here, m is an integer of 1 or more, but usually 8
For example, 160 to 256 are often used in the field of cryptography, and w is an integer of 1 or more. However, even if the value is equal to or slightly smaller than the number of bits of one word as a processing unit of a computer to be used. Often, in general, 32 or 64 at present, and more recently 128 are also used. According to the present invention, since the w elements of the finite field GF (2 m ) are converted into m words in which w bits are assigned to one word, processing by the bit slice method is possible.
Software processing can be performed efficiently.

【0009】[0009]

【発明の実施の形態】コンピュータにおいては、例えば
図2に示すように、入出力インタフェース11を介して
データが入力され、一旦メモリ12に記憶された後、プ
ログラムメモリ13内のプログラムをCPU(又はプロ
セッサ)14が実行し、その結果を入出力インタフェー
ス11を介して外部へ出力することがよく行われる。こ
の際に、この実施形態では、メモリ12内のw個の有限
体GF(2m)の要素を、変換プログラムメモリ15内
の変換プログラムをCPU14に実行させて、要素
0 ,…,aw-1 の各jビット目を、mワード中の何れ
かのワードに配置する、例えば図1Aに示したデータ
を、図1Bに示したデータに変換して例えばメモリ16
に格納し、メモリ16内の変換されたデータを用いて、
メモリ13のプログラムを実行させる。この場合のプロ
グラムは、変換されたデータに適するように記述されて
いるものとする。その処理結果は必要に応じてこれに対
して逆変換プログラムを実行し、mビットw個の要素の
データに戻して外部へ出力する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS In a computer, for example, as shown in FIG. 2, after data is input via an input / output interface 11 and temporarily stored in a memory 12, a program in a program memory 13 is transferred to a CPU (or a CPU). (Processor) 14 and often outputs the result to the outside via the input / output interface 11. At this time, in this embodiment, the CPU 14 executes the conversion program in the conversion program memory 15 to convert the w elements of the finite field GF (2 m ) in the memory 12 into the elements a 0 ,. Each j-th bit of -1 is arranged in any one of m words. For example, the data shown in FIG. 1A is converted into the data shown in FIG.
And using the converted data in the memory 16,
The program in the memory 13 is executed. It is assumed that the program in this case is described so as to be suitable for the converted data. The processing result is subjected to an inverse conversion program as necessary, and is returned to data of m bits and w elements and output to the outside.

【0010】この場合メモリ16がこの発明による有限
体データ記録媒体を構成し、このメモリ16に前述に変
換されたデータが複数記憶されていてもよい。以下のこ
の発明の実施形態では、w個のGF(2m)の要素aに
ついて、図1に示したようにi番目(0≦i<w)の要
素のjビット目(0≦j<m)が、j番目のワードのi
ビット目(aj [i])に配置されているとする。ま
た、原理的にこの発明は以下の実施形態に関わらずハー
ドウェアで利用可能な計算法全てに適用可能である、つ
まりそのハードウェアによる計算法を、この発明によれ
ばソフトウェアで容易に実現可能である。 第1の実施形態[加算] 各w個の要素のGF(2m)のデータがmワードのデー
タに変換されたデータAとBとの和Cは Cj ←Aj(+)Bj 各j=0,1,…,m−1に
対し、 (+)はビットごとの排他的論理和 で求まる。この場合の演算回数はm回である。従来のデ
ータ形式によればw×[m/w]となり、m/wの小数
点以下切上げに対応する分、演算回数が少なくなる。
In this case, the memory 16 may constitute a finite field data recording medium according to the present invention, and the memory 16 may store a plurality of data converted as described above. In the following embodiment of the present invention, the j-th bit (0 ≦ j <m) of the i-th (0 ≦ i <w) element as shown in FIG. 1 is used for w elements GF (2 m ). ) Is the j-th word i
Assume that it is arranged at the bit (a j [i]). Also, in principle, the present invention is applicable to all calculation methods available in hardware regardless of the following embodiments. That is, the calculation method by hardware can be easily realized by software according to the present invention. It is. First Embodiment [Addition] The sum C of data A and B obtained by converting GF (2 m ) data of each w elements into m-word data is represented by C j ← A j (+) B j For j = 0, 1,..., m−1, (+) is obtained by exclusive OR for each bit. The number of calculations in this case is m. According to the conventional data format, it becomes w × [m / w], and the number of calculations is reduced by the amount corresponding to the rounding up of m / w below the decimal point.

【0011】第2の実施形態[自乗・正規基底] w個のGF(2m)の要素が正規基底表現されている、
すなわち正規基底の生成元αを用い、i番目の要素がΣ
j=0 m-1j[i](α2jである場合には、自乗Bは1
ビットの巡回シフトに過ぎないので、 Bj ←Aj-1modm j=0,1,…,m−1 で求まる。つまりj−1mod m番目のワードのデータを
j番目のワードに移せばよい。このことは自乗の結果を
後続の演算で使う場合は、巡回シフトはどのワードかを
示す添字の読み換えに過ぎないので、適切に添字を処理
するようにプログラムを記述すれば、計算量0で自乗演
算を実現できる。従来のデータでは1ビット巡回シフト
の命令を実行させる必要があり、つまり、計算を必要と
した。例えばC=A2 +Bを求める場合は Cj ←Aj-1modm(+)Bj j=0,1,…,m−1
の各ワードに対して演算すればよく、加算と同様の計算
量で求まる。ここでは、正規基底をあげたが、多項式基
底やその他の基底も若干は計算効率が落ちるが利用可能
である。
Second Embodiment [Square / Normal Basis] w elements of GF (2 m ) are represented by a regular basis.
That is, the generator i of the normal basis is used, and the i-th element is Σ
When j = 0 m-1 A j [i] (α 2 ) j , the square B is 1
Since it is only a cyclic shift of bits, it can be obtained by B j ← A j-1modm j = 0, 1,..., M -1. That is, the data of the (j−1) m-th word may be moved to the j-th word. This means that when the result of the square is used in the subsequent operation, the cyclic shift is merely a replacement of the subscript indicating which word, so if the program is described so as to process the subscript appropriately, the calculation amount is 0. A square operation can be realized. In conventional data, it is necessary to execute a 1-bit cyclic shift instruction, that is, a calculation is required. For example, when C = A 2 + B is obtained, C j ← A j-1modm (+) B j j = 0, 1 ,.
Can be calculated for each of the words, and can be obtained with the same calculation amount as the addition. Here, the normal base is given, but a polynomial base and other bases can be used although the calculation efficiency is slightly lowered.

【0012】第3の実施形態[乗算・多項式基底・教科
書法] w個のGF(2m)の要素が多項式基底表現されてい
る、すなわちGF(2m)がGF(2)[α](αはG
F(2)上の既約多項式f(x)=Σj=0 m jj(e
m =1)の根)と表現され、Aのi番目の要素がΣj=0
m-1j[i]αjである場合を考える。乗算はハードウ
ェアによる処理と同様に、先ず多項式の積を求め、次に
mod f(x)を計算することにより求まる。従ってC=
ABは、まず c′j←(+)Ak h j=0,1,…,2m−2について …(1) を計算する。この式はj=k+hを満たす全てのkとh
の組合せについてAk h を計算し、その結果を加算す
ることを意味する。
Third Embodiment [Multiplication / Polynomial Base / Subject]
Writing] w GF (2m) Elements are represented by polynomial basis
That is, GF (2m) Is GF (2) [α] (α is G
The irreducible polynomial f (x) = Σ on F (2)j = 0 mejxj(E
m= 1), and the i-th element of A is Σj = 0
m-1Aj[I] αjConsider the case Multiplication is a hardware
First, find the product of the polynomials, then
It is obtained by calculating mod f (x). Therefore C =
AB first, c 'j← (+) AkBh For j = 0, 1,..., 2m−2,... (1) is calculated. This equation shows that all k and h satisfy j = k + h.
About the combination of AkB hAnd add the result
Means that

【0013】例えば2つの多項式の乗算は図5に示す通
りである。この計算結果の例えばα2 の係数について見
ればk+h=2を満たす全てのkとhとの組合せについ
てdk h を計算した結果の和である。αの他の項につ
いてもそのような関係になっている。従って式(1)の
計算結果c′j はA×Bにおけるαj の各係数を求めて
いることになる。次にこのようにして求めたc′jと前
記f(x)の式の中のejを用いて、modf(x)の計算
を、図3に示す手順で行う。まずjを2m−2に初期化
し(S1)、またkを0とし(S2)、c′j+k-m
c′j+k-m(+)c′j k を計算し、その結果をc′
j+k-mとする(S3)。次にkを+1して更新し(S
4)、そのkがm以下であれば(S5)、ステップS3
に戻り、kがm以下でなければ、jを−1し(S6)、
そのjがm以上であれば(S7)、ステップS2に戻
り、jがm以上でなければ終了とする。このようにして
得られたc′jはCj(0≦j<m)となる。
For example, the multiplication of two polynomials is as shown in FIG. Is the sum of the results of calculating the d k g h for the combination of all the k and h satisfying k + h = 2 Looking at the example alpha 2 of the coefficients of the calculation result. Such a relationship also holds for the other terms of α. Therefore, the calculation result c ′ j of the equation (1) means that each coefficient of α j in A × B is obtained. Next, the modf (x) is calculated by the procedure shown in FIG. 3 by using c ′ j thus obtained and e j in the equation of f (x). First, j is initialized to 2m−2 (S1), k is set to 0 (S2), and c ′ j + km
c ′ j + km (+) c ′ j e k is calculated, and the result is c ′ j + km
j + km (S3). Next, k is incremented by 1 and updated (S
4) If k is equal to or less than m (S5), step S3
If k is not less than m, j is decremented by 1 (S6),
If j is not less than m (S7), the process returns to step S2, and if j is not more than m, the process is terminated. C ′ j thus obtained is C j (0 ≦ j <m).

【0014】従来においてはワード内のビットを選択し
てする処理が必要であり、その選択のための処理を必要
としたが、この発明の変換されたデータによれば、各ワ
ードの各ビットは、変換前の各要素の1つのビットと対
応しており、ワードを選択するだけで、ワード中のビッ
ト選択を行う必要がなく、AとBの要素間の同一ビット
位置についての演算を並列に同時に行え、処理が簡単と
なる。ここでは、一般的な場合をあげたが、基底として
正規基底やその他の基底、多項式の乗算にKarats
uba法や、高速フーリエ変換(FFT)を用いる方
法、mod f(x)を高速に計算するため、f(x)とし
て3項式や5項式を用いる方法など、従来ハードウェア
を用いて効率的に演算する手法について、この発明の変
換データを用いることによりソフトウェアにより効率的
に演算することができる。
Conventionally, processing for selecting bits in a word is required, and processing for the selection is required. According to the converted data of the present invention, each bit of each word is , Corresponds to one bit of each element before conversion, and only by selecting a word, there is no need to select a bit in the word, and operations on the same bit position between the A and B elements are performed in parallel. This can be done at the same time, and the processing becomes simple. Here, a general case is given, but Karats is used as a basis in multiplication of a normal basis, another basis, or a polynomial.
Conventional hardware, such as the Uba method, a method using the fast Fourier transform (FFT), and a method using a three- or five-term equation as f (x) to calculate mod f (x) at high speed. With respect to the method of performing the computation, the computation can be efficiently performed by software by using the converted data of the present invention.

【0015】第4の実施形態[表現変換] 従来のデータから、この発明のデータへの変換方法に
は、例えば、文献「May,Penna,Clark:“An Implementa
tion of Bitsliced DES on the Pentium MMXTM Process
or,”pp.112-122,Information Security and Privacy,5
th AustralasianConference,ACISP 2000,Lecture Notes
in Computer Science 1841,2000」の115頁に紹介さ
れている。 SWAPMOVE(A,B,N,M) T=((A》N)(+)B)&M; A》NはAをNビ
ット右シフトを表す。 B=B(+)T; A=A(+)(T《N); T《NはTをNビット左シ
フトを表す。 を高速フーリエ変換で用いられるバタフライ演算のよう
に用いると、効率的に変換できる。
Fourth Embodiment [Conversion of Expression] A method for converting conventional data into data of the present invention is described in, for example, the document "May, Penna, Clark:" An Implementa
tion of Bitsliced DES on the Pentium MMX TM Process
or, ”pp.112-122, Information Security and Privacy, 5
th AustralasianConference, ACISP 2000, Lecture Notes
in Computer Science 1841, 2000, page 115. SWAPMOVE (A, B, N, M) T = ((A >> N) (+) B) &M; A >> N represents A shifted right by N bits. B = B (+) T; A = A (+) (T <<N); T << N indicates that T is shifted left by N bits. Is efficiently used when is used like the butterfly operation used in the fast Fourier transform.

【0016】例えば、w=4、m=4の場合は、 SWAPMOVE(a0 ,a1 ,1,0101(2)) SWAPMOVE(a2 ,a3 ,1,0101(2)) SWAPMOVE(a0 ,a2 ,2,0011(2)) SWAPMOVE(a1 ,a3 ,2,0011(2)) とすればよい。For example, when w = 4 and m = 4, SWAPMOVE (a 0 , a 1 , 1,0101 (2) ) SWAPMOVE (a 2 , a 3 , 1,0101 (2) ) SWAPMOVE (a 0 , a 2 , 2,0011 (2) ) SWAPMOVE (a 1 , a 3 , 2,0011 (2) ).

【0017】w=8、m=8の場合は SWAPMOVE(a0 ,a1 ,1,01010101(2)) SWAPMOVE(a2 ,a3 ,1,01010101(2)) SWAPMOVE(a4 ,a5 ,1,01010101(2)) SWAPMOVE(a6 ,a7 ,1, 01010101(2)) SWAPMOVE(a0 ,a2 ,2, 00110011(2)) SWAPMOVE(a1 ,a3 ,2, 00110011(2)) SWAPMOVE(a4 ,a6 ,2, 00110011(2)) SWAPMOVE(a5 ,a7 ,2, 00110011(2)) SWAPMOVE(a0 ,a4 ,4, 00001111(2)) SWAPMOVE(a1 ,a5 ,4, 00001111(2)) SWAPMOVE(a2 ,a6 ,4, 00001111(2)) SWAPMOVE(a3 ,a7 ,4, 00001111(2)) とすればよい。また、上記変換は逆変換に等しいので、
この発明の変換データから従来のデータへの変換も、S
WAPMOVE()を同様に用いて計算できる。
When w = 8 and m = 8, SWAPMOVE (a 0 , a 1 , 1,01010101 (2) ) SWAPMOVE (a 2 , a 3 , 1,01010101 (2) ) SWAPMOVE (a 4 , a 5) , 1,01010101 (2)) SWAPMOVE ( a 6, a 7, 1, 01010101 (2)) SWAPMOVE (a 0, a 2, 2, 00110011 (2)) SWAPMOVE (a 1, a 3, 2, 00110011 ( 2)) SWAPMOVE (a 4, a 6, 2, 00110011 (2)) SWAPMOVE (a 5, a 7, 2, 00110011 (2)) SWAPMOVE (a 0, a 4, 4, 00001111 (2)) SWAPMOVE ( a 1, a 5, 4, 00001111 (2)) SWAPMOVE (a 2, a 6, 4, 00001111 (2)) SWAPMOVE (a 3, a 7, 4, 00001111 (2) And it should be. Also, since the above transformation is equivalent to the inverse transformation,
The conversion from the conversion data of the present invention to the conventional data is also performed by S
It can be calculated similarly using WAPMOVE ().

【0018】[0018]

【発明の効果】この発明により、例えば、正規基底で表
現された複数の有限体GF(2m)上の自乗は、ソフト
ウェア実装でも演算量0で実現できるようになった。ま
た、乗算も同様にビット単位の処理が可能となったこと
から効率的に実現できる。プロセッサ(CPU)のワー
ド長が大きいほどGF(2m)の乗算や自乗を効率良く
行うことができる。例えばw=64とすると、この発明
の変換データを用いれば、従来の6倍程度高速に乗算を
行うことができる。通常の実装置ではGF(2m)上の
楕円演算はAffine座標で実現する方が効率が良い
が、この発明変換データを用いるビットスライス実装で
はProjective座標で表現する方が効率がよ
い。PentiumIIIプロセッサ上で、163ビット
楕円曲線暗号を実装する場合、理論的には通常の実装置
法(Affine座標)による実装よりも、ビットスラ
イス実装(Projective座標)で実現する方が
2倍以上高速に楕円スカラ倍演算を行える。
According to the present invention, for example, a square on a plurality of finite fields GF (2 m ) expressed by a normal basis can be realized with a software amount of 0 and no calculation amount. In addition, multiplication can also be efficiently performed because bit-wise processing has become possible. The larger the word length of the processor (CPU), the more efficiently the multiplication and the square of GF (2 m ) can be performed. For example, assuming that w = 64, multiplication can be performed about six times faster than the conventional technique using the converted data of the present invention. In an ordinary real device, it is more efficient to implement an elliptic operation on GF (2 m ) with Affine coordinates, but in a bit slice implementation using the transformed data of the present invention, it is more efficient to represent it in Projective coordinates. When implementing 163-bit elliptic curve cryptography on a Pentium III processor, it is theoretically more than twice as fast to implement using a bit slice implementation (Projective coordinate) than implementing using a normal real device method (Affine coordinate). Elliptical scalar multiplication can be performed.

【図面の簡単な説明】[Brief description of the drawings]

【図1】Aは従来のデータ配列を示す図、Bはこの発明
によるデータ配列を示す図である。
FIG. 1A is a diagram showing a conventional data array, and FIG. 1B is a diagram showing a data array according to the present invention.

【図2】この発明による装置の機能構成例を示す図。FIG. 2 is a diagram showing an example of a functional configuration of an apparatus according to the present invention.

【図3】この発明による変換データの乗算処理における
mod f(x)の計算手順の例を示す流れ図。
FIG. 3 illustrates a multiplication process of conversion data according to the present invention;
5 is a flowchart illustrating an example of a calculation procedure of mod f (x).

【図4】従来のデータをワードごとにレジスタに格納す
る状態を示す図。
FIG. 4 is a diagram showing a conventional state of storing data in a register for each word.

【図5】2つの多項式の乗算を示す図。FIG. 5 is a diagram showing multiplication of two polynomials.

【手続補正書】[Procedure amendment]

【提出日】平成14年4月23日(2002.4.2
3)
[Submission date] April 23, 2002 (2002.4.2
3)

【手続補正1】[Procedure amendment 1]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】発明の名称[Correction target item name] Name of invention

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【発明の名称】 有限体データ記録媒体、有限体データ
演算方法及びその装置、そのプログラム
Patent application title: Finite field data recording medium, finite field data calculation method and device , and program therefor

【手続補正2】[Procedure amendment 2]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】特許請求の範囲[Correction target item name] Claims

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【特許請求の範囲】[Claims]

【手続補正3】[Procedure amendment 3]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0001[Correction target item name] 0001

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0001】[0001]

【発明の属する技術分野】この発明は情報セキュリティ
技術や符号技術で用いられる標数2の有限体上の演算、
特に楕円曲線上の演算を用いて構成される楕円暗号に適
用される有限体データ記録媒体、有限体データ演算方法
及びその装置、そのプログラムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an operation on a finite field of characteristic 2 used in information security technology and coding technology,
In particular finite data storage medium used in the constructed elliptic encryption using arithmetic on an elliptic curve, a finite field data computing method and apparatus, for the program.

フロントページの続き (72)発明者 星野 文学 東京都千代田区大手町二丁目3番1号 日 本電信電話株式会社内 Fターム(参考) 5J104 AA25 JA25 NA16 Continued on the front page (72) Literature Hoshino Literature 2-3-1 Otemachi, Chiyoda-ku, Tokyo F-term in Nippon Telegraph and Telephone Corporation (reference) 5J104 AA25 JA25 NA16

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 コンピュータで計算するデータであっ
て、コンピュータにより読出し可能に記録された記録媒
体であって、 上記データは、 mビット(mは2以上の整数)で表現された有限体GF
(2m′)(m′≦m)の要素 a=(a[0],a[1],…,a[m−1]) のw個(wは2以上の整数) a0 ,a1 ,…,aw-1 が、{0,1,…,w−1}の置換pを用い、aのビット
位置j(0≦j<m)毎にwビット ap(0)[j],ap(1)[j],…,ap(w-1)[j] ずつコンピュータの処理単位である1ワードとして、m
ワードに記録されていることを特徴とする有限体データ
記録媒体。
1. A computer-readable recording medium recorded by a computer, wherein the data is a finite field GF represented by m bits (m is an integer of 2 or more).
A = (a [0], a [1],..., A [m-1]) elements of (2 m ′ ) (m ′ ≦ m) w (w is an integer of 2 or more) a 0 , a 1, ..., a w-1 is, {0,1, ..., w- 1} using the permutation p of, w bits for each bit position j of a (0 ≦ j <m) a p (0) [j ], A p (1) [j],..., A p (w-1) [j]
A finite field data recording medium recorded in a word.
【請求項2】 有限体データをコンピュータにより演算
する方法であって、 mビット(mは2以上の整数)で表現された有限体GF
(2m′)(m′≦m)の要素 a=(a[0],a[1],…,a[m−1]) のw個(wは2以上の整数) a0 ,a1 ,…,aw-1 をメモリから取出し、 {0,1,…,w−1}の置換pを用いてこれらw個の要
素のビット位置j(0≦j<m)毎に、wビット ap(0)[j],ap(1)[j],…,ap(w-1)[j] ずつコンピュータの処理単位である1ワードとして、m
ワードのデータに変換してメモリに記憶し、 メモリより、同様に変換された少くとも1つのデータを
用いて所望の演算をワード単位で行い、その演算結果を
メモリに記憶することを特徴とする有限体データ演算方
法。
2. A method for calculating finite field data by a computer, comprising: a finite field GF represented by m bits (m is an integer of 2 or more).
A = (a [0], a [1],..., A [m-1]) elements of (2 m ′ ) (m ′ ≦ m) w (w is an integer of 2 or more) a 0 , a 1 ,..., A w−1 are fetched from the memory, and w is used for each bit position j (0 ≦ j <m) of these w elements using the permutation p of {0, 1,. The bits a p (0) [j], a p (1) [j],..., A p (w−1) [j] are each a word which is a processing unit of the computer, and m
Word data is stored in a memory, a desired operation is performed in units of words using at least one data similarly converted from the memory, and the operation result is stored in the memory. Finite field data calculation method.
【請求項3】 有限体データをコンピュータにより演算
する装置であって、mビット(mは2以上の整数)で表
現された有限体GF(2m′)(m′≦m)の要素 a=(a[0],a[1],…,a[m−1]) のw個(wは2以上の整数) a0 ,a1 ,…,aw-1 を、その各ビット位置j(0≦j<m)毎に{0,1,
…,w−1}の置換pを用いてwビット ap(0)[j],ap(1)[j],…,ap(w-1)[j] ずつコンピュータの処理単位である1ワードとして、m
ワードのデータに変換する手段と、 同様に変換された少くとも1つのデータを用いてワード
単位で所望の演算をする手段とを具備する有限体データ
演算装置。
3. An apparatus for computing finite field data by a computer, wherein an element a of a finite field GF (2 m ′ ) (m ′ ≦ m) expressed by m bits (m is an integer of 2 or more) (a [0], a [ 1], ..., a [m-1]) w pieces (w is an integer of 2 or more) of a 0, a 1, ..., a a w-1, each of its bit position j {0,1,
.., W−1}, using the permutation p, w bits a p (0) [j], a p (1) [j],..., A p (w−1) [j] As one word, m
A finite field data operation device comprising: means for converting data into word data; and means for performing a desired operation on a word basis using at least one similarly converted data.
JP2001007866A 2001-01-16 2001-01-16 Finite field data recording medium, finite field data operation method, its device, and its program Pending JP2002215022A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001007866A JP2002215022A (en) 2001-01-16 2001-01-16 Finite field data recording medium, finite field data operation method, its device, and its program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001007866A JP2002215022A (en) 2001-01-16 2001-01-16 Finite field data recording medium, finite field data operation method, its device, and its program

Publications (1)

Publication Number Publication Date
JP2002215022A true JP2002215022A (en) 2002-07-31

Family

ID=18875561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001007866A Pending JP2002215022A (en) 2001-01-16 2001-01-16 Finite field data recording medium, finite field data operation method, its device, and its program

Country Status (1)

Country Link
JP (1) JP2002215022A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205535A (en) * 2008-02-28 2009-09-10 Nippon Telegr & Teleph Corp <Ntt> Polynomial multiplier, polynomial multiplication method and program
JP2010102351A (en) * 2003-05-16 2010-05-06 Analog Devices Inc Compound galois field engine and galois field divider and square root engine and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102351A (en) * 2003-05-16 2010-05-06 Analog Devices Inc Compound galois field engine and galois field divider and square root engine and method
JP2009205535A (en) * 2008-02-28 2009-09-10 Nippon Telegr & Teleph Corp <Ntt> Polynomial multiplier, polynomial multiplication method and program
JP4612698B2 (en) * 2008-02-28 2011-01-12 日本電信電話株式会社 Polynomial multiplier, polynomial multiplication method and program

Similar Documents

Publication Publication Date Title
US11416638B2 (en) Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques
Jalali et al. Supersingular isogeny Diffie-Hellman key exchange on 64-bit ARM
US8340280B2 (en) Using a single instruction multiple data (SIMD) instruction to speed up galois counter mode (GCM) computations
US6578061B1 (en) Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
Wang et al. VLSI design of a large-number multiplier for fully homomorphic encryption
US7194088B2 (en) Method and system for a full-adder post processor for modulo arithmetic
Chou McBits revisited
US20110161390A1 (en) Modular multiplication processing apparatus
US20100146028A1 (en) Method and apparatus for modulus reduction
KR100442218B1 (en) Power-residue calculating unit using montgomery algorithm
EP0673134B1 (en) Pseudo-random number generator, and communication method and apparatus using encrypted text based upon pseudo-random numbers generated by said generator
US11190340B2 (en) Efficient unified hardware implementation of multiple ciphers
Hutter et al. NaCl’s crypto_box in hardware
Oliveira et al. The Montgomery ladder on binary elliptic curves
US7027597B1 (en) Pre-computation and dual-pass modular arithmetic operation approach to implement encryption protocols efficiently in electronic integrated circuits
JP2006259735A (en) Elliptic curve point octupling using single instruction multiple data processing
US7319750B1 (en) Digital circuit apparatus and method for accelerating preliminary operations for cryptographic processing
JPH05324277A (en) Code communication method
Oliveira et al. Software implementation of Koblitz curves over quadratic fields
WO2023003737A2 (en) Multi-lane cryptographic engine and operations thereof
JP2002215022A (en) Finite field data recording medium, finite field data operation method, its device, and its program
KR100564599B1 (en) Inverse calculation circuit, inverse calculation method, and storage medium encoded with computer-readable computer program code
JP2004004784A (en) System and method for mounting hash algorithm
Jalali et al. Optimized supersingular isogeny key encapsulation on armv8 processors
JP2002311828A (en) Processor with bit slice condition, its program and its storage medium

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050329