説明

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

【課題】高い安全性を確保しつつ、低い演算量で共有情報Ujを共有する。
【解決手段】第1情報共有装置がtを生成してT∈Gを出力する。第2情報共有装置がyを生成してY∈Gを出力する。第1情報共有装置は、演算式Vjがそれぞれ表す共有情報Uj生成する。第2情報共有装置は、演算式Wjにそれぞれ従って共有情報Ujを生成する。Vj,Wjは巡回群Gでの演算を表し、VmとVnとは互いに相違し、WmとWnとは互いに相違し、Uj=g(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)を満たし、(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))と(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報セキュリティ技術の応用技術に関し、特に、装置間で認証された情報を共有する情報共有技術に関する。
【背景技術】
【0002】
従来の鍵交換方式の一つにDiffie-Hellman鍵交換方式がある。まず、従来のDiffie-Hellman鍵交換方式を用い、第1情報共有装置と第2情報共有装置との間で鍵交換を行う方法を説明する。
【0003】
<基本方式>
基本的なDiffie-Hellman鍵交換方式では、以下のように鍵交換が行われる。
[公開パラメータ]
Gを素数位数qの巡回群とし、gを巡回群Gの生成元とする。巡回群Gと生成元gとは、第1情報共有装置と第2情報共有装置とに公開される。
[鍵交換]
第1情報共有装置は、ランダムな任意値t∈Zqを生成し、T=gt∈Gを第2情報共有装置に送り、第2情報共有装置は、ランダムな任意値y∈Zqを生成し、Y=gy∈Gを第1情報共有装置に送る。なお、Zqはqを法とする剰余類の完全代表系を要素とする剰余環を表す。第1情報共有装置は鍵K=Yt∈Gを計算し、第2情報共有装置は鍵K=Ty∈Gを計算する。ここで、巡回群Gは可換群であるからYt=gy・t=gt・y=Tyとなり、第1情報共有装置と第2情報共有装置とで同一の鍵Kが共有される。
【0004】
しかしながら、上記の基本方式は中間者攻撃(man-in-the-middle attack)に弱いという問題がある。すなわち、攻撃者の装置ADVが第2情報共有装置に成りすまし、第1情報共有装置との間で上述した第2情報共有装置と同じ処理を実行した場合、攻撃者の装置ADVは第1情報共有装置との間で同一の鍵K'を共有できてしまう。同様に、攻撃者の装置ADVが第1情報共有装置に成りすまし、第2情報共有装置との間で上述した第1情報共有装置と同じ処理を実行した場合、攻撃者の装置ADVは第2情報共有装置との間で同一の鍵K''を共有できてしまう(中間者攻撃1)。
【0005】
<改良方式1>
これに対し、以下のようにすれば中間者攻撃1の問題を解決できる。
[公開パラメータ]
Gを素数位数qの巡回群とし、gを巡回群Gの生成元とする。巡回群Gと生成元gとは、第1情報共有装置と第2情報共有装置とに公開される。
[鍵交換]
第1情報共有装置は、自らの秘密鍵a∈Zqを用い、A=ga∈Gを第2情報共有装置に送る。第2情報共有装置は、自らの秘密鍵b∈Zqを用い、B=gb∈Gを第1情報共有装置に送る。第1情報共有装置は鍵K=Ba∈Gを計算し、第2情報共有装置は鍵K=Ab∈Gを計算する。ここで、巡回群Gは可換群であるからBa=gb・a=ga・b=Abとなり、第1情報共有装置と第2情報共有装置とで同一の鍵Kが共有される。また、攻撃者の装置ADVは、第1情報共有装置の秘密鍵aも第2情報共有装置の秘密鍵bも知らないため、上述の中間者攻撃1を行うことができない。
【0006】
しかしながら、改良方式1では、秘密鍵を変更しない限り、第1情報共有装置と第2情報共有装置との間で上記の処理を行って共有される鍵が毎回同一となってしまい、高い安全性を確保できない。
【0007】
<改良方式2>
これに対し、以下のような方式が想定できる。
[公開パラメータ]
Gを素数位数qの巡回群とし、gを巡回群Gの生成元とする。巡回群Gと生成元gとは、第1情報共有装置と第2情報共有装置とに公開される。
[鍵交換]
第1情報共有装置は、ランダムな任意値t∈Zqを生成し、T=gt∈Gを第2情報共有装置に送り、第2情報共有装置は、ランダムな任意値y∈Zqを生成し、Y=gy∈Gを第1情報共有装置に送る。第1情報共有装置は、自らの秘密鍵a∈Zqを用い、鍵K=(Y・B)(t+a)∈Gを計算し、第2情報共有装置は、自らの秘密鍵b∈Zqを用い、鍵K=(T・A)(y+b)∈Gを計算する。ここで、巡回群Gは可換群であるから(Y・B)(t+a)=g(y+b)・(t+a)=g(t+a)・(y+b)=(T・A)(y+b)となり、第1情報共有装置と第2情報共有装置とで同一の鍵Kが共有される。また、任意値t,yに応じて鍵Kの値が異なるため、第1情報共有装置と第2情報共有装置との間で上記の処理を行うたびに共有される鍵Kが変化する。さらに、攻撃者の装置ADVは、第1情報共有装置の秘密鍵aも第2情報共有装置の秘密鍵bも知らないため、上述の中間者攻撃1を行うことができない。
【0008】
しかしながら、改良方式2は、以下のような中間者攻撃(中間者攻撃2)に弱いという問題がある。
第1情報共有装置に成りすます攻撃者の装置ADVは、まず、ランダムな任意値t'∈Zqを生成し、T'=gt'/A∈Gを計算し、T'を第1情報共有装置が出力したTとして偽って第2情報共有装置に送る。第2情報共有装置は、ランダムな任意値y∈Zqを生成し、Y=gy∈Gを攻撃者の装置ADVに送る。攻撃者の装置ADVは鍵K=(Y・B)t'∈Gを計算し、第2情報共有装置は、自らの秘密鍵b∈Zqを用い、鍵K=(T'・A)(y+b)∈Gを計算する。ここで、攻撃者の装置ADVが計算する鍵KはK=(Y・B)t'=g(y+b)・t'∈Gを満たす。一方、第2情報共有装置が計算する鍵KはK=(T'・A)(y+b)=((gt'/A)・A)(y+b)=gt'・(y+b)∈G満たす。巡回群Gは可換群であるから、攻撃者の装置ADVが計算する鍵Kと第2情報共有装置が計算する鍵Kとが一致する。すなわち、攻撃者の装置ADVは、第1情報共有装置の秘密鍵aを持たないにもかかわらず、第2情報共有装置と同一の鍵Kを共有でき、中間者攻撃が成立する。これは、攻撃者の装置ADVがT'=gt'/A∈Gを第2情報共有装置に送ることで、第2情報共有装置が鍵Kを計算する際に第1情報共有装置の公開鍵Aの成分が打ち消されることになることに基づく。同様に、攻撃者の装置ADVが第2情報共有装置に成りすまし、第1情報共有装置と同一の鍵Kを共有することも可能である。
【0009】
<改良方式3>
これに対し、以下のような方式が存在する(非特許文献1参照)。
[公開パラメータ]
Gを素数位数qの巡回群とし、gを巡回群Gの生成元とする。巡回群Gの任意の元を0以上q1/2以下の整数に写すハッシュ関数をF:G→[0, q1/2]とする。任意の値をLビットのビット列に写すハッシュ関数をHとする。Lは正整数であり、qをビット表現した場合のビット長をLとする。第1情報共有装置の識別子をIDAとし、第2情報共有装置の識別子をIDBとする。巡回群Gと生成元gとハッシュ関数F, Hと識別子IDA, IDBとは、第1情報共有装置と第2情報共有装置とに公開される。
【0010】
[鍵交換]
第1情報共有装置は、ランダムな任意値t∈Zqを生成し、T=gt∈Gを第2情報共有装置に送り、第2情報共有装置は、ランダムな任意値y∈Zqを生成し、Y=gy∈Gを第1情報共有装置に送る。
第1情報共有装置は、d=F(T)とe=F(Y)とを計算し、自らの秘密鍵a∈Zqを用いて共有情報U1=(Y・Be)(t+a)∈Gと共有情報U2=(Y・B)(t+a・d)∈Gとを計算し、鍵K=H(U1, U2, IDA, IDB, T, Y)を計算する。第2情報共有装置は、d=F(T)とe=F(Y)とを計算し、自らの秘密鍵b∈Zqを用いて共有情報U1=(T・A)(y+b・e)∈Gと共有情報U2=(T・Ad)(y+b)∈Gとを計算し、鍵K=H(U1, U2, IDA, IDB, T, Y)を計算する。
【0011】
ここで、巡回群Gは可換群であるから、(Y・Be)(t+a)=g(y+b・e)・(t+a)=g(t+a)・(y+b・e)=(T・A)(y+b・e)となり、(Y・B)(t+a・d)=g(y+b)・(t+a・d)=g(t+a・d)・(y+b)=(T・Ad)(y+b)となり、第1情報共有装置と第2情報共有装置とで同一の鍵Kが共有される。また、任意値t,yに応じて鍵Kの値が異なるため、第1情報共有装置と第2情報共有装置との間で上記の処理を行うたびに共有される鍵Kが変化する。さらに、攻撃者の装置ADVは、第1情報共有装置の秘密鍵aも第2情報共有装置の秘密鍵bも知らないため、上述の中間者攻撃1を行うことができない。さらに、第1情報共有装置の秘密鍵aを知らない攻撃者の装置ADVは、第1情報共有装置に成りすましたとしても、第2情報共有装置が共有情報U1=(T・A)(y+b・e)∈Gと共有情報U2=(T・Ad)(y+b)∈Gとを計算する際に、これら両方について第1情報共有装置の公開鍵Aの成分を打ち消すことになるT'をTとして生成することができない。同様に、第2情報共有装置の秘密鍵bを知らない攻撃者の装置ADVは、第2情報共有装置に成りすましたとしても、第1情報共有装置が共有情報U1=(Y・Be)(t+a)∈Gと共有情報U2=(Y・B)(t+a・d)∈Gとを計算する際に、これら両方について第2情報共有装置の公開鍵Bの成分を打ち消すことになるY'をYとして生成することができない。よって、攻撃者の装置ADVは、上述の中間者攻撃2を行うことができない。
【先行技術文献】
【非特許文献】
【0012】
【非特許文献1】Berkant Ustaoglu, "Comparing SessionStateReveal and EphemeralKeyReveal for Diffie-Hellman protocols", Pieprzyk, J, P., Zhang, F. (eds.) ProvSec 2009, LNCS, vol. 5848, pp. 183-197, Springer, Heidelberg (2009)
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかし、非特許文献1の方式は、共有情報U1及びU2を計算するために、演算量の大きなハッシュ関数Fを用いてd=F(T)とe=F(Y)とを計算する必要がある。
本発明はこのような点に鑑みてなされたものであり、高い安全性を確保しつつ、低い演算量で共有情報Uj(j=1,...,J)を共有することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明の第1態様では、第1情報共有装置で任意値tを生成し、任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成して出力する。第2情報共有装置で任意値yを生成し、任意値yと生成元gとを用い、出力情報Y=gy∈Gを生成して出力する。第1情報共有装置で、出力情報Yの入力を受け付け、第2情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、出力情報Yと、第1情報共有装置の秘密情報aと、任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。第2情報共有装置で、出力情報Tの入力を受け付け、第1情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、出力情報Tと、第2情報共有装置の秘密情報bと、任意値yとを用い、各演算式Wj(j=1,...,J)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。ここで演算式Vj(j=1,...,J)及び演算式Wj(j=1,...,J)は、それぞれ、巡回群Gでの演算を表わす。少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、演算式VmとVnとが互いに相違し、演算式WmとWnとが互いに相違する。共有情報Uj(j=1,...,J)は、それぞれ、係数r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してg(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)を満たし、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である。
【0015】
本発明の第2態様では、第1情報共有装置で、任意値tを生成し、任意値tと巡回群G1の生成元g1とを用い、出力情報T=g1t∈G1を生成して出力する。第2情報共有装置で、任意値yを生成し、任意値yと生成元g2とを用い、出力情報Y=g2y∈G2を生成して出力する。第1情報共有装置で、出力情報Yの入力を受け付け、第2情報共有装置の公開情報B=g2b∈G2と、出力情報Yと、秘密情報z及び第1情報共有装置の公開情報A=g1a∈G1に対応する第1情報共有装置の秘密情報C=Az∈G1と、g1zである公開情報P1及び/又はg2zである公開情報P2と、任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。第2情報共有装置で、出力情報Tの入力を受け付け、第1情報共有装置の公開情報A=g1a∈G1と、出力情報Tと、秘密情報z及び公開情報Bに対応する第2情報共有装置の秘密情報D=Bz∈G2と、公開情報P1及び/又は公開情報P2と、任意値yとを用い、各演算式Wj(j=1,...,J)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。ここで演算式Vj(j=1,...,J)及び演算式Wj(j=1,...,J)は、それぞれ、巡回群G1の元と巡回群G2の元とから巡回群GTの元を得る双線形写像e:G1×G2→GTを含む。少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、演算式VmとVnとが互いに相違し、演算式WmとWnとが互いに相違する。共有情報Uj(j=1,...,J)は、それぞれ、係数r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してgTz・(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)∈GTを満たし、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である。
【発明の効果】
【0016】
本発明では、高い安全性を確保しつつ、低い演算量で共有情報Uj(j=1,...,J)を共有することができる。
【図面の簡単な説明】
【0017】
【図1】図1は、第1実施形態の機能構成を説明するための図である。
【図2】図2A及び図2Bは、第1実施形態の情報共有方法を説明するための図である。
【図3】図3は、第2実施形態の機能構成を説明するための図である。
【図4】図4A及び図4Bは、第2実施形態の情報共有方法を説明するための図である。
【図5】図5は、第2実施形態の変形例の機能構成を説明するための図である。
【図6】図6A及び図6Bは、第2実施形態の変形例の情報共有方法を説明するための図である。
【発明を実施するための形態】
【0018】
図面を参照して本発明の実施形態を説明する。
〔定義〕
まず、本形態で使用する用語及び記号を定義する。
Zq:Zqはqを法とする剰余環を表す。Zqの要素の一例は、qを法とする剰余類の完全代表系である。qを法とする剰余類の完全代表系の一例は{0,...,q-1}である。なお、qは正整数であり、qをビット表現した場合のビット長を例えばL(Lは正整数)とする。安全性の面から位数qは素数であることが望ましい。また、位数qが素数でない場合には、位数qの最大因数のビット長がL以上であることが望ましい。素数であるか否かが不明な正整数をqとして用いてもよい。
【0019】
G,G1,G2,GT:G,G1,G2,GTは巡回群を表す。実施形態の巡回群G,G1,G2は、例えば、位数qの巡回群である。巡回群G,G1,G2としては、例えば、楕円曲線上の有理点のなす群や有限体の乗法群などを用いることができる。楕円曲線上の有理点のなす群をコンピュータ上で実現するための具体的方法には様々なものが存在し、実際、楕円曲線上の有理点のなす群で構成され、コンピュータ上で実装可能な様々な暗号方式が存在する。巡回群GTの具体例は、位数qの有限体Fqを基礎体とする拡大体を構成する有限集合である。その一例は、有限体Fqの代数閉包における1のp乗根からなる有限集合である。楕円曲線上の有理点のなす群や有限体の乗法群などを巡回群GTとしてもよい。G1=G2であってもよいし、G1≠G2であってもよい。
【0020】
g,g1,g2,gT:g,g1,g2,gTは巡回群G,G1,G2,GTの生成元を表す。g1=g2であってもよいし、g1≠g2であってもよい。
【0021】
巡回群Gで定義された演算:巡回群Gの元は「巡回群Gで定義された演算」について群をなす。例えば、巡回群Gが楕円曲線上の有理点のなす群である場合、巡回群Gで定義された演算は楕円曲線上での楕円加算などである。また、例えば、巡回群Gが有限体の乗法群である場合、「巡回群Gでの演算」は、qを法とした剰余乗算などである。なお、実施形態では、巡回群Gで定義された演算を乗法的に表現する。すなわち、α∈Zq及びβ∈Gに対するβα∈Gは、β∈Gに対して巡回群Gで定義された演算をα回施すことを意味し、β1, β2∈Gに対するβ1・β2∈Gは、β1, β2∈G1とを被演算子として巡回群Gで定義された演算を行うことを意味する。例えば、巡回群Gが楕円曲線上の有理点のなす群である場合、βα∈Gは、楕円曲線上の点βを楕円曲線上でα倍する楕円スカラー倍演算を表し、β1・β2∈Gは、楕円曲線上の点β1と点β2とを楕円曲線上で加算する楕円加算演算を表す。また、例えば、巡回群Gが有限体の乗法群である場合、βα∈Gは、βを整数とみなした場合のβα mod qの演算を表し、β1・β2∈Gは、β1及びβ2を整数とみなした場合のβ1・β2 mod qの演算を表す。
【0022】
巡回群Gでの演算:「巡回群Gでの演算」は「巡回群Gで定義された演算」を用いて巡回群G上で実行可能な演算を表す。例えば、巡回群Gが楕円曲線上の有理点のなす群である場合、「巡回群Gでの演算」は、楕円曲線上での楕円加算、楕円スカラー倍算、逆元演算、又は、それらの少なくとも一部の組み合わせた演算を表す。また、例えば、巡回群Gが有限体の乗法群である場合、「巡回群Gでの演算」は、qを法とした剰余乗算、べき乗剰余、逆元演算、又は、それらの少なくとも一部の組み合わせた演算を表す。巡回群G1,G2,GTについても同様である。
【0023】
H:Hは任意の値αをLビットのビット列に写すハッシュ関数を表す。任意の値αの例は任意長のビット列{0,1}*や巡回群の元などである。また、H(α1,...,αn)は、α1,...,αnに対して定まるハッシュ値を表す。例えば、α1,...,αnのそれぞれがすべてビット列なのであれば、α1,...,αnのビット結合α1|...|αnをSHA-1などの公知のハッシュ関数に入力して得られる値をH(α1,...,αn)∈{0,1}Lとする。また、例えば、α1,...,αnの少なくとも一部がビット列以外の値(例えば巡回群Gの元)なのであれば、α1,...,αnの各要素をビット列に写像した値β1,...,βnのビット結合β1|...|βnのビット結合を、SHA-1などの公知のハッシュ関数に入力して得られる値をH(α1,...,αn)∈{0,1}Lとする。このようなハッシュ関数Hは、SHA-1などの公知のハッシュ関数を用いて容易に構成できる。
【0024】
H1,H2:H1は任意の値を巡回群G1に写すハッシュ関数を表し、H1(α)∈G1はαに対して定まるハッシュ値を表す。H2は任意の値を巡回群G2に写すハッシュ関数を表し、H2(α)∈G2はαに対して定まるハッシュ値を表す。αの例は任意長のビット列{0,1}*である。このようなハッシュ関数H1,H2は、SHA-1などの公知のハッシュ関数を用いて容易に構成できる。
【0025】
pj(u0,u1,v0,v1):pj(u0,u1,v0,v1)は、u0,u1,v0,v1∈Zqを不定元とする剰余環Zq上で定義された多項式pj(u0,u1,v0,v1)∈Zq[u0,u1,v0,v1](j=1,...,J, Jは2以上の整数)である。実施形態では以下のように定義される。
【数1】


係数r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)∈Zqは定数であってもよいし、短期公開鍵、公開鍵、ユーザID、公開パラメータなどに依存して値が決まるものであってもよい。
【0026】
e:eは巡回群G1の元と巡回群G2の元とから巡回群GTの元を得る双線形写像e:G1×G2→GTを表わす。双線形写像eは、以下の性質を満たす。
[双線形性]すべてのΩ1∈G1,Ω2∈G2及びν,κ∈Zqについて以下の関係を満たす。
e(Ω1ν2κ)=e(Ω12)ν・κ
[非退化性]すべての
Ω1∈G1,Ω2∈G2
を巡回群GTの単位元に写す写像ではない。
[計算可能性]あらゆるΩ1∈G1,Ω2∈G2についてe(Ω12)を効率的に計算するアルゴリズムが存在する。
双線形写像eの具体例は、WeilペアリングやTateペアリングなどのペアリング演算のための関数やアルゴリズムである。
【0027】
〔第1実施形態〕
<原理>
第1実施形態の原理を説明する。第1実施形態では、第1情報共有装置で任意値tを生成し、任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成して出力する。第2情報共有装置で任意値yを生成し、任意値yと生成元gとを用い、出力情報Y=gy∈Gを生成して出力する。第1情報共有装置で、出力情報Yの入力を受け付け、第2情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、出力情報Yと、第1情報共有装置の秘密情報aと、任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。第2情報共有装置で、出力情報Tの入力を受け付け、第1情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、出力情報Tと、第2情報共有装置の秘密情報bと、任意値yとを用い、各演算式Wj(j=1,...,J)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。
【0028】
本形態の演算式Vj(j=1,...,J)及び演算式Wj(j=1,...,J)は、それぞれ、巡回群Gでの演算を表わす。少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、演算式VmとVnとが互いに相違し、演算式WmとWnとが互いに相違する。共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してg(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)を満たし、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である。すなわち、δm・(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))+δn・(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))=(0, 0, 0, 0)を満たすのはδmn=0である場合に限られる。
【0029】
ここで、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である場合、攻撃者の装置ADVは、第2情報共有装置が共有情報Uj(j=1,...,J)を計算する際に、それらのすべてについて第1情報共有装置の公開情報A=ga∈Gの成分を打ち消すことになるT'をTとして生成するとともに、第1情報共有装置が共有情報Uj(j=1,...,J)を計算する際に、それらのすべてについて第2情報共有装置の公開情報B=gb∈Gの成分を打ち消すことになるY'をYとして生成することができない。すなわち、攻撃者の装置ADVは、第1情報共有装置と第2情報共有装置との両方に成りすまして中間者攻撃を行うことができない。また、本形態では、共有情報Uj(j=1,...,J)の計算のために演算量の大きなハッシュ関数Fを用いる必要はない。これにより、本形態では、高い安全性を確保しつつ、第1情報共有装置と第2情報共有装置とが低い演算量で共有情報を共有できる。
【0030】
また、第1情報共有装置が、共有情報Uj(j=1,...,J)を含む情報を関数に入力して得られる鍵を生成し、第2情報共有装置が、共有情報Uj(j=1,...,J)を含む情報を当該関数に入力して得られる鍵を生成することで、第1情報共有装置と第2情報共有装置とで同一の鍵を共有できる。本形態では、任意値t,yに応じて鍵の値が異なるため、第1情報共有装置と第2情報共有装置との間で上記の処理を行うたびに共有される鍵Kが変化する。なお、関数の例は前述のハッシュ関数Hである。
【0031】
また好ましくは、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、すべてのι(ι=0,1)に対するベクトル(r(m,ι,0), r(m,ι,1))とベクトル(r(n,ι,0), r(n,ι,1))とが一次独立であり、かつ、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、すべてのθ(θ=0,1)に対するベクトル(r(m,0,θ), r(m,1,θ))とベクトル(r(n,0,θ), r(n,1,θ))とが一次独立であり、かつ、aとtとの線形結合をLAj(a,t)とし、bとyとの線形結合をLBj(b,y)とした場合における、すべてのj=1,...,Jについてr(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y=LAj(a,t)・LBj(b,y)を満たす(条件1)。これにより高い安全性を確保できる。
【0032】
また好ましくは、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、すべてのι(ι=0,1)に対するベクトル(r(m,ι,0), r(m,ι,1))とベクトル(r(n,ι,0), r(n,ι,1))とが一次独立であり、かつ、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、すべてのθ(θ=0,1)に対するベクトル(r(m,0,θ), r(m,1,θ))とベクトル(r(n,0,θ), r(n,1,θ))とが一次独立であり、かつ、u0=a, v0=b, u1=t, v1=yとし、u0とu1との線形結合をLAj,ι,*(u0,u1)とし、v0とv1との線形結合をLBj,ι,*(v0,v1)とした場合における、すべてのι(ι=0,1)についてr(j,ι,0)・uι・v0+r(j,ι,1)・uι・v1=LAj,ι,*(u0,u1)・LBj,ι,*(v0,v1)を満たし、かつ、u0とu1との線形結合をLAj,*,θ(u0,u1)とし、v0とv1との線形結合をLBj,*,θ(v0,v1)とした場合における、すべてのθ(θ=0,1)についてr(j,0,θ)・u0・vθ+r(j,1,θ)・u1・vθ=LAj,*,θ(u0,u1)・LBj,*,θ(v0,v1)を満たす(条件2)。これにより高い安全性を確保できる。
【0033】
<構成>
第1実施形態の構成を例示する。図1に例示するように、第1実施形態の情報共有システム1は、情報共有装置110と情報共有装置120とを有する。
情報共有装置110は、記憶部111と入力部112と出力部113と制御部114と任意値生成部115と出力情報生成部116と共有情報生成部117と鍵生成部118とを有する。また、情報共有装置120は、記憶部121と入力部122と出力部123と制御部124と任意値生成部125と出力情報生成部126と共有情報生成部127と鍵生成部128とを有する。
【0034】
情報共有装置110,120は、CPU(central processing unit)、RAM(random-access memory)、ROM(read-only memory)などからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。特別なプログラムはコンピュータのCPUに読み込まれ、CPUが特別なプログラムを実行することで、情報共有装置110,120が構築される。また、特別なプログラムだけではなく汎用ルーチンなどの汎用プログラムもCPUに読み込まれ、CPUが特別なプログラムと汎用プログラムとを実行することで情報共有装置110,120が構築されてもよい。
【0035】
記憶部111,121は、例えば、RAM、キャッシュメモリ、レジスタ、ハードディスク装置等の補助記憶装置、又は、それらの少なくとも一部を結合した記憶領域などである。入力部112,122及び出力部113,123は、例えば、特別なプログラムが読み込まれたCPUの制御のもと駆動する通信装置や入出力インタフェースなどである。制御部114,124、任意値生成部115,125、出力情報生成部116,126、共有情報生成部117,127、及び鍵生成部118,128は、例えば、特別なプログラムが読み込まれたCPUである。なお、制御部114,124、任意値生成部115,125、出力情報生成部116,126、共有情報生成部117,127、及び鍵生成部118,128などの処理部の少なくとも一部が集積回路などのハードウェアで構成されていてもよい。
なお、情報共有装置110,120は、それぞれ、制御部114,124の制御のもと各処理を実行する。また、各演算過程で得られるデータは記憶部111,121に格納され、必要に応じて他の演算に用いられる。
【0036】
<処理>
次に、第1実施形態の処理を例示する。
[前処理]
システム管理者などによって位数q、剰余環Zq、巡回群G、生成元g、ハッシュ関数H、第1情報共有装置110の秘密鍵(秘密情報)a∈Zq及び公開鍵(公開情報)A=ga∈G、第2情報共有装置120の秘密鍵(秘密情報)b∈Zq及び公開鍵(公開情報)B=gb∈Gが定められる。秘密鍵a及び公開鍵A,Bは第1情報共有装置110の記憶部111に格納され、秘密鍵bは第2情報共有装置120の記憶部121に格納される。また、任意値生成部115,125は、剰余環Zqの元を生成するように構成され、出力情報生成部116,126は、生成元gを用いて巡回群G上の演算が可能なように構成され、共有情報生成部117,217は、巡回群G上の演算が可能なように構成され、鍵生成部118,128は、ハッシュ関数Hを用いたハッシュ演算が可能なように構成される。
【0037】
[鍵交換]
次に、図2A及び図2Bを用い、第1実施形態の鍵交換処理を説明する。
第1情報共有装置110(図1)の任意値生成部115がランダムな短期秘密鍵(任意値)tを以下の式(1)のように生成し、生成した短期秘密鍵tを記憶部111に格納する(ステップS111)。
t∈Zq …(1)
例えば、任意値生成部115は、SHA-1等の公知のハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて発生させた擬似乱数を用いて短期秘密鍵t∈Zqを生成する。
【0038】
第1情報共有装置110の出力情報生成部116は、記憶部111から短期秘密鍵tを読み出し、短期秘密鍵tと巡回群Gの生成元gとを用い、出力情報Tを以下の式(2)のように生成し、生成した出力情報Tを記憶部111に格納する(ステップS112)。
T=gt∈G …(2)
記憶部111に格納された公開鍵A,B及び出力情報Tは出力部112に送られ、出力部112は(A,B,T)を出力する(ステップS113)。出力された(A,B,T)は、ネットワークや可搬型記録媒体などを介して第2情報共有装置120に送られる。第2情報共有装置120の入力部122は(A,B,T)の入力を受け付け、(A,B,T)は記憶部121に格納される(ステップS121)。
【0039】
第2情報共有装置120の任意値生成部125がランダムな短期秘密鍵(任意値)yを以下の式(3)のように生成し、生成した短期秘密鍵yを記憶部121に格納する。
y∈Zq …(3)
例えば、任意値生成部125は、SHA-1等の公知のハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて発生させた擬似乱数を用いて短期秘密鍵y∈Zqを生成する(ステップS122)。
【0040】
第2情報共有装置120の出力情報生成部126は、記憶部121から短期秘密鍵yを読み出し、短期秘密鍵yと巡回群Gの生成元gとを用い、出力情報Yを以下の式(4)のように生成し、生成した出力情報Yを記憶部121に格納する(ステップS123)。
Y=gy∈G …(4)
記憶部121に格納された公開鍵A,B、出力情報T及び出力情報Yは出力部123に送られ、出力部123は(A,B,T,Y)を出力する(ステップS124)。出力された(A,B,T,Y)は、ネットワークや可搬型記録媒体などを介して第1情報共有装置110に送られる。第1情報共有装置110の入力部112は(A,B,T,Y)の入力を受け付け、(A,B,T,Y)は記憶部111に格納される(ステップS114)。
【0041】
第1情報共有装置110の共有情報生成部117は、記憶部111から出力情報Yと公開鍵Bと秘密鍵aと短期秘密鍵tとを読み込む。共有情報生成部117は、これらを用いて各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してg(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)を満たす。本形態の演算式Vjは巡回群Gでの演算を表し、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、演算式VmとVnとが互いに相違する。本形態の演算式Vj(j=1,...,J)の例は、以下の式(5)又は式(5)に変形可能な式である。
Uj=Br(j,0,0)・a+r(j,1,0)・t・Yr(j,0,1)・a+r(j,1,1)・t …(5)
式(5)に変形可能な式の例は以下の式(6)-(8)などである。
Uj=Br(j,1,0)・t+r(j,0,0)・a・Yr(j,1,1)・t+r(j,0,1)・a …(6)
Uj=Ba・r(j,0,0)+t・r(j,1,0)・Ya・r(j,0,1)+t・r(j,1,1) …(7)
Uj=Yr(j,0,1)・a+r(j,1,1)・t・Br(j,0,0)・a+r(j,1,0)・t …(8)
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である。好ましくは前述の条件1又は条件2を満たす。生成された共有情報Uj(j=1,...,J)は記憶部111に格納される(ステップS115)。
【0042】
第1情報共有装置110の鍵生成部118が、記憶部111から共有情報Uj(j=1,...,J)と公開鍵A,Bと出力情報T,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1,...,UJ, A, B, T, Y) …(9)
を生成し、生成した鍵Kを出力する(ステップS116)。
【0043】
第2情報共有装置120の共有情報生成部127は、記憶部121から共有情報Uj(j=1,...,J)と公開鍵A,Bと出力情報T,Yとを読み込む。共有情報生成部127は、これらを用いて各演算式Wj(j=1,...,J)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してg(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)を満たす。本形態の演算式Wjは巡回群Gでの演算を表し、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、演算式WmとWnとが互いに相違する。本形態の演算式Wj(j=1,...,J)の例は、以下の式(10)又は式(10)に変形可能な式である。
Uj=Ar(j,0,0)・b+r(j,0,1)・y・Tr(j,1,0)・b+r(j,1,1)・y …(10)
式(10)に変形可能な式の例は以下の式(11)-(13)などである。
Uj=Ar(j,0,1)・y+r(j,0,0)・b・Tr(j,1,1)・y+r(j,1,0)・b …(11)
Uj=Ab・r(j,0,0)+y・r(j,0,1)・Tb・r(j,1,0)+y・r(j,1,1) …(12)
Uj=Tr(j,1,0)・b+r(j,1,1)・y・Ar(j,0,0)・b+r(j,0,1)・y …(13)
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である。好ましくは前述の条件1又は条件2を満たす。生成された共有情報Uj(j=1,...,J)は記憶部121に格納される(ステップS125)。
【0044】
第2情報共有装置120の鍵生成部128は、記憶部121から共有情報Uj(j=1,...,J)と公開鍵A,Bと出力情報T,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1,...,UJ, A, B, T, Y) …(14)
を生成し、生成した鍵Kを出力する(ステップS126)。
【0045】
<本形態の特徴>
巡回群Gは可換群であること、及び剰余環Zqが可換環であることから、式(5)は以下のように変形できる。式(6)-(8)などの式(5)に変形可能な式も同様である。ただし、上付き添え字の「pj(a,t,b,y)」はpj(a,t,b,y)を表す。
Br(j,0,0)・a+r(j,1,0)・t・Yr(j,0,1)・a+r(j,1,1)・t
=gb(r(j,0,0)・a+r(j,1,0)・t)+y(r(j,0,1)・a+r(j,1,1)・t)
=g(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)
=gpj(a,t,b,y)
同様に式(10)は以下のように変形でき、式(5)と等しいことが分かる。式(11)-(13)などの式(10)に変形可能な式も同様である。
Ar(j,0,0)・b+r(j,0,1)・y・Tr(j,1,0)・b+r(j,1,1)・y
=ga(r(j,0,0)・b+r(j,0,1)・y)+t(r(j,1,0)・b+r(j,1,1)・y)
=g(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)
=gpj(a,t,b,y)
【0046】
このように第1情報共有装置110と第2情報共有装置120との間で共有情報Uj(j=1,...,J)を共有でき、鍵Kも共有できる。短期秘密鍵t,yに応じて鍵Kの値が異なるため、第1情報共有装置110と第2情報共有装置120との間で上記の処理を行うたびに共有される鍵Kが変化する。またベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立であるため、前述のように中間者攻撃を防止できる。さらにハッシュ関数を用いることなく第1情報共有装置110と第2情報共有装置120とが共有情報Ujを共有できる。よって本形態では、高い安全性を確保しつつ、第1情報共有装置110と第2情報共有装置120とが低い演算量で共有情報を共有できる。
【0047】
〔第2実施形態〕
次に、本発明のおける第2実施形態を説明する。第2実施形態は双線形写像を用いる例である。以下では第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
【0048】
<原理>
第2実施形態の原理を説明する。第2実施形態では、第1情報共有装置で、任意値tを生成し、任意値tと巡回群G1の生成元g1とを用い、出力情報T=g1t∈G1を生成して出力する。第2情報共有装置で、任意値yを生成し、任意値yと生成元g2とを用い、出力情報Y=g2y∈G2を生成して出力する。第1情報共有装置で、出力情報Yの入力を受け付け、第2情報共有装置の公開情報B=g2b∈G2と、出力情報Yと、秘密情報z及び第1情報共有装置の公開情報A=g1a∈G1に対応する第1情報共有装置の秘密情報C=Az∈G1と、g1zである公開情報P1及び/又はg2zである公開情報P2と、任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。第2情報共有装置で、出力情報Tの入力を受け付け、第1情報共有装置の公開情報A=g1a∈G1と、出力情報Tと、秘密情報z及び公開情報Bに対応する第2情報共有装置の秘密情報D=Bz∈G2と、公開情報P1及び/又は公開情報P2と、任意値yとを用い、各演算式Wj(j=1,...,J)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。
【0049】
本形態の演算式Vj(j=1,...,J)及び演算式Wj(j=1,...,J)は、それぞれ、巡回群G1の元と巡回群G2の元とから巡回群GTの元を得る双線形写像e:G1×G2→GTを含む。少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、演算式VmとVnとが互いに相違し、演算式WmとWnとが互いに相違する。共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してgTz・(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)∈GTを満たし、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である。
【0050】
これにより本形態でも、高い安全性を確保しつつ、第1情報共有装置と第2情報共有装置とが低い演算量で共有情報を共有できる。また本形態でも前述の条件1又は条件2を満たすことが望ましい。これにより高い安全性を確保できる。
【0051】
また、第1情報共有装置が、共有情報Uj(j=1,...,J)を含む情報を関数に入力して得られる鍵を生成し、第2情報共有装置が、共有情報Uj(j=1,...,J)を含む情報を当該関数に入力して得られる鍵を生成することで、第1情報共有装置と第2情報共有装置とで同一の鍵を共有できる。本形態では、任意値t,yに応じて鍵の値が異なるため、第1情報共有装置と第2情報共有装置との間で上記の処理を行うたびに共有される鍵Kが変化する。
【0052】
<構成>
第2実施形態の構成を例示する。図3に例示するように、第2実施形態の情報共有システム2は、情報共有装置210と情報共有装置220とを有する。
情報共有装置210は、記憶部211と入力部212と出力部213と制御部114と任意値生成部115と出力情報生成部216と共有情報生成部217と鍵生成部218とを有する。また、情報共有装置220は、記憶部221と入力部222と出力部223と制御部124と任意値生成部125と出力情報生成部226と共有情報生成部227と鍵生成部228とを有する。
【0053】
第1実施形態と同様、情報共有装置210,220は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。処理部の少なくとも一部が集積回路などのハードウェアで構成されていてもよい。なお、情報共有装置210,220は、それぞれ、制御部114,124の制御のもと各処理を実行する。また、各演算過程で得られるデータは記憶部211,221に格納され、必要に応じて他の演算に用いられる。
【0054】
<処理>
次に、第2実施形態の処理を例示する。
[前処理]
位数q、剰余環Zq、巡回群G1,G2,GT、生成元g1,g1,gT、双線形写像e:G1×G2→GT、ハッシュ関数H,H1,H2、マスタ秘密鍵(秘密情報)z∈Zq、g1zであるマスタ公開鍵(公開情報)P1及び/又はg2zであるマスタ公開鍵(公開情報)P2が定められる。第1情報共有装置210を利用するユーザの識別子IDA(例えばIDA∈{0,1}*)、及び第2情報共有装置220を利用するユーザの識別子IDB(例えばIDB∈{0,1}*)が定められる。識別子IDAに対して鍵(公開情報)A=H1(IDA)∈G1が設定され、識別子IDBに対して鍵(公開情報)B=H2(IDB)∈G2が設定される。A,Bはa,b∈ZqについてA=g1a∈G1及びB=g2b∈G2を満たす。さらにマスタ秘密鍵zを用い、Aに対応する第1情報共有装置210の秘密鍵(秘密情報)C=Az∈G1と、Bに対応する第2情報共有装置220の秘密鍵(秘密情報)D=Bz∈G2とが設定される。これらの処理はシステム管理者などによってなされる。第2実施形態ではG1=G2、g1=g2、H1=H2、P1=P2とする。
【0055】
第2情報共有装置220の鍵B、第1情報共有装置210の秘密鍵C、マスタ公開鍵P1、識別子IDA,IDBは第1情報共有装置210の記憶部211に格納される。第1情報共有装置210の鍵A、第2情報共有装置220の秘密鍵D、マスタ公開鍵P2、識別子IDA,IDBは第2情報共有装置220の記憶部221に格納される。出力情報生成部216,226は、それぞれ生成元g1,g2を用いて巡回群G1,G2上の演算が可能なように構成され、共有情報生成部217,217は、双線形写像eの演算や巡回群G1,G2上の演算が可能なように構成される。
【0056】
[鍵交換]
次に、図4A及び図4Bを用い、第2実施形態の鍵交換処理を説明する。
第1情報共有装置210(図3)の任意値生成部115がランダムな短期秘密鍵(任意値)tを前述の式(1)のように生成し、生成した短期秘密鍵tを記憶部211に格納する(ステップS111)。
【0057】
第1情報共有装置210の出力情報生成部216は、記憶部211から短期秘密鍵tを読み出し、短期秘密鍵tと巡回群G1の生成元g1とを用い、出力情報Tを以下の式(15)のように生成し、生成した出力情報Tを記憶部211に格納する(ステップS212)。
T=g1t∈G1 …(15)
記憶部211に格納された識別子IDA,IDB及び出力情報Tは出力部212に送られ、出力部212は(IDA,IDB,T)を出力する(ステップS213)。出力された(IDA,IDB,T)は、ネットワークや可搬型記録媒体などを介して第2情報共有装置220に送られる。第2情報共有装置220の入力部222は(IDA,IDB,T)の入力を受け付け、(IDA,IDB,T)は記憶部221に格納される(ステップS221)。
【0058】
第2情報共有装置220の任意値生成部125がランダムな短期秘密鍵(任意値)yを前述の式(3)のように生成し、生成した短期秘密鍵yを記憶部221に格納する(ステップS122)。
【0059】
第2情報共有装置220の出力情報生成部226は、記憶部221から短期秘密鍵yを読み出し、短期秘密鍵yと巡回群G2の生成元g2とを用い、出力情報Yを以下の式(16)のように生成し、生成した出力情報Yを記憶部221に格納する(ステップS223)。
Y=g2y∈G2 …(16)
記憶部221に格納された識別子IDA,IDB、出力情報T及び出力情報Yは出力部223に送られ、出力部223は(IDA,IDB,T,Y)を出力する(ステップS224)。出力された(A,B,T,Y)は、ネットワークや可搬型記録媒体などを介して第1情報共有装置210に送られる。第1情報共有装置210の入力部212は(IDA,IDB,T,Y)の入力を受け付け、(IDA,IDB,T,Y)は記憶部211に格納される(ステップS214)。
【0060】
第1情報共有装置210の共有情報生成部217は、記憶部211から第2情報共有装置220の鍵B=g2b∈G2と出力情報Yと第1情報共有装置210の秘密鍵Cとマスタ公開鍵P1と短期秘密鍵tを読み込む。共有情報生成部217は、これらを用いて各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してgTz・(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)∈GTを満たす。本形態の演算式Vjは、それぞれ双線形写像e:G1×G2→GTからなり、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、演算式VmとVnとが互いに相違する。本形態の演算式Vj(j=1,...,J)の例は、以下の式(17)又は式(17)に変形可能な式である。
Uj=e(Cr(j,0,0)・P1r(j,1,0)・t,B)・e(Cr(j,0,1)・P1r(j,1,1)・t,Y) …(17)
式(17)に変形可能な式の例は以下の式(18)-(20)などである。
Uj=e(Cr(j,0,1)・P1r(j,1,1)・t,Y)・e(Cr(j,0,0)・P1r(j,1,0)・t,B) …(18)
Uj=e(P1r(j,1,0)・t・Cr(j,0,0),B)・e(P1r(j,1,1)・t・Cr(j,0,1),Y) …(19)
Uj=e(P1r(j,1,1)・t・Cr(j,0,1),Y)・e(P1r(j,1,0)・t・Cr(j,0,0),B) …(20)
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である。好ましくは前述の条件1又は条件2を満たす。生成された共有情報Uj(j=1,...,J)は記憶部211に格納される(ステップS215)。
【0061】
第1情報共有装置210の共有情報生成部217は、記憶部211から出力情報Yと短期秘密鍵tを読み込む。共有情報生成部217は、共有情報UJ+1を以下の式(21)のように生成し、生成した共有情報UJ+1を記憶部211に格納する(ステップS216)。
UJ+1=Yt∈G2 …(21)
【0062】
第1情報共有装置210の鍵生成部218が、記憶部211から共有情報Uj(j=1,...,J)と共有情報UJ+1と識別子IDA,IDBと出力情報T,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1,...,UJ, IDA, IDB, T, Y) …(22)
を生成し、生成した鍵Kを出力する(ステップS217)。
【0063】
第2情報共有装置220の共有情報生成部227は、記憶部221から第1情報共有装置210の鍵A=g1a∈G1と出力情報Tと第2情報共有装置220の秘密鍵D=Bz∈G2とマスタ公開鍵P2と短期秘密鍵yを読み込む。共有情報生成部227は、これらを用いて各演算式Wj(j=1,...,J)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する。共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してgTz・(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)∈GTを満たす。本形態の演算式Wjは、それぞれ双線形写像e:G1×G2→GTからなり、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、演算式WmとWnとが互いに相違する。本形態の演算式Wj(j=1,...,J)の例は、以下の式(23)又は式(23)に変形可能な式である。
Uj=e(A,Dr(j,0,0)・P2r(j,0,1)・y)・e(T,Dr(j,1,0)・P2r(j,1,1)・y) …(23)
式(17)に変形可能な式の例は以下の式(24)-(26)などである。
Uj=e(T,Dr(j,1,0)・P2r(j,1,1)・y)・e(A,Dr(j,0,0)・P2r(j,0,1)・y) …(24)
Uj=e(A,P2r(j,0,1)・y・Dr(j,0,0))・e(T,P2r(j,1,1)・y・Dr(j,1,0)) …(25)
Uj=e(T,P2r(j,1,1)・y・Dr(j,1,0))・e(A,P2r(j,0,1)・y・Dr(j,0,0)) …(26)
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である。好ましくは前述の条件1又は条件2を満たす。生成された共有情報Uj(j=1,...,J)は記憶部221に格納される(ステップS225)。
【0064】
第2情報共有装置220の共有情報生成部227は、記憶部221から出力情報Tと短期秘密鍵yを読み込む。共有情報生成部227は、共有情報UJ+1を以下の式(27)のように生成し、生成した共有情報UJ+1を記憶部221に格納する(ステップS226)。
UJ+1=Ty∈G1 …(27)
【0065】
第2情報共有装置220の鍵生成部228が、記憶部221から共有情報Uj(j=1,...,J)と共有情報UJ+1と識別子IDA,IDBと出力情報T,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1,...,UJ, IDA, IDB, T, Y) …(28)
を生成し、生成した鍵Kを出力する(ステップS227)。
【0066】
<本形態の特徴>
双線形写像eの双線形性、巡回群Gが可換群であること、及び剰余環Zqが可換環であることから、式(17)は以下のように変形できる。式(18)-(20)などの式(17)に変形可能な式も同様である。ただし、上付き添え字の「pj(a,t,b,y)」はpj(a,t,b,y)を表す。
e(Cr(j,0,0)・P1r(j,1,0)・t,B)・e(Cr(j,0,1)・P1r(j,1,1)・t,Y)
=e(g1r(j,0,0)・a・z+r(j,1,0)・t・z,g2b)・e(g1r(j,0,1)・a・z+r(j,1,1)・t・z,g2y)
=gTr(j,0,0)・a・b・z+r(j,1,0)・t・b・z・gTr(j,0,1)・a・y・z+r(j,1,1)・t・y・z
=gTz(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)
=gTz・pj(a,t,b,y)
同様に式(23)は以下のように変形でき、式(17)と等しいことが分かる。式(24)-(26)などの式(23)に変形可能な式も同様である。
e(A,Dr(j,0,0)・P2r(j,0,1)・y)・e(T,Dr(j,1,0)・P2r(j,1,1)・y)
=e(g1a, g2r(j,0,0)・b・z+r(j,0,1)・y・z)・e(g1t, g2r(j,1,0)・b・z+r(j,1,1)・y・z)
=gTa(r(j,0,0)・b・z+r(j,0,1)・y・z)・gTt(r(j,1,0)・b・z+r(j,1,1)・y・z)
=gTz(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)
=gTz・pj(a,t,b,y)
【0067】
巡回群G1,G2が可換群であること、剰余環Zqが可換環であること、及び本形態ではG1=G2及びg1=g2あることから、式(21)は以下のように変形でき、式(27)と等しいことが分かる。
Yt=g2y・t=g1t・y=Ty
【0068】
このように第1情報共有装置210と第2情報共有装置220との間で共有情報Uj(j=1,...,J),UJ+1を共有でき、鍵Kも共有できる。短期秘密鍵t,yに応じて鍵Kの値が異なるため、第1情報共有装置210と第2情報共有装置220との間で上記の処理を行うたびに共有される鍵Kが変化する。またベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立であるため、前述のように中間者攻撃を防止できる。さらにハッシュ関数を用いることなく第1情報共有装置210と第2情報共有装置220とが共有情報Ujを共有できる。よって本形態では、高い安全性を確保しつつ、第1情報共有装置210と第2情報共有装置220とが低い演算量で共有情報を共有できる。
【0069】
〔第2実施形態の変形例〕
次に、本発明のおける第2実施形態の変形例を説明する。この変形例は、G1とG2が同一であるか否か、g1とg2が同一であるか否か、H1とH2が同一であるか否か、P1とP2が同一であるか否かにかかわらず、実行可能なものである。以下では第1,2実施形態との相違点を中心に説明し、第1,2実施形態と共通する事項については説明を省略する。
【0070】
<構成>
第2実施形態の変形例の構成を例示する。図5に例示するように、第2実施形態の変形例の情報共有システム3は、情報共有装置310と情報共有装置320とを有する。
情報共有装置310は、記憶部311と入力部312と出力部313と制御部114と任意値生成部115と出力情報生成部316と共有情報生成部317と鍵生成部318とを有する。また、情報共有装置320は、記憶部321と入力部322と出力部323と制御部124と任意値生成部125と出力情報生成部326と共有情報生成部327と鍵生成部328とを有する。
【0071】
第1実施形態と同様、情報共有装置310,320は、CPU、RAM、ROMなどからなる公知又は専用のコンピュータと特別なプログラムとを有する特別な装置である。処理部の少なくとも一部が集積回路などのハードウェアで構成されていてもよい。なお、情報共有装置310,320は、それぞれ、制御部114,124の制御のもと各処理を実行する。また、各演算過程で得られるデータは記憶部311,321に格納され、必要に応じて他の演算に用いられる。
【0072】
<処理>
次に、第2実施形態の変形例の処理を例示する。
[前処理]
G1=G2、g1=g2、H1=H2、P1=P2であってもなくてもよいこと以外、第2実施形態と同様である。
【0073】
[鍵交換]
次に、図6A及び図6Bを用い、第3実施形態の鍵交換処理を説明する。
任意値生成部115及び出力情報生成部316が前述のステップS111及びS212の処理をそれぞれ実行する。さらに第1情報共有装置310(図5)の出力情報生成部316が、記憶部311から短期秘密鍵tを読み出し、短期秘密鍵tと巡回群G2の生成元g2とを用い、出力情報T2を以下の式(29)のように生成し、生成した出力情報Tを記憶部311に格納する(ステップS312)。
T2=g2t∈G2 …(29)
記憶部311に格納された識別子IDA,IDB及び出力情報T,T2は出力部312に送られ、出力部312は(IDA,IDB,T,T2)を出力する(ステップS313)。出力された(IDA,IDB,T,T2)は、ネットワークや可搬型記録媒体などを介して第2情報共有装置320に送られる。第2情報共有装置320の入力部222は(IDA,IDB,T,T2)の入力を受け付け、(IDA,IDB,T,T2)は記憶部321に格納される(ステップS321)。
【0074】
任意値生成部125及び出力情報生成部326が前述のステップS121及びS223の処理をそれぞれ実行する。さらに第2情報共有装置320の出力情報生成部326が、記憶部321から短期秘密鍵yを読み出し、短期秘密鍵yと巡回群G1の生成元g1とを用い、出力情報Y1を以下の式(30)のように生成し、生成した出力情報Y1を記憶部321に格納する(ステップS323)。
Y1=g1y∈G1 …(30)
記憶部321に格納された識別子IDA,IDB、出力情報T,T2及び出力情報Y1,Yは出力部323に送られ、出力部323は(IDA,IDB,T,T2,Y1,Y)を出力する(ステップS324)。出力された(IDA,IDB,T,T2,Y1,Y)は、ネットワークや可搬型記録媒体などを介して第1情報共有装置310に送られる。第1情報共有装置310の入力部312は(IDA,IDB,T,T2,Y1,Y)の入力を受け付け、(IDA,IDB,T,T2,Y1,Y)は記憶部311に格納される(ステップS314)。
【0075】
共有情報生成部317が前述のステップS215の処理を実行する。さらに共有情報生成部317は記憶部311から出力情報Y1,Yと短期秘密鍵tを読み込む。共有情報生成部317は、共有情報1UJ+1,2UJ+1を以下の式(31)(32)のように生成し、生成した共有情報1UJ+1,2UJ+1を記憶部311に格納する(ステップS316)。
1UJ+1=Y1t∈G1 …(31)
2UJ+1=Yt∈G2 …(32)
【0076】
第1情報共有装置310の鍵生成部318が、記憶部311から共有情報Uj(j=1,...,J)と共有情報1UJ+1,2UJ+1と識別子IDA,IDBと出力情報T,T2,Y1,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1,...,UJ, 1UJ+1,2UJ+1 IDA, IDB, T, T2, Y1, Y) …(33)
を生成し、生成した鍵Kを出力する(ステップS317)。
【0077】
共有情報生成部327は前述のステップS225の処理を実行する。さらに共有情報生成部327は、記憶部321から出力情報T,T2と短期秘密鍵yを読み込む。共有情報生成部327は、共有情報1UJ+1,2UJ+1を以下の式(34)(35)のように生成し、生成した共有情報1UJ+1,2UJ+1を記憶部321に格納する(ステップS326)。
1UJ+1=Ty∈G1 …(34)
2UJ+1=T2y∈G2 …(35)
【0078】
第2情報共有装置320の鍵生成部328が、記憶部321から共有情報Uj(j=1,...,J)と共有情報1UJ+1,2UJ+1と識別子IDA,IDBと出力情報T,T2,Y1,Yとを読み込み、これらを含む情報をハッシュ関数Hに入力し、鍵
K=H(U1,...,UJ, 1UJ+1,2UJ+1 IDA, IDB, T, T2, Y1, Y) …(36)
を生成し、生成した鍵Kを出力する(ステップS327)。
【0079】
<本形態の特徴>
第2実施形態と同様、第1情報共有装置310で生成された共有情報Uj(j=1,...,J)と第2情報共有装置320で生成された共有情報Uj(j=1,...,J)とはそれぞれ等しくなる。
巡回群G1,G2が可換群であること、及び剰余環Zqが可換環であることから、式(31)は以下のように変形でき、式(34)と等しいことが分かる。
Y1t=g1y・t=g1t・y=Ty∈G1
同様に、式(32)は以下のように変形でき、式(35)と等しいことが分かる。
Yt=g2y・t=g2t・y=T2y∈G2
【0080】
このように第1情報共有装置310と第2情報共有装置320との間で共有情報Uj(j=1,...,J), 1UJ+1, 2UJ+1を共有でき、鍵Kも共有できる。短期秘密鍵t,yに応じて鍵Kの値が異なるため、第1情報共有装置310と第2情報共有装置320との間で上記の処理を行うたびに共有される鍵Kが変化する。またベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立であるため、前述のように中間者攻撃を防止できる。さらにハッシュ関数を用いることなく第1情報共有装置310と第2情報共有装置320とが共有情報Ujを共有できる。よって本形態では、高い安全性を確保しつつ、第1情報共有装置310と第2情報共有装置320とが低い演算量で共有情報を共有できる。
【0081】
〔その他の変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、第1実施形態ではK=H(U1,...,UJ, A, B, T, Y)の計算によって、第2実施形態ではK=H(U1,...,UJ, IDA, IDB, T, Y)の計算によって、その変形例ではK=H(U1,...,UJ, 1UJ+1,2UJ+1 IDA, IDB, T, T2, Y1, Y)の計算によってそれぞれ鍵Kを生成した。しかし、すべての共有情報Uj(j=1,...,J)を含む情報γとし、K=H(γ)の計算によって鍵を生成するのであれば、その他の情報をγとして鍵Kを生成してもよい。ただし、第1情報共有装置と第2情報共有装置とでのγは同一の構成とする。例えば第1実施形態において、K=H(U1,...,UJ)、K=H(U1,...,UJ, A, B)、K=H(U1,...,UJ, T, Y)、K=H(U1,...,UJ, A, B, T, Y, Ψ)、K=H(U1,...,UJ, Ψ)などによって鍵Kが生成されてもよい。Ψは公開パラメータやアルゴリズムIDなどの付加情報である。またγを構成するビット列の結合順序に限定はない。
【0082】
また、各実施形態では、ハッシュ関数Hの出力ビット数をLとしたが、ハッシュ関数の出力ビット数がL以外であってもよい。さらに、各実施形態ではHがハッシュ関数である場合を例示したが、Hが共通鍵暗号関数、入力値をビット列に変換してからビット結合する関数など、どの他の関数をHとして用いてもかまわない。
【0083】
また、各実施形態では、共有情報Uj(j=1,...,J)を用いて鍵Kを生成することとしたが、鍵Kを生成することなく、共有情報Uj(j=1,...,J)そのものが暗号化処理その他の処理に利用されてもよい。
【0084】
また、上記の第1実施形態では、秘密情報aが第1情報共有装置の秘密鍵そのものであり、秘密情報bが第2情報共有装置の秘密鍵そのものであるとした。しかし、秘密情報a, bが秘密鍵そのものでなく、第1情報共有装置の秘密鍵の関数値をaとし、第2情報共有装置の秘密鍵の関数値をbとしてもよい。秘密鍵の関数値の例は、秘密鍵と定数又は変数との加算値、秘密鍵のべき乗値、秘密鍵のべき乗値と定数又は変数との加算値、秘密鍵の逆元値、秘密鍵の逆元値と定数又は変数との加算値、秘密鍵のハッシュ値などである。なお、定数や変数は、正であってもよいし負であってもよい。
【0085】
また、各実施形態において剰余環Zqの要素として説明した値が体の要素であってもよいし、整数であってもよい。
【0086】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0087】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。なお、当該プログラムは、上述した特別なプログラムであってもよいし、特別なプログラムと汎用プログラムとの結合であってもよい。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、各形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0088】
1〜3 情報共有システム
110〜310 第1情報共有装置
120〜320 第2情報共有装置

【特許請求の範囲】
【請求項1】
第1情報共有装置と第2情報共有装置とが情報を共有する情報共有方法であって、
前記第1情報共有装置で、任意値tを生成するステップと、
前記第1情報共有装置で、前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成するステップと、
前記第1情報共有装置で、前記出力情報Tを出力するステップと、
前記第2情報共有装置で、任意値yを生成するステップと、
前記第2情報共有装置で、前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成するステップと、
前記第2情報共有装置で、前記出力情報Yを出力するステップと、
前記第1情報共有装置で、前記出力情報Yの入力を受け付けるステップと、
前記第1情報共有装置で、前記第2情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、前記第1情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成するステップと、
前記第2情報共有装置で、前記出力情報Tの入力を受け付けるステップと、
前記第2情報共有装置で、前記第1情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第2情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj(j=1,...,J)がそれぞれ表す前記共有情報Uj(j=1,...,J)を生成するステップと、を有し、
前記演算式Vj(j=1,...,J)及び前記演算式Wj(j=1,...,J)は、それぞれ、前記巡回群Gでの演算を表し、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、前記演算式VmとVnとが互いに相違し、前記演算式WmとWnとが互いに相違し、
前記共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してg(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)を満たし、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である、
ことを特徴とする情報共有方法。
【請求項2】
請求項1の情報共有方法であって、
前記演算式Vjは、Uj=Br(j,0,0)・a+r(j,1,0)・t・Yr(j,0,1)・a+r(j,1,1)・t又はそれに変形可能な式であり、
前記演算式Wjは、Uj=Ar(j,0,0)・b+r(j,0,1)・y・Tr(j,1,0)・b+r(j,1,1)・y又はそれに変形可能な式である、
ことを特徴とする情報共有方法。
【請求項3】
第1情報共有装置と第2情報共有装置とが情報を共有する情報共有方法であって、
前記第1情報共有装置で、任意値tを生成するステップと、
前記第1情報共有装置で、前記任意値tと巡回群G1の生成元g1とを用い、出力情報T=g1t∈G1を生成するステップと、
前記第1情報共有装置で、前記出力情報Tを出力するステップと、
前記第2情報共有装置で、任意値yを生成するステップと、
前記第2情報共有装置で、前記任意値yと前記生成元g2とを用い、出力情報Y=g2y∈G2を生成するステップと、
前記第2情報共有装置で、前記出力情報Yを出力するステップと、
前記第1情報共有装置で、前記出力情報Yの入力を受け付けるステップと、
前記第1情報共有装置で、前記第2情報共有装置の公開情報B=g2b∈G2と、前記出力情報Yと、秘密情報z及び前記第1情報共有装置の公開情報A=g1a∈G1に対応する前記第1情報共有装置の秘密情報C=Az∈G1と、g1zである公開情報P1及び/又はg2zである公開情報P2と、前記任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成するステップと、
前記第2情報共有装置で、前記出力情報Tの入力を受け付けるステップと、
前記第2情報共有装置で、前記第1情報共有装置の公開情報A=g1a∈G1と、前記出力情報Tと、前記秘密情報z及び前記公開情報Bに対応する前記第2情報共有装置の秘密情報D=Bz∈G2と、前記公開情報P1及び/又は前記公開情報P2と、前記任意値yとを用い、各演算式Wj(j=1,...,J)がそれぞれ表す前記共有情報Uj(j=1,...,J)を生成するステップと、を有し、
前記演算式Vj(j=1,...,J)及び前記演算式Wj(j=1,...,J)は、それぞれ、前記巡回群G1の元と前記巡回群G2の元とから巡回群GTの元を得る双線形写像e:G1×G2→GTを含み、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、前記演算式VmとVnとが互いに相違し、前記演算式WmとWnとが互いに相違し、
前記共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してgTz・(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)∈GTを満たし、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である、
ことを特徴とする情報共有方法。
【請求項4】
請求項3の情報共有方法であって、
前記演算式Vjは、Uj=e(Cr(j,0,0)・P1r(j,1,0)・t,B)・e(Cr(j,0,1)・P1r(j,1,1)・t,Y)又はそれに変形可能な式であり、かつ、
前記演算式Wjは、Uj=e(A,Dr(j,0,0)・P2r(j,0,1)・y)・e(T,Dr(j,1,0)・P2r(j,1,1)・y)又はそれに変形可能な式である、
ことを特徴とする情報共有方法。
【請求項5】
請求項3又は4の情報共有方法であって、
G1=G2及びg1=g2であり、
前記第1情報共有装置で、Ytを共有情報UJ+1として生成するステップと、
前記第2情報共有装置で、Tyを前記共有情報UJ+1として生成するステップと、
を有する情報共有方法。
【請求項6】
請求項3又は4の情報共有方法であって、
前記第1情報共有装置で、前記任意値tと前記生成元g2とを用い、出力情報T2=g2t∈G2を生成するステップと、
前記第1情報共有装置で、前記出力情報T2を出力するステップと、
前記第2情報共有装置で、前記任意値yと前記生成元g1とを用い、出力情報Y1=g1y∈G2を生成するステップと、
前記第2情報共有装置で、前記出力情報Y1を出力するステップと、
前記第1情報共有装置で、Y1tを共有情報1UJ+1として生成するステップと、
前記第1情報共有装置で、Ytを共有情報2UJ+1として生成するステップと、
前記第2情報共有装置で、Tyを共有情報1UJ+1として生成するステップと、
前記第2情報共有装置で、T2yを共有情報2UJ+1として生成するステップと、
を有する情報共有方法。
【請求項7】
請求項1から6の何れかの情報共有方法であって、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、すべてのι(ι=0,1)に対するベクトル(r(m,ι,0), r(m,ι,1))とベクトル(r(n,ι,0), r(n,ι,1))とが一次独立であり、かつ、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、すべてのθ(θ=0,1)に対するベクトル(r(m,0,θ), r(m,1,θ))とベクトル(r(n,0,θ), r(n,1,θ))とが一次独立であり、かつ、
aとtとの線形結合をLAj(a,t)とし、bとyとの線形結合をLBj(b,y)とした場合における、すべてのj=1,...,Jについてr(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y=LAj(a,t)・LBj(b,y)を満たす、
ことを特徴とする情報共有方法。
【請求項8】
請求項1から6の何れかの情報共有方法であって、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、すべてのι(ι=0,1)に対するベクトル(r(m,ι,0), r(m,ι,1))とベクトル(r(n,ι,0), r(n,ι,1))とが一次独立であり、かつ、少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、すべてのθ(θ=0,1)に対するベクトル(r(m,0,θ), r(m,1,θ))とベクトル(r(n,0,θ), r(n,1,θ))とが一次独立であり、かつ、
u0=a, v0=b, u1=t, v1=yとし、u0とu1との線形結合をLAj,ι,*(u0,u1)とし、v0とv1との線形結合をLBj,ι,*(v0,v1)とした場合における、すべてのι(ι=0,1)についてr(j,ι,0)・uι・v0+r(j,ι,1)・uι・v1=LAj,ι,*(u0,u1)・LBj,ι,*(v0,v1)を満たし、かつ、u0とu1との線形結合をLAj,*,θ(u0,u1)とし、v0とv1との線形結合をLBj,*,θ(v0,v1)とした場合における、すべてのθ(θ=0,1)についてr(j,0,θ)・u0・vθ+r(j,1,θ)・u1・vθ=LAj,*,θ(u0,u1)・LBj,*,θ(v0,v1)を満たす、
ことを特徴とする情報共有方法。
【請求項9】
請求項1から8の何れかの情報共有方法であって、
前記第1情報共有装置で、前記第1情報共有装置で得られた前記共有情報Uj(j=1,...,J)を含む情報を関数に入力して得られる鍵を生成するステップと、
前記第2情報共有装置で、前記第2情報共有装置で得られた前記共有情報Uj(j=1,...,J)を含む情報を前記関数に入力して得られる前記鍵を生成するステップと、
を有する情報共有方法。
【請求項10】
他の装置と情報を共有する情報共有装置であって、
任意値tを生成する任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する出力情報生成部と、
前記出力情報Tを出力する出力部と、
出力情報Yの入力を受け付ける入力部と、
前記第2情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、秘密情報aと、前記任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する共有情報生成部と、を有し、
前記演算式Vj(j=1,...,J)は、それぞれ前記巡回群Gでの演算を表し、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、前記演算式VmとVnとが互いに相違し、
前記共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してg(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)を満たし、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である、
ことを特徴とする情報共有装置。
【請求項11】
他の装置と情報を共有する情報共有装置であって、
任意値tを生成する任意値生成部と、
前記任意値tと巡回群G1の生成元g1とを用い、出力情報T=g1t∈G1を生成する出力情報生成部と、
前記出力情報Tを出力する出力部と、
前記出力情報Yの入力を受け付ける入力部と、
前記第2情報共有装置の公開情報B=g2b∈G2と、前記出力情報Yと、秘密情報z及び前記第1情報共有装置の公開情報A=g1a∈G1に対応する前記第1情報共有装置の秘密情報C=Az∈G1と、g1zである公開情報P1及び/又はg2zである公開情報P2と、前記任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する共有情報生成部と、を有し、
前記演算式Vj(j=1,...,J)は、それぞれ、前記巡回群G1の元と前記巡回群G2の元とから巡回群GTの元を得る双線形写像e:G1×G2→GTを含み、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、前記演算式VmとVn(m,n∈{1,...,J},m≠n)とが互いに相違し、
前記共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してgTz・(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)∈GTを満たし、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である、
ことを特徴とする情報共有装置。
【請求項12】
第1情報共有装置と第2情報共有装置とを有し、
前記第1情報共有装置は、
任意値tを生成する第1任意値生成部と、
前記任意値tと巡回群Gの生成元gとを用い、出力情報T=gt∈Gを生成する第1出力情報生成部と、
前記出力情報Tを出力する第1出力部と、を有し、
前記第2情報共有装置は、
任意値yを生成する第2任意値生成部と、
前記任意値yと前記生成元gとを用い、出力情報Y=gy∈Gを生成する第2出力情報生成部と、
前記出力情報Yを出力する第出力部と、を有し、
前記第1情報共有装置は、さらに、
前記出力情報Yの入力を受け付ける第1入力部と、
前記第2情報共有装置の秘密情報bに対応する公開情報B=gb∈Gと、前記出力情報Yと、前記第1情報共有装置の秘密情報aと、前記任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する第1共有情報生成部と、を有し、
前記第2情報共有装置は、さらに、
前記出力情報Tの入力を受け付ける第2入力部と、
前記第1情報共有装置の秘密情報aに対応する公開情報A=ga∈Gと、前記出力情報Tと、前記第2情報共有装置の秘密情報bと、前記任意値yとを用い、各演算式Wj(j=1,...,J)がそれぞれ表す前記共有情報Uj(j=1,...,J)を生成する第2共有情報生成部と、を有し、
前記演算式Vj(j=1,...,J)及び前記演算式Wj(j=1,...,J)は、それぞれ、前記巡回群Gでの演算を表し、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、前記演算式VmとVnとが互いに相違し、前記演算式WmとWnとが互いに相違し、
前記共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してg(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)を満たし、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である、
ことを特徴とする情報共有システム。
【請求項13】
第1情報共有装置と第2情報共有装置とを有し、
前記第1情報共有装置は、
任意値tを生成する第1任意値生成部と、
前記任意値tと巡回群G1の生成元g1とを用い、出力情報T=g1t∈G1を生成する第1出力情報生成部と、
前記出力情報Tを出力する第1出力部と、を有し、
前記第2情報共有装置は、
任意値yを生成する第2任意値生成部と、
前記任意値yと前記生成元g2とを用い、出力情報Y=g2y∈G2を生成する第2出力情報生成部と、
前記出力情報Yを出力する第2出力部と、を有し、
前記第1情報共有装置は、さらに、
前記出力情報Yの入力を受け付ける第1入力部と、
前記第2情報共有装置の公開情報B=g2b∈G2と、前記出力情報Yと、秘密情報z及び前記第1情報共有装置の公開情報A=g1a∈G1に対応する前記第1情報共有装置の秘密情報C=Az∈G1と、g1zである公開情報P1及び/又はg2zである公開情報P2と、前記任意値tとを用い、各演算式Vj(j=1,...,J、Jは2以上の整数)がそれぞれ表す共有情報Uj(j=1,...,J)を生成する第1共有情報生成部と、を有し、
前記第2情報共有装置は、さらに、
前記出力情報Tの入力を受け付ける第2入力部と、
前記第1情報共有装置の公開情報A=g1a∈G1と、前記出力情報Tと、前記秘密情報z及び前記公開情報Bに対応する前記第2情報共有装置の秘密情報D=Bz∈G2と、前記公開情報P1及び/又は前記公開情報P2と、前記任意値yとを用い、各演算式Wj(j=1,...,J)がそれぞれ表す前記共有情報Uj(j=1,...,J)を生成する第2共有情報生成部と、を有し、
前記演算式Vj(j=1,...,J)及び前記演算式Wj(j=1,...,J)は、それぞれ、前記巡回群G1の元と前記巡回群G2の元とから巡回群GTの元を得る双線形写像e:G1×G2→GTを含み、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、前記演算式VmとVnとが互いに相違し、前記演算式WmとWnとが互いに相違し、
前記共有情報Uj(j=1,...,J)は、それぞれ、r(j,0,0), r(j,0,1), r(j,1,0), r(j,1,1)に対してgTz・(r(j,0,0)・a・b+r(j,0,1)・a・y+r(j,1,0)・b・t+r(j,1,1)・t・y)∈GTを満たし、
少なくとも一部のm,n∈{1,...,J}(m≠n)の組について、ベクトル(r(m,0,0), r(m,1,0), r(m,0,1), r(m,1,1))とベクトル(r(n,0,0), r(n,1,0), r(n,0,1), r(n,1,1))とが一次独立である、
ことを特徴とする情報共有システム。
【請求項14】
請求項10又は11の情報共有装置としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate