特許第6023728号(P6023728)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許6023728マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム
<>
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000007
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000008
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000009
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000010
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000011
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000012
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000013
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000014
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000015
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000016
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000017
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000018
  • 特許6023728-マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム 図000019
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6023728
(24)【登録日】2016年10月14日
(45)【発行日】2016年11月9日
(54)【発明の名称】マルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20161027BHJP
   H04L 9/30 20060101ALI20161027BHJP
【FI】
   G09C1/00 650A
   H04L9/00 663A
【請求項の数】9
【全頁数】15
(21)【出願番号】特願2014-7517(P2014-7517)
(22)【出願日】2014年1月20日
(65)【公開番号】特開2015-135451(P2015-135451A)
(43)【公開日】2015年7月27日
【審査請求日】2016年1月7日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100121706
【弁理士】
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【弁理士】
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【弁理士】
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】川原 祐人
【審査官】 金沢 史明
(56)【参考文献】
【文献】 国際公開第2010/123117(WO,A1)
【文献】 森佑樹,他,BN曲線を用いたペアリングのGMPによるiPhone実装,2013年 暗号と情報セキュリティシンポジウム,2013年 1月22日,2E3-1
【文献】 Diego F. ARANHA et al.,The Realm of the Pairings,Cryptology ePrint Archive,International Association for Cryptologic Research (IACR),2013年11月,Report 2013/722,Ver. 20131114:130127,[2016年9月28日検索],インターネット,URL,http://eprint.iacr.org/2013/722/20131114:130127
【文献】 酒見由美,他,マルチペアリングを用いたTwisted Ateペアリングの改良,2010年 暗号と情報セキュリティシンポジウム,2010年 1月22日,4C1-2
【文献】 R. セジウィック,アルゴリズム 第3巻=グラフ・数理・トピックス,近代科学社,1993年 9月30日,pp. 125-128
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
H04L 9/30
(57)【特許請求の範囲】
【請求項1】
m個の群Gの元P,…,Pm−1と群Gの元Q,…,Qm−1とのマルチペアリングe(P,Q)×e(P,Q)×…×e(Pm−1,Qm−1)を求めるマルチペアリング演算装置であって、
mを2以上の整数、jを0以上m−1以下の整数、pを素数または素数のべき乗、kを正の整数、F(p)とF(p)を有限体、Pを有限体F(p)上の楕円曲線の点、Qを有限体F(p)上の楕円曲線の点、Tj1とTj2をQに対応する有限体F(p)上の楕円曲線の点、eを点Pと点Qとを入力とし有限体F(p)上の元を出力するペアリング演算を示す記号、fを有限体F(p)上の元、Lを点Tj1と点Tj2を通る直線をPで評価した式評価であって係数にゼロまたは小整数を含む有限体F(p)上の元、ΔをL×…×LΔ−1の計算過程のすべての乗算を係数にゼロまたは小整数を含む元同士の乗算にできる最大の正整数とし、
f,L,L,…,Lm−1を入力とし、マルチペアリング演算の処理に含まれるf×L×…×Lm−1の演算結果を出力とする式評価演算部を有し、
前記式評価演算部は、
あらかじめ2以上Δ以下の整数δを定めており、
選択されていない式評価L,L,…,Lm−1の中からδ個を選択し、h,h,…,hδ−1とする式評価選択部と、
L”←h×h×…×hδ−1 を計算する式評価乗算部と、
f←f×L” を計算し、fを更新する元乗算部と、
,L,…,Lm−1の中で、前記式評価選択部で選択されていない式評価の数がδより少なくなるまで、前記式評価選択部と前記式評価乗算部と前記元乗算部の処理を繰り返す演算制御部と、
,L,…,Lm−1の中で、前記式評価選択部で選択されていない式評価がある場合は、選択されていない式評価のすべてをfに乗算し、乗算結果にfを更新する未選択乗算部と、
を備え、fを演算結果として出力する
ことを特徴とするマルチペアリング演算装置。
【請求項2】
請求項1記載のマルチペアリング演算装置であって、
前記式評価乗算部は、h,h,…,hδ−1の中の2つからなる組を複数組作るように分けて組ごとに乗算する処理を含む
ことを特徴とするマルチペアリング演算装置。
【請求項3】
請求項1記載のマルチペアリング演算装置であって、
δ=4であって、
前記式評価乗算部は、
’←h×h, L’←h×h
を計算し、
L”←L’×L
のようにL”を計算する
ことを特徴とするマルチペアリング演算装置。
【請求項4】
請求項1記載のマルチペアリング演算装置であって、
δ=3であって、
前記式評価乗算部は、
’←h×h
を計算し、
L”←L’×h
のようにL”を計算する
ことを特徴とするマルチペアリング演算装置。
【請求項5】
m個の群Gの元P,…,Pm−1と群Gの元Q,…,Qm−1とのマルチペアリングe(P,Q)×e(P,Q)×…×e(Pm−1,Qm−1)を求めるマルチペアリング演算方法であって、
mを2以上の整数、jを0以上m−1以下の整数、pを素数または素数のべき乗、kを正の整数、F(p)とF(p)を有限体、Pを有限体F(p)上の楕円曲線の点、Qを有限体F(p)上の楕円曲線の点、Tj1とTj2をQに対応する有限体F(p)上の楕円曲線の点、eを点Pと点Qとを入力とし有限体F(p)上の元を出力するペアリング演算を示す記号、fを有限体F(p)上の元、Lを点Tj1と点Tj2を通る直線をPで評価した式評価であって係数にゼロまたは小整数を含む有限体F(p)上の元、ΔをL×…×LΔ−1の計算過程のすべての乗算を係数にゼロまたは小整数を含む元同士の乗算にできる最大の正整数とし、
f,L,L,…,Lm−1を入力とし、マルチペアリング演算の処理に含まれるf×L×…×Lm−1の演算結果を出力とする式評価演算過程を有し、
前記式評価演算過程は、
あらかじめ2以上Δ以下の整数δを定めており、
式評価選択部が、選択されていない式評価L,L,…,Lm−1の中からδ個を選択し、h,h,…,hδ−1とする式評価選択ステップと、
式評価乗算部が、L”←h×h×…×hδ−1 を計算する式評価乗算ステップと、
元乗算部が、f←f×L” を計算し、fを更新する元乗算ステップと、
演算制御部が、L,L,…,Lm−1の中で、前記式評価選択ステップで選択されていない式評価の数がδより少なくなるまで、前記式評価選択ステップと前記式評価乗算ステップと前記元乗算ステップの処理を繰り返す繰り返しステップと、
未選択乗算部が、L,L,…,Lm−1の中で、前記式評価選択部で選択されていない式評価がある場合は、選択されていない式評価のすべてをfに乗算し、乗算結果にfを更新する未選択乗算ステップと、
を有し、fを演算結果として出力する
ことを特徴とするマルチペアリング演算方法。
【請求項6】
請求項5記載のマルチペアリング演算方法であって、
前記式評価乗算ステップは、h,h,…,hδ−1を2つずつに分けて乗算し、その乗算結果同士を乗算する処理を含む
ことを特徴とするマルチペアリング演算方法。
【請求項7】
請求項5記載のマルチペアリング演算方法であって、
δ=4であって、
前記式評価乗算ステップは、
’←h×h, L’←h×h
を計算し、
L”←L’×L
のようにL”を計算する
ことを特徴とするマルチペアリング演算方法。
【請求項8】
請求項5記載のマルチペアリング演算方法であって、
δ=3であって、
前記式評価乗算ステップは、
’←h×h
を計算し、
L”←L’×h
のようにL”を計算する
ことを特徴とするマルチペアリング演算方法。
【請求項9】
請求項1〜4のいずれかに記載されたマルチペアリング演算装置としてコンピュータを機能させるためのマルチペアリング演算プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報セキュリティ技術のためのマルチペアリング演算装置、マルチペアリング演算方法、マルチペアリング演算プログラムに関する。
【背景技術】
【0002】
複数のペアリング演算の積を効率的に計算するマルチペアリングの従来技術として、特許文献1と非特許文献1が知られている。また、ペアリング演算の効率的なアルゴリズムの例が、非特許文献2,3などに示されている。例えば、Optimal Ateペアリングにおけるマルチペアリングのアルゴリズムを図1に示す。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−301513号公報
【非特許文献】
【0004】
【非特許文献1】R. Granger, and N.P. Smart, "On Computing Products of Pairings," Cryptology ePrint Archive, Report 2006/172, 2006.
【非特許文献2】F. Vercauteren, "Optimal Pairings," IEEE Transactions on Information Theory, vol.56, no.1, pp.455-461, 2010.
【非特許文献3】D.F. Aranha, P.S.L.M. Barreto, P. Longa, and J.E. Ricardini, "The Realm of the Pairings," Cryptology ePrint Archive, Report 2013/722, 2013.
【発明の概要】
【発明が解決しようとする課題】
【0005】
ペアリング暗号では、鍵や暗号文に対して属性と条件式を含め、属性が条件式を満たすかどうかにより復号制御が可能な関数型暗号など、従来の暗号よりも高機能な暗号システムが構成可能である。これらのペアリング暗号システムの構成の際には、暗号化や復号が十分に高速であることが求められる。特に、関数型暗号などの高機能な暗号方式では、多数のペアリング演算が必要となる。特許文献1や非特許文献1に示されたマルチペアリングは、共通化が可能な計算を共通化することで高速化しているので、多数のペアリングを効率的に計算する際には有効である。しかしながら、暗号システムの高機能化が進んでいる状況から、さらなる高速化が求められている。
【0006】
本発明は、楕円曲線上のマルチペアリングについて従来技術を改良し、さらに演算速度を高速化することを目的とする。
【課題を解決するための手段】
【0007】
本発明のマルチペアリング演算装置は、m個の群Gの元P,…,Pm−1と群Gの元Q,…,Qm−1とのマルチペアリングe(P,Q)×e(P,Q)×…×e(Pm−1,Qm−1)を求める。ここで、mを2以上の整数、jを0以上m−1以下の整数、pを素数または素数のべき乗、kを正の整数、F(p)とF(p)を有限体、Pを有限体F(p)上の楕円曲線の点、Qを有限体F(p)上の楕円曲線の点、Tj1とTj2をQに対応する有限体F(p)上の楕円曲線の点、eを点Pと点Qとを入力とし有限体F(p)上の元を出力するペアリング演算を示す記号、fを有限体F(p)上の元、Lを点Tj1と点Tj2を通る直線をPで評価した式評価であって係数にゼロまたは小整数を含む有限体F(p)上の元、ΔをL×…×LΔ−1の計算過程のすべての乗算を係数にゼロまたは小整数を含む元同士の乗算にできる最大の正整数とする。
【0008】
本発明のマルチペアリング演算装置は、f,L,L,…,Lm−1を入力とし、マルチペアリング演算の処理に含まれるf×L×…×Lm−1の演算結果を出力とする式評価演算部を有する。式評価演算部は、あらかじめ2以上Δ以下の整数δを定めており、式評価選択部、式評価乗算部、元乗算部、演算制御部、未選択乗算部を備える。式評価選択部は、選択されていない式評価L,L,…,Lm−1の中からδ個を選択し、h,h,…,hδ−1とする。式評価乗算部は、L”←h×h×…×hδ−1 を計算する。元乗算部は、f←f×L” を計算し、fを更新する。演算制御部は、L,L,…,Lm−1の中で、式評価選択部で選択されていない式評価の数がδより少なくなるまで、式評価選択部と式評価乗算部と元乗算部の処理を繰り返す。未選択乗算部は、L,L,…,Lm−1の中で、式評価選択部で選択されていない式評価がある場合は、選択されていない式評価のすべてをfに乗算し、乗算結果にfを更新する。式評価演算部は、L,L,…,Lm−1のすべてを乗算されたfを演算結果として出力する。
【発明の効果】
【0009】
本発明のマルチペアリング演算装置によれば、マルチペアリング演算の処理に含まれるf×L×…×Lm−1の演算において、まずゼロまたは小整数の係数を含む式評価L,L,…,Lm−1の中からΔ個以下の式評価を選択して乗算する処理を繰り返すので、係数にゼロや小整数を持つ元同士の演算を増やせる。したがって、計算コストを削減でき、計算速度を高速化できる。
【図面の簡単な説明】
【0010】
図1】従来のOptimal Ateペアリングにおけるマルチペアリングのアルゴリズムを示す図。
図2】本発明のマルチペアリング演算装置の構成例を示す図。
図3】本発明のマルチペアリング演算装置の式評価演算の処理フローの例を示す図。
図4】Optimal Ateペアリングにおけるマルチペアリングのアルゴリズムの例(Algorithm 2)を示す図。
図5図4のアルゴリズムのステップ6,9,18,20に適用する式評価演算部100の処理のアルゴリズムの1つ目の例(Algorithm 3)を示す図。
図6図5のステップ3の計算の部分のアルゴリズムの具体例(Algorithm 4)を示す図。
図7図5,13のステップ4の処理のアルゴリズムの具体例(Algorithm 5)を示す図。
図8図5のステップ9の処理のアルゴリズムの具体例(Algorithm 6)を示す図。
図9図4のアルゴリズムのステップ6,9,18,20に適用する式評価演算部100の処理のアルゴリズムの2つ目の例(Algorithm 7)を示す図。
図10図9,13のステップ3の計算の部分のアルゴリズムの具体例(Algorithm 8)を示す図。
図11図9のステップ4の処理のアルゴリズムの具体例(Algorithm 9)を示す図。
図12図9,13のステップ9の処理のアルゴリズムの具体例(Algorithm 10)を示す図。
図13図4のアルゴリズムのステップ6,9,18,20に適用する式評価演算部100の処理のアルゴリズムの3つ目の例(Algorithm 11)を示す図。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、詳細に説明する。本発明のマルチペアリング演算装置は、m個の群Gの元P,…,Pm−1と群Gの元Q,…,Qm−1とのマルチペアリングe(P,Q)×e(P,Q)×…×e(Pm−1,Qm−1)を求める。mを2以上の整数、jを0以上m−1以下の整数、pを素数または素数のべき乗、kを正の整数、F(p)とF(p)を有限体、Pを有限体F(p)上の楕円曲線の点、Qを有限体F(p)上の楕円曲線の点、Tj1とTj2をQに対応する有限体F(p)上の楕円曲線の点、eを点Pと点Qとを入力とし有限体F(p)上の元を出力するペアリング演算を示す記号、fを有限体F(p)上の元、Lを点Tj1と点Tj2を通る直線をPで評価した式評価であって係数にゼロまたは小整数を含む有限体F(p)上の元、ΔをL×…×LΔ−1の計算過程のすべての乗算を係数にゼロまたは小整数を含む元同士の乗算にできる最大の正整数とする。点Tj1と点Tj2とが同一の点の場合、「点Tj1と点Tj2を通る直線」は点Tj1での接線とする。「小整数」とは少なくとも1を含む値の小さい整数であり、例えば、任意の元fと小整数dとの乗算(d×f)を、任意の元fのd−1回の加算(f+f+…+f)で行った方が、計算量が少なくなるような整数である。また、後述の1を係数として含む元の乗算と同様に計算コストを少なくできる小さい整数も含む。演算装置、演算方法、プログラムによって具体的な小整数は異なるが、ある演算装置が、整数dと元fとの乗算(d×f)を加算(f+f+…+f)に置き換えて計算している場合、その演算装置においては、整数dは小整数である。
【0012】
また、図1,4,5,9,13に示すアルゴリズムでは、TがTj1に相当し、T,Q,Q’,−Q”がTj2に相当し、aoptがeに相当し、
【数1】
がLに相当する。また、F(p)は、
【数2】
のように示されている。
【0013】
<分析>
ペアリング演算には、点Tj1と点Tj2と点Pに対して、点加算/2倍算と式評価の計算が含まれる。次に、具体的な座標系の例を示しながら説明する。
【0014】
次の具体例の説明では、Barreto-Naehrig楕円曲線(BN曲線,E:y=x+b,b≠0∈F(p))を用いる。BN曲線では、整数zに対して素数pとBN曲線上のF(p)有理点群の位数rは、
p=36z+36z+24z+6z+1
r=36z+36z+18z+6z+1
である。BN曲線では、rで割り切れる(p−1)となる最小のkは12である。
【0015】
拡大体F(p)を逐次拡大により
F(p)=F(p)[u]/(u−β)
F(p)=F(p)[v]/(v−ξ)
F(p12)=F(p)[w]/(w−v)
ただし、βは平方非剰余、ξは平方非剰余かつ立方非剰余
のように構成する。そして、F(p12)上の元Aを
A=a+av+a+aw+avw+aw (式1)
【0016】
ただし、a,a,a,a,a,a ∈F(p
と表現する。なお、6次のツイスト曲線E’は、y=x+b/ξ である。このとき、点(x,y)に対してE’,Eの同型写像(x,y)→(xw,yw)となる
Φ:E’(F(p))→E(F(p12))
が存在する。
【0017】
Affine座標系の例
j1=(x,y)、Tj2=(x,y)、P=(x,y)とする。λ=(y−y)/(x−x)に対して、点加算と式評価(点Tj1と点Tj2とが異なる場合)は、
=λ−x−x
=λ(x−x)−y
=y−λxw+(λx−y)vw (式2)
となる。また、点2倍算と式評価(点Tj1と点Tj2とが同じ場合)は、λ=3x/2yに対して
=λ−2x
=λ(x−x)−y
=y−λxw+(λx−y)vw (式3)
となる。ここで、式1に示したF(p12)上の元Aはa,a,a,a,a,aの6つの係数が存在するが、式2、式3に示した式評価ではその中の3つの係数がゼロであることが分かる。
【0018】
Affine座標系の異なる形式の式評価の例
式2、式3を
’・L=1−λx’w+y’(λx−y)vw (式4)
ただし、x’=x/y, y’=1/y
のように変換して式評価としてもよい。このように変形しても、y’の部分は最終べきの計算(図1のアルゴリズムのステップ21)で除去されるため、ペアリング演算の結果には影響しない。式4のように変形すると、3つの係数がゼロであり1つの係数が小整数の「1」であることが分かる。
【0019】
Homogeneous Projective座標系の例
この座標系での楕円曲線Eは、YZ=X+b’Zとなる。点の表現をTj1=(X,Y,Z)∈Gとし、(x,y)=(X/Z,Y/Z)、Tj2=(x,y)、P=(x,y)とする。また点加算/2倍算と式評価は、Homogeneous Projective座標系の点とAffine座標系の点の混合座標で計算する。t=Y−y,t=X−xに対して、点加算と式評価は、
=t(t+Z−2X
=t(3X−t−Z)−Y
=Z
=−t−tw+(t−t)vw (式5)
となる。また、点2倍算と式評価は、
=X(Y−9b’Z)/2
=[(Y+9b’Z)/2]−27b’
=2Y
=−2Y+3Xw+(3b’Z−Y)vw (式6)
となる。元は式1で表現されるので、式5、式6に示した式評価では3つの係数がゼロであることが分かる。
【0020】
本発明は、式評価にゼロの係数があることを利用して計算コストを削減する。
【実施例1】
【0021】
図2に本発明のマルチペアリング演算装置の構成例を、図3に本発明のマルチペアリング演算装置の式評価演算の処理フローの例を示す。マルチペアリング演算装置10は、m個の群Gの元P,…,Pm−1と群Gの元Q,…,Qm−1とのマルチペアリングe(P,Q)×e(P,Q)×…×e(Pm−1,Qm−1)を求める。マルチペアリング演算装置10は、式評価演算部100を有することを特徴としており、点加算や点2倍算などのその他の処理を行う構成部も有するが、それらは従来技術と同じである。そのため、図2,3では省略している。
【0022】
式評価演算部100は、f,L,L,…,Lm−1を入力とし、マルチペアリング演算の処理に含まれるf×L×…×Lm−1の演算結果を出力する(S100)。式評価演算部100は、あらかじめ2以上Δ以下の整数δを定めており、式評価選択部110、式評価乗算部120、元乗算部130、演算制御部140、未選択乗算部150を備える。マルチペアリング演算装置10は、整数δなどを記録する記録部90も備える。式評価選択部110は、選択されていない式評価L,L,…,Lm−1の中からδ個を選択し、h,h,…,hδ−1とする(S110)。
【0023】
式評価乗算部120は、
L”←h×h×…×hδ−1
を計算する(S120)。式評価乗算部120は、h,h,…,hδ−1をゼロまたは小整数の係数を含む元同士の演算がより多くなるように工夫して乗算すればよい。例えば、h,h,…,hδ−1の中の2つからなる組を複数組作るように分けて組ごとに乗算する処理を含むように構成する方法がある。このように計算すれば、ゼロまたは小整数の係数を含む元同士の演算がより多くなる。「h,h,…,hδ−1の中の2つからなる組を複数組作るように分けて組ごとに乗算する」具体例としては以下のような例がある。δ=4のときには、
’←h×h, L’←h×h
L”←L’×L
のようにL”を計算すればよい。このときは、(h,h)の組と(h,h)の組を作るように分けられ、まず組ごとに乗算している。δ=6のときには、
’←h×h, L’←h×h, L’←h×h
L”←L’×L’×L
のようにL”を求めてもよい。このときは、(h,h)の組と(h,h)の組と(h,h)の組を作るように分けられ、まず組ごとに乗算している。また、このような求め方を、
L”←((h×h)×(h×h)×(h×h))
と表現する。また、δ=6のときに、
’←h×h, L’←h×h
’←L’×h, L’←L’×h
L”←L’×L
のようにL”を求めてもよい。このときは、(h,h)の組と(h,h)の組を作るように分けられ、まず組ごとに乗算している。hとhのように、組に含まれないものがあってもよい。このような求め方を、
L”←(((h×h)×h)×((h×h)×h))
と表現する。δ=6の場合にどちらの計算手順を選ぶかは、式評価の特徴を考慮して決めればよい。特に、δ=2の場合であれば、
L”←(…((h×h)×(h×h))×((h×h)×(h×h))×…)
のように、2つずつに分けて乗算する処理を繰り返せばよい。上記のようにδが4以上の場合であれば、h,h,…,hδ−1の中の2つからなる組を複数組作るように分けて組ごとに乗算する処理を含むように構成できる。また、δ=3のときには、
’←h×h
L”←L’×h
のようにL”を計算すればよい。
【0024】
なお、上述のAffine座標系とHomogeneous Projective座標系では、h×hの乗算は、係数にゼロを含む元同士の乗算であり、計算結果には値がゼロの係数が1つ存在する。(h×h)×hや(h×h)×(h×h)の乗算は係数にゼロを含む元同士の乗算であるが、計算結果には値がゼロまたは小整数の係数はなくなる。そして、h×h×h×h×hのようが5つの元の乗算では、((h×h)×(h×h))×h、((h×h)×h)×(h×h)などの計算手順が考えられるが、どのように計算しても、少なくとも最後の乗算の一方の元は、値がゼロまたは小整数の係数を含まない元になってしまう。したがって、計算過程のすべての乗算において、係数にゼロまたは小整数を含む元同士の乗算にできるのは4つの元の乗算までである。よって、Δ=4である。そして、δ=4に設定すれば、上記の手順で計算ができる。また、ステップS110が終了してからステップS120を開始するのではなく、ステップS110で2つの式評価を選択してステップS120の乗算を行う処理を繰り返してもよい。
【0025】
元乗算部130は、
f←f×L”
を計算し、fを更新する(S130)。演算制御部140は、L,L,…,Lm−1の中で、式評価選択部110で選択されていない式評価の数がδより少なくなるまで、式評価選択部110と式評価乗算部120と元乗算部130の処理(S110,S120,S130)を繰り返す(S140)。未選択乗算部150は、L,L,…,Lm−1の中で、式評価選択部110で選択されていない式評価がある場合は、選択されていない式評価のすべてをfに乗算し、乗算結果にfを更新する(S150)。式評価演算部100は、L,L,…,Lm−1のすべてを乗算されたfを演算結果として出力する。
【0026】
マルチペアリング演算装置10によれば、マルチペアリング演算の処理に含まれるf×L×…×Lm−1の演算において、まずゼロまたは小整数の係数を含む式評価L,L,…,Lm−1の中からΔ個以下の式評価を選択して乗算する処理を繰り返すので、係数にゼロや小整数を持つ元同士の演算を増やせる。したがって、計算コストを削減でき、計算速度を高速化できる。
【0027】
<アルゴリズムの具体例>
図4に、Optimal Ateペアリングにおけるマルチペアリングのアルゴリズムの例(Algorithm 2)を示す。図4のアルゴリズムは、図1に示した従来のアルゴリズムを、本発明の式評価の乗算を適用できるように変更したものである。式評価演算部100の処理は、図4のアルゴリズムのステップ6,9,18,20に適用される。以下では、これらのステップに適用するアルゴリズムの例を示す。
【0028】
例1
図5は、図4のアルゴリズムのステップ6,9,18,20に適用する式評価演算部100の処理のアルゴリズムの1つ目の例(Algorithm 3)である。このアルゴリズムは、式3,5で表現できる式評価(3つの係数がゼロの式評価)の乗算に適用できる。図5のステップ3では、h,h,h,hとして
【数3】
【0029】
が選択され、
’←h×h, L’←h×h
の計算が行われる。そして、ステップ4で
L”←L’×L
のようにL”が求められている。つまり、ステップ3の式評価の選択部分がS110に相当し、ステップ3のL’とL’の計算の部分と、ステップ4がS120に相当する。また、ステップ5がS130に相当し、ステップ1,2,6がS140に相当し、ステップ7〜10がS150に相当する。
【0030】
図6は、図5のステップ3のL’とL’の計算の部分のアルゴリズムの具体例(Algorithm 4)である。図6のステップ8に示された元の式から、値がゼロの係数が1つあることが分かる。図7は、図5のステップ4の処理のアルゴリズムの具体例(Algorithm 5)である。図8は、図5のステップ9の処理のアルゴリズムの具体例(Algorithm 6)である。
【0031】
例2
図9は、図4のアルゴリズムのステップ6,9,18,20に適用する式評価演算部100の処理のアルゴリズムの2つ目の例(Algorithm 7)である。このアルゴリズムは、式4で表現できる式評価(3つの係数がゼロ、1つの係数が「1」の式評価)の乗算に適用できる。図9のステップ3,4では、h,h,hとして
【数4】
が選択され、
L’←h×h
L”←L’×h
のようにL”が求められている。つまり、ステップ3,4の式評価の選択部分がS110に相当し、ステップ3,4のL’とL”の計算の部分がS120に相当する。また、ステップ5がS130に相当し、ステップ1,2,6がS140に相当し、ステップ7〜10がS150に相当する。
【0032】
図10は、図9のステップ3のL’の計算の部分のアルゴリズムの具体例(Algorithm 8)である。図11は、図9のステップ4の処理のアルゴリズムの具体例(Algorithm 9)である。図12は、図9のステップ9の処理のアルゴリズムの具体例(Algorithm 10)である。
【0033】
例3
図13は、図4のアルゴリズムのステップ6,9,18,20に適用する式評価演算部100の処理のアルゴリズムの3つ目の例(Algorithm 11)である。このアルゴリズムは、式4で表現できる式評価(3つの係数がゼロ、1つの係数が「1」の式評価)の乗算に適用できる。図13のステップ3では、h,h,h,hとして
【数5】
【0034】
が選択され、
’←h×h, L’←h×h
の計算が行われる。そして、ステップ4で
L”←L’×L
のようにL”が求められている。つまり、ステップ3の式評価の選択部分がS110に相当し、ステップ3のL’とL’の計算の部分と、ステップ4がS120に相当する。また、ステップ5がS130に相当し、ステップ1,2,6がS140に相当し、ステップ7〜10がS150に相当する。
【0035】
ステップ3は図10に示したアルゴリズム(Algorithm 8)を用い、ステップ4は図7に示したアルゴリズム(Algorithm 5)を用い、ステップ9は図12に示したアルゴリズム(Algorithm 10)を用いればよい。
【0036】
[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0037】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0038】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0039】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0040】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0041】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0042】
10 マルチペアリング演算装置 90 記録部
100 式評価演算部 110 式評価選択部
120 式評価乗算部 130 元乗算部
140 演算制御部 150 未選択乗算部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13