(57)【特許請求の範囲】
【請求項１】
メッセージを暗号化して送受信するサーバとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該サーバへの接続のときに、該サーバに対し一時的に利用する一時サーバ公開鍵を要求し、
一時的に利用する一時クライアント鍵ペアを生成し、該一時クライアント鍵ペアのうち一時クライアント秘密鍵と前記サーバから前記セキュアな通信により受信した前記一時サーバ公開鍵とで一時共通鍵を生成し、
前記セキュアな通信において、前記一時クライアント秘密鍵とペアとなる一時クライアント公開鍵と、生成した前記一時共通鍵で暗号化した第２の公開鍵証明書に対応付けられるクライアント公開鍵とを、前記第１の公開鍵証明書を用い、前記第１の公開鍵証明書に対応する前記第１のクライアント秘密鍵による前記電子署名を付与して前記サーバへ送信することで、該第２の公開鍵証明書の発行要求を行い、
前記サーバから、前記一時共通鍵で暗号化された前記第２の公開鍵証明書を前記セキュアな通信により受領し、該一時共通鍵で該第２の公開鍵証明書を復号し、
前記第１の公開鍵証明書の有効期限が過ぎた場合は、前記セキュアな通信において、前記第２の公開鍵証明書に対応する第２のクライアント秘密鍵による電子署名をメッセージに付与して前記サーバと通信する
処理をコンピュータに実行させる更新プログラム。
【請求項２】
前記一時クライアント公開鍵を前記サーバに送信することで、該サーバとの間で一時共通鍵が共有され、前記第２の公開鍵証明書に対応付けられるクライアント公開鍵を送信することで、該サーバに前記第２の公開鍵証明書の発行要求を行うことを特徴とする請求項１記載の更新プログラム。
【請求項３】
前記第２の公開鍵証明書の取得後においても、前記第１の公開鍵証明書は前記有効期限まで使用可能とし、該有効期限が過ぎたことにより該第２の公開鍵証明書へと切り替えられ前記サーバへ初めて送出したタイミングで、次の公開鍵証明書の発行要求を行う請求項１記載の更新プログラム。
【請求項４】
メッセージを暗号化して送受信するサーバとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該サーバへの接続のときに、該サーバに対し一時的に利用する一時サーバ公開鍵を要求し、
一時的に利用する一時クライアント鍵ペアを生成し、該一時クライアント鍵ペアのうち一時クライアント秘密鍵と前記サーバから前記セキュアな通信により受信した前記一時サーバ公開鍵とで一時共通鍵を生成し、
前記セキュアな通信において、前記一時クライアント秘密鍵とペアとなる一時クライアント公開鍵と、生成した前記一時共通鍵で暗号化した、第２の公開鍵証明書に対応付けられるクライアント公開鍵とをメッセージに含め、前記第１の公開鍵証明書を用い、前記第１の公開鍵証明書に対応する前記第１のクライアント秘密鍵による前記電子署名を付与して前記サーバへ送信することで、該第２の公開鍵証明書の発行要求を行い、
前記サーバから、前記一時共通鍵で暗号化された前記第２の公開鍵証明書を前記セキュアな通信により受領し、該一時共通鍵で該第２の公開鍵証明書を復号し、
前記第１の公開鍵証明書の有効期限が過ぎた場合は、前記セキュアな通信において、前記第２の公開鍵証明書に対応する第２のクライアント秘密鍵による電子署名をメッセージに付与して前記サーバと通信する
処理をコンピュータが行う更新方法。
【請求項５】
プロセッサと、
要求元及びデータの正当性の確認に用いられる第１の公開鍵証明書を記憶した記憶部と、
を有する端末装置であって、
前記プロセッサは、
メッセージを暗号化して送受信するサーバとのセキュアな通信において、暗号化された該メッセージに対して、前記第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該サーバへの接続のときに、該サーバに対し一時的に利用する一時サーバ公開鍵を要求し、
一時的に利用する一時クライアント鍵ペアを生成し、該一時クライアント鍵ペアのうち一時クライアント秘密鍵と前記サーバから前記セキュアな通信により受信した前記一時サーバ公開鍵とで一時共通鍵を生成し、
前記セキュアな通信において、前記一時クライアント秘密鍵とペアとなる一時クライアント公開鍵と、生成した前記一時共通鍵で暗号化した、第２の公開鍵証明書に対応付けられるクライアント公開鍵とを、前記第１の公開鍵証明書を用い、前記第１の公開鍵証明書に対応する前記第１のクライアント秘密鍵による前記電子署名を付与して前記サーバへ送信することで、該第２の公開鍵証明書の発行要求を行い
前記サーバから、前記一時共通鍵で暗号化された前記第２の公開鍵証明書を前記セキュアな通信により受領し、該一時共通鍵で該第２の公開鍵証明書を復号し、
前記第１の公開鍵証明書の有効期限が過ぎた場合は、前記セキュアな通信において、前記第２の公開鍵証明書に対応する第２のクライアント秘密鍵による電子署名をメッセージに付与して前記サーバと通信する端末装置。
【請求項６】
データを送信したクライアントの正当性と、該データの正当性の確認に用いられる公開鍵証明書の管理プログラムであって、
メッセージを暗号化して送受信する前記クライアントとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該クライアントからの接続のときに、一時的に利用する一時サーバ公開鍵を新たに生成し、前記クライアントに送信し、
前記セキュアな通信により、前記クライアントから、前記第１の公開鍵証明書を用い、一時クライアント公開鍵と、前記一時サーバ公開鍵と一時クライアント秘密鍵から生成された一時共通鍵によって暗号化されたクライアント公開鍵とを含む第２の公開鍵証明書の発行要求を受信し、
前記一時サーバ公開鍵とペアとなる一時サーバ秘密鍵と、前記クライアントから受信した前記一時クライアント公開鍵とで前記一時共通鍵を生成し、生成した該一時共通鍵を用いて前記クライアント公開鍵を復号し、
前記セキュアな通信による前記クライアントからの第２の公開鍵証明書の発行要求に対して、復号した前記クライアント公開鍵を用いて該第２の公開鍵証明書を生成し、該第２の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する
処理をコンピュータに実行させる管理プログラム。
【請求項７】
クライアント毎に、前記第１の公開鍵証明書と、該第１の公開鍵証明書を更新する前記第２の公開鍵証明書とを関連付けてテーブルに記憶する
処理を前記コンピュータに実行させる請求項６記載の管理プログラム。
【請求項８】
前記発行要求の回数をカウントし、該発行要求の回数が規定値を超えたら、不正な要求であると判断してエラーにする
処理を前記コンピュータに実行させる請求項６記載の管理プログラム。
【請求項９】
前記クライアントから、前記第２の公開鍵証明書に対応する、暗号化された前記クライアント公開鍵を受信し、
前記クライアント公開鍵を前記一時共通鍵で復号し、
復号された前記クライアント公開鍵に対して前記第２の公開鍵証明書を生成する
処理を前記コンピュータに実行させる請求項６記載の管理プログラム。
【請求項１０】
データを送信したクライアントの正当性と、データの正当性の確認に用いられる公開鍵証明書の管理方法であって、
メッセージを暗号化して送受信する前記クライアントとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該クライアントからの接続のときに、一時的に利用する一時サーバ公開鍵を新たに生成し、前記クライアントに送信し、
前記セキュアな通信により、前記クライアントから、前記第１の公開鍵証明書を用い、一時クライアント公開鍵と、前記一時サーバ公開鍵と一時クライアント秘密鍵から生成された一時共通鍵によって暗号化されたクライアント公開鍵とを含む第２の公開鍵証明書の発行要求を受信し、
前記一時サーバ公開鍵とペアとなる一時サーバ秘密鍵と、前記クライアントから受信した前記一時クライアント公開鍵とで前記一時共通鍵を生成し、生成した該一時共通鍵を用いて前記クライアント公開鍵を復号し、
前記セキュアな通信による前記クライアントからの第２の公開鍵証明書の発行要求に対して、復号した前記クライアント公開鍵を用いて該第２の公開鍵証明書を生成し、該第２の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する
処理をコンピュータが行う管理方法。
【請求項１１】
プロセッサと、
データを送信したクライアントの正当性と、該データの正当性の確認に用いられる第１の公開鍵証明書を記憶する記憶部とを有するサーバであって、
前記プロセッサは、
メッセージを暗号化して送受信する前記クライアントとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該クライアントからの接続のときに、一時的に利用する一時サーバ公開鍵を新たに生成し、前記クライアントに送信し、
前記セキュアな通信により、前記クライアントから、前記第１の公開鍵証明書を用い、一時クライアント公開鍵と、前記一時サーバ公開鍵と一時クライアント秘密鍵から生成された一時共通鍵によって暗号化されたクライアント公開鍵とを含む第２の公開鍵証明書の発行要求を受信し、
前記一時サーバ公開鍵とペアとなる一時サーバ秘密鍵と、前記クライアントから受信した前記一時クライアント公開鍵とで前記一時共通鍵を生成し、生成した該一時共通鍵を用いて前記クライアント公開鍵を復号し、
前記セキュアな通信により、前記クライアントからの第２の公開鍵証明書の発行要求に対して、復号した前記クライアント公開鍵を用いて該第２の公開鍵証明書を生成し、該第２の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する
処理を実行するサーバ。
【請求項１２】
メッセージを暗号化して送受信するサーバとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該サーバへの接続のときに、該サーバとでそれぞれの一時公開鍵を交換し、クライアントの一時秘密鍵と該サーバの一時公開鍵とで一時共通鍵を生成し、
前記セキュアな通信において、前記サーバに対し、前記第１の公開鍵証明書を用い、生成した前記一時共通鍵で暗号化したクライアント公開鍵を含む第２の公開鍵証明書の発行要求を行い、
前記セキュアな通信において、前記クライアント公開鍵を用いて生成され、前記一時共通鍵で暗号化された前記第２の公開鍵証明書を受領し、
前記第１の公開鍵証明書の有効期限が過ぎた場合は、前記セキュアな通信において、前記一時共通鍵で復号した前記第２の公開鍵証明書に対応する第２のクライアント秘密鍵による電子署名をメッセージに付与して前記サーバとセキュアな通信を行う
処理をコンピュータに実行させる更新プログラム。
【請求項１３】
メッセージを暗号化して送受信するサーバとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該サーバへの接続のときに、該サーバとでそれぞれの一時公開鍵を交換し、クライアントの一時秘密鍵と該サーバの一時公開鍵とで一時共通鍵を生成し、
前記セキュアな通信において、前記サーバに対し、前記第１の公開鍵証明書を用い、生成した前記一時共通鍵で暗号化したクライアント公開鍵を含む第２の公開鍵証明書の発行要求を行い、
前記セキュアな通信において、前記クライアント公開鍵を用いて生成され、前記一時共通鍵で暗号化された前記第２の公開鍵証明書を受領し、
前記第１の公開鍵証明書の有効期限が過ぎた場合は、前記一時共通鍵で復号した前記第２の公開鍵証明書を用いて前記サーバとセキュアな通信を行う
処理をコンピュータが行う更新方法。
【請求項１４】
プロセッサと、
要求元及びデータの正当性の確認に用いられる第１の公開鍵証明書を記憶した記憶部と、
を有する端末装置であって、
前記プロセッサは、
メッセージを暗号化して送受信するサーバとのセキュアな通信において、暗号化された該メッセージに対して、前記第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該サーバへの接続のときに、該サーバとでそれぞれの一時公開鍵を交換し、クライアントの一時秘密鍵と該サーバの一時公開鍵とで一時共通鍵を生成し、
前記セキュアな通信において、前記サーバに対し、前記第１の公開鍵証明書を用い、生成した前記一時共通鍵で暗号化したクライアント公開鍵を含む第２の公開鍵証明書の発行要求を行い、
前記セキュアな通信において、前記クライアント公開鍵を用いて生成され、前記一時共通鍵で暗号化された前記第２の公開鍵証明書を受領し、
前記第１の公開鍵証明書の有効期限が過ぎた場合は、前記一時共通鍵で復号した前記第２の公開鍵証明書を用いて前記サーバとセキュアな通信を行う端末装置。
【請求項１５】
データを送信したクライアントの正当性と、該データの正当性の確認に用いられる公開鍵証明書の管理プログラムであって、
メッセージを暗号化して送受信する前記クライアントとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該クライアントからの接続のときに、該クライアントとでそれぞれの一時公開鍵を交換し、サーバの一時秘密鍵と該クライアントの一時公開鍵とで一時共通鍵を生成し、
前記クライアントからの、前記第１の公開鍵証明書を用い、該クライアントの一時秘密鍵と前記サーバの一時公開鍵とで生成した一時共通鍵で暗号化されたクライアント公開鍵を含む第２の公開鍵証明書の発行要求に対して、前記サーバの一時秘密鍵と該クライアントの一時公開鍵とで生成した前記一時共通鍵で該クライアント公開鍵を復元して、該第２の公開鍵証明書を生成し、該第２の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する
処理をコンピュータに実行させる管理プログラム。
【請求項１６】
データを送信したクライアントの正当性と、データの正当性の確認に用いられる公開鍵証明書の管理方法であって、
メッセージを暗号化して送受信する前記クライアントとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該クライアントからの接続のときに、該クライアントとでそれぞれの一時公開鍵を交換し、サーバの一時秘密鍵と該クライアントの一時公開鍵とで一時共通鍵を生成し、
前記クライアントからの、前記第１の公開鍵証明書を用い、該クライアントの一時秘密鍵と前記サーバの一時公開鍵とで生成した一時共通鍵で暗号化されたクライアント公開鍵を含む第２の公開鍵証明書の発行要求に対して、前記サーバの一時秘密鍵と該クライアントの一時公開鍵とで生成した前記一時共通鍵で該クライアント公開鍵を復元して、該第２の公開鍵証明書を生成し、該第２の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する
処理をコンピュータが行う管理方法。
【請求項１７】
プロセッサと、
データを送信したクライアントの正当性と、該データの正当性の確認に用いられる第１の公開鍵証明書を記憶する記憶部とを有するサーバであって、
前記プロセッサは、
メッセージを暗号化して送受信する前記クライアントとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該クライアントからの接続のときに、該クライアントとでそれぞれの一時公開鍵を交換し、サーバの一時秘密鍵と該クライアントの一時公開鍵とで一時共通鍵を生成し、
前記クライアントからの、前記第１の公開鍵証明書を用い、該クライアントの一時秘密鍵と前記サーバの一時公開鍵とで生成した一時共通鍵で暗号化されたクライアント公開鍵を含む第２の公開鍵証明書の発行要求に対して、前記サーバの一時秘密鍵と該クライアントの一時公開鍵とで生成した前記一時共通鍵で該クライアント公開鍵を復元して、該第２の公開鍵証明書を生成し、該第２の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する
処理を実行するサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュアな通信技術に関する。
【背景技術】
【０００２】
近年、インターネット等を介したデータ通信をセキュアに行うために、一般的には、通信上の秘匿データに対して一時鍵を適用することにより、鍵の推定を事実上防いでいる。また、公開鍵を用いてデータを暗号化することが行われている。【０００３】
公開鍵方式を使ったセキュアな通信方式においては、最初にデータ要求元から送信データに付加する要求元の電子署名を検証するための公開鍵証明書をデータ要求先に送付し、要求先ではその公開鍵証明書の正当性をチェックした上で、データ要求元から受信したデータの署名を公開鍵証明書の中の公開鍵を使ってチェックすることにより、受信したデータが正しい要求元で作成されたものなのかどうかを確認している。【０００４】
しかしながら、データの署名検証に使われる公開鍵証明書は、データ要求元に固有の鍵ペア（公開鍵と秘密鍵）を更新しない限りは常に同じものが使われ、第三者がある程度長い時間をかければ、その公開鍵に対応する秘密鍵を推定できてしまう可能性が高く、秘密鍵が推定された場合、データ要求元のクライアントのなりすましが可能となり、データの不正利用、不正改竄が可能となってしまう。【０００５】
鍵ペア（公開鍵と秘密鍵）を更新するために、クライアント・サーバ間の通信セッションの開設において、双方の公開鍵証明書を互いに認証した後、互いに作成した一時公開鍵を相手から受け取った公開鍵証明書内の公開鍵を使って署名検証することによって双方の一時公開鍵の正当性を確認し、互いに相手から受け取った一時公開鍵と自分の一時秘密鍵から一時対称鍵を共有することで、共有した一時対称鍵を用いて通信データを暗号化及び復号する技術等が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第５６５７３９０号明細書
【特許文献２】特開２００４−２３２２４号公報
【特許文献３】特開２００５−２０４１４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した技術により、通信環境を開設する毎に一時公開鍵が変わるため、第三者が通信データから一時公開鍵に対応する一時秘密鍵を推定することが困難である。そのため、暗号化された通信データを第三者が復号して推定することは非常に難しい。【０００８】
しかしながら、最初にクライアント・サーバ間で交換する双方の通信データのチェックに使用する公開鍵証明書は、更新することが困難であることから、有効期限が長く設定され、長期間にわたり変更されることなく利用される。長期間にわたり同じ公開鍵証明書を使用し続けた場合には、第三者が、公開鍵証明書に含まれる公開鍵に対応する秘密鍵を推定することは比較的容易になってくる。【０００９】
第三者があるクライアントの公開鍵証明書の秘密鍵を推定できた場合、第三者は完全にそのクライアントに成り済ますことができる。第三者は、クライアントに成り済まし、正規のコンテンツを獲得することができ、獲得した正規のコンテンツを無制限に複写して不特定多数の人々に配布することも可能である。【００１０】
したがって、１つの側面では、本発明は、クライアントの公開鍵証明書をセキュアに更新可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
一態様によれば、メッセージを暗号化して送受信するサーバとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該サーバへの接続のときに、該サーバに対し一時的に利用する一時サーバ公開鍵を要求し、一時的に利用する一時クライアント鍵ペアを生成し、該一時クライアント鍵ペアのうち一時クライアント秘密鍵と前記サーバから前記セキュアな通信により受信した前記一時サーバ公開鍵とで一時共通鍵を生成し、前記セキュアな通信において、前記一時クライアント秘密鍵とペアとなる一時クライアント公開鍵と、生成した前記一時共通鍵で暗号化した第２の公開鍵証明書に対応付けられるクライアント公開鍵とを、前記第１の公開鍵証明書を用い、前記第１の公開鍵証明書に対応する前記第１のクライアント秘密鍵による前記電子署名を付与して前記サーバへ送信することで、該第２の公開鍵証明書の発行要求を行い、前記サーバから、前記一時共通鍵で暗号化された前記第２の公開鍵証明書を前記セキュアな通信により受領し、該一時共通鍵で該第２の公開鍵証明書を復号し、前記第１の公開鍵証明書の有効期限が過ぎた場合は、前記セキュアな通信において、前記第２の公開鍵証明書に対応する第２のクライアント秘密鍵による電子署名をメッセージに付与して前記サーバと通信する処理をコンピュータに実行させる更新プログラムを提供する。
【００１２】
また、上記処理をコンピュータが実行する更新方法、端末装置、及び、上記プログラムを記憶した記憶媒体とすることもできる。【００１３】
他の態様によれば、データを送信したクライアントの正当性と、該データの正当性の確認に用いられる公開鍵証明書の管理プログラムであって、メッセージを暗号化して送受信する前記クライアントとのセキュアな通信において、暗号化された該メッセージに対して、第１の公開鍵証明書に対応する第１のクライアント秘密鍵による電子署名を付与し、有効期限付きの該第１の公開鍵証明書を初めて用いた、該クライアントからの接続のときに、一時的に利用する一時サーバ公開鍵を新たに生成し、前記クライアントに送信し、前記セキュアな通信により、前記クライアントから、前記第１の公開鍵証明書を用い、一時クライアント公開鍵と、前記一時サーバ公開鍵と一時クライアント秘密鍵から生成された一時共通鍵によって暗号化されたクライアント公開鍵とを含む第２の公開鍵証明書の発行要求を受信し、前記一時サーバ公開鍵とペアとなる一時サーバ秘密鍵と、前記クライアントから受信した前記一時クライアント公開鍵とで前記一時共通鍵を生成し、生成した該一時共通鍵を用いて前記クライアント公開鍵を復号し、前記セキュアな通信による前記クライアントからの第２の公開鍵証明書の発行要求に対して、復号した前記クライアント公開鍵を用いて該第２の公開鍵証明書を生成し、該第２の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する処理をコンピュータに実行させる管理プログラムを提供する。
【００１４】
また、上記処理をコンピュータが実行する管理方法、サーバ、及び、上記プログラムを記憶した記憶媒体とすることもできる。
【発明の効果】
【００１５】
クライアントの固有の公開鍵証明書と秘密鍵のペアをセキュアに更新することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施例にけるデータ通信システムの概要を説明するための図である。
【図２】サーバのハードウェア構成を示す図である。
【図３】クライアントのハードウェア構成を示す図である。
【図４】サーバのハードウェア構成を示す図である。
【図５】クライアントのハードウェア構成を示す図である。
【図６】クライアントの第１の機能構成例を示す図である。
【図７】サーバの第１の機能構成例を示す図である。
【図８】通信データ構成の他の例を示す図である。
【図９】クライアントの第２の機能構成例を示す図である。
【図１０】証明書管理情報テーブルのデータ構成例を示す図である。
【図１１】サーバの第２の機能構成例を示す図である。
【図１２】サーバにおける証明書管理情報テーブルのデータ構成例を示す図である。
【図１３】ステップ（Ｉ）におけるクライアントでの処理を説明するためのフローチャート図である。
【図１４】ステップ（Ｉ）及び（ＩＩ）におけるサーバでの処理を説明するためのフローチャート図（その１）である。
【図１５】ステップ（Ｉ）及び（ＩＩ）におけるサーバでの処理を説明するためのフローチャート図（その２）である。
【図１６】ステップ（ＩＩ）及び（ＩＩＩ）におけるクライアントでの処理を説明するためのフローチャート図（その１）である。
【図１７】ステップ（ＩＩ）及び（ＩＩＩ）におけるクライアントでの処理を説明するためのフローチャート図（その２）である。
【図１８】ステップ（ＩＩＩ）及び（ＩＶ）におけるサーバでの処理を説明するためのフローチャート図（その１）である。
【図１９】ステップ（ＩＩＩ）及び（ＩＶ）におけるサーバでの処理を説明するためのフローチャート図（その２）である。
【図２０】ステップ（ＩＩＩ）及び（ＩＶ）におけるサーバでの処理を説明するためのフローチャート図（その３）である。
【図２１】ステップ（ＩＶ）におけるクライアントでの処理を説明するためのフローチャート図である。
【図２２】図２２（Ａ）は、関連技術の場合を示し、図２２（Ｂ）は、本実施例の場合を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて説明する。公開鍵方式を使ったセキュアな通信方式において、ある程度長い鍵長の鍵を使えば、秘密鍵が第三者によって導出される心配はほぼないと考えられてきた。ＥＣＣ（Elliptic Curve Cryptography）の場合、鍵長は素体２２４ビット以上である。また、ＲＳＡ（Rivest Shamir Adleman）の場合、鍵長は２０４８ビット以上である。
【００１８】
（１）しかしながら、近年、各情報処理装置のＣＰＵ（Central Processing Unit）性能、メモリ容量等のパフォーマンスは飛躍的に向上し、また、インターネット上の非常に多数の情報処理装置を利用した並列計算処理の技術が進歩している。従って、同じクライアント公開鍵を使い続けていると、秘密鍵を推定されて要求元のアプリケーションプログラム、ファームウェアが成り済まされる可能性が高くなっている。また、どの程度の鍵長とすれば十分であるかは、確定されたものではなく、秘密鍵を推定する技術の進歩とともに要求元が成り済まされるリスクが高くなる。
【００１９】
（２）新しいクライアント公開鍵証明書及び新しい秘密鍵を埋め込んだ、要求元となるアプリケーションプログラム又はファームウェアを適当な期間で更新することが考えられる。この場合、アプリケーションプログラム又はファームウェアを更新する運用に負担が掛り、また、更新するためにはコストが掛る。
【００２０】
（３）コストを掛けてアプリケーションプログラム又はファームウェアを更新する場合であっても、更新要求に付加される、正当な要求元であることを示す署名には、同様にクライアント公開鍵証明書が使用される。即ち、更新時に使用するクライアント公開鍵証明書に関して、上記（１）の問題が同様に存在し、結局、成り済ましのリスクを解消することができない。
【００２１】
上述より、十分に安全な期間での要求元のクライアント公開鍵証明書の更新は難しく、セキュリティに関するリスクを包含していても、要求元のクライアント公開鍵証明書の期限を非常に長いものにして運用するのが一般的である。
【００２２】
図１は、本実施例にけるデータ通信システムの概要を説明するための図である。図１において、本実施例にけるデータ通信システム１０００は、１以上のクライアント５と、サーバ１００とが、ネットワーク２を介して接続される。各クライアント５とサーバ１００との間では、ＰＫＩ（Public Key Infrastructure）により暗号化されたデータで通信が行われる。クライアント５が、現行世代クライアント公開鍵証明書６ｋを、次世代クライアント公開鍵証明書６ｋ'に更新する処理の概要について説明する。
【００２３】
先ず、クライアント５は、サーバ１００との間で、ＰＫＩによる通信によって一時共通鍵３ｍの共有処理２１ｐを行う。共有処理２１ｐを行う時点では、クライアント５は、現行世代クライアント公開鍵６ａと現行世代クライアント秘密鍵６ｂとによる現行世代クライアント鍵ペア６ｐ、及び、現行世代クライアント公開鍵証明書６ｋとを保持する。
【００２４】
クライアント５からサーバ１００へのデータ送信は、これら現行世代クライアント鍵ペア６ｐと現行世代クライアント公開鍵証明書６ｋとが用いられ、ＰＫＩにより暗号化されたデータがサーバ１００へと送信される。
【００２５】
クライアント５とサーバ１００間で一時共通鍵３ｍが共有されると、クライアント５は、一時共通鍵３ｍを用いた更新処理２２ｐをサーバ１００との間で行う。クライアント５は、次世代クライアント鍵ペア６ｐ'を生成し、サーバ１００と共有した一時共通鍵３ｍで、次世代クライアント公開鍵６ａ'を暗号化して、サーバ１００から次世代クライアント公開鍵証明書６ｋ'を取得する。
【００２６】
図１のデータ通信システム１００において、サーバ１００は、テキスト、静止画、動画等の種々の情報をクライアント５に提供するセンタに相当する。クライアント５のユーザは、サーバ１００を運営するプロバイダとの間で所定の契約を結ぶことで、サーバ１００は、クライアント５の正当性を確認したうえで、情報提供を行う。
【００２７】
本実施例におけるデータ通信システム１０００では、以下の＜仕組みＩ＞及び＜仕組みＩＩ＞を提供する。
＜仕組みＩ＞では、現行世代クライアント秘密鍵６ｂに対する長時間にわたる推定に対抗する仕組みを提供する。
＜仕組みＩＩ＞では、更新処理２２ｐの実行中における不正な解析に対処する仕組みを提供する。
【００２８】
＜仕組みＩ＞
ＰＫＩ暗号化による通信において、上述した共有処理２１ｐ及び更新処理２２ｐを行う通信シーケンス例について図２及び図３で説明する。図２及び図３において、ＰＫＩに基づき暗号化されたデータは、送信元の公開鍵を示す公開鍵証明書６ｋ（又は７ｋ）と、メッセージ１ｍと、送信元の電子署名６ｅ（又は７ｅ）とを含む。公開鍵証明書６ｋ（又は７ｋ）により、送信元の公開鍵の正当性を示し、電子署名によって正しいデータであることを示す。電子署名は、送信元の秘密鍵で作成される。他の図においても同様である。
【００２９】
図２は、共有処理における通信シーケンス及び通信データ構成の例を示す図である。ステップ（Ｉ）において、クライアント５は、一時共通鍵３ｍをサーバ１００と共有するために、データ３１ｄをサーバ１００に送信する。データ３１ｄは、ＰＫＩに基づき暗号化されたデータである。
【００３０】
データ３１ｄは、現行世代クライアント公開鍵６ａを示す現行世代クライアント公開鍵証明書６ｋと、メッセージ１ｍと、現行世代クライアント秘密鍵６ｂによる電子署名６ｅとを有する。クライアント５は、一時クライアント鍵ペア４ｐを生成しておく。
【００３１】
ステップ（ＩＩ）において、サーバ１００は、ＰＫＩに基づき、データ３１ｄの現行世代クライアント公開鍵証明書６ｋによりクライアント５の正当性を確認し、現行世代クライアント公開鍵証明書６ｋで示される現行世代クライアント公開鍵６ａを使って電子署名６ｅの正当性を判断する。
【００３２】
サーバ１００は、クライアント５の電子署名６ｅの正当性を確認した後、一時サーバ鍵ペア２ｐを生成する。そして、サーバ１００は、サーバ公開鍵７ａを示すサーバ公開鍵証明書７ｋと、一時サーバ公開鍵２ａを含むメッセージ１ｍと、サーバ秘密鍵７ｂによる電子署名７ｅとを含むデータ３２ｄを作成して、クライアント５に送信する。
【００３３】
ステップ（ＩＩＩａ）において、クライアント５は、サーバ１００からデータ３２ｄを受信すると、ＰＫＩに基づき、データ３２ｄが正当なサーバ１００からの正しいデータであることを確認後、メッセージ１ｍに含まれる一時サーバ公開鍵２ａと一時クライアント秘密鍵４ｂとで一時共通鍵３ｍを生成する。そして、クライアント５は、ＰＫＩに基づき、メッセージ１ｍに一時クライアント公開鍵４ａを含むデータ３３ｄ−１を作成し、サーバ１００に送信する。
【００３４】
サーバ１００は、データ３３ｄ−１を受信すると、ＰＫＩに基づき、データ３３ｄ−１が正当なクライアント５からの正しいデータであることを確認後、メッセージ１ｍから一時クライアント公開鍵４ａを取り出して、取り出した一時クライアント公開鍵４ａと一時サーバ秘密鍵２ｂとで一時共通鍵３ｍを生成する。
【００３５】
これにより、クライアント５とサーバ１００間の通信に使用する一時共通鍵３ｍが、クライアント５とサーバ１００の夫々に設定される。クライアント５とサーバ１００間は、一時共通鍵３ｍを使用した一時的な通信を確立する。
【００３６】
図３は、更新処理における通信シーケンス及び通信データ構成の例を示す図である。ステップ（ＩＩＩｂ）において、図２のデータ３３ｄ−１に続いて、クライアント５は、次世代クライアント鍵ペア６ｐ'を生成し、ＰＫＩに基づき、メッセージ１ｍに次世代クライアント公開鍵６ａ'を含むデータ３３ｄ−２を作成し、サーバ１００に送信する。
【００３７】
サーバ１００は、データ３３ｄ−２を受信すると、ＰＫＩに基づきデータ３３ｄ−２が正当なクライアント５からの正しいデータであることを確認後、メッセージ１ｍから次世代クライアント公開鍵６ａ'を取り出す。
【００３８】
ステップ（ＩＶ）において、そして、サーバ１００は、メッセージ１ｍから取り出した次世代クライアント公開鍵６ａ'に対してクライアント公開鍵証明書６ｋ'を発行する。サーバ１００は、クライアント公開鍵証明書６ｋ'を一時共通鍵３ｍで暗号化してメッセージ１に含めて、ＰＫＩに基づいてデータ３４ｄを作成し、クライアント５へ送信する。
【００３９】
クライアント５は、データ３４ｄを受信すると、ＰＫＩに基づきデータ３４ｄが正当なクライアント５からの正しいデータであることを確認後、メッセージ１ｍから次世代クライアント公開鍵証明書６ｋ'を一時共通鍵３ｍで復号して、取得する。
【００４０】
このように、更新処理毎に、クライアント５とサーバ１００とは新たに一時共通鍵３ｍを生成して共有する。一時共通鍵３ｍは、１回の更新処理にのみ生成され共有されるため、公開鍵証明書の更新用の鍵ペア及び公開鍵証明書を長期間、保持する場合に比べて、一時共通鍵３ｍの期間は相当に短い。長期間とは、数年から凡そ１０年等の年単位である。一時共通鍵３ｍの期間は、時間単位、又は日単位の長さである。
【００４１】
上述したように、次世代クライアント公開鍵６ａ'と次世代クライアント公開鍵証明書６ｋ'とは，一時共通鍵３ｍで暗号化されるためセキュアに更新を行うことができる。また、更新処理毎に、クライアント５とサーバ１００とは新たな一時共通鍵３ｍを短期間の間だけ共有するため、解読されるリスクを極めて少なくすることができる。
【００４２】
クライアント５の現行世代クライアント秘密鍵６ｂが推定される前に新たな次世代クライアント鍵ペア６ｐ'に切り替えていくことが可能となり、第三者によるクライアントの現行世代クライアント秘密鍵６ｂの推定は非常に困難になる。第三者による現行世代クライアント公開鍵６ａに対する長時間にわたる推定に対抗することができる。
【００４３】
クライアント５が、サーバ１００から次世代クライアント公開鍵証明書６ｋ'を受信する前に、クライアント５の現行世代クライアント公開鍵証明書６ｋの期限が経過した場合、通常は、クライアントベンダーは別の手続きによって新たなクライアント公開鍵証明書の発行申請を行う。その際、クライアントベンダーは、現行世代クライアント公開鍵証明書６ｋの失効を申請する。
【００４４】
そして、クライアントベンダーは、次世代クライアント公開鍵証明書６ｋ'及び次世代クライアント秘密鍵を組み込んだ、クライアント５で動作するアプリケーションプログラム又はファームウェアを流通させるようにする。
【００４５】
具体的には、クライアントベンダーは、クライアント５に相当する機器をメーカー又は代理店に返品し、アプリケーションプログラム又はファームウェアに次世代クライアント公開鍵証明書６ｋ'及び次世代クライアント秘密鍵を組み込んだ機器を再送してもらう。或いは、ユーザが再認証して、アプリケーションプログラム又はファームウェアをインターネット経由で更新して次世代クライアント公開鍵証明書６ｋ'及び次世代クライアント秘密鍵を取得する。
【００４６】
上述したように、本実施例では、次世代クライアント公開鍵６ａ'と次世代クライアント公開鍵証明書６ｋ'とは、クライアント５とサーバ１００との間で一時共通鍵３ｍを共有した後、その一時共通鍵３ｍにより暗号化し、また復号する。
【００４７】
従って、次世代クライアント公開鍵６ａ'は、それに対する次世代クライアント公開鍵証明書６ｋ'を現行世代クライアント公開鍵証明書６ｋとして使用開始するまで、ネットワーク２上に現れることはない。
【００４８】
つまり、一時共通鍵３ｍが使用されて推定可能な状態になるまで、第三者は、次世代クライアント公開鍵６ａ'を推定開始することができない。
【００４９】
＜仕組みＩＩ＞
サーバ１００からクライアント５への次世代クライアント公開鍵証明書６ｋ'の返信を阻害する行為に対して、サーバ１００は、サーバ１００から次世代クライアント公開鍵証明書６ｋ'を未だ受信していない状態によるクライアント５からのメッセージの受信回数をカウントし、運用で定めた規定値を超えた場合は、その次世代クライアント公開鍵証明書６ｋ'を失効し、また、その次世代クライアント公開鍵証明書６ｋ'を使った要求を拒絶する制御を行う。この＜仕組みＩＩ＞により、再送攻撃による不正な解析に対処できる。
【００５０】
図４は、サーバのハードウェア構成を示す図である。図４において、サーバ１００は、コンピュータによって制御される装置であって、プロセッサとしてのＣＰＵ（Central Processing Unit）１１ａと、主記憶装置１２ａと、補助記憶装置１３ａと、入力装置１４ａと、表示装置１５ａと、通信Ｉ／Ｆ（インターフェース）１７ａと、ドライブ装置１８ａとを有し、バスＢに接続される。
【００５１】
ＣＰＵ１１ａは、主記憶装置１２ａに格納されたプログラムに従ってサーバ１００を制御する。主記憶装置１２ａには、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等が用いられ、ＣＰＵ１１ａにて実行されるプログラム、ＣＰＵ１１ａでの処理に必要なデータ、ＣＰＵ１１ａでの処理にて得られたデータ等を記憶又は一時保存する。
【００５２】
補助記憶装置１３ａには、ＨＤＤ（Hard Disk Drive）等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３ａに格納されているプログラムの一部が主記憶装置１２ａにロードされ、ＣＰＵ１１ａに実行されることによって、各種処理が実現される。記憶部１３０ａは、主記憶装置１２ａ及び／又は補助記憶装置１３ａに相当する。
【００５３】
入力装置１４ａは、マウス、キーボード等を有し、ユーザがサーバ１００による処理に必要な各種情報を入力するために用いられる。表示装置１５ａは、ＣＰＵ１１ａの制御のもとに必要な各種情報を表示する。通信Ｉ／Ｆ１７ａは、有線又は無線などのネットワークを通じて通信を行う。通信Ｉ／Ｆ１７ａによる通信は無線又は有線に限定されるものではない。
【００５４】
サーバ１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）等の非一時的で有形の媒体である記憶媒体１９ａによってサーバ１００に提供される。
【００５５】
ドライブ装置１８ａは、ドライブ装置１８ａにセットされた記憶媒体１９ａ（ＣＤ−ＲＯＭ等）とサーバ１００とのインターフェースを行う。
【００５６】
また、記憶媒体１９ａに、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体１９に格納されたプログラムは、ドライブ装置１８ａを介してサーバ１００にインストールされる。インストールされたプログラムは、サーバ１００により実行可能となる。
【００５７】
尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００５８】
入力装置１４ａは、ユーザに種々の情報を表示したり、ユーザがサーバ１００による処理に必要な各種情報を入力するために用いられる。入力装置１４ａと表示装置１５ａとは、一体化されたタッチパネルであっても良い。
【００５９】
クライアント５は、コンピュータを有する電子機器（以下、単に「機器」と言う）に相当し、テレビ、ＳＴＢ（Set Top Box）、他家電製品等である。クライアント５は、生体情報に係る管理装置等であっても良い。クライアント５は、図３に示すようなハードウェア構成を有する。図５は、クライアントのハードウェア構成を示す図である。
【００６０】
図５において、クライアント５は、コンピュータによって制御される電子機器であって、プロセッサとしてのＣＰＵ（Central Processing Unit）１１ｂと、主記憶装置１２ｂと、特定処理装置１４ｂと、ユーザＩ／Ｆ（インターフェース）１６ｂと、通信Ｉ／Ｆ１７ｂと、ドライブ装置１８ｂとを有し、バスＢ２に接続される。
【００６１】
ＣＰＵ１１ｂは、主記憶装置１２ｂに格納されたプログラムに従ってクライアント５を制御する。主記憶装置１２ｂには、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等が用いられ、ＣＰＵ１１ｂにて実行されるプログラム、ＣＰＵ１１ｂでの処理に必要なデータ、ＣＰＵ１１ｂでの処理にて得られたデータ等を記憶又は一時保存する。主記憶装置１２ｂに格納されているプログラムが、ＣＰＵ１１ｂに実行されることによって、各種処理が実現される。
【００６２】
特定処理装置１４ｂは、電子機器が目的とする、テレビ、ＳＴＢ（Set Top Box）、他家電製品、生体情報に係る管理装置等としての特定処理を行う。ユーザＩ／Ｆ１６ｂは、ＣＰＵ１１ｂの制御のもとに必要な各種情報を表示し、また、ユーザによる操作入力を可能とするタッチパネル等である。
【００６３】
通信Ｉ／Ｆ１７ｂは、１又は複数の通信プロトコルに対応し、有線又は無線などのネットワーク２を介してサーバ装置１００との通信を行うインタフェースである。通信Ｉ／Ｆ１７ｂによる通信は無線又は有線に限定されるものではない。
【００６４】
クライアント５によって行われる処理を実現するプログラムは、ネットワーク２を介して外部サーバからダウンロードされても良い。或いは、プログラムは、クライアント５の主記憶装置１２ｂに記憶されていても良い。
【００６５】
ドライブ装置１８ｂは、ドライブ装置１８ｂにセットされた、非一時的で有形の媒体である記憶媒体１９ｂ（例えば、ＳＤカード等）と、クライアント５とのインターフェースを行う。主記憶装置１２ｂ及び／又は記憶媒体１９ｂが記憶部１３０ｂに相当する。
【００６６】
クライアント５は、特定処理装置１４ｂに着脱可能な、又は、特定処理装置１４ｂと通信Ｉ／Ｆ１７ｂを介して通信可能な、デスクトップ型、ノートブック型、ラップトップ型等の情報処理端末であっても良く、そのハードウェア構成は、図３に示す構成から特定処理装置１４ｂを除いてほぼ同様であるので、その説明を省略する。
【００６７】
次に、＜仕組みＩ＞及び＜仕組みＩＩ＞を実現するための機能構成例について説明する。図中に示す略語と名称との対応付けは以下の通りである。
・CC_PUBは、現行世代クライアント公開鍵を表す。
・CC_CRTは、現行世代クライアント公開鍵証明書を表す。
・CC_PRVは、現行世代クライアント秘密鍵を表す。
・NC_PUBは、次世代クライアント公開鍵を表す。
・NC_CRTは、次世代クライアント公開鍵証明書を表す。
・NC_PRVは、次世代クライアント秘密鍵を表す。
・TM_COMは、一時共通鍵を表す。
・TMC_PUBは、一時クライアント公開鍵を表す。
・TMC_PRVは、一時クライアント秘密鍵を表す。
・RT_CRTは、ルート公開鍵証明書を表す。
・S_PUBは、サーバ公開鍵を表す。
・S_CRTは、サーバ公開鍵証明書を表す。
・S_PRVは、サーバ秘密鍵を表す。
・TMS_PUBは、一時サーバ公開鍵を表す。
・TMS_PRVは、一時サーバ秘密鍵を表す。
【００６８】
図６は、クライアントの第１の機能構成例を示す図である。図６において、クライアント５は、更新部５０と、一時鍵ペア生成部５２と、一時共通鍵生成部５３とを有する。更新部５０と、一時鍵ペア生成部５２と、一時共通鍵生成部５３とは、ＣＰＵ１１ｂが対応するプログラムを実行することで行われる処理に相当する。
【００６９】
また、クライアント５では、記憶部１３０ｂに、現行世代クライアント公開鍵６ａ、現行世代クライアント公開鍵証明書６ｋ、現行世代クライアント秘密鍵６ｂ、次世代クライアント公開鍵６ａ'、次世代クライアント公開鍵証明書６ｋ'、次世代クライアント秘密鍵６ｂ'、一時サーバ公開鍵２ａ、一時クライアント公開鍵４ａ、一時クライアント秘密鍵４ｂ等を記憶する。
【００７０】
更新部５０は、現行世代クライアント公開鍵証明書６ｋの更新するための図１に示す共有処理２１ｐ及び更新処理２２ｐを制御する。一時鍵ペア生成部５２は、一時共通鍵３ｍを生成するための一時クライアント鍵ペア４ｐを生成する。一時クライアント鍵ペア４ｐとなる一時クライアント公開鍵４ａ及び一時クライアント秘密鍵４ｂが記憶部１３０ｂに格納される。
【００７１】
一時共通鍵生成部５３は、一時サーバ公開鍵２ａと一時クライアント秘密鍵４ｂとで、サーバ１００と共有する一時共通鍵３ｍを生成する。一時共通鍵３ｍは記憶部１３０ｂに格納される。
【００７２】
先ず、上述した＜仕組みＩ＞に係る処理を説明する。ステップは、図１及び図２で示すステップに対応する。
【００７３】
ステップ（Ｉ）において、一時サーバ公開鍵２ａを要求する。更新部５０は、メッセージ１ｍに対して、現行世代クライアント公開鍵６ａを示す現行世代クライアント公開鍵証明書６ｋと、現行世代クライアント秘密鍵６ｂによる電子署名６ｅとを付加したデータ３１ｄを作成する。更新部５０は、データ３１ｄをサーバ１００へ送信する。
【００７４】
一方、更新部５０は、一時鍵ペア生成部５２によって、一時クライアント鍵ペア４ｐを生成する。一時クライアント鍵ペア４ｐの生成により、記憶部１３０ｂに、一時クライアント公開鍵４ａと一時クライアント秘密鍵４ｂとが記憶される。
【００７５】
ステップ（ＩＩ）において、一時共通鍵３ｍを共有する。一時共通鍵生成部５３は、サーバ１００からデータ３２ｄを受信する。データ３２ｄは、サーバ公開鍵７ａを示すサーバ公開鍵証明書７ｋと、一時サーバ公開鍵２ａを含むメッセージ１ｍと、サーバ秘密鍵７ｂによる電子署名６ｅとを含む。
【００７６】
一時共通鍵生成部５３は、データ３２ｄのサーバ公開鍵証明書７ｋの正当性を確認後、サーバ公開鍵証明書７ｋで示されるサーバ公開鍵７ａを用いて電子署名７ｅの正当性を確認して、正当なサーバ１００が作成した正しいデータであることを確認する。
【００７７】
その後、一時共通鍵生成部５３は、データ３２ｄのメッセージ１ｍから一時サーバ公開鍵２ａを取得して、取得した一時サーバ公開鍵２ａと、一時鍵ペア生成部５２で生成された一時クライアント秘密鍵４ｂとで一時共通鍵３ｍを生成する。一時共通鍵生成部５３によって生成された一時共通鍵３ｍは、記憶部１３０ｂに格納される。
【００７８】
一方、クライアント５は、データ３２ｄを受信せず、サーバ１００からエラー終了通知を受信する場合がある。サーバ１００によって、現行世代クライアント公開鍵証明書６ｋの期限が経過していると判断された場合である。エラー終了通知部５９は、サーバ１００から受信したエラー終了通知を更新部５０に通知する。
【００７９】
更新部５０は、現世代クライアント公開鍵証明書６ｋの更新に失敗したことを示すメッセージをユーザＩ／Ｆ１６ｂに表示してユーザに通知する。この場合、ユーザは、サーバ１００を運営するプロバイダへ連絡をして、所定の手続きを行い、次世代クライアント公開鍵証明書６ｋ'を取得する。
【００８０】
ステップ（ＩＩＩａ）において、一時クライアント公開鍵４ａを通知する。更新部５０は、一時クライアント公開鍵４ａを含むメッセージに対して、現行世代クライアント公開鍵６ａを示す現行世代クライアント公開鍵証明書６ｋと、現行世代クライアント秘密鍵６ｂによる電子署名６ｅとを付加したデータ３３ｄ-１を作成する。更新部５０は、データ３３ｄ-１をサーバ１００へ送信する。サーバ１００でも一時共通鍵３ｍが生成される。
【００８１】
ステップ（ＩＩＩｂ）において、次世代クライアント公開鍵証明書６ｋ'を要求する。更新部５０は、次世代クライアント公開鍵６ａ'を一時共通鍵３ｍで暗号化する。更新部５０は、暗号化した次世代クライアント公開鍵６ａ'を含むメッセージ１ｍに対して、現行世代クライアント公開鍵６ａを示す現行世代クライアント公開鍵証明書６ｋと、現行世代クライアント秘密鍵６ｂによる電子署名６ｅとを付加したデータ３３ｄ−２を作成する。更新部５０は、データ３３ｄ−２をサーバ１００へ送信する。
【００８２】
ステップ（ＩＶ）において、次世代クライアント公開鍵証明書６ｋ'を取得する。更新部５０は、サーバ１００からデータ３４ｄを受信する。データ３４ｄは、サーバ公開鍵７ａを示すサーバ公開鍵証明書７ｋと、次世代クライアント公開鍵証明書６ｋ'を含むメッセージ１ｍと、サーバ秘密鍵７ｂによる電子署名７ｅとを含む。一時共通鍵３ｍによって次世代クライアント公開鍵証明書６ｋ'は暗号化されている。
【００８３】
更新部５０は、データ３４ｄのサーバ公開鍵証明書７ｋの正当性を確認後、サーバ公開鍵証明書７ｋで示されるサーバ公開鍵７ａを用いて電子署名７ｅの正当性を確認して、正規のサーバ１００が作成されたデータであることを確認する。
【００８４】
その後、更新部５０は、データ３４ｄのメッセージ１ｍの次世代クライアント公開鍵証明書６ｋ'を、一時共通鍵３ｍで復号する。復号された次世代クライアント公開鍵証明書６ｋ'は、記憶部１３０ｂに記憶される。
【００８５】
上述したように、互いに正当なクライアント５及びサーバ１００であることを確認し、一時共通鍵３ｍによる通信を確立することで、一時共通鍵３ｍを用いてセキュアに次世代クライアント公開鍵証明書６ｋ'を取得できる。
【００８６】
一時共通鍵３ｍは、次世代クライアント公開鍵証明書６ｋ'の取得のみに使用される秘密鍵であるため、長期間にわたり使用することがない。
【００８７】
また、現行世代クライアント公開鍵証明書６ｋを使用する初期の段階で、次世代クライアント鍵ペア６ｐ'を生成し、サーバ１００から次世代クライアント公開鍵証明書６ｋ'を取得するため、現行世代クライアント鍵ペア６ｐの使用期間を短く設定することができる。
【００８８】
一方、更新部５０は、ステップ（ＩＩＩａ）及び（ＩＩＩｂ）の後、サーバ１００から次世代クライアント公開鍵証明書６ｋ'を所定期間受信しない場合、即ち、ステップ（ＩＶ）が行われない場合、データ３３ｄ−１及びデータ３３ｄ−２を再送しても良い。その結果、サーバ１００からエラー終了通知を受信する場合がある。サーバ１００からのエラー終了通知は、エラー終了通知部５９によって更新部５０に通知される。
【００８９】
更新部５０は、サーバ１００からの次世代クライアント公開鍵証明書６ｋ'（データ３４ｄ）の返信が阻害された場合があると判断し、現行世代クライアント公開鍵証明書６ｋの更新に失敗したことを示すメッセージをユーザＩ／Ｆ１６ｂに表示してユーザに通知する。この場合、ユーザは、サーバ１００を運営するプロバイダへ連絡をして、所定の手続きを行い、次世代クライアント公開鍵証明書６ｋ'を取得する。
【００９０】
図７は、サーバの第１の機能構成例を示す図である。図７に示すサーバ１００の第１の機能構成例は、図６のクライアント５の第１の機能構成例に対応する構成を示している。
【００９１】
図７において、サーバ１００は、正当性確認部８１と、一時鍵ペア生成部８３と、一時共通鍵生成部８５と、管理部９０と、エラー検出部９９とを有する。正当性確認部８１と、一時鍵ペア生成部８３と、一時共通鍵生成部８５と、管理部９０と、エラー検出部９９とは、ＣＰＵ１１ａが対応するプログラムを実行することで行われる処理に相当する。
【００９２】
また、サーバ１００では、記憶部１３０ａに、一時サーバ公開鍵２ａ、一時サーバ秘密鍵２ｂ、失効リスト２ｆ、一時共通鍵３ｍ、一時クライアント公開鍵４ａ、次世代クライアント公開鍵証明書６ｋ'、ルート公開鍵証明書９ｂ等を記憶する。
【００９３】
正当性確認部８１は、クライアント５から受信したデータ３１の現行世代クライアント公開鍵証明書６ｋの正当性を確認する。一時鍵ペア生成部８３は、一時共通鍵ペア７ｐを生成するための一時サーバ鍵ペア２ｐを生成する。一時サーバ鍵ペア２ｐとなる一時サーバ公開鍵２ａ及び一時サーバ秘密鍵２ｂが記憶部１３０ａに格納される。
【００９４】
一時共通鍵生成部８５は、一時鍵ペア生成部８３によって生成された一時サーバ秘密鍵２ｂと、クライアント５から送信された一時クライアント公開鍵４ａとを用いて、一時共通鍵３ｍを生成する。一時共通鍵３ｍは記憶部１３０ａに格納される。
【００９５】
管理部９０は、クライアント５に対して発行した各クライアント公開鍵証明書を管理する。また、管理部９０は、クライアント５からのデータ３１ｄ及び３３ｄの電子署名６ｅの確認及び正当な要求であることを確認し、クライアント公開鍵証明書の発行を行う。
【００９６】
管理部９０は、電子署名６ｅを用いて、現行世代クライアント公開鍵証明書６ｋの正当性を確認し、現行世代クライアント公開鍵証明書６ｋの期限をチェックする。また、管理部９０は、次世代クライアント公開鍵証明書６ｋ'が未登録であることを確認して、次世代クライアント公開鍵証明書６ｋ'を生成及び登録する。更に、管理部９０は、クライアント５からの要求が不当要求回数制限を超えていないかを確認する。
【００９７】
エラー検出部９９は、正当性確認部８１又は管理部９０により、正当性が十分に確認できなかった場合、クライアント５へエラー終了を通知する。
【００９８】
サーバ１００での処理を、図６のステップ（Ｉ）、（ＩＩ）、（ＩＩＩａ）、（ＩＩＩｂ）、及び（ＩＶ）に対応させて説明する。
【００９９】
ステップ（Ｉ）において、一時サーバ公開鍵２ａの要求を受信する。サーバ１００において、一時サーバ公開鍵２ａを要求するメッセージ１ｍを含むデータ３１ｄを受信すると、正当性確認部８１は、ルート公開鍵証明書９ｂに基づいて、現行世代クライアント公開鍵証明書６ｋを確認する。
【０１００】
また、正当性確認部８１は、現行世代クライアント公開鍵証明書６ｋで示される現行世代クライアント公開鍵６ａを用いて、電子署名６ｅをチェックすることで、データ３１ｄが、正当なクライアント５によって作成された正しいデータであることを確認する。
【０１０１】
更に、正当性確認部８１は、現行世代クライアント公開鍵証明書６ｋが登録済みの証明書であることを確認し、現行世代クライアント公開鍵証明書６ｋの証明書期限に基づいて、証明書期限前であることを確認する。現行世代クライアント公開鍵証明書６ｋが未登録の場合、現行世代クライアント公開鍵証明書６ｋの期限が経過している場合、エラー検出部９９がクライアント５へエラー終了通知を送信する。
【０１０２】
ステップ（ＩＩ）において、一時共通鍵３ｍを共有するために一時サーバ鍵ペア２ｐを生成する。一時鍵ペア生成部８３は、一時サーバ鍵ペア２ｐを生成する。一時サーバ鍵ペア２ｐである、サーバ公開鍵７ａ及びサーバ秘密鍵７ｂが記憶部１３０ａに記憶される。
【０１０３】
サーバ公開鍵７ａを示すサーバ公開鍵証明書７ｋと、一時サーバ公開鍵２ａを含むメッセージ１ｍと、サーバ秘密鍵７ｂによる電子署名７ｅとを含むデータ３２ｄが生成され、クライアント５へ送信される。
【０１０４】
ステップ（ＩＩＩａ）において、一時クライアント公開鍵４ａを受信する。正当性確認部８１は、一時クライアント公開鍵４ａを含むデータ３３ｄ−１に対して、現行世代クライアント公開鍵証明書６ｋの正当性を確認し、現行世代クライアント公開鍵証明書６ｋによって示される現行世代クライアント公開鍵６ａで電子署名６ｅを確認する。データ３３ｄ−１が正当なクライアント５によって作成されたデータであることが確認された後、一時クライアント公開鍵４ａがメッセージ１ｍから取得される。
【０１０５】
管理部９０が不当要求回数制限値以内であることを確認した後、一時共通鍵生成部８５は、一時クライアント公開鍵４ａと、一時サーバ秘密鍵２ｂとを用いて、一時共通鍵３ｍを生成する。生成された一時共通鍵３ｍは、記憶部１３０ａに記憶される。
【０１０６】
ステップ（ＩＩＩｂ）において、次世代クライアント公開鍵証明書６ｋ'の要求を受信する。正当性確認部８１は、暗号化された次世代クライアント公開鍵６ａ'を含むデータ３３ｄ−２に対して、ルート公開鍵証明書９ｂを参照して現行世代クライアント公開鍵証明書６ｋの正当性を確認し、現行世代クライアント公開鍵証明書６ｋによって示される現行世代クライアント公開鍵６ａを用いて電子署名６ｅを確認する。
【０１０７】
正当性の確認後、管理部９０は、次世代クライアント公開鍵６ａ'に対する次世代クライアント公開鍵証明書６ｋ'が既に登録されているか否かを判断する。また、管理部９０は、現行世代クライアント公開鍵証明書６ｋの証明書期限を確認する。更に、管理部９０は、不当要求回数制限値以下の要求であることを確認する。
【０１０８】
不当要求回数制限値以下の要求であることの確認後、管理部９０は、メッセージ１ｍ内の次世代クライアント公開鍵６ａ'を一時共通鍵３ｍで復号して、次世代クライアント公開鍵６ａ'に対する次世代クライアント公開鍵証明書６ｋ'を生成する。生成された次世代クライアント公開鍵証明書６ｋ'は、記憶部１３０ｂに格納される。
【０１０９】
ステップ（ＩＶ）において、更新証明書暗号化部８７は、管理部９０によって生成された次世代クライアント公開鍵証明書６ｋ'を一時共通鍵３ｍで暗号化してメッセージ１ｍに含めたデータ３４ｄを作成し、クライアント５へ送信する。データ３４ｄには、サーバ公開鍵７ａを示すサーバ公開鍵証明書７ｋと、暗号化された次世代クライアント公開鍵証明書６ｋ'を含むメッセージ１ｍと、サーバ秘密鍵７ｂによる電子署名６ｅとが含まれる。
【０１１０】
管理部９０は、次世代クライアント公開鍵証明書６ｋ'を含んだデータ３４ｄをクライアント５に送信した後に、クライアント５から、再度、データ３３ｄ−１又は３３ｄ−２を受信する場合には、受信回数をカウントする。受信回数が予め定めた不当要求回数制限値を超えた場合、サーバ１００が送信した次世代クライアント公開鍵証明書６ｋ'（データ３４ｄ）が阻害された場合があると判断する。この場合、エラー検出部９９が、クライアント５へエラー終了通知を送信する。
【０１１１】
上述した図６のクライアント５の第１の機能構成及び図７のサーバ１００の第１の機能構成では、クライアント５が、一時クライアント公開鍵４ａと、一時共通鍵３ｍで暗号化した次世代クライアント公開鍵６ａ'とを、夫々別のデータ３３ｄ−１及び３３ｄ−２でサーバ１００へ送信したが、ステップ（ＩＩＩａ）において、更新部５０は、メッセージ１ｍに一時クライアント公開鍵４ａと、一時共通鍵３ｍで暗号化した次世代クライアント公開鍵６ａ'とを含めて１回の通信でサーバ１００へ送信しても良い。
【０１１２】
この場合、サーバ１００は、メッセージ１ｍに次世代クライアント公開鍵６ａ'と、一時共通鍵３ｍで暗号化した次世代クライアント公開鍵６ａ'とが含まれたデータを受信しても良い。ステップ（ＩＩＩａ）とステップ（ＩＩＩｂ）の処理を１つのデータに対して行えば良い。
【０１１３】
図８は、通信データ構成の他の例を示す図である。図８において、ステップ（ＩＩＩａ）とステップ（ＩＩＩｂ）でのデータを１つで行う場合の通信データ構成を示す。この場合をステップ（ＩＩＩ）とする。
【０１１４】
クライアント５は、一時共通鍵３ｍを生成した後、ステップ（ＩＩＩ）において、クライアント５の更新部５０は、次世代クライアント公開鍵６ａ'を一時共通鍵３ｍで暗号化する。
【０１１５】
そして、更新部５０は、一時クライアント公開鍵４ａと、一時共通鍵３ｍで暗号化した次世代クライアント公開鍵６ａ'とをメッセージ１ｍに含め、メッセージ１ｍに対して、現行世代クライアント公開鍵６ａを示す現行世代クライアント公開鍵証明書６ｋと、現行世代クライアント秘密鍵６ｂによる電子署名６ｅとを付加したデータ３３ｄを作成する。
【０１１６】
ステップ（ＩＩＩ）において、サーバ１００は、一時クライアント公開鍵４ａと、一時共通鍵３ｍで暗号化した次世代クライアント公開鍵６ａ'とを含んだデータ３３ｄを受信する。
【０１１７】
サーバ１００の正当性確認部８１は、データ３３ｄに対して、現行世代クライアント公開鍵証明書６ｋの正当性を確認し、現行世代クライアント公開鍵証明書６ｋによって示される現行世代クライアント公開鍵６ａで電子署名６ｅを確認する。データ３３ｄが正当なクライアント５によって作成されたデータであることが確認された後、一時クライアント公開鍵４ａがメッセージ１ｍから取得される。
【０１１８】
一時共通鍵生成部８５は、一時クライアント公開鍵４ａと、一時サーバ秘密鍵２ｂとを用いて、一時共通鍵３ｍを生成する。生成された一時共通鍵３ｍは、記憶部１３０ａに記憶される。
【０１１９】
管理部９０は、現行世代クライアント公開鍵証明書６ｋが登録済みの証明書であることを確認し、現行世代クライアント公開鍵証明書６ｋの証明書期限に基づいて、証明書期限前であることを確認する。更に、管理部９０は、不当要求回数制限値以内であることを確認する。
【０１２０】
不当要求回数制限値以下の要求であることの確認後、管理部９０は、メッセージ１ｍ内の次世代クライアント公開鍵６ａ'を一時共通鍵３ｍで復号して、次世代クライアント公開鍵６ａ'に対する次世代クライアント公開鍵証明書６ｋ'を生成する。生成された次世代クライアント公開鍵証明書６ｋ'は、記憶部１３０ｂに格納される。
【０１２１】
そして、ステップ（ＩＶ）において、サーバ１００から次世代クライアント公開鍵証明書６ｋ'がクライアント５へと提供される。
【０１２２】
以下に、クライアント５及びサーバ１００の第１の機能構成を詳細にした第２の機能構成について図９及び図１０で説明する。図９及び図１０では、図８に示すステップ（ＩＩＩ）によるデータ３３ｄの場合で説明する。
【０１２３】
図９は、クライアントの第２の機能構成例を示す図である。図９において、クライアント５は、更新部５０と、サーバ正当性判断部５１と、一時鍵ペア生成部５２と、一時共通鍵生成部５３と、暗号化部５４と、電子署名付与部５５と、電子署名チェック部５６と、復号部５７と、エラー終了通知部５９とを有する。
【０１２４】
更新部５０と、サーバ正当性判断部５１と、一時鍵ペア生成部５２と、一時共通鍵生成部５３と、暗号化部５４と、電子署名付与部５５と、電子署名チェック部５６と、復号部５７とは、ＣＰＵ１１ｂが対応するプログラムを実行することで行われる処理に相当する。
【０１２５】
また、クライアント５では、記憶部１３０ｂに、一時サーバ公開鍵２ａ、一時クライアント鍵ペア４ｐ、一時共通鍵３ｍ、現行世代クライアント鍵ペア６ｐ、現行世代クライアント公開鍵証明書６ｋ、次世代クライアント鍵ペア６ｐ'、次世代クライアント公開鍵証明書６ｋ'、電子署名付き次世代クライアント公開鍵６ｋ'−２、サーバ公開鍵証明書７ｋ、ルート公開鍵証明書９ｂ、データ３１ｄ〜３４ｄ、秘密データ３３ｓ及び３４ｓ等を記憶する。
【０１２６】
更新部５０は、現行世代クライアント公開鍵証明書６ｋの更新するための図１に示す共有処理２１ｐ及び更新処理２２ｐを制御する。
【０１２７】
更新部５０は、現行世代クライアント公開鍵証明書６ｋの期限チェックを行う。また、更新部５０は、次世代クライアント公開鍵証明書６ｋ'をサーバ１００から受信済みであるかを確認する。次世代クライアント公開鍵証明書６ｋ'を受信していない場合、共有処理２１ｐ及び更新処理２２ｐを行う。更新処理２２ｐにおいて、更新部５０は、次世代クライアント鍵ペア６ｐ'を生成し、サーバ１００から次世代クライアント公開鍵証明書６ｋ'を受信した場合、次世代クライアント公開鍵証明書６ｋ'を登録する
【０１２８】
ステップ（Ｉ）において、更新部５０は、期限チェックにより、現行世代クライアント公開鍵証明書６ｋの更新時期であると判断すると、現行世代クライアント公開鍵証明書６ｋを含むデータ３１ｄをサーバ１００へ送信する。データ３１ｄは、一時共通鍵３ｍを生成するための一時サーバ公開鍵の要求に相当する。
【０１２９】
ステップ（ＩＩ）において、クライアント５がサーバ１００からデータ３２ｄを受信すると、サーバ正当性判断部５１は、データ３２ｄが、正当なサーバ１００によって作成された、改竄されていない正しいデータであるか否かを判断する。
【０１３０】
ステップ（ＩＩＩ）において、一時鍵ペア生成部５２は、サーバ正当性判断部５１によって正しいデータであると判断された場合、一時共通鍵３ｍをサーバ１００と共有するために、一時クライアント鍵ペア４ｐを生成する。一時クライアント鍵ペア４ｐとして、一時クライアント公開鍵４ａ及び一時クライアント秘密鍵４ｂが記憶部１３０ｂに格納される。
【０１３１】
そして、一時共通鍵生成部５３は、一時クライアント秘密鍵４ｂとサーバ１００の一時サーバ公開鍵２ａとを用いて、一時共通鍵３ｍを生成する。
【０１３２】
暗号化部５４は、サーバ１００へ提供する、秘密データ３３ｓと、電子署名付き次世代クライアント公開鍵６ｋ'−２とからメッセージ１ｍを作成し、一時共通鍵３ｍを用いて暗号化する。そして、暗号化部５４は、一時クライアント公開鍵４ａをメッセージ１ｍに設定する。
【０１３３】
電子署名付き次世代クライアント公開鍵６ｋ'−２は、更新部５０により、サーバ１００から受信した次世代クライアント公開鍵証明書６ｋ'に、利用や複製を制御・制限するＤＲＭにより電子署名が付加された公開鍵証明書である。
【０１３４】
次に、電子署名付与部５５は、秘密データ３３ｓに対して、現行世代クライアント秘密鍵６ｂとを用いて電子署名を作成して、データ３３ｄを作成する。データ３３ｄは、現行世代クライアント公開鍵６ａを示す現行世代クライアント公開鍵証明書６ｋと、秘密データ３３ｓと、電子署名付き次世代クライアント公開鍵と、一時クライアント公開鍵と、現行世代クライアント秘密鍵による電子署名とにより作成される。データ３３ｄのメッセージ１ｍには、秘密データ３３ｓと、電子署名付き次世代クライアント公開鍵と、一時クライアント公開鍵とが含まれる。データ３３ｄは、サーバ１００へ送信される。
【０１３５】
ステップ（ＩＶ）において、電子署名チェック部５６は、データ３４ｄの電子署名をチェックして、データ３４ｄが正当なサーバ１００からの正しいデータであるを判断する。復号部５７は、データ３４ｄのメッセージ１ｍから秘密データ３４ｓを取得し、一時共通鍵３ｍを用いて、次世代クライアント公開鍵証明書６ｋ'を復号する。秘密データ３４ｓは記憶部１３０ｂに格納され、次世代クライアント公開鍵証明書６ｋ'が更新部５０に通知される。
【０１３６】
更新部５０は、復号部５７から通知された次世代クライアント公開鍵証明書６ｋ'の電子署名をチェックして、次世代クライアント鍵ペア６ｐ'と対応付けて登録し管理する。
【０１３７】
エラー終了通知部５９による処理は、図６の第１の機能構成における処理と同様であるので、その説明を省略する。
【０１３８】
クライアント５は、現世代クライアント公開鍵証明書６ｋ、次世代クライアント公開鍵証明書６ｋ'等を管理するために、図１０に示すような証明書管理情報テーブル６０を有する。図１０は、クライアントにおける証明書管理情報テーブルのデータ構成例を示す図である。
【０１３９】
図１０において、クライアント５で保持される証明書管理情報テーブル６０は、記憶部１３０ｂに保持され、エレメント番号、証明書ＩＤ、カレントフラグ、鍵種別、鍵長、公開鍵、秘密鍵、次世代証明書エレメント番号、前世代証明書エレメント番号、期限、クライアント公開鍵証明書等の項目を有する。
【０１４０】
エレメント番号は、現行世代クライアント公開鍵証明書６ｋに対して付与される管理用の番号である。エレメント番号は、レコードを特定するレコード番号であっても良い。
【０１４１】
証明書ＩＤは、クライアント公開鍵証明書の識別情報であり、証明書発行元ＩＤと、証明書シリアル番号とを示す。この例では、証明書ＩＤが、証明書発行元ＩＤと、証明書シリアル番号とによる２段の階層構造で示されるが、３段以上の階層構造であっても良い。
【０１４２】
証明書発行元ＩＤは、発行元であるサーバ１００の識別情報を示し、証明書シリアル番号は、サーバ１００が発行した各公開鍵証明書に付与したシリアル番号を示す。
【０１４３】
カレントフラグは、証明書ＩＤが現行世代クライアント公開鍵証明書６ｋであるか否かを示すフラグである。即ち、現在使用中のクライアント公開鍵証明書であることを示すフラグである。
【０１４４】
現行世代クライアント公開鍵証明書６ｋの場合、カレントフラグは「１」を示す。一方、クライアント公開鍵証明書が未使用世代である場合、カレントフラグは「０」を示す。また、カレントフラグの初期値は「０」である。
【０１４５】
鍵種別は、暗号化方式を指定する。鍵種別「Ｅ」は、楕円曲線暗号化（Elliptic Curve Cryptography（ECC））であることを示す。鍵種別「Ｒ」は、ＲＳＡ（Rivest Shamir Adleman）であることを示す。鍵長は、ビット長を示す。
【０１４６】
公開鍵は、公開鍵の値（バイナリ）を示し、暗号化された状態で格納される。秘密鍵は、秘密鍵の値（バイナリ）を示し、暗号化された状態で格納される。
【０１４７】
次世代証明書エレメント番号は、次世代クライアント証明書のエレメント番号を示す。前世代証明書エレメント番号は、前世代クライアント証明書のエレメント番号を示す。
【０１４８】
期限は、クライアント公開鍵証明書の期限をYYYYMMDD:hhmmss（協定世界時（UTC））の形式で示す。クライアント公開鍵証明は、Ｘ５０９に準拠したクライアント公開鍵証明の実体（バイナリ）を示す。
【０１４９】
更新部５０は、現行世代クライアント公開鍵証明書６ｋの期限が切れていた場合、又は、サーバ１００から現行世代クライアント公開鍵証明書６ｋを拒絶された場合、次世代証明書エレメント番号が示すレコードのカレントフラグを「１」に設定した後、現行世代クライアント公開鍵証明書６ｋのレコードを削除する。また、更新部５０は、次世代クライアント公開鍵証明書６ｋ'を新しい現行世代クライアント公開鍵証明書として使用する。
【０１５０】
クライアント５の要求（データ３３ｄ）に対して次世代クライアント公開鍵証明書６ｋ'が送信されると、更新部５０は、公開鍵に次世代クライアント公開鍵６ａ'を格納し、秘密鍵に次世代クライアント秘密鍵６ｂ'を格納する。
【０１５１】
また、更新部５０は、前世代証明書エレメント番号には、現行世代クライアント公開鍵証明書６ｋのレコードのエレメント番号を設定する。その後、更新部５０は、現行世代クライアント公開鍵証明書６ｋのレコードの次世代証明書エレメント番号に追加登録したレコードのエレメント番号を設定する。このようにして、現行世代クライアント公開鍵証明書６ｋと、次世代クライアント公開鍵証明書６ｋ'との関連付けが行われる。
【０１５２】
更新部５０は、クライアント５から現行世代クライアント公開鍵証明書６ｋを指定してサーバ１００にデータ３３ｄを送信する時に、現行世代クライアント公開鍵証明書６ｋのレコードの次世代証明書エレメント番号に値が存在するか否かを確認する。
【０１５３】
更新部５０は、次世代証明書エレメント番号に値が存在しない場合、次世代クライアント鍵ペア６ｐ'を生成して、次世代クライアント公開鍵６ａ'を一時共通鍵３ｍで暗号化してメッセージ１ｍに設定し、サーバ１００へ送信する。
【０１５４】
クライアント５の証明書管理情報テーブル６０の初期状態では、サーバ１００から２つ以上のクライアント公開鍵証明書を発行してもらい、これら証明書を現行世代クライアント公開鍵証明書６ｋと次世代クライアント公開鍵証明書６ｋ'として関連付けて、登録することが望ましい。サーバ１００から最初の次世代クライアント公開鍵証明書６ｋ'が返信されてくる前に、現行世代クライアント公開鍵証明書６ｋの期限が切れてしまう事態に対処可能とするためである。
【０１５５】
図１１は、サーバの第２の機能構成例を示す図である。図１１に示すサーバ１００の第２の機能構成例は、図９のクライアント５の第２の機能構成例に対応する構成を示している。
【０１５６】
図１１において、サーバ１００は、正当性確認部８１と、電子署名チェック部８２と、一時鍵ペア生成部８３と、公開鍵暗号化部８４と、一時共通鍵生成部８５と、復号部８６と、更新証明書暗号化部８７と、検索部９１と、証明書管理部９２とを有する。
【０１５７】
正当性確認部８１と、電子署名チェック部８２と、一時鍵ペア生成部８３と、公開鍵暗号化部８４と、一時共通鍵生成部８５と、復号部８６と、更新証明書暗号化部８７と、検索部９１と、証明書管理部９２とは、ＣＰＵ１１ａが対応するプログラムを実行することによって行われる処理に相当する。
【０１５８】
また、サーバ１００では、記憶部１３０ａは、一時サーバ鍵ペア２ｐ、一時クライアント公開鍵４ａ、次世代クライアント公開鍵６ａ'、次世代クライアント公開鍵証明書６ｋ'、サーバ鍵ペア７ｐ、データ３１ｄ〜３４ｄ等を記憶する。
【０１５９】
検索部９１と証明書管理部９２とが、図７の管理部９０に相当する。また、正当性確認部８１と、検索部９１と、電子署名チェック部８２と、一時鍵ペア生成部８３、公開鍵暗号化部８４とによる処理が、図１に示す共有処理２１ｐに相当する。更に、電子署名チェック部８２と、一時共通鍵生成部８５と、復号部８６と、証明書管理部９２とによる処理が、更新処理２２ｐに相当する。
【０１６０】
ステップ（Ｉ）において、クライアント５からデータ３１ｄを受信すると、正当性確認部８１は、受信したデータ３１ｄの現行世代クライアント公開鍵証明書６ｋの正当性を確認する。
【０１６１】
電子署名チェック部８２は、データ３１ｄの電子署名６ｅをチェックし、データ３１ｄが改竄されていない正しいデータであるか否かをチェックする。また、電子署名チェック部８２は、データ３３ｄに対しても同様の電子署名チェックを行う。
【０１６２】
ステップ（ＩＩ）において、一時鍵ペア生成部８３は、一時共通鍵３ｍを生成するための一時サーバ鍵ペア２ｐを生成する。一時サーバ鍵ペア２ｐとなる一時サーバ公開鍵２ａ及び一時サーバ秘密鍵２ｂが記憶部１３０ａに格納される。
【０１６３】
公開鍵暗号化部８４は、一時共通鍵３ｍをクライアント５で作成するための一時サーバ公開鍵２ａをＰＫＩで暗号化して、データ３２ｄを作成する。公開鍵暗号化部８４は、サーバ秘密鍵７ｂを用いて電子署名７ｅを作成する。データ３２ｄは、サーバ公開鍵７ａを示すサーバ公開鍵証明書７ｋと、一時サーバ公開鍵２ａと、サーバ秘密鍵７ｂによる電子署名７ｅとを有する。一時サーバ公開鍵２ａはメッセージ１ｍに含まれる。データ３２ｄは、クライアント５へ送信される。
【０１６４】
ステップ（ＩＩＩ）において、クライアント５からデータ３３ｄを受信すると、一時共通鍵生成部８５は、データ３３ｄから取得した一時クライアント公開鍵４ａと、一時鍵ペア生成部８３によって生成された一時サーバ秘密鍵２ｂとを用いて、一時共通鍵３ｍを生成する。
【０１６５】
復号部８６は、データ３３ｄのメッセージ１ｍに含まれる次世代クライアント公開鍵６ａ'を復号して、証明書管理部９２へ通知する。
【０１６６】
証明書管理部９２は、クライアント５の現行世代クライアント公開鍵証明書６ｋが登録済みであることを確認し、クライアント５からの次世代クライアント公開鍵証明書６ｋ'の要求が不当要求と判断される不当要求回数制限値以内であることを確認する。また、証明書管理部９２は、データ３３ｄのメッセージ１ｍ内に次世代クライアント公開鍵証明書６ｋ'が含まれていない場合に、現行世代クライアント公開鍵証明書６ｋに対応付けて次世代クライアント公開鍵証明書６ｋ'が登録されていることを確認する。
【０１６７】
証明書管理部９２は、上記事項の確認ができなかった場合、エラー検出部９９にエラー終了通知をクライアント５に行わせる。
【０１６８】
ステップ（ＩＶ）において、証明書管理部９２は、上記事項の確認ができた場合、次世代クライアント公開鍵証明書６ｋ'を発行する。更新証明書暗号化部８７は、証明書管理部９２によって発行された次世代クライアント公開鍵証明書６ｋ'に電子署名を付加する。次世代クライアント公開鍵証明書６ｋ'に付加する電子署名は、利用や複製を制御・制限するＤＲＭにより行う。電子署名付き次世代クライアント公開鍵証明書６ｋ'は、秘密データ３４ｓと共にメッセージ１ｍに含められ、更に、ＰＫＩ暗号化されることにより、データ３４ｄが作成される。
【０１６９】
データ３４ｄは、サーバ公開鍵証明書７ｋと秘密データ３４ｓとを含むメッセージ１ｍと、次世代クライアント公開鍵証明書６ｋ'と、サーバ秘密鍵７ｂによる電子署名７ｅとを含む。データ３４ｄは、クライアント５に送信される。
【０１７０】
エラー検出部９９による処理は、図７の第２の機能構成における処理と同様であるので、その説明を省略する。
【０１７１】
サーバ１００は、現世代クライアント公開鍵証明書６ｋ、次世代クライアント公開鍵証明書６ｋ'等を管理するために、図１２に示すような証明書管理情報テーブル８０を有する。図１２は、サーバにおける証明書管理情報テーブルのデータ構成例を示す図である。
【０１７２】
図１２において、サーバ１００で保持される証明書管理情報テーブル８０は、記憶部１３０ａに保持され、各クライアント５に対して用意されるテーブルであり、エレメント番号、証明書ＩＤ、現行世代証明書フラグ、受信回数、返信完了前送信回数、公開鍵、秘密鍵、次世代証明書エレメント番号、前世代証明書エレメント番号、期限、クライアント公開鍵証明書等の項目を有する。
【０１７３】
エレメント番号は、現世代クライアント公開鍵証明書６ｋに対して付与される管理用の番号である。エレメント番号は、レコードを特定するレコード番号であっても良い。
【０１７４】
証明書ＩＤは、クライアント公開鍵証明書の識別情報であり、証明書発行元ＩＤと、証明書シリアル番号とを示す。
【０１７５】
現行世代証明書フラグは、証明書ＩＤが現行世代クライアント公開鍵証明書６ｋであるか否かを示すフラグである。現行世代クライアント公開鍵証明書６ｋの場合、カレントフラグは「１」を示す。一方、クライアント公開鍵証明書が未使用世代である場合、カレントフラグは「０」を示す。また、カレントフラグの初期値は、「０」である。
【０１７６】
受信回数は、クライアント５から次世代クライアント公開鍵証明書を指定した要求の総受信回数を示す。返信完了前送信回数は、サーバ１００がデータ３４ｄをクライアント５への返信後の状態において、クライアント５から次世代クライアント公開鍵証明書６ｋ'の発行申請を受信した回数を示す。
【０１７７】
公開鍵は、公開鍵の値（バイナリ）を示し、暗号化された状態で格納される。秘密鍵は、秘密鍵の値（バイナリ）を示し、暗号化された状態で格納される。
【０１７８】
次世代証明書エレメント番号は、次世代クライアント証明書のエレメント番号を示す。前世代証明書エレメント番号は、前世代クライアント証明書のエレメント番号を示す。
【０１７９】
期限は、クライアント公開鍵証明書の期限をYYYYMMDD:hhmmss（協定世界時（UTC））の形式で示す。クライアント公開鍵証明は、Ｘ５０９に準拠したクライアント公開鍵証明の実体（バイナリ）を示す。
【０１８０】
証明書管理部９２は、クライアント５から送られてきた現行世代クライアント公開鍵証明書６ｋが未登録であり、新規に登録する場合、新たにレコードを作成し、証明書管理情報テーブル８０に登録する。登録時に、証明書管理部９２は、現行世代証明書フラグに「１」を設定する。
【０１８１】
証明書管理部９２は、クライアント５からの要求で指定された現行世代クライアント公開鍵証明書６ｋについて、この現行世代クライアント公開鍵証明書６ｋが指定された要求を受信した回数を、現行世代クライアント公開鍵証明書６ｋのレコードの受信回数に設定する。つまり、クライアント５からの要求を受信する毎に、指定されてきた現行世代クライアント公開鍵証明書６ｋのレコードの受信回数の値をインクリメントする。
【０１８２】
受信回数の値は、現行世代クライアント公開鍵証明書６ｋの使用回数がある規定範囲内の間に次世代クライアント公開鍵証明書をクライアント５に送信しなければならないときに参照される。
【０１８３】
クライアント５からの要求に次世代クライアント公開鍵証明書６ｋ'が指定されている場合、証明書管理部９２は、次世代クライアント公開鍵証明書６ｋ'を発行する。指定さてきた現行世代クライアント公開鍵証明書６ｋ'の使用回数が規定回数を超えていた場合、サーバ１００の証明書管理部９２は、クライアント５との通信は安全ではないと判断して、次世代クライアント公開鍵証明書６ｋ'の発行を抑止する。
【０１８４】
よって、規定回数以内に、次世代クライアント公開鍵証明書６ｋ'がクライアントに返信されて登録されなければ、現行世代クライアント公開鍵証明書６ｋの期限までしかクライアント５からはサーバ１００に要求を行えないことになる。
【０１８５】
クライアント５からのある特定の現行世代クライアント公開鍵証明書６ｋを指定したメッセージ１ｍについて、次世代クライアント公開鍵６ａ'が指定されたメッセージがある規定回数を超えて受信された場合、サーバ１００側では再送攻撃メッセージの可能性があると判断して、エラー検出部９９に通知する。
【０１８６】
具体的には、証明書管理部９２は、クライアント５から次世代クライアント公開鍵６ａ'が指定された要求メッセージを受信する毎に、現行世代クライアント公開鍵証明書６ｋのレコードの返信完了前送信回数をインクリメントする。そして、証明書管理部９２は、返信完了前送信回数が規定回数を超えたら、エラー検出部９９に通知する。
【０１８７】
次世代クライアント公開鍵証明書６ｋ'の生成時に、証明書管理部９２は、現行世代クライアント公開鍵証明書６ｋのレコードでは、次世代証明書エレメント番号にこの生成した次世代クライアント公開鍵証明書６ｋ'のレコードのエレメント番号を設定する。
【０１８８】
また、証明書管理部９２は、次世代クライアント公開鍵証明書６ｋ'のレコードでは、前世代証明書エレメント番号に現行世代クライアント公開鍵証明書６ｋのレコードのエレメント番号を設定する。
【０１８９】
証明書管理部９２は、下記の第１の条件が成立する場合、
・クライアント５から送信された現行世代クライアント公開鍵証明書６ｋのレコードが既に登録されていて、
・そのレコードの現行世代証明書フラグには未使用世代を示す値「０」が設定されていて、かつ、
・そのレコードの前世代証明書エレメント番号でポイントされているレコードの現行世代証明書フラグには現行世代クライアント公開鍵証明書６ｋを示す値「１」が設定されている場合、
このレコードのクライアント公開鍵証明書（証明書ＩＤ）を失効リスト２ｆに登録して、証明書管理情報テーブル８０からこのレコードを削除する。
【０１９０】
また、証明書管理部９２は、クライアント５から送信された現行世代クライアント公開鍵証明書６ｋのレコードについては、現行世代証明書フラグに現行世代クライアント公開鍵証明書６ｋを示す値「１」を設定する。よって、次世代クライアント公開鍵証明書６ｋ'が、現行世代クライアント公開鍵証明書６ｋに切り替えられる。
【０１９１】
また、証明書管理部９２は、下記の第２の条件が成立する場合においても、クライアント公開鍵証明書（証明書ＩＤ）を失効させる。
・クライアント５から送信された現行世代クライアント公開鍵証明書６ｋのレコードが既に登録されていて、
・そのレコードの現行世代証明書フラグには、現行世代クライアント公開鍵証明書６ｋを示す値「１」が設定されていない、かつ
・そのレコードの次世代証明書エレメント番号でポイントされているレコードの現行先行証明書フラグには、現行世代クライアント公開鍵証明書６ｋを示す値「１」が設定されている場合、
クライアント５から送信されてきた現行世代クライアント公開鍵証明書６ｋ（証明書ＩＤ）を失効リスト２ｆに登録して、証明書管理情報テーブル８０から、このレコードを削除する。
【０１９２】
上記第２の条件が成立することは、通常は発生しないが、次世代クライアント公開鍵証明書６ｋ'を現行世代クライアント公開鍵証明書６ｋに切り替える場合に、その処理が何らかの原因で中断されたことにより、旧現行世代クライアント公開鍵証明書のレコードが残っていた場合に発生する。
【０１９３】
次に、クライアント５とサーバ１００との間で一時共通鍵３ｍを共有する共有処理（図１）に係るステップ（Ｉ）及び（ＩＩ）について、図１３〜図１６で詳細に説明する。
図１３は、ステップ（Ｉ）におけるクライアントでの処理を説明するためのフローチャート図である。図１３において、クライアント５の更新部５０は、証明書管理情報テーブル６０を参照して、現行世代クライアント公開鍵証明書６ｋを検索する（ステップＳ５０１）。
【０１９４】
現行世代クライアント公開鍵証明書（CC_CRT）６ｋが存在しない場合、更新部５０は、エラー終了する。一方、存在する場合、更新部５０は、現行世代クライアント公開鍵証明書６ｋが期限切れか否かを判断する（ステップＳ５０２）。期限内の場合、更新部５０での処理を終了し、共有処理は、ステップＳ５０５へと進む。
【０１９５】
一方、現行世代クライアント公開鍵証明書６ｋが期限切れの場合、更新部５０は、証明書管理情報テーブル６０を参照して、次世代クライアント公開鍵証明書６ｋ'が存在するか否かを判断する（ステップＳ５０３）。存在しない場合、更新部５０は、エラー終了する。一方、存在する場合、更新部５０は、現行世代クライアント公開鍵証明書６ｋを次世代クライアント公開鍵証明書６ｋ'に更新すると判断する（ステップＳ５０４）。
【０１９６】
電子署名付与部５５は、ステップＳ５０１で検索した現行世代クライアント公開鍵証明書６ｋに対応する現行世代クライアント秘密鍵６ｂで電子署名を生成して、送信するデータ３１ｄに設定する（ステップＳ５０５）。
【０１９７】
電子署名付与部５５は、ステップＳ５０１で検索した現行世代クライアント公開鍵証明書６ｋを送信するデータ３１ｄに設定して（ステップＳ５０６）、サーバ１００に送信する（ステップＳ５０７）。データ３１ｄは、一時共通鍵３ｍを共有するための一時サーバ公開鍵２ａの要求データに相当する。
【０１９８】
図１４及び図１５は、ステップ（Ｉ）及び（ＩＩ）におけるサーバでの処理を説明するためのフローチャート図である。図１４において、サーバ１００は、クライアント５から一時サーバ公開鍵２ａを要求するデータ３１ｄを受信する（ステップＳ１０１）。
【０１９９】
正当性確認部８１は、ルート公開鍵証明書９ｂを用いて、データ３１ｄの現行世代クライアント公開鍵証明書６ｋが正当な公開鍵証明書であるか否かをチェックする（ステップＳ１０２）。チェック結果がエラーの場合、図１５のステップＳ１１０へと進む。
【０２００】
一方、チェック結果が正常の場合、正当性確認部８１は、更に、失効リスト２ｆを参照して、現行世代クライアント公開鍵証明書６ｋが失効状態でないかをチェックする（ステップＳ１０３）。失効リスト２ｆに現行世代クライアント公開鍵証明書６ｋが存在した場合、正当性確認部８１は、現行世代クライアント公開鍵証明書６ｋは失効していると判断し、エラー検出部９９に、エラーを通知する。この場合、サーバ１００は、図１５のステップＳ１１０へと進む。
【０２０１】
一方、失効リスト２ｆに現行世代クライアント公開鍵証明書６ｋが存在しない場合、正当性確認部８１は、現行世代クライアント公開鍵証明書６ｋは失効していないと判断する。この場合、電子署名チェック部８２が、現行世代クライアント公開鍵証明書６ｋの期限、及び電子署名６ｅをチェックする（ステップＳ１０４）。期限切れである場合、又は、電子署名６ｅのチェックが正常に終了しない場合、電子署名チェック部８２は、エラー検出部９９にエラーを通知する。この場合、サーバ１００は、図１５のステップＳ１１０へと進む。
【０２０２】
一方、電子署名チェック部８２によるチェックが正常に終了した場合、検索部９１は、現行世代クライアント公開鍵証明書６ｋを証明書管理情報テーブル８０から検索する（ステップＳ１０５）。現行世代クライアント公開鍵証明書６ｋが証明書管理情報テーブル８０に登録済みである場合、検索部９１は、ステップＳ１０７へと進む。
【０２０３】
現行世代クライアント公開鍵証明書６ｋが証明書管理情報テーブル８０に未登録の場合、検索部９１は、現行世代クライアント公開鍵証明書６ｋを証明書管理情報テーブル８０に登録し（ステップＳ１０６）、ステップＳ１０７へと進む。検索部９１は、証明書管理情報テーブル８０から、受信した現行世代クライアント公開鍵証明書６ｋが次世代クライアント公開鍵証明書６ｋ'となっているレコード検索する（ステップＳ１０７）。レコードが存在しない場合、検索部９１での処理は終了し、サーバ１００は、図１５のステップＳ１０９へと進む。
【０２０４】
一方、レコードが存在する場合、検索部９１は、ステップＳ１０５で検索した現行世代クライアント公開鍵証明書６ｋを失効リスト２ｆに登録し、ステップＳ１０７で検索されたレコードを削除する（ステップＳ１０８）。
【０２０５】
図１５にて、一時鍵ペア生成部８３は、一時サーバ鍵ペア２ｐを生成して、一時サーバ公開鍵をメッセージ１ｍに対して設定する（ステップＳ１０９）。また、公開鍵暗号化部８４は、メッセージ１ｍに対してサーバ秘密鍵７ｂによる電子署名７ｅと、サーバ公開鍵７ａを示すサーバ公開鍵証明書７ｋとを付加して、ＰＫＩ暗号化したデータ３２ｄを作成する（ステップＳ１１１）。
【０２０６】
そして、データ３２ｄがクライアントに送信する（ステップＳ１１２）。データ３２ｄは、クライアント５からの要求に相当するデータ３１ｄに対する返信データとして、サーバ１００からクライアント５へと送信される。
【０２０７】
図１４のステップＳ１０２、Ｓ１０３、又はＳ１０４にてエラーが通知された場合について説明する。図１５にて、エラーが通知されたエラー検出部９９は、エラーの内容を示すエラー情報をメッセージ１ｍに設定する（ステップＳ１１０）。ステップＳ１０２でのエラーでは、現行世代クライアント公開鍵証明書６ｋの正当性を確認できなかったことがエラー情報によって示される。ステップＳ１０３でのエラーでは、現行世代クライアント公開鍵証明書６ｋの失効がエラー情報によって示される。ステップＳ１０４でのエラーでは、期限切れ又は電子署名６ｅの正当性が確認できなかったことがエラー情報によって示される。
【０２０８】
エラー検出部９９は、公開鍵暗号化部８４によって、エラー情報が設定されたメッセージ１ｍに対してサーバ秘密鍵７ｂによる電子署名７ｅと、サーバ公開鍵７ａを示すサーバ公開鍵証明書７ｋとを付加して、ＰＫＩ暗号化したデータを作成する（ステップＳ１１１）。そして、エラー検出部９９は、エラー情報を含むデータをクライアント５へと送信する（Ｓ１１２）。
【０２０９】
クライアント５は、このようなエラー情報を含むデータを受信すると、エラー終了通知部５９が、更新部５０へエラー終了を通知する。更新部５０はエラー情報によりエラーの原因を知ることができる。
【０２１０】
クライアント５では、データ３１ｄをサーバ１００から受信すると、図１６及び図１７に示すような処理を行う。
【０２１１】
図１６及び図１７は、ステップ（ＩＩ）及び（ＩＩＩ）におけるクライアントでの処理を説明するためのフローチャート図である。図１６において、クライアント５は、サーバ１００からデータ３２ｄを受信する（ステップＳ５２１）。
【０２１２】
サーバ正当性判断部５１は、サーバ１００から受信したデータ３２ｄのサーバ公開鍵証明書７ｋ及び電子署名７ｅをチェックする（ステップＳ５２２）。チェック結果がエラーを示す場合、サーバ正当性判断部５１は、エラー終了とする。
【０２１３】
一方、チェック結果が正常を示す場合、更新部５０は、証明書管理情報テーブル６０において、現行世代クライアント公開鍵証明書６ｋに対して次世代クライアント公開鍵証明書６ｋ'が登録されているか否かを判断する（ステップＳ５２３）。次世代クライアント公開鍵証明書６ｋ'が登録済みの場合、更新部５０は、図１７のステップＳ５２６へと進む。
【０２１４】
一方、次世代クライアント公開鍵証明書６ｋ'が未登録の場合、更新部５０は、次世代クライアント鍵ペア６ｐ'を生成する（ステップＳ５２４）。そして、更新部５０は、ステップＳ５２４で生成した次世代クライアント鍵ペア６ｐ'に現行世代クライアント秘密鍵６ｂで作成した電子署名６ｅを付加する（ステップＳ５２５）。
【０２１５】
図１７において、一時鍵ペア生成部５２は、一時クライアント鍵ペア４ｐを生成する（ステップＳ５２６）。そして、一時共通鍵生成部５３は、一時クライアント秘密鍵４ｂと、サーバ１００から受信したデータ３２ｄの一時サーバ公開鍵２ａとから一時共通鍵３ｍを生成する（ステップＳ５２７）。
【０２１６】
そして、暗号化部５４は、秘密データ３３ｓと、ステップＳ２５４の電子署名付きの次世代クライアント公開鍵６ａ'からメッセージ１ｍを作成し、ステップＳ２５７で生成した一時共通鍵３ｍで暗号化する（ステップＳ５２８）。暗号化部５４は、メッセージ１ｍにステップＳ２５６で生成した一時クライアント公開鍵４ａを設定する（ステップＳ５２９）。
【０２１７】
次に、電子署名付与部５５は、メッセージ１ｍに対して現行世代クライアント秘密鍵６ｂで作成した電子署名６ｅと現行世代クライアント公開鍵証明書６ｋを付加して、データ３３ｄが作成される（ステップＳ５３０）。そして、データ３３ｄが、クライアント５からサーバ１００に送信される（ステップＳ５３１）。データ３３ｄは、次世代クライアント公開鍵証明書６ｋ'を取得するための要求データに相当する。
【０２１８】
図１８、図１９、及び図２０は、ステップ（ＩＩＩ）及び（ＩＶ）におけるサーバでの処理を説明するためのフローチャート図である。図１８において、サーバ１００は、クライアント５からデータ３３ｄを受信すると、正当性確認部８１により現行世代クライアント公開鍵証明書６ｋの正当性を確認した後、復号部８６は、受信したデータ３３ｄの電子署名６ｅを現行世代クライアント公開鍵証明書６ｋにより検証する（ステップＳ１２１）。検証結果がエラーを示す場合、復号部８６は、エラーメッセージを生成する（ステップＳ１２２）。サーバ１００は、図２０のステップＳ１３７へと進む。
【０２１９】
一方、検証結果が正常を示す場合、一時共通鍵生成部８５は、データ３３ｄから取得した一時クライアント公開鍵４ａと、一時サーバ秘密鍵２ｂとから一時共通鍵３ｍを生成する（ステップＳ１２３）。
【０２２０】
復号部８６は、データ３３ｄのメッセージ１ｍ内の暗号化データを一時共通鍵３ｍで復号して、次世代クライアント公開鍵６ａ'を取得する（ステップＳ１２４）。
【０２２１】
図１９において、証明書管理部９２は、証明書管理情報テーブル８０から、データ３３ｄ内のメッセージ内の現行世代クライアント公開鍵証明書６ｋを示すレコードを検索する（ステップＳ１２５）。証明書ＩＤがメッセージ１ｍ内の現行世代クライアント公開鍵証明書６ｋと一致するレコードが検索される。証明書管理部９２は、検索したレコードの受信回数をインクリメントする（ステップＳ１２６）。
【０２２２】
そして、証明書管理部９２は、メッセージ１ｍ内に次世代クライアント公開鍵６ａ'が指定されているか否かを確認する（ステップＳ１２７）。次世代クライアント公開鍵６ａ'が指定されていない場合、証明書管理部９２は、ステップＳ１２５で検索したレコードに次世代クライアント公開鍵証明書６ｋ'が登録済みか否かを判断する（ステップＳ１２８）。
【０２２３】
次世代クライアント公開鍵証明書６ｋ'が未登録の場合、証明書管理部９２は、エラーメッセージを生成する（ステップＳ１２９）。サーバ１００は、図２０のステップＳ１３６へと進む。この場合、エラーメッセージがメッセージ１ｍに相当する。一方、次世代クライアント公開鍵証明書６ｋ'が登録済みの場合、サーバ１００は図２０のステップＳ１３５へと進む。
【０２２４】
ステップＳ１２７において、メッセージ１ｍ内に次世代クライアント公開鍵６ａ'が指定されてる場合、証明書管理部９２は、ステップＳ１２５で検索したレコードの受信回数が規定値を超えているか否かを判断する（ステップＳ１３０）。受信回数が規定値を超えている場合、サーバ１００は図２０のステップＳ１３５へと進む。
【０２２５】
一方、受信回数が規定値を超えていない場合、証明書管理部９２は、ステップＳ１２５で検索したレコードの返信完了前送信数をインクリメントし、規定値を超えているか否かを確認する（ステップＳ１３１）。返信完了前送信回数が規定値を超えている場合、即ち、返信完了前送信回数が許容範囲外を示す場合、証明書管理部９２は、エラーメッセージを生成する（ステップＳ１３２）。サーバ１００は、図２０のステップＳ１３６へと進む。この場合、エラーメッセージがメッセージ１ｍに相当する。
【０２２６】
一方、返信完了前送信回数が規定値以下である場合、即ち、返信完了前送信回数が許容範囲内を示す場合、証明書管理部９２は、次世代クライアント公開鍵６ａ'に対して次世代クライアント公開鍵証明書６ｋ'を生成し、証明書管理情報テーブル８０に登録する（ステップＳ１３３）。
【０２２７】
そして、証明書管理部９２は、ステップＳ１３３で生成した次世代クライアント公開鍵証明書６ｋ'にサーバ秘密鍵７ｂによる電子署名７ｅを付加して、メッセージ１ｍに設定する（ステップＳ１３４）。サーバ１００は、図２０のステップＳ１３５へと進む。
【０２２８】
図２０にて、証明書管理部９２において、ステップＳ１２８でＹＥＳ、ステップＳ１３０でＹＥＳ、又は、ステップＳ１３４に続いて、サーバ１００は、サービス固有の処理を実行する（ステップＳ１３５）。サービス固有の処理の結果が秘密データ３４ｓに相当する。秘密データ３４ｓがメッセージ１ｍに設定される。
【０２２９】
更新証明書暗号化部８７は、ステップＳ１２９、ステップＳ１３２、又は、ステップＳ１３５によって得られたメッセージ１ｍを、一時共通鍵３ｍにより暗号化する（ステップＳ１３６）。
【０２３０】
更に、更新証明書暗号化部８７は、暗号化したメッセージ１ｍに、サーバ秘密鍵７ｂで生成した電子署名７ｅと、サーバ公開鍵証明書７ｋとを付加してデータ３４ｄを作成する（ステップＳ１３７）。更新証明書暗号化部８７は、作成したデータ３４ｄをクライアント５へ送信する。エラーメッセージがクライアント５へ送信される場合には、データ３４ｄのメッセージ１ｍには、次世代クライアント公開鍵証明書６ｋ'は含まれない。
【０２３１】
図２１は、ステップ（ＩＶ）におけるクライアントでの処理を説明するためのフローチャート図である。図２１において、クライアント５は、サーバ１００から、ステップＳ５３１（図１７）の要求に対して返信されたデータ３４ｄを受信する（ステップＳ５４１）。
【０２３２】
電子署名チェック部５６は、データ３４ｄの電子署名７ｅをチェックする（ステップＳ５４２）。復号部５７は、データ３４ｄのメッセー１ｍを一時共通鍵３ｍにより復号する（ステップＳ５４３）。
【０２３３】
次に、更新部５０は、データ３４ｄのメッセージ１ｍに次世代クライアント公開鍵証明書６ｋ'が有るか否かを確認する（ステップＳ５４４）。次世代クライアント公開鍵証明書６ｋ'がない場合、クライアント５は、アプリケーション固有の処理を実行する（ステップＳ５４７）。
【０２３４】
次に、長期間にわたり同一のクライアント公開鍵証明書６ｋを利用し続ける関連技術と、クライアント公開鍵証明書６ｋを短い期間でセキュアに更新可能な本実施例との比較を説明する。
【０２３５】
図２２（Ａ）は、関連技術の場合を示し、図２２（Ｂ）は、本実施例の場合を示す図である。図２２（Ａ）及び図２２（Ｂ）において、右方向は、時間の経過の長さを表している。
【０２３６】
図２２（Ａ）では、関連技術におけるクライアント公開鍵証明書１ｋを凡そ１０年という長期にわたり利用した場合のリスクを示している。図２２（Ａ）において、時刻Ｔ０で、クライアント公開鍵証明書１ｋを利用開始する。
【０２３７】
時刻Ｔ１から、第三者により、クライアント公開鍵証明書１ｋのクライアント秘密鍵１ｂの推定が開始される。第三者は、複数回にわたり通信を傍受し、長期間の推定により、時刻Ｔ２５で、クライアント秘密鍵１ｂの推定に成功する。結果、第三者は、クライアント公開鍵証明書１ｋ及びクライアント公開鍵１ａを推定できる。
【０２３８】
第三者は、推定に成功したクライアント公開鍵証明書１ｋを用いて、クライアント５になりすまして、クライアント５の秘密データ３４ｓを不正利用することができる。
【０２３９】
クライアント５のユーザ、及び、サーバ１００の管理者は、なりすましを検出することが困難であるため、クライアント公開鍵証明書１ｋが、利用開始から５年、１０年等の後に期限切れになるまで、第三者は、クライアント５の秘密データ３４ｓを不正に利用し続けることができる。
【０２４０】
図２２（Ｂ）では、現行世代クライアント公開鍵証明書６ｋの推定が成功する可能性のある期間より十分に短い期間で、現行世代クライアント公開鍵証明書６ｋを更新する本実施例を適用した場合のリスクを示している。図２２（Ｂ）では、第１世代から第４世代までの更新例を示している。
【０２４１】
図２２（Ｂ）において、クライアント５は、時刻Ｔ０で、第１世代クライアント公開鍵証明書６１ｋの利用をクライアント秘密鍵６１ｂを用いて開始する。時刻Ｔ２から、第三者は、クライアント秘密鍵６１ｂの傍受及び推定を開始する。
【０２４２】
第１世代クライアント公開鍵証明書６１ｋの利用開始時（時刻Ｔ０）のクライアント５からの要求に応じて、サーバ１００から、更新用の第２世代クライアント公開鍵証明書６２ｋが一時共通鍵３１ｍを用いた暗号化により転送される。時刻Ｔ３から、第三者は、一時共通鍵３１ｍの傍受及び推定を行う。
【０２４３】
第三者が推定可能な時刻Ｔ２５より前の時刻Ｔ２０で、クライアント５は、予め取得しておいた第２世代クライアント公開鍵証明書６２ｋに切り替える。従って、第三者は、第１世代クライアント秘密鍵６１ｂの推定に失敗する。
【０２４４】
時刻Ｔ２０で、クライアント５は、第１世代クライアント公開鍵証明書６１ｋから第２世代クライアント公開鍵証明書６２ｋへと更新し、第２世代クライアント公開鍵証明書６２ｋの利用を開始することで、第三者は、一時共通鍵３１ｍの推定を断念する。
【０２４５】
第２世代クライアント公開鍵証明書６２ｋの利用開始時（時刻Ｔ２０）のクライアント５からの要求に応じて、サーバ１００から、更新用の第３世代クライアント公開鍵証明書６３ｋが一時共通鍵３２ｍを用いた暗号化により転送される。時刻Ｔ２３から、第三者は、一時共通鍵３２ｍの傍受及び推定を行う。
【０２４６】
時刻Ｔ３０で、クライアント５は、予め取得しておいた第３世代クライアント公開鍵証明書６３ｋに切り替える。従って、第三者は、第２世代クライアント秘密鍵６２ｂの推定に失敗する。
【０２４７】
時刻Ｔ３０で、クライアント５は、第２世代クライアント公開鍵証明書６２ｋから第３世代クライアント公開鍵証明書６３ｋへと更新し、第３世代クライアント公開鍵証明書６３ｋの利用を開始することで、第三者は、一時共通鍵３２ｍの推定を断念する。
【０２４８】
第３世代クライアント公開鍵証明書６３ｋの利用開始時（時刻Ｔ３０）のクライアント５からの要求に応じて、サーバ１００から、更新用の第４世代クライアント公開鍵証明書６４ｋが一時共通鍵３３ｍを用いた暗号化により転送される。第三者は、一時共通鍵３３ｍの傍受及び推定を行う。
【０２４９】
時刻Ｔ４０で、クライアント５は、予め取得しておいた第４世代クライアント公開鍵証明書６４ｋに切り替える。従って、第三者は、第３世代クライアント秘密鍵６３ｂの推定に失敗する。
【０２５０】
時刻Ｔ４０で、クライアント５は、第３世代クライアント公開鍵証明書６３ｋから第４世代クライアント公開鍵証明書６４ｋへと更新し、第４世代クライアント公開鍵証明書６４ｋの利用を開始することで、第三者は、一時共通鍵３３ｍの推定を断念する。
【０２５１】
このように、第三者による暗号解読が成功する前に、一時共通鍵によりクライアント公開鍵証明書を更新することで、セキュアな通信を実現できる。
【０２５２】
また、本実施例では、クライアント公開鍵証明書の更新に専用の暗号鍵及び復号鍵を、サーバ１００によるサービス提供可能な期間において保持し続けることがない。したがって、クライアント５のなりすましによる不正な行為を防御することができる。
【０２５３】
更に、クライアント５及びサーバ１００における夫々の、一時鍵ペア４ｐ及び２ｐの生成、及び、一時共通鍵３ｍの生成は、ユーザの手間を不要とするため、更新毎にユーザに負担を掛けることがない。
【０２５４】
本実施例では、クライアント５とサーバ１００との間の相互認証のための次世代クライアント公開鍵証明書６ｋ'をサーバ１００側で更新できる。従って、クライアント５自体、或いは、一部を置き換えることがない。
【０２５５】
また、クライアント５内で、次世代クライアント鍵ペア６ｐ'が生成されるため、クライアント５に対して、相互認証のための次世代クライアント公開鍵証明書６ｋ'と次世代クライアント秘密鍵６ｂ'とをリモートで更新する等の処理を行うことがない。次世代クライアント秘密鍵６ｂ'が傍受されるリスクを低減することができる。
【０２５６】
したがって、現行世代クライアント公開鍵証明書６ｋに対する長期の攻撃をほぼ無意味とし、第三者によるクライアント５になりすます不正な行為を防ぐことができる。
【０２５７】
本実施例では、サーバ１００が、次世代クライアント公開鍵証明書６ｋ'を発行するため、次世代クライアント公開鍵証明書６ｋ'の期限を従来よりは短くすることができる。従って、現行世代クライアント秘密鍵６ｂが推定されるリスクを大幅に低減することができる。
【０２５８】
第１に、現行世代クライアント公開鍵証明書６ｋに対する長期間にわたる推定に対抗するために、本実施例では、現行世代クライアント公開鍵証明書６ｋが使用されてからなるべく早い時期において、現行世代クライアント公開鍵証明書６ｋがクライアント５からサーバ１００に送信されたタイミングで、サーバ１００から次世代クライアント公開鍵証明書６ｋ'をセキュアにクライアント５に返信する。
【０２５９】
サーバ１００からクライアント５へ次世代クライアント公開鍵証明書６ｋ'を返信する時期は、サーバ１００側でパラメータとして指定可能とする。パラメータにより、所定月数後の日時が指定されれば良い。
【０２６０】
現行世代クライアント公開鍵証明書６ｋの期限が来たら、クライアント５は、現行世代クライアント公開鍵証明書６ｋから次世代クライアント公開鍵証明書６ｋ'へと切り替えて、最初に次世代クライアント公開鍵証明書６ｋ'を使用したタイミングからなるべく早い時期に，サーバ１００から次々世代クライアント公開鍵証明書６ｋ'をセキュアにクライアント５に返信する。従って、現行世代クライアント公開鍵６ａが第三者に推定される前に、次世代クライアント公開鍵６ａ'に切り替えることが可能となる。
【０２６１】
第２に、サーバ１００からの次世代クライアント公開鍵証明書６ｋ'の返信を阻害する行為に対して、サーバ１００からの返信が届いていない状態でのクライアント５からの返信完了前送信回数をカウントし、予め定めた規定値を超えた場合、その次世代クライアント公開鍵証明書６ｋ'を失効し、次世代クライアント公開鍵証明書６ｋ'を使った要求を拒絶するように制御する。従って、不正な解析に対抗することができる。
【０２６２】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２６３】
２ａ    一時サーバ公開鍵            ２ｂ    一時サーバ秘密鍵
２ｐ    一時サーバ鍵ペア
４ａ    一時クライアント公開鍵      ４ｂ    一時クライアント秘密鍵
４ｐ    一時クライアント鍵ペア
６ａ    現行世代クライアント公開鍵  ６ｂ    現行世代クライアント秘密鍵
６ｐ    現行世代クライアント鍵ペア  ６ｋ    次世代クライアント公開鍵証明書
６ａ'  次世代クライアント公開鍵    ６ｂ'  次世代クライアント秘密鍵
６ｐ'  次世代クライアント鍵ペア    ６ｋ'  次世代クライアント公開鍵証明書
７ａ    サーバ公開鍵                ７ｂ    サーバ秘密鍵
７ｐ    サーバ鍵ペア                ７ｋ    サーバ公開鍵証明書
１１ａ、１１ｂ  ＣＰＵ
１２ａ、１２ｂ  主記憶装置
１３ａ          補助記憶装置
１４ａ          入力装置
１５ａ          表示装置
１６ｂ          ユーザＩ／Ｆ
１７ａ、１７ｂ  通信Ｉ／Ｆ
１８ａ、１８ｂ  ドライブ装置
１９ａ、１９ｂ  記憶媒体
３１ｄ、３２ｄ、３３ｄ、３３ｄ−１、３３ｄ−２、３４ｄ      データ
３３ｓ、３４ｓ  秘密データ
５０            更新部              ５１            サーバ正当性判断部
５２            一時鍵ペア生成部    ５３            一時共通鍵生成部
５４            暗号化部            ５５            電子署名付与部
５６            電子署名チェック部  ５７            復号部
５９            エラー終了通知部
８１            正当性確認部        ８２            電子署名チェック部
８３            一時鍵ペア生成部    ８４            公開鍵暗号化部
８５            一時共通鍵生成部    ８６            復号部
８７            更新証明書暗号化部
９０            管理部
９１            検索部              ９２            証明書管理部
【図１】
0006573880.tif 000002
【図２】
0006573880.tif 000003
【図３】
0006573880.tif 000004
【図４】
0006573880.tif 000005
【図５】
0006573880.tif 000006
【図６】
0006573880.tif 000007
【図７】
0006573880.tif 000008
【図８】
0006573880.tif 000009
【図９】
0006573880.tif 000010
【図１０】
0006573880.tif 000011
【図１１】
0006573880.tif 000012
【図１２】
0006573880.tif 000013
【図１３】
0006573880.tif 000014
【図１４】
0006573880.tif 000015
【図１５】
0006573880.tif 000016
【図１６】
0006573880.tif 000017
【図１７】
0006573880.tif 000018
【図１８】
0006573880.tif 000019
【図１９】
0006573880.tif 000020
【図２０】
0006573880.tif 000021
【図２１】
0006573880.tif 000022
【図２２】
0006573880.tif 000023