JP2021038965A - タイムスタンプ装置、タイムスタンプシステム、タイムスタンプ方法及びプログラム - Google Patents

タイムスタンプ装置、タイムスタンプシステム、タイムスタンプ方法及びプログラム Download PDF

Info

Publication number
JP2021038965A
JP2021038965A JP2019159324A JP2019159324A JP2021038965A JP 2021038965 A JP2021038965 A JP 2021038965A JP 2019159324 A JP2019159324 A JP 2019159324A JP 2019159324 A JP2019159324 A JP 2019159324A JP 2021038965 A JP2021038965 A JP 2021038965A
Authority
JP
Japan
Prior art keywords
time
time stamp
stamp
server
local
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019159324A
Other languages
English (en)
Inventor
杉本 浩一
Koichi Sugimoto
浩一 杉本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gmo Globalsign Kk
Original Assignee
Gmo Globalsign Kk
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gmo Globalsign Kk filed Critical Gmo Globalsign Kk
Priority to JP2019159324A priority Critical patent/JP2021038965A/ja
Publication of JP2021038965A publication Critical patent/JP2021038965A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Electric Clocks (AREA)

Abstract

【課題】タイムスタンプトークンの発行を高精度で実行可能なタイムスタンプシステムを実現する。【解決手段】GPS情報及び原子発振器からのクロック信号を用いて生成した時刻情報を基準時刻情報としてNTPによって配信するタイムサーバ10と、クライアント装置40からの求めに応じてタイムスタンプトークンを発行するタイムスタンプサーバ20を備え、タイムスタンプサーバ20は、タイムサーバ10から基準時刻情報の配信を受けるとともにタイムサーバ10から所定のタイミング信号(PPS信号)を入力され、タイムスタンプサーバ20が備える発振器が発生するクロック信号に基づいて生成したローカル時刻情報を、上記基準時刻情報と上記タイミング信号に基づいて校正し、校正したローカル時刻情報に基づいてタイムスタンプトークンを発行する。【選択図】図9

Description

本発明は、電子文書の存在証明、非改ざん証明を行うためのタイムスタンプトークンを発行するタイムスタンプ装置、タイムスタンプシステム、タイムスタンプ方法及びプログラムに関する。
電子文書が特定時刻以前に存在していたことを証明する存在証明の仕組みとしてタイムスタンプが知られている。タイムスタンプを電子文書に付与することによって、そこに刻印されている時刻に当該の電子文書が存在していたことを証明でき、また、当該の電子文書がその時刻以降に改ざんされていないことを証明することができる。
タイムスタンプを実現する方法は幾つか存在するが、PKI(後述する)の仕組みにおいては、タイムスタンプは、時刻認証局(TSA:Time Stamping Authority)と呼ばれる信頼される第三者によって付与される。そして、タイムスタンプの時刻は協定世界時と同期するよう規定される。PKIを利用したタイムスタンプは、RFC3161(X.509 インターネットPKIタイムスタンププロトコル)で標準化されている。
TSAは、時刻を認証する機関であるから、その時刻を信頼される時刻源より取得しなければならない。時刻を配信する機関を、時刻配信局(TAA:Time Assessment Authority)と呼び、特に日本国では、認定を受けたTAAから基準時刻の配信を受け、その基準時刻に同期したローカル時計の時刻(ローカル時刻)を用いて、タイムスタンプを付与することが求められる。
TAAの時刻の同期元は協定世界時である必要があるが、一般的には、協定世界時に時刻を提供しているローカル標準時(日本国の場合は国立研究開発法人情報通信研究機構が提供している)にする。協定世界時を管理する機関は国際度量均衡局(BIPM)であるが、BIPMは協定世界時に時刻を提供している機関と、協定世界時とのずれを常に管理・公開している。このため、ローカル標準時に時刻を同期しているTAAは協定世界時とある一定の精度で時刻を同期している、と言える。
基準時計に対して一定の精度で時刻を同期することを時刻のトレーサビリティーと呼ぶ。すなわち、時刻のトレーサビリティーとは、時刻の同期元を辿っていくと最終的に基準時計に辿りつき、それぞれの同期は一定の精度で保たれていることを言う。
基準時計とのトレーサビリティーを確保したTAAは、基準時刻をTSAに配信する。
基準時刻の配信を受けてローカル時刻を補正することで正確なタイムスタンプの付与を行うタイムスタンプ装置が、例えば特許文献1乃至2に記載されている。
特許文献1のタイムスタンプ装置は、タイムスタンプトークンを発行するための時計部を備えており、クライアント端末からの要求に応じてタイムスタンプトークンを発行する。タイムスタンプ装置は、一定時間毎に管理サーバに接続して認証を受けるとともに、管理サーバから基準時刻の配信を受けて時計部を補正する。管理サーバは、タイムスタンプ装置の認証、基準時刻の配信などを行う。
また特許文献2には、装置内部に内部時計を有し、この内部時計が刻むローカル時刻を、標準電波送信所から送信される標準電波に含まれた電波時刻により補正するタイムスタンプ装置が開示されている。
このタイムスタンプ装置は、電波時刻の取得に加えて、時刻発行サーバからネットワークを介して認証時刻を取得し、この認証時刻を用いて内部時計が刻むローカル時刻の補正を行う。
特開2011−082727公報 特開2006−236251公報
RFC3161で規定されるプロトコルに基づいた従来のタイムスタンプサービスの時刻精度は、一般的なサービスでは「1秒」程度に設定されることが多いが、コンピュータを用いた高頻度な証券取引などでは、1秒間に千件単位の時刻証明を行う需要が存在する。
例えば、欧州の第2次金融商品市場指令(MiFID2:Markets in Financial Instruments Directive 2)では、非常に高い精度のタイムスタンプが求められている。また、株式等の証券取引においては、コンピュータを用いた高頻度取引(HFT:High-Frequency Trading)が一般化しており、時間当たりの取引数は莫大な数に上り1秒間に数千件〜数万件にものぼる注文が行われる。
電子的な証券取引においては、売り注文、買い注文のデータにタイムスタンプを適用し、取引時刻を証明する必要がある。取引時刻の前後は、明確に特定される必要があるからである。
MIFID2では、すべてのHFT(高頻度取引)の注文におけるタイムスタンプは、マイクロ秒レベルの精度を有し、HFT以外の注文でも、タイムスタンプはミリ秒レベルの精度を有している必要がある。
しかしながら、現行のタイムスタンプの仕組みにおいては、タイムスタンプ装置のローカル時刻を基準時刻に高い精度で同期させ、且つ高粒度で常にタイミングスタンプを発行することは難しい。
コンピュータを用いた高頻度な証券取引など1秒間に千件単位の時刻証明を行うには、ローカル時刻が誤差マイクロ秒単位の極めて高い精度で基準時刻に同期している必要があるが、上記の引用文献1、2に記載の技術では、そのような高精度で内部時計と基準時刻との同期を行いタイムスタンプの発行を行うことは出来ない。
さらに、数年間に1回の頻度で行われる「閏秒」の挿入・削除は秒単位で行われるため、閏秒の挿入タイミング前後では基準時刻に対して1秒程度の時刻ずれが発生することになるため、配信される基準時刻とローカル時刻との正確な同期を行なって高精度でタイムスタンプトークンを発行することは難しい。
本発明は、上記のような問題点に鑑みてなされたものであり、常に高精度なタイムスタンプを発行可能なタイムスタンプ装置、タイムスタンプシステムを実現することを目的とする。
上記の課題を解決するために、第1の形態に係る本発明は、タイムサーバ装置と通信するタイムスタンプ装置であって、クロック信号を発生するクロック発生手段と、前記タイムサーバ装置から所定のタイミング信号を入力する信号入力手段と、前記クロック信号に基づいてローカル時刻を生成する時刻生成手段と、前記タイムサーバ装置から基準時刻を取得する時刻取得手段と、前記時刻取得手段が取得した前記基準時刻と、前記信号入力手段から入力された前記所定のタイミング信号と、に基づいて、前記ローカル時刻の校正を行う時刻校正手段と、外部装置からの要求に応じて、前記時刻校正手段によって校正された前記ローカル時刻を含むタイムスタンプトークンを発行するタイムスタンプ発行手段と、を備えた、タイムスタンプ装置を特徴とする。
また、第2の形態に係る本発明は、クロック信号を発生するクロック発生手段と、前記クロック信号に基づいてローカル時刻を生成する時刻生成手段と、タイムサーバ装置から基準時刻を取得する時刻取得手段と、前記時刻取得手段が取得した前記基準時刻に基づいて、前記ローカル時刻の校正を行う時刻校正手段と、外部装置からの要求に応じて、前記時刻校正手段によって校正された前記ローカル時刻を含むタイムスタンプトークンを発行するタイムスタンプ発行手段と、を備え、前記タイムサーバ装置は、所定タイミングにおいて前記基準時刻の調整を行い、前記タイムスタンプ発行手段は、前記所定タイミングの前後において、前記タイムスタンプの発行を制限されるタイムスタンプ装置を特徴とする。
上記のように構成することにより、常に高精度なタイムスタンプを発行可能なタイムスタンプ装置、タイムスタンプシステムを実現することが出来る。
本実施形態に係るタイムスタンプシステムの構成を説明する図である。 NTPにおけるアジャストモードを説明する図である。 本実施形態に係るタイムサーバの構成を示す図である。 GPS衛星が出射し、GPS受信機が出力するPPS信号を説明する図である。 本実施形態に係るタイムスタンプサーバの構成を示す図である。 本実施形態のタイムスタンプシステムにおけるタイムスタンプ発行の流れを説明するシーケンス図である。 本実施形態に係るタイムスタンプサーバが実行するタイムスタンプ発行処理を示すフローチャートである。 本実施形態に係るタイムスタンプシステムにおいて、タイムサーバ及びタイムスタンプサーバが実行する時刻同期処理を説明するフローチャートである。 本実施形態に係るタイムスタンプシステムの別の構成を説明する図である。 図9のタイムスタンプシステムにおけるタイムスタンプサーバのハードウェア構成を説明する図である。
以下に、図面を参照して本発明の実施の形態を詳細に説明する。
本実施形態のシステムは、主に公開鍵基盤において電子文書の日付を証明するために用いられるタイムスタンプトークンを発行するタイムスタンプシステムである。
まず、本実施形態の説明に先立って前提となる技術を説明する。
[公開鍵基盤]
公開鍵基盤(PKI:Public Key Infrastructure)は、公開鍵暗号方式と呼ばれる暗号方式を用い、暗号化、デジタル署名(電子署名)、認証といったセキュリティ機能を提供する情報セキュリティ基盤である。
公開鍵基盤では、公開鍵暗号方式の特徴を利用し、上述の暗号化、デジタル署名、認証といった機能を提供する。公開鍵暗号方式では、私有鍵と公開鍵の一方向性(私有鍵から公開鍵を計算できるが、公開鍵から私有鍵を計算するのは計算量的に困難であるという特徴)を利用して様々な機能を提供する。利用者は自らの私有鍵を秘密裏に保持し、公開鍵を他者に公開しておく。私有鍵は、秘密に保持するという意味を持たせて秘密鍵とも呼ぶ。
例えば利用者Bは、利用者Aに文書を送信するとき、利用者Aが公開している公開鍵を入手し、その公開鍵を使って暗号化した文書を利用者Aに送信する。利用者Aは受信した暗号化文書を、自身の私有鍵(秘密鍵)を用いて復号化する。
利用者Aの公開鍵を持っていれば誰もが利用者Aに対して暗号化文書を送信することが出来る一方で、利用者Aの公開鍵で暗号化したものは、利用者Aの私有鍵(秘密鍵)でしか復号できないため、仮に悪意の第三者が利用者Aの公開鍵を入手したとしても、暗号化文書の内容が漏えいすることはない。
[電子証明書]
公開鍵暗号方式で通信を行うには、通信相手に公開鍵を送信することになるが、ネットワーク経由での通信では通信相手が見えないため、第三者が通信相手に成りすまして公開鍵を送信する可能性がある。従って、公開鍵が本当に正しい相手から送られてきたものであるかを確認する必要がある。
PKIでは、例えば、信頼できる第三者機関(TTP: Trusted Third Party)が、私有鍵の所有者を保証する。すなわち、TTPは私有鍵(秘密鍵)の所有者の本人性を確認し、私有鍵(秘密鍵)と対になる公開鍵とその私有鍵(秘密鍵)の所有者とを紐づける電子証明書(公開鍵証明書)を発行する。電子証明書は持ち主の情報を正しく保障する「身分証明書」である。
電子証明書を発行するTTPは、特に認証局あるいは認証機関(CA:Certification Authority)と呼ばれる。
電子証明書には、公開鍵と、その公開鍵に対応する私有鍵(秘密鍵)の所有者を証明する所有者の名前、所属組織名、メールアドレス等の情報が記載されており、さらに電子証明書自体の改ざんを防ぐためにTTPの電子署名が付与されている。電子署名及び電子証明書を文書に付すことで、なりすましや、改ざんなどのリスクを未然に防ぐことが出来る。また、TTPに信頼される私有鍵(秘密鍵)の所有者を加入者(Subscriber、サブスクライバー)という。
[電子署名]
電子証明書はさらに、電子署名を検証する用途に用いられる。通常、電子署名には、電子証明書を添付する。電子署名を受け取った利用者は、電子証明書に記載された公開鍵を使って署名を検証し、データの改ざん検知を行い、電子証明書に記載された内容を使って署名者の特定を行うことが出来る。
電子署名には、文書のハッシュ値を私有鍵(秘密鍵)で暗号化した値が含まれる(実際には、暗号処理と署名処理は異なるが、署名処理のことを広義の暗号化と呼ぶことが多い)。利用者Aが利用者Bに対して電子署名を付した文書ファイルを送る場合、利用者Aは、送信する文書ファイルをハッシュ関数にかけることによって得たハッシュ値を利用者Aの私有鍵(秘密鍵)を用いて暗号化し、電子署名を作成して、文書ファイルに添付する。
電子署名付きの文書ファイルを受け取った利用者Bは、電子署名に含まれる暗号化された値を利用者Aの公開鍵を使って復号化することによって得たハッシュ値と、文書ファイルをハッシュ関数にかけることによって得たハッシュ値と、を比較する。比較の結果、双方のハッシュ値が同一であれば、文書が改ざんされていないことが証明される。
[タイムスタンプ]
タイムスタンプは、上記したPKIの仕組みにおいて、TTPとしての時刻認証局が、電子署名に時刻情報を付加したものである。
電子署名における署名時刻は、端末の設定などで捏造が可能である。従って、電子署名だけでは、時刻に対する証明はできない。
一方、時刻認証局は、時刻や私有鍵を厳格に管理し運用しているため、提供される時刻はTTPとして信頼されるものである。このため、時刻認証局によって付与された時刻情報と電子署名は、時刻に紐づけて電子データの存在と非改ざん性を証明することが出来るのである。
タイムスタンプは、知的財産保護や、電子商取引、電子申請、電子カルテなど様々な用途に用いることが出来る。
特に電子商取引に関しては、タイムスタンプを受発注データに適用することにより取引時刻を証明することが出来る。
タイムスタンプは、電子文書(コンテンツ)のハッシュ値に対して時刻情報を付し、時刻認証局が電子署名を施すことで生成される。正式には、「タイムスタンプトークン」と呼ばれるが、本明細書では単に「タイムスタンプ」と略してもよいものとする。
図1は本実施形態に係るタイムスタンプシステムの構成を説明する図である。
図1のタイムスタンプシステム1は、タイムサーバ10と、タイムスタンプサーバ20と、フロントエンドサーバ30と、クライアント装置40と、を備える。
タイムサーバ10は、時刻配信局(TAA:Time Assessment Authority、以下単にTAAと記載する)に属し、タイムスタンプサーバ20、フロントエンドサーバ30は、時刻認証局(TSA:Time Stamping Authority、以下単にTSAと記載する)に属する。
TAAとしてのタイムサーバ10は、高精度且つ高信頼の時刻を必要とする組織等に、GPS(Global Positioning System、以下単にGPSと記載する)及び原子発振器に基づく正確な基準時刻情報を生成して配信する時刻配信サービスを提供する。
TSAとしてのタイムスタンプサーバ20は、インターネット上の取引や手続き等が行われた時刻や電子文書の存在した日時を証明する時刻認証サービスを提供する。
タイムスタンプサーバ20は、タイムサーバ10が配信する基準時刻と同期したローカル時刻に基づいて、クライアント装置40からの求めに応じてタイムスタンプトークンを発行する。
フロントエンドサーバ30は、クライアント装置40がタイムスタンプを要求する際に接続するインターフェイスとなる装置であり、例えばWEBサーバである。
フロントエンドサーバ30は、クライアント装置40が行ったタイムスタンプ要求を受け付け、タイムスタンプサーバ20に転送する。
また、フロントエンドサーバ30は、タイムスタンプサーバ20で発行されたタイムスタンプを、クライアント装置40に転送する。
本実施形態のタイムスタンプシステム1において、TSAを構成する機器のうちインターネットに公開されているのはフロントエンドサーバ30のみであり、タイムサーバ10、タイムスタンプサーバ20はインターネットには公開されていない。
そして、フロントエンドサーバ30とクライアント装置40はインターネットを介して互いに通信可能に構成されている。
タイムスタンプサーバ20は、クライアント装置40と直接に通信することなく、フロントエンドサーバ30を介してタイムスタンプサービスを提供する。
クライアント装置40は、ウェブブラウザ等を実行可能な一般的なPCやスマートフォンである。
クライアント装置40のCPUによって実行されるウェブブラウザやその他のアプリケーションソフトは、文書データや画像データに対するタイムスタンプ要求をフロントエンドサーバ30に送信する。
タイムサーバ10、タイムスタンプサーバ20、フロントエンドサーバ30、クライアント装置40の間でやり取りされるデータの類は、おもにHTTPリクエストやHTTPレスポンスのパラメータとして(HTTPプロトコルを利用して)送受信される。ただし、セキュリティ確保が必要な部分においては、通信自体を、HTTPSやVPNを利用するなどして保護する。
タイムサーバ10は、GPS情報及び原子発振器(原子時計)からのクロック信号を用いて時刻情報を生成し、生成した時刻情報を基準時刻情報として、NTP(Network Time Protocol、以下単にNTPと記載する)等のプロトコルを用いて外部装置に配信する。
タイムサーバ10は、協定世界時(UTC:Coordinated Universal Time、以下単にUTCと表記する)と精確に同期した基準時刻情報を生成する仕組みを有している。
タイムスタンプサーバ20は、発振器を備え、この発振器が発生するクロック信号に基づいて、タイムスタンプに付与するためのローカル時刻情報を生成する。
そして、タイムスタンプサーバ20は、クライアント装置40からの要求に応じて、対象となる電子文書のハッシュ値にローカル時刻情報を付与したうえ、秘密鍵で暗号化することによりタイムスタンプトークンを発行する。
タイムスタンプサーバ20は、ローカル時刻情報を、タイムサーバ10から取得した基準時刻情報との同期によって校正しながらタイムスタンプの付与を行う。
このようなタイムスタンプシステムにおいては、「閏秒」の問題が知られている。
「閏秒」は、地球の自転周期(実際の1日)と原子発振器の周期のズレを補正するために、数年に一度挿入、あるいは削除される「1秒」である。
タイムサーバ10は、数年に一度の所定日時に、例えば以下に示すように、閏秒として「60秒目」の1秒を挿入した基準時刻を配信する。
2016 December 31 23h 59m 59s
2016 December 31 23h 59m 「60s」
2017 January 01 0h 0m 0s
この場合、タイムサーバ10は、基準時刻情報を配信するNTPメッセージに含まれる「閏秒指示子」(Leap Indicator)に「01」を設定することで「60秒目」の挿入を前もって対応機器に通知する。
ただし、タイムサーバ10の管理者が「閏秒指示子」の設定を適切に行わない場合には対応機器は適切にローカル時刻の校正を行うことが出来ない。
さらに、レガシーシステムのクライアント装置など、閏秒「60秒目」を認識できない環境も存在する。
タイムスタンプサーバ20に関しては正確なタイムスタンプの付与が行えないのみならず、最悪の場合システム障害の発生にもつながる。
そのような問題に対する解決策として、「アジャストモード」と呼ばれる方式も知られている。
図2は、NTPにおけるアジャストモードを説明する図である。
「アジャストモード」では、「閏秒」が発生する所定時間前より一定の割合で徐々に基準時刻を遅らせていくことで、「閏秒」に対応するための調整が行われる。
「アジャストモード」では、「閏秒指示子」が常に「00」に設定されるため、対応機器は通常どおりタイムサーバ10から基準時刻情報の配信を受けてローカル時刻を同期させるだけで「閏秒」に対応することが出来る。
例えば、図2に示すように「閏秒」が発生するのが「2012年7月1日9:00」であれば、タイムサーバ10は、その2時間前(7200秒」)前の「2012年7月1日7:00」から、一定の割合(1/7200秒ずつ)で配信する基準時刻を遅らせていき、7200秒をかけて「2012年7月1日9:00」に調整(挿入)を完了する。
基準時刻情報はNTPメッセージのパケットに記載されており、NTPサーバとしてのタイムサーバ10は、パケット内時刻を1/7200秒ずつ遅らせる。
しかしながら「アジャストモード」によって生成される基準時刻と同期したとき、タイムスタンプサーバ20などの対応機器のローカル時刻には、全体として、基準時刻に対して1秒程度(1時間前に基準時刻を遅らせたとしても0.5秒程度)の誤差が生じる、という問題がある。
また、「アジャストモード」中に配信される(1/7200秒異なっている)基準時刻情報の精度も、極めて高精度であるとは言いがたい。
このため、アジャストモードによって、閏秒「60秒目」を認識できないレガシーなクライアント装置に精度の高い時刻を配信することはできない。
タイムスタンプサーバ20は、上記レガシーシステムにも対応可能とするとともに、タイムサーバ10による「閏秒」挿入時、削除時においてもタイムスタンプの信頼性を確保するために、「閏秒」の挿入タイミング及びその前後の所定時間に亘ってタイムスタンプの受付を停止する。
「閏秒」の挿入タイミング及びその前後の所定時間に亘ってタイムスタンプの受付を停止することで、「60秒目」を認識できないレガシーシステムが「閏秒」の挿入による影響をうけることがないからである。
サービス利用者からのタイムスタンプのリクエストを受けたフロントエンドサーバ30がサービスを遮断する(すなわち、タイムスタンプのリクエストを受け付けない)ようにしてもよい。また、フロントエンドサーバ30からタイムスタンプのリクエストを転送されたタイムスタンプサーバ20が、タイムスタンプの発行を行わないようにしてもよい。
いずれの場合も、フロントエンドサーバ30は、クライアント装置40からのタイムスタンプのリクエストに対し、タイムスタンプの発行を行えない旨を示す応答を行う。
本実施形態において、「閏秒」の挿入に伴うタイムスタンプサーバ20のサービス遮断は、タイムサーバ10による「アジャストモード」実行有無に係わらず、「閏秒」の挿入タイミングを含む「閏秒」の挿入前後の期間に行われるものである。
タイムスタンプサーバ20は、タイムサーバ10によって「アジャストモード」が実行される場合、されない場合も含めて、タイムサーバ10が基準時刻の調整(閏秒の挿入)を行うタイミングの前後においてタイムスタンプの発行を制限される。
タイムスタンプサーバ20によるタイムスタンプの発行を制限する期間は、例えば、タイムサーバ10によって「アジャストモード」が実行される場合を考慮して「アジャストモード」の実行中(上記の例では7200秒)及び実行後すぐの期間とすることが出来る。これはあくまで一例であり、タイムスタンプの発行を制限する期間は、「閏秒」の挿入タイミング前後のより長い任意の期間であってもよいし、より短い任意の期間であってもよい。
以下、本実施形態のタイムスタンプシステム1を構成する装置について詳述する。
図3は、本実施形態に係るタイムサーバの構成を示す図であり、(a)はハードウェアによる機能構成を示す図、(b)はソフトウェアによる機能構成を示す図である。
図3(a)に示すように、タイムサーバ10は、CPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、ROM(Read Only Memory)13と、ネットワークI/F14と、GPS受信機15と、位相同期部16と、信号出力I/F17と、を備える。
CPU11は、タイムサーバ10が備えて制御部を実現する制御回路の一例であり、制御回路としては、その他にマルチコアCPU、FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)などのプロセッサを適用することが出来る。
CPU11は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、タイムスタンプサーバ20としての機能を実現するプログラムを実行する。
RAM12は、CPU11による処理のために各種のプログラムや一時データ、変数が展開される。
ROM13には、CPU11が実行するプログラムが格納される。タイムサーバ10は、ROM13に換えてあるいは加えてハードディスクドライブなどの大容量の記憶装置を備えてもよい。
ハードディスクドライブは、内蔵するハードディスク(Hard Disk)を駆動するドライブ装置であり、記憶媒体としてのハードディスクに格納されたプログラムやデータを読み出し、またハードディスクにデータを書き込む。
また、タイムサーバ10は、FD(Floppy Disk Drive)、CD(Compact Disc)やDVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disk)などの光学ディスク、フラッシュメモリなどの着脱可能な記憶媒体に対してプログラムやデータを読み書きする読書装置を備えてもよい。
読書装置は、FDD(Floppy Disk Drive)、CDD(Compact Disc Drive)、DVDD(Digital Versatile Disc Drive)、BDD(Blu-ray(登録商標) Disk Drive)、USB(Universal Serial Bus)などである。
ネットワークI/F14は、タイムサーバ10をネットワークに接続するためのインターフェイスであり、例えばEthernetアダプタである。
まず、GPS受信機15について説明する。
GPS受信機15は、GPS衛星Sから送信された、基準信号としてのPPS(Pulse Per Second)信号や、NMEA(National Marine Electronics Association)データの元となる衛星信号を、GPSアンテナ15aを介して受信する。
そして、GPS受信機15は、衛星信号に含まれるPPS信号や、NMEAデータを出力する。PPS信号は、UTCと同期した1秒毎に1パルスを含むパルス信号である。
図4はGPS衛星が出射し、GPS受信機が出力するPPS信号を説明する図である。
GPS受信機が備えるチップでは、高精度(例えば30ナノ秒程度)の精度でPPS信号を出力することが出来る。PPS信号は、パルス波の立ち上がりが、正確な1秒(2018/6/1−21:54:21.00000000xx、UTC=2018/6/1−21:54:22.00000000xx・・・)の開始に非常に高い精度で一致している。
NMEAパケットはPPS信号のパルス波と共に出力され、位置情報に関連した時刻情報などを含む。
NMEAデータに含まれる時刻情報はUTCに同期してはいるが、時刻データのフォーマットは、HHMMSS.ZZ(XX時MM分SS.ZZ秒)である。すなわち、NMEAデータの時刻情報は、1秒の100分の1秒の程度の精度である。
タイムスタンプサーバ20に対して高精度の基準時刻を配信するためには、NMEAデータに含まれる時刻データをそのまま基準時刻として用いることは出来ない。
タイムサーバ10は、高精度の基準時刻を生成するために原子発振器を有する。
位相同期部16は、位相比較器16a、ループフィルター16b、原子発振器16c、分周器16dと、から構成され、GPS受信機15が出力したPPS信号と同期した時刻情報、PPS信号を出力する。
原子発振器16cは、例えばルビジウム原子やセシウム原子等の原子のエネルギー遷移を利用して、周波数精度の高いクロック信号を出力可能である。
なお、原子発振器16cに代えて、恒温槽付水晶発振器(OCXO:Oven Controlled Crystal Oscillator)、電圧制御水晶発振器(VCXO:Voltage Controlled Crystal Oscillator)、温度補償型水晶発振器(TCXO:Temperature Compensated Crystal Oscillator)等の水晶発振器を用いることが出来る。
分周器16dは、原子発振器16cが出力するクロック信号(周波数:f)を1/fの分周比で分周し、1Hzの分周クロック信号を出力する。
位相比較器16aは、GPS受信機15が出力するPPS信号と分周器16dが出力する1Hzの分周クロック信号とを位相比較し、その結果として位相差に応じた電圧値の位相差信号を出力する。この位相差信号は、ループフィルター16bを介して原子発振器16cに入力される。
原子発振器16cは、ループフィルター16bの出力電圧に応じて周波数を微調整可能であり、原子発振器16cが出力するクロック信号は、GPS受信機15が出力するPPS信号と完全に同期する。クロック信号は基準時刻情報の生成に用いられる。
また、分周器16dが出力する1Hzの分周クロック信号は、GPS受信機15が出力するPPS信号と同期している。タイムサーバ10は、この分周クロック信号を、UTCと同期した極めて周波数精度の高いPPS信号として信号出力I/F17から外部に出力することが出来る。信号出力I/F17から外部に出力されるPPS信号については後に説明する。
なお、タイムサーバ10は、原子発振器16cが出力するクロック信号を、GPS受信機15が出力するPPS信号に同期させるのではなく、原子発振器16c等を自走発振させ、それによって得られるクロック信号を後述する基準時刻情報の生成に用いてもよい。タイムサーバ10は、GPS受信機15から受信したPPS信号をそのまま信号出力I/F17から出力してもよい。
また、信号出力I/F17から出力されるパルスは1秒に1回のPPS信号ではなく、10KHzなどの周波数の高いパルス信号であってもよい。
図3(b)に示すように、CPU11は、時刻情報要求受付処理部51と、時刻情報送信処理部52と、基準時刻生成処理部53と、を実行する。
これらの処理部は、タイムサーバ10の制御部の機能を実現するプログラムであり、当該プログラムは、ROM13やハードディスクあるいは上記の着脱可能な記憶媒体に格納され得る。プログラムは、ROM13やハードディスク、上記の着脱可能な記憶媒体からRAM12に読み出されてCPU11によって実行される。
時刻情報要求受付処理部51は、タイムスタンプサーバ20からの時刻情報要求を受け付ける処理部である。
時刻情報送信処理部52は、タイムスタンプサーバ20に対して、下記の基準時刻生成処理部53が生成した時刻情報を送信する処理部である。
時刻情報要求受付処理部51と、時刻情報送信処理部52は、所謂NTPサーバを構成している。
基準時刻生成処理部53は、位相同期部16から出力されるクロック信号に基づいて、実時間の時刻情報を生成する処理部である。
基準時刻生成処理部53が生成する時刻情報は、NTPによってタイムスタンプサーバ20に供給され、タイムスタンプサーバ20のローカル時刻を校正するために用いられる基準時刻情報である。
なお、図3に示す構成はあくまで一例である。タイムサーバ10は、図3(a)に示すCPU11に替えてASIC(Application Specific Integrated Circuit)などのデバイスを備え、図3(b)に示す各処理部をハードウェアによるロジック回路によって実行してもよい。
特に、タイムサーバ10は、CPU11が実行する基準時刻生成処理部53に替えて、位相同期部16からのクロック信号に基づくカウントアップを行うことにより時刻情報を生成するリアルタイムクロック(タイマカウンタ)を備えることが出来る。
図5は、本実施形態に係るタイムスタンプサーバの構成を示す図であり、(a)は、ハードウェアによる機能構成を示す図、(b)は、ソフトウェアによる機能構成を示す図である。
図5(a)に示すように、タイムスタンプサーバ20は、CPU(Central Processing Unit)21と、RAM(Random Access Memory)22と、記憶装置23と、ネットワークI/F24と、ハードウェアセキュリティモジュール(HSM:Hardware Security Module)100と、を備える。
CPU21は、タイムスタンプサーバ20が備えて制御部を実現する制御回路の一例であり、制御回路としては、その他にマルチコアCPU、FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)などのプロセッサを適用することが出来る。
CPU21は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、タイムスタンプサーバ20の機能を実現するプログラムを実行する。
RAM22は、CPU21による処理のために各種のプログラムや一時データ、変数が展開される。
記憶装置23は、ROM(Read Only Memory)やハードディスクドライブ(Hard Disk Drive)などであり、CPU11が実行するプログラムが格納される。
ハードディスクドライブは、内蔵するハードディスク(Hard Disk)を駆動するドライブ装置であり、記憶媒体としてのハードディスクに格納されたプログラムやデータを読み出し、またハードディスクにデータを書き込む。
ネットワークI/F24は、タイムスタンプサーバ20をネットワークに接続するためのインターフェイスであり、例えばEthernetアダプタである。
また、タイムスタンプサーバ20は、FD(Floppy Disk Drive)、CD(Compact Disc)やDVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disk)などの光学ディスク、フラッシュメモリなどの着脱可能な記憶媒体200に対してプログラムやデータを読み書きする読書装置25を備えてもよい。
読書装置25は、FDD(Floppy Disk Drive)、CDD(Compact Disc Drive)、DVDD(Digital Versatile Disc Drive)、BDD(Blu-ray(登録商標) Disk Drive)、USB(Universal Serial Bus)などである。
HSM100は、暗号鍵(秘密鍵)を生成・格納し、この暗号鍵を用いて電子署名を生成する装置である。
RAM22と記憶装置23は、タイムスタンプサーバ20の記憶部20Bを構成する。記憶部20Bには鍵記憶部69が備えられ、鍵記憶部69に暗号鍵が格納される。
CPU21、RAM22、記憶装置23、ネットワークI/F24、読書装置25、HSM100は、例えば内部バスを介して接続されている。
図5(b)に示すように、CPU21は、制御部20Aとして、時刻情報要求処理部61と、時刻情報取得処理部62と、ローカル時刻生成処理部63と、ローカル時刻校正処理部64と、タイムスタンプ要求受付処理部65と、タイムスタンプ発行処理部66と、タイムスタンプ送信処理部67と、を実行する。
これらの処理部は、タイムスタンプサーバ20の制御部20Aの機能を実現するプログラムであり、当該プログラムは、記憶装置23に含まれるハードディスク等や記憶媒体200に格納され得る。プログラムは、記憶装置23や読書装置25によってハードディスク等や記憶媒体200からRAM22に読み出されてCPU21によって実行される。
時刻情報要求処理部61は、ネットワークI/F24を制御し、タイムサーバ10に対してNTPを用いた基準時刻情報の要求を行う処理を行う。
時刻情報取得処理部62は、タイムサーバ10から送信された基準時刻情報を取得する処理を行う。
上記時刻情報要求処理部61と時刻情報取得処理部62は、所謂NTPクライアントを構成する。
ローカル時刻生成処理部63は、発振器26から入力されたクロック信号に基づいて、実時間のローカル時刻情報を生成する処理を行う。
ローカル時刻校正処理部64は、ローカル時刻生成処理部63が生成したローカル時刻情報を、時刻情報取得処理部62が取得した基準時刻情報に基づいて補正する処理を行う。
タイムスタンプ要求受付処理部65は、フロントエンドサーバ30を介した、クライアント装置からのタイムスタンプ要求を受け付ける処理を行う。
タイムスタンプ要求とは、タイムスタンプの対象となる文書データや画像データなど原データ(コンテンツデータ)のハッシュ値(メッセージダイジェスト)を含むデータである。
タイムスタンプ発行処理部66は、タイムスタンプ要求に含まれるメッセージダイジェストと、ローカル時刻生成処理部63が生成してローカル時刻校正処理部64が校正したローカル時刻情報と、を含むデータ(署名対象値)のハッシュ値を、HSM100に入力する。
HSM100は、入力されたハッシュ値に対する電子署名(電子署名値)を、HSM100が記憶する暗号鍵(秘密鍵)を用いて生成する。
タイムスタンプ発行処理部66は、上記署名対象値と、HSM100が生成した電子署名値と、TSAの電子証明書と、を組み合わせてタイムスタンプトークンを発行する。
タイムスタンプ送信処理部67は、発行されたタイムスタンプを、フロントエンドサーバ30を介してタイムスタンプを要求したクライアント装置40に送信する処理を行う。
なお、図5に示す構成も一例である。タイムスタンプサーバ20は、図5(a)に示すCPU21に替えてASIC(Application Specific Integrated Circuit)などのデバイスを備え、図5(b)に示す各処理部をハードウェアによるロジック回路によって実行してもよい。
特にタイムスタンプサーバ20は、CPU21が実行するローカル時刻生成処理部63に替えて、発振器26からのクロック信号に基づくカウントアップを行うことにより時刻情報を生成するリアルタイムクロック(タイマカウンタ)を備えることが出来る。
HSM100は、例えば、タイムスタンプサーバ20の内部バスに接続されるかたちでタイムスタンプサーバ20に内蔵される。また、HSM100は、タイムスタンプサーバ20の外部バス(USBバスなど)に接続されてもよい。
HSM100はネットワークインターフェイスを備え、HSM100単独でネットワークに接続可能とされてもよい。HSM100は、タイムスタンプサーバ20と同一のローカルネットワーク、遠隔のネットワークにおいて、タイムスタンプサーバ20と通信可能に接続される。
その場合、タイムスタンプサーバ20は、タイムスタンプ要求に含まれるメッセージダイジェストと、ローカル時刻生成処理部63が生成してローカル時刻校正処理部64が校正したローカル時刻情報と、を含むデータ(署名対象値)のハッシュ値をHSM100に入力して、当該ハッシュ値に対する電子署名値の生成をHSM100に命令する。
HSM100は、入力されたハッシュ値に対する電子署名(電子署名値)を、HSM100が記憶する暗号鍵(秘密鍵)を用いて生成する。
タイムスタンプサーバ20は、上記署名対象値と、HSM100が生成した電子署名値と、TSAの電子証明書と、を組み合わせてタイムスタンプトークンを発行する。
なお、タイムスタンプサーバ20は、HSM100を備えずに暗号鍵を記憶装置23等の記憶部20Bに格納し、CPU21による処理によってタイムスタンプトークンを発行してもよい。
その場合、タイムスタンプ発行処理部66は、タイムスタンプ要求に含まれるメッセージダイジェストと、ローカル時刻生成処理部63が生成してローカル時刻校正処理部64が校正したローカル時刻情報と、を含むデータ(署名対象値)のハッシュ値に対して、記憶部20Bの鍵記憶部に記憶される暗号鍵(秘密鍵)を用いて電子署名値を生成する。そして、タイムスタンプ発行処理部66は、上記署名対象値と、生成した電子署名値と、TSAの電子証明書と、を組み合わせてタイムスタンプトークンを発行する。
図6は、本実施形態のタイムスタンプシステムにおけるタイムスタンプ発行の流れを説明するシーケンス図である。
ステップS1において、クライアント装置40は、フロントエンドサーバ30に対してタイムスタンプ要求を行う。
ステップS2において、フロントエンドサーバ30は、タイムスタンプ要求の受付処理を行う。
この受付処理は、今回行われたタイムスタンプ要求を受理し、タイムスタンプサーバ20にタイムスタンプ要求を転送するかどうかを決定する処理を含む。
ステップS3において、フロントエンドサーバ30は、タイムスタンプ要求をタイムスタンプサーバ20に転送する。
ステップS4において、タイムスタンプサーバ20はタイムスタンプ発行処理を行う。
ステップS5において、タイムスタンプサーバ20は、ステップS4で発行したタイムスタンプを、フロントエンドサーバ30に送信する。
ステップS6において、フロントエンドサーバ30は、ステップS6において、タイムスタンプを、クライアント装置40に転送する。
図7は、本実施形態に係るタイムスタンプサーバが実行するタイムスタンプ発行処理を示すフローチャートである。
CPU21(タイムスタンプ要求受付処理部65)は、ステップ51において、フロントエンドサーバ30から転送されたタイムスタンプ発行要求があるか否かを判定する。
タイムスタンプ発行要求があると判定した場合(ステップ51でYes)、CPU21(タイムスタンプ要求受付処理部65)は、ステップ52において、現在、タイムサーバ10が上記した「閏秒」を挿入するタイミング又はその前後の所定期間内であるか否かを判定する。
現在、タイムサーバ10が「閏秒」を挿入するタイミング又はその前後の所定期間内であると判定した場合(ステップ52でYes)、CPU21(タイムスタンプ要求受付処理部65)は、ステップ53において、タイムスタンプ要求を破棄し、エラー終了する。エラーコードはHTTPレベルで返却してもよいし、RFC3161に規定されているタイムスタンプレスポンスにて返却してもよい。この場合タイムスタンプは発行されない。
現在、タイムサーバ10が「閏秒」を挿入するタイミング又はその前後の所定期間内ではないと判定した場合(ステップ52でNo)、CPU21(タイムスタンプ要求受付処理部65)は、ステップ54において、タイムスタンプ要求(対象文書のメッセージダイジェストを含む)を受け付け、RAM22に格納する。
CPU21(タイムスタンプ発行処理部66)は、RAM22に格納されているタイムスタンプ要求に含まれるメッセージダイジェストと、ローカル時刻生成処理部63が生成してローカル時刻校正処理部64が校正したローカル時刻情報と、を含むデータ(署名対象値)に対してハッシュ値を算出し、このハッシュ値に対してHSM100に生成させた電子署名値、上記署名対象値、及びTSAの電子証明書を組み合わせてタイムスタンプトークンを発行する。ここで、HSM100は、HSM100に格納されている暗号鍵(秘密鍵)を用いて電子署名値を生成する。
または、CPU21(タイムスタンプ発行処理部66)は、HSM100に署名対象コンテンツデータに対する電子署名を生成させるのではなく、タイムスタンプサーバ20が備える記憶部20Bの鍵記憶部に格納した暗号鍵を用いてハッシュ値に対する電子署名を生成し、署名対象値、電子署名、TSAの電子証明書を組み合わせてタイムスタンプトークンを発行する。
なおタイムサーバ10が「閏秒」を挿入するタイミング又はその前後の所定期間内であるか否かを判断し、そうである場合にタイムスタンプ要求を破棄する処理は、図6のステップS2(タイムスタンプ要求受付処理)において、フロントエンドサーバ30で行ってもよい。
その場合、フロントエンドサーバ30は、タイムスタンプ要求をタイムスタンプサーバ20に転送しないため、タイムスタンプサーバ20は、タイムスタンプトークンを発行しない。
図8は、本実施形態に係るタイムスタンプシステムにおいて、タイムサーバ及びタイムスタンプサーバが実行する時刻同期処理を説明するフローチャートである。
図8(a)は、タイムスタンプサーバ側の処理を示し、図8(b)は、タイムサーバ側の処理を示している。
図8(a)を用いてタイムスタンプサーバ側の処理を説明する。
CPU21(時刻情報要求処理部61)は、ステップS101において、時刻同期タイミングとなったか否かを判定する。タイムスタンプサーバ20は所定周期毎にタイムサーバ10に基準時刻を問い合わせて時刻同期を行う。
時刻同期タイミングとなったと判定した場合(ステップS101でYes)、CPU21(時刻情報要求処理部61)は、ステップS103において、タイムサーバ10から送信された時刻情報があるか否かを判定する。
タイムサーバ10から送信された時刻情報があると判定された場合(ステップS103でYes)、CPU21(時刻情報取得処理部62)は、ステップS104において、時刻情報を取得する。
そして、CPU11(ローカル時刻校正処理部64)は、ステップS105において、ローカル時刻を基準時刻によって校正して処理を終了する。
図8(b)のタイムサーバ側の処理を説明する。
CPU11(時刻情報要求受付処理部51)は、ステップS201において、タイムスタンプサーバ20から送信された時刻情報要求があるか否かを判定する。
タイムスタンプサーバ20から送信された時刻情報要求があると判定した場合(ステップS201でYes)、CPU11(時刻情報要求受付処理部51)は、ステップS202において、時刻情報要求を受け付ける。
そして、CPU11(時刻情報送信処理部52)は、ステップS203において、時刻情報を、タイムスタンプサーバ20に対して送信する。
上記に説明したように、タイムスタンプシステムでは、NTPのみを用いてタイムサーバと時刻同期を行うタイムスタンプサーバが、閏秒の挿入期間にタイムスタンプ発行を行わないことで、タイムスタンプの正確性を担保することが出来る。
RFC3161で規定されるタイムスタンププロトコルに基づくタイムスタンプサービスの時刻精度は「1秒」以内であることが多い。
このため、タイムスタンプサーバ20で付与されるタイムスタンプの時刻は、UTCとの誤差が「1秒」以内であることが求められている。
ただし、コンピュータを用いた高頻度な証券取引など1秒間に千件単位の時刻証明を行う需要があり、欧州の第2次金融商品市場指令(MiFID2:Markets in Financial Instruments Directive 2)では、「1秒」以内を超えたより高い精度のタイムスタンプが求められている。
株式等の証券取引においてコンピュータを用いた高頻度取引(HFT:High-Frequency Trading)が一般化しており、時間当たりの取引数は莫大な数に上り1秒間に数千件〜数万件にものぼる注文が行われる。
電子的な証券取引においては、売り注文、買い注文のデータにタイムスタンプを適用し、取引時刻を証明する必要がある。取引時刻の前後は、明確に特定される必要があるからである。
MIFID2では、すべてのHFT(高頻度取引)の注文におけるタイムスタンプは、マイクロ秒レベルの精度を有し、HFT以外の注文でも、タイムスタンプはミリ秒レベルの精度を有している必要がある。
タイムスタンプの誤差(時刻精度)が1秒あると、1秒単位のタイムスタンプしか付与できない。1秒単位のタイムスタンプの時刻表示は、「20190204235959(2019年2月4日23時59分59秒)」などとなり、1秒(59秒目)の間に行われる数千件の取引の時刻を個々に特定することが出来ない。
それに対し、1マイクロ秒(100万分の1秒)単位のタイムスタンプの時刻表示は、「20190204235959.123456Z(2019年2月4日23時59分59秒123456Z)」などであり、1秒以下の値を極めて細かい粒度で表示し、1秒(59秒目)の間に行われる数千件以上の取引の時刻を個々に特定して証明をすることが出来る。
図3について説明したように、タイムサーバ10自体は、UTCと正確に同期した基準時刻情報を生成可能であるが、タイムサーバ10から基準時刻情報をIPネットワーク上でNTPを介して取得する限りは、タイムスタンプサーバ20のローカル時刻情報を、基準時刻情報に応じた精度でUTCに同期させることは難しい。
それに対して、本実施形態のタイムスタンプサーバ20では、タイムサーバ10からUTCと同期したPPS信号や高周波パルス信号などのタイミング信号の供給を受けることにより、タイムスタンプサーバ20のローカル時刻及びタイムスタンプそのもの精度を高めることが出来る。
本実施形態のタイムスタンプサーバ20は、NTPによって所定周期でタイムサーバ10から基準時刻を取得することによってローカル時刻を校正するが、それとともに、タイムサーバ10が出力するタイミング信号を入力し、それに基づいてローカル時刻のクロック精度をマイクロ秒単位で向上させることで、MIFID2にも対応可能な高精度の高いタイムスタンプの付与が可能である。
タイムスタンプサーバ20が、タイムサーバ10が出力するタイミング信号を用いてローカル時刻を校正する構成を説明する。
一例として、タイムスタンプサーバ20が備える発振器のクロックを、タイムサーバ10から入力されるタイミング信号に同期させることでローカル時刻の精密な調整を行う方法がある。以下に詳しく説明する。
図9は、本実施形態に係るタイムスタンプシステムの別の構成を示す図である。
図10は、図9のタイムスタンプシステムにおけるタイムスタンプサーバのハードウェア構成を説明する図である。
図9に示すタイムスタンプシステムの構成、図10に示すタイムスタンプサーバのハードウェア構成は、図1及び図5(a)に示した構成と一部を除いて夫々同じである。
共通する構成には、図1、図5(a)と同じ符号を付して説明を省略する。
また、タイムサーバの構成、タイムスタンプシステムにおけるタイムスタンプ発行のシーケンス、タイムスタンプサーバのタイムスタンプ処理、NTPを用いた時刻同期処理も、図3、図6乃至図8に示したものと共通している。
図9に示すように、タイムサーバ10は、PPS信号などのタイミング信号を例えば同軸ケーブルを用いてタイムスタンプサーバ20に供給する。
図3について説明したように、タイムサーバ10は、タイミング信号としてのPPS信号を外部出力する可能な出力I/F17を備えている。タイムサーバ10の信号出力I/F17から出力されるタイミング信号は、1秒に1回のPPS信号ではなく、10KHzなどの周波数の高いパルス(以下、「高周波パルス信号」と記載する)であってもよい。タイムスタンプサーバ20は、タイムサーバ10から、タイミング信号としてのPPS信号又は上記高周波パルス信号を入力され得る。
図9(a)に示すタイムスタンプサーバ20は、タイムサーバ10からタイミング信号を入力するための外部入力インターフェイス25をさらに備える。図10では、代表的にタイミング信号としてPPS信号のみを示している。
タイムスタンプサーバ20は、ネットワーク経由でタイムサーバ10と接続可能であるとともに、同軸ケーブルなどの手段で直接的に接続して、タイムサーバ10からの信号を得ることが出来る。
図9(a)に示すタイムスタンプサーバ20は、発振器26を含む位相同期部をさらに備える。
位相同期部27は、発振器26に加えて、位相比較器27a、ループフィルター27b、分周器27cを備える。
分周器27cは、発振器26が出力するクロック信号(周波数:f)を1/fの分周比で分周し、1Hzの分周クロック信号を出力する。
外部入力I/F25から入力されたPPS信号又は上記高周波パルス信号は、位相比較器27aに入力される。
位相比較器16aは、外部入力I/F25を介してタイムサーバ10から入力されたPPS信号又は上記高周波パルス信号と、分周器27cが出力する1Hzの分周クロック信号と、を位相比較し、その結果として位相差に応じた電圧値の位相差信号を出力する。この位相差信号は、ループフィルター27bを介して発振器26に入力される。
発振器26は、ループフィルター27bの出力電圧に応じて周波数を微調整可能であり、発振器26が出力するクロック信号は、外部入力I/F25から入力されたPPS信号又は上記高周波パルス信号と完全に同期する。
図5(b)に示したローカル時刻生成処理部63は、発振器26から出力されたクロックを取得し、このクロックに基づいて、ローカル時刻情報を生成する処理を行う。
発振器26から出力されたクロックは上記のようにPPS信号又は上記高周波パルス信号に完全に同期し、極めて高精度である。従って、そのクロックから生成されたローカル時刻も極めて高精度である。
この例のタイムスタンプサーバ20は、NTPを用いてタイムサーバ10から基準時刻情報を取得して所定期間周期で時刻の校正(秒単位)を行うことはもちろんであるが、PPS信号又は上記高周波パルス信号によってローカル時刻を生成するためのクロックを調整することで、マイクロ秒単位のローカル時刻の校正を継続的に行うことが出来る。PPS信号や記高周波パルス信号などのタイミング信号による発振器26クロックの調整は、ローカル時刻自体を校正することと同義である。
これによって、タイムスタンプサーバ20は、ローカル時刻を極めて高精度に保つことができ、マイクロ秒単位の粒度を有するタイムスタンプトークンを発行することが出来る。
別の例として、CPU21にタイミング信号としてのPPS信号又は上記高周波パルス信号を入力し、ローカル時刻生成処理部64が、PPS信号のパルスに基づいてローカル時刻を校正することが出来る。
タイムスタンプシステムの構成は、図9に示す通りであり、タイムスタンプサーバ20は、同軸ケーブルなどによってタイムサーバ10からPPS信号又は上記高周波パルス信号を入力される。
CPU21は、図5の構成に加えて図示しない信号取得処理部を実行し、PPS信号又は上記高周波パルス信号はCPU21に入力される。
ローカル時刻校正処理部63は、時刻情報取得処理部62が取得した基準時刻情報によってローカル時刻を秒単位で校正するとともに、校正後のローカル時刻に対して信号取得処理部が取得したPPS信号又は上記高周波パルス信号のパルスに基づいてマイクロ秒単位の校正を行う。
PPS信号又は上記高周波パルス信号はUTCと精密に同期しており、タイムスタンプサーバ20は、ローカル時刻を基準時刻と同期させて正確なタイムスタンプを行うことが出来る。
また、以上の構成によれば、タイムサーバ10が供給する基準時刻情報と、PPS信号又は上記高周波パルス信号と、によって、タイムサーバ10で行われる「アジャスモード」にも高精度で追随することが出来るため、アジャストモードによって閏秒に対応する場合であっても、高精度にタイムスタンプの発行を行うことが出来る。
もちろんPPS信号又は上記高周波パルス信号と、基準時刻情報と、を用いてローカル時刻の校正を行う場合であっても、タイムスタンプサーバ20は、閏秒を挿入するタイミングの前後のタイミングではタイムスタンプ要求を破棄してもよい。
なお、上記では、複数のクライアント装置40に対して、タイムサーバ10、タイムスタンプサーバ20、フロントエンドサーバ30が、それぞれ一つずつ含まれるシステムを説明した。
それに限らず、本実施形態のタイムスタンプシステム1は、複数のタイムサーバ10(TAA)と、タイムスタンプサーバ20、フロントエンドサーバ30による複数のTSAと、よって構成されることが出来る。
1または複数のクライアント装置40の利用者は、上記に説明した機能を有する複数のTSAの中から、任意のTSAを選択し、そのフロントエンドサーバ30にアクセスすることが出来る。
特開2011−082727号公報のタイムスタンプ装置は、タイムスタンプトークンを発行するための時計部を備えており、クライアント端末からの要求に応じてタイムスタンプトークンを発行する。
タイムスタンプ装置は、一定時間毎に管理サーバに接続して認証を受けるとともに、管理サーバから基準時刻の配信を受けて時計部を補正する。
管理サーバは、タイムスタンプ装置の認証、基準時刻の配信などを行い、基準時刻の配信はNTPを用いて行うことができる。しかし、タイムスタンプ装置がPPS信号の入力を受けて時刻同期を行うことは記載されていない。
特開2006−236251号公報には、装置内部に水晶発振器やTCXOを用いた内部時計を有し、この内部時計が刻むローカル時刻を、標準電波送信所から送信される標準電波に含まれた電波時刻により補正するタイムスタンプ装置が開示されている。
このタイムスタンプ装置は、電波時刻の取得に加えて、時刻発行サーバからネットワークを介して認証時刻を取得し、この認証時刻を用いて内部時計が刻むローカル時刻の補正を行う。しかし、タイムスタンプ装置がPPS信号の入力を受けて時刻同期を行うことは記載されていない。
特開2006−115153には、ネットワークを通過する所定のデータパケットに、高精度のタイムスタンプ情報を挿入するためのタイムスタンプ装置が開示されている。
タイムスタンプ装置が備える時間同期情報生成部は、外部信号入力部と位相同期部を備えている。
外部信号入力部は基準クロック信号としてPPS信号を入力することができ、位相同期部は入力された基準クロック信号を増幅して、パケット処理部に同期信号を送出し、タイムカウンタ部には同期信号又はPPS信号としての時間信号を送出する。
タイムスタンプ付与部は、通過する特定のパケットの所定位置に、所定のタイムスタンプ情報を格納する。
タイムスタンプ用のクロック生成にあたってPPS信号が用いられるが、PKIでの利用を前提に電子文書に対するタイムスタンプの生成を行う本実施形態とは異なり、データパケットに対してタイムスタンプを付与する。PPS信号は、NTPなどによる時刻情報とともに用いられるものではない。基準クロック信号としてのPPS信号のみにて時間信号が生成され、タイムカウンタ部によるカウントアップが行われる。
特開2018−141688には、GPS衛星から送信された衛星信号を受信し、高精度の1PPSをタイミング信号として生成する機能を有するタイミング信号出力装置が開示されている。タイミング信号出力装置は、GPS受信機、処理部、原子発振器、GPSアンテナ、タイマーを含む。
原子発振器は、ルビジウム原子やセシウム原子等の原子のエネルギー遷移を利用してクロック信号を出力する。
タイマーは、時刻情報を生成する機能を有するリアルタイムクロックで、TCXOからのクロック信号によりカウントアップされる。
GPS受信機は、少なくとも1つのGPS衛星から送信された衛星信号を受信し、受信した衛星信号に含まれる軌道情報および時刻情報と処理部によって設定された受信点の位置情報とに基づいて、基準信号として、UTCと同期したPPS信号を生成する。
原子発振器が出力するクロック信号はGPS受信機が出力するPPS信号に完全に同期しており、原子発振器かクロック信号をGPS受信機からの1PPSに同期した高精度なPPS信号として出力することができる。
しかし、タイムスタンプサーバにおいて、PPS信号はNTPなどによる時刻情報とともに用いられるものではない。PPS信号のみにて時間信号が生成され、タイムカウンタ部によるカウントアップが行われる。
なお、上記のすべての文献には、タイムサーバ10が基準時刻を調整するタイミングの前後でタイムスタンプの発行を制限することは記載されていない。
[第1の態様]
第1の態様のタイムスタンプ装置20は、タイムサーバ装置10と通信するタイムスタンプ装置であって、クロック信号を発生するクロック発生手段26と、タイムサーバ装置10から所定のタイミング信号を入力する信号入力手段と、クロック信号に基づいてローカル時刻を生成する時刻生成手段64と、タイムサーバ装置10から基準時刻を取得する時刻取得手段62と、時刻取得手段62が取得した基準時刻と、信号入力手段から入力された所定のタイミング信号と、に基づいて、ローカル時刻の校正を行う時刻校正手段65と、外部装置40からの要求に応じて、時刻校正手段65によって校正されたローカル時刻を含むタイムスタンプトークンを発行するタイムスタンプ発行手段67と、を備えた。
タイムサーバ装置10が配信する基準時刻のみによって、クロック信号に基づくローカル時刻を校正するのではなく、タイムサーバ装置が供給するタイミング信号を用いてローカル時刻を校正することで、タイムスタンプサーバ20は、高精度のタイムスタンプトークンを発行することが出来る。
[第2の態様]
第2の態様のタイムスタンプ装置20は、第1の態様において、クロック信号をタイミング信号と同期させる同期手段27を備え、時刻校正手段65は、タイミング信号と同期されたクロック信号に基づくローカル時刻に対して、基準時刻に基づく校正を行う。
タイムサーバ装置10が配信する基準時刻によってローカル時刻を大まかに補正し、タイムサーバ装置10から供給されるタイミング信号とクロック信号を同期させることで、ローカル時刻を細かく補正することにより、タイムスタンプサーバ20は、高精度のタイムスタンプトークンを発行することが出来る。
[第3の態様]
第3の態様のタイムスタンプ装置20は、第2の態様において、タイミング信号は、タイムサーバ装置10が備える原子発振器のクロック信号に基づいて生成された信号である。
タイムサーバ装置10が配信する基準時刻によってローカル時刻を大まかに補正し、タイムサーバ装置10から供給される原子発振器による高精度のタイミング信号とクロック信号を同期させることでローカル時刻を細かく補正することにより、タイムスタンプサーバ20は、高精度のタイムスタンプトークンを発行することが出来る。
[第4の態様]
第4の態様のタイムスタンプ装置20は、クロック信号を発生するクロック発生手段26と、クロック信号に基づいてローカル時刻を生成する時刻生成手段64と、タイムサーバ装置10から基準時刻を取得する時刻取得手段62と、時刻取得手段62が取得した基準時刻に基づいて、ローカル時刻の校正を行う時刻校正手段65と、外部装置40からの要求に応じて、時刻校正手段65によって校正されたローカル時刻を含むタイムスタンプトークンを発行するタイムスタンプ発行手段67と、を備え、タイムサーバ装置10は、所定タイミングにおいて基準時刻の調整を行い、タイムスタンプ発行手段67は、所定タイミングの前後において、タイムスタンプの発行を制限される。
このように、基準時刻を配信するタイムサーバ10が基準時刻の調整を実施することでローカル時刻の正確な校正が難しいタイミングでは、タイムスタンプ発行を制限することで、タイムスタンプサーバ20で発行されるタイムスタンプ自体の精度(信頼度)を高めることが出来る。
1 タイムスタンプシステム、10 タイムサーバ、11 CPU、12 RAM、13 記憶装置、14 ネットワークI/F、15 GPS受信機、15a GPSアンテナ、16 位相同期部、16a 位相比較器、16b ループフィルター、16c 原子発振器、16d 分周器、17 信号出力I/F、20 タイムスタンプサーバ、21 CPU、22 RAM、23 記憶装置、24 ネットワークI/F
25 外部入力I/F、26 発振器、30 フロントエンドサーバ、40 クライアント装置、51 時刻情報要求受付処理部、52 時刻情報送信処理部、53 ローカル時刻生成処理部、61 時刻情報要求処理部、62 時刻情報取得処理部、63 ローカル時刻生成処理部、64 ローカル時刻校正処理部、65 タイムスタンプ要求受付処理部、66 タイムスタンプ発行処理部、67 タイムスタンプ送信処理部

Claims (10)

  1. タイムサーバ装置と通信するタイムスタンプ装置であって、
    クロック信号を発生するクロック発生手段と、
    前記タイムサーバ装置から所定のタイミング信号を入力する信号入力手段と、
    前記クロック信号に基づいてローカル時刻を生成する時刻生成手段と、
    前記タイムサーバ装置から基準時刻を取得する時刻取得手段と、
    前記時刻取得手段が取得した前記基準時刻と、前記信号入力手段から入力された前記所定のタイミング信号と、に基づいて、前記ローカル時刻の校正を行う時刻校正手段と、
    外部装置からの要求に応じて、前記時刻校正手段によって校正された前記ローカル時刻を含むタイムスタンプトークンを発行するタイムスタンプ発行手段と、
    を備えたことを特徴とするタイムスタンプ装置。
  2. 請求項1に記載のタイムスタンプ装置において、
    前記クロック信号を前記タイミング信号と同期させる同期手段を備え、
    前記時刻校正手段は、前記タイミング信号と同期された前記クロック信号に基づく前記ローカル時刻に対して、前記基準時刻に基づく校正を行う、
    ことを特徴とするタイムスタンプ装置。
  3. 請求項2に記載のタイムスタンプ装置において、
    前記タイミング信号は、前記タイムサーバ装置が備える原子発振器のクロック信号に基づいて生成された信号であることを特徴とするタイムスタンプ装置。
  4. 請求項1乃至3の何れか一項に記載のタイムスタンプ装置において、
    前記タイムサーバ装置は、所定タイミングにおいて前記基準時刻の調整を行い、
    前記タイムスタンプ発行手段は、前記所定タイミングの前後において、前記タイムスタンプの発行を制限されることを特徴とするタイムスタンプ装置。
  5. クロック信号を発生するクロック発生手段と、
    前記クロック信号に基づいてローカル時刻を生成する時刻生成手段と、
    タイムサーバ装置から基準時刻を取得する時刻取得手段と、
    前記時刻取得手段が取得した前記基準時刻に基づいて、前記ローカル時刻の校正を行う時刻校正手段と、
    外部装置からの要求に応じて、前記時刻校正手段によって校正された前記ローカル時刻を含むタイムスタンプトークンを発行するタイムスタンプ発行手段と、
    を備え、
    前記タイムサーバ装置は、所定タイミングにおいて前記基準時刻の調整を行い、
    前記タイムスタンプ発行手段は、前記所定タイミングの前後において、前記タイムスタンプの発行を制限されることを特徴とするタイムスタンプ装置。
  6. タイムサーバ装置と、タイムスタンプ装置と、を備えるタイムスタンプシステムにおいて、
    前記タイムサーバ装置は、
    基準時刻を生成する時刻生成手段と、
    前記タイムスタンプ装置からの要求に応じて前記基準時刻を送信する時刻送信手段と、
    タイミング信号を生成する信号生成手段と、
    前記タイミング信号を出力する信号出力手段と、を備え、
    タイムサーバ装置と通信するタイムスタンプ装置であって、
    クロック信号を発生するクロック発生手段と、
    前記タイムサーバ装置から所定のタイミング信号を入力する信号入力手段と、
    前記クロック信号に基づいてローカル時刻を生成する時刻生成手段と、
    前記タイムサーバ装置から基準時刻を取得する時刻取得手段と、
    前記時刻取得手段が取得した前記基準時刻と、前記信号入力手段から入力された前記所定のタイミング信号と、に基づいて、前記ローカル時刻の校正を行う時刻校正手段と、
    外部装置からの要求に応じて、前記時刻校正手段によって校正された前記ローカル時刻を含むタイムスタンプトークンを発行するタイムスタンプ発行手段と、
    を備えたことを特徴とするタイムスタンプシステム。
  7. タイムサーバ装置と、タイムスタンプ装置と、を備えるタイムスタンプシステムにおいて、
    前記タイムサーバ装置は、
    基準時刻を生成する時刻生成手段と、
    前記タイムスタンプ装置からの要求に応じて前記基準時刻を送信する時刻送信手段と、を備え、
    前記タイムスタンプ装置は、
    クロック信号を発生するクロック発生手段と、
    前記クロック信号に基づいてローカル時刻を生成する時刻生成手段と、
    タイムサーバ装置から基準時刻を取得する時刻取得手段と、
    前記時刻取得手段が取得した前記基準時刻に基づいて、前記ローカル時刻の校正を行う時刻校正手段と、
    外部装置からの要求に応じて、前記時刻校正手段によって校正された前記ローカル時刻を含むタイムスタンプトークンを発行するタイムスタンプ発行手段と、
    を備え、
    前記タイムサーバ装置は、所定タイミングにおいて前記基準時刻の調整を行い、
    前記タイムスタンプ発行手段は、前記所定タイミングの前後において、前記タイムスタンプの発行を制限される、
    ことを特徴とするタイムスタンプシステム。
  8. クロック信号を発生するクロック発生手段と、信号入力手段と、時刻生成手段と、時刻取得手段、時刻校正手段と、タイムスタンプ発行手段と、を備え、タイムサーバ装置と通信可能なタイムスタンプ装置のタイムスタンプ方法であって、
    前記時刻生成手段が、前記クロック信号に基づいてローカル時刻を生成するステップと、
    前記時刻取得手段が、前記タイムサーバ装置から基準時刻を取得する時刻取得手段と、
    前記時刻校正手段が、前記時刻取得手段が取得した前記基準時刻と、前記信号入力手段から入力された前記所定のタイミング信号と、に基づいて、前記ローカル時刻の校正を行うステップと、
    前記タイムスタンプ発行手段が、外部装置からの要求に応じて、前記時刻校正手段によって校正された前記ローカル時刻を含むタイムスタンプトークンを発行するステップと、
    を含むことを特徴とするタイムスタンプ方法。
  9. クロック信号を発生するクロック発生手段と、時刻生成手段と、時刻取得手段、時刻校正手段と、タイムスタンプ発行手段と、を備えるタイムスタンプ装置のタイムスタンプ発行方法であって、
    前記時刻生成手段が、前記クロック信号に基づいてローカル時刻を生成するステップと、
    前記時刻取得手段が、タイムサーバ装置から基準時刻を取得するステップと、
    前記時刻取得手段が取得した前記基準時刻に基づいて、前記ローカル時刻の校正を行うステップと、
    前記タイムスタンプ発行手段が、外部装置からの要求に応じて、前記時刻校正手段によって校正された前記ローカル時刻を含むタイムスタンプトークンを発行するステップと、
    を、を含み、
    前記タイムサーバ装置は、所定タイミングにおいて前記基準時刻の調整を行い、
    前記タイムスタンプ発行手段は、前記所定タイミングの前後において、前記タイムスタンプの発行を制限されることを特徴とするタイムスタンプ方法。
  10. 請求項8又は9に記載のタイムスタンプ方法をコンピュータに実行させるプログラム。
JP2019159324A 2019-09-02 2019-09-02 タイムスタンプ装置、タイムスタンプシステム、タイムスタンプ方法及びプログラム Pending JP2021038965A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019159324A JP2021038965A (ja) 2019-09-02 2019-09-02 タイムスタンプ装置、タイムスタンプシステム、タイムスタンプ方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019159324A JP2021038965A (ja) 2019-09-02 2019-09-02 タイムスタンプ装置、タイムスタンプシステム、タイムスタンプ方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2021038965A true JP2021038965A (ja) 2021-03-11

Family

ID=74848531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019159324A Pending JP2021038965A (ja) 2019-09-02 2019-09-02 タイムスタンプ装置、タイムスタンプシステム、タイムスタンプ方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2021038965A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220397681A1 (en) * 2021-06-09 2022-12-15 Ordnance Survey Limited Method and System for Time Authentication

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220397681A1 (en) * 2021-06-09 2022-12-15 Ordnance Survey Limited Method and System for Time Authentication

Similar Documents

Publication Publication Date Title
US7409557B2 (en) System and method for distributing trusted time
US6393126B1 (en) System and methods for generating trusted and authenticatable time stamps for electronic documents
CA2378672C (en) System and methods for proving dates in digital data files
US20050160272A1 (en) System and method for providing trusted time in content of digital data files
US8868914B2 (en) System and methods for distributing trusted time
US6513116B1 (en) Security information acquisition
JP4725978B2 (ja) 時刻証明サーバ、時刻証明方法、及び時刻証明プログラム
WO2000079348A2 (en) System and method for providing a trusted third party clock and trusted local clock
JP5223860B2 (ja) 時刻情報配信システム、時刻配信局、端末、時刻情報配信方法及びプログラム
JP2021038965A (ja) タイムスタンプ装置、タイムスタンプシステム、タイムスタンプ方法及びプログラム
JP5039931B2 (ja) 情報処理装置
JP4918718B2 (ja) タイムスタンプ発行装置、タイムスタンプ発行方法、及びタイムスタンプ発行プログラム
JP2006333435A (ja) 時刻認証システム、装置及びプログラム
JP4125975B2 (ja) タイムスタンプシステム及びそのプログラム
JP2007266797A (ja) 認証システムおよびその認証方法
WO2024103433A1 (zh) 可信时间网络校准系统及可信时间数字服务
US7650508B2 (en) Time stamping system
JP2003248736A (ja) 情報機器の時刻証明に関する装置及びプログラム
Barker Recommendation for digital signature timeliness
JP2023066063A (ja) タイムスタンプ発行システム、タイムスタンプ発行方法およびタイムスタンプ発行プログラム
JP2004038378A (ja) タイムスタンプ証明書の発行システム及びそのシステムプログラム
de Palma Optimization of Time Synchronization Techniques on Computer Networks
SE546243C2 (en) Method and mobile device for providing a time reading