説明

発行装置、発行方法、および発行プログラム

【課題】オフライン状態に、第三者証明が行える情報の発行を図ること。
【解決手段】オンライン状態(A)にて、発行装置106は、ネットワーク110を介して厳密時刻発行装置102から、第1の時刻として“12:01:00”を受信する。同時に、発行装置106は、ローカルタイマ201から第2の時刻として“12:00:00”を取得する。次に、発行装置106は、第1の時刻と第2の時刻との誤差“00:01:00”を算出する。次に、オフライン状態(B)にて、発行装置106は、発行対象データ202を受け付けると、ローカルタイマ201から発行対象データ202の取得時点となる第3の時刻“12:07:34”を取得する。続けて、発行装置106は、誤差“00:01:00”を用いて補正した第4の時刻“12:08:34”を署名対象として電子署名を生成し、生成した電子署名をタイムスタンプとして発行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タイムスタンプを発行する発行装置、発行方法、および発行プログラムに関する。
【背景技術】
【0002】
近年、デジタルカメラやビデオカメラ等で記録される画像、映像データは、警察、消防、医療等の業界で、証拠として採用されることが多くなってきている。このとき、データがいつ撮影されたものかが問われる場合がある。
【0003】
たとえば、データの撮影時刻を保証する技術として、デジタルカメラの内部時計から得られた撮影時刻を画像に付加する場合、内部時計の設定変更の有無を確認し、NTP(Network Time Protocol)サーバの配信する標準時に基づいて、画像に正確な撮影時刻を埋め込むものがある。また、画像データの取得時刻を証明する技術として、カメラはカウンタを有し、使用開始/終了時のカウンタ値をサーバに送信する。続けて、サーバ側は、時刻と共にカウンタ値を管理し、撮影時に、カメラは、画像データ、カウンタ値、位置情報、撮影情報に対して署名を付加し、最後にサーバがタイムスタンプを発行する技術が開示されている。
【0004】
さらに、データの証拠としての証明力を向上するための情報認証装置に関する技術として、デジタルカメラ内の耐タンパモジュールに時刻発生装置、位置測定装置を有し、画像撮影時、デジタルカメラは、所有者情報と位置情報の個別ハッシュを算出する。続けて、デジタルカメラは、画像データ、個別ハッシュ、時刻情報に対するデジタル署名の付加に加え、時刻情報と位置情報のログ情報を記録する技術が開示されている(下記特許文献1〜3を参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−153582号公報
【特許文献2】特開2007−221436号公報
【特許文献3】特開2002−215029号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した従来技術において、標準時を配信する装置との通信が遮断されているオフライン状態で取得されたデータに対して、取得時刻の第三者証明を行うことが困難であるという問題があった。
【0007】
本発明は、上述した従来技術による問題点を解消するため、オフライン状態で取得した発行対象データの取得時刻の第三者証明が行える情報を発行できる発行装置、発行方法、および発行プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、自装置の内部時計から時刻を取得し、電子署名が付与された時刻を、標準時を配信する他装置から受信し、受信した第1の時刻と第1の時刻の受信時点で取得した第2の時刻との誤差を算出し、他装置と遮断された状態で生成された発行対象データに関する情報を受け付け、発行対象データに関する情報の受付時点で取得した第3の時刻を、算出した誤差を用いて補正し、補正後の第4の時刻を署名対象とする電子署名を生成する発行装置、発行方法、および発行プログラムが提案される。
【発明の効果】
【0009】
本発明の一側面によれば、オフライン状態で取得した発行対象データの取得時刻の第三者証明が行える情報を発行できるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】図1は、時刻保証システムの接続例を示す説明図である。
【図2】図2は、発行装置の動作例を示す説明図である。
【図3】図3は、実施の形態にかかるデータ生成装置のハードウェアの一例を示すブロック図である。
【図4】図4は、発行装置の機能例を示すブロック図である。
【図5】図5は、認証機関装置の機能例を示すブロック図である。
【図6】図6は、データ生成装置の機能例を示すブロック図である。
【図7】図7は、厳密時刻発行装置の機能例を示すブロック図である。
【図8】図8は、検証装置の機能例を示すブロック図である。
【図9】図9は、発行時刻ログの記憶内容の一例を示す説明図である。
【図10】図10は、発行装置の厳密時刻取得時の動作例を示す説明図である。
【図11】図11は、発行装置のタイムスタンプ発行時の動作例を示す説明図である。
【図12】図12は、発行装置のオンライン復帰時の動作例を示す説明図である。
【図13】図13は、検証時の動作例を示す説明図である。
【図14】図14は、時刻監査・証明結果の画面表示例を示す説明図である。
【図15】図15は、ローカルタイマ時刻が変更された場合の動作例を示す説明図である。
【図16】図16は、時刻保証システム全体の処理の一例を示すフローチャートである。
【図17】図17は、電子署名の公開鍵登録処理の一例を示すフローチャートである。
【図18】図18は、電子署名付き情報の送受信処理および受信装置の検証処理の一例を示すフローチャートである。
【図19−1】図19−1は、厳密時刻取得処理の一例を示すフローチャート(その1)である。
【図19−2】図19−2は、厳密時刻取得処理の一例を示すフローチャート(その2)である。
【図20−1】図20−1は、タイムスタンプ発行処理の一例を示すフローチャート(その1)である。
【図20−2】図20−2は、タイムスタンプ発行処理の一例を示すフローチャート(その2)である。
【図21−1】図21−1は、時刻監査・証明処理の一例を示すフローチャート(その1)である。
【図21−2】図21−2は、時刻監査・証明処理の一例を示すフローチャート(その2)である。
【図22−1】図22−1は、タイムスタンプ検証処理の一例を示すフローチャート(その1)である。
【図22−2】図22−2は、タイムスタンプ検証処理の一例を示すフローチャート(その2)である。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して、開示の発行装置、発行方法、および発行プログラムの実施の形態を詳細に説明する。
【0012】
図1は、時刻保証システムの接続例を示す説明図である。タイムスタンプを発行し、検証する時刻保証システム100は、データ生成装置101と、厳密時刻発行装置102と、認証機関装置103と、検証装置104と、検証者端末105と、を有する。データ生成装置101は、発行装置106を含む。また、データ生成装置101〜検証装置104は、ネットワーク110に接続しており、検証者端末105は、検証装置104と接続している。
【0013】
データ生成装置101は、時刻証明の対象となるデータを生成する装置である。データ生成装置101は、映像、音声、画像を処理・記録するためのカメラ端末、文書等の作成・記録が可能なノートパソコン等に相当し、特に持ち運びが可能であることを想定する。さらに、データ生成装置101は、時刻保証システム100内に複数存在してもよい。
【0014】
厳密時刻発行装置102は、時刻の配信を行う機関が管理する装置であり、標準時と同期した正確な時刻を配信する。厳密時刻発行装置102は、たとえば、NTPサーバであってもよいし、または、GPS(Global Positioning System)機能を有し、GPS時刻を用いて署名付きの時刻を配信可能な装置であってもよい。
【0015】
認証機関装置103は、電子署名情報を管理する認証機関のサーバである。電子署名とは、署名対象を要約した要約情報を送信装置が保持する秘密鍵で暗号化した情報のことである。そして、送信装置は電子署名、署名対象、および公開鍵証明書を受信装置へ送信する。受信装置は、公開鍵証明書の有効性確認を行った上で、暗号化された電子署名を公開鍵証明書に含まれる公開鍵で復号し、署名対象から得た要約情報と比較を行う。この比較結果が同一か否かによって、認証機関装置103は、正当な相手からの送信か否かを判断する。詳細の処理については図18にて後述する。
【0016】
また、前述した要約情報とは、署名対象に対して暗号学的一方向性ハッシュ関数を用いて算出されたハッシュ情報であり、署名対象のサイズを圧縮できるという意味で、メッセージダイジェストともいわれる。また、暗号学的一方向性ハッシュ関数で生成されたハッシュ情報は、その署名対象からしか生成することができない唯一の情報となり、生成されたハッシュ情報から元の情報を復元することができないという特徴を持っている。
【0017】
このため、情報の暗号化や電子署名生成にはよく使われている。この暗号学的一方向性ハッシュ関数には、MD5(Message Digest 5)、SHA(Secure Hash Algorithm)−1、SHA−256のようなアルゴリズムがある。情報に対してどのアルゴリズムを用いて要約情報を生成しているかについての情報(ハッシュ情報生成アルゴリズム)は公開鍵証明書に記載されている。
【0018】
検証装置104は、送られてきた情報に付される署名情報の検証を行う。検証者端末105は、検証装置104の操作を行うための端末である。発行装置106は、データ生成装置101が生成したデータに対して、タイムスタンプを発行する。発行装置106の動作例について、図2にて説明する。
【0019】
なお、時刻保証システム100を利用する利用者としては、作成責任者、検証者の2名を想定している。作成責任者は、データ生成装置101の使用者である。作成責任者は、発行対象データの生成を行うときに、データ生成装置101のネットワーク110の外へ持ち出し、また、ネットワーク110内への返却を行う。検証者は、検証者端末105を用いる。
【0020】
図2は、発行装置の動作例を示す説明図である。以下の説明にて、タイムスタンプは、第三者により発行対象データに対して正確な日時情報を付与し、付与時点でのデータの非改ざん証明が行えるデータであるとする。発行装置106は、内部時計となるローカルタイマ201を含む。また、時刻保証システム100は、状態(A)で示すように、発行装置106と厳密時刻発行装置102がネットワーク110で接続されている場合と、状態(B)で示すように、発行装置106と厳密時刻発行装置102が切断されている場合と、が存在する。
【0021】
初めに、状態(A)にて、発行装置106は、ネットワーク110を介して、厳密時刻発行装置102から、厳密時刻発行装置102の電子署名付きの第1の時刻として“12:01:00”を受信する。また、第1の時刻の受信時点で、発行装置106は、ローカルタイマ201から第2の時刻として“12:00:00”を取得する。次に、発行装置106は、第1の時刻と第2の時刻との誤差“00:01:00”(12:01:00−12:00:00)を算出する。
【0022】
次に、状態(B)にて、発行装置106は、タイムスタンプの発行対象となる発行対象データ202を受け付けると、ローカルタイマ201から、発行対象データ202取得時点となる第3の時刻“12:07:34”を取得する。続けて、発行装置106は、誤差“00:01:00”を用いて補正した第4の時刻“12:08:34”を署名対象として電子署名を生成し、生成した電子署名をタイムスタンプとして発行する。
【0023】
このように、発行装置106は、オンライン時に受信した標準時と受信時点のローカルタイマの時刻との差分を算出しておき、オフライン時に発行対象データの取得時点のローカル時刻を、差分を用いて補正した時刻に署名する。これにより、発行装置106は、署名付きの時刻がタイムスタンプとなり、オフライン時に取得した発行対象データの取得時刻の正当性を担保できる。以下、図3〜図22−2にて、発行装置106を含めた時刻保証システム100の説明を詳細に行う。
【0024】
(データ生成装置のハードウェア)
図3は、実施の形態にかかるデータ生成装置のハードウェアの一例を示すブロック図である。図3において、データ生成装置101は、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、を含む。また、データ生成装置101は、磁気ディスクドライブ304と、磁気ディスク305と、光ディスクドライブ306と、光ディスク307と、を含む。また、ユーザやその他の機器との入出力装置としてデータ生成装置101は、ディスプレイ308と、I/F(Interface)309と、キーボード310と、マウス311と、発行装置106と、を含む。また、各部はバス312によってそれぞれ接続されている。
【0025】
ここで、CPU301は、データ生成装置101の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。
【0026】
光ディスクドライブ306は、CPU301の制御にしたがって光ディスク307に対するデータのリード/ライトを制御する。光ディスク307は、光ディスクドライブ306の制御で書き込まれたデータを記憶したり、光ディスク307に記憶されたデータをコンピュータに読み取らせたりする。
【0027】
ディスプレイ308は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。たとえば、ディスプレイ308は、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0028】
I/F309は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク110に接続され、ネットワーク110を介して他の装置に接続される。そして、I/F309は、ネットワーク110と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F309には、たとえばモデムやLANアダプタなどを採用することができる。
【0029】
キーボード310は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、キーボード310は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス311は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。また、データ生成装置101は、マウス311の代わりとして、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【0030】
発行装置106は、たとえば、耐タンパモジュールの集積回路を収納したIC(Integrated Circuit)チップを有する。発行装置106は、CPU321、ローカルタイマ201、ROM322、RAM323、EEPROM(Electrically Erasable and Programmable ROM)324、I/F325を有する。各部は、バス326によって接続されている。なお、発行装置106に含まれる全てのハードウェアが耐タンパモジュールであってもよいし、ローカルタイマ201が耐タンパモジュールであってもよい。
【0031】
なお、耐タンパモジュールは、物理的あるいは論理的に内部の情報を読み取られることに対する耐性を有したモジュールである。たとえば、耐タンパモジュールは、逆アセンブラなどで容易に解析できないような機構を有していたり、または、LSIを解析するために保護層をはがすと、内部の回路まで破壊されるような機構を有していたりする。
【0032】
CPU321は、ROM322、RAM323、EEPROM324などに記憶されているプログラムにしたがって各種の情報処理を行う中央処理装置である。具体的に、CPU321は、鍵ペア(秘密鍵および公開鍵)の生成、ローカル時刻の出力、ローカル時刻に対する電子署名の生成などを行う。
【0033】
ローカルタイマ201は、時計機能を搭載した装置である。ROM322は、読み出し専用の記憶装置で、発行装置106を駆動するための基本的なプログラムやパラメータなどを格納している。RAM323は、読み書き可能な記憶装置で、CPU321が各種の情報処理を行う際のワーキングエリアを提供する。
【0034】
EEPROM324は、読み書きが可能な不揮発性の記憶装置であり、データやプログラムなどを記憶している。具体的に、EEPROM324は、データとして、鍵ペア(秘密鍵および公開鍵)生成プログラム、発行装置106の秘密鍵、および公開鍵証明書、厳密時刻発行装置102の公開鍵証明書を記憶している。また、EEPROM324は、プログラムとして、署名生成・検証プログラム、要約情報生成プログラム、発行時刻ログ生成プログラム、CPU321を駆動するための基本的なプログラムであるOSなどを記憶している。
【0035】
I/F325は、内部のインターフェースを司り、データ生成装置101からのデータの入出力を制御する。また、データ生成装置101は、発行対象データを生成するカメラデバイスや、マイクなどを有してもよい。また、厳密時刻発行装置102、認証機関装置103、検証装置104も、CPU、ROM、RAMなどを有している。
【0036】
(発行装置の機能)
次に、発行装置106の機能について説明する。図4は、発行装置の機能例を示すブロック図である。発行装置106は、取得部401と、受信部402と、算出部403と、受付部404と、要約情報生成部405と、補正部406と、生成部407と、判定部408と、出力部409と、記憶部410と、を含む。この制御部となる機能(取得部401〜記憶部410)は、記憶装置に記憶されたプログラムをCPU301が実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、図3に示したROM322、RAM323、EEPROM324などである。
【0037】
また、記憶部410は、発行対象データに対してタイムスタンプを発行した時刻を記憶する発行時刻ログ411と、認証機関装置103から発行された証明書と、証明書に対応する秘密鍵を管理する鍵記憶DB412とを含む。記憶部410は、RAM323、EEPROM324の一部である。
【0038】
取得部401は、自装置の内部時計から時刻を取得する機能を有する。たとえば、取得部401は、発行装置106の内部時計となるローカルタイマ201からローカル時刻を取得する。なお、取得した時刻は、RAM323、EEPROM324などの記憶領域に記憶される。
【0039】
受信部402は、電子署名が付与された時刻を、標準時を配信する他装置から受信する機能を有する。他装置とは厳密時刻発行装置102である。たとえば、受信部402は、ネットワーク110を介して厳密時刻発行装置102から電子署名が付与された時刻を受信する。以下の説明では、厳密時刻発行装置102から受信した標準時を厳密時刻と定義する。なお、受信した時刻は、RAM323、EEPROM324などの記憶領域に記憶される。
【0040】
算出部403は、受信部402によって受信された第1の時刻と第1の時刻の受信時点で取得部401から取得された第2の時刻との誤差を算出する機能を有する。たとえば、第1の時刻が“12:01:00”であり、第1の時刻の受信時点でローカルタイマ201から取得した第2の時刻が“12:00:00”である場合、算出部403は、誤差を12:01:00−12:00:00=+00:01:00として算出する。
【0041】
また、算出部403は、第4の時刻に関する電子署名の生成後、他装置と接続された時点で受信部402から受信された第5の時刻と第5の時刻の受信時点で取得部401から取得された第6の時刻との新たな誤差を算出してもよい。なお、第4の時刻とは、発行対象データに関する情報の取得時点で取得部401から取得された第3の時刻に対して、補正部406によって補正された時刻である。
【0042】
たとえば、第5の時刻が“13:02:50”であり、第5の時刻の受信時点でローカルタイマ201から取得した第6の時刻が“14:01:00”である場合、算出部403は、誤差を13:02:50−14:01:30=−00:58:40として算出する。なお、算出した時刻は、RAM323、EEPROM324などの記憶領域に記憶される。
【0043】
受付部404は、他装置と遮断された状態で生成された発行対象データに関する情報を受け付ける機能を有する。たとえば、受付部404は、厳密時刻発行装置102と遮断された状態で、データ生成装置101が生成した発行対象データに関する情報を受け付ける。発行対象データに関する情報とは、たとえば、発行対象データを引数とし、暗号学的一方向性ハッシュ関数を用いて生成された要約情報である。また、発行対象データに関する情報は、発行対象データそのものであってもよい。なお、受け付けた情報は、RAM323、EEPROM324などの記憶領域に記憶される。
【0044】
要約情報生成部405は、受付部404から取得した発行対象データの要約情報を生成する機能を有する。たとえば、受付部404が発行対象データそのものを取得した場合、要約情報生成部405は、暗号学的一方向性ハッシュ関数を用いて発行対象データの要約情報を生成する。なお、生成した要約情報は、RAM323、EEPROM324などの記憶領域に記憶される。
【0045】
補正部406は、受付部404による発行対象データに関する情報の受付時点で取得部401から取得された第3の時刻を、算出部403によって算出された誤差を用いて補正する機能を有する。たとえば、発行対象データに関する情報の取得時点で取得部401から取得された第3の時刻が“12:07:34”となり、算出部403によって算出された誤差が“00:01:00”となった場合を想定する。このとき、補正部406は、第3の時刻“12:07:34”に誤差“00:01:00”を加算することで第3の時刻を補正する。なお、補正された時刻は、RAM323、EEPROM324などの記憶領域に記憶される。
【0046】
生成部407は、補正部406による補正後の第4の時刻を署名対象とする電子署名を生成する機能を有する。たとえば、生成部407は、第4の時刻として“12:08:34”を署名対象として電子署名を生成する。なお、生成された電子署名は、RAM323、EEPROM324などの記憶領域に記憶される。
【0047】
判定部408は、誤差と新たな誤差との差分が所定値より大きいか否かを判定する機能を有する。たとえば、算出部403によって算出された誤差が“+00:01:00”であり、発行対象データの電子署名の生成後に算出された新たな誤差が“−00:58:40”である場合を想定する。また、所定値が“00:30:00”と設定されている場合を想定する。このとき、判定部408は、誤差と新たな誤差の差分+00:01:00−(−00:58:40)=00:59:40が所定値“00:30:00”より大きいことを判定する。なお、判定結果は、RAM323、EEPROM324などの記憶領域に記憶される。
【0048】
出力部409は、判定部408によって差分が所定値より大きいと判定された場合、内部時計が変更されたことを出力する機能を有する。たとえば、判定部408によって差分が所定値より大きいと判定された場合、出力部409は、ローカルタイマ201が変更されたことを出力する。なお、具体的な出力先としては、I/F325を経由してデータ生成装置101へ送信してもよいし、RAM323、EEPROM324などの記憶領域に出力してもよい。
【0049】
図5は、認証機関装置の機能例を示すブロック図である。認証機関装置103は、公開鍵DB(DataBase)501と、証明書発行部502と、証明書検証部503と、通信部504と、を含む。公開鍵DB501は、発行装置106の公開鍵を蓄積する。証明書発行部502は、要求に応じて公開鍵証明書を発行する。証明書検証部503は、公開鍵証明書の検証を行う。通信部504は、ネットワーク110に接続しており、ネットワーク110経由で通信を行う。
【0050】
図6は、データ生成装置の機能例を示すブロック図である。データ生成装置101は、データ生成部601と、データ管理DB602と、データ管理TB(Table)603と、通信部604と、を含む。データ生成部601は、時刻証明が可能なタイムスタンプの発行対象となる情報を生成する。データ管理DB602は、データ生成部601で生成された情報を記憶する。たとえば、図6に示すデータ管理DB602は、発行対象データ611−1〜発行対象データ611−4を記憶している。データ管理TB603は、データ管理DB602へのアクセス制御を行う。通信部604は、ネットワーク110経由での通信を行う。
【0051】
図7は、厳密時刻発行装置の機能例を示すブロック図である。厳密時刻発行装置102は、厳密時刻発行部701と、署名生成部702と、通信部703と、を含む。厳密時刻発行部701は、厳密時刻を発行する機能を有する。署名生成部702は、認証機関装置103から発行された証明書と、証明書に対応する秘密鍵を管理し、発行する厳密時刻に対して署名情報を付加する機能を有する。通信部703は、ネットワーク110経由で通信を行う。
【0052】
図8は、検証装置の機能例を示すブロック図である。検証装置104は、データ管理DB801と、データ管理TB802と、署名検証部803と、要約情報生成部804と、発行時刻ログ検証部805と、通信部806と、を含む。データ管理DB801は、データ生成装置101から送信されてきた検証対象データを記憶する。データ管理TB802は、データ管理DB801へのアクセス制御を行う。署名検証部803は、送信されてきた情報に付される署名情報の検証を行う。要約情報生成部804は、検証対象データの要約情報を生成する。発行時刻ログ検証部805は、発行時刻ログ411の検証を行う。通信部806は、ネットワーク110経由で通信を行う。
【0053】
図9は、発行時刻ログの記憶内容の一例を示す説明図である。発行時刻ログ411は、発行対象データの要約情報、ログ内容、厳密時刻、ローカルタイマ時刻、ローカル時刻、誤差という6つのフィールドを含む。発行対象データの要約情報フィールドには、発行対象データの特徴を示す情報が格納される。たとえば、発行対象データの要約情報は、暗号学的一方向性ハッシュ関数を用いて生成された要約情報が格納される。
【0054】
ログ内容フィールドには、発行装置106で実行された動作内容が格納される。厳密時刻フィールドには、厳密時刻発行装置102から受信した時刻が格納される。また、厳密時刻フィールドには、署名付きの厳密時刻の電子署名情報が格納されてもよい。ローカルタイマ時刻フィールドには、ローカルタイマ201から取得した時刻が格納される。ローカル時刻フィールドには、ローカルタイマ時刻を、誤差を用いて補正した時刻が格納される。誤差フィールドには、厳密時刻とローカルタイマが格納される。
【0055】
たとえば、レコード411−1は、発行装置106が厳密時刻発行装置102から、署名付きの厳密時刻“2011/03/01 12:01:00”を、ローカルタイマ201が“2011/03/01 12:00:00”を示す時に受信したことを示している。また、レコード411−1は、厳密時刻とローカルタイマ時刻との誤差が“+00:01:00”であることを示している。レコード411−2は、署名付きの厳密時刻“2011/03/01 12:01:00”の電子署名情報が“F1D281DBA3…”であることを示している。
【0056】
レコード411−3は、要約情報が“AB1235C…”である発行対象データ611−1を取得した時点でのローカルタイマ時刻が“2011/03/01 12:07:34”であることを示している。さらに、レコード411−3は、ローカルタイマ時刻を、誤差を用いて補正したローカル時刻が“2011/03/01 12:08:34”であることを示している。続けて、レコード411−4は、要約情報が“CF823FA…”である発行対象データ611−2を取得した時点でのローカルタイマ時刻、ローカル時刻を示している。同様に、レコード411−5、レコード411−6は、それぞれ、要約情報が“246532C…”である発行対象データ611−3と、要約情報が“F219DB2…”である発行対象データ611−4と、のローカルタイマ時刻とローカル時刻を示している。
【0057】
レコード411−7は、発行装置106が厳密時刻発行装置102から、署名付きの厳密時刻“2011/03/01 13:02:50”を、ローカルタイマ201が“2011/03/01 13:01:30”を示す時に受信したことを示している。また、レコード411−7は、厳密時刻とローカルタイマ時刻との誤差が“+00:01:20”であることを示している。レコード411−8は、署名付きの厳密時刻“2011/03/01 13:02:50”の電子署名情報が“3F12A944D0…”であることを示している。次に、図10〜図15にて、時刻保証システム100での動作例を示す。
【0058】
図10は、発行装置の厳密時刻取得時の動作例を示す説明図である。オンライン時となる厳密時刻発行装置102と接続された状態にて、発行装置106は、データ生成装置101を介して、厳密時刻発行装置102から署名付き厳密時刻(電子署名情報:F1D281DBA3…)を受信する。受信した署名付き厳密時刻は、発行時刻ログ411のレコード411−1、レコード411−2として記憶される。
【0059】
図11は、発行装置のタイムスタンプ発行時の動作例を示す説明図である。図11で示す時刻保証システム100は、図10の状態から、オフライン時となり、厳密時刻発行装置102と遮断された状態である。この状態で、データ生成装置101が、発行対象データ611−1〜発行対象データ611−4を生成し、発行対象データに対するタイムスタンプ発行要求を発行装置106に送信する。
【0060】
タイムスタンプ発行要求を受信した発行装置106は、ローカル時刻を発行し、発行時刻ログ411に記憶する。具体的には、発行装置106は、発行対象データ611−1〜発行対象データ611−4について、タイムスタンプとなる署名付きローカル時刻を発行し、レコード411−3〜レコード411−6に記憶する。
【0061】
図12は、発行装置のオンライン復帰時の動作例を示す説明図である。図12で示す時刻保証システム100は、オフライン状態にて発行対象データ611−1〜発行対象データ611−4が生成された後、再びオンラインに復帰した状態を示している。オンラインとなった発行装置106は、データ生成装置101を介して、厳密時刻発行装置102から署名付き厳密時刻を受信する。受信した署名付き厳密時刻は、発行時刻ログ411のレコード411−7、レコード411−8として記憶される。
【0062】
また、発行装置106は、発行時刻ログ411の取出要求を受信した場合には、発行時刻ログ411全体を署名対象として、電子署名を生成し、発行装置106の外部に出力する。
【0063】
図13は、検証時の動作例を示す説明図である。図13では、図12の状態から、署名が付与された発行時刻ログ411が発行装置106の外部に出力された状態を示している。発行時刻ログ411を受信した検証装置104は、付与された電子署名を用いて、発行時刻ログ411全体の改ざんの有無を検証する。
【0064】
改ざんされていないことが証明できた場合、続けて、検証装置104は、検証対象データ1301の要約情報を生成し、発行対象データの要約情報から一致するレコードを抽出する。レコードが抽出できた場合、検証装置104は、検証対象データ1301がローカル時刻“2011/03/01 12:08:34”にて、発行装置106によって、タイムスタンプが発行されたことを証明することができる。証明結果は、検証者端末105に送信される。図14にて、証明結果の表示例について説明する。
【0065】
図14は、時刻監査・証明結果の画面表示例を示す説明図である。図14では、検証者端末105のディスプレイに表示されている、検証対象データ1301(要約情報:AB1235C…)に対する時刻監査・証明結果の一例を示している。初めに、検証者端末105は、VERIFY1にて、検証対象データが発行対象データ(要約情報:AB1235C…)であり、発行対象データの発行されたローカル時刻“2011/03/01 12:08:34”を表示する。これにより、検証者は、検証対象データの生成時刻の証明結果を確認できる。また、検証者端末105は、ローカル時刻と厳密時刻との誤差を表示している。これにより、検証者は、約+00:01:00の誤差補正がなされたことを確認できる。
【0066】
また、検証者端末105は、VERIFY2で示す、発行装置106の証明書確認ボタンが押下されると、ローカル時刻に付与された電子署名の詳細情報を表示する。これにより、検出者は、電子署名の詳細情報から、表示されているローカル時刻が複数の発行装置106のうち、どの発行装置106で付与された時刻かを確認することができる。
【0067】
また、検証者端末105は、VERIFY3にて、発行装置106の使用期間を証明することも可能であり、たとえば、発行装置106の使用開始時、および終了時に取得した厳密時刻の情報を表示する。図15の例では、検証者端末105は、2011/03/01 12:01:00から2011/03/01 13:02:50の期間で発行装置106が使用されたことを表示する。さらに、使用開始時、および終了時における厳密時刻とローカルタイマ時刻の誤差範囲も記録されているため、検証者端末105は、発行装置106の使用期間において、ローカルタイマ時刻にどれだけの誤差が生じたかについても表示できる。
【0068】
また、検証者端末105は、VERIFY4で示す、厳密時刻発行装置102の証明書確認ボタンが押下されることで、厳密時刻に付与された電子署名の詳細情報を表示する。これにより、検出者は、どの厳密時刻配信機関から厳密時刻を取得したかを確認することができる。また、検証者端末105は、VERIFY1で確認した誤差補正、VERIFY3で確認した発行装置106の使用期間、ローカルタイマ時刻の誤差範囲が、VERIFY4に基づくものであることを表示する。また、検証者端末105は、VERIFY5で示す、発行時刻ログの詳細閲覧ボタンが押下されると、発行時刻ログを表示する。
【0069】
図15は、ローカルタイマ時刻が変更された場合の動作例を示す説明図である。図15では、ローカルタイマ201が耐タンパモジュールによって保護されていない場合を想定しており、発行装置106のローカルタイマ201が作成責任者によって変更された場合を示している。具体的に図15では、ローカルタイマ時刻“2011/03/01 12:15:06”の後に、ローカルタイマ201が変更されている場合を想定している。
【0070】
したがって、発行装置106は、レコード411−5’が示すように、発行対象データ611−3のローカル時刻を“2011/03/01 13:33:19”に補正する。同様に、発行装置106は、レコード411−6’が示すように、発行対象データ611−4のローカル時刻を“2011/03/01 13:50:21”に補正する。
【0071】
次に、ネットワーク110が再びオンラインの状態となった場合、時刻保証システム100は、厳密時刻発行装置102から署名付き厳密時刻を受信する。受信した署名付き厳密時刻は、発行時刻ログ411のレコード411−7’、レコード411−8として記憶される。なお、レコード411−7’のローカルタイマ時刻には“2011/03/01 14:01:30”が格納され、誤差フィールドには、“−00:58:40”が格納される。
【0072】
発行装置106は、判定部408により、レコード411−1の誤差フィールド“+00:01:00”と、今回受信した厳密時刻の新たな誤差となるレコード411−7’の誤差フィールド“−00:58:40”との差分が所定値より大きいか否かを判定する。たとえば、所定値が“00:30:00”であったとすると、差分=+00:01:00−(−00:58:40)=00:59:40となり、差分が所定値より大きくなる。このとき、発行装置106は、ローカルタイマが変更された旨をデータ生成装置101に出力する。データ生成装置101が出力結果をディスプレイ308に表示することで、作成責任者は、ローカルタイマが変更され、タイムスタンプが示す時刻が保証できない状態であることが確認できる。
【0073】
続けて、図16〜図22−2にて、図10〜図15で示した動作を行うフローチャートを示す。図16では、時刻保証システム100全体の処理のフローチャートを示す。図19−1〜図21−2にて、時刻保証システム100全体の処理から呼ばれる、厳密時刻取得処理、タイムスタンプ発行処理、時刻監査・証明処理について説明する。また、図22−1、図22−2にて、時刻監査・証明処理から呼ばれるタイムスタンプ検証処理について説明する。また、電子署名生成、電子署名検証は、後述する図17での電子署名の公開鍵登録処理を事前に行った後、図18での電子署名付き情報の送受信処理、および受信装置の検証処理が行われる。
【0074】
図16は、時刻保証システム全体の処理の一例を示すフローチャートである。時刻保証システム100は、発行装置106と厳密時刻発行装置102とのネットワーク110がオンラインの状態にて、厳密時刻取得処理を実行する(ステップS1601)。次に、時刻保証システム100は、発行装置106と厳密時刻発行装置102とのネットワーク110が遮断され、オフラインの状態にて、タイムスタンプ発行処理を実行する(ステップS1602)。
【0075】
続けて、ネットワーク110が再びオンラインの状態となった場合、時刻保証システム100は、厳密時刻取得処理を実行する(ステップS1603)。次に、検証対象データを検証する場合に、時刻保証システム100は、時刻監査・証明処理を実行し(ステップS1604)、処理を終了する。
【0076】
図17は、電子署名の公開鍵登録処理の一例を示すフローチャートである。図17では送信装置と認証機関装置103との間での公開鍵の登録を行うフローチャートを示す。本実施の形態では、データ生成装置101と厳密時刻発行装置102が電子署名の送信装置となる。
【0077】
初めに、送信装置は、鍵ペア(秘密鍵、および公開鍵)の生成を行う(ステップS1701)。続けて、送信装置は、証明書発行依頼情報の入力をする(ステップS1702)。証明書発行依頼情報の入力が終了した後、送信装置は、その入力された証明書発行依頼情報と公開鍵を認証機関装置103へ送信する(ステップS1703)。
【0078】
認証機関装置103は、証明書発行依頼情報と公開鍵を通信部504にて受信する(ステップS1704)。認証機関装置103の証明書発行部502は、公開鍵を含む公開鍵証明書を生成し(ステップS1705)、生成した公開鍵証明書を公開鍵DB501に蓄積する(ステップS1706)。その後、証明書発行部502は、通信部504を制御し、ネットワーク110を介し、証明書発行依頼情報を送信してきた送信装置へ、発行した公開鍵証明書を送信し(ステップS1707)、電子署名の公開鍵登録処理を終了する。
【0079】
公開鍵証明書を受信した送信装置は(ステップS1708)、ステップS1701で生成した秘密鍵、および認証機関装置103から発行された公開鍵証明書を自身が有する記憶装置に蓄積し(ステップS1709)、電子署名の公開鍵登録処理を完了する。記憶領域として、具体的に、データ生成装置101は発行装置106内の鍵記憶DB412、厳密時刻発行装置102は署名生成部702に、秘密鍵と公開鍵証明書を蓄積する。
【0080】
図18は、電子署名付き情報の送受信処理および受信装置の検証処理の一例を示すフローチャートである。図19では送信装置と受信装置の間での電子署名付き情報の送受信処理、受信装置と認証機関装置103の間での電子署名検証処理を示す。本実施の形態では、送信装置が厳密時刻発行装置102である場合、受信装置がデータ生成装置101となり、送信装置がデータ生成装置101である場合、受信装置が検証装置104となる。
【0081】
初めに、送信装置は、署名対象の要約情報(ハッシュ情報)を記憶領域に記憶している秘密鍵によって暗号化する(ステップS1801)。暗号化してできた情報が電子署名となる。続けて、送信装置は、署名対象と電子署名と同じく記憶領域に記憶している公開鍵証明書とを受信装置に送信し(ステップS1802)、電子署名付き情報の送信処理を終了する。
【0082】
受信装置は、署名対象と電子署名と公開鍵証明書とを受信し(ステップS1803)、受信した公開鍵証明書の有効期限や失効情報等を確認するため、認証機関装置103に対して公開鍵証明書を送信する(ステップS1804)。本実施の形態では、認証機関装置103が証明書発行・証明書検証の一連の機能をサポートしているものとする。次に認証機関装置103は、公開鍵証明書を受信し(ステップS1805)、有効性の検証を行い(ステップS1806)、検証結果を受信装置に対して送信し(ステップS1807)、検証処理を終了する。
【0083】
受信装置は、検証結果を受信し(ステップS1808)、検証結果が有効であるかを判断する(ステップS1809)。検証結果が有効でない場合(ステップS1809:No)、受信装置は、改変のないことを証明できないと判断し(ステップS1813)、検証処理を終了する。検証結果が有効である場合(ステップS1809:Yes)、受信装置は、受信した署名対象の要約情報(ハッシュ情報)を生成し(ステップS1810)、さらに受信した電子署名を公開鍵で復号する(ステップS1811)。そして受信装置は、生成した署名対象の要約情報と、電子署名を公開鍵で復号した値が一致するかを判断する(ステップS1812)。
【0084】
一致しない場合(ステップS1812:No)、受信装置は、ステップS1813の処理に移行し、受信装置は、処理を終了する。一致する場合(ステップS1812:Yes)、受信装置は、改変のないことが証明できたと判断し(ステップS1814)、署名対象を保持し(ステップS1815)、検証処理を終了する。ステップS1813を通った場合に、受信装置の操作端末、たとえば、検証者端末105に対して、電子署名が証明できなかった旨の表示を行う通知処理を行ってもよい。
【0085】
図19−1、図19−2は、厳密時刻取得処理の一例を示すフローチャートである。初めに、図19−1にて、データ生成装置101は、厳密時刻取得指示を厳密時刻発行装置102に送信する(ステップS1901)。送信後、データ生成装置101は、厳密時刻発行装置102からの応答があるまで待機する。次に、厳密時刻発行装置102は、厳密時刻取得指示を受信し(ステップS1902)、厳密時刻を発行し(ステップS1903)、厳密時刻を署名対象として、電子署名生成を行う(ステップS1904)。電子署名の生成後、厳密時刻発行装置102は、署名付き厳密時刻をデータ生成装置101に送信し(ステップS1905)、厳密時刻取得処理を終了する。
【0086】
次に、データ生成装置101は、署名付き厳密時刻を受信し(ステップS1906)、署名付き厳密時刻を発行装置106に送信し(ステップS1907)、後述するステップS1912の処理まで待機する。そして、発行装置106は、署名付き厳密時刻を受信する(ステップS1908)。次に、発行装置106は、厳密時刻に対する電子署名検証を行う(ステップS1909)。
【0087】
続けて、図19−2にて、ステップS1909の処理後、発行装置106は、電子署名検証の検証結果が改変なしであったか否かを判断する(ステップS1910)。改変ありであった場合(ステップS1910:No)、発行装置106は、エラー通知をデータ生成装置101に送信し(ステップS1911)、厳密時刻取得処理を終了する。待機していたデータ生成装置101は、エラー通知を受信したか否かを判断する(ステップS1912)。エラー通知を受信した場合(ステップS1912:Yes)、データ生成装置101は、エラー通知を表示し(ステップS1913)、厳密時刻取得処理を終了する。また、エラー通知を受信した場合(ステップS1912:No)、データ生成装置101は、そのまま厳密時刻取得処理を終了する。
【0088】
改変なしであった場合(ステップS1910:Yes)、発行装置106は、ローカルタイマ201からローカルタイマ時刻を取得する(ステップS1914)。取得後、発行装置106は、厳密時刻とローカルタイマ時刻に誤差が有るか否かを判断する(ステップS1915)。誤差が有る場合(ステップS1915:Yes)、発行装置106は、厳密時刻とローカルタイマ時刻との誤差を算出する(ステップS1916)。算出後、または、誤差が無い場合(ステップS1915:No)、発行装置106は、前回の誤差と今回の誤差との差分が所定値より大きいか否かを判断する(ステップS1917)。
【0089】
差分が所定値より大きい場合(ステップS1917:Yes)、発行装置106は、エラー通知をデータ生成装置101に出力する(ステップS1918)。エラー通知の送信後、または、差分が所定値以下となる場合(ステップS1917:No)、発行装置106は、署名付き厳密時刻とローカルタイマ時刻と誤差とを発行時刻ログ411に記憶し(ステップS1919)、厳密時刻取得処理を終了する。なお、発行装置106は、ステップS1918の処理終了後、ステップS1919を実行せずに厳密時刻取得処理を終了してもよい。
【0090】
図20−1、図20−2は、タイムスタンプ発行処理の一例を示すフローチャートである。初めに、図20−1にて、データ生成装置101は、発行対象データを生成し(ステップS2001)、発行対象データに対するタイムスタンプ発行要求として、発行対象データを発行装置106に送信する(ステップS2002)。送信後、データ生成装置101は、発行装置106からの応答があるまで待機する。
【0091】
次に、発行装置106は、発行対象データを受け付ける(ステップS2003)。同時に、発行装置106は、ローカルタイマからローカルタイマ時刻を取得する(ステップS2004)。続けて、発行装置106は、ステップS1916の処理で算出した誤差が有ったか否かを判断する(ステップS2005)。誤差が有った場合(ステップS2005:Yes)、発行装置106は、ローカルタイマ時刻について、誤差を用いて補正する(ステップS2006)。続けて、発行装置106は、補正後の値をローカル時刻に設定する(ステップS2007)。誤差が無かった場合(ステップS2005:No)、発行装置106は、ローカルタイマ時刻をローカル時刻に設定する(ステップS2008)。
【0092】
続けて、図20−2にて、ステップS2007、またはステップS2008の処理後、発行装置106は、ローカル時刻を署名対象として、電子署名生成を行う(ステップS2009)。電子署名の生成後、発行装置106は、署名付きローカル時刻をデータ生成装置101に送信する(ステップS2010)。
【0093】
応答を待ち受けていたデータ生成装置101は、署名付きローカル時刻を受信し(ステップS2011)、発行対象データと署名付きローカル時刻を対応づけてデータ管理DB602に記憶し(ステップS2012)、タイムスタンプ発行処理を終了する。
【0094】
また、署名付きローカル時刻の送信後、発行装置106は、発行対象データの要約情報を生成し(ステップS2013)、要約情報と署名付きローカル時刻と、を発行時刻ログ411に記憶し(ステップS2014)、タイムスタンプ発行処理を終了する。なお、ステップS2014の処理にて、発行装置106は、さらに、ローカルタイマ時刻を発行時刻ログ411に記憶してもよい。また、発行装置106は、発行対象データに対する要約情報生成時に使用した暗号学的一方向性ハッシュ関数として、たとえば、SHA−256を使用した旨を、発行時刻ログ411に記録してもよい。発行時刻ログ411は、時刻監査・証明処理時に使用する。
【0095】
また、図20−1、図20−2で示すタイムスタンプ発行処理は、発行装置106の処理となるステップS2013の処理は、データ生成装置101の処理となるステップS2001の後に、データ生成装置101が実行してもよい。この場合、ステップS2002の処理は、“発行対象データの要約情報を送信”となり、ステップS2003の処理は、“発行対象データの要約情報を受付”となる。
【0096】
図21−1、図21−2は、時刻監査・証明処理の一例を示すフローチャートである。データ生成装置101は、発行時刻ログ411の取出指示を発行装置106に送信する(ステップS2101)。なお、具体的な取出指示として、データ生成装置101は、たとえば、時刻監査・証明処理の検証対象となる検証対象データを発行装置106に送信してもよい。また、検証対象データは、データ管理DB602に記憶されている発行対象データ611−1〜発行対象データ611−4のいずれかであってもよいし、他の装置から受信したデータであってもよい。送信後、データ生成装置101は、発行装置106からの応答があるまで待機する。
【0097】
発行装置106は、発行時刻ログ411の取出指示を受信する(ステップS2102)。次に、発行装置106は、発行時刻ログ411を署名対象として、電子署名生成を行う(ステップS2103)。なお、ステップS2103の処理における電子署名生成は、鍵記憶DB412に記憶されている秘密鍵を用いて生成される。続けて、発行装置106は、署名付き発行時刻ログ411をデータ生成装置101に送信し(ステップS2104)、時刻監査・証明処理を終了する。
【0098】
データ生成装置101は、署名付き発行時刻ログ411を受信し(ステップS2105)、検証対象データと署名付き発行時刻ログ411を検証装置104に送信し(ステップS2106)、時刻監査・証明処理を終了する。
【0099】
検証装置104は、検証対象データと署名付き発行時刻ログ411を受信し(ステップS2107)、検証対象データと署名付き発行時刻ログ411をデータ管理DB801に記憶する(ステップS2108)。
【0100】
続いて、図21−2にて、ステップS2108の処理後、検証装置104は、記憶完了通知を検証者端末105に送信する(ステップS2109)。送信後、検証装置104は、検証者端末105からの応答があるまで待機する。検証者端末105は、記憶完了通知を受信し(ステップS2110)、検証者の指示によって、検証対象データのタイムスタンプ検証指示を検証装置104に送信する(ステップS2111)。送信後、検証者端末105は、検証者端末105からの応答があるまで待機する。
【0101】
検証装置104は、検証対象データのタイムスタンプ検証指示を受信し(ステップS2112)、データ管理DB801から、検証対象データと署名付き発行時刻ログ411を取り出す(ステップS2113)。続けて、検証装置104は、検証対象データに対する、タイムスタンプ検証処理を実行する(ステップS2114)。なお、タイムスタンプ検証処理の詳細は、図22−1、図22−2にて後述する。タイムスタンプ検証処理の終了後、検証装置104は、検証結果が成功を示したか否かを判断する(ステップS2115)。
【0102】
成功である場合(ステップS2115:Yes)、検証装置104は、表示用データを送信し(ステップS2116)、時刻監査・証明処理を終了する。なお、表示用データは、タイムスタンプ検証処理にて設定され、具体的には、図14のVERIFY1、VERIFY3に含まれるデータである。失敗である場合(ステップS2115:No)、検証装置104は、エラー通知を検証者端末105に送信し(ステップS2117)、時刻監査・証明処理を終了する。
【0103】
検証装置104からの応答を受信待ちであった検証者端末105は、表示用データを受信したか否かを判断する(ステップS2118)。表示用データを受信した場合(ステップS2118:Yes)、検証者端末105は、時刻監査・証明結果の画面を表示し(ステップS2119)、時刻監査・証明処理を終了する。エラー通知を受信した場合(ステップS2118:No)、検証者端末105は、エラー通知を表示し(ステップS2120)、時刻監査・証明処理を終了する。
【0104】
図22−1、図22−2は、タイムスタンプ検証処理の一例を示すフローチャートである。初めに、図21−1にて、検証装置104は、発行時刻ログ411に対する電子署名検証を行う(ステップS2201)。実行後、検証装置104は、検証結果が改変なしか否かを判断する(ステップS2202)。改変なしの場合(ステップS2202:Yes)、検証装置104は、表示用データを空に設定し(ステップS2203)、発行時刻ログ411の先頭のレコードから、厳密時刻、ローカルタイマ時刻、誤差を表示用データに追加する(ステップS2204)。
【0105】
表示用データに追加後、検証装置104は、先頭の検証対象データを選択する(ステップS2205)。また、改変ありの場合(ステップS2202:No)、検証装置104は、検証結果を失敗として出力し(ステップS2206)、タイムスタンプ検証処理を終了する。
【0106】
続いて、図22−2にて、ステップS2205の処理後、検証装置104は、選択された検証対象データの要約情報を生成する(ステップS2207)。次に、検証装置104は、発行時刻ログ411の発行対象データの要約情報フィールドから、生成された要約情報と一致するレコードを検索する(ステップS2208)。検索後、検証装置104は、要約情報が一致するレコードが存在したか否かを判断する(ステップS2209)。
【0107】
一致するレコードが存在した場合(ステップS2209:Yes)、検証装置104は、一致するレコード内の、発行対象データの要約情報、ローカルタイマ時刻とローカル時刻を表示用データに追加する(ステップS2210)。続けて、検証装置104は、検索していない検証対象データが存在するか否かを判断する(ステップS2211)。
【0108】
存在する場合(ステップS2211:Yes)、検証装置104は、検索していない検証対象データを選択し(ステップS2212)、ステップS2207の処理に移行する。存在しない場合(ステップS2211:No)、検証装置104は、発行時刻ログ411の末尾から2番目のレコードから、厳密時刻、ローカルタイマ時刻、誤差を表示用データに追加する(ステップS2213)。追加後、検証装置104は、検証結果を成功として出力し(ステップS2214)、タイムスタンプ検証処理を終了する。また、一致するレコードが存在しない場合(ステップS2209:No)、検証装置104は、検証結果を失敗として出力し(ステップS2215)、タイムスタンプ検証処理を終了する。
【0109】
以上説明したように、発行装置、発行方法、および発行プログラムによれば、オンライン時に受信した標準時と受信時点の内部時計の時刻との差分を算出しておき、オフライン時、発行対象データの受付時点での内部時計の時刻を差分で補正した時刻に署名する。これにより、発行装置は、オフライン時に取得した発行対象データに対して、取得時刻の正当性を担保できる情報となるタイムスタンプを発行することができる。
【0110】
また、発行装置は、発行対象データの受付時点となる時刻に関する電子署名の生成後にオンラインとなった場合、標準時を受信し、受信時と内部時計の時刻との新たな誤差を算出する。続けて、発行装置は、発行対象データ受付前の標準時と標準時および内部時計の誤差と発行対象データに関する情報と発行対象データ受付の時刻と発行対象データ受付後の標準時と標準時および内部時計の新たな誤差と、を署名対象として電子署名を生成してもよい。これにより、発行装置は、オフラインの期間において発行対象データを取得したことを第三者が証明可能な情報を生成することができる。また、署名対象に発行対象データに関する情報が含まれているため、発行装置は、発行対象データの改ざんを検出可能なデータを発行することができる。
【0111】
また、発行装置は、ネットワーク接続が困難なローカル環境においても、第三者が証明可能な厳密時刻を継続的に発行可能であり、時刻発行ログの記録、および厳密時刻との誤差確認・追跡が可能となる仕組みを提供することが可能である。
【0112】
また、発行装置は、耐タンパモジュールによって保護されていてもよい。これにより、発行装置の内部時計に変更が行われないため、発行対象データに対して発行されるタイムスタンプの信ぴょう性を高めることができる。
【0113】
また、発行装置は、誤差と新たな誤差との差分が所定値より大きい場合、内部時計が変更されたことを出力してもよい。これにより、たとえば、発行装置が耐タンパモジュールによって保護されておらず、利用者による操作が行われる可能性がある場合に、発行装置は、内部時計が変更されたことを検出でき、タイムスタンプの信ぴょう性を高めることができる。
【0114】
なお、所定値としては、発行装置が含まれるデータ生成装置の使用形態によって設定してもよい。たとえば、ネットワークに接続されているデータ生成装置が、とある日の朝方にネットワークから遮断され、発行対象データとなる画像データ等を生成し、同日の夕刻にネットワークに再接続される場合を想定する。この場合、ネットワークが遮断されている時間は約12時間となるため、発行装置は、たとえば、所定値として12時間を設定してもよい。
【0115】
また、発行装置は、発行対象データの生成機能を有していてもよい。この場合、発行対象データに発行するタイムスタンプを、発行対象データの生成時点で行うことができる。したがって、発行装置は、発行対象データに対して、取得時点のタイムスタンプより正確な時刻保証を行うことができる。
【0116】
また、発行装置が含まれるデータ生成装置が、厳密時刻を発行可能であってもよい。具体的には、データ生成装置が、GPS機能を有しており、GPS衛星と無線通信によって通信可能となる場合である。このとき、データ生成装置が地下、トンネル等といった、GPS衛星と通信が行えない位置に存在し、オフライン状態となった場合であっても、発行装置は、オフライン状態にて取得した発行対象データに対してタイムスタンプを発行することができる。
【0117】
なお、本実施の形態で説明した発行方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本発行プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本発行プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【0118】
106 発行装置
201 ローカルタイマ
401 取得部
402 受信部
403 算出部
404 受付部
405 要約情報生成部
406 補正部
407 生成部
408 判定部
409 出力部
410 記憶部
411 発行時刻ログ

【特許請求の範囲】
【請求項1】
自装置の内部時計から時刻を取得する取得部と、
電子署名が付与された時刻を、標準時を配信する他装置から受信する受信部と、
前記受信部によって受信された第1の時刻と前記第1の時刻の受信時点で前記取得部から取得された第2の時刻との誤差を算出する算出部と、
前記他装置と遮断された状態で生成された発行対象データに関する情報を受け付ける受付部と、
前記受付部による前記発行対象データに関する情報の受付時点で前記取得部から取得された第3の時刻を、前記算出部によって算出された前記誤差を用いて補正する補正部と、
前記補正部による補正後の第4の時刻を署名対象とする電子署名を生成する生成部と、
を備えることを特徴とする発行装置。
【請求項2】
前記算出部は、
前記第4の時刻に関する電子署名の生成後、前記他装置と接続された時点で前記受信部から受信された第5の時刻と前記第5の時刻の受信時点で前記取得部から取得された第6の時刻との新たな誤差を算出し、
前記生成部は、
前記第1の時刻と前記誤差と前記発行対象データに関する情報と前記第4の時刻と前記第5の時刻と前記新たな誤差とを前記署名対象とする電子署名を生成する、
ことを特徴とする請求項1に記載の発行装置。
【請求項3】
前記内部時計は、耐タンパモジュールに含まれることを特徴とする請求項1または2に記載の発行装置。
【請求項4】
前記誤差と前記新たな誤差との差分が所定値より大きいか否かを判定する判定部と、
前記判定部によって前記差分が前記所定値より大きいと判定された場合、前記内部時計が変更されたことを出力する出力部と、
をさらに備えることを特徴とする請求項2に記載の発行装置。
【請求項5】
内部時計を有するコンピュータが、
電子署名が付与された第1の時刻を、標準時を配信する他装置から受信し、
受信した第1の時刻と前記第1の時刻の受信時点で前記内部時計から取得された第2の時刻との誤差を算出し、
前記他装置と遮断された状態で生成された発行対象データに関する情報を受け付け、
前記発行対象データに関する情報の受付時点で前記内部時計から取得された第3の時刻を、算出した前記誤差を用いて補正し、
補正後の第4の時刻を署名対象とする電子署名を生成する、
処理を実行することを特徴とする発行方法。
【請求項6】
内部時計を有するコンピュータに、
電子署名が付与された第1の時刻を、標準時を配信する他装置から受信し、
受信した第1の時刻と前記第1の時刻の受信時点で前記内部時計から取得された第2の時刻との誤差を算出し、
前記他装置と遮断された状態で生成された発行対象データに関する情報を受け付け、
前記発行対象データに関する情報の受付時点で前記内部時計から取得された第3の時刻を、算出した前記誤差を用いて補正し、
補正後の第4の時刻を署名対象とする電子署名を生成する、
処理を実行させることを特徴とする発行プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19−1】
image rotate

【図19−2】
image rotate

【図20−1】
image rotate

【図20−2】
image rotate

【図21−1】
image rotate

【図21−2】
image rotate

【図22−1】
image rotate

【図22−2】
image rotate


【公開番号】特開2013−74549(P2013−74549A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−213571(P2011−213571)
【出願日】平成23年9月28日(2011.9.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】