[go: up one dir, main page]

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 PDF

Info

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
Application number
JP2015007719A
Other languages
Japanese (ja)
Other versions
JP6293681B2 (en
Inventor
祐人 川原
Yuto Kawahara
祐人 川原
鉄太郎 小林
Tetsutaro Kobayashi
鉄太郎 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015007719A priority Critical patent/JP6293681B2/en
Publication of JP2016133601A publication Critical patent/JP2016133601A/en
Application granted granted Critical
Publication of JP6293681B2 publication Critical patent/JP6293681B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a multi-scalar multiplication computation device capable of reducing the number of times of using elliptic addition/elliptic doubling in multi-scalar multiplication calculation.SOLUTION: The multi-scalar multiplication computation device comprises: a prior calculation unit which calculates a point P+ΣePfor all combinations of sets (e, ..., e) of m-1 bits {0,1} and stores the calculated 2points in a prior calculation table; an expression conversion unit which, with a positive integer, an odd number k, and an integer k, ..., kof 0 or bigger as input, performs expression conversion to obtain k', ..., k'in which each digit of k', ..., k'is expressed by {0, ±1} and satisfying conditions that, for all k', j digit is 0, or j digit of k'is {±1} and j digit of k'except k'is 0 or the same value with j digit of k'; and a multi-scalar multiplication calculation unit which calculates a point having the same value with multi-scalar multiplication ΣkPusing the prior calculation table and the expression-converted k', ..., k'.SELECTED DRAWING: Figure 1

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 Document 1, for example. Non-Patent Document 2 proposes a method for efficiently calculating multiscalar multiplication by pre-calculation and multiscalar multiplication without using expression conversion. Further, Hedabou et al., Non-Patent Document 3 discloses a method that is efficient using a pair of pre-calculation and expression conversion in a manner different from the present invention. Non-Patent Document 3 is described in the context of speeding up fixed-point scalar multiplication, but these can be regarded as multi-scalar multiplication calculations.

D. Hankerson, A. Menezes, and S. Vanstone, ”Guide to Elliptic Curve Cryptography,” Springer Professional Computing, Springer-Verlag, pp. 109-113, 2004.D. Hankerson, A. Menezes, and S. Vanstone, “Guide to Elliptic Curve Cryptography,” Springer Professional Computing, Springer-Verlag, pp. 109-113, 2004. C.H. Lim, and P.J. Lee, ”More Flexible Exponentiation with Precomputation,” CRYPT0 '94, LNCS 839, pp. 95-107, 1994.C.H. Lim, and P.J. Lee, “More Flexible Exponentiation with Precomputation,” CRYPT0 '94, LNCS 839, pp. 95-107, 1994. M. Hedabou, P. Pinel, and L. Bebeteau, ”Countermeasures for Preventing Comb Method Against SCA Attacks,” ISPEC 2005, LNCS 3439, pp. 85-96, 2005.M. Hedabou, P. Pinel, and L. Bebeteau, “Countermeasures for Preventing Comb Method Against SCA Attacks,” ISPEC 2005, LNCS 3439, pp. 85-96, 2005.

楕円曲線暗号では、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

Figure 2016133601
Figure 2016133601

、楕円曲線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)の全ての組合せに対して、点P0i=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 integers 0 0 or more, k 0 , ..., k m-1 Is a function that calculates Σ i = 0 m-1 k i P i and outputs a point on E (F q ), a set of m-1 bits {0,1} (e 1 ,... ., e m-1 ), calculate the point P 0 + Σ i = 1 m-1 e i P i and save the calculated 2 m-1 points in the pre-calculation table To do.

表現変換部は、正整数かつ奇数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.

実施例1のマルチスカラー倍算演算装置の構成を示すブロック図。1 is a block diagram illustrating a configuration of a multiscalar multiplication arithmetic device according to Embodiment 1. FIG. 実施例1のマルチスカラー倍算演算装置の動作を示すフローチャート。3 is a flowchart showing the operation of the multi-scalar multiplication operation device according to the first embodiment. Binary法を用いたマルチスカラー倍算の計算アルゴリズムを例示する図。The figure which illustrates the calculation algorithm of the multi-scalar multiplication using the Binary method. 実施例1の表現変換部で実行されるアルゴリズムを例示する図。FIG. 3 is a diagram illustrating an algorithm executed by the expression conversion unit according to the first embodiment. 実施例1のマルチスカラー倍算計算部で実行されるアルゴリズムを例示する図。FIG. 4 is a diagram illustrating an algorithm executed by the multiscalar multiplication calculation unit according to the first embodiment. 実施例1の表現変換部で実行されるアルゴリズム内において使用されるアルゴリズムを説明する図。FIG. 4 is a diagram for explaining an algorithm used in an algorithm executed by the expression conversion unit according to the first embodiment.

以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。   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

Figure 2016133601
Figure 2016133601

とする。また楕円曲線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.

Figure 2016133601
Figure 2016133601

を求める計算である。スカラー倍算の拡張として、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)

Figure 2016133601
Figure 2016133601

すなわち、前述の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)

Figure 2016133601
Figure 2016133601

すなわち、マルチスカラー倍算の計算結果Rを出力するアルゴリズムである。まず、無限遠点Oを用いて That is, it is an algorithm that outputs a calculation result R of multiscalar multiplication. First, using infinity point O

Figure 2016133601
Figure 2016133601

すなわち、Rを無限遠点で初期化する。なお、アルゴリズム内で記号「←」は代入を意味するものとする。次に、 That is, R is initialized at the infinity point. In the algorithm, the symbol “←” means substitution. next,

Figure 2016133601
Figure 2016133601

すなわち、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,

Figure 2016133601
Figure 2016133601

すなわち、Rに2Rを代入する。次に、 That is, 2R is substituted for R. next,

Figure 2016133601
Figure 2016133601

すなわち、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.

Figure 2016133601
Figure 2016133601

すなわち、ki (j)=1となるとき、楕円曲線上の点Piを用いて、 That is, when k i (j) = 1, using the point P i on the elliptic curve,

Figure 2016133601
Figure 2016133601

すなわち、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

Figure 2016133601
Figure 2016133601

すなわち、マルチスカラー倍算の計算結果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, Algorithm 1 has a calculation cost of mn / 2ECADD + nECDBL times.

[Lim-Lee方式(非特許文献2)]
以下、非特許文献2記載のLim-Lee方式の詳細を説明する。
[Lim-Lee method (Non-patent Document 2)]
Details of the Lim-Lee method described in Non-Patent Document 2 will be described below.

<事前計算>
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 Non-Patent Document 3 will be described.

<事前計算>
m-1個のビットの組(e1,...,em-1)(ei∈{0,1})の全ての組合せに対して、点P0i=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

Figure 2016133601
Figure 2016133601

となり、全ての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 arithmetic apparatus 1 according to the present embodiment. FIG. 2 is a flowchart showing the operation of the multi-scalar multiplication apparatus 1 of this embodiment. As shown in FIG. 1, the multi-scalar multiplication operation apparatus 1 of the present embodiment includes a pre-calculation unit 11, a pre-calculation result storage unit 12, an expression conversion unit 13, and a multi-scalar multiplication calculation unit 14. It is.

<事前計算部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]=P0j=1 m-1ejPj
ステップS11は、HPB05方式における事前計算と同様である。
<Pre-calculation unit 11, step S11>
Precalculation unit 11, the point P 0 as a reference, i = 1, ..., with respect to P i of m-1 (an integer satisfying the m ≧ 2), secondly, pre-calculated, was calculated 2 m−1 points are stored in the precalculation table of the precalculation result storage unit 12. At this time, a set of m−1 values (e 1 ,..., E m−1 ) taking {0, 1}. The combination of all (e 1 , ..., em -1 ) is 2m-1 . As an example of the mapping method of t for P 0 ,..., P m−1 , the following pre-calculation table Tbl [t] is configured. Here, 0 ≦ t <2 m−1 .
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)のどちらかの条件を満たす。
<Expression Conversion Unit 13, Step S13>
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 )

Figure 2016133601
Figure 2016133601

という表現に変換すれば、整数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 expression conversion unit 13 will be described in detail with reference to an example algorithm (Algorithm 2) shown in FIG. 4 and an example algorithm (Algorithm 4, 5, 6) shown in FIG. As shown in FIG. 4, the input to the expression conversion unit 13 is

Figure 2016133601
Figure 2016133601

すなわち、前述した正整数かつ奇数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 expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、表現変換されたスカラー値である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 expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、iの初期値を0とする。次に表現変換部13は、 That is, the initial value of i is set to 0. Next, the expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、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 expression conversion unit 13 uses the i + 1 digit of k 0 ,

Figure 2016133601
Figure 2016133601

とする。次に表現変換部13は、図6に示すcountアルゴリズム(Algorithm5)を用いて And Next, the expression conversion unit 13 uses the count algorithm (Algorithm 5) shown in FIG.

Figure 2016133601
Figure 2016133601

とする。図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 expression conversion unit 13 uses the check algorithm (Algorithm 6) shown in FIG.

Figure 2016133601
Figure 2016133601

すなわち、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 expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、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 Substitute 0. Next, the expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、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 expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、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 expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、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 expression conversion unit 13 determines that the result of check (k j , i, s, b) is not true at j = 1,.

Figure 2016133601
Figure 2016133601

すなわち、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 expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、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 expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、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 expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、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 expression conversion unit 13 increments i at the end of the process executed when check is not true. Finally, the expression conversion unit 13

