JP5246796B2 - Scalar multiplication arithmetic unit and power multiplication arithmetic unit - Google Patents

Scalar multiplication arithmetic unit and power multiplication arithmetic unit Download PDF

Info

Publication number
JP5246796B2
JP5246796B2 JP2009229150A JP2009229150A JP5246796B2 JP 5246796 B2 JP5246796 B2 JP 5246796B2 JP 2009229150 A JP2009229150 A JP 2009229150A JP 2009229150 A JP2009229150 A JP 2009229150A JP 5246796 B2 JP5246796 B2 JP 5246796B2
Authority
JP
Japan
Prior art keywords
dmax
storage means
storing
value
polynomial
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 - Fee Related
Application number
JP2009229150A
Other languages
Japanese (ja)
Other versions
JP2009301070A (en
Inventor
保之 野上
良孝 森川
英洋 加藤
正剛 赤根
Original Assignee
国立大学法人 岡山大学
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 国立大学法人 岡山大学 filed Critical 国立大学法人 岡山大学
Priority to JP2009229150A priority Critical patent/JP5246796B2/en
Publication of JP2009301070A publication Critical patent/JP2009301070A/en
Application granted granted Critical
Publication of JP5246796B2 publication Critical patent/JP5246796B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、有理点Qのスカラーn倍算のnを少なくともt−1進展開することによりスカラー倍算の演算を高速化したスカラー倍算の演算装置及び元Aのn乗算のnを少なくとも(q−r)進展開することによりべき乗算の演算を高速化したべき乗算の演算装置に関する。   The present invention provides a scalar multiplication operation device that speeds up the operation of scalar multiplication by at least t-1 expansion of n of scalar n multiplication of rational point Q, and at least n of n multiplication of element A ( The present invention relates to an arithmetic device for power multiplication that speeds up the power of multiplication by performing q-r advance.

昨今、インターネットなどの電気通信回線を利用した情報ネットワーク技術が高度に発展し、インターネットによって様々な情報を取得するだけでなく、インターネットバンキングや行政機関への電子申請などのような各種のサービスが提供されてきている。   In recent years, information network technology using telecommunications lines such as the Internet has been developed to provide various services such as Internet banking and electronic application to government agencies. Has been.

このようなサービスを利用する場合には、サービスの利用者が、成りすましや架空の人間などではなく、適正な利用者であることを確認するための認証処理が必要であり、信頼性の高い認証方法として、公開鍵と秘密鍵を用いる公開鍵暗号をベースとした電子認証技術がよく利用されている。   When using such a service, authentication processing is required to confirm that the user of the service is an appropriate user, not impersonation or a fictitious person. As a method, an electronic authentication technique based on public key cryptography using a public key and a secret key is often used.

しかしながら、公開鍵暗号方式の電子認証では、公開鍵あるいは秘密鍵が漏洩した場合には直ちに公開鍵と秘密鍵を変更する必要があり、公開鍵及び秘密鍵の管理を慎重に行わなければならないとともに、必要に応じて新たな公開鍵と秘密鍵の設定登録作業が生じるという繁雑さがあるため、最近では、利用者の氏名やメールアドレスのように利用者特有のIDを用いて電子認証を行うIDベース暗号が用いられることが多くなっている。   However, in the electronic authentication of the public key cryptosystem, when the public key or the private key is leaked, it is necessary to change the public key and the private key immediately, and the public key and the private key must be managed carefully. Because of the complexity of creating and registering new public and private keys as needed, recently, electronic authentication is performed using user-specific IDs such as user names and email addresses. ID-based encryption is often used.

また、電子認証を行う認証装置によって利用者の個人認証を行った場合には、認証装置に利用者ごとの履歴が蓄積されることとなり、この履歴情報自体が利用者の個人情報であって、最近では、この履歴情報が漏洩することによる個人情報の漏洩のおそれが指摘されている。   In addition, when user authentication is performed by an authentication device that performs electronic authentication, a history for each user is accumulated in the authentication device, and this history information itself is personal information of the user, Recently, it has been pointed out that personal information may be leaked due to leakage of history information.

そこで、認証装置では利用者の個人情報を利用して認証を行うのではなく、複数の利用者をひとまとまりのグループとして、このグループに所属していることを示すグループ署名を用いることにより、利用者を特定することなく認証を行うことによって、認証装置に個人情報が蓄積されることなく認証を可能としたグループ署名技術が提案されている。   Therefore, the authentication device does not authenticate using the user's personal information, but uses multiple users as a group and uses a group signature indicating that they belong to this group. A group signature technique has been proposed in which authentication is performed without specifying a person, thereby enabling authentication without accumulating personal information in an authentication apparatus.

このようなIDベース暗号やグループ署名における所用の演算には、楕円曲線上の有理点の双線形写像を用いるペアリングと呼ばれる手法が用いられている。ペアリングとは、たとえば、Pを素体Fq上の有理点、Qをk次拡大体Fq k上の有理点として、PとQとを入力して拡大体F* q kの元zが出力されるとき、a倍のPと、b倍のQを入力するとzのab乗が出力される演算である。なお、ここで、「k」を埋込み次数と呼び、「F* q k」は、正しくは、以下の表示であるが、表示の制限上、「F* q k」と表示している。 A method called pairing that uses a bilinear mapping of rational points on an elliptic curve is used for the necessary operation in such ID-based encryption and group signature. Pairing means, for example, that P is a rational point on the prime field F q , Q is a rational point on the k-th order extension field F q k , and P and Q are input to obtain an element z of the extension field F * q k When a times P and b times Q are input, z is ab output. Here, “k” is referred to as an embedding degree, and “F * q k ” is correctly displayed as follows, but “F * q k ” is displayed due to display limitations.

IDベース暗号における暗号化あるいは復号の処理や、グループ署名における認証処理では、できるだけ短時間で実行されることが求められている。特に、ペアリングに基づく暗号方式などにおいてはスカラー倍算及びべき乗算が数多く実行されているため、これらの演算を高速に実行することが求められている。   The encryption / decryption process in the ID-based encryption and the authentication process in the group signature are required to be performed in as short a time as possible. In particular, in a cryptographic method based on pairing and the like, many scalar multiplications and power multiplications are executed, and it is required to execute these operations at high speed.

そのため、従来より、スカラー倍算やべき乗算をバイナリ法やWindow法などを用いて高速化することが行われている。   For this reason, conventionally, scalar multiplication and power multiplication have been speeded up using a binary method, a window method, or the like.

また、拡大体の元A∈Fq kのべき乗Anを演算する場合には、フロベニウス写像φq:A→Aqを用いることによって演算回数を削減することにより高速化を図ることも行われている。 Further, in the case of calculating the power A n of the original A∈F q k of the expansion body, Frobenius mapping phi q: is also made to increase the speed by reducing the number of operations by using the A → A q ing.

また、スカラー倍算においても、写像を利用することにより演算回数を削減して高速化を図る手法が提案されている(例えば、特許文献1、特許文献2参照。)。   Also in scalar multiplication, a method has been proposed in which the number of computations is reduced by using mapping to increase the speed (see, for example, Patent Document 1 and Patent Document 2).

特開2004−271792号公報Japanese Patent Laid-Open No. 2004-271792 特開2007−41461号公報JP 2007-41461 A

しかしながら、写像を利用して高速化を図る周知の高速化手段では、スカラー倍算におけるスカラーn、またはべき乗算における乗数nが位数qを大きく上回る場合(n>>q)にはきわめて有効であるもの、有限体Fqの位数qより大きく上回ることのないスカラーn及び乗数nに対しては、高速化手段を用いずに直接的にスカラー倍算及びべき乗算を実行した場合と比較して顕著な効果が見いだせないものであった。 However, known speed-up means for speeding up using a map is very effective when the scalar n in scalar multiplication or the multiplier n in exponentiation is much higher than the order q (n >> q). For scalar n and multiplier n that do not exceed the order q of the finite field F q , compared with the case where scalar multiplication and power multiplication are directly executed without using a high-speed means. However, no remarkable effect was found.

特に、IDベース暗号における暗号化あるいは復号の処理や、グループ署名における認証処理においては、スカラーnを用いたスカラー倍算あるいは乗数nを用いたべき乗算が必要な場合に、スカラーnあるいは乗数nが、有限体Fqの位数qより大きく上回ることのない場合が多く、周知の高速化手段を用いても効果的な高速化が期待できなかった。 In particular, in an encryption or decryption process in ID-based encryption or an authentication process in a group signature, scalar multiplication or multiplication using a scalar n or multiplication using a multiplier n is necessary. In many cases, the order q is not much higher than the order q of the finite field F q , and an effective speedup cannot be expected even if a known speedup means is used.

本発明者らはこのような現状に鑑み、スカラーnあるいは乗数nが有限体Fqの位数qより大きく上回ることのない場合であっても、スカラー倍算あるいはべき乗算を高速に実行できる演算方法の研究開発を行って、本発明を成すに至ったものである。 In view of such a current situation, the present inventors are able to perform scalar multiplication or power multiplication at high speed even when the scalar n or the multiplier n does not exceed the order q of the finite field Fq. The research and development of the method has been carried out to arrive at the present invention.

本発明のスカラー倍算の演算装置では、
楕円曲線をE/Fq=x3+ax+b−y2=0,a∈Fq,b∈Fqとし、
E(Fq)を有限体Fqで定義される楕円曲線の有理点が成す加法群、
E(Fq k)を有限体Fqの拡大体Fq kで定義される楕円曲線の有理点が成す加法群、
φqを有限体Fqに関する有理点のフロベニウス自己準同型写像、
tをフロベニウス自己準同型写像φqのトレース、
rをE(Fq)の位数#E(Fq)=q+1−tを割り切る素数位数、
E[r]を位数が素数rである有理点の集合、
[j]を有理点をj倍する写像、
Gを
G=E[r]∩Ker(φq−[q])
を満たすE(Fq k)に含まれる有理点の集合として、
非負整数nに対するGの有理点Qのスカラーn倍算を、記憶手段を備えた電子計算機により演算するスカラー倍算の演算装置において、
前記非負整数nの値、前記トレースtの値、及び、Q∈G⊂E(Fq k)により表される有理点Qの値を前記記憶手段に入力して記憶させる入力手段と、
演算結果Zを記憶する前記記憶手段を初期化する初期化手段と、
Gの有理点Qに対し、
φq(Q)=[q]Q=[t−1]Q
が成り立つことにより、
s=t−1として、前記nをs進展開した次式に基づいて、

c[i]←n%s及びn←(n-c[i])/sにより表される代入演算をi=0から所定回繰り返し行って各係数c[i]及び非負整数nの値を前記記憶手段に記憶する展開手段と、
前記記憶手段から前記有理点Q及び前記係数c[i]を読み出して、Q[i]=c[i]Qにより表される演算をi=0から所定回繰り返し行って各Q[i]の値を前記記憶手段に記憶する演算手段と、
t-1に換えて有理点に対するフロベニウス自己準同型写像φqを用いて表される次式のスカラー倍算nQに基づいて、

前記記憶手段からQ[i]及び演算結果Zを読み出し、Z←Z+φq i(Q[i])により表される代入演算をi=0から所定回繰り返し行ってスカラー倍算の演算結果Zを前記記憶手段に記憶する合成手段と、
を有するものである。
In the arithmetic unit for scalar multiplication of the present invention,
The elliptic curve E / F q = x 3 + ax + b-y 2 = 0, and a∈F q, and b∈F q,
An additive group formed by rational points of an elliptic curve defined by a finite field F q for E (F q ),
E (F q k ) is an additive group formed by a rational point of an elliptic curve defined by the extension field F q k of the finite field F q ,
Frobenius endomorphism of rational point φ q on the finite field F q,
trace t of Frobenius self-homogeneous map φ q ,
r is the order of E (F q ) #E (F q ) = the prime order that divides q + 1−t,
E [r] is a set of rational points whose order is a prime number r,
a map that j times the rational point [j],
G is G = E [r] ∩Ker (φ q − [q])
As a set of rational points included in E (F q k ) that satisfies
In an arithmetic unit for scalar multiplication in which a scalar n multiplication of a rational point Q of G for a non-negative integer n is computed by an electronic computer equipped with storage means,
Input means for inputting and storing the value of the non-negative integer n, the value of the trace t, and the value of the rational point Q represented by QεG⊂E (F q k ) in the storage means;
Initialization means for initializing the storage means for storing the calculation result Z;
For rational point Q of G,
φ q (Q) = [q] Q = [t−1] Q
By the fact that
As s = t−1, based on the following equation in which n is expanded in s,

Substitution operations represented by c [i] ← n% s and n ← (nc [i]) / s are repeated a predetermined number of times from i = 0, and the values of each coefficient c [i] and non-negative integer n are stored in the memory Expansion means for storing in the means;
The rational point Q and the coefficient c [i] are read from the storage means, and an operation represented by Q [i] = c [i] Q is repeatedly performed a predetermined number of times from i = 0 to obtain each Q [i]. Arithmetic means for storing values in the storage means;
Based on the scalar multiplication nQ of the following equation expressed using the Frobenius automorphism map φ q for the rational point instead of t−1:

From said storage means reads out Q [i] and the computation result Z, Z ← Z + φ q i (Q [i]) by the calculation result of the scalar multiplication by repeating predetermined times assignment operation from i = 0 represented Combining means for storing Z in the storage means;
It is what has.

さらに、本発明のスカラー倍算の演算装置では、
前記楕円曲線の有限体Fqの位数q、#E(Fq)を割り切る素数位数r、フロベニウス自己準同型写像φqのトレースtが、整数変数χを用いてそれぞれq(χ)、r(χ)、t(χ)で与えられている場合に、
前記q(χ)、r(χ)、t(χ)の各値を入力して前記記憶手段に記憶する補助入力手段と、
前記記憶手段からr(χ)及びt(χ)の値を読み出して、前記s(χ)=t(χ)−1として、r(χ)をs(χ)進展開した次式に基づいて、

Di(χ)←r(χ)%s(χ)及びr(χ)←(r(χ)-Di(χ))/s(χ)により表される代入演算をi=0からi<「degr(χ)/degs(χ)」まで繰り返し行って、各係数D(χ)及びr(χ)の値を前記記憶手段に記憶する補助展開手段と、
前記記憶された係数D(χ)のうち、deg(D(χ))が最大のものをDdmax(χ)として抽出し、前記記憶手段に記憶する補助抽出手段と、
前記記憶手段からDdmax(χ)、Di(χ)、Qの値を読み出して、
φq dmax([Ddmax(χ)]Q)=Σφq i([Di(χ)]Q)−φq dmax([Ddmax(χ)]Q)
=[f(φq,χ)]Q
となる多項式f(φq,χ)を用い、φq kQ=Qに基づいて
[Ddmax(χ)]Q=[f(φq,χ)φq -dmax]Q=[h(φq,χ)]Q
となる多項式h(φq,χ)を特定し、前記多項式h(φq,χ)の値を前記記憶手段に記憶する補助特定手段と、
前記s進展開をχ=aとしてs=Ddmax(a)からなるDdmax(a)進展開に置換え、前記Ddmax(a)に換えて前記多項式h(φq,a)を用いる手段と、を有するものである。
Furthermore, in the arithmetic unit for scalar multiplication of the present invention,
The order q of the elliptic curve finite field F q , the prime order r that divides #E (F q ), and the trace t of the Frobenius self-homogeneous map φ q are represented by q (χ), When given by r (χ), t (χ),
Auxiliary input means for inputting the values of q (χ), r (χ), t (χ) and storing them in the storage means;
Based on the following equation, the values of r (χ) and t (χ) are read from the storage means, and s (χ) = t (χ) −1, and r (χ) is s (χ) -expanded. ,

D i (χ) ← r (χ)% s (χ) and r (χ) ← (r (χ) −D i (χ)) / s (χ) <Auxiliary expansion means for repeatedly performing until “degr (χ) / degs (χ)” and storing the values of the coefficients D i (χ) and r (χ) in the storage means;
Auxiliary extraction means for extracting the largest coefficient deg (D i (χ)) among the stored coefficients D i (χ) as D dmax (χ) and storing it in the storage means;
Read the values of D dmax (χ), D i (χ), Q from the storage means,
φ q dmax ([D dmax (χ)] Q) = Σφ q i ([D i (χ)] Q) −φ q dmax ([D dmax (χ)] Q)
= [F (φ q , χ)] Q
Based on φ q k Q = Q, using the polynomial f (φ q , χ)
[D dmax (χ)] Q = [f (φ q , χ) φ q −dmax ] Q = [h (φ q , χ)] Q
An auxiliary specifying means for polynomial h (φ q, χ) identifies and stores the polynomial h (φ q, χ) a value of said storage means becomes,
The s-adic expansion of the replaced chi = a as s = D dmax (a) D dmax (a) adic expansion consisting the D wherein instead of dmax (a) the polynomial h (φ q, a) means for using , Has.

しかも、本発明のスカラー倍算の演算装置では、
前記係数D(χ)において最高次数dmaxとなる係数D(χ)が複数存在する場合に、
前記補助入力手段は、r(χ)|m(χ)を満たすm(χ)の値を入力して前記記憶手段に記憶する手段を更に含み、
deg(D(χ))の最高次数dmaxの項であるχdmaxの係数をTdmaxq)として、前記記憶手段から係数D(χ)を読み出し、前記記憶手段にT(φq,χ)及びU(φq,χ)を初期値を0として割り当て、deg(Di(χ))=dmaxとなる場合にT(φq,χ)←T(φq,χ)+Di(χ)φq i、その他の場合にU(φq,χ)←U(φq,χ)+Di(χ)φq iにより表される代入演算をi=0からi<「degr(χ)/degs(χ)」まで繰り返し行って、T(φq,χ)及びU(φq,χ)の値を前記記憶手段に記憶し、最高次数係数Tdmaxq)を特定する第2の補助特定手段と、
前記記憶手段からm(χ)及びR(χ)の値を読み出して、r(χ)|m(χ)を満たす最小次数の多項式m(χ)を用いて
V(φq)|m(φq),gcd(Tdmaxq),V(φq))=1
を満たすV(φq)を、W(φq)←gcd(Tdmaxq),m(φq))及びV(φq)←W(φq)により表される代入演算を行って特定し、前記V(φq)の値を前記記憶手段に記憶する第3の補助特定手段と、
前記記憶手段からV(φq)及びm(φq)の値を読み出して、
g(φq)V(φq)≡v(mod m(φq))
を満たす整数のスカラーv及びg(φq)を拡張ユークリッドの互除法により特定し、前記スカラーv及びg(φq)の値を前記記憶手段に記憶する第4の補助特定手段と、
前記補助特定手段に代えて、前記記憶手段からTdmaxq)、χdmax、Di(χ)、Qの各値を読み出して、
[Tdmaxqdmax]Q=Σφq i([Di(χ)]Q)−[Tdmaxqdmax]Q
=[f(φq,χ)]Q
となる多項式f(φq,χ)と、前記g(φq)を用い、φq kQ=Qに基づいて、
[vχdmax]Q=[g(φq)f(φq,χ)]Q=[h(φq,χ)]Q
となる多項式h(φq,χ)を特定し、前記多項式h(φq,χ)の値を前記記憶手段に記憶する第5の補助特定手段と、
前記記憶手段から前記h(φq,χ)の値を読み出して、
このh(φq,χ)のφqに関する定数項h(0,χ)が、
[vχdmax−h(0,χ)]Q=[h(φq,χ)−h(0,χ)]Q
を満たすことを用いて、
χ=aとして、s'=vadmax−h(0,a)及びh'(φq)=h(φq,a)−h(0,a)により表される演算を行ってs'、h'(φq)の値を前記記憶手段に記憶し、
t-1進展開した前記nをDdmax(a)進展開する換わりにvadmax−h(0,a)進展開して、vadmax−h(0,a)の換わりにh(φq,a)−h(0,a)を用いる手段と、を有するものである。
Moreover, in the scalar multiplication arithmetic device of the present invention,
When there are a plurality of coefficients D i (χ) having the highest order dmax in the coefficient D i (χ),
The auxiliary input means further includes means for inputting a value of m (χ) that satisfies r (χ) | m (χ) and storing the value in the storage means,
The coefficient D i (χ) is read out from the storage means as the coefficient of χ dmax that is the term of the highest order dmax of deg (D i (χ)) as T dmaxq ), and T (φ q , χ) and U (φ q , χ) are assigned with an initial value of 0, and T (φ q , χ) ← T (φ q , χ) + D when deg (D i (χ)) = dmax i (χ) φ q i , otherwise U (φ q , χ) ← U (φ q , χ) + D i (χ) φ q i is assigned from i = 0 to i <“ degr (χ) / degs (χ) ”, and the values of T (φ q , χ) and U (φ q , χ) are stored in the storage means, and the highest order coefficient T dmaxq ) is calculated. A second auxiliary specifying means for specifying;
The values of m (χ) and R (χ) are read from the storage means, and V (φ q ) | m (φ is obtained using a polynomial m (χ) of the minimum order satisfying r (χ) | m (χ). q ), gcd (T dmaxq ), V (φ q )) = 1
Substituting V (φ q ) that satisfies W (φ q ) ← gcd (T dmaxq ), m (φ q )) and V (φ q ) ← W (φ q ) Third auxiliary specifying means for specifying and storing the value of V (φ q ) in the storage means;
Read the values of V (φ q ) and m (φ q ) from the storage means,
g (φ q ) V (φ q ) ≡v (mod m (φ q ))
An integer scalar v and g (φ q ) satisfying the above by an extended Euclidean algorithm, and a fourth auxiliary specifying means for storing the values of the scalars v and g (φ q ) in the storage means;
In place of the auxiliary specifying means, T dmaxq ), χ dmax , D i (χ), Q values are read from the storage means,
[T dmaxq ) χ dmax ] Q = Σφ q i ([D i (χ)] Q) − [T dmaxq ) χ dmax ] Q
= [F (φ q , χ)] Q
Based on φ q k Q = Q, using the polynomial f (φ q , χ) and g (φ q ),
[vχ dmax ] Q = [g (φ q ) f (φ q , χ)] Q = [h (φ q , χ)] Q
And polynomial h (φ q, χ) to identify, the polynomial h (φ q, χ) a fifth auxiliary specifying means for storing in said memory means the value of a,
Read the value of h (φ q , χ) from the storage means,
The h (φ q, χ) of phi q about constant term h (0, χ) is,
[vχ dmax −h (0, χ)] Q = [h (φ q , χ) −h (0, χ)] Q
With satisfying
With χ = a, s ′ = va dmax −h (0, a) and h ′ (φ q ) = h (φ q , a) −h (0, a) storing the value of h ′ (φ q ) in the storage means;
said n that t-1 binary expand va dmax -h (0, a) adic expansion in Kawari to D dmax (a) adic expansion, va dmax -h (0, a ) in place to h (φ q, a) -h (0, a).

