(57)【特許請求の範囲】
【請求項１】
要求装置と応答装置と鍵公開装置とからなり、あらかじめパスワードｐｗを共有する要求装置と応答装置との間でセッション鍵ＳＫを共有する鍵交換システムであって、
前記鍵公開装置は、
前記要求装置の公開鍵である要求側公開鍵ｐｋ’と前記応答装置の公開鍵である応答側公開鍵ｐｋを記憶する鍵記憶部と、
受信した公開鍵を前記鍵記憶部に記憶し、前記鍵記憶部における当該公開鍵を一意に識別する情報である鍵識別子を出力する鍵登録部と、
受信した前記鍵識別子に基づいて前記鍵記憶部から前記公開鍵を抽出する鍵公開部と、
を備え、
前記要求装置は、
ランダムな整数ｗ’を選択する要求側鍵乱数生成部と、
前記乱数ｗ’を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ’を実行することにより、前記要求側公開鍵ｐｋ’を生成する要求側公開鍵生成部と、
前記要求側公開鍵ｐｋ’を前記鍵公開装置へ送信し、前記鍵公開装置の出力する鍵識別子を要求側鍵識別子αとして受信する要求側公開鍵登録部と、
ランダムな整数ｒを選択する要求側乱数生成部と、
前記パスワードｐｗを入力として、前記要求側公開鍵ｐｋ’と前記乱数ｒを用いて前記第１の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ’を実行することにより、暗号文ＣＴ’を生成する要求側第１暗号化部と、
少なくとも前記暗号文ＣＴ’と前記要求側鍵識別子αを含む第１情報ｔ１を前記応答装置へ送信する第１情報送信部と、
前記応答装置から受信した応答側鍵識別子βを前記鍵公開装置へ送信し、前記鍵公開装置の出力する公開鍵を前記応答側公開鍵ｐｋとして受信する応答側公開鍵取得部と、
前記暗号文ＣＴ’と前記要求側公開鍵ｐｋ’と前記パスワードｐｗと前記乱数ｒを入力として、前記応答装置から受信した射影鍵ｈｐを用いて前記スムース射影ハッシュ関数のハッシュ関数ｈを計算することにより、第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを生成する要求側セッション鍵生成部と、
少なくとも前記パスワードｐｗを入力として、前記応答側公開鍵ｐｋと前記第１セッション鍵ｒＡを用いて第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴ＾を生成する要求側第２暗号化部と、
前記応答装置から受信した暗号文ＣＴが前記暗号文ＣＴ＾と等しいか否かを検証する暗号文検証部と、
少なくとも前記第２セッション鍵τＡを含む第３情報ｔ３を前記応答装置へ送信する第３情報送信部と、
前記第３セッション鍵ＳＫＡを前記セッション鍵ＳＫとして出力する要求側セッション鍵出力部と、
を備え、
前記応答装置は、
ランダムな整数ｗを選択する応答側鍵乱数生成部と、
前記乱数ｗを用いて、前記第２の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎを実行することにより、前記応答側公開鍵ｐｋを生成する応答側公開鍵生成部と、
前記応答側公開鍵ｐｋを前記鍵公開装置へ送信し、前記鍵公開装置の出力する鍵識別子を前記応答側鍵識別子βとして受信する応答側公開鍵登録部と、
前記要求装置から受信した前記要求側鍵識別子αを前記鍵公開装置へ送信し、前記鍵公開装置の出力する公開鍵を前記要求側公開鍵ｐｋ’として受信する要求側公開鍵取得部と、
前記スムース射影ハッシュ関数のハッシュ鍵ｈｋを生成する応答側ハッシュ鍵生成部と、
前記ハッシュ鍵ｈｋと前記要求装置から受信した前記暗号文ＣＴ’と前記要求側公開鍵ｐｋ’を入力として、前記スムース射影ハッシュ関数の射影関数Ｆを計算することにより、前記射影鍵ｈｐを生成する応答側射影鍵生成部と、
前記暗号文ＣＴ’と前記要求側公開鍵ｐｋ’と前記パスワードｐｗを入力として、前記ハッシュ鍵ｈｋを用いて前記スムース射影ハッシュ関数の鍵付きハッシュ関数Ｈを計算することにより、第１セッション鍵ｒＢと第２セッション鍵τＢと第３セッション鍵ＳＫＢを生成する応答側セッション鍵生成部と、
少なくとも前記パスワードｐｗを入力として、前記応答側公開鍵ｐｋと前記第１セッション鍵ｒＢを用いて前記第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、前記暗号文ＣＴを生成する応答側第１暗号化部と、
少なくとも前記射影鍵ｈｐと前記暗号文ＣＴと前記応答側鍵識別子βを含む第２情報ｔ２を前記要求装置へ送信する第２情報送信部と、
前記要求装置から受信した第２セッション鍵τＡが前記第２セッション鍵τＢと等しいか否かを検証するセッション鍵検証部と、
前記第３セッション鍵ＳＫＢを前記セッション鍵ＳＫとして出力する応答側セッション鍵出力部と、
を備える
ことを特徴とする鍵交換システム。
【請求項２】
請求項１に記載の鍵交換システムであって、
前記要求装置は、
前記要求側鍵識別子αを前記応答装置へ送信する要求側鍵識別子送信部と、
をさらに備え、
前記応答装置は、
前記応答側鍵識別子βを前記要求装置へ送信する応答側鍵識別子送信部と、
をさらに備え、
前記第１情報送信部は、
少なくとも前記暗号文ＣＴ’を含む第１情報ｔ１を前記応答装置へ送信し、
前記第２情報送信部は、
少なくとも前記射影鍵ｈｐと前記暗号文ＣＴを含む第２情報ｔ２を前記要求装置へ送信する
ことを特徴とする鍵交換システム。
【請求項３】
要求装置と応答装置とからなり、あらかじめパスワードｐｗを共有する要求装置と応答装置との間でセッション鍵ＳＫを共有する鍵交換システムであって、
前記要求装置は、
ランダムな整数ｗ１を選択する第１鍵乱数生成部と、
前記乱数ｗ１を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ１を実行することにより、第１公開鍵ｐｋ１を生成する第１公開鍵生成部と、
ランダムな整数ｗ２を選択する第２鍵乱数生成部と、
前記乱数ｗ２を用いて、第２の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ２を実行することにより、第２公開鍵ｐｋ２を生成する第２公開鍵生成部と、
ランダムな整数ｒを選択する要求側乱数生成部と、
前記パスワードｐｗを入力として、前記第１公開鍵ｐｋ１と前記乱数ｒを用いて前記第１の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ１を実行することにより、暗号文ＣＴ１を生成する要求側第１暗号化部と、
少なくとも前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１と前記第２公開鍵ｐｋ２を含む第１情報ｔ１を前記応答装置へ送信する第１情報送信部と、
前記第１公開鍵ｐｋ１と前記第２公開鍵ｐｋ２が正しく生成されたことを、コンカレント安全なゼロ知識証明ｃＺＫを用いて前記応答装置に対して証明する要求側公開鍵証明部と、
前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１と前記パスワードｐｗと前記乱数ｒを入力として、前記応答装置から受信した射影鍵ｈｐ’を用いて前記スムース射影ハッシュ関数のハッシュ関数ｈ’を計算することにより、ハッシュ値δを生成する要求側ハッシュ値計算部と、
前記応答装置から受信したハッシュ値δ’が前記ハッシュ値δと等しいか否かを検証する要求側ハッシュ値検証部と、
前記スムース射影ハッシュ関数のハッシュ鍵ｈｋを生成する要求側ハッシュ鍵生成部と、
前記ハッシュ鍵ｈｋと前記応答装置から受信した暗号文ＣＴ’と前記応答装置から受信した応答側公開鍵ｐｋ’を入力として、前記スムース射影ハッシュ関数の射影関数Ｆを計算することにより、射影鍵ｈｐを生成する要求側射影鍵生成部と、
前記暗号文ＣＴ’と前記応答側公開鍵ｐｋ’と前記パスワードｐｗを入力として、前記ハッシュ鍵ｈｋを用いて前記スムース射影ハッシュ関数の鍵付きハッシュ関数Ｈを計算することにより、第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを生成する要求側セッション鍵生成部と、
少なくとも前記パスワードｐｗを入力として、前記第２公開鍵ｐｋ２と前記第１セッション鍵ｒＡを用いて前記第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ２を実行することにより、暗号文ＣＴ２を生成する要求側第２暗号化部と、
少なくとも前記射影鍵ｈｐと前記暗号文ＣＴ２と前記ハッシュ値δを含む第３情報ｔ３を前記応答装置へ送信する第３情報送信部と、
前記第１セッション鍵ｒＡと前記暗号文ＣＴ２と前記ハッシュ値δが正しく生成されたことを、証拠識別不可能証明ＮＭＷＩを用いて前記応答装置に対して証明する要求側暗号文証明部と、
前記応答装置から受信した第２セッション鍵τＢが前記第２セッション鍵τＡと等しいか否かを検証するセッション鍵検証部と、
前記第３セッション鍵ＳＫＡを前記セッション鍵ＳＫとして出力する要求側セッション鍵出力部と、
を備え、
前記応答装置は、
ランダムな整数ｗ’を選択する応答側鍵乱数生成部と、
前記乱数ｗ’を用いて、前記スムース射影ハッシュ関数をサポートする第３の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ’を実行することにより、前記応答側公開鍵ｐｋ’を生成する応答側公開鍵生成部と、
前記スムース射影ハッシュ関数のハッシュ鍵ｈｋ’を生成する応答側ハッシュ鍵生成部と、
前記ハッシュ鍵ｈｋ’と前記要求装置から受信した前記暗号文ＣＴ１と前記要求装置から受信した前記第１公開鍵ｐｋ１を入力として、前記スムース射影ハッシュ関数の射影関数Ｆ’を計算することにより、前記射影鍵ｈｐ’を生成する応答側射影鍵生成部と、
前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１と前記パスワードｐｗを入力として、前記ハッシュ鍵ｈｋ’を用いて前記スムース射影ハッシュ関数の鍵付きハッシュ関数Ｈ’を計算することにより、前記ハッシュ値δ’を生成する応答側ハッシュ値計算部と、
ランダムな整数ｒ’を選択する応答側乱数生成部と、
前記パスワードｐｗを入力として、前記応答側公開鍵ｐｋ’と前記乱数ｒ’を用いて前記第３の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ’を実行することにより、前記暗号文ＣＴ’を生成する応答側第２暗号化部と、
少なくとも前記射影鍵ｈｐ’と前記応答側公開鍵ｐｋ’と前記暗号文ＣＴ’と前記ハッシュ値δ’を含む第２情報ｔ２を前記応答装置へ送信する第２情報送信部と、
前記暗号文ＣＴ’と前記ハッシュ値δ’が正しく生成されたことを、証拠識別不可能証明ＮＭＷＩ’を用いて前記要求装置に対して証明する応答側暗号文証明部と、
前記応答側公開鍵ｐｋ’が正しく生成されたことを、コンカレント安全なゼロ知識証明ｃＺＫ’を用いて前記要求装置に対して証明する応答側公開鍵証明部と、
前記要求装置から受信した前記ハッシュ値δが前記ハッシュ値δ’と等しいか否かを検証する応答側ハッシュ値検証部と、
前記暗号文ＣＴ’と前記応答側公開鍵ｐｋ’と前記パスワードｐｗと前記乱数ｒ’を入力として、前記要求装置から受信した前記射影鍵ｈｐを用いて前記スムース射影ハッシュ関数のハッシュ関数ｈを計算することにより、第１セッション鍵ｒＢと前記第２セッション鍵τＢと第３セッション鍵ＳＫＢを生成する応答側セッション鍵生成部と、
少なくとも前記パスワードｐｗを入力として、前記第２公開鍵ｐｋ２と前記第１セッション鍵ｒＢを用いて前記第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ２を実行することにより、暗号文ＣＴ＾２を生成する応答側第１暗号化部と、
前記要求装置から受信した前記暗号文ＣＴ２が前記暗号文ＣＴ＾２と等しいか否かを検証する暗号文検証部と、
少なくとも前記第２セッション鍵τＢを含む第４情報ｔ４を前記要求装置へ送信する第４情報送信部と、
前記第３セッション鍵ＳＫＢを前記セッション鍵ＳＫとして出力する応答側セッション鍵出力部と、
を備える
ことを特徴とする鍵交換システム。
【請求項４】
あらかじめパスワードｐｗを共有する応答装置との間でセッション鍵ＳＫを共有する要求装置であって、
ランダムな整数ｗ’を選択する要求側鍵乱数生成部と、
前記乱数ｗ’を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ’を実行することにより、要求側公開鍵ｐｋ’を生成する要求側公開鍵生成部と、
前記要求側公開鍵ｐｋ’を鍵公開装置へ送信し、前記鍵公開装置の出力する鍵識別子を要求側鍵識別子αとして受信する要求側公開鍵登録部と、
ランダムな整数ｒを選択する要求側乱数生成部と、
前記パスワードｐｗを入力として、前記要求側公開鍵ｐｋ’と前記乱数ｒを用いて前記第１の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ’を実行することにより、暗号文ＣＴ’を生成する要求側第１暗号化部と、
少なくとも前記暗号文ＣＴ’と前記要求側鍵識別子αを含む第１情報ｔ１を前記応答装置へ送信する第１情報送信部と、
前記応答装置から受信した応答側鍵識別子βを前記鍵公開装置へ送信し、前記鍵公開装置の出力する公開鍵を応答側公開鍵ｐｋとして受信する応答側公開鍵取得部と、
前記暗号文ＣＴ’と前記要求側公開鍵ｐｋ’と前記パスワードｐｗと前記乱数ｒを入力として、前記応答装置から受信した射影鍵ｈｐを用いて前記スムース射影ハッシュ関数のハッシュ関数ｈを計算することにより、第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを生成する要求側セッション鍵生成部と、
少なくとも前記パスワードｐｗを入力として、前記応答側公開鍵ｐｋと前記第１セッション鍵ｒＡを用いて第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴ＾を生成する要求側第２暗号化部と、
前記応答装置から受信した暗号文ＣＴが前記暗号文ＣＴ＾と等しいか否かを検証する暗号文検証部と、
少なくとも前記第２セッション鍵τＡを含む第３情報ｔ３を前記応答装置へ送信する第３情報送信部と、
前記第３セッション鍵ＳＫＡを前記セッション鍵ＳＫとして出力する要求側セッション鍵出力部と、
を備えることを特徴とする要求装置。
【請求項５】
あらかじめパスワードｐｗを共有する要求装置との間でセッション鍵ＳＫを共有する要求装置であって、
ランダムな整数ｗ１を選択する第１鍵乱数生成部と、
前記乱数ｗ１を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ１を実行することにより、第１公開鍵ｐｋ１を生成する第１公開鍵生成部と、
ランダムな整数ｗ２を選択する第２鍵乱数生成部と、
前記乱数ｗ２を用いて、第２の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ２を実行することにより、第２公開鍵ｐｋ２を生成する第２公開鍵生成部と、
ランダムな整数ｒを選択する要求側乱数生成部と、
前記パスワードｐｗを入力として、前記第１公開鍵ｐｋ１と前記乱数ｒを用いて前記第１の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ１を実行することにより、暗号文ＣＴ１を生成する要求側第１暗号化部と、
少なくとも前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１と前記第２公開鍵ｐｋ２を含む第１情報ｔ１を前記応答装置へ送信する第１情報送信部と、
前記第１公開鍵ｐｋ１と前記第２公開鍵ｐｋ２が正しく生成されたことを、コンカレント安全なゼロ知識証明ｃＺＫを用いて前記応答装置に対して証明する要求側公開鍵証明部と、
前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１と前記パスワードｐｗと前記乱数ｒを入力として、前記応答装置から受信した射影鍵ｈｐ’を用いて前記スムース射影ハッシュ関数のハッシュ関数ｈ’を計算することにより、ハッシュ値δを生成する要求側ハッシュ値計算部と、
前記応答装置から受信したハッシュ値δ’が前記ハッシュ値δと等しいか否かを検証する要求側ハッシュ値検証部と、
前記スムース射影ハッシュ関数のハッシュ鍵ｈｋを生成する要求側ハッシュ鍵生成部と、
前記ハッシュ鍵ｈｋと前記応答装置から受信した暗号文ＣＴ’と前記応答装置から受信した応答側公開鍵ｐｋ’を入力として、前記スムース射影ハッシュ関数の射影関数Ｆを計算することにより、射影鍵ｈｐを生成する要求側射影鍵生成部と、
前記暗号文ＣＴ’と前記応答側公開鍵ｐｋ’と前記パスワードｐｗを入力として、前記ハッシュ鍵ｈｋを用いて前記スムース射影ハッシュ関数の鍵付きハッシュ関数Ｈを計算することにより、第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを生成する要求側セッション鍵生成部と、
少なくとも前記パスワードｐｗを入力として、前記第２公開鍵ｐｋ２と前記第１セッション鍵ｒＡを用いて前記第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ２を実行することにより、暗号文ＣＴ２を生成する要求側第２暗号化部と、
少なくとも前記射影鍵ｈｐと前記暗号文ＣＴ２と前記ハッシュ値δを含む第３情報ｔ３を前記応答装置へ送信する第３情報送信部と、
前記第１セッション鍵ｒＡと前記暗号文ＣＴ２と前記ハッシュ値δが正しく生成されたことを、証拠識別不可能証明ＮＭＷＩを用いて前記応答装置に対して証明する要求側暗号文証明部と、
前記応答装置から受信した第２セッション鍵τＢが前記第２セッション鍵τＡと等しいか否かを検証するセッション鍵検証部と、
前記第３セッション鍵ＳＫＡを前記セッション鍵ＳＫとして出力する要求側セッション鍵出力部と、
を備えることを特徴とする要求装置。
【請求項６】
あらかじめパスワードｐｗを共有する要求装置との間でセッション鍵ＳＫを共有する応答装置であって、
ランダムな整数ｗを選択する応答側鍵乱数生成部と、
前記乱数ｗを用いて、公開鍵暗号方式の鍵生成アルゴリズムＧｅｎを実行することにより、応答側公開鍵ｐｋを生成する応答側公開鍵生成部と、
前記応答側公開鍵ｐｋを鍵公開装置へ送信し、前記鍵公開装置の出力する鍵識別子を応答側鍵識別子βとして受信する応答側公開鍵登録部と、
前記要求装置から受信した要求側鍵識別子αを前記鍵公開装置へ送信し、前記鍵公開装置の出力する公開鍵を要求側公開鍵ｐｋ’として受信する要求側公開鍵取得部と、
スムース射影ハッシュ関数のハッシュ鍵ｈｋを生成する応答側ハッシュ鍵生成部と、
前記ハッシュ鍵ｈｋと前記要求装置から受信した暗号文ＣＴ’と前記要求側公開鍵ｐｋ’を入力として、前記スムース射影ハッシュ関数の射影関数Ｆを計算することにより、射影鍵ｈｐを生成する応答側射影鍵生成部と、
前記暗号文ＣＴ’と前記要求側公開鍵ｐｋ’と前記パスワードｐｗを入力として、前記ハッシュ鍵ｈｋを用いて前記スムース射影ハッシュ関数の鍵付きハッシュ関数Ｈを計算することにより、第１セッション鍵ｒＢと第２セッション鍵τＢと第３セッション鍵ＳＫＢを生成する応答側セッション鍵生成部と、
少なくとも前記パスワードｐｗを入力として、前記応答側公開鍵ｐｋと前記第１セッション鍵ｒＢを用いて前記公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴを生成する応答側第１暗号化部と、
少なくとも前記射影鍵ｈｐと前記暗号文ＣＴと前記応答側鍵識別子βを含む第２情報ｔ２を前記要求装置へ送信する第２情報送信部と、
前記要求装置から受信した第２セッション鍵τＡが前記第２セッション鍵τＢと等しいか否かを検証するセッション鍵検証部と、
前記第３セッション鍵ＳＫＢを前記セッション鍵ＳＫとして出力する応答側セッション鍵出力部と、
を備えることを特徴とする応答装置。
【請求項７】
あらかじめパスワードｐｗを共有する要求装置との間でセッション鍵ＳＫを共有する応答装置であって、
ランダムな整数ｗ’を選択する応答側鍵乱数生成部と、
前記乱数ｗ’を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ’を実行することにより、応答側公開鍵ｐｋ’を生成する応答側公開鍵生成部と、
前記スムース射影ハッシュ関数のハッシュ鍵ｈｋ’を生成する応答側ハッシュ鍵生成部と、
前記ハッシュ鍵ｈｋ’と前記要求装置から受信した暗号文ＣＴ１と前記要求装置から受信した第１公開鍵ｐｋ１を入力として、前記スムース射影ハッシュ関数の射影関数Ｆ’を計算することにより、射影鍵ｈｐ’を生成する応答側射影鍵生成部と、
前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１と前記パスワードｐｗを入力として、前記ハッシュ鍵ｈｋ’を用いて前記スムース射影ハッシュ関数の鍵付きハッシュ関数Ｈ’を計算することにより、ハッシュ値δ’を生成する応答側ハッシュ値計算部と、
ランダムな整数ｒ’を選択する応答側乱数生成部と、
前記パスワードｐｗを入力として、前記応答側公開鍵ｐｋ’と前記乱数ｒ’を用いて前記第１の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ’を実行することにより、暗号文ＣＴ’を生成する応答側第２暗号化部と、
少なくとも前記射影鍵ｈｐ’と前記応答側公開鍵ｐｋ’と前記暗号文ＣＴ’と前記ハッシュ値δ’を含む第２情報ｔ２を前記応答装置へ送信する第２情報送信部と、
前記暗号文ＣＴ’と前記ハッシュ値δ’が正しく生成されたことを、証拠識別不可能証明ＮＭＷＩ’を用いて前記要求装置に対して証明する応答側暗号文証明部と、
前記応答側公開鍵ｐｋ’が正しく生成されたことを、コンカレント安全なゼロ知識証明ｃＺＫ’を用いて前記要求装置に対して証明する応答側公開鍵証明部と、
前記要求装置から受信したハッシュ値δが前記ハッシュ値δ’と等しいか否かを検証する応答側ハッシュ値検証部と、
前記暗号文ＣＴ’と前記応答側公開鍵ｐｋ’と前記パスワードｐｗと前記乱数ｒ’を入力として、前記要求装置から受信した射影鍵ｈｐを用いて前記スムース射影ハッシュ関数のハッシュ関数ｈを計算することにより、第１セッション鍵ｒＢと前記第２セッション鍵τＢと第３セッション鍵ＳＫＢを生成する応答側セッション鍵生成部と、
少なくとも前記パスワードｐｗを入力として、前記要求装置から受信した第２公開鍵ｐｋ２と前記第１セッション鍵ｒＢを用いて第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ２を実行することにより、暗号文ＣＴ＾２を生成する応答側第１暗号化部と、
前記要求装置から受信した暗号文ＣＴ２が前記暗号文ＣＴ＾２と等しいか否かを検証する暗号文検証部と、
少なくとも前記第２セッション鍵τＢを含む第４情報ｔ４を前記要求装置へ送信する第４情報送信部と、
前記第３セッション鍵ＳＫＢを前記セッション鍵ＳＫとして出力する応答側セッション鍵出力部と、
を備えることを特徴とする応答装置。
【請求項８】
あらかじめパスワードｐｗを共有する要求装置と応答装置との間でセッション鍵ＳＫを共有する鍵交換方法であって、
前記要求装置が、ランダムな整数ｗ’を選択する要求側鍵乱数生成ステップと、
前記要求装置が、前記乱数ｗ’を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ’を実行することにより、要求側公開鍵ｐｋ’を生成する要求側公開鍵生成ステップと、
前記要求装置が、前記要求側公開鍵ｐｋ’を鍵公開装置へ送信し、前記鍵公開装置の出力する鍵識別子を要求側鍵識別子αとして受信する要求側公開鍵登録ステップと、
前記応答装置が、ランダムな整数ｗを選択する応答側鍵乱数生成ステップと、
前記応答装置が、前記乱数ｗを用いて、第２の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎを実行することにより、応答側公開鍵ｐｋを生成する応答側公開鍵生成ステップと、
前記応答装置が、前記応答側公開鍵ｐｋを前記鍵公開装置へ送信し、前記鍵公開装置の出力する鍵識別子を応答側鍵識別子βとして受信する応答側公開鍵登録ステップと、
前記要求装置が、ランダムな整数ｒを選択する要求側乱数生成ステップと、
前記要求装置が、前記パスワードｐｗを入力として、前記要求側公開鍵ｐｋ’と前記乱数ｒを用いて前記第１の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ’を実行することにより、暗号文ＣＴ’を生成する要求側第１暗号化ステップと、
前記要求装置が、少なくとも前記暗号文ＣＴ’と前記要求側鍵識別子αを含む第１情報ｔ１を前記応答装置へ送信する第１情報送信ステップと、
前記応答装置が、前記要求側鍵識別子αを前記鍵公開装置へ送信し、前記鍵公開装置の出力する公開鍵を前記要求側公開鍵ｐｋ’として受信する要求側公開鍵取得ステップと、
前記応答装置が、前記スムース射影ハッシュ関数のハッシュ鍵ｈｋを生成する応答側ハッシュ鍵生成ステップと、
前記応答装置が、前記ハッシュ鍵ｈｋと前記暗号文ＣＴ’と前記要求側公開鍵ｐｋ’を入力として、前記スムース射影ハッシュ関数の射影関数Ｆを計算することにより、射影鍵ｈｐを生成する応答側射影鍵生成ステップと、
前記応答装置が、前記暗号文ＣＴ’と前記要求側公開鍵ｐｋ’と前記パスワードｐｗを入力として、前記ハッシュ鍵ｈｋを用いて前記スムース射影ハッシュ関数の鍵付きハッシュ関数Ｈを計算することにより、第１セッション鍵ｒＢと第２セッション鍵τＢと第３セッション鍵ＳＫＢを生成する応答側セッション鍵生成ステップと、
前記応答装置が、少なくとも前記パスワードｐｗを入力として、前記応答側公開鍵ｐｋと前記第１セッション鍵ｒＢを用いて前記第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴを生成する応答側第１暗号化ステップと、
前記応答装置が、少なくとも前記射影鍵ｈｐと前記暗号文ＣＴと前記応答側鍵識別子βを含む第２情報ｔ２を前記要求装置へ送信する第２情報送信ステップと、
前記要求装置が、前記応答側鍵識別子βを前記鍵公開装置へ送信し、前記鍵公開装置の出力する公開鍵を前記応答側公開鍵ｐｋとして受信する応答側公開鍵取得ステップと、
前記要求装置が、前記暗号文ＣＴ’と前記要求側公開鍵ｐｋ’と前記パスワードｐｗと前記乱数ｒを入力として、前記射影鍵ｈｐを用いて前記スムース射影ハッシュ関数のハッシュ関数ｈを計算することにより、第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを生成する要求側セッション鍵生成ステップと、
前記要求装置が、少なくとも前記パスワードｐｗを入力として、前記応答側公開鍵ｐｋと前記第１セッション鍵ｒＡを用いて前記第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴ＾を生成する要求側第２暗号化ステップと、
前記要求装置が、前記暗号文ＣＴが前記暗号文ＣＴ＾と等しいか否かを検証する暗号文検証ステップと、
前記要求装置が、少なくとも前記第２セッション鍵τＡを含む第３情報ｔ３を前記応答装置へ送信する第３情報送信ステップと、
前記第３セッション鍵ＳＫＡを前記セッション鍵ＳＫとして出力する要求側セッション鍵出力ステップと、
前記応答装置が、前記第２セッション鍵τＡが前記第２セッション鍵τＢと等しいか否かを検証するセッション鍵検証ステップと、
前記応答装置が、前記第３セッション鍵ＳＫＢを前記セッション鍵ＳＫとして出力する応答側セッション鍵出力ステップと、
を含むことを特徴とする鍵交換方法。
【請求項９】
あらかじめパスワードｐｗを共有する要求装置と応答装置との間でセッション鍵ＳＫを共有する鍵交換方法であって、
前記要求装置が、ランダムな整数ｗ１を選択する第１鍵乱数生成ステップと、
前記要求装置が、前記乱数ｗ１を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ１を実行することにより、第１公開鍵ｐｋ１を生成する第１公開鍵生成ステップと、
前記要求装置が、ランダムな整数ｗ２を選択する第２鍵乱数生成ステップと、
前記要求装置が、前記乱数ｗ２を用いて、第２の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ２を実行することにより、第２公開鍵ｐｋ２を生成する第２公開鍵生成ステップと、
前記応答装置が、ランダムな整数ｗ’を選択する応答側鍵乱数生成ステップと、
前記応答装置が、前記乱数ｗ’を用いて、前記スムース射影ハッシュ関数をサポートする第３の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ’を実行することにより、応答側公開鍵ｐｋ’を生成する応答側公開鍵生成ステップと、
前記要求装置が、ランダムな整数ｒを選択する要求側乱数生成ステップと、
前記要求装置が、前記パスワードｐｗを入力として、前記第１公開鍵ｐｋ１と前記乱数ｒを用いて前記第１の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ１を実行することにより、暗号文ＣＴ１を生成する要求側第１暗号化ステップと、
前記要求装置が、少なくとも前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１と前記第２公開鍵ｐｋ２を含む第１情報ｔ１を前記応答装置へ送信する第１情報送信ステップと、
前記要求装置が、前記第１公開鍵ｐｋ１と前記第２公開鍵ｐｋ２が正しく生成されたことを、コンカレント安全なゼロ知識証明ｃＺＫを用いて前記応答装置に対して証明する要求側公開鍵証明ステップと、
前記応答装置が、前記スムース射影ハッシュ関数のハッシュ鍵ｈｋ’を生成する応答側ハッシュ鍵生成ステップと、
前記応答装置が、前記ハッシュ鍵ｈｋ’と前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１を入力として、前記スムース射影ハッシュ関数の射影関数Ｆ’を計算することにより、射影鍵ｈｐ’を生成する応答側射影鍵生成ステップと、
前記応答装置が、前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１と前記パスワードｐｗを入力として、前記ハッシュ鍵ｈｋ’を用いて前記スムース射影ハッシュ関数の鍵付きハッシュ関数Ｈ’を計算することにより、ハッシュ値δ’を生成する応答側ハッシュ値計算ステップと、
前記応答装置が、ランダムな整数ｒ’を選択する応答側乱数生成ステップと、
前記応答装置が、前記パスワードｐｗを入力として、前記応答側公開鍵ｐｋ’と前記乱数ｒ’を用いて前記第３の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ’を実行することにより、前記暗号文ＣＴ’を生成する応答側第２暗号化ステップと、
前記応答装置が、少なくとも前記射影鍵ｈｐ’と前記応答側公開鍵ｐｋ’と前記暗号文ＣＴ’と前記ハッシュ値δ’を含む第２情報ｔ２を前記応答装置へ送信する第２情報送信ステップと、
前記応答装置が、前記暗号文ＣＴ’と前記ハッシュ値δ’が正しく生成されたことを、証拠識別不可能証明ＮＭＷＩ’を用いて前記要求装置に対して証明する応答側暗号文証明ステップと、
前記応答装置が、前記応答側公開鍵ｐｋ’が正しく生成されたことを、コンカレント安全なゼロ知識証明ｃＺＫ’を用いて前記要求装置に対して証明する応答側公開鍵証明ステップと、
前記要求装置が、前記暗号文ＣＴ１と前記第１公開鍵ｐｋ１と前記パスワードｐｗと前記乱数ｒを入力として、前記射影鍵ｈｐ’を用いて前記スムース射影ハッシュ関数のハッシュ関数ｈ’を計算することにより、ハッシュ値δを生成する要求側ハッシュ値計算ステップと、
前記要求装置が、前記ハッシュ値δ’が前記ハッシュ値δと等しいか否かを検証する要求側ハッシュ値検証ステップと、
前記要求装置が、前記スムース射影ハッシュ関数のハッシュ鍵ｈｋを生成する要求側ハッシュ鍵生成ステップと、
前記要求装置が、前記ハッシュ鍵ｈｋと前記暗号文ＣＴ’と前記応答側公開鍵ｐｋ’を入力として、前記スムース射影ハッシュ関数の射影関数Ｆを計算することにより、射影鍵ｈｐを生成する要求側射影鍵生成ステップと、
前記要求装置が、前記暗号文ＣＴ’と前記応答側公開鍵ｐｋ’と前記パスワードｐｗを入力として、前記ハッシュ鍵ｈｋを用いて前記スムース射影ハッシュ関数の鍵付きハッシュ関数Ｈを計算することにより、第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを生成する要求側セッション鍵生成ステップと、
前記要求装置が、少なくとも前記パスワードｐｗを入力として、前記第２公開鍵ｐｋ２と前記第１セッション鍵ｒＡを用いて前記第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ２を実行することにより、暗号文ＣＴ２を生成する要求側第２暗号化ステップと、
前記要求装置が、少なくとも前記射影鍵ｈｐと前記暗号文ＣＴ２と前記ハッシュ値δを含む第３情報ｔ３を前記応答装置へ送信する第３情報送信ステップと、
前記要求装置が、前記第１セッション鍵ｒＡと前記暗号文ＣＴ２と前記ハッシュ値δが正しく生成されたことを、証拠識別不可能証明ＮＭＷＩを用いて前記応答装置に対して証明する要求側暗号文証明ステップと、
前記応答装置が、前記ハッシュ値δが前記ハッシュ値δ’と等しいか否かを検証する応答側ハッシュ値検証ステップと、
前記応答装置が、前記暗号文ＣＴ’と前記応答側公開鍵ｐｋ’と前記パスワードｐｗと前記乱数ｒ’を入力として、前記射影鍵ｈｐを用いて前記スムース射影ハッシュ関数のハッシュ関数ｈを計算することにより、第１セッション鍵ｒＢと前記第２セッション鍵τＢと第３セッション鍵ＳＫＢを生成する応答側セッション鍵生成ステップと、
前記応答装置が、少なくとも前記パスワードｐｗを入力として、前記第２公開鍵ｐｋ２と前記第１セッション鍵ｒＢを用いて前記第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ２を実行することにより、暗号文ＣＴ＾２を生成する応答側第１暗号化ステップと、
前記応答装置が、前記暗号文ＣＴ２が前記暗号文ＣＴ＾２と等しいか否かを検証する暗号文検証ステップと、
前記応答装置が、少なくとも前記第２セッション鍵τＢを含む第４情報ｔ４を前記要求装置へ送信する第４情報送信ステップと、
前記応答装置が、前記第３セッション鍵ＳＫＢを前記セッション鍵ＳＫとして出力する応答側セッション鍵出力ステップと、
前記要求装置が、前記第２セッション鍵τＢが前記第２セッション鍵τＡと等しいか否かを検証するセッション鍵検証ステップと、
前記要求装置が、前記第３セッション鍵ＳＫＡを前記セッション鍵ＳＫとして出力する要求側セッション鍵出力ステップと、
を含むことを特徴とする鍵交換方法。
【請求項１０】
請求項４または５に記載の要求装置もしくは請求項６または７に記載の応答装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報セキュリティ技術の応用技術に関し、特に、装置間で共通のセッション鍵を共有する鍵交換技術に関する。
【背景技術】
【０００２】
装置間で共通のセッション鍵を共有する鍵交換方式の従来技術として、パスワードに基づく鍵交換方式がある（例えば、非特許文献１参照）。パスワードに基づく鍵交換方式は、共通のパスワードを秘密に保持する装置間で十分な長さの共通のセッション鍵を共有する鍵交換方法である。以下に非特許文献１に記載されている従来のパスワードに基づく鍵交換方式について説明する。
［スムース射影ハッシュ関数の説明］
非特許文献１に記載のパスワードに基づく鍵交換方式では、スムース射影ハッシュ関数を利用する。スムース射影ハッシュ関数は以下の性質を満たすハッシュ関数である。
【０００３】
Ｋをセキュリティパラメータとする。ある公開鍵暗号方式Σ’（鍵生成アルゴリズムＧｅｎ’，暗号化アルゴリズムＥｎｃ’，復号アルゴリズムＤｅｃ’）を考え、Ｄをメッセージ空間、ＰＫＳを公開鍵空間、ＣＴＳをある公開鍵ｐｋ∈ＰＫＳに対する正当暗号文空間とする。Ｘを集合｛（ＣＴ，ｐｋ，ｍ）｜ｐｋ∈ＰＫＳ；ＣＴ∈ＣＴＳ；ｍ∈Ｄ｝とし、Ｌｍを集合｛（ＣＴ，ｐｋ，ｍ）｜（ｐｋ，ｓｋ）←Ｇｅｎ’（１Ｋ）；ｍ＝Ｄｅｃ’ｓｋ（ＣＴ）｝とし、Ｌを集合∪ｍ∈ＤＬｍとする。Ｈｈｋは定義域Ｘから値域｛０，１｝Ｋへの鍵付きハッシュ関数であり、ハッシュ鍵ｈｋに基づき入力に対して出力が計算される。また、ある射影関数Ｆ（・）が存在し、ハッシュ鍵ｈｋから射影鍵ｈｐ＝Ｆ（ｈｋ，ＣＴ，ｐｋ）が計算される。ハッシュ関数への入力がｘ∈Ｌを満たすならば、ｘ∈Ｌであることの証拠ｗと射影鍵ｈｐを用いてＨｈｋ（ｘ）＝ｈｈｐ（ｘ，ｗ）となるような関数ｈが計算できる。ハッシュ関数への入力ｘがＬに属さないならば、ｘ∈Ｌであることの証拠ｗが存在しないため、Ｈｈｋ（ｘ）＝ｈｈｐ（ｘ，ｗ）となるような関数ｈが計算できない。
【０００４】
［パラメータ］
第１の公開鍵暗号方式Σ’＝（Ｇｅｎ’，Ｅｎｃ’，Ｄｅｃ’）と第２の公開鍵暗号方式Σ＝（Ｇｅｎ，Ｅｎｃ，Ｄｅｃ）を用いる。ただし、第１の公開鍵暗号方式Σ’はスムース射影ハッシュ関数をサポートする。要求装置と応答装置は共通のパスワードｐｗを秘密に保持する。Ａは要求装置を一意に識別する情報である。Ｂは応答装置を一意に識別する情報である。
【０００５】
［共通参照情報］
非特許文献１に記載のパスワードに基づく鍵交換方式では、共通参照情報を利用する。共通参照情報とは信頼できる第三者によって生成され、プロトコル参加者が自由に参照できる情報である。ここでは、第１の公開鍵暗号方式Σ’の公開鍵ｐｋ’と第２の公開鍵暗号方式Σの公開鍵ｐｋを共通参照情報とする。
【０００６】
［鍵交換処理］
Ａ−１：要求装置は、乱数ｒ←｛０，１｝＊を選択し、暗号文ＣＴ’＝Ｅｎｃ’ｐｋ’（ｐｗ；ｒ）を計算する。
Ａ−２：要求装置は、第１情報ｔ１：＝Ａ｜｜ＣＴ’を応答装置へ送信する。
Ｂ−１：応答装置は、スムース射影ハッシュ関数のハッシュ鍵ｈｋを選択する。
Ｂ−２：応答装置は、射影鍵ｈｐ＝Ｆ（ｈｋ，ＣＴ’，ｐｋ’）を計算する。
Ｂ−３：応答装置は、ハッシュ鍵ｈｋを用いて、ｒＢ｜｜τＢ｜｜ＳＫＢ＝Ｈｈｋ（ＣＴ’，ｐｋ’，ｐｗ）を計算する。
Ｂ−４：応答装置は、暗号文ＣＴ＝Ｅｎｃｐｋ（ｔ１，｜｜Ｂ｜｜ｈｐ｜｜ｐｗ；ｒＢ）を計算する。
Ｂ−５：応答装置は、第２情報ｔ２：＝Ｂ｜｜ｈｐ｜｜ＣＴを要求装置へ送信する。
Ａ−３：要求装置は、射影鍵ｈｐと乱数ｒを用いて、ｒＡ｜｜τＡ｜｜ＳＫＡ＝ｈｈｐ（ＣＴ’，ｐｋ’，ｐｗ，ｒ）を計算する。
Ａ−４：要求装置は、暗号文ＣＴ＾＝Ｅｎｃｐｋ（ｔ１，｜｜Ｂ｜｜ｈｐ｜｜ｐｗ；ｒＡ）を計算する。
Ａ−５：要求装置は、ＣＴ＾≠ＣＴであれば処理を停止する。ＣＴ＾＝ＣＴであれば第３情報ｔ３：＝Ａ｜｜τＡを応答装置へ送信する。
Ａ−６：要求装置は、ＳＫＡをセッション鍵ＳＫとして出力する。
Ｂ−６：応答装置は、τＡ≠τＢであれば処理を停止する。τＡ＝τＢであれば応答装置はＳＫＢをセッション鍵ＳＫとして出力する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Adam Groce and Jonathan Katz, “A new framework for efficient password-based authenticated key exchange.”, ACM Conference on Computer and Communications Security 2010.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のパスワードに基づく鍵交換技術では、安全性を保証するために共通参照情報が必要であった。共通参照情報の生成者は公開鍵を生成するために秘密鍵を知ることができるため、仮に、悪意のある第三者が共通参照情報を生成した場合には、鍵交換処理において送受信されるパスワード暗号文を復号され、共通のパスワードが漏洩するという問題があった。したがって、従来のパスワードに基づく鍵交換方式では、共通参照情報を信頼できる第三者が生成することが前提となっていた。
【０００９】
この発明はこのような点に鑑みてなされたものであり、共通参照情報を用いずに、共通のパスワードを保持する装置間で共通のセッション鍵を安全に共有する鍵交換技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、この発明の鍵交換システムは、要求装置と応答装置と鍵公開装置を含み、あらかじめパスワードｐｗを共有する要求装置と応答装置との間でセッション鍵ＳＫを共有する。
【００１１】
鍵公開装置は、鍵記憶部と鍵登録部と鍵公開部を備える。鍵記憶部は、要求装置の公開鍵である要求側公開鍵ｐｋ’と応答装置の公開鍵である応答側公開鍵ｐｋを記憶する。鍵登録部は、受信した公開鍵を鍵記憶部に記憶し、鍵記憶部における公開鍵を一意に識別する情報である鍵識別子を出力する。鍵公開部は、受信した鍵識別子に基づいて鍵記憶部から公開鍵を抽出する。
【００１２】
要求装置は、要求側鍵乱数生成部と要求側公開鍵生成部と要求側公開鍵登録部と要求側乱数生成部と要求側第１暗号化部と第１情報送信部と応答側公開鍵取得部と要求側セッション鍵生成部と要求側第２暗号化部と暗号文検証部と第３情報送信部と要求側セッション鍵出力部を備える。要求側鍵乱数生成部は、ランダムな整数ｗ’を選択する。要求側公開鍵生成部は、乱数ｗ’を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎ’を実行することにより、要求側公開鍵ｐｋ’を生成する。要求側公開鍵登録部は、要求側公開鍵ｐｋ’を鍵公開装置へ送信し、鍵公開装置の出力する鍵識別子を要求側鍵識別子αとして受信する。要求側乱数生成部は、ランダムな整数ｒを選択する。要求側第１暗号化部は、パスワードｐｗを入力として、要求側公開鍵ｐｋ’と乱数ｒを用いて第１の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ’を実行することにより、暗号文ＣＴ’を生成する。第１情報送信部は、少なくとも暗号文ＣＴ’と要求側鍵識別子αを含む第１情報ｔ１を応答装置へ送信する。応答側公開鍵取得部は、応答装置から受信した応答側鍵識別子βを鍵公開装置へ送信し、鍵公開装置の出力する公開鍵を応答側公開鍵ｐｋとして受信する。要求側セッション鍵生成部は、暗号文ＣＴ’と要求側公開鍵ｐｋ’とパスワードｐｗと乱数ｒを入力として、応答装置から受信した射影鍵ｈｐを用いてスムース射影ハッシュ関数のハッシュ関数ｈを計算することにより、第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを生成する。要求側第２暗号化部は、少なくともパスワードｐｗを入力として、応答側公開鍵ｐｋと第１セッション鍵ｒＡを用いて第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴ＾を生成する。暗号文検証部は、応答装置から受信した暗号文ＣＴが暗号文ＣＴ＾と等しいか否かを検証する。第３情報送信部は、少なくとも第２セッション鍵τＡを含む第３情報ｔ３を応答装置へ送信する。要求側セッション鍵出力部は、第３セッション鍵ＳＫＡをセッション鍵ＳＫとして出力する。
【００１３】
応答装置は、応答側鍵乱数生成部と応答側公開鍵生成部と応答側公開鍵登録部と要求側公開鍵取得部と応答側ハッシュ鍵生成部と応答側射影鍵生成部と応答側セッション鍵生成部と応答側第１暗号化部と第２情報送信部とセッション鍵検証部と応答側セッション鍵出力部を備える。応答側鍵乱数生成部は、ランダムな整数ｗを選択する。応答側公開鍵生成部は、乱数ｗを用いて、第２の公開鍵暗号方式の鍵生成アルゴリズムＧｅｎを実行することにより、応答側公開鍵ｐｋを生成する。応答側公開鍵登録部は、応答側公開鍵ｐｋを鍵公開装置へ送信し、鍵公開装置の出力する鍵識別子を応答側鍵識別子βとして受信する。要求側公開鍵取得部は、要求装置から受信した要求側鍵識別子αを鍵公開装置へ送信し、鍵公開装置の出力する公開鍵を要求側公開鍵ｐｋ’として受信する。応答側ハッシュ鍵生成部は、スムース射影ハッシュ関数のハッシュ鍵ｈｋを生成する。応答側射影鍵生成部は、ハッシュ鍵ｈｋと要求装置から受信した暗号文ＣＴ’と要求側公開鍵ｐｋ’を入力として、スムース射影ハッシュ関数の射影関数Ｆを計算することにより、射影鍵ｈｐを生成する。応答側セッション鍵生成部は、暗号文ＣＴ’と要求側公開鍵ｐｋ’とパスワードｐｗを入力として、ハッシュ鍵ｈｋを用いてスムース射影ハッシュ関数の鍵付きハッシュ関数Ｈを計算することにより、第１セッション鍵ｒＢと第２セッション鍵τＢと第３セッション鍵ＳＫＢを生成する。応答側第１暗号化部は、少なくともパスワードｐｗを入力として、応答側公開鍵ｐｋと第１セッション鍵ｒＢを用いて第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴを生成する。第２情報送信部は、少なくとも射影鍵ｈｐと暗号文ＣＴと応答側鍵識別子βを含む第２情報ｔ２を要求装置へ送信する。セッション鍵検証部は、要求装置から受信した第２セッション鍵τＡが第２セッション鍵τＢと等しいか否かを検証する。応答側セッション鍵出力部は、第３セッション鍵ＳＫＢをセッション鍵ＳＫとして出力する。
【発明の効果】
【００１４】
この発明の鍵交換技術によれば、共通参照情報を用いずに、共通のパスワードを保持する装置間で共通のセッション鍵を安全に共有することができる。
【図面の簡単な説明】
【００１５】
【図１】実施例１にかかる鍵交換システムの構成例を示すブロック図。
【図２】実施例１にかかる要求装置の構成例を示すブロック図。
【図３】実施例１にかかる応答装置の構成例を示すブロック図。
【図４】実施例１にかかる鍵公開装置の構成例を示すブロック図。
【図５】実施例１にかかる鍵交換方法の動作例を示すフローチャート１。
【図６】実施例１にかかる鍵交換方法の動作例を示すフローチャート２。
【図７】実施例１にかかる鍵交換方法の動作例を示すフローチャート３。
【図８】実施例２にかかる鍵交換システムの構成例を示すブロック図。
【図９】実施例２にかかる要求装置の構成例を示すブロック図。
【図１０】実施例２にかかる応答装置の構成例を示すブロック図。
【図１１】実施例２にかかる鍵交換方法の動作例を示すフローチャート１。
【図１２】実施例２にかかる鍵交換方法の動作例を示すフローチャート２。
【図１３】実施例２にかかる鍵交換方法の動作例を示すフローチャート３。
【図１４】実施例３にかかる鍵交換システムの構成例を示すブロック図。
【図１５】実施例３にかかる要求装置の構成例を示すブロック図。
【図１６】実施例３にかかる応答装置の構成例を示すブロック図。
【図１７】実施例３にかかる鍵交換方法の動作例を示すフローチャート１。
【図１８】実施例３にかかる鍵交換方法の動作例を示すフローチャート２。
【図１９】実施例３にかかる鍵交換方法の動作例を示すフローチャート３。
【図２０】実施例３にかかる鍵交換方法の動作例を示すフローチャート４。
【図２１】従来例にかかる鍵交換システムの構成例を示すブロック図。
【図２２】従来例にかかる要求装置の構成例を示すブロック図。
【図２３】従来例にかかる応答装置の構成例を示すブロック図。
【図２４】従来例にかかる共通参照情報生成装置の構成例を示すブロック図。
【図２５】従来例にかかる鍵交換方法の動作例を示すフローチャート１。
【図２６】従来例にかかる鍵交換方法の動作例を示すフローチャート２。
【図２７】従来例にかかる鍵交換方法の動作例を示すフローチャート３。
【発明を実施するための形態】
【００１６】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１７】
［この明細書で利用する表記方法］
∧は論理積を表す。
∨は論理和を表す。
｜｜は連結を表す。
｛０，１｝＊は任意ビット長のバイナリ系列を表す。例えば、整数０および１からなる系列である。ただし、｛０，１｝＊は整数０および１からなる系列に限定されない。｛０，１｝＊は位数２の有限体またはその拡大体と同義である。
【００１８】
【数１】
0005651631.tif 000002
【００１９】
は、ある値ａ，ｂについて、ａにｂを代入する、またはａをｂで定義することを表す。
【００２０】
【数２】
0005651631.tif 000003
【００２１】
は、ある有限集合Ｓについて、集合Ｓから要素ｒを一様ランダムに選ぶことを表す。
【００２２】
【数３】
0005651631.tif 000004
【００２３】
は、ある確率的多項式時間アルゴリズムＡについて、アルゴリズムＡがｘを入力にとり、乱数を生成して動作し、ａを出力することを表す。
【００２４】
【数４】
0005651631.tif 000005
【００２５】
は、ある確率的多項式時間アルゴリズムＡについて、アルゴリズムＡがｘを入力にとり、鍵ｋを用いて、乱数ｒを明示的に使用して動作し、ａを出力することを表す。
【００２６】
［従来のパスワードに基づく鍵交換システム］
実施例の説明に先立ち、非特許文献１に記載されている従来のパスワードに基づく鍵交換方式を用いた鍵交換システムの構成例を詳細に説明する。
【００２７】
＜構成＞
図２１を参照して、従来の鍵交換システム９の構成例を詳細に説明する。従来の鍵交換システム９は、ネットワーク９０と要求装置１９と応答装置２９と共通参照情報生成装置３９から構成される。要求装置１９と応答装置２９はネットワーク９０に接続される。ネットワーク９０は要求装置１９と応答装置２９がそれぞれ相互に通信可能であればよく、例えばインターネットやＬＡＮ、ＷＡＮなどで構成することができる。共通参照情報生成装置３９はネットワーク９０に接続することもできるし、接続しなくてもよい。共通参照情報生成装置３９をネットワーク９０に接続する場合には、ネットワーク９０は共通参照情報生成装置３９が要求装置１９と応答装置２９とそれぞれ相互に通信可能なように構成する。共通参照情報生成装置３９をネットワーク９０に接続しない場合には、ＵＳＢメモリやＦＤなどの可搬媒体を用いてオフラインで情報の移動を行う。
【００２８】
図２２を参照して、鍵交換システム９を構成する要求装置１９の構成例を詳細に説明する。要求装置１９は、要求側乱数生成部１１５と要求側第１暗号化部１２０と第１情報送信部１２５と要求側セッション鍵生成部１３５と要求側第２暗号化部１４０と暗号文検証部１４５と第３情報送信部１５０と要求側セッション鍵出力部１５５と要求側パスワード記憶部１９０と要求側ＣＲＳ記憶部１９５を備える。
【００２９】
図２３を参照して、鍵交換システム９を構成する応答装置２９の構成例を詳細に説明する。応答装置２９は、応答側ハッシュ鍵生成部２２０と応答側射影鍵生成部２２５と応答側セッション鍵生成部２３０と応答側第１暗号化部２３５と第２情報送信部２４０とセッション鍵検証部２４５と応答側セッション鍵出力部２５０と応答側パスワード記憶部２９０と応答側ＣＲＳ記憶部を備える。
【００３０】
図２４を参照して、鍵交換システム９を構成する共通参照情報生成装置３９の構成例を詳細に説明する。共通参照情報生成装置３９は、ＣＲＳ生成部３９１とＣＲＳ配信部３９２を備える。
【００３１】
＜パラメータ＞
第１の公開鍵暗号方式Σ’＝（Ｇｅｎ’，Ｅｎｃ’，Ｄｅｃ’）と第２の公開鍵暗号方式Σ＝（Ｇｅｎ，Ｅｎｃ，Ｄｅｃ）を用いる。ただし、第１の公開鍵暗号方式Σ’はスムース射影ハッシュ関数をサポートする。スムース射影ハッシュ関数をサポートする公開鍵暗号方式としては、例えば、ElGamal暗号を適用できる（詳細は、参考文献１：「Rosario Gennaro and Yehuda Lindell, “A Framework for Password-Based Authenticated Key Exchange.”, ACM Trans. Inf. Syst. Secur. 9(2), 2006.」参照）。
【００３２】
要求装置１９の備える要求側パスワード記憶部１９０と応答装置２９の備える応答側パスワード記憶部２９０には、共通のパスワードｐｗがあらかじめ記憶されている。パスワードｐｗを要求装置１９と応答装置２９とで共有する方法は既知のいかなる方法を用いてもよく、例えば、対面等によるオフラインでの共有方法であっても、鍵カプセル化メカニズム等のオンラインでの鍵共有方式等を用いてもよい。パスワードｐｗの長さに限定はなく、対面でのパスワード共有が可能な程度に短いパスワードであってもよい。
【００３３】
要求側パスワード記憶部１９０および応答側パスワード記憶部２９０は、例えば、ＲＡＭ（Random Access Memory）や、フラッシュメモリ（Flash Memory）などの半導体メモリ素子、リレーショナルデータベースやキーバリューストアなどのミドルウェア、又は、ハードディスクや光ディスクなどの補助記憶装置により構成することができる。
【００３４】
＜公開鍵生成処理＞
図２５を参照して、鍵交換システム９における公開鍵生成処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
【００３５】
共通参照情報生成装置３９のＣＲＳ生成部３９１は、公開鍵生成のためのランダムな整数ｗ’とランダムな整数ｗを選択する。次に、セキュリティパラメータＫを入力として、乱数ｗ’を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式Σ’の鍵生成アルゴリズムＧｅｎ’を実行することにより、要求側公開鍵ｐｋ’を生成する（Ｓ３９１１）。したがって、要求側公開鍵ｐｋ’の生成処理は、以下の式のように表すことができる。
【００３６】
【数５】
0005651631.tif 000006
【００３７】
続いて、共通参照情報生成装置３９のＣＲＳ生成部３９１は、セキュリティパラメータＫを入力として、乱数ｗを用いて、第２の公開鍵暗号方式Σの鍵生成アルゴリズムＧｅｎを実行することにより、応答側公開鍵ｐｋを生成する（Ｓ３９１２）。したがって、応答側公開鍵ｐｋの生成処理は、以下の式のように表すことができる。
【００３８】
【数６】
0005651631.tif 000007
【００３９】
共通参照情報生成装置３９のＣＲＳ配信部３９２は、要求側公開鍵ｐｋ’と応答側公開鍵ｐｋを含む共通参照情報ＣＲＳを生成する。そして、生成した共通参照情報ＣＲＳを要求装置１９と応答装置２９へ送信する（Ｓ３９２）。
【００４０】
要求装置１９は、共通参照情報生成装置３９から受信した共通参照情報ＣＲＳを要求側ＣＲＳ記憶部１９５へ記憶する（Ｓ１９５）。また、応答装置２９は、共通参照情報生成装置３９から受信した共通参照情報ＣＲＳを応答側ＣＲＳ記憶部２９５へ記憶する（Ｓ２９５）。
【００４１】
＜鍵交換処理＞
図２６，２７を参照して、鍵交換システム９の鍵交換方法における鍵交換処理の動作例を実際に行われる手続きの順に従って詳細に説明する。図２６のＤ１，Ｄ２はそれぞれ、図２７のＤ１，Ｄ２に処理の流れが続くことを表している。
【００４２】
要求装置１９の要求側乱数生成部１１５は、暗号化のためのランダムな整数ｒ←｛０，１｝＊を選択する（Ｓ１１５）。
【００４３】
要求装置１９の要求側第１暗号化部１２０は、要求側パスワード記憶部１９０に記憶されているパスワードｐｗを入力として、要求側公開鍵ｐｋ’と乱数ｒを用いて第１の公開鍵暗号方式Σ’の暗号化アルゴリズムＥｎｃ’を実行することにより、暗号文ＣＴ’を生成する（Ｓ１２０）。要求側公開鍵ｐｋ’は要求側ＣＲＳ記憶部１９５に記憶されている共通参照情報ＣＲＳから取得する。したがって、要求側第１暗号化部１２０の処理は、以下の式のように表すことができる。
【００４４】
【数７】
0005651631.tif 000008
【００４５】
要求装置１９の第１情報送信部１２５は、要求装置１９を一意に識別する情報Ａと暗号文ＣＴ’を連結することで第１情報ｔ１を生成する。そして、生成した第１情報ｔ１を応答装置２９へ送信する（Ｓ１２５）。したがって、第１情報ｔ１は以下の式のように表すことができる。
【００４６】
【数８】
0005651631.tif 000009
【００４７】
応答装置２９の応答側ハッシュ鍵生成部２２０は、スムース射影ハッシュ関数のハッシュ鍵ｈｋを生成する（Ｓ２２０）。ハッシュ鍵ｈｋはスムース射影ハッシュ関数の鍵空間からランダムに選択される。
【００４８】
応答装置２９の応答側射影鍵生成部２２５は、ハッシュ鍵ｈｋと暗号文ＣＴ’と要求側公開鍵ｐｋ’を入力として、スムース射影ハッシュ関数の射影関数Ｆを計算することにより、射影鍵ｈｐを生成する（Ｓ２２５）。要求側公開鍵ｐｋ’は応答側ＣＲＳ記憶部２９５に記憶されている共通参照情報ＣＲＳから取得する。したがって、応答側射影鍵生成部２２５の処理は、以下の式のように表すことができる。
【００４９】
【数９】
0005651631.tif 000010
【００５０】
応答装置２９の応答側セッション鍵生成部２３０は、暗号文ＣＴ’と要求側公開鍵ｐｋ’とパスワードｐｗを入力として、ハッシュ鍵ｈｋを用いてスムース射影ハッシュ関数の鍵付きハッシュ関数Ｈを計算することにより、第１セッション鍵ｒＢと第２セッション鍵τＢと第３セッション鍵ＳＫＢを生成する（Ｓ２３０）。要求側公開鍵ｐｋ’は応答側ＣＲＳ記憶部２９５に記憶されている共通参照情報ＣＲＳから取得する。したがって、応答側セッション鍵生成部２３０の処理は、以下の式のように表すことができる。
【００５１】
【数１０】
0005651631.tif 000011
【００５２】
鍵付きハッシュ関数Ｈは、セキュリティパラメータＫに基づいて定められるビット長の１つのハッシュ値を生成するため、あらかじめ定めたビット数で第１セッション鍵ｒＢと第２セッション鍵τＢと第３セッション鍵ＳＫＢを切り出す。例えば、セキュリティパラメータＫに基づいてＫビットのハッシュ値が生成されるのであれば、先頭から１ビット目からＫ／３ビット目までを第１セッション鍵ｒＢ、Ｋ／３＋１ビット目から２Ｋ／３ビット目までを第２セッション鍵τＢ、２Ｋ／３＋１ビット目からＫビット目までを第３セッション鍵ＳＫＢとする。
【００５３】
応答装置２９の応答側第１暗号化部２３５は、第１情報ｔ１と応答装置２９を一意に識別する情報Ｂと射影鍵ｈｐとパスワードｐｗを連結したビット列を入力として、応答側公開鍵ｐｋと第１セッション鍵ｒＢを用いて、第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴを生成する（Ｓ２３５）。応答側公開鍵ｐｋは応答側ＣＲＳ記憶部２９５に記憶されている共通参照情報ＣＲＳから取得する。したがって、応答側第１暗号化部２３５の処理は、以下の式のように表すことができる。
【００５４】
【数１１】
0005651631.tif 000012
【００５５】
応答装置２９の第２情報送信部２４０は、応答装置２９を一意に識別する情報Ｂと射影鍵ｈｐと暗号文ＣＴを連結することで第２情報ｔ２を生成する。そして、生成した第２情報ｔ２を要求装置１０へ送信する（Ｓ２４０）。したがって、第２情報ｔ２は以下の式のように表すことができる。
【００５６】
【数１２】
0005651631.tif 000013
【００５７】
要求装置１９の要求側セッション鍵生成部１３５は、暗号文ＣＴ’と要求側公開鍵ｐｋ’とパスワードｐｗと乱数ｒを入力として、射影鍵ｈｐを用いてスムース射影ハッシュ関数のハッシュ関数ｈを計算することにより、第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを生成する（Ｓ１３５）。要求側公開鍵ｐｋ’は要求側ＣＲＳ記憶部１９５に記憶されている共通参照情報ＣＲＳから取得する。したがって、要求側セッション生成部１３５の処理は、以下の式のように表すことができる。
【００５８】
【数１３】
0005651631.tif 000014
【００５９】
ハッシュ関数ｈは鍵付きハッシュ関数Ｈと同様に、セキュリティパラメータＫに基づいて定められるビット長の１つのハッシュ値を生成するため、あらかじめ定めたビット数で第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを切り出す。例えば、セキュリティパラメータＫに基づいてＫビットのハッシュ値が生成されるのであれば、先頭から１ビット目からＫ／３ビット目までを第１セッション鍵ｒＡ、Ｋ／３＋１ビット目から２Ｋ／３ビット目までを第２セッション鍵τＡ、２Ｋ／３＋１ビット目からＫビット目までを第３セッション鍵ＳＫＡとする。
【００６０】
要求装置１９の要求側第２暗号化部１４０は、第１情報ｔ１と応答装置２９を一意に識別する情報Ｂと射影鍵ｈｐとパスワードｐｗを連結したビット列を入力として、応答側公開鍵ｐｋと第１セッション鍵ｒＡを用いて、第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴ＾を生成する（Ｓ１４０）。応答側公開鍵ｐｋは要求側ＣＲＳ記憶部１９５に記憶されている共通参照情報ＣＲＳから取得する。したがって、要求側第２暗号化部１４０の処理は、以下の式のように表すことができる。
【００６１】
【数１４】
0005651631.tif 000015
【００６２】
要求装置１９の暗号文検証部１４５は、受信した暗号文ＣＴが暗号文ＣＴ＾と等しいか否かを検証する（Ｓ１４５）。ＣＴ≠ＣＴ＾であれば処理を停止する。ＣＴ＝ＣＴ＾であれば処理を続行する。
【００６３】
要求装置１９の第３情報送信部１５０は、第２セッション鍵τＡを含む第３情報ｔ３を生成する。そして、生成した第３情報ｔ３を応答装置２０へ送信する（Ｓ１５０）。したがって、第３情報ｔ３は以下の式のように表すことができる。
【００６４】
【数１５】
0005651631.tif 000016
【００６５】
要求装置１９の要求側セッション鍵出力部１５５は、第３セッション鍵ＳＫＡをセッション鍵ＳＫとして出力する（Ｓ１５５）。
【００６６】
応答装置２９のセッション鍵検証部２４５は、受信した第２セッション鍵τＡが第２セッション鍵τＢと等しいか否かを検証する（Ｓ２４５）。τＡ≠τＢであれば処理を停止する。τＡ＝τＢであれば処理を続行する。
【００６７】
応答装置２９の応答側セッション鍵出力部２５０は、第３セッション鍵ＳＫＢをセッション鍵ＳＫとして出力する（Ｓ２５０）。
【００６８】
スムース射影ハッシュ関数の性質により、応答側セッション鍵生成部２３０の計算する鍵付きハッシュ関数Ｈと要求側セッション鍵生成部１３５の計算するハッシュ関数ｈとで、以下の関係が成り立つ。
【００６９】
【数１６】
0005651631.tif 000017
【００７０】
したがって、同一のセキュリティパラメータＫが与えられる限り、鍵付きハッシュ関数Ｈの出力する第３セッション鍵ＳＫＡとハッシュ関数ｈの出力する第３セッション鍵ＳＫＢは等しくなる。このように、要求装置１９と応答装置２９は正しくセッション鍵ＳＫを共有することができる。
【実施例１】
【００７１】
＜概要＞
実施例１の鍵交換システムでは、共通参照情報の替わりに鍵公開装置を導入する。鍵公開装置は、攻撃者を含む不特定多数の装置が鍵を登録することができる。鍵公開装置に登録された鍵は鍵識別子により一意に識別することができる。鍵公開装置には、登録されている鍵の正当性について保証する管理者は存在しないものとする。鍵交換を行うすべての装置はそれぞれが鍵交換処理において利用する公開鍵を事前に鍵公開装置に登録する。鍵交換処理においては、各装置はそれぞれが登録した鍵の鍵識別子を相手側装置へ送り合い、相手の鍵識別子に対応した公開鍵を共通参照情報の替わりに鍵公開装置から取得する。公開鍵は各装置が生成するため、公開鍵に対応する秘密鍵が第三者に漏れることはない。これにより暗号文を悪意ある第三者に復号され、パスワードが漏洩することを防止することができる。また、鍵公開装置には管理者は必要ないため、信頼できる第三者の存在を前提としなくとも構成することができる。
【００７２】
＜構成＞
図１を参照して、この発明の実施例１に係る鍵交換システム１の構成例を詳細に説明する。この実施例の鍵交換システム１は、ネットワーク９０と要求装置１０と応答装置２０と鍵公開装置３０から構成される。要求装置１０と応答装置２０と鍵公開装置３０はネットワーク９０に接続される。ネットワーク９０は要求装置１０と応答装置２０と鍵公開装置３０がそれぞれ相互に通信可能であればよく、例えばインターネットやＬＡＮ、ＷＡＮなどで構成することができる。
【００７３】
図２を参照して、鍵交換システム１を構成する要求装置１０の構成例を詳細に説明する。要求装置１０は、従来通り、要求側乱数生成部１１５と要求側第１暗号化部１２０と第１情報送信部１２５と要求側セッション鍵生成部１３５と要求側第２暗号化部１４０と暗号文検証部１４５と第３情報送信部１５０と要求側セッション鍵出力部１５５と要求側パスワード記憶部１９０を備え、さらに、要求側鍵乱数生成部１００と要求側公開鍵生成部１０５と要求側公開鍵登録部１１０と応答側公開鍵取得部１３０と要求側鍵識別子送信部１６０を備える。
【００７４】
図３を参照して、鍵交換システム１を構成する応答装置２０の構成例を詳細に説明する。応答装置２０は、従来通り、応答側ハッシュ鍵生成部２２０と応答側射影鍵生成部２２５と応答側セッション鍵生成部２３０と応答側第１暗号化部２３５と第２情報送信部２４０とセッション鍵検証部２４５と応答側セッション鍵出力部２５０と応答側パスワード記憶部２９０を備え、さらに、応答側鍵乱数生成部２００と応答側公開鍵生成部２０５と応答側公開鍵登録部２１０と要求側公開鍵取得部２１５と応答側鍵識別子送信部２５５を備える。
【００７５】
図４を参照して、鍵交換システム１を構成する鍵公開装置３０の構成例を詳細に説明する。鍵公開装置３０は、鍵登録部３００と鍵公開部３１０と鍵記憶部３９０を備える。
【００７６】
＜パラメータ＞
従来例と同様に、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式Σ’＝（Ｇｅｎ’，Ｅｎｃ’，Ｄｅｃ’）と第２の公開鍵暗号方式Σ＝（Ｇｅｎ，Ｅｎｃ，Ｄｅｃ）を用いる。
【００７７】
要求装置１０の備える要求側パスワード記憶部１９０と応答装置２０の備える応答側パスワード記憶部２９０には、共通のパスワードｐｗがあらかじめ記憶されている。パスワードｐｗを共有する方法、および要求側パスワード記憶部１９０と応答側パスワード記憶部２９０の構成は、従来例と同様であるのでここでは説明を省略する。
【００７８】
＜公開鍵生成処理＞
図５を参照して、鍵交換システム１における公開鍵生成処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
【００７９】
要求装置１０の要求側鍵乱数生成部１００は、公開鍵生成のためのランダムな整数ｗ’を選択する（Ｓ１００）。
【００８０】
要求装置１０の要求側公開鍵生成部１０５は、セキュリティパラメータＫを入力として、乱数ｗ’を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式Σ’の鍵生成アルゴリズムＧｅｎ’を実行することにより、要求側公開鍵ｐｋ’を生成する（Ｓ１０５）。したがって、要求側公開鍵生成部１０５の処理は、以下の式のように表すことができる。
【００８１】
【数１７】
0005651631.tif 000018
【００８２】
要求装置１０の要求側公開鍵登録部１１０は、要求側公開鍵ｐｋ’を鍵公開装置３０へ送信する（Ｓ１１０）。鍵公開装置３０の鍵登録部３００は、受信した要求側公開鍵ｐｋ’を鍵記憶部３９０に記憶する。ここでは、鍵記憶部３９０は登録された公開鍵が登録順にインデックスされて並んでおり、要求側公開鍵ｐｋ’はα番目に登録されたものとする。続いて、鍵登録部３００は、鍵記憶部３９０における要求側公開鍵ｐｋ’を一意に識別する情報であるαを要求側鍵識別子として出力する（Ｓ３０１）。要求側公開鍵登録部１１０は、鍵登録部３００の出力する要求側鍵識別子αを受信する。
【００８３】
応答装置２０の応答側鍵乱数生成部２００は、公開鍵生成のためのランダムな整数ｗを選択する（Ｓ２００）。
【００８４】
応答装置２０の応答側公開鍵生成部２０５は、セキュリティパラメータＫを入力として、乱数ｗを用いて、第２の公開鍵暗号方式Σの鍵生成アルゴリズムＧｅｎを実行することにより、応答側公開鍵ｐｋを生成する（Ｓ２０５）。したがって、応答側公開鍵生成部２０５の処理は、以下の式のように表すことができる。
【００８５】
【数１８】
0005651631.tif 000019
【００８６】
応答装置２０の応答側公開鍵登録部２１０は、応答側公開鍵ｐｋを鍵公開装置３０へ送信する（Ｓ２１０）。鍵公開装置３０の鍵登録部３００は、受信した応答側公開鍵ｐｋを鍵記憶部３９０に記憶する。ここでは、鍵記憶部３９０は登録された公開鍵が登録順にインデックスされ並んでおり、応答側公開鍵ｐｋはβ番目に登録されたものとする。続いて、鍵登録部３００は、鍵記憶部３９０における応答側公開鍵ｐｋを一意に識別する情報であるβを応答側鍵識別子として出力する（Ｓ３０２）。応答側公開鍵登録部２１０は、鍵登録部３００の出力する応答側鍵識別子βを受信する。
【００８７】
要求装置１０の要求側鍵識別子送信部１６０は、鍵登録部３００の出力した要求側鍵識別子αを応答装置２０へ送信する（Ｓ１６０）。
【００８８】
応答装置２０の応答側鍵識別子送信部２５５は、鍵登録部３００の出力した応答側鍵識別子βを要求装置１０へ送信する（Ｓ２５５）。
【００８９】
＜鍵交換処理＞
図６，７を参照して、鍵交換システム１の鍵交換方法における鍵交換処理の動作例を実際に行われる手続きの順に従って詳細に説明する。図６のＡ１，Ａ２，Ａ３はそれぞれ、図７のＡ１，Ａ２，Ａ３に処理の流れが続くことを表している。
【００９０】
Ｓ１１５からＳ１２５の動作は従来例と同様であるのでここでは説明を省略する。
【００９１】
応答装置２０の要求側公開鍵取得部２１５は、要求側鍵識別子αを鍵公開装置３０へ送信する（Ｓ２１５）。鍵公開装置３０の鍵公開部３１０は、受信した要求側鍵識別子αにより一意に識別される要求側公開鍵ｐｋ’を鍵記憶部３９０から抽出する。すなわち、鍵記憶部３９０にα番目に登録された公開鍵を抽出する。そして、抽出した要求側公開鍵ｐｋ’を出力する（Ｓ３１１）。要求側公開鍵取得部２１５は、鍵公開部３１０の出力する要求側公開鍵ｐｋ’を受信する。
【００９２】
Ｓ２２０の動作は従来例と同様であるのでここでは説明を省略する。
【００９３】
応答装置２０の応答側射影鍵生成部２２５は、ハッシュ鍵ｈｋと暗号文ＣＴ’と要求側公開鍵ｐｋ’を入力として、スムース射影ハッシュ関数の射影関数Ｆを計算することにより、射影鍵ｈｐを生成する（Ｓ２２５）。要求側公開鍵ｐｋ’は要求側公開鍵取得部２１５が出力した要求側公開鍵ｐｋ’を用いる。以下、応答装置２０が用いる要求側公開鍵ｐｋ’は同様に要求側公開鍵取得部２１５が出力したものである。したがって、応答側射影鍵生成部２２５の処理は、以下の式のように表すことができる。
【００９４】
【数１９】
0005651631.tif 000020
【００９５】
Ｓ２３０からＳ２４０の動作は従来例と同様であるのでここでは説明を省略する。
【００９６】
要求装置１０の応答側公開鍵取得部１３０は、応答側鍵識別子βを鍵公開装置３０へ送信する（Ｓ１３０）。鍵公開装置３０の鍵公開部３１０は、受信した応答側鍵識別子βにより一意に識別される応答側公開鍵ｐｋを鍵記憶部３９０から抽出する。すなわち、鍵記憶部３９０にβ番目に登録された公開鍵を抽出する。そして、抽出した応答側公開鍵ｐｋを出力する（Ｓ３１２）。応答側公開鍵取得部１３０は、鍵公開部３１０の出力する応答側公開鍵ｐｋを受信する。
【００９７】
Ｓ１３５の動作は従来例と同様であるのでここでは説明を省略する。
【００９８】
要求装置１０の要求側第２暗号化部１４０は、第１情報ｔ１と応答装置２０を一意に識別する情報Ｂと射影鍵ｈｐとパスワードｐｗを連結したビット列を入力として、応答側公開鍵ｐｋと第１セッション鍵ｒＡを用いて、第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃを実行することにより、暗号文ＣＴ＾を生成する（Ｓ１４０）。応答側公開鍵ｐｋは応答側公開鍵取得部１３０が出力した応答側公開鍵ｐｋを用いる。以下、要求装置１０が用いる応答側公開鍵ｐｋは同様に応答側公開鍵取得部１３０が出力したものである。したがって、要求側第２暗号化部１４０の処理は、以下の式のように表すことができる。
【００９９】
【数２０】
0005651631.tif 000021
【０１００】
Ｓ１４５からＳ２５０の動作は従来例と同様であるのでここでは説明を省略する。
【０１０１】
＜効果＞
このように、この実施例の鍵交換システムでは、鍵公開装置を導入することにより、信頼できる第三者により共通参照情報が生成されていることを前提としなくとも、共通のパスワードを保持する装置間で共通のセッション鍵を安全に共有することができる。
【０１０２】
［その他のパスワードに基づく鍵交換方式への適用］
実施例１では、非特許文献１に記載されている従来のパスワードに基づく鍵交換方式において、この発明を適用した構成例を説明したが、共通参照情報を用いることを前提とするパスワードに基づく鍵交換方式であれば、この実施例のように構成することで同様の効果を得ることができる。
【０１０３】
例えば、パスワードの暗号化に複数の公開鍵を用いる鍵交換方式に対して適用する場合であれば、以下のように構成する。まず、共通参照情報を除く全ての公開パラメータを公開パラメータに含むようにする。次に、鍵公開装置３０の鍵記憶部３９０を、最大ｑ（Ｋ）個の公開鍵を登録できるようにする（ただし、ｑは多項式関数、Ｋはセキュリティパラメータとする）。要求装置１０が用いる公開鍵集合ｐｋＡと応答装置２０が用いる公開鍵集合ｐｋＢをそれぞれ事前に鍵公開装置３０へ登録する。鍵記憶部３９０へ記憶されている公開鍵集合をＬｐｋと表すと、ｐｋＡ，ｐｋＢ⊆Ｌｐｋが成り立つ。
【０１０４】
要求装置１０の要求側鍵識別子送信部１６０は、公開鍵集合ｐｋＡに対応する鍵識別子集合ｐｋαを応答装置２０へ送信する。応答装置２０の応答側鍵識別子送信部２５５は、公開鍵集合ｐｋＢに対応する鍵識別子集合ｐｋβを応答装置２０へ送信する。鍵交換処理においては、要求装置１０は鍵識別子集合ｐｋβを用いて鍵公開装置３０から公開鍵集合ｐｋＢを取得し、応答装置２０は鍵識別子集合ｐｋαを用いて鍵公開装置３０から公開鍵集合ｐｋＡを取得する。
【０１０５】
非特許文献１に記載のパスワードに基づく鍵交換方式以外の方式であっても、このように構成することにより、信頼できる第三者により共通参照情報が生成されていることを前提としなくとも、共通のパスワードを保持する装置間で共通のセッション鍵を安全に共有することができるようになる。
【実施例２】
【０１０６】
＜概要＞
実施例１の鍵交換システムでは、従来のパスワードに基づく鍵交換方式と比較して、鍵識別子を相互に送受信するための２交信分の通信が増加してしまう。そこで、実施例２の鍵交換システムでは、従来の鍵交換処理における交信の中で鍵識別子を送信するように構成する。これにより、事前に自装置が登録した公開鍵の鍵識別子を相手側装置へ送信する必要がなくなり、交信数の増加を回避することができる。ただし、この実施例の構成方法は鍵交換処理の中で利用する公開鍵が１つであるパスワードに基づく鍵交換方式であることが前提となる。このようなパスワードに基づく鍵交換方式としては、非特許文献１に記載の鍵交換方式を挙げることができる。以下では、非特許文献１に記載の鍵交換方式にこの実施例の構成方法を適用した場合について説明する。
【０１０７】
＜構成＞
図８を参照して、この発明の実施例２に係る鍵交換システム２の構成例を詳細に説明する。この実施例の鍵交換システム２は、ネットワーク９０と要求装置１１と応答装置２１と鍵公開装置３０から構成される。要求装置１１と応答装置２１と鍵公開装置３０はネットワーク９０に接続される。ネットワーク９０は要求装置１１と応答装置２１と鍵公開装置３０がそれぞれ相互に通信可能であればよく、例えばインターネットやＬＡＮ、ＷＡＮなどで構成することができる。
【０１０８】
図９を参照して、鍵交換システム２を構成する要求装置１１の構成例を詳細に説明する。要求装置１１は、従来通り、要求側乱数生成部１１５と要求側第１暗号化部１２０と要求側セッション鍵生成部１３５と要求側第２暗号化部１４０と暗号文検証部１４５と第３情報送信部１５０と要求側セッション鍵出力部１５５と要求側パスワード記憶部１９０を備え、実施例１と同様に、要求側鍵乱数生成部１００と要求側公開鍵生成部１０５と要求側公開鍵登録部１１０と応答側公開鍵取得部１３０を備え、さらに、第１情報送信部１２６を備える。実施例１との相違点は、要求側鍵識別子送信部１６０を備えず、第１情報送信部の処理が異なる点である。
【０１０９】
図１０を参照して、鍵交換システム２を構成する応答装置２１の構成例を詳細に説明する。応答装置２０は、従来通り、応答側ハッシュ鍵生成部２２０と応答側射影鍵生成部２２５と応答側セッション鍵生成部２３０と応答側第１暗号化部２３５とセッション鍵検証部２４５と応答側セッション鍵出力部２５０と応答側パスワード記憶部２９０を備え、実施例１と同様に、応答側鍵乱数生成部２００と応答側公開鍵生成部２０５と応答側公開鍵登録部２１０と要求側公開鍵取得部２１５を備え、さらに、第２情報送信部２４１を備える。実施例１との相違点は、応答側鍵識別子送信部２５５を備えず、第２情報送信部の処理が異なる点である。
【０１１０】
＜パラメータ＞
この実施例で用いるパラメータは実施例１と同様であるのでここでは説明を省略する。
【０１１１】
＜公開鍵生成処理＞
図１１を参照して、鍵交換システム２における公開鍵生成処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
【０１１２】
Ｓ１００からＳ３０１の動作は実施例１と同様であるのでここでは説明を省略する。
【０１１３】
実施例１では、Ｓ３０１に続いて、要求装置１０では備えていた要求側鍵識別子送信部１６０が要求側鍵識別子αを応答装置２０へ送信していたが、この実施例では要求側鍵識別子送信部１６０を備えていないため、実施例１のＳ１６０の処理は行われない。
【０１１４】
Ｓ２００からＳ３０２の動作は実施例１と同様であるのでここでは説明を省略する。
【０１１５】
実施例１では、Ｓ３０２に続いて、応答装置２０では備えていた応答側鍵識別子送信部２５５が応答側鍵識別子βを要求装置１０へ送信していたが、この実施例では応答側鍵識別子送信部２５５を備えていないため、実施例１のＳ２５５の処理は行われない。
【０１１６】
＜鍵交換処理＞
図１２−１３を参照して、鍵交換システム１の鍵交換方法における鍵交換処理の動作例を実際に行われる手続きの順に従って詳細に説明する。図１２のＢ１，Ｂ２，Ｂ３はそれぞれ、図１３のＢ１，Ｂ２，Ｂ３に処理の流れが続くことを表している。
【０１１７】
Ｓ１１５からＳ１２０の動作は実施例１と同様であるのでここでは説明を省略する。
【０１１８】
要求装置１１の第１情報送信部１２６は、要求装置１１を一意に識別する情報Ａと要求側鍵識別子αと暗号文ＣＴ’を連結することで第１情報ｔ１を生成する。そして、生成した第１情報ｔ１を応答装置２１へ送信する（Ｓ１２６）。したがって、第１情報ｔ１は以下の式のように表すことができる。
【０１１９】
【数２１】
0005651631.tif 000022
【０１２０】
Ｓ２１５からＳ２３５の動作は実施例１と同様であるのでここでは説明を省略する。
【０１２１】
応答装置２１の第２情報送信部２４１は、応答装置２１を一意に識別する情報Ｂと射影鍵ｈｐと応答側鍵識別子βと暗号文ＣＴを連結することで第２情報ｔ２を生成する。そして、生成した第２情報ｔ２を要求装置１１へ送信する（Ｓ２４１）。したがって、第２情報ｔ２は以下の式のように表すことができる。
【０１２２】
【数２２】
0005651631.tif 000023
【０１２３】
Ｓ１３０からＳ２５０の動作は実施例１と同様であるのでここでは説明を省略する。
【０１２４】
＜効果＞
このように、この実施例の鍵交換システムでは、鍵交換処理の交信の中で相互に鍵識別子を送信するため、事前に公開鍵の鍵識別子を相互に送信する必要がない。その結果、従来の鍵交換システムと同じ交信数のまま、実施例１の鍵交換システムと同様の効果を得ることができる。
【実施例３】
【０１２５】
＜概要＞
実施例１，２の鍵交換システムでは、共通参照情報の替わりとなる鍵公開装置を用意する必要があった。実施例３の鍵交換システムでは、鍵交換処理においてゼロ知識証明を用いることにより鍵公開装置をも不要とすることができる。鍵交換を行う装置は暗号化に用いる公開鍵を鍵交換処理の中で直接相手側装置へ送信する。しかしながら、鍵交換を行う二者の中間で攻撃者がなりすまし攻撃を行うことが考えられる。そこで、送信した公開鍵が正しく作られていることを、コンカレント安全なゼロ知識証明を用いて相手側装置へ証明し、正しいパスワードを暗号化したことを、証拠識別不可能証明を用いて相手側装置へ証明する。このように構成することにより、共通参照情報も鍵公開装置も用いずに、装置間で共通のセッション鍵を安全に共有することができる。
【０１２６】
［証拠識別不可能証明］
この実施例では、証拠識別不可能証明を利用する。証拠識別不可能証明とは、以下の性質を満たす証明システムである。証明者は証明する命題ｘとその証拠ｗに対応する証明πを、検証者とやり取りしながら証明する。もしｗがｘの正しい証拠ならば、πは圧倒的確率で検証に合格する。逆に証拠を知らないｘ’について、検証に合格するようなπ’を証明者が生成できる確率は無視できる。ｘに対応する証拠が複数ある場合、検証者はπがどちらの証拠から作られたか見分けることはできない。証拠識別不可能証明についての詳細は「Rafail Ostrovsky and Giuseppe Persiano and Ivan Visconti, “Constant-Round Concurrent Non-malleable Zero Knowledge in the Bare Public-Key Model.”, ICALP (2) 2008.」を参照されたい。
【０１２７】
［コンカレント安全なゼロ知識証明］
この実施例では、コンカレント安全なゼロ知識証明を利用する。ゼロ知識証明においてある命題ｘを証明する際に、証明を行う複数のプロトコルが非同期同時実行されても検証者にｘの証拠ｗの情報が全く漏れないような方式を、コンカレント安全なゼロ知識証明と呼ぶ。コンカレント安全なゼロ知識証明についての詳細は「Manoj Prabhakaran and Alon Rosen and Amit Sahai., “Concurrent Zero Knowledge with Logarithmic Round-Complexity.”, FOCS 2002.」を参照されたい。
【０１２８】
＜構成＞
図１４を参照して、この発明の実施例３に係る鍵交換システム３の構成例を詳細に説明する。この実施例の鍵交換システム３は、ネットワーク９０と要求装置１２と応答装置２２から構成される。要求装置１２と応答装置２２はネットワーク９０に接続される。ネットワーク９０は要求装置１２と応答装置２２が相互に通信可能であればよく、例えばインターネットやＬＡＮ、ＷＡＮなどで構成することができる。
【０１２９】
図１５を参照して、鍵交換システム３を構成する要求装置１２の構成例を詳細に説明する。要求装置１２は、従来通り、要求側乱数生成部１１５と要求側第１暗号化部１２０と要求側セッション鍵出力部１５５と要求側パスワード記憶部１９０を備え、さらに、第１鍵乱数生成部１０１と第１公開鍵生成部１０６と第１情報送信部１２７と要求側セッション鍵生成部１３６と要求側第２暗号化部１４１と第３情報送信部１５１と第２鍵乱数生成部５００と第２公開鍵生成部５０５と要求側公開鍵証明部５１０と要求側ハッシュ値生成部５１５と要求側ハッシュ値検証部５２０と要求側ハッシュ鍵生成部５２５と要求側射影鍵生成部５３０と要求側暗号文証明部５３５とセッション鍵検証部５４０を備える。
【０１３０】
図１６を参照して、鍵交換システム３を構成する応答装置２２の構成例を詳細に説明する。応答装置２０は、従来通り、応答側ハッシュ鍵生成部２２０と応答側射影鍵生成部２２５と応答側セッション鍵出力部２５０と応答側パスワード記憶部２９０を備え、実施例１と同様に、応答側鍵乱数生成部２００と応答側公開鍵生成部２０５を備え、さらに、第２情報送信部２４２と応答側セッション鍵生成部２３１と応答側第１暗号化部２３６と応答側ハッシュ値計算部６００と応答側乱数生成部６０５と応答側第２暗号化部６１０と応答側暗号文証明部６１５と応答側公開鍵証明部６２０と応答側ハッシュ値検証部６２５と暗号文検証部６３０と第４情報送信部６３５を備える。
【０１３１】
＜パラメータ＞
第１の公開鍵暗号方式Σ１＝（Ｇｅｎ１，Ｅｎｃ１，Ｄｅｃ１）と第２の公開鍵暗号方式Σ２＝（Ｇｅｎ２，Ｅｎｃ２，Ｄｅｃ２）と第３の公開鍵暗号方式Σ’＝（Ｇｅｎ’，Ｅｎｃ’，Ｄｅｃ’）を用いる。ただし、第１の公開鍵暗号方式Σ１と第３の公開鍵暗号方式Σ’はスムース射影ハッシュ関数をサポートする。第１の公開鍵暗号方式Σ１として、例えば、ElGamal暗号を適用できる。第３の公開鍵暗号方式Σ’として、例えば、Cramer-Shoup暗号を適用することができる（いずれも詳細は、参考文献１参照）。
【０１３２】
要求装置１２の備える要求側パスワード記憶部１９０と応答装置２２の備える応答側パスワード記憶部２９０には、共通のパスワードｐｗがあらかじめ記憶されている。パスワードｐｗを共有する方法、および要求側パスワード記憶部１９０と応答側パスワード記憶部２９０の構成は、実施例１と同様であるのでここでは説明を省略する。
【０１３３】
ｃＺＫを、
【０１３４】
【数２３】
0005651631.tif 000024
【０１３５】
を命題とし、（ｗ１，ｗ２）を証拠とするコンカレント安全なゼロ知識証明とする。
【０１３６】
ｃＺＫ’を、
【０１３７】
【数２４】
0005651631.tif 000025
【０１３８】
を命題とし、ｗ’を証拠とするコンカレント安全なゼロ知識証明とする。
【０１３９】
ＮＭＷＩを、
【０１４０】
【数２５】
0005651631.tif 000026
【０１４１】
を命題とし、（ｐｗ，ｒ，ｈｋ）またはｗ’を証拠とする証拠識別不可能証明とする。ただし、ｌａｂｅｌはゼロ知識証明が行われているセッションを特定するための情報であり、セッション開始以降に二者間でやり取りした情報を連結した値などが用いられる。
【０１４２】
ＮＭＷＩ’を、
【０１４３】
【数２６】
0005651631.tif 000027
【０１４４】
を命題とし、（ｐｗ，ｒ’，ｈｋ’）または（ｗ１，ｗ２）を証拠とする証拠識別不可能証明とする。
【０１４５】
＜公開鍵生成処理＞
図１７を参照して、鍵交換システム３における公開鍵生成処理の動作例を実際に行われる手続きの順に従って詳細に説明する。
【０１４６】
要求装置１２の第１鍵乱数生成部１０１は、公開鍵生成のためのランダムな整数ｗ１を選択する（Ｓ１０１）。
【０１４７】
要求装置１２の第１公開鍵生成部１０６は、セキュリティパラメータＫを入力として、乱数ｗ１を用いて、スムース射影ハッシュ関数をサポートする第１の公開鍵暗号方式Σ１の鍵生成アルゴリズムＧｅｎ１を実行することにより、第１公開鍵ｐｋ１を生成する（Ｓ１０６）。したがって、第１公開鍵生成部１０６の処理は、以下の式のように表すことができる。
【０１４８】
【数２７】
0005651631.tif 000028
【０１４９】
要求装置１２の第２鍵乱数生成部５００は、公開鍵生成のためのランダムな整数ｗ２を選択する（Ｓ５００）。
【０１５０】
要求装置１２の第２公開鍵生成部５０５は、セキュリティパラメータＫを入力として、乱数ｗ２を用いて、第２の公開鍵暗号方式Σ２の鍵生成アルゴリズムＧｅｎ２を実行することにより、第２公開鍵ｐｋ２を生成する（Ｓ５０５）。したがって、第２公開鍵生成部５０５の処理は、以下の式のように表すことができる。
【０１５１】
【数２８】
0005651631.tif 000029
【０１５２】
応答装置２２の応答側鍵乱数生成部２００は、公開鍵生成のためのランダムな整数ｗ’を選択する（Ｓ２００）。
【０１５３】
応答装置２２の応答側公開鍵生成部２０５は、セキュリティパラメータＫを入力として、乱数ｗ’を用いて、スムース射影ハッシュ関数をサポートする第３の公開鍵暗号方式Σ’の鍵生成アルゴリズムＧｅｎ’を実行することにより、応答側公開鍵ｐｋ’を生成する（Ｓ２０５）。したがって、応答側公開鍵生成部２０５の処理は、以下の式のように表すことができる。
【０１５４】
【数２９】
0005651631.tif 000030
【０１５５】
＜鍵交換処理＞
図１８−２０を参照して、鍵交換システム３の鍵交換方法における鍵交換処理の動作例を実際に行われる手続きの順に従って詳細に説明する。図１８のＣ１，Ｃ２はそれぞれ、図１９のＣ１，Ｃ２に処理の流れが続くことを表している。同様に、図１９のＣ３，Ｃ４はそれぞれ、図２０のＣ３，Ｃ４に処理の流れが続くことを表している。
【０１５６】
要求装置１２の要求側乱数生成部１１５は、暗号化のためのランダムな整数ｒ←｛０，１｝＊を選択する（Ｓ１１５）。
【０１５７】
要求装置１２の要求側第１暗号化部１２０は、要求側パスワード記憶部１９０に記憶されているパスワードｐｗを入力として、第１公開鍵ｐｋ１と乱数ｒを用いて第１の公開鍵暗号方式Σ１の暗号化アルゴリズムＥｎｃ１を実行することにより、暗号文ＣＴ１を生成する（Ｓ１２０）。したがって、要求側第１暗号化部１２０の処理は、以下の式のように表すことができる。
【０１５８】
【数３０】
0005651631.tif 000031
【０１５９】
要求装置１２の第１情報送信部１２７は、要求装置１２を一意に識別する情報Ａと第１公開鍵ｐｋ１と第２公開鍵ｐｋ２と暗号文ＣＴ１を連結することで第１情報ｔ１を生成する。そして、生成した第１情報ｔ１を応答装置２２へ送信する（Ｓ１２７）。したがって、第１情報ｔ１は以下の式のように表すことができる。
【０１６０】
【数３１】
0005651631.tif 000032
【０１６１】
要求装置１２の要求側公開鍵証明部５１０は、第１公開鍵ｐｋ１と第２公開鍵ｐｋ２が正しく生成されたことを、コンカレント安全なゼロ知識証明ｃＺＫを用いて応答装置２２に対して証明する。応答装置２２は、ゼロ知識証明ｃＺＫが正しくなければ処理を停止する（Ｓ５１０Ｂ）。
【０１６２】
応答装置２２の応答側ハッシュ鍵生成部２２０は、スムース射影ハッシュ関数のハッシュ鍵ｈｋ’を生成する（Ｓ２２０）。ハッシュ鍵ｈｋ’はスムース射影ハッシュ関数の鍵空間からランダムに選択される。
【０１６３】
応答装置２２の応答側射影鍵生成部２２５は、ハッシュ鍵ｈｋ’と暗号文ＣＴ１と第１公開鍵ｐｋ１を入力として、スムース射影ハッシュ関数の射影関数Ｆ’を計算することにより、射影鍵ｈｐ’を生成する（Ｓ２２５）。第１公開鍵ｐｋ１は要求装置１２から受信した第１情報ｔ１に含まれる第１公開鍵ｐｋ１を用いる。以下、応答装置２２が用いる第１公開鍵ｐｋ１は同様に第１情報ｔ１に含まれるものである。したがって、応答側射影鍵生成部２２５の処理は、以下の式のように表すことができる。
【０１６４】
【数３２】
0005651631.tif 000033
【０１６５】
応答装置２２の応答側ハッシュ値計算部６００は、暗号文ＣＴ１と第１公開鍵ｐｋ１とパスワードｐｗを入力として、ハッシュ鍵ｈｋ’を用いてスムース射影ハッシュ関数の鍵付きハッシュ関数Ｈ’を計算することにより、ハッシュ値δ’を生成する（Ｓ６００）。したがって、応答側ハッシュ値計算部６００の処理は、以下の式のように表すことができる。
【０１６６】
【数３３】
0005651631.tif 000034
【０１６７】
応答装置２２の応答側乱数生成部６０５は、暗号化のためのランダムな整数ｒ’←｛０，１｝＊を選択する（Ｓ６０５）。
【０１６８】
応答装置２２の応答側第２暗号化部６１０は、応答側パスワード記憶部２９０に記憶されているパスワードｐｗを入力として、応答側公開鍵ｐｋ’と乱数ｒ’を用いて第３の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ’を実行することにより、暗号文ＣＴ’を生成する（Ｓ６１０）。したがって、応答側第２暗号化部６１０の処理は、以下の式のように表すことができる。
【０１６９】
【数３４】
0005651631.tif 000035
【０１７０】
応答装置２２の第２情報送信部２４２は、応答装置２２を一意に識別する情報Ｂと射影鍵ｈｐ’と応答側公開鍵ｐｋ’と暗号文ＣＴ’とハッシュ値δ’を連結することで第２情報ｔ２を生成する。そして、生成した第２情報ｔ２を要求装置１２へ送信する（Ｓ２４２）。したがって、第２情報ｔ２は以下の式のように表すことができる。
【０１７１】
【数３５】
0005651631.tif 000036
【０１７２】
応答装置２２の応答側暗号文証明部６１５は、暗号文ＣＴ’とハッシュ値δ’が正しく生成されたことを、証拠識別不可能証明ＮＭＷＩ’を用いて要求装置１２に対して証明する（Ｓ６１５）。要求装置１２は、証拠識別不可能証明ＮＭＷＩ’が正しくなければ処理を停止する（Ｓ６１５Ｂ）。
【０１７３】
応答装置２２の応答側公開鍵証明部６２０は、応答側公開鍵ｐｋ’が正しく生成されたことを、コンカレント安全なゼロ知識証明ｃＺＫ’を用いて要求装置１２に対して証明する（Ｓ６２０）。要求装置１２は、ゼロ知識証明ｃＺＫ’が正しくなければ処理を停止する（Ｓ６２０Ｂ）。
【０１７４】
要求装置１２の要求側ハッシュ値計算部５１５は、暗号文ＣＴ１と第１公開鍵ｐｋ１とパスワードｐｗと乱数ｒを入力として、射影鍵ｈｐ’を用いてスムース射影ハッシュ関数のハッシュ関数ｈ’を計算することにより、ハッシュ値δを生成する（Ｓ５１５）。したがって、要求側ハッシュ値計算部５１５の処理は、以下の式のように表すことができる。
【０１７５】
【数３６】
0005651631.tif 000037
【０１７６】
要求装置１２の要求側ハッシュ値検証部５２０は、受信したハッシュ値δ’がハッシュ値δと等しいか否かを検証する（Ｓ５２０）。δ’≠δであれば処理を停止する。δ’＝δであれば処理を続行する。
【０１７７】
要求装置１２の要求側ハッシュ鍵生成部５２５は、スムース射影ハッシュ関数のハッシュ鍵ｈｋを生成する（Ｓ５２５）。ハッシュ鍵ｈｋはスムース射影ハッシュ関数の鍵空間からランダムに選択される。
【０１７８】
要求装置１２の要求側射影鍵生成部５３０は、ハッシュ鍵ｈｋと暗号文ＣＴ’と応答側公開鍵ｐｋ’を入力として、スムース射影ハッシュ関数の射影関数Ｆを計算することにより、射影鍵ｈｐを生成する（Ｓ５３０）。応答側公開鍵ｐｋ’は応答装置２２から受信した第２情報ｔ２に含まれる応答側公開鍵ｐｋ’を用いる。以下、要求装置１２が用いる応答側公開鍵ｐｋ’は同様に第２情報ｔ２に含まれるものである。したがって、要求側射影鍵生成部５３０の処理は、以下の式のように表すことができる。
【０１７９】
【数３７】
0005651631.tif 000038
【０１８０】
要求装置１２の要求側セッション鍵生成部１３５は、暗号文ＣＴ’と応答側公開鍵ｐｋ’とパスワードｐｗを入力として、ハッシュ鍵ｈｋを用いてスムース射影ハッシュ関数の鍵付きハッシュ関数Ｈを計算することにより、第１セッション鍵ｒＡと第２セッション鍵τＡと第３セッション鍵ＳＫＡを生成する（Ｓ１３５）。したがって、要求側セッション鍵生成部１３５の処理は、以下の式のように表すことができる。
【０１８１】
【数３８】
0005651631.tif 000039
【０１８２】
要求装置１２の要求側第２暗号化部１４０は、第１情報ｔ１と第２情報ｔ２と射影鍵ｈｐとパスワードｐｗを連結したビット列を入力として、第２公開鍵ｐｋ２と第１セッション鍵ｒＡを用いて、第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ２を実行することにより、暗号文ＣＴ２を生成する（Ｓ１４０）。したがって、要求側第２暗号化部１４０の処理は、以下の式のように表すことができる。
【０１８３】
【数３９】
0005651631.tif 000040
【０１８４】
要求装置１２の第３情報送信部１５１は、要求装置１２を一意に識別する情報Ａと射影鍵ｈｐと暗号文ＣＴ２とハッシュ値δを連結することで第３情報ｔ３を生成する。そして、生成した第３情報ｔ３を応答装置２２へ送信する（Ｓ１５１）。したがって、第３情報ｔ３は以下の式のように表すことができる。
【０１８５】
【数４０】
0005651631.tif 000041
【０１８６】
要求装置１２の要求側暗号文証明部５３５は、第１セッション鍵ｒＡと暗号文ＣＴ２とハッシュ値δが正しく生成されたことを、証拠識別不可能証明ＮＭＷＩを用いて応答装置２２に対して証明する（Ｓ５３５）。応答装置２２は、証拠識別不可能証明ＮＭＷＩが正しくなければ処理を停止する（Ｓ５３５Ｂ）。
【０１８７】
応答装置２２の応答側ハッシュ値検証部６２５は、受信したハッシュ値δがハッシュ値δ’と等しいか否かを検証する（Ｓ６２５）。δ≠δ’であれば処理を停止する。δ＝δ’であれば処理を続行する。
【０１８８】
応答装置２２の応答側セッション鍵生成部２３０は、暗号文ＣＴ’と応答側公開鍵ｐｋ’とパスワードｐｗと乱数ｒ’を入力として、射影鍵ｈｐを用いてスムース射影ハッシュ関数のハッシュ関数ｈを計算することにより、第１セッション鍵ｒＢと第２セッション鍵τＢと第３セッション鍵ＳＫＢを生成する（Ｓ２３０）。したがって、応答側セッション鍵生成部２３０の処理は、以下の式のように表すことができる。
【０１８９】
【数４１】
0005651631.tif 000042
【０１９０】
応答装置２２の応答側第１暗号化部２３５は、第１情報ｔ１と第２情報ｔ２と射影鍵ｈｐとパスワードｐｗを連結したビット列を入力として、第２公開鍵ｐｋ２と第１セッション鍵ｒＢを用いて、第２の公開鍵暗号方式の暗号化アルゴリズムＥｎｃ２を実行することにより、暗号文ＣＴ＾２を生成する（Ｓ２３５）。第２公開鍵ｐｋ２は要求装置１２から受信した第１情報ｔ１に含まれる第２公開鍵ｐｋ２を用いる。以下、応答装置２２が用いる第２公開鍵ｐｋ２は同様に第１情報ｔ１に含まれるものである。したがって、応答側第１暗号化部２３５の処理は、以下の式のように表すことができる。
【０１９１】
【数４２】
0005651631.tif 000043
【０１９２】
応答装置２２の暗号文検証部６３０は、受信した暗号文ＣＴ２が暗号文ＣＴ＾２と等しいか否かを検証する（Ｓ６３０）。ＣＴ２≠ＣＴ＾２であれば処理を停止する。ＣＴ２＝ＣＴ＾２であれば処理を続行する。
【０１９３】
応答装置２２の第４情報送信部６３５は、第２セッション鍵τＢを含む第４情報ｔＢを生成する。そして、生成した第４情報ｔ４を要求装置２２へ送信する（Ｓ６３５）。
したがって、第４情報ｔ４は以下の式のように表すことができる。
【０１９４】
【数４３】
0005651631.tif 000044
【０１９５】
応答装置２２の応答側セッション鍵出力部２５０は、第３セッション鍵ＳＫＢをセッション鍵ＳＫとして出力する（Ｓ２５０）。
【０１９６】
要求装置１２のセッション鍵検証部５４０は、受信した第２セッション鍵τＢが第２セッション鍵τＡと等しいか否かを検証する（Ｓ５４０）。τＢ≠τＡであれば処理を停止する。τＢ＝τＡであれば処理を続行する。
【０１９７】
要求装置１２の要求側セッション鍵出力部１５５は、第３セッション鍵ＳＫＡをセッション鍵ＳＫとして出力する（Ｓ１５５）。
【０１９８】
＜効果＞
このように、この実施例の鍵交換システムでは、パスワードの暗号化に用いた公開鍵を暗号文と共に相手側装置へ送信するため、共通参照情報も鍵公開装置も必要としない。また、公開鍵および暗号文を正しく生成したことを、コンカレント安全なゼロ知識証明と証拠識別不可能証明を用いて相手側装置へ証明するため、安全性を保証することができる。ただし、この実施例の構成ではコンカレント安全なゼロ知識証明と証拠識別不可能証明を用いるため、交信量が増大することに留意する必要がある。
【０１９９】
［プログラム、記録媒体］
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【０２００】
また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【０２０１】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【０２０２】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【０２０３】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０２０４】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【０２０５】
１，２，３，９  鍵交換システム
１０，１１，１２，１９  要求装置
２０，２１，２２，２９  応答装置
３０  鍵公開装置
３９  共通参照情報生成装置
９０  ネットワーク
１００  要求側鍵乱数生成部              １０１  第１鍵乱数生成部
１０５  要求側公開鍵生成部              １０６  第１公開鍵生成部
１１０  要求側公開鍵登録部              １１５  要求側乱数生成部
１２０  要求側第１暗号化部              １２５−１２７  第１情報送信部
１３０  応答側公開鍵取得部              １３５，１３６  要求側セッション鍵生成部
１４０，１４１  要求側第２暗号化部      １４５  暗号文検証部
１５０，１５１  第３情報送信部          １５５  要求側セッション鍵出力部
１６０  要求側鍵識別子送信部            １９０  要求側パスワード記憶部
２００  応答側鍵乱数生成部              ２０５  応答側公開鍵生成部
２１０  応答側公開鍵登録部              ２１５  要求側公開鍵取得部
２２０  応答側ハッシュ鍵生成部          ２２５  応答側射影鍵生成部
２３０，２３１  応答側セッション鍵生成部  ２３５，２３６  応答側第１暗号化部
２４０，２４１，２４２  第２情報送信部  ２４５  セッション鍵検証部
２５０  応答側セッション鍵出力部        ２５５  応答側鍵識別子送信部
２９０  応答側パスワード記憶部
３００  鍵登録部                        ３１０  鍵公開部
３９０  鍵記憶部
３９１  ＣＲＳ生成部                    ３９２  ＣＲＳ配信部
５００  第２鍵乱数生成部                ５０５  第２公開鍵生成部
５１０  要求側公開鍵証明部              ５１５  要求側ハッシュ値計算部
５２０  要求側ハッシュ値検証部          ５２５  要求側ハッシュ鍵生成部
５３０  要求側射影鍵生成部              ５３５  要求側暗号文証明部
５４０  セッション鍵検証部
６００  応答側ハッシュ値計算部          ６０５  応答側乱数生成部
６１０  応答側第２暗号化部              ６１５  応答側暗号文証明部
６２０  応答側公開鍵証明部              ６２５  応答側ハッシュ値検証部
６３０  暗号文検証部                    ６３５  第４情報送信部
【図１】
0005651631.tif 000045
【図２】
0005651631.tif 000046
【図３】
0005651631.tif 000047
【図４】
0005651631.tif 000048
【図５】
0005651631.tif 000049
【図６】
0005651631.tif 000050
【図７】
0005651631.tif 000051
【図８】
0005651631.tif 000052
【図９】
0005651631.tif 000053
【図１０】
0005651631.tif 000054
【図１１】
0005651631.tif 000055
【図１２】
0005651631.tif 000056
【図１３】
0005651631.tif 000057
【図１４】
0005651631.tif 000058
【図１５】
0005651631.tif 000059
【図１６】
0005651631.tif 000060
【図１７】
0005651631.tif 000061
【図１８】
0005651631.tif 000062
【図１９】
0005651631.tif 000063
【図２０】
0005651631.tif 000064
【図２１】
0005651631.tif 000065
【図２２】
0005651631.tif 000066
【図２３】
0005651631.tif 000067
【図２４】
0005651631.tif 000068
【図２５】
0005651631.tif 000069
【図２６】
0005651631.tif 000070
【図２７】
0005651631.tif 000071