JP4861272B2 - 楕円曲線暗号演算装置、方法、プログラム - Google Patents

楕円曲線暗号演算装置、方法、プログラム Download PDF

Info

Publication number
JP4861272B2
JP4861272B2 JP2007225302A JP2007225302A JP4861272B2 JP 4861272 B2 JP4861272 B2 JP 4861272B2 JP 2007225302 A JP2007225302 A JP 2007225302A JP 2007225302 A JP2007225302 A JP 2007225302A JP 4861272 B2 JP4861272 B2 JP 4861272B2
Authority
JP
Japan
Prior art keywords
reference point
point
elliptic curve
point sequence
converted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007225302A
Other languages
English (en)
Other versions
JP2009058712A (ja
Inventor
公洋 山越
順子 高橋
利徳 福永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2007225302A priority Critical patent/JP4861272B2/ja
Publication of JP2009058712A publication Critical patent/JP2009058712A/ja
Application granted granted Critical
Publication of JP4861272B2 publication Critical patent/JP4861272B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、情報セキュリティ技術に関する。特に、有限体上定義された楕円曲線上の点についてスカラーk倍算を行う際の、電力解析法等による実装攻撃を防止する楕円曲線暗号演算装置、方法、プログラムに関する。
pを3以上の素数とする有限体GF(p)のm次拡大体であるGF(p)上で定義された楕円曲線E/GF(p)上のベースポイントPのスカラーk倍算k×Pを行う楕円曲線演算方法として、次のような方法が知られている。
k×Pをフロベニウス写像を用いてφ進展開した式の各項に、予め生成した事前計算テーブルを参照して楕円曲線E/GF(p)上の参照点を代入する。そして、楕円2倍算と楕円加算とを交互に繰り返すことにより、k×Pを計算する方法である(例えば、特許文献1及び特許文献2参照。)。
特許第3145368号公報 特許第3604126号公報
一般に楕円2倍算の処理と楕円加算の処理とでは、楕円加算の処理の方が重く、消費電力が大きいことが知られている。このため、参照点に無限遠点Oが含まれていない場合には、楕円2倍算と楕円加算とが交互に繰り返されることにより、図5Aに例示するように消費電力が小さい波形と消費電力が大きい波形とが交互に続く。一方、参照点に無限遠点Oが含まれている場合には、参照点が無限遠点Oである箇所で楕円加算が行われないため、その箇所で楕円2倍算が続く。このため、図5Bに例示するように消費電力が小さい波形が続く。図5A,Bの縦軸は消費電力、横軸は時間を表す。
したがって、消費電力が小さい波形が続く箇所を調べることにより、無限遠点Oである参照点を知ることができる。無限遠点Oである参照点についての情報は、秘密鍵であるスカラー倍指数kの解読を容易にする。すなわち、無限遠点Oである参照点が判明するほど、秘密鍵であるスカラー倍指数kの探索空間が狭まり、安全性が低下するという問題がある。この攻撃方法は、単純電力解析法(SPA:Simple Power Analysis)として知られている。
この発明は、単純電力解析法に対して耐性を有する楕円曲線暗号演算装置、方法、プログラムを提供することを目的とする。
本発明によれば、pを2以上の素数とする有限体GF(p)のm次拡大体であるGF(p)上で定義された楕円曲線E/GF(p)上のベースポイントPのスカラーk倍算を行うために、事前計算テーブル生成手段が、ベースポイントPを基にしてフロベニウス写像φを用いた式として定義される、楕円曲線E/GF(p)上の、無限遠点Oを含む2個の参照点P(u=0,1,…,2−2,2−1)
Figure 0004861272
をそれぞれ求めて、式Σi=0 m−1φ(P)と参照点Pとを各uごとに対応させた事前計算テーブルを生成する。φ進展開手段が、rをlog(p−1)の整数部分以上の整数として、ベースポイントPのスカラーk倍算k×Pを、非負整数の展開係数を用いてφ進展開して、該非負整数の展開係数をバイナリ展開することにより得られる展開式
Figure 0004861272

を満たすcij(i=0,…m−1,j=0,…,r)を求める。参照点列生成手段が、求まったcijから定まる各式P c(j)に対応する参照点Pc(j)を生成された事前演算テーブルを参照してそれぞれ求める。第一参照点列変換手段が、上記参照して求まった参照点Pc(j)の列{Pc(r),Pc(r−1),…,Pc(1),Pc(0)}(以下、参照点列とする。)の中の1つまたは連続する複数の参照点Pc(j)(jはJ2≧j≧J1を満たす整数、J2,J1はr≧J2≧J1≧1を満たす整数、Pc(J1−1)≠Oとする。)が無限遠点Oである場合には、j=J2の参照点Pc(j)を点Pc(J1−1)に変換すると共に、J2−1≧j≧J1−1の各参照点Pc(j)を点−Pc(J1−1)に変換する。メイン計算手段が、展開式の各式P c(j)(j=0,…,r)に、参照して求まった参照点Pc(j)、又は、参照して求まった参照点Pc(j)が第一参照点列変換手段により変換された場合には変換された点、をそれぞれ代入した式を、楕円2倍算と楕円加算とを交互に行うことにより計算する。
また、第二参照点列変換手段が、参照点列の中の1つまたは連続する複数の参照点P c(j) (jはJ3≧j≧0を満たす整数、J3はr≧J3≧0を満たす整数とする。)が無限遠点Oである場合には、j=J3の参照点P c(j) を楕円曲線E/GF(p )上の無限遠点Oではない任意の点P’に変換すると共に、J3≧1である場合にはJ3−1≧j≧0の各参照点P c(j) を点−P’に変換し、メイン計算手段は、展開式の各式P c(j) (j=0,…,r)に、参照して求まった参照点P c(j) 、又は、参照して求まった参照点P c(j) が第一参照点列変換手段又は第二参照点列変換手段により変換された場合には変換された点、をそれぞれ代入した式を、楕円2倍算と楕円加算とを交互に行うことにより計算し、その計算結果に点−P’を加算する。
参照点列中の一部又は全部の無限遠点Oを、無限遠点O以外の楕円曲線E/G(p)上の点に置き換えることにより、楕円2倍算が続く箇所の数を少なくすること又はなくすことができる。これにより、消費電力の波形の変化の態様がより一定となり、秘密鍵であるスカラー倍指数kの解読を困難にする。
[第一実施例]
図1,2を参照して、この発明の一実施例である楕円曲線暗号演算装置10について説明をする。図1は、楕円曲線暗号演算装置10の機能構成を例示する図である。図1に例示するように、楕円曲線暗号演算装置10は、記憶部1、事前計算テーブル生成部2、事前計算テーブル記憶部3、φ進展開部4、参照点列生成部5、第一参照点列変換部6、メイン計算部8からなる。図2は、楕円曲線暗号演算装置10の処理の流れを例示するフローチャートである。
楕円曲線暗号演算装置10は、pを2以上の素数とする有限体GF(p)のm次拡大体であるGF(p)上で定義された楕円曲線E/GF(p)上の点P(以下、点PをベースポイントPとも呼ぶ。)についてスカラーk倍算を行い、すなわち、k×Pの計算を行う装置である。
記憶部1には、有限体パラメータである標数p及び拡大次数m、楕円パラメータEが記憶されている。楕円パラメータEとは、例えば、無限遠点をOとして、楕円曲線E/GF(p)を
E/GF(p)={(x,y)∈GF(p|y=x+ax+b}∪O
と表した場合のa,b∈GF(p)のことである。ただし、a,bは4a+27b≠0の関係を満たす。
標数pが大きければ大きいほど、セキュリティの強度を確保するために必要とされる拡大次数mを小さくすることができ、これにより後述する事前計算テーブルのサイズを小さくすることができる。例えば、標数pをCPUのレジスタサイズに合わせて最適化したある程度大きな値とする。例えば、64ビットCPUであれば、標数p=261−1とする。この場合、拡大次数m=5とすれば十分なセキュリティの強度を確保することができる。拡大次数m=5の場合、後述する事前計算テーブルに登録される参照点の数は高々2=32個となる。
<ステップS1>
事前計算テーブル生成部2は、入力されたベースポイントPを基にしてフロベニウス(Frobenius)写像φを用いて下記の展開式により定義される、楕円曲線E/GF(p)上の無限遠点Oを含む2個の参照点P(u=0,1,…,2−2,2−1)を求める。すなわち、式Σi=0 m−1φ(P)に対応する参照点Pを各uごとにそれぞれ求める。その際必要に応じて、記憶部1から有限体パラメータである標数p及び拡大次数m、楕円パラメータEが読み込まれる。
Figure 0004861272
フロベニウス写像φは、x,y∈GF(p)として、φ:(x,y)→(x,y)により定義される写像である。一般に、楕円曲線上の点P,Qに対して、φ(P+Q)=φ(P)+φ(Q)という性質と、Σi=0 m−1φ(P)=Oという性質とを持つ。これらの性質を用いると、参照点Pの計算が容易となる。
例えば、m=5のとき、以下のように各P(u=0,1,…,30,31)をそれぞれ求めることができる。
=O
=φ(P)=P
=φ(P)=φ(P)
=φ(P)+φ(P)=φ(P)+P
=φ(P)=φ(φ(P))=φ(P
=φ(P)+φ(P)=φ(P)+P
=φ(P)+φ(P)=φ(φ(P)+φ(P))=φ(P
=φ(P)+φ(P)+φ(P)=−φ(P)−φ(P)+φ(P)+φ(P)+φ(P)+φ(P)+φ(P)=−φ(P)−φ(P)=−φ(φ(P)+P)=−φ(P

30=φ(P)+φ(P)+φ(P)+φ(P)=φ(P)+φ(P)+φ(P)+φ(P)+φ(P)−φ(P)=−φ(P)=−P
31=φ(P)+φ(P)+φ(P)+φ(P)+φ(P)=O
の式変形において、φ(P+Q)=φ(P)+φ(Q)という上記したフロベニウス写像φの性質を利用している。また、P,P30,P31の式変形において、Σi=0 5−1φ(P)=φ(P)+φ(P)+φ(P)+φ(P)+φ(P)=Oという上記したフロベニウス写像φの性質を利用している。
これらのフロベニウス写像φの性質を適宜利用して式Σi=0 m−1φ(P)を変形することにより、参照点Pを求めるための楕円加算の回数を減らすことができる。
このように、事前計算テーブル生成部2は、各式Σi=0 m−1φ(P)に対応する参照点Pをそれぞれ求め、これにより、式Σi=0 m−1φ(P)と参照点Pとを各uごとに対応付けた事前計算テーブルを生成する。生成された事前計算テーブルは、事前計算テーブル記憶部3に記憶される。
<ステップS2>
φ進展開部4は、ベースポイントPのスカラーk倍算k×Pを、非負整数の展開係数を用いてφ進展開して、該非負整数の展開係数をバイナリ展開することにより得られる展開式
Figure 0004861272
を満たすcij(i=0,…m−1,j=0,…,r)を求める。求まったcijは、参照点列生成部5とメイン計算部8に送られる。また、rについてもメイン計算部8に送られる。
ijを求めるまでの過程を以下に述べる。
まずφ進展開部4はk×Pを、以下のようにφ進展開する。
Figure 0004861272
展開係数cを求めるためにまず、k=x+yφ(ただし、初期値:x=k,y=0)を、
+yφ=c+(x+yφ)φ
≡k(mod p), −(p−1)/2≦c≦(p−1)/2
と変換する。φが特性方程式φ−tφ+p=0を満たすことを用いると、x,yは、
=y+t((x−c)/p)
=−(x−c)/p
と表される。特性方程式に現れるtは楕円曲線に固有の値(トレース)であり、♯E(GF(p))=p+1−tを満たす。
i=1,…,M(M≦2m+3)についても、
+yφ=c+(xi+1+yi+1φ)φ
≡k(mod p), −(p−1)/2≦c≦(p−1)/2
=y+t((x−c)/p)
=−(x−c)/p
上記の関係が成立する。これらの関係をx=0,y=0となるまで繰り返し用いることにより、各展開係数cを求めることができる(例えば、特許文献1参照。)。
次にφ進展開部4は、展開係数cの最小値cminを用いて、各展開係数cをc=c−cminにより非負整数化する。φ(P)=P(ここで、Pは楕円曲線上の任意の点)というフロベニウス写像の性質を用いると、
i=m+j(0≦j≦m−1)なるiに対して、φ=φ(φP)=φ
i=2m+j(0≦j≦3)なるiに対して、φ=φ(φ(φP))=φ
が成り立つ。したがって、c=c+ci+m+ci+2mと書き直せば、Σi=0 2m+3φP=Σi=0 m−1φPと変形できる。
Figure 0004861272
であるため、各展開係数cをc=c−cminと非負整数化してもk×Pの計算結果は変わらない。
最後にφ進展開部4は、展開係数cをc=Σj=0 ij,cij={0,1}とバイナリ展開して、k×Pを以下のように表す。
Figure 0004861272
ただし、式P c(j)は、
Figure 0004861272
である。また、rは、log(p−1)の整数部分以上の整数である。すなわち、rは、
Figure 0004861272
を満たす整数である。
例えばこのようにして、φ進展開部4は上記(1)式を満たすcij(i=0,…m−1,j=0,…,r)を求める。
<ステップS3>
参照点列生成部5は、各式P c(j)(j=r,r−1,…,1,0)に対応する参照点Pc(j)を、事前計算テーブル記憶部3に格納された事前計算テーブルを参照してそれぞれ求める。求まった参照点Pc(j)の列{Pc(r),Pc(r−1),…,Pc(1),Pc(0)}(以下、参照点列とする。)は、第一参照点列変換部6に送られる。
<ステップS4>
第一参照点列変換部6は、参照点列の中1つ又は連続する参照点Pc(j)が無限遠点Oである場合には、それらの参照点と、それらの参照点の下位側に隣接する参照点とを次のように無限遠点O以外の点に置き換える。
参照点列中の1つ又は連続する複数の参照点Pc(J2)〜参照点Pc(J1)が、無限遠点Oであるとする。ここで、J2,J1は、r≧J2≧J1≧1を満たす整数であり、参照点Pc(J1−1)≠Oとする。この場合、第一参照点列変換部6は、参照点Pc(J2)を点Pc(J1−1)に変換する。また、第一参照点列変換部6は、参照点Pc(J2−1)〜参照点Pc(J1−1)を点−Pc(J1−1)に変換する。変換された参照点列は、メイン計算部8に送られる。
j=J2 → Pc(j)=Pc(J1−1)
J2−1≧j≧J1−1 → Pc(j)=−Pc(J1−1)
以下、図3に例示するように、r=8であり、事前計算テーブルを参照した結果、(P c(8),P c(7),P c(6),P c(5),P c(4),P c(3),P c(2),P c(1),P c(0))に(P,P(=O),P(=O),P(=O),P,P(=O),P(=O),P12,P)がそれぞれ対応させられている場合を例に挙げて説明をする。
この参照点列は、(O,O,O,P)という参照点のパターンを含む。これらの参照点は、第一参照点列変換部6により、(P,−P,−P,−P)と変換される。また、この参照点列は、(O,O,P12)という参照点のパターンを含む。これらの参照点は、第一参照点列変換部6により、(P12,−P12,−P12)と変換される。
この結果、(P c(8),P c(7),P c(6),P c(5),P c(4),P c(3),P c(2),P c(1),P c(0))に(P,P,−P,−P,−P,P12,−P12,−P12,P)がそれぞれ対応することになる。
このように第一参照点列変換部6により参照点を変換しても、k×Pの計算結果が変わらない理由については後述する。
<ステップS5>
メイン計算部8は、上記(1)式の各式P c(j)(j=0,…,r)に、事前計算テーブルを参照することにより求まった参照点Pc(j)、又は、参照点Pc(j)が第一参照点列変換部6により変換された場合にはその変換された点を代入した式を計算することにより、k×Pを計算する。すなわち、上記(1)式の各式P c(j)(j=0,…,r)に最終的に対応する点を代入した式を計算することにより、k×Pを計算する。
参照点列が図3に例示する参照列である場合には、第一参照点列変換部6により参照点が変換された結果、メイン計算部8は、
Figure 0004861272
を計算することになる。
メイン計算部8は、例えば、楕円2倍算と楕円加算を繰り返し行う次の処理を行うことにより、上記(1)式の各式P c(j)に参照点Pc(j)又は変換された点を代入した式を計算する。点P c(j)は、式P c(j)(j=0,…,r)に最終的に対応する点のことである。下記の処理が終了したときのQが、k×Pの演算結果となる。
Q=P c(r)
for j=r−1 to 0 {
Q=2Q
Q=Q+P c(j)

この実施例によれば、Pc(0)が無限遠点Oでない場合には、各P c(j)は無限遠点Oではないため、メイン計算部8は、各P c(j)(j=r−1,…,0)について、楕円2倍算(Q=2Q)と楕円加算(Q=Q+P c(j))の両方の処理を行う。このため、消費電力の変化の態様が一定となり、攻撃者が単純電力解析をしても秘密鍵であるスカラー倍指数kを解読するための情報を得ることはできなくなる。
また、Pc(0)が無限遠点Oである場合には、単純電力解析により無限遠点である参照列Pc(j)が判明する可能性がある。しかし、無限遠点Oであることが判明する可能性があるのは、後述するように、Pc(0)を含む1つ又は複数の連続する無限遠点である参照点だけであり、依然として秘密鍵であるスカラー倍指数kを解読するのは困難である。
これらの点において、この実施例による楕円曲線暗号演算装置は、単純電力解析攻撃に対して耐性を有するということができる。また、フォルト混入させればk×Pの最終的な結果が変わるため、セーフエラー攻撃も通用しない。
《第一参照点列変換部6により参照点を変換してもk×Pの計算結果が変わらない理由について》
Σi=0 a−1=2−1
という等比数列の和の公式がある。これを式変形すると、
−(2a−1+2a−2+…+2+1)=1
という関係が得られる。したがって、楕円曲線E/G(p)上の点P”についても、
P”−(2a−1+2a−2+…+2+1)P”=P”
という関係が成立する。このため、第一参照点列変換部6により参照点を変換してもk×Pの計算結果が変わらないのである。
例えば、これを上記式(2)にあてはめると、
Figure 0004861272
となり、上記(1)式の各式P c(j)(j=0,…,r)に、第一参照点列変換部6により変換される前の参照点を代入した式
Figure 0004861272
と同値であることがわかる。
[第二実施例]
第二実施例による楕円曲線暗号演算装置は、第一参照点列変換部6により変換された参照点列をさらに変換する第二参照点列変換部7を備え、メイン計算部8が第二参照点列変換部7による参照点列の変換によりk×Pの計算結果が変化しないように補正をする点で、第一実施例による楕円曲線暗号演算装置10とは異なる。他の点については、第一実施例による楕円曲線暗号演算装置10と同様であるため重複説明を省略する。以下、第一実施例と異なる部分について説明をする。
第一参照点列変換部6により変換された参照点列は、第二参照点列変換部7に送られる。例えば、参照点列生成部5により生成された参照点列が図4の上段に例示する参照点列(変換前の参照点列)であるとする。この変換前の参照点列は、第一参照点列変換部6により図4の中段に示す参照点列(変換後1の参照点列)に変換される。
第二参照点列変換部7は、受け取った参照点列の中の1つまたは連続する複数の参照点Pc(j)(jはJ3≧j≧0を満たす整数、J3はr≧J3≧0を満たす整数とする。)が無限遠点Oである場合には、j=J3の参照点Pc(j)を上記楕円曲線E/GF(p)上の無限遠点Oではない任意の点P’に変換すると共に、J3≧1である場合にはJ3−1≧j≧0の各参照点Pc(j)を点−P’に変換する。変換された参照点列は、メイン計算部8に送られる。
例えば、図4の中段に示した(変換後1の参照点列)は、(O,O,O,O)という参照点のパターンを含む。これらの参照点は、(P’,−P’,−P’,−P’)とそれぞれ変換される。
この結果、(P c(8),P c(7),P c(6),P c(5),P c(4),P c(3),P c(2),P c(1),P c(0))に(P,P11,−P11,P,−P,P’,−P’,−P’,−P’)がそれぞれ対応することになる。
メイン計算部8は、上記式(1)の各式P c(j)(j=0,…,r)に、参照点列生成部5が参照して求まった参照点Pc(j)、又は、上記参照して求まった参照点Pc(j)が第一参照点列変換部6又は第二参照点列変換部7により変換された場合には上記変換された点、をそれぞれ代入した式を楕円2倍算と楕円加算を交互に行うことにより計算して、その計算結果に点−P’を加算する。
第二参照点列変換部7により参照点を変換した場合に、−P’を加算する必要がある理由については後述する。
例えば、参照点列が図4に例示する参照点列である場合には、第一参照点列変換部6及び第二参照点列変換部7により参照点が変換された結果、メイン計算部8は、
Figure 0004861272
を計算することになる。
この実施例によれば、Pc(0)が無限遠点Oであるかどうかを問わず、各P c(j)は無限遠点Oではないため、メイン計算部8は、各P c(j)(j=r−1,…,0)について、楕円2倍算(Q=2Q)と楕円加算(Q=Q+P c(j))の両方の処理を行う。このため、消費電力の変化の態様が一定となり、攻撃者が単純電力解析をしても秘密鍵であるスカラー倍指数kを解読するための情報を得ることはできなくなる。
《第二参照点列変換部7により参照点を変換するとk×Pの計算結果に−P’を加算する必要がある理由について》
上記説明したように、楕円曲線E/G(p)上の点P”について、
P”−(2a−1+2a−2+…+2+1)P”=P”
という関係が成立する。このため、第二参照点列変換部7により参照点を変換した場合のk×Pの計算結果は、第二参照点列変換部7により参照点を変換しなかった場合のk×Pの計算結果と比較して+P’だけずれる。このため、第二参照点列変換部7により参照点を変換するとk×Pの計算結果に−P’を加算する必要があるのである。
[変形例等]
有限体パラメータp,m、楕円パラメータEに関わらず、常に、P=O,P=P,P2^m−2=−P,P2^m−1=Oである。このため、事前計算テーブル生成部2は、これらの参照点の全部又は一部については事前計算をしなくてもよい。この場合の事前計算テーブルは、これらの参照点の全部又は一部以外の各参照点と、式Σi=0 m−1φ(P)とをそれぞれ対応付けたものとなる。この場合、参照点列生成部5は、これらの参照点の全部又は一部を求めるために事前計算テーブルを参照しないで、P=O,P=P,P2^m−2=−P,P2^m−1=Oであるとして参照点列を生成する。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD
−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
また、上述した実施形態とは別の実行形態として、コンピュータが可搬型記録媒体から直接このプログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
楕円曲線暗号装置の一実施例の機能構成を例示する図。 楕円曲線暗号装置の一実施例の処理の流れを例示する図。 r=8の場合の、変換前の参照点列、及び、第一参照点列変換部6による変換後の参照点列を例示する図。 r=8の場合の、変換前の参照点列、第一参照点列変換部6による変換後の参照点列、及び、第二参照点列変換部7による変換後の参照点列を例示する図。 Aは、参照点列に無限遠点を含まない場合の消費電力の波形を例示する図。Bは、参照点列に無限遠点を含む場合の消費電力の波形を例示する図。

Claims (3)

  1. pを2以上の素数とする有限体GF(p)のm次拡大体であるGF(p)上で定義された楕円曲線E/GF(p)上のベースポイントPのスカラーk倍算を行う楕円曲線暗号演算装置であって、
    上記ベースポイントPを基にしてフロベニウス写像φを用いた式として定義される、楕円曲線E/GF(p)上の、無限遠点Oを含む2個の参照点P(u=0,1,…,2−2,2−1)
    Figure 0004861272

    をそれぞれ求めて、式Σi=0 m−1φ(P)と参照点Pとを各uごとに対応させた事前計算テーブルを生成する事前計算テーブル生成手段と、
    rをlog(p−1)の整数部分以上の整数として、上記ベースポイントPのスカラーk倍算k×Pを、非負整数の展開係数を用いてφ進展開して、該非負整数の展開係数をバイナリ展開することにより得られる展開式
    Figure 0004861272

    を満たすcij(i=0,…m−1,j=0,…,r)を求めるφ進展開手段と、
    上記求まったcijから定まる各式P c(j)に対応する参照点Pc(j)を上記生成された事前演算テーブルを参照してそれぞれ求める参照点列生成手段と、
    上記参照して求まった参照点Pc(j)の列{Pc(r),Pc(r−1),…,Pc(1),Pc(0)}(以下、参照点列とする。)の中の1つまたは連続する複数の参照点Pc(j)(jはJ2≧j≧J1を満たす整数、J2,J1はr≧J2≧J1≧1を満たす整数、Pc(J1−1)≠Oとする。)が無限遠点Oである場合には、j=J2の参照点Pc(j)を点Pc(J1−1)に変換すると共に、J2−1≧j≧J1−1の各参照点Pc(j)を点−Pc(J1−1)に変換する第一参照点列変換手段と、
    上記展開式の各式P c(j)(j=0,…,r)に、上記参照して求まった参照点Pc(j)、又は、上記参照して求まった参照点Pc(j)が上記第一参照点列変換手段により変換された場合には上記変換された点、をそれぞれ代入した式を、楕円2倍算と楕円加算とを交互に行うことにより計算するメイン計算手段と、
    を備え
    記参照点列の中の1つまたは連続する複数の参照点Pc(j)(jはJ3≧j≧0を満たす整数、J3はr≧J3≧0を満たす整数とする。)が無限遠点Oである場合には、j=J3の参照点Pc(j)を上記楕円曲線E/GF(p)上の無限遠点Oではない任意の点P’に変換すると共に、J3≧1である場合にはJ3−1≧j≧0の各参照点Pc(j)を点−P’に変換する第二参照点列変換手段、をさらに備え、
    上記メイン計算手段は、上記展開式の各式P c(j)(j=0,…,r)に、上記参照して求まった参照点Pc(j)、又は、上記参照して求まった参照点Pc(j)が上記第一参照点列変換手段又は上記第二参照点列変換手段により変換された場合には上記変換された点、をそれぞれ代入した式を、楕円2倍算と楕円加算とを交互に行うことにより計算し、その計算結果に点−P’を加算する手段である、
    ことを特徴とする楕円曲線暗号演算装置。
  2. pを2以上の素数とする有限体GF(p)のm次拡大体であるGF(p)上で定義された楕円曲線E/GF(p)上のベースポイントPのスカラーk倍算を行う楕円曲線暗号演算方法であって、
    事前計算テーブル生成手段が、上記ベースポイントPを基にしてフロベニウス写像φを用いた式として定義される、楕円曲線E/GF(p)上の、無限遠点Oを含む2個の参照点P(u=0,1,…,2−2,2−1)
    Figure 0004861272

    をそれぞれ求めて、式Σi=0 m−1φ(P)と参照点Pとを各uごとに対応させた事前計算テーブルを生成する事前計算テーブル生成ステップと、
    φ進展開手段が、rをlog(p−1)の整数部分以上の整数として、上記ベースポイントPのスカラーk倍算k×Pを、非負整数の展開係数を用いてφ進展開して、該非負整数の展開係数をバイナリ展開することにより得られる展開式
    Figure 0004861272

    を満たすcij(i=0,…m−1,j=0,…,r)を求めるφ進展開ステップと、
    参照点列生成手段が、上記求まったcijから定まる各式P c(j)に対応する参照点Pc(j)を上記生成された事前演算テーブルを参照してそれぞれ求める参照点列生成ステップと、
    第一参照点列変換手段が、上記参照して求まった参照点Pc(j)の列{Pc(r),Pc(r−1),…,Pc(1),Pc(0)}(以下、参照点列とする。)の中の1つまたは連続する複数の参照点Pc(j)(jはJ2≧j≧J1を満たす整数、J2,J1はr≧J2≧J1≧1を満たす整数、Pc(J1−1)≠Oとする。)が無限遠点Oである場合には、j=J2の参照点Pc(j)を点Pc(J1−1)に変換すると共に、J2−1≧j≧J1−1の各参照点Pc(j)を点−Pc(J1−1)に変換する第一参照点列変換ステップと、
    メイン計算手段が、上記展開式の各式P c(j)(j=0,…,r)に、上記参照して求まった参照点Pc(j)、又は、上記参照して求まった参照点Pc(j)が上記第一参照点列変換ステップにより変換された場合には上記変換された点、をそれぞれ代入した式を、楕円2倍算と楕円加算とを交互に行うことにより計算するメイン計算ステップと、
    を有し
    二参照点列変換手段が、上記参照点列の中の1つまたは連続する複数の参照点Pc(j)(jはJ3≧j≧0を満たす整数、J3はr≧J3≧0を満たす整数とする。)が無限遠点Oである場合には、j=J3の参照点Pc(j)を上記楕円曲線E/GF(p)上の無限遠点Oではない任意の点P’に変換すると共に、J3≧1である場合にはJ3−1≧j≧0の各参照点Pc(j)を点−P’に変換する第二参照点列変換ステップ、をさらに有し、
    上記メイン計算ステップは、上記展開式の各式P c(j)(j=0,…,r)に、上記参照して求まった参照点Pc(j)、又は、上記参照して求まった参照点Pc(j)が上記第一参照点列変換ステップ又は上記第二参照点列変換ステップにより変換された場合には上記変換された点、をそれぞれ代入した式を、楕円2倍算と楕円加算とを交互に行うことにより計算し、その計算結果に点−P’を加算するステップである、
    ことを特徴とする楕円曲線暗号演算方法。
  3. 請求項1に記載の楕円曲線暗号演算装置の各手段としてコンピュータを機能させるための楕円曲線暗号演算装置プログラム。
JP2007225302A 2007-08-31 2007-08-31 楕円曲線暗号演算装置、方法、プログラム Active JP4861272B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007225302A JP4861272B2 (ja) 2007-08-31 2007-08-31 楕円曲線暗号演算装置、方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007225302A JP4861272B2 (ja) 2007-08-31 2007-08-31 楕円曲線暗号演算装置、方法、プログラム

Publications (2)

Publication Number Publication Date
JP2009058712A JP2009058712A (ja) 2009-03-19
JP4861272B2 true JP4861272B2 (ja) 2012-01-25

Family

ID=40554510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007225302A Active JP4861272B2 (ja) 2007-08-31 2007-08-31 楕円曲線暗号演算装置、方法、プログラム

Country Status (1)

Country Link
JP (1) JP4861272B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010164904A (ja) * 2009-01-19 2010-07-29 Fujitsu Ltd 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3145368B2 (ja) * 1998-09-03 2001-03-12 日本電信電話株式会社 楕円曲線演算装置、演算方法及びその方法を実施するプログラムを記録した記録媒体
US7602907B2 (en) * 2005-07-01 2009-10-13 Microsoft Corporation Elliptic curve point multiplication

Also Published As

Publication number Publication date
JP2009058712A (ja) 2009-03-19

Similar Documents

Publication Publication Date Title
WO2006054559A1 (ja) 暗号処理演算装置
JP6629466B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
US8458478B2 (en) Signature generating apparatus, signature verifying apparatus, and methods and programs therefor
WO2012090284A1 (ja) 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法、剰余演算プログラム、演算装置のゼロ判定方法およびゼロ判定プログラム
JP5328993B2 (ja) 署名生成装置及び署名生成方法及び記録媒体
JP2010049215A (ja) パラメータ生成装置、暗号処理システム、方法およびプログラム
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
JPWO2006030496A1 (ja) 楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム
JP4861272B2 (ja) 楕円曲線暗号演算装置、方法、プログラム
JP3833412B2 (ja) 有限体演算における表現データ生成装置および方法
JP2018205511A (ja) パラメータ変換方法、パラメータ変換装置、パラメータ変換プログラム、ペアリング演算方法、ペアリング演算装置、及びペアリング演算プログラム
JP4960894B2 (ja) 楕円曲線の点圧縮装置、楕円曲線の点展開装置、それらの方法及びプログラム
JP2004163687A (ja) 楕円曲線暗号装置、楕円曲線暗号プログラム
JP5300373B2 (ja) 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム
JP2020509407A (ja) 暗号アプリケーションのための素数を生成する方法
JP6067596B2 (ja) ペアリング演算装置、マルチペアリング演算装置、プログラム
JP4184120B2 (ja) 楕円曲線上スカラー倍演算装置、及び楕円曲線上スカラー倍演算プログラム
JP5354914B2 (ja) 暗号処理装置及び復号処理装置及びプログラム
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
JP5355263B2 (ja) 鍵共有装置、鍵共有方法及びプログラム
JP2010008883A (ja) 暗号用演算装置、暗号用演算方法及びプログラム
JP4802228B2 (ja) 鍵生成装置及びプログラム
JP5791562B2 (ja) 圧縮関数演算装置、圧縮関数演算方法、およびプログラム
JP4752176B2 (ja) 一方向性関数演算方法及び装置及びプログラム
JP5010508B2 (ja) 楕円曲線暗号演算装置、方法及びプログラム並びに楕円曲線暗号演算システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090729

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110927

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111104

R150 Certificate of patent or registration of utility model

Ref document number: 4861272

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

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350