JP4861272B2 - 楕円曲線暗号演算装置、方法、プログラム - Google Patents
楕円曲線暗号演算装置、方法、プログラム Download PDFInfo
- 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
Links
Images
Description
を満たす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 m )上の無限遠点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’を加算する。
図1,2を参照して、この発明の一実施例である楕円曲線暗号演算装置10について説明をする。図1は、楕円曲線暗号演算装置10の機能構成を例示する図である。図1に例示するように、楕円曲線暗号演算装置10は、記憶部1、事前計算テーブル生成部2、事前計算テーブル記憶部3、φ進展開部4、参照点列生成部5、第一参照点列変換部6、メイン計算部8からなる。図2は、楕円曲線暗号演算装置10の処理の流れを例示するフローチャートである。
E/GF(pm)={(x,y)∈GF(pm)2|y2=x3+ax+b}∪O
と表した場合のa,b∈GF(pm)のことである。ただし、a,bは4a3+27b2≠0の関係を満たす。
事前計算テーブル生成部2は、入力されたベースポイントPを基にしてフロベニウス(Frobenius)写像φを用いて下記の展開式により定義される、楕円曲線E/GF(pm)上の無限遠点Oを含む2m個の参照点Pu(u=0,1,…,2m−2,2m−1)を求める。すなわち、式Σi=0 m−1uiφi(P)に対応する参照点Puを各uごとにそれぞれ求める。その際必要に応じて、記憶部1から有限体パラメータである標数p及び拡大次数m、楕円パラメータEが読み込まれる。
P1=φ0(P)=P
P2=φ1(P)=φ(P)
P3=φ1(P)+φ0(P)=φ(P)+P
P4=φ2(P)=φ(φ(P))=φ(P2)
P5=φ2(P)+φ0(P)=φ(P2)+P
P6=φ2(P)+φ1(P)=φ(φ1(P)+φ0(P))=φ(P3)
P7=φ2(P)+φ1(P)+φ0(P)=−φ4(P)−φ3(P)+φ4(P)+φ3(P)+φ2(P)+φ1(P)+φ0(P)=−φ4(P)−φ3(P)=−φ3(φ(P)+P)=−φ3(P3)
…
P30=φ4(P)+φ3(P)+φ2(P)+φ1(P)=φ4(P)+φ3(P)+φ2(P)+φ1(P)+φ0(P)−φ0(P)=−φ0(P)=−P
P31=φ4(P)+φ3(P)+φ2(P)+φ1(P)+φ0(P)=O
P6の式変形において、φ(P+Q)=φ(P)+φ(Q)という上記したフロベニウス写像φの性質を利用している。また、P7,P30,P31の式変形において、Σi=0 5−1φi(P)=φ4(P)+φ3(P)+φ2(P)+φ1(P)+φ0(P)=Oという上記したフロベニウス写像φの性質を利用している。
φ進展開部4は、ベースポイントPのスカラーk倍算k×Pを、非負整数の展開係数を用いてφ進展開して、該非負整数の展開係数をバイナリ展開することにより得られる展開式
cijを求めるまでの過程を以下に述べる。
x0+y0φ=c0+(x1+y1φ)φ
c0≡k(mod p), −(p−1)/2≦c0≦(p−1)/2
と変換する。φが特性方程式φ2−tφ+p=0を満たすことを用いると、x1,y1は、
x1=y0+t((x0−c0)/p)
y1=−(x0−c0)/p
と表される。特性方程式に現れるtは楕円曲線に固有の値(トレース)であり、♯E(GF(pm))=p+1−tを満たす。
xi+yiφ=ci+(xi+1+yi+1φ)φ
ci≡k(mod p), −(p−1)/2≦ci≦(p−1)/2
xi=yi+t((xi−ci)/p)
yi=−(xi−ci)/p
上記の関係が成立する。これらの関係をxi=0,yi=0となるまで繰り返し用いることにより、各展開係数ciを求めることができる(例えば、特許文献1参照。)。
i=m+j(0≦j≦m−1)なるiに対して、φi=φj(φmP)=φjP
i=2m+j(0≦j≦3)なるiに対して、φi=φj(φm(φmP))=φjP
が成り立つ。したがって、ci=ci+ci+m+ci+2mと書き直せば、Σi=0 2m+3ciφiP=Σi=0 m−1ciφiPと変形できる。
参照点列生成部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に送られる。
第一参照点列変換部6は、参照点列の中1つ又は連続する参照点Pc(j)が無限遠点Oである場合には、それらの参照点と、それらの参照点の下位側に隣接する参照点とを次のように無限遠点O以外の点に置き換える。
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))に(P3,P0(=O),P0(=O),P0(=O),P7,P0(=O),P0(=O),P12,P6)がそれぞれ対応させられている場合を例に挙げて説明をする。
メイン計算部8は、上記(1)式の各式P♯ c(j)(j=0,…,r)に、事前計算テーブルを参照することにより求まった参照点Pc(j)、又は、参照点Pc(j)が第一参照点列変換部6により変換された場合にはその変換された点を代入した式を計算することにより、k×Pを計算する。すなわち、上記(1)式の各式P♯ c(j)(j=0,…,r)に最終的に対応する点を代入した式を計算することにより、k×Pを計算する。
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を解読するための情報を得ることはできなくなる。
Σi=0 a−12i=2a−1
という等比数列の和の公式がある。これを式変形すると、
2a−(2a−1+2a−2+…+2+1)=1
という関係が得られる。したがって、楕円曲線E/G(pm)上の点P”についても、
2aP”−(2a−1+2a−2+…+2+1)P”=P”
という関係が成立する。このため、第一参照点列変換部6により参照点を変換してもk×Pの計算結果が変わらないのである。
第二実施例による楕円曲線暗号演算装置は、第一参照点列変換部6により変換された参照点列をさらに変換する第二参照点列変換部7を備え、メイン計算部8が第二参照点列変換部7による参照点列の変換によりk×Pの計算結果が変化しないように補正をする点で、第一実施例による楕円曲線暗号演算装置10とは異なる。他の点については、第一実施例による楕円曲線暗号演算装置10と同様であるため重複説明を省略する。以下、第一実施例と異なる部分について説明をする。
上記説明したように、楕円曲線E/G(pm)上の点P”について、
2aP”−(2a−1+2a−2+…+2+1)P”=P”
という関係が成立する。このため、第二参照点列変換部7により参照点を変換した場合のk×Pの計算結果は、第二参照点列変換部7により参照点を変換しなかった場合のk×Pの計算結果と比較して+P’だけずれる。このため、第二参照点列変換部7により参照点を変換するとk×Pの計算結果に−P’を加算する必要があるのである。
有限体パラメータp,m、楕円パラメータEに関わらず、常に、P0=O,P1=P,P2^m−2=−P,P2^m−1=Oである。このため、事前計算テーブル生成部2は、これらの参照点の全部又は一部については事前計算をしなくてもよい。この場合の事前計算テーブルは、これらの参照点の全部又は一部以外の各参照点と、式Σi=0 m−1uiφi(P)とをそれぞれ対応付けたものとなる。この場合、参照点列生成部5は、これらの参照点の全部又は一部を求めるために事前計算テーブルを参照しないで、P0=O,P1=P,P2^m−2=−P,P2^m−1=Oであるとして参照点列を生成する。
−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
Claims (3)
- pを2以上の素数とする有限体GF(p)のm次拡大体であるGF(pm)上で定義された楕円曲線E/GF(pm)上のベースポイントPのスカラーk倍算を行う楕円曲線暗号演算装置であって、
上記ベースポイントPを基にしてフロベニウス写像φを用いた式として定義される、楕円曲線E/GF(pm)上の、無限遠点Oを含む2m個の参照点Pu(u=0,1,…,2m−2,2m−1)
をそれぞれ求めて、式Σi=0 m−1uiφi(P)と参照点Puとを各uごとに対応させた事前計算テーブルを生成する事前計算テーブル生成手段と、
rをlog2(p−1)の整数部分以上の整数として、上記ベースポイントPのスカラーk倍算k×Pを、非負整数の展開係数を用いてφ進展開して、該非負整数の展開係数をバイナリ展開することにより得られる展開式
を満たす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(pm)上の無限遠点Oではない任意の点P’に変換すると共に、J3≧1である場合にはJ3−1≧j≧0の各参照点Pc(j)を点−P’に変換する第二参照点列変換手段、をさらに備え、
上記メイン計算手段は、上記展開式の各式P♯ c(j)(j=0,…,r)に、上記参照して求まった参照点Pc(j)、又は、上記参照して求まった参照点Pc(j)が上記第一参照点列変換手段又は上記第二参照点列変換手段により変換された場合には上記変換された点、をそれぞれ代入した式を、楕円2倍算と楕円加算とを交互に行うことにより計算し、その計算結果に点−P’を加算する手段である、
ことを特徴とする楕円曲線暗号演算装置。 - pを2以上の素数とする有限体GF(p)のm次拡大体であるGF(pm)上で定義された楕円曲線E/GF(pm)上のベースポイントPのスカラーk倍算を行う楕円曲線暗号演算方法であって、
事前計算テーブル生成手段が、上記ベースポイントPを基にしてフロベニウス写像φを用いた式として定義される、楕円曲線E/GF(pm)上の、無限遠点Oを含む2m個の参照点Pu(u=0,1,…,2m−2,2m−1)
をそれぞれ求めて、式Σi=0 m−1uiφi(P)と参照点Puとを各uごとに対応させた事前計算テーブルを生成する事前計算テーブル生成ステップと、
φ進展開手段が、rをlog2(p−1)の整数部分以上の整数として、上記ベースポイントPのスカラーk倍算k×Pを、非負整数の展開係数を用いてφ進展開して、該非負整数の展開係数をバイナリ展開することにより得られる展開式
を満たす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(pm)上の無限遠点Oではない任意の点P’に変換すると共に、J3≧1である場合にはJ3−1≧j≧0の各参照点Pc(j)を点−P’に変換する第二参照点列変換ステップ、をさらに有し、
上記メイン計算ステップは、上記展開式の各式P♯ c(j)(j=0,…,r)に、上記参照して求まった参照点Pc(j)、又は、上記参照して求まった参照点Pc(j)が上記第一参照点列変換ステップ又は上記第二参照点列変換ステップにより変換された場合には上記変換された点、をそれぞれ代入した式を、楕円2倍算と楕円加算とを交互に行うことにより計算し、その計算結果に点−P’を加算するステップである、
ことを特徴とする楕円曲線暗号演算方法。 - 請求項1に記載の楕円曲線暗号演算装置の各手段としてコンピュータを機能させるための楕円曲線暗号演算装置プログラム。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010164904A (ja) * | 2009-01-19 | 2010-07-29 | Fujitsu Ltd | 楕円曲線演算処理装置、楕円曲線演算処理プログラム及び方法 |
Family Cites Families (2)
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 |
-
2007
- 2007-08-31 JP JP2007225302A patent/JP4861272B2/ja active Active
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 |