JP2002040938A - Cyclic window adding device, method therefor and recording medium with program thereof - Google Patents

Cyclic window adding device, method therefor and recording medium with program thereof

Info

Publication number
JP2002040938A
JP2002040938A JP2000229611A JP2000229611A JP2002040938A JP 2002040938 A JP2002040938 A JP 2002040938A JP 2000229611 A JP2000229611 A JP 2000229611A JP 2000229611 A JP2000229611 A JP 2000229611A JP 2002040938 A JP2002040938 A JP 2002040938A
Authority
JP
Japan
Prior art keywords
storage unit
unit
updated
input
log
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
JP2000229611A
Other languages
Japanese (ja)
Other versions
JP3604126B2 (en
Inventor
Kazumaro Aoki
和麻呂 青木
Fumisato Hoshino
文学 星野
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 JP2000229611A priority Critical patent/JP3604126B2/en
Publication of JP2002040938A publication Critical patent/JP2002040938A/en
Application granted granted Critical
Publication of JP3604126B2 publication Critical patent/JP3604126B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce elliptic addition and subtraction in multiplying an element P on a Z module M by k (is element of Z). SOLUTION: This cyclic window adding device obtains Ci,j} satisfying k=Σi0m'-1Σj0n'-1Ci,jDjϕi (Ci,j is element of -1, 0, 1}); calculates Qb=(Vb.Φb) (P) to two or more b; (Φb=Φ0, Φ1, ...ΦB+1), vi= (Vb,0'Vb,1' ..., Vb,B+1, B=[log3b] (omission of decimal fractions), log30=-1, Vb,h=1 at h≠0, Vb,h=[b/3h-1]mod3, mod is set to 0, 1, and -1, vb.Φb=Σh0B+1Vb,hΦh), R←0, j←n'-1 initializing, and while ±1 are contained in Ci,j}i-0m'-1, the device seeks b, e, and i satisfying Ci+h,j=(-1)eVb,h to all h(0<=h<=B+1) of Vb,h≠0 about each vb; performs Ci+h,j←Cb+h,j-(-1)evb,hm R←R+(-1)e ϕi(Qb); if j>=0,j←j-1 is carried out; coincidence with the preceding vb is repeatedly sought by setting R←DR; and the device outputs R=kP at j=0.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、例えば情報セキ
ュリティ技術で用いられる楕円暗号に適用され、Z加群
M上の元Pをスカラーk(∈Z)倍する循環窓加算装
置、その方法及びそのプログラム記録媒体に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention is applied to, for example, elliptic cryptography used in information security technology, and applies to a cyclic window adding apparatus for multiplying an element P on a Z-module M by a scalar k (∈Z), a method thereof, and a method thereof. The present invention relates to a program recording medium.

【0002】[0002]

【従来の技術】近年、インターネットなどの発達により
様々な情報を公衆回線を用い、やり取りすることが増え
た。公衆回線は誰でも利用できることから中継情報の盗
聴・改竄(かいざん)などを容易に行なうことができ
る。盗聴のような悪意ある行動に対抗するためには情報
セキュリティ(安全性)技術が有効である。従来、情報
セキュリティ技術の実現に冪乗剰余演算がよく用いられ
てきたが、近年、鍵と呼ばれる秘密に保持すべき情報を
少なくできることや、高速性などから有限体上の楕円曲
線のなす群を用いた方式、すなわち楕円暗号が注目され
ている。
2. Description of the Related Art In recent years, with the development of the Internet and the like, various types of information have been exchanged using a public line. Since the public line can be used by anyone, the relay information can be easily eavesdropped or falsified. Information security (security) technology is effective in combating malicious behavior such as eavesdropping. Conventionally, modular exponentiation has often been used to implement information security technology.In recent years, however, the number of elliptic curves on a finite field has been reduced due to the fact that the amount of information that must be kept secret, called the key, can be reduced, and the speed is high. Attention has been paid to the method used, that is, elliptical encryption.

【0003】暗号に用いる楕円曲線は定義体と呼ばれる
有限体GF(q)上で定義される楕円曲線E/GF
(q)の、GF(qm )有理点からなる群E(GF(q
m ))を用いることが殆んどである。楕円暗号の殆んど
は、群E(GF(qm ))をZ加群とみなし、このZ加
群上のスカラー倍演算、つまり楕円曲線上の点P∈E
(GF(qm ))とスカラーk∈Zに対してkPを求め
ること、を多用することにより実現している。そのた
め、スカラー倍演算を高速に実現する研究が数多く行な
われてきた。
An elliptic curve used for encryption is an elliptic curve E / GF defined on a finite field GF (q) called a definition field.
The group E (GF (q (q)) of (q) consisting of GF (q m ) rational points
m )) is mostly used. Most of the elliptic cryptosystems regard the group E (GF (q m )) as a Z-module and perform a scalar multiplication operation on the Z-module, that is, a point P∈E on the elliptic curve.
(GF (q m )) and obtaining kP for the scalar k∈Z are realized by frequently using. Therefore, many studies have been conducted to realize scalar multiplication at high speed.

【0004】ソフトウェアでスカラー倍を高速に実現す
る方法として文献「Neal Koblitz:“CM-CURVES WITH G
OOD CRYPTOGRAPHIC PROPERTIES,”Advances in Cryptol
ogy−CRYPTO'91,Lecture Notes in Computer Science 5
76,pp.279-287,Springer-Verlag,1992」(以下「文献
C」と略す)で提案されたφ進展開法が有力である。φ
進展開法は、楕円曲線E/GF(q)上のFrobenius写
像と呼ばれる自己準同型写像 φ:E(GF(qm ))→E(GF(qm )) ∀P,Q∈E(GF(qm ))[φ(P+Q)=φ
(P)+φ(Q)] (なお∀x F(x)はすべてのxに対してF(x)を意
味する)を利用する。楕円2倍算より高速な楕円φ倍算
を、2倍算の代わりに使うことによりスカラー倍を高速
化する。
[0004] As a method of realizing scalar multiplication at high speed by software, a document "Neal Koblitz:" CM-CURVES WITH G
OOD CRYPTOGRAPHIC PROPERTIES, ”Advances in Cryptol
ogy-CRYPTO'91, Lecture Notes in Computer Science 5
76, pp. 279-287, Springer-Verlag, 1992 ”(hereinafter abbreviated as“ Reference C ”) is effective. φ
Adic expansion method, endomorphism called the Frobenius mapping on an elliptic curve E / GF (q) φ: E (GF (q m)) → E (GF (q m)) ∀P, Q∈E (GF (Q m )) [φ (P + Q) = φ
(P) + φ (Q)] (where ∀x F (x) means F (x) for all x). The scalar multiplication is speeded up by using the elliptic φ multiplication faster than the ellipse doubling instead of the doubling.

【0005】文献Cの方法では利用できる定義体として
GF(2)が用いられたが、文献「Volker Mueller:“F
ast Multiplication on Elliptic Curves over Small F
ields of Characteristic Two,”pp.219-234, Journal
of Cryptologoy,no.4,vol.11, Springer,1998」で、q
=2e (eは小)に拡張され、さらに文献「Tetsutarou
Kobayashi, et al.:“Fast Elliptic Curve Algorithm
Combining FrobeniusMap and Table Reference to Ada
pt to Higher Characteristic,”Advances inCryptolog
y-EUROCRYPT '99,Lecture Notes in Computer Science
1592,pp.176-189,Springer-Verlag,1999」(以下「文献
E」と略す)で、qが一般の場合に拡張された。
[0005] In the method of Reference C, GF (2) was used as a usable definition field, but the reference "Volker Mueller:" F
ast Multiplication on Elliptic Curves over Small F
ields of Characteristic Two, ”pp.219-234, Journal
of Cryptologoy, no.4, vol.11, Springer, 1998 ''
= 2 e (e is small), and the document "Tetsutarou
Kobayashi, et al .: “Fast Elliptic Curve Algorithm
Combining FrobeniusMap and Table Reference to Ada
pt to Higher Characteristic, ”Advances inCryptolog
y-EUROCRYPT '99, Lecture Notes in Computer Science
1592, pp. 176-189, Springer-Verlag, 1999 ”(hereinafter abbreviated as“ Reference E ”), and q is extended to a general case.

