(57)【要約】  本発明は、鍵交換を行う複数の鍵交換装置の中で鍵交換を取りまとめる鍵交換装置であって、複数の鍵交換装置間で共有する共有鍵の生成に用いられる共有鍵種データを生成する共有鍵種データ生成部（１２）と、鍵交換相手の証明に用いられる共有鍵証拠データを生成する共有鍵証拠データ生成部（１３）と、鍵交換相手の鍵交換装置と個別に交換する個別鍵で共有鍵種データを暗号化する共有鍵種データ暗号化部（１４）と、共有鍵証拠データについて署名を生成する共有鍵証拠データ署名部（１５）と、共有鍵種データを用いて共有鍵を生成する共有鍵生成部（１６）と、鍵交換相手の鍵交換装置からの共有鍵証拠データについての署名が正当であるか検証する署名検証部（１７）と、生成された共有鍵を出力する出力部（１８）とを備える。これにより、グループ間でのデータ配布回数の削減し、データを送る相手装置の数を少なくして、多数の装置による迅速な鍵交換を実現することができる。
2009072647.tif 000002
【特許請求の範囲】
【請求項１】
鍵交換を行う複数の鍵交換装置の中で鍵交換を取りまとめる鍵交換装置であって、
公開鍵、秘密鍵及び乱数を含むデータを入力する入力手段と、
前記入力手段により入力された前記乱数を用いて、前記複数の鍵交換装置間で共有する共有鍵の生成に用いられる共有鍵種データを生成する共有鍵種データ生成手段と、
前記共有鍵種データ生成手段により生成された前記共有鍵種データ及び前記入力手段により入力された前記公開鍵を用いて、鍵交換相手の証明に用いられる共有鍵証拠データを生成する共有鍵証拠データ生成手段と、
前記共有鍵種データ生成手段により生成された前記共有鍵種データを、鍵交換相手の鍵交換装置と個別に交換する個別鍵で暗号化する共有鍵種データ暗号化手段と、
前記共有鍵証拠データ生成手段により生成された前記共有鍵証拠データについて、前記入力手段により入力された前記秘密鍵を用いて署名を生成する共有鍵証拠データ署名手段と、
前記共有鍵種データ生成手段により生成された前記共有鍵種データ及び前記入力手段により入力された前記公開鍵を用いて前記共有鍵を生成する共有鍵生成手段と、
前記鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証手段と、
前記署名検証手段により前記共有鍵証拠データについての署名が正当であると検証されたときに、前記共有鍵生成手段により生成された前記共有鍵を出力する出力手段と
を備えることを特徴とする鍵交換装置。
【請求項２】
自装置で生成され前記個別鍵の生成に用いられる個別鍵元データ及び前記共有鍵証拠データ生成手段により生成された前記共有鍵証拠データを含むデータについて、鍵交換相手の鍵交換装置への１回目の送信を行うファーストラウンドメッセージ送信手段と、
前記鍵交換相手の鍵交換装置が生成した個別鍵元データを含むデータについて、該鍵交換装置からの１回目の受信を行うファーストラウンドメッセージ受信手段と、
前記共有鍵種データ暗号化手段により暗号化された前記共有鍵種データ及び前記共有鍵証拠データ署名手段により生成された前記共有鍵証拠データの署名を含むデータについて、前記鍵交換相手の鍵交換装置への２回目の送信を行うセカンドラウンドメッセージ送信手段と、
前記鍵交換相手の鍵交換装置が生成した共有鍵証拠データの署名を含むデータについて、該鍵交換装置からの２回目の受信を行うセカンドラウンドメッセージ受信手段と
をさらに備えることを特徴とする請求項１に記載の鍵交換装置。
【請求項３】
前記鍵交換相手の鍵交換装置が生成した個別鍵元データを用いて、該鍵交換装置に対応する前記個別鍵を生成する個別鍵生成手段をさらに備えることを特徴とする請求項１に記載の鍵交換装置。
【請求項４】
前記共有鍵種データ生成手段により前記共有鍵種データが生成され、前記共有鍵証拠データ生成手段により前記共有鍵証拠データが生成されたときに、前記共有鍵種データ及び前記共有鍵証拠データを含むデータを保存するとともに、前記共有鍵生成手段により前記共有鍵が生成されたときに、前記共有鍵及び前記共有鍵証拠データを含むデータに更新して保存する鍵交換内部状態保存手段をさらに備えることを特徴とする請求項１に記載の鍵交換装置。
【請求項５】
前記鍵交換相手の鍵交換装置に対応する個別鍵は、ユニバーサルハッシュ関数を用いて生成されることを特徴とする請求項１に記載の鍵交換装置。
【請求項６】
前記複数の鍵交換装置間で共有する共有鍵は、衝突困難疑似乱数関数を用いて生成されることを特徴とする請求項１に記載の鍵交換装置。
【請求項７】
鍵交換を行う複数の鍵交換装置の中で鍵交換を取りまとめる鍵交換装置以外の鍵交換装置であって、
公開鍵及び秘密鍵を含むデータを入力する入力手段と、
前記鍵交換を取りまとめる鍵交換装置から取得した個別鍵元データを用いて、該鍵交換装置と個別に交換する鍵で自装置に対応する個別鍵を生成する個別鍵生成手段と、
前記鍵交換を取りまとめる鍵交換装置から取得した鍵交換相手の証明に用いられる共有鍵証拠データについて、前記入力手段により入力された前記秘密鍵を用いて署名を生成する共有鍵証拠データ署名手段と、
前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵種データの暗号文を、前記個別鍵生成手段により生成された前記個別鍵を用いて復号化する共有鍵種データ復号化手段と、
前記共有鍵種データ復号化手段による復号化で得られた前記共有鍵種データ及び前記入力手段により入力された前記公開鍵を用いて、検証用の共有鍵証拠データを生成する検証用共有鍵証拠データ生成手段と、
前記検証用共有鍵証拠データ生成手段により生成された前記検証用共有鍵証拠データが、前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵証拠データと等しいか検証する共有鍵証拠データ検証手段と、
前記共有鍵種データ復号化手段による復号化で得られた前記共有鍵種データ及び前記入力手段により入力された前記公開鍵を用いて、前記複数の鍵交換装置間で共有する共有鍵を生成する共有鍵生成手段と、
鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証手段と、
前記署名検証手段により前記共有鍵証拠データについての署名が正当であると検証されたときに、前記共有鍵生成手段により生成された前記共有鍵を出力する出力手段と
を備えることを特徴とする鍵交換装置。
【請求項８】
前記鍵交換を取りまとめる鍵交換装置において個別鍵の生成に用いられる個別鍵元データを含むデータについて前記鍵交換を取りまとめる鍵交換装置への送信を行うファーストラウンドメッセージ送信手段と、
前記鍵交換を取りまとめる鍵交換装置で生成された前記個別鍵元データ及び前記共有鍵証拠データを含むデータについて該鍵交換装置からの受信を行うファーストラウンドメッセージ受信手段と、
前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵証拠データ及び前記共有鍵証拠データ署名手段により生成された前記共有鍵証拠データの署名を含むデータについて、前記鍵交換を取りまとめる鍵交換装置を含む鍵交換相手の鍵交換装置への送信を行うセカンドラウンドメッセージ送信手段と、
前記鍵交換相手の鍵交換装置が生成した共有鍵証拠データの署名及び共有鍵種データの暗号文を含むデータについて、該鍵交換装置からの受信を行うセカンドラウンドメッセージ受信手段と
をさらに備えることを特徴とする請求項７に記載の鍵交換装置。
【請求項９】
前記個別鍵元データを生成し、該個別鍵元データについて署名を生成する個別鍵元データ生成手段をさらに備えることを特徴とする請求項７に記載の鍵交換装置。
【請求項１０】
前記個別鍵元データ生成手段により前記個別鍵元データが生成されたときに、前記個別鍵元データの生成に用いられた鍵交換内部データを含むデータを保存するとともに、前記個別鍵生成手段により前記個別鍵が生成されたときに、前記個別鍵及び前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵証拠データを含むデータに更新して保存する鍵交換内部状態保存手段をさらに備えることを特徴とする請求項７に記載の鍵交換装置。
【請求項１１】
前記自装置に対応する個別鍵は、ユニバーサルハッシュ関数を用いて生成されることを特徴とする請求項７に記載の鍵交換装置。
【請求項１２】
前記複数の鍵交換装置間で共有する共有鍵は、衝突困難疑似乱数関数を用いて生成されることを特徴とする請求項７に記載の鍵交換装置。
【請求項１３】
複数の鍵交換装置間で鍵交換を行う鍵交換システムであって、
前記複数の鍵交換装置は、鍵交換を取りまとめる鍵交換装置と、それ以外の鍵交換装置とに分類され、
前記鍵交換を取りまとめる鍵交換装置は、
公開鍵、秘密鍵及び乱数を含むデータを入力する第１入力手段と、
前記第１入力手段により入力された前記乱数を用いて、前記複数の鍵交換装置間で共有する共有鍵の生成に用いられる共有鍵種データを生成する共有鍵種データ生成手段と、
前記共有鍵種データ生成手段により生成された前記共有鍵種データ及び前記第１入力手段により入力された前記公開鍵を用いて、鍵交換相手の証明に用いられる共有鍵証拠データを生成する共有鍵証拠データ生成手段と、
前記共有鍵種データ生成手段により生成された前記共有鍵種データを、鍵交換相手の鍵交換装置と個別に交換する個別鍵で暗号化する共有鍵種データ暗号化手段と、
前記共有鍵証拠データ生成手段により生成された前記共有鍵証拠データについて、前記第１入力手段により入力された前記秘密鍵を用いて署名を生成する共有鍵証拠データ署名手段と、
前記共有鍵種データ生成手段により生成された前記共有鍵種データ及び前記第１入力手段により入力された前記公開鍵を用いて前記共有鍵を生成する第１共有鍵生成手段と、
前記鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する第１署名検証手段と、
前記第１署名検証手段により前記共有鍵証拠データについての署名が正当であると検証されたときに、前記第１共有鍵生成手段により生成された前記共有鍵を出力する第１出力手段と、
を有し、
前記それ以外の鍵交換装置は、
公開鍵及び秘密鍵を含むデータを入力する第２入力手段と、
前記鍵交換を取りまとめる鍵交換装置から取得した個別鍵元データを用いて、該鍵交換装置と個別に交換する鍵で自装置に対応する個別鍵を生成する個別鍵生成手段と、
前記鍵交換を取りまとめる鍵交換装置から取得した鍵交換相手の証明に用いられる共有鍵証拠データについて、前記第２入力手段により入力された前記秘密鍵を用いて署名を生成する共有鍵証拠データ署名手段と、
前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵種データの暗号文を、前記個別鍵生成手段により生成された前記個別鍵を用いて復号化する共有鍵種データ復号化手段と、
前記共有鍵種データ復号化手段による復号化で得られた前記共有鍵種データ及び前記第２入力手段により入力された前記公開鍵を用いて、検証用の共有鍵証拠データを生成する検証用共有鍵証拠データ生成手段と、
前記検証用共有鍵証拠データ生成手段により生成された前記検証用共有鍵証拠データが、前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵証拠データと等しいか検証する共有鍵証拠データ検証手段と、
前記共有鍵種データ復号化手段による復号化で得られた前記共有鍵種データ及び前記第２入力手段により入力された前記公開鍵を用いて、前記複数の鍵交換装置間で共有する共有鍵を生成する第２共有鍵生成手段と、
鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する第２署名検証手段と、
前記第２署名検証手段により前記共有鍵証拠データについての署名が正当であると検証されたときに、前記第２共有鍵生成手段により生成された前記共有鍵を出力する第２出力手段と
を備えることを特徴とする鍵交換システム。
【請求項１４】
前記鍵交換を取りまとめる鍵交換装置は、
自装置で生成され前記個別鍵の生成に用いられる個別鍵元データ及び前記共有鍵証拠データ生成手段により生成された前記共有鍵証拠データを含むデータについて、鍵交換相手の鍵交換装置への１回目の送信を行う第１ファーストラウンドメッセージ送信手段と、
前記鍵交換相手の鍵交換装置が生成した個別鍵元データを含むデータについて、該鍵交換装置からの１回目の受信を行う第１ファーストラウンドメッセージ受信手段と、
前記共有鍵種データ暗号化手段により暗号化された前記共有鍵種データ及び前記共有鍵証拠データ署名手段により生成された前記共有鍵証拠データの署名を含むデータについて、前記鍵交換相手の鍵交換装置への２回目の送信を行う第１セカンドラウンドメッセージ送信手段と、
前記鍵交換相手の鍵交換装置が生成した共有鍵証拠データの署名を含むデータについて、該鍵交換装置からの２回目の受信を行う第１セカンドラウンドメッセージ受信手段と
をさらに備えることを特徴とする請求項１３に記載の鍵交換システム。
【請求項１５】
前記それ以外の鍵交換装置は、
前記鍵交換を取りまとめる鍵交換装置において個別鍵の生成に用いられる個別鍵元データを含むデータについて前記鍵交換を取りまとめる鍵交換装置への送信を行う第２ファーストラウンドメッセージ送信手段と、
前記鍵交換を取りまとめる鍵交換装置で生成された前記個別鍵元データ及び前記共有鍵証拠データを含むデータについて該鍵交換装置からの受信を行う第２ファーストラウンドメッセージ受信手段と、
前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵証拠データ及び前記共有鍵証拠データ署名手段により生成された前記共有鍵証拠データの署名を含むデータについて、前記鍵交換を取りまとめる鍵交換装置を含む鍵交換相手の鍵交換装置への送信を行う第２セカンドラウンドメッセージ送信手段と、
前記鍵交換相手の鍵交換装置が生成した共有鍵証拠データの署名及び共有鍵種データの暗号文を含むデータについて、該鍵交換装置からの受信を行う第２セカンドラウンドメッセージ受信手段と
をさらに備えることを特徴とする請求項１３に記載の鍵交換システム。
【請求項１６】
鍵交換を取りまとめる鍵交換装置及びそれ以外の鍵交換装置からなる複数の鍵交換装置間で行われる鍵交換方法であって、
前記鍵交換を取りまとめる鍵交換装置において、
公開鍵、秘密鍵及び乱数を含むデータを入力する入力ステップと、
前記入力ステップにより入力された前記乱数を用いて、前記複数の鍵交換装置間で共有する共有鍵の生成に用いられる共有鍵種データを生成する共有鍵種データ生成ステップと、
前記共有鍵種データ生成ステップにより生成された前記共有鍵種データ及び前記入力ステップにより入力された前記公開鍵を用いて、鍵交換相手の証明に用いられる共有鍵証拠データを生成する共有鍵証拠データ生成ステップと、
前記共有鍵種データ生成ステップにより生成された前記共有鍵種データを、鍵交換相手の鍵交換装置と個別に交換する個別鍵で暗号化する共有鍵種データ暗号化ステップと、
前記共有鍵証拠データ生成ステップにより生成された前記共有鍵証拠データについて、前記入力ステップにより入力された前記秘密鍵を用いて署名を生成する共有鍵証拠データ署名ステップと、
前記共有鍵種データ生成ステップにより生成された前記共有鍵種データ及び前記入力ステップにより入力された前記公開鍵を用いて前記共有鍵を生成する共有鍵生成ステップと、
前記鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証ステップと、
前記署名検証ステップにより前記共有鍵証拠データについての署名が正当であると検証されたときに、前記共有鍵生成ステップにより生成された前記共有鍵を出力する出力ステップと
を備えることを特徴とする鍵交換方法。
【請求項１７】
自装置で生成され前記個別鍵の生成に用いられる個別鍵元データ及び前記共有鍵証拠データ生成ステップにより生成された前記共有鍵証拠データを含むデータについて、鍵交換相手の鍵交換装置への１回目の送信を行うファーストラウンドメッセージ送信ステップと、
前記鍵交換相手の鍵交換装置が生成した個別鍵元データを含むデータについて、該鍵交換装置からの１回目の受信を行うファーストラウンドメッセージ受信ステップと、
前記共有鍵種データ暗号化ステップにより暗号化された前記共有鍵種データ及び前記共有鍵証拠データ署名ステップにより生成された前記共有鍵証拠データの署名を含むデータについて、前記鍵交換相手の鍵交換装置への２回目の送信を行うセカンドラウンドメッセージ送信ステップと、
前記鍵交換相手の鍵交換装置が生成した共有鍵証拠データの署名を含むデータについて、該鍵交換装置からの２回目の受信を行うセカンドラウンドメッセージ受信ステップと
をさらに備えることを特徴とする請求項１６に記載の鍵交換方法。
【請求項１８】
鍵交換を取りまとめる鍵交換装置及びそれ以外の鍵交換装置からなる複数の鍵交換装置間で行われる鍵交換方法であって、
前記それ以外の鍵交換装置において、
公開鍵及び秘密鍵を含むデータを入力する入力ステップと、
前記鍵交換を取りまとめる鍵交換装置から取得した個別鍵元データを用いて、該鍵交換装置と個別に交換する鍵で自装置に対応する個別鍵を生成する個別鍵生成ステップと、
前記鍵交換を取りまとめる鍵交換装置から取得した鍵交換相手の証明に用いられる共有鍵証拠データについて、前記入力ステップにより入力された前記秘密鍵を用いて署名を生成する共有鍵証拠データ署名ステップと、
前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵種データの暗号文を、前記個別鍵生成ステップにより生成された前記個別鍵を用いて復号化する共有鍵種データ復号化ステップと、
前記共有鍵種データ復号化ステップによる復号化で得られた前記共有鍵種データ及び前記入力ステップにより入力された前記公開鍵を用いて、検証用の共有鍵証拠データを生成する検証用共有鍵証拠データ生成ステップと、
前記検証用共有鍵証拠データ生成ステップにより生成された前記検証用共有鍵証拠データが、前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵証拠データと等しいか検証する共有鍵証拠データ検証ステップと、
前記共有鍵種データ復号化ステップによる復号化で得られた前記共有鍵種データ及び前記入力ステップにより入力された前記公開鍵を用いて、前記複数の鍵交換装置間で共有する共有鍵を生成する共有鍵生成ステップと、
鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証ステップと、
前記署名検証ステップにより前記共有鍵証拠データについての署名が正当であると検証されたときに、前記共有鍵生成ステップにより生成された前記共有鍵を出力する出力ステップと
を備えることを特徴とする鍵交換方法。
【請求項１９】
前記鍵交換を取りまとめる鍵交換装置において個別鍵の生成に用いられる個別鍵元データを含むデータについて前記鍵交換を取りまとめる鍵交換装置への送信を行うファーストラウンドメッセージ送信ステップと、
前記鍵交換を取りまとめる鍵交換装置で生成された前記個別鍵元データ及び前記共有鍵証拠データを含むデータについて該鍵交換装置からの受信を行うファーストラウンドメッセージ受信ステップと、
前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵証拠データ及び前記共有鍵証拠データ署名ステップにより生成された前記共有鍵証拠データの署名を含むデータについて、前記鍵交換を取りまとめる鍵交換装置を含む鍵交換相手の鍵交換装置への送信を行うセカンドラウンドメッセージ送信ステップと、
前記鍵交換相手の鍵交換装置が生成した共有鍵証拠データの署名及び共有鍵種データの暗号文を含むデータについて、該鍵交換装置からの受信を行うセカンドラウンドメッセージ受信ステップと
をさらに備えることを特徴とする請求項１８に記載の鍵交換方法。
【請求項２０】
鍵交換を取りまとめる鍵交換装置及びそれ以外の鍵交換装置からなる複数の鍵交換装置間で鍵交換を行うためのプログラムであって、
前記鍵交換を取りまとめる鍵交換装置に、
公開鍵、秘密鍵及び乱数を含むデータを入力する入力機能と、
前記入力機能により入力された前記乱数を用いて、前記複数の鍵交換装置間で共有する共有鍵の生成に用いられる共有鍵種データを生成する共有鍵種データ生成機能と、
前記共有鍵種データ生成機能により生成された前記共有鍵種データ及び前記入力機能により入力された前記公開鍵を用いて、鍵交換相手の証明に用いられる共有鍵証拠データを生成する共有鍵証拠データ生成機能と、
前記共有鍵種データ生成機能により生成された前記共有鍵種データを、鍵交換相手の鍵交換装置と個別に交換する個別鍵で暗号化する共有鍵種データ暗号化機能と、
前記共有鍵証拠データ生成機能により生成された前記共有鍵証拠データについて、前記入力機能により入力された前記秘密鍵を用いて署名を生成する共有鍵証拠データ署名機能と、
前記共有鍵種データ生成機能により生成された前記共有鍵種データ及び前記入力機能により入力された前記公開鍵を用いて前記共有鍵を生成する共有鍵生成機能と、
前記鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証機能と、
前記署名検証機能により前記共有鍵証拠データについての署名が正当であると検証されたときに、前記共有鍵生成機能により生成された前記共有鍵を出力する出力機能と、
を実現させることを特徴とするプログラム。
【請求項２１】
前記鍵交換を取りまとめる鍵交換装置に、
自装置で生成され前記個別鍵の生成に用いられる個別鍵元データ及び前記共有鍵証拠データ生成機能により生成された前記共有鍵証拠データを含むデータについて、鍵交換相手の鍵交換装置への１回目の送信を行うファーストラウンドメッセージ送信機能と、
前記鍵交換相手の鍵交換装置が生成した個別鍵元データを含むデータについて、該鍵交換装置からの１回目の受信を行うファーストラウンドメッセージ受信機能と、
前記共有鍵種データ暗号化機能により暗号化された前記共有鍵種データ及び前記共有鍵証拠データ署名機能により生成された前記共有鍵証拠データの署名を含むデータについて、前記鍵交換相手の鍵交換装置への２回目の送信を行うセカンドラウンドメッセージ送信機能と、
前記鍵交換相手の鍵交換装置が生成した共有鍵証拠データの署名を含むデータについて、該鍵交換装置からの２回目の受信を行うセカンドラウンドメッセージ受信機能と、
を実現させることを特徴とする請求項２０に記載のプログラム。
【請求項２２】
鍵交換を取りまとめる鍵交換装置及びそれ以外の鍵交換装置からなる複数の鍵交換装置間で鍵交換を行うためのプログラムであって、
前記それ以外の鍵交換装置に、
公開鍵及び秘密鍵を含むデータを入力する入力機能と、
前記鍵交換を取りまとめる鍵交換装置から取得した個別鍵元データを用いて、該鍵交換装置と個別に交換する鍵で自装置に対応する個別鍵を生成する個別鍵生成機能と、
前記鍵交換を取りまとめる鍵交換装置から取得した鍵交換相手の証明に用いられる共有鍵証拠データについて、前記入力機能により入力された前記秘密鍵を用いて署名を生成する共有鍵証拠データ署名機能と、
前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵種データの暗号文を、前記個別鍵生成機能により生成された前記個別鍵を用いて復号化する共有鍵種データ復号化機能と、
前記共有鍵種データ復号化機能による復号化で得られた前記共有鍵種データ及び前記入力機能により入力された前記公開鍵を用いて、検証用の共有鍵証拠データを生成する検証用共有鍵証拠データ生成機能と、
前記検証用共有鍵証拠データ生成機能により生成された前記検証用共有鍵証拠データが、前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵証拠データと等しいか検証する共有鍵証拠データ検証機能と、
前記共有鍵種データ復号化機能による復号化で得られた前記共有鍵種データ及び前記入力機能により入力された前記公開鍵を用いて、前記複数の鍵交換装置間で共有する共有鍵を生成する共有鍵生成機能と、
鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証機能と、
前記署名検証機能により前記共有鍵証拠データについての署名が正当であると検証されたときに、前記共有鍵生成機能により生成された前記共有鍵を出力する出力機能と、
を実現させることを特徴とするプログラム。
【請求項２３】
前記それ以外の鍵交換装置に、
前記鍵交換を取りまとめる鍵交換装置において個別鍵の生成に用いられる個別鍵元データを含むデータについて前記鍵交換を取りまとめる鍵交換装置への送信を行うファーストラウンドメッセージ送信機能と、
前記鍵交換を取りまとめる鍵交換装置で生成された前記個別鍵元データ及び前記共有鍵証拠データを含むデータについて該鍵交換装置からの受信を行うファーストラウンドメッセージ受信機能と、
前記鍵交換を取りまとめる鍵交換装置から取得した前記共有鍵証拠データ及び前記共有鍵証拠データ署名機能により生成された前記共有鍵証拠データの署名を含むデータについて、前記鍵交換を取りまとめる鍵交換装置を含む鍵交換相手の鍵交換装置への送信を行うセカンドラウンドメッセージ送信機能と、
前記鍵交換相手の鍵交換装置が生成した共有鍵証拠データの署名及び共有鍵種データの暗号文を含むデータについて、該鍵交換装置からの受信を行うセカンドラウンドメッセージ受信機能と、
を実現させることを特徴とする請求項２２に記載のプログラム。
【請求項２４】
請求項２０から２３のいずれか１項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の鍵交換装置間で行われるグループ鍵交換に好ましく適用される鍵交換装置及び鍵交換方法に関する。
【背景技術】
【０００２】
近年、情報通信技術の革新によりコンピュータの普及が拡大され、コンピュータ通信網を通じた情報の交換が盛んに行われるようになった。これらコンピュータが通信でやりとりする情報には個人情報等のセキュリティを必要とするものが多く含まれ、このような情報に対するセキュリティを確保するための技術の１つとして、暗号通信技術が用いられている。暗号通信技術は、通信データに対する秘匿性確保、データ完全性保証、通信相手の認証等を行うことにより、第三者による通信内容の盗聴、改ざん、またなりすましによる不正アクセス等を防ぐ技術である。そして、このような暗号通信技術を活用することにより、複数のユーザが形成したグループで暗号鍵を共有し、グループに所属するメンバだけが復号できるようにして暗号化された情報を交換することを可能としている。【０００３】
例えば文献１（特開２００７−１２９７６４）では、サーバと通信することなく、複数のユーザの計算機間でグループ暗号通信を行えるようにするグループ暗号通信方法が開示されている。当該グループ暗号通信方法では、計算機１−Ａ、１−Ｂがグループ暗号通信を行っているとき、計算機１−Ｃがグループ加入要求を計算機１−Ａに発信すると、計算機１−Ａ〜１−Ｃ間で交換鍵が交換される。各計算機１−Ａ、１−Ｂ、１−Ｃは、受信した交換鍵に基づいてグループ秘密鍵を生成する。以後、このグループ秘密鍵を使用してグループ暗号通信が行われる。Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ型鍵交換方式に従った場合、計算機１−Ａ、１−Ｃの交換鍵α、Ｚは、ｇａ  ｍｏｄ  ｐ、ｇｚ  ｍｏｄ  ｐとなり、計算機１−Ａ、１−Ｃが計算するグループ秘密鍵は、Ｚａ  ｍｏｄ  ｐ、αｚ  ｍｏｄ  ｐとなり、同一値ｇａｚ  ｍｏｄ  ｐとなる。【０００４】
さらに、上述した暗号鍵のグループ間共有、いわゆるグループ鍵交換の別の例として、文献２（Ｊｏｎａｔｈａｎ  Ｋａｔｚ，  Ｊｉ  Ｓｕｎ  Ｓｈｉｎ，  “Ｍｏｄｅｌｉｎｇ  Ｉｎｓｉｄｅｒ  Ａｔｔａｃｋｓ  ｏｎ  Ｇｒｏｕｐ  Ｋｅｙ−Ｅｘｃｈａｎｇｅ  Ｐｒｏｔｏｃｏｌｓ”，  ＡＣＭ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｅｃｕｒｉｔｙ，  ２００５，  Ｐａｇｅ（ｓ）：１８０−１８９）に示された方法について図６を参照して説明する。図６は、文献２による鍵交換を行う鍵交換装置の構成を示した図である。はじめに記法を示す。ｐを素数、ＧTを位数ｑの巡回群とする。また、鍵を交換する装置（以下、鍵交換装置という）の数をｎとし、それぞれの鍵交換装置にｉで番号を振る。そして、鍵交換装置ｉを表す識別子をＵ［ｉ］とする。ｇはＧTの生成子とする。また、ｖ、ｗを無作為に選ばれた整数とする。また、Ｆ、Ｆ’を擬似乱数生成装置とする。【０００５】
鍵交換装置の説明を行う。鍵交換装置５０は、入力装置５１、貢献乱数生成装置５２、貢献データ生成装置５３、補助データ生成装置５４、一時鍵生成装置５５、検証データ生成装置５６、検証データ検証装置５７、出力装置５８、通信装置５９を備える。また、鍵交換装置５０は、通信装置５９により通信回線９０を介して、鍵交換を行うグループの他の鍵交換装置と通信を行う。【０００６】
まず、鍵交換装置５０のうちの各装置ｉには、他の装置ｊ（ｊ＝｛１，２，…，ｎ｝、ただしｉを除く）に対応する識別子Ｕ［ｊ］（相手識別子集合６１）と公開鍵ｐｋ［ｊ］（相手公開鍵集合６２）が入力される。また、自身の識別子Ｕ［ｉ］（識別子６３）と公開鍵ｐｋ［ｉ］（公開鍵６４）、またｐｋ［ｉ］に対応する秘密鍵ｓｋ［ｉ］（秘密鍵６５）も入力される。さらに、これから生成する鍵に固有のセッション番号ｓｉｄ（セッション番号６６）が入力される。【０００７】
そして、鍵交換装置ｉは、貢献乱数生成装置５２が乱数６７を用いてｒ［ｉ］∈Ｚ／ｑＺ をランダムに生成する。また、貢献乱数生成装置５２は、ｒ［ｉ］を用いてｙ［ｉ］＝ｇr[i]（貢献乱数６８）を生成し、さらに貢献データ生成装置５３は、（ｓｉｄ，１，Ｕ［ｉ］，ｙ［ｉ］）に対する署名ｓｉｇ（ｉ，１）（貢献データ６９）を生成する。そして、鍵交換装置ｉは、装置ｉ以外のｎ−１個の鍵交換装置ｊに対して、第１ＲＭ（ラウンドメッセージ）７０として、（ｓｉｄ，１，Ｕ［ｉ］，ｙ［ｉ］，ｓｉｇ（ｉ，１））を送付する。また、鍵交換装置ｉは、装置ｊが第１ＲＭ集合７１としてｙ［ｉ］を送付してくるのを待つ。全てのｙ［ｉ］が揃ったならば、装置ｉは各署名を検証する。【０００８】
次に、鍵交換装置ｉは、補助データ生成装置５４が全てのｙ［ｉ］（貢献データ集合７２）を用いてｘ［ｉ］＝（ｙ［ｉ＋１］／ｙ［ｉ−１］）r[i]（補助データ７３）を生成し、（ｓｉｄ，２，Ｕ［ｉ］，ｘ［ｉ］）に対する署名ｓｉｇ（ｉ，２）を生成する。そして、鍵交換装置ｉは、装置ｉ以外のｎ−１個の鍵交換装置ｊに対して、第２ＲＭ７４として、（ｓｉｄ，２，Ｕ［ｉ］，ｘ［ｉ］，ｓｉｇ（ｉ，２））を送付する。また、鍵交換装置ｉは、装置ｊが第２ＲＭ集合７５としてｘ［ｊ］を送付してくるのを待つ。全てのｘ［ｊ］が揃ったならば、装置ｉは各署名を検証する。【０００９】
次に、鍵交換装置ｉは、一時鍵生成装置５５が全てのｘ［ｊ］（補助データ集合７６）を用いてｋ［ｉ］＝（ｙ［ｉ−１］r[i]）nｘ［ｉ＋１］nｘ［ｉ＋２］n-1…ｘ［ｎ］i+1ｘ［１］i…ｘ［ｉ−１］2ｘ［ｉ］（一時鍵７７）を生成する。次いで、検証データ生成装置５６がａｃｋ［ｉ］＝Ｆ（ｋ［ｉ］，ｖ）（検証データ７８）を生成し、ｓｋ［ｉ］＝Ｆ’（ｋ［ｉ］，ｗ）（仮の共有鍵）を生成する。そして、検証データ生成装置５６は（ｓｉｄ［ｉ］，３，Ｕ［ｉ］，ａｃｋ［ｉ］）に対する署名ｓｉｇ（ｉ，３）を生成する。そして、鍵交換装置ｉは、装置ｉ以外のｎ−１個の鍵交換装置ｊに対して、第３ＲＭ７９として、（ｓｉｄ，３，Ｕ［ｉ］，ａｃｋ［ｉ］，ｓｉｇ（ｉ，３））を送付する。また、鍵交換装置ｉは、装置ｊが第３ＲＭ集合８０としてａｃｋ［ｊ］を送付してくるのを待つ。全てのａｃｋ［ｊ］が揃ったならば、装置ｉａｃｋ［ｊ］＝ａｃｋ［ｉ］を確認し、最終的な共有鍵８２としてｓｋ［ｉ］を出力装置５８より出力する。なお、符号８１は、検証データ集合を示している。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
文献２で開示された方法では、各鍵交換装置が他の全ての装置に対して、３回データを配布する必要があった。そして、この全ての装置に関してこの全体に対する配布が完了しなければ次のステップに移ることができないため、この配布に要する時間は、各データの計算に必要な時間に比べて著しく長くなってしまっていた。よって、複数、特に多数の装置による鍵交換を迅速に行うためには、このようなデータの配布回数を削減する必要があった。また、各データを配付する段階で、各装置が一度にデータを送る相手の装置の数ができるだけ少ないことが重要である。なぜなら、送信相手が多いと多くのメッセージを送らねばならなくなり、効率が悪くなるからである。【００１１】
そこで、本発明は、グループ間でのデータ配布回数の削減するとともに、データを送る相手装置の数を少なくして、多数の装置による迅速な鍵交換を実現する鍵交換装置及び鍵交換方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
かかる目的を達成するために、本発明の第１の鍵交換装置は、鍵交換を行う複数の鍵交換装置の中で鍵交換を取りまとめる鍵交換装置であって、公開鍵、秘密鍵及び乱数を含むデータを入力する入力手段と、入力手段により入力された乱数を用いて、複数の鍵交換装置間で共有する共有鍵の生成に用いられる共有鍵種データを生成する共有鍵種データ生成手段と、共有鍵種データ生成手段により生成された共有鍵種データ及び入力手段により入力された公開鍵を用いて、鍵交換相手の証明に用いられる共有鍵証拠データを生成する共有鍵証拠データ生成手段と、共有鍵種データ生成手段により生成された共有鍵種データを、鍵交換相手の鍵交換装置と個別に交換する個別鍵で暗号化する共有鍵種データ暗号化手段と、共有鍵証拠データ生成手段により生成された共有鍵証拠データについて、入力手段により入力された秘密鍵を用いて署名を生成する共有鍵証拠データ署名手段と、共有鍵種データ生成手段により生成された共有鍵種データ及び入力手段により入力された公開鍵を用いて共有鍵を生成する共有鍵生成手段と、鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証手段と、署名検証手段により共有鍵証拠データについての署名が正当であると検証されたときに、共有鍵生成手段により生成された共有鍵を出力する出力手段と備える。【００１３】
また、本発明の第２の鍵交換装置は、鍵交換を行う複数の鍵交換装置の中で鍵交換を取りまとめる鍵交換装置以外の鍵交換装置であって、公開鍵及び秘密鍵を含むデータを入力する入力手段と、鍵交換を取りまとめる鍵交換装置から取得した個別鍵元データを用いて、該鍵交換装置と個別に交換する鍵で自装置に対応する個別鍵を生成する個別鍵生成手段と、鍵交換を取りまとめる鍵交換装置から取得した鍵交換相手の証明に用いられる共有鍵証拠データについて、入力手段により入力された秘密鍵を用いて署名を生成する共有鍵証拠データ署名手段と、鍵交換を取りまとめる鍵交換装置から取得した共有鍵種データの暗号文を、個別鍵生成手段により生成された個別鍵を用いて復号化する共有鍵種データ復号化手段と、共有鍵種データ復号化手段による復号化で得られた共有鍵種データ及び入力手段により入力された公開鍵を用いて、検証用の共有鍵証拠データを生成する検証用共有鍵証拠データ生成手段と、検証用共有鍵証拠データ生成手段により生成された検証用共有鍵証拠データが、鍵交換を取りまとめる鍵交換装置から取得した共有鍵証拠データと等しいか検証する共有鍵証拠データ検証手段と、共有鍵種データ復号化手段による復号化で得られた共有鍵種データ及び入力手段により入力された公開鍵を用いて、複数の鍵交換装置間で共有する共有鍵を生成する共有鍵生成手段と、鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証手段と、署名検証手段により共有鍵証拠データについての署名が正当であると検証されたときに、共有鍵生成手段により生成された共有鍵を出力する出力手段とを備える。【００１４】
また、本発明の第１の鍵交換システムは、複数の鍵交換装置間で鍵交換を行う鍵交換システムであって、複数の鍵交換装置は、鍵交換を取りまとめる鍵交換装置と、それ以外の鍵交換装置とに分類され、鍵交換を取りまとめる鍵交換装置は、公開鍵、秘密鍵及び乱数を含むデータを入力する第１入力手段と、第１入力手段により入力された乱数を用いて、複数の鍵交換装置間で共有する共有鍵の生成に用いられる共有鍵種データを生成する共有鍵種データ生成手段と、共有鍵種データ生成手段により生成された共有鍵種データ及び第１入力手段により入力された公開鍵を用いて、鍵交換相手の証明に用いられる共有鍵証拠データを生成する共有鍵証拠データ生成手段と、共有鍵種データ生成手段により生成された共有鍵種データを、鍵交換相手の鍵交換装置と個別に交換する個別鍵で暗号化する共有鍵種データ暗号化手段と、共有鍵証拠データ生成手段により生成された共有鍵証拠データについて、第１入力手段により入力された秘密鍵を用いて署名を生成する共有鍵証拠データ署名手段と、共有鍵種データ生成手段により生成された共有鍵種データ及び第１入力手段により入力された公開鍵を用いて共有鍵を生成する第１共有鍵生成手段と、鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する第１署名検証手段と、第１署名検証手段により共有鍵証拠データについての署名が正当であると検証されたときに、第１共有鍵生成手段により生成された共有鍵を出力する第１出力手段と、を有し、それ以外の鍵交換装置は、公開鍵及び秘密鍵を含むデータを入力する第２入力手段と、鍵交換を取りまとめる鍵交換装置から取得した個別鍵元データを用いて、該鍵交換装置と個別に交換する鍵で自装置に対応する個別鍵を生成する個別鍵生成手段と、鍵交換を取りまとめる鍵交換装置から取得した鍵交換相手の証明に用いられる共有鍵証拠データについて、第２入力手段により入力された秘密鍵を用いて署名を生成する共有鍵証拠データ署名手段と、鍵交換を取りまとめる鍵交換装置から取得した共有鍵種データの暗号文を、個別鍵生成手段により生成された個別鍵を用いて復号化する共有鍵種データ復号化手段と、共有鍵種データ復号化手段による復号化で得られた共有鍵種データ及び第２入力手段により入力された公開鍵を用いて、検証用の共有鍵証拠データを生成する検証用共有鍵証拠データ生成手段と、検証用共有鍵証拠データ生成手段により生成された検証用共有鍵証拠データが、鍵交換を取りまとめる鍵交換装置から取得した共有鍵証拠データと等しいか検証する共有鍵証拠データ検証手段と、共有鍵種データ復号化手段による復号化で得られた共有鍵種データ及び第２入力手段により入力された公開鍵を用いて、複数の鍵交換装置間で共有する共有鍵を生成する第２共有鍵生成手段と、鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する第２署名検証手段と、第２署名検証手段により共有鍵証拠データについての署名が正当であると検証されたときに、第２共有鍵生成手段により生成された共有鍵を出力する第２出力手段とを備える。【００１５】
また、本発明の第１の鍵交換方法は、鍵交換を取りまとめる鍵交換装置及びそれ以外の鍵交換装置からなる複数の鍵交換装置間で行われる鍵交換方法であって、鍵交換を取りまとめる鍵交換装置において、公開鍵、秘密鍵及び乱数を含むデータを入力する入力ステップと、入力ステップにより入力された乱数を用いて、複数の鍵交換装置間で共有する共有鍵の生成に用いられる共有鍵種データを生成する共有鍵種データ生成ステップと、共有鍵種データ生成ステップにより生成された共有鍵種データ及び入力ステップにより入力された公開鍵を用いて、鍵交換相手の証明に用いられる共有鍵証拠データを生成する共有鍵証拠データ生成ステップと、共有鍵種データ生成ステップにより生成された共有鍵種データを、鍵交換相手の鍵交換装置と個別に交換する個別鍵で暗号化する共有鍵種データ暗号化ステップと、共有鍵証拠データ生成ステップにより生成された共有鍵証拠データについて、入力ステップにより入力された秘密鍵を用いて署名を生成する共有鍵証拠データ署名ステップと、共有鍵種データ生成ステップにより生成された共有鍵種データ及び入力ステップにより入力された公開鍵を用いて共有鍵を生成する共有鍵生成ステップと、鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証ステップと、署名検証ステップにより共有鍵証拠データについての署名が正当であると検証されたときに、共有鍵生成ステップにより生成された共有鍵を出力する出力ステップとを備える。【００１６】
また、本発明の第２の鍵交換方法は、鍵交換を取りまとめる鍵交換装置及びそれ以外の鍵交換装置からなる複数の鍵交換装置間で行われる鍵交換方法であって、それ以外の鍵交換装置において、公開鍵及び秘密鍵を含むデータを入力する入力ステップと、鍵交換を取りまとめる鍵交換装置から取得した個別鍵元データを用いて、該鍵交換装置と個別に交換する鍵で自装置に対応する個別鍵を生成する個別鍵生成ステップと、鍵交換を取りまとめる鍵交換装置から取得した鍵交換相手の証明に用いられる共有鍵証拠データについて、入力ステップにより入力された秘密鍵を用いて署名を生成する共有鍵証拠データ署名ステップと、鍵交換を取りまとめる鍵交換装置から取得した共有鍵種データの暗号文を、個別鍵生成ステップにより生成された個別鍵を用いて復号化する共有鍵種データ復号化ステップと、共有鍵種データ復号化ステップによる復号化で得られた共有鍵種データ及び入力ステップにより入力された公開鍵を用いて、検証用の共有鍵証拠データを生成する検証用共有鍵証拠データ生成ステップと、検証用共有鍵証拠データ生成ステップにより生成された検証用共有鍵証拠データが、鍵交換を取りまとめる鍵交換装置から取得した共有鍵証拠データと等しいか検証する共有鍵証拠データ検証ステップと、共有鍵種データ復号化ステップによる復号化で得られた共有鍵種データ及び入力ステップにより入力された公開鍵を用いて、複数の鍵交換装置間で共有する共有鍵を生成する共有鍵生成ステップと、鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証ステップと、署名検証ステップにより共有鍵証拠データについての署名が正当であると検証されたときに、共有鍵生成ステップにより生成された共有鍵を出力する出力ステップとを備える。【００１７】
また、本発明の第１のプログラムは、鍵交換を取りまとめる鍵交換装置及びそれ以外の鍵交換装置からなる複数の鍵交換装置間で鍵交換を行うためのプログラムであって、鍵交換を取りまとめる鍵交換装置に、公開鍵、秘密鍵及び乱数を含むデータを入力する入力機能と、入力機能により入力された乱数を用いて、複数の鍵交換装置間で共有する共有鍵の生成に用いられる共有鍵種データを生成する共有鍵種データ生成機能と、共有鍵種データ生成機能により生成された共有鍵種データ及び入力機能により入力された公開鍵を用いて、鍵交換相手の証明に用いられる共有鍵証拠データを生成する共有鍵証拠データ生成機能と、共有鍵種データ生成機能により生成された共有鍵種データを、鍵交換相手の鍵交換装置と個別に交換する個別鍵で暗号化する共有鍵種データ暗号化機能と、共有鍵証拠データ生成機能により生成された共有鍵証拠データについて、入力機能により入力された秘密鍵を用いて署名を生成する共有鍵証拠データ署名機能と、共有鍵種データ生成機能により生成された共有鍵種データ及び入力機能により入力された公開鍵を用いて共有鍵を生成する共有鍵生成機能と、鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証機能と、署名検証機能により共有鍵証拠データについての署名が正当であると検証されたときに、共有鍵生成機能により生成された共有鍵を出力する出力機能とを実現させる。【００１８】
また、本発明の第２のプログラムは、鍵交換を取りまとめる鍵交換装置及びそれ以外の鍵交換装置からなる複数の鍵交換装置間で鍵交換を行うためのプログラムであって、それ以外の鍵交換装置に、公開鍵及び秘密鍵を含むデータを入力する入力機能と、鍵交換を取りまとめる鍵交換装置から取得した個別鍵元データを用いて、該鍵交換装置と個別に交換する鍵で自装置に対応する個別鍵を生成する個別鍵生成機能と、鍵交換を取りまとめる鍵交換装置から取得した鍵交換相手の証明に用いられる共有鍵証拠データについて、入力機能により入力された秘密鍵を用いて署名を生成する共有鍵証拠データ署名機能と、鍵交換を取りまとめる鍵交換装置から取得した共有鍵種データの暗号文を、個別鍵生成機能により生成された個別鍵を用いて復号化する共有鍵種データ復号化機能と、共有鍵種データ復号化機能による復号化で得られた共有鍵種データ及び入力機能により入力された公開鍵を用いて、検証用の共有鍵証拠データを生成する検証用共有鍵証拠データ生成機能と、検証用共有鍵証拠データ生成機能により生成された検証用共有鍵証拠データが、鍵交換を取りまとめる鍵交換装置から取得した共有鍵証拠データと等しいか検証する共有鍵証拠データ検証機能と、共有鍵種データ復号化機能による復号化で得られた共有鍵種データ及び入力機能により入力された公開鍵を用いて、複数の鍵交換装置間で共有する共有鍵を生成する共有鍵生成機能と、鍵交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるか検証する署名検証機能と、署名検証機能により共有鍵証拠データについての署名が正当であると検証されたときに、共有鍵生成機能により生成された共有鍵を出力する出力機能と、を実現させる。【００１９】
また、本発明の第１の記録媒体は、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００２０】
本発明によれば、グループ間でのデータ配布回数の削減するとともに、データを送る相手装置の数を少なくして、多数の装置による迅速な鍵交換を実現する鍵交換装置、鍵交換システム等が提供される。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の実施形態に係る鍵交換装置の構成を示した図である。
【図２】図２は、本発明の実施形態に係る鍵交換装置の構成を示した図である。
【図３】図３は、本実施形態に係る鍵交換システムを構成する鍵交換装置の構成を示した図である。
【図４】図４は、本実施形態に係る鍵交換システムを構成する鍵交換装置の構成を示した図である。
【図５Ａ−５Ｃ】図５Ａ−図５Ｃは、本実施形態における鍵交換処理の流れを示したシーケンスチャートである。
【図６】図６は、本発明と関連する鍵交換装置の構成を示した図である。
【発明を実施するための最良の形態】
【００２２】
本発明が適用される鍵交換装置１０は、複数の鍵交換装置間で行われる鍵交換を取りまとめる鍵交換装置であり、図１に示すように、入力部１１、共有鍵種データ生成部１２、共有鍵証拠データ生成部１３、共有鍵種データ暗号化部１４、共有鍵証拠データ署名部１５、共有鍵生成部１６、署名検証部１７、及び出力部１８を備える。入力部１１は、鍵交換に用いられる諸データ、例えば公開鍵、秘密鍵、乱数等を入力する。共有鍵種データ生成部１２は、入力部１１から入力された乱数を用いて共有鍵種データを生成する。共有鍵証拠データ生成部１３は、共有鍵種データ生成部１２で生成された共有鍵種データと入力された公開鍵とを用いて共有鍵証拠データを生成する。共有鍵種データ暗号化部１４は、交換相手の鍵交換装置と個別に交換する個別鍵で共有鍵種データを暗号化する。共有鍵証拠データ署名部１５は、入力された秘密鍵を用いて共有鍵証拠データについての署名を生成する。共有鍵生成部１６は、共有鍵種データと入力された公開鍵とを用いて、複数の鍵交換装置間で共有する共有鍵を生成する。署名検証部１７は、交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるかを検証する。出力部１８は、相手装置からの署名が正当であると検証されたときに、生成された共有鍵を出力する。【００２３】
また、本発明が適用される鍵交換装置２０は、鍵交換を行う複数の鍵交換装置のうち鍵交換装置１０以外の鍵交換装置であり、図２に示すように、入力部２１、個別鍵生成部２２、共有鍵証拠データ署名部２３、共有鍵種データ復号化部２４、検証用共有鍵証拠データ生成部２５、共有鍵証拠データ検証部２６、共有鍵生成部２７、署名検証部２８、及び出力部２９を備える。入力部２１は、鍵交換に用いられる諸データ、例えば公開鍵、秘密鍵等を入力する。個別鍵生成部２２は、鍵交換装置１０から取得した個別鍵元データを用いて鍵交換装置１０と自装置との間で個別に交換する個別鍵を生成する。共有鍵証拠データ署名部２３は、鍵交換装置１０から取得した共有鍵証拠データについて、入力部２１から入力された秘密鍵を用いて署名を生成する。共有鍵種データ復号化部２４は、個別鍵生成部２２が生成した個別鍵を用いて、鍵交換装置１０から取得した共有鍵種データの暗号文を復号化する。検証用共有鍵証拠データ生成部２５は、復号化した共有鍵種データと入力した公開鍵とを用いて検証用の共有鍵証拠データを生成する。共有鍵証拠データ検証部２６は、生成した検証用の共有鍵証拠データが鍵交換装置１０からの共有鍵証拠データと等しいかを検証する。共有鍵生成部２７は、復号化で得られた共有鍵種データと入力した公開鍵とを用いて、複数の鍵交換装置間で共有する共有鍵を生成する。署名検証部２８は、交換相手の鍵交換装置から取得した共有鍵証拠データについての署名が正当であるかを検証する。出力部２９は、相手装置からの署名が正当であると検証されたときに、生成された共有鍵を出力する。【００２４】
鍵交換装置１０では、１回目のデータ送受信で、交換相手の鍵交換装置へ個別鍵元データ及び共有鍵証拠データを含むデータを送信し、相手装置が生成した個別鍵元データを含むデータを相手装置から受信する。また、２回目のデータ送受信で、相手装置へ共有鍵種データの暗号文及び共有鍵証拠データの署名を含むデータを送信し、相手装置が生成した共有鍵証拠データの署名を含むデータを相手装置から受信する。そして、鍵交換装置２０においては、１回目のデータ送受信で、鍵交換装置１０の個別鍵生成で用いられる個別鍵元データを生成して鍵交換装置１０へ送信し、鍵交換装置１０で生成された個別鍵元データ及び共有鍵証拠データを含むデータを鍵交換装置１０から受信する。また、２回目のデータ送受信で、交換相手の鍵交換装置（鍵交換装置１０を含む）に対して、鍵交換装置１０から取得した共有鍵証拠データ及び該共有鍵証拠データの署名を含むデータを送信し、相手装置が生成した共有鍵証拠データの署名及び共有鍵種データの暗号文を相手装置から受信する。【００２５】
このように、本発明では、複数の鍵交換装置間において２回のデータ送受信により鍵交換が行われる。また、鍵交換を取りまとめる鍵交換装置以外の鍵交換装置（鍵交換装置２０）においては、１回目のデータ送受信で、鍵交換を取りまとめる鍵交換装置のみが通信相手となっている。これにより、複数（特に多数）の鍵交換装置間で、迅速かつ効率的な鍵交換が可能となる。【００２６】
以下、図３から図５Ａ−図５Ｃを参照しながら、本発明の実施形態として鍵交換システムについて詳細に説明する。当該鍵交換システムは、鍵交換を取りまとめる鍵交換装置（以下、リーダ鍵交換装置という）及びこれ以外の鍵交換装置（以下、メンバ鍵交換装置という）から構成され、複数の鍵交換装置間で鍵交換を行う。【００２７】
はじめに、本実施形態の鍵交換システムにおけるリーダ鍵交換装置の構成について説明する。図３は、本実施形態においてリーダ鍵交換装置の構成を示した図である。リーダ鍵交換装置１００（以下、鍵交換装置１００という）は、入力装置１０１、乱数生成装置１０２、共有鍵証拠生成装置１０３、個別鍵交換装置１０４、内部状態保存装置１０５、暗号化装置１０６、署名装置１０７、共有鍵生成装置１０８、検証装置１０９、出力装置１１０、及び通信装置１１１を有する。また、鍵交換装置１００は、通信装置１１１により、通信回線９０を介して交換相手の鍵交換装置とデータ通信をして鍵交換を行う。【００２８】
入力装置１０１は入力部１１（図１、以下本段落において図面番号の表示を省略する）に、乱数生成装置１０２は共有鍵種データ生成部１２に、共有鍵証拠生成装置１０３は共有鍵証拠データ生成部１３に、暗号化装置１０６は共有鍵種データ暗号化部１４に、署名装置１０７は共有鍵証拠データ署名部１５に、共有鍵生成装置１０８は共有鍵生成部１６に、検証装置１０９は署名検証部１７に、出力装置１１０は出力部１８にそれぞれ対応する。【００２９】
まず、記法について述べる。ｐを素数、Ｇを位数ｐの巡回群、ｇをＧの生成元とする。また、鍵交換装置の数をｎとし、それぞれの装置にｉ＝１，２…，ｎの番号を振る。この振り方は、ｎ個の装置の集合が決定すると一意的に決まるものとする。例えば、装置の識別子のアルファベット順等である。そして、装置ｉを表す識別子をＵ［ｉ］とする。また、Ｆを衝突困難疑似乱数関数とする。これは、２つの引数を持つ関数で、第１の入力を無作為に選ぶと任意の第２の入力に対してその出力と乱数が区別できないもので、かつ、任意の第２の入力に対してその出力が同じとなるような２つの異なる第１の入力を見つけることが難しいものである。また、第１の引数の選ばれる空間をＭ1、第２の引数の選ばれる空間をＭ2とする。また、ｖ［０］ とｖ［１］をＭ2に属する値とする。また、ＵＨを２−ユニバーサルハッシュ関数とする。２−ユニバーサルハッシュ関数とは、２つの入力を持ち、互いに異なる第２の入力ｘ、ｙが与えられたとき、第１の入力ｚをランダムに選ぶと、ＵＨ（ｚ，ｘ）＝Ｕ（ｚ，ｙ）となる確率が１／｜Ｖ｜となるものである。但し、Ｖはｚが選ばれる空間で、｜Ｖ｜はその大きさである。ｖ［２］をランダムに選ばれたＶの要素とする。また、記号「◇」をビットごとの排他的論理和とする。【００３０】
各鍵交換装置ｉには鍵交換に用いられる諸データが入力される。すなわち、鍵交換装置１００においては、入力装置１０１により、それぞれの鍵交換装置ｊ（ｊ＝｛１，２，…，ｎ｝）に対応する識別子Ｕ［ｊ］の集合である識別子集合１２３（ｐｉｄ）、それぞれの鍵交換装置ｊに対応する公開鍵ｐｋ［ｊ］の集合である公開鍵集合１２４、自装置に対応する識別子１２５（Ｕ［ｉ］）、自身の公開鍵１２６（ｐｋ［ｉ］）、これに対応する秘密鍵１２７（ｓｋ［ｉ］）、そしてこれから生成する共有鍵１４１に固有のセッション番号１２１（ｓｉｄ）及び乱数１２２が入力される。なお、以下、リーダ鍵交換装置１００をｉ＝１、メンバ鍵交換装置をｊ＝２，…，ｎとして説明する。【００３１】
乱数生成装置１０２は、Ｍ1から共有鍵種データｓ∈Ｍ1を選ぶ、つまり入力された乱数１２２を用いて共有鍵種１２８を生成する。そして、共有鍵証拠生成装置１０３は、共有鍵種１２８を用いて共有鍵証拠１２９（ａｃｋ＝Ｆ（ｓ，ｖ［０］））を生成する。個別鍵交換装置１０４は、個別鍵交換内部状態ｒ［１］∈Ｚ／ｐＺをランダムに選び、つまり鍵交換内部データ１３１を生成し、個別鍵元データ１３０（ｙ［１］＝ｇr[1]）を生成する。そして、内部状態保存装置１０５は、共有鍵証拠１２９（ａｃｋ）及び鍵交換内部データ１３１（ｒ［１］）を含むデータを内部状態（ｓｉｄ，ｐｉｄ，ａｃｋ，ｒ［１］）として保存する。そして、通信装置１１１により、共有鍵証拠１２９（ａｃｋ）及び個別鍵元データ（ｙ［１］）を含むデータを、第１ＲＭ（ラウンドメッセージ）１４３（Ｕ［１］，ｓｉｄ，ｐｉｄ，ａｃｋ，ｙ［１］）として、メンバ鍵交換装置ｊに送信する。【００３２】
次いで、鍵交換装置１００は、通信装置１１１により、全ての装置ｊから第１ＲＭ集合１３２（Ｕ［ｊ］，ｓｉｄ，ｐｉｄ，ｙ［ｊ］，ｓｉｇ［ｊ］’）を受信したとき、各装置ｊからの署名（ｓｉｇ［ｊ］’）の正当性を検証する。そして、個別鍵交換装置１０４により、装置ｊからの個別鍵元データ（ｙ［ｊ］）及び自装置で生成した鍵交換内部データ１３１（ｒ［１］）を用いて、各装置ｊに対応する個別鍵集合１３３（ｋ［ｊ］＝ＵＨ（ｙ［ｊ］r[1]，ｖ［２］））を生成する。【００３３】
そして、暗号化装置１０６により、個別鍵（ｋ［ｊ］）を用いた共有鍵種１２８（ｓ）の暗号文、つまり各装置ｊに対応した共有鍵種暗号文集合１３４（ｘ［ｊ］＝ｓ◇ｋ［ｊ］）を生成する。また、署名装置１０７により、入力装置１０１で入力した秘密鍵１２７を用いて、共有鍵証拠１３５（ａｃｋ）を含むデータ（ｓｉｄ，ｐｉｄ，ａｃｋ）についての署名１３６（ｓｉｇ［１］）を生成する。また、共通鍵生成装置１０８により、入力装置１０１で入力した公開鍵１２６と共有鍵種１４０とを用いて、共有鍵１４１（ｋｅｙ＝Ｆ（ｓ，ｖ［１］））を生成する。また、内部状態保存装置１０５により、共有鍵１４１（ｋｅｙ）を含むデータを、内部状態（ｓｉｄ，ｐｉｄ，ａｃｋ，ｋｅｙ）として更新する。そして、通信装置１１１により、共有鍵種暗号文集合１３９（ｘ［ｊ］）及び署名１３６（ｓｉｇ［１］）を含むデータを、第２ＲＭ１３７（Ｕ［１］，ｓｉｄ，ｐｉｄ，ｓｉｇ［１］，ｘ［ｊ］）として各装置ｊへ送信する。【００３４】
次いで、鍵交換装置１００は、通信装置１１１により、全ての装置ｊから第２ＲＭ集合１３８（Ｕ［ｊ］，ｓｉｄ，ｐｉｄ，ａｃｋ，ｓｉｇ［ｊ］）を受信する。そして、このとき、検証装置１０９により、各装置ｊからの署名１３９（ｓｉｇ［ｊ］）が、内部状態として保存した共有鍵証拠（ｓｉｄ，ｐｉｄ，ａｃｋ）に対する正当な署名であるかについて検証を行う。署名１３９が正当な署名であると検証されたとき、出力装置１１０により共有鍵１４２（ｋｅｙ）が出力され、内部状態保存装置１０５は保存している内部状態を消去する。【００３５】
続いて、本実施形態の鍵交換システムにおけるメンバ鍵交換装置の構成について説明する。図４は、本実施形態においてメンバ鍵交換装置の構成を示した図である。メンバ鍵交換装置２００（以下、鍵交換装置２００という）は、入力装置２０１、個別鍵交換装置２０２、内部状態保存装置２０３、署名装置２０４、復号化装置２０５、共有鍵証拠生成装置２０６、共有鍵証拠確認装置２０７、署名検証装置２０８、共有鍵生成装置２０９、検証装置２１０、出力装置２１１、及び通信装置２１２を有する。また、鍵交換装置２００は、通信装置２１２により、通信回線９０を介して交換相手の鍵交換装置（リーダ鍵交換装置や他のメンバ鍵交換装置）とデータ通信をして鍵交換を行う。【００３６】
入力装置２０１は入力部２１（図２、以下本段落において図面番号の表示を省略する）に、個別鍵交換装置２０２は個別鍵生成部２２に、署名装置２０４は共有鍵証拠データ署名部２３に、復号化装置２０５は共有鍵種データ復号化部２４に、共有鍵証拠生成装置２０６は検証用共有鍵証拠データ生成部２５に、共有鍵証拠確認装置２０７は共有鍵証拠データ検証部２６に、署名検証装置２０８は署名検証部２８に、共有鍵生成装置２０９は共有鍵生成部２７に、出力装置２１１は出力部２９にそれぞれ対応する。【００３７】
記法については、リーダ鍵交換装置１００で述べたものと同様であるため、説明を省略する。また、リーダ鍵交換装置１００での説明と同様に、なお、以下、リーダ鍵交換装置をｉ＝１、鍵交換装置２００をｊ＝２，…，ｎとして説明する。鍵交換装置２００には、入力装置２０１により、鍵交換に用いられる諸データが入力される。すなわち、入力装置２０１は、それぞれの鍵交換装置に対応する識別子の集合である識別子集合２２３（ｐｉｄ）、それぞれの鍵交換装置に対応する公開鍵の集合である公開鍵集合２２４、自装置に対応する識別子２２５（Ｕ［ｊ］）、自身の公開鍵２２６（ｐｋ［ｊ］）、これに対応する秘密鍵２２７（ｓｋ［ｊ］）、これから生成する共有鍵２４３に固有のセッション番号２２１（ｓｉｄ）、乱数２２２を入力する。【００３８】
個別鍵交換装置２０２は、個別鍵交換内部状態ｒ［ｊ］∈Ｚ／ｑＺをランダムに選び、つまり鍵交換内部データ２２９を生成し、個別鍵元データ２２８（ｙ［ｊ］＝ｇr[j]）を生成する。そして、個別鍵元データ２２８（ｙ［ｊ］）に対する署名ｓｉｇ［ｊ］’を生成する。次いで、内部状態保存装置２０３は、鍵交換内部データ２２９（ｒ［ｊ］）を含むデータを内部状態（ｓｉｄ，ｐｉｄ，ｒ［ｊ］）として保存する。そして、通信装置２１２により、個別鍵元データ２２８（ｙ［ｊ］）を含むデータを、第１ＲＭ２３０（Ｕ［ｊ］，ｓｉｄ，ｐｉｄ，ｙ［ｊ］，ｓｉｇ［ｊ］’）として、リーダ鍵交換装置１００に送信する。【００３９】
次いで、鍵交換装置２００は、通信装置２１２により、リーダ鍵交換装置１００から第１ＲＭ集合２３１（Ｕ［１］，ｓｉｄ，ｐｉｄ，ａｃｋ，ｙ［１］）を受信したとき、個別鍵交換装置２０２により、リーダ鍵交換装置１００から取得した個別鍵元データ２３２（ｙ［１］）及び鍵交換内部データ２２９（ｒ［ｊ］）を用いて、個別鍵２３４（ｘ［ｊ］’＝ＵＨ（ｙ［１］r[j]），ｖ［２］））を生成する。また、署名装置２０４により、入力装置２０１で入力された秘密鍵２２７を用いて、受信した共有鍵証拠２３３（ａｃｋ）と内部状態保存装置２０３に保存した識別子２３５（ｓｉｄ，ｐｉｄ）とを含むデータ（ｓｉｄ，ｐｉｄ，ａｃｋ）に対する署名２３６（ｓｉｇ［ｊ］）を生成する。そして、内部状態保存装置２０３により、受信した共有鍵証拠２３３及び生成した個別鍵２３４を含むデータを、内部状態（ｓｉｄ，ｐｉｄ，ａｃｋ，ｘ［ｊ］’）として更新する。そして、通信装置２１２により、共有鍵証拠２３３（ａｃｋ）及び署名２３６（ｓｉｇ［ｊ］）を含むデータを、第２ＲＭ２３７（Ｕ［ｊ］，ｓｉｄ，ｐｉｄ，ａｃｋ，ｓｉｇ［ｊ］）として、自装置以外の鍵交換装置へ送信する。この自装置２００以外の鍵交換装置には、自装置以外のメンバ鍵交換装置のほか、リーダ鍵交換装置１００が含まれる。【００４０】
次いで、鍵交換装置２００は、通信装置２１２により、自装置以外の鍵交換装置から第２ＲＭ集合２３８を受信する。鍵交換装置２００以外のメンバ鍵交換装置から受信する場合、第２ＲＭ集合２３８の内容は（Ｕ［ｊ］，ｓｉｄ，ｐｉｄ，ａｃｋ，ｓｉｇ［ｊ］）となり、リーダ鍵交換装置１００から受信する場合、第２ＲＭ集合２３８の内容は（Ｕ［１］，ｓｉｄ，ｐｉｄ，ｓｉｇ［１］，ｘ［ｊ］）となる。鍵交換装置２００は、自装置以外の鍵交換装置の全てから第２ＲＭ集合２３８を受信したとき、すなわち、（Ｕ［ｊ］，ｓｉｄ，ｐｉｄ，ａｃｋ，ｓｉｇ［ｊ］）及び（Ｕ［１］，ｓｉｄ，ｐｉｄ，ｓｉｇ［１］，ｘ［ｊ］）を取得したとき、署名検証装置２０８により、全ての装置からの署名２３９（ｓｉｇ［ｊ］）が、内部状態として保存した共有鍵証拠（ｓｉｄ，ｐｉｄ，ａｃｋ）に対する正当な署名であるかについて検証を行う。署名検証装置２０８は、署名の検証結果を検証装置２１０に出力する。【００４１】
次に、復号化装置２０５により、保存した個別鍵２３４（ｘ［ｊ］’）を用いて、リーダ鍵交換装置１００から受信した共有鍵種暗号文２４０（ｘ［ｊ］）を復号化し、共有鍵種２４１（ｓ［ｊ］＝ｘ［ｊ］◇ｘ［ｊ］’）を生成する。そして、共有鍵証拠生成装置２０６により、復号化した共有鍵種２４１（ｓ［ｊ］）及び入力装置２０１で入力された公開鍵２２６を用いて、検査用共有鍵証拠２４２（ａｃｋ［ｊ］＝Ｆ（ｓ［ｊ］，ｖ［０］））を生成する。また、共有鍵生成装置２０９により、復号化装置２０５で復号化された共有鍵種２４１及び入力装置２０１で入力された公開鍵２２６を用いて、共有鍵２４３（ｋｅｙ＝Ｆ（ｓ［ｊ］，ｖ［１］））を生成する。そして、共有鍵証拠確認装置２０７により、検査用共有鍵証拠２４２（ａｃｋ［ｊ］）と、内部状態として保存された共有鍵証拠２３３（ａｃｋ）とが等しいか確認する。共有鍵証拠確認装置２０７は、共有鍵証拠の確認結果を検証装置２１０に出力する。検証装置２１０において、署名検証装置２０８から署名が正当である検証結果が得られ、共有鍵証拠確認装置２０７から共有鍵証拠が等しい確認結果が得られたとき、出力装置２１１により共有鍵２４４（ｋｅｙ）が出力され、内部状態保存装置２０３は保存している内部状態を消去する。【００４２】
続いて、本実施形態において行われる鍵交換に関する処理及び諸データの流れについてより具体的に説明する。図５Ａ−図５Ｃは、本実施形態における鍵交換処理の流れを示したシーケンスチャートである。なお、図５Ａ−図５Ｃでは、３つの鍵交換装置の間で行われる鍵交換処理を表しており、鍵交換装置Ａ（ｉ＝１）をリーダ鍵交換装置、鍵交換装置Ｂ（ｉ＝２）及び鍵交換装置Ｃ（ｉ＝３）をメンバ鍵交換装置としている。【００４３】
図５Ａに示すように、各鍵交換装置では、公開鍵、秘密鍵、乱数等の鍵交換に用いられる諸データが入力される（Ｓ１−Ａ、Ｓ１−Ｂ、Ｓ１−Ｃ）。鍵交換装置Ａにおいて、入力された乱数を用いて共有鍵種（ｓ）が生成される（Ｓ２−Ａ）。また、共有鍵種（ｓ）を用いて共有鍵証拠（ａｃｋ）が生成される（Ｓ３−Ａ）。また、鍵交換内部データ（ｒ［１］）から個別鍵元データ（ｙ［１］）が生成され、共有鍵種（ｓ）、共有鍵証拠（ａｃｋ）、鍵交換内部データ（ｒ［１］）を含むデータ（ｓｉｄ，ｐｉｄ，ｓ，ａｃｋ，ｒ［１］）が内部状態として保存される（Ｓ４−Ａ）。そして、鍵交換装置Ｂ及び鍵交換装置Ｃに対して、共有鍵証拠（ａｃｋ）個別鍵元データ（ｙ［１］）を含むデータ（Ｕ［１］，ｓｉｄ，ｐｉｄ，ａｃｋ，ｙ［１］）が第１ＲＭとして送信される（Ｓ５−Ａ）。【００４４】
一方、鍵交換装置Ｂでは、諸データ入力後、鍵交換内部データ（ｒ［２］）から個別鍵元データ（ｙ［２］）が生成され、それについての署名（ｓｉｇ［２］’）が生成される（Ｓ２−Ｂ）。そして、鍵交換内部データ（ｒ［２］）を含むデータ（ｓｉｄ，ｐｉｄ，ｒ［２］）が内部状態として保存される（Ｓ３−Ｂ）。そして、個別鍵元データ（ｙ［２］）及びそれについての署名（ｓｉｇ［２］’）を含むデータ（Ｕ［２］，ｓｉｄ，ｐｉｄ，ｙ［２］，ｓｉｇ［２］’）が、第１ＲＭとして、鍵交換装置Ａに対して送信される（Ｓ５−Ｂ）。鍵交換装置Ｃでも上記と同様に、個別鍵元データ（ｙ［３］）及びその署名（ｓｉｇ［３］’）の生成（Ｓ２−Ｃ）、内部状態（ｓｉｄ，ｐｉｄ，ｒ［３］）の保存（Ｓ３−Ｃ）、第１ＲＭ（Ｕ［３］，ｓｉｄ，ｐｉｄ，ｙ［３］，ｓｉｇ［３］’）の送信（Ｓ５−Ｃ）が行われる。【００４５】
図５Ｂに示すように、鍵交換装置Ａでは、鍵交換装置Ｂから第１ＲＭを受信した後、鍵交換装置Ｂからの個別鍵元データ（ｙ［２］）及び自装置における鍵交換内部データ（ｒ［１］）を用いて、鍵交換装置Ｂと個別に交換する個別鍵（ｋ［２］＝ＵＨ（ｙ［２］r[1]，Ｖ［２］））が生成される。そして、生成した個別鍵（ｋ［２］）と共通鍵種（ｓ）とを用いて、共有鍵種暗号文（ｘ［２］＝ｓ◇ｋ［２］）が生成される（Ｓ７−Ａ）。また、共有鍵証拠を含むデータ（ｓｉｄ，ｐｉｄ，ａｃｋ）についての署名（ｓｉｇ［１］）が生成される（Ｓ８−Ａ）。そして、共有鍵種（ｓ）を用いて、鍵交換装置Ｂとの間で共有する共有鍵（ｋｅｙ＝Ｆ（ｓ，ｖ［１］））が生成される（Ｓ９−Ａ）。そして、共有鍵証拠（ａｃｋ）、共有鍵（ｋｅｙ）を含むデータ（ｓｉｄ，ｐｉｄ，ａｃｋ，ｋｅｙ）が内部状態として保存される（Ｓ１０−Ａ）。そして、署名（ｓｉｇ［１］）及び共通鍵種暗号文（ｘ［２］）を含むデータ（Ｕ［１］，ｓｉｄ，ｐｉｄ，ｓｉｇ［１］，ｘ［２］）が、第２ＲＭとして、鍵交換装置Ｂへ送信される（Ｓ１１−Ａ）。鍵交換装置Ｃに対しても同様に、共有鍵種暗号文（ｘ３）、共通鍵証拠署名（ｓｉｇ［１］）、共有鍵（ｋｅｙ）が生成されるとともに、内部状態（ｓｉｄ，ｐｉｄ，ａｃｋ，ｋｅｙ）の保存が行われ、第２ＲＭ（Ｕ［１］，ｓｉｄ，ｐｉｄ，ｓｉｇ［１］，ｘ［３］）が送信される。【００４６】
他方、鍵交換装置Ｂでは、鍵交換装置Ａから第１ＲＭを受信した（Ｓ４−Ｂ）後、鍵交換装置Ｂからの個別鍵元データ（ｙ［１］）及び自装置における鍵交換内部データ（ｒ［２］）を用いて、鍵交換装置Ａと個別に交換する個別鍵（ｘ［２］’＝ＵＨ（ｙ［１］r[2]，Ｖ［２］））が生成される（Ｓ６−Ｂ）。また、共有鍵証拠を含むデータ（ｓｉｄ，ｐｉｄ，ａｃｋ）についての署名（ｓｉｇ［２］）が生成される（Ｓ７−Ｂ）。そして、共有鍵証拠（ａｃｋ）、個別鍵（ｘ［２］’）を含むデータ（ｓｉｄ，ｐｉｄ，ａｃｋ，ｘ［２］’）が内部状態として保存される（Ｓ８−Ｂ）。そして、共有鍵証拠（ａｃｋ）、署名（ｓｉｇ［２］）を含むデータ（Ｕ［２］，ｓｉｄ，ｐｉｄ，ａｃｋ，ｓｉｇ［２］）が、第２ＲＭとして、鍵交換装置Ａ及び鍵交換装置Ｃに対して送信される（Ｓ１０−Ｂ）。鍵交換装置Ｃについても同様である。すなわち、個別鍵（ｘ［３］’）、共有鍵証拠署名（ｓｉｇ［３］）が生成される（Ｓ６−Ｃ、Ｓ７−Ｃ）とともに、内部状態（ｓｉｄ，ｐｉｄ，ａｃｋ，ｘ［３］’）の保存が行われ（Ｓ８−Ｃ）、第２ＲＭ（Ｕ［３］，ｓｉｄ，ｐｉｄ，ａｃｋ，ｓｉｇ［３］）が鍵交換装置Ａ及び鍵交換装置Ｂへ信される（Ｓ１１−Ｃ）。【００４７】
図５Ｃに示すように、鍵交換装置Ａでは、鍵交換装置Ｂ及び鍵交換装置Ｃから第２ＲＭを受信した（Ｓ１２−Ａ、Ｓ１３−Ａ）後、各装置から取得した署名（ｓｉｇ［２］、ｓｉｇ［３］）が、内部状態として保存している共有鍵証拠（ｓｉｄ，ｐｉｄ，ａｃｋ）に対する署名であるかについて検証される（Ｓ１４−Ａ）。そして、共有鍵証拠（ｓｉｄ，ｐｉｄ，ａｃｋ）に対する署名であることが検証されると、生成済みの共有鍵（ｋｅｙ）が出力される（Ｓ１５−Ａ）。【００４８】
一方、鍵交換装置Ｂでは、鍵交換装置Ａ及び鍵交換装置Ｃから第２ＲＭを受信した（Ｓ９−Ｂ、Ｓ１１−Ｂ）後、鍵交換装置Ａの場合と同様に署名検証が行われる（Ｓ１２−Ｂ）。すなわち、各装置から取得した署名（ｓｉｇ［１］、ｓｉｇ［３］）が、内部状態として保存している共有鍵証拠（ｓｉｄ，ｐｉｄ，ａｃｋ）に対する署名であるかについて検証される。また、内部状態として保存している個別鍵（ｘ［２］’）を用いて、鍵交換装置Ａから取得した共通鍵種暗号文（ｘ［２］）が復号化され、共有鍵種（ｓ［２］）が生成される（Ｓ１３−Ｂ）。そして、復号化された共有鍵種（ｓ［２］）を用いて、共有鍵（ｋｅｙ＝Ｆ（ｓ［２］，ｖ［１］））が生成される（Ｓ１４−Ｂ）。また、復号化された共有鍵種（ｓ［２］）を用いて、検証用の共有鍵証拠（ａｃｋ［２］＝Ｆ（ｓ［２］，ｖ［０］））が生成される（Ｓ１５−Ｂ）。そして、内部状態として保存された共有鍵証拠（ａｃｋ）と検証用の共有鍵証拠（ａｃｋ［２］）とが同一であるかが検証される（Ｓ１６−Ｂ）。そして、署名が正当であり、共有鍵証拠が同一と検証されたとき、生成された共有鍵（ｋｅｙ）が出力される（Ｓ１７−Ｂ）。鍵交換装置Ｃについても同様である。すなわち、署名検証（ｓｉｇ［１］、ｓｉｇ［２］＝（ｓｉｄ，ｐｉｄ，ａｃｋ））、共有鍵種復号化（ｓ「３」）、共有鍵（ｋｅｙ）及び検証用共有鍵証拠（ａｃｋ［３］）の生成、共有鍵証拠の検証（ａｃｋ［３］＝ａｃｋ）が行われ、検証結果が正当であるときに共有鍵（ｋｅｙ）が出力される（Ｓ９−Ｃ、Ｓ１０−Ｃ、Ｓ１２−Ｃ〜Ｓ１７−Ｃ）。【００４９】
以上説明したように、本実施形態によれば、複数の装置で秘密の鍵を共有するときに、互いにデータを配布する回数が２回で済むことになる。しかも、最初のラウンドでは、１つの装置（リーダ鍵交換装置）を除いて各装置（メンバ鍵交換装置）は、その他の装置に全てにメッセージを送るという重い処理が存在しない。対多数の通信はその同期を取る必要等に多くの時間を費やすため、短時間で終了することは単純な暗号計算と比べて難しい。本実施形態では、この通信の回数をこれまでの方法より減らしているため、より効率的な鍵の交換が可能になる。また、本方式はリーダ鍵交換装置が中心となって鍵交換を行うため、鍵交換の取りまとめを行うサーバが存在する場合に特にメリットがある。【００５０】
すなわち、サーバクライアントシステムにおけるサーバ装置を上記実施形態のリーダ鍵交換装置として構成し、クライアント装置をメンバ鍵構成装置として構成することができる。この場合、サーバ装置に接続することができるクライアント装置のユーザが複数存在するが、サーバ装置とクライアント装置とが、互いに通信して上述したような鍵交換処理をそれぞれ行うことで、各装置が同一の共有鍵を交換することが可能となる。【００５１】
複数の装置による鍵の交換は、ネットワーク上で多人数のユーザが会議を開く場合等に有効である。参加するメンバが確認でき、メンバ以外のユーザが会議に参加したり、会議の内容を盗聴できないようにするために、会議メンバで共有する秘密鍵を上述した鍵交換方法で事前に決定することができる。【００５２】
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。【００５３】
すなわち、上記した実施形態におけるリーダ鍵交換装置やメンバ鍵交換装置は、プログラムの命令によりコンピュータで実行される処理、手段、機能によって動作する。当該プログラムは、コンピュータの各構成要素に指令を送り、先に述べたような所定の処理や機能、例えば、乱数生成装置１０２により乱数を用いて共有鍵種を生成させ、共有鍵証拠生成装置１０３により共有鍵種を用いて共有鍵証拠を生成させ、個別鍵交換装置１０４により交換相手装置からの個別鍵元データを用いて個別鍵を生成させる処理を行う。また、暗号化装置１０６により個別鍵を用いて共有鍵種を暗号化させ、署名装置１０７により共有鍵証拠についての署名を生成させ、共有鍵生成装置１０８により共通鍵種を用いて共有鍵を生成させる処理を行う。そして、検証装置１０９により交換相手装置からの署名が正当であるかを検証させ、正当であるときに出力装置１１０により共有鍵を出力させる処理を行う。このように、上記実施形態における各処理や手段は、プログラムとコンピュータとが協働した具体的手段によって実現されるものである。【００５４】
そして、上記実施形態の機能を実現するソフトウェアのプログラムコードを記録したコンピュータ読み取り可能な記録媒体、すなわち記憶メディアを介して、例えばリーダ鍵交換装置やメンバ鍵交換装置のコンピュータ（ＣＰＵ）が記憶メディアに格納されたプログラムコードを読み出し実行することによっても、本発明の目的は達成される。また、プログラムは、記録メディアを介さず、通信回線を通じて直接にコンピュータにロードし実行することもでき、これによっても同様に本発明の目的は達成される。【００５５】
この場合、記憶メディアから読み出された又は通信回線を通じてロードし実行されたプログラムコード自体が前述の実施形態の機能を実現することになる。そして、そのプログラムコードを記憶した記憶メディアは本発明を構成する。【００５６】
また、プログラムコードを供給するための記憶メディアとしては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、不揮発性のメモリカード、ＲＯＭ、磁気テープ等を用いることができる。【００５７】
この出願は、２００７年１２月７日に出願された日本出願特願２００７−３１７６３４号を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
【図１】
2009072647.tif 000003
【図２】
2009072647.tif 000004
【図３】
2009072647.tif 000005
【図４】
2009072647.tif 000006
【図５Ａ】
2009072647.tif 000007
【図５Ｂ】
2009072647.tif 000008
【図５Ｃ】
2009072647.tif 000009
【図６】
2009072647.tif 000010
【国際調査報告】
2009072647.tif 000011
2009072647.tif 000012
2009072647.tif 000013
2009072647.tif 000014