ペアリング演算装置及び方法
【課題】Tateペアリング及びηTペアリングの両方に対処可能な小規模な回路構成を実現する。
【解決手段】有限体GF上の楕円曲線上の点Qから、写像ψの逆写像ψ-1(Q)を算出する第1回路、楕円曲線上の点Qと第1回路の出力とのいずれかを出力する第1選択回路、楕円曲線上の点P及び第1選択回路の出力に対して、ηTペアリングの値を算出するペアリング計算回路と、ペアリング計算回路の出力に対して、有限体における3MT2/L乗演算を実施する第2回路、ペアリング計算回路の出力と第2回路の出力とのいずれかを出力する第2選択回路と、Tateペアリングの計算結果を出力する場合には第1選択回路に第1回路の出力をペアリング計算回路に出力させ且つ第2選択回路に第2回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1選択回路に楕円曲線上の点Qを出力させ且つ第2選択回路にペアリング計算回路の出力を出力させる制御回路とを有する。
【解決手段】有限体GF上の楕円曲線上の点Qから、写像ψの逆写像ψ-1(Q)を算出する第1回路、楕円曲線上の点Qと第1回路の出力とのいずれかを出力する第1選択回路、楕円曲線上の点P及び第1選択回路の出力に対して、ηTペアリングの値を算出するペアリング計算回路と、ペアリング計算回路の出力に対して、有限体における3MT2/L乗演算を実施する第2回路、ペアリング計算回路の出力と第2回路の出力とのいずれかを出力する第2選択回路と、Tateペアリングの計算結果を出力する場合には第1選択回路に第1回路の出力をペアリング計算回路に出力させ且つ第2選択回路に第2回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1選択回路に楕円曲線上の点Qを出力させ且つ第2選択回路にペアリング計算回路の出力を出力させる制御回路とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、有限体における楕円曲線上のペアリング演算技術に関する。
【背景技術】
【0002】
情報通信技術で広く用いられる技術の1つとして、暗号化のための鍵を公開する公開鍵暗号の技術が知られている。公開鍵暗号とは、暗号化と復号化とで一対の異なる鍵を用いる暗号である。公開鍵暗号の技術は、鍵の管理が煩雑であることや特定のグループのみが解読可能となるブロードキャスト暗号が未整備であるといった問題がある。近年、これらの問題を解決する手法として、ペアリングを用いた暗号(以下、ペアリング暗号と呼ぶ)が注目されている。ペアリング暗号では、IDを公開鍵とするIDベース暗号、ブロードキャスト暗号、アグリゲート(aggregate)署名などを実現できる。しかし、暗号技術として使用されているペアリングは複数あり、現在暗号で使用するペアリングの標準化は進んでいない。
【0003】
ペアリング暗号では楕円曲線上のペアリングと呼ばれる演算を使用する。まず、楕円曲線について説明する。pを素数、mを自然数とすると、要素数q=pmの有限体GF(q)上の楕円曲線Eとは、
E:y2+a1xy+a3y=x3+a2x2+a4x+a6
を満たす点(x,y)の集合に、無限遠点と呼ばれる点∞を加えた集合のことである。無限遠点∞を0と表すこともある。ここで、a1、a2、a3、a4、a6、x及びyは有限体GF(q)の要素である。楕円曲線上の点は(x,y)のような座標形式(すなわち、アファイン座標)で表現できるが、無限遠点∞は(x,y)のような座標形式で表現できない唯一の点である。このように、アファイン座標では無限遠点以外の点はGF(q)の2つの要素の組として表される。楕円曲線E上の点の間には点の加算と呼ばれる演算が可能であり、GF(q)における加減乗除の組み合わせによって計算される。
【0004】
ペアリングとは2入力1出力関数で、3つの群G1,G2,G3に対して、写像e:G1×G2−>G3で以下の性質を満たすものをいう。
(1)e(au+bv,x) =a・e(u,x) +b・e(v,x)
(2)e(u,cx+dz) =c・e(u,x) +d・e(u,z)
【0005】
暗号技術として使用されるペアリングの例として以下のものがある。
(a)Weilペアリング
(b)Tateペアリング
(c)ηTペアリング
(d)Ateペアリング、Twisted Ateペアリングなど
【0006】
ここで、TateペアリングとηTペアリングについて説明する。まず、楕円曲線上のTateペアリングについて説明する。次の式で定義される有限体GF(33)上の楕円曲線を考える。
E:y2=x3−x+b
(但し、b=−1又は1とする)
【0007】
Tateペアリングは、楕円曲線E上の2点P,Qに関して、ある値を返す関数e(P,Q)である。また、ηTペアリングは、Tateペアリングをより高速計算可能に改良したペアリングである。
【0008】
なお、ηTペアリングとTateペアリングには、以下の式(1)のような関係がある。
(ηT(P,Q)M)^{3T2}=e(P,ψ(Q))L (1)
【0009】
ここで、M、T、L及び写像ψは以下のように定義される。
M=(36m−1)/(3m+b3{(m+1)/2}+1)
T=−b3{(m+1)/2}−1
L=−b3{(m+3)/2}
ψ(x,y) =(ρ−x,σy) (但し、σ,ρはσ2=−1,ρ3=ρ+bを満たす元)
【0010】
TateペアリングとηTペアリングの間に成り立つ式(1)を変形して、以下のような式に変形されることも知られている。
e(P,ψ(Q))=(ηT(P,Q)M)^{3T2/L} (2)
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2008−20653号公報
【特許文献2】特開平7−261662号公報
【非特許文献】
【0012】
【非特許文献1】岡本栄司、岡本健、金山直樹、「ペアリングに関する最近の研究動向」,Fundamentals Review, Vol. 1, No. 1,pp.51-60, 2007/07
【発明の概要】
【発明が解決しようとする課題】
【0013】
従来、個別にペアリングのハードウエア化について検討が行われている。しかしながら、暗号技術として使用されているペアリングは複数あり、現在暗号で使用するペアリングの標準化が進んでいない。そのため、小規模の回路で複数のペアリング演算を実施することが望まれている。
【0014】
従って、本技術の目的は、TateペアリングとηTペアリングとを小規模な回路で実現するための技術を提供することである。
【課題を解決するための手段】
【0015】
第1の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する第1の選択回路と、(C)楕円曲線上の点P及び第1の選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、(D)ηTペアリング計算回路の出力に対して、有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTペアリング計算回路の出力と第2の回路の出力とのいずれかを出力する第2の選択回路と、(F)Tateペアリングの計算結果を出力する場合には第1の選択回路に第1の回路の出力をηTペアリング計算回路に出力させ且つ第2の選択回路に第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1の選択回路に楕円曲線上の点Qを出力させ且つ第2の選択回路にηTペアリング計算回路の出力を出力させる制御回路とを有する。
【0016】
第2の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する第1の選択回路と、(C)楕円曲線上の点P及び第1の選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路と、(F)第2の回路の出力と第3の回路の出力とのいずれかを出力する第2の選択回路と、(G)Tateペアリングの計算結果を出力する場合には第1の選択回路に第1の回路の出力をηTkペアリング計算回路に出力させ且つ第2の選択回路に第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1の選択回路に楕円曲線上の点Qを出力させ且つ第2の選択回路に第3の回路の出力を出力させる制御回路とを有する。
【0017】
第3の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路と、(E)Tateペアリングの計算結果を出力する場合には選択回路に第1の回路の出力をηTkペアリング計算回路に出力させ且つべき乗演算回路に有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施させ、ηTペアリングの計算結果を出力する場合には選択回路に楕円曲線上の点Qを出力させ且つべき乗演算回路に1/k乗演算を実施させる制御回路とを有する。
【発明の効果】
【0018】
TateペアリングとηTペアリングとを小規模な回路で実現できるようになる。
【図面の簡単な説明】
【0019】
【図1】図1は、第1の実施の形態に係るペアリング演算装置の回路構成例を示す図である。
【図2】図2は、第1の実施の形態に係るηTペアリング計算部の回路構成例を示す図である。
【図3】図3は、第1の実施の形態においてTateペアリング計算を実施する場合の処理フローを示す図である。
【図4】図4は、第1の実施の形態においてηTペアリング計算を実施する際の処理フローを示す図である。
【図5】図5は、第2の実施の形態に係るペアリング演算装置の回路構成例を示す図である。
【図6】図6は、第2の実施の形態に係るηTkペアリング計算部の回路構成例を示す図である。
【図7】図7は、第2の実施の形態においてTateペアリング計算を実施する場合の処理フローを示す図である。
【図8】図8は、第2の実施の形態においてηTペアリング計算を実施する際の処理フローを示す図である。
【図9】図9は、第3の実施の形態に係るペアリング演算装置の回路構成例を示す図である。
【図10】図10は、第3の実施の形態においてTateペアリング計算を実施する場合の処理フローを示す図である。
【図11】図11は、第3の実施の形態においてηTペアリング計算を実施する際の処理フローを示す図である。
【図12】図12は、実施の形態間の効果比較表を示す図である。
【図13】図13は、ICカードの一例を示す図である。
【発明を実施するための形態】
【0020】
[実施の形態1]
本技術の第1の実施の形態では、上で述べた式(2)に基づいた回路構成を採用する。なお、このような回路構成については公開されたものはない。
【0021】
本実施の形態に係るペアリング演算装置100の回路構成図を図1に示す。本ペアリング演算装置100は、レジスタQと、レジスタPと、ψ-1(Q)演算部101と、セレクタ102と、ηTペアリング計算部103と、{3MT2/L}乗演算部105と、セレクタ106と、レジスタ107と、制御部104とを有する。
【0022】
レジスタQは、有限体GF(33)における楕円曲線E:y2=x3−x+b(但し、b=−1又は1とする)上の点Q(xq,yq)の値を格納するレジスタであり、ψ-1(Q)演算部101及びセレクタ102に接続されている。レジスタPは、上で述べた楕円曲線上の点P(xp,yp)の値を格納するレジスタであり、ηTペアリング計算部103に接続されている。
【0023】
ψ-1(Q)演算部101は、点Qに対して、写像ψ(x,y) =(ρ−x,σy) (但し、σ,ρはσ2=−1,ρ3=ρ+bを満たす元)の逆写像ψ-1(Q)を計算する回路であり、セレクタ102に接続されている。なお、ψ-1(Q)=(ρ-xq,σ-1yq)となる。
【0024】
セレクタ102には、ψ-1(Q)演算部101からの出力とレジスタQからの値とが入力されており、セレクタ102は、選択信号の値に応じていずれかをηTペアリング計算部103に出力する。本実施の形態では、選択信号「0」が入力された場合にはレジスタQからの値を出力し、選択信号「1」が入力された場合にはψ-1(Q)演算部101からの出力を出力する。
【0025】
ηTペアリング計算部103は、レジスタPからの出力とセレクタ102からの出力とを用いて、ηTペアリング計算を実施する回路であり、{3MT2/L}乗演算部105とセレクタ106とに接続されている。ηTペアリング計算部103により実施される演算は、例えば以下のような演算である。なお、P=(xp,yp)及びQ=(xq,yq)を処理する場合を示している。
【0026】
【数1】
【0027】
{3MT2/L}乗演算部105は、ηTペアリング計算部103の出力を、上で述べた有限体において{3MT2/L}乗する演算を行う回路であり、セレクタ106に接続されている。ここで、M、T及びLは以下のように定義される。
M=(36m−1)/(3m+b3{(m+1)/2}+1)
T=−b3{(m+1)/2}−1
L=−b3{(m+3)/2}
【0028】
これらの値については外部からm及びbの値が与えられてレジスタなどに保持しておき、実際の演算時に算出するようにしてもよいし、最終的なM、T及びLの値をm及びbから事前に演算した後にレジスタなどに保持しておくようにしてもよい。
【0029】
なお、有限体におけるべき乗演算については、よく知られたいずれの方法でも良い。
【0030】
セレクタ106には、{3MT2/L}乗演算部105からの出力とηTペアリング計算部103からの出力とが入力されており、セレクタ106は、選択信号「0」が入力された場合にはηTペアリング計算部103からの出力を出力し、選択信号「1」が入力された場合には{3MT2/L}乗演算部105からの出力を出力する。セレクタ106の出力は、レジスタ107に接続されている。レジスタ107には、Tateペアリングの値e(P,Q)又はηTペアリングの値ηT(P,Q)が格納される。
【0031】
制御部104は、セレクタ102及び106に接続されており、外部からηTペアリングの値の算出を指示された場合には、選択信号「0」を出力し、外部からTateペアリングの値の算出を指示された場合には、選択信号「1」を出力する。
【0032】
ηTペアリング計算部103の構成例を図2に示す。ηTペアリング計算部103は、セレクタ102からの出力を格納するレジスタx1及びy1と、レジスタPに格納されている点Pの値を格納するレジスタx2及びy2と、有限体上の加算及び乗算を行う加算・乗算回路1031と、有限体上の三乗演算を行う3乗計算回路1032と、有限体上の1/3乗計算を行う1/3乗計算回路1033と、出力値を格納するレジスタfとを有する。加算・乗算回路1031と3乗計算回路1032と1/3乗計算回路1033とは、上で述べたアルゴリズムを実施する際に用いられる。
【0033】
次に、図1のペアリング演算装置100の動作を図3及び図4を用いて説明する。まず、Tateペアリングの計算を指示された場合の処理を図3を用いて説明する。この場合、制御部104は、選択信号「1」をセレクタ102及び106に出力する(ステップS1)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTペアリング計算部103に入力し、点Qの値をレジスタQからψ-1(Q)演算部101及びセレクタ102に入力する(ステップS3)。
【0034】
そして、ψ-1(Q)演算部101は、楕円曲線上の点Qに対してψ-1(Q)を計算し、セレクタ102に出力する(ステップS5)。セレクタ102では、制御部104から選択信号「1」が入力されているので、ψ-1(Q)演算部101の出力をηTペアリング計算部103に出力する。
【0035】
ηTペアリング計算部103は、セレクタ102からの出力ψ-1(Q)とレジスタPからの値とから、z=ηT(P,ψ-1)を計算し、セレクタ106及び{3MT2/L}乗演算部105に出力する(ステップS7)。
【0036】
{3MT2/L}乗演算部105は、ηTペアリング計算部103からの出力zの{3MT2/L}乗演算を実施して、演算結果をセレクタ106に出力する(ステップS9)。
【0037】
セレクタ106は、選択信号「1」が入力されているので、{3MT2/L}乗演算部105の出力e(P,Q)=z^{3MT2/L}を出力し、レジスタ107に格納する(ステップS11)。
【0038】
一方、ηTペアリングの計算を指示された場合の処理を図4を用いて説明する。この場合、制御部104は、選択信号「0」をセレクタ102及び106に出力する(ステップS21)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTペアリング計算部103に入力し、点Qの値をレジスタQからψ-1(Q)演算部101及びセレクタ102に入力する(ステップS23)。セレクタ102は、選択信号「0」に応じて、レジスタQからの出力値(点Qの値)をそのままηTペアリング計算部103に出力する。
【0039】
そして、ηTペアリング計算部103は、セレクタ102からの出力である点Qの値とレジスタPからの出力値(点Pの値)とから、z=ηT(P,Q)を計算し、セレクタ106及び{3MT2/L}乗演算部105に出力する(ステップS25)。
【0040】
セレクタ106は、選択信号「0」に応じて、ηTペアリング計算部103からの出力ηT(P,Q)をηTペアリングの値として出力し、レジスタ107に格納する(ステップS27)。
【0041】
以上のように、ηTペアリング計算部103をηTペアリングの計算及びTateペアリングの計算で共用するので、回路規模を小さくしつつ、2つのペアリングに対処できるようなペアリング演算装置100が得られる。
【0042】
[実施の形態2]
図2に示したように、第1の実施の形態におけるηTペアリング計算部103は、1/3乗計算回路1033を含むため、処理時間がかかるという問題がある。そこで、ηTペアリングのk(=3(m+1)/2)乗であるηTkペアリング計算を実施することによって、1/3乗演算を除去する。なお、余分にk乗しているので、1/k乗演算を追加すると共に{3MT2/L}乗を{3MT2/(Lk)}乗に変更する。ηTペアリング計算の中で1/3乗演算を行うよりも1/k乗演算を実施する方が高速に演算できるので、全体としても演算の高速化が可能となる。
【0043】
図5に、本実施の形態に係るペアリング演算装置200の回路構成を示す。本ペアリング演算装置200は、レジスタQと、レジスタPと、ψ-1(Q)演算部201と、セレクタ202と、ηTkペアリング計算部203と、{3MT2/(Lk)}乗演算部205と、セレクタ206と、レジスタ207と、制御部204と、{1/k}乗演算部208とを有する。
【0044】
レジスタQは、有限体GF(33)における楕円曲線E:y2=x3−x+b(但し、b=−1又は1とする)上の点Q(xq,yq)の値を格納するレジスタであり、ψ-1(Q)演算部201及びセレクタ202に接続されている。レジスタPは、上で述べた楕円曲線上の点P(xp,yp)の値を格納するレジスタであり、ηTkペアリング計算部203に接続されている。
【0045】
ψ-1(Q)演算部201は、点Qに対して、写像ψ(x,y) =(ρ−x,σy) (但し、σ,ρはσ2=−1,ρ3=ρ+bを満たす元)の逆写像ψ-1(Q)を計算する回路であり、セレクタ202に接続されている。なお、ψ-1(Q)=(ρ-xq,σ-1yq)となる。
【0046】
セレクタ202には、ψ-1(Q)演算部201からの出力とレジスタQからの値とが入力されており、セレクタ202は、選択信号の値に応じていずれかをηTkペアリング計算部203に出力する。本実施の形態では、選択信号「0」が入力された場合にはレジスタQからの値を出力し、選択信号「1」が入力された場合にはψ-1(Q)演算部201からの出力を出力する。
【0047】
ηTkペアリング計算部203は、レジスタPからの出力とセレクタ202からの出力とを用いて、ηTkペアリング計算を実施する回路であり、{3MT2/(Lk)}乗演算部205と{1/k}乗演算部208とに接続されている。ηTkペアリング計算部203により実施される演算は、例えば以下のような演算である。なお、P=(xp,yp)及びQ=(xq,yq)を処理する場合を示している。
【0048】
【数2】
【0049】
{3MT2/(Lk)}乗演算部205は、ηTkペアリング計算部203の出力を、上で述べた有限体において{3MT2/(Lk)}乗する演算を行う回路であり、セレクタ206に接続されている。M、T及びLは第1の実施の形態と同じである。kも、上で述べたように、k=3(m+1)/2である。
【0050】
これらの値については外部からm及びbの値が与えられてレジスタなどに保持しておき、実際の演算時に算出するようにしてもよいし、最終的なM、T及びLの値をm及びbから事前に演算した後にレジスタなどに保持しておくようにしてもよい。
【0051】
また、{1/k}乗演算部208は、ηTkペアリング計算部203の出力を、上で述べた有限体において{1/k}乗する演算を行う回路であり、セレクタ206に接続されている。1/kについても、m又はkをレジスタに保持しておくようにしておき演算時に1/kを算出するようにしても良いし、最終的な値{1/k}を事前に算出後にレジスタなどに保持しておくようにしても良い。
【0052】
有限体におけるべき乗演算については、第1の実施の形態と同じように、よく知られた方法で実施可能である。
【0053】
セレクタ206には、{3MT2/(Lk)}乗演算部205からの出力と{1/k}乗演算部208からの出力とが入力されており、セレクタ206は、選択信号「0」が入力された場合には{1/k}乗演算部208からの出力を出力し、選択信号「1」が入力された場合には{3MT2/(Lk)}乗演算部205からの出力をレジスタ207に出力する。セレクタ206の出力は、レジスタ207に接続されている。レジスタ207には、Tateペアリングの値e(P,Q)又はηTペアリングの値ηT(P,Q)が格納される。
【0054】
制御部204は、セレクタ202及び206に接続されており、外部からηTペアリングの値の算出を指示された場合には、選択信号「0」を出力し、外部からTateペアリングの値の算出を指示された場合には、選択信号「1」を出力する。
【0055】
ηTkペアリング計算部203の構成例を図6に示す。ηTkペアリング計算部203は、セレクタ202からの出力値を格納するレジスタx1及びy1と、レジスタPに格納されている点Pの値を格納するレジスタx2及びy2と、有限体上の加算及び乗算を行う加算・乗算回路2031と、有限体上の三乗演算を行う3乗計算回路2032と、出力値を格納するレジスタfとを有する。加算・乗算回路2031と3乗計算回路2032とは、上で述べたアルゴリズムを実施する際に用いられる。この図からも分かるように、ηTkペアリング計算部203には、1/3乗計算回路1033は含まれておらず、その分処理速度も速くなる。
【0056】
次に、図5のペアリング演算装置200の動作を図7及び図8を用いて説明する。まず、Tateペアリングの計算を指示された場合の処理を図7を用いて説明する。この場合、制御部204は、選択信号「1」をセレクタ202及び206に出力する(ステップS31)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTkペアリング計算部203に入力し、点Qの値をレジスタQからψ-1(Q)演算部201及びセレクタ202に入力する(ステップS33)。
【0057】
そして、ψ-1(Q)演算部201は、楕円曲線上の点Qに対してψ-1(Q)を計算し、セレクタ202に出力する(ステップS35)。セレクタ202では、制御部204から選択信号「1」が入力されているので、ψ-1(Q)演算部201の出力をηTkペアリング計算部203に出力する。
【0058】
ηTkペアリング計算部203は、セレクタ202からの出力ψ-1(Q)とレジスタPからの値とから、z=ηT(P,ψ-1)kを計算し、{1/k}乗演算部208及び{3MT2/(Lk)}乗演算部205に出力する(ステップS37)。
【0059】
{3MT2/(Lk)}乗演算部205は、ηTkペアリング計算部203からの出力zの{3MT2/(Lk)}乗演算を実施して、セレクタ206に出力する(ステップS39)。
【0060】
セレクタ206は、選択信号「1」が入力されているので、{3MT2/(Lk)}乗演算部205の出力e(P,Q)=z^{3MT2/(Lk)}を出力し、レジスタ207に格納する(ステップS41)。
【0061】
一方、ηTペアリングの計算を指示された場合の処理を図8を用いて説明する。この場合、制御部204は、選択信号「0」をセレクタ202及び206に出力する(ステップS51)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTkペアリング計算部203に入力し、点Qの値をレジスタQからψ-1(Q)演算部201及びセレクタ202に入力する(ステップS53)。セレクタ202は、選択信号「0」に応じて、レジスタQからの出力値(点Qの値)をそのままηTkペアリング計算部203に出力する。
【0062】
そして、ηTkペアリング計算部203は、セレクタ202からの出力である点Qの値とレジスタPからの出力値(点Pの値)とから、z=ηT(P,Q)kを計算し、{1/k}乗演算部208及び{3MT2/(Lk)}乗演算部205に出力する(ステップS55)。
【0063】
{1/k}乗演算部208は、ηTkペアリング計算部203から入力されたz=ηT(P,Q)kの1/k乗であるz1/kを計算して、セレクタ206に出力する(ステップS57)。
【0064】
セレクタ206は、選択信号「0」に応じて、{1/k}乗演算部208からの出力ηT(P,Q)(=z1/k)をηTペアリングの値として出力し、レジスタ107に格納する(ステップS59)。
【0065】
以上のように、ηTkペアリング計算部203をηTペアリング計算部103の代わりに導入することによって、全体の処理が高速化される。なお、図2と図6との比較からして、回路規模については第1の実施の形態とほぼ同じになっている。
【0066】
[実施の形態3]
第2の実施の形態では、ηTkペアリング計算部203を導入する代わりに、{1/k}乗演算部208を導入している。しかし、べき乗演算は、そもそも{3MT2/L}乗演算部105が設けられていた。そこで、{1/k}乗演算部208及び{3MT2/(Lk)}乗演算部205とを統合してs乗演算部を導入してsの値を切り替えることによって、回路の共通化により全体の回路規模を小さくする。
【0067】
図9に、本実施の形態に係るペアリング演算装置300の回路構成を示す。本ペアリング演算装置300は、レジスタQと、レジスタPと、ψ-1(Q)演算部301と、セレクタ302と、ηTkペアリング計算部303と、s乗演算部308と、セレクタ306と、最終結果を格納するレジスタ307と、制御部304と、{1/k}の値を格納するレジスタ309と、{3MT2/(Lk)}の値を格納するレジスタ310とを有する。
【0068】
レジスタQは、有限体GF(33)における楕円曲線E:y2=x3−x+b(但し、b=−1又は1とする)上の点Q(xq,yq)の値を格納するレジスタであり、ψ-1(Q)演算部301及びセレクタ302に接続されている。レジスタPは、上で述べた楕円曲線上の点P(xp,yp)の値を格納するレジスタであり、ηTkペアリング計算部303に接続されている。
【0069】
ψ-1(Q)演算部301は、点Qに対して、写像ψ(x,y) =(ρ−x,σy) (但し、σ,ρはσ2=−1,ρ3=ρ+bを満たす元)の逆写像ψ-1(Q)を計算する回路であり、セレクタ302に接続されている。なお、ψ-1(Q)=(ρ-xq,σ-1yq)となる。
【0070】
セレクタ302には、ψ-1(Q)演算部301からの出力とレジスタQからの値とが入力されており、セレクタ302は、選択信号の値に応じていずれかをηTkペアリング計算部303に出力する。本実施の形態でも、選択信号「0」が入力された場合にはレジスタQからの値を出力し、選択信号「1」が入力された場合にはψ-1(Q)演算部301からの出力を出力する。
【0071】
ηTkペアリング計算部303は、レジスタPからの出力とセレクタ302からの出力とを用いて、ηTkペアリング計算を実施する回路であり、s乗演算部308に接続されている。ηTkペアリング計算部303により実施される演算は、第2の実施の形態で示したものと同じである。
【0072】
レジスタ309とレジスタ310とはセレクタ306に接続されており、セレクタ306の出力はs乗演算部308に接続されている。セレクタ306は、選択信号の値に応じていずれかをs乗演算部308に出力する。本実施の形態では、選択信号「0」が入力された場合にはレジスタ309からの値をs乗演算部308に出力し、選択信号「1」が入力された場合にはレジスタ310からの値をs乗演算部308に出力する。
【0073】
s乗演算部308は、ηTkペアリング計算部303の出力zを、有限体においてs(sはセレクタ306の出力値)乗する演算を実施する回路であり、レジスタ307に接続されている。s乗演算部308は、演算結果をレジスタ307に格納する。なお、有限体におけるべき乗演算については、よく知られた演算であるからここでは詳しく述べない。
【0074】
制御部304は、セレクタ302及び306に接続されており、外部からηTペアリングの値の算出を指示された場合には、選択信号「0」を出力し、外部からTateペアリングの値の算出を指示された場合には、選択信号「1」を出力する。
【0075】
次に、図10及び図11を用いてペアリング演算装置300の動作を説明する。
【0076】
まず、Tateペアリングの計算を指示された場合の処理を図10を用いて説明する。この場合、制御部304は、選択信号「1」をセレクタ302及び306に出力する(ステップS61)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTkペアリング計算部303に入力し、点Qの値をレジスタQからψ-1(Q)演算部301及びセレクタ302に入力する(ステップS63)。
【0077】
そして、ψ-1(Q)演算部301は、楕円曲線上の点Qに対してψ-1(Q)を計算し、セレクタ302に出力する(ステップS65)。セレクタ302では、制御部304から選択信号「1」が入力されているので、ψ-1(Q)演算部301の出力をηTkペアリング計算部303に出力する。
【0078】
ηTkペアリング計算部203は、セレクタ302からの出力ψ-1(Q)とレジスタPからの値とから、z=ηT(P,ψ-1)kを計算し、s乗演算部308に出力する(ステップS67)。
【0079】
また、セレクタ306は、制御部304からの選択信号「1」に応じて、レジスタ310からの値{3MT2/(Lk)}をs乗演算部308に出力する。
【0080】
s乗演算部308は、ηTkペアリング計算部203からの出力zに対して、セレクタ306からのs={3MT2/(Lk)}に応じてs乗演算を実施して、z^{3MT2/(Lk)}を算出する(ステップS69)。そして、s乗演算部308は、演算結果z^{3MT2/(Lk)}を、Tateペアリングの結果e(P,Q)=z^{3MT2/(Lk)}として、レジスタ307に出力して格納する(ステップS71)。
【0081】
一方、ηTペアリングの計算を指示された場合の処理を図11を用いて説明する。この場合、制御部304は、選択信号「0」をセレクタ302及び306に出力する(ステップS81)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTkペアリング計算部303に入力し、点Qの値をレジスタQからψ-1(Q)演算部301及びセレクタ302に入力する(ステップS83)。セレクタ302は、選択信号「0」に応じて、レジスタQからの出力値(点Qの値)をそのままηTkペアリング計算部303に出力する。
【0082】
そして、ηTkペアリング計算部303は、セレクタ302からの出力である点Qの値とレジスタPからの出力値(点Pからの値)とから、z=ηT(P,Q)kを計算し、s乗演算部308に出力する(ステップS85)。
【0083】
また、セレクタ306は、制御部304からの選択信号「0」に応じて、レジスタ309からの値{1/k}をs乗演算部308に出力する。
【0084】
s乗演算部308は、ηTkペアリング計算部303からの出力zに対して、セレクタ306からのs={1/k}に応じてs乗演算を実施して、z^{1/k}を算出する(ステップS87)。そして、s乗演算部308は、演算結果z^{1/k}を、ηTペアリングの値としてレジスタ307に出力して格納する(ステップS89)。
【0085】
以上のように、べき乗演算を共通の回路で実施することによって小さな回路規模で2つのペアリングの演算が可能となる。
【0086】
図12に3つの実施の形態の処理速度及び回路規模の比較表を示す。なお、図12は、第1の実施の形態を基準とした比較表を表している。これを見ると、第2の実施の形態は、第1の実施の形態ではTateペアリング計算時には15%程度の処理の高速化が可能となっている。また、第3の実施の形態は、さらに回路規模も第1の実施の形態に比して15%程度削減できる。なお、第1の実施の形態は、ηTペアリング計算部103を共用しているので、従来に比してその分回路規模は削減できている。
【0087】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、ペアリング演算装置は、例えば図13に示すようなICカードに含まれる半導体チップ上に実装される場合もあれば、パーソナルコンピュータやサーバその他のコンピュータに実装される場合もある。ICカードのような小型の装置に実装する場合には、上で述べたような回路規模の削減が大きく寄与する。
【0088】
べき乗算、ηTペアリング計算やηTkペアリング計算については、さらに高速なアルゴリズムが存在する場合には、それらを採用することも可能である。
【0089】
以上述べた本実施の形態をまとめると、以下のようになる。
【0090】
第1の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する第1の選択回路と、(C)楕円曲線上の点P及び第1の選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、(D)ηTペアリング計算回路の出力に対して、有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTペアリング計算回路の出力と第2の回路の出力とのいずれかを出力する第2の選択回路と、(F)Tateペアリングの計算結果を出力する場合には第1の選択回路に第1の回路の出力をηTペアリング計算回路に出力させ且つ第2の選択回路に第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1の選択回路に楕円曲線上の点Qを出力させ且つ第2の選択回路にηTペアリング計算回路の出力を出力させる制御回路とを有する。
【0091】
このような回路を採用することによって、ηTペアリング計算回路を共用することによって、ηTペアリングとTateペアリングのいずれもに対応するペアリング演算装置の回路規模を削減することができるようになる。
【0092】
第2の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する第1の選択回路と、(C)楕円曲線上の点P及び第1の選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路と、(F)第2の回路の出力と第3の回路の出力とのいずれかを出力する第2の選択回路と、(G)Tateペアリングの計算結果を出力する場合には第1の選択回路に第1の回路の出力をηTkペアリング計算回路に出力させ且つ第2の選択回路に第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1の選択回路に楕円曲線上の点Qを出力させ且つ第2の選択回路に第3の回路の出力を出力させる制御回路とを有する。
【0093】
ηTkペアリング計算回路を導入することによって、処理高速化を阻害する1/3乗演算を除去して、処理速度を向上させることができるようになる。
【0094】
第3の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路と、(E)Tateペアリングの計算結果を出力する場合には選択回路に第1の回路の出力をηTkペアリング計算回路に出力させ且つべき乗演算回路に有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施させ、ηTペアリングの計算結果を出力する場合には選択回路に楕円曲線上の点Qを出力させ且つべき乗演算回路に1/k乗演算を実施させる制御回路とを有する。
【0095】
さらに、べき乗演算回路を導入することによって、さらに回路の共用が可能となり、回路規模を削減することができる。
【0096】
また、第4の態様に係るペアリング演算方法は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、(D)ηTペアリング計算回路の出力に対して、有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路とを有するペアリング演算装置により実行される。そして、本ペアリング演算方法は、(α)Tateペアリングの値を算出する場合には、第1の回路が前記楕円曲線上の点Qから逆写像ψ-1(Q)を算出し、選択回路が第1の回路の出力をηTペアリング計算回路に出力し、ηTペアリング計算回路が第1の回路の出力及び楕円曲線上の点Pに対してηTペアリングの値を算出して第2の回路に出力し、第2の回路がηTペアリング計算回路の出力の有限体における3MT2/L乗演算を実施して出力するステップと、(β)ηTペアリングの値を算出する場合には、選択回路が楕円曲線上の点QをηTペアリング計算回路に出力し、ηTペアリング計算回路が楕円曲線上の点P及び点Qに対して前記ηTペアリングの値を算出して出力するステップとを含む。
【0097】
小規模な回路構成にて2つのペアリングの演算が可能となる。
【0098】
また、第5の態様に係るペアリング演算方法は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路とを有するペアリング演算装置により実行される。そして、本ペアリング演算方法は、(α)Tateペアリングの値を算出する場合には、第1の回路が楕円曲線上の点Qから逆写像ψ-1(Q)を算出し、選択回路が第1の回路の出力をηTkペアリング計算回路に出力し、ηTkペアリング計算回路が第1の回路の出力及び楕円曲線上の点Pに対してηTkペアリングの値を算出して第2の回路に出力し、第2の回路がηTkペアリング計算回路の出力の有限体における3MT2/Lk乗演算を実施して出力するステップと、(β)ηTペアリングの値を算出する場合には、選択回路が楕円曲線上の点QをηTkペアリング計算回路に出力し、ηTkペアリング計算回路が楕円曲線上の点P及び点Qに対してηTkペアリングの値を算出して第3の回路に出力し、第3の回路がηTkペアリング計算回路の出力の1/k乗を算出して出力するステップとを含む。
【0099】
さらに処理速度も高速化することができるようになる。
【0100】
さらに、第6の態様に係るペアリング演算方法は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路とを有するペアリング演算装置により実行される。そして、ペアリング演算方法は、(α)Tateペアリングの値を算出する場合には、第1の回路が楕円曲線上の点Qから逆写像ψ-1(Q)を算出し、選択回路が第1の回路の出力をηTkペアリング計算回路に出力し、ηTkペアリング計算回路が第1の回路の出力及び楕円曲線上の点Pに対してηTkペアリングの値を算出してべき乗演算回路に出力し、べき乗演算回路がηTkペアリング計算回路の出力の有限体における3MT2/(Lk)乗演算を実施して出力するステップと、(β)ηTペアリングの値を算出する場合には、選択回路が楕円曲線上の点QをηTkペアリング計算回路に出力し、ηTkペアリング計算回路が楕円曲線上の点P及び点Qに対してηTkペアリングの値を算出してべき乗演算回路に出力し、べき乗演算回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップとを含む。
【0101】
さらに小規模な回路構成にて2つのペアリングの演算を実施することができるようになる。
【0102】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0103】
(付記1)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する第1の選択回路と、
前記楕円曲線上の点P及び前記第1の選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、
前記ηTペアリング計算回路の出力に対して、前記有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、
前記ηTペアリング計算回路の出力と前記第2の回路の出力とのいずれかを出力する第2の選択回路と、
Tateペアリングの計算結果を出力する場合には前記第1の選択回路に前記第1の回路の出力を前記ηTペアリング計算回路に出力させ且つ前記第2の選択回路に前記第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には前記第1の選択回路に前記楕円曲線上の点Qを出力させ且つ前記第2の選択回路に前記ηTペアリング計算回路の出力を出力させる制御回路と、
を有するペアリング演算装置。
【0104】
(付記2)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する第1の選択回路と、
前記楕円曲線上の点P及び前記第1の選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、
前記ηTkペアリング計算回路の出力に対して、前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、
前記ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路と、
前記第2の回路の出力と前記第3の回路の出力とのいずれかを出力する第2の選択回路と、
Tateペアリングの計算結果を出力する場合には前記第1の選択回路に前記第1の回路の出力を前記ηTkペアリング計算回路に出力させ且つ前記第2の選択回路に前記第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には前記第1の選択回路に前記楕円曲線上の点Qを出力させ且つ前記第2の選択回路に前記第3の回路の出力を出力させる制御回路と、
を有するペアリング演算装置。
【0105】
(付記3)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、
前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、
前記ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路と、
Tateペアリングの計算結果を出力する場合には前記選択回路に前記第1の回路の出力を前記ηTkペアリング計算回路に出力させ且つ前記べき乗演算回路に前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施させ、ηTペアリングの計算結果を出力する場合には前記選択回路に前記楕円曲線上の点Qを出力させ且つ前記べき乗演算回路に1/k乗演算を実施させる制御回路と、
を有するペアリング演算装置。
【0106】
(付記4)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、前記ηTペアリング計算回路の出力に対して、前記有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTペアリング計算回路に出力し、前記ηTペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTペアリングの値を算出して前記第2の回路に出力し、前記第2の回路が前記ηTペアリング計算回路の出力の前記有限体における3MT2/L乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTペアリング計算回路に出力し、前記ηTペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTペアリングの値を算出して出力するステップと、
を含むペアリング演算方法。
【0107】
(付記5)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、前記ηTkペアリング計算回路の出力に対して、前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、前記ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTkペアリングの値を算出して前記第2の回路に出力し、前記第2の回路が前記ηTkペアリング計算回路の出力の前記有限体における3MT2/Lk乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTkペアリングの値を算出して前記第3の回路に出力し、前記第3の回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップと、
を含むペアリング演算方法。
【0108】
(付記6)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、前記ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTkペアリングの値を算出して前記べき乗演算回路に出力し、前記べき乗演算回路が前記ηTkペアリング計算回路の出力の前記有限体における3MT2/(Lk)乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTkペアリングの値を算出して前記べき乗演算回路に出力し、前記べき乗演算回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップと、
を含むペアリング演算方法。
【符号の説明】
【0109】
101,201,301 ψ-1(Q)演算部
102,106,202,206,302,306 セレクタ
103 ηTペアリング計算部
203,303 ηTkペアリング計算部
104,204,304 制御部
107,207,307 レジスタ
208 {1/k}乗演算部
308 s乗演算部 309,310 レジスタ
【技術分野】
【0001】
本技術は、有限体における楕円曲線上のペアリング演算技術に関する。
【背景技術】
【0002】
情報通信技術で広く用いられる技術の1つとして、暗号化のための鍵を公開する公開鍵暗号の技術が知られている。公開鍵暗号とは、暗号化と復号化とで一対の異なる鍵を用いる暗号である。公開鍵暗号の技術は、鍵の管理が煩雑であることや特定のグループのみが解読可能となるブロードキャスト暗号が未整備であるといった問題がある。近年、これらの問題を解決する手法として、ペアリングを用いた暗号(以下、ペアリング暗号と呼ぶ)が注目されている。ペアリング暗号では、IDを公開鍵とするIDベース暗号、ブロードキャスト暗号、アグリゲート(aggregate)署名などを実現できる。しかし、暗号技術として使用されているペアリングは複数あり、現在暗号で使用するペアリングの標準化は進んでいない。
【0003】
ペアリング暗号では楕円曲線上のペアリングと呼ばれる演算を使用する。まず、楕円曲線について説明する。pを素数、mを自然数とすると、要素数q=pmの有限体GF(q)上の楕円曲線Eとは、
E:y2+a1xy+a3y=x3+a2x2+a4x+a6
を満たす点(x,y)の集合に、無限遠点と呼ばれる点∞を加えた集合のことである。無限遠点∞を0と表すこともある。ここで、a1、a2、a3、a4、a6、x及びyは有限体GF(q)の要素である。楕円曲線上の点は(x,y)のような座標形式(すなわち、アファイン座標)で表現できるが、無限遠点∞は(x,y)のような座標形式で表現できない唯一の点である。このように、アファイン座標では無限遠点以外の点はGF(q)の2つの要素の組として表される。楕円曲線E上の点の間には点の加算と呼ばれる演算が可能であり、GF(q)における加減乗除の組み合わせによって計算される。
【0004】
ペアリングとは2入力1出力関数で、3つの群G1,G2,G3に対して、写像e:G1×G2−>G3で以下の性質を満たすものをいう。
(1)e(au+bv,x) =a・e(u,x) +b・e(v,x)
(2)e(u,cx+dz) =c・e(u,x) +d・e(u,z)
【0005】
暗号技術として使用されるペアリングの例として以下のものがある。
(a)Weilペアリング
(b)Tateペアリング
(c)ηTペアリング
(d)Ateペアリング、Twisted Ateペアリングなど
【0006】
ここで、TateペアリングとηTペアリングについて説明する。まず、楕円曲線上のTateペアリングについて説明する。次の式で定義される有限体GF(33)上の楕円曲線を考える。
E:y2=x3−x+b
(但し、b=−1又は1とする)
【0007】
Tateペアリングは、楕円曲線E上の2点P,Qに関して、ある値を返す関数e(P,Q)である。また、ηTペアリングは、Tateペアリングをより高速計算可能に改良したペアリングである。
【0008】
なお、ηTペアリングとTateペアリングには、以下の式(1)のような関係がある。
(ηT(P,Q)M)^{3T2}=e(P,ψ(Q))L (1)
【0009】
ここで、M、T、L及び写像ψは以下のように定義される。
M=(36m−1)/(3m+b3{(m+1)/2}+1)
T=−b3{(m+1)/2}−1
L=−b3{(m+3)/2}
ψ(x,y) =(ρ−x,σy) (但し、σ,ρはσ2=−1,ρ3=ρ+bを満たす元)
【0010】
TateペアリングとηTペアリングの間に成り立つ式(1)を変形して、以下のような式に変形されることも知られている。
e(P,ψ(Q))=(ηT(P,Q)M)^{3T2/L} (2)
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2008−20653号公報
【特許文献2】特開平7−261662号公報
【非特許文献】
【0012】
【非特許文献1】岡本栄司、岡本健、金山直樹、「ペアリングに関する最近の研究動向」,Fundamentals Review, Vol. 1, No. 1,pp.51-60, 2007/07
【発明の概要】
【発明が解決しようとする課題】
【0013】
従来、個別にペアリングのハードウエア化について検討が行われている。しかしながら、暗号技術として使用されているペアリングは複数あり、現在暗号で使用するペアリングの標準化が進んでいない。そのため、小規模の回路で複数のペアリング演算を実施することが望まれている。
【0014】
従って、本技術の目的は、TateペアリングとηTペアリングとを小規模な回路で実現するための技術を提供することである。
【課題を解決するための手段】
【0015】
第1の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する第1の選択回路と、(C)楕円曲線上の点P及び第1の選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、(D)ηTペアリング計算回路の出力に対して、有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTペアリング計算回路の出力と第2の回路の出力とのいずれかを出力する第2の選択回路と、(F)Tateペアリングの計算結果を出力する場合には第1の選択回路に第1の回路の出力をηTペアリング計算回路に出力させ且つ第2の選択回路に第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1の選択回路に楕円曲線上の点Qを出力させ且つ第2の選択回路にηTペアリング計算回路の出力を出力させる制御回路とを有する。
【0016】
第2の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する第1の選択回路と、(C)楕円曲線上の点P及び第1の選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路と、(F)第2の回路の出力と第3の回路の出力とのいずれかを出力する第2の選択回路と、(G)Tateペアリングの計算結果を出力する場合には第1の選択回路に第1の回路の出力をηTkペアリング計算回路に出力させ且つ第2の選択回路に第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1の選択回路に楕円曲線上の点Qを出力させ且つ第2の選択回路に第3の回路の出力を出力させる制御回路とを有する。
【0017】
第3の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路と、(E)Tateペアリングの計算結果を出力する場合には選択回路に第1の回路の出力をηTkペアリング計算回路に出力させ且つべき乗演算回路に有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施させ、ηTペアリングの計算結果を出力する場合には選択回路に楕円曲線上の点Qを出力させ且つべき乗演算回路に1/k乗演算を実施させる制御回路とを有する。
【発明の効果】
【0018】
TateペアリングとηTペアリングとを小規模な回路で実現できるようになる。
【図面の簡単な説明】
【0019】
【図1】図1は、第1の実施の形態に係るペアリング演算装置の回路構成例を示す図である。
【図2】図2は、第1の実施の形態に係るηTペアリング計算部の回路構成例を示す図である。
【図3】図3は、第1の実施の形態においてTateペアリング計算を実施する場合の処理フローを示す図である。
【図4】図4は、第1の実施の形態においてηTペアリング計算を実施する際の処理フローを示す図である。
【図5】図5は、第2の実施の形態に係るペアリング演算装置の回路構成例を示す図である。
【図6】図6は、第2の実施の形態に係るηTkペアリング計算部の回路構成例を示す図である。
【図7】図7は、第2の実施の形態においてTateペアリング計算を実施する場合の処理フローを示す図である。
【図8】図8は、第2の実施の形態においてηTペアリング計算を実施する際の処理フローを示す図である。
【図9】図9は、第3の実施の形態に係るペアリング演算装置の回路構成例を示す図である。
【図10】図10は、第3の実施の形態においてTateペアリング計算を実施する場合の処理フローを示す図である。
【図11】図11は、第3の実施の形態においてηTペアリング計算を実施する際の処理フローを示す図である。
【図12】図12は、実施の形態間の効果比較表を示す図である。
【図13】図13は、ICカードの一例を示す図である。
【発明を実施するための形態】
【0020】
[実施の形態1]
本技術の第1の実施の形態では、上で述べた式(2)に基づいた回路構成を採用する。なお、このような回路構成については公開されたものはない。
【0021】
本実施の形態に係るペアリング演算装置100の回路構成図を図1に示す。本ペアリング演算装置100は、レジスタQと、レジスタPと、ψ-1(Q)演算部101と、セレクタ102と、ηTペアリング計算部103と、{3MT2/L}乗演算部105と、セレクタ106と、レジスタ107と、制御部104とを有する。
【0022】
レジスタQは、有限体GF(33)における楕円曲線E:y2=x3−x+b(但し、b=−1又は1とする)上の点Q(xq,yq)の値を格納するレジスタであり、ψ-1(Q)演算部101及びセレクタ102に接続されている。レジスタPは、上で述べた楕円曲線上の点P(xp,yp)の値を格納するレジスタであり、ηTペアリング計算部103に接続されている。
【0023】
ψ-1(Q)演算部101は、点Qに対して、写像ψ(x,y) =(ρ−x,σy) (但し、σ,ρはσ2=−1,ρ3=ρ+bを満たす元)の逆写像ψ-1(Q)を計算する回路であり、セレクタ102に接続されている。なお、ψ-1(Q)=(ρ-xq,σ-1yq)となる。
【0024】
セレクタ102には、ψ-1(Q)演算部101からの出力とレジスタQからの値とが入力されており、セレクタ102は、選択信号の値に応じていずれかをηTペアリング計算部103に出力する。本実施の形態では、選択信号「0」が入力された場合にはレジスタQからの値を出力し、選択信号「1」が入力された場合にはψ-1(Q)演算部101からの出力を出力する。
【0025】
ηTペアリング計算部103は、レジスタPからの出力とセレクタ102からの出力とを用いて、ηTペアリング計算を実施する回路であり、{3MT2/L}乗演算部105とセレクタ106とに接続されている。ηTペアリング計算部103により実施される演算は、例えば以下のような演算である。なお、P=(xp,yp)及びQ=(xq,yq)を処理する場合を示している。
【0026】
【数1】
【0027】
{3MT2/L}乗演算部105は、ηTペアリング計算部103の出力を、上で述べた有限体において{3MT2/L}乗する演算を行う回路であり、セレクタ106に接続されている。ここで、M、T及びLは以下のように定義される。
M=(36m−1)/(3m+b3{(m+1)/2}+1)
T=−b3{(m+1)/2}−1
L=−b3{(m+3)/2}
【0028】
これらの値については外部からm及びbの値が与えられてレジスタなどに保持しておき、実際の演算時に算出するようにしてもよいし、最終的なM、T及びLの値をm及びbから事前に演算した後にレジスタなどに保持しておくようにしてもよい。
【0029】
なお、有限体におけるべき乗演算については、よく知られたいずれの方法でも良い。
【0030】
セレクタ106には、{3MT2/L}乗演算部105からの出力とηTペアリング計算部103からの出力とが入力されており、セレクタ106は、選択信号「0」が入力された場合にはηTペアリング計算部103からの出力を出力し、選択信号「1」が入力された場合には{3MT2/L}乗演算部105からの出力を出力する。セレクタ106の出力は、レジスタ107に接続されている。レジスタ107には、Tateペアリングの値e(P,Q)又はηTペアリングの値ηT(P,Q)が格納される。
【0031】
制御部104は、セレクタ102及び106に接続されており、外部からηTペアリングの値の算出を指示された場合には、選択信号「0」を出力し、外部からTateペアリングの値の算出を指示された場合には、選択信号「1」を出力する。
【0032】
ηTペアリング計算部103の構成例を図2に示す。ηTペアリング計算部103は、セレクタ102からの出力を格納するレジスタx1及びy1と、レジスタPに格納されている点Pの値を格納するレジスタx2及びy2と、有限体上の加算及び乗算を行う加算・乗算回路1031と、有限体上の三乗演算を行う3乗計算回路1032と、有限体上の1/3乗計算を行う1/3乗計算回路1033と、出力値を格納するレジスタfとを有する。加算・乗算回路1031と3乗計算回路1032と1/3乗計算回路1033とは、上で述べたアルゴリズムを実施する際に用いられる。
【0033】
次に、図1のペアリング演算装置100の動作を図3及び図4を用いて説明する。まず、Tateペアリングの計算を指示された場合の処理を図3を用いて説明する。この場合、制御部104は、選択信号「1」をセレクタ102及び106に出力する(ステップS1)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTペアリング計算部103に入力し、点Qの値をレジスタQからψ-1(Q)演算部101及びセレクタ102に入力する(ステップS3)。
【0034】
そして、ψ-1(Q)演算部101は、楕円曲線上の点Qに対してψ-1(Q)を計算し、セレクタ102に出力する(ステップS5)。セレクタ102では、制御部104から選択信号「1」が入力されているので、ψ-1(Q)演算部101の出力をηTペアリング計算部103に出力する。
【0035】
ηTペアリング計算部103は、セレクタ102からの出力ψ-1(Q)とレジスタPからの値とから、z=ηT(P,ψ-1)を計算し、セレクタ106及び{3MT2/L}乗演算部105に出力する(ステップS7)。
【0036】
{3MT2/L}乗演算部105は、ηTペアリング計算部103からの出力zの{3MT2/L}乗演算を実施して、演算結果をセレクタ106に出力する(ステップS9)。
【0037】
セレクタ106は、選択信号「1」が入力されているので、{3MT2/L}乗演算部105の出力e(P,Q)=z^{3MT2/L}を出力し、レジスタ107に格納する(ステップS11)。
【0038】
一方、ηTペアリングの計算を指示された場合の処理を図4を用いて説明する。この場合、制御部104は、選択信号「0」をセレクタ102及び106に出力する(ステップS21)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTペアリング計算部103に入力し、点Qの値をレジスタQからψ-1(Q)演算部101及びセレクタ102に入力する(ステップS23)。セレクタ102は、選択信号「0」に応じて、レジスタQからの出力値(点Qの値)をそのままηTペアリング計算部103に出力する。
【0039】
そして、ηTペアリング計算部103は、セレクタ102からの出力である点Qの値とレジスタPからの出力値(点Pの値)とから、z=ηT(P,Q)を計算し、セレクタ106及び{3MT2/L}乗演算部105に出力する(ステップS25)。
【0040】
セレクタ106は、選択信号「0」に応じて、ηTペアリング計算部103からの出力ηT(P,Q)をηTペアリングの値として出力し、レジスタ107に格納する(ステップS27)。
【0041】
以上のように、ηTペアリング計算部103をηTペアリングの計算及びTateペアリングの計算で共用するので、回路規模を小さくしつつ、2つのペアリングに対処できるようなペアリング演算装置100が得られる。
【0042】
[実施の形態2]
図2に示したように、第1の実施の形態におけるηTペアリング計算部103は、1/3乗計算回路1033を含むため、処理時間がかかるという問題がある。そこで、ηTペアリングのk(=3(m+1)/2)乗であるηTkペアリング計算を実施することによって、1/3乗演算を除去する。なお、余分にk乗しているので、1/k乗演算を追加すると共に{3MT2/L}乗を{3MT2/(Lk)}乗に変更する。ηTペアリング計算の中で1/3乗演算を行うよりも1/k乗演算を実施する方が高速に演算できるので、全体としても演算の高速化が可能となる。
【0043】
図5に、本実施の形態に係るペアリング演算装置200の回路構成を示す。本ペアリング演算装置200は、レジスタQと、レジスタPと、ψ-1(Q)演算部201と、セレクタ202と、ηTkペアリング計算部203と、{3MT2/(Lk)}乗演算部205と、セレクタ206と、レジスタ207と、制御部204と、{1/k}乗演算部208とを有する。
【0044】
レジスタQは、有限体GF(33)における楕円曲線E:y2=x3−x+b(但し、b=−1又は1とする)上の点Q(xq,yq)の値を格納するレジスタであり、ψ-1(Q)演算部201及びセレクタ202に接続されている。レジスタPは、上で述べた楕円曲線上の点P(xp,yp)の値を格納するレジスタであり、ηTkペアリング計算部203に接続されている。
【0045】
ψ-1(Q)演算部201は、点Qに対して、写像ψ(x,y) =(ρ−x,σy) (但し、σ,ρはσ2=−1,ρ3=ρ+bを満たす元)の逆写像ψ-1(Q)を計算する回路であり、セレクタ202に接続されている。なお、ψ-1(Q)=(ρ-xq,σ-1yq)となる。
【0046】
セレクタ202には、ψ-1(Q)演算部201からの出力とレジスタQからの値とが入力されており、セレクタ202は、選択信号の値に応じていずれかをηTkペアリング計算部203に出力する。本実施の形態では、選択信号「0」が入力された場合にはレジスタQからの値を出力し、選択信号「1」が入力された場合にはψ-1(Q)演算部201からの出力を出力する。
【0047】
ηTkペアリング計算部203は、レジスタPからの出力とセレクタ202からの出力とを用いて、ηTkペアリング計算を実施する回路であり、{3MT2/(Lk)}乗演算部205と{1/k}乗演算部208とに接続されている。ηTkペアリング計算部203により実施される演算は、例えば以下のような演算である。なお、P=(xp,yp)及びQ=(xq,yq)を処理する場合を示している。
【0048】
【数2】
【0049】
{3MT2/(Lk)}乗演算部205は、ηTkペアリング計算部203の出力を、上で述べた有限体において{3MT2/(Lk)}乗する演算を行う回路であり、セレクタ206に接続されている。M、T及びLは第1の実施の形態と同じである。kも、上で述べたように、k=3(m+1)/2である。
【0050】
これらの値については外部からm及びbの値が与えられてレジスタなどに保持しておき、実際の演算時に算出するようにしてもよいし、最終的なM、T及びLの値をm及びbから事前に演算した後にレジスタなどに保持しておくようにしてもよい。
【0051】
また、{1/k}乗演算部208は、ηTkペアリング計算部203の出力を、上で述べた有限体において{1/k}乗する演算を行う回路であり、セレクタ206に接続されている。1/kについても、m又はkをレジスタに保持しておくようにしておき演算時に1/kを算出するようにしても良いし、最終的な値{1/k}を事前に算出後にレジスタなどに保持しておくようにしても良い。
【0052】
有限体におけるべき乗演算については、第1の実施の形態と同じように、よく知られた方法で実施可能である。
【0053】
セレクタ206には、{3MT2/(Lk)}乗演算部205からの出力と{1/k}乗演算部208からの出力とが入力されており、セレクタ206は、選択信号「0」が入力された場合には{1/k}乗演算部208からの出力を出力し、選択信号「1」が入力された場合には{3MT2/(Lk)}乗演算部205からの出力をレジスタ207に出力する。セレクタ206の出力は、レジスタ207に接続されている。レジスタ207には、Tateペアリングの値e(P,Q)又はηTペアリングの値ηT(P,Q)が格納される。
【0054】
制御部204は、セレクタ202及び206に接続されており、外部からηTペアリングの値の算出を指示された場合には、選択信号「0」を出力し、外部からTateペアリングの値の算出を指示された場合には、選択信号「1」を出力する。
【0055】
ηTkペアリング計算部203の構成例を図6に示す。ηTkペアリング計算部203は、セレクタ202からの出力値を格納するレジスタx1及びy1と、レジスタPに格納されている点Pの値を格納するレジスタx2及びy2と、有限体上の加算及び乗算を行う加算・乗算回路2031と、有限体上の三乗演算を行う3乗計算回路2032と、出力値を格納するレジスタfとを有する。加算・乗算回路2031と3乗計算回路2032とは、上で述べたアルゴリズムを実施する際に用いられる。この図からも分かるように、ηTkペアリング計算部203には、1/3乗計算回路1033は含まれておらず、その分処理速度も速くなる。
【0056】
次に、図5のペアリング演算装置200の動作を図7及び図8を用いて説明する。まず、Tateペアリングの計算を指示された場合の処理を図7を用いて説明する。この場合、制御部204は、選択信号「1」をセレクタ202及び206に出力する(ステップS31)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTkペアリング計算部203に入力し、点Qの値をレジスタQからψ-1(Q)演算部201及びセレクタ202に入力する(ステップS33)。
【0057】
そして、ψ-1(Q)演算部201は、楕円曲線上の点Qに対してψ-1(Q)を計算し、セレクタ202に出力する(ステップS35)。セレクタ202では、制御部204から選択信号「1」が入力されているので、ψ-1(Q)演算部201の出力をηTkペアリング計算部203に出力する。
【0058】
ηTkペアリング計算部203は、セレクタ202からの出力ψ-1(Q)とレジスタPからの値とから、z=ηT(P,ψ-1)kを計算し、{1/k}乗演算部208及び{3MT2/(Lk)}乗演算部205に出力する(ステップS37)。
【0059】
{3MT2/(Lk)}乗演算部205は、ηTkペアリング計算部203からの出力zの{3MT2/(Lk)}乗演算を実施して、セレクタ206に出力する(ステップS39)。
【0060】
セレクタ206は、選択信号「1」が入力されているので、{3MT2/(Lk)}乗演算部205の出力e(P,Q)=z^{3MT2/(Lk)}を出力し、レジスタ207に格納する(ステップS41)。
【0061】
一方、ηTペアリングの計算を指示された場合の処理を図8を用いて説明する。この場合、制御部204は、選択信号「0」をセレクタ202及び206に出力する(ステップS51)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTkペアリング計算部203に入力し、点Qの値をレジスタQからψ-1(Q)演算部201及びセレクタ202に入力する(ステップS53)。セレクタ202は、選択信号「0」に応じて、レジスタQからの出力値(点Qの値)をそのままηTkペアリング計算部203に出力する。
【0062】
そして、ηTkペアリング計算部203は、セレクタ202からの出力である点Qの値とレジスタPからの出力値(点Pの値)とから、z=ηT(P,Q)kを計算し、{1/k}乗演算部208及び{3MT2/(Lk)}乗演算部205に出力する(ステップS55)。
【0063】
{1/k}乗演算部208は、ηTkペアリング計算部203から入力されたz=ηT(P,Q)kの1/k乗であるz1/kを計算して、セレクタ206に出力する(ステップS57)。
【0064】
セレクタ206は、選択信号「0」に応じて、{1/k}乗演算部208からの出力ηT(P,Q)(=z1/k)をηTペアリングの値として出力し、レジスタ107に格納する(ステップS59)。
【0065】
以上のように、ηTkペアリング計算部203をηTペアリング計算部103の代わりに導入することによって、全体の処理が高速化される。なお、図2と図6との比較からして、回路規模については第1の実施の形態とほぼ同じになっている。
【0066】
[実施の形態3]
第2の実施の形態では、ηTkペアリング計算部203を導入する代わりに、{1/k}乗演算部208を導入している。しかし、べき乗演算は、そもそも{3MT2/L}乗演算部105が設けられていた。そこで、{1/k}乗演算部208及び{3MT2/(Lk)}乗演算部205とを統合してs乗演算部を導入してsの値を切り替えることによって、回路の共通化により全体の回路規模を小さくする。
【0067】
図9に、本実施の形態に係るペアリング演算装置300の回路構成を示す。本ペアリング演算装置300は、レジスタQと、レジスタPと、ψ-1(Q)演算部301と、セレクタ302と、ηTkペアリング計算部303と、s乗演算部308と、セレクタ306と、最終結果を格納するレジスタ307と、制御部304と、{1/k}の値を格納するレジスタ309と、{3MT2/(Lk)}の値を格納するレジスタ310とを有する。
【0068】
レジスタQは、有限体GF(33)における楕円曲線E:y2=x3−x+b(但し、b=−1又は1とする)上の点Q(xq,yq)の値を格納するレジスタであり、ψ-1(Q)演算部301及びセレクタ302に接続されている。レジスタPは、上で述べた楕円曲線上の点P(xp,yp)の値を格納するレジスタであり、ηTkペアリング計算部303に接続されている。
【0069】
ψ-1(Q)演算部301は、点Qに対して、写像ψ(x,y) =(ρ−x,σy) (但し、σ,ρはσ2=−1,ρ3=ρ+bを満たす元)の逆写像ψ-1(Q)を計算する回路であり、セレクタ302に接続されている。なお、ψ-1(Q)=(ρ-xq,σ-1yq)となる。
【0070】
セレクタ302には、ψ-1(Q)演算部301からの出力とレジスタQからの値とが入力されており、セレクタ302は、選択信号の値に応じていずれかをηTkペアリング計算部303に出力する。本実施の形態でも、選択信号「0」が入力された場合にはレジスタQからの値を出力し、選択信号「1」が入力された場合にはψ-1(Q)演算部301からの出力を出力する。
【0071】
ηTkペアリング計算部303は、レジスタPからの出力とセレクタ302からの出力とを用いて、ηTkペアリング計算を実施する回路であり、s乗演算部308に接続されている。ηTkペアリング計算部303により実施される演算は、第2の実施の形態で示したものと同じである。
【0072】
レジスタ309とレジスタ310とはセレクタ306に接続されており、セレクタ306の出力はs乗演算部308に接続されている。セレクタ306は、選択信号の値に応じていずれかをs乗演算部308に出力する。本実施の形態では、選択信号「0」が入力された場合にはレジスタ309からの値をs乗演算部308に出力し、選択信号「1」が入力された場合にはレジスタ310からの値をs乗演算部308に出力する。
【0073】
s乗演算部308は、ηTkペアリング計算部303の出力zを、有限体においてs(sはセレクタ306の出力値)乗する演算を実施する回路であり、レジスタ307に接続されている。s乗演算部308は、演算結果をレジスタ307に格納する。なお、有限体におけるべき乗演算については、よく知られた演算であるからここでは詳しく述べない。
【0074】
制御部304は、セレクタ302及び306に接続されており、外部からηTペアリングの値の算出を指示された場合には、選択信号「0」を出力し、外部からTateペアリングの値の算出を指示された場合には、選択信号「1」を出力する。
【0075】
次に、図10及び図11を用いてペアリング演算装置300の動作を説明する。
【0076】
まず、Tateペアリングの計算を指示された場合の処理を図10を用いて説明する。この場合、制御部304は、選択信号「1」をセレクタ302及び306に出力する(ステップS61)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTkペアリング計算部303に入力し、点Qの値をレジスタQからψ-1(Q)演算部301及びセレクタ302に入力する(ステップS63)。
【0077】
そして、ψ-1(Q)演算部301は、楕円曲線上の点Qに対してψ-1(Q)を計算し、セレクタ302に出力する(ステップS65)。セレクタ302では、制御部304から選択信号「1」が入力されているので、ψ-1(Q)演算部301の出力をηTkペアリング計算部303に出力する。
【0078】
ηTkペアリング計算部203は、セレクタ302からの出力ψ-1(Q)とレジスタPからの値とから、z=ηT(P,ψ-1)kを計算し、s乗演算部308に出力する(ステップS67)。
【0079】
また、セレクタ306は、制御部304からの選択信号「1」に応じて、レジスタ310からの値{3MT2/(Lk)}をs乗演算部308に出力する。
【0080】
s乗演算部308は、ηTkペアリング計算部203からの出力zに対して、セレクタ306からのs={3MT2/(Lk)}に応じてs乗演算を実施して、z^{3MT2/(Lk)}を算出する(ステップS69)。そして、s乗演算部308は、演算結果z^{3MT2/(Lk)}を、Tateペアリングの結果e(P,Q)=z^{3MT2/(Lk)}として、レジスタ307に出力して格納する(ステップS71)。
【0081】
一方、ηTペアリングの計算を指示された場合の処理を図11を用いて説明する。この場合、制御部304は、選択信号「0」をセレクタ302及び306に出力する(ステップS81)。また、上で述べた楕円曲線上の点Pの値を、レジスタPからηTkペアリング計算部303に入力し、点Qの値をレジスタQからψ-1(Q)演算部301及びセレクタ302に入力する(ステップS83)。セレクタ302は、選択信号「0」に応じて、レジスタQからの出力値(点Qの値)をそのままηTkペアリング計算部303に出力する。
【0082】
そして、ηTkペアリング計算部303は、セレクタ302からの出力である点Qの値とレジスタPからの出力値(点Pからの値)とから、z=ηT(P,Q)kを計算し、s乗演算部308に出力する(ステップS85)。
【0083】
また、セレクタ306は、制御部304からの選択信号「0」に応じて、レジスタ309からの値{1/k}をs乗演算部308に出力する。
【0084】
s乗演算部308は、ηTkペアリング計算部303からの出力zに対して、セレクタ306からのs={1/k}に応じてs乗演算を実施して、z^{1/k}を算出する(ステップS87)。そして、s乗演算部308は、演算結果z^{1/k}を、ηTペアリングの値としてレジスタ307に出力して格納する(ステップS89)。
【0085】
以上のように、べき乗演算を共通の回路で実施することによって小さな回路規模で2つのペアリングの演算が可能となる。
【0086】
図12に3つの実施の形態の処理速度及び回路規模の比較表を示す。なお、図12は、第1の実施の形態を基準とした比較表を表している。これを見ると、第2の実施の形態は、第1の実施の形態ではTateペアリング計算時には15%程度の処理の高速化が可能となっている。また、第3の実施の形態は、さらに回路規模も第1の実施の形態に比して15%程度削減できる。なお、第1の実施の形態は、ηTペアリング計算部103を共用しているので、従来に比してその分回路規模は削減できている。
【0087】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、ペアリング演算装置は、例えば図13に示すようなICカードに含まれる半導体チップ上に実装される場合もあれば、パーソナルコンピュータやサーバその他のコンピュータに実装される場合もある。ICカードのような小型の装置に実装する場合には、上で述べたような回路規模の削減が大きく寄与する。
【0088】
べき乗算、ηTペアリング計算やηTkペアリング計算については、さらに高速なアルゴリズムが存在する場合には、それらを採用することも可能である。
【0089】
以上述べた本実施の形態をまとめると、以下のようになる。
【0090】
第1の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する第1の選択回路と、(C)楕円曲線上の点P及び第1の選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、(D)ηTペアリング計算回路の出力に対して、有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTペアリング計算回路の出力と第2の回路の出力とのいずれかを出力する第2の選択回路と、(F)Tateペアリングの計算結果を出力する場合には第1の選択回路に第1の回路の出力をηTペアリング計算回路に出力させ且つ第2の選択回路に第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1の選択回路に楕円曲線上の点Qを出力させ且つ第2の選択回路にηTペアリング計算回路の出力を出力させる制御回路とを有する。
【0091】
このような回路を採用することによって、ηTペアリング計算回路を共用することによって、ηTペアリングとTateペアリングのいずれもに対応するペアリング演算装置の回路規模を削減することができるようになる。
【0092】
第2の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する第1の選択回路と、(C)楕円曲線上の点P及び第1の選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路と、(F)第2の回路の出力と第3の回路の出力とのいずれかを出力する第2の選択回路と、(G)Tateペアリングの計算結果を出力する場合には第1の選択回路に第1の回路の出力をηTkペアリング計算回路に出力させ且つ第2の選択回路に第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には第1の選択回路に楕円曲線上の点Qを出力させ且つ第2の選択回路に第3の回路の出力を出力させる制御回路とを有する。
【0093】
ηTkペアリング計算回路を導入することによって、処理高速化を阻害する1/3乗演算を除去して、処理速度を向上させることができるようになる。
【0094】
第3の態様に係るペアリング演算装置は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路と、(E)Tateペアリングの計算結果を出力する場合には選択回路に第1の回路の出力をηTkペアリング計算回路に出力させ且つべき乗演算回路に有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施させ、ηTペアリングの計算結果を出力する場合には選択回路に楕円曲線上の点Qを出力させ且つべき乗演算回路に1/k乗演算を実施させる制御回路とを有する。
【0095】
さらに、べき乗演算回路を導入することによって、さらに回路の共用が可能となり、回路規模を削減することができる。
【0096】
また、第4の態様に係るペアリング演算方法は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、(D)ηTペアリング計算回路の出力に対して、有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路とを有するペアリング演算装置により実行される。そして、本ペアリング演算方法は、(α)Tateペアリングの値を算出する場合には、第1の回路が前記楕円曲線上の点Qから逆写像ψ-1(Q)を算出し、選択回路が第1の回路の出力をηTペアリング計算回路に出力し、ηTペアリング計算回路が第1の回路の出力及び楕円曲線上の点Pに対してηTペアリングの値を算出して第2の回路に出力し、第2の回路がηTペアリング計算回路の出力の有限体における3MT2/L乗演算を実施して出力するステップと、(β)ηTペアリングの値を算出する場合には、選択回路が楕円曲線上の点QをηTペアリング計算回路に出力し、ηTペアリング計算回路が楕円曲線上の点P及び点Qに対して前記ηTペアリングの値を算出して出力するステップとを含む。
【0097】
小規模な回路構成にて2つのペアリングの演算が可能となる。
【0098】
また、第5の態様に係るペアリング演算方法は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、(E)ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路とを有するペアリング演算装置により実行される。そして、本ペアリング演算方法は、(α)Tateペアリングの値を算出する場合には、第1の回路が楕円曲線上の点Qから逆写像ψ-1(Q)を算出し、選択回路が第1の回路の出力をηTkペアリング計算回路に出力し、ηTkペアリング計算回路が第1の回路の出力及び楕円曲線上の点Pに対してηTkペアリングの値を算出して第2の回路に出力し、第2の回路がηTkペアリング計算回路の出力の有限体における3MT2/Lk乗演算を実施して出力するステップと、(β)ηTペアリングの値を算出する場合には、選択回路が楕円曲線上の点QをηTkペアリング計算回路に出力し、ηTkペアリング計算回路が楕円曲線上の点P及び点Qに対してηTkペアリングの値を算出して第3の回路に出力し、第3の回路がηTkペアリング計算回路の出力の1/k乗を算出して出力するステップとを含む。
【0099】
さらに処理速度も高速化することができるようになる。
【0100】
さらに、第6の態様に係るペアリング演算方法は、(A)有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、(B)楕円曲線上の点Qと第1の回路の出力とのいずれかを出力する選択回路と、(C)楕円曲線上の点P及び選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、(D)ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路とを有するペアリング演算装置により実行される。そして、ペアリング演算方法は、(α)Tateペアリングの値を算出する場合には、第1の回路が楕円曲線上の点Qから逆写像ψ-1(Q)を算出し、選択回路が第1の回路の出力をηTkペアリング計算回路に出力し、ηTkペアリング計算回路が第1の回路の出力及び楕円曲線上の点Pに対してηTkペアリングの値を算出してべき乗演算回路に出力し、べき乗演算回路がηTkペアリング計算回路の出力の有限体における3MT2/(Lk)乗演算を実施して出力するステップと、(β)ηTペアリングの値を算出する場合には、選択回路が楕円曲線上の点QをηTkペアリング計算回路に出力し、ηTkペアリング計算回路が楕円曲線上の点P及び点Qに対してηTkペアリングの値を算出してべき乗演算回路に出力し、べき乗演算回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップとを含む。
【0101】
さらに小規模な回路構成にて2つのペアリングの演算を実施することができるようになる。
【0102】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0103】
(付記1)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する第1の選択回路と、
前記楕円曲線上の点P及び前記第1の選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、
前記ηTペアリング計算回路の出力に対して、前記有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、
前記ηTペアリング計算回路の出力と前記第2の回路の出力とのいずれかを出力する第2の選択回路と、
Tateペアリングの計算結果を出力する場合には前記第1の選択回路に前記第1の回路の出力を前記ηTペアリング計算回路に出力させ且つ前記第2の選択回路に前記第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には前記第1の選択回路に前記楕円曲線上の点Qを出力させ且つ前記第2の選択回路に前記ηTペアリング計算回路の出力を出力させる制御回路と、
を有するペアリング演算装置。
【0104】
(付記2)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する第1の選択回路と、
前記楕円曲線上の点P及び前記第1の選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、
前記ηTkペアリング計算回路の出力に対して、前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、
前記ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路と、
前記第2の回路の出力と前記第3の回路の出力とのいずれかを出力する第2の選択回路と、
Tateペアリングの計算結果を出力する場合には前記第1の選択回路に前記第1の回路の出力を前記ηTkペアリング計算回路に出力させ且つ前記第2の選択回路に前記第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には前記第1の選択回路に前記楕円曲線上の点Qを出力させ且つ前記第2の選択回路に前記第3の回路の出力を出力させる制御回路と、
を有するペアリング演算装置。
【0105】
(付記3)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、
前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、
前記ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路と、
Tateペアリングの計算結果を出力する場合には前記選択回路に前記第1の回路の出力を前記ηTkペアリング計算回路に出力させ且つ前記べき乗演算回路に前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施させ、ηTペアリングの計算結果を出力する場合には前記選択回路に前記楕円曲線上の点Qを出力させ且つ前記べき乗演算回路に1/k乗演算を実施させる制御回路と、
を有するペアリング演算装置。
【0106】
(付記4)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、前記ηTペアリング計算回路の出力に対して、前記有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTペアリング計算回路に出力し、前記ηTペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTペアリングの値を算出して前記第2の回路に出力し、前記第2の回路が前記ηTペアリング計算回路の出力の前記有限体における3MT2/L乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTペアリング計算回路に出力し、前記ηTペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTペアリングの値を算出して出力するステップと、
を含むペアリング演算方法。
【0107】
(付記5)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、前記ηTkペアリング計算回路の出力に対して、前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、前記ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTkペアリングの値を算出して前記第2の回路に出力し、前記第2の回路が前記ηTkペアリング計算回路の出力の前記有限体における3MT2/Lk乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTkペアリングの値を算出して前記第3の回路に出力し、前記第3の回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップと、
を含むペアリング演算方法。
【0108】
(付記6)
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、前記ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTkペアリングの値を算出して前記べき乗演算回路に出力し、前記べき乗演算回路が前記ηTkペアリング計算回路の出力の前記有限体における3MT2/(Lk)乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTkペアリングの値を算出して前記べき乗演算回路に出力し、前記べき乗演算回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップと、
を含むペアリング演算方法。
【符号の説明】
【0109】
101,201,301 ψ-1(Q)演算部
102,106,202,206,302,306 セレクタ
103 ηTペアリング計算部
203,303 ηTkペアリング計算部
104,204,304 制御部
107,207,307 レジスタ
208 {1/k}乗演算部
308 s乗演算部 309,310 レジスタ
【特許請求の範囲】
【請求項1】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する第1の選択回路と、
前記楕円曲線上の点P及び前記第1の選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、
前記ηTペアリング計算回路の出力に対して、前記有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、
前記ηTペアリング計算回路の出力と前記第2の回路の出力とのいずれかを出力する第2の選択回路と、
Tateペアリングの計算結果を出力する場合には前記第1の選択回路に前記第1の回路の出力を前記ηTペアリング計算回路に出力させ且つ前記第2の選択回路に前記第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には前記第1の選択回路に前記楕円曲線上の点Qを出力させ且つ前記第2の選択回路に前記ηTペアリング計算回路の出力を出力させる制御回路と、
を有するペアリング演算装置。
【請求項2】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する第1の選択回路と、
前記楕円曲線上の点P及び前記第1の選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、
前記ηTkペアリング計算回路の出力に対して、前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、
前記ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路と、
前記第2の回路の出力と前記第3の回路の出力とのいずれかを出力する第2の選択回路と、
Tateペアリングの計算結果を出力する場合には前記第1の選択回路に前記第1の回路の出力を前記ηTkペアリング計算回路に出力させ且つ前記第2の選択回路に前記第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には前記第1の選択回路に前記楕円曲線上の点Qを出力させ且つ前記第2の選択回路に前記第3の回路の出力を出力させる制御回路と、
を有するペアリング演算装置。
【請求項3】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、
前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、
前記ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路と、
Tateペアリングの計算結果を出力する場合には前記選択回路に前記第1の回路の出力を前記ηTkペアリング計算回路に出力させ且つ前記べき乗演算回路に前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施させ、ηTペアリングの計算結果を出力する場合には前記選択回路に前記楕円曲線上の点Qを出力させ且つ前記べき乗演算回路に1/k乗演算を実施させる制御回路と、
を有するペアリング演算装置。
【請求項4】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、前記ηTペアリング計算回路の出力に対して、前記有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTペアリング計算回路に出力し、前記ηTペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTペアリングの値を算出して前記第2の回路に出力し、前記第2の回路が前記ηTペアリング計算回路の出力の前記有限体における3MT2/L乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTペアリング計算回路に出力し、前記ηTペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTペアリングの値を算出して出力するステップと、
を含むペアリング演算方法。
【請求項5】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、前記ηTkペアリング計算回路の出力に対して、前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、前記ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTkペアリングの値を算出して前記第2の回路に出力し、前記第2の回路が前記ηTkペアリング計算回路の出力の前記有限体における3MT2/Lk乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTkペアリングの値を算出して前記第3の回路に出力し、前記第3の回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップと、
を含むペアリング演算方法。
【請求項6】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、前記ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTkペアリングの値を算出して前記べき乗演算回路に出力し、前記べき乗演算回路が前記ηTkペアリング計算回路の出力の前記有限体における3MT2/(Lk)乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTkペアリングの値を算出して前記べき乗演算回路に出力し、前記べき乗演算回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップと、
を含むペアリング演算方法。
【請求項1】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する第1の選択回路と、
前記楕円曲線上の点P及び前記第1の選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、
前記ηTペアリング計算回路の出力に対して、前記有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、
前記ηTペアリング計算回路の出力と前記第2の回路の出力とのいずれかを出力する第2の選択回路と、
Tateペアリングの計算結果を出力する場合には前記第1の選択回路に前記第1の回路の出力を前記ηTペアリング計算回路に出力させ且つ前記第2の選択回路に前記第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には前記第1の選択回路に前記楕円曲線上の点Qを出力させ且つ前記第2の選択回路に前記ηTペアリング計算回路の出力を出力させる制御回路と、
を有するペアリング演算装置。
【請求項2】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する第1の選択回路と、
前記楕円曲線上の点P及び前記第1の選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、
前記ηTkペアリング計算回路の出力に対して、前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、
前記ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路と、
前記第2の回路の出力と前記第3の回路の出力とのいずれかを出力する第2の選択回路と、
Tateペアリングの計算結果を出力する場合には前記第1の選択回路に前記第1の回路の出力を前記ηTkペアリング計算回路に出力させ且つ前記第2の選択回路に前記第2の回路の出力を出力させ、ηTペアリングの計算結果を出力する場合には前記第1の選択回路に前記楕円曲線上の点Qを出力させ且つ前記第2の選択回路に前記第3の回路の出力を出力させる制御回路と、
を有するペアリング演算装置。
【請求項3】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、
前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、
前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、
前記ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路と、
Tateペアリングの計算結果を出力する場合には前記選択回路に前記第1の回路の出力を前記ηTkペアリング計算回路に出力させ且つ前記べき乗演算回路に前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施させ、ηTペアリングの計算結果を出力する場合には前記選択回路に前記楕円曲線上の点Qを出力させ且つ前記べき乗演算回路に1/k乗演算を実施させる制御回路と、
を有するペアリング演算装置。
【請求項4】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値を算出するηTペアリング計算回路と、前記ηTペアリング計算回路の出力に対して、前記有限体における3MT2/L(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTペアリング計算回路に出力し、前記ηTペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTペアリングの値を算出して前記第2の回路に出力し、前記第2の回路が前記ηTペアリング計算回路の出力の前記有限体における3MT2/L乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTペアリング計算回路に出力し、前記ηTペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTペアリングの値を算出して出力するステップと、
を含むペアリング演算方法。
【請求項5】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、前記ηTkペアリング計算回路の出力に対して、前記有限体における3MT2/(Lk)(M=(36m−1)/(3m+b3{(m+1)/2}+1),T=−b3{(m+1)/2}−1,L=−b3{(m+3)/2})乗演算を実施する第2の回路と、前記ηTkペアリング計算回路の出力の1/k乗を算出する第3の回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTkペアリングの値を算出して前記第2の回路に出力し、前記第2の回路が前記ηTkペアリング計算回路の出力の前記有限体における3MT2/Lk乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTkペアリングの値を算出して前記第3の回路に出力し、前記第3の回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップと、
を含むペアリング演算方法。
【請求項6】
有限体GF(3m)における楕円曲線y2=x3−x+b上の点Qから、所定の写像ψの逆写像ψ-1(Q)を算出する第1の回路と、前記楕円曲線上の点Qと前記第1の回路の出力とのいずれかを出力する選択回路と、前記楕円曲線上の点P及び前記選択回路の出力に対して、ηTペアリングの値のk(k=3(m+1)/2)乗を算出するηTkペアリング計算回路と、前記ηTkペアリング計算回路の出力に対して、指定されたべき乗算を実施するべき乗演算回路とを有するペアリング演算装置により実行されるペアリング演算方法であって、
Tateペアリングの値を算出する場合には、前記第1の回路が前記楕円曲線上の点Qから前記逆写像ψ-1(Q)を算出し、前記選択回路が前記第1の回路の出力を前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記第1の回路の出力及び前記楕円曲線上の点Pに対して前記ηTkペアリングの値を算出して前記べき乗演算回路に出力し、前記べき乗演算回路が前記ηTkペアリング計算回路の出力の前記有限体における3MT2/(Lk)乗演算を実施して出力するステップと、
ηTペアリングの値を算出する場合には、前記選択回路が前記楕円曲線上の点Qを前記ηTkペアリング計算回路に出力し、前記ηTkペアリング計算回路が前記楕円曲線上の点P及び点Qに対して前記ηTkペアリングの値を算出して前記べき乗演算回路に出力し、前記べき乗演算回路が前記ηTkペアリング計算回路の出力の1/k乗を算出して出力するステップと、
を含むペアリング演算方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−150096(P2011−150096A)
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願番号】特願2010−10559(P2010−10559)
【出願日】平成22年1月21日(2010.1.21)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願日】平成22年1月21日(2010.1.21)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]