説明

情報共有システム、方法、装置及びプログラム

【課題】ギャップ問題ではなく探索問題の難しさを仮定することにより安全性が保証される情報共有システム、方法、装置及びプログラムを提供する。
【解決手段】短期秘密鍵を二重化し、共有情報を計算するための共有秘密情報であって短期秘密鍵に由来する共有秘密情報を短期秘密鍵ごとに計算する。これらの共有秘密情報に基づいて情報を共有する。これにより、ギャップ問題の難しさを仮定することなく探索問題の難しさをのみを仮定することで安全性を証明することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報セキュリティ技術に関する。特に、二者間で同じ情報を共有するための技術に関する。
【背景技術】
【0002】
二者間でセッション鍵等の情報を共有する技術として、以下のような階層型ID鍵交換方式が知られている(例えば、非特許文献1参照。)。
【0003】
<公開パラメータ>PIDをプロトコルIDとし、プロトコル仕様に対応した固有のIDとする。セキュリティパラメータをkとする。pをkビット素数とし、G,GTをそれぞれ双線形写像e:G×G→GT を効率的に計算可能なg,gTを生成元とする群とする。H1:{0,1}*→G、H2:{0,1}*→Zp、H:{0,1}*→{0,1}kをハッシュ関数とする。
【0004】
<鍵生成>鍵生成アルゴリズムは、一様ランダムにマスタ秘密鍵s0∈Zpを選び、S0=1Gを設定する。1GはGの単位元である。鍵生成アルゴリズムは、マスタ公開鍵P0=g及びQ0=P0s0を計算して公開する。
【0005】
<鍵抽出>ID=(ID1,…,IDt-1)に対応するユーザ装置は初期化として、st-1∈Zpを一様ランダムに選び、秘密の状態情報として保持する。同様にして他のユーザのそれぞれも、秘密の状態情報としてZpの元を一様ランダムに選択して保持する。ID=(ID1,…,IDt-1)に対応するユーザは鍵抽出者として自分の長期秘密鍵(St-1,Q1,…,Qt-1)を用いて、そのユーザの下位のユーザであってID’=(ID1,…,IDt-1,IDt)に対応するユーザ向けに次のように長期秘密鍵(St,Q1,…,Qt-1,Qt)を生成する。ここで、Pt=H1(ID1,…,IDt-1,IDt)、St=St-1Ptst-1、Qt=P0stである。
【0006】
<鍵交換>以下では、ユーザUAを鍵交換セッションのイニシエータとし、ユーザUBをレスポンダとする。ユーザUAはIDA=(IDA,1,…,IDA,α)に対応する長期秘密鍵を持ち、ユーザUBはIDB=(IDB,1,…,IDB,β)に対応する長期秘密鍵を持つとする。
【0007】
1.ユーザUAはランダムに短期秘密鍵x~UZpを選ぶ。このとき、ユーザUAは、x=H2(SA,α,x~)を計算し、短期公開鍵epkIDB=(X0=P0x,XB,2=PB,2x,…,XB,β=PB,βx)を計算する。ただし、PB,i=H1(IDB,1,…,IDB,i)(1≦i≦β)である。ユーザUAは、epkIDBをユーザUBに送る。
【0008】
2.ユーザUBはランダムに短期秘密鍵y~UZpを選ぶ。このとき、ユーザUBは、y=H2(SB,β,y~)を計算し、短期公開鍵epkIDA=(Y0=P0y,YA,2=PA,2y,…,YA,α=PA,αy)を計算する。ただし、PA,i=H1(IDA,1,…,IDA,i)(1≦i≦α)である。ユーザUBは、epkIDAをユーザUAに送る。
【0009】
ユーザUBは、共有秘密情報σ123をそれぞれ次のように計算する。
【0010】
σ1=e(X0,SB,β)/Πi=2βe(QB,i-1,XB,i)
σ2=e(Q0,PA,1)y
σ3=(X0)y
その後、ユーザUBは、セッション鍵K=H(σ123,PID,IDA,IDB,epkIDB,epkIDA)を計算して出力し、セッションを終了する。
【0011】
3.ユーザUAは、共有秘密情報σ123をそれぞれ次のように計算する。
【0012】
σ1=e(Q0,PB,1)x
σ2=e(Y0,SA,α)/Πi=2αe(QA,i-1,YA,i)
σ3=(Y0)x
その後、ユーザUAは、セッション鍵K=H(σ123,PID,IDA,IDB,epkIDB,epkIDA)を計算して出力し、セッションを終了する。
【0013】
共有秘密情報には次の関係があるため、ユーザUAが計算した共有秘密情報σ123はそれぞれユーザUBが計算した共有秘密情報σ123と一致する。
【0014】
σ1i=1βe(P0,PB,i)xsi-1i=2βe(P0,PB,i)xsi-1=e(Q0,PB,1)x=e(P0,PB,1)s0x
σ2i=1αe(P0,PA,i)ysi-1i=2αe(P0,PA,i)ysi-1=e(Q0,PA,1)y=e(P0,PA,1)s0y
σ3=(X0)y=(Y0)x=P0xy
このようにして、同一の共有情報であるセッション鍵Kが共有される。
【先行技術文献】
【非特許文献】
【0015】
【非特許文献1】Atsushi Fujioka, Koutarou Suzuki, Kazuki Yoneyama, “Hierarchical ID-Based Authenticated Key Exchange Resilient to Ephemeral Key Leakage”, IWSE 2010, LNCS 6434, pp.164-180, 2010
【発明の概要】
【発明が解決しようとする課題】
【0016】
背景技術に記載した技術では、安全性を保証するためにいわゆるギャップ問題の難しさを仮定する必要がある。ギャップ問題とは、探索問題を解くために判定オラクルの利用を許した問題のことであり、一般にいわゆる探索問題よりも解きやすい問題となる。よって、ギャップ問題の難しさを仮定するよりも、探索問題の難しさを仮定した方が仮定を弱めることができるので望ましい。
【0017】
この発明の課題は、探索問題の難しさを仮定することにより安全性が保証される情報共有システム、方法、装置及びプログラムを提供することである。
【課題を解決するための手段】
【0018】
この発明の一態様による情報共有システムは、プロトコルIDであるPIDを所定のビット列とし、H1:{0,1}*→G、H2:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数として、G,GTをそれぞれ双線形写像e:G×G→GTを計算可能なg,gTを生成元とする群とし、Gの単位元を1Gとし、S0=1Gとし、マスタ公開鍵P0=g,Q0=P0s0∈Gとし、ID=(ID1,ID2,…,IDt-1)に対応する情報共有装置の秘密情報をst-1∈Zpとし、その情報共有装置の長期秘密鍵を(St-1,Q1,…,Qt-1)とし、その情報共有装置の下位の情報共有装置であってID’=(ID1,ID2,…,IDt-1,IDt)に対応する情報共有装置の長期秘密鍵を(St,Q1,…,Qt)とし、Pt=H1(ID1,ID2,…,IDt-1,IDt)とし、St=St-1Ptst-1,Qt=P0stとすることにより定まる、IDA=(IDA,1,…,IDA,α)に対応する情報共有装置Uの長期秘密鍵を(SA,α,QA,1,…,QA,α)、IDB=(IDB,1,…,IDB,β)に対応する情報共有装置Uの長期秘密鍵を(SB,β,QB,1,…,QB,β)として、短期秘密鍵x~1,x~2∈Zpを生成する短期秘密鍵生成部と、x1=H2(SA,α,x~1)及びx2=H2(SA,α,x~2)を計算するハッシュ値計算部と、PB,i=H1(IDB,1,…,IDB,i)(1≦i≦β)として短期公開鍵epkIDB=(X0=P0x1,XB,2=PB,2x1,…,XB,β=PB,βx1,X0’=P0x2,XB,2’=PB,2x2,…,XB,β’=PB,βx2)を計算する短期公開鍵生成部と、短期公開鍵epkIDBを情報共有装置Uに送信する送信部と、短期公開鍵epkIDAを情報共有装置Uから受信する受信部と、第一共有秘密情報σ1=e(Q0,PB,1)x1を計算する第一共有秘密情報計算部と、第二共有秘密情報σ1’=e(Q0,PB,1)x2を計算する第二共有秘密情報計算部と、第三共有秘密情報σ2=e(Y0,SA,α)/Πi=2αe(QA,i-1,YA,i)を計算する第三共有秘密情報計算部と、第四共有秘密情報σ2’=e(Y0’,SA,α)/Πi=2αe(QA,i-1,YA,i’)を計算する第四共有秘密情報計算部と、第五秘密情報計算部σ3=(Y0)x1を計算する第五秘密情報計算部と、F(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算する共有情報生成部と、を含む情報共有装置Uと、短期秘密鍵y~1,y~2∈Zpを生成する短期秘密鍵生成部と、y1=H2(SB,β,y~1)及びy2=H2(SB,β,y~2)を計算するハッシュ値計算部と、PA,i=H1(IDA,1,…,IDA,i)(1≦i≦α)として短期公開鍵epkIDA=(Y0=P0y1,YA,2=PA,2y1,…,YA,α=PA,αy1,Y0’=P0y2,YA,2’=PA,2y2,…,YA,α’=PA,αy2)を計算する短期公開鍵生成部と、短期公開鍵epkIDAを情報共有装置Uに送信する送信部と、短期公開鍵epkIDBを情報共有装置Uから受信する受信部と、第一共有秘密情報σ1=e(X0,SB,β)/Πi=2βe(QB,i-1,XB,i)を計算する第一共有秘密情報計算部と、第二共有秘密情報σ1’=e(X0’,SB,β)/Πi=2βe(QB,i-1,XB,i’)を計算する第二共有秘密情報計算部と、第三共有秘密情報σ2=e(Q0,PA,1)y1を計算する第三共有秘密情報計算部と、第四共有秘密情報σ2’=e(Q0,PA,1)y2を計算する第四共有秘密情報計算部と、第五秘密情報計算部σ3=(X0)y1を計算する第五秘密情報計算部と、F(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算する共有情報生成部と、を含む情報共有装置Uと、を含む。
【発明の効果】
【0019】
探索問題の難しさを仮定することにより安全性を保証することができる。
【図面の簡単な説明】
【0020】
【図1】実施形態の情報共有システムの構成を説明するためのブロック図。
【図2】実施形態の情報共有装置Uの構成を説明するためのブロック図。
【図3】実施形態の情報共有装置Uの構成を説明するためのブロック図。
【図4】実施形態の情報共有装置Uの処理を説明するためのフローチャート。
【図5】実施形態の情報共有装置Uの処理を説明するためのフローチャート。
【発明を実施するための形態】
【0021】
以下、図面を参照してこの発明の一実施形態を説明する。
【0022】
[アルゴリズム]
まず、この発明のアルゴリズムの例について説明する。
【0023】
<公開パラメータ>PIDをプロトコルIDとし、プロトコル仕様に対応した固有のIDとする。すなわち、PIDはプロトコル仕様に応じた所定のビット列である。セキュリティパラメータをkとする。kは、所定の正の整数である。pをkビット素数とし、G,GTをそれぞれ双線形写像e:G×G→GTを効率的に計算可能なg,gTを生成元とする群とする。H1:{0,1}*→G、H2:{0,1}*→Zp、H:{0,1}*→{0,1}kをハッシュ関数とする。
【0024】
<鍵生成>鍵生成アルゴリズムは、一様ランダムにマスタ秘密鍵s0∈Zpを選び、S0=1Gを設定する。1GはGの単位元である。鍵生成アルゴリズムは、マスタ公開鍵P0=g及びQ0=P0s0を計算して公開する。ここで、P0の右肩の「s0」は「s0」を意味する。このように、ある文字の上付きの文字及び数字の一部がその上付きの中で更に上付き又は下付きである場合がある点に留意する。同様に、ある文字の下付きの文字及び数字の一部がその下付きの中で更に上付き又は下付きである場合がある点に留意する。
【0025】
<鍵抽出>ID=(ID1,…,IDt-1)に対応するユーザ装置は初期化として、st-1∈Zpを一様ランダムに選び、秘密の状態情報として保持する。同様にして他のユーザのそれぞれも、秘密の状態情報としてZpの元を一様ランダムに選択して保持する。ID=(ID1,…,IDt-1)に対応するユーザは鍵抽出者として自分の長期秘密鍵(St-1,Q1,…,Qt-1)を用いて、そのユーザの下位のユーザであってID’=(ID1,…,IDt-1,IDt)に対応するユーザ向けに次のように長期秘密鍵(St,Q1,…,Qt-1,Qt)を生成する。ここで、Pt=H1(ID1,…,IDt-1,IDt)、St=St-1Ptst-1、Qt=P0stである。
【0026】
<鍵交換>以下では、ユーザUAを鍵交換セッションのイニシエータとし、ユーザUBをレスポンダとする。ユーザUAはIDA=(IDA,1,…,IDA,α)に対応する長期秘密鍵(SA,α,QA,1,…,QA,α)を持ち、ユーザUBはIDB=(IDB,1,…,IDB,β)に対応する長期秘密鍵(SB,β,QB,1,…,QB,β)を持つとする。
【0027】
1.ユーザUAはランダムに短期秘密鍵x~1,x~2UZpを選ぶ。このとき、ユーザUAは、x1=H2(SA,α,x~1)及びx2=H2(SA,α,x~2)を計算し、短期公開鍵epkIDB=(X0=P0x1,XB,2=PB,2x1,…,XB,β=PB,βx1,X0’=P0x2,XB,2’=PB,2x2,…,XB,β’=PB,βx2)を計算する。ただし、PB,i=H1(IDB,1,…,IDB,i)(1≦i≦β)である。ユーザUAは、epkIDBをユーザUBに送る。
【0028】
2.ユーザUBはランダムに短期秘密鍵y~1,y~2∈Zpを選ぶ。このとき、ユーザUBは、y1=H2(SB,β,y~1)及びy2=H2(SB,β,y~2)を計算し、短期公開鍵epkIDA=(Y0=P0y1,YA,2=PA,2y1,…,YA,α=PA,αy1,Y0’=P0y2,YA,2’=PA,2y2,…,YA,α’=PA,αy2)を計算する。ただし、PA,i=H1(IDA,1,…,IDA,i)(1≦i≦α)である。ユーザUBは、epkIDAをユーザUAに送る。
【0029】
ユーザUBは、共有秘密情報σ123をそれぞれ次のように計算する。
【0030】
σ1=e(X0,SB,β)/Πi=2βe(QB,i-1,XB,i)
σ1’=e(X0’,SB,β)/Πi=2βe(QB,i-1,XB,i’)
σ2=e(Q0,PA,1)y1
σ2’=e(Q0,PA,1)y2
σ3=(X0)y1
その後、ユーザUBは、セッション鍵K=H(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算して出力し、セッションを終了する。
【0031】
3.ユーザUAは、共有秘密情報σ1,σ1’,σ2,σ2’,σ3をそれぞれ次のように計算する。
【0032】
σ1=e(Q0,PB,1)x1
σ1’=e(Q0,PB,1)x2
σ2=e(Y0,SA,α)/Πi=2αe(QA,i-1,YA,i)
σ2’=e(Y0’,SA,α)/Πi=2αe(QA,i-1,YA,i’)
σ3=(Y0)x1
その後、ユーザUAは、セッション鍵K=H(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算して出力し、セッションを終了する。
【0033】
共有秘密情報には次の関係があるため、ユーザUAが計算した共有秘密情報σ11’,σ22’,σ3はそれぞれユーザUBが計算した共有秘密情報σ11’,σ22’,σ3と一致する。
【0034】
σ1=e(P0i=1βPB,isi-1)x1i=2βe(P0si-1,PB,ix1)=Πi=1βe(P0,PB,i)x1si-1i=2βe(P0,PB,i)x1si-1=e(Q0,PB,1)x1=e(P0,PB,1)s0x1
σ1’=e(P0i=1βPB,isi-1)x2i=2βe(P0si-1,PB,ix2)=Πi=1βe(P0,PB,i)x2si-1i=2βe(P0,PB,i)x2si-1=e(Q0,PB,1)x2=e(P0,PB,1)s0x2
σ2=e(P0i=1αPA,isi-1)y1i=2αe(P0si-1,PA,iy1)=Πi=1αe(P0,PA,i)y1si-1i=2αe(P0,PA,i)y1si-1=e(Q0,PA,1)y1=e(P0,PA,1)s0y1
σ2’=e(P0i=1αPA,isi-1)y2i=2αe(P0si-1,PA,iy2)=Πi=1αe(P0,PA,i)y2si-1i=2αe(P0,PA,i)y2si-1=e(Q0,PA,1)y2=e(P0,PA,1)s0y2
σ3=(X0)y1=(Y0)x1=P0x1y1
このようにして、同一の共有情報であるセッション鍵Kが共有される。
【0035】
[実施形態]
次に、上記[アルゴリズム]の欄で説明したアルゴリズムを実行する情報共有システムの一例を説明する。この情報共有システムは、図1に例示するように、情報共有装置U及び情報共有装置Uから構成される。情報共有装置Uが[アルゴリズム]の欄で説明したユーザUに対応し、情報共有装置Uが[アルゴリズム]の欄で説明したユーザUに対応する。情報共有装置Uは図4に例示した処理を行い、情報共有装置Uは図5に例示した処理を行う。
【0036】
情報共有の前に、[アルゴリズム]の<鍵抽出>の欄で説明した方法により、マスタ秘密鍵s0及びマスタ公開鍵P0=g及びQ0=P0s0等の情報共有のために必要なパラメータが設定され、必要に応じて記憶部10及び記憶部20に記憶されているものとする。また、情報共有の前に、情報共有装置U及び情報共有装置Uには、[アルゴリズム]の<鍵抽出>の欄で説明した方法により、ID及び秘密の状態情報及び長期秘密鍵が予め定められ、必要に応じて記憶部10及び記憶部20に記憶されているものとする。これらの記憶部10及び20に記憶されたデータは、適宜読み出されて下記に説明する計算が行われる。
【0037】
情報共有装置UのIDを、IDA=(IDA,1,…,IDA,α)とする。αは正の整数である。このように、IDAはα個のIDAの断片IDA,1,…,IDA,αから構成される。[アルゴリズム]の<鍵抽出>の欄で説明した方法により定められた情報共有装置Uの長期秘密鍵を(SA,α,QA,1,…,QA,α)とする。
【0038】
情報共有装置UのIDを、IDB=(IDB,1,…,IDB,β)とする。βは正の整数である。このように、IDBはβ個のIDBの断片IDB,1,…,IDB,βから構成される。[アルゴリズム]の<鍵抽出>の欄で説明した方法により定められた情報共有装置Uの長期秘密鍵を(SB,β,QB,1,…,QB,β)とする。
【0039】
情報共有装置U及び情報共有装置Uによる自分より下位の情報共有装置(ユーザ)に対する鍵の抽出、すなわち長期秘密鍵の生成は、それぞれ図2,3の鍵抽出部112,212により行われる。
【0040】
情報共有装置Uは、図2に示すように、記憶部10、短期秘密鍵生成部11、ハッシュ値計算部12、短期公開鍵生成部13、送信部14、受信部15、第一共有秘密情報生成部16、第二共有秘密情報生成部17、第三共有秘密情報生成部18、第四共有秘密情報生成部19、第五共有秘密情報生成部110、共有情報生成部111、鍵抽出部112を例えば含む。
【0041】
情報共有装置Uは、図3に示すように、記憶部20、短期秘密鍵生成部21、ハッシュ値計算部22、短期公開鍵生成部23、送信部24、受信部25、第一共有秘密情報生成部26、第二共有秘密情報生成部27、第三共有秘密情報生成部28、第四共有秘密情報生成部29、第五共有秘密情報生成部210、共有情報生成部211、鍵抽出部212を例えば含む。
【0042】
情報共有装置Uの短期秘密鍵生成部11(図2)は、短期秘密鍵x~1,x~2∈Zpを生成する(ステップA1)。例えば、Zpの中から一様ランダムに2つの元を選びそれぞれ短期秘密鍵y~1,y~2とする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵x~1,x~2は、ハッシュ値計算部12に送信される。
【0043】
情報共有装置Uのハッシュ値計算部12は、短期秘密鍵x~1,x~2及び長期秘密鍵の中のSA,αを用いて、ハッシュ値x1=H2(SA,α,x~1)及びx2=H2(SA,α,x~2)を計算する(ステップA2)。ハッシュ値x1は、短期公開鍵生成部13、第一共有秘密情報生成部16、第五共有秘密情報生成部110に送信される。ハッシュ値x2は、短期公開鍵生成部13、第二共有秘密情報生成部17に送信される。
【0044】
情報共有装置Uの短期公開鍵生成部13は、短期公開鍵epkIDB=(X0=P0x1,XB,2=PB,2x1,…,XB,β=PB,βx1,X0’=P0x2,XB,2’=PB,2x2,…,XB,β’=PB,βx2)を計算する(ステップA3)。ここで、PB,i=H1(IDB,1,…,IDB,i)(1≦i≦β)とする。計算された短期公開鍵epkIDBは、送信部14に送信される。
【0045】
情報共有装置Uの送信部14は、短期公開鍵epkIDBを情報共有装置Uに送信する(ステップA4)。
【0046】
情報共有装置Uの短期秘密鍵生成部21(図3)は、短期秘密鍵y~1,y~2∈Zpを生成する(ステップB1)。例えば、Zpの中から一様ランダムに2つの元を選びそれぞれ短期秘密鍵y~1,y~2とする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵y~1,y~2は、ハッシュ値計算部22に送信される。
【0047】
情報共有装置Uのハッシュ値計算部22は、短期秘密鍵y~1,y~2及び長期秘密鍵の中のSB,βを用いて、ハッシュ値y1=H2(SB,β,y~1)及びy2=H2(SB,β,y~2)を計算する(ステップB2)。ハッシュ値y1は、短期公開鍵生成部23、第三共有秘密情報生成部28、第五共有秘密情報生成部210に送信される。ハッシュ値y2は、短期公開鍵生成部23、第四共有秘密情報生成部29に送信される。
【0048】
情報共有装置Uの短期公開鍵生成部23は、短期公開鍵epkIDA=(Y0=P0y1,YA,2=PA,2y1,…,YA,α=PA,αy1,Y0’=P0y2,YA,2’=PA,2y2,…,YA,α’=PA,αy2)を計算する(ステップB3)。ここで、PA,i=H1(IDA,1,…,IDA,i)(1≦i≦α)とする。計算された短期公開鍵epkIDAは、送信部24に送信される。
【0049】
情報共有装置Uの送信部24は、短期公開鍵epkIDAを情報共有装置Uに送信する(ステップB4)。
【0050】
情報共有装置Uの受信部25は、短期公開鍵epkIDBを情報共有装置Uから受信する(ステップB5)。
【0051】
情報共有装置Uの第一共有秘密情報生成部26は、第一共有秘密情報σ1=e(X0,SB,β)/Πi=2βe(QB,i-1,XB,i)を計算する(ステップB6)。計算された第一共有秘密情報σ1は、共有情報生成部211に送信される。
【0052】
情報共有装置Uの第二共有秘密情報生成部27は、第二共有秘密情報σ1’=e(X0’,SB,β)/Πi=2βe(QB,i-1,XB,i’)を計算する(ステップB7)。計算された第二共有秘密情報σ1’は、共有情報生成部211に送信される。
【0053】
情報共有装置Uの第三共有秘密情報生成部28は、第三共有秘密情報σ2=e(Q0,PA,1)y1を計算する(ステップB8)。計算された第三共有秘密情報σ2は、共有情報生成部211に送信される。
【0054】
情報共有装置Uの第四共有秘密情報生成部29は、第四共有秘密情報σ2’=e(Q0,PA,1)y2を計算する(ステップB9)。計算された第四共有秘密情報σ2’は、共有情報生成部211に送信される。
【0055】
情報共有装置Uの第五共有秘密情報生成部210は、第五秘密情報計算部σ3=(X0)y1を計算する(ステップB10)。計算された第五秘密情報計算部σ3は、共有情報生成部211に送信される。
【0056】
情報共有装置Uの共有情報生成部211は、H(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算して、その計算結果を共有情報とする(ステップB11)。
【0057】
情報共有装置Uの受信部15(図2)は、短期公開鍵epkIDAを情報共有装置Uから受信する(ステップA5)。
【0058】
情報共有装置Uの第一共有秘密情報生成部16は、第一共有秘密情報σ1=e(Q0,PB,1)x1を計算する(ステップA6)。計算された第一共有秘密情報σ1は、共有情報生成部111に送信される。
【0059】
情報共有装置Uの第二共有秘密情報生成部17は、第二共有秘密情報σ1’=e(Q0,PB,1)x2を計算する(ステップA7)。計算された第二共有秘密情報σ1’は、共有情報生成部111に送信される。
【0060】
情報共有装置Uの第三共有秘密情報生成部18は、第三共有秘密情報σ2=e(Y0,SA,α)/Πi=2αe(QA,i-1,YA,i)(ステップA8)。計算された第三共有秘密情報σ2は、共有情報生成部111に送信される。
【0061】
情報共有装置Uの第四共有秘密情報生成部19は、第四共有秘密情報σ2’=e(Y0’,SA,α)/Πi=2αe(QA,i-1,YA,i’)を計算する(ステップA9)。計算された第四共有秘密情報σ2’は、共有情報生成部111に送信される。
【0062】
情報共有装置Uの第五共有秘密情報生成部110は、第五秘密情報計算部σ3=(Y0)x1を計算する(ステップA10)。計算された第五秘密情報計算部σ3は、共有情報生成部111に送信される。
【0063】
情報共有装置Uの共有情報生成部111は、H(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算して、その計算結果を共有情報とする(ステップA11)。この共有情報は、例えば認証鍵として用いられる。
【0064】
このようにして、情報共有が行われる。
【0065】
[変形例等]
情報共有装置Uの各部間のデータのやり取りは直接行われてもよいし、記憶部10を介して行われてもよい。同様に、情報共有装置Uの各部間のデータのやり取りは直接行われてもよいし、記憶部20を介して行われてもよい。
【0066】
上記の例では、共有情報生成部111及び共有情報生成部211は、ハッシュ関数Hを用いたが、任意の予め定められた関数Fを用いて共有情報を求めてもよい。すなわち、共有情報生成部111及び共有情報生成部211は、F(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算して、その計算結果を共有情報としてもよい。
【0067】
その他、この発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0068】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0069】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0070】
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0071】
[安全性の証明]
このように、短期秘密鍵を二重化し、共有情報を計算するための共有秘密情報であって短期秘密鍵に由来する共有秘密情報を短期秘密鍵ごとに計算する。これにより、ギャップ問題の難しさを仮定することなく探索問題の難しさをのみを仮定することで安全性を証明することができる。以下、その安全性の証明の概要を説明する。
【0072】
まず、探索問題(探索双線形Diffie-Hellman問題)及びギャップ問題(ギャップ双線形Diffie-Hellman問題)の定義を説明する。
【0073】
探索双線形Diffie-Hellman問題:κをセキュリティパラメータとし、Pをκビット素数とする。Gをgを生成元とする位数pの巡回群とし、GTをgTを生成元とする巡回群とする。e:G×G→GTを双線形写像とする。双線形Diffie-Hellman関数BDH:G3→GTをBDH(gu,gv,gw)=gTuvwとして定義する。解答者Sは一様ランダムに選ばれたU=gu,V=gv,W=gw,∈Gを入力され、BDH(U,V,W)の出力を試みる。解答者Sのアドバンテージを次のように定義する。
【0074】
ADVBDH(S)=Pr[U,V,W∈G,S(g,gT,U,V,)=BDH(U; V;W)]
ADVBDH(S)が無視できない確率であるとき、解答者Sは探索双線形Diffie-Hellman 問題を解いたという。
【0075】
ギャップ双線形Diffie-Hellman 問題:κをセキュリティパラメータとし、pをκビット素数とする。Gをgを生成元とする位数pの巡回群とし、GTをgTを生成元とする巡回群とする。e:G×G→GTを双線形写像とする。双線形Diffie-Hellman関数BDH:G3→GTをBDH(gu,gv,gw)=gTuvwとして定義し、判定双線形Diffie-Hellman述語オラクルDBDH:G3×GT→{0,1}を(gu,gv,gw,gTr)を入力としuvw=r mod pが成り立つとき1を出力し、そうでなければ0を出力する関数として定義する。解答者Sは一様ランダムに選ばれたU=gu,V=gv,W=gw∈Gと判定双線形Diffie-Hellman 述語オラクルDBDH(・,・,・,・)へのアクセスを入力され、BDH(U,V,W)の出力を試みる。解答者Sのアドバンテージを次のように定義する。
【0076】
ADVGBDH(S)=Pr[U,V,W∈G,SDBDH(・,・,・,・)(g,U,V,W)=BDH(U,V,W)]
ADVGBDH(S)が無視できない確率であるとき、解答者Sはギャップ双線形Diffie-Hellman問題を解いたという。
【0077】
ギャップ問題は上記のように判定オラクルのヒント付きの探索問題とみなせるので、ギャップ問題の方が真に易しい。
【0078】
情報共有方式の安全性証明を行う際は、「ギャップ問題、もしくは探索問題を解くことが難しいことを仮定すると、情報共有方式への攻撃者が存在しない」ことを示す必要がある。これは、対偶を取ることにより、「情報共有方式への攻撃者が存在すると仮定すると、問題を解く解答者を構成できる」ことを示すことと同値である。したがって、安全性証明では実際に攻撃者から解答者を構成する必要がある。そのためには解答者は攻撃者を実際の攻撃環境と見分けがつかないように動作させなければならない。
【0079】
既存方式では、攻撃者が出力したσ1に対してσ1=e(PB,1,Q0)xとσ2=e(PA,1,Q0)yを解答者が検証し、結果に応じて動作を変えねばならない。しかし、解答者はxとyを知ることができないので、自分で上記の検証を行うことができない。よって、判定オラクルに(PB,1,Q0,X,σ1)と(PA,1,Q0,Y,σ2)を聞き、検証式が成り立つかどうかの答えをもらうことによって証明を行う。このためギャップ問題の難しさを仮定する必要がある。上記の情報共有方式では、双線形ペアリング関数を用いた方式の場合は、w2=s-rw1に対してZ1rZ2=e(X,Y)sの真理値がZ1=e(X,Y)w1∧Z2=e(X,Y)w2の真理値と一致することを利用して検証を行う。このテクニックは落とし戸試験と呼ばれる。実施例では、任意のsとrについて、解答者は証明中でx2=s-rx1,y2=s’-r’y1と設定することでσ1rσ1’=e(PB,1,Q0)sとσ2r’σ2’=e(PA,1,Q0)s’の落とし戸試験を行うことで、σ1=e(PB,1,Q0)x11’=e(PB,1,Q0)x22=e(PA,1,Q0)y12’=e(PA,1,Q0)y2の検証をy1とx1を知ること無しに行うことができる。σ1rσ1’=e(PB,1,Q0)sとσ2r’σ2’=e(PA,1,Q0)s’は解答者の持つ情報のみで検証できるため、判定オラクルは不要であり、ギャップ問題の難しさを仮定する必要が無くなる。
【符号の説明】
【0080】
10 記憶部
11 短期秘密鍵生成部
12 ハッシュ値計算部
13 短期公開鍵生成部
14 送信部
15 受信部
16 第一共有秘密情報生成部
17 第二共有秘密情報生成部
18 第三共有秘密情報生成部
19 第四共有秘密情報生成部
110 第五共有秘密情報生成部
111 共有情報生成部
112 鍵抽出部
20 記憶部
21 短期秘密鍵生成部
22 ハッシュ値計算部
23 短期公開鍵生成部
24 送信部
25 受信部
26 第一共有秘密情報生成部
27 第二共有秘密情報生成部
28 第三共有秘密情報生成部
29 第四共有秘密情報生成部
210 第五共有秘密情報生成部
211 共有情報生成部
212 鍵抽出部

【特許請求の範囲】
【請求項1】
プロトコルIDであるPIDを所定のビット列とし、H1:{0,1}*→G、H2:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数として、G,GTをそれぞれ双線形写像e:G×G→GTを計算可能なg,gTを生成元とする群とし、Gの単位元を1Gとし、S0=1Gとし、マスタ公開鍵P0=g,Q0=P0s0∈Gとし、ID=(ID1,ID2,…,IDt-1)に対応する情報共有装置の秘密情報をst-1∈Zpとし、その情報共有装置の長期秘密鍵を(St-1,Q1,…,Qt-1)とし、その情報共有装置の下位の情報共有装置であってID’=(ID1,ID2,…,IDt-1,IDt)に対応する情報共有装置の長期秘密鍵を(St,Q1,…,Qt)とし、Pt=H1(ID1,ID2,…,IDt-1,IDt)とし、St=St-1Ptst-1,Qt=P0stとすることにより定まる、IDA=(IDA,1,…,IDA,α)に対応する情報共有装置Uの長期秘密鍵を(SA,α,QA,1,…,QA,α)、IDB=(IDB,1,…,IDB,β)に対応する情報共有装置Uの長期秘密鍵を(SB,β,QB,1,…,QB,β)として、
短期秘密鍵x~1,x~2∈Zpを生成する短期秘密鍵生成部と、x1=H2(SA,α,x~1)及びx2=H2(SA,α,x~2)を計算するハッシュ値計算部と、PB,i=H1(IDB,1,…,IDB,i)(1≦i≦β)として短期公開鍵epkIDB=(X0=P0x1,XB,2=PB,2x1,…,XB,β=PB,βx1,X0’=P0x2,XB,2’=PB,2x2,…,XB,β’=PB,βx2)を計算する短期公開鍵生成部と、上記短期公開鍵epkIDBを情報共有装置Uに送信する送信部と、短期公開鍵epkIDAを上記情報共有装置Uから受信する受信部と、第一共有秘密情報σ1=e(Q0,PB,1)x1を計算する第一共有秘密情報計算部と、第二共有秘密情報σ1’=e(Q0,PB,1)x2を計算する第二共有秘密情報計算部と、第三共有秘密情報σ2=e(Y0,SA,α)/Πi=2αe(QA,i-1,YA,i)を計算する第三共有秘密情報計算部と、第四共有秘密情報σ2’=e(Y0’,SA,α)/Πi=2αe(QA,i-1,YA,i’)を計算する第四共有秘密情報計算部と、第五秘密情報計算部σ3=(Y0)x1を計算する第五秘密情報計算部と、F(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算する共有情報生成部と、を含む情報共有装置Uと、
短期秘密鍵y~1,y~2∈Zpを生成する短期秘密鍵生成部と、y1=H2(SB,β,y~1)及びy2=H2(SB,β,y~2)を計算するハッシュ値計算部と、PA,i=H1(IDA,1,…,IDA,i)(1≦i≦α)として短期公開鍵epkIDA=(Y0=P0y1,YA,2=PA,2y1,…,YA,α=PA,αy1,Y0’=P0y2,YA,2’=PA,2y2,…,YA,α’=PA,αy2)を計算する短期公開鍵生成部と、上記短期公開鍵epkIDAを上記情報共有装置Uに送信する送信部と、短期公開鍵epkIDBを上記情報共有装置Uから受信する受信部と、第一共有秘密情報σ1=e(X0,SB,β)/Πi=2βe(QB,i-1,XB,i)を計算する第一共有秘密情報計算部と、第二共有秘密情報σ1’=e(X0’,SB,β)/Πi=2βe(QB,i-1,XB,i’)を計算する第二共有秘密情報計算部と、第三共有秘密情報σ2=e(Q0,PA,1)y1を計算する第三共有秘密情報計算部と、第四共有秘密情報σ2’=e(Q0,PA,1)y2を計算する第四共有秘密情報計算部と、第五秘密情報計算部σ3=(X0)y1を計算する第五秘密情報計算部と、F(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算する共有情報生成部と、を含む情報共有装置Uと、
を含む情報共有システム。
【請求項2】
請求項1の情報共有システムにおいて、
所定の正の整数をセキュリティパラメータkとして、
上記関数Fは、ハッシュ関数H:{0,1}*→{0,1}である、
情報共有システム。
【請求項3】
プロトコルIDであるPIDを所定のビット列とし、H1:{0,1}*→G、H2:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数として、G,GTをそれぞれ双線形写像e:G×G→GTを計算可能なg,gTを生成元とする群とし、Gの単位元を1Gとし、S0=1Gとし、マスタ公開鍵P0=g,Q0=P0s0∈Gとし、ID=(ID1,ID2,…,IDt-1)に対応する情報共有装置の秘密情報をst-1∈Zpとし、その情報共有装置の長期秘密鍵を(St-1,Q1,…,Qt-1)とし、その情報共有装置の下位の情報共有装置であってID’=(ID1,ID2,…,IDt-1,IDt)に対応する情報共有装置の長期秘密鍵を(St,Q1,…,Qt)とし、Pt=H1(ID1,ID2,…,IDt-1,IDt)とし、St=St-1Ptst-1,Qt=P0stとすることにより定まる、IDA=(IDA,1,…,IDA,α)に対応する情報共有装置Uの長期秘密鍵を(SA,α,QA,1,…,QA,α)、IDB=(IDB,1,…,IDB,β)に対応する情報共有装置Uの長期秘密鍵を(SB,β,QB,1,…,QB,β)として、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵x~1,x~2∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uのハッシュ値計算部が、x1=H2(SA,α,x~1)及びx2=H2(SA,α,x~2)を計算するハッシュ値計算ステップと、
情報共有装置Uの短期公開鍵生成部が、PB,i=H1(IDB,1,…,IDB,i)(1≦i≦β)として短期公開鍵epkIDB=(X0=P0x1,XB,2=PB,2x1,…,XB,β=PB,βx1,X0’=P0x2,XB,2’=PB,2x2,…,XB,β’=PB,βx2)を計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵epkIDBを情報共有装置Uに送信する送信ステップと、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵y~1,y~2∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uのハッシュ値計算部が、y1=H2(SB,β,y~1)及びy2=H2(SB,β,y~2)を計算するハッシュ値計算ステップと、
情報共有装置Uの短期公開鍵生成部が、PA,i=H1(IDA,1,…,IDA,i)(1≦i≦α)として短期公開鍵epkIDA=(Y0=P0y1,YA,2=PA,2y1,…,YA,α=PA,αy1,Y0’=P0y2,YA,2’=PA,2y2,…,YA,α’=PA,αy2)を計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵epkIDAを上記情報共有装置Uに送信する送信ステップと、
情報共有装置Uの受信部が、短期公開鍵epkIDBを上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの第一共有秘密情報計算部が、第一共有秘密情報σ1=e(X0,SB,β)/Πi=2βe(QB,i-1,XB,i)を計算する第一共有秘密情報計算ステップと、
情報共有装置Uの第二共有秘密情報計算部が、第二共有秘密情報σ1’=e(X0’,SB,β)/Πi=2βe(QB,i-1,XB,i’)を計算する第二共有秘密情報計算ステップと、
情報共有装置Uの第三共有秘密情報計算部が、第三共有秘密情報σ2=e(Q0,PA,1)y1を計算する第三共有秘密情報計算ステップと、
情報共有装置Uの第四共有秘密情報計算部が、第四共有秘密情報σ2’=e(Q0,PA,1)y2を計算する第四共有秘密情報計算ステップと、
情報共有装置Uの第五共有秘密情報計算部が、第五秘密情報計算部σ3=(X0)y1を計算する第五秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算する共有情報生成ステップと、
情報共有装置Uの受信部が、短期公開鍵epkIDAを上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの第一共有秘密情報計算部が、第一共有秘密情報σ1=e(Q0,PB,1)x1を計算する第一共有秘密情報計算ステップと、
情報共有装置Uの第二共有秘密情報計算部が、第二共有秘密情報σ1’=e(Q0,PB,1)x2を計算する第二共有秘密情報計算ステップと、
情報共有装置Uの第三共有秘密情報計算部が、第三共有秘密情報σ2=e(Y0,SA,α)/Πi=2αe(QA,i-1,YA,i)を計算する第三共有秘密情報計算ステップと、
情報共有装置Uの第四共有秘密情報計算部が、第四共有秘密情報σ2’=e(Y0’,SA,α)/Πi=2αe(QA,i-1,YA,i’)を計算する第四共有秘密情報計算ステップと、
情報共有装置Uの第五共有秘密情報計算部が、第五秘密情報計算部σ3=(Y0)x1を計算する第五秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算する共有情報生成ステップと、
を含む情報共有方法。
【請求項4】
プロトコルIDであるPIDを所定のビット列とし、H1:{0,1}*→G、H2:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数として、G,GTをそれぞれ双線形写像e:G×G→GTを計算可能なg,gTを生成元とする群とし、Gの単位元を1Gとし、S0=1Gとし、マスタ公開鍵P0=g,Q0=P0s0∈Gとし、ID=(ID1,ID2,…,IDt-1)に対応する情報共有装置の秘密情報をst-1∈Zpとし、その情報共有装置の長期秘密鍵を(St-1,Q1,…,Qt-1)とし、その情報共有装置の下位の情報共有装置であってID’=(ID1,ID2,…,IDt-1,IDt)に対応する情報共有装置の長期秘密鍵を(St,Q1,…,Qt)とし、Pt=H1(ID1,ID2,…,IDt-1,IDt)とし、St=St-1Ptst-1,Qt=P0stとすることにより定まる、IDA=(IDA,1,…,IDA,α)に対応する情報共有装置Uの長期秘密鍵を(SA,α,QA,1,…,QA,α)、IDB=(IDB,1,…,IDB,β)に対応する情報共有装置Uの長期秘密鍵を(SB,β,QB,1,…,QB,β)として、
短期秘密鍵x~1,x~2∈Zpを生成する短期秘密鍵生成部と、
x1=H2(SA,α,x~1)及びx2=H2(SA,α,x~2)を計算するハッシュ値計算部と、PB,i=H1(IDB,1,…,IDB,i)(1≦i≦β)として短期公開鍵epkIDB=(X0=P0x1,XB,2=PB,2x1,…,XB,β=PB,βx1,X0’=P0x2,XB,2’=PB,2x2,…,XB,β’=PB,βx2)を計算する短期公開鍵生成部と、上記短期公開鍵epkIDBを情報共有装置Uに送信する送信部と、短期公開鍵epkIDA=(Y0=P0y1,YA,2=PA,2y1,…,YA,α=PA,αy1,Y0’=P0y2,YA,2’=PA,2y2,…,YA,α’=PA,αy2)(PA,i=H1(IDA,1,…,IDA,i)(1≦i≦α)を上記情報共有装置Uから受信する受信部と、第一共有秘密情報σ1=e(Q0,PB,1)x1を計算する第一共有秘密情報計算部と、第二共有秘密情報σ1’=e(Q0,PB,1)x2を計算する第二共有秘密情報計算部と、第三共有秘密情報σ2=e(Y0,SA,α)/Πi=2αe(QA,i-1,YA,i)を計算する第三共有秘密情報計算部と、第四共有秘密情報σ2’=e(Y0’,SA,α)/Πi=2αe(QA,i-1,YA,i’)を計算する第四共有秘密情報計算部と、第五秘密情報計算部σ3=(Y0)x1を計算する第五秘密情報計算部と、F(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算する共有情報生成部と、を含む情報共有装置Uである情報共有装置。
【請求項5】
プロトコルIDであるPIDを所定のビット列とし、H1:{0,1}*→G、H2:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数として、G,GTをそれぞれ双線形写像e:G×G→GTを計算可能なg,gTを生成元とする群とし、Gの単位元を1Gとし、S0=1Gとし、マスタ公開鍵P0=g,Q0=P0s0∈Gとし、ID=(ID1,ID2,…,IDt-1)に対応する情報共有装置の秘密情報をst-1∈Zpとし、その情報共有装置の長期秘密鍵を(St-1,Q1,…,Qt-1)とし、その情報共有装置の下位の情報共有装置であってID’=(ID1,ID2,…,IDt-1,IDt)に対応する情報共有装置の長期秘密鍵を(St,Q1,…,Qt)とし、Pt=H1(ID1,ID2,…,IDt-1,IDt)とし、St=St-1Ptst-1,Qt=P0stとすることにより定まる、IDA=(IDA,1,…,IDA,α)に対応する情報共有装置Uの長期秘密鍵を(SA,α,QA,1,…,QA,α)、IDB=(IDB,1,…,IDB,β)に対応する情報共有装置Uの長期秘密鍵を(SB,β,QB,1,…,QB,β)として、
短期秘密鍵y~1,y~2∈Zpを生成する短期秘密鍵生成部と、y1=H2(SB,β,y~1)及びy2=H2(SB,β,y~2)を計算するハッシュ値計算部と、PA,i=H1(IDA,1,…,IDA,i)(1≦i≦α)として短期公開鍵epkIDA=(Y0=P0y1,YA,2=PA,2y1,…,YA,α=PA,αy1,Y0’=P0y2,YA,2’=PA,2y2,…,YA,α’=PA,αy2)を計算する短期公開鍵生成部と、上記短期公開鍵epkIDAを上記情報共有装置Uに送信する送信部と、短期公開鍵epkIDB=(X0=P0x1,XB,2=PB,2x1,…,XB,β=PB,βx1,X0’=P0x2,XB,2’=PB,2x2,…,XB,β’=PB,βx2)(PB,i=H1(IDB,1,…,IDB,i)(1≦i≦β))を上記情報共有装置Uから受信する受信部と、第一共有秘密情報σ1=e(X0,SB,β)/Πi=2βe(QB,i-1,XB,i)を計算する第一共有秘密情報計算部と、第二共有秘密情報σ1’=e(X0’,SB,β)/Πi=2βe(QB,i-1,XB,i’)を計算する第二共有秘密情報計算部と、第三共有秘密情報σ2=e(Q0,PA,1)y1を計算する第三共有秘密情報計算部と、第四共有秘密情報σ2’=e(Q0,PA,1)y2を計算する第四共有秘密情報計算部と、第五秘密情報計算部σ3=(X0)y1を計算する第五秘密情報計算部と、F(σ11’,σ22’,σ3,PID,IDA,IDB,epkIDB,epkIDA)を計算する共有情報生成部と、を含む情報共有装置Uである情報共有装置。
【請求項6】
請求項4又は5の情報共有装置の各部としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate