Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5379700B2 - Scalar multiplication unit, scalar multiplication method, scalar multiplication program, recording medium - Google Patents
[go: Go Back, main page]

JP5379700B2 - Scalar multiplication unit, scalar multiplication method, scalar multiplication program, recording medium - Google Patents

Scalar multiplication unit, scalar multiplication method, scalar multiplication program, recording medium Download PDF

Info

Publication number
JP5379700B2
JP5379700B2 JP2010003295A JP2010003295A JP5379700B2 JP 5379700 B2 JP5379700 B2 JP 5379700B2 JP 2010003295 A JP2010003295 A JP 2010003295A JP 2010003295 A JP2010003295 A JP 2010003295A JP 5379700 B2 JP5379700 B2 JP 5379700B2
Authority
JP
Japan
Prior art keywords
scalar
scalar multiplication
value
unit
expressed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010003295A
Other languages
Japanese (ja)
Other versions
JP2011141488A (en
Inventor
鉄太郎 小林
剛 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010003295A priority Critical patent/JP5379700B2/en
Publication of JP2011141488A publication Critical patent/JP2011141488A/en
Application granted granted Critical
Publication of JP5379700B2 publication Critical patent/JP5379700B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To realize a simultaneous scalar multiple arithmetic method applicable to an encoded binary system. <P>SOLUTION: The scalar multiple arithmetic unit includes a mean value calculation part, an original calculation part, and a scalar multiple value calculation part. The mean value calculation part calculates a mean value e<SB>d(1)</SB>, ...,<SB>d(M)</SB>(n) for each combination d(1), ..., d(M). The original value calculation part calculates E<SB>d(1)</SB>, ...,<SB>d(M)</SB>G for the all combinations d(1), ..., d(M) calculated by the mean value calculation part. The scalar multiple value calculation part carries out the process of having as a scalar multiple value E<SB>m</SB>G obtained by subtracting the sum of all E<SB>d(1)</SB>, ...,<SB>d(M)</SB>G with the d(m) value of -1 from the sum of all E<SB>d(1)</SB>, ...,<SB>d(M)</SB>G with the d(m) value of 1 for m=1 to M. <P>COPYRIGHT: (C)2011,JPO&amp;INPIT

Description

本発明は、データを暗号化する装置や認証する装置にかかわり、特に情報セキュリティを効率よく実現するためのスカラー倍演算装置、スカラー倍演算方法、スカラー倍演算プログラム、記録媒体に関する。   The present invention relates to a data encryption device and an authentication device, and particularly relates to a scalar multiplication device, a scalar multiplication operation method, a scalar multiplication operation program, and a recording medium for efficiently realizing information security.

楕円曲線暗号や署名の演算コストにおいて、群の元Gをスカラー倍する演算は大きな割合を占める。本明細書では、複数のスカラー倍を同時に行う場合に効率良く演算する方法について述べる。乗法群のべき乗でも同じ議論を適用できるが、本明細書では記述をスカラー倍に統一する。群の元Gに対して入力されたM個の整数E,…,EについてEG,…,EGを求める演算を同時スカラー倍という。同時スカラー倍を効率良く実行するためには、2種類の戦略が考えられる。一つは、事前にGに関する事前演算を行いストレージに保存しておく方法がある。十分な量のストレージがある場合にはこの方法の効果が高い。もう一つは、事前の計算を必要としない方法である。本明細書では後者の方式について検討を行う。 In the operation cost of elliptic curve cryptography and signature, the operation of multiplying the group element G by scalar occupies a large proportion. In this specification, a method for efficiently performing calculation when performing a plurality of scalar multiplications simultaneously will be described. The same argument can be applied to the power of the multiplicative group, but in this specification, the description is unified to a scalar multiple. M integers E 1 entered on the original G in the group, ..., E 1 G for E M, ..., that simultaneous scalar multiplication calculation for obtaining the E M G. In order to efficiently execute the simultaneous scalar multiplication, two types of strategies can be considered. One is a method of pre-calculating G in advance and storing it in a storage. This method is highly effective when there is a sufficient amount of storage. The other is a method that does not require prior calculations. In this specification, the latter method is examined.

事前演算なしでスカラー倍を行う方式としては、スカラー値を二進展開して2倍演算と加算を行う方法(二進演算法)や、非特許文献1のNAF法や、非特許文献2のBooth法がある。これに対して複数のスカラー倍を同時に行うことで効率を向上した方式(非特許文献3,4,5など)が提案されてきた。
図1は、二進演算法の処理フローを示す図である。この処理フローでは、Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、Gを群の元、E,…,E
As a method of performing scalar multiplication without pre-computation, a method of performing binary computation and performing binary computation and addition (binary computation method), the NAF method of Non-Patent Document 1, the Non-Patent Document 2, There is a Booth method. On the other hand, methods (Non-Patent Documents 3, 4, 5, etc.) that improve efficiency by simultaneously performing a plurality of scalar multiplications have been proposed.
FIG. 1 is a diagram showing a processing flow of the binary arithmetic method. In this processing flow, M is an integer of 2 or more, m is an integer of 1 to M, N is a positive integer, n is an integer of 0 to N, G is a group element, E 1 ,.

Figure 0005379700
Figure 0005379700

のように表現されるスカラーとし、元Gをスカラー倍した値EG,…,EGを求める。二進演算法では、Eがランダムな値の場合、二進演算法のコストは2倍演算がMN回、加算演算が(1/2)MN回である。 A value E 1 G,..., E M G obtained by multiplying the original G by a scalar is obtained. In the binary arithmetic method, when Em is a random value, the cost of the binary arithmetic method is MN times for the double operation and (1/2) MN times for the addition operation.

また、楕円曲線上の点など、−1倍を行うのが容易な群でスカラー倍演算を行う場合、符号つき二進法(NAF法:非特許文献1)が用いられることが多い。二進演算法は、2倍演算N回と加算演算N/2回で1つのスカラー倍演算を行うのに対し、符号つき二進法では、2倍演算N回と加算演算N/3回で1つのスカラー倍演算が行える。したがって、M個のスカラー倍演算では、2倍演算がMN回、加算演算がMN/3回である。   In addition, when performing scalar multiplication with a group that is easy to perform −1 multiplication, such as a point on an elliptic curve, a signed binary method (NAF method: Non-Patent Document 1) is often used. In the binary operation method, one scalar multiplication operation is performed by N times of the double operation and N / 2 times of addition, whereas in the binary method of signing, one operation is performed by N times of the double operation and N / 3 times of the addition operation. Can perform scalar multiplication. Therefore, in M scalar multiplication operations, the doubling operation is MN times and the addition operation is MN / 3 times.

次に、非特許文献3の鶴岡法について説明する。最初に、入力されるスカラー値の数が2つの場合について説明する。Nを正の整数、nを0以上N以下の整数、E,ENext, the Tsuruoka method of Non-Patent Document 3 will be described. First, a case where the number of input scalar values is two will be described. N is a positive integer, n is an integer between 0 and N, and E 1 and E 2 are

Figure 0005379700
Figure 0005379700

と表現されるスカラー、Gを群の元とする。そして、
1,1=E∧E
1,0=E−E1,1
0,1=E−E1,1
のように中間値H1,1、H1,0、H0,1を求める。ただし、E∧Eは、二進表現のEとEを各桁のビットごとに論理積を行うことをあらわす。E、Eのnビット目は、上記のようにh(n)、h(n)のように表現できる。H1,1、H1,0、H0,1のnビット目をh1,1(n)、h1,0(n)、h0,1(n)と表現すると、h(n)、h(n)とh1,1(n)、h1,0(n)、h0,1(n)の関係は、図2のようになる。
A scalar, G expressed as And
H 1,1 = E 1 ∧E 2
H 1,0 = E 1 -E 1,1
H 0,1 = E 2 −E 1,1
Intermediate values H 1,1 , H 1,0 , H 0,1 are obtained as follows. However, E 1 ∧E 2 indicates that the binary representations E 1 and E 2 are logically ANDed for each bit of each digit. The nth bit of E 1 and E 2 can be expressed as h 1 (n) and h 2 (n) as described above. When the n-th bit of H 1,1 , H 1,0 , H 0,1 is expressed as h 1,1 (n), h 1,0 (n), h 0,1 (n), h 1 (n ), H 2 (n) and h 1,1 (n), h 1,0 (n), h 0,1 (n) are as shown in FIG.

とEが無相関であれば、H1,1、H1,0、H0,1のハミング重みは平均N/4であり、H1,1G、H1,0G、H0,1Gを、二進演算法を用いて同時に求める計算量は2倍演算がN回、加算が平均(3/4)N回となる。これらを用いてEG、EGを以下のように求める。
G=H1,0G+H1,1
G=H0,1G+H1,1
この方法でEG、EGを求めれば(M=2の場合)、加算回数は(3/4)N+2回となり、二進演算法の加算回数N回よりも少ない。したがって、鶴岡法の方が二進演算法よりも高速である。
If E 1 and E 2 are uncorrelated, the Hamming weights of H 1,1 , H 1,0 , H 0,1 are average N / 4, and H 1,1 G, H 1,0 G, H The amount of calculation for simultaneously obtaining 0,1 G using the binary arithmetic method is N times for the doubling operation and an average of (3/4) N times for the addition. Using these, E 1 G and E 2 G are obtained as follows.
E 1 G = H 1,0 G + H 1,1 G
E 2 G = H 0,1 G + H 1,1 G
If E 1 G and E 2 G are obtained by this method (when M = 2), the number of additions is (3/4) N + 2, which is smaller than the number of additions N in the binary arithmetic method. Therefore, the Tsuruoka method is faster than the binary arithmetic method.

図3に、鶴岡法でM個の同時スカラー倍を行なう場合の処理フローを示す。アルゴリズム中では記述の簡略化のため、中間値Hd(1),…,d(M)をB、中間値Hd(1),…,d(M)のnビット目hd(1),…,d(M)(n)をb(n)(ただし、1≦k≦2−1)と表しており、 FIG. 3 shows a processing flow when performing M simultaneous scalar multiplications by the Tsuruoka method. In the algorithm, in order to simplify the description, the intermediate value H d (1),..., D (M) is set to B k , and the nth bit h d (1 ) of the intermediate value H d (1) ,. ),..., D (M) (n) is expressed as b k (n) (where 1 ≦ k ≦ 2 M −1),

Figure 0005379700
Figure 0005379700

の関係がある。例えば、M=2の場合は、b(n)=h1,0(n)、b(n)=h0,1(n)、b(n)=h1,1(n)である。なお、n=1〜Nのb(n)を求めることはBを求めることなので、b(n)も中間値と呼ぶこととする。 There is a relationship. For example, when M = 2, b 1 (n) = h 1,0 (n), b 2 (n) = h 0,1 (n), b 3 (n) = h 1,1 (n) It is. Since obtaining b k (n) where n = 1 to N is obtaining B k , b k (n) is also referred to as an intermediate value.

鶴岡法の場合、2倍演算がMN回、加算演算が(1−(1/2))N+α回である。なお、図3の方法をそのまま行うとα=m・2M−1であるが、非特許文献5の方法を用いることで、α=2M+1−2M−2回にできる。 In the case of the Tsuruoka method, the doubling operation is MN times, and the addition operation is (1- (1/2) M ) N + α times. If the method of FIG. 3 is performed as it is, α = m · 2 M−1 . However, by using the method of Non-Patent Document 5, α = 2 M + 1 −2M−2 times.

A. J. Menezes, P. C. van Oorschot and S. A. Vanstone, Handbook of Applied Cryptography. CRC Pres, 1996.A. J. Menezes, P. C. van Oorschot and S. A. Vanstone, Handbook of Applied Cryptography. CRC Pres, 1996. Andrew D. Booth, ”A Signed Binary Multiplication Technique”, The Quarterly Journal of Mechanics and Applied Mathematics 1951 4(2),p.236-240, 1951.Andrew D. Booth, “A Signed Binary Multiplication Technique”, The Quarterly Journal of Mechanics and Applied Mathematics 1951 4 (2), p.236-240, 1951. 鶴岡行雄, ”高速な多垂べき乗計算アルゴリズム”, Extended Abstract for JW-ISC’93, 電子情報通信学会技術研究報告. ISEC, 情報セキュリティ93(295), pp.103-111, 1993.Tsuruoka Yukio, “Fast Multiplicative Power Calculation Algorithm”, Extended Abstract for JW-ISC'93, IEICE Technical Report. ISEC, Information Security 93 (295), pp.103-111, 1993. David M'Ra:ichi and David Naccache, ”Batch Exponentiation: A Fast DLP-based Signature Generation Strategy”, CCS ’96, Proceedings of the 3rd ACM Conference on Computer and Communications Security, March 14-16 1996, New Delhi, India, ACM, 1996.David M'Ra: ichi and David Naccache, “Batch Exponentiation: A Fast DLP-based Signature Generation Strategy”, CCS '96, Proceedings of the 3rd ACM Conference on Computer and Communications Security, March 14-16 1996, New Delhi, India , ACM, 1996. Byungchun Chung, Junbeom Hur, Heeyoul Kim, Seong-Min Hong and Hyunsoo Yoon, ”Improved batch exponentiation”, Information Processing Letters 109 (2009) 832-837.Byungchun Chung, Junbeom Hur, Heeyoul Kim, Seong-Min Hong and Hyunsoo Yoon, “Improved batch exponentiation”, Information Processing Letters 109 (2009) 832-837.

非特許文献3,4,5の方式も二進法に基づくもので、M=2の場合にはNAF法(非特許文献1)よりも効率が悪いという欠点があった。本発明の目的は、非特許文献3の鶴岡法の概念を拡張し、符号付き二進法に適用できる同時スカラー倍演算法を実現することである。   The methods of Non-Patent Documents 3, 4, and 5 are also based on the binary method. When M = 2, there is a drawback that the efficiency is lower than that of the NAF method (Non-Patent Document 1). An object of the present invention is to extend the concept of the Tsuruoka method of Non-Patent Document 3 and realize a simultaneous scalar multiplication method applicable to a signed binary method.

本発明のスカラー倍演算装置は、Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、E,…,EIn the scalar multiplication apparatus of the present invention, M is an integer of 2 or more, m is an integer of 1 to M, N is a positive integer, n is an integer of 0 to N, E 1 ,.

Figure 0005379700
Figure 0005379700

と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,…,Eをそれぞれ乗算した値であるスカラー倍値EG,…,EGを求める。本発明のスカラー倍演算装置は、中間値計算部、元計算部、スカラー倍値計算部を備える。中間値計算部は、d(m)∈{0,1,−1}として、
すべてのmについてd(m)=e(n)のときは
d(1),…,d(M)(n)=1
すべてのmについてd(m)=−e(n)のときは
d(1),…,d(M)(n)=−1
その他のときは
d(1),…,d(M)(n)=0
である中間値ed(1),…,d(M)(n)を、d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める。d(1)=0,…,d(M)=0の場合を求める必要がないのは、以降の計算で利用しないからである。また、ただし書きの理由は、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つときは、ed(1),…,d(M)(n)=(−1)×ed’(1),…,d’(M)(n)の関係が成り立つため、両方を求める必要がないからである。元計算部は、中間値計算部で求めたd(1),…,d(M)の組合せのすべてについて、
Scalar, the original group of G which is expressed as the scalar E 1 to the original G, ..., is a value obtained by multiplying each E M scalar Baichi E 1 G, ..., determine the E M G. The scalar multiplication unit of the present invention includes an intermediate value calculation unit, an original calculation unit, and a scalar multiplication value calculation unit. The intermediate value calculation unit sets d (m) ε {0, 1, −1} as
E d (1) when the d (m) = e m ( n) for all m, ..., d (M) (n) = 1
When d (m) = − e m (n) for all m, ed ( 1),..., D (M) (n) = − 1
In other cases, ed (1),..., D (M) (n) = 0
, D (M) (n) is changed to d (1) = 0,..., D (M) = 0 except for d (1),. combinations) (however, d '(1) = ( - 1) × d (1), ..., d' (M) = (- 1) × e d (1) to d (M) is established, ..., d (M) (n) and ed ′ (1),..., D ′ (M) (n) are only one of them). It is not necessary to obtain the case of d (1) = 0,..., d (M) = 0 because it is not used in subsequent calculations. The proviso of reasons, d '(1) = ( - 1) × d (1), ..., d' (M) = (- 1) × when d (M) is established, e d (1) ,..., D (M) (n) = (− 1) × e d ′ (1),..., D ′ (M) (n) holds, and it is not necessary to obtain both. The original calculation unit calculates all combinations of d (1),..., D (M) obtained by the intermediate value calculation unit.

Figure 0005379700
Figure 0005379700

を求める。スカラー倍値計算部は、d(m)の値が1であるすべてのEd(1),…,d(M)Gの和から、d(m)の値が−1であるすべてのEd(1),…,d(M)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行う。 Ask for. The scalar multiple calculator calculates from the sum of all E d (1),..., D (M) G where the value of d (m) is 1, all the E's whose value of d (m) is −1. d (1),..., d (M) A process of subtracting the sum of G to obtain a scalar multiple value E m G is performed from m = 1 to M.

本発明のスカラー倍演算装置によれば、符号付き二進法に同時スカラー倍演算の考え方を適用できるので、群の元に複数のスカラー値をそれぞれ乗算するような場合に、従来技術に比べ演算量を少なくできる。   According to the scalar multiplication unit of the present invention, the concept of simultaneous scalar multiplication can be applied to a signed binary method, so that when a plurality of scalar values are respectively multiplied by a group, the amount of calculation is reduced compared to the conventional technique. Less.

二進演算法の処理フローを示す図。The figure which shows the processing flow of a binary arithmetic method. 鶴岡法でのnビット目の変換を示す図。The figure which shows the nth bit conversion by the Tsuruoka method. 鶴岡法でM個の同時スカラー倍を行なう場合の処理フローを示す図。The figure which shows the processing flow in the case of performing M simultaneous scalar multiplication by the Tsuruoka method. 本発明のスカラー倍演算装置の機能構成例を示す図。The figure which shows the function structural example of the scalar multiplication apparatus of this invention. 本発明のスカラー倍演算装置の処理フローを示す図。The figure which shows the processing flow of the scalar multiplication apparatus of this invention. M=2の場合のスカラーE、Eのnビット目e(n)、e(n)と、求めなければならない中間値ed(1),d(2)(n)の関係を示す図。Relationship between nth bits e 1 (n), e 2 (n) of scalars E 1 , E 2 and intermediate values ed (1), d (2) (n) to be obtained when M = 2 FIG. M=2の場合のスカラーE、Eのnビット目e(n)、e(n)と、中間値ed(1),d(2)(n)の関係を示す図。It shows M = scalar E 1 in the case of 2, n bit e 1 of E 2 (n), e 2 (n), and an intermediate value e d (1), the relationship between d (2) (n). M=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、求めなければならない中間値ed(1),d(2),d(3)(n)の関係を示す図。N-th bit e 1 scalar E 1, E 2, E 3 in the case of M = 3 (n), e 2 (n), e 3 (n), and must be determined intermediate value e d (1), The figure which shows the relationship of d (2), d (3) (n). M=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、中間値ed(1),d(2),d(3)(n)の関係を示す1つ目の図。The nth bit e 1 (n), e 2 (n), e 3 (n) of the scalars E 1 , E 2 , E 3 and the intermediate values ed (1), d (2) when M = 3 , D (3) A first diagram showing the relationship (n). M=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、中間値ed(1),d(2),d(3)(n)の関係を示す2つ目の図。The nth bit e 1 (n), e 2 (n), e 3 (n) of the scalars E 1 , E 2 , E 3 and the intermediate values ed (1), d (2) when M = 3 , D (3) A second diagram showing the relationship (n). 本発明のスカラー倍演算装置の詳細な処理フローの例を示す図。The figure which shows the example of the detailed process flow of the scalar multiplication apparatus of this invention. NAF法によって二進法表現のスカラーEを符号つき二進法表現のスカラーEに変換するフローを示す図。It shows a flow for converting the NAF method scalar E m of binary representation scalar E m signed binary representation. 二進法表現された0〜8とNAF法によって符号つき二進法表現に変換された0〜8を示す図。The figure which shows 0-8 converted into binary representation with a sign by the binary expression 0-8 and NAF method. Booth法によって二進法表現のスカラーEを符号つき二進法表現のスカラーEに変換するフローを示す図。It shows a flow which converts scalar E m of binary representation scalar E m of signed binary representation by Booth Algorithm. 二進法表現された2n−2桁〜2n桁と、Booth法によって符号つき二進法表現に変換された2n−1桁、2n桁との関係を示す図。The figure which shows the relationship between the 2n-2 digit-2n digit expressed by the binary system, and the 2n-1 digit and the 2n digit converted into the signed binary system expression by Boot method. M個のN桁のスカラーを群の元に乗算する場合の各方式の演算量を比較するための図。The figure for comparing the operation amount of each system in the case of multiplying the group element by M N-digit scalars.

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

装置構成、処理フロー
図4に本発明のスカラー倍演算装置の機能構成例を、図5に本発明のスカラー倍演算装置の処理フローを示す。本発明のスカラー倍演算装置100は、Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、E,…,E
Device Configuration and Processing Flow FIG. 4 shows a functional configuration example of the scalar multiplication unit of the present invention, and FIG. 5 shows a processing flow of the scalar multiplication unit of the present invention. The scalar multiplication apparatus 100 of the present invention is configured such that M is an integer of 2 or more, m is an integer of 1 to M, N is a positive integer, n is an integer of 0 to N, E 1 ,.

Figure 0005379700
Figure 0005379700

と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,…,Eをそれぞれ乗算した値であるスカラー倍値EG,…,EGを求める。スカラー倍演算装置100は、中間値計算部120、元計算部130、スカラー倍値計算部140、記録部190を備える。中間値計算部120は、d(m)∈{0,1,−1}として、
すべてのmについてd(m)=e(n)のときは
d(1),…,d(M)(n)=1
すべてのmについてd(m)=−e(n)のときは
d(1),…,d(M)(n)=−1
その他のときは
d(1),…,d(M)(n)=0
である中間値ed(1),…,d(M)(n)を、d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める(S120)。d(1)=0,…,d(M)=0の場合を求める必要がないのは、以降の計算で利用しないからである。また、ただし書きの理由は、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つときは、ed(1),…,d(M)(n)=(−1)×ed’(1),…,d’(M)(n)の関係が成り立つため、両方を求める必要がないからである。したがって、中間値の数は(3−1)/2個となる。また、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つ組合せのうちどちらを求めてもかまわない。
Scalar, the original group of G which is expressed as the scalar E 1 to the original G, ..., is a value obtained by multiplying each E M scalar Baichi E 1 G, ..., determine the E M G. The scalar multiplication unit 100 includes an intermediate value calculation unit 120, an original calculation unit 130, a scalar multiple calculation unit 140, and a recording unit 190. The intermediate value calculation unit 120 sets d (m) ε {0, 1, −1} as
E d (1) when the d (m) = e m ( n) for all m, ..., d (M) (n) = 1
When d (m) = − e m (n) for all m, ed ( 1),..., D (M) (n) = − 1
In other cases, ed (1),..., D (M) (n) = 0
, D (M) (n) is changed to d (1) = 0,..., D (M) = 0 except for d (1),. combinations) (however, d '(1) = ( - 1) × d (1), ..., d' (M) = (- 1) × e d (1) to d (M) is established, ..., d (M) (n) and ed ′ (1),..., D ′ (M) (n) (only one of them) are obtained (S120). It is not necessary to obtain the case of d (1) = 0,..., d (M) = 0 because it is not used in subsequent calculations. The proviso of reasons, d '(1) = ( - 1) × d (1), ..., d' (M) = (- 1) × when d (M) is established, e d (1) ,..., D (M) (n) = (− 1) × e d ′ (1),..., D ′ (M) (n) holds, and it is not necessary to obtain both. Therefore, the number of intermediate values is (3 M −1) / 2. In addition, either of the combinations in which d ′ (1) = (− 1) × d (1),..., D ′ (M) = (− 1) × d (M) may be obtained.

元計算部130は、中間値計算部120で求めたd(1),…,d(M)の組合せのすべてについて、   The original calculation unit 130 determines all combinations of d (1),..., D (M) obtained by the intermediate value calculation unit 120.

Figure 0005379700
Figure 0005379700

を求める(S130)。スカラー倍値計算部140は、d(m)の値が1であるすべてのEd(1),…,d(M)Gの和から、d(m)の値が−1であるすべてのEd(1),…,d(M)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行う(S140)。式で表現すると、 Is obtained (S130). The scalar multiple calculation unit 140 calculates all the values of d (m) of −1 from the sum of all E d (1),..., D (M) G of d (m) of 1. E d (1),..., D (M) The value obtained by subtracting the sum of G is set to a scalar multiple value E m G from m = 1 to M (S140). Expressed as an expression

Figure 0005379700
Figure 0005379700

のようになる。記録部190は、元G、スカラーE、中間値ed(1),…,d(M)(n)、Ed(1),…,d(M)G、スカラー倍値EGなどを記録する。
また、スカラー倍演算装置100は、スカラー倍演算装置100に入力されるスカラーが二進法表現の場合には表現変換部110を備えればよい。表現変換部110は、
become that way. The recording unit 190 includes an original G, a scalar E m , an intermediate value ed (1),..., D (M) (n), an E d (1), ..., d (M) G, and a scalar multiple E m G. Etc. are recorded.
In addition, the scalar multiplication unit 100 may include the expression conversion unit 110 when the scalar input to the scalar multiplication unit 100 is binary representation. The expression conversion unit 110

Figure 0005379700
Figure 0005379700

のように表現されるスカラーE,…,E(二進法表現のスカラー)を、 A scalar E 1 ,..., E M (binary representation scalar) expressed as

Figure 0005379700
Figure 0005379700

のように表現されるスカラーE,…,E(符号つき二進法表現のスカラー)に変換する(S110)。具体的な変換方法としては、NAF法やBooth法などがある。
原理の説明
まず、M=2の場合について説明する。図6にM=2の場合のスカラーE、Eのnビット目e(n)、e(n)と、求めなければならない中間値ed(1),d(2)(n)の関係を示す。また、図7にM=2の場合のスカラーE、Eのnビット目e(n)、e(n)と、中間値ed(1),d(2)(n)の関係を示す。
Are converted into scalars E 1 ,..., E M (scalar of signed binary representation) (S110). Specific conversion methods include the NAF method and Boot method.
Description of Principle First, the case of M = 2 will be described. N-th bit e 1 scalar E 1, E 2 if 6 of M = 2 and (n), e 2 (n ), must be determined intermediate value e d (1), d ( 2) (n ). Further, n-th bit e 1 scalar E 1, E 2 if the FIG. 7 of the M = 2 (n), e 2 (n), and an intermediate value e d (1), d ( 2) of the (n) Show the relationship.

スカラーE、Eのnビット目e(n)、e(n)の値が0の場合、どんな乗算を行っても結果は0である。したがって、e(n)、e(n)の値が0以外の場合について考慮すればスカラー倍演算を実行できる。二進法の場合であれば0以外の値は1のみである。したがって、鶴岡法ではh1,0(n)、h0,1(n)、h1,1(n)について考慮すればよかった。一方、本発明が採用した符号つき二進法の場合、0以外の値には1と−1がある。そこで、図6に示すように、e(n)、e(n)の値が1または−1の場合について中間値を求める。中間値として考えられる組合せは、e1,1(n)、e1,0(n)、e1,−1(n)、e0,1(n)、e0,0(n)、e0,−1(n)、e−1,1(n)、e−1,0(n)、e−1,−1(n)である。しかし、e0,0(n)はe(n)=0、e(n)=0なので乗算で考慮する必要がない。また、e1,1(n)=−e−1,−1(n)、e1,0(n)=e−1,0(n)、e1,−1(n)=e−1,1(n)、e0,1(n)=e0,−1(n)の関係が成り立つので、一方を求めれば他方を求める必要はない。したがって、図6にしめした4つの中間値を求めれば十分である。なお、図6では、e1,1(n)、e1,0(n)、e1,−1(n)、e0,1(n)の4つを選択しているが、d’(1)=(−1)×d(1)かつd’(2)=(−1)×d(2)が成り立つ他方を選択してもよい。 When the values of the nth bits e 1 (n) and e 2 (n) of the scalars E 1 and E 2 are 0, the result is 0 regardless of what multiplication is performed. Therefore, scalar multiplication can be performed if the case where the values of e 1 (n) and e 2 (n) are other than 0 is taken into consideration. In the binary system, the only value other than 0 is 1. Therefore, in the Tsuruoka method, h 1,0 (n), h 0,1 (n), and h 1,1 (n) should be considered. On the other hand, in the signed binary system adopted by the present invention, there are 1 and −1 as values other than 0. Therefore, as shown in FIG. 6, an intermediate value is obtained when the values of e 1 (n) and e 2 (n) are 1 or −1. Possible combinations as intermediate values are e 1,1 (n), e 1,0 (n), e 1, -1 (n), e 0,1 (n), e 0,0 (n), e 0, -1 (n), e- 1 , 1 (n), e- 1 , 0 (n), e- 1, -1 (n). However, since e 0,0 (n) is e 1 (n) = 0 and e 2 (n) = 0, there is no need to consider in multiplication. Also, e 1,1 (n) = − e −1, −1 (n), e 1,0 (n) = e −1,0 (n), e 1, −1 (n) = e −1 , 1 (n), e 0,1 (n) = e 0, −1 (n), the relationship is established, and if one is obtained, the other need not be obtained. Therefore, it is sufficient to obtain the four intermediate values shown in FIG. In FIG. 6, four of e 1,1 (n), e 1,0 (n), e 1, -1 (n), and e 0,1 (n) are selected, but d ′ You may select the other where (1) = (− 1) × d (1) and d ′ (2) = (− 1) × d (2).

(n)、e(n)と中間値ed(1),d(2)(n)との関係は図7に示したとおり、
d(1)=e(n)かつd(2)=e(n)のときは
d(1),d(2)(n)=1
d(1)=−e(n)かつd(2)=−e(n)のときは
d(1),d(2)(n)=−1
その他のときは
d(1),d(2)(n)=0
である。
The relationship between e 1 (n), e 2 (n) and intermediate values ed (1), d (2) (n) is as shown in FIG.
When d (1) = e 1 (n) and d (2) = e 2 (n), ed (1), d (2) (n) = 1
When d (1) = − e 1 (n) and d (2) = − e 2 (n), ed (1), d (2) (n) = − 1
In other cases, ed (1), d (2) (n) = 0
It is.

図7から分かるように、e(n)とe(n)の列では2/3が0以外である。一方、e1,1(n)、e1,0(n)、e1,−1(n)、e0,1(n)の列では、それぞれ2つのみ(2/9のみ)が0以外である。したがって、実際に乗算を行わなければならない部分が少なくなる。これらのことから、M=2の場合には、NAF法の加算回数は平均2/3N回なのに対し、NAF法に本発明を適用した場合は加算回数は平均(5/9)N+4回であり、(1/9)N−4回の加算を削減ができる。 As can be seen from FIG. 7, 2/3 is other than 0 in the column of e 1 (n) and e 2 (n). On the other hand, in the columns of e 1,1 (n), e 1,0 (n), e 1, -1 (n), e 0,1 (n), only two (only 2/9) are 0. Other than Therefore, there are fewer parts that must actually be multiplied. Therefore, when M = 2, the average number of additions of the NAF method is 2 / 3N, whereas when the present invention is applied to the NAF method, the average number of additions is (5/9) N + 4. , (1/9) N-4 additions can be reduced.

図8にM=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、求めなければならない中間値ed(1),d(2),d(3)(n)の関係を示す。上述のように、求めなければならない中間値ed(1),d(2),d(3)(n)の数は(3−1)/2個なので、M=3の場合には13個である。図9、10にM=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、中間値ed(1),d(2),d(3)(n)の関係を示す。この例でも、e(n)、e(n)、e(n)の列では2/3が0以外である。一方、中間値ed(1),d(2),d(3)(n)の列では、それぞれ2つのみ(2/27のみ)が0以外である。したがって、計算回数を削減できる。同様にM>3の場合にも中間値ed(1),…,d(M)(n)を利用することで、計算回数を削減できる。 N-th bit e 1 scalar E 1, E 2, E 3 where in Figure 8 of the M = 3 (n), e 2 (n), e 3 (n), and must be determined intermediate value e d ( 1), d (2), d (3) (n) is shown. As described above, since the number of intermediate values ed (1), d (2), d (3) (n) to be obtained is (3 M −1) / 2, when M = 3, 13 pieces. N-th bit e 1 scalar E 1, E 2, E 3 in the case of M = 3 in FIG. 9,10 (n), e 2 ( n), e 3 (n), and an intermediate value e d (1) , D (2), d (3) (n). Also in this example, 2/3 is other than 0 in the column of e 1 (n), e 2 (n), and e 3 (n). On the other hand, in the column of intermediate values ed (1), d (2), d (3) (n), only two (only 2/27) are non-zero. Therefore, the number of calculations can be reduced. Similarly, when M> 3, the number of calculations can be reduced by using the intermediate values ed (1),..., D (M) (n).

詳細な処理フロー(アルゴリズムの具体例)
本発明のスカラー倍演算装置の詳細な処理フローの例を図11に示す。図11のStep1、Step2は前処理であり、各変数を初期値に設定している。Step3は図5のS120に、Step4はS130に、Step5はS140に相当する。Step6は結果を出力する処理である。
Detailed processing flow (specific example of algorithm)
An example of a detailed processing flow of the scalar multiplication unit of the present invention is shown in FIG. Step 1 and Step 2 in FIG. 11 are preprocessing, and each variable is set to an initial value. Step 3 corresponds to S120 of FIG. 5, Step 4 corresponds to S130, and Step 5 corresponds to S140. Step 6 is a process for outputting the result.

Step3、Step4、Step5では、記述の簡略化のため、中間値Ed(1),…,d(M)をB、中間値Ed(1),…,d(M)のnビット目ed(1),…,d(M)(n)をb(n)(ただし、1≦k≦2−1)と表しており、 In Step 3, Step 4, and Step 5, the intermediate value E d (1),..., D (M) is represented by B k and the nth bit of the intermediate value E d (1) ,. e d (1),..., d (M) (n) is expressed as b k (n) (where 1 ≦ k ≦ 2 M −1),

Figure 0005379700
Figure 0005379700

の関係がある。例えば、M=2の場合は、b(n)=e1,0(n)、b−1(n)=e−1,0(n)、b(n)=e0,1(n)、b−3(n)=e0,−1(n)、b(n)=h1,1(n)、b−2(n)=h1,−1(n)、b(n)=h−1,1(n)、b−4(n)=h−1,−1(n)である。なお、n=1〜Nのb(n)を求めることはBを求めることなので、b(n)も中間値と呼ぶ。このようにkとd(1),…,d(M)の関係を決めているので、kを1から(3−1)/2まで変化させれば、d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について演算したことになる。 There is a relationship. For example, when M = 2, b 1 (n) = e 1,0 (n), b −1 (n) = e −1,0 (n), b 3 (n) = e 0,1 ( n), b −3 (n) = e 0, −1 (n), b 4 (n) = h 1,1 (n), b −2 (n) = h 1, −1 (n), b 2 (n) = h− 1,1 (n), b− 4 (n) = h− 1, −1 (n). Since obtaining b k (n) where n = 1 to N is obtaining B k , b k (n) is also called an intermediate value. Since the relationship between k and d (1),..., D (M) is determined in this way, if k is changed from 1 to (3 M −1) / 2, d (1) = 0,. , D (M) = 0 all combinations other than d (1),..., D (M) (where d ′ (1) = (− 1) × d (1),..., D ′ (M) Ed (1), ..., d (M) (n) and ed '(1), ..., d' (M) (n) satisfy only = (-1) * d (M) ).

図12はNAF法によって二進法表現のスカラーEを符号つき二進法表現のスカラーEに変換するフローを、図13は二進法表現された0〜8とNAF法によって符号つき二進法表現に変換された0〜8を示す。また、図14はBooth法によって二進法表現のスカラーEを符号つき二進法表現のスカラーEに変換するフローを、図15は二進法表現された2n−2桁〜2n桁と、Booth法によって符号つき二進法表現に変換された2n−1桁、2n桁との関係を示す。NAF法は、符号付き二進法表現のスカラーの各桁の0の確率を2/3、1または−1の確率を1/3にする方法である。また、Booth法は、符号付き二進法表現のスカラーの各桁の0の確率を5/8、1または−1の確率を3/8(奇数桁は0の確率が1/2、偶数桁は0の確率が3/4)にする方法である。本発明はNAF法やBooth法以外にも任意の符号つき二進法と組み合わせることができる。 FIG. 12 shows a flow of converting a binary expression scalar E m to a signed binary expression scalar E m by the NAF method, and FIG. 13 shows 0 to 8 expressed by the binary expression and 0 converted to a signed binary expression by the NAF method. -8 are shown. FIG. 14 shows a flow of converting a binary expression scalar E m to a signed binary expression scalar E m by the Boot method, and FIG. 15 shows a binary expression of 2n−2 to 2n digits and a sign by the Boot method. The relationship between 2n-1 digits and 2n digits converted to binary representation is shown. The NAF method is a method in which the probability of 0 for each digit of a scalar in a signed binary representation is set to 2/3, the probability of 1 or −1 to 1/3. In addition, the Boot method has a probability of 0 for each digit of a scalar in a signed binary representation expressed as 5/8, a probability of 1 or −1 as 3/8 (an odd number has a probability of 0, and an even number has a probability of 0. This is a method of setting the probability of 3/4). The present invention can be combined with any signed binary method other than the NAF method and the Booth method.

演算量の比較
図16は、M個のN桁のスカラーを群の元に乗算する場合の各方式の演算量を比較するための図である。どの方式も2倍演算はMN回なので、図16では加算回数のみを比較している。ただし、α=2M+1−2M−2、β=3−2M−1である。なお、符号付き二進法によって1つのスカラー倍を計算する場合にはNAF法のほうがBooth法よりも効率が良いが、同時スカラー倍の場合は逆転する場合がある。具体的には、M≧5の場合にはBooth法の方がNAF法よりも効率がよい。この例と同じように、単独での効率にかかわらず本発明と組み合わせることで効率がよくなる場合もあるので、適宜符号つき二進法を選定すればよい。
Comparison of Computation Amounts FIG. 16 is a diagram for comparing the computation amounts of the respective methods in the case where M N-digit scalars are multiplied by group elements. In any method, since the doubling operation is MN times, only the number of additions is compared in FIG. However, α = 2 M + 1 −2M−2 and β = 3 M −2M−1. It should be noted that the NAF method is more efficient than the Boot method when calculating one scalar multiplication by a signed binary method, but the simultaneous scalar multiplication may be reversed. Specifically, when M ≧ 5, the Boot method is more efficient than the NAF method. As in this example, the efficiency may be improved by combining with the present invention regardless of the efficiency of the single device, so that a signed binary method may be selected as appropriate.

例えば、M=2の場合、本発明+NAF法は、従来のNAF法(NAF法単独)に比べ11%の高速化が図れる。このように、本発明は、非特許文献3の鶴岡法の概念を拡張し、符号付き二進法に適用できる同時スカラー倍演算法を実現している。そして、M=2の場合も含め、演算回数を削減できている。   For example, when M = 2, the present invention + NAF method can increase the speed by 11% compared with the conventional NAF method (NAF method alone). As described above, the present invention extends the concept of the Tsuruoka method of Non-Patent Document 3 and realizes a simultaneous scalar multiplication method applicable to a signed binary method. In addition, the number of operations can be reduced including the case of M = 2.

プログラム、記録媒体
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
Program, Recording Medium When the above-described configuration is realized by a computer, the processing contents of functions that each device should have are described by the program. The processing functions are realized on the computer by executing the program on the computer.
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.

また、このプログラムの流通は、例えば、そのプログラムを記録した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, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

本発明は、群の元に対して複数のスカラー倍を同時に行うようなデータを暗号化する装置や認証する装置に利用できる。   The present invention can be used for an apparatus for encrypting data or an apparatus for authenticating data that simultaneously performs a plurality of scalar multiplications on a group element.

100 スカラー倍演算装置
110 表現変換部
120 中間値計算部
130 元計算部
140 スカラー倍値計算部
190 記録部
100 scalar multiplication unit 110 representation conversion unit 120 intermediate value calculation unit 130 original calculation unit 140 scalar double value calculation unit 190 recording unit

Claims (10)

Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、E,…,E
Figure 0005379700

と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,…,Eをそれぞれ乗算した値であるスカラー倍値EG,…,EGを求めるスカラー倍演算装置であって、
d(m)∈{0,1,−1}として、
すべてのmについてd(m)=e(n)のときは
d(1),…,d(M)(n)=1
すべてのmについてd(m)=−e(n)のときは
d(1),…,d(M)(n)=−1
その他のときは
d(1),…,d(M)(n)=0
である中間値ed(1),…,d(M)(n)を、
d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める中間値計算部と、
前記中間値計算部で求めたd(1),…,d(M)の組合せのすべてについて、
Figure 0005379700

を求める元計算部と、
d(m)の値が1であるすべてのEd(1),…,d(M)Gの和から、d(m)の値が−1であるすべてのEd(1),…,d(M)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行うスカラー倍値計算部と、
を備えるスカラー倍演算装置。
M is an integer of 2 or more, m is an integer of 1 to M, N is a positive integer, n is an integer of 0 to N, E 1 ,..., E M
Figure 0005379700

Scalar, the original group of G which is expressed as the scalar E 1 to the original G, ..., is a value obtained by multiplying each E M scalar Baichi E 1 G, ..., scalar multiplication calculation for obtaining the E M G A device,
As d (m) ε {0,1, -1},
E d (1) when the d (m) = e m ( n) for all m, ..., d (M) (n) = 1
When d (m) = − e m (n) for all m, ed ( 1),..., D (M) (n) = − 1
In other cases, ed (1),..., D (M) (n) = 0
Intermediate values ed (1),..., D (M) (n) that are
All combinations of d (1),..., d (M) other than d (1) = 0,..., d (M) = 0 (where d ′ (1) = (− 1) × d (1) ,..., D ′ (M) = (− 1) × d (M) ed (1),..., D (M) (n) and ed ′ (1),. (N) is an intermediate value calculation unit obtained for only one),
For all combinations of d (1),..., D (M) obtained by the intermediate value calculator,
Figure 0005379700

An original calculation unit for obtaining
From the sum of all E d (1),..., d (M) G where the value of d (m) is 1, all E d (1),. d (M) a scalar multiplication value calculation unit that performs a process for subtracting the sum of G to make a scalar multiplication value E m G from m = 1 to M;
A scalar multiplication unit comprising:
Nを正の整数、nを0以上N以下の整数、E,E
Figure 0005379700

と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,Eをそれぞれ乗算した値であるスカラー倍値EG,EGを求めるスカラー倍演算装置であって、
d(1)∈{0,1,−1}、d(2)∈{0,1,−1}として、
d(1)=e(n)かつd(2)=e(n)のときは
d(1),d(2)(n)=1
d(1)=−e(n)かつd(2)=−e(n)のときは
d(1),d(2)(n)=−1
その他のときは
d(1),d(2)(n)=0
である中間値ed(1),d(2)(n)を、
d(1)=0,d(2)=0以外のすべてのd(1),d(2)の組合せ(ただし、d’(1)=(−1)×d(1)かつd’(2)=(−1)×d(2)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める中間値計算部と、
前記中間値計算部で求めたd(1),d(2)の組合せのすべてについて、
Figure 0005379700

を求める元計算部と、
d(m)の値が1であるすべてのEd(1),d(2)Gの和から、d(m)の値が−1であるすべてのEd(1),d(2)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行うスカラー倍値計算部と、
を備えるスカラー倍演算装置。
N is a positive integer, n is an integer between 0 and N, and E 1 and E 2 are
Figure 0005379700

A scalar multiplication unit for obtaining scalar double values E 1 G and E 2 G, which are values obtained by multiplying the element G by scalars E 1 and E 2 , respectively. ,
d (1) ∈ {0,1, −1}, d (2) ∈ {0,1, −1}
When d (1) = e 1 (n) and d (2) = e 2 (n), ed (1), d (2) (n) = 1
When d (1) = − e 1 (n) and d (2) = − e 2 (n), ed (1), d (2) (n) = − 1
In other cases, ed (1), d (2) (n) = 0
The intermediate values ed (1), d (2) (n) are
Any combination of d (1) and d (2) other than d (1) = 0 and d (2) = 0 (where d ′ (1) = (− 1) × d (1) and d ′ ( 2) = (− 1) × d (2) holds, ed (1),..., D (M) (n) and ed ′ (1) ,. An intermediate value calculator for
For all the combinations of d (1) and d (2) obtained by the intermediate value calculator,
Figure 0005379700

An original calculation unit for obtaining
From the sum of all E d (1), d (2) G with a d (m) value of 1, all E d (1), d (2) with a d (m) value of −1 A scalar multiple calculation unit that performs a process of subtracting the sum of G as a scalar multiple E m G from m = 1 to M;
A scalar multiplication unit comprising:
請求項1記載のスカラー倍演算装置であって、
Figure 0005379700

のように表現されるスカラーE,…,Eを、NAF法を用いて
Figure 0005379700

のように表現されるスカラーE,…,Eに変換する表現変換部
も備えることを特徴とするスカラー倍演算装置。
The scalar multiplication unit according to claim 1,
Figure 0005379700

The scalars E 1 , ..., E M expressed as
Figure 0005379700

A scalar multiplication unit comprising an expression conversion unit for converting into scalars E 1 ,..., E M expressed as follows.
請求項1記載のスカラー倍演算装置であって、
Figure 0005379700

のように表現されるスカラーE,…,Eを、Booth法を用いて
Figure 0005379700

のように表現されるスカラーE,…,Eに変換する表現変換部
も備えることを特徴とするスカラー倍演算装置。
The scalar multiplication unit according to claim 1,
Figure 0005379700

The scalars E 1 , ..., E M expressed as
Figure 0005379700

A scalar multiplication unit comprising an expression conversion unit for converting into scalars E 1 ,..., E M expressed as follows.
Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、E,…,E
Figure 0005379700

と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,…,Eをそれぞれ乗算した値であるスカラー倍値EG,…,EGを求めるスカラー倍演算方法であって、
中間値計算部が、d(m)∈{0,1,−1}として、
すべてのmについてd(m)=e(n)のときは
d(1),…,d(M)(n)=1
すべてのmについてd(m)=−e(n)のときは
d(1),…,d(M)(n)=−1
その他のときは
d(1),…,d(M)(n)=0
である中間値ed(1),…,d(M)(n)を、
d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める中間値計算ステップと、
元計算部が、前記中間値計算ステップで求めたd(1),…,d(M)の組合せのすべてについて、
Figure 0005379700

を求める元計算ステップと、
スカラー倍値計算部が、d(m)の値が1であるすべてのEd(1),…,d(M)Gの和から、d(m)の値が−1であるすべてのEd(1),…,d(M)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行うスカラー倍値計算ステップと、
を有するスカラー倍演算方法。
M is an integer of 2 or more, m is an integer of 1 to M, N is a positive integer, n is an integer of 0 to N, E 1 ,..., E M
Figure 0005379700

Scalar, the original group of G which is expressed as the scalar E 1 to the original G, ..., is a value obtained by multiplying each E M scalar Baichi E 1 G, ..., scalar multiplication calculation for obtaining the E M G A method,
The intermediate value calculation unit sets d (m) ε {0, 1, −1} as
E d (1) when the d (m) = e m ( n) for all m, ..., d (M) (n) = 1
When d (m) = − e m (n) for all m, ed ( 1),..., D (M) (n) = − 1
In other cases, ed (1),..., D (M) (n) = 0
Intermediate values ed (1),..., D (M) (n) that are
All combinations of d (1),..., d (M) other than d (1) = 0,..., d (M) = 0 (where d ′ (1) = (− 1) × d (1) ,..., D ′ (M) = (− 1) × d (M) ed (1),..., D (M) (n) and ed ′ (1),. An intermediate value calculating step for (n) is only one);
For all combinations of d (1),..., D (M) obtained by the original calculation unit in the intermediate value calculation step,
Figure 0005379700

An original calculation step for obtaining
The scalar multiple calculator calculates from the sum of all E d (1),..., D (M) G where the value of d (m) is 1, and from the sum of all E d (m) values of −1. d (1),..., d (M) Scalar multiple calculation step for performing the process of subtracting the sum of G from S = 1 to M for the scalar multiple E m G;
A scalar multiplication method having:
Nを正の整数、nを0以上N以下の整数、E,E
Figure 0005379700

と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,Eをそれぞれ乗算した値であるスカラー倍値EG,EGを求めるスカラー倍演算方法であって、
中間値計算部が、d(1)∈{0,1,−1}、d(2)∈{0,1,−1}として、
d(1)=e(n)かつd(2)=e(n)のときは
d(1),d(2)(n)=1
d(1)=−e(n)かつd(2)=−e(n)のときは
d(1),d(2)(n)=−1
その他のときは
d(1),d(2)(n)=0
である中間値ed(1),d(2)(n)を、
d(1)=0,d(2)=0以外のすべてのd(1),d(2)の組合せ(ただし、d’(1)=(−1)×d(1)かつd’(2)=(−1)×d(2)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める中間値計算ステップと、
元計算部が、前記中間値計算ステップで求めたd(1),d(2)の組合せのすべてについて、
Figure 0005379700

を求める元計算部と、
スカラー倍値計算部が、d(m)の値が1であるすべてのEd(1),d(2)Gの和から、d(m)の値が−1であるすべてのEd(1),d(2)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行うスカラー倍値計算ステップと、
を有するスカラー倍演算方法。
N is a positive integer, n is an integer between 0 and N, and E 1 and E 2 are
Figure 0005379700

A scalar multiplication method for obtaining scalar double values E 1 G and E 2 G, which are values obtained by multiplying the element G by scalars E 1 and E 2 , respectively. ,
The intermediate value calculation unit sets d (1) ε {0,1, −1} and d (2) ε {0,1, −1} as
When d (1) = e 1 (n) and d (2) = e 2 (n), ed (1), d (2) (n) = 1
When d (1) = − e 1 (n) and d (2) = − e 2 (n), ed (1), d (2) (n) = − 1
In other cases, ed (1), d (2) (n) = 0
The intermediate values ed (1), d (2) (n) are
Any combination of d (1) and d (2) other than d (1) = 0 and d (2) = 0 (where d ′ (1) = (− 1) × d (1) and d ′ ( 2) = (− 1) × d (2) holds, ed (1),..., D (M) (n) and ed ′ (1) ,. Intermediate value calculation step for (only one)
For all the combinations of d (1) and d (2) obtained by the original calculation unit in the intermediate value calculation step,
Figure 0005379700

An original calculation unit for obtaining
The scalar multiple calculator calculates from the sum of all E d (1) and d (2) G whose value of d (m) is 1, all E d ( whose value of d (m) is −1. 1), d (2) A scalar multiple calculation step in which a value obtained by subtracting the sum of G is set to a scalar multiple E m G for m = 1 to M;
A scalar multiplication method having:
請求項5記載のスカラー倍演算方法であって、
表現変換部が、
Figure 0005379700

のように表現されるスカラーE,…,Eを、NAF法を用いて
Figure 0005379700

のように表現されるスカラーE,…,Eに変換する表現変換ステップ
も有することを特徴とするスカラー倍演算方法。
The scalar multiplication method according to claim 5, wherein
The expression converter
Figure 0005379700

The scalars E 1 , ..., E M expressed as
Figure 0005379700

A scalar multiplication method characterized by having an expression conversion step of converting into scalars E 1 ,..., E M expressed as follows.
請求項5記載のスカラー倍演算方法であって、
表現変換部が、
Figure 0005379700

のように表現されるスカラーE,…,Eを、Booth法を用いて
Figure 0005379700

のように表現されるスカラーE,…,Eに変換する表現変換ステップ
も有することを特徴とするスカラー倍演算方法。
The scalar multiplication method according to claim 5, wherein
The expression converter
Figure 0005379700

The scalars E 1 , ..., E M expressed as
Figure 0005379700

A scalar multiplication method characterized by having an expression conversion step of converting into scalars E 1 ,..., E M expressed as follows.
請求項1から4のいずれかに記載のスカラー倍演算装置としてコンピュータを動作させるためのスカラー倍演算プログラム。   A scalar multiplication operation program for operating a computer as the scalar multiplication apparatus according to claim 1. 請求項9記載のスカラー倍演算プログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the scalar multiplication program according to claim 9 is recorded.
JP2010003295A 2010-01-08 2010-01-08 Scalar multiplication unit, scalar multiplication method, scalar multiplication program, recording medium Active JP5379700B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010003295A JP5379700B2 (en) 2010-01-08 2010-01-08 Scalar multiplication unit, scalar multiplication method, scalar multiplication program, recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010003295A JP5379700B2 (en) 2010-01-08 2010-01-08 Scalar multiplication unit, scalar multiplication method, scalar multiplication program, recording medium

Publications (2)

Publication Number Publication Date
JP2011141488A JP2011141488A (en) 2011-07-21
JP5379700B2 true JP5379700B2 (en) 2013-12-25

Family

ID=44457361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010003295A Active JP5379700B2 (en) 2010-01-08 2010-01-08 Scalar multiplication unit, scalar multiplication method, scalar multiplication program, recording medium

Country Status (1)

Country Link
JP (1) JP5379700B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3797808B2 (en) * 1998-10-27 2006-07-19 富士通株式会社 Scalar multiplication method and apparatus

Also Published As

Publication number Publication date
JP2011141488A (en) 2011-07-21

Similar Documents

Publication Publication Date Title
Sion et al. On the computational practicality of private information retrieval
Campbell Sr Evaluation of post-quantum distributed ledger cryptography
Kuang et al. A new quantum-safe multivariate polynomial public key digital signature algorithm
Zhang et al. {FLASH}: Towards a high-performance hardware acceleration architecture for cross-silo federated learning
US12231562B2 (en) System and method to optimize decryption operations in cryptographic applications
US11902432B2 (en) System and method to optimize generation of coprime numbers in cryptographic applications
US20220085998A1 (en) System and method to generate prime numbers in cryptographic applications
JP5328993B2 (en) Signature generation apparatus, signature generation method, and recording medium
Balasubramaniam et al. Elliptic curve scalar multiplication algorithm using complementary recoding
JPWO2019087317A1 (en) Secret calculators, systems, methods, programs
JP2020519968A (en) Bit decomposition secret calculation device, bit combination secret calculation device, method and program
Dong et al. sDPF-RSA: Utilizing floating-point computing power of GPUs for massive digital signature computations
Hu et al. The analysis and investigation of multiplicative inverse searching methods in the ring of integers modulo m
Riasi et al. Privacy-preserving verifiable neural network inference service
Vollala et al. Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography
Bardis Secure, green implementation of modular arithmetic operations for IoT and cloud applications
Jahani et al. Efficient big integer multiplication and squaring algorithms for cryptographic applications
CN111740821B (en) Method and device for establishing shared secret key
Song et al. Parallel RSA encryption algorithm based on a ternary optical computer
CN113179151A (en) Universal software implementation method for middle-up rounding learning in post-quantum cryptography construction
JP5379700B2 (en) Scalar multiplication unit, scalar multiplication method, scalar multiplication program, recording medium
JP2018205511A (en) Parameter conversion method, parameter conversion device, parameter conversion program, pairing operation method, pairing operation device and pairing operation program
JP4690819B2 (en) Scalar multiplication calculation method and scalar multiplication calculation apparatus in elliptic curve cryptography
CN120513602A (en) Improved blockchain system and method
JP5253456B2 (en) Common key generation system and common key generation method

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110624

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130904

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130927

R150 Certificate of patent or registration of utility model

Ref document number: 5379700

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350