JP2010164796A - 変換演算装置、その方法、プログラム及び記録媒体 - Google Patents

変換演算装置、その方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2010164796A
JP2010164796A JP2009007315A JP2009007315A JP2010164796A JP 2010164796 A JP2010164796 A JP 2010164796A JP 2009007315 A JP2009007315 A JP 2009007315A JP 2009007315 A JP2009007315 A JP 2009007315A JP 2010164796 A JP2010164796 A JP 2010164796A
Authority
JP
Japan
Prior art keywords
unit
finite field
conversion
calculation
bit string
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.)
Granted
Application number
JP2009007315A
Other languages
English (en)
Other versions
JP5268066B2 (ja
Inventor
Hajime Takahashi
高橋  元
Tetsutaro Kobayashi
鉄太郎 小林
Kazumaro Aoki
和麻呂 青木
Takeshi Takagi
剛 高木
Yuto Kawahara
祐人 川原
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
Future University Hakodate
Original Assignee
Nippon Telegraph and Telephone Corp
Future University Hakodate
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, Future University Hakodate filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009007315A priority Critical patent/JP5268066B2/ja
Publication of JP2010164796A publication Critical patent/JP2010164796A/ja
Application granted granted Critical
Publication of JP5268066B2 publication Critical patent/JP5268066B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】任意のビット列を標数3の有限体上で定義された楕円曲線E(GF(3m)):y2=x3-x+b上の点へ高速に変換する。
【解決手段】変換部105が任意のビット列ID∈{0,1}*を有限体GF(3m)の元y∈GF(3m)に変換し、有限体演算部106がt=y2-b∈GF(3m)を計算し、1/3トレース写像演算部108がtを入力とする1/3トレース写像C(t)を計算し、有限体演算部109がx=C(t)3-C(t)∈GF(3m)を計算して楕円曲線E(GF(3m)):y2=x3-x+bのx座標(x∈GF(3m))を求める。
【選択図】図1

Description

本発明は、暗号技術に関し、特に、任意のビット列を標数3の有限体上で定義された楕円曲線上の点へ変換する技術に関する。
情報通信技術に不可欠な技術として公開鍵暗号技術が知られている。しかし、RSAなどの公開鍵暗号は、公開鍵の管理が煩雑で管理コストが高いといった問題がある。近年、このような問題を解決する技術として任意のビット列であるID∈{0,1}*を公開鍵として用いるIDベース暗号が提案された(例えば、非特許文献1参照)。
IDベース暗号では、任意のビット列であるID∈{0,1}*を楕円曲線上の点に変換し、この楕円曲線上でペアリング演算や楕円スカラー倍演算などを行って暗号化処理や秘密鍵生成処理を行う。近年、ペアリング演算を高速に行える楕円曲線として、標数3の有限体GF(3m)上で定義された超特異(Supersingular)楕円曲線が注目されている。
任意のビット列であるID∈{0,1}*を有限体GF(3m)上で定義された楕円曲線E(GF(3m)):y2=x3-x+b(b=±1)上の点に変換するための従来方法として、非特許文献2に示す方法がある。以下に非特許文献2に示す方法を説明する。
<ステップS1> MFG(マスク生成関数)などのハッシュ関数を用い、任意のビット列であるID∈{0,1}*を有限体GF(3m)上の元に変換し、それを楕円曲線E(GF(3m)):y2=x3-x+bのx座標とする(x∈GF(3m))。
<ステップS2>ステップS1で得られたx∈GF(3m)を楕円曲線E(GF(3m)):y2=x3-x+bの右辺に代入してy2∈GF(3m)を求める。
<ステップS3>ステップS2で得られたy2∈GF(3m)の平方根を以下のように算出し([ステップS3a]〜[ステップS3d]、y∈GF(3m)を求める。ただし、k=(m-1)/2=(kν-1,...k0)2であり、kν-1,...k0は、kを2進表記した際の各桁のビット値{0,1}を示す。
[ステップS3a]s=c=x3-x+b∈GF(3m)とする。
[ステップS3b]i=ν-2から0までの各iについて、以下の《ステップS3ba》及び《ステップS3bb》の処理を実行する。
《ステップS3ba》t=sとする。
《ステップS3bb》
ki=1ならば、
s=c・t∈GF(3m) …(2)
の演算を行い、
ki=0ならば、
s=c・t∈GF(3m) …(4)
の演算を行う。
[ステップS3c]
c=c・s6∈GF(3m) …(5)
の演算を行う。
[ステップS3d]cをy∈GF(3m)とする。
<ステップS4>(x,y)∈E(GF(3m))を出力する。
D. Boneh and M. Franklin, "Identify-based encryption from the Weil pairing", CRYTPO 2001. LNCS, vol. 2139, pp. 213-229, Springer, 2001. Barreto,P.S.L.M., Kim,H.Y., Lynn,B., Scott,M. "Efficient algorithms for pairing-based cryptosystems", CRYPTO 2002. LNCS, vol.2442, pp.354-368, Springer, Heidelberg (2002).
しかし、非特許文献2の方法では、《ステップS3ba》及び《ステップS3bb》からなる繰り返し処理において、演算コストが高い有限体GF(3m)上での乗算を複数回行う必要がある。よって、非特許文献2の方法では高速な演算が困難である。
本発明はこのような点に鑑みてなされたものであり、任意のビット列を標数3の有限体上で定義された楕円曲線上の点へ高速に変換することが可能な技術を提供することを目的とする。
本発明では、任意のビット列を有限体GF(3m)の元y∈GF(3m)に変換し、トレース写像の変形演算を用い、元y∈GF(3m)に対応する標数3の有限体GF(3m)上で定義された楕円曲線E(GF(3m)):y2=x3-x+bのx座標(x∈GF(3m))を求める。このトレース写像の変形演算は、有限体GF(3m)上のフロベニウス写像と加算演算によって実現でき、高速な演算が可能である。
本発明の第1態様では、変換部が任意のビット列を有限体GF(3m)の元y∈GF(3m)に変換し、第1有限体演算部が変換部で得られた元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行い、1/3トレース写像演算部が、第1有限体演算部で得られたtを用い、
の演算を行い、第2有限体演算部が1/3トレース写像演算部で得られたC(t)を用い、x=C(t)3-C(t)∈GF(3m)の演算を行い、出力部が第2有限体演算部で得られたxと、変換部で得られた元y)とを出力する。なお、第1態様は、mが2≡m mod 3を満たす正の整数である場合に適用され、1/3トレース写像演算部で用いられるt∈GF(3m)は、
を満たし、出力部で出力される元yは、Tr(y2-b)=0を満たす。
本発明の第2態様では、変換部が任意のビット列を有限体GF(3m)の元y∈GF(3m)に変換し、第1有限体演算部が変換部での変換で得られた元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行い、1/2トレース写像演算部が第1有限体演算部で得られたtを用い、
の演算を行い、1/3トレース写像演算部が1/2トレース写像演算部で得られたH(t)を用い、
の演算を行い、第2有限体演算部が1/3トレース写像演算部で得られたC(H(t))を用い、x=C(H(t))3-C(H(t))∈GF(3m)の演算を行い、出力部が第2有限体演算部で得られたxと、変換部で得られた元yとを出力する。なお、第3態様は、mが1≡m mod 3を満たす正の整数である場合に適用され、1/2トレース写像演算部で用いられるtは、式(7)を満たし、出力部で出力される元yは、Tr(y2-b)=0を満たす。
本発明の第3態様では、変換部が任意のビット列を有限体GF(3m)の元y∈GF(3m)に変換し、第1有限体演算部が変換部で得られた元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行い、1/3トレース写像演算部が第1有限体演算部で得られたtを用い、式(6)の演算を行い、第2有限体演算部が第1有限体演算部で得られたtと、それに対応するC(t)とを用い、x=t-C(t)3+C(t)∈GF(3m)の演算を行い、出力部が第2有限体演算部で得られたxと、変換部で得られた元yとを出力する。なお、第2態様は、mが1≡m mod 3を満たす正の整数である場合に適用され、1/3トレース写像演算部で用いられるtは、式(7)を満たし、出力部で出力される元yは、Tr(y2-b)=0を満たす。
本発明では、任意のビット列を標数3の有限体上で定義された楕円曲線上の点へ高速に変換することができる。
第1実施形態の変換演算装置の機能構成を説明するためのブロック図である。 第1実施形態の変換演算方法を説明するためのフローチャートである。 第2実施形態の変換演算装置の機能構成を説明するためのブロック図である。 第2実施形態の変換演算方法を説明するためのフローチャートである。 第3実施形態の変換演算装置の機能構成を説明するためのブロック図である。 第3実施形態の変換演算方法を説明するためのフローチャートである。 第4実施形態の変換演算装置の機能構成を説明するためのブロック図である。 第4実施形態の変換演算方法を説明するためのフローチャートである。
以下、図面を参照して本発明の実施形態を説明する。
〔記号・用語の定義〕
まず、各実施形態で使用する記号・用語を定義する。
<有限体GF(q)の標数>
有限体GF(q)(位数qの有限体)の任意の元a∈GF(q)に対して0=z・aを満たす最小の正の整数zを有限体GF(q)の標数と呼ぶ。有限体GF(q)が有限体GF(p)(素体)のm次拡大である場合(GF(q)=GF(pm)、pは素数)、有限体GF(q)の標数はpとなる。すなわち、有限体GF(3m)の標数は3である。なお、本形態の場合、mは正の整数である。また、素体である有限体GF(p)の演算は、例えば、pを法とする剰余演算を用いることによって容易に構成できる。例えば、有限体GF(p)の加算をa+b mod pとし、有限体GF(p)の乗算をa・b mod pとすることで有限体GF(p)上の演算が実現できる。
<有限体GF(3m)>
有限体GF(3m)は、有限体GF(3)を基礎体としたm次拡大である。有限体GF(3m)の元u∈GF(3m)を表現するために、有限体GF(3)の元の組ωi∈GF(3)(i=0,...,m-1)を用いることができる。そのための代表的な方法は、
と表現する方法である。ここで、δiは有限体GF(3m)の元δi∈GF(3m)であり、有限体GF(3)mと有限体GF(3m)とが1対1対応するような特別な組み合わせであるとする。このような性質を持つδi∈GF(3m)を基底と呼ぶ。基底δi∈GF(3m)の一例は、有限体GF(3)の元を係数とするm次の既約多項式f(x)の根x∈GF(3m)(f(x)=0を満たすx)に対するδi=xiである。
また、
で定義される有限体GF(3m)の元u1,u2∈GF(3m)の加算u1+u2∈GF(3m)は以下のように計算できる。なお、(ω1,i,+ω2,i)は有限体GF(3)上の演算である。
また、有限体GF(3m)の元u1,u2∈GF(3m)の乗算u1・u2∈GF(3m)は以下のように計算できる。なお、係数ω1,i, ω2,iについての演算は有限体GF(3)上の演算である。
<有限体GF(3m)上で定義された楕円曲線E(GF(3m))>
有限体GF(q)上で定義された楕円曲線E(GF(q))は、アフィン(affine)座標版のWeierstrass方程式
y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6(a1,a2,a3,a4,a6∈GF(q)) …(15)
を満たす点(x,y)(x,y∈GF(q))の集合に無限遠点と呼ばれる特別な点Oを付加したものである。楕円曲線E(q)上の任意の2点に対して楕円加算と呼ばれる二項演算及び楕円曲線E(q)上の任意の1点に対して楕円逆元と呼ばれる単項演算がそれぞれ定義できる。また、楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できることはよく知られている。本形態では、有限体GF(3m)上で定義された
y2=x3-x+b …(16)
を満たす点(x,y)(x,y∈GF(3m))の集合に無限遠点Oを付加した楕円曲線E(GF(3m))を扱う。
<有限体のフロベニウス写像>
二項定理によれば、
が成立する。右辺の各項の係数は、二項係数と呼ばれる定数で、i≠0かつi≠3の場合、必ず3の倍数となる。δ,θ∈GF(3m)である場合、δ,θ∈GF(3m)に3の倍数(標数の倍数)を乗じた値は0と同値であるから、
(δ+θ)333 …(18)
が成立する。さらに、c∈GF(3)なるcに関して、c3=cが成立する。
一般に、δ12,...,δn∈GF(3m)を不定元とする任意のGF(3)係数有利式f(δ12,...,δn)に対して、
f(δ12,...,δn)3=f(δ1 32 3,...,δn 3) …(19)
が成立する。従って、式(10)は
のように変形できる。従って事前に
を満たす有限体GF(3)の元cij∈GF(3)が求められていれば、
によって、元の基底δiを用いたu3∈GF(3m)の表現が得られる。即ち、m個の元の組ωi∈GF(3)(i=0,...,m-1)を要素とするベクトル(ωi)に、元cij∈GF(3)を要素とする行列(cij)を掛けるだけでu3∈GF(3m)を表現するベクトルが得られる。また、行列(cij)n(nは1以上の整数)を事前に求めておけば、ベクトル(ωi)に行列(cij)nを掛けるだけで、u∈GF(3m)(s=3n)を表現するベクトルを求めることができる。さらに、行列(cij)が簡単になるような特別な基底が存在し、そのような基底を採用した場合、u∈GF(3m)の演算コストはGF(3m)上の乗算と比較して無視できるほどに小さくなることが知られている。このようにu∈GF(3m)からus∈GF(3m)への写像を計算する関数を3乗フロベニウス写像と呼ぶ。
<有限体GF(3m)でのトレース写像>
任意のt∈GF(3m)に対する有限体GF(3m)でのトレース写像を
と定義する。式(23)に示すように、トレース写像Tr(t)は、有限体GF(3m)の元u∈GF(3m)を元us∈GF(3m)(s=3n,nは1以上の整数)へ写像する3乗フロベニウス写像と、有限体GF(3m)上での加算のみによって計算できる。
<1/2トレース写像>
任意のt∈GF(3m)に対する有限体GF(3m)での1/2トレース写像を
と定義する。式(24)に示すように、1/2トレース写像H(t)は、有限体GF(3m)の元u∈GF(3m)を元us∈GF(3m)(s=3n,nは1以上の整数)へ写像する3乗フロベニウス写像と、有限体GF(3m)上での加算のみによって計算できる。
また、式(24)より
となる。また、任意のt∈GF(3m)は、
を満たすため、式(23)(26)を用い、式(25)は、
H(t)+H(t3)=Tr(t)+t …(27)
と変形できる。
<有限体GF(3m)での1/3トレース写像>
任意のt∈GF(3m)に対する有限体GF(3m)での1/3トレース写像を
と定義する。式(28)に示すように、1/3トレース写像C(t)は、有限体GF(3m)の元u∈GF(3m)を元us∈GF(3m)(s=3n,nは1以上の整数)へ写像する3乗フロベニウス写像と、有限体GF(3m)上での加算のみによって計算できる。
また、r=m mod 3=1のとき、式(28)より、
となる。さらに、式(23)(26)を用い、式(29)は
C(t)+C(t3)+C(t9)=Tr(t)+t+t3 …(30)
と変形できる。
同様に、r=m mod 3=2のとき、式(28)より、
となる。さらに、式(23)(26)を用い、式(31)は
C(t)+C(t3)+C(t9)=Tr(t)+t …(32)
と変形できる。
〔原理〕
次に、本形態の原理を説明する。
本形態では、任意のビット列ID∈{0,1}*を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する(式(16))。
そのために、まず、任意のビット列ID∈{0,1}*を有限体GF(3m)の元y∈GF(3m)に変換し、得られた元y∈GF(3m)を用い、
t=y2-b ∈GF(3m) …(33)
の演算を行う。この場合、式(16)より、
t=x3-x ∈GF(3m) …(34)
となる。
ここで、r=m mod 3=2であってTr(t)=0である場合、式(32)より
C(t)+C(t3)+C(t9)=t ∈GF(3m) …(35)
であり、有限体GF(3m)上の演算(式(13)(14)参照)であることを考慮すると、式(35)は、
(C(t)3-C(t))3-(C(t)3-C(t))=t ∈GF(3m) …(36)
と変形できる。式(34)(36)より、
x=C(t)3-C(t) ∈GF(3m) …(37)
であることが分かる。従って、r=m mod 3=2であってTr(t)=0である場合に式(37)を計算することで、曲線y2=x3-x+b上のx座標が求まり、楕円曲線y2=x3-x+b上の点(x,y)が定まることが分かる。
一方、r=m mod 3=1であってTr(t)=0である場合、式(30)より
C(t)+C(t3)+C(t9)=t+t3∈GF(3m) …(38)
であり、t=H(t)とすると、
C(H(t))+C(H(t)3)+C(H(t)9)=H(t)+H(t)3∈GF(3m) …(39)
である。また、式(19)(27)より、式(39)は、
C(H(t))+C(H(t)3)+C(H(t)9)=t ∈GF(3m) …(40)
と変形でき、有限体GF(3m)上の演算(式(13)(14)参照)であることを考慮すると、式(40)は、
(C(H(t))3-C(H(t)))3-(C(H(t))3-C(H(t)))=t∈GF(3m) …(41)
と変形できる。式(34)(41)より、
x=C(H(t))3-C(H(t)) ∈GF(3m) …(42)
であることが分かる。従って、r=m mod 3=1であってTr(t)=0である場合に式(42)を計算することで、曲線y2=x3-x+b上のx座標が求まり、楕円曲線y2=x3-x+b上の点(x,y)が定まることが分かる。
また、r=m mod 3=1であってTr(t)=0である場合、式(27)においてt=C(t)とし、式(19)を考慮すると、
H(C(t))+H(C(t))3=C(t) ∈GF(3m) …(43)
を満たすことが分かる。また、式(24)(28)より、
を満たす。式(44)を用いると、式(43)は、
C(H(t))+C(H(t))3=C(t) ∈GF(3m) …(45)
と変形でき、さらに
-C(H(t))-C(H(t))3=-C(t) ∈GF(3m) …(46)
と変形できる。式(45)の両辺からC(H(t))3を引くと、
-C(H(t))-C(H(t))3-C(H(t))3=-C(t)-C(H(t))3∈GF(3m) …(47)
となる。有限体GF(3m)上の演算(式(13)(14)参照)では、-C(H(t))3∈GF(3m)は2・C(H(t))3∈GF(3m)と等価であるため、式(47)は、
4・C(H(t))3-C(H(t))=-C(H(t))3-C(t) ∈GF(3m) …(48)
と変形でき、4・C(H(t))3∈GF(3m)はC(H(t))3∈GF(3m)と等価であるため、さらに
C(H(t))3-C(H(t))=-C(H(t))3-C(t) ∈GF(3m) …(49)
と変形できる。
また、式(19)を考慮すると式(40)は、
C(H(t))9+C(H(t))3=t-C(H(t)) ∈GF(3m) …(50)
と変形でき、式(44)を用いると式(50)は、
H(C(t))9+H(C(t))3=t-C(H(t)) ∈GF(3m) …(51)
と変形できる。また、式(43)より、
C(t3)=H(C(t3))+H(C(t3))3∈GF(3m) …(52)
となり、式(19)を考慮すると式(52)は、
C(t)3=H(C(t))3+H(C(t))9∈GF(3m) …(53)
と変形でき、さらに式(50)よって式(53)は、
C(t)3=C(H(t))9+C(H(t))3=t-C(H(t)) ∈GF(3m) …(54)
と変形できる。ここで、式(54)を用いると、
C(t)3+C(t)-t=t-C(H(t))+C(t)-t=-C(H(t))+C(t) ∈GF(3m) …(55)
となり、式(45)を用いると式(55)は、
C(t)3+C(t)-t=-C(H(t))+C(H(t))+C(H(t))3=C(H(t))3∈GF(3m) …(56)
と変形できる。この式(56)を用いると式(49)は、
C(H(t))3-C(H(t))=-(C(t)3+C(t)-t)-C(t) ∈GF(3m) …(57)
と変形できる。
さらに、有限体GF(3m)上の演算(式(13)(14)参照)では、-2・C(H(t))3∈GF(3m)はC(H(t))3∈GF(3m)と等価であることを考慮すると、式(57)は、
C(H(t))3-C(H(t))=-(C(t)3+C(t)-t)-C(t)=t-C(t)3+C(t) ∈GF(3m) …(58)
と変形できる。従って、式(42)を参照すると、r=m mod 3=1であってTr(t)=0である場合に式(58)を計算することでも、曲線y2=x3-x+b上のx座標が求まり、楕円曲線y2=x3-x+b上の点(x,y)が定まることが分かる。
〔第1実施形態〕
次に、本発明の第1実施形態を説明する。
本形態は、mが2≡m mod 3を満たす正の整数である場合に、式(37)を用い、任意のビット列ID∈{0,1}*を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する形態である。
<構成>
図1は、第1実施形態の変換演算装置1の機能構成を説明するためのブロック図である。
図1に示すように、本形態の変換演算装置1は、制御部101、一時メモリ102、入力部103、記憶部104、変換部105、有限体演算部106,109(「第1,2有限体演算部」に相当)、演算制御部107、1/3トレース写像演算部108、及び出力部110を有する。
変換演算装置1は、CPU(central processing unit),RAM(random-access memory),ROM(read-only memory)等を有する公知のコンピュータに所定のプログラムが読み込まれ、CPUがこれを実行することによって構成される。すなわち、一時メモリ102や記憶部104は、例えば、RAM、磁気記録装置、光磁気記録媒体やそれらの少なくとも一部の結合によって構成される記憶領域である。変換部105、有限体演算部106,109、演算制御部107及び1/3トレース写像演算部108は、例えば、CPUに所定のプログラムが読み込まれて構成される処理部である。また、入力部103は、例えば、キーボードなどのユーザインタフェースや、データの入力を受け付ける入力ポートや、他の処理部から出力されたデータの入力処理を行う処理部(CPUに所定のプログラムが読み込まれて構成される処理部)などである。また、出力部110は、データを出力する出力ポートや、データを他の処理部に転送するための処理部(CPUに所定のプログラムが読み込まれて構成される処理部)などである。なお、変換演算装置1は、制御部101の制御のもと各処理を実行する。また、各演算処理で生成されたデータは、逐一、一時メモリ102に格納され、その他の演算処理の際に読み出されて利用される。
<変換演算方法>
次に、本形態の変換演算方法を説明する。
図2は、第1実施形態の変換演算方法を説明するためのフローチャートである。以下、この図を用いて本形態の変換演算方法を説明する。本形態では、mが2≡m mod 3を満たす正の整数であることを前提にする。
まず、入力部103に任意のビット列ID∈{0,1}*が入力され、記憶部104に格納される(ステップS101)。次に、制御部101がw=0とし、wを一時メモリ102に格納する(ステップS102)。次に、変換部105が、記憶部104からビット列ID∈{0,1}*を読み出し、一時メモリ102からwを読み出し、記憶部104から読み出したビット列ID∈{0,1}*を有限体GF(3m)の元y=G(ID)+w ∈GF(3m)に変換する(ステップS103)。本形態では、ここで、関数G(ID)は、任意のビット列ID∈{0,1}*を有限体GF(3m)の元に変換する関数である。このような関数G(ID)は、ハッシュ関数などを用いて容易に構成できる。以下に関数G(ID)の一例を示す。
[関数G(ID)の一例]
(1)入力されたビット列ID∈{0,1}*に対してstr=MGF(ID,L)(ただし、L=2・floor(log23m))を求める。なお、MGF(ID,L)は、マスク生成関数であり、ハッシュ関数演算を繰り返し行うことで、任意のビット列ID∈{0,1}*からビット長Lのビット値strを生成する関数である(例えば、「RSA Laboratories, “PKCS #1 v2.1: RSA Encryption Standard,” draft 2, January 5, 2001.」など参照)。また、floor(・)はフロア関数であり、・以下の最大の整数を出力する。すなわち、この例では、log23m以下の最大の整数を2倍したものをLとする。
(2)d=BitStringtoInteger(str)を求める。なお、BitStringtoInteger(・)は、ビット列・を整数に変換する関数である。
(3)dを3進展開し、各項の係数が{0,1,2}の多項式d3を生成する。
(4)d3 mod f(x)を求め、その演算値を出力する。なお、f(x)は、有限体GF(3)の元を係数とするm次の既約多項式である([関数G(ID)の一例]の説明終わり)。
次に、有限体演算部106にステップS103で得られた元y∈GF(3m)が入力され、有限体演算部106は、この元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行う(ステップS104)。次に、演算制御部107に、ステップS104で生成されたt∈GF(3m)入力され、式(23)に示したトレース写像Tr(t)を計算し、Tr(t)=0を満たすか否かを判定する(ステップS105)。
ここで、Tr(t)=0を満たさないと判定された場合、演算制御部107は、ステップS103における変換方法を変更してステップS103〜S105の各処理を再び実行させる。本形態の例では、演算制御部107が一時メモリ102から読み出したwからw+1を求め、求めたw+1を新たなwとして一時メモリ102に格納し、処理をステップS103に戻す(ステップS106)。
一方、ステップS105においてTr(t)=0を満たすと判定された場合、Tr(t)=0を満たすと判定されたtが1/3トレース写像演算部108に入力される。1/3トレース写像演算部108は、ステップS105でTr(t)=0を満たすと判定されたtを用い、式(28)に示した1/3トレース写像の演算を行ってC(t)∈GF(3m)を求める(ステップS107)。1/3トレース写像演算部108は、有限体GF(3m)の元u∈GF(3m)を元us∈GF(3m)(s=3n,nは1以上の整数)へ写像する3乗フロベニウス写像と、有限体GF(3m)上での加算のみによってC(t)∈GF(3m)を計算できる。次に、有限体演算部109にステップS107で得られたC(t)が入力され、有限体演算部109は、ステップS107で得られたC(t)を用い、x=C(t)3-C(t)∈GF(3m)の演算を行う(ステップS108/式(37)参照)。なお、C(t)3∈GF(3m)は、有限体GF(3m)の元u∈GF(3m)を元u3∈GF(3m)へ写像する3乗フロベニウス写像によって計算できる。
次に、出力部110が、ステップS108で得られたx∈GF(3m)と、ステップS105でTr(t)=0を満たすと判定されたtを算出するためにステップS104で用いられた元y∈GF(3m)とを出力する(ステップS109)。
<本形態の特徴>
mが2≡m mod 3を満たす正の整数である場合に、本形態の処理を行うことにより、任意のビット列ID∈{0,1}*を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換することができ、その演算コストは非特許文献2の方法よりも低い。
具体的には、k=(m-1)/2=(kν-1,...k0)2のハミングウエイト(0以外の要素数)をhw(k)とすると、非特許文献2の方法で必要な有限体GF(3m)上の乗算回数はν+hw(k)回であり、3乗算回数はm-1回である。これに対し、本形態の方法で必要な有限体GF(3m)上の乗算回数は1回であり、3乗算回数はm-1回である。このように、本形態の方法では、演算コストが大きい乗算の回数を非特許文献2の方法に比べて大幅に削減できる。また、非特許文献2の方法ではmの値が大きくなるほど乗算回数が増加するが、本形態の方法はmの値に拘わらず1回である。そのため、従来の非特許文献2の方法では、楕円曲線y2=x3-x+b上で構成される楕円曲線暗号の安全性を向上させるためにmの値(通常、m≧97、具体的にはm=97,167,193,239,353,509などが用いられる)を大きくするほど乗算回数が増加するのに対し、本形態の方法では乗算回数が増加しない。
また、本形態では、yから楕円曲線y2=x3-x+b上のx座標を求めるステップS107、S108の演算は、有限体GF(3m)の元u∈GF(3m)を元us∈GF(3m)(s=3n,nは1以上の整数)へ写像する3乗フロベニウス写像と、有限体GF(3m)上での加算のみによって実現できる。このように演算コストが小さい3乗フロベニウス写像を用いることで、全体の演算コストを大幅に削減できる。なお、ステップS107、S108の演算の少なくとも一方の3乗算に3乗フロベニウス写像を用いない構成であってもよい。
〔第2実施形態〕
次に、本発明の第2実施形態を説明する。
本形態は、mが1≡m mod 3を満たす正の整数である場合に、式(42)を用い、任意のビット列ID∈{0,1}*を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する形態である。なお、以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
<構成>
図3は、第2実施形態の変換演算装置2の機能構成を説明するためのブロック図である。
図3に示すように、本形態の変換演算装置2は、制御部101、一時メモリ102、入力部103、記憶部104、変換部105、有限体演算部106,209(「第1,2有限体演算部」に相当)、演算制御部107、1/3トレース写像演算部208、1/2トレース写像演算部211、及び出力部110を有する。
変換演算装置2は、CPU,RAM,ROM等を有する公知のコンピュータに所定のプログラムが読み込まれ、CPUがこれを実行することによって構成される。例えば、有限体演算部209、1/2トレース写像演算部211、及び1/3トレース写像演算部208は、CPUに所定のプログラムが読み込まれて構成される処理部である。なお、変換演算装置2は、制御部101の制御のもと各処理を実行する。また、各演算処理で生成されたデータは、逐一、一時メモリ102に格納され、その他の演算処理の際に読み出されて利用される。
<変換演算方法>
次に、本形態の変換演算方法を説明する。
図4は、第2実施形態の変換演算方法を説明するためのフローチャートである。以下、この図を用いて本形態の変換演算方法を説明する。本形態では、mが1≡m mod 3を満たす正の整数であることを前提にする。
まず、第1実施形態で説明したステップS101〜S106の処理が実行される。ここで、ステップS105においてTr(t)=0を満たすと判定された場合、Tr(t)=0を満たすと判定されたtが1/2トレース写像演算部211に入力される。1/2トレース写像演算部211は、ステップS105でTr(t)=0を満たすと判定されたtを用い、式(24)に示した1/2トレース写像の演算を行ってH(t)∈GF(3m)を求める(ステップS206)。次に、ステップS206で得られたH(t)が1/3トレース写像演算部208に入力される。1/3トレース写像演算部208は、ステップS206で得られたH(t)を用い、式(28)に示した1/3トレース写像の演算を行ってC(H(t))∈GF(3m)を求める(ステップS207)。1/3トレース写像演算部208は、有限体GF(3m)の元u∈GF(3m)を元us∈GF(3m)(s=3n,nは1以上の整数)へ写像する3乗フロベニウス写像と、有限体GF(3m)上での加算のみによってC(H(t))∈GF(3m)を計算できる。
次に、有限体演算部209にステップS207で得られたC(H(t))が入力され、有限体演算部209は、ステップS207で得られたC(H(t))を用い、x=C(H(t))3-C(H(t))∈GF(3m)の演算を行う(ステップS208/式(42)参照)。なお、C(H(t))3∈GF(3m)は、有限体GF(3m)の元u∈GF(3m)を元u3∈GF(3m)へ写像する3乗フロベニウス写像によって計算できる。
次に、出力部110が、ステップS208で得られたx∈GF(3m)と、ステップS105でTr(t)=0を満たすと判定されたtを算出するためにステップS104で用いられた元y∈GF(3m)とを出力する(ステップS109)。
<本形態の特徴>
mが1≡m mod 3を満たす正の整数である場合に、本形態の処理を行うことにより、任意のビット列ID∈{0,1}*を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換することができ、その演算コストは非特許文献2の方法よりも低い。
具体的には、非特許文献2の方法で必要な有限体GF(3m)上の乗算回数はν+hw(k)回であり、3乗算回数はm-1回である。これに対し、本形態の方法で必要な有限体GF(3m)上の乗算回数は1回であり、3乗算回数は2m-1回である。このように、本形態の方法では、演算コストが大きい乗算の回数を非特許文献2の方法に比べて大幅に削減できる。なお、前述のように、3乗算は3乗フロベニウス写像を用いることで小さな演算コストで計算できる。また、非特許文献2の方法ではmの値が大きくなるほど演算コストが大きな乗算の回数が増加するが、本形態の方法での乗算回数はmの値に拘わらず1回である。そのため、従来の非特許文献2の方法では、楕円曲線y2=x3-x+b上で構成される楕円曲線暗号の安全性を向上させるためにmの値を大きくするほど乗算回数が増加するのに対し、本形態の方法では乗算回数が増加しない。
〔第3実施形態〕
次に、本発明の第3実施形態を説明する。
本形態は、mが1≡m mod 3を満たす正の整数である場合に、式(58)を用い、任意のビット列ID∈{0,1}*を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する形態である。なお、以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
<構成>
図5は、第3実施形態の変換演算装置3の機能構成を説明するためのブロック図である。
図5に示すように、本形態の変換演算装置3は、制御部101、一時メモリ102、入力部103、記憶部104、変換部105、有限体演算部106,309(「第1,2有限体演算部」に相当)、演算制御部107、1/3トレース写像演算部108、及び出力部110を有する。
変換演算装置3は、CPU,RAM,ROM等を有する公知のコンピュータに所定のプログラムが読み込まれ、CPUがこれを実行することによって構成される。例えば、有限体演算部309は、CPUに所定のプログラムが読み込まれて構成される処理部である。なお、変換演算装置3は、制御部101の制御のもと各処理を実行する。また、各演算処理で生成されたデータは、逐一、一時メモリ102に格納され、その他の演算処理の際に読み出されて利用される。
<変換演算方法>
次に、本形態の変換演算方法を説明する。
図6は、第3実施形態の変換演算方法を説明するためのフローチャートである。以下、この図を用いて本形態の変換演算方法を説明する。本形態では、mが1≡m mod 3を満たす正の整数であることを前提にする。
まず、第1実施形態で説明したステップS101〜S107の処理が実行される。次に、有限体演算部309に、ステップS105でTr(t)=0を満たすと判定されたtと、それに対応するステップS107で得られたC(t)とが入力され、有限体演算部309は、これらを用い、x=t-C(t)3+C(t)∈GF(3m)の演算を行う(ステップS308/式(58)参照)。なお、C(t)3∈GF(3m)は、有限体GF(3m)の元u∈GF(3m)を元u3∈GF(3m)へ写像する3乗フロベニウス写像によって計算できる。
次に、出力部110が、ステップS308で得られたx∈GF(3m)と、ステップS105でTr(t)=0を満たすと判定されたtを算出するためにステップS104で用いられた元y∈GF(3m)とを出力する(ステップS109)。
<本形態の特徴>
mが1≡m mod 3を満たす正の整数である場合に、本形態の処理を行うことにより、任意のビット列ID∈{0,1}*を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換することができ、その演算コストは非特許文献2の方法よりも低い。
具体的には、非特許文献2の方法で必要な有限体GF(3m)上の乗算回数はν+hw(k)回であり、3乗算回数はm-1回である。これに対し、本形態の方法で必要な有限体GF(3m)上の乗算回数は1回であり、3乗算回数はm回である。このように、本形態の方法では、演算コストが大きい乗算の回数を非特許文献2の方法に比べて大幅に削減できる。なお、前述のように、3乗算は3乗フロベニウス写像を用いることで小さな演算コストで計算できる。また、非特許文献2の方法ではmの値が大きくなるほど乗算回数が増加するが、本形態の方法はmの値に拘わらず1回である。そのため、従来の非特許文献2の方法では、楕円曲線y2=x3-x+b上で構成される楕円曲線暗号の安全性を向上させるためにmの値を大きくするほど乗算回数が増加するのに対し、本形態の方法では乗算回数が増加しない。
〔第4実施形態〕
次に、本発明の第4実施形態を説明する。
本形態は、第1,3実施形態の組み合わせであり、mが正の整数である場合に、式(58)又は式(37)を用い、任意のビット列ID∈{0,1}*を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する形態である。なお、以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
<構成>
図7は、第4実施形態の変換演算装置4の機能構成を説明するためのブロック図である。
図7に示すように、本形態の変換演算装置4は、制御部101、一時メモリ102、入力部103、記憶部104、変換部105、有限体演算部106(「第1有限体演算部」に相当)、演算制御部107、1/3トレース写像演算部108、有限体演算部109,409(「第2有限体演算部」に相当)、条件分岐部411、及び出力部110を有する。
変換演算装置4は、CPU,RAM,ROM等を有する公知のコンピュータに所定のプログラムが読み込まれ、CPUがこれを実行することによって構成される。例えば、有限体演算部409及び条件分岐部411は、CPUに所定のプログラムが読み込まれて構成される処理部である。なお、変換演算装置4は、制御部101の制御のもと各処理を実行する。また、各演算処理で生成されたデータは、逐一、一時メモリ102に格納され、その他の演算処理の際に読み出されて利用される。
<変換演算方法>
次に、本形態の変換演算方法を説明する。
図8は、第4実施形態の変換演算方法を説明するためのフローチャートである。以下、この図を用いて本形態の変換演算方法を説明する。本形態では、mが正の整数であることを前提にする。
まず、入力部103に任意のビット列ID∈{0,1}*とmと入力され、記憶部104に格納される(ステップS401)。次に、制御部101がw=0とし、wを一時メモリ102に格納する(ステップS102)。次に、変換部105が、記憶部104からビット列ID∈{0,1}*とmを読み出し、一時メモリ102からwを読み出し、記憶部104から読み出したビット列ID∈{0,1}*を有限体GF(3m)の元y=G(ID)+w ∈GF(3m)に変換する(ステップS403)。
次に、有限体演算部106にステップS403で得られた元y∈GF(3m)とmが入力され、有限体演算部106は、この元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行う(ステップS404)。次に、演算制御部107に、ステップS404で生成されたt∈GF(3m)とmが入力され、式(23)に示したトレース写像Tr(t)を計算し、Tr(t)=0を満たすか否かを判定する(ステップS405)。
ここで、Tr(t)=0を満たさないと判定された場合、演算制御部107は、ステップS403における変換方法を変更してステップS403〜S405の各処理を再び実行させる。本形態の例では、演算制御部107が一時メモリ102から読み出したwからw+1を求め、求めたw+1を新たなwとして一時メモリ102に格納し、処理をステップS403に戻す(ステップS106)。
一方、ステップS405においてTr(t)=0を満たすと判定された場合、Tr(t)=0を満たすと判定されたtとmが1/3トレース写像演算部108に入力される。1/3トレース写像演算部108は、ステップS405でTr(t)=0を満たすと判定されたtとmを用い、式(28)に示した1/3トレース写像の演算を行ってC(t)∈GF(3m)を求める(ステップS407)。1/3トレース写像演算部108は、有限体GF(3m)の元u∈GF(3m)を元us∈GF(3m)(s=3n,nは1以上の整数)へ写像する3乗フロベニウス写像と、有限体GF(3m)上での加算のみによってC(t)∈GF(3m)を計算できる。次に、有限体演算部109にステップS107で得られたC(t)とmが入力され、有限体演算部109は、これらを用い、x=C(t)3-C(t)∈GF(3m)の演算を行う(ステップS408/式(37)参照)。なお、C(t)3∈GF(3m)は、有限体GF(3m)の元u∈GF(3m)を元u3∈GF(3m)へ写像する3乗フロベニウス写像によって計算できる。
次に、条件分岐部411に、ステップS408で得られたxとmとが入力され、条件分岐部411が1≡m mod 3を満たすか否かを判定する(ステップS409)。ここで、1≡m mod 3を満たさないと判定された場合、次に、出力部110が、ステップS408で得られたx∈GF(3m)と、ステップS405でTr(t)=0を満たすと判定されたtを算出するためにステップS404で用いられた元y∈GF(3m)とを出力する(ステップS109)。
一方、1≡m mod 3を満たすと判定された場合、有限体演算部409にステップS408で得られたxとmとが入力され、有限体演算部409がt-x∈GF(3m)の演算を行い、その演算結果を新たなx∈GF(3m)とする(ステップS410)。そして、出力部110が、ステップS410で得られたx∈GF(3m)と、ステップS405でTr(t)=0を満たすと判定されたtを算出するためにステップS404で用いられた元y∈GF(3m)とを出力する(ステップS109)。
<本形態の特徴>
mが1≡m mod 3又は2≡m mod 3を満たす正の整数である場合に、本形態の処理を行うことにより、任意のビット列ID∈{0,1}*を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換することができ、その演算コストは非特許文献2の方法よりも低い。
なお、本形態では、第1,3実施形態を組み合わせ、1≡m mod 3を満たすか否かによって、第3実施形態の方法(1≡m mod 3の場合)又は第1実施形態の方法(2≡m mod 3の場合)をとることとした。しかし、第1,2実施形態を組み合わせ、1≡m mod 3を満たすか否かによって、第2実施形態の方法(1≡m mod 3の場合)又は第1実施形態の方法(2≡m mod 3の場合)をとることにしてもよい。
〔シミュレーション結果〕
次に、シミュレーション結果を示す。以下では、第4実施形態で説明した方法の演算時間を例示する。
表1は、各m=97,167,193,239,353,509の有限体GF(3m)上での各演算時間(μsec)を示している。ここで、加算,乗算,3乗算に対応する各演算時間は、それぞれ、有限体GF(3m)上での加算,乗算,3乗算の各1回分の演算時間を示す。なお、3乗算は3乗フロベニウス写像を用いた演算である。また、従来法に対応する各演算時間は、非特許文献2の方法で任意のビット列を有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換するための演算時間を示す。また、提案法に対応する各演算時間は、第4実施形態で説明した方法で任意のビット列を有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換するための演算時間を示す。また、用いた次数mと既約多項式f(x)=xm+xτ+2は、(m,τ)={(97,12),(167,96),(193,12),(239,24),(353,142),(509,358)}であり、それらの根x∈GF(3m)を用いて前述のように各基底(δi=xi)を定めた。また、本実装には、C言語,GCC4.2.2-03オプションを用い、計算時間の測定には、AMD Opteron processor(2.2 GHz)をLinux/x86_64上で動作させた。また、表1の各演算時間は、各演算を1,000,000回以上行ってその平均を求めたものである。実装にはSSEなどの拡張命令は使用していない。表1に示すように、提案法は、どの次数においても従来法よりも1.5倍程度高速に変換演算ができることが分かる。
〔その他の変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
本発明の利用分野としては、例えば、楕円曲線上のペアリング演算を利用するIDベース暗号分野やその他の楕円曲線分野も例示できる。
1〜4 変換演算装置

Claims (10)

  1. 任意のビット列を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する変換演算装置であって、前記mが2≡m mod 3を満たす正の整数であり、
    任意のビット列を格納する記憶部と、
    前記記憶部から読み出した前記ビット列を有限体GF(3m)の元y∈GF(3m)に変換する変換部と、
    前記変換部で得られた元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行う第1有限体演算部と、
    前記第1有限体演算部で得られたtを用い、

    の演算を行う1/3トレース写像演算部と、
    前記1/3トレース写像演算部で得られたC(t)を用い、x=C(t)3-C(t)∈GF(3m)の演算を行う第2有限体演算部と、
    前記第2有限体演算部で得られたxと、前記変換部で得られた元yとを出力する出力部と、を有し、
    前記1/3トレース写像演算部で用いられるtは、
    を満たし、
    前記出力部で出力される元yは、Tr(y2-b)=0を満たす、
    ことを特徴とする変換演算装置。
  2. 任意のビット列を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する変換演算装置であって、前記mが1≡m mod 3を満たす正の整数であり、
    任意のビット列を格納する記憶部と、
    前記記憶部から読み出した前記ビット列を有限体GF(3m)の元y∈GF(3m)に変換する変換部と、
    前記変換部で得られた元yを用い、t=y2-b∈GF(3m)の演算を行う第1有限体演算部と、
    前記第1有限体演算部で得られたtを用い、
    の演算を行う1/3トレース写像演算部と、
    前記第1有限体演算部で得られたtと、それに対応するC(t)とを用い、x=t-C(t)3+C(t)∈GF(3m)の演算を行う第2有限体演算部と、
    前記第2有限体演算部で得られたxと、前記変換部で得られた元yとを出力する出力部と、を有し、
    前記1/3トレース写像演算部で用いられるtは、
    を満たし、
    前記出力部で出力される元yは、Tr(y2-b)=0を満たす、
    ことを特徴とする変換演算装置。
  3. 請求項1又は2の変換演算装置であって、
    前記1/3トレース写像演算部、及び前記第2有限体演算部の少なくとも一方は、
    有限体GF(3m)の元u∈GF(3m)を元us∈GF(3m)(s=3n,nは1以上の整数)へ写像する3乗フロベニウス写像と、有限体GF(3m)上での加算とを行う演算部である、
    ことを特徴とする変換演算装置。
  4. 任意のビット列を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する変換演算装置であって、前記mが1≡m mod 3を満たす正の整数であり、
    任意のビット列を格納する記憶部と、
    前記記憶部から読み出した前記ビット列を有限体GF(3m)の元y∈GF(3m)に変換する変換部と、
    前記変換部での変換で得られた元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行う第1有限体演算部と、
    前記第1有限体演算部で得られたtを用い、
    の演算を行う1/2トレース写像演算部と、
    前記1/2トレース写像演算部で得られたH(t)を用い、
    の演算を行う1/3トレース写像演算部と、
    前記1/3トレース写像演算部で得られたC(H(t))を用い、x=C(H(t))3-C(H(t))∈GF(3m)の演算を行う第2有限体演算部と、
    前記第2有限体演算部で得られたxと、前記変換部で得られた元yとを出力する出力部と、を有し、
    前記1/2トレース写像演算部で用いられるtは、
    を満たし、
    前記出力部で出力される元yは、Tr(y2-b)=0を満たす、
    ことを特徴とする変換演算装置。
  5. 請求項4の変換演算装置であって、
    前記1/2トレース写像演算部、前記1/3トレース写像演算部、及び前記第2有限体演算部の少なくとも一部は、
    有限体GF(3m)の元u∈GF(3m)を元us∈GF(3m)(s=3n,nは1以上の整数)へ写像する3乗フロベニウス写像と、有限体GF(3m)上での加算とを行う演算部である、
    ことを特徴とする変換演算装置。
  6. 任意のビット列を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する変換演算方法であって、前記mが2≡m mod 3を満たす正の整数であり、
    (a) 変換部が、記憶部から読み出したビット列を有限体GF(3m)の元y∈GF(3m)に変換するステップと、
    (b) 第1有限体演算部が、前記ステップ(a)で得られた元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行うステップと、
    (c) 演算制御部が、ステップ(b)で得られたtが
    を満たすか否かを判定し、満たさない場合に前記ステップ(a)における変換方法を変更して前記ステップ(a)(b)を再び実行させるステップと、
    (d) 1/3トレース写像演算部が、前記ステップ(c)でTr(t)=0を満たすと判定されたtを用い、
    の演算を行うステップと、
    (e) 第2有限体演算部が、前記ステップ(d)で得られたC(t)を用い、x=C(t)3-C(t)∈GF(3m)の演算を行うステップと、
    (f) 出力部が、前記ステップ(e)で得られたxと、前記ステップ(c)でTr(t)=0を満たすと判定されたtを算出するために前記ステップ(b)で用いられた元yとを出力するステップと、
    を有する変換演算方法。
  7. 任意のビット列を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する変換演算方法であって、前記mが1≡m mod 3を満たす正の整数であり、
    (a) 変換部が、記憶部から読み出したビット列を有限体GF(3m)の元y∈GF(3m)に変換するステップと、
    (b) 第1有限体演算部が、前記ステップ(a)で得られた元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行うステップと、
    (c) 演算制御部が、ステップ(b)で得られたtが
    を満たすか否かを判定し、満たさない場合に前記ステップ(a)における変換方法を変更して前記ステップ(a)(b)を再び実行させるステップと、
    (d) 1/3トレース写像演算部が、前記ステップ(c)でTr(t)=0を満たすと判定されたtを用い、
    の演算を行うステップと、
    (e) 第2有限体演算部が、前記ステップ(c)でTr(t)=0を満たすと判定されたtと、それに対応する前記ステップ(d)で得られたC(t)とを用い、x=t-C(t)3+C(t)∈GF(3m)の演算を行うステップと、
    (f) 出力部が、前記ステップ(e)で得られたxと、前記ステップ(c)でTr(t)=0を満たすと判定されたtを算出するために前記ステップ(b)で用いられた元yとを出力するステップと、
    を有する変換演算方法。
  8. 任意のビット列を、標数3の有限体GF(3m)上で定義された楕円曲線y2=x3-x+b上の点(x,y)に変換する変換演算方法であって、前記mが1≡m mod 3を満たす正の整数であり、
    (a) 変換部が、記憶部から読み出したビット列を有限体GF(3m)の元y∈GF(3m)に変換するステップと、
    (b) 第1有限体演算部が、前記ステップ(a)で得られた元y∈GF(3m)を用い、t=y2-b∈GF(3m)の演算を行うステップと、
    (c) 演算制御部が、ステップ(b)で得られたtが
    を満たすか否かを判定し、満たさない場合に前記ステップ(a)における変換方法を変更して前記ステップ(a)(b)を再び実行させるステップと、
    (d) 1/2トレース写像演算部が、前記ステップ(c)でTr(t)=0を満たすと判定されたtを用い、
    の演算を行うステップと、
    (e) 1/3トレース写像演算部が、前記ステップ(d)で得られたH(t)を用い、
    の演算を行うステップと、
    (f) 第2有限体演算部が、前記ステップ(e)で得られたC(H(t))を用い、x=C(H(t))3-C(H(t))∈GF(3m)の演算を行うステップと、
    (g) 出力部が、前記ステップ(f)で得られたxと、前記ステップ(c)でTr(t)=0を満たすと判定されたtを算出するために前記ステップ(b)で用いられた元yとを出力するステップと、
    を有する変換演算方法。
  9. 請求項1から5の何れかの変換演算装置としてコンピュータを機能させるためのプログラム。
  10. 請求項9のプログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2009007315A 2009-01-16 2009-01-16 変換演算装置、その方法、プログラム及び記録媒体 Expired - Fee Related JP5268066B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009007315A JP5268066B2 (ja) 2009-01-16 2009-01-16 変換演算装置、その方法、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009007315A JP5268066B2 (ja) 2009-01-16 2009-01-16 変換演算装置、その方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2010164796A true JP2010164796A (ja) 2010-07-29
JP5268066B2 JP5268066B2 (ja) 2013-08-21

Family

ID=42581007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009007315A Expired - Fee Related JP5268066B2 (ja) 2009-01-16 2009-01-16 変換演算装置、その方法、プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP5268066B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012531634A (ja) * 2009-06-30 2012-12-10 モルフォ 楕円曲線上のパラメータ化による暗号法
JP2014164176A (ja) * 2013-02-26 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> ペアリング演算装置、ペアリング演算方法、およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005500740A (ja) * 2001-08-13 2005-01-06 ザ ボード オブ トラスティーズ オブ ザ リーランド スタンフォード ジュニア ユニバーシティ Idベース暗号化および関連する暗号手法のシステムおよび方法
JP2005141200A (ja) * 2003-11-03 2005-06-02 Microsoft Corp 暗号システムの設計におけるアイソジャニの使用
JP2006178125A (ja) * 2004-12-22 2006-07-06 Hitachi Ltd 楕円曲線テートペアリング演算方法及び装置
JP2012515489A (ja) * 2009-01-14 2012-07-05 モルフォ 楕円曲線の点の符号化

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005500740A (ja) * 2001-08-13 2005-01-06 ザ ボード オブ トラスティーズ オブ ザ リーランド スタンフォード ジュニア ユニバーシティ Idベース暗号化および関連する暗号手法のシステムおよび方法
JP2005141200A (ja) * 2003-11-03 2005-06-02 Microsoft Corp 暗号システムの設計におけるアイソジャニの使用
JP2006178125A (ja) * 2004-12-22 2006-07-06 Hitachi Ltd 楕円曲線テートペアリング演算方法及び装置
JP2012515489A (ja) * 2009-01-14 2012-07-05 モルフォ 楕円曲線の点の符号化

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012531634A (ja) * 2009-06-30 2012-12-10 モルフォ 楕円曲線上のパラメータ化による暗号法
JP2014164176A (ja) * 2013-02-26 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> ペアリング演算装置、ペアリング演算方法、およびプログラム

Also Published As

Publication number Publication date
JP5268066B2 (ja) 2013-08-21

Similar Documents

Publication Publication Date Title
JP5562475B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム
US8515060B2 (en) Encryption apparatus, decryption apparatus, encryption method, decryption method, security method, program, and recording medium
WO2007080633A1 (ja) 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム
JP5814880B2 (ja) 暗号システム、暗号方法、暗号プログラム及び復号装置
Alsaidi et al. BITRU: binary version of the NTRU public key cryptosystem via binary algebra
Yassein et al. A comparative performance analysis of NTRU and its variant cryptosystems
JP5268066B2 (ja) 変換演算装置、その方法、プログラム及び記録媒体
Peng et al. An improved analysis on three variants of the RSA cryptosystem
JP5596616B2 (ja) 情報提供システム、仲介装置、仲介方法、情報提供方法、及びプログラム
JP2010160235A (ja) 検索システム、端末装置、データベース装置、検索方法及びプログラム
JP4836208B2 (ja) 暗号化/復号化プログラム、暗号化/復号化装置及び拡大体の乗算装置
Xiong et al. TinyPairing: computing tate pairing on sensor nodes with higher speed and less memory
JP4861369B2 (ja) リカバリ署名システム、署名生成装置、署名検証装置、それらの方法、及びプログラム
Poulakis et al. A Digital Signature Scheme based on two hard problems
JP5097137B2 (ja) 暗号通信システム、端末装置、秘密鍵生成方法及びプログラム
Singh et al. Impact of group theory in cryptosystem
JP4752176B2 (ja) 一方向性関数演算方法及び装置及びプログラム
JP6777569B2 (ja) ペアリング演算装置、ペアリング演算方法、およびプログラム
JP5506633B2 (ja) 代理計算システム、端末装置、代理計算装置、代理計算方法、及びプログラム
JP5038364B2 (ja) 部分群上元判定方法及び装置及びプログラム
US8750499B2 (en) Cryptographic method using a non-supersingular elliptic curve E in characteristic 3
Oussama et al. Software implementation of pairing based cryptography on FPGA
Shirase Universal construction of a 12th degree extension field for asymmetric pairing
Dey et al. A New Algorithm to Search for Irreducible Polynomials Using Decimal Equivalents of Polynomials over Galois Field GF (p^ q)
Kamarulhaili Generating Elliptic Curves Modulo p for Cryptography Using Mathematica Software

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110426

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20111121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130430

R150 Certificate of patent or registration of utility model

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees