JP5840086B2 - Reduction device, reduction method, and program - Google Patents

Reduction device, reduction method, and program Download PDF

Info

Publication number
JP5840086B2
JP5840086B2 JP2012158735A JP2012158735A JP5840086B2 JP 5840086 B2 JP5840086 B2 JP 5840086B2 JP 2012158735 A JP2012158735 A JP 2012158735A JP 2012158735 A JP2012158735 A JP 2012158735A JP 5840086 B2 JP5840086 B2 JP 5840086B2
Authority
JP
Japan
Prior art keywords
unit
elements
sequence
column
εgf
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.)
Active
Application number
JP2012158735A
Other languages
Japanese (ja)
Other versions
JP2014021237A (en
Inventor
和麻呂 青木
和麻呂 青木
幹 安田
幹 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012158735A priority Critical patent/JP5840086B2/en
Publication of JP2014021237A publication Critical patent/JP2014021237A/en
Application granted granted Critical
Publication of JP5840086B2 publication Critical patent/JP5840086B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、演算技術に関し、特に縮約演算に関する。   The present invention relates to a calculation technique, and more particularly to a reduction calculation.

拡大体GF(2)(ただしnは正整数)上の演算は、多項式演算結果(例えば、多項式乗算結果)に対する、n次多項式f(x)を法とした剰余演算(縮約)によって実現できる。f(x)による剰余演算を効率的に実行するため、通常、f(x)として項数の少ないものが選ばれる。一般にf(x)=x−f(x)(ただし、deg f<n)と書けるが、多くのnに対し、deg f<n/2となるものを選ぶことが出来る。このとき2n次未満の多項式である多項式演算結果をr(x)とおくと、f(x)を法とした剰余演算は、x≡f(x)(mod f(x))を利用し、次のように記述できる(例えば、非特許文献1参照)。 An operation on the extension field GF (2 n ) (where n is a positive integer) is realized by a remainder operation (contraction) modulo an n-order polynomial f (x) on a polynomial operation result (for example, a polynomial multiplication result). it can. In order to efficiently execute the remainder calculation using f (x), one having a small number of terms is usually selected as f (x). In general, f (x) = x n −f 0 (x) (where deg f 0 <n) can be written, but for many n, one that satisfies deg f 0 <n / 2 can be selected. At this time, if a polynomial calculation result that is a polynomial of less than 2n order is r (x), the remainder calculation using f (x) as a modulus uses x n ≡f 0 (x) (mod f (x)). Then, it can be described as follows (for example, see Non-Patent Document 1).

<アルゴリズム1>
入力:r(x),f(x)=x−f(x)
出力:R(x)=r(x) mod f(x)
1:h(x)×x+k(x)←r(x)(ただし、deg k(x)<n)
2:r’(x)←k(x)+h(x)×f(x)
3:H(x)×x+k(x)←r’(x)
4:R(x)←k(x)+H(x)×f(x)
<Algorithm 1>
Input: r (x), f (x) = x n −f 0 (x)
Output: R (x) = r (x) mod f (x)
1: h (x) × x n + k (x) ← r (x) (where deg k (x) <n)
2: r ′ (x) ← k (x) + h (x) × f 0 (x)
3: H (x) × x n + k (x) ← r ′ (x)
4: R (x) ← k (x) + H (x) × f 0 (x)

さらにf(x)を以下のようにおく。

Figure 0005840086
ただし、tは正整数であり、n(i)=n(t−1),・・・,n(1)はn/2>n(t−1)>・・・>n(1)=0を満たす整数である。すると、f(x)を法とした剰余演算は、次のように記述できる。 Further, f 0 (x) is set as follows.
Figure 0005840086
However, t is a positive integer, and n (i) = n (t−1),..., N (1) is n / 2> n (t−1)>. It is an integer that satisfies 0. Then, the remainder operation modulo f (x) can be described as follows.

<アルゴリズム2>
入力:r(x),f(x)=x−f(x)
出力:R(x)=r(x) mod f(x)
1:h(x)×x+k(x)←r(x)
2:r’(x)←k(x)+h(x)×(xn(t−1)+・・・+xn(1)
3:H(x)×x+k(x)←r’(x)
4:R(x)←k(x)+H(x)×(xn(t−1)+・・・+xn(1)
<Algorithm 2>
Input: r (x), f (x) = x n −f 0 (x)
Output: R (x) = r (x) mod f (x)
1: h (x) × x n + k (x) ← r (x)
2: r ′ (x) ← k (x) + h (x) × (x n (t−1) +... + X n (1) )
3: H (x) × x n + k (x) ← r ′ (x)
4: R (x) ← k (x) + H (x) × (x n (t−1) +... + X n (1) )

さらにr(x)の係数列rが2×nビットのレジスタに保存され、その他の多項式の係数列がnビットのレジスタに保存されるとする。すると、f(x)を法とした剰余演算は、次のように記述できる。   Further, it is assumed that the coefficient sequence r of r (x) is stored in a 2 × n-bit register, and the coefficient sequences of other polynomials are stored in an n-bit register. Then, the remainder operation modulo f (x) can be described as follows.

<アルゴリズム3>
入力:r∈GF(2)2×n,n(t−1),・・・,n(1)
出力:r(x) mod f(x)の係数列R∈GF(2)
1:h|k←r(ただし、h,k∈GF(2)
2:k’←k+h≪n(1)+・・・+h≪n(t−1)∈GF(2)
3:h’’←h≪n−n(2)+・・・+h≪n−n(t−1)∈GF(2)
4:R←k’+h’’≪n(1)+・・・+h’’≪n(t−1)∈GF(2)
ただし、α≫jはn個の有限体GF(2)の元からなる列α∈GF(2)に対する右jシフト演算を表し、α≪jが列α∈GF(2)に対する左jシフト演算を表す。またα|βは列αと列βとの結合(例えばビット結合)を表す。
<Algorithm 3>
Input: rεGF (2) 2 × n , n (t−1),..., N (1)
Output: coefficient sequence RεGF (2) n of r (x) mod f (x) n
1: h | k ← r (where h, kεGF (2) n )
2: k ′ ← k + h << n (1) +... + H << n (t−1) ∈GF (2) n
3: h ″ ← h << n−n (2) +... + H << n−n (t−1) ∈GF (2) n
4: R ← k ′ + h ″ << n (1) +... + H ″ << n (t−1) ∈GF (2) n
However, α >> j represents a right j shift operation for a column α∈GF (2) n consisting of elements of n finite fields GF (2), and α << j is a left j for the column α∈GF (2) n Represents a shift operation. Α | β represents a connection (for example, bit connection) between the column α and the column β.

図8A〜図8Cおよび図9に<アルゴリズム3>の処理を図示する。図8Aがh|k←r(ステップ1)、図8Bがk’←k+h≪n(1)+・・・+h≪n(t−1)(ステップ2)、図8Cがh’’←h≪n−n(2)+・・・+h≪n−n(t−1)(ステップ3)、図9がR←k’+h’’≪n(1)+・・・+h’’≪n(t−1)(ステップ4)を、それぞれ表す。図8A〜図8Cおよび図9での演算子+は、拡大体GF(2)上での加算を表す。図8Bおよび図8Cに示すように、ステップ4はステップ3での左シフト演算によってnビットのレジスタから溢れた値h(2),・・・,h(t−1)についての演算を行っている。またdeg f<n/2、すなわちn/2>n(t−1)であるため、図9に示すようにステップ4での左シフト演算によってnビットのレジスタから溢れる値はすべて0である。 The processing of <algorithm 3> is illustrated in FIGS. 8A to 8C and FIG. 8A shows h | k ← r (step 1), FIG. 8B shows k ′ ← k + h << n (1) +... + H << n (t−1) (step 2), and FIG. 8C shows h ″ ← h. << n-n (2) + ... + h << n-n (t-1) (step 3), FIG. 9 shows R ← k '+ h''<< n (1) + ... + h''<< n (T-1) (Step 4) is represented respectively. The operator + in FIGS. 8A to 8C and FIG. 9 represents addition on the extension field GF (2 n ). As shown in FIGS. 8B and 8C, step 4 performs an operation on the values h (2),..., H (t−1) overflowing from the n-bit register by the left shift operation in step 3. Yes. Since deg f 0 <n / 2, that is, n / 2> n (t−1), all the values overflowing from the n-bit register by the left shift operation in step 4 are 0 as shown in FIG. .

Darrel Hankerson, Julio Lopez Hernandez, Alfred Menezes, “Software Implementation of Elliptic Curve Cryptography over Binary Fields,” CHES 2000, LNCS 1965, pp. 1-24, 2000.Darrel Hankerson, Julio Lopez Hernandez, Alfred Menezes, “Software Implementation of Elliptic Curve Cryptography over Binary Fields,” CHES 2000, LNCS 1965, pp. 1-24, 2000.

アルゴリズム3では、t−1回の左n(i)シフト演算(i=1,・・・,t−1)とt−1回の拡大体GF(2)上での加算をそれぞれ2回ずつ行うため(ステップ2および4)、演算効率が悪い。 In algorithm 3, t−1 left n (i) shift operations (i = 1,..., T−1) and t−1 times addition on the extended field GF (2 n ) are each performed twice. Since each step is performed (steps 2 and 4), the calculation efficiency is poor.

本発明はこのような点に鑑みてなされたものであり、従来よりも演算効率のよい縮約技術を提供することを目的とする。   The present invention has been made in view of these points, and an object thereof is to provide a reduction technique with higher calculation efficiency than in the past.

以下のようにr(x) mod f(x)の計算を行う。ただし、qが2以上の整数であり、nが3以上の整数であり、tが3≦t≦nの整数であり、GF(q)が位数qの有限体であり、GF(q)が有限体GF(q)のn次拡大体であり、xが不定元であり、n(t−1),・・・,n(1)がn/2>n(t−1)>・・・>n(1)=0を満たす整数であり、f(x)が多項式f(x)=xn(t−1)+・・・+xn(1)であり、f(x)=x−f(x)であり、α≫jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する右jシフト演算であり、α≪jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する左jシフト演算である。 R (x) mod f (x) is calculated as follows. However, q is an integer of 2 or more, n is an integer of 3 or more, t is an integer of 3 ≦ t ≦ n, GF ( q) is a finite field of order q, GF (q n ) Is an nth-order extension of the finite field GF (q), x is an indefinite element, and n (t−1),..., N (1) is n / 2> n (t−1)>. ...> n (1) = 0, an integer satisfying f 0 (x) is a polynomial f 0 (x) = x n (t-1) +... + X n (1) , and f ( x) = x n −f 0 (x), and α >> j is a right j shift operation on a sequence α∈GF (q n ) consisting of elements of n finite fields GF (q), and α << j Is a left j shift operation on a sequence αεGF (q n ) consisting of elements of n finite fields GF (q).

まず、多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)に対して、n個の元hn−1,・・・,h∈GF(q)からなる列h∈GF(q)およびn個の元kn−1,・・・,k∈GF(q)からなる列k∈GF(q)を得る。次に、H=h+h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)を得、R=k+H≪n(1)+・・・+H≪n(t−1)∈GF(q)を得る。 First, the polynomial r (x) = (h n−1 × x n−1 +... + H 0 × x 0 ) × x n + (k n−1 × x n−1 +... + K 0 × x 0 ) for a sequence of n elements h n−1 ,..., H 0 εGF (q) and n elements k n−1 ,. Obtain a column kεGF (q n ) consisting of k 0 εGF (q). Next, H = h + h >> n- (2) + ... + h >> n- (t-1) εGF (q n ) is obtained, and R = k + H << n (1) + ... + H << n (t−1) εGF (q n ) is obtained.

シフト演算およびGF(q)上での加減算は可換であるため、本発明によって得られる列Rはr(x) mod f(x)の係数列となる。また本発明では、従来それぞれ2回ずつ行う必要があったt−1回の左n(i)シフト演算および拡大体GF(2)上での加算を1回にまとめることができるため、従来よりも効率よく縮約を実行できる。 Since the shift operation and addition / subtraction on GF (q n ) are commutative, the sequence R obtained by the present invention is a coefficient sequence of r (x) mod f (x). In the present invention, t−1 left n (i) shift operations and additions on the extension field GF (2 n ), which conventionally had to be performed twice each, can be combined into one time. Reduction can be performed more efficiently.

図1Aは実施形態の縮約装置の構成を説明するためのブロック図であり、図1Bは実施形態の縮約方法を説明するためのフロー図である。FIG. 1A is a block diagram for explaining the configuration of the contracting device of the embodiment, and FIG. 1B is a flowchart for explaining the contracting method of the embodiment. 図2は実施形態の縮約方法を示した図である。FIG. 2 is a diagram showing a contraction method of the embodiment. 図3Aは実施形態の縮約装置の構成を説明するためのブロック図であり、図3Bは実施形態の縮約方法を説明するためのフロー図である。FIG. 3A is a block diagram for explaining the configuration of the contracting device of the embodiment, and FIG. 3B is a flowchart for explaining the contracting method of the embodiment. 図4は実施形態の縮約方法を説明するためのフロー図である。FIG. 4 is a flowchart for explaining the contraction method of the embodiment. 図5は実施形態の縮約方法を説明するためのフロー図である。FIG. 5 is a flowchart for explaining the contraction method of the embodiment. 図6は実施形態の縮約方法を説明するためのフロー図である。FIG. 6 is a flowchart for explaining the contraction method of the embodiment. 図7は実施形態の縮約方法を説明するためのフロー図である。FIG. 7 is a flowchart for explaining the contraction method of the embodiment. 図8A〜8Cは従来の縮約方法を示した図である。8A to 8C are views showing a conventional contraction method. 図9は従来の縮約方法を示した図である。FIG. 9 is a diagram showing a conventional reduction method.

以下、図面を参照して実施形態を説明する。
〔定義〕
用語および記号を定義する。
GF(q)は位数qの有限体を表し、GF(q)は有限体GF(q)のn次拡大体を表す。ただし、qは2以上の整数(定数)であり、nは3以上の整数(定数)である。例えば、q=2であり、GF(2)がビット集合{0,1}であり、GF(2)がnビットのビット列の集合{0,1}である。nの例はn=8,64,128などである。
Hereinafter, embodiments will be described with reference to the drawings.
[Definition]
Define terms and symbols.
GF (q) represents a finite field of order q, and GF (q n ) represents an nth-order extension field of the finite field GF (q). However, q is an integer (constant) of 2 or more, and n is an integer (constant) of 3 or more. For example, q = 2, GF (2) is a bit set {0, 1}, and GF (2 n ) is an n-bit bit string set {0, 1} n . Examples of n are n = 8, 64, 128, etc.

f(x)=x−f(x)であり、f(x)は多項式f(x)=xn(t−1)+・・・+xn(1)を表す。また、tは3≦t≦nの整数(定数)であり、xは不定元であり、n(t−1),・・・,n(1)はn/2>n(t−1)>・・・>n(1)=0を満たす整数である。 f (x) = x n −f 0 (x), and f 0 (x) represents the polynomial f 0 (x) = x n (t−1) +... + x n (1) . T is an integer (constant) of 3 ≦ t ≦ n, x is an indefinite element, and n (t−1),..., N (1) is n / 2> n (t−1). >...> An integer satisfying n (1) = 0.

α≫jはn個の元αn−1,・・・,α∈GF(q)からなる列α∈GF(q)に対する右jシフト演算を表す。ただし、jは正整数である。α≫jによってn個の元βn−1,・・・,β∈GF(q)からなる列β∈GF(q)が得られるとすると、βn−1,・・・,βn−jが0,・・・,0であり、βn−1−j,・・・,βがαn−1,・・・,αである。α≫0は無操作を表し、α≫0のための処理や構成は不要である。 α >> j represents a right j shift operation on a sequence αεGF (q n ) composed of n elements α n−1 ,..., α 0 εGF (q). However, j is a positive integer. If α >> j gives a sequence β∈GF (q n ) consisting of n elements β n−1 ,..., β 0 ∈GF (q), then β n−1 ,. n−j is 0,..., 0, and β n−1−j ,..., β 0 are α n−1 ,. α >> 0 indicates no operation, and processing and configuration for α >> 0 are not required.

α≪jはn個の元αn−1,・・・,α∈GF(q)からなる列α∈GF(q)に対する左jシフト演算である。α≪jによってn個の元βn−1,・・・,β∈GF(q)からなる列β∈GF(q)が得られるとすると、βn−1,・・・,βがαn−1−j,・・・,αであり、βj−1,・・・,βが0,・・・,0である。なお、右jシフト演算や左jシフト演算は、シフト命令によって実行されてもよいし、n個の有限体GF(q)の元からなる列を整数とみた場合の加算命令の組み合わせによって実行されてもよい。α≪0は無操作を表し、α≪0のための処理や構成は不要である。 α << j is a left j shift operation on a sequence αεGF (q n ) composed of n elements α n−1 ,..., α 0 εGF (q). If α << j gives a sequence βεGF (q n ) consisting of n elements β n−1 ,..., β 0 εGF (q), then β n−1 ,. j is α n−1−j ,..., α 0 , and β j−1 ,..., β 0 are 0,. Note that the right j shift operation and the left j shift operation may be executed by a shift instruction, or by a combination of addition instructions when a column consisting of elements of n finite fields GF (q) is regarded as an integer. May be. α << 0 represents no operation, and processing and configuration for α << 0 are not required.

α+β∈GF(q)は、列α,β∈GF(q)の拡大体GF(q)上での加算を表す。拡大体GF(q)がビット列の集合{0,1}である場合、α+β∈GF(q)はα(+)β∈{0,1}となる。ただし、α(+)βは、n個のビットαn−1,・・・,α∈{0,1}からなるビット列αとn個のビットβn−1,・・・,β∈{0,1}からなるビット列β∈{0,1}とのビットごとの排他的論理和演算

Figure 0005840086
を表す。 α + βεGF (q n ) represents the addition of the column α, βεGF (q n ) on the extension field GF (q n ). If the extension field GF (q n ) is a set of bit strings {0, 1} n , α + βεGF (q n ) becomes α (+) βε {0, 1} n . However, α (+) β is, the n-bit α n-1, ···, α 0 ∈ bit string alpha and n bits beta n-1 consisting of {0,1}, ···, β 0 Bitwise exclusive OR operation with bit sequence β∈ {0,1} n consisting of ∈ {0,1}
Figure 0005840086
Represents.

α&βは、n個のビットαn−1,・・・,α∈{0,1}からなるビット列αとn個のビットβn−1,・・・,β∈{0,1}からなるビット列β∈{0,1}とのビットごとのAND演算αn−1&βn−1,・・・,α&βを表す。 α & β is a bit string α composed of n bits α n−1 ,..., α 0 ε {0, 1} and n bits β n−1 ,..., β 0 ε {0, 1} Represents a bitwise AND operation α n−1 & β n−1 ,..., Α 0 & β 0 with a bit string β∈ {0, 1} n .

〔第1実施形態〕
<構成>
図1Aに例示するように、第1実施形態の縮約装置1は、入力部11、分割部12、演算部13,14(第1,2演算部)、出力部15、制御部16、および記憶部17を有する。縮約装置1は、例えば、CPU(central processing unit)、レジスタ、RAM(random-access memory)、ハードディスクなどを有する公知または専用のコンピュータに所定のプログラムが読み込まれることによって構成される特別な装置である。縮約装置1は、制御部16の制御のもとで各処理を行う。入力部11に入力されたデータおよび各処理で得られたデータは、逐一、記憶部17に格納される。記憶部17に格納されたデータは、必要に応じて読み出され、各部に入力されて各処理に用いられる。
[First Embodiment]
<Configuration>
As illustrated in FIG. 1A, the contracting device 1 according to the first embodiment includes an input unit 11, a division unit 12, calculation units 13 and 14 (first and second calculation units), an output unit 15, a control unit 16, and A storage unit 17 is included. The contracting device 1 is a special device configured by reading a predetermined program into a known or dedicated computer having, for example, a CPU (central processing unit), a register, a RAM (random-access memory), and a hard disk. is there. The contracting device 1 performs each process under the control of the control unit 16. Data input to the input unit 11 and data obtained in each process are stored in the storage unit 17 one by one. The data stored in the storage unit 17 is read out as necessary, input to each unit, and used for each process.

<方法>
図1Bに例示するように、入力部11には、多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)を特定するための情報rが入力される。例えば、多項式r(x)の係数列hn−1,・・・,h,kn−1,・・・,kがrとして入力される。なお、多項式r(x)の例は、n次以下の多項式どうしの乗算結果である(ステップS11)。
<Method>
As illustrated in FIG. 1B, the input unit 11 includes a polynomial r (x) = (h n−1 × x n−1 +... + H 0 × x 0 ) × x n + (k n−1 × x n-1 +... + k 0 × x 0 ) is specified. For example, a coefficient sequence h n−1 ,..., H 0 , k n−1 ,..., K 0 of a polynomial r (x) is input as r. An example of the polynomial r (x) is a multiplication result of polynomials of order n or less (step S11).

分割部12に情報rが入力される。図2Aに例示するように、分割部12は、多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)に対して、n個の元hn−1,・・・,h∈GF(q)からなる列h∈GF(q)およびn個の元kn−1,・・・,k∈GF(q)からなる列k∈GF(q)を得(h|k←r)、列hおよびkを出力する。例えば、GF(q)がnビットのビット列の集合{0,1}である場合、分割部12は、ビット列h|kを分割してnビットのビット列h,k∈{0,1}を得、ビット列h,kを出力する(ステップS12)。 Information r is input to the dividing unit 12. As illustrated in FIG. 2A, the dividing unit 12 includes a polynomial r (x) = (h n−1 × x n−1 +... + H 0 × x 0 ) × x n + (k n−1 × x n−1 +... + k 0 × x 0 ), a sequence h∈GF (q n ) and n elements consisting of n elements h n−1 ,..., h 0 ∈GF (q) To obtain a column kεGF (q n ) consisting of elements k n−1 ,..., K 0 εGF (q) (h | k ← r), and outputs columns h and k. For example, when GF (q n ) is an n-bit bit string set {0, 1} n , the dividing unit 12 divides the bit string h | k to obtain an n-bit bit string h, kε {0, 1}. n is obtained, and bit strings h and k are output (step S12).

演算部13に列hが入力される。図2Bに例示するように、演算部13は、列H=h+h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)を得、列Hを出力する。すなわち、演算部13は、h≫n−n(i)(i=1,・・・,t−1)の拡大体GF(q)上での加算値を列Hとして出力する。例えば、GF(q)がnビットのビット列の集合{0,1}である場合、演算部13は、ビット列H=h(+)h≫n−n(2)(+)・・・(+)h≫n−n(t−1)∈{0,1}を得、ビット列Hを出力する。なお、図2Bにおけるh(i)は、hn−1,・・・,hn−n(i)からなる列を表す(ステップS13)。 The column h is input to the calculation unit 13. As illustrated in FIG. 2B, the calculation unit 13 obtains a column H = h + h >> n−n (2) +... + H >> n−n (t−1) εGF (q n ), Output. That is, the calculation unit 13 outputs, as a column H, an addition value on the expanded field GF (q n ) of h >> n−n (i) (i = 1,..., T−1). For example, when GF (q n ) is an n-bit bit string set {0, 1} n , the arithmetic unit 13 sets the bit string H = h (+) h >> n−n (2) (+). (+) H >> n−n (t−1) ε {0, 1} n is obtained, and the bit string H is output. Note that h (i) in FIG. 2B represents a sequence of h n−1 ,..., H n−n (i) (step S13).

演算部14に列Hおよび列kが入力される。図2Cに例示するように、演算部14は、列R=k+H≪n(1)+・・・+H≪n(t−1)∈GF(q)を得、列Rを出力する。すなわち、演算部14は、k,H≪n(1),・・・,H≪n(t−1)の拡大体GF(q)上での加算値を列Rとして出力する。例えば、GF(q)がnビットのビット列の集合{0,1}である場合、演算部14は、ビット列R=k(+)H≪n(1)(+)・・・(+)H≪n(t−1)∈{0,1}を得、ビット列Rを出力する(ステップS14)。 The column H and the column k are input to the calculation unit 14. As illustrated in FIG. 2C, the calculation unit 14 obtains a sequence R = k + H << n (1) +... + H << n (t−1) εGF (q n ) and outputs the sequence R. That is, the calculation unit 14 outputs, as a column R, an addition value on the expanded field GF (q n ) of k, H << n (1) , ..., H << n (t-1) . For example, when GF (q n ) is an n-bit bit string set {0, 1} n , the arithmetic unit 14 sets the bit string R = k (+) H << n (1) (+) (+ ) H << n (t-1) ε {0,1} n is obtained, and the bit string R is output (step S14).

出力部15は、演算部14で得られた列Rを出力する(ステップS15)。   The output unit 15 outputs the column R obtained by the calculation unit 14 (step S15).

<本形態の特徴>
本形態では、従来のアルゴリズム3のステップ3および4(図8Cおよび図9)での左シフト演算とGF(q)上での演算(例えば排他的論理和演算)とをステップS13(図2B)でまとめて実行している。シフト演算およびGF(q)上での加減算(例えば排他的論理和演算)は可換であるため、これらの演算の順序を入れ替えても得られる結果は同一であり、ステップS14で得られる列Rはr(x) mod f(x)の係数列となる。よって、本形態では従来よりも効率よく高速に縮約演算を行うことができる。
<Features of this embodiment>
In this embodiment, the left shift operation in steps 3 and 4 (FIGS. 8C and 9) of the conventional algorithm 3 and the operation (for example, exclusive OR operation) on GF (q n ) are performed in step S13 (FIG. 2B). ) Since the shift operation and the addition / subtraction (for example, exclusive OR operation) on GF (q n ) are commutative, the result obtained even if the order of these operations is changed is the same, and the sequence obtained in step S14 R is a coefficient sequence of r (x) mod f (x). Therefore, in this embodiment, the reduction calculation can be performed more efficiently and at a higher speed than in the past.

〔第2実施形態〕
本形態は第1実施形態の変形例であり、事前計算値が格納されたテーブルを用いて演算効率を向上させる。さらに本形態では、事前計算対象を工夫し、必要なテーブルのサイズを小さくする。以下の説明では、すでに説明した事項と共通する部分については同じ参照符号を用いて説明を省略する。
[Second Embodiment]
This embodiment is a modification of the first embodiment, and improves the calculation efficiency using a table in which precalculated values are stored. Further, in this embodiment, the pre-calculation target is devised to reduce the necessary table size. In the following description, the same reference numerals are used for the same parts as those already described, and the description is omitted.

<構成>
図1Aに例示するように、第2実施形態の縮約装置2は、入力部11、分割部12、演算部23,14(第1,2演算部)、出力部15、制御部16、記憶部17、およびテーブル記憶部28を有する。縮約装置2は、例えば、公知または専用のコンピュータに所定のプログラムが読み込まれることによって構成される特別な装置である。縮約装置2は、制御部16の制御のもとで各処理を行う。入力部11に入力されたデータおよび各処理で得られたデータは、逐一、記憶部17に格納される。記憶部17に格納されたデータは、必要に応じて読み出され、各部に入力されて各処理に用いられる。
<Configuration>
As illustrated in FIG. 1A, the contracting device 2 according to the second embodiment includes an input unit 11, a division unit 12, calculation units 23 and 14 (first and second calculation units), an output unit 15, a control unit 16, and storage. Unit 17 and table storage unit 28. The contracting device 2 is a special device configured by, for example, reading a predetermined program into a known or dedicated computer. The contracting device 2 performs each process under the control of the control unit 16. Data input to the input unit 11 and data obtained in each process are stored in the storage unit 17 one by one. The data stored in the storage unit 17 is read out as necessary, input to each unit, and used for each process.

[テーブル記憶部28]
テーブル記憶部28は、n個の元γn−1,・・・,γ∈GF(q)からなるq種類の列γ∈GF(q)に対するγ≫n−n(t−1)によって得られるqn(t−1)種類の列のそれぞれに対し、対応する列Γ=γ≫n−n(2)+・・・+γ≫n−n(t−1)∈GF(q)を対応付けたテーブルを格納する。例えば、GF(q)がnビットのビット列の集合{0,1}である場合、テーブル記憶部28は、n個のビットγn−1,・・・,γ∈{0,1}からなる2種類のビット列γ∈{0,1}に対するγ≫n−n(t−1)によって得られる2n(t−1)種類のビット列のそれぞれに対し、対応するビット列Γ=γ≫n−n(2)+・・・+γ≫n−n(t−1)∈{0,1}を対応付けたテーブルを格納する。
[Table storage unit 28]
The table storage unit 28 selects γ >> n−n (t−1 ) for q n types of columns γ∈GF (q n ) including n elements γ n−1 ,..., Γ 0 ∈GF (q). ) For each of the q n (t−1) types of columns obtained by: γ = γ >> n−n (2) +... + Γ >> n−n (t−1) ∈GF (q n ) is stored. For example, when GF (q n ) is an n-bit bit string set {0, 1} n , the table storage unit 28 has n bits γ n−1 ,..., Γ 0 ε {0, 1 } For each of 2 n (t−1) types of bit sequences obtained by γ >> n−n (t−1) for 2 n types of bit sequences γ∈ {0, 1} n . γ >> n−n (2) +... + γ >> n−n (t−1) ε {0, 1} A table in which n is associated is stored.

γ≫n−n(i)は0,・・・,0,γn−1,・・・,γn−n(i)からなり、γ≫n−n(t−1)は0,・・・,0,γn−1,・・・,γn−n(t−1)からなる。列Γ=γ≫n−n(2)+・・・+γ≫n−n(t−1)は、qn(t−1)種類の列γn−1,・・・,γn−n(t−1)のみに依存し、qn(t−1)種類の列Γのみが存在する。テーブル記憶部28に格納されるテーブルは、これらのqn(t−1)種類の列γn−1,・・・,γn−n(t−1)とそれぞれに対応する列Γとを対応付けたものである。ここでn/2>n(t−1)であるため、テーブル記憶部28に格納されるテーブルのサイズは、n個のGF(q)の元の組み合わせからなるq種類の列についてのテーブルのサイズに比べて小さい。 γ >> n−n (i) is composed of 0,..., 0, γ n−1 ,..., γ n−n (i) , and γ >> n−n (t−1) is 0 ,. .., 0, γ n−1 ,..., Γ n−n (t−1) . Column Γ = γ »n-n (2 ) + ··· + γ »n-n (t-1) is, q n (t-1) column type γ n-1, ···, γ n-n Depending on (t-1) only, there are only q n (t-1) types of columns Γ. The table stored in the table storage unit 28 includes these q n (t−1) types of columns γ n−1 ,..., Γ n−n (t−1) and the corresponding column Γ. It is a correspondence. Here, since n / 2> n (t−1), the size of the table stored in the table storage unit 28 is a table for q n types of columns consisting of the original combinations of n GF (q). Small compared to the size of

<方法>
図1Bに例示するように、まず第1実施形態で説明したステップS11およびS12が実行される。
<Method>
As illustrated in FIG. 1B, first, steps S11 and S12 described in the first embodiment are executed.

次に演算部23に列hが入力される。演算部23は、テーブル記憶部28を参照し、h≫n−n(t−1)によって得られる列に対応する列h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)(すなわちh≫n−n(t−1)に対応する列h≫n−n(2)+・・・+h≫n−n(t−1))を得る。言い換えると、演算部23は、入力されたhから列h≫n−n(2)+・・・+h≫n−n(t−1)を得、列h≫n−n(2)+・・・+h≫n−n(t−1)に一致する列Γ=γ≫n−n(2)+・・・+γ≫n−n(t−1)に対応する列γn−1,・・・,γn−n(t−1)をテーブルから抽出し、それをh≫n−n(2)+・・・+h≫n−n(t−1)として得る。さらに演算部23は、得られたh≫n−n(2)+・・・+h≫n−n(t−1)を用いて列H=h+(h≫n−n(2)+・・・+h≫n−n(t−1))∈GF(q)を得、列Hを出力する(ステップS23)。 Next, the column h is input to the calculation unit 23. The calculation unit 23 refers to the table storage unit 28, and corresponds to the column h >> n−n (2) +... + H >> n−n (t ) corresponding to the column obtained by h >> n−n (t−1) . −1) εGF (q n ) (that is, a sequence h >> n−n (2) +... + H >> n −n (t−1) corresponding to h >> n −n (t−1) ) is obtained. . In other words, the arithmetic unit 23 obtains a sequence h >> n−n (2) +... + H >> n−n (t−1) from the input h, and a sequence h >> n−n (2) +. A sequence Γ = γ >> nn− (2) +... + Γ >> n−n (t−1) corresponding to + h >> n −n (t−1) , a column γ n−1 corresponding to n−n (t−1),. ..., [Gamma] n-n (t-1) is extracted from the table and obtained as h >> n-n (2) +... + H >> n-n (t-1) . Further, the calculation unit 23 uses the obtained h >> n−n (2) +... + H >> n−n (t−1) to obtain a sequence H = h + (h >> n−n (2) +. + H >> n−n (t−1) ) εGF (q n ) is obtained, and the column H is output (step S23).

その後、第1実施形態で説明したステップS14およびS15が実行される。   Thereafter, steps S14 and S15 described in the first embodiment are executed.

<本形態の特徴>
本形態では、qn(t−1)種類の列γn−1,・・・,γn−n(t−1)とそれぞれに対応する列Γとを対応付けた小さなサイズのテーブルを用い、列hに対応する列h≫n−n(2)+・・・+h≫n−n(t−1)を抽出し、抽出した列h≫n−n(2)+・・・+h≫n−n(t−1)を用いて列H=h+(h≫n−n(2)+・・・+h≫n−n(t−1))を計算する。これにより、大きなサイズのテーブルを用いることなく、演算効率をさらに向上させることができる。
<Features of this embodiment>
In the present embodiment, a small-size table is used in which q n (t−1) types of columns γ n−1 ,..., Γ n−n (t−1) are associated with columns Γ corresponding thereto. , column h »n-n (2) corresponding to the column h + ··· + h »n-n (t-1) to extract, extraction column h »n-n (2) + ··· + h » The column H = h + (h >> n−n (2) +... + h >> n−n (t−1) ) is calculated using n−n (t−1) . Thereby, the calculation efficiency can be further improved without using a large-sized table.

〔第3実施形態〕
本形態は第1,2実施形態の変形例である。多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)の次数が2n−1次未満であることが分かっている場合(すなわち、hn−1=・・・=hn−c=0、cが1≦c≦nの整数の場合)には、テーブル記憶部に格納するテーブルのサイズをさらに縮小できる。例えば、多項式r(x)がn−1次多項式どうしの乗算結果である場合などである。
[Third Embodiment]
This embodiment is a modification of the first and second embodiments. Polynomial r (x) = (h n -1 × x n-1 + ··· + h 0 × x 0) × x n + (k n-1 × x n-1 + ··· + k 0 × x 0) Is known to be less than 2n−1 (ie, h n−1 =... = H nc = 0, c is an integer 1 ≦ c ≦ n), The size of the table stored in the table storage unit can be further reduced. For example, there is a case where the polynomial r (x) is a multiplication result of n-1 order polynomials.

<構成>
図1Aに例示するように、第3実施形態の縮約装置3は、入力部11、分割部12、演算部33,14(第1,2演算部)、出力部15、制御部16、記憶部17、およびテーブル記憶部38を有する。縮約装置3は、例えば、公知または専用のコンピュータに所定のプログラムが読み込まれることによって構成される特別な装置である。縮約装置3は、制御部16の制御のもとで各処理を行う。入力部11に入力されたデータおよび各処理で得られたデータは、逐一、記憶部17に格納される。記憶部17に格納されたデータは、必要に応じて読み出され、各部に入力されて各処理に用いられる。
<Configuration>
As illustrated in FIG. 1A, the contracting device 3 according to the third embodiment includes an input unit 11, a division unit 12, calculation units 33 and 14 (first and second calculation units), an output unit 15, a control unit 16, and storage. Unit 17 and table storage unit 38. The contracting device 3 is a special device configured by, for example, reading a predetermined program into a known or dedicated computer. The contracting device 3 performs each process under the control of the control unit 16. Data input to the input unit 11 and data obtained in each process are stored in the storage unit 17 one by one. The data stored in the storage unit 17 is read out as necessary, input to each unit, and used for each process.

[テーブル記憶部38]
テーブル記憶部38は、n個の元γn−1,・・・,γ∈GF(q)からなるqn−c種類の列γ∈GF(q)に対するγ≫n−n(t−1)によって得られるqn(t−1)−c種類の列のそれぞれに対し、対応する列Γ=γ≫n−n(2)+・・・+γ≫n−n(t−1)∈GF(q)を対応付けたテーブルを格納する。ただし、γn−1=・・・=γn−c=0であり、hn−1=・・・=hn−c=0である。またcが1≦c≦nの整数であり、例えばc=1である。
[Table storage unit 38]
The table storage unit 38 selects γ >> n−n (t for q nc types of columns γ∈GF (q n ) composed of n elements γ n−1 ,..., Γ 0 ∈GF (q). -1) for each of the q n (t-1) -c types of columns obtained, the corresponding column Γ = γ >> n−n (2) +... + Γ >> n−n (t−1) A table in which εGF (q n ) is associated is stored. However, γ n−1 =... = Γ n−c = 0 and h n−1 =... = H n−c = 0. C is an integer of 1 ≦ c ≦ n, for example, c = 1.

γ≫n−n(i)は0,・・・,0,γn−1,・・・,γn−n(i)からなり、γ≫n−n(t−1)は0,・・・,0,γn−1,・・・,γn−n(t−1)からなる。しかしながら、本形態ではhn−1=・・・=hn−c=0であるため、γn−1=・・・=γn−c=0としてよい。この場合の列Γ=γ≫n−n(2)+・・・+γ≫n−n(t−1)は、qn(t−1)−c種類の列γn−c−1,・・・,γn−n(t−1)のみに依存し、qn(t−1)−c種類の列Γのみが存在する。テーブル記憶部38に格納されるテーブルは、これらのqn(t−1)−c種類の列γn−c−1,・・・,γn−n(t−1)とそれぞれに対応する列Γとを対応付けたものである。このテーブルのサイズは第2実施形態のものよりも小さい。 γ >> n−n (i) is composed of 0,..., 0, γ n−1 ,..., γ n−n (i) , and γ >> n−n (t−1) is 0 ,. .., 0, γ n−1 ,..., Γ n−n (t−1) . However, in the present embodiment, h n−1 =... = H n−c = 0, so that γ n−1 =... = Γ n−c = 0. In this case, the sequence Γ = γ >> n−n (2) +... + Γ >> n−n (t−1) is the sequence of q n (t−1) −c types of columns γ n−c−1 ,. .., Depends only on [gamma] n-n (t-1), and there are only qn (t-1) -c types of columns [Gamma]. The table stored in the table storage unit 38 corresponds to each of these q n (t-1) -c types of columns γ n−c−1 ,..., Γ n−n (t−1). This is associated with the column Γ. The size of this table is smaller than that of the second embodiment.

<方法>
図1Bに例示するように、まず第1実施形態で説明したステップS11およびS12が実行される。
<Method>
As illustrated in FIG. 1B, first, steps S11 and S12 described in the first embodiment are executed.

次に演算部33に列hが入力される。演算部33は、テーブル記憶部38を参照し、h≫n−n(t−1)によって得られる列に対応する列h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)(すなわちh≫n−n(t−1)に対応する列h≫n−n(2)+・・・+h≫n−n(t−1))を得る。言い換えると、演算部33は、入力されたhから列h≫n−n(2)+・・・+h≫n−n(t−1)を得、列h≫n−n(2)+・・・+h≫n−n(t−1)に一致する列Γ=γ≫n−n(2)+・・・+γ≫n−n(t−1)に対応する列γn−1,・・・,γn−n(t−1)をテーブルから抽出し、それをh≫n−n(2)+・・・+h≫n−n(t−1)として得る。さらに演算部33は、得られたh≫n−n(2)+・・・+h≫n−n(t−1)を用いてH=h+(h≫n−n(2)+・・・+h≫n−n(t−1))∈GF(q)を得、列Hを出力する(ステップS23)。 Next, the column h is input to the calculation unit 33. The computing unit 33 refers to the table storage unit 38, and corresponds to the column h >> n−n (2) +... + H >> n−n (t ) corresponding to the column obtained by h >> n−n (t−1) . −1) εGF (q n ) (that is, a sequence h >> n−n (2) +... + H >> n −n (t−1) corresponding to h >> n −n (t−1) ) is obtained. . In other words, the calculation unit 33 obtains a sequence h >> n−n (2) +... + H >> n−n (t−1) from the input h, and a sequence h >> n−n (2) +. A sequence Γ = γ >> nn− (2) +... + Γ >> n−n (t−1) corresponding to + h >> n −n (t−1) , a column γ n−1 corresponding to n−n (t−1),. ..., [Gamma] n-n (t-1) is extracted from the table and obtained as h >> n-n (2) +... + H >> n-n (t-1) . Further, the calculation unit 33 uses the obtained h >> n−n (2) +... + H >> n−n (t−1) to obtain H = h + (h >> n−n (2) +. + H >> n−n (t−1) ) ∈GF (q n ) is obtained, and the column H is output (step S23).

その後、第1実施形態で説明したステップS14およびS15が実行される。   Thereafter, steps S14 and S15 described in the first embodiment are executed.

<本形態の特徴>
以上のように、多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)の次数が2n−1次未満であることが分かっている場合には、テーブル記憶部38に格納するテーブルのサイズをさらに縮小できる。
<Features of this embodiment>
As described above, the polynomial r (x) = (h n−1 × x n−1 +... + H 0 × x 0 ) × x n + (k n−1 × x n−1 +... + K When it is known that the order of ( 0 × x 0 ) is less than 2n−1, the size of the table stored in the table storage unit 38 can be further reduced.

〔第4実施形態〕
本形態は第1実施形態の変形例であり、拡大体GF(q)上での加算とシフト演算との順序を入れ替えたものである。すなわち、ステップS13で列H=h+(h≫n−n(2)+・・・+h≫n−n(t−1))∈GF(q)を計算することなく、列kと、列hについてのh≪n(1)+・・・+h≪n(t−1)∈GF(q)と、列h’=h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)についてのη=h’≪n(1)+・・・+h’≪n(t−1)∈GF(q)とから、R=k+h≪n(1)+・・・+h≪n(t−1)+η∈GF(q)を得る。
[Fourth Embodiment]
This embodiment is a modification of the first embodiment, in which the order of addition and shift operation on the extension field GF (q n ) is changed. That is, without calculating the column H = h + (h >> n−n (2) +... + H >> n−n (t−1) ) ∈GF (q n ) in step S13, the column k and the column h << n (1) + ... + h << n (t-1) εGF (qn) for h and the sequence h '= h >> n-n (2) + ... + h >> n-n (T−1) η = h ′ << n (1) +... + H ′ << n (t−1) ∈GF (q n ) for ∈GF (q n ), R = k + h << n ( 1) + ... + h << n (t-1) + η∈GF (q n ) is obtained.

<構成>
図3Aに例示するように、第4実施形態の縮約装置4は、入力部11、分割部12、演算部44、出力部15、制御部16、および記憶部17を有する。縮約装置4は、例えば、公知または専用のコンピュータに所定のプログラムが読み込まれることによって構成される特別な装置である。縮約装置4は、制御部16の制御のもとで各処理を行う。入力部11に入力されたデータおよび各処理で得られたデータは、逐一、記憶部17に格納される。記憶部17に格納されたデータは、必要に応じて読み出され、各部に入力されて各処理に用いられる。
<Configuration>
As illustrated in FIG. 3A, the contracting device 4 according to the fourth embodiment includes an input unit 11, a dividing unit 12, a calculation unit 44, an output unit 15, a control unit 16, and a storage unit 17. The contracting device 4 is a special device configured by, for example, reading a predetermined program into a known or dedicated computer. The contracting device 4 performs each process under the control of the control unit 16. Data input to the input unit 11 and data obtained in each process are stored in the storage unit 17 one by one. The data stored in the storage unit 17 is read out as necessary, input to each unit, and used for each process.

<方法>
図3Bに例示するように、まず第1実施形態で説明したステップS11およびS12が実行される。
<Method>
As illustrated in FIG. 3B, first, steps S11 and S12 described in the first embodiment are executed.

次に演算部44に列h,kが入力される。演算部44は、列h’=h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)を得、列η=h’≪n(1)+・・・+h’≪n(t−1)∈GF(q)を得、列R=k+h≪n(1)+・・・+h≪n(t−1)+η∈GF(q)を得、列Rを出力する(ステップS44)。 Next, the columns h and k are input to the calculation unit 44. The calculation unit 44 obtains a sequence h ′ = h >> n−n (2) +... + H >> n−n (t−1) ∈GF (q n ), and obtains a sequence η = h ′ << n (1). + ... + h ′ << n (t−1) ∈GF (q n ), and the sequence R = k + h << n (1) +... + H << n (t−1) + η∈GF (q n ) And output the column R (step S44).

その後、第1実施形態で説明したS15が実行される。   Thereafter, S15 described in the first embodiment is executed.

<本形態の特徴>
シフト演算およびGF(q)上での加減算は可換であるため、本形態の方法でもr(x) mod f(x)の係数列Rを求めることができ、環境によっては第1実施形態の方法よりも効率よく高速に縮約演算を行うことができる。
<Features of this embodiment>
Since the shift operation and the addition / subtraction on GF (q n ) are commutative, the coefficient sequence R of r (x) mod f (x) can also be obtained by the method of this embodiment. Depending on the environment, the first embodiment The reduction operation can be performed more efficiently and faster than the above method.

〔第4実施形態の変形例1〕
第4実施形態の変形例1では、第4実施形態において事前計算値が格納されたテーブルを用い、演算効率を向上させる。
[Modification 1 of Fourth Embodiment]
In the modification 1 of 4th Embodiment, the calculation efficiency is improved using the table in which the precomputed value was stored in 4th Embodiment.

<構成>
図3Aに例示するように、第4実施形態の変形例1の縮約装置4’は、入力部11、分割部12、演算部44’、出力部15、制御部16、記憶部17、およびテーブル記憶部48’を有する。
<Configuration>
As illustrated in FIG. 3A, the contracting device 4 ′ of Modification 1 of the fourth embodiment includes an input unit 11, a division unit 12, a calculation unit 44 ′, an output unit 15, a control unit 16, a storage unit 17, and It has a table storage unit 48 '.

[テーブル記憶部48’]
テーブル記憶部48’は、n個の元γn−1,・・・,γ∈GF(q)からなるq種類の列γ∈GF(q)に対するγ≫n−n(t−1)によって得られるqn(t−1)種類の列のそれぞれに対し、対応する列Γ’=γ’≪n(1)+・・・+γ’≪n(t−1)∈GF(q)を対応付けたテーブルを格納する。ただし、γ’=γ≫n−n(2)+・・・+γ≫n−n(t−1)∈GF(q)である。
[Table storage unit 48 ']
The table storage unit 48 ′ stores γ >> n−n (t− ) for q n types of columns γεGF (q n ) including n elements γ n−1 ,..., Γ 0 εGF (q). For each of the q n (t−1) types of columns obtained by 1) , the corresponding sequence Γ ′ = γ ′ << n (1) +... + Γ ′ << n (t−1) ∈GF (q n ) is stored. However, a γ '= γ »n-n ( 2) + ··· + γ »n-n (t-1) ∈GF (q n).

<方法>
図3Bに例示するように、まず第1実施形態で説明したステップS11およびS12が実行される。
<Method>
As illustrated in FIG. 3B, first, steps S11 and S12 described in the first embodiment are executed.

次に演算部44’に列hが入力される。演算部44’は、テーブル記憶部48’を参照し、h≫n−n(t−1)によって得られる列に対応するη=h’≪n(1)+・・・+h’≪n(t−1)∈GF(q)(すなわちh≫n−n(t−1)に対応する列η)を抽出する。ただし、h’=h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)である。演算部44’にはさらに列kが入力され、演算部44’は、列k,hおよびηを用いて列R=k+h≪n(1)+・・・+h≪n(t−1)+η∈GF(q)を得、列Rを出力する(ステップS44’)。 Next, the column h is input to the calculation unit 44 ′. The computing unit 44 ′ refers to the table storage unit 48 ′, and η = h ′ << n (1) +... + H ′ << n ( corresponding to the column obtained by h >> n−n (t−1) . t−1) εGF (q n ) (ie, column η corresponding to h >> n−n (t−1) ) is extracted. However, h ′ = h >> n−n (2) +... + H >> n−n (t−1) εGF (q n ). The column k is further input to the calculation unit 44 ′, and the calculation unit 44 ′ uses the columns k, h, and η to calculate the column R = k + h << n (1) +... + H << n (t−1) + η ΕGF (q n ) is obtained, and the column R is output (step S44 ′).

その後、第1実施形態で説明したS15が実行される。   Thereafter, S15 described in the first embodiment is executed.

<本形態の特徴>
本形態では、qn(t−1)種類の列のそれぞれに対し、対応する列Γ’=γ’≪n(1)+・・・+γ’≪n(t−1)∈GF(q)を対応付けたサイズの小さなテーブルを用い、さらに効率よく高速に縮約演算を行うことができる。
<Features of this embodiment>
In this embodiment, for each of the q n (t−1) types of columns, the corresponding column Γ ′ = γ ′ << n (1) +... + Γ ′ << n (t−1) ∈GF (q n ) Can be used to perform the reduction operation more efficiently and at high speed.

〔第4実施形態の変形例2〕
多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)の次数が2n−1次未満であることが分かっている場合(すなわち、hn−1=・・・=hn−c=0、cが1≦c≦nの整数の場合)には、テーブル記憶部に格納するテーブルのサイズをさらに縮小できる。
[Modification 2 of the fourth embodiment]
Polynomial r (x) = (h n -1 × x n-1 + ··· + h 0 × x 0) × x n + (k n-1 × x n-1 + ··· + k 0 × x 0) Is known to be less than 2n−1 (ie, h n−1 =... = H nc = 0, c is an integer 1 ≦ c ≦ n), The size of the table stored in the table storage unit can be further reduced.

<構成>
図3Aに例示するように、第4実施形態の変形例2の縮約装置4’’は、入力部11、分割部12、演算部44’’、出力部15、制御部16、記憶部17、およびテーブル記憶部48’’を有する。
<Configuration>
As illustrated in FIG. 3A, the contracting device 4 ″ according to the second modification of the fourth embodiment includes an input unit 11, a dividing unit 12, a calculation unit 44 ″, an output unit 15, a control unit 16, and a storage unit 17. And a table storage unit 48 ″.

[テーブル記憶部48’’]
テーブル記憶部48’’は、n個の元γn−1,・・・,γ∈GF(q)からなるqn−c種類の列γ∈GF(q)に対するγ≫n−n(t−1)によって得られるqn(t−1)−c種類の列のそれぞれに対し、対応する列Γ’=γ’≪n(1)+・・・+γ’≪n(t−1)∈GF(q)を対応付けたテーブルを格納する。ただし、γ’=γ≫n−n(2)+・・・+γ≫n−n(t−1)∈GF(q)であり、hn−1=・・・=hn−c=0であり、γn−1=・・・=γn−c=0である。cが1≦c≦nの整数であり、cの例はc=1である。
[Table storage section 48 '']
Table storage unit 48 '' is, n number of elements γ n-1, ···, consisting γ 0 ∈GF (q) q n -c column type γ∈GF (q n) for γ »n-n For each of the q n (t−1) -c types of columns obtained by (t−1) , the corresponding column Γ ′ = γ ′ << n (1) +... + Γ ′ << n (t−1 ) Store a table in which εGF (q n ) is associated. However, a γ '= γ »n-n ( 2) + ··· + γ »n-n (t-1) ∈GF (q n), h n-1 = ··· = h n-c = 0, and γ n−1 =... = Γ n−c = 0. c is an integer of 1 ≦ c ≦ n, and an example of c is c = 1.

<方法>
図3Bに例示するように、まず第1実施形態で説明したステップS11およびS12が実行される。
<Method>
As illustrated in FIG. 3B, first, steps S11 and S12 described in the first embodiment are executed.

次に演算部44’’に列hが入力される。演算部44’’は、テーブル記憶部48’’を参照し、h≫n−n(t−1)によって得られる列に対応する列η=h’≪n(1)+・・・+h’≪n(t−1)∈GF(q)(すなわちh≫n−n(t−1)に対応する列η)を抽出する。ただし、h’=h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)である。演算部44’’にはさらに列kが入力され、演算部44’’は、列k,hおよびηを用いて列R=k+h≪n(1)+・・・+h≪n(t−1)+η∈GF(q)を得、列Rを出力する(ステップS44’’)。 Next, the column h is input to the calculation unit 44 ''. The computing unit 44 ″ refers to the table storage unit 48 ″, and the column η = h ′ << n (1) +... + H ′ corresponding to the column obtained by h >> n−n (t−1) . << n (t-1) εGF (q n ) (that is, column η corresponding to h >> n−n (t−1) ) is extracted. However, h ′ = h >> n−n (2) +... + H >> n−n (t−1) εGF (q n ). The column k is further input to the calculation unit 44 ″, and the calculation unit 44 ″ uses the columns k, h, and η to calculate the column R = k + h << n (1) +... + H << n (t−1 ) + Η∈GF (q n ) is obtained, and the column R is output (step S44 ″).

その後、第1実施形態で説明したS15が実行される。   Thereafter, S15 described in the first embodiment is executed.

<本形態の特徴>
以上のように、多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)の次数が2n−1次未満であることが分かっている場合には、テーブル記憶部48’’に格納するテーブルのサイズをさらに縮小できる。
<Features of this embodiment>
As described above, the polynomial r (x) = (h n−1 × x n−1 +... + H 0 × x 0 ) × x n + (k n−1 × x n−1 +... + K If it is known that the order of ( 0 × x 0 ) is less than 2n−1, the size of the table stored in the table storage unit 48 ″ can be further reduced.

〔第5実施形態〕
本形態は第4実施形態の変形例である。hn−1=0、q=2、t=5、n(4)=4,n(3)=3,n(2)=1,n(1)=0(例えばf(x)=x+x+x+1)の場合には、第4実施形態で説明した列η=h’≪n(1)+・・・+h’≪n(t−1)∈GF(q)(ただし、h’=h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q))を効率よく計算することができる。なお、q=2,f(x)=x+x+x+1,n=8,64,320のとき、f(x)=x−f(x)は既約多項式である。
[Fifth Embodiment]
This embodiment is a modification of the fourth embodiment. h n-1 = 0, q = 2, t = 5, n (4) = 4, n (3) = 3, n (2) = 1, n (1) = 0 (for example, f 0 (x) = In the case of x 4 + x 3 + x + 1), the sequence η = h ′ << n (1) +... + h ′ << n (t−1) ∈GF (q n ) described in the fourth embodiment (where h ′ = h >> n−n (2) +... + h >> n−n (t−1) εGF (q n )) can be efficiently calculated. Note that when q = 2, f 0 (x) = x 4 + x 3 + x + 1, n = 8, 64, 320, f (x) = x n −f 0 (x) is an irreducible polynomial.

すなわち、n(4)=4,n(3)=3,n(2)=1,n(1)=0の場合、列ηは以下のように変形できる。
η=h’+h’≪1+h’≪3+h’≪4∈GF(q
=(h’+h’≪1)+(h’+h’≪1≪3 …(1)
従って、(h’+h’≪1)を中間値として計算し、その中間値を用いて列ηを計算することで、演算量を削減できる。
That is, when n (4) = 4, n (3) = 3, n (2) = 1, and n (1) = 0, the column η can be modified as follows.
η = h ′ + h ′ << 1 + h '<< 3 + h'<< 4 ∈GF (q n )
= (H '+ h'<< 1 ) + (h '+ h'<< 1) << 3 (1)
Therefore, the amount of calculation can be reduced by calculating (h ′ + h ′ << 1 ) as an intermediate value and calculating the column η using the intermediate value.

さらに本形態ではhn−1=0であり、列h≫n−1の要素がすべて0となることを利用し、中間値(h’+h’≪1)を効率的に計算する。すなわち、本形態の条件の場合、列h’は以下のように変形できる。
h’=h≫n−1+h≫n−3+h≫n−4∈GF(q
=h≫n−3+h≫n−4
Furthermore, in this embodiment, h n−1 = 0 and the fact that all the elements in the sequence h >> n−1 are 0 is used to efficiently calculate the intermediate value (h ′ + h ′ << 1 ). That is, in the case of the conditions of this embodiment, the column h ′ can be modified as follows.
h ′ = h >> n−1 + h >> n−3 + h >> n 4∈GF (q n )
= H >> n-3 + h >> n-4

従って、(h’+h’≪1)∈GF(q)は、以下のように変形できる。
(h’+h’≪1)∈GF(q
=(h≫n−3+h≫n−4)+(h≫n−3+h≫n−4≪1
=(h≫n−4≪1+(h≫n−4+(h≫n−3≪1)+h≫n−3
=(h≫n−4≪1+t+h≫n−3 …(2)
ただし、列t∈GF(q)は、n個の元0,・・・,0,ε∈GF(q)からなる列であり、h≫n−4がn個の元εn−1,・・・,ε∈GF(q)からなるとする。
Therefore, (h ′ + h ′ << 1 ) ∈GF (q n ) can be transformed as follows.
(H ′ + h ′ << 1 ) ∈GF (q n )
= (H >> n-3 + h >> n-4 ) + (h >> n-3 + h >> n-4 ) << 1
= (H >> n-4 ) << 1+ (h >> n-4 + (h >> n-3 ) << 1 ) + h >> n-3
= (H »n-4) «1 + t 0 + h »n-3 ... (2)
However, the column t 0 εGF (q n ) is a column composed of n elements 0,..., 0, ε 0 εGF (q), and h >> n -4 is n elements ε n. −1 ,..., Ε 0 εGF (q).

なお、q=2のときにt=(h≫n−4+(h≫n−3≪1)となることは容易に確認できる。例えばn=64の場合、列h=(a63,a62,a61,a60,a59,..,a)とおくと、以下が成り立つ。
≫n−4=(0,・・・,0,a63,a62,a61,a60
≫n−3=(0,・・・,0,a63,a62,a61
(h≫n−3≪1=(0,・・・,0,a63,a62,a61,0)
=(h≫n−4+(h≫n−3≪1)=(0,・・・,0,a60)∈GF(2
Note that it can be easily confirmed that t 0 = (h >> n−4 + (h >> n−3 ) << 1 ) when q = 2. For example, in the case of n = 64, if the column h = (a 63 , a 62 , a 61 , a 60 , a 59 ,..., A 0 ), the following holds.
h »n-4 = (0, ···, 0, a 63, a 62, a 61, a 60)
h >> n−3 = (0,..., 0, a 63 , a 62 , a 61 )
(H »n-3) «1 = (0, ···, 0, a 63, a 62, a 61, 0)
t 0 = (h »n-4 + (h »n-3) «1) = (0, ···, 0, a 60) ∈GF (2 n)

以上より、式(2)を用いて中間値(h’+h’≪1)を計算し、中間値を用いて式(1)を計算することで列ηを効率的に得ることができる。 As described above, the column η can be efficiently obtained by calculating the intermediate value (h ′ + h ′ << 1) using the equation (2) and calculating the equation (1) using the intermediate value.

<構成>
図1Aに例示するように、第5実施形態の縮約装置5は、入力部11、分割部12、演算部53(第2〜4演算部)、演算部54(第1演算部)、出力部15、制御部16、および記憶部17を有する。縮約装置5は、例えば、公知または専用のコンピュータに所定のプログラムが読み込まれることによって構成される特別な装置である。縮約装置5は、制御部16の制御のもとで各処理を行う。
<Configuration>
As illustrated in FIG. 1A, the contracting device 5 of the fifth embodiment includes an input unit 11, a dividing unit 12, a calculation unit 53 (second to fourth calculation units), a calculation unit 54 (first calculation unit), and an output. Unit 15, control unit 16, and storage unit 17. The contracting device 5 is a special device configured by, for example, reading a predetermined program into a known or dedicated computer. The contracting device 5 performs each process under the control of the control unit 16.

<方法>
図4に例示するように、まず第1実施形態で説明したステップS11およびS12が実行される。
<Method>
As illustrated in FIG. 4, first, steps S11 and S12 described in the first embodiment are executed.

演算部53には列hが入力される。演算部53は、列t=h≫n−4∈GF(q)を得、列tを出力する。ただし、hn−1=0であり、t=5であり、n(4)=4,n(3)=3,n(2)=1,n(1)=0である(ステップS53−1)。 The column h is input to the calculation unit 53. The computing unit 53 obtains a sequence t 1 = h >> n 4εGF (q n ) and outputs a sequence t 1 . However, h n−1 = 0, t = 5, n (4) = 4, n (3) = 3, n (2) = 1, and n (1) = 0 (step S53−) 1).

演算部53には列t,hが入力される。演算部53は、列t=t ≪1+t+h≫n−3∈GF(q)を得、列tを出力する。ただし、tがn個の元εn−1,・・・,ε∈GF(q)からなり、n個の元0,・・・,0,ε∈GF(q)からなる列がt∈GF(q)である。例えば、拡大体GF(q)がビット列の集合{0,1}である場合、t=t&(0,・・・,0,1)∈{0,1}を満たす(ステップS53−2)。 Columns t 1 and h are input to the calculation unit 53. The calculation unit 53 obtains a sequence t 2 = t 1 << 1 + t 0 + h >> n 3εGF (q n ), and outputs a sequence t 2 . However, t 1 is composed of n elements ε n−1 ,..., Ε 0 εGF (q), and n elements 0,..., 0, ε 0 εGF (q) Is t 0 εGF (q n ). For example, when the extension field GF (q n ) is a set of bit strings {0, 1} n , t 0 = t 1 & (0,..., 0, 1) ∈ {0, 1} n is satisfied ( Step S53-2).

演算部53には列tが入力される。演算部53は、列η=t+t ≪3∈GF(q)を得、列ηを出力する(ステップS53−3)。 The column t 2 is input to the calculation unit 53. The computing unit 53 obtains the sequence η = t 2 + t 2 << 3 εGF (q n ), and outputs the sequence η (step S53-3).

演算部54には、列k,ηおよびhが入力される。演算部54は、これらを用いて列R=k+h≪n(1)+・・・+h≪n(t−1)+η∈GF(q)を得、列Rを出力する(ステップS54) The arithmetic unit 54 receives the columns k, η, and h. The calculation unit 54 obtains a column R = k + h << n (1) +... + H << n (t−1) + η∈GF (q n ) using these, and outputs the column R (step S54).

その後、第1実施形態で説明したS15が実行される。   Thereafter, S15 described in the first embodiment is executed.

<本形態の特徴>
本形態では、式(2)を用いて中間値(h’+h’≪1)を計算し、中間値を用いて式(1)を計算することで、演算量を削減できる。
<Features of this embodiment>
In this embodiment, the amount of calculation can be reduced by calculating the intermediate value (h ′ + h ′ << 1) using the equation (2) and calculating the equation (1) using the intermediate value.

〔第5実施形態の変形例〕
t=5、n(4)=4,n(3)=3,n(2)=1,n(1)=0の場合、列ηは以下のように変形できる。
η=h’+h’≪1+h’≪3+h’≪4∈GF(q
=(h’+h’≪1)+(h’+h’≪1≪3 …(1)
=(h’+h’≪3)+(h’+h’≪3≪1 …(3)
[Modification of Fifth Embodiment]
When t = 5, n (4) = 4, n (3) = 3, n (2) = 1, and n (1) = 0, the column η can be transformed as follows.
η = h ′ + h ′ << 1 + h '<< 3 + h'<< 4 ∈GF (q n )
= (H '+ h'<< 1 ) + (h '+ h'<< 1) << 3 (1)
= (H '+ h'<< 3 ) + (h '+ h'<< 3) << 1 (3)

従って、演算部53が、ステップS53−1およびS53−2に代えて、h’=h≫n−1+h≫n−3+h≫n−4∈GF(q)を計算し、t’=h’+h’≪1∈GF(q)またはt’’=h’+h’≪3∈GF(q)を計算し、S53−3に代えて、η=t’+t≪3∈GF(q)またはη=t’’+t’’≪1を計算してもよい。 Therefore, the calculation unit 53 calculates h ′ = h >> n−1 + h >> n−3 + h >> n 4∈GF (q n ) instead of steps S53-1 and S53-2, and t 2 ′. = H ′ + h ′ << 1∈GF (q n ) or t 2 ″ = h ′ + h ′ << 3 ∈GF (q n ) is calculated, and η = t 2 ′ + t 2 ′ instead of S53-3 << 3εGF (q n ) or η = t 2 ″ + t 2<< 1 may be calculated.

〔第6実施形態〕
本形態は第4,5実施形態の変形例である。t=5、n(4)=4,n(3)=3,n(2)=1,n(1)=0(例えばf(x)=x+x+x+1)の場合には、列ρ=h≪n(1)+・・・+h≪n(t−1)∈GF(q)を効率よく計算することができる。
[Sixth Embodiment]
This embodiment is a modification of the fourth and fifth embodiments. When t = 5, n (4) = 4, n (3) = 3, n (2) = 1, n (1) = 0 (for example, f 0 (x) = x 4 + x 3 + x + 1), The sequence ρ = h << n (1) +... + H << n (t−1) ∈GF (q n ) can be efficiently calculated.

すなわち、t=5、n(4)=4,n(3)=3,n(2)=1,n(1)=0の場合、列ρは以下のように変形できる。
ρ=h+h≪1+h≪3+h≪4∈GF(q
=(h+h≪1)+(h+h≪1≪3 …(4)
=(h+h≪3)+(h+h≪3≪1 …(5)
従って、(h+h≪1)または(h+h≪3)を中間値として計算し、その中間値を用いて式(4)または式(5)を計算することで、演算量を削減できる。
That is, when t = 5, n (4) = 4, n (3) = 3, n (2) = 1, and n (1) = 0, the column ρ can be transformed as follows.
ρ = h + h << 1 + h << 3 + h << 4 ∈GF (q n )
= (H + h << 1 ) + (h + h << 1 ) << 3 (4)
= (H + h << 3 ) + (h + h << 3 ) << 1 (5)
Therefore, by calculating (h + h << 1 ) or (h + h << 3 ) as an intermediate value and calculating the expression (4) or (5) using the intermediate value, the amount of calculation can be reduced.

<構成>
図1Aに例示するように、第6実施形態の縮約装置6は、入力部11、分割部12、演算部63(第5,6演算部)、演算部64(第1演算部)、出力部15、制御部16、および記憶部17を有する。縮約装置6は、例えば、公知または専用のコンピュータに所定のプログラムが読み込まれることによって構成される特別な装置である。縮約装置6は、制御部16の制御のもとで各処理を行う。
<Configuration>
As illustrated in FIG. 1A, the contracting device 6 of the sixth embodiment includes an input unit 11, a dividing unit 12, a calculation unit 63 (fifth and sixth calculation units), a calculation unit 64 (first calculation unit), and an output. Unit 15, control unit 16, and storage unit 17. The contracting device 6 is a special device configured by, for example, reading a predetermined program into a known or dedicated computer. The contracting device 6 performs each process under the control of the control unit 16.

<方法>
図5に例示するように、まず第1実施形態で説明したステップS11およびS12が実行される。
<Method>
As illustrated in FIG. 5, first, steps S11 and S12 described in the first embodiment are executed.

次に演算部63に列hが入力される。演算部63は、列η=h’≪n(1)+・・・+h’≪n(t−1)∈GF(q)を得、列ηを出力する。ただし、h’=h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)であり、t=5であり、n(4)=4,n(3)=3,n(2)=1,n(1)=0である。列ηの計算方法に限定はない。例えば演算部63は、列h’=h≫n−1+h≫n−3+h≫n−4∈GF(q)を得てから、列η=h’+h’≪1+h’≪3+h’≪4∈GF(q)を得てもよいし、第5実施形態で説明した方法で列ηを得てもよい(ステップS63−1)。 Next, the column h is input to the calculation unit 63. The calculation unit 63 obtains the sequence η = h ′ << n (1) +... + H ′ << n (t−1) εGF (q n ), and outputs the column η. However, h ′ = h >> n−n (2) +... + H >> n−n (t−1) ∈GF (q n ), t = 5, and n (4) = 4, n (3) = 3, n (2) = 1, n (1) = 0. There is no limitation on the method of calculating the column η. For example, the calculation unit 63 obtains the sequence h ′ = h >> n−1 + h >> n−3 + h >> n 4∈GF (q n ), and then obtains the sequence η = h ′ + h ′ << 1 + h ′ << 3 + h. '<< 4εGF (q n ) may be obtained, or the sequence η may be obtained by the method described in the fifth embodiment (step S63-1).

演算部63は、列t=h+h≪1∈GF(q)または列t=h+h≪3∈GF(q)を得、列tまたは列tを出力する(ステップS63−2)。 The computing unit 63 obtains the column t 3 = h + h << 1 εGF (q n ) or the column t 4 = h + h << 3 εGF (q n ), and outputs the column t 3 or the column t 4 (Step S63-2). ).

演算部63には、列tまたは列tが入力される。演算部63は、列ρ=t+t ≪3∈GF(q)または列ρ=t+t ≪1∈GF(q)を得、列ρを出力する(ステップS63−3)。 Column t 3 or column t 4 is input to calculation unit 63. The calculation unit 63 obtains a sequence ρ = t 3 + t 3 << 3 ∈GF (q n ) or a sequence ρ = t 4 + t 4 << 1 ∈GF (q n ), and outputs the sequence ρ (step S63-3). .

演算部64に列k,ηおよびρが入力される。演算部64は、列ηをh’+h’≪1+h’≪3+h’≪4とし、列ρをh+h≪1+h≪3+h≪4∈GF(q)として用いて列Rを得、列Rを出力する。すなわち、演算部64は、列R=k+ρ+η∈GF(q)を得、列Rを出力する(ステップS64)。 The columns k, η, and ρ are input to the calculation unit 64. The calculation unit 64 obtains a column R using the column η as h ′ + h ′ << 1 + h ′ << 3 + h ′ << 4 and the column ρ as h + h << 1 + h << 3 + h << 4 ∈GF (q n ), Output column R. That is, the calculation unit 64 obtains a column R = k + ρ + ηεGF (q n ) and outputs the column R (step S64).

その後、第1実施形態で説明したS15が実行される。   Thereafter, S15 described in the first embodiment is executed.

<本形態の特徴>
本形態では、(h+h≪1)または(h+h≪3)を中間値として計算し、その中間値を用いて式(4)または式(5)を計算することで、演算量を削減できる。
<Features of this embodiment>
In the present embodiment, the amount of calculation can be reduced by calculating (h + h << 1 ) or (h + h << 3 ) as an intermediate value and calculating the expression (4) or (5) using the intermediate value.

〔第7実施形態〕
本形態は第4〜6実施形態の変形例である。t=5、n(4)=4,n(3)=3,n(2)=1,n(1)=0(例えばf(x)=x+x+x+1)の場合には、列σ=(h≪n(1)+・・・+h≪n(t−1))+(h’≪n(1)+・・・+h’≪n(t−1))∈GF(q)を効率よく計算することができる場合がある。
[Seventh Embodiment]
This embodiment is a modification of the fourth to sixth embodiments. When t = 5, n (4) = 4, n (3) = 3, n (2) = 1, n (1) = 0 (for example, f 0 (x) = x 4 + x 3 + x + 1), Column σ = (h << n (1) + ... + h << n (t-1) ) + (h '<< n (1) + ... + h'<< n (t-1) ) ∈GF (q n ) may be calculated efficiently.

すなわち、t=5、n(4)=4,n(3)=3,n(2)=1,n(1)=0の場合、列σは以下のように変形できる。
σ=(h+h≪1+h≪3+h≪4
+(h’+h’≪1+h’≪3+h’≪4)∈GF(q
={(h+h’)+(h+h’)≪1
+{(h+h’)+(h+h’)≪1≪3 …(6)
={(h+h’)+(h+h’)≪3
+{(h+h’)+(h+h’)≪3≪1 …(7)
従って、(h+h’)を第1中間値として計算し、第1中間値を用いて{(h+h’)+(h+h’)≪1}または{(h+h’)+(h+h’)≪3}を第2中間値として計算し、第2中間値を用いて式(6)または式(7)を計算することで、演算量を削減できる場合がある。
That is, when t = 5, n (4) = 4, n (3) = 3, n (2) = 1, and n (1) = 0, the column σ can be transformed as follows.
σ = (h + h << 1 + h << 3 + h << 4 )
+ (H ′ + h ′ << 1 + h '<< 3 + h'<< 4 ) ∈GF (q n )
= {(H + h ') + (h + h') << 1 }
+ {(H + h ′) + (h + h ′) << 1 } << 3 (6)
= {(H + h ') + (h + h') << 3 }
+ {(H + h ') + (h + h') << 3 } << 1 (7)
Therefore, (h + h ′) is calculated as the first intermediate value, and {(h + h ′) + (h + h ′) << 1 } or {(h + h ′) + (h + h ′) << 3 } is calculated using the first intermediate value. The calculation amount may be reduced by calculating as the second intermediate value and calculating Expression (6) or Expression (7) using the second intermediate value.

<構成>
図1Aに例示するように、第7実施形態の縮約装置7は、入力部11、分割部12、演算部73(第2〜4演算部)、演算部74(第1演算部)、出力部15、制御部16、および記憶部17を有する。縮約装置7は、例えば、公知または専用のコンピュータに所定のプログラムが読み込まれることによって構成される特別な装置である。縮約装置7は、制御部16の制御のもとで各処理を行う。
<Configuration>
As illustrated in FIG. 1A, the contracting device 7 of the seventh embodiment includes an input unit 11, a dividing unit 12, a calculation unit 73 (second to fourth calculation units), a calculation unit 74 (first calculation unit), and an output. Unit 15, control unit 16, and storage unit 17. The contracting device 7 is a special device configured by, for example, reading a predetermined program into a known or dedicated computer. The contracting device 7 performs each process under the control of the control unit 16.

<方法>
図6に例示するように、まず第1実施形態で説明したステップS11およびS12が実行される。
<Method>
As illustrated in FIG. 6, first, steps S11 and S12 described in the first embodiment are executed.

次に演算部73に列hが入力される。演算部73は、h’=h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)を得、列h’を出力する。ただし、t=5であり、n(4)=4,n(3)=3,n(2)=1,n(1)=0である(ステップS73−1)。 Next, the column h is input to the calculation unit 73. The calculation unit 73 obtains h ′ = h >> n−n (2) +... + H >> n−n (t−1) εGF (q n ), and outputs a sequence h ′. However, t = 5, n (4) = 4, n (3) = 3, n (2) = 1, and n (1) = 0 (step S73-1).

演算部73に列hおよびh’が入力される。演算部73は、列ν=h+h’ ∈GF(q)を得、列νを出力する(ステップS73−2)。 The columns h and h ′ are input to the calculation unit 73. The calculation unit 73 obtains the sequence ν = h + h′εGF (q n ) and outputs the sequence ν (step S73-2).

演算部73に列νが入力される。演算部73は、列υ=ν+ν≪1∈GF(q)または列ι=ν+ν≪3∈GF(q)を得、列υまたはιを出力する(ステップS73−3)。 The column ν is input to the calculation unit 73. The computing unit 73 obtains the sequence υ = ν + ν << 1εGF (q n ) or the sequence ι = ν + ν << 3εGF (q n ), and outputs the sequence υ or ι (step S73-3).

演算部73に列υまたはιが入力される。演算部73は、列σ=υ+υ≪3∈GF(q)または列σ=ι+ι≪1∈GF(q)を得、列σを出力する(ステップS73−4)。 The column υ or ι is input to the calculation unit 73. The computing unit 73 obtains the sequence σ = υ + υ << 3εGF (q n ) or the sequence σ = ι + ι << 1εGF (q n ), and outputs the sequence σ (step S73-4).

演算部74に列k,σが入力される。演算部74は、列σをh≪n(1)+・・・+h≪n(t−1)+η∈GF(q)として用いて列R=k+σ∈GF(q)を得、列Rを出力する(ステップS74)。 The columns k and σ are input to the calculation unit 74. The calculation unit 74 obtains a column R = k + σεGF (q n ) using the column σ as h << n (1) +... + H << n (t−1) + ηεGF (q n ), R is output (step S74).

その後、第1実施形態で説明したS15が実行される。   Thereafter, S15 described in the first embodiment is executed.

<本形態の特徴>
本形態では、(h+h’)を第1中間値として計算し、第1中間値を用いて{(h+h’)+(h+h’)≪1}または{(h+h’)+(h+h’)≪3}を第2中間値として計算し、第2中間値を用いて式(6)または式(7)を計算することで、演算量を削減できる場合がある。
<Features of this embodiment>
In this embodiment, (h + h ′) is calculated as the first intermediate value, and {(h + h ′) + (h + h ′) << 1 } or {(h + h ′) + (h + h ′) << 3 using the first intermediate value. } As the second intermediate value, and calculating the formula (6) or the formula (7) using the second intermediate value may reduce the amount of calculation.

〔第8実施形態〕
t=5,n(4)=7,n(3)=2,n(2)=1,n(1)=0の場合、すなわち、f(x)がf(x)=x+x+x+1であり、hn−1=0である場合には、以下のように演算を効率化できる。なお、q=2、n=128,192の場合、f(x)=x−f(x)は既約多項式である。
[Eighth Embodiment]
When t = 5, n (4) = 7, n (3) = 2, n (2) = 1, and n (1) = 0, that is, f 0 (x) is f 0 (x) = x 7 When + x 2 + x + 1 and h n−1 = 0, the calculation can be made efficient as follows. When q = 2 and n = 128, 192, f (x) = x n −f 0 (x) is an irreducible polynomial.

すなわち、hn−1=0、n(4)=7,n(3)=2,n(2)=1,n(1)=0である場合、列Hは以下のように変形できる。hn−1=0であり、列h≫n−1の要素がすべて0となるため、列Hは以下のように変形できる。
H=h+h≫n−1+h≫n−2+h≫n−7∈GF(q
=h+h≫n−1+h≫n−2+h≫n−7
=h+h≫n−2+h≫n−7
従って列Rは以下のように計算できる。
R=k+H+H≪1+H≪2+H≪7∈GF(q
That is, when h n-1 = 0, n (4) = 7, n (3) = 2, n (2) = 1, and n (1) = 0, the column H can be modified as follows. Since h n-1 = 0 and all the elements in the column h >> n−1 are 0, the column H can be modified as follows.
H = h + h >> n−1 + h >> n−2 + h >> n 7∈GF (q n )
= H + h >> n-1 + h >> n-2 + h >> n-7
= H + h >> n-2 + h >> n-7
Thus, column R can be calculated as follows:
R = k + H + H << 1 + H << 2 + H << 7 ∈GF (q n )

図1Aに例示するように、第8実施形態の縮約装置8は、入力部11、分割部12、演算部83(第1演算部)、演算部14(第2演算部)、出力部15、制御部16、および記憶部17を有する。縮約装置8は、例えば、公知または専用のコンピュータに所定のプログラムが読み込まれることによって構成される特別な装置である。縮約装置8は、制御部16の制御のもとで各処理を行う。   As illustrated in FIG. 1A, the reduction device 8 of the eighth embodiment includes an input unit 11, a dividing unit 12, a calculation unit 83 (first calculation unit), a calculation unit 14 (second calculation unit), and an output unit 15. A control unit 16 and a storage unit 17. The contracting device 8 is a special device configured by, for example, reading a predetermined program into a known or dedicated computer. The contracting device 8 performs each process under the control of the control unit 16.

<方法>
図7に例示するように、まず第1実施形態で説明したステップS11およびS12が実行される。
<Method>
As illustrated in FIG. 7, first, steps S11 and S12 described in the first embodiment are executed.

次に演算部83に列hが入力される。演算部83は、列H=h+h≫n−7+h≫n−2∈GF(q)を得、列Hを出力する(ステップS83)。 Next, the column h is input to the calculation unit 83. The calculation unit 83 obtains the column H = h + h >> n−7 + h >> n 2εGF (q n ), and outputs the column H (step S83).

その後、第1実施形態で説明したS14およびS15が実行される。   Thereafter, S14 and S15 described in the first embodiment are executed.

<本形態の特徴>
本形態では、hn−1=0,n(4)=7,n(3)=2,n(2)=1,n(1)=0である場合に、H=h+h≫n−2+h≫n−7によって列Hを得るため、演算量を削減できる。
<Features of this embodiment>
In this embodiment, when h n−1 = 0, n (4) = 7, n (3) = 2, n (2) = 1, and n (1) = 0, H = h + h >> n−2. Since the column H is obtained by + h >> n−7 , the calculation amount can be reduced.

〔その他の変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
[Other variations, etc.]
The present invention is not limited to the embodiment described above. For example, the various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.

上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。   When the above configuration is realized by a computer, the processing contents of the functions that each device should have are described by a program. By executing this program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium. An example of a computer-readable recording medium is a non-transitory recording medium. Examples of such a recording medium are a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, and the like.

このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   This program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads a program stored in its own recording device and executes a process according to the read program. As another execution form of the program, the computer may read the program directly from the portable recording medium and execute processing according to the program, and each time the program is transferred from the server computer to the computer. The processing according to the received program may be executed sequentially. The above-described processing may be executed by a so-called ASP (Application Service Provider) type service that realizes a processing function only by an execution instruction and result acquisition without transferring a program from the server computer to the computer. Good.

上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。   In the above embodiment, the processing functions of the apparatus are realized by executing a predetermined program on a computer. However, at least a part of these processing functions may be realized by hardware.

縮約装置 1〜8 Reduction device 1-8

Claims (15)

r(x) mod f(x)の計算を行う縮約装置であって、
qが2以上の整数であり、nが3以上の整数であり、tが3≦tの整数であり、GF(q)が位数qの有限体であり、GF(q)が有限体GF(q)のn次拡大体であり、xが不定元であり、n,tおよびn(t−1),・・・,n(1)がn/2>n(t−1)>・・・>n(1)=0を満たす整数であり、f(x)が多項式f(x)=xn(t−1)+・・・+xn(1)であり、f(x)=x−f(x)であり、α≫jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する右jシフト演算であり、α≪jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する左jシフト演算であり、
多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)に対して、n個の元hn−1,・・・,h∈GF(q)からなる列h∈GF(q)およびn個の元kn−1,・・・,k∈GF(q)からなる列k∈GF(q)を得る分割部と、
H=h+h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)を得る第1演算部と、
R=k+H≪n(1)+・・・+H≪n(t−1)∈GF(q)を得る第2演算部と、
を有する縮約装置。
A reduction device for calculating r (x) mod f (x),
q is an integer of 2 or more, n is an integer of 3 or more, t is an integer of 3 ≦ t , GF (q) is a finite field of order q, and GF (q n ) is a finite field N-th extension of GF (q), x is an indefinite element, and n, t and n (t−1),..., N (1) are n / 2> n (t−1)>...> n (1) = 0, an integer satisfying f 0 (x) is a polynomial f 0 (x) = x n (t-1) +... + X n (1) , and f ( x) = x n −f 0 (x), and α >> j is a right j shift operation on a sequence α∈GF (q n ) consisting of elements of n finite fields GF (q), and α << j Is a left j shift operation on a sequence α∈GF (q n ) consisting of elements of n finite fields GF (q),
Polynomial r (x) = (h n -1 × x n-1 + ··· + h 0 × x 0) × x n + (k n-1 × x n-1 + ··· + k 0 × x 0) relative, n elements h n-1, ···, column consists h 0 ∈GF (q) h∈GF ( q n) and n elements k n-1, ···, k 0 A dividing unit for obtaining a sequence kεGF (q n ) composed of εGF (q);
H = h + h >> n−n (2) +... + H >> n−n (t−1) ∈GF (q n )
A second operation unit that obtains R = k + H << n (1) +... + H << n (t-1) ∈GF (q n );
A reduction device having
請求項1の縮約装置であって、
n個の元γn−1,・・・,γ∈GF(q)からなるq種類の列γ∈GF(q)に対するγ≫n−n(t−1)によって得られるqn(t−1)種類の列のそれぞれに対し、対応する列Γ=γ≫n−n(2)+・・・+γ≫n−n(t−1)∈GF(q)を対応付けたテーブルを格納したテーブル記憶部をさらに有し、
前記第1演算部は、前記テーブル記憶部を参照し、h≫n−n(t−1)によって得られる列に対応するh≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)を得、得られたh≫n−n(2)+・・・+h≫n−n(t−1)を用いてHを得る、縮約装置。
The contracting device of claim 1, comprising:
q n obtained by γ >> n−n (t−1) for q n types of columns γεGF (q n ) consisting of n elements γ n−1 ,..., γ 0 εGF (q) (T-1) Corresponding columns Γ = γ >> n−n (2) +... + Γ >> n−n (t−1) εGF (q n ) are associated with each of the types of columns. A table storage unit storing the table;
The first calculation unit refers to the table storage unit, and h >> n −n (2) +... + H >> n−n ( corresponding to a column obtained by h >> n−n (t−1) . t-1) A reduction device that obtains εGF (q n ) and obtains H using the obtained h >> n−n (2) +... + h >> n−n (t−1) .
請求項1の縮約装置であって、
cが1≦c≦nの整数であり、hn−1=・・・=hn−c=0であり、
γn−1=・・・=γn−c=0であり、n個の元γn−1,・・・,γ∈GF(q)からなるqn−c種類の列γ∈GF(q)に対するγ≫n−n(t−1)によって得られるqn(t−1)−c種類の列のそれぞれに対し、対応する列Γ=γ≫n−n(2)+・・・+γ≫n−n(t−1)∈GF(q)を対応付けたテーブルを格納したテーブル記憶部をさらに有し、
前記第1演算部は、前記テーブル記憶部を参照し、h≫n−n(t−1)によって得られる列に対応するh≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)を得、得られたh≫n−n(2)+・・・+h≫n−n(t−1)を用いてHを得る、縮約装置。
The contracting device of claim 1, comprising:
c is an integer of 1 ≦ c ≦ n, h n−1 =... = h n−c = 0,
γ n−1 =... = γ n−c = 0, and q n−c types of columns γεGF consisting of n elements γ n−1 ,..., γ 0 εGF (q) For each of the q n (t−1) -c types of columns obtained by γ >> n−n (t−1 ) for (q n ), the corresponding column Γ = γ >> n−n (2) +. A table storage unit that stores a table in which + γ >> n−n (t−1) εGF (q n ) is associated;
The first calculation unit refers to the table storage unit, and h >> n −n (2) +... + H >> n−n ( corresponding to a column obtained by h >> n−n (t−1) . t-1) A reduction device that obtains εGF (q n ) and obtains H using the obtained h >> n−n (2) +... + h >> n−n (t−1) .
r(x) mod f(x)の計算を行う縮約装置であって、
qが2以上の整数であり、nが3以上の整数であり、tが3≦tの整数であり、GF(q)が位数qの有限体であり、GF(q)が有限体GF(q)のn次拡大体であり、xが不定元であり、n,t,およびn(t−1),・・・,n(1)がn/2>n(t−1)>・・・>n(1)=0を満たす整数であり、f(x)が多項式f(x)=xn(t−1)+・・・+xn(1)であり、f(x)=x−f(x)であり、α≫jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する右jシフト演算であり、α≪jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する左jシフト演算であり、
多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)に対して、n個の元hn−1,・・・,h∈GF(q)からなる列h∈GF(q)およびn個の元kn−1,・・・,k∈GF(q)からなる列k∈GF(q)を得る分割部と、
h’=h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)であり、η=h’≪n(1)+・・・+h’≪n(t−1)∈GF(q)であり、R=k+h≪n(1)+・・・+h≪n(t−1)+η∈GF(q)を得る第1演算部と、
を有する縮約装置。
A reduction device for calculating r (x) mod f (x),
q is an integer of 2 or more, n is an integer of 3 or more, t is an integer of 3 ≦ t , GF (q) is a finite field of order q, and GF (q n ) is a finite field N-order extension of GF (q), x is an indefinite element, n, t, and n (t−1),..., N (1) are n / 2> n (t−1) >...> is an integer satisfying n (1) = 0, f 0 (x) is a polynomial f 0 (x) = x n (t−1) +... + X n (1) , and f (X) = x n −f 0 (x), and α >> j is a right j shift operation on a sequence α∈GF (q n ) consisting of elements of n finite fields GF (q), and α << j is a left j shift operation on a sequence α∈GF (q n ) consisting of elements of n finite fields GF (q),
Polynomial r (x) = (h n -1 × x n-1 + ··· + h 0 × x 0) × x n + (k n-1 × x n-1 + ··· + k 0 × x 0) relative, n elements h n-1, ···, column consists h 0 ∈GF (q) h∈GF ( q n) and n elements k n-1, ···, k 0 A dividing unit for obtaining a sequence kεGF (q n ) composed of εGF (q);
h ′ = h >> n−n (2) +... + h >> n−n (t−1) ∈GF (q n ) and η = h ′ << n (1) +... + h ′ << n (t−1) ∈ GF (q n ), and R = k + h << n (1) +... + h << n (t−1) + η∈GF (q n )
A reduction device having
請求項4の縮約装置であって、
n個の元γn−1,・・・,γ∈GF(q)からなるq種類の列γ∈GF(q)に対するγ≫n−n(t−1)によって得られるqn(t−1)種類の列のそれぞれに対し、γ’=γ≫n−n(2)+・・・+γ≫n−n(t−1)∈GF(q)とした場合における、対応する列Γ’=γ’≪n(1)+・・・+γ’≪n(t−1)∈GF(q)を対応付けたテーブルを格納したテーブル記憶部をさらに有し、
前記第1演算部は、前記テーブル記憶部を参照し、h≫n−n(t−1)によって得られる列に対応するηを得、得られたηを用いてRを得る、縮約装置。
The contracting device of claim 4, comprising:
q n obtained by γ >> n−n (t−1) for q n types of columns γεGF (q n ) consisting of n elements γ n−1 ,..., γ 0 εGF (q) (T-1) Correspondence in the case of γ ′ = γ >> n−n (2) +... + Γ >> n−n (t−1) εGF (q n ) And further includes a table storage unit that stores a table in which columns Γ ′ = γ ′ << n (1) +... + Γ ′ << n (t−1) ∈GF (q n ) are associated with each other,
The first arithmetic unit refers to the table storage unit, obtains η corresponding to a column obtained by h >> n−n (t−1) , and obtains R using the obtained η. .
請求項4の縮約装置であって、
cが1≦c≦nの整数であり、hn−1=・・・=hn−c=0であり、
γn−1=・・・=γn−c=0であり、n個の元γn−1,・・・,γ∈GF(q)からなるqn−c種類の列γ∈GF(q)に対するγ≫n−n(t−1)によって得られるqn(t−1)−c種類の列のそれぞれに対し、γ’=γ≫n−n(2)+・・・+γ≫n−n(t−1)∈GF(q)とした場合における、対応する列Γ’=γ’≪n(1)+・・・+γ’≪n(t−1)∈GF(q)を対応付けたテーブルを格納したテーブル記憶部をさらに有し、
前記第1演算部は、前記テーブル記憶部を参照し、h≫n−n(t−1)によって得られる列に対応するηを得、得られたηを用いてRを得る、縮約装置。
The contracting device of claim 4, comprising:
c is an integer of 1 ≦ c ≦ n, h n−1 =... = h n−c = 0,
γ n−1 =... = γ n−c = 0, and q n−c types of columns γεGF consisting of n elements γ n−1 ,..., γ 0 εGF (q) For each of the q n (t-1) -c types of columns obtained by γ >> n−n (t−1 ) for (q n ), γ ′ = γ >> n−n (2) +. + Γ >> n−n (t−1) ∈GF (q n ), corresponding column Γ ′ = γ ′ << n (1) +... + Γ ′ << n (t−1) ∈GF ( a table storage unit storing a table associated with q n ),
The first arithmetic unit refers to the table storage unit, obtains η corresponding to a column obtained by h >> n−n (t−1) , and obtains R using the obtained η. .
請求項4の縮約装置であって、
n−1=0であり、t=5であり、q=2であり、n(4)=4,n(3)=3,n(2)=1,n(1)=0であり、
=h≫n−4を得る第2演算部と、
がn個の元εn−1,・・・,ε∈GF(q)からなり、n個の元0,・・・,0,ε∈GF(q)からなる列がt∈GF(q)であり、t=t ≪1+t+h≫n−3∈GF(q)を得る第3演算部と、
η=t+t ≪3∈GF(q)を得る第4演算部と、をさらに有し、
前記第1演算部は、前記第4演算部で得られたηを用いてRを得る、縮約装置。
The contracting device of claim 4, comprising:
h n-1 = 0, t = 5, q = 2, n (4) = 4, n (3) = 3, n (2) = 1, n (1) = 0 ,
a second computing unit for obtaining t 1 = h >>n-4;
t 1 is made up of n elements ε n−1 ,..., ε 0 εGF (q), and a sequence of n elements 0,..., 0, ε 0 εGF (q) is t 0 is ∈GF (q n), and a third arithmetic unit for obtaining a t 2 = t 1 «1 + t 0 + h »n-3 ∈GF (q n),
a fourth operation unit that obtains η = t 2 + t 2 << 3 ∈GF (q n ),
The contraction device, wherein the first calculation unit obtains R using η obtained by the fourth calculation unit.
請求項4の縮約装置であって、
t=5であり、n(4)=4,n(3)=3,n(2)=1,n(1)=0であり、
h’=h≫n−1+h≫n−3+h≫n−4∈GF(q)を得る第2演算部と、
’=h’+h’≪1∈GF(q)またはt’’=h’+h’≪3∈GF(q)を得る第3演算部と、
η=t’+t≪3∈GF(q)またはη=t’’+t’’≪1を得る第4演算部と、をさらに有し、
前記第1演算部は、前記第4演算部で得られたηを用いてRを得る、縮約装置。
The contracting device of claim 4, comprising:
t = 5, n (4) = 4, n (3) = 3, n (2) = 1, n (1) = 0,
h ′ = h >> n−1 + h >> n−3 + h >> n 4εGF (q n ) to obtain a second operation unit;
a third operation unit for obtaining t 2 ′ = h ′ + h ′ << 1 ∈GF (q n ) or t 2 ″ = h ′ + h ′ << 3 ∈GF (q n );
a fourth operation unit that obtains η = t 2 ′ + t 2<< 3∈GF (q n ) or η = t 2 ″ + t 2<< 1;
The contraction device, wherein the first calculation unit obtains R using η obtained by the fourth calculation unit.
請求項4から8の何れかの縮約装置であって、
t=5であり、n(4)=4,n(3)=3,n(2)=1,n(1)=0であり、
=h+h≪1∈GF(q)またはt=h+h≪3∈GF(q)を得る第5演算部と、
ρ=t+t ≪3∈GF(q)またはρ=t+t ≪1∈GF(q)を得る第6演算部と、をさらに有し、
前記第1演算部は、前記第6演算部で得られたρをh≪n(1)+・・・+h≪n(t−1)∈GF(q)として用いてRを得る、縮約装置。
The contracting device according to any one of claims 4 to 8,
t = 5, n (4) = 4, n (3) = 3, n (2) = 1, n (1) = 0,
a fifth operation unit that obtains t 3 = h + h << 1 ∈GF (q n ) or t 4 = h + h << 3 ∈GF (q n );
a sixth operation unit that obtains ρ = t 3 + t 3 << 3 ∈GF (q n ) or ρ = t 4 + t 4 << 1 ∈GF (q n ),
The first arithmetic unit obtains R by using ρ obtained by the sixth arithmetic unit as h << n (1) +... + H << n (t−1) ∈GF (q n ). About equipment.
請求項4の縮約装置であって、
t=5であり、n(4)=4,n(3)=3,n(2)=1,n(1)=0であり、
ν=h+h’∈GF(q)を得る第2演算部と、
υ=ν+ν≪1∈GF(q)またはι=ν+ν≪3∈GF(q)を得る第3演算部と、
σ=υ+υ≪3∈GF(q)またはσ=ι+ι≪1∈GF(q)を得る第4演算部と、をさらに有し、
前記第1演算部は、前記第4演算部で得られたσをh≪n(1)+・・・+h≪n(t−1)+η∈GF(q)として用いてRを得る、縮約装置。
The contracting device of claim 4, comprising:
t = 5, n (4) = 4, n (3) = 3, n (2) = 1, n (1) = 0,
a second arithmetic unit for obtaining ν = h + h′∈GF (q n );
a third operation unit for obtaining υ = ν + ν << 1∈GF (q n ) or ι = ν + ν << 3∈GF (q n );
a fourth operation unit for obtaining σ = υ + υ << 3 ∈GF (q n ) or σ = ι + ι << 1 ∈GF (q n ),
The first calculation unit obtains R by using σ obtained by the fourth calculation unit as h << n (1) +... + H << n (t−1) + η∈GF (q n ). Reduction device.
請求項1の縮約装置であって、
n−1=0、n(4)=7,n(3)=2,n(2)=1,n(1)=0であり、
前記第1演算部が、h+h≫n−7+h≫n−2∈GF(q)によって前記列Hを得る、縮約装置。
The contracting device of claim 1, comprising:
h n-1 = 0, n (4) = 7, n (3) = 2, n (2) = 1, n (1) = 0,
The contraction device, wherein the first arithmetic unit obtains the column H by h + h >> n-7 + h >> n - 2εGF (q n ).
請求項1から11の何れかに記載された縮約装置であって、
q=2であり、GF(2)がビット集合{0,1}であり、GF(2)がnビットのビット列の集合{0,1}である、縮約装置。
A reduction device according to any of claims 1 to 11, comprising:
A reduction device, where q = 2, GF (2) is a bit set {0, 1}, and GF (2 n ) is a set of bit sequences {0, 1} n of n bits.
分割部と第1演算部と第2演算部とを有する縮約装置で実行され、r(x) mod f(x)の計算を行う縮約方法であって、
qが2以上の整数であり、nが3以上の整数であり、tが3≦tの整数であり、GF(q)が位数qの有限体であり、GF(q)が有限体GF(q)のn次拡大体であり、xが不定元であり、n,t,およびn(t−1),・・・,n(1)がn/2>n(t−1)>・・・>n(1)=0を満たす整数であり、f(x)が多項式f(x)=xn(t−1)+・・・+xn(1)であり、f(x)=x−f(x)であり、α≫jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する右jシフト演算であり、α≪jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する左jシフト演算であり、
前記分割部で、多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)に対して、n個の元hn−1,・・・,h∈GF(q)からなる列h∈GF(q)およびn個の元kn−1,・・・,k∈GF(q)からなる列k∈GF(q)を得る分割ステップと、
前記第1演算部で、H=h+h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)を得る第1ステップと、
前記第2演算部で、R=k+H≪n(1)+・・・+H≪n(t−1)∈GF(q)を得る第2ステップと、
を有する縮約方法。
A reduction method that is executed by a reduction device having a division unit, a first calculation unit, and a second calculation unit, and calculates r (x) mod f (x),
q is an integer of 2 or more, n is an integer of 3 or more, t is an integer of 3 ≦ t , GF (q) is a finite field of order q, and GF (q n ) is a finite field N-order extension of GF (q), x is an indefinite element, n, t, and n (t−1),..., N (1) are n / 2> n (t−1) >...> is an integer satisfying n (1) = 0, f 0 (x) is a polynomial f 0 (x) = x n (t−1) +... + X n (1) , and f (X) = x n −f 0 (x), and α >> j is a right j shift operation on a sequence α∈GF (q n ) consisting of elements of n finite fields GF (q), and α << j is a left j shift operation on a sequence α∈GF (q n ) consisting of elements of n finite fields GF (q),
In the dividing unit, the polynomial r (x) = (h n−1 × x n−1 +... + H 0 × x 0 ) × x n + (k n−1 × x n−1 +... + K 0 × x 0 ), n elements h n−1 ,..., H 0 ∈GF (q), a sequence h∈GF (q n ) and n elements k n−1 ,. A division step to obtain a sequence kεGF (q n ) consisting of k 0 εGF (q);
A first step of obtaining H = h + h >> n−2 (2) +... + H >> n−n (t−1) εGF (q n ) in the first arithmetic unit;
A second step of obtaining R = k + H << n (1) +... + H << n (t-1) ∈GF (q n ) in the second arithmetic unit;
A contraction method.
分割部と演算部とを有する縮約装置で実行され、r(x) mod f(x)の計算を行う縮約方法であって、
qが2以上の整数であり、nが3以上の整数であり、tが3≦tの整数であり、GF(q)が位数qの有限体であり、GF(q)が有限体GF(q)のn次拡大体であり、xが不定元であり、n,t,およびn(t−1),・・・,n(1)がn/2>n(t−1)>・・・>n(1)=0を満たす整数であり、f(x)が多項式f(x)=xn(t−1)+・・・+xn(1)であり、f(x)=x−f(x)であり、α≫jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する右jシフト演算であり、α≪jがn個の有限体GF(q)の元からなる列α∈GF(q)に対する左jシフト演算であり、
前記分割部で、多項式r(x)=(hn−1×xn−1+・・・+h×x)×x+(kn−1×xn−1+・・・+k×x)に対して、n個の元hn−1,・・・,h∈GF(q)からなる列h∈GF(q)およびn個の元kn−1,・・・,k∈GF(q)からなる列k∈GF(q)を得る分割ステップと、
前記演算部で、h’=h≫n−n(2)+・・・+h≫n−n(t−1)∈GF(q)であり、η=h’≪n(1)+・・・+h’≪n(t−1)∈GF(q)であり、R=k+h≪n(1)+・・・+h≪n(t−1)+η∈GF(q)を得る演算ステップと、
を有する縮約方法。
A reduction method that is executed by a reduction device having a division unit and an operation unit and calculates r (x) mod f (x),
q is an integer of 2 or more, n is an integer of 3 or more, t is an integer of 3 ≦ t , GF (q) is a finite field of order q, and GF (q n ) is a finite field N-order extension of GF (q), x is an indefinite element, n, t, and n (t−1),..., N (1) are n / 2> n (t−1) >...> is an integer satisfying n (1) = 0, f 0 (x) is a polynomial f 0 (x) = x n (t−1) +... + X n (1) , and f (X) = x n −f 0 (x), and α >> j is a right j shift operation on a sequence α∈GF (q n ) consisting of elements of n finite fields GF (q), and α << j is a left j shift operation on a sequence α∈GF (q n ) consisting of elements of n finite fields GF (q),
In the dividing unit, the polynomial r (x) = (h n−1 × x n−1 +... + H 0 × x 0 ) × x n + (k n−1 × x n−1 +... + K 0 × x 0 ), n elements h n−1 ,..., H 0 ∈GF (q), a sequence h∈GF (q n ) and n elements k n−1 ,. A division step to obtain a sequence kεGF (q n ) consisting of k 0 εGF (q);
In the arithmetic unit, h ′ = h >> n−n (2) +... + H >> n−n (t−1) ∈GF (q n ) and η = h ′ << n (1) +. .. + H ′ << n (t−1) ∈GF (q n ), and R = k + h << n (1) +... + H << n (t−1) + η∈GF (q n ) Steps,
A contraction method.
請求項1から12の何れかの縮約装置の各部としてコンピュータを機能させるためのプログラム。   The program for functioning a computer as each part of the contraction apparatus in any one of Claim 1 to 12.
JP2012158735A 2012-07-17 2012-07-17 Reduction device, reduction method, and program Active JP5840086B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012158735A JP5840086B2 (en) 2012-07-17 2012-07-17 Reduction device, reduction method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012158735A JP5840086B2 (en) 2012-07-17 2012-07-17 Reduction device, reduction method, and program

Publications (2)

Publication Number Publication Date
JP2014021237A JP2014021237A (en) 2014-02-03
JP5840086B2 true JP5840086B2 (en) 2016-01-06

Family

ID=50196177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012158735A Active JP5840086B2 (en) 2012-07-17 2012-07-17 Reduction device, reduction method, and program

Country Status (1)

Country Link
JP (1) JP5840086B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5755609B2 (en) * 2012-07-31 2015-07-29 日本電信電話株式会社 Arithmetic apparatus, method and program
JP5957120B1 (en) * 2015-05-12 2016-07-27 日本電信電話株式会社 Secret sharing method, secret sharing system, distribution apparatus, and program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2387089B (en) * 2002-03-28 2004-12-22 Matsushita Comm Ind Uk Ltd Improved carryout word calculation for cyclic shift registers
JP4399280B2 (en) * 2004-01-22 2010-01-13 日本電信電話株式会社 Surplus device, surplus method, program, and recording medium
US7512647B2 (en) * 2004-11-22 2009-03-31 Analog Devices, Inc. Condensed Galois field computing system
JP4998225B2 (en) * 2007-01-19 2012-08-15 富士通セミコンダクター株式会社 Finite field computation method and finite field computation device
US8340280B2 (en) * 2008-06-13 2012-12-25 Intel Corporation Using a single instruction multiple data (SIMD) instruction to speed up galois counter mode (GCM) computations

Also Published As

Publication number Publication date
JP2014021237A (en) 2014-02-03

Similar Documents

Publication Publication Date Title
JP5957120B1 (en) Secret sharing method, secret sharing system, distribution apparatus, and program
JP6044738B2 (en) Information processing apparatus, program, and storage medium
US8261176B2 (en) Polynomial division
JP5840086B2 (en) Reduction device, reduction method, and program
JP2006023648A (en) Multiplication residues calculating device and information processing device
JP5918884B1 (en) Decoding device, decoding method, and program
JP5175983B2 (en) Arithmetic unit
JP5927323B1 (en) Matrix action device, matrix action method, and program
JP4621162B2 (en) Finite commutative group operation method, apparatus and program thereof
JP2004166274A (en) Method and apparatus for basis conversion in finite field
JP2015135452A (en) Pairing computation device, multi-pairing computation device and program
JP4998225B2 (en) Finite field computation method and finite field computation device
JP5730812B2 (en) Arithmetic apparatus, method and program
JP4612698B2 (en) Polynomial multiplier, polynomial multiplication method and program
JP5554357B2 (en) Arithmetic unit
KR101833954B1 (en) Memory hard random number generating apparatus and method
JP4861272B2 (en) Elliptic curve cryptographic operation apparatus, method, and program
JP5755609B2 (en) Arithmetic apparatus, method and program
JP6023728B2 (en) Multi-pairing calculation device, multi-pairing calculation method, multi-pairing calculation program
JP6308845B2 (en) Arithmetic apparatus, arithmetic method, and program
KR20200102126A (en) Finite division operator, elliptic curve cryptosystem having the same and operating method thereof
JP5157018B2 (en) Original division operation circuit on Galois field
KR101541157B1 (en) Method for multiplying operation of binary extension finite field
KR101213395B1 (en) Method of computing cube roots for pairing computations
JP5211398B2 (en) Original division operation circuit on Galois field

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150624

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151110

R150 Certificate of patent or registration of utility model

Ref document number: 5840086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150