JP4871105B2 - Calculation method and calculation device for finite field GF (3) - Google Patents
Calculation method and calculation device for finite field GF (3) Download PDFInfo
- Publication number
- JP4871105B2 JP4871105B2 JP2006320307A JP2006320307A JP4871105B2 JP 4871105 B2 JP4871105 B2 JP 4871105B2 JP 2006320307 A JP2006320307 A JP 2006320307A JP 2006320307 A JP2006320307 A JP 2006320307A JP 4871105 B2 JP4871105 B2 JP 4871105B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- registers
- values
- value
- stored
- 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
Links
Images
Description
本発明は、標数が3の有限体(ガロア体)GF(3)の演算方法および演算装置に関し、特に乗算、加算及び減算の演算方法および演算装置に関する。 The present invention relates to a calculation method and a calculation device for a finite field (Galois field) GF (3) having a characteristic of 3, and more particularly to a calculation method and a calculation device for multiplication, addition, and subtraction.
有限体(ガロア体)の演算は,デジタルオーディオ機器などのエラー訂正方式、公開鍵暗号方式などの技術分野で広く行われており、前者では主に標数2の有限体、後者では標数2以上の有限体が用いられる.有限体(ガロア体)GF(3)の演算は、標数3の有限体GF(3m)の計算過程で多数回行うことが必要である(mは正の整数)。GF(3m)の計算を必要とする例としては、楕円曲線暗号におけるペアリングの高速演算などが挙げられる。ペアリングの高速演算については、例えば、非特許文献1、2および特許文献1などに記載されている。非特許文献1は、ペアリングを用いることでIDベース暗号などの新しい暗号システムが可能になることも記載している。
Arithmetic operations of finite fields (Galois fields) are widely performed in technical fields such as error correction methods and public key cryptosystems for digital audio equipment, etc. The former is mainly a finite field with
有限体(ガロア体)GF(3)の演算自体については、広く知られているので、これ以上の説明は省略する。 Since the calculation itself of the finite field (Galois field) GF (3) is widely known, further explanation is omitted.
ペアリングの計算は演算量が多いため、非特許文献1、2および特許文献1に記載されているように計算を効率化する手法が求められる。
Since the calculation of pairing requires a large amount of computation, a method for improving the efficiency of calculation as described in
本発明は、標数3の有限体GF(3)の乗算と加減算が高速に行える有限体GF(3)の演算方法及び演算装置の実現を目的とする。
An object of the present invention is to realize a calculation method and a calculation apparatus for a finite field GF (3) in which multiplication, addition and subtraction of a finite field GF (3) with
上記目的を実現するため、本発明の有限体GF(3)の演算方法及び演算装置は、2ビットで表現することが可能であり、通常は2ビットで表現されていた3個の元0、1、2を3ビットで表現し、ビット同士の論理演算のみで、乗算・加減算・表現の相互変換演算を行うことを特徴とする。
To achieve the above object, the finite field GF (3) computation method and computation device of the present invention can be represented by 2 bits, and usually 3
本発明によれば、3ビットの外へのキャリー/ボローが発生せず、GF(3)の各元に共通のアルゴリズムで演算が可能であり、実質的に演算ステップ数を減少させることができる。 According to the present invention, the carry / borrow to the outside of 3 bits does not occur, the calculation can be performed with an algorithm common to each element of GF (3), and the number of calculation steps can be substantially reduced. .
演算装置では、3ビット表現の各ビットを異なるレジスタに割り当てるように、少なくとも6個のレジスタを設ける。各レジスタのビット幅は、適宜設定され、ビット幅と同じ個数の演算が並列に行える。 In the arithmetic unit, at least six registers are provided so that each bit of the 3-bit representation is assigned to a different register. The bit width of each register is set as appropriate, and the same number of operations as the bit width can be performed in parallel.
上記のように、本発明では、通常は2ビットで表現されていた3個の元を3ビットで表現するため、必要に応じて、演算の入力を2ビット表現から3ビット表現に変換し、演算の出力を3ビット表現から2ビット表現に変換する処理を行う。表現の変換処理が簡単に行える表現を使用する。 As described above, in the present invention, since the three elements normally expressed in 2 bits are expressed in 3 bits, the input of the operation is converted from the 2-bit expression to the 3-bit expression as necessary. A process of converting the output of the operation from the 3-bit representation to the 2-bit representation is performed. Use expressions that can be easily converted.
乗算においては、入力と出力の3ビット表現が異なるようにしてもよい。 In multiplication, the input and output 3-bit representations may be different.
また、乗算と加算及び減算とで、3個の元の3ビット表現が異なるようにしてもよい。 Further, the three original 3-bit representations may be different between multiplication, addition and subtraction.
GF(3)の演算では、0の減算は0の加算とし、1の減算は2の加算とし、2の減算は1の加算として行うことが可能であり、本発明でも同様である。 In the calculation of GF (3), subtraction of 0 can be performed as addition of 0, subtraction of 1 can be performed as addition of 2, and subtraction of 2 can be performed as addition of 1, which is the same in the present invention.
多項式の積の演算は、乗算結果を加減算するので、乗算結果の出力表現と、加算または減算の入力表現を一致させると変換処理が不要である。 Since the multiplication operation of the polynomial adds and subtracts the multiplication result, conversion processing is not required if the output expression of the multiplication result matches the input expression of addition or subtraction.
本発明によれば、3ビットの外へのキャリー/ボローが発生しないので、乗算と加減算とでそれぞれ演算が効率的に実行でき、実質的に演算ステップ数を減少させて高速化が図れる。また、3ビットの外へのキャリー/ボローが発生せず、GF(3)の各元に共通のアルゴリズムで演算が可能であるので、演算装置の構成を簡単にできる。 According to the present invention, since carry / borrow to the outside of 3 bits does not occur, the operation can be executed efficiently by multiplication and addition / subtraction, respectively, and the speed can be increased by substantially reducing the number of operation steps. Further, since carry / borrow to the outside of 3 bits does not occur and calculation can be performed with an algorithm common to each element of GF (3), the configuration of the calculation device can be simplified.
また、演算装置の構成が簡単であるので、各レジスタのビット幅を大きくすることが容易であり、演算の並列度を高くして高速化が可能である。 Further, since the configuration of the arithmetic unit is simple, it is easy to increase the bit width of each register, and the parallelism of the arithmetic can be increased to increase the speed.
本発明の実施例を説明する前に有限体(ガロア体)GF(3)の演算について簡単に説明する。 Before describing the embodiment of the present invention, the operation of a finite field (Gaalois field) GF (3) will be briefly described.
図1は、有限体GF(3)の演算規則を示す図である。本発明は、有限体GF(3)の四則演算のうちの、加算、減算、乗算を対象とする。 FIG. 1 is a diagram showing calculation rules for the finite field GF (3). The present invention is directed to addition, subtraction, and multiplication among the four arithmetic operations of the finite field GF (3).
図2は、本発明の実施例のGF(3)演算装置のハードウェア構成図である。図示のように、演算装置は、32ビットのビット幅を有する9個のレジスタR0−R8、32ビット並列AND回路12と、32ビット並列OR回路13と、32ビット並列XOR回路14と、32ビット並列COPY回路15と、各部を制御する制御部16と、3つのバス17−18と、を有する。レジスタR0−R2が第1レジスタグループ11Xを、レジスタR3−R5が第2レジスタグループ11Yを、レジスタR6−R8が第3レジスタグループ11Zを、構成する。レジスタR0−R8のそれぞれは、記憶しているデータをバス17および18に出力し、バス19からのデータを記憶するように構成されている。32ビット並列AND回路12、32ビット並列OR回路13および32ビット並列XOR回路14は、バス17および18のデータを入力として、AND(論理積)、OR(論理和)、XOR(排他的論理和)演算を行い、演算結果をバス19に出力する。従って、32ビット並列AND回路12、32ビット並列OR回路13および32ビット並列XOR回路14は、レジスタR0−R8のいずれか2つに記憶されたデータを入力として演算を行い、演算結果はレジスタR0−R8のいずれかに格納される。また、32ビット並列COPY回路15は、バス17のデータを入力して、バス19にそのまま出力する。従って、レジスタR0−R8のいずれかに記憶されたデータが、32ビット並列COPY回路15を介して、レジスタR0−R8のいずれかにコピーされる。
FIG. 2 is a hardware configuration diagram of the GF (3) arithmetic device according to the embodiment of the present invention. As shown in the figure, the arithmetic unit includes nine registers R0 to R8 having a 32-bit bit width, a 32-bit parallel AND
ここでは、レジスタ、演算回路およびバスのビット幅を32ビットとしたが、これに限定されず、任意のビット数に設定可能である。また、第3レジスタグループ11Zを構成するレジスタR6−R8を設けたが、このレジスタR6−R8を必要とするのはある加減算を行う時のみであり、この加減算を行わない時には設ける必要はない。また、他のレジスタグループと同じ構成にするために第3レジスタグループ11Zにも3個のレジスタR6−R8を設けたが、この加減算を行う時でもレジスタR8は使用しないので、R8を除くことが可能である。
Here, the bit width of the register, the arithmetic circuit, and the bus is 32 bits, but the present invention is not limited to this, and any number of bits can be set. Although the registers R6-R8 constituting the
図3は、演算装置の各演算回路の動作およびレジスタのデータ格納動作を説明する図である。各演算回路は、任意の2個のレジスタ(同一でもよい)Ri、Rjに格納されているデータを入力として、それらのビットごとの指示された論理演算を、1ステップ(1クロックサイクル)で行い、演算結果は最初に指定したレジスタRiに上書きされる。各演算回路の処理を式で表せば、図3の(A)から(C)のようになる。ここで、0≦i≦8および0≦j≦8である。また、32ビット並列COPY回路15は、任意のレジスタRiの値を任意のレジスタRjに1ステップでコピーする。この処理を式で表せば、図3の(D)のようになる。ここで、0≦i≦8および0≦j≦8である。
FIG. 3 is a diagram for explaining the operation of each arithmetic circuit of the arithmetic unit and the data storage operation of the register. Each arithmetic circuit inputs the data stored in any two registers (may be the same) Ri and Rj and performs the logical operation instructed for each bit in one step (one clock cycle). The operation result is overwritten in the first designated register Ri. If the processing of each arithmetic circuit is expressed by an equation, it will be as shown in FIGS. Here, 0 ≦ i ≦ 8 and 0 ≦ j ≦ 8. The 32-bit
次に、レジスタにおけるデータの格納方法を説明する。3ビットで表現された元は、ビットごとに各グループの別のレジスタに格納する。レジスタのビット幅(ここでは32ビット)と同じ個数の元について、それらの3ビット表現を、(Xc−32,Xb−32,Xa−32),・・・,(Xc−1,Xb−1,Xa−1)とすると、それを第1レジスタグループ11XのレジスタR0−R2に格納すると、図2に示すようになる。第2レジスタグループ11Y、第3レジスタグループ11Zについても、同様に図2に示すようになる。
Next, a method for storing data in the register will be described. The element represented by 3 bits is stored in a separate register of each group for each bit. For the same number of elements as the bit width of the register (32 bits in this case), the three-bit representation is expressed as (Xc−32, Xb−32, Xa−32),..., (Xc−1, Xb−1). , Xa-1), when stored in the registers R0-R2 of the
演算回路のうち、例えばAND回路をR3←AND(R3,R0)で動作させると、
Ya−i←Ya−i AND Xa−i
が、1ステップでi=1から32まで同時に実行される。
Of the arithmetic circuits, for example, when an AND circuit is operated as R3 ← AND (R3, R0),
Ya-i ← Ya-i AND Xa-i
Are simultaneously executed from i = 1 to 32 in one step.
以下、乗算、加算および減算の各演算についての処理を説明する。 Hereinafter, processing for each operation of multiplication, addition, and subtraction will be described.
実施例の演算装置では、乗算処理は、2つの処理方法で行うことが可能である。 In the arithmetic device of the embodiment, the multiplication processing can be performed by two processing methods.
図4は、第1の乗算処理におけるレジスタの値の変化を示す第1の乗算処理の説明図であり、図5は第1の乗算処理を示すフローチャートである。32ビット幅の各データについて、図示のような処理が行われる。 FIG. 4 is an explanatory diagram of the first multiplication process showing the change in the register value in the first multiplication process, and FIG. 5 is a flowchart showing the first multiplication process. The processing as shown in the figure is performed for each data having a 32-bit width.
図4に示すように、第1の乗算処理では、元0、1、2はそれぞれ”000”、”011”、”110”で表現される。図4に示した処理では、入力の一方は、第1レジスタグループ11XのレジスタR0−R2に格納されたデータであり、入力の他方は第2レジスタグループ11YのレジスタR3−R5に格納されたデータであり、演算結果は第2レジスタグループ11YのレジスタR3−R5に格納される。第1の入力の3ビットのうち、XaビットがR0に、XbビットがR1に、XcビットがR2に格納され、第2の入力の3ビットのうち、YaビットがR3に、YbビットがR4に、YcビットがR5に格納される。
As shown in FIG. 4, in the first multiplication process, the
図4において、各列は、図示した入力に対するレジスタの値の変化を示し、上段が第1レジスタグループ11XのレジスタR0−R2に格納されたデータを、下段が第2レジスタグループ11YのレジスタR3−R5に格納されたデータを示す。
In FIG. 4, each column shows a change in the value of the register with respect to the illustrated input. The upper row shows the data stored in the registers R0-R2 of the
図5に示すように、ステップ101では、32ビット並列AND回路12が、レジスタR3の値とレジスタR0の値のANDを演算し、演算結果がレジスタR3に格納される。
As shown in FIG. 5, in
ステップ102では、32ビット並列AND回路12が、レジスタR4の値とレジスタR1の値のANDを演算し、演算結果がレジスタR4に格納される。
In
ステップ103では、32ビット並列AND回路12が、レジスタR5の値とレジスタR2の値のANDを演算し、演算結果がレジスタR5に格納される。
In
ステップ104では、32ビット並列OR回路13が、レジスタR3の値とレジスタR5の値のORを演算し、演算結果がレジスタR3に格納される。
In
ステップ105では、32ビット並列OR回路13が、レジスタR5の値とレジスタR4の値のORを演算し、演算結果がレジスタR5に格納される。
In
ステップ106では、32ビット並列XOR回路14が、レジスタR5の値とレジスタR3の値のXORを演算し、演算結果がレジスタR5に格納される。
In
各ステップで、各レジスタの値は図示のように変化する。 At each step, the value of each register changes as shown.
以上の処理により、入力のそれぞれの組合せに対して、GF(3)乗算に即した演算結果が得られる。演算結果は、入力と同じ形で表現される。 With the above processing, an operation result corresponding to GF (3) multiplication is obtained for each combination of inputs. The calculation result is expressed in the same form as the input.
第1の乗算処理では、入力および出力において、元0、1、2はそれぞれ”000”、”011”、”110”で表現されるが、これは通常使用される表現、すなわち元0、1、2を”00”、”01”、”10”で表現する形式と異なる。そのため、通常の表現のデータを本発明の演算装置に入力する場合、および本発明の演算装置で演算した結果を通常の表現のデータとして出力する場合には、表現形式の変換処理が必要である。
In the first multiplication process, the
図6の(A)は、通常表現から第1の乗算処理の表現に変換する変換処理におけるレジスタの値の変化を示す変換処理の説明図であり、図6の(B)は、第1の乗算処理の表現から通常表現に変換する変換処理におけるレジスタの値の変化を示す変換処理の説明図であり、図7の(A)は通常表現から第1の乗算処理の表現に変換する変換処理を示すフローチャートであり、図7の(B)は第1の乗算処理の表現から通常表現に変換する変換処理を示すフローチャートである。 6A is an explanatory diagram of a conversion process showing a change in a register value in a conversion process for converting from a normal expression to an expression of the first multiplication process. FIG. 6B is a diagram illustrating the first process. FIG. 8A is an explanatory diagram of a conversion process showing a change in a register value in a conversion process for converting a representation of a multiplication process into a normal expression, and FIG. 7A shows a conversion process for converting the normal expression into a first multiplication process expression FIG. 7B is a flowchart showing a conversion process for converting the expression of the first multiplication process into the normal expression.
図6の(A)に示すように、通常表現では、元0、1、2は”00”、”01”、”10”で表現されるので、これを”000”、”011”、”110”に変換する。変換に第1レジスタグループ11Xを使用する場合には、通常表現の2ビットの値をそれぞれレジスタR0、R1に入力する。この時、レジスタR3の値は何でもよい。図7の(A)に示すように、ステップ201では、32ビット並列COPY回路15が、レジスタR1の値をレジスタR2にコピーする。ステップ202では、32ビット並列OR回路13がレジスタR1の値とレジスタR0の値のORを演算して、演算結果がレジスタR1に格納される。この時の各レジスタの値の変化は図6の(A)の通りであり、第1レジスタグループ11XのレジスタR0−R2に第1の乗算処理の表現のデータが格納される。
As shown in FIG. 6A, in the normal expression, the
図6の(B)に示すように、第1の乗算処理の出力の元0、1、2は”000”、”011”、”110”で表現されるので、これを通常表現の”00”、”01”、”10”に変換する。ここでは、第1レジスタグループ11Xのデータを変換するとする。図7の(B)に示すように、ステップ211では、32ビット並列XOR回路14がレジスタR0の値とレジスタR1の値のXORを演算して、演算結果がレジスタR0に格納される。この時の各レジスタの値の変化は図6の(B)の通りであり、第1レジスタグループ11XのレジスタR0、R1に通常表現のデータが格納される。
As shown in FIG. 6B, the
次に実施例のGF(3)の演算装置が行う第2の乗算処理について説明する。 Next, the second multiplication process performed by the arithmetic unit of GF (3) of the embodiment will be described.
図8は、第2の乗算処理におけるレジスタの値の変化を示す第2の乗算処理の説明図であり、図9は第1の乗算処理を示すフローチャートである。32ビット幅の各データについて、図示のような処理が行われる。 FIG. 8 is an explanatory diagram of the second multiplication process showing the change in the register value in the second multiplication process, and FIG. 9 is a flowchart showing the first multiplication process. The processing as shown in the figure is performed for each data having a 32-bit width.
図8に示すように、第2の乗算処理の入力データの表現は第1の乗算処理と同じであるが、出力(演算結果)の表現は異なり、元0、1、2はそれぞれ”X00”、”X11”、”X10”で表現される(ここで、Xは0または1のどちらでもよい)。図4の説明と同様に、図8に示した処理では、入力の一方は、第1レジスタグループ11XのレジスタR0−R2に格納されたデータであり、入力の他方は第2レジスタグループ11YのレジスタR3−R5に格納されたデータであり、演算結果は第2レジスタグループ11YのレジスタR3−R5に格納される。
As shown in FIG. 8, the representation of the input data of the second multiplication process is the same as that of the first multiplication process, but the expression of the output (calculation result) is different, and the
図9に示すように、ステップ301では、32ビット並列AND回路12が、レジスタR3の値とレジスタR0の値のANDを演算し、演算結果がレジスタR3に格納される。
As shown in FIG. 9, in
ステップ202では、32ビット並列AND回路12が、レジスタR4の値とレジスタR1の値のANDを演算し、演算結果がレジスタR4に格納される。
In
ステップ203では、32ビット並列AND回路12が、レジスタR5の値とレジスタR2の値のANDを演算し、演算結果がレジスタR5に格納される。
In step 203, the 32-bit parallel AND
ステップ304では、32ビット並列OR回路13が、レジスタR3の値とレジスタR5の値のORを演算し、演算結果がレジスタR3に格納される。
In
各ステップで、各レジスタの値は図示のように変化する。 At each step, the value of each register changes as shown.
以上の処理により、入力のそれぞれの組合せに対して、GF(3)乗算に即した演算結果が得られる。演算結果では、元0、1、2がそれぞれ”X00”、”X11”、”X10”で表現される。
With the above processing, an operation result corresponding to GF (3) multiplication is obtained for each combination of inputs. In the calculation result, the
図10の(A)は、通常表現から第2の乗算処理の表現に変換する変換処理におけるレジスタの値の変化を示す変換処理の説明図であり、図10の(B)は、第2の乗算処理の表現から通常表現に変換する変換処理におけるレジスタの値の変化を示す変換処理の説明図である。この変換処理は、実質的に通常表現と第1の乗算処理用表現の間の変換と同じであるので、説明は省略する。 FIG. 10A is an explanatory diagram of a conversion process showing a change in the value of a register in the conversion process for converting the normal expression into the expression of the second multiplication process. FIG. 10B is a diagram illustrating the second process. It is explanatory drawing of the conversion process which shows the change of the value of the register | resistor in the conversion process which converts into a normal expression from the expression of a multiplication process. Since this conversion process is substantially the same as the conversion between the normal expression and the first expression for multiplication processing, the description is omitted.
実施例の演算装置では、加算処理についても2つの処理方法で行うことが可能である。 In the arithmetic device of the embodiment, the addition process can be performed by two processing methods.
図11は、第1の加算処理におけるレジスタの値の変化を示す第1の加算処理の説明図であり、図12は第1の加算処理を示すフローチャートである。32ビット幅の各データについて、図示のような処理が行われる。 FIG. 11 is an explanatory diagram of the first addition process showing a change in the value of the register in the first addition process, and FIG. 12 is a flowchart showing the first addition process. The processing as shown in the figure is performed for each data having a 32-bit width.
図11に示すように、第1の加算処理では、元0、1、2はそれぞれ”X00”、”X11”、”X10”で表現される(Xは0または1のどちらでもよい)。図11に示した処理では、入力の一方は、第1レジスタグループ11XのレジスタR0−R2に格納されたデータであり、入力の他方は第2レジスタグループ11YのレジスタR3−R5に格納されたデータであり、演算結果は第2レジスタグループ11YのレジスタR3−R5に格納される。第1の入力の3ビットのうち、XaビットがR0に、XbビットがR1に、XcビットがR2に格納され、第2の入力の3ビットのうち、YaビットがR3に、YbビットがR4に、YcビットがR5に格納される。
As shown in FIG. 11, in the first addition process, the
図12に示すように、ステップ401では、レジスタR0の値をレジスタR5にコピーする。
As shown in FIG. 12, in
ステップ402では、32ビット並列AND回路12が、レジスタR5の値とレジスタR4の値のANDを演算し、演算結果がレジスタR5に格納される。
In
ステップ403では、レジスタR3の値をレジスタR2にコピーする。
In
ステップ404では、32ビット並列XOR回路14が、レジスタR2の値とレジスタR0の値のXORを演算し、演算結果がレジスタR2に格納される。
In
ステップ405では、32ビット並列XOR回路14が、レジスタR0の値とレジスタR5の値のXORを演算し、演算結果がレジスタR0に格納される。
In
ステップ406では、32ビット並列XOR回路14が、レジスタR3の値とレジスタR5の値のXORを演算し、演算結果がレジスタR3に格納される。
In
ステップ407では、32ビット並列OR回路13が、レジスタR3の値とレジスタR0の値のORを演算し、演算結果がレジスタR3に格納される。
In
ステップ408では、32ビット並列OR回路13が、レジスタR4の値とレジスタR1の値のORを演算し、演算結果がレジスタR4に格納される。
In
ステップ409では、32ビット並列AND回路12が、レジスタR5の値とレジスタR2の値のANDを演算し、演算結果がレジスタR5に格納される。
In step 409, the 32-bit parallel AND
ステップ410では、32ビット並列XOR回路14が、レジスタR4の値とレジスタR5の値のXORを演算し、演算結果がレジスタR4に格納される。
In
ステップ411では、32ビット並列XOR回路14が、レジスタR3の値とレジスタR5の値のXORを演算し、演算結果がレジスタR3に格納される。
In step 411, the 32-bit
各ステップで、各レジスタの値は図11のように変化する。 At each step, the value of each register changes as shown in FIG.
以上の処理により、入力のそれぞれの組合せに対して、GF(3)加算に即した演算結果が得られる。演算結果は、入力と同じ形で表現される。 With the above processing, a calculation result corresponding to the addition of GF (3) is obtained for each combination of inputs. The calculation result is expressed in the same form as the input.
図13の(A)は、通常表現から第1の加算処理の表現に変換する変換処理におけるレジスタの値の変化を示す変換処理の説明図であり、図13の(B)は、第1の加算処理の表現から通常表現に変換する変換処理におけるレジスタの値の変化を示す変換処理の説明図である。 FIG. 13A is an explanatory diagram of a conversion process showing a change in a register value in the conversion process for converting the normal expression into the expression of the first addition process. FIG. 13B is a diagram illustrating the first process. It is explanatory drawing of the conversion process which shows the change of the value of the register | resistor in the conversion process which converts from the expression of an addition process to a normal expression.
図13の(A)に示すように、通常表現から第1の加算処理の表現に変換する変換処理は、図6の(A)および図7の(A)の変換処理においてステップ201を除いた処理である。また、図13の(B)に示すように、第1の加算処理の表現から通常表現に変換する変換処理は、図6の(B)および図7の(B)の変換処理と同じであるので、説明は省略する。
As shown in FIG. 13A, the conversion process for converting from the normal expression to the expression of the first addition process excludes
第1の加算処理では、入力は第2の乗算処理の出力と同じ表現であり、第2の乗算処理の出力に対して第1の加算処理で加算を行うのであれば、変換処理は不要である。 In the first addition process, the input is the same expression as the output of the second multiplication process, and if the addition is performed in the first addition process with respect to the output of the second multiplication process, the conversion process is unnecessary. is there.
図14及び図15は、第2の加算処理におけるレジスタの値の変化を示す第2の加算処理の説明図であり、図16は第2の加算処理を示すフローチャートである。32ビット幅の各データについて、図示のような処理が行われる。第2の加算処理では、第3レジスタグループ11ZのレジスタR6およびR7も使用される。
14 and 15 are explanatory diagrams of the second addition process showing changes in register values in the second addition process, and FIG. 16 is a flowchart showing the second addition process. The processing as shown in the figure is performed for each data having a 32-bit width. In the second addition process, the registers R6 and R7 of the
図14および図15に示すように、第2の加算処理では、元0、1、2はそれぞれ”X00”、”X01”、”X10”で表現される(Xは0または1のどちらでもよい)。言い換えれば、通常表現と同じ表現である。図14および図15に示した処理では、入力の一方は、第1レジスタグループ11XのレジスタR0−R2に格納されたデータであり、入力の他方は第2レジスタグループ11YのレジスタR3−R5に格納されたデータであり、演算結果は第3レジスタグループ11ZのレジスタR6−R8(R8は実際には使用されない)に格納される。第1の入力の3ビットのうち、XaビットがR0に、XbビットがR1に、XcビットがR2に格納され、第2の入力の3ビットのうち、YaビットがR3に、YbビットがR4に、YcビットがR5に格納される。
As shown in FIGS. 14 and 15, in the second addition process, the
図16に示すように、ステップ601では、レジスタR3の値をレジスタR6にコピーする。
As shown in FIG. 16, in
ステップ602では、32ビット並列XOR回路14が、レジスタR6の値とレジスタR0の値のXORを演算し、演算結果がレジスタR6に格納される。
In
ステップ603では、レジスタR4の値をレジスタR7にコピーする。 In step 603, the value of the register R4 is copied to the register R7.
ステップ604では、32ビット並列XOR回路14が、レジスタR7の値とレジスタR1の値のXORを演算し、演算結果がレジスタR7に格納される。
In
ステップ605では、32ビット並列AND回路12が、レジスタR1の値とレジスタR4の値のANDを演算し、演算結果がレジスタR1に格納される。
In
ステップ606では、32ビット並列AND回路12が、レジスタR3の値とレジスタR0の値のANDを演算し、演算結果がレジスタR3に格納される。
In
ステップ607では、32ビット並列OR回路13が、レジスタR7の値とレジスタR3の値のORを演算し、演算結果がレジスタR7に格納される。
In
ステップ608では、32ビット並列OR回路13が、レジスタR6の値とレジスタR1の値のORを演算し、演算結果がレジスタR6に格納される。
In
ステップ609では、32ビット並列XOR回路14が、レジスタR1の値とレジスタR6の値のXORを演算し、演算結果がレジスタR1に格納される。
In
ステップ610では、32ビット並列AND回路12が、レジスタR1の値とレジスタR7の値のANDを演算し、演算結果がレジスタR1に格納される。
In
ステップ611では、32ビット並列XOR回路14が、レジスタR7の値とレジスタR1の値のXORを演算し、演算結果がレジスタR7に格納される。
In
ステップ612では、32ビット並列XOR回路14が、レジスタR6の値とレジスタR1の値のXORを演算し、演算結果がレジスタR6に格納される。
In
各ステップで、各レジスタの値は図11のように変化する。 At each step, the value of each register changes as shown in FIG.
以上の処理により、入力のそれぞれの組合せに対して、GF(3)加算に即した演算結果が得られる。演算結果は、入力と同じ形で表現される。 With the above processing, a calculation result corresponding to the addition of GF (3) is obtained for each combination of inputs. The calculation result is expressed in the same form as the input.
上記のように、第2の加算処理では、元は通常表現で表現されるので、変換処理は必要ない。 As described above, in the second addition process, since the original is expressed in a normal expression, no conversion process is necessary.
GF(3)の演算では、0の減算は0の加算に等しく、1の減算は2の加算に等しく、2の減算は1の加算に等しい。従って、減算処理は、加算処理において、Y1について”1”を”2”に、”2”を”1”に変換した後加算処理すればよい。 In the operation of GF (3), subtraction of 0 is equal to addition of 0, subtraction of 1 is equal to addition of 2, and subtraction of 2 is equal to addition of 1. Accordingly, the subtraction process may be performed after converting “1” into “2” and “2” into “1” for Y1 in the addition process.
図17は、第1の加算処理を利用した減算処理のフローチャートを示す。最初のステップ701で、32ビット並列XOR回路14が、レジスタR3の値とレジスタR4の値のXORを演算し、演算結果がレジスタR3に格納され、それ以後は図12の第1の加算処理と同じである。
FIG. 17 shows a flowchart of a subtraction process using the first addition process. In the
図18は、第2の加算処理を利用した減算処理のフローチャートを示す。レジスタR3をR4と、レジスタR4をR3とみなして図16の第2の加算処理と同じ処理を行う。 FIG. 18 shows a flowchart of a subtraction process using the second addition process. The register R3 is regarded as R4 and the register R4 is regarded as R3, and the same process as the second addition process of FIG. 16 is performed.
以上、本発明の実施例の演算装置の処理を説明したが、次に従来例と比較して、本発明の効果を説明する。 The processing of the arithmetic unit according to the embodiment of the present invention has been described above. Next, the effect of the present invention will be described in comparison with the conventional example.
従来のGF(3)の計算例としては、例えば非特許文献2に記載されている方法がある。非特許文献2では、5.1節に、図19に示すような通常の2ビット表現を用いたGF(3)の加算と乗算が記載されている。ここで、”H”は上位ビットを、”L”は下位ビットを表す。この演算は、本発明の場合と同様に、ビットごとに別レジスタに格納され、図2に示した本発明の演算装置により計算することができる。
As a conventional calculation example of GF (3), for example, there is a method described in
図20は、非特許文献2に記載された従来の乗算処理におけるレジスタの値の変化を示す説明図である。
FIG. 20 is an explanatory diagram showing changes in register values in the conventional multiplication process described in
図20の詳しい説明は省略するが、従来例の乗算処理では、式の上では6回の論理演算で実現できるが、図2に示したような論理回路の演算装置を使用する場合、第1引数に結果が上書きされるため、最低2回のコピー処理が必要になる。従って、全体では8ステップ必要であり、乗算処理単体では、本発明の第1の乗算処理は6ステップであり、第2の乗算処理は4ステップであり、本発明の方が従来例よりステップ数が少なく速い。通常表現との相互変換を含めた場合は、第1の乗算処理では11ステップで、第2の乗算処理では9ステップである。これは、2個の入力で4ステップ増加し、1個の出力で1ステップ増加するためである。しかし、べき乗(ae,e≧2)を計算する場合には、相互変換は最初と最後に行えばよいため、入力の変換に2ステップ、変換後の入力のコピーに3ステップ、出力の変換に1ステップ増加するので、追加は6ステップである。従って、第1の乗算処理では6(e−1)+6ステップ、第2の乗算処理で(4+2)(e−1)+6ステップとなる(1回の乗算で出力表現から入力表現に2ステップ増加する)。従って、従来例の8(e−1)+2ステップ(入力のコピーで2ステップ増加)に対して、第1および第2の乗算処理とも、e≧4で従来例に比べて高速になる。 Although the detailed description of FIG. 20 is omitted, the multiplication processing of the conventional example can be realized by six logical operations on the equation, but when the arithmetic unit of the logic circuit as shown in FIG. Since the result is overwritten in the argument, at least two copy processes are required. Therefore, 8 steps are required as a whole, and for the multiplication process alone, the first multiplication process of the present invention is 6 steps, the second multiplication process is 4 steps, and the present invention has more steps than the conventional example. There are few and fast. When mutual conversion with the normal expression is included, the first multiplication process takes 11 steps, and the second multiplication process takes 9 steps. This is because two inputs increase four steps and one output increases one step. However, when calculating the power (a e , e ≧ 2), the mutual conversion may be performed at the beginning and the end. Therefore, 2 steps are performed for the input conversion, 3 steps are performed for the copy of the input after the conversion, and the output conversion is performed. Therefore, the number of additions is 6 steps. Therefore, 6 (e-1) +6 steps in the first multiplication process, and (4 + 2) (e-1) +6 steps in the second multiplication process (2 steps increase from the output representation to the input representation in one multiplication) To do). Therefore, in contrast to the conventional example of 8 (e-1) +2 steps (increase of 2 steps by copying the input), both the first and second multiplication processes are faster than the conventional example when e ≧ 4.
図21は、非特許文献2に記載された従来の加算処理におけるレジスタの値の変化を示す説明図である。
FIG. 21 is an explanatory diagram showing changes in register values in the conventional addition process described in
図21の詳しい説明は省略するが、従来例の加算処理では、式の上では7回の論理演算で実現できるが、図2に示したような論理回路の演算装置を使用する場合、乗算と同様に、最低2回のコピー処理が必要になるため9ステップになる。加算処理単体では、本発明の第1の加算処理は11ステップであり、第2の加算処理は12ステップであり、加算処理自体は従来例より遅い。しかし、係数がGF(3)の元である多項式同士の積の場合は、GF(3)の乗算と加算の両方(積和演算)が実行されるため、全体として高速化され得る(このような多項式同士の積はGF(3)の拡大体GF(3m)の乗算の途中で使用される)。以下その速度比較を行う。 Although detailed description of FIG. 21 is omitted, the conventional addition processing can be realized by seven logical operations on the equation, but when using the arithmetic unit of the logic circuit as shown in FIG. Similarly, since at least two copy processes are required, there are 9 steps. In the addition process alone, the first addition process of the present invention is 11 steps, the second addition process is 12 steps, and the addition process itself is slower than the conventional example. However, in the case of a product of polynomials whose coefficients are elements of GF (3), both multiplication and addition (product-sum operation) of GF (3) are executed, so that the overall speed can be increased (such as this) The product of the polynomials is used in the middle of the multiplication of the extension field GF (3 m ) of GF (3)). The speed comparison is performed below.
GF(3)の元を係数とする2個のn−1次多項式を考える。この計算は通常のように項同士の積和演算の繰り返しとなる。例えば、2次多項式の積を考えると図22の(A)のようになる。 Consider two n-1 order polynomials whose coefficients are elements of GF (3). This calculation is a repetitive product-sum operation between terms as usual. For example, when considering a product of a quadratic polynomial, the result is as shown in FIG.
初期状態では、各多項式の係数は通常の表現で4個のレジスタに格納されているものとする。本発明においても従来例においても、乗算層1を並列計算し、その結果に乗算層2の計算結果を加算し、さらにその結果に乗算層3の計算結果を加算する順番となる。なお、例えば、乗算層1の並列計算において、図22の(B)に示すように、係数fの上位ビットと下位ビットを各々レジスタに展開する手順が必要であるが、このための手間は本発明でも従来例でも同一であり、全体の速度差には関係しない。
In the initial state, it is assumed that the coefficients of each polynomial are stored in four registers in a normal expression. In the present invention and the conventional example, the
本発明の第2の乗算処理と第1の加算処理をf(x)*g(x)の計算に適用すると、第2の乗算処理における3ビット出力表現は第1の加算処理における3ビット入出力表現と同一のため、乗算結果を直接加算処理へ入力できる。 When the second multiplication process and the first addition process of the present invention are applied to the calculation of f (x) * g (x), the 3-bit output representation in the second multiplication process is the 3-bit input in the first addition process. Since it is the same as the output representation, the multiplication result can be directly input to the addition process.
各多項式は、n個の係数を持つが、これを2ビット表現(通常表現)でビット幅Wのレジスタに格納するには多項式1個当たり2*{n/W}(ここで、{ }は小数点以下切り上げを表す)個のレジスタであれば十分である。また、本発明および従来例でのGF(3)の並列計算により多項式の積を計算するには、GF(3)の並列乗算が{n/W}*n回、GF(3)の並列加算が{n/W}*(n−1)回必要になる。積の結果は2n−1個の項を持つ多項式となる。本発明の第2の乗算処理と第1の加算処理を適用する場合には、2n個の入力項について通常表現から3ビット表現に変換し、多項式の積は3ビット表現で計算し、2n−1個の出力項について3ビット表現から通常表現に変換するものとする。従って、全体の計算ステップ数は図22の(C)に示される。 Each polynomial has n coefficients, but 2 * {n / W} per polynomial (where { It is sufficient to have a number of registers (representing rounding up after the decimal point). In addition, in order to calculate the product of the polynomial by the parallel calculation of GF (3) in the present invention and the conventional example, the parallel multiplication of GF (3) is {n / W} * n times and the parallel addition of GF (3) Is required {n / W} * (n-1) times. The result of the product is a polynomial with 2n-1 terms. When applying the second multiplication process and the first addition process of the present invention, 2n input terms are converted from a normal expression to a 3-bit expression, a product of polynomials is calculated in a 3-bit expression, and 2n− It is assumed that one output term is converted from a 3-bit representation to a normal representation. Therefore, the total number of calculation steps is shown in FIG.
なお、図22の(C)の右辺の第4項は、実際にはV*{(2n−1)/W}であるが、式を簡略にするため、本発明に対して不利になるように、図示の式としている。 Note that the fourth term on the right side of FIG. 22C is actually V * {(2n−1) / W}, but this is disadvantageous for the present invention in order to simplify the equation. In addition, the formula shown in the figure is used.
これにより、第2の乗算処理と第1の加算処理を適用した本発明と従来例とでステップ数を計算すると、図22の(D)のようになる。 Thus, when the number of steps is calculated between the present invention to which the second multiplication process and the first addition process are applied and the conventional example, the result is as shown in FIG.
これらのステップ数を比較すると、従来例のステップ数から本発明のステップ数を減じたステップ数は、{n/W}*[2*n−4]となり、n≧3で正となる。従って、2次以上の多項式の積では、第2の乗算処理と第1の加算処理を適用した本発明の方が従来例よりも速くなる。
(付記1)
標数が3の有限体GF(3)の演算方法であって、
前記有限体GF(3)の3個の元0、1、2を、3ビットで表し、
乗算、加算及び減算の少なくとも1つの演算を、3ビットで表された元で行う、ことを特徴とする有限体GF(3)の演算方法。
(付記2)
3個の元0、1、2を2ビットで表現した入力を、前記3ビット表現の入力に変換する変換処理を行う付記1に記載の有限体GF(3)の演算方法。
(付記3)
3ビット表現の出力を、3個の元0、1、2を2ビットで表現した出力に変換する変換処理を行う付記1に記載の有限体GF(3)の演算方法。
(付記4)
乗算は、入力と出力の3ビット表現が異なる付記1に記載の有限体GF(3)の演算方法。
(付記5)
乗算と加算及び減算とで、3個の元の3ビット表現が異なる付記1に記載の有限体GF(3)の演算方法。
(付記6)
第1の入力と第2の入力の乗算は、
3個の元0、1、2を、”000”、”011”、”110”で表現し、
第1の入力の0−2ビットをそれぞれ第0から第2レジスタに格納し、
第2の入力の0−2ビットをそれぞれ第3から第5レジスタに格納し、
前記第3レジスタと前記第0レジスタの値のANDを演算して前記第3レジスタに格納し、
前記第4レジスタと前記第1レジスタの値のANDを演算して前記第4レジスタに格納し、
前記第5レジスタと前記第2レジスタの値のANDを演算して前記第5レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のORを演算して前記第3レジスタに格納し、
前記第5レジスタと前記第4レジスタの値のORを演算して前記第5レジスタに格納し、
前記第5レジスタと前記第3レジスタの値のXORを演算して前記第5レジスタに格納し、
前記3から第5レジスタの値を、3個の元0、1、2を、”000”、”011”、”110”で表現する出力の0−2ビットとして出力する付記1から3のいずれかに記載の有限体GF(3)の演算方法。
(付記7)
第1の入力と第2の入力の乗算は、
3個の元0、1、2を、”000”、”011”、”110”で表現し、
前記第1の入力の0−2ビットをそれぞれ第0から第2レジスタに格納し、
前記第2の入力の0−2ビットをそれぞれ第3から第5レジスタに格納し、
前記第3レジスタと前記第0レジスタの値のANDを演算して前記第3レジスタに格納し、
前記第4レジスタと前記第1レジスタの値のANDを演算して前記第4レジスタに格納し、
前記第5レジスタと前記第2レジスタの値のANDを演算して前記第5レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のORを演算して前記第3レジスタに格納し、
前記3及び第4レジスタの値を、3個の元0、1、2を、”00”、”11”、”10”で表現する出力の0−1ビットとして出力する付記1から4のいずれかに記載の有限体GF(3)の演算方法。
(付記8)
第1の入力と第2の入力の加算は、
前記3個の元0、1、2を、”X00”、”X11”、”X10”(Xは0と1のいずれも可)で表現し、
前記第1の入力の0−2ビットをそれぞれ第0から第2レジスタに格納し、
前記第2の入力の0−2ビットをそれぞれ第3から第5レジスタに格納し、
前記第1レジスタの値を第5レジスタに格納し、
前記第5レジスタと前記第4レジスタの値のANDを演算して第5レジスタに格納し、
前記第3レジスタの値を第2レジスタに格納し、
前記第2レジスタと前記第0レジスタの値のXORを演算して第2レジスタに格納し、
前記第0レジスタと前記第5レジスタの値のXORを演算して第0レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のXORを演算して第3レジスタに格納し、
前記第3レジスタと前記第0レジスタの値のORを演算して第3レジスタに格納し、
前記第4レジスタと前記第1レジスタの値のORを演算して第4レジスタに格納し、
前記第5レジスタと前記第2レジスタの値のANDを演算して第5レジスタに格納し、
前記第4レジスタと前記第5レジスタの値のXORを演算して第4レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のXORを演算して第3レジスタに格納し、
前記6及び第7レジスタの値を、前記3個の元0、1、2を、”00”、”11”、”10”で表現する出力の0−1ビットとして出力する付記1から3のいずれかに記載の有限体GF(3)の演算方法。
(付記9)
0の減算は0の加算とし、1の減算は2の加算とし、2の減算は1の加算として行われる付記8に記載の有限体GF(3)の演算方法。
(付記10)
多項式の積の演算は、付記7に記載の演算方法における乗算を行い、その結果を入力として、付記8に記載の演算方法による加算または減算により行われる有限体GF(3)の演算方法。
(付記11)
2グループで構成され、各グループが3個のレジスタで構成される合計6個のレジスタ群と、前記6個のレジスタの2個の値を入力としてAND、OR、XOR及びコピー処理を行い、処理結果を前記2個の入力の一方のレジスタに格納するように構成された演算回路と、を備える標数が3の有限体GF(3)の演算装置であって、
乗算、加算及び減算の少なくとも1つの演算は、有限体GF(3)の3個の元0、1、2を、3ビットで表し、
第1の入力の0−2ビットを第1のグループの第0から第2レジスタにそれぞれ格納し、
第2の入力の0−2ビットを第2のグループの第3から第5レジスタにそれぞれ格納して演算を行うことを特徴とする有限体GF(3)の演算装置。
(付記12)
3個の元0、1、2を2ビットで表現した入力を、前記第1のグループの前記第0から第2レジスタまたは前記第2のグループの前記第3から第5レジスタに入力し、上記3ビット表現に変換する変換処理を行う付記11に記載の有限体GF(3)の演算装置。
(付記13)
前記第1のグループの前記第0から第2レジスタまたは前記第2のグループの前記第3から第5レジスタに格納された3ビット表現の出力を、3個の元0、1、2を2ビットで表現した出力に変換する変換処理を行う付記11に記載の有限体GF(3)の演算装置。
(付記14)
乗算は、入力と出力の3ビット表現が異なる付記11に記載の有限体GF(3)の演算装置。
(付記15)
乗算と加算及び減算で、3個の元の3ビット表現が異なる付記11に記載の有限体GF(3)の演算装置。
(付記16)
第1の入力と第2の入力の乗算は、
3個の元0、1、2を、”000”、”011”、”110”で表現し、
前記第1の入力の0−2ビットをそれぞれ前記第0から第2レジスタに格納し、
前記第2の入力の0−2ビットをそれぞれ前記第3から第5レジスタに格納し、
前記第3レジスタと前記第0レジスタの値のANDを演算して前記第3レジスタに格納し、
前記第4レジスタと前記第1レジスタの値のANDを演算して前記第4レジスタに格納し、
前記第5レジスタと前記第2レジスタの値のANDを演算して前記第5レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のORを演算して前記第3レジスタに格納し、
前記第5レジスタと前記第4レジスタの値のORを演算して前記第5レジスタに格納し、
前記第5レジスタと前記第3レジスタの値のXORを演算して前記第5レジスタに格納し、
前記3から第5レジスタの値を、3個の元0、1、2を、”000”、”011”、”110”で表現する出力の0−2ビットとして出力する付記11から13のいずれかに記載の有限体GF(3)の演算装置。
(付記17)
第1の入力と第2の入力の乗算は、
前記3個の元0、1、2を、”000”、”011”、”110”で表現し、
前記第1の入力の0−2ビットをそれぞれ第0から第2レジスタに格納し、
前記第2の入力の0−2ビットをそれぞれ第3から第5レジスタに格納し、
前記第3レジスタと前記第0レジスタの値のANDを演算して第3レジスタに格納し、
前記第4レジスタと前記第1レジスタの値のANDを演算して第4レジスタに格納し、
前記第5レジスタと前記第2レジスタの値のANDを演算して第5レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のORを演算して第3レジスタに格納し、
前記3及び第4レジスタの値を、前記3個の元0、1、2を、”00”、”11”、”10”で表現する出力の0−1ビットとして出力する付記11から14のいずれかに記載の有限体GF(3)の演算装置。
(付記18)
3個の元0、1、2を2ビットで表現した入力を、前記第1のグループの前記第0および第1レジスタまたは前記第2のグループの前記第3および第4レジスタに入力し、
前記第1レジスタまたは前記第4レジスタの値を、前記第2レジスタまたは第5レジスタに格納し、
前記第1レジスタと前記第0レジスタの値のORまたは前記第4レジスタと前記第3レジスタの値のORを演算して前記第1レジスタまたは第4レジスタに格納し、
前記第1のグループの前記第0から第2レジスタまたは前記第2のグループの前記第3から第5レジスタに格納された値を、入力として演算を行う付記16または17に記載の有限体GF(3)の演算装置。
(付記19)
前記第1のグループの前記第0から第2レジスタまたは前記第2のグループの前記第3から第5レジスタに格納された3ビット表現の出力に対して、
前記第1レジスタと前記第0レジスタの値のXORまたは前記第4レジスタと前記第3レジスタの値のXORを演算して前記第1レジスタまたは前記第4レジスタに格納し、
前記第1のグループの前記第0及び第1レジスタまたは前記第2のグループの前記第3及び第4レジスタに格納された値を、2ビットで表現した出力として出力する付記16または17に記載の有限体GF(3)の演算装置。
(付記20)
第1の入力と第2の入力の加算は、
前記3個の元0、1、2を、”X00”、”X11”、”X10”(Xは0と1のいずれも可)で表現し、
前記第1の入力の0−2ビットをそれぞれ第0から第2レジスタに格納し、
前記第2の入力の0−2ビットをそれぞれ第3から第5レジスタに格納し、
前記第1レジスタの値を第5レジスタに格納し、
前記第5レジスタと前記第4レジスタの値のANDを演算して第5レジスタに格納し、
前記第3レジスタの値を第2レジスタに格納し、
前記第2レジスタと前記第0レジスタの値のXORを演算して第2レジスタに格納し、
前記第0レジスタと前記第5レジスタの値のXORを演算して第0レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のXORを演算して第3レジスタに格納し、
前記第3レジスタと前記第0レジスタの値のORを演算して第3レジスタに格納し、
前記第4レジスタと前記第1レジスタの値のORを演算して第4レジスタに格納し、
前記第5レジスタと前記第2レジスタの値のANDを演算して第5レジスタに格納し、
前記第4レジスタと前記第5レジスタの値のXORを演算して第4レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のXORを演算して第3レジスタに格納し、
前記6及び第7レジスタの値を、前記3個の元0、1、2を、”00”、”11”、”10”で表現する出力の0−1ビットとして出力する付記11から13のいずれか1項に記載の有限体GF(3)の演算装置。
(付記21)
3個の元0、1、2を2ビットで表現した入力を、前記第1のグループの前記第0および第1レジスタまたは前記第2のグループの前記第3および第4レジスタに入力し、
前記第1レジスタと前記第0レジスタの値のORまたは前記第4レジスタと前記第3レジスタの値のORを演算して前記第1レジスタまたは第4レジスタに格納し、
前記第1のグループの前記第0から第2レジスタまたは前記第2のグループの前記第3から第5レジスタに格納された値を、入力として演算を行う付記20に記載の有限体GF(3)の演算装置。
(付記22)
前記第1のグループの前記第0から第2レジスタまたは前記第2のグループの前記第3から第5レジスタに格納された3ビット表現の出力に対して、
前記第1レジスタと前記第0レジスタの値のXORまたは前記第4レジスタと前記第3レジスタの値のXORを演算して前記第1レジスタまたは前記第4レジスタに格納し、
前記第1のグループの前記第0及び第1レジスタまたは前記第2のグループの前記第3及び第4レジスタに格納された値を、2ビットで表現した出力として出力する付記20に記載の有限体GF(3)の演算装置。
(付記23)
AND、OR、XOR及びコピー処理を行える第6から第7の2個のレジスタで構成される第3グループのレジスタ群をさらに備え、
第1の入力と第2の入力の加算は、
前記3個の元0、1、2を、”X00”、”X01”、”X10”(Xは0と1のいずれも可)で表現し、
前記第1の入力の0−2ビットをそれぞれ第0から第2レジスタに格納し、
前記第2の入力の0−2ビットをそれぞれ第3から第5レジスタに格納し、
前記第3レジスタの値を第6レジスタに格納し、
前記第6レジスタと前記第0レジスタの値のXORを演算して第6レジスタに格納し、
前記第4レジスタの値を第7レジスタに格納し、
前記第7レジスタと前記第1レジスタの値のXORを演算して第7レジスタに格納し、
前記第1レジスタと前記第4レジスタの値のANDを演算して第1レジスタに格納し、
前記第3レジスタと前記第0レジスタの値のANDを演算して第3レジスタに格納し、
前記第7レジスタと前記第3レジスタの値のORを演算して第7レジスタに格納し、
前記第6レジスタと前記第1レジスタの値のORを演算して第6レジスタに格納し、
前記第1レジスタと前記第6レジスタの値のXORを演算して第1レジスタに格納し、
前記第1レジスタと前記第7レジスタの値のANDを演算して第1レジスタに格納し、
前記第7レジスタと前記第1レジスタの値のXORを演算して第7レジスタに格納し、
前記第6レジスタと前記第1レジスタの値のXORを演算して第6レジスタに格納し、
前記6及び第7レジスタの値を、前記3個の元0、1、2を、”00”、”01”、”10”で表現する出力の0−1ビットとして出力する付記11に記載の有限体GF(3)の演算装置。
(付記24)
0の減算は0の加算とし、1の減算は2の加算とし、2の減算は1の加算として行われる付記11、20から23のいずれか1項に記載の有限体GF(3)の演算装置。
(付記25)
多項式の積の演算は、付記17に記載の乗算を行い、その結果を入力として、付記20に記載の加算または減算により行われる有限体GF(3)の演算装置。
(付記26)
前記第0から第5レジスタは、32ビット長を有し、32個の演算が並列に行われる付記11から25のいずれか1項に記載の有限体GF(3)の演算装置。
(付記27)
前記第6および第7レジスタは、32ビット長を有し、32個の演算が並列に行われる付記23に記載の有限体GF(3)の演算装置。
Comparing these numbers of steps, the number of steps obtained by subtracting the number of steps of the present invention from the number of steps of the conventional example is {n / W} * [2 * n-4], and n ≧ 3 is positive. Therefore, in the case of a product of second or higher order polynomials, the present invention to which the second multiplication process and the first addition process are applied is faster than the conventional example.
(Appendix 1)
A calculation method of a finite field GF (3) having a characteristic of 3,
The three
An operation method of a finite field GF (3), wherein at least one operation of multiplication, addition, and subtraction is performed on an element represented by 3 bits.
(Appendix 2)
The calculation method of the finite field GF (3) according to
(Appendix 3)
The calculation method of the finite field GF (3) according to
(Appendix 4)
Multiplication is a calculation method for the finite field GF (3) according to
(Appendix 5)
The calculation method of the finite field GF (3) according to
(Appendix 6)
The multiplication of the first input and the second input is
The three
The 0-2 bits of the first input are stored in the 0th to 2nd registers, respectively,
Store the 0-2 bits of the second input in the third to fifth registers respectively,
AND the values of the third register and the zeroth register and store in the third register;
ANDing the values of the fourth register and the first register and storing them in the fourth register;
ANDing the values of the fifth register and the second register and storing them in the fifth register;
Calculating the OR of the values of the third register and the fifth register and storing them in the third register;
Calculating the OR of the values of the fifth register and the fourth register and storing them in the fifth register;
XOR of the values of the fifth register and the third register is calculated and stored in the fifth register;
Any one of
(Appendix 7)
The multiplication of the first input and the second input is
The three
The 0-2 bits of the first input are respectively stored in the 0th to 2nd registers;
Storing 0-2 bits of the second input in the third to fifth registers respectively;
AND the values of the third register and the zeroth register and store in the third register;
ANDing the values of the fourth register and the first register and storing them in the fourth register;
ANDing the values of the fifth register and the second register and storing them in the fifth register;
Calculating the OR of the values of the third register and the fifth register and storing them in the third register;
Any one of
(Appendix 8)
The addition of the first input and the second input is
The three
The 0-2 bits of the first input are respectively stored in the 0th to 2nd registers;
Storing 0-2 bits of the second input in the third to fifth registers respectively;
Storing the value of the first register in a fifth register;
AND the values of the fifth register and the fourth register and store in the fifth register;
Storing the value of the third register in the second register;
Calculates the XOR of the values of the second register and the zeroth register and stores them in the second register;
Calculates the XOR of the values of the zeroth register and the fifth register and stores them in the zeroth register;
Calculates the XOR of the values of the third register and the fifth register and stores them in the third register;
Calculating the OR of the values of the third register and the zeroth register and storing them in the third register;
Calculating the OR of the values of the fourth register and the first register and storing them in the fourth register;
AND the values of the fifth register and the second register and store in the fifth register;
Compute the XOR of the values of the fourth register and the fifth register and store in the fourth register;
Calculates the XOR of the values of the third register and the fifth register and stores them in the third register;
The values of the sixth and seventh registers are output as 0-1 bits of output expressing the three
(Appendix 9)
The calculation method of the finite field GF (3) according to
(Appendix 10)
The calculation of the polynomial product is a calculation method of the finite field GF (3) which is performed by performing multiplication in the calculation method described in
(Appendix 11)
It consists of two groups, each group consisting of three registers, and a total of six registers and two values of the six registers as inputs, and performs AND, OR, XOR and copy processing An arithmetic circuit configured to store a result in one register of the two inputs, and an arithmetic device of a finite field GF (3) having a characteristic of 3,
At least one operation of multiplication, addition, and subtraction represents the three
Store 0-2 bits of the first input in the 0th to 2nd registers of the first group respectively;
An arithmetic unit for a finite field GF (3), wherein 0-2 bits of the second input are stored in the third to fifth registers of the second group, respectively, and the arithmetic is performed.
(Appendix 12)
Input the three
(Appendix 13)
The output of the 3-bit representation stored in the 0th to 2nd registers of the first group or the 3rd to 5th registers of the second group, and the 3
(Appendix 14)
The multiplication is an arithmetic unit for the finite field GF (3) according to
(Appendix 15)
The arithmetic unit of the finite field GF (3) according to
(Appendix 16)
The multiplication of the first input and the second input is
The three
Storing 0-2 bits of the first input in the 0th to 2nd registers respectively;
Storing 0-2 bits of the second input in the third to fifth registers respectively;
AND the values of the third register and the zeroth register and store in the third register;
ANDing the values of the fourth register and the first register and storing them in the fourth register;
ANDing the values of the fifth register and the second register and storing them in the fifth register;
Calculating the OR of the values of the third register and the fifth register and storing them in the third register;
Calculating the OR of the values of the fifth register and the fourth register and storing them in the fifth register;
XOR of the values of the fifth register and the third register is calculated and stored in the fifth register;
Any one of
(Appendix 17)
The multiplication of the first input and the second input is
The three
The 0-2 bits of the first input are respectively stored in the 0th to 2nd registers;
Storing 0-2 bits of the second input in the third to fifth registers respectively;
AND the values of the third register and the zeroth register and store in the third register;
AND the values of the fourth register and the first register and store in the fourth register;
AND the values of the fifth register and the second register and store in the fifth register;
Calculating the OR of the values of the third register and the fifth register and storing them in the third register;
The values of the third and fourth registers are output as 0-1 bits of the output expressing the three
(Appendix 18)
Input the three
Storing the value of the first register or the fourth register in the second register or the fifth register;
Calculating the OR of the values of the first register and the zeroth register or the values of the fourth register and the third register and storing them in the first register or the fourth register;
The finite field GF (1) according to the
(Appendix 19)
For the output of the 3-bit representation stored in the 0th to 2nd registers of the first group or the 3rd to 5th registers of the second group,
Calculating the XOR of the values of the first register and the zeroth register or the XOR of the values of the fourth register and the third register and storing them in the first register or the fourth register;
The
(Appendix 20)
The addition of the first input and the second input is
The three
The 0-2 bits of the first input are respectively stored in the 0th to 2nd registers;
Storing 0-2 bits of the second input in the third to fifth registers respectively;
Storing the value of the first register in a fifth register;
AND the values of the fifth register and the fourth register and store in the fifth register;
Storing the value of the third register in the second register;
Calculates the XOR of the values of the second register and the zeroth register and stores them in the second register;
Calculates the XOR of the values of the zeroth register and the fifth register and stores them in the zeroth register;
Calculates the XOR of the values of the third register and the fifth register and stores them in the third register;
Calculating the OR of the values of the third register and the zeroth register and storing them in the third register;
Calculating the OR of the values of the fourth register and the first register and storing them in the fourth register;
AND the values of the fifth register and the second register and store in the fifth register;
Compute the XOR of the values of the fourth register and the fifth register and store in the fourth register;
Calculates the XOR of the values of the third register and the fifth register and stores them in the third register;
The values of the sixth and seventh registers are output as 0-1 bits of output expressing the three
(Appendix 21)
Input the three
Calculating the OR of the values of the first register and the zeroth register or the values of the fourth register and the third register and storing them in the first register or the fourth register;
Item 21. The finite field GF (3) according to
(Appendix 22)
For the output of the 3-bit representation stored in the 0th to 2nd registers of the first group or the 3rd to 5th registers of the second group,
Calculating the XOR of the values of the first register and the zeroth register or the XOR of the values of the fourth register and the third register and storing them in the first register or the fourth register;
The finite field according to
(Appendix 23)
A third group of registers composed of two registers, 6th to 7th, which can perform AND, OR, XOR, and copy processing;
The addition of the first input and the second input is
The three
The 0-2 bits of the first input are respectively stored in the 0th to 2nd registers;
Storing 0-2 bits of the second input in the third to fifth registers respectively;
Storing the value of the third register in the sixth register;
Calculates the XOR of the values of the sixth register and the zeroth register and stores them in the sixth register;
Storing the value of the fourth register in the seventh register;
Calculates the XOR of the values of the seventh register and the first register and stores them in the seventh register;
ANDing the values of the first register and the fourth register and storing them in the first register;
AND the values of the third register and the zeroth register and store in the third register;
Calculating the OR of the values of the seventh register and the third register and storing them in the seventh register;
Calculating the OR of the values of the sixth register and the first register and storing the result in the sixth register;
Calculates the XOR of the values of the first register and the sixth register and stores them in the first register;
AND the values of the first register and the seventh register and store in the first register;
Calculates the XOR of the values of the seventh register and the first register and stores them in the seventh register;
XOR of the values of the sixth register and the first register is calculated and stored in the sixth register;
The value of the sixth and seventh registers is output as 0-1 bits of an output expressing the three
(Appendix 24)
The subtraction of 0 is the addition of 0, the subtraction of 1 is the addition of 2, the subtraction of 2 is performed as the addition of 1, the operation of the finite field GF (3) according to any one of
(Appendix 25)
The calculation of the product of polynomials is an arithmetic unit for a finite field GF (3), which is obtained by performing the multiplication described in Appendix 17 and performing the addition or subtraction described in
(Appendix 26)
26. The arithmetic device for a finite field GF (3) according to any one of
(Appendix 27)
The arithmetic unit of the finite field GF (3) according to appendix 23, wherein the sixth and seventh registers have a 32-bit length and 32 operations are performed in parallel.
本発明は、標数3の有限体(ガロア体)演算を使用する場合には、どのような場合にも適用可能である。 The present invention can be applied to any case when using a characteristic 3 finite field (Galois field) operation.
11X 第1レジスタグループ
11Y 第2レジスタグループ
11Z 第3レジスタグループ
12 32ビット並列AND回路
13 32ビット並列OR回路
14 32ビット並列XOR回路
15 32ビット並列COPY回路
16 制御部
17、18、19 バス
R0−R8 レジスタ
11X
Claims (2)
有限体GF(3)の3個の元0、1、2を、”000”、”011”、”110”で表現し、
前記第1の入力の0−2ビットをそれぞれ第0から第2レジスタに格納し、
前記第2の入力の0−2ビットをそれぞれ第3から第5レジスタに格納し、
前記第3レジスタと前記第0レジスタの値のANDを演算して第3レジスタに格納し、
前記第4レジスタと前記第1レジスタの値のANDを演算して第4レジスタに格納し、
前記第5レジスタと前記第2レジスタの値のANDを演算して第5レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のORを演算して第3レジスタに格納し、
前記3及び第4レジスタの値を、前記3個の元0、1、2を、”00”、”11”、”10”で表現する出力の0−1ビットとして出力することを特徴とする有限体GF(3)の演算方法。 A calculation method of a finite field GF (3) having a characteristic of 3,
The three elements 0, 1, 2 of the finite field GF (3) are represented by “000”, “011”, “110”,
The 0-2 bits of the first input are respectively stored in the 0th to 2nd registers;
Storing 0-2 bits of the second input in the third to fifth registers respectively;
AND the values of the third register and the zeroth register and store in the third register;
AND the values of the fourth register and the first register and store in the fourth register;
AND the values of the fifth register and the second register and store in the fifth register;
Calculating the OR of the values of the third register and the fifth register and storing them in the third register;
The values of the third and fourth registers are output as 0-1 bits of output expressing the three elements 0, 1, and 2 as "00", "11", and "10". Calculation method of finite field GF (3).
第1の入力と第2の入力の乗算は、
有限体GF(3)の3個の元0、1、2を、”000”、”011”、”110”で表現し、
前記第1の入力の0−2ビットをそれぞれ第0から第2レジスタに格納し、
前記第2の入力の0−2ビットをそれぞれ第3から第5レジスタに格納し、
前記第3レジスタと前記第0レジスタの値のANDを演算して第3レジスタに格納し、
前記第4レジスタと前記第1レジスタの値のANDを演算して第4レジスタに格納し、
前記第5レジスタと前記第2レジスタの値のANDを演算して第5レジスタに格納し、
前記第3レジスタと前記第5レジスタの値のORを演算して第3レジスタに格納し、
前記3及び第4レジスタの値を、前記3個の元0、1、2を、”00”、”11”、”10”で表現する出力の0−1ビットとして出力することを特徴とする有限体GF(3)の演算装置。 It consists of two groups, each group consisting of three registers, and a total of six registers and two values of the six registers as inputs, and performs AND, OR, XOR and copy processing An arithmetic circuit configured to store a result in one register of the two inputs, and an arithmetic device of a finite field GF (3) having a characteristic of 3,
The multiplication of the first input and the second input is
The three elements 0, 1, 2 of the finite field GF (3) are represented by “000”, “011”, “110”,
The 0-2 bits of the first input are respectively stored in the 0th to 2nd registers;
Storing 0-2 bits of the second input in the third to fifth registers respectively;
AND the values of the third register and the zeroth register and store in the third register;
AND the values of the fourth register and the first register and store in the fourth register;
AND the values of the fifth register and the second register and store in the fifth register;
Calculating the OR of the values of the third register and the fifth register and storing them in the third register;
The values of the third and fourth registers are output as 0-1 bits of output expressing the three elements 0, 1, and 2 as "00", "11", and "10". Arithmetic device for finite field GF (3).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006320307A JP4871105B2 (en) | 2006-11-28 | 2006-11-28 | Calculation method and calculation device for finite field GF (3) |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006320307A JP4871105B2 (en) | 2006-11-28 | 2006-11-28 | Calculation method and calculation device for finite field GF (3) |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008134812A JP2008134812A (en) | 2008-06-12 |
JP4871105B2 true JP4871105B2 (en) | 2012-02-08 |
Family
ID=39559633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006320307A Expired - Fee Related JP4871105B2 (en) | 2006-11-28 | 2006-11-28 | Calculation method and calculation device for finite field GF (3) |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4871105B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009020216A1 (en) * | 2007-08-09 | 2009-02-12 | National University Corporation Okayama University | Arithmetic operation method and arithmetic operation device |
KR101533929B1 (en) * | 2014-06-27 | 2015-07-09 | 공주대학교 산학협력단 | Subquadratic Space Complexity Parallel Multiplier for using shifted polynomial basis, method thereof, and recording medium using this |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006178125A (en) * | 2004-12-22 | 2006-07-06 | Hitachi Ltd | Method and apparatus for computing elliptic curve tate pairing |
-
2006
- 2006-11-28 JP JP2006320307A patent/JP4871105B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008134812A (en) | 2008-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5456766B2 (en) | Performing optional Galois Field computations on a programmable processor | |
CN101782845B (en) | High speed arithmetic device and method of elliptic curve code | |
WO2015164996A1 (en) | Elliptic domain curve operational method and elliptic domain curve operational unit | |
WO2016046949A1 (en) | Method for calculating elliptic curve scalar multiplication | |
JP2009135891A (en) | Data transform apparatus and control method thereof | |
CN104184578B (en) | A kind of Elliptic Curve Scalar Multiplication method accelerating circuit and its algorithm based on FPGA | |
JP4871105B2 (en) | Calculation method and calculation device for finite field GF (3) | |
Li et al. | On the Complexity of Hybrid $ n $-Term Karatsuba Multiplier for Trinomials | |
JP2004227344A (en) | Multiplier and code circuit | |
JP5175983B2 (en) | Arithmetic unit | |
Cho et al. | New bit parallel multiplier with low space complexity for all irreducible trinomials over $ GF (2^{n}) $ | |
CN116527274B (en) | Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation | |
JP4182226B2 (en) | Remainder calculation method, apparatus and program | |
CN114650135B (en) | Software and hardware cooperated SM2 elliptic curve cryptography algorithm implementation method | |
CN103942027B (en) | A kind of fast parallel multiplier of restructural | |
CN108418687B (en) | Rapid modular reduction method and medium suitable for SM2 algorithm | |
JP6457911B2 (en) | Scalar multiplier | |
JP2937982B2 (en) | Montgomery division apparatus, Montgomery inverse element calculation apparatus, Montgomery division method, and Montgomery inverse element calculation method | |
JP4933405B2 (en) | Data conversion apparatus and control method thereof | |
CN110071927B (en) | Information encryption method, system and related components | |
Aggarwal et al. | Improved hardness results for unique shortest vector problem | |
JP5840086B2 (en) | Reduction device, reduction method, and program | |
JP2006279889A (en) | Quantum circuit, quantum error correcting apparatus and quantum error correction method | |
Li et al. | Low complexity bit-parallel $ GF (2^ m) $ multiplier for all-one polynomials | |
JP4472808B2 (en) | Multiply-accumulate device and encryption / decryption device using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110823 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111020 |
|
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: 20111108 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111118 |
|
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: 20141125 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |