特許第6445474号(P6445474)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ 日本電信電話株式会社の特許一覧
特許6445474ペアリング型変換装置、ペアリング型変換方法、プログラム
<>
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000031
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000032
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000033
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000034
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000035
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000036
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000037
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000038
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000039
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000040
  • 特許6445474-ペアリング型変換装置、ペアリング型変換方法、プログラム 図000041
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6445474
(24)【登録日】2018年12月7日
(45)【発行日】2018年12月26日
(54)【発明の名称】ペアリング型変換装置、ペアリング型変換方法、プログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20181217BHJP
【FI】
   G09C1/00 650Z
【請求項の数】7
【全頁数】19
(21)【出願番号】特願2016-6350(P2016-6350)
(22)【出願日】2016年1月15日
(65)【公開番号】特開2017-126027(P2017-126027A)
(43)【公開日】2017年7月20日
【審査請求日】2018年2月20日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100121706
【弁理士】
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【弁理士】
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【弁理士】
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】星野 文学
【審査官】 中里 裕正
(56)【参考文献】
【文献】 特開2015−026005(JP,A)
【文献】 丹後偉也,阿部正幸,岡本龍明,タイプ1の双線形写像群の暗号方式からタイプ3への変換アルゴリズムの実装,2014年 暗号と情報セキュリティシンポジウム講演論文集,2014年 1月24日,p.1-8
【文献】 AKINYELE, J. A., GARMAN, C. and HOHENBERGER, S.,Automating Fast and Secure Translations from Type-I to Type-III Paring Schemes,Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communicaitons Security,2015年10月,p.1370-1381
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
実装に際し、選択可能な上位プリミティブを複数含む暗号プロトコルについて、前記上位プリミティブを全て列挙して組み入れた仮想の依存関係グラフを生成する仮想依存関係グラフ生成部と、
前記上位プリミティブのそれぞれに、識別子を割り当てる識別子割り当て部と、
前記識別子が適切な実装の値と一致する場合に限り、前記識別子に対応するノードが評価関数においてカウントされるように論理式を組み入れる論理式組み入れ部と、
前記評価関数を線形化し、前記評価関数および探索空間を整数計画問題インスタンスに変換する評価関数線形化部と、
を含むペアリング型変換装置。
【請求項2】
請求項1に記載のペアリング型変換装置であって、
前記仮想依存関係グラフ生成部は、
複数の仮想的実装から参照される群要素変数を、前記仮想の依存関係グラフに一つだけ組み入れる
ペアリング型変換装置。
【請求項3】
請求項1または2に記載のペアリング型変換装置であって、
前記評価関数線形化部は、
前記識別子をバイナリ変数に変換する
ペアリング型変換装置。
【請求項4】
ペアリング型変換装置の仮想依存関係グラフ生成部は、実装に際し、選択可能な上位プリミティブを複数含む暗号プロトコルについて、前記上位プリミティブを全て列挙して組み入れた仮想の依存関係グラフを生成するステップを実行し、
ペアリング型変換装置の識別子割り当て部は、前記上位プリミティブのそれぞれに、識別子を割り当てるステップを実行し、
ペアリング型変換装置の論理式組み入れ部は、前記識別子が適切な実装の値と一致する場合に限り、前記識別子に対応するノードが評価関数においてカウントされるように論理式を組み入れるステップを実行し、
ペアリング型変換装置の評価関数線形化部は、前記評価関数を線形化し、前記評価関数および探索空間を整数計画問題インスタンスに変換するステップを実行する
アリング型変換方法。
【請求項5】
請求項4に記載のペアリング型変換方法であって、
前記仮想依存関係グラフ生成部は、
複数の仮想的実装から参照される群要素変数を、前記仮想の依存関係グラフに一つだけ組み入れる
ペアリング型変換方法。
【請求項6】
請求項4または5に記載のペアリング型変換方法であって、
前記評価関数線形化部は、
前記識別子をバイナリ変数に変換する
ペアリング型変換方法。
【請求項7】
コンピュータを請求項1から3の何れかに記載のペアリング型変換装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アルゴリズムの代数的構造を変換するペアリング型変換装置、ペアリング型変換方法、プログラムに関する。
【背景技術】
【0002】
アルゴリズムの代数的構造を変換する技術が知られている。例えば、非特許文献1には、群G,GT上のペアリングe:G×G→GTを用いたアルゴリズムを、群G1,G2,GT上のペアリングe:G1×G2→GT(ただしG1≠G2)を用いたアルゴリズムに変換する技術が開示されている。非特許文献1では、群G上の群演算の依存関係グラフのノードに群G1または群G2を割り当て、その割り当て状況を評価関数で評価し、最も評価の良い割り当てを選択する。
【0003】
<準備>
暗号学においてペアリングとは概ね次のような代数的構造を持つ符号を生成する確率的多項式時間アルゴリズムPの事である。
【0004】
【数1】
【0005】
ただし、λは安全変数、qはq>2Θ(λ)なる整数、G1,G2,GTはそれぞれ同型の位数qの有限アーベル群(の符号)で、それぞれ多項式時間の標本演算および群演算を持つ。また、e:G1×G2→GTは多項式時間非退化双準同型である。G1,G2,GT上のCDH(Computational Diffie-Hellman)問題は難しい。
【0006】
G1,G2をソース群(source group)、GTをターゲット群(target group)と呼ぶ。とくに明示しない限り、単に群と呼んだり群要素などと呼ぶ時はソース群あるいはソース群の群要素を意味するとする。Galbraithらは、暗号方式に用いられるペアリングを大雑把に以下の3つの型に分類した(非特許文献2)。
Type1:G1=G2
Type2:G1≠G2,φ:G2→G1なる多項式時間同型写像が存在する。
Type3:G1≠G2,G1,G2の間に多項式時間同型写像が存在しない。
【0007】
一般にType1を対称ペアリングと呼び、Type2、Type3を非対称ペアリングと呼ぶ。Type2はType3を利用して実装できるので、方式や安全性証明にφを積極的に利用する時以外はType2が登場する事はあまり無い。本明細書では非対称ペアリングとして特にType3を想定する。演算速度や群要素のサイズといった実装上の問題に関して、対称ペアリングよりもずっと効率的な非対称ペアリングの存在が知られている(非特許文献3参照)。
<依存関係グラフ(非特許文献1)>
方式に対して、その依存関係グラフ(dependency graph)とは方式を記述する群要素変数の間の依存関係を表現する有向グラフである。図1に簡易な例における依存関係グラフを示す。以下は、図1の依存関係グラフに対応するアルゴリズムである。
【0008】
【数2】
【0009】
上記アルゴリズムは、群要素A,B,Dを入力とし、群演算を使ってC,Eを計算し、そのペアリングe(C,E)を出力するアルゴリズムの例である。図1に示す依存関係グラフの丸いシンボルで表した各ノードは群要素変数を表現しており、各エッジ(図中の矢印シンボル)は群演算による依存関係を表現している。ペアリングへの入力はペアリングノード91、92(図中の角丸四角形シンボル)への結線(矢印)により表現される。依存関係グラフには、群演算を介した群要素同士の関係のみが記述され、"if-then-else"命令のようなプログラムの構造やa∈Z/pZのような群要素以外の変数、あるいはターゲット群上の演算などは全て捨象される。以下、依存関係グラフの説明に用いる用語を定義する。
【0010】
<祖先グラフ>
ある特定のノードに到達可能な全ての経路(エッジ)を含む依存関係グラフの部分グラフを、その特定のノードの祖先グラフという。
【0011】
<祖先ノード>
ある特定のノードに到達可能なノードをその特定のノードの祖先ノードという。例えば図1の例において、ノードAはノードCの祖先ノードである。
【0012】
<子孫ノード>
ある特定のノードから到達可能なノードをその特定のノードの子孫ノードという。例えば図1の例において、ノードCはノードAの子孫ノードである。
【0013】
<入力エッジ>
祖先ノードに対する群演算による依存関係を表す。図1の例において、群要素Cは、群要素Aに対して入力エッジ81で接続されている。
【0014】
<出力エッジ>
子孫ノードに対する群演算による依存関係を表す。図1の例において、群要素Aは、群要素Cに対して出力エッジ81で接続されている。
【0015】
<ペアリングノード>
依存関係グラフにおいてペアリングへの入力を表現するノードをペアリングノードという。図1の例において、ペアリングノード91、92が例示されている。
【0016】
<レギュラーノード>
ペアリングノードでないノードをレギュラーノードという。図1の例においてレギュラーノードは丸いシンボルで表されている。
【0017】
<ボトムノード>
レギュラーノードのうち、出力エッジが全くないか、出力エッジがないループ全体を代表するノードをボトムノードという。
【0018】
<二重化ノード>
二つのソース群の両方の割り当てが起こったノードを二重化ノードという。二重化ノードについては後述する。
【0019】
<二重化禁止ノード>
何らかの理由により二重化ノードとなることを禁止されたノードを二重化禁止ノードという。
【0020】
<クリティカルノード>
ペアリングノード、ボトムノード、二重化禁止ノードをまとめてクリティカルノードという。
【0021】
<ノーマルノード>
クリティカルノードでないノードをノーマルノードという。
【0022】
<術語>
あるノードxに対してxが分割後にGi,i∈{1,2}側のグラフに含まれているという述語をx∈Giと記述し,¬(x∈Gi)の事を
【0023】
【数3】
【0024】
と記述する。そしてそれらの述語が真であるときその値を1、述語が偽であるときその値を0と定義する。即ち(x∈Gi)∈{0,1}である。あるノードxがクリティカルノードであるなら述語x∈G1と述語x∈G2は排他的である。即ち排他律x∈G1∧x∈G2=0が成立する。一方xがノーマルノードであるなら排他律は必ずしも成立しない。本明細書ではクリティカルノードxに関する述語x∈G2を改めて論理変数xとして記述する。即ちクリティカルノードxに関して
【0025】
【数4】

である。
【0026】
<丹後らのアルゴリズム(非特許文献4、1)>
対称ペアリングは代数的構造が簡単な為、多くの暗号方式が対称ペアリングを前提に設計されている。しかし時間計算量や領域計算量等の効率の観点から、現在では非対称ペアリングを使用することが望ましいと考えられるようになった。そこで、丹後らは対称ペアリングに基づく暗号方式を安全性を保ったまま非対称ペアリングに基づく暗号方式に自動変換するアルゴリズムを提案した(非特許文献4、1)。丹後らの変換は概ね以下のアルゴリズムによって構成される。
Step1:暗号方式を構成する各アルゴリズムおよび安全性証明で使用する帰着アルゴリズムにおける群演算の依存関係グラフ(有向グラフ)をそれぞれ構成し、それを一つに統合する。図2に、丹後らのアルゴリズムにおける依存関係グラフの統合を例示した。例えば、ノードP,Q,Rなどを含む暗号化アルゴリズムを表す依存関係グラフ(図2左)と、ノードPを含む復号アルゴリズムを表す依存関係グラフ(図2中央)は、一つの依存関係グラフ(図2右)に統合される。
Step2:ペアリングへの入力に相当するペアリングノードと群要素比較演算への入力に相当するボトムノードと呼ばれるノードをG1またはG2に割り当てる。図3に、丹後らのアルゴリズムにおけるソース群の割り当ておよびソース群ごとのグラフの分解を例示する。図3の依存関係グラフに含まれるボトムノード71、72には例えばG1が割り当てられ、ボトムノード73、74には例えばG2が割り当てられる(図3上段中央)。
Step3:各ペアリングノードおよびボトムノードにおいて、入力エッジの隣接ノードを次々と遡ったノード(祖先ノード)を元のペアリングノードあるいはボトムノードと同じ割り当てを行なう。この時G1とG2の両方の割り当てが起こった場合は両方割り当たっているノード(二重化ノード)と解釈する。図3の例では、ボトムノード71、72の祖先ノードには、G1が割り当てられ、ボトムノード73、74の祖先ノードには、G2が割り当てられ、双方のソース群が割り当てられたノード61などは、二重化ノードと解釈される(図3上段右)。
Step4:グラフ中に現れるHashToPoint()演算等に相当する二重化禁止ノードが二重化ノードとなっている場合はその割り当ては無効とする。それ以外の場合はグラフの全体の割り当て状況を評価関数に入力して評価する。
Step5:Step2における全ての割り当てに関して、最も評価が良いグラフをG1が割当たってるノードからなるグラフとG2が割当たってるノードからなるグラフに分解して出力する(図3下段)。
【0027】
丹後らの変換はStep2におけるソース群割り当てのバリエーション数に比例した回数Step3、Step4を実行しなくてはならない。これはペアリングノードのペアの数とボトムノードの数の和をnとすると、2n回の演算を必要としており、nが大きい時には計算量が大きくなりすぎて実行困難となる。
【0028】
<整数計画法を用いた分割アルゴリズム>
非対称ペアリングにおいては、ペアリングへの入力は一方にG1が割当たってるとするなら対になるノードにはG2が割当たっている必要がある。従ってペアリングの対になっているノード対x,y∈{0,1}について
x+y=1…(1)
が成立する。また、あるクリティカルノードxの祖先ノードにクリティカルノード(二重化禁止ノード)yがある場合はそれらのノードの割り当ては等しい、即ち
x-y=0…(2)
が成立する。
【0029】
<例>
図4にBonehらの検証者ローカル失効付きグループ署名アルゴリズム(非特許文献5)を表現する依存関係グラフを示す。g1,g2,ωがこの方式のグループ公開鍵に相当する。詳細は非特許文献5を参照のこと。(p1[0],p1[1]),…,(p8[0],p8[1])がそれぞれ対になるペアリングノードの対である。また出力ノードの無いR1,R3,
【0030】
【数5】
【0031】
がボトムノードである。また、u,vが二重化禁止ノードにあたる(非特許文献4)。従ってこのグラフには、u,v,R1,R3,
【0032】
【数6】
【0033】
,p1[0],p1[1],…,p8[0],p8[1]の合計21個のクリティカルノードが存在する。これらのクリティカルノード間のGF(2)上線型関係を考える。上記の変数順序に従い係数および定数項の値を順に並べて一つの線型関係を表現する。例えばp1[0],p1[1]はペアリングの対になっているクリティカルノードであるから、
【0034】
【数7】
【0035】
が成立する。上記の変数順序において、6番目の変数p1[0]および7番目の変数p1[1]の係数が1で他の係数が0であり、定数項が1であるから、この式を係数および定数項の値だけで表現すると
0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
となる。","を省略すると
0000011000000000000001
と表現できる。図5に上記の過程を図示した。この方法で、図4のグラフの線型関係を全て書き下すと、図6に例示する線形関係行列となる。この行列をGF(2)上のGaussの消去法を用いて階段型(echelon form)に変換する事が出来る。図6の線形関係行列を階段型に変換した階段型行列を図7に例示する。
もし階段型行列の最下段非ゼロ行が
0000000000000000000001
となった場合は、全ての変数の係数が0であり、かつ定数項が1であるから、どのような変数の割り当てに対してもその式を充足する事は出来ない。即ちそのグラフは分割不可能となる。上記のグループ署名の例では最下段非ゼロ行が
0000000000000000000111
となっている(図7参照)ので、分割可能であることが分かる。本明細書では、階段型の何れかの行(に対応する関係式)において、先頭項(図7の実線下線を付した1に相当)となる変数を従属変数と呼ぶ。そして従属変数でない変数(図7の破線下線を付した列に相当)を独立変数と呼ぶ。従って上記の例ではp1[1],p8[1]は独立変数、それ以外は従属変数である。全ての独立変数の値の割り当てを適当に1つ決めると、階段行列の下の方の関係式から順次従属変数の値を一意に決定することが出来る。
【0036】
一般に独立変数の個数がn個あるとすると、値の割り当て方法(実行可能解)は2n個存在する。こうした割り当ての内、何らかの評価基準を満たした最適な分割を見つけたいとする。例えば図4のグループ署名の場合、g1,g2,ωが公開鍵に相当する。従って公開鍵のサイズが最も小さい分割を見つけたいならg1,g2,ωの合計サイズが最も小さいグラフを見つければ良い。本明細書では、このような評価基準をノードNに対する重みwNを用いて表現する。例えば図4の場合、ノードg1,g2,ωは重み1、残りのノードについては重み0等と設定する。
【0037】
|Gi|,i∈{1,2}をGiの元を表現するのに必要なビット数と定義し、wN,i=wN・|Gi|と定義する。そしてグラフgに含まれる頂点の集合をVgとする。これらの記法を用いて、各述語の値をそのまま整数と見なすと上記の公開鍵のサイズを最小化したい問題等は、
【0038】
【数8】
【0039】
なる数値を最小化する問題であると捉えることが出来る。ノードNが子孫にもつクリティカルノードの集合をDNと定義すると
【0040】
【数9】
【0041】
とする事ができる。従って
【0042】
【数10】
【0043】
と書くことが出来る。ところで{0,1}上の変数x,x1,x2,yについて、
【0044】
【数11】
【0045】
である。即ち{0,1}変数の任意の連言と否定は線型制約の元で変数に置き換え可能であり、どのような命題変数の論理式もこの置き換えを繰り返す事によって{0,1}変数の線型制約付き線型式に変換出来る事が良く知られている。特にx1,...,xk,y∈{0,1}の時
【0046】
【数12】
【0047】
である。従って、{0,1}上の値y1,N
【0048】
【数13】
【0049】
と定義すると、
【0050】
【数14】
【0051】
であるから
【0052】
【数15】
【0053】
と出来る。同様に
【0054】
【数16】
【0055】
と定義すると、
【0056】
【数17】
【0057】
である。従って
【0058】
【数18】
【0059】
を最小化する問題は
【0060】
【数19】
【0061】
に関して
【0062】
【数20】
【0063】
なる線形制約の下、
【0064】
【数21】
【0065】
なる線形の目的関数を最小化する問題に帰着できる。
【0066】
また、ペアリングの対になっているクリティカルノードd1,d2に対してd1,d2を{0,1}上の変数と見なすとd1+d2=1が成立する。また先祖・子孫の関係を持つクリティカルノードd1,d2について同様にd1-d2=0が成立する。従って、これらの線型関係を全て書き下した上で上記の線型制約および上記の目的関数を任意の0-1整数計画法アルゴリズムに入力する事によって、厳密解あるいは近似解を得ることが出来る。
【先行技術文献】
【非特許文献】
【0067】
【非特許文献1】M. Abe, J. Groth, M. Ohkubo, and T. Tango. Converting cryptographic schemes from symmetric to asymmetric bilinear groups. In J. A. Garay and R. Gennaro, editors, Advances in Cryptology -CRYPTO 2014 - 34th Annual Cryptology Conference, Santa Barbara, CA, USA, August 17-21, 2014, Proceedings, Part I, volume 8616 of Lecture Notes in Computer Science, pages 241{260. Springer, 2014.
【非特許文献2】S. D. Galbraith, K. G. Paterson, and N. P. Smart. Pairings for cryptographers. Discrete Applied Mathematics, 156(16):3113{3121, 2008.
【非特許文献3】P. S. L. M. Barreto and M. Naehrig. Pairing-friendly elliptic curves of prime order. In B. Preneel and S. E. Tavares, editors, Selected Areas in Cryptography, 12th International Workshop, SAC 2005, Kingston, ON, Canada, August 11-12, 2005, Revised Selected Papers, volume 3897 of Lecture Notes in Computer Science, pages 319{331. Springer, 2005.
【非特許文献4】T. Tango, M. Abe, and T. Okamoto. Implementation of Automated Translation for Schemes on Symmetric Bilinear Groups. In Proc. of SCIS 2014, 2014.
【非特許文献5】D. Boneh and H. Shacham. Group signatures with verier-local revocation. In V. Atluri, B. Ptz-mann, and P. D. McDaniel, editors, Proceedings of the 11th ACM Conference on Computer and Communications Security, CCS 2004, Washington, DC, USA, October 25-29, 2004, pages 168{177. ACM, 2004.
【非特許文献6】J. Groth and A. Sahai. Efficient noninteractive proof systems for bilinear groups. SIAM J. Comput., 41(5):1193{1232, 2012.
【発明の概要】
【発明が解決しようとする課題】
【0068】
大規模な方式の設計を行なう場合ペアリングやべき乗といった概念よりも抽象度が高い概念を暗号プリミティブとして利用する事がある(例えばGroth-Sahai証明、非特許文献6)。こうした抽象度の高いプリミティブ(上位プリミティブ)をペアリングやべき乗といった具体的プリミティブで実装する時、その実装方法は必ずしも一意であるとは限らない。さらにその最適な実装は上位プリミティブそのものでは無くそれを用いて設計している方式に依存して変化し得る。そのような場合は厳密な意味での依存関係グラフは一意に定まらない。例えばGroth-Sahai証明において
【0069】
【数22】
【0070】
なる等式の非対話ゼロ知識証明(NIZK, NonInteractive Zero-Knowledge proofs)が
【0071】
【数23】
【0072】
なる等式の非対話証拠識別不能証明(NIWI, NonInteractive Witness-Indistinguishable proofs)を利用して構成される場合がある(非特許文献6)。但し[X]は群要素Xについてコミットされた群要素変数であるとする。この時、利用しているペアリングが対称ペアリングである場合e(Bi-1,[Ci])を用いる代わりにe(Ci-1,[Bi])を用いても構わない。即ち上記の上位プリミティブGroth-Sahai証明を対称ペアリングで実装する際には、定数ペアリングの数をnとするとN=2n個の自由度が存在し、その依存関係グラフは一意に定まらない。従ってそのような上位プリミティブが方式内にm個存在すると、全ての実装の中で最適な方式を得るにはNm回の整数計画法を用いたアルゴリズムを呼び出す必要があり、mが大きくなると事実上計算不能であった。
【0073】
そこで本発明では、整数計画法を用いたアルゴリズムの呼び出し回数を1回に短縮することができるペアリング型変換装置を提供することを目的とする。
【課題を解決するための手段】
【0074】
本発明のペアリング型変換装置は、仮想依存関係グラフ生成部と、識別子割り当て部と、論理式組み入れ部と、評価関数線形化部を含む。
【0075】
仮想依存関係グラフ生成部は、実装に際し、選択可能な上位プリミティブを複数含む暗号プロトコルについて、上位プリミティブを全て列挙して組み入れた仮想の依存関係グラフを生成する。識別子割り当て部は、上位プリミティブのそれぞれに、識別子を割り当てる。論理式組み入れ部は、識別子が適切な実装の値と一致する場合に限り、識別子に対応するノードが評価関数においてカウントされるように論理式を組み入れる。評価関数線形化部は、評価関数を線形化し、評価関数および探索空間を整数計画問題インスタンスに変換する。
【発明の効果】
【0076】
本発明のペアリング型変換装置によれば、整数計画法を用いたアルゴリズムの呼び出し回数を1回に短縮することができる。
【図面の簡単な説明】
【0077】
図1】簡易な例における依存関係グラフを示す図。
図2】丹後らのアルゴリズムにおける依存関係グラフの統合を例示する図。
図3】丹後らのアルゴリズムにおけるソース群の割り当ておよびソース群ごとのグラフの分解を例示する図。
図4】Bonehらの検証者ローカル失効付きグループ署名アルゴリズムを表現する依存関係グラフを示す図。
図5】クリティカルノード間の線形関係を行列形式に変換する過程を例示する図。
図6】線形関係行列を例示する図。
図7】線形関係行列を階段型に変換した階段型行列を例示する図。
図8】実施例1のペアリング型変換装置の構成を示すブロック図。
図9】実施例1のペアリング型変換装置の動作を示すフローチャート。
図10】上位プリミティブを列挙した仮想の依存関係グラフを例示する図。
図11】仮想の依存関係グラフにおいて特定の識別子に対応する上位プリミティブのノードのみが評価関数においてカウントされる状態を例示する図。
【発明を実施するための形態】
【0078】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【実施例1】
【0079】
以下、図8図9図10図11を参照して実施例1のペアリング型変換装置の構成および動作について説明する。図8は、本実施例のペアリング型変換装置1の構成を示すブロック図である。図9は、本実施例のペアリング型変換装置1の動作を示すフローチャートである。図10は、上位プリミティブを列挙した仮想の依存関係グラフを例示する図である。図11は、仮想の依存関係グラフにおいて特定の識別子に対応する上位プリミティブのノードのみが評価関数においてカウントされる状態を例示する図である。
【0080】
図8に示すように、本実施例のペアリング型変換装置1は、仮想依存関係グラフ生成部11と、識別子割り当て部12と、論理式組み入れ部13と、評価関数線形化部14を含む。
【0081】
仮想依存関係グラフ生成部11は、実装に際し、選択可能な上位プリミティブを複数含む暗号プロトコルについて、上位プリミティブを全て列挙(図10に上位プリミティブ51−1、51−2、51−3、…として例示)して組み入れた仮想の依存関係グラフ(図10に仮想依存関係グラフ4として例示)を生成する(S11)。識別子割り当て部12は、上位プリミティブのそれぞれに、識別子(図10に識別子v=1,2,3…として例示)を割り当てる(S12)。論理式組み入れ部13は、識別子が適切な実装の値と一致する場合(図11に識別子v=2が適切な実装の値と一致する場合を例示)に限り、識別子に対応するノードが評価関数においてカウントされるように論理式を組み入れる(S13)。評価関数線形化部14は、評価関数を線形化し、評価関数および探索空間を整数計画問題インスタンスに変換する(S14)。
【0082】
以下に、本実施例のペアリング型変換装置1の動作の詳細を説明する。方式の規模を表すパラメタをsとすると実装の自由度Nがsに対して多項式(即ちn=O(log(s)))であるような上位プリミティブが方式内に多項式個(m=O(sc))ぐらい存在するような状況を考える。ただしOはビッグオー記法である。このような状況下では依存関係グラフが一意に定まらない場合でも、下記のように仮想的な依存関係グラフを考える事によって単一の整数計画問題インスタンスを構成出来る。
Step.1:各上位プリミティブに対して1つずつ整数変数(識別子)を定義する。
Step.2:上位プリミティブのあり得る実装を全て仮想的に実装し(上記ステップS11)、各仮想的実装に上記整数変数(識別子)の値を1つずつ割り当てる(上記ステップS12)。この時、仮想依存関係グラフ生成部11は、元の方式に陽には含まれない群要素変数で、複数の仮想的実装から参照されるものはまとめて一つだけ(仮想的に)実装する。
Step.3:値が割り当てられた仮想的実装に含まれる群要素変数を評価関数に組み入れる際は、上記整数変数(識別子)がその値と一致する時だけ評価されるよう、係数に上記整数変数の術語(等式)を設定する。複数の仮想的実装から参照される仮想的な群要素変数については上記の術語を∨で繋いだものを係数に設定する(上記ステップS13)。
Step.4: 評価関数線形化部14は、必要な場合は、整数変数(識別子)をバイナリ変数に変換する。この時、整数変数(識別子)の術語(等式)はバイナリ変数の術語(等式)を∧で繋いだ式に変換される。さらにバイナリ変数の術語(等式)はリテラル(バイナリ変数それ自身か、またはその否定)に変換される。最終的に式(3)等を使って評価関数を線形化する(上記ステップS14)。
【0083】
例えば、以下のようなNIZK(NonInteractive Zero-Knowledge proofs)のシーケンスを考える。
【0084】
【数24】
【0085】
ここで、crs,[X],[B],proof等は各右辺の関数内部で具体的な群演算によって生成される有限個の群要素変数のリストとする。以下、それらのリストのビット長を|[X]|等と記述する。一般にはNIZK.Proveと対応するNIZK.Verifyは方式を構成する異なるアルゴリズム中で使用されるが、最終的に依存関係グラフは一つに統合されるのでここでは一つのシーケンスとして記述する。コミット[B]は・・・の部分で参照されているとする。上記Step.1に従って上記のシーケンス中の上位プリミティブNIZKに対し変数v∈{0,1}を準備する。そしてStep.2に従い実装を以下のように列挙し、変数の値を割り当てる(下記のコメント部参照)。
【0086】
【数25】
【0087】
ここで、元の方式には陽に含まれていないコミット[C]はv=0の仮想的実装からのみ参照される。仮にコミット[C]が他の仮想的実装から参照されるとしても1つだけ実装する。Groth-Sahai証明においてNIWI(NonInteractive Witness-Indistinguishable proofs)を使ってNIZK(NonInteractive Zero-Knowledge proofs)を構成する為には、実際には追加のNIWIが幾らか必要になるが、上記では、・・・と記述して省略している。Step.3に従い目的関数が例えばコミットのサイズを最小化する関数であったとするなら
【0088】
【数26】
【0089】
等と定義する。コミット[X],[B]は元々の方式で定義されているので無条件に目的関数に組み入れられている。一方コミット[C]は上位プリミティブの展開によって新たに発生するコミットなので条件付きの項となる。Step.4に従い、|[X]|,|[B]|,|[C]|は、前述の方法に従ってクリティカルノードの論理式に展開される。
【0090】
【数27】
【0091】
そして最終的に式(1)、(2)および、
【0092】
【数28】
【0093】
なる線形制約の下、
【0094】
【数29】

なる目的関数を最小化する1つの0-1整数線形計画問題インスタンスに帰着される。
【0095】
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(CentralProcessingUnit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0096】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
【0097】
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
【0098】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0099】
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【0100】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(DigitalVersatileDisc)、DVD−RAM(RandomAccessMemory)、CD−ROM(CompactDiscReadOnlyMemory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Opticaldisc)等を、半導体メモリとしてEEP−ROM(ElectronicallyErasableandProgrammable-ReadOnlyMemory)等を用いることができる。
【0101】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0102】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(ApplicationServiceProvider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0103】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11