(57)【特許請求の範囲】
【請求項１】
自装置の内部時計から時刻を取得する取得部と、
電子署名が付与された時刻を、標準時を配信する他装置から受信する受信部と、
前記受信部によって受信された第１の時刻と前記第１の時刻の受信時点で前記取得部から取得された第２の時刻との誤差を算出する算出部と、
前記他装置と遮断された状態で生成された発行対象データに関する情報を受け付ける受付部と、
前記受付部による前記発行対象データに関する情報の受付時点で前記取得部から取得された第３の時刻を、前記算出部によって算出された前記誤差を用いて補正する補正部と、
前記補正部による補正後の第４の時刻を署名対象とする電子署名を生成する生成部と、
を備え、
前記算出部は、
前記第４の時刻に関する電子署名の生成後、前記他装置と接続された時点で前記受信部から受信された第５の時刻と前記第５の時刻の受信時点で前記取得部から取得された第６の時刻との新たな誤差を算出し、
前記生成部は、
前記第１の時刻と前記誤差と前記発行対象データに関する情報と前記第４の時刻と前記第５の時刻と前記新たな誤差とを前記署名対象とする電子署名を生成する、
ことを特徴とする発行装置。
【請求項２】
前記内部時計は、耐タンパモジュールに含まれることを特徴とする請求項１に記載の発行装置。
【請求項３】
前記誤差と前記新たな誤差との差分が所定値より大きいか否かを判定する判定部と、
前記判定部によって前記差分が前記所定値より大きいと判定された場合、前記内部時計が変更されたことを出力する出力部と、
をさらに備えることを特徴とする請求項１または２に記載の発行装置。
【請求項４】
内部時計を有するコンピュータが、
電子署名が付与された第１の時刻を、標準時を配信する他装置から受信し、
受信した第１の時刻と前記第１の時刻の受信時点で前記内部時計から取得された第２の時刻との誤差を算出し、
前記他装置と遮断された状態で生成された発行対象データに関する情報を受け付け、
前記発行対象データに関する情報の受付時点で前記内部時計から取得された第３の時刻を、算出した前記誤差を用いて補正し、
補正後の第４の時刻を署名対象とする電子署名を生成し、
前記第４の時刻に関する電子署名の生成後、前記他装置と接続された時点で受信した第５の時刻と前記第５の時刻の受信時点で取得した第６の時刻との新たな誤差を算出し、
前記第１の時刻と前記誤差と前記発行対象データに関する情報と前記第４の時刻と前記第５の時刻と前記新たな誤差とを前記署名対象とする電子署名を生成する、
処理を実行することを特徴とする発行方法。
【請求項５】
内部時計を有するコンピュータに、
電子署名が付与された第１の時刻を、標準時を配信する他装置から受信し、
受信した第１の時刻と前記第１の時刻の受信時点で前記内部時計から取得された第２の時刻との誤差を算出し、
前記他装置と遮断された状態で生成された発行対象データに関する情報を受け付け、
前記発行対象データに関する情報の受付時点で前記内部時計から取得された第３の時刻を、算出した前記誤差を用いて補正し、
補正後の第４の時刻を署名対象とする電子署名を生成し、
前記第４の時刻に関する電子署名の生成後、前記他装置と接続された時点で受信した第５の時刻と前記第５の時刻の受信時点で取得した第６の時刻との新たな誤差を算出し、
前記第１の時刻と前記誤差と前記発行対象データに関する情報と前記第４の時刻と前記第５の時刻と前記新たな誤差とを前記署名対象とする電子署名を生成する、
処理を実行させることを特徴とする発行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイムスタンプを発行する発行装置、発行方法、および発行プログラムに関する。
【背景技術】
【０００２】
近年、デジタルカメラやビデオカメラ等で記録される画像、映像データは、警察、消防、医療等の業界で、証拠として採用されることが多くなってきている。このとき、データがいつ撮影されたものかが問われる場合がある。
【０００３】
たとえば、データの撮影時刻を保証する技術として、デジタルカメラの内部時計から得られた撮影時刻を画像に付加する場合、内部時計の設定変更の有無を確認し、ＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）サーバの配信する標準時に基づいて、画像に正確な撮影時刻を埋め込むものがある。また、画像データの取得時刻を証明する技術として、カメラはカウンタを有し、使用開始／終了時のカウンタ値をサーバに送信する。続けて、サーバ側は、時刻と共にカウンタ値を管理し、撮影時に、カメラは、画像データ、カウンタ値、位置情報、撮影情報に対して署名を付加し、最後にサーバがタイムスタンプを発行する技術が開示されている。
【０００４】
さらに、データの証拠としての証明力を向上するための情報認証装置に関する技術として、デジタルカメラ内の耐タンパモジュールに時刻発生装置、位置測定装置を有し、画像撮影時、デジタルカメラは、所有者情報と位置情報の個別ハッシュを算出する。続けて、デジタルカメラは、画像データ、個別ハッシュ、時刻情報に対するデジタル署名の付加に加え、時刻情報と位置情報のログ情報を記録する技術が開示されている（下記特許文献１〜３を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１５３５８２号公報
【特許文献２】特開２００７−２２１４３６号公報
【特許文献３】特開２００２−２１５０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術において、標準時を配信する装置との通信が遮断されているオフライン状態で取得されたデータに対して、取得時刻の第三者証明を行うことが困難であるという問題があった。
【０００７】
本発明は、上述した従来技術による問題点を解消するため、オフライン状態で取得した発行対象データの取得時刻の第三者証明が行える情報を発行できる発行装置、発行方法、および発行プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、自装置の内部時計から時刻を取得し、電子署名が付与された時刻を、標準時を配信する他装置から受信し、受信した第１の時刻と第１の時刻の受信時点で取得した第２の時刻との誤差を算出し、他装置と遮断された状態で生成された発行対象データに関する情報を受け付け、発行対象データに関する情報の受付時点で取得した第３の時刻を、算出した誤差を用いて補正し、補正後の第４の時刻を署名対象とする電子署名を生成する発行装置、発行方法、および発行プログラムが提案される。
【発明の効果】
【０００９】
本発明の一側面によれば、オフライン状態で取得した発行対象データの取得時刻の第三者証明が行える情報を発行できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、時刻保証システムの接続例を示す説明図である。
【図２】図２は、発行装置の動作例を示す説明図である。
【図３】図３は、実施の形態にかかるデータ生成装置のハードウェアの一例を示すブロック図である。
【図４】図４は、発行装置の機能例を示すブロック図である。
【図５】図５は、認証機関装置の機能例を示すブロック図である。
【図６】図６は、データ生成装置の機能例を示すブロック図である。
【図７】図７は、厳密時刻発行装置の機能例を示すブロック図である。
【図８】図８は、検証装置の機能例を示すブロック図である。
【図９】図９は、発行時刻ログの記憶内容の一例を示す説明図である。
【図１０】図１０は、発行装置の厳密時刻取得時の動作例を示す説明図である。
【図１１】図１１は、発行装置のタイムスタンプ発行時の動作例を示す説明図である。
【図１２】図１２は、発行装置のオンライン復帰時の動作例を示す説明図である。
【図１３】図１３は、検証時の動作例を示す説明図である。
【図１４】図１４は、時刻監査・証明結果の画面表示例を示す説明図である。
【図１５】図１５は、ローカルタイマ時刻が変更された場合の動作例を示す説明図である。
【図１６】図１６は、時刻保証システム全体の処理の一例を示すフローチャートである。
【図１７】図１７は、電子署名の公開鍵登録処理の一例を示すフローチャートである。
【図１８】図１８は、電子署名付き情報の送受信処理および受信装置の検証処理の一例を示すフローチャートである。
【図１９−１】図１９−１は、厳密時刻取得処理の一例を示すフローチャート（その１）である。
【図１９−２】図１９−２は、厳密時刻取得処理の一例を示すフローチャート（その２）である。
【図２０−１】図２０−１は、タイムスタンプ発行処理の一例を示すフローチャート（その１）である。
【図２０−２】図２０−２は、タイムスタンプ発行処理の一例を示すフローチャート（その２）である。
【図２１−１】図２１−１は、時刻監査・証明処理の一例を示すフローチャート（その１）である。
【図２１−２】図２１−２は、時刻監査・証明処理の一例を示すフローチャート（その２）である。
【図２２−１】図２２−１は、タイムスタンプ検証処理の一例を示すフローチャート（その１）である。
【図２２−２】図２２−２は、タイムスタンプ検証処理の一例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、開示の発行装置、発行方法、および発行プログラムの実施の形態を詳細に説明する。
【００１２】
図１は、時刻保証システムの接続例を示す説明図である。タイムスタンプを発行し、検証する時刻保証システム１００は、データ生成装置１０１と、厳密時刻発行装置１０２と、認証機関装置１０３と、検証装置１０４と、検証者端末１０５と、を有する。データ生成装置１０１は、発行装置１０６を含む。また、データ生成装置１０１〜検証装置１０４は、ネットワーク１１０に接続しており、検証者端末１０５は、検証装置１０４と接続している。
【００１３】
データ生成装置１０１は、時刻証明の対象となるデータを生成する装置である。データ生成装置１０１は、映像、音声、画像を処理・記録するためのカメラ端末、文書等の作成・記録が可能なノートパソコン等に相当し、特に持ち運びが可能であることを想定する。さらに、データ生成装置１０１は、時刻保証システム１００内に複数存在してもよい。
【００１４】
厳密時刻発行装置１０２は、時刻の配信を行う機関が管理する装置であり、標準時と同期した正確な時刻を配信する。厳密時刻発行装置１０２は、たとえば、ＮＴＰサーバであってもよいし、または、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）機能を有し、ＧＰＳ時刻を用いて署名付きの時刻を配信可能な装置であってもよい。
【００１５】
認証機関装置１０３は、電子署名情報を管理する認証機関のサーバである。電子署名とは、署名対象を要約した要約情報を送信装置が保持する秘密鍵で暗号化した情報のことである。そして、送信装置は電子署名、署名対象、および公開鍵証明書を受信装置へ送信する。受信装置は、公開鍵証明書の有効性確認を行った上で、暗号化された電子署名を公開鍵証明書に含まれる公開鍵で復号し、署名対象から得た要約情報と比較を行う。この比較結果が同一か否かによって、認証機関装置１０３は、正当な相手からの送信か否かを判断する。詳細の処理については図１８にて後述する。
【００１６】
また、前述した要約情報とは、署名対象に対して暗号学的一方向性ハッシュ関数を用いて算出されたハッシュ情報であり、署名対象のサイズを圧縮できるという意味で、メッセージダイジェストともいわれる。また、暗号学的一方向性ハッシュ関数で生成されたハッシュ情報は、その署名対象からしか生成することができない唯一の情報となり、生成されたハッシュ情報から元の情報を復元することができないという特徴を持っている。
【００１７】
このため、情報の暗号化や電子署名生成にはよく使われている。この暗号学的一方向性ハッシュ関数には、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）、ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）−１、ＳＨＡ−２５６のようなアルゴリズムがある。情報に対してどのアルゴリズムを用いて要約情報を生成しているかについての情報（ハッシュ情報生成アルゴリズム）は公開鍵証明書に記載されている。
【００１８】
検証装置１０４は、送られてきた情報に付される署名情報の検証を行う。検証者端末１０５は、検証装置１０４の操作を行うための端末である。発行装置１０６は、データ生成装置１０１が生成したデータに対して、タイムスタンプを発行する。発行装置１０６の動作例について、図２にて説明する。
【００１９】
なお、時刻保証システム１００を利用する利用者としては、作成責任者、検証者の２名を想定している。作成責任者は、データ生成装置１０１の使用者である。作成責任者は、発行対象データの生成を行うときに、データ生成装置１０１のネットワーク１１０の外へ持ち出し、また、ネットワーク１１０内への返却を行う。検証者は、検証者端末１０５を用いる。
【００２０】
図２は、発行装置の動作例を示す説明図である。以下の説明にて、タイムスタンプは、第三者により発行対象データに対して正確な日時情報を付与し、付与時点でのデータの非改ざん証明が行えるデータであるとする。発行装置１０６は、内部時計となるローカルタイマ２０１を含む。また、時刻保証システム１００は、状態（Ａ）で示すように、発行装置１０６と厳密時刻発行装置１０２がネットワーク１１０で接続されている場合と、状態（Ｂ）で示すように、発行装置１０６と厳密時刻発行装置１０２が切断されている場合と、が存在する。
【００２１】
初めに、状態（Ａ）にて、発行装置１０６は、ネットワーク１１０を介して、厳密時刻発行装置１０２から、厳密時刻発行装置１０２の電子署名付きの第１の時刻として“１２：０１：００”を受信する。また、第１の時刻の受信時点で、発行装置１０６は、ローカルタイマ２０１から第２の時刻として“１２：００：００”を取得する。次に、発行装置１０６は、第１の時刻と第２の時刻との誤差“００：０１：００”（１２：０１：００−１２：００：００）を算出する。
【００２２】
次に、状態（Ｂ）にて、発行装置１０６は、タイムスタンプの発行対象となる発行対象データ２０２を受け付けると、ローカルタイマ２０１から、発行対象データ２０２取得時点となる第３の時刻“１２：０７：３４”を取得する。続けて、発行装置１０６は、誤差“００：０１：００”を用いて補正した第４の時刻“１２：０８：３４”を署名対象として電子署名を生成し、生成した電子署名をタイムスタンプとして発行する。
【００２３】
このように、発行装置１０６は、オンライン時に受信した標準時と受信時点のローカルタイマの時刻との差分を算出しておき、オフライン時に発行対象データの取得時点のローカル時刻を、差分を用いて補正した時刻に署名する。これにより、発行装置１０６は、署名付きの時刻がタイムスタンプとなり、オフライン時に取得した発行対象データの取得時刻の正当性を担保できる。以下、図３〜図２２−２にて、発行装置１０６を含めた時刻保証システム１００の説明を詳細に行う。
【００２４】
（データ生成装置のハードウェア）
図３は、実施の形態にかかるデータ生成装置のハードウェアの一例を示すブロック図である。図３において、データ生成装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、を含む。また、データ生成装置１０１は、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、を含む。また、ユーザやその他の機器との入出力装置としてデータ生成装置１０１は、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、発行装置１０６と、を含む。また、各部はバス３１２によってそれぞれ接続されている。
【００２５】
ここで、ＣＰＵ３０１は、データ生成装置１０１の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００２６】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御にしたがって光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２７】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。たとえば、ディスプレイ３０８は、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２８】
Ｉ／Ｆ３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク１１０に接続され、ネットワーク１１０を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク１１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２９】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、キーボード３１０は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。また、データ生成装置１０１は、マウス３１１の代わりとして、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００３０】
発行装置１０６は、たとえば、耐タンパモジュールの集積回路を収納したＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）チップを有する。発行装置１０６は、ＣＰＵ３２１、ローカルタイマ２０１、ＲＯＭ３２２、ＲＡＭ３２３、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）３２４、Ｉ／Ｆ３２５を有する。各部は、バス３２６によって接続されている。なお、発行装置１０６に含まれる全てのハードウェアが耐タンパモジュールであってもよいし、ローカルタイマ２０１が耐タンパモジュールであってもよい。
【００３１】
なお、耐タンパモジュールは、物理的あるいは論理的に内部の情報を読み取られることに対する耐性を有したモジュールである。たとえば、耐タンパモジュールは、逆アセンブラなどで容易に解析できないような機構を有していたり、または、ＬＳＩを解析するために保護層をはがすと、内部の回路まで破壊されるような機構を有していたりする。
【００３２】
ＣＰＵ３２１は、ＲＯＭ３２２、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などに記憶されているプログラムにしたがって各種の情報処理を行う中央処理装置である。具体的に、ＣＰＵ３２１は、鍵ペア（秘密鍵および公開鍵）の生成、ローカル時刻の出力、ローカル時刻に対する電子署名の生成などを行う。
【００３３】
ローカルタイマ２０１は、時計機能を搭載した装置である。ＲＯＭ３２２は、読み出し専用の記憶装置で、発行装置１０６を駆動するための基本的なプログラムやパラメータなどを格納している。ＲＡＭ３２３は、読み書き可能な記憶装置で、ＣＰＵ３２１が各種の情報処理を行う際のワーキングエリアを提供する。
【００３４】
ＥＥＰＲＯＭ３２４は、読み書きが可能な不揮発性の記憶装置であり、データやプログラムなどを記憶している。具体的に、ＥＥＰＲＯＭ３２４は、データとして、鍵ペア（秘密鍵および公開鍵）生成プログラム、発行装置１０６の秘密鍵、および公開鍵証明書、厳密時刻発行装置１０２の公開鍵証明書を記憶している。また、ＥＥＰＲＯＭ３２４は、プログラムとして、署名生成・検証プログラム、要約情報生成プログラム、発行時刻ログ生成プログラム、ＣＰＵ３２１を駆動するための基本的なプログラムであるＯＳなどを記憶している。
【００３５】
Ｉ／Ｆ３２５は、内部のインターフェースを司り、データ生成装置１０１からのデータの入出力を制御する。また、データ生成装置１０１は、発行対象データを生成するカメラデバイスや、マイクなどを有してもよい。また、厳密時刻発行装置１０２、認証機関装置１０３、検証装置１０４も、ＣＰＵ、ＲＯＭ、ＲＡＭなどを有している。
【００３６】
（発行装置の機能）
次に、発行装置１０６の機能について説明する。図４は、発行装置の機能例を示すブロック図である。発行装置１０６は、取得部４０１と、受信部４０２と、算出部４０３と、受付部４０４と、要約情報生成部４０５と、補正部４０６と、生成部４０７と、判定部４０８と、出力部４０９と、記憶部４１０と、を含む。この制御部となる機能（取得部４０１〜記憶部４１０）は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、図３に示したＲＯＭ３２２、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などである。
【００３７】
また、記憶部４１０は、発行対象データに対してタイムスタンプを発行した時刻を記憶する発行時刻ログ４１１と、認証機関装置１０３から発行された証明書と、証明書に対応する秘密鍵を管理する鍵記憶ＤＢ４１２とを含む。記憶部４１０は、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４の一部である。
【００３８】
取得部４０１は、自装置の内部時計から時刻を取得する機能を有する。たとえば、取得部４０１は、発行装置１０６の内部時計となるローカルタイマ２０１からローカル時刻を取得する。なお、取得した時刻は、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などの記憶領域に記憶される。
【００３９】
受信部４０２は、電子署名が付与された時刻を、標準時を配信する他装置から受信する機能を有する。他装置とは厳密時刻発行装置１０２である。たとえば、受信部４０２は、ネットワーク１１０を介して厳密時刻発行装置１０２から電子署名が付与された時刻を受信する。以下の説明では、厳密時刻発行装置１０２から受信した標準時を厳密時刻と定義する。なお、受信した時刻は、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などの記憶領域に記憶される。
【００４０】
算出部４０３は、受信部４０２によって受信された第１の時刻と第１の時刻の受信時点で取得部４０１から取得された第２の時刻との誤差を算出する機能を有する。たとえば、第１の時刻が“１２：０１：００”であり、第１の時刻の受信時点でローカルタイマ２０１から取得した第２の時刻が“１２：００：００”である場合、算出部４０３は、誤差を１２：０１：００−１２：００：００＝＋００：０１：００として算出する。
【００４１】
また、算出部４０３は、第４の時刻に関する電子署名の生成後、他装置と接続された時点で受信部４０２から受信された第５の時刻と第５の時刻の受信時点で取得部４０１から取得された第６の時刻との新たな誤差を算出してもよい。なお、第４の時刻とは、発行対象データに関する情報の取得時点で取得部４０１から取得された第３の時刻に対して、補正部４０６によって補正された時刻である。
【００４２】
たとえば、第５の時刻が“１３：０２：５０”であり、第５の時刻の受信時点でローカルタイマ２０１から取得した第６の時刻が“１４：０１：００”である場合、算出部４０３は、誤差を１３：０２：５０−１４：０１：３０＝−００：５８：４０として算出する。なお、算出した時刻は、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などの記憶領域に記憶される。
【００４３】
受付部４０４は、他装置と遮断された状態で生成された発行対象データに関する情報を受け付ける機能を有する。たとえば、受付部４０４は、厳密時刻発行装置１０２と遮断された状態で、データ生成装置１０１が生成した発行対象データに関する情報を受け付ける。発行対象データに関する情報とは、たとえば、発行対象データを引数とし、暗号学的一方向性ハッシュ関数を用いて生成された要約情報である。また、発行対象データに関する情報は、発行対象データそのものであってもよい。なお、受け付けた情報は、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などの記憶領域に記憶される。
【００４４】
要約情報生成部４０５は、受付部４０４から取得した発行対象データの要約情報を生成する機能を有する。たとえば、受付部４０４が発行対象データそのものを取得した場合、要約情報生成部４０５は、暗号学的一方向性ハッシュ関数を用いて発行対象データの要約情報を生成する。なお、生成した要約情報は、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などの記憶領域に記憶される。
【００４５】
補正部４０６は、受付部４０４による発行対象データに関する情報の受付時点で取得部４０１から取得された第３の時刻を、算出部４０３によって算出された誤差を用いて補正する機能を有する。たとえば、発行対象データに関する情報の取得時点で取得部４０１から取得された第３の時刻が“１２：０７：３４”となり、算出部４０３によって算出された誤差が“００：０１：００”となった場合を想定する。このとき、補正部４０６は、第３の時刻“１２：０７：３４”に誤差“００：０１：００”を加算することで第３の時刻を補正する。なお、補正された時刻は、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などの記憶領域に記憶される。
【００４６】
生成部４０７は、補正部４０６による補正後の第４の時刻を署名対象とする電子署名を生成する機能を有する。たとえば、生成部４０７は、第４の時刻として“１２：０８：３４”を署名対象として電子署名を生成する。なお、生成された電子署名は、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などの記憶領域に記憶される。
【００４７】
判定部４０８は、誤差と新たな誤差との差分が所定値より大きいか否かを判定する機能を有する。たとえば、算出部４０３によって算出された誤差が“＋００：０１：００”であり、発行対象データの電子署名の生成後に算出された新たな誤差が“−００：５８：４０”である場合を想定する。また、所定値が“００：３０：００”と設定されている場合を想定する。このとき、判定部４０８は、誤差と新たな誤差の差分＋００：０１：００−（−００：５８：４０）＝００：５９：４０が所定値“００：３０：００”より大きいことを判定する。なお、判定結果は、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などの記憶領域に記憶される。
【００４８】
出力部４０９は、判定部４０８によって差分が所定値より大きいと判定された場合、内部時計が変更されたことを出力する機能を有する。たとえば、判定部４０８によって差分が所定値より大きいと判定された場合、出力部４０９は、ローカルタイマ２０１が変更されたことを出力する。なお、具体的な出力先としては、Ｉ／Ｆ３２５を経由してデータ生成装置１０１へ送信してもよいし、ＲＡＭ３２３、ＥＥＰＲＯＭ３２４などの記憶領域に出力してもよい。
【００４９】
図５は、認証機関装置の機能例を示すブロック図である。認証機関装置１０３は、公開鍵ＤＢ（ＤａｔａＢａｓｅ）５０１と、証明書発行部５０２と、証明書検証部５０３と、通信部５０４と、を含む。公開鍵ＤＢ５０１は、発行装置１０６の公開鍵を蓄積する。証明書発行部５０２は、要求に応じて公開鍵証明書を発行する。証明書検証部５０３は、公開鍵証明書の検証を行う。通信部５０４は、ネットワーク１１０に接続しており、ネットワーク１１０経由で通信を行う。
【００５０】
図６は、データ生成装置の機能例を示すブロック図である。データ生成装置１０１は、データ生成部６０１と、データ管理ＤＢ６０２と、データ管理ＴＢ（Ｔａｂｌｅ）６０３と、通信部６０４と、を含む。データ生成部６０１は、時刻証明が可能なタイムスタンプの発行対象となる情報を生成する。データ管理ＤＢ６０２は、データ生成部６０１で生成された情報を記憶する。たとえば、図６に示すデータ管理ＤＢ６０２は、発行対象データ６１１−１〜発行対象データ６１１−４を記憶している。データ管理ＴＢ６０３は、データ管理ＤＢ６０２へのアクセス制御を行う。通信部６０４は、ネットワーク１１０経由での通信を行う。
【００５１】
図７は、厳密時刻発行装置の機能例を示すブロック図である。厳密時刻発行装置１０２は、厳密時刻発行部７０１と、署名生成部７０２と、通信部７０３と、を含む。厳密時刻発行部７０１は、厳密時刻を発行する機能を有する。署名生成部７０２は、認証機関装置１０３から発行された証明書と、証明書に対応する秘密鍵を管理し、発行する厳密時刻に対して署名情報を付加する機能を有する。通信部７０３は、ネットワーク１１０経由で通信を行う。
【００５２】
図８は、検証装置の機能例を示すブロック図である。検証装置１０４は、データ管理ＤＢ８０１と、データ管理ＴＢ８０２と、署名検証部８０３と、要約情報生成部８０４と、発行時刻ログ検証部８０５と、通信部８０６と、を含む。データ管理ＤＢ８０１は、データ生成装置１０１から送信されてきた検証対象データを記憶する。データ管理ＴＢ８０２は、データ管理ＤＢ８０１へのアクセス制御を行う。署名検証部８０３は、送信されてきた情報に付される署名情報の検証を行う。要約情報生成部８０４は、検証対象データの要約情報を生成する。発行時刻ログ検証部８０５は、発行時刻ログ４１１の検証を行う。通信部８０６は、ネットワーク１１０経由で通信を行う。
【００５３】
図９は、発行時刻ログの記憶内容の一例を示す説明図である。発行時刻ログ４１１は、発行対象データの要約情報、ログ内容、厳密時刻、ローカルタイマ時刻、ローカル時刻、誤差という６つのフィールドを含む。発行対象データの要約情報フィールドには、発行対象データの特徴を示す情報が格納される。たとえば、発行対象データの要約情報は、暗号学的一方向性ハッシュ関数を用いて生成された要約情報が格納される。
【００５４】
ログ内容フィールドには、発行装置１０６で実行された動作内容が格納される。厳密時刻フィールドには、厳密時刻発行装置１０２から受信した時刻が格納される。また、厳密時刻フィールドには、署名付きの厳密時刻の電子署名情報が格納されてもよい。ローカルタイマ時刻フィールドには、ローカルタイマ２０１から取得した時刻が格納される。ローカル時刻フィールドには、ローカルタイマ時刻を、誤差を用いて補正した時刻が格納される。誤差フィールドには、厳密時刻とローカルタイマが格納される。
【００５５】
たとえば、レコード４１１−１は、発行装置１０６が厳密時刻発行装置１０２から、署名付きの厳密時刻“２０１１／０３／０１  １２：０１：００”を、ローカルタイマ２０１が“２０１１／０３／０１  １２：００：００”を示す時に受信したことを示している。また、レコード４１１−１は、厳密時刻とローカルタイマ時刻との誤差が“＋００：０１：００”であることを示している。レコード４１１−２は、署名付きの厳密時刻“２０１１／０３／０１  １２：０１：００”の電子署名情報が“Ｆ１Ｄ２８１ＤＢＡ３…”であることを示している。
【００５６】
レコード４１１−３は、要約情報が“ＡＢ１２３５Ｃ…”である発行対象データ６１１−１を取得した時点でのローカルタイマ時刻が“２０１１／０３／０１  １２：０７：３４”であることを示している。さらに、レコード４１１−３は、ローカルタイマ時刻を、誤差を用いて補正したローカル時刻が“２０１１／０３／０１  １２：０８：３４”であることを示している。続けて、レコード４１１−４は、要約情報が“ＣＦ８２３ＦＡ…”である発行対象データ６１１−２を取得した時点でのローカルタイマ時刻、ローカル時刻を示している。同様に、レコード４１１−５、レコード４１１−６は、それぞれ、要約情報が“２４６５３２Ｃ…”である発行対象データ６１１−３と、要約情報が“Ｆ２１９ＤＢ２…”である発行対象データ６１１−４と、のローカルタイマ時刻とローカル時刻を示している。
【００５７】
レコード４１１−７は、発行装置１０６が厳密時刻発行装置１０２から、署名付きの厳密時刻“２０１１／０３／０１  １３：０２：５０”を、ローカルタイマ２０１が“２０１１／０３／０１  １３：０１：３０”を示す時に受信したことを示している。また、レコード４１１−７は、厳密時刻とローカルタイマ時刻との誤差が“＋００：０１：２０”であることを示している。レコード４１１−８は、署名付きの厳密時刻“２０１１／０３／０１  １３：０２：５０”の電子署名情報が“３Ｆ１２Ａ９４４Ｄ０…”であることを示している。次に、図１０〜図１５にて、時刻保証システム１００での動作例を示す。
【００５８】
図１０は、発行装置の厳密時刻取得時の動作例を示す説明図である。オンライン時となる厳密時刻発行装置１０２と接続された状態にて、発行装置１０６は、データ生成装置１０１を介して、厳密時刻発行装置１０２から署名付き厳密時刻（電子署名情報：Ｆ１Ｄ２８１ＤＢＡ３…）を受信する。受信した署名付き厳密時刻は、発行時刻ログ４１１のレコード４１１−１、レコード４１１−２として記憶される。
【００５９】
図１１は、発行装置のタイムスタンプ発行時の動作例を示す説明図である。図１１で示す時刻保証システム１００は、図１０の状態から、オフライン時となり、厳密時刻発行装置１０２と遮断された状態である。この状態で、データ生成装置１０１が、発行対象データ６１１−１〜発行対象データ６１１−４を生成し、発行対象データに対するタイムスタンプ発行要求を発行装置１０６に送信する。
【００６０】
タイムスタンプ発行要求を受信した発行装置１０６は、ローカル時刻を発行し、発行時刻ログ４１１に記憶する。具体的には、発行装置１０６は、発行対象データ６１１−１〜発行対象データ６１１−４について、タイムスタンプとなる署名付きローカル時刻を発行し、レコード４１１−３〜レコード４１１−６に記憶する。
【００６１】
図１２は、発行装置のオンライン復帰時の動作例を示す説明図である。図１２で示す時刻保証システム１００は、オフライン状態にて発行対象データ６１１−１〜発行対象データ６１１−４が生成された後、再びオンラインに復帰した状態を示している。オンラインとなった発行装置１０６は、データ生成装置１０１を介して、厳密時刻発行装置１０２から署名付き厳密時刻を受信する。受信した署名付き厳密時刻は、発行時刻ログ４１１のレコード４１１−７、レコード４１１−８として記憶される。
【００６２】
また、発行装置１０６は、発行時刻ログ４１１の取出要求を受信した場合には、発行時刻ログ４１１全体を署名対象として、電子署名を生成し、発行装置１０６の外部に出力する。
【００６３】
図１３は、検証時の動作例を示す説明図である。図１３では、図１２の状態から、署名が付与された発行時刻ログ４１１が発行装置１０６の外部に出力された状態を示している。発行時刻ログ４１１を受信した検証装置１０４は、付与された電子署名を用いて、発行時刻ログ４１１全体の改ざんの有無を検証する。
【００６４】
改ざんされていないことが証明できた場合、続けて、検証装置１０４は、検証対象データ１３０１の要約情報を生成し、発行対象データの要約情報から一致するレコードを抽出する。レコードが抽出できた場合、検証装置１０４は、検証対象データ１３０１がローカル時刻“２０１１／０３／０１  １２：０８：３４”にて、発行装置１０６によって、タイムスタンプが発行されたことを証明することができる。証明結果は、検証者端末１０５に送信される。図１４にて、証明結果の表示例について説明する。
【００６５】
図１４は、時刻監査・証明結果の画面表示例を示す説明図である。図１４では、検証者端末１０５のディスプレイに表示されている、検証対象データ１３０１（要約情報：ＡＢ１２３５Ｃ…）に対する時刻監査・証明結果の一例を示している。初めに、検証者端末１０５は、ＶＥＲＩＦＹ１にて、検証対象データが発行対象データ（要約情報：ＡＢ１２３５Ｃ…）であり、発行対象データの発行されたローカル時刻“２０１１／０３／０１  １２：０８：３４”を表示する。これにより、検証者は、検証対象データの生成時刻の証明結果を確認できる。また、検証者端末１０５は、ローカル時刻と厳密時刻との誤差を表示している。これにより、検証者は、約＋００：０１：００の誤差補正がなされたことを確認できる。
【００６６】
また、検証者端末１０５は、ＶＥＲＩＦＹ２で示す、発行装置１０６の証明書確認ボタンが押下されると、ローカル時刻に付与された電子署名の詳細情報を表示する。これにより、検出者は、電子署名の詳細情報から、表示されているローカル時刻が複数の発行装置１０６のうち、どの発行装置１０６で付与された時刻かを確認することができる。
【００６７】
また、検証者端末１０５は、ＶＥＲＩＦＹ３にて、発行装置１０６の使用期間を証明することも可能であり、たとえば、発行装置１０６の使用開始時、および終了時に取得した厳密時刻の情報を表示する。図１５の例では、検証者端末１０５は、２０１１／０３／０１  １２：０１：００から２０１１／０３／０１  １３：０２：５０の期間で発行装置１０６が使用されたことを表示する。さらに、使用開始時、および終了時における厳密時刻とローカルタイマ時刻の誤差範囲も記録されているため、検証者端末１０５は、発行装置１０６の使用期間において、ローカルタイマ時刻にどれだけの誤差が生じたかについても表示できる。
【００６８】
また、検証者端末１０５は、ＶＥＲＩＦＹ４で示す、厳密時刻発行装置１０２の証明書確認ボタンが押下されることで、厳密時刻に付与された電子署名の詳細情報を表示する。これにより、検出者は、どの厳密時刻配信機関から厳密時刻を取得したかを確認することができる。また、検証者端末１０５は、ＶＥＲＩＦＹ１で確認した誤差補正、ＶＥＲＩＦＹ３で確認した発行装置１０６の使用期間、ローカルタイマ時刻の誤差範囲が、ＶＥＲＩＦＹ４に基づくものであることを表示する。また、検証者端末１０５は、ＶＥＲＩＦＹ５で示す、発行時刻ログの詳細閲覧ボタンが押下されると、発行時刻ログを表示する。
【００６９】
図１５は、ローカルタイマ時刻が変更された場合の動作例を示す説明図である。図１５では、ローカルタイマ２０１が耐タンパモジュールによって保護されていない場合を想定しており、発行装置１０６のローカルタイマ２０１が作成責任者によって変更された場合を示している。具体的に図１５では、ローカルタイマ時刻“２０１１／０３／０１  １２：１５：０６”の後に、ローカルタイマ２０１が変更されている場合を想定している。
【００７０】
したがって、発行装置１０６は、レコード４１１−５’が示すように、発行対象データ６１１−３のローカル時刻を“２０１１／０３／０１  １３：３３：１９”に補正する。同様に、発行装置１０６は、レコード４１１−６’が示すように、発行対象データ６１１−４のローカル時刻を“２０１１／０３／０１  １３：５０：２１”に補正する。
【００７１】
次に、ネットワーク１１０が再びオンラインの状態となった場合、時刻保証システム１００は、厳密時刻発行装置１０２から署名付き厳密時刻を受信する。受信した署名付き厳密時刻は、発行時刻ログ４１１のレコード４１１−７’、レコード４１１−８として記憶される。なお、レコード４１１−７’のローカルタイマ時刻には“２０１１／０３／０１  １４：０１：３０”が格納され、誤差フィールドには、“−００：５８：４０”が格納される。
【００７２】
発行装置１０６は、判定部４０８により、レコード４１１−１の誤差フィールド“＋００：０１：００”と、今回受信した厳密時刻の新たな誤差となるレコード４１１−７’の誤差フィールド“−００：５８：４０”との差分が所定値より大きいか否かを判定する。たとえば、所定値が“００：３０：００”であったとすると、差分＝＋００：０１：００−（−００：５８：４０）＝００：５９：４０となり、差分が所定値より大きくなる。このとき、発行装置１０６は、ローカルタイマが変更された旨をデータ生成装置１０１に出力する。データ生成装置１０１が出力結果をディスプレイ３０８に表示することで、作成責任者は、ローカルタイマが変更され、タイムスタンプが示す時刻が保証できない状態であることが確認できる。
【００７３】
続けて、図１６〜図２２−２にて、図１０〜図１５で示した動作を行うフローチャートを示す。図１６では、時刻保証システム１００全体の処理のフローチャートを示す。図１９−１〜図２１−２にて、時刻保証システム１００全体の処理から呼ばれる、厳密時刻取得処理、タイムスタンプ発行処理、時刻監査・証明処理について説明する。また、図２２−１、図２２−２にて、時刻監査・証明処理から呼ばれるタイムスタンプ検証処理について説明する。また、電子署名生成、電子署名検証は、後述する図１７での電子署名の公開鍵登録処理を事前に行った後、図１８での電子署名付き情報の送受信処理、および受信装置の検証処理が行われる。
【００７４】
図１６は、時刻保証システム全体の処理の一例を示すフローチャートである。時刻保証システム１００は、発行装置１０６と厳密時刻発行装置１０２とのネットワーク１１０がオンラインの状態にて、厳密時刻取得処理を実行する（ステップＳ１６０１）。次に、時刻保証システム１００は、発行装置１０６と厳密時刻発行装置１０２とのネットワーク１１０が遮断され、オフラインの状態にて、タイムスタンプ発行処理を実行する（ステップＳ１６０２）。
【００７５】
続けて、ネットワーク１１０が再びオンラインの状態となった場合、時刻保証システム１００は、厳密時刻取得処理を実行する（ステップＳ１６０３）。次に、検証対象データを検証する場合に、時刻保証システム１００は、時刻監査・証明処理を実行し（ステップＳ１６０４）、処理を終了する。
【００７６】
図１７は、電子署名の公開鍵登録処理の一例を示すフローチャートである。図１７では送信装置と認証機関装置１０３との間での公開鍵の登録を行うフローチャートを示す。本実施の形態では、データ生成装置１０１と厳密時刻発行装置１０２が電子署名の送信装置となる。
【００７７】
初めに、送信装置は、鍵ペア（秘密鍵、および公開鍵）の生成を行う（ステップＳ１７０１）。続けて、送信装置は、証明書発行依頼情報の入力をする（ステップＳ１７０２）。証明書発行依頼情報の入力が終了した後、送信装置は、その入力された証明書発行依頼情報と公開鍵を認証機関装置１０３へ送信する（ステップＳ１７０３）。
【００７８】
認証機関装置１０３は、証明書発行依頼情報と公開鍵を通信部５０４にて受信する（ステップＳ１７０４）。認証機関装置１０３の証明書発行部５０２は、公開鍵を含む公開鍵証明書を生成し（ステップＳ１７０５）、生成した公開鍵証明書を公開鍵ＤＢ５０１に蓄積する（ステップＳ１７０６）。その後、証明書発行部５０２は、通信部５０４を制御し、ネットワーク１１０を介し、証明書発行依頼情報を送信してきた送信装置へ、発行した公開鍵証明書を送信し（ステップＳ１７０７）、電子署名の公開鍵登録処理を終了する。
【００７９】
公開鍵証明書を受信した送信装置は（ステップＳ１７０８）、ステップＳ１７０１で生成した秘密鍵、および認証機関装置１０３から発行された公開鍵証明書を自身が有する記憶装置に蓄積し（ステップＳ１７０９）、電子署名の公開鍵登録処理を完了する。記憶領域として、具体的に、データ生成装置１０１は発行装置１０６内の鍵記憶ＤＢ４１２、厳密時刻発行装置１０２は署名生成部７０２に、秘密鍵と公開鍵証明書を蓄積する。
【００８０】
図１８は、電子署名付き情報の送受信処理および受信装置の検証処理の一例を示すフローチャートである。図１９では送信装置と受信装置の間での電子署名付き情報の送受信処理、受信装置と認証機関装置１０３の間での電子署名検証処理を示す。本実施の形態では、送信装置が厳密時刻発行装置１０２である場合、受信装置がデータ生成装置１０１となり、送信装置がデータ生成装置１０１である場合、受信装置が検証装置１０４となる。
【００８１】
初めに、送信装置は、署名対象の要約情報（ハッシュ情報）を記憶領域に記憶している秘密鍵によって暗号化する（ステップＳ１８０１）。暗号化してできた情報が電子署名となる。続けて、送信装置は、署名対象と電子署名と同じく記憶領域に記憶している公開鍵証明書とを受信装置に送信し（ステップＳ１８０２）、電子署名付き情報の送信処理を終了する。
【００８２】
受信装置は、署名対象と電子署名と公開鍵証明書とを受信し（ステップＳ１８０３）、受信した公開鍵証明書の有効期限や失効情報等を確認するため、認証機関装置１０３に対して公開鍵証明書を送信する（ステップＳ１８０４）。本実施の形態では、認証機関装置１０３が証明書発行・証明書検証の一連の機能をサポートしているものとする。次に認証機関装置１０３は、公開鍵証明書を受信し（ステップＳ１８０５）、有効性の検証を行い（ステップＳ１８０６）、検証結果を受信装置に対して送信し（ステップＳ１８０７）、検証処理を終了する。
【００８３】
受信装置は、検証結果を受信し（ステップＳ１８０８）、検証結果が有効であるかを判断する（ステップＳ１８０９）。検証結果が有効でない場合（ステップＳ１８０９：Ｎｏ）、受信装置は、改変のないことを証明できないと判断し（ステップＳ１８１３）、検証処理を終了する。検証結果が有効である場合（ステップＳ１８０９：Ｙｅｓ）、受信装置は、受信した署名対象の要約情報（ハッシュ情報）を生成し（ステップＳ１８１０）、さらに受信した電子署名を公開鍵で復号する（ステップＳ１８１１）。そして受信装置は、生成した署名対象の要約情報と、電子署名を公開鍵で復号した値が一致するかを判断する（ステップＳ１８１２）。
【００８４】
一致しない場合（ステップＳ１８１２：Ｎｏ）、受信装置は、ステップＳ１８１３の処理に移行し、受信装置は、処理を終了する。一致する場合（ステップＳ１８１２：Ｙｅｓ）、受信装置は、改変のないことが証明できたと判断し（ステップＳ１８１４）、署名対象を保持し（ステップＳ１８１５）、検証処理を終了する。ステップＳ１８１３を通った場合に、受信装置の操作端末、たとえば、検証者端末１０５に対して、電子署名が証明できなかった旨の表示を行う通知処理を行ってもよい。
【００８５】
図１９−１、図１９−２は、厳密時刻取得処理の一例を示すフローチャートである。初めに、図１９−１にて、データ生成装置１０１は、厳密時刻取得指示を厳密時刻発行装置１０２に送信する（ステップＳ１９０１）。送信後、データ生成装置１０１は、厳密時刻発行装置１０２からの応答があるまで待機する。次に、厳密時刻発行装置１０２は、厳密時刻取得指示を受信し（ステップＳ１９０２）、厳密時刻を発行し（ステップＳ１９０３）、厳密時刻を署名対象として、電子署名生成を行う（ステップＳ１９０４）。電子署名の生成後、厳密時刻発行装置１０２は、署名付き厳密時刻をデータ生成装置１０１に送信し（ステップＳ１９０５）、厳密時刻取得処理を終了する。
【００８６】
次に、データ生成装置１０１は、署名付き厳密時刻を受信し（ステップＳ１９０６）、署名付き厳密時刻を発行装置１０６に送信し（ステップＳ１９０７）、後述するステップＳ１９１２の処理まで待機する。そして、発行装置１０６は、署名付き厳密時刻を受信する（ステップＳ１９０８）。次に、発行装置１０６は、厳密時刻に対する電子署名検証を行う（ステップＳ１９０９）。
【００８７】
続けて、図１９−２にて、ステップＳ１９０９の処理後、発行装置１０６は、電子署名検証の検証結果が改変なしであったか否かを判断する（ステップＳ１９１０）。改変ありであった場合（ステップＳ１９１０：Ｎｏ）、発行装置１０６は、エラー通知をデータ生成装置１０１に送信し（ステップＳ１９１１）、厳密時刻取得処理を終了する。待機していたデータ生成装置１０１は、エラー通知を受信したか否かを判断する（ステップＳ１９１２）。エラー通知を受信した場合（ステップＳ１９１２：Ｙｅｓ）、データ生成装置１０１は、エラー通知を表示し（ステップＳ１９１３）、厳密時刻取得処理を終了する。また、エラー通知を受信した場合（ステップＳ１９１２：Ｎｏ）、データ生成装置１０１は、そのまま厳密時刻取得処理を終了する。
【００８８】
改変なしであった場合（ステップＳ１９１０：Ｙｅｓ）、発行装置１０６は、ローカルタイマ２０１からローカルタイマ時刻を取得する（ステップＳ１９１４）。取得後、発行装置１０６は、厳密時刻とローカルタイマ時刻に誤差が有るか否かを判断する（ステップＳ１９１５）。誤差が有る場合（ステップＳ１９１５：Ｙｅｓ）、発行装置１０６は、厳密時刻とローカルタイマ時刻との誤差を算出する（ステップＳ１９１６）。算出後、または、誤差が無い場合（ステップＳ１９１５：Ｎｏ）、発行装置１０６は、前回の誤差と今回の誤差との差分が所定値より大きいか否かを判断する（ステップＳ１９１７）。
【００８９】
差分が所定値より大きい場合（ステップＳ１９１７：Ｙｅｓ）、発行装置１０６は、エラー通知をデータ生成装置１０１に出力する（ステップＳ１９１８）。エラー通知の送信後、または、差分が所定値以下となる場合（ステップＳ１９１７：Ｎｏ）、発行装置１０６は、署名付き厳密時刻とローカルタイマ時刻と誤差とを発行時刻ログ４１１に記憶し（ステップＳ１９１９）、厳密時刻取得処理を終了する。なお、発行装置１０６は、ステップＳ１９１８の処理終了後、ステップＳ１９１９を実行せずに厳密時刻取得処理を終了してもよい。
【００９０】
図２０−１、図２０−２は、タイムスタンプ発行処理の一例を示すフローチャートである。初めに、図２０−１にて、データ生成装置１０１は、発行対象データを生成し（ステップＳ２００１）、発行対象データに対するタイムスタンプ発行要求として、発行対象データを発行装置１０６に送信する（ステップＳ２００２）。送信後、データ生成装置１０１は、発行装置１０６からの応答があるまで待機する。
【００９１】
次に、発行装置１０６は、発行対象データを受け付ける（ステップＳ２００３）。同時に、発行装置１０６は、ローカルタイマからローカルタイマ時刻を取得する（ステップＳ２００４）。続けて、発行装置１０６は、ステップＳ１９１６の処理で算出した誤差が有ったか否かを判断する（ステップＳ２００５）。誤差が有った場合（ステップＳ２００５：Ｙｅｓ）、発行装置１０６は、ローカルタイマ時刻について、誤差を用いて補正する（ステップＳ２００６）。続けて、発行装置１０６は、補正後の値をローカル時刻に設定する（ステップＳ２００７）。誤差が無かった場合（ステップＳ２００５：Ｎｏ）、発行装置１０６は、ローカルタイマ時刻をローカル時刻に設定する（ステップＳ２００８）。
【００９２】
続けて、図２０−２にて、ステップＳ２００７、またはステップＳ２００８の処理後、発行装置１０６は、ローカル時刻を署名対象として、電子署名生成を行う（ステップＳ２００９）。電子署名の生成後、発行装置１０６は、署名付きローカル時刻をデータ生成装置１０１に送信する（ステップＳ２０１０）。
【００９３】
応答を待ち受けていたデータ生成装置１０１は、署名付きローカル時刻を受信し（ステップＳ２０１１）、発行対象データと署名付きローカル時刻を対応づけてデータ管理ＤＢ６０２に記憶し（ステップＳ２０１２）、タイムスタンプ発行処理を終了する。
【００９４】
また、署名付きローカル時刻の送信後、発行装置１０６は、発行対象データの要約情報を生成し（ステップＳ２０１３）、要約情報と署名付きローカル時刻と、を発行時刻ログ４１１に記憶し（ステップＳ２０１４）、タイムスタンプ発行処理を終了する。なお、ステップＳ２０１４の処理にて、発行装置１０６は、さらに、ローカルタイマ時刻を発行時刻ログ４１１に記憶してもよい。また、発行装置１０６は、発行対象データに対する要約情報生成時に使用した暗号学的一方向性ハッシュ関数として、たとえば、ＳＨＡ−２５６を使用した旨を、発行時刻ログ４１１に記録してもよい。発行時刻ログ４１１は、時刻監査・証明処理時に使用する。
【００９５】
また、図２０−１、図２０−２で示すタイムスタンプ発行処理は、発行装置１０６の処理となるステップＳ２０１３の処理は、データ生成装置１０１の処理となるステップＳ２００１の後に、データ生成装置１０１が実行してもよい。この場合、ステップＳ２００２の処理は、“発行対象データの要約情報を送信”となり、ステップＳ２００３の処理は、“発行対象データの要約情報を受付”となる。
【００９６】
図２１−１、図２１−２は、時刻監査・証明処理の一例を示すフローチャートである。データ生成装置１０１は、発行時刻ログ４１１の取出指示を発行装置１０６に送信する（ステップＳ２１０１）。なお、具体的な取出指示として、データ生成装置１０１は、たとえば、時刻監査・証明処理の検証対象となる検証対象データを発行装置１０６に送信してもよい。また、検証対象データは、データ管理ＤＢ６０２に記憶されている発行対象データ６１１−１〜発行対象データ６１１−４のいずれかであってもよいし、他の装置から受信したデータであってもよい。送信後、データ生成装置１０１は、発行装置１０６からの応答があるまで待機する。
【００９７】
発行装置１０６は、発行時刻ログ４１１の取出指示を受信する（ステップＳ２１０２）。次に、発行装置１０６は、発行時刻ログ４１１を署名対象として、電子署名生成を行う（ステップＳ２１０３）。なお、ステップＳ２１０３の処理における電子署名生成は、鍵記憶ＤＢ４１２に記憶されている秘密鍵を用いて生成される。続けて、発行装置１０６は、署名付き発行時刻ログ４１１をデータ生成装置１０１に送信し（ステップＳ２１０４）、時刻監査・証明処理を終了する。
【００９８】
データ生成装置１０１は、署名付き発行時刻ログ４１１を受信し（ステップＳ２１０５）、検証対象データと署名付き発行時刻ログ４１１を検証装置１０４に送信し（ステップＳ２１０６）、時刻監査・証明処理を終了する。
【００９９】
検証装置１０４は、検証対象データと署名付き発行時刻ログ４１１を受信し（ステップＳ２１０７）、検証対象データと署名付き発行時刻ログ４１１をデータ管理ＤＢ８０１に記憶する（ステップＳ２１０８）。
【０１００】
続いて、図２１−２にて、ステップＳ２１０８の処理後、検証装置１０４は、記憶完了通知を検証者端末１０５に送信する（ステップＳ２１０９）。送信後、検証装置１０４は、検証者端末１０５からの応答があるまで待機する。検証者端末１０５は、記憶完了通知を受信し（ステップＳ２１１０）、検証者の指示によって、検証対象データのタイムスタンプ検証指示を検証装置１０４に送信する（ステップＳ２１１１）。送信後、検証者端末１０５は、検証者端末１０５からの応答があるまで待機する。
【０１０１】
検証装置１０４は、検証対象データのタイムスタンプ検証指示を受信し（ステップＳ２１１２）、データ管理ＤＢ８０１から、検証対象データと署名付き発行時刻ログ４１１を取り出す（ステップＳ２１１３）。続けて、検証装置１０４は、検証対象データに対する、タイムスタンプ検証処理を実行する（ステップＳ２１１４）。なお、タイムスタンプ検証処理の詳細は、図２２−１、図２２−２にて後述する。タイムスタンプ検証処理の終了後、検証装置１０４は、検証結果が成功を示したか否かを判断する（ステップＳ２１１５）。
【０１０２】
成功である場合（ステップＳ２１１５：Ｙｅｓ）、検証装置１０４は、表示用データを送信し（ステップＳ２１１６）、時刻監査・証明処理を終了する。なお、表示用データは、タイムスタンプ検証処理にて設定され、具体的には、図１４のＶＥＲＩＦＹ１、ＶＥＲＩＦＹ３に含まれるデータである。失敗である場合（ステップＳ２１１５：Ｎｏ）、検証装置１０４は、エラー通知を検証者端末１０５に送信し（ステップＳ２１１７）、時刻監査・証明処理を終了する。
【０１０３】
検証装置１０４からの応答を受信待ちであった検証者端末１０５は、表示用データを受信したか否かを判断する（ステップＳ２１１８）。表示用データを受信した場合（ステップＳ２１１８：Ｙｅｓ）、検証者端末１０５は、時刻監査・証明結果の画面を表示し（ステップＳ２１１９）、時刻監査・証明処理を終了する。エラー通知を受信した場合（ステップＳ２１１８：Ｎｏ）、検証者端末１０５は、エラー通知を表示し（ステップＳ２１２０）、時刻監査・証明処理を終了する。
【０１０４】
図２２−１、図２２−２は、タイムスタンプ検証処理の一例を示すフローチャートである。初めに、図２１−１にて、検証装置１０４は、発行時刻ログ４１１に対する電子署名検証を行う（ステップＳ２２０１）。実行後、検証装置１０４は、検証結果が改変なしか否かを判断する（ステップＳ２２０２）。改変なしの場合（ステップＳ２２０２：Ｙｅｓ）、検証装置１０４は、表示用データを空に設定し（ステップＳ２２０３）、発行時刻ログ４１１の先頭のレコードから、厳密時刻、ローカルタイマ時刻、誤差を表示用データに追加する（ステップＳ２２０４）。
【０１０５】
表示用データに追加後、検証装置１０４は、先頭の検証対象データを選択する（ステップＳ２２０５）。また、改変ありの場合（ステップＳ２２０２：Ｎｏ）、検証装置１０４は、検証結果を失敗として出力し（ステップＳ２２０６）、タイムスタンプ検証処理を終了する。
【０１０６】
続いて、図２２−２にて、ステップＳ２２０５の処理後、検証装置１０４は、選択された検証対象データの要約情報を生成する（ステップＳ２２０７）。次に、検証装置１０４は、発行時刻ログ４１１の発行対象データの要約情報フィールドから、生成された要約情報と一致するレコードを検索する（ステップＳ２２０８）。検索後、検証装置１０４は、要約情報が一致するレコードが存在したか否かを判断する（ステップＳ２２０９）。
【０１０７】
一致するレコードが存在した場合（ステップＳ２２０９：Ｙｅｓ）、検証装置１０４は、一致するレコード内の、発行対象データの要約情報、ローカルタイマ時刻とローカル時刻を表示用データに追加する（ステップＳ２２１０）。続けて、検証装置１０４は、検索していない検証対象データが存在するか否かを判断する（ステップＳ２２１１）。
【０１０８】
存在する場合（ステップＳ２２１１：Ｙｅｓ）、検証装置１０４は、検索していない検証対象データを選択し（ステップＳ２２１２）、ステップＳ２２０７の処理に移行する。存在しない場合（ステップＳ２２１１：Ｎｏ）、検証装置１０４は、発行時刻ログ４１１の末尾から２番目のレコードから、厳密時刻、ローカルタイマ時刻、誤差を表示用データに追加する（ステップＳ２２１３）。追加後、検証装置１０４は、検証結果を成功として出力し（ステップＳ２２１４）、タイムスタンプ検証処理を終了する。また、一致するレコードが存在しない場合（ステップＳ２２０９：Ｎｏ）、検証装置１０４は、検証結果を失敗として出力し（ステップＳ２２１５）、タイムスタンプ検証処理を終了する。
【０１０９】
以上説明したように、発行装置、発行方法、および発行プログラムによれば、オンライン時に受信した標準時と受信時点の内部時計の時刻との差分を算出しておき、オフライン時、発行対象データの受付時点での内部時計の時刻を差分で補正した時刻に署名する。これにより、発行装置は、オフライン時に取得した発行対象データに対して、取得時刻の正当性を担保できる情報となるタイムスタンプを発行することができる。
【０１１０】
また、発行装置は、発行対象データの受付時点となる時刻に関する電子署名の生成後にオンラインとなった場合、標準時を受信し、受信時と内部時計の時刻との新たな誤差を算出する。続けて、発行装置は、発行対象データ受付前の標準時と標準時および内部時計の誤差と発行対象データに関する情報と発行対象データ受付の時刻と発行対象データ受付後の標準時と標準時および内部時計の新たな誤差と、を署名対象として電子署名を生成してもよい。これにより、発行装置は、オフラインの期間において発行対象データを取得したことを第三者が証明可能な情報を生成することができる。また、署名対象に発行対象データに関する情報が含まれているため、発行装置は、発行対象データの改ざんを検出可能なデータを発行することができる。
【０１１１】
また、発行装置は、ネットワーク接続が困難なローカル環境においても、第三者が証明可能な厳密時刻を継続的に発行可能であり、時刻発行ログの記録、および厳密時刻との誤差確認・追跡が可能となる仕組みを提供することが可能である。
【０１１２】
また、発行装置は、耐タンパモジュールによって保護されていてもよい。これにより、発行装置の内部時計に変更が行われないため、発行対象データに対して発行されるタイムスタンプの信ぴょう性を高めることができる。
【０１１３】
また、発行装置は、誤差と新たな誤差との差分が所定値より大きい場合、内部時計が変更されたことを出力してもよい。これにより、たとえば、発行装置が耐タンパモジュールによって保護されておらず、利用者による操作が行われる可能性がある場合に、発行装置は、内部時計が変更されたことを検出でき、タイムスタンプの信ぴょう性を高めることができる。
【０１１４】
なお、所定値としては、発行装置が含まれるデータ生成装置の使用形態によって設定してもよい。たとえば、ネットワークに接続されているデータ生成装置が、とある日の朝方にネットワークから遮断され、発行対象データとなる画像データ等を生成し、同日の夕刻にネットワークに再接続される場合を想定する。この場合、ネットワークが遮断されている時間は約１２時間となるため、発行装置は、たとえば、所定値として１２時間を設定してもよい。
【０１１５】
また、発行装置は、発行対象データの生成機能を有していてもよい。この場合、発行対象データに発行するタイムスタンプを、発行対象データの生成時点で行うことができる。したがって、発行装置は、発行対象データに対して、取得時点のタイムスタンプより正確な時刻保証を行うことができる。
【０１１６】
また、発行装置が含まれるデータ生成装置が、厳密時刻を発行可能であってもよい。具体的には、データ生成装置が、ＧＰＳ機能を有しており、ＧＰＳ衛星と無線通信によって通信可能となる場合である。このとき、データ生成装置が地下、トンネル等といった、ＧＰＳ衛星と通信が行えない位置に存在し、オフライン状態となった場合であっても、発行装置は、オフライン状態にて取得した発行対象データに対してタイムスタンプを発行することができる。
【０１１７】
なお、本実施の形態で説明した発行方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本発行プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本発行プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１１８】
１０６  発行装置
２０１  ローカルタイマ
４０１  取得部
４０２  受信部
４０３  算出部
４０４  受付部
４０５  要約情報生成部
４０６  補正部
４０７  生成部
４０８  判定部
４０９  出力部
４１０  記憶部
４１１  発行時刻ログ
【図１】
0005742633.tif 000002
【図２】
0005742633.tif 000003
【図３】
0005742633.tif 000004
【図４】
0005742633.tif 000005
【図５】
0005742633.tif 000006
【図６】
0005742633.tif 000007
【図７】
0005742633.tif 000008
【図８】
0005742633.tif 000009
【図９】
0005742633.tif 000010
【図１０】
0005742633.tif 000011
【図１１】
0005742633.tif 000012
【図１２】
0005742633.tif 000013
【図１３】
0005742633.tif 000014
【図１４】
0005742633.tif 000015
【図１５】
0005742633.tif 000016
【図１６】
0005742633.tif 000017
【図１７】
0005742633.tif 000018
【図１８】
0005742633.tif 000019
【図１９−１】
0005742633.tif 000020
【図１９−２】
0005742633.tif 000021
【図２０−１】
0005742633.tif 000022
【図２０−２】
0005742633.tif 000023
【図２１−１】
0005742633.tif 000024
【図２１−２】
0005742633.tif 000025
【図２２−１】
0005742633.tif 000026
【図２２−２】
0005742633.tif 000027