【手続補正書】
【提出日】平成16年12月24日(2004.12.24)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】      明細書
【発明の名称】  電子文書に対するタイムスタンプ押印システム、及び、そのプログラム媒体
【特許請求の範囲】
【請求項１】  電子文書作成ソフトウエアが組み込まれたクライアント側電子文書作成端末装置により作成された電子文書を基にして作成されたダイジェスト値を外部機関装置に対して送付し、外部機関装置において上記ダイジェスト値に対して受信時刻を付与し且つ電子署名を行ってクライアント側に返送するように構成した電子文書に対するタイムスタンプ押印システムであって、
上記クライアント側電子文書作成端末装置が、
上記電子文書作成ソフトウエアにより作成された電子文書を読み取る電子文書読み取り手段と、
読み取った電子文書を基に、一方向関数値であるハッシュ値を含むダイジェスト値を計算するダイジェスト値演算手段と、
上記ダイジェスト値とクライアント側電子文書作成端末装置のＩＤ番号とを互いに関連づけて上記外部機関装置へ送信する送信手段と、
上記の外部機関装置によって受信されたダイジェスト値とクライアント側電子文書作成端末装置のＩＤ番号に対して、外部機関装置により受信時刻と電子署名が付加されて返送されて来る電子証明書を受信する受信手段と、
受信した上記電子証明書をクライアント側電子文書作成端末装置内のタイムスタンプ対象電子文書に対して書き込む電子証明書挿入書き込み手段、
とを備えていることを特徴とする電子文書に対するタイムスタンプ押印システム。
【請求項２】  上記電子証明書が、少なくとも、対象電子文書のダイジェスト値と外部機関装置での上記ダイジェスト値受信時刻情報とクライアント側端末ＩＤ番号とを記載した原タイムスタンプ情報と、該原タイムスタンプ情報を外部機関側の秘密鍵により電子署名し、且つ、電子署名検証公開鍵にて復号可能な公開鍵署名情報と、上記原タイムスタンプ情報を外部機関側の秘密鍵により電子署名し、且つ、電子署名検証秘密鍵にて復号可能な秘密鍵署名情報とを含むことを特徴とする請求項１に記載の電子文書に対するタイムスタンプ押印システム。
【請求項３】  クライアント端末装置内の、埋め込まれた電子証明書を除く部分を含む検証対象電子文書のダイジェスト値を計算し、該計算されたダイジェスト値と、原タイムスタンプ情報中のドキュメントダイジェスト値とを比較検証すると共に、クライアント端末装置における電子署名検証公開鍵の操作により復号された上記公開鍵署名情報を元に、原タイムスタンプ情報の比較検証を行うオフライン検証手段を備えて成ることを特徴とする請求項１又は２に記載の電子文書に対するタイムスタンプ押印システム。
【請求項４】  クライアント端末装置の操作を行うことにより、上記電子文書に書き込まれた電子証明書を外部機関装置に送信し、且つ、外部機関が保有する電子署名検証秘密鍵を用いて該電子証明書内の秘密鍵署名情報を復号し、復号された秘密鍵署名情報を元に原タイムスタンプ情報の比較検証を行うオンライン検証手段を備えて成ることを特徴とする請求項１、２又は３に記載の電子文書に対するタイムスタンプ押印システム。
【請求項５】  クライアント端末装置の操作を行うことにより、上記電子文書に書き込まれた電子証明書の少なくとも秘密鍵署名情報を外部機関装置に送信し、且つ、外部機関が保有する電子署名検証秘密鍵を用いて秘密鍵署名情報を復号して、クライアントにおいて検証対象電子文書との比較確認可能な情報を生成してクライアント側に返送するオンライン検証手段を備えて成ることを特徴とする請求項１、２又は３に記載の電子文書に対するタイムスタンプ押印システム。
【請求項６】  電子文書作成ソフトウエアが組み込まれたクライアント側電子文書作成端末装置により作成された電子文書のダイジェスト値を、外部機関装置に対して送付する機能と、外部機関装置により上記ダイジェスト値に対して受信時刻を付加し、且つ、電子署名を施した上で返送される電子証明書を受け入れると共に、クライアント側の電子文書作成端末装置のタイムスタンプ対象電子文書に対して上記電子証明書を挿入書き込むための機能を、コンピュータに実現させるためのプログラムを記録したコンピュータ読取可能なプログラム媒体であって、
上記クライアント側電子文書作成端末装置に対して、
上記電子文書作成ソフトウエアにより作成された電子文書を読み取らせる電子文書読み取り機能と、
読み取った電子文書からその一方向性関数値であるダイジェスト値を計算するダイジェスト値演算機能と、
上記ダイジェスト値、並びに、クライアント側電子文書作成端末装置のＩＤ番号とを互いに関連づけて上記外部機関装置へ送信する送信機能と、
外部機関装置から返送され、タイムスタンプが押印され、且つ、電子署名された電子証明書を受信する受信機能と、
返送送信した上記電子証明書を上記クライアント側電子文書作成端末装置により作成されたタイムスタンプ対象電子文書に対して書き込む電子証明書書込み機能、
とを各々コンピュータに実現させるためのプログラムを記録したことを特徴とするコンピュータ読取可能な電子文書に対するタイムスタンプ押印用プログラム媒体。
【請求項７】  上記電子証明書が、少なくとも、対象電子文書のダイジェスト値と外部機関装置での上記ダイジェスト値受信時刻情報とクライアント側端末ＩＤ番号とを記載した原タイムスタンプ情報と、該原タイムスタンプ情報を外部機関側の秘密鍵により電子署名し、且つ、電子署名検証公開鍵にて復号可能な公開鍵署名情報と、上記原タイムスタンプ情報を外部機関側の秘密鍵により電子署名し、且つ、電子署名検証秘密鍵にて復号可能な秘密鍵署名情報とを含んでいることを特徴とする請求項６に記載のコンピュータ読取可能な電子文書に対するタイムスタンプ押印用プログラム媒体。
【請求項８】  クライアント端末装置内の、埋め込まれた電子証明書を除く部分を含む検証対象電子文書のダイジェスト値を計算し、該計算されたダイジェスト値と、原タイムスタンプ情報中のドキュメントダイジェスト値とを比較検証すると共に、クライアント端末装置における電子署名検証公開鍵の操作により復号された上記公開鍵署名情報を元に、原タイムスタンプ情報の比較検証を行うオフライン検証手段をコンピュータに実行させるためのプログラムを備えたことを特徴とする請求項６又は７に記載のコンピュータ読取可能な電子文書に対するタイムスタンプ押印用プログラム媒体。
【請求項９】  クライアント端末装置の操作を行うことにより、上記電子文書に書き込まれた電子証明書を外部機関装置に送信し、且つ、外部機関が保有する電子署名検証秘密鍵を用いて該電子証明書内の秘密鍵署名情報を復号し、復号された秘密鍵署名情報を元に原タイムスタンプ情報の比較検証を行うオンライン検証手段をコンピュータに実行させるためのプログラムを備えてなることを特徴とする請求項６、７又は８に記載のコンピュータ読取可能な電子文書に対するタイムスタンプ押印用プログラム媒体。
【請求項１０】  クライアント端末装置の操作を行うことにより、上記電子文書に書き込まれた電子証明書の少なくとも秘密鍵署名情報を外部機関装置に送信し、且つ、外部機関が保有する電子署名検証秘密鍵を用いて秘密鍵署名情報を復号して、クライアントにおいて検証対象電子文書との比較確認可能な情報を生成してクライアント側に返送するオンライン検証手段とをコンピュータに実行させるためのプログラムを備えてなることを特徴とする請求項６、７又は８に記載のコンピュータ読取可能な電子文書に対するタイムスタンプ押印用プログラム媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子文書に対して認証された日時を押印することで、電子文書が作成された日時を証明することが可能な電子文書に対するタイムスタンプ押印システム、及び、そのシステムに用いるコンピュータ読取可能なプログラム媒体に関するものである。
【０００２】
【従来の技術】
電子商取引や電子公証、電子申請などを行う契約通信システム等において、保証された時刻情報が必要とされている。従来の契約通信システムにおいては、ＧＰＳや電波時計などの精密な時計機器を連動させてシステムを構築していたが、そのシステムが本当に正しい時刻情報で運用されていることを証明することは不可能であった。
【０００３】
時刻情報を証明する技術に関しては、例えば、特表平６−５０１５７１号公報の「数値文書にタイムスタンプを確実に押す方法」によるシステムが開示されている。この方法においては、著作者が作成した文書を外部機関へ送信し、外部機関において受信の時刻とこの文書の少なくとも一部を含む受理書を作成すると共に、作成された受理書を著作者に返送することで著作者はその受理書を保管し、必要により文書作成日を客観的に証明することができる方法である。
【０００４】
【発明が解決しようとする課題】
上記従来のシステムによれば、著作者側において上記受理書を保管しているので、必要な際は、この受理書を証明を必要とする相手に提示することができる。しかし、文書と別に別途受理書を添付する必要があり、これらの受理書の保管も
、文書と一体的に管理する必要があって、その取扱いが面倒であった。
【０００５】
また、従来公知の契約システムでは、時刻情報の取得元に悪意をもって成り済ますことは技術的に可能であった。更に、第三者による電子署名付きタイムスタンプに関しては、タイムスタンプ対象ドキュメント（文書）、若しくはドュメントダイジェストをタイムスタンプ発行機関へ送信し、タイムスタンプ発行機関はドキュメントに時刻情報と電子署名したものを返信していた為に、その手間が煩雑で、コストの高いシステムとなっていた。
【０００６】
更に、第三者による電子署名付きタイムスタンプに関しては、タイムスタンプ対象ファイルとタイムスタンプ証明書（電子署名）とを併せて保管しなければならないため、運用が困難であった。
【０００７】
更にまた、第三者による電子署名付きタイムスタンプに関しては、電子署名の有効期間が限られているため、有効期間が過ぎない内に更にタイムスタンプ処理を上書きして有効期間を延長させなければならないという煩わしさがあった。
【０００８】
また、タイムスタンプの検証時は、手間を考えるとオフラインで検証できる方が望ましいが、その為に、もし署名検証鍵を公開した場合も、電子署名の有効期間が限られていたため、有効期間が過ぎない内に更にタイムスタンプ処理を上書きして有効期間を延長させなければならないという問題点が生じていた。
【０００９】
本発明は、上述の問題点に鑑みてなされたもので、その目的は、汎用文書作成ソフトで作成された文書を含む文書の作成日時等を証明するタイムスタンプ押印を容易に行うことができると共に、その日時検証を容易に且つ確実に行うことができる電子文書に対するタイムスタンプ押印システムと、そのプログラム媒体を提供することである。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明の電子文書に対するタイムスタンプ押印システムは、前記請求項１に記載の如く、電子文書作成ソフトウエアが組み込まれたクライアント側電子文書作成端末装置により作成された電子文書を基にして作成されたダイジェスト値を外部機関装置に対して送付し、外部機関装置において上記ダイジェスト値に対して受信時刻を付与し且つ電子署名を行ってクライアント側に返送するように構成した電子文書に対するタイムスタンプ押印システムであって、上記クライアント側電子文書作成端末装置が、上記電子文書作成ソフトウエアにより作成された電子文書を読み取る電子文書読み取り手段と、読み取った電子文書を基に、一方向関数値であるハッシュ値を含むダイジェスト値を計算するダイジェスト値演算手段と、上記ダイジェスト値とクライアント側電子文書作成端末装置のＩＤ番号とを互いに関連づけて上記外部機関装置へ送信する送信手段と、上記の外部機関装置によって受信されたダイジェスト値とクライアント側電子文書作成端末装置のＩＤ番号に対して、外部機関装置により受信時刻と電子署名が付加されて返送されて来る電子証明書を受信する受信手段と、受信した上記電子証明書をクライアント側電子文書作成端末装置内のタイムスタンプ対象電子文書に対して書き込む電子証明書挿入書き込み手段、とを備えるように構成している。
【００１１】
また、本発明のコンピュータ読取可能な電子文書に対するタイムスタンプ押印用プログラム媒体は、前記請求項６に記載の如く、電子文書作成ソフトウエアが組み込まれたクライアント側電子文書作成端末装置により作成された電子文書のダイジェスト値を、外部機関装置に対して送付する機能と、外部機関装置により上記ダイジェスト値に対して受信時刻を付加し、且つ、電子署名を施した上で返送される電子証明書を受け入れると共に、クライアント側の電子文書作成端末装置のタイムスタンプ対象電子文書に対して上記電子証明書を挿入書き込むための機能を、コンピュータに実現させるためのプログラムを記録したコンピュータ読取可能なプログラム媒体であって、上記クライアント側電子文書作成端末装置に対して、上記電子文書作成ソフトウエアにより作成された電子文書を読み取らせる電子文書読み取り機能と、読み取った電子文書からその一方向性関数値であるダイジェスト値を計算するダイジェスト値演算機能と、上記ダイジェスト値、並びに、クライアント側電子文書作成端末装置のＩＤ番号とを互いに関連づけて上記外部機関装置へ送信する送信機能と、外部機関装置から返送され、タイムスタンプが押印され、且つ、電子署名された電子証明書を受信する受信機能と、返送送信した上記電子証明書を上記クライアント側電子文書作成端末装置により作成されたタイムスタンプ対象電子文書に対して書き込む電子証明書書込み機能、とを各々コンピュータに実現させるためのプログラムを記録するように構成している。
【００１２】
以上の如く構成した本発明に係る電子文書に対するタイムスタンプ押印システム、及び、そのプログラム媒体よれば、ドキュメント作成用アプリケーションソフトのアドオンソフトウエアで、そのソフトが取扱うドキュメントに対してタイムスタンプ処理ができると共に、タイムスタンプ証明書を対象ドキュメント内に埋め込んだことにより、対象ドキュメントとタイムスタンプ証明書のそれぞれを管理しなくても良いようにした。また、本発明によれば、電子署名を２つ使い、１つは検証鍵を非公開、他の１つは公開としたことで、セキュリティレベルを高く保ちつつ、ユーザーサイドでも高いレベルの検証をできるようにした。
【００１３】
更に、本発明によれば、文書作成ソフトにタイムスタンプ機能を統合したことにより、誰でも手軽に認証された時刻を取扱うことができると共に、タイムスタンプの検証は、文書の重要度によって簡易な方法と厳密な検証とをユーザー自身がその場に応じて選択できるようにした。
【００１４】
【発明の実施の形態】
以下に、本発明の実施例による電子文書に対するタイムスタンプ押印システムについて、図面を参照しながら説明すると、図１は本発明の実施例によるタイムスタンプ押印システムの概略構成を示し、図中、１０は外部機関としてのタイムスタンプ処理センター、２０はクライアント側の電子文書作成機関を示す。タイムスタンプ処理センター１０は、タイムサーバ１１と、タイムスタンプ発行サーバ１２及びタイムスタンプ検証サーバ１３から成る。
【００１５】
クライアント側の電子文書作成機関２０は複数のクライアントの電子文書作成端末装置から成り、具体的には、例えばクライアントＡの文書作成端末装置３０とクライアントＢの文書作成端末装置４０とから成っている。上記のタイムスタンプ処理センター１０のタイムスタンプ発行サーバ１２とタイムスタンプ検証サーバ１３は、夫々、コンピュータ装置や通信装置等を備えており、クライアントＡの文書作成端末装置３０とクライアントＢの文書作成端末装置４０も、夫々、コンピュータ装置や通信装置等を備えている。また、タイムスタンプ処理センター１０と各クライアントＡ，Ｂの文書作成端末装置３０及び４０は、インターネット等の通信網５０を介して通信可能に接続されており、クライアントＡの文書作成端末装置３０とクライアントＢの文書作成端末装置４０の間も、通信網５０を介して通信可能に接続されている。
【００１６】
更に、上記のタイムスタンプ発行サーバ１２と、タイムスタンプ検証サーバ１３と、クライアントＡの文書作成端末装置３０及びクライアントＢの文書作成端末装置４０は、いずれも電子署名鍵機能を有し、タイムスタンプ発行サーバ１２は署名生成秘密鍵Ｋｓ1とＫｓ2を有し、タイムスタンプ検証サーバ１３は署名検証秘密鍵Ｋｖ2を有し、クライアントＡの文書作成端末装置３０は署名検証公開鍵Ｋｖ1を有すると共に、クライアントＢの文書作成端末装置４０も署名検証公開鍵Ｋｖ1を有している。
【００１７】
タイムスタンプ処理センター１０側のタイムサーバ１１は、協定世界時に同期しており、タイムスタンプ発行サーバ１２に対して時刻の配信を行う。クライアントＡの文書作成端末装置３０はタイムスタンプ発行サーバ１２に対してタイムスタンプ要求メッセージ３１を送信し、タイムスタンプ発行サーバ１２はクライアントＡの文書作成端末装置３０に対してタイムスタンプ応答メッセージ３２を返信する。一方、クライアントＢの文書作成端末装置４０は、クライアントＡの文書作成端末装置３０から送られてきたタイムスタンプ付き文書ファイルに関して、タイムスタンプ検証サーバ１３にタイムスタンプ検証要求メツセージ４１を送信し、タイムスタンプ検証サーバ１３はクライアントＢの文書作成端末装置４０に対してタイムスタンプ検証結果４２を送信する。
【００１８】
上記のタイムスタンプ発行サーバ１２は、タイムスタンプアドオンソフトから要求されたタイムスタンプ発行要求に対し、タイムスタンプ対象データに時刻情報を付加して、電子署名を行う。また、タイムスタンプ検証サーバ１３は、タイムスタンプアドオンソフトから要求されたタイムスタンプの検証要求に対し、タイムスタンプデータの署名の復号処理を行う。各クライアントＡ，Ｂ側の文書作成端末装置３０と４０は、ドキュメント（電子文書）作成と、編集アプリケーションソフトウエア処理を行い、このソフトウエアの上で動作するタイムスタンプアドオンソフトウエアを有する。ここで、タイムスタンプ処理発生毎にセンターから時刻を取得すると共に、処理発生毎にセンターに対し対象ドキュメントのダイジェスト値（ハッシュ値）を送信し、それに対してセンターは時刻情報と電子署名を付与して返信する。
【００１９】
上記のハッシュ値は一方向性関数であるハッシュ関数によって演算された値であって、一方向性関数は、ある入力を変換して出力するのは簡単であるが、逆方向の出力から求めることが困難もしくは不可能な関数である。また、ハッシュ関数は、広義には大きな定義域に値を写像する関数であるが、暗号などで利用されるハッシュ関数は一方向性を持ち、非衝突一致性を有する（元の値が異なるのに結果が同一になる確率が低い）関数である。
【００２０】
クライアントソフトウエアの構成要素として、タイムスタンプアドオンソフトや、ドキュメント編集アドオンソフト、及び、ＯＳがあり、これらはタイムスタンプ生成部とタイムスタンプ真正検証部（オフライン検証）とオンライン真正検証部（センター問い合わせ）とタイムスタンプ真正検証部とからなる。タイムスタンプ生成部は、ドキュメントのハッシュ値を計算する機能と、センターとのタイムスタンプの通信を行う機能と、ランダムなパスワードを生成し、そのパスワードを用いてドキュメント生成ソフトでリードオンリー（ＲｅａｄＯｎｌｙ）にして文書を保存する機能とを有する。
【００２１】
上記のタイムスタンプ真正検証部（オフライン検証）は、埋め込まれたタイムスタンプオブジェクトに対してオブジェクト内部情報を表示する機能を有する。また、タイムスタンプ真正検証部（センター問い合わせ）は、タイムスタンプが埋め込まれたドキュメントのハッシュ値を計算する機能と、センターとタイムスタンプ情報の検証要求、結果受信の通信機能と、検証結果の表示機能を有する。
【００２２】
図９に示すように、タイムスタンプのデータ構造としては、タイムスタンプオブジェクト（ＴＳ−ｏｂｊ）として、時刻情報（Ｔ−ｆｉｘ）とドキュメントダイジェスト値（Ｈ−ｄｏｃ）と、タイムスタンプサーバ識別子（ＴＳＳ−ＩＤ）から成る原タイムスタンプ情報と、原タイムスタンプ情報に対する電子署名（ＳＩＧ−１）からなる公開鍵署名情報（署名検証鍵は公開）、即ち、原タイムスタンプ情報（Ｔ−ｆｉｘ，Ｈ−ｄｏｃ，ＴＳＳ−ＩＤ）をハッシュ化して、そのハッシュ値を暗号化し、且つ、上記署名検証公開鍵（Ｋｖ1）にて暗号化されたハッシュ値を元の原タイムスタンプ情報のハッシュ値に復号可能な情報（ＳＩＧ−１）と、原タイムスタンプ情報に対するセンターの電子署名（ＳＩＧ−２）からなる秘密鍵署名情報（署名検証鍵は非公開）、及び、スタンプイメージ（マーク
）によって構成されている。
【００２３】
図１０は文書データの一例を示すもので、この文書データは、ヘッダーとインデックス及びディテイルのブロックに分かれており、ヘッダーは文書全体に係る情報、例えば作成者名、文書記述文法のバージョンなどである。インデックスは文書中の各オブジェクトのタグ情報で、それぞれのオブジェクトの固有識別子、表示するかしないかの属性、表示する位置、表示するデータの存在するロケーション情報などから成っている。ディテイルは、上記インデックスに定義されている各オブジェクトのデータをまとめて格納している。
【００２４】
インデックスのブロックについては、〈Ｄｉｓｐｌａｙ〉，＜Ｌａｙｏｕｔ＞
，＜ＤａｔａＯｆｆｓｅｔ＞，＜ＤａｔａＳｉｚｅ＞からなる。＜Ｔｙｐｅ＞はオブジェクトタイプ定義であり、Ｇｒｏｕｐ（データの実体を持たないグループ
），Ｓｔｒｉｎｇ（文字列データ），Ｖａｌｕｅ（数値），Ｇｒａｐｈｉｃ（画像データ）からなる。Ｄｉｓｐｌａｙは表示するかしないかの制御フラグ、Ｌａｙｏｕｔは表示位置情報（座標範囲）、ＤａｔａＯｆｆｓｅｔはＤｅｔａｉｌブロックのオフセット、ＤａｔａＳｉｚｅはＤａｔｉｌブロックの中の対象データのデータサイズである。また文書データフロックとして、ドキュメントのうち、タイムスタンプの電子署名対象となるドキュメントダイジェスト値の計算対象とする部分は、タイムスタンプのオブジェクトを除いた部分「Ａ」となる。ここで
、インデックスとディテイルに該当する部分がハッシュ計算対象部分「記号Ａ」であり、タイムスタンプオブジェクトは記号ＴＳ−ｏｂｊである。即ちタイムスタンプがドキュメント内に組み込まれるようになっている。
【００２５】
図２は外部機関であるセンター側のタイムスタンプ処理センター１０におけるタイムスタンプ生成時のデータフローを示したものであって、図２に示すように
、ステップＳ１でタイムスタンプ発行サーバ１２は、クライアントＡの文書作成端末装置３０からハッシュ値（Ｈ−ｄｏｃ）を受信する。ステップＳ２に進み、タイムスタンプ発行サーバ１２がシステムロックから現在時刻（Ｔ−ｆｉｘ）を取得する。次にステップＳ３に進み、タイムスタンプ発行サーバ１２はクライアントＡ側から受け取ったドキュメントのハッシュ値（Ｈ−ｄｏｃ）と時刻情報（Ｔ−ｆｉｘ）及びタイムスタンプサーバ自身の識別子（ＴＳＳ−ＩＤ）に対して署名生成秘密鍵Ｋｓ1，Ｋｓ2を使って２つの電子署名（ＳＩＧ−１，ＳＩＧ−２）を生成し、ステップＳ４に進み自分自身の識別子と電子署名をクライアントＡの文書作成端末装置３０に返信する。
【００２６】
図３はクライアントＡの文書作成端末装置３０におけるタイムスタンプ生成時のデータフローを示し、ステップＳ５で、ライセンスは正しいもので、且つ、有効期限（Ｔ−ＢＮＤ）はシステム時計と比較して期限内であるか否かを判断し、期限内であればステップＳ６に進み、タイムスタンプ対象ドキュメントにタイムスタンプオブジェクトを生成、初期化し（ＴＳ−ｏｂｊ）、ステップＳ７でタイムスタンプ対象ドキュメントのタイムスタンプオブジェクトを除いた部分「Ａ」に対してハッシュ値を計算する（計算結果をＨとする）。次にステップＳ８に進み、センター側のタイムスタンプ発行サーバ１２にタイムスタンプを要求すると共に、ステップＳ９で、タイムスタンプ発行サーバ１２からタイムスタンプを受信して、タイムスタンプサーバ識別子（ＴＳＳ−ＩＤ），時刻情報（Ｔ−ｆｉｘ），及び、電子署名（ＳＩＧ−１，ＳＩＧ−２）を得る。
【００２７】
次にステップＳ１０に進み、有効期限（Ｔ−ＥＮＤ）は受信した時刻情報（Ｔ−ｆｉｘ）と比較して期限内であるか否かを判断する。期限内であればステップＳ１１に進み、タイムスタンプ対象ドキュメントのタイムスタンプオブジェクト（ＴＳ−ｏｂｊ）に取得したタイムスタンプ情報（ＴＳＳ−ＩＤ，Ｔ−ｆｉｘ，ＳＩＧ−１，ＳＩＧ−２）を代入し、次いでステップＳ１２でランダムなパスワードでドキュメントをリードオンリー（ＲｅａｄＯｎｌｙ）で保存する。上記のステップＳ５とＳ１０で夫々期限内でなければ、ステップＳ１３に進みエラー表示を行う。尚、クライアントＡの文書作成端末装置３０のコンピュータによってタイムスタンプ生成画面操作を行う場合、公開鍵操作として、具体的にはマウス操作でタイムスタンプ領域を操作起動させると、開示された公開鍵署名情報が得られる。
【００２８】
図４はタイムスタンプオフライン検証時のデータフローを示し、図４に示すように、タイムスタンプのオフライン検証にあたって、ステップＳ１４で文書ファイルがリードオンリーになっているか否かを判断する。ファイルがリードオンリーになっておればステップＳ１５に進み、タイムスタンプ対象のタイムスタンプオブジェクトを除いた部分「Ａ」に対してハッシュ値を計算し、その計算結果を（Ｈ−ｎｏｗ）とする。次いでステップＳ１６に進み、クライアントＢの文書作成端末装置４０は、タイムスタンプオブジェクト内の文書ハッシュ値（Ｈ−ｄｏｃ）と計算結果（Ｈ−ｎｏｗ）が同じであるか否かを判断する。同じである場合は次のステップＳ１７に進み、クライアントＢの文書作成端末装置４０における署名検証公開鍵（Ｋｖ1）の操作によって復号された公開鍵署名情報を復号し、復号された公開鍵署名情報を元に、前記原タイムスタンプ情報（Ｔ−ｆｉｘ，Ｈ−ｄｏｃ，ＴＳＳ−ＩＤ）との比較検証（具体的には、原タイムスタンプ情報のハッシュ値と、電子署名（ＳＩＧ−１）の復号化された値との比較検証）が行われて
、その検証結果が正しければステップＳ１８に進み、検証結果がタイムスタンプ発行以降に改変されていない旨を表示する。
【００２９】
上記のステップＳ１４でリードオンリーになっていない場合と、ステップＳ１６で同じでない場合及びステップＳ１７で結果が正しくない場合は、夫々ステップＳ１９に進んでクライアントＢの文書作成端末装置４０が、検証結果がタイムスタンプ発行以降に改変があった旨を表示する。また、クライアントＢ側の文書作成端末装置４０のコンピュータによってタイムスタンプ検証画面操作を行う場合は、公開鍵操作として、具体的にはマス操作でタイムスタンプ領域を操作起動させると、開示された公開鍵署名情報が得られる。
【００３０】
図５及び図６は、センター側で署名検証処理全てを行う場合のタイムスタンプオンライン検証時のデータフローを示すもので、図５はセンター側のタイムスタンプ検証サーバ１３の検証処理を示す。先ず、ステップＳ２０でセンター側でのタイムスタンプの検証に当って、センター側のタイムスタンプ検証サーバ１３がクライアントＢの文書作成端末装置４０から、ドキュメントダイジェスト値（ＴＳ−ｏｂｊ，Ｈ−ｄｏｃ）と時刻情報（ＴＳ−ｏｂｊ，Ｔ−ｆｉｘ）及び電子署名（ＴＳ−ｏｂｊ，ＳＩＧ−２）を含む要求メッセージを受信する。次いで、ステップＳ２１でクライアントＢの文書作成端末装置４０における署名検証秘密鍵（Ｋｖ2）の操作によって復号された電子証明書内の秘密鍵署名情報を復号し、復号された秘密鍵署名情報を元に、前記原タイムスタンプ情報（Ｔ−ｆｉｘ，Ｈ−ｄｏｃ，ＴＳＳ−ＩＤ）との比較検証（具体的には、原タイムスタンプ情報のハッシュ値と、電子署名（ＳＩＧ−２）の復号化された値との比較検証）が行われる。その後ステップＳ２２で検証結果（ＯＫ／ＮＧ）をクライアントＢの文書作成端末装置４０に返信する。この様に電子署名の生成、検証をセンター側で行うようにして、署名検証鍵を非公開にする。
【００３１】
図６は、クライアントＢの文書作成端末装置４０による検証時のデータフローを示し、先ず、ステップＳ２３でタイムスタンプ対象ドキュメントに埋め込まれたタイムスタンプオブジェクトの内、ドキュメントダイジェスト値（ＴＳ−ｏｂｊ，Ｈ−ｄｏｃ）と時刻情報（ＴＳ−ｏｂｊ，Ｈ−ｄｏｃ）と時刻情報  （ＴＳ−ｏｂｊ，Ｔ−ｆｉｘ）とタイムサーバ自身の識別子（ＴＳ−ｏｂｊ，ＴＳＳ−ＩＤ）及び電子署名（ＴＳ−ｏｂｊ，ＳＩＧ−２）を取り出す。この場合に、オンライン検証では、事前に自動的にオフライン検証を行っても良い。ステップＳ２４に進み、センター側のタイムスタンプ検証サーバ１３に、ドキュメントダイジェスト値（ＴＳ−ｏｂｊ，Ｈ−ｄｏｃ）、時刻情報（ＴＳ−ｏｂｊ，Ｔ−ｆｉｘ）、及び、電子署名（ＴＳ−ｏｂｊ，ＳＩＧ−２）に関するタイムスタンプ検証要求を行う。次にステップＳ２５に進み、センター側のタイムスタンプ検証サーバ１３からタイムスタンプ検証結果を受信し、ステップＳ２６で検証結果を表示する。
【００３２】
図７及び図８はセンター側で復号処理のみを行う場合のタイムスタンプオンライン検証時のデータフローを示すもので、図７に示すようにセンター側でのタイムスタンプの検証にあたって、タイムスタンプ検証サーバ１３は、ステップＳ２７でクライアントＢの文書作成端末装置４０から電子署名（ＴＳ−ｏｂｊ，ＳＩＧ−２）に関するタイムスタンプ検証要求メツセージを受信する。次いでステップＳ２８で、クライアントから受け取った電子署名（ＴＳ−ｏｂｊ，ＳＩＧ−２）を署名検証秘密鍵Ｋｖ2で復号し、その結果をＤとする。その後ステップＳ２９に進み復号結果Ｄをクライアント側に返信する。
【００３３】
図８はクライアントＢの文書作成端末装置４０のデータ処理を示すもので、クライアント側でのタイムスタンプのオンライン検証にあたって、図８に示すように、ステップＳ３０でクライアントＢの文書作成端末装置４０は、タイムスタンプ対象ドキュメントに埋め込まれたタイムスタンプオブジェクトの内、ドキュメントダイジェスト値（ＴＳ−ｏｂｊ，Ｈ−ｄｏｃ）と時刻情報（ＴＳ−ｏｂｊ，Ｔ−ｆｉｘ）とタイムスタンプサーバ自身の識別子（ＴＳ−ｏｂｊ，ＴＳＳ−ＩＤ）と電子署名（ＴＳ−ｏｂｊ，ＳＩＧ−２）を取り出す。ステップＳ３１に進み、ドキュメントダイジェスト値（ＴＳ−ｏｂｊ，Ｈ−ｄｏｃ）と時刻情報（ＴＳ−ｏｂｊ，Ｔ−ｆｉｘ）、及び、タイムスタンプサーバ識別子（ＴＳ−ｏｂｊ，ＴＳＳ−ＩＤ）の各データのハッシュ値を計算し、計算結果をＨ−ｎｏｗとする。ステップＳ３２で、クライアントＢの文書作成端末装置４０は、電子署名（ＴＳ−ｏｂｊ，ＳＩＧ−２）に関するタイムスタンプ検証を、センター側のタイムスタンプ検証サーバ１３に要求し、ステップＳ３３でセンターから復号結果Ｄを受信する。次にステップＳ３４に進みＤ＝Ｈ−ｎｏｗか否か、即ち時刻情報やダイジェスト値及びＩＤのチェックを行い、Ｄ＝Ｈ−ｎｏｗであればステップＳ３４で検証結果ＯＫ表示を行い、Ｄ＝Ｈ−ｎｏｗでなければステップＳ３６で検証結果ＮＧ表示を行う。
【００３４】
上述の実施例による電子文書に対するタイムスタンプ押印システムによれば、ドキュメント作成用のアプリケーションソフトのアドオンソフトとしてタイムスタンプ機能を実装したので、タイムスタンプしたいドキユメントをオープンし、アドオンソフトのメニューでタイムスタンプ処理をすれば済むことになる。また
、タイムスタンプがドキュメント内に組み込まれるようになっているので、対象ファイルとタイムスタンプ証明書を別々に管理しなくても済むことになる。更に
、タイムスタンプと対象ドキュメントの改ざんに対するセキュリティを多重化して、検証の段階を複数持つことにより、そのドキユメントの重要性に応じた検証の方法をユーザーが選択することができる。また、電子署名の生成、検証をセンターが行うようにし、且つ、署名検証鍵を非公開にしたことにより、電子署名の有効期限（タイムスタンプの有効期限）を延ばすことができる。
【００３５】
【発明の効果】
以上に説明したように、本発明に係る電子文書に対するタイムスタンプ押印システム、及び、そのプログラム媒体よれば、次のような効果が得られる。即ち、
（１）  文書読み取り、ハッシュ化、外部機関装置への送信、外部機関装置からの証明書受信、電子文書に対する証明書の埋め込み等に対するタイムスタンプ機能を実装したアドオンソフトにより、クライアント側端末に組み込まれた汎用文書作成ソフトで作成された電子文書に対してタイムスタンプ情報を押印することができるので、日常的な文書作成において手軽に日時証明用のタイムスタンプを押すことができる。
（２）  電子文書に書き込まれた電子証明には、時刻情報を証明するための情報が記載されており、文書を他の端末に送付したい場合も、証明書が同時に移動して送られるから、証明書の管理等の間違いが生じないと共に、時刻のオフライン検証を行うのに便利である。
（３）  オフライン検証とオンライン検証が同じ電子証明書に基づいて行えるから、ユーザーは文書の重要性や、必要性に応じて使い分けることが可能であり、検証に係る手数や、コストを適正なレベルに留めることができる。
（４）  本発明に係るプログラム媒体を用いて、そのプログラムをクライアント側端末装置にインストールすることにより、汎用ソフトを使用して作成される電子文書に対する信頼度の高い時刻情報を付加させることができるから、極めて実務的な効果が生じる。
【図面の簡単な説明】
【図１】
本発明の実施例による電子文書に対するタイムスタンプ押印システムの概略構成を示すブロック図。
【図２】
本発明の実施例による電子文書に対するタイムスタンプ押印システムにおけるタイムスタンプ生成時のセンター側のデータフロー図。
【図３】
本発明の実施例による電子文書に対するタイムスタンプ押印システムにおけるタイムスタンプ生成時のクライアントＡ側のデータフロー図。
【図４】
本発明の実施例による電子文書に対するタイムスタンプ押印システムにおけるタイムスタンプオフライン検証時のデータフロー図。
【図５】
本発明の実施例による電子文書に対するタイムスタンプ押印システムにおけるタイムスタンプオンライン検証時のセンター側のデータフロー図。
【図６】
本発明の実施例による電子文書に対するタイムスタンプ押印システムにおけるタイムスタンプオンライン検証時のクライアントＢ側のデータフロー図。
【図７】
本発明の実施例による電子文書に対するタイムスタンプ押印システムにおけるタイムスタンプオンライン検証時のセンター側のデータフロー図。
【図８】
本発明の実施例による電子文書に対するタイムスタンプ押印システムにおけるタイムスタンプオンライン検証時のクライアントＢ側のデータフロー図。
【図９】
本発明の実施例による電子文書に対するタイムスタンプ押印システムにおいて用いるタイムスタンプデータ構造を示す説明図。
【図１０】
文書データ構造を示す説明図。
【符号の説明】
１０              センター側であるタイムスタンプ処理機関
１１              タイムサーバ
１２              タイムスタンプ発行サーバ
１３              タイムスタンプ検証サーバ
２０              電子文書作成機関
３０              クライアントＡの文書作成端末装置
３１              タイムスタンプ要求
３２              タイムスタンプ応答
４０              クライアントＢの文書作成端末装置
５０              通信網
Ｋｓ1             署名生成秘密鍵
Ｋｓ2             署名生成秘密鍵
Ｋｖ1             署名検証公開鍵
Ｋｖ2             署名検証秘密鍵