(57)【要約】【課題】従来よりも秘密鍵管理の利便性を向させた共有鍵共有技術を提供する。【解決手段】秘密鍵ＤＡ，１を秘匿化された秘密鍵δＡ，１とｐｉｎとに分割し、秘密鍵ＤＢ，２を秘匿化された秘密鍵δＢ，２とｐｉｎとに分割する。そして、秘匿化された秘密鍵δＡ，１，δＢ，２とｐｉｎの２要素によって認証鍵交換する。このようにすることで、秘匿化された秘密鍵かｐｉｎのどちらか片方が漏洩しても安全であり、秘匿化された秘密鍵をブラウザ等の利便性の高い領域などに保管することができる。よって、秘密鍵管理の利便性が向上する。【選択図】図１
2017208773.tif 000002
【特許請求の範囲】
【請求項１】
第一クライアント装置、第二クライアント装置、鍵生成装置及びマスタ公開鍵保管サーバを含む共有鍵共有システムであって、
ｋをセキュリティパラメタとし、Ｇ１，Ｇ２，ＧＴを位数がｋビット長の素数ｑの巡回群とし、ｇ１，ｇ２，ｇＴをＧ１，Ｇ２とＧＴの生成元とし、ｅ：Ｇ１×Ｇ２→ＧＴをペアリング関数とし、ｇＴ＝ｅ（ｇ１，ｇ２）とし、＊をワイルドカードとして、Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１，Ｈ２：｛０，１｝＊→Ｇ２，Ｈｑ：｛０，１｝＊→Ｚｑを暗号学的Ｈａｓｈ関数とし、２以上の自然数ｍに対して、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０，ｃｉ，１，１を所定の定数とし、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝１，…，ｍ）は以下の式により定義されるとし、
【数２３】
2017208773.tif 000025
ｚ∈Ｚｑとし、Ｚ１＝ｇ１ｚ∈Ｇ１とし、Ｚ２＝ｇ２ｚ∈Ｇ２とし、ＺＴ＝ｇＴｚ∈ＧＴとし、上記第一クライアント装置の識別子をＩＤＡとし、ＱＡ，１＝Ｈ１（ＩＤＡ）とし、ＱＡ，２＝Ｈ２（ＩＤＡ）とし、上記第二クライアント装置の識別子をＩＤＢとし、ＱＢ，１＝Ｈ１（ＩＤＢ）とし、ＱＢ，２＝Ｈ２（ＩＤＢ）として、
上記鍵生成装置は、ＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚを計算し、計算された（ＤＡ，１，ＤＡ，２）を上記第一クライアント装置に送信し、
上記鍵生成装置は、ＤＢ，１＝ＱＢ，１ｚ，ＤＢ，２＝ＱＡ，２ｚを計算し、計算された（ＤＢ，１，ＤＢ，２）を上記第二クライアント装置に送信し、
上記第一クライアント装置は、Ｈｑ（ｓＡ）＝αＡ∈Ｚｑを生成し、ＡＡ，１＝ＱＡ，１αＡを生成し、ＤＡ，１’＝ＤＡ，１ＡＡ，１−１を計算し、
上記第二クライアント装置は、Ｈｑ（ｓＢ）＝αＢ∈Ｚｑを生成し、ＡＢ，１＝ＱＢ，１αＢを生成し、ＤＢ，１’＝ＤＢ，１ＡＢ，１−１を計算し、
上記第一クライアント装置は、ｘＡ∈Ｚｑとして、ＸＡ，１＝ｇ１ｘＡ，ＸＡ，２＝ｇ２ｘＡを生成し、
上記第二クライアント装置は、ｘＢ∈Ｚｑとして、ＸＢ，１＝ｇ１ｘＢ，ＸＢ，２＝ｇ２ｘＢを生成し、
上記第一クライアント装置は、（ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２）を上記第二クライアント装置に送信し、
上記第二クライアント装置は、（ＩＤＡ，ＩＤＢ，ＸＢ，１，ＸＢ，２）を上記第一クライアント装置に送信し、
上記第一クライアント装置は、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるか判定し、
上記第二クライアント装置は、ｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であるか判定し、
上記鍵生成装置、上記第一クライアント装置及び第二クライアント装置は、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であり、かつ、ｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であると判定されるまで、上記の処理を繰り返し行い、
上記第一クライアント装置は、上記マスタ公開鍵保管サーバにｅ（Ｚ１，ＱＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行わせ、
上記マスタ公開鍵保管サーバは、上記第一クライアント装置からの依頼を受けて、ｅ（Ｚ１，ＱＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行い、
上記第一クライアント装置は、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算し、
【数２４】
2017208773.tif 000026
上記第二クライアント装置は、上記マスタ公開鍵保管サーバにｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について、自己訂正技術を用いた代理計算を行わせ、
上記マスタ公開鍵保管サーバは、上記第二クライアント装置からの依頼を受けて、ｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について自己訂正技術を用いた代理計算を行い、
上記第二クライアント装置は、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算する、
【数２５】
2017208773.tif 000027
共有鍵共有システム。
【請求項２】
第一クライアント装置、第二クライアント装置、鍵生成装置、認証装置及びマスタ公開鍵保管サーバを含む共有鍵共有システムであって、
ｋをセキュリティパラメタとし、Ｇ１，Ｇ２，ＧＴを位数がｋビット長の素数ｑの巡回群とし、ｇ１，ｇ２，ｇＴをＧ１，Ｇ２とＧＴの生成元とし、ｅ：Ｇ１×Ｇ２→ＧＴをペアリング関数とし、ｇＴ＝ｅ（ｇ１，ｇ２）とし、＊をワイルドカードとして、Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１，Ｈ２：｛０，１｝＊→Ｇ２，Ｈｑ：｛０，１｝＊→Ｚｑを暗号学的Ｈａｓｈ関数とし、２以上の自然数ｍに対して、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０，ｃｉ，１，１を所定の定数とし、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝１，…，ｍ）は以下の式により定義されるとし、
【数２６】
2017208773.tif 000028
ｚ∈Ｚｑとし、Ｚ１＝ｇ１ｚ∈Ｇ１とし、Ｚ２＝ｇ２ｚ∈Ｇ２とし、ＺＴ＝ｇＴｚ∈ＧＴとし、上記第一クライアント装置の識別子をＩＤＡとし、ＱＡ，１＝Ｈ１（ＩＤＡ）とし、ＱＡ，２＝Ｈ２（ＩＤＡ）とし、ｄＢ∈Ｚｑとし、ＤＢ，１＝ｇ１ｄＢ∈Ｇ１とし、ＤＢ，２＝ｇ２ｄＢ∈Ｇ２として、
上記鍵生成装置は、ＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚを計算し、計算された（ＤＡ，１，ＤＡ，２）を上記第一クライアント装置に送信し、
上記鍵生成装置は、ＤＢ，１＝ＱＢ，１ｚ，ＤＢ，２＝ＱＡ，２ｚを計算し、計算された（ＤＢ，１，ＤＢ，２）を上記第二クライアント装置に送信し、
上記認証装置は、第二クライアント装置のＤＢ，１，ＤＢ，２を認証し、
上記第一クライアント装置は、Ｈｑ（ｓＡ）＝αＡ∈Ｚｑを生成し、ＡＡ，１＝ＱＡ，１αＡを生成し、ＤＡ，１’＝ＤＡ，１ＡＡ，１−１を計算し、
上記第二クライアント装置は、Ｈｑ（ｓＢ）＝αＢ∈Ｚｑを生成し、σＢ＝ｄＢ−αＢを計算し、
上記第一クライアント装置は、ｘＡ∈Ｚｑとして、ＸＡ，１＝ｇ１ｘＡ，ＸＡ，２＝ｇ２ｘＡを生成し、
上記第二クライアント装置は、ｘＢ∈Ｚｑとして、ＸＢ，１＝ｇ１ｘＢ，ＸＢ，２＝ｇ２ｘＢを生成し、
上記第一クライアント装置は、（ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２）を上記第二クライアント装置に送信し、
上記第二クライアント装置は、（ＤＢ，１，ＤＢ，２，ＸＢ，１，ＸＢ，２）を上記第一クライアント装置に送信し、
上記第一クライアント装置は、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるか判定し、
上記鍵生成装置、上記第一クライアント装置及び第二クライアント装置は、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であり、かつ、ｅ（ＤＢ，１，ｇ２）＝ｅ（ｇ１，ＤＢ，２）であると判定されるまで、上記の処理を繰り返し行い、
上記第一クライアント装置は、上記マスタ公開鍵保管サーバにｅ（Ｚ１，ＤＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行わせ、
上記マスタ公開鍵保管サーバは、上記第一クライアント装置からの依頼を受けて、ｅ（Ｚ１，ＤＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行い、
上記第一クライアント装置は、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡ，σｍ＋３＝ＤＢ，１ｘＡ，σｍ＋４＝ＤＢ，２ｘＡを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＤＢ，１，ＤＢ，２）を計算し、
【数２７】
2017208773.tif 000029
上記第二クライアント装置は、上記マスタ公開鍵保管サーバにｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について、自己訂正技術を用いた代理計算を行わせ、
上記マスタ公開鍵保管サーバは、上記第二クライアント装置からの依頼を受けて、ｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について自己訂正技術を用いた代理計算を行い、
上記第二クライアント装置は、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢ，σｍ＋３＝ＸＡ，１σＢＸＡ，１αＢ，σｍ＋４＝ＸＡ，２σＢＸＡ，２αＢを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＳＢ，１，ＳＢ，２）を計算する、
【数２８】
2017208773.tif 000030
共有鍵共有システム。
【請求項３】
請求項１又は２の共有鍵共有システムの第一クライアント装置又は第二クライアント装置であるクライアント装置。
【請求項４】
請求項１又は２の共有鍵共有システムのマスタ公開鍵保管サーバ。
【請求項５】
第一クライアント装置、第二クライアント装置、鍵生成装置及びマスタ公開鍵保管サーバにより実行される共有鍵共有方法であって、
ｋをセキュリティパラメタとし、Ｇ１，Ｇ２，ＧＴを位数がｋビット長の素数ｑの巡回群とし、ｇ１，ｇ２，ｇＴをＧ１，Ｇ２とＧＴの生成元とし、ｅ：Ｇ１×Ｇ２→ＧＴをペアリング関数とし、ｇＴ＝ｅ（ｇ１，ｇ２）とし、＊をワイルドカードとして、Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１，Ｈ２：｛０，１｝＊→Ｇ２，Ｈｑ：｛０，１｝＊→Ｚｑを暗号学的Ｈａｓｈ関数とし、２以上の自然数ｍに対して、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０，ｃｉ，１，１を所定の定数とし、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝１，…，ｍ）は以下の式により定義されるとし、
【数２９】
2017208773.tif 000031
ｚ∈Ｚｑとし、Ｚ１＝ｇ１ｚ∈Ｇ１とし、Ｚ２＝ｇ２ｚ∈Ｇ２とし、ＺＴ＝ｇＴｚ∈ＧＴとし、上記第一クライアント装置の識別子をＩＤＡとし、ＱＡ，１＝Ｈ１（ＩＤＡ）とし、ＱＡ，２＝Ｈ２（ＩＤＡ）とし、上記第二クライアント装置の識別子をＩＤＢとし、ＱＢ，１＝Ｈ１（ＩＤＢ）とし、ＱＢ，２＝Ｈ２（ＩＤＢ）として、
上記鍵生成装置が、ＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚを計算し、計算された（ＤＡ，１，ＤＡ，２）を上記第一クライアント装置に送信するステップと、
上記鍵生成装置が、ＤＢ，１＝ＱＢ，１ｚ，ＤＢ，２＝ＱＡ，２ｚを計算し、計算された（ＤＢ，１，ＤＢ，２）を上記第二クライアント装置に送信するステップと、
上記第一クライアント装置が、Ｈｑ（ｓＡ）＝αＡ∈Ｚｑを生成し、ＡＡ，１＝ＱＡ，１αＡを生成し、ＤＡ，１’＝ＤＡ，１ＡＡ，１−１を計算するステップと、
上記第二クライアント装置が、Ｈｑ（ｓＢ）＝αＢ∈Ｚｑを生成し、ＡＢ，１＝ＱＢ，１αＢを生成し、ＤＢ，１’＝ＤＢ，１ＡＢ，１−１を計算するステップと、
上記第一クライアント装置が、ｘＡ∈Ｚｑとして、ＸＡ，１＝ｇ１ｘＡ，ＸＡ，２＝ｇ２ｘＡを生成するステップと、
上記第二クライアント装置が、ｘＢ∈Ｚｑとして、ＸＢ，１＝ｇ１ｘＢ，ＸＢ，２＝ｇ２ｘＢを生成するステップと、
上記第一クライアント装置が、（ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２）を上記第二クライアント装置に送信するステップと、
上記第二クライアント装置が、（ＩＤＡ，ＩＤＢ，ＸＢ，１，ＸＢ，２）を上記第一クライアント装置に送信するステップと、
上記第一クライアント装置が、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるか判定するステップと、
上記第二クライアント装置が、ｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であるか判定するステップと、
上記鍵生成装置、上記第一クライアント装置及び第二クライアント装置が、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であり、かつ、ｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であると判定されるまで、上記の処理を繰り返し行うステップと、
上記第一クライアント装置が、上記マスタ公開鍵保管サーバにｅ（Ｚ１，ＱＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行わせるステップと、
上記マスタ公開鍵保管サーバが、上記第一クライアント装置からの依頼を受けて、ｅ（Ｚ１，ＱＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行い、
上記第一クライアント装置が、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算するステップと、
【数３０】
2017208773.tif 000032
上記第二クライアント装置が、上記マスタ公開鍵保管サーバにｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について、自己訂正技術を用いた代理計算を行わせるステップと、
上記マスタ公開鍵保管サーバが、上記第二クライアント装置からの依頼を受けて、ｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について自己訂正技術を用いた代理計算を行うるステップと、
上記第二クライアント装置が、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算するステップと、
【数３１】
2017208773.tif 000033
を含む共有鍵共有方法。
【請求項６】
第一クライアント装置、第二クライアント装置、鍵生成装置、認証装置及びマスタ公開鍵保管サーバにより実行される共有鍵共有方法であって、
ｋをセキュリティパラメタとし、Ｇ１，Ｇ２，ＧＴを位数がｋビット長の素数ｑの巡回群とし、ｇ１，ｇ２，ｇＴをＧ１，Ｇ２とＧＴの生成元とし、ｅ：Ｇ１×Ｇ２→ＧＴをペアリング関数とし、ｇＴ＝ｅ（ｇ１，ｇ２）とし、＊をワイルドカードとして、Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１，Ｈ２：｛０，１｝＊→Ｇ２，Ｈｑ：｛０，１｝＊→Ｚｑを暗号学的Ｈａｓｈ関数とし、２以上の自然数ｍに対して、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０，ｃｉ，１，１を所定の定数とし、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝１，…，ｍ）は以下の式により定義されるとし、
【数３２】
2017208773.tif 000034
ｚ∈Ｚｑとし、Ｚ１＝ｇ１ｚ∈Ｇ１とし、Ｚ２＝ｇ２ｚ∈Ｇ２とし、ＺＴ＝ｇＴｚ∈ＧＴとし、上記第一クライアント装置の識別子をＩＤＡとし、ＱＡ，１＝Ｈ１（ＩＤＡ）とし、ＱＡ，２＝Ｈ２（ＩＤＡ）とし、ｄＢ∈Ｚｑとし、ＤＢ，１＝ｇ１ｄＢ∈Ｇ１とし、ＤＢ，２＝ｇ２ｄＢ∈Ｇ２として、
上記鍵生成装置が、ＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚを計算し、計算された（ＤＡ，１，ＤＡ，２）を上記第一クライアント装置に送信するステップと、
上記鍵生成装置が、ＤＢ，１＝ＱＢ，１ｚ，ＤＢ，２＝ＱＡ，２ｚを計算し、計算された（ＤＢ，１，ＤＢ，２）を上記第二クライアント装置に送信するステップと、
上記認証装置が、第二クライアント装置のＤＢ，１，ＤＢ，２を認証するステップと、
上記第一クライアント装置が、Ｈｑ（ｓＡ）＝αＡ∈Ｚｑを生成し、ＡＡ，１＝ＱＡ，１αＡを生成し、ＤＡ，１’＝ＤＡ，１ＡＡ，１−１を計算するステップと、
上記第二クライアント装置が、Ｈｑ（ｓＢ）＝αＢ∈Ｚｑを生成し、σＢ＝ｄＢ−αＢを計算するステップと、
上記第一クライアント装置が、ｘＡ∈Ｚｑとして、ＸＡ，１＝ｇ１ｘＡ，ＸＡ，２＝ｇ２ｘＡを生成するステップと、
上記第二クライアント装置が、ｘＢ∈Ｚｑとして、ＸＢ，１＝ｇ１ｘＢ，ＸＢ，２＝ｇ２ｘＢを生成するステップと、
上記第一クライアント装置が、（ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２）を上記第二クライアント装置に送信するステップと、
上記第二クライアント装置が、（ＤＢ，１，ＤＢ，２，ＸＢ，１，ＸＢ，２）を上記第一クライアント装置に送信するステップと、
上記第一クライアント装置が、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるか判定するステップと、
上記鍵生成装置、上記第一クライアント装置及び第二クライアント装置が、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であり、かつ、ｅ（ＤＢ，１，ｇ２）＝ｅ（ｇ１，ＤＢ，２）であると判定されるまで、上記の処理を繰り返し行うステップと、
上記第一クライアント装置が、上記マスタ公開鍵保管サーバにｅ（Ｚ１，ＤＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行わせるステップと、
上記マスタ公開鍵保管サーバが、上記第一クライアント装置からの依頼を受けて、ｅ（Ｚ１，ＤＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行うステップと、
上記第一クライアント装置が、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡ，σｍ＋３＝ＤＢ，１ｘＡ，σｍ＋４＝ＤＢ，２ｘＡを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＤＢ，１，ＤＢ，２）を計算するステップと、
【数３３】
2017208773.tif 000035
上記第二クライアント装置が、上記マスタ公開鍵保管サーバにｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について、自己訂正技術を用いた代理計算を行わせるステップと、
上記マスタ公開鍵保管サーバが、上記第二クライアント装置からの依頼を受けて、ｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について自己訂正技術を用いた代理計算を行うステップと、
上記第二クライアント装置が、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢ，σｍ＋３＝ＸＡ，１σＢＸＡ，１αＢ，σｍ＋４＝ＸＡ，２σＢＸＡ，２αＢを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＳＢ，１，ＳＢ，２）を計算するステップと、
【数３４】
2017208773.tif 000036
を含む共有鍵共有方法。
【請求項７】
請求項３のクライアント装置、請求項４のマスタ公開鍵保管サーバとしてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号技術に関する。特に、共有鍵を共有するための技術に関する。
【背景技術】
【０００２】
従来の技術として、ＩＤベース認証鍵交換ＦＳＵについて説明する。
【０００３】
以下、群の計算を乗法と仮定するが、任意の演算についても同様な議論が行うことができ、一般性を失うことは無い、また、巡回群Ｇ１，Ｇ２，ＧＴに対して、ペアリング
【０００４】
【数１】
2017208773.tif 000003
【０００５】
が用いられるが、非対称ペアリングを用いた記述とし、対称ペアリングを用いた場合も包含するものとする。また、Ｇ１とＧ２の役割を逆にしても一般生を失わずに同様に行えるので、その記述は省略する。
【０００６】
［認証鍵交換ＦＳＵについてのプロトコル］
ＴＬＳなどの多くの暗号通信は、正しい相手かどうかを認証し、鍵交換を行い、その後に共有したセッション鍵を用いた共通鍵暗号方式で暗号・復号の機能を利用し実現されている。例えば非特許文献１，２に記載された認証鍵交換ＦＳＵは、認証及び鍵交換の方式であり、秘密鍵の漏洩に対して最も強い安全性を満足することが証明されている暗号方式である。具体的に最も強い安全性とは、認証鍵交換のための秘密鍵には短期秘密鍵と長期秘密鍵の２種類があり、発信者と受信者の秘密鍵のどの非自明な秘密鍵の組み合わせの漏洩（例えば、発信者の短期秘密鍵と受信者の短期秘密鍵の漏洩）に対して交換されるセッショの漏洩が無いことである。
【０００７】
認証鍵交換ＦＳＵには、３つの方式が存在する。第１の方式はＩＤベース方式（例えば、ＩＤ−ＩＤ−ＦＳＵ）であり、第２の方式はＰＫＩベース方式であり、第３の方式はＩＤベース方式及びＰＫＩベース方式の組み合わせの方式（例えば、Ｃｅｒｔ−ＩＤ−ＦＳＵ）である。以下では、ＩＤ−ＩＤ−ＦＳＵ及びＣｅｒｔ−ＩＤ−ＦＳＵのそれぞれについて説明する。
【０００８】
［［ＩＤ−ＩＤ−ＦＳＵ］］
（登場する装置）
・第一クライアント装置ＵＡ及び第二クライアント装置ＵＢ
・鍵生成装置ＫＧＣ
以下、第一クライアント装置ＵＡ、第二クライアント装置ＵＢ及び鍵生成装置ＫＧＣのことをそれぞれＵＡ，ＵＢ，ＫＧＣと略記することもある。
【０００９】
（公開パラメータ）
・ｋをセキュリティパラメタとする。
・Ｇ１，Ｇ２とＧＴを位数がｋビット長の素数ｑの巡回群として、ｇ１，ｇ２とｇＴをそれぞれの群の生成元とする。
・ｅ：Ｇ１×Ｇ２→ＧＴをペアリングとする。ここで、ｇＴ＝ｅ（ｇ１，ｇ２）を満足するものとする。
・Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１とＨ２：｛０，１｝＊→Ｇ２をそれぞれ暗号学的Ｈａｓｈ関数とする。
・２以上の自然数ｍに対して、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝ｌ，．．．，ｍ）を以下のように与える；
【００１０】
【数２】
2017208773.tif 000004
【００１１】
ここで、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０とｃｉ，１，１は定数であってもよいし、短期公開鍵、公開鍵、ユーザＩＤ等に依存して決まる数でもよい。
・ＫＧＣはマスタ秘密鍵ｚ∈Ｚｑをランダムに選択し、マスタ公開鍵Ｚ１＝ｇ１ｚ∈Ｇ１とＺ２＝ｇ２ｚ∈Ｇ２を公開する。
・ＵＡは識別子ＩＤＡを持っていて、ＱＡ，１＝Ｈ１（ＩＤＡ）∈Ｇ１とＱＡ，２＝Ｈ２（ＩＤＡ）∈Ｇ２を計算し公開する。同じように、ＵＢは識別子ＩＤＢを持っていて、ＱＢ，１＝Ｈ１（ＩＤＢ）∈Ｇ１とＱＢ，２＝Ｈ２（ＩＤＢ）∈Ｇ２を計算し公開する。
【００１２】
（鍵生成）
ＫＧＣはＵＡとＵＢの（ＱＡ，１，ＱＡ，２）と（ＱＢ，１，ＱＢ，２）を用いて、秘密鍵の２つのペアＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚとＤＢ，１＝ＱＢ，１ｚ，ＤＢ，２＝ＱＢ，２ｚを計算し、ＵＡに（ＤＡ，１，ＤＡ，２）を、ＵＢに（ＤＢ，１，ＤＢ，２）を配布する。
ＵＡは短期秘密鍵ｘＡ∈Ｚｑをランダムに選び、短期公開鍵のペアＸＡ，１＝ｇ１ｘＡとＸＡ，２＝ｇ２ｘＡを生成する。同様に、ＵＢは短期秘密鍵ｘＢ∈Ｚｑをランダムに選び、短期公開鍵のペアＸＢ，１＝ｇ１ｘＢとＸＢ，２＝ｇ２ｘＢを生成する。
【００１３】
（鍵交換）
（１）．ＵＡはＵＢへ（ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２）を送信する。
（２）．ＵＢはＵＡへ（ＩＤＡ，ＩＤＢ，ＸＢ，１，ＸＢ，２）を送信する。
（３）．ＵＡはｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるか確認し、ＵＢはｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であるか確認する。正しくなければ、鍵生成からやり直す。
【００１４】
（４）．ＵＡは以下の（ａ）〜（ｃ）を行う。
（ａ）ｉ＝１，．．．，ｍについてσｉ＝ｅ（ＤＡ，１ｃｉ，０，０Ｚ１ｃｉ，１，０ｘＡ，ＱＢ，２）ｅ（ＤＡ，１ｃｉ，０，１Ｚ１ｃｉ，１，１ｘＡ，ＸＢ，２）を計算する。
（ｂ）σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡを計算する。
（ｃ）共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算する。
【００１５】
（５）．同じように、ＵＢは以下の（ａ）〜（ｃ）を行う。
（ａ）ｉ＝１，．．．，ｍについてσｉ＝ｅ（ＱＡ，１，ＤＢ，２ｃｉ，０，０Ｚ２ｃｉ，０，１ｘＢ）ｅ（ＸＢ，１，ＤＢ，２ｃｉ，１，０Ｚ２ｃｉ，１，１ｘＢ）を計算する。
（ｂ）σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢを計算する。
（ｃ）共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算する。
【００１６】
（６）．ＵＡとＵＢが計算した値σｉは
（ａ）ｉ＝１，．．．，ｍについてσｉ＝ｇＴｚｐｉ（ｑＡ，１，ｑＢ，２，ｘＡ，ｘＢ），（ＱＡ，１＝ｇ１ｑＡ，１，ＱＢ，２＝ｇ２ｑＢ，２）
（ｂ）σｍ＋１＝ｇ１ｘＡｘＢ，σｍ＋２＝ｇ２ｘＡｘＢ
となるので、両者で計算した共有鍵Ｋは一致する。
【００１７】
なお、非特許文献１の中では、ｍ＝２として、多項式ｐｉを以下のようにしている。
【００１８】
【数３】
2017208773.tif 000005
【００１９】
［［Ｃｅｒｔ−ＩＤ−ＦＳＵ］］
（登場する装置）
・第一クライアント装置ＵＡと第二クライアント装置ＵＢ
・鍵生成装置ＫＧＣ
・認証装置
【００２０】
（公開パラメータ）
・ｋをセキュリティパラメタとする。
・Ｇ１，Ｇ２とＧＴを位数がｋビット長の素数ｑの巡回群として、ｇ１，ｇ２とｇＴをそれぞれの群の生成元とする。
・ｅ：Ｇ１×Ｇ２→ＧＴをペアリングとする。ここで、ｇＴ＝ｅ（ｇ１，ｇ２）を満足するものとする。
・Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１とＨ２：｛０，１｝＊→Ｇ２をそれぞれ暗号学的Ｈａｓｈ関数とする。
・２以上の自然数ｍに対して、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝１，．．．，ｍ）を以下のように与える；
【００２１】
【数４】
2017208773.tif 000006
【００２２】
ここで、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０とｃｉ，１，１は定数であってもよいし、短期公開鍵、公開鍵、ユーザＩＤ等に依存して決まる数でもよい。
・ＫＧＣはマスタ秘密鍵ｚ∈Ｚｑをランダムに選択し、マスタ公開鍵Ｚ１＝ｇ１ｚ∈Ｇ１とＺ２＝ｇ２ｚ∈Ｇ２を公開する。
・ＵＡは識別子ＩＤＡを持っていて、ＱＡ，１＝Ｈ１（ＩＤＡ）∈Ｇ１とＱＡ，２＝Ｈ２（ＩＤＡ）∈Ｇ２を計算し公開する。
【００２３】
（鍵生成）
ＫＧＣはＵＡの（ＱＡ，１，ＱＡ，２）を用いて、秘密鍵のペアＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚを計算し、ＵＡに（ＤＡ，１，ＤＡ，２）を配布する。
【００２４】
ＵＢは秘密鍵ｄＢ∈Ｚｑを持っていて、公開鍵ＤＢ，１＝ｇ１ｄＢ∈Ｇ１とＤＢ，２＝ｇ１ｄＢ∈Ｇ２を計算し公開する。
【００２５】
認証装置はＵＢの公開鍵ＤＢを認証する。
【００２６】
ＵＡは短期秘密鍵ｘＡ∈Ｚｑをランダムに選び、短期公開鍵のペアＸＡ，１＝ｇ１ｘＡとＸＡ，２＝ｇ２ｘＡを生成する。同様に、ＵＢは短期秘密鍵ｘＢ∈Ｚｑをランダムに選び、短期公開鍵のペアＸＢ，１＝ｇ１ｘＢとＸＢ，２＝ｇ２ｘＢを生成する。
【００２７】
（鍵交換）
（１）．ＵＡはＵＢへ（ＩＤＡ，ＸＡ，１，ＸＡ，２）を送信する。
（２）．ＵＢはＵＡへ（ＤＢ，１，ＤＢ，２，ＸＢ，１，ＸＢ，２）を送信する。
（３）．ＵＡはｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるかとｅ（ＳＢ，１，ｇ２）＝ｅ（ｇ１，ＳＢ，２）確認し、ＵＢはｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であるか確認する。正しくなければ、鍵生成からやり直す。
【００２８】
（４）．ＵＡは以下の（ａ）〜（ｃ）を行う。
（ａ）ｉ＝１，．．．，ｍについてσｉ＝ｅ（ＤＡ，１ｃｉ，０，０Ｚ１ｃｉ，１，０ｘＡ，ＳＢ，２）ｅ（ＤＡ，１ｃｉ，０，１Ｚ１ｃｉ，１，１ｘＡ，ＸＢ，２）を計算する。
（ｂ）σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡを計算する。
（ｃ）σｍ＋３＝ＤＢ，１ｘＡ，σｍ＋４＝ＤＢ，２ｘＡを計算する。
（ｄ）共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＤＢ，１，ＤＢ，２）を計算する。
【００２９】
（５）．ＵＢは以下の（ａ）〜（ｃ）を行う。
（ａ）ｉ＝１，．．．，ｍについてσｉ＝ｅ（ＱＡ，１，Ｚ２ｃｉ，０，０ＳＢ＋ｃｉ，０，１，ｘＢ）ｅ（ＸＡ，２，Ｚ２ｃｉ，１，０ＳＢ＋ｃｉ，１，１ｘＢ）を計算する。
（ｂ）σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢを計算する。
（ｃ）σｍ＋３＝ＸＡ，１ｄＢ，σｍ＋４＝ＸＡ，２ｄＢを計算する。
（ｄ）共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＤＢ，１，ＤＢ，２）を計算する。
【００３０】
（６）．ＵＡとＵＢが計算した値σｉは
（ａ）ｉ＝１，．．．，ｍについてσｉ＝ｇＴｚｐｉ（ｑＡ，１，ＳＢ，ｘＡ，ｘＢ），（ＱＡ，１＝ｇ１ｑＡ，１）
（ｂ）σｍ＋１＝ｇ１ｘＡｘＢ，σｍ＋２＝ｇ２ｘＡｘＢ
（ｃ）σｍ＋３＝ｇ１ｘＡｄＢ，σｍ＋４＝ｇ２ｘＡｄＢ
となるので、両者で計算した共有鍵Ｋは一致する。
【先行技術文献】
【非特許文献】
【００３１】
【非特許文献１】A. Fujioka, F. Hoshino, T. Kobayashi, et. al. "id-eCK Secure ID-Based Authenticated Key Exchange on Symmetric and Asymmetric Pairing", IEICE Transactions 96-A(6): 1139-1155 (2013)
【非特許文献２】B. Ustaoglu, "Integrating identity-based and certicate-based authenticated key exchange protocols", Int J Inf Secur 10(4): 201―212 (2011)
【発明の概要】
【発明が解決しようとする課題】
【００３２】
従来の認証鍵交換ＦＳＵにおいては、秘密鍵の管理を厳重に行う必要があった。例えば、ＩＤに紐づく長期秘密鍵を耐タンパ性のある領域に保存するなどして厳重に行う必要があった。
【００３３】
この発明の目的は、従来よりも秘密鍵管理の利便性を向させた、共有鍵共有システム、方法、クライアント装置、マスタ公開鍵保管サーバ及びプログラムを提供することである。
【課題を解決するための手段】
【００３４】
この発明の一態様による共有鍵共有システムは、第一クライアント装置、第二クライアント装置、鍵生成装置及びマスタ公開鍵保管サーバを含む共有鍵共有システムであって、ｋをセキュリティパラメタとし、Ｇ１，Ｇ２，ＧＴを位数がｋビット長の素数ｑの巡回群とし、ｇ１，ｇ２，ｇＴをＧ１，Ｇ２とＧＴの生成元とし、ｅ：Ｇ１×Ｇ２→ＧＴをペアリング関数とし、ｇＴ＝ｅ（ｇ１，ｇ２）とし、＊をワイルドカードとして、Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１，Ｈ２：｛０，１｝＊→Ｇ２，Ｈｑ：｛０，１｝＊→Ｚｑを暗号学的Ｈａｓｈ関数とし、２以上の自然数ｍに対して、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０，ｃｉ，１，１を所定の定数とし、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝１，…，ｍ）は以下の式により定義されるとし、
【００３５】
【数５】
2017208773.tif 000007
【００３６】
ｚ∈Ｚｑとし、Ｚ１＝ｇ１ｚ∈Ｇ１とし、Ｚ２＝ｇ２ｚ∈Ｇ２とし、ＺＴ＝ｇＴｚ∈ＧＴとし、上記第一クライアント装置の識別子をＩＤＡとし、ＱＡ，１＝Ｈ１（ＩＤＡ）とし、ＱＡ，２＝Ｈ２（ＩＤＡ）とし、上記第二クライアント装置の識別子をＩＤＢとし、ＱＢ，１＝Ｈ１（ＩＤＢ）とし、ＱＢ，２＝Ｈ２（ＩＤＢ）として、上記鍵生成装置は、ＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚを計算し、計算された（ＤＡ，１，ＤＡ，２）を上記第一クライアント装置に送信し、上記鍵生成装置は、ＤＢ，１＝ＱＢ，１ｚ，ＤＢ，２＝ＱＡ，２ｚを計算し、計算された（ＤＢ，１，ＤＢ，２）を上記第二クライアント装置に送信し、上記第一クライアント装置は、Ｈｑ（ｓＡ）＝αＡ∈Ｚｑを生成し、ＡＡ，１＝ＱＡ，１αＡを生成し、ＤＡ，１’＝ＤＡ，１ＡＡ，１−１を計算し、上記第二クライアント装置は、Ｈｑ（ｓＢ）＝αＢ∈Ｚｑを生成し、ＡＢ，１＝ＱＢ，１αＢを生成し、ＤＢ，１’＝ＤＢ，１ＡＢ，１−１を計算し、上記第一クライアント装置は、ｘＡ∈Ｚｑとして、ＸＡ，１＝ｇ１ｘＡ，ＸＡ，２＝ｇ２ｘＡを生成し、上記第二クライアント装置は、ｘＢ∈Ｚｑとして、ＸＢ，１＝ｇ１ｘＢ，ＸＢ，２＝ｇ２ｘＢを生成し、上記第一クライアント装置は、（ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２）を上記第二クライアント装置に送信し、上記第二クライアント装置は、（ＩＤＡ，ＩＤＢ，ＸＢ，１，ＸＢ，２）を上記第一クライアント装置に送信し、上記第一クライアント装置は、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるか判定し、上記第二クライアント装置は、ｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であるか判定し、上記鍵生成装置、上記第一クライアント装置及び第二クライアント装置は、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であり、かつ、ｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であると判定されるまで、上記の処理を繰り返し行い、上記第一クライアント装置は、上記マスタ公開鍵保管サーバにｅ（Ｚ１，ＱＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行わせ、上記マスタ公開鍵保管サーバは、上記第一クライアント装置からの依頼を受けて、ｅ（Ｚ１，ＱＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行い、上記第一クライアント装置は、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算し、
【００３７】
【数６】
2017208773.tif 000008
【００３８】
上記第二クライアント装置は、上記マスタ公開鍵保管サーバにｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について、自己訂正技術を用いた代理計算を行わせ、上記マスタ公開鍵保管サーバは、上記第二クライアント装置からの依頼を受けて、ｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について自己訂正技術を用いた代理計算を行い、上記第二クライアント装置は、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算する。
【００３９】
【数７】
2017208773.tif 000009
【００４０】
この発明の一態様による共有鍵共有システムは、第一クライアント装置、第二クライアント装置、鍵生成装置、認証装置及びマスタ公開鍵保管サーバを含む共有鍵共有システムであって、ｋをセキュリティパラメタとし、Ｇ１，Ｇ２，ＧＴを位数がｋビット長の素数ｑの巡回群とし、ｇ１，ｇ２，ｇＴをＧ１，Ｇ２とＧＴの生成元とし、ｅ：Ｇ１×Ｇ２→ＧＴをペアリング関数とし、ｇＴ＝ｅ（ｇ１，ｇ２）とし、＊をワイルドカードとして、Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１，Ｈ２：｛０，１｝＊→Ｇ２，Ｈｑ：｛０，１｝＊→Ｚｑを暗号学的Ｈａｓｈ関数とし、２以上の自然数ｍに対して、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０，ｃｉ，１，１を所定の定数とし、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝１，…，ｍ）は以下の式により定義されるとし、
【００４１】
【数８】
2017208773.tif 000010
【００４２】
ｚ∈Ｚｑとし、Ｚ１＝ｇ１ｚ∈Ｇ１とし、Ｚ２＝ｇ２ｚ∈Ｇ２とし、ＺＴ＝ｇＴｚ∈ＧＴとし、上記第一クライアント装置の識別子をＩＤＡとし、ＱＡ，１＝Ｈ１（ＩＤＡ）とし、ＱＡ，２＝Ｈ２（ＩＤＡ）とし、ｄＢ∈Ｚｑとし、ＤＢ，１＝ｇ１ｄＢ∈Ｇ１とし、ＤＢ，２＝ｇ２ｄＢ∈Ｇ２として、上記鍵生成装置は、ＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚを計算し、計算された（ＤＡ，１，ＤＡ，２）を上記第一クライアント装置に送信し、上記鍵生成装置は、ＤＢ，１＝ＱＢ，１ｚ，ＤＢ，２＝ＱＡ，２ｚを計算し、計算された（ＤＢ，１，ＤＢ，２）を上記第二クライアント装置に送信し、上記認証装置は、第二クライアント装置のＤＢ，１，ＤＢ，２を認証し、上記第一クライアント装置は、Ｈｑ（ｓＡ）＝αＡ∈Ｚｑを生成し、ＡＡ，１＝ＱＡ，１αＡを生成し、ＤＡ，１’＝ＤＡ，１ＡＡ，１−１を計算し、上記第二クライアント装置は、Ｈｑ（ｓＢ）＝αＢ∈Ｚｑを生成し、σＢ＝ｄＢ−αＢを計算し、上記第一クライアント装置は、ｘＡ∈Ｚｑとして、ＸＡ，１＝ｇ１ｘＡ，ＸＡ，２＝ｇ２ｘＡを生成し、上記第二クライアント装置は、ｘＢ∈Ｚｑとして、ＸＢ，１＝ｇ１ｘＢ，ＸＢ，２＝ｇ２ｘＢを生成し、上記第一クライアント装置は、（ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２）を上記第二クライアント装置に送信し、上記第二クライアント装置は、（ＤＢ，１，ＤＢ，２，ＸＢ，１，ＸＢ，２）を上記第一クライアント装置に送信し、上記第一クライアント装置は、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるか判定し、上記鍵生成装置、上記第一クライアント装置及び第二クライアント装置は、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であり、かつ、ｅ（ＤＢ，１，ｇ２）＝ｅ（ｇ１，ＤＢ，２）であると判定されるまで、上記の処理を繰り返し行い、上記第一クライアント装置は、上記マスタ公開鍵保管サーバにｅ（Ｚ１，ＤＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行わせ、上記マスタ公開鍵保管サーバは、上記第一クライアント装置からの依頼を受けて、ｅ（Ｚ１，ＤＢ，２）及びｅ（Ｚ１，ＸＢ，２）について自己訂正技術を用いた代理計算を行い、上記第一クライアント装置は、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡ，σｍ＋３＝ＤＢ，１ｘＡ，σｍ＋４＝ＤＢ，２ｘＡを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＤＢ，１，ＤＢ，２）を計算し、
【００４３】
【数９】
2017208773.tif 000011
【００４４】
上記第二クライアント装置は、上記マスタ公開鍵保管サーバにｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について、自己訂正技術を用いた代理計算を行わせ、上記マスタ公開鍵保管サーバは、上記第二クライアント装置からの依頼を受けて、ｅ（ＱＡ，１，Ｚ２）及びｅ（ＸＡ，２，Ｚ２）について自己訂正技術を用いた代理計算を行い、上記第二クライアント装置は、以下の式により定義されるσｉ（ｉ＝１，…，ｍ）を計算し、σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢ，σｍ＋３＝ＸＡ，１σＢＸＡ，１αＢ，σｍ＋４＝ＸＡ，２σＢＸＡ，２αＢを計算し、共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＳＢ，１，ＳＢ，２）を計算する。
【００４５】
【数１０】
2017208773.tif 000012
【発明の効果】
【００４６】
秘密鍵管理の利便性が向上する。
【図面の簡単な説明】
【００４７】
【図１】第一実施形態の共有鍵共有システムの例を説明するためのブロック図。
【図２】第二実施形態の共有鍵共有システムの例を説明するためのブロック図。
【発明を実施するための形態】
【００４８】
以下、図面を参照して、この発明の一実施形態について説明する。
【００４９】
まず、この発明の一実施形態において用いられる技術である、自己訂正技術を用いた群準同型の代理計算について説明する。
【００５０】
［自己訂正技術を用いた群準同型の代理計算］
以下、自己訂正技術を用いた群準同型の代理計算について説明する。
【００５１】
二つの群Ｇ，Ｈとその間の準同型写像をＦ：Ｇ→Ｈとする。クライアント装置Ｕはｇ∈Ｇを秘匿化し代理計算装置Ｐに送信し、代わりにＦ（ｇ）を正しく計算してもらう手法を説明する（例えば、参考文献１参照。）。
【００５２】
〔参考文献１〕特開２０１２−１５１７５６号公報
１．クライアント装置Ｕは単位元でない適当な元ｇ０∈Ｇに対してＦ（ｇ０）を計算する。
２．クライアント装置Ｕはランダムな整数ｓ１，ｓ２∈Ｚを互いに素になるようにとり、ｓ’１とｓ’２をｓ１ｓ’１＋ｓ２ｓ’２＝１を満足するに定める。
３．Ｕは任意の単位元でない元ｇ１，ｇ２∈Ｇを定め、Ｐへ二つのペア（ｇ１−１，ｇ１ｇｓ１）と（ｇ２−１，ｇ２ｇｓ２）を送信する。
４．Ｐはζ１＝Ｆ（ｇ１−１）Ｆ（ｇ１ｇｓ１）とζ２＝Ｆ（ｇ２−１）Ｆ（ｇ２ｇｓ２）を計算し、Ｕへ送信する。
５．Ｕはζ１ｓ２＝ζ２ｓ１を確認する。正しくなければ、（１）に戻る。正しければ、ζ１ｓ’１ζ２ｓ’２＝Ｆ（ｇｓ１ｓ’１＋ｓ２ｓ’２）＝Ｆ（ｇ）を計算する。
【００５３】
自己訂正技術を用いた代理計算のポイントは２つである。計算させる写像が準同型写像であることと適当な元ｇ０に対してクライアント装置がＦ（ｇ０）の正しい値を知っていることである。
【００５４】
［第一実施形態］
以下、第一実施形態の共有鍵共有システム及び方法について説明する。第一実施形態の共有鍵共有システム及び方法は、自己訂正とＭ−ｐｉｎを用いたＩＤ−ＩＤ−ＦＳＵに関するものである。
【００５５】
（登場する装置）
・第一クライアント装置ＵＡと第二クライアント装置ＵＢ
・鍵生成装置ＫＧＣ
・マスタ公開鍵保管サーバＳＥＲ
以下、第一クライアント装置ＵＡ、第二クライアント装置ＵＢ、鍵生成装置ＫＧＣ及びマスタ公開鍵保管サーバＳＥＲことをそれぞれＵＡ，ＵＢ，ＫＧＣ，ＳＥＲと略記することもある。
【００５６】
共有鍵共有システムは、図１に示すように、第一クライアント装置ＵＡ、第二クライアント装置ＵＢ、鍵生成装置ＫＧＣ及びマスタ公開鍵保管サーバＳＥＲを例えば備えている。共有鍵共有方法は、共有鍵共有システムの各部が、以下に説明する処理を例えば行うことにより実現される。
【００５７】
（公開パラメータ）
・ｋをセキュリティパラメタとする。ｋは所定の正の整数である。
・Ｇ１，Ｇ２とＧＴを位数がｋビット長の素数ｑの巡回群として、ｇ１，ｇ２とｇＴをそれぞれの群の生成元とする。
・ｅ：Ｇ１×Ｇ２→ＧＴをペアリングとする。ここで、ｇＴ＝ｅ（ｇ１，ｇ２）を満足するものとする。
・Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１，Ｈ２：｛０，１｝＊→Ｇ２とＨｑ：｛０，１｝＊→Ｚｑをそれぞれ暗号学的Ｈａｓｈ関数とする。
・２以上の自然数ｍに対して、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝１，．．．，ｍ）を以下のように与える；
【数１１】
2017208773.tif 000013
【００５８】
ここで、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０とｃｉ，１，１は定数であってもよいし、短期公開鍵、公開鍵、ユーザＩＤ等に依存して決まる数でもよい。
・ＫＧＣは，マスタ秘密鍵ｚ∈Ｚｑをランダムに選択し、マスタ公開鍵としてＺ１＝ｇ１ｚ∈Ｇ１とＺ２＝ｇ２ｚ∈Ｇ２を生成し公開せずに、Ｓｅｒに送信する。また、擬マスタ公開鍵としてＺＴ＝ｇＴｚ∈ＧＴを計算し、公開する。
・ＵＡは識別子ＩＤＡを持っていて、ＱＡ，１＝Ｈ１（ＩＤＡ）∈Ｇ１とＱＡ，２＝Ｈ２（ＩＤＡ）∈Ｇ２を計算し公開する。同じように、ＵＢは識別子ＩＤＢを持っていて、ＱＢ，１＝Ｈ１（ＩＤＢ）∈Ｇ１とＱＢ，２＝Ｈ２（ＩＤＢ）∈Ｇ２を計算し公開する。
【００５９】
（鍵生成）
ＫＧＣはＵＡとＵＢのＩＤＡとＩＤＢを用いて、秘密鍵の２つのペアＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚとＤＢ，１＝ＱＢ，１ｚ，ＤＢ，２＝ＱＢ，２ｚを計算し、ＵＡに（ＤＡ，１，ＤＡ，２）を、ＵＢに（ＤＢ，１，ＤＢ，２）を配布する。
【００６０】
必要があるならば、ＵＡはＳｅｒにｅ（ＱＡ，１，Ｚ２）及びｅ（Ｚ１，ＱＡ，２）の計算を依頼し、ｅ（ＤＡ，１，ｇ２）＝ｅ（ＱＡ，１，Ｚ２）及びｅ（ｇ１，ＤＡ，２）＝ｅ（Ｚ２，ＱＡ，２）を判定し、ＫＧＣから配布された秘密鍵がマスタ秘密鍵ｚと紐付いているかの確認を行う。同様に、ＵＢはＳｅｒにｅ（ＤＢ，１，Ｚ２）及びｅ（Ｚ１，ＤＢ，２）の計算を依頼する。ｅ（ＤＢ，１，ｇ２）＝ｅ（ＱＢ，１，Ｚ２）及びｅ（ｇ１，ＤＢ，２）＝ｅ（Ｚ２，ＱＢ，２）を判定し、ＫＧＣから配布された秘密鍵がマスタ秘密鍵ｚと紐付いているかの確認を行う。
【００６１】
なお、依頼するべき計算の関数は
【数１２】
2017208773.tif 000014
である。共に、群の準同型写像であり、また、ｅ（ｇ１，Ｚ２）＝ｅ（Ｚ１，ｇ２）＝ｇＴｚ＝ＺＴであり、この値は擬マスタ公開鍵である。従って、代理計算を使うことができる。
【００６２】
ＵＡはｐｉｎ（ｐｅｒｓｏｎａｌ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｎｕｍｂｅｒ）であるｓＡからＨｑ（ｓＡ）＝αＡ∈Ｚｑを生成し、ΑＡ，１＝ＱＡ，１αＡを生成する。ＵＡはδＡ，１＝ＤＡ，１ΑＡ，１−１を計算する。計算後にＤＡ，１は消す。ｓＡは、ＵＡのみしか知らない任意のストリングである。
【００６３】
ＵＢはｐｉｎであるｓＢからＨｑ（ｓＢ）＝αＢ∈Ｚｑを生成し、ΑＢ，２＝ＱＢ，２αＢを生成する。ＵＢはδＢ，２＝ＤＢ，２ΑＢ，２−１を計算する。計算後にＤＢ，２は消す。ｓＢは、ＵＢのみしか知らない任意のストリングである。
【００６４】
このように、秘密鍵ＤＡ，１を秘匿化された秘密鍵δＡ，１とｐｉｎとに分割し、秘密鍵ＤＢ，２を秘匿化された秘密鍵δＢ，２とｐｉｎとに分割する。そして、後述のように、秘匿化された秘密鍵δＡ，１，δＢ，２とｐｉｎの２要素によって認証鍵交換する。このようにすることで、秘匿化された秘密鍵かｐｉｎのどちらか片方が漏洩しても安全であり、秘匿化された秘密鍵をブラウザ等の利便性の高い領域などに保管することができる。よって、秘密鍵管理の利便性が向上する。
【００６５】
ＵＡは短期秘密鍵ｘＡ∈Ｚｑをランダムに選び、短期公開鍵のペアＸＡ，１＝ｇ１ｘＡとＸＡ，２＝ｇ２ｘＡを生成する。同様に、ＵＢは短期秘密鍵ｘＢ∈Ｚｑをランダムに選び、短期公開鍵のペアＸＢ，１＝ｇ１ｘＢとＸＢ，２＝ｇ２ｘＢを生成する。
【００６６】
（鍵交換）
（１）．ＵＡはＵＢへ（ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２）を送信する。
（２）．ＵＢはＵＡへ（ＩＤＡ，ＩＤＢ，ＸＢ，１，ＸＢ，２）を送信する。
（３）．ＵＡはｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるか確認し、ＵＢはｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であるか確認する。正しくなければ、鍵生成からやり直す。
【００６７】
（４）．ＵＡは以下の（ａ）〜（ｄ）を行う。
（ａ）Ｓｅｒにｅ（Ｚ１，ＱＢ，２）およびｅ（Ｚ１，ＸＢ，２）の計算を依頼する。依頼する関数は
【数１３】
2017208773.tif 000015
であり、群の準同型であり、ｅ（Ｚ１，ｇ２）＝ｇＴｚとなり、適当な一点を計算できるので、自己訂正の代理計算が可能である。
（ｂ）ｉ＝１，．．．，ｍについて
【数１４】
2017208773.tif 000016
を計算する。
（ｃ）σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡを計算する。
（ｄ）共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算する。
【００６８】
（５）．同じように、ＵＢは以下の（ａ）〜（ｄ）を行う。
（ａ）Ｓｅｒにｅ（ＱＡ，１，Ｚ２）およびｅ（ＸＡ，２，Ｚ２）の計算を依頼する。依頼する関数は
【数１５】
2017208773.tif 000017
であり、群の準同型であり、ｅ（ｇ１，Ｚ２）＝ｇＴｚとなり、適当な一点を計算できるので、自己訂正の代理計算が可能である。
（ｂ）ｉ＝１，．．．，ｍについて
【数１６】
2017208773.tif 000018
を計算する。
（ｃ）σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢを計算する。
（ｄ）共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を計算する。
【００６９】
（６）．ＵＡとＵＢが計算した値σｉは
（ａ）ｉ＝１，．．．，ｍについてσｉ＝ｇＴｚｐｉ（ｑＡ，１，ｑｂ，１，ｘＡ，ｘＢ），（ＱＡ，１＝ｇ１ｑＡ，１，ＱＢ，２＝ｇ２ｑＢ，２）
（ｂ）σｍ＋１＝ｇ１ｘＡｘＢ，σｍ＋２＝ｇ２ｘＡｘＢ
となるので、両者で計算した共有鍵Ｋは一致する。
【００７０】
［第二実施形態］
以下、第二実施形態の共有鍵共有システム及び方法について説明する。第二実施形態の共有鍵共有システム及び方法は、Ｍ−ｐｉｎを用いたＣｅｒｔ−ＩＤ−ＦＳＵに関するものである。
【００７１】
（登場する装置）
・第一クライアント装置ＵＡと第二クライアント装置ＵＢ
・鍵生成局ＫＧＣ
・認証装置Ｎ
・マスタ公開鍵保管サーバＳＥＲ
以下、第一クライアント装置ＵＡ、第二クライアント装置ＵＢ、鍵生成装置ＫＧＣ、認証装置Ｎ及びマスタ公開鍵保管サーバＳＥＲことをそれぞれＵＡ，ＵＢ，ＫＧＣ，Ｎ，ＳＥＲと略記することもある。
【００７２】
共有鍵共有システムは、図２に示すように、第一クライアント装置ＵＡ、第二クライアント装置ＵＢ、鍵生成装置ＫＧＣ、認証装置Ｎ及びマスタ公開鍵保管サーバＳＥＲを例えば備えている。共有鍵共有方法は、共有鍵共有システムの各部が、以下に説明する処理を例えば行うことにより実現される。
【００７３】
（公開パラメータ）
・ｋをセキュリティパラメタとする。
・Ｇ１，Ｇ２とＧＴを位数がｋビット長の素数ｑの巡回群として、ｇ１，ｇ２とｇＴをそれぞれの群の生成元とする。
・ｅ：Ｇ１×Ｇ２→ＧＴをペアリングとする。ここで、ｇＴ＝ｅ（ｇ１，ｇ２）を満足するものとする。
・Ｈ：｛０，１｝＊→｛０，１｝ｋ，Ｈ１：｛０，１｝＊→Ｇ１，Ｈ２：｛０，１｝＊→Ｇ２とＨｑ：｛０，１｝＊→Ｚｑをそれぞれ暗号学的Ｈａｓｈ関数とする。
・２以上の自然数ｍに対して、ｍ個の多項式ｐｉ∈Ｚｑ［ｕ０，ｕ１，ｖ０，ｖ１］（ｉ＝１，．．．，ｍ）を以下のように与える；
【数１７】
2017208773.tif 000019
【００７４】
ここで、ｃｉ，０，０，ｃｉ，０，１，ｃｉ，１，０とｃｉ，１，１は定数であってもよいし、短期公開鍵、公開鍵、ユーザＩＤ等に依存して決まる数でもよい。
・ＫＧＣはマスタ秘密鍵ｚ∈Ｚｑをランダムに選択し、マスタ公開鍵Ｚ１＝ｇ１ｚ∈Ｇ１とＺ２＝ｇ２ｚ∈Ｇ２を生成し、Ｓｅｒへ送信する。また、擬マスタ公開鍵としてＺＴ＝ｇＴｚ∈ＧＴを計算し、公開する。
・ＵＡは識別子ＩＤＡを持っていて、ＱＡ，１＝Ｈ１（ＩＤＡ）∈Ｇ１とＱＡ，２＝Ｈ２（ＩＤＡ）∈Ｇ２を計算し公開する。
【００７５】
（鍵生成）
ＫＧＣはＵＡの（ＱＡ，１，ＱＡ，２）を用いて、秘密鍵のペアＤＡ，１＝ＱＡ，１ｚ，ＤＡ，２＝ＱＡ，２ｚを計算し、ＵＡに（ＤＡ，１，ＤＡ，２）を配布する。
必要があるならば、ＵＡはＳｅｒにｅ（ＱＡ，１，Ｚ２）及びｅ（Ｚ１，ＱＡ，２）の計算を依頼し、ｅ（ＤＡ，１，ｇ２）＝ｅ（ＱＡ，１，Ｚ２）及びｅ（ｇ１，ＤＡ，２）＝ｅ（Ｚ２，ＱＡ，２）を判定し、ＫＧＣから配布された秘密鍵がマスタ秘密鍵ｚと紐付いているかの確認を行う。
【００７６】
なお、依頼するべき計算の関数は
【数１８】
2017208773.tif 000020
である。共に、群の準同型写像であり、また、ｅ（ｇ１，Ｚ２）＝ｅ（Ｚ１，ｇ２）＝ｇＴｚ＝ＺＴであり、この値は擬マスタ公開鍵である。従って、代理計算を使うことができる。
【００７７】
ＵＢは秘密鍵ｄＢ∈Ｚｑを持っていて、公開鍵ＤＢ，１＝ｇ１ｄＢ∈Ｇ１とＤＢ，２＝ｇ１ｄＢ∈Ｇ２を計算し公開する。
【００７８】
認証装置ＮはＵＢの公開鍵ＤＢを認証する。
ＵＡはｐｉｎであるｓＡからＨｑ（ｓＡ）＝αＡ∈Ｚｑを生成し、ΑＡ，１＝ＱＡ，１αＡを生成する。ＵＡはδＡ，１＝ＤＡ，１ΑＡ，１−１を計算する。計算後にＤＡ，１は消す。ｓＡは、ＵＡのみしか知らない任意のストリングである。
【００７９】
ＵＢはｐｉｎであるｓＢからＨｑ（ｓＢ）＝αＢ∈Ｚｑを生成し、σＢ＝ｄＢ−αＢを計算する。計算後にｄＢは消す。ｓＢは、ＵＢのみしか知らない任意のストリングである。
【００８０】
このように、秘密鍵ＤＡ，１を秘匿化された秘密鍵δＡ，１とｐｉｎとに分割し、秘密鍵ｄＢを秘匿化された秘密鍵σＢとｐｉｎとに分割する。そして、後述のように、秘匿化された秘密鍵δＡ，１，σＢとｐｉｎの２要素によって認証鍵交換する。このようにすることで、秘匿化された秘密鍵かｐｉｎのどちらか片方が漏洩しても安全であり、秘匿化された秘密鍵をブラウザ等の利便性の高い領域などに保管することができる。よって、秘密鍵管理の利便性が向上する。
【００８１】
ＵＡは短期秘密鍵ｘＡ∈Ｚｑをランダムに選び、短期公開鍵のペアＸＡ，１＝ｇ１ｘＡとＸＡ，２＝ｇ２ｘＡを生成する。同様に、ＵＢは短期秘密鍵ｘＢ∈Ｚｑをランダムに選び、短期公開鍵のペアＸＢ，１＝ｇ１ｘＢとＸＢ，２＝ｇ２ｘＢを生成する。
【００８２】
（鍵交換）
（１）．ＵＡはＵＢへ（ＩＤＡ，ＸＡ，１，ＸＡ，２）を送信する。
（２）．ＵＢはＵＡへ（ＤＢ，１，ＤＢ，２，ＸＢ，１，ＸＢ，２）と送信する。
（３）．ＵＡはｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるかとｅ（ＤＢ，１，ｇ２）＝ｅ（ｇ１，ＤＢ，２）確認し、ＵＢはｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であるか確認する。正しくなければ、鍵生成からやり直す。
【００８３】
（４）．ＵＡは以下の（ａ）〜（ｄ）を行う。
（ａ）Ｓｅｒにｅ（Ｚ１，ＤＢ，２）およびｅ（Ｚ１，ＸＢ，２）の計算を依頼する。依頼する関数は
【数１９】
2017208773.tif 000021
であり、群の準同型であり、ｅ（Ｚ１，ｇ２）＝ｇＴｚとなり、適当な一点を計算できるので、自己訂正の代理計算が可能である。
（ｂ）ｉ＝１，．．．，ｍについて
【数２０】
2017208773.tif 000022
を計算する。
（ｃ）σｍ＋１＝ＸＢ，１ｘＡ，σｍ＋２＝ＸＢ，２ｘＡを計算する。
（ｄ）σｍ＋３＝ＤＢ，１ｘＡ，σｍ＋４＝ＤＢ，２ｘＡを計算する。
（ｅ）共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＤＢ，１，ＤＢ，２）を計算する。
【００８４】
（５）．ＵＢは以下の（ａ）〜（ｄ）を行う。
（ａ）Ｓｅｒにｅ（ＱＡ，１，Ｚ２）およびｅ（ＸＡ，２，Ｚ２）の計算を依頼する。依頼する関数は
【数２１】
2017208773.tif 000023
であり、群の準同型であり、ｅ（ｇ１，Ｚ２）＝ｇＴｚとなり、適当な一点を計算できるので、自己訂正の代理計算が可能である。
（ｂ）ｉ＝１，．．．，ｍについて
【数２２】
2017208773.tif 000024
を計算する。
（ｃ）σｍ＋１＝ＸＡ，１ｘＢ，σｍ＋２＝ＸＡ，２ｘＢを計算する。
（ｄ）σｍ＋３＝ＸＡ，１σＢＸＡ，１αＢ，σｍ＋４＝ＸＡ，２σＢＸＡ，２αＢを計算する。
（ｅ）共有鍵Ｋ＝Ｈ（σ１，．．．，σｍ，σｍ＋１，σｍ＋２，σｍ＋３，σｍ＋４，ＩＤＡ，ＩＤＢ，ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２，ＳＢ，１，ＳＢ，２）
を計算する。
【００８５】
（６）．ＵＡとＵＢが計算した値σｉは
（ａ）ｉ＝１，．．．，ｍについてσｉ＝ｇＴｚｐｉ（ｑＡ，１，ｓＢ，ｘＡ，ｘＢ），（ＱＡ，１＝ｇ１ｑＡ，１）
（ｂ）σｍ＋１＝ｇ１ｘＡｘＢ，σｍ＋２＝ｇ２ｘＡｘＢ
（ｃ）σｍ＋３＝ｇ１ｘＡｄＢ，σｍ＋４＝ｇ２ｘＡｄＢ
となるので、両者で計算した共有鍵Ｋは一致する。
【００８６】
［プログラム及び記録媒体］
共有鍵共有システム及び方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００８７】
また、第一クライアント装置、第二クライアント装置、マスタ公開鍵保管サーバにおける各処理をコンピュータによって実現する場合、第一クライアント装置、第二クライアント装置、マスタ公開鍵保管サーバが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、その各処理がコンピュータ上で実現される。
【００８８】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００８９】
また、各処理手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【００９０】
［変形例］
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【図１】
2017208773.tif 000037
【図２】
2017208773.tif 000038