JP4970291B2 - ペアリング計算装置及びプログラム - Google Patents

ペアリング計算装置及びプログラム Download PDF

Info

Publication number
JP4970291B2
JP4970291B2 JP2008000590A JP2008000590A JP4970291B2 JP 4970291 B2 JP4970291 B2 JP 4970291B2 JP 2008000590 A JP2008000590 A JP 2008000590A JP 2008000590 A JP2008000590 A JP 2008000590A JP 4970291 B2 JP4970291 B2 JP 4970291B2
Authority
JP
Japan
Prior art keywords
calculation
finite field
power
control means
pairing
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
JP2008000590A
Other languages
English (en)
Other versions
JP2009163008A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008000590A priority Critical patent/JP4970291B2/ja
Publication of JP2009163008A publication Critical patent/JP2009163008A/ja
Application granted granted Critical
Publication of JP4970291B2 publication Critical patent/JP4970291B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ペアリング計算の過程で行う有限体の乗法群におけるべき乗演算を高速に実行し得るペアリング計算装置及びプログラムに関する。
楕円曲線のペアリングを用いたIDベース(ID-Based)暗号や署名長の短いデジタル署名を実現する方法が提案されている(例えば、非特許文献1,2参照。)。
ペアリングとは、DH(Diffie-Hellman)問題が困難な巡回群G1,G2上の非退化な双線型写像のことを意味する。
f:G1×G1→G2
詳しくは有限体Fq上で定義される楕円曲線をE(Fq)とする。この楕円曲線E(Fq)の有理点のなす群に含まれる元P=(xP,yP)及び元Q=(xQ,yQ)とすると、ペアリングではこのPとQを入力として、乗法群Fqiへの元を導出する。
ここでペアリングは以下の性質を持つ。
(1)非退化性
任意のQに対して、e(P,Q)=1が成立するとき、P=Oである。ここでOは無限遠点を意味する。
(2)反対称性
任意のP,Qに対して、e(P,Q)=e(Q,P)-1 が成立する。
(3)双線形性
任意のP,Q,Rに対して、
e(P+Q,R)=e(P,R)e(Q,R)
e(P,Q+R)=e(P,Q)e(P,R)
が成立する。
また、ペアリングは双線形性を満たすことから、任意の整数mに対して以下の性質を持つことが知られている。
e(mP+Q)=e(P,mQ)=e(P,Q)m
IDベース(ID-Based)暗号や署名長の短いデジタル署名はこの双線型を満たすペアリングを用いることで実現した方式である。
このペアリング写像を実現するアルゴリズムとして、テイト(Tate)ペアリング、エイト(Ate)ペアリング、イータ(eta)ペアリングなどが知られている(例えば、非特許文献3,4参照。)。これらペアリング内の処理に注目すると、それぞれ各ペアリングにおける処理は大きく以下の2つに分けて考えることができる。
(1)各アルゴリズムの計算
(2)最終べき(final exponentiation)の計算
このとき(1)の各アルゴリズムの計算処理は、前述したようにテイトペアリング、エイトペアリング、イータペアリングのようなアルゴリズムに依存して異なる処理となっている。これに対し、(2)の最終べきの計算処理は各アルゴリズムにはあまり依存せずに同様の処理となっている。
ここで、(1)と(2)の各処理の計算量について検討する。イータペアリングでは(1)の処理の計算量の半分が(2)の処理に必要となる場合が存在する。従って、各ペアリングにおいては、(1)の各アルゴリズムの計算処理を高速化することと同様に、(2)のべき乗演算の処理を高速化することも重要である。
これらの各処理のうち、(2)最終べきの計算処理については、トーラスと呼ばれる手法により高速化を実現している。但し、トーラスを用いた高速化手法としては、標数3の有限体上で定義される楕円曲線上の有理点を用いたペアリングに適用した手法のみが示されている。また、トーラスによる高速化の効果は、最新の研究でも15%程度といわれている。
D.Boneh, B.Lynn, H.Shacham, "Short signature from the Weil pairing", Asiacrypt 2001, LNCS 2248, pp.514-532, 2001 D.Boneh, M.Franklin, "Identity-based encryption from the weil pairing", CRYPTO 2001, LNCS 2139, pp.213-229, 2001 Paulo S.L.M.Barreto, Steven Galbraith, Colm O hEigeartaigh, Michael Scott, "Efficient Pairing Computation on Supersingular Abelian Varieties", ePrint Archive, Report 2004/375, 2004. http://eprint.iacr.org/2004/375 Masaaki Shirase, Tsuyoshi Takagi, Eiji Okamoto, "Some Efficient Algorithms for the Final Exponentiation of ηT Pairing", Cryptology ePrint Archive: Report 2006/431,2006, http://eprint.iacr.org/2006/431
しかしながら、(2)最終べきの計算処理に関してトーラスを用いた高速化手法においては、より一般的な標数の有限体上で定義されたペアリングに適用した手法が示されていない。
また、標数3の有限体上で定義される楕円曲線上の演算は、標数2の有限体上で定義される楕円曲線上の演算と比較して、3倍点などの演算が容易なことが知られている。
しかしながら、本発明者の検討によれば、ハードウェア構成の規模に着目すると、標数3よりも標数2の回路のほうが小規模のハードウェア構成となり、少ない構成要素で実現できると考えられる。すなわち、従来の高速化手法よりも小規模のハードウェア構成となる標数2の回路において、(2)最終べきの計算処理の高速化を実現することが望ましいと考えられる。
本発明は上記実情を考慮してなされたもので、一般的な標数の有限体上で定義される楕円曲線の有理点を用いたペアリング計算のうち、最終べき計算の高速化を実現し得るペアリング計算装置及びプログラムを提供することを目的とする。
第1の発明は、標数2及び拡大次数mの第1有限体F2m上で定義される楕円曲線上のペアリング対象データから点データfを計算した後、前記点データfの(22m−1)(2m−2(m+1)/2+1)乗を計算する最終べき処理を実行し、この最終べき処理の計算結果を出力するペアリング計算装置であって、前記第1有限体F2m上の四則演算、二乗算及びべき乗演算を実行するための第1有限体F2m演算手段と、標数2、拡大次数m及び埋め込み次数4の第2有限体F24m上の四則演算及び二乗算を実行するための第2有限体F24m演算手段と、前記第1有限体F2mの元a0,a1,a2,a3及び前記第2有限体F24mの各基底s,t,stに基づいて、前記第2有限体F24mの任意元Aの2m乗A^(2m)をA^(2m)=a0+a1s^(2m)+a2t^(2m)+a3(st)^(2m)と計算可能な場合(但し、^は べき乗を表す符号)、予め前記拡大次数mと、前記各基底の2m乗s^(2m),t^(2m),(st)^(2m)とを互いに関連付けて記憶した基底べき乗記憶手段と、前記点データfを前記任意元Aとした場合の当該任意元Aの22m乗を計算するように、前記基底べき乗記憶手段、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第1計算制御手段と、前記点データfを前記任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、前記基底べき乗記憶手段、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第2計算制御手段と、前記第1計算制御手段により得られた計算結果A^(22m)及び前記第2計算制御手段により得られた逆元A-1に基づいて、途中結果B=A^(22m)・A-1=A^(22m-1)を計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第3計算制御手段と、前記途中結果Bの逆元B-1をB-1=B^(22m)の関係式に基づいて計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第4計算制御手段と、前記第4計算制御手段により得られた逆元B-1に基づいて、前記途中結果Bの−2(m+1)/2乗を計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第5計算制御手段と、前記途中結果Bの2m乗を計算するように、前記第2有限体F24m演算手段を制御する第6計算制御手段と、前記第6計算制御手段により得られた計算結果B^(2m)、前記第5計算制御手段により得られた計算結果B^(-2(m+1)/2)、及び前記途中結果Bに基づいて、前記途中結果Bの(2m-2(m+1)/2+1)乗を計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第7計算制御手段と、前記第7計算制御手段により得られた計算結果B^(2m-2(m+1)/2+1)を前記最終べき処理の計算結果f^{(22m-1)(2m-2(m+1)/2+1)}として出力する手段と、を備えたペアリング計算装置である。
第2の発明は、標数p及び拡大次数mの第1有限体Fq(但し、q=pm)上で定義される楕円曲線をE(Fq)とし、前記楕円曲線の位数を#E(Fq)とし、当該楕円曲線E(Fq)上のペアリング写像の集合を第2有限体Fqkとしたとき、前記楕円曲線E(Fq)上のペアリング対象データから点データfを計算した後、前記点データfの(qk−1)/#E(Fq)乗を計算する最終べき処理を実行し、この最終べき処理の計算結果を出力するペアリング計算装置であって、前記第1有限体Fq上の四則演算、二乗算及びべき乗演算を実行するための第1有限体Fq演算手段と、前記第2有限体Fqk上の四則演算及び二乗算を実行するための第2有限体Fqk演算手段と、前記第2有限体Fqkの部分体Fqk/i上の四則演算及び二乗算を実行するための部分体Fqk/i演算手段(但し、iはkの因数)と、前記第1有限体Fqの元a0,a1,a2,a3及び前記第2有限体Fqkの各基底s,t,stに基づいて、前記第2有限体Fqkの任意元Aのq乗AqをAq=a0+a1sq+a2tq+a3(st)qと計算可能な場合、予め前記拡大次数mと、前記各基底のq乗sq,tq,(st)qとを互いに関連付けて記憶した基底べき乗記憶手段と、前記楕円曲線の位数#E(Fq)、前記第1有限体Fqの位数q、前記第2有限体Fqkの拡大次数kに基づいて、第1の関係#E(Fq)|(qk/2+1)、又は第2の関係#E(Fq)|(qk/2−1)が成り立つか否かを判定する判定手段(但し、|は、左辺が右辺を割り切ることを表す符号)と、前記第1の関係#E(Fq)|(qk/2+1)が成り立つ場合、前記点データfを前記任意元Aとした場合の当該任意元Aのqk/2乗を計算するように、前記基底べき乗記憶手段、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第1計算制御手段と、前記点データfを前記任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、前記基底べき乗記憶手段、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第2計算制御手段と、前記第1計算制御手段により得られた計算結果A^(qk/2)及び前記第2計算制御手段により得られた逆元A-1に基づいて、途中結果B=A^(qk/2)・A-1=A^(qk/2-1)を計算するように、前記第1有限体Fq
算手段及び前記第2有限体Fqk演算手段を制御する第3計算制御手段(但し、^は、べき乗を表す符号)と、前記途中結果Bの逆元B-1をB-1=B^(qk/2)の関係式に基づいて計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第4計算制御手段と、前記逆元B-1及び前記途中結果Bに基づいて、前記任意元Aの(qk−1)乗A^(qk-1)を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第5計算制御手段と、前記第5計算制御手段により得られた計算結果A^(qk-1)及び前記位数#E(Fq)に基づいて、A^{{(qk-1)/#E(Fq)}を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第6計算制御手段と、前記第2の関係#E(Fq)|(qk/2−1)が成り立つ場合、前記#E(Fq)|(qk/2−1)の因数に含まれる(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、前記任意元Aの(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)乗を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第7計算制御手段と、前記第7計算制御手段により得られた計算結果A^(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、A^{{(qk-1)/#E(Fq)}を計算するように、前記第1有限体Fq演算手段及び前記部分体Fqk/i演算手段を制御する第8計算制御手段と、前記第6又は第8計算制御手段により得られた計算結果A^{(qk-1)/#E(Fq)}を前記最終べき処理の計算結果f^{(qk-1)/#E(Fq)}として出力する手段と、を備えたペアリング計算装置である。
なお、各発明は「装置」として表現したが、これに限らず、「方法」、「プログラム」又は「コンピュータ読み取り可能な記憶媒体」等として表現してもよい。
(作用)
第1の発明においては、最終べきの計算処理のうち、逆元をB-1=B^(22m)の関係式に基づいて計算する構成により、従来の逆元導出アルゴリズムに比べ、逆元を高速に計算できるので、一般的な標数2の有限体上で定義される楕円曲線の有理点を用いたペアリング計算のうち、最終べき計算の高速化を実現することができる。
第2の発明においては、最終べきに関し、第1の関係#E(Fq)|(qk/2+1)が成り立つ場合には、第1の発明と同様に最終べきを計算し、第2の関係#E(Fq)|(qk/2−1)が成り立つ場合には、第2有限体Fqkの任意元Aを部分体Fqk/iの元に落として(ペアリングの写像先の集合をFqkより小さいFqk/iに変えて)最終べきを計算する構成により、一般的な標数qの有限体上で定義される楕円曲線の有理点を用いたペアリング計算のうち、最終べき計算の高速化を実現することができる。
以上説明したように本発明によれば、一般的な標数の有限体上で定義される楕円曲線の有理点を用いたペアリング計算のうち、最終べき計算の高速化を実現できる。
以下、本発明の各実施形態について図面を用いて説明するが、その前に各実施形態の概要を述べる。
(第1の実施形態の概要)
各実施形態では、最終べきの計算についてトーラスを用いることなく、楕円曲線を定義する有限体の性質を用いて高速化を実現する。また、第1の実施形態では埋め込み次数k=4の場合の例を示す。また各実施形態におけるmは楕円曲線を定義する有限体の拡大次数とする。例えばm=163、k=4の場合、各演算を行う集合は図9に示すような関係となる。なお、同図中、GF(2)は{0,1}の集合であり、有限体F2と呼んでもよい。GF(2m=163)は楕円曲線の定義体であり、f(x)=x163+x7+x6+x3+1で構成している。GF(2m=163)は、楕円曲線E(F2m)と呼んでもよい。#E(GF(2m=163))は楕円曲線上で定義される集合であり、y2+y=x3+x+1で構成している。#E(GF(2m=163))は、楕円曲線の位数#E(F2m)と呼んでもよい。GF(2km=652)は、ペアリングの写像先の集合であり、有限体F2kmと呼んでもよい。
<全体の処理シーケンス>
例えば、非特許文献3においてイータ(eta)ペアリングにおける任意の元Aは次のように表現される。
A=a0+a1s+a2t+a3st
ここで、A∈F24m ,
i∈F2m ,
s:f(s)=s2+s+1=0を満たす元
t:f(t)=t2+t+s=0を満たす元
非特許文献3におけるペアリング計算全体の処理フローは以下のようになる。
(1)ペアリング対象データP,Qはペアリング計算装置に入力される。
(2)入力されたペアリング対象データP,Qは、ペアリングアルゴリズム処理部に送られる。
(3)送られたペアリング対象データP,Qは、ペアリングアルゴリズム処理部により、点データfに変換される。
(4)点データfは、最終べき処理部に送られる。
(5)送られた点データfは、最終べき処理部により、最終べき結果が求められる。
(6)点データfの最終べき結果はペアリング計算装置から出力される。
ここで、上記(5)の最終べきの処理以外は従来と同様のため、説明を省略する。
<上記(5)の最終べきの処理シーケンス>
非特許文献3における最終べきの処理は、
Figure 0004970291
本実施形態では、上記処理(5−4−1)及び(5−4−2)により、最終べき計算を行う。
Figure 0004970291
つまり、B-1はB^(22m)により求めることができる。従ってB-1は通常の逆元導出処理を行うことなく、べき乗演算のみで導出することができる。
<2mべき乗処理について>
ここで例として任意元A∈F24mについて、その2m乗の計算コストについて考える。
任意元Aは前述したように次のように表される。
A=a0+a1s+a2t+a3st
ここでまず標数2の拡大体であることに注意すると、2i乗は次式により算出できる。
Figure 0004970291
理由は係数に2の倍数がある場合、標数2の集合では0と等しい(2で余りをとる集合)ためである。なお、べき乗のコンビネーションの項は、必ず2の倍数の係数となることは周知である。
従って、A∈F24m,a0,a1,a2,a3∈F2mであることに注意すると、2m 乗は次のように考えることができる。
Figure 0004970291
ここでa0,a1,a2,a3はF2mの元なので2m 乗すると元に戻る性質を持っているため、上記式変形を行うことができる。
また、各基底のべき乗は、法多項式の関係式s2+s+1=0,t2+t+s=0を用いて次のように予め求めることができる。
Figure 0004970291
すなわち、2m 乗の計算は加算のみで実行できる。また、標数2の拡大体における加算はXOR演算で実現可能である。このため、任意元の2m 乗の計算は非常に高速に実現できる。
例えば、第1の実施形態においてm=163の場合、任意元Aの2m 乗は次式のように計算できる。
Figure 0004970291
また、第1の実施形態における計算コストについて考察する。
次拡大体上の逆元導出、乗算、二乗算のコストをINV、MUL、SQRとし、それぞれをINV=10MUL、MUL=10SQU、を一例として見積もったとする。なお、次数m=163の場合で評価する。
従来の計算量:2INV+3MUL+(163+1)/2SQR=312SQR
本実施形態の計算量:INV+3MUL+(163+1)/2SQR=212SQR
すなわち、前記計算量を前提としたとき、本実施形態を用いた最終べき(final exponentiation)の計算は、従来に比べ、3割程度の計算量を削減できる。
このように、逆元を本実施形態により求めることで、『(1)各アルゴリズムの計算』と『(2)最終べき(final exponentiation)の計算』の計算量の比が2対1であるとすると、ペアリング計算全体では10数%程度の計算量削減を実現できる。
(第2の実施形態の概要)
第1の実施形態では、k=4となるようなパラメータを選択した場合の標数2上における計算について説明した。第2の実施形態では、より一般的な計算について述べる。
<最終べきの処理について>
任意の有限体Fq、(ここでq=pmとする)有限体Fq上で定義される楕円曲線をE(Fq)とし、その楕円曲線の位数を#E(Fq)とする。
また、その楕円曲線上の点を用いたペアリングの写像先の集合を乗法群Fqkとする。
このときペアリング計算における最終べきは次式を用いる。
最終べき:(qk−1)/#E(Fq)
このとき、#E(Fq)は一般的に次式で表すことができる。
Figure 0004970291
この最終べきについて以下の[1]〜[3]の場合に分けて考えることができる。
[1]#E(Fq)|(qk/2+1)の場合
このとき最終べきは
(qk−1)/#E(Fq)=(qk/2−1)(…)
と変形できるので、上式(…)内における逆元導出を高速化することができる。
詳しくは、第1の実施形態と同様に任意の元AはFqkの乗法群の元であることから、次のような性質を持つ。
Figure 0004970291
本実施形態においても、Fqkの元はFqの元を用いて表されるため、qのべき乗も第1の実施形態と同様に加算のみで行えることから、逆元導出のコストは大幅に削減することが可能になる。
一例として、本実施形態に適用できる2つのパラメータ例を以下にしめす。
(第1のパラメータ例)
非特許文献3において、標数2、拡大次数m、楕円曲線上の位数#E(F2m)、
2m上の楕円曲線y2+y=x3+x+bについて、
Figure 0004970291
となり、本実施形態を適用することができる。
(第2のパラメータ例)
本実施形態は、標数3の拡大体でも同様に逆元を関係式により高速演算する装置が実現可能となっている。
例えば非特許文献3,4においては、標数3の拡大体についても検討している。
ここでも同様に楕円曲線の位数は
Figure 0004970291
と変形でき、同様に逆元導出の演算を行うことなく逆元を求めることが可能になる。
[2]最終べきが#E(Fq)|(qk/2−1)の場合
この場合、最終べきは次式のように変形できる。
(qk−1)/#E(Fq)=(qk/2+1)(…)
このとき、任意元Aに関し、A^(qk/2+1)はFqk/2の元となることが知られている。従って、残り(…)乗の計算はFqkの部分体Fqk/2で実行できる。
このように、部分体で計算できるので、通常に最終べきを求めるよりも計算コストの削減が可能になる。
さらに(…)内の項に注目し、(qk/4+1)|(…)となる場合はさらに部分体Fqk/4に落とすことができ、逐次的に部分体に落とすことが可能である。
また上記のような場合だけではなく、最終べきの項に
Figure 0004970291
のような項が含まれている場合にはFqkの部分体Fqk/iに落とすことができるため、残りの計算をその部分体で実行することが可能になる。
なお、ここで、部分体に落とすことができることについて補足的に説明する。
有限体Fqkの任意元Aは次の性質を持つ。
Figure 0004970291
となる。
Figure 0004970291
このとき、最終べきの計算は、前述した方法を用いて高速化を行うことはできず、逆元も通常通り導出して最終べきを求めることとなる。これは従来法でも高速化できない場合である。
以上が各実施形態の概要である。次に、本発明の各実施形態を具体的に説明する。
(第1の実施形態の具体的な構成)
図1は本発明の第1の実施形態に係るペアリング計算装置の構成を示す模式図である。このペアリング計算装置100は、入出力部10、ペアリング計算制御部20、メモリ30、ペアリングアルゴリズム処理部40及び最終べき処理部50を備えている。
ここで、入出力部10は、標数2及び拡大次数mの第1有限体F2m上で定義される楕円曲線上のペアリング対象データが入力されると、このペアリング対象データをペアリング計算制御部20に送出する機能と、ペアリング計算制御部20から受けた最終べき計算結果を出力する機能とをもっている。
ペアリング計算制御部20は、入出力部10から入力されたペアリング対象データをメモリ30に書き込む機能と、メモリ30内のペアリング対象データをペアリングアルゴリズム処理部40に送出する機能と、ペアリングアルゴリズム処理部40から受けた点データfをメモリ30に書き込む機能と、メモリ30内の点データfを最終べき処理部50に送出する機能と、最終べき処理部50から受けた最終べきの計算結果を入出力部10に送出する機能とをもっている。
メモリ30は、各部20,30,50から読出/書込可能な記憶装置である。
ペアリングアルゴリズム処理部40は、ペアリングアルゴリズム計算制御部41及びペアリングアルゴリズム計算実行部42を備えている。
ペアリングアルゴリズム計算制御部41は、ペアリング計算制御部20から受けたペアリング対象データに基づいて、ペアリングアルゴリズム計算を実行するようにペアリングアルゴリズム計算実行部42を制御する機能と、ペアリングアルゴリズム計算実行部42により計算された点データfをペアリング計算制御部20に送出する機能とをもっている。ここで、ペアリングアルゴリズム計算は、前述した(1)各アルゴリズムの計算に相当するものであり、テイトペアリング、エイトペアリング又はイータペアリングといった任意のペアリングアルゴリズムの計算が適用可能となっている。
ペアリングアルゴリズム計算実行部42は、ペアリングアルゴリズム計算制御部41に制御され、ペアリングアルゴリズム計算制御部41から受けたペアリング対象データに基づいて、適宜メモリ30を用いつつ、ペアリングアルゴリズム計算を実行する機能と、ペアリングアルゴリズム計算の実行により得られた点データfをペアリングアルゴリズム計算制御部41に送出する機能とをもっている。
最終べき処理部50は、ペアリング最終べき計算制御部51、F2km計算部60及びF2m計算部70を備えている。なお、本実施形態では埋め込み次数kを4としているので、F2kmをF24mと読んでもよい。
ペアリング最終べき計算制御部51は、ペアリング計算制御部20から受けた点データfに基づいて、点データfの(22m−1)(2m−2(m+1)/2+1)乗を計算する最終べき処理を実行するように、F2km計算部60及びF2m計算部70を制御する機能と、この最終べき処理の計算結果をペアリング計算制御部20に出力する機能とをもっている。
具体的にはペアリング最終べき計算制御部51は、以下の各機能(f51-1)〜(f51-7)をもっている。
(f51-1) 点データfを任意元Aとした場合の当該任意元Aの22m乗を計算するように、基底べき乗記憶部61、2m乗演算実行部64及びF2m演算実行部71を制御する第1計算制御機能。
(f51-2) 点データfを任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、基底べき乗記憶部61、F2km基本演算実行部62及びF2m演算実行部71を制御する第2計算制御機能。
(f51-3) 第1計算制御機能により得られた計算結果A^(22m)及び第2計算制御機能により得られた逆元A-1に基づいて、途中結果B=A^(22m)・A-1=A^(22m-1)を計算するように、F2km基本演算実行部62及びF2m演算実行部71を制御する第3計算制御機能。
(f51-4) 途中結果Bの逆元B-1をB-1=B^(22m)の関係式に基づいて計算するように、2m乗演算実行部64及びF2m演算実行部71を制御する第4計算制御機能。
(f51-5) 第4計算制御機能により得られた逆元B-1に基づいて、途中結果Bの−2(m+1)/2乗を計算するように、2-(m+1)/2乗演算実行部63及びF2m演算実行部71を制御する第5計算制御機能。
(f51-6) 途中結果Bの2m乗を計算するように、2m乗演算実行部64及びF2m演算実行部71を制御する第6計算制御機能。
(f51-7) 第6計算制御機能により得られた計算結果B^(2m)、第5計算制御機能により得られた計算結果B^(-2(m+1)/2)、及び途中結果Bに基づいて、途中結果Bの(2m-2(m+1)/2+1)乗を計算するように、F2km基本演算実行部62及びF2m演算実行部71を制御する第7計算制御機能。
(f51-8) 第7計算制御機能により得られた計算結果B^(2m-2(m+1)/2+1)を最終べき処理の計算結果f^{(22m-1)(2m-2(m+1)/2+1)}としてペアリング計算制御部20に出力する機能。
2km計算部60は、基底べき乗記憶部61、F2km基本演算実行部62、2-(m+1)/2乗演算実行部63及び2m乗演算実行部64を備えている。
基底べき乗記憶部61は、各部62〜64から読出/書込可能な記憶装置であり、有限体F2mの元を用いたk次拡大体上における各基底の2m乗の対応結果を記憶している。基底べき乗記憶部61は、具体的には、有限体F2mの元a0,a1,a2,a3及び有限体F24mの各基底s,t,stに基づいて、有限体F24mの任意元Aの2m乗A^(2m)をA^(2m)=a0+a1s^(2m)+a2t^(2m)+a3(st)^(2m)と計算可能な場合(但し、^は べき乗を表す符号)、図2に示すように、予め拡大次数mと、各基底の2m乗s^(2m),t^(2m),(st)^(2m)とを互いに関連付けて記憶したものである。
2km基本演算実行部62は、標数2、拡大次数m及び埋め込み次数4の有限体F24m上の四則演算及び二乗算を実行する機能をもっている。
-(m+1)/2乗演算実行部63は、メモリ30を適宜用いつつ、有限体F24m上の−2(m+1)/2乗の演算を実行する機能をもっている。
m乗演算実行部64は、有限体F24m上の2m乗の演算を実行する機能をもっている。
2m計算部70は、F2m演算実行部71を備えている。
2m演算実行部71は、有限体F2m上の四則演算、二乗算及びべき乗演算を実行する機能をもっている。このF2m演算実行部71は、F2km計算部60の実行中、常に用いられる。
なお、以上のようなペアリング計算装置100は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。このようにペアリング計算装置100がハードウェア構成又はプログラムを用いた構成で実施可能なことは、以下の各実施形態でも同様である。
次に、以上のように構成されたペアリング計算装置の動作について図3乃至図5のフローチャートを用いて説明する。
(ST1) ペアリング計算装置100においては、入出力部10により、ペアリング対象データP,Qがペアリング計算制御部20に入力される。
(ST2) ペアリング計算制御部20は、このペアリング対象データP,Qをペアリングアルゴリズム処理部40に送出する。
(ST3) ペアリングアルゴリズム処理部40においては、ペアリングアルゴリズム計算実行部42により、ペアリング対象データP,Qから点データfを計算し、この点データfをペアリング計算制御部20に送出する。
(ST4) ペアリング計算制御部20は、この点データfを最終べき処理部50に送出する。
(ST5) 最終べき処理部50においては、ペアリング最終べき計算制御部51が、この点データfに基づいて、点データfの(22m−1)(2m−2(m+1)/2+1)乗を計算する最終べき処理を実行するように、F2km計算部60及びF2m計算部70を制御する。
(ST5−1) 具体的には、ペアリング最終べき計算制御部51は、点データfを任意元Aとした場合の当該任意元Aの22m乗を計算するように、基底べき乗記憶部61、2m乗演算実行部64及びF2m演算実行部71を制御する。これにより、点データfを任意元Aとした場合の当該任意元Aの22m乗を求める。
(ST5−2) ペアリング最終べき計算制御部51は、点データfを任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、基底べき乗記憶部61、F2km基本演算実行部62及びF2m演算実行部71を制御する。これにより、点データfを任意元Aとした場合の当該任意元Aの逆元A-1を求める。
(ST5−3) ペアリング最終べき計算制御部51は、ステップST5−1により得られた計算結果A^(22m)及びステップST5−2により得られた逆元A-1に基づいて途中結果B=A^(22m)・A-1=A^(22m-1)を計算するように、F2km基本演算実行部62及びF2m演算実行部71を制御する。これにより、途中結果B=A^(22m)・A-1=A^(22m-1)を求める。
(ST5−4)
(ST5−4−1) ペアリング最終べき計算制御部51は、途中結果Bの逆元B-1をB-1=B^(22m)の関係式に基づいて計算するように、2m乗演算実行部64及びF2m演算実行部71を制御する。これにより、途中結果Bの逆元B-1がB-1=B^(22m)の関係式により求める。
(ST5−4−2) ペアリング最終べき計算制御部51は、ステップST5−4−1により得られた逆元B-1に基づいて、途中結果Bの−2(m+1)/2乗を計算するように、2-(m+1)/2乗演算実行部63及びF2m演算実行部71を制御する。これにより、逆元B-1に基づいて、途中結果Bの−2(m+1)/2乗を求める。
(ST5−5) ペアリング最終べき計算制御部51は、途中結果Bの2m乗を計算するように、2m乗演算実行部64及びF2m演算実行部71を制御する。これにより、途中結果Bの2m乗を求める。
(ST5−6) ペアリング最終べき計算制御部51は、ステップST5−5により得られた計算結果B^(2m)、ステップST5−4−2により得られた計算結果B^(-2(m+1)/2)、及び途中結果Bに基づいて、途中結果Bの(2m-2(m+1)/2+1)乗を計算するように、F2km基本演算実行部62及びF2m演算実行部71を制御する。これにより、途中結果Bの(2m-2(m+1)/2+1)乗を求める。
しかる後、ペアリング最終べき計算制御部51は、得られた計算結果B^(2m-2(m+1)/2+1)を最終べき処理の計算結果f^{(22m-1)(2m-2(m+1)/2+1)}としてペアリング計算制御部20に出力する。
(ST6) ペアリング計算制御部20は、点データfの最終べき処理の計算結果を、入出力部10を介してペアリング計算装置100から出力する。
上述したように本実施形態によれば、最終べきの計算処理のうち、逆元をB-1=B^(22m)の関係式に基づいて計算する構成により、従来の逆元導出アルゴリズムに比べ、逆元を高速に計算できるので、一般的な標数2の有限体上で定義される楕円曲線の有理点を用いたペアリング計算のうち、最終べき計算の高速化を実現することができる。
補足すると、本実施形態によれば、22m乗演算を高速に行うことができ、またこの22m乗演算装置を用いることで任意元の逆元を逆元導出アルゴリズムを用いることなく、標数2の拡大体上の加算のみで実現することが可能になる。
また、標数2の拡大体において高速化が可能となり、従来法と同等の効果が得られる。
また、標数2の拡大体で高速化を実現することにより、ハードウェア構成が従来法の標数3におけるハードウェア構成よりもコンパクトに構成可能となる。
さらに、従来法においては、有限体の演算に加えてトーラスの演算を実現する各種演算を別途定義してライブラリを準備する必要があったが、提案手法においては、有限体の演算のみで高速化が実現できるため、ライブラリを準備する必要がなく、リソースが削減できている。
(第2の実施形態の具体的な構成)
図6は本発明の第2の実施形態に係るペアリング計算装置の構成を示す模式図であり、図1と同一機能部については同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。
すなわち、第2の実施形態は、第1の実施形態における標数2及び拡大次数mの有限体F2mを、標数p及び拡大次数mの任意の有限体Fq(=Fpm)に一般化したものであり、概略的には、標数p及び拡大次数mの有限体Fq(但し、q=pm)上で定義される楕円曲線をE(Fq)とし、楕円曲線の位数を#E(Fq)とし、当該楕円曲線E(Fq)上のペアリング写像の集合を有限体Fqkとしたとき、楕円曲線E(Fq)上のペアリング対象データから点データfを計算した後、点データfの(qk−1)/#E(Fq)乗を計算する最終べき処理を実行し、この最終べき処理の計算結果を出力するペアリング計算装置となっている。
具体的には主に、最終べき計算判定部52及びFqk/i計算部80を付加し、2-(m+1)/2乗演算実行部63に代えて逆元導出実行部65を備えた構成となっている。また、各機能部の名称もF2m又はF2kmに代えて、Fq又はFqkを用いた名称となっている。またこれらの変更に伴い、ペアリング最終べき計算制御部51の機能を一般化したペアリング最終べき計算制御部51’と、基底べき乗記憶部61の記憶内容を一般化した基底べき乗記憶部61’とを有している。
ここで、最終べき計算判定部52は、ペアリング最終べき計算制御部51’から入力された点データfに関する楕円曲線の位数#E(Fq)、有限体Fqの位数q、有限体Fqkの拡大次数kに基づいて、第1の関係#E(Fq)|(qk/2+1)、又は第2の関係#E(Fq)|(qk/2−1)が成り立つか否かを判定する判定機能(但し、|は、左辺が右辺を割り切ることを表す符号)と、判定結果をペアリング最終べき計算制御部51’に送出する機能とをもっている。
逆元導出実行部65は、有限体Fqk上の逆元をB-1=B^(qk/2)の関係式に基づいて計算する機能をもっている。
qk/i計算部80は、Fqk/i演算実行部81を備えている。
qk/i演算実行部81は、ペアリング最終べき計算制御部51’に制御され、有限体Fqkの部分体Fqk/i上の四則演算及び二乗算を実行する機能をもっている(但し、iはkの因数)。
ペアリング最終べき計算制御部51’は、以下の各機能(f51’-1)〜(f51’-10)をもっている。
(f51’-1) 最終べき計算判定部52による判定の結果、第1の関係#E(Fq)|(qk/2+1)が成り立つ場合、点データfを任意元Aとした場合の当該任意元Aのqk/2乗を計算するように、基底べき乗記憶部61’、q乗演算実行部64’及びFq演算実行部71’を制御する第1計算制御機能。
(f51’-2) 点データfを任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、基底べき乗記憶部61’、Fqk基本演算実行部62’及びFq演算実行部71’を制御する第2計算制御機能。
(f51’-3) 第1計算制御機能により得られた計算結果A^(qk/2)及び第2計算制御機能により得られた逆元A-1に基づいて、途中結果B=A^(qk/2)・A-1=A^(qk/2-1)を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する第3計算制御機能。
(f51’-4) 途中結果Bの逆元B-1をB-1=B^(qk/2)の関係式に基づいて計算するように、逆元導出実行部65及びFq演算実行部71’を制御する第4計算制御機能。
(f51’-5) 逆元B-1及び途中結果Bに基づいて、任意元Aの(qk−1)乗A^(qk-1)を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する第5計算制御機能。
(f51’-6) 第5計算制御機能により得られた計算結果A^(qk-1)及び位数#E(Fq)に基づいて、A^{{(qk-1)/#E(Fq)}を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する第6計算制御機能。
(f51’-7) 最終べき計算判定部52による判定の結果、第2の関係#E(Fq)|(qk/2−1)が成り立つ場合、#E(Fq)|(qk/2−1)の因数に含まれる(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、任意元Aの(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)乗を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する第7計算制御機能。
(f51’-8) 第7計算制御機能により得られた計算結果A^(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、A^{{(qk-1)/#E(Fq)}を計算するように、Fqk/i演算実行部81及びFq演算実行部71’を制御する第8計算制御機能。
(f51’-9) 最終べき計算判定部52による判定の結果、第1の関係#E(Fq)|(qk/2+1)及び第2の関係#E(Fq)|(qk/2−1)がいずれも成り立たない場合で且つ第3の関係#E(Fq)|(qk+1)が成り立つ場合、通常通りに、点データfの(qk−1)/#E(Fq)乗を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する第9計算制御機能。
ここで、「通常通りに…計算する」とは、「逆元B-1をB-1=B^(qk/2)の関係式に基づいて計算する高速化手法や、有限体Fqk任意元Aを部分体Fqk/iの元に落とす高速化手法を用いずに…計算する」ということを意味している。
(f51’-10) 第6計算制御機能、第8計算制御機能又は第9計算制御機能により得られた計算結果A^{(qk-1)/#E(Fq)}を最終べき処理の計算結果f^{(qk-1)/#E(Fq)}としてペアリング計算制御部20に出力する機能。
基底べき乗記憶部61’は、各部62’,64’,65から読出/書込可能な記憶装置であり、有限体Fqの元a0,a1,a2,a3及び有限体Fqkの各基底s,t,stに基づいて、有限体Fqkの任意元Aのq乗AqをAq=a0+a1sq+a2tq+a3(st)qと計算可能な場合、図7に示すように、予め拡大次数mと、各基底のq乗sq,tq,(st)qとを互いに関連付けて記憶している。
次に、以上のように構成されたペアリング計算装置の動作を図8のフローチャートを用いて説明する。なお、本実施形態は、前述したステップST1〜ST6のうち、ST5の変形例のため、前述したステップST5に代えて、ステップST50〜ST59を用いて述べる。すなわち、前述したステップST1〜ST4と、前述したST6との間に、以下のステップST50〜ST59が実行される。
(ST50) ペアリング最終べき計算制御部51’は、ペアリング計算制御部20から入力された点データfに関する楕円曲線の位数#E(Fq)、有限体Fqの位数q、有限体Fqkの拡大次数kを最終べき計算判定部52に送出する。
最終べき計算判定部52は、楕円曲線の位数#E(Fq)、有限体Fqの位数q、有限体Fqkの拡大次数kに基づいて、第1の関係#E(Fq)|(qk/2+1)、又は第2の関係#E(Fq)|(qk/2−1)が成り立つか否かを判定し、判定結果をペアリング最終べき計算制御部51’に送出する。
(ST51) ペアリング最終べき計算制御部51’は、第1の関係#E(Fq)|(qk/2+1)が成り立つ場合、点データfを任意元Aとした場合の当該任意元Aのqk/2乗を計算するように、基底べき乗記憶部61’、q乗演算実行部64’及びFq演算実行部71’を制御する。これにより、点データfを任意元Aとした場合の当該任意元Aのqk/2乗を求める。
(ST52) ペアリング最終べき計算制御部51’は、点データfを任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、基底べき乗記憶部61’、Fqk基本演算実行部62’及びFq演算実行部71’を制御する。これにより、点データfを任意元Aとした場合の当該任意元Aの逆元A-1を求める。
(ST53) ペアリング最終べき計算制御部51’は、ステップST51により得られた計算結果A^(qk/2)及びステップST53により得られた逆元A-1に基づいて、途中結果B=A^(qk/2)・A-1=A^(qk/2-1)を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する。これにより、途中結果B=A^(qk/2)・A-1=A^(qk/2-1)を求める。
(ST54) ペアリング最終べき計算制御部51’は、途中結果Bの逆元B-1をB-1=B^(qk/2)の関係式に基づいて計算するように、逆元導出実行部65及びFq演算実行部71’を制御する。これにより、途中結果Bの逆元B-1をB-1=B^(qk/2)の関係式により求める。
(ST55) ペアリング最終べき計算制御部51’は、逆元B-1及び途中結果Bに基づいて、任意元Aの(qk−1)乗A^(qk-1)を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する。これにより、任意元Aの(qk−1)乗A^(qk-1)を求める。
続いて、ペアリング最終べき計算制御部51’は、得られた計算結果A^(qk-1)及び位数#E(Fq)に基づいて、A^{{(qk-1)/#E(Fq)}を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する。これにより、A^{{(qk-1)/#E(Fq)}を求める。
(ST56) 一方、最終べき計算判定部52による判定の結果、第2の関係#E(Fq)|(qk/2−1)が成り立つ場合には以下のステップST57〜ST58を実行する。
(ST57) ペアリング最終べき計算制御部51’は、#E(Fq)|(qk/2−1)の因数に含まれる(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、任意元Aの(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)乗を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する。これにより、任意元Aの(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)乗を求める。
(ST58) ペアリング最終べき計算制御部51’は、ステップST57により得られた計算結果A^(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、A^{{(qk-1)/#E(Fq)}を計算するように、Fqk/i演算実行部81及びFq演算実行部71’を制御する。これにより、A^{{(qk-1)/#E(Fq)}を求める。
(ST59) また一方、最終べき計算判定部52による判定の結果、第1の関係#E(Fq)|(qk/2+1)及び第2の関係#E(Fq)|(qk/2−1)がいずれも成り立たない場合で且つ第3の関係#E(Fq)|(qk+1)が成り立つ場合、ペアリング最終べき計算制御部51’は、通常通りに、点データfの(qk−1)/#E(Fq)乗を計算するように、Fqk基本演算実行部62’及びFq演算実行部71’を制御する。これにより、点データfの(qk−1)/#E(Fq)乗を求める。
しかる後、ペアリング最終べき計算制御部51’は、ステップST56、ステップ58又はステップST59により得られた計算結果A^{(qk-1)/#E(Fq)}を最終べき処理の計算結果f^{(qk-1)/#E(Fq)}としてペアリング計算制御部20に出力する。
上述したように本実施形態によれば、最終べきに関し、第1の関係#E(Fq)|(qk/2+1)が成り立つ場合には、第1の実施形態と同様に最終べきを計算し、第2の関係#E(Fq)|(qk/2−1)が成り立つ場合には、第2有限体Fqkの任意元Aを部分体Fqk/iの元に落として(ペアリングの写像先の集合をFqkより小さいFqk/iに変えて)最終べきを計算する構成により、一般的な標数qの有限体上で定義される楕円曲線の有理点を用いたペアリング計算のうち、最終べき計算の高速化を実現することができる。
補足すると、第2の実施形態によれば、標数に依存しない一般的な楕円曲線上におけるペアリングの計算処理において、最終べきの計算を高速化することができる。
効果として、#E(Fq)|(qk/2+1)の場合はトーラスを用いた場合と同等の効果が得られ、#E(Fq)|(qk/2−1)の場合は、効果を比較することは難しいが部分体に落として最終べきを計算することができるので、従来法よりも高速となる。
ただし、セキュリティ的にペアリングの写像先がFqkではなくFqk/iとなるので、通常はそのような楕円曲線は推奨されず、セキュリティを保持するためには一般的に大きな埋め込み次数の場合、もしくはセキュリティを考慮しないような場合にしか適用することができない。
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
本発明の第1の実施形態に係るペアリング計算装置の構成を示す模式図である。 同実施形態における基底べき乗記憶部の構成を示す模式図である。 同実施形態におけるペアリング計算処理の動作を説明するためのフローチャートである。 同実施形態における最終べき計算処理の動作を説明するためのフローチャートである。 同実施形態における最終べき計算処理の動作の一部を説明するためのフローチャートである。 本発明の第2の実施形態に係るペアリング計算装置の構成を示す模式図である。 同実施形態における基底べき乗記憶部の構成を示す模式図である。 同実施形態における最終べき計算処理の動作を説明するためのフローチャートである。 第1の実施形態における各演算を行う集合の一例を示す模式図である。
符号の説明
100…ペアリング計算装置、10…入出力部、20…ペアリング計算制御部、30…メモリ、40…ペアリングアルゴリズム処理部、41…ペアリングアルゴリズム計算制御部、42…ペアリングアルゴリズム計算実行部、50…最終べき処理部、51,51’…ペアリング最終べき計算制御部、52…最終べき計算判定部、60…F2km計算部、60’…Fqk計算部、61,61’…基底べき乗記憶部、62…F2km基本演算実行部、62’…Fqk基本演算実行部、63…2-(m+1)/2乗演算実行部、64…2m乗演算実行部、64’…q乗演算実行部、65…逆元導出実行部、70…F2m計算部、70’…Fq計算部、71…F2m演算実行部、71’…Fq演算実行部、80…Fqk/i計算部、81…Fqk/i演算実行部。

Claims (4)

  1. 標数2及び拡大次数mの第1有限体F2m上で定義される楕円曲線上のペアリング対象データから点データfを計算した後、前記点データfの(22m−1)(2m−2(m+1)/2+1)乗を計算する最終べき処理を実行し、この最終べき処理の計算結果を出力するペアリング計算装置であって、
    前記第1有限体F2m上の四則演算、二乗算及びべき乗演算を実行するための第1有限体F2m演算手段と、
    標数2、拡大次数m及び埋め込み次数4の第2有限体F24m上の四則演算及び二乗算を実行するための第2有限体F24m演算手段と、
    前記第1有限体F2mの元a0,a1,a2,a3及び前記第2有限体F24mの各基底s,t,stに基づいて、前記第2有限体F24mの任意元Aの2m乗A^(2m)をA^(2m)=a0+a1s^(2m)+a2t^(2m)+a3(st)^(2m)と計算可能な場合(但し、^は べき乗を表す符号)、予め前記拡大次数mと、前記各基底の2m乗s^(2m),t^(2m),(st)^(2m)とを互いに関連付けて記憶した基底べき乗記憶手段と、
    前記点データfを前記任意元Aとした場合の当該任意元Aの22m乗を計算するように、前記基底べき乗記憶手段、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第1計算制御手段と、
    前記点データfを前記任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、前記基底べき乗記憶手段、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第2計算制御手段と、
    前記第1計算制御手段により得られた計算結果A^(22m)及び前記第2計算制御手段により得られた逆元A-1に基づいて、途中結果B=A^(22m)・A-1=A^(22m-1)を計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第3計算制御手段と、
    前記途中結果Bの逆元B-1をB-1=B^(22m)の関係式に基づいて計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第4計算制御手段と、
    前記第4計算制御手段により得られた逆元B-1に基づいて、前記途中結果Bの−2(m+1)/2乗を計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第5計算制御手段と、
    前記途中結果Bの2m乗を計算するように、前記第2有限体F24m演算手段を制御する第6計算制御手段と、
    前記第6計算制御手段により得られた計算結果B^(2m)、前記第5計算制御手段により得られた計算結果B^(-2(m+1)/2)、及び前記途中結果Bに基づいて、前記途中結果Bの(2m-2(m+1)/2+1)乗を計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第7計算制御手段と、
    前記第7計算制御手段により得られた計算結果B^(2m-2(m+1)/2+1)を前記最終べき処理の計算結果f^{(22m-1)(2m-2(m+1)/2+1)}として出力する手段と、
    を備えたことを特徴とするペアリング計算装置。
  2. 標数p及び拡大次数mの第1有限体Fq(但し、q=pm)上で定義される楕円曲線をE(Fq)とし、前記楕円曲線の位数を#E(Fq)とし、当該楕円曲線E(Fq)上のペアリング写像の集合を第2有限体Fqkとしたとき、前記楕円曲線E(Fq)上のペアリング対象データから点データfを計算した後、前記点データfの(qk−1)/#E(Fq)乗を計算する最終べき処理を実行し、この最終べき処理の計算結果を出力するペアリング計算装置であって、
    前記第1有限体Fq上の四則演算、二乗算及びべき乗演算を実行するための第1有限体Fq演算手段と、
    前記第2有限体Fqk上の四則演算及び二乗算を実行するための第2有限体Fqk演算手段と、
    前記第2有限体Fqkの部分体Fqk/i上の四則演算及び二乗算を実行するための部分体Fqk/i演算手段(但し、iはkの因数)と、
    前記第1有限体Fqの元a0,a1,a2,a3及び前記第2有限体Fqkの各基底s,t,stに基づいて、前記第2有限体Fqkの任意元Aのq乗AqをAq=a0+a1sq+a2tq+a3(st)qと計算可能な場合、予め前記拡大次数mと、前記各基底のq乗sq,tq,(st)qとを互いに関連付けて記憶した基底べき乗記憶手段と、
    前記楕円曲線の位数#E(Fq)、前記第1有限体Fqの位数q、前記第2有限体Fqkの拡大次数kに基づいて、第1の関係#E(Fq)|(qk/2+1)、又は第2の関係#E(Fq)|(qk/2−1)が成り立つか否かを判定する判定手段(但し、|は、左辺が右辺を割り切ることを表す符号)と、
    前記第1の関係#E(Fq)|(qk/2+1)が成り立つ場合、前記点データfを前記任意元Aとした場合の当該任意元Aのqk/2乗を計算するように、前記基底べき乗記憶手段、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第1計算制御手段と、
    前記点データfを前記任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、前記基底べき乗記憶手段、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第2計算制御手段と、
    前記第1計算制御手段により得られた計算結果A^(qk/2)及び前記第2計算制御手段により得られた逆元A-1に基づいて、途中結果B=A^(qk/2)・A-1=A^(qk/2-1)を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第3計算制御手段(但し、^は、べき乗を表す符号)と、
    前記途中結果Bの逆元B-1をB-1=B^(qk/2)の関係式に基づいて計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第4計算制御手段と、
    前記逆元B-1及び前記途中結果Bに基づいて、前記任意元Aの(qk−1)乗A^(qk-1)を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第5計算制御手段と、
    前記第5計算制御手段により得られた計算結果A^(qk-1)及び前記位数#E(Fq)に基づいて、A^{{(qk-1)/#E(Fq)}を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第6計算制御手段と、
    前記第2の関係#E(Fq)|(qk/2−1)が成り立つ場合、前記#E(Fq)|(qk/2−1)の因数に含まれる(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、前記任意元Aの(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)乗を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第7計算制御手段と、
    前記第7計算制御手段により得られた計算結果A^(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、A^{{(qk-1)/#E(Fq)}を計算するように、前記第1有限体Fq演算手段及び前記部分体Fqk/i演算手段を制御する第8計算制御手段と、
    前記第6又は第8計算制御手段により得られた計算結果A^{(qk-1)/#E(Fq)}を前記最終べき処理の計算結果f^{(qk-1)/#E(Fq)}として出力する手段と、
    を備えたことを特徴とするペアリング計算装置。
  3. 標数2及び拡大次数mの第1有限体F2m上で定義される楕円曲線上のペアリング対象データから点データfを計算した後、前記点データfの(22m−1)(2m−2(m+1)/2+1)乗を計算する最終べき処理を実行し、この最終べき処理の計算結果を出力するペアリング計算装置のプログラムであって、
    前記ペアリング計算装置を、
    前記第1有限体F2m上の四則演算、二乗算及びべき乗演算を実行するための第1有限体F2m演算手段、
    標数2、拡大次数m及び埋め込み次数4の第2有限体F24m上の四則演算及び二乗算を実行するための第2有限体F24m演算手段、
    前記第1有限体F2mの元a0,a1,a2,a3及び前記第2有限体F24mの各基底s,t,stに基づいて、前記第2有限体F24mの任意元Aの2m乗A^(2m)をA^(2m)=a0+a1s^(2m)+a2t^(2m)+a3(st)^(2m)と計算可能な場合(但し、^は べき乗を表す符号)、予め前記拡大次数mと、前記各基底の2m乗s^(2m),t^(2m),(st)^(2m)とを互いに関連付けて前記ペアリング計算装置の基底べき乗記憶手段に書き込む手段、
    前記点データfを前記任意元Aとした場合の当該任意元Aの22m乗を計算するように、前記基底べき乗記憶手段、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第1計算制御手段、
    前記点データfを前記任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、前記基底べき乗記憶手段、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第2計算制御手段、
    前記第1計算制御手段により得られた計算結果A^(22m)及び前記第2計算制御手段により得られた逆元A-1に基づいて、途中結果B=A^(22m)・A-1=A^(22m-1)を計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第3計算制御手段、
    前記途中結果Bの逆元B-1をB-1=B^(22m)の関係式に基づいて計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第4計算制御手段、
    前記第4計算制御手段により得られた逆元B-1に基づいて、前記途中結果Bの−2(m+1)/2乗を計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第5計算制御手段、
    前記途中結果Bの2m乗を計算するように、前記第2有限体F24m演算手段を制御する第6計算制御手段、
    前記第6計算制御手段により得られた計算結果B^(2m)、前記第5計算制御手段により得られた計算結果B^(-2(m+1)/2)、及び前記途中結果Bに基づいて、前記途中結果Bの(2m-2(m+1)/2+1)乗を計算するように、前記第1有限体F2m演算手段及び前記第2有限体F24m演算手段を制御する第7計算制御手段、
    前記第7計算制御手段により得られた計算結果B^(2m-2(m+1)/2+1)を前記最終べき処理の計算結果f^{(22m-1)(2m-2(m+1)/2+1)}として出力する手段、
    として機能させるためのプログラム。
  4. 標数p及び拡大次数mの第1有限体Fq(但し、q=pm)上で定義される楕円曲線をE(Fq)とし、前記楕円曲線の位数を#E(Fq)とし、当該楕円曲線E(Fq)上のペアリング写像の集合を第2有限体Fqkとしたとき、前記楕円曲線E(Fq)上のペアリング対象データから点データfを計算した後、前記点データfの(qk−1)/#E(Fq)乗を計算する最終べき処理を実行し、この最終べき処理の計算結果を出力するペアリング計算装置のプログラムであって、
    前記ペアリング計算装置を、
    前記第1有限体Fq上の四則演算、二乗算及びべき乗演算を実行するための第1有限体Fq演算手段、
    前記第2有限体Fqk上の四則演算及び二乗算を実行するための第2有限体Fqk演算手段、
    前記第2有限体Fqkの部分体Fqk/i上の四則演算及び二乗算を実行するための部分体Fqk/i演算手段(但し、iはkの因数)、
    前記第1有限体Fqの元a0,a1,a2,a3及び前記第2有限体Fqkの各基底s,t,stに基づいて、前記第2有限体Fqkの任意元Aのq乗AqをAq=a0+a1sq+a2tq+a3(st)qと計算可能な場合、予め前記拡大次数mと、前記各基底のq乗sq,tq,(st)qとを互いに関連付けて前記ペアリング計算装置の基底べき乗記憶手段に書き込む手段、
    前記楕円曲線の位数#E(Fq)、前記第1有限体Fqの位数q、前記第2有限体Fqkの拡大次数kに基づいて、第1の関係#E(Fq)|(qk/2+1)、又は第2の関係#E(Fq)|(qk/2−1)が成り立つか否かを判定する判定手段(但し、|は、左辺が右辺を割り切ることを表す符号)、
    前記第1の関係#E(Fq)|(qk/2+1)が成り立つ場合、前記点データfを前記任意元Aとした場合の当該任意元Aのqk/2乗を計算するように、前記基底べき乗記憶手段、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第1計算制御手段、
    前記点データfを前記任意元Aとした場合の当該任意元Aの逆元A-1を計算するように、前記基底べき乗記憶手段、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第2計算制御手段、
    前記第1計算制御手段により得られた計算結果A^(qk/2)及び前記第2計算制御手段により得られた逆元A-1に基づいて、途中結果B=A^(qk/2)・A-1=A^(qk/2-1)を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第3計算制御手段(但し、^は、べき乗を表す符号)、
    前記途中結果Bの逆元B-1をB-1=B^(qk/2)の関係式に基づいて計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第4計算制御手段、
    前記逆元B-1及び前記途中結果Bに基づいて、前記任意元Aの(qk−1)乗A^(qk-1)を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第5計算制御手段、
    前記第5計算制御手段により得られた計算結果A^(qk-1)及び前記位数#E(Fq)に基づいて、A^{{(qk-1)/#E(Fq)}を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第6計算制御手段、
    前記第2の関係#E(Fq)|(qk/2−1)が成り立つ場合、前記#E(Fq)|(qk/2−1)の因数に含まれる(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、前記任意元Aの(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)乗を計算するように、前記第1有限体Fq演算手段及び前記第2有限体Fqk演算手段を制御する第7計算制御手段、
    前記第7計算制御手段により得られた計算結果A^(q(i-1)k/i+q(i-2)k/i+…+qk/i+1)に基づき、A^{{(qk-1)/#E(Fq)}を計算するように、前記第1有限体Fq演算手段及び前記部分体Fqk/i演算手段を制御する第8計算制御手段、
    前記第6又は第8計算制御手段により得られた計算結果A^{(qk-1)/#E(Fq)}を前記最終べき処理の計算結果f^{(qk-1)/#E(Fq)}として出力する手段、
    として機能させるためのプログラム。
JP2008000590A 2008-01-07 2008-01-07 ペアリング計算装置及びプログラム Active JP4970291B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008000590A JP4970291B2 (ja) 2008-01-07 2008-01-07 ペアリング計算装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008000590A JP4970291B2 (ja) 2008-01-07 2008-01-07 ペアリング計算装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2009163008A JP2009163008A (ja) 2009-07-23
JP4970291B2 true JP4970291B2 (ja) 2012-07-04

Family

ID=40965696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008000590A Active JP4970291B2 (ja) 2008-01-07 2008-01-07 ペアリング計算装置及びプログラム

Country Status (1)

Country Link
JP (1) JP4970291B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6061440B2 (ja) * 2010-02-25 2017-01-18 太陽ホールディングス株式会社 ポリエステル基材用樹脂組成物、それを用いたドライフィルム及びプリント配線板
JP6040052B2 (ja) * 2013-02-26 2016-12-07 日本電信電話株式会社 ペアリング演算装置、ペアリング演算方法、およびプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3515306B2 (ja) * 1997-01-29 2004-04-05 日本電信電話株式会社 逆元演算装置
JP4649456B2 (ja) * 2007-09-26 2011-03-09 株式会社東芝 べき乗計算装置、べき乗計算方法及びプログラム

Also Published As

Publication number Publication date
JP2009163008A (ja) 2009-07-23

Similar Documents

Publication Publication Date Title
Galbraith et al. Computational problems in supersingular elliptic curve isogenies
Karmakar et al. Efficient finite field multiplication for isogeny based post quantum cryptography
JP2001526416A (ja) 楕円曲線暗号化演算の最適化用変換方法
US8856200B2 (en) Exponentiation calculation apparatus and exponentiation calculation method
JP4970291B2 (ja) ペアリング計算装置及びプログラム
JP4351987B2 (ja) モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム
US8438205B2 (en) Exponentiation calculation apparatus and method for calculating square root in finite extension field
KR101223498B1 (ko) 타원 곡선 암호 방식에서 공개키를 생성하는 방법 및 상기방법을 수행하는 시스템
JP3820909B2 (ja) 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
Gayoso Martínez et al. Secure elliptic curves in cryptography
JP5300373B2 (ja) 代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム
JP6067596B2 (ja) ペアリング演算装置、マルチペアリング演算装置、プログラム
Poulakis et al. A Digital Signature Scheme based on two hard problems
JP2005316267A (ja) 楕円曲線ペアリング演算装置
WO2023228408A1 (ja) パラメータ生成システム、パラメータ生成方法、及びパラメータ生成プログラム
JP4724200B2 (ja) べき乗計算装置及びプログラム
JP4802228B2 (ja) 鍵生成装置及びプログラム
JP2005258228A (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
JP2006178125A (ja) 楕円曲線テートペアリング演算方法及び装置
Karati Binary Kummer Line
Dossou-Yovo et al. Finding Points on Elliptic Curves with Coppersmith’s Method
JP6777569B2 (ja) ペアリング演算装置、ペアリング演算方法、およびプログラム
JP2010002662A (ja) リカバリ署名システム、署名生成装置、署名検証装置、それらの方法、及びプログラム
Kwon et al. An efficient implementation of pairing-based cryptography on MSP430 processor
JP2004102071A (ja) 多項式剰余系演算装置、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120223

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

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

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

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4970291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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