【0006】上記φ進展開法の概要は以下の通りであ
る。 Step1:kをφ進展開する。つまり、 k=Σi=0 m'-1Σj=0 n'-1i,j j φi (ci,j ∈{−1,0,1}) (1) を満たす{ci,j }を求める。 Step2:式(1)を利用し kP=(Σi=0 m'-1Σj=0 n'-1i,j j φi )(P) =Σi=0 m'-1Σj=0 n'-1i,j j φi (P) (2 ) を求める。
[0006] The outline of the φ-advancing method is as follows. Step 1: k is expanded in φ. That, k = Σ i = 0 m' -1 Σ j = 0 n'-1 c i, j 2 j φ i (c i, j ∈ {-1,0,1}) satisfying the (1) {c i, j }. Step 2: Using equation (1), kP = (Σ i = 0 m′− j = 0 n′−1 ci , j 2 j φ i ) (P) = Σ i = 0 m′−1Σ j = 0 n′-1 ci , j 2 j φ i (P) (2) is obtained.

【0007】式(1)は、「k倍演算」という意味での
E(GF(qm ))上の自己準同型写像としての等号で
ある。また、m′≧2、n′≧1である。この発明では
φ進展開しか扱わないので、φ進展開となっていない
m′=1の場合は扱わない。Step2の具体的な計算
については、{ci,j }の構造により様々な最適化手法
がある。文献Eの方法は次の通りである。式(2)は有
限和であることからΣの順序を換えても結果は変わらな
い。従って、 kP=Σj=0 n'-1j Σi=0 m'-1i,j φi (P) となる。この式から、以下の処理が導かれる。
Equation (1) is an equal sign as an automorphism on E (GF (q m )) in the sense of “k-times operation”. Further, m ′ ≧ 2 and n ′ ≧ 1. In the present invention, since only φ-base expansion is handled, the case of m ′ = 1 not being φ-base expansion is not handled. For the specific calculation of Step 2, there are various optimization methods depending on the structure of {ci , j }. The method of Document E is as follows. Since the expression (2) is a finite sum, the result does not change even if the order of Σ is changed. Therefore, kP = Σ j = 0 n'- 1 2 j Σ i = 0 m'-1 c i, j φ i (P). The following processing is derived from this equation.

【0008】Step1:R←Ο,j←n′−1に初期
化。 Step2:i=0,1,…,m′−1に対して、 R←R+φi (P)ci,j =1の場合 R←R−φi (P)ci,j =−1の場合 何もしない ci,j =0の場合 とする。
Step 1: Initialized to R ← Ο, j ← n′−1. Step2: i = 0,1, ..., with respect to m'-1, R ← R + φ i (P) c i, if the j = 1 R ← R-φ i (P) c i, for j = -1 Case Nothing. Case where c i, j = 0.

【0009】Step3:j=0ならR(=kP)を出
力して終了。j>0なら R←2R, j←j−1 とし、Step2に戻る。ここでΟはE(GF
(qm ))の単位元を表す。この文献Eの方法は、式
(1)で、一様にランダムなkに対しci,j ≠0となる
i,j を平均的には全体の約1/3にできることがわか
っているのでこの場合の平均計算量は以下の通りであ
る。
Step 3: If j = 0, output R (= kP) and end. If j> 0, R ← 2R, j ← j−1, and the process returns to Step 2. Where Ο is E (GF
(Q m )). The method of this document E is the formula (1), uniformly random k to c i, j ≠ 0 become c i, the average of j are found to be about 1/3 of the total Therefore, the average calculation amount in this case is as follows.

【0010】楕円加減算 m′n′/3回 楕円2倍算 n′−1回 なお、φi 倍は高速に計算可能であるから上記計算量に
含めていない。
Ellipse addition / subtraction m'n '/ 3 times Ellipse doubling n'-1 times Since φ i times can be calculated at high speed, it is not included in the above calculation amount.

【0011】[0011]

【発明が解決しようとする課題】文献Eの方法のSte
p2では、異なるjに対して、全く同じ加算、例えば、 R←R+(φ1 (P)+φ2 (P)) を複数回行なうことがある。冗長な同じ加算を行なわな
いようにするためには、上記例の場合一旦φ1 (P)+
φ2 (P)を計算し記録しておき、φ1 (P)+φ
2 (P)が必要になったときにこの記録された値を読み
だしてRに加算することにより冗長な加算を行なわない
ようにすることができる。
SUMMARY OF THE INVENTION
At p2, the same addition, for example, R ← R + (φ 1 (P) + φ 2 (P)) may be performed a plurality of times for different j. In order to prevent the same redundant addition, φ 1 (P) +
Calculate and record φ 2 (P), φ 1 (P) + φ
When 2 (P) is needed, the recorded value is read out and added to R, so that redundant addition can be prevented.

【0012】一般的に冗長な加算を行なわないためには
Step2より前に、あり得る全ての
Generally, before Step 2, all possible additions are performed in order to avoid redundant addition.

【0013】[0013]

【数1】 (Equation 1)

【0014】を計算しておくことが考えられるが、この
計算自体に時間がかかってしまい、結果として全体の計
算が遅くなってしまう。この発明の目的は、φ進展開法
を用いてPをk倍演算する際に冗長な加算を効率的に減
らすことができる循環窓加算装置、その方法及びそのプ
ログラム記録媒体を提供することにある。
It is conceivable that the calculation is performed in advance, but this calculation itself takes a long time, and as a result, the whole calculation becomes slow. SUMMARY OF THE INVENTION It is an object of the present invention to provide a cyclic window adding apparatus, a method thereof, and a program recording medium capable of efficiently reducing redundant additions when calculating P times k using the φ-adic expansion method. .

【0015】[0015]

【課題を解決するための手段】[Means for Solving the Problems]

【0016】[0016]

【数2】 (Equation 2)

【0017】[0017]

【発明の実施の形態】以下ではこの発明の実施例を示
す。第1の実施例[一般] 図1にこの発明による循環窓加算装置であるスカラー倍
装置10の実施例を示す。この装置10は、φ倍及びd
倍演算を有するZ加群M上の元Pとスカラーk∈Zを入
力し、スカラー倍kPを出力する。二つの値例えばPと
Qが入力されてP+Q又はP−Qを出力する加減算部1
1、Pが入力されてそのd倍値dPを出力するd倍演算
部12、iとPが入力されてφi(P)を出力するφi
演算部13、記憶部14、kが入力されて{ci,j }を
出力するφ進展開部15が制御部16に接続され、制御
部16はこの装置10に入力されたk,Pを記憶部14
に格納し、記憶部14から所要のデータを取出して、各
部へ入力させて、所望の処理を行わせ、その結果(出
力)を記憶部に格納して、各部を制御してkP値を得て
出力する。
Embodiments of the present invention will be described below. First Embodiment [General] FIG. 1 shows an embodiment of a scalar multiplication device 10 which is a cyclic window addition device according to the present invention. This device 10 has φ times and d
An element P on a Z module M having a multiplication operation and a scalar k∈Z are input, and a scalar multiplication kP is output. Addition / subtraction unit 1 that receives two values, eg, P and Q, and outputs P + Q or P−Q
1, d multiplication unit 12, i and P are inputted phi i (P) and outputs the phi i multiplication unit 13 which P is input and outputs the d multiplication value dP, storage unit 14, k is input The φ-advancing unit 15 that outputs {c i, j } is connected to the control unit 16, and the control unit 16 stores k and P input to the device 10 in the storage unit 14.
, And necessary data is taken out from the storage unit 14 and input to each unit to perform desired processing. The result (output) is stored in the storage unit, and each unit is controlled to obtain a kP value. Output.

【0018】図1中の各部はMに合わせて設定されてい
るものとする。このスカラー倍装置10を機能的に表わ
すと図2に示すようになる。つまりd倍演算部12、記
憶部14、φ進展開部15、制御部16を同様に備える
が、Qb演算部21、探索部22、ci,j更新部23、R
更新部24が設けられる。この発明では、QbをQb演算
部21で演算し、このQbを利用して、演算を簡単にし
ている。従って、まずQbはどのようなものであるかを
以下に示す。
Each part in FIG. 1 is set in accordance with M. The scalar multiplication device 10 is functionally represented as shown in FIG. That d multiplication unit 12, a storage unit 14, phi-adic expansion section 15, but includes as well a control unit 16, Q b calculation unit 21, the search unit 22, c i, j updating unit 23, R
An update unit 24 is provided. In the present invention, the Q b is calculated by Q b calculation unit 21, by using this Q b, which simplifies operation. Therefore, first, what kind of Qb is shown below.