また、本発明のべき乗算の演算装置では、
q kを位数qの有限体Fqのk次拡大体、
HをFq kの素数位数rの部分乗法群、
φqを有限体Fqに関する元のフロベニウス自己準同型写像として、
非負整数nに対するHの元Aのn乗算を行うべき乗算を、記憶手段を備えた電子計算機により演算する演算装置において、
前記非負整数nの値、前記位数qの値、前記Fq kの素数位数rの値、A∈H⊂Fq kにより表される元Aの値を入力して前記記憶手段に記憶する入力手段と、
演算結果Zを記憶する前記記憶手段を初期化する初期化手段と、
前記位数q、前記元Aの値を前記記憶手段から読み出して、前記qとrの差分をs=q−rとし、T[j]←A及びA←A*Aにより表される代入演算を、j=0からj<「log2s」まで繰り返して行って前記T[j]及び前記Aの値を前記記憶手段に記憶する第1の演算手段と、
前記記憶手段から前記n及び差分sの値を読み出して、差分sにより展開した次式に基づいて、

c[i]←n%s及びn←(n-c[i])/sにより表される代入演算をi=0から所定回繰り返して行い、各係数c[i]及び非負整数nの値を前記記憶手段に記憶する展開手段と、
前記記憶手段からc[i]及び前記nの値を読み出して、A[i]=Ac[i]に基づいて、A[i]=1に初期化し、c[i]&1である場合にA[i]←A[i]*T[j]、c[i]←c[i]/2により表される代入演算を、i=0から所定回繰り返して行い、前記記憶手段にA[i]及びc[i]の値を記憶する第2の演算手段と、
前記記憶手段から各A[i]を読み出し、次式に基づいて、

Z←Z*φq i(A[i])により表されるべき乗演算を、i=0から所定回繰り返して行い、計算結果Zとして前記記憶手段に記憶する合成手段と、を有するものである。
Further, in the power multiplication arithmetic device of the present invention,
F q k is a k-th order extension of a finite field F q of order q ,
H is a partial multiplicative group of prime order r of F q k ,
Let φ q be the original Frobenius automorphism map for the finite field F q ,
In an arithmetic unit for calculating a multiplication to perform n multiplication of an element A of H with respect to a non-negative integer n by an electronic computer provided with storage means,
The value of the non-negative integer n, the value of the order q, the value of the prime order r of the F q k , and the value of the element A represented by A∈H⊂F q k are input and stored in the storage means. Input means to
Initialization means for initializing the storage means for storing the calculation result Z;
The order q and the value of the element A are read from the storage means, the difference between the q and r is s = q−r, and the substitution operation represented by T [j] ← A and A ← A * A Is repeatedly performed from j = 0 to j <“log 2 s”, and the first calculating means for storing the values of T [j] and A in the storage means,
Based on the following equation that reads out the values of the n and the difference s from the storage means and develops the difference s,

The substitution operation represented by c [i] ← n% s and n ← (nc [i]) / s is repeated a predetermined number of times from i = 0, and the values of each coefficient c [i] and non-negative integer n are Expansion means for storing in the storage means;
When c [i] and the value of n are read from the storage means, A [i] = 1 is initialized based on A [i] = A c [i] , and c [i] & 1 A [i] ← A [i] * T [j], c [i] ← c [i] / 2, the substitution operation represented by i = 0 is repeated a predetermined number of times, and A [ second calculating means for storing values of i] and c [i];
Read each A [i] from the storage means, based on the following equation:

And a synthesizing unit that repeats a power calculation represented by Z ← Z * φ q i (A [i]) a predetermined number of times from i = 0 and stores the result as a calculation result Z in the storage unit. .

さらに、本発明のべき乗算の演算装置では、
X^{Y}はXであることを表すこととし、
前記位数q、前記素数位数r、前記sが、整数変数χを用いてそれぞれq(χ)、r(χ)、s(χ)で与えられている場合に、
前記q(χ)、r(χ)、s(χ)の各値を入力して前記記憶手段に記憶する補助入力手段と、
前記記憶手段からr(χ)及びs(χ)を読み出して、前記s(χ)を用いて前記r(χ)をs(χ)進展開した次式に基づいて、

Di(χ)←r(χ)%s(χ)及びr(χ)←(r(χ)-Di(χ))/s(χ)により表される代入演算を、i=0からi<「degr(χ)/degs(χ)」まで繰り返して行い、前記係数Di(χ)及びr(χ)を前記記憶手段に記憶する補助展開手段と、
前記記憶された係数D(χ)のうち、deg(D(χ))が最大のものをDdmax(χ)として抽出し、前記記憶手段に記憶する補助抽出手段と、
前記記憶手段から前記Ddmax(χ)、Di(χ)、qの値を読み出して、
(A^{Ddmax(χ)})^{qdmax}=A^{Σi≠dmax−Di(χ)qi}=A^{f(q,χ)}
となる多項式f(q,χ)を用い、φq k(A)=Aに基づいて
A^{Ddmax(χ)}=A^{Σi≠dmax−Di(χ)qi−qdmax}=A^{h(q,χ)}
となる多項式h(q,χ)を特定し、前記多項式h(q,χ)の値を前記記憶手段に記憶する補助特定手段と、
前記s進展開した前記nを、χ=aとしてs=Ddmax(a)からなるDdmax(a)進展開に置き換え、前記Ddmax(a)に換えて前記多項式h(q,a)を用いる手段と、を有するものである。
Furthermore, in the arithmetic unit for power multiplication according to the present invention,
X ^ {Y} represents XY ,
When the order q, the prime order r, and the s are given by q (χ), r (χ), and s (χ), respectively, using an integer variable χ,
Auxiliary input means for inputting the values of q (χ), r (χ), and s (χ) and storing them in the storage means;
Based on the following equation, r (χ) and s (χ) are read from the storage means, and r (χ) is expanded in s (χ) using the s (χ).

D i (χ) ← r (χ)% s (χ) and r (χ) ← (r (χ) −D i (χ)) / s (χ) i <“degr (χ) / degs (χ)” repeatedly, and auxiliary expansion means for storing the coefficients D i (χ) and r (χ) in the storage means,
Auxiliary extraction means for extracting the largest coefficient deg (D i (χ)) among the stored coefficients D i (χ) as D dmax (χ) and storing it in the storage means;
Read the values of D dmax (χ), D i (χ), q from the storage means,
(A ^ {D dmax (χ)}) ^ {q dmax } = A ^ {Σ i ≠ dmax −D i (χ) q i } = A ^ {f (q, χ)}
A ^ {D dmax (χ)} = A ^ { Σi ≠ dmax −D i (χ) q i −q based on φ q k (A) = A dmax } = A ^ {h (q, χ)}
An auxiliary specifying means for specifying the polynomial h (q, χ) to be and storing the value of the polynomial h (q, χ) in the storage means;
Said n that the s-adic expansion, replaced with chi = a as s = D dmax (a) consisting of D dmax (a) adic expansion, the D dmax (a) instead of by the polynomial h (q, a) Means to use.

しかも、本発明のべき乗算の演算装置では、
前記係数D(χ)において最高次数dmaxとなる係数D(χ)が複数存在する場合に、
前記補助記憶手段は、r(χ)|m(χ)を満たすm(χ)の値を入力して前記記憶手段に記憶する手段を更に含み、
deg(Di(χ))の最高次数dmaxの項であるχdmaxの係数をTdmax(q)として、前記記憶手段から係数D(χ)を読み出し、前記記憶手段にT(q,χ)及びU(q,χ)を初期値を0として割り当て、deg(Di(χ))=dmaxとなる場合にT(q,χ)←T(q,χ)+Di(χ)qi、その他の場合にU(q,χ)←U(q,χ)+Di(χ)qiにより表される代入演算をi=0からi<「degr(χ)/degs(χ)」まで繰り返して行ってT(q,χ)及びU(q,χ)の値を前記記憶手段に記憶し、最高次数係数Tdmax(q)を特定する第2の補助特定手段と、
前記記憶手段からm(χ)及びR(χ)の値を読み出して、r(χ)|m(χ)を満たす最小次数の多項式m(χ)を用いて
V(q)|m(q),gcd(Tdmax(q),V(q))=1
を満たすV(q)を、W(q)←gcd(Tdmax(q),m(q))及びV(q)←W(q)により表される演算を行って特定し、前記V(q)の値を前記記憶手段に記憶する第3の補助特定手段と、
前記記憶手段からV(q)及びm(q)の値を読み出して、
g(q)V(q)≡v(mod m(q))
を満たす整数のスカラーv及びg(q)を拡張ユークリッドの互除法により特定し、前記スカラーv及びg(q)の値を前記記憶手段に記憶する第4の補助特定手段と、
前記補助特定手段に代えて、前記記憶手段からTdmax(q)、χdmax、Di(χ)、Qの各値を読み出して、
A^{Tdmax(q)χdmax}=A^{ΣDi(χ)qi−Tdmax(q)χdmax}
=A^{f(q,χ)}
となる多項式f(q,χ)と、前記g(q)を用い、φq k(A)=Aに基づいて、
A^{vχdmax}=A^{g(q)f(q,χ)}=A^{h(q,χ)}
となる多項式h(q,χ)を特定し、前記多項式h(q,χ)の値を前記記憶手段に記憶する第5の補助特定手段と、
前記記憶手段から前記h(q,χ)の値を読み出して、
このh(q,χ)のqに関する定数項h(0,χ)が、
A^{vχdmax−h(0,χ)}=A^{h(q,χ)−h(0,χ)}
を満たすことを用いて、
χ=aとして、s'=vadmax−h(0,a)及びh'(q)=h(q,a)−h(0,a) により表される演算を行ってs'、h'(q)の値を前記記憶手段に記憶し、s進展開した前記nをDdmax(a)進展開する換わりにvadmax−h(0,a)進展開して、vadmax−h(0,a)の換わりにh(q,a)−h(0,a)を用いる手段と、を有するものである。
Moreover, in the arithmetic unit for power multiplication according to the present invention,
When there are a plurality of coefficients D i (χ) having the highest order dmax in the coefficient D i (χ),
The auxiliary storage means further includes means for inputting a value of m (χ) that satisfies r (χ) | m (χ) and storing the value in the storage means,
The coefficient D i (χ) is read out from the storage means with the coefficient of χ dmax being the term of the maximum degree dmax of deg (D i (χ)) as T dmax (q), and T (q, χ ) And U (q, χ) are assigned with an initial value of 0, and T (q, χ) ← T (q, χ) + D i (χ) q when deg (D i (χ)) = dmax i , in other cases, the substitution operation represented by U (q, χ) ← U (q, χ) + D i (χ) q i is changed from i = 0 to i <“degr (χ) / degs (χ) And the second auxiliary specifying means for storing the values of T (q, χ) and U (q, χ) in the storage means and specifying the highest order coefficient T dmax (q);
The values of m (χ) and R (χ) are read from the storage means, and the minimum order polynomial m (χ) satisfying r (χ) | m (χ) is used, and V (q) | m (q) , gcd (T dmax (q), V (q)) = 1
V (q) satisfying W (q) ← gcd (T dmax (q), m (q)) and V (q) ← W (q) is specified by performing an operation represented by the above V (q a third auxiliary specifying means for storing the value of q) in the storage means;
Read the values of V (q) and m (q) from the storage means,
g (q) V (q) ≡v (mod m (q))
A fourth auxiliary specifying means for specifying integer scalars v and g (q) satisfying an extended Euclidean algorithm and storing the values of the scalars v and g (q) in the storage means;
Instead of the auxiliary specifying means, each value of T dmax (q), χ dmax , D i (χ), Q is read from the storage means,
A ^ {T dmax (q) χ dmax } = A ^ {ΣD i (χ) q i −T dmax (q) χ dmax }
= A ^ {f (q, χ)}
Based on φ q k (A) = A, using the polynomial f (q, χ) and g (q)
A ^ {vχ dmax } = A ^ {g (q) f (q, χ)} = A ^ {h (q, χ)}
A fifth auxiliary specifying means for specifying the polynomial h (q, χ) to be and storing the value of the polynomial h (q, χ) in the storage means;
Read the value of h (q, χ) from the storage means,
The constant term h (0, χ) for q of h (q, χ) is
A ^ {vχ dmax −h (0, χ)} = A ^ {h (q, χ) −h (0, χ)}
With satisfying
With χ = a, s ′ = va dmax −h (0, a) and h ′ (q) = h (q, a) −h (0, a) are performed and s ′, h ′ The value of (q) is stored in the storage means, and instead of expanding n in s-advanced manner in D dmax (a), it is expanded in va dmax −h (0, a) and va dmax −h (0 , a) instead of h (q, a) -h (0, a).

本発明は、フロベニウス自己準同型写像φ用いて演算回数を削減すものであって、特に、スカラー倍算の場合には、Gの有理点Qに対し、
φq(Q)=[q]Q=[t−1]Q
が成り立つことにより、また、べき乗算の場合には、qとrの差分をs=q−rとし、Hの非零元Aに対し、
φq(A)=Aq=As
が成り立つことにより、スカラーnをt-1進展開、またはべき数nをs進展開して、t-1に換えて有理点に対するフロベニウス自己準同型写像φqを用い、またはsに換えて元に対するフロベニウス自己準同型写像φqを用いることにより、スカラー倍算におけるスカラーn、またはべき乗算における乗数nが位数qを大きく上回ることのない場合でも、演算回数を削減可能として演算速度を向上させることができる。
The present invention uses the Frobenius automorphism map φ q to reduce the number of operations. In particular, in the case of scalar multiplication, for the rational point Q of G,
φ q (Q) = [q] Q = [t−1] Q
And in the case of power multiplication, the difference between q and r is s = q−r, and for a non-zero element A of H,
φ q (A) = A q = A s
Is satisfied, the scalar n is expanded in the t-1 base, or the power n is expanded in the s base, and the Frobenius self-homogeneous map φ q for the rational point is used instead of the t-1, or the original is replaced with the s. By using the Frobenius self-homogeneous map φ q with respect to, even when the scalar n in scalar multiplication or the multiplier n in power multiplication does not greatly exceed the order q, the number of operations can be reduced and the calculation speed is improved. be able to.

特に、ペアリングをベースとしたIDベース暗号やグループ署名などでは、ペアリングフレンドリ曲線と呼ばれるペアリングを利用可能な楕円曲線が用いられ、このペアリングフレンドリ曲線を用いる場合には、整数変数χを用いて位数q(χ)、#E(Fq)を割り切る素数位数r(χ)、フロベニウス自己準同型写像φqのトレースt(χ)があらかじめ与えられており、スカラー倍算の場合には、r(χ)をt(χ)−1進展開するとともに、このt(χ)−1進展開の際に導入した係数Di(χ)のうちでもっとも次数の高い係数Di(χ)をDdmax(χ)とし、このDdmax(χ)を多項式h(φq,χ)に置き換えることにより演算回数をさらに削減し、また、べき乗算の場合には、r(χ)をs(χ)=q(χ)−r(χ)進展開するとともに、このs(χ)進展開の際に導入した係数Di(χ)のうちでもっとも次数の高い係数Di(χ)をDdmax(χ)とし、このDdmax(χ)を多項式h(φq,χ)に置き換えることにより演算回数をさらに削減し、それぞれ演算速度を向上させることができる。 In particular, in ID-based encryption based on pairing, group signatures, etc., an elliptic curve that can be used for pairing called a pairing friendly curve is used, and when using this pairing friendly curve, an integer variable χ is set. In the case of scalar multiplication, the order q (χ), prime order r (χ) that divides #E (F q ), and the trace t (χ) of the Frobenius self-homogeneous map φ q are given in advance. the, with r the (chi) to t (chi) deployment -1 binary, the t (chi) coefficients were introduced during the -1 binary deployment D i highly most of order coefficient among the (chi) D i ( χ) is set to D dmax (χ), and D dmax (χ) is replaced with a polynomial h (φ q , χ) to further reduce the number of operations. In the case of power multiplication, r (χ) is s (χ) = q (χ) −r (χ), and the coefficient D i (χ) introduced during the s (χ) advance The highest order coefficient D i (χ) is D dmax (χ), and this d dmax (χ) is replaced with a polynomial h (φ q , χ) to further reduce the number of computations. Can be improved.

しかも、最高次数dmaxとなるDi(χ)が複数存在する場合には、r(χ)|m(χ)を満たす最小次数の多項式m(χ)を用いて
V(q)|m(q),gcd(Tdmax(q),V(q))=1
を満たすV(q)を特定するとともに、
g(q)V(q)≡v(mod m(q))
を満たす整数のスカラーvを用い、スカラー倍算の場合には、t-1進展開したスカラーnをDdmax(χ)進展開する換わりにvχdmax−h(0,χ)進展開して、vχdmax−h(0,χ)の換わりにh(q,χ)−h(0,χ)を用いることにより演算回数をさらに削減し、また、べき乗算の場合には、s進展開したべき数nをDdmax(χ)進展開する換わりにvχdmax−h(0,χ)進展開して、vχdmax−h(0,χ)の換わりにh(q,χ)−h(0,χ)を用いることにより演算回数をさらに削減し、それぞれ演算速度を向上させることができる。
In addition, when there are a plurality of D i (χ) having the highest order dmax, V (q) | m (q using a minimum order polynomial m (χ) satisfying r (χ) | m (χ). ), gcd (T dmax (q), V (q)) = 1
V (q) that satisfies
g (q) V (q) ≡v (mod m (q))
In the case of scalar multiplication, in the case of scalar multiplication, the scalar n expanded by t−1 is expanded by vχ dmax −h (0, χ) instead of by D dmax (χ). By using h (q, χ) -h (0, χ) instead of vχ dmax -h (0, χ), the number of operations should be further reduced. The number n is expanded by vχ dmax −h (0, χ) instead of D dmax (χ), and h (q, χ) −h (0,0) instead of vχ dmax −h (0, χ). By using χ), the number of computations can be further reduced and the computation speed can be improved.

スカラー倍算の演算プログラム及びべき乗算の演算プログラムを備えた電子計算機の説明図。Explanatory drawing of the electronic computer provided with the arithmetic program of scalar multiplication, and the arithmetic program of power multiplication. スカラー倍算の演算プログラムのフローチャートである。It is a flowchart of the arithmetic program of scalar multiplication. スカラー倍算の演算プログラムのフローチャートである。It is a flowchart of the arithmetic program of scalar multiplication. Ddmax(χ)及び多項式h(φq,χ)を求める補助プログラムのフローチャートである。It is a flowchart of the auxiliary program which calculates | requires Ddmax (χ) and the polynomial h (φq, χ). スカラー倍算の演算プログラムのフローチャートである。It is a flowchart of the arithmetic program of scalar multiplication. 多項式h(φq,χ)及びvχdmax−h(0,χ)を求める補助プログラムのフローチャートである。It is a flowchart of the auxiliary | assistant program which calculates | requires the polynomial h ((phi) q, (chi)) and v (chi) dmax-h (0, chi). べき乗算の演算プログラムのフローチャートである。5 is a flowchart of a power multiplication operation program. べき乗算の演算プログラムのフローチャートである。5 is a flowchart of a power multiplication operation program. Ddmax(χ)及び多項式h(q,χ)を求める補助プログラムのフローチャートである。It is a flowchart of the auxiliary program which calculates | requires Ddmax (χ) and polynomial h (q, χ). べき乗算の演算プログラムのフローチャートである。5 is a flowchart of a power multiplication operation program. 多項式h(q,χ)及びvχdmax−h(0,χ)を求める補助プログラムのフローチャートである。It is a flowchart of the auxiliary | assistant program which calculates | requires the polynomial h (q, χ) and vχdmax-h (0, χ).

本発明は、スカラー倍算の演算の高速化及びべき乗算の演算の高速化を目的としたものであり、スカラー倍算とべき乗算というように演算自体は異なるが、高速化のための手法は同じであり、それぞれ同じように演算回数が削減されることにより、演算の高速化を可能としているものである。最初にスカラー倍算について説明し、次いでべき乗算について説明する。   The present invention aims at speeding up the operation of scalar multiplication and speeding up the operation of power multiplication, and the operations themselves are different, such as scalar multiplication and power multiplication. It is the same, and the number of operations is reduced in the same way, so that the operation speed can be increased. First, scalar multiplication will be described, and then power multiplication will be described.

まず、楕円曲線をE/Fq=x3+ax+b−y2=0,a∈Fq,b∈Fqとし、
E(Fq):有限体Fqで定義される楕円曲線の有理点が成す加法群
E(Fq k):有限体Fqの拡大体Fq kで定義される楕円曲線の有理点が成す加法群
φq:有限体Fqに関する有理点のフロベニウス自己準同型写像
t:フロベニウス自己準同型写像φqのトレース
r:E(Fq)の位数#E(Fq)=q+1−tを割り切る素数位数
E[r]:位数が素数rである有理点の集合
[j]:有理点をj倍する写像
G:G=E[r]∩Ker(φq−[q])を満たすE(Fq k)に含まれる有理点の集合
と定義する。
First, the elliptic curve E / F q = x 3 + ax + b-y 2 = 0, a∈F q, and B∈F q,
E (F q ): Additive group formed by rational points of elliptic curve defined by finite field F q E (F q k ): Rational points of elliptic curve defined by extension field F q k of finite field F q additive group forms φ q: Frobenius endomorphism t of rational points on the finite field F q: Frobenius trace of the endomorphism φ q r: of order #E (F q) of E (F q) = q + 1-t Prime order E [r]: set of rational points whose order is prime r
[j]: Map that multiplies rational points by j G: G = E [r] ∩ defined as a set of rational points included in E (F q k ) that satisfies Ker (φ q − [q]).

そして、非負整数nに対するGの有理点Qのスカラーn倍算、すなわちnQを演算する。なお、本実施形態で想定するスカラー倍算はペアリングの演算の際に行われるものであり、一般的にスカラーnは位数rを大きく超えるものではない。   Then, the scalar n multiplication of the rational point Q of G with respect to the non-negative integer n, that is, nQ is calculated. Note that the scalar multiplication assumed in the present embodiment is performed at the time of pairing calculation, and in general, the scalar n does not greatly exceed the order r.

また、r=q+1−tであることから、0≡q+1−t(mod r)である。   Since r = q + 1−t, 0≡q + 1−t (mod r).

ここで、スカラーnをt−1進展開すると、スカラーnが位数rを大きく超えるものではないことから、
n=C1(t−1)+C0
または、
n=(t−1)2+C1(t−1)+C0
となる。
Here, if the scalar n is expanded by t−1, since the scalar n does not greatly exceed the order r,
n = C 1 (t−1) + C 0
Or
n = (t−1) 2 + C 1 (t−1) + C 0
It becomes.

φq(Q)=[q]Q=[t−1]Qであるので、n=C1(t−1)+C0の場合、nQは以下のようになる。
nQ=[C1(t−1)+C0]Q
=[C1q]Q+[C0]Q
=φq([C1]Q)+[C0]Q
Since φ q (Q) = [q] Q = [t−1] Q, when n = C 1 (t−1) + C 0 , nQ is as follows.
nQ = [C 1 (t−1) + C 0 ] Q
= [C 1 q] Q + [C 0 ] Q
= Φ q ([C 1 ] Q) + [C 0 ] Q

また、n=(t−1)2+C1(t−1)+C0場合には、nQは以下のようになる。
nQ=[(t−1)2+C1(t−1)+C0]Q
=[q][q]Q+[C1q]Q+[C0]Q
=φqq(Q))+φq([C1]Q)+[C0]Q
When n = (t−1) 2 + C 1 (t−1) + C 0 , nQ is as follows.
nQ = [(t−1) 2 + C 1 (t−1) + C 0 ] Q
= [Q] [q] Q + [C 1 q] Q + [C 0 ] Q
= Φ qq (Q)) + φ q ([C 1 ] Q) + [C 0 ] Q

ここで、C1及びC0はt−1と同程度あるいはそれよりも小さくなり、しかも有理点のフロベニウス自己準同型写像を用いることができることによって演算回数を削減できる。したがって、スカラー倍算を高速化することができる。 Here, C 1 and C 0 are approximately equal to or smaller than t−1, and the Frobenius self-homogeneous mapping of rational points can be used, thereby reducing the number of operations. Therefore, the scalar multiplication can be speeded up.

また、通常、ペアリングの演算を行う場合には、既知のペアリングフレンドリ曲線が用いられており、特に、整数変数χを用いて位数q(χ)、#E(Fq)を割り切る素数位数r(χ)、フロベニウス自己準同型写像φqのトレースt(χ)があらかじめ与えられていることが多い。 In general, when performing pairing calculation, a known pairing-friendly curve is used. In particular, prime numbers that divide orders q (χ) and #E (F q ) using an integer variable χ. of order r (χ), it is often the Frobenius endomorphism φ q of trace t (χ) is given in advance.

ここで、[r]Q=[q+1−t]Q=Oであることを考慮しながら、r(χ)をt(χ)−1で剰余をとる、すなわち、r(χ)を、
[r(χ)]Q=Σ[Di(χ)(t(χ)−1)i]Q=Σφq i([Di(χ)]Q)
とt(χ)−1進展開して、Di(χ)のうちでもっとも次数の高いものをDdmax(χ)とする。
Here, taking into account that [r] Q = [q + 1−t] Q = O, the remainder of r (χ) is taken by t (χ) −1, that is, r (χ) is
[r (χ)] Q = Σ [D i (χ) (t (χ) −1) i ] Q = Σφ q i ([D i (χ)] Q)
And t (χ) −1 base expansion, and D dmax (χ) is the highest order of D i (χ).

そして、
φq dmax([Ddmax(χ)]Q)=Σφq i([Di(χ)]Q)−φq dmax([Ddmax(χ)]Q)
=[f(φq,χ)]Q
として定義されるφqとχを変数とする2変数の多項式f(φq,χ)を導入する。
And
φ q dmax ([D dmax (χ)] Q) = Σφ q i ([D i (χ)] Q) −φ q dmax ([D dmax (χ)] Q)
= [F (φ q , χ)] Q
A two-variable polynomial f (φ q , χ) with φ q and χ as variables is introduced.

さらに、φq kQ=Qに基づいて、
[Ddmax(χ)]Q=[f(φq,χ)φq -dmax]Q=[h(φq,χ)]Q
として定義されるφqとχを変数とする2変数の多項式h(φq,χ)を導入する。すなわち、この多項式h(φq,χ)は、Di(χ)のうちの最高次数のDdmax(χ)を、φqとχを変数とする多項式h(φq,χ)に置き換え可能であることを示しており、最高次数よりも小さい次数までの演算に抑えることができ、特に、χ=aとした場合には、t-1進展開したスカラーnをさらにDdmax(a)進展開して、Ddmax(a)に換えてh(φq,a)を用いることによって演算回数を大きく削減でき、スカラー倍算を高速化することができる。
Furthermore, based on φ q k Q = Q,
[D dmax (χ)] Q = [f (φ q , χ) φ q −dmax ] Q = [h (φ q , χ)] Q
A two-variable polynomial h (φ q , χ) with φ q and χ as variables is introduced. That is, this polynomial h (φ q , χ) can replace D dmax (χ) of the highest order of D i (χ) with a polynomial h (φ q , χ) with φ q and χ as variables. In particular, when χ = a, the scalar n expanded in t−1 is further converted into D dmax (a) advance. By expanding and using h (φ q , a) instead of D dmax (a), the number of operations can be greatly reduced, and the scalar multiplication can be speeded up.

また、Di(χ)のうちでもっとも次数の高いものが複数存在する場合には、最高次数をdmaxで表すものとし、最高次数dmaxの項であるχdmaxの係数をTdmaxq)として、r(χ)|m(χ)を満たす最小次数の多項式m(χ)を用いて
V(φq)|m(φq),gcd(Tdmaxq),V(φq))=1
を満たすV(φq)を特定する。ここで、多項式m(χ)には円周等分多項式などを用いることができる。
Further, when there are a plurality of the highest orders among D i (χ), the highest order is represented by dmax, and the coefficient of χ dmax which is a term of the highest order dmax is expressed as T dmaxq ). Using the minimum degree polynomial m (χ) satisfying r (χ) | m (χ), V (φ q ) | m (φ q ), gcd (T dmaxq ), V (φ q ) ) = 1
V (φ q ) that satisfies the condition is specified. Here, a circumferential equalization polynomial or the like can be used as the polynomial m (χ).

そして、拡張ユークリッドの互除法を用いて、
g(φq)V(φq)≡v(mod m(φq))
を満たす整数のスカラーv及びg(φq)を特定し、
[Tdmaxqdmax]Q=Σφq i([Di(χ)]Q)−[Tdmaxqdmax]Q
=[f(φq,χ)]Q
としてφqとχを変数とする2変数の多項式f(φq,χ)を導入する。
And using the extended Euclidean algorithm,
g (φ q ) V (φ q ) ≡v (mod m (φ q ))
Identify integer scalars v and g (φ q ) that satisfy
[T dmaxq ) χ dmax ] Q = Σφ q i ([D i (χ)] Q) − [T dmaxq ) χ dmax ] Q
= [F (φ q , χ)] Q
A two-variable polynomial f (φ q , χ) with φ q and χ as variables is introduced.

さらに、g(φq)を用い、φq kQ=Qに基づいて、
[vχdmax]Q=[g(φq)f(φq,χ)]Q=[h(φq,χ)]Q
としてφqとχを変数とする2変数の多項式h(φq,χ)を導入する。
Furthermore, using g (φ q ) and based on φ q k Q = Q,
[vχ dmax ] Q = [g (φ q ) f (φ q , χ)] Q = [h (φ q , χ)] Q
A two-variable polynomial h (φ q , χ) with φ q and χ as variables is introduced.

そして、このh(φq,χ)のφqに関する定数項h(0,χ)が、
[vχdmax−h(0,χ)]Q=[h(φq,χ)−h(0,χ)]Q
を満たすことを用いて、χ=aとして、s'=vadmax−h(0,a)及びh'(φq)=h(φq,a)−h(0,a)とし、t-1進展開したスカラーnをDdmax(a)進展開する換わりに{vadmax−h(0,a)}進展開して、vadmax−h(0,a)の換わりにh(φq,a)−h(0,a)を用いることにより演算回数を減できるので、スカラー倍算を高速化することができる。ここで、h'(φq)は、φqとχの2変数の多項式h(φq,χ)において、χ=aとしたことによりφqの1変数となっていることを示している。
Then, the h (φ q, χ) of phi q about constant term h (0, χ) is,
[vχ dmax −h (0, χ)] Q = [h (φ q , χ) −h (0, χ)] Q
S ′ = va dmax −h (0, a) and h ′ (φ q ) = h (φ q , a) −h (0, a), and t− A scalar n that has been unfolded linearly is expanded in {va dmax −h (0, a)} instead of being expanded in D dmax (a), and h (φ q , instead of va dmax −h (0, a) Since the number of operations can be reduced by using a) −h (0, a), the scalar multiplication can be speeded up. Here, h ′ (φ q ) indicates that it is a single variable of φ q by setting χ = a in a polynomial h of two variables of φ q and χ (φ q , χ). .

ここまでスカラー倍算について説明したが、べき乗算の場合には、
q k:位数qの有限体Fqのk次拡大体
H:Fq kの素数位数rの部分乗法群
φq:有限体Fqに関する元のフロベニウス自己準同型写像
と定義して、非負整数nに対するHの元Aのn乗算を行うものであり、qとrの差分をs=q−rとし、このsをスカラー倍算におけるt−1に置き換えて上述の説明をべき乗算として読み換えるだけであり、詳細な説明は省略する。べき乗算の場合でも、最高次数部分の演算がより低い次数の演算に置き換えられることにより、演算回数を減してべき乗算を高速化することができる。
So far we have explained scalar multiplication, but in case of power multiplication,
F q k : k-th order extension field of finite field F q of order q H: partial multiplicative group of prime order r of F q k φ q : defined as the original Frobenius self-homogeneous map with respect to finite field F q The non-negative integer n is multiplied by n of the element A of H, and the difference between q and r is set to s = q−r, and this s is replaced with t−1 in scalar multiplication, and the above-described exponentiation is performed. The detailed description is omitted. Even in the case of power multiplication, the number of operations can be reduced and the speed of power multiplication can be increased by replacing the operation of the highest order part with the operation of a lower order.

以下において、既知のペアリングフレンドリ曲線を用いながら具体例を説明する。   Hereinafter, specific examples will be described using a known pairing-friendly curve.

埋め込み次数8のペアリングフレンドリ曲線として、#E(Fq)を割り切る素数r(χ)、フロベニウス自己準同型写像φqのトレースt(χ)が、
r(χ)=χ−8χ+25
t(χ)=(2χ−11χ+15)/15
と与えられるものが知られている。
As a pairing-friendly curve of embedded degree 8, a prime number r (χ) that divides #E (F q ) and a trace t (χ) of the Frobenius self-homogeneous map φ q
r (χ) = χ 4 -8χ 2 +25
t (χ) = (2χ 3 -11χ + 15) / 15
And what is given is known.

この場合、r(χ)をt(χ)−1進展開して、フロベニウス準同型写像φqを用いることにより、
2r(χ)=(15χ)φq+(−5χ+50)
0≡(15χ)φq+(−5χ+50) (mod r(χ))
となる。
In this case, by expanding r (χ) to t (χ) -1 base and using the Frobenius homomorphism map φ q ,
2r (χ) = (15χ) φ q + (− 5χ 2 +50)
0≡ (15χ) φ q + (− 5χ 2 +50) (mod r (χ))
It becomes.

したがって、Di(χ)は、
0(χ)=−5χ+50
1(χ)=15χ
となる。
Therefore, D i (χ) is
D 0 (χ) = − 5χ 2 +50
D 1 (χ) = 15χ
It becomes.

このうち、D0(χ)が最も次数が高いので、D0(χ)以外を右辺に移すことにより、
−5χ+50=15χφq
となり、式を整理することにより、
χ−10=3χφq
が得られる。
Of these, D 0 (χ) has the highest degree, so by moving other than D 0 (χ) to the right side,
-5χ 2 + 50 = 15χφ q
And by organizing the formula,
χ 2 −10 = 3χφ q
Is obtained.

したがって、非負整数nに対するGの有理点Qのスカラーn倍算、または非負整数nに対するHの元Aのn乗算を行わせるべき乗算を行う場合には、非負整数nに対してnをt−1進展開し、さらにχ−10進展開して、χ−10に換えて15χφqを用いることにより、Gの有理点のスカラーn倍算またはHの元Aのn乗算を、有理点に対するフロベニウス自己準同型写像φqを用いて演算を行うことができ、演算回数を減してべき乗算を高速化することができる。 Therefore, when performing a scalar n multiplication of a rational point Q of G for a non-negative integer n, or a multiplication that should cause n multiplication of an element A of H for a non-negative integer n, n is set to t− By performing the linear expansion, further expanding the χ 2 −10 decimal, and using 15 χφ q instead of χ 2 -10, the scalar n multiplication of the rational point of G or the n multiplication of the element A of H can be performed as a rational point. The Frobenius self-homogeneous map φ q can be used for computation, and the number of computations can be reduced to speed up multiplication.

他の具体体の埋め込み次数8のペアリングフレンドリ曲線として、#E(Fq)を割り切る素数r(χ)、フロベニウス自己準同型写像φqのトレースt(χ)が
r(χ)=χ−χ+1
t(χ)=χ−χ+1
と与えられた場合には、r(χ)をt(χ)−1進展開し、フロベニウス準同型写像φqを用いることにより、
r(χ)=χφq+1
0≡3φq+1 (mod r(χ))
となる。
As a pairing-friendly curve of embedding degree 8 of another concrete body, a prime number r (χ) that divides #E (F q ) and a trace t (χ) of the Frobenius self-homogeneous map φ q is r (χ) = χ 84 +1
t (χ) = χ 5 −χ + 1
Then, r (χ) is expanded to t (χ) -1 base and Frobenius homomorphism map φ q is used,
r (χ) = χ 3 φ q +1
0≡3φ q +1 (mod r (χ))
It becomes.

したがって、Di(χ)は、
0(χ)=−1
1(χ)=χ
となる。
Therefore, D i (χ) is
D 0 (χ) = − 1
D 1 (χ) = χ 3
It becomes.

このうち、D1(χ)が最も次数が高いので、D1(χ)φq以外を右辺に移すことにより、
χφq=−1
となり、両辺にφ-1を掛けることで
χ=−φq -1
が得られる。
Of these, D 1 (χ) has the highest degree, so by moving other than D 1 (χ) φ q to the right side,
χ 3 φ q = -1
By multiplying both sides by φ −1 χ 3 = −φ q −1
Is obtained.

したがって、非負整数nに対するGの有理点Qのスカラーn倍算、または非負整数nに対するHの元Aのn乗算を行わせるべき乗算を行う場合には、非負整数nに対してnをt−1進展開し、さらにχ進展開して、χに換えて−φq -1を用いることにより、Gの有理点のスカラーn倍算またはHの元Aのn乗算を、有理点に対するフロベニウス自己準同型写像φqを用いて演算を行うことができ、演算回数を減してべき乗算を高速化することができる。 Therefore, when performing a scalar n multiplication of a rational point Q of G for a non-negative integer n, or a multiplication that should cause n multiplication of an element A of H for a non-negative integer n, n is set to t− 1 binary expand and further chi 3 binary deployment, by using -.phi q -1 in place of chi 3, the n multiplication of the original a scalar n multiplication or H of rational points G, for rational point Calculations can be performed using the Frobenius self-homogeneous map φ q, and the number of calculations can be reduced to speed up multiplication.

また、埋め込み次数10のペアリングフレンドリ曲線の場合には、#E(Fq)を割り切る素数r(χ)、フロベニウス自己準同型写像φqのトレースt(χ)が、
r(χ)=25χ+25χ+15χ+5χ+1
t(χ)=10χ+5χ+3
と与えられるものが知られている。
In the case of a pairing-friendly curve of embedding degree 10, the prime number r (χ) that divides #E (F q ) and the trace t (χ) of the Frobenius self-homogeneous map φ q are
r (χ) = 25χ 4 + 25χ 3 + 15χ 2 + 5χ + 1
t (χ) = 10χ 2 + 5χ + 3
And what is given is known.

この場合、r(χ)をt(χ)−1進展開して、フロベニウス準同型写像φqを用いることにより、
8r(χ)=2φq −φq+(5χ+2)
0≡2φq −φq+(5χ+2) (mod r(χ))
となる。
In this case, by expanding r (χ) to t (χ) -1 base and using the Frobenius homomorphism map φ q ,
8r (χ) = 2φ q 2 −φ q + (5χ + 2)
0≡2φ q 2 −φ q + (5χ + 2) (mod r (χ))
It becomes.

したがって、Di(χ)は、
0(χ)=5χ+2
1(χ)=−1
2(χ)=2
となる。
Therefore, D i (χ) is
D 0 (χ) = 5χ + 2
D 1 (χ) = − 1
D 2 (χ) = 2
It becomes.

このうち、D0(χ)が最も次数が高いので、D0(χ)以外を右辺に移すことにより
5χ+2=−2φq +φq
が得られる。
Among these, since D 0 (χ) has the highest degree, 5χ + 2 = −2φ q 2 + φ q is obtained by moving other than D 0 (χ) to the right side.
Is obtained.

したがって、非負整数nに対するGの有理点Qのスカラーn倍算、または非負整数nに対するHの元Aのn乗算を行わせるべき乗算を行う場合には、非負整数nに対してnをt−1進展開し、さらに5χ+2進展開して、5χ+2に換えて−2φq +φqを用いることにより、Gの有理点のスカラーn倍算またはHの元Aのn乗算を、有理点に対するフロベニウス自己準同型写像φqを用いて演算を行うことができ、演算回数を減してべき乗算を高速化することができる。 Therefore, when performing a scalar n multiplication of a rational point Q of G for a non-negative integer n, or a multiplication that should cause n multiplication of an element A of H for a non-negative integer n, n is set to t− By using -2φ q 2 + φ q instead of 5χ + 2 and unfolding 5χ + 2 in binary, the scalar n multiplication of the rational point of G or the n multiplication of the element A of H is Frobenius for the rational point. Calculations can be performed using the auto-homogeneous mapping φ q, and the number of calculations can be reduced to speed up multiplication.

また、埋め込み次数12のペアリングフレンドリ曲線の場合には、#E(Fq)を割り切る素数r(χ)、フロベニウス自己準同型写像φqのトレースt(χ)が、
r(χ)=36χ−36χ+18χ−6χ+1
t(χ)=6χ+1
と与えられるものが知られている。
In the case of a pairing-friendly curve of embedding degree 12, the prime number r (χ) that divides #E (F q ) and the trace t (χ) of the Frobenius self-homogeneous map φ q are
r (χ) = 36χ 4 −36χ 3 + 18χ 2 −6χ + 1
t (χ) = 6χ 2 +1
And what is given is known.

この場合、r(χ)をt(χ)−1進展開して、フロベニウス準同型写像φqを用いることにより、
r(χ)=φq +(−6χ+3)φq+(−6χ+1)
0≡φq +(−6χ+3)φq+(−6χ+1) (mod r(χ))
となる。
In this case, by expanding r (χ) to t (χ) -1 base and using the Frobenius homomorphism map φ q ,
r (χ) = φ q 2 + (− 6χ + 3) φ q + (− 6χ + 1)
0≡φ q 2 + (− 6χ + 3) φ q + (− 6χ + 1) (mod r (χ))
It becomes.

したがって、Di(χ)は、
0(χ)=−6χ+1
1(χ)=−6χ+3
2(χ)=1
となる。
Therefore, D i (χ) is
D 0 (χ) = − 6χ + 1
D 1 (χ) = − 6χ + 3
D 2 (χ) = 1
It becomes.

ここで、D0(χ)とD1(χ)が共に最も次数が高いので、D0(χ)とD1(χ)φqの最高次数を与えるχの項以外を右辺に移すことにより、
6χ(φq+1)=φq +3φq+1
となる。
Here, since both D 0 (χ) and D 1 (χ) have the highest order, by shifting the terms other than χ that give the highest order of D 0 (χ) and D 1 (χ) φ q to the right side ,
6χ (φ q +1) = φ q 2 + 3φ q +1
It becomes.

ここで、g(φq)=φq −φq +1とすると、gcd(φq+1,g(φq))=1を満たし、拡張ユークリッドの互除法より
q+1)−1≡φq (1−φq) (mod g(φq))
が得られる。
Here, when g (φ q ) = φ q 4 −φ q 2 +1, gcd (φ q +1, g (φ q )) = 1 is satisfied, and from the extended Euclidean mutual division method
q +1) −1 ≡φ q 2 (1-φ q ) (mod g (φ q ))
Is obtained.

したがって、両辺にφq (1−φq)を乗じることにより、
6χ=φq (1−φq)(φq +3φq+1)
が得られる。
Therefore, by multiplying both sides by φ q 2 (1-φ q ),
6χ = φ q 2 (1-φ q ) (φ q 2 + 3φ q +1)
Is obtained.

したがって、非負整数nに対するGの有理点Qのスカラーn倍算、または非負整数nに対するHの元Aのn乗算を行わせるべき乗算を行う場合には、非負整数nに対してnをt−1進展開し、さらに6χ進展開して、6χに換えてφq (1−φq)(φq +3φq+1)を用いることにより、Gの有理点のスカラーn倍算またはHの元Aのn乗算を、有理点に対するフロベニウス自己準同型写像φqを用いて演算を行うことができ、演算回数を減してべき乗算を高速化することができる。 Therefore, when performing a scalar n multiplication of a rational point Q of G for a non-negative integer n, or a multiplication that should cause n multiplication of an element A of H for a non-negative integer n, n is set to t− By expanding 1 hex, further 6 χ, and using φ q 2 (1-φ q ) (φ q 2 + 3φ q +1) instead of 6χ, scalar n multiplication of rational points of G or H The n multiplication of the element A can be performed using the Frobenius self-homogeneous map φ q with respect to the rational point, and the number of operations should be reduced to speed up the multiplication.

より具体的な例として、χ=825(10ビット)とする。このとき、
r=16656811746301(44ビット)
t=4083751(22ビット)
である。
As a more specific example, χ = 825 (10 bits). At this time,
r = 16656811746301 (44 bits)
t = 40883751 (22 bits)
It is.

この場合、
6χ=4950(13ビット)=φq (1−φq)(φq +3φq+1)
となるので、Gの有理点のスカラーn倍算またはHの元Aのn乗算を行う場合には、有理点に対するフロベニウス自己準同型写像φを用いて13ビット程度のスカラー倍算またはべき乗算に変換してから演算を行うこととなり、演算回数の大幅な削減が可能となっている
in this case,
6χ = 4950 (13 bits) = φ q 2 (1−φ q ) (φ q 2 + 3φ q +1)
Therefore, when performing scalar n multiplication of rational points of G or n multiplication of elements A of H, scalar multiplication or power multiplication of about 13 bits using the Frobenius automorphism map φ q for the rational points Since the calculation is performed after conversion to, the number of calculations can be greatly reduced.

また、埋め込み次数18のペアリングフレンドリ曲線の場合には、#E(Fq)を割り切る素数r(χ)、フロベニウス自己準同型写像φqのトレースt(χ)が、
r(χ)=χ+37χ+343
t(χ)=(χ+16χ+7)/7
と与えられるものが知られている。
In the case of a pairing-friendly curve with an embedding degree of 18, the prime number r (χ) that divides #E (F q ) and the trace t (χ) of the Frobenius self-homogeneous map φ q are
r (χ) = χ 6 + 37χ 3 +343
t (χ) = (χ 4 + 16χ + 7) / 7
And what is given is known.

この場合、r(χ)をt(χ)−1進展開して、フロベニウス準同型写像φqを用いることにより、
r(χ)=(7χq+(21χ+343)
0≡(7χq+(21χ+343) (mod r(χ))
となる。
In this case, by expanding r (χ) to t (χ) -1 base and using the Frobenius homomorphism map φ q ,
r (χ) = (7χ 2 ) φ q + (21χ 3 +343)
0≡ (7χ 2 ) φ q + (21χ 3 +343) (mod r (χ))
It becomes.

したがって、Di(χ)は、
0(χ)=21χ−343
1(χ)=7χ
となる。
Therefore, D i (χ) is
D 0 (χ) = 21χ 3 −343
D 1 (χ) = 7χ 2
It becomes.

このうち、D0(χ)が最も次数が高いので、D0(χ)以外を右辺に移すことにより、
21χ−343=7χφq
となり、式を整理することによって、
χ−49=χφq
が得られる。
Of these, D 0 (χ) has the highest degree, so by moving other than D 0 (χ) to the right side,
21χ 3 −343 = 7χ 2 φ q
And by organizing the formula,
χ 3 −49 = χ 2 φ q
Is obtained.

したがって、非負整数nに対するGの有理点Qのスカラーn倍算、または非負整数nに対するHの元Aのn乗算を行わせるべき乗算を行う場合には、非負整数nに対してnをt−1進展開し、さらにχ−49進展開して、χ−49に換えてχφqを用いることにより、Gの有理点のスカラーn倍算またはHの元Aのn乗算を、有理点に対するフロベニウス自己準同型写像φqを用いて演算を行うことができ、演算回数を減してべき乗算を高速化することができる。 Therefore, when performing a scalar n multiplication of a rational point Q of G for a non-negative integer n, or a multiplication that should cause n multiplication of an element A of H for a non-negative integer n, n is set to t− 1 binary expand, expand further chi 3 -49 binary, by using in place of χ 3 -49 χ 2 φ q, a n multiplication of the original a scalar n multiplication or H of rational points G, Calculations can be performed using the Frobenius automorphism map φ q for rational points, and the number of calculations can be reduced to speed up multiplications that should be performed.

最後に、スカラー倍算の演算プログラム及びべき乗算の演算プログラムについて詳説する。なお、スカラー倍算の演算プログラム及びべき乗算の演算プログラムは、本実施形態では、IDベース暗号やグループ署名などを電子計算機で実行している際に、サブルーチンの一つとしてそれぞれ実行されるものである。   Finally, a scalar multiplication operation program and a power multiplication operation program will be described in detail. In this embodiment, the scalar multiplication operation program and the power multiplication operation program are executed as one of the subroutines when the ID-based encryption, the group signature, or the like is executed on the electronic computer. is there.

図1に示すように、スカラー倍算の演算プログラム及びべき乗算の演算プログラムを実行する電子計算機10は、演算処理を実行するCPU11と、所要のプログラムやデータを記憶したハードディスクなどの記憶装置12と、所要のプログラムを展開して実行可能とするとともに、演算にともなって生成されたデータを一時的に記憶するRAMなどで構成されたメモリ装置13を備えている。図1中、14はバスである。本実施形態では、記憶装置12には、メインルーチンのプログラムやスカラー倍算の演算プログラム及びべき乗算の演算プログラムなどの各種プログラム、及びこれらのプログラムが使用するデータを記憶させている。   As shown in FIG. 1, an electronic computer 10 that executes an arithmetic program for scalar multiplication and an arithmetic program for exponentiation includes a CPU 11 that executes arithmetic processing, and a storage device 12 such as a hard disk that stores necessary programs and data. The memory device 13 includes a RAM or the like that expands and executes a required program and temporarily stores data generated in accordance with the calculation. In FIG. 1, 14 is a bus. In the present embodiment, the storage device 12 stores various programs such as a main routine program, a scalar multiplication calculation program, and a power multiplication calculation program, and data used by these programs.

電子計算機10が、例えばグループ署名における認証装置として機能する場合には、インターネットなどの電気通信回線20に接続して、この電気通信回線20に接続されたクライアント装置30から送信されたグループ署名の署名データを受信し、メモリ装置13に一次的に記憶して、グループ署名用のプログラムに基づいて署名データの正当性を判定して認証処理を行っている。図1中、15は電子計算機10の入出力制御部である。   For example, when the electronic computer 10 functions as an authentication device for a group signature, the signature of the group signature transmitted from the client device 30 connected to the telecommunication line 20 such as the Internet and connected to the telecommunication line 20 is used. Data is received, temporarily stored in the memory device 13, and authentication processing is performed by determining the validity of the signature data based on the group signature program. In FIG. 1, reference numeral 15 denotes an input / output control unit of the electronic computer 10.

スカラー倍算の演算プログラム及びべき乗算の演算プログラムは、それぞれ署名データの正当性を判定する処理を行う際に数多く実行されるものであり、以下においては、スカラー倍算の演算プログラム、及びべき乗算の演算プログラムについてのみ説明する。なお、スカラー倍算の演算プログラム及びべき乗算の演算プログラムは、グループ署名の処理において用いられるものではなく、多種多様な用途で用いられるものであり、しかも、記憶装置12に記憶可能な形態である場合だけでなく、半導体回路として構成することによりいわゆるハードウェア実装される形態であってもよい。   A number of scalar multiplication operation programs and power multiplication operation programs are executed when performing processing for determining the validity of signature data. In the following, a scalar multiplication operation program and power multiplication are performed. Only the calculation program will be described. Note that the scalar multiplication operation program and the exponentiation operation program are not used in group signature processing, but are used for a variety of purposes, and can be stored in the storage device 12. Not only the case, but also a configuration in which a so-called hardware is implemented by configuring as a semiconductor circuit.

まず、t−1進展開によるスカラー倍算nQについて説明する。   First, scalar multiplication nQ by t-1 base expansion will be described.

スカラー倍算の演算プログラムを実行させて電子計算機をスカラー倍算機として機能させる際に、図2に示すように、はじめに、スカラーnと、E(Fq)のフロベニウス自己準同型写像のトレースtと、有理点Q∈G⊂E(Fq k)が入力される(ステップS101)。この場合、電子計算機は、入力手段として機能する。 As shown in FIG. 2, when the arithmetic program for scalar multiplication is executed to make the electronic computer function as a scalar multiplier, first, as shown in FIG. 2, the trace t of the Frobenius self-homogeneous map of scalar n and E (F q ) Then, the rational point QεG⊂E (F q k ) is input (step S101). In this case, the electronic computer functions as input means.

次いで、電子計算機は、初期化手段として機能し、演算結果を格納するレジスタZを初期化(Z←O)する(ステップS102)。そして、第1の演算手段として機能し、入力されたQに対して、2jQをあらかじめ演算しておく(ステップS103)。 Next, the electronic computer functions as initialization means, and initializes the register Z for storing the operation result (Z ← O) (step S102). Then, functions as first calculating means, on the input Q, advance calculation of 2 j Q (step S103).

ステップS103では、T[j]=2jQとして、電子計算機は、以下のアルゴリズムを実行している。
(1)for(j=0;J<「log2s」;j++)
(2) T[j]←Q
(3) Q←Q+Q
(4)End for
ここで、(1)の「log2s」は、厳密には、
In step S103, T [j] = 2 j Q, and the electronic computer executes the following algorithm.
(1) for (j = 0; J <"log 2 s"; j ++)
(2) T [j] ← Q
(3) Q ← Q + Q
(4) End for
Here, strictly speaking, “log 2 s” in (1) is


であるが、表記上の制限のため、「」を用いている。以下において、アルゴリズム中の「」は同じ意味に用いる。

However, “” is used due to the limitation of notation. In the following, “” in the algorithm is used in the same meaning.

次いで、t−1=sとして、電子計算機は、展開手段として機能し、スカラーnを、   Next, assuming that t−1 = s, the electronic computer functions as a developing unit, and scalar n is


とs進展開する(ステップS104)。ここで、iの大きさは、nの大きさによって決定するものである。

And s-advance expansion (step S104). Here, the size of i is determined by the size of n.

ステップS104では、s進展開の演算として、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「logsn」;i++)
(2) c[i]←n%s
(3) n←(n-c[i])/s
(4)End for
ここで、「%」は、剰余をとっていることを表している。
In step S104, the electronic computer executes the following algorithm as an arithmetic operation of s-adic expansion.
(1) for (i = 0; i <“log s n”; i ++)
(2) c [i] ← n% s
(3) n ← (nc [i]) / s
(4) End for
Here, “%” indicates that the remainder is taken.

次いで、本実施形態では、電子計算機は、第2の演算手段として機能し、Q[i]=c[i]Qの演算を行う(ステップS105)。   Next, in the present embodiment, the electronic computer functions as a second calculation unit, and calculates Q [i] = c [i] Q (step S105).

ステップS105では、バイナリ法を用いており、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「logsn」;i++)
(2) Q[i]←O
(3) for(j=0;c[i]!=0;i++)
(4) if(c[i]&1)
(5) Q[i]←Q[i]+T[j]
(6) End if
(7) c[i]←c[i]/2
(8) End for
(9)End for
In step S105, the binary method is used, and the electronic computer executes the following algorithm.
(1) for (i = 0; i <“log s n”; i ++)
(2) Q [i] ← O
(3) for (j = 0; c [i]! = 0; i ++)
(4) if (c [i] & 1)
(5) Q [i] ← Q [i] + T [j]
(6) End if
(7) c [i] ← c [i] / 2
(8) End for
(9) End for

次いで、電子計算機は、合成手段として機能し、ステップS105で演算したQ[i]を用いて、スカラー倍算nQを、   Next, the electronic calculator functions as a synthesis unit, and uses Q [i] calculated in step S105 to calculate the scalar multiplication nQ,


によって合成する(ステップS106)。

(Step S106).

ステップS106では、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「logsn」;i++)
(2) Z←Z+φq i(Q[i])
(3)End for
In step S106, the electronic computer executes the following algorithm.
(1) for (i = 0; i <“log s n”; i ++)
(2) Z ← Z + φ q i (Q [i])
(3) End for

そして、電子計算機は、出力手段として機能し、スカラー倍算の演算プログラムの実行結果として、Zを出力し(ステップS107)、スカラー倍算の演算プログラムを終了している。   Then, the electronic computer functions as output means, outputs Z as the execution result of the scalar multiplication operation program (step S107), and ends the scalar multiplication operation program.

また、楕円曲線の有限体Fqの位数q、#E(Fq)を割り切る素数位数r、フロベニウス自己準同型写像φqのトレースtが、整数変数χを用いてそれぞれq(χ)、r(χ)、t(χ)とあらかじめ特定されている場合には、r(χ)をt(χ)−1進展開することにより
[r(χ)]Q=Σ[Di(χ)(t(χ)−1)i]Q=Σφq i([Di(χ)]Q)
として表されるDi(χ)のうちでもっとも次数の高いものをDdmax(χ)とし、
φq dmax([Ddmax(χ)]Q)=Σφq i([Di(χ)]Q)−φq dmax([Ddmax(χ)]Q)
=[f(φq,χ)]Q
となる多項式f(φq,χ)を用い、φq kQ=Qに基づいて
[Ddmax(χ)]Q=[f(φq,χ)φq -dmax]Q=[h(φq,χ)]Q
となる多項式h(φq,χ)と、Ddmax(χ)を用いることにより、スカラー倍算nQをより高速化することができる。
Also, the order q of the elliptic curve finite field F q , the prime order r that divides #E (F q ), and the trace t of the Frobenius self-homogeneous map φ q are respectively represented by q (χ) using the integer variable χ. , R (χ) and t (χ) are specified in advance by expanding r (χ) to t (χ) -1 base
[r (χ)] Q = Σ [D i (χ) (t (χ) −1) i ] Q = Σφ q i ([D i (χ)] Q)
D dmax (χ) is the highest order among D i (χ) expressed as
φ q dmax ([D dmax (χ)] Q) = Σφ q i ([D i (χ)] Q) −φ q dmax ([D dmax (χ)] Q)
= [F (φ q , χ)] Q
Based on φ q k Q = Q, using the polynomial f (φ q , χ)
[D dmax (χ)] Q = [f (φ q , χ) φ q −dmax ] Q = [h (φ q , χ)] Q
The scalar multiplication nQ can be further speeded up by using the polynomial h (φ q , χ) and D dmax (χ).

すなわち、Ddmax(χ)及び多項式h(φq,χ)が特定されている場合には、χ=aとしてスカラーnをDdmax(a)進展開して、Ddmax(a)に換えてh(φq,a)を用いることにより、演算回数を削減している。 That is, when D dmax (χ) and the polynomial h (φ q , χ) are specified, scalar n is expanded in D dmax (a) with χ = a, and replaced with D dmax (a). By using h (φ q , a), the number of computations is reduced.

dmax(χ)及び多項式h(φq,χ)が特定されている場合のスカラー倍算nQでは、スカラー倍算の演算プログラムを実行させて電子計算機をスカラー倍算機として機能させる際に、図3に示すように、はじめに、スカラーnと、χ=aとしてs=Ddmax(a)及びh'(φq)=h(φq,a)と、有理点Q∈G⊂E(Fq k)が入力される(ステップS201)。この場合、電子計算機は、入力手段として機能する。 In scalar multiplication nQ when D dmax (χ) and polynomial h (φ q , χ) are specified, when an arithmetic program for scalar multiplication is executed and the electronic computer functions as a scalar multiplier, As shown in FIG. 3, first, scalar n, χ = a, s = D dmax (a) and h ′ (φ q ) = h (φ q , a), rational point Q∈G⊂E (F q k ) is input (step S201). In this case, the electronic computer functions as input means.

次いで、電子計算機は、初期化手段として機能し、演算結果を格納するレジスタZを初期化(Z←O)する(ステップS202)。そして、第1の演算手段として機能し、入力されたQに対して、2jQをあらかじめ演算しておく(ステップS203)。ステップS203の演算はステップS103の演算とアルゴリズムは同じであるので、説明は省略する。 Next, the electronic computer functions as initialization means, and initializes the register Z for storing the operation result (Z ← O) (step S202). Then, functions as first calculating means, on the input Q, advance calculation of 2 j Q (step S203). Since the calculation in step S203 is the same as the calculation in step S103, description thereof is omitted.

次いで、電子計算機は、第1の展開手段として機能し、スカラーnを、   Next, the electronic computer functions as the first expansion means, and the scalar n is


とs進展開する(ステップS204)。ステップS204でのs進展開は、ステップS104でのs進展開とアルゴリズムは同じであるので、説明は省略する。

And s-advance expansion (step S204). Since the algorithm for the s-adic expansion in step S204 is the same as that for the s-adic expansion in step S104, description thereof is omitted.

次いで、電子計算機は、第2の展開手段として機能し、スカラーnを、h'(φq)及びc[i]を用いながら、 Next, the electronic computer functions as a second expansion means, and uses scalar n as h ′ (φ q ) and c [i],


とφq進展開する(ステップS205)。

And phi q proceeds to deploy (step S205).

ステップS205では、φq進展開の演算として、電子計算機は、以下のアルゴリズムを実行している。
(1)T(φq)←1
(2)for(i=0;i<「logsn」;i++)
(3) d[i]←c[i]
(4) if(d[i]≧s)
(5) for(j=0;j<「logsd[i]」;j++)
(6) e[j]←d[i]%s
(7) d[i]←(d[i]-e[j])%s
(8) End for
(9) U(φq)←1
(10) for(j=0;j<「logsd[i]」;j++)
(11) U(φq)←{U(φq)*e[j]*h'(φq)j}%(φq k-1)
(12) End for
(13) T(φq)←{T(φq)+U(φq)*h'(φq)i}%(φq k-1)
(14) End if
(15) else
(16) T(φq)←{T(φq)+d[i]*h'(φq)i}%(φq k-1)
(17) End else
(18)End for
In step S205, the electronic computer executes the following algorithm as an operation of φq- adic expansion.
(1) T (φ q ) ← 1
(2) for (i = 0; i <“log s n”; i ++)
(3) d [i] ← c [i]
(4) if (d [i] ≧ s)
(5) for (j = 0; j <"log s d [i]"; j ++)
(6) e [j] ← d [i]% s
(7) d [i] ← (d [i] -e [j])% s
(8) End for
(9) U (φ q ) ← 1
(10) for (j = 0; j <"log s d [i]"; j ++)
(11) U (φ q ) ← {U (φ q ) * e [j] * h ′ (φ q ) j }% (φ q k −1)
(12) End for
(13) T (φ q ) ← {T (φ q ) + U (φ q ) * h '(φ q ) i }% (φ q k -1)
(14) End if
(15) else
(16) T (φ q ) ← {T (φ q ) + d [i] * h '(φ q ) i }% (φ q k -1)
(17) End else
(18) End for

なお、スカラーnをφq進展開した場合に、φq進展開の係数がsよりも大きくなることがある。このように、φq進展開の係数がsよりも大きい場合(ステップS206:NO)には、φq進展開の係数に対してsの剰余をとることにより、φq進展開の係数がsよりも小さくなるように調整している(ステップS207)。この場合、電子計算機は、ステップS206において比較手段として機能し、ステップS207において調整手段として機能する。 In the case where a scalar n and phi q-adic expansion, coefficient of phi q-adic expansion is sometimes larger than s. Thus, if the coefficient of phi q-adic expansion is larger than s: (step S206 NO), by taking the remainder of s with respect to coefficient of phi q-adic expansion, coefficient of phi q-adic expansion is s The adjustment is made to be smaller (step S207). In this case, the electronic computer functions as a comparison unit in step S206 and functions as an adjustment unit in step S207.

ステップS207では、電子計算機は、以下のアルゴリズムを実行している。
(1)until(d[i]<s)
(2) for(i=0;i<k-1;i++)
(3) d[i]←the i-th coefficient of T(φq)
(4) if(d[i]≧s)
(5) the i-th coefficient of T(φq)←0
(6) for(j=0;j<「logsd[i]」;j++)
(7) e[j]←d[i]%s
(8) d[i]←(d[i]-e[j])%s
(9) End for
(10) U(φq)←1
(11) for(j=0;j<「logsd[i]」;j++)
(12) U(φq)←{U(φq)*e[j]*h'(φq)j}%(φq k-1)
(13) End for
(14) T(φq)←{T(φq)+U(φq)*φq i}%(φq k-1)
(15) End if
(16) End for
(17)End until
In step S207, the electronic computer executes the following algorithm.
(1) until ( d [i] <s)
(2) for (i = 0; i <k-1; i ++)
(3) d [i] ← the i-th coefficient of T (φ q )
(4) if (d [i] ≧ s)
(5) the i-th coefficient of T (φ q ) ← 0
(6) for (j = 0; j <"log s d [i]"; j ++)
(7) e [j] ← d [i]% s
(8) d [i] ← (d [i] -e [j])% s
(9) End for
(10) U (φ q ) ← 1
(11) for (j = 0; j <"log s d [i]"; j ++)
(12) U (φ q ) ← {U (φ q ) * e [j] * h '(φ q ) j }% (φ q k -1)
(13) End for
(14) T (φ q ) ← {T (φ q ) + U (φ q ) * φ q i }% (φ q k -1)
(15) End if
(16) End for
(17) End until

次いで、電子計算機は、第2の演算手段として機能し、Q[i]=d[i]Qの演算を行う(ステップS208)。   Next, the electronic calculator functions as a second calculation means, and calculates Q [i] = d [i] Q (step S208).

ステップS208でも、バイナリ法を用いており、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<k;i++)
(2) Q[i]←O
(3) for(j=0;d[i]!=0;i++)
(4) if(d[i]&1)
(5) Q[i]←Q[i]+T[j]
(6) End if
(7) d[i]←d[i]/2
(8) End for
(9)End for
Also in step S208, the binary method is used, and the electronic computer executes the following algorithm.
(1) for (i = 0; i <k; i ++)
(2) Q [i] ← O
(3) for (j = 0; d [i]! = 0; i ++)
(4) if (d [i] & 1)
(5) Q [i] ← Q [i] + T [j]
(6) End if
(7) d [i] ← d [i] / 2
(8) End for
(9) End for

次いで、電子計算機は、合成手段として機能し、ステップS208で演算したQ[i]を用いて、スカラー倍算nQを、   Next, the electronic calculator functions as a synthesis unit, and uses Q [i] calculated in step S208 to calculate scalar multiplication nQ,


によって合成する(ステップS209)。

(Step S209).

ステップS209では、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<k;i++)
(2) Z←Z+φq i(Q[i])
(3)End for
In step S209, the electronic computer executes the following algorithm.
(1) for (i = 0; i <k; i ++)
(2) Z ← Z + φ q i (Q [i])
(3) End for

そして、電子計算機は、出力手段として機能し、スカラー倍算の演算プログラムの実行結果として、Zを出力し(ステップS210)、スカラー倍算の演算プログラムを終了している。   The electronic computer functions as output means, outputs Z as the execution result of the scalar multiplication operation program (step S210), and ends the scalar multiplication operation program.

dmax(χ)及び多項式h(φq,χ)は、楕円曲線の有限体Fqの位数q(χ)、#E(Fq)を割り切る素数位数r(χ)、フロベニウス自己準同型写像φqのトレースt(χ)があらかじめ与えられていることから、あらかじめ特定でき、q(χ)、r(χ)及びt(χ)とともに、Ddmax(χ)と多項式h(φq,χ)をスカラー倍算の演算プログラムに組み込んでもよいし、r(χ)及びt(χ)を用いて以下の補助プログラムによって、Ddmax(χ)と多項式h(φq,χ)を求めてもよい。 D dmax (χ) and polynomial h (φ q, χ), the order of the finite field F q of an elliptic curve q (χ), # E ( F q) number element divides the digit number r (χ), Frobenius self quasi Since the trace t (χ) of the isomorphism map φ q is given in advance, it can be specified in advance, and together with q (χ), r (χ) and t (χ), D dmax (χ) and the polynomial h (φ q , χ) may be incorporated into the arithmetic program for scalar multiplication, or D dmax (χ) and polynomial h (φ q , χ) are obtained by the following auxiliary program using r (χ) and t (χ). May be.

電子計算機は、補助プログラムを起動させると、図4に示すように、はじめに、入力手段として機能し、r(χ)とt(χ)が入力される(ステップS221)。   When the computer starts the auxiliary program, as shown in FIG. 4, it first functions as input means, and r (χ) and t (χ) are input (step S221).

次いで、電子計算機は、展開手段として機能し、入力されたt(χ)を用いて、t(χ)−1=s(χ)として、r(χ)を、   Next, the electronic computer functions as expansion means, and uses the input t (χ) to set r (χ) as t (χ) −1 = s (χ),


とs(χ)進展開する(ステップS222)。ここで、iの大きさは、r(χ)及びs(χ)から自動的に決定される。ステップS222では、s(χ)進展開の演算として、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「degr(χ)/degs(χ)」;i++)
(2) Di(χ)←r(χ)%s(χ)
(3) r(χ)←(r(χ)-Di(χ))/s(χ)
(4)End for

And s (χ) advance development (step S222). Here, the magnitude of i is automatically determined from r (χ) and s (χ). In step S222, the electronic computer executes the following algorithm as an operation of s (χ) -adic expansion.
(1) for (i = 0; i <"degr (χ) / degs (χ)"; i ++)
(2) D i (χ) ← r (χ)% s (χ)
(3) r (χ) ← (r (χ) -D i (χ)) / s (χ)
(4) End for

次いで、電子計算機は、抽出手段として機能し、deg(Di(χ))が最大のものを抽出して、Ddmax(χ)として出力する(ステップS223)。 Next, the electronic computer functions as extraction means, extracts the one having the largest deg (D i (χ)), and outputs it as D dmax (χ) (step S223).

次いで、電子計算機は、演算手段として機能し、   Next, the electronic computer functions as a computing means,


の演算を行って多項式h(φq,χ)を特定し、出力している(ステップS224)。このようにして、電子計算機では、補助プログラムを用いてDdmax(χ)及び多項式h(φq,χ)を求めることができる。

The polynomial h (φ q , χ) is specified by performing the above calculation and output (step S224). In this way, the electronic computer can obtain D dmax (χ) and the polynomial h (φ q , χ) using the auxiliary program.

また、楕円曲線の有限体Fqの位数q、#E(Fq)を割り切る素数位数r、フロベニウス自己準同型写像φqのトレースtが、整数変数χを用いてそれぞれq(χ)、r(χ)、t(χ)とあらかじめ特定されているとともに、r(χ)をt(χ)−1進展開することにより
[r(χ)]Q=Σ[Di(χ)(t(χ)−1)i]Q=Σφq i([Di(χ)]Q)
として表されるDi(χ)において最高次数dmaxとなるDi(χ)が複数存在する場合には、最高次数dmaxの項であるχdmaxの係数をTdmaxq)として、r(χ)|m(χ)を満たす最小次数の多項式m(χ)を用いて
V(φq)|m(φq),gcd(Tdmaxq),V(φq))=1
を満たすV(φq)を特定し、
g(φq)V(φq)≡v(mod m(φq))
を満たす整数のスカラーv及びg(φq)を拡張ユークリッドの互除法により特定し、
[Tdmaxqdmax]Q=Σφq i([Di(χ)]Q)−[Tdmaxqdmax]Q
=[f(φq,χ)]Q
となる多項式f(φq,χ)と、g(φq)を用い、φq kQ=Qに基づいて、
[vχdmax]Q=[g(φq)f(φq,χ)]Q=[h(φq,χ)]Q
となる多項式h(φq,χ)を特定し、このh(φq,χ)のφqに関する定数項h(0,χ)が、
[vχdmax−h(0,χ)]Q=[h(φq,χ)−h(0,χ)]Q
を満たすことを用いることにより、スカラー倍算nQをより高速化することができる。
Also, the order q of the elliptic curve finite field F q , the prime order r that divides #E (F q ), and the trace t of the Frobenius self-homogeneous map φ q are respectively represented by q (χ) using the integer variable χ. , R (χ) and t (χ) are specified in advance, and r (χ) is expanded by t (χ) -1 base
[r (χ)] Q = Σ [D i (χ) (t (χ) −1) i ] Q = Σφ q i ([D i (χ)] Q)
In the case where there are a plurality of D i (χ) having the highest order dmax in D i (χ) expressed as, the coefficient of χ dmax that is the term of the highest order dmax is defined as T dmaxq ) and V (φ q ) | m (φ q ), gcd (T dmaxq ), V (φ q )) = 1 using a polynomial m (χ) of the minimum order satisfying χ) | m (χ)
V (φ q ) that satisfies
g (φ q ) V (φ q ) ≡v (mod m (φ q ))
Specify integer scalars v and g (φ q ) satisfying the above by the extended Euclidean algorithm,
[T dmaxq ) χ dmax ] Q = Σφ q i ([D i (χ)] Q) − [T dmaxq ) χ dmax ] Q
= [F (φ q , χ)] Q
Based on φ q k Q = Q, using the polynomial f (φ q , χ) and g (φ q )
[vχ dmax ] Q = [g (φ q ) f (φ q , χ)] Q = [h (φ q , χ)] Q
The polynomial h (φ q , χ) is identified as follows, and the constant term h (0, χ) relating to φ q of h (φ q , χ) is
[vχ dmax −h (0, χ)] Q = [h (φ q , χ) −h (0, χ)] Q
By using the above, scalar multiplication nQ can be further speeded up.

すなわち、χ=aとして、s'=vadmax−h(0,a)及びh'(φq)=h(φq,a)−h(0,a)とし、スカラーnをDdmax(a)進展開する換わりにvadmax−h(0,a)進展開して、vadmax−h(0,a)の換わりにh(φq,a)−h(0,a)を用いることにより、演算回数を削減している。 That is, χ = a, s ′ = va dmax −h (0, a) and h ′ (φ q ) = h (φ q , a) −h (0, a), and the scalar n is D dmax (a ) By using va dmax -h (0, a) instead of varic expansion and using h (φ q , a) -h (0, a) instead of va dmax -h (0, a) The number of operations has been reduced.

s'=vadmax−h(0,a)及びh'(φq)=h(φq,a)−h(0,a)が特定されている場合のスカラー倍算nQでは、スカラー倍算の演算プログラムを実行させて電子計算機をスカラー倍算機として機能させる際に、図5に示すように、はじめに、スカラーnと、χ=aとしてスカラーs'=vadmax−h(0,a)及びh'(φq)=h(φq,a)−h(0,a)と、有理点Q∈G⊂E(Fq k)が入力される(ステップS301)。この場合、電子計算機は、入力手段として機能する。 For scalar multiplication nQ where s ′ = va dmax −h (0, a) and h ′ (φ q ) = h (φ q , a) −h (0, a) are specified, scalar multiplication As shown in FIG. 5, first, a scalar n and a scalar s ′ = va dmax −h (0, a) are set as the scalar n and χ = a. And h ′ (φ q ) = h (φ q , a) −h (0, a) and a rational point Q∈G⊂E (F q k ) are input (step S301). In this case, the electronic computer functions as input means.

次いで、電子計算機は、初期化手段として機能し、演算結果を格納するレジスタZを初期化(Z←O)する(ステップS302)。そして、第1の演算手段として機能し、入力されたQに対して、2jQをあらかじめ演算しておく(ステップS303)。ステップS303の演算はステップS103の演算とアルゴリズムは同じであるので、説明は省略する。 Next, the electronic computer functions as initialization means, and initializes the register Z for storing the operation result (Z ← O) (step S302). Then, functions as first calculating means, on the input Q, advance calculation of 2 j Q (step S303). Since the calculation in step S303 is the same as the calculation in step S103, the description thereof is omitted.

次いで、電子計算機は、第1の展開手段として機能し、スカラーnを、   Next, the electronic computer functions as the first expansion means, and the scalar n is


とs'進展開する(ステップS304)。ステップS304でのs'進展開は、ステップS204でのs進展開とアルゴリズムは同じであるので、説明は省略する。

And s' advance (step S304). Since the algorithm for the s'-adic expansion in step S304 is the same as that for the s-adic expansion in step S204, description thereof is omitted.

次いで、電子計算機は、第2の展開手段として機能し、スカラーnを、h'(φq)及びc[i]を用いながら、 Next, the electronic computer functions as a second expansion means, and uses scalar n as h ′ (φ q ) and c [i],


とφq進展開する(ステップS305)。ステップS305でのφq進展開は、スカラーs'(=vadmax−h(0,a))が、ステップS205でのスカラーs(=Ddmax(a))とは異なる点以外では、ステップS205でのs進展開とアルゴリズムは同じであるため、詳細な説明は省略する。

And phi q proceeds to deploy (step S305). The phi q-adic expansion in step S305, the scalar s' (= va dmax -h ( 0, a)) is, in addition differs from the scalar s (= D dmax (a) ) in step S205, the step S205 Since the s-adic expansion and the algorithm are the same, detailed description is omitted.

ステップS305でのφq進展開でも、φq進展開の係数がs'よりも大きくなることがある。このように、φq進展開の係数がs'よりも大きい場合(ステップS306:NO)には、φq進展開の係数に対してs'の剰余をとることにより、φq進展開の係数がs'よりも小さくなるように調整している(ステップS307)。このステップS307での演算も、スカラーs'(=vadmax−h(0,a))が、ステップS207でのスカラーs(=Ddmax(a))とは異なる点以外では、ステップS207での演算とアルゴリズムは同じであるため、詳細な説明は省略する。この場合、電子計算機は、ステップS306において比較手段として機能し、ステップS307において調整手段として機能する。 In phi q-adic expansion in step S305, it may coefficient phi q-adic expansion becomes larger than s'. As described above, when the coefficient for φq- adic expansion is larger than s ′ (step S306: NO), the coefficient for φq- adic expansion is obtained by taking the remainder of s ′ with respect to the coefficient for φq- adic expansion. Is adjusted to be smaller than s ′ (step S307). The calculation in step S307 is the same as that in step S207 except that the scalar s ′ (= va dmax −h (0, a)) is different from the scalar s (= D dmax (a)) in step S207. Since the calculation and the algorithm are the same, detailed description is omitted. In this case, the electronic computer functions as a comparison unit in step S306 and functions as an adjustment unit in step S307.

次いで、電子計算機は、第2の演算手段として機能し、Q[i]=d[i]Qの演算を行う(ステップS308)。ステップS308でも、バイナリ法を用いており、ステップS308の演算もステップS208の演算とアルゴリズムは同じであるので、説明は省略する。   Next, the electronic calculator functions as a second calculation means, and calculates Q [i] = d [i] Q (step S308). Even in step S308, the binary method is used, and the calculation in step S308 is the same as the calculation in step S208, and the description thereof will be omitted.

次いで、電子計算機は、合成手段として機能し、ステップS308で演算したQ[i]を用いて、スカラー倍算nQを、   Next, the electronic calculator functions as a synthesis unit, and uses Q [i] calculated in step S308 to calculate the scalar multiplication nQ,


によって合成する(ステップS309)。ステップS309の演算もステップS209の演算とアルゴリズムは同じであるので、説明は省略する。

(Step S309). Since the calculation in step S309 is the same as the algorithm in step S209, the description thereof is omitted.

そして、電子計算機は、出力手段として機能し、スカラー倍算の演算プログラムの実行結果として、Zを出力し(ステップS310)、スカラー倍算の演算プログラムを終了している。   The electronic computer functions as output means, outputs Z as the execution result of the scalar multiplication operation program (step S310), and ends the scalar multiplication operation program.

多項式h(φq,χ)及びvχdmax−h(0,χ)は、楕円曲線の有限体Fqの位数q(χ)、#E(Fq)を割り切る素数位数r(χ)、フロベニウス自己準同型写像φqのトレースt(χ)があらかじめ与えられていることから、あらかじめ特定できるので、q(χ)、r(χ)及びt(χ)とともに、多項式h(φq,χ)及びvχdmax−h(0,χ)をスカラー倍算の演算プログラムに組み込んでもよいし、r(χ)及びt(χ)を用いて以下の補助プログラムによって、多項式h(φq,χ)及びvχdmax−h(0,χ)を求めてもよい。 Polynomial h (φ q, χ) and vχ dmax -h (0, χ), the order of the finite field F q of an elliptic curve q (χ), # E ( F q) number element divides the digit number r (χ) Since the trace t (χ) of the Frobenius self-homogeneous map φ q is given in advance, it can be specified in advance, so that together with q (χ), r (χ) and t (χ), the polynomial h (φ q , χ) and vχ dmax −h (0, χ) may be incorporated into the arithmetic program for scalar multiplication, or the polynomial h (φ q , χ by the following auxiliary program using r (χ) and t (χ) ) And vχ dmax −h (0, χ) may be obtained.

電子計算機は、補助プログラムを起動させると、図6に示すように、はじめに、入力手段として機能し、r(χ)、t(χ)及びm(χ)が入力される(ステップS321)。ここで、m(χ)はr(χ)|m(χ)を満たす最小次数の多項式であり、一般的には円周等分多項式が用いられる。   When the electronic computer is activated, as shown in FIG. 6, the electronic computer first functions as input means, and r (χ), t (χ), and m (χ) are inputted (step S321). Here, m (χ) is a polynomial of the minimum order that satisfies r (χ) | m (χ), and generally a circumferential equality polynomial is used.

次いで、電子計算機は、展開手段として機能し、入力されたt(χ)を用いて、t(χ)−1=s(χ)として、r(χ)を、   Next, the electronic computer functions as expansion means, and uses the input t (χ) to set r (χ) as t (χ) −1 = s (χ),


とs(χ)進展開する(ステップS322)。ここで、iの大きさは、r(χ)及びs(χ)から自動的に決定される。ステップS322では、s(χ)進展開の演算として、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「degr(χ)/degs(χ)」;i++)
(2) Di(χ)←r(χ)%s(χ)
(3) r(χ)←(r(χ)-Di(χ))/s(χ)
(4)End for

And s (χ) advance development (step S322). Here, the magnitude of i is automatically determined from r (χ) and s (χ). In step S322, the electronic computer executes the following algorithm as the calculation of s (χ) -adic expansion.
(1) for (i = 0; i <"degr (χ) / degs (χ)"; i ++)
(2) D i (χ) ← r (χ)% s (χ)
(3) r (χ) ← (r (χ) -D i (χ)) / s (χ)
(4) End for

次いで、電子計算機は、第1の特定手段として機能し、deg(Di(χ))の最大の次数dmaxの項であるχdmaxの係数を抽出して、抽出された係数の和をT(φq,χ)とし、それ以外の和をU(φq,χ)とする(ステップS323)。ステップS323では、電子計算機は、具体的に以下のアルゴリズムを実行している。
(1)for(i=0;i<「degr(χ)/degs(χ)」;i++)
(2) T(φq,χ)←0,U(φq,χ)←0
(3) if(deg(Di(χ))=dmax)
(4) T(φq,χ)←T(φq,χ)+Di(χ)φq i
(5) End if
(6) else
(7) U(φq,χ)←U(φq,χ)+Di(χ)φq i
(8) End else
(9)End for
Next, the electronic computer functions as a first specifying means, extracts a coefficient of χ dmax that is a term of the maximum degree dmax of deg (D i (χ)), and calculates the sum of the extracted coefficients as T ( φ q , χ), and the other sum is U (φ q , χ) (step S323). In step S323, the electronic computer specifically executes the following algorithm.
(1) for (i = 0; i <"degr (χ) / degs (χ)"; i ++)
(2) T (φ q , χ) ← 0, U (φ q , χ) ← 0
(3) if (deg (D i (χ)) = dmax)
(4) T (φ q , χ) ← T (φ q , χ) + D i (χ) φ q i
(5) End if
(6) else
(7) U (φ q , χ) ← U (φ q , χ) + D i (χ) φ q i
(8) End else
(9) End for

次いで、電子計算機は、第2の特定手段として機能し、ステップS323で特定したT(φq,χ)の最高次数係数Tdmaxq)を特定する(ステップS324)。 Next, the electronic computer functions as a second specifying unit, and specifies the highest order coefficient T dmaxq ) of T (φ q , χ) specified in step S323 (step S324).

次いで、電子計算機は、第3の特定手段として機能し、ステップS324で特定した最高次数係数Tdmaxq)を用い、
V(φq)|m(φq),gcd(Tdmaxq),V(φq))=1
を満たすV(φq)を特定する(ステップS325)。ステップS325では、電子計算機は、具体的に以下のアルゴリズムを実行している。
(1)W(φq)←gcd(Tdmaxq),m(φq))
(2)V(φq)←W(φq)
Next, the electronic computer functions as third specifying means, and uses the highest order coefficient T dmaxq ) specified in step S324,
V (φ q ) | m (φ q ), gcd (T dmaxq ), V (φ q )) = 1
V (φ q ) that satisfies the condition is specified (step S325). In step S325, the electronic computer specifically executes the following algorithm.
(1) W (φ q ) ← gcd (T dmaxq ), m (φ q ))
(2) V (φ q ) ← W (φ q )

次いで、電子計算機は、第4の特定手段として機能し、ステップS325で特定したV(φq)を用い、
g(φq)V(φq)≡v(mod m(φq))
を満たすスカラーv及びg(φq)を、拡張ユークリッドの互除法によって特定する(ステップS326)。この拡張ユークリッドの互除法は、一般的なライブラリにおいて準備されている既知のプログラムに基づいて実行されるものであり、特に、g(φq)の係数及びスカラーvが小さくなるようにしておくことが望ましい。
Next, the electronic computer functions as a fourth specifying unit, and uses V (φ q ) specified in step S325,
g (φ q ) V (φ q ) ≡v (mod m (φ q ))
Scalars v and g (φ q ) satisfying the above are specified by the extended Euclidean algorithm (step S326). This extended Euclidean algorithm is executed based on a known program prepared in a general library, and in particular, the coefficient of g (φ q ) and the scalar v should be made small. Is desirable.

次いで、電子計算機は、ステップS326で特定したg(φq)を用い、 Next, the electronic computer uses g (φ q ) specified in step S326,


の演算を行って多項式h(φq,χ)を特定し(ステップS327)、多項式h(φq,χ)及びvχdmax−h(0,χ)を出力している(ステップS328)。このようにして、電子計算機では、補助プログラムを用いて多項式h(φq,χ)及びvχdmax−h(0,χ)を求めることができる。この場合、電子計算機は、ステップS327において演算手段として機能し、ステップS328において出力手段として機能する。

The polynomial h (φ q , χ) is specified by performing the above operation (step S327), and the polynomial h (φ q , χ) and vχ dmax −h (0, χ) are output (step S328). In this way, in the electronic computer, the polynomial h (φ q , χ) and vχ dmax −h (0, χ) can be obtained using the auxiliary program. In this case, the electronic computer functions as a calculation unit in step S327 and functions as an output unit in step S328.

以下において、べき乗算の演算プログラムについて説明する。まず、t−1進展開によるべき乗算Anについて説明する。 Hereinafter, an arithmetic program for power multiplication will be described. First, a description will be given multiplier A n should by t-1 binary expansion.

べき乗算の演算プログラムを実行させて電子計算機をべき乗算として機能させる際に、図7に示すように、はじめに、べき数nと、位数qとFq kの素数位数rとの差分sと、元A∈H⊂Fq kが入力される(ステップS401)。この場合、電子計算機は、入力手段として機能する。 When an arithmetic program for power multiplication is executed to cause the electronic computer to function as power multiplication, first, as shown in FIG. 7, the difference s between the power n and the prime order r of the order q and F q k Then, the element AεH⊂F q k is input (step S401). In this case, the electronic computer functions as input means.

次いで、電子計算機は、初期化手段として機能し、演算結果を格納するレジスタZを初期化(Z←1)する(ステップS402)。そして、第1の演算手段として機能し、X^{Y}はXを表すものとして、入力された元Aに対して、A^{2j}をあらかじめ演算しておく(ステップS403)。 Next, the electronic computer functions as initialization means, and initializes the register Z for storing the calculation result (Z ← 1) (step S402). Then, it functions as a first calculation means, and X ^ {Y} represents XY , and A ^ {2 j } is calculated in advance for the input element A (step S403).

ステップS403では、T[j]=A^{2j}として、電子計算機は、以下のアルゴリズムを実行している。
(1)for(j=0;J<「log2s」;j++)
(2) T[j]←A
(3) A←A*A
(4)End for
In step S403, T [j] = A ^ {2 j }, and the electronic computer executes the following algorithm.
(1) for (j = 0; J <"log 2 s"; j ++)
(2) T [j] ← A
(3) A ← A * A
(4) End for

次いで、電子計算機は、展開手段として機能し、べき数nを、差分sにより   Next, the electronic computer functions as a developing means, and the power number n is calculated by the difference s.


とs進展開する(ステップS404)。ここで、iの大きさは、nの大きさによって決定するものである。

And s-advance expansion (step S404). Here, the size of i is determined by the size of n.

ステップS404では、s進展開の演算として、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「logsn」;i++)
(2) c[i]←n%s
(3) n←(n-c[i])/s
(4)End for
ここで、「%」は、剰余をとっていることを表している。
In step S404, the electronic computer executes the following algorithm as an arithmetic operation for s-adic expansion.
(1) for (i = 0; i <“log s n”; i ++)
(2) c [i] ← n% s
(3) n ← (nc [i]) / s
(4) End for
Here, “%” indicates that the remainder is taken.

次いで、本実施形態では、電子計算機は、第2の演算手段として機能し、A[i]=Ac[i]の演算を行う(ステップS405)。 Next, in the present embodiment, the electronic computer functions as a second calculation unit, and calculates A [i] = A c [i] (step S405).

ステップS405では、バイナリ法を用いており、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「logsn」;i++)
(2) A[i]←1
(3) for(j=0;c[i]!=0;i++)
(4) if(c[i]&1)
(5) A[i]←A[i]*T[j]
(6) End if
(7) c[i]←c[i]/2
(8) End for
(9)End for
In step S405, the binary method is used, and the electronic computer executes the following algorithm.
(1) for (i = 0; i <“log s n”; i ++)
(2) A [i] ← 1
(3) for (j = 0; c [i]! = 0; i ++)
(4) if (c [i] & 1)
(5) A [i] ← A [i] * T [j]
(6) End if
(7) c [i] ← c [i] / 2
(8) End for
(9) End for

次いで、電子計算機は、合成手段として機能し、ステップS405で演算したA[i]を用いて、べき乗算Anを、 Next, the electronic computer functions as a synthesis unit, and uses A [i] calculated in step S405 to calculate power multiplication An .


によって合成する(ステップS406)。

(Step S406).

ステップS406では、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「logsn」;i++)
(2) Z←Z*φq i(A[i])
(3)End for
In step S406, the electronic computer executes the following algorithm.
(1) for (i = 0; i <“log s n”; i ++)
(2) Z ← Z * φ q i (A [i])
(3) End for

そして、電子計算機は、出力手段として機能し、べき乗算の演算プログラムの実行結果として、Zを出力し(ステップS407)、べき乗算の演算プログラムを終了している。   The electronic computer functions as output means, outputs Z as the execution result of the power multiplication operation program (step S407), and ends the power multiplication operation program.

また、位数q、素数位数r、差分sが、整数変数χを用いてそれぞれq(χ)、r(χ)、s(χ)で与えられている場合には、r(χ)をs(χ)進展開することにより
A^{r(χ)}=ΠA^{Di(χ)s(χ)i}=A^{ΣDi(χ)qi}
として表されるDi(χ)のうちでもっとも次数の高いものをDdmax(χ)とし、
(A^{Ddmax(χ)})^{qdmax}=A^{Σi≠dmax−Di(χ)qi}=A^{f(q,χ)}
となる多項式f(φq,χ)を用い、φq k(A)=Aに基づいて、
A^{Ddmax(χ)}=A^{Σi≠dmax−Di(χ)qi−qdmax}=A^{h(q,χ)}
となる多項式h(φq,χ)と、Ddmax(χ)を用いることにより、スカラー倍算nQをより高速化することができる。
In addition, when the order q, the prime order r, and the difference s are respectively given by q (χ), r (χ), and s (χ) using the integer variable χ, r (χ) is By expanding s (χ), A ^ {r (χ)} = ΠA ^ {D i (χ) s (χ) i } = A ^ {ΣD i (χ) q i }
D dmax (χ) is the highest order among D i (χ) expressed as
(A ^ {D dmax (χ)}) ^ {q dmax } = A ^ {Σ i ≠ dmax −D i (χ) q i } = A ^ {f (q, χ)}
Based on φ q k (A) = A, using a polynomial f (φ q , χ)
A ^ {D dmax (χ)} = A ^ { Σi ≠ dmax −D i (χ) q i −q dmax } = A ^ {h (q, χ)}
The scalar multiplication nQ can be further speeded up by using the polynomial h (φ q , χ) and D dmax (χ).

すなわち、Ddmax(χ)及び多項式h(φq,χ)が特定されている場合には、χ=aとしてべき数nをDdmax(a)進展開して、Ddmax(a)に換えてh(φq,a)を用いることにより、演算回数を削減している。 That is, when D dmax (χ) and the polynomial h (φ q , χ) are specified, a power number n is expanded in D dmax (a) with χ = a and replaced with D dmax (a). By using h (φ q , a), the number of calculations is reduced.

dmax(χ)及び多項式h(φq,χ)が特定されている場合のべき乗算nQでは、べき乗算の演算プログラムを実行させて電子計算機をべき乗算機として機能させる際に、図8に示すように、はじめに、べき数nと、χ=aとしてs=Ddmax(a)及びh'(q)=h(q,a)と、元A∈H⊂Fq kが入力される(ステップS501)。この場合、電子計算機は、入力手段として機能する。 In the case of exponentiation nQ when D dmax (χ) and the polynomial h (φ q , χ) are specified, when an arithmetic program for exponentiation is executed and the electronic computer functions as an exponential multiplier, FIG. As shown, first, a power number n, χ = a, s = D dmax (a) and h ′ (q) = h (q, a), and an element A∈H⊂F q k are input ( Step S501). In this case, the electronic computer functions as input means.

次いで、電子計算機は、初期化手段として機能し、演算結果を格納するレジスタZを初期化(Z←1)する(ステップS502)。そして、第1の演算機能として、入力されたAに対して、A^{2j}をあらかじめ演算しておく(ステップS503)。ステップS503の演算はステップS403の演算とアルゴリズムは同じであるので、説明は省略する。 Next, the electronic computer functions as initialization means, and initializes the register Z for storing the operation result (Z ← 1) (step S502). Then, as a first calculation function, A ^ {2 j } is calculated in advance for the inputted A (step S503). Since the calculation in step S503 is the same as the calculation in step S403, the description thereof is omitted.

次いで、電子計算機は、第1の展開手段として機能し、べき数nを、   Next, the electronic computer functions as the first expansion means, and calculates the power number n,


とs進展開する(ステップS504)。ステップS504でのs進展開は、ステップS404でのs進展開とアルゴリズムは同じであるので、説明は省略する。

And s-advance expansion (step S504). Since the algorithm for the s-adic expansion in step S504 is the same as that for the s-adic expansion in step S404, description thereof is omitted.

次いで、電子計算機は、第2の展開手段として機能し、べき数nを、h'(q)及びc[i]を用いながら、   Next, the electronic computer functions as a second expansion means, and uses the power n as h ′ (q) and c [i],


とq進展開する(ステップS505)。

And q-advance expansion (step S505).

ステップS505では、q進展開の演算として、電子計算機は、以下のアルゴリズムを実行している。
(1)T(q)←1
(2)for(i=0;i<「logsn」;i++)
(3) d[i]←c[i]
(4) if(d[i]≧s)
(5) for(j=0;j<「logsd[i]」;j++)
(6) e[j]←d[i]%s
(7) d[i]←(d[i]-e[j])%s
(8) End for
(9) U(q)←1
(10) for(j=0;j<「logsd[i]」;j++)
(11) U(q)←{U(q)*e[j]*h'(q)j}%(qk-1)
(12) End for
(13) T(q)←{T(q)+U(q)*h'(q)i}%(qk-1)
(14) End if
(15) else
(16) T(q)←{T(q)+d[i]*h'(q)i}%(qk-1)
(17) End else
(18)End for
In step S505, the electronic computer executes the following algorithm as an operation of q-adic expansion.
(1) T (q) ← 1
(2) for (i = 0; i <“log s n”; i ++)
(3) d [i] ← c [i]
(4) if (d [i] ≧ s)
(5) for (j = 0; j <"log s d [i]"; j ++)
(6) e [j] ← d [i]% s
(7) d [i] ← (d [i] -e [j])% s
(8) End for
(9) U (q) ← 1
(10) for (j = 0; j <"log s d [i]"; j ++)
(11) U (q) ← {U (q) * e [j] * h '(q) j }% (q k -1)
(12) End for
(13) T (q) ← {T (q) + U (q) * h '(q) i }% (q k -1)
(14) End if
(15) else
(16) T (q) ← {T (q) + d [i] * h '(q) i }% (q k -1)
(17) End else
(18) End for

なお、べき数nをq進展開した場合に、q進展開の係数がsよりも大きくなることがある。このように、q進展開の係数がsよりも大きい場合(ステップS506:NO)には、q進展開の係数に対してsの剰余をとることにより、q進展開の係数がsよりも小さくなるように調整している(ステップS507)。この場合、電子計算機は、ステップS506において比較手段として機能し、ステップS507において調整手段として機能する。   When the exponent n is expanded in q-adic, the coefficient for q-adic expansion may be larger than s. Thus, when the coefficient of q-adic expansion is larger than s (step S506: NO), the coefficient of q-adic expansion is smaller than s by taking the remainder of s with respect to the coefficient of q-adic expansion. It adjusts so that it may become (Step S507). In this case, the electronic computer functions as a comparison unit in step S506 and functions as an adjustment unit in step S507.

ステップS507では、電子計算機は、以下のアルゴリズムを実行している。
(1)until(d[i]<s)
(2) for(i=0;i<k-1;i++)
(3) d[i]←the i-th coefficient of T(q)
(4) if(d[i]≧s)
(5) the i-th coefficient of T(q)←0
(6) for(j=0;j<「logsd[i]」;j++)
(7) e[j]←d[i]%s
(8) d[i]←(d[i]-e[j])%s
(9) End for
(10) U(q)←1
(11) for(j=0;j<「logsd[i]」;j++)
(12) U(q)←{U(q)*e[j]*h'(q)j}%(qk-1)
(13) End for
(14) T(q)←{T(q)+U(q)*qi}%(qk-1)
(15) End if
(16) End for
(17)End until
In step S507, the electronic computer executes the following algorithm.
(1) until ( d [i] <s)
(2) for (i = 0; i <k-1; i ++)
(3) d [i] ← the i-th coefficient of T (q)
(4) if (d [i] ≧ s)
(5) the i-th coefficient of T (q) ← 0
(6) for (j = 0; j <"log s d [i]"; j ++)
(7) e [j] ← d [i]% s
(8) d [i] ← (d [i] -e [j])% s
(9) End for
(10) U (q) ← 1
(11) for (j = 0; j <"log s d [i]"; j ++)
(12) U (q) ← {U (q) * e [j] * h '(q) j }% (q k -1)
(13) End for
(14) T (q) ← {T (q) + U (q) * q i }% (q k -1)
(15) End if
(16) End for
(17) End until

次いで、電子計算機は、第2の演算手段として機能し、A[i]=Ad[i]の演算を行う(ステップS508)。 Next, the electronic calculator functions as a second calculation means, and calculates A [i] = Ad [i] (step S508).

ステップS508でも、バイナリ法を用いており、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<k;i++)
(2) A[i]←O
(3) for(j=0;d[i]!=0;i++)
(4) if(d[i]&1)
(5) A[i]←A[i]*T[j]
(6) End if
(7) d[i]←d[i]/2
(8) End for
(9)End for
Even in step S508, the binary method is used, and the electronic computer executes the following algorithm.
(1) for (i = 0; i <k; i ++)
(2) A [i] ← O
(3) for (j = 0; d [i]! = 0; i ++)
(4) if (d [i] & 1)
(5) A [i] ← A [i] * T [j]
(6) End if
(7) d [i] ← d [i] / 2
(8) End for
(9) End for

次いで、電子計算機は、合成手段として機能し、ステップS508で演算したA[i]を用いて、べき乗算Aを、 Next, the electronic computer functions as a synthesis unit, and uses A [i] calculated in step S508 to calculate the power multiplication An .


によって合成する(ステップS509)。

(Step S509).

ステップS509では、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<k;i++)
(2) Z←Z*φq i(A[i])
(3)End for
In step S509, the electronic computer executes the following algorithm.
(1) for (i = 0; i <k; i ++)
(2) Z ← Z * φ q i (A [i])
(3) End for

そして、電子計算機は、出力手段として機能し、べき乗算の演算プログラムの実行結果として、Zを出力し(ステップS510)、べき乗算の演算プログラムを終了している。   The electronic computer functions as output means, outputs Z as the execution result of the power multiplication operation program (step S510), and ends the power multiplication operation program.

dmax(χ)及び多項式h(q,χ)は、q(χ)、r(χ)及びs(χ)があらかじめ与えられていることから、あらかじめ特定でき、q(χ)、r(χ)及びs(χ)とともに、Ddmax(χ)と多項式h(q,χ)をべき乗算の演算プログラムに組み込んでもよいし、r(χ)及びs(χ)を用いて以下の補助プログラムによって、Ddmax(χ)と多項式h(q,χ)を求めてもよい。 D dmax (χ) and the polynomial h (q, χ) can be specified in advance because q (χ), r (χ) and s (χ) are given in advance, and q (χ), r (χ ) And s (χ), D dmax (χ) and the polynomial h (q, χ) may be incorporated into an arithmetic program for power multiplication, or by using the following auxiliary program using r (χ) and s (χ) , D dmax (χ) and the polynomial h (q, χ) may be obtained.

電子計算機は、補助プログラムを起動させると、図9に示すように、はじめに、入力手段として機能し、r(χ)とs(χ)が入力される(ステップS521)。   When the computer starts the auxiliary program, as shown in FIG. 9, it first functions as input means, and r (χ) and s (χ) are input (step S521).

次いで、電子計算機は、展開手段として機能し、入力されたs(χ)を用いて、r(χ)を、   Next, the electronic computer functions as expansion means, and using the input s (χ), r (χ) is


とs(χ)進展開する(ステップS522)。ここで、iの大きさは、r(χ)及びs(χ)から自動的に決定される。ステップS522では、s(χ)進展開の演算として、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「degr(χ)/degs(χ)」;i++)
(2) Di(χ)←r(χ)%s(χ)
(3) r(χ)←(r(χ)-Di(χ))/s(χ)
(4)End for

And s (χ) advance development (step S522). Here, the magnitude of i is automatically determined from r (χ) and s (χ). In step S522, the electronic computer executes the following algorithm as a calculation of s (χ) -adic expansion.
(1) for (i = 0; i <"degr (χ) / degs (χ)"; i ++)
(2) D i (χ) ← r (χ)% s (χ)
(3) r (χ) ← (r (χ) -D i (χ)) / s (χ)
(4) End for

次いで、電子計算機は、抽出手段として機能し、deg(Di(χ))が最大のものを抽出して、Ddmax(χ)として出力する(ステップS523)。 Next, the electronic computer functions as an extraction unit, extracts the one having the maximum deg (D i (χ)), and outputs it as D dmax (χ) (step S523).

次いで、電子計算機は、演算手段として機能し、   Next, the electronic computer functions as a computing means,


の演算を行って多項式h(q,χ)を特定し、出力している(ステップS524)。このようにして、電子計算機では、補助プログラムを用いてDdmax(χ)及び多項式h(q,χ)を求めることができる。

The polynomial h (q, χ) is identified and output by performing the above calculation (step S524). In this way, the electronic computer can determine D dmax (χ) and the polynomial h (q, χ) using the auxiliary program.

また、位数q、素数位数r及び差分sが、整数変数χを用いてそれぞれq(χ)、r(χ)及びs(χ)とあらかじめ特定されているとともに、r(χ)をs(χ)進展開することにより
A^{r(χ)}=ΠA^{Di(χ)s(χ)i}=A^{ΣDi(χ)qi}
として表されるDi(χ)において最高次数dmaxとなるDi(χ)が複数存在する場合には、最高次数dmaxの項であるχdmaxの係数をTdmax(q)として、r(χ)|m(χ)を満たす最小次数の多項式m(χ)を用いて
V(q)|m(q),gcd(Tdmax(q),V(q))=1
を満たすV(q)を特定し、
g(q)V(q)≡v(mod m(q))
を満たす整数のスカラーv及びg(q)を拡張ユークリッドの互除法により特定し、
A^{Tdmax(q)χdmax}=A^{ΣDi(χ)qi−Tdmax(q)χdmax}
=A^{f(q,χ)}
となる多項式f(q,χ)と、g(q)を用い、φq k(A)=Aに基づいて、
A^{vχdmax}=A^{g(q)f(q,χ)}=A^{h(q,χ)}
となる多項式h(q,χ)を特定し、このh(q,χ)のqに関する定数項h(0,χ)が、
A^{vχdmax−h(0,χ)}=A^{h(q,χ)−h(0,χ)}
を満たすことを用いることにより、べき乗算Aをより高速化することができる。
Further, the order q, the prime order r, and the difference s are specified in advance as q (χ), r (χ), and s (χ), respectively, using an integer variable χ, and r (χ) is expressed as s By expanding (χ), A ^ {r (χ)} = ΠA ^ {D i (χ) s (χ) i } = A ^ {ΣD i (χ) q i }
In the case where there are a plurality of D i (χ) having the highest order dmax in D i (χ) expressed as follows, the coefficient of χ dmax that is a term of the highest order dmax is defined as T dmax (q), and r (χ ) | M (χ) using the minimum degree polynomial m (χ) satisfying V (q) | m (q), gcd (T dmax (q), V (q)) = 1
V (q) that satisfies
g (q) V (q) ≡v (mod m (q))
Specify integer scalars v and g (q) satisfying the above by the extended Euclidean algorithm,
A ^ {T dmax (q) χ dmax } = A ^ {ΣD i (χ) q i −T dmax (q) χ dmax }
= A ^ {f (q, χ)}
Based on φ q k (A) = A using the polynomial f (q, χ) and g (q)
A ^ {vχ dmax } = A ^ {g (q) f (q, χ)} = A ^ {h (q, χ)}
And a constant term h (0, χ) with respect to q of h (q, χ)
A ^ {vχ dmax −h (0, χ)} = A ^ {h (q, χ) −h (0, χ)}
Can be faster the multiplication A n by, it should be used to meet.

すなわち、χ=aとして、s'=vadmax−h(0,a)及びh'(q)=h(q,a)−h(0,a)とし、べき数nをDdmax(a)進展開する換わりにvadmax−h(0,a)進展開して、vadmax−h(0,a)の換わりにh(q,a)−h(0,a)を用いることにより、演算回数を削減している。 That is, χ = a, s ′ = va dmax −h (0, a) and h ′ (q) = h (q, a) −h (0, a), and the power n is D dmax (a) An arithmetic operation is performed by using va dmax -h (0, a) instead of var- expanding and using h (q, a) -h (0, a) instead of va dmax- h (0, a). The number of times has been reduced.

s'=vadmax−h(0,a)及びh'(q)=h(q,a)−h(0,a)が特定されている場合のべき乗算Aでは、べき乗算の演算プログラムを実行させて電子計算機をべき乗算機として機能させる際に、図10に示すように、はじめに、べき数nと、χ=aとしてスカラーs'=vadmax−h(0,a)及びh'(q)=h(q,a)−h(0,a)と、元A∈H⊂Fq kが入力される(ステップS601)。この場合、電子計算機は、入力手段として機能する。 s '= va dmax -h (0 , a) and h' (q) = h ( q, a) -h (0, a) the exponentiation A n when is specified, should multiply operation program As shown in FIG. 10, first, a power n and a scalar s ′ = va dmax −h (0, a) and h ′ are set as χ = a, as shown in FIG. (q) = h (q, a) −h (0, a) and the element A∈H⊂F q k are input (step S601). In this case, the electronic computer functions as input means.

次いで、電子計算機は、初期化手段として機能し、演算結果を格納するレジスタZを初期化(Z←1)する(ステップS602)。そして、第1の演算手段として機能し、入力された元Aに対して、A^{2j}をあらかじめ演算しておく(ステップS603)。ステップS603の演算はステップS403の演算とアルゴリズムは同じであるので、説明は省略する。 Next, the electronic computer functions as initialization means, and initializes the register Z for storing the calculation result (Z ← 1) (step S602). Then, it functions as a first calculation means, and A ^ {2 j } is calculated in advance for the input element A (step S603). Since the calculation in step S603 is the same as the algorithm in step S403, the description is omitted.

次いで、電子計算機は、第1の展開手段として機能し、スカラーnを、   Next, the electronic computer functions as the first expansion means, and the scalar n is


とs'進展開する(ステップS604)。ステップS604でのs'進展開は、ステップS404でのs進展開とアルゴリズムは同じであるので、説明は省略する。

And s' advance (step S604). Since the algorithm for the s'-adic expansion at step S604 is the same as that of the s-adic expansion at step S404, description thereof is omitted.

次いで、電子計算機は、第2の展開手段として機能し、べき数nを、h'(q)及びc[i]を用いながら、   Next, the electronic computer functions as a second expansion means, and uses the power n as h ′ (q) and c [i],


とq進展開する(ステップS605)。ステップS605でのq進展開は、スカラーs'(=vadmax−h(0,a))が、ステップS505でのスカラーs(=Ddmax(a))とは異なる点以外では、ステップS505でのs進展開とアルゴリズムは同じであるため、詳細な説明は省略する。

And q-advance expansion (step S605). The q-adic expansion in step S605 is performed in step S505 except that the scalar s ′ (= va dmax −h (0, a)) is different from the scalar s (= D dmax (a)) in step S505. Since the s-adic expansion and the algorithm are the same, detailed description is omitted.

ステップS605でのq進展開でも、q進展開の係数がs'よりも大きくなることがある。このように、q進展開の係数がs'よりも大きい場合(ステップS606:NO)には、q進展開の係数に対してs'の剰余をとることにより、q進展開の係数がs'よりも小さくなるように調整している(ステップS607)。このステップS607での演算も、スカラーs'(=vadmax−h(0,a))が、ステップS507でのスカラーs(=Ddmax(a))とは異なる点以外では、ステップS507での演算とアルゴリズムは同じであるため、詳細な説明は省略する。ここで、電子計算機は、ステップS606において比較手段と
して機能し、ステップS607において調整手段として機能する。
Even in the q-adic expansion in step S605, the q-adic expansion coefficient may be larger than s ′. Thus, when the coefficient of q-adic expansion is larger than s ′ (step S606: NO), the coefficient of q-adic expansion is s ′ by taking a remainder of s ′ with respect to the coefficient of q-adic expansion. It adjusts so that it may become smaller than (step S607). The calculation in step S607 is the same as that in step S507 except that the scalar s ′ (= va dmax −h (0, a)) is different from the scalar s (= D dmax (a)) in step S507. Since the calculation and the algorithm are the same, detailed description is omitted. Here, the electronic computer functions as a comparison unit in step S606 and functions as an adjustment unit in step S607.

次いで、電子計算機は、第2の演算手段として機能し、A[i]=Ad[i]の演算を行う(ステップS608)。ステップS608でも、バイナリ法を用いており、ステップS608の演算もステップS508の演算とアルゴリズムは同じであるので、説明は省略する。 Next, the electronic calculator functions as a second calculation means, and calculates A [i] = Ad [i] (step S608). Even in step S608, the binary method is used, and the calculation in step S608 is the same as the calculation in step S508, and thus the description thereof is omitted.

次いで、電子計算機は、合成手段として機能し、ステップS608で演算したA[i]を用いて、べき乗算Aを、 Next, the electronic computer functions as a synthesis unit, and uses A [i] calculated in step S608 to calculate the power multiplication An .


によって合成する(ステップS609)。ステップS609の演算もステップS509の演算とアルゴリズムは同じであるので、説明は省略する。

(Step S609). Since the calculation of step S609 is the same as the calculation of step S509, the description thereof is omitted.

そして、電子計算機は、出力手段として機能し、べき乗算の演算プログラムの実行結果として、Zを出力し(ステップS610)、べき乗算の演算プログラムを終了している。   The electronic computer functions as output means, outputs Z as the execution result of the power multiplication operation program (step S610), and ends the power multiplication operation program.

多項式h(q,χ)及びvχdmax−h(0,χ)は、位数q(χ)、素数位数r(χ)及び差分s(χ)があらかじめ与えられていることから、あらかじめ特定できるので、q(χ)、r(χ)及びs(χ)とともに、多項式h(q,χ)及びvχdmax−h(0,χ)をべき乗算の演算プログラムに組み込んでもよいし、r(χ)及びs(χ)を用いて以下の補助プログラムによって、多項式h(q,χ)及びvχdmax−h(0,χ)を求めてもよい。 The polynomials h (q, χ) and vχ dmax −h (0, χ) are specified in advance because the order q (χ), the prime order r (χ), and the difference s (χ) are given in advance. Therefore, the polynomials h (q, χ) and vχ dmax −h (0, χ) together with q (χ), r (χ) and s (χ) may be incorporated into an arithmetic program for power multiplication, or r ( The polynomials h (q, χ) and vχ dmax −h (0, χ) may be obtained by the following auxiliary program using χ) and s (χ).

電子計算機は、補助プログラムを起動させると、図11に示すように、はじめに、入力手段として機能し、r(χ)、s(χ)及びm(χ)が入力される(ステップS621)。ここで、m(χ)はr(χ)|m(χ)を満たす最小次数の多項式であり、一般的には円周等分多項式が用いられる。   When the computer starts the auxiliary program, as shown in FIG. 11, it first functions as an input means, and r (χ), s (χ), and m (χ) are inputted (step S621). Here, m (χ) is a polynomial of the minimum order that satisfies r (χ) | m (χ), and generally a circumferential equality polynomial is used.

次いで、電子計算機は、展開手段として機能し、入力されたs(χ)を用いて、r(χ)を、   Next, the electronic computer functions as expansion means, and using the input s (χ), r (χ) is


とs(χ)進展開する(ステップS622)。ここで、iの大きさは、r(χ)及びs(χ)から自動的に決定される。ステップS622では、s(χ)進展開の演算として、電子計算機は、以下のアルゴリズムを実行している。
(1)for(i=0;i<「degr(χ)/degs(χ)」;i++)
(2) Di(χ)←r(χ)%s(χ)
(3) r(χ)←(r(χ)-Di(χ))/s(χ)
(4)End for

And s (χ) advance development (step S622). Here, the magnitude of i is automatically determined from r (χ) and s (χ). In step S622, the electronic computer executes the following algorithm as the calculation of s (χ) -adic expansion.
(1) for (i = 0; i <"degr (χ) / degs (χ)"; i ++)
(2) D i (χ) ← r (χ)% s (χ)
(3) r (χ) ← (r (χ) -D i (χ)) / s (χ)
(4) End for

次いで、電子計算機は、第1の特定手段として機能し、deg(Di(χ))の最大の次数dmaxの項であるχdmaxの係数を抽出して、抽出された係数の和をT(q,χ)とし、それ以外の和をU(q,χ)とする(ステップS623)。ステップS623では、電子計算機は、具体的に以下のアルゴリズムを実行している。
(1)for(i=0;i<「degr(χ)/degs(χ)」;i++)
(2) T(q,χ)←0,U(q,χ)←0
(3) if(deg(Di(χ))=dmax)
(4) T(q,χ)←T(q,χ)+Di(χ)qi
(5) End if
(6) else
(7) U(q,χ)←U(q,χ)+Di(χ)qi
(8) End else
(9)End for
Next, the electronic computer functions as a first specifying means, extracts a coefficient of χ dmax that is a term of the maximum degree dmax of deg (D i (χ)), and calculates the sum of the extracted coefficients as T ( q, χ), and the other sum is U (q, χ) (step S623). In step S623, the electronic computer specifically executes the following algorithm.
(1) for (i = 0; i <"degr (χ) / degs (χ)"; i ++)
(2) T (q, χ) ← 0, U (q, χ) ← 0
(3) if (deg (D i (χ)) = dmax)
(4) T (q, χ) ← T (q, χ) + D i (χ) q i
(5) End if
(6) else
(7) U (q, χ) ← U (q, χ) + D i (χ) q i
(8) End else
(9) End for

次いで、電子計算機は、第2の特定手段として機能し、ステップS623で特定したT(q,χ)の最高次数係数Tdmax(q)を特定する(ステップS624)。 Next, the electronic computer functions as a second specifying unit, and specifies the highest order coefficient T dmax (q) of T (q, χ) specified in step S623 (step S624).

次いで、電子計算機は、第3の特定手段として機能し、ステップS624で特定した最高次数係数Tdmax(q)を用い、
V(q)|m(q),gcd(Tdmax(q),V(q))=1
を満たすV(q)を特定する(ステップS625)。ステップS625では、電子計算機は、具体的に以下のアルゴリズムを実行している。
(1)W(q)←gcd(Tdmax(q),m(q))
(2)V(q)←W(q)
Next, the electronic computer functions as a third specifying unit, and uses the highest order coefficient T dmax (q) specified in step S624,
V (q) | m (q), gcd (T dmax (q), V (q)) = 1
V (q) that satisfies the condition is specified (step S625). In step S625, the electronic computer specifically executes the following algorithm.
(1) W (q) ← gcd (T dmax (q), m (q))
(2) V (q) ← W (q)

次いで、電子計算機は、第4の特定手段として機能し、ステップS625で特定したV(q)を用い、
g(q)V(q)≡v(mod m(q))
を満たすスカラーv及びg(q)を、拡張ユークリッドの互除法によって特定する(ステップS626)。この拡張ユークリッドの互除法は、一般的なライブラリにおいて準備されている既知のプログラムに基づいて実行されるものであり、特に、g(q)の係数及びスカラーvが小さくなるようにしておくことが望ましい。
Next, the electronic computer functions as a fourth specifying unit, and uses V (q) specified in step S625,
g (q) V (q) ≡v (mod m (q))
The scalars v and g (q) satisfying the above are specified by the extended Euclidean mutual division method (step S626). This extended Euclidean algorithm is executed based on a known program prepared in a general library. In particular, the coefficient of g (q) and the scalar v should be made small. desirable.

次いで、電子計算機は、ステップS626で特定したg(q)を用い、   Next, the electronic computer uses g (q) specified in step S626,


の演算を行って多項式h(q,χ)を特定し(ステップS627)、多項式h(q,χ)及びvχdmax−h(0,χ)を出力している(ステップS628)。このようにして、電子計算機では、補助プログラムを用いて多項式h(q,χ)及びvχdmax−h(0,χ)を求めることができる。この場合、電子計算機は、ステップS627において演算手段として機能し、ステップS628において出力手段として機能する。

The polynomial h (q, χ) is specified by performing the above operation (step S627), and the polynomial h (q, χ) and vχ dmax −h (0, χ) are output (step S628). In this way, the electronic computer can obtain the polynomial h (q, χ) and vχ dmax −h (0, χ) using the auxiliary program. In this case, the electronic computer functions as a calculation unit in step S627 and functions as an output unit in step S628.

10 電子計算機
11 CPU
12 記憶装置
13 メモリ装置
14 バス
15 入出力制御部
20 電気通信回線
30 クライアント装置
10 Electronic calculator
11 CPU
12 Storage device
13 Memory device
14 Bus
15 I / O controller
20 Telecommunications line
30 client devices

Claims (6)

楕円曲線をE/Fq=x3+ax+b−y2=0,a∈Fq,b∈Fqとし、
E(Fq)を有限体Fqで定義される楕円曲線の有理点が成す加法群、
E(Fq k)を有限体Fqの拡大体Fq kで定義される楕円曲線の有理点が成す加法群、
φqを有限体Fqに関する有理点のフロベニウス自己準同型写像、
tをフロベニウス自己準同型写像φqのトレース、
rをE(Fq)の位数#E(Fq)=q+1−tを割り切る素数位数、
E[r]を位数が素数rである有理点の集合、
[j]を有理点をj倍する写像、
Gを
G=E[r]∩Ker(φq−[q])
を満たすE(Fq k)に含まれる有理点の集合として、
非負整数nに対するGの有理点Qのスカラーn倍算を、記憶手段を備えた電子計算機により演算するスカラー倍算の演算装置において、
前記非負整数nの値、前記トレースtの値、及び、Q∈G⊂E(Fq k)により表される有理点Qの値を前記記憶手段に入力して記憶させる入力手段と、
演算結果Zを記憶する前記記憶手段を初期化する初期化手段と、
Gの有理点Qに対し、
φq(Q)=[q]Q=[t−1]Q
が成り立つことにより、
s=t−1として、前記nをs進展開した次式に基づいて、

c[i]←n%s及びn←(n-c[i])/sにより表される代入演算をi=0から所定回繰り返し行って各係数c[i]及び非負整数nの値を前記記憶手段に記憶する展開手段と、
前記記憶手段から前記有理点Q及び前記係数c[i]を読み出して、Q[i]=c[i]Qにより表される演算をi=0から所定回繰り返し行って各Q[i]の値を前記記憶手段に記憶する演算手段と、
t-1に換えて有理点に対するフロベニウス自己準同型写像φqを用いて表される次式のスカラー倍算nQに基づいて、

前記記憶手段からQ[i]及び演算結果Zを読み出し、Z←Z+φq i(Q[i])により表される代入演算をi=0から所定回繰り返し行ってスカラー倍算の演算結果Zを前記記憶手段に記憶する合成手段と、
を有することを特徴とするスカラー倍算の演算装置。
The elliptic curve E / F q = x 3 + ax + b-y 2 = 0, and a∈F q, and b∈F q,
An additive group formed by rational points of an elliptic curve defined by a finite field F q for E (F q ),
E (F q k ) is an additive group formed by a rational point of an elliptic curve defined by the extension field F q k of the finite field F q ,
Frobenius endomorphism of rational point φ q on the finite field F q,
trace t of Frobenius self-homogeneous map φ q ,
r is the order of E (F q ) #E (F q ) = the prime order that divides q + 1−t,
E [r] is a set of rational points whose order is a prime number r,
a map that j times the rational point [j],
G is G = E [r] ∩Ker (φ q − [q])
As a set of rational points included in E (F q k ) that satisfies
In an arithmetic unit for scalar multiplication in which a scalar n multiplication of a rational point Q of G for a non-negative integer n is computed by an electronic computer equipped with storage means,
Input means for inputting and storing the value of the non-negative integer n, the value of the trace t, and the value of the rational point Q represented by QεG⊂E (F q k ) in the storage means;
Initialization means for initializing the storage means for storing the calculation result Z;
For rational point Q of G,
φ q (Q) = [q] Q = [t−1] Q
By the fact that
As s = t−1, based on the following equation in which n is expanded in s,

Substitution operations represented by c [i] ← n% s and n ← (nc [i]) / s are repeated a predetermined number of times from i = 0, and the values of each coefficient c [i] and non-negative integer n are stored in the memory Expansion means for storing in the means;
The rational point Q and the coefficient c [i] are read from the storage means, and an operation represented by Q [i] = c [i] Q is repeatedly performed a predetermined number of times from i = 0 to obtain each Q [i]. Arithmetic means for storing values in the storage means;
Based on the scalar multiplication nQ of the following equation expressed using the Frobenius automorphism map φ q for the rational point instead of t−1:

From said storage means reads out Q [i] and the computation result Z, Z ← Z + φ q i (Q [i]) by the calculation result of the scalar multiplication by repeating predetermined times assignment operation from i = 0 represented Combining means for storing Z in the storage means;
A scalar multiplication arithmetic device characterized by comprising:
前記楕円曲線の有限体Fqの位数q、#E(Fq)を割り切る素数位数r、フロベニウス自己準同型写像φqのトレースtが、整数変数χを用いてそれぞれq(χ)、r(χ)、t(χ)で与えられている場合に、
前記q(χ)、r(χ)、t(χ)の各値を入力して前記記憶手段に記憶する補助入力手段と、
前記記憶手段からr(χ)及びt(χ)の値を読み出して、前記s(χ)=t(χ)−1として、r(χ)をs(χ)進展開した次式に基づいて、

Di(χ)←r(χ)%s(χ)及びr(χ)←(r(χ)-Di(χ))/s(χ)により表される代入演算をi=0からi<「degr(χ)/degs(χ)」まで繰り返し行って、各係数D(χ)及びr(χ)の値を前記記憶手段に記憶する補助展開手段と、
前記記憶された係数D(χ)のうち、deg(D(χ))が最大のものをDdmax(χ)として抽出し、前記記憶手段に記憶する補助抽出手段と、
前記記憶手段からDdmax(χ)、Di(χ)、Qの値を読み出して、
φq dmax([Ddmax(χ)]Q)=Σφq i([Di(χ)]Q)−φq dmax([Ddmax(χ)]Q)
=[f(φq,χ)]Q
となる多項式f(φq,χ)を用い、φq kQ=Qに基づいて
[Ddmax(χ)]Q=[f(φq,χ)φq -dmax]Q=[h(φq,χ)]Q
となる多項式h(φq,χ)を特定し、前記多項式h(φq,χ)の値を前記記憶手段に記憶する補助特定手段と、
前記s進展開をχ=aとしてs=Ddmax(a)からなるDdmax(a)進展開に置換え、前記Ddmax(a)に換えて前記多項式h(φq,a)を用いる手段と、を有することを特徴とする請求項1に記載のスカラー倍算の演算装置。
The order q of the elliptic curve finite field F q , the prime order r that divides #E (F q ), and the trace t of the Frobenius self-homogeneous map φ q are represented by q (χ), When given by r (χ), t (χ),
Auxiliary input means for inputting the values of q (χ), r (χ), t (χ) and storing them in the storage means;
Based on the following equation, the values of r (χ) and t (χ) are read from the storage means, and s (χ) = t (χ) −1, and r (χ) is s (χ) -expanded. ,

D i (χ) ← r (χ)% s (χ) and r (χ) ← (r (χ) −D i (χ)) / s (χ) <Auxiliary expansion means for repeatedly performing until “degr (χ) / degs (χ)” and storing the values of the coefficients D i (χ) and r (χ) in the storage means;
Auxiliary extraction means for extracting the largest coefficient deg (D i (χ)) among the stored coefficients D i (χ) as D dmax (χ) and storing it in the storage means;
Read the values of D dmax (χ), D i (χ), Q from the storage means,
φ q dmax ([D dmax (χ)] Q) = Σφ q i ([D i (χ)] Q) −φ q dmax ([D dmax (χ)] Q)
= [F (φ q , χ)] Q
Based on φ q k Q = Q, using the polynomial f (φ q , χ)
[D dmax (χ)] Q = [f (φ q , χ) φ q −dmax ] Q = [h (φ q , χ)] Q
An auxiliary specifying means for polynomial h (φ q, χ) identifies and stores the polynomial h (φ q, χ) a value of said storage means becomes,
The s-adic expansion of the replaced chi = a as s = D dmax (a) D dmax (a) adic expansion consisting the D wherein instead of dmax (a) the polynomial h (φ q, a) means for using The arithmetic unit for scalar multiplication according to claim 1, further comprising:
前記係数D(χ)において最高次数dmaxとなる係数D(χ)が複数存在する場合に、
前記補助入力手段は、r(χ)|m(χ)を満たすm(χ)の値を入力して前記記憶手段に記憶する手段を更に含み、
deg(D(χ))の最高次数dmaxの項であるχdmaxの係数をTdmaxq)として、前記記憶手段から係数D(χ)を読み出し、前記記憶手段にT(φq,χ)及びU(φq,χ)を初期値を0として割り当て、deg(Di(χ))=dmaxとなる場合にT(φq,χ)←T(φq,χ)+Di(χ)φq i、その他の場合にU(φq,χ)←U(φq,χ)+Di(χ)φq iにより表される代入演算をi=0からi<「degr(χ)/degs(χ)」まで繰り返し行って、T(φq,χ)及びU(φq,χ)の値を前記記憶手段に記憶し、最高次数係数Tdmaxq)を特定する第2の補助特定手段と、
前記記憶手段からm(χ)及びR(χ)の値を読み出して、r(χ)|m(χ)を満たす最小次数の多項式m(χ)を用いて
V(φq)|m(φq),gcd(Tdmaxq),V(φq))=1
を満たすV(φq)を、W(φq)←gcd(Tdmaxq),m(φq))及びV(φq)←W(φq)により表される代入演算を行って特定し、前記V(φq)の値を前記記憶手段に記憶する第3の補助特定手段と、
前記記憶手段からV(φq)及びm(φq)の値を読み出して、
g(φq)V(φq)≡v(mod m(φq))
を満たす整数のスカラーv及びg(φq)を拡張ユークリッドの互除法により特定し、前記スカラーv及びg(φq)の値を前記記憶手段に記憶する第4の補助特定手段と、
前記補助特定手段に代えて、前記記憶手段からTdmaxq)、χdmax、Di(χ)、Qの各値を読み出して、
[Tdmaxqdmax]Q=Σφq i([Di(χ)]Q)−[Tdmaxqdmax]Q
=[f(φq,χ)]Q
となる多項式f(φq,χ)と、前記g(φq)を用い、φq kQ=Qに基づいて、
[vχdmax]Q=[g(φq)f(φq,χ)]Q=[h(φq,χ)]Q
となる多項式h(φq,χ)を特定し、前記多項式h(φq,χ)の値を前記記憶手段に記憶する第5の補助特定手段と、
前記記憶手段から前記h(φq,χ)の値を読み出して、
このh(φq,χ)のφqに関する定数項h(0,χ)が、
[vχdmax−h(0,χ)]Q=[h(φq,χ)−h(0,χ)]Q
を満たすことを用いて、
χ=aとして、s'=vadmax−h(0,a)及びh'(φq)=h(φq,a)−h(0,a)により表される演算を行ってs'、h'(φq)の値を前記記憶手段に記憶し、
t-1進展開した前記nをDdmax(a)進展開する換わりにvadmax−h(0,a)進展開して、vadmax−h(0,a)の換わりにh(φq,a)−h(0,a)を用いる手段と、を有することを特徴とする請求項2に記載のスカラー倍算の演算装置。
When there are a plurality of coefficients D i (χ) having the highest order dmax in the coefficient D i (χ),
The auxiliary input means further includes means for inputting a value of m (χ) that satisfies r (χ) | m (χ) and storing the value in the storage means,
The coefficient D i (χ) is read out from the storage means as the coefficient of χ dmax that is the term of the highest order dmax of deg (D i (χ)) as T dmaxq ), and T (φ q , χ) and U (φ q , χ) are assigned with an initial value of 0, and T (φ q , χ) ← T (φ q , χ) + D when deg (D i (χ)) = dmax i (χ) φ q i , otherwise U (φ q , χ) ← U (φ q , χ) + D i (χ) φ q i is assigned from i = 0 to i <“ degr (χ) / degs (χ) ”, and the values of T (φ q , χ) and U (φ q , χ) are stored in the storage means, and the highest order coefficient T dmaxq ) is calculated. A second auxiliary specifying means for specifying;
The values of m (χ) and R (χ) are read from the storage means, and V (φ q ) | m (φ is obtained using a polynomial m (χ) of the minimum order satisfying r (χ) | m (χ). q ), gcd (T dmaxq ), V (φ q )) = 1
Substituting V (φ q ) that satisfies W (φ q ) ← gcd (T dmaxq ), m (φ q )) and V (φ q ) ← W (φ q ) Third auxiliary specifying means for specifying and storing the value of V (φ q ) in the storage means;
Read the values of V (φ q ) and m (φ q ) from the storage means,
g (φ q ) V (φ q ) ≡v (mod m (φ q ))
An integer scalar v and g (φ q ) satisfying the above by an extended Euclidean algorithm, and a fourth auxiliary specifying means for storing the values of the scalars v and g (φ q ) in the storage means;
In place of the auxiliary specifying means, T dmaxq ), χ dmax , D i (χ), Q values are read from the storage means,
[T dmaxq ) χ dmax ] Q = Σφ q i ([D i (χ)] Q) − [T dmaxq ) χ dmax ] Q
= [F (φ q , χ)] Q
Based on φ q k Q = Q, using the polynomial f (φ q , χ) and g (φ q ),
[vχ dmax ] Q = [g (φ q ) f (φ q , χ)] Q = [h (φ q , χ)] Q
And polynomial h (φ q, χ) to identify, the polynomial h (φ q, χ) a fifth auxiliary specifying means for storing in said memory means the value of a,
Read the value of h (φ q , χ) from the storage means,
The h (φ q, χ) of phi q about constant term h (0, χ) is,
[vχ dmax −h (0, χ)] Q = [h (φ q , χ) −h (0, χ)] Q
With satisfying
With χ = a, s ′ = va dmax −h (0, a) and h ′ (φ q ) = h (φ q , a) −h (0, a) storing the value of h ′ (φ q ) in the storage means;
said n that t-1 binary expand va dmax -h (0, a) adic expansion in Kawari to D dmax (a) adic expansion, va dmax -h (0, a ) in place to h (φ q, The arithmetic unit for scalar multiplication according to claim 2, further comprising: a) means using h (0, a).
q kを位数qの有限体Fqのk次拡大体、
HをFq kの素数位数rの部分乗法群、
φqを有限体Fqに関する元のフロベニウス自己準同型写像として、
非負整数nに対するHの元Aのn乗算を行うべき乗算を、記憶手段を備えた電子計算機により演算する演算装置において、
前記非負整数nの値、前記位数qの値、前記Fq kの素数位数rの値、A∈H⊂Fq kにより表される元Aの値を入力して前記記憶手段に記憶する入力手段と、
演算結果Zを記憶する前記記憶手段を初期化する初期化手段と、
前記位数q、前記元Aの値を前記記憶手段から読み出して、前記qとrの差分をs=q−rとし、T[j]←A及びA←A*Aにより表される代入演算を、j=0からj<「log2s」まで繰り返して行って前記T[j]及び前記Aの値を前記記憶手段に記憶する第1の演算手段と、
前記記憶手段から前記n及び差分sの値を読み出して、差分sにより展開した次式に基づいて、

c[i]←n%s及びn←(n-c[i])/sにより表される代入演算をi=0から所定回繰り返して行い、各係数c[i]及び非負整数nの値を前記記憶手段に記憶する展開手段と、
前記記憶手段からc[i]及び前記nの値を読み出して、A[i]=Ac[i]に基づいて、A[i]=1に初期化し、c[i]&1である場合にA[i]←A[i]*T[j]、c[i]←c[i]/2により表される代入演算を、i=0から所定回繰り返して行い、前記記憶手段にA[i]及びc[i]の値を記憶する第2の演算手段と、
前記記憶手段から各A[i]を読み出し、次式に基づいて、

Z←Z*φq i(A[i])により表されるべき乗演算を、i=0から所定回繰り返して行い、計算結果Zとして前記記憶手段に記憶する合成手段と、を有することを特徴とするべき乗算の演算装置。
F q k is a k-th order extension of a finite field F q of order q ,
H is a partial multiplicative group of prime order r of F q k ,
Let φ q be the original Frobenius automorphism map for the finite field F q ,
In an arithmetic unit for calculating a multiplication to perform n multiplication of an element A of H with respect to a non-negative integer n by an electronic computer provided with storage means,
The value of the non-negative integer n, the value of the order q, the value of the prime order r of the F q k , and the value of the element A represented by A∈H⊂F q k are input and stored in the storage means. Input means to
Initialization means for initializing the storage means for storing the calculation result Z;
The order q and the value of the element A are read from the storage means, the difference between the q and r is s = q−r, and the substitution operation represented by T [j] ← A and A ← A * A Is repeatedly performed from j = 0 to j <“log 2 s”, and the first calculating means for storing the values of T [j] and A in the storage means,
Based on the following equation that reads out the values of the n and the difference s from the storage means and develops the difference s,

The substitution operation represented by c [i] ← n% s and n ← (nc [i]) / s is repeated a predetermined number of times from i = 0, and the values of each coefficient c [i] and non-negative integer n are Expansion means for storing in the storage means;
When c [i] and the value of n are read from the storage means, A [i] = 1 is initialized based on A [i] = A c [i] , and c [i] & 1 A [i] ← A [i] * T [j], c [i] ← c [i] / 2, the substitution operation represented by i = 0 is repeated a predetermined number of times, and A [ second calculating means for storing values of i] and c [i];
Read each A [i] from the storage means, based on the following equation:

And a combining means for repeatedly performing a multiplication operation represented by Z ← Z * φ q i (A [i]) a predetermined number of times from i = 0 and storing the result as a calculation result Z in the storage means. Multiplication arithmetic unit to be
X^{Y}はXであることを表すこととし、
前記位数q、前記素数位数r、前記sが、整数変数χを用いてそれぞれq(χ)、r(χ)、s(χ)で与えられている場合に、
前記q(χ)、r(χ)、s(χ)の各値を入力して前記記憶手段に記憶する補助入力手段と、
前記記憶手段からr(χ)及びs(χ)を読み出して、前記s(χ)を用いて前記r(χ)をs(χ)進展開した次式に基づいて、

Di(χ)←r(χ)%s(χ)及びr(χ)←(r(χ)-Di(χ))/s(χ)により表される代入演算を、i=0からi<「degr(χ)/degs(χ)」まで繰り返して行い、前記係数Di(χ)及びr(χ)を前記記憶手段に記憶する補助展開手段と、
前記記憶された係数D(χ)のうち、deg(D(χ))が最大のものをDdmax(χ)として抽出し、前記記憶手段に記憶する補助抽出手段と、
前記記憶手段から前記Ddmax(χ)、Di(χ)、qの値を読み出して、
(A^{Ddmax(χ)})^{qdmax}=A^{Σi≠dmax−Di(χ)qi}=A^{f(q,χ)}
となる多項式f(q,χ)を用い、φq k(A)=Aに基づいて
A^{Ddmax(χ)}=A^{Σi≠dmax−Di(χ)qi−qdmax}=A^{h(q,χ)}
となる多項式h(q,χ)を特定し、前記多項式h(q,χ)の値を前記記憶手段に記憶する補助特定手段と、
前記s進展開した前記nを、χ=aとしてs=Ddmax(a)からなるDdmax(a)進展開に置き換え、前記Ddmax(a)に換えて前記多項式h(q,a)を用いる手段と、を有することを特徴とする請求項4に記載のべき乗算の演算装置。
X ^ {Y} represents XY ,
When the order q, the prime order r, and the s are given by q (χ), r (χ), and s (χ), respectively, using an integer variable χ,
Auxiliary input means for inputting the values of q (χ), r (χ), and s (χ) and storing them in the storage means;
Based on the following equation, r (χ) and s (χ) are read from the storage means, and r (χ) is expanded in s (χ) using the s (χ).

D i (χ) ← r (χ)% s (χ) and r (χ) ← (r (χ) −D i (χ)) / s (χ) i <“degr (χ) / degs (χ)” repeatedly, and auxiliary expansion means for storing the coefficients D i (χ) and r (χ) in the storage means,
Auxiliary extraction means for extracting the largest coefficient deg (D i (χ)) among the stored coefficients D i (χ) as D dmax (χ) and storing it in the storage means;
Read the values of D dmax (χ), D i (χ), q from the storage means,
(A ^ {D dmax (χ)}) ^ {q dmax } = A ^ {Σ i ≠ dmax −D i (χ) q i } = A ^ {f (q, χ)}
A ^ {D dmax (χ)} = A ^ { Σi ≠ dmax −D i (χ) q i −q based on φ q k (A) = A dmax } = A ^ {h (q, χ)}
An auxiliary specifying means for specifying the polynomial h (q, χ) to be and storing the value of the polynomial h (q, χ) in the storage means;
Said n that the s-adic expansion, replaced with chi = a as s = D dmax (a) consisting of D dmax (a) adic expansion, the D dmax (a) instead of by the polynomial h (q, a) The arithmetic unit for power multiplication according to claim 4, further comprising: means for use.
前記係数D(χ)において最高次数dmaxとなる係数D(χ)が複数存在する場合に、
前記補助記憶手段は、r(χ)|m(χ)を満たすm(χ)の値を入力して前記記憶手段に記憶する手段を更に含み、
deg(Di(χ))の最高次数dmaxの項であるχdmaxの係数をTdmax(q)として、前記記憶手段から係数D(χ)を読み出し、前記記憶手段にT(q,χ)及びU(q,χ)を初期値を0として割り当て、deg(Di(χ))=dmaxとなる場合にT(q,χ)←T(q,χ)+Di(χ)qi、その他の場合にU(q,χ)←U(q,χ)+Di(χ)qiにより表される代入演算をi=0からi<「degr(χ)/degs(χ)」まで繰り返して行ってT(q,χ)及びU(q,χ)の値を前記記憶手段に記憶し、最高次数係数Tdmax(q)を特定する第2の補助特定手段と、
前記記憶手段からm(χ)及びR(χ)の値を読み出して、r(χ)|m(χ)を満たす最小次数の多項式m(χ)を用いて
V(q)|m(q),gcd(Tdmax(q),V(q))=1
を満たすV(q)を、W(q)←gcd(Tdmax(q),m(q))及びV(q)←W(q)により表される演算を行って特定し、前記V(q)の値を前記記憶手段に記憶する第3の補助特定手段と、
前記記憶手段からV(q)及びm(q)の値を読み出して、
g(q)V(q)≡v(mod m(q))
を満たす整数のスカラーv及びg(q)を拡張ユークリッドの互除法により特定し、前記スカラーv及びg(q)の値を前記記憶手段に記憶する第4の補助特定手段と、
前記補助特定手段に代えて、前記記憶手段からTdmax(q)、χdmax、Di(χ)、Qの各値を読み出して、
A^{Tdmax(q)χdmax}=A^{ΣDi(χ)qi−Tdmax(q)χdmax}
=A^{f(q,χ)}
となる多項式f(q,χ)と、前記g(q)を用い、φq k(A)=Aに基づいて、
A^{vχdmax}=A^{g(q)f(q,χ)}=A^{h(q,χ)}
となる多項式h(q,χ)を特定し、前記多項式h(q,χ)の値を前記記憶手段に記憶する第5の補助特定手段と、
前記記憶手段から前記h(q,χ)の値を読み出して、
このh(q,χ)のqに関する定数項h(0,χ)が、
A^{vχdmax−h(0,χ)}=A^{h(q,χ)−h(0,χ)}
を満たすことを用いて、
χ=aとして、s'=vadmax−h(0,a)及びh'(q)=h(q,a)−h(0,a) により表される演算を行ってs'、h'(q)の値を前記記憶手段に記憶し、s進展開した前記nをDdmax(a)進展開する換わりにvadmax−h(0,a)進展開して、vadmax−h(0,a)の換わりにh(q,a)−h(0,a)を用いる手段と、を有することを特徴とする請求項5に記載のべき乗算の演算装置。
When there are a plurality of coefficients D i (χ) having the highest order dmax in the coefficient D i (χ),
The auxiliary storage means further includes means for inputting a value of m (χ) that satisfies r (χ) | m (χ) and storing the value in the storage means,
The coefficient D i (χ) is read out from the storage means with the coefficient of χ dmax being the term of the maximum degree dmax of deg (D i (χ)) as T dmax (q), and T (q, χ ) And U (q, χ) are assigned with an initial value of 0, and T (q, χ) ← T (q, χ) + D i (χ) q when deg (D i (χ)) = dmax i , in other cases, the substitution operation represented by U (q, χ) ← U (q, χ) + D i (χ) q i is changed from i = 0 to i <“degr (χ) / degs (χ) And the second auxiliary specifying means for storing the values of T (q, χ) and U (q, χ) in the storage means and specifying the highest order coefficient T dmax (q);
The values of m (χ) and R (χ) are read from the storage means, and the minimum order polynomial m (χ) satisfying r (χ) | m (χ) is used, and V (q) | m (q) , gcd (T dmax (q), V (q)) = 1
V (q) satisfying W (q) ← gcd (T dmax (q), m (q)) and V (q) ← W (q) is specified by performing an operation represented by the above V (q a third auxiliary specifying means for storing the value of q) in the storage means;
Read the values of V (q) and m (q) from the storage means,
g (q) V (q) ≡v (mod m (q))
A fourth auxiliary specifying means for specifying integer scalars v and g (q) satisfying an extended Euclidean algorithm and storing the values of the scalars v and g (q) in the storage means;
Instead of the auxiliary specifying means, each value of T dmax (q), χ dmax , D i (χ), Q is read from the storage means,
A ^ {T dmax (q) χ dmax } = A ^ {ΣD i (χ) q i −T dmax (q) χ dmax }
= A ^ {f (q, χ)}
Based on φ q k (A) = A, using the polynomial f (q, χ) and g (q)
A ^ {vχ dmax } = A ^ {g (q) f (q, χ)} = A ^ {h (q, χ)}
A fifth auxiliary specifying means for specifying the polynomial h (q, χ) to be and storing the value of the polynomial h (q, χ) in the storage means;
Read the value of h (q, χ) from the storage means,
The constant term h (0, χ) for q of h (q, χ) is
A ^ {vχ dmax −h (0, χ)} = A ^ {h (q, χ) −h (0, χ)}
With satisfying
With χ = a, s ′ = va dmax −h (0, a) and h ′ (q) = h (q, a) −h (0, a) are performed and s ′, h ′ The value of (q) is stored in the storage means, and instead of expanding n in s-advanced manner in D dmax (a), it is expanded in va dmax −h (0, a) and va dmax −h (0 and a) using h (q, a) -h (0, a) in place of a, a).
JP2009229150A 2009-09-30 2009-09-30 Scalar multiplication arithmetic unit and power multiplication arithmetic unit Expired - Fee Related JP5246796B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009229150A JP5246796B2 (en) 2009-09-30 2009-09-30 Scalar multiplication arithmetic unit and power multiplication arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009229150A JP5246796B2 (en) 2009-09-30 2009-09-30 Scalar multiplication arithmetic unit and power multiplication arithmetic unit

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008043462A Division JP4521503B2 (en) 2008-02-25 2008-02-25 Scalar multiplication operation program and power multiplication operation program

Publications (2)

Publication Number Publication Date
JP2009301070A JP2009301070A (en) 2009-12-24
JP5246796B2 true JP5246796B2 (en) 2013-07-24

Family

ID=41547944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009229150A Expired - Fee Related JP5246796B2 (en) 2009-09-30 2009-09-30 Scalar multiplication arithmetic unit and power multiplication arithmetic unit

Country Status (1)

Country Link
JP (1) JP5246796B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009301071A (en) * 2009-09-30 2009-12-24 Okayama Univ Operating program for scalar multiplication and operating program for exponentiation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003263110A (en) * 2002-03-08 2003-09-19 Nippon Telegr & Teleph Corp <Ntt> Source generation device of partial group of rational point group on elliptic curve, program for the device and recording medium
JP4528114B2 (en) * 2004-12-28 2010-08-18 日本電信電話株式会社 Key generation device, encryption device, inspection device, decryption device, key generation program, encryption program, inspection program, decryption program
JP4692022B2 (en) * 2005-02-28 2011-06-01 株式会社日立製作所 Scalar multiplication apparatus and program for elliptic curve cryptography
JP4690819B2 (en) * 2005-08-05 2011-06-01 株式会社日立製作所 Scalar multiplication calculation method and scalar multiplication calculation apparatus in elliptic curve cryptography
JP2009301071A (en) * 2009-09-30 2009-12-24 Okayama Univ Operating program for scalar multiplication and operating program for exponentiation

Also Published As

Publication number Publication date
JP2009301070A (en) 2009-12-24

Similar Documents

Publication Publication Date Title
Costello et al. Efficient algorithms for supersingular isogeny Diffie-Hellman
Imran et al. ACryp-Proc: Flexible asymmetric crypto processor for point multiplication
Naehrig et al. New software speed records for cryptographic pairings
JP4752313B2 (en) Cryptographic processing operation method, cryptographic processing apparatus, and computer program
JP4521503B2 (en) Scalar multiplication operation program and power multiplication operation program
US7904498B2 (en) Modular multiplication processing apparatus
JP4067818B2 (en) Elliptic curve cryptography apparatus, elliptic curve cryptography program, and elliptic curve cryptography calculation method
Kaihara et al. A hardware algorithm for modular multiplication/division
WO2016046949A1 (en) Method for calculating elliptic curve scalar multiplication
KR20080086476A (en) Encryption processing device, encryption processing method, and computer program
JPWO2009118795A1 (en) Cryptographic processing method with tamper resistance against side channel attack
JP5147085B2 (en) Calculation method and calculation device
US20070053506A1 (en) Elliptic curve encryption processor, processing method of the processor using elliptic curves, and program for causing a computer to execute point scalar multiplication on elliptic curves
JP5246796B2 (en) Scalar multiplication arithmetic unit and power multiplication arithmetic unit
JP5403630B2 (en) Scalar multiplier and scalar multiplication program
KR101223498B1 (en) Method for generating public key in elliptic curve cryptography and system for executing the method
JP2009301071A (en) Operating program for scalar multiplication and operating program for exponentiation
Yu et al. Efficient modular reduction algorithm without correction phase
JP4616169B2 (en) Apparatus, method and program for calculating conversion parameter in Montgomery modular multiplication
Zhang et al. A high performance pseudo-multi-core ECC processor over GF (2 163)
JP4599859B2 (en) Cryptographic processing operation method, cryptographic processing apparatus, and computer program
WO2008013154A1 (en) Extension filed multiplication program and extension filed multiplication device
Dan et al. Design of highly efficient elliptic curve crypto-processor with two multiplications over GF (2163)
JP4550232B2 (en) Arithmetic apparatus, arithmetic method, and computer-readable recording medium recording program
JP2011085750A (en) Elliptic curve scalar multiplication device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20121211

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130404

R150 Certificate of patent or registration of utility model

Ref document number: 5246796

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees