(57)【特許請求の範囲】
【請求項１】
時刻を出力する時計装置と、
更正時刻発生装置から更正時刻を取得する更正時刻取得手段と、
前記取得した更正時刻を用いて、前記時計装置が出力する時刻のうち、セキュリティを要する所定の単位以上の単位の時刻の更正は行わずに前記所定の単位よりも小さい単位の時刻を更正する時刻更正手段と、
前記時計装置が出力した時刻のうち、前記所定の単位以上の時刻を取得する第１の時刻取得手段と、
基準時刻を配信する基準時刻配信サーバから基準となる時刻を受信する基準時刻受信手段と、
前記所定の単位以上の時刻において前記第１の時刻取得手段で取得した時刻と前記受信した基準時刻とが一致することを確認することにより、前記時計装置が所定の範囲の精度で作動していることを検証する検証手段と、
クライアント端末から、時刻証明対象となる証明対象情報を受信する証明対象情報受信手段と、
前記精度を検証した前記時計装置が出力する時刻を用いて、前記受信した証明対象情報の時刻証明情報を生成する時刻証明情報生成手段と、
前記生成した時刻証明情報をクライアント端末に送信する時刻証明情報送信手段と、
を具備したことを特徴とする時刻証明サーバ。
【請求項２】
前記検証手段は、検証に用いる基準時刻が、前回の検証で用いた基準時刻よりも後の時刻であることが確認できた場合に、前記時計装置が所定の範囲の精度にて作動していると検証することを特徴とする請求項１に記載の時刻証明サーバ。
【請求項３】
前記時刻証明情報生成手段は、前記更正した時刻を用いて前記時刻証明情報を生成することを特徴とする請求項１、又は請求項２に記載の時刻証明サーバ。
【請求項４】
前記所定の単位を変更する所定単位変更手段を具備したことを特徴とする請求項１、請求項２、又は請求項３に記載の時刻証明サーバ。
【請求項５】
前記所定単位変更手段は、前記所定の単位を第１の単位に設定し、前記検証手段が前記第１の単位を用いて前記時計装置の精度を検証した場合に、前記第１の単位よりも小さい第２の単位に前記所定の単位を設定することを特徴とする請求項４に記載の時刻証明サーバ。
【請求項６】
前記検証手段と前記時刻証明情報生成手段が動作する第１の動作モードと、前記時刻更正手段が動作する第２の動作モードと、を切り替える動作モード切替手段を具備し、
前記動作モード切替手段は、それぞれの動作モードにて動作が完了した後に動作モードを切り替えることを特徴とする請求項３に記載の時刻証明サーバ。
【請求項７】
前記第１の動作モードは、前記検証手段が前記時計装置を検証する検証モードと、前記時刻証明情報生成手段が前記時刻証明情報を生成する時刻証明情報生成モードと、から成り、
前記動作モード切替手段は、前記検証モードと前記時刻証明情報生成モードの切替において、モード切替元の動作が完了した後にモード切替先に動作モードを切り替えることを特徴とする請求項６に記載の時刻証明サーバ。
【請求項８】
時刻を出力する時計装置を備えたコンピュータにおいて行う時刻証明方法であって、前記コンピュータは、更正時刻取得手段と、時刻更正手段と、第１の時刻取得手段と、基準時刻受信手段と、検証手段と、証明対象情報受信手段と、時刻証明情報生成手段と、時刻証明情報送信手段と、を備えており、
前記更正時刻取得手段によって、更正時刻発生装置から更正時刻を取得する更正時刻取得ステップと、
前記時刻更正手段によって、前記取得した更正時刻を用いて、前記時計装置が出力する時刻のうち、セキュリティを要する所定の単位以上の単位の時刻の更正は行わずに前記所定の単位よりも小さい単位の時刻を更正する時刻更正ステップと、
前記第１の時刻取得手段によって、前記時計装置が出力した時刻のうち、前記所定の単位以上の時刻を取得する第１の時刻取得ステップと、
前記基準時刻受信手段によって、基準時刻を配信する基準時刻配信サーバから基準となる時刻を受信する基準時刻受信ステップと、
前記検証手段によって、前記所定の単位以上の時刻において前記第１の時刻取得手段で取得した時刻と前記受信した基準時刻とが一致することを確認することにより、前記時計装置が所定の範囲の精度で作動していることを検証する検証ステップと、
前記証明対象情報受信手段によって、クライアント端末から、時刻証明対象となる証明対象情報を受信する証明対象情報受信ステップと、
前記時刻証明情報生成手段によって、前記精度を検証した前記時計装置が出力する時刻を用いて、前記受信した証明対象情報の時刻証明情報を生成する時刻証明情報生成ステップと、
前記時刻証明情報送信手段によって、前記生成した時刻証明情報をクライアント端末に送信する時刻証明情報送信ステップと、
を含むことを特徴とする時刻証明方法。
【請求項９】
前記コンピュータは、所定単位変更手段を備え、
前記所定単位変更手段によって、前記所定の単位を第１の単位に設定し、前記検証ステップで前記第１の単位を用いて前記時計装置の精度を検証した場合に、前記第１の単位よりも小さい第２の単位に前記所定の単位を設定する所定単位変更ステップを含むことを特徴とする請求項８に記載の時刻証明方法。
【請求項１０】
時刻を出力する時計装置を備えたコンピュータで時刻を証明する機能を実現する時刻証明プログラムであって、
更正時刻発生装置から更正時刻を取得する更正時刻取得機能と、
前記取得した更正時刻を用いて、前記時計装置が出力する時刻のうち、セキュリティを要する所定の単位以上の単位の時刻の更正は行わずに前記所定の単位よりも小さい単位の時刻を更正する時刻更正機能と、
前記時計装置が出力した時刻のうち、前記所定の単位以上の時刻を取得する第１の時刻取得機能と、
基準時刻を配信する基準時刻配信サーバから基準となる時刻を受信する基準時刻受信機能と、
前記所定の単位以上の時刻において前記第１の時刻取得機能で取得した時刻と前記受信した基準時刻とが一致することを確認することにより、前記時計装置が所定の範囲の精度で作動していることを検証する検証機能と、
クライアント端末から、時刻証明対象となる証明対象情報を受信する証明対象情報受信機能と、
前記精度を検証した前記時計装置が出力する時刻を用いて、前記受信した証明対象情報の時刻証明情報を生成する時刻証明情報生成機能と、
前記生成した時刻証明情報をクライアント端末に送信する時刻証明情報送信機能と、
をコンピュータで実現する時刻証明プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻証明サーバ、時刻証明方法、及び時刻証明プログラムに関し、例えば、電子文書に対してタイムスタンプを発行するものに関する。
【背景技術】
【０００２】
近年の情報技術の急激な進歩に伴って、公文書や私文書をデジタル情報化した電子文書にて調製する所謂ペーパレス化が推進されている。
また、このようにして作成された電子文書に付与される法的な地位を整備するため電子文書法が施行されようとしている。
このようにして作成され保存される電子文書では発行日などの時刻証明（日付証明）が重要であり、時刻証明を行うタイムスタンプシステムが利用されている。【０００３】
図１３は、従来のタイムスタンプシステムのシステム構成を説明するためのブロック図である。
タイムスタンプシステム１００は、時刻配信局に設置された時刻配信サーバ１０１、時刻認証局に設置されたタイムスタンプサーバ１０２、及びクライアント端末１０３、１０３、・・・などから構成されている。【０００４】
タイムスタンプサーバ１０２はタイムスタンプを発行するサーバであり、クライアント端末１０３は、タイムスタンプの発行を受ける端末装置である。タイムスタンプ発行の手順は次の通りである。【０００５】
クライアント端末１０３は、時刻証明対象である電子文書のハッシュ値をタイムスタンプサーバ１０２に送信する。
タイムスタンプサーバ１０２は、クライアント端末１０３からハッシュ値を受信し、内蔵する内部クロックが出力する時刻と受信したハッシュ値に対して電子署名を生成し、これをタイムスタンプとしてクライアント端末１０３に送信する。【０００６】
時刻配信サーバ１０１は、タイムスタンプシステム１００で使用する時刻の基準となる時刻を管理及び配信するサーバである。
時刻配信サーバ１０１は、例えば、基準時刻を計測するための原子時計を備えており、この原子時計が出力する基準時刻をタイムスタンプサーバ１０２に配信する。
タイムスタンプサーバ１０２は、時刻配信サーバ１０１から基準時刻を受信し、これを用いて内部クロックを更正する。【０００７】
基準時刻の改竄と通信経路の遅延を防ぐために、タイムスタンプサーバ１０２と時刻配信サーバ１０１の通信経路は、例えば、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）などの技術を用いて暗号化され、通信プロトコルとしてＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）を用いている。なお、ＮＴＰは時刻の配信用に標準化されたプロトコルであり、通信経路による遅延を補正することができる。【０００８】
なお、図１３では、タイムスタンプサーバ１０２が１台だけ記されているが、複数のタイムスタンプサーバ１０２が時刻配信サーバ１０１に接続されるように構成することができる。【０００９】
このようなタイムスタンプシステムを構成する技術として、次の信頼されるサードパーティクロックおよび信頼されるローカルクロックを提供するためのシステムおよび方法がある。【００１０】
【特許文献１】特表２００３−５１９４１７公報
【００１１】
この技術は、時刻配信サーバ１０１としてマスタクロックシステムを配置し、タイムスタンプサーバ１０２としてローカルクロックシステムを配置したものであり、マスタクロックシステムがローカルクロックシステムを検査などするものである。
この構成により、マスタクロックシステム（時刻配信サーバ１０１）は、ローカルクロックシステム（タイムスタンプサーバ１０２）に基準時刻を配信し、更に、ローカルクロックシステムで時刻が改竄されないか監査を行う。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従来のタイムスタンプシステム１００では、時刻配信サーバ１０１とタイムスタンプサーバ１０２の間の通信に、例えばＮＴＰやＰＫＩ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）を用い、高精度かつ高信頼性を確保していた。
更に、これらのシステムの安全性を確保するために、耐タンパ装置（安全性が確保された装置）を実装し、耐タンパ装置にこれらの通信機能を持たせていた。【００１３】
一般に、耐タンパ装置の情報処理能力は限られており、しかも、複雑なシステムの実行は困難である。
そのため、耐タンパ装置でこれらの機能を実現する場合、実装が複雑なために高コストとなっていた。【００１４】
そこで、本発明の目的は、高精度・高信頼を確保しつつ、低コストで時刻認証を行うことである。
【課題を解決するための手段】
【００１５】
本発明は、前記目的を達成するために、時刻を出力する時計装置と、更正時刻発生装置から更正時刻を取得する更正時刻取得手段と、前記取得した更正時刻を用いて、前記時計装置が出力する時刻のうち、セキュリティを要する所定の単位以上の単位の時刻の更正は行わずに前記所定の単位よりも小さい単位の時刻を更正する時刻更正手段と、前記時計装置が出力した時刻のうち、前記所定の単位以上の時刻を取得する第１の時刻取得手段と、基準時刻を配信する基準時刻配信サーバから基準となる時刻を受信する基準時刻受信手段と、前記所定の単位以上の時刻において前記第１の時刻取得手段で取得した時刻と前記受信した基準時刻とが一致することを確認することにより、前記時計装置が所定の範囲の精度で作動していることを検証する検証手段と、クライアント端末から、時刻証明対象となる証明対象情報を受信する証明対象情報受信手段と、前記精度を検証した前記時計装置が出力する時刻を用いて、前記受信した証明対象情報の時刻証明情報を生成する時刻証明情報生成手段と、前記生成した時刻証明情報をクライアント端末に送信する時刻証明情報送信手段と、具備したことを特徴とする時刻証明サーバを提供する（第１の構成）。
第１の構成において、前記検証手段は、検証に用いる基準時刻が、前回の検証で用いた基準時刻よりも後の時刻であることが確認できた場合に、前記時計装置が所定の範囲の精度にて作動していると検証するように構成することもできる（第２の構成）。
第１の構成、又は第２の構成において、前記時刻証明情報生成手段は、前記更正した時刻を用いて前記時刻証明情報を生成するように構成することもできる（第３の構成）。
第１の構成、第２の構成、又は第３の構成において、前記所定の単位を変更する所定単位変更手段を具備するように構成することもできる（第４の構成）。
第４の構成において、前記所定単位変更手段は、前記所定の単位を第１の単位に設定し、前記検証手段が前記第１の単位を用いて前記時計装置の精度を検証した場合に、前記第１の単位よりも小さい第２の単位に前記所定の単位を設定するように構成することもできる（第５の構成）。
第３の構成において、前記検証手段と前記時刻証明情報生成手段が動作する第１の動作モードと、前記時刻更正手段が動作する第２の動作モードと、を切り替える動作モード切替手段を具備し、前記動作モード切替手段は、それぞれの動作モードにて動作が完了した後に動作モードを切り替えるように構成することもできる（第６の構成）。
第６の構成において、前記第１の動作モードは、前記検証手段が前記時計装置を検証する検証モードと、前記時刻証明情報生成手段が前記時刻証明情報を生成する時刻証明情報生成モードと、から成り、前記動作モード切替手段は、前記検証モードと前記時刻証明情報生成モードの切替において、モード切替元の動作が完了した後にモード切替先に動作モードを切り替えるように構成することもできる（第７の構成）。
また、本発明は、時刻を出力する時計装置を備えたコンピュータにおいて行う時刻証明方法であって、前記コンピュータは、更正時刻取得手段と、時刻更正手段と、第１の時刻取得手段と、基準時刻受信手段と、検証手段と、証明対象情報受信手段と、時刻証明情報生成手段と、時刻証明情報送信手段と、を備えており、前記更正時刻取得手段によって、更正時刻発生装置から更正時刻を取得する更正時刻取得ステップと、前記時刻更正手段によって、前記取得した更正時刻を用いて、前記時計装置が出力する時刻のうち、セキュリティを要する所定の単位以上の単位の時刻の更正は行わずに前記所定の単位よりも小さい単位の時刻を更正する時刻更正ステップと、前記第１の時刻取得手段によって、前記時計装置が出力した時刻のうち、前記所定の単位以上の時刻を取得する第１の時刻取得ステップと、前記基準時刻受信手段によって、基準時刻を配信する基準時刻配信サーバから基準となる時刻を受信する基準時刻受信ステップと、前記検証手段によって、前記所定の単位以上の時刻において前記第１の時刻取得手段で取得した時刻と前記受信した基準時刻とが一致することを確認することにより、前記時計装置が所定の範囲の精度で作動していることを検証する検証ステップと、前記証明対象情報受信手段によって、クライアント端末から、時刻証明対象となる証明対象情報を受信する証明対象情報受信ステップと、前記時刻証明情報生成手段によって、前記精度を検証した前記時計装置が出力する時刻を用いて、前記受信した証明対象情報の時刻証明情報を生成する時刻証明情報生成ステップと、前記時刻証明情報送信手段によって、前記生成した時刻証明情報をクライアント端末に送信する時刻証明情報送信ステップと、を含むことを特徴とする時刻証明方法を提供する（第８の構成）。
前記第８の構成において、前記コンピュータは、所定単位変更手段を備え、前記所定単位変更手段によって、前記所定の単位を第１の単位に設定し、前記検証ステップで前記第１の単位を用いて前記時計装置の精度を検証した場合に、前記第１の単位よりも小さい第２の単位に前記所定の単位を設定する所定単位変更ステップを含むように構成することもできる（第９の構成）。
更に、本発明は、  時刻を出力する時計装置を備えたコンピュータで時刻を証明する機能を実現する時刻証明プログラムであって、更正時刻発生装置から更正時刻を取得する更正時刻取得機能と、前記取得した更正時刻を用いて、前記時計装置が出力する時刻のうち、セキュリティを要する所定の単位以上の単位の時刻の更正は行わずに前記所定の単位よりも小さい単位の時刻を更正する時刻更正機能と、前記時計装置が出力した時刻のうち、前記所定の単位以上の時刻を取得する第１の時刻取得機能と、基準時刻を配信する基準時刻配信サーバから基準となる時刻を受信する基準時刻受信機能と、前記所定の単位以上の時刻において前記第１の時刻取得機能で取得した時刻と前記受信した基準時刻とが一致することを確認することにより、前記時計装置が所定の範囲の精度で作動していることを検証する検証機能と、クライアント端末から、時刻証明対象となる証明対象情報を受信する証明対象情報受信機能と、前記精度を検証した前記時計装置が出力する時刻を用いて、前記受信した証明対象情報の時刻証明情報を生成する時刻証明情報生成機能と、前記生成した時刻証明情報をクライアント端末に送信する時刻証明情報送信機能と、をコンピュータで実現する時刻証明プログラムを提供する（第１０の構成）。
【発明の効果】
【００１６】
本発明によると、高精度・高信頼を確保しつつ、低コストで時刻認証を行うことができる。
【発明を実施するための最良の形態】
【００１７】
（１）実施の形態の概要
本実施の形態のタイムスタンプサーバでは、例えば、百ミリ秒単位で時刻を計測しており、この時刻を用いてタイムスタンプを発行している。
しかし、証明対象にもよるが、一般にタイムスタンプで重要なのは日付であり、秒針が改竄されたとしても実質的に悪影響はないものと考えられる。【００１８】
そこで、本実施の形態では、タイムスタンプサーバの内部クロックが計測する時刻を分単位以上の部分（年月日分）と、秒単位（ミリ秒など、１秒未満の単位も含む）の部分に分け、分単位以上の部分は監査局が監査し、秒単位の部分は時刻配信局が配信する時刻に同期させることにした。【００１９】
即ち、分単位以上の部分に関しては基準時刻との一致を確認し、秒単位の部分は時刻配信局が配信する時刻で更正する。
このように外部から内部クロックを更正できる範囲を秒単位に限定することにより、分単位以上の部分の改竄が極めて困難となり、高いセキュリティレベルを保つことができる。【００２０】
また、タイムスタンプサーバが内蔵する耐タンパチップは、監査局から送られてくる基準時刻と内部クロックの比較を行うだけで、分単位以上の部分の更正は行わないため、タイムスタンプサーバと監査局をＮＴＰなどで接続する必要がなく、耐タンパチップへのプログラムの実装が容易になる。【００２１】
このように、時刻の管理をセキュリティを要する部分（分単位以上の部分）と、必ずしもセキュリティ上重要でないが品質保証に必要な部分（秒単位の部分）を分離して管理することによりタイムスタンプシステムを簡略化することができる。【００２２】
（２）実施の形態の詳細
図１は、本実施の形態のタイムスタンプサーバの内部クロックが計測する時刻の一例を示した図である。
図の例では、「２００５年３月３０日１５時３０分２０秒２百ミリ秒」となっている。このように、タイムスタンプサーバの内部クロックは時刻を百ミリ秒単位で計測している。【００２３】
この時刻のうち、分単位以上の部分、即ち「２００５年３月３０日１５時３０分」の部分はタイムスタンプを発行するに際してセキュリティを要する部分であり、以下時刻ラベルと呼ぶことにする。
一方、秒単位の部分、即ち「２０秒２百ミリ秒」はタイムスタンプの品質を提供する部分である。
時刻ラベル（分単位の部分）は、後述する監査サーバにより正しい値であることが監査され、秒単位の部分は後述する時刻配信サーバが配信する配信時刻により更正される。【００２４】
なお、本実施の形態では、一例として秒単位を境としてセキュリティに関係する部分と品質保証に関係する部分に時刻を区分したが、これに限定するものではなく、タイムスタンプの対象などに応じて、更に大きい単位、あるいは小さい単位で区分することも可能である。【００２５】
即ち、例えば、タイムスタンプで１秒単位まで正確な時刻が必要な場合は、１秒以上の部分を監査サーバで監査し、９９９ミリ秒以下の時刻を時刻配信サーバで更正する。【００２６】
図２は、本実施の形態に係るタイムスタンプシステムのシステム構成の一例を示したブロック図である。
タイムスタンプシステム１は、監査サーバ２、時刻配信サーバ３、タイムスタンプサーバ４、クライアント端末５、５、・・・などがインターネットなどのネットワーク６で接続可能に配設されている。
なお、以下では、クライアント端末５、５、・・・を特に区別しないため、単にクライアント端末５と記す。【００２７】
タイムスタンプサーバ４は、クライアント端末５からの要求に応じてタイムスタンプを発行するサーバである。
ここで、タイムスタンプとは、電子文書の確定時刻を証明する情報であり、その文書がいつから存在しているのか、及びその時点から第三者のみならず作成者本人にも改竄されていないことを証明するものである。【００２８】
本実施の形態では、タイムスタンプの形態として、従来から使用されているものを使用する。
一例として、まず、タイムスタンプサーバ４は、クライアント端末５から電子文書のハッシュ値（ダイジェスト値）を送信してもらう。【００２９】
そしてタイムスタンプサーバ４は、内部クロックが出力する時刻と、クライアント端末５から受信したハッシュ値に対し、タイムスタンプ用電子署名鍵を用いて電子署名を作成し、クライアント端末５に返信する。
この電子署名がタイムスタンプとして使用される。なお、本実施の形態はこれに限定せずに、内部クロックを用いて時刻を証明する各種の形態のタイムスタンプに適用することが可能である。【００３０】
タイムスタンプサーバ４は、例えば、マザーボードなどに設置された外部クロック１２と、耐タンパチップなどで構成された耐タンパ部１０を備えている。
外部クロックは、例えば、水晶発振式の時計装置であって、タイムスタンプサーバ４は、時刻配信サーバ３より配信される配信時刻を用いて外部クロック１２をミリ秒単位まで更正することができる。
なお、タイムスタンプサーバ４と時刻配信サーバ３は、ＮＴＰで通信を行い、タイムスタンプサーバ４は、配信時刻を受信する。【００３１】
この通信は、タイムスタンプサーバ４のマザーボード上に設置されたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で行えばよく、耐タンパ部１０で行う必要はない。そのため、ＮＴＰによる通信機能を耐タンパ部１０の外部に設置することができ、耐タンパ部１０の実装を単純化することができる。【００３２】
なお、後述するように、外部クロック１２は、内部クロック１７の秒単位の部分を更正するのに用いられるため、外部クロック１２の更正に関しては、高度なセキュリティ対策が必要ない。
そのため、タイムスタンプシステム１では、必ずしも時刻配信サーバ３を使用する必要はない。【００３３】
時刻配信サーバ３に代わる配信時刻の提供元としては、電波時計（標準時を通知する電波を受信し、自動的に標準時と同期する時計）やＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）衛生から送られてくる時刻、あるいは時報など、各種の装置やサービスを用いることができる。
更に、これらの配信時刻の出力源をタイムスタンプサーバ４に内蔵してしまえば、タイムスタンプサーバ４を配信時刻の提供元にネットワーク接続する必要が無くなり、タイムスタンプシステム１の構成がより簡略化される。【００３４】
耐タンパ部１０は、例えば、耐タンパチップによって構成され、高度なセキュリティレベルを維持している。
耐タンパチップは、内部構造の解析や不正操作が著しく困難になるように構成されたＩＣチップであり、しかも、内部構造を解析しようとすると自動的に壊れるようになっている。【００３５】
なお、耐タンパチップは、ＣＰＵ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、入出力インターフェース、内部クロックなどをバスラインで接続してＩＣチップに封印しており、耐タンパチップ自体でコンピュータを構成している。【００３６】
耐タンパ部１０は、監査用公開鍵１５、タイムスタンプ用電子署名鍵１６、内部クロック１７、前回証明書１８などを有している。
また、ＥＥＰＲＯＭに記憶したタイムスタンププログラムを耐タンパチップのＣＰＵで実行することにより、耐タンパ部１０の動作モードを切り替えるモード切替部１３が構成される。【００３７】
監査用公開鍵１５は、監査サーバ２から送信されてくる時刻証明書に付随するデジタル署名を復号化するための公開鍵情報である。
この時刻証明書には、監査サーバ２の原子時計の出力時刻を用いて更正された基準時刻が記されている。
耐タンパ部１０は、デジタル署名を用いて時刻証明書の正当性を確認し、これによって、基準時刻の有効性を確認する。
【００３８】
タイムスタンプ用電子署名鍵１６は、クライアント端末５から送信されてきたハッシュ値と、内部クロック１７が出力する時刻を対象に、耐タンパ部１０がデジタル署名するための秘密鍵情報である。【００３９】
内部クロック１７は、タイムスタンプで証明する時刻を計測するための時計装置である。
内部クロック１７は、耐タンパ部１０の内部に構成されるという制約があるため、高精度の時計装置で構成することが困難である。そのため、精度を保つために、耐タンパ部１０は、外部クロック１２を参照して内部クロック１７の秒単位を更正する。【００４０】
前回証明書１８は、前回の時刻監査の際に監査サーバ２から送られてきて使用した時刻証明書をＥＥＰＲＯＭなどに記憶しておいたものである。
耐タンパ部１０は、監査サーバ２から送信されてきた基準時刻を確認する際に、この基準時刻が前回に監査サーバ２から受信した基準時刻よりも後であることを確認する。【００４１】
タイムスタンプにおいて、最も防がなくてはならないことは、改竄などによりバックデイト（過去の時刻を出力させること）された時刻でタイムスタンプを発行することである。
そのため、耐タンパ部１０は、監査サーバ２から送信されてきた基準時刻が前回に監査を行った時刻（前回証明書１８に記載されている時刻）よりも後であることを確認する。  【００４２】
そして、監査サーバ２から送信されてきた基準時刻が前回証明書１８に記載された時刻よりも前である場合は、エラーメッセージを発するなどして監査モード（後述）で停止し、タイムスタンプの発行を行わない。【００４３】
このように前回の基準時刻を記憶しておき、監査に用いる基準時刻がこれよりも後の時刻であることを確認することにより、バックデイトされた時刻でタイムスタンプが発行されるのを防止することができる。
なお、工場出荷時に、デフォルトの前回証明書１８を耐タンパ部１０に記憶させておく。
また、一般、内部クロック１７は、更正しなくても数ヶ月間程度は１分以内の精度を維持できるので、タイムスタンプサーバ４のユーザは、その間に内部クロック１７の更正を行う。【００４４】
モード切替部１３は、耐タンパ部１０の動作モードを順次切り替える機能部である。
耐タンパ部１０が行う動作モードには、監査モード、同期モード、スタンプモードがある。
これらの各動作モードはそれぞれ独立したモジュールが行い、モジュール間の干渉が生じないようにしてある。【００４５】
監査モードは、監査サーバ２から送信されてきた基準時刻を用いて内部クロック１７の時刻ラベルが正しいことを監査する動作モードである。
同期モードは、時刻配信サーバ３から配信される配信時刻を用いて内部クロック１７の秒単位の部分を正確な時刻に同期させる動作モードである。
スタンプモードは、クライアント端末５からの要求に対してタイムスタンプを発行する動作モードである。【００４６】
モード切替部１３は、耐タンパ部１０の動作モードを、例えば、監査モード→スタンプモード→同期モード→監査モード→・・・、といったように、所定の順序にて順次切り替えていく。そして、モード切替部１３は、現在動作中の動作モードが完了するまでは耐タンパ部１０を次の動作モードに切り替えない。【００４７】
そのため、スタンプモードで動作するためには、監査モードと同期モードが完了していることが必要となり、耐タンパ部１０は、監査、同期された時刻にてタイムスタンプを発行することができる。
また、耐タンパ部１０は、監査モード、同期モードの少なくとも一方でエラーが発生した場合に、タイムスタンプの発行を停止することができる。【００４８】
更に、図３を用いて耐タンパ部１０の動作モードの切り替えについて詳細に説明する。  耐タンパ部１０は、図３に示したように、監査モード→スタンプモード→同期モード→監査モード→・・・の順序で動作モードを順次切り替えていく。
このうち、監査モードとスタンプモードは、時刻ラベルを扱うため、高いセキュリティを要する動作モードであり（以下、セキュリティモード）、一方、同期モードは秒単位を扱うため、高いセキュリティが必ずしも必要ない動作モード（以下、一般モード）である。【００４９】
このように、耐タンパ部１０は、セキュリティモードと一般モードを切り替えて動作することにより、高いセキュリティの必要な処理と高いセキュリティの必要のない処理を同時に行うことを防止している。
しかも、各動作モードは独立したモジュールにて動作するため、耐タンパ部１０は、セキュリティモードでの処理と一般モードでの処理が耐タンパ部１０内で干渉することを防ぐことができ、クラッキングなどの不正アクセスに対して高い耐性を備えている。【００５０】
なお、耐タンパ部１０では、セキュリティモードを監査モードとスタンプモードに区分して切り替えているが、これらは何れもセキュリティモードなので、同じモードにて監査とスタンプの発行を行うように構成してもよい。【００５１】
このように、耐タンパ部１０は、検証手段（時刻監査を行う）と時刻証明情報生成手段（タイムスタンプを発行する）が動作する第１の動作モードと、前記時刻更正手段（秒単位の同期をとる）が動作する第２の動作モード（同期モード）と、を切り替える動作モード切替手段（モード切替部１３）を具備し、前記動作モード切替手段は、それぞれの動作モードにて動作が完了した後に動作モードを切り替える。【００５２】
そして、第１の動作モードは、前記検証手段が前記時計装置を検証する検証モード（監査モード）と、前記時刻証明情報生成手段が前記時刻証明情報を生成する時刻証明情報生成モード（スタンプモード）と、から成り、前記モード切替手段は、前記検証モードと前記時刻証明情報生成モードの切替において、モード切替元の動作（監査モードとスタンプモードの何れか一方の動作モード）が完了した後にモード切替先（他方のモード）に動作モードを切り替える。【００５３】
更に、本実施の形態では、同期モード→監査モード→スタンプモード→同期モード→・・・の順序でモードの切り替えを行ったが、モード切り替えの順序はこれに限定するものではなく、例えば、監査モード→同期モード→スタンプモード→監査モード・・・など、他の順序で動作モードを切り替えてもよい。【００５４】
図２に戻り、監査サーバ２は、監査局が運営するサーバであって、ネットワーク６を介してタイムスタンプサーバ４に接続し、タイムスタンプサーバ４の内部クロック１７を監査する。
監査サーバ２とタイムスタンプサーバ４の通信回線は、例えば、ＳＳＬなどの技術を用いて暗号化されており、外部からのクラッキングが困難になっている。【００５５】
一般に、監査局は、タイムスタンプサーバ４を運営する事業者とクライアント端末５のユーザからみて第三者が運営している。
このように、第三者が監査サーバ２を運営することにより、タイムスタンプサーバ４の事業者とクライアント端末５のユーザが共謀してタイムスタンプのバックデイトを行うことは事実上不可能になり、極めて高いセキュリティレベルを実現することができる。【００５６】
監査サーバ２は、原子時計２２と監査用秘密鍵２３を備えている。そして、タイムスタンプサーバ４から基準時間の要求があった場合に、原子時計２２が出力する時刻を記した時刻証明書を作成し、これを監査用秘密鍵２３で署名してタイムスタンプサーバ４に送信する。原子時計２２は、基準時刻を出力する基準時計装置を構成している。【００５７】
なお、詳細は後述するが、監査サーバ２は、タイムスタンプサーバ４との通信経路の遅延時間を計測し、原子時計２２が出力する時刻を遅延時間分だけ進めて基準時刻とする。
これによって、タイムスタンプサーバ４が受信した時刻証明書に記録されている基準時刻は、タイムスタンプサーバ４が時刻証明書を受信した時刻と一致する。【００５８】
時刻配信サーバ３は、ネットワーク６を用いてタイムスタンプサーバ４に接続し、タイムスタンプサーバ４に現在時刻を配信するサーバである。
時刻配信サーバ３とタイムスタンプサーバ４の通信回線は、例えば、ＳＳＬを用いて暗号化されており、この暗号化された通信経路内を例えばＮＴＰを用いて時刻が配信される。【００５９】
このように、時刻配信サーバ３とタイムスタンプサーバ４の通信経路は暗号化されているため外部からのクラッキングが困難となっている。
更に、ＮＴＰを用いることにより、時刻配信サーバ３は、遅延のない時刻をミリ秒程度の精度でタイムスタンプサーバ４に提供することができる。【００６０】
図４は、モード切替部１３による耐タンパ部１０のモード切り替えを説明するためのフローチャートである。
同期モードと監査モードの何れから開始してもよいが、監査サーバ２で保証され、時刻配信サーバ３で同期した時刻でタイムスタンプを発行するために、スタンプモードを同期モードと監査モードの後にするのが望ましい。
また、タイムスタンプサーバ４の起動後は、同期モードと監査モードを行った後、スタンプモードを行う。【００６１】
まず、モード切替部１３は、耐タンパ部１０を同期モードにて動作させる（ステップ５）。
同期モードにおいて、耐タンパ部１０は、外部クロック１２が出力する時刻の秒単位の部分を参照し、これを用いて内部クロック１７を更正する。この処理によって、内部クロック１７はミリ秒の単位まで更正することができる。
【００６２】
これは、耐タンパ部１０が、タイムスタンプサーバ４のマザーボードに設置されたＣＰＵに、外部クロック１２が出力する時刻の入力を要求することにより行われる。
耐タンパ部１０へは、外部クロック１２が出力する時刻の秒単位の部分が入力されるが、耐タンパ部１０に全ての単位の時刻を入力して、耐タンパ部１０が秒単位の部分を参照するように構成してもよい。【００６３】
なお、エラーが発生するなどして同期モードが完了しない場合、モード切替部１３は耐タンパ部１０の動作モードを同期モードを保ったまま停止する。
これにより、同期しない時刻でタイムスタンプが発行されるのを防ぐことができる。【００６４】
同期モードにて秒単位の更正が完了すると、モード切替部１３は耐タンパ部１０の動作モードを監査モードに切り替える（ステップ１０）。
監査モードでは、耐タンパ部１０は、監査サーバ２に時刻証明書の発行を要求する。そして、耐タンパ部１０は、これに応じて監査サーバ２から送信されてきた時刻証明を受信し、時刻証明書に記されている基準時刻の時刻ラベルと内部クロック１７から出力される時刻の時刻ラベルを比較する。【００６５】
なお、時刻ラベルが一致しない場合、モード切替部１３は耐タンパ部１０の動作モードを切り替えずに監査モードのまま保持し、停止する。
これにより、監査が完了しない時刻でタイムスタンプが発行されるのを防ぐことができる。【００６６】
監査モードにて時刻ラベルの監査が完了すると、モード切替部１３は耐タンパ部１０の動作モードをスタンプモードに切り替える（ステップ１５）。
スタンプモードにおいては、耐タンパ部１０は、クライアント端末５からのタイムスタンプの要求を受け付け、タイムスタンプを発行する。【００６７】
耐タンパ部１０は、スタンプモードの間は自由にタイムスタンプを発行することができる。
スタンプモードで何らかのエラーが生じた場合、モード切替部１３は耐タンパ部１０の動作モードをスタンプモードに保持する。【００６８】
即ち、耐タンパ部１０は、クライアント端末５から、時刻証明対象となる電子文書のハッシュ値（証明対象情報）を受信し（証明対象情報受信手段）、精度を検証した内部クロック１７が出力する時刻を用いて、この電子文書のハッシュ値のタイムスタンプ（時刻証明情報）を生成する（時刻証明情報生成手段）。そして、耐タンパ部１０は、生成したタイムスタンプをクライアント端末５に送信する（時刻証明情報送信手段）。【００６９】
スタンプモードが完了すると、特に理由がない限りモード切替部１３は、強制終了を行わないでステップ５〜２０の無限ループを行い（ステップ２０；Ｎ）、耐タンパ部１０は同期モード（ステップ５）に戻る。
タイムスタンプを強制終了によって停止させる場合（ステップ２０；Ｙ）、モード切替部１３は、モード切り替えを終了する。
強制終了は、例えば、ステップ５〜ステップ２０のループを所定回数行った場合に行ったり、あるいは、管理者の判断によって行うなど、各種の形態が可能である。【００７０】
以上のようにモード切替部１３は、動作モードの切り替えを順次行うが、時刻証明書の基準時刻の有効期限が例えば１時間であるため、本実施の形態では、この無限ループを１時間程度で一巡するように構成した。
同期モード、監査モードに要する時間は数分程度であり、耐タンパ部１０は、ほとんどの時間をスタンプモードで稼動することができる。【００７１】
図５は、同期モードにおけるタイムスタンプサーバ４の動作を説明するための図である。
まず、タイムスタンプサーバ４と時刻配信サーバ３の関係について説明する。
タイムスタンプサーバ４は、外部クロック１２の更正に際して時刻配信サーバ３に現在時刻の配信を要求する。
時刻配信サーバ３は、例えば原子時計などによって配信される時刻によって更正された正確な内部クロック２０を備えており、この時刻をタイムスタンプサーバ４に送信する。
【００７２】
タイムスタンプサーバ４は、時刻配信サーバ３から配信された時刻を用いて外部クロック１２を更正する。
タイムスタンプサーバ４は、耐タンパ部１０の動作モードとは独立してこの更正処理を行うことができる。【００７３】
タイムスタンプサーバ４は、外部クロック１２の精度を保つのに必要な頻度（例えば、１時間に１回程度）にて外部クロック１２を更正することにより、外部クロック１２を常に正確に保つことができる。【００７４】
次に、耐タンパ部１０と外部クロック１２の関係について説明する。
耐タンパ部１０は、同期モードにおいて、外部クロック１２（より正確にはタイムスタンプサーバ４のマザーボードに設置されたＣＰＵ）に対して現在の時刻の秒単位の部分の出力を要求する。
そして、耐タンパ部１０は、この要求に応じて出力された秒単位の部分を耐タンパ部１０の内部に取り込んで、内部クロック１７の秒単位を更正する。【００７５】
外部クロック１２は、時刻配信サーバ３からの配信時刻により高い精度で時刻を計測しているため、耐タンパ部１０は内部クロック１７を高い精度で構成することができる。
即ち、耐タンパ部１０は、外部クロック１２を介して内部クロック１７の秒単位を時刻配信サーバ３の内部クロック２０の正確な時刻に同期させることができる。【００７６】
このように、耐タンパ部１０は、外部クロック１２の出力のうち、秒単位の部分しか参照しないため、外部クロック１２の時刻が改竄されたとしても、タイムスタンプで改竄できる範囲は秒単位に限定される。
そのため、同期モードにおいて時刻ラベルは何らの影響を受けないため、高いセキュリティレベルを実現することができる。【００７７】
図６は、タイムスタンプサーバ４が外部クロック１２を同期させる手順を説明するためのフローチャートである。
以下の処理において、タイムスタンプサーバ４のマザーボードに設置されたＣＰＵと時刻配信サーバ３が備えたＣＰＵが所定のプログラムに従って行うものである。【００７８】
なお、タイムスタンプサーバ４は、マザーボードに設置されたＣＰＵのほかに耐タンパ部１０にもＣＰＵを備えているため、図６では、これらを区別するために、タイムスタンプサーバ４をマザーボード上のＣＰＵによる「タイムスタンプサーバ」と、耐タンパ部１０のＣＰＵによる「耐タンパ部」に分けて記述した。【００７９】
まず、タイムスタンプサーバ４は、時刻配信サーバ３に対して現在時刻の送信を要求する（ステップ３０）。
この要求に対し、時刻配信サーバ３は、内部クロック２０の出力する現在時刻をタイムスタンプサーバ４に送信する（ステップ３５）。【００８０】
タイムスタンプサーバ４は、時刻配信サーバ３から現在時刻を受信し、これを用いて外部クロック１２を更正する（ステップ４０）。以上によって外部クロック１２の更正処理が終了する。
なお、内部クロック１７は、外部クロック１２の秒単位しか参照しないため、外部クロック１２の更正も秒単位で行えば足りる。【００８１】
図７は、タイムスタンプサーバ４が内部クロック１７を同期させる手順を説明するためのフローチャートである。
以下の処理は、図６のフローチャートと同様に、耐タンパ部１０が備えたＣＰＵと、時刻配信サーバ３のマザーボードに設置されたＣＰＵが行うものである。【００８２】
まず、耐タンパ部１０は、タイムスタンプサーバ４に対して外部クロック１２が計測している秒単位の時刻を要求する（ステップ５０）。
これに対し、タイムスタンプサーバ４は、外部クロック１２の出力する秒単位の時刻を耐タンパ部１０に出力する（ステップ５５）。【００８３】
耐タンパ部１０は、タイムスタンプサーバ４から秒単位の時刻を取得し、これを用いて内部クロック１７が計測している時刻のうちの秒単位を更正する（ステップ６０）。
このように、耐タンパ部１０は、更正時刻発生装置（外部クロック１２）から更正時刻を取得する更正時刻取得手段と、前記取得した更正時刻を用いて、前記時計装置が計測する時刻のうち、前記所定の単位よりも小さい単位の時刻（ここでは秒単位）を更正する時刻更正手段と、を備えている。【００８４】
以上のようにして、耐タンパ部１０は、内部クロック１７を更正する。より詳細には、耐タンパ部１０は、内部クロック１７の秒単位とタイムスタンプサーバ４から取得した秒単位の比較を行い、一致する場合は、特に更正処理をせずに処理を終え、一致しない場合は、内部クロック１７の秒単位をタイムスタンプサーバ４から取得した秒単位に修正する。【００８５】
なお、内部クロック１７の通常の精度から、内部クロック１７の更正の時間間隔において内部クロック１７の時刻ラベルが変化するほど秒単位が進んだりあるいは遅れたりすることはないので、秒単位だけ更正すれば内部クロック１７の計測する時刻を時刻ラベルと秒単位に渡って精度が保証される。【００８６】
図８は、監査モードにおけるタイムスタンプサーバ４と監査サーバ２の動作を説明するための図である。
タイムスタンプサーバ４は、耐タンパ部１０の動作モードが監査モードに切り替わると、耐タンパ部１０の要求により監査サーバ２に対して基準時刻の送信を要求する。【００８７】
監査サーバ２は、タイムスタンプサーバ４から基準時刻の送信要求を受けると、原子時計２２の出力する時刻を参照して時刻証明書４０を作成し、監査用秘密鍵２３でデジタル署名してタイムスタンプサーバ４に送信する。【００８８】
時刻証明書４０には、基準時刻、制限時間、シリアル番号、固有情報、ハッシュ値、デジタル署名など記録されている。
基準時刻は、原子時計２２が出力した現在時刻である。なお、より詳細には、監査サーバ２は、タイムスタンプサーバ４との通信の遅延時間を測定し、これを考慮して現在時刻を調整するが、これについては後述する。【００８９】
制限時間は、時刻証明書４０に記録してある基準時刻の有効期限である。即ち、時刻証明書４０に記してある基準時刻で監査した内部クロック１７の出力時刻は、この制限時間の間、監査局により精度が保証される。【００９０】
シリアル番号は、監査サーバ２が発行順に付与する時刻証明書の番号であるが、連番を発行すると、外部から推測が容易になる可能性があることから、本実施の形態では、シリアル番号を乱数により構成した。
固有情報は、例えば、耐タンパ部１０のＩＤ情報など、タイムスタンプサーバ４のハードウェアに固有な情報である。固有情報が一致しない場合、耐タンパ部１０は、エラーを発する。【００９１】
なお、これらの項目のほかに、時刻証明書４０の有効期限や、時刻証明書４０の正当性が確認された後、タイムスタンプサーバ４と監査サーバ２の間の通信の共通鍵なども時刻証明書４０に含めることができる。【００９２】
ハッシュ値は、現在時刻、制限時間、シリアル番号、固有情報など、改竄を防止する情報を、ハッシュ関数によって演算したハッシュ値である。
デジタル署名は、ハッシュ値を監査用秘密鍵２３で暗号化したものである。【００９３】
タイムスタンプサーバ４は、監査サーバ２から時刻証明書４０を受信すると、これを耐タンパ部１０に渡す。
耐タンパ部１０は、時刻証明書４０に記載されている基準時刻の時刻ラベルと内部クロック１７の時刻ラベルの一致を確認した後、デジタル署名を用いて時刻証明書４０の正当性を確認する。【００９４】
図９は、タイムスタンプサーバ４と監査サーバ２が時刻ラベルの監査を行う手順を説明するためのフローチャートである。
まず、耐タンパ部１０は、タイムスタンプサーバ４のＣＰＵ（以下、タイムスタンプサーバ４）に対して時刻証明書の要求を行う（ステップ１０５）。【００９５】
タイムスタンプサーバ４は、これを受けて監査サーバ２に対して時刻証明書の発行を要求する（ステップ１１０）。
監査サーバ２は、タイムスタンプサーバ４から時刻証明書の発行の要求を受けて時刻証明書４０を作成し、タイムスタンプサーバ４に送信する（ステップ１１５）。【００９６】
タイムスタンプサーバ４は、監査サーバ２から送信されてきた時刻証明書を受信し、これを耐タンパ部１０に入力する（ステップ１２０）。
耐タンパ部１０は、タイムスタンプサーバ４から時刻証明書を受け取り、時刻証明書に記されている基準時刻と内部クロック１７の時刻を比較する（ステップ１２５）。【００９７】
この比較は時刻ラベル、即ち分単位で行い、秒単位は行わない。例えば、時刻証明書４０に記載されていた時刻が「２００５年３月２０日１２時３０分３秒２百ミリ秒」で、内部クロック１７の時刻が「２００５年３月２０日１２時３０分０秒５百ミリ秒」であった場合、両者は分単位以上が同じであるので、耐タンパ部１０は両者が一致すると判断する。【００９８】
このように、耐タンパ部１０は、監査サーバ２（基準時刻配信サーバ）から基準となる時刻を受信する基準時刻受信手段を備えている。
また、耐タンパ部１０は、内部クロック１７が出力した時刻のうち、所定の単位以上（ここでは分以上）の時刻を取得する第１の時刻取得手段を備えている。【００９９】
時刻証明書４０に記載されていた時刻と内部クロック１７の時刻が一致しない場合（ステップ１３０；Ｎ）、耐タンパ部１０は、同期モードに戻る（ステップ１３３）。
なお、偶発的なエラーにより時刻証明書の時刻と内部クロック１７が一致しない場合もあるので、時刻証明書４０に記載されていた時刻と内部クロック１７の時刻が一致しない場合（ステップ１３０；Ｎ）、耐タンパ部１０はステップ１０５に戻って再度時刻証明書を要求するように構成することもできる。この場合、時刻証明書の時刻と内部クロック１７の不一致が所定回数に達した場合にステップ１３３に移行するように構成することができる。また、ステップ１３３を有せずに、時刻証明書４０に記載されていた時刻と内部クロック１７の時刻が一致しない場合（ステップ１３０；Ｎ）、ステップ１０５に戻るように構成することもできる。この場合、所定回数監査に失敗した場合、耐タンパ部１０はエラーを発して動作を停止するように構成することもできる。
両時刻が一致する場合（ステップ１３０；Ｙ）、耐タンパ部１０は、時刻証明書４０の有効性を確認する（ステップ１３５）。【０１００】
このように、耐タンパ部１０は、所定単位（分単位）以上の時刻において前記第１の時刻取得手段で取得した時刻と前記受信した基準時刻とが一致することを確認することにより、前記時計装置が所定の範囲（分単位以上）の精度で作動していることを検証する検証手段を備えている。【０１０１】
この有効性は、時刻証明書４０に付属するデジタル署名を監査用公開鍵１５で復号化してハッシュ値を取り出し、更に時刻証明書４０から監査サーバ２と同じハッシュ関数を用いてハッシュ値を求め、両者の一致を確認することにより行う。
また、時刻証明書４０に時刻証明書４０の有効期限が付属している場合は、有効期限内であることを確認する。【０１０２】
このように、時刻証明書４０と内部クロック１７の時刻の比較を時刻証明書４０の有効性の確認の前に行ったのは、時刻の比較をなるべく速やかに行うためである。
即ち、有効性の確認の後に時刻の比較を行うと、有効性の確認に要する時間だけ内部クロック１７の時刻が進んでしまい、時刻証明書４０に記載されている時刻との差が大きくなるためである。
そのため、復号化の時間を省略するために、時刻証明書の基準時刻は暗号化をしないように構成することができる。【０１０３】
時刻証明書４０が有効でなかった場合（ステップ１４０；Ｎ）、耐タンパ部１０はステップ１０５に戻る。
時刻証明書４０が有効であった場合（ステップ１４０；Ｙ）、耐タンパ部１０は、前回証明書１８（図２）に記載されている基準時刻と、時刻証明書４０に記載されている基準時刻との前後関係を比較する（ステップ１４５）。【０１０４】
時刻証明書４０に記載されている基準時刻が、前回証明書１８に記載されている基準時刻よりも前の時刻であった場合（ステップ１５０；Ｎ）、耐タンパ部１０はステップ１０５に戻る。
一方、時刻証明書４０に記載されている基準時刻が、前回証明書１８に記載されている基準時刻よりも後の時刻であった場合（ステップ１５０；Ｙ）、前回証明書１８を今回受け取った時刻証明書４０にて上書きするなどして置き換える。【０１０５】
耐タンパ部１０は、通信回線の状態などにより、監査エラーが発生する場合があり、この場合は、その都度ステップ１０５に戻って監査サーバ２に時刻証明書の発行を要求するが、監査サーバ２は、例えば、その回数を計数し、所定回数に達した場合は、耐タンパ部１０を停止させるコマンドをタイムスタンプサーバ４に送信する。このように、タイムスタンプサーバ４で何らかの異常が発生していると考えられる場合、監査サーバ２は耐タンパ部１０を停止させることができる。【０１０６】
以上の例では、時刻ラベルを分単位以上としたが、より小さい単位で時刻監査を行う場合について図１０（ａ）のフローチャートを用いて説明する。ここでは、時刻ラベルを１秒以上とした場合を例に採り説明する。
このように、より小さい単位で時刻監査を行う場合は、大きい単位から小さい単位にかけて段階的に時刻監査を行う。【０１０７】
まず、監査モードになると、耐タンパ部１０は、前回に秒単位での時刻監査を行ったか確認する（ステップ１６０）。
例えば、工場出荷後に初めて時刻監査を行う場合や、耐タンパ部１０をリセットした場合など、前回に秒単位での時刻監査を行っていない場合（ステップ１６０；Ｎ）、監査サーバ２と耐タンパ部１０は、分単位で監査を実行する（ステップ１６５）。【０１０８】
これは、耐タンパ部１０が、監査サーバ２から時刻証明書を取得し、これを用いて、内部クロック１７が分単位で一致するか確認することにより行う。
より詳細には、耐タンパ部１０は、内部クロック１７の時刻が時刻証明書に記載されている時刻から±３０秒以内であることを確認する。【０１０９】
内部クロック１７が分単位で一致しなかった場合、監査に成功しなかったため（ステップ１７０；Ｎ）、耐タンパ部１０はステップ１６５に戻り、監査サーバ２から時刻証明書を取得して分単位の監査を行う。
このようにして、偶発的なエラーなどにより監査が不成功となった場合、耐タンパ部１０は、再度監査を試みる。【０１１０】
一方、前回の時刻監査で秒単位の時刻監査を行っている場合（ステップ１６０；Ｙ）、又は内部クロック１７の時刻が時刻証明書の時刻と分単位で一致して監査が成功した場合（ステップ１７０；Ｙ）、耐タンパ部１０は、秒単位での監査を実行する（ステップ１７５）。これは、耐タンパ部１０が、監査サーバ２から時刻証明書を取得し、これを用いて、内部クロック１７が秒単位で一致するか確認することにより行う。
より詳細には、耐タンパ部１０は、内部クロック１７の時刻が時刻証明書に記載されている時刻から±５００ミリ秒以内であることを確認する。【０１１１】
内部クロック１７の秒単位の時刻は、同期モードにて外部クロック１２と同期させてあるため、内部クロック１７の時刻が分単位で一致する場合、秒単位以下の時刻は外部クロック１２の精度（通常ミリ秒程度）で動作していることが推定される。
そのため、分単位での監査が成功した場合、内部クロック１７はミリ秒程度の精度で動作していることが期待されるので、例えば、３０秒単位での監査などの中間段階を経ずに秒単位の監査に移行することができる。【０１１２】
内部クロック１７が秒単位で一致しなかった場合、監査に成功しなかったため（ステップ１８０；Ｎ）、耐タンパ部１０はステップ１６５に戻り、監査サーバ２から時刻証明書を取得して分単位の監査を行う。【０１１３】
このようにして、偶発的なエラーなどにより秒単位での時刻監査が不成功となった場合、耐タンパ部１０は、分単位での時刻監査を再度試みる。
一方、内部クロック１７の時刻が時刻証明書の時刻と秒単位で一致して監査が成功した場合（ステップ１８０；Ｙ）、耐タンパ部１０は、監査モードを終了する。【０１１４】
このように、耐タンパ部１０は、分単位（低精度）での時刻監査を行い、これに成功すると秒単位（高精度）での時刻監査を行う。そして、秒単位での時刻監査が成功した場合、耐タンパ部１０は、次回の監査モードにおいても引き続き秒単位での時刻監査を行う。  【０１１５】
一方、秒単位での時刻監査が成功しなかった場合、耐タンパ部１０は、精度を落として分単位での時刻監査を再度試み（又は、偶発的なエラーの場合もあるため、所定回数だけ秒単位での時刻監査を繰り返してもよい）、不成功の原因が通信の遅延などによる偶発的なエラーであるか確認し、偶発的なエラーであった場合は高精度の時刻監査を引き続き行う。【０１１６】
このように、高精度の時刻監査時でエラーが生じた場合に、精度を落として確かめ時刻監査を行ってエラーが連続するか確認することにより、ネットワークの通信状態による遅延時間の揺らぎといった偶発的な時刻監査エラーが生じた場合でも適切に時刻監査を行うことができる。【０１１７】
以上のように、耐タンパ部１０は、１分単位から１秒単位といったように、所定の単位を変更する所定単位変更手段を具備している。
そして、耐タンパ部１０は、前記所定の単位を第１の単位（例えば１分）に設定し、前記検証手段が前記第１の単位を用いて前記時計装置の精度を検証した場合に、前記第１の単位よりも小さい第２の単位（例えば１秒）に前記所定の単位を設定する。【０１１８】
次に、図１０（ｂ）を用いて上記の手順をより一般化した記載にて説明する。
ここで、第１精度は、第２精度よりも高精度となっており、耐タンパ部１０は、より高精度で時刻監査を行う場合は、低い精度から高い精度にかけて段階的に時刻監査を行う。
まず、監査モードになると、耐タンパ部１０は、前回に第１精度での時刻監査を行ったか確認する（ステップ２６０）。
前回に第１精度での時刻監査を行っていない場合（ステップ２６０；Ｎ）、監査サーバ２と耐タンパ部１０は、第２精度で監査を実行する（ステップ２６５）。
これは、耐タンパ部１０が、監査サーバ２から時刻証明書を取得し、これを用いて、内部クロック１７が第２精度で一致するか確認することにより行う。
より詳細には、耐タンパ部１０は、内部クロック１７の時刻が時刻証明書に記載されている時刻から所定時間以内（例えば、±（第２精度で計測できる最小時間の半分）以内）であることを確認する。【０１１９】
内部クロック１７が第２精度で一致しなかった場合、監査に成功しなかったため（ステップ２７０；Ｎ）、耐タンパ部１０はステップ２６０に戻り、監査サーバ２から時刻証明書を取得して第２単位の監査を行う。
このようにして、偶発的なエラーなどにより監査が不成功となった場合、耐タンパ部１０は、再度監査を試みる。【０１２０】
一方、前回の時刻監査で第１精度で時刻監査を行っている場合（ステップ２６０；Ｙ）、又は内部クロック１７の時刻が時刻証明書の時刻と第２精度一致して監査が成功した場合（ステップ２７０；Ｙ）、耐タンパ部１０は、第１精度での監査を実行する（ステップ２７５）。これは、耐タンパ部１０が、監査サーバ２から時刻証明書を取得し、これを用いて、内部クロック１７が第１精度で一致するか確認することにより行う。
より詳細には、耐タンパ部１０は、内部クロック１７の時刻が時刻証明書に記載されている時刻から所定時間内（例えば、±（第１精度で計測できる最小時間の半分）以内）であることを確認する。【０１２１】
内部クロック１７が第１精度で一致しなかった場合、監査に成功しなかったため（ステップ２８０；Ｎ）、耐タンパ部１０はステップ２６５に戻り、監査サーバ２から時刻証明書を取得して第２精度の監査を行う。【０１２２】
このようにして、偶発的なエラーなどにより秒単位での時刻監査が不成功となった場合、耐タンパ部１０は、第２精度での時刻監査を再度試みる。
一方、内部クロック１７の時刻が時刻証明書の時刻と第１精度で一致して監査が成功した場合（ステップ２８０；Ｙ）、耐タンパ部１０は、監査モードを終了する。【０１２３】
次に、監査サーバ２がタイムスタンプサーバ４に基準時刻を配信する際に使用するプロトコルについて説明する。
例えば、時刻ラベルを分単位以上とする場合、一般に監査サーバ２とタイムスタンプサーバ４の通信経路による遅延時間は１分よりも非常に小さいため、遅延対策を行う必要は必ずしもないが、例えば、時刻ラベルを秒単位で監査する場合には、以下のプロトコルを用いることにより、通信経路による遅延の影響を補正する。【０１２４】
図１１は、時刻監査において用いられるプロトコルを説明するためのフローチャートである。
まず、タイムスタンプサーバ４は、監査サーバ２に時刻証明書の送信を要求すると共に内部クロック１７の現在時刻を監査サーバ２に送信する（ステップ２０５）。【０１２５】
これによって、監査サーバ２は、タイムスタンプサーバ４から時刻証明書の要求と内部クロック１７の時刻を受信する（ステップ２１０）。
内部クロック１７の時刻は、外部クロック１２と同期しているため、一般にミリ秒単位まで正確である。そのため、監査サーバ２は、自己の保有する原子時計２２の現在時刻から内部クロック１７の時刻を減算して遅延時間を計算する（ステップ２１５）。
なお、遅延時間が合理的な範囲を超えて大きい場合は、例えば、タイムスタンプサーバ４を停止させるなどの処理を行う。【０１２６】
次に、監査サーバ２は、原子時計２２の現在時刻から遅延時間分進んだ時刻により基準時刻を生成し、この基準時刻を用いて時刻証明書を作成する（ステップ２２０）。
そして、監査サーバ２は、この時刻証明書をタイムスタンプサーバ４に送信する（ステップ２２５）。【０１２７】
このように、監査サーバ２は基準時刻配信サーバを構成し、時刻証明サーバ（タイムスタンプサーバ４）との通信回線における遅延時間を測定する遅延時間測定手段と、前記基準時計装置から出力された基準時刻を、前記測定した遅延時間分だけ進めた基準時刻を生成する基準時刻生成手段と、前記生成した基準時刻を前記時刻証明サーバに送信する基準時刻送信手段と、を具備している。
更に、監査サーバ２は、前記時刻証明サーバから、当該時刻証明サーバが備えた時計装置が出力した時刻を受信する時刻受信手段を具備し、前記遅延時間測定手段は、前記受信した時刻と、前記受信を行った際に前記基準時計装置が出力する時刻と、の差を用いて前記遅延時間を測定する。【０１２８】
タイムスタンプサーバ４は、監査サーバ２から時刻証明書を受信し（ステップ２３０）、これを用いて内部クロック１７の時刻ラベルの確認を行う。
以上のように、監査サーバ２は、遅延時間分だけ進んだ時刻を基準時刻として時刻証明書を作成するため、タイムスタンプサーバ４は、時刻証明書に記載された基準時刻において時刻証明書を受信することができる。【０１２９】
図１２は、タイムスタンプサーバ４のハードウェア的な構成の一例を示した図である。
タイムスタンプサーバ４は、ＣＰＵ５１、ＲＡＭ５２、ＲＯＭ５３、耐タンパチップ５６、通信制御装置５７、記憶装置５８、入出力Ｉ／Ｆ（インターフェース）６０などの各機能部がバスライン５０で接続されて構成されている。【０１３０】
ＣＰＵ５１は、所定のプログラムに従って、各種の演算処理、及び情報処理やタイムスタンプサーバ４を構成する各構成要素の制御を行ったりする中央処理装置である。
ＣＰＵ５１は、例えば、耐タンパチップ５６（耐タンパ部１０を構成する）のＣＰＵと協働して情報処理を行い、監査サーバ２から時刻証明書を取得したり、時刻配信サーバ３の配信時刻を用いて外部クロック１２を更正したり、あるいは、クライアント端末５からの要求によりタイムスタンプを発行したりする。【０１３１】
ＲＯＭ５３は、タイムスタンプサーバ４を動作させるための基本的なプログラムやデータなどを記憶した読み出し専用のメモリである。
ＲＡＭ５２は、ＣＰＵ５１が動作するためのワーキングエリアを提供する読み書き可能なメモリである。時刻証明書の取得や、外部クロック１２の構成、及びタイムスタンプの発行を行うためのエリアが確保可能に構成されている。【０１３２】
耐タンパチップ５６は、外部からの解析が著しく困難に構成されたＩＣチップであって、内部にＣＰＵ、内部クロック１７、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭなどを備えている。  ＥＥＰＲＯＭに記憶されているタイムスタンププログラムをＣＰＵで実行することにより、耐タンパ部１０が形成される。タイムスタンププログラム、監査用公開鍵１５、タイムスタンプ用電子署名鍵１６、前回証明書１８は、例えば、ＥＥＰＲＯＭに記憶されている。【０１３３】
通信制御装置５７は、タイムスタンプサーバ４をネットワーク６に接続する機能部である。タイムスタンプサーバ４は、通信制御装置５７を介して、監査サーバ２、時刻配信サーバ３、クライアント端末５などと通信を行うことができる。【０１３４】
記憶装置５８は、例えば、ハードディスクなどで構成された大容量で読み書き可能な記憶装置である。
記憶装置５８には、プログラム類を格納したプログラム格納部６１とデータ類を記憶したデータ格納部６２が形成されている。【０１３５】
プログラム格納部６１には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、通信プログラム、・・・などの各種プログラムがＣＰＵ５１で実行可能に記憶されている。【０１３６】
ＯＳは、ファイル入出力の管理や各種機能部を制御するなど、タイムスタンプサーバ４を運営する基本的な機能をＣＰＵ５１に発揮させるためのプログラムである。
通信プログラムは、通信制御装置５７を制御し、ネットワーク６を介した通信を行うための機能をＣＰＵ５１に発揮させるためのプログラムである。【０１３７】
以上、本実施の形態について説明したが、タイムスタンプシステム１によって次のような効果を得ることができる。
（１）時刻配信サーバ３が配信する配信時刻により内部クロック１７の秒単位を更正することにより高精度な時刻同期が可能となる。【０１３８】
（２）耐タンパチップには従来に比べて単純なアルゴリズムを実装するので、ＩＣチップの開発・製造コストを低減することができる。
（３）時刻証明と時刻同期を分離することにより、高精度な時刻によるタイムスタンプシステムをインターネットなど不安定なネットワークを用いても容易に構築することができる。【０１３９】
（４）監査サーバ２は、単純な時刻証明書を配信することにより監査を行うことができるため、多数のタイムスタンプサーバ４を擁する大規模なタイムスタンプシステムを構築することができる。
（５）タイムスタンプサーバ４は、前回監査した時刻と今回使用する基準時刻を比較することにより、内部クロック１７のバックデートを防ぐことができる。【０１４０】
また、本実施の形態により、信頼される時刻を供給するためのシステム（タイムスタンプシステム１）であって、マスタクロックシステム（監査サーバ２）と、前記マスタクロックシステムと通信する信頼されるローカルクロックシステム（タイムスタンプサーバ４）と、前記マスタクロックシステムとの間にセキュリティ保護された通信とを備えるシステムであって、前記マスタクロックシステムから配信される時刻情報に基づいて前記ローカルクロックシステムの正確性を比較検証するシステムと、前記ローカルクロックシステムに時刻情報を供給する信頼できる時刻であっても秒針部分の時刻を供給するためのシステム（時刻配信サーバ３）により、高精度な時刻同期と高信頼の時刻供給を可能とするシステムを提供することができる。
【図面の簡単な説明】
【０１４１】
【図１】本実施の形態のタイムスタンプサーバの内部クロックが計測する時刻の一例を示した図である。
【図２】本実施の形態に係るタイムスタンプシステムのシステム構成の一例を示したブロック図である。
【図３】耐タンパ部の動作モードの切替を説明するための図である。
【図４】耐タンパ部の動作モードの切替を説明するためのフローチャートである。
【図５】同期モードにおけるタイムスタンプサーバの動作を説明するための図である。
【図６】タイムスタンプサーバが外部クロックを同期させる手順を説明するためのフローチャートである。
【図７】タイムスタンプサーバが内部クロックを同期させる手順を説明するためのフローチャートである。
【図８】監査モードにおけるタイムスタンプサーバと監査サーバの動作を説明するための図である。
【図９】タイムスタンプサーバと監査サーバが時刻ラベルの監査を行う手順を説明するためのフローチャートである。
【図１０】内部クロックを段階的に監査する場合を説明するためのフローチャートである。
【図１１】時刻監査において用いられるプロトコルを説明するためのフローチャートである。
【図１２】タイムスタンプサーバのハードウェア的な構成の一例を示した図である。
【図１３】従来のタイムスタンプシステムのシステム構成を説明するためのブロック図である。
【符号の説明】
【０１４２】
１  タイムスタンプシステム
２  監査サーバ
３  時刻配信サーバ
４  タイムスタンプサーバ
５  クライアント端末
６  ネットワーク
１０  耐タンパ部
１２  外部クロック
１３  モード切替部
１５  監査用公開鍵
１６  タイムスタンプ用電子署名鍵
１７  内部クロック
１８  前回証明書
２２  原子時計
２３  監査用秘密鍵
【図１】
0004725978.tif 000002
【図２】
0004725978.tif 000003
【図３】
0004725978.tif 000004
【図４】
0004725978.tif 000005
【図５】
0004725978.tif 000006
【図６】
0004725978.tif 000007
【図７】
0004725978.tif 000008
【図８】
0004725978.tif 000009
【図９】
0004725978.tif 000010
【図１０】
0004725978.tif 000011
【図１１】
0004725978.tif 000012
【図１２】
0004725978.tif 000013
【図１３】
0004725978.tif 000014