JP4602729B2 - 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体 - Google Patents

時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体 Download PDF

Info

Publication number
JP4602729B2
JP4602729B2 JP2004290775A JP2004290775A JP4602729B2 JP 4602729 B2 JP4602729 B2 JP 4602729B2 JP 2004290775 A JP2004290775 A JP 2004290775A JP 2004290775 A JP2004290775 A JP 2004290775A JP 4602729 B2 JP4602729 B2 JP 4602729B2
Authority
JP
Japan
Prior art keywords
time
request
certification
assigned
information
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.)
Expired - Fee Related
Application number
JP2004290775A
Other languages
English (en)
Other versions
JP2005130488A (ja
Inventor
英一 堀田
諭 小野
昭 田倉
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2004290775A priority Critical patent/JP4602729B2/ja
Publication of JP2005130488A publication Critical patent/JP2005130488A/ja
Application granted granted Critical
Publication of JP4602729B2 publication Critical patent/JP4602729B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction

Description

本発明は、PKI(Public Key Infrastructure;公開鍵基盤)におけるタイムスタンプ技術に関し、より詳しくは、2分木(Merkle tree)を利用して時刻証明を行う時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体に関する。
タイムスタンプ技術は、デジタルデータがある特定時刻に存在していたことを証明するとともに、その時刻以降データが変更されていないことを証明する技術である。近年、インターネット上での電子商取引の活発化や、デジタル文書管理の利用拡大に伴い、「誰が、いつ、どんなデータを生成し、交信したか」を第三者が証明する電子公証の仕組みが必要とされている。電子公証は、送受信者の特定、到達確認、時刻情報の付与、改ざんの検知、電子文書保管等の機能を具備するものであるが、タイムスタンプ技術は、このうち、時刻情報の付与及び改ざんの検知の機能を実現するものである。
図17は、このようなタイムスタンプ技術を用いたタイムスタンプシステムである。同図に示すタイムスタンプシステム900は、利用者(要求者、検証者)30がタイムスタンプの対象データをTSA(Time Stamping Authority;タイムスタンプ生成機関)10に送信すると、TSA10がTA(Time Authority;時刻源である時刻情報提供機関)20から時刻情報を入手して、利用者30から要求された対象データに対してタイムスタンプを生成し、該タイムスタンプを利用者30に返信するようになっている。そして、このTSA10で発行されるタイムスタンプは、通常、利用者30から送られる対象データに時刻情報を付した結果である署名対象データに対して生成したデジタル署名を含む時刻証明書となっている。
尚、この出願に関連する先行技術文献情報としては、次のものがある。
ここで、非特許文献1では、図17のTSA10において公開鍵基盤とデジタル署名を用いることによりタイムスタンプを生成する方式について述べている。
非特許文献2では、前もって定められた一定時間(例えば1秒間、これをラウンドという)に受け付けた時刻証明要求を2分木等を用いて、集約ハッシュ値と呼ばれる1つのハッシュ値に集約して該集約ハッシュ値含む時刻証明書を発行し、また該時刻証明書を該集約間隔より前に同様に生成された時刻証明書を結合してそれら時刻証明書の生成順序を偽造不可能な形で証明するようなリンク情報を生成し、さらに前もって定められた公開間隔(例えば1週間)毎に該リンク情報を公表することにより、デジタルデータがある特定時刻に存在していたことを証明するとともに、その時刻以降データが変更されていないことを証明することを可能とするタイムスタンプ方式を記述している。尚、この方式においては公開鍵基盤とデジタル署名はタイムスタンプを実現するための主要な手段ではなく、用いられないかまたは補助的に用いられるのみである。
ISO/IEC IS 18014-2 Information technology--Security techniques--Time-stamping services--Part 2: Mechanisms producing independent tokens ISO/IEC IS 18014-3 Information technology--Security techniques--Time-stamping services--Part 3: Mechanisms producing linked tokens D. Pinkas et al.: Electronic signature formats for long term electronic signatures (RFC 3126), 2001, IETF.
タイムスタンプ・システムに対する要件として、以下の5つの条件が挙げられる。第1には、予想される時刻証明要求を処理するために十分な、タイムスタンプの生成のための処理能力を持つことである。第2には、公開鍵基盤とデジタル署名を用いる方式を採用する場合には、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため時刻証明書の有効期限延長のための処理が必要となるが、この有効期限延長を容易に実現する手順が存在しかつこの手順を実行するために十分な処理能力を持つことである。第3には、時刻証明要求を TSA に送信し時刻証明書を受信するクライアントは、時刻証明書の正当性を検証できることであるが、この際、時刻証明書の受信時に、遅滞なく即時に当該の時刻証明書の正当性を検証できることが望ましく、また発行された時刻証明書に付された時刻とその元となった時刻証明要求のTSAによる受付けの時刻が如何なる関係であるかが明確であることが望ましい。第4には、TSA におけるプログラムによる処理においては、プログラム上のエラーが逸早く検出可能で、エラーの影響が限定されるという意味でプログラム上のエラーに対して高い耐性を持つことである。第5には、TSAのサービスが災害やビジネス上の理由で継続不能となったとき、時刻証明書の正当性を保証する方法が存在することであるが、この際この保証方法を実行する上で、タイムスタンプ・サービスのクライアントに対する負荷が小さいことが望ましい。
非特許文献1で述べられている、TSAにおいて公開鍵基盤とデジタル署名を用いることによりタイムスタンプを生成する方式は、前述のタイムスタンプ・システムに対する要件に照らして、次のような問題点がある。まず上記第1の要件に関して、公開鍵基盤を前提としたタイムスタンプシステム900においてデジタル署名の処理量が大きいので、利用者30からタイムスタンプの要求が多く、一時的に集中するような場合には、TSA10に設けられた時刻証明装置は、正確な時刻情報を付して時刻証明を行うことが困難であるという問題がある。また、上記第2の要件に関しては、該方式は公開鍵基盤とデジタル署名を用いることによりタイムスタンプを生成する方式であるため、非特許文献3で述べられているように公開鍵の有効期限が切れる前にタイムスタンプの延長処理を行う必要があるが、この際の処理量が大きいこと、及びこの延長処理を行うためにタイムスタンプ受領者による手続きが必要となるという問題がある。
尚、上記の要件のうち第3、第4、第5については、該方式に大きな問題はない。まず上記第3の要件に関して、該方式は、デジタル署名の検証機能と公開鍵基盤の提供する公開鍵証明書の有効性検証機能により、受理した時刻証明書の有効性を即時に検証できるため問題はない。上記第4の要件に関して、該方式は、時刻証明書を発行する上でのプログラム上のエラーは、個々の時刻証明書の検証を行うことにより発見可能であり、ある時刻証明書を発行する上でのプログラム上のエラーはその時刻証明書のみに影響するという意味で、プログラム上のエラーに対して高い耐性を持ち問題はない。上記第5の要件に関して、該方式は、TSAのサービスが災害やビジネス上の理由で継続不能になっても、時刻証明書作成に用いられた署名鍵に対応する公開鍵証明書の、時刻証明を行った時点における有効性が CA (Certificate Authority)等により保証される限りは、非特許文献3で記載された再署名の方法等により時刻証明書の有効性を保持することが出来るため問題はない。
非特許文献2で述べられている、時刻証明要求の集約、リンク情報の生成、及びリンク情報の定期的な公表を利用する方式は、前述のタイムスタンプ・システムに対する要件に照らして、次のような問題点がある。上記第3の要件に関して、該方式においては、時刻証明要求を送付したクライアントは、受領した時刻証明書の正しさを、上記の公開間隔が終わるまで検証することが出来ないという意味で即時検証性がないという問題がある。また発行された時刻証明書に付された時刻は、所定の方法で集約される複数の時刻証明要求に対して同一の値とすることになっており、この時刻と、該複数の時刻証明要求に属する個々の時刻証明要求のTSAによる受付けの時刻が如何なる関係であるかが明確でないという問題点がある。上記第4の要件に関して、該方式においては、以下の意味でプログラム・ロジックに対する耐性が小さいといいう問題がある。即ち、ある時刻証明書をそれより前に発行された時刻証明書と結合するリンク情報を生成する処理のプログラム・ロジックが比較的複雑でエラーが混入する可能性があるが、もしエラーがあった場合には、上記の公開間隔が終わるまで検出することが困難で、かつエラーが検出されたときには当該の公開間隔に発行された全ての時刻証明書に影響を及ぼす可能性がある。上記第5の要件に関して、該方式においては、TSAのサービスが災害やビジネス上の理由で継続不能となったとき、あるクライアントがあるラウンドで受理した時刻証明書がある公表間隔で発行されたこと等、該時刻証明書の正当性を保証するためには、公表間隔(例えば1週間)の間に各ラウンドで発行した全ての時刻証明書の集約ハッシュ値を該クライアントは取得し保存する必要がある。この集約ハッシュ値の個数は、例えばラウンドが1秒で公表間隔が1週間のとき604800個となり、時刻証明書の正当性を保証するためにクライアントが取得・保存しなければならないデータの量が膨大になるという問題がある。
尚、上記の要件のうち第1、第2については、該方式に大きな問題はない。まず上記第1の要件に関して、該方式は、時刻証明書の発行に際して、処理量の多いデジタル署名ではなく、高速実行できるハッシュ関数を用いているため問題はない。また、上記第2の要件に関して、該方式は公開鍵基盤やデジタル署名を用いていないため、公開鍵証明書の有効期限による時刻証明書の延長処理を行う必要がないため問題はない。
本発明は、上記の課題を解決するためになされたものであり、公開鍵基盤に基づくタイムスタンプシステムにおいて二分木を利用することにより、前記5つの要件を満たすような時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体を提供することを目的とする。即ち、第1に、利用者から一時的に多くの時刻証明要求があっても、正確な時刻を付して時刻証明を行うことができ、第2に、時刻証明書の有効期限延長を容易に実現する手順が存在しかつこの手順を実行するために十分な処理能力を持ち、第3に、タイムスタンプ・サービスのクライアントは時刻証明書を受理したときに遅滞なく即時に当該の時刻証明書の正当性を検証でき、第4に、TSA におけるプログラムによる処理においては、プログラム上のエラーが逸早く検出可能でエラーの影響が限定されるという意味でプログラム上のエラーに対して高い耐性を持ち、第5に、TSAのサービスが災害やビジネス上の理由で継続不能となったとき、時刻証明書の正当性を保証する方法があり、この保証方法を実行する上で、TSAのサービスのクライアントに対する負荷が小さいような時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体を提供することを目的とする。
請求項記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置であって、前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻である前記第1の時刻情報との組み合わせである前記第2の要求を前記時刻証明要求受付装置から受信する受信手段と、前記第2の要求を受信した時刻である第2の時刻情報を提供する時刻情報提供手段と、前記第1の時刻情報と、前記第2の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、前記ルート値から部分署名を生成する部分署名生成手段と、前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信手段と、を有することを要旨とする。
請求項記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置であって、前記利用者装置から前記要求を受信する受信手段と、前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第1の時刻情報と、の組み合わせである前記第2の要求を前記複数の時刻証明装置それぞれに送信する送信手段と、前記複数の時刻証明装置それぞれが、前記第1の時刻情報と前記第2の要求を受信した時刻である第2の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信手段と、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信手段と、を有することを要旨とする。
請求項記載の本発明は、請求項記載の発明において、前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成手段は、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを要旨とする。
請求項記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置の時刻証明方法であって、前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻である前記第1の時刻情報との組み合わせである前記第2の要求を前記時刻証明要求受付装置から受信する受信ステップと、前記第2の要求を受信した時刻である第2の時刻情報を提供する時刻情報提供ステップと、前記第1の時刻情報と、前記第2の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、前記ルート値から部分署名を生成する部分署名生成ステップと、前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信ステップと、を有することを要旨とする。
請求項記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付方法であって、前記利用者装置から前記要求を受信する受信ステップと、前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第1の時刻情報と、の組み合わせである前記第2の要求を前記複数の時刻証明装置それぞれに送信する送信ステップと、前記複数の時刻証明装置それぞれが、前記第1の時刻情報と前記第2の要求を受信した時刻である第2の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信ステップと、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、を有することを要旨とする。
請求項記載の本発明は、請求項記載の発明において、前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成ステップは、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを要旨とする。
請求項記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置の時刻証明プログラムであって、前記要求に含まれる時刻証明対象データと、時刻証明要求受付装置が前記要求を受信した時刻である前記第1の時刻情報との組み合わせである前記第2の要求を前記時刻証明要求受付装置から受信する受信ステップと、前記第2の要求を受信した時刻である第2の時刻情報を提供する時刻情報提供ステップと、前記第1の時刻情報と、前記第2の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、前記ルート値から部分署名を生成する部分署名生成ステップと、前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信ステップと、を前記時刻証明装置に実行させることを要旨とする。
請求項記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付プログラムであって、前記利用者装置から前記要求を受信する受信ステップと、前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第1の時刻情報と、の組み合わせである前記第2の要求を前記複数の時刻証明装置それぞれに送信する送信ステップと、前記複数の時刻証明装置それぞれが、前記第1の時刻情報と前記第2の要求を受信した時刻である第2の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信ステップと、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、を前記時刻証明要求受付装置に実行させることを要旨とする。
請求項記載の本発明は、請求項記載の発明において、前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成ステップは、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを要旨とする。
請求項10記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻情報である前記第1の時刻情報と、の組み合わせである前記第2の要求を前記複数の時刻証明装置それぞれに送信する送信手段と、前記複数の時刻証明装置それぞれが、前記第1の時刻情報と前記第2の要求を受信した時刻である第2の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信手段と、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、前記第1の時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する前記時刻証明要求受付装置から前記時刻証明書および前記補完情報を受信する受信ステップと、前記時刻証明要求受付装置に送信した前記要求要求内の時刻証明対象データと前記時刻証明書に含まれる前記時刻情報とを連接した連接値のダイジェストと、前記時刻証明書に含まれる前記リーフに割り当てられた前記ダイジェストと、が一致するか否かを検証する第1の検証ステップと、前記時刻証明書に含まれる前記全体署名が前記時刻証明書に含まれる、前記リーフに割り当てられた前記ダイジェストおよび前記補完情報から計算された前記二分木のルート値に対して為されたか否かを検証する第2の検証ステップと、を前記利用者装置に実行させることを要旨とする。
請求項11記載の本発明は、請求項乃至10のいずれか1項に記載されたプログラムを記録したプログラム記録媒体であることを要旨とする。
本発明によれば、公開鍵基盤に基づくタイムスタンプシステムにおいて、時刻証明要求を二分木を利用してまとめ、そのまとめたルート値にデジタル署名を施すので、利用者装置から一時的に多くの時刻証明要求があっても、正確な時刻を付した時刻証明をすることができる。
また、時刻証明書の有効期限延長を容易に実現することができ、タイムスタンプ・サービスのクライアントは時刻証明書を受理したときに遅滞なく即時に当該の時刻証明書の正当性を検証できる。また発行された時刻証明書に付された1つまたは2つの時刻は、その元となった時刻証明要求がTSAに受付けられた時刻そのものであるか、或いは受付けられた時刻の後のある時刻であるか、 或いは受付けられた時刻の前および後の2つの時刻であり、時刻証明書に付された時刻と、時刻証明の受付けられた時刻の関係を明確にすることができる。
さらに、TSA におけるプログラムによる処理においては、プログラム上のエラーが逸早く検出可能でエラーの影響が限定されるという意味でプログラム上のエラーに対して高い耐性を持つことができ、TSAのサービスが災害やビジネス上の理由で継続不能となったとき、時刻証明書の正当性を保証する方法があり、この保証方法を実行する上で、TSAのサービスのクライアントに対する負荷を小さくすることができる。
以下、本発明の実施の形態を図面を用いて説明する。
<第1の実施の形態>
図1は、本発明の第1の実施の形態に係るタイムスタンプシステム100のシステム構成図である。同図に示すタイムスタンプシステム100は、TSA10に設けられた時刻証明装置1、TA20に設けられ、タイムスタンプ生成に使用される時刻情報を提供する時刻情報提供装置2、利用者30が利用する複数のクライアント装置3i(iは自然数)、及び以上の各装置を相互に接続する、例えば、インターネット網、電話回線網などにより構成される、コンピュータネットワーク4を備えており、時刻証明装置1がクライアント装置3iからのタイムスタンプ要求(時刻証明要求)に応えて、タイムスタンプ(時刻証明書)をクライアント装置3iに返信するようになっている。
時刻証明装置1は、コンピュータネットワーク4を介して時刻情報提供装置2およびクライアント装置3iとデータを送受信する送受信部11、複数のクライアント装置3iからの時刻証明要求に含まれるデータとして送信されたメッセージダイジェスト(メッセージから作成されるハッシュ値)を二分木を用いてまとめる時刻証明要求まとめ部12、時刻証明書を作成する際に時刻情報提供装置2から時刻情報を取得する時刻情報取得部13、時刻証明要求まとめ部12でまとめられたメッセージダイジェストに対して時刻情報取得部12で取得した時刻情報を付して時刻証明書を作成する時刻証明作成部14、および時刻証明作成部14で作成された時刻証明書を記憶する時刻証明書記憶部15を具備している。
ここで、時刻証明要求まとめ部12の二分木を用いて時刻証明要求をまとめる機能について、説明する。図2は、本実施の形態の二分木の一例を示す図である。同図に示す二分木は、予め定められた一定時間(例えば、1秒、このインターバルをラウンドという。)に1つ用意されるものであり、二分木のリーフ(レベル0)には、ラウンド内に複数のクライアント装置3iから受け付けた時刻証明要求に含まれるメッセージダイジェストを順次左側から割り当てるようになっている。尚、二分木の構成(高さ(レベルで表現する)、幅(番号で表現する))は、クライアント装置3iからの時刻証明要求の数に応じて変化するものであるため、本実施の形態における二分木は動的に構成されるものであるが、以下においては、図2に示すように、16のリーフを有する二分木の場合について説明し、動的な二分木の構成に関しては、すべての実施の形態に共通の機能であるため、後述することとする。
二分木の各ノード(リーフを除く)に割り当てられる値は以下のように計算される。二分木の親における割当値は、左側の子の割当値H’と右側の子の割当値H”を連接(ビット列とビット列の結合)して、その結果のハッシュ値を計算することにより計算されるものであり、これを h(H’‖ H”)と表す。このようにして下位のレベルの割当値から上位のレベルの割当値を計算して、最終的に最上位のレベル(ルート)の割当値(ルートハッシュ値)Hを求めると、該ルートハッシュ値Hが、時刻証明作成部14においてデジタル署名の対象となるデータである。ここで、レベルj、番号iに割り当てられた値を h(j, i)と表して、図2に示す具体例を用いて、ルートハッシュ値Hの算出方法を説明する。
あるクライアント装置3iから送信された時刻証明要求に含まれるメッセージダイジェストが h(0,5)であるとき、ルートハッシュ値Hは、h(0,5)にh(0,4)を左から連接しその結果にハッシュ関数 h を適用して、ハッシュ値 h1 を計算し、該ハッシュ値 h1 にh (1,3) を右側から連接しその結果にハッシュ関数 h を適用してハッシュ値 h2 を計算し、該ハッシュ値 h2 に h(2,0) を左側から連接しその結果にハッシュ関数 h を適用してハッシュ値 h3 を計算し、さらに該ハッシュ値 h3 にh(3,1)を右側から連接しその結果にハッシュ関数 h を適用してハッシュ値 h4(=H)を計算することにより、求めることができる。即ち、
H=h(h(h(2,0)‖h(h(h(0,4)‖h(0,5))‖h(1,3))))‖h(3,1)) である。ここで、例えば、h(0,4)を左(右)側から連接する場合を(左(右), h(0,4))のように表し、h(0,5)の値から二分木のルートハッシュ値Hを計算するのに、必要なデータの集合を連接する方向、および連接する順序も含めて表すと、((左, h(0,4))、(右, h(1,3))、(左, h(2,0))、(右, h(3,1)))となるが、以後、このデータの集合を、二分木におけるh(0,4)の補完データとよぶ。尚、補完データは、二分木のリーフに割り当てられる時刻証明要求ごとに作成されるもので、HKi(iは自然数)と表す。
また、時刻証明作成部14は、このようにして二分木のルートハッシュ値Hが時刻証明要求まとめ部12において作成されると、このルートハッシュ値Hにそれぞれのラウンドのまとめ処理が終了したときの時刻である現ラウンド終了時刻(例えば、1秒間隔で付される)tを付して署名鍵(秘密鍵)SKを用いてデジタル署名を生成し、該デジタル署名 sig(SK,H‖t)、二分木のルートハッシュ値H、時刻tを含む時刻証明書 TST(H, t) を作成するようになっている。従って、同一ラウンド内において作成される時刻証明書 TST(H, t)は、同一ラウンド内に受け付けた複数の時刻証明要求全てに対して、同一のものとなり、当該のラウンドにおいて受付けられた全ての時刻証明要求の受付け時刻より後である時刻tを含むものとなっている。
クライアント装置3iは、コンピュータネットワーク4を介して時刻証明装置1とデータを送受信する送受信部31、デジタル文書などのメッセージを記憶しているメッセージ記憶部32、メッセージ記憶部32に記憶されているメッセージの時刻証明要求を行う時刻証明要求部33、時刻証明装置1からの時刻証明要求に対する時刻証明書 TST(H, t)を記憶する時刻証明書記憶部34、および時刻証明書 TST(H, t)を検証する時刻証明検証部35を具備している。
尚、以上の各装置は、少なくとも演算機能及び制御機能を備えた中央処理装置(CPU:Centra1 Processing Unit)、プログラムやデータを収納する機能を有するRAM(Random Access Memory)等からなる主記憶装置(メモリ)を有する電子的な装置から構成されている。
このうち、時刻証明装置1の時刻証明要求まとめ部12、時刻情報取得部13および時刻証明作成部14、並びにクライアント装置3iの時刻証明要求部33および時刻証明検証部35の処理は、上記CPUによる演算制御機能を具体的に示したものに他ならない。また、時刻証明装置1の時刻証明書記憶部15、並びにクライアント装置3iのメッセージ記憶部32および時刻証明記憶部34は、上記主記憶装置の機能を備えたものである。
次に、以上の構成を有するタイムスタンプシステム100における時刻証明方法、および時刻証明検証方法を図3および図4を用いて説明する。ここで、図3は、時刻証明装置1が時刻証明書 TST(H, t) を作成する動作を説明するフローチャートであり、図4は、クライアント装置3iが時刻証明書 TST(H, t)の検証を行う動作を説明するフローチャートである。
まず、時刻証明装置1の動作について説明する。クライアント装置3iから時刻証明装置1の送受信部11を介して時刻証明対象のメッセージダイジェストを含む時刻証明要求を受信すると、時刻証明要求まとめ部12は、このメッセージダイジェストを二分木のリーフに割り当てる(ステップS11,S12)。そして、上記動作は、同一ラウンド内において複数のクライアント装置3iから受信した時刻証明要求に対して、順次行われ、一定時間経過後ラウンドが終了すると、時刻証明要求まとめ部12がそれぞれのリーフに割り当てられたメッセージダイジェストから二分木のルートハッシュ値Hを計算する(ステップS13,S14)。
次に、時刻証明作成部14が、このルートハッシュ値Hにその証明を行う日時を示す時刻tを連接し、その連接した結果に対して署名鍵 SK を用いてデジタル署名sig(SK,H‖t) を生成する(ステップS15)。そして、このデジタル署名 sig(SK, H‖t)、時刻t、ルートハッシュ値Hを含む時刻証明書 TST(H, t)を作成し、さらに、受信したそれぞれの時刻証明要求に対応する二分木の補完データHKiを取得する(ステップS16,S17)。
最後に、時刻証明作成部14は、送受信部11を介して、時刻証明書TST(H,t)および補完データHKiを複数のクライアント装置3iに送信する(ステップS18)。
これにより、時刻証明装置1は、二分木を用いて時刻証明要求をまとめ、このまとめた値に対してデジタル署名を生成して時刻証明書を発行するので、クライアント装置3iから大量の時刻証明要求が短い期間に集中的にあったとしても、正確な時刻を付した時刻証明を行うことができる。
次に、クライアント装置3iの動作について説明する。クライアント装置3iが送受信部31を介して、時刻証明書TST(H,t)および補完データHKiを受信すると、時刻証明検証部35は、以下に示すように検証処理を行う(ステップS21)。
まず、時刻証明書TST(H,t)に含まれているルートハッシュ値Hが、クライアント装置3iが時刻証明装置1に送信した時刻証明要求に含まれるメッセージダイジェストと補完データHKiとから計算した二分木のルートハッシュ値Hcal に一致するかどうかを検証する(ステップS22,S23)。
次に、署名鍵SKに対応する公開鍵 PK を用いて、デジタル署名 sig(SK, H‖t)が署名対象のデジタルデータ H‖t に対して為されたものであることを検証する(ステップS24,S25)。
以上の検証において、検証に成功すれば、時刻証明によって示される時刻に時刻証明要求データは存在していたこと、時刻証明が付与された時刻以降、そのデータは改ざんされていないことを証明することができる(ステップS26)。一方、検証に失敗すれば、データもしくはデジタル署名が改ざんされていることを確認することができる(ステップS27)。これにより、時刻証明装置1が発行した時刻証明書TST(H, t) を的確に検証でき、時刻情報やデータの真正性を第三者に対しても証明することが出来るようになる。
尚、第1の実施の形態においては、あるラウンドのルート値に割当てる時刻として、当該のラウンドのまとめ処理が終了したときの時刻である現ラウンド終了時刻を用いている。この方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が現ラウンド終了時刻より前(時間的に過去)であることが証明される。
第1の実施の形態の第1の変形方式として、当該のラウンドの直前のラウンドのまとめ処理が終了したときの時刻を前ラウンド終了時刻と定義し、上記実施の形態における現ラウンド終了時刻の代りに、前ラウンド終了時刻と現ラウンド終了時刻の組を用いることにしてもよい。図18にこの場合の時刻証明書の一例を示す。この際、直前のラウンドのルート値(これを直前ルート値と呼ぶ)を、現在のラウンドの二分木の所定のリーフに割当てるようにしてもよい。
図19と図20に、直前ルート値を現在のラウンドの二分木の所定のリーフa0に割当てるための2つの方法を示す。
第1の方法は、図19に示すように、リーフa0を現在のラウンドのルートの子ノードとして、現在のラウンドの二分木に含める方法である(リーフa0のレベルとクライアント装置3iからの要求が割り当てられるリーフのレベルは異なる)。
第2の方法は、図20に示すように、リーフa0を現在のラウンドの二分木のレベル0の一番左のリーフとする方法である(リーフa0のレベルとクライアント装置3iからの要求が割り当てられるリーフのレベルは同じである)。
この場合には、補完情報には、直前ルート値、及び現在のラウンドの二分木における補完情報が含まれる(このように情報を加えた結果である補完情報を拡張補完情報と呼ぶ)。図21に拡張補完情報の一例を示す。尚、この拡張補完情報に含まれる直前ルート値とその現在のラウンドの二分木における補完情報から現在のラウンドのルート値が計算できることを検証すること(これを第3の検証と呼ぶ)により、直前のラウンドにおける二分木の構成が終了したのちに、現在のラウンドの二分木の構成が開始されたことを証明することができる。
この第1の変形方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が現ラウンド終了時刻より前(時間的に過去)であること及び前ラウンド終了時刻より後(時間的に未来)であることが証明される。
第1の実施の形態の第2の変形方式として、上記実施の形態における現ラウンド終了時刻の代りに、前ラウンド終了時刻を用いることにしてもよい。この際、直前ルート値を現在のラウンドの二分木の所定のリーフに割当ててもよく、その方法は上記第1の変形方式と同様である。また、第1の変形方式におけると同様に、拡張補完情報を用いることにしてもよい。
この第2の変形方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が前ラウンド終了時刻より後(時間的に未来)であることが証明される。
また、上記実施の形態においては、リーフに割り当てる値を、クライアント装置 3iから送信される時刻証明要求に含まれるメッセージダイジェストとしたが、他のクライアント装置 3iに自己の送信したメッセージダイジェストを知られないようにするために、送信したメッセージダイジェストに対して適当な乱数をキーとしたキー付きハッシュ値を計算して、この値をリーフに割り当てる値とし、データの守秘性を高めるようにしてもよい。この場合には、時刻証明装置1からクライアント装置 3i に送信されるデータに、キーとなる乱数が追加されることになる。
本実施の形態では、時刻証明書の発行のために公開鍵基盤とデジタル署名を用いている(具体的には、図3のステップS15では、署名鍵 SK を用いたデジタル署名を生成し、時刻証明書 TST(H, t) はそれを含んだものとなっている)。従って、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため、時刻証明書の有効性をこの公開鍵証明書の有効期限を越えて保持するためには、時刻証明書の有効期限延長のための処理が必要となる。本実施の形態では、ある1つのラウンドに受け付けられた複数の時刻証明要求に対して、同一のデジタル署名を用いて時刻証明書を発行する。従って、1つのラウンドで発行された時刻証明書の有効期限延長のための処理を、誰か一人(TSA、あるいはクライアントの一人、あるいはそれ以外の第三者)が実行すれば、当該のラウンドに時刻証明要求を出した全てのクライアントの受領する時刻証明書の有効期限延長処理が実現されることになる。従って、時刻証明書を受領した各クライアントが、各々、時刻証明書の有効期限延長処理をしなければならない従来手法(非特許文献1に記載のもの等)に比較して、時刻証明書の有効期限延長処理のためのクライアントの負荷および、該延長処理を行う機関の負荷が著しく軽減されることになる。
以上、第1の実施の形態のタイムスタンプシステム100によれば、クライアント装置 3iから時刻証明要求を受け付けた時刻証明装置1が、二分木を用いて時刻証明要求をまとめ、このまとめた値に対して時刻情報を付したデジタル署名を生成して時刻証明書を発行するので、クライアント装置3iから大量の時刻証明要求が短い期間に集中する場合であっても、正確な時刻情報を付した時刻証明を行うことができる。また、二分木を利用することにより、時刻証明装置1がクライアント装置 3iに送信する時刻証明書および補完データのデータ量を少なくすることができるので、通信負荷を軽減することができる。さらに、時刻証明書の延長処理が必要になった場合には、その処理のためのクライアントの負荷および該延長処理を行う機関の負荷を従来手法に比較して著しく軽減することが出来る。
<第2の実施の形態>
図5は、本発明の第2の実施の形態に係るタイムスタンプシステム200のシステム構成図である。同図に示すタイムスタンプシステム200は、要求受付装置5、TSA10に設けられた時刻証明装置6、TA20に設けられ、タイムスタンプ生成に使用される時刻情報を提供する時刻情報提供装置2、利用者30が利用する複数のクライアント装置 3i(iは自然数)、及び以上の各装置を相互に接続する、例えば、インターネット網、電話回線網などにより構成される、コンピュータネットワーク4を備えており、要求受付装置5がクライアント装置3iからのタイムスタンプ要求(時刻証明要求)を受け付けて、受け付けたタイムスタンプ要求をまとめて時刻証明装置6に送信し、時刻証明装置6がまとめられたタイムスタンプ要求に応えて、タイムスタンプ(時刻証明書)を生成し、要求受付装置5を介してクライアント装置3iに返信するようになっている。
即ち、タイムスタンプシステム200における要求受付装置5および時刻証明装置6は、タイムスタンプシステム100の時刻証明装置1に相当するものであり、時刻証明装置1の時刻証明要求まとめ部12の機能を要求受付装置5に、時刻情報取得部13および時刻証明作成部14の機能を時刻証明装置6に機能分散して、分散配置したものである。または、既存の時刻証明装置6を利用して、要求受付装置5を加えることにより、タイムスタンプシステム100の時刻証明装置1に相当するシステムを実現するものと見ることも出来る。尚、本実施の形態においては、第1の実施の形態と異なる構成及び機能のみ説明し、その他の構成及び機能に関しては同一部分には同一符号を付して説明を省略する。
要求受付装置5は、コンピュータネットワーク4を介してクライアント装置3iおよび時刻証明装置6とデータを送受信する送受信部51、複数のクライアント装置3iから送信された時刻証明要求に含まれるメッセージダイジェストを二分木を用いてまとめる時刻証明要求まとめ部12を具備している。
時刻証明装置6は、コンピュータネットワーク4を介して時刻情報提供装置2、および要求受付装置5とデータを送受信する送受信部61、時刻証明書を作成する際に時刻情報提供装置2から時刻情報を取得する時刻情報取得部13、時刻証明要求まとめ部12でまとめられたメッセージダイジェストに対して時刻情報取得部12で取得した時刻情報を付して時刻証明書を作成する時刻証明作成部14、および時刻証明作成部14で作成された時刻証明書を記憶する時刻証明書記憶部15を具備している。
尚、第1の実施の形態と同様に、以上の各装置は、少なくとも演算機能及び制御機能を備えた中央処理装置(CPU:Centra1 Processing Unit)、プログラムやデータを収納する機能を有するRAM(Random Access Memory)等からなる主記憶装置(メモリ)を有する電子的な装置から構成されている。
また、タイムスタンプシステム200における時刻証明方法、および時刻証明検証方法は、タイムスタンプシステム100と同様であり、その動作は図3および図4に示す通りであるため、フローチャートを用いての説明は省略するが、タイムスタンプシステム200内のクライアント装置3i、要求受付装置5、および時刻証明装置6間の関係を図6を用いて説明する。
図6によれば、クライアント装置 3i から時刻証明対象のメッセージダイジェストを含む時刻証明要求が送信されると、要求受付装置5は、一定時間(例えば、1秒)に受け付けたメッセージダイジェストをもとに二分木を構成し、該二分木のルートハッシュ値Hを計算し、該ハッシュ値Hをまとめられた時刻証明要求として時刻証明装置6に送信する。次に、時刻証明装置6は、時刻証明要求を受信したとき時刻tを取得して、受信したハッシュ値Hに対する時刻証明書 TST(H, t)を作成し、該時刻証明書 TST(H, t)を要求受付装置5に送信する。時刻証明書 TST(H, t)を受信した要求受付装置5は、クライアント装置 3iから受信した時刻証明要求に対応する二分木の補完データHKiを取得して、時刻証明書 TST(H, t)および補完データHKiをクライアント装置3iに送信する。
尚、上記第2の実施の形態においては、あるラウンドのルート値Hに割当てる時刻として、当該のラウンドのまとめ処理が終了したのち該ラウンドのルート値を含む時刻証明要求を時刻証明装置6に送付し、時刻証明装置6が該時刻証明要求を受信したときの時刻である現ラウンド終了時刻を用いている。この方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が現ラウンド終了時刻より前(時間的に過去)であることが証明される。
第2の実施の形態の第1の変形方式として、図22に示すように、要求受付装置5’が当該のラウンドの直前のラウンドにおいて時刻証明装置により生成された時刻証明書(これを直前ラウンド時刻証明書という)を記憶する手段(直前ラウンド時刻証明書記憶部 52)を持ち、当該のラウンドのルート値Hと直前ラウンド時刻証明書に含まれる時刻証明装置6によって付された時刻t0(これを前ラウンド終了時刻という)を組合わせたデータH‖t0(これを前ラウンド終了時刻付きルート値という)を時刻証明対象データとして時刻証明装置6に対する時刻証明要求に含め、時刻証明装置6はこの時刻証明対象データH‖t0に対して、要求受信時の時刻t1を付与してデジタル署名 sig(SK, H‖t0‖t1) を付し時刻証明書を生成してもよい。このように生成された時刻証明書を TST(H, t0, t1) と表す。図23にこの場合の時刻証明書の一例を示す。
また、第1の実施の形態の第1の変形方式におけると同様に、直前のラウンドのルート値(これを直前ルート値と呼ぶ)を、現在のラウンドの二分木の所定のリーフに割当て、補完情報には、直前ルート値とその現在のラウンドの二分木における補完情報を含めるようにしてもよい(このように情報を加えた結果である補完情報を拡張補完情報と呼ぶ)。また拡張補完情報に含まれる直前ルート値とその現在のラウンドの二分木における補完情報から現在のラウンドのルート値が計算できることを検証すること(これを第3の検証と呼ぶ)により、直前のラウンドにおける二分木の構成が終了したのちに、現在のラウンドの二分木の構成が開始されたことを証明することができる。
第1の変形方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が現ラウンド終了時刻より前(時間的に過去)であること及び前ラウンド終了時刻より後(時間的に未来)であることが証明される。
第2の実施の形態の第2の変形方式として、図24に示すように、時刻証明装置は、署名対象データに対して時刻情報を付し部分署名を生成する複数の部分時刻証明装置16j(jは自然数)からなる分散時刻証明装置としてもよい。この変形方式においては、要求受付装置5”は、複数の部分署名から全体署名を生成する全体署名作成部53を具備する必要がある。
第2の変形方式においては、複数ある部分時刻証明装置のうちの所定の数のものが一致した時刻を付すときのみ、全体署名が作成できることになり、時刻証明書に付される時刻の信頼性を向上させることが出来る。
本実施の形態でも、第1の実施の形態と同様に、時刻証明書の発行のために公開鍵基盤とデジタル署名を用いている(具体的には、図5の時刻証明装置6が時刻証明書 TST(H, t) を生成するときデジタル署名を生成し該時刻証明書に含める)。従って、従って、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため、時刻証明書の有効性をこの公開鍵証明書の有効期限を越えて保持するためには、時刻証明書の有効期限延長のための処理が必要となる。本実施の形態においても、第1の実施の形態と同様に、ある1つのラウンドに受け付けられた複数の時刻証明要求に対して、同一のデジタル署名を用いて時刻証明書を発行する。従って、第1の実施の形態におけると同様に、1つのラウンドで発行された時刻証明書の有効期限延長のための処理を、誰か一人(TSA、あるいはクライアントの一人、あるいはそれ以外の第三者)が実行すれば、当該のラウンドに時刻証明要求を出した全てのクライアントの受領する時刻証明書の有効期限延長処理が実現されることになる。従って、時刻証明書を受領した各クライアントが、各々、時刻証明書の有効期限延長処理をしなければならない従来手法(非特許文献1に記載のもの等)に比較して、時刻証明書の有効期限延長処理のためのクライアントの負荷および、該延長処理を行う機関の負荷が著しく軽減されることになる。
以上、第2の実施の形態のタイムスタンプシステム200によれば、第1の実施の形態のタイムスタンプシステム100と同様の効果を得ることができるが、これに加えて、サーバ側の機能を要求機能装置5と時刻証明装置6に機能分散しているため、TSA10に設けられた既存の時刻証明装置6をそのまま利用しつつ、要求受付装置5を新たに設けるだけで、簡単にタイムスタンプシステム200を構築することができるという効果がある。さらに、時刻証明書の延長処理が必要になった場合には、その処理のためのクライアントの負荷および該延長処理を行う機関の負荷を従来手法に比較して著しく軽減することが出来る。
<第3の実施の形態>
図7は、本発明の第3の実施の形態に係るタイムスタンプシステム300のシステム構成図である。同図に示すタイムスタンプシステム300は、TSA10に設けられた時刻証明装置7、TA20に設けられ、タイムスタンプ生成に使用される時刻情報を提供する時刻情報提供装置2、利用者30が利用する複数のクライアント装置303i(iは自然数)、及び以上の各装置を相互に接続する、例えば、インターネット網、電話回線網などにより構成される、コンピュータネットワーク4を備えており、時刻証明装置1がクライアント装置3iからのタイムスタンプ要求(時刻証明要求)に応えて、タイムスタンプ(時刻証明書)を返信するようになっている。
タイムスタンプシステム300は、タイムスタンプシステム100と同様のシステム構成をとっているが、時刻証明装置7が、信頼できる第3者機関(TTP; Trusted Third Party)として付与する時刻値について信頼されている場合を前提としており、タイムスタンプシステム100と比べて、より精度の高い時刻値を付与することができるようになっている。尚、本実施の形態においても、上記実施の形態と異なる構成及び機能のみ説明し、その他の構成及び機能に関しては同一部分には同一符号を付して説明を省略する。
時刻証明装置7は、コンピュータネットワーク4を介して時刻情報提供装置2およびクライアント装置303iとデータを送受信する送受信部11、時刻情報提供装置2から時刻証明書に使用される時刻情報を取得する時刻情報取得部13、クライアント装置303iからの時刻証明要求として送信されたメッセージダイジェストに時刻情報取得部12で取得した時刻情報を付与するとともに二分木を用いてまとめる時刻証明要求まとめ部72、時刻証明要求まとめ部72でまとめられたメッセージダイジェストに対して生成したデジタル署名を含む時刻証明書を作成する時刻証明作成部74、および時刻証明作成部74で作成された時刻証明書を記憶する時刻証明書記憶部15を具備している。
ここで、時刻証明要求まとめ部72の二分木を用いて時刻証明要求をまとめる機能について説明する。図8は、本実施の形態の二分木の一例を示す図である。同図に示す二分木は、予め定められた一定時間(例えば、1秒、このインターバルをラウンドという。)に1つ用意されるものであり、二分木のリーフ(レベル0)には、ラウンド内に複数のクライアント装置303iから受け付けたメッセージダイジェストにシーケンス番号、時刻を連接した結果のハッシュ値を順次左側から割り当てるようになっている。ここで、上記連接されるシーケンス番号は、受信したメッセージダイジェストに対するシーケンス番号であり、上記連接される時刻は、メッセージダイジェストを受け付けた時刻で、この時刻は時刻情報取得部12から提供されるものである。従って、本実施の形態においては、第1の実施の形態においてラウンドに対して付与される時刻よりも、より詳細な時刻を付与することが可能となっている。尚、二分木の構成(高さ(レベルで表現する)、各高さのノード数)は、クライアント装置303iからの時刻証明要求の数に応じて変化するものであるため、本実施の形態における二分木も動的に構成されるものであるが、以下においては、図8に示すように、16のリーフを有する二分木の場合について説明する。
二分木の各ノード(リーフを除く)に割り当てられる値は、第1の実施の形態と同様に、左側の子の割当値H’と右側の子の割当値H”を連接(ビット列とビット列の結合)して、ハッシュ値を計算することにより、親の割当値は求められるものであり、これを h(H’‖H”)と表す。このようにして下位のレベルの割当値から上位のレベルの割当値を計算して、最終的に最上位のレベル(ルート)の割当値(ルートハッシュ値)H を求めると、該ルートハッシュ値 H が、時刻情報証明部74においてデジタル署名の対象となるデータである。以後、第nラウンドにおいてm番目に受け付けたメッセージダイジェストを y(n, m)、シーケンス番号を s(n, m)、時刻を t(n, m)、リーフに割り当てられるハッシュ値を H(n; m)(=h(y(n,m) ‖s(n,m) ‖t(n,m)))と表し、また第nラウンドにおいて、レベル j の左から i 番目(但し一番左を0番とする)のノードの割当値を h(n; j, i) と表して、ルートハッシュ値Hの算出方法を、図8に示す具体例を用いて説明する。
あるクライアント装置3iから送信されたメッセージダイジェストが y(n,4)であるとき、リーフに割り当てられるハッシュ値 H(n;4)は、H(n;4)=h(y(n,4)‖s(n,4)‖t(n,4))である。これにより、ルートハッシュ値 H(n; 4, 0)は、H(n; 4) に H(n; 5)を右から連接しその結果にハッシュ関数 h を適用して、ハッシュ値h1を計算し、該ハッシュ値 h1 にH(n;1, 3) を右側から連接しその結果にハッシュ関数 h を適用してハッシュ値 h2 を計算し、該ハッシュ値 h2 に H(n; 2, 0) を左側から連接しその結果にハッシュ関数 h を適用してハッシュ値 h3 を計算し、さらに該ハッシュ値 h3 に H(n; 3, 1) を右側から連接しその結果にハッシュ関数 h を適用してハッシュ値 h4(=H)を計算することにより、求めることができる。この場合、H(n; 4)の二分木における補完データは、
((右,H(n;5)), (右,H(n;1,3)), (左, H(n; 2, 0)), (右, H(n; 3, 1)))
となる。
また、時刻証明作成部74は、このようにして二分木のルートハッシュ値 H(n; 4, 0) が時刻証明要求まとめ部72において作成されると、このルートハッシュ値 H(n; 4, 0) に署名鍵 SK を用いてデジタル署名を生成し、デジタル署名 sig(SK,H(n; 4, 0))、シーケンス番号 s(n, m) 、時刻 t(n, m)、およびリーフ割り当てられたハッシュ値 H(n; m) を含む時刻証明書 TST(H, t(n, m)) を作成するようになっている。従って、本実施の形態において作成される時刻証明書 TST(H, t(n, m)) は、第1の実施の形態の時刻証明書 TST(H, t)と異なり、同一ラウンド内においても時刻証明要求ごとに異なる時刻証明書 TST(H, t(n, m)) となっている。
クライアント装置303iは、コンピュータネットワーク4を介して時刻証明装置7とデータを送受信する送受信部31、デジタル文書などのメッセージを記憶しているメッセージ記憶部32、メッセージ記憶部32に記憶されているメッセージの時刻証明要求を行う時刻証明要求部33、時刻証明装置7からの時刻証明要求に対する時刻証明書 TST(H, t(n, m))を記憶する時刻証明書記憶部34、および時刻証明書 TST(H, t(n, m))を検証する時刻証明検証部36を具備している。
尚、以上の各装置は、少なくとも演算機能及び制御機能を備えた中央処理装置(CPU:Centra1 Processing Unit)、プログラムやデータを収納する機能を有するRAM(Random Access Memory)等からなる主記憶装置(メモリ)を有する電子的な装置から構成されており、時刻証明装置7の時刻証明要求まとめ部72および時刻証明作成部74、並びにクライアント装置303iの時刻証明検証部36の処理は、上記CPUによる演算制御機能を具体的に示したものに他ならない。
次に、以上の構成を有するタイムスタンプシステム300における時刻証明方法、および時刻証明検証方法を図9および図10を用いて説明する。ここで、図9は、時刻証明装置7が時刻証明書 TST(H, t(n, m))を作成する動作を説明するフローチャートであり、図10は、クライアント装置303i が時刻証明書 TST(H, t(n, m)) の検証を行う動作を説明するフローチャートである。
まず、時刻証明装置7の動作について説明する。クライアント装置3iから時刻証明装置7の送受信部11を介して時刻証明対象のメッセージダイジェストを含む時刻証明要求を受信すると、時刻証明要求まとめ部72は、このメッセージダイジェスト y(n, m) に、シーケンス番号 s(n ,m) および時刻 t(n, m) を連接しその結果にハッシュ関数を適用して作成したハッシュ値 H(n; m) を二分木のリーフに割り当てる(ステップS31,S32,S33)。そして、上記動作は、同一ラウンド内において複数のクライアント装置303iから受信した時刻要求に対して、順次行われ、一定時間経過後ラウンドが終了すると、時刻証明要求まとめ部72がそれぞれのリーフに割り当てられたハッシュ値 H(n; m)から二分木のルートハッシュ値Hを計算する(ステップS34,S35)。
次に、時刻証明作成部74が、このルートハッシュ値Hに対して署名鍵 SK を用いてデジタル署名 sig(SK, H)を生成する(ステップS36)。そして、このデジタル署名 sig(SK, H)、シーケンス番号 s(n, m)、時刻 t(n, m)、リーフに割り当てられたハッシュ値 H(n; m) を含む時刻証明書 TST(H, t(n, m))を作成し、さらに、受信したそれぞれの時刻証明要求に対応する二分木の補完データ HKi を取得する(ステップS37,S38)。
最後に、時刻証明作成部74は、送受信部11を介して、時刻証明書 TST(H, t(n, m))、および該当する二分木の補完データ HKiをクライアント装置303iに送信する(ステップS39)。
これにより、時刻証明装置7は、時刻を付与した時刻証明要求を二分木を用いてまとめ、このまとめた値に対してデジタル署名を生成して時刻証明書を発行するので、クライアント装置303iから大量の時刻証明要求が短い期間に集中的にあったとしても、正確な時刻を付した時刻証明をより精度高く行うことができる。
次に、クライアント装置303iの動作について説明する。クライアント装置303iが送受信部31を介して、時刻証明書 TST(H, t(n, m))、および二分木の補完データ HKi を受信すると、時刻証明検証部36は、以下に示すように検証処理を行う(ステップS41)。
まず、クライアント装置303iが時刻証明装置7に送信したメッセージダイジェスト y(n,m)と、時刻証明書 TST(H, t(n, m))に含まれているシーケンス番号s(n,m) および時刻 t(n,m)と、からリーフに割り当てられたハッシュ値 Hcal(n; m)を計算し、このハッシュ値 Hcal(n; m)が、時刻証明書 TST(H, t(n, m)) に含まれている、リーフに割り当てられたハッシュ値 H(n ;m)と一致するか否かを検証する(ステップS42,S43)。
次に、署名鍵SKに対応する公開鍵 PK を用いてデジタル署名 sig(SK, H)が、時刻証明書 TST(H, t(n, m)) に含まれている、リーフに割り当てられたハッシュ値 H(n;m)と、補完データHKiから計算した二分木のルートハッシュ値 Hcal に対して為されたものであることを検証する(ステップS45,S46)。
以上の検証において、検証に成功すれば、時刻証明によって示される時刻に時刻証明要求データは存在していたこと、時刻証明が付与された時刻以降、そのデータは改ざんされていないことを証明することができる(ステップS47)。一方、検証に失敗すれば、データもしくはデジタル署名が改ざんされていることを確認することができる(ステップS48)。これにより、時刻証明装置7が発行した時刻証明書TST(H, t(n, m))を的確に検証でき、時刻情報やデータの真正性を第三者に対しても証明することが出来るようになる。
本実施の形態でも、第1の実施の形態と同様に、時刻証明書の発行のために公開鍵基盤とデジタル署名を用いている(具体的には、図7の時刻証明装置7が時刻証明書 TST(H, t(n, m)) を生成するときデジタル署名を生成し該時刻証明書に含める)。従って、従って、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため、時刻証明書の有効性をこの公開鍵証明書の有効期限を越えて保持するためには、時刻証明書の有効期限延長のための処理が必要となる。本実施の形態においても、第1の実施の形態と同様に、ある1つのラウンドに受け付けられた複数の時刻証明要求に対して、同一のデジタル署名を用いて時刻証明書を発行する。従って、第1の実施の形態におけると同様に、1つのラウンドで発行された時刻証明書の有効期限延長のための処理を、誰か一人(TSA、あるいはクライアントの一人、あるいはそれ以外の第三者)が実行すれば、当該のラウンドに時刻証明要求を出した全てのクライアントの受領する時刻証明書の有効期限延長処理が実現されることになる。従って、時刻証明書を受領した各クライアントが、各々、時刻証明書の有効期限延長処理をしなければならない従来手法(非特許文献1に記載のもの等)に比較して、時刻証明書の有効期限延長処理のためのクライアントの負荷および、該延長処理を行う機関の負荷が著しく軽減されることになる。
以上、第3の実施の形態のタイムスタンプシステム300によれば、タイムスタンプシステム100と同様の効果を得ることができるとともに、クライアント装置303iから時刻証明要求を受け付けた時刻証明装置7が、時刻を付与した時刻証明要求を二分木を用いてまとめ、このまとめた値に対してデジタル署名を生成して時刻証明書を発行するので、精度の高い時刻情報を付した時刻証明書を発行することができる。さらに、時刻証明書の延長処理が必要になった場合には、その処理のためのクライアントの負荷および該延長処理を行う機関の負荷を従来手法に比較して著しく軽減することが出来る。
<第4の実施の形態>
図11は、本発明の第4の実施の形態に係るタイムスタンプシステム400のシステム構成図である。同図に示すタイムスタンプシステム400は、要求受付装置8、複数のTSA10に設けられた時刻証明装置9j(jは自然数)、複数のTA20に設けられ、タイムスタンプ生成に使用される時刻情報を提供する時刻情報提供装置2k(kは自然数)、利用者30が利用する複数のクライアント装置303i(iは自然数)、及び以上の各装置を相互に接続する、例えば、インターネット網、電話回線網などにより構成される、コンピュータネットワーク4を備えており、要求受付装置8がクライアント装置303iからのタイムスタンプ要求(時刻証明要求)を受け付けて、受け付けたタイムスタンプ要求に時刻情報を付与して、複数の時刻証明装置9jに送信し、時刻証明装置9jが時刻情報を付与されたタイムスタンプ要求をまとめて部分署名を生成し、生成した部分署名を要求受付装置8に送信し、要求受付装置8が受信した部分署名から全体署名を生成し、全体署名を含むタイムスタンプ(時刻証明書)をクライアント装置3iに返信するようになっている。
即ち、タイムスタンプシステム400は、分散署名型のタイムスタンプシステムであり、要求受付装置8で時刻を付与し、複数の各時刻証明装置9jが時刻情報提供装置2kから取得した時刻と、要求受付装置8が付与した時刻との差が所定の限度以内であれば、要求受付装置8で付与した時刻を認めて、デジタル署名(部分署名)を生成するようになっているので、タイムスタンプシステム300と同様に、精度の高い時刻証明を行うことができるようになっている。
尚、本実施の形態においては、公開鍵暗号方式に基づいた分散署名の中で最も一般的である分散RSA方式を前提に説明するが、本発明はこの方式に限定されるわけでなく、他の方式を用いることは勿論可能である。また、本実施の形態においても、上記実施の形態と異なる構成及び機能のみ説明し、その他の構成及び機能に関しては同一部分には同一符号を付して説明を省略する。
要求受付装置8は、コンピュータネットワーク4を介してクライアント装置303iおよび複数の時刻証明装置9jとデータを送受信する送受信部81、クライアント装置303iからの時刻証明要求として送信されたメッセージダイジェストに時刻情報を付与する時刻情報付与部82、複数の時刻証明装置9jで生成された部分署名から全体署名を生成し、この全体署名を含む時刻証明書を作成する全体証明作成部83、および全体証明作成部83で作成された時刻証明書を記憶する時刻証明書記憶部15を具備している。
時刻情報付与部82は、さらに詳しくは、クライアント装置303iから送信されたメッセージダイジェストy(n,m)にシーケンス番号s(n,m)、メッセージダイジェストを受け付けた時刻 t(n,m)を組み合わせたデータ(y(n,m), s(n,m), t(n,m))を作成するもので、この組み合わせデータが複数の時刻証明装置9jに送信される時刻証明要求データとなる。また、時刻情報付加部82は、時刻証明装置7の時刻証明要求まとめ部72と同一の二分木を構成する機能を有しており、上記組み合わせデータ(y(n,m), s(n,m), t(n,m))のハッシュ値 h(y(n,m)‖s(n,m)‖t(n,m))を二分木のリーフに割り当てて、ルートハッシュ値Hを計算できるようになっている。
また、全体証明作成部83は、分散RSA方式に基づいて、複数の時刻証明装置9jから送信された部分署名 psig(PSKj, H) から全体署名 sig(SK,H) を生成するようになっている。そして、全体署名、シーケンス番号 s(n,m)、時刻 t(n,m)、リーフに割り当てられたハッシュ値 H(n;m)を含む時刻証明書、および時刻情報付加部82で構成した二分木における補完データHKiをクライアント装置303iに送受信部81を介して送信するようになっている。
時刻証明装置9jは、コンピュータネットワーク4を介して時刻情報提供装置2k及び要求受付装置8とデータを送受信する送受信部91、所定の条件のもと、要求受付装置8から送信された時刻情報を付与されたメッセージダイジェストを二分木を用いてまとめる時刻証明要求まとめ部92、時刻情報提供装置2kから時刻情報を取得する時刻情報取得部13、時刻証明要求まとめ部92でまとめられたメッセージダイジェストに対して部分署名を生成する部分証明作成部93、および部分証明作成部93で生成された部分署名を記憶する部分署名記憶部94を具備している。
ここで、時刻証明要求まとめ部92は、時刻証明装置7の時刻証明要求まとめ部72と同一の二分木を構成する機能を有しており、要求受付装置8で付与された時刻 t と、時刻証明装置9jが時刻情報提供装置2kから取得した時刻 t’との時刻差が所定の限度以内である場合には、受信した組み合わせデータ(y(n,m), s(n,m), t(n,m))のハッシュ値 h(y(n,m)‖s(n,m)‖t(n,m))を二分木のリーフに割り当てて、ルートハッシュ値Hを計算できるようになっている。即ち、同一の二分木が要求受付装置8と時刻証明装置9jの双方で構成されるようになっている。
また、部分証明作成部93は、二分木のルートハッシュ値Hが部分証明要求まとめ部92において作成されると、このルートハッシュ値Hに部分署名鍵 PSKj を用いて部分署名 psig(PSKj, H)を生成し、この部分署名 psig(PSKj, H) を要求受付装置8に送信するようになっている。
尚、以上の各装置は、上記実施の形態の各装置と同様に、少なくとも演算機能及び制御機能を備えた中央処理装置(CPU:Centra1 Processing Unit)、プログラムやデータを収納する機能を有するRAM(Random Access Memory)等からなる主記憶装置(メモリ)を有する電子的な装置から構成されている。即ち、要求受付装置8の時刻情報付与部82および全体証明作成部83、ならびに時刻証明装置9jの時刻証明要求部92および部分証明作成部93は、上記CPUによる演算制御機能を具体的に示したものに他ならない。また、時刻証明装置9jの部分署名記憶部94は主記憶装置の機能を備えたものである。
次に、タイムスタンプシステム400における時刻証明方法を図12を用いて説明する。ここで、図12は、要求受付装置8と時刻証明装置9jにおける時刻証明書TST(H,t)の作成処理を説明するシーケンス図である。
まず、要求受付装置8が、クライアント装置303iから送受信部81を介して時刻証明対象のメッセージダイジェスト y(n,m) を含む時刻証明要求を受信すると、時刻情報付与部82は、このメッセージダイジェストy(n,m)に、シーケンス番号s(n,m)および時刻t(n,m)を組み合わせたデータ(y(n,m), s(n,m), t(n,m))を作成し、これを複数の時刻証明装置9jそれぞれに送受信部81を介して送信する(ステップS51,S52,S53)。
時刻証明装置9jは、要求受付装置8から送受信部91を介して組み合わせデータ(y(n,m), s(n,m), t(n,m))を受信すると、時刻証明要求まとめ部92は、組み合わせデータ(y(n,m), s(n,m), t(n,m))に含まれている時刻t(n,m)と時刻情報取得部13が取得した時刻t’の差が予め定められた所定の限度内であるか否かを確かめ、所定の限度内である場合には、この組み合わせデータ(y(n,m), s(n,m), t(n,m))のハッシュ値 h((y(n,m)‖s(n,m)‖t(n,m))を二分木のリーフに割り当てる(ステップS54,S55,S56)。そして、上記動作は、同一ラウンド内において複数のクライアント装置303iから受信した組み合わせデータ(y(n,m), s(n,m), t(n,m))に対して、順次行われ、一定時間経過後ラウンドが終了すると、時刻証明要求まとめ部92がそれぞれのリーフに割り当てられたダイジェストh(y(n,m)‖s(n,m)‖t(n,m))から二分木のルートハッシュ値 H を計算する(ステップS58)。
次に、部分署名生成部93が、このルートハッシュ値Hに部分署名鍵 PSKj を用いて部分署名 psig(SKj, H)を生成し、生成した部分署名 psig(SKj, H)を要求受付装置8に送信する(ステップS59,S60)。
要求受付装置8は、複数の時刻証明装置9jから部分署名部分署名 psig(PSKj, H)を送受信部81を介して受信すると、全体署名生成部83が、部分署名psig psig(PSKj, H)から全体署名 sig(SK, H)を生成し、この全体署名 sig(SK, H)、シーケンス番号 s(n,m)、時刻 t(n,m)、およびリーフに割り当てられたハッシュ値H(n;m)を含んだ時刻証明書 TST(H,t)を作成する(ステップS61,S62)。また、時刻情報付加部82で構成した二分木の補完データHKiを取得して、時刻証明書TSTおよび補完データHKiをクライアント装置303iに送信する(ステップS63,S64)。
尚、時刻証明装置9jにおいて、要求受付装置8が時刻証明要求を受け付けた時刻 t と時刻情報取得部13が取得した時刻 t’の差が予め定められた所定の限度内でない場合には、組み合わせたデータ(y(n, m), s(n, m), t(n, m))を破棄して、部分署名 psig(PSKj, H)は生成しない(ステップS65)。
これにより、時刻証明装置9jは、自己で取得した時刻と要求受付装置8で付与した時刻が一定の限度内であれば、時刻を付与した時刻証明要求を二分木を用いてまとめ、このまとめた値に対して部分デジタル署名を生成し、要求受付装置8がこの部分署名から全体署名を生成して、時刻証明書を発行するので、クライアント装置303iから大量の時刻証明要求が短い期間に集中的にあったとしても、正確な時刻を付した時刻証明をより精度高く行うことができる。
尚、クライアント装置303iにおける時刻証明書 TST(H,t) の検証を行う動作は、第3の実施の形態と同様であるため、これに関する説明は省略する。
本実施の形態でも、第1の実施の形態と同様に、時刻証明書の発行のために公開鍵基盤とデジタル署名を用いている(具体的には、図11の全体署名作成部83が部分署名から全体デジタル署名を作成し、それを用いて時刻証明書を作成している)。従って、従って、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため、時刻証明書の有効性をこの公開鍵証明書の有効期限を越えて保持するためには、時刻証明書の有効期限延長のための処理が必要となる。本実施の形態においても、第1の実施の形態と同様に、ある1つのラウンドに受け付けられた複数の時刻証明要求に対して、同一のデジタル署名を用いて時刻証明書を発行する。従って、第1の実施の形態におけると同様に、1つのラウンドで発行された時刻証明書の有効期限延長のための処理を、誰か一人(TSA、あるいはクライアントの一人、あるいはそれ以外の第三者)が実行すれば、当該のラウンドに時刻証明要求を出した全てのクライアントの受領する時刻証明書の有効期限延長処理が実現されることになる。従って、時刻証明書を受領した各クライアントが、各々、時刻証明書の有効期限延長処理をしなければならない従来手法(非特許文献1に記載のもの等)に比較して、時刻証明書の有効期限延長処理のためのクライアントの負荷および、該延長処理を行う機関の負荷が著しく軽減されることになる。
以上、第4の実施の形態のタイムスタンプシステム400によれば、分散署名型のタイムスタンプシステムにおいても、タイムスタンプシステム300と同様の効果を得ることができる。即ち、クライアント装置303iから時刻証明要求を受け付けた要求受付装置8は、時刻を付与した時刻証明要求を複数の時刻証明装置 9j に送信し、時刻証明装置 9j は、自己で取得した時刻と要求受付装置8で付与した時刻が一定の限度内であれば、時刻を付与した時刻証明要求を二分木を用いてまとめ、このまとめた値に対して部分署名をし、要求受付装置8がこの部分署名から全体署名を生成して、時刻証明書を発行するので、精度の高い時刻情報を付した時刻証明書を発行することができる。
タイムスタンプ・システムにおいては、タイムスタンプを生成する上で正しい時刻情報の使用が保証されることが望ましい。この際、単独のTSAを全面的に信頼することなく正しい時刻情報の使用について保証するため,当該のTSA以外の第三者が時刻の正しさについて確認する機能を持つことが望ましい。本実施の形態においては、時刻証明書に付する時刻値について、複数のTSA が所定の誤差範囲の中で当該の値を正しいと判断したときのみ、当該の時刻値を含む署名対象データに対するデジタル署名を生成することができるようになっている。このため、一つのTSAの使用する時刻について他のTSAが確認をする機能を実現しており、上記の条件、即ち単独のTSAを全面的に信頼することなく正しい時刻情報の使用について保証するため当該のTSA以外の第三者(当実施の形態においては他のTSA)が時刻の正しさについて確認する機能を持つという条件を満たしている。
尚、本実施の形態においては、全体署名の生成のためには全ての署名サーバが同一データに対して部分署名を生成することを要求する(非閾値型の)分散RSA方式を前提にして説明したため、複数の時刻証明装置9jのうち1つでも時刻差が所定の限度を超えていると、要求受付装置8は時刻証明をすることができないが、部分署名する時刻証明装置9jのうちの一定数が部分署名を生成することができれば、最終的に全体署名を生成することができる閾値型分散署名方式(例えば閾値型の分散RSA署名方式)を採用すれば、このような場合においても、時刻証明をすることが可能となる。
また、本実施の形態においては、要求受付装置8と時刻証明装置9j間の通信量を減少させるために要求受付装置8および時刻証明装置9jの双方において、同じ二分木を構成するようにしたが、時刻証明装置9jだけで二分木を構成し、二分木の補完データHKiを要求受付装置8に送信する方法により時刻証明を行うようにしてもよい。
以上、上記実施の形態における各装置の動作は、各装置に格納されたプログラムを実行することにより実現される。そして、このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD−ROMなどのコンピュータ読み取り可能な記録媒体に記録することも、コンピュータネットワークを介して配信することも可能である。
<動的な二分木(認証木)の構成方法>
上記実施の形態において用いられた二分木の動的な構成方法について説明するが、その前提としてまず、二分木の構成に必要な基本関数について説明する。
高さkの二分木は、レベル0からレベルkまでのノードで構成されるが、レベルj(j=0,1,…,k)のノードの数は、2(k−j)であるので、レベルj、番号iのノードを(j,i)と表すことにすると、i=0,1,…,2(k-j)-1となる。以下、実数xに対して、ceiling(x)をx以上の最小の整数、floor(x)をx以下の最大の整数として、説明する。
ノード(j,i)(但し、j<k)の親は、(j+1,floor(i/2))であるので、
patent(j,i)=(j+1,floor(i/2))と定義する。
また、ノード(j,i)(但し、0<j)の左側の子供は(j-1,2i)、右側の子供は(j-1,2i+1)であるので、
leftChild(j,i)=(j-1,2i)
rightChild(j,i)=(j-1,2i+1)と定義する。
このとき、高さkの二分木のノード(j,i)(0≦i<2(k-j))のルートパスrtPath(ノード(j,i)からルートまでのパスを通過するノード(j,i)の集合で表す)は、
rtPath(k,j,i)=((j,r(j)),…,(k,r(k))と表せる。
但し、j’=j, …,k に対して、r(j’) は次のように定める。r(j)=i、r(j’+1)=floor(r(j’)/2)(j’<kとし、r(j’)は既に定まっているものとする)。尚、(k, r(k))は、二分木のルートを表し、常に r(k)=0となる。
また、高さkの二分木のノード(j,i)(0 ≦ i < 2(k-j))の認証パスauthPath(k, i, j)(ノード (j, i) からルート値を計算するのに必要なノード (j, i) の集合。但し、該ノードを連接する方向(左又は右)の情報も含んでいる)は、rtPath(k, j, i)を用いて次のように表せる。
authPath(k, j, i)=(((j, a(j)), LR(j)),…,((k-1, a(k-1)), LR(k-1)))
ここで、r(j’)が偶数の場合、a(j’)=r(j’)+1、r(j’)が奇数の場合、r(j’)−1であり、また、r(j’)が偶数の場合、LR(j’)=R、r(j’)が奇数の場合、LR(j’)=Lである(但し、j’= j,…,k-1)。
上述した基本関数の定義のもと、第1の動的な二分木の構成方法について説明する。この二分木の構成方法は、深さの違いを1以内に押さえ、ダミーノードを作成しない方法である。
単位時間(1ラウンドの時間であり、例えば、1秒)に受け付けた時刻証明要求の数をnとすると、高さkは、k=ceiling(log2(n))である。高さkの二分木のリーフ数は最大で2kであるので、d=2k−nとして、レベル0のノードのうち、2d個を消去すれば、時刻証明要求の数nをダミーノードなしでリーフに割り当てることが可能となる。これは、レベル0のリーフが2d個減ると、レベル1のリーフが新たにd個できるので、合計でd個減り、リーフの数は結局、2k−d=nとなるからである。
以下、L1W=2(k-1)(レベル1のノードの個数)、L1L=2(k-1)−d(子を有するレベル1のノードの個数)の、L0L=2・(2(k-1)−d)(レベル0のノードの個数)とおくと、n個の時刻証明要求のうち、初めのL0L個をレベル0に配置し、残りをレベル1に配置するとき、i番目の時刻証明要求の配置先を表す関数place(i)は次式で表すことができる。
place(i)=(0, i) (0 ≦ i < L0L)
place(i)=(1, L1L + i -L0L) (L0L < i ≦ n)
ここで、place(i)=(j, i) は place(i) がレベル i’ と番号 j’ のノードであることを示す。
図13は、第1の動的な二分木の構成方法のn=10の場合の具体例を示すものである。この場合においては、図13に示す通り、k=ceiling(log2(10))=4となり、高さは4である。そして、d=24−10=6であるので、6×2=12個のレベル0のリーフを消去する。この結果、L1W=23=8、L1L=8−6=2、L0L=2×2=4となる。従って、レベル0のリーフが4個、レベル1のリーフが6個で、リーフの合計数はn=10となる。この結果、図13に示すような二分木を動的に作成することができる。
次に、第2の動的な二分木の構成方法について説明する。この二分木の構成方法は、深さを単一にして、ダミーノードを作成する方法である。
単位時間(1ラウンドの時間であり、例えば、1秒)に受け付けた時刻証明要求の数をnとすると、高さkは、k=ceiling(log2(n))である。高さkの二分木のリーフ数は最大で2kであるので、0からn−1までのn個の時刻証明要求をレベル0のノード(0,0)からノード(0,n-1)に割り当てる。ここで、レベル0に割り当てられた、最も右のノード(0, n-1)に対して、ルートパス rtPath(k, 0, n-1)を計算し、その結果を
((0, r(0)),…,(k, r(k))
とする。
次に、各レベルj(j=0, …,k-1)においては、以下の手順を実行するものとする。
r(j) が偶数のとき、ノード(j, r(j)+1)をダミーノードとする。
r(j) + 1 < i <2(k-j)となる各iに対して、ノード(j,i)は消去される。
r(j) が奇数のとき、r(j) + 1 ≦ i < 2(k-j) となる各iに対して、ノード(j,i)は消去される。また、ルートにあるレベルkについては、何も行わない。
以上のような方法に基づいて構成される二分木は、ダミーノードは各レベルの右端でのみ現れる、および作成されるダミーノードの数は、k以下であるという性質を有する。
図14は、第2の動的な二分木の構成方法のn=9の場合の具体例を示す図である。この場合においては、図14に示す通り、k=ceiling(log2(9))=4となり、高さは4である。そして、9個の時刻証明要求をノード(0,0)…(0,n-1)に割り当てると、レベル0において時刻証明要求が割り当てられた最も右のノードは(0,8)である。
ここで、ノード(0,8)のルートパス rtPath(4,0,8)は
rtPath(4,0,8)=((0,8),(1,4),(2,3) ,(3,1) (4,0)) となる。これにより、各レベルでの手順は、以下の通りになる。
レベル0では、(0,9)がダミーノードになり、番号10以降が消去される。レベル1では、(1,5)がダミーノードとなり、5<i<23=8であれば、ノード(j,i)は削除される。レベル2では、ノード(2, 3)がダミーノードになる。レベル3および4においては、ダミーノードも消去されるノードもない。この結果、図14に示すような二分木を動的に作成することができる。
次に、第3の動的な二分木の構成方法について説明する。第1および第2の動的な二分木の構成方法は、ともに受け付けた時刻証明要求の数が確定した後に、二分木を構成する方法であったが、この方法は、第2の動的な二分木の構成方法をベースに、インクリメンタルに二分木を構成する方法である。ここで、イクリメンタルとは、時刻証明要求を受け付ける都度、そこから計算できる二分木の部分を計算していくという意味である。この意味で、前もって定めた時間間隔(ラウンドの時間)に受け付ける時刻証明要求の数は予想できないものとする。以下では、受け付ける時刻証明要求の数は予想できないが、その上界Nは見積もることができるとして説明する。尚、この方法においては、第2の動的な二分木の構成方法と同様に、時刻証明要求はすべてレベル0に割り付けられるものとする(ダミーノードを使用する方法である)。
図15は、第3の動的な二分木の構成方法のアルゴリズムを示すものであり、該アルゴリズムに従って二分木がインクリメンタルに構成されるようになっている。ここで、前提として以下の定義を行う。
・K=ceiling(log2(N))とする。
・nは受け付けた時刻証明要求の数を示す整数変数とする。初期値は0である。
・kは定められた時間間隔が終了したときの二分木の高さを表す変数とする。
(K+1)個のカウンタの列を、i(0), …, i(K)とする。ここで、i(j)の初期値は0である(j=0, …, K)。i(j)はレベルjにおいて、既に生成されたノードの数を表すと同時に、次にレベルjに作成されるノードの番号を表す。
・(K+1)個のブール変数の列を、b(0), …, b(K)とする。ここで、b(j)の初期値はfalseである(j=0, …,K)。b(j)は、レベルjにダミーノードがあるか否かを表す。
・(K+1)個の配列の列を、A(0), …, A(K)とする。各配列は、2(k-j)の長さをもち、レベルjのノードに割り付けられる値を保持する(j=0, …,K)。ノード(j, i)に対して、A(j, i)は、A(j)[i]を表すものとする。ノード(j, i)の左側の子が(j’, i’)のとき、A(leftChild(j,i))はA(j’)[i’]を表す。
・rはダミーノードに割り当てるダミー値を保存する変数である。
・R(j,i)は2つの引数 i, jに対してノード(j,i)に割り当てるべきダミー値を計算する関数である。
・x、x0、x1、x2は、ノードに割り当てる値を表す変数である。
・x1‖x2は、バイト列で表された2つの値の連接である。
・h(x)はxのハッシュ値を計算する関数である。
このような定義のもと、図15の処理手順1が終了すると(定められた時間が終了すると)、nは、受け付けた時刻処理要求の数、kは生成された二分木の高さ、i(j)は、レベルjのノードの数、b(j)は、レベルjにダミーノードがあるか否か、A(j)は、レベルjのノードに割り付けられた値、をそれぞれ有することになる(但し、j = 0, ..., k)。
図16は、第3の動的な二分木の構成方法のn=9の場合の具体例を示す図である。即ち、定められた時間間隔が終了したとき、n=9であったとする。このとき、k=ceiling(log2(9))=4となり、高さは4の二分木を構成することになる。尚、0からn−1までのn個の時刻処理要求は、処理手順1により、既にノード(0,0), …, (0,n-1)に割り当てられている。また、処理手順1により、i(0)=9、i(1)=4、i(2) = 2, i(3)=1、i(4)=0となっている。
このとき、処理手順2の(2.2)から、ノード(0,9)のノートパス rtPath(4,0,8) は、rtPath(4,0,8)=((0,8),(1,4),(2,2),(3,1),(4,0))となる。これから、各レベルの手順は、以下の通りになる。
レベル0においては、ステップ(2.3.2.1)より、ノード(0,9)がダミーノードになる。レベル1においては、ステップ(2.3.3.1)より、ノード(1, 4)に値が割り付けられ、(1, 5)がダミーノードになる。レベル2においては、ステップ(2.3.3.1)より、ノード(0, 2)に値が割り付けられ、(0, 3)がダミーノードになる。レベル3においては、ステップ(2.3.3.1)により、ノード(3, 1)に値が割り付けられる。レベル4においては、ステップ(2.3.3.1)により、ノード(4, 0)に値が割り付けられる。
この結果、図16に示すような二部木をインクリメンタルに構成することができる。
尚、上記実施の形態におけるタイムスタンプシステム100、200、300および400は、上述した動的な二分木の構成方法のいずれをも採用できるものであり、これにより、クライアント装置3iおよび303iからの時刻証明要求の量的変化に柔軟に対応することができるので、スケーラビリティの高いタイムスタンプシステムを構築することが可能となる。
本発明の第1の実施の形態に係るタイムスタンプシステムの構成を説明する図である。 本発明の第1の実施の形態における二分木を説明する図である。 本発明の第1の実施の形態に係る時刻証明装置が時刻証明書を発行する動作を説明するフローチャートである。 本発明の第1の実施の形態に係るクライアント装置が時刻証明書の検証を行う動作を説明するフローチャートである。 本発明の第2の実施の形態に係るタイムスタンプシステムの構成を説明する図である。 本発明の第2の実施の形態に係るタイムスタンプシステムの動作を説明するシーケンス図である。 本発明の第3の実施の形態に係るタイムスタンプシステムの構成を説明する図である。 本発明の第3の実施の形態における二分木を説明する図である。 本発明の第3の実施の形態に係る時刻証明装置が時刻証明書を発行する動作を説明するフローチャートである。 本発明の第3の実施の形態に係るクライアント装置が時刻証明書の検証を行う動作を説明するフローチャートである。 本発明の第4の実施の形態に係るタイムスタンプシステムの構成を説明する図である。 本発明の第4の実施の形態に係るタイムスタンプシステムの動作を説明するシーケンス図である。 深さの違いを1以内に押さえ、ダミーノードを作成しない動的な二分木の構成方法を説明する図である。 深さを単一にして、ダミーノードを作成する動的な二分木の構成方法を説明する図である。 インクリメンタルに二分木を構成する方法のアルゴリズムを説明する図である。 インクリメンタルに二分木を構成する方法を説明する図である。 タイムスタンプシステムの概念を説明する図である。 本発明の第1の実施の形態に係るタイムスタンプシステムの変形例における時刻証明書の構成を示す図である。 本発明の第1の実施の形態の変形例における直前ラウンドのルート値を現ラウンドの二分木のリーフに割り当てる方法1を説明する図である。 本発明の第1の実施の形態の変形例における直前ラウンドのルート値を現ラウンドの二分木のリーフに割り当てる方法2を説明する図である。 本発明の第1の実施の形態の変形例における補完情報の構成を示す図である。 本発明の第2の実施の形態に係るタイムスタンプシステムの変形例1の構成を示す図である。 本発明の第2の実施の形態に係るタイムスタンプシステムの変形例における時刻証明書の構成を示す図である。 本発明の第2の実施の形態に係るタイムスタンプシステムの変形例2の構成を示す図である。
符号の説明
1,6,7,9 時刻証明装置
2 時刻情報提供装置
3,303 クライアント装置
4 コンピュータネットワーク
5,5’,5” 要求受付装置
10 TSA
11,31,51,61,81,91 送受信部
12,72,92 時刻証明要求まとめ部
13 時刻情報取得部
14,74 時刻証明作成部
15 時刻証明書記憶部
16 部分時刻証明装置
20 TA
30 利用者
32 メッセージ記憶部
33 時刻証明要求部
34 時刻証明書記憶部
35,36 時刻証明検証部
52 直前ラウンド時刻証明書記憶部
53 全体署名作成部
82 時刻情報付加部
83 全体証明作成部
93 部分証明作成部
100,200,200’,200”,300,400,900 タイムスタンプシステム

Claims (11)

  1. 所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置であって、
    前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻である前記第1の時刻情報との組み合わせである前記第2の要求を前記時刻証明要求受付装置から受信する受信手段と、
    前記第2の要求を受信した時刻である第2の時刻情報を提供する時刻情報提供手段と、
    前記第1の時刻情報と、前記第2の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、
    前記ルート値から部分署名を生成する部分署名生成手段と、
    前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信手段と、
    を有することを特徴とする時刻証明装置。
  2. 所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置であって、
    前記利用者装置から前記要求を受信する受信手段と、
    前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第1の時刻情報と、の組み合わせである前記第2の要求を前記複数の時刻証明装置それぞれに送信する送信手段と、
    前記複数の時刻証明装置それぞれが、前記第1の時刻情報と前記第2の要求を受信した時刻である第2の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信手段と、
    前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、
    前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、
    前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信手段と、
    を有することを特徴とする時刻証明要求受付装置。
  3. 前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成手段は、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを特徴とする請求項記載の時刻証明要求受付装置。
  4. 所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置の時刻証明方法であって、
    前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻である前記第1の時刻情報との組み合わせである前記第2の要求を前記時刻証明要求受付装置から受信する受信ステップと、
    前記第2の要求を受信した時刻である第2の時刻情報を提供する時刻情報提供ステップと、
    前記第1の時刻情報と、前記第2の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、
    前記ルート値から部分署名を生成する部分署名生成ステップと、
    前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信ステップと、
    を有することを特徴とする時刻証明方法。
  5. 所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付方法であって、
    前記利用者装置から前記要求を受信する受信ステップと、
    前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第1の時刻情報と、の組み合わせである前記第2の要求を前記複数の時刻証明装置それぞれに送信する送信ステップと、
    前記複数の時刻証明装置それぞれが、前記第1の時刻情報と前記第2の要求を受信した時刻である第2の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信ステップと、
    前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、
    前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、
    前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、
    を有することを特徴とする時刻証明要求受付方法。
  6. 前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成ステップは、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを特徴とする請求項記載の時刻証明要求受付方法。
  7. 所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置の時刻証明プログラムであって、
    前記要求に含まれる時刻証明対象データと、時刻証明要求受付装置が前記要求を受信した時刻である前記第1の時刻情報との組み合わせである前記第2の要求を前記時刻証明要求受付装置から受信する受信ステップと、
    前記第2の要求を受信した時刻である第2の時刻情報を提供する時刻情報提供ステップと、
    前記第1の時刻情報と、前記第2の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、
    前記ルート値から部分署名を生成する部分署名生成ステップと、
    前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信ステップと、
    を前記時刻証明装置に実行させることを特徴とする時刻証明プログラム。
  8. 所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付プログラムであって、
    前記利用者装置から前記要求を受信する受信ステップと、
    前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第1の時刻情報と、の組み合わせである前記第2の要求を前記複数の時刻証明装置それぞれに送信する送信ステップと、
    前記複数の時刻証明装置それぞれが、前記第1の時刻情報と前記第2の要求を受信した時刻である第2の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信ステップと、
    前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第1の時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、
    前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、
    前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、
    を前記時刻証明要求受付装置に実行させることを特徴とする時刻証明要求受付プログラム。
  9. 前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成ステップは、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを特徴とする請求項記載の時刻証明要求受付プログラム。
  10. 所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第1の時刻情報を付与した第2の要求を受け付けて、所定の時間内における、複数の前記第2の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、
    前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻情報である前記第1の時刻情報と、の組み合わせである前記第2の要求を前記複数の時刻証明装置それぞれに送信する送信手段と、前記複数の時刻証明装置それぞれが、前記第1の時刻情報と前記第2の要求を受信した時刻である第2の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第2の要求に含まれる前記要求内の時刻証明対象データと前記第1の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信手段と、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、前記第1の時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する前記時刻証明要求受付装置から前記時刻証明書および前記補完情報を受信する受信ステップと、
    前記時刻証明要求受付装置に送信した前記要求に含まれる時刻証明対象データと前記時刻証明書に含まれる前記時刻情報とを連接した連接値のダイジェストと、前記時刻証明書に含まれる前記リーフに割り当てられた前記ダイジェストと、が一致するか否かを検証する第1の検証ステップと、
    前記時刻証明書に含まれる前記全体署名が前記時刻証明書に含まれる、前記リーフに割り当てられた前記ダイジェストおよび前記補完情報から計算された前記二分木のルート値に対して為されたか否かを検証する第2の検証ステップと、
    を前記利用者装置に実行させることを特徴とする時刻証明検証プログラム。
  11. 請求項乃至10のいずれか1項に記載されたプログラムを記録したことを特徴とするプログラム記録媒体。
JP2004290775A 2003-10-03 2004-10-01 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体 Expired - Fee Related JP4602729B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004290775A JP4602729B2 (ja) 2003-10-03 2004-10-01 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003345946 2003-10-03
JP2004290775A JP4602729B2 (ja) 2003-10-03 2004-10-01 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体

Publications (2)

Publication Number Publication Date
JP2005130488A JP2005130488A (ja) 2005-05-19
JP4602729B2 true JP4602729B2 (ja) 2010-12-22

Family

ID=34655872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004290775A Expired - Fee Related JP4602729B2 (ja) 2003-10-03 2004-10-01 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体

Country Status (1)

Country Link
JP (1) JP4602729B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4390805B2 (ja) * 2004-08-19 2009-12-24 日本電信電話株式会社 イベント順序証明方法
JP4455474B2 (ja) 2005-11-04 2010-04-21 株式会社東芝 タイムスタンプ更新装置及びタイムスタンプ更新プログラム
JP4499027B2 (ja) * 2005-12-15 2010-07-07 セイコープレシジョン株式会社 時刻監査サーバ及び時刻監査方法
JP4860327B2 (ja) * 2006-03-31 2012-01-25 株式会社エヌ・ティ・ティ・データ 時刻証明装置及びプログラム
JP4862506B2 (ja) * 2006-06-12 2012-01-25 富士ゼロックス株式会社 タイムスタンプ装置及びそのためのプログラム
CN109657499A (zh) * 2018-10-31 2019-04-19 深圳市网心科技有限公司 元数据验证方法、系统服务器和计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040255A (ja) * 1996-07-29 1998-02-13 Nec Software Ltd ハッシュ表管理装置
JP2002215029A (ja) * 2001-01-22 2002-07-31 Seiko Epson Corp 情報認証装置及びこれを使用したデジタルカメラ
JP2003256374A (ja) * 2002-02-28 2003-09-12 Toshiba Corp 経験的認証システム、装置、プログラム及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040255A (ja) * 1996-07-29 1998-02-13 Nec Software Ltd ハッシュ表管理装置
JP2002215029A (ja) * 2001-01-22 2002-07-31 Seiko Epson Corp 情報認証装置及びこれを使用したデジタルカメラ
JP2003256374A (ja) * 2002-02-28 2003-09-12 Toshiba Corp 経験的認証システム、装置、プログラム及び方法

Also Published As

Publication number Publication date
JP2005130488A (ja) 2005-05-19

Similar Documents

Publication Publication Date Title
JP7285840B2 (ja) プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法
Syta et al. Keeping authorities" honest or bust" with decentralized witness cosigning
JP4742049B2 (ja) デジタル証明書を生成するためのシステムおよび方法
US9122846B2 (en) Document verification with distributed calendar infrastructure
US20180152442A1 (en) Blockchain-supported, hash tree-based digital signature infrastructure
US10511440B2 (en) Methods of proving validity and determining validity, electronic device, server and computer programs
CN1949308B (zh) 签名履历保管装置
JP4390805B2 (ja) イベント順序証明方法
CN112035896B (zh) 一种基于交易方式的电子合同存证系统
JP5109976B2 (ja) 電子署名システムおよび電子署名検証方法
JP4602729B2 (ja) 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体
JP2005535206A (ja) 細粒度フォワード・セキュア署名の方法、コンピュータ・プログラム要素、コンピュータ・プログラムおよびネットワーク・デバイス
US20050235140A1 (en) System and method for secure preservation and long term archival of electronic documents
KR100760028B1 (ko) 전자서명 인증서의 장기검증방법 및 시스템
KR20060009205A (ko) 서명속성을 이용한 전자서명 및 그 검증방법과 이를실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록매체
JP4566567B2 (ja) タイムスタンプシステム、タイムスタンプ要求装置、タイムスタンプ検証装置、及び、コンピュータプログラム
JP2020048221A (ja) 公開鍵の信頼性を証明するための装置、方法及びそのためのプログラム
JP4451253B2 (ja) 時刻証明方法、時刻証明監査方法、時刻証明装置、監査装置、時刻証明プログラム、時刻証明監査プログラム、時刻証明検証プログラム、およびプログラム記録媒体
JP2005094244A (ja) 時刻証明書延長方法、時刻証明装置、時刻証明書延長プログラム、延長用時刻証明書検証プログラム、およびプログラム記録媒体
Barker Recommendation for digital signature timeliness
Blaauwendraad et al. Postquantum Hash-based Signatures for Multi-chain Blockchain Technologies
Le et al. Signtiming scheme based on aggregate signature
KR20240046201A (ko) 디지털 서명들의 생성
GB2609907A (en) Generating digital signatures
CN114584279A (zh) 一种抗量子计算机攻击的区块链分布式时间戳生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100802

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100928

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100930

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees