(57)【要約】 【課題】  特別に複雑な処理を必要とすることなく、且つ、複製した複数のディジタルデータを使うことなく、ディジタルデータ上で可視化された時刻情報とタイムスタンプに埋め込まれた時刻情報を一致させることを可能にしたタイムスタンプ方法を提供する。【解決手段】センタ・サーバ(時刻認証機関１０)にタイムスタンプトークンの発行を要求する際、ディジタルデータへの可視化埋め込み時刻情報とタイムスタンプ時刻の値が異なってしまう可能性の高い不定時間内では、タイムスタンプ発行要求をウエイトし、この不定時間が過ぎるのを待って、タイムスタンプ発行要求をする。【選択図】  図１
2008199365.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも、正確且つ公正な時刻を刻む基準時計と、当該基準時計の時刻情報を配信するためのネットワークに接続可能なタイムサーバ、および、当該基準時計の時刻に由来した時刻情報を含む電子署名を実施するためのネットワークに接続可能なタイムスタンプサーバからなる時刻認証機関と、ネットワークに接続可能でタイムスタンプ生成ソフトウエアがインストールされているクライアントの情報処理装置とを用いてなるタイムスタンプ方法であり、
クライアントが当該情報処理装置で作業しているディジタルデータへのタイムスタンプを実施するにあたり、前記タイムスタンプ生成ソフトウエアを実行すると、タイムスタンプ生成ソフトウエアはタイムスタンプ対象のディジタルデータ自体、あるいは当該ディジタルデータのダイジェスト値を計算して、その結果をネットワーク経由で前記時刻認証機関に送信し、前記時刻認証機関は受信した前記タイムスタンプ対象のディジタルデータまたはダイジェスト値に対して、少なくとも前記タイムサーバが有する前記基準時計に由来する時刻情報と、前記タイムスタンプ対象のディジタルデータのダイジェスト値からなるタイムスタンプ情報を、前記時刻認証機関の所有する秘密鍵で暗号化したタイムスタンプトークンを生成すると共に、当該タイムスタンプトークンをクライアントの情報処理装置に返信し、且つ、タイムスタンプ生成ソフトウエアは前記タイムスタンプ対象のディジタルデータに前記タイムスタンプトークンを追加するか、あるいは、あらかじめ生成しておいた電子署名埋め込み領域に埋め込むことにより、一元化されたタイムスタンプが実施されたディジタルデータを作成、保存するタイムスタンプ方法であって、
各機器の処理能力・動作状態や対象ディジタルデータの種類やサイズ、通信回線の状態等による処理遅延時間及びクライアントの情報処理装置と時刻認証機関のタイムサーバの時刻差により、ディジタルデータへの可視化埋め込み時刻情報とタイムスタンプ時刻の値が異なってしまう可能性の高い不定時間内ではタイムスタンプ発行要求を禁止し、これ等の不定時間が過ぎるのを待ってから、タイムスタンプ発行要求を実行することを特徴とするディジタルデータタイムスタンプ方法。
【請求項２】
前記の不定時間を、埋め込み時刻情報の最下位桁の切り替わりの時刻を間に挟んで設定し、最下位桁切り替わり前の不定時間開始の設定値を前閾値とし、最下位桁切り替わり後の不定時間終了の設定値を後閾値として、
前閾値から切り替わりが生じるまでの間では切り替わった後の時刻を可視化埋め込みデータとしてウエイトし、切り替わった後から後閾値までは現在時刻をそのまま可視化埋め込みデータとしてウエイトして、それぞれ現在時刻に合わせたウエイト時間をセットすることを特徴とする請求項１に記載のディジタルデータタイムスタンプ方法。
【請求項３】
ウエイト中にタイムスタンプ発行要求を実行して、ウエイトとダイジェスト値の計算からタイムスタンプ発行要求の生成とを並列処理することを特徴とする請求項２に記載のディジタルデータタイムスタンプ方法。
【請求項４】
不定時間の閾値を可変として、不定時間を各種パラメータより自動算出することを特徴とする請求項１、２又は３に記載のディジタルデータタイムスタンプ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタルデータの存在と非改ざんを証明するためのディジタルタイムスタンプ方法に関するものであって、具体的には、タイムスタンプが実施されているディジタルデータを情報処理装置で表示しているときに、タイムスタンプに含まれている時刻情報をディジタルデータ上に視認性よく可視化可能な状態に表示できるように工夫した、ディジタルタイムスタンプ方法に関するものである。
【背景技術】
【０００２】
ディジタルデータの存在時刻証明と非改ざん証明を目的としたディジタルタイムスタンプ（以後、タイムスタンプ）の１つの方法として、ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）が策定したＲＦＣ３１６１「シンプルプロトコル」に代表されるセンタ・サーバ型のディジタルタイムスタンプが実用化されている。
【０００３】
この方法によれば、クライアントはネットワーク経由で時刻認証機関に接続可能であって、タイムスタンプ実行ソフトウエアがインストールされている情報処理装置上で処理中、または、処理が完了したディジタルデータに対してタイムスタンプ処理を行うと、タイムスタンプ生成ソフトウエアはまず当該ディジタルデータに電子署名埋め込み領域を生成し、続いてタイムスタンプ対象のディジタルデータから電子署名埋め込み領域を除いたデータ領域に関するハッシュ値などのダイジェスト値を計算して、当該計算結果のダイジェスト値をネットワーク経由で時刻認証機関に送信する。
【０００４】
次いで、時刻認証機関は受信したタイムスタンプ対象のディジタルデータのダイジェスト値に、時刻認証機関が所有する正確且つ公正な時計に由来する時刻情報と、ディジタルデータのダイジェスト値からなるタイムスタンプ情報を、時刻認証機関が所有する秘密鍵で暗号化したデータであるタイムスタンプトークンを生成し、更に、暗号化されたタイムスタンプトークンを復号するための公開鍵を加えるなどして、クライアントの情報処理装置に返信する。
【０００５】
その後、クライアントの所有する情報処理装置およびタイムスタンプ生成ソフトウエアは、受信したタイムスタンプトークンをタイムスタンプ対象のディジタルデータに埋め込んで保存する。
【０００６】
その結果、タイムスタンプが実施されているディジタルデータは、タイムスタンプ検証ソフトウエアがインストールされている情報処理装置上で、そのデータが存在していた時刻およびその後対象ディジタルデータには一切変更または改ざんがなされていないことが立証できる。
【０００７】
近年、以上のような仕組のディジタルタイムスタンプ方法でタイムスタンプを実施したディジタルデータ上に、タイムスタンプを実施した時刻を可視化して記載したいとの要望が生じた。
【０００８】
そこで、ディジタルデータ上へのタイムスタンプに含まれる時刻情報を表示するための書き込み、およびその検証方法として、本出願人は既に特許文献１を提案している。特許文献１では、まず、ディジタルデータ上にタイムスタンプに含まれる時刻情報を可視化するために、時刻認証機関に送信するダイジェスト値は、ディジタルデータ上の時刻情報を表示するための書き込み領域をダイジェスト値計算の対象外として計算する。また、タイムスタンプの検証の際、通常のタイムスタンプの検証に加えて、ディジタルデータ上に表示するために書き込まれている時刻情報とタイムスタンプトークンに含まれている時刻情報を比較する手段を設けることができる。
【０００９】
この方法により、対象ディジタルデータにタイムスタンプに含まれている時刻情報を可視化することが可能となると共に、何らかの手段でディジタルデータ上に可視化されている時刻情報を変更または改ざんしたとしても、その行為を検出することが可能となった。
【００１０】
また、ディジタルデータ上の時刻情報を可視化するための書き込み領域をダイジェスト値計算の対象に含める方法として、本出願人は特許文献２を提案している。特許文献２では、あらかじめ時刻認証機関でタイムスタンプトークンに入れられる時刻情報の時刻範囲を予想して複数の異なる時刻情報を可視化して書き込んだ複数のディジタルデータを用意し、それぞれのダイジェスト値を計算して時刻認証機関に送信する。時刻認証機関は受信した全てのダイジェスト値に対して個々にタイムスタンプトークンを発行するか、タイムスタンプ時刻情報と一致する時刻情報が書き込まれているダイジェスト値にのみタイムスタンプトークンを発行して、クライアントに返信する。クライアントの情報処理装置は、複数のタイムスタンプトークンの中から、可視化した時刻情報と一致する時刻情報が書き込まれているものを選択して埋め込むか、あるいは、タイムスタンプ時刻情報と一致する時刻情報が書き込まれているダイジェスト値にのみ発行されたタイムスタンプトークンを該当するディジタルデータに埋め込むことにより、タイムスタンプ処理を行う。
【００１１】
この方法により、 ディジタルデータ上の時刻情報を表示するための書き込み領域をダイジェスト値計算の対象外にすることなく、ディジタルデータ上で可視化された時刻情報とタイムスタンプに埋め込まれた時刻情報を一致させることが可能となった。
【特許文献１】特開２００５−１５９４９２号公報
【特許文献２】特開２００５−２４４６７８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記の特許文献１では、ディジタルデータ上の時刻情報を表示するための書き込み領域をダイジェスト値計算の対象外とする他の複雑な処理が必要になった。また、特許文献２では、全てのタイムスタンプ発行処理に対して複製した複数のディジタルデータを用意する為、メモリ、時間等のリソースが余分に必要となっていた。
【００１３】
よって、本発明の技術的課題は、特別に複雑な処理を必要とすることなく、且つ、複製した複数のディジタルデータを使うことなく、ディジタルデータ上で可視化された時刻情報とタイムスタンプに埋め込まれた時刻情報を一致させることを可能にしたタイムスタンプ方法を提供することである。  
【課題を解決するための手段】
【００１４】
（１）  上記の技術的課題を解決するために、本発明の請求項１に係るディジタルデータタイムスタンプ方法は、少なくとも、正確且つ公正な時刻を刻む基準時計と、当該基準時計の時刻情報を配信するためのネットワークに接続可能なタイムサーバ、および、当該基準時計の時刻に由来した時刻情報を含む電子署名を実施するためのネットワークに接続可能なタイムスタンプサーバからなる時刻認証機関と、ネットワークに接続可能でタイムスタンプ生成ソフトウエアがインストールされているクライアントの情報処理装置とを用いてなるタイムスタンプ方法であり、
クライアントが当該情報処理装置で作業しているディジタルデータへのタイムスタンプを実施するにあたり、前記タイムスタンプ生成ソフトウエアを実行すると、タイムスタンプ生成ソフトウエアはタイムスタンプ対象のディジタルデータ自体、あるいは当該ディジタルデータのダイジェスト値を計算して、その結果をネットワーク経由で前記時刻認証機関に送信し、前記時刻認証機関は受信した前記タイムスタンプ対象のディジタルデータまたはダイジェスト値に対して、少なくとも前記タイムサーバが有する前記基準時計に由来する時刻情報と、前記タイムスタンプ対象のディジタルデータのダイジェスト値からなるタイムスタンプ情報を、前記時刻認証機関の所有する秘密鍵で暗号化したタイムスタンプトークンを生成すると共に、当該タイムスタンプトークンをクライアントの情報処理装置に返信し、且つ、タイムスタンプ生成ソフトウエアは前記タイムスタンプ対象のディジタルデータに前記タイムスタンプトークンを追加するか、あるいは、あらかじめ生成しておいた電子署名埋め込み領域に埋め込むことにより、一元化されたタイムスタンプが実施されたディジタルデータを作成、保存するタイムスタンプ方法であって、
各機器の処理能力・動作状態や対象ディジタルデータの種類やサイズ、通信回線の状態等による処理遅延時間及びクライアントの情報処理装置と時刻認証機関のタイムサーバの時刻差により、ディジタルデータへの可視化埋め込み時刻情報とタイムスタンプ時刻の値が異なってしまう可能性の高い不定時間内ではタイムスタンプ発行要求を禁止し、これ等の不定時間が過ぎるのを待ってから、タイムスタンプ発行要求を実行することを特徴としている。
【００１５】
（２）  また、本発明の請求項２に係るディジタルデータタイムスタンプ方法は、前記の不定時間を、埋め込み時刻情報の最下位桁の切り替わりの時刻を間に挟んで設定し、最下位桁切り替わり前の不定時間開始の設定値を前閾値とし、最下位桁切り替わり後の不定時間終了の設定値を後閾値として、
前閾値から切り替わりが生じるまでの間では切り替わった後の時刻を可視化埋め込みデータとしてウエイトし、切り替わった後から後閾値までは現在時刻をそのまま可視化埋め込みデータとしてウエイトして、それぞれ現在時刻に合わせたウエイト時間をセットすることを特徴としている。
【００１６】
（３）  また、本発明の請求項３に係るディジタルデータタイムスタンプ方法は、ウエイト中にタイムスタンプ発行要求を実行して、ウエイトとダイジェスト値の計算からタイムスタンプ発行要求の生成とを並列処理することを特徴としている。
【００１７】
（４）  また、本発明の請求項４に係るディジタルデータタイムスタンプ方法は、不定時間の閾値を可変として、不定時間を各種パラメータより自動算出することを特徴としている。
【００１８】
上記（１）で述べた請求項１に係る手段によれば、不定時間内ではタイムスタンプ発行要求を禁止し、不定時間内が過ぎるのを待ってから、タイムスタンプ発行要求を実行するため、特別な処理を講じることなく、タイムスタンプ要求と発行の処理を正確に行うことができる。即ち、可視化時刻は分単位の時刻データを対象とするのに対して、タイムスタンプ要求の実行から時刻認証機関が受信するまでの処理時間が実際には短いため、ディジタルデータ内で可視化された（分単位の）時刻とタイプスタンプ時刻が相違してしまうのは分切り替わり前後の数秒程度だけに限られる。よって、この不定の時間以外は特別な処置は不要でタイムスタンプ要求と発行の処理を普通に行えば良い。
【００１９】
上記（２）で述べた請求項２に係る手段によれば、不定時間内では切り上げとウエイトにより、効率的なタイムスタンプ要求を可能にする。また、現在時刻に合わせた（応じた）ウエイト時間をセットすることにより、無駄な待ち時間をできるだけ少なくすることができると共に、プログラムをシンプルにすることができる。即ち、上記（１）で述べた手段では、最大で前閾値から後閾値までの時間を無為に待たなければならなかったが、より細かなコントロールにより、無駄な待ち時間をより少なくすることを可能にする。
【００２０】
上記（３）で述べた手段によれば、変動の大きいリクエストデータ作成（主にダイジェスト値算出）時間をウエイト時間に取り込むことで、全体の処理時間の変動を少なくすることができると共に、無駄な待ち時間を少なくできる。即ち、ウエイト中にタイムスタンプ発行要求を実行して、並列処理することにより、
リクエスト作成時間＜ウエイトの場合、リクエスト作成時間がまるまる無くなる。
リクエスト作成時間＞ウエイトの場合、リクエスト作成時間による遅れをより少なくできる。
【００２１】
上記（４）で述べた手段によれば、上記（１）〜（３）で述べた手段では不定時間を予め設定された固定の値としていたが、それを、対象ディジタルデータのファイルサイズや種類及び処理遅延時間の経験値（統計値）等より自動的に算出して、セットすることを可能にする。
【発明の効果】
【００２２】
以上述べた次第で、本発明に係るディジタルデータタイムスタンプ方法によれば、第三者である時刻認証機関が発行するタイムスタンプに含まれる時刻情報を、タイムスタンプ対象のディジタルデータ上に可視化して表示することを可能にするが、特に、工数・時間・処理ソース・パフォーマンス等の効率を全てアップさせることができるものであって、時刻認証機関側のシステムは従来の標準システムのまま変更する必要がなく、クライアント側の情報処理装置側の構成のみを変更するだけで、タイムスタンプ標準プロトコル（ＲＦＣ３１６１等）に準拠したシステムを提供することができる利点を備えている。
【発明を実施するための最良の形態】
【００２３】
以下に、上述した本発明に係るディジタルデータタイムスタンプ方法の実施の形態を図面と共に説明すると、図１は本発明を実施するシステム構成の一例を示したものであって、図中、１０は時刻認証機関であり、正確且つ公正な時刻を刻む原子時計などの基準時計１１と、基準時計１１から正確な時刻情報を受け、その時刻情報に由来したタイムスタンプトークンを生成発行したりユーザー情報を管理するタイムスタンプサーバ１２と、ネットワーク３０を介して基準時計１１に由来する現在時刻をクライアントの情報処理装置２０に配信するタイムサーバ１３で構成されている。
【００２４】
クライアントの情報処理装置２０は、ネットワーク３０に接続可能であり、ディジタルデータを扱うための各種アプリケーションソフトウエアおよびタイムスタンプ生成ソフトウエアがインストールされている。さらに情報処理装置２０は、ネットワーク３０を介して、時刻認証機関１０のタイムサーバ１３に時刻校正の要求を送ることで基準時計１１に由来した正確且つ公正な現在時刻を取得したり、タイムスタンプサーバ１２へユーザー情報やタイムスタンプの対象ディジタルデータのダイジェスト値を送信したり、発行されたタイムスタンプトークンの受信などを行う。
【００２５】
そして、上記タイムサーバ１３による情報処理装置２０の時刻校正処理は、定期的に実施されたり、タイムスタンプ生成ソフトウエアが実行される毎や、タイムスタンプを実行する直前に毎回実施される。
【００２６】
図２は、本発明のディジタルデータタイムスタンプ方法におけるクライアント側でのデータ加工処理を示す説明図であって、図２の処理では、まず、クライアントの情報処理装置２０でタイムスタンプ対象のディジタルデータ２１を開く。つぎに、情報処理装置２０にインストールされているタイムスタンプ生成ソフトウエアを実行すると、タイムスタンプ内容を可視化した仮の印影２２が表示されるので、任意の位置に配置したのち、タイムスタンプ発行の実行命令を入力する。このとき、印影に記載される文字形態、色、サイズなどはこの時点で決定してもよいし、あらかじめ定めておいてもよい。
【００２７】
図２では、実行した時刻を２００６年９月２５日１４時３８分としている。前述のように、この処理を開始する直前に情報処理装置２０およびインストールされているタイムスタンプ生成ソフトウエアは、時刻認証機関１０のタイムサーバ１３にネットワークを介して接続し、情報処理装置２０の内部時計を校正する場合もある。また、タイムスタンプを要求している情報処理装置および操作者が、時刻認証機関と契約しているクライアントであるか否かを確認するためにクライアントＩＤやパスワードを要求してもよい。
【００２８】
次に、情報処理装置２０とインストールされているタイムスタンプ生成ソフトウエアは、タイムスタンプ対象のディジタルデータ２１の複製を生成し、仮の印影が配置された位置と同じ位置に、タイムスタンプ実行時刻が記録されているタイムスタンプの印影を書き込んだ上、データのダイジェスト値を計算する。すなわち、図２においては、２００６年９月２５日１４時３８分の時刻情報を可視化して書き込んだ複製データ２３を生成すると同時に、そのディジタルデータのダイジェスト値２４を求め、その結果をネットワーク３０を介して時刻認証機関１０のタイムスタンプサーバ１２に送信し、書き込んだ時刻を事後認知可能なように、時刻情報を関連付けてデータ２３を情報処理装置２０または当該情報処理装置に接続された外部記憶装置（図示省略）に保存する。
【００２９】
図３は上述した本発明の主たる処理手順を示したメインフローチャートであって、ステップＳ１，Ｓ２及びＳ１０は操作者の処理を示し、ステップＳ３，Ｓ４，Ｓ８，Ｓ９，Ｓ１１，Ｓ１２，Ｓ１３，Ｓ１５、Ｓ１６、Ｓ１７及びＳ１８は、クライアントの情報処理装置２０のタイムスタンプ生成ソフトウエアによる処理を示し、更に、ステップＳ５，Ｓ６，Ｓ７及びＳ１４は、時刻認証機関１０による処理を示す。
【００３０】
図３に示した処理は、タイムスタンプ生成処理のメインフローを実行することによってスタートするものであって、ステップＳ１〜Ｓ１０は前記特許文献２に記載の処理と同一であるため、その詳細な説明は省略する。本発明ではステップＳ１１にて「タイムスタンプ要求生成」処理をコールしたところから、具体的な処理が実行される。
【００３１】
図４、図５、図６に示した各フローチャートは、後述するようにステップＳ１１のサブルーチンであって、各サブルーチンでタイムスタンプ要求が生成されると、ステップＳ１２でこのタイムスタンプ要求を時刻認証機関１０に送信して、ステップＳ１３で時刻情報を埋め込んだディジタルデータを保存すると共に、埋め込んだ時刻情報を当該ディジタルデータに対応させて記憶する。
【００３２】
次いで、ステップＳ１４に進んでタイムスタンプ要求を受信した時刻認証機関１０は、タイムスタンプトークンを生成すると共に、秘密鍵により暗号化し、公開鍵と時刻情報を付けて返信する。その後、ステップＳ１５、Ｓ１６に進んで、タイムスタンプトークンを受信したクライアントの情報処理装置２０が、返信されたタイムスタンプの時刻情報と、タイムスタンプ対象ディジタルデータに対応して記憶された（可視化して埋め込んだ）時刻情報データが一致するか否かをチェックする。
【００３３】
一致した場合は、ステップＳ１７に進んでそのまま受信したタイムスタンプトークンを基にタイムスタンプ付与（生成）処理を実行するが、不一致の場合はステップＳ１１に戻って「タイムスタンプ発行要求」の処理から再度繰り返す。
【００３４】
尚、図には記載していないが、例えば３回連続でエラーが発生した場合にはタイムスタンプ処理を中断して、ネットワーク障害等のシステム異常を操作者に通知する。各クライアントからのアクセスが集中した場合や、大量のデータ転送が同時に行われた場合等、ネットワークが介在したシステムでは不測の事態が発生することが考えられるため、この中断処理が必要となる。
【００３５】
図４は、前記図３で示したメインフローチャートにおけるステップＳ１１のサブルーチンであって、前記請求項１に記載した本発明の実施例を説明したものである。
【００３６】
図４において、始めのステップＳ２１で、クライアントの情報処理装置２０は内部時計の現在時刻を読み込み、次のステップＳ２２で読み込んだ現在時刻が「不定時間」の範囲内であるか否かが判定され、ＹＥＳの場合は再びステップＳ２１に戻って処理を繰り返し、ＮＯの場合は次のステップＳ２３に進む。
【００３７】
不定時間の具体的な内容は、［クライアント時刻取得〜時刻画像埋め込み〜ダイジェスト値算出〜タイムスタンプリクエストの作成〜サーバーへ送信〜サーバー受信〜サーバー時刻取得の間の遅延時間］＋［クライアントとサーバーの時刻差］。例えばクライアント時刻取得からサーバー時刻取得までの遅延時間が0.60秒で、クライアントとサーバーの時刻差が-0.20秒だった場合、不定時間は0.40秒となる。
そこで、秒の桁が59.50秒の時にクライアント時刻取得からスタートするとサーバー時刻取得時には0.60秒の遅れより、0.10秒（60.10秒）になっている、これに対しサーバーの時刻が0.20秒遅れているので、サーバーでの取得時刻は59.50秒となって、分の桁は同じになる。
次に、秒の桁が59.61秒の時にクライアント時刻取得からスタートするとサーバー時刻取得時には0.60秒の遅れより、0.21秒（60.21秒）になっている、これに対しサーバーの時刻が0.20秒遅れているので、サーバーでの取得時刻は0.01秒（60.01秒）となって、分の桁は切り上がって＋１されているので、クライアントにて埋め込まれた時刻と異なる。
よって、59.60秒から59.99秒の範囲がこの場合の不定時間に相当する。
実際には、これらの時間は対象とするディジタルデータやシステム条件、回線の状態により変動するため固定の値とはならない。しかし、ある程度固定のシステムにて、充分のマージンを見込めば、不定時間をある範囲内に設定することが可能で、不定時間の範囲外では高い確率で埋め込み時刻とタイムスタンプ時刻が一致する。
特に近年のシステムでは各種機器や回線が高速に安定しているため、実際には数秒程度を見込むようになっている。
【００３８】
上記のステップＳ２３では、対象ディジタルデータの読み込みを行い、次いで、図示の如く、現在時刻情報を対象データ上の配置位置に書き込み（ステップＳ２４）、可視化時刻情報を埋め込んだ対象データのダイジェスト値を算出（ステップＳ２５）、ダイジェスト値を基にタイムスタンプ要求を生成（ステップＳ２６）、の各処理が行われる。
【００３９】
次に、図５は前記図３に示したメインフローチャートのステップＳ１１のサブルーチンであって、前記請求項２に記載した本発明の実施例を説明したものである。
【００４０】
図５において、例えば不定時間を可視化して埋め込む時刻情報の最下位桁（分）の切り替わりの時刻（00秒）を間に挟んで設定し、最下位桁（分）切り替わり前の不定時間開始の設定値を前閾値Ｓａ秒、最下位桁（分）切り替わり後の不定時間終了の設定値を後閾値Ｓｂ秒とすると、ステップＳ３１でクライアントの情報処理装置の内部時計より現在時刻を読み込み、現在時刻情報としてＣＴに記憶して、次のステップＳ３２に進む。
ここで、現在時刻情報ＣＴは、年・月・日・時・分・秒に分けて構成され、年はＣＴｙ、月はＣＴｍｏ、日はＣＴｄ、時はＣＴｈ、分はＣＴｍ、秒はＣＴsに振り分けられる。
【００４１】
ステップＳ３２で現在時刻情報ＣＴ内の（現在時刻の）秒の値ＣＴｓがＳａ ＜ ＣＴｓ ＜ 60（00秒）の場合はステップＳ３３に進んで、現在時刻情報ＣＴの分の値ＣＴｍを切り上げた（１分プラスした）時刻を新たな現在時刻情報として、ステップＳ３４に進んで、ウエイトタイマーの設定値：Ｗに(60-ＣＴｓ)×1.5をセットする。
【００４２】
しかし、ステップＳ３２がＮＯで、ステップＳ３５で現在時刻情報ＣＴ内の（現在時刻の）秒の値ＣＴｓが0 ≦ ＣＴｓ ＜Ｓｂの場合は、ステップＳ３６に進んで現在時刻情報ＣＴはそのままで、ウエイトタイマーの設定値：ＷにＳｂ-ＣＴｓをセットし、次いで、ステップＳ３７でセットされた設定値Ｗによるウエイト時間だけ処理を停止して待機する。
【００４３】
その後、ウエイト終了後処理を再開し、対象ディジタルデータ読込み（ステップＳ３８）から、現在時刻情報ＣＴの分の桁まで（秒を除いた）を埋め込み（ステップＳ３９）、ダイジェスト値の算出（ステップＳ４０）、タイムスタンプ要求の生成（ステップＳ４１）を行う。
【００４４】
尚、不定時間内でなかった場合、即ち、ステップＳ３２とＳ３５でどちらもＮＯだった場合は、分の切り上げとウエイトの処理を飛ばして、ステップＳ３８へ続く。
【００４５】
更に上記請求項２の実施例を、図５のフローチャートと共に具体的に説明すると、以下の通りである。
Ｓａ＝５７秒、Ｓｂ＝１．５０秒と設定されているとする。
（１）現在時刻が13時59分57.02秒だった場合（本来は日付も含むがここでは省略して説明）、  
ステップＳ３１で１３：５９：５７．０２が現在時刻情報ＣＴにセットされ、
ステップＳ３２でＣＴｓの57.02秒がＳａ＝５７秒より大きく、６０未満なので、ＹＥＳの判定、
ステップＳ３３で分ＣＴｍを切り上げた（１分プラスした）１４：００を新たな現在時刻情報ＣＴとする。
ステップＳ３４で、Ｗ＝(60-ＣＴｓ)×1.5＝(60-57.02)×1.5＝4.47秒をタイマー値にセット、
ステップＳ３７で4.47秒待機し、
ステップＳ３８−４１で現在時刻情報ＣＴの分の桁までの１４：００よりタイムスタンプ要求を生成。
（２）現在時刻が14時00分01.45秒だった場合、
ステップＳ３１で１４：００が現在時刻情報ＣＴにセットされ、
ステップＳ３２でＣＴｓの01.45秒がＳａ＝５７秒より小さい値にてＮＯの判定、
ステップＳ３５でＣＴｓの01.45秒が０秒より大きく、Ｓｂ＝１．５０秒未満なので、ＹＥＳの判定、現在時刻情報ＣＴは変更なし。
ステップＳ３６で、Ｗ＝Ｓｂ-ＣＴｓ＝1.50-01.45＝0.05秒をタイマー値にセット、
ステップＳ３７で0.05秒待機し、
ステップＳ３８−４１で現在時刻情報ＣＴの分の桁までの１４：００よりタイムスタンプ要求を生成。
（３）現在時刻が13時59分56.55秒だった場合、
ステップＳ３１で１３：５９が現在時刻情報ＣＴにセットされ、
ステップＳ３２でＣＴｓの56.5がＳａ＝５７秒より小さい値にてＮＯの判定、  ステップＳ３５でＣＴｓの56.55秒がＳｂ＝１．５０秒より大きい値にてＮＯの判定、
現在時刻情報ＣＴは変更なし、タイマーなしでＳ３８へ、
ステップＳ３８−４１で現在時刻情報ＣＴの分の桁までの１３：５９よりタイムスタンプ要求を生成。
【００４６】
以上のことから、下記の点が判明した。即ち、
請求項２に係る実施例では、内部時計の読込みが最初の1回だけなのでシステムの処理が安定する。（請求項１に係る実施例では待機中にステップＳ２１で何回も読込む。）また、内部時計の読込みはＯＳ等の上位のシステム制御ソフトを呼び出すため、制御がそちらに渡り処理遅延等の要因になる場合が考えられる。できるだけ他に制御を渡さず、自らのプログラム内だけでコントロールする方が安定した処理が行える。不足の事態や遅延を招くことが少ない。
【００４７】
前述した本発明の請求項３は、ウエイトと、ダイジェスト値の計算からタイムスタンプ要求の生成とを並行して行う点を特徴とするものであって、図６は前記図３に示したフローチャートのステップＳ１１のサブルーチンで、上記請求項３に記載した本発明の実施例を説明したものである。
【００４８】
図６において、ステップＳ５７（カウントスタート）の手前までは、上述した図５に示した請求項２に係る発明のフローチャート（ステップＳ３１〜３６）と同一であるため、その説明を省略して、以下、ステップＳ５７以降の処理に付き説明することになる。
【００４９】
即ち、ステップＳ５７では、セットされた設定値Ｗによるバックグラウンドでのタイマーカウントをスタートさせる。タイマーカウント機能はＯＳ等上位のシステム制御ソフトが標準で装備しているモジュール等を利用する。次いで、ウエイトタイマーのカウントをバックグラウンドで実行させておいて、対象ディジタルデータ読込みから、時刻情報の埋め込み、ダイジェスト値の算出、タイムスタンプ要求の生成までの処理（ステップＳ５８〜Ｓ６１）を並行して行う。
【００５０】
次に、ステップＳ６２に進んで、バックグラウンドで並行してカウントされていたカウントの値をＯＳ等上位のシステム制御ソフトから読込み、ステップＳ６３でカウントが終了しているかチェックする。先にウエイトタイマーのカウントが終わっていたら、即メインの処理に戻るが、カウントが終わっていなかったら、ステップＳ６２のカウント値読込みに戻り、ループしながら残りのカウントが終わるのを待ってから、メインの処理に戻る。
【００５１】
上記請求項１〜３に係る発明では、不定時間を予め設定された固定の値としているが、前述した本発明の請求項４に係るタイムスタンプ方法では、不定時間を各種パラメータより自動的に算出してセットする方式が採用されている。
【００５２】
図７と図８は、ファイルサイズや種類より算出された不定時間と不定時間定数の一覧の実施例を示したものであって、ファイルの種別をファイルの拡張子より判断し、ＰＤＦやＤＯＣ、ＸＬＳ、ＴＩＦ、ＪＰＧ、ＨＴＭ、その他のファイル種類毎にファイルサイズによる不定時間の一覧を用意しておく方法では、例えば、３ＭＢのＰＤＦファイルを対象とした時は、図７に示したファイル種類毎、ファイルサイズによる不定時間の一覧より、Ｓａが１．２秒、Ｓｂが０．３５秒となる。
【００５３】
定数Ｔａ及びＴｂを各ファイル種類に固有の値とし、
Ｓａ＝ファイルサイズ×Ｔａ、Ｓｂ＝ファイルサイズ×Ｔｂという計算式で算出する方法では、例えば、２ＭＢのＤＯＣファイルを対象とした時は、図８に示したファイル種類毎の不定時間定数の一覧よりＴａが１．９秒／ＭＢ、Ｔｂが０．９秒／ＭＢなので、  
Ｓａ＝２ＭＢ×１．９秒／ＭＢ＝３．８秒
Ｓｂ＝２ＭＢ×０．９秒／ＭＢ＝１．８秒  となる。
【００５４】
更に、図９は通信遅延時間やダイジェスト値の計算に掛かった時間の経験値より、不定時間を算出する場合に使用するタイムスタンプ履歴一覧の実施例を示したものであって、図示した如く、過去のタイムスタンプ発行履歴をタイムスタンプ発行時刻差と共に記録されていて、過去の決められた回数や決められた時間内の平均値にプラスアルファのマージンを付与して計算する仕組みに成っている。
【００５５】
更に、対象ファイルの種類やファイルサイズを履歴に含め、これらにより履歴を選別した上で、上記のように不定時間を算出する方法も考えられるが、この時、極端に時刻差の大きいエラーデータは除外する。また、エラーになった履歴のみを参照し、このデータを基に不定時間を補正する方法も考えられる。（極端に時刻差の大きいデータは除外する。）
更に、ウエイト時間も同様に各種パラメータより自動的に算出してセットする方式も考えられる。
即ち、ウエイト時間を
Ｗ＝（６０−ＣＴｓ）×１．５（Ｓ３４、Ｓ５４）、Ｗ＝Ｓｂ−ＣＴｓ（Ｓ３６、Ｓ５６）としているが、例えば
Ｗ＝（６０−ＣＴｓ）×Ｋａ
Ｗ＝（Ｓｂ−ＣＴｓ）×Ｋｂ
という算出式にし、可変定数Ｋａ，Ｋｂを不定時間と同様に各種パラメータより自動的に算出する方式。
また、他の計算式も考えられる。
【００５６】
尚、上述した図７、図８、図９に示した実施例において、分単位までの可視化時刻埋め込みを前提として分の切り上げについての例を示しましたが、秒単位を含め各種時間単位でも同様に実施可能であることは勿論である。
【図面の簡単な説明】
【００５７】
【図１】本発明のシステムを示すブロック図。
【図２】本発明の実施例におけるタイムスタンプを要求するためのクライアント側でのデータ加工処理を示す説明図。
【図３】本発明の動作を説明したメインフローチャート。
【図４】本発明の請求項１に記載したタイムスタンプ要求生成処理の動作を説明したフローチャート。
【図５】本発明の請求項２に記載したタイムスタンプ要求生成処理の動作を説明したフローチャート。
【図６】本発明の請求項３に記載したタイムスタンプ要求生成処理の動作を説明したフローチャート。
【図７】本発明の請求項４に記載した不定時間を算出する場合に用いるファイル種類毎、ファイルサイズによる不定時間一覧の実施例を表にして示した図。
【図８】本発明の請求項４に記載した不定時間を算出する場合に用いるファイル種類毎、の不定時間定数一覧の実施例を表にして示した図。
【図９】本発明の請求項４に記載した不定時間を算出する場合に用いるタイムスタンプ履歴一覧の実施例を表にして示した図。
【符号の説明】
【００５８】
１０          時刻認証機関
１１          基準時計
１２          タイムスタンプサーバ
１３          タイムサーバ
２０          クライアントの情報処理装置
２１          タイムスタンプ対象のディジタルデータ
２２          タイムスタンプの仮の印影 
２３          タイムスタンプ対象のディジタルデータの複製のデータ
２４          複製のデータに対応するダイジェスト値
【図１】
2008199365.tif 000003
【図２】
2008199365.tif 000004
【図３】
2008199365.tif 000005
【図４】
2008199365.tif 000006
【図５】
2008199365.tif 000007
【図６】
2008199365.tif 000008
【図７】
2008199365.tif 000009
【図８】
2008199365.tif 000010
【図９】
2008199365.tif 000011