(57)【特許請求の範囲】
【請求項１】
署名対象文書に電子署名を付与する署名サーバと、
前記署名サーバに、前記署名対象文書、および前記電子署名の付与に用いる秘密鍵を送信する署名者クライアントを備え、
前記署名者クライアントは、
前記署名サーバに前記署名対象文書を送信する際、タイムスタンプサーバを介して、識別子を含む第１のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバに前記秘密鍵を送信する際、前記タイムスタンプサーバを介して前記識別子を含む第２のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバは、
前記第１のタイムスタンプトークンと前記第２のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名システム。
【請求項２】
請求項１に記載の電子署名システムであって、
前記署名者クライアントは、前記署名サーバに、識別子受入可能値を送信し、
前記署名サーバは、前記識別子受入可能値と、同一の前記識別子を含むタイムスタンプトークンの数が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名システム。
【請求項３】
請求項２に記載の電子署名システムであって、
前記署名者クライアントは、前記署名サーバに、タイムスタンプ受入許容値を送信し、
前記署名サーバは、前記第１のタイムスタンプトークンに刻印された時刻と前記第１のタイムスタンプトークンに含まれる識別子を検証した時刻の差分と、前記第２のタイムスタンプトークンに刻印された時刻と前記第２のタイムスタンプトークンに含まれる識別子を検証した時刻の差分との合計値が、前記タイムスタンプ受入許容値以下の場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名システム。
【請求項４】
請求項１に記載の電子署名システムであって、
前記署名者クライアントは、前記秘密鍵を、パスワードを用いて暗号化してから前記署名サーバに送信すると共に、前記パスワードを前記署名サーバに送信し、
前記署名サーバに前記パスワードを送信する際、前記タイムスタンプサーバを介して前記識別子を含む第３のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバは、
前記第１のタイムスタンプトークンと、前記第２のタイムスタンプトークンと、前記第３のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記パスワードを用いて前記秘密鍵を取得すると共に、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名システム。
【請求項５】
署名対象文書に電子署名を付与する署名サーバであって、
署名者クライアントから、前記署名対象文書、および前記電子署名の付与に用いる秘密鍵を受信し、
前記署名対象文書を受信する際、タイムスタンプサーバから識別子を含む第１のタイムスタンプトークン受信し、
前記秘密鍵を受信する際、前記タイムスタンプサーバから、前記識別子を含む第２のタイムスタンプトークンを受信する送受信部と、
前記第１のタイムスタンプトークンと前記第２のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する署名実行部と、を備えた署名サーバ。
【請求項６】
署名サーバに、署名対象文書への電子署名の付与を依頼する署名者クライアントであって、
前記署名サーバに前記署名対象文書を送信すると共に、タイムスタンプサーバを介して識別子を含む第１のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバに前記電子署名の付与に用いる秘密鍵を送信すると共に、前記タイムスタンプサーバを介して前記識別子を含む第２のタイムスタンプトークンを前記署名サーバに送信する、送受信部を備えた署名者クライアント。
【請求項７】
署名者クライアントが、署名サーバに署名対象文書を送信すると共に、タイムスタンプサーバを介して識別子を含む第１のタイムスタンプトークンを前記署名サーバに送信し、
前記署名者クライアントが、前記署名サーバに前記電子署名の付与に用いる秘密鍵を送信すると共に、前記タイムスタンプサーバを介して前記識別子を含む第２のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバが、前記第１のタイムスタンプトークンと前記第２のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名方法。
【請求項８】
コンピュータを、署名対象文書に電子署名を付与する署名サーバとして機能させるプログラムであって、
前記コンピュータを、
署名者クライアントから、前記署名対象文書、および前記電子署名の付与に用いる秘密鍵を受信し、
前記署名対象文書を受信する際、タイムスタンプサーバから識別子を含む第１のタイムスタンプトークン受信し、
前記秘密鍵を受信する際、前記タイムスタンプサーバから、前記識別子を含む第２のタイムスタンプトークンを受信する送受信部と、
前記第１のタイムスタンプトークンと前記第２のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する署名実行部と、して機能させるプログラム。
【請求項９】
コンピュータを、署名サーバに、署名対象文書への電子署名の付与を依頼する署名者クライアントとして機能させるプログラムであって、
前記コンピュータを、
前記署名サーバに前記署名対象文書を送信すると共に、タイムスタンプサーバを介して識別子を含む第１のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバに前記電子署名の付与に用いる秘密鍵を送信すると共に、前記タイムスタンプサーバを介して前記識別子を含む第２のタイムスタンプトークンを前記署名サーバに送信する、送受信部として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子署名システム、署名サーバ、署名者クライアント、電子署名方法、およびプログラムに関する。
【背景技術】
【０００２】
電子文書に対するデジタル署名方式として、公開鍵暗号方式を用いた電子署名が広く用いられている。電子署名を実行するためには、秘密鍵及び電子署名を実行するアプリケーションが必要となるが、暗号アルゴリズムの危殆化等により電子署名に用いる暗号アルゴリズムを新しいアルゴリズムに変更する必要が生じた場合等、電子署名を行う全てのクライアントのアプリケーションを修正する必要がある。
【０００３】
特許文献１、特許文献２に電子署名システムの一例が、記載されている。
特許文献１には、クライアントではなくサーバのデータベースでクライアントの秘密鍵を一括管理し、サーバ上で電子署名を実行するシステムが開示されている。
また、特許文献２には、電子署名を行う都度クライアントからサーバに秘密鍵を送信し、サーバ上で電子署名を実行するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２００７４０号公報
【特許文献２】特開２００９−２１２７４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１のシステムでは、秘密鍵の保護はサーバの管理及び運用に依存している。そのためサーバの脆弱性からクライアントの秘密鍵が漏洩した場合のリスクが高い。また、サーバが秘密鍵保持者であることを確認するため、クライアントを認証する仕組みが別途必要である。さらに、サーバ及びデータベースの厳重な管理に加えて、秘密鍵の管理状態の監視が必要であることから、システム全体の運用負荷が高くなる。
【０００６】
特許文献２のシステムでは、上記の課題は解決されるものの、サーバにおいて電子署名対象文書、秘密鍵、およびパスワードの誤った組み合わせで署名が実行されてしまう可能性がある。その理由は、クライアントがサーバに送付した署名対象文書と秘密鍵、パスワードの関連はＳＳＬの同一セッション内のシーケンスである事でしか担保されないため、予め署名対象文書をサーバに格納しておいた場合など、同一セッションを用いない場合には、サーバ上の署名対象文書と秘密鍵、およびパスワードの関連を担保することができないからである。
【０００７】
また、特許文献２のシステムでは、サーバにおいて、クライアントの意図しない署名対象文書に対して署名が実施されてしまう可能性がある。その理由は、サーバ上で署名を実行する文書には制限がないため、サーバへの不正侵入等により悪意のある第三者が署名対象文書をクライアントが意図する文書とは異なる文書にすり替えた場合に、それを検知することができないためである。
【０００８】
本発明は、電子署名を行う都度クライアントからサーバに秘密鍵を送信し、サーバ上で電子署名を実行するシステムにおいて、署名対象文書と秘密鍵の関連付けを確実にすることで、クライアントが指定した署名対象文書に確実に電子署名を行うことが可能なシステムを提供することを一つの目的とする。
【０００９】
本発明に係る電子署名システムは、署名対象文書に電子署名を付与する署名サーバと、前記署名サーバに、前記署名対象文書、および前記電子署名の付与に用いる秘密鍵を送信する署名者クライアントを備え、前記署名者クライアントは、前記署名サーバに前記署名対象文書を送信する際、タイムスタンプサーバを介して、識別子を含む第１のタイムスタンプトークンを前記署名サーバに送信し、前記署名サーバに前記秘密鍵を送信する際、前記タイムスタンプサーバを介して前記識別子を含む第２のタイムスタンプトークンを前記署名サーバに送信し、前記署名サーバは、前記第１のタイムスタンプトークンと前記第２のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与するものである。
【発明の効果】
【００１０】
本発明によれば、署名サーバにおいて、署名対象文書と秘密鍵の関連付けを確実にし、署名者クライアントが指定した署名対象文書に確実に電子署名を行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１による、電子署名システムの構成を示すブロック図。
【図２】本発明の実施の形態１による、認証局システムの機能を説明する図。
【図３】本発明の実施の形態１による、署名者クライアントの機能を説明する図。
【図４】本発明の実施の形態１による、署名サーバの機能を説明する図。
【図５】本発明の実施の形態１による、タイムスタンプサーバの機能を説明する図。
【図６】本発明の実施の形態１による、電子署名システムの動作を説明する図。
【図７】本発明の実施の形態２による、署名者クライアントの機能を説明する図。
【図８】本発明の実施の形態２による、署名サーバの機能を説明する図。
【図９】本発明の実施の形態２による、電子署名システムの動作を説明する図。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、本発明の実施の形態１による電子署名システム１００の構成を示すブロック図である。
図１に示すように、電子署名システム１００は、認証局システム１、署名者クライアント２、署名サーバ３、およびタイムスタンプサーバ４と、これらを相互に接続するインターネット等の通信網５を備えている。
【００１３】
認証局システム１は、登録部１１と発行部１２を備えている。図２を用いて各部の機能について説明する。
登録部１１は、署名者クライアント２からの証明書発行要求に応じて当該ユーザを登録し、発行部１２に証明書発行要求を通知する。
発行部１２は、証明書発行要求に対して公開鍵証明書を発行する機能と、公開鍵証明書を署名者クライアント２へ配付する機能を有する。
【００１４】
署名者クライアント２は、認証局システム１から配布された公開鍵証明書を保管する。なお、公開鍵証明書に対応する秘密鍵は、署名者クライアント２の秘密鍵管理部２２が生成するようにしてもよいし、認証局システム１の発行部１２が生成するようにしてもよい。
【００１５】
署名者クライアント２は、送受信部２１、秘密鍵管理部２２、および署名対象文書管理部２３を備えている。図３を用いて各部の機能について説明する。
秘密鍵管理部２２は、秘密鍵及び公開鍵（公開鍵証明書）を管理する機能と、入力パスワードからパスワードベース暗号化方式（ＰＫＣＳ＃５）で秘密鍵を暗号化する機能を有する。秘密鍵管理部２２は、入力されたパスワードを用いて秘密鍵を暗号化した後、当該パスワードと暗号化された秘密鍵を、送受信部２１を経由して署名サーバ３に送信する。
【００１６】
署名対象文書管理部２３は、ｎｏｎｃｅ受入可能値を設定する機能と、署名対象文書を選択する機能と、ｎｏｎｃｅ（識別子）を生成し保存する機能を有する。
【００１７】
送受信部２１は、署名サーバ３にｎｏｎｃｅ受入可能値、署名対象文書、暗号化された秘密鍵、およびパスワードを送信する。また、送受信部２１は、タイムスタンプリクエストを生成し、タイムスタンプサーバ４に送信する機能と、署名サーバ３から署名データを受信する機能を有する。
【００１８】
送受信部２１は、署名対象文書管理部２３から受け取ったｎｏｎｃｅを用いて、署名対象文書に対するタイムスタンプリクエストを生成し、タイムスタンプサーバ４へ送信する。また、署名対象文書管理部２３で保存しているｎｏｎｃｅを用いて、つまり署名対象文書に対するタイムスタンプリクエストと同じｎｏｎｃｅを用いて、秘密鍵及びパスワードに対応するタイムスタンプリクエストを生成し、タイムスタンプサーバ４へ送信する。なお、タイムスタンプリクエスト及び以下で説明するタイムスタンプトークンの生成については、例えば、“RFC3161, "Internet X. 509 Public Key Infrastructure Time-Stamp Protocol (TSP)", 2001”に記載された方法を用いることができる。
【００１９】
署名サーバ３は、送受信部３１、秘密鍵取得部３２、および署名実行部３３を備えている。図４を用いて各部の機能について説明する。
送受信部３１は、署名者クライアント２からｎｏｎｃｅ受入可能値、署名対象文書、暗号化された秘密鍵、およびパスワードを受信し、タイムスタンプサーバ４からタイムスタンプトークンを受信する機能を有する。
【００２０】
秘密鍵取得部３２は、暗号化された秘密鍵とパスワードを用いて、秘密鍵を取り出す機能を有する。
【００２１】
署名実行部３３は、タイムスタンプトークンの有効性の検証を行う機能と、タイムスタンプトークンからｎｏｎｃｅを取得して保存する機能と、秘密鍵にアクセスして署名を実行する機能を有する。
【００２２】
署名実行部３３は、署名対象文書に対するタイムスタンプトークンに含まれるｎｏｎｃｅを取り出して保存する。次に、暗号化された秘密鍵とパスワードそれぞれに対するタイムスタンプトークンに含まれるｎｏｎｃｅとの一致確認を行う。
【００２３】
具体的には、ｎｏｎｃｅ受入可能値をｎｏｎｃｅ一致確認数とし、一致確認を行う毎にｎｏｎｃｅ一致確認数を減算する。さらに、ｎｏｎｃｅが一致した場合にｎｏｎｃｅ受入可能値を減算する。そして、ｎｏｎｃｅ一致確認数＝ｎｏｎｃｅ受入可能数＝０となった場合のみ、秘密鍵取得部３２が暗号化された秘密鍵とパスワードから秘密鍵を取り出し、署名実行部３３が署名を実行する。秘密鍵取得部３２は署名実行後に秘密鍵を消去する。
【００２４】
タイムスタンプサーバ４は、送受信部４１と署名実行部４２を備えている。図５を用いて各部の機能について説明する。
送受信部４１は、署名者クライアント２から送信されたタイムスタンプリクエストを受信する。署名実行部４２はタイムスタンプリクエストに対応したタイムスタンプトークンを生成する。さらに、送受信部４１が生成されたタイムスタンプトークンを署名サーバ３へ送信する。
【００２５】
なお、ｎｏｎｃｅを使用せずに、タイムスタンプリクエストのｅｘｔｅｎｓｉｏｎフィールドに署名対象文書を識別する識別子を含め、それに対応する暗号化された秘密鍵およびパスワードに対して同一の識別子を含めることで、署名対象文書、暗号化された秘密鍵、およびパスワードの関連を判断できるようにしてもよい。
【００２６】
次に、図６を用いて電子署名システム１００の動作について詳しく説明する。
署名者クライアント２は、ｎｏｎｃｅ受入可能値＝２を設定し（ステップＳ１）、署名対象文書を選択する（ステップＳ２）。次に、乱数であるｎｏｎｃｅを生成し保存する（ステップＳ３）。
【００２７】
署名者クライアント２は、このｎｏｎｃｅを用いて署名対象文書に対するタイムスタンプリクエストを作成し、タイムスタンプサーバ４に送信する（ステップＳ４、Ｓ２３）。さらに、署名対象文書とｎｏｎｃｅ受入可能値を署名サーバ３に送信する（ステップＳ５、Ｓ１２）。
【００２８】
次に、署名者クライアント２は、署名対象文書へ署名を行う秘密鍵を暗号化するために、パスワードを入力し（ステップＳ６）、パスワードベース暗号化方式（ＰＫＣＳ＃５形式）により秘密鍵を暗号化する（ステップＳ７）。さらに、ステップＳ４の署名対象文書に対するタイムスタンプリクエストの生成時に使用したものと同一のｎｏｎｃｅを用いて、暗号化された秘密鍵およびパスワードのそれぞれに対するタイムスタンプリクエストを作成し、タイムスタンプサーバ４に対して送信する（ステップＳ８、Ｓ１０、Ｓ２６、Ｓ２９）。さらに、暗号化された秘密鍵およびパスワードを署名サーバ３に送信する（ステップＳ９、Ｓ１１、Ｓ１３、Ｓ１４）。
【００２９】
署名サーバ３は、署名者クライアント２から送信された署名対象文書と、タイムスタンプサーバ４から送信された署名対象文書に対するタイムスタンプトークンを用いて、当該タイムスタンプトークンの有効性を検証した後にタイムスタンプトークンに含まれているｎｏｎｃｅを保存する（ステップＳ１５、Ｓ２４、Ｓ２５）。
【００３０】
次に、署名サーバ３は、ｎｏｎｃｅ受入可能数＝２をｎｏｎｃｅ一致確認数とし、署名者クライアント２から送信された暗号化された秘密鍵と、タイムスタンプサーバ４から送信された暗号化された秘密鍵に対するタイムスタンプトークンを用いて、当該タイムスタンプトークンの有効性を検証した後にタイムスタンプトークンに含まれているｎｏｎｃｅと、署名対象文書に対するタイムスタンプトークンに含まれていたｎｏｎｃｅが一致するか否かを確認する（ステップＳ１６、Ｓ２７、Ｓ２８）。確認処理後、ｎｏｎｃｅ一致確認数を減算して１とする。さらに、ｎｏｎｃｅが一致していることを確認した場合には、ｎｏｎｃｅ受入可能数を減算して１とする。
【００３１】
次に、署名者クライアント２から送信されたパスワードと、タイムスタンプサーバ４から送信されたパスワードに対するタイムスタンプトークンを用いて、当該タイムスタンプトークンの有効性を検証した後にタイムスタンプトークンに含まれているｎｏｎｃｅと、署名対象文書に対するタイムスタンプトークンに含まれていたｎｏｎｃｅが一致するか否かを確認する（ステップＳ１７、Ｓ３０、Ｓ３１）。確認処理後、ｎｏｎｃｅ一致確認数を減算して０とする。さらに、ｎｏｎｃｅが一致していることを確認した場合には、ｎｏｎｃｅ受入可能数を減算して０とする。
【００３２】
署名サーバ３は、ｎｏｎｃｅ一致確認数＝ｎｏｎｃｅ受入可能数＝０となった場合にのみ、暗号化された秘密鍵とパスワードを用いて秘密鍵を取り出す（ステップＳ１８）。さらに、署名サーバ３は署名対象文書に対して署名を実行し（ステップＳ１９）、署名データを署名者クライアント２に送信する（ステップＳ２１、Ｓ２２）。さらに、署名実行後に秘密鍵を消去する（ステップＳ２０）。
【００３３】
以上のように、本実施形態によれば、署名者クライアント２が、署名対象文書、秘密鍵、およびパスワードを送信する際に、同一のｎｏｎｃｅを含むタイムスタンプトークンを署名サーバ３に送信し、署名サーバ３は、それぞれのタイムスタンプトークンに含まれるｎｏｎｃｅが同一であることを確認した後に署名を実行するようにしたので、署名サーバ３において、署名者クライアント２が送信した正しい署名対象文書、秘密鍵、およびパスワードの組み合わせで、電子署名を行うことができる。
【００３４】
また、署名者クライアント２が、署名サーバ３にｎｏｎｃｅ受入可能値を送信し、署名サーバ３は、ｎｏｎｃｅ受入可能値と、ｎｏｎｃｅが一致していることを確認した回数が一致する場合にのみ、署名対象文書に対して署名を実行するようにしたので、クライアントが意図する署名対象文書に対してのみ、確実に署名が実行される。
【００３５】
実施の形態２．
図７は、本発明の実施の形態２による電子署名システム１００の署名者クライアント２の機能を説明する図である。
実施の形態２では、署名者クライアント２の署名対象文書管理部２４は、ｎｏｎｃｅ受入可能値と共に、タイムスタンプ受入許容値を設定する機能を有する。その他の署名対象文書を選択する機能、ｎｏｎｃｅを生成し保管する機能は、実施の形態１と同様である。
【００３６】
送受信部２５は、署名サーバ３にｎｏｎｃｅ受入可能値、タイムスタンプ受入許容値、と署名対象文書、暗号化された秘密鍵、およびパスワードを送信する。タイムスタンプリクエストを生成し、タイムスタンプサーバ４に送信する機能と、署名サーバ３から署名データを受信する機能は、実施の形態１と同様である。また、秘密鍵管理部２２の機能は実施の形態１と同様である。
【００３７】
図８は、実施の形態２による電子署名システム１００の署名サーバ３の機能を説明する図である。
実施の形態２では、署名サーバ３の送受信部３４は、署名者クライアント２から受信したｎｏｎｃｅ受入可能値、タイムスタンプ受入許容値、署名対象文書、暗号化された秘密鍵、およびパスワードを受信する。タイムスタンプサーバ４からタイムスタンプトークンを受信する機能は実施の形態１と同様である。
【００３８】
署名実行部３５は、タイムスタンプトークンの有効性検証を行う機能と、タイムスタンプトークンから時刻情報を取得する機能と、タイムスタンプトークンからｎｏｎｃｅを取得し保存する機能と、秘密鍵にアクセスして署名を実行する機能を有する。
【００３９】
署名実行部３５は、署名対象文書に対するタイムスタンプトークンに含まれる時刻情報を取り出し、タイムスタンプトークンの有効性検証を実施した時刻との差分値を算出する。次に、暗号化された秘密鍵に対するタイムスタンプトークンに含まれる時刻情報とタイムスタンプトークンの有効性検証を実施した時刻との差分値を算出する。さらに、パスワードに対するタイムスタンプトークンに含まれる時刻情報とタイムスタンプトークンの有効性検証を実施した時刻との差分値を算出する。
【００４０】
次に、署名対象文書に対するタイムスタンプトークンに含まれるｎｏｎｃｅを取り出し保存する。次に暗号化された秘密鍵に対するタイムスタンプトークンに含まれるｎｏｎｃｅとの一致確認を行う。次に、パスワードに対するタイムスタンプトークンに含まれるｎｏｎｃｅとの一致確認を行う。
【００４１】
具体的には、ｎｏｎｃｅ受入可能値＝ｎｏｎｃｅ一致確認数と設定し、差分値の算出及びｎｏｎｃｅの一致確認を行う毎にｎｏｎｃｅ一致確認数を減算する。さらに、ｎｏｎｃｅが一致した場合にｎｏｎｃｅ受入可能値を減算する。そして、差分値の合計値がタイムスタンプ受入許容値以下であり、かつｎｏｎｃｅ一致確認数＝ｎｏｎｃｅ受入可能数＝０となった場合にのみ、秘密鍵取得部３２が暗号化された秘密鍵とパスワードから秘密鍵を取り出し、署名実行部３３が署名を実行する。秘密鍵取得部３２は署名実行後に秘密鍵を消去する。
【００４２】
なお、タイムスタンプリクエストを送信するタイミングを増やし、差分値の算出箇所の組み合わせや、許容値の設定箇所の組み合わせに対してタイムスタンプリクエストを行ってもよい。さらに、タイムスタンプリクエストを受け付けるタイムスタンプサーバ４で受入許容値を制御し、タイムスタンプトークンの有無により署名の可否を判断するようにしてもよい。
【００４３】
次に、図９を用いて実施の形態２による電子署名システム１００の動作について詳しく説明する。
署名者クライアント２は、ｎｏｎｃｅ受入可能値＝２と、タイムスタンプ受入許容値Ｔ  を設定し（ステップＳ１０１）、署名対象文書を選択する（ステップＳ２）。次に、乱数であるｎｏｎｃｅを生成し保存する（ステップＳ３）。
【００４４】
署名者クライアント２は、このｎｏｎｃｅを用いて署名対象文書に対するタイムスタンプリクエストを作成し、タイムスタンプサーバ４に送信する（ステップＳ４、Ｓ２３）。さらに、署名対象文書とｎｏｎｃｅ受入可能値とタイムスタンプ受入許容値Ｔを署名サーバ３に送信する（ステップＳ１０５、Ｓ１２）。
【００４５】
次に、署名者クライアント２は、署名対象文書へ署名を行う秘密鍵を暗号化するために、パスワードを入力し（ステップＳ６）、パスワードベース暗号化方式（ＰＫＣＳ＃５形式）により秘密鍵を暗号化する（ステップＳ７）。さらに、ステップＳ４の署名対象文書に対するタイムスタンプリクエストの生成時に使用したものと同一のｎｏｎｃｅを用いて、暗号化された秘密鍵およびパスワードのそれぞれに対するタイムスタンプリクエストを作成し、タイムスタンプサーバ４に対して送信する（ステップＳ８、Ｓ１０、Ｓ２６、Ｓ２９）。さらに、暗号化された秘密鍵およびパスワードを署名サーバ３に送信する（ステップＳ９、Ｓ１１、Ｓ１３、Ｓ１４）。
【００４６】
署名サーバ３は、署名者クライアント２から送信された署名対象文書と、タイムスタンプサーバ４から送信された署名対象文書に対するタイムスタンプトークンを用いて、当該タイムスタンプトークンの有効性を検証した後にタイムスタンプトークンに含まれているｎｏｎｃｅを保存する。さらに、タイムスタンプトークンの有効性を検証した時刻Ｔ＿Ｖ１と、タイムスタンプトークンから取得した時刻情報Ｔ＿Ｇ１から、差分値Ｔ＿Ｄ１＝Ｔ＿Ｇ１−Ｔ＿Ｖ１を算出する（ステップＳ１１５、Ｓ２４、Ｓ２５）。
【００４７】
次に、署名サーバ３は、ｎｏｎｃｅ受入可能数＝２をｎｏｎｃｅ一致確認数とし、署名者クライアント２から送信された暗号化された秘密鍵と、タイムスタンプサーバ４から送信された暗号化された秘密鍵に対するタイムスタンプトークンを用いて、当該タイムスタンプトークンの有効性を検証した後にタイムスタンプトークンに含まれているｎｏｎｃｅと、署名対象文書に対するタイムスタンプトークンに含まれていたｎｏｎｃｅが一致するか否かを確認する。確認処理後、ｎｏｎｃｅ一致確認数を減算して１とする。さらに、ｎｏｎｃｅが一致していることを確認した場合には、ｎｏｎｃｅ受入可能数を減算して１とする。さらに、タイムスタンプトークンの有効性を検証した時刻Ｔ＿Ｖ２と、タイムスタンプトークンから取得した時刻情報Ｔ＿Ｇ２から、差分値Ｔ＿Ｄ２＝Ｔ＿Ｇ２−Ｔ＿Ｖ２を算出する（ステップＳ１１６、Ｓ２７、Ｓ２８）。
【００４８】
次に、署名者クライアント２から送信されたパスワードと、タイムスタンプサーバ４から送信されたパスワードに対するタイムスタンプトークンを用いて、当該タイムスタンプトークンの有効性を検証した後にタイムスタンプトークンに含まれているｎｏｎｃｅと、署名対象文書に対するタイムスタンプトークンに含まれていたｎｏｎｃｅが一致するか否かを確認する。確認処理後、ｎｏｎｃｅ一致確認数を減算して０とする。さらに、ｎｏｎｃｅが一致していることを確認した場合には、ｎｏｎｃｅ受入可能数を減算して０とする。さらに、タイムスタンプトークンの有効性を検証した時刻Ｔ＿Ｖ３と、タイムスタンプトークンから取得した時刻情報Ｔ＿Ｇ３から、差分値Ｔ＿Ｄ３＝Ｔ＿Ｇ３−Ｔ＿Ｖ３を算出する（ステップＳ１１７、Ｓ３０、Ｓ３１）。
【００４９】
次に、署名サーバ３は、差分値の合計値（Ｔ＿Ｄ１＋Ｔ＿Ｄ２＋Ｔ＿Ｄ３）がタイムスタンプ受入許容値Ｔ以下であり、かつｎｏｎｃｅ一致確認数＝ｎｏｎｃｅ受入可能数＝０となった場合のみ、暗号化された秘密鍵とパスワードを用いて秘密鍵を取り出す（ステップＳ１１８，Ｓ１８）。さらに、署名サーバ３は署名対象文書に対して署名を実行し（ステップＳ１９）、署名データを署名者クライアント２に送信する（ステップＳ２１、Ｓ２２）。さらに、署名実行後に秘密鍵を消去する（ステップＳ２０）。
【００５０】
以上のように、本実施形態によれば、署名者クライアント２が、電子署名サーバ３にタイムスタンプ受入許容値Ｔを送信し、署名サーバ３は、各々のタイムスタンプトークンの有効性を検証した時刻と、タイムスタンプトークンから取得した時刻から差分値を算出し、各々の差分値の合計がタイムスタンプ受入許容値Ｔ以下の場合にのみ、電子署名を実行するようにしたので、署名対象文書、秘密鍵、およびパスワードの組み合わせの検証を、より確実に行うことができる。
【００５１】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）署名対象文書に電子署名を付与する署名サーバと、
前記署名サーバに、前記署名対象文書、および前記電子署名の付与に用いる秘密鍵を送信する署名者クライアントを備え、
前記署名者クライアントは、
前記署名サーバに前記署名対象文書を送信する際、タイムスタンプサーバを介して、識別子を含む第１のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバに前記秘密鍵を送信する際、前記タイムスタンプサーバを介して前記識別子を含む第２のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバは、
前記第１のタイムスタンプトークンと前記第２のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名システム。
【００５２】
（付記２）付記１に記載の電子署名システムであって、
前記署名者クライアントは、前記署名サーバに、識別子受入可能値を送信し、
前記署名サーバは、前記識別子受入可能値と、同一の前記識別子を含むタイムスタンプトークンの数が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名システム。
【００５３】
（付記３）付記２に記載の電子署名システムであって、
前記署名者クライアントは、前記電子署名サーバに、タイムスタンプ受入許容値を送信し、
前記署名サーバは、前記第１のタイムスタンプトークンに刻印された時刻と前記第１のタイムスタンプトークンに含まれる識別子を検証した時刻の差分と、前記第２のタイムスタンプトークンに刻印された時刻と前記第２のタイムスタンプトークンに含まれる識別子を確認した時刻の差分との合計値が、前記タイムスタンプ受入許容値以下の場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名システム。
【００５４】
（付記４）付記１に記載の電子署名システムであって、
前記署名者クライアントは、前記秘密鍵を、パスワードを用いて暗号化してから前記署名サーバに送信すると共に、前記パスワードを前記署名サーバに送信し、
前記署名サーバに前記パスワードを送信する際、前記タイムスタンプサーバを介して前記識別子を含む第３のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバは、
前記第１のタイムスタンプトークンと、前記第２のタイムスタンプトークンと、前記第３のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記パスワードを用いて前記秘密鍵を取得すると共に、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名システム。
【００５５】
（付記５）署名対象文書に電子署名を付与する署名サーバであって、
署名者クライアントから、前記署名対象文書、および前記電子署名の付与に用いる秘密鍵を受信し、
前記署名対象文書を受信する際、タイムスタンプサーバから識別子を含む第１のタイムスタンプトークン受信し、
前記秘密鍵を受信する際、前記タイムスタンプサーバから、前記識別子を含む第２のタイムスタンプトークンを受信する送受信部と、
前記第１のタイムスタンプトークンと前記第２のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する署名実行部と、を備えた署名サーバ。
【００５６】
（付記６）署名サーバに、署名対象文書への電子署名の付与を依頼する署名者クライアントであって、
前記署名サーバに前記署名対象文書を送信すると共に、タイムスタンプサーバを介して識別子を含む第１のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバに前記電子署名の付与に用いる秘密鍵を送信すると共に、前記タイムスタンプサーバを介して前記識別子を含む第２のタイムスタンプトークンを前記署名サーバに送信する、送受信部を備えた署名者クライアント。
【００５７】
（付記７）署名者クライアントが、署名サーバに署名対象文書を送信すると共に、タイムスタンプサーバを介して識別子を含む第１のタイムスタンプトークンを前記署名サーバに送信し、
前記署名者クライアントが、前記署名サーバに前記電子署名の付与に用いる秘密鍵を送信すると共に、前記タイムスタンプサーバを介して前記識別子を含む第２のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバが、前記第１のタイムスタンプトークンと前記第２のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する、電子署名方法。
【００５８】
（付記８）コンピュータを、署名対象文書に電子署名を付与する署名サーバとして機能させるプログラムであって、
前記コンピュータを、
署名者クライアントから、前記署名対象文書、および前記電子署名の付与に用いる秘密鍵を受信し、
前記署名対象文書を受信する際、タイムスタンプサーバから識別子を含む第１のタイムスタンプトークン受信し、
前記秘密鍵を受信する際、前記タイムスタンプサーバから、前記識別子を含む第２のタイムスタンプトークンを受信する送受信部と、
前記第１のタイムスタンプトークンと前記第２のタイムスタンプトークンに含まれる前記識別子が一致する場合にのみ、前記署名対象文書に前記秘密鍵を用いて電子署名を付与する署名実行部と、して機能させるプログラム。
【００５９】
（付記９）コンピュータを、署名サーバに、署名対象文書への電子署名の付与を依頼する署名者クライアントとして機能させるプログラムであって、
前記コンピュータを、
前記署名サーバに前記署名対象文書を送信すると共に、タイムスタンプサーバを介して識別子を含む第１のタイムスタンプトークンを前記署名サーバに送信し、
前記署名サーバに前記電子署名の付与に用いる秘密鍵を送信すると共に、前記タイムスタンプサーバを介して前記識別子を含む第２のタイムスタンプトークンを前記署名サーバに送信する、送受信部として機能させるプログラム。
【符号の説明】
【００６０】
１  認証局システム、２  署名者クライアント、３  署名サーバ、４  タイムスタンプサーバ、５  通信網、１１  登録部、１２  発行部、２１，２５  送受信部、２２  秘密鍵管理部、２３，２４  署名対象文書管理部、３１，３４  送受信部、３２  秘密鍵取得部、３３，３５  署名実行部、４１  送受信部、４２  署名実行部、１００  電子署名システム
【図１】
0005768543.tif 000002
【図２】
0005768543.tif 000003
【図３】
0005768543.tif 000004
【図４】
0005768543.tif 000005
【図５】
0005768543.tif 000006
【図６】
0005768543.tif 000007
【図７】
0005768543.tif 000008
【図８】
0005768543.tif 000009
【図９】
0005768543.tif 000010