Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4856599B2 - Pairing arithmetic device, program - Google Patents
[go: Go Back, main page]

JP4856599B2 - Pairing arithmetic device, program - Google Patents

Pairing arithmetic device, program Download PDF

Info

Publication number
JP4856599B2
JP4856599B2 JP2007193100A JP2007193100A JP4856599B2 JP 4856599 B2 JP4856599 B2 JP 4856599B2 JP 2007193100 A JP2007193100 A JP 2007193100A JP 2007193100 A JP2007193100 A JP 2007193100A JP 4856599 B2 JP4856599 B2 JP 4856599B2
Authority
JP
Japan
Prior art keywords
calculation
pairing
polynomial
calculation table
product
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
JP2007193100A
Other languages
Japanese (ja)
Other versions
JP2009031396A (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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2007193100A priority Critical patent/JP4856599B2/en
Publication of JP2009031396A publication Critical patent/JP2009031396A/en
Application granted granted Critical
Publication of JP4856599B2 publication Critical patent/JP4856599B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、情報セキュリティ技術に関するものであり、特に、ペアリング演算を実現するためのペアリング演算装置、プログラム等に関する。   The present invention relates to information security technology, and in particular, to a pairing arithmetic device, a program, and the like for realizing pairing arithmetic.

ペアリングを多項式時間で計算するアルゴリズムは、Millerによって提案され、2000年頃までは主に楕円曲線暗号の攻撃に用いられた。2000年頃にペアリングが暗号プロトコルに用いられるようになるとペアリングの高速化への関心が高まり、Duursma等による改良を経て、Barreto等によって以下のηペアリングアルゴリズムが与えられた。 An algorithm for calculating pairing in polynomial time was proposed by Miller, and until around 2000, it was mainly used for attacks of elliptic curve cryptography. Pairing around 2000 is great interest in faster pairing becomes to be used in a cryptographic protocol, through improvement by Duursma like, the following eta T pairing algorithm given by such Barreto.

なお、ペアリングとは、2入力1出力関数であって、各入力に対して線形性が成り立つ、いわゆる双線形関数である。また、ペアリングを計算、演算するとは、所定の値をペアリング関数に入力した場合の出力を求めることをいう。   Note that the pairing is a so-called bilinear function that is a two-input one-output function and has linearity for each input. Further, calculating and calculating pairing means obtaining an output when a predetermined value is input to the pairing function.

[ηペアリング演算アルゴリズム]
〔準備〕E(F3^m):有限体F3^m上定義された楕円曲線
(ρ)=ρ−ρ−1
(σ)=σ+1
3^(6m)の元は、F3^m[ρ,σ]/(g(ρ),g(σ))の元として表現する。
〔入力〕P=(x,y),Q=(x,y)∈E(F3^m
〔出力〕η(P,Q)∈F 3^(6m)
〔計算方法〕
Step1:y←−y(∈F3^m
Step2:f←−y(x+x+1)+yσ+yρ(∈F3^(6m)
Step3:i=0から(m−1)/2までStep3−1〜Step3−5を繰り返す。
T pairing algorithm]
[Preparation] E (F 3 ^ m ): Elliptic curve g 1 (ρ) = ρ 3 −ρ−1 defined on the finite field F 3 ^ m
g 2 (σ) = σ 2 +1
The element of F 3 ^ (6m) is expressed as an element of F 3 ^ m [ρ, σ] / (g 1 (ρ), g 2 (σ)).
[Input] P = (x p , y p ), Q = (x q , y q ) ∈E (F 3 ^ m )
[Output] η T (P, Q) ∈F * 3 ^ (6m)
〔Method of calculation〕
Step 1: y p ← −y p (∈F 3 ^ m )
Step 2: f ← −y p (x p + x q +1) + y q σ + y p ρ (∈F 3 ^ (6m) )
Step 3: Repeat Step 3-1 to Step 3-5 from i = 0 to (m−1) / 2.

Step3−1:u←x+x+1(∈F3^m
Step3−2:g←−u+yσ−uρ−ρ(∈F3^(6m)
Step3−3:f←fg(∈F3^(6m)
Step3−4:x←x (1/3),y←y (1/3)
Step3−5:x←x ,y←y
Step4:f((3^3m)−1)((3^m)+1)((3^m)−(3^((m+1)/2))+1)を出力する。
Step 3-1: u ← x p + x q +1 (∈F 3 ^ m )
Step3-2: g ← -u 2 + y p y q σ-uρ-ρ 2 (∈F 3 ^ (6m))
Step 3-3: f ← fg (∈F 3 ^ (6m) )
Step 3-4: x p <-x p (1/3) , y p <-y p (1/3)
Step 3-5: x q ← x q 3 , y q ← y q 3
Step 4: f ((3 ^ 3m) -1) ((3 ^ m) +1) ((3 ^ m)-(3 ^ ((m + 1) / 2)) + 1) is output.

上記のηペアリング演算アルゴリズムにおいて計算する必要がある有限体F3^mの乗算をコンピュータ上に実装するための方法が非特許文献1に開示されている。ここで、有限体F3^mの乗算とは、有限体F3^mに属する2つの元の積を求めることをいう。例えば、上記Step2におけるy(x+x+1)、Step3−2におけるu、yが有限体F3^mの乗算である。 Non-Patent Document 1 discloses a method for implementing on a computer multiplication of a finite field F 3 ^ m that needs to be calculated in the above-described η T pairing calculation algorithm. Here, the multiplication of the finite field F 3 ^ m, refers to determining the two original product belonging to a finite field F 3 ^ m. For example, y p (x p + x q +1) in Step 2 and u 2 and y p y q in Step 3-2 are multiplications of a finite field F 3 ^ m .

非特許文献1に記載された技術においては、有限体F3^mの乗算をする度ごとに事前演算テーブルを生成して、その事前演算テーブルを用いて有限体F3^mの乗算を行っている(例えば、非特許文献1参照。)。 In the technique described in Non-Patent Document 1, each time that the multiplication of the finite field F 3 ^ m to generate a pre-operation table, performing multiplication finite F 3 ^ m with the pre-calculation table (For example, refer nonpatent literature 1.).

ここで、上記ηペアリング演算アルゴリズムにおいては、後述するように、Step3−2、Step3−3において18回の有限体F3^m乗算をする必要がある。このため、非特許文献1に記載された発明を上記ηペアリング演算アルゴリズムに適用した場合には、Step3−2、Step3−3において18回事前演算テーブルを生成することになる。
川原祐人、外3名、「ηTペアリングの高速ソフトウェア実装」、SCIS2007、2E3−2、2007年、
Here, in the η T pairing calculation algorithm, it is necessary to perform 18 finite field F 3 ^ m multiplications in Step 3-2 and Step 3-3, as will be described later. For this reason, when the invention described in Non-Patent Document 1 is applied to the η T pairing calculation algorithm, the pre-calculation table is generated 18 times in Step 3-2 and Step 3-3.
Yuto Kawahara, 3 others, “High-speed software implementation of ηT pairing”, SCIS2007, 2E3-2, 2007,

非特許文献1に記載された技術においては、有限体の乗算をする度ごとに事前演算テーブルを生成しており、ペアリングの演算を十分に高速化できていないという問題があった。
本発明は、ペアリングの演算を高速化するための技術を提供することを目的とする。
In the technique described in Non-Patent Document 1, a pre-operation table is generated every time multiplication of a finite field is performed, and there is a problem that pairing operation cannot be sufficiently speeded up.
An object of this invention is to provide the technique for speeding up the calculation of pairing.

ペアリングを演算するペアリング演算装置において、事前演算手段が、ある有限体を基礎体とする拡大体の元であり多項式で表現される第一の数を、その有限体の元を係数とする項数Ws(Wsは所定の自然数)の複数の多項式とそれぞれ乗算する。事前演算テーブル記憶手段が、項数Wsの多項式の各組と、演算結果とを対応付けたものを、第一の数についての事前演算テーブルとして記憶する。分割手段が、拡大体の元であり多項式で表現される第二の数を、項数wの多項式に分割する。参照手段が、事前演算テーブル記憶部から読み込んだ事前演算テーブルを参照して、第一の数と分割された各多項式との積を求める。加算手段が、参照手段により求まった積を加算することにより、第一の数と第二の数との積を求める。また、ペアリング演算中に、第一の数を、拡大体の元であり多項式で表現される複数の被乗数とそれぞれ乗算する場合には、各被乗数を第二の数として、分割手段、参照手段、加算手段による処理を行うことにより、事前演算テーブル記憶手段から読み込んだ既に生成された同じ事前演算テーブルを参照して、第一の数と被乗数との積をそれぞれ求める。
加算手段が求めた積をリダクションする第一のリダクション手段をさらに備え、事前演算手段が演算した積をリダクションする第二のリダクション手段をさらに備え、事前演算テーブルは、項数Wsの多項式の各組と、第二のリダクション手段によってリダクションされた演算結果とを対応付けたものを、第一の数についての事前演算テーブルとして記憶する手段であり、第一の数についての事前演算テーブルが事前演算テーブル記憶手段に記憶されているかどうかを判定して、事前演算テーブル記憶手段に第一の数についての事前演算テーブルが記憶されていないと判定された場合には、事前演算手段に第一の数についての事前演算テーブルを生成させる第一の制御手段、をさらに備えていてもよい。
または、加算手段が求めた積をリダクションする第一のリダクション手段をさらに備え、事前演算手段が演算した積をリダクションする第二のリダクション手段をさらに備え、事前演算テーブルは、項数Wsの多項式の各組と、第二のリダクション手段によってリダクションされた演算結果とを対応付けたものを、第一の数についての事前演算テーブルとして記憶する手段であり、のペアリング演算において、第一の数を乗数とする乗算が再び行われるかどうかを判定して、第一の数を乗数とする乗算が再び行われると判定された場合には、事前演算テーブル記憶手段に第一の数についての事前演算テーブルを記憶させるとともに、第一の数を乗数とする乗算が再び行われないと判定された場合には、事前演算テーブル記憶手段に第一の数についての事前演算テーブルを記憶させないように制御する第二の制御手段、をさらに備えていてもよい。
In the pairing calculation device for calculating pairing, the pre-calculation means uses the first number expressed by a polynomial as an element of an extension field based on a certain finite field, and the element of the finite field as a coefficient. A plurality of polynomials having the number of terms Ws (Ws is a predetermined natural number) are respectively multiplied. The pre-calculation table storage means stores, as a pre-calculation table for the first number, a correspondence between each pair of polynomials having the number of terms Ws and the calculation result. The dividing means divides the second number that is an element of the extension field and is expressed by a polynomial into a polynomial having the number of terms w. The reference means refers to the pre-calculation table read from the pre-calculation table storage unit, and obtains the product of the first number and each divided polynomial. The adding means adds the products obtained by the reference means to obtain the product of the first number and the second number. Further, during the pairing operation, when multiplying the first number by a plurality of multiplicands which are elements of the extension field and expressed by polynomials, each multiplicand is set as the second number, and the dividing means and the reference means Then, by performing the processing by the adding means, the product of the first number and the multiplicand is obtained with reference to the same pre-calculated table already read from the pre-calculating table storage means.
The system further comprises first reduction means for reducing the product obtained by the addition means, further comprising second reduction means for reducing the product calculated by the pre-calculation means, and the pre-calculation table includes each set of polynomials having the number of terms Ws. And a calculation result reduced by the second reduction means are stored as a pre-calculation table for the first number, and the pre-calculation table for the first number is stored in the pre-calculation table. If it is determined whether or not the pre-calculation table storage means stores the pre-calculation table for the first number, it is determined whether the pre-calculation means stores the first number. There may be further provided first control means for generating the pre-calculation table.
Alternatively, the image processing apparatus further includes a first reduction unit that reduces the product obtained by the addition unit, further includes a second reduction unit that reduces the product calculated by the pre-calculation unit, and the pre-calculation table includes a polynomial having a number of terms Ws. A means for storing each set in association with the calculation result reduced by the second reduction means as a pre-calculation table for the first number. If it is determined whether the multiplication with the multiplier is performed again and it is determined that the multiplication with the first number as the multiplier is performed again, the preliminary calculation for the first number is stored in the pre-calculation table storage unit. When the table is stored and it is determined that the multiplication using the first number as a multiplier is not performed again, the first number is stored in the pre-calculation table storage means. Second control means for controlling so as not to store the precomputed table you are, it may be further provided.

ペアリング演算において、ある乗数についての有限体の乗算を行うときに、その乗数についての事前演算テーブルが既に生成されている場合には、その既に生成された事前演算テーブルを用いて多項式乗算を行う。これにより、有限体の乗算をする度ごとに事前演算テーブルを生成する必要はなくなり、ペアリング演算を高速に行うことができる。   In the pairing operation, when performing multiplication of a finite field for a certain multiplier, if a pre-calculation table for the multiplier has already been generated, polynomial multiplication is performed using the generated pre-calculation table. . Thereby, it is not necessary to generate a pre-calculation table every time multiplication of a finite field is performed, and pairing calculation can be performed at high speed.

[理論]
上記したηペアリング演算アルゴリズムにおけるfは、ρとσの多項式として一般に、
f=(c0+c1ρ+c2ρ2)+(c3+c4ρ+c5ρ2
と書くことができる。ここで、c,c,c,c,c,c∈F3^mである。また、d=yとすると、上記したηペアリング演算アルゴリズムにおけるgは、ρとσの多項式として、
g=-(u2+uρ+ρ2)+dσ
と書くことができる。そうすると、Step3−3におけるfgの演算は、
fg={(c0+c1ρ+c2ρ2)+(c3+c4ρ+c5ρ2)σ}×{-(u2+uρ+ρ2)+dσ}
となり、分配の法則により、このfgの演算は次の4つの部分に分けて考えることができる。
[theory]
In the above η T pairing algorithm, f is generally a polynomial of ρ and σ,
f = (c 0 + c 1 ρ + c 2 ρ 2 ) + (c 3 + c 4 ρ + c 5 ρ 2 ) σ
Can be written. Here, c 0 , c 1 , c 2 , c 3 , c 4 , c 5 ∈ F 3 ^ m . Further, when d = y p y q , g in the above η T pairing algorithm is expressed as a polynomial of ρ and σ,
g =-(u 2 + uρ + ρ 2 ) + dσ
Can be written. Then, the calculation of fg in Step 3-3 is
fg = {(c 0 + c 1 ρ + c 2 ρ 2 ) + (c 3 + c 4 ρ + c 5 ρ 2 ) σ} × {-(u 2 + uρ + ρ 2 ) + dσ}
Thus, according to the law of distribution, the calculation of fg can be divided into the following four parts.

(c0+c1ρ+c2ρ2)×d (1)
(c3+c4ρ+c5ρ2)×d (2)
(c0+c1ρ+c2ρ2)×(u2+uρ+ρ2) (3)
(c3+c4ρ+c5ρ2)×(u2+uρ+ρ2) (4)
上記(1)式、(2)式においては、dを乗数とする、cd,cd,cd,cd,cd,cdという6回のF3^mの乗算が行われる。ここで、本発明における事前演算テーブルは所定の乗数について作成されるものである(事前演算テーブルの詳細については後述する。)。したがって、上記(1)式、(2)式の演算においては、dを乗数とする事前演算テーブルを一回作成すれば、その事前演算テーブルを他のdを乗数とするF3^mの乗算にも使用することができる。具体的には、cdを演算する際に、dを乗数とする事前演算テーブルを作成すれば、その事前演算テーブルをcd,cd,cd,cd,cdの演算にも使用することができる。
(c 0 + c 1 ρ + c 2 ρ 2 ) × d (1)
(c 3 + c 4 ρ + c 5 ρ 2 ) × d (2)
(c 0 + c 1 ρ + c 2 ρ 2 ) × (u 2 + uρ + ρ 2 ) (3)
(c 3 + c 4 ρ + c 5 ρ 2 ) × (u 2 + uρ + ρ 2 ) (4)
In the above formulas (1) and (2), 6 times F 3 ^ m as c 0 d, c 1 d, c 2 d, c 3 d, c 4 d, c 5 d, where d is a multiplier. Is multiplied. Here, the pre-calculation table in the present invention is created for a predetermined multiplier (details of the pre-calculation table will be described later). Therefore, in the calculations of the above formulas (1) and (2), once a pre-calculation table with d as a multiplier is created, the pre-calculation table is multiplied by F 3 ^ m with another d as a multiplier. Can also be used. Specifically, when calculating a pre-computation table having d as a multiplier when computing c 0 d, the pre-computation table is c 1 d, c 2 d, c 3 d, c 4 d, c 5. It can also be used to calculate d.

また、上記(3)式、(4)式においては、例えば、uを乗数とするcu,(cu+c)u,cu,(cu)u,cu,(cu+c)u,cu,(cu)u,という8回のF3^mの乗算が行われ、uを乗数とするc,cという2回のF3^mの乗算が行われると考えることができる。ここで、上記(3)式、(4)式の演算が行われるStep3−3よりも前のStep3−2においてuを計算しており、このuの計算において、uを乗数とする事前演算テーブルは既に作成されている。したがって、この既に作成されたuを乗数とする事前演算テーブルを、上記したuを乗数とする8回のF3^mの乗算に用いることができる。したがって、この場合、uを乗数とする事前演算テーブルを一回作成すれば、上記(3)式、(4)式の演算を行うことができる。 In the above formulas (3) and (4), for example, c 2 u, (c 2 u + c 1 ) u, c 0 u, (c 0 u) u, c 5 u, ( c 5 u + c 4 ) u, c 3 u, and (c 3 u) u are multiplied 8 times by F 3 ^ m , and 2 times c 1 u 2 and c 4 u 2 with u 2 as a multiplier. Can be considered to be multiplied by F 3 ^ m . Here, u 2 is calculated in Step 3-2 prior to Step 3-3 in which the operations of the above expressions (3) and (4) are performed. In this u 2 calculation, u is a multiplier. A calculation table has already been created. Therefore, the already created pre-calculation table with u as a multiplier can be used for the above-described eight multiplications of F 3 ^ m with u as a multiplier. Therefore, in this case, if the pre-calculation table having u 2 as a multiplier is created once, the calculations of the above expressions (3) and (4) can be performed.

このように、Step3−2においてu、yの2回の乗算と、Step3−3において16回(=上記(1)、(2)式の6回+上記(3)、(4)式の10回)の乗算とを合わせた合計18回のF3^mの乗算の必要がある。しかし、上記のように考えると、Step3−2、Step3−3において、事前演算として、u、yとyの何れか一方、d、uをそれぞれ乗数とする計4つの事前演算テーブルを作成すれば足りることがわかる。 Thus, in Step 3-2, the multiplication of u 2 and y p y q is performed twice, and in Step 3-3, 16 times (= 6 times of the above formulas (1) and (2) + (3), (4 It is necessary to perform a total of 18 multiplications of F 3 ^ m including the multiplication of 10) in the formula. However, given as described above, Step 3-2, in Step 3-3, as a pre-operation, u, either the y p and y q, d, a total of four pre-calculation table to multiplier a u 2, respectively You can see that it is enough if you create it.

また、上記(3)式、(4)式において、uを乗数とする演算は行われず、uを乗数とする、cu,(cu)u,cu,(cu)u,cu,(cu)u,cu,(cu)u,cu,(cu)u,cu,(cu)u,という12回の演算が行われると考えることができる。この場合、uを乗数とする事前演算テーブルを作成する必要はない。したがって、この場合には、Step3−2、Step3−3において、事前演算として、u、yとyの何れか一方、dをそれぞれ乗数とする計3つの事前演算テーブルを作成すればよい。つまり、作成する必要がある事前演算テーブルをさらに少なくすることができることがわかる。 Further, in the above formulas (3) and (4), the calculation using u 2 as a multiplier is not performed, and c 2 u, (c 2 u) u, c 1 u, (c 1 u) with u as a multiplier. ) U, c 0 u, (c 0 u) u, c 5 u, (c 5 u) u, c 4 u, (c 4 u) u, c 3 u, (c 3 u) u, 12 times It can be considered that the following calculation is performed. In this case, it is not necessary to create a pre-calculation table with u 2 as a multiplier. Therefore, in this case, Step 3-2, in Step 3-3, as a pre-operation, u, either the y p and y q, may be creating a total of three pre-calculation table to the d respectively multiplier. That is, it can be seen that the number of pre-calculation tables that need to be created can be further reduced.

このように、ある乗数についての事前演算テーブルを、その乗数についての有限体の他の演算に使いまわすことにより、ペアリングの演算を高速に行うことができる。また、事前演算テーブルを作成する部分にコストをかけて、多項式乗算部分を高速化することによりさらにペアリング演算の高速化が可能である。   In this way, pairing calculation can be performed at high speed by reusing the pre-calculation table for a certain multiplier for other calculations of the finite field for that multiplier. Further, it is possible to further increase the speed of the pairing operation by increasing the speed of the polynomial multiplication portion by adding a cost to the portion for creating the pre-operation table.

[事前演算テーブル]
事前演算テーブルと、その事前演算テーブルを用いた多項式乗算について説明をする。説明の便宜のため、標数3の基礎体F={0,1,2}のm次拡大体である有限体F3^mについての多項式乗算
C(x)=A(x)・B(x)
を例に挙げる。他の標数の基礎体のm次拡大体である有限体についても、同様にして事前演算テーブルを構成して、多項式乗算をすることができる。多項式乗算とは、入力A(x),B(x)∈F3^mから、出力C(x)∈F3^mを求めることをいう。ここで、A(x),B(x),C(x)は次のように表記される。
[Pre-calculation table]
A pre-operation table and polynomial multiplication using the pre-operation table will be described. For convenience of explanation, polynomial multiplication for a finite field F 3 ^ m that is an m-th order extension field of a fundamental field F 3 = {0, 1, 2} of characteristic 3 C (x) = A (x) · B (X)
Take as an example. A finite field that is an m-th order extension field of a base field of another characteristic can be similarly subjected to polynomial multiplication by configuring a pre-calculation table. The polynomial multiplication, the input A (x), from B (x) ∈F 3 ^ m , refers to determining the output C (x) ∈F 3 ^ m . Here, A (x), B (x), and C (x) are expressed as follows.

A(x)=a+ax+a+…+am−1m−1
B(x)=b+bx+b+…+bm−1m−1
C(x)=c+bx+b+…+b2m−22m−2
この多項式乗算は、いわゆるWindows法によって高速処理が可能となる。Windows法は、A(x)に対して事前計算を行い、B(x)の走査時に複数の係数bを同時に確認して加算を行うアルゴリズムのことである。ここで、1度に確認する係数の個数(bi+w−1,bi+w−2,…,b)をウィンドウサイズWsとする。事前演算テーブルとは、このA(x)に対する事前計算の結果のことである。
A (x) = a 0 + a 1 x + a 2 x 2 +... + A m−1 x m−1
B (x) = b 0 + b 1 x + b 2 x 2 +... + B m−1 x m−1
C (x) = c 0 + b 1 x + b 2 x 2 +... + B 2m−2 x 2m−2
This polynomial multiplication can be processed at high speed by the so-called Windows method. Windows method performs pre-computed for A (x), is that the algorithm for adding check plurality of coefficients b i at the same time scanning the B (x). Here, the number of coefficients (b i + w−1 , b i + w−2 ,..., B i ) to be confirmed at a time is defined as the window size Ws. The pre-computation table is a result of pre-computation for this A (x).

具体的には、A(x)に対する事前計算とは、項数WsのWs−1次多項式
W(x)=w+wx+w+…+wWs−1Ws−1(w∈{0,1,2})
のすべての組合せに対して、A(x)×W(x)の結果を求めることをいう。言い換えると、有限体Fを基礎体とするm次拡大体F3^mの元であり多項式で表現されるA(x)を、その有限体Fの元を係数とする項数Wsの各多項式W(x)とそれぞれ演算することである。ある係数w∈{0,1,2}の組{w,w,w,…,wWs−1}についてのA(x)×W(x)の演算結果をA’[w,w,w,…,wWs−1]∈F3^mとすると、この演算により、例えば、図3に例示するような事前演算テーブルを得ることができる。このように事前演算テーブルとは、Ws個の係数の各組と、その演算結果とを対応づけたものである。換言すると、事前演算テーブルとは、項数Wsの各多項式と、その演算結果を対応づけたものである。
Specifically, the pre-computation for A (x) is a Ws-1 order polynomial with the number of terms Ws W (x) = w 0 + w 1 x + w 2 x 2 +... + W Ws−1 x Ws−1 (w i ∈ {0, 1, 2})
Is obtained for all combinations of A (x) × W (x). In other words, the A (x) represented by the original a is polynomial in m-th extension field F 3 ^ m for the finite field F 3 and base body, the number of terms Ws to its original coefficients of a finite field F 3 Each polynomial W (x) is calculated. The calculation result of A (x) × W (x) for a set {w 0 , w 1 , w 2 ,..., W Ws−1 } of a certain coefficient w i ε { 0 , 1 , 2 } is expressed as A ′ [w Assuming that 0 , w 1 , w 2 ,..., W Ws−1 ] ∈F 3 ^ m , for example, a pre-operation table as illustrated in FIG. Thus, the pre-calculation table is a table in which each set of Ws coefficients is associated with the calculation result. In other words, the pre-operation table associates each polynomial of the number of terms Ws with the operation result.

次に、事前演算テーブルを用いた多項式乗算について説明をする。m次多項式であるB(x)は、項数Wsの多項式に分割される。より詳細には、項数Wsの多項式に分割された後に、項数Wsの分割された各多項式は共通するxの累乗で括られる。   Next, polynomial multiplication using a pre-calculation table will be described. B (x), which is an m-order polynomial, is divided into polynomials having a number of terms Ws. More specifically, after being divided into polynomials having the number of terms Ws, each of the divided polynomials having the number of terms Ws is bundled with a common power of x.

B(x)= (b0+b1x+b2x2+…+bWs-1xWs-1)
+(bWs+b+Ws+1x+bWs+2x2+…+b2Ws-1xWs-1)xWs

+(bm-Ws+bm-Ws+1x+bm-Ws+2x2+…+bm-1xm-1)xm-Ws
この場合、A(x)・B(x)を以下のように書くことができる。
B (x) = (b 0 + b 1 x + b 2 x 2 +… + b Ws-1 x Ws-1 )
+ (b Ws + b + Ws + 1 x + b Ws + 2 x 2 +… + b 2Ws-1 x Ws-1 ) x Ws
...
+ (b m-Ws + b m-Ws + 1 x + b m-Ws + 2 x 2 +… + b m-1 x m-1 ) x m-Ws
In this case, A (x) · B (x) can be written as follows.

A(x)・B(x)= A(x)・(b0+b1x+b2x2+…+bWs-1xWs-1)
+A(x)・(bWs+b+Ws+1x+bWs+2x2+…+b2Ws-1xWs-1)xWs

+A(x)・(bm-Ws+bm-Ws+1x+bm-Ws+2x2+…+bm-1xWs-1)xm-Ws
事前演算テーブルにおいて、A(x)と項数Wsの任意の多項式W(x)との積は計算してあるので、事前演算テーブルを参照することにより、A(x)と分割された項数Wsの各多項式との積は容易に求めることができる。すなわち、分割された項数Wsの多項式のWs個の係数の組に対応する演算結果を参照する。そして、その分割された項数Wsの多項式が、xの累乗で括ったものであれば、その演算結果にそのxの累乗をかけることにより、A(x)と分割された項数Wsの各多項式との積を求めることができる。
A (x) ・ B (x) = A (x) ・ (b 0 + b 1 x + b 2 x 2 +… + b Ws-1 x Ws-1 )
+ A (x) ・ (b Ws + b + Ws + 1 x + b Ws + 2 x 2 +… + b 2Ws-1 x Ws-1 ) x Ws
...
+ A (x) ・ (b m-Ws + b m-Ws + 1 x + b m-Ws + 2 x 2 +… + b m-1 x Ws-1 ) x m-Ws
In the precomputation table, the product of A (x) and an arbitrary polynomial W (x) of the number of terms Ws has been calculated. The product of Ws and each polynomial can be easily obtained. That is, the calculation result corresponding to the set of Ws coefficients of the divided polynomial of the number of terms Ws is referred to. Then, if the divided polynomial of the number of terms Ws is enclosed by a power of x, each of the number of terms Ws divided by A (x) is obtained by multiplying the operation result by the power of x. A product with a polynomial can be obtained.

A(x)・B(x)= A[b0,b1,b2,…,bWs-1]
+A[bWs,bWs+1,bWs+2,…,b2Ws-1]xWs

+A[bm-Ws,bm-Ws+1,bm-Ws+2,…,bm-1]xm-Ws
このようにして求まったA(x)と分割された項数Wsの各多項式との積を加算することにより、C(x)=A(x)・B(x)が計算される。
A (x) ・ B (x) = A [b 0 , b 1 , b 2 ,…, b Ws-1 ]
+ A [b Ws , b Ws + 1 , b Ws + 2 ,…, b 2Ws-1 ] x Ws
...
+ A [b m-Ws , b m-Ws + 1 , b m-Ws + 2 ,…, b m-1 ] x m-Ws
C (x) = A (x) · B (x) is calculated by adding the product of A (x) obtained in this way and each polynomial of the divided number of terms Ws.

[装置構成]
図1に例示したペアリング演算部3は、所定の入力P,Qについてのペアリングη(P,Q)を計算する。ペアリングの演算中に、有限体の乗算を行う必要がある場合には、ペアリング演算部3の乗算演算部1がその演算を行うように、ペアリング演算部3の制御部2が制御する。
[Device configuration]
The pairing calculation unit 3 illustrated in FIG. 1 calculates pairing η T (P, Q) for predetermined inputs P and Q. When it is necessary to perform multiplication of a finite field during the pairing calculation, the control unit 2 of the pairing calculation unit 3 controls so that the multiplication calculation unit 1 of the pairing calculation unit 3 performs the calculation. .

以下、ある有限体を基礎体とする拡大体の元であり多項式で表現される乗数Aと、同じ拡大体の元であり多項式で表現される被乗数Bとが乗算される場合を例に挙げて説明をする。乗数Aは、上記[事前テーブル]の項目で説明をしたA(x)に対応しており、被乗数BはB(x)に対応するものである。   Hereinafter, as an example, a multiplier A which is an element of an extension field based on a certain finite field and is expressed by a polynomial is multiplied by a multiplicand B which is an element of the same extension field and is expressed by a polynomial. Explain. The multiplier A corresponds to A (x) described in the above item [Preliminary table], and the multiplicand B corresponds to B (x).

図2に、乗算演算部1の機能構成を示す。有限体を基礎体とする拡大体の元であり多項式で表現される乗数Aが入力されると、乗算演算部1の事前演算部10は、メモリ15からウィンドウサイズWsを読み出して、その乗数Aについての事前演算テーブルtを生成する。具体的には、上記したように、ある有限体を基礎体とする拡大体の元であり多項式で表現される乗数Aを、その有限体の元を係数とする項数Ws(Wsは所定の自然数)の複数の多項式とそれぞれ乗算することにより事前演算テーブルtを生成する。 FIG. 2 shows a functional configuration of the multiplication operation unit 1. When a multiplier A that is an element of an extension field based on a finite field and is expressed by a polynomial is input, the pre-operation unit 10 of the multiplication operation unit 1 reads the window size Ws from the memory 15, and the multiplier A A pre-calculation table t A for is generated. Specifically, as described above, a multiplier A that is an element of an extension field based on a certain finite field and is expressed by a polynomial, and a term number Ws (Ws is a predetermined number) whose coefficient is the element of the finite field. A pre-calculation table t A is generated by multiplying each of a plurality of (natural number) polynomials.

生成された事前演算テーブルtは、事前演算テーブル記憶部11に記憶される。この例では、事前演算テーブル記憶部11には、事前演算テーブルtのみが記憶されているが、他の事前演算テーブルを記憶していてもよい。 The generated pre-calculation table t A is stored in the pre-calculation table storage unit 11. In this example, the pre-calculation table storage unit 11, only the pre-calculation table t A is stored, may store other pre calculation table.

積演算部12に被乗数Bが入力されると、積演算部12の分割部121は、メモリ15からウィンドウサイズWsを読み込んで、被乗数Bを項数Wsの多項式に分割する。分割された項数Wsの多項式は、参照部122に送られる。被乗数Bの項数が、ウィンドウサイズWsの倍数でないときには、被乗数Bは、項数Wsの多項式と、Wsより下の項数の多項式に分割される。すなわち、一般に、被乗数Bは、項数Ws以下の多項式に分割される。   When the multiplicand B is input to the product operation unit 12, the dividing unit 121 of the product operation unit 12 reads the window size Ws from the memory 15, and divides the multiplicand B into polynomials having a term number Ws. The divided polynomial of the number of terms Ws is sent to the reference unit 122. When the number of terms of the multiplicand B is not a multiple of the window size Ws, the multiplicand B is divided into a polynomial of the number of terms Ws and a polynomial of the number of terms below Ws. That is, in general, the multiplicand B is divided into polynomials having a term number Ws or less.

参照部122は、事前演算テーブル記憶部11の事前演算テーブルtを参照して、乗数Aと、分割された項数Wsの各多項式との積をそれぞれ求める。各多項式ごとに求まった積は、加算部123に送られる。被乗数Bの項数が、ウィンドウサイズWsの倍数でないときに生じるWsより下の項数の多項式については、対応する係数が0であるとして事前演算テーブルを参照すればよい。 The reference unit 122 refers to the precomputation table t A in the precomputation table storage unit 11 to obtain the product of the multiplier A and each polynomial of the divided number of terms Ws. The product obtained for each polynomial is sent to the adder 123. For the polynomial of the number of terms below Ws that occurs when the number of terms of the multiplicand B is not a multiple of the window size Ws, the pre-computation table may be referred to assuming that the corresponding coefficient is 0.

加算部123は、参照部122が求めた積を加算することにより、乗数Aと被乗数Bとの積、換言すると、事前演算テーブルtに関する乗数Aと被乗数Bの積M(t,B)を計算して出力する。 Addition unit 123, by referring unit 122 adds the products obtained, the product of the multiplier factor A and the multiplicand B, in other words, product M of the multiplier A and the multiplicand B about precomputed table t A (t A, B) Is calculated and output.

ペアリング演算部3は、上記出力結果を用いてペアリングの演算を継続する。   The pairing calculation unit 3 continues the pairing calculation using the output result.

再度、Aを乗数とする乗算をする必要があるときには、既に生成されおり、事前演算テーブル記憶部11に記憶されている事前演算テーブルtを用いて、上記と同様に、乗数Aと被乗数との積が計算される。 When it is necessary to perform multiplication with A as a multiplier again, the multiplier A and the multiplicand are generated using the pre-calculation table t A that has already been generated and stored in the pre-calculation table storage unit 11. The product of is calculated.

A以外の数Dを乗数とする乗算をする必要があるときには、上記と同様にして、事前演算部10が乗数Dについての事前演算テーブルtを生成して、事前演算テーブル記憶部11に格納し、積演算部12がその事前演算テーブルtを参照して、有限体の乗算を行う。 When it is necessary to perform multiplication using a number D other than A as a multiplier, the pre-calculation unit 10 generates a pre-calculation table t D for the multiplier D and stores it in the pre-calculation table storage unit 11 in the same manner as described above. and, product unit 12 by referring to the pre-calculation table t D, for multiplying finite.

この処理を自動的に行うために、ある乗数についての事前演算テーブルが事前演算テーブル記憶部11に記憶されているかどうかを判定して、事前演算テーブル記憶部11にその乗数についての事前演算テーブルが記憶されていないと判定された場合には、事前演算部10にその乗数についての事前演算テーブルを生成させる第一制御部13を設けてもよい。   In order to perform this processing automatically, it is determined whether or not a pre-calculation table for a certain multiplier is stored in the pre-calculation table storage unit 11, and a pre-calculation table for the multiplier is stored in the pre-calculation table storage unit 11. If it is determined that it is not stored, the first control unit 13 may be provided that causes the pre-calculation unit 10 to generate a pre-calculation table for the multiplier.

また、ある乗数についての乗算が再び行われるかどうかを判定して、その乗数についての乗算が再び行われると判定された場合には、事前演算テーブル記憶部11にその乗数についての事前演算テーブルを記憶させるとともに、その乗数についての乗算が再び行われないと判定された場合には、事前演算テーブル記憶部11にその乗数についての事前演算テーブルを記憶させないように制御する第二制御部14を設けてもよい。   In addition, when it is determined whether multiplication for a certain multiplier is performed again and it is determined that multiplication for the multiplier is performed again, a pre-calculation table for the multiplier is stored in the pre-calculation table storage unit 11. A second control unit 14 is provided that controls the multiplier so that the pre-calculation table storage unit 11 does not store the pre-calculation table for the multiplier when it is determined that the multiplication for the multiplier is not performed again. May be.

[第一のηペアリング演算アルゴリズム]
以下に、本発明をηペアリングに適用した場合の第一のηペアリング演算アルゴリズムを示す。この第一のηペアリング演算アルゴリズムは、上記(3)式、(4)式において、uを乗数とするcu,(cu+c)u,cu,(cu)u,cu,(cu+c)u,cu,(cu)u,という8回のF3^mの乗算を行い、uを乗数とするc,cという2回のF3^mの乗算を行う場合のアルゴリズムである。すなわち、Step3において、事前演算として、u、yとyの何れか一方、d、uをそれぞれ乗数とする計4つの事前演算テーブルを作成して、そのうちu、d、uを乗数とする事前演算テーブルについては使いまわす場合のアルゴリズムである。
[First η T pairing algorithm]
The following is a first eta T pairing computation algorithm when the present invention is applied to eta T pairing. This first η T pairing calculation algorithm is the following formulas (3) and (4): c 2 u, (c 2 u + c 1 ) u, c 0 u, (c 0 u) with u as a multiplier u 8, c 5 u, (c 5 u + c 4 ) u, c 3 u, (c 3 u) u, 8 times F 3 ^ m multiplication, and u 2 is a multiplier c 1 u 2 , c This is an algorithm in the case of performing 2 F 3 ^ m multiplications of 4 u 2 . That is, in Step3, as a pre-operation, u, either the y p and y q, d, to create a total of four pre-calculation table to multiplier a u 2, respectively, of which u, d, multiplier and u 2 The pre-calculation table is an algorithm for reusing.

下記のアルゴリズムにおいて、T(A)は乗数A∈F3^mに関する事前演算テーブルtを出力する関数である。また、M(t,B)は、事前演算テーブルtに関する乗数とBの積を出力する関数である。例えば、M(T(A),B)=A・Bである。関数T(A)と関数M(t,B)についての演算は、乗算演算部1において行われる。具体的には、関数T(A)についての演算は事前演算部10において行われ、関数M(t,B)についての演算は積演算部12において行われる。他の処理は、ペアリング演算部3が行う。これは、後述する第二のηペアリング演算アルゴリズムにおいても同様である。 In the following algorithm, T (A) is a function that outputs a pre-calculation table t A for the multiplier AεF 3 ^ m . M (t, B) is a function that outputs a product of a multiplier and B relating to the pre-operation table t. For example, M (T (A), B) = A · B. Calculations for the function T (A) and the function M (t, B) are performed in the multiplication calculation unit 1. Specifically, the calculation for the function T (A) is performed in the pre-calculation unit 10, and the calculation for the function M (t, B) is performed in the product calculation unit 12. Other processing is performed by the pairing calculation unit 3. The same applies to the second η T pairing algorithm described later.

なお、下記Step3−3−4は上記式(3)の演算に対応したステップであり、下記Step3−3−5は上記式(4)の演算に対応したステップであり、下記Step3−3−6はリダクションをしているステップである。   The following Step 3-3-4 is a step corresponding to the calculation of the above formula (3), and the following Step 3-3-5 is a step corresponding to the calculation of the above formula (4), and the following Step 3-3-6 is performed. Is the reduction step.

〔準備〕E(F3^m):有限体F3^m上定義された楕円曲線
(ρ)=ρ−ρ−1
(σ)=σ+1
3^(6m)の元は、F3^(m)[ρ,σ]/(g(ρ),g(σ))の元として表現する。
〔入力〕P=(x,y),Q=(x,y)∈E(F3^m
〔出力〕η(P,Q)∈F 3^(6m)
〔計算方法〕
Step1:y←−y(∈F3^m
Step2:f←−y(x+x+1)+yσ+yρ(∈F3^(6m)
Step3:i=0から(m−1)/2までStep3−1〜Step3−5を繰り返す。
[Preparation] E (F 3 ^ m ): Elliptic curve g 1 (ρ) = ρ 3 −ρ−1 defined on the finite field F 3 ^ m
g 2 (σ) = σ 2 +1
The element of F 3 ^ (6m) is expressed as an element of F 3 ^ (m) [ρ, σ] / (g 1 (ρ), g 2 (σ)).
[Input] P = (x p , y p ), Q = (x q , y q ) ∈E (F 3 ^ m )
[Output] η T (P, Q) ∈F * 3 ^ (6m)
〔Method of calculation〕
Step 1: y p ← −y p (∈F 3 ^ m )
Step 2: f ← −y p (x p + x q +1) + y q σ + y p ρ (∈F 3 ^ (6m) )
Step 3: Repeat Step 3-1 to Step 3-5 from i = 0 to (m−1) / 2.

Step3−1:u←x+x+1(∈F3^m
Step3−2:
Step3−2−1:t←T(u)
Step3−2−2:u←M(t,u)
Step3−2−3:d←y
Step3−3:f=(c+cρ+cρ)+(c+cρ+cρ)σとする。
Step 3-1: u ← x p + x q +1 (∈F 3 ^ m )
Step 3-2:
Step 3-2-1: t u ← T (u)
Step 3-2-2: u 2 <-M (t u , u)
Step3-2-3: d ← y p y q
Step3-3: f = (c 0 + c 1 ρ + c 2 ρ 2) + (c 3 + c 4 ρ + c 5 ρ 2) and sigma.

Step3−3−1:t←T(d)
Step3−3−2:
← M(t,c
← M(t,c
← M(t,c
← M(t,c
← M(t,c
← M(t,c
Step3−3−3:tu^2←T(u
Step3−3−4:
← M(t,c
← M(t,e
← M(tu^2,c)+e
← M(t,c)+c
← M(t,e)+c
← c
← e+e
← e+e+e
← e+e
Step3−3−5:
← M(t,c
← M(t,f
← M(tu^2,c)+f
← M(t,c)+c
← M(t,f)+c
← c
← f+f
← f+f+f
← f+f
Step3−3−6:
← −d−e
← −d−e
← −d−e
← d−f
← d−f
← d−f
Step3−3−7:f←(c+cρ+cρ)+(c+cρ+cρ)σ
Step3−4:x←x (1/3),y←y (1/3)
Step3−5:x←x ,y←y
Step4:f((3^3m)−1)((3^m)+1)((3^m)−(3^((m+1)/2))+1)を出力する。
Step 3-3-1: t d ← T (d)
Step 3-3-2:
d 0 ← M (t d , c 0 )
d 1 ← M (t d , c 1 )
d 2 ← M (t d , c 2 )
d 3 ← M (t d , c 3 )
d 4 ← M (t d , c 4 )
d 5 ← M (t d , c 5 )
Step 3-3-3: t u ^ 2 <-T (u 2 )
Step 3-3-4:
e 1 ← M (t u , c 0 )
e 0 ← M (t u , e 1 )
e 1 <-M ( tu 2 , c 1 ) + e 1
e 3 <-M (t u , c 2 ) + c 1
e 2 <-M (t u , e 3 ) + c 0
e 4 ← c 2
e 0 ← e 0 + e 3
e 1 ← e 1 + e 3 + e 4
e 2 ← e 2 + e 4
Step 3-3-5:
f 1 ← M (t u , c 3 )
f 0 ← M (t u , f 1 )
f 1 <-M ( tu 2 , c 4 ) + f 1
f 3 ← M (t u , c 5 ) + c 4
f 2 ← M (t u , f 3 ) + c 3
f 4 ← c 5
f 0 ← f 0 + f 3
f 1 ← f 1 + f 3 + f 4
f 2 ← f 2 + f 4
Step 3-3-6:
c 0 ← −d 0 −e 0
c 1 ← −d 1 −e 1
c 2 ← −d 2 −e 2
c 3 ← d 3 -f 0
c 4 ← d 4 -f 1
c 5 ← d 5 -f 2
Step 3-3-7: f ← (c 0 + c 1 ρ + c 2 ρ 2 ) + (c 3 + c 4 ρ + c 5 ρ 2 ) σ
Step 3-4: x p <-x p (1/3) , y p <-y p (1/3)
Step 3-5: x q ← x q 3 , y q ← y q 3
Step 4: f ((3 ^ 3m) -1) ((3 ^ m) +1) ((3 ^ m)-(3 ^ ((m + 1) / 2)) + 1) is output.

[第二のηペアリング演算アルゴリズム]
以下に、本発明をηペアリングに適用した場合の第二のηペアリング演算アルゴリズムを示す。この第二のηペアリング演算アルゴリズムは、上記(3)式、(4)式において、uを乗数とする演算は行わず、uを乗数とする、cu,(cu)u,cu,(cu)u,cu,(cu)u,cu,(cu)u,cu,(cu)u,cu,(cu)u,という12回の演算が行う場合のアルゴリズムである。すなわち、Step3−2、Step3−3において、事前演算として、u、yとyの何れか一方、dをそれぞれ乗数とする計3つの事前演算テーブルを作成して、そのうちu、dを乗数とする事前演算テーブルについては使いまわす場合のアルゴリズムである。
[Second η T pairing algorithm]
Below, the 2nd (eta) T pairing calculation algorithm at the time of applying this invention to (eta) T pairing is shown. In this second η T pairing algorithm, c 2 u, (c 2 u) is calculated by not using u 2 as a multiplier, but using u as a multiplier in the above equations (3) and (4). u, c 1 u, (c 1 u) u, c 0 u, (c 0 u) u, c 5 u, (c 5 u) u, c 4 u, (c 4 u) u, c 3 u, This is an algorithm in the case of performing 12 operations (c 3 u) u. That, Step 3-2, in Step 3-3, as a pre-operation, u, whereas either of y p and y q, creating a total of three pre-calculation table to the d each multiplier, of which u, multipliers and d The pre-calculation table is an algorithm for reusing.

なお、下記Step3−3−3は上記式(3)の演算に対応したステップであり、下記Step3−3−4は上記式(4)の演算に対応したステップであり、下記Step3−3−5はリダクションをしているステップである。   The following Step 3-3-3 is a step corresponding to the calculation of the above formula (3), and the following Step 3-3-4 is a step corresponding to the calculation of the above formula (4), and the following Step 3-3-5 is performed. Is the reduction step.

〔準備〕E(F3^m):有限体F3^m上定義された楕円曲線
(ρ)=ρ−ρ−1
(σ)=σ+1
3^(6m)の元は、F3^(m)[ρ,σ]/(g(ρ),g(σ))の元として表現する。
〔入力〕P=(x,y),Q=(x,y)∈E(F3^m
〔出力〕η(P,Q)∈F 3^(6m)
〔計算方法〕
Step1:y←−y(∈F3^m
Step2:f←−y(x+x+1)+yσ+yρ(∈F3^(6m)
Step3:i=0から(m−1)/2までStep3−1〜Step3−5を繰り返す。
[Preparation] E (F 3 ^ m ): Elliptic curve g 1 (ρ) = ρ 3 −ρ−1 defined on the finite field F 3 ^ m
g 2 (σ) = σ 2 +1
The element of F 3 ^ (6m) is expressed as an element of F 3 ^ (m) [ρ, σ] / (g 1 (ρ), g 2 (σ)).
[Input] P = (x p , y p ), Q = (x q , y q ) ∈E (F 3 ^ m )
[Output] η T (P, Q) ∈F * 3 ^ (6m)
〔Method of calculation〕
Step 1: y p ← −y p (∈F 3 ^ m )
Step 2: f ← −y p (x p + x q +1) + y q σ + y p ρ (∈F 3 ^ (6m) )
Step 3: Repeat Step 3-1 to Step 3-5 from i = 0 to (m−1) / 2.

Step3−1:u←x+x+1(∈F3^m
Step3−2:
Step3−2−1:t←T(u)
Step3−2−2:d←y
Step3−3:f=(c+cρ+cρ)+(c+cρ+cρ)σとする。
Step 3-1: u ← x p + x q +1 (∈F 3 ^ m )
Step 3-2:
Step 3-2-1: t u ← T (u)
Step3-2-2: d ← y p y q
Step3-3: f = (c 0 + c 1 ρ + c 2 ρ 2) + (c 3 + c 4 ρ + c 5 ρ 2) and sigma.

Step3−3−1:t←T(d)
Step3−3−2:
← M(t,c
← M(t,c
← M(t,c
← M(t,c
← M(t,c
← M(t,c
Step3−3−3:
← c
← M(t,e
← M(t,e
← e+c
← M(t,c
← e+e
← M(t,e
← e+c
← M(t,c
← e+e
← M(t,e
← e+e
← e+e+e
← e+e
Step3−3−4:
← c
← M(t,f
← M(t,f
← f+c
← M(t,c
← f+f
← M(t,f
← f+c
← M(t,c
← f+f
← M(t,f
← f+f
← f+f+f
← f+f
Step3−3−5:
← −d−e
← −d−e
← −d−e
← d−f
← d−f
← d−f
Step3−3−6:f←(c+cρ+cρ)+(c+cρ+cρ)σ
Step3−4:x←x (1/3),y←y (1/3)
Step3−5:x←x ,y←y
Step4:f((3^3m)−1)((3^m)+1)((3^m)−(3^((m+1)/2))+1)を出力する。
Step 3-3-1: t d ← T (d)
Step 3-3-2:
d 0 ← M (t d , c 0 )
d 1 ← M (t d , c 1 )
d 2 ← M (t d , c 2 )
d 3 ← M (t d , c 3 )
d 4 ← M (t d , c 4 )
d 5 ← M (t d , c 5 )
Step 3-3-3:
e 4 ← c 2
e 3 ← M (t u , e 4 )
e 2 ← M (t u , e 3 )
e 3 ← e 3 + c 1
e 1 ← M (t u , c 1 )
e 2 ← e 2 + e 1
e 1 ← M (t u , e 1 )
e 2 ← e 2 + c 0
e 0 ← M (t u , c 0 )
e 1 ← e 1 + e 0
e 0 ← M (t u , e 0 )
e 0 ← e 0 + e 3
e 1 ← e 1 + e 3 + e 4
e 2 ← e 2 + e 4
Step 3-3-4:
f 4 ← c 5
f 3 ← M (t u , f 4 )
f 2 ← M (t u , f 3 )
f 3 ← f 3 + c 4
f 1 ← M (t u , c 4 )
f 2 ← f 2 + f 1
f 1 ← M (t u , f 1 )
f 2 ← f 2 + c 3
f 0 ← M (t u , c 3 )
f 1 ← f 1 + f 0
f 0 ← M (t u , f 0 )
f 0 ← f 0 + f 3
f 1 ← f 1 + f 3 + f 4
f 2 ← f 2 + f 4
Step 3-3-5:
c 0 ← −d 0 −e 0
c 1 ← −d 1 −e 1
c 2 ← −d 2 −e 2
c 3 ← d 3 -f 0
c 4 ← d 4 -f 1
c 5 ← d 5 -f 2
Step 3-3-6: f ← (c 0 + c 1 ρ + c 2 ρ 2 ) + (c 3 + c 4 ρ + c 5 ρ 2 ) σ
Step 3-4: x p <-x p (1/3) , y p <-y p (1/3)
Step 3-5: x q ← x q 3 , y q ← y q 3
Step 4: f ((3 ^ 3m) -1) ((3 ^ m) +1) ((3 ^ m)-(3 ^ ((m + 1) / 2)) + 1) is output.

[変形例等]
ηペアリングを例に説明をしたが、本発明は、ηペアリング以外のペアリング演算にも適用することが可能である。
[Modifications, etc.]
Although η T pairing has been described as an example, the present invention can also be applied to pairing operations other than η T pairing.

事前演算部10にリダクション部101を設けて、事前演算部10が演算した演算結果を所定の既約多項式によりリダクションしてもよい。これにより、項数Wsの多項式の各組と、リダクション部101によってリダクションされた各演算結果とが対応付けられた事前演算テーブルが、事前演算テーブル記憶部11に記憶されることになる。リダクションにより、事前演算テーブルのデータ量を少なくすることができる。   The pre-computation unit 10 may be provided with a reduction unit 101, and the computation result computed by the pre-computation unit 10 may be reduced using a predetermined irreducible polynomial. As a result, a pre-calculation table in which each set of polynomials having the number of terms Ws and each calculation result reduced by the reduction unit 101 is associated is stored in the pre-calculation table storage unit 11. The data amount of the pre-calculation table can be reduced by the reduction.

また、加算部123にリダクション部1231を設けて、加算部123が加算した加算結果を所定の既約多項式によりリダクションしてもよい。   Further, a reduction unit 1231 may be provided in the addition unit 123, and the addition result added by the addition unit 123 may be reduced using a predetermined irreducible polynomial.

また、適切なウィンドウサイズWsを定めるために、第一計測部17と、ウィンドウサイズ決定部16を設けてもよい。第一計測部17は、複数のWsに基づいて所定のペアリング演算をそれぞれ行った場合に、そのペアリング演算をするのにかかった時間を複数のWsごとに計測する。ウィンドウサイズWsごとに計測された、ペアリング演算をするのにかかった時間は、ウィンドウサイズ決定部16に送られる。ウィンドウサイズ決定部16は、上記計測されたペアリング演算をするのにかかった時間を最小にするWsを選択する。そして、その最小にするWsをメモリ15に設定する。これにより、ペアリング演算をするのにかかった時間を最小にするWsに基づいて上記事前演算手段に上記乗算をさせることが可能となる。   Further, in order to determine an appropriate window size Ws, a first measurement unit 17 and a window size determination unit 16 may be provided. The first measuring unit 17 measures the time taken for the pairing calculation for each of the plurality of Ws when the predetermined pairing calculation is performed based on the plurality of Ws. The time taken for the pairing calculation, measured for each window size Ws, is sent to the window size determination unit 16. The window size determination unit 16 selects Ws that minimizes the time taken for the measured pairing calculation. Then, the minimum Ws is set in the memory 15. This makes it possible to cause the pre-calculation means to perform the multiplication based on Ws that minimizes the time taken for the pairing calculation.

なお、例えば上記した第一のηペアリング演算アルゴリズム、第二のηペアリング演算アルゴリズムのように、同じペアリングの演算をするための方法は一般に複数ある。適切なペアリング演算アルゴリズムを決定するために、図1に例示するように、アルゴリズム記憶部4、第二計測部5、アルゴリズム決定部6を設けてもよい。アルゴリズム記憶部4には、同じペアリングを演算するための複数のペアリング演算アルゴリズムが格納されている。第二計測部5は、ペアリング演算部3が、上記アルゴリズム記憶部4から読み込んだ複数のペアリング演算アルゴリズムに基づいてペアリング演算をそれぞれ行った場合の、そのペアリング演算をするのにかかった時間を複数のペアリング演算アルゴリズムごとに計測する。ペアリング演算アルゴリズムごとに計測された時間は、アルゴリズム決定部6に送られる。アルゴリズム決定部6は、計測されたペアリング演算をするのにかかった時間を最小にするペアリング演算アルゴリズムを選択する。そして、その最小にするペアリング演算アルゴリズムに基づいて、ペアリング演算部3にペアリング演算をさせるように制御する。これにより、ペアリング演算をするのにかかる時間を最小にすることができ、さらにペアリング演算を高速に行うことができる。 In general, there are a plurality of methods for performing the same pairing calculation, such as the first η T pairing calculation algorithm and the second η T pairing calculation algorithm described above. In order to determine an appropriate pairing calculation algorithm, as illustrated in FIG. 1, an algorithm storage unit 4, a second measurement unit 5, and an algorithm determination unit 6 may be provided. The algorithm storage unit 4 stores a plurality of pairing calculation algorithms for calculating the same pairing. The second measuring unit 5 takes the pairing calculation when the pairing calculation unit 3 performs the pairing calculation based on the plurality of pairing calculation algorithms read from the algorithm storage unit 4. Time is measured for each pairing algorithm. The time measured for each pairing calculation algorithm is sent to the algorithm determination unit 6. The algorithm determination unit 6 selects a pairing operation algorithm that minimizes the time taken to perform the measured pairing operation. Based on the minimum pairing calculation algorithm, the pairing calculation unit 3 is controlled to perform the pairing calculation. As a result, the time required for the pairing calculation can be minimized, and the pairing calculation can be performed at high speed.

上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。   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. The processing functions are realized on the computer by executing the program on the computer.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。   The program describing the processing contents can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. Specifically, for example, the magnetic recording device may be a hard disk device or a flexible Discs, magnetic tapes, etc. as optical disks, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. As the magneto-optical recording medium, MO (Magneto-Optical disc) or the like can be used, and as the semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory) or the like can be used.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   The program is distributed 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)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。   As an execution form different from the above-described embodiment, the computer may read the program directly from the portable recording medium and execute processing according to the program. Each time is transferred, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。   In addition, the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Needless to say, other modifications are possible without departing from the spirit of the present invention.

ペアリング演算部3の機能構成を例示する図。The figure which illustrates the function structure of the pairing calculating part 3. 乗算演算部1の機能構成を例示する図。The figure which illustrates the function structure of the multiplication calculating part 1. 事前演算テーブルを例示する図。The figure which illustrates a prior calculation table.

符号の説明Explanation of symbols

1 乗算演算部
2 制御部
3 ペアリング演算部
4 アルゴリズム記憶部
5 第二計測部
6 アルゴリズム決定部
10 事前演算部
11 事前演算テーブル記憶部
12 積演算部
13 第一制御部
14 第二制御部
15 メモリ
16 ウィンドウサイズ決定部
17 第一計測部
101 リダクション部
121 分割部
122 参照部
123 加算部
1231 リダクション部
DESCRIPTION OF SYMBOLS 1 Multiplication calculating part 2 Control part 3 Pairing calculating part 4 Algorithm memory | storage part 5 Second measuring part 6 Algorithm determination part 10 Pre-arithmetic part 11 Pre-arithmetic table memory | storage part 12 Product calculating part 13 First control part 14 Second control part 15 Memory 16 Window size determination unit 17 First measurement unit 101 Reduction unit 121 Division unit 122 Reference unit 123 Addition unit 1231 Reduction unit

Claims (5)

ペアリングを演算するペアリング演算装置において、
ある有限体を基礎体とする拡大体の元であり多項式で表現される第一の数を、その有限体の元を係数とする項数Ws(Wsは所定の自然数)の複数の多項式とそれぞれ乗算する事前演算手段と、
上記項数Wsの多項式の各組と、上記演算結果とを対応付けたものを、上記第一の数についての事前演算テーブルとして記憶する事前演算テーブル記憶手段と、
上記拡大体の元であり多項式で表現される第二の数を、項数w以下の多項式に分割する分割手段と、
上記事前演算テーブル記憶部から読み込んだ事前演算テーブルを参照して、上記第一の数と上記分割された各多項式との積を求める参照手段と、
上記参照手段により求まった積を加算することにより、上記第一の数と上記第二の数との積を求める加算手段と、
を備え、
ペアリング演算中に、上記第一の数を、上記拡大体の元であり多項式で表現される複数の被乗数とそれぞれ乗算する場合には、各被乗数を第二の数として、上記分割手段、上記参照手段、上記加算手段による処理を行うことにより、上記事前演算テーブル記憶手段から読み込んだ既に生成された同じ事前演算テーブルを参照して、上記第一の数と上記被乗数との積をそれぞれ求め、
記加算手段が求めた積をリダクションする第一のリダクション手段をさらに備え、
記事前演算手段が演算した積をリダクションする第二のリダクション手段をさらに備え、
上記事前演算テーブルは、上記項数Wsの多項式の各組と、上記第二のリダクション手段によってリダクションされた上記演算結果とを対応付けたものを、上記第一の数についての事前演算テーブルとして記憶する手段であり、
記第一の数についての事前演算テーブルが上記事前演算テーブル記憶手段に記憶されているかどうかを判定して、上記事前演算テーブル記憶手段に上記第一の数についての事前演算テーブルが記憶されていないと判定された場合には、上記事前演算手段に上記第一の数についての事前演算テーブルを生成させる第一の制御手段、
をさらに備えることを特徴とするペアリング演算装置。
In the pairing calculation device for calculating pairing,
A first number that is an element of an extension field based on a certain finite field and is represented by a polynomial, and a plurality of polynomials having a number of terms Ws (Ws is a predetermined natural number) having coefficients of the elements of the finite field, respectively. Pre-calculation means for multiplication;
Pre-calculation table storage means for storing each set of polynomials of the number of terms Ws and the calculation result in association with each other as a pre-calculation table for the first number;
A dividing unit that divides the second number that is an element of the extension field and is expressed by a polynomial into a polynomial having a term number w or less;
Reference means for obtaining a product of the first number and each of the divided polynomials with reference to the pre-calculation table read from the pre-calculation table storage unit;
Adding means for obtaining a product of the first number and the second number by adding the products obtained by the reference means;
With
During the pairing operation, when multiplying the first number by a plurality of multiplicands that are elements of the extension field and represented by a polynomial, respectively, each of the multiplicands is set as a second number, and the dividing means, reference means, by performing the processing by the adding means, with reference to the same pre-computation table already generated read from the pre-calculation table storage means, respectively determined Me a product of the first number and the multiplicand ,
Further example Bei the first reduction means for reduction of the product of the upper Symbol adding means obtained,
Further comprising a second reduction means for reduction on articles before product of calculating means is calculated,
The pre-computation table stores, as a pre-computation table for the first number, a correspondence between each pair of polynomials having the number of terms Ws and the computation result reduced by the second reduction means. a means for,
Precomputed table for the first few upper SL is determined whether stored in the pre-calculation table storage device, pre-calculation table for the first number is not stored in the pre-calculation table storage means If it is determined that there is no first control means for causing the pre-calculation means to generate a pre-calculation table for the first number;
The pairing arithmetic device further comprising:
ペアリングを演算するペアリング演算装置において、
ある有限体を基礎体とする拡大体の元であり多項式で表現される第一の数を、その有限体の元を係数とする項数Ws(Wsは所定の自然数)の複数の多項式とそれぞれ乗算する事前演算手段と、
上記項数Wsの多項式の各組と、上記演算結果とを対応付けたものを、上記第一の数についての事前演算テーブルとして記憶する事前演算テーブル記憶手段と、
上記拡大体の元であり多項式で表現される第二の数を、項数w以下の多項式に分割する分割手段と、
上記事前演算テーブル記憶部から読み込んだ事前演算テーブルを参照して、上記第一の数と上記分割された各多項式との積を求める参照手段と、
上記参照手段により求まった積を加算することにより、上記第一の数と上記第二の数との積を求める加算手段と、
を備え、
ペアリング演算中に、上記第一の数を、上記拡大体の元であり多項式で表現される複数の被乗数とそれぞれ乗算する場合には、各被乗数を第二の数として、上記分割手段、上記参照手段、上記加算手段による処理を行うことにより、上記事前演算テーブル記憶手段から読み込んだ既に生成された同じ事前演算テーブルを参照して、上記第一の数と上記被乗数との積をそれぞれ求め、
記加算手段が求めた積をリダクションする第一のリダクション手段をさらに備え、
記事前演算手段が演算した積をリダクションする第二のリダクション手段をさらに備え、
上記事前演算テーブルは、上記項数Wsの多項式の各組と、上記第二のリダクション手段によってリダクションされた上記演算結果とを対応付けたものを、上記第一の数についての事前演算テーブルとして記憶する手段であり、
記のペアリング演算において、上記第一の数を乗数とする乗算が再び行われるかどうかを判定して、上記第一の数を乗数とする乗算が再び行われると判定された場合には、上記事前演算テーブル記憶手段に上記第一の数についての事前演算テーブルを記憶させるとともに、上記第一の数を乗数とする乗算が再び行われないと判定された場合には、上記事前演算テーブル記憶手段に上記第一の数についての事前演算テーブルを記憶させないように制御する第二の制御手段、
をさらに備えることを特徴とするペアリング演算装置。
In the pairing calculation device for calculating pairing,
A first number that is an element of an extension field based on a certain finite field and is represented by a polynomial, and a plurality of polynomials having a number of terms Ws (Ws is a predetermined natural number) having coefficients of the elements of the finite field, respectively. Pre-calculation means for multiplication;
Pre-calculation table storage means for storing each set of polynomials of the number of terms Ws and the calculation result in association with each other as a pre-calculation table for the first number;
A dividing unit that divides the second number that is an element of the extension field and is expressed by a polynomial into a polynomial having a term number w or less;
Reference means for obtaining a product of the first number and each of the divided polynomials with reference to the pre-calculation table read from the pre-calculation table storage unit;
Adding means for obtaining a product of the first number and the second number by adding the products obtained by the reference means;
With
During the pairing operation, when multiplying the first number by a plurality of multiplicands that are elements of the extension field and represented by a polynomial, respectively, each of the multiplicands is set as a second number, and the dividing means, reference means, by performing the processing by the adding means, with reference to the same pre-computation table already generated read from the pre-calculation table storage means, respectively determined Me a product of the first number and the multiplicand ,
Further example Bei the first reduction means for reduction of the product of the upper Symbol adding means obtained,
Further comprising a second reduction means for reduction on articles before product of calculating means is calculated,
The pre-computation table stores, as a pre-computation table for the first number, a correspondence between each pair of polynomials having the number of terms Ws and the computation result reduced by the second reduction means. a means for,
In pairing computation above reporting, to determine whether the multiplication to multiplier the number of the first is performed again, when the multiplication to multiplier the number of the first is determined to be again performed The pre-calculation table storage means stores the pre-calculation table for the first number, and if it is determined that the multiplication using the first number as a multiplier is not performed again, the pre-calculation table Second control means for controlling the storage means not to store the pre-calculation table for the first number;
The pairing arithmetic device further comprising:
請求項1又は2に記載のペアリング演算装置において、
複数のWsに基づいて所定のペアリング演算をそれぞれ行った場合に、そのペアリング演算をするのにかかった時間を複数のWsごとに計測する第一計測手段と、
上記計測されたペアリング演算をするのにかかった時間を最小にするWsを選択して、その最小にするWsに基づいて上記事前演算手段に上記乗算をさせるウィンドウサイズ決定手段と、
を備えることを特徴とするペアリング演算装置。
In the pairing arithmetic device according to claim 1 or 2 ,
A first measuring means for measuring, for each of the plurality of Ws, the time taken to perform the pairing calculation when a predetermined pairing calculation is performed based on the plurality of Ws;
A window size determining means for selecting Ws that minimizes the time taken for the measured pairing calculation, and causing the pre-calculation means to perform the multiplication based on the Ws to be minimized;
A pairing operation device comprising:
請求項1又は2に記載のペアリング演算装置において、
複数のペアリング演算アルゴリズムを記憶するアルゴリズム記憶手段と、
上記アルゴリズム記憶手段から読み込んだ複数のペアリング演算アルゴリズムに基づいてペアリング演算をそれぞれ行った場合に、そのペアリング演算をするのにかかった時間を複数のペアリング演算アルゴリズムごとに計測する第二計測手段と、
上記計測されたペアリング演算をするのにかかった時間を最小にするペアリング演算アルゴリズムを選択して、その最小にするペアリング演算アルゴリズムに基づいて、上記ペアリング演算装置にペアリング演算をさせるアルゴリズム決定手段と、
を備えることを特徴とするペアリング演算装置。
In the pairing arithmetic device according to claim 1 or 2 ,
Algorithm storage means for storing a plurality of pairing operation algorithms;
Secondly, when each pairing calculation is performed based on a plurality of pairing calculation algorithms read from the algorithm storage means, the time taken for the pairing calculation is measured for each of the plurality of pairing calculation algorithms Measuring means;
Select a pairing operation algorithm that minimizes the time taken for the measured pairing operation, and cause the pairing operation device to perform the pairing operation based on the minimum pairing operation algorithm An algorithm determination means;
A pairing operation device comprising:
請求項1から請求項の何れかに記載のペアリング演算装置の各手段としてコンピュータを機能させるためのペアリング演算プログラム。 A pairing calculation program for causing a computer to function as each means of the pairing calculation device according to any one of claims 1 to 4 .
JP2007193100A 2007-07-25 2007-07-25 Pairing arithmetic device, program Active JP4856599B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007193100A JP4856599B2 (en) 2007-07-25 2007-07-25 Pairing arithmetic device, program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007193100A JP4856599B2 (en) 2007-07-25 2007-07-25 Pairing arithmetic device, program

Publications (2)

Publication Number Publication Date
JP2009031396A JP2009031396A (en) 2009-02-12
JP4856599B2 true JP4856599B2 (en) 2012-01-18

Family

ID=40401993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007193100A Active JP4856599B2 (en) 2007-07-25 2007-07-25 Pairing arithmetic device, program

Country Status (1)

Country Link
JP (1) JP4856599B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4649456B2 (en) * 2007-09-26 2011-03-09 株式会社東芝 Power calculation apparatus, power calculation method and program
JP2010164878A (en) * 2009-01-19 2010-07-29 Nippon Telegr & Teleph Corp <Ntt> Ellipsis scalar multiple operation device, method, and program
WO2010123117A1 (en) * 2009-04-24 2010-10-28 日本電信電話株式会社 Finite field calculation apparatus, finite filed calculation method, program, and recording medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4676071B2 (en) * 2001-02-13 2011-04-27 富士通株式会社 Power-residue calculation method, reciprocal calculation method and apparatus
JP4565201B2 (en) * 2003-03-28 2010-10-20 独立行政法人科学技術振興機構 Calculation device, calculation method, program, and recording medium

Also Published As

Publication number Publication date
JP2009031396A (en) 2009-02-12

Similar Documents

Publication Publication Date Title
US6920473B2 (en) Method and apparatus for modular multiplying and calculating unit for modular multiplying
US20190372753A1 (en) Efficient unified hardware implementation of multiple ciphers
TW202044083A (en) Security processor, operating method of the security processor, and method of encrypting or decrypting data
US4994995A (en) Bit-serial division method and apparatus
WO2006054559A1 (en) Encryption computing device
US11502836B2 (en) Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product
KR102075848B1 (en) Method, Apparatus and Recording Medium Of Polynomial Operation Optimization Processing
JP4856599B2 (en) Pairing arithmetic device, program
EP3121710A1 (en) Computational method, computational device and computer software product for montgomery domain
JP4354609B2 (en) Simultaneous equation solving apparatus and inverse element computing apparatus on finite field
KR100670780B1 (en) Hybrid Multiplication Computing Device and Method in Finite Field
JP4901499B2 (en) Data verification system, method thereof, identifier generation device, data verification device, program and recording medium
Park et al. Efficient bit-parallel multiplier for irreducible pentanomials using a shifted polynomial basis
JP4399280B2 (en) Surplus device, surplus method, program, and recording medium
JP3935903B2 (en) Generator polynomial generator and program recording medium thereof
Anagreh et al. Accelerate Performance for Elliptic Curve Scalar Multiplication based on NAF by Parallel Computing.
JP3935902B2 (en) Generator polynomial generator and program recording medium thereof
KR100976232B1 (en) Fast bit-parellel polynomial multipier and method thereof
Hodjat et al. A scalable and high performance elliptic curve processor with resistance to timing attacks
JP3787075B2 (en) Subgroup origin determination device of rational point group on curve, program thereof, and recording medium thereof
JP5554357B2 (en) Arithmetic unit
JP4612698B2 (en) Polynomial multiplier, polynomial multiplication method and program
KR102856750B1 (en) Device for computing solutions of linear systems and its application to digital signature generations
KR101541157B1 (en) Method for multiplying operation of binary extension finite field
KR102734750B1 (en) Apparatus and method for variable RNS base moduli conversion operation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110927

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

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

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4856599

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350