【0019】Log30=−1とし、以下のベクトルを定義
する。 Φb ={φh h=0 B+1=(φ0 1 ,…,φB+1 ) vb ={vb,hh=0 B+1=(vb,0 ,vb,1 ,…,v
b,B+1 ) 但し、B=[log3 b]、つまりBはlog3 bの小数以下
を切捨てたものである。 h=0の場合 vb,h =1 h≠0の場合 vb,h =[b/(3h-1 )]mod3 とする。ここで剰余modは0,1,−1を取るものとす
る。つまり2の代りに−1とおいた。
Assuming that Log 30 = −1, the following vector is defined. Φ b = {φ hh = 0 B + 1 = (φ 0 , φ 1 , ..., φ B + 1 ) v b = {v b, hh = 0 B + 1 = (v b, 0 , v b, 1 , ..., v
b, B + 1 ) where B = [log 3 b], that is, B is a value obtained by truncating a fraction of log 3 b. When h = 0, v b, h = 1 When h ≠ 0, let v b, h = [b / (3 h−1 )] mod3. Here, the remainder mod takes 0, 1, and -1. That is, -1 was used instead of 2.

【0020】また、vbとΦb の形式的内積vb・Φb
以下の通り定義する。 vb・Φb =Σh=0 B+1b,h φh さらに、 Qb =(vb・Φb )(P) wH (vb )=Σh=0 B+1|vb,h | とおく。
[0020] In addition, the v b and Φ b formal inner product v b · Φ b of the definition as follows. v b · Φ b = Σ h = 0 B + 1 v b, h φ h Furthermore, Q b = (v b · Φ b ) (P) w H (v b ) = Σ h = 0 B + 1 | v b, h |

【0021】図1及び図2に示したスカラー倍装置は、
以下の通り動作する。また、この動作の流れを図3に示
す。 Step1:Z加群M上の元Pとスカラーkが入力され
ると記憶部14に格納する。 Step2:φ進展開部15はkを入力し k=Σi=0 m'-1Σj=0 n'-1i,j j φi (ci,j ∈{−
1,0,1}) を満たす{ci,j }を求めて出力し、{ci,j }は記憶
部14に格納される。
The scalar multiplication device shown in FIGS.
It works as follows. FIG. 3 shows the flow of this operation. Step 1: When the element P and the scalar k on the Z module M are input, they are stored in the storage unit 14. Step2: phi adic expansion unit 15 inputs the k k = Σ i = 0 m' -1 Σ j = 0 n'-1 c i, j d j φ i (c i, j ∈ {-
{C i, j } that satisfies (1,0,1)) is obtained and output, and {c i, j } is stored in the storage unit 14.

【0022】Step3:いくつかのbに対して、加減
算部11、φi 倍演算部13を用いてQb 演算部21で
それぞれのQb を計算し、これらQb とその計算に用い
たv b を記憶部14に記憶する。但し、Q0 は必ず準備
する。このQ0 はQb の定義からPに等しい。 Step4:R←Ο,j←n′−1に初期化し、記憶部
14に記憶する。 Step5:{ci,j i=0 m'-1(=(c0,j ,c1,j
…,cm'-1,j))に±1が含まれている間、以下を繰り
返す。
Step 3: For some b, add or subtract
Arithmetic unit 11, φiQ using the multiplication unit 13b In the calculation unit 21
Each Qb And calculate these Qb And used to calculate
V b Is stored in the storage unit 14. However, Q0Is always ready
I do. This Q0Is QbEqual to P from the definition of Step 4: Initialize to R ← Ο, j ← n′−1, and store
14 is stored. Step5: $ ci, ji = 0 m'-1(= (C0, j , C1, j,
…, Cm'-1, jWhile)) contains ± 1, repeat the following.
return.

【0023】Step5−1:まず{ci,j i=0 m'-1
に±1が含まれているかを調べ、含まれていればSte
p5−2に移り、含まれていなければStep6に移
る。 Step5−2:記憶部14に記憶されているQb に対
しwH (vb )の大きな順に、各vb についてvb,h
0の全てのh(0≦h≦B+1)に対して、 ci+h,j=(−1)e b,h となるb,e,iを探す。eは0又は1である。
Step 5-1: First, {ci , j } i = 0 m'-1
Check if ± 1 is included in
The process proceeds to p5-2, and if not included, the process proceeds to Step6. Step 5-2: v b, hに つ い て for each v b in the descending order of w H (v b ) with respect to Q b stored in the storage unit 14
For all h of 0 (0 ≦ h ≦ B + 1), c i + h, j = (- 1) e v b, a h b, e, looking for i. e is 0 or 1.

【0024】つまり、まずj=n′−1であるから、係
数ci,jは図4に示すように、m′×n′個あり、その
j=n′−1のベクトル{ci,n'-1 i=0 m'-1=(c
0, n' -1,c1,n'-1 ,c2,n'-1 ,…,cm'-1, n'-1
を記憶部14から取出し、また、wH(vb)の大きい
順、つまり1と−1の数が多い順にvbを取出し、
b,0,vb,1,vb,2,…,vb,B-1その1又は−1、つ
まり0以外のもの(e=0)又はその符号を反転したも
の(e=1)についてその配列位置を保持した状態で、
{ci,n'-1 i=0 m'-1の配列中に同一のものが存在す
るかを、i=0から始まる配列から、順次iを+1した
配列と比較して探し、存在すればその時のiの値と、e
の値と、vbのbを出力する。例えばci,n'-1 が図5A
に示す列であり、v bが図5Bに示すようにv12
(1,0,0,−1)である場合に、このv12の始めを
i,n'-1 のi=0に合せて(図5B)、vb,h≠0が全
て一致しているかを調べ、一致していないので図5Cに
示すようにci,n'-1 のi=1にvbの始めを合せて比較
し、一致していないので図5Dに示すようにci,n'-1
のi=2にvbの始めを合わせてる。この時vb中のv
b,0=1とvb,3=−1とが{ci,n'-1 }中のc2,n'-1
=1、c5,n'-1 =−1とそれぞれ一致する。これによ
りそのbとe=0とi=2で一致が見い出されたことに
なる。
That is, since j = n′−1,
Number ci, jAre m ′ × n ′ as shown in FIG.
The vector {c of j = n'-1i, n'-1i = 0 m'-1= (C
0, n ' -1, C1, n'-1, C2, n'-1, ..., cm'-1, n'-1)
From the storage unit 14, and wH(VbLarge)
V, in the order of the number of 1 andbTake out,
vb, 0, Vb, 1, vb, 2, ..., vb, B-11 or -1
Something other than 0 (e = 0) or its sign inverted
(E = 1), while maintaining its array position,
{Ci, n'-1i = 0 m'-1Identical in the sequence of
Or i is incremented by 1 from the array starting from i = 0.
The array is searched for, and if present, the value of i at that time and e
And the value of vbIs output. For example, ci, n'-1Is FIG. 5A
And v bIs v as shown in FIG. 5B.12=
If (1,0,0, -1), this v12The beginning of
ci, n'-1According to i = 0 (FIG. 5B), vb, h$ 0 is all
To see if they match, and since they do not match,
C as showni, n'-1V for i = 1bCompare with the beginning of
However, since they do not match, as shown in FIG.i, n'-1
To i = 2bAt the beginning of Then vbV in
b, 0= 1 and vb, 3= -1 and {ci, n'-1 C inside c2, n'-1
= 1, c5, n'-1= -1. This
And that coincidence was found at b, e = 0 and i = 2.
Become.

【0025】このように一致するか否かをiの値を順次
ずらして行う。一致するものが存在しなければ、Ste
p5−2に戻り、次にwH(vb)の大きいvbについて
同様に、一致するものを探す。このb,e,iの探索は
図2中の探索部22で行う。なおvbの取出しは、w
H(vb)の大きい順から行わなくてもよいが、w
H(v b)の大きな順から行った方が効率がよいことが多
い。 Step5−3:Step5−2でb,e,iが見つか
った場合、 ・ci+h,j←ci+h,j−(−1)e b,h 0≦h≦
[log3 b]+1となる全てのh 例えば、図5Bに示すようなvb=(1,0,0,−
1)について、図5Aに示すようなあるjに対する{c
i,j i=0 m'-1のi=2、e=0でvbのvb,h≠0の要
素が一致した場合に、その{ci,j i=0 m'-1から一致
した部分のvb,h≠0を引いて0として図5Eに示すよ
うに{ci,j i=0 m-1を更新する。この更新は図2中
のci,j更新部23で行う。 ・R←R+(−1)e φi (Qb ) をφi 倍演算部13、加減算部11を用いて、つまり図
2中のR更新部24で計算して記憶部14中のRを更新
する。図5に示した例ではi=2でvb と一致が得られ
たのであるからQb にφ2をほどこしたものを記憶部1
4中のRに加算すればよい。Step5−3が終了する
と、Step5−1に戻り同様のことを行う。取出した
j=n′−1の係数列{ci,j i=0 m'-1に±1がなく
なれば、その列に対するΣi=0 m'-1i,j φi (P)の
計算がなされたことになる。
The value of i is sequentially determined as to whether or not they match as described above.
Do it with a stagger. If no match exists, Ste
Return to p5-2 and then wH(VbLarge v)babout
Similarly, look for a match. This search for b, e, i
This is performed by the search unit 22 in FIG. Note that vbTake out w
H(Vb) Does not have to be performed in descending order.
H(V b) Is often more efficient
No. Step5-3: b, e, and i are found in Step5-2
・ Ci + h, j← ci + h, j-(-1)evb, h 0 ≦ h ≦
[LogThreeb] +1 for all h For example, v as shown in FIG. 5Bb= (1,0,0,-
For 1), Δc for some j as shown in FIG. 5A
i, ji = 0 m'-1I = 2, e = 0 and vbVb, hEssential for $ 0
If the primes match,i, ji = 0 m'-1Match from
Vb, hSubtract ≠ 0 and set it to 0 as shown in Figure 5E
Sea urchin ci, ji = 0 m-1To update. This update is shown in FIG.
Of ci, jThis is performed by the update unit 23.・ R ← R + (-1)eφi(Qb) Is φiUsing the multiplication unit 13 and the addition / subtraction unit 11,
2 and updates the R in the storage unit 14 by calculating in the R updating unit 24 in
I do. In the example shown in FIG. 5, i = 2 and vbAnd match
QbTo φTwoStorage unit 1
4 may be added to R. Step5-3 ends
And returns to Step 5-1 to perform the same operation. Taken out
j = n'-1 coefficient sequence {ci, ji = 0 m'-1Without ± 1
If so, Σi = 0 m'-1ci, jφi(P)
The calculations have been made.

【0026】Step6−1:j=0であるかを調べ、 Step6−2:j=0ならR(=kP)を出力して終
了。 Step6−3:j>0ならd倍演算部12を用いてR
をd倍してR←dRと更新し、またjも−1して、つま
りj←j−1と更新してStep5に戻る。即ちj=
n′−2について、Step5の処理を行い、これが終
了した時は(Σi= 0 m'-1i, n'-1 n'-1φi (P))
+(Σi=0 m'-1i,n'-2n'-2φi(P))が求まり、以
下同様のことを繰り返してkP=Σj=0 n'-1 Σi=0 m'-1
i,jiφi(P)が求まる。
Step 6-1: Check whether j = 0. Step 6-2: If j = 0, output R (= kP) and end. Step 6-3: If j> 0, use the d-times operation unit 12 to
Is multiplied by d and updated to R ← dR, and j is also decremented by 1, ie, updated to j ← j−1, and the process returns to Step 5. That is, j =
The processing of Step 5 is performed for n′−2, and when this is completed, (Σ i = 0 m′−1 ci , n′−1 d n′−1 φ i (P))
+ (Σ i = 0 m′−1 c i, n′−2 d n′−2 φ i (P)) is obtained and kP = こ と j = 0 n′−1 Σ i = 0 m'-1
c i, j d i φ i (P) is obtained.

【0027】以上のようにして予め求めたQb を何回も
利用すればする程、文献Eの方法よりも計算量が少なく
て済む。上記Step5−2について、b,e,iはこ
のStepに書いてある条件の範囲内でどのように探し
てもよいが、より具体的には例えば以下のように探すこ
ともできる(図6参照)。記憶部14に記憶されている
b のvb について、wH (vb )の大きな順に並べた
集合を{b1 ,b2 ,…,bs }とする。
The more also if use more way previously determined Q b many times, it requires less calculation amount than the method of the literature E. Regarding Step 5-2, b, e, and i may be searched in any manner within the range of the condition written in this Step, but more specifically, for example, the following search may be performed (see FIG. 6). ). For v b of Q b stored in the storage unit 14, a set arranged in descending order of w H (v b ) is set as {b 1 , b 2 ,..., B s }.

【0028】S−1.r←0に初期化する。 S−2.i←0に初期化する。 S−3.e←0に初期化する。 S−4.vbr,h≠0となる全てのh(0≦h≦[log3
r ]+1)に対し、 ci+h,j=(−1)e br,hとなればその時のb=
r ,i,eを出力して終了。
S-1. Initialize to r ← 0. S-2. Initialize to i ← 0. S-3. Initialize to e ← 0. S-4. vb r, all h which becomes h ≠ 0 (0 ≦ h ≦ [log 3
b r] for +1), c i + h, j = (- 1) e v br, at that time if the h b =
Output b r , i, e and end.

【0029】S−5.S−4で一致が得られなければe
←e+1とし、e<2であれば、S−4に戻る。 S−6.S−5でe<2でなければi←i+1とし、i
<m′であれば、S−3に戻る。 S−7.S−6でi<m′でなければr←r+1とし、
r≦sであれば、S−2に戻る。第2の実施例[window size小] 第1の実施例のStep3のいくつかのbとして、小さ
い順に選ぶ。
S-5. If no match is obtained in S-4, e
← e + 1, and if e <2, the process returns to S-4. S-6. If e <2 in S-5, i ← i + 1, i
If <m ', the process returns to S-3. S-7. Unless i <m 'in S-6, r ← r + 1 is set,
If r ≦ s, the process returns to S-2. Second embodiment [small window size] As some b in Step 3 of the first embodiment, small windows are selected in ascending order.

【0030】この実施例は、m′が有限であり、かつ非
ゼロのci,j が少ない場合に、bが大きいものはSte
p5−2でマッチする確率が低いので、bとして小さい
順、例えば1,2,3,…に選ぶことが有効である。さ
らに、それぞれのbに対するQb を計算する際に、既に
計算したQb'に対し ∃b'<b[wH (vb'−vb )=1] であるので、つまりvb'とvb との差のハミング重みが
1となるものが必ず存在するので、Qb'に(−1)eφi
(P)を加算することによりQb を計算できる。よって
bの計算量を削減できる。
In this embodiment, when m 'is finite and non-zero c i, j is small, those with large b are set to Ste.
Since the probability of a match at p5-2 is low, it is effective to select b in ascending order, for example, 1, 2, 3,. Furthermore, when calculating Q b for each b, 'because it is [(-v b = 1, that is v b' ∃b to 'Q b which have already been calculated <b w H v b)] ' and Since there always exists a Hamming weight whose difference from v b is 1, the Q b ′ is (−1) e φ i
(P) can be calculated Q b by adding. Thus the calculation volume can be decreased for Q b.

【0031】このQbの計算手順は例えば図7に示すよ
うに、まずbを小さい順に並べ(S1)、次にその並べ
た順に小さい方から1つbを選択し(S2)、その選択
したbのvbと、既に計算したQb'のvb'とのベクトル
差のハミング重みが1となるかを確め(S3)、前記ハ
ミング重みが1となれば、そのvb'について既に計算し
たQb'に(−1)eφi(P)を加算してQbを求める
(S4)。Qbの計算後、全てのbを選択したかを調
べ、また選択していないbがあればステップS2に戻
り、全て選択し、全てのQbを求めたならば終了する
(S5)。
As shown in calculation procedure example 7 of this Q b, arranged firstly b in ascending order (S1), then select one b from the smaller to the side-by-side order (S2), and the selected and b v b, already the ascertained whether the 1 Hamming weight of the vector difference of 'v b' of the calculated Q b (S3), if the Hamming weight is one, already for the v b ' calculated on Q b 'by adding the (-1) e φ i (P ) obtaining the Q b (S4). After the calculation of Q b, examine whether it has selected all of b, also if b is not selected the process returns to step S2, all selected, and ends if called for all Q b (S5).

【0032】なお一般にQbを求める際に、既に求まっ
ているQb'に対し(−1)eφi(P)を加算することに
より計算量を削減できる。例えば図7中のステップS3
で∃Qb',e,i[Qb=Qb'+(−1)eφi(P)]
(b′<b)となるQb'があるかを調べ、Qb'があれば
b=Qb'+(−1)eφi(P)によりQb を求める。
例えばQ1 =P+φPであり、Q7 =P+φP−φ2
であるが、Q7 の計算をQ 7 =Q1+(−1)1φ2 Pの
計算により求める。第3の実施例[wH(b) + window size小] 第1の実施例のStep3のいくつかのbとして、wH
(vb)+log2(b)の小さい順に選ぶ。この場合logの
値として2に限らず、3、5などでもよく、要はvb
ハミング重みと、vbの要素数とを重み付けて加算し、
その小さい順にbを選べばよい。つまりvbの要素数[lo
g3 b]+1が大でもその要素vb,h中に0のものを多く
含む場合はQbを求めておき、これを利用してもkPの
計算の量の削減に大きく寄与しない。その点でw
H(vb)が大きくかつlog2(b)が小さい方がよい。こ
の場合はwH(vb)+log2(b)の小さい順に並べ図7
に示したと同様の手順でQbを求めることができる。第4の実施例[φm=1(楕円曲線)] 計算対象のZ加群MとP(∈M)によっては、φ
m(P)=Pを満たす場合がある。この場合は、m′=
mととることができる。一般にはb≠b′に対して、 ∀i≠0[Qb≠φi(Qb')] である。つまり全てのi≠0に対し、Qb=φi(Qb'
となるものはない。しかしφm(P)=Pのときは、 ∃i≠0[Qb=φi(Qb')] となることがある。即ちQb=φi(Qb')となるiが存
在する。
In general, QbWhen asking for
Q that isb 'For (-1)eφiTo add (P)
The calculation amount can be further reduced. For example, step S3 in FIG.
Then Qb ',e, i [Qb= Qb '+ (-1)eφi(P)]
Q that satisfies (b '<b)b 'Check if there isb 'if there are
Qb= Qb '+ (-1)eφiQ by (P)bAsk for.
For example, Q1= P + φP and Q7 = P + φP-φTwoP
But Q7Calculation of Q 7 = Q1+ (-1)1φTwoP's
Obtained by calculation.Third embodiment [w H (b) + small window size] As some b in Step 3 of the first embodiment, wH
(Vb) + LogTwo(B) in ascending order. In this case the log
The value is not limited to 2, but may be 3, 5 or the like.bof
Hamming weight and vbWeighted and added to the number of elements of
B may be selected in ascending order. That is, vbNumber of elements of [lo
gThree b] +1 even if its element vb, hMany of them are 0
Q if includedbAnd use this to get kP
Does not contribute significantly to reducing the amount of computation. At that point w
H(Vb) Is large and logTwoIt is better that (b) is smaller. This
WH(Vb) + LogTwoFIG. 7 is arranged in ascending order of (b).
Q by the same procedure as shown inbCan be requested.Fourth embodiment [φ m = 1 (elliptic curve)] Depending on the Z modules M and P (∈M) to be calculated, φ
m(P) = P may be satisfied. In this case, m '=
m. Generally, for b ≠ b ′, ∀i ≠ 0 [Qb≠ φi(Qb ')]. That is, for all i ≠ 0, Qb= Φi(Qb ')
There is nothing to be. But φmWhen (P) = P, ∃i ≠ 0 [Qb= Φi(Qb ')]. That is, Qb= Φi(Qb 'I)
Exist.

【0033】従って、第1の実施例のStep3で、Q
bを求める際に、 Qb=φi(Qb') なる、QbおよびQb'については、そのいずれか一方を
計算すれば十分であるので、片方だけ計算する。但し、
Step5で用いられるci,jの最初の添字iはmod
m′で考える。所でQb,Qb'の一方の計算で済ませる
ためには、各vbについて次のような計算をする。vb
(v0,v1,…,vB+1)に対し、φ(vb)は
(vB+1,v0,v1,…,vB)=vb'となる。従ってv
b'=φi(vb)なる関係があるvbとvb 'を予め調べ、
この関係があるものについてはQb又はQb'を計算すれ
ばよい。このような関係vb'=φi(vb)=φi'(v
b'')になるように、2つ以上のvbが、φi倍の関係に
ある場合があり、これらの関係のある複数のvb中の1
つのbについてQb を求めればよい。なおQbを計算と
比較して、前記vb'=φi(vb)の関係があるか否かを
調べる計算は頗る簡単で、高速に行うことができる。第5の実施例[non-signed(楕円曲線)] 第1の実施例ではci,jの符号に制限を設けなかった
が、Z加群によっては、Step2で、それぞれのjに
対し、 ∀i[ci,j ≧0] つまり1つのjについてみるとci,jは1又は0,また
は ∀i[ci,j ≦0] つまりそのiについてはci,jは−1又は0と取れるこ
とが全てのjについて云える。即ち各jについてみると
i,jは同一符号に取れる。この場合は、Step3の
b(=vb・Φb)として ∀h[vb,h≧0] つまりvb,hが1又は0からのみなるものを選べば十分
である。
Therefore, in Step 3 of the first embodiment, Q
when determining the b, Q b = φ i 'becomes, Q b and Q b (Q b)' For, since it is sufficient to calculate the either one thereof is calculated by one. However,
The first subscript i of c i, j used in Step 5 is mod
Consider m '. Q b where, in order to dispense with one of the calculation of Q b 'is the following calculations for each v b. v b =
For (v 0 , v 1 ,..., V B + 1 ), φ (v b ) is (v B + 1 , v 0 , v 1 ,..., V B ) = v b ′ . Therefore v
b '= φ i (v b ) become related v b and v b' examined in advance,
For those having this relationship, Qb or Qb ' may be calculated. Such a relation v b ′ = φ i (v b ) = φ i ′ (v
b '' ), two or more v b may be in a relation of φ i times, and one of a plurality of v b in these relations
One of may be obtained a Q b for b. Note Compared to calculate Q b, the v b '= φ i (v b) related whether the examined calculation of the extremely simple and can be performed at high speed. Fifth Embodiment [non-signed (Elliptic Curve)] In the first embodiment, no limitation is imposed on the sign of c i, j . However, depending on the Z module, in Step 2, for each j, ∀ i [ci , j ≧ 0] In other words, for one j, ci , j is 1 or 0, or ま た は i [ci , j ≦ 0] That is, for that i, ci , j is −1 or 0. Can be said for all j. That is, for each j, c i, j can have the same sign. In this case, it is sufficient to select ∀h [v b, h ≧ 0] as Q b (= v b · Φ b ) in Step 3, that is, v b, h consisting only of 1 or 0.

【0034】即ちvb,h=−1を含むvbは用いない。 このようにすることによりci,jが−1,0,1の何れ
をも取れる場合と比較して計算量を著しく少くすること
ができる。第6の実施例[mが小] 第4及び第5の実施例が共に適用できるような場合、つ
まりφm(P)=P、かつそれぞれのjについてみると
i,jは同一符号である場合で、更に wH({ci,j i=0 m-1)=wH((c0,j,c1,j
…,cm-1,j))≦m/2 と{ci,j }が取れて、つまり各jに対し{ci,j }中
の0の数が半分より多く、かつmが、例えば32以下、
d=1の場合はmが256以下のように小さい場合は、
第1の実施例のStep3で、以下のようにあり得る全
てのQbを計算しておくと有利である。例えば、楕円曲
線上の多くの点Pでは、 (1+φ+…+φm-1 )(P)=0 を満たすので、wH({ci,j i=0 m-1)=wH((c
0,j,c1,j,…,cm-1,j))≦m/2とでき、この発
明の有効性が増す。
That is, v b including v b , h = −1 is not used. By doing so, the amount of calculation can be significantly reduced as compared with the case where c i, j can take any of −1, 0, and 1. Sixth Embodiment [m is Small] In a case where both the fourth and fifth embodiments can be applied, that is, φ m (P) = P, and for each j, c i, j has the same sign. In some cases, w H ({c i, ji = 0 m-1 ) = w H ((c 0, j , c 1, j ,
.., Cm -1, j )) ≦ m / 2 and {ci , j }, that is, for each j , the number of 0s in {ci , j } is more than half, and m is For example, 32 or less,
When d = 1, when m is as small as 256 or less,
In Step3 of the first embodiment, it is advantageous idea to calculate all Q b which may be as follows. For example, at many points P on the elliptic curve, (1 + φ +... + Φ m−1 ) (P) = 0 is satisfied, so that w H ({ci , ji = 0 m−1 ) = w H (( c
0, j , c 1, j ,..., Cm -1, j )) ≦ m / 2, thereby increasing the effectiveness of the present invention.

【0035】m=2,3の場合 Q0=P m=4,5の場合 Q0 =P Q1 =(1+φ)(P) Q3 =(1+φ2 )(P) m=6,7の場合 Q0 =P Q1 =(1+φ)P Q3 =(1+φ2 )(P) Q4 =(1+φ+φ2 )(P) Q9 =(1+φ3 )(P) Q10=(1+φ+φ3 )(P) Q28=(1+φ+φ4 )(P) Q30=(1+φ2 +φ4 )(P) 以上の各Qの1つ乃至複数をφ倍したものでもよい。第7の実施例[適応的] 第1の実施例のStep3で、どのbに対応するQb
計算するかについて、Step2によって定められたc
i,jを調べStep5で2回以上利用されるQbについて
計算する。第8の実施例[P固定] 第1の実施例で、予め入力されるPが既知の場合、St
ep3を実行せず、予め記憶装置が許す限りのQb につ
いて事前に計算しておく。
When m = 2,3 Q 0 = P When m = 4,5 Q 0 = P Q 1 = (1 + φ) (P) Q 3 = (1 + φ 2 ) (P) When m = 6,7 when Q 0 = P Q 1 = ( 1 + φ) P Q 3 = (1 + φ 2) (P) Q 4 = (1 + φ + φ 2) (P) Q 9 = (1 + φ 3) (P) Q 10 = (1 + φ + φ 3) ( P) Q 28 = (1 + φ + φ 4 ) (P) Q 30 = (1 + φ 2 + φ 4 ) (P) One or more of the above Qs may be multiplied by φ. Seventh Embodiment [Adaptive] In Step 3 of the first embodiment, as to which b is to be calculated for Q b , c determined by Step 2
i, is calculated for Q b utilized more than once Step5 examined j. Eighth Embodiment [Fixed P] In the first embodiment, when P inputted in advance is known, St
ep3 without running, keep precomputed for Q b as much as prestored device allows.

【0036】以上の実施例は部分体GF(q)上定義さ
れる楕円曲線のGF(qm )有理点のなす群E(GF
(qm ))/GF(q)について、m′=m,n′=
[log2q]+1,d=2とでき、非常に効果を発揮す
る。この[log2 q]はlog2 qの小数を切上げた整数で
ある。上述したこの発明のスカラー倍装置はコンピュー
タにより機能させることもできる。その場合は例えば図
8に示すように、P,kなどが入力され、kPが出力さ
れる入出力部31、楕円パラメータm,q,dとbの集
合などが記憶された記憶部32、φ進展開展プログラム
が格納されたメモリ33、Qbを演算するプログラムが
格納されたメモリ34、φi倍演算を行うプログラムが
格納されたメモリ35、d倍演算を行うプログラムが格
納されたメモリ36、加減算を行うプログラムが格納さ
れたメモリ37、これらプログラムを用いてkP演算を
行うプログラムが格納されたメモリ38、プロセッサ3
9がバス41に接続され、プロセッサ39により、これ
らのプログラムを実行してスカラー倍演算を行う。なお
この発明は楕円曲線上の演算に限らず、一般にZ加群M
上の元Pをスカラーk(∈Z)倍する方法に適用でき
る。
In the above embodiment, the group E (GF) formed by the GF (q m ) rational points of the elliptic curve defined on the subfield GF (q)
(Q m )) / GF (q), m ′ = m, n ′ =
[Log 2 q] +1, d = 2, which is very effective. This [log 2 q] is an integer obtained by rounding up the decimal of log 2 q. The above-described scalar doubling device of the present invention can be operated by a computer. In this case, for example, as shown in FIG. 8, an input / output unit 31 to which P, k and the like are input and kP is output, a storage unit 32 in which a set of elliptic parameters m, q, d and b are stored, φ adic expansion exhibition program memory 33 stored, Q memory 34 program is stored which b for calculating the, phi i times the memory 35 which stores a program for performing the calculation, d times memory 36 which stores a program for performing the arithmetic operation, A memory 37 storing a program for performing addition and subtraction, a memory 38 storing a program for performing a kP operation using these programs, and a processor 3
9 is connected to the bus 41, and the processor 39 executes these programs to perform scalar multiplication. It should be noted that the present invention is not limited to operations on elliptic curves, and in general, Z modules M
It can be applied to a method of multiplying the above element P by a scalar k (∈Z).

【0037】[0037]

【発明の効果】この発明により、楕円曲線E(GF(p
m ))/GF(p)上の点のスカラー倍の計算は、例え
ば第6の実施例のm=7,p=229−3の場合、文献E
の方法に比べて下記に示すように、楕円加減算を約半分
に削減できる。 例えば、楕円加減算と楕円2倍算の速度が等しい場合に
は、全体として約1.7倍の高速化が計られたことにな
る。
According to the present invention, the elliptic curve E (GF (p
m )) / Calculation of the scalar multiplication of a point on GF (p) is performed, for example, in the case of m = 7 and p = 2 29 -3 in the sixth embodiment, reference E
As shown below, the elliptic addition / subtraction can be reduced to about half as compared with the method of (1). For example, when the speeds of the ellipse addition and subtraction and the ellipse doubling are equal, the speedup is approximately 1.7 times as a whole.

【0038】なお、この様な楕円曲線は実際に楕円曲線
暗号として使われている。
Note that such an elliptic curve is actually used as an elliptic curve encryption.

【図面の簡単な説明】[Brief description of the drawings]

【図1】この発明装置の実施例を示すブロック図。FIG. 1 is a block diagram showing an embodiment of the apparatus of the present invention.

【図2】この発明装置を機能的に示すブロック図。FIG. 2 is a block diagram functionally showing the apparatus of the present invention.

【図3】この発明装置の動作手順の例を示す流れ図。FIG. 3 is a flowchart showing an example of an operation procedure of the apparatus of the present invention.

【図4】φ進展開係数の例を示す図。FIG. 4 is a diagram showing an example of a φ-base expansion coefficient.

【図5】係数ci,jの更新を説明するための図。FIG. 5 is a diagram for explaining updating of a coefficient c i, j .

【図6】vb中のvb,h≠0の全てがci,jの列の一部と
一致している部分を探す手順の例を示す流れ図。
[6] v in b of v b, flow diagrams illustrating an example of the procedure to find the portion where all h ≠ 0 is consistent with some of c i, j column of.

【図7】第2の実施例を説明するための流れ図。FIG. 7 is a flowchart for explaining a second embodiment.

【図8】この発明装置をコンピュータにより構成する場
合の例を示す図。
FIG. 8 is a diagram showing an example of a case where the present invention apparatus is configured by a computer.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 小林 鉄太郎 東京都千代田区大手町二丁目3番1号 日 本電信電話株式会社内 Fターム(参考) 5B056 AA06 BB00 HH00 5J104 AA25 JA25 NA16  ────────────────────────────────────────────────── ─── Continuing on the front page (72) Inventor Tetsutaro Kobayashi F-term (reference) in Nippon Telegraph and Telephone Corporation 2-3-1 Otemachi 2-chome, Chiyoda-ku, Tokyo 5B056 AA06 BB00 HH00 5J104 AA25 JA25 NA16

Claims (15)

【特許請求の範囲】[Claims] 【請求項1】 整数dと非負整数bの集合が格納された
記憶部と、 kが入力されて、 k=Σi=0 n'-1Σj=0 m'-1i,j j φi ただしci,j ∈{−1,0,1}、φはZ加群M上の自
己準同型写像を満す{ci,j }を求めて出力するφ進展
開部と、 上記複数のbとPが入力され、複数のQb =(vb ・Φ
b )(P)を演算して出力するQb 演算部と、 ただしΦb ={φh h=0 B+1=(φ0 ,φ1 ,…,φ
B+1 ) B=[log3 b]([a]はaの小数切捨を意味する) vb ={vb,hh=0 B+1=(vb,0 ,vb,1 ,…,v
b,B+1) h=0でvb,h =1、h≠0で[b/3(h-1) ]mod3 log3 0=−1,mod3=2の場合−1とし、 vb ・Φb =Σh=0 B+1b,h φhH (vb )=Σh=0 B+1|vb,h| Rが入力され、Z加群M上でRをd倍して出力するd倍
演算部と、 iとQb が入力され、Z加群M上で、φib を演算し
て出力するφi 倍演算部と、 二つの値が入力され、Z加群M上でこれら入力値を加減
算して出力する加減算部と、 外部よりの入力P,kを記憶部に格納し、記憶部から所
要のものを読み出して、各部へ入力し、各部の出力を記
憶部に格納し、上記加減算部及び上記φi 倍演算部を用
いて上記Qb を演算させ、{ci,ji=0 m'-1に±1が
含まれている間、vb,h ≠0となる全てのh(0≦h≦
B+1)に対し、ci,j =(−1)e b,h となるb,
e,iを探し、ci+h,j −(−1)e b,h によりc
i+h,j を更新し、φi 倍演算部と加減算部を用いてR+
(−1)e φi (Qb )を演算させてRを更新すること
をj=n′−1,n′−2,…,0について行わせ、そ
のjの更新ごとにRをd倍演算部でd倍してRを更新
し、j=0のRをkPの演算結果として出力する制御部
とを具備する循環窓加算装置。
1. A set of an integer d and a non-negative integer b is stored.
Storage unit, k is input, k = Σi = 0 n'-1Σj = 0 m'-1ci, jdjφi Where ci, j {-1, 0, 1}, φ is
{C that satisfies the self-homomorphismi, jΦ progression to find and output}
Open part, the plurality of b and P are input, and the plurality of Qs are input.b= (Vb・ Φ
b) Q that calculates and outputs (P)bOperation part, where Φb= {Φhh = 0 B + 1= (Φ0, Φ1,…, Φ
B + 1 ) B = [logThreeb] ([a] means fractional rounding of a) vb= {Vb, h }h = 0 B + 1= (Vb, 0, Vb, 1 , ..., v
b, B + 1) When h = 0, vb, h= 1, h ≠ 0 [b / 3(h-1) ] Mod3 logThree0 = −1, mod 3 = 2, −1, and vb・ Φb= Σh = 0 B + 1vb, hφh wH(Vb) = Σh = 0 B + 1| Vb, h| R is input and d times R is output on the Z module M
An operation unit, i and QbIs input, and on the Z module M, φiQb Calculate
OutputiA multiplication unit and two values are input, and these input values are adjusted on the Z module M
Adder / subtracter for calculating and outputting, and inputs P and k from the outside stored in a storage unit,
Read the important items, input them to each part, and record the output of each part.
Stored in the storage unit, and the addition / subtraction unit and the φiUses double operation
And above Qb{Ci, j }i = 0 m'-1± 1
While included, vb, h H0 for all h (0 ≦ h ≦
B + 1), ci, j= (-1)ev b, hB,
Find e, i, ci + h, j-(-1)evb, hBy c
i + h, jAnd φiR + using a multiplication unit and an addition / subtraction unit
(-1)eφi(Qb) To update R
For j = n'-1, n'-2, ..., 0, and
R is updated by multiplying d by d multiplication unit every time j is updated.
And a control unit that outputs R at j = 0 as a calculation result of kP
A circulating window addition device comprising:
【請求項2】 φm(P)=Pの関係があり、 上記Qb 演算部は上記複数のb中でQb1=φi (Qb2
となるものを予測計算する手段と、 その予測計算されたものについてはQb1とQb2の一方の
みを演算する手段とを備えることを特徴とする請求項1
記載の循環窓加算装置。
2. The relation of φ m (P) = P, and the Q b operation unit is configured to calculate Q b1 = φ i (Q b2 ) among the plurality of b.
2. A means for predicting and calculating the predicted value, and means for calculating only one of Q b1 and Q b2 for the predicted value.
The circulating window adder as described.
【請求項3】 上記Qb 演算部は、既に求まっているQ
b5とPが入力されて Qb6=Qb5+(−1)e φi (P) を演算する手段を含む(b6>b5)ことを特徴とする
請求項1又は2記載の循環窓加算装置。
Wherein said Q b calculation unit, Q that are already Motoma'
b5 and P are inputted Q b6 = Q b5 + (- 1) e φ i comprises means for calculating the (P) (b6> b5) that circulates window summing device according to claim 1 or 2, wherein .
【請求項4】 上記φ進展開部は、各jについてci,j
が同一符号のものを求める手段であり、 上記Qb 演算部はvb,h が1又は0であるvb に対しQ
b を演算する手段であることを特徴とする請求項1乃至
3の何れかに記載の循環窓加算装置。
4. The φ-advancing unit includes c i, j for each j.
There is a means for obtaining the ones of the same code, the Q b calculation unit v b, h is 1 or 0 v b to Q
4. A cyclic window adding apparatus according to claim 1, wherein said means is a means for calculating b .
【請求項5】 φm (P)=Pの関係があり、 上記Qb 演算部は、 m=2,3で Q0=Pを、 のφi倍したもののいずれかを演算する手段であること
を特徴とする請求項1記載の循環窓加算装置。
5. There is a relationship of φ m (P) = P, and the Q b operation unit calculates Q 0 = P when m = 2,3, 2. A circular window adding apparatus according to claim 1, wherein said means is for calculating any one of φ i times.
【請求項6】 d倍演算及びφ倍演算を有するZ加群M
上の元Pとスカラーk∈Zを入力してスカラー倍kPを
出力する方法において、 Pとkが入力されると記憶部に記憶する過程と、 記憶部からkを取出して、 k=Σi=0 n'-1Σj=0 m'-1i,j j φi ただしci,j ∈{−1,0,1}、Z加群M上の自己準
同型写像を満す{ci,j }を求めて記憶部に格納するφ
進展開過程と、 複数の非負整数bについてそれぞれQb =(vh
Φb )(P)を演算し、かつ各vb を記憶部に格納する
b 過程と、 ただしΦb ={φh h=0 B+1=(φ0 ,φ1 ,…,φ
B+1 ) B=[log3 b]([a]はaの小数切捨を意味する) vb ={vb,hh=0 B+1=(vb,0 ,vb,1 ,…,v
b,B+1) h=0でvb,h =1、h≠0で[b/3(h-1) ]mod3 log3 0=−1,mod3=2の場合−1とし、 vb ・Φb =Σh=0 B+1b,h φhH (vb )=Σh=0 B+1|vb,h| 有限体GF(q)上で定義される楕円曲線E/GF
(q)のGF(qm )有理点からなる群E(GF
(qm ))の単位元OにRを、n′−1にjをそれぞれ
初期化する過程と、 記憶部から{ci,ji=0 m'-1(=(c0,j ,c1,j
…,cm'-1,j))、v b を取出し、{ci,ji=0
m'-1に±1が含まれている間、 vb,h≠0となる全てのh(0≦h≦B+1)に対し、 ci+h,j =(−1)e b,h となるb,e,iを探し、 bが見つかると0≦h≦B+1となる全てのhに対しc
i+h,j をci+h,j −(−1)e b,h と更新し、 記憶部からR,Qb を取出し、 R+(−1)e φi (Qb )を演算してRを更新して記
憶部に格納することを繰返す繰返し過程と、 j=0であるか否かを調べるチェック過程と、 j=0でなければ記憶部からRを取出してdRを演算し
てRを更新して記憶部に格納し、かつ記憶部のjを−1
して、更新して上記繰返し処理に戻る過程と、上記チェ
ック処理でj=0と判定されると、上記記憶部からRを
取出してkPの演算結果として出力する過程と、 を有することを特徴とする循環窓加算方法。
6. A Z-module M having d-times and φ-times operations
Input the above element P and scalar k∈Z to get scalar multiplication kP
In the output method, when P and k are input, the process of storing them in a storage unit, extracting k from the storage unit, and k = Σi = 0 n'-1Σj = 0 m'-1ci, jdjφi Where ci, j {−1,0,1}, self-quasi-quasi on Z-module M
{C that satisfies the isomorphismi, jΦ to find in 記憶 and store in storage
Hexadecimal expansion process and Q for each of a plurality of nonnegative integers bb= (Vh
Φb) (P) and each vbIs stored in the storage unit
QbProcess and where Φb= {Φhh = 0 B + 1= (Φ0, Φ1,…, Φ
B + 1 ) B = [logThreeb] ([a] means fractional rounding of a) vb= {Vb, h }h = 0 B + 1= (Vb, 0, Vb, 1 , ..., v
b, B + 1) When h = 0, vb, h= 1, h ≠ 0 [b / 3(h-1) ] Mod3 logThree0 = −1, mod 3 = 2, −1, and vb・ Φb= Σh = 0 B + 1vb, hφh wH(Vb) = Σh = 0 B + 1| Vb, h| Elliptic curve E / GF defined on finite field GF (q)
GF of (q) (qm) Group E (GF
(QmR) for the identity element O and j for n'-1
Initialization process and {c from the storage uniti, j }i = 0 m'-1(= (C0, j , C1, j,
…, Cm'-1, j)), V bTake out and {ci, j }i = 0
m'-1While ± 1 is included inb, hFor all h (0 ≦ h ≦ B + 1) where ≠ 0, ci + h, j = (-1)evb, h Search for b, e, and i, and when b is found, c for all h that satisfies 0 ≦ h ≦ B + 1
i + h, jTo ci + h, j-(-1)evb, h Update from the storage unit, R, QbAnd R + (-1)eφi(Qb) Is calculated to update R.
A repetition process of repeatedly storing data in a storage unit, a check process of checking whether or not j = 0, and if j = 0, take out R from the storage unit and calculate dR
R is updated and stored in the storage unit, and j in the storage unit is -1.
Updating and returning to the above-described iterative processing;
When j = 0 is determined in the lock processing, R is stored from the storage unit.
Extracting and outputting the result as a calculation result of kP.
【請求項7】 φm (P)=Pを満し、 上記Qb 過程の前に、上記複数のb中でQb1=φi (Q
b2)となるものを予測計算する過程を有し、 上記Qb 過程は上記予測されたb1 とb2 についてはQ
b1およびQb2のいずれか一方を求める過程であることを
特徴とする請求項6記載の循環窓加算方法。
7. satisfying φ m (P) = P, and before the Q b process, Q b1 = φ i (Q
has a step of predicting calculate what the b2), the Q b process for b 1 and b 2, which is the prediction of Q
7. The method of claim 6, further comprising the step of obtaining one of b1 and Qb2 .
【請求項8】 上記Qb 過程は既に求まっているQb5
用いてQb6=Qb5+(−1)e φi (P)を演算してQ
b6を求める過程を少くとも1つ含むことを特徴とする請
求項6又は7記載の循環窓加算方法。
8. The Q b process calculates Q b6 = Q b5 + (− 1) e φ i (P) using Q b5 that has already been obtained,
8. The method of claim 6, further comprising at least one step of obtaining b6 .
【請求項9】 上記Qb 過程は、既に求まったQb3のb
3 を用いてwH (v b3−vb4)を演算する過程と、 wH (vb3−vb4)が1であるか否か判定する過程と、 この判定が1であればQb4=Qb3+(−1)e φ
i (P)を演算してQb4を求める過程とを有することを
特徴とする請求項8記載の循環窓加算方法。
9. The above QbThe process is the Qb3B
ThreeWith wH(V b3-Vb4) And wH(Vb3-Vb4) Is 1 or not, and if this judgment is 1, Qb4= Qb3+ (-1)eφ
iCalculate (P) and Qb4Having a process of seeking
9. The method for adding a circular window according to claim 8, wherein:
【請求項10】 上記Qb 過程は、vb のハミング重み
と、vb の要素数とを重み付け加算する過程と、 その加算結果が小さい順にbを選んでQb を求める過程
を行わせる過程とを有することを特徴とする請求項6乃
至9の何れかに記載の循環窓加算方法。
10. The Q b process, the process of causing the Hamming weight of v b, v the steps of weighted addition of a number of elements b, the process of obtaining a Q b choose b in order that the addition result is smaller 10. The method according to claim 6, further comprising the steps of:
【請求項11】 上記φ進展開過程はそれぞれのjに対
して∀i [ci,j ≧0]又は∀i [ci,j ≦0]とし、 上記Qb 過程は∀h [vb,h ≧0]のものについてのみ
行うことを特徴とする請求項6乃至10の何れかに記載
の循環窓加算方法。
11. The φ-advancing process is performed for each j by ∀i [c i, j ≧ 0] or ∀i [c i, j ≦ 0] and the Q b process is Δh The method according to any one of claims 6 to 10, wherein the method is performed only for [v b, h ≧ 0].
【請求項12】 φm (P)=Pを満たし、 上記φ進展開過程はそれぞれのjに対して ∀i[ci,j ≧0]又は∀i[ci,j ≦0]とし、 それぞれのjについて、0の数が半分より大であり、 上記Qb過程は、 又は各場合の何れか1つあるいは複数に対しφ倍したも
のを求める過程であることを特徴とする請求項6記載の
循環窓加算方法。
12. φ m (P) = P is satisfied, and the φ-amplifying process is と し i [ci , j ≧ 0] or ∀i [ci , j ≦ 0] for each j , For each j, the number of zeros is more than half, and the Q b process is 7. The method according to claim 6, further comprising the step of obtaining a value obtained by multiplying any one or a plurality of cases by φ.
【請求項13】 上記φ進展開過程で得られた{c
i,j }中の各j方向における配列で1,−1からなる部
分配列が同一のものが2つ以上あるものを探す過程を有
し、 上記Qb 過程は上記2つ以上ある部分配列と対応するQ
bを求める過程であることを特徴とする請求項6乃至9
の何れかに記載の循環窓加算方法。
13. The Δc obtained in the φ-ary expansion process
i, j} 1 in sequence in each direction j in having a process of looking for those partial sequences consisting of -1 is identical ones two or more, the Q b process the partial sequences in the two or more Corresponding Q
10. A process for obtaining b.
The method for adding a cyclic window according to any one of the above.
【請求項14】 上記繰返し過程中の上記b,e,iを
探す過程は、wH (vb )の大きい順に並べた集合を
{b1 ,b2 ,…,bs }として、 rを0に初期化するr初期化過程と、 iを0に初期化するi初期化過程と、 eを0に初期化するe初期化過程と、 vb,h ≠0となる全てのh(0≦h≦[log3 r ]+
1)に対し、ci+h,j=(−1)e br,hを探し、見つ
かればb=br ,i,eを出力して終了する探索過程
と、 この探索過程で見つからない場合は、eを+1して更新
し、更新したeが2より小さければ探索過程に戻るe更
新過程と、 e更新過程において更新したeが2より小さくなければ
iを+1して更新し、その更新したiがm′より小さけ
ればe初期化過程に戻る過程と、 更新したiがm′より小さくなければrを+1して更新
し、その更新したrがs以下であればi初期化過程に戻
る過程とよりなることを特徴とする請求項6乃至13の
何れかに記載の循環窓加算方法。
14. The process of searching for b, e, i in the iterative process is as follows: {b 1 , b 2 ,..., B s } is a set arranged in descending order of w H (v b ). 0 and r initialization process to initialize the i initialization process to initialize i to 0, and e initialization process to initialize the e 0, v b, all h which becomes h ≠ 0 (0 ≦ h ≦ [log 3 br ] +
To 1), c i + h, j = (- 1) e v br, looking for h, and the search process ends b = b r, i, and outputs the e if found, not found in this search process In this case, e is updated by adding +1. If the updated e is smaller than 2, the process returns to the search process. If the updated e is not smaller than 2 in the e updating process, i is updated by +1. If the updated i is smaller than m ', the process returns to the e initialization process. If the updated i is not smaller than m', r is incremented by one, and if the updated r is less than s, the i initialization process is performed. 14. The method of claim 6, further comprising the step of:
【請求項15】 請求項6乃至14の何れかに記載の方
法をコンピュータに実行させるためのプログラムを記録
した記録媒体。
15. A recording medium on which a program for causing a computer to execute the method according to claim 6 is recorded.
JP2000229611A 2000-07-28 2000-07-28 Cyclic window addition apparatus, method therefor and program recording medium therefor Expired - Lifetime JP3604126B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000229611A JP3604126B2 (en) 2000-07-28 2000-07-28 Cyclic window addition apparatus, method therefor and program recording medium therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000229611A JP3604126B2 (en) 2000-07-28 2000-07-28 Cyclic window addition apparatus, method therefor and program recording medium therefor

Publications (2)

Publication Number Publication Date
JP2002040938A true JP2002040938A (en) 2002-02-08
JP3604126B2 JP3604126B2 (en) 2004-12-22

Family

ID=18722701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000229611A Expired - Lifetime JP3604126B2 (en) 2000-07-28 2000-07-28 Cyclic window addition apparatus, method therefor and program recording medium therefor

Country Status (1)

Country Link
JP (1) JP3604126B2 (en)

Also Published As

Publication number Publication date
JP3604126B2 (en) 2004-12-22

Similar Documents

Publication Publication Date Title
Jalali et al. Towards optimized and constant-time CSIDH on embedded devices
CA2614120C (en) Elliptic curve point multiplication
Moldovyan et al. Post-quantum signature algorithms based on the hidden discrete logarithm problem
JP5328186B2 (en) Data processing system and data processing method
EP0917047B1 (en) Apparatus for modular inversion for information security
US7945784B1 (en) Method and system to perform secret sharing
Beullens Not enough LESS: an improved algorithm for solving code equivalence problems over F q
EP2350811B1 (en) Method and apparatus for modulus reduction
Baena et al. Improving support-minors rank attacks: applications to G e MSS and Rainbow
CN112805769B (en) Secret S-type function calculation system, secret S-type function calculation device, secret S-type function calculation method, and recording medium
JP7273753B2 (en) Arithmetic transformation processing device, Arithmetic transformation processing method and program
Wunderer A detailed analysis of the hybrid lattice-reduction and meet-in-the-middle attack
Krämer et al. Fault attacks on UOV and rainbow
Banik et al. New attacks on LowMC instances with a single plaintext/ciphertext pair
Beullens Graph-theoretic algorithms for the alternating trilinear form equivalence problem
JP5329879B2 (en) COMPUTER DEVICE, METHOD, AND PROGRAM
Deng et al. Public-Key Cryptosystems and Signature Schemes from-Adic Lattices
US10068070B2 (en) White-box elliptic curve point multiplication
CN108418687B (en) Rapid modular reduction method and medium suitable for SM2 algorithm
JP2002040938A (en) Cyclic window adding device, method therefor and recording medium with program thereof
CN113467752B (en) Division operation device, data processing system and method for private calculation
Heuberger et al. The alternating greedy expansion and applications to computing digit expansions from left-to-right in cryptography
Thomé A modified block Lanczos algorithm with fewer vectors
KR100194769B1 (en) Using memory to find inverses on finite fields
JP4629972B2 (en) Vector computing device, divided value computing device, elliptic curve scalar multiplication device, elliptic cryptography computing device, vector computing method, program, and computer-readable recording medium recording the program

Legal Events

Date Code Title Description
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: 20040831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040927

R151 Written notification of patent or utility model registration

Ref document number: 3604126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20071008

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081008

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091008

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101008

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101008

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111008

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111008

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121008

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121008

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 9

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

EXPY Cancellation because of completion of term