JP4629972B2 - 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 - Google Patents

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 Download PDF

Info

Publication number
JP4629972B2
JP4629972B2 JP2003414358A JP2003414358A JP4629972B2 JP 4629972 B2 JP4629972 B2 JP 4629972B2 JP 2003414358 A JP2003414358 A JP 2003414358A JP 2003414358 A JP2003414358 A JP 2003414358A JP 4629972 B2 JP4629972 B2 JP 4629972B2
Authority
JP
Japan
Prior art keywords
vector
scalar
calculated
unit
calculation
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.)
Expired - Lifetime
Application number
JP2003414358A
Other languages
Japanese (ja)
Other versions
JP2005173301A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2003414358A priority Critical patent/JP4629972B2/en
Publication of JP2005173301A publication Critical patent/JP2005173301A/en
Application granted granted Critical
Publication of JP4629972B2 publication Critical patent/JP4629972B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は、ベクトル演算装置或いは分割値演算装置或いは楕円曲線スカラー倍演算装置或いは楕円暗号演算装置、または、各方法に関する。特に、本発明は、楕円暗号演算を高速に行う方法、及びその方法を用いた演算装置に関する。   The present invention relates to a vector computing device, a divided value computing device, an elliptic curve scalar multiplication device, an elliptic cryptography computing device, or each method. In particular, the present invention relates to a method for performing elliptic cryptography calculation at high speed and a calculation device using the method.

楕円暗号演算を高速に行うためには、スカラー倍演算の高速化が必須である。これまで、様々なスカラー倍演算高速化手法が提案されてきた。近年の研究で、効率的に計算可能な自己準同形写像である特殊準同型写像φを用いて定数KをK=k+kφ(又はk+kλ、λは点群上でφが与えるスカラー倍数)と表現(分割)することで演算効率を高めた技術が存在する(非特許文献1参照)。 In order to perform elliptical cryptographic computation at high speed, it is essential to increase the speed of scalar multiplication. Until now, various methods for speeding up scalar multiplication have been proposed. In recent research, the constant K is set to K = k 1 + k 2 φ (or k 1 + k 2 λ, where λ is φ on the point group using a special homomorphic map φ that is an auto-homogeneous map that can be calculated efficiently. (Scalar multiple given by) is expressed (divided), and there is a technique in which the calculation efficiency is improved (see Non-Patent Document 1).

また、非特許文献1にある分割方法がどれだけ演算効率を高めるかを評価した結果が知られている(非特許文献2参照)。   Moreover, the result of evaluating how much the division method in Non-Patent Document 1 increases the calculation efficiency is known (see Non-Patent Document 2).

また、非特許文献1にある分割方法を、更に演算効率を高めるように改良した結果が知られている(非特許文献3参照)。以下、非特許文献3にあるKの分割法を説明していく。   Further, a result of improving the division method in Non-Patent Document 1 so as to further increase the calculation efficiency is known (see Non-Patent Document 3). Hereinafter, the K division method described in Non-Patent Document 3 will be described.

Kの分割は、まず、スカラーKによらない互いに一次独立なベクトル(基底)V、Vを以下の手順で求めることから始まる。2次元の整数係数の線形空間から1次元の線形空間への写像fをf:(i,j)→i+λj(mod n)(但し、mod nは、i+λjをnで割った余りを意味する)と定める。fで0になる2次元の部分空間をKer fと書くことにすると、Ker fの基底V、Vで、その成分の絶対値が小さくなるもの(ビット数が少なくなるもの)をとることが必要となる。そのV、Vを使って、f(u)=Kとなる小ベクトルu=(k,k)を計算すると、uが、K=k+kφ(又はk+kλ)であるk,kを与えることがわかる。 The division of K starts by first obtaining vectors (bases) V 1 and V 2 that are not linearly dependent on the scalar K in the following procedure. The mapping f from the linear space of the two-dimensional integer coefficient to the one-dimensional linear space is f: (i, j) → i + λj (mod n) (where mod n means the remainder obtained by dividing i + λj by n) It is determined. If a two-dimensional subspace that becomes 0 at f is written as Ker f, it is assumed that the absolute value of the component becomes smaller (the number of bits decreases) in the bases V 1 and V 2 of Ker f. Is required. When using V 1 and V 2 to calculate a small vector u = (k 1 , k 2 ) such that f (u) = K, u becomes K = k 1 + k 2 φ (or k 1 + k 2 λ). It can be seen that k 1 and k 2 are given.

とVは一次独立だから、(K,0)=β・V+β・Vとなる有理数β、βが存在することがわかり、それらは容易に計算可能である。b:=“βに一番近い整数”、b:=“βに一番近い整数”として、u:=(K,0)−(b・V+b・V)とすることで、“Kの分割”が得られる。 Since V 1 and V 2 are linearly independent, it can be seen that there exist rational numbers β 1 and β 2 such that (K, 0) = β 1 · V 1 + β 2 · V 2, and they can be easily calculated. b 1 : = “an integer closest to β 1 ”, b 2 : = “an integer closest to β 2 ”, u: = (K, 0) − (b 1 · V 1 + b 2 · V 2 ) Thus, “K division” is obtained.

従来知られていた小基底V、Vの探索アルゴリズムを説明する。 A conventionally known search algorithm for the small bases V 1 and V 2 will be described.

楕円曲線有理点群の位数nと、楕円曲線特殊準同型が定めるスカラーλを入力として、ステップS101で拡張ユークリッド互除法を用いて、|rm+1|、|tm+1|<√n、sm+1・n+tm+1・λ=rm+1、gcd(sm+1、tm+1)=1となるV:=(rm+1、−tm+1)を計算する。但し、ここで、rm+1等の記法は、m+1とインデックス付けされた変数rを表すものとする。また、記号「:=」は、左を右で定義することを意味する。 Using the order n of the elliptic curve rational point group and the scalar λ defined by the elliptic curve special homomorphism as inputs, using the extended Euclidean algorithm in step S101, | r m + 1 |, | t m + 1 | <√n, s m + 1 Calculate V 1 : = (r m + 1 , −t m + 1 ) such that n + t m + 1 • λ = r m + 1 , gcd (s m + 1 , t m + 1 ) = 1. Here, the notation such as rm + 1 represents the variable r indexed as m + 1. The symbol “: =” means that left is defined as right.

次にステップS102で、拡張ユークリッド互除法の中間変数を用いて構成したベクトル(r、−t)か(rm+2、−tm+2)のmaxノルムが√nより小さいかどうかをチェックして、もしそうなら、そのベクトルをVとする。そうでないなら、次のス
テップに進む。ここで、例えば、値i,jについてのmaxノルムとは、値iの絶対値|i|と値jの絶対値|j|とのうちの大きい方の値を示す。
Next, in step S102, it is checked whether the max norm of the vector (r m , −t m ) or (r m + 2 , −t m + 2 ) configured using the intermediate variable of the extended Euclidean algorithm is smaller than √n. If so, let the vector be V 2 . If not, go to the next step. Here, for example, the max norm for the values i and j indicates the larger value of the absolute value | i | of the value i and the absolute value | j | of the value j.

次にステップS103で、拡張ユークリッド互除法を用いて、sm+1・v’−tm+1・w‘=1となるv’、w‘を計算する。 In step S103, v ′ and w ′ that satisfy s m + 1 · v′−t m + 1 · w ′ = 1 are calculated using the extended Euclidean algorithm.

次にステップS104で、I11:=−v’/tm+1−√n/tm+1、I12:=−v’/tm+1+√n/tm+1とし、もしtm+1>0ならI:=[I11,I12](閉区間)とし、そうでないなら、I:=[I12,I11]とする。 In step S104, I 11 : = − v ′ / t m + 1 −√n / t m + 1 , I 12 : = − v ′ / t m + 1 + √n / t m + 1, and if t m + 1 > 0, I 1 : = [I 11 , I 12 ] (closed interval), otherwise I 1 : = [I 12 , I 11 ].

次にステップS105で、I21:=(v’・λ−w‘・n)/rm+1−√n/rm+1、I22:=(v’・λ−w‘・n)/rm+1+√n/rm+1、I:=[I21,I22]とする。 Next, in step S105, I 21 : = (v ′ · λ−w ′ · n) / r m + 1 −√n / r m + 1 , I 22 : = (v ′ · λ−w ′ · n) / r m + 1 + √n / r m + 1 , I 2 : = [I 21 , I 22 ].

次にステップS106で、全ての整数α∈I∩Iに対して、u:=w‘・n−v’・λ+αrm+1、v:=v’−α・tm+1としたベクトル(u,v)を考え、その中でmaxノルムが最小のものをVとして、V、Vを出力する。
R.P.Gallant,J.L.Lambert and S.A.Vanstone,“Faster point multiplication on elliptic curves with efficient endomorphisms”,Crypto 2001, Springer Verlag,(2001),190−200. F.Sica,M.Ciet,J.−J.Quisquater,“Analysis of the Gallant−Lambert−Vanstone method based on efficient endomorphisms :elliptic and hyperelliptic curves”,SAC 2002,Springer Verlag,(2002),21−36. D.Kim,S.Lim,“Integer decomposition for fast scalar multiplication on elliptic curves”,SAC 2002,Springer Verlag,(2002),13−20.
Next, in step S106, for all integers α∈I 1 2I 2 , a vector (u, = w ′ · n−v ′ · λ + αr m + 1 , v: = v′−α · t m + 1) v) consider, what max norm minimum therein as V 2, and outputs the V 1, V 2.
R. P. Gallant, J .; L. Lambert and S. A. Vanstone, “Faster point multiplication on electrical curves with effective endomorphisms”, Crypto 2001, Springer Verlag, (2001), 190-200. F. Sica, M.M. Ciet, J .; -J. Quisquater, “Analysis of the Gallant-Lambert-Vanstone method based on efficient endomorphisms: elliptic and hyperplastic curves”, SAC 200, p. D. Kim, S .; Lim, “Integration decomposition for fast scalar multiplication on elliptic curves”, SAC 2002, Springer Verlag, (2002), 13-20.

近年の高度情報通信技術の実用化に伴い、楕円暗号を含む公開鍵暗号も既に実用化段階に入っているが、クロックの小さいCPU(Central Processing Unit)しか搭載していない、或いはできないICカード上での暗号演算実行や、ユビキタス環境での情報セキュリティ確保のため、計算リソースが制限された環境での使用も必要不可欠のものとなっている。つまり、暗号演算計算速度の向上が切に望まれている。   Along with the practical application of advanced information communication technology in recent years, public key cryptography including elliptical cryptography has already been put into practical use, but on an IC card that has only a CPU with a small clock (Central Processing Unit) or cannot be installed. It is indispensable to use it in environments where computing resources are limited in order to perform cryptographic operations in Windows and ensure information security in the ubiquitous environment. In other words, an improvement in cryptographic computation calculation speed is eagerly desired.

しかしながら、上記従来技術のV、V探索法では、必ずしも最短の基底を探索できていなかった。よって、最良のKの分割を与えられなかった。すなわち、十分小さいk、kの値を得ることができなかった。すなわち、暗号演算計算速度が遅く、特に、上記ICカード上での暗号演算実行や、ユビキタス環境において、十分な対応ができなかった。 However, the V 1 and V 2 search methods of the above prior art cannot always search for the shortest basis. Therefore, the best K division could not be given. That is, sufficiently small values of k 1 and k 2 could not be obtained. That is, the cryptographic computation calculation speed is slow, and in particular, it has not been possible to sufficiently cope with the cryptographic computation execution on the IC card and the ubiquitous environment.

本発明は、上記V、V探索法より短いV、Vを探索することを目的とする。 An object of the present invention is to search for V 1 and V 2 that are shorter than the V 1 and V 2 search methods.

また、本発明は、分割K=k+kφ(又はk+kλ)で、k、kの値をより小さくすることを目的とする。 Another object of the present invention is to further reduce the values of k 1 and k 2 in the division K = k 1 + k 2 φ (or k 1 + k 2 λ).

また、本発明は、スカラー倍演算を高速に行うこと、つまり、楕円暗号演算を高速に行うことを目的とする。   Another object of the present invention is to perform a scalar multiplication operation at high speed, that is, to perform an elliptic encryption operation at high speed.

この発明に係るベクトル演算装置は、楕円曲線上の点をスカラーKでスカラー倍するために用いる上記スカラーKを、自己準同形写像である特殊準同型写像φと分割値kとkとを用いてスカラーK=k+kφとし、2次元の整数係数の線形空間から1次元の線形空間への写像fをf:(i,j)→i+λj(mod n)(但し、mod nは、i+λjをnで割った余りを意味する)とし、上記写像fが0になる2次元の部分空間をKer fとし、Ker fの基底ベクトルであって基底ベクトルの成分の絶対値が最も小さくなるもの(ただし、絶対値がゼロになるものを除く)をベクトルVとベクトルVとし、ベクトルV及びベクトルVを使用して、f(u)=Kとなる小ベクトルu=(k,k)を計算すると、小ベクトルuが上記スカラーKのK=k+kφのk,kを与えるベクトルVとベクトルVとを演算するベクトル演算装置において、
拡張ユークリッド互除法を用いて上記ベクトルVを演算するベクトルV演算部と、
上記拡張ユークリッド互除法を用いて、複数の整数値を有する複数の集合Aを演算し、演算された複数の整数値を有する複数の集合Aに含まれる複数の整数値αを用いて上記ベクトルVを演算するベクトルV演算部と、
上記ベクトルV演算部により演算されたベクトルVと上記ベクトルV演算部により演算されたベクトルVとを出力するベクトル出力部と
を備えたことを特徴とする。
In the vector arithmetic unit according to the present invention, the scalar K used for multiplying a point on the elliptic curve by a scalar K is converted into a special homomorphic map φ, which is a self-homogeneous map, and divided values k 1 and k 2 . Using the scalar K = k 1 + k 2 φ, the mapping f from the linear space of the two-dimensional integer coefficient to the one-dimensional linear space is f: (i, j) → i + λj (mod n) (where mod n is , I + λj is a remainder obtained by dividing n by n), and a two-dimensional subspace where the mapping f is 0 is Ker f, which is the basis vector of Ker f and has the smallest absolute value of the basis vector component The vector V 1 and the vector V 2 are those except for those whose absolute value is zero, and the vector V 1 and the vector V 2 are used, and the small vector u = (k 1, when k 2) to calculate the In vector arithmetic unit small vector u is computed and vector V 1 and vector V 2 to provide a k 1, k 2 of K = k 1 + k 2 φ of the scalar K,
The vector V 1 calculator for calculating the vector V 1 using the extended Euclidean algorithm,
A plurality of sets A h having a plurality of integer values are calculated using the extended Euclidean algorithm, and a plurality of integer values α included in the plurality of sets A h having a plurality of calculated integer values are used. and vector V 2 calculator for calculating a vector V 2,
Characterized by comprising a vector output unit for outputting a vector V 2 calculated by the vector V 1 and the vector V 2 calculation section calculated by the vector V 1 arithmetic unit.

本発明によれば、従来法では、まだ改善の余地が残されていた楕円曲線暗号演算法に対して、更なる高速化を得ることを可能にし、計算資源が限られた環境においても、実用性を発揮する暗号機能を実現可能にすることができるV、Vを探索することができる。 According to the present invention, in the conventional method, it is possible to obtain a further increase in speed compared to the elliptic curve cryptography method that still has room for improvement, and it can be used even in an environment where the calculation resources are limited. It is possible to search for V 1 and V 2 that can realize a cryptographic function that exhibits high performance.

以下に説明する楕円暗号演算装置は、所定の楕円暗号上の点とスカラーを入力する入力部と、所定のスカラー分割値演算装置と分割値演算装置の元となるベクトルを演算するベクトル演算装置と、所定のスカラー分割値を用いて楕円曲線スカラー倍計算をおこなうスカラー倍演算部とを備えている。そして、上記入力部により入力された所定の楕円パラメータとスカラーに対する演算をおこない、所定のスカラー分割値を用いて楕円曲線スカラー倍計算をおこなう。   An elliptic cryptography arithmetic device described below includes an input unit for inputting a point and a scalar on a predetermined elliptic cryptography, a vector arithmetic device for computing a vector that is a source of the predetermined scalar division value arithmetic device and the division value arithmetic device, and A scalar multiplication unit that performs elliptic curve scalar multiplication using a predetermined scalar division value. Then, an operation is performed on the predetermined ellipse parameter and scalar input by the input unit, and an elliptic curve scalar multiplication is performed using the predetermined scalar division value.

実施の形態1.
まず、公開鍵暗号、離散対数問題および楕円暗号について簡単に説明する。公開鍵暗号通信においては、利用者ごとに秘密鍵xと公開鍵yの組が用意され、秘密鍵xは、各利用者が秘密に保持しておく。公開鍵yは利用者自身以外の一般に公開する。利用者Bが利用者Aに秘密にデータを送りたい時は、利用者Bは利用者Aに対応する公開鍵yを用いてデータを暗号化する。この暗号文は、秘密鍵xを知る利用者Aにしか復号できない。
Embodiment 1 FIG.
First, public key cryptography, discrete logarithm problem, and elliptic cryptography will be briefly described. In public key encryption communication, a set of a secret key x and a public key y is prepared for each user, and the secret key x is kept secret by each user. The public key y is disclosed to the public other than the user himself / herself. When user B wants to secretly send data to user A, user B encrypts the data using public key y corresponding to user A. This ciphertext can only be decrypted by the user A who knows the secret key x.

離散対数問題とは代数群G(加法が定義されているものとする)の2つの要素g,gに対して、g=mgを満たすようなmを求める問題である。代数群Gの要素の数が大きい場合、多くの離散対数問題を解くことは、計算量的に非常に困難になることが知られている。この事実を利用して公開鍵暗号を設計することができる。 The discrete logarithm problem is a problem of obtaining m such that g 1 = mg 2 is satisfied for two elements g 1 and g 2 of the algebraic group G (addition is defined). When the number of elements of the algebraic group G is large, it is known that solving many discrete logarithm problems becomes very difficult in terms of computational complexity. Public key cryptography can be designed using this fact.

離散対数型公開鍵暗号は多く、代数群Gを定める式とgを公開鍵暗号パラメータとし、gをその公開鍵、mをその秘密鍵とする。 Discrete logarithm type public key cryptography often the formula and g 2 defining an algebraic group G as the public key encryption parameters, the public key g 1, the m and its private key.

有限体GF(q)(qは素数pのべき乗)上の楕円曲線Cとは、y+h(x)y=f(x)(h(x),f(x)はそれぞれGF(q)係数の高々1次及び、3次多項式。かつ、f(x)は最高次の係数が1)と表される方程式である。また、Cの有理点集合には加法が定義され、群となる。これらの群を利用した公開鍵暗号を楕円暗号という。 The elliptic curve C on the finite field GF (q) (q is a power of a prime number p) is y 2 + h (x) y = f (x) (h (x), f (x) is GF (q) The coefficients are at most first-order and third-order polynomials, and f (x) is an equation in which the highest-order coefficient is expressed as 1). An addition is defined for the rational point set of C to form a group. Public key cryptography using these groups is called elliptical cryptography.

つまり、楕円暗号の場合には、方程式y+h(x)y=f(x)の係数とその上の点(x,y)が楕円暗号パラメータとなり、楕円曲線上の加算に従って計算される(x,y)((x,y)は、(x,y)=K・(x,y)を満たす)がその公開鍵、スカラーKがその秘密鍵となる。 That is, in the case of elliptic cryptography, the coefficient of the equation y 2 + h (x) y = f (x) and the point (x 0 , y 0 ) above it become the elliptic cryptography parameters and are calculated according to the addition on the elliptic curve. (X 1 , y 1 ) ((x 1 , y 1 ) satisfies (x 1 , y 1 ) = K · (x 0 , y 0 )) is the public key, and scalar K is the private key Become.

ここで、スカラーKの値が大きいと、計算に時間がかかってしまう。例えば、楕円暗号の場合、Kは、2進数で160ビットの値を用いる。ここで、160ビットの各位のビット値を順に楕円暗号パラメータに加算していった場合に、相当な時間を要することになる。したがって、スカラーKをK=k+kφ(又はk+kλ、λは点群上でφが与えるスカラー倍数)と表現(分割)することで、k或いはkφのビット数の計算量で済むことになる。例えば、楕円暗号パラメータである楕円曲線上の点をPとすれば、スカラー倍計算は、KP=k・P+k・λPとなる。予め、P+λP=Sとすると、所定の位のビット値がk=1、k=0であれば、Pを用いた計算となり、k=0、k=1であれば、λPを用いた計算となり、k=1、k=1であれば、Sを用いた計算となり、k=0、k=0であれば、計算が不要となる。したがって、各位について、Pまたは、λPまたは、Sを用いた計算となり、しかも、k或いはkφのビット数の計算量で済むことになる。例えば、スカラーKが楕円曲線有理点群の位数nと同等なビット数を有するとして、kとkφとのビット数が概ね√n近くに小さくなる。すなわち、それだけ、演算回数が減り、演算速度を高速化させることができる。 Here, if the value of the scalar K is large, the calculation takes time. For example, in the case of elliptic encryption, K uses a binary value of 160 bits. Here, when the bit values of 160 bits are sequentially added to the elliptic encryption parameter, a considerable time is required. Therefore, by expressing (dividing) the scalar K as K = k 1 + k 2 φ (or k 1 + k 2 λ, where λ is a scalar multiple given by φ on the point group), the number of bits of k 1 or k 2 φ The amount of calculation will be sufficient. For example, if the point on the elliptic curve that is the elliptic encryption parameter is P, the scalar multiplication is KP = k 1 · P + k 2 · λP. Assuming that P + λP = S in advance, if the bit value at a predetermined position is k 1 = 1 and k 2 = 0, the calculation is performed using P, and if k 1 = 0 and k 2 = 1, λP is If k 1 = 1 and k 2 = 1, the calculation is performed using S. If k 1 = 0 and k 2 = 0, the calculation is not necessary. Therefore, for each position, the calculation is performed using P, λP, or S, and the calculation amount of the number of bits of k 1 or k 2 φ is sufficient. For example, assuming that the scalar K has the same number of bits as the order n of the elliptic curve rational point group, the number of bits of k 1 and k 2 φ becomes approximately close to √n. That is, the number of calculations is reduced accordingly, and the calculation speed can be increased.

まず、楕円曲線上の点をスカラーKでスカラー倍するために用いる上記スカラーKを、特殊準同型写像φを用いて分割するための分割値kとkとを求めるために用いる、ベクトルVとベクトルVとを演算するベクトル演算装置について説明する。 First, a vector V used for obtaining divided values k 1 and k 2 for dividing the scalar K, which is used to multiply a point on the elliptic curve by a scalar K, using a special homomorphism map φ. A vector computing device that computes 1 and the vector V 2 will be described.

図1は、実施の形態1におけるベクトル演算装置の構成を示す図である。   FIG. 1 is a diagram illustrating a configuration of a vector arithmetic device according to the first embodiment.

図1において、ベクトル演算装置400は、入力部401、ベクトルV演算部402、ベクトルV演算部420、出力部411、記憶部412、制御部413を備えている。ベクトルV演算部420は、計算部403,404,405,406,407,408,409,410を有する。 In FIG. 1, the vector calculation device 400 includes an input unit 401, a vector V 1 calculation unit 402, a vector V 2 calculation unit 420, an output unit 411, a storage unit 412, and a control unit 413. Vector V 2 calculation section 420 has a calculation section 403,404,405,406,407,408,409,410.

ベクトルV演算部402は、拡張ユークリッド互除法を用いてベクトルVを演算する。 Vector V 1 computing unit 402 computes a vector V 1 using the extended Euclidean algorithm.

ベクトルV演算部420は、拡張ユークリッド互除法を用いて、整数の複数の集合Aを演算し、演算された整数の複数の集合Aに含まれる複数の整数値αを用いてベクトルVを演算する。 The vector V 2 computing unit 420 computes a plurality of integer sets A h using the extended Euclidean algorithm and uses the plurality of integer values α included in the computed plurality of integer sets A h to generate a vector V 2. 2 is calculated.

記憶部412は、上記各部により入力された値、計算或いは演算された値、出力された値を記憶する。   The storage unit 412 stores the value input by each unit, the calculated or calculated value, and the output value.

制御部413は、各部を制御する。ここで、図1では、全体を制御する制御部413を備えているが、各部ごとに自己を制御する機構を備えても構わない。   The control unit 413 controls each unit. Here, in FIG. 1, the control unit 413 that controls the whole is provided, but a mechanism that controls itself may be provided for each unit.

ベクトル出力部としての出力部411は、上記ベクトルV演算部402により演算されたベクトルVと上記ベクトルV演算部420により演算されたベクトルVとを出力する。出力部411は、各演算部、或いは計算部から入力したベクトルを出力してもよいし、記憶部412に記憶されたベクトルを出力しても構わない。 The output unit 411 as a vector output unit outputs the vector V 2 calculated by the vector V 1 and the vector V 2 calculation unit 420 calculated by the vector V 1 arithmetic unit 402. The output unit 411 may output a vector input from each calculation unit or calculation unit, or may output a vector stored in the storage unit 412.

図2は、実施の形態1におけるベクトル演算方法のフローチャートを示す図である。   FIG. 2 is a diagram showing a flowchart of the vector calculation method in the first embodiment.

まず、入力部401は、整数である楕円曲線有理点群の位数nと、楕円曲線特殊準同型写像φが定めるスカラーλを入力する。   First, the input unit 401 inputs the order n of the elliptic curve rational point group, which is an integer, and the scalar λ defined by the elliptic curve special homomorphism map φ.

ステップS201において、ベクトルV演算工程として、ベクトルV演算部402は、上記入力部401により入力された位数nとスカラーλとを用いて、拡張ユークリッド互除法が定める式:s・n+t・λ=rについて、i=0、1,2,3・・・m,m+1,m+2と順に演算し、変数rについての絶対値|r|<√n、変数tについての絶対値|t|<√nとなる最小のインデックスiをm+1として、絶対値|rm+1|<√n、絶対値|tm+1|<√n、sm+1・n+tm+1・λ=rm+1、sm+1とtm+1との最大公約数gcd(sm+1、tm+1)=1となる変数sm+1、tm+1、m+1を演算する。そして、演算された変数rm+1、tm+1を用いて、ベクトルV:=(rm+1、−tm+1)を計算する。ここで、拡張ユークリッド互除法を初期値として、変数s=1,t=0,r=n,s=0,t=1,r=λで行うと、s・n+t・λ=r(i=0,1,2,…)となる列(s,t,r)(i=0,1,2,…)を漸化的に得るが、それら列の中で|r|、|t|<√nとなる最小のインデックスiをm+1と定義する。また、記号「:=」は、記号の左の記載は記号の右の記載で定義することを示す。以下、同様である。 In step S201, as the vector V 1 calculation step, the vector V 1 calculation unit 402 uses the order n and scalar λ input by the input unit 401 to determine the formula defined by the extended Euclidean algorithm: s i · n + t For i · λ = r i , i = 0, 1, 2, 3... m, m + 1, m + 2 are sequentially calculated, and the absolute value | r i | <√n for the variable r i and for the variable t i An absolute value | r m + 1 | <√n, an absolute value | t m + 1 | <√n, s m + 1 · n + t m + 1 · λ = r m + 1 , where m + 1 is the minimum index i that satisfies the absolute value | t i | <√n. s m + 1 and t m + 1 greatest common divisor of gcd (s m + 1, t m + 1) = 1 and becomes a variable s m + 1, t m + 1, calculates a r m + 1. Then, a vector V 1 : = (r m + 1 , −t m + 1 ) is calculated using the calculated variables r m + 1 and t m + 1 . Here, when the extended Euclidean algorithm is used as an initial value and the variables s 0 = 1, t 0 = 0, r 0 = n, s 1 = 0, t 1 = 1, r 1 = λ, s i · n + t i · λ = r i (i = 0,1,2, ...) to become the column (s i, t i, r i) (i = 0,1,2, ...) . However get a recurrence, they The minimum index i that satisfies | r i |, | t i | <√n in the column is defined as m + 1. The symbol “: =” indicates that the description on the left side of the symbol is defined by the description on the right side of the symbol. The same applies hereinafter.

次にステップS202で、ベクトルV演算工程の一部として、計算部403は、ベクトルV演算部402により拡張ユークリッド互除法に従い順次計算された中間変数(r、−t)か(rm+2、−tm+2)のmaxノルムが√nより小さいかどうかをチェックして、もしそうなら、そのベクトルをベクトルVとする。そうでないなら、次のステップに進む。ここで、例えば、値i,jについてのmaxノルムとは、値iの絶対値|i|と値jの絶対値|j|とのうちの大きい方の値を示す。 In step S202, as part of the vector V 2 calculating step, calculating unit 403 sequentially calculated intermediate variable in accordance extended Euclid method by vector V 1 calculation section 402 (r m, -t m) or (r It is checked whether the max norm of m + 2 , −t m + 2 ) is smaller than √n, and if so, the vector is set as vector V 2 . If not, go to the next step. Here, for example, the max norm for the values i and j indicates the larger value of the absolute value | i | of the value i and the absolute value | j | of the value j.

次にステップS203で、ベクトルV演算工程の一部として、変数v’、w‘演算部の一例としての計算部404は、拡張ユークリッド互除法を用いて上記ベクトルV演算部により演算された変数sm+1、tm+1を用いてsm+1・v’−tm+1・w‘=1となる変数v’、w‘を演算(計算)する。 In step S203, as part of the vector V 2 operation step, variables v ', w' calculating unit 404 as an example of a calculating unit, which is calculated by the vector V 1 arithmetic unit using the extended Euclidean algorithm Using the variables s m + 1 and t m + 1 , the variables v ′ and w ′ that satisfy s m + 1 · v′−t m + 1 · w ′ = 1 are calculated (calculated).

次にステップS204で、ベクトルV演算工程の一部として、計算部405は、上記特殊準同型写像φが満たす最小多項式(X+r・X+s)の係数として定まる値r、sを用いて定まる定数k*を用いて、整数値hに、−(2k*−1)≦h≦2k*−1、h≠0を満たす値を順に入力する。ここで、k*:=”√(1+|r|+s)値以上の最小の整数値”とする。以下、h=−(2k*−1)から2k*−1まで、次のステップS205からS208までを繰り返すことになる。 In step S204, as part of the vector V 2 calculating step, calculating section 405 is determined using the value r, s defined as a coefficient of the special homomorphism minimum polynomial φ satisfies (X 2 + r · X + s) Using the constant k *, values satisfying − (2k * −1) ≦ h ≦ 2k * −1 and h ≠ 0 are sequentially input to the integer value h. Here, k *: = “minimum integer value greater than or equal to √ (1+ | r | + s) value”. Thereafter, the following steps S205 to S208 are repeated from h = − (2k * −1) to 2k * −1.

ステップS205で、ベクトルV演算工程の一部として、変数v“、w“演算部の一例としての計算部406は、以下に説明する区間を定めるためのパラメータとして、上記計算部404により演算された変数v’、w‘に上記整数値hを乗じた変数v“、w“を演算する。すなわち、計算部406は、v“:=hv’、w“:=hw’を計算する。 In step S205, as part of the vector V 2 operation step, the variable v ", w" calculator 406 as an example of the arithmetic unit as a parameter for determining the interval described below, is calculated by the calculation unit 404 The variables v "and w" obtained by multiplying the variables v 'and w' by the integer value h are calculated. That is, the calculation unit 406 calculates v “: = hv ′, w ″: = hw ′.

次にステップS206で、ベクトルV演算工程の一部である閉区間I演算工程として、閉区間I演算部の一例としての計算部407は、上記特殊準同型写像φが満たす最小多項式(X+r・X+s)の係数として定まる値r、sを用いて定まる定数k*を用いた整数値h(hは、−(2k*−1)≦h≦2k*−1、h≠0を満たす)を用いて、整数値hが取り得る複数の整数値の数だけ、後述する整数αの探索範囲の確定その1の所定の閉区間Iの両端値を演算する。ここでは、計算部407は、計算部406により演算された変数v“、w“を用いて所定の閉区間Iの両端値を演算する。まず、後述する
整数αの探索範囲の確定その1の一方の端であるI11:=−v“/tm+1−k*・√n/tm+1を演算する。そして、後述する整数αの探索範囲の確定その1の他方の端であるI12:=−v“/tm+1+k*・√n/tm+1を演算する。そして、もし、tm+1>0なら閉区間I:=[I11,I12]とし、そうでないなら、閉区間I:=[I12,I11]とする。ここで、閉区間とは、例えば、閉区間I:=[I12,I11]であれば、端値I12,I11を含む、端値I12から端値I11までの間の範囲を示す。
Next, in step S206, as a closed interval I 1 calculation step that is a part of the vector V 2 calculation step, the calculation unit 407 as an example of the closed interval I 1 calculation unit includes a minimum polynomial ( Integer value h (h is − (2k * −1) ≦ h ≦ 2k * −1, h ≠ 0) using a constant k * determined using values r and s determined as coefficients of X 2 + r · X + s). met) using only the number of the plurality of integers integer value h can be taken, and calculates a definite extreme values of the one between predetermined closed interval I 1 of the search range of integer α described later. Here, the calculation unit 407 calculates both end values of the predetermined closed section I 1 using the variables v “, w” calculated by the calculation unit 406. First, I 11 : = − v “/ t m + 1 −k * · √n / t m + 1 , which is one end of the determination of the search range of the integer α, which will be described later, is calculated. I 12 : = − v “/ t m + 1 + k * · √n / t m + 1 which is the other end of the first determination of the range is calculated. If t m + 1 > 0, the closed section I 1 : = [I 11 , I 12 ] is set. Otherwise, the closed section I 1 : = [I 12 , I 11 ] is set. Here, the closed interval, e.g., closed interval I 1: = if [I 12, I 11], including the end values I 12, I 11, between the end value I 12 to the end value I 11 Indicates the range.

次にステップS207で、ベクトルV演算工程の一部である閉区間I演算工程として、閉区間I演算部の一例としての計算部408は、上記計算部407により用いられた整数値hを用いて、上記整数値hが取り得る複数の整数値の数だけ、後述する整数αの探索範囲の確定その2の所定の閉区間Iの両端値を演算する。ここでは、計算部408は、上記変数v“、w“演算部により演算された変数v“、w“を用いて所定の閉区間Iの両端値を演算する。まず、後述する整数αの探索範囲の確定その2の一方の端であるI21:=(v“・λ−w“・n)/rm+1−√n/rm+1を演算する。そして、後述する整数αの探索範囲の確定その2の他方の端であるI22:=(v“・λ−w“・n)/rm+1+√n/rm+1を演算する。そして、閉区間I:=[I21,I22]とする。 Next, in step S207, the calculation unit 408 as an example of the closed interval I 2 calculation unit is used as the closed interval I 2 calculation step which is a part of the vector V 2 calculation step, and the integer value h used by the calculation unit 407 is used. Is used to calculate the two end values of the predetermined closed section I2 of the search range of the integer α, which will be described later, as many as the number of integer values that the integer value h can take. Here, the calculation unit 408 calculates the both end values of the predetermined closed section I 2 using the variables v “, w” calculated by the variables v “, w” calculation unit. First, I 21 : = (v “· λ−w” · n) / r m + 1 −√n / r m + 1 which is one end of the second determination of the integer α search range described later is calculated. Then, I 22 : = (v “· λ−w” · n) / r m + 1 + √n / r m + 1 , which is the other end of the second determination of the integer α search range described later, is calculated. Then, the closed section I 2 : = [I 21 , I 22 ].

次にステップS208で、ベクトルV演算工程の一部である集合A演算工程として、集合A演算部の一例としての計算部409は、上記整数値hを用いた上記計算部407により演算された所定の閉区間Iの両端値によって定まる所定の閉区間Iと上記計算部408とにより演算された所定の閉区間Iの両端値によって定まる所定の閉区間Iとに共に含まれる整数の集合Aを演算する。すなわち、集合A:=“I∩Iに含まれる整数の集合”とする。そして、上記S204に戻る。上記S204において、上記整数値hに順に値が入力され、S204からS208までループ計算させることにより、結果的に上記整数値hが取り得る複数の整数値の数だけ演算し、上記整数の複数の集合Aを演算する。 Next, in step S208, as a set A h calculation step which is a part of the vector V 2 calculation step, the calculation unit 409 as an example of the set A h calculation unit performs an operation by the calculation unit 407 using the integer value h. included together with a predetermined closed interval I 2 determined by the predetermined closed interval I 1 and the calculating unit 408 with a predetermined extreme values for the closed interval I 2 calculated by determined by predetermined extreme values for the closed interval I 1, which is A set of integers A h to be calculated is calculated. In other words, the set A h : = “a set of integers included in I 1 ∩I 2 ”. Then, the process returns to S204. In S204, values are sequentially input to the integer value h, and a loop calculation is performed from S204 to S208. As a result, the number of integer values that can be taken by the integer value h is calculated. Set Ah is calculated.

上記ループを終えた後に、ステップS209で、ベクトルV演算工程の一部であるベクトル(u,v)演算工程として、ベクトル(u,v)演算部の一例としての計算部410は、上記計算部409により演算された整数の複数の集合A(hは、−(2k*−1)≦h≦2k*−1、h≠0を満たす)に含まれる上記複数の整数値αを用いて複数のベクトル(u,v)を演算する。ここでは、全てのh(−(2k*−1)≦h≦2k*−1、h≠0)、整数α∈Aに対して、u:=h・w‘n−h・v’λ+αrm+1、v:=hv’−α・tm+1としたベクトル(u,v)を演算する。 After completing the loop, at step S209, which is part of the vector V 2 operation step vector (u, v) as the calculation process, the calculation unit 410 as an example of a vector (u, v) computing unit, the computing Using the plurality of integer values α included in the plurality of integer sets A h calculated by the unit 409 (h satisfies − (2k * −1) ≦ h ≦ 2k * −1, h ≠ 0) A plurality of vectors (u, v) are calculated. Here, all the h (- (2k * -1) ≦ h ≦ 2k * -1, h ≠ 0), for integer α∈A h, u: = h · w'n-h · v'λ + αr A vector (u, v) with m + 1 , v: = hv′−α · t m + 1 is calculated.

そして、ベクトルV演算工程の一部であるmaxノルム演算工程として、maxノルム演算部の一例でもある計算部410は、上記ベクトル(u,v)演算部により演算された複数のベクトル(u,v)のmaxノルムを演算し、演算された複数のベクトル(u,v)のmaxノルムのうち、maxノルムが最小となるベクトル(u,v)をベクトルVとして上記出力部411に出力する。すなわち、計算部403は、Vを、計算部410は、Vを上記出力部411に出力する。 Then, the max-norm calculation step which is part of the vector V 2 calculating step, calculating section 410 is also an example of a max norm calculation unit, said vector (u, v) a plurality of vectors (u calculated by the calculating unit, v) the max norm calculated for, among max norm of the calculated plurality of vectors (u, v), max norm outputs smallest vector (u, v) as the vector V 2 to the output unit 411 . That is, the calculation unit 403 outputs V 1 and the calculation unit 410 outputs V 2 to the output unit 411.

ベクトル出力部としての出力部411は、上記ベクトルV演算部により演算されたベクトルVと上記ベクトルV演算部により演算されたベクトルVとを出力する。 The output unit 411 as a vector output unit outputs the vector V 2 calculated by the vector V 1 and the vector V 2 calculation section calculated by the vector V 1 arithmetic unit.

以上のように、上記整数値hが取り得る複数の整数値の数だけ演算され、その結果得た整数の複数の集合Aを用いることにより、従来技術では、拾うことができなかった整数αの探索範囲を適性に妥当な範囲で拡大させることができ、探索範囲が広がったことで、
従来技術では、得ることができなかった最短の基底を探索することができる。
As described above, the number of integer values that can be taken by the integer value h is calculated, and by using a plurality of sets of integers A h obtained as a result, the integer α that cannot be picked up by the prior art is obtained. The search range of can be expanded within a reasonable range, and the search range has expanded.
In the prior art, the shortest basis that could not be obtained can be searched.

次に、V、Vを用いて“Kの分割”を行う所定のスカラー分割値演算装置となる分割値演算装置を説明する。 Next, a divided value calculation device serving as a predetermined scalar divided value calculation device that performs “K division” using V 1 and V 2 will be described.

図3は、実施の形態1における分割値演算装置の構成を示す図である。   FIG. 3 is a diagram illustrating a configuration of the divided value calculation apparatus according to the first embodiment.

図3において、分割値演算装置500は、入力部501、分割値演算部520、分割値出力部505、記憶部506、制御部507を備えている。分割値演算部520は、計算部502,503,504を有している。   In FIG. 3, the divided value calculation device 500 includes an input unit 501, a divided value calculation unit 520, a divided value output unit 505, a storage unit 506, and a control unit 507. The division value calculation unit 520 includes calculation units 502, 503, and 504.

ベクトル入力部としての入力部501は、上記ベクトル演算装置400により演算されたベクトルVとベクトルVとを入力する。 The input unit 501 as a vector input unit inputs the vector V 1 and the vector V 2 calculated by the vector calculation device 400.

分割値演算部520は、入力部501により入力されたベクトルVとベクトルVとを用いて上記スカラーKの分割値kとkとを演算する。 The division value calculation unit 520 calculates the division values k 1 and k 2 of the scalar K using the vector V 1 and the vector V 2 input by the input unit 501.

記憶部506は、上記各部により入力された値、計算或いは演算された値、出力された値を記憶する。   The storage unit 506 stores a value input by each unit, a calculated or calculated value, and an output value.

制御部507は、各部を制御する。ここで、図3では、全体を制御する制御部507を備えているが、各部ごとに自己を制御する機構を備えても構わない。   The control unit 507 controls each unit. Here, in FIG. 3, the control unit 507 for controlling the whole is provided, but a mechanism for controlling itself may be provided for each unit.

分割値出力部としての出力部505は、上記分割値演算部520により演算されたスカラーKの分割値kとkとを出力する。出力部505は、各演算部、或いは計算部から入力した分割値を出力してもよいし、記憶部506に記憶された分割値を出力しても構わない。 An output unit 505 serving as a divided value output unit outputs the divided values k 1 and k 2 of the scalar K calculated by the divided value calculating unit 520. The output unit 505 may output the division value input from each calculation unit or calculation unit, or may output the division value stored in the storage unit 506.

図4は、実施の形態1における分割値演算方法のフローチャートを示す図である。   FIG. 4 is a diagram illustrating a flowchart of the division value calculation method according to the first embodiment.

Kの分割は、まず、スカラーKによらない互いに一次独立なベクトルV、Vを以下の手順で求めることから始まる。整数である楕円曲線有理点群の位数nと、楕円曲線特殊準同型写像φが定めるスカラーλとを用いて、2次元の整数係数の線形空間から1次元の線形空間への写像φをφ:(i,j)→i+λj(mod n)(但し、mod nは、i+λjを整数である楕円曲線有理点群の位数nで割った余りを意味する)と定める。φで0になる2次元の部分空間をKer φと書くことにすると、十分小さな“Kの分割”を得るためには、Ker φの基底V、Vで、その成分がなるべく小さくなるものをとることが必要となる。そのV、Vを使って、u=(i,j)として、φ(u)=Kとなる小ベクトルu=(k,k)を計算すると、uが、K=k+kφ(又はk+kλ)であるk,kを与えることがわかる。 The division of K starts by first obtaining vectors V 1 and V 2 that are not linearly dependent on the scalar K, by the following procedure. Using the order n of an elliptic curve rational point group that is an integer and the scalar λ defined by the elliptic curve special homomorphism map φ, the mapping φ from the linear space of the two-dimensional integer coefficient to the one-dimensional linear space is φ : (I, j) → i + λj (mod n) (where mod n means a remainder obtained by dividing i + λj by the order n of an elliptic curve rational point group which is an integer). If a two-dimensional subspace in which φ is 0 is written as Ker φ, in order to obtain a sufficiently small “K division”, the components of Ker φ bases V 1 and V 2 are as small as possible. It is necessary to take Using v 1 and V 2 and calculating a small vector u = (k 1 , k 2 ) such that φ (u) = K with u = (i, j), u becomes K = k 1 + k It can be seen that k 1 and k 2 which are 2φ (or k 1 + k 2 λ) are given.

まず、入力部501は、整数であるスカラーKと基底となるベクトルVとベクトルVとを入力する。 First, the input unit 501 inputs a scalar K that is an integer and a vector V 1 and a vector V 2 that are bases.

ステップS301において、VとVは一次独立だから、(K,0)=β・V+β・Vとなる有理数β、βが存在することがわかり、計算部502は、有理数β、βを計算する。 In step S301, since V 1 and V 2 are linearly independent, it can be seen that there are rational numbers β 1 and β 2 such that (K, 0) = β 1 · V 1 + β 2 · V 2 . Rational numbers β 1 and β 2 are calculated.

ステップS302において、計算部503は、b:=“βに一番近い整数”、b:=“βに一番近い整数”を計算する。 In step S302, the calculation unit 503 calculates b 1 : = “an integer closest to β 1 ” and b 2 : = “an integer closest to β 2 ”.

ステップS303において、計算部504は、u:=(K,0)−(b・V+b・V)を計算する。すなわち、ベクトルV=(rm+1、−tm+1)、ベクトルV=(u,v)とすると、u=(k,k)=(K,0)−(b・V+b・V)=((β−b)rm+1+(β−b)u,−(β−b)tm+1+(β−b)v)を計算することにより、“Kの分割”として、k=(β−b)rm+1+(β−b)u、k=−(β−b)tm+1+(β−b)vを得る。 In step S <b> 303, the calculation unit 504 calculates u: = (K, 0) − (b 1 · V 1 + b 2 · V 2 ). That is, if vector V 1 = (r m + 1 , −t m + 1 ) and vector V 2 = (u, v), u = (k 1 , k 2 ) = (K, 0) − (b 1 · V 1 + b 2 · V 2 ) = ((β 1 −b 1 ) r m + 1 + (β 2 −b 2 ) u, − (β 1 −b 1 ) t m + 1 + (β 2 −b 2 ) v) Thus, as “K division”, k 1 = (β 1 −b 1 ) r m + 1 + (β 2 −b 2 ) u, k 2 = − (β 1 −b 1 ) t m + 1 + (β 2 −b 2 ) Obtain v.

そして、出力部505を通して、“Kの分割”u=(k,k)を出力する。 Then, the output unit 505 outputs “K division” u = (k 1 , k 2 ).

以上のように、整数の複数の集合Aを用いることにより適性に広がった探索範囲中の整数αにより得た最短の基底を用いることにより、最良のKの分割を得ることができる。すなわち、十分小さいk、kの値を得ることができる。 As described above, the best division of K can be obtained by using the shortest basis obtained by the integer α in the search range that has been appropriately expanded by using a plurality of sets A h of integers. That is, sufficiently small values of k 1 and k 2 can be obtained.

次に、楕円暗号演算装置について説明する。   Next, an elliptic cryptography calculation device will be described.

図5は、実施の形態1における楕円暗号演算装置の構成を示す図である。   FIG. 5 is a diagram illustrating a configuration of the elliptical cryptographic operation apparatus according to the first embodiment.

図5において、楕円暗号演算装置600(楕円曲線スカラー倍演算装置の一例である)は、パラメータ入力部610、分割値入力部620、スカラー倍演算部630、スカラー倍出力部640、記憶部650、制御部660、ベクトル演算装置400、分割値演算装置500を備えている。ベクトル演算装置400と分割値演算装置500とは、別の装置として構成しても構わない。   In FIG. 5, an elliptic cryptographic operation device 600 (an example of an elliptic curve scalar multiplication device) includes a parameter input unit 610, a divided value input unit 620, a scalar multiplication operation unit 630, a scalar multiplication output unit 640, a storage unit 650, A control unit 660, a vector calculation device 400, and a division value calculation device 500 are provided. Vector computing device 400 and divided value computing device 500 may be configured as separate devices.

パラメータ入力部610は、スカラーKと楕円曲線上の点をパラメータとして入力する。   The parameter input unit 610 inputs a scalar K and a point on the elliptic curve as parameters.

分割値入力部620は、上記分割値演算装置500により演算された秘密鍵となるスカラーKの分割値kとkとを入力する。 The divided value input unit 620 inputs the divided values k 1 and k 2 of the scalar K that is the secret key calculated by the divided value calculation device 500.

スカラー倍演算部630は、上記分割値入力部620により入力された分割値kとkとを用いて、上記パラメータ入力部610により入力されたパラメータをスカラーK倍演算する。 The scalar multiplication unit 630 uses the division values k 1 and k 2 input by the division value input unit 620 to perform a scalar K multiplication operation on the parameters input by the parameter input unit 610.

記憶部650は、上記各部により入力された値、計算或いは演算された値、出力された値を記憶する。記憶部650は、ベクトル演算装置400の記憶部412と分割値演算装置500の記憶部506とを兼ねていても構わない。   The storage unit 650 stores values input by the above-described units, calculated or calculated values, and output values. The storage unit 650 may also serve as the storage unit 412 of the vector calculation device 400 and the storage unit 506 of the divided value calculation device 500.

制御部660は、各部を制御する。ここで、図5では、全体を制御する制御部660を備えているが、各部ごとに自己を制御する機構を備えても構わない。また、制御部660は、ベクトル演算装置400の制御部413と分割値演算装置500の制御部507とを兼ねていても構わない。   The control unit 660 controls each unit. Here, in FIG. 5, the control unit 660 for controlling the whole is provided, but a mechanism for controlling itself may be provided for each unit. The control unit 660 may also serve as the control unit 413 of the vector calculation device 400 and the control unit 507 of the divided value calculation device 500.

スカラー倍出力部640は、上記スカラー倍演算部630により演算された結果を公開鍵として出力する。スカラー倍出力部640は、各演算部、或いは計算部から入力した結果を出力してもよいし、記憶部650に記憶された結果を出力しても構わない。   The scalar multiplication output unit 640 outputs the result calculated by the scalar multiplication unit 630 as a public key. The scalar multiplication output unit 640 may output a result input from each calculation unit or calculation unit, or may output a result stored in the storage unit 650.

以上のように、最良のKの分割、すなわち、十分小さいk、kの値を用いることにより、スカラー倍演算を高速に行うこと、つまり、楕円暗号演算を高速に行うことができる。 As described above, by using the best K division, that is, by using sufficiently small values of k 1 and k 2 , scalar multiplication can be performed at high speed, that is, elliptic cryptography can be performed at high speed.

以上のように、実施の形態1では、楕円暗号演算を行う方法であって、特殊な準同型写像を用いて定数倍点を計算する方法を説明した。   As described above, the first embodiment has described the method of performing the elliptic cryptographic operation and calculating the constant multiple using the special homomorphic mapping.

実施の形態2.
実施の形態1の説明において「〜部」として説明したものは、一部或いはすべてコンピュータで動作可能なプログラムにより構成することができる。これらのプログラムは、例えば、C言語により作成することができる。或いは、HTMLやSGMLやXMLを用いても構わない。或いは、JAVA(登録商標)を用いて画面表示を行っても構わない。
Embodiment 2. FIG.
What has been described as “to part” in the description of the first embodiment can be configured by a part or all of a computer-operable program. These programs can be created in C language, for example. Alternatively, HTML, SGML, or XML may be used. Alternatively, the screen display may be performed using JAVA (registered trademark).

また、実施の形態1の説明において「〜部」として説明したものは、以下に説明するROM39に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。   Further, what has been described as “˜unit” in the description of the first embodiment may be realized by firmware stored in the ROM 39 described below. Alternatively, it may be implemented by software, hardware, or a combination of software, hardware, and firmware.

また、上記実施の形態1を実施させるプログラムは、また、磁気ディスク装置、FD(Flexible Disk)、光ディスク、CD(コンパクトディスク)、MD(ミニディスク)、DVD(Digital Versatile Disk)等のその他の記録媒体による記録装置を用いても構わない。   The program for implementing the first embodiment also includes other recordings such as a magnetic disk device, FD (Flexible Disk), optical disk, CD (compact disk), MD (mini disk), DVD (Digital Versatile Disk), etc. A recording apparatus using a medium may be used.

実施の形態2では、以下に、実施の形態1の説明において「〜部」として説明したものは、一部或いはすべてコンピュータで動作可能なプログラムにより、ベクトル演算装置、分割値演算装置或いは楕円暗号演算装置を構成する場合について説明する。   In the second embodiment, what is described as “to part” in the description of the first embodiment is a vector arithmetic device, a divided value arithmetic device, or an elliptic cryptographic operation, depending on a part or all of a computer-operable program. A case where the apparatus is configured will be described.

図6は、実施の形態2における楕円暗号演算装置の外観を示す図である。   FIG. 6 is a diagram illustrating an appearance of the elliptical cryptographic operation apparatus according to the second embodiment.

図6において、CRT(Cathode Ray Tube)表示装置41、キーボード(K/B)42、マウス43、コンパクトディスク装置(CDD)86、プリンタ装置87、スキャナ装置88は、パーソナルコンピュータ(PC)33にケーブルで接続されている。   In FIG. 6, a CRT (Cathode Ray Tube) display device 41, a keyboard (K / B) 42, a mouse 43, a compact disk device (CDD) 86, a printer device 87, and a scanner device 88 are connected to a personal computer (PC) 33. Connected with.

図7は、実施の形態2における楕円暗号演算装置のハードウェア構成図である。   FIG. 7 is a hardware configuration diagram of the elliptical cryptographic operation apparatus according to the second embodiment.

図7において、プログラムを実行するCPU(Central Processing
Unit)37は、バス38を介してROM(Read Only Memory)39、RAM(Random Access Memory)40、CRT表示装置41、K/B42、マウス43、通信ボード44、FDD(Flexible Disk Drive)45、磁気ディスク装置46、CDD86、プリンタ装置87、スキャナ装置88と接続されている。通信ボード44は、インターネット30に接続されている。
In FIG. 7, a CPU (Central Processing) that executes a program.
(Unit) 37 is connected via ROM 38 to ROM (Read Only Memory) 39, RAM (Random Access Memory) 40, CRT display device 41, K / B 42, mouse 43, communication board 44, FDD (Flexible Disk Drive) 45, The magnetic disk device 46, the CDD 86, the printer device 87, and the scanner device 88 are connected. The communication board 44 is connected to the Internet 30.

この実施の形態に係るベクトル演算方法は、楕円曲線上の点をスカラーK倍するために用いるスカラーKの分割値kとkとを求めるために用いる、ベクトルVとベクトルVとを演算するベクトル演算方法において、
拡張ユークリッド互除法を用いてベクトルVをCPU(Central Processing Unit)に演算させるベクトルV演算工程と、
上記ベクトルV演算工程によりCPUが演算させられたベクトルVを記憶装置に記憶するベクトルV記憶工程と、
拡張ユークリッド互除法を用いて、CPUに整数の複数の集合Aを演算させ、演算させられた整数の複数の集合Aに含まれる複数の整数値αを用いてベクトルVをCPUに演算させるベクトルV演算工程と、
上記ベクトルV演算工程によりCPUが演算させられたベクトルVを記憶装置に記憶するベクトルV記憶工程と、
上記ベクトルV演算工程により演算され、上記記憶装置に記憶されたベクトルVと上記ベクトルV演算工程により演算され、上記記憶装置に記憶されたベクトルVとを出力装置に出力する出力工程と
を備えたことを特徴とする。
In the vector calculation method according to this embodiment, a vector V 1 and a vector V 2 that are used to obtain the division values k 1 and k 2 of the scalar K used for multiplying the points on the elliptic curve by the scalar K are obtained. In the vector calculation method to calculate,
A vector V 1 calculation step for causing a CPU (Central Processing Unit) to calculate the vector V 1 using the extended Euclidean algorithm;
The vector V 1 storage step of storing a vector V 1 which CPU has been allowed to calculation in the storage device by the vector V 1 calculation step,
Using the extended Euclidean algorithm, the CPU calculates a plurality of integer sets A h and calculates the vector V 2 to the CPU using a plurality of integer values α included in the calculated plurality of integer sets A h. and vector V 2 calculation step of,
And vector V 2 storage step of storing a vector V 2 which CPU has been allowed to calculation in the storage device by the vector V 2 calculation step,
Calculated by the vector V 1 calculation step, is calculated by the stored vector V 1 and the vector V 2 calculation process in the storage device, an output step of outputting to an output device and vector V 2 stored in the storage device It is characterized by comprising.

ここで、通信ボード44は、インターネット30に限らず、LAN(ローカルエリアネットワーク)、或いはISDN等のWAN(ワイドエリアネットワーク)に接続されていても構わない。   Here, the communication board 44 is not limited to the Internet 30 and may be connected to a LAN (Local Area Network) or a WAN (Wide Area Network) such as ISDN.

磁気ディスク装置46には、オペレーティングシステム(OS)47、ウィンドウシステム48、プログラム群49、ファイル群50が記憶されている。プログラム群49は、CPU37、OS47、ウィンドウシステム48により実行される。   The magnetic disk device 46 stores an operating system (OS) 47, a window system 48, a program group 49, and a file group 50. The program group 49 is executed by the CPU 37, the OS 47, and the window system 48.

実施の形態1の説明において「〜部」として説明したものをすべてプログラムにより構成する場合、上記プログラム群49には、実施の形態1の説明において「〜部」として説明したものにより実行されるプログラムがソフトウェアとして記憶されている。ファイル群には、上記実施の形態1の説明において、入力部において入力された値、各演算部、各計算部において演算或いは計算された値が記憶されている。或いは、ファームウェアとして、ROM39に記憶される。   When all of what is described as “to part” in the description of the first embodiment is configured by a program, the program group 49 includes a program executed by what is described as “to part” in the description of the first embodiment. Is stored as software. In the file group, values input in the input unit, values calculated in the calculation units, and values calculated in the calculation units in the description of the first embodiment are stored. Alternatively, it is stored in the ROM 39 as firmware.

また、実施の形態1の説明において「〜部」として説明したものをハードウェアで実現する場合、例えば、K/B42、マウス43、通信ボード44、FDD45、CDD86、スキャナ装置88は、各装置の入力部の一例となる。また、CRT表示装置41、K/B42、マウス43、通信ボード44、FDD45、CDD86、プリンタ装置87は、各装置の出力部の一例となる。また、CPU37は、各装置の各演算部、各計算部の一例となる。出力部は、CRT表示装置41以外の出力装置を用いても構わない。   In addition, when hardware described in the description of the first embodiment is implemented as hardware, for example, the K / B 42, the mouse 43, the communication board 44, the FDD 45, the CDD 86, and the scanner device 88 are included in each device. An example of the input unit. Further, the CRT display device 41, the K / B 42, the mouse 43, the communication board 44, the FDD 45, the CDD 86, and the printer device 87 are examples of the output unit of each device. The CPU 37 is an example of each calculation unit and each calculation unit of each device. As the output unit, an output device other than the CRT display device 41 may be used.

また、上述したように、実施の形態1の説明において「〜部」として説明したものをソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。   Further, as described above, what has been described as “˜unit” in the description of the first embodiment may be implemented by a combination of software, hardware, and firmware.

以上のように、上記実施の形態では、楕円暗号演算装置であって、楕円曲線有理点群位数nとスカラー倍数λとを入力する入力手段と、基底Vを計算する計算手段と、候補となるαの集合Aを計算する計算手段と、基底Vを計算する計算手段と、計算結果を出力する出力手段とを備えたことにより、上記従来技術で用いられた分割K=k+kφ(又はk+kλ)で、k、kの値をより小さくすることができる。このことにより、スカラー倍演算を高速に行うこと、つまり、楕円暗号演算を高速に行うことが可能になる。 As described above, in the above-described embodiment, an elliptic cryptography operation apparatus is an input unit that inputs an elliptic curve rational point group number n and a scalar multiple λ, a calculation unit that calculates a basis V 1 , a candidate, The calculation means for calculating the set A h of α, the calculation means for calculating the basis V 2 , and the output means for outputting the calculation result are provided, so that the division K = k 1 used in the above-mentioned conventional technique is provided. With + k 2 φ (or k 1 + k 2 λ), the values of k 1 and k 2 can be made smaller. This makes it possible to perform a scalar multiplication operation at high speed, that is, to perform an elliptic encryption operation at high speed.

以上のように、上記実施の形態では、従来法では、まだ改善の余地が残されていた楕円曲線暗号演算法に対して、更なる高速化を得ることを可能にし、計算資源が限られた環境においても、十分な実用性を発揮する暗号機能を実現可能にすることができるV、Vを探索することができる。 As described above, in the above-described embodiment, it is possible to obtain a further increase in speed with respect to the elliptic curve cryptography which still has room for improvement in the conventional method, and the calculation resources are limited. Even in the environment, it is possible to search for V 1 and V 2 that can realize a cryptographic function exhibiting sufficient practicality.

最良のKの分割、すなわち、十分小さいk、kの値を用いることにより、スカラー倍演算を高速に行うこと、計算時間を短くすること、つまり、楕円暗号演算を高速に行うことができることにより、クロックの小さいCPUしか搭載していない、或いはできないICカード上での暗号演算実行や、ユビキタス環境での情報セキュリティ確保のため、メ
モリ或いは計算時間といった計算リソースが制限された環境での使用が可能となる。
By using the best K division, that is, by using sufficiently small values of k 1 and k 2 , scalar multiplication can be performed at high speed, calculation time can be shortened, that is, elliptic cryptography can be performed at high speed. Therefore, it can be used in an environment where calculation resources such as memory or calculation time are limited in order to execute cryptographic operations on an IC card that only has or cannot be equipped with a CPU with a small clock and to ensure information security in a ubiquitous environment. It becomes possible.

実施の形態1におけるベクトル演算装置の構成を示す図である。1 is a diagram showing a configuration of a vector arithmetic device in Embodiment 1. FIG. 実施の形態1におけるベクトル演算方法のフローチャートを示す図である。FIG. 4 is a diagram showing a flowchart of a vector calculation method in the first embodiment. 実施の形態1における分割値演算装置の構成を示す図である。3 is a diagram illustrating a configuration of a divided value calculation device according to Embodiment 1. FIG. 実施の形態1における分割値演算方法のフローチャートを示す図である。6 is a diagram illustrating a flowchart of a division value calculation method in Embodiment 1. FIG. 実施の形態1における楕円暗号演算装置の構成を示す図である。2 is a diagram showing a configuration of an elliptical cryptographic operation apparatus in Embodiment 1. FIG. 実施の形態2における楕円暗号演算装置の外観を示す図である。It is a figure which shows the external appearance of the elliptical cryptographic operation apparatus in Embodiment 2. FIG. 実施の形態2における楕円暗号演算装置のハードウェア構成図である。FIG. 6 is a hardware configuration diagram of an elliptical cryptographic operation apparatus according to Embodiment 2.

符号の説明Explanation of symbols

30 インターネット、33 PC、37 CPU、38 バス、39 ROM、40
RAM、41 CRT表示装置、42 K/B、43 マウス、44 通信ボード、45 FDD、46 磁気ディスク装置、47 OS、48 ウィンドウシステム、49 プログラム群、50 ファイル群、86 CDD、87 プリンタ装置、88 スキャナ装置、400 ベクトル演算装置、401 入力部、402 ベクトルV演算部、403,404,405,406,407,408,409,410 計算部、411 出力部、412 記憶部、413 制御部、420 ベクトルV演算部、500 分割値演算装置、501 入力部、502,503,504 計算部、505 出力部、506 記憶部、507 制御部、520 分割値演算部、600 楕円暗号演算装置、610 パラメータ入力部、620 分割値入力部、630 スカラー倍演算部、640 スカラー倍出力部、650 記憶部、660 制御部。
30 Internet, 33 PC, 37 CPU, 38 bus, 39 ROM, 40
RAM, 41 CRT display device, 42 K / B, 43 mouse, 44 communication board, 45 FDD, 46 magnetic disk device, 47 OS, 48 window system, 49 program group, 50 file group, 86 CDD, 87 printer device, 88 scanner, 400 vector operation unit, 401 input unit, 402 vector V 1 arithmetic unit, 403,404,405,406,407,408,409,410 calculation unit, 411 output unit, 412 storage unit, 413 control unit, 420 Vector V 2 calculation unit, 500 division value calculation unit, 501 input unit, 502, 503, 504 calculation unit, 505 output unit, 506 storage unit, 507 control unit, 520 division value calculation unit, 600 elliptic encryption calculation unit, 610 parameters Input unit, 620 division value input unit, 630 scalar multiplication unit, 64 0 scalar multiplication output unit, 650 storage unit, 660 control unit.

Claims (9)

楕円曲線上の点をスカラーKでスカラー倍するために用いる上記スカラーKを、自己準同形写像である特殊準同型写像φと分割値kとkとを用いてスカラーK=k+kφとし、2次元の整数係数の線形空間から1次元の線形空間への写像fをf:(i,j)→i+λj(mod n)(但し、mod nは、i+λjをnで割った余りを意味する)とし、上記写像fが0になる2次元の部分空間をKer fとし、Ker fの基底ベクトルであって基底ベクトルの成分の絶対値が最も小さくなるもの(ただし、絶対値がゼロになるものを除く)をベクトルVとベクトルVとし、ベクトルV及びベクトルVを使用して、f(u)=Kとなる小ベクトルu=(k,k)を計算すると、小ベクトルuが上記スカラーKのK=k+kφのk,kを与えるベクトルVとベクトルVとを演算するベクトル演算装置において、
拡張ユークリッド互除法を用いて上記ベクトルVを演算するベクトルV演算部と、
上記拡張ユークリッド互除法を用いて、複数の整数値を有する複数の集合Aを演算し、演算された複数の整数値を有する複数の集合Aに含まれる複数の整数値αを用いて上記ベクトルVを演算するベクトルV演算部と、
上記ベクトルV演算部により演算されたベクトルVと上記ベクトルV演算部により演算されたベクトルVとを出力するベクトル出力部と
を備えたことを特徴とするベクトル演算装置。
The scalar K using a point on the elliptic curve to a scalar multiplication by a scalar K, the scalar K = k 1 + k 2 with a special homomorphism φ division value k 1 and k 2 is an endomorphism mapping Let f be a mapping f from a linear space of a two-dimensional integer coefficient to a one-dimensional linear space f: (i, j) → i + λj (mod n) (where mod n is the remainder of dividing i + λj by n) And the two-dimensional subspace where the mapping f is 0 is Ker f, which is the basis vector of Ker f with the smallest absolute value of the component of the basis vector (however, the absolute value is zero) And vector V 1 and vector V 2, and using vector V 1 and vector V 2 to calculate a small vector u = (k 1 , k 2 ) such that f (u) = K, Small vector u is K of the above scalar K In vector operation unit for calculating a vector V 1 and vector V 2 to provide a k 1, k 2 of the k 1 + k 2 φ,
The vector V 1 calculator for calculating the vector V 1 using the extended Euclidean algorithm,
A plurality of sets A h having a plurality of integer values are calculated using the extended Euclidean algorithm, and a plurality of integer values α included in the plurality of sets A h having a plurality of calculated integer values are used. and vector V 2 calculator for calculating a vector V 2,
Vector operation unit, characterized in that a vector output unit for outputting a vector V 2 calculated by the vector V 1 and the vector V 2 calculation section calculated by the vector V 1 arithmetic unit.
上記ベクトルV演算部は、
上記特殊準同型写像φがφ+r・φ+s=0を満たす時、φが満たす最小多項式(X+r・X+s)の式の係数として定まる値r、sを用いて定まる定数k*を用いた整数値h(hは、−(2k*−1)≦h≦2k*−1、h≠0を満たす)を用いて、整数値hが取り得る複数の整数値の数だけ所定の閉区間Iの両端値を演算する閉区間I演算部と、
上記閉区間I演算部により用いられた整数値hを用いて、上記整数値hが取り得る複数の整数値の数だけ所定の閉区間Iの両端値を演算する閉区間I演算部と、
上記整数値hを用いた上記閉区間I演算部により演算された所定の閉区間Iの両端値によって定まる所定の閉区間Iと上記閉区間I演算部とにより演算された所定の閉区間Iの両端値によって定まる所定の閉区間Iとに共に含まれる複数の整数値を有する集合Aを上記整数値hが取り得る複数の整数値の数だけ演算し、上記複数の整数値を有する複数の集合Aを演算する集合A演算部と、
上記集合A演算部により演算された複数の整数値を有する複数の集合Aに含まれる上記複数の整数値αを用いて複数のベクトル(u,v)を演算するベクトル(u,v)演算部と、
上記ベクトル(u,v)演算部により演算された複数のベクトル(u,v)のmaxノルムを演算し、演算された複数のベクトル(u,v)のmaxノルムのうち、maxノルムが最小となるベクトル(u,v)をベクトルVとして上記出力部に出力するmaxノルム演算部と
を有することを特徴とする請求項1記載のベクトル演算装置。
The vector V 2 calculation unit is
When the above-mentioned special homomorphism φ satisfies φ 2 + r · φ + s = 0, a constant k * determined using values r and s determined as coefficients of an expression of the minimum polynomial (X 2 + r · X + s) that φ satisfies is used. By using an integer value h (h is − (2k * −1) ≦ h ≦ 2k * −1 and h ≠ 0 is satisfied), the predetermined closed interval I is equal to the number of integer values that the integer value h can take. a closed interval I 1 calculator for calculating one of the extreme values,
Using the integer value h used by the closed section I 1 calculation section, the closed section I 2 calculation section that calculates the two end values of the predetermined closed section I 2 by the number of integer values that the integer value h can take. When,
The integer value h a predetermined calculated by the closed interval I 1 arithmetic unit using the closed interval I 1 given determined by the extreme values closing section I 1 and the closing section I given calculated by the second arithmetic unit the set a h having a plurality of integer values contained together in a predetermined and closed interval I 2 determined by the extreme values for the I 2 closed interval calculated by the number of the plurality of integer values that can take the integer value h, the plurality A set A h calculation unit for calculating a plurality of sets A h having integer values;
A vector (u, v) for calculating a plurality of vectors (u, v) using the plurality of integer values α included in the plurality of sets A h having a plurality of integer values calculated by the set A h calculation unit. An arithmetic unit;
The max norm of a plurality of vectors (u, v) computed by the vector (u, v) computing unit is computed, and the max norm is the smallest among the max norms of the computed vectors (u, v). comprising vector (u, v) the vector arithmetic unit according to claim 1, characterized in that it has a max norm calculation unit for outputting to the output unit as a vector V 2.
上記ベクトル演算装置は、さらに、上記楕円曲線の有理点群の位数nと、上記特殊準同型写像φが有理点群上で与えるスカラー倍数であるスカラーλとを入力する入力部を備え、
上記ベクトルV演算部は、上記入力部により入力された位数nとスカラーλとを用いて、拡張ユークリッド互除法が定める式:s・n+t・λ=rについて絶対値|r|、|t|<√nとなる最小のインデックスiをm+1として、|rm+1|、|tm+1|<√n、sm+1・n+tm+1・λ=rm+1、最大公約数gcd(sm+1、tm+1)=1となる変数sm+1、tm+1を演算し、
上記ベクトルV演算部は、さらに、
上記ベクトルV演算部により演算された変数sm+1、tm+1を用いてsm+1・v’−tm+1・w‘=1となる変数v’、w‘を演算する変数v’、w‘演算部と、
上記変数v’、w‘演算部により演算された変数v’、w‘に上記整数値hを乗じて変数v“、w“を演算する変数v“、w“演算部と
を有し、
上記閉区間I演算部は、上記変数v“、w“演算部により演算された変数v“、w“を用いて所定の閉区間Iの両端値を演算し、
上記閉区間I演算部は、上記変数v“、w“演算部により演算された変数v“、w“を用いて所定の閉区間Iの両端値を演算することを特徴とする請求項2記載のベクトル演算装置。
The vector arithmetic device further includes an input unit for inputting the order n of the rational point group of the elliptic curve and a scalar λ that is a scalar multiple given by the special homomorphic map φ on the rational point group,
The vector V 1 calculation unit uses the position number n and scalar lambda input by the input unit, wherein extended Euclid method stipulated: s i · n + t i · λ = absolute value for r i | r i |, | T i | <√n where m + 1 is the minimum index i, | r m + 1 |, | t m + 1 | <√n, s m + 1 · n + t m + 1 · λ = r m + 1 , greatest common divisor gcd (s m + 1 , T m + 1 ) = 1 and the variables s m + 1 and t m + 1 are calculated,
The vector V 2 calculation unit further includes:
Variables v ′ and w ′ for calculating variables v ′ and w ′ such that s m + 1 · v′−t m + 1 · w ′ = 1 using the variables s m + 1 and t m + 1 calculated by the vector V 1 calculation unit. And
Variables v 'and w' calculated by the variables v 'and w' calculating units are multiplied by the integer value h to calculate variables v "and w".
The closed section I 1 computing unit computes both end values of a predetermined closed section I 1 using the variables v “, w” computed by the variables v “, w” computing unit,
The closed section I 2 computation unit computes both end values of a predetermined closed section I 2 using the variables v ", w" computed by the variables v ", w" computation unit. 3. The vector arithmetic device according to 2.
請求項1記載のベクトル演算装置により演算されたベクトルVとベクトルVとを入力するベクトル入力部と、
上記ベクトル入力部により入力されたベクトルVとベクトルVとを用いて上記スカラーKの分割値kとkとを演算する分割値演算部と、
上記分割値演算部により演算されたスカラーKの分割値kとkとを出力する分割値出力部と
を備えたことを特徴とする分割値演算装置。
And a vector input unit for inputting the claims 1 vector V 1 calculated by the vector calculation apparatus according the vector V 2,
A divided value calculation unit that calculates the divided values k 1 and k 2 of the scalar K using the vector V 1 and the vector V 2 input by the vector input unit;
A division value calculation device comprising: a division value output unit that outputs the division values k 1 and k 2 of the scalar K calculated by the division value calculation unit.
楕円曲線上の点をパラメータとして入力するパラメータ入力部と、
請求項4記載の分割値演算装置により演算されたスカラーKの分割値kとkとを入力する分割値入力部と、
上記分割値入力部により入力された分割値kとkとを用いて、上記パラメータ入力部により入力されたパラメータをスカラーK倍演算するスカラー倍演算部と、
上記スカラー倍演算部により演算された結果を出力するスカラー倍出力部と
を備えたことを特徴とする楕円曲線スカラー倍演算装置。
A parameter input unit for inputting a point on the elliptic curve as a parameter;
A division value input unit for inputting the divided value k 1 and k 2 of the scalar K calculated by dividing value calculation device according to claim 4,
By using the division value k 1 and k 2 input by the division value input unit, the scalar multiplication calculator for scalar K multiplication parameters input by the parameter input unit,
An elliptic curve scalar multiplication unit comprising: a scalar multiplication output unit that outputs a result calculated by the scalar multiplication unit.
楕円曲線上の点を楕円暗号パラメータとして入力するパラメータ入力部と、
請求項4記載の分割値演算装置により演算された秘密鍵となるスカラーKの分割値kとkとを入力する分割値入力部と、
上記分割値入力部により入力された分割値kとkとを用いて、上記パラメータ入力部により入力されたパラメータをスカラーK倍演算するスカラー倍演算部と、
上記スカラー倍演算部により演算された結果を公開鍵として出力するスカラー倍出力部と
を備えたことを特徴とする楕円暗号演算装置。
A parameter input unit for inputting a point on the elliptic curve as an elliptic encryption parameter;
A division value input unit for inputting the claims 4 division value k 1 scalar K as a secret key which is calculated by dividing value calculation device according and k 2,
By using the division value k 1 and k 2 input by the division value input unit, the scalar multiplication calculator for scalar K multiplication parameters input by the parameter input unit,
An elliptic cryptography operation device comprising: a scalar multiplication output unit that outputs a result calculated by the scalar multiplication unit as a public key.
楕円曲線上の点をスカラーKでスカラーK倍するために用いる上記スカラーKを、自己準同形写像である特殊準同型写像φと分割値kとkとを用いてスカラーK=k+kφとし、2次元の整数係数の線形空間から1次元の線形空間への写像fをf:(i,j)→i+λj(mod n)(但し、mod nは、i+λjをnで割った余りを意味する)とし、上記写像fが0になる2次元の部分空間をKer fとし、Ker fの基底ベクトルであって基底ベクトルの成分の絶対値が最も小さくなるもの(ただし、絶対値がゼロになるものを除く)をベクトルVとベクトルVとし、ベクトルV及びベクトルVを使用して、f(u)=Kとなる小ベクトルu=(k,k)を計算すると、小ベクトルuが上記スカラーKのK=k+kφのk,kを与えるベクトルVとベクトルVとを演算するベクトル演算方法において、
拡張ユークリッド互除法を用いて上記ベクトルVをCPU(Central Processing Unit)に演算させるベクトルV演算工程と、
上記ベクトルV演算工程によりCPUが演算させられたベクトルVを記憶装置に記憶するベクトルV記憶工程と、
上記拡張ユークリッド互除法を用いて、CPUに複数の整数値を有する複数の集合Aを演算させ、演算させられた複数の整数値を有する複数の集合Aに含まれる複数の整数値αを用いてベクトルVをCPUに演算させるベクトルV演算工程と、
上記ベクトルV演算工程によりCPUが演算させられたベクトルVを記憶装置に記憶するベクトルV記憶工程と、
上記ベクトルV演算工程により演算され、上記記憶装置に記憶されたベクトルVと上記ベクトルV演算工程により演算され、上記記憶装置に記憶されたベクトルVとを出力装置に出力する出力工程と
を備えたことを特徴とするベクトル演算方法。
The above-mentioned scalar K used for multiplying a point on the elliptic curve by a scalar K is a scalar K = k 1 + k using a special homomorphism map φ, which is a self-homogeneous map, and divided values k 1 and k 2. and 2 phi, the mapping f from a linear space of a two-dimensional integer coefficients into one-dimensional linear space f: (i, j) → i + λj (mod n) ( where, mod n, the remainder of dividing i + lambda] j at n And the two-dimensional subspace where the mapping f is 0 is Ker f, which is the basis vector of Ker f and has the smallest absolute value of the component of the basis vector (however, the absolute value is zero) And vector V 1 and vector V 2, and using vector V 1 and vector V 2 to calculate a small vector u = (k 1 , k 2 ) such that f (u) = K , The small vector u is the scalar K In = k 1 + k 2 k 1 , vector calculation method for calculating the vectors V 1 and vector V 2 that gives k 2 of phi,
A vector V 1 calculation step for causing a CPU (Central Processing Unit) to calculate the vector V 1 using the extended Euclidean algorithm;
The vector V 1 storage step of storing a vector V 1 which CPU has been allowed to calculation in the storage device by the vector V 1 calculation step,
Using the extended Euclidean algorithm, CPU to by computing a plurality of sets A h having a plurality of integer values, a plurality of integer values α included in the plurality of sets A h having a plurality of integer values that are allowed to operation and vector V 2 calculation step of calculating a vector V 2 to the CPU using,
And vector V 2 storage step of storing a vector V 2 which CPU has been allowed to calculation in the storage device by the vector V 2 calculation step,
Calculated by the vector V 1 calculation step, is calculated by the stored vector V 1 and the vector V 2 calculation process in the storage device, an output step of outputting to an output device and vector V 2 stored in the storage device And a vector calculation method.
楕円曲線上の点をスカラーKでスカラー倍するために用いる上記スカラーKを、自己準同形写像である特殊準同型写像φと分割値kとkとを用いてスカラーK=k+kφとし、2次元の整数係数の線形空間から1次元の線形空間への写像fをf:(i,j)→i+λj(mod n)(但し、mod nは、i+λjをnで割った余りを意味する)とし、上記写像fが0になる2次元の部分空間をKer fとし、Ker fの基底ベクトルであって基底ベクトルの成分の絶対値が最も小さくなるもの(ただし、絶対値がゼロになるものを除く)をベクトルVとベクトルVとし、ベクトルV及びベクトルVを使用して、f(u)=Kとなる小ベクトルu=(k,k)を計算すると、小ベクトルuが上記スカラーKのK=k+kφのk,kを与えるベクトルVとベクトルVとを演算することをコンピュータに実行させるプログラムにおいて、
拡張ユークリッド互除法を用いて上記ベクトルVを演算するベクトルV演算処理と、
上記ベクトルV演算処理により演算されたベクトルVを記憶装置に記憶するベクトルV記憶処理と、
上記拡張ユークリッド互除法を用いて、複数の整数値を有する複数の集合Aを演算し、演算された複数の整数値を有する複数の集合Aに含まれる複数の整数値αを用いて上記ベクトルVを演算するベクトルV演算処理と、
上記ベクトルV演算処理により演算されたベクトルVを記憶装置に記憶するベクトルV記憶処理と、
上記ベクトルV演算処理により演算され、上記記憶装置に記憶されたベクトルVと上記ベクトルV演算処理により演算され、上記記憶装置に記憶されたベクトルVとを出力装置に出力する出力処理と
をコンピュータに実行させることを特徴とするプログラム。
The scalar K using a point on the elliptic curve to a scalar multiplication by a scalar K, the scalar K = k 1 + k 2 with a special homomorphism φ division value k 1 and k 2 is an endomorphism mapping Let f be a mapping f from a linear space of a two-dimensional integer coefficient to a one-dimensional linear space f: (i, j) → i + λj (mod n) (where mod n is the remainder of dividing i + λj by n) And the two-dimensional subspace where the mapping f is 0 is Ker f, which is the basis vector of Ker f with the smallest absolute value of the component of the basis vector (however, the absolute value is zero) And vector V 1 and vector V 2, and using vector V 1 and vector V 2 to calculate a small vector u = (k 1 , k 2 ) such that f (u) = K, Small vector u is K of the above scalar K A program for executing by computing the vector V 1 and the vector V 2 to a computer to provide a k 1, k 2 of the k 1 + k 2 φ,
The vector V 1 calculation process of calculating the vector V 1 using the extended Euclidean algorithm,
The vector V 1 storage process of storing the vector V 1 calculated by the vector V 1 processing in the storage device,
A plurality of sets A h having a plurality of integer values are calculated using the extended Euclidean algorithm, and a plurality of integer values α included in the plurality of sets A h having a plurality of calculated integer values are used. and vector V 2 arithmetic processing for calculating the vector V 2,
And vector V 2 storage process of storing the vector V 2 calculated by the vector V 2 processing in the storage device,
Calculated by the vector V 1 processing, it is calculated by the storage device to the stored vector V 1 and the vector V 2 arithmetic processing, output processing of outputting to an output device and vector V 2 stored in the storage device A program characterized by causing a computer to execute.
楕円曲線上の点をスカラーKでスカラー倍するために用いる上記スカラーKを、自己準同形写像である特殊準同型写像φと分割値kとkとを用いてスカラーK=k+kφとし、2次元の整数係数の線形空間から1次元の線形空間への写像fをf:(i,j)→i+λj(mod n)(但し、mod nは、i+λjをnで割った余りを意味する)とし、上記写像fが0になる2次元の部分空間をKer fとし、Ker fの基底ベクトルであって基底ベクトルの成分の絶対値が最も小さくなるもの(ただし、絶対値がゼロになるものを除く)をベクトルVとベクトルVとし、ベクトルV及びベクトルVを使用して、f(u)=Kとなる小ベクトルu=(k,k)を計算すると、小ベクトルuが上記スカラーKのK=k+kφのk,kを与えるベクトルVとベクトルVとを演算することをコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体において、
拡張ユークリッド互除法を用いて上記ベクトルVを演算するベクトルV演算処理と、
上記ベクトルV演算処理により演算されたベクトルVを記憶装置に記憶するベクトルV記憶処理と、
上記拡張ユークリッド互除法を用いて、複数の整数値を有する複数の集合Aを演算し、演算された複数の整数値を有するの複数の集合Aに含まれる複数の整数値αを用いてベクトルVを演算するベクトルV演算処理と、
上記ベクトルV演算処理により演算されたベクトルVを記憶装置に記憶するベクトルV記憶処理と、
上記ベクトルV演算処理により演算され、上記記憶装置に記憶されたベクトルVと上記ベクトルV演算処理により演算され、上記記憶装置に記憶されたベクトルVとを出力装置に出力する出力処理と
をコンピュータに実行させることを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
The scalar K using a point on the elliptic curve to a scalar multiplication by a scalar K, the scalar K = k 1 + k 2 with a special homomorphism φ division value k 1 and k 2 is an endomorphism mapping Let f be a mapping f from a linear space of a two-dimensional integer coefficient to a one-dimensional linear space f: (i, j) → i + λj (mod n) (where mod n is the remainder of dividing i + λj by n) And the two-dimensional subspace where the mapping f is 0 is Ker f, which is the basis vector of Ker f with the smallest absolute value of the component of the basis vector (however, the absolute value is zero) And vector V 1 and vector V 2, and using vector V 1 and vector V 2 to calculate a small vector u = (k 1 , k 2 ) such that f (u) = K, Small vector u is K of the above scalar K In k 1 + k 2 φ of k 1, k 2 computer-readable recording medium recording a program for executing that operation on the vector V 1 and the vector V 2 to a computer which gives,
The vector V 1 calculation process of calculating the vector V 1 using the extended Euclidean algorithm,
The vector V 1 storage process of storing the vector V 1 calculated by the vector V 1 processing in the storage device,
Using the extended Euclidean algorithm, a plurality of sets A h having a plurality of integer values are calculated, and a plurality of integer values α included in the plurality of sets A h having a plurality of calculated integer values are used. and vector V 2 arithmetic processing for calculating the vector V 2,
And vector V 2 storage process of storing the vector V 2 calculated by the vector V 2 processing in the storage device,
Calculated by the vector V 1 processing, it is calculated by the storage device to the stored vector V 1 and the vector V 2 arithmetic processing, output processing of outputting to an output device and vector V 2 stored in the storage device And a computer-readable recording medium on which a program is recorded.
JP2003414358A 2003-12-12 2003-12-12 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 Expired - Lifetime JP4629972B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003414358A JP4629972B2 (en) 2003-12-12 2003-12-12 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003414358A JP4629972B2 (en) 2003-12-12 2003-12-12 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

Publications (2)

Publication Number Publication Date
JP2005173301A JP2005173301A (en) 2005-06-30
JP4629972B2 true JP4629972B2 (en) 2011-02-09

Family

ID=34734177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003414358A Expired - Lifetime JP4629972B2 (en) 2003-12-12 2003-12-12 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

Country Status (1)

Country Link
JP (1) JP4629972B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009104260A1 (en) 2008-02-20 2009-08-27 三菱電機株式会社 Verifying device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002533787A (en) * 1998-12-24 2002-10-08 サーティコム コーポレーション How to speed up cryptographic operations on elliptic curves
JP2003228285A (en) * 2002-02-06 2003-08-15 Hitachi Ltd Arithmetic unit for elliptic curve scalar multiple

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002533787A (en) * 1998-12-24 2002-10-08 サーティコム コーポレーション How to speed up cryptographic operations on elliptic curves
JP2003228285A (en) * 2002-02-06 2003-08-15 Hitachi Ltd Arithmetic unit for elliptic curve scalar multiple

Also Published As

Publication number Publication date
JP2005173301A (en) 2005-06-30

Similar Documents

Publication Publication Date Title
JP5378579B2 (en) Module reduction using folding
EP3646523A1 (en) Variable relinearization in homomorphic encryption
US10372886B2 (en) Protecting the input/output of modular encoded white-box RSA/ECC
KR102550812B1 (en) Method for comparing ciphertext using homomorphic encryption and apparatus for executing thereof
US10235506B2 (en) White-box modular exponentiation
US10140437B2 (en) Array indexing with modular encoded values
Jalali et al. NEON SIKE: Supersingular isogeny key encapsulation on ARMv7
JP5329879B2 (en) COMPUTER DEVICE, METHOD, AND PROGRAM
JPWO2006030496A1 (en) Elliptic curve cryptography calculation device, calculation method of calculation device using elliptic curve, and program for causing computer to execute scalar multiplication of points on elliptic curve
Vollala et al. Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography
JP5175983B2 (en) Arithmetic unit
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
Gulen et al. Elliptic‐curve cryptography for wireless sensor network nodes without hardware multiplier support
Chung et al. Encoding of rational numbers and their homomorphic computations for FHE-based applications
KR100954843B1 (en) Method and Apparatus of elliptic curve cryptographic operation based on block indexing on sensor mote and Recording medium using by the same
JP3145368B2 (en) Elliptic curve calculation device, calculation method, and recording medium storing program for executing the method
JP4752176B2 (en) Unidirectional function calculation method, apparatus and program
Fournaris et al. Comparing design approaches for elliptic curve point multiplication over GF (2k) with polynomial basis representation
WO2011030468A1 (en) Arithmetic device
Taşkın et al. TMVP-friendly primes for efficient elliptic curve cryptography
JP3639153B2 (en) Elliptic curve calculation device and program recording medium using sequential enlargement
WO2022009384A1 (en) Final exponentiation calculation device, pairing calculation device, code processing unit, final exponentiation calculation method, and final exponentiation calculation program
JP7191804B2 (en) SAFETY EVALUATION DEVICE, SAFETY EVALUATION METHOD AND SAFETY EVALUATION PROGRAM
Shenets et al. New Regular Sliding Window Algorithms for Elliptic Curve Scalar Point Multiplication
JP2001194996A (en) Division device for polynomial

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060928

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101020

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101112

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

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4629972

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term