(57)【特許請求の範囲】
【請求項１】
コンピューティングシステムとシステムサーバとの間の通信セッションのための生体認証キー交換の方法であって、前記方法は、
前記コンピューティングシステムにおいて、ユーザにより提供される第１の生体サンプルを表す第１の生体データセットを受信するステップと、
信頼できる第三機関サーバから、１又は複数の公開パラメータを受信するステップと、
前記公開パラメータ及び前記第１の生体データセットに基づき、前記コンピューティングシステムにおいて、第１の交換情報セットを生成するステップと、
前記コンピューティングシステムにより、前記第１の交換情報セットを前記システムサーバに通信するステップと、
前記システムサーバから、第２の交換情報セットを受信するステップであって、前記第２の交換情報セットは、前記１又は複数の公開パラメータと、前記ユーザにより提供され前記第１の交換情報セットと対称的である第２の生体サンプルを表す第２の生体データセットとに基づく、ステップと、
前記コンピューティングシステムのセッションキーを計算するステップであって、前記の計算は、前記コンピューティングシステムにおいて生成されたハッシュキーに基づく第１のハッシュ関数を前記第２の交換情報セットのサブセットに適用し、前記システムサーバにおいて生成された投影キーに基づく第２のハッシュ関数を前記第１の交換情報セットのサブセットに適用することを含む、ステップと、
前記通信セッションにおける前記コンピューティングシステムと前記システムサーバとの間の通信で前記セッションキーを用いるステップと、
を有する方法。
【請求項２】
前記公開パラメータは、前記第１の生体データセットと前記第２の生体データセットとの間の差を調整するために定められる誤り訂正符号（ＥＣＣ）を含み、
前記ＥＣＣは、以下のＥＣＣ式に従って定められ、
(n',k',２δ'+１)ECC=(Encode,Decode)、
前記第１の生体データセットと前記第２の生体データセットとの間の特定の差は、以下の生体距離式に従って定められ、
DIST(b,b’)<δ’
ＤＩＳＴはハミング距離関数を表し、
ｂは前記第１の生体データセットを表し、
ｂ’は前記第２の生体データセットを表し、
ｎ’は、前記ＥＣＣ式で用いられるコードワードの長さを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、２＾ｋ’は、可能なコードワードの数を表し、
δ’は、前記第１の生体データセットと前記第２の生体データセットが両方とも前記ユーザからのものであることを示す特定の閾値を表し、
Ｅｎｃｏｄｅは、ＥＣＣ符号化演算子を表し、
Ｄｅｃｏｄｅは、ＥＣＣ復号化演算子を表す、
請求項１に記載の方法。
【請求項３】
前記第１の交換情報セットは、前記第１の生体データセットのランダム生体情報を有し、
前記第２の交換情報セットは、前記第２の生体データセットのランダム生体情報を有し、
前記第１の生体データセットの前記ランダム生体情報は、第１のランダム生体情報式であるｘ＝（ｂ）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ））に従って定められ、
前記第２の生体データセットの前記ランダム生体情報は、第２のランダム生体情報式であるｘ’＝（ｂ’）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ’））に従って定められ、
ｘは、前記第１の生体データセットの前記ランダム生体情報を表し、
ｘ’は、前記第２の生体データセットの前記ランダム生体情報を表し、
ＸＯＲは、ＸＯＲ演算子を表し、
ｒ’は、ベクトル空間｛０，１｝ｋ’からサンプリングされた乱数を表し、
ｒは、ベクトル空間｛０，１｝ｋからサンプリングされた乱数を表し、
ｋ’は、前記システムサーバにおいて生成されたハッシュキーを表し、
ｋは、前記コンピューティングシステムにおいて生成されたハッシュキーを表す、
請求項２に記載の方法。
【請求項４】
前記公開パラメータは、双線形グループ式（ｐ，Ｇ１，Ｇ２，ＧＴ，ｅ＾）により表される双線形グループに従って生成され、
前記第１の交換情報セットは、前記コンピューティングシステムにおいて生成される投影キー、変更公開キーに基づき前記コンピューティングシステムにおいて生成される変更暗号文、前記第１の生体データセットのランダム生体情報、を有し、
前記第２の交換情報セットは、前記システムサーバにおいて生成される投影キー、前記変更公開キーに基づき前記システムサーバにおいて生成される変更暗号文、前記第２の生体データセットのランダム生体情報、を有し、
前記第１の交換情報セット及び前記第２の交換情報セットは、以下の変更交換情報式に従って生成され、
EI１=(α(k),C,x),
EI２=(α(k’),C’,x’),
kεZp５,
k’εZp５,
α(k)εG１２×G２５,
α(k’)εG１２×G２５,
r←{０,１}k’,
r’←{０,１}k,
C=ENCTpkm(label,r)εG１４,
C’=ENCTpkm(label’,r’)εG１４,
label=(P,P’,α(k),x),
label’=(P’,P,α(k’),x’);
前記変更公開キーは、以下の落とし戸スムーズプロジェクティブハッシュ関数（trapdoor  smooth-projective  hash  function：ＴＳＰＨＦ）キー生成式に従って生成され、
pkm=(G１,g１-１,g１-２,c,d,h,CRHASH),
g１-１←G１,
g１-２←G１,
(x１,x２,y１,y２,z)←Zp,
c=g１x１g２x２,
d=g１y１g２y２,
h=g１z;
ＥＩ１は、前記第１の交換情報セットを表し、
ＥＩ２は、前記第２の交換情報セットを表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、
Ｚｐ５は、前記双線形グループの素数の次数の整数のセットを表し、
αは、スムーズプロジェクティブハッシュ関数を表し、
Ｃは、前記コンピューティングシステムにおいて生成される変更暗号文を表し、
Ｃ’は、前記システムサーバにおいて生成される変更暗号文を表し、
ＥＮＣＴは、ＴＳＰＨＦ暗号化方式の暗号化演算子を表し、
Ｐは、前記コンピューティングシステムの装置識別子を表し、
Ｐ’は、前記システムサーバの装置識別子を表し、
ｇ１−１は、第１の双線形グループから引き出される第１の生成元を表し、
ｇ１−２は、第１の双線形グループから引き出される第２の生成元を表し、
ｘ１、ｘ２、ｙ１、ｙ２、ｚは、前記素数の次数の整数のセットから引き出される整数を表し、
ｃ、ｄ、ｈは、中間生成元パラメータを表し、
εは、メンバーシップ演算子を表し、
ｘは、積演算子を表し、
←は、ランダム一様引き抜き演算子を表し、
ＣＲＨＡＳＨは、衝突耐性のあるハッシュ関数を表し、
ｐは、前記双線形グループの素数の次数を表し、
Ｇ１は、第１の双線形グループを表し、
Ｇ１は、第２の双線形グループを表し、
ＧＴは、出力双線形グループを表し、
ｅ＾は、ペアリング演算子を表す、
請求項３に記載の方法。
【請求項５】
前記ハッシュキー及び前記投影キーは、以下の変更ハッシュキー生成式に従って生成され、
k=(η１,η２,θ,μ,ν),
η１,η２,θ,μ,ν←Zp,
α(k)=(k１,k２,k３)=(g１-１η１g１-２θhμcν,g１-１η２dν,k３)εG１２×G２５,
k３=(χ１-１,χ１-２,χ２,χ３,χ４)εG２５,
g２←G２,
τ’←Zp,
ζ=g２τ’,
χ１-１=ζη１,
χ１-２=ζη２,
χ２=ζθ,
χ３=ζμ,
χ４=ζν;ここで、
η１,η２,θ,μ,νは、前記ハッシュキーの要素を表し、
ｋ１は、前記投影キーの第１の要素を表し、
ｋ２は、前記投影キーの第２の要素を表し、
ｋ３は、前記投影キーの第３の要素を表し、
χ１−１、χ１−２、χ２、χ３、χ４は、前記投影キーの前記第３の要素の要素を表し、
τ’は、落とし戸を表し、
ζは、第２の共通ランダムストリングを表す、
請求項４に記載の方法。
【請求項６】
前記投影キーの有効性をチェックするステップであって、前記のチェックは、以下の変更有効性チェック式に従って実行される、ステップ、
e^(k１,ζ)＝？e^(g１-１,χ１-１)・e^(g１-２,χ２)・e^(h,χ３)・e^(c,χ４),
e^(k２,ζ)＝？e^(g１-１,χ１-２)・e^(d,χ４)
を更に有する請求項５に記載の方法。
【請求項７】
前記の計算は、以下の第１の変更ハッシュ関数式、第２の変更ハッシュ関数式、及び変更された計算式に従う、
skp=HASHk(label’,C’,x’)・PROJHASHα(k’)(label,C,x;w),
r=Decode((x)XOR(b)),
C=ENCTpkm(label,r)=(u１,u２,e,v),
HASHk(label’,C’,x’)=e^(u１(η１+εη２)u２θ(e/Gr(r))μvν,g２),
PROJHASHα(k’)(label,C,x;w)=e^((k１k２ε)w,g２),
ε=CRHASH(label,u１,u２,e),ここで、
ｓｋｐは、前記セッションキーを表し、
ＨＡＳＨｋは、前記ハッシュキーに基づく第１のハッシュ関数を表し、
ＰＲＯＪＨＡＳＨα（ｋ’）は、前記投影キーに基づく第２のハッシュ関数を表し、
ｕ１、ｕ２、ｅ、ｖは、前記変更暗号文の要素を表し、
ｗは、証拠を表し、
Ｇｒは、Cramer  Shoup暗号化方式の可逆マッピングを表す、
請求項６に記載の方法。
【請求項８】
前記第１の交換情報セットは、前記コンピューティングシステムにおいて生成される投影キー、第１の公開キーに基づき及び前記コンピューティングシステムにおいて生成されるハッシュキーの暗号文、前記コンピューティングシステムにおいて生成されるゼロ知識証明、ラベルの暗号文及び第２の公開キーに基づき前記コンピューティングシステムにおいて生成される乱数、前記第１の生体データセットのランダム生体情報を有し、
前記第２の交換情報セットは、前記システムサーバにおいて生成される投影キー、前記第１の公開キーに基づき前記システムサーバにおいて生成されるハッシュキーの暗号文、前記システムサーバにおいて生成されるゼロ知識証明、第２の公開キーに基づくラベルの暗号文及び前記システムサーバにおいて生成される乱数、前記第２の生体データセットのランダム生体情報、を有し、
前記第１の公開キーは、非ラベル付きCramer  Shoup暗号化方式により出力される公開キーであり、
前記第２の公開キーは、ラベル付きCramer  Shoup暗号化方式により出力される公開キーであり、
前記第１の交換情報セット及び前記第２の交換情報セットは、以下の汎用交換情報式に従って生成され、
EI１=(s,c１,π,c２,x),
EI２=(s’,c１’,π’,c２’,x’),
k←K,
k’←K,
s=α(k),
s’=α(k’),
c１=ENC１pk１(k),
c１’=ENC１pk１(k’),
π=PCRS(s,c１)εL,
π’=PCRS(s’,c１’)εL’,
label=(sid,P,P’,s,c１,π),
label’=(sid,P’,P,s’,c１’,π’),
r←{０,１}k,
r’←{０,１}k’,
c２=ENC２pk２(label,r),
c２’=ENC２pk２(label’,r’),
L’={(s’,c１’):∃k’εK  and  w’  such  that  s’=α(k’)  and  c１’=ENC１pk１(k’;w’)},
L={(s,c１):∃kεK  and  w  such  that  s=α(k)  and  c１=ENC１pk１(k;w)};
ＥＩ１は、前記第１の交換情報セットを表し、
ＥＩ２は、前記第２の交換情報セットを表し、
ｓは、前記コンピューティングシステムにおいて生成される投影キーを表し、
ｓ’は、前記システムサーバにおいて生成される投影キーを表し、
ｃ１は、前記コンピューティングシステムにおいて生成されるハッシュキーの暗号文を表し、
ｃ１’は、前記システムサーバにおいて生成されるハッシュキーの暗号文を表し、
πは、前記コンピューティングシステムにおいて生成されるゼロ知識証明を表し、
π’は、前記システムサーバにおいて生成されるゼロ知識証明を表し、
ｃ２は、前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文を表し、
ｃ２’は、前記システムサーバにおいて生成される乱数及びラベルの暗号文を表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、
Ｋは、キー空間を表し、
αは、スムーズプロジェクティブハッシュ関数を表し、
ＥＮＣ１ｐｋ１は、非ラベル付きCramer  Shoup暗号化方式に含まれる前記第１の公開キーに基づく暗号化演算子を表し、
ＰＣＲＳ（）は、シミュレーションサウンド非対話型ゼロ知識証明（ＮＩＺＫ）を表し、
Ｌは、言語を表し、
Ｌ’は、言語を表し、
ｓｉｄは、セッション識別子を表し、
Ｐは、前記コンピューティングシステムの装置識別子を表し、
Ｐ’は、前記システムサーバの装置識別子を表し、
ｒは、前記コンピューティングシステムにおいて生成される乱数を表し、
ｒ’は、前記システムサーバにおいて生成される乱数を表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーの次元を有する２進ベクトル空間を表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーの次元を有する２進ベクトル空間を表し、
ＥＮＣ２ｐｋ２は、ラベル付きCramer  Shoup暗号化方式に含まれる前記第２の公開キーに基づく暗号化演算子を表し、
∃は、「少なくとも１つの要素が存在する」演算子を表し、
ｗ’は、前記システムサーバの証拠を表し、
ｗは、前記コンピューティングシステムの証拠を表し、
εは、メンバーシップ演算子を表し、
←は、ランダム一様引き抜き演算子を表す、
請求項３に記載の方法。
【請求項９】
前記ハッシュキー及び前記投影キーは、以下のハッシュキー生成式に従って生成され、
Gc(p);
(g１,g２)←Gc;
η１,η２,θ,μ,ν←Zp;
k=(η１,η２,θ,μ,ν);
c=g１η１g２η２;
d=g１θg２μ;
h=g１ν;
α(k)=(k１,k２)=(g１η１g２θhμcν,gη２dν),
Ｇｃは巡回群を表し、
ｇ１及びｇ２は、前記巡回群から引き出される生成元を表し、
Ｚｐは、前記巡回群の素数の次数の整数のセットを表し、
η１,η２,θ,μ,νは、前記整数のセットからサンプリングされる整数を表し、
ｃ、ｄ、ｈは、中間生成元パラメータを表し、
ｋ１は、前記投影キーの第１の要素を表し、
ｋ２は、前記投影キーの第２の要素を表す、
請求項８に記載の方法。
【請求項１０】
前記の計算は、以下の汎用計算式、第１の汎用ハッシュ関数式、第２の汎用ハッシュ関数式に従う、
skp=HASHk(label’,c２’,x’)・PROJHASHα(k’)(label,c２,x),
r’=Decode((x’)XOR(b)),
c２=ENC２pk２(label,r)=(u１,u２,e,v),
pk２=(Gc,g１,g２,c,d,h,CRHASH)
HASHk(label’,c２’,x’)=u１(η１+εη２)u２θ(e/Gr)μvν
PROJHASHα(k’)(label,c２,x;w)=(k１k２ε)w,
ε=CRHASH(label,u１,u２,e),
ｓｋｐは、前記セッションキーを表し、
ＨＡＳＨｋは、前記ハッシュキーに基づく第１のハッシュ関数を表し、
ＰＲＯＪＨＡＳＨα（ｋ’）は、前記投影キーに基づく第２のハッシュ関数を表し、
ｕ１、ｕ２、ｅ、ｖは、前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文の要素を表し、
ＣＲＨＡＳＨは、衝突耐性のあるハッシュ関数を表し、
Ｇｒは、Cramer  Shoup暗号化方式の可逆マッピングを表す、
請求項９に記載の方法。
【請求項１１】
動作を実行するためにプロセッサにより実行可能な符号化されたプログラムコードを有する非一時的コンピュータ可読媒体であって、前記動作は、
コンピューティングシステムにおいて、ユーザにより提供される第１の生体サンプルを表す第１の生体データセットを受信するステップと、
信頼できる第三機関サーバから、１又は複数の公開パラメータを受信するステップと、
前記公開パラメータ及び前記第１の生体データセットに基づき、前記コンピューティングシステムにおいて、第１の交換情報セットを生成するステップと、
前記コンピューティングシステムにより、前記第１の交換情報セットをシステムサーバに通信するステップと、
前記システムサーバから、第２の交換情報セットを受信するステップであって、前記第２の交換情報セットは、前記１又は複数の公開パラメータと、前記ユーザにより提供され前記第１の交換情報セットと対称的である第２の生体サンプルを表す第２の生体データセットとに基づく、ステップと、
前記コンピューティングシステムのセッションキーを計算するステップであって、前記の計算は、前記コンピューティングシステムにおいて生成されたハッシュキーに基づく第１のハッシュ関数を前記第２の交換情報セットのサブセットに適用し、前記システムサーバにおいて生成された投影キーに基づく第２のハッシュ関数を前記第１の交換情報セットのサブセットに適用することを含む、ステップと、
通信セッションにおける前記コンピューティングシステムと前記システムサーバとの間の通信で前記セッションキーを用いるステップと、
を有する、非一時的コンピュータ可読媒体。
【請求項１２】
前記公開パラメータは、前記第１の生体データセットと前記第２の生体データセットとの間の差を調整するために定められる誤り訂正符号（ＥＣＣ）を含み、
前記ＥＣＣは、以下のＥＣＣ式に従って定められ、
(n',k',２δ'+１)ECC=(Encode,Decode)、
前記第１の生体データセットと前記第２の生体データセットとの間の特定の差は、以下の生体距離式に従って定められ、
DIST(b,b’)<δ’,
ここで、ＤＩＳＴはハミング距離関数を表し、
ｂは前記第１の生体データセットを表し、
ｂ’は前記第２の生体データセットを表し、
ｎ’は、前記ＥＣＣ式で用いられるコードワードの長さを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、２＾ｋ’は、可能なコードワードの数を表し、
δ’は、前記第１の生体データセットと前記第２の生体データセットが両方とも前記ユーザからのものであることを示す特定の閾値を表し、
Ｅｎｃｏｄｅは、ＥＣＣ符号化演算子を表し、
Ｄｅｃｏｄｅは、ＥＣＣ復号化演算子を表す、
請求項１１に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記第１の交換情報セットは、前記第１の生体データセットのランダム生体情報を有し、
前記第２の交換情報セットは、前記第２の生体データセットのランダム生体情報を有し、
前記第１の生体データセットの前記ランダム生体情報は、第１のランダム生体情報式であるｘ＝（ｂ）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ））に従って定められ、
前記第２の生体データセットの前記ランダム生体情報は、第２のランダム生体情報式であるｘ’＝（ｂ’）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ’））に従って定められ、
ｘは、前記第１の生体データセットの前記ランダム生体情報を表し、
ｘ’は、前記第２の生体データセットの前記ランダム生体情報を表し、
ＸＯＲは、ＸＯＲ演算子を表し、
ｒ’は、ベクトル空間｛０，１｝ｋ’からサンプリングされた乱数を表し、
ｒは、ベクトル空間｛０，１｝ｋからサンプリングされた乱数を表し、
ｋ’は、前記システムサーバにおいて生成された前記ハッシュキーを表し、
ｋは、前記コンピューティングシステムにおいて生成されたハッシュキーを表す、
請求項１２に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記公開パラメータは、双線形グループ式（ｐ，Ｇ１，Ｇ２，ＧＴ，ｅ＾）により表される双線形グループに従って生成され、
前記第１の交換情報セットは、前記コンピューティングシステムにおいて生成される投影キー、変更公開キーに基づき前記コンピューティングシステムにおいて生成される変更暗号文、前記第１の生体データセットのランダム生体情報、を有し、
前記第２の交換情報セットは、前記システムサーバにおいて生成される投影キー、前記変更公開キーに基づき前記システムサーバにおいて生成される変更暗号文、前記第２の生体データセットのランダム生体情報、を有し、
前記第１の交換情報セット及び前記第２の交換情報セットは、以下の変更交換情報式に従って生成され、
EI１=(α(k),C,x),
EI２=(α(k’),C’,x’),
kεZp５,
k’εZp５,
α(k)εG１２×G２５,
α(k’)εG１２×G２５,
r←{０,１}k’,
r’←{０,１}k,
C=ENCTpkm(label,r)εG１４,
C’=ENCTpkm(label’,r’)εG１４,
label=(P,P’,α(k),x),
label’=(P’,P,α(k’),x’);
前記変更公開キーは、以下の落とし戸スムーズプロジェクティブハッシュ関数（trapdoor  smooth-projective  hash  function：ＴＳＰＨＦ）キー生成式に従って生成され、
pkm=(G１,g１-１,g１-２,c,d,h,CRHASH),
g１-１←G１,
g１-２←G１,
(x１,x２,y１,y２,z)←Zp,
c=g１x１g２x２,
d=g１y１g２y２,
h=g１z;ここで、
ＥＩ１は、前記第１の交換情報セットを表し、
ＥＩ２は、前記第２の交換情報セットを表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、
Ｚｐ５は、前記双線形グループの素数の次数の整数のセットを表し、
αは、スムーズプロジェクティブハッシュ関数を表し、
Ｃは、前記コンピューティングシステムにおいて生成される変更暗号文を表し、
Ｃ’は、前記システムサーバにおいて生成される変更暗号文を表し、
ＥＮＣＴは、ＴＳＰＨＦ暗号化方式の暗号化演算子を表し、
Ｐは、前記コンピューティングシステムの装置識別子を表し、
Ｐ’は、前記システムサーバの装置識別子を表し、
ｇ１−１は、第１の双線形グループから引き出される第１の生成元を表し、
ｇ１−２は、第１の双線形グループから引き出される第２の生成元を表し、
ｘ１、ｘ２、ｙ１、ｙ２、ｚは、前記素数の次数の整数のセットから引き出される整数を表し、
ｃ、ｄ、ｈは、中間生成元パラメータを表し、
εは、メンバーシップ演算子を表し、
ｘは、積演算子を表し、
←は、ランダム一様引き抜き演算子を表し、
ＣＲＨＡＳＨは、衝突耐性のあるハッシュ関数を表し、
ｐは、前記双線形グループの素数の次数を表し、
Ｇ１は、第１の双線形グループを表し、
Ｇ２は、第２の双線形グループを表し、
ＧＴは、出力双線形グループを表し、
ｅ＾は、ペアリング演算子を表す、
請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記ハッシュキー及び前記投影キーは、以下の変更ハッシュキー生成式に従って生成され、
k=(η１,η２,θ,μ,ν),
η１,η２,θ,μ,ν←Zp,
α(k)=(k１,k２,k３)=(g１-１η１g１-２θhμcν,g１-１η２dν,k３)εG１２×G２５,
k３=(χ１-１,χ１-２,χ２,χ３,χ４)εG２５,
g２←G２,
τ’←Zp,
ζ=g２τ’,
χ１-１=ζη１,
χ１-２=ζη２,
χ２=ζθ,
χ３=ζμ,
χ４=ζν;
η１,η２,θ,μ,νは、前記ハッシュキーの要素を表し、
ｋ１は、前記投影キーの第１の要素を表し、
ｋ２は、前記投影キーの第２の要素を表し、
ｋ３は、前記投影キーの第３の要素を表し、
χ１−１、χ１−２、χ２、χ３、χ４は、前記投影キーの前記第３の要素の要素を表し、
τ’は、落とし戸を表し、
ζは、第２の共通ランダムストリングを表す、
請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記動作は、前記投影キーの有効性をチェックするステップを更に有し、
前記のチェックは、以下の変更有効性チェック式に従って実行される、
e^(k１,ζ)=?e^(g１-１,χ１-１)・e^(g１-２,χ２)・e^(h,χ３)・e^(c,χ４),
e^(k２,ζ)=?e^(g１-１,χ１-２)・e^(d,χ４)
請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記の計算は、以下の第１の変更ハッシュ関数式、第２の変更ハッシュ関数式、及び変更された計算式に従う、
skp=HASHk(label’,C’,x’)・PROJHASHα(k’)(label,C,x;w),
r=Decode((x)XOR(b)),
C=ENCTpkm(label,r)=(u１,u２,e,v),
HASHk(label’,C’,x’)=e^(u１(η１+εη２)u２θ(e/Gr(r))μvν,g２),
PROJHASHα(k’)(label,C,x;w)=e^((k１k２ε)w,g２),
ε=CRHASH(label,u１,u２,e),
ｓｋｐは、前記セッションキーを表し、
ＨＡＳＨｋは、前記ハッシュキーに基づく第１のハッシュ関数を表し、
ＰＲＯＪＨＡＳＨα（ｋ’）は、前記投影キーに基づく第２のハッシュ関数を表し、
ｕ１、ｕ２、ｅ、ｖは、前記変更暗号文の要素を表し、
ｗは、証拠を表し、
Ｇｒは、Cramer  Shoup暗号化方式の可逆マッピングを表す、
請求項１６に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記第１の交換情報セットは、前記コンピューティングシステムにおいて生成される投影キー、第１の公開キーに基づき及び前記コンピューティングシステムにおいて生成されるハッシュキーの暗号文、前記コンピューティングシステムにおいて生成されるゼロ知識証明、第２の公開キーに基づき前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文、前記第１の生体データセットのランダム生体情報を有し、
前記第２の交換情報セットは、前記システムサーバにおいて生成される投影キー、前記第１の公開キーに基づき前記システムサーバにおいて生成されるハッシュキーの暗号文、前記システムサーバにおいて生成されるゼロ知識証明、前記システムサーバにおいて生成される乱数及びラベルの第２の公開キーに基づく暗号文、前記第２の生体データセットのランダム生体情報、を有し、
前記第１の公開キーは、非ラベル付きCramer  Shoup暗号化方式により出力される公開キーであり、
前記第２の公開キーは、ラベル付きCramer  Shoup暗号化方式により出力される公開キーであり、
前記第１の交換情報セット及び前記第２の交換情報セットは、以下の汎用交換情報式に従って生成され、
EI１=(s,c１,π,c２,x),
EI２=(s’,c１’,π’,c２’,x’),
k←K,
k’←K,
s=α(k),
s’=α(k’),
c１=ENC１pk１(k),
c１’=ENC１pk１(k’),
π=PCRS(s,c１)εL,
π’=PCRS(s’,c１’)εL’,
label=(sid,P,P’,s,c１,π),
label’=(sid,P’,P,s’,c１’,π’),
r←{０,１}k,
r’←{０,１}k’,
c２=ENC２pk２(label,r),
c２’=ENC２pk２(label’,r’),
L’={(s’,c１’):∃k’εKandw’suchthats’=α(k’)andc１’=ENC１pk１(k’;w’)},
L={(s,c１):∃kεK  and  w  such  that  s=α(k)  and  c１=ENC１pk１(k;w)};
ＥＩ１は、前記第１の交換情報セットを表し、
ＥＩ２は、前記第２の交換情報セットを表し、
ｓは、前記コンピューティングシステムにおいて生成される投影キーを表し、
ｓ’は、前記システムサーバにおいて生成される投影キーを表し、
ｃ１は、前記コンピューティングシステムにおいて生成されるハッシュキーの暗号文を表し、
ｃ１’は、前記システムサーバにおいて生成されるハッシュキーの暗号文を表し、
πは、前記コンピューティングシステムにおいて生成されるゼロ知識証明を表し、
π’は、前記システムサーバにおいて生成されるゼロ知識証明を表し、
ｃ２は、前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文を表し、
ｃ２’は、前記システムサーバにおいて生成される乱数及びラベルの暗号文を表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、
Ｋは、キー空間を表し、
αは、スムーズプロジェクティブハッシュ関数を表し、
ＥＮＣ１ｐｋ１は、非ラベル付きCramer  Shoup暗号化方式に含まれる前記第１の公開キーに基づく暗号化演算子を表し、
ＰＣＲＳ（）は、シミュレーションサウンド非対話型ゼロ知識証明（ＮＩＺＫ）を表し、
Ｌは、言語を表し、
Ｌ’は、言語を表し、
ｓｉｄは、セッション識別子を表し、
Ｐは、前記コンピューティングシステムの装置識別子を表し、
Ｐ’は、前記システムサーバの装置識別子を表し、
ｒは、前記コンピューティングシステムにおいて生成される乱数を表し、
ｒ’は、前記システムサーバにおいて生成される乱数を表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーの次元を有する２進ベクトル空間を表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーの次元を有する２進ベクトル空間を表し、
ＥＮＣ２ｐｋ２は、ラベル付きCramer  Shoup暗号化方式に含まれる前記第２の公開キーに基づく暗号化演算子を表し、
∃は、「少なくとも１つの要素が存在する」演算子を表す。
ｗ’は、前記システムサーバの証拠を表し、
ｗは、前記コンピューティングシステムの証拠を表し、
εは、メンバーシップ演算子を表し、
←は、ランダム一様引き抜き演算子を表す、
請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記ハッシュキー及び前記投影キーは、以下のハッシュキー生成式に従って生成され、
Gc(p);
(g１,g２)←Gc;
η１,η２,θ,μ,ν←Zp;
k=(η１,η２,θ,μ,ν);
c=g１η１g２η２;
d=g１θg２μ;
h=g１ν;
α(k)=(k１,k２)=(g１η１g２θhμcν,gη２dν),
Ｇｃは巡回群を表し、
ｇ１及びｇ２は、前記巡回群から引き出される生成元を表し、
Ｚｐは、前記巡回群の素数の次数の整数のセットを表し、
η１,η２,θ,μ,νは、前記整数のセットからサンプリングされる整数を表し、
ｃ、ｄ、ｈは、中間生成元パラメータを表し、
ｋ１は、前記投影キーの第１の要素を表し、
ｋ２は、前記投影キーの第２の要素を表す、  請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記の計算は、以下の汎用計算式、第１の汎用ハッシュ関数式、第２の汎用ハッシュ関数式に従う、
skp=HASHk(label’,c２’,x’)PROJHASHα(k’)(label,c２,x),
r’=Decode((x’)XOR(b)),
c２=ENC２pk２(label,r)=(u１,u２,e,v),
pk２=(Gc,g１,g２,c,d,h,CRHASH)
HASHk(label’,c２’,x’)=u１(η１+εη２)u２θ(e/Gr)μvν,
PROJHASHα(k’)(label,c２,x;w)=(k１k２ε)w,
ε=CRHASH(label,u１,u２,e),ここで、
ｓｋｐは、前記セッションキーを表し、
ＨＡＳＨｋは、前記ハッシュキーに基づく第１のハッシュ関数を表し、
ＰＲＯＪＨＡＳＨα（ｋ’）は、前記投影キーに基づく第２のハッシュ関数を表し、
ｕ１、ｕ２、ｅ、ｖは、前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文の要素を表し、
ＣＲＨＡＳＨは、衝突耐性のあるハッシュ関数を表し、
Ｇｒは、Cramer  Shoup暗号化方式の可逆マッピングを表す、
請求項１９に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書で議論する実施形態は、生体認証キー交換に関する。
【背景技術】
【０００２】
パスワード認証キー交換（Password  authenticated  key  exchange：ＰＡＫＥ）は、研究されている暗号化原理である。しかしながら、ＰＡＫＥは、ＰＡＫＥに参加する２つのパーティが厳しい秘密を共有する実装に限られる。厳しい秘密から、キーが生成され交換される。
【０００３】
本願明細書で請求される主題は、上述のような欠点を解決する実施形態や上述のような環境でのみ機能する実施形態に限定されない。むしろ、この背景技術は、単に、本願明細書に記載される複数の実施形態が実施される技術分野の一例を説明するために提供される。
【発明の概要】
【０００４】
一実施形態によると、コンピューティングシステムとシステムサーバとの間の通信セッションのための生体認証キー交換の方法は、前記コンピューティングシステムにおいて、ユーザにより提供される第１の生体サンプルを表す第１の生体データセットを受信するステップを有する。方法は、信頼できる第三機関サーバから、１又は複数の公開パラメータを受信するステップを有する。前記公開パラメータ及び前記第１の生体データセットに基づき、前記方法は、前記コンピューティングシステムにおいて、第１の交換情報セットを生成するステップを有する。方法は、前記コンピューティングシステムにより、前記第１の交換情報セットを前記システムサーバに通信するステップを有する。方法は、システムサーバから、第２の交換情報セットを受信するステップを有する。前記第２の交換情報セットは、前記公開パラメータと、前記ユーザにより提供され前記第１の交換情報セットと対称的である第２の生体サンプルを表す第２の生体データセットとに基づく。方法は、前記通信セッションのためのセッションキーを計算するステップを有する。計算は、コンピューティングシステムにおいて生成されたハッシュキーに基づく第１のハッシュ関数を第２の交換情報セットのサブセットに適用するステップと、システムサーバにおいて生成された投影キーに基づく第２のハッシュ関数を第１の交換情報セットのサブセットに適用するステップを有しても良い。方法は、通信セッションの間に、前記コンピューティングシステムと前記システムサーバとの間の通信で前記セッションキーを用いるステップと、を有する。
【０００５】
実施形態の目的及び利点が理解され、少なくとも特に特許請求の範囲で指摘された要素、特徴及び組合せを用いて達成されるだろう。
【０００６】
上述の全体的説明及び以下の詳細な説明の両方は、例示及び説明のためであり、本発明の範囲を限定しないことが理解される。
【図面の簡単な説明】
【０００７】
例示的な実施形態は、添付の図面を用いて、更なる特異性及び詳細事項と共に記載され説明される。
【図１】例示的な動作環境のブロック図である。
【図２】図１の動作環境における例示的な等価検証処理を示す。
【図３】リレーショナル暗号化を用いる等価検証のために構成される例示的なコンピューティングシステムを示す。
【図４】生体認証キー交換の例示的な方法のフロー図である。  全ての図は本願明細書に記載の少なくとも１つの実施形態に従って構成される。
【発明を実施するための形態】
【０００８】
パスワード認証キー交換（Password  authenticated  key  exchange：ＰＡＫＥ）は、有用且つ広く研究されている暗号化原理である。しかしながら、ＰＡＫＥは、参加する２つのパーティが厳しい秘密を共有するときにのみ機能する。したがって、本願明細書に記載の幾つかの実施形態は、生体認証キー交換（biometric  authenticated  key  exchange：ＢＡＫＥ）方式に関する。ＢＡＫＥ方式は、エンティティの共有する秘密情報のみが、生体データのようなノイズのある低エントロピーデ―タであるとき、２つのエンティティに秘密セッションキーに合意させるプロトコルを含む。本願明細書で議論するＢＡＫＥ方式は、汎用結合可能性（universal  composability：ＵＣ）の枠組みの中で構成される。
【０００９】
ＢＡＫＥ方式は、生体データについての合理的仮定を含む。例えば、ＢＡＫＥ方式は、生体データの中の「ノイズ」又は差が生体データの意味のあるコンテンツ（例えば、生体的特徴）と比較的独立である限り、機能する。ＢＡＫＥ方式を用いて、エンティティの間の通信で用いられ得るセッションキーが計算されても良い。
【００１０】
上述及び他の実施形態の幾つかの追加の詳細事項は、添付の図面に関して議論される。図中の共通にラベル付けされた要素は、特に断りのない限り、同様の構造を示す。図は、幾つかの実施形態の図式的及び方式的表現であり、限定を意味せず、それらは必ずしも縮尺通りに描かれない。図中、通常、同様の参照符号は、特に断りのない限り、同様の構造を参照する。
【００１１】
図１は、本願明細書に記載の少なくとも１つの実施形態により配置される例示的な動作環境１００のブロック図を示す。動作環境１００において、認証キー交換は、コンピューティングシステム１０４及びシステムサーバ１４０の間で生じ得る。認証キー交換は、ユーザ１０６により提供される生体サンプルに基づいても良い。認証キー交換は、コンピューティングシステム１０４及びシステムサーバ１４０の各々による秘密セッションキーの生成を含んでも良い。
【００１２】
認証キー交換は、本開示に記載されるような生体認証キー交換（ＢＡＫＥ）方式に基づいても良い。ＢＡＫＥ方式は、コンピューティングシステム１０４及びシステムサーバ１４０の間で共有される秘密情報のみが、ユーザ１０６の生体サンプルを表す生体データセットであるとき、コンピューティングシステム１０４及びシステムサーバ１４０に、秘密セッションキーについて合意させる。ＢＡＫＥ方式は、他のノイズのある低エントロピーデータセットがコンピューティングシステム１０４とシステムサーバ１４０との間の秘密情報である他の動作環境にも適用可能である。追加又は代替で、ＢＡＫＥ方式は、秘密情報がノイズのある低エントロピーデータセット及び厳密なデータセットを含む動作環境にも適用可能である。例えば、ノイズのある低エントロピーデータセットは、生体データセットを含んでも良く、厳密なデータセットは、パスワードを含んでも良い。
【００１３】
概して、信頼できるエンティティサーバ１０８は、公開パラメータ（public  parameter）を生成するよう構成されても良い。公開パラメータは、２つの公開キー及び共通ランダムストリング（common  random  string：ＣＲＳ）を含んでも良い。公開パラメータのうちの１又は複数は、複数のセッションについて生成されても良い。例えば、公開パラメータのうちの１又は複数は、毎年又は毎月、生成されても良い。
【００１４】
コンピューティングシステム１０４及びシステムサーバ１４０は、信頼できるエンティティサーバ１０８から公開パラメータを受信しても良く、又は公開パラメータにアクセスしても良い。さらに、コンピューティングシステム１０４及びシステムサーバ１４０は、それぞれ、複数の生体データセット及び共有セッション識別子を受信しても良い。生体データセットは、生体サンプルの特性により僅かに異なっても良い。しかしながら、生体データセットは、生体サンプルが両方ともユーザ１０６において生じることを検証するのに十分類似していても良い。例えば、コンピューティングシステム１０４は、ユーザ１０６の第１の生体サンプルを表す第１の生体データセットを受信しても良い。システムサーバ１４０は、ユーザ１０６の第２の生体サンプルを表す第２の生体データセットを受信しても良い。
【００１５】
生体データセットのうちの一方及び公開パラメータに基づき、コンピューティングシステム１０４は、第１の交換情報セットを生成しても良い。同様に、システムサーバ１４０は、生体データセットのうちの他方及び公開パラメータに基づき、第２の交換情報セットを生成しても良い。
【００１６】
交換情報セットは、交換されても良い。例えば、コンピューティングシステム１０４は、第１の交換情報セットをシステムサーバ１４０に通信しても良く、逆も同様である。交換情報セットを受信することに応答して、セッション秘密キ―は、交換情報セットの１又は複数のパラメータ、公開パラメータ、及び共有セッション識別子に基づき、評価されても良い。コンピューティングシステム１０４及びシステムサーバ１４０は、それらの間の通信のためにセッション秘密キーを用いても良い。１又は複数の他の通信セッションのために、別のセッション秘密キー及び／又は別の共有セッション識別子が生成され、別の認証キー交換において交換されても良い。ＢＡＫＥ方式から公開パラメータが生成され、ＢＡＫＥ方式に従ってセッション秘密キーの評価が生成される、該ＢＡＫＥ方式の幾つかの追加詳細事項は、本開示の別の場所で提供される。
【００１７】
動作環境１００は、ユーザ１０６に関連し得るコンピューティングシステム１０４、信頼できるエンティティサーバ１０８、ユーザ１０６に関連し得るシステムサーバ１４０、及びネットワーク１０７を有する。コンピューティングシステム１０４、信頼できるエンティティサーバ１０８、及びシステムサーバ１４０（集合的に「環境コンポーネント」）は、ネットワーク１０７を介して通信可能に結合されても良い。環境コンポーネントは、ネットワーク１０７を介して認証キー交換で使用されるデータ及び情報を通信しても良い。環境コンポーネントの各々は、以下の段落で簡単に紹介される。
【００１８】
ネットワーク１０７は、有線ネットワーク、無線ネットワーク、又はそれらの任意の組合せを有しても良い。ネットワーク１０７は、スター構成、トークンリング構成若しくは他の構成を含む任意の適切な１又は複数の構成を有しても良い。ネットワーク１０７は、ＬＡＮ（local  area  network）、ＷＡＮ（wide  area  network）（例えば、インターネット）、及び／又は複数の装置が通信できる他の相互接続されたデータ経路を有しても良い。幾つかの実施形態では、ネットワーク１０７は、ピアツーピアネットワークを有しても良い。ネットワーク１０７は、種々の異なる通信プロトコルでデータを通信を可能にする通信ネットワークの一部に結合され又はそれを含んでも良い。幾つかの実施形態では、ネットワーク１０７は、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信ネットワーク又はＳＭＳ（short  messaging  service）、ＭＭＳ（multimedia  messaging  service）、ＨＴＴＰ（hypertext  transfer  protocol）、直接データ接続、ＷＡＰ（wireless  application  protocol）、電子メール等を介することを含むデータを送信及び受信するセルラ通信ネットワークを有しても良い。
【００１９】
信頼できるエンティティサーバ１０８は、プロセッサに基づくコンピューティングシステムを有しても良い。例えば、信頼できるエンティティサーバ１０８は、ハードウェアサーバ又はサーバとして機能するよう構成される別のプロセッサに基づくコンピューティングシステムを有しても良い。信頼できるエンティティサーバ１０８は、メモリ及びネットワーク通信能力を有しても良い。動作環境１００において、信頼できるエンティティサーバ１０８は、コンピューティングシステム１０４及びシステムサーバ１４０とネットワーク１０７を介して通信するよう構成されても良い。
【００２０】
信頼できるエンティティサーバ１０８は、信頼できるエンティティに関連付けられても良い。例えば、信頼できるエンティティは、認証機関のような非利害関係第三機関を有しても良い。ユーザ１０６及びシステムサーバ１４０に関連するエンティティは、信頼できるエンティティを信頼し、選択し、及びそれに合意しても良い。
【００２１】
信頼できるエンティティサーバ１０８は、パラメータ生成モジュール１１８を有しても良い。パラメータ生成モジュール１１８は、認証キー交換で使用される公開パラメータを生成するよう構成されても良い。幾つかの実施形態では、公開パラメータは、１又は複数の公開キー、ＣＲＳ、誤り訂正符号（error  correcting  code：ＥＣＣ）、公開キーのうちの１つに対するスムーズなプロジェクティブ（smooth  projective）ハッシュ関数、本願明細書の別の場所で議論する他のパラメータ、又はそれらの何からかの組合せを有しても良い。パラメータ生成モジュール１１８により生成された公開パラメータは、ネットワーク１０７を介して、コンピューティングシステム１０４及びシステムサーバ１４０に通信され又は利用可能にされても良い。
【００２２】
パラメータ生成モジュール１１８は、（例えば、１又は複数の工程を実行する又はその性能を制御する）プロセッサ、マイクロプロセッサ、ＦＰＧＡ（field-programmable  gate  array）又はＡＳＩＣ（application-specific  integrated  circuit）を含むハードウェアを用いて実装できる。幾つかの他の例では、パラメータ生成モジュール１１８は、ハードウェア及びソフトウェアの組み合わせを用いて実装されても良い。ソフトウェアでの実装は、コンピューティングシステム（例えば、信頼できるエンティティサーバ１０８、システムサーバ１４０、及びコンピューティングシステム１０４）のハードウェアに含まれ得るような１又は複数のトランジスタ又はトランジスタ要素の迅速な起動及び停止を含み得る。追加で、ソフトウェア定義命令は、トランジスタ要素の中の情報に対して作用しても良い。ソフトウェア命令の実装は、電子経路を少なくとも一時的に再構成し、コンピューティングハードウェアを変換しても良い。
【００２３】
図１に示す実施形態では、ユーザ１０６は、個人を含んでも良い。ユーザ１０６は、コンピューティングシステム１０４及びシステムサーバ１４０に１又は複数の生体サンプルを提供しても良い。生体サンプルは、ユーザ１０６の指紋、ユーザ１０６の虹彩、ユーザ１０６の静脈、ユーザ１０６のＤＮＡ（deoxyribonucleic  acid）の区分サンプル、等を有しても良い。生体サンプルは、生体サンプルを表す生体データセットに変換されても良い。ある生体サンプルから次（例えば、ユーザ１０６により後に提供される生体）への何からの変化が存在しても良い。しかしながら、生体サンプルは、ユーザ１０６にユニークな又は実質的にユニークな１又は複数の特徴を有しても良い。したがって、生体サンプルを表す生体データセットは、生体サンプルの間のノイズ又は差を表す何らかのデータを有しても良く、データの別の部分は、ユーザ１０６に実質的にユニークな特徴を表しても良い。生体データセットは、例えば、生体サンプルのグラフィカル表現及び／又はアルゴリズム表現を有しても良い。
【００２４】
幾つかの実施形態では、コンピューティング視捨てｍｊ１０４及び／又はシステムサーバ１４０は、センサ１４８を有しても良い。センサ１４８は、例えば認証キー交換で使用される生体サンプルを測定する又はキャプチャするよう構成されるハードウェア装置を有しても良い。ユーザ１０６の生体サンプルが測定され又はキャプチャされると、コンピューティングシステム１０４は、生体データセットを生成しても良い。
【００２５】
センサ１４８の幾つかの例は、指紋スキャナ、虹彩の画像をキャプチャするよう構成されるカメラ、ユーザ１０６のＤＮＡを測定するよう構成される装置、心拍をキャプチャするよう構成される心拍モニタ、骨格筋により生成される電気的活動をキャプチャするよう構成されるウエアラブル筋電センサ、又は生体サンプルを測定し又はキャプチャするよう構成される任意の他のセンサ１４８、を有しても良い。
【００２６】
幾つかの実施形態では、センサ１４８は、生体データセットを生成しコンピューティングシステム１０４及び／又はシステムサーバ１４０に通信し得る別の装置又はシステムに含まれても良い。例えば、センサ１４８を含む装置又はシステムは、ネットワーク１０７を介して生体データセットを通信しても良い。
【００２７】
幾つかの他の実施形態では、ユーザ１０６は、企業エンティティ、政府エンティティ、等のような別のエンティティを有しても良い。上述及び他の実施形態では、ユーザ１０６が生体サンプルを提供する代わりに、ユーザ１０６は、別の種類のノイズのあるデータを提供しても良い。例えば、ノイズのあるデータは、誤りを有するパスワード（例えば、小文字の代わりに大文字、又は「ｏ」（「Ｏ」）の代わりにゼロ（「０」）又は別の種類のノイズのあるデータを有しても良い。
【００２８】
幾つかの実施形態では、ユーザ１０６は、コンピューティングシステム１０４及び／又はシステムサーバ１４０に関連付けられても良い。例えば、ユーザ１０６は、コンピューティングシステム１０４及び／又はシステムサーバ１４０を所有し又は定期的に操作しても良い。幾つかの実施形態では、ユーザ１０６は、コンピューティングシステム１０４及び／又はシステムサーバ１４０に具体的に関連付けられなくても良い。例えば、コンピューティングシステム１０４及び／又はシステムサーバ１４０は、ユーザ１０６を含む複数のユーザにとって公然とアクセス可能であっても良い。
【００２９】
コンピューティングシステム１０４は、プロセッサに基づくコンピューティングシステムを有しても良い。コンピューティングシステム１０４は、メモリ、プロセッサ、及びネットワーク通信能力を有しても良い。動作環境１００において、コンピューティングシステム１０４は、ネットワーク１０７を介して、システムサーバ１４０にデータ及び情報を通信可能であっても良い。コンピューティングシステム１０４の幾つかの例は、携帯電話機、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セットトップボックス、又はコネクテッドデバイス（例えば、スマートウォッチ、スマート眼鏡、スマート歩数計、又は任意の他のネットワーク接続可能な装置）を有しても良い。
【００３０】
コンピューティングシステム１０４又はそのサブシステムは、生体データセットのような入力を、ユーザセッションキー生成モジュール（ユーザ生成モジュール）１１２に提供しても良い。例えば、ユーザ１０６は、コンピューティングシステム１０４のコンポーネントを操作して、ユーザ生成モジュール１１２に生体サンプルを提供しても良い。さらに、ユーザ生成モジュール１１２は、システムサーバ１４０から交換情報セットを受信しても良い。
【００３１】
ユーザ生成モジュール１１２は、ＢＡＫＥ方式に従って及びパラメータ生成モジュール１１８により生成された公開パラメータに基づき、交換情報セットを生成するよう構成されても良い。例えば、ユーザ生成モジュール１１２は、１又は複数の公開キー及びパラメータ生成モジュール１１８において生成されたＣＲＳを受信し又はそれにアクセスするよう構成されても良い。
【００３２】
さらに、ユーザ生成モジュール１１２は、システムサーバ１４０から交換情報セットを受信しても良い。交換情報セットを受信した後に、ユーザ生成モジュール１１２は、セッションキーを計算しても良い。セッションキーの計算は、コンピューティングシステム１０４において生成されたハッシュキーに基づく第１のハッシュ関数を第２の交換情報セット２０４（図２に示す）のサブセットに適用するステップと、システムサーバ１４０において生成された投影キー（projected  key）に基づく第２のハッシュ関数を第１の交換情報セット２１４（図２に示す）のサブセットに適用するステップを有しても良い。セッションキーの評価の幾つかの追加の詳細事項は、本開示の別の場所で提供される。
【００３３】
ユーザ生成モジュール１１２は、（例えば、１又は複数の工程を実行する又はその性能を制御する）プロセッサ、マイクロプロセッサ、ＦＰＧＡ又はＡＳＩＣを含むハードウェアを用いて実装できる。幾つかの他の例では、ユーザ生成モジュール１１２は、ハードウェア及びソフトウェアの組み合わせを用いて実装されても良い。ソフトウェアでの実装は、コンピューティングシステム（例えば、信頼できるエンティティサーバ１０８、システムサーバ１４０、及びコンピューティングシステム１０４）のハードウェアに含まれ得るような１又は複数のトランジスタ又はトランジスタ要素の迅速な起動及び停止を含み得る。追加で、ソフトウェア定義命令は、トランジスタ要素の中の情報に対して作用しても良い。ソフトウェア命令の実装は、電子経路を少なくとも一時的に再構成し、コンピューティングハードウェアを変換しても良い。
【００３４】
システムサーバ１４０は、プロセッサに基づくコンピューティング装置を有しても良い。例えば、システムサーバ１４０は、ハードウェアサーバ又はサーバとして機能するよう構成される別のプロセッサに基づくコンピューティング装置を有しても良い。システムサーバ１４０は、メモリ及びネットワーク通信能力を有しても良い。動作環境１００において、システムサーバ１４０は、コンピューティングシステム１０４及び信頼できるエンティティサーバ１０８とネットワーク１０７を介して通信するよう構成されても良い。
【００３５】
システムサーバ１４０又はそのサブシステムは、生体データセットのような入力を、サーバセッションキー生成モジュール（サーバ生成モジュール）１１４に提供しても良い。サーバ生成モジュール１１８は、ユーザ生成モジュール１１２と実質的に同様に動作しても良い。さらに、ＢＡＫＥ方式は対称的であっても良い。したがって、ユーザ生成モジュール１１２に関して記載される機能の一部又は全部は、サーバ生成モジュール１１４により実行されても良い。上述の及び他の実施形態では、交換情報セットの生成及び通信について必須の順序又は配列がなくても良い。
【００３６】
サーバ生成モジュール１１４は、（例えば、１又は複数の工程を実行する又はその性能を制御する）プロセッサ、マイクロプロセッサ、ＦＰＧＡ又はＡＳＩＣを含むハードウェアを用いて実装できる。幾つかの他の例では、サーバ生成モジュール１１４は、ハードウェア及びソフトウェアの組み合わせを用いて実装されても良い。ソフトウェアでの実装は、コンピューティングシステム（例えば、信頼できるエンティティサーバ１０８、システムサーバ１４０、及びコンピューティングシステム１０４）のハードウェアに含まれ得るような１又は複数のトランジスタ又はトランジスタ要素の迅速な起動及び停止を含み得る。追加で、ソフトウェア定義命令は、トランジスタ要素の中の情報に対して作用しても良い。ソフトウェア命令の実装は、電子経路を少なくとも一時的に再構成し、コンピューティングハードウェアを変換しても良い。
【００３７】
本開示の範囲から逸脱することなく動作環境１００に対し変更、追加又は省略が行われても良い。具体的には、動作環境は、１又は複数のユーザ１０６、１又は複数のコンピューティングシステム１０４、１又は複数のシステムサーバ１４０、１又は複数の信頼できるエンティティサーバ１０８、又はそれらの任意の組合せを有しても良い。さらに、本願明細書に記載の実施形態の中の種々のコンポーネントの分割は、分割が全ての実施形態において生じることを意味しない。本開示の利益により、記載の環境コンポーネントが単一のコンポーネントに統合され又は複数のコンポーネントに分割されても良いことが理解される。例えば、幾つかの実施形態では、ユーザ生成モジュール１１２及び／又はそれに属する１又は複数の機能は、システムサーバ１４０にあるモジュールにより実行されても良い。
【００３８】
動作環境１００において、環境コンポーネントのうちの１又は複数の中のメモリは、図３を参照して記載するメモリ３０８と同様であっても良く、環境コンポーネントのうちの１又は複数の中のプロセッサは、図３を参照して記載するプロセッサ３０４と同様であっても良く、環境コンポーネントのうちの１又は複数の中のネットワーク通信能力は、図３を参照して記載する通信ユニット３０２により提供されても良い。
【００３９】
図２は、図１及び２の動作環境１００において実装され得る例示的な生体認証キー交換処理（ＢＡＫＥプロセス）２００を示す。図２の動作環境１００において、ネットワーク１０７は省略される。しかしながら、信頼できるエンティティ１０８、コンピューティングシステム１０４、及びシステムサーバ１４０の間の情報及びデータ（例えば、２０２、２０４、２０６、２０８、２１４、２１６）の通信は、ネットワーク１０７を介しても良い。
【００４０】
概して、信頼できるエンティティサーバ１０８のパラメータ生成モジュール１１８は、公開パラメータ２０２を生成しても良い。公開パラメータ２０２は、コンピューティングシステム１０４及びシステムサーバ１４０に通信され又はそれらに利用可能にされても良い。コンピューティングシステム１０４のユーザ生成モジュール１１２は、公開パラメータ２０２のうちの１又は複数を受信しても良い。さらに、コンピューティングシステム１０４のユーザ生成モジュール１１２は、第１の生体データセット２０６を受信しても良い。ユーザ生成モジュール１１２は、第１の交換情報セット２１４（図２の第１の交換情報セット）を生成しても良い。ユーザ生成モジュール１１２及び／又はコンピューティングシステム１０４は、第１の交換情報セット２１４をシステムサーバ１４０に通信しても良い。第１の交換情報セット２１４及び公開パラメータ２０２のうちの１又は複数に基づき、サーバ生成モジュール１１４は、セッションキー２１６を評価しても良い。
【００４１】
同様に、システムサーバ１４０のサーバ生成モジュール１１４は、公開パラメータ２０２のうちの１又は複数を受信しても良い。さらに、システムサーバ１４０のサーバ生成モジュール１１４は、第２の生体データセット２０８を受信しても良い。サーバ生成モジュール１１４は、第２の交換情報セット２０４（図２の第２の交換情報セット）を生成しても良い。サーバ生成モジュール１１４は、第２の交換情報セット２０４をコンピューティングシステム１０４に通信しても良い。第２の交換情報セット２０４及び公開パラメータ２０２のうちの１又は複数に基づき、ユーザ生成モジュール１１２は、セッションキー２１６を評価しても良い。
【００４２】
セッションキー２１６は、通信セッション中にコンピューティングシステム１０４及びシステムサーバ１４０の間の通信のために更に使用されても良い。例えば、セッションキー２１６は、コンピューティングシステム１０４とシステムサーバ１４０との間の通信の暗号化及び／又は復号化において使用されても良い。幾つかの実施形態では、セッションキー２１６は、コンピューティングシステム１０４とシステムサーバ１４０との間の１又は複数の通信セッションのために、ＢＡＫＥプロセス２００により生成されても良い。例えば、通信セッション毎に、セッションキー２１６は、ＢＡＫＥプロセス２００により生成されても良い。以下の段落では、全体的及び変更されたＢＡＫＥプロセス２００の幾つかの追加の詳細事項が提供される。
【００４３】
＜生体データセット２０６及び２０８、及び共有セッション識別子＞
ＢＡＫＥプロセス２００を実行するために、コンピューティングシステム１０４は、第１の生体データセット２０６を保持しても良く、システムサーバ１４０は、第２の生体データセット２０８を保持しても良い。上述のように、生体サンプルの特性により、第１の生体データセット２０６と第２の生体データセット２０８との間に差があることがある。同じユーザ（例えば図１のユーザ１０６）から生じたと考えられる生体データセット２０６及び２０８について、生体データセット２０６及び２０８の間の差は、特定の距離よりも小さくても良い。例えば、幾つかの実施形態では、第１の生体データセット２０６と第２の生体データセット２０８との間の特定の距離は、次の例示的な生体距離式に従って定められても良い。
【００４４】
ＤＩＳＴ（ｂ，ｂ’）＜δ
生体距離式において、ＤＩＳＴは、ハミング距離関数を表す。パラメータｂは、第１の生体データセット２０６を表す。パラメータｂ’は、第２の生体データセット２０８を表す。パラメータδは、特定の距離閾を表す。
【００４５】
特定の距離は、第１の生体データセット２０６と第２の生体データセット２０８が単一のユーザ（例えば図１のユーザ１０６）において生じると結論づけることができる、第１の生体データセット２０６と第２の生体データセット２０８との間の十分な類似性を示す閾値として定められても良い。例えば、特定の距離は、単一のユーザにユニークであり得る生体特徴の十分な重なり合いを示しても良い。第１の生体データセット２０６と第２の生体データセット２０８との間の差が特定の距離よりも大きい状況では、偽者がユーザとして投稿している可能性があり、又は生体サンプルに問題がある可能性がある。
【００４６】
さらに、コンピューティングシステム１０４及びシステムサーバ１４０は、共有セッション識別子を含んでも良い。共有セッション識別子は、コンピューティングシステム１０４とシステムサーバ１４０との間の特定の通信セッションに固有であっても良い。通信セッションのうちの１又は複数は、特定の共有セッション識別子を有しても良い。例えば、図２に示す実施形態では、通信セッションの各々は、ユニークな又は実質的にユニークな共有セッション識別子を有しても良い。
【００４７】
＜全体的なＢＡＫＥプロセス２００＞
幾つかの実施形態では、公開パラメータ２０２は、第１の暗号化方式及び第２の暗号化方式を用いて生成され得る２つの公開キーを有しても良い。第１の暗号化方式及び第２の暗号化方式は、適応型ＣＣＡ−２（chosen-ciphertext  attack）セキュアであっても良い。第２の暗号化方式は、ラベル付きＣＣＡ−２暗号化方式（例えば、Cramer  Shoup暗号化方式）であっても良い。第１の暗号化方式は、第１の暗号化方式がラベル付きでないことを除き、第２の暗号化方式と類似していても良い。第１の暗号化方式及び第２の暗号化方式の幾つかの詳細事項は、本開示の別の場所で提供されても良い。
【００４８】
さらに、公開パラメータ２０２は、シミュレーションサウンド非対話型ゼロ知識（simulation  sound  non-interactive  zero-knowledge：ＮＩＺＫ）証明システムのための共通ランダムストリング（ＣＲＳ）を有しても良い。ＮＩＺＫ証明システムの幾つかの追加の詳細事項は、Jens  Groth及びAmit  Sahai,「Efficient  Non-Interactive  Proof  Systems  For  Bilinear  Groups」Cryptology  ePrint  Archive,  Report  ２００７/１５５,  ２００７、http://eprint.iacr.org/２００７/１５５において提供され、その全体が参照によりここに組み込まれる。
【００４９】
公開パラメータ２０２は、２つの公開キーのためのスムーズプロジェクティブハッシュ関数及び誤り訂正符号（ＥＣＣ）も有しても良い。ＥＣＣは、ＢＡＫＥプロセス２００の実行中に使用されても良い。例えば、第１の生体データセット２０６と第２の生体データセット２０８との間に存在し得る任意の差に対応するために、ＥＣＣが、ＢＡＫＥプロセス２００の中に含まれても良い。
【００５０】
以下の段落では、汎用ＢＡＫＥプロセス２００の実行が説明される。汎用ＢＡＫＥプロセス２００及び本開示の別の場所で議論される変更された交換プロセスは、実質的に対称的である。例えば、システムサーバ１４０及びコンピューティングシステム１０４は、ＢＡＫＥプロセス２００を対称的に実行しても良い。対称的な実行では、コンピューティングシステム１０４により行われるステップは、システムサーバ１４０により行われるステップにより実質的にミラーリングされる。
【００５１】
概して、汎用ＢＡＫＥプロセス２００を実行するために、コンピューティングシステム１０４及びシステムサーバ１４０は、交換情報セット２０４及び２１４を生成する。汎用ＢＡＫＥプロセス２００では、交換情報セット２０４及び２１４の各々は、（１）投影キー（projected  key）、（２）ハッシュキーの暗号文、（３）ゼロ知識証明、（４）乱数及びラベルの暗号文、（５）生体データセット２０６又は２０８のうちの一方のランダム生体情報、を有する。
【００５２】
交換情報セット２０４及び２１４の生成は、汎用交換情報式に従っても良い。汎用交換情報式は、以下の例示的なスムーズプロジェクティブハッシュ関数式及び例示的なＥＣＣ式により記述される。コンピューティングシステム１０４の汎用交換情報式は、以下を有しても良い。
【００５３】
EI１=(s,c１,π,c２,x);
k←K;
s=α(k);
c１=ENC１pk１(k);
π=PCRS(s,c１)εL;
label=(sid,P,P’,s,c１,π);
r←{０,１}k’;
c２=ENC２pk２(label,r);
x=(b)XOR(Encode(r));
L={(s,c１):∃kεK  and  w,  such  that  s=α(k)  and  c１=ENC１pk１(k;w)}
システムサーバ１４０の汎用交換情報式は、以下を有しても良い。
【００５４】
k'←K;
s’=α(k’);
c１’=ENC１pk１(k’);
π’=PCRS(s’,c１’)εL;
label’=(sid,P’,P,s’,c１’,π’);
r’←{０,１}k’;
c２’=ENC２pk２(label’,r’);
x’=(b’)XOR(Encode(r’));
EI２=(s’,c１’,π’,c２’,x’);
L’={(s’,c１’):∃k’εK  and  w’  such  that  s’=α(k’)  and  c１’=ENC１pk１(k’;w’)}
スムーズプロジェクティブハッシュ関数式は以下を有しても良い。
【００５５】
(K,Gc,H={HASHk}kεK,S,α:K→S)
コンピューティングシステム１０４のためのＥＣＣ式は、以下を有しても良い。
【００５６】
(n’,k’,２δ’+１)ECC=(Encode,Decode)
汎用交換情報式において、ｂ及びｂ’は上述の通りである。本開示を通じて、ダッシュ記号「’」は、パラメータがシステムサーバ１４０において生成されることを示し、ダッシュ記号「’」の不在は、パラメータがコンピューティングシステム１０４において生成されることを示す。パラメータＰは、コンピューティングシステム１０４の装置識別子を表し、Ｐ’はシステムサーバ１４０の装置識別子を表す。パラメータｓｉｄは、共有セッション識別子を表す。パラメータαは、スムーズハッシュ関数を表す。パラメータｋ及びｋ’は、ハッシュキーを表す。具体的には、直ぐ上に上述したダッシュ記号の慣例に従って、ｋはコンピューティングシステム１０４で生成されたハッシュキーを表し、ｋ’はシステムサーバ１４０で生成されたハッシュキーを表す。演算子←は、ランダム一様引き抜き（drawing）演算子を表す。式ｘ＝（ｂ）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ））及びｘ’＝（ｂ’）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ’））は、ランダム生体情報式を表す。
【００５７】
パラメータｓ及びｓ’は、投影キーを表す。パラメータｃ１及びｃ１’は、ハッシュキーの暗号文を表す。パラメータｃ２及びｃ２’は、ラベルの暗号文及び乱数を表す。パラメータπ及びπ’は、ゼロ知識証明を表す。パラメータｘ及びｘ’は、ランダム生体情報を表す。パラメータｗ及びｗ’は証拠（witness）を表す。演算子ＰＣＲＳ（）は、シミュレーションサウンドＮＩＺＫを表す。パラメータＬは言語を表す。パラメータｌａｂｌｅ及びｌａｂｌｅ’は、通信セッションのためのラベルを表す。パラメータｒ及びｒ’は、乱数を表す。集合｛０，１｝ｋ’及び｛０，１｝ｋは、乱数がサンプリングされるコンピューティングシステムで生成されたハッシュキーの次元を有する２進ベクトル空間を表す。パラメータｐｋ１は、第１の公開キーを表す。関数ＥＮＣ１は、第１の暗号化方式の暗号化演算子を表す。パラメータｐｋ２は、第２の公開キーを表す。関数ＥＮＣ２は、第２の暗号化方式の暗号化演算子を表す。パラメータＥＩ１は第１の交換情報セット２１４を表し、パラメータＥＩ２は第２の交換情報セット２０４を表す。演算子∃は、「少なくとも１つの要素が存在する」演算子を表す。演算子εは、メンバーシップ関数を表す。
【００５８】
関数（ｎ’，ｋ’，２δ’＋１）ＥＣＣは、上述のように生体データセット２０６と２０８との間の差に対応する誤り訂正符号を表す。表記（ｎ’，ｋ’，２δ’＋１）は、汎用符号化理論の表記を表す。汎用符号化理論表記では、ｎ’はコードワードの長さを表し、ｋは可能なコードワードの数を表し（例えば、２＾ｋ）、２δ’＋１は、誤り耐性を表す。δ’は、幾つかの状況では、δと実質的に等価であっても良い。演算子Ｅｎｃｏｄｅは、ＥＣＣ符号化演算子を表す。演算子Ｄｅｃｏｄｅは、ＥＣＣ復号化演算子を表す。
【００５９】
式（K,Gc,H={HASHk}kεK,S,α:K→S)は、第２の公開キーにおけるスムーズプロジェクティブハッシュ関数を表す。演算子ＨＡＳＨｋは、ハッシュキーに基づく第１のハッシュ関数を表す。演算子ＸＯＲ（又は「○の中に＋」又は排他的論理和）は、ＸＯＲ演算子を表す。パラメータＫはキー空間を表す。パラメータＧｃは巡回群を表す。パラメータＨは、ハッシュ関数ファミリを表す。パラメータＳは、出力空間を表す。
【００６０】
交換情報セット２０４及び２１４が生成された後、交換情報セット２０４は、コンピューティングシステム１０４とシステムサーバ１４０との間で通信される。ユーザ生成モジュール１１２及びサーバ生成モジュール１１４は、受信した交換情報セット２０４及び２１４の中の特定の情報サブセット、通信された交換情報セット２０４及び２１４、公開パラメータ２０２のうちの１又は複数、又はそれらの何らかの組合せに基づき、セッションキー２１６を計算しても良い。
【００６１】
幾つかの実施形態では、セッションキー２１６の計算は、汎用評価式に従っても良い。
【００６２】
コンピューティングシステム１０４のための汎用評価式では、計算は、コンピューティングシステム１０４において生成されたハッシュキーに基づく第１のハッシュ関数を第２の交換情報セット２０４のサブセットに適用するステップと、システムサーバ１４０において生成された投影キーに基づく第２のハッシュ関数を第１の交換情報セット２１４のサブセットに適用するステップを有しても良い。例えば、コンピューティングシステム１０４では、汎用計算式は、以下を有しても良い。
【００６３】
skp=HASHk(label’,c２’,x’)・PROJHASHα(k’)(label,c２,x),
ここで、label’=(sid,P’,P,s’,c１’,π’)、及びr’=Decode((x’)XOR(b))=DEC２pk２(c２’)である。
【００６４】
システムサーバ１４０では、セッションキー２１６の計算は対称的であっても良い。したがって、システムサーバ１４０では、汎用計算式は、以下を有しても良い。
【００６５】
skp=HASHk’(label,c２,x)・PROJHASHα(k)(label’,c２’,x’),
ここでlabel=(sid,P,P’,s,c１,π)、及びr=Decode((x)XOR(b’))=DEC２pk２(c２)である。
【００６６】
評価式では、ｌａｂｅｌ、ｌａｂｌｅ’、ｃ２、ｃ２’、ｘ、ｘ’、ｓｉｄ、Ｐ、Ｐ’、ｓ、ｓ’、ｃ１、ｃ１’、π、π’、ｒ、ｒ’、ｂ、ｂ’、ｐｋ２、ＤＥＣ２、ＸＯＲ（又は「○の中に＋」又は排他的論理和）、α、ＨＡＳＫｋは、上述の通りである。演算子ＰＲＯＪＨＡＳＨα（ｋ）は、第２のハッシュ関数を表す。パラメータｓｋｐは、第２のセッションキーを表す。
【００６７】
受信エンティティがハッシュキー（ｋ又はｋ’）を知っていて、ＥＣＣのＤｅｃｏｄｅ演算子を用いて乱数（ｒ及びｒ’）を復元できるので、交換情報セット２０４又は２１４を受信するエンティティ（例えば、コンピューティングシステム１０４又はシステムサーバ１４０）は、第１のハッシュ関数（例えば、HASHk(label,c２,x)又はHASHk(label’,c２’,x’)）を計算しても良い。さらに、受信エンティティは、投影キー（例えば、ｓ、ｓ’、α（ｋ）又はα（ｋ’））及び乱数（ｒ又はｒ’）を用いて第２のハッシュ関数（例えば、PROJHASHα(k)(label’,c２’,x’)又はPROJHASHα(k)(label,c２,x)）を計算し、ラベル及び乱数の暗号文（例えば、ｃ２又はｃ２’）を生成しても良い。
【００６８】
＜汎用ＢＡＫＥプロセス２００の暗号化方式＞
上述のように、公開パラメータ２０２は、２つの公開キーを有しても良い。公開キーは、第１の暗号化方式及び第２の暗号化方式を用いて生成されても良い。第２の暗号化方式は、ラベル付きCramer  Shoup暗号化方式により開始されても良い。第２の暗号化方式は、決定ディフィーヘルマン（decisional  Diffie-Hellman：ＤＤＨ）の前提に基づきＣＣＡ−２セキュアであっても良い。ラベル付きCramer  Shoup暗号化方式の幾つかの追加の詳細事項は、Ronald  Cramer及びVictor  Shoup、「Universal  Hash  Proofs  And  A  Paradigm  For  Adaptive  Chosen  Ciphertext  Secure  Public-Key  Encryption」、ｐｐ４０４−４１２、２００５、において提供され、該文献の全体は参照することによりここに組み込まれる。第１の暗号化方式は、第１の暗号化方式が第２の暗号化方式の非ラベル付きバージョンを含み得ることを除き、第２の暗号化方式と類似していても良い。以下の段落で、第１の暗号化方式に続き第２の暗号化方式が説明される。
【００６９】
第２の暗号化方式は、キー生成演算子、暗号化演算子、復号化演算子を有しても良い。キー生成演算子は、公開キー及び秘密キーを出力しても良い。公開キーは、暗号化のために使用されても良く、秘密キーは、復号化のために使用されても良い。
【００７０】
公開キー及び秘密キーを生成するために、巡回群が選択されても良い。巡回群は、大きな素数の次数（large  prime  order）及び２つの独立した生成元を有しても良い。巡回群は、素数の次数の整数のセットと所定範囲内の可逆マッピングとに対する衝突耐性のあるハッシュ関数を有しても良い。
【００７１】
例えば、幾つかの実施形態では、第２の暗号化方式のキー生成演算子は、以下の第２のキー生成式に従って公開キー及び秘密キーを生成しても良い。
GEN２:
Choose:Gc(p);
(g１,g２)←Gc;
(x１,x２,y１,y２,z)←Zp;
c=g１x１g２x２;
d=g１y１g２y２;
h=g１z;
pk２=(Gc,g１,g２,c,d,h,CRHASH);
sk２=(x１,x２,y１,y２,z);
CRHASH  onto  Zp*  and  Gr  from  {０,１}n  to  Gc;
Output:(pk２,sk２)
第２のキー生成式では、ＧＥＮ２は、第２の暗号化方式のキー生成演算子を表す。パラメータＧｃは巡回群を表す。パラメータｐは、巡回群の素数の次数を表す。パラメータｇ１は、巡回群の第１の独立生成元を表す。パラメータｇ２は、巡回群の第２の独立生成元を表す。パラメータＺｐは、巡回群の素数の次数の整数のセットを表す。表記Ｚｐは、追加演算に伴う整数モジュロｐのセットを更に表す。対照的に、表記Ｚｐ＊は、乗算演算に伴う整数モジュロｐのセットを表す。パラメータｘ１、ｘ２、ｙ１、ｙ２、ｚは、素数の次数の整数のセットのサンプルを表す。パラメータｃ、ｄ、ｈは、中間生成元パラメータを表す。関数ＣＲＨＡＳＨは、衝突耐性のあるハッシュ関数を表す。パラメータＧｒは、可逆マッピングを表す。パラメータ｛０，１｝Ｎ乃至Ｇｃは、範囲を表す。パラメータｐｋ２は、公開キーを表し、ＢＡＫＥプロセス２００の中で実装される第２の公開キーであっても良い。パラメータｓｋ２は、第２の暗号化方式の秘密キーを表す。
【００７２】
第２の暗号化方式の暗号化演算子は、入力を受け、該入力の暗号文を生成しても良い。例えば、入力は、ラベル、メッセージ、乱数を有しても良い。暗号化演算子により生成された暗号文は、反転メッセージ、ハッシュ値、公開キーの１又は複数のパラメータを有しても良い。
【００７３】
幾つかの実施形態では、暗号化演算子は、以下の第２の暗号化式に従って暗号文を生成しても良い。
ENC２pk２:
Input=(label,m,r);
mε{０,１}n;
rεZp;
M=Gr(m);
ε=CRHASH(label,g１r,g２r,Mhr);
CX=(label,g１r,g２r,Mhr,(cdε)r);
output  CX
第２の暗号化方式において、ｐｋ２、Ｚｐ、Ｇｒ、ＣＲＨＡＳＨ、ｇ１、ｇ２、ｃ、ｄ、｛０，１｝ｎは上述の通りである。パラメータＥＮＣ２ｐｋ２は、第２の暗号化方式の暗号化演算子を表す。暗号化演算子は、第２の公開キーに基づく。パラメータｌａｂｅｌは、入力に含まれるラベルである。パラメータｍは、メッセージを表す。パラメータｒは、乱数を表す。パラメータＭは、反転メッセージを表す。パラメータεは、ハッシュ値を表す。パラメータＣＸは、暗号化演算子により出力される暗号文を表す。
【００７４】
第２の暗号化方式の復号化演算子は、入力を受け、該入力の中の暗号化されたメッセージを生成しても良い。復号化演算子は、第２の暗号化方式のキー生成演算子により生成された第２の公開キー及び秘密キーに基づきメッセージを生成しても良い。
【００７５】
例えば、入力は、ラベル及び暗号文を有しても良い。復号化演算子は、ラベルのハッシュ値及び暗号文の一部が暗号文の別の部分と等しいか否かを決定しても良い。ハッシュ値が等しいか否かに基づき、復号化演算子は、メッセージを出力しても良い。
【００７６】
幾つかの実施形態では、復号化演算子は、以下の第２の復号化式に従ってメッセージを生成しても良い。
DEC２(pk２,sk２):
Input=(label,CY),  where  CY=(u１,u２,e,v);
If  ε=CRHASH(label,u１,u２,e),  if  (u１x１u２x２(u１y１u２y１)ε≠?v,
output  ⊥
otherwise:
output  m=Gr-１(e/u１z)
第２の復号化式において、ＣＲＨＡＳＨ、ｌａｂｅｌ、ｐｋ２、ｓｋ２、ｍ、ε、ｘ１、ｘ２、ｙ１、ｙ２、ｚ、Ｇｒは、上述の通りである。演算子ＤＥＣ２（ｐｋ２，ｓｋ２）は、第２の暗号化方式に対する復号化演算子を表す。パラメータＣＹは、第２の暗号化方式の復号化演算子のための暗号文を表す。パラメータｕ１、ｕ２、ｅ、ｖは、暗号文の要素を表す。演算子⊥は、否定（contradictory）演算子を表す。
【００７７】
上述のように、第１の暗号化方式は、第１の暗号化方式が第２の暗号化方式の非ラベル付きバージョンであっても良いことを除き、第２の暗号化方式と類似していても良い。例えば、第１の暗号化方式は、第１のキー生成式、第１の暗号化方式、及び第１の復号化式に従って定められても良い。
GEN１:
Choose  Gc(p);
(g１,g２)←Gc;
(x１,x２,y１,y２,z)←Zp;
c=g１x１g２x２;
d=g１y１g２y２;
h=g１z;
pk１=(Gc,g１,g２,c,d,h,CRHASH);
sk１=(x１,x２,y１,y２,z);
CRHASH  onto  Zp*  and  Gr  from  {０,１}n  to  Gc;  and
output:(pk１,sk１)
ENC１pk１:
Input=(m,r);
mε{０,１}n;
rεZp;
M=Gr(m);
ε=CRHASH(g１r,g２r,Mhr);
CX=(g１r,g２r,Mhr,(cdε)r);
output  CX
DEC１(pk１,sk１):
Input=(CY),
Where  CY=(u１,u２,e,v);
If  ε=CRHASH(u１,u２,e),  if  (u１x１u２x２(u１y１u２y１)ε≠?v,
output  ⊥;
otherwise:
output  m=Gr-１(e/u１z)
第１のキー生成式、第１の暗号化式、及び第１の復号化式では、大部分のパラメータは、第２の暗号化方式に関して上述したパラメータと同様である。パラメータｐｋ１及びｓｋ１は、それぞれ、第１の暗号化式により出力される第１の公開キー及び第１の秘密キーを表す。パラメータＤＥＣ１（ｐｋ１，ｓｋ１）は、第１の暗号化方式の復号化演算子を表す。パラメータＥＮＣ１ｐｋ１は、第１の暗号化方式の暗号化演算子を表す。そして、ＧＥＮ１は、第１のキー生成演算子を表す。
【００７８】
幾つかの実施形態では、第１の暗号化方式により出力される第１の公開キー、第２の暗号化方式により出力される第２の公開キー、第１の暗号化演算子、第２の暗号化演算子、又はそれらの何らかの組合せは、本願明細書の別の場所に記載される汎用交換情報式において実装されても良い。
【００７９】
＜汎用ＢＡＫＥプロセス２００のハッシュ関連式＞
幾つかの実施形態では、汎用交換情報式は、１又は複数のハッシュ関連式を組み込んでも良い。幾つかの実施形態では、汎用交換情報式は、スムーズプロジェクティブハッシュ関数を含んでも良い。例えば、コンピューティングシステム１０４及びシステムサーバ１４０は、スムーズプロジェクティブハッシュ関数キーをサンプリングする間に言語を用いても良い。この言語は、第２の公開キーに基づいても良い。幾つかの実施形態では、コンピューティングシステム１０４のための言語は、次の言語式に従って定められても良い。
Lb={(label,c２,x)|∃  r,  w  such  that:
c２=ENC２pk２(label,r;w)  and
r=Decode((x)XOR(b))}
幾つかの実施形態では、システムサーバ１４０のための言語は、次の言語式に従って定められても良い。
Lb’={(label’,c２’,x’)|∃  r’,  w’  such  that:
c２’=ENC２pk２(label’,r’;w’)  and
r’=Decode((x’)XOR(b’))}
スムーズプロジェクティブハッシュ式では、ｌａｂｅｌ、ｌａｂｅｌ’、ｃ２、ｃ２’、ｘ、ｘ’、∃、ｒ、ｒ’、ＥＮＣ２ｐｋ２、ｗ、ｗ’、Ｄｅｃｏｄｅ、ｂ、ｂ’、及びＸＯＲ（又は「○の中に＋」又は排他的論理和）は、上述の通りである。パラメータＬｂ及びＬｂ’は、言語を表す。
【００８０】
さらに、幾つかの実施形態では、汎用交換情報式は、第２の公開キーのハッシュキー生成を組み込んでも良い。ハッシュキー生成は、以下のハッシュキー生成式に従っても良い。
【００８１】
pk２=(Gc,g１,g２,c,d,h,CRHASH);
η１,η２,θ,μ,ν←Zp;
Output:k=(η１,η２,θ,μ,ν);  and
Output:α(k)=(k１,k２)=(g１η１g２θhμcν,gη２dν)
ハッシュキー生成式において、ｐｋ２、Ｇｃ、ｇ１、ｇ２、ｃ、ｄ、ｈ、ＣＲＨＡＳＨ、Ｚｐ、ｋ、及びα（ｋ）は上述の通りである。パラメータη１、η２、θ、μ、ｖは、整数のセットからサンプリングされる。パラメータｋ１及びｋ２は、投影キーの要素である。
【００８２】
幾つかの実施形態では、汎用計算式は、ハッシュキーに基づく第１のハッシュ関数を組み込んでも良い。ハッシュキーに基づく第１のハッシュ関数は、以下の第１の汎用ハッシュ関数式に従っても良い。
【００８３】
ハッシュキー「ｋ」に基づく第１のハッシュ関数は、次の通りである。
HASHk(label,c２,x)  where:
r=Decode((x)XOR(b)),c２=Enc２pk２(label,r)=(u１,u２,e,v)  and
pk２=(G,g１,g２,c,d,h,CRHASH),
以下を行う：
r=Decode((x)XOR(b));
ε=CRHASH(label,u１,u２,e);  and
HASKk(label,c２,x)=u１(η１+εη２)u２θ(e/Gr)μvν
幾つかの実施形態では、汎用計算式は、投影キーに基づく第２のハッシュ関数を組み込んでも良い。投影キーに基づく第２のハッシュ関数は、以下の第２の汎用ハッシュ関数式に従っても良い。
【００８４】
投影キー（ｋ１，ｋ２）に基づく第２のハッシュ関数は、次の通りである。
PROJHASKα(k)(label,c２,x)  where:
r=Decode((x)XOR(b)),c２=Enc２pk２(label,r;w)=(u１,u２,e,v)  and
pk２=(G,g１,g２,c,d,h,CRHASH),
以下を行う：
ε=CRHASH(label,u１,u２,e);  and
PROJHASKα(k)(label,c２,x)=(k１k２ε)w
第１及び第２の汎用ハッシュ関数式では、パラメータは、上述の通りである。
【００８５】
＜落とし戸スムーズプロジェクティブハッシュ関数の構造＞
幾つかの実施形態では、落とし戸スムーズプロジェクティブハッシュ関数（trapdoor  smooth-projective  hash  function：ＴＳＰＨＦ）構造は、本願明細書の別の場所で議論する汎用ＢＡＫＥプロセス２００の実行の効果を増大するために実装されても良い。ＴＳＰＨＦ構造の概略を以下に提供する。ＴＳＰＨＦ構造の幾つかの追加の詳細事項は、参照することにより全体がここに組み込まれるBenhamouda  et  al.「New  Techniques  For  Sphfs  And  Efficient  One-Round  PAKE  Protocols」、pages  ４４９-４７５,  ２０１３において与えられる。汎用ＢＡＫＥプロセス２００がＴＳＰＨＦ構造と共に実装されるとき、ＢＡＫＥプロセス２００は、変更ＢＡＫＥプロセス２００として表される。変更ＢＡＫＥプロセス２００の全体的ステップは、汎用ＢＡＫＥプロセス２００と類似しても良い。
【００８６】
ＴＳＰＨＦ構造は、ＴＳＰＨＦの言語定義、公開キー及び第２の共通ランダムストリング（ＣＲＳ’）のためのハッシュキー生成、公開キー及び第２の共通ランダムストリングによる投影キーの有効性チェック、ハッシュキーに基づく第１のハッシュ関数の適用、投影キーに基づく第２のハッシュ関数の適応、並びにハッシュキー及び落とし戸によるハッシュ評価、を含む。これらの各々は、以下の段落で議論される。ＴＳＰＨＦ構造は、パラメータ生成モジュール１１８、ユーザ生成モジュール１１２、サーバ生成モジュール１１４、又はそれらの何らかの組合せにより実行されても良い。
【００８７】
ＴＳＰＨＦ構造では、変更公開キーが与えられる前に、ＴＳＰＨＦ言語が、ＴＳＰＨＦについて定められても良い。幾つかの実施形態では、ＴＳＰＨＦ言語は、以下のＴＳＰＨＦ言語式に従って定められても良い。
LbT={(label,cT,x)|∃  w,  r  such  that:
cT=ENCTpkm(label,r;w)  and
r=Decode((x)XOR(b))}
ＴＳＰＨＦ言語式では、ｌａｂｅｌ、ｘ、ｗ、ｒ、∃、Ｄｅｃｏｄｅ、ＸＯＲ（又は「○の中に＋」又は排他的論理和）、及びｂは、上述の通りである。パラメータＬｂＴは、ＴＳＰＨＦ言語を表す。パラメータｃＴは、ＴＳＰＨＦ言語式の中で用いられる暗号文を表す。関数ＥＮＣＴｐｋｍは、ＴＳＰＨＦ暗号化方式の暗号化演算子を表す。パラメータｐｋｍは、変更公開キーを表す。演算子｜は、「〜の条件を満たす」（ｓｕｃｈ  ｔｈａｔ）演算子を表す。
【００８８】
ＴＳＰＨＦ構造では、双線形グループが生成されても良い。双線形グループは、素数の次数の中で生成されても良く、ペアリング演算子を有しても良い。幾つかの実施形態では、双線形グループは、双線形グループ式（ｐ，Ｇ１，Ｇ２，ＧＴ，ｅ＾）により表される。双線形グループ式では、ｐは素数の次数を表し、Ｇ１は第１の双線形グループを表し、Ｇ２は第２の双線形グループを表し、ＧＴは出力双線形グループを表し、ｅ＾はペアリング演算子を表す。
【００８９】
さらに、ＴＳＰＨＦ構造では、ＴＳＰＨＦキー生成方式が実装されても良い。ＴＳＰＨＦキー生成方式は、生成された双線形グループのうちの第１の双線形グループの中で動作するラベル付きCramer  Shoup暗号化方式であっても良い。ＴＳＰＨＦキー生成方式は、以下のＴＳＰＨＦキー生成式により表される。
(GENt,ENCt,DECt)
GENt
outputs(pkm,skm);
pkm=(G１,g１-１,g１-２,c,d,h-１,CRHASH);
skt=(x１,x２,y１,y２,z);  and
g２←G２
キー生成式において、ｘ１、ｘ２、ｙ１、ｙ２、Ｇ１、Ｇ２、ｃ、ＣＲＨＡＳＨ、ｄ、ｐｋｍ、及びＣＲＨＡＳＨは、上述の通りである。パラメータｇ１−１及びｇ１−２は、双線形グループのうちの第１の双線形グループの生成元を表す。演算子ＧＥＮｔは、ＴＳＰＨＦキー生成演算子を表す。パラメータｈ−１は、第２の双線形グループのグループ要素を表す。演算子ＥＮＣｔは、ＴＳＰＨＦ暗号化演算子を表す。演算子ＤＥＣｔは、ＴＳＰＨＦ復号化演算子を表す。パラメータｓｋｍは、変更秘密キーを表す。パラメータｇ２は、第２の双線形グループの生成元を表す。
【００９０】
さらに、ＴＳＰＨＦ構造では、落とし戸を構成し得るＴＳＰＨＦ乱数が選択されても良く、ＣＲＳ’は、落とし戸を冪乗された第２の双線形グループからサンプリングされた生成元に設定されても良い。例えば、落とし戸及びＣＲＳ’は、以下のＴＳＰＨＦ設定式に従っても良い。
【００９１】
τ’←Zp;
CRS’  set  to  ζ;  and
ζ=g２τ’
設定式において、ｇ２は上述した通りである。パラメータτ’は、落とし戸を表す。パラメータζは、ＣＲＳ’に設定される。パラメータＺｐは、双線形グループの素数の次数の整数のセットを表す。
【００９２】
さらに、ＴＳＰＨＦ構造では、変更公開キーのためのハッシュキー生成が実装されても良い。幾つかの実施形態では、ハッシュキー生成は、以下の変更ハッシュキー生成式に従って実行されても良い。
【００９３】
pkm=(G１,g１-１,g１-２,c,d,h-１,CRHASH);
CRS’=ζ;
η１,η２,θ,μ,ν←Zp;
Output:k=(η１,η２,θ,μ,ν)
Output:α(k)=(k１,k２,k３)=(g１-１η１g１-２θh-１μcν,g１-１η２dν,k３)εG１２×G２５;
k３=(χ１-１,χ１-２,χ２,χ３,χ４)εG２５;
χ１-１=ζη１;
χ１-２=ζη２;
χ２=ζθ;
χ３=ζμ;  and
χ４=ζν
変更ハッシュキー生成式において、Ｇ１、Ｇ２、ｋ１、ｋ２、η１、η２、θ、μ、ｖ、ＣＲＳ’、ｇ１−１、ｇ１−２、ｃ、ｄ、ｈ、ＣＲＨＡＳＨ、ζ、α（ｋ）、Ｚｐ、ｐｋｍ、及びεは上述の通りである。パラメータｋ３は、投影キーの第３の要素を表す。パラメータχ１―１、χ１−２、χ２、χ３、χ４は、投影キーの第３の要素の、それぞれ第１の要素、第２の要素、第３の要素、第４の要素、第５の要素を表す。
【００９４】
ＴＳＰＨＦ構造では、変更公開キー及びＣＲＳ’による投影キーの有効性チェックが実施されても良い。幾つかの実施形態では、投影キーの有効性チェックは、変更有効性チェック式に従って実行されても良い。例えば、変更キー及びＣＲＳ’を用いて、投影キーの有効性は、以下のように調べることができる。
ｅ＾（ｋ１，ζ）＝？ｅ＾（ｇ１−１，χ１−１）・ｅ＾（ｇ１−２，χ２）・ｅ＾（ｈ１，χ３）・ｅ＾（ｃ，χ４）；
ｅ＾（ｋ２，ζ）＝？ｅ＾（ｇ１−１，χ１−２）・ｅ＾（ｄ，χ４）
変更有効性チェック式において、パラメータは上述の通りである。図２の実施形態では、変更有効性チェック式が真のとき、投影キーは有効である。
【００９５】
ＴＳＰＨＦ構造では、ハッシュキーに基づく第１のハッシュ関数が実装される。幾つかの実施形態では、ハッシュキーに基づく第１のハッシュ関数は、以下の第１の変更ハッシュ関数式に従って実行されても良い。
On  input(label,c,x)  where
r=Decode((x)XOR(b)),  c=ENCpkm(label,r)=(u１,u２,e,v),
output:
HASHk(label,c,x)=e^(u１(η１+εη２)u２θ(e/Gr(r))μvν,g２);  and
ε=CRHASH(label,u１,u２,e)
変更ハッシュ評価式において、パラメータは上述の通りである。
【００９６】
ＴＳＰＨＦ構造では、投影キーによる投影ハッシュ評価が実装される。幾つかの実施形態では、投影ハッシュ評価は、以下の変更投影ハッシュ評価式に従って実行されても良い。
for  α(k)=(k１,k２,k３):
On  input(label,c,x;w)  where
r=Decode((x)XOR(b)),  c=ENCTpkm(label,r;w)=(u１,u２,e,v),
output:
PROJHASHk１,k２,k３(label,c,x;w)=e^((k１k２ε)w,g２);  and
ε=CRHASH(label,u１,u２,e)
変更投影ハッシュ評価式において、大部分のパラメータは上述の通りである。関数ＰＲＯＪＨＡＳＨｋ１，ｋ２，ｋ３は、投影キーに基づく第２のハッシュ関数を表す。
【００９７】
ＴＳＰＨＦ構造では、ハッシュキー及び落とし戸によるハッシュ評価が実装されても良い。幾つかの実施形態では、ハッシュキー及び落とし戸によるハッシュ評価は、以下の変更落とし戸ハッシュ評価式に従って実行されても良い。
For  trapdoor  τ':
On  input(label,c,x)  where
r=Decode((x)XOR(b)),
c=ENCTpkm(label,r)=(u１,u２,e,v),
output
THASHk,τ’(label,c,x)=
(ｅ＾(u１,χ１-１χ１-２ε)・ｅ＾(u２,χ２)・ｅ＾(e/Gr(mT),χ３)・ｅ＾(v,χ４))１/τ';  and
ε=CRHASH(label,u１,u２,e)
変更落とし戸ハッシュ評価式において、大部分のパラメータは上述の通りである。パラメータｍＴは、式中のグループ特性を示す。
【００９８】
＜変更ＢＡＫＥプロセス２００＞
変更ＢＡＫＥプロセス２００は、本開示の他の場所で議論されるＴＳＰＨＦ構造の１又は複数の部分の使用を含み得る。変更ＢＡＫＥプロセス２００は、設定段階と、実行段階と、を有しても良い。設定段階は、パラメータ生成モジュール１１８、ユーザ生成モジュール１１２、サーバ生成モジュール１１４、又はそれらの何らかの組合せにより実行されても良い。
【００９９】
設定段階では、双線形グループが生成されても良い。双線形グループは、上述の双線形グループ式（ｐ，Ｇ１，Ｇ２，ＧＴ，ｅ＾）により表される。さらに、設定段階では、上述のＴＳＰＨＦキー生成方式が実装されても良い。ＴＳＰＨＦキー生成方式は、変更キー生成式に従って、変更公開キー及び変更秘密キーを出力しても良い。
【０１００】
さらに、設定段階では、ＴＳＰＨＦ乱数が選択されても良く、ＣＲＳ’は、落とし戸を冪乗された第２の双線形グループからサンプリングされた生成元に設定されても良く、ＥＣＣが指定されても良い。Cramer  Shoup暗号化方式の可逆マッピングは、第１の双線形グループにマッピングするよう構成されても良い。幾つかの実施形態では、ＴＳＰＨＦ乱数、ＣＲＳ’、及びＥＣＣは、変更設定式に従って生成されても良い。
【０１０１】
τ’←Zp;
(n’,k’,２δ+１)ECC(Encode,Decode);
Gr:{０,１}k’→G１;
CRS’  set  to  ζ;  and
ζ=g２τ’
変更設定式において、パラメータは上述の通りである。
【０１０２】
設定段階の出力はＣＲＳを有しても良い。ＣＲＳは、変更公開キー及び第２のＣＲＳを有しても良い。例えば、ＣＲＳは、以下のＣＲＳ式により表される。
CRS=(pkm,ζ)
ＣＲＳ式において、パラメータは上述の通りである。
【０１０３】
変更ＢＡＫＥプロセス２００の実行段階において、ユーザ生成モジュール１１２及びサーバ生成モジュール１１４は、それぞれ、セッションキー２１６を生じ得る対称プロトコルを実行しても良い。ユーザ生成モジュール１１２は、変更ハッシュキー生成式を用いて、ハッシュキー及び投影キーを生成しても良い。
【０１０４】
変更ＢＡＫＥプロセス２００において、コンピューティングシステム１０４及びシステムサーバ１４０は、交換情報セット２０４及び２１４を生成する。交換情報セット２１４及び２０４の各々は、（１）投影キー、（２）変更暗号文、（３）生体データセット２０６又は２０８のうちの一方のランダム生体情報、を有する。
【０１０５】
例えば、ユーザ生成モジュール１１２は、変更プロトコル乱数をサンプリングする。ユーザ生成モジュール１１２は、ＥＣＣの符号化関数及び第１の生体データセット２０６を用いて、ランダム生体情報を設定しても良い。ユーザ生成モジュール１１２は、変更暗号文を評価しても良い。変更暗号文は、ＴＳＰＨＦ暗号化演算子、変更公開キー、ラベル、及び変更プロトコル乱数に基づいても良い。
【０１０６】
例えば、コンピューティングシステム１０４では、第１の交換情報セット２１４は、変更交換情報式に従って生成されても良い。
【０１０７】
kεZp５;
α(k)εG１２×G２５;
r←{０,１}k’;
x=(b)XOR(Encode(r));
C=ENCTpkm(label,r)εG１４;
label=(P,P’,α(k),x);  and
EI１=(α(k),C,x).
コンピューティングシステム１０４の変更交換情報式において、ｋはハッシュキーを表す。パラメータＺｐ５は、双線形グループの素数の次数の整数のセットを表す。値５は、整数のセットから引き出されるサンプルの数を表す。例えば、落とし戸の章で上述したように、ハッシュキー（ｋ）は、５個の要素（η１、η２、θ、μ、ｖ）を有しても良い。パラメータα（ｋ）は、投影キーを表す。パラメータＧ１２及びＧ２５は、第１及び第２の双線形グループを表す。演算子ｘは、積演算子を表す。パラメータｒは、変更プロトコル乱数を表す。演算子←は、サンプリング演算子を表す。セット｛０，１｝ｋ’は、ハッシュキーの次元のベクトル空間を表す。パラメータｘは、ランダム生体情報を表す。パラメータｂは、第１の生体データセット２０６を表す。演算子ＸＯＲ（又は「○の中に＋」又は排他的論理和）は、ＸＯＲ演算子を表す。パラメータＣは、変更暗号文を表す。演算子ＥＮＣＴｐｋｍは、変更ＢＡＫＥプロセス２００の暗号化演算子を表す。パラメータｌａｂｅｌは、ラベルを表す。パラメータＰ及びＰ’は、それぞれ、コンピューティングシステム１０４及びシステムサーバの識別子を表す。パラメータＥＩ１は、第１の交換情報セット２１４を表す。第１の交換情報セット２１４は、システムサーバ１４０に通信されても良い。
【０１０８】
上述の通り、変更ＢＡＫＥプロセス２００は対称であっても良い。したがって、システムサーバ１４０は、コンピューティングシステム１０４に通信され得る第２の交換情報セット２０４を生成しても良い。第１の交換情報セット２１４と同様に、第２の交換情報セット２０４は、ＥＣＣの符号化関数及び第２の生体情報データセット２０８を用いて、投影キー、変更暗号文、及びランダム生体情報を有しても良い。幾つかの実施形態では、第２の交換情報セット２０４は、変更交換情報式に従って生成されても良い。
【０１０９】
k’εZp５;
α(k’)εG１２×G２５;
r’←{０,１}k;
x’=(b’)XOR(Encode(r’));
C’=ENCTpkm(label’,r’)εG１４;
label’=(P’,P,α(k’),x’);  and
EI２=(α(k’),C’,x’).
システムサーバ１４０の更交換情報式において、パラメータは、コンピューティングシステム１０４に関して上述したものと同様の値を表す。システムサーバ１４０は、第２の交換情報セット（ＥＩ２）２０４をコンピューティングシステム１０４に通信しても良い。
【０１１０】
コンピューティングシステム１０４は、第２の交換情報セット２０４をシステムサーバ１４０から受信しても良い。第２の交換情報セット２０４を受信すると、ユーザ生成モジュール１１２は、変更公開キー及びＣＲＳ’を用いて、投影キーの有効性をチェックしても良い。例えば、ユーザ生成モジュール１１２は、本開示の他の場所に記載される変更有効性チェック式を用いて、投影キーの有効性をチェックしても良い。有効性チェックが失敗した場合、ユーザ生成モジュール１１２は、変更ＢＡＫＥプロセス２００の実行を中止しても良い。
【０１１１】
有効性チェックが成功した場合、ユーザ生成モジュール１１２は、第２のラベルの値を設定し、セッションキーを計算しても良い。第２のラベルは、コンピューティングシステム識別子、システムサーバ識別子、投影キー、及び第２の生体データセット２０８のランダム生体情報を有しても良い。
【０１１２】
セッションキー２１６は、第２のラベルに適用されるハッシュキーと、システムサーバ１４０から通信された変更暗号文と、第２の生体データセット２０８のランダム生体情報とに基づく第１のハッシュ関数に基づき、並びに、コンピューティングシステム１０４において生成されたラベルに適用される投影キーと、コンピューティングシステム１０４において生成される変更暗号文と、第１の生体データセット２０６のランダム生体情報と、証拠（ｗｉｔｎｅｓｓ）とに基づく第２のハッシュ関数に基づき、計算されても良い。ユーザ生成モジュール１１２は、第１の生体データセット２０６と第２の生体データセット２０８との間の差が特定の閾より小さい限り、ＥＣＣの復号化演算子を用いて受信した乱数を復元できるので、セッションキー２１６を計算可能であっても良い。
【０１１３】
幾つかの実施形態では、セッションキー２１６は、以下の変更計算式に従って、コンピューティングシステム１０４について計算されても良い。
skp=HASHk(label’,C’,x’)・PROJHASHα(k’)(label,C,x;w);  and
DIST  (b,b')<δの場合、ｒ’はDecode((b)XOR(x’))を用いて復元可能である
コンピューティングシステム１０４の変更計算式において、ｒ’、ＤＩＳＴ、δ、Ｄｅｃｏｄｅ、ｂ、ｂ’、ＸＯＲ（又は「○の中に＋」又は排他的論理和）、ｌａｂｅｌ、ｌａｂｅｌ’、Ｃ’、Ｃ、ｘ、ｘ’、ｗ、ｋ、ｋ’は、上述の通りである。パラメータｓｋｐは、セッションキー２１６を表す。関数ＨＡＳＨｋは、第１のハッシュ関数を表す。関数ＰＲＯＪＨＡＳＨα（ｋ’）は、第２のハッシュ関数を表す。
【０１１４】
システムサーバ１４０は、対称演算を実行しても良い。例えば、セッションキー２１６は、以下の変更計算式に従って、システムサーバ１４０について計算されても良い。
skp=HASHk’(label,C,x)・PROJHASHα(k)(label’,C’,x’;w’);
DIST  (b,b')<δの場合、Decode((b’)XOR(x))を用いて復元可能である
システムサーバ１４０のセッションキー式において、パラメータは上述の通りである。
【０１１５】
ＢＡＫＥプロセス２００の効率的実行を用いて、非対称双線形グループについての対称外部Diffie-Hellman（symmetric  external  Diffie-Hellman：ＳＸＤＨ）の前提に基づき、及びノイズのあるシンドロームの分布が個々に独立であると仮定すると、上述のプロセス２００は理想的な機能を実現する。幾つかの実施形態では、理想的な機能は、敵の力が限られている理想的なゲームと実質的に等価であっても良い。例えば、理想的な機能は、以下の理想的な機能的クエリに従って定められても良い。
【０１１６】
Functionality  FBAKE:機能ＦＢＡＫＥは、セキュリティパラメータｋによりパラメータ化される。これは、以下のクエリにより、敵Ｓ及び設定パーティと相互作用する。
【０１１７】
パーティＰｉからクエリ（ＮＥｗＳＥＳＳＩＯＮ，ｓｉｄ，Ｐｉ，Ｐｊ，ｂ，ｒｏｌｅ）を受信すると、（ＮＥｗＳＥＳＳＩＯＮ，ｓｉｄ，Ｐｉ，Ｐｊ，ｒｏｌｅ）をＳに送る。さらに、これが第１のＮＥｗＳＥＳＳＩＯＮクエリである場合、又はこれが第２のＮＥｗＳＥＳＳＩＯＮクエリであり且つレコード（Ｐｊ，Ｐｉ，ｂ’）がある場合、（Ｐｊ，Ｐｉ，ｂ）を記録し、このレコードをＦＲＥＳＨとマークする。
【０１１８】
敵Ｓからクエリ（ＴＥＳＴＢＩＯ，ｓｉｄ，Ｐｉ，ｂ’）を受信すると、ＦＲＥＳＨである形式（Ｐｉ，Ｐｊ，ｂ）のレコードがある場合、以下を行う。ＤＩＳＴ（ｂ，ｂ’）＜δならば、レコードをＣＯＭＰＲＯＭＩＳＥＤとマークし、「推測を修正する（correct  guess）」をＳに返す。その他の場合、レコードをＩＮＴＥＲＲＵＰＴＥＤとマークし、「誤った推測（wrong  guess）」を返す。
【０１１９】
Ｓからクエリ（ＮＥｗＫＥＹ，ｓｉｄ，Ｐｉ，ｓｋ）、ここで｜ｓｋ｜＝ｋ、を受信すると、形式（Ｐｉ，Ｐｊ，ｂ）のレコードがあり、これがＰｉについての最初のＮＥｗＫＥＹである場合、以下を行う。
【０１２０】
このレコードがＣＯＭＰＲＯＭＩＳＥＤである、又はＰｉ若しくはＰｊが破損している場合、プレイヤＰｉに（ｓｉｄ，ｓｋ）を出力する。
【０１２１】
このレコードがＦＲＥＳＨであり、ＤＩＳＴ（ｂ，ｂ’）＜δを有するレコード（Ｐｊ，Ｐｉ，ｂ’）があり、キーｓｋ’がＰｊへ送られ、そのとき（Ｐｊ，Ｐｉ，ｂ’）がＦＲＥＳＨである場合、（ｓｉｄ，ｓｋ’）をＰｉに出力する。
【０１２２】
任意の他の例において、長さｋの新しいランダムキーｓｋ’を取り上げ、（ｓｉｄ．ｓｋ’）をＰｉに送る。全ての例において、レコード（Ｐｉ，Ｐｊ，ｂ）をＣＯＭＰＬＥＴＥＤとマークする。
【０１２３】
理想的な機能クエリにおいて、ｋはセキュリティパラメータを表し、該セキュリティパラメータにより、機能がパラメータ化される。ＦＢＡＫＥは、Ｓにより表される敵と相互作用する機能を表す。パラメータｓｉｄは、セッション識別子を表す。パラメータＰｉ及びＰｊはパーティを表す。パラメータｂ及びｂ’は、生体データセットを表す。パラメータｓｋ及びｓｋ’は、セッションキーを表す。ＤＩＳＴ及びδは、上述の通りである。
【０１２４】
理想的な機能は、ＵＣセキュリティ証明と類似している。理想的な機能の幾つかの詳細事項は、参照により全体がここに組み込まれるRan  Canetti、「Universally  Composable  Security:  A  New  Paradigm  for  Cryptographic  Protocols」、pages  １３６-１４５,  ２００１を参照して記載される。
【０１２５】
図３は、１又は複数の認証キー交換プロセスのために構成される例示的なコンピューティングシステム３００を示す。コンピューティングシステム３００は、図１及び２の動作環境１００において実装されても良い。コンピューティングシステム３００の例は、コンピューティングシステム１０４、システムサーバ１４０、及び信頼できるエンティティサーバ１０８のうちの１又は複数を有しても良い。コンピューティングシステム３００は、１又は複数のプロセッサ３０４、メモリ３０８、通信ユニット３０２、ユーザ入力装置３１４、データ記憶装置３０１を有しても良い。データ記憶装置３０１は、ユーザ生成モジュール１１２、サーバ生成モジュール１１４、パラメータ生成モジュール１１８（集合的にモジュール１１２／１１４／１１８）を更に有する。
【０１２６】
プロセッサ３０４は、任意の適切な特定用途向け又は汎用コンピュータ、コンピューティングエンティティ、又は種々のコンピュータハードウェア若しくはソフトウェアモジュールを有しても良く、任意の適切なコンピュータ可読媒体に格納された命令を実行するよう構成され得る処理装置を用いて実施されても良い。例えば、プロセッサ３０４は、マイクロプロセッサ、マイクロコントローラ、デジタシグナルプロセッサ（ＤＳＰ）、ＡＳＩＣ、FPGA又はプログラム命令を解釈し及び／若しくは実行し並びに／又はデータを処理するよう構成された任意の他のデジタル若しくはアナログ回路を有しても良い。
【０１２７】
図３には単一のプロセッサを示したが、プロセッサ３０４は、より一般的には、本開示で説明される任意の数の工程を個々に又は共同で実行するよう構成される任意の数のプロセッサを有しても良い。さらに、プロセッサ３０４のうちの１又は複数は、１又は複数の異なる電子装置又はコンピューティングシステムに存在しても良い。幾つかの実施形態では、プロセッサ３０４は、プログラム命令を解釈し及び／又は実行し、及び／又はメモリ３０８、データ記憶装置３０１又はメモリ３０８及びデータ記憶装置３０１に格納されたデータを処理してもよい。幾つかの実施形態では、プロセッサ３０４は、データ記憶装置３０１からプログラム命令をフェッチし、該プログラム命令をメモリ３０８にロードしても良い。プログラム命令がメモリ３０８にロードされた後、プロセッサ３０４は該プログラム命令を実行しても良い。
【０１２８】
メモリ３０８及びデータ記憶装置３０１は、コンピュータ実行可能命令又はデータ構造を伝える又は格納しているコンピュータ可読記憶媒体を含み得る。このようなコンピュータ可読媒体は、プロセッサ３０４のような汎用又は特定目的コンピュータによりアクセスできる任意の利用可能な媒体を含み得る。例として且つ限定ではなく、このようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、フラッシュメモリ装置（例えば、固体メモリ素子）を含む有形又は非一時的コンピュータ可読記憶媒体、又はコンピュータにより実行可能な命令若しくはデータ構造の形式で所望のプログラムコード手段を伝える若しくは格納するために用いられ汎用若しくは特定目的コンピュータによりアクセス可能な他の記憶媒体を有し得る。上述の組合せも、コンピュータ可読記憶媒体の範囲に包含され得る。コンピュータ実行可能命令は、例えば、プロセッサ３０４に特定の工程又は工程のグループを実行させるよう構成される命令及びデータを含み得る。
【０１２９】
通信ユニット３０２は、通信を受信し及び送信するよう構成されるハードウェアの１又は複数のピースを有しても良い。幾つかの実施形態では、通信ユニット３０２は、通信ハードウェア装置の中でも特に、アンテナ、有線ポート、変調／復調ハードウェア、のうちの１又は複数を有しても良い。特に、通信ユニット３０２は、コンピューティングシステム３００の外部から通信を受信するよう、及び該通信をプロセッサ３０４に提示し又はプロセッサ３０４からの通信を別の装置若しくはネットワークに送信するよう、構成されても良い。
【０１３０】
ユーザ入力装置３１４は、ユーザからの入力を受信し及び／又はユーザに出力を提供するよう構成されるハードウェアの１又は複数のピースを有しても良い。幾つかの実施形態では、ユーザ入力装置３１４は、ハードウェア装置の中でも特に、スピーカ、マイクロフォン、ディスプレイ、キーボード、タッチスクリーン、ホログラフィックプロジェクション、のうちの１又は複数を有しても良い。上述及び他の実施形態では、ユーザ入力装置３１４は、コンピューティングシステム３００のユーザ（例えば、図１のユーザ１０６）から入力を受信するよう構成されても良い。
【０１３１】
モジュール１１２／１１４／１１８は、データ記憶装置３０１に格納されたプログラム命令を有しても良い。プロセッサ３０４は、モジュール１１２／１１４／１１８をメモリ３０８にロードし、モジュール１１２／１１４／１１８を実行するよう構成されても良い。代替で、プロセッサ３０４は、メモリ３０８にロードしないで、データ記憶装置３０１からモジュール１１２／１１４／１１８を１行毎に実行しても良い。モジュール１１２／１１４／１１８を実行するとき、プロセッサ３０４は、本願明細書の他の場所に記載したように、認証キー交換の実行のために構成されても良い。
【０１３２】
本開示の範囲から逸脱することなくコンピューティングシステム３００に対し変更、追加又は省略が行われても良い。例えば、幾つかの実施形態では、コンピューティングシステム３００は、ユーザ入力装置３１４を有しなくても良い。幾つかの実施形態では、コンピューティングシステム３００の異なるコンポーネントは、物理的に別個であっても良く、任意の適切なメカニズムにより通信可能に結合されても良い。例えば、データ記憶装置３０１は、記憶装置に通信可能に結合されるプロセッサ３０４とメモリ３０８と通信ユニット３０２とを含むサーバから分離した、該記憶装置の部分であっても良い。
【０１３３】
図４は、本願明細書に記載の少なくとも一実施形態に従って構成される、コンピューティングシステムとシステムサーバとの間の通信セッションのための生体認証キー交換の例示的な方法のフロー図４００である。方法４００は、図１及び２の動作環境１００のような動作環境で実行されても良い。方法４００は、幾つかの実施形態において、図１及び２を参照して記載されたコンピューティングシステム１０４及び／又はシステムサーバ１４０によりプログラム制御されて実行されても良い。コンピューティングシステム１０４及び／又はシステムサーバ１４０は、方法４００を実行する又はそれを実行させるプロセッサにより実行可能なプログラムコード又は命令を格納している非一時的コンピュータ可読媒体（例えば、図３のメモリ３０８）を含み又はそれに通信可能に結合されても良い。追加又は代替で、コンピューティングシステム１０４及び／又はシステムサーバ１４０は、方法４００を実行させる又はその実行を制御させるコンピュータ命令を実行するよう構成される上述のプロセッサ（例えば、図３のプロセッサ３０４）を有しても良い。別個のブロックとして示したが、所望の実装に依存して、種々のブロックは、更なるブロックに分割され、少ないブロックに結合され、又は除去されても良い。
【０１３４】
方法４００は、ブロック４０２で開始しても良い。ブロック４０２で、第１の生体データセットが受信されても良い。第１の生体データセットは、ユーザにより提供される第１の生体サンプルを表しても良い。例えば、第１の生体サンプルは、図１を参照して議論したセンサ１４８のようなセンサに提供されても良い。
【０１３５】
ブロック４０４で、１又は複数の公開パラメータが、信頼できる第三機関サーバから受信されても良い。公開パラメータは、誤り訂正符号（error  correcting  code：ＥＣＣ）を有しても良い。ＥＣＣは、システムサーバにより受信される第１の生体データセットと第２の生体データセットとの間の差又は距離を調整するよう定められても良い。幾つかの実施形態では、ＥＣＣは、本開示の他の場所に記載されたようなＥＣＣ式に従って定められても良い。
【０１３６】
追加又は代替では、公開パラメータは、双線形グループに従って生成されても良い。双線形グループは、本開示の他の場所に記載されたような双線形グループ式により表される。追加で、幾つかの実施形態では、第１の生体データセットと第２の生体データセットとの間の特定の距離は、本開示の他の場所で記載されたような生体距離式に従って定められても良い。
【０１３７】
ブロック４０６で、第１の交換情報セットは、公開パラメータのうちの１又は複数及び第１の生体データセットに基づき生成されても良い。ブロック４０８で、第１の交換情報セットは、システムサーバに通信されても良い。ブロック４１０で、第２の交換情報セットは、システムサーバから受信されても良い。幾つかの実施形態では、第２の交換情報セットは、公開パラメータのうちの１又は複数と、ユーザにより提供された第２の生体サンプルを表す第２の生体データセットと、に基づいても良い。第２の交換情報セットは、第１の交換情報セットに対して対称的であっても良い。
【０１３８】
幾つかの実施形態では、第１の交換情報セット及び第２の交換情報セットは、本願明細書の他の場所で記載されたような変更交換情報式に従って生成されても良い。例えば、第１の交換情報セットは、コンピューティングシステムにおいて生成される投影キー、変更公開キーに基づきコンピューティングシステムにおいて生成される変更暗号文、第１の生体データセットのランダム生体情報、又はそれらの何らかの組み合わせを有しても良い。
【０１３９】
さらに、第２の交換情報セットは、システムサーバにおいて生成される投影キー、変更公開キーに基づき及び／又はシステムサーバにおいて生成される変更暗号文、第２の生体データセットのランダム生体情報、又はそれらの何らかの組み合わせを有しても良い。上述の及び他の実施形態では、第２の生体データセットのランダム生体情報は、本願明細書の他の場所に記載されたような第２のランダム生体情報式に従って定められても良い。さらに、上述の及び他の実施形態では、変更公開キーは、本開示の他の場所に記載されたようなＴＳＰＨＦキー生成式に従って生成されても良い。
【０１４０】
幾つかの実施形態では、第１の交換情報セット及び第２の交換情報セットは、本願明細書の他の場所で記載されたような汎用交換情報式に従って生成されても良い。例えば、第１の交換情報セットは、コンピューティングシステムにおいて生成される投影キー、第１の公開キーに基づき及び／又はコンピューティングシステムにおいて生成されるハッシュキーの暗号文、コンピューティングシステムにおいて生成されるゼロ知識証明、第２の公開キーに基づきコンピューティングシステムにおいて生成される乱数及びラベルの暗号文、第１の生体データセットのランダム生体情報、又はそれらの何らかの組み合わせを有しても良い。追加で、第２の交換情報セットは、システムサーバにおいて生成される投影キー、第１の公開キーに基づき及び／又はシステムサーバにおいて生成されるハッシュキーの暗号文、システムサーバにおいて生成されるゼロ知識証明、第２の公開キーに基づき及び／又はシステムサーバにおいて生成される乱数及びラベルの暗号文、第２の生体データセットのランダム生体情報、を有しても良い。上述の及び他の実施形態では、第２の生体データセットのランダム生体情報は、本願明細書の他の場所に記載されたような第２のランダム生体情報式に従って定められても良い。さらに、上述の及び他の実施形態では、第１の公開キーは、非ラベル付きCramer  Shoup暗号化方式を有しても良く、及び／又は第２の公開キーは、ラベル付きCramer  Shoup暗号化方式により出力される公開キーを有しても良い。
【０１４１】
ブロック４１２で、セッションキーは、通信セッションのために計算されても良い。幾つかの実施形態では、計算は、コンピューティングシステムにおいて生成されたハッシュキーに基づく第１のハッシュ関数を第２の交換情報セットのサブセットに適用するステップと、システムサーバにおいて生成された投影キーに基づく第２のハッシュ関数を第１の交換情報セットのサブセットに適用するステップを有しても良い。
【０１４２】
幾つかの実施形態では、計算は、本開示の他の場所に記載されたような、第１の変更ハッシュ関数式、第２の変更ハッシュ関数式、及び変更計算式に従う。上述の及び他の実施形態では、ハッシュキー及び投影キーは、変更ハッシュキー生成式に従って生成されても良い。幾つかの実施形態では、計算は、本開示の他の場所に記載されたような、汎用計算式、第１の汎用ハッシュ関数式、第２の汎用ハッシュ関数式に従う。上述の及び他の実施形態では、ハッシュキー及び投影キーは、本開示の他の場所に記載されたようなハッシュキー生成式に従って生成される。
【０１４３】
ブロック４１４で、セッションキーは、通信セッション中にコンピューティングシステム及びシステムサーバの間の通信で使用されても良い。幾つかの実施形態では、他の通信セッションのために、ブロック４０２、４０４、４０６、５０８、４１０、４１２、４１４のうちの１又は複数は、追加セッションキーを生成するために繰り返されても良い。
【０１４４】
当業者は、上述の及び本願明細書に開示した他の手順及び方法において、その処理及び方法で実行される機能が異なる順序で実施されても良いことを理解するだろう。さらに、概略のステップ及び動作は、単に例として提供され、幾つかのステップ及び動作は、開示の実施形態から逸脱することなく、任意であり、より少ないステップ及び動作に組み合わされ、又は追加ステップ及び動作に拡張されても良い。例えば、幾つかの実施形態では、方法４００は、投影キーの有効性をチェックするステップを有しても良い。幾つかの実施形態では、チェックするステップは、本開示の他の場所に記載された変更有効性チェック式に従って実行される。投影キーが有効であることに応答して、方法４００は、ブロック４１２を実行する。投影キーが無効であることに応答して、方法４００は、中断されても良い。
【０１４５】
本願明細書に記載した実施形態は、以下に更に詳細に議論するように、種々のコンピュータハードウェア又はソフトウェアモジュールを備えた特定用途又は汎用コンピュータの使用を含み得る。
【０１４６】
本願明細書に記載した実施形態は、コンピュータにより実行可能な命令又はデータ構造を伝える又は格納しているコンピュータ可読媒体を用いて実施され得る。このようなコンピュータ可読媒体は、汎用又は特定目的コンピュータによりアクセスできる利用可能な媒体であり得る。例として且つ限定ではなく、このようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、フラッシュメモリ装置（例えば、固体メモリ素子）を含む有形コンピュータ可読記憶媒体、又はコンピュータにより実行可能な命令若しくはデータ構造の形式で所望のプログラムコード手段を伝える若しくは格納するために用いられ汎用若しくは特定目的コンピュータによりアクセス可能な他の記憶媒体を有し得る。上述の組合せも、コンピュータ可読媒体の範囲に包含され得る。
【０１４７】
コンピュータにより実行可能な命令は、例えば、汎用コンピュータ、特定目的コンピュータ（例えば、１又は複数のプロセッサ）又は特定目的処理装置に特定の機能又は機能グループを実行させる命令及びデータを有する。本発明の主題は構造的特徴及び／又は方法論的動作に特有の言葉で記載されたが、本発明の主題は、特許請求の範囲に定められる上述の特定の特徴又は動作に限定されないことが理解されるべきである。むしろ、上述の特定の特徴及び動作は、特許請求の範囲の実施の例示的形態として開示されたものである。
【０１４８】
本願明細書で用いられるように、用語「モジュール」又は「コンポーネント」は、モジュール若しくはコンポーネントの動作を実行するよう構成される特定ハードウェア実装、及び／又はコンピューティングシステムの汎用ハードウェア（例えばコンピュータ可読媒体、処理装置、等）に格納され及び／又はそれらにより実行され得るソフトウェアオブジェクト若しくはソフトウェアルーチンを表しても良い。幾つかの実施形態では、本願明細書に記載されたのと異なるコンポーネント、モジュール、エンジン及びサービスは、（例えば、別個のスレッドとして）コンピューティングシステムで実行されるオブジェクト又は処理として実施されても良い。本願明細書に記載のシステム及び方法の幾つかは概して（汎用ハードウェアに格納される及び／又はそれにより実行される）ソフトウェアで実装されるように記載されたが、専用ハードウェアの実装又はソフトウェアと専用ハードウェアの組み合わせの実装も可能であり考えられる。この説明では、「コンピュータエンティティ」は、本願明細書で先に定められたようにコンピューティングシステム、又はコンピューティングシステムで実行されるモジュール若しくはモジュールの組合せであっても良い。
【０１４９】
本願明細書に記載された全ての例及び条件文は、教育上の目的で、読者が本発明の原理及び発明者により考案された概念を理解するのを助け、技術を促進させるためであり、これらの特に記載された例及び条件に限定されないものと考えられるべきである。本発明の実施形態が詳細に記載されたが、種々の変更、置換及び修正が本発明の精神及び範囲から逸脱することなく行われうることが理解されるべきである。
【０１５０】
以上の実施形態に加え、更に以下の付記を開示する。
（付記１）  コンピューティングシステムとシステムサーバとの間の通信セッションのための生体認証キー交換の方法であって、前記方法は、
前記コンピューティングシステムにおいて、ユーザにより提供される第１の生体サンプルを表す第１の生体データセットを受信するステップと、
信頼できる第三機関サーバから、１又は複数の公開パラメータを受信するステップと、
前記公開パラメータ及び前記第１の生体データセットに基づき、前記コンピューティングシステムにおいて、第１の交換情報セットを生成するステップと、
前記コンピューティングシステムにより、前記第１の交換情報セットを前記システムサーバに通信するステップと、
前記システムサーバから、第２の交換情報セットを受信するステップであって、前記第２の交換情報セットは、前記１又は複数の公開パラメータと、前記ユーザにより提供され前記第１の交換情報セットと対称的である第２の生体サンプルを表す第２の生体データセットとに基づく、ステップと、
前記コンピューティングシステムのセッションキーを計算するステップであって、前記の計算は、前記コンピューティングシステムにおいて生成されたハッシュキーに基づく第１のハッシュ関数を前記第２の交換情報セットのサブセットに適用し、前記システムサーバにおいて生成された投影キーに基づく第２のハッシュ関数を前記第１の交換情報セットのサブセットに適用することを含む、ステップと、
前記通信セッションにおける前記コンピューティングシステムと前記システムサーバとの間の通信で前記セッションキーを用いるステップと、
を有する方法。
（付記２）  前記公開パラメータは、前記第１の生体データセットと前記第２の生体データセットとの間の差を調整するために定められる誤り訂正符号（ＥＣＣ）を含み、
前記ＥＣＣは、以下のＥＣＣ式に従って定められ、
(n',k',２δ'+１)ECC=(Encode,Decode)、
前記第１の生体データセットと前記第２の生体データセットとの間の特定の差は、以下の生体距離式に従って定められ、
DIST(b,b’)<δ’
ＤＩＳＴはハミング距離関数を表し、
ｂは前記第１の生体データセットを表し、
ｂ’は前記第２の生体データセットを表し、
ｎ’は、前記ＥＣＣ式で用いられるコードワードの長さを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、２＾ｋ’は、可能なコードワードの数を表し、
δ’は、前記第１の生体データセットと前記第２の生体データセットが両方とも前記ユーザからのものであることを示す特定の閾値を表し、
Ｅｎｃｏｄｅは、ＥＣＣ符号化演算子を表し、
Ｄｅｃｏｄｅは、ＥＣＣ復号化演算子を表す、
付記１に記載の方法。
（付記３）  前記第１の交換情報セットは、前記第１の生体データセットのランダム生体情報を有し、
前記第２の交換情報セットは、前記第２の生体データセットのランダム生体情報を有し、
前記第１の生体データセットの前記ランダム生体情報は、第１のランダム生体情報式であるｘ＝（ｂ）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ））に従って定められ、
前記第２の生体データセットの前記ランダム生体情報は、第２のランダム生体情報式であるｘ’＝（ｂ’）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ’））に従って定められ、
ｘは、前記第１の生体データセットの前記ランダム生体情報を表し、
ｘ’は、前記第２の生体データセットの前記ランダム生体情報を表し、
ＸＯＲは、ＸＯＲ演算子を表し、
ｒ’は、ベクトル空間｛０，１｝ｋ’からサンプリングされた乱数を表し、
ｒは、ベクトル空間｛０，１｝ｋからサンプリングされた乱数を表し、
ｋ’は、前記システムサーバにおいて生成されたハッシュキーを表し、
ｋは、前記コンピューティングシステムにおいて生成されたハッシュキーを表す、
付記２に記載の方法。
（付記４）  前記公開パラメータは、双線形グループ式（ｐ，Ｇ１，Ｇ２，ＧＴ，ｅ＾）により表される双線形グループに従って生成され、
前記第１の交換情報セットは、前記コンピューティングシステムにおいて生成される投影キー、変更公開キーに基づき前記コンピューティングシステムにおいて生成される変更暗号文、前記第１の生体データセットのランダム生体情報、を有し、
前記第２の交換情報セットは、前記システムサーバにおいて生成される投影キー、前記変更公開キーに基づき前記システムサーバにおいて生成される変更暗号文、前記第２の生体データセットのランダム生体情報、を有し、
前記第１の交換情報セット及び前記第２の交換情報セットは、以下の変更交換情報式に従って生成され、
EI１=(α(k),C,x),
EI２=(α(k’),C’,x’),
kεZp５,
k’εZp５,
α(k)εG１２×G２５,
α(k’)εG１２×G２５,
r←{０,１}k’,
r’←{０,１}k,
C=ENCTpkm(label,r)εG１４,
C’=ENCTpkm(label’,r’)εG１４,
label=(P,P’,α(k),x),
label’=(P’,P,α(k’),x’);
前記変更公開キーは、以下の落とし戸スムーズプロジェクティブハッシュ関数（trapdoor  smooth-projective  hash  function：ＴＳＰＨＦ）キー生成式に従って生成され、
pkm=(G１,g１-１,g１-２,c,d,h,CRHASH),
g１-１←G１,
g１-２←G１,
(x１,x２,y１,y２,z)←Zp,
c=g１x１g２x２,
d=g１y１g２y２,
h=g１z;
ＥＩ１は、前記第１の交換情報セットを表し、
ＥＩ２は、前記第２の交換情報セットを表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、
Ｚｐ５は、前記双線形グループの素数の次数の整数のセットを表し、
αは、スムーズプロジェクティブハッシュ関数を表し、
Ｃは、前記コンピューティングシステムにおいて生成される変更暗号文を表し、
Ｃ’は、前記システムサーバにおいて生成される変更暗号文を表し、
ＥＮＣＴは、ＴＳＰＨＦ暗号化方式の暗号化演算子を表し、
Ｐは、前記コンピューティングシステムの装置識別子を表し、
Ｐ’は、前記システムサーバの装置識別子を表し、
ｇ１−１は、第１の双線形グループから引き出される第１の生成元を表し、
ｇ１−２は、第１の双線形グループから引き出される第２の生成元を表し、
ｘ１、ｘ２、ｙ１、ｙ２、ｚは、前記素数の次数の整数のセットから引き出される整数を表し、
ｃ、ｄ、ｈは、中間生成元パラメータを表し、
εは、メンバーシップ演算子を表し、
ｘは、積演算子を表し、
←は、ランダム一様引き抜き演算子を表し、
ＣＲＨＡＳＨは、衝突耐性のあるハッシュ関数を表し、
ｐは、前記双線形グループの素数の次数を表し、
Ｇ１は、第１の双線形グループを表し、
Ｇ１は、第２の双線形グループを表し、
ＧＴは、出力双線形グループを表し、
ｅ＾は、ペアリング演算子を表す、
付記３に記載の方法。
（付記５）  前記ハッシュキー及び前記投影キーは、以下の変更ハッシュキー生成式に従って生成され、
k=(η１,η２,θ,μ,ν),
η１,η２,θ,μ,ν←Zp,
α(k)=(k１,k２,k３)=(g１-１η１g１-２θhμcν,g１-１η２dν,k３)εG１２×G２５,
k３=(χ１-１,χ１-２,χ２,χ３,χ４)εG２５,
g２←G２,
τ’←Zp,
ζ=g２τ’,
χ１-１=ζη１,
χ１-２=ζη２,
χ２=ζθ,
χ３=ζμ,
χ４=ζν;ここで、
η１,η２,θ,μ,νは、前記ハッシュキーの要素を表し、
ｋ１は、前記投影キーの第１の要素を表し、
ｋ２は、前記投影キーの第２の要素を表し、
ｋ３は、前記投影キーの第３の要素を表し、
χ１−１、χ１−２、χ２、χ３、χ４は、前記投影キーの前記第３の要素の要素を表し、
τ’は、落とし戸を表し、
ζは、第２の共通ランダムストリングを表す、
付記４に記載の方法。
（付記６）  前記投影キーの有効性をチェックするステップであって、前記のチェックは、以下の変更有効性チェック式に従って実行される、ステップ、
e^(k１,ζ)＝？e^(g１-１,χ１-１)・e^(g１-２,χ２)・e^(h,χ３)・e^(c,χ４),
e^(k２,ζ)＝？e^(g１-１,χ１-２)・e^(d,χ４)
を更に有する付記５に記載の方法。
（付記７）  前記の計算は、以下の第１の変更ハッシュ関数式、第２の変更ハッシュ関数式、及び変更された計算式に従う、
skp=HASHk(label’,C’,x’)・PROJHASHα(k’)(label,C,x;w),
r=Decode((x)XOR(b)),
C=ENCTpkm(label,r)=(u１,u２,e,v),
HASHk(label’,C’,x’)=e^(u１(η１+εη２)u２θ(e/Gr(r))μvν,g２),
PROJHASHα(k’)(label,C,x;w)=e^((k１k２ε)w,g２),
ε=CRHASH(label,u１,u２,e),ここで、
ｓｋｐは、前記セッションキーを表し、
ＨＡＳＨｋは、前記ハッシュキーに基づく第１のハッシュ関数を表し、
ＰＲＯＪＨＡＳＨα（ｋ’）は、前記投影キーに基づく第２のハッシュ関数を表し、
ｕ１、ｕ２、ｅ、ｖは、前記変更暗号文の要素を表し、
ｗは、証拠を表し、
Ｇｒは、Cramer  Shoup暗号化方式の可逆マッピングを表す、
付記６に記載の方法。
（付記８）  前記第１の交換情報セットは、前記コンピューティングシステムにおいて生成される投影キー、第１の公開キーに基づき及び前記コンピューティングシステムにおいて生成されるハッシュキーの暗号文、前記コンピューティングシステムにおいて生成されるゼロ知識証明、ラベルの暗号文及び第２の公開キーに基づき前記コンピューティングシステムにおいて生成される乱数、前記第１の生体データセットのランダム生体情報を有し、
前記第２の交換情報セットは、前記システムサーバにおいて生成される投影キー、前記第１の公開キーに基づき前記システムサーバにおいて生成されるハッシュキーの暗号文、前記システムサーバにおいて生成されるゼロ知識証明、第２の公開キーに基づくラベルの暗号文及び前記システムサーバにおいて生成される乱数、前記第２の生体データセットのランダム生体情報、を有し、
前記第１の公開キーは、非ラベル付きCramer  Shoup暗号化方式により出力される公開キーであり、
前記第２の公開キーは、ラベル付きCramer  Shoup暗号化方式により出力される公開キーであり、
前記第１の交換情報セット及び前記第２の交換情報セットは、以下の汎用交換情報式に従って生成され、
EI１=(s,c１,π,c２,x),
EI２=(s’,c１’,π’,c２’,x’),
k←K,
k’←K,
s=α(k),
s’=α(k’),
c１=ENC１pk１(k),
c１’=ENC１pk１(k’),
π=PCRS(s,c１)εL,
π’=PCRS(s’,c１’)εL’,
label=(sid,P,P’,s,c１,π),
label’=(sid,P’,P,s’,c１’,π’),
r←{０,１}k,
r’←{０,１}k’,
c２=ENC２pk２(label,r),
c２’=ENC２pk２(label’,r’),
L’={(s’,c１’):∃k’εK  and  w’  such  that  s’=α(k’)  and  c１’=ENC１pk１(k’;w’)},
L={(s,c１):∃kεK  and  w  such  that  s=α(k)  and  c１=ENC１pk１(k;w)};
ＥＩ１は、前記第１の交換情報セットを表し、
ＥＩ２は、前記第２の交換情報セットを表し、
ｓは、前記コンピューティングシステムにおいて生成される投影キーを表し、
ｓ’は、前記システムサーバにおいて生成される投影キーを表し、
ｃ１は、前記コンピューティングシステムにおいて生成されるハッシュキーの暗号文を表し、
ｃ１’は、前記システムサーバにおいて生成されるハッシュキーの暗号文を表し、
πは、前記コンピューティングシステムにおいて生成されるゼロ知識証明を表し、
π’は、前記システムサーバにおいて生成されるゼロ知識証明を表し、
ｃ２は、前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文を表し、
ｃ２’は、前記システムサーバにおいて生成される乱数及びラベルの暗号文を表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、
Ｋは、キー空間を表し、
αは、スムーズプロジェクティブハッシュ関数を表し、
ＥＮＣ１ｐｋ１は、非ラベル付きCramer  Shoup暗号化方式に含まれる前記第１の公開キーに基づく暗号化演算子を表し、
ＰＣＲＳ（）は、シミュレーションサウンド非対話型ゼロ知識証明（ＮＩＺＫ）を表し、
Ｌは、言語を表し、
Ｌ’は、言語を表し、
ｓｉｄは、セッション識別子を表し、
Ｐは、前記コンピューティングシステムの装置識別子を表し、
Ｐ’は、前記システムサーバの装置識別子を表し、
ｒは、前記コンピューティングシステムにおいて生成される乱数を表し、
ｒ’は、前記システムサーバにおいて生成される乱数を表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーの次元を有する２進ベクトル空間を表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーの次元を有する２進ベクトル空間を表し、
ＥＮＣ２ｐｋ２は、ラベル付きCramer  Shoup暗号化方式に含まれる前記第２の公開キーに基づく暗号化演算子を表し、
∃は、「少なくとも１つの要素が存在する」演算子を表し、
ｗ’は、前記システムサーバの証拠を表し、
ｗは、前記コンピューティングシステムの証拠を表し、
εは、メンバーシップ演算子を表し、
←は、ランダム一様引き抜き演算子を表す、
付記３に記載の方法。
（付記９）  前記ハッシュキー及び前記投影キーは、以下のハッシュキー生成式に従って生成され、
Gc(p);
(g１,g２)←Gc;
η１,η２,θ,μ,ν←Zp;
k=(η１,η２,θ,μ,ν);
c=g１η１g２η２;
d=g１θg２μ;
h=g１ν;
α(k)=(k１,k２)=(g１η１g２θhμcν,gη２dν),
Ｇｃは巡回群を表し、
ｇ１及びｇ２は、前記巡回群から引き出される生成元を表し、
Ｚｐは、前記巡回群の素数の次数の整数のセットを表し、
η１,η２,θ,μ,νは、前記整数のセットからサンプリングされる整数を表し、
ｃ、ｄ、ｈは、中間生成元パラメータを表し、
ｋ１は、前記投影キーの第１の要素を表し、
ｋ２は、前記投影キーの第２の要素を表す、
付記８に記載の方法。
（付記１０）  前記の計算は、以下の汎用計算式、第１の汎用ハッシュ関数式、第２の汎用ハッシュ関数式に従う、
skp=HASHk(label’,c２’,x’)・PROJHASHα(k’)(label,c２,x),
r’=Decode((x’)XOR(b)),
c２=ENC２pk２(label,r)=(u１,u２,e,v),
pk２=(Gc,g１,g２,c,d,h,CRHASH)
HASHk(label’,c２’,x’)=u１(η１+εη２)u２θ(e/Gr)μvν
PROJHASHα(k’)(label,c２,x;w)=(k１k２ε)w,
ε=CRHASH(label,u１,u２,e),
ｓｋｐは、前記セッションキーを表し、
ＨＡＳＨｋは、前記ハッシュキーに基づく第１のハッシュ関数を表し、
ＰＲＯＪＨＡＳＨα（ｋ’）は、前記投影キーに基づく第２のハッシュ関数を表し、
ｕ１、ｕ２、ｅ、ｖは、前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文の要素を表し、
ＣＲＨＡＳＨは、衝突耐性のあるハッシュ関数を表し、
Ｇｒは、Cramer  Shoup暗号化方式の可逆マッピングを表す、
付記９に記載の方法。
（付記１１）  動作を実行するためにプロセッサにより実行可能な符号化されたプログラムコードを有する非一時的コンピュータ可読媒体であって、前記動作は、
コンピューティングシステムにおいて、ユーザにより提供される第１の生体サンプルを表す第１の生体データセットを受信するステップと、
信頼できる第三機関サーバから、１又は複数の公開パラメータを受信するステップと、
前記公開パラメータ及び前記第１の生体データセットに基づき、前記コンピューティングシステムにおいて、第１の交換情報セットを生成するステップと、
前記コンピューティングシステムにより、前記第１の交換情報セットをシステムサーバに通信するステップと、
前記システムサーバから、第２の交換情報セットを受信するステップであって、前記第２の交換情報セットは、前記１又は複数の公開パラメータと、前記ユーザにより提供され前記第１の交換情報セットと対称的である第２の生体サンプルを表す第２の生体データセットとに基づく、ステップと、
前記コンピューティングシステムのセッションキーを計算するステップであって、前記の計算は、前記コンピューティングシステムにおいて生成されたハッシュキーに基づく第１のハッシュ関数を前記第２の交換情報セットのサブセットに適用し、前記システムサーバにおいて生成された投影キーに基づく第２のハッシュ関数を前記第１の交換情報セットのサブセットに適用することを含む、ステップと、
前記通信セッションにおける前記コンピューティングシステムと前記システムサーバとの間の通信で前記セッションキーを用いるステップと、
を有する、非一時的コンピュータ可読媒体。
（付記１２）  前記公開パラメータは、前記第１の生体データセットと前記第２の生体データセットとの間の差を調整するために定められる誤り訂正符号（ＥＣＣ）を含み、
前記ＥＣＣは、以下のＥＣＣ式に従って定められ、
(n',k',２δ'+１)ECC=(Encode,Decode)、
前記第１の生体データセットと前記第２の生体データセットとの間の特定の差は、以下の生体距離式に従って定められ、
DIST(b,b’)<δ’,
ここで、ＤＩＳＴはハミング距離関数を表し、
ｂは前記第１の生体データセットを表し、
ｂ’は前記第２の生体データセットを表し、
ｎ’は、前記ＥＣＣ式で用いられるコードワードの長さを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、２＾ｋ’は、可能なコードワードの数を表し、
δ’は、前記第１の生体データセットと前記第２の生体データセットが両方とも前記ユーザからのものであることを示す特定の閾値を表し、
Ｅｎｃｏｄｅは、ＥＣＣ符号化演算子を表し、
Ｄｅｃｏｄｅは、ＥＣＣ復号化演算子を表す、
付記１１に記載の非一時的コンピュータ可読媒体。
（付記１３）  前記第１の交換情報セットは、前記第１の生体データセットのランダム生体情報を有し、
前記第２の交換情報セットは、前記第２の生体データセットのランダム生体情報を有し、
前記第１の生体データセットの前記ランダム生体情報は、第１のランダム生体情報式であるｘ＝（ｂ）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ））に従って定められ、
前記第２の生体データセットの前記ランダム生体情報は、第２のランダム生体情報式であるｘ’＝（ｂ’）ＸＯＲ（Ｅｎｃｏｄｅ（ｒ’））に従って定められ、
ｘは、前記第１の生体データセットの前記ランダム生体情報を表し、
ｘ’は、前記第２の生体データセットの前記ランダム生体情報を表し、
ＸＯＲは、ＸＯＲ演算子を表し、
ｒ’は、ベクトル空間｛０，１｝ｋ’からサンプリングされた乱数を表し、
ｒは、ベクトル空間｛０，１｝ｋからサンプリングされた乱数を表し、
ｋ’は、前記システムサーバにおいて生成された前記ハッシュキーを表し、
ｋは、前記コンピューティングシステムにおいて生成されたハッシュキーを表す、
付記１２に記載の非一時的コンピュータ可読媒体。
（付記１４）  前記公開パラメータは、双線形グループ式（ｐ，Ｇ１，Ｇ２，ＧＴ，ｅ＾）により表される双線形グループに従って生成され、
前記第１の交換情報セットは、前記コンピューティングシステムにおいて生成される投影キー、変更公開キーに基づき前記コンピューティングシステムにおいて生成される変更暗号文、前記第１の生体データセットのランダム生体情報、を有し、
前記第２の交換情報セットは、前記システムサーバにおいて生成される投影キー、前記変更公開キーに基づき前記システムサーバにおいて生成される変更暗号文、前記第２の生体データセットのランダム生体情報、を有し、
前記第１の交換情報セット及び前記第２の交換情報セットは、以下の変更交換情報式に従って生成され、
EI１=(α(k),C,x),
EI２=(α(k’),C’,x’),
kεZp５,
k’εZp５,
α(k)εG１２×G２５,
α(k’)εG１２×G２５,
r←{０,１}k’,
r’←{０,１}k,
C=ENCTpkm(label,r)εG１４,
C’=ENCTpkm(label’,r’)εG１４,
label=(P,P’,α(k),x),
label’=(P’,P,α(k’),x’);
前記変更公開キーは、以下の落とし戸スムーズプロジェクティブハッシュ関数（trapdoor  smooth-projective  hash  function：ＴＳＰＨＦ）キー生成式に従って生成され、
pkm=(G１,g１-１,g１-２,c,d,h,CRHASH),
g１-１←G１,
g１-２←G１,
(x１,x２,y１,y２,z)←Zp,
c=g１x１g２x２,
d=g１y１g２y２,
h=g１z;ここで、
ＥＩ１は、前記第１の交換情報セットを表し、
ＥＩ２は、前記第２の交換情報セットを表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、
Ｚｐ５は、前記双線形グループの素数の次数の整数のセットを表し、
αは、スムーズプロジェクティブハッシュ関数を表し、
Ｃは、前記コンピューティングシステムにおいて生成される変更暗号文を表し、
Ｃ’は、前記システムサーバにおいて生成される変更暗号文を表し、
ＥＮＣＴは、ＴＳＰＨＦ暗号化方式の暗号化演算子を表し、
Ｐは、前記コンピューティングシステムの装置識別子を表し、
Ｐ’は、前記システムサーバの装置識別子を表し、
ｇ１−１は、第１の双線形グループから引き出される第１の生成元を表し、
ｇ１−２は、第１の双線形グループから引き出される第２の生成元を表し、
ｘ１、ｘ２、ｙ１、ｙ２、ｚは、前記素数の次数の整数のセットから引き出される整数を表し、
ｃ、ｄ、ｈは、中間生成元パラメータを表し、
εは、メンバーシップ演算子を表し、
ｘは、積演算子を表し、
←は、ランダム一様引き抜き演算子を表し、
ＣＲＨＡＳＨは、衝突耐性のあるハッシュ関数を表し、
ｐは、前記双線形グループの素数の次数を表し、
Ｇ１は、第１の双線形グループを表し、
Ｇ２は、第２の双線形グループを表し、
ＧＴは、出力双線形グループを表し、
ｅ＾は、ペアリング演算子を表す、
付記１３に記載の非一時的コンピュータ可読媒体。
（付記１５）  前記ハッシュキー及び前記投影キーは、以下の変更ハッシュキー生成式に従って生成され、
k=(η１,η２,θ,μ,ν),
η１,η２,θ,μ,ν←Zp,
α(k)=(k１,k２,k３)=(g１-１η１g１-２θhμcν,g１-１η２dν,k３)εG１２×G２５,
k３=(χ１-１,χ１-２,χ２,χ３,χ４)εG２５,
g２←G２,
τ’←Zp,
ζ=g２τ’,
χ１-１=ζη１,
χ１-２=ζη２,
χ２=ζθ,
χ３=ζμ,
χ４=ζν;
η１,η２,θ,μ,νは、前記ハッシュキーの要素を表し、
ｋ１は、前記投影キーの第１の要素を表し、
ｋ２は、前記投影キーの第２の要素を表し、
ｋ３は、前記投影キーの第３の要素を表し、
χ１−１、χ１−２、χ２、χ３、χ４は、前記投影キーの前記第３の要素の要素を表し、
τ’は、落とし戸を表し、
ζは、第２の共通ランダムストリングを表す、
付記１４に記載の非一時的コンピュータ可読媒体。
（付記１６）  前記動作は、前記投影キーの有効性をチェックするステップを更に有し、
前記のチェックは、以下の変更有効性チェック式に従って実行される、
e^(k１,ζ)=?e^(g１-１,χ１-１)・e^(g１-２,χ２)・e^(h,χ３)・e^(c,χ４),
e^(k２,ζ)=?e^(g１-１,χ１-２)・e^(d,χ４)
付記１５に記載の非一時的コンピュータ可読媒体。
（付記１７）  前記の計算は、以下の第１の変更ハッシュ関数式、第２の変更ハッシュ関数式、及び変更された計算式に従う、
skp=HASHk(label’,C’,x’)・PROJHASHα(k’)(label,C,x;w),
r=Decode((x)XOR(b)),
C=ENCTpkm(label,r)=(u１,u２,e,v),
HASHk(label’,C’,x’)=e^(u１(η１+εη２)u２θ(e/Gr(r))μvν,g２),
PROJHASHα(k’)(label,C,x;w)=e^((k１k２ε)w,g２),
ε=CRHASH(label,u１,u２,e),
ｓｋｐは、前記セッションキーを表し、
ＨＡＳＨｋは、前記ハッシュキーに基づく第１のハッシュ関数を表し、
ＰＲＯＪＨＡＳＨα（ｋ’）は、前記投影キーに基づく第２のハッシュ関数を表し、
ｕ１、ｕ２、ｅ、ｖは、前記変更暗号文の要素を表し、
ｗは、証拠を表し、
Ｇｒは、Cramer  Shoup暗号化方式の可逆マッピングを表す、
付記１６に記載の非一時的コンピュータ可読媒体。
（付記１８）  前記第１の交換情報セットは、前記コンピューティングシステムにおいて生成される投影キー、第１の公開キーに基づき及び前記コンピューティングシステムにおいて生成されるハッシュキーの暗号文、前記コンピューティングシステムにおいて生成されるゼロ知識証明、第２の公開キーに基づき前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文、前記第１の生体データセットのランダム生体情報を有し、
前記第２の交換情報セットは、前記システムサーバにおいて生成される投影キー、前記第１の公開キーに基づき前記システムサーバにおいて生成されるハッシュキーの暗号文、前記システムサーバにおいて生成されるゼロ知識証明、前記システムサーバにおいて生成される乱数及びラベルの第２の公開キーに基づく暗号文、前記第２の生体データセットのランダム生体情報、を有し、
前記第１の公開キーは、非ラベル付きCramer  Shoup暗号化方式により出力される公開キーであり、
前記第２の公開キーは、ラベル付きCramer  Shoup暗号化方式により出力される公開キーであり、
前記第１の交換情報セット及び前記第２の交換情報セットは、以下の汎用交換情報式に従って生成され、
EI１=(s,c１,π,c２,x),
EI２=(s’,c１’,π’,c２’,x’),
k←K,
k’←K,
s=α(k),
s’=α(k’),
c１=ENC１pk１(k),
c１’=ENC１pk１(k’),
π=PCRS(s,c１)εL,
π’=PCRS(s’,c１’)εL’,
label=(sid,P,P’,s,c１,π),
label’=(sid,P’,P,s’,c１’,π’),
r←{０,１}k,
r’←{０,１}k’,
c２=ENC２pk２(label,r),
c２’=ENC２pk２(label’,r’),
L’={(s’,c１’):∃k’εKandw’suchthats’=α(k’)andc１’=ENC１pk１(k’;w’)},
L={(s,c１):∃kεK  and  w  such  that  s=α(k)  and  c１=ENC１pk１(k;w)};
ＥＩ１は、前記第１の交換情報セットを表し、
ＥＩ２は、前記第２の交換情報セットを表し、
ｓは、前記コンピューティングシステムにおいて生成される投影キーを表し、
ｓ’は、前記システムサーバにおいて生成される投影キーを表し、
ｃ１は、前記コンピューティングシステムにおいて生成されるハッシュキーの暗号文を表し、
ｃ１’は、前記システムサーバにおいて生成されるハッシュキーの暗号文を表し、
πは、前記コンピューティングシステムにおいて生成されるゼロ知識証明を表し、
π’は、前記システムサーバにおいて生成されるゼロ知識証明を表し、
ｃ２は、前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文を表し、
ｃ２’は、前記システムサーバにおいて生成される乱数及びラベルの暗号文を表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーを表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーを表し、
Ｋは、キー空間を表し、
αは、スムーズプロジェクティブハッシュ関数を表し、
ＥＮＣ１ｐｋ１は、非ラベル付きCramer  Shoup暗号化方式に含まれる前記第１の公開キーに基づく暗号化演算子を表し、
ＰＣＲＳ（）は、シミュレーションサウンド非対話型ゼロ知識証明（ＮＩＺＫ）を表し、
Ｌは、言語を表し、
Ｌ’は、言語を表し、
ｓｉｄは、セッション識別子を表し、
Ｐは、前記コンピューティングシステムの装置識別子を表し、
Ｐ’は、前記システムサーバの装置識別子を表し、
ｒは、前記コンピューティングシステムにおいて生成される乱数を表し、
ｒ’は、前記システムサーバにおいて生成される乱数を表し、
ｋは、前記コンピューティングシステムにおいて生成されるハッシュキーの次元を有する２進ベクトル空間を表し、
ｋ’は、前記システムサーバにおいて生成されるハッシュキーの次元を有する２進ベクトル空間を表し、
ＥＮＣ２ｐｋ２は、ラベル付きCramer  Shoup暗号化方式に含まれる前記第２の公開キーに基づく暗号化演算子を表し、
∃は、「少なくとも１つの要素が存在する」演算子を表す。
【０１５１】
ｗ’は、前記システムサーバの証拠を表し、
ｗは、前記コンピューティングシステムの証拠を表し、
εは、メンバーシップ演算子を表し、
←は、ランダム一様引き抜き演算子を表す、
付記１３に記載の非一時的コンピュータ可読媒体。
（付記１９）  前記ハッシュキー及び前記投影キーは、以下のハッシュキー生成式に従って生成され、
Gc(p);
(g１,g２)←Gc;
η１,η２,θ,μ,ν←Zp;
k=(η１,η２,θ,μ,ν);
c=g１η１g２η２;
d=g１θg２μ;
h=g１ν;
α(k)=(k１,k２)=(g１η１g２θhμcν,gη２dν),
Ｇｃは巡回群を表し、
ｇ１及びｇ２は、前記巡回群から引き出される生成元を表し、
Ｚｐは、前記巡回群の素数の次数の整数のセットを表し、
η１,η２,θ,μ,νは、前記整数のセットからサンプリングされる整数を表し、
ｃ、ｄ、ｈは、中間生成元パラメータを表し、
ｋ１は、前記投影キーの第１の要素を表し、
ｋ２は、前記投影キーの第２の要素を表す、  付記１８に記載の非一時的コンピュータ可読媒体。
（付記２０）  前記の計算は、以下の汎用計算式、第１の汎用ハッシュ関数式、第２の汎用ハッシュ関数式に従う、
skp=HASHk(label’,c２’,x’)・PROJHASHα(k’)(label,c２,x),
r’=Decode((x’)XOR(b)),
c２=ENC２pk２(label,r)=(u１,u２,e,v),
pk２=(Gc,g１,g２,c,d,h,CRHASH)
HASHk(label’,c２’,x’)=u１(η１+εη２)u２θ(e/Gr)μvν,
PROJHASHα(k’)(label,c２,x;w)=(k１k２ε)w,
ε=CRHASH(label,u１,u２,e),ここで、
ｓｋｐは、前記セッションキーを表し、
ＨＡＳＨｋは、前記ハッシュキーに基づく第１のハッシュ関数を表し、
ＰＲＯＪＨＡＳＨα（ｋ’）は、前記投影キーに基づく第２のハッシュ関数を表し、
ｕ１、ｕ２、ｅ、ｖは、前記コンピューティングシステムにおいて生成される乱数及びラベルの暗号文の要素を表し、
ＣＲＨＡＳＨは、衝突耐性のあるハッシュ関数を表し、
Ｇｒは、Cramer  Shoup暗号化方式の可逆マッピングを表す、
付記１９に記載の非一時的コンピュータ可読媒体。
【符号の説明】
【０１５２】
１００  動作環境
１０４  コンピューティングシステム
１０７  ネットワーク
１０８  信頼できるエンティティサーバ
１１２  ユーザセッションキー生成モジュール
１１４  サーバセッションキー生成モジュール
１１８  パラメータ生成モジュール
１４０  システムサーバ
１４８  センサ
２００  生体認証キー交換処理（ＢＡＫＥプロセス）
２０２  公開パラメータ
２０４  第２の交換情報セット
２０６  第１の生体データセット
２０８  第２の生体データセット
２１４  第１の交換情報セット
２１６  セッションキー
３００  コンピューティングシステム
３０１  データ記憶装置
３０２  通信ユニット
３０４  プロセッサ
３０８  メモリ
３１４  ユーザ入力装置
【図１】
0006668920.tif 000002
【図２】
0006668920.tif 000003
【図３】
0006668920.tif 000004
【図４】
0006668920.tif 000005