情報共有システム、方法、情報共有装置及びそのプログラム
【課題】短期秘密鍵の漏洩を許すいわゆるeCK−modelでも安全性を保つことができる技術を提供する。
【解決手段】短期秘密鍵r’1A及び長期秘密鍵sk1Aを用いて生成した合成秘密鍵r1A=G(r’1A,sk1A)と、短期秘密鍵r’1B及び長期秘密鍵sk1Bを用いて生成した合成秘密鍵r1B=G(r’1B,sk1B)と、を用いて情報の共有を行う。これにより、短期秘密鍵の漏洩を許すいわゆるeCK−modelでも安全性を保つことができる。
【解決手段】短期秘密鍵r’1A及び長期秘密鍵sk1Aを用いて生成した合成秘密鍵r1A=G(r’1A,sk1A)と、短期秘密鍵r’1B及び長期秘密鍵sk1Bを用いて生成した合成秘密鍵r1B=G(r’1B,sk1B)と、を用いて情報の共有を行う。これにより、短期秘密鍵の漏洩を許すいわゆるeCK−modelでも安全性を保つことができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報セキュリティ技術の応用技術、特に2つの装置でセッション鍵等の情報を共有する技術に関する。
【背景技術】
【0002】
情報共有方式として、例えば非特許文献1に記載されている、Key Encapsulation Mechanism(KEM)を用いたBCGP方式が知られている。
【0003】
このBCGP方式については、いわゆるCK−modelでの安全性が示されている。CK−modelについては、非特許文献2を参照のこと。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Colin Boyd, Yvonne Cliff, Juan Manuel Gonz´alez Nieto, Kenneth G.Paterson, “Efficient One-Round Key Exchange in the Standard Model.”, ACISP 2008 p.69-83
【非特許文献2】Ran Canetti and Hugo Krawczyk, “Analysis of key-exchange protocols and their use for building secure channels.”, EUROCRYPT 2001, p.453-474, 2001.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に記載されているBCGP方式については、短期秘密鍵の漏洩を許すいわゆるeCK−modelで攻撃することができる。このため、このBCGP方式は、乱数生成器の脆弱性などにより短期秘密鍵の漏洩が起こる場合に必ずしも安全ではない。
【0006】
この発明の課題は、短期秘密鍵の漏洩を許すいわゆるeCK−modelでも安全性を保つことができる情報提供システム、方法、情報共有装置及びそのプログラムを提供することである。
【0007】
なお、eCK−modelについては、参考文献1を参照のこと。
【0008】
[参考文献1]Brian~A. LaMacchia, Kristin Lauter, and Anton Mityagin, “Stronger security of authenticated key exchange.”, ProvSec 2007, p.1-16. 2007.
【課題を解決するための手段】
【0009】
この発明の1つの態様である情報共有システムは、情報共有装置A及び情報共有装置Bで情報を共有する。セキュリティパラメータkは正の整数である。情報共有装置Aは、第一短期秘密鍵r’1A∈{0,1}k及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、長期公開鍵pk1B及び合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する鍵生成部と、第一交換情報C1A及び公開鍵pk2Aを情報共有装置Bに送信する送信部と、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Bから受信する受信部と、長期公開鍵pk1A、長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、公開鍵pk2A、長期秘密鍵sk2A及び第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、長期公開鍵pk1A、長期公開鍵pk1B、第一交換情報C1A、公開鍵pk2A、第一交換情報C1B、第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む。情報共有装置Bは、第一交換情報C1A及び公開鍵pk2Aを情報共有装置Aから受信する受信部と、第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、長期公開鍵pk1A及び合成秘密鍵r1Bを用いて、暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、公開鍵pk2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Aに送信する送信部と、長期公開鍵pk1B、長期秘密鍵sk1B及び第一交換情報C1Aを用いて、復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する復号部と、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、長期公開鍵pk1A、長期公開鍵pk1B、第一交換情報C1A、公開鍵pk2A、第一交換情報C1B、第二交換情報C2Bを情報生成関数に入力したときの出力値を計算する情報生成部と、を備える。
【0010】
この発明の他の1つの態様である情報共有システムは、情報共有装置A及び情報共有装置Bで情報を共有する。セキュリティパラメータkは正の整数である。情報共有装置Aは、第一短期秘密鍵r’1A∈{0,1}k及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する鍵生成部と、情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択するID選択部と、第一交換情報C1A、公開鍵mpk2A及びID2Aを情報共有装置Bに送信する送信部と、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Bから受信する受信部と、マスタ公開鍵mpk1、情報共有装置Aの第一の識別子であるID1A、第一長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、公開鍵pk2A、ID2A、第二長期秘密鍵sk2A及び第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、ID1A、ID1B、第一交換情報C1A、公開鍵mpk2A、ID2A、第一交換情報C1B及び第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む。情報共有装置Bは、第一交換情報C1A、公開鍵mpk2A及びID2Aを情報共有装置Aからに受信する受信部と、第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、マスタ公開鍵mpk1、ID1A及び合成秘密鍵r1Bを用いて、暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、公開鍵mpk2A、ID2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Aに送信する送信部と、マスタ公開鍵mpk1、ID1B、第一長期秘密鍵sk1B及び第一交換情報C1Aを用いて、復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する復号部と、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、ID1A、ID1B、第一交換情報C1A、公開鍵mpk2A、ID2A、第一交換情報C1B及び第二交換情報C2Bを情報生成関数に入力したときの出力値を計算する情報生成部と、を含む。
【発明の効果】
【0011】
短期秘密鍵及び長期秘密鍵を用いて生成した合成秘密鍵を用いて情報の共有を行うことにより、短期秘密鍵の漏洩を許すいわゆるeCK−modelでも安全性を保つことができる。
【図面の簡単な説明】
【0012】
【図1】情報共有システムの構成の例を説明するためのブロック図。
【図2】第一実施形態及び第二実施形態の情報共有装置Aの例を説明するためのブロック図。
【図3】第一実施形態及び第二実施形態の情報共有装置Bの例を説明するためのブロック図。
【図4】第三実施形態及び第四実施形態の情報共有装置Aの例を説明するためのブロック図。
【図5】第三実施形態及び第四実施形態の情報共有装置Bの例を説明するためのブロック図。
【図6】第一実施形態及び第二実施形態の情報共有方法の例を説明するためのフローチャート。
【図7】第一実施形態及び第三実施形態の情報共有方法の例を説明するためのフローチャート。
【発明を実施するための形態】
【0013】
以下、図面を参照してこの発明の実施形態を説明する。
【0014】
[第一実施形態]
第一実施形態のKEMを用いた情報共有システム、方法を以下に示す。
【0015】
<アルゴリズム>
まず、次のようにKEMの各アルゴリズムが定まっているとする。
KeyGen(r)→(sk,pk)は、KEMの鍵生成アルゴリズム。
EnCap(pk,r’)→(C,K)は、KEMの暗号化アルゴリズム。
DeCap(pk,sk,C)→Kは、KEMの復号化アルゴリズム。
【0016】
<公開パラメータ>
H:{0,1}*→{0,1}kと、G:{0,1}*→{0,1}kとをハッシュ関数とする。{0,1}xは、それぞれ0又は1であるx個のビットから構成されるビット列を意味する。*は任意の数を意味する。すなわち、{0,1}*は、任意の長さのビット列を意味する。kは、所定の正の整数であり、セキュリティパラメータである。
【0017】
ここで、ハッシュ関数の引数が2以上ありこれらの引数をカンマ「,」で区切った場合には、これらの引数を所定の順序でビット結合したビット列をそのハッシュ関数に入力することを意味する。すなわち、例えば、情報共有装置Aにおいて計算されるG(r’1A,sk1A)=G(r’1A||sk1A)である。また、ビット結合する引数の順序は、各ハッシュ関数において同じであるとする。すなわち、情報共有装置A及び情報共有装置Bにおいて、ビット結合をする所定の順序は同じである。つまり、この場合、情報共有装置Bにおいて計算されるG(r’1B,sk1B)は、G(r’1B||sk1B)となる。これは、ハッシュ関数Hについても同様である。
【0018】
各情報共有装置i(i=A,B)は、ri∈{0,1}kをランダムに選択し、鍵生成KeyGen(ri)→(sk1i,pk1i)を行い、sk1iを長期秘密鍵として秘密に保持し、pk1iを長期公開鍵として公開する。
【0019】
<情報交換>
長期公開鍵pk1A及び長期秘密鍵sk1Aを持つ情報共有装置Aと、長期公開鍵pk1B及び長期秘密鍵sk1Bを持つ情報共有装置Bとは、以下のようにして交換情報を交換して、情報Kを共有する。
【0020】
1.情報共有装置Aの処理
情報共有装置Aは、第一短期秘密鍵r’1A∈{0,1}k及び第二短期秘密鍵r2A∈{0,1}kをランダムに選び、G(r’1A,sk1A)=r1A∈{0,1}kを計算する。
情報共有装置Aは、EnCap(pk1B,r1A)→(C1A,K1A)を計算し、KeyGen(r2A)→(sk2A,pk2A)を計算する。
情報共有装置Aは、(C1A,pk2A)を情報共有装置Bに送信する。
【0021】
2.情報共有装置Bの処理
情報共有装置Bは、(C1A,pk2A)を受信する。
【0022】
情報共有装置Bは、短期秘密鍵r’1B,r2B∈{0,1}kをランダムに選び、G(r’1B,sk1B)=r1B∈{0,1}kを計算する。
情報共有装置Bは、EnCap(pk1A,r1B)→(C1B,K1B)を計算し、EnCap(pk2A,r2B)→(C2B,K2B)を計算する。
情報共有装置Bは、(C1B,C2B)を情報共有装置Aに送信する。
情報共有装置Bは、DeCap(pk1B,sk1B,C1A)→K1Aを計算する。
情報共有装置Bは、共有情報K=H(K1A,K1B,K2B,sid),sid=(pk1A,pk1B,C1A,pk2A,C1B,C2B)を計算する。共有情報Kは、例えば共有鍵として用いられる。
【0023】
3.情報共有装置Aの処理
情報共有装置Aは、(C1B,C2B)を受信する。
情報共有装置Aは、DeCap(pk1A,sk1A,C1B)→K1Bを計算し、DeCap(pk2A,sk2A,C2B)→K2Bを計算する。
情報共有装置Aは、共有情報K=H(K1A,K1B,K2B,sid),sid=(pk1A,pk1B,C1A,pk2A,C1B,C2B)を計算する。共有情報Kは、例えば共有鍵として用いられる。
【0024】
<装置>
公開パラメータ及び情報交換の欄で示した処理は、例えば図1から図3に示された情報共有装置A及び情報共有装置Bにより実行される。
【0025】
第一実施形態の情報共有装置は、図1に示すように、情報共有装置A及び情報共有装置Bを例えば備える。
【0026】
情報共有装置Aは、図2に示すように、記憶部A0、乱数生成部A1、長期鍵生成部A2、短期秘密鍵生成部A3、合成秘密鍵生成部A4、暗号化部A5、鍵生成部A6、送信部A7、受信部A8、第一復号部A9、第二復号部A10、情報生成部A11を例えば備える。
【0027】
情報共有装置Bは、図3に示すように、記憶部B0、乱数生成部B1、長期鍵生成部B2、短期秘密鍵生成部B3、合成秘密鍵生成部B4、第一暗号化部B5、第二暗号化部B6、送信部B7、受信部B8、復号部B9、情報生成部B10を例えば備える。
【0028】
情報共有方法の処理の流れの例を図6に示す。
【0029】
情報共有装置Aの乱数生成部A1は、乱数rA∈{0,1}kを生成する(ステップSA1)。生成された乱数rAは、長期鍵生成部A2に送信される。
【0030】
長期鍵生成部A2は、鍵生成KeyGen(rA)→(sk1A,pk1A)を行い(ステップSA2)、sk1Aを長期秘密鍵として秘密に保持し、pk1Aを長期公開鍵として公開する。長期秘密鍵sk1Aは、合成秘密鍵生成部A4及び第一復号部A9に送信される。長期公開鍵pk1Aは、第一復号部A9及び情報生成部A11に送信される。
【0031】
短期秘密鍵生成部A3は、第一短期秘密鍵r’1A∈{0,1}k及び第二短期秘密鍵r2A∈{0,1}kをランダムに選択する(ステップSA3)。選択された第一短期秘密鍵r’1Aは、合成秘密鍵生成部A4に送信される。選択された第二短期秘密鍵r2Aは、鍵生成部A6に送信される。
【0032】
合成秘密鍵生成部A4は、第一短期秘密鍵r’1A及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする(ステップSA4)。ここで、所定の合成鍵生成関数は、例えばハッシュ関数G(r’1A,sk1A)である。合成秘密鍵r1Aは、暗号化部A5に送信される。
【0033】
暗号化部A5は、長期公開鍵pk1B及び合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する(ステップSA5)。生成された第一交換情報C1Aは、送信部A7及び情報生成部A11に送信される。生成された第一共有情報K1Aは、情報生成部A11に送信される。
【0034】
鍵生成部A6は、第二短期秘密鍵r2Aを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する(ステップSA6)。生成された秘密鍵sk2Aは、第二復号部A10に送信される。生成された公開鍵pk2Aは、送信部A7、第二復号部A10及び情報生成部A11に送信される。
【0035】
送信部A7は、第一交換情報C1A及び公開鍵pk2Aを情報共有装置Bに送信する(ステップSA7)。
【0036】
受信部A8は、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Bから受信する(ステップSA8)。第一交換情報C1Bは、第一復号部A9及び情報生成部A11に送信される。第二交換情報C2Bは、第二復号部A10及び情報生成部A11に送信される。
【0037】
第一復号部A9は、長期公開鍵pk1A、長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する(ステップSA9)。生成された第一共有情報K1Bは、情報生成部A11に送信される。
【0038】
第二復号部A10は、公開鍵pk2A、長期秘密鍵sk2A及び第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する(ステップSA10)。生成された第二共有情報K2Bは、情報生成部A11に送信される。
【0039】
情報生成部A11は、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、長期公開鍵pk1A、長期公開鍵pk1B、第一交換情報C1A、公開鍵pk2A、第一交換情報C1B、第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する(ステップSA11)。所定の情報生成関数は、例えばハッシュ関数Hである。この場合、情報生成部A11が計算する出力値は、H(K1A,K1B,K2B,pk1A,pk1B,C1A,pk2A,C1B,C2B)となる。この出力値が、共有の対象となる共有情報Kとなる。
【0040】
情報共有装置Bの受信部B8(図3)は、第一交換情報C1A及び公開鍵pk2Aを受信する(ステップSB8)。第一交換情報C1Aは、復号部B9に送信される。公開鍵pk2Aは、第二暗号化部B6に送信される。
【0041】
乱数生成部B1は、乱数rB∈{0,1}kを生成する(ステップSB1)。生成された乱数rBは、長期鍵生成部B2に送信される。
【0042】
長期鍵生成部B2は、鍵生成KeyGen(rB)→(sk1B,pk1B)を行い(ステップSB2)、sk1Bを長期秘密鍵として秘密に保持し、pk1Bを長期公開鍵として公開する。長期秘密鍵sk1Bは、合成秘密鍵生成部B4及び復号部B9に送信される。長期公開鍵pk1Bは、復号部B9及び情報生成部B10に送信される。
【0043】
短期秘密鍵生成部B3は、第一短期秘密鍵r’1B∈{0,1}k及び第二短期秘密鍵r2B∈{0,1}kをランダムに選択する(ステップSB3)。選択された第一短期秘密鍵r’1Bは、合成秘密鍵生成部B4に送信される。選択された第二短期秘密鍵r2Bは、第二暗号化部B6に送信される。
【0044】
合成秘密鍵生成部B4は、第一短期秘密鍵r’1B及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする(ステップSB4)。ここで、所定の合成鍵生成関数は、合成秘密鍵生成部A4が用いた合成鍵生成関数と同じ関数であり、例えばハッシュ関数G(r’1B,sk1B)である。合成秘密鍵r1Bは、第一暗号化部B5に送信される。
【0045】
第一暗号化部B5は、長期公開鍵pk1A及び合成秘密鍵r1Bを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する(ステップSB5)。生成された第一交換情報C1Bは、送信部B7及び情報生成部B10に送信される。生成された第一共有情報K1Bは、情報生成部B10に送信される。
【0046】
第二暗号化部B6は、公開鍵pk2A及び第二短期秘密鍵r2Bを用いて、所定の暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する(ステップSB6)。生成された第二交換情報C2Bは、送信部B7及び情報生成部B10に送信される。生成された第二共有情報K2Bは、情報生成部B10に送信される。
【0047】
送信部B7は、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Aに送信する(ステップSB7)。
【0048】
復号部B9は、長期公開鍵pk1B、長期秘密鍵sk1B及び第一交換情報C1Aを用いて、復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する。生成された第一共有情報K1Aは、情報生成部B10に送信される。
【0049】
情報生成部B10は、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、長期公開鍵pk1A、長期公開鍵pk1B、第一交換情報C1A、公開鍵pk2A、第一交換情報C1B、第二交換情報C2Bを情報生成関数に入力したときの出力値を計算する。この情報生成関数は、情報共有装置Aの情報生成部A11が用いる情報生成関数と同じ関数であり、例えばハッシュ関数Hである。この場合、情報生成部B10が計算する出力値は、H(K1A,K1B,K2B,pk1A,pk1B,C1A,pk2A,C1B,C2B)となる。この出力値が、共有の対象となる共有情報Kとなる。
【0050】
[第二実施形態]
第二実施形態は、以下の部分において第一実施形態と異なる。以下では、第一実施形態と異なる部分を中心に説明をし、第一実施形態と同様の部分については重複説明を省略する。
【0051】
ステップSA1において、乱数生成部A1は、長期秘密鍵tA∈{0,1}kを更に生成する。生成された長期秘密鍵tAは、合成秘密鍵生成部A4に送信される。
【0052】
また、ステップSA3において、短期秘密鍵生成部A3は、短期秘密鍵s’1A∈{0,1}kを更に生成する。生成された短期秘密鍵s’1A∈は、合成秘密鍵生成部A4に送信される。
【0053】
また、ステップSA4において合成秘密鍵生成部A4は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)を計算して、合成秘密鍵r1A∈{0,1}kとする。ここで、PRF1及びPRF2はk個のビットから構成されるビット列{0,1}kを出力する擬似ランダム関数、xorはビットごとの排他的論理和である。すなわち、第二実施形態においては、合成秘密鍵生成部A4が用いる合成鍵生成関数は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)となる。擬似ランダム関数は、例えば第一引数を鍵として用いる。
【0054】
また、ステップSB1において、乱数生成部B1は、長期秘密鍵tB∈{0,1}kを更に生成する。生成された長期秘密鍵tBは、合成秘密鍵生成部B4に送信される。
【0055】
また、ステップSB3において、短期秘密鍵生成部B3は、短期秘密鍵s’1B∈{0,1}kを更に生成する。生成された短期秘密鍵s’1B∈は、合成秘密鍵生成部B4に送信される。
【0056】
また、ステップSB4において合成秘密鍵生成部B4は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)を計算して、合成秘密鍵r1B∈{0,1}kとする。すなわち、第二実施形態においては、合成秘密鍵生成部B4が用いる合成鍵生成関数は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)となる。
【0057】
さらに、ステップSA11及びステップSB10において、情報生成部A11及び情報生成部B10が用いる情報生成関数は、PRF3(L1A,sid)xorPRF3(L1B,sid)xorPRF3(L2B,sid)である。ここで、Extはランダムネスエクストラクタ、PRF3は擬似ランダム関数、sid={pk1A,pk1B,C1A,pk2A,C1B,C2B}、L1A=Ext(K1A)、L1B=Ext(K1B)、L2B=Ext(K2B)である。ランダムネスエクストラクタExtは、任意の分布の入力に対して一様の分布を持つ出力値を出力する関数である。
【0058】
このようにすることにより、第二実施形態では、ランダムオラクルモデルを仮定せずに安全性を示すことができる。
【0059】
[第三実施形態]
第三実施形態は、ID−base KEMを用いた情報共有を行うものである。
【0060】
第三実施形態のID−base KEMを用いた情報共有システム、方法を以下に示す。
【0061】
なお、第一実施形態のpk1Aが、第三実施形態のmpk1及びID1Aに対応する。また、第一実施形態のpk2Aが、第三実施形態のmpk2A及びID2Aに対応する。さらに、第一実施形態のpk1Bが、第三実施形態のmpk1及びID1Bに対応する。これ以外の技術的特徴は、第一実施形態と第三実施形態において同様である。
【0062】
<アルゴリズム>
まず、次のようにKEMの各アルゴリズムが定まっているとする。
KeyGen(r)→(msk,mpk)は、ID−base KEMのマスタ鍵生成アルゴリズム。
KeyDer(msk,mpk,ID)→skは、ID−base KEMの鍵導出アルゴリズム。
EnCap(mpk,ID,r’)→(C,K)は、ID−base KEMの暗号化アルゴリズム。
DeCap(mpk,ID,sk,C)→Kは、ID−base KEMの復号化アルゴリズム。
【0063】
<公開パラメータ>
H:{0,1}*→{0,1}kと、G:{0,1}*→{0,1}kとをハッシュ関数とする。{0,1}xは、それぞれ0又は1であるx個のビットから構成されるビット列を意味する。*は任意の数を意味する。すなわち、{0,1}*は、任意の長さのビット列を意味する。kは、所定の正の整数であり、セキュリティパラメータである。
【0064】
ここで、ハッシュ関数の引数が2以上ありこれらの引数をカンマ「,」で区切った場合には、これらの引数を所定の順序でビット結合したビット列をそのハッシュ関数に入力することを意味する。すなわち、例えば、情報共有装置Aにおいて計算されるG(r’1A,sk1A)=G(r’1A||sk1A)である。また、ビット結合する引数の順序は、各ハッシュ関数において同じであるとする。すなわち、情報共有装置A及び情報共有装置Bにおいて、ビット結合をする所定の順序は同じである。つまり、この場合、情報共有装置Bにおいて計算されるG(r’1B,sk1B)は、G(r’1B||sk1B)となる。これは、ハッシュ関数Hについても同様である。
【0065】
例えば図1に破線で示したマスタ鍵生成装置3が、r∈{0,1}kをランダムに選択し、マスタ鍵生成KeyGen(r)→(msk1,mpk1)を行い、msk1をマスタ秘密鍵として秘密に保持し、mpk1をマスタ公開鍵として公開する。
【0066】
<鍵導出>
例えば図1に破線で示した鍵導出装置4が、i=A,Bとして、情報共有装置iの識別子ID1i∈{0,1}*に対して、KeyDer(msk1,mpk1,ID1i)→sk1iを計算し、長期秘密鍵sk1iを情報共有装置iに秘密裡に送付する。鍵導出装置4は、マスタ鍵生成装置3であってもよい。
【0067】
<情報交換>
識別子ID1A及び長期秘密鍵sk1Aを持つ情報共有装置Aと、識別子ID1B及び長期秘密鍵sk1Bを持つ情報共有装置Bとは、以下のようにして交換情報を交換して、情報Kを共有する。
【0068】
1.情報共有装置Aの処理
情報共有装置Aは、第一短期秘密鍵r’1A∈{0,1}k及び第二短期秘密鍵r2A∈{0,1}kをランダムに選び、G(r’1A,sk1A)=r1A∈{0,1}kを計算する。
情報共有装置Aは、EnCap(mpk1,ID1B,r1A)→(C1A,K1A)を計算し、KeyGen(r2A)→(msk2A,mpk2A)を計算する。
情報共有装置Aは、識別子ID2A∈{0,1}*をランダムに選ぶ。
情報共有装置Aは、KeyDer(msk2A,mpk2A,ID2A)→sk2Aを計算する。
情報共有装置Aは、(C1A,mpk2A,ID2A)を情報共有装置Bに送信する。
【0069】
2.情報共有装置Bの処理
情報共有装置Bは、(C1A,mpk2A,ID2A)を受信する。
情報共有装置Bは、短期秘密鍵r’1B,r2B∈{0,1}kをランダムに選び、G(r’1B,sk1B)=r1B∈{0,1}kを計算する。
情報共有装置Bは、EnCap(mpk1A,ID1A,r1B)→(C1B,K1B)を計算し、EnCap(mpk2A,ID2A,r2B)→(C2B,K2B)を計算する。
情報共有装置Bは、(C1B,C2B)を情報共有装置Aに送信する。
情報共有装置Bは、DeCap(mpk1B,ID1B,sk1B,C1A)→K1Aを計算する。
情報共有装置Bは、共有情報K=H(K1A,K1B,K2B,sid),sid=(ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B)を計算する。共有情報Kは、例えば共有鍵として用いられる。
【0070】
3.情報共有装置Aの処理
情報共有装置Aは、(C1B,C2B)を受信する。
情報共有装置Aは、DeCap(mpk1A,ID1A,sk1A,C1B)→K1Bを計算し、DeCap(mpk2A,ID2A,sk2A,C2B)→K2Bを計算する。
情報共有装置Aは、共有情報K=H(K1A,K1B,K2B,sid),sid=(ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B)を計算する。共有情報Kは、例えば共有鍵として用いられる。
【0071】
<装置>
公開パラメータ及び情報交換の欄で示した処理は、例えば図1,図4,図5に示された情報共有装置A及び情報共有装置Bにより実行される。
【0072】
第三実施形態の情報共有システムは、情報共有装置A及び情報共有装置Bに加えて、図1に破線で示されたマスタ鍵生成装置3及び鍵導出装置4を更に備える。
【0073】
情報共有装置Aは、図4に示すように、記憶部A0、短期秘密鍵生成部A3、合成秘密鍵生成部A4、暗号化部A5、鍵生成部A6、送信部A7、受信部A8、第一復号部A9、第二復号部A10、情報生成部A11、ID選択部A12、鍵導出部A13を例えば備える。
【0074】
情報共有装置Bは、図5に示すように、記憶部B0、短期秘密鍵生成部B3、合成秘密鍵生成部B4、第一暗号化部B5、第二暗号化部B6、送信部B7、受信部B8、復号部B9、情報生成部B10を例えば備える。
【0075】
情報共有方法の処理の流れの例を図7に示す。
【0076】
短期秘密鍵生成部A3は、第一短期秘密鍵r’1A∈{0,1}k及び第二短期秘密鍵r2A∈{0,1}kをランダムに選択する(ステップSA3)。選択された第一短期秘密鍵r’1Aは、合成秘密鍵生成部A4に送信される。選択された第二短期秘密鍵r2Aは、鍵生成部A6に送信される。
【0077】
合成秘密鍵生成部A4は、第一短期秘密鍵r’1A及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする(ステップSA4)。ここで、所定の合成鍵生成関数は、例えばハッシュ関数G(r’1A,sk1A)である。合成秘密鍵r1Aは、暗号化部A5に送信される。
【0078】
暗号化部A5は、マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する(ステップSA5)。生成された第一交換情報C1Aは、送信部A7及び情報生成部A11に送信される。生成された第一共有情報K1Aは、情報生成部A11に送信される。
【0079】
鍵生成部A6が、第二短期秘密鍵r2Aを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する(ステップSA6)。生成された秘密鍵msk2Aは、第二復号部A10及び鍵導出部A13に送信される。生成された公開鍵mpk2Aは、送信部A7、第二復号部A10、情報生成部A11及び鍵導出部A13に送信される。
【0080】
ID選択部A12は、情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択する(ステップSA12)。選択されたID2Aは、送信部A7及び鍵導出部A13に送信される。
【0081】
鍵導出部A13は、秘密鍵msk2A、公開鍵mpk2A及びID2Aを用いて、所定の鍵導出アルゴリズムKeyDerにより、第二長期秘密鍵sk2Aを生成する(ステップSA13)。第二長期秘密鍵は、第二復号部A10に送信される。
【0082】
送信部A7は、第一交換情報C1A、公開鍵mpk2A及びID2Aを情報共有装置Bに送信する(ステップSA7)。
【0083】
受信部A8は、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Bから受信する(ステップSA8)。第一交換情報C1Bは、第一復号部A9及び情報生成部A11に送信される。第二交換情報C2Bは、第二復号部A10及び情報生成部A11に送信される。
【0084】
第一復号部A9は、マスタ公開鍵mpk1、ID1A、第一長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する(ステップSA9)。生成された第一共有情報K1Bは、情報生成部A11に送信される。
【0085】
第二復号部A10は、公開鍵pk2A、ID2A、第二長期秘密鍵sk2A及び第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する(ステップSA10)。生成された第二共有情報K2Bは、情報生成部A11に送信される。
【0086】
情報生成部A11は、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、ID1A、ID1B、第一交換情報C1A、公開鍵mpk2A、ID2A、第一交換情報C1B及び第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する(ステップSA11)。所定の情報生成関数は、例えばハッシュ関数Hである。この場合、情報生成部A11が計算する出力値は、H(K1A,K1B,K2B,ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B)となる。この出力値が、共有の対象となる共有情報Kとなる。
【0087】
情報共有装置Bの受信部B8(図5)は、第一交換情報C1A、公開鍵mpk2A及びID2Aを受信する(ステップSB8)。第一交換情報C1Aは、復号部B9に送信される。公開鍵mpk2Aは、第二暗号化部B6に送信される。
【0088】
短期秘密鍵生成部B3は、第一短期秘密鍵r’1B∈{0,1}k及び第二短期秘密鍵r2B∈{0,1}kをランダムに選択する(ステップSB3)。選択された第一短期秘密鍵r’1Bは、合成秘密鍵生成部B4に送信される。選択された第二短期秘密鍵r2Bは、第二暗号化部B6に送信される。
【0089】
合成秘密鍵生成部B4は、第一短期秘密鍵r’1B及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする(ステップSB4)。ここで、所定の合成鍵生成関数は、例えばハッシュ関数G(r’1B,sk1B)である。合成秘密鍵r1Bは、第一暗号化部B5に送信される。
【0090】
第一暗号化部B5は、マスタ公開鍵mpk1、ID1A及び合成秘密鍵r1Bを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する(ステップSB5)。生成された第一交換情報C1Bは、送信部B7及び情報生成部B10に送信される。生成された第一共有情報K1Bは、情報生成部B10に送信される。
【0091】
第二暗号化部B6は、公開鍵mpk2A、ID2A及び第二短期秘密鍵r2Bkを用いて、所定の暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する(ステップSB6)。生成された第二交換情報C2Bは、送信部B7及び情報生成部B10に送信される。生成された第二共有情報K2Bは、情報生成部B10に送信される。
【0092】
送信部B7は、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Aに送信する(ステップSB7)。
【0093】
復号部B9は、マスタ公開鍵mpk1、ID1B、第一長期秘密鍵sk1B及び第一交換情報C1Aを用いて、復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する。生成された第一共有情報K1Aは、情報生成部B10に送信される。
【0094】
情報生成部B10は、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、ID1A、ID1B、第一交換情報C1A、公開鍵mpk2A、ID2A、第一交換情報C1B及び第二交換情報C2Bを情報生成関数に入力したときの出力値を計算する。この情報生成関数は、情報共有装置Aの情報生成部A11が用いる情報生成関数と同じ関数であり、例えばハッシュ関数Hである。この場合、情報生成部B10が計算する出力値は、H(K1A,K1B,K2B,ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B)となる。この出力値が、共有の対象となる共有情報Kとなる。
【0095】
[第四実施形態]
第四実施形態は、以下の部分において第三実施形態と異なる。以下では、第三実施形態と異なる部分を中心に説明をし、第三実施形態と同様の部分については重複説明を省略する。
【0096】
鍵導出装置4(図1)は、更に長期秘密鍵tA∈{0,1}kをランダムに生成する。生成された長期秘密鍵tAは、情報共有装置Aの合成秘密鍵生成部A4に秘密裡に送信される。
【0097】
また、ステップSA3において、短期秘密鍵生成部A3は、短期秘密鍵s’1A∈{0,1}kを更に生成する。生成された短期秘密鍵s’1A∈は、合成秘密鍵生成部A4に送信される。
【0098】
また、ステップSA4において合成秘密鍵生成部A4は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)を計算して、合成秘密鍵r1A∈{0,1}kとする。ここで、PRF1及びPRF2はk個のビットから構成されるビット列{0,1}kを出力する擬似ランダム関数、xorはビットごとの排他的論理和である。すなわち、第四実施形態においては、合成秘密鍵生成部A4が用いる合成鍵生成関数は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)となる。擬似ランダム関数は、例えば第一引数を鍵として用いる。
【0099】
また、鍵導出装置4は、更に長期秘密鍵tB∈{0,1}kをランダムに生成する。生成された長期秘密鍵tBは、情報共有装置Bの合成秘密鍵生成部B4に秘密裡に送信される。
【0100】
また、ステップSB3において、短期秘密鍵生成部B3は、短期秘密鍵s’1B∈{0,1}kを更に生成する。生成された短期秘密鍵s’1B∈は、合成秘密鍵生成部B4に送信される。
【0101】
また、ステップSB4において合成秘密鍵生成部B4は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)を計算して、合成秘密鍵r1B∈{0,1}kとする。すなわち、第四実施形態においては、合成秘密鍵生成部B4が用いる合成鍵生成関数は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)となる。
【0102】
さらに、ステップSA11及びステップSB10において、情報生成部A11及び情報生成部B10が用いる情報生成関数は、PRF3(L1A,sid)xorPRF3(L1B,sid)xorPRF3(L2B,sid)である。ここで、Extはランダムネスエクストラクタ、PRF3は擬似ランダム関数、sid={pk1A,pk1B,C1A,pk2A,C1B,C2B}、L1A=Ext(K1A)、L1B=Ext(K1B)、L2B=Ext(K2B)である。ランダムネスエクストラクタExtは、任意の分布の入力に対して一様の分布を持つ出力値を出力する関数である。
【0103】
このようにすることにより、第四実施形態では、ランダムオラクルモデルを仮定せずに安全性を示すことができる。
【0104】
[他の変形例]
情報共有装置Aの各部間における情報のやり取りは、記憶部A0を介して行われてもよい。同様に、情報共有装置Bの各部間における情報のやり取りは、記憶部B0を介して行われてもよい。
【0105】
情報共有装置Aをコンピュータによって実現する場合、情報共有装置Aの各部の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、情報共有装置Aの各部の処理機能がコンピュータ上で実現される。
【0106】
同様に、情報共有装置Bをコンピュータによって実現する場合、情報共有装置Bの各部の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、情報共有装置Bの各部の処理機能がコンピュータ上で実現される。
【0107】
これらのプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0108】
この発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【符号の説明】
【0109】
3 マスタ鍵生成装置
4 鍵導出装置
A 情報共有装置
A0 記憶部
A1 乱数生成部
A2 長期鍵生成部
A3 短期秘密鍵生成部
A4 合成秘密鍵生成部
A5 暗号化部
A6 鍵生成部
A7 送信部
A8 受信部
A9 第一復号部
A10 第二復号部
A11 情報生成部
A12 ID選択部
A13 鍵導出部
B 情報共有装置
B0 記憶部
B1 乱数生成部
B2 長期鍵生成部
B3 短期秘密鍵生成部
B4 合成秘密鍵生成部
B5 第一暗号化部
B6 第二暗号化部
B7 送信部
B8 受信部
B9 復号部
B10 情報生成部
【技術分野】
【0001】
この発明は、情報セキュリティ技術の応用技術、特に2つの装置でセッション鍵等の情報を共有する技術に関する。
【背景技術】
【0002】
情報共有方式として、例えば非特許文献1に記載されている、Key Encapsulation Mechanism(KEM)を用いたBCGP方式が知られている。
【0003】
このBCGP方式については、いわゆるCK−modelでの安全性が示されている。CK−modelについては、非特許文献2を参照のこと。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Colin Boyd, Yvonne Cliff, Juan Manuel Gonz´alez Nieto, Kenneth G.Paterson, “Efficient One-Round Key Exchange in the Standard Model.”, ACISP 2008 p.69-83
【非特許文献2】Ran Canetti and Hugo Krawczyk, “Analysis of key-exchange protocols and their use for building secure channels.”, EUROCRYPT 2001, p.453-474, 2001.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に記載されているBCGP方式については、短期秘密鍵の漏洩を許すいわゆるeCK−modelで攻撃することができる。このため、このBCGP方式は、乱数生成器の脆弱性などにより短期秘密鍵の漏洩が起こる場合に必ずしも安全ではない。
【0006】
この発明の課題は、短期秘密鍵の漏洩を許すいわゆるeCK−modelでも安全性を保つことができる情報提供システム、方法、情報共有装置及びそのプログラムを提供することである。
【0007】
なお、eCK−modelについては、参考文献1を参照のこと。
【0008】
[参考文献1]Brian~A. LaMacchia, Kristin Lauter, and Anton Mityagin, “Stronger security of authenticated key exchange.”, ProvSec 2007, p.1-16. 2007.
【課題を解決するための手段】
【0009】
この発明の1つの態様である情報共有システムは、情報共有装置A及び情報共有装置Bで情報を共有する。セキュリティパラメータkは正の整数である。情報共有装置Aは、第一短期秘密鍵r’1A∈{0,1}k及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、長期公開鍵pk1B及び合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する鍵生成部と、第一交換情報C1A及び公開鍵pk2Aを情報共有装置Bに送信する送信部と、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Bから受信する受信部と、長期公開鍵pk1A、長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、公開鍵pk2A、長期秘密鍵sk2A及び第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、長期公開鍵pk1A、長期公開鍵pk1B、第一交換情報C1A、公開鍵pk2A、第一交換情報C1B、第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む。情報共有装置Bは、第一交換情報C1A及び公開鍵pk2Aを情報共有装置Aから受信する受信部と、第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、長期公開鍵pk1A及び合成秘密鍵r1Bを用いて、暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、公開鍵pk2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Aに送信する送信部と、長期公開鍵pk1B、長期秘密鍵sk1B及び第一交換情報C1Aを用いて、復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する復号部と、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、長期公開鍵pk1A、長期公開鍵pk1B、第一交換情報C1A、公開鍵pk2A、第一交換情報C1B、第二交換情報C2Bを情報生成関数に入力したときの出力値を計算する情報生成部と、を備える。
【0010】
この発明の他の1つの態様である情報共有システムは、情報共有装置A及び情報共有装置Bで情報を共有する。セキュリティパラメータkは正の整数である。情報共有装置Aは、第一短期秘密鍵r’1A∈{0,1}k及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する鍵生成部と、情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択するID選択部と、第一交換情報C1A、公開鍵mpk2A及びID2Aを情報共有装置Bに送信する送信部と、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Bから受信する受信部と、マスタ公開鍵mpk1、情報共有装置Aの第一の識別子であるID1A、第一長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、公開鍵pk2A、ID2A、第二長期秘密鍵sk2A及び第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、ID1A、ID1B、第一交換情報C1A、公開鍵mpk2A、ID2A、第一交換情報C1B及び第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む。情報共有装置Bは、第一交換情報C1A、公開鍵mpk2A及びID2Aを情報共有装置Aからに受信する受信部と、第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、マスタ公開鍵mpk1、ID1A及び合成秘密鍵r1Bを用いて、暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、公開鍵mpk2A、ID2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Aに送信する送信部と、マスタ公開鍵mpk1、ID1B、第一長期秘密鍵sk1B及び第一交換情報C1Aを用いて、復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する復号部と、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、ID1A、ID1B、第一交換情報C1A、公開鍵mpk2A、ID2A、第一交換情報C1B及び第二交換情報C2Bを情報生成関数に入力したときの出力値を計算する情報生成部と、を含む。
【発明の効果】
【0011】
短期秘密鍵及び長期秘密鍵を用いて生成した合成秘密鍵を用いて情報の共有を行うことにより、短期秘密鍵の漏洩を許すいわゆるeCK−modelでも安全性を保つことができる。
【図面の簡単な説明】
【0012】
【図1】情報共有システムの構成の例を説明するためのブロック図。
【図2】第一実施形態及び第二実施形態の情報共有装置Aの例を説明するためのブロック図。
【図3】第一実施形態及び第二実施形態の情報共有装置Bの例を説明するためのブロック図。
【図4】第三実施形態及び第四実施形態の情報共有装置Aの例を説明するためのブロック図。
【図5】第三実施形態及び第四実施形態の情報共有装置Bの例を説明するためのブロック図。
【図6】第一実施形態及び第二実施形態の情報共有方法の例を説明するためのフローチャート。
【図7】第一実施形態及び第三実施形態の情報共有方法の例を説明するためのフローチャート。
【発明を実施するための形態】
【0013】
以下、図面を参照してこの発明の実施形態を説明する。
【0014】
[第一実施形態]
第一実施形態のKEMを用いた情報共有システム、方法を以下に示す。
【0015】
<アルゴリズム>
まず、次のようにKEMの各アルゴリズムが定まっているとする。
KeyGen(r)→(sk,pk)は、KEMの鍵生成アルゴリズム。
EnCap(pk,r’)→(C,K)は、KEMの暗号化アルゴリズム。
DeCap(pk,sk,C)→Kは、KEMの復号化アルゴリズム。
【0016】
<公開パラメータ>
H:{0,1}*→{0,1}kと、G:{0,1}*→{0,1}kとをハッシュ関数とする。{0,1}xは、それぞれ0又は1であるx個のビットから構成されるビット列を意味する。*は任意の数を意味する。すなわち、{0,1}*は、任意の長さのビット列を意味する。kは、所定の正の整数であり、セキュリティパラメータである。
【0017】
ここで、ハッシュ関数の引数が2以上ありこれらの引数をカンマ「,」で区切った場合には、これらの引数を所定の順序でビット結合したビット列をそのハッシュ関数に入力することを意味する。すなわち、例えば、情報共有装置Aにおいて計算されるG(r’1A,sk1A)=G(r’1A||sk1A)である。また、ビット結合する引数の順序は、各ハッシュ関数において同じであるとする。すなわち、情報共有装置A及び情報共有装置Bにおいて、ビット結合をする所定の順序は同じである。つまり、この場合、情報共有装置Bにおいて計算されるG(r’1B,sk1B)は、G(r’1B||sk1B)となる。これは、ハッシュ関数Hについても同様である。
【0018】
各情報共有装置i(i=A,B)は、ri∈{0,1}kをランダムに選択し、鍵生成KeyGen(ri)→(sk1i,pk1i)を行い、sk1iを長期秘密鍵として秘密に保持し、pk1iを長期公開鍵として公開する。
【0019】
<情報交換>
長期公開鍵pk1A及び長期秘密鍵sk1Aを持つ情報共有装置Aと、長期公開鍵pk1B及び長期秘密鍵sk1Bを持つ情報共有装置Bとは、以下のようにして交換情報を交換して、情報Kを共有する。
【0020】
1.情報共有装置Aの処理
情報共有装置Aは、第一短期秘密鍵r’1A∈{0,1}k及び第二短期秘密鍵r2A∈{0,1}kをランダムに選び、G(r’1A,sk1A)=r1A∈{0,1}kを計算する。
情報共有装置Aは、EnCap(pk1B,r1A)→(C1A,K1A)を計算し、KeyGen(r2A)→(sk2A,pk2A)を計算する。
情報共有装置Aは、(C1A,pk2A)を情報共有装置Bに送信する。
【0021】
2.情報共有装置Bの処理
情報共有装置Bは、(C1A,pk2A)を受信する。
【0022】
情報共有装置Bは、短期秘密鍵r’1B,r2B∈{0,1}kをランダムに選び、G(r’1B,sk1B)=r1B∈{0,1}kを計算する。
情報共有装置Bは、EnCap(pk1A,r1B)→(C1B,K1B)を計算し、EnCap(pk2A,r2B)→(C2B,K2B)を計算する。
情報共有装置Bは、(C1B,C2B)を情報共有装置Aに送信する。
情報共有装置Bは、DeCap(pk1B,sk1B,C1A)→K1Aを計算する。
情報共有装置Bは、共有情報K=H(K1A,K1B,K2B,sid),sid=(pk1A,pk1B,C1A,pk2A,C1B,C2B)を計算する。共有情報Kは、例えば共有鍵として用いられる。
【0023】
3.情報共有装置Aの処理
情報共有装置Aは、(C1B,C2B)を受信する。
情報共有装置Aは、DeCap(pk1A,sk1A,C1B)→K1Bを計算し、DeCap(pk2A,sk2A,C2B)→K2Bを計算する。
情報共有装置Aは、共有情報K=H(K1A,K1B,K2B,sid),sid=(pk1A,pk1B,C1A,pk2A,C1B,C2B)を計算する。共有情報Kは、例えば共有鍵として用いられる。
【0024】
<装置>
公開パラメータ及び情報交換の欄で示した処理は、例えば図1から図3に示された情報共有装置A及び情報共有装置Bにより実行される。
【0025】
第一実施形態の情報共有装置は、図1に示すように、情報共有装置A及び情報共有装置Bを例えば備える。
【0026】
情報共有装置Aは、図2に示すように、記憶部A0、乱数生成部A1、長期鍵生成部A2、短期秘密鍵生成部A3、合成秘密鍵生成部A4、暗号化部A5、鍵生成部A6、送信部A7、受信部A8、第一復号部A9、第二復号部A10、情報生成部A11を例えば備える。
【0027】
情報共有装置Bは、図3に示すように、記憶部B0、乱数生成部B1、長期鍵生成部B2、短期秘密鍵生成部B3、合成秘密鍵生成部B4、第一暗号化部B5、第二暗号化部B6、送信部B7、受信部B8、復号部B9、情報生成部B10を例えば備える。
【0028】
情報共有方法の処理の流れの例を図6に示す。
【0029】
情報共有装置Aの乱数生成部A1は、乱数rA∈{0,1}kを生成する(ステップSA1)。生成された乱数rAは、長期鍵生成部A2に送信される。
【0030】
長期鍵生成部A2は、鍵生成KeyGen(rA)→(sk1A,pk1A)を行い(ステップSA2)、sk1Aを長期秘密鍵として秘密に保持し、pk1Aを長期公開鍵として公開する。長期秘密鍵sk1Aは、合成秘密鍵生成部A4及び第一復号部A9に送信される。長期公開鍵pk1Aは、第一復号部A9及び情報生成部A11に送信される。
【0031】
短期秘密鍵生成部A3は、第一短期秘密鍵r’1A∈{0,1}k及び第二短期秘密鍵r2A∈{0,1}kをランダムに選択する(ステップSA3)。選択された第一短期秘密鍵r’1Aは、合成秘密鍵生成部A4に送信される。選択された第二短期秘密鍵r2Aは、鍵生成部A6に送信される。
【0032】
合成秘密鍵生成部A4は、第一短期秘密鍵r’1A及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする(ステップSA4)。ここで、所定の合成鍵生成関数は、例えばハッシュ関数G(r’1A,sk1A)である。合成秘密鍵r1Aは、暗号化部A5に送信される。
【0033】
暗号化部A5は、長期公開鍵pk1B及び合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する(ステップSA5)。生成された第一交換情報C1Aは、送信部A7及び情報生成部A11に送信される。生成された第一共有情報K1Aは、情報生成部A11に送信される。
【0034】
鍵生成部A6は、第二短期秘密鍵r2Aを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する(ステップSA6)。生成された秘密鍵sk2Aは、第二復号部A10に送信される。生成された公開鍵pk2Aは、送信部A7、第二復号部A10及び情報生成部A11に送信される。
【0035】
送信部A7は、第一交換情報C1A及び公開鍵pk2Aを情報共有装置Bに送信する(ステップSA7)。
【0036】
受信部A8は、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Bから受信する(ステップSA8)。第一交換情報C1Bは、第一復号部A9及び情報生成部A11に送信される。第二交換情報C2Bは、第二復号部A10及び情報生成部A11に送信される。
【0037】
第一復号部A9は、長期公開鍵pk1A、長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する(ステップSA9)。生成された第一共有情報K1Bは、情報生成部A11に送信される。
【0038】
第二復号部A10は、公開鍵pk2A、長期秘密鍵sk2A及び第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する(ステップSA10)。生成された第二共有情報K2Bは、情報生成部A11に送信される。
【0039】
情報生成部A11は、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、長期公開鍵pk1A、長期公開鍵pk1B、第一交換情報C1A、公開鍵pk2A、第一交換情報C1B、第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する(ステップSA11)。所定の情報生成関数は、例えばハッシュ関数Hである。この場合、情報生成部A11が計算する出力値は、H(K1A,K1B,K2B,pk1A,pk1B,C1A,pk2A,C1B,C2B)となる。この出力値が、共有の対象となる共有情報Kとなる。
【0040】
情報共有装置Bの受信部B8(図3)は、第一交換情報C1A及び公開鍵pk2Aを受信する(ステップSB8)。第一交換情報C1Aは、復号部B9に送信される。公開鍵pk2Aは、第二暗号化部B6に送信される。
【0041】
乱数生成部B1は、乱数rB∈{0,1}kを生成する(ステップSB1)。生成された乱数rBは、長期鍵生成部B2に送信される。
【0042】
長期鍵生成部B2は、鍵生成KeyGen(rB)→(sk1B,pk1B)を行い(ステップSB2)、sk1Bを長期秘密鍵として秘密に保持し、pk1Bを長期公開鍵として公開する。長期秘密鍵sk1Bは、合成秘密鍵生成部B4及び復号部B9に送信される。長期公開鍵pk1Bは、復号部B9及び情報生成部B10に送信される。
【0043】
短期秘密鍵生成部B3は、第一短期秘密鍵r’1B∈{0,1}k及び第二短期秘密鍵r2B∈{0,1}kをランダムに選択する(ステップSB3)。選択された第一短期秘密鍵r’1Bは、合成秘密鍵生成部B4に送信される。選択された第二短期秘密鍵r2Bは、第二暗号化部B6に送信される。
【0044】
合成秘密鍵生成部B4は、第一短期秘密鍵r’1B及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする(ステップSB4)。ここで、所定の合成鍵生成関数は、合成秘密鍵生成部A4が用いた合成鍵生成関数と同じ関数であり、例えばハッシュ関数G(r’1B,sk1B)である。合成秘密鍵r1Bは、第一暗号化部B5に送信される。
【0045】
第一暗号化部B5は、長期公開鍵pk1A及び合成秘密鍵r1Bを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する(ステップSB5)。生成された第一交換情報C1Bは、送信部B7及び情報生成部B10に送信される。生成された第一共有情報K1Bは、情報生成部B10に送信される。
【0046】
第二暗号化部B6は、公開鍵pk2A及び第二短期秘密鍵r2Bを用いて、所定の暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する(ステップSB6)。生成された第二交換情報C2Bは、送信部B7及び情報生成部B10に送信される。生成された第二共有情報K2Bは、情報生成部B10に送信される。
【0047】
送信部B7は、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Aに送信する(ステップSB7)。
【0048】
復号部B9は、長期公開鍵pk1B、長期秘密鍵sk1B及び第一交換情報C1Aを用いて、復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する。生成された第一共有情報K1Aは、情報生成部B10に送信される。
【0049】
情報生成部B10は、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、長期公開鍵pk1A、長期公開鍵pk1B、第一交換情報C1A、公開鍵pk2A、第一交換情報C1B、第二交換情報C2Bを情報生成関数に入力したときの出力値を計算する。この情報生成関数は、情報共有装置Aの情報生成部A11が用いる情報生成関数と同じ関数であり、例えばハッシュ関数Hである。この場合、情報生成部B10が計算する出力値は、H(K1A,K1B,K2B,pk1A,pk1B,C1A,pk2A,C1B,C2B)となる。この出力値が、共有の対象となる共有情報Kとなる。
【0050】
[第二実施形態]
第二実施形態は、以下の部分において第一実施形態と異なる。以下では、第一実施形態と異なる部分を中心に説明をし、第一実施形態と同様の部分については重複説明を省略する。
【0051】
ステップSA1において、乱数生成部A1は、長期秘密鍵tA∈{0,1}kを更に生成する。生成された長期秘密鍵tAは、合成秘密鍵生成部A4に送信される。
【0052】
また、ステップSA3において、短期秘密鍵生成部A3は、短期秘密鍵s’1A∈{0,1}kを更に生成する。生成された短期秘密鍵s’1A∈は、合成秘密鍵生成部A4に送信される。
【0053】
また、ステップSA4において合成秘密鍵生成部A4は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)を計算して、合成秘密鍵r1A∈{0,1}kとする。ここで、PRF1及びPRF2はk個のビットから構成されるビット列{0,1}kを出力する擬似ランダム関数、xorはビットごとの排他的論理和である。すなわち、第二実施形態においては、合成秘密鍵生成部A4が用いる合成鍵生成関数は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)となる。擬似ランダム関数は、例えば第一引数を鍵として用いる。
【0054】
また、ステップSB1において、乱数生成部B1は、長期秘密鍵tB∈{0,1}kを更に生成する。生成された長期秘密鍵tBは、合成秘密鍵生成部B4に送信される。
【0055】
また、ステップSB3において、短期秘密鍵生成部B3は、短期秘密鍵s’1B∈{0,1}kを更に生成する。生成された短期秘密鍵s’1B∈は、合成秘密鍵生成部B4に送信される。
【0056】
また、ステップSB4において合成秘密鍵生成部B4は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)を計算して、合成秘密鍵r1B∈{0,1}kとする。すなわち、第二実施形態においては、合成秘密鍵生成部B4が用いる合成鍵生成関数は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)となる。
【0057】
さらに、ステップSA11及びステップSB10において、情報生成部A11及び情報生成部B10が用いる情報生成関数は、PRF3(L1A,sid)xorPRF3(L1B,sid)xorPRF3(L2B,sid)である。ここで、Extはランダムネスエクストラクタ、PRF3は擬似ランダム関数、sid={pk1A,pk1B,C1A,pk2A,C1B,C2B}、L1A=Ext(K1A)、L1B=Ext(K1B)、L2B=Ext(K2B)である。ランダムネスエクストラクタExtは、任意の分布の入力に対して一様の分布を持つ出力値を出力する関数である。
【0058】
このようにすることにより、第二実施形態では、ランダムオラクルモデルを仮定せずに安全性を示すことができる。
【0059】
[第三実施形態]
第三実施形態は、ID−base KEMを用いた情報共有を行うものである。
【0060】
第三実施形態のID−base KEMを用いた情報共有システム、方法を以下に示す。
【0061】
なお、第一実施形態のpk1Aが、第三実施形態のmpk1及びID1Aに対応する。また、第一実施形態のpk2Aが、第三実施形態のmpk2A及びID2Aに対応する。さらに、第一実施形態のpk1Bが、第三実施形態のmpk1及びID1Bに対応する。これ以外の技術的特徴は、第一実施形態と第三実施形態において同様である。
【0062】
<アルゴリズム>
まず、次のようにKEMの各アルゴリズムが定まっているとする。
KeyGen(r)→(msk,mpk)は、ID−base KEMのマスタ鍵生成アルゴリズム。
KeyDer(msk,mpk,ID)→skは、ID−base KEMの鍵導出アルゴリズム。
EnCap(mpk,ID,r’)→(C,K)は、ID−base KEMの暗号化アルゴリズム。
DeCap(mpk,ID,sk,C)→Kは、ID−base KEMの復号化アルゴリズム。
【0063】
<公開パラメータ>
H:{0,1}*→{0,1}kと、G:{0,1}*→{0,1}kとをハッシュ関数とする。{0,1}xは、それぞれ0又は1であるx個のビットから構成されるビット列を意味する。*は任意の数を意味する。すなわち、{0,1}*は、任意の長さのビット列を意味する。kは、所定の正の整数であり、セキュリティパラメータである。
【0064】
ここで、ハッシュ関数の引数が2以上ありこれらの引数をカンマ「,」で区切った場合には、これらの引数を所定の順序でビット結合したビット列をそのハッシュ関数に入力することを意味する。すなわち、例えば、情報共有装置Aにおいて計算されるG(r’1A,sk1A)=G(r’1A||sk1A)である。また、ビット結合する引数の順序は、各ハッシュ関数において同じであるとする。すなわち、情報共有装置A及び情報共有装置Bにおいて、ビット結合をする所定の順序は同じである。つまり、この場合、情報共有装置Bにおいて計算されるG(r’1B,sk1B)は、G(r’1B||sk1B)となる。これは、ハッシュ関数Hについても同様である。
【0065】
例えば図1に破線で示したマスタ鍵生成装置3が、r∈{0,1}kをランダムに選択し、マスタ鍵生成KeyGen(r)→(msk1,mpk1)を行い、msk1をマスタ秘密鍵として秘密に保持し、mpk1をマスタ公開鍵として公開する。
【0066】
<鍵導出>
例えば図1に破線で示した鍵導出装置4が、i=A,Bとして、情報共有装置iの識別子ID1i∈{0,1}*に対して、KeyDer(msk1,mpk1,ID1i)→sk1iを計算し、長期秘密鍵sk1iを情報共有装置iに秘密裡に送付する。鍵導出装置4は、マスタ鍵生成装置3であってもよい。
【0067】
<情報交換>
識別子ID1A及び長期秘密鍵sk1Aを持つ情報共有装置Aと、識別子ID1B及び長期秘密鍵sk1Bを持つ情報共有装置Bとは、以下のようにして交換情報を交換して、情報Kを共有する。
【0068】
1.情報共有装置Aの処理
情報共有装置Aは、第一短期秘密鍵r’1A∈{0,1}k及び第二短期秘密鍵r2A∈{0,1}kをランダムに選び、G(r’1A,sk1A)=r1A∈{0,1}kを計算する。
情報共有装置Aは、EnCap(mpk1,ID1B,r1A)→(C1A,K1A)を計算し、KeyGen(r2A)→(msk2A,mpk2A)を計算する。
情報共有装置Aは、識別子ID2A∈{0,1}*をランダムに選ぶ。
情報共有装置Aは、KeyDer(msk2A,mpk2A,ID2A)→sk2Aを計算する。
情報共有装置Aは、(C1A,mpk2A,ID2A)を情報共有装置Bに送信する。
【0069】
2.情報共有装置Bの処理
情報共有装置Bは、(C1A,mpk2A,ID2A)を受信する。
情報共有装置Bは、短期秘密鍵r’1B,r2B∈{0,1}kをランダムに選び、G(r’1B,sk1B)=r1B∈{0,1}kを計算する。
情報共有装置Bは、EnCap(mpk1A,ID1A,r1B)→(C1B,K1B)を計算し、EnCap(mpk2A,ID2A,r2B)→(C2B,K2B)を計算する。
情報共有装置Bは、(C1B,C2B)を情報共有装置Aに送信する。
情報共有装置Bは、DeCap(mpk1B,ID1B,sk1B,C1A)→K1Aを計算する。
情報共有装置Bは、共有情報K=H(K1A,K1B,K2B,sid),sid=(ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B)を計算する。共有情報Kは、例えば共有鍵として用いられる。
【0070】
3.情報共有装置Aの処理
情報共有装置Aは、(C1B,C2B)を受信する。
情報共有装置Aは、DeCap(mpk1A,ID1A,sk1A,C1B)→K1Bを計算し、DeCap(mpk2A,ID2A,sk2A,C2B)→K2Bを計算する。
情報共有装置Aは、共有情報K=H(K1A,K1B,K2B,sid),sid=(ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B)を計算する。共有情報Kは、例えば共有鍵として用いられる。
【0071】
<装置>
公開パラメータ及び情報交換の欄で示した処理は、例えば図1,図4,図5に示された情報共有装置A及び情報共有装置Bにより実行される。
【0072】
第三実施形態の情報共有システムは、情報共有装置A及び情報共有装置Bに加えて、図1に破線で示されたマスタ鍵生成装置3及び鍵導出装置4を更に備える。
【0073】
情報共有装置Aは、図4に示すように、記憶部A0、短期秘密鍵生成部A3、合成秘密鍵生成部A4、暗号化部A5、鍵生成部A6、送信部A7、受信部A8、第一復号部A9、第二復号部A10、情報生成部A11、ID選択部A12、鍵導出部A13を例えば備える。
【0074】
情報共有装置Bは、図5に示すように、記憶部B0、短期秘密鍵生成部B3、合成秘密鍵生成部B4、第一暗号化部B5、第二暗号化部B6、送信部B7、受信部B8、復号部B9、情報生成部B10を例えば備える。
【0075】
情報共有方法の処理の流れの例を図7に示す。
【0076】
短期秘密鍵生成部A3は、第一短期秘密鍵r’1A∈{0,1}k及び第二短期秘密鍵r2A∈{0,1}kをランダムに選択する(ステップSA3)。選択された第一短期秘密鍵r’1Aは、合成秘密鍵生成部A4に送信される。選択された第二短期秘密鍵r2Aは、鍵生成部A6に送信される。
【0077】
合成秘密鍵生成部A4は、第一短期秘密鍵r’1A及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする(ステップSA4)。ここで、所定の合成鍵生成関数は、例えばハッシュ関数G(r’1A,sk1A)である。合成秘密鍵r1Aは、暗号化部A5に送信される。
【0078】
暗号化部A5は、マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する(ステップSA5)。生成された第一交換情報C1Aは、送信部A7及び情報生成部A11に送信される。生成された第一共有情報K1Aは、情報生成部A11に送信される。
【0079】
鍵生成部A6が、第二短期秘密鍵r2Aを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する(ステップSA6)。生成された秘密鍵msk2Aは、第二復号部A10及び鍵導出部A13に送信される。生成された公開鍵mpk2Aは、送信部A7、第二復号部A10、情報生成部A11及び鍵導出部A13に送信される。
【0080】
ID選択部A12は、情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択する(ステップSA12)。選択されたID2Aは、送信部A7及び鍵導出部A13に送信される。
【0081】
鍵導出部A13は、秘密鍵msk2A、公開鍵mpk2A及びID2Aを用いて、所定の鍵導出アルゴリズムKeyDerにより、第二長期秘密鍵sk2Aを生成する(ステップSA13)。第二長期秘密鍵は、第二復号部A10に送信される。
【0082】
送信部A7は、第一交換情報C1A、公開鍵mpk2A及びID2Aを情報共有装置Bに送信する(ステップSA7)。
【0083】
受信部A8は、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Bから受信する(ステップSA8)。第一交換情報C1Bは、第一復号部A9及び情報生成部A11に送信される。第二交換情報C2Bは、第二復号部A10及び情報生成部A11に送信される。
【0084】
第一復号部A9は、マスタ公開鍵mpk1、ID1A、第一長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する(ステップSA9)。生成された第一共有情報K1Bは、情報生成部A11に送信される。
【0085】
第二復号部A10は、公開鍵pk2A、ID2A、第二長期秘密鍵sk2A及び第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する(ステップSA10)。生成された第二共有情報K2Bは、情報生成部A11に送信される。
【0086】
情報生成部A11は、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、ID1A、ID1B、第一交換情報C1A、公開鍵mpk2A、ID2A、第一交換情報C1B及び第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する(ステップSA11)。所定の情報生成関数は、例えばハッシュ関数Hである。この場合、情報生成部A11が計算する出力値は、H(K1A,K1B,K2B,ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B)となる。この出力値が、共有の対象となる共有情報Kとなる。
【0087】
情報共有装置Bの受信部B8(図5)は、第一交換情報C1A、公開鍵mpk2A及びID2Aを受信する(ステップSB8)。第一交換情報C1Aは、復号部B9に送信される。公開鍵mpk2Aは、第二暗号化部B6に送信される。
【0088】
短期秘密鍵生成部B3は、第一短期秘密鍵r’1B∈{0,1}k及び第二短期秘密鍵r2B∈{0,1}kをランダムに選択する(ステップSB3)。選択された第一短期秘密鍵r’1Bは、合成秘密鍵生成部B4に送信される。選択された第二短期秘密鍵r2Bは、第二暗号化部B6に送信される。
【0089】
合成秘密鍵生成部B4は、第一短期秘密鍵r’1B及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする(ステップSB4)。ここで、所定の合成鍵生成関数は、例えばハッシュ関数G(r’1B,sk1B)である。合成秘密鍵r1Bは、第一暗号化部B5に送信される。
【0090】
第一暗号化部B5は、マスタ公開鍵mpk1、ID1A及び合成秘密鍵r1Bを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する(ステップSB5)。生成された第一交換情報C1Bは、送信部B7及び情報生成部B10に送信される。生成された第一共有情報K1Bは、情報生成部B10に送信される。
【0091】
第二暗号化部B6は、公開鍵mpk2A、ID2A及び第二短期秘密鍵r2Bkを用いて、所定の暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する(ステップSB6)。生成された第二交換情報C2Bは、送信部B7及び情報生成部B10に送信される。生成された第二共有情報K2Bは、情報生成部B10に送信される。
【0092】
送信部B7は、第一交換情報C1B及び第二交換情報C2Bを情報共有装置Aに送信する(ステップSB7)。
【0093】
復号部B9は、マスタ公開鍵mpk1、ID1B、第一長期秘密鍵sk1B及び第一交換情報C1Aを用いて、復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する。生成された第一共有情報K1Aは、情報生成部B10に送信される。
【0094】
情報生成部B10は、第一共有情報K1A、第一共有情報K1B、第二共有情報K2B、ID1A、ID1B、第一交換情報C1A、公開鍵mpk2A、ID2A、第一交換情報C1B及び第二交換情報C2Bを情報生成関数に入力したときの出力値を計算する。この情報生成関数は、情報共有装置Aの情報生成部A11が用いる情報生成関数と同じ関数であり、例えばハッシュ関数Hである。この場合、情報生成部B10が計算する出力値は、H(K1A,K1B,K2B,ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B)となる。この出力値が、共有の対象となる共有情報Kとなる。
【0095】
[第四実施形態]
第四実施形態は、以下の部分において第三実施形態と異なる。以下では、第三実施形態と異なる部分を中心に説明をし、第三実施形態と同様の部分については重複説明を省略する。
【0096】
鍵導出装置4(図1)は、更に長期秘密鍵tA∈{0,1}kをランダムに生成する。生成された長期秘密鍵tAは、情報共有装置Aの合成秘密鍵生成部A4に秘密裡に送信される。
【0097】
また、ステップSA3において、短期秘密鍵生成部A3は、短期秘密鍵s’1A∈{0,1}kを更に生成する。生成された短期秘密鍵s’1A∈は、合成秘密鍵生成部A4に送信される。
【0098】
また、ステップSA4において合成秘密鍵生成部A4は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)を計算して、合成秘密鍵r1A∈{0,1}kとする。ここで、PRF1及びPRF2はk個のビットから構成されるビット列{0,1}kを出力する擬似ランダム関数、xorはビットごとの排他的論理和である。すなわち、第四実施形態においては、合成秘密鍵生成部A4が用いる合成鍵生成関数は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)となる。擬似ランダム関数は、例えば第一引数を鍵として用いる。
【0099】
また、鍵導出装置4は、更に長期秘密鍵tB∈{0,1}kをランダムに生成する。生成された長期秘密鍵tBは、情報共有装置Bの合成秘密鍵生成部B4に秘密裡に送信される。
【0100】
また、ステップSB3において、短期秘密鍵生成部B3は、短期秘密鍵s’1B∈{0,1}kを更に生成する。生成された短期秘密鍵s’1B∈は、合成秘密鍵生成部B4に送信される。
【0101】
また、ステップSB4において合成秘密鍵生成部B4は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)を計算して、合成秘密鍵r1B∈{0,1}kとする。すなわち、第四実施形態においては、合成秘密鍵生成部B4が用いる合成鍵生成関数は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)となる。
【0102】
さらに、ステップSA11及びステップSB10において、情報生成部A11及び情報生成部B10が用いる情報生成関数は、PRF3(L1A,sid)xorPRF3(L1B,sid)xorPRF3(L2B,sid)である。ここで、Extはランダムネスエクストラクタ、PRF3は擬似ランダム関数、sid={pk1A,pk1B,C1A,pk2A,C1B,C2B}、L1A=Ext(K1A)、L1B=Ext(K1B)、L2B=Ext(K2B)である。ランダムネスエクストラクタExtは、任意の分布の入力に対して一様の分布を持つ出力値を出力する関数である。
【0103】
このようにすることにより、第四実施形態では、ランダムオラクルモデルを仮定せずに安全性を示すことができる。
【0104】
[他の変形例]
情報共有装置Aの各部間における情報のやり取りは、記憶部A0を介して行われてもよい。同様に、情報共有装置Bの各部間における情報のやり取りは、記憶部B0を介して行われてもよい。
【0105】
情報共有装置Aをコンピュータによって実現する場合、情報共有装置Aの各部の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、情報共有装置Aの各部の処理機能がコンピュータ上で実現される。
【0106】
同様に、情報共有装置Bをコンピュータによって実現する場合、情報共有装置Bの各部の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、情報共有装置Bの各部の処理機能がコンピュータ上で実現される。
【0107】
これらのプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0108】
この発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【符号の説明】
【0109】
3 マスタ鍵生成装置
4 鍵導出装置
A 情報共有装置
A0 記憶部
A1 乱数生成部
A2 長期鍵生成部
A3 短期秘密鍵生成部
A4 合成秘密鍵生成部
A5 暗号化部
A6 鍵生成部
A7 送信部
A8 受信部
A9 第一復号部
A10 第二復号部
A11 情報生成部
A12 ID選択部
A13 鍵導出部
B 情報共有装置
B0 記憶部
B1 乱数生成部
B2 長期鍵生成部
B3 短期秘密鍵生成部
B4 合成秘密鍵生成部
B5 第一暗号化部
B6 第二暗号化部
B7 送信部
B8 受信部
B9 復号部
B10 情報生成部
【特許請求の範囲】
【請求項1】
情報共有装置A及び情報共有装置Bで情報を共有する情報共有システムにおいて、
セキュリティパラメータkは正の整数であり、
上記情報共有装置Aは、
第一短期秘密鍵r’1A∈{0,1}k及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、
長期公開鍵pk1B及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、
第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する鍵生成部と、
上記第一交換情報C1A及び上記公開鍵pk2Aを上記情報共有装置Bに送信する送信部と、
第一交換情報C1B及び第二交換情報C2Bを上記情報共有装置Bから受信する受信部と、
長期公開鍵pk1A、上記長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、
上記公開鍵pk2A、上記長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、
を含み、
上記情報共有装置Bは、
上記第一交換情報C1A及び上記公開鍵pk2Aを上記情報共有装置Aから受信する受信部と、
第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、
上記長期公開鍵pk1A及び上記合成秘密鍵r1Bを用いて、上記暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、
上記公開鍵pk2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、上記暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、
上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報共有装置Aに送信する送信部と、
上記長期公開鍵pk1B、上記長期秘密鍵sk1B及び第一交換情報C1Aを用いて、上記復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、上記長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成部と、
を含む、
情報共有システム。
【請求項2】
請求項1の情報共有システムにおいて、
上記合成鍵生成関数は、ハッシュ関数G:{0,1}*→{0,1}kであり、
上記情報生成関数は、ハッシュ関数H:{0,1}*→{0,1}kである、
情報共有システム。
【請求項3】
請求項1の情報共有システムにおいて、
長期秘密鍵tAをtA∈{0,1}k、短期秘密鍵s’1Aをs’1A∈{0,1}k、PRF1及びPRF2を擬似ランダム関数、xorを排他的論理和として、上記情報共有装置Aの合成秘密鍵生成部の合成鍵生成関数は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)であり、
長期秘密鍵tBをtB∈{0,1}k、短期秘密鍵s’1Bをs’1B∈{0,1}kとして、上記情報共有装置Bの合成秘密鍵生成部の合成鍵生成関数は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)であり、
Extをランダムネスエクストラクタ、PRF3を擬似ランダム関数、sid={pk1A,pk1B,C1A,pk2A,C1B,C2B}、L1A=Ext(K1A)、L1B=Ext(K1B)、L2B=Ext(K2B)として、上記情報生成関数は、PRF3(L1A,sid)xorPRF3(L1B,sid)xorPRF3(L2B,sid)である、
情報共有システム。
【請求項4】
情報共有装置A及び情報共有装置Bで情報を共有する情報共有システムにおいて、
セキュリティパラメータkは正の整数であり、
上記情報共有装置Aは、
第一短期秘密鍵r’1A∈{0,1}k及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、
マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、
第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する鍵生成部と、
上記情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択するID選択部と、
上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記情報共有装置Bに送信する送信部と、
第一交換情報C1B及び第二交換情報C2Bを上記情報共有装置Bから受信する受信部と、
上記マスタ公開鍵mpk1、情報共有装置Aの第一の識別子であるID1A、上記第一長期秘密鍵sk1A及び上記第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、
上記公開鍵mpk2A、上記ID2A、上記第二長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、
を含み、
上記情報共有装置Bは、
上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記情報共有装置Aから受信する受信部と、
第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを上記合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、
上記マスタ公開鍵mpk1、上記ID1A及び上記合成秘密鍵r1Bを用いて、上記暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、
上記公開鍵mpk2A、上記ID2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、上記暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、
上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報共有装置Aに送信する送信部と、
上記マスタ公開鍵mpk1、上記ID1B、上記第一長期秘密鍵sk1B及び第一交換情報C1Aを用いて、上記復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成部と、
を含む、
情報共有システム。
【請求項5】
請求項4の情報共有システムにおいて、
上記合成鍵生成関数は、ハッシュ関数G:{0,1}*→{0,1}kであり、
上記情報生成関数は、ハッシュ関数H:{0,1}*→{0,1}kである、
情報共有システム。
【請求項6】
請求項4の情報共有システムにおいて、
上記情報共有装置Aの合成秘密鍵生成部の合成鍵生成関数は、長期秘密鍵tAをtA∈{0,1}k、短期秘密鍵s’1Aをs’1A∈{0,1}k、PRF1及びPRF2を擬似ランダム関数、xorを排他的論理和として、PRF1(tA,r’1A)xorPRF2(s’1A,tA)であり、
上記情報共有装置Bの合成秘密鍵生成部の合成鍵生成関数は、長期秘密鍵tBをtB∈{0,1}k、短期秘密鍵s’1Bをs’1B∈{0,1}kとして、PRF1(tB,r’1B)xorPRF2(s’1B,tB)であり、
Extをランダムネスエクストラクタ、PRF3を擬似ランダム関数、sid={ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B,}、L1A=Ext(K1A)、L1B=Ext(K1B)、L2B=Ext(K2B)として、上記情報生成関数は、PRF3(L1A,sid)xorPRF3(L1B,sid)xorPRF3(L2B,sid)である、
情報共有システム。
【請求項7】
情報共有装置A及び情報共有装置Bで情報を共有する情報共有方法において、
セキュリティパラメータkは正の整数であり、
上記情報共有装置Aが、第一短期秘密鍵r’1A∈{0,1}k及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成ステップと、
上記情報共有装置Aが、長期公開鍵pk1B及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化ステップと、
上記情報共有装置Aが、第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する鍵生成ステップと、
上記情報共有装置Aが、上記第一交換情報C1A及び上記公開鍵pk2Aを上記情報共有装置Bに送信する送信ステップと、
上記情報共有装置Bが、上記第一交換情報C1A及び上記公開鍵pk2Aを上記情報共有装置Aから受信する受信ステップと、
上記情報共有装置Bが、第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成ステップと、
上記情報共有装置Bが、上記長期公開鍵pk1A及び上記合成秘密鍵r1Bを用いて、上記暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化ステップと、
上記情報共有装置Bが、上記公開鍵pk2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、上記暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化ステップと、
上記情報共有装置Bが、上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報共有装置Aに送信する送信ステップと、
上記情報共有装置Aが、第一交換情報C1B及び第二交換情報C2Bを上記情報共有装置Bから受信する受信ステップと、
上記情報共有装置Aが、長期公開鍵pk1A、上記長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号ステップと、
上記情報共有装置Aが、上記公開鍵pk2A、上記長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号ステップと、
上記情報共有装置Aが、上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、上記長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成ステップと、
上記情報共有装置Bが、上記長期公開鍵pk1B、上記長期秘密鍵sk1B及び第一交換情報C1Aを用いて、上記復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号ステップと、
上記情報共有装置Bが、上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、上記長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成ステップと、を含む、
情報共有方法。
【請求項8】
情報共有装置A及び情報共有装置Bで情報を共有する情報共有方法において、
セキュリティパラメータkは正の整数であり、
上記情報共有装置Aが、第一短期秘密鍵r’1A∈{0,1}k及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成ステップと、
上記情報共有装置Aが、マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化ステップと、
上記情報共有装置Aが、第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する鍵生成ステップと、
上記情報共有装置Aが、上記情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択するID選択ステップと、
上記情報共有装置Aが、上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記情報共有装置Bに送信する送信ステップと、
上記情報共有装置Bが、上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記情報共有装置Aから受信する受信ステップと、
上記情報共有装置Bが、第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを上記合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成ステップと、
上記情報共有装置Bが、上記マスタ公開鍵mpk1、上記ID1A及び上記合成秘密鍵r1Bを用いて、上記暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化ステップと、
上記情報共有装置Bが、上記公開鍵mpk2A、上記ID2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、上記暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化ステップと、
上記情報共有装置Bが、上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報共有装置Aに送信する送信ステップと、
上記情報共有装置Aが、第一交換情報C1B及び第二交換情報C2Bを上記情報共有装置Bから受信する受信ステップと、
上記情報共有装置Aが、上記マスタ公開鍵mpk1、情報共有装置Aの第一の識別子であるID1A、上記第一長期秘密鍵sk1A及び上記第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号ステップと、
上記情報共有装置Aが、上記公開鍵mpk2A、上記ID2A、上記第二長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号ステップと、
上記情報共有装置Aが、上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成ステップと、
上記情報共有装置Bが、上記マスタ公開鍵mpk1、上記ID1B、上記第一長期秘密鍵sk1B及び第一交換情報C1Aを用いて、上記復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号ステップと、
上記情報共有装置Bが、上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成ステップと、を含む、
情報共有方法。
【請求項9】
他の情報共有装置と情報を共有する情報共有装置において、
セキュリティパラメータkは正の整数であり、
第一短期秘密鍵r’1A∈{0,1}k及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、
長期公開鍵pk1B及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、
第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する鍵生成部と、
上記第一交換情報C1A及び上記公開鍵pk2Aを上記他の情報共有装置に送信する送信部と、
第一交換情報C1B及び第二交換情報C2Bを上記他の情報共有装置から受信する受信部と、
長期公開鍵pk1A、上記長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、
上記公開鍵pk2A、上記長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む、
情報共有装置。
【請求項10】
他の情報共有装置と情報を共有する情報共有装置において、
セキュリティパラメータkは正の整数であり、
第一交換情報C1A及び公開鍵pk2Aを上記他の情報共有装置から受信する受信部と、
第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、
長期公開鍵pk1A及び上記合成秘密鍵r1Bを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、
上記公開鍵pk2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、所定の暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、
上記第一交換情報C1B及び上記第二交換情報C2Bを上記他の情報共有装置に送信する送信部と、
上記長期公開鍵pk1B、上記長期秘密鍵sk1B及び上記第一交換情報C1Aを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、上記長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成部と、を含む、
情報共有装置
【請求項11】
他の情報共有装置と情報を共有する情報共有装置において、
セキュリティパラメータkは正の整数であり、
第一短期秘密鍵r’1A∈{0,1}k及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、
マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、
第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する鍵生成部と、
上記情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択するID選択部と、
上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記他の情報共有装置に送信する送信部と、
第一交換情報C1B及び第二交換情報C2Bを上記他の情報共有装置から受信する受信部と、
上記マスタ公開鍵mpk1、情報共有装置Aの第一の識別子であるID1A、上記第一長期秘密鍵sk1A及び上記第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、
上記公開鍵mpk2A、上記ID2A、上記第二長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む、
情報共有装置。
【請求項12】
他の情報共有装置と情報を共有する情報共有装置において、
セキュリティパラメータkは正の整数であり、
第一交換情報C1A、公開鍵mpk2A及び上記他の情報共有装置の第二の識別子であるID2Aを上記他の情報共有装置から受信する受信部と、
第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、
マスタ公開鍵mpk1、上記他の情報共有装置の第一の識別子であるID1A及び上記合成秘密鍵r1Bを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、
上記公開鍵mpk2A、上記ID2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、所定の暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、
上記第一交換情報C1B及び上記第二交換情報C2Bを上記他の情報共有装置に送信する送信部と、
上記マスタ公開鍵mpk1、上記の情報共有装置の識別子であるID1B、上記第一長期秘密鍵sk1B及び上記第一交換情報C1Aを用いて、所定の復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む、
情報共有装置。
【請求項13】
請求項9から12の何れかの情報共有装置の各部としてコンピュータを機能させるためのプログラム。
【請求項1】
情報共有装置A及び情報共有装置Bで情報を共有する情報共有システムにおいて、
セキュリティパラメータkは正の整数であり、
上記情報共有装置Aは、
第一短期秘密鍵r’1A∈{0,1}k及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、
長期公開鍵pk1B及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、
第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する鍵生成部と、
上記第一交換情報C1A及び上記公開鍵pk2Aを上記情報共有装置Bに送信する送信部と、
第一交換情報C1B及び第二交換情報C2Bを上記情報共有装置Bから受信する受信部と、
長期公開鍵pk1A、上記長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、
上記公開鍵pk2A、上記長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、
を含み、
上記情報共有装置Bは、
上記第一交換情報C1A及び上記公開鍵pk2Aを上記情報共有装置Aから受信する受信部と、
第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、
上記長期公開鍵pk1A及び上記合成秘密鍵r1Bを用いて、上記暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、
上記公開鍵pk2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、上記暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、
上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報共有装置Aに送信する送信部と、
上記長期公開鍵pk1B、上記長期秘密鍵sk1B及び第一交換情報C1Aを用いて、上記復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、上記長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成部と、
を含む、
情報共有システム。
【請求項2】
請求項1の情報共有システムにおいて、
上記合成鍵生成関数は、ハッシュ関数G:{0,1}*→{0,1}kであり、
上記情報生成関数は、ハッシュ関数H:{0,1}*→{0,1}kである、
情報共有システム。
【請求項3】
請求項1の情報共有システムにおいて、
長期秘密鍵tAをtA∈{0,1}k、短期秘密鍵s’1Aをs’1A∈{0,1}k、PRF1及びPRF2を擬似ランダム関数、xorを排他的論理和として、上記情報共有装置Aの合成秘密鍵生成部の合成鍵生成関数は、PRF1(tA,r’1A)xorPRF2(s’1A,tA)であり、
長期秘密鍵tBをtB∈{0,1}k、短期秘密鍵s’1Bをs’1B∈{0,1}kとして、上記情報共有装置Bの合成秘密鍵生成部の合成鍵生成関数は、PRF1(tB,r’1B)xorPRF2(s’1B,tB)であり、
Extをランダムネスエクストラクタ、PRF3を擬似ランダム関数、sid={pk1A,pk1B,C1A,pk2A,C1B,C2B}、L1A=Ext(K1A)、L1B=Ext(K1B)、L2B=Ext(K2B)として、上記情報生成関数は、PRF3(L1A,sid)xorPRF3(L1B,sid)xorPRF3(L2B,sid)である、
情報共有システム。
【請求項4】
情報共有装置A及び情報共有装置Bで情報を共有する情報共有システムにおいて、
セキュリティパラメータkは正の整数であり、
上記情報共有装置Aは、
第一短期秘密鍵r’1A∈{0,1}k及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、
マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、
第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する鍵生成部と、
上記情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択するID選択部と、
上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記情報共有装置Bに送信する送信部と、
第一交換情報C1B及び第二交換情報C2Bを上記情報共有装置Bから受信する受信部と、
上記マスタ公開鍵mpk1、情報共有装置Aの第一の識別子であるID1A、上記第一長期秘密鍵sk1A及び上記第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、
上記公開鍵mpk2A、上記ID2A、上記第二長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、
を含み、
上記情報共有装置Bは、
上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記情報共有装置Aから受信する受信部と、
第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを上記合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、
上記マスタ公開鍵mpk1、上記ID1A及び上記合成秘密鍵r1Bを用いて、上記暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、
上記公開鍵mpk2A、上記ID2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、上記暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、
上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報共有装置Aに送信する送信部と、
上記マスタ公開鍵mpk1、上記ID1B、上記第一長期秘密鍵sk1B及び第一交換情報C1Aを用いて、上記復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成部と、
を含む、
情報共有システム。
【請求項5】
請求項4の情報共有システムにおいて、
上記合成鍵生成関数は、ハッシュ関数G:{0,1}*→{0,1}kであり、
上記情報生成関数は、ハッシュ関数H:{0,1}*→{0,1}kである、
情報共有システム。
【請求項6】
請求項4の情報共有システムにおいて、
上記情報共有装置Aの合成秘密鍵生成部の合成鍵生成関数は、長期秘密鍵tAをtA∈{0,1}k、短期秘密鍵s’1Aをs’1A∈{0,1}k、PRF1及びPRF2を擬似ランダム関数、xorを排他的論理和として、PRF1(tA,r’1A)xorPRF2(s’1A,tA)であり、
上記情報共有装置Bの合成秘密鍵生成部の合成鍵生成関数は、長期秘密鍵tBをtB∈{0,1}k、短期秘密鍵s’1Bをs’1B∈{0,1}kとして、PRF1(tB,r’1B)xorPRF2(s’1B,tB)であり、
Extをランダムネスエクストラクタ、PRF3を擬似ランダム関数、sid={ID1A,ID1B,C1A,mpk2A,ID2A,C1B,C2B,}、L1A=Ext(K1A)、L1B=Ext(K1B)、L2B=Ext(K2B)として、上記情報生成関数は、PRF3(L1A,sid)xorPRF3(L1B,sid)xorPRF3(L2B,sid)である、
情報共有システム。
【請求項7】
情報共有装置A及び情報共有装置Bで情報を共有する情報共有方法において、
セキュリティパラメータkは正の整数であり、
上記情報共有装置Aが、第一短期秘密鍵r’1A∈{0,1}k及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成ステップと、
上記情報共有装置Aが、長期公開鍵pk1B及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化ステップと、
上記情報共有装置Aが、第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する鍵生成ステップと、
上記情報共有装置Aが、上記第一交換情報C1A及び上記公開鍵pk2Aを上記情報共有装置Bに送信する送信ステップと、
上記情報共有装置Bが、上記第一交換情報C1A及び上記公開鍵pk2Aを上記情報共有装置Aから受信する受信ステップと、
上記情報共有装置Bが、第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成ステップと、
上記情報共有装置Bが、上記長期公開鍵pk1A及び上記合成秘密鍵r1Bを用いて、上記暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化ステップと、
上記情報共有装置Bが、上記公開鍵pk2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、上記暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化ステップと、
上記情報共有装置Bが、上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報共有装置Aに送信する送信ステップと、
上記情報共有装置Aが、第一交換情報C1B及び第二交換情報C2Bを上記情報共有装置Bから受信する受信ステップと、
上記情報共有装置Aが、長期公開鍵pk1A、上記長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号ステップと、
上記情報共有装置Aが、上記公開鍵pk2A、上記長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号ステップと、
上記情報共有装置Aが、上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、上記長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成ステップと、
上記情報共有装置Bが、上記長期公開鍵pk1B、上記長期秘密鍵sk1B及び第一交換情報C1Aを用いて、上記復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号ステップと、
上記情報共有装置Bが、上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、上記長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成ステップと、を含む、
情報共有方法。
【請求項8】
情報共有装置A及び情報共有装置Bで情報を共有する情報共有方法において、
セキュリティパラメータkは正の整数であり、
上記情報共有装置Aが、第一短期秘密鍵r’1A∈{0,1}k及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成ステップと、
上記情報共有装置Aが、マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化ステップと、
上記情報共有装置Aが、第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する鍵生成ステップと、
上記情報共有装置Aが、上記情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択するID選択ステップと、
上記情報共有装置Aが、上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記情報共有装置Bに送信する送信ステップと、
上記情報共有装置Bが、上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記情報共有装置Aから受信する受信ステップと、
上記情報共有装置Bが、第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを上記合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成ステップと、
上記情報共有装置Bが、上記マスタ公開鍵mpk1、上記ID1A及び上記合成秘密鍵r1Bを用いて、上記暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化ステップと、
上記情報共有装置Bが、上記公開鍵mpk2A、上記ID2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、上記暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化ステップと、
上記情報共有装置Bが、上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報共有装置Aに送信する送信ステップと、
上記情報共有装置Aが、第一交換情報C1B及び第二交換情報C2Bを上記情報共有装置Bから受信する受信ステップと、
上記情報共有装置Aが、上記マスタ公開鍵mpk1、情報共有装置Aの第一の識別子であるID1A、上記第一長期秘密鍵sk1A及び上記第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号ステップと、
上記情報共有装置Aが、上記公開鍵mpk2A、上記ID2A、上記第二長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号ステップと、
上記情報共有装置Aが、上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成ステップと、
上記情報共有装置Bが、上記マスタ公開鍵mpk1、上記ID1B、上記第一長期秘密鍵sk1B及び第一交換情報C1Aを用いて、上記復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号ステップと、
上記情報共有装置Bが、上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成ステップと、を含む、
情報共有方法。
【請求項9】
他の情報共有装置と情報を共有する情報共有装置において、
セキュリティパラメータkは正の整数であり、
第一短期秘密鍵r’1A∈{0,1}k及び長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、
長期公開鍵pk1B及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、
第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵sk2A及び公開鍵pk2Aを生成する鍵生成部と、
上記第一交換情報C1A及び上記公開鍵pk2Aを上記他の情報共有装置に送信する送信部と、
第一交換情報C1B及び第二交換情報C2Bを上記他の情報共有装置から受信する受信部と、
長期公開鍵pk1A、上記長期秘密鍵sk1A及び第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、
上記公開鍵pk2A、上記長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む、
情報共有装置。
【請求項10】
他の情報共有装置と情報を共有する情報共有装置において、
セキュリティパラメータkは正の整数であり、
第一交換情報C1A及び公開鍵pk2Aを上記他の情報共有装置から受信する受信部と、
第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、
長期公開鍵pk1A及び上記合成秘密鍵r1Bを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、
上記公開鍵pk2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、所定の暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、
上記第一交換情報C1B及び上記第二交換情報C2Bを上記他の情報共有装置に送信する送信部と、
上記長期公開鍵pk1B、上記長期秘密鍵sk1B及び上記第一交換情報C1Aを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Aを生成する復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記長期公開鍵pk1A、上記長期公開鍵pk1B、上記第一交換情報C1A、上記公開鍵pk2A、上記第一交換情報C1B、上記第二交換情報C2Bを上記情報生成関数に入力したときの出力値を計算する情報生成部と、を含む、
情報共有装置
【請求項11】
他の情報共有装置と情報を共有する情報共有装置において、
セキュリティパラメータkは正の整数であり、
第一短期秘密鍵r’1A∈{0,1}k及び第一長期秘密鍵sk1Aを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1A∈{0,1}kとする合成秘密鍵生成部と、
マスタ公開鍵mpk1、情報共有装置Bの識別子であるID1B∈{0,1}k及び上記合成秘密鍵r1Aを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1A及び第一共有情報K1Aを生成する暗号化部と、
第二短期秘密鍵r2A∈{0,1}kを用いて、所定の鍵生成アルゴリズムKeyGenにより、秘密鍵msk2A及び公開鍵mpk2Aを生成する鍵生成部と、
上記情報共有装置Aの第二の識別子であるID2A∈{0,1}kを選択するID選択部と、
上記第一交換情報C1A、上記公開鍵mpk2A及び上記ID2Aを上記他の情報共有装置に送信する送信部と、
第一交換情報C1B及び第二交換情報C2Bを上記他の情報共有装置から受信する受信部と、
上記マスタ公開鍵mpk1、情報共有装置Aの第一の識別子であるID1A、上記第一長期秘密鍵sk1A及び上記第一交換情報C1Bを用いて、所定の復号化アルゴリズムDeCapにより、第一共有情報K1Bを生成する第一復号部と、
上記公開鍵mpk2A、上記ID2A、上記第二長期秘密鍵sk2A及び上記第二交換情報C2Bを用いて、所定の復号化アルゴリズムDeCapにより、第二共有情報K2Bを生成する第二復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む、
情報共有装置。
【請求項12】
他の情報共有装置と情報を共有する情報共有装置において、
セキュリティパラメータkは正の整数であり、
第一交換情報C1A、公開鍵mpk2A及び上記他の情報共有装置の第二の識別子であるID2Aを上記他の情報共有装置から受信する受信部と、
第一短期秘密鍵r’1B∈{0,1}k及び長期秘密鍵sk1Bを所定の合成鍵生成関数に入力したときの出力値を合成秘密鍵r1B∈{0,1}kとする合成秘密鍵生成部と、
マスタ公開鍵mpk1、上記他の情報共有装置の第一の識別子であるID1A及び上記合成秘密鍵r1Bを用いて、所定の暗号化アルゴリズムEnCapにより、第一交換情報C1B及び第一共有情報K1Bを生成する第一暗号化部と、
上記公開鍵mpk2A、上記ID2A及び第二短期秘密鍵r2B∈{0,1}kを用いて、所定の暗号化アルゴリズムEnCapにより、第二交換情報C2B及び第二共有情報K2Bを生成する第二暗号化部と、
上記第一交換情報C1B及び上記第二交換情報C2Bを上記他の情報共有装置に送信する送信部と、
上記マスタ公開鍵mpk1、上記の情報共有装置の識別子であるID1B、上記第一長期秘密鍵sk1B及び上記第一交換情報C1Aを用いて、所定の復号化アルゴリズムDeCapにより、上記第一共有情報K1Aを生成する復号部と、
上記第一共有情報K1A、上記第一共有情報K1B、上記第二共有情報K2B、上記ID1A、上記ID1B、上記第一交換情報C1A、上記公開鍵mpk2A、上記ID2A、上記第一交換情報C1B及び上記第二交換情報C2Bを所定の情報生成関数に入力したときの出力値を計算する情報生成部と、を含む、
情報共有装置。
【請求項13】
請求項9から12の何れかの情報共有装置の各部としてコンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【公開番号】特開2012−134744(P2012−134744A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−284725(P2010−284725)
【出願日】平成22年12月21日(2010.12.21)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願日】平成22年12月21日(2010.12.21)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]