説明

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

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

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報セキュリティ技術に関する。特に、二者間で同じ情報を共有するための技術に関する。
【背景技術】
【0002】
二者間でセッション鍵等の情報を共有する技術として、以下のようなHMQV、NAXOSが知られている。HMQVの詳細については非特許文献1、NAXOSの詳細については非特許文献2を参照のこと。
【0003】
『HMQV方式』
HMQVは、次のような方式である。HMQVの概要を図6に示す。
【0004】
<公開パラメータ>Gをkbitの素数位数pの巡回群、gをGの生成元、H:{0,1}*→ZpとH’:{0,1}*→{0,1}kをハッシュ関数とする。
【0005】
<鍵生成>鍵生成者は、ユーザUAに対して、長期秘密鍵a∈Zpを計算し、長期公開鍵A=gaを公開する。同様にユーザUBに対して、長期秘密鍵b∈Zpを計算し、長期公開鍵B=gbを公開する。
【0006】
<鍵交換>長期秘密鍵aをもつユーザUAと、長期秘密鍵bをもつユーザUBは、以下のようにして認証鍵交換を行い共有鍵Kを共有する。
【0007】
1.ユーザUAは、短期秘密鍵x∈Zpをランダムに選び、短期公開鍵をX=gxとし、ユーザUBに送る。
【0008】
2.ユーザUBは、Xを受信し、短期秘密鍵y∈Zpをランダムに選び、短期公開鍵をY=gyとし、ユーザUAに送る。
【0009】
ユーザUBは、d=H(X,UB)、e=H(Y,UA)、σ=(XAd)y+ebを計算し、共有鍵K=H’(σ)を得る。
【0010】
3.ユーザUAは、Yを受信し、d=H(X,UB)、e=H(Y,UA)、σ=(YBe)x+daを計算し、共有鍵K=H’(σ)を得る。
【0011】
共有秘密情報は両方のユーザが計算した
σ=(XAd)y+eb=(YBe)x+da=g(x+da)(y+eb)
から得られるので、両者で計算した共有鍵Kは一致する。
【0012】
このようにして、同一の共有情報である共有鍵Kが共有される。
【0013】
『NAXOS方式』
NAXOSは、次のような方式である。NAXOSの概要を図7に示す。
【0014】
<公開パラメータ>Gをkbitの素数位数pの巡回群、gをGの生成元、H:{0,1}→ZpとH’:{0,1}→{0,1}kをハッシュ関数とする。
【0015】
<鍵生成>鍵生成者は、ユーザUAに対して、長期秘密鍵a∈Zpを計算し、長期公開鍵A=gaを公開する。同様にユーザUBに対して、長期秘密鍵b∈Zpを計算し、長期公開鍵B=gbを公開する。
【0016】
<鍵交換>長期秘密鍵aをもつユーザUAと、長期秘密鍵bをもつユーザUBは、以下のようにして認証鍵交換を行い共有鍵Kを共有する。
【0017】
1.ユーザUAは、短期秘密鍵x∈Zpをランダムに選び、x~=H(x,a)を計算し、短期公開鍵をX=gx~とし、ユーザUBに送る。
【0018】
2.ユーザUBは、Xを受信し、短期秘密鍵y∈Zpをランダムに選び、y~=H(y,b)を計算し、短期公開鍵をY=gy~とし、ユーザUAに送る。
【0019】
ユーザUBは、σ1=Ay~、σ2=Xb、σ3=Xy~を計算し、共有鍵K=H’(σ123,UA,UB)を得る。
【0020】
3.ユーザUAは、Yを受信し、σ1=Ya、σ2=Bx~、σ3=Yx~を計算し、共有鍵K=H’(σ123,UA,UB)を得る。
【0021】
共有秘密情報は両方のユーザが計算した
σ1=gy~a2=gx~b3=gx~y~
から得られるので、両者で計算した共有鍵Kは一致する。
【0022】
このようにして、同一の共有情報である共有鍵Kが共有される。
【先行技術文献】
【非特許文献】
【0023】
【非特許文献1】Hugo Krawczyk, “HMQV: A High-Performance Secure Diffie-Hellman Protocol”, CRYPTO2005
【非特許文献2】Brian LaMacchia, Kristin Lauter, Anton Mityagin, “Stronger Security of Authenticated Key Exchange”, ProvSec2007
【発明の概要】
【発明が解決しようとする課題】
【0024】
背景技術に記載した技術では、安全性を保証するためにいわゆるギャップ問題の難しさを仮定する必要がある。ギャップ問題とは、探索問題を解くために判定オラクルの利用を許した問題のことであり、一般にいわゆる探索問題よりも解きやすい問題となる。よって、ギャップ問題の難しさを仮定するよりも、探索問題の難しさを仮定した方が仮定を弱めることができるので望ましい。
【0025】
この発明の課題は、探索問題の難しさを仮定することにより安全性が保証される情報共有システム、方法、装置及びプログラムを提供することである。
【課題を解決するための手段】
【0026】
この発明の一態様による情報共有システムは、nを正の整数とし、1≦i≦nとし、Hi:{0,1}*→Zpをハッシュ関数とし、di,eiを所定の定数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a1,a2∈Zpを情報共有装置Uの長期秘密鍵とし、A1=ga1,A2=ga2を情報共有装置Uの長期公開鍵とし、b1,b2∈Zpを情報共有装置Uの長期秘密鍵とし、B1=gb1,B2=gb2を情報共有装置Uの長期公開鍵として、短期秘密鍵x∈Zpを生成する短期秘密鍵生成部と、短期公開鍵をX=gxを計算する短期公開鍵生成部と、短期公開鍵Xを情報共有装置Uに送信する送信部と、短期公開鍵Yを情報共有装置Uから受信する受信部と、1≦i≦nのそれぞれのiについてのσi1=(YB1ei)x+dia1、σi1’=(YB2ei)x+dia1、σi2=(YB1ei)x+dia2、σi2’=(YB2ei)x+dia2を計算する共有秘密情報計算部と、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、を含む情報共有装置Uと、短期秘密鍵y∈Zpを生成する短期秘密鍵生成部と、短期公開鍵をY=gyを計算する短期公開鍵生成部と、短期公開鍵Yを情報共有装置Uに送信する送信部と、短期公開鍵Xを情報共有装置Uから受信する受信部と、1≦i≦nのそれぞれのiについてのσi1=(XA1di)y+eib1、σi1’=(XA1di)y+eib2、σi2=(XA2di)y+eib1、σi2’=(XA2di)y+eib2を計算する共有秘密情報計算部と、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、を含む情報共有装置Uと、を含む。
【0027】
この発明の一態様による情報共有システムは、nを正の整数とし、1≦i≦nとし、Hi:{0,1}*→Zpをハッシュ関数とし、di1,di2,ei1,ei2を所定の定数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a∈Zpを情報共有装置Uの長期秘密鍵とし、A=gaを情報共有装置Uの長期公開鍵とし、b∈Zpを情報共有装置Uの長期秘密鍵とし、B=gaを情報共有装置Uの長期公開鍵として、短期秘密鍵x1,x2∈Zpを生成する短期秘密鍵生成部と、短期公開鍵をX1=gx1,X2=gx2を計算する短期公開鍵生成部と、短期公開鍵X1,X2を情報共有装置Uに送信する送信部と、短期公開鍵Y1,Y2を情報共有装置Uから受信する受信部と、1≦i≦nのそれぞれのiについてのσi1=(Y1Bei1)x1+di1a、σi1’=(Y2Bei2)x1+di1a、σi2=(Y1Bei1)x2+di2a、σi2’=(Y2Bei2)x2+di2aを計算する共有秘密情報計算部と、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、を含む情報共有装置Uと、短期秘密鍵y1,y2∈Zpを生成する短期秘密鍵生成部と、短期公開鍵をY1=gy1,Y2=gy2を計算する短期公開鍵生成部と、短期公開鍵Y1,Y2を情報共有装置Uに送信する送信部と、短期公開鍵X1,X2を情報共有装置Uから受信する受信部と、1≦i≦nのそれぞれのiについてのσi1=(X1Adi1)y1+ei1b、σi1’=(X1Adi1)y2+ei2b、σi2=(X2Adi2)y1+ei1b、σi2’=(X2Adi2)y2+ei2bを計算する共有秘密情報計算部と、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、を含む情報共有装置Uと、を含む。
【0028】
この発明の一態様による情報共有システムは、H:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a1,a2∈Zpを情報共有装置Uの長期秘密鍵とし、A1=ga1,A2=ga2を情報共有装置Uの長期公開鍵とし、b1,b2∈Zpを情報共有装置Uの長期秘密鍵とし、B1=gb1,B2=gb2を情報共有装置Uの長期公開鍵とし、UAを情報共有装置Uに対応する所定の値とし、UBは情報共有装置Uに対応する所定の値とし、UAを情報共有装置Uに対応する所定の値とし、UBを情報共有装置Uに対応する所定の値として、
短期秘密鍵x∈Zpを生成する短期秘密鍵生成部と、x~1=H(x,a1),x~2=H(x,a2)を計算するハッシュ値計算部と、短期公開鍵X1=gx~1,X2=gx~2を計算する短期公開鍵生成部と、短期公開鍵X1,X2を情報共有装置Uに送信する送信部と、短期公開鍵Y1,Y2を情報共有装置Uから受信する受信部と、σ1=Y1a1、σ1’=Y1a2、σ2=Y2a1、σ2’=Y2a2、σ3=B1x~1、σ3’=B1x~2、σ4=B2x~1、σ4’=B2x~2、σ5=Y1x~1、σ5’=Y2x~1、σ6=Y1x~2、σ6’=Y2x~2を計算する共有秘密情報計算部と、F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成部と、を含む情報共有装置Uと、短期秘密鍵y∈Zpを生成する短期秘密鍵生成部と、y~1=H(y,b1),y~2=H(y,b2)を計算するハッシュ値計算部と、短期公開鍵Y1=gy~1,Y2=gy~2を計算する短期公開鍵生成部と、短期公開鍵Y1,Y2を情報共有装置Uに送信する送信部と、短期公開鍵X1,X2を情報共有装置Uから受信する受信部と、nを正の整数とし、1≦i≦nのそれぞれのiについてのσ1=A1y~1、σ1’=A2y~1、σ2=A1y~2、σ2’=A2y~2、σ3=X1b1、σ3’=X2b1、σ4=X1b2、σ4’=X2b2、σ5=X1y~1、σ5’=X1y~2、σ6=X2y~1、σ6’=X2y~2を計算する共有秘密情報計算部と、F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成部と、を含む情報共有装置Uと、を含む。
【0029】
この発明の一態様による情報共有システムは、H:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a∈Zpを情報共有装置Uの長期秘密鍵とし、A=gaを情報共有装置Uの長期公開鍵とし、b∈Zpを情報共有装置Uの長期秘密鍵とし、B=gbを情報共有装置Uの長期公開鍵とし、UAを情報共有装置Uに対応する所定の値とし、UBを情報共有装置Uに対応する所定の値として、短期秘密鍵x1,x2∈Zpを生成する短期秘密鍵生成部と、x~1=H(x1,a)、x~2=H(x2,a)を計算するハッシュ値計算部と、短期公開鍵X1=gx~1,X2=gx~2を計算する短期公開鍵生成部と、短期公開鍵X1,X2を情報共有装置Uに送信する送信部と、短期公開鍵Y1,Y2を情報共有装置Uから受信する受信部と、σ1=Y1a、σ1’=Y2a、σ2=Bx~1、σ2’=Bx~2、σ3=Y1x~1、σ3’=Y1x~2、σ4=Y2x~1、σ4’=Y2x~2を計算する共有秘密情報計算部と、F(σ11’,σ22’,σ33’,σ44’,UA,UB)を計算する共有情報生成部と、を含む情報共有装置Uと、短期秘密鍵y1,y2∈Zpを生成する短期秘密鍵生成部と、y~1=H(y1,b)、y~2=H(y2,b)を計算するハッシュ値計算部と、短期公開鍵Y1=gy~1,Y2=gy~2を計算する短期公開鍵生成部と、短期公開鍵Y1,Y2を情報共有装置Uに送信する送信部と、短期公開鍵X1,X2を情報共有装置Uから受信する受信部と、σ1=Ay~1、σ1’=Ay~2、σ2=X1b、σ2’=X2b、σ3=X1y~1、σ3’=X2y~1、σ4=X1y~2、σ4’=X2y~2を計算する共有秘密情報計算部と、F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成部と、を含む情報共有装置Uと、を含む。
【発明の効果】
【0030】
探索問題の難しさを仮定して安全性を保証することができる。
【図面の簡単な説明】
【0031】
【図1】情報共有システムの構成を説明するためのブロック図。
【図2】情報共有装置Uの構成を説明するためのブロック図。
【図3】情報共有装置Uの構成を説明するためのブロック図。
【図4】情報共有装置Uの処理を説明するためのフローチャート。
【図5】情報共有装置Uの処理を説明するためのフローチャート。
【図6】従来のHMQVの概要を説明するための図。
【図7】長期鍵二重化HMQVの概要を説明するための図。
【図8】短期鍵二重化HMQVの概要を説明するための図。
【図9】従来のNAXOSの概要を説明するための図。
【図10】長期鍵二重化NAXOSの概要を説明するための図。
【図11】短期鍵二重化NAXOSの概要を説明するための図。
【発明を実施するための形態】
【0032】
以下、図面を参照してこの発明の一実施形態を説明する。
【0033】
[第一実施形態]
まず、第一実施形態のアルゴリズムである長期鍵二重化HMQVについて説明する。
【0034】
『長期鍵二重化HMQV』
長期鍵二重化HMQVは、次のような方式である。長期鍵二重化HMQVの概要を図7に示す。
【0035】
<公開パラメータ>Gをkbitの素数位数pの巡回群、gをGの生成元、Hi:{0,1}*→Zp及びH’:{0,1}*→{0,1}kをハッシュ関数とする。kは、セキュリティパラメータであり正の整数である。また、1≦i≦nでありnは正の整数である。
【0036】
<鍵生成>鍵生成者は、ユーザUAに対して、長期秘密鍵a1,a2∈Zpを計算し、長期公開鍵A1=ga1,A2=ga2を公開する。
【0037】
ga1の右肩の「a1」は「a1」を意味する。このように、この明細書、特許請求の範囲及び図面において、ある文字の上付きの文字及び数字の一部がその上付きの中で更に上付き又は下付きである場合がある点に留意する。同様に、ある文字の下付きの文字及び数字の一部がその下付きの中で更に上付き又は下付きである場合がある点に留意する。
【0038】
鍵生成者は、同様にユーザUBに対して、長期秘密鍵b1,b2∈Zpを計算し、長期公開鍵B1=gb1,B2=gb2を公開する。
【0039】
<鍵交換>長期秘密鍵a1,a2をもつユーザUAと、長期秘密鍵b1,b2をもつユーザUBは、以下のようにして認証鍵交換を行い共有情報Kを共有する。共有情報Kは、例えば共有鍵として用いられる。
【0040】
1.ユーザUAは、短期秘密鍵x∈Zpをランダムに選び、短期公開鍵をX=gxとし、ユーザUBに送る。
【0041】
2.ユーザUBは、Xを受信し、短期秘密鍵y∈Zpをランダムに選び、短期公開鍵をY=gyとし、ユーザUAに送る。
【0042】
ユーザUBは、1≦i≦nについて、di=Hi(X,UB)、ei=Hi(Y,UA)、σi1=(XA1di)y+eib1、σi1’=(XA1di)y+eib2、σi2=(XA2di)y+eib1、σi2’=(XA2di)y+eib2を計算し、共有情報K=H’(σ1111’, σ1212’,…,σn1n1’,σn2n2’)を得る。ただし、nは正の整数。diとeiは、di=Hi(X,UB)、ei=Hi(Y,UA)以外の事前に定められた定数であっても良い。
【0043】
3.ユーザUAは、Yを受信し、1≦i≦nについて、di=Hi(X,UB)、ei=Hi(Y,UA)、σi1=(YB1ei)x+dia1、σi1’=(YB2ei)x+dia1、σi2=(YB1ei)x+dia2、σi2’=(YB2ei)x+dia2を計算し、共有情報K=H’(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を得る。diとeiは、di=Hi(X,UB)、ei=Hi(Y,UA)以外の事前に定められた定数であっても良い。
【0044】
共有秘密情報は両方のユーザが計算した
σi1=g(x+dia1)(y+eib1)i1’=g(x+dia1)(y+eib2)i2=g(x+dia2)(y+eib1)i2’=g(x+dia2)(y+eib2)
から得られるので、両者で計算した共有情報Kは一致する。
【0045】
次に、上記『長期鍵二重化HMQV』の欄で説明したアルゴリズムを実行する情報共有システムの一例を説明する。この情報共有システムは、図1に例示するように、情報共有装置U及び情報共有装置Uから構成される。
【0046】
情報共有装置Uが『長期鍵二重化HMQV』の欄で説明したユーザUに対応し、情報共有装置Uが『長期鍵二重化HMQV』の欄で説明したユーザUに対応する。情報共有装置Uは図4に例示した処理を行い、情報共有装置Uは図5に例示した処理を行う。
【0047】
情報共有装置Uは、図2に示すように、記憶部10、短期秘密鍵生成部11、短期公開鍵生成部12、送信部13、受信部14、共有秘密情報生成部15、共有情報生成部16を例えば含む。
【0048】
情報共有装置Uは、図3に示すように、記憶部20、短期秘密鍵生成部21、短期公開鍵生成部22、送信部23、受信部24、共有秘密情報生成部25、共有情報生成部26を例えば含む。
【0049】
情報共有の前に、ハッシュ関数Hi、セキュリティパラメータk、群G及び生成元g等の情報共有のために必要なパラメータが設定され、必要に応じて記憶部10及び記憶部20に記憶されているものとする。
【0050】
また、情報共有の前に、情報共有装置Uには、長期秘密鍵a1,a2及び長期公開鍵A1,A2が予め定められ、必要に応じて記憶部10に記憶されているものとする。同様に、情報共有の前に、情報共有装置Uには、長期秘密鍵b1,b2及び長期公開鍵B1,B2が予め定められ、必要に応じて記憶部10に記憶されているものとする。長期秘密鍵a1,a2,b1,b2及び長期公開鍵A1,A2,B1,B2の計算は、鍵生成装置3(図1)により行われる。
【0051】
これらの記憶部10及び20に記憶されたデータは、適宜読み出されて以下に説明する計算が行われる。
【0052】
情報共有装置Uの短期秘密鍵生成部11(図2)は、短期秘密鍵x∈Zpを生成する(ステップA1)。例えば、Zpの中から一様ランダムに元を選び短期秘密鍵xとする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵xは、短期公開鍵生成部12に送信される。
【0053】
情報共有装置Uの短期公開鍵生成部12は、短期秘密鍵xを用いて短期公開鍵X=gxを計算する(ステップA2)。短期公開鍵Xは、共有秘密情報生成部15及び送信部13に送信される。
【0054】
情報共有装置Uの送信部13は、短期公開鍵Xを情報共有装置Uに送信する(ステップA3)。
【0055】
情報共有装置Uの短期秘密鍵生成部21(図3)は、短期秘密鍵y∈Zpを生成する(ステップB1)。例えば、Zpの中から一様ランダムに元を選び短期秘密鍵yとする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵yは、短期公開鍵生成部22に送信される。
【0056】
情報共有装置Uの短期公開鍵生成部22は、短期秘密鍵yを用いて短期公開鍵Y=gyを計算する(ステップB2)。短期公開鍵Yは、共有秘密情報生成部25及び送信部23に送信される。
【0057】
情報共有装置Uの送信部23は、短期公開鍵Yを情報共有装置Uに送信する(ステップB4)。
【0058】
情報共有装置Uの受信部24は、短期公開鍵Xを情報共有装置Uから受信する(ステップB5)。
【0059】
情報共有装置Uの共有秘密情報生成部25は、1≦i≦nのそれぞれのiについての共有秘密情報σi1=(XA1di)y+eib1、σi1’=(XA1di)y+eib2、σi2=(XA2di)y+eib1、σi2’=(XA2di)y+eib2を計算する(ステップB6)。すなわち、計4n個の共有秘密情報σ11,σ11’,σ21,σ21’,…σ1n,σ1n’,σ2n,σ2n’を計算する。計算された共有秘密情報は、共有情報生成部26に送信される。
【0060】
ここで、di及びeiは、所定の定数である。例えば、di=Hi(X,UB),ei=Hi(Y,UA)である。第一実施形態の情報共有装置Uは、補助情報di=Hi(X,UB)、ei=Hi(Y,UA)を計算する補助情報生成部28を有していても良い。
【0061】
情報共有装置Uの共有情報生成部26は、H’(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算して、その計算結果を共有情報Kとする(ステップB7)。この共有情報Kは、例えば認証鍵として用いられる。
【0062】
情報共有装置Uの受信部14(図2)は、短期公開鍵Yを情報共有装置Uから受信する(ステップA4)。
【0063】
情報共有装置Uの共有秘密情報生成部15は、1≦i≦nのそれぞれのiについてのσi1=(YB1ei)x+dia1、σi1’=(YB2ei)x+dia1、σi2=(YB1ei)x+dia2、σi2’=(YB2ei)x+dia2を計算する(ステップA5)。すなわち、計4n個の共有秘密情報σ11,σ11’,σ21,σ21’,…σ1n,σ1n’,σ2n,σ2n’を計算する。計算された共有秘密情報は、共有情報生成部16に送信される。
【0064】
ここで、di及びeiは、所定の定数である。例えば、di=Hi(X,UB),ei=Hi(Y,UA)である。第一実施形態の情報共有装置Uは、補助情報di=Hi(X,UB)、ei=Hi(Y,UA)を計算する補助情報生成部18を有していても良い。
【0065】
情報共有装置Uの共有情報生成部16は、H’(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算して、その計算結果を共有情報Kとする(ステップA6)。この共有情報Kは、例えば認証鍵として用いられる。
【0066】
このようにして、情報共有が行われる。
【0067】
[第二実施形態]
まず、第二実施形態のアルゴリズムである長期鍵二重化HMQVについて説明する。
【0068】
『短期鍵二重化HMQV』
短期鍵二重化HMQVは、次のような方式である。短期鍵二重化HMQVの概要を図8に示す。
【0069】
<公開パラメータ>Gをkbitの素数位数pの巡回群、gをGの生成元、Hi:{0,1}*→Zp及びH’:{0,1}*→{0,1}kをハッシュ関数とする。kは、セキュリティパラメータであり正の整数である。また、1≦i≦nでありnは正の整数である。
【0070】
<鍵生成>鍵生成者は、ユーザUAに対して、長期秘密鍵a∈Zpを計算し、長期公開鍵A=gaを公開する。
【0071】
<鍵交換>長期秘密鍵aをもつユーザUAと、長期秘密鍵bをもつユーザUBは、以下のようにして認証鍵交換を行い共有情報Kを共有する。共有情報Kは、例えば共有鍵として用いられる。
【0072】
1.ユーザUAは、短期秘密鍵x1,x2∈Zpをランダムに選び、短期公開鍵をX1=gx1,X2=gx2とし、ユーザUBに送る。
【0073】
2.ユーザUBは、X1,X2を受信し、短期秘密鍵y1,y2∈Zpをランダムに選び、短期公開鍵をY1=gy1,Y2=gy2とし、ユーザUAに送る。
【0074】
ユーザUBは、1≦i≦nについて、di1=Hi(X1,UB)、di2=Hi(X2,UB)、ei1=Hi(Y1,UA)、ei2=Hi(Y2,UA)、σi1=(X1Adi1)y1+ei1b、σi1’=(X1Adi1)y2+ei2b、σi2=(X2Adi2)y1+ei1b、σi2’=(X2Adi2)y2+ei2bを計算し、共有情報K=H’(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を得る。ただし、nは正の整数。di1,di2,ei1,ei2は、di1=Hi(X1,UB)、di2=Hi(X2,UB)、ei1=Hi(Y1,UA)、ei2=Hi(Y2,UA)以外の事前に定められた定数であっても良い。
【0075】
3.ユーザUAは、Y1,Y2を受信し、1≦i≦nについて、di1=Hi(X1,UB)、di2=Hi(X2,UB)、ei1=Hi(Y1,UA)、ei2=Hi(Y2,UA)、σi1=(Y1Bei1)x1+di1a、σi1’=(Y2Bei2)x1+di1a、σi2=(Y1Bei1)x2+di2a、σi2’=(Y2Bei2)x2+di2aを計算し、共有鍵K=H’(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を得る。ただし、nは正の整数。di1,di2,ei1,ei2は、di1=Hi(X1,UB)、di2=Hi(X2,UB)、ei1=Hi(Y1,UA)、ei2=Hi(Y2,UA)以外の事前に定められた定数であっても良い。
【0076】
共有秘密情報は両方のユーザが計算した
σi1=g(x1+di1a)(y1+ei1b)i1’=g(x1+di1a)(y2+ei2b)i2=g(x2+di2a)(y1+ei1b)i2’=g(x2+di2a)(y2+ei2b)
から得られるので、両者で計算した共有情報Kは一致する。
【0077】
次に、上記『短期鍵二重化HMQV』の欄で説明したアルゴリズムを実行する情報共有システムの一例を説明する。この情報共有システムは、図1に例示するように、情報共有装置U及び情報共有装置Uから構成される。
【0078】
情報共有装置Uが『短期鍵二重化HMQV』の欄で説明したユーザUに対応し、情報共有装置Uが『短期鍵二重化HMQV』の欄で説明したユーザUに対応する。情報共有装置Uは図4に例示した処理を行い、情報共有装置Uは図5に例示した処理を行う。
【0079】
情報共有装置Uは、図2に示すように、記憶部10、短期秘密鍵生成部11、短期公開鍵生成部12、送信部13、受信部14、共有秘密情報生成部15、共有情報生成部16を例えば含む。
【0080】
情報共有装置Uは、図3に示すように、記憶部20、短期秘密鍵生成部21、短期公開鍵生成部22、送信部23、受信部24、共有秘密情報生成部25、共有情報生成部26を例えば含む。
【0081】
情報共有の前に、ハッシュ関数Hi、セキュリティパラメータk、群G及び生成元g等の情報共有のために必要なパラメータが設定され、必要に応じて記憶部10及び記憶部20に記憶されているものとする。
【0082】
また、情報共有の前に、情報共有装置Uには、長期秘密鍵a及び長期公開鍵Aが予め定められ、必要に応じて記憶部10に記憶されているものとする。同様に、情報共有の前に、情報共有装置Uには、長期秘密鍵b及び長期公開鍵Bが予め定められ、必要に応じて記憶部10に記憶されているものとする。長期秘密鍵a,b及び長期公開鍵A,Bの計算は、鍵生成装置3(図1)により行われる。
【0083】
これらの記憶部10及び20に記憶されたデータは、適宜読み出されて以下に説明する計算が行われる。
【0084】
情報共有装置Uの短期秘密鍵生成部11(図2)は、短期秘密鍵x1,x2∈Zpを生成する(ステップA1)。例えば、Zpの中から一様ランダムに2つの元を選びそれぞれ短期秘密鍵x1,x2とする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵x1,x2は、短期公開鍵生成部12に送信される。
【0085】
情報共有装置Uの短期公開鍵生成部12は、短期秘密鍵x1,x2を用いて短期公開鍵X1=gx1,X2=gx2を計算する(ステップA2)。短期公開鍵X1,X2は、共有秘密情報生成部15及び送信部13に送信される。
【0086】
情報共有装置Uの送信部13は、短期公開鍵X1,X2を情報共有装置Uに送信する(ステップA3)。
【0087】
情報共有装置Uの短期秘密鍵生成部21(図3)は、短期秘密鍵y1,y2∈Zpを生成する(ステップB1)。例えば、Zpの中から一様ランダムに2つの元を選びそれぞれ短期秘密鍵y1,y2とする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵yは、短期公開鍵生成部22に送信される。
【0088】
情報共有装置Uの短期公開鍵生成部22は、短期秘密鍵y1,y2を用いて短期公開鍵Y1=gy1,Y2=gy2を計算する(ステップB2)。短期公開鍵Y1=gy1,Y2=gy2は、共有秘密情報生成部25及び送信部23に送信される。
【0089】
情報共有装置Uの送信部23は、短期公開鍵Y1,Y2を情報共有装置Uに送信する(ステップB4)。
【0090】
情報共有装置Uの受信部24は、短期公開鍵X1,X2を情報共有装置Uから受信する(ステップB5)。
【0091】
情報共有装置Uの共有秘密情報生成部25は、1≦i≦nのそれぞれのiについての共有秘密情報σi1=(X1Adi1)y1+ei1b、σi1’=(X1Adi1)y2+ei2b、σi2=(X2Adi2)y1+ei1b、σi2’=(X2Adi2)y2+ei2bを計算する(ステップB6)。すなわち、計4n個の共有秘密情報σ11,σ11’,σ21,σ21’,…σ1n,σ1n’,σ2n,σ2n’を計算する。計算された共有秘密情報は、共有情報生成部26に送信される。
【0092】
ここで、di1,di2,ei1,ei2は、所定の定数である。例えば、di1=Hi(X1,UB)、di2=Hi(X2,UB)、ei1=Hi(Y1,UA)、ei2=Hi(Y2,UA)である。第二実施形態の情報共有装置Uは、補助情報di=Hi(X,UB)、ei=Hi(Y,UA)を計算する補助情報生成部28を有していても良い。
【0093】
情報共有装置Uの共有情報生成部26は、H’(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算して、その計算結果を共有情報Kとする(ステップB7)。この共有情報Kは、例えば認証鍵として用いられる。
【0094】
情報共有装置Uの受信部14(図2)は、短期公開鍵Yを情報共有装置Uから受信する(ステップA4)。
【0095】
情報共有装置Uの共有秘密情報生成部15は、1≦i≦nのそれぞれのiについてのσi1=(Y1Bei1)x1+di1a、σi1’=(Y2Bei2)x1+di1a、σi2=(Y1Bei1)x2+di2a、σi2’=(Y2Bei2)x2+di2aを計算する(ステップA5)。すなわち、計4n個の共有秘密情報σ11,σ11’,σ21,σ21’,…σ1n,σ1n’,σ2n,σ2n’を計算する。計算された共有秘密情報は、共有情報生成部16に送信される。
【0096】
ここで、di1,di2,ei1,ei2は、所定の定数である。例えば、di1=Hi(X1,UB)、di2=Hi(X2,UB)、ei1=Hi(Y1,UA)、ei2=Hi(Y2,UA)である。第二実施形態の情報共有装置Uは、補助情報di1=Hi(X1,UB)、di2=Hi(X2,UB)、ei1=Hi(Y1,UA)、ei2=Hi(Y2,UA)を計算する補助情報生成部18を有していても良い。
【0097】
情報共有装置Uの共有情報生成部16は、H’(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算して、その計算結果を共有情報Kとする(ステップA6)。この共有情報Kは、例えば認証鍵として用いられる。
【0098】
このようにして、情報共有が行われる。
【0099】
[第三実施形態]
まず、第三実施形態のアルゴリズムである長期鍵二重化NAXOSについて説明する。
【0100】
『長期鍵二重化NAXOS』
長期鍵二重化NAXOSは、次のような方式である。長期鍵二重化NAXOSの概要を図9に示す。
【0101】
<公開パラメータ>Gをkbitの素数位数pの巡回群、gをGの生成元、H:{0,1}*→Zp及びH’:{0,1}*→{0,1}kをハッシュ関数とする。
【0102】
<鍵生成>鍵生成者は、ユーザUAに対して、長期秘密鍵a1,a2∈Zpを計算し、長期公開鍵A1=ga1,A2=ga2を公開する。鍵生成者は、同様にユーザUBに対して、長期秘密鍵b1,b2∈Zpを計算し、長期公開鍵B1=gb1,B2=gb2を公開する。
【0103】
<鍵交換>長期秘密鍵a1,a2をもつユーザUAと、長期秘密鍵b1,b2をもつユーザUBは、以下のようにして認証鍵交換を行い共有情報Kを共有する。共有情報Kは、例えば共有鍵として用いられる。
【0104】
1.ユーザUAは、短期秘密鍵x∈Zpをランダムに選び、x~1=H(x,a1),x~2=H(x,a2)を計算し、短期公開鍵をX1=gx~1,X2=gx~2とし、ユーザUBに送る。
【0105】
2.ユーザUBは、X1,X2を受信し、短期秘密鍵y∈Zpをランダムに選び、y~1=H(y,b1), y~2=H(y,b2)を計算し、短期公開鍵をY1=gy~1,Y2=gy~2とし、ユーザUAに送る。
【0106】
ユーザUBは、σ1=A1y~1、σ1’=A2y~1、σ2=A1y~2、σ2’=A2y~2、σ3=X1b1、σ3’=X2b1、σ4=X1b2、σ4’=X2b2、σ5=X1y~1、σ5’=X1y~2、σ6=X2y~1、σ6’=X2y~2を計算し、K=H’(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を得る。
【0107】
UAは、ユーザUA(情報共有装置U)に対応する所定の値である。同様に、UBは、ユーザUB(情報共有装置U)に対応する所定の値である。
【0108】
3.ユーザUAは、Yを受信し、σ1=Y1a1、σ1’=Y1a2、σ2=Y2a1、σ2’=Y2a2、σ3=B1x~1、σ3’=B1x~2、σ4=B2x~1、σ4’=B2x~2、σ5=Y1x~1、σ5’=Y2x~1、σ6=Y1x~2、σ6’=Y2x~2を計算し、共有情報K=H’(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を得る。
【0109】
共有秘密情報は両方のユーザが計算した
σ1=gy~1a11’=gy~1a22=gy~2a12’=gy~2a23=gx~1b13’=gx~1b24=gx~2b14’=gx~2b25=gx~1y~15’=gx~1y~26=gx~2y~16’=gx~2y~2から得られるので、両者で計算した共有鍵K は一致する。
【0110】
次に、上記『長期鍵二重化NAXOS』の欄で説明したアルゴリズムを実行する情報共有システムの一例を説明する。この情報共有システムは、図1に例示するように、情報共有装置U及び情報共有装置Uから構成される。
【0111】
情報共有装置Uが『長期鍵二重化NAXOS』の欄で説明したユーザUに対応し、情報共有装置Uが『長期鍵二重化NAXOS』の欄で説明したユーザUに対応する。情報共有装置Uは図4に例示した処理を行い、情報共有装置Uは図5に例示した処理を行う。
【0112】
情報共有装置Uは、図2に示すように、記憶部10、短期秘密鍵生成部11、短期公開鍵生成部12、送信部13、受信部14、共有秘密情報生成部15、共有情報生成部16、破線で示したハッシュ値計算部17を例えば含む。
【0113】
情報共有装置Uは、図3に示すように、記憶部20、短期秘密鍵生成部21、短期公開鍵生成部22、送信部23、受信部24、共有秘密情報生成部25、共有情報生成部26、破線で示したハッシュ値計算部27を例えば含む。
【0114】
情報共有の前に、ハッシュ関数H、セキュリティパラメータk、群G及び生成元g等の情報共有のために必要なパラメータが設定され、必要に応じて記憶部10及び記憶部20に記憶されているものとする。
【0115】
また、情報共有の前に、情報共有装置Uには、長期秘密鍵a1,a2及び長期公開鍵A1,A2が予め定められ、必要に応じて記憶部10に記憶されているものとする。同様に、情報共有の前に、情報共有装置Uには、長期秘密鍵b1,b2及び長期公開鍵B1,B2が予め定められ、必要に応じて記憶部10に記憶されているものとする。長期秘密鍵a1,a2,b1,b2及び長期公開鍵A1,A2,B1,B2の計算は、鍵生成装置3(図1)により行われる。
【0116】
これらの記憶部10及び20に記憶されたデータは、適宜読み出されて以下に説明する計算が行われる。
【0117】
情報共有装置Uの短期秘密鍵生成部11(図2)は、短期秘密鍵x∈Zpを生成する(ステップA1)。例えば、Zpの中から一様ランダムに元を選び短期秘密鍵xとする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵xは、ハッシュ値計算部17に送信される。
【0118】
情報共有装置Uのハッシュ値計算部17は、x~1=H(x,a1),x~2=H(x,a2)を計算する(ステップA7)。計算されたハッシュ値x~1,x~2は、短期公開鍵生成部12及び共有秘密情報生成部15に送信される。
【0119】
情報共有装置Uの短期公開鍵生成部12は、計算されたハッシュ値x~1,x~2をそれぞれ用いて短期公開鍵X1=gx~1,X2=gx~2を計算する(ステップA2)。短期公開鍵X1,X2は、共有秘密情報生成部15及び送信部13に送信される。
【0120】
情報共有装置Uの送信部13は、短期公開鍵X1,X2を情報共有装置Uに送信する(ステップA3)。
【0121】
情報共有装置Uの短期秘密鍵生成部21(図3)は、短期秘密鍵y∈Zpを生成する(ステップB1)。例えば、Zpの中から一様ランダムに元を選び短期秘密鍵yとする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵yは、ハッシュ値計算部27に送信される。
【0122】
情報共有装置Uのハッシュ値計算部27は、y~1=H(y,b1),y~2=H(y,b2)を計算する。計算されたハッシュ値y~1,y~2は、短期公開鍵生成部22及び共有秘密情報生成部25に送信される。
【0123】
情報共有装置Uの短期公開鍵生成部22は、ハッシュ値y~1,y~2をそれぞれ用いて短期公開鍵Y1=gy~1,Y2=gy~2を計算する(ステップB7)。短期公開鍵Y1,Y2は、共有秘密情報生成部25及び送信部23に送信される。
【0124】
情報共有装置Uの送信部23は、短期公開鍵Y1,Y2を情報共有装置Uに送信する(ステップB4)。
【0125】
情報共有装置Uの受信部24は、短期公開鍵X1,X2を情報共有装置Uから受信する(ステップB5)。
【0126】
情報共有装置Uの共有秘密情報生成部25は、12個の共有秘密情報σ1=A1y~1、σ1’=A2y~1、σ2=A1y~2、σ2’=A2y~2、σ3=X1b1、σ3’=X2b1、σ4=X1b2、σ4’=X2b2、σ5=X1y~1、σ5’=X1y~2、σ6=X2y~1、σ6’=X2y~2を計算する(ステップB6)。計算された共有秘密情報は、共有情報生成部26に送信される。
【0127】
情報共有装置Uの共有情報生成部26は、H’(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算して、その計算結果を共有情報Kとする(ステップB7)。この共有情報Kは、例えば認証鍵として用いられる。
【0128】
情報共有装置Uの受信部14(図2)は、短期公開鍵Y1,Y2を情報共有装置Uから受信する(ステップA4)。
【0129】
情報共有装置Uの共有秘密情報生成部15は、σ1=Y1a1、σ1’=Y1a2、σ2=Y2a1、σ2’=Y2a2、σ3=B1x~1、σ3’=B1x~2、σ4=B2x~1、σ4’=B2x~2、σ5=Y1x~1、σ5’=Y2x~1、σ6=Y1x~2、σ6’=Y2x~2を計算する(ステップA5)。計算された共有秘密情報は、共有情報生成部16に送信される。
【0130】
情報共有装置Uの共有情報生成部16は、H’(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算して、その計算結果を共有情報Kとする(ステップA6)。この共有情報Kは、例えば認証鍵として用いられる。
【0131】
このようにして、情報共有が行われる。
【0132】
[第四実施形態]
まず、第四実施形態のアルゴリズムである短期鍵二重化NAXOSについて説明する。
【0133】
『短期鍵二重化NAXOS』
短期鍵二重化NAXOSは、次のような方式である。短期鍵二重化NAXOSの概要を図10に示す。
【0134】
<公開パラメータ>Gをkbitの素数位数pの巡回群、gをGの生成元、H:{0,1}*→Zp及びH’:{0,1}*→{0,1}kをハッシュ関数とする。
【0135】
<鍵生成>鍵生成者は、ユーザUAに対して、長期秘密鍵a∈Zpを計算し、長期公開鍵A=gaを公開する。同様に、鍵生成者は、ユーザUBに対して、長期秘密鍵b∈Zpを計算し、長期公開鍵B=gbを公開する。
【0136】
<鍵交換>長期秘密鍵aをもつユーザUAと、長期秘密鍵bをもつユーザUBは、以下のようにして認証鍵交換を行い共有情報Kを共有する。
【0137】
1.ユーザUAは、短期秘密鍵x1,x2∈Zpをランダムに選び、x~1=H(x1,a)、x~2=H(x2,a)を計算し、短期公開鍵をX1=gx~1,X2=gx~2とし、ユーザUBに送る。
【0138】
2.ユーザUBは、X1,X2を受信し、短期秘密鍵y1,y2∈Zpをランダムに選び、y~1=H(y1,b)、y~2=H(y2,b)を計算し、短期公開鍵をY1=gy~1,Y2=gy~2とし、ユーザUAに送る。
【0139】
ユーザUBは、σ1=Ay~1、σ1’=Ay~2、σ2=X1b、σ2’=X2b、σ3=X1y~1、σ3’=X2y~1、σ4=X1y~2、σ4’=X2y~2を計算し、共有情報K=H’(σ11’,σ22’,σ33’,σ44’,UA,UB)を得る。
【0140】
UAは、ユーザUA(情報共有装置U)に対応する所定の値である。同様に、UBは、ユーザUB(情報共有装置U)に対応する所定の値である。
【0141】
3.ユーザUAは、Y1,Y2を受信し、σ1=Y1a、σ1’=Y2a、σ2=Bx~1、σ2’=Bx~2、σ3=Y1x~1、σ3’=Y1x~2、σ4=Y2x~1、σ4’=Y2x~2を計算し、共有情報K=H′(σ11’,σ22’,σ33’,σ44’,UA,UB)を得る。
【0142】
共有秘密情報は両方のユーザが計算した
σ1=gy~1a1’=gy~2a2=gx~1b2’=gx~2b3=gx~1y~13’=gx~2y~14=gx~1y~24’=gx~2y~2
から得られるので、両者で計算した共有情報Kは一致する。
【0143】
次に、上記『短期鍵二重化NAXOS』の欄で説明したアルゴリズムを実行する情報共有システムの一例を説明する。この情報共有システムは、図1に例示するように、情報共有装置U及び情報共有装置Uから構成される。
【0144】
情報共有装置Uが『短期鍵二重化NAXOS』の欄で説明したユーザUに対応し、情報共有装置Uが『短期鍵二重化NAXOS』の欄で説明したユーザUに対応する。情報共有装置Uは図4に例示した処理を行い、情報共有装置Uは図5に例示した処理を行う。
【0145】
情報共有装置Uは、図2に示すように、記憶部10、短期秘密鍵生成部11、短期公開鍵生成部12、送信部13、受信部14、共有秘密情報生成部15、共有情報生成部16、破線で示したハッシュ値計算部17を例えば含む。
【0146】
情報共有装置Uは、図3に示すように、記憶部20、短期秘密鍵生成部21、短期公開鍵生成部22、送信部23、受信部24、共有秘密情報生成部25、共有情報生成部26、破線で示したハッシュ値計算部27を例えば含む。
【0147】
情報共有の前に、ハッシュ関数H、セキュリティパラメータk、群G及び生成元g等の情報共有のために必要なパラメータが設定され、必要に応じて記憶部10及び記憶部20に記憶されているものとする。
【0148】
また、情報共有の前に、情報共有装置Uには、長期秘密鍵a及び長期公開鍵Aが予め定められ、必要に応じて記憶部10に記憶されているものとする。同様に、情報共有の前に、情報共有装置Uには、長期秘密鍵b及び長期公開鍵Bが予め定められ、必要に応じて記憶部10に記憶されているものとする。長期秘密鍵a,b及び長期公開鍵A,Bの計算は、鍵生成装置3(図1)により行われる。
【0149】
これらの記憶部10及び20に記憶されたデータは、適宜読み出されて以下に説明する計算が行われる。
【0150】
情報共有装置Uの短期秘密鍵生成部11(図2)は、短期秘密鍵x1,x2∈Zpを生成する(ステップA1)。例えば、Zpの中から一様ランダムに2つの元を選びそれぞれ短期秘密鍵x1,x2とする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵x1,x2は、ハッシュ値計算部17に送信される。
【0151】
情報共有装置Uのハッシュ値計算部17は、x~1=H(x1,a),x~2=H(x2,a)を計算する(ステップA7)。計算されたハッシュ値x~1,x~2は、短期公開鍵生成部12及び共有秘密情報生成部15に送信される。
【0152】
情報共有装置Uの短期公開鍵生成部12は、計算されたハッシュ値x~1,x~2をそれぞれ用いて短期公開鍵X1=gx~1,X2=gx~2を計算する(ステップA2)。短期公開鍵X1,X2は、共有秘密情報生成部15及び送信部13に送信される。
【0153】
情報共有装置Uの送信部13は、短期公開鍵X1,X2を情報共有装置Uに送信する(ステップA3)。
【0154】
情報共有装置Uの短期秘密鍵生成部21(図3)は、短期秘密鍵y1,y2∈Zpを生成する(ステップB1)。例えば、Zpの中から一様ランダムに2つの元を選び短期秘密鍵y1,y2とする。求める安全性のレベルが高くない場合には、一様ランダムに選択する必要はない。生成された短期秘密鍵y1,y2は、ハッシュ値計算部27に送信される。
【0155】
情報共有装置Uのハッシュ値計算部27は、y~1=H(y1,b),y~2=H(y2,b)を計算する。計算されたハッシュ値y~1,y~2は、短期公開鍵生成部22及び共有秘密情報生成部25に送信される。
【0156】
情報共有装置Uの短期公開鍵生成部22は、ハッシュ値y~1,y~2をそれぞれ用いて短期公開鍵Y1=gy~1,Y2=gy~2を計算する(ステップB7)。短期公開鍵Y1,Y2は、共有秘密情報生成部25及び送信部23に送信される。
【0157】
情報共有装置Uの送信部23は、短期公開鍵Y1,Y2を情報共有装置Uに送信する(ステップB4)。
【0158】
情報共有装置Uの受信部24は、短期公開鍵X1,X2を情報共有装置Uから受信する(ステップB5)。
【0159】
情報共有装置Uの共有秘密情報生成部25は、計8個の共有秘密情報σ1=Ay~1、σ1’=Ay~2、σ2=X1b、σ2’=X2b、σ3=X1y~1、σ3’=X2y~1、σ4=X1y~2、σ4’=X2y~2を計算する(ステップB6)。計算された共有秘密情報は、共有情報生成部26に送信される。
【0160】
情報共有装置Uの共有情報生成部26は、H’(σ11’,σ22’,σ33’,σ44’,UA,UB)を計算して、その計算結果を共有情報Kとする(ステップB7)。この共有情報Kは、例えば認証鍵として用いられる。
【0161】
情報共有装置Uの受信部14(図2)は、短期公開鍵Y1,Y2を情報共有装置Uから受信する(ステップA4)。
【0162】
情報共有装置Uの共有秘密情報生成部15は、σ1=Y1a~1、σ1’=Y1a~2、σ2=Y2a~1、σ2’=Y2a~2、σ3=B1x~1、σ3’=B1x~2、σ4=B2x~1、σ4’=B2x~2、σ5=Y1x~1、σ5’=Y2x~1、σ6=Y1x~2、σ6’=Y2x~2を計算する(ステップA5)。計算された共有秘密情報は、共有情報生成部16に送信される。
【0163】
情報共有装置Uの共有情報生成部16は、H’(σ11’,σ22’,σ33’,σ44’,UA,UB)を計算して、その計算結果を共有情報Kとする(ステップA6)。この共有情報Kは、例えば認証鍵として用いられる。
【0164】
このようにして、情報共有が行われる。
【0165】
[変形例等]
情報共有装置Uの各部間のデータのやり取りは直接行われてもよいし、記憶部10を介して行われてもよい。同様に、情報共有装置Uの各部間のデータのやり取りは直接行われてもよいし、記憶部20を介して行われてもよい。
【0166】
上記の例では、共有情報生成部16及び共有情報生成部26は、ハッシュ関数H’を用いたが、任意の予め定められた関数Fを用いて共有情報を求めてもよい。すなわち、第一実施形態及び第二実施形態においてはF(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算してその計算結果を共有情報kとしても良いし、第三実施形態においてはF(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算してその計算結果を共有情報kとしても良いし、第四実施形態においては、F(σ11’,σ22’,σ33’,σ44’,UA,UB)を計算してその計算結果を共有情報kとしても良い。
【0167】
その他、この発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0168】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0169】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0170】
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0171】
[安全性の証明]
このように、長期秘密鍵又は短期秘密鍵を二重化し、共有情報を計算するための共有秘密情報であって長期秘密鍵又は短期秘密鍵に由来する共有秘密情報を短期秘密鍵ごとに計算する。これにより、ギャップ問題の難しさを仮定することなく探索問題の難しさをのみを仮定することで安全性を証明することができる。以下、その安全性の証明の概要を説明する。
【0172】
まず、探索問題(探索Diffie-Hellman問題)及びギャップ問題(ギャップDiffie-Hellman問題)の定義を説明する。
【0173】
探索Diffie-Hellman問題:κをセキュリティパラメータとし、pをκビット素数とする。Gをgを生成元とする位数pの巡回群とする。Diffie-Hellman関数CDH:G2→GをCDH(gu,gv)=guvとして定義し、判定Diffie-Hellman述語オラクルDDH:G3→{0,1}を(gu,gv,gw)を入力としuv=w mod pが成り立つとき1を出力し、そうでなければ0を出力する関数として定義する。
【0174】
解答者Sは、一様ランダムに選ばれたU=gu,V=gv∈Gと判定Diffie-Hellman述語オラクルDDH(・,・,・)へのアクセスを入力され、CDH(U,V)の出力を試みる。解答者Sのアドバンテージを次のように定義する。
【0175】
ADVGDH(S)=Pr[U,V∈G,SDDH(・,・,・)(g,U,V)=CDH(U,V)],
ADVGDH(S)が無視できない確率であるとき、解答者SはギャップDiffie-Hellman問題を解いたという。
【0176】
ギャップ問題は上記のように判定オラクルのヒント付きの探索問題とみなせるので、ギャップ問題の方が真に易しい。
【0177】
鍵交換方式(情報共有方式)の安全性証明を行う際は、「ギャップ問題、もしくは探索問題を解くことが難しいことを仮定すると、情報共有方式への攻撃者が存在しない」ことを示す必要がある。これは、対偶を取ることにより、「情報共有方式への攻撃者が存在すると仮定すると、問題を解く解答者を構成できる」ことを示すことと同値である。従って、安全性証明では実際に攻撃者から解答者を構成する必要がある。そのためには解答者は攻撃者を実際の攻撃環境と見分けがつかないように動作させなければならない。
【0178】
HMQVでは、攻撃者が出力したσに対してσ=(XAd)y+ebを解答者が検証し、結果に応じて動作を変えねばならない。しかし、解答者はyとbを知ることができないので、自分で上記の検証を行うことができない。よって、判定オラクルに(XAd,YBe,σ)を聞き、検証式が成り立つかどうかの答えをもらうことによって証明を行う。このためギャップ問題の難しさを仮定する必要がある。
【0179】
一方、第一実施形態の『長期鍵二重化HMQV』では、任意のsとrについて、解答者は証明中でa2=s-ra1と設定することでσ1=(XA1d)y+eb1、σ1’=(XA1d)y+eb2、σ2=(XA2d)y+eb1、σ2’=(XA2d)y+eb2の検証をyとb1,b2を知ること無しに行うことができる。具体的には、σ1rσ2=(YB1e)sの真理値がσ1=(XA1d)y+eb1∧σ2=(XA2d)y+eb1の真理値と一致することを利用して検証を行う。このテクニックは落とし戸試験と呼ばれる。
【0180】
σ1rσ2=(YB1e)sは解答者の持つ情報のみで検証できるため、判定オラクルは不要であり、ギャップ問題の難しさを仮定する必要が無くなる。同様に、σ1rσ2’=(YB2e)sの落とし戸試験を行うことで、σ1’=(XA1d)y+eb2∧σ2’=(XA2d)y+eb2の検証を行うことができる。
【0181】
第二実施形態の『短期鍵二重化HMQV』でも同様に、シミュレータは証明中でx2=s-rx1と設定し、σ1rσ2=(Y1Be1)sとσ1rσ2’=(Y2Be2)sの落とし戸試験を行うことによって、判定オラクル無しでσ1=(X1Ad1)y1+e1b、σ1’=(X1Ad1)y2+e2b、σ2=(X2Ad2)y1+e1b、σ2’=(X2Ad2)y2+e2bの検証を行うことができる。
【0182】
第三実施形態の『長期鍵二重化NAXOS』でも同様に、シミュレータは証明中でa2=s-ra1、およびx~2=s’-r’x~1と設定し、σ1rσ1’=Y1s、σ2rσ2’=Y2s、σ5r’σ5’=Y1s′、σ6r’σ6’=Y2s’の落とし戸試験を行うことによって、判定オラクル無しでσ1=Y1a1、σ1’=Y1a2、σ2=Y2a1、σ2’=Y2a2、σ5=Y1x~1、σ5’=Y1x~2、σ6=Y2x~1、σ6’=Y2x~2の検証を行うことができる。
【0183】
第四実施形態の『短期鍵二重化NAXOS』でも同様に、シミュレータは証明中でx~2=s-rx~1と設定し、σ1rσ1’=As、σ2rσ2’=Bs、σ3rσ3’=Y1s、σ4rσ4’=Y2sの落とし戸試験を行うことによって、判定オラクル無しでσ1=Ay~1、σ1’=Ay~2、σ2=Bx~1、σ2’=Bx~2、σ3=Y1x~1、σ3’=Y1x~2、σ4=Y2x~1、σ4’=Y2x~2の検証を行うことができる。
【符号の説明】
【0184】
情報共有装置
10 記憶部
11 短期秘密鍵生成部
12 短期公開鍵生成部
13 送信部
14 受信部
15 共有秘密情報生成部
16 共有情報生成部
17 ハッシュ値計算部
18 補助情報生成部
情報共有装置
20 記憶部
21 短期秘密鍵生成部
22 短期公開鍵生成部
23 送信部
24 受信部
25 共有秘密情報生成部
26 共有情報生成部
27 ハッシュ値計算部
28 補助情報生成部

【特許請求の範囲】
【請求項1】
nを正の整数とし、1≦i≦nとし、Hi:{0,1}*→Zpをハッシュ関数とし、di,eiを所定の定数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a1,a2∈Zpを情報共有装置Uの長期秘密鍵とし、A1=ga1,A2=ga2を情報共有装置Uの長期公開鍵とし、b1,b2∈Zpを情報共有装置Uの長期秘密鍵とし、B1=gb1,B2=gb2を情報共有装置Uの長期公開鍵として、
短期秘密鍵x∈Zpを生成する短期秘密鍵生成部と、短期公開鍵をX=gxを計算する短期公開鍵生成部と、上記短期公開鍵Xを情報共有装置Uに送信する送信部と、短期公開鍵Yを上記情報共有装置Uから受信する受信部と、1≦i≦nのそれぞれのiについてのσi1=(YB1ei)x+dia1、σi1’=(YB2ei)x+dia1、σi2=(YB1ei)x+dia2、σi2’=(YB2ei)x+dia2を計算する共有秘密情報計算部と、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、を含む情報共有装置Uと、
短期秘密鍵y∈Zpを生成する短期秘密鍵生成部と、短期公開鍵をY=gyを計算する短期公開鍵生成部と、上記短期公開鍵Yを情報共有装置Uに送信する送信部と、短期公開鍵Xを上記情報共有装置Uから受信する受信部と、1≦i≦nのそれぞれのiについてのσi1=(XA1di)y+eib1、σi1’=(XA1di)y+eib2、σi2=(XA2di)y+eib1、σi2’=(XA2di)y+eib2を計算する共有秘密情報計算部と、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、を含む情報共有装置Uと、
を含む情報共有システム。
【請求項2】
nを正の整数とし、1≦i≦nとし、Hi:{0,1}*→Zpをハッシュ関数とし、di1,di2,ei1,ei2を所定の定数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a∈Zpを情報共有装置Uの長期秘密鍵とし、A=gaを情報共有装置Uの長期公開鍵とし、b∈Zpを情報共有装置Uの長期秘密鍵とし、B=gaを情報共有装置Uの長期公開鍵として、
短期秘密鍵x1,x2∈Zpを生成する短期秘密鍵生成部と、短期公開鍵をX1=gx1,X2=gx2を計算する短期公開鍵生成部と、上記短期公開鍵X1,X2を情報共有装置Uに送信する送信部と、短期公開鍵Y1,Y2を上記情報共有装置Uから受信する受信部と、1≦i≦nのそれぞれのiについてのσi1=(Y1Bei1)x1+di1a、σi1’=(Y2Bei2)x1+di1a、σi2=(Y1Bei1)x2+di2a、σi2’=(Y2Bei2)x2+di2aを計算する共有秘密情報計算部と、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、を含む情報共有装置Uと、
短期秘密鍵y1,y2∈Zpを生成する短期秘密鍵生成部と、短期公開鍵をY1=gy1,Y2=gy2を計算する短期公開鍵生成部と、上記短期公開鍵Y1,Y2を情報共有装置Uに送信する送信部と、短期公開鍵X1,X2を上記情報共有装置Uから受信する受信部と、1≦i≦nのそれぞれのiについてのσi1=(X1Adi1)y1+ei1b、σi1’=(X1Adi1)y2+ei2b、σi2=(X2Adi2)y1+ei1b、σi2’=(X2Adi2)y2+ei2bを計算する共有秘密情報計算部と、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、を含む情報共有装置Uと、
を含む情報共有システム。
【請求項3】
H:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a1,a2∈Zpを情報共有装置Uの長期秘密鍵とし、A1=ga1,A2=ga2を情報共有装置Uの長期公開鍵とし、b1,b2∈Zpを情報共有装置Uの長期秘密鍵とし、B1=gb1,B2=gb2を情報共有装置Uの長期公開鍵とし、UAを情報共有装置Uに対応する所定の値とし、UBを情報共有装置Uに対応する所定の値として、
短期秘密鍵x∈Zpを生成する短期秘密鍵生成部と、x~1=H(x,a1),x~2=H(x,a2)を計算するハッシュ値計算部と、短期公開鍵X1=gx~1,X2=gx~2を計算する短期公開鍵生成部と、上記短期公開鍵X1,X2を情報共有装置Uに送信する送信部と、短期公開鍵Y1,Y2を上記情報共有装置Uから受信する受信部と、σ1=Y1a1、σ1’=Y1a2、σ2=Y2a1、σ2’=Y2a2、σ3=B1x~1、σ3’=B1x~2、σ4=B2x~1、σ4’=B2x~2、σ5=Y1x~1、σ5’=Y2x~1、σ6=Y1x~2、σ6’=Y2x~2を計算する共有秘密情報計算部と、F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成部と、を含む情報共有装置Uと、
短期秘密鍵y∈Zpを生成する短期秘密鍵生成部と、y~1=H(y,b1),y~2=H(y,b2)を計算するハッシュ値計算部と、短期公開鍵Y1=gy~1,Y2=gy~2を計算する短期公開鍵生成部と、上記短期公開鍵Y1,Y2を情報共有装置Uに送信する送信部と、短期公開鍵X1,X2を上記情報共有装置Uから受信する受信部と、nを正の整数とし、1≦i≦nのそれぞれのiについてのσ1=A1y~1、σ1’=A2y~1、σ2=A1y~2、σ2’=A2y~2、σ3=X1b1、σ3’=X2b1、σ4=X1b2、σ4’=X2b2、σ5=X1y~1、σ5’=X1y~2、σ6=X2y~1、σ6’=X2y~2を計算する共有秘密情報計算部と、F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成部と、を含む情報共有装置Uと、
を含む情報共有システム。
【請求項4】
H:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a∈Zpを情報共有装置Uの長期秘密鍵とし、A=gaを情報共有装置Uの長期公開鍵とし、b∈Zpを情報共有装置Uの長期秘密鍵とし、B=gbを情報共有装置Uの長期公開鍵とし、UAを情報共有装置Uに対応する所定の値とし、UBを情報共有装置Uに対応する所定の値として、
短期秘密鍵x1,x2∈Zpを生成する短期秘密鍵生成部と、x~1=H(x1,a)、x~2=H(x2,a)を計算するハッシュ値計算部と、短期公開鍵X1=gx~1,X2=gx~2を計算する短期公開鍵生成部と、上記短期公開鍵X1,X2を情報共有装置Uに送信する送信部と、短期公開鍵Y1,Y2を上記情報共有装置Uから受信する受信部と、σ1=Y1a、σ1’=Y2a、σ2=Bx~1、σ2’=Bx~2、σ3=Y1x~1、σ3’=Y1x~2、σ4=Y2x~1、σ4’=Y2x~2を計算する共有秘密情報計算部と、F(σ11’,σ22’,σ33’,σ44’,UA,UB)を計算する共有情報生成部と、を含む情報共有装置Uと、
短期秘密鍵y1,y2∈Zpを生成する短期秘密鍵生成部と、y~1=H(y1,b)、y~2=H(y2,b)を計算するハッシュ値計算部と、短期公開鍵Y1=gy~1,Y2=gy~2を計算する短期公開鍵生成部と、上記短期公開鍵Y1,Y2を情報共有装置Uに送信する送信部と、短期公開鍵X1,X2を上記情報共有装置Uから受信する受信部と、σ1=Ay~1、σ1’=Ay~2、σ2=X1b、σ2’=X2b、σ3=X1y~1、σ3’=X2y~1、σ4=X1y~2、σ4’=X2y~2を計算する共有秘密情報計算部と、F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成部と、を含む情報共有装置Uと、
を含む情報共有システム。
【請求項5】
請求項1の情報共有システムにおいて、
UAを上記情報共有装置Uに対応する所定の値とし、UBを上記情報共有装置Uに対応する所定の値として、
上記di=Hi(X,UB)であり、上記ei=Hi(Y,UA)である、
情報共有システム。
【請求項6】
請求項2の情報共有システムにおいて、
UAを上記情報共有装置Uに対応する所定の値とし、UBを上記情報共有装置Uに対応する所定の値として、
上記di1=Hi(X1,UB)であり、上記di2=Hi(X2,UB)であり、上記ei1=Hi(Y1,UA)であり、上記ei2=Hi(Y2,UA)である、
情報共有システム。
【請求項7】
請求項1から6の情報共有システムにおいて、
上記関数Fは、ハッシュ関数H’:{0,1}*→{0,1}である、
情報共有システム。
【請求項8】
nを正の整数とし、1≦i≦nとし、Hi:{0,1}*→Zpをハッシュ関数とし、di,eiを所定の定数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a1,a2∈Zpを情報共有装置Uの長期秘密鍵とし、A1=ga1,A2=ga2を情報共有装置Uの長期公開鍵とし、b1,b2∈Zpを情報共有装置Uの長期秘密鍵とし、B1=gb1,B2=gb2を情報共有装置Uの長期公開鍵として、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵x∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uの短期公開鍵生成部が、短期公開鍵をX=gxを計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵Xを情報共有装置Uに送信する送信ステップと、
情報共有装置Uの受信部が、短期公開鍵Yを上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの共有秘密情報計算部が、1≦i≦nのそれぞれのiについてのσi1=(YB1ei)x+dia1、σi1’=(YB2ei)x+dia1、σi2=(YB1ei)x+dia2、σi2’=(YB2ei)x+dia2を計算する共有秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成ステップと、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵y∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uの短期公開鍵生成部が、短期公開鍵をY=gyを計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵Yを情報共有装置Uに送信する送信ステップと、
情報共有装置Uの受信部が、短期公開鍵Xを上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの共有秘密情報計算部が、1≦i≦nのそれぞれのiについてのσi1=(XA1di)y+eib1、σi1’=(XA1di)y+eib2、σi2=(XA2di)y+eib1、σi2’=(XA2di)y+eib2を計算する共有秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成ステップと、
を含む情報共有方法。
【請求項9】
nを正の整数とし、1≦i≦nとし、Hi:{0,1}*→Zpをハッシュ関数とし、di1,di2,ei1,ei2を所定の定数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a∈Zpを情報共有装置Uの長期秘密鍵とし、A=gaを情報共有装置Uの長期公開鍵とし、b∈Zpを情報共有装置Uの長期秘密鍵とし、B=gaを情報共有装置Uの長期公開鍵として、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵x1,x2∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uの短期公開鍵生成部が、短期公開鍵をX1=gx1,X2=gx2を計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵X1,X2を情報共有装置Uに送信する送信ステップと、
情報共有装置Uの受信部が、短期公開鍵Y1,Y2を上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの共有秘密情報計算部が、1≦i≦nのそれぞれのiについてのσi1=(Y1Bei1)x1+di1a、σi1’=(Y2Bei2)x1+di1a、σi2=(Y1Bei1)x2+di2a、σi2’=(Y2Bei2)x2+di2aを計算する共有秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成ステップと、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵y1,y2∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uの短期公開鍵生成部が、短期公開鍵をY1=gy1,Y2=gy2を計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵Y1,Y2を情報共有装置Uに送信する送信ステップと、
情報共有装置Uの受信部が、短期公開鍵X1,X2を上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの共有秘密情報計算部が、1≦i≦nのそれぞれのiについてのσi1=(X1Adi1)y1+ei1b、σi1’=(X1Adi1)y2+ei2b、σi2=(X2Adi2)y1+ei1b、σi2’=(X2Adi2)y2+ei2bを計算する共有秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成ステップと、
を含む情報共有方法。
【請求項10】
H:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a1,a2∈Zpを情報共有装置Uの長期秘密鍵とし、A1=ga1,A2=ga2を情報共有装置Uの長期公開鍵とし、b1,b2∈Zpを情報共有装置Uの長期秘密鍵とし、B1=gb1,B2=gb2を情報共有装置Uの長期公開鍵とし、UAを情報共有装置Uに対応する所定の値とし、UBを情報共有装置Uに対応する所定の値として、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵x∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uのハッシュ値計算部が、x~1=H(x,a1),x~2=H(x,a2)を計算するハッシュ値計算ステップと、
情報共有装置Uの短期公開鍵生成部が、短期公開鍵X1=gx~1,X2=gx~2を計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵X1,X2を情報共有装置Uに送信する送信ステップと、
情報共有装置Uの受信部が、短期公開鍵Y1,Y2を上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの共有秘密情報計算部が、σ1=Y1a1、σ1’=Y1a2、σ2=Y2a1、σ2’=Y2a2、σ3=B1x~1、σ3’=B1x~2、σ4=B2x~1、σ4’=B2x~2、σ5=Y1x~1、σ5’=Y2x~1、σ6=Y1x~2、σ6’=Y2x~2を計算する共有秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成ステップと、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵y∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uのハッシュ値計算部が、y~1=H(y,b1),y~2=H(y,b2)を計算するハッシュ値計算ステップと、
情報共有装置Uの短期公開鍵生成部が、短期公開鍵Y1=gy~1,Y2=gy~2を計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵Y1,Y2を情報共有装置Uに送信する送信ステップと、
情報共有装置Uの受信部が、短期公開鍵X1,X2を上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの共有秘密情報計算部が、nを正の整数とし、1≦i≦nのそれぞれのiについてのσ1=A1y~1、σ1’=A2y~1、σ2=A1y~2、σ2’=A2y~2、σ3=X1b1、σ3’=X2b1、σ4=X1b2、σ4’=X2b2、σ5=X1y~1、σ5’=X1y~2、σ6=X2y~1、σ6’=X2y~2を計算する共有秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成ステップと、
を含む情報共有方法。
【請求項11】
H:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a∈Zpを情報共有装置Uの長期秘密鍵とし、A=gaを情報共有装置Uの長期公開鍵とし、b∈Zpを情報共有装置Uの長期秘密鍵とし、B=gbを情報共有装置Uの長期公開鍵とし、UAを情報共有装置Uに対応する所定の値とし、UBを情報共有装置Uに対応する所定の値として、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵x1,x2∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uのハッシュ値計算部が、x~1=H(x1,a)、x~2=H(x2,a)を計算するハッシュ値計算ステップと、
情報共有装置Uの短期公開鍵生成部が、短期公開鍵X1=gx~1,X2=gx~2を計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵X1,X2を情報共有装置Uに送信する送信ステップと、
情報共有装置Uの受信部が、短期公開鍵Y1,Y2を上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの共有秘密情報計算部が、σ1=Y1a、σ1’=Y2a、σ2=Bx~1、σ2’=Bx~2、σ3=Y1x~1、σ3’=Y1x~2、σ4=Y2x~1、σ4’=Y2x~2を計算する共有秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ11’,σ22’,σ33’,σ44’,UA,UB)を計算する共有情報生成ステップと、
情報共有装置Uの短期秘密鍵生成部が、短期秘密鍵y1,y2∈Zpを生成する短期秘密鍵生成ステップと、
情報共有装置Uのハッシュ値計算部が、y~1=H(y1,b)、y~2=H(y2,b)を計算するハッシュ値計算ステップと、
情報共有装置Uの短期公開鍵生成部が、短期公開鍵Y1=gy~1,Y2=gy~2を計算する短期公開鍵生成ステップと、
情報共有装置Uの送信部が、上記短期公開鍵Y1,Y2を情報共有装置Uに送信する送信ステップと、
情報共有装置Uの受信部が、短期公開鍵X1,X2を上記情報共有装置Uから受信する受信ステップと、
情報共有装置Uの共有秘密情報計算部が、σ1=Ay~1、σ1’=Ay~2、σ2=X1b、σ2’=X2b、σ3=X1y~1、σ3’=X2y~1、σ4=X1y~2、σ4’=X2y~2を計算する共有秘密情報計算ステップと、
情報共有装置Uの共有情報生成部が、F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成ステップと、
を含む情報共有方法。
【請求項12】
nを正の整数とし、1≦i≦nとし、Hi:{0,1}*→Zpをハッシュ関数とし、di,eiを所定の定数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a1,a2∈Zpを情報共有装置Uの長期秘密鍵とし、A1=ga1,A2=ga2を情報共有装置Uの長期公開鍵とし、b1,b2∈Zpを情報共有装置Uの長期秘密鍵とし、B1=gb1,B2=gb2を情報共有装置Uの長期公開鍵として、
短期秘密鍵x∈Zpを生成する短期秘密鍵生成部と、
短期公開鍵をX=gxを計算する短期公開鍵生成部と、
上記短期公開鍵Xを情報共有装置Uに送信する送信部と、
短期公開鍵Yを上記情報共有装置Uから受信する受信部と、
1≦i≦nのそれぞれのiについてのσi1=(YB1ei)x+dia1、σi1’=(YB2ei)x+dia1、σi2=(YB1ei)x+dia2、σi2’=(YB2ei)x+dia2を計算する共有秘密情報計算部と、
F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、
を含む情報共有装置Uである情報共有装置。
【請求項13】
nを正の整数とし、1≦i≦nとし、Hi:{0,1}*→Zpをハッシュ関数とし、di1,di2,ei1,ei2を所定の定数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a∈Zpを情報共有装置Uの長期秘密鍵とし、A=gaを情報共有装置Uの長期公開鍵とし、b∈Zpを情報共有装置Uの長期秘密鍵とし、B=gaを情報共有装置Uの長期公開鍵として、
短期秘密鍵x1,x2∈Zpを生成する短期秘密鍵生成部と、
短期公開鍵をX1=gx1,X2=gx2を計算する短期公開鍵生成部と、
上記短期公開鍵X1,X2を情報共有装置Uに送信する送信部と、
短期公開鍵Y1,Y2を上記情報共有装置Uから受信する受信部と、
1≦i≦nのそれぞれのiについてのσi1=(Y1Bei1)x1+di1a、σi1’=(Y2Bei2)x1+di1a、σi2=(Y1Bei1)x2+di2a、σi2’=(Y2Bei2)x2+di2aを計算する共有秘密情報計算部と、
F(σ1111’,σ1212’,…,σn1n1’,σn2n2’)を計算する共有情報生成部と、
を含む情報共有装置Uである情報共有装置。
【請求項14】
H:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a1,a2∈Zpを情報共有装置Uの長期秘密鍵とし、A1=ga1,A2=ga2を情報共有装置Uの長期公開鍵とし、b1,b2∈Zpを情報共有装置Uの長期秘密鍵とし、B1=gb1,B2=gb2を情報共有装置Uの長期公開鍵とし、UAを情報共有装置Uに対応する所定の値とし、UBを情報共有装置Uに対応する所定の値として、
短期秘密鍵x∈Zpを生成する短期秘密鍵生成部と、
x~1=H(x,a1),x~2=H(x,a2)を計算するハッシュ値計算部と、
短期公開鍵X1=gx~1,X2=gx~2を計算する短期公開鍵生成部と、
上記短期公開鍵X1,X2を情報共有装置Uに送信する送信部と、
短期公開鍵Y1,Y2を上記情報共有装置Uから受信する受信部と、
σ1=Y1a1、σ1’=Y1a2、σ2=Y2a1、σ2’=Y2a2、σ3=B1x~1、σ3’=B1x~2、σ4=B2x~1、σ4’=B2x~2、σ5=Y1x~1、σ5’=Y2x~1、σ6=Y1x~2、σ6’=Y2x~2を計算する共有秘密情報計算部と、
F(σ11’,σ22’,σ33’,σ44’,σ55’,σ66’,UA,UB)を計算する共有情報生成部と、
を含む情報共有装置Uである情報共有装置。。
【請求項15】
H:{0,1}*→Zpをハッシュ関数とし、Fを予め定められた関数とし、セキュリティパラメータkを正の整数とし、Gをkbitの素数位数pの巡回群、gをGの生成元とし、a∈Zpを情報共有装置Uの長期秘密鍵とし、A=gaを情報共有装置Uの長期公開鍵とし、b∈Zpを情報共有装置Uの長期秘密鍵とし、B=gbを情報共有装置Uの長期公開鍵とし、UAを情報共有装置Uに対応する所定の値とし、UBを情報共有装置Uに対応する所定の値として、
短期秘密鍵x1,x2∈Zpを生成する短期秘密鍵生成部と、
x~1=H(x1,a)、x~2=H(x2,a)を計算するハッシュ値計算部と、
短期公開鍵X1=gx~1,X2=gx~2を計算する短期公開鍵生成部と、
上記短期公開鍵X1,X2を情報共有装置Uに送信する送信部と、
短期公開鍵Y1,Y2を上記情報共有装置Uから受信する受信部と、
σ1=Y1a、σ1’=Y2a、σ2=Bx~1、σ2’=Bx~2、σ3=Y1x~1、σ3’=Y1x~2、σ4=Y2x~1、σ4’=Y2x~2を計算する共有秘密情報計算部と、
F(σ11’,σ22’,σ33’,σ44’,UA,UB)を計算する共有情報生成部と、
を含む情報共有装置Uである情報共有装置。
【請求項16】
請求項12から15の何れかに記載の情報共有装置の各部としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−249054(P2012−249054A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−118822(P2011−118822)
【出願日】平成23年5月27日(2011.5.27)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】