JP4621162B2 - 有限可換群演算方法、装置およびそのプログラム - Google Patents

有限可換群演算方法、装置およびそのプログラム Download PDF

Info

Publication number
JP4621162B2
JP4621162B2 JP2006114046A JP2006114046A JP4621162B2 JP 4621162 B2 JP4621162 B2 JP 4621162B2 JP 2006114046 A JP2006114046 A JP 2006114046A JP 2006114046 A JP2006114046 A JP 2006114046A JP 4621162 B2 JP4621162 B2 JP 4621162B2
Authority
JP
Japan
Prior art keywords
calculation
finite
pseudo
inverse element
coordinate system
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
JP2006114046A
Other languages
English (en)
Other versions
JP2007286380A (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 JP2006114046A priority Critical patent/JP4621162B2/ja
Publication of JP2007286380A publication Critical patent/JP2007286380A/ja
Application granted granted Critical
Publication of JP4621162B2 publication Critical patent/JP4621162B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、有限可換群の元の群演算を行う技術に関する。
有限体上定義された代数曲線(以下、特に断りが無い限り、単に代数曲線と云えば、有限体上定義された代数曲線を云うものとする。)を用いた公開鍵暗号やデジタル署名などでは、代数曲線上で定義された有限可換群の元の群演算が行われる。例えば、数論的問題を解くことに要する計算量を安全性の根拠とする暗号アルゴリズムを代数曲線上に構築する場合、このような数論的問題として離散対数問題がある。離散対数問題は、Gを有限可換群、α、βをGの元、NをGの位数とした場合、α=nβを満たすn∈Zを求める問題である。この例ではα=nβ=β+β+・・・+β(βをn回加算するスカラー倍演算である。)なる演算が群演算で表現される。そして、この群演算は、代数曲線が定義される有限体の演算で構成される。
理解を容易にするため、具体的な一例を挙げて説明する。
有限体上定義された代数曲線の一例として有限体GF(q)上定義された楕円曲線を選択する〔qは素数あるいは素数の冪、mはm>1の整数とする。〕。この楕円曲線は種数1の超楕円曲線であり、有理点集合E(GF(q))は有限可換群になる〔式(1)参照。但し、Affine座標系のワイエルシュトラス形式で、標数q≠2且つq≠3且つ4a+27b≠0とし、点Oは無限遠点とする。〕。
Figure 0004621162
このとき楕円離散対数問題は、P∈E(GF(q))、Q∈E(GF(q))、k∈Z/qZに対して、Q=kP=P+P+・・・+P(Pをk回加算する楕円スカラー倍演算である。)を満たすkを求める問題になる。
楕円スカラー倍演算は、一般に楕円曲線上の点の加算および2倍算から構成される。楕円曲線上の点の加算および2倍算は、それぞれ曲線が定義される有限体の四則演算から構成される。
点R(x,y)、点R(x,y)および点R(x,y)を楕円曲線上の点とする。x=x且つy=−yならばR+R=O(無限遠点)とするが、そうでない場合には、R+R=Rとする。このとき式(2)が成立する。P≠Qの場合が楕円加算公式、P=Qの場合が楕円2倍算公式である。
Figure 0004621162
Affine座標系における楕円加算公式のアルゴリズム(演算手順)の一例およびその演算コストを図1に示す。入力:(x,y)∈GF(q,(x2,y2)∈GF(q、出力:(x,y)∈GF(qとして、図左側に実際の演算内容を示している。また、Iを有限体上逆元の演算コスト、Mを有限体上乗算の演算コスト、Sを有限体上自乗の演算コストとして、図右側に演算内容に対応した演算コストの見積もりを示している。なお、有限体上加算または減算または1/2倍算の演算コストは、有限体上逆元の演算コスト、乗算の演算コスト、自乗の演算コストに比して十分に小さいため無視できるので、図に表記していないことに留意すること。また、演算コストの見積もりでは、演算内容に用いる値がそれ以前の演算内容で計算されている場合には、当該値を改めて計算しなおす必要が無いことに留意しなければならない。図1で示した例で説明すると、最初の演算ステップでΛを計算し、2番目および3番目の演算ステップでΛを用いた計算をしているが、最初の演算ステップで計算したΛをメモリなどの記憶手段に格納しておき、2番目および3番目の演算ステップでΛを記憶手段から読み込むことでΛの再計算を避けることができる。
同様に、Affine座標系における楕円2倍算公式のアルゴリズム(演算手順)の一例およびその演算コストを図2に示す。但し、入力:(x,y)∈GF(q、出力:(x,y)∈GF(qである。演算コストの記号は既述のとおりである。
図1および図2から明らかなように、上記楕円加算を1回実行するのに有限体上の逆元1回、乗算2回、自乗1回の演算が必要であり、上記楕円2倍算を1回実行するのに有限体上の逆元1回、乗算2回、自乗2回の演算が必要である。
有限体上の逆元の演算は、一般には有限体上の乗算に比して実装が複雑で、速度も遅いという問題がある。そこで、楕円曲線上の点を(x,y)という2つの有限体の元ではなく3つ以上の有限体の元によって表現する事によって逆元演算を回避する方法が様々に考案されている。つまり、Affine座標系で表現された楕円曲線を射影座標系で表現された楕円曲線に変換するのである。
例えば射影座標系の一つであるJacobian座標系は、有限体の3つの元による表現手法であり、Affine座標(x,y)はZ≠0なる同じ有限体上の任意のZによってJacobian座標(xZ,yZ,Z)に変換できる。逆にZ≠0なるJacobian座標(X,Y,Z)が与えられたとき(X/Z,Y/Z)によっていつでも対応するAffine座標を求めることが出来る(非特許文献1参照。)。
Jacobian座標系における楕円加算公式のアルゴリズム(演算手順)の一例およびその演算コストを図3に示す。但し、入力:(X,Y,Z)∈GF(q,(X,Y,Z)∈GF(q、出力:(X,Y,Z)∈GF(qである。演算コストの記号は既述のとおりである。
同様に、Jacobian座標系における楕円2倍算公式のアルゴリズム(演算手順)の一例およびその演算コストを図4に示す。但し、入力:(X,Y,Z)∈GF(q、出力:(X,Y,Z)∈GF(qである。演算コストの記号は既述のとおりである。
Jacobian座標系では、一般の楕円加算を1回実行するのに有限体上の乗算12回、自乗4回の演算が必要であり、Z=1の場合では楕円加算を1回実行するのに有限体上の乗算8回、自乗3回の演算が必要である。また、一般の楕円2倍算を1回実行するのに有限体上の乗算4回、自乗6回の演算が必要であり、a=−3の場合では楕円2倍算を1回実行するのに有限体上の乗算4回、自乗4回の演算が必要である。
上記の楕円加算の例で説明すれば、Affine座標系ではΛの算出に逆元演算を要していた〔Λ=(y−y)/(x−x)=(y−y)×(x−x−1である。〕。仮に、Affine座標系でのΛの分子を被除数Λ=y−yとし、Affine座標系でのΛの分母を除数Λ=x−xとし、それぞれ独立に演算するとしても、Affine座標系では除数Λの逆元の演算を避けることができない〔Λ=Λ×Λ −1である。〕。
これに対してJacobian座標系では、Affine座標系でのΛを座標変換したものの分子相当Y′−Y′を被除数Λとし、Affine座標系でのΛを座標変換したものの分母相当X′−X′を除数Λとし、それぞれ独立に演算するとし、除数Λを拡大座標〔射影座標系の座標のうちAffine座標系の座標を除く座標であるとする。Jacobian座標系では第3座標Zに相当する。〕に関連付けることで、除数Λの逆元演算を回避している。なお、Affine座標系でのΛをJacobian座標系へ変換したΛJacobianは、適当な関数fをもってΛJacobian=(Y′−Y′)/(X′−X′)×f(Z,Z)と表されるので、Y′−Y′を「分子相当」、X′−X′を「分母相当」と呼んでいる。
このことは上記の楕円2倍算の例でも同様であり、また、Jacobian座標系だけでなくProjective座標系やChudnovsky座標系などの射影座標系でも同様である〔但し、常にΛ=Y′−Y′、Λ=X′−X′という趣旨ではない。〕。
上記の各例から分かるように、Jacobian座標系では、Affine座標系の場合に比して逆元演算を回避できるものの、乗算や自乗の演算コストが増加する。
H. Cohen, A. Miyaji ,and T. Ono,"Efficient elliptic curve exponentiation using mixed coordinates", Advances in Cryptology-Proceedings of ASIACRYPT ’98, Lecture Notes in Computer Science,Springer-Verlag,1514(1998),51-65.
有限体上定義された楕円曲線の楕円加算および楕円2倍算で例示説明したが、一般的には、有限体上定義された代数曲線上の点が成す有限可換群の元の群演算では、Affine座標系において有限体上の逆元演算が不可避である。これに対して、代数曲線を射影座標系に変換することで群演算に表れる有限体上の逆元演算を回避することができる。
しかし、このような回避方法では、有限体上の逆元演算を回避することはできても乗算や自乗の演算コストが大きくなるという問題があった。
そこで本発明は、上記の問題点に鑑み、有限体上定義された代数曲線上の点が成す有限可換群の元の群演算(有限可換群演算)であって、逆元演算を回避しつつ演算や自乗の演算コストを低減した有限可換群演算方法、装置、プログラムを提供することを目的とする。
上記課題を解決するために、本発明は、次のような構成とする。即ち、有限体GF(q)〔但し、qは素数または素数の冪、mはm>1の整数とする。〕の元pに対して、N(p)=v(p)×p〔但し、N(p)は有限体GF(q)の部分体の元とし、v(p)は有限体GF(q)の元とする。〕を満たす擬似逆元v(p)を算出する擬似逆元演算手段と、補擬似逆元N(p)を算出する補擬似逆元演算手段とを備える。そして、有限体GF(q)上定義された代数曲線〔射影座標系で表現されるとする。〕上の点が成す有限可換群の元の群演算を、有限体GF(q)上の除算に表れる除数および被除数を独立に演算するとし、除数を拡大座標〔上記射影座標系の座標のうちAffine座標系の座標を除く座標であるとする。〕に関連付けることで、上記群演算における除数の逆元演算を回避して行う有限可換群演算であって、擬似逆元演算手段が擬似逆元を算出し、補擬似逆元演算手段が補擬似逆元を算出して、擬似逆元を被除数に含め、補擬似逆元を除数する。
このように、有限体GF(q)の元である擬似逆元v(p)および有限体GF(q)の部分体の元である補擬似逆元N(p)を算出して、擬似逆元を被除数に含め、補擬似逆元を除数とするのである。
また、射影座標系で表現された代数曲線上の点の拡大座標を有限体GF(q)の部分体の元で与えるとしてもよい。
これは補擬似逆元N(p)の属する体によって拡大座標の元を与えることができることを意味し、有限体GF(q)の部分体上での演算を可能とする。つまり、部分体上の演算コストで演算することができる。
また、補擬似逆元N(p)は、有限体GF(p)上の元pのノルムであるとしてもよい。そして、ノルムとして補擬似逆元N(p)を式(r1)で表し、擬似逆元v(p)を式(r2)で表すとしてもよい。
有限体GF(p)上の元pのノルムは、有限体GF(p)の部分体の元を与えることができる。
Figure 0004621162
式(r2)で表される擬似逆元v(p)の各項pθ〔但しθ=qとする。〕をフロベニウス写像によって求めるとしてもよく、式(r2)で表される擬似逆元v(p)を式(r3)と表現し、式(r3)に表れるpを加算連鎖によって求めるとしてもよい。
Figure 0004621162
群演算を加算演算および/または2倍演算とすると、例えばスカラー倍演算は加算演算および/または2倍演算で構成されるから、効率の良いスカラー倍演算の実現に寄与する。
また、本発明の有限可換群演算装置としてコンピュータを機能させる有限可換群演算プログラムによって、コンピュータを有限可換群演算装置として作動処理させることができる。
本発明によれば、有限体上定義された代数曲線上の点が成す有限可換群の元の群演算(有限可換群演算)において、有限体GF(q)の元である擬似逆元v(p)および有限体GF(q)の部分体の元である補擬似逆元N(p)を算出して、擬似逆元v(p)を被除数に含め、補擬似逆元N(p)を除数とする。有限体GF(q)の部分体の元である補擬似逆元N(p)の算出は、有限体GF(q)上の乗算や自乗の演算コストよりも小さい。また、擬似逆元v(p)の算出は、有限体GF(q)上の逆元の演算コストよりも小さく、さらに効率の良い演算方法も存在する。従って、逆元演算を回避しつつ演算や自乗の演算コストを低減した有限可換群演算が可能である。
《理論》
部分体を持つ有限体には擬似逆元演算と呼ばれる演算を定義できる。
<擬似逆元演算>
擬似逆元演算とは、qを素数または素数の冪、mをm>1の整数として、有限体GF(q)上の元xに対してN(x)=x×v(x)なる(v(x),N(x))を出力する演算である。但し、v(x)は有限体GF(q)の元とし、N(x)は有限体GF(q)の部分体GF(ξ)の元とする。
ここでは、v(x)を擬似逆元、N(x)を補擬似逆元と呼ぶことにする。
擬似逆元v(x)および補擬似逆元N(x)を用いると、xの逆元x−1は、v(x)×N(x)−1で与えられる。換言すれば、逆元x−1は被除数v(x)を分子とし、除数N(x)を分母とした除算として与えられる。
このことに着眼すると、Jacobian座標系における楕円加算の例で説明すれば、被除数Λをv(X′−X′)×(Y′−Y′)とし、除数λをN(X′−X′)とし、それぞれ独立に演算するとし、除数λ、つまり補擬似逆元N(X′−X′)を拡大座標に関連付けることで、除数λの逆元演算を回避できることになる〔x=X′−X′と考えればよい。〕。このことは、Jacobian座標系における楕円2倍算の場合は勿論、他の射影座標系や代数曲線などでも同様である。但し、常にΛ=v(X′−X′)×(Y′−Y′)、λ=N(X′−X′)という趣旨ではない。例えば、Projective座標系の楕円2倍算の場合、λ=N(2Y)×zで与えられる。ただ、この場合でも、λ=N(2Y)、λ′=λ×zで与える構成としてもよく、このようにしても全体の演算コストは変わらない。要は、被除数Λにv(X′−X′)を含め、除数λをN(X′−X′)として、それぞれ独立に演算を行うとし、さらに、補擬似逆元である除数λを拡大座標に関連付けることで、除数λの逆元演算を回避するのである。
このような擬似逆元演算を用いた逆元演算回避手法の場合、従来の逆元演算回避手法に比較して、擬似逆元v(x)および補擬似逆元N(x)の演算コストが必要になる。擬似逆元演算には効率良く演算する方法が存在するので、その一例を説明する。
擬似逆元演算を効率良く演算する方法の一つに、例えばq乗写像(フロベニウス写像)を用いる方法がある。ここでは説明の便宜から、有限体GF(q)の部分体GF(ξ)を有限体GF(q)として説明する。
<q乗写像を用いた擬似逆元演算>
x∈GF(q)なるxに対して、式(3)で与えられるzをnormと呼ぶ。norm zは必ずz∈GF(q)となることが知られている。
Figure 0004621162
式(3)から式(4)を得る。
Figure 0004621162
式(4)をz=xyと看做せば、括弧部分がyに相当する。つまりyは式(5)で表される。このとき、zが補擬似逆元N(x)に相当し、yが擬似逆元v(x)に相当すると考えることができる。
Figure 0004621162
<norm>
norm zは一般にz∈GF(q)が保証されているので、z=xyの演算コストはGF(q)上の乗算や自乗の演算コストに比べて十分小さい。
<q乗写像>
通常、有限体GF(q)上の元xを表現するのに、有限体GF(q)上のm個の元x(0≦i<m)が用いられる。m個のx∈GF(q),(0≦i<m)の組をGF(q)上の元に対応させる代表的な方法は、m個のα∈GF(q),(0≦i<m)の組を使って、式(6)に示す対応を取ることである。
Figure 0004621162
このときα(0≦i<m)は、GF(q)とGF(q)とで1対1対応が取れるような組合せでなくてはならない。このα(0≦i<m)を基底と呼ぶ。
ところで二項定理によれば、式(7)が成立する。
Figure 0004621162
式(7)の右辺の各項の係数(q,i)は二項係数と呼ばれる定数で、i≠0かつi≠qの場合必ずqの倍数となる。a,b∈GF(q)のときは、qの整数倍は0と同値であるから(GF(q)の標数はqである。)、式(8)が成立する。
Figure 0004621162
更にc∈GF(q)なるcに関してc=cが成立する。一般にa∈GF(q),(0≦i<n)、c∈GF(q),(0≦i<n)とすると、式(9)が成立する。
Figure 0004621162
従って、α∈GF(q)、x∈GF(q)なるとき、式(6)で表されるxのq乗であるxは、式(10)で与えられる。
Figure 0004621162
従って事前に式(11)で与えられるcij∈GF(q)が計算してあれば、式(10)は式(12)に書き換えられるから、基底αを使ったxの表現Σj=0 m−1ijを求めることができる。
Figure 0004621162
即ち、x∈GF(q)を表現するベクトル(x)に行列(cij)を掛けるだけで、xを表現するベクトルが得られる。この演算コストは、一般にはGF(q)上の乗算1回分の演算コストにほぼ等しい。また、行列(cij,(n=2,3,…)を事前に求めておけば、行列(cijを掛けるだけでx〔但し、w=qとする。〕を表現するベクトルが得られる。あるいは、(cij-1を事前に求めておけば、(cij-1を掛けるだけでx1/qを表現するベクトルが得られる。従って、一般の整数nに対してxの演算コストは、一般にGF(q)上の乗算1回分の演算コストに等しい。
また、基底αの代表的な選び方として式(13)に示す2つの方法がある。但しβ、γは各々の方法でGF(q)とGF(q)とで1対1対応が取れるようなGF(q)上の元とする。
Figure 0004621162
このような基底を選択する場合に演算コストをさらに低減できることがある。例えば正規基底による方法の場合、基底αのq乗は式(14)に示す関係にあるから、行列(cij)は式(15)で与えられる。
Figure 0004621162
即ち、入力のm個のx∈GF(q),(0≦i<m)の順番を並び換えて出力するだけでxの演算が完了する。xの演算の場合も同様の並び換えのみで完了する。この並び換えの演算コストは、GF(q)上の乗算や自乗の演算コストに対して無視できる。
多項式基底による方法の場合、一般にはxの演算はGF(q)上の乗算の演算コストとほぼ等しいが、γとして特別なGF(q)上の元を選択することによって演算コストを低減できることがある。例えばγがω∈GF(q)に対してγ−ω=0なる関係を持つ場合、基底αのq乗は式(16)に示す関係にある。但し、記号[iq/m]は、iq/m以下の最大整数を表す。
Figure 0004621162
即ち、入力のm個のx∈GF(q),(0≦i<m)の各々にω[T]〔但し、T=iq/mとする。〕を掛けて順番を並び換えて出力するだけでxの演算が完了する。この演算コストも、GF(q)上の乗算や自乗の演算コストに対して無視できる。
<加算連鎖>
次に、式(5)で表されるyを効率良く計算する方法の一例を説明する。
yは式(17)に変形できる。
Figure 0004621162
ここで記号uを式(18)で定義する。
Figure 0004621162
このとき式(17)は式(19)に書き換えられ、xは式(20)のように計算することができる。
Figure 0004621162
式(20)のような演算を行う際、既述のとおりq乗演算はGF(q)上の乗算に比べ高速に演算可能であるから、演算の律速段階となるのはm−2回〔式(20)の右辺の×の個数に相当する。〕実行されるGF(q)上の乗算である。
ところで、例えばm−1=2だったとすると、uは式(21)のように分解して表すことができる。
Figure 0004621162
この場合、xを計算する方法として、例えば、式(22)のような演算方法を用いると、n回即ちlog(m−1)回のGF(q)上乗算でxを計算できる。
Figure 0004621162
このような計算方法は、たとえnが2の冪乗数でなかったとしても一般的に構成することが可能であり、一例として次のように構成することができる。
i、j、kを整数として整数(1=)n,・・・,n(=m−1)を式(23)で与える。この整数列n,・・・,nをm−1の(最適)加算連鎖と呼ぶ。
Figure 0004621162
m−1の(最適)加算連鎖を用いてq冪倍を含む(最適)加算連鎖を構成することができる。このq冪倍を含む(最適)加算連鎖は式(24)で与えられる。このとき式(25)が成立している。なお、式(24)のqの冪数nは式(23)のnに対応している。
Figure 0004621162
このq冪倍を含む(最適)加算連鎖を用いてxの計算を次のように実行することができる。まずm−1の(最適)加算連鎖n,・・・,nを与える。この(最適)加算連鎖n=n+n(j,k<i)におけるi、j、kの対応に従って、i=0,・・・,rに対して式(26)なる演算によってA,・・・,Aを求める。このとき式(27)が成立する。
Figure 0004621162
ここで、式(28)が成立するから、Aが求めるxとなる。
Figure 0004621162
m−1の最短の加算連鎖の長さL(m−1)は最悪でもL(m−1)≦2log(m−1)に抑えることができる。即ち、Aも最悪2log(m−1)回程度のGF(q)上の乗算で求めることができる。一般にxを効率良く求めたいならば、効率の良いm−1の加算連鎖を与えれば良い。下記参考文献1には1以上100以下の整数の加算回数に関する最適加算連鎖のTree図が掲載されている。そのような加算連鎖を用いることによって、xの計算を最適化できる。
(参考文献1) Knuth著, "The Art of Computer Programming", VOLUME 2 Seminumerical Algorithms Third Edition, p.465, Addison Wesley, ISBN:O-201-89684-2
ここでは擬似逆元演算を効率良く演算する方法の一つとして、例えばq乗写像を用いる方法を示したが、この方法以外にもユークリッドの互除法を用いた方法などもある。
以上の説明から帰納されることとして、有限体GF(q)の部分体の元である補擬似逆元zは、有限体GF(q)上の乗算や自乗の演算コストに比して十分に小さい演算コストで計算可能であることが云える。また、擬似逆元yについても、有限体GF(q)上の逆元の演算コストより小さく効率の良い演算コストで計算可能であることが云える。
さらに、有限体GF(q)の部分体の元である補擬似逆元を除数λとし、除数λを拡大座標に関連付けることから、拡大座標を有限体GF(q)の部分体の元で与えることができ、拡大座標を用いた計算について、その演算コストを低減することができる。
このことをJacobian座標系における楕円加算の例で説明すれば、Jacobian座標系の第3座標を有限体GF(q)の部分体GF(ξ)の元zで与えることができるということである。例えば従来手法におけるZ←ΛZ′なる演算はz←λz′に変更される。この場合、従来手法の場合において有限体GF(q)上乗算の演算コストであったのが、有限体GF(q)の部分体GF(ξ)上乗算の演算コストに変更される。有限体GF(q)の部分体GF(ξ)上乗算の演算コストは、有限体GF(q)上乗算の演算コストに比較して十分に小さい。従って、従来手法に比して演算コストを低減できる。また、例えば従来手法におけるX"←X′Λ なる演算はX"←X′λ に変更される。この場合、従来手法の場合において有限体GF(q)上の1回の乗算と1回の自乗の演算コストであったのが、有限体GF(q)の部分体GF(ξ)の元と有限体GF(q)の元との乗算1回および有限体GF(q)の部分体GF(ξ)上の自乗1回の演算コストに変更されるので、演算コストを低減できることになる。
このように、拡大座標を有限体GF(q)の部分体の元で与えることができることから拡大座標を用いる計算の演算コストも低減できる。
<具体例>
次に、具体例として、擬似逆元演算を用いたJacobian座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コストを図5に示す。但し、入力:(X,Y,z)∈GF(q×GF(ξ),(X,Y,z)∈GF(q×GF(ξ)、出力:(X,Y,z)∈GF(q×GF(ξ)である。また、既述の演算コストの記号に加え、Vを擬似逆元v(x)の演算コストとする。なお、補擬似逆元N(x)の演算コスト、GF(q)×GF(ξ)乗算の演算コスト、GF(ξ)上乗算の演算コスト、GF(ξ)上自乗の演算コスト、GF(ξ)上加算の演算コストはGF(q)上乗算コストMに比べて十分小さく無視できるため図に表記していないことに留意すること。
同様に、擬似逆元演算を用いたJacobian座標系における楕円2倍算公式のアルゴリズム(演算手順)の一例およびその演算コストを図6に示す。但し、入力:(X,Y,z)∈GF(q×GF(ξ)、出力:(X,Y,z)∈GF(q×GF(ξ)である。演算コストの記号は既述のとおりである。
擬似逆元v(x)は、例えば有限体GF(q)の次数mがm=5の場合、上記の(最適)加算連鎖の方法を用いることで、式(29)のようにして擬似逆元v(x)および補擬似逆元N(x)を得ることができるから、q乗写像3回とGF(q)上乗算2回で実行することができる。
Figure 0004621162
既述のとおり、例えば補擬似逆元としてnormを用いた場合には、q乗写像における基底を適切に選択しておくことでq乗写像の演算コストをGF(q)上乗算の演算コストに対して十分小さくすることができるから、m=5の場合、演算コストVは凡そ演算コスト2M相当としてよい。
図5および図6に示す演算コストから、擬似逆元演算を用いたJacobian座標系における楕円加算を1回実行するのにGF(q)上の擬似逆元1回、乗算2回、自乗1回の演算が必要であり、擬似逆元演算を用いたJacobian座標系における楕円2倍算を1回実行するのにGF(q)上の擬似逆元1回、乗算2回、自乗2回が必要であることがわかる。
次数m=5の場合、擬似逆元1回がおよそ乗算2回相当であったことを考えると、擬似逆元演算を用いたJacobian座標系における楕円加算を1回実行するのにおよそGF(q)上の乗算4回、自乗1回が必要であり、擬似逆元演算を用いたJacobian座標系における楕円2倍算を1回実行するのにおよそGF(q)上の乗算4回、自乗2回が必要であることになる。
これは従来のJacobian座標系おける演算コストに比べて、楕円加算に関してGF(q)上の乗算8回、自乗3回分が節約され、楕円2倍算に関してGF(q)上の自乗4回分が節約されたことを意味する。
以上では、具体例として擬似逆元演算を用いたJacobian座標系の場合を説明したが、その他の具体例として、Projective座標系およびChudnovsky座標系の場合の楕円加算および楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コストを示す。
図7にProjective座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コスト、図8に擬似逆元演算を用いたProjective座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コスト、図9にProjective座標系における楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コスト、図10に擬似逆元演算を用いたProjective座標系における楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コストを示す。
また、図11にChudnovsky座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コスト、図12に擬似逆元演算を用いたChudnovsky座標系における楕円加算のアルゴリズム(演算手順)の一例およびその演算コスト、図13にChudnovsky座標系における楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コスト、図14に擬似逆元演算を用いたChudnovsky座標系における楕円2倍算のアルゴリズム(演算手順)の一例およびその演算コストを示す。
なお、各図で下線付の箇所は、その前に1度計算結果が現れていて改めて計算する必要のない値を表す。例えば(a)Y←XX、(b)Z← なる演算手順ではYを求める時にXを計算しているため、これを記憶手段に保存しておき、Zを求める際にはXを改めて計算せずに保存していた値を使えばよい。
何れの場合においても、例えば次数m=5とした場合で明らかなとおり、従来手法に比較して、擬似逆元演算を用いた場合には乗算や自乗の演算コストが低減することがわかる。
《実施形態》
続いて、本発明の具体的な実施形態を説明するが、下記の点について留意しておかなくてはならない。即ち、以上の各座標系の例から明らかなように、具体的な実施形態は座標系によって変わりえる。また、楕円加算および楕円2倍算の例から明らかなように、群演算の種類によっても具体的な実施形態は変わりえる。もちろん、代数曲線の種類などによっても具体的な実施形態は変わりえる。さらに、群演算アルゴリズムも適宜に変更可能であるから、これに応じて具体的な実施形態は変わりえる。さらには、本発明をコンピュータで実施する場合、演算処理はCPUで行われるのが通常であるから、CPUに実装されている命令セット(例えばSIMD〔Single Instruction/Multiple Data〕型命令の有無)によっても具体的な実施形態は変わりえる。
従って、ここでは擬似逆元演算を用いた群演算の一例を具体的に示すという観点から、次の条件を設定して具体的な実施形態を説明することにする。
(条件)
1.有限体上定義された代数曲線を、有限体GF(q)〔qは素数あるいは素数の冪、mはm>1の整数とする。〕上定義された楕円曲線とする。
2.有限可換群は、上記楕円曲線の有理点集合E(GF(q))とする。
3.群演算は、楕円2倍算とする。
4.楕円2倍算公式は、Affine座標系のワイエルシュトラス形式において、標数q≠2且つq≠3且つ4a+27b≠0とした場合のもの、つまり式(2)でP=Qとした場合のものとする。
5.射影座標系は、Jacobian座標系とする。
要するに、図6に示したアルゴリズムを実行する実施形態とする。
実施形態で説明する有限可換群演算装置の細部においては、整数論における数値計算処理が必要となる場合があるが、整数論における数値計算処理自体は、公知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略する(この点の技術水準を示す整数論における数値計算処理が可能なソフトウェアとしては、例えばPARI/GP、KANT/KASHなどが挙げられる。PARI/GPについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉[平成18年4月12日検索]を参照のこと。KANT/KASHについては、例えばインターネット〈URL: http://www.math.tu-berlin.de/algebra/〉[平成18年4月12日検索]を参照のこと。)。
また、この点に関する文献として、参考文献2を挙げることができる。
(参考文献2) H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
実施形態について、図面を参照しながら説明する。
<有限可換群演算装置>
図15に例示するように、有限可換群演算装置(1)は、キーボードなどが接続可能な入力部(11)、液晶ディスプレイなどが接続可能な出力部(12)、CPU(Central Processing Unit;14)〔キャッシュメモリやレジスタ(19)などを備えていてもよい。〕、メモリであるRAM(Random Access Memory)(15)、ROM(Read Only Memory)(16)やハードディスクである外部記憶装置(17)、並びにこれらの入力部(11)、出力部(12)、CPU(14)、RAM(15)、ROM(16)、外部記憶装置(17)間のデータのやり取りが可能なように接続するバス(18)などを備えている。また必要に応じて、有限可換群演算装置(1)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
有限可換群演算装置(1)の外部記憶装置(17)には、有限可換群演算のためのプログラムおよびこのプログラムの処理において必要となるデータなどが保存記憶されている。また、これらのプログラムの処理によって得られるデータなどは、RAM(15)やレジスタ(19)などに適宜に保存記憶される。以下、演算結果やその格納領域のアドレスなどを記憶するRAM(15)やレジスタ(19)などの装置を単に「記憶部」と呼ぶことにする。
外部記憶装置(17)には、擬似逆元を算出するためのプログラム、補擬似逆元を算出するためのプログラム、有限体上乗算の演算結果を算出するためのプログラム、有限体上自乗の演算結果を算出するためのプログラム、有限体上加算あるいは減算あるいは1/2倍算の演算結果を算出するためのプログラムが保存記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。また、外部記憶装置(17)には、有限可換群の元Pの座標値(X,Y,z)および楕円曲線の係数aが保存記憶されているとする。
有限可換群演算装置(1)では、外部記憶装置(17)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じて記憶部(20)に読み込まれて、CPU(14)で解釈実行・処理される。この結果、CPU(14)が所定の機能(擬似逆元演算部、補擬似逆元演算部、乗算演算部、自乗演算部、加算減算半倍算演算部、制御部)を実現することで有限可換群演算が実現される。
<実施形態の有限可換群演算処理>
次に、図16〜図18を参照して、有限可換群演算装置(1)における有限可換群演算処理の流れを叙述的に説明する。なお、外部記憶装置(17)に保存された有限可換群の元Pの座標値(X,Y,z)および係数aは、制御部(190)の制御によって、予め記憶部(20)に読み込まれて保存されているとする。以後、「記憶部から○○を読み込む」旨の説明をした場合は、「記憶部において○○が格納されている所定の格納領域から○○を読み込む」ことを意味するとする。
制御部(190)は、下記のアルゴリズムの処理を実行する制御を行う。
[図6の1番目の演算ステップ]
Λ←v(2Y)・(3X +az )の演算を行う。この演算は、Λ←v(Y+Y)・{(X +X +X )+a・(z ・z )}なる演算と同じである〔但し、記号・は乗算を表す。以下同様。〕。ここでは、2Yを2・Yなる乗算で求めるのではなくY+Yなる加算で求め、3X を3・X なる乗算で求めるのではなくX +X +X なる加算で求め、z をz・z・z・zなる乗算で求めるのではなくz ・z あるいは(z なる演算で求めるなど、演算コストを低減する工夫が行われていることに留意しなければならない〔図6の2番目以降の演算ステップについても同様である。〕。
まず、自乗演算部(141)は、記憶部(20)からXを読み込んでX・Xなる演算を行ない〔1Sの演算コスト〕、この演算結果X を記憶部(20)の所定領域に格納する(ステップS1)。なお、図17右側には、各ステップの段階で記憶部(20)に格納されている値を示すことにする。但し、常に各ステップで得られた値を格納しなければならない趣旨ではなく、後の演算に用いる必要がない値は適宜の段階で記憶部(20)の格納領域から解放することができる。
また、自乗演算部(141)は、記憶部(20)からzを読み込んでz・zなる演算を行ない〔部分体上自乗の演算コスト〕、この演算結果z を記憶部(20)の所定領域に格納する(ステップS2)。
次に、加算減算半倍算演算部(142)は、記憶部(20)からYを読み込んでY+Yなる演算を行ない〔加算の演算コスト〕、この演算結果2Yを記憶部(20)の所定領域に格納する(ステップS3)。
また、加算減算半倍算演算部(142)は、記憶部(20)からX を読み込んでX +X なる演算を行ない〔加算の演算コスト〕、この演算結果2X を記憶部(20)の所定領域に格納する(ステップS4)。
さらに、加算減算半倍算演算部(142)は、記憶部(20)から2X を読み込んで2X +X なる演算を行ない〔加算の演算コスト〕、この演算結果3X を記憶部(20)の所定領域に格納する(ステップS5)。
次いで、自乗演算部(141)は、記憶部(20)からz を読み込んでz ・z なる演算を行ない〔部分体上自乗の演算コスト〕、この演算結果z を記憶部(20)の所定領域に格納する(ステップS6)。
さらに、自乗演算部(141)は、記憶部(20)から係数aおよびz を読み込んでa・z なる演算を行ない〔部分体上乗算の演算コスト〕、この演算結果az を記憶部(20)の所定領域に格納する(ステップS7)。
続いて、加算減算半倍算演算部(142)は、記憶部(20)から3X およびaz を読み込んで3X +az なる演算を行ない〔加算の演算コスト〕、この演算結果3X +az を記憶部(20)の所定領域に格納する(ステップS8)。
次に、擬似逆元演算部(143)は、記憶部(20)から2Yを読み込んで擬似逆元v(2Y)を算出し〔1Vの演算コスト〕、この結果v(2Y)を記憶部(20)の所定領域に格納する(ステップS9)。なお、擬似逆元v(2Y)の算出は既述のとおりである。例えば拡大体の次数m=5の場合であれば、式(29)に示したアルゴリズムで演算できる〔但し、式(29)のxを2Yに置換して理解すること。〕。
続いて、乗算演算部(144)は、記憶部(20)からv(2Y)および3X +az を読み込んでv(2Y)・(3X +az )なる演算を行ない〔1Mの演算コスト〕、この演算結果v(2Y)・(3X +az )を記憶部(20)の所定領域に格納する(ステップS10)。ここで得られた演算結果v(2Y)・(3X +az )がΛに相当することとなる。
[図6の2番目の演算ステップ]
λ←N(2Y)の演算を行う。この演算は、λ←N(Y+Y)なる演算と同じである。ここで留意しなければならないことは、演算Y+Yをする必要がないということである。何故なら、上記ステップS3で演算結果2Yを得ているからである。そこで、図6の2番目の演算ステップでは、次の演算を行えばよいことになる。
即ち、補擬似逆元演算部(145)は、記憶部(20)から2Yを読み込んで補擬似逆元N(2Y)を算出し〔補擬似逆元の演算コスト〕、この結果N(2Y)を記憶部(20)の所定領域に格納する(ステップS11)。なお、補擬似逆元N(2Y)の算出は既述のとおりである。例えば拡大体の次数m=5の場合であれば、式(29)に示したアルゴリズムで演算できる〔但し、式(29)のxを2Yに置換して理解すること。〕。ここで得られた演算結果N(2Y)がλに相当することとなる。
[図6の3番目以降の演算ステップ]
図6の3番目以降の演算ステップも、上記で説明した演算処理と同様にすればよい。つまり、3番目の演算ステップでは、z←λ・zなる演算を行う。4番目の演算ステップでは、X"←X・λ およびY"←Y・λ =Y・λ ・λなる演算を行う(λ は再計算する必要が無い。)。5番目の演算ステップでは、X←Λ −(X"+X")なる演算を行う。6番目の演算ステップでは、Y←Λ・(X"−X)−Y"なる演算を行う。これらの演算は何れも、自乗演算部(141)、加算減算半倍算演算部(142)、乗算演算部(144)によって実現される。各演算部の処理は、図6の1番目および2番目の演算ステップで説明したのと同様である(図17のステップS11以降は省略している。)。
次に、上記(条件)のうち条件3.を「群演算は、楕円加算とする。」に変更した場合の有限可換群演算処理について説明する。つまり、図5に示したアルゴリズムを実行する実施形態である。
図5の各演算ステップも、上記実施形態で説明した演算処理と同様にすればよい。
1番目の演算ステップでは、z′←z・zなる演算を行う。
2番目の演算ステップでは、X′←X・z およびY′←Y・z =Y・z ・zなる演算を行う(z は再計算する必要が無い。)。
3番目の演算ステップでは、X′←X・z およびY′←Y・z =Y・z ・zなる演算を行う(z は再計算する必要が無い。)。
4番目の演算ステップでは、Λ←v(X′−X′)・(Y′−Y′)なる演算を行う。この演算は、v(X′−X′)およびY′−Y′をそれぞれ求めて乗算する。
5番目の演算ステップでは、λ←N(X′−X′)なる演算を行う。
6番目の演算ステップでは、z←λ・z′なる演算を行う。
7番目の演算ステップでは、X"←X′・λ およびY"←Y′・λ =Y′・λ ・λなる演算を行う(λ は再計算する必要が無い。)。
8番目の演算ステップでは、X"←X′・λ なる演算を行う(λ は再計算する必要が無い。)。
9番目の演算ステップでは、X←Λ −(X"+X")なる演算を行う。
10番目の演算ステップでは、Y←Λ・(X"−X)−Y"なる演算を行う。
これらの演算は何れも、楕円2倍算を例とした実施形態で説明したのと同様に、自乗演算部(141)、加算減算半倍算演算部(142)、擬似逆元演算部(143)、乗算演算部(144)、補擬似逆元演算部(145)によって実現される。また、楕円加算を例としたこの実施形態での各演算部の処理も、楕円2倍算を例とした実施形態で説明したのと同様である。
図19に、擬似逆元演算を用いたJacobian座標系における楕円加算の有限可換群演算処理の処理フロー(全体)を示す。
以上の実施形態の他、本発明である有限可換群演算装置・方法は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記有限可換群演算装置・方法において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
また、上記有限可換群演算装置における処理機能をコンピュータによって実現する場合、有限可換群演算装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記有限可換群演算装置における処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、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)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、有限可換群演算装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
本発明は、有限体上定義された代数曲線暗号の演算などに有用である。
Affine座標における楕円加算のアルゴリズムの一例と演算コストを示した図。 Affine座標における楕円2倍算のアルゴリズムの一例と演算コストを示した図。 Jacobian座標における楕円加算のアルゴリズムの一例と演算コストを示した図。 Jacobian座標における楕円2倍算のアルゴリズムの一例と演算コストを示した図。 擬似逆元演算を用いたJacobian座標における楕円加算のアルゴリズムの一例と演算コストを示した図。 擬似逆元演算を用いたJacobian座標における楕円2倍算のアルゴリズムの一例と演算コストを示した図。 Projective座標における楕円加算のアルゴリズムの一例と演算コストを示した図。 擬似逆元演算を用いたProjective座標における楕円加算のアルゴリズムの一例と演算コストを示した図。 Projective座標における楕円2倍算のアルゴリズムの一例と演算コストを示した図。 擬似逆元演算を用いたProjective座標における楕円2倍算のアルゴリズムの一例と演算コストを示した図。 Chudnovsky座標における楕円加算のアルゴリズムの一例と演算コストを示した図。 擬似逆元演算を用いたChudnovsky座標における楕円加算のアルゴリズムの一例と演算コストを示した図。 Chudnovsky座標における楕円2倍算のアルゴリズムの一例と演算コストを示した図。 擬似逆元演算を用いたChudnovsky座標における楕円2倍算のアルゴリズムの一例と演算コストを示した図。 有限可換群演算装置のハードウェア構成例を示す図。 有限可換群演算装置の機能構成例を示す図。 有限可換群演算処理(擬似逆元演算を用いたJacobian座標系における楕円2倍算の例)の処理フロー(一部)および保存記憶されている演算結果を示す図。 有限可換群演算処理(擬似逆元演算を用いたJacobian座標系における楕円2倍算の例)の処理フロー(全体)を示す図。 有限可換群演算処理(擬似逆元演算を用いたJacobian座標系における楕円加算の例)の処理フロー(全体)を示す図。
符号の説明
1 有限可換群演算装置
141 自乗演算部
142 加算減算半倍算演算部
143 擬似逆元演算部
144 乗算演算部
145 補擬似逆元演算部
190 制御部

Claims (9)

  1. 有限体GF(q)〔qは素数または素数の冪、mはm>1の整数とする。〕上定義された代数曲線〔射影座標系で表現されるとする。〕上の点が成す有限可換群の元の群演算を、有限体GF(q)上の除算に表れる除数および被除数を独立に演算するとし、除数を拡大座標〔上記射影座標系の座標のうちAffine座標系の座標を除く座標〕に関連付けることで、上記群演算における除数の逆元演算を回避して行う有限可換群演算方法であって、
    有限可換群演算装置の擬似逆元演算手段が、有限体GF(q)の元pに対して、N(p)=v(p)×p〔但し、N(p)は有限体GF(q)の部分体の元とし、v(p)は有限体GF(q)の元とする。〕を満たす擬似逆元v(p)を算出する擬似逆元演算ステップと、
    有限可換群演算装置の補擬似逆元演算手段が、補擬似逆元N(p)を算出する補擬似逆元演算ステップとを有し、
    上記擬似逆元を上記被除数に含め、上記補擬似逆元を上記除数とする
    有限可換群演算方法。
  2. 射影座標系で表現された代数曲線上の点の拡大座標を有限体GF(q)の部分体の元で与える
    請求項1に記載の有限可換群演算方法。
  3. 上記補擬似逆元N(p)は、有限体GF(p)上の元pのノルムである
    請求項1または請求項2に記載の有限可換群演算方法。
  4. 上記補擬似逆元N(p)は式(c1)で表され、
    Figure 0004621162
    上記擬似逆元v(p)は式(c2)で表される
    Figure 0004621162
    請求項3に記載の有限可換群演算方法。
  5. 上記補擬似逆元演算手段が、式(c2)で表される擬似逆元v(p)の各項pθ〔但しθ=qとする。〕をフロベニウス写像によって求める
    請求項4に記載の有限可換群演算方法。
  6. 式(c2)で表される擬似逆元v(p)を式(c3)と表現し、
    Figure 0004621162
    上記補擬似逆元演算手段が、式(c3)に表れるpを加算連鎖によって求める
    請求項5に記載の有限可換群演算方法。
  7. 上記群演算は、加算演算および/または2倍演算である
    請求項1から請求項6のいずれかに記載の有限可換群演算方法。
  8. 有限体GF(q)〔qは素数または素数の冪、mはm>1の整数とする。〕上定義された代数曲線〔射影座標系で表現されるとする。〕上の点が成す有限可換群の元の群演算を、有限体GF(q)上の除算に表れる除数および被除数を独立に演算するとし、除数を拡大座標〔上記射影座標系の座標のうちAffine座標系の座標を除く座標〕に関連付けることで、上記群演算における除数の逆元演算を回避して行う有限可換群演算装置であって、
    有限体GF(q)の元pに対して、N(p)=v(p)×p〔但し、N(p)は有限体GF(q)の部分体の元とし、v(p)は有限体GF(q)の元とする。〕を満たす擬似逆元v(p)を算出する擬似逆元演算手段と
    擬似逆元N(p)を算出する擬似逆元演算手段とを備え、
    上記擬似逆元を上記被除数に含め、上記補擬似逆元を上記除数とする
    有限可換群演算装置。
  9. コンピュータに請求項1から請求項7のいずれかに記載の有限可換群演算方法を実行させるためのプログラム。
JP2006114046A 2006-04-18 2006-04-18 有限可換群演算方法、装置およびそのプログラム Active JP4621162B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006114046A JP4621162B2 (ja) 2006-04-18 2006-04-18 有限可換群演算方法、装置およびそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006114046A JP4621162B2 (ja) 2006-04-18 2006-04-18 有限可換群演算方法、装置およびそのプログラム

Publications (2)

Publication Number Publication Date
JP2007286380A JP2007286380A (ja) 2007-11-01
JP4621162B2 true JP4621162B2 (ja) 2011-01-26

Family

ID=38758200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006114046A Active JP4621162B2 (ja) 2006-04-18 2006-04-18 有限可換群演算方法、装置およびそのプログラム

Country Status (1)

Country Link
JP (1) JP4621162B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734841A (zh) * 2013-12-23 2015-06-24 恩智浦有限公司 用于进行ecc点倍的优化硬件架构和方法
US9900154B2 (en) 2013-12-23 2018-02-20 Nxp B.V. Optimized hardward architecture and method for ECC point addition using mixed affine-jacobian coordinates over short weierstrass curves
US9979543B2 (en) 2013-12-23 2018-05-22 Nxp B.V. Optimized hardware architecture and method for ECC point doubling using jacobian coordinates over short weierstrass curves

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL2015911B1 (en) * 2015-12-07 2017-06-28 Koninklijke Philips Nv Calculating device and method.

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284690A (ja) * 1999-01-25 2000-10-13 Matsushita Electric Ind Co Ltd 楕円曲線演算装置、楕円曲線位数計算装置、楕円曲線構成装置、楕円曲線応用装置、楕円曲線演算方法、楕円曲線位数計算方法、楕円曲線構成方法、楕円曲線演算プログラムを記録している記録媒体、楕円曲線位数計算プログラムを記録している記録媒体及び楕円曲線構成プログラムを記録している記録媒体
US20020062330A1 (en) * 2000-09-19 2002-05-23 Christof Paar Method for efficient computation of odd characteristic extension fields

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000284690A (ja) * 1999-01-25 2000-10-13 Matsushita Electric Ind Co Ltd 楕円曲線演算装置、楕円曲線位数計算装置、楕円曲線構成装置、楕円曲線応用装置、楕円曲線演算方法、楕円曲線位数計算方法、楕円曲線構成方法、楕円曲線演算プログラムを記録している記録媒体、楕円曲線位数計算プログラムを記録している記録媒体及び楕円曲線構成プログラムを記録している記録媒体
US20020062330A1 (en) * 2000-09-19 2002-05-23 Christof Paar Method for efficient computation of odd characteristic extension fields

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734841A (zh) * 2013-12-23 2015-06-24 恩智浦有限公司 用于进行ecc点倍的优化硬件架构和方法
US9900154B2 (en) 2013-12-23 2018-02-20 Nxp B.V. Optimized hardward architecture and method for ECC point addition using mixed affine-jacobian coordinates over short weierstrass curves
US9929862B2 (en) 2013-12-23 2018-03-27 Nxp B.V. Optimized hardware architecture and method for ECC point doubling using Jacobian coordinates over short Weierstrass curves
US9979543B2 (en) 2013-12-23 2018-05-22 Nxp B.V. Optimized hardware architecture and method for ECC point doubling using jacobian coordinates over short weierstrass curves
CN104734841B (zh) * 2013-12-23 2018-06-01 恩智浦有限公司 用于进行ecc点倍的优化硬件架构和方法

Also Published As

Publication number Publication date
JP2007286380A (ja) 2007-11-01

Similar Documents

Publication Publication Date Title
Bailey et al. Efficient arithmetic in finite field extensions with application in elliptic curve cryptography
US8862651B2 (en) Method and apparatus for modulus reduction
CN104254833B (zh) 基于向量和标量的模取幂
EP0933695A2 (en) IC card equipped with elliptic curve encryption processing facility
Bos et al. Fast Arithmetic Modulo 2^ xp^ y±1
US20230254145A1 (en) System and method to improve efficiency in multiplicationladder-based cryptographic operations
JP4621162B2 (ja) 有限可換群演算方法、装置およびそのプログラム
US8781112B2 (en) Signed montgomery arithmetic
Azarderakhsh et al. EdSIDH: supersingular isogeny Diffie-Hellman key exchange on Edwards curves
Halbutogullari et al. Parallel multiplication in GF (2 k) using polynomial residue arithmetic
US8626811B2 (en) Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine
CN114706557B (zh) 一种asic芯片及蒙哥马利模乘的实现方法和装置
Arazi et al. On calculating multiplicative inverses modulo $2^{m} $
JP4202701B2 (ja) 多項式剰余系演算装置、方法及びプログラム
Bos et al. Efficient modular multiplication
US20080270494A1 (en) Method for the Exponentiation or Scalar Multiplication of Elements
Chen et al. Quantum circuits for hyperelliptic curve discrete logarithms over the Mersenne prime fields
Lou et al. Fast exponentiation by folding the signed-digit exponent in half
JP4752176B2 (ja) 一方向性関数演算方法及び装置及びプログラム
Van Luc et al. Improving the Efficiency of Point Arithmetic on Elliptic Curves Using ARM Processors and NEON
Zitouni et al. Implementing Cryptography Pairings over Ordinary Pairing-Friendly Curves of Type
JP2007503036A (ja) モジュラ乗算を行うための方法、および2nビットの数を使用してユークリッド乗算を行うための方法
Lou et al. Parallel exponentiation using common-multiplicand-multiplication and signed-digit-folding techniques
JP3884853B2 (ja) べき乗演算装置
KR100431029B1 (ko) 부쓰 알고리즘을 이용한 스칼라 곱셈기

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100928

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

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

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

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4621162

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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