(57)【要約】【課題】コンピュータシステムにおいて、高度な処理系を別途備えたハードウェアの内蔵若しくは外付けを必要とすることなく、実行の際に時刻情報の利用が必要なアプリケーションが安全に時刻情報を利用可能にすることを課題とする。【解決手段】コンピュータシステム上で実装可能なカウンタがカウントする書き換え不可能なカウンタ値とコンピュータシステムが運用するシステム時間とのそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査することで、システム時計の動作を保証することができるので、動作が保証された時刻情報の発行が可能になる。【選択図】図１
2007287056.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム上で実装可能且つ書き換え不可能なカウンタ値をカウントするカウンタと、
前記カウンタ値と前記コンピュータシステムが運用するシステム時計のシステム時間とを記憶しておく記憶手段と、
前記カウンタ値と前記システム時間のそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査するシステム時計検査手段と、
前記システム時計検査手段がシステム時計の進み具合に変化がなかったと判定した場合には前記システム時間より時刻情報を発行するシステム時計管理手段と、
を備えることを特徴とするシステム時計検査装置。
【請求項２】
前記システム時計とは異なる経路で時刻同期された時間を維持する外部時計の外部時間を記憶しておく記憶手段を更に備え、
前記システム時計検査手段は、前記カウンタ値と前記外部時間のそれぞれの経過を比較して外部時計の進み具合に変化があったか否かを検査すると共に、前記システム時間と前記外部時間を比較して誤差を検査し、
前記システム時計管理手段は、前記システム時計検査手段がシステム時計の進み具合に変化がなかったと判定し、且つ外部時計の進み具合に変化がなかったと判定し、且つ前記システム時間と前記外部時間の誤差が一定範囲内であったと判定した場合には前記システム時間より時刻情報を発行することを特徴とする請求項１に記載のシステム時計検査装置。
【請求項３】
前記システム時計の検査結果をシステム時間に関連付けて記憶しておく記憶手段を更に備え、
前記システム時計管理手段は、時刻情報を利用するアプリケーションから時刻情報の発行の要求を受けた場合には、前記システム時計の検査結果に基づいてシステム時間より時刻情報を発行することを特徴とする請求項１又は２に記載のシステム時計検査装置。
【請求項４】
前記システム時計管理手段は、外部の監査機関から時刻監査を受けた場合には時刻監査を受けた時点のシステム時間を監査時刻として返信し、
前記外部の監査機関から前記監査時刻の時刻精度が保証された監査証を電子的に受信した場合には、前記システム時計の検査結果に基づいてシステム時間より時刻情報を発行することを特徴とする請求項１乃至３のいずれかに記載のシステム時計検査装置。
【請求項５】
コンピュータシステム上で実装可能且つ書き換え不可能なカウンタ値をカウントするステップと、
前記カウンタ値と前記コンピュータシステムが運用するシステム時計のシステム時間とを記憶手段に記憶しておくステップと、
システム時計検査手段により、前記カウンタ値と前記システム時間のそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査するステップと、
システム時計管理手段により、前記システム時計検査手段がシステム時計の進み具合に変化がなかったと判定した場合には前記システム時間より時刻情報を発行するステップと、
を有することを特徴とするシステム時計検査方法。
【請求項６】
前記システム時計とは異なる経路で時刻同期された時間を維持する外部時計の外部時間を記憶手段に記憶しておくステップと、
前記システム時計検査手段により、前記カウンタ値と前記外部時間のそれぞれの経過を比較して外部時計の進み具合に変化があったか否かを検査すると共に、前記システム時間と前記外部時間を比較して誤差を検査するステップと、
前記システム時計管理手段により、前記システム時計検査手段がシステム時計の進み具合に変化がなかったと判定し、且つ外部時計の進み具合に変化がなかったと判定し、且つ前記システム時間と前記外部時間の誤差が一定範囲内であったと判定した場合には前記システム時間より時刻情報を発行するステップと
を有することを特徴とする請求項５に記載のシステム時計検査方法。
【請求項７】
前記システム時計の検査結果をシステム時間に関連付けて記憶手段に記憶しておくステップと、
前記システム時計管理手段により、時刻情報を利用するアプリケーションから時刻情報の発行の要求を受けた場合には、前記システム時計の検査結果に基づいてシステム時間より時刻情報を発行するステップと
を有することを特徴とする請求項５又は６に記載のシステム時計検査方法。
【請求項８】
コンピュータシステム上で実装可能且つ書き換え不可能なカウンタ値をカウントする処理と、
前記カウンタ値と前記コンピュータシステムが運用するシステム時計のシステム時間とを記憶手段に記憶しておく処理と、
前記カウンタ値と前記システム時間のそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査する処理と、
前記システム時間の進み具合に変化がなかったと判定した場合には前記システム時間より時刻情報を発行する処理と、
をコンピュータシステムに実行させることを特徴とするシステム時計検査プログラム。
【請求項９】
前記システム時計とは異なる経路で時刻同期された時間を維持する外部時計の外部時間を記憶手段に記憶しておく処理と、
前記カウンタ値と前記外部時間のそれぞれの経過を比較して外部時計の進み具合に変化があったか否かを検査すると共に、前記システム時間と前記外部時間を比較して誤差を検査する処理と、
前記システム時計の進み具合に変化がなかったと判定し、且つ外部時計の進み具合に変化がなかったと判定し、且つ前記システム時間と前記外部時間の誤差が一定範囲内であったと判定した場合には前記システム時間より時刻情報を発行する処理と
をコンピュータシステムに実行させることを特徴とする請求項８に記載のシステム時計検査プログラム。
【請求項１０】
前記システム時計の検査結果をシステム時間に関連付けて記憶手段に記憶しておく処理と、
時刻情報を利用するアプリケーションから時刻情報の発行の要求を受けた場合には、前記システム時計の検査結果に基づいてシステム時間より時刻情報を発行する処理とをコンピュータシステムに実行させることを特徴とする請求項８又は９に記載のシステム時計検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムが運用するシステム時計を検査するシステム時計検査技術に関する。
【背景技術】
【０００２】
コンピュータシステムにおける時刻情報は、主にシステム時計により生成される。システム時計は、アプリケーションやオペレータにより、周波数オフセットの設定や時刻設定が可能であるように作成されている。このため、コンピュータシステム上で特権を持つユーザは、システム時計の進み（周波数）や時刻を変更可能であり、時刻装置の障害やオペレータによる誤操作などによりシステム時計の精度が著しく損なわれるといった、パラメータ変更や改竄が行われる場合がある。
【０００３】
年月日時分秒を示す時刻情報を時刻証明のためにシステム時計を利用する時刻認証アプリケーションにとって、システム時計の各種パラメータ変更や改竄は誤った時刻で時刻証明書を発行するといった重大な問題につながる可能性がある。また、ある時刻においてプログラムを起動・消滅させるためにシステム時計を利用する時限アプリケーションにとっては、本来起動・消滅する時刻であるにも関わらず動作停止継続・動作継続する問題となる。
【０００４】
このような時刻情報を利用したアプリケーションがシステム時計の時刻情報を安全に利用するためには時刻監査サービスを利用する方法がある。この方法は時刻精度の高い時計によって運用されている時刻配信機関が時刻監査機関として、対象となるコンピュータシステムのシステム時計を定期的に時刻監査して時刻精度に関する証明書の発行を行い、監査を受けたシステム時計の精度を保証してシステム時計が正しく運用されているかどうかを検査するサービスを利用するものである。
【０００５】
一方で、時刻認証システムや時限アプリケーションがシステム時計を利用することなく、特別なセキュリティ・ハードウェアで保護された時計を利用してハードウェア内でのアプリケーション処理を行う方法が考えられる。例えば、セキュリティ確保された領域内で時計を維持し、外部からは時計の時刻などを制御不可能とする方法がある。この方法では、この時計の精度を維持する機能、時刻監査を受ける機能の２つの機能を実装すると共に、時刻認証プログラムや時限アプリケーションとのインターフェースをセキュリティ確保された領域内に埋め込み動作させて処理を行う。尚、このような技術に関連する先行技術文献としては、例えば、特許文献１、特許文献２などがある。
【特許文献１】特許２６２８６１９号公報
【特許文献２】特開２００２−２９７５４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、時刻監査を利用してシステム時計の精度を保証する方法では、時刻監査から次の時刻監査までの間のシステム時計の精度が保証されないため、この間に時刻変更／改竄、復旧が同時に行われた場合に対応できないという問題がある。
【０００７】
また、別途処理系を備えたハードウェアによる方法は、時刻改竄を防止するためには有効である。しかしながら、この方法では、これらのセキュリティを実現するプログラム実行環境を持つ領域を通常のコンピュータシステム上で実現するためにＣＰＵ等の処理系を内蔵する専用ハードウェアを別途組み込む必要があり、コストが高くなってしまうなどの問題がある。
【０００８】
本発明は、上記問題点に鑑み、コンピュータシステムにおいて、高度な処理系を別途備えたハードウェアの内蔵若しくは外付けを必要とすることなく、実行の際に時刻情報の利用が必要なアプリケーションが安全に時刻情報を利用可能にすることを課題とする。
【課題を解決するための手段】
【０００９】
第１の本発明に係るシステム時計検査装置は、コンピュータシステム上で実装可能且つ書き換え不可能なカウンタ値をカウントするカウンタと、カウンタ値とコンピュータシステムが運用するシステム時計のシステム時間とを記憶しておく記憶手段と、カウンタ値とシステム時間のそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査するシステム時計検査手段と、システム時計検査手段がシステム時計の進み具合に変化がなかったと判定した場合にはシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行するシステム時計管理手段と、を備えることを特徴とする。
【００１０】
本発明にあっては、コンピュータシステム上で実装可能なカウンタがカウントする書き換え不可能なカウンタ値とコンピュータシステムが運用するシステム時間とのそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査することで、システム時計の動作を保証することができるので、動作が保証された時刻情報の発行が可能になる。
【００１１】
上記システム時計検査装置は、システム時計とは異なる経路で時刻同期された時間を維持する外部時計の外部時間を記憶しておく記憶手段を更に備え、システム時計検査手段は、カウンタ値と外部時間のそれぞれの経過を比較して外部時計の進み具合に変化があったか否かを検査すると共に、システム時間と外部時間を比較して誤差を検査し、システム時計管理手段は、システム時計検査手段がシステム時計の進み具合に変化がなかったと判定し、且つ外部時計の進み具合に変化がなかったと判定し、且つシステム時間と外部時間の誤差が一定範囲内であったと判定した場合にはシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行することを特徴とする。
【００１２】
本発明にあっては、システム時計とは異なる経路で時刻同期された時間を維持する外部時計の進み具合の変化を検査して外部時計の動作を保証した上で、システム時間と外部時間との誤差を検査するようにしたことで、システム時計の時刻精度を保証することができるので、時刻精度が保証された時刻情報の発行が可能になる。
【００１３】
上記システム時計検査装置において、システム時計の検査結果をシステム時間に関連付けて記憶しておく記憶手段を更に備え、システム時計管理手段は、時刻情報を利用するアプリケーションから時刻情報の発行の要求を受けた場合には、システム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行することを特徴とする。
【００１４】
本発明にあっては、システム時計の検査結果をシステム時間に関連付けて記憶しておき、アプリケーションから時刻情報発行の要求を受けた場合には、システム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行するようにしたことで、アプリケーションからの要求に応じて動作や時刻精度が保証された時刻情報の発行が可能になる。
【００１５】
上記システム時計検査装置において、システム時計管理手段は、外部の監査機関から時刻監査を受けた場合には時刻監査を受けた時点のシステム時間を監査時刻として返信し、外部の監査機関から監査時刻の時刻精度が保証された監査証を電子的に受信した場合には、システム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行することを特徴とする。
【００１６】
本発明にあっては、外部の監査機関から時刻監査を受けた場合には時刻監査を受けた時点のシステム時間を監査時刻として返信し、外部の監査機関から監査時刻の時刻精度が保証された監査証を電子的に受信した場合にはシステム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行するようにしたことで、監査時刻における時刻精度及び動作が保証された時刻情報の発行が可能になる。
【００１７】
第２の本発明に係るシステム時計検査方法は、コンピュータシステム上で実装可能且つ書き換え不可能なカウンタ値をカウントするステップと、カウンタ値とコンピュータシステムが運用するシステム時計のシステム時間とを記憶手段に記憶しておくステップと、システム時計検査手段により、カウンタ値とシステム時間のそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査するステップと、システム時計管理手段により、システム時計検査手段がシステム時計の進み具合に変化がなかったと判定した場合にはシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行するステップと、を有することを発明の要旨とする。
【００１８】
第３の本発明に係るシステム時計検査プログラムは、コンピュータシステム上で実装可能且つ書き換え不可能なカウンタ値をカウントする処理と、カウンタ値とコンピュータシステムが運用するシステム時計のシステム時間とを記憶手段に記憶しておく処理と、カウンタ値とシステム時間のそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査する処理と、システム時間の進み具合に変化がなかったと判定した場合にはシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行する処理と、をコンピュータシステムに実行させることを発明の要旨とする。
【発明の効果】
【００１９】
本発明によれば、コンピュータシステムにおいて、高度な処理系を別途備えたハードウェアの内蔵若しくは外付けを必要とすることなく、実行の際に時刻情報の利用が必要なアプリケーションが安全に時刻情報を利用することが可能になる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態において説明するシステム時計検査装置１は、コンピュータシステムにおいて、高度な処理系を別途備えたハードウェアの内蔵若しくは外付けを必要とすることなく、メモリにロードされたプログラムを実行することで実現可能とする。
【００２１】
［第１の実施の形態］
図１は、第１の実施の形態に係るシステム時計検査装置の概略的な構成図である。同図に示すように、システム時計検査装置１は、カウンタ部２と、時間情報格納領域３と、システム時計検査部４と、システム時計管理部５と、時刻同期装置６と、アプリケーション部７とを備える。
【００２２】
カウンタ部２は、コンピュータシステム上で実装可能且つ書き換え不可能なカウンタ値をカウントする。ここでは一定の周波数により動作するカウンタを保持する。周波数源の安定度は通常の発信器程度とする。カウンタ値はオペレータや各種ソフトウェアによる読み取りのみを許可し、設定やリセットといったカウンタ値の操作を不可能とする。例えば、ＯＳがカウンタ値読み出し要求を受信した際に、カウンタよりカウンタ値を読み出して時間情報格納領域３を通して読み出し可能とする。また、例えば、OSがカウンタに同期したモノトニックタイムを時間情報格納領域３に管理していてもよい。この場合には、時間情報格納領域３の情報は設定やリセットを不可能とする。尚、カウンタ値は実時間とは無関係に動作してよい。
【００２３】
時間情報格納領域３は、カウンタ部２がカウントするカウンタ値とコンピュータシステムが運用するシステム時計のシステム時間とを記憶しておく。カウンタ値は、読み出し要求時に時間情報格納領域３に保存され、遅延なく送信される。または、カウンタ値は、ＯＳによりカウンタ部に同期維持されており、ＯＳには設定やリセットのための手段は用意されていない。
【００２４】
システム時間は、時刻同期装置６において受信した時刻情報に基づいてＯＳレベルでの時刻同期により生成され、実時間に正確に同期するように精度が維持される。また、システム時間は、オペレータにより設定や変更が可能である。システム時間、カウンタ値とも読み出しが行われた際には、読み出し時点での値が保存される。
【００２５】
システム時計検査部４は、カウンタ値とシステム時間のそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査する。ここでは時間情報格納領域３に保存されたカウンタ値とシステム時間を読み出してシステム時間の変動を検査し、システム時間の進み具合に変更が無いと判定した場合には未検出信号を、進み具合に変化が有ると判定した場合には検出信号をシステム時計管理部５へ送信する。
【００２６】
システム時計管理部５は、システム時計検査部４がシステム時計の進み具合に変化がなかったと判定した場合にはシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行する。システム時計検査部４から未検出信号を受信した場合には時間情報格納領域３からシステム時間を読み出し、システム時間を用いて時刻情報を生成し、生成した時刻情報を発行し、検出信号を受信した場合には時刻情報を発行しない。
【００２７】
時刻同期装置６は、時刻配信機関から発信された時刻情報を受信して、システム時間を管理する。
【００２８】
アプリケーション部７は、システム時計管理部５が発行した時刻情報を利用して時限動作を行うアプリケーションであり、ここでは例えば、ある時刻においてプログラムを起動・消滅させる時限アプリケーションとする。
【００２９】
次に、システム時計検査部４が、カウンタ値とシステム時間のそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査する処理について図２のフローチャートを用いて具体的に説明する。
【００３０】
まず、最初のステップとして、カウンタ部２がカウントするカウンタ値とコンピュータシステムが運用するシステム時計のシステム時間とを予め時間情報格納領域３に記憶しておく。
【００３１】
ステップ１：始めに送信信号を未検出信号として各数値をリセットした後に、システム時間を取得する周期としてＷＴ秒をセットする。待機時間としてＷＴの値を例えば１秒にセットした後に待機状態に移行する。
【００３２】
ステップ２：ＷＴ秒経過後に、システム時間Ｓｔ（ｉ）とカウンタ値ＨＳｔ（ｉ）とを時間情報格納領域３から読み出す。カウンタ値の読み出しに失敗した場合には検出信号を送信する。Ｓｔ、ＨＳｔのデータ数は、過去に読み取ったシステム時間、カウンタ値を含めて少なくとも２点必要とし、ここではＳｔ、ＨＳｔそれぞれ２点ずつ読み出すものとする。
【００３３】
ステップ３：システム時間の変動を検査するための変動検査用データを計算する。ここでは単位時間当たりのカウンタ値ＨＳｔに対するシステム時間Ｓｔの変化量を変動検査用データＤＳｔとする。ここでは次式（１）を用いて２点のＳｔ（ｉ）、Ｓｔ（ｉ−１）と、２点のＨＳｔ（ｉ）、ＨＳｔ（ｉ−１）からＤＳｔ（ｉ）を算出する。
【００３４】
ＤＳｔ（ｉ）＝｛Ｓｔ（ｉ）−Ｓｔ（ｉ−１）｝／｛ＨＳｔ（ｉ）−ＨＳｔ（ｉ−１）｝・・・（１）
このときＤＳｔ（ｉ）は次式（１）’を用いて算出してもよい。
【００３５】
ＤＳｔ（ｉ）＝［｛Ｓｔ（ｉ）−Ｓｔ（ｉ−１）｝−｛ＨＳｔ（ｉ）−ＨＳｔ（ｉ−１）｝］／｛ＨＳｔ（ｉ）−ＨＳｔ（ｉ−１）｝・・・（１）’
また、式（１）又は式（１）’でＤＳｔ（ｉ）を算出する前に、Ｓｔ（ｉ）−Ｓｔ（ｉ−１）の値が正の値であることを検査して、システム時間の経過に問題がないかを検査しておく。
【００３６】
ステップ４：次に算出した変動検査用データＤＳｔ（ｉ）からシステム時間の変動を判定する。ここでは、ＤＳｔ（ｉ）に相当する基準値Ｔｈと、カウンタ値ＨＳｔとを使用して、Ｓｔ（ｉ）−Ｓｔ（ｉ−１）の変化を予め設定した許容変動値ｒまで許容するように定めた次式（２）、（３）により判定する。
【００３７】
ＤＳｔ（ｉ）＞Ｔｈ−ｒ／｛ＨＳｔ（ｉ）−ＨＳｔ（ｉ−１）｝・・・式（２）
ＤＳｔ（ｉ）＜Ｔｈ＋ｒ／｛ＨＳｔ（ｉ）−ＨＳｔ（ｉ−１）｝・・・式（３）
式（２）、（３）を満たしていればシステム時計の進み具合に変化は無かったとして未検出信号を送信する。最後にｉをインクリメントして検査を継続するためにステップ１へ戻る。ここで設定値ｍを越えた場合にはゼロとする。一方で、式（２）（３）を満たしていなければ進み具合に変化があったとして検出信号を送信する。ステップ３において式（１）’を使用してＤＳｔ（ｉ）を算出した場合には、式（２）（３）と同様に許容変動値ｒまで許容するようにして判定を行う。
【００３８】
また、カウンタの周波数ｆｃが既知の場合にはＴ秒当たりの変化を±ｒ以内としたい場合には、式（２）（３）の右辺をＴｈ±（ｒ×ＷＴ／Ｔ）×［｛ＨＳｔ（ｉ）−ＨＳｔ（ｉ−１）｝／ｆｃ］として検査を行ってもよい。また、ＤＳｔ（ｉ）とＤＳｔ（ｉ−１）の誤差より判定する場合には、Ｔｈ＝０とする。
【００３９】
時刻情報発行ステップ：システム時計管理部５により、システム時計検査部４から未検出信号を受信した場合にはシステム時計の進み具合に変化は無かったとして時間情報格納領域３からシステム時間を読み出して、システム時間を用いて時刻情報を生成し、生成した時刻情報を発行する。一方で、検出信号を受信した場合にはシステム時計の進み具合に変化が有ったとして時刻情報の発行を停止する。
【００４０】
このようにしてシステム時計の進み具合を検査することで、システム時計の動作を保証することができるので、時刻情報が発行された場合にはアプリケーション部７は動作が保証された時刻情報を利用して時限動作を行うことができる。
【００４１】
また、本実施の形態では、システム時計検査装置１が運用するシステム時計について外部の監査機関から時刻監査を受ける。ここでは例えば、図１に示すようにネットワークを介して時刻配信元である時刻配信機関が監査機関としてシステム時計検査装置１のシステム時計を１時間毎に定期的に時刻監査する。
【００４２】
システム時計検査部４は、最初に未検出状態となったシステム時間のみを時刻に変換してファイルに保存しておく。システム時計管理部５から監査時刻を受け取った場合には、両者の時刻を比較して、監査時点でのシステム時計の進み具合の変化を検査して結果を返信する。
【００４３】
システム時計管理部５は、外部の監査機関から時刻監査を受けた場合には時刻監査を受けた時点のシステム時間を監査時刻として返信し、外部の監査機関から監査時刻の時刻精度が保証された監査証を電子的に受信した場合には、監査時点でのシステム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行する。
【００４４】
次に、時刻監査を受けた場合の処理の流れについて図３を用いて説明する。
【００４５】
ステップ１：外部の監査機関から時刻監査を受けた場合には、システム時計管理部５により、時刻監査を受けた時点のシステム時間を監査時刻として返信する。ここでは時刻監査を受けた時点で時間情報格納領域３からシステム時間を読み出して時刻情報に変換し、変換した時刻情報を監査時刻として返信すると共に時間情報格納領域３に保存しておく。
【００４６】
監査機関においては、返送された時刻情報を監査し、監査終了後には監査を行った事実を証明するための監査証を電子的にシステム時計検査装置１に送信する。
【００４７】
ステップ２：システム時計管理部５により、外部の監査機関から監査時刻の時刻精度が保証された監査証を電子的に受信した場合には、時間情報格納領域３から監査時刻を読み出して、その時刻情報をシステム時計検査部４に送信する。外部の監査機関から監査時刻の時刻精度を保証しない旨の結果を受信した場合には、即座に時刻情報の発行を停止する。
【００４８】
ステップ３：システム時計検査部４により、システム時計管理部５から監査時刻を受け取った場合には、両者の時刻を比較して、監査時点でのシステム時計の進み具合の変化を検査して結果を返信する。ここでは最初に未検出状態となった時刻を読み出し、両者の時刻を比較して、監査時刻が最初の未検出時刻よりも前（過去）であれば、監査時点ではシステム時間の進み具合に変化があり、システム時計の動作は保証されていなかったとして検出信号を送信する。そうでなければ未検出信号を送信する。
【００４９】
ステップ４：システム時計管理部５により、システム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行する。ここではシステム時計検査部４から未検出信号を受信した場合にはシステム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行する。これにより、アプリケーション部７は、監査時刻における時刻精度及び動作が保証された時刻情報を利用して時限動作を行うことができる。
【００５０】
例として時刻監査が行われる周期を１時間とし、システム時計検査装置１による検査の周期ＷＴを１秒とした。このように時刻監査が行われる周期がシステム時計検査装置１による検査の周期と比べて十分長い場合には、ｍ−１回目の監査時点からｍ回目の監査時点までは、時刻監査とシステム時計検査装置１を組み合わせることによりシステム時計の時刻精度と動作を保証し、ｍ回目の監査時点から現時点まではシステム時計検査装置１によりシステム時計の動作を保証することが可能になる。
【００５１】
したがって、第１の実施の形態によれば、コンピュータシステム上で実装可能なカウンタがカウントする書き換え不可能なカウンタ値とコンピュータシステムが運用するシステム時間とのそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査することで、システム時計の動作を保証することができるので、動作が保証された時刻情報の発行が可能になる。これにより、コンピュータシステムにおいて、高度な処理系を別途備えたハードウェアの内蔵若しくは外付けを必要とすることなく、実行の際に時刻情報の利用が必要なアプリケーションが安全に時刻情報を利用することが可能になる。
【００５２】
また、外部の監査機関から時刻監査を受けた場合には時刻監査を受けた時点のシステム時間を監査時刻として返信し、外部の監査機関から監査時刻の時刻精度が保証された監査証を電子的に受信した場合にはシステム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行するようにしたことで、監査時刻における時刻精度及び動作が保証された時刻情報の発行が可能になる。
【００５３】
尚、第１の実施の形態のシステム時計検査部において、システム時間の変動を判定する際には（ステップ４）、変動検査用データＤＳｔ（ｉ）とｑ＝０〜ｉ−１までのＤＳｔ（ｑ）とを比較する方法や、ＤＳｔ（ｉ）及びＤＳｔ（ｉ−１）の差分値ΔＤＳｔ（ｉ）とスレッショルド値とを比較する方法、ＤＳｔ（ｉ）と過去（ｉ−１）回算出したＤＳｔの平均値と標準偏差から比較する方法を利用してもよい。ＤＳｔの平均と標準偏差とを利用する場合には、平均値とＤＳｔ（ｉ）の誤差がスレッショルド以内であること、及び標準偏差がスレッショルド以内であることを検査する。また、標準偏差についてはテストを繰り返し行うことで、経験値を求める方法や期待する分布から求める方法がある。
【００５４】
一方、システム時間Ｓｔ、カウンタ値ＨＳｔを２点以上の複数点利用して変動検査用データＤＳｔを算出する場合には、ＨＳｔを基準とするＳｔの回帰直線の傾きを求めることで算出する。ＨＳｔ（ｉ）をｘ軸とし、Ｓｔ（ｉ）をｙ軸とする方法、ＨＳｔ（ｉ）をｘ軸とし、Ｓｔ（ｉ）−ＨＳｔ（ｉ）をｙ軸とする方法がある。
【００５５】
［第２の実施の形態］
以下、第２の実施の形態について説明する。本実施の形態に係るシステム時計検査装置の構成は、第１の実施の形態で説明したものと基本的な構成は同様であり、ここでも、システム時計検査装置のシステム時計は、外部の監査機関によりネットワークを介して定期的に時刻監査を受ける。
【００５６】
以下、第１の実施の形態と異なる点を中心に説明する。
【００５７】
第１の実施の形態と構成上異なる点は、図４の構成図に示すように、システム時計検査装置１が、システム時計とは異なる経路で時刻同期された時間を維持する外部時計装置８を備えており、外部時計装置８を利用してシステム時計の時刻精度の保証を可能にする点である。
【００５８】
外部時計装置８は、システム時計とは異なる経路で時刻同期された時間を維持し、外部時計装置８の外部時間を時間情報格納領域３に記憶しておく。ここでは一定間隔で外部時間を時間情報格納領域３へ送信する機能を備えているものとし、時間情報格納領域３は、外部時計装置８から外部時間を受信した際にはシステム時計検査部４へ通知する。
【００５９】
システム時計検査部４は、カウンタ値とシステム時間のそれぞれの経過を比較してシステム時計の進み具合に変化があったか否かを検査する。また、カウンタ値と外部時間のそれぞれの経過を比較して外部時計の進み具合に変化があったか否かを検査すると共に、システム時間と外部時間を比較して誤差を検査する。ここでシステム時計の進み具合に変化がなかったと判定し、且つ外部時計装置８の進み具合に変化がなかったと判定し、且つシステム時間と外部時間の誤差が一定範囲内であったと判定した場合には未検出信号を送信する。また、システム時計又は外部時計の進み具合の変化或いはシステム時計と外部時計装置８の時間の誤差が範囲外になった場合には検出信号を送信する。
【００６０】
システム時計管理部５は、システム時計検査部４がシステム時計の進み具合に変化がなかったと判定し、且つ外部時計装置８の進み具合に変化がなかったと判定し、且つシステム時間と外部時間の誤差が一定範囲内であったと判定した場合にはシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行する。ここではシステム時計検査部４から未検出信号を受信した場合には時刻情報を発行し、また、検出信号を受信した場合には時刻情報の発行を停止する。
【００６１】
以下、システム時計検査部４の機能を主とした動作例について図５、６のフローチャートを用いて説明する。
【００６２】
図５は、システム時間と外部時間の読み出しが同期して行われる場合の処理を示すフローチャートである。
【００６３】
ステップ１：始めに送信信号を未検出信号として初期値をリセットする。時間情報格納領域３から外部時間を受信したことを知らせる通知を待って待機状態となる。ここで一定時間以上の待機状態となった場合にはタイムアウト処理を行う。これはシステム時計検査装置１と外部時計装置８との接続が外れた可能があるとして検出信号を送信する処理である。
【００６４】
ステップ２：時間情報格納領域３から外部時間を受信したことを知らせる通知を受信した場合には、外部時間Ｏｔ（ｊ）とカウンタ値ＨＯｔ（ｊ）を読み出すと共に（Ｓ２−１）、システム時間Ｓｔ（ｉ）とカウンタ値ＨＳｔ（ｉ）を読み出す（Ｓ２−２）。その後、システム時間と外部時間からシステム時計の検査を行う処理を示す図６のフローチャートへ処理を移行する。尚、外部時計装置８が一定間隔で外部時間Ｏｔ（ｊ）を時間情報格納領域３に送信する機能を持たない場合には、外部時計装置８から一定間隔で外部時間を読み出す。この場合には、外部時間とカウンタ値を読み出した後に、読み出したカウンタ値と前回読み出したカウンタ値の差分から、待機状態が一定時間になっていないことを検査する。
【００６５】
図６は、システム時間と外部時間からシステム時計検査部によりシステム時計の検査を行う処理を示すフローチャートである。同図の左側の処理は、第１の実施の実施の形態に係る図２の処理と同様にシステム時間の変動の判定を行い、システム時計の進み具合を検査する。ステップ３において変動検査用データＤＳｔ（ｉ）を算出した後に、ステップ４においてシステム時間の変動の判定を行い、変動を検出した場合には検出信号を送信する。
【００６６】
図６の右側の処理では、カウンタ値と外部時間のそれぞれの経過を比較して外部時計の進み具合に変化があったか否かを検査すると共に、システム時計と外部時計を比較して誤差を検査する。
【００６７】
ステップ５：まず、外部時間の変動を検査するための変動検査用データを計算する。ここでは単位時間当たりのカウンタ値ＨＯｔに対する外部時間Ｏｔの変化量を変動検査用データＤＯｔとして定義する。ここでは次式（４）を用いて２点のＯｔ（ｊ）、Ｏｔ（ｊ−１）と、２点のＨＯｔ（ｊ）、ＨＯｔ（ｊ−１）からＤＯｔ（ｊ）を算出する。
【００６８】
ＤＯｔ（ｊ）＝｛Ｏｔ（ｊ）−Ｏｔ（ｊ−１）｝／｛ＨＯｔ（ｊ）−ＨＯｔ（ｊ−１）｝・・・（４）
このときＤＯｔ（ｊ）は次式（１）’を用いて算出してもよい。
【００６９】
ＤＯｔ（ｊ）＝［｛Ｏｔ（ｊ）−Ｏｔ（ｊ−１）｝−｛ＨＯｔ（ｊ）−ＨＯｔ（ｊ−１）｝］／｛ＨＯｔ（ｊ）−ＨＯｔ（ｊ−１）｝・・・（４）’
また、式（４）又は式（４）’でＤＯｔ（ｊ）を算出する前に、Ｏｔ（ｊ）−Ｏｔ（ｊ−１）の値が正の値であることを検査して、外部時間の経過に問題がないかを検査しておく。
【００７０】
ステップ６：次に算出したＤＯｔ（ｊ）からシステム時間の変動を判定する。ここでは、ＤＯｔ（ｊ）に相当する基準値Ｔｈと、カウンタ値ＨＯｔとを使用して、Ｏｔ（ｊ）−Ｏｔ（ｊ−１）の変化を予め設定した許容変動値ｒまで許容するように定めた次式（５）、（６）により判定する。
【００７１】
ＤＯｔ（ｊ）＞Ｔｈ−ｒ／｛ＨＯｔ（ｊ）−ＨＯｔ（ｊ−１）｝・・・式（５）
ＤＯｔ（ｊ）＜Ｔｈ＋ｒ／｛ＨＯｔ（ｊ）−ＨＯｔ（ｊ−１）｝・・・式（６）
このように、ＤＯｔ（ｊ）がＴｈを基準値とした誤差ｒの範囲内であるかどうかを検査して式（５）（６）を満たしていれば外部時計の進み具合に変化は無かったとして未検出信号を送信して、次のステップ７へ移行する。一方で、式（５）（６）を満たしていなければ進み具合に変化があったとして検出信号を送信する。このようにステップ５，６において、システム時計とは異なる経路で時刻同期された時間を維持する外部時計の進み具合の変化を検査して外部時計の動作を保証しておく。ステップ５において式（４）’を使用してＤＯｔ（ｊ）を算出した場合には、式（５）（６）と同様に許容変動値ｒまで許容するようにして判定を行う。
【００７２】
また、カウンタの周波数ｆｃが既知の場合にはＴ秒当たりの変化を±ｒ以内としたい場合には、式（５）（６）の右辺をＴｈ±（ｒ×ＷＴ／Ｔ）×［｛ＨＯｔ（ｊ）−ＨＯｔ（ｊ−１）｝／ｆｃ］として検査を行ってもよい。ＤＯｔ（ｊ）とＤＯｔ（ｊ−１）の誤差より判定する場合には、Ｔｈ＝０とする。
【００７３】
ステップ７：外部時計の進み具合に変化は無かった場合には（未検出信号時）、システム時間と外部時間の誤差を検査する。ここではシステム時間と外部時間の読み出しが同期して行われるので、Ｓｔ（ｉ）とＯｔ（ｊ）とを直接比較することができる。
【００７４】
ステップ８：ステップ７の比較の結果、システム時計の誤差が予め設定した誤差の範囲外であった場合には、誤差を検出したとして検出信号を送信する。
【００７５】
このようにステップ７，８においては、動作が保証された外部時計の外部時間とシステム時間との誤差を検査するようにしたことで、システム時計の時刻精度を保証することができる。例えば、徐々に一定の誤差でシステム時計の進み具合を変化させた場合でも誤差を検出することができる。これにより、時刻精度が保証された時刻情報の発行が可能になる。
【００７６】
したがって、第２の実施の形態によれば、システム時計とは異なる経路で時刻同期された時間を維持する外部時計装置８の進み具合の変化を検査して外部時計装置８の動作を保証した上で、システム時間と外部時間との誤差を検査するようにしたことで、第１の実施の形態に係る効果に加えて、システム時計の時刻精度を保証することができるので、時刻精度が保証された時刻情報の発行が可能になる。
【００７７】
また、第２の実施の形態においては、システム時間と外部時間の読み出しが同期して行われる場合のシステム時計検査部４の機能について説明したが、システム時間と外部時間の読み出しは、非同期で行われるようにしてもよい。以下、図７のフローチャートを用いて説明する。
【００７８】
ステップ１−２：始めに送信信号を未検出信号として、各数値をリセットした後に、システム時間を読み出す周期であるＷＴ秒をセットする。待機時間を示すＷＴ秒を設定した後に待機状態に移行する。
【００７９】
ステップ２−２：ＷＴ秒待機の後にシステム時間Ｓｔ（ｉ）とカウンタ値ＨＳｔ（ｉ）を読み出す。
【００８０】
ステップ１−１：一方で、外部時計の受信側では図５と同様に時間情報格納領域３から外部時間Ｏｔ（ｊ）を受信したことを知らせる通知を待って待機状態となる。一定時間以上の待機状態となった場合にはタイムアウト処理を行う。
【００８１】
ステップ２−１：時間情報格納領域３から外部時間を受信したことを知らせる通知を受信した場合には、外部時間Ｏｔ（ｊ）とカウンタ値ＨＯｔ（ｊ）を読み出す。それぞれの読み出し処理の後に、図６のフローチャートに示す処理へ移行する。この場合は、図６のステップ７において、システム時間と外部時間の誤差を検査する際には、Ｓｔ（ｉ）とＯｔ（ｊ）直接比較する。また、カウンタの動作周波数が既知の場合には、ＨＯｔ（ｊ）とＨＳｔ（ｉ）の差分とシステム時間Ｓｔ（ｉ）の値、カウンタの動作周波数ｆｃからＨＯｔ（ｊ）に相当するシステム時間Ｓ’ｔを以下の式から算出して、推定したシステム時間Ｓ’ｔと外部時間Ｏｔ（ｊ）を比較するようにしてもよい。
【００８２】
Ｓ’ｔ  ＝  Ｓｔ（ｉ）＋｛ＨＯｔ（ｊ）−ＨＳｔ（ｉ）｝／ｆｃ
このような場合についても、ステップ８においてシステム時計と外部時計の誤差を検出することで、システム時計の時刻精度を保証することができるので、時刻精度が保証された時刻情報の発行が可能になる。
【００８３】
尚、第２の実施の形態のシステム時計検査部において、システム時間又は外部時間の変動を判定する際には、変動検査用データと過去の変動検査用データとを比較する方法や、変動検査用データ及び前回の変動検査用データの差分値とスレッショルド値とを比較する方法、変動検査用データと前回までに算出した変動検査用データの平均値と標準偏差から比較する方法を利用してもよい。変動検査用データの平均と標準偏差とを利用する場合には、平均値と変動検査用データの誤差がスレッショルド以内であること、及び標準偏差がスレッショルド以内であることを検査する。また、標準偏差についてはテストを繰り返し行うことで、経験値を求める方法や期待する分布から求める方法がある。
【００８４】
一方、システム時間とカウンタ値又は外部時間とカウンタ値を２点以上の複数点利用して変動検査用データを算出する場合には、カウンタ値を基準とするシステム時間又は外部時間の回帰直線の傾きを求めることで算出する。カウンタ値をｘ軸とし、システム時間又は外部時間をｙ軸とする方法、カウンタ値をｘ軸とし、システム時間又は外部時間からカウンタ値を差し引いた値をｙ軸とする方法がある。
【００８５】
また、上記第１及び第２の実施の形態において、アプリケーション部７は、ある時刻においてプログラムを起動・消滅させる時限アプリケーションとしたが、システム時計管理部５が発行した時刻情報を利用して動作を行うアプリケーションであれば、これに限られるものではなく、例えば、年月日時分秒を示す時刻を証明するために時刻情報を利用してタイムスタンプを発行する時刻認証アプリケーションであってもよい。
【００８６】
［第３の実施の形態］
以下、第３の実施の形態について説明する。本実施の形態に係るシステム時計検査装置の構成は、第１の実施の形態で説明したものと基本的な構成は同様であり、ここでも、システム時計検査装置のシステム時計は、外部の監査機関によりネットワークを介して定期的に時刻監査を受ける。
【００８７】
以下、第１の実施の形態と異なる点を中心に説明する。第１の実施の形態と構成上異なる点は、図８の構成図に示すように、システム時計検査部４が、システム時計の検査結果をシステム時間に関連付けて記憶しておく記憶部９を備えており、システム時計管理部５が、アプリケーション部７から時刻情報の発行の要求を受けた場合には、記憶部９に記憶されたシステム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行する点である。
【００８８】
記憶部９は、システム時計検査部４がシステム時計の進み具合に変化が無いと判定した場合の未検出情報を、システム時計の進み具合に変化があると判定した場合の検出情報をそれぞれシステム時間に関連付けて検査結果として記憶しておく。また、時刻監査時において受信した監査時刻と比較するために最初に未検出状態になったシステム時間を時刻情報に変換して保存しておく。ここで記憶部９は、メモリ又はファイルなどの情報を保存可能な媒体とし、情報保存先はセキュリティが確保された領域が望ましい。
【００８９】
アプリケーション部７は、年月日時分秒を示す時刻を証明するために時刻情報を利用する時刻認証アプリケーションとし、システム時計管理部５が発行した時刻情報を利用してタイムスタンプを発行する。時刻認証が必要な場合にはシステム時計管理部５へ時刻情報の発行を要求する。
【００９０】
システム時計管理部５は、アプリケーション部７から時刻情報の発行の要求を受けた場合には、記憶部９に記憶されたシステム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行する。ここでは例えばアプリケーション部７から時刻情報の発行の要求を受けた場合には、時間情報格納領域３からシステム時間を読み出して時刻情報を生成し、生成した時刻情報を含んだ検査結果要求信号をシステム時計検査部４へ送信する。
【００９１】
システム時計検査部４は、システム時計管理部５から検査結果の要求を受信した場合には、記憶部９に記憶されたシステム時計の検査結果を読み出して返信する。
【００９２】
次に、システム時計検査部４の処理についてシステム時計の検査を行う処理と検査結果要求を受信した場合の処理について図９，１０のフローチャートを用いて具体的に説明する。
【００９３】
図９は、図８のシステム時計検査部４の機能を主とした動作を示すフローチャートである。同図においてステップ１〜ステップ４の処理は第１の実施の形態の図２の処理と基本的には同様であり、検査結果をメモリやファイルに保存する点が異なっている。
【００９４】
ステップ１：始めに保存される検査結果を未検出情報とし、各数値をリセットした後に、システム時間を読み出す周期であるＷＴ秒をセットする。待機時間を示すＷＴ秒を設定した後に待機状態に移行する。
【００９５】
ＷＴ秒間の待機状態において、システム時計管理部５より検査結果要求信号を受信した際には、図１０のフローチャートに示す検査結果要求受信処理へ移行する。
【００９６】
ステップ１０：記憶部９に記憶された検査結果からシステム時計に問題が無いかどうか判定する。
【００９７】
ステップ１１：システムに問題が無いことを読み取った場合には、検査結果要求信号に時刻情報が含まれるかどうかを判定する。
【００９８】
ステップ１２：検査結果要求信号に時刻情報が含まれる場合には、システム時間を読み出して時刻情報を生成する。
【００９９】
ステップ１３：システム時間から生成した時刻情報と検査結果要求信号に含まれる時刻情報との比較を行い、「タイムスタンプ：比較結果」を記憶部９に保存する。      
ステップ１４：記憶部９に記憶された検査結果と共に比較結果「タイムスタンプ：比較結果」を送信して待機状態を継続する。
【０１００】
一方で、ステップ１０においてシステム時計に問題が有る場合には、受信時刻の判定が不可能である情報「タイムスタンプ：判定不可情報」を保存し、保存されている検査結果と共に送信する。また、ステップ１１において検査結果要求信号に時刻情報が含まれない場合には、保存されている検査結果を送信する。尚、待機状態以外の状態時には、検査要求信号を信号受信キューに保管し、待機状態となった際に、キューより取り出す処理を行う。
【０１０１】
ステップ２：ＷＴ秒待機後に、システム時間Ｓｔ（ｉ）とカウンタ値ＨＳｔ（ｉ）とを読み出す。カウンタ値の読み出しに失敗した場合には、検出情報を検査結果として保存する。
【０１０２】
ステップ３：変動検査用データＤＳｔ（ｉ）を図２と同様な処理で算出する。
【０１０３】
ステップ４：算出した変動検査用データＤＳｔ（ｉ）からシステム時間の変動を検査する。変動が検出された場合には検出情報を検査結果として保存する。最後にｉをインクリメントして、設定値を越えた場合にはゼロとする。
【０１０４】
システム時計管理部５は、受信したタイムスタンプの比較結果などを含んだシステム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行する。これによりアプリケーションからの要求に応じて動作が保証された時刻情報の発行が可能になる。
【０１０５】
したがって、第３の実施の形態によれば、システム時計の検査結果をシステム時間に関連付けて記憶しておき、アプリケーションから時刻情報発行の要求を受けた場合には、システム時計の検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行するようにしたことで、第１の実施の形態に係る効果に加えて、アプリケーションからの要求に応じて動作が保証された時刻情報の発行が可能になる。
【０１０６】
また、第３の実施の形態においては、図１０のフローチャートで示したように、システム時計検査部が待機状態に検査結果要求を受信した場合において時刻情報の判定の際はシステム時間を読み出すようにしたが、これに限られるものではなく、システム時間を過去の検査結果から推定してもよい。以下、図１１のフローチャートを用いて簡略的に処理を説明する。
【０１０７】
図１１は、システム時計検査部が待機状態において検査結果要求を受信した場合にシステム時間を推定して時刻情報の判定を行う処理を示すフローチャートである。図１０の方法では前回検査後にシステム時間の変更が行われた場合に、受信時刻情報について誤った誤差判定を行う可能性がある。ここでは過去の検査結果からシステム時間を推定する。保存情報からシステムに問題が無いことを読み取った後に（ステップ１０）、カウンタ値ＨＲｔを読み取る（ステップ１２−１）。ＨＳｔとＳｔの推移から回帰直線を求め、現在のカウンタ値ＨＲｔよりシステム時間を推定する（ステップ１２−２）。カウンタの動作周波数が既知の場合には、Ｔｓ＝ Ｓｔ（ｉ）＋｛ＨＲｔ−ＨＳｔ（ｉ）｝／ｆｃよりＴｓを算出する方法も考えられる。推定したシステム時間Ｔｓから生成した時刻情報と受信した時刻情報との比較を行い、結果を保存する（ステップ１３）。保存されている検査結果と共に比較結果を送信する（ステップ１４）。ステップ１０においてシステムに問題が有る場合には受信した時刻の判定が不可能である情報を保存し、保存されている検査結果と共に送信する。
【０１０８】
［第４の実施の形態］
以下、第４の実施の形態について説明する。本実施の形態に係るシステム時計検査装置の構成は、第１の実施の形態で説明したものと基本的な構成は同様であり、ここでも、システム時計検査装置１のシステム時計は、外部の監査機関によりネットワークを介して定期的に時刻監査を受ける。
【０１０９】
以下、第１の実施の形態と異なる点を中心に説明する。第１の実施の形態と構成上異なる点は、図１２の構成図に示すように、システム時計検査装置１が、第２の実施の形態と同様にシステム時計とは異なる経路で時刻同期された時間を維持する外部時計装置８を備え、システム時計検査部４が、システム時計及び外部時計装置８の検査結果をシステム時間に関連付けて記憶しておく記憶部９を備えている点である。
【０１１０】
アプリケーション部７は、第３の実施の形態と同様に年月日時分秒を示す時刻を証明するために時刻情報を利用する時刻認証アプリケーションとし、システム時計管理部５が発行した時刻情報を利用してタイムスタンプを発行する。時刻認証が必要な場合にはシステム時計管理部５へ時刻情報の発行を要求する。
【０１１１】
以下、具体的な処理について図１３、１４のフローチャートを用いて説明する。図１３は、システム時計検査部によりシステム時間と外部時間の読み出しが同期して行われる場合の処理を示すフローチャートである。ここでは検出時に記憶部９に情報を保存しておく点と、待機時に検査結果要求信号を受信した際の処理を除いて、第２の実施の形態で示した図５の処理と基本的には同様である。同図に示すように、まず、時間情報格納領域３から外部時計装置８の外部時間Ｏｔ（ｊ）を受信したことを知らせる通知を待って待機状態へ移行する。タイムアウトとなった場合には、外部時計の接続が外れている可能性があるため、「外部時計：接続断検出情報」を記憶部９へ保存し、待機状態へ移行する。
【０１１２】
待機時に検査結果要求信号を受信した場合には第３の実施の形態において図１０又は図１１で示した処理へ移行して、検査結果要求信号に時刻情報を含む場合はシステム時間を読み出す又は推定して受信した時刻情報の判定を行う。待機状態以外の状態時に検査要求を受信した際には、一旦信号受信キューに保管し、待機状態となった際にキューから取り出す。
【０１１３】
待機状態において時間情報格納領域３から外部時計装置８の外部時間Ｏｔ（ｊ）を受信した通知を受けた際に、外部時刻Ｏｔ（ｊ）、カウンタ値ＨＯｔ（ｊ）と、システム時間Ｓｔ（ｉ）、カウンタ値ＨＯｔ（ｉ）とを読み出す。カウンタ値の読み込みができない場合には、「カウンタ：読み込み不可情報」を保存して待機状態へ戻る。全ての値を読み込んだ後に、「外部時計：接続断未検出情報」を記憶部９に保存して、図１４のフローチャートに示すシステム時間と外部時間からシステム時計の検査を行う処理へ移行する。
【０１１４】
図１４は、システム時間と外部時間からシステム時計検査部によりシステム時計の検査を行う処理を示すフローチャートである。同図の左側の処理では、システム時計の進み具合を検査する。第２の実施の実施の形態において図６の左側で示した処理と基本的には同様にシステム時間の変動の判定を行う。変動検査用データＤＳｔ（ｉ）を算出した後に、システム時間の変動の判定を行い、変動を検出した場合には「システム時計：変動検出情報」を保存する。また、変動未検出の場合には図示しないが「システム時計：変動未検出情報」を保存する。
【０１１５】
図１４の右側の処理では、外部時計装置８の進み具合を検査する。図６の右側で示した処理と同様な方法で変動検査用データＤＯｔ（ｊ）を求め、変動判定を行う。変動を検出した場合には、「外部時計：変動検出情報」を保存する。
【０１１６】
次に、外部時計とシステム時計の変動が未検出の場合には、システム時計誤差検査用データを算出して、システム時計と外部時計の誤差を検査する。一方で、外部時計とシステム時計の変動を検出した場合には「システム時計：精度判定不可情報」を保存する。
【０１１７】
システム時計と外部時計の誤差検査では、外部時間Ｏｔ（ｊ）とシステム時間Ｓｔ（ｉ）の差がスレッショルドを超えていないことを検査する。若しくは新たにシステム時計からシステムの時刻を読み出してＯｔ（ｊ）と比較してもよい。誤差が設定範囲内である場合には図示しないが「システム時計：精度正常情報」を保存する。誤差が設定範囲外である場合には「システム時計：精度問題情報」を保存する。
【０１１８】
したがって、第４の実施の形態において、カウンタ値を利用してシステム時間の経過を比較してシステム時計の動作を保証すると共に、外部時間の経過を比較して外部時計の動作を保証した上でシステム時間と外部時間との誤差を検査することでシステム時計の時刻精度を保証し、動作や時刻精度が保証された時刻情報の発行が可能になる。更に、システム時計及び外部時計の検査結果を記憶部９に記憶しておき、アプリケーションから時刻情報発行の要求を受けた場合には、検査結果に基づいてシステム時間を用いて時刻情報を生成し、生成した時刻情報を発行することができる。
【０１１９】
また、第４の実施の形態においては、システム時間と外部時間の読み出しが同期して行われる場合のシステム時計検査部４の機能について説明したが、システム時間と外部時間の読み出しは、非同期で行われるようにしてもよい。
【０１２０】
図１５は、システム時計検査装置のシステム時計検査部によりシステム時間と外部時間の読み出しが非同期で行われる場合の処理を示すフローチャートである。ここでは検出時に記憶部９に情報を保存しておく点と、待機時に検査結果要求信号を受信した際の処理を除いて、第２の実施の形態で示した図７の処理と基本的には同様である。同図に示すように、始めに送信信号を未検出信号として、各数値をリセットした後に、システム時間を読み出す周期であるＷＴ秒をセットする。待機時間を示すＷＴ秒を設定した後に待機状態に移行する。
【０１２１】
ＷＴ秒待機の後にシステム時間Ｓｔ（ｉ）とカウンタ値ＨＳｔ（ｉ）を読み出す。一方で、
外部時計の受信側では時間情報格納領域３から外部時計装置８の外部時間Ｏｔ（ｊ）を受信したことを知らせる通知を待って待機状態となる。一定時間以上の待機状態となった場合にはタイムアウト処理を行う。待機時に検査結果要求信号を受信した場合には第３の実施の形態において図１０又は図１１で示した処理へ移行して、システム時間を読み出す又は推定して受信した時刻情報の判定を行う。
【０１２２】
待機状態において時間情報格納領域３から外部時計装置８の外部時間Ｏｔ（ｊ）を受信した通知を受けた場合には、外部時間Ｏｔ（ｊ）とカウンタ値ＨＯｔ（ｊ）を読み出す。それぞれの読み出し処理の後に、図１４のフローチャートに示す処理へ移行する。図１４のフローチャートにおいてシステム時計誤差検査用データ算出時には、第２の実施の形態で示したような方法と同様にシステム時間の推定値を求める方法も有効である。
【０１２３】
以上が、システム時間と外部時間の読み出しが非同期で行われる場合の処理についての説明である。
【０１２４】
また、上記各実施の形態においては、時間情報格納領域３に記憶されたカウンタ部２のカウンタ値を読み出すことができない場合には、システム時計検査部４，システム時計管理部５は動作をしないという方法が有効になる。その他、システム時計検査部４からシステム時計管理部５へ、システム時計管理部５からアプリケーション部７へ返答や信号が無い場合には動作を行わないようにするなどの方法もまた有効である。
【０１２５】
また、上記第３及び第４の実施の形態において、アプリケーション部７は、年月日時分秒を示す時刻を証明するために時刻情報を利用してタイムスタンプを発行する時刻認証アプリケーションとしたが、システム時計管理部５が発行した時刻情報を利用して動作を行うアプリケーションであれば、これに限られるものではなく、例えば、ある時刻においてプログラムを起動・消滅させる時限アプリケーションであってもよい。
【図面の簡単な説明】
【０１２６】
【図１】第１の実施の形態に係るシステム時計検査装置の概略的な構成図である。
【図２】上記システム時計検査装置のシステム時計検査部による処理を示すフローチャートである。
【図３】上記システム時計検査装置が監査機関から時刻監査を受けた場合の処理の流れを示す図である。
【図４】第２の実施の形態に係るシステム時計検査装置の概略的な構成図である。
【図５】上記システム時計検査装置のシステム時計検査部によりシステム時間と外部時間の読み出しが同期して行われる場合の処理を示すフローチャートである。
【図６】上記読み出されたシステム時間と外部時間からシステム時計検査部によりシステム時計の検査を行う処理を示すフローチャートである。
【図７】上記システム時計検査装置のシステム時計検査部によりシステム時間と外部時間の読み出しが非同期で行われる場合の処理を示すフローチャートである。
【図８】第３の実施の形態に係るシステム時計検査装置の概略的な構成図である。
【図９】上記システム時計検査装置のシステム時計検査部による処理を示すフローチャートである。
【図１０】上記システム時計検査部が待機状態に検査結果要求を受信した場合において時刻情報の判定の際はシステム時間を読み出して行う処理を示すフローチャートである。
【図１１】上記システム時計検査部が待機状態に検査結果要求を受信した場合において時刻情報の判定の際はシステム時間を推定して行う処理を示すフローチャートである。
【図１２】第４の実施の形態に係るシステム時計検査装置の概略的な構成図である。
【図１３】上記システム時計検査装置のシステム時計検査部によりシステム時間と外部時間の読み出しが同期して行われる場合の処理を示すフローチャートである。
【図１４】上記読み出されたシステム時間と外部時間からシステム時計検査部によりシステム時計の検査を行う処理を示すフローチャートである。
【図１５】上記システム時計検査装置のシステム時計検査部によりシステム時間と外部時間の読み出しが非同期で行われる場合の処理を示すフローチャートである。
【符号の説明】
【０１２７】
１…システム時計検査装置
２…カウンタ部
３…時間情報格納領域
４…システム時計検査部
５…システム時計管理部
６…時刻同期装置
７…アプリケーション部
８…外部時計装置
９…記憶部
Ｓｔ…システム時間
ＨＳｔ…システム時間と比較するためのカウンタ値
ＤＳｔ…システム時間の変動検査用データ
Ｏｔ…外部時間
ＨＯｔ…外部時間と比較するためのカウンタ値
ＤＯｔ…外部時間の変動検査用データ
ｆｃ…カウンタの周波数
【図１】
2007287056.tif 000003
【図２】
2007287056.tif 000004
【図３】
2007287056.tif 000005
【図４】
2007287056.tif 000006
【図５】
2007287056.tif 000007
【図６】
2007287056.tif 000008
【図７】
2007287056.tif 000009
【図８】
2007287056.tif 000010
【図９】
2007287056.tif 000011
【図１０】
2007287056.tif 000012
【図１１】
2007287056.tif 000013
【図１２】
2007287056.tif 000014
【図１３】
2007287056.tif 000015
【図１４】
2007287056.tif 000016
【図１５】
2007287056.tif 000017