Figure 2016133601
Figure 2016133601

すなわち、表現変換結果である(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 multiplication calculation unit 14, step S14>
The multi-scalar multiplication calculation unit 14 uses the expression-converted k ′ 0 ,..., K ′ m−1 and the pre-calculation table Tbl [t], and multi-scalar multiplication Σ i = 0 m− Points having the same value as 1 k i P i are calculated by, for example, Algorithm 3 shown in FIG. The multi-scalar multiplication calculation unit 14

Figure 2016133601
Figure 2016133601

すなわち、事前計算テーブル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 multiplication calculation unit 14

Figure 2016133601
Figure 2016133601

すなわち、マルチスカラー倍算の計算結果Rを出力する。マルチスカラー倍算計算部14は、無限遠点Oを用いて That is, the calculation result R of multiscalar multiplication is output. The multiscalar multiplication calculation unit 14 uses the infinity point O.

Figure 2016133601
Figure 2016133601

とする。次にマルチスカラー倍算計算部14は、 And Next, the multi-scalar multiplication calculation unit 14

Figure 2016133601
Figure 2016133601

すなわち、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 multiplication calculation unit 14

Figure 2016133601
Figure 2016133601

とする。次にマルチスカラー倍算計算部14は、 And Next, the multi-scalar multiplication calculation unit 14

Figure 2016133601
Figure 2016133601

すなわち、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 multiplication calculation unit 14

Figure 2016133601
Figure 2016133601

すなわち、c=1である場合に、RにR+Tbl[t]を代入する。次にマルチスカラー倍算計算部14は、 That is, when c = 1, R + Tbl [t] is substituted for R. Next, the multi-scalar multiplication calculation unit 14

Figure 2016133601
Figure 2016133601

すなわち、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 multiplication calculation unit 14

Figure 2016133601
Figure 2016133601

すなわち、マルチスカラー倍算の計算結果Rを出力する。 That is, the calculation result R of multiscalar multiplication is output.

<変形例1>
上述の実施例1においては、マルチスカラー倍算演算装置1に事前計算部11を含む構成としたが、これに限らず、マルチスカラー倍算演算装置から事前計算部11を省略することができる。この場合外部装置などに事前計算部11にあたる構成が存在するものとする。この場合外部装置が予め事前計算を実行しておき、事前計算の結果は、事前計算結果保存部12が事前計算テーブルとして予め保存しておくものとする。この場合、予め計算された2m-1個の点は固定点である。なお、実施例1においては、都度事前計算部が計算を実行するため、計算される点は可変点である。
<Modification 1>
In the above-described first embodiment, the multi-scalar multiplication operation device 1 includes the pre-calculation unit 11. However, the present invention is not limited to this, and the pre-calculation unit 11 can be omitted from the multi-scalar multiplication operation device. In this case, it is assumed that a configuration corresponding to the pre-calculation unit 11 exists in an external device or the like. In this case, it is assumed that the external device performs pre-calculation in advance, and the pre-calculation result is stored in advance as a pre-calculation table by the pre-calculation result storage unit 12. In this case, 2 m−1 points calculated in advance are fixed points. In the first embodiment, since the pre-calculation unit executes the calculation every time, the calculated point is a variable point.

<実施例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 pre-calculation unit 12 is zero, so that an effect can be obtained.

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)

素数p、正整数e、q=pe、有限体
Figure 2016133601
、楕円曲線E上のFq-有理点群をE(Fq)としたとき、
整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して、点P0i=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
Figure 2016133601
, Where F q -rational point group on the elliptic curve E is E (F q ),
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.
素数p、正整数e、q=pe、有限体
Figure 2016133601
、楕円曲線E上のFq-有理点群をE(Fq)としたとき、
整数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個の点P0i=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
Figure 2016133601
, Where F q -rational point group on the elliptic curve E is E (F q ),
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.
素数p、正整数e、q=pe、有限体
Figure 2016133601
、楕円曲線E上のFq-有理点群をE(Fq)としたとき、
整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して、点P0i=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
Figure 2016133601
, Where F q -rational point group on the elliptic curve E is E (F q ),
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.
素数p、正整数e、q=pe、有限体
Figure 2016133601
、楕円曲線E上のFq-有理点群をE(Fq)としたとき、
整数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個の点P0i=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
Figure 2016133601
, Where F q -rational point group on the elliptic curve E is E (F q ),
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.
コンピュータを、請求項1または2に記載のマルチスカラー倍算演算装置として機能させるためのプログラム。   A program for causing a computer to function as the multi-scalar multiplication operation device according to claim 1 or 2.
JP2015007719A 2015-01-19 2015-01-19 Multi-scalar multiplication operation device, multi-scalar multiplication operation method, program Active JP6293681B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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