(57)【特許請求の範囲】
【請求項１】
時刻を計測するタイマ部からのタイマ時刻を、署名対象データに付加して、署名鍵により電子署名を行って通信部より出力する時刻署名装置において、
上記タイマ部が時刻設定以降連続的に動作していればＯＦＦを、一時でも停止していればＯＮを示す停止フラグを保持する停止フラグ部と、
外部から事前に予測困難な値であるチャレンジを生成するチャレンジ生成部と、
認証鍵及び上記チャレンジを記憶する記憶部と、
時刻設定サーバから上記通信部を介して受信された電文中の時刻情報ｔ２に対する署名を、上記認証鍵及び上記記憶したチャレンジを用い検証する認証部と、
上記時刻設定サーバに上記チャレンジを送信し、その送信時刻ｔ１から上記電文受信時刻ｔ３までの経過時間ＴＡを求め、この時間ＴＡが所定時間を超えないと判定すると、時刻ｔ３からタイマ部に時刻を設定する時刻までの間隔をＴＢとして、時刻情報ｔ２＋間隔ＴＢよりも大きく時刻情報ｔ２＋時間ＴＡ＋間隔ＴＢよりも小さい時刻を上記タイマ部に設定すると共に上記停止フラグをＯＦＦにし、上記停止フラグがＯＮを示していると上記署名鍵による署名を阻止するように、上記各部を制御する制御部と、
を具備することを特徴とする時刻署名装置。
【請求項２】
請求項１記載の時刻署名装置と、
時刻を計測するタイマ部と、
その通信部により受信された上記時刻署名装置よりのチャレンジと上記タイマ部の上記時刻情報を上記時刻署名装置の認証鍵に対応する署名鍵による上記電子署名を作成する署名部と、
上記時刻署名装置とデータを送受信し電子署名と時刻情報を上記時刻署名装置へ送信する通信部と、
これら各部を制御する制御部を備えた時刻設定サーバと、
から構成される時刻署名システム。
【請求項３】
時刻を計測するタイマ部からのタイマ時刻を、署名対象データに付加して、署名鍵により電子署名を行って通信部より出力する時刻署名装置において、
時刻を計測するタイマ部と、
タイマが時刻設定以降連続的に動作していればＯＦＦを、一時でも停止していればＯＮを示す停止フラグを格納する停止フラグ部と、
時刻設定の実施を一意に識別する値である同期ＴＩＤを記録する同期ＴＩＤ記録部と、
外部とデータを送受信する通信部と、
少なくとも署名対象データと、上記タイマ部の計測時刻と、上記同期ＴＩＤを含むデータに対して、署名鍵により電子署名する署名部と、
上記タイマ部に時刻を設定すると共に上記停止フラグをＯＦＦし、時刻設定にともない上記同期ＴＩＤを更新し、上記電子署名を時刻認証サーバに送信し、上記停止フラグがＯＮを示していると上記署名部の電子署名を阻止するように、各部を制御する制御部と、
を具備することを特徴とする時刻署名装置。
【請求項４】
請求項３記載の時刻署名装置と、
時刻を計測するタイマ部と、
外部から事前予測困難な値であるチャレンジを生成するチャレンジ生成部と、
上記チャレンジを上記時刻署名装置へ時刻ｔ１に送信し、上記時刻署名装置よりのそのタイマ部の時刻ｔ２と同期ＴＩＤとチャレンジに対する電子署名とその時刻情報とを含む電文を時刻ｔ３に受信するサーバ通信部と、
上記受信した電文中の電子署名が上記チャレンジと、上記署名鍵により作成されたことを検証すると共に、時刻ｔ２が時刻ｔ１と時刻ｔ３との間であることを検証する認証部とを備えた時刻認証サーバと、
から構成される時刻署名システム。
【請求項５】
上記時刻認証サーバは、署名鍵を記憶し、少なくとも上記受信電文中の同期ＴＩＤを含むデータに対して署名鍵により署名して時刻設定証明書を作成する署名部を備え、時刻認証サーバの通信部は上記時刻署名装置又はこれが接続された端末装置へ時刻設定証明書を送信することを特徴とする請求項４記載の時刻署名システム。
【請求項６】
時刻を計測するタイマ部からのタイマ時刻を、署名対象データに付加して署名鍵により署名部で電子署名を行って通信部より出力する時刻署名方法において、
認証鍵を記憶し、
外部から事前に予測困難な値であるチャレンジを生成して時刻設定サーバへ送信すると共に、そのチャレンジを保存し、また経過時間の計測を開始し、
上記時刻設定サーバから署名と時刻情報を受信して、上記経過時間の計測を停止し、
上記その経過時間が所定時間を超えているか否かを調べ、上記受信した署名が、上記認証鍵と対応する署名鍵と上記チャレンジと、上記受信した時刻情報により作成されたものであるか否かを検証し、
その検証に合格し、かつ上記経過時間が所定時間を超えていなければ、上記受信した時刻情報を上記タイマ部に設定し、
停止フラグを、上記タイマ部が連続的に動作している状態にし、
上記停止フラグが連続的動作状態を示している場合は上記署名部による署名を可能とし、
上記タイマ部が停止すると、上記停止フラグをタイマ部停止状態に変更し、
上記停止フラグが停止状態を示している場合は上記署名部による署名を阻止することを特徴とする時刻署名方法。
【請求項７】
時刻を計測するタイマ部からのタイマ時刻を、署名対象データに付加して署名鍵により署名部で電子署名を行って通信部より出力する時刻署名方法において、
時刻設定の実施を一意に識別する値である同期ＴＩＤと、タイマ部が時刻設定以降連続的に動作しているか否かを示す停止フラグを記憶部に保持し、
時刻を上記タイマ部に設定し、
上記同期ＴＩＤを更新し、かつ上記停止フラグを連続的動作状態に変更し、
時刻認証サーバからチャレンジを受信し、
上記停止フラグが連続的動作状態であれば、上記タイマ部の時刻と上記同期ＴＩＤと上記受信チャレンジを署名鍵により電子署名を作成し、その署名とその時刻及び同期ＴＩＤを時刻認証サーバへ送信し、
上記署名対象データに対する上記電子署名は上記停止フラグが連続的動作状態の場合のみ行い、かつ、その電子署名は上記署名対象データ、上記タイマ時刻に上記同期ＴＩＤを付加して行うことを特徴とする時刻署名方法。
【請求項８】
上記時刻認証サーバへ上記電子署名と時刻及び同期ＴＩＤを送信後、上記時刻認証サーバから上記同期ＴＩＤに対応する時刻が特定の誤差範囲にあることを証明する時刻設定証明書を受信し、
上記署名対象データに対する電子署名に上記時刻設定証明書を添付して送信することを特徴とする請求項７記載の時刻署名方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、署名対象データにタイマ部からのタイマ時刻を付加して署名鍵により署名を行う時刻署名装置、その方法及びそのシステムに関し、特に時刻同期方法にかかわり、不正な時刻設定を防止し、時刻署名生成時に第三者機関への接続が不要な（オフライン性を有する）ものにしようとするものである。
【０００２】
【従来の技術】
従来、署名用秘密鍵を、ＩＣカード等の耐タンパ装置（正規の入出力手段以外のものにより機能を変更したり秘密データを盗んだりしようとする攻撃に耐える装置）内に保持し、耐タンパ装置内で電子署名処理を実行することにより、署名者の成りすましや改竄（かいざん）を防止する装置・方法が提案されている。さらに、署名対象に、署名日時を加えることにより、日付印に相当する機能を実現する装置・方法が提案されている。例えば、
▲１▼署名を作成する度に、信頼できる機関または装置に署名対象電文を送付し、信頼できる機関または装置がその時の時刻を証明し、その前あるいは後あるいは前後に耐タンパ装置内で署名を行う方法。
【０００３】
▲２▼署名を作成する度に、信頼できる装置が、通信網あるいは放送電波を介して、あるいは直接接続することにより、時刻情報を耐タンパ装置に供給し、耐タンパ装置はその時刻情報を用いて時刻証明を行う方法。またこの際、時刻供給装置は電子署名付時刻情報を送付することにより時刻供給者の本人性を証明する方法。（例：特開２０００−６５９６６）
▲３▼耐タンパ装置内に時計を持ち、その時計の時刻を使用して時刻署名を行い、供給電力が停止するなどの原因により時計が正確でなくなると、署名できなくなるが、▲２▼と同様な手段により時刻情報を耐タンパ装置に供給する方法。（例：特開平７−２５４８９７）
などである。
【０００４】
【発明が解決しようとする課題】
前述した従来の技術では、時刻署名生成時に第三者機関への接続をせずオフラインで時刻署名を作成することと、不正な時刻設定を防ぐこと、の２つを同時に実現できない。
・オフラインで時刻署名ができない
前記▲１▼▲２▼の例では署名生成時に毎回、信頼できる時刻供給装置への（有線または無線による）接続が必要である。そのため、署名時は毎回、信頼できる時刻供給装置に接続するための通信機能を備えるコスト、通信コスト、サービス提供コストを要し、さらに時刻供給装置側のトラヒックが増加するため時刻供給者の設備コストの増加が生じ、さらに時刻供給装置の輻輳時や、署名装置利用者が外出時や、移動体通信網サービスエリア外にあるとき、放送電波到達エリア外にあるとき、時刻供給装置がサービス停止中のときなどの、時刻供給装置に接続できないケースでは署名をすることができないため利便性を欠く。
・不正な時刻設定を防止できない
前記▲２▼▲３▼の例では信頼できる時刻供給装置との通信経路に意図的に情報伝達の遅延を挿入すれば不正な時刻の供給が可能であるため、商取引における契約書や領収書、勤務票、投票券など、時刻が利害を左右する重要な情報でありかつ時刻署名生成者が完全に信用されないケースでは採用できない。
【０００５】
この発明は、これら課題をともに解決することを目的とする。
【０００６】
【課題を解決するための手段】
この発明ではタイマ時刻を用いて署名をする時刻署名装置、つまり毎回時刻供給装置への有線または無線による通信をせずに、時刻署名が生成できるものを前提とする。
この発明によれば、タイマ部への電源供給が停止するなどして時刻署名装置のタイマ時刻が不正となれば、これを停止フラグに反映し、再度時刻設定するまで時刻署名ができないようにする。
【０００７】
この発明の第１の実施例では、時刻署名装置でチャレンジを生成し、当該チャレンジとサーバ時刻に対する署名を時刻設定サーバが作成し、これを時刻署名装置が受信する。チャレンジは予想困難な値を含むため、サーバ時刻はチャレンジ生成以後であることが保証される。またチャレンジ送信から時刻設定サーバの署名データ受信までの誤差期間（経過時間）を時刻署名装置内で計測される。
またサーバ時刻に対する署名を検証するための認証鍵は時刻署名装置内で機密性をもって保持され、チャレンジも携帯時刻署名装置内で保持される。そのためサーバ署名鍵を持たない装置による署名データ、あるいは異なるチャレンジに関連する時刻設定データを受信しても認証結果が不当となるためタイマ部に対する時刻設定はなされない。
【０００８】
以上により不正な時刻設定を排除することができる。
この発明の第２、３の実施例では、時刻認証サーバでチャレンジを生成し、当該チャレンジと、時刻設定の実施を一意に識別する値、同期ＴＩＤに対する時刻署名装置の時刻署名を作成し、これを時刻認証サーバが受信する。
チャレンジは予想困難な値を含むため、時刻署名装置の署名時刻はチャレンジ生成以後であることが保証される。またチャレンジ送信から時刻署名受信までの誤差期間（経過時間）を時刻認証サーバが検証することが可能である。そのため、この誤差期間を不正に改竄することができない。
【０００９】
また時刻署名鍵および同期ＴＩＤは時刻署名装置内で機密性をもって保持され、またチャレンジの改竄を検出することも可能である。
以上の手段により不正な時刻設定を排除することができる。
【００１０】
【発明の実施の形態】
第１の実施例
図１に第１の実施例の構成図を示す。この発明は固定の時刻署名装置にも適用できるが携帯時刻署名装置の場合は、特に有効であるから、以下の実施例では携帯時刻署名装置を用いる場合について説明する。
携帯時刻署名装置１００はタイマ部１０１、停止フラグ部１０２、認証部１０３、チャレンジ生成部１０４、署名部１０５、通信部１０６、記憶部１０７及び制御部１０８は、ＩＣカード等の耐タンパ装置内にあり、内部のデータや動作の変更は特定の命令によってのみ可能であることが好ましい。多くの実施例では、携帯時刻署名装置１００は、携帯端末、パーソナルコンピュータ、電話機、携帯電話機、デジタルカメラ、録音装置などといった端末装置１１に接続された形態をとるであろう。またＰＣＭＣＩＡカード（ＰＣカードの一種）等のインタフェース装置に内蔵されており、複数の端末装置１１に差し替えて接続することも可能であろう。これらの外部端末装置１１（あるいはインタフェース装置）は、携帯時刻署名装置１００内の耐タンパ装置に電源を供給し、キーボードや画像・音声データなどの署名対象データの入力機能を持ち、さらにコンピュータネットワーク（インターネット）、ＬＡＮ、電話網、移動体通信網、赤外線などの伝送路１２を介して時刻設定サーバ２００及び時刻署名検証装置２０と携帯時刻署名装置１００との通信を媒介する構成をとるであろう。
【００１１】
時刻設定を行うには時刻設定サーバ２００は（少なくとも時刻署名生成者と同署名の時刻署名検証者にとって）信頼できる機関が運営しており、携帯時刻署名装置１００の認証部１０３の認証鍵に対応する署名鍵を安全に管理していなければならない。時刻設定サーバ２００は、多くの実施例ではインターネット、ＬＡＮ、電話網、移動体通信網等のネットワーク（伝送路）１２を介して複数の携帯時刻署名装置と接続できる通信機能を持っている。あるいは街頭に設置してあり、赤外線等の無線通信または直接接続することにより携帯時刻署名装置と通信する利用例も可能である。
【００１２】
携帯時刻署名装置１００が作成した時刻署名は端末装置１１と伝送路１２を介し、署名検証装置２０に送信され署名検証されるのが一般的である。
携帯時刻署名装置１００において、タイマ部１０１は時刻を計測し、停止フラグ部１０２にはタイマ部１０１が時刻設定以降連続的に動作しているか否かを示す停止フラグが格納され、チャレンジ部１０４は外部から事前に予測困難な値であるチャレンジＣを生成し、認証部１０３は時刻設定の正当性を検証し、署名部１０５は電子署名を作成し、通信部１０６は外部とデータを送受信し、記憶部１０７は認証部１０３で認証に用いる認証鍵Ｋ、署名部１０５で署名に用いる署名鍵ＳｋＵ、生成したチャレンジＣなどを格納し、制御部１０８は、各部を順次制御し、全体の動作を行う。なお、携帯時刻署名装置１００はＣＰＵにプログラムを実行させることにより動作させることもできる。記憶部１０７に停止フラグを格納してもよく、署名鍵ＳｋＵ、秘密鍵Ｋ、チャレンジＣ、許容経過時間（誤差範囲）Ｌ、停止フラグなどを各別に又は１乃至複数ずつ格納してもよい。
【００１３】
時刻設定サーバ２００は、時刻を計測するタイマ部２０１、外部とデータを送受信する通信部２０２、タイマ部２０１が発生時刻に対し電子署名を行う署名部２０３、その電子署名に用いる鍵Ｋなどを記憶する記憶部２０４、各部を制御して全体の動作を行う制御部２０５を備えている。この時刻設定サーバ２００もＣＰＵにプログラムを実行させることにより動作させることができる。
図２に第１の実施例における携帯時刻署名装置１００の動作を説明する状態遷移図を示す。携帯時刻署名装置１００に対する時刻設定が正しく行われ、その後タイマ部１０１が連続して動作している間は停止フラグ部１０２の停止フラグはＯＦＦを示し、この状態▲１▼で時刻署名の作成が可能である。タイマ部１０１の時刻計測が一時的にでも停止すれば、それ以降署名部１０５が停止フラグ部１０２のフラグを参照するとＯＮを返し、時刻署名は出来ない状態▲２▼に遷移する。
【００１４】
図３に第１の実施例の時刻設定の処理手順を示す。
ステップ３０１で携帯時刻署名装置１００はチャレンジ生成部１０４でチャレンジＣを生成し、記憶部１０８に保存する。チャレンジは外部から予測困難な値であることが望ましく、乱数あるいは擬似乱数を含むデータが好ましい。このチャレンジ生成時ｔ１からの経過時間を計測する。チャレンジＣや経過時間は耐タンパ装置内でのみ処理されるため改竄は不可能である。
【００１５】
ステップ３０２でチャレンジＣを通信部１０６より送信して時刻要求する。そのチャレンジＣを含む時刻要求は端末装置１１、通信網１２等を経て時刻サーバ２００に送信される。この通信経路で不正を目論み、当時者、あるいは第三者がチャレンジＣの内容を改竄したり、時刻遅延を内挿することは可能であるが、これらの行為は以下のステップ３０４で検出されるため不正な時刻設定は不可能である。
【００１６】
ステップ３１１で時刻設定サーバ２００はチャレンジＣを含む時刻要求電文を受信する。
ステップ３１２で時刻設定サーバ２００は受信したチャレンジＣと、タイマ部２０１の現在時刻ｔ２に対して、記憶部２０４の署名鍵を用いて署名部２０３で署名を作成する。この署名方法はさまざまな方法が可能であるが、少なくともチャレンジＣと、サーバ署名鍵が無ければ生成が困難な処理である必要がある。以下に代表的な３種類の署名方法を示す。
【００１７】
▲１▼  携帯時刻署名装置１００の認証鍵として時刻設定サーバの署名鍵に対応する公開鍵を用いる。時刻設定サーバ２００は（ＲＳＡやＥＳＩＧＮなど）公開鍵方式による電子署名処理を、受信チャレンジＣ′と時刻ｔ２に対して行う。
受信チャレンジ：Ｃ′
サーバ時刻    ：ｔ２
サーバ署名鍵  ：Ｓｋ
署名処理      ：Ｓ＝ｓｉｇ＜Ｓｋ＞［Ｃ′,ｔ２］
送信データ    ：Ｓ，ｔ２
▲２▼  携帯時刻署名装置１００の認証鍵とサーバ署名鍵は共通鍵（同じ鍵）を用いる。時刻設定サーバ２００は受信チャレンジＣとサーバの時刻ｔ２と、サーバ署名鍵Ｋの連結データによりハッシュ関数（ＭＤ５，ＳＨＡ−１など）を演算し、その演算結果を署名とする。
【００１８】
受信チャレンジ：Ｃ′
サーバ時刻    ：ｔ２
サーバ署名鍵  ：Ｋ
署名処理      ：Ｓ＝ｈ［Ｃ′｜ｔ２｜Ｋ］
送信データ    ：Ｓ，ｔ２
▲３▼  共通鍵を用い、受信チャレンジＣ′と、サーバ時刻ｔ２の連結データに対して、サーバ署名鍵により（ＤＥＳ、ＦＥＡＬなどにより）暗号化し、これを署名とする。
【００１９】
受信チャレンジ：Ｃ′
サーバ時刻    ：ｔ２
サーバ署名鍵  ：Ｋ
署名処理      ：Ｓ＝Ｅ＜Ｋ＞［Ｃ′,ｔ２］
送信データ    ：Ｓ，ｔ２
ステップ３１３で時刻設定サーバ２００は前記署名Ｓと時刻ｔ２を携帯時刻署名装置１００へ送信する。前記と同様に時刻署名サーバ２００から携帯時刻署名装置１００への伝送路上で、当時者、あるいは第三者が電文を改竄したり時刻遅延を挿入することは可能であるが、これらの不正はステップ３０５で検出されるため、不正な時刻設定は不可能である。
【００２０】
ステップ３０３で携帯時刻署名装置１００は前記署名Ｓと時刻ｔ２を含むデータとして、電文を受信する。この電文を受信したら直ちに時刻ｔ１から電文受信の時刻ｔ３までの経過時間ｔ３−ｔ１を算出することが望ましい。またその場合署名検証処理に時間を要する可能性があるから、ステップ３０６での時刻設定を完了するまでは継続して経過時間を計測することが望ましい。
ステップ３０４で携帯時刻署名装置１００は受信電文の署名Ｓが、携帯時刻署名装置１００の記憶部１０７内に記憶してあるチャレンジＣと、受信電文中の時刻ｔ２に対し、携帯時刻署名装置１００の秘密鍵に対応するサーバ署名鍵によって、所定の処理により生成されたものであることを検証する。この署名検証結果が正当であれば、当該電文送信者はサーバ署名鍵を所有している者であることが証明されるため、時刻設定サーバ２００からの送信データであることを検証できる。
【００２１】
ステップ３１２における前記３種類の署名方法▲１▼〜▲３▼に対し、以下のように検証する。
▲１▼の署名方法であれば、携帯時刻署名装置１００は所定の公開鍵電子署名処理により携帯時刻署名装置１００の記憶部１０７内に記憶してあるチャレンジＣと、受信電文中の時刻ｔ２を署名対象データとして、サーバ署名鍵Ｓｋの公開鍵Ｐｋである認証鍵を用いて検証する。
【００２２】
受信署名      ：Ｓ
保存チャレンジ：Ｃ
認証鍵        ：Ｐｋ
検証処理      ：ｖｒｆ＜Ｐｋ＞（Ｓ）？＝［Ｃ,ｔ２］
▲２▼の署名方法であれは、携帯時刻署名装置１００は、サーバ署名鍵Ｋと共通の鍵である認証鍵Ｋと、携帯時刻署名装置内に記憶してあるチャレンジＣと、受信電文中の時刻ｔ２の連結値に対し、時刻設定サーバ２００における署名部２０３と同一のハッシュ処理を行い、受信された署名データＳと同じ値が得られれば署名は正当であることが検証される。
【００２３】
認証鍵        ：Ｋ
検証処理      ：Ｓ？＝ｈ［Ｃ｜ｔ２｜Ｋ］
▲３▼の署名方法であれば、携帯時刻署名装置１００は、受信電文をサーバ署名鍵Ｋと共通の鍵である検証鍵Ｋで復号し、復号結果が携帯時刻署名装置内に記憶してあるチャレンジＣと、受信電文中の時刻ｔ２の連結値に等しければ署名は正当であることが検証される。
【００２４】
認証鍵        ：Ｋ
検証処理      ：Ｓ？＝Ｅ＜Ｋ＞［Ｃ,ｔ２］
ステップ３０５では前記署名検証結果が不当であれば、通信経路でチャレンジＣあるいは時刻ｔ２が改竄されたか、あるいはサーバ署名鍵を保有しない何者かが署名をした等の可能性があるため、当該時刻設定処理は誤り（ＮＧ）となり、タイマ時刻設定は行われない。また、携帯時刻署名装置１００の記憶部１０７に許容できる誤差範囲Ｌを設定し、経過時間ｔ３−ｔ１がこの誤差範囲Ｌを超えた場合も誤り（ＮＧ）とすることも有用であろう。この判定のための誤差範囲Ｌの値は必ずしも厳格なものではない。従って、ステップ３０３で行う経過時間の算出はチャレンジの送信時刻ｔ１から電文受信時刻ｔ３までの時間ｔ３−ｔ１は最低限の値であり、例えば経過時間の算出開始時点は、チャレンジの生成時刻あるいは時刻設定処理の開始時刻でもよく、また経過時間の算出終了時点は署名検証処理が終了した時刻でもよい。このような経過時間と対応して誤差範囲Ｌがある程度大まかに決められ、その経過時間の開始時刻、終了時刻も比較的大まかでよいが、少なくともチャレンジの送信時刻から、署名電文受信時刻までを含む経過時間であればよい。
【００２５】
ステップ３０６では前記署名検証結果が正当であれば、停止フラグ部１０２内の停止フラグをＯＦＦにし、タイマ部１０１を以下のように適切な時刻に設定する。
携帯時刻署名装置１００に設定できる現在時刻の範囲は以下により知ることができる。前記サーバ署名ＳはチャレンジＣを生成した時刻ｔ１より以前に生成することが不可能であるため、時刻ｔ２は時刻ｔ１から時刻ｔ３までの範囲の時刻であることが証明されている。ここで正しい現在時刻をｔｘとし、ｔ１からｔ３までの経過時間をＴＡ,ｔ３からｔｘまでの経過時間をＴＢとする。ｔｘは最も早い場合でも、ｔ２＋ＴＢより以降であり、最も遅い場合でも、ｔ２＋ＴＢ＋ＴＡより以前である。この範囲であれば正当な時刻として許容できる。上記の範囲において、時報等を用い、より正確な時刻にタイマ部１０１の時刻を設定することも可能である。
【００２６】
もし仮に何者かが通信経路に遅延を挿入しても、挿入された遅延は前記時刻範囲ＴＡ＝ｔ３−ｔ１に反映する。従って前記のように、経過時間ＴＡが所定の許容範囲Ｌより大きければ、署名検証結果が不正である場合と同様にエラー（ＮＧ）とすることができる。あるいは、下記に示すように、時刻署名生成時に、経過時間ＴＡの値を、誤差範囲として署名対象とすることも可能である。
図４に第１の実施例の携帯時刻署名生成とその時刻署名検証の処理手順を示す。
【００２７】
ステップ４０１で携帯時刻署名装置１００は署名対象情報（データ）Ｍを受信する。署名対象データはテキスト、画像、音声など任意のデジタルデータでよい。また署名対象データは携帯時刻署名装置１００の外部から受信したものでもよいし、電子マネー等、携帯時刻署名装置１００の内部に保存されているデータの場合もありうる。多くの実施例ではＭは署名したいデジタルデータのハッシュ値を用いる。
【００２８】
ステップ４０２で停止フラグ部１０２の停止フラグをチェックする。
ステップ４０３で停止フラグがＯＮであれば、または前回の時刻合せ後１回以上停止しているなどの理由により、タイマ部１０１のタイマ時刻は時刻署名に使えないため、エラーとなり終了。時刻署名をするためには時刻設定処理を実施する必要がある。停止フラグがＯＦＦであれば次の時刻署名作成のステップに進める。
【００２９】
ステップ４０４で少なくとも現在のタイマ時刻ｔｘと、Ｍを含むデータに対して、署名部１０５で時刻署名鍵ＳｋＵを用いて署名する。
ＴＳ＝ｓｉｇ＜ＳｋＵ＞｛Ｍ，ｔｘ｝
好ましい実施例では、署名対象に時刻設定における誤差許容範囲Ｌを加えることも当該時刻署名の誤差範囲を明示する方法として有用であろう。あるいは事前にＬを設定せず、署名対象にｔ３−ｔ１の値を加えることも誤差範囲を明示する方法として有用であろう。また署名検証者が時刻設定以後におけるタイマ部１０１の時刻精度を推定するためにｔ２を含むことも有用である。つまり下記の署名も考えられる。
【００３０】
ＴＳ＝ｓｉｇ＜ＳｋＵ＞｛Ｍ，ｔｘ，Ｌ，ｔ２｝
ＴＳ＝ｓｉｇ＜ＳｋＵ＞｛Ｍ，ｔｘ，ｔ３−ｔ１，ｔ２｝
ステップ４０５では、時刻署名ＴＳと、署名時刻ｔｘを送信する。署名対象が携帯時刻署名装置１００の内部のデータである場合には同署名対象データも送信する。
時刻署名ＴＳを署名検証者装置２０に送る場合は、端末装置１１、およびインターネット、電話網、ＬＡＮ、赤外線等の伝送路１２を経由して送ることが可能である。
【００３１】
時刻署名ＴＳが公開鍵方式で実施される場合は、検証装置２０が正当な携帯時刻署名装置１００であることを認証するために、携帯時刻署名装置１００の公開鍵証明書を添付することが望ましい。ただし公開鍵証明書は端末装置１１に保存してあってもよいし、耐タンパ装置内に保存してあってもよい。また、公開鍵方式に替わり得る手段として、署名検証が信頼できる機関で行われる場合、あるいは耐タンパ装置で行われる場合などは、共通鍵を用いることも可能である。
【００３２】
ステップ４１１では検証装置２０は時刻署名ＴＳとｔｘを受信し、検証する。携帯時刻署名装置１００の署名鍵の公開鍵証明書が添付されていれば、これを検証し、正当な認証機関によって認証された公開鍵であることを確認する。
第２の実施例
第２の実施例における時刻認証サーバは（第１の実施例における認証鍵のような）耐タンパ装置内の特定の機密情報に対応する機密情報を所有する必要がなく、時刻認証サーバは、任意の、例えば信頼関係が限定されている機関が運営することも可能である。
【００３３】
第２の実施例における携帯時刻署名装置は後述する第３の実施例における携帯時刻署名装置と同等の機能を備え、その状態遷移を図５に示す。これらの実施例は、時刻設定と、設定された時刻が有効であることが証明する「時刻認証」処理が分離される。これらの実施例では、時刻認証処理は携帯時刻署名装置の外部で行うことが可能である。つまり、携帯時刻署名装置のタイム部の時刻を、外部の例えば時刻認証サーバにより認証してもらう。これらの実施例における停止フラグの機能は第１の実施例と同等である。またこれらの実施例における時刻設定処理は、第１の実施例とは異なり、信頼できるサーバとの通信は行わない。図５は時刻設定、タイマ停止、時刻認証の三つの処理に伴うシステムの状態遷移を表す。これは以下の３つの状態で表される。
【００３４】
▲１▼  停止フラグがＯＮであり、時刻署名は不可能であり、時刻認証は無効である状態。ここで時刻設定を行うと▲２▼に遷移する。タイマ停止、時刻認証処理実行をしても遷移しない。
▲２▼  停止フラグがＯＦＦであり、時刻署名は可能であり、時刻認証は無効である状態。ここで時刻設定をしても遷移しない。タイマ停止すると▲１▼に遷移する。時刻認証を行うと▲３▼に遷移する。
【００３５】
▲３▼  停止フラグがＯＦＦであり、時刻署名は可能であり、時刻認証が有効である状態。ここで時刻設定を行うと、その時刻に対する認証が済んでいないから▲２▼に遷移する。タイマ停止すると▲１▼に遷移する。時刻認証処理実行をしても遷移しない。
図６に第２、第３の実施例における携帯時刻署名装置に対する時刻設定処理の手順を示す。
【００３６】
ステップ６０１で外部から時刻情報ｔを受信する。この時刻情報ｔには特に制限はない。時報等をもとになるべく正確な時刻を入力することが望ましい。仮に不正な時刻を設定しても、以下に示す時刻認証処理により、正確な時刻との差は明らかとなる。
ステップ６０２では入力された時刻ｔをタイマ部１０１に設定する。
ステップ６０３で記憶部１０７内の同期ＴＩＤを更新する。同期ＴＩＤは、時刻設定の実施を一意に識別する値であり、例えば携帯時刻署名装置１００のシリアル番号と、同携帯時刻署名装置１００で実施した時刻設定処理の回数の連結値とすればよい。この場合は時刻設定をする度に同期ＴＩＤは１増える。
【００３７】
ステップ６０４では停止フラグをＯＦＦにする。
図７に第２の実施例の構成例を示し、図１と対応する部分に同一参照番号を付けてある。
この実施例は、時刻設定サーバ２００ではなく時刻認証サーバ７００を設け、特に、携帯時刻署名装置１００のタイムスタンプを、時刻認証サーバ７００自身が実施する場合に適用できる。時刻認証サーバ７００と携帯時刻署名装置１００の二者間に閉じた関係が構築できるため、広く信頼される第三者機関を導入する必要がなく、つまり時刻認証サーバと時刻署名検証装置とを兼用することができ、商店と顧客の売買期限契約などへの活用が容易である。
【００３８】
携帯時刻署名装置１００のタイマ部１０１、停止フラグ部１０２、署名部１０５、通信部１０６、記憶部１０７及び制御部１０８、同期ＴＩＤが格納された同期ＴＩＤ部１０９はＩＣカード等の耐タンパ装置内にあり、内部のデータや動作の変更は特定の命令によってのみ可能であることが好ましい。端末装置１１については第１の実施例と同様である。時刻認証サーバ７００との通信については第１の実施例の時刻設定サーバ２００と同様である。同期ＴＩＤ、停止フラグも記憶部１０７内に格納してもよい。
【００３９】
時刻認証サーバ７００は通信部７０１、認証部７０２、タイマ部７０３、チャレンジ生成部７０４、制御部７０５、記憶部７０６を備え、これもＣＰＵにプログラムを実行させて動作させることもできる。
図８に第２の実施例の時刻認証処理手順を示す。
ステップ８１１で時刻認証サーバ７００はチャレンジ生成部７０４からチャレンジＣを生成する。チャレンジＣは外部から予測困難な値であることが望ましく、乱数あるいは疑似乱数を含むデータが好ましい。
【００４０】
また後に携帯時刻署名装置１００からの受信電文に含まれるチャレンジと対応するＣとチャレンジ生成時刻ｔ１を、時刻認証サーバ７００が特定できる方法を講じておく必要がある。さまざまな実施方法が可能であるが、例えば下記のような方法がある。
▲１▼  後に検索するために、Ｃとｔ１をデータベース（記憶部）７０６などに保存する。
【００４１】
▲２▼  ｔ１とサーバ７００の記憶部７０６で管理する秘密情報Ｋの連結値のハッシュ値と、ｔ１との連結値をチャレンジＣとする：Ｃ＝ｔ１｜ｈ（ｔ１｜Ｋ）。上記のうち、▲１▼は一般的な手法である。▲２▼は暗号的手法でありサーバ７００にＣやｔ１を保存する必要がないが鍵Ｋを管理する必要がある。他にも多数の暗号的手法を用いることも可能である。
ステップ８１２で時刻認証サーバ７００はチャレンジＣを携帯時刻署名装置１００に送信する。時刻認証サーバ７００は多数の携帯時刻署名装置１００に対して時々刻々異なるチャレンジを送信する実施形態が一般的である。同時刻であれば、複数の携帯時刻署名装置１００に同じチャレンジを送信してもよい。したがって、この送信ステップは無線あるいは有線の放送を用いることも可能である。
【００４２】
通信経路で不正を目論み、チャレンジの内容を改竄されたり、時刻遅延を内挿することは可能であるが、これらの行為は後で検出が可能である。
ステップ８０１で携帯時刻署名装置１００はチャレンジとして電文を受信する。
ステップ８０２で携帯時刻署名装置１００は停止フラグをチェックする。
ステップ８０３では停止フラグがＯＮであれば、タイマ部１０１は前回時刻設定以降連続的に動作していないため、時刻認証はできない。時刻認証するためには図６に示した手順により時刻を設定し、再度ステップ８０１のチャレンジ電文受信から始める必要がある。
【００４３】
ステップ８０４では停止フラグがＯＦＦであれば時刻署名を署名部１０５で作成する。この際少なくとも受信電文中のチャレンジＣ′と、現在時刻ｔ２と、同期ＴＩＤを含むデータに対して、署名鍵ＳｋＵを用いて署名を作成する。
電文中チャレンジ：Ｃ′
署名時刻      ：ｔ２
同期ＴＩＤ    ：ＴＩＤ１
署名鍵        ：ＳｋＵ
署名          ：ＴＳｃ：＝ｓｉｇ＜ＳｋＵ＞［Ｃ′，ｔ２，ＴＩＤ１］
このステップは以下図９で説明する署名作成のプロセスと同一の機能により処理可能である。すなわち携帯時刻署名装置１００から見れば、時刻認証は、Ｃ′を署名対象データとした、通常の時刻署名作成処理に外ならない。
【００４４】
ステップ８０５で通信部１０６から少なくとも署名ＴＳｃと、ＴＩＤ１と、ｔ２を含むデータを時刻認証サーバ７００へ送信する。
送信データ    ：［ＴＩＤ１，ｔ２，ＴＳｃ］
また、前記署名が公開鍵方式の場合は、実際には第１の実施例と同様に当該署名が当該携帯時刻署名装置１００によるものであることを認証するための公開鍵証明書を添付することが有用である。
【００４５】
さらに、送信には、以下のステップで時刻認証サーバ７００がこの署名の対象としたチャレンジを特定するための手段を講じるべきである。即ち、例えばステップ８１１で示した例▲１▼と▲２▼に対応して下記の方法とする。
▲１▼  Ｃ′あるいはＣ′に付与された識別ＩＤを添付する。
▲２▼  Ｃ′あるいはＣ′の一部であるｔ１を添付する。この場合のｔ１のビット数が既知であり、かつｔ１とｈ（ｔ１｜Ｋ）の配列順もわかっているのでｔ１を添付できる。
【００４６】
ステップ８１３では時刻認証サーバはステップ８０５の送信電文を受信する。このとき受信時刻ｔ３を記憶部７０６に受信電文と対応づけて記憶することが望ましい。
ステップ８１４では以上までのステップで、時刻認証に必要な情報は全て収集されており、これらは記憶部（データベース）７０６に同期ＴＩＤなどによって区別されて記憶してある。よってこの時刻認証ステップは任意のタイミングで実施することが可能であり、例えば時刻認証サーバ７００が署名検証装置２０を兼ねた場合は図９に示す時刻署名検証と同時に認証することも可能である。また署名検証装置２０で検証した時に検証者がその時刻ｔｘが正当なものかを時刻認証サーバ７００に問い合せがあった時でもよい。この実施例では１例として、ステップ８１３に続けて時刻認証を行う。
【００４７】
時刻認証では認証部７０２において少なくとも、電文中のＴＳｃ、ｔ２、ＴＩＤ、ＴＳｃに対応する時刻認証サーバ７００の記憶部７０６に保存したチャレンジＣ、Ｃに対応するチャレンジ生成時刻ｔ１、及び電文受信時刻ｔ３、を用いる。ＴＳｃが公開鍵による署名の場合、署名用秘密鍵ＳｋＵに対応する公開鍵ＰｋＵを認証鍵として用いる。
ステップ８１４−１でＴＳｃに対応するＣを取得する。以下はステップ８１１で示した例▲１▼と▲２▼に対応する認証方法を示す。
【００４８】
▲１▼  受信電文中のＣ′あるいはＣ′の識別ＩＤに対応するＣとｔ１を記憶部７０６から検索する。
▲２▼  受信電文中のＣ′の一部であるｔ１を用いて、Ｃ＝ｔ１｜ｈ（ｔ１｜Ｋ）を算出し、Ｃ＝Ｃ′になるかを確認する。もしこの段階で該当するＣが存在しないことが明らかとなれば、認証は失敗である。
次に、ステップ８１４−２で前記Ｃにより、署名対象データを［Ｃ，ｔ２，ＴＩＤ］として、ＴＳｃを検証する。
【００４９】
ｖｒｆ＜ＰｋＵ＞（ＴＳｃ）？＝［Ｃ，ｔ２，ＴＩＤ］
更に、ＰｋＵの公開鍵証明書を検証し、ＰｋＵが正当な携帯時刻署名装置１００に対応することを検証することが望ましい。
以上の検証結果が全て正当であれば、時刻認証サーバ７００の、時刻ｔ２に相当する時刻Ｔ（ｔ２）はｔ１からｔ３までの範囲の時刻であることが確認できる。
【００５０】
ここで、同期ＴＩＤ＝ＴＩＤ１における携帯時刻署名装置１００のタイマ部１０１の任意の時刻をｔｘとし、時刻認証サーバ７００のタイマ部７０３の時刻はＴ（ｔｘ）とすると、ｔ２からｔｘまでの経過時間はｔｘ−ｔ２＝Ｔ（ｔｘ）−Ｔ（ｔ２）である。ここでｔｘは例えばｔ２より過去でもかまわない。
ｔ１＜Ｔ（ｔ２）＜ｔ３の関係があり、これらの時刻に対しｔｘ−ｔ２＝Ｔ（ｔｘ）−Ｔ（ｔ２）が経過すると、
ｔ１＋（ｔｘ−ｔ２）＜Ｔ（ｔ２）＋Ｔ（ｔｘ）−Ｔ（ｔ２）＜ｔ３＋（ｔｘ−ｔ２）すなわち、
ｔｘ＋（ｔ１−ｔ２）＜Ｔ（ｔｘ）＜ｔｘ＋（ｔ３−ｔ２）
なる関係がある。
【００５１】
すなわち、同期ＴＩＤ＝ＴＩＤ１における携帯時刻署名装置１００のタイマ部１０１の時刻ｔｘに対応する時刻Ｔ（ｔｘ）は、ｔｘ＋（ｔ１−ｔ２）からｔｘ＋（ｔ３−ｔ２）までの範囲であることが証明できる。
図９に第２の実施例の時刻署名及び検証手順を示す。
この実施例における携帯時刻署名装置１００の時刻署名生成は、前記時刻認証で用いたものと同じ機能によって実現される。すなわち、時刻認証では署名対象が時刻認証サーバのチャレンジであったのに対し、通常の署名生成では、任意の署名対象電文に対して同様の署名を行う。
【００５２】
ステップ９０１〜９０３までは第１の実施例１での図４に示したステップ４０１〜４０３とまったく同様である。
ステップ９０４では少なくとも現在のタイマ部１０１の時刻ｔｘと、同期ＴＩＤと、Ｍを含むデータに対して、時刻署名鍵ＳｋＵを用いて署名する。
ＴＳ＝ｓｉｇ＜ＳｋＵ＞｛Ｍ，ｔｘ，ＴＩＤ｝
ステップ９０５では時刻署名ＴＳと、署名時刻ｔｘを検証装置２０へ送信する。一般には同期ＴＩＤも送信する。時刻署名検証装置２０で前回の時刻署名を受信した際のＴＩＤと同一の場合はＴＩＤの送信を省略してもよい。署名対象が携帯時刻署名装置内部のデータである場合には同署名対象データも送信する。
【００５３】
時刻署名ＴＳを署名検証装置２０に送る場合は多くの場合、端末装置、およびインターネット、電話網、ＬＡＮ、赤外線等の伝送路１２を経由して送る。
ステップ９１１で検証装置２０が時刻署名ＴＳを受信する。
ステップ９１２で検証装置２０は時刻署名ＴＳを検証する。署名検証が正当であれば、当該署名の同期ＴＩＤに相当して時刻認証していたことを確認する。つまり時刻認証サーバ７００に問い合せてその受信した署名の同期ＴＩＤが、図８中で時刻認証サーバ７００に送った同期ＴＩＤと一致するかを確認する。署名検証装置２０が時刻認証サーバ７００を兼ねていれば、その確認は直ちに行うことができる。当該同期ＴＩＤを確認すれば、当該同期ＴＩＤの誤差範囲で当該時刻署名の時刻が認証できる。
第３の実施例
図１０に第３の実施例の構成図を示す。
【００５４】
この実施例は、特に、携帯時刻署名装置１００の同期ＴＩＤに対応する時刻が特定の誤差範囲にあることの証明である「時刻設定証明書」を、時刻認証サーバ７００自身が発行し、携帯時刻署名装置のタイムスタンプと時刻設定証明書を組合せることにより任意のタイムスタンプ検証者がタイムスタンプの時刻を検証する場合に適用できる。
携帯時刻署名装置１００のタイマ部１０１、停止フラグ部１０２、署名部１０５、署名鍵ＳｋＵなどの記憶部１０７、通信部１０６、制御部１０８、同期ＴＩＤ部１０９はＩＣカード等の耐タンパ装置内にあり、内部のデータや動作の変更は特定の命令によってのみ可能であることが好ましい。端末装置１１については第１の実施例と同様である。時刻認証サーバ７００との通信については第１の実施例の時刻設定サーバ２００と同様である。
【００５５】
時刻認証サーバ７００は通信部７０１、認証部７０２、タイマ部７０３、チャレンジ生成部７０４、制御部７０５、記憶部７０６の他に署名部７０７が設けられる。
図１１に第３の実施例の時刻認証処理手順を示す。
ステップ１１０１〜１１０５、１１１１〜１１１７は、図８中のステップ８０１〜８０５、８１１〜８１５と同様である。
【００５６】
ステップ１１１６では時刻認証を、ステップ１１１７で時刻設定証明書作成を行うが、例えば下記に示すように、▲１▼と▲２▼の２種類の実施例がある。▲１▼の実施例は、時刻認証サーバ７００は携帯時刻署名装置１００の時刻の正当性を検証せず、後に時刻検証装置２０が時刻署名検証と合わせて時刻の正当性を検証するために必要な署名データを時刻設定証明書として送信する。▲２▼の実施例は、時刻認証サーバ７００は携帯時刻署名装置１００の時刻の正当性を確認し、後に時刻検証装置２０が時刻検証に必要な署名処理を軽減する。
【００５７】
ステップ１１１６で時刻認証サーバ７００は時刻認証を行う。
▲１▼の実施例では、図８中のステップ８１４−１と同様に、ＴＳｃに対応するＣを取得する。もしこの段階で該当するＣが存在しないことが明らかとなれば、認証結果はエラーである。
▲２▼の実施例では、ステップ８１４−１と同様に、ＴＳｃに対応するＣを取得する。さらにステップ８１４−２と同様に前記Ｃにより、署名対象データを［Ｃ，ｔ２，ＴＩＤ］として、ＴＳｃを検証する。
【００５８】
ｖｒｆ＜ＰｋＵ＞（ＴＳｃ）？＝［Ｃ，ｔ２，ＴＩＤ］
更に、ＰｋＵの公開鍵証明書を検証し、ＰｋＵが正当な携帯時刻署名装置１００に対応することを検証することが望ましい。
ステップ１１１７で時刻認証サーバ７００は時刻設定証明書を署名部７０７で記憶部７０６内の署名鍵ｓを用いて作成する。これはステップ１１１６の実施例▲１▼と▲２▼により例えば以下のようにして行う。
【００５９】
▲１▼の実施例では、ＴＳｃ、ｔ３及び当該Ｃ、ｔ１に対し、例えば
ＴＣｅｒｔ：＝｛ｓｉｇ＜ｓ＞（ＴＳｃ，Ｃ，ｔ１，ｔ３），Ｃ，ｔ１，ｔ３｝
を作成する。Ｃとｔ１が放送などにより公開されており、これらを時刻署名検証装置２０が過去にさかのぼり容易に取得できる場合には
Ｔｃｅｒｔ▲１▼：＝｛ｓｉｇ＜ｓ＞（ＴＳｃ，ｔ３），ｔ３｝
で十分な場合もありうる。これに、ＴＳｃを付けてもよい。
【００６０】
▲２▼の実施例では、ＴＩＤ、ｔ３及び当該ｔ１に対し、例えば
Ｔｃｅｒｔ▲２▼：＝｛ｓｉｇ＜ｓ＞（ＴＩＤ，ｔ３，ｔ２，ｔ１），ｔ３，ｔ２，ｔ１｝
を作成する。あるいは下記のような内容もありうる。
Ｔｃｅｒｔ▲３▼：＝｛ｓｉｇ＜ｓ＞（ＴＩＤ，ｔ３−ｔ２，ｔ１−ｔ２），ｔ３−ｔ２，ｔ１−ｔ２｝
Ｔｃｅｒｔ▲４▼：＝｛ｓｉｇ＜ｓ＞（ＴＩＤ，ｔ３−ｔ１），ｔ３−ｔ１｝
Ｔｃｅｒｔ▲５▼：＝ｓｉｇ＜ｓ＞（ＴＩＤ）
これらにＴＩＤを付けてもよい。
【００６１】
Ｔｃｅｒｔ▲２▼では当該ＴＩＤの誤差範囲ｔ３−ｔ２，ｔ１−ｔ２と認証時刻ｔ３，ｔ１を証明している。携帯時刻署名装置１００のタイマ部１０１の時刻は時間と共に誤差を生じる可能性があるため、認証時刻情報も含むことが有用である。
Ｔｃｅｒｔ▲３▼では当該ＴＩＤの誤差範囲ｔ３−ｔ２，ｔ１−ｔ２を証明している。
【００６２】
Ｔｃｅｒｔ▲４▼では誤差範囲の最大値を証明している。
Ｔｃｅｒｔ▲５▼では、時刻認証サーバ７００が誤差範囲の最大値Ｌを規定し、当該範囲内の誤差範囲の場合のみ時刻設定証明書を発行するケースなどに適用できる。
ステップ１１１８で時刻認証サーバ７００は作成した時刻設定証明書Ｔｃｅｒｔを携帯時刻署名装置１００が接続された端末装置１１へ送信する。
【００６３】
ステップ１１０６では携帯時刻署名装置１００に接続された端末装置１１は時刻設定証明書Ｔｃｅｒｔを受信する。必ずしも携帯時刻署名装置１００自体が時刻設定証明書Ｔｃｅｒｔを読みこむ必要性はない。
ステップ１１０７では携帯時刻署名装置１００が接続された端末装置１１は時刻設定証明書Ｔｃｅｒｔを検証する。必ずしも携帯時刻署名装置１００自体が時刻設定証明書Ｔｃｅｒｔを検証する必要性はない。端末装置１１で検証を行う場合は検証に必要なＴＳｃ又はＴＩＤは携帯時刻署名装置１００から時刻認証サーバ７００へ署名ＴＳｃを送信する際に、ＴＳｃ又はＴＩＤをコピーして保存し、Ｔｃｅｒｔの検証に用いる。あるいは携帯時刻署名装置１００からＴＳｃ又はＴＩＤを取得する。端末装置１１は検証後のＴｃｅｒｔを保持することが望ましい。
【００６４】
図１２に第３の実施例の時刻署名及び検証処理手順を示す。
ステップ１２０１〜１２０５までは図９の第２の実施例におけるステップ９０１〜９０５とまったく同様である。
ステップ１２０６では端末装置１１は時刻署名ＳＴに時刻設定証明書Ｔｃｅｒｔを添付し、署名検証装置２０に送信する。これは前記と同様、多くの場合インターネット、電話網、ＬＡＮ、赤外線等の伝送路１２を経由して送る。
【００６５】
ステップ１２１１では署名検証装置２０は時刻署名ＳＴと時刻設定証明書Ｔｃｅｒｔとを電文として受信する。
ステップ１２１２では署名検証装置２０は受信電文を元に、以下の手順により時刻署名ＳＴを検証する。まず、電文中の時刻署名ＳＴと時刻設定証明書Ｔｃｅｒｔを署名検証する。検証結果がいずれも正当であれば、時刻署名ＳＴと時刻設定証明書ＴｃｅｒｔのＴＩＤが一致することを確認する。▲２▼の実施例であれば以上により署名時刻１２は指定誤差の範囲で正当であることが検証できる。
【００６６】
▲１▼の実施例の場合は、更に時刻設定証明書Ｔｃｅｒｔに含まれるＴＳｃを検証し、検証結果が正しく、ＴＩＤが同一であれば署名時刻は指定誤差の範囲で正当であることが検証できる。このＴＳｃの検証に必要な情報は携帯時刻署名装置１００から時刻署名ＳＴに付けて送信する。
上述において携帯時刻署名装置１００は、固定時刻署名装置でもよい。また第２、第３の実施例では時刻認証サーバ７００と時刻署名検証装置２０が一体化されて構成されていてもよい。
【００６７】
【発明の効果】
以上述べたようにこの発明によれば、毎回時供給装置への有線又は無線による通信をせずに時刻署名を生成でき、しかも、タイマ部への電源供給が停止するなどにより時刻署名装置のタイマ時刻が不正になっても、これが停止フラグに反映されるため、再度時刻設定するまで時刻署名ができず、不正にタイマ時刻を遅らせることはできない。
【００６８】
この発明の第１の実施例によれば、チャレンジの送信から時刻設定サーバの署名時刻を受信するまでの経過時間を計測しているため、伝送路上に故意に遅延を挿入しても、その遅延は経過時間に反映し、この正しい経過時間を不正に改ざんすることはできない。
この発明の第２、第３の実施例によれば、時刻認証サーバでチャレンジ送信から時刻署名装置のタイマ時刻に対する署名の受信までの経過時間を検出することにより、伝送路上に故意に遅延を挿入しても、その遅延は前記経過時間（誤差時間）に反映され、この経過時間を不正に改ざんすることができない。
【００６９】
また同期ＴＩＤを時刻署名装置内に機密に保持しており、時刻署名に同期ＴＩＤを付加しているため、異なる同期ＴＩＤと関連する時刻署名を無効にすることができる。
第２、第３の実施例では、第１の実施例で必要とした認証鍵を保持する必要がなく、時刻署名装置の構成を簡易にすることができる。また第３の実施例で時刻設定証明書の署名のために時刻認証サーバは時刻署名装置の耐タンパ領域内の鍵情報に対応する署名鍵を持つ必要がないため、つまり耐タンパ領域外で検証することができるから、その署名鍵の交換が容易であり、第２、第３の実施例は任意の機関が時刻認証サーバを運営することもできる。更に時刻認証より前に時刻署名を行い、その後当該時刻署名の同期ＴＩＤを認証することも可能であり、時刻認証サーバに接続できない状況でタイマが停止した場合などに有用である。
【図面の簡単な説明】
【図１】第１の実施例の機能構成を示す図。
【図２】第１の実施例の時刻署名装置の状態遷移図。
【図３】第１の実施例の時刻設定手順を示す流れ図。
【図４】第１の実施例の時刻署名及び時刻署名検証の手順を示す流れ図。
【図５】第２・第３の実施例の時刻署名装置の状態遷移図。
【図６】第２・第３の実施例の時刻設定手順を示す流れ図。
【図７】第２の実施例の機能構成を示す図。
【図８】第２の実施例の時刻認証手順を示す流れ図。
【図９】第２の実施例における時刻署名作成・検証手順を示す流れ図。
【図１０】第３の実施例の機能構成を示す図。
【図１１】第３の実施例の時刻認証手順を示す流れ図。
【図１２】第３の実施例における時刻検証手順を示す流れ図。
【図１】
0003646055.tif 000002
【図２】
0003646055.tif 000003
【図３】
0003646055.tif 000004
【図４】
0003646055.tif 000005
【図５】
0003646055.tif 000006
【図６】
0003646055.tif 000007
【図７】
0003646055.tif 000008
【図８】
0003646055.tif 000009
【図９】
0003646055.tif 000010
【図１０】
0003646055.tif 000011
【図１１】
0003646055.tif 000012
【図１２】
0003646055.tif 000013