JP2016133601A - Multi-scalar multiplication computation device, multi-scalar multiplication computation method and program - Google Patents
Multi-scalar multiplication computation device, multi-scalar multiplication computation method and program Download PDFInfo
- Publication number
- JP2016133601A JP2016133601A JP2015007719A JP2015007719A JP2016133601A JP 2016133601 A JP2016133601 A JP 2016133601A JP 2015007719 A JP2015007719 A JP 2015007719A JP 2015007719 A JP2015007719 A JP 2015007719A JP 2016133601 A JP2016133601 A JP 2016133601A
- Authority
- JP
- Japan
- Prior art keywords
- digit
- scalar multiplication
- expression
- calculation
- integers
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、楕円曲線暗号やペアリング暗号における鍵生成、暗号化、復号装置に関し、特に情報セキュリティ技術を実現するためのマルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラムに関する。 The present invention relates to a key generation, encryption, and decryption device in elliptic curve cryptography and pairing cryptography, and more particularly to a multiscalar multiplication arithmetic device, a multiscalar multiplication arithmetic method, and a program for realizing information security technology.
事前計算および表現変換を伴わない最も基本的なマルチスカラー倍算の計算は、既に一般的な技術として広まっており、例えば、非特許文献1に掲載されている。非特許文献2において、表現変換を用いず事前計算とマルチスカラー倍算計算により効率的にマルチスカラー倍算を計算する方式が提案されている。またHedabouらの非特許文献3では、本発明とは異なったやり方で、事前計算と表現変換のペアを用いて効率化した手法が示されている。非特許文献3は、固定点スカラー倍算の高速化という文脈で記述されているが、これらはマルチスカラー倍算の計算と捉えることができる。
The most basic multi-scalar multiplication without pre-calculation and expression conversion is already widely used as a general technique, and is described in Non-Patent
楕円曲線暗号では、RSA暗号等と比較して短い鍵長で高い安全性を実現することが可能である。またペアリング暗号では、双線型性と呼ばれる性質を用いることで、任意の文字列を公開鍵として設定可能なIDベース暗号(参考非特許文献1)や、属性/条件式を秘密鍵/暗号文に設定し、柔軟な復号制御が可能な関数型暗号(参考非特許文献2)など、利便性の高い暗号方式が構築可能である。これらはどちらも安全性や利便性の観点で重要な暗号技術である。
(参考非特許文献1:D. Boneh, and M. Franklin, ”Identity-based Encryption from the Weil Pairing,” SIAM Journal on Computing, vol. 32, no. 3, pp. 586-615, 2003.)
(参考非特許文献2:T. Okamoto, and K. Takashima, ”Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption,” CRYPTO2010, LNCS 6223, pp.191-208, 2010.)
これらを実際のシステムとして実現する際には、楕円曲線上のマルチスカラー倍算が必要となることが多い。例えば、関数型暗号では、鍵生成や暗号化においてマルチスカラー倍算が支配的な計算コストとなる。従って、楕円曲線上のマルチスカラー倍算の効率化は重要な課題である。マルチスカラー倍算の処理における計算コストは、そのほとんどが楕円加算P+Q、楕円2倍算2Pであるため、楕円加算/楕円2倍算を使用する回数を減らすことが効率化する上で必要となる。
Elliptic curve cryptography can achieve higher security with a shorter key length than RSA cryptography. In pairing ciphers, an ID-based cipher that can set an arbitrary character string as a public key (Reference Non-Patent Document 1) and a private key / ciphertext as attributes / conditional expressions can be set by using a property called bilinearity. Therefore, it is possible to construct a highly convenient encryption method such as a functional encryption (Reference Non-Patent Document 2) that allows flexible decryption control. Both of these are important encryption technologies from the viewpoint of security and convenience.
(Reference Non-Patent Document 1: D. Boneh, and M. Franklin, “Identity-based Encryption from the Weil Pairing,” SIAM Journal on Computing, vol. 32, no. 3, pp. 586-615, 2003.)
(Reference Non-Patent Document 2: T. Okamoto, and K. Takashima, “Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption,” CRYPTO2010, LNCS 6223, pp.191-208, 2010.)
When these are realized as an actual system, multiscalar multiplication on an elliptic curve is often required. For example, in functional encryption, multiscalar multiplication is the dominant calculation cost in key generation and encryption. Therefore, efficient multiscalar multiplication on an elliptic curve is an important issue. Most of the calculation costs in multi-scalar multiplication are ellipse addition P + Q and ellipse doubling 2P, so it is necessary to reduce the number of times ellipse addition / elliptical doubling is used for efficiency. It becomes.
そこで本発明では、マルチスカラー倍算計算の際の楕円加算/楕円2倍算の使用回数を削減することができるマルチスカラー倍算演算装置を提供することを目的とする。 Accordingly, an object of the present invention is to provide a multi-scalar multiplication operation apparatus that can reduce the number of times of use of elliptical addition / elliptical doubling in multi-scalar multiplication calculation.
本発明のマルチスカラー倍算演算装置は、事前計算部と、表現変換部と、マルチスカラー倍算計算部を含む。 The multi-scalar multiplication operation device of the present invention includes a pre-calculation unit, an expression conversion unit, and a multi-scalar multiplication calculation unit.
素数p、正整数e、q=pe、有限体 Prime number p, positive integer e, q = p e , finite field
、楕円曲線E上のFq-有理点群をE(Fq)とする。 Let F q -rational points on the elliptic curve E be E (F q ).
事前計算部は、整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して、点P0+Σi=1 m-1eiPiを計算し、計算した2m-1個の点を、事前計算テーブルに保存する。
The pre-calculation unit sets an integer m ≧ 2, and multiscalar multiplication for m points P 0 , ..., P m-1 and
表現変換部は、正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する。 The representation conversion unit takes a positive integer and an odd number k 0 , and an integer k 1 , ..., k m-1 greater than or equal to 0 , and each digit of k ' 0 , ..., k' m-1 is {0 , ± 1}, and the j-th digit of all k ' i is 0, or the j-th digit of k' 0 is {± 1} and k ' i other than k' 0 is the j-th digit of k ' i The expression is converted to k ′ 0 ,..., K ′ m−1 which satisfies the condition that 0 or the same value as the j-th digit of k ′ 0 .
マルチスカラー倍算計算部は、事前計算テーブルと表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍算Σi=0 m-1kiPiと同値の点を計算する。 The multi-scalar multiplication calculation unit uses k ' 0 , ..., k' m-1 converted to the pre-calculation table and multi-scalar multiplication Σ i = 0 m-1 k i P i . Calculate points.
本発明のマルチスカラー倍算演算装置によれば、マルチスカラー倍算計算の際の楕円加算/楕円2倍算の使用回数を削減することができる。 According to the multiscalar multiplication arithmetic device of the present invention, the number of times of use of elliptical addition / elliptical doubling in multiscalar multiplication calculation can be reduced.
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。 Hereinafter, embodiments of the present invention will be described in detail. In addition, the same number is attached | subjected to the structure part which has the same function, and duplication description is abbreviate | omitted.
<準備>
実施例1の説明に先立ち、本明細書で用いる記号や、従来手法の説明などを行う。素数p、拡大次数e(正整数)に対してq=peとし、有限体
<Preparation>
Prior to the description of the first embodiment, the symbols used in this specification and the conventional method will be described. For prime number p and extended degree e (positive integer), q = p e, and finite field
とする。また楕円曲線Eに対して楕円曲線上のFq-有理点の集合(有理点群)を
E(Fq)={(x,y)∈E|x,y∈Fq}∪O
と定義する。このときE(Fq)は加法群をなす。E(Fq)では、入力P,Q∈E(Fq)に対して、楕円加算R=P+Q(ただし、P≠±Q)と楕円2倍算R=2Pの計算ができる。またOは、任意の点P∈E(Fq)に対してP+O=Pとなる点であり、無限遠点と呼ばれる。以下、楕円加算およびその演算量(計算コスト)をECADD、楕円2倍算およびその演算量(計算コスト)をECDBLと表す。
And In addition, for the elliptic curve E, the set of F q -rational points (rational points) on the elliptic curve
E (F q ) = {(x, y) ∈E | x, y∈F q } ∪O
It is defined as At this time, E (F q ) forms an additive group. In E (F q ), the ellipse addition R = P + Q (where P ≠ ± Q) and the ellipse doubling R = 2P can be calculated for the input P, Q∈E (F q ). O is a point where P + O = P with respect to an arbitrary point P∈E (F q ), and is called a point at infinity. Hereinafter, ellipse addition and its operation amount (calculation cost) are expressed as ECADD, and ellipse doubling and its operation amount (calculation cost) are expressed as ECDBL.
<マルチスカラー倍算>
楕円曲線上のスカラー倍算とは、楕円曲線上の点P∈E(Fq)と0以上の整数kに対して、
<Multiscalar multiplication>
Scalar multiplication on an elliptic curve is a point P∈E (F q ) on an elliptic curve and an integer k greater than or equal to 0.
を求める計算である。スカラー倍算の拡張として、m個の楕円曲線上の点Pi(i=0,...,m-1),0以上の整数kiを入力としたとき、Σi=0 m-1kiPi=k0P0+…+km-1Pm-1を計算するのがマルチスカラー倍算である。 This is a calculation for obtaining. As an extension of scalar multiplication, Σ i = 0 m-1 when m points P i (i = 0, ..., m-1) and an integer k i greater than 0 are input Multi-scalar multiplication calculates k i P i = k 0 P 0 +... + k m−1 P m−1 .
なお、スカラー値kiは、nビットの2進数
ki=(ki (n-1),…,ki (0))=Σj=0 n-1ki (j)2j
(ただしki (j)∈{0,1}、j=0,...,n-1)
で表現されるものとする。
The scalar value k i is an n-bit binary number.
k i = (k i (n-1) ,…, k i (0) ) = Σ j = 0 n-1 k i (j) 2 j
(Where k i (j) ∈ {0,1}, j = 0, ..., n-1)
It shall be expressed as
最も基本的なマルチスカラー倍算の計算としてBinary法を用いた方式がある。図3に計算アルゴリズム(Algorithm1)を示す。本アルゴリズム(Algorithm1)は、 There is a method using the binary method as the most basic multi-scalar multiplication. FIG. 3 shows a calculation algorithm (Algorithm1). This algorithm (Algorithm1)
すなわち、前述のm個の楕円曲線上の点Pi(i=0,...,m-1)、およびnビットの2進数であるスカラー値kiを入力とする。本アルゴリズム(Algorithm1)は、 That is, the point P i (i = 0,..., M−1) on the m elliptic curves and the scalar value k i which is an n-bit binary number are input. This algorithm (Algorithm1)
すなわち、マルチスカラー倍算の計算結果Rを出力するアルゴリズムである。まず、無限遠点Oを用いて That is, it is an algorithm that outputs a calculation result R of multiscalar multiplication. First, using infinity point O
すなわち、Rを無限遠点で初期化する。なお、アルゴリズム内で記号「←」は代入を意味するものとする。次に、 That is, R is initialized at the infinity point. In the algorithm, the symbol “←” means substitution. next,
すなわち、j=n-1からj=0まで、jの値をデクリメントしてアルゴリズムの3行目から9行目までを繰り返し演算する。次に、 That is, the value of j is decremented from j = n−1 to j = 0, and the calculation is repeated from the third line to the ninth line of the algorithm. next,
すなわち、Rに2Rを代入する。次に、 That is, 2R is substituted for R. next,
すなわち、i=0からi=m-1まで、iの値をインクリメントしてアルゴリズムの5行目から8行目までを繰り返し演算する。 That is, the value of i is incremented from i = 0 to i = m−1, and the calculation is repeated from the fifth line to the eighth line of the algorithm.
すなわち、ki (j)=1となるとき、楕円曲線上の点Piを用いて、 That is, when k i (j) = 1, using the point P i on the elliptic curve,
すなわち、RにR+Piを代入する。アルゴリズムの7〜9行目は、繰り返し演算の終了を示す。そしてアルゴリズムの10行目 That is, R + P i is substituted for R. The seventh to ninth lines of the algorithm indicate the end of the repetitive calculation. And the 10th line of the algorithm
すなわち、マルチスカラー倍算の計算結果Rが出力される。スカラー値の各ビットで{0,1}の取る確率が一様である場合、Algorithm1の計算コストは、mn/2ECADD+nECDBL回となる。
That is, the calculation result R of the multiscalar multiplication is output. When the probability of {0, 1} taken by each bit of the scalar value is uniform,
[Lim-Lee方式(非特許文献2)]
以下、非特許文献2記載のLim-Lee方式の詳細を説明する。
[Lim-Lee method (Non-patent Document 2)]
Details of the Lim-Lee method described in
<事前計算>
m個のビットの組(e0,...,em-1)(ei∈{0,1})の全ての組合せに対して、点Σi=0 m-1eiPiを計算する。
<Pre-calculation>
For all combinations of m bit pairs (e 0 , ..., e m-1 ) (e i ∈ {0,1}), the point Σ i = 0 m-1 e i P i calculate.
<表現変換>
この方式では、各kiに対して、表現変換は行わない。
<Expression conversion>
In this method, expression conversion is not performed for each k i .
[HPB05方式(非特許文献3)]
次に、非特許文献3記載のHPB05方式の詳細を説明する。
[HPB05 method (Non-patent Document 3)]
Next, details of the HPB05 system described in
<事前計算>
m-1個のビットの組(e1,...,em-1)(ei∈{0,1})の全ての組合せに対して、点P0+Σi=1 m-1eiPiを計算する。
<Pre-calculation>
For all combinations of m-1 bit pairs (e 1 , ..., e m-1 ) (e i ∈ {0,1}), the point P 0 + Σ i = 1 m-1 e i P i is calculated.
<表現変換>
正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0は全ての桁が{±1}で表現され、他のk'i(すなわちi≠0)は、k'iのj桁目であるk'i (j)が{0,k'0 (j)}となるようなk'0,...,k'm-1を出力する。kiの上位桁が0の隣り合う2桁、例えばj桁目、j-1桁目であるki (j),ki (j-1)は、(ki (j),ki (j-1))=(0,1)→(1,-1)と表現することができることを利用して、上述の表現変換を行うことができる。結果として、k'0,...,k'm-1の任意のj桁目に対して、i=1,...,m-1で、
<Expression conversion>
With positive integers and odd numbers k 0 and integers k 1 , ..., k m-1 greater than or equal to 0 as input, k ' 0 is represented by {± 1} and other k' i (ie i ≠ 0) is, k 'i is the j-th digit k' i (j) is {0, k '0 (j )} and made such k' 0, ..., k ' m-1 output To do. 2 digits significant digit of k i is adjacent 0, for example, j digit, a j-1 digit k i (j), k i (j-1) is, (k i (j), k i ( j-1) ) = (0,1) → (1, -1) can be used for the above expression conversion. As a result, for any j-th digit of k ' 0 , ..., k' m-1 , i = 1, ..., m-1
となり、全てのj桁目に対して(k'0 (j),k'i (j))は(1,0),(1,1),(-1,0),(-1,-1)のいずれかの値を取る。 (K ' 0 (j) , k' i (j) ) is (1,0), (1,1), (-1,0), (-1,- Take one of the values in 1).
以下、図1、図2を参照して実施例1のマルチスカラー倍算演算装置について説明する。図1は、本実施例のマルチスカラー倍算演算装置1の構成を示すブロック図である。図2は、本実施例のマルチスカラー倍算演算装置1の動作を示すフローチャートである。図1に示すように、本実施例のマルチスカラー倍算演算装置1は、事前計算部11と、事前計算結果保存部12と、表現変換部13と、マルチスカラー倍算計算部14を含む構成である。
Hereinafter, the multi-scalar multiplication arithmetic apparatus according to the first embodiment will be described with reference to FIGS. 1 and 2. FIG. 1 is a block diagram illustrating a configuration of a multiscalar multiplication
<事前計算部11、ステップS11>
事前計算部11は、基準となる点P0と、i=1,...,m-1(m≧2を充たす整数とする)のPiに対して、事前計算を行い、計算された2m-1個の点を事前計算結果保存部12の事前計算テーブルへ保存する。このとき、{0,1}をとるm-1個の値の組(e1,...,em-1)とする。全ての(e1,...,em-1)の組合せは2m-1個となる。P0,...,Pm-1に対して、tのマッピング方法の一例として、次のような事前計算テーブルTbl[t]を構成する。ここで、0≦t<2m-1とする。
Tbl[Σj=1 m-1ej2j-1]=P0+Σj=1 m-1ejPj
ステップS11は、HPB05方式における事前計算と同様である。
<
Tbl [Σ j = 1 m-1 e j 2 j-1 ] = P 0 + Σ j = 1 m-1 e j P j
Step S11 is the same as the prior calculation in the HPB05 system.
<表現変換部13、ステップS13>
以下、本実施例で用いられるスカラー値の変換方法について説明する。正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、本実施例では、k'0,...,k'm-1の各桁が{0,±1}で表現され、以下(1),(2)のどちらかの条件を満たす。
<
A scalar value conversion method used in this embodiment will be described below. With positive integers and odd numbers k 0 and integers k 1 , ..., k m-1 greater than or equal to 0 as input, in this embodiment, each digit of k ' 0 , ..., k' m-1 is {0 , ± 1} and satisfies either of the following conditions (1) and (2).
(1)全てのi=0,...,m-1に対して、k'i (j)=0である。 (1) For all i = 0, ..., m−1, k ′ i (j) = 0.
(2)k'0のj桁目が{±1}かつk'0以外のk'i(すなわちi≠0)のj桁目が0またはk'0のj桁目と同値である。 (2) The j-th digit of k ′ 0 is {± 1} and the j-th digit of k ′ i (ie, i ≠ 0) other than k ′ 0 is 0 or the same as the j-th digit of k ′ 0 .
入力である正整数かつ奇数k0、0以上の整数k1,...,km-1に対して、上記の条件を満たす表現へ変換する際には、0桁目から変換していき、(k'0,...,k'm-1)のあるj桁目で、 When converting input positive integers and odd numbers k 0 and integers k 1 , ..., km -1 that are greater than or equal to 0 to an expression that satisfies the above conditions, conversion starts from the 0th digit. , (K ' 0 , ..., k' m-1 )
という表現に変換すれば、整数s≧0に対してj桁目からj+s+1桁目までの間にs個のゼロ桁を作りつつ、j+s+1桁目以降の変換において発明手法の表現を満たさない桁が現れない変換を継続する事ができる。あるj桁目において上述の変換ができた場合、次はj+s+1桁目をj桁目とみて、繰り返し上述の変換を行う。 In the conversion after the j + s + 1 digit while creating s zero digits between the jth digit and the j + s + 1 digit for the integer s ≧ 0 It is possible to continue conversion in which digits that do not satisfy the expression of the technique do not appear. If the above-described conversion can be performed at a certain j-th digit, the above-described conversion is repeated by regarding the j + s + 1-th digit as the j-th digit.
表現変換部13の動作(ステップS13)について、図4に示すアルゴリズムの例(Algorithm2)、図6に示すアルゴリズムの例(Algorithm4,5,6)を参照して詳細に説明する。図4に示すように、表現変換部13への入力は、
The operation (step S13) of the
すなわち、前述した正整数かつ奇数k0、0以上の整数k1,...,km-1を入力とする。表現変換部13は、
That is, a positive integer and odd number k 0 described above, an integer of 0 or more k 1, ..., and inputs the k m-1. The
すなわち、表現変換されたスカラー値であるk'0,...,k'm-1を出力する。まず、表現変換部13は、
That is, k ′ 0 ,..., K ′ m−1 which are scalar values subjected to representation conversion are output. First, the
すなわち、iの初期値を0とする。次に表現変換部13は、
That is, the initial value of i is set to 0. Next, the
すなわち、i<nを継続条件としてこのアルゴリズムの3行目から28行目を実行する。次に表現変換部13は、k0のi+1桁目を用いて、
That is, the third to 28th lines of this algorithm are executed with i <n as a continuation condition. Next, the
とする。次に表現変換部13は、図6に示すcountアルゴリズム(Algorithm5)を用いて
And Next, the
とする。図6に示すように、count(k,i,b)は、まずs←0とし、i<nを継続条件として、kのi桁目がbでない場合、すなわちk(i)≠bとなる場合にはsを出力する処理を実行し、i,sをインクリメントしてk(i)≠bとなる場合にはsを出力する処理を繰り返すアルゴリズムである。次に表現変換部13は、図6に示すcheckアルゴリズム(Algorithm6)を用いて
And As shown in FIG. 6, count (k, i, b) is first set to s ← 0, i <n is a continuation condition, and the i-th digit of k is not b, that is, k (i) ≠ b. case executes processing for outputting the s, i, if the increments s k (i) ≠ b is an algorithm to repeat the process of outputting the s. Next, the
すなわち、check(kj,i,s,b)の結果がj=1,...,m-1の全てにおいて真であるならば、このアルゴリズムの6行目から15行目を実行し、そうでなければこのアルゴリズムの17行目から27行目を実行する。図6に示すようにcheck(k,i,s,b)は、s=0ならば偽(false)を出力し、j=1からsまで、k(i+j)≠k(i)bならば偽(false)を出力する処理を繰り返し実行し、それ以外の場合に真(true)を出力するアルゴリズムである。Algorithm2の5行目のcheckの結果が真である場合に、表現変換部13は、
That is, if the result of check (k j , i, s, b) is true in all of j = 1,..., M−1, execute the 6th to 15th lines of this algorithm, Otherwise, the 17th to 27th lines of this algorithm are executed. As shown in FIG. 6, check (k, i, s, b) outputs false (false) if s = 0, and k (i + j) ≠ k (i) b from j = 1 to s. Then, it is an algorithm that repeatedly executes a process of outputting false and outputs true in other cases. When the result of check on the fifth line of Algorithm2 is true, the
すなわち、k0のi桁目に(-1)b、k0のi+s+1桁目に1、k0のi+t桁目(ただし、t=1,...,s)に0を、代入する。次に表現変換部13は、
In other words, the i-th digit of k 0 (-1) b, i + t th digit of the i + s + 1 digit to 1, k 0 of k 0 (where, t = 1, ..., s ) in
すなわち、j=1からj=m-1まで、jの値をインクリメントしながらアルゴリズムの9行目から14行目までを繰り返し演算する。次に表現変換部13は、
That is, from j = 1 to j = m−1, the algorithm is repeatedly operated from the 9th line to the 14th line while incrementing the value of j. Next, the
すなわち、kjのi桁目に(-1)b・kj (i)、kjのi+t桁目(ただし、t=1,...,s)に0を、代入する。次に、表現変換部13は、
In other words, the i-th digit of k j (-1) b · k j (i), i + t th digit of k j (where, t = 1, ..., s ) to 0, and substitutes. Next, the
すなわち、kjのi行目が-1である場合に、kjにcarry_addアルゴリズム(Algorithm4)の実行結果を代入する。図6に示すようにcarry_add(k,i)は、kのi行目が0でないこと、すなわちk(i)≠0を継続条件として、kのi行目に0を代入(k(i)←0)して、iをインクリメントする処理を繰り返し実行し、それ以外のkのi行目に対して1を代入(k(i)←1)し、kを出力するアルゴリズムである。Algorithm2の13行目は、11行目から始まる分岐処理の終了を示す。同14行目は、8行目から始まる繰り返し処理の終了を示す。15行目は、checkが真である場合に実行される処理の最後に、i←i+s+1とすることを示す。 That is, when the i-th row of k j is −1, the execution result of the carry_add algorithm (Algorithm 4) is substituted for k j . As shown in FIG. 6, carry_add (k, i) assigns 0 to the i-th row of k, assuming that the i-th row of k is not 0, that is, k (i) ≠ 0 as a continuation condition (k (i) This is an algorithm that repeatedly executes the process of incrementing i, substitutes 1 for the other i-th row of k ( k (i) ← 1), and outputs k. The 13th line of Algorithm2 indicates the end of the branch process starting from the 11th line. The 14th line indicates the end of the repetition process starting from the 8th line. The 15th line indicates that i ← i + s + 1 is set at the end of the process executed when check is true.
Algorithm2の16行目以降は、check(kj,i,s,b)の結果がj=1,...,m-1のいずれかにおいて真でない場合の処理である。具体的には表現変換部13は、check(kj,i,s,b)の結果がj=1,...,m-1において真でない場合、
The 16th and subsequent lines of Algorithm2 are processes when the result of check (k j , i, s, b) is not true in any of j = 1,. Specifically, the
すなわち、k0 (i+1)=0である場合にアルゴリズムの18行目から25行目までを実行する。表現変換部13は、
That is, when k 0 (i + 1) = 0, the 18th to 25th lines of the algorithm are executed. The
すなわち、k0のi桁目に-1を代入し、k0のi+1桁目に1を代入する。次に表現変換部13は、
That is, −1 is assigned to the i digit of k 0 and 1 is assigned to the i + 1 digit of k 0 . Next, the
すなわち、j=1からj=m-1まで、jの値をインクリメントしながらアルゴリズムの20行目から24行目までを繰り返し演算する。次に表現変換部13は、
That is, from j = 1 to j = m−1, the algorithm is repeatedly operated from the 20th line to the 24th line while incrementing the value of j. Next, the
すなわち、kjのi桁目が0でない場合に、kjのi桁目に-1を代入し、kjにcarry_add(kj,i+1)の実行結果を代入する。23行目は、20行目から始まる分岐処理の終了を、24行目は、19行目から始まる繰り返し処理の終了を、25行目は、17行目から始まる繰り返し処理の終了を示す。26行目は、checkが真でない場合に実行される処理の最後に、表現変換部13がiをインクリメントすることを示す。最後に、表現変換部13は
That is, when i-th digit of k j is not 0, by substituting -1 i-th digit of k j, k j to carry_add (k j, i + 1 ) is substituted for the execution result. The 23rd line indicates the end of the branch process starting from the 20th line, the 24th line indicates the end of the iterative process starting from the 19th line, and the 25th line indicates the end of the iterative process starting from the 17th line. The 26th line indicates that the
すなわち、表現変換結果である(k'0,...,k'm-1)を出力する(上記アルゴリズムでは、k0,...,km-1に上書きする形で表現変換結果k'0,...,k'm-1を得る)。
<マルチスカラー倍算計算部14、ステップS14>
マルチスカラー倍算計算部14は、上記表現変換されたk'0,...,k'm-1と、事前計算テーブルTbl[t]を用いて、マルチスカラー倍算Σi=0 m-1kiPiと同値の点を、例えば図5に示すAlgorithm3によって計算する。マルチスカラー倍算計算部14は、
That is, the expression conversion result (k ′ 0 , ..., k ′ m−1 ) is output (in the above algorithm, the expression conversion result k is overwritten on k 0 , ..., k m−1). ' 0 , ..., k' get m-1 ).
<Multiscalar
The multi-scalar
すなわち、事前計算テーブルTbl[t]と、表現変換結果である(k'0,...,k'm-1)を入力とする。マルチスカラー倍算計算部14は、
That is, the pre-calculation table Tbl [t] and the expression conversion result (k ′ 0 ,..., K ′ m−1 ) are input. The multi-scalar
すなわち、マルチスカラー倍算の計算結果Rを出力する。マルチスカラー倍算計算部14は、無限遠点Oを用いて
That is, the calculation result R of multiscalar multiplication is output. The multiscalar
とする。次にマルチスカラー倍算計算部14は、
And Next, the multi-scalar
すなわち、i=n+1からi=0まで、iの値をデクリメントしてアルゴリズムの3行目から10行目までを繰り返し演算する。次にマルチスカラー倍算計算部14は、
That is, from i = n + 1 to i = 0, the value of i is decremented and the calculation is repeated from the third line to the tenth line of the algorithm. Next, the multi-scalar
とする。次にマルチスカラー倍算計算部14は、
And Next, the multi-scalar
すなわち、cにk'0のi桁目を代入し、tにΣd=1 m-1k'd (i)2d-1を代入する。次にマルチスカラー倍算計算部14は、
That is, the i-th digit of k ′ 0 is substituted for c, and Σ d = 1 m−1 k ′ d (i) 2 d−1 is substituted for t. Next, the multi-scalar
すなわち、c=1である場合に、RにR+Tbl[t]を代入する。次にマルチスカラー倍算計算部14は、
That is, when c = 1, R + Tbl [t] is substituted for R. Next, the multi-scalar
すなわち、c=-1である場合に、RにR-Tbl[-t]を代入する。9行目は、5行目から始まる繰り返し処理の終了を示す。10行目は、2行目から始まる分岐処理の終了を示す。マルチスカラー倍算計算部14は、
That is, R-Tbl [-t] is substituted for R when c = -1. The ninth line indicates the end of the iterative process starting from the fifth line. The tenth line indicates the end of the branch process starting from the second line. The multi-scalar
すなわち、マルチスカラー倍算の計算結果Rを出力する。 That is, the calculation result R of multiscalar multiplication is output.
<変形例1>
上述の実施例1においては、マルチスカラー倍算演算装置1に事前計算部11を含む構成としたが、これに限らず、マルチスカラー倍算演算装置から事前計算部11を省略することができる。この場合外部装置などに事前計算部11にあたる構成が存在するものとする。この場合外部装置が予め事前計算を実行しておき、事前計算の結果は、事前計算結果保存部12が事前計算テーブルとして予め保存しておくものとする。この場合、予め計算された2m-1個の点は固定点である。なお、実施例1においては、都度事前計算部が計算を実行するため、計算される点は可変点である。
<
In the above-described first embodiment, the multi-scalar
<実施例1のマルチスカラー倍算演算装置の効果>
本実施例のマルチスカラー倍算演算装置によれば、全てのkiに対するj桁目が0であるゼロ桁が、Lim-Lee方式と同程度の確率で出現するような変換手法を実現し、Lim-Lee方式と同程度の計算コストで、かつ事前計算テーブルのサイズを半分にすることを実現した。また変形例1で述べたように、入力される点Piがシステムとして固定である場合は、事前計算部12における計算コストがゼロであるため効果が得られる。
<Effects of Multiscalar Multiplication Operation Device of Example 1>
According to the multi-scalar multiplication arithmetic device of the present embodiment, a conversion method is realized such that zero digits where the j-th digit is 0 for all k i appear with the same probability as the Lim-Lee method, The calculation cost is about the same as the Lim-Lee method, and the pre-calculation table size is halved. In addition, as described in the first modification, when the input point P i is fixed as a system, the calculation cost in the
Lim-Lee方式における固定点スカラー倍算では、事前計算テーブルのサイズが2m-1となり、計算コストはn(1-1/2m)ECADD+nECDBLとなる。またHPB05方式では、基準としたk'0では全ての桁が必ず非ゼロであることから楕円加算を削減することが出来ないため、計算コストは(n+1)ECADD+(n+1)ECDBLとなる。また事前計算テーブルのサイズは2m-1となる。本実施例では、新たにkiの表現を変換する手法および事前計算テーブルの作成方法を提案した。これにより、事前計算テーブルは2m-1となり、計算コストはn(1-1/2m)ECADD+(n+1)ECDBLとすることが出来た。計算コストの面では、Lim-Lee方式と同程度であり、HPB05方式からn/2m回の楕円加算を削減できた。また事前計算テーブルのサイズの面では、Lim-Lee方式から約半分、HPB05方式と同様となる。つまり本実施例では、Lim-Lee方式とHPB05方式の両方の良い部分を満たす事前計算方式と表現変換方式を実現することが出来た。 In the fixed point scalar multiplication in the Lim-Lee method, the size of the pre-calculation table is 2 m−1 and the calculation cost is n (1-1 / 2 m ) ECADD + nECDBL. In HPB05 system, since all the digits are always non-zero at the reference k ' 0 , ellipse addition cannot be reduced, so the calculation cost is (n + 1) ECADD + (n + 1) ECDBL Become. The size of the pre-calculation table is 2 m-1 . In this embodiment, a new method for converting the expression of k i and a method for creating a pre-calculation table have been proposed. As a result, the pre-calculation table becomes 2 m−1 and the calculation cost can be n (1-1 / 2 m ) ECADD + (n + 1) ECDBL. In terms of calculation cost, it is almost the same as the Lim-Lee method, and n / 2 m ellipse addition was reduced from the HPB05 method. The size of the pre-calculation table is about half that of the Lim-Lee method, which is the same as the HPB05 method. In other words, in this embodiment, the pre-calculation method and the expression conversion method satisfying the good parts of both the Lim-Lee method and the HPB05 method can be realized.
<実施例1の要点>
楕円曲線上のマルチスカラー倍算では、楕円加算を削減するために、全てのi=0,...,m-1でki (j)=0となる確率が大きい場合に楕円加算を省略することができる。本実施例のマルチスカラー倍算演算装置によれば、事前計算テーブルをHPB05と同じにしながら、新たな表現方法を用いてゼロ濃度を増加させることが出来たため、結果として、マルチスカラー倍算を小さなテーブルサイズでより高速に計算することができるようになった。
<The main points of Example 1>
In multi-scalar multiplication on elliptic curves, ellipse addition is omitted when there is a high probability that k i (j) = 0 at all i = 0, ..., m-1 to reduce ellipse addition. can do. According to the multi-scalar multiplication operation apparatus of the present embodiment, the zero density can be increased by using a new expression method while making the pre-calculation table the same as HPB05. As a result, the multi-scalar multiplication is reduced. The table size can be calculated faster.
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
<Supplementary note>
The apparatus of the present invention includes, for example, a single hardware entity as an input unit to which a keyboard or the like can be connected, an output unit to which a liquid crystal display or the like can be connected, and a communication device (for example, a communication cable) capable of communicating outside the hardware entity. Can be connected to a communication unit, a CPU (Central Processing Unit, may include a cache memory or a register), a RAM or ROM that is a memory, an external storage device that is a hard disk, and an input unit, an output unit, or a communication unit thereof , A CPU, a RAM, a ROM, and a bus connected so that data can be exchanged between the external storage devices. If necessary, the hardware entity may be provided with a device (drive) that can read and write a recording medium such as a CD-ROM. A physical entity having such hardware resources includes a general-purpose computer.
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。 The external storage device of the hardware entity stores a program necessary for realizing the above functions and data necessary for processing the program (not limited to the external storage device, for example, reading a program) It may be stored in a ROM that is a dedicated storage device). Data obtained by the processing of these programs is appropriately stored in a RAM or an external storage device.
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。 In the hardware entity, each program stored in an external storage device (or ROM or the like) and data necessary for processing each program are read into a memory as necessary, and are interpreted and executed by a CPU as appropriate. . As a result, the CPU realizes a predetermined function (respective component requirements expressed as the above-described unit, unit, etc.).
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。 The present invention is not limited to the above-described embodiment, and can be appropriately changed without departing from the spirit of the present invention. In addition, the processing described in the above embodiment may be executed not only in time series according to the order of description but also in parallel or individually as required by the processing capability of the apparatus that executes the processing. .
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。 As described above, when the processing functions in the hardware entity (the apparatus of the present invention) described in the above embodiments are realized by a computer, the processing contents of the functions that the hardware entity should have are described by a program. Then, by executing this program on a computer, the processing functions in the hardware entity are realized 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. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used. Specifically, for example, as a magnetic recording device, a hard disk device, a flexible disk, a magnetic tape or the like, and as an optical disk, a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only). Memory), CD-R (Recordable) / RW (ReWritable), etc., magneto-optical recording medium, MO (Magneto-Optical disc), etc., semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. 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)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。 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, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, 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, a hardware entity is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.
Claims (5)
整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して、点P0+Σi=1 m-1eiPiを計算し、前記計算した2m-1個の点を、事前計算テーブルに保存する事前計算部と、
正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する表現変換部と、
前記事前計算テーブルと前記表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍算Σi=0 m-1kiPiと同値の点を計算するマルチスカラー倍算計算部を含む
マルチスカラー倍算演算装置。 Prime number p, positive integer e, q = p e , finite field
Multiscalar multiplication Σ i = 0 for m points P 0 , ..., P m-1 and integers k 0 , ..., k m-1 greater than or equal to 0 When m-1 k i P i is calculated and a function that outputs a point on E (F q ) is output, a set of m-1 bits {0,1} (e 1 , ..., e m- 1 ) For all combinations of 1 ), a point P 0 + Σ i = 1 m−1 e i P i is calculated, and the calculated 2 m−1 points are stored in a pre-calculation table. When,
K ' 0 , ..., k' m-1 digits are {0, ± 1} with positive integers and odd numbers k 0 and integers k 1 , ..., k m-1 greater than or equal to 0 as input Is expressed, and the j-th digit of all k ' i is 0, or the j-th digit of k' 0 is {± 1} and the j-th digit of k ' i other than k' 0 is 0 or k ' 0 An expression conversion unit that converts the expression to k ' 0 , ..., k' m-1 that satisfies the condition of the same value as the j-th digit of
A multi-scalar multiplication Σ i = 0 m−1 k i P i using the pre-computed table and the expression-converted k ′ 0 ,..., K ′ m−1 Multi-scalar multiplication unit including a scalar multiplication unit.
整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して予め計算された2m-1個の点P0+Σi=1 m-1eiPiを、事前計算テーブルとして保存する事前計算結果保存部と、
正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する表現変換部と、
前記事前計算テーブルと前記表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍算Σi=0 m-1kiPiと同値の点を計算するマルチスカラー倍算計算部を含む
マルチスカラー倍算演算装置。 Prime number p, positive integer e, q = p e , finite field
Multiscalar multiplication Σ i = 0 for m points P 0 , ..., P m-1 and integers k 0 , ..., k m-1 greater than or equal to 0 When m-1 k i P i is calculated and a function that outputs a point on E (F q ) is output, a set of m-1 bits {0,1} (e 1 , ..., e m- A pre-computation result storage unit that stores 2 m-1 points P 0 + Σ i = 1 m-1 e i P i calculated in advance for all combinations of 1 ) as a pre-calculation table;
K ' 0 , ..., k' m-1 digits are {0, ± 1} with positive integers and odd numbers k 0 and integers k 1 , ..., k m-1 greater than or equal to 0 as input Is expressed, and the j-th digit of all k ' i is 0, or the j-th digit of k' 0 is {± 1} and the j-th digit of k ' i other than k' 0 is 0 or k ' 0 An expression conversion unit that converts the expression to k ' 0 , ..., k' m-1 that satisfies the condition of the same value as the j-th digit of
A multi-scalar multiplication Σ i = 0 m−1 k i P i using the pre-computed table and the expression-converted k ′ 0 ,..., K ′ m−1 Multi-scalar multiplication unit including a scalar multiplication unit.
整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して、点P0+Σi=1 m-1eiPiを計算し、前記計算した2m-1個の点を、事前計算テーブルに保存する事前計算ステップと、
正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する表現変換ステップと、
前記事前計算テーブルと前記表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍算Σi=0 m-1kiPiと同値の点を計算するマルチスカラー倍算計算ステップを含む
マルチスカラー倍算演算方法。 Prime number p, positive integer e, q = p e , finite field
Multiscalar multiplication Σ i = 0 for m points P 0 , ..., P m-1 and integers k 0 , ..., k m-1 greater than or equal to 0 When m-1 k i P i is calculated and a function that outputs a point on E (F q ) is output, a set of m-1 bits {0,1} (e 1 , ..., e m- 1 ) For all combinations of 1 ), a point P 0 + Σ i = 1 m−1 e i P i is calculated, and the calculated 2 m−1 points are stored in a pre-calculation table. When,
K ' 0 , ..., k' m-1 digits are {0, ± 1} with positive integers and odd numbers k 0 and integers k 1 , ..., k m-1 greater than or equal to 0 as input Is expressed, and the j-th digit of all k ' i is 0, or the j-th digit of k' 0 is {± 1} and the j-th digit of k ' i other than k' 0 is 0 or k ' 0 An expression conversion step for converting the expression to k ' 0 , ..., k' m-1 that satisfies the condition of being equivalent to the j-th digit of
A multi-scalar multiplication Σ i = 0 m−1 k i P i using the pre-computed table and the expression-converted k ′ 0 ,..., K ′ m−1 A multi-scalar multiplication method including a scalar multiplication calculation step.
整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して予め計算された2m-1個の点P0+Σi=1 m-1eiPiを、事前計算テーブルとして保存する事前計算結果保存ステップと、
正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する表現変換ステップと、
前記事前計算テーブルと前記表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍算Σi=0 m-1kiPiと同値の点を計算するマルチスカラー倍算計算ステップを含む
マルチスカラー倍算演算方法。 Prime number p, positive integer e, q = p e , finite field
Multiscalar multiplication Σ i = 0 for m points P 0 , ..., P m-1 and integers k 0 , ..., k m-1 greater than or equal to 0 When m-1 k i P i is calculated and a function that outputs a point on E (F q ) is output, a set of m-1 bits {0,1} (e 1 , ..., e m- A pre-calculation result storing step for storing 2 m-1 points P 0 + Σ i = 1 m-1 e i P i calculated in advance for all combinations of 1 ) as a pre-calculation table;
K ' 0 , ..., k' m-1 digits are {0, ± 1} with positive integers and odd numbers k 0 and integers k 1 , ..., k m-1 greater than or equal to 0 as input Is expressed, and the j-th digit of all k ' i is 0, or the j-th digit of k' 0 is {± 1} and the j-th digit of k ' i other than k' 0 is 0 or k ' 0 An expression conversion step for converting the expression to k ' 0 , ..., k' m-1 that satisfies the condition of being equivalent to the j-th digit of
A multi-scalar multiplication Σ i = 0 m−1 k i P i using the pre-computed table and the expression-converted k ′ 0 ,..., K ′ m−1 A multi-scalar multiplication method including a scalar multiplication calculation step.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015007719A JP6293681B2 (en) | 2015-01-19 | 2015-01-19 | Multi-scalar multiplication operation device, multi-scalar multiplication operation method, program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015007719A JP6293681B2 (en) | 2015-01-19 | 2015-01-19 | Multi-scalar multiplication operation device, multi-scalar multiplication operation method, program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016133601A true JP2016133601A (en) | 2016-07-25 |
JP6293681B2 JP6293681B2 (en) | 2018-03-14 |
Family
ID=56426129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015007719A Active JP6293681B2 (en) | 2015-01-19 | 2015-01-19 | Multi-scalar multiplication operation device, multi-scalar multiplication operation method, program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6293681B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999627A (en) * | 1995-01-07 | 1999-12-07 | Samsung Electronics Co., Ltd. | Method for exponentiation in a public-key cryptosystem |
JP2006309201A (en) * | 2005-03-29 | 2006-11-09 | Hitachi Ltd | Multiple scalar multiplication device, signature verification device, and program for elliptic curve cryptography. |
JP2009500676A (en) * | 2005-07-01 | 2009-01-08 | マイクロソフト コーポレーション | Elliptic curve point multiplication |
-
2015
- 2015-01-19 JP JP2015007719A patent/JP6293681B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999627A (en) * | 1995-01-07 | 1999-12-07 | Samsung Electronics Co., Ltd. | Method for exponentiation in a public-key cryptosystem |
JP2006309201A (en) * | 2005-03-29 | 2006-11-09 | Hitachi Ltd | Multiple scalar multiplication device, signature verification device, and program for elliptic curve cryptography. |
JP2009500676A (en) * | 2005-07-01 | 2009-01-08 | マイクロソフト コーポレーション | Elliptic curve point multiplication |
Also Published As
Publication number | Publication date |
---|---|
JP6293681B2 (en) | 2018-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8111826B2 (en) | Apparatus for generating elliptic curve cryptographic parameter, apparatus for processing elliptic curve cryptograph, program for generating elliptic curve cryptographic parameter, and program for processing elliptic cyptograph | |
Fan et al. | Attacking OpenSSL implementation of ECDSA with a few signatures | |
Xiong et al. | TinyPairing: A fast and lightweight pairing-based cryptographic library for wireless sensor networks | |
US7904498B2 (en) | Modular multiplication processing apparatus | |
JP2023063430A (en) | Encryption system, key generation apparatus, encryption apparatus, decryption apparatus, method, and program | |
Mounica et al. | Implementation of 5-Qubit approach-based Shor's Algorithm in IBM Qiskit | |
KR20210067961A (en) | Device and method for operation of encrypted data using fully homomorphic encryption | |
US8014520B2 (en) | Exponentiation ladder for cryptography | |
CN108418687B (en) | Rapid modular reduction method and medium suitable for SM2 algorithm | |
JP2007187908A (en) | Modular power multiplication apparatus and modular power multiplication method resistant to side channel attacks | |
JP4423900B2 (en) | Scalar multiplication calculation method, apparatus and program for elliptic curve cryptography | |
JP4616169B2 (en) | Apparatus, method and program for calculating conversion parameter in Montgomery modular multiplication | |
JP6293681B2 (en) | Multi-scalar multiplication operation device, multi-scalar multiplication operation method, program | |
KR101548174B1 (en) | Method for calculating negative inverse of modulus | |
JP4690819B2 (en) | Scalar multiplication calculation method and scalar multiplication calculation apparatus in elliptic curve cryptography | |
Anagreh et al. | Parallel method for computing elliptic curve scalar multiplication based on MOF. | |
Xiong et al. | TinyPairing: computing tate pairing on sensor nodes with higher speed and less memory | |
Realpe-Muñoz et al. | High-performance elliptic curve cryptoprocessors over GF (2 m) on Koblitz curves | |
Razali et al. | Improved point 5P formula for twisted edwards curve in projective coordinate over prime field | |
JP4692022B2 (en) | Scalar multiplication apparatus and program for elliptic curve cryptography | |
Du et al. | Towards efficient implementation of lattice-based public-key encryption on modern CPUs | |
Noma et al. | Iterative sliding window method for shorter number of operations in modular exponentiation and scalar multiplication | |
Kwon et al. | An efficient implementation of pairing-based cryptography on MSP430 processor | |
Sharma et al. | Mathematical Insights into Cryptographic Algorithms: Recent Analysis and Future Directions | |
JP6777569B2 (en) | Pairing arithmetic unit, pairing arithmetic method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170302 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180119 |
|
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: 20180206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180214 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6293681 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |