(57)【要約】【課題】  公開鍵基盤に基づくタイムスタンプシステムにおいて二分木を利用することにより、利用者から一時的に多くの時刻証明要求があっても、正確な時刻を付して時刻証明を行うことができる。【解決手段】  時刻証明装置１は、コンピュータネットワーク４を介して時刻情報提供装置２およびクライアント装置３ｉとデータを送受信する送受信部１１、クライアント装置３ｉからの時刻証明要求として送信されたメッセージダイジェストを二分木を用いてまとめる時刻証明要求まとめ部１２、時刻証明書を作成する際に時刻情報提供装置２から時刻情報を取得する時刻情報取得部１３、時刻証明要求まとめ部１２でまとめられたメッセージダイジェストに対して時刻情報取得部１２で取得した時刻情報を付して時刻証明書を作成する時刻証明作成部１４、および時刻証明作成部１４で作成された時刻証明書を記憶する時刻証明書記憶部１５を具備している。【選択図】      図１
2005130488.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめ、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明装置であって、
前記利用者装置から前記要求を受信する受信手段と、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、
前記所定の時間を決定する時刻情報を提供する時刻情報提供手段と、
前記時刻情報提供手段から提供された前記時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、
前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を前記要求の補完情報として取得する補完情報取得手段と、
前記時刻証明書および前記補完情報を前記利用者装置に送信する送信手段と、
を有することを特徴とする時刻証明装置。
【請求項２】
前記時刻証明書作成手段は、
前記まとめが終了したときに前記時刻情報提供手段から提供された現ラウンド終了時刻を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成することを特徴とする請求項１記載の時刻証明装置。
【請求項３】
前記時刻証明要求まとめ手段は、
前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、
前記時刻証明書作成手段は、
前記要求が割り当てられた単位時間の直前の単位時間の終了時に前記時刻情報提供手段から提供された前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、
前記補完情報取得手段は、
前記直前のルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、
前記送信手段は、
前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを特徴とする請求項２記載の時刻証明装置。
【請求項４】
公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求に時刻情報を付すとともに、二分木を利用してまとめ、まとめた値に対してデジタル署名を生成する時刻証明装置であって、
前記利用者装置から前記要求を受信する受信手段と、
前記要求を受信した時刻情報を提供する時刻情報提供手段と、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データに前記時刻情報提供手段から提供される前記時刻情報を連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、
前記ルート値に施されたデジタル署名、前記リーフに割り当てられた前記ダイジェスト、および前記要求を受信した時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、
前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、
前記時刻証明書および前記補完情報を前記利用者装置に送信する送信手段と、
を有することを特徴とする時刻証明装置。
【請求項５】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置であって、
前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻である前記第１の時刻情報との組み合わせである前記第２の要求を前記時刻証明要求受付装置から受信する受信手段と、
前記第２の要求を受信した時刻である第２の時刻情報を提供する時刻情報提供手段と、
前記第１の時刻情報と、前記第２の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、
前記ルート値から部分署名を生成する部分署名生成手段と、
前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信手段と、
を有することを特徴とする時刻証明装置。
【請求項６】
前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを特徴とする請求項１乃至３のいずれか１項に記載の時刻証明装置。
【請求項７】
前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを特徴とする請求項１乃至６のいずれか１項に記載の時刻証明装置。
【請求項８】
前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを特徴とする請求項１乃至６のいずれか１項に記載の時刻証明装置。
【請求項９】
前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを特徴とする請求項１乃至６のいずれか１項に記載の時刻証明装置。
【請求項１０】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめる時刻証明要求受付装置と、前記時刻証明要求受付装置でまとめた値を前記コンピュータネットワークを介して受け付けて、前記まとめた値に時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置であって、
前記利用者装置から前記要求を受信する受信手段と、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てる値を計算する時刻証明要求まとめ手段と、
前記二分木のルート値を前記時刻証明装置に送信する送信手段と、
前記二分木のルート値に時刻情報を付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を前記時刻証明装置から受信する時刻証明書受信手段と、
前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、
前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信手段と、
を有することを特徴とする時刻証明要求受付装置。
【請求項１１】
前記時刻証明書受信手段は、
前記まとめが終了したときに提供された現ラウンド終了時刻を前記二分木のルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信することを特徴とする請求項１０記載の時刻証明要求受付装置。
【請求項１２】
前記時刻証明要求まとめ手段は、
前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、
前記送信手段は、
前記直前ルート値に対して前記時刻証明装置により付与された時刻を前ラウンド終了時刻と定義すると、前記直前ルート値及び前記前ラウンド終了時刻を前記前記時刻証明装置に送信し、
前記時刻証明書受信手段は、
前記前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し、
前記補完情報取得手段は、
前記直前ルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、
前記時刻証明書送信手段は、
前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを特徴とする請求項１１記載の時刻証明要求受付装置。
【請求項１３】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置であって、
前記利用者装置から前記要求を受信する受信手段と、
前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第１の時刻情報と、の組み合わせである前記第２の要求を前記複数の時刻証明装置それぞれに送信する送信手段と、
前記複数の時刻証明装置それぞれが、前記第１の時刻情報と前記第２の要求を受信した時刻である第２の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信手段と、
前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、
前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、
前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信手段と、
を有することを特徴とする時刻証明要求受付装置。
【請求項１４】
前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを特徴とする請求項１０乃至１２のいずれか１項に記載の時刻証明要求受付装置。
【請求項１５】
前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成手段は、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを特徴とする請求項１３記載の時刻証明要求受付装置。
【請求項１６】
前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを特徴とする請求項１０乃至１５のいずれか１項に記載の時刻証明要求受付装置。
【請求項１７】
前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを特徴とする請求項１０乃至１５のいずれか１項に記載の時刻証明要求受付装置。
【請求項１８】
前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを特徴とする請求項１０乃至１５のいずれか１項に記載の時刻証明要求受付装置。
【請求項１９】
公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されている時刻証明装置が、所定の時間内における複数の前記要求を二分木を利用してまとめ、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明方法であって、
前記利用者装置から前記要求を受信する受信ステップと、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求の値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、
前記所定の時間を決定する時刻情報を提供する時刻情報提供ステップと、
前記時刻情報提供ステップにおいて提供された前記時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、
前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を前記要求の補完情報として取得する補完情報取得ステップと、
前記時刻証明書および前記補完情報を前記利用者装置に送信する送信ステップと、
を有することを特徴とする時刻証明方法。
【請求項２０】
前記時刻証明書作成ステップは、
前記まとめが終了したときに前記時刻情報提供ステップから提供された現ラウンド終了時刻を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成することを特徴とする請求項１９記載の時刻証明方法。
【請求項２１】
前記時刻証明要求まとめステップは、
前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、
前記時刻証明書作成ステップは、
前記要求が割り当てられた単位時間の直前の単位時間の終了時に前記時刻情報提供ステップから提供された前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、
前記補完情報取得ステップは、
さらに、前記直前のルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、
前記送信ステップは、
さらに、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを特徴とする請求項２０記載の時刻証明方法。
【請求項２２】
公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されている時刻証明装置が、所定の時間内における複数の前記要求に時刻情報を付すとともに、二分木を利用してまとめ、まとめた値に対してデジタル署名を生成する時刻証明方法であって、
前記利用者装置から前記要求を受信する受信ステップと、
前記要求を受信した時刻情報を提供する時刻情報提供ステップと、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データに前記時刻情報提供ステップで提供される前記時刻情報を連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、
前記ルート値に施されたデジタル署名、前記リーフに割り当てられた前記ダイジェスト、および前記要求を受信した時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、
前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、
前記時刻証明書および前記補完情報を前記利用者装置に送信する送信ステップと、
を有することを特徴とする時刻証明方法。
【請求項２３】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置の時刻証明方法であって、
前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻である前記第１の時刻情報との組み合わせである前記第２の要求を前記時刻証明要求受付装置から受信する受信ステップと、
前記第２の要求を受信した時刻である第２の時刻情報を提供する時刻情報提供ステップと、
前記第１の時刻情報と、前記第２の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、
前記ルート値から部分署名を生成する部分署名生成ステップと、
前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信ステップと、
を有することを特徴とする時刻証明方法。
【請求項２４】
前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを特徴とする請求項１９乃至２１のいずれか１項に記載の時刻証明方法。
【請求項２５】
前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを特徴とする請求項１９乃至２４のいずれか１項に記載の時刻証明方法。
【請求項２６】
前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを特徴とする請求項１９乃至２４のいずれか１項に記載の時刻証明方法。
【請求項２７】
前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを特徴とする請求項１９乃至２４のいずれか１項に記載の時刻証明方法。
【請求項２８】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめる時刻証明要求受付装置と、前記時刻証明要求受付装置でまとめた値を前記コンピュータネットワークを介して受け付けて、前記まとめた値に時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付方法であって、
前記利用者装置から前記要求を受信する受信ステップと、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てる値を計算する時刻証明要求まとめステップと、
前記二分木のルート値を前記時刻証明装置に送信する送信ステップと、
前記二分木のルート値に時刻情報を付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を前記時刻証明装置から受信する時刻証明書受信ステップと、
前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、
前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、
を有することを特徴とする時刻証明要求受付方法。
【請求項２９】
前記時刻証明書受信ステップは、
前記まとめが終了したときに提供された現ラウンド終了時刻を前記二分木のルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信することを特徴とする請求項２８記載の時刻証明要求受付方法。
【請求項３０】
前記時刻証明要求まとめステップは、
前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、
前記送信ステップは、
前記直前ルート値に対して前記時刻証明装置により付与された時刻を前ラウンド終了時刻と定義すると、前記直前ルート値及び前記前ラウンド終了時刻を前記前記時刻証明装置に送信し、
前記時刻証明書受信ステップは、
前記前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し、
前記補完情報取得ステップは、
前記直前ルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、
前記時刻証明書送信ステップは、
前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを特徴とする請求項２９記載の時刻証明要求受付方法。
【請求項３１】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付方法であって、
前記利用者装置から前記要求を受信する受信ステップと、
前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第１の時刻情報と、の組み合わせである前記第２の要求を前記複数の時刻証明装置それぞれに送信する送信ステップと、
前記複数の時刻証明装置それぞれが、前記第１の時刻情報と前記第２の要求を受信した時刻である第２の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信ステップと、
前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、
前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、
前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、
を有することを特徴とする時刻証明要求受付方法。
【請求項３２】
前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを特徴とする請求項２８乃至３０のいずれか１項に記載の時刻証明要求受付方法。
【請求項３３】
前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成ステップは、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを特徴とする請求項３１記載の時刻証明要求受付方法。
【請求項３４】
前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを特徴とする請求項２８乃至３３のいずれか１項に記載の時刻証明要求受付方法。
【請求項３５】
前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを特徴とする請求項２８乃至３３のいずれか１項に記載の時刻証明要求受付方法。
【請求項３６】
前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを特徴とする請求項２８乃至３３のいずれか１項に記載の時刻証明要求受付方法。
【請求項３７】
公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されている時刻証明装置が、所定の時間内における複数の前記要求を二分木を利用してまとめ、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明プログラムであって、
前記利用者装置から前記要求を受信する受信ステップと、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求の値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、
前記所定の時間を決定する時刻情報を提供する時刻情報提供ステップと、
前記時刻情報提供ステップにおいて提供された前記時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、
前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を前記要求の補完情報として取得する補完情報取得ステップと、
前記時刻証明書および前記補完情報を前記利用者装置に送信する送信ステップと、
を前記時刻証明装置に実行させることを特徴とする時刻証明プログラム。
【請求項３８】
前記時刻証明書作成ステップは、
前記まとめが終了したときに前記時刻情報提供ステップから提供された現ラウンド終了時刻を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成することを特徴とする請求項３７記載の時刻証明プログラム。
【請求項３９】
前記時刻証明要求まとめステップは、
前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、
前記時刻証明書作成ステップは、
前記要求が割り当てられた単位時間の直前の単位時間の終了時に前記時刻情報提供ステップから提供された前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、
前記補完情報取得ステップは、
さらに、前記直前のルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、
前記送信ステップは、
さらに、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを特徴とする請求項３８記載の時刻証明プログラム。
【請求項４０】
公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されている時刻証明装置が、所定の時間内における複数の前記要求に時刻情報を付すとともに、二分木を利用してまとめ、まとめた値に対してデジタル署名を生成する時刻証明プログラムであって、
前記利用者装置から前記要求を受信する受信ステップと、
前記要求を受信した時刻情報を提供する時刻情報提供ステップと、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データに前記時刻情報提供ステップで提供される前記時刻情報を連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、
前記ルート値に施されたデジタル署名、前記リーフに割り当てられた前記ダイジェスト、および前記要求を受信した時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、
前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、
前記時刻証明書および前記補完情報を前記利用者装置に送信する送信ステップと、
を前記時刻証明装置に実行させることを特徴とする時刻証明プログラム。
【請求項４１】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置の時刻証明プログラムであって、
前記要求に含まれる時刻証明対象データと、時刻証明要求受付装置が前記要求を受信した時刻である前記第１の時刻情報との組み合わせである前記第２の要求を前記時刻証明要求受付装置から受信する受信ステップと、
前記第２の要求を受信した時刻である第２の時刻情報を提供する時刻情報提供ステップと、
前記第１の時刻情報と、前記第２の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、
前記ルート値から部分署名を生成する部分署名生成ステップと、
前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信ステップと、
を前記時刻証明装置に実行させることを特徴とする時刻証明プログラム。
【請求項４２】
前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを特徴とする請求項３７乃至３９のいずれか１項に記載の時刻証明プログラム。
【請求項４３】
前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを特徴とする請求項３７乃至４２のいずれか１項に記載の時刻証明プログラム。
【請求項４４】
前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを特徴とする請求項３７乃至４２のいずれか１項に記載の時刻証明プログラム。
【請求項４５】
前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを特徴とする請求項３７乃至４２のいずれか１項に記載の時刻証明プログラム。
【請求項４６】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめる時刻証明要求受付装置と、前記時刻証明要求受付装置でまとめた値を前記コンピュータネットワークを介して受け付けて、前記まとめた値に時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付プログラムであって、
前記利用者装置から前記要求を受信する受信ステップと、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てる値を計算する時刻証明要求まとめステップと、
前記二分木のルート値を前記時刻証明装置に送信する送信ステップと、
前記二分木のルート値に時刻情報を付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を前記時刻証明装置から受信する時刻証明書受信ステップと、
前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、
前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、
を前記時刻証明要求受付装置に実行させることを特徴とする時刻証明要求受付プログラム。
【請求項４７】
前記時刻証明書受信ステップは、
前記まとめが終了したときに提供された現ラウンド終了時刻を前記二分木のルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信することを特徴とする請求項４６記載の時刻証明要求受付プログラム。
【請求項４８】
前記時刻証明要求まとめステップは、
前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、
前記送信ステップは、
前記直前ルート値に対して前記時刻証明装置により付与された時刻を前ラウンド終了時刻と定義すると、前記直前ルート値及び前記前ラウンド終了時刻を前記前記時刻証明装置に送信し、
前記時刻証明書受信ステップは、
前記前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し、
前記補完情報取得ステップは、
前記直前ルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、
前記時刻証明書送信ステップは、
前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを特徴とする請求項４７記載の時刻証明要求受付プログラム。
【請求項４９】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付プログラムであって、
前記利用者装置から前記要求を受信する受信ステップと、
前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第１の時刻情報と、の組み合わせである前記第２の要求を前記複数の時刻証明装置それぞれに送信する送信ステップと、
前記複数の時刻証明装置それぞれが、前記第１の時刻情報と前記第２の要求を受信した時刻である第２の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信ステップと、
前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、
前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、
前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、
を前記時刻証明要求受付装置に実行させることを特徴とする時刻証明要求受付プログラム。
【請求項５０】
前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを特徴とする請求項４６及び４８のいずれか１項に記載の時刻証明要求受付プログラム。
【請求項５１】
前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成ステップは、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを特徴とする請求項４９記載の時刻証明要求受付プログラム。
【請求項５２】
前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを特徴とする請求項４６乃至５１のいずれか１項に記載の時刻証明要求受付プログラム。
【請求項５３】
前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを特徴とする請求項４６乃至５１のいずれか１項に記載の時刻証明要求受付プログラム。
【請求項５４】
前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを特徴とする請求項４６乃至５１のいずれか１項に記載の時刻証明要求受付プログラム。
【請求項５５】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめて、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、
前記所定の時間を決定する時刻情報を提供する時刻情報提供手段と、
前記時刻情報提供手段から提供された前記時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された時刻情報を含む前記時刻証明書を作成する時刻証明書作成手段と、
前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する前記時刻証明装置から
前記時刻証明書および前記補完情報を受信する受信ステップと、
前記時刻証明装置に送信した前記要求および前記補完情報から計算した前記二分木のルート値と、前記時刻証明書に含まれる前記ルート値と、が一致するか否かを検証する第１の検証ステップと、
前記時刻証明書に含まれる前記デジタル署名が前記ルート値および前記時刻情報を連接した連接値に対して為されたものであるか否かを検証する第２の検証ステップと、
を前記利用者装置に実行させることを特徴とする時刻証明検証プログラム。
【請求項５６】
前記時刻証明書作成手段は、
前記まとめが終了したときに前記時刻情報提供手段から提供された現ラウンド終了時刻を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、
前記第２の検証ステップは、
前記時刻証明書に含まれる前記デジタル署名が前記ルート値および現ラウンド終了時刻を連接した連接値に対して為されたものであるか否かを検証することを特徴とする請求項５５記載の時刻証明検証プログラム。
【請求項５７】
前記時刻証明要求まとめ手段は、
前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、
前記時刻証明書作成手段は、
前記要求が割り当てられた単位時間の直前の単位時間の終了時に前記時刻情報提供ステップから提供された前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、
前記補完情報取得手段は、
前記直前のルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、
前記送信手段は、
前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信し、
前記直前ルート値および前記直前ルート値の補完情報から計算した前記二分木のルート値と、前記時刻証明書に含まれる前記ルート値と、が一致するか否かを検証する第３の検証ステップと、
を前記利用者装置に実行させることを特徴とする請求項５６記載の時刻証明検証プログラム。
【請求項５８】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめる時刻証明要求受付装置と、前記時刻証明要求受付装置でまとめた値を前記コンピュータネットワークを介して受け付けて、前記まとめた値に時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、
前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、
前記所定の時間を決定する時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された時刻情報を含む前記時刻証明書を前記時刻証明装置から受信する時刻証明書受信手段と、
前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する前記時刻証明要求受付装置から
前記時刻証明書および前記補完情報を受信する受信ステップと、
前記時刻証明要求受付装置に送信した前記要求および前記補完情報から計算した前記二分木のルート値と、前記時刻証明書に含まれる前記ルート値と、が一致するか否かを検証する第１の検証ステップと、
前記時刻証明書に含まれる前記デジタル署名が前記ルート値および前記時刻情報を連接した連接値に対して為されたものであるか否かを検証する第２の検証ステップと、
を前記利用者装置に実行させることを特徴とする時刻証明検証プログラム。
【請求項５９】
前記時刻証明書受信手段は、
前記まとめが終了したときに提供された現ラウンド終了時刻を前記二分木のルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し、
前記第２の検証ステップは、
前記時刻証明書に含まれる前記デジタル署名が前記ルート値および前記現ラウンド終了時刻を連接した連接値に対して為されたものであるか否かを検証することを特徴とする請求項５８記載の時刻証明検証プログラム。
【請求項６０】
前記時刻証明要求まとめ手段は、
前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、
前記時刻証明要求受付装置は、
前記直前ルート値に対して前記時刻証明装置により付与された時刻を前ラウンド終了時刻と定義すると、前記直前ルート値及び前記前ラウンド終了時刻を前記前記時刻証明装置に送信する手段を有し、
前記時刻証明書受信手段は、
前記前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し
前記補完情報取得手段は、
前記直前ルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、
前記受信ステップは、
前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置から受信し、
前記直前ルート値および前記直前ルート値の補完情報から計算した前記二分木のルート値と、前記時刻証明書に含まれる前記ルート値と、が一致するか否かを検証する第３の検証ステップと、
を前記利用者装置に実行させることを特徴とする請求項５９記載の時刻証明検証プログラム。
【請求項６１】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求に時刻情報を付すとともに、二分木を利用してまとめて、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、
前記要求を受信した時刻情報を提供する時刻情報提供手段と、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データに前記時刻情報提供手段から提供される前記時刻情報を連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記ダイジェストの値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、前記ルート値に施されたデジタル署名、前記リーフに割り当てられた前記ダイジェスト、および前記要求を受信した時刻情報を含む前記時刻証明書を作成する時刻証明書作成手段と、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する時刻証明装置から前記時刻証明書および前記補完情報を受信する受信ステップと、
前記時刻証明装置に送信した前記要求に含まれる時刻証明対象データと前記時刻証明書に含まれる前記時刻情報とを連接した連接値のダイジェストと、前記時刻証明書に含まれる前記リーフに割り当てられた前記ダイジェストと、が一致するか否かを検証する第１の検証ステップと、
前記時刻証明書に含まれるデジタル署名が前記時刻証明書に含まれる、前記リーフに割り当てられた前記ダイジェストおよび前記補完情報から計算された前記二分木のルート値に対して為されたものであるか否かを検証する第２の検証ステップと、
を前記利用者装置に実行させることを特徴とする時刻証明検証プログラム。
【請求項６２】
所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、
前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻情報である前記第１の時刻情報と、の組み合わせである前記第２の要求を前記複数の時刻証明装置それぞれに送信する送信手段と、前記複数の時刻証明装置それぞれが、前記第１の時刻情報と前記第２の要求を受信した時刻である第２の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信手段と、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、前記第１の時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する前記時刻証明要求受付装置から前記時刻証明書および前記補完情報を受信する受信ステップと、
前記時刻証明要求受付装置に送信した前記要求に含まれる時刻証明対象データと前記時刻証明書に含まれる前記時刻情報とを連接した連接値のダイジェストと、前記時刻証明書に含まれる前記リーフに割り当てられた前記ダイジェストと、が一致するか否かを検証する第１の検証ステップと、
前記時刻証明書に含まれる前記全体署名が前記時刻証明書に含まれる、前記リーフに割り当てられた前記ダイジェストおよび前記補完情報から計算された前記二分木のルート値に対して為されたか否かを検証する第２の検証ステップと、
を前記利用者装置に実行させることを特徴とする時刻証明検証プログラム。
【請求項６３】
請求項３７乃至６２のいずれか１項に記載されたプログラムを記録したことを特徴とするプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＫＩ（Public Key Infrastructure；公開鍵基盤）におけるタイムスタンプ技術に関し、より詳しくは、２分木（Merkle tree）を利用して時刻証明を行う時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体に関する。
【背景技術】
【０００２】
タイムスタンプ技術は、デジタルデータがある特定時刻に存在していたことを証明するとともに、その時刻以降データが変更されていないことを証明する技術である。近年、インターネット上での電子商取引の活発化や、デジタル文書管理の利用拡大に伴い、「誰が、いつ、どんなデータを生成し、交信したか」を第三者が証明する電子公証の仕組みが必要とされている。電子公証は、送受信者の特定、到達確認、時刻情報の付与、改ざんの検知、電子文書保管等の機能を具備するものであるが、タイムスタンプ技術は、このうち、時刻情報の付与及び改ざんの検知の機能を実現するものである。
【０００３】
図１７は、このようなタイムスタンプ技術を用いたタイムスタンプシステムである。同図に示すタイムスタンプシステム９００は、利用者（要求者、検証者）３０がタイムスタンプの対象データをＴＳＡ（Time Stamping Authority；タイムスタンプ生成機関）１０に送信すると、ＴＳＡ１０がＴＡ（Time Authority；時刻源である時刻情報提供機関）２０から時刻情報を入手して、利用者３０から要求された対象データに対してタイムスタンプを生成し、該タイムスタンプを利用者３０に返信するようになっている。そして、このＴＳＡ１０で発行されるタイムスタンプは、通常、利用者３０から送られる対象データに時刻情報を付した結果である署名対象データに対して生成したデジタル署名を含む時刻証明書となっている。
【０００４】
尚、この出願に関連する先行技術文献情報としては、次のものがある。
【０００５】
ここで、非特許文献１では、図１７のＴＳＡ１０において公開鍵基盤とデジタル署名を用いることによりタイムスタンプを生成する方式について述べている。
【０００６】
非特許文献２では、前もって定められた一定時間（例えば１秒間、これをラウンドという）に受け付けた時刻証明要求を２分木等を用いて、集約ハッシュ値と呼ばれる１つのハッシュ値に集約して該集約ハッシュ値含む時刻証明書を発行し、また該時刻証明書を該集約間隔より前に同様に生成された時刻証明書を結合してそれら時刻証明書の生成順序を偽造不可能な形で証明するようなリンク情報を生成し、さらに前もって定められた公開間隔（例えば１週間）毎に該リンク情報を公表することにより、デジタルデータがある特定時刻に存在していたことを証明するとともに、その時刻以降データが変更されていないことを証明することを可能とするタイムスタンプ方式を記述している。尚、この方式においては公開鍵基盤とデジタル署名はタイムスタンプを実現するための主要な手段ではなく、用いられないかまたは補助的に用いられるのみである。
【非特許文献１】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.
【発明の開示】
【発明が解決しようとする課題】
【０００７】
タイムスタンプ・システムに対する要件として、以下の５つの条件が挙げられる。第1には、予想される時刻証明要求を処理するために十分な、タイムスタンプの生成のための処理能力を持つことである。第２には、公開鍵基盤とデジタル署名を用いる方式を採用する場合には、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため時刻証明書の有効期限延長のための処理が必要となるが、この有効期限延長を容易に実現する手順が存在しかつこの手順を実行するために十分な処理能力を持つことである。第３には、時刻証明要求を TSA に送信し時刻証明書を受信するクライアントは、時刻証明書の正当性を検証できることであるが、この際、時刻証明書の受信時に、遅滞なく即時に当該の時刻証明書の正当性を検証できることが望ましく、また発行された時刻証明書に付された時刻とその元となった時刻証明要求のTSAによる受付けの時刻が如何なる関係であるかが明確であることが望ましい。第４には、TSA におけるプログラムによる処理においては、プログラム上のエラーが逸早く検出可能で、エラーの影響が限定されるという意味でプログラム上のエラーに対して高い耐性を持つことである。第５には、TSAのサービスが災害やビジネス上の理由で継続不能となったとき、時刻証明書の正当性を保証する方法が存在することであるが、この際この保証方法を実行する上で、タイムスタンプ・サービスのクライアントに対する負荷が小さいことが望ましい。
【０００８】
非特許文献１で述べられている、TSAにおいて公開鍵基盤とデジタル署名を用いることによりタイムスタンプを生成する方式は、前述のタイムスタンプ・システムに対する要件に照らして、次のような問題点がある。まず上記第1の要件に関して、公開鍵基盤を前提としたタイムスタンプシステム９００においてデジタル署名の処理量が大きいので、利用者３０からタイムスタンプの要求が多く、一時的に集中するような場合には、ＴＳＡ１０に設けられた時刻証明装置は、正確な時刻情報を付して時刻証明を行うことが困難であるという問題がある。また、上記第２の要件に関しては、該方式は公開鍵基盤とデジタル署名を用いることによりタイムスタンプを生成する方式であるため、非特許文献３で述べられているように公開鍵の有効期限が切れる前にタイムスタンプの延長処理を行う必要があるが、この際の処理量が大きいこと、及びこの延長処理を行うためにタイムスタンプ受領者による手続きが必要となるという問題がある。
【０００９】
尚、上記の要件のうち第３、第４、第５については、該方式に大きな問題はない。まず上記第３の要件に関して、該方式は、デジタル署名の検証機能と公開鍵基盤の提供する公開鍵証明書の有効性検証機能により、受理した時刻証明書の有効性を即時に検証できるため問題はない。上記第４の要件に関して、該方式は、時刻証明書を発行する上でのプログラム上のエラーは、個々の時刻証明書の検証を行うことにより発見可能であり、ある時刻証明書を発行する上でのプログラム上のエラーはその時刻証明書のみに影響するという意味で、プログラム上のエラーに対して高い耐性を持ち問題はない。上記第５の要件に関して、該方式は、TSAのサービスが災害やビジネス上の理由で継続不能になっても、時刻証明書作成に用いられた署名鍵に対応する公開鍵証明書の、時刻証明を行った時点における有効性が CA (Certificate Authority)等により保証される限りは、非特許文献３で記載された再署名の方法等により時刻証明書の有効性を保持することが出来るため問題はない。
【００１０】
非特許文献２で述べられている、時刻証明要求の集約、リンク情報の生成、及びリンク情報の定期的な公表を利用する方式は、前述のタイムスタンプ・システムに対する要件に照らして、次のような問題点がある。上記第３の要件に関して、該方式においては、時刻証明要求を送付したクライアントは、受領した時刻証明書の正しさを、上記の公開間隔が終わるまで検証することが出来ないという意味で即時検証性がないという問題がある。また発行された時刻証明書に付された時刻は、所定の方法で集約される複数の時刻証明要求に対して同一の値とすることになっており、この時刻と、該複数の時刻証明要求に属する個々の時刻証明要求のTSAによる受付けの時刻が如何なる関係であるかが明確でないという問題点がある。上記第４の要件に関して、該方式においては、以下の意味でプログラム・ロジックに対する耐性が小さいといいう問題がある。即ち、ある時刻証明書をそれより前に発行された時刻証明書と結合するリンク情報を生成する処理のプログラム・ロジックが比較的複雑でエラーが混入する可能性があるが、もしエラーがあった場合には、上記の公開間隔が終わるまで検出することが困難で、かつエラーが検出されたときには当該の公開間隔に発行された全ての時刻証明書に影響を及ぼす可能性がある。上記第５の要件に関して、該方式においては、TSAのサービスが災害やビジネス上の理由で継続不能となったとき、あるクライアントがあるラウンドで受理した時刻証明書がある公表間隔で発行されたこと等、該時刻証明書の正当性を保証するためには、公表間隔（例えば１週間）の間に各ラウンドで発行した全ての時刻証明書の集約ハッシュ値を該クライアントは取得し保存する必要がある。この集約ハッシュ値の個数は、例えばラウンドが１秒で公表間隔が１週間のとき604800個となり、時刻証明書の正当性を保証するためにクライアントが取得・保存しなければならないデータの量が膨大になるという問題がある。
【００１１】
尚、上記の要件のうち第１、第２については、該方式に大きな問題はない。まず上記第１の要件に関して、該方式は、時刻証明書の発行に際して、処理量の多いデジタル署名ではなく、高速実行できるハッシュ関数を用いているため問題はない。また、上記第２の要件に関して、該方式は公開鍵基盤やデジタル署名を用いていないため、公開鍵証明書の有効期限による時刻証明書の延長処理を行う必要がないため問題はない。
【００１２】
本発明は、上記の課題を解決するためになされたものであり、公開鍵基盤に基づくタイムスタンプシステムにおいて二分木を利用することにより、前記５つの要件を満たすような時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体を提供することを目的とする。即ち、第１に、利用者から一時的に多くの時刻証明要求があっても、正確な時刻を付して時刻証明を行うことができ、第２に、時刻証明書の有効期限延長を容易に実現する手順が存在しかつこの手順を実行するために十分な処理能力を持ち、第３に、タイムスタンプ・サービスのクライアントは時刻証明書を受理したときに遅滞なく即時に当該の時刻証明書の正当性を検証でき、第４に、TSA におけるプログラムによる処理においては、プログラム上のエラーが逸早く検出可能でエラーの影響が限定されるという意味でプログラム上のエラーに対して高い耐性を持ち、第５に、TSAのサービスが災害やビジネス上の理由で継続不能となったとき、時刻証明書の正当性を保証する方法があり、この保証方法を実行する上で、TSAのサービスのクライアントに対する負荷が小さいような時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、請求項１記載の本発明は、公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめ、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明装置であって、前記利用者装置から前記要求を受信する受信手段と、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、前記所定の時間を決定する時刻情報を提供する時刻情報提供手段と、前記時刻情報提供手段から提供された前記時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を前記要求の補完情報として取得する補完情報取得手段と、前記時刻証明書および前記補完情報を前記利用者装置に送信する送信手段と、を有することを要旨とする。
【００１４】
請求項２記載の本発明は、請求項１記載の発明において、前記時刻証明書作成手段は、前記まとめが終了したときに前記時刻情報提供手段から提供された現ラウンド終了時刻を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成することを要旨とする。
【００１５】
請求項３記載の本発明は、請求項２記載の発明において、前記時刻証明要求まとめ手段は、前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、前記時刻証明書作成手段は、前記要求が割り当てられた単位時間の直前の単位時間の終了時に前記時刻情報提供手段から提供された前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、前記補完情報取得手段は、前記直前のルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、前記送信手段は、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを要旨とする。
【００１６】
請求項４記載の本発明は、公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求に時刻情報を付すとともに、二分木を利用してまとめ、まとめた値に対してデジタル署名を生成する時刻証明装置であって、前記利用者装置から前記要求を受信する受信手段と、前記要求を受信した時刻情報を提供する時刻情報提供手段と、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データに前記時刻情報提供手段から提供される前記時刻情報を連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、前記ルート値に施されたデジタル署名、前記リーフに割り当てられた前記ダイジェスト、および前記要求を受信した時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、前記時刻証明書および前記補完情報を前記利用者装置に送信する送信手段と、を有することを要旨とする。
【００１７】
請求項５記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置であって、前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻である前記第１の時刻情報との組み合わせである前記第２の要求を前記時刻証明要求受付装置から受信する受信手段と、前記第２の要求を受信した時刻である第２の時刻情報を提供する時刻情報提供手段と、前記第１の時刻情報と、前記第２の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、前記ルート値から部分署名を生成する部分署名生成手段と、前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信手段と、を有することを要旨とする。
【００１８】
請求項６記載の本発明は、請求項１乃至３のいずれか１項に記載の発明において、前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを要旨とする。
【００１９】
請求項７記載の本発明は、請求項１乃至６のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを要旨とする。
【００２０】
請求項８記載の本発明は、請求項１乃至６のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを要旨とする。
【００２１】
請求項９記載の本発明は、請求項１乃至６のいずれか１項に記載の発明において、前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを要旨とする。
【００２２】
請求項１０記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめる時刻証明要求受付装置と、前記時刻証明要求受付装置でまとめた値を前記コンピュータネットワークを介して受け付けて、前記まとめた値に時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置であって、前記利用者装置から前記要求を受信する受信手段と、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てる値を計算する時刻証明要求まとめ手段と、前記二分木のルート値を前記時刻証明装置に送信する送信手段と、前記二分木のルート値に時刻情報を付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を前記時刻証明装置から受信する時刻証明書受信手段と、前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信手段と、を有することを要旨とする。
【００２３】
請求項１１記載の本発明は、請求項１０記載の発明において、前記時刻証明書受信手段は、前記まとめが終了したときに提供された現ラウンド終了時刻を前記二分木のルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信することを要旨とする。
【００２４】
請求項１２記載の本発明は、請求項１１記載の発明において、前記時刻証明要求まとめ手段は、前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、前記送信手段は、前記直前ルート値に対して前記時刻証明装置により付与された時刻を前ラウンド終了時刻と定義すると、前記直前ルート値及び前記前ラウンド終了時刻を前記前記時刻証明装置に送信し、前記時刻証明書受信手段は、前記前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し、前記補完情報取得手段は、前記直前ルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、前記時刻証明書送信手段は、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを要旨とする。
【００２５】
請求項１３記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置であって、前記利用者装置から前記要求を受信する受信手段と、前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第１の時刻情報と、の組み合わせである前記第２の要求を前記複数の時刻証明装置それぞれに送信する送信手段と、前記複数の時刻証明装置それぞれが、前記第１の時刻情報と前記第２の要求を受信した時刻である第２の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信手段と、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信手段と、を有することを要旨とする。
【００２６】
請求項１４記載の本発明は請求項１０乃至１２のいずれか１項に記載の発明において、前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを要旨とする。
【００２７】
請求項１５記載の本発明は、請求項９記載の発明において、前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成手段は、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを要旨とする。
【００２８】
請求項１６記載の本発明は、請求項１０乃至１５のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを要旨とする。
【００２９】
請求項１７記載の本発明は、請求項１０乃至１５のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを要旨とする。
【００３０】
請求項１８記載の本発明は、請求項１０乃至１５のいずれか１項に記載の発明において、前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを要旨とする。
【００３１】
請求項１９記載の本発明は、公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されている時刻証明装置が、所定の時間内における複数の前記要求を二分木を利用してまとめ、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明方法であって、前記利用者装置から前記要求を受信する受信ステップと、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求の値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、前記所定の時間を決定する時刻情報を提供する時刻情報提供ステップと、前記時刻情報提供ステップにおいて提供された前記時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を前記要求の補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する送信ステップと、を有することを要旨とする。
【００３２】
請求項２０記載の本発明は、請求項１９記載の発明において、前記時刻証明書作成ステップは、前記まとめが終了したときに前記時刻情報提供ステップから提供された現ラウンド終了時刻を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成することを要旨とする。
【００３３】
請求項２１記載の本発明は、請求項２０記載の発明において、前記時刻証明要求まとめステップは、前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、前記時刻証明書作成ステップは、前記要求が割り当てられた単位時間の直前の単位時間の終了時に前記時刻情報提供ステップから提供された前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、前記補完情報取得ステップは、前記直前のルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、前記送信ステップは、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを要旨とする。
【００３４】
請求項２２記載の本発明は、公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されている時刻証明装置が、所定の時間内における複数の前記要求に時刻情報を付すとともに、二分木を利用してまとめ、まとめた値に対してデジタル署名を生成する時刻証明方法であって、前記利用者装置から前記要求を受信する受信ステップと、前記要求を受信した時刻情報を提供する時刻情報提供ステップと、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データに前記時刻情報提供ステップで提供される前記時刻情報を連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、前記ルート値に施されたデジタル署名、前記リーフに割り当てられた前記ダイジェスト、および前記要求を受信した時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する送信ステップと、を有することを要旨とする。
【００３５】
請求項２３記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置の時刻証明方法であって、前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻である前記第１の時刻情報との組み合わせである前記第２の要求を前記時刻証明要求受付装置から受信する受信ステップと、前記第２の要求を受信した時刻である第２の時刻情報を提供する時刻情報提供ステップと、前記第１の時刻情報と、前記第２の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、前記ルート値から部分署名を生成する部分署名生成ステップと、前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信ステップと、を有することを要旨とする。
【００３６】
請求項２４記載の本発明は、請求項１９乃至２１のいずれか１項に記載の発明において、前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを要旨とする。
【００３７】
請求項２５記載の本発明は、請求項１９乃至２４のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを要旨とする。
【００３８】
請求項２６記載の本発明は、請求項１９乃至２４のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを要旨とする。
【００３９】
請求項２７記載の本発明は、請求項１９乃至２４のいずれか１項に記載の発明において、前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを要旨とする。
【００４０】
請求項２８記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめる時刻証明要求受付装置と、前記時刻証明要求受付装置でまとめた値を前記コンピュータネットワークを介して受け付けて、前記まとめた値に時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付方法であって、前記利用者装置から前記要求を受信する受信ステップと、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てる値を計算する時刻証明要求まとめステップと、前記二分木のルート値を前記時刻証明装置に送信する送信ステップと、前記二分木のルート値に時刻情報を付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を前記時刻証明装置から受信する時刻証明書受信ステップと、前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、を有することを要旨とする。
【００４１】
請求項２９記載の本発明は、請求項２８記載の発明において、前記時刻証明書受信ステップは、前記まとめが終了したときに提供された現ラウンド終了時刻を前記二分木のルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信することを要旨とする。
【００４２】
請求項３０記載の本発明は、請求項２９記載の発明において、前記時刻証明要求まとめステップは、前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、前記送信ステップは、前記直前ルート値に対して前記時刻証明装置により付与された時刻を前ラウンド終了時刻と定義すると、前記直前ルート値及び前記前ラウンド終了時刻を前記前記時刻証明装置に送信し、前記時刻証明書受信ステップは、前記前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し、前記補完情報取得ステップは、前記直前ルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、前記時刻証明書送信ステップは、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを要旨とする。
【００４３】
請求項３１記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付方法であって、前記利用者装置から前記要求を受信する受信ステップと、前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第１の時刻情報と、の組み合わせである前記第２の要求を前記複数の時刻証明装置それぞれに送信する送信ステップと、前記複数の時刻証明装置それぞれが、前記第１の時刻情報と前記第２の要求を受信した時刻である第２の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信ステップと、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、を有することを要旨とする。
【００４４】
請求項３２記載の本発明は、請求項２８乃至３０のいずれか１項に記載の発明において、前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを要旨とする。
【００４５】
請求項３３記載の本発明は、請求項３１記載の発明において、前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成ステップは、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを要旨とする。
【００４６】
請求項３４記載の本発明は請求項２８乃至３３のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを要旨とする。
【００４７】
請求項３５記載の本発明は、請求項２８乃至３３のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを要旨とする。
【００４８】
請求項３６記載の本発明は、請求項２８乃至３３のいずれか１項に記載の発明において、前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを要旨とする。
【００４９】
請求項３７記載の本発明は、公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されている時刻証明装置が、所定の時間内における複数の前記要求を二分木を利用してまとめ、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明プログラムであって、前記利用者装置から前記要求を受信する受信ステップと、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求の値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、前記所定の時間を決定する時刻情報を提供する時刻情報提供ステップと、前記時刻情報提供ステップにおいて提供された前記時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を前記要求の補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する送信ステップと、を前記時刻証明装置に実行させることを要旨とする。
【００５０】
請求項３８記載の本発明は、請求項３７記載の発明において、前記時刻証明書作成ステップは、前記まとめが終了したときに前記時刻情報提供ステップから提供された現ラウンド終了時刻を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成することを要旨とする。
【００５１】
請求項３９記載の本発明は、請求項３８記載の発明において、前記時刻証明要求まとめステップは、前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、前記時刻証明書作成ステップは、前記要求が割り当てられた単位時間の直前の単位時間の終了時に前記時刻情報提供ステップから提供された前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、前記補完情報取得ステップは、前記直前のルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、前記送信ステップは、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを要旨とする。
【００５２】
請求項４０記載の本発明は、公開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されている時刻証明装置が、所定の時間内における複数の前記要求に時刻情報を付すとともに、二分木を利用してまとめ、まとめた値に対してデジタル署名を生成する時刻証明プログラムであって、前記利用者装置から前記要求を受信する受信ステップと、前記要求を受信した時刻情報を提供する時刻情報提供ステップと、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データに前記時刻情報提供ステップで提供される前記時刻情報を連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、前記ルート値に施されたデジタル署名、前記リーフに割り当てられた前記ダイジェスト、および前記要求を受信した時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する送信ステップと、を前記時刻証明装置に実行させることを要旨とする。
【００５３】
請求項４１記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明装置の時刻証明プログラムであって、前記要求に含まれる時刻証明対象データと、時刻証明要求受付装置が前記要求を受信した時刻である前記第１の時刻情報との組み合わせである前記第２の要求を前記時刻証明要求受付装置から受信する受信ステップと、前記第２の要求を受信した時刻である第２の時刻情報を提供する時刻情報提供ステップと、前記第１の時刻情報と、前記第２の時刻情報の差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめステップと、前記ルート値から部分署名を生成する部分署名生成ステップと、前記部分署名から全体署名を生成し、該全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書、並びに前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値である補完情報を前記利用者装置に送信する前記時刻証明要求受付装置に、前記部分署名を送信する送信ステップと、を前記時刻証明装置に実行させることを要旨とする。
【００５４】
請求項４２記載の本発明は、請求項３７乃至３９のいずれか１項に記載の発明において、前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを要旨とする。
【００５５】
請求項４３記載の本発明は、請求項３７乃至４２のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを要旨とする。
【００５６】
請求項４４記載の本発明は、請求項３７乃至４２のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを要旨とする。
【００５７】
請求項４５記載の本発明は、請求項３７乃至４２のいずれか１項に記載の発明において、前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを要旨とする。
【００５８】
請求項４６記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめる時刻証明要求受付装置と、前記時刻証明要求受付装置でまとめた値を前記コンピュータネットワークを介して受け付けて、前記まとめた値に時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付プログラムであって、前記利用者装置から前記要求を受信する受信ステップと、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てる値を計算する時刻証明要求まとめステップと、前記二分木のルート値を前記時刻証明装置に送信する送信ステップと、前記二分木のルート値に時刻情報を付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記時刻情報を含む時刻証明書を前記時刻証明装置から受信する時刻証明書受信ステップと、前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、を前記時刻証明要求受付装置に実行させることを要旨とする。
【００５９】
請求項４７記載の本発明は、請求項４６記載の発明において、前記時刻証明書受信ステップは、前記まとめが終了したときに提供された現ラウンド終了時刻を前記二分木のルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信することを要旨とする。
【００６０】
請求項４８記載の本発明は、請求項４７記載の発明において、前記時刻証明要求まとめステップは、前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、前記送信ステップは、前記直前ルート値に対して前記時刻証明装置により付与された時刻を前ラウンド終了時刻と定義すると、前記直前ルート値及び前記前ラウンド終了時刻を前記前記時刻証明装置に送信し、前記時刻証明書受信ステップは、前記前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し、前記補完情報取得ステップは、前記直前ルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、前記時刻証明書送信ステップは、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信することを要旨とする。
【００６１】
請求項４９記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記時刻証明要求受付装置の時刻証明要求受付プログラムであって、前記利用者装置から前記要求を受信する受信ステップと、前記要求に含まれる時刻証明対象データと、前記要求を受信した時刻である前記第１の時刻情報と、の組み合わせである前記第２の要求を前記複数の時刻証明装置それぞれに送信する送信ステップと、前記複数の時刻証明装置それぞれが、前記第１の時刻情報と前記第２の要求を受信した時刻である第２の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信ステップと、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、および前記第１の時刻情報を含む時刻証明書を作成する時刻証明書作成ステップと、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得ステップと、前記時刻証明書および前記補完情報を前記利用者装置に送信する時刻証明書送信ステップと、を前記時刻証明要求受付装置に実行させることを要旨とする。
【００６２】
請求項５０記載の本発明は、請求項４６及び４８のいずれか１項に記載の発明において、前記二分木のリーフに割り当てられる値は、前記要求に含まれる時刻証明対象データのキー付きハッシュ値であることを要旨とする。
【００６３】
請求項５１記載の本発明は、請求項４９記載の発明において、前記部分署名は、閾値型の分散署名方式であり、前記時刻証明書作成ステップは、前記複数の時刻証明装置から受信した部分署名が所定の数以上ある場合には、全体署名を生成することを要旨とする。
【００６４】
請求項５２記載の本発明は、請求項４６乃至５１のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さの違いを１以内に押さえ、ダミーノードを作成しない方法により、動的に構成されることを要旨とする。
【００６５】
請求項５３記載の本発明は、請求項４６乃至５１のいずれか１項に記載の発明において、前記二分木は、前記要求の数が確定した後に、深さを単一にして、ダミーノードを作成する方法により、動的に構成されることを要旨とする。
【００６６】
請求項５４記載の本発明は、請求項４６乃至５１のいずれか１項に記載の発明において、前記二分木は、深さを単一にして、ダミーノードを作成する方法により、前記要求を受け付ける都度、そこから計算できる二分木の部分を構成していくことを要旨とする。
【００６７】
請求項５５記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめて、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求に含まれる時刻証明対象データの値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、前記所定の時間を決定する時刻情報を提供する時刻情報提供手段と、前記時刻情報提供手段から提供された前記時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された時刻情報を含む前記時刻証明書を作成する時刻証明書作成手段と、前記要求に含まれる時刻証明対象データが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する前記時刻証明装置から前記時刻証明書および前記補完情報を受信する受信ステップと、前記時刻証明装置に送信した前記要求および前記補完情報から計算した前記二分木のルート値と、前記時刻証明書に含まれる前記ルート値と、が一致するか否かを検証する第１の検証ステップと、前記時刻証明書に含まれる前記デジタル署名が前記ルート値および前記時刻情報を連接した連接値に対して為されたものであるか否かを検証する第２の検証ステップと、を前記利用者装置に実行させることを要旨とする。
【００６８】
請求項５６記載の本発明は、請求項５５記載の発明において、前記時刻証明書作成手段は、前記まとめが終了したときに前記時刻情報提供手段から提供された現ラウンド終了時刻を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、前記第２の検証ステップは、前記時刻証明書に含まれる前記デジタル署名が前記ルート値および現ラウンド終了時刻を連接した連接値に対して為されたものであるか否かを検証することを要旨とする。
【００６９】
請求項５７記載の本発明は、請求項５６記載の発明において、前記時刻証明要求まとめ手段は、前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、前記時刻証明書作成手段は、前記要求が割り当てられた単位時間の直前の単位時間の終了時に前記時刻情報提供ステップから提供された前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を作成し、前記補完情報取得手段は、前記直前のルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、前記送信手段は、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置に送信し、前記直前ルート値および前記直前ルート値の補完情報から計算した前記二分木のルート値と、前記時刻証明書に含まれる前記ルート値と、が一致するか否かを検証する第３の検証ステップと、を前記利用者装置に実行させることを要旨とする。
【００７０】
請求項５８記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求を二分木を利用してまとめる時刻証明要求受付装置と、前記時刻証明要求受付装置でまとめた値を前記コンピュータネットワークを介して受け付けて、前記まとめた値に時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、前記所定の時間内に受信した前記要求を前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記要求の値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、前記所定の時間を決定する時刻情報を前記ルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された時刻情報を含む前記時刻証明書を前記時刻証明装置から受信する受信手段と、前記要求が割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する前記時刻証明要求受付装置から前記時刻証明書および前記補完情報を受信する受信ステップと、前記時刻証明要求受付装置に送信した前記要求および前記補完情報から計算した前記二分木のルート値と、前記時刻証明書に含まれる前記ルート値と、が一致するか否かを検証する第１の検証ステップと、前記時刻証明書に含まれる前記デジタル署名が前記ルート値および前記時刻情報を連接した連接値に対して為されたものであるか否かを検証する第２の検証ステップと、を前記利用者装置に実行させることを要旨とする。
【００７１】
請求項５９記載の本発明は、請求項５８記載の発明において、前記時刻証明書受信手段は、前記まとめが終了したときに提供された現ラウンド終了時刻を前記二分木のルート値に付して施したデジタル署名、前記ルート値、および前記ルート値に付された前記現ラウンド終了時刻を含み、前記要求の受付け時刻が、前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し、前記第２の検証ステップは、前記時刻証明書に含まれる前記デジタル署名が前記ルート値および前記現ラウンド終了時刻を連接した連接値に対して為されたものであるか否かを検証することを要旨とする。
【００７２】
請求項６０記載の本発明は、請求項５９記載の発明において、前記時刻証明要求まとめ手段は、前記要求が割り当てられた所定の時間を単位時間とし、前記要求が割り当てられた所定の時間の直前の単位時間の終了後計算された直前の単位時間におけるルート値を直前ルート値とすると、前記要求が割り当てられた単位時間に構成される前記二分木の所定のリーフに前記直前ルート値を割当て、前記時刻証明要求受付装置は、前記直前ルート値に対して前記時刻証明装置により付与された時刻を前ラウンド終了時刻と定義すると、前記直前ルート値及び前記前ラウンド終了時刻を前記前記時刻証明装置に送信する手段を有し、前記時刻証明書受信手段は、前記前ラウンド終了時刻を含み、前記デジタル署名は、前記現ラウンド終了時刻及び前記前ラウンド終了時刻を前記ルート値に付して施したデジタル署名であり、前記要求の受付け時刻が、前記前ラウンド終了時刻より後でかつ前記現ラウンド終了時刻より前であることを証明する時刻証明書を前記時刻証明装置から受信し、前記補完情報取得手段は、前記直前ルート値を割当てられた前記二分木のリーフから該二分木のルート値を計算するのに必要な他のノードの値及び位置情報を直前ルート値の補完情報として取得し、前記受信ステップは、前記直前ルート値及び前記直前ルート値の補完情報を前記利用者装置から受信し、前記直前ルート値および前記直前ルート値の補完情報から計算した前記二分木のルート値と、前記時刻証明書に含まれる前記ルート値と、が一致するか否かを検証する第３の検証ステップと、を前記利用者装置に実行させることを要旨とする。
【００７３】
請求項６１記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の前記要求に時刻情報を付すとともに、二分木を利用してまとめて、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、前記要求を受信した時刻情報を提供する時刻情報提供手段と、前記所定の時間内に受信した前記要求に含まれる時刻証明対象データに前記時刻情報提供手段から提供される前記時刻情報を連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた前記ダイジェストの値から前記二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、前記ルート値に施されたデジタル署名、前記リーフに割り当てられた前記ダイジェスト、および前記要求を受信した時刻情報を含む前記時刻証明書を作成する時刻証明書作成手段と、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する時刻証明装置から前記時刻証明書および前記補完情報を受信する受信ステップと、前記時刻証明装置に送信した前記要求に含まれる時刻証明対象データと前記時刻証明書に含まれる前記時刻情報とを連接した連接値のダイジェストと、前記時刻証明書に含まれる前記リーフに割り当てられた前記ダイジェストと、が一致するか否かを検証する第１の検証ステップと、前記時刻証明書に含まれるデジタル署名が前記時刻証明書に含まれる、前記リーフに割り当てられた前記ダイジェストおよび前記補完情報から計算された前記二分木のルート値に対して為されたものであるか否かを検証する第２の検証ステップと、を前記利用者装置に実行させることを要旨とする。
【００７４】
請求項６２記載の本発明は、所定のデジタル情報に時刻情報の付与を要求する利用者装置と、前記利用者装置とコンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与する時刻証明要求受付装置と、前記時刻証明要求受付装置と前記コンピュータネットワークを介して接続されており、前記要求に含まれる時刻証明対象データに第１の時刻情報を付与した第２の要求を受け付けて、所定の時間内における、複数の前記第２の要求を二分木を利用してまとめ、まとめた値に部分署名をする複数の時刻証明装置と、を備える公開鍵基盤に基づくタイムスタンプシステムにおける前記利用者装置の時刻証明検証プログラムであって、前記要求に含まれる時刻証明対象データと、前記時刻証明要求受付装置が前記要求を受信した時刻情報である前記第１の時刻情報と、の組み合わせである前記第２の要求を前記複数の時刻証明装置それぞれに送信する送信手段と、前記複数の時刻証明装置それぞれが、前記第１の時刻情報と前記第２の要求を受信した時刻である第２の時刻情報との差が所定の限度内である場合には、前記所定の時間内に受信した前記第２の要求に含まれる前記要求要求内の時刻証明対象データと前記第１の時刻情報とを連接した連接値のダイジェストを前記二分木のリーフに順次割り当てて、同一の親を有する２つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた値から前記二分木のルートに割り当てるルート値を計算し、該ルート値に施した部分署名を、前記複数の時刻証明装置それぞれから受信する部分署名受信手段と、前記部分署名から生成される全体署名、前記リーフに割り当てられた前記ダイジェスト、前記第１の時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、前記ダイジェストが割り当てられた前記リーフから前記二分木のルート値を計算するのに必要な他のノードの値を補完情報として取得する補完情報取得手段と、を有する前記時刻証明要求受付装置から前記時刻証明書および前記補完情報を受信する受信ステップと、前記時刻証明要求受付装置に送信した前記要求要求内の時刻証明対象データと前記時刻証明書に含まれる前記時刻情報とを連接した連接値のダイジェストと、前記時刻証明書に含まれる前記リーフに割り当
てられた前記ダイジェストと、が一致するか否かを検証する第１の検証ステップと、前記時刻証明書に含まれる前記全体署名が前記時刻証明書に含まれる、前記リーフに割り当てられた前記ダイジェストおよび前記補完情報から計算された前記二分木のルート値に対して為されたか否かを検証する第２の検証ステップと、を前記利用者装置に実行させることを要旨とする。
【００７５】
請求項６３記載の本発明は、請求項３７乃至６２のいずれか１項に記載されたプログラムを記録したプログラム記録媒体であることを要旨とする。
【発明の効果】
【００７６】
本発明によれば、公開鍵基盤に基づくタイムスタンプシステムにおいて、時刻証明要求を二分木を利用してまとめ、そのまとめたルート値にデジタル署名を施すので、利用者装置から一時的に多くの時刻証明要求があっても、正確な時刻を付した時刻証明をすることができる。
【００７７】
また、時刻証明書の有効期限延長を容易に実現することができ、タイムスタンプ・サービスのクライアントは時刻証明書を受理したときに遅滞なく即時に当該の時刻証明書の正当性を検証できる。また発行された時刻証明書に付された１つまたは２つの時刻は、その元となった時刻証明要求がTSAに受付けられた時刻そのものであるか、或いは受付けられた時刻の後のある時刻であるか、 或いは受付けられた時刻の前および後の２つの時刻であり、時刻証明書に付された時刻と、時刻証明の受付けられた時刻の関係を明確にすることができる。
【００７８】
さらに、TSA におけるプログラムによる処理においては、プログラム上のエラーが逸早く検出可能でエラーの影響が限定されるという意味でプログラム上のエラーに対して高い耐性を持つことができ、TSAのサービスが災害やビジネス上の理由で継続不能となったとき、時刻証明書の正当性を保証する方法があり、この保証方法を実行する上で、TSAのサービスのクライアントに対する負荷を小さくすることができる。
【発明を実施するための最良の形態】
【００７９】
以下、本発明の実施の形態を図面を用いて説明する。
【００８０】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態に係るタイムスタンプシステム１００のシステム構成図である。同図に示すタイムスタンプシステム１００は、ＴＳＡ１０に設けられた時刻証明装置１、ＴＡ２０に設けられ、タイムスタンプ生成に使用される時刻情報を提供する時刻情報提供装置２、利用者３０が利用する複数のクライアント装置３ｉ（ｉは自然数）、及び以上の各装置を相互に接続する、例えば、インターネット網、電話回線網などにより構成される、コンピュータネットワーク４を備えており、時刻証明装置１がクライアント装置３ｉからのタイムスタンプ要求（時刻証明要求）に応えて、タイムスタンプ（時刻証明書）をクライアント装置３ｉに返信するようになっている。
【００８１】
時刻証明装置１は、コンピュータネットワーク４を介して時刻情報提供装置２およびクライアント装置３ｉとデータを送受信する送受信部１１、複数のクライアント装置３ｉからの時刻証明要求に含まれるデータとして送信されたメッセージダイジェスト（メッセージから作成されるハッシュ値）を二分木を用いてまとめる時刻証明要求まとめ部１２、時刻証明書を作成する際に時刻情報提供装置２から時刻情報を取得する時刻情報取得部１３、時刻証明要求まとめ部１２でまとめられたメッセージダイジェストに対して時刻情報取得部１２で取得した時刻情報を付して時刻証明書を作成する時刻証明作成部１４、および時刻証明作成部１４で作成された時刻証明書を記憶する時刻証明書記憶部１５を具備している。
【００８２】
ここで、時刻証明要求まとめ部１２の二分木を用いて時刻証明要求をまとめる機能について、説明する。図２は、本実施の形態の二分木の一例を示す図である。同図に示す二分木は、予め定められた一定時間（例えば、１秒、このインターバルをラウンドという。）に１つ用意されるものであり、二分木のリーフ（レベル0）には、ラウンド内に複数のクライアント装置３ｉから受け付けた時刻証明要求に含まれるメッセージダイジェストを順次左側から割り当てるようになっている。尚、二分木の構成（高さ（レベルで表現する）、幅（番号で表現する））は、クライアント装置３ｉからの時刻証明要求の数に応じて変化するものであるため、本実施の形態における二分木は動的に構成されるものであるが、以下においては、図２に示すように、１６のリーフを有する二分木の場合について説明し、動的な二分木の構成に関しては、すべての実施の形態に共通の機能であるため、後述することとする。
【００８３】
二分木の各ノード（リーフを除く）に割り当てられる値は以下のように計算される。二分木の親における割当値は、左側の子の割当値Ｈ’と右側の子の割当値Ｈ”を連接（ビット列とビット列の結合）して、その結果のハッシュ値を計算することにより計算されるものであり、これを h(Ｈ’‖ Ｈ”)と表す。このようにして下位のレベルの割当値から上位のレベルの割当値を計算して、最終的に最上位のレベル（ルート）の割当値（ルートハッシュ値）Ｈを求めると、該ルートハッシュ値Ｈが、時刻証明作成部１４においてデジタル署名の対象となるデータである。ここで、レベルｊ、番号ｉに割り当てられた値を h(j, i）と表して、図２に示す具体例を用いて、ルートハッシュ値Ｈの算出方法を説明する。
【００８４】
あるクライアント装置３ｉから送信された時刻証明要求に含まれるメッセージダイジェストが h(0,5)であるとき、ルートハッシュ値Ｈは、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(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(0,4)）、（右, h(1,3)）、（左, h(2,0)）、（右, h(3,1)））となるが、以後、このデータの集合を、二分木におけるh(0,4)の補完データとよぶ。尚、補完データは、二分木のリーフに割り当てられる時刻証明要求ごとに作成されるもので、HKｉ（ｉは自然数）と表す。
【００８５】
また、時刻証明作成部１４は、このようにして二分木のルートハッシュ値Ｈが時刻証明要求まとめ部１２において作成されると、このルートハッシュ値Ｈにそれぞれのラウンドのまとめ処理が終了したときの時刻である現ラウンド終了時刻（例えば、１秒間隔で付される）ｔを付して署名鍵（秘密鍵）SKを用いてデジタル署名を生成し、該デジタル署名 sig(SK，H‖t)、二分木のルートハッシュ値Ｈ、時刻ｔを含む時刻証明書 TST(H, t) を作成するようになっている。従って、同一ラウンド内において作成される時刻証明書 TST(H, t)は、同一ラウンド内に受け付けた複数の時刻証明要求全てに対して、同一のものとなり、当該のラウンドにおいて受付けられた全ての時刻証明要求の受付け時刻より後である時刻tを含むものとなっている。
【００８６】
クライアント装置３ｉは、コンピュータネットワーク４を介して時刻証明装置１とデータを送受信する送受信部３１、デジタル文書などのメッセージを記憶しているメッセージ記憶部３２、メッセージ記憶部３２に記憶されているメッセージの時刻証明要求を行う時刻証明要求部３３、時刻証明装置１からの時刻証明要求に対する時刻証明書 TST(H, t)を記憶する時刻証明書記憶部３４、および時刻証明書 TST(H, t）を検証する時刻証明検証部３５を具備している。
【００８７】
尚、以上の各装置は、少なくとも演算機能及び制御機能を備えた中央処理装置（ＣＰＵ：Centra1 Processing Unit）、プログラムやデータを収納する機能を有するＲＡＭ（Random Access Memory）等からなる主記憶装置（メモリ）を有する電子的な装置から構成されている。
【００８８】
このうち、時刻証明装置１の時刻証明要求まとめ部１２、時刻情報取得部１３および時刻証明作成部１４、並びにクライアント装置３ｉの時刻証明要求部３３および時刻証明検証部３５の処理は、上記ＣＰＵによる演算制御機能を具体的に示したものに他ならない。また、時刻証明装置１の時刻証明書記憶部１５、並びにクライアント装置３ｉのメッセージ記憶部３２および時刻証明記憶部３４は、上記主記憶装置の機能を備えたものである。
【００８９】
次に、以上の構成を有するタイムスタンプシステム１００における時刻証明方法、および時刻証明検証方法を図３および図４を用いて説明する。ここで、図３は、時刻証明装置１が時刻証明書 TST(H, t) を作成する動作を説明するフローチャートであり、図４は、クライアント装置３ｉが時刻証明書 TST(H, t）の検証を行う動作を説明するフローチャートである。
【００９０】
まず、時刻証明装置１の動作について説明する。クライアント装置３ｉから時刻証明装置１の送受信部１１を介して時刻証明対象のメッセージダイジェストを含む時刻証明要求を受信すると、時刻証明要求まとめ部１２は、このメッセージダイジェストを二分木のリーフに割り当てる（ステップＳ１１，Ｓ１２）。そして、上記動作は、同一ラウンド内において複数のクライアント装置３ｉから受信した時刻証明要求に対して、順次行われ、一定時間経過後ラウンドが終了すると、時刻証明要求まとめ部１２がそれぞれのリーフに割り当てられたメッセージダイジェストから二分木のルートハッシュ値Ｈを計算する（ステップＳ１３，Ｓ１４）。
【００９１】
次に、時刻証明作成部１４が、このルートハッシュ値Ｈにその証明を行う日時を示す時刻ｔを連接し、その連接した結果に対して署名鍵 SK を用いてデジタル署名sig(SK,H‖t) を生成する（ステップＳ１５）。そして、このデジタル署名 sig(SK, H‖t)、時刻ｔ、ルートハッシュ値Ｈを含む時刻証明書 TST(H, t）を作成し、さらに、受信したそれぞれの時刻証明要求に対応する二分木の補完データHKｉを取得する（ステップＳ１６，Ｓ１７）。
【００９２】
最後に、時刻証明作成部１４は、送受信部１１を介して、時刻証明書TST(H,t）および補完データHKｉを複数のクライアント装置３ｉに送信する（ステップＳ１８）。
【００９３】
これにより、時刻証明装置１は、二分木を用いて時刻証明要求をまとめ、このまとめた値に対してデジタル署名を生成して時刻証明書を発行するので、クライアント装置３ｉから大量の時刻証明要求が短い期間に集中的にあったとしても、正確な時刻を付した時刻証明を行うことができる。
【００９４】
次に、クライアント装置３ｉの動作について説明する。クライアント装置３ｉが送受信部３１を介して、時刻証明書TST(H,t）および補完データHKｉを受信すると、時刻証明検証部３５は、以下に示すように検証処理を行う（ステップＳ２１）。
【００９５】
まず、時刻証明書TST(H,t)に含まれているルートハッシュ値Ｈが、クライアント装置３ｉが時刻証明装置１に送信した時刻証明要求に含まれるメッセージダイジェストと補完データHKｉとから計算した二分木のルートハッシュ値Ｈcal に一致するかどうかを検証する（ステップＳ２２，Ｓ２３）。
【００９６】
次に、署名鍵SKに対応する公開鍵 PK を用いて、デジタル署名 sig(SK, H‖t)が署名対象のデジタルデータ  H‖t に対して為されたものであることを検証する（ステップＳ２４，Ｓ２５）。
【００９７】
以上の検証において、検証に成功すれば、時刻証明によって示される時刻に時刻証明要求データは存在していたこと、時刻証明が付与された時刻以降、そのデータは改ざんされていないことを証明することができる（ステップＳ２６）。一方、検証に失敗すれば、データもしくはデジタル署名が改ざんされていることを確認することができる（ステップＳ２７）。これにより、時刻証明装置１が発行した時刻証明書TST(H, t) を的確に検証でき、時刻情報やデータの真正性を第三者に対しても証明することが出来るようになる。
【００９８】
尚、第１の実施の形態においては、あるラウンドのルート値に割当てる時刻として、当該のラウンドのまとめ処理が終了したときの時刻である現ラウンド終了時刻を用いている。この方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が現ラウンド終了時刻より前（時間的に過去）であることが証明される。
【００９９】
第１の実施の形態の第１の変形方式として、当該のラウンドの直前のラウンドのまとめ処理が終了したときの時刻を前ラウンド終了時刻と定義し、上記実施の形態における現ラウンド終了時刻の代りに、前ラウンド終了時刻と現ラウンド終了時刻の組を用いることにしてもよい。図１８にこの場合の時刻証明書の一例を示す。この際、直前のラウンドのルート値（これを直前ルート値と呼ぶ）を、現在のラウンドの二分木の所定のリーフに割当てるようにしてもよい。
【０１００】
図１９と図２０に、直前ルート値を現在のラウンドの二分木の所定のリーフａ０に割当てるための２つの方法を示す。
【０１０１】
第１の方法は、図１９に示すように、リーフａ０を現在のラウンドのルートの子ノードとして、現在のラウンドの二分木に含める方法である（リーフａ０のレベルとクライアント装置3iからの要求が割り当てられるリーフのレベルは異なる）。
【０１０２】
第２の方法は、図２０に示すように、リーフａ０を現在のラウンドの二分木のレベル０の一番左のリーフとする方法である（リーフａ０のレベルとクライアント装置3iからの要求が割り当てられるリーフのレベルは同じである）。
【０１０３】
この場合には、補完情報には、直前ルート値、及び現在のラウンドの二分木における補完情報が含まれる（このように情報を加えた結果である補完情報を拡張補完情報と呼ぶ）。図２１に拡張補完情報の一例を示す。尚、この拡張補完情報に含まれる直前ルート値とその現在のラウンドの二分木における補完情報から現在のラウンドのルート値が計算できることを検証すること（これを第３の検証と呼ぶ）により、直前のラウンドにおける二分木の構成が終了したのちに、現在のラウンドの二分木の構成が開始されたことを証明することができる。
【０１０４】
この第１の変形方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が現ラウンド終了時刻より前（時間的に過去）であること及び前ラウンド終了時刻より後（時間的に未来）であることが証明される。
【０１０５】
第１の実施の形態の第２の変形方式として、上記実施の形態における現ラウンド終了時刻の代りに、前ラウンド終了時刻を用いることにしてもよい。この際、直前ルート値を現在のラウンドの二分木の所定のリーフに割当ててもよく、その方法は上記第１の変形方式と同様である。また、第１の変形方式におけると同様に、拡張補完情報を用いることにしてもよい。
【０１０６】
この第２の変形方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が前ラウンド終了時刻より後（時間的に未来）であることが証明される。
【０１０７】
また、上記実施の形態においては、リーフに割り当てる値を、クライアント装置 3iから送信される時刻証明要求に含まれるメッセージダイジェストとしたが、他のクライアント装置 3iに自己の送信したメッセージダイジェストを知られないようにするために、送信したメッセージダイジェストに対して適当な乱数をキーとしたキー付きハッシュ値を計算して、この値をリーフに割り当てる値とし、データの守秘性を高めるようにしてもよい。この場合には、時刻証明装置１からクライアント装置 3i に送信されるデータに、キーとなる乱数が追加されることになる。
【０１０８】
本実施の形態では、時刻証明書の発行のために公開鍵基盤とデジタル署名を用いている（具体的には、図３のステップS15では、署名鍵 SK を用いたデジタル署名を生成し、時刻証明書 TST(H, t) はそれを含んだものとなっている）。従って、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため、時刻証明書の有効性をこの公開鍵証明書の有効期限を越えて保持するためには、時刻証明書の有効期限延長のための処理が必要となる。本実施の形態では、ある１つのラウンドに受け付けられた複数の時刻証明要求に対して、同一のデジタル署名を用いて時刻証明書を発行する。従って、１つのラウンドで発行された時刻証明書の有効期限延長のための処理を、誰か一人（TSA、あるいはクライアントの一人、あるいはそれ以外の第三者）が実行すれば、当該のラウンドに時刻証明要求を出した全てのクライアントの受領する時刻証明書の有効期限延長処理が実現されることになる。従って、時刻証明書を受領した各クライアントが、各々、時刻証明書の有効期限延長処理をしなければならない従来手法（非特許文献１に記載のもの等）に比較して、時刻証明書の有効期限延長処理のためのクライアントの負荷および、該延長処理を行う機関の負荷が著しく軽減されることになる。
【０１０９】
以上、第１の実施の形態のタイムスタンプシステム１００によれば、クライアント装置 3iから時刻証明要求を受け付けた時刻証明装置１が、二分木を用いて時刻証明要求をまとめ、このまとめた値に対して時刻情報を付したデジタル署名を生成して時刻証明書を発行するので、クライアント装置3iから大量の時刻証明要求が短い期間に集中する場合であっても、正確な時刻情報を付した時刻証明を行うことができる。また、二分木を利用することにより、時刻証明装置１がクライアント装置 3iに送信する時刻証明書および補完データのデータ量を少なくすることができるので、通信負荷を軽減することができる。さらに、時刻証明書の延長処理が必要になった場合には、その処理のためのクライアントの負荷および該延長処理を行う機関の負荷を従来手法に比較して著しく軽減することが出来る。
【０１１０】
＜第２の実施の形態＞
図５は、本発明の第２の実施の形態に係るタイムスタンプシステム２００のシステム構成図である。同図に示すタイムスタンプシステム２００は、要求受付装置５、ＴＳＡ１０に設けられた時刻証明装置６、ＴＡ２０に設けられ、タイムスタンプ生成に使用される時刻情報を提供する時刻情報提供装置２、利用者３０が利用する複数のクライアント装置 3i（ｉは自然数）、及び以上の各装置を相互に接続する、例えば、インターネット網、電話回線網などにより構成される、コンピュータネットワーク４を備えており、要求受付装置５がクライアント装置３ｉからのタイムスタンプ要求（時刻証明要求）を受け付けて、受け付けたタイムスタンプ要求をまとめて時刻証明装置６に送信し、時刻証明装置６がまとめられたタイムスタンプ要求に応えて、タイムスタンプ（時刻証明書）を生成し、要求受付装置５を介してクライアント装置３ｉに返信するようになっている。
【０１１１】
即ち、タイムスタンプシステム２００における要求受付装置５および時刻証明装置６は、タイムスタンプシステム１００の時刻証明装置１に相当するものであり、時刻証明装置１の時刻証明要求まとめ部１２の機能を要求受付装置５に、時刻情報取得部１３および時刻証明作成部１４の機能を時刻証明装置６に機能分散して、分散配置したものである。または、既存の時刻証明装置６を利用して、要求受付装置５を加えることにより、タイムスタンプシステム１００の時刻証明装置１に相当するシステムを実現するものと見ることも出来る。尚、本実施の形態においては、第１の実施の形態と異なる構成及び機能のみ説明し、その他の構成及び機能に関しては同一部分には同一符号を付して説明を省略する。
【０１１２】
要求受付装置５は、コンピュータネットワーク４を介してクライアント装置３ｉおよび時刻証明装置６とデータを送受信する送受信部５１、複数のクライアント装置３ｉから送信された時刻証明要求に含まれるメッセージダイジェストを二分木を用いてまとめる時刻証明要求まとめ部１２を具備している。
【０１１３】
時刻証明装置６は、コンピュータネットワーク４を介して時刻情報提供装置２、および要求受付装置５とデータを送受信する送受信部６１、時刻証明書を作成する際に時刻情報提供装置２から時刻情報を取得する時刻情報取得部１３、時刻証明要求まとめ部１２でまとめられたメッセージダイジェストに対して時刻情報取得部１２で取得した時刻情報を付して時刻証明書を作成する時刻証明作成部１４、および時刻証明作成部１４で作成された時刻証明書を記憶する時刻証明書記憶部１５を具備している。
【０１１４】
尚、第１の実施の形態と同様に、以上の各装置は、少なくとも演算機能及び制御機能を備えた中央処理装置（ＣＰＵ：Centra1 Processing Unit）、プログラムやデータを収納する機能を有するＲＡＭ（Random Access Memory）等からなる主記憶装置（メモリ）を有する電子的な装置から構成されている。
【０１１５】
また、タイムスタンプシステム２００における時刻証明方法、および時刻証明検証方法は、タイムスタンプシステム１００と同様であり、その動作は図３および図４に示す通りであるため、フローチャートを用いての説明は省略するが、タイムスタンプシステム２００内のクライアント装置３ｉ、要求受付装置５、および時刻証明装置６間の関係を図６を用いて説明する。
【０１１６】
図６によれば、クライアント装置 3i から時刻証明対象のメッセージダイジェストを含む時刻証明要求が送信されると、要求受付装置５は、一定時間（例えば、１秒）に受け付けたメッセージダイジェストをもとに二分木を構成し、該二分木のルートハッシュ値Ｈを計算し、該ハッシュ値Ｈをまとめられた時刻証明要求として時刻証明装置６に送信する。次に、時刻証明装置６は、時刻証明要求を受信したとき時刻ｔを取得して、受信したハッシュ値Ｈに対する時刻証明書 TST(H, t)を作成し、該時刻証明書 TST(H, t)を要求受付装置５に送信する。時刻証明書 TST(H, t)を受信した要求受付装置５は、クライアント装置 3iから受信した時刻証明要求に対応する二分木の補完データHKｉを取得して、時刻証明書 TST(H, t)および補完データHKｉをクライアント装置３ｉに送信する。
【０１１７】
尚、上記第２の実施の形態においては、あるラウンドのルート値Ｈに割当てる時刻として、当該のラウンドのまとめ処理が終了したのち該ラウンドのルート値を含む時刻証明要求を時刻証明装置６に送付し、時刻証明装置６が該時刻証明要求を受信したときの時刻である現ラウンド終了時刻を用いている。この方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が現ラウンド終了時刻より前（時間的に過去）であることが証明される。
【０１１８】
第２の実施の形態の第１の変形方式として、図２２に示すように、要求受付装置５’が当該のラウンドの直前のラウンドにおいて時刻証明装置により生成された時刻証明書（これを直前ラウンド時刻証明書という）を記憶する手段（直前ラウンド時刻証明書記憶部 ５２）を持ち、当該のラウンドのルート値Hと直前ラウンド時刻証明書に含まれる時刻証明装置６によって付された時刻t0（これを前ラウンド終了時刻という）を組合わせたデータH‖t0（これを前ラウンド終了時刻付きルート値という）を時刻証明対象データとして時刻証明装置６に対する時刻証明要求に含め、時刻証明装置６はこの時刻証明対象データH‖t0に対して、要求受信時の時刻t1を付与してデジタル署名 sig(SK, H‖t0‖t1) を付し時刻証明書を生成してもよい。このように生成された時刻証明書を TST(H, t0, t1) と表す。図２３にこの場合の時刻証明書の一例を示す。
【０１１９】
また、第１の実施の形態の第１の変形方式におけると同様に、直前のラウンドのルート値（これを直前ルート値と呼ぶ）を、現在のラウンドの二分木の所定のリーフに割当て、補完情報には、直前ルート値とその現在のラウンドの二分木における補完情報を含めるようにしてもよい（このように情報を加えた結果である補完情報を拡張補完情報と呼ぶ）。また拡張補完情報に含まれる直前ルート値とその現在のラウンドの二分木における補完情報から現在のラウンドのルート値が計算できることを検証すること（これを第３の検証と呼ぶ）により、直前のラウンドにおける二分木の構成が終了したのちに、現在のラウンドの二分木の構成が開始されたことを証明することができる。
【０１２０】
第１の変形方式により、当該のラウンドで受付けられた各時刻証明要求の受付け時刻が現ラウンド終了時刻より前（時間的に過去）であること及び前ラウンド終了時刻より後（時間的に未来）であることが証明される。
【０１２１】
第２の実施の形態の第２の変形方式として、図２４に示すように、時刻証明装置は、署名対象データに対して時刻情報を付し部分署名を生成する複数の部分時刻証明装置１６ｊ（ｊは自然数）からなる分散時刻証明装置としてもよい。この変形方式においては、要求受付装置５”は、複数の部分署名から全体署名を生成する全体署名作成部５３を具備する必要がある。
【０１２２】
第２の変形方式においては、複数ある部分時刻証明装置のうちの所定の数のものが一致した時刻を付すときのみ、全体署名が作成できることになり、時刻証明書に付される時刻の信頼性を向上させることが出来る。
【０１２３】
本実施の形態でも、第1の実施の形態と同様に、時刻証明書の発行のために公開鍵基盤とデジタル署名を用いている（具体的には、図５の時刻証明装置６が時刻証明書 TST(H, t) を生成するときデジタル署名を生成し該時刻証明書に含める）。従って、従って、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため、時刻証明書の有効性をこの公開鍵証明書の有効期限を越えて保持するためには、時刻証明書の有効期限延長のための処理が必要となる。本実施の形態においても、第1の実施の形態と同様に、ある１つのラウンドに受け付けられた複数の時刻証明要求に対して、同一のデジタル署名を用いて時刻証明書を発行する。従って、第1の実施の形態におけると同様に、１つのラウンドで発行された時刻証明書の有効期限延長のための処理を、誰か一人（TSA、あるいはクライアントの一人、あるいはそれ以外の第三者）が実行すれば、当該のラウンドに時刻証明要求を出した全てのクライアントの受領する時刻証明書の有効期限延長処理が実現されることになる。従って、時刻証明書を受領した各クライアントが、各々、時刻証明書の有効期限延長処理をしなければならない従来手法（非特許文献１に記載のもの等）に比較して、時刻証明書の有効期限延長処理のためのクライアントの負荷および、該延長処理を行う機関の負荷が著しく軽減されることになる。
【０１２４】
以上、第２の実施の形態のタイムスタンプシステム２００によれば、第１の実施の形態のタイムスタンプシステム１００と同様の効果を得ることができるが、これに加えて、サーバ側の機能を要求機能装置５と時刻証明装置６に機能分散しているため、ＴＳＡ１０に設けられた既存の時刻証明装置６をそのまま利用しつつ、要求受付装置５を新たに設けるだけで、簡単にタイムスタンプシステム２００を構築することができるという効果がある。さらに、時刻証明書の延長処理が必要になった場合には、その処理のためのクライアントの負荷および該延長処理を行う機関の負荷を従来手法に比較して著しく軽減することが出来る。
【０１２５】
＜第３の実施の形態＞
図７は、本発明の第３の実施の形態に係るタイムスタンプシステム３００のシステム構成図である。同図に示すタイムスタンプシステム３００は、ＴＳＡ１０に設けられた時刻証明装置７、ＴＡ２０に設けられ、タイムスタンプ生成に使用される時刻情報を提供する時刻情報提供装置２、利用者３０が利用する複数のクライアント装置３０３ｉ（ｉは自然数）、及び以上の各装置を相互に接続する、例えば、インターネット網、電話回線網などにより構成される、コンピュータネットワーク４を備えており、時刻証明装置１がクライアント装置３ｉからのタイムスタンプ要求（時刻証明要求）に応えて、タイムスタンプ（時刻証明書）を返信するようになっている。
【０１２６】
タイムスタンプシステム３００は、タイムスタンプシステム１００と同様のシステム構成をとっているが、時刻証明装置７が、信頼できる第３者機関（ＴＴＰ； Trusted Third Party）として付与する時刻値について信頼されている場合を前提としており、タイムスタンプシステム１００と比べて、より精度の高い時刻値を付与することができるようになっている。尚、本実施の形態においても、上記実施の形態と異なる構成及び機能のみ説明し、その他の構成及び機能に関しては同一部分には同一符号を付して説明を省略する。
【０１２７】
時刻証明装置７は、コンピュータネットワーク４を介して時刻情報提供装置２およびクライアント装置３０３ｉとデータを送受信する送受信部１１、時刻情報提供装置２から時刻証明書に使用される時刻情報を取得する時刻情報取得部１３、クライアント装置３０３ｉからの時刻証明要求として送信されたメッセージダイジェストに時刻情報取得部１２で取得した時刻情報を付与するとともに二分木を用いてまとめる時刻証明要求まとめ部７２、時刻証明要求まとめ部７２でまとめられたメッセージダイジェストに対して生成したデジタル署名を含む時刻証明書を作成する時刻証明作成部７４、および時刻証明作成部７４で作成された時刻証明書を記憶する時刻証明書記憶部１５を具備している。
【０１２８】
ここで、時刻証明要求まとめ部７２の二分木を用いて時刻証明要求をまとめる機能について説明する。図８は、本実施の形態の二分木の一例を示す図である。同図に示す二分木は、予め定められた一定時間（例えば、１秒、このインターバルをラウンドという。）に１つ用意されるものであり、二分木のリーフ（レベル0）には、ラウンド内に複数のクライアント装置３０３ｉから受け付けたメッセージダイジェストにシーケンス番号、時刻を連接した結果のハッシュ値を順次左側から割り当てるようになっている。ここで、上記連接されるシーケンス番号は、受信したメッセージダイジェストに対するシーケンス番号であり、上記連接される時刻は、メッセージダイジェストを受け付けた時刻で、この時刻は時刻情報取得部１２から提供されるものである。従って、本実施の形態においては、第１の実施の形態においてラウンドに対して付与される時刻よりも、より詳細な時刻を付与することが可能となっている。尚、二分木の構成（高さ（レベルで表現する）、各高さのノード数）は、クライアント装置３０３ｉからの時刻証明要求の数に応じて変化するものであるため、本実施の形態における二分木も動的に構成されるものであるが、以下においては、図８に示すように、１６のリーフを有する二分木の場合について説明する。
【０１２９】
二分木の各ノード（リーフを除く）に割り当てられる値は、第１の実施の形態と同様に、左側の子の割当値Ｈ’と右側の子の割当値Ｈ”を連接（ビット列とビット列の結合）して、ハッシュ値を計算することにより、親の割当値は求められるものであり、これを h(Ｈ’‖Ｈ”)と表す。このようにして下位のレベルの割当値から上位のレベルの割当値を計算して、最終的に最上位のレベル（ルート）の割当値（ルートハッシュ値）Ｈ を求めると、該ルートハッシュ値 Ｈ が、時刻情報証明部７４においてデジタル署名の対象となるデータである。以後、第ｎラウンドにおいてｍ番目に受け付けたメッセージダイジェストを y(n, m)、シーケンス番号を s(n, m)、時刻を t(n, m)、リーフに割り当てられるハッシュ値を H(n; m)（＝h(y(n,m) ‖s(n,m) ‖t(n,m))）と表し、また第ｎラウンドにおいて、レベル j の左から i 番目（但し一番左を0番とする）のノードの割当値を h(n; j, i) と表して、ルートハッシュ値Ｈの算出方法を、図８に示す具体例を用いて説明する。
【０１３０】
あるクライアント装置３ｉから送信されたメッセージダイジェストが 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(n; 4)の二分木における補完データは、
（（右,H(n;5)）, (右,H(n;1,3)), (左, H(n; 2, 0)),  (右, H(n; 3, 1))）
となる。
【０１３１】
また、時刻証明作成部７４は、このようにして二分木のルートハッシュ値 H(n; 4, 0) が時刻証明要求まとめ部７２において作成されると、このルートハッシュ値 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)) は、第１の実施の形態の時刻証明書 TST(H, t)と異なり、同一ラウンド内においても時刻証明要求ごとに異なる時刻証明書 TST(H, t(n, m)) となっている。
【０１３２】
クライアント装置３０３ｉは、コンピュータネットワーク４を介して時刻証明装置７とデータを送受信する送受信部３１、デジタル文書などのメッセージを記憶しているメッセージ記憶部３２、メッセージ記憶部３２に記憶されているメッセージの時刻証明要求を行う時刻証明要求部３３、時刻証明装置７からの時刻証明要求に対する時刻証明書 TST(H, t(n, m))を記憶する時刻証明書記憶部３４、および時刻証明書 TST(H, t(n, m)）を検証する時刻証明検証部３６を具備している。
【０１３３】
尚、以上の各装置は、少なくとも演算機能及び制御機能を備えた中央処理装置（ＣＰＵ：Centra1 Processing Unit）、プログラムやデータを収納する機能を有するＲＡＭ（Random Access Memory）等からなる主記憶装置（メモリ）を有する電子的な装置から構成されており、時刻証明装置７の時刻証明要求まとめ部７２および時刻証明作成部７４、並びにクライアント装置３０３ｉの時刻証明検証部３６の処理は、上記ＣＰＵによる演算制御機能を具体的に示したものに他ならない。
【０１３４】
次に、以上の構成を有するタイムスタンプシステム３００における時刻証明方法、および時刻証明検証方法を図９および図１０を用いて説明する。ここで、図９は、時刻証明装置７が時刻証明書 TST(H, t(n, m))を作成する動作を説明するフローチャートであり、図１０は、クライアント装置３０３ｉ が時刻証明書 TST(H, t(n, m)) の検証を行う動作を説明するフローチャートである。
【０１３５】
まず、時刻証明装置７の動作について説明する。クライアント装置３ｉから時刻証明装置７の送受信部１１を介して時刻証明対象のメッセージダイジェストを含む時刻証明要求を受信すると、時刻証明要求まとめ部７２は、このメッセージダイジェスト y(n, m) に、シーケンス番号 s(n ,m) および時刻 t(n, m) を連接しその結果にハッシュ関数を適用して作成したハッシュ値  H(n; m) を二分木のリーフに割り当てる（ステップＳ３１，Ｓ３２，Ｓ３３）。そして、上記動作は、同一ラウンド内において複数のクライアント装置３０３ｉから受信した時刻要求に対して、順次行われ、一定時間経過後ラウンドが終了すると、時刻証明要求まとめ部７２がそれぞれのリーフに割り当てられたハッシュ値 H(n; m）から二分木のルートハッシュ値Ｈを計算する（ステップＳ３４，Ｓ３５）。
【０１３６】
次に、時刻証明作成部７４が、このルートハッシュ値Ｈに対して署名鍵 SK を用いてデジタル署名 sig(SK, H)を生成する（ステップＳ３６）。そして、このデジタル署名 sig(SK, H)、シーケンス番号 s(n, m)、時刻 t(n, m)、リーフに割り当てられたハッシュ値 H(n; m) を含む時刻証明書 TST(H, t(n, m))を作成し、さらに、受信したそれぞれの時刻証明要求に対応する二分木の補完データ HKi を取得する（ステップＳ３７，Ｓ３８）。
【０１３７】
最後に、時刻証明作成部７４は、送受信部１１を介して、時刻証明書 TST(H, t(n, m))、および該当する二分木の補完データ HKｉをクライアント装置３０３ｉに送信する（ステップＳ３９）。
【０１３８】
これにより、時刻証明装置７は、時刻を付与した時刻証明要求を二分木を用いてまとめ、このまとめた値に対してデジタル署名を生成して時刻証明書を発行するので、クライアント装置３０３ｉから大量の時刻証明要求が短い期間に集中的にあったとしても、正確な時刻を付した時刻証明をより精度高く行うことができる。
【０１３９】
次に、クライアント装置３０３ｉの動作について説明する。クライアント装置３０３ｉが送受信部３１を介して、時刻証明書 TST(H, t(n, m))、および二分木の補完データ HKｉ を受信すると、時刻証明検証部３６は、以下に示すように検証処理を行う（ステップＳ４１）。
【０１４０】
まず、クライアント装置３０３ｉが時刻証明装置７に送信したメッセージダイジェスト 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）と一致するか否かを検証する（ステップＳ４２，Ｓ４３）。
【０１４１】
次に、署名鍵SKに対応する公開鍵 PK を用いてデジタル署名 sig(SK, H)が、時刻証明書 TST(H, t(n, m)) に含まれている、リーフに割り当てられたハッシュ値 H(n;m)と、補完データHKｉから計算した二分木のルートハッシュ値 Hcal に対して為されたものであることを検証する（ステップＳ４５，Ｓ４６）。
【０１４２】
以上の検証において、検証に成功すれば、時刻証明によって示される時刻に時刻証明要求データは存在していたこと、時刻証明が付与された時刻以降、そのデータは改ざんされていないことを証明することができる（ステップＳ４７）。一方、検証に失敗すれば、データもしくはデジタル署名が改ざんされていることを確認することができる（ステップＳ４８）。これにより、時刻証明装置７が発行した時刻証明書TST(H, t(n, m))を的確に検証でき、時刻情報やデータの真正性を第三者に対しても証明することが出来るようになる。
【０１４３】
本実施の形態でも、第1の実施の形態と同様に、時刻証明書の発行のために公開鍵基盤とデジタル署名を用いている（具体的には、図７の時刻証明装置７が時刻証明書 TST(H, t(n, m)) を生成するときデジタル署名を生成し該時刻証明書に含める）。従って、従って、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため、時刻証明書の有効性をこの公開鍵証明書の有効期限を越えて保持するためには、時刻証明書の有効期限延長のための処理が必要となる。本実施の形態においても、第1の実施の形態と同様に、ある１つのラウンドに受け付けられた複数の時刻証明要求に対して、同一のデジタル署名を用いて時刻証明書を発行する。従って、第1の実施の形態におけると同様に、１つのラウンドで発行された時刻証明書の有効期限延長のための処理を、誰か一人（TSA、あるいはクライアントの一人、あるいはそれ以外の第三者）が実行すれば、当該のラウンドに時刻証明要求を出した全てのクライアントの受領する時刻証明書の有効期限延長処理が実現されることになる。従って、時刻証明書を受領した各クライアントが、各々、時刻証明書の有効期限延長処理をしなければならない従来手法（非特許文献１に記載のもの等）に比較して、時刻証明書の有効期限延長処理のためのクライアントの負荷および、該延長処理を行う機関の負荷が著しく軽減されることになる。
【０１４４】
以上、第３の実施の形態のタイムスタンプシステム３００によれば、タイムスタンプシステム１００と同様の効果を得ることができるとともに、クライアント装置３０３ｉから時刻証明要求を受け付けた時刻証明装置７が、時刻を付与した時刻証明要求を二分木を用いてまとめ、このまとめた値に対してデジタル署名を生成して時刻証明書を発行するので、精度の高い時刻情報を付した時刻証明書を発行することができる。さらに、時刻証明書の延長処理が必要になった場合には、その処理のためのクライアントの負荷および該延長処理を行う機関の負荷を従来手法に比較して著しく軽減することが出来る。
【０１４５】
＜第４の実施の形態＞
図１１は、本発明の第４の実施の形態に係るタイムスタンプシステム４００のシステム構成図である。同図に示すタイムスタンプシステム４００は、要求受付装置８、複数のＴＳＡ１０に設けられた時刻証明装置９ｊ（ｊは自然数）、複数のＴＡ２０に設けられ、タイムスタンプ生成に使用される時刻情報を提供する時刻情報提供装置２ｋ（ｋは自然数）、利用者３０が利用する複数のクライアント装置３０３ｉ（ｉは自然数）、及び以上の各装置を相互に接続する、例えば、インターネット網、電話回線網などにより構成される、コンピュータネットワーク４を備えており、要求受付装置８がクライアント装置３０３ｉからのタイムスタンプ要求（時刻証明要求）を受け付けて、受け付けたタイムスタンプ要求に時刻情報を付与して、複数の時刻証明装置９ｊに送信し、時刻証明装置９ｊが時刻情報を付与されたタイムスタンプ要求をまとめて部分署名を生成し、生成した部分署名を要求受付装置８に送信し、要求受付装置８が受信した部分署名から全体署名を生成し、全体署名を含むタイムスタンプ（時刻証明書）をクライアント装置３ｉに返信するようになっている。
【０１４６】
即ち、タイムスタンプシステム４００は、分散署名型のタイムスタンプシステムであり、要求受付装置８で時刻を付与し、複数の各時刻証明装置９ｊが時刻情報提供装置２kから取得した時刻と、要求受付装置８が付与した時刻との差が所定の限度以内であれば、要求受付装置８で付与した時刻を認めて、デジタル署名（部分署名）を生成するようになっているので、タイムスタンプシステム３００と同様に、精度の高い時刻証明を行うことができるようになっている。
【０１４７】
尚、本実施の形態においては、公開鍵暗号方式に基づいた分散署名の中で最も一般的である分散ＲＳＡ方式を前提に説明するが、本発明はこの方式に限定されるわけでなく、他の方式を用いることは勿論可能である。また、本実施の形態においても、上記実施の形態と異なる構成及び機能のみ説明し、その他の構成及び機能に関しては同一部分には同一符号を付して説明を省略する。
【０１４８】
要求受付装置８は、コンピュータネットワーク４を介してクライアント装置３０３ｉおよび複数の時刻証明装置９ｊとデータを送受信する送受信部８１、クライアント装置３０３ｉからの時刻証明要求として送信されたメッセージダイジェストに時刻情報を付与する時刻情報付与部８２、複数の時刻証明装置９ｊで生成された部分署名から全体署名を生成し、この全体署名を含む時刻証明書を作成する全体証明作成部８３、および全体証明作成部８３で作成された時刻証明書を記憶する時刻証明書記憶部１５を具備している。
【０１４９】
時刻情報付与部８２は、さらに詳しくは、クライアント装置３０３ｉから送信されたメッセージダイジェストy(n,m)にシーケンス番号s(n,m)、メッセージダイジェストを受け付けた時刻 t(n,m)を組み合わせたデータ（y(n,m), s(n,m), t(n,m)）を作成するもので、この組み合わせデータが複数の時刻証明装置９ｊに送信される時刻証明要求データとなる。また、時刻情報付加部８２は、時刻証明装置７の時刻証明要求まとめ部７２と同一の二分木を構成する機能を有しており、上記組み合わせデータ（y(n,m), s(n,m), t(n,m)）のハッシュ値 h(y(n,m)‖s(n,m)‖t(n,m)）を二分木のリーフに割り当てて、ルートハッシュ値Ｈを計算できるようになっている。
【０１５０】
また、全体証明作成部８３は、分散ＲＳＡ方式に基づいて、複数の時刻証明装置９ｊから送信された部分署名 psig(PSKj, H) から全体署名 sig(SK,H) を生成するようになっている。そして、全体署名、シーケンス番号 s(n,m)、時刻 t(n,m)、リーフに割り当てられたハッシュ値 H(n;m）を含む時刻証明書、および時刻情報付加部８２で構成した二分木における補完データHKｉをクライアント装置３０３ｉに送受信部８１を介して送信するようになっている。
【０１５１】
時刻証明装置９ｊは、コンピュータネットワーク４を介して時刻情報提供装置２ｋ及び要求受付装置８とデータを送受信する送受信部９１、所定の条件のもと、要求受付装置８から送信された時刻情報を付与されたメッセージダイジェストを二分木を用いてまとめる時刻証明要求まとめ部９２、時刻情報提供装置２ｋから時刻情報を取得する時刻情報取得部１３、時刻証明要求まとめ部９２でまとめられたメッセージダイジェストに対して部分署名を生成する部分証明作成部９３、および部分証明作成部９３で生成された部分署名を記憶する部分署名記憶部９４を具備している。
【０１５２】
ここで、時刻証明要求まとめ部９２は、時刻証明装置７の時刻証明要求まとめ部７２と同一の二分木を構成する機能を有しており、要求受付装置８で付与された時刻 t と、時刻証明装置９ｊが時刻情報提供装置２kから取得した時刻 t’との時刻差が所定の限度以内である場合には、受信した組み合わせデータ（y(n,m), s(n,m), t(n,m)）のハッシュ値 h(y(n,m)‖s(n,m)‖t(n,m)）を二分木のリーフに割り当てて、ルートハッシュ値Ｈを計算できるようになっている。即ち、同一の二分木が要求受付装置８と時刻証明装置９ｊの双方で構成されるようになっている。
【０１５３】
また、部分証明作成部９３は、二分木のルートハッシュ値Ｈが部分証明要求まとめ部９２において作成されると、このルートハッシュ値Ｈに部分署名鍵 PSKj を用いて部分署名 psig(PSKj, H)を生成し、この部分署名 psig(PSKj, H) を要求受付装置８に送信するようになっている。
【０１５４】
尚、以上の各装置は、上記実施の形態の各装置と同様に、少なくとも演算機能及び制御機能を備えた中央処理装置（ＣＰＵ：Centra1 Processing Unit）、プログラムやデータを収納する機能を有するＲＡＭ（Random Access Memory）等からなる主記憶装置（メモリ）を有する電子的な装置から構成されている。即ち、要求受付装置８の時刻情報付与部８２および全体証明作成部８３、ならびに時刻証明装置９ｊの時刻証明要求部９２および部分証明作成部９３は、上記ＣＰＵによる演算制御機能を具体的に示したものに他ならない。また、時刻証明装置９ｊの部分署名記憶部９４は主記憶装置の機能を備えたものである。
【０１５５】
次に、タイムスタンプシステム４００における時刻証明方法を図１２を用いて説明する。ここで、図１２は、要求受付装置８と時刻証明装置９ｊにおける時刻証明書TST(H,t)の作成処理を説明するシーケンス図である。
【０１５６】
まず、要求受付装置８が、クライアント装置３０３ｉから送受信部８１を介して時刻証明対象のメッセージダイジェスト y(n,m) を含む時刻証明要求を受信すると、時刻情報付与部８２は、このメッセージダイジェストy(n,m)に、シーケンス番号s(n,m)および時刻t(n,m)を組み合わせたデータ（y(n,m), s(n,m), t(n,m)）を作成し、これを複数の時刻証明装置９ｊそれぞれに送受信部８１を介して送信する（ステップＳ５１，Ｓ５２，Ｓ５３）。
【０１５７】
時刻証明装置９ｊは、要求受付装置８から送受信部９１を介して組み合わせデータ（y(n,m), s(n,m), t(n,m)）を受信すると、時刻証明要求まとめ部９２は、組み合わせデータ（y(n,m), s(n,m), t(n,m)）に含まれている時刻t(n,m)と時刻情報取得部１３が取得した時刻ｔ’の差が予め定められた所定の限度内であるか否かを確かめ、所定の限度内である場合には、この組み合わせデータ（y(n,m), s(n,m), t(n,m)）のハッシュ値 h(（y(n,m)‖s(n,m)‖t(n,m)）を二分木のリーフに割り当てる（ステップＳ５４，Ｓ５５，Ｓ５６）。そして、上記動作は、同一ラウンド内において複数のクライアント装置３０３ｉから受信した組み合わせデータ（y(n,m), s(n,m), t(n,m)）に対して、順次行われ、一定時間経過後ラウンドが終了すると、時刻証明要求まとめ部９２がそれぞれのリーフに割り当てられたダイジェストh(y(n,m)‖s(n,m)‖t(n,m))から二分木のルートハッシュ値 Ｈ を計算する（ステップＳ５８）。
【０１５８】
次に、部分署名生成部９３が、このルートハッシュ値Ｈに部分署名鍵 PSKj を用いて部分署名 psig(SKｊ, H)を生成し、生成した部分署名 psig(SKｊ, H）を要求受付装置８に送信する（ステップＳ５９，Ｓ６０）。
【０１５９】
要求受付装置８は、複数の時刻証明装置９ｊから部分署名部分署名 psig(PSKj, H)を送受信部８１を介して受信すると、全体署名生成部８３が、部分署名psig psig(PSKj, H)から全体署名 sig(SK, H)を生成し、この全体署名 sig(SK, H)、シーケンス番号 s(n,m)、時刻 t(n,m)、およびリーフに割り当てられたハッシュ値H(n;m)を含んだ時刻証明書 TST(H,t)を作成する（ステップＳ６１，Ｓ６２）。また、時刻情報付加部８２で構成した二分木の補完データHKｉを取得して、時刻証明書TSTおよび補完データHKｉをクライアント装置３０３ｉに送信する（ステップＳ６３，Ｓ６４）。
【０１６０】
尚、時刻証明装置９ｊにおいて、要求受付装置８が時刻証明要求を受け付けた時刻 ｔ と時刻情報取得部１３が取得した時刻 t’の差が予め定められた所定の限度内でない場合には、組み合わせたデータ（y(n, m), s(n, m), t(n, m)）を破棄して、部分署名 psig(PSKj, H)は生成しない（ステップＳ６５）。
【０１６１】
これにより、時刻証明装置９ｊは、自己で取得した時刻と要求受付装置８で付与した時刻が一定の限度内であれば、時刻を付与した時刻証明要求を二分木を用いてまとめ、このまとめた値に対して部分デジタル署名を生成し、要求受付装置８がこの部分署名から全体署名を生成して、時刻証明書を発行するので、クライアント装置３０３ｉから大量の時刻証明要求が短い期間に集中的にあったとしても、正確な時刻を付した時刻証明をより精度高く行うことができる。
【０１６２】
尚、クライアント装置３０３ｉにおける時刻証明書 TST(H,t) の検証を行う動作は、第３の実施の形態と同様であるため、これに関する説明は省略する。
【０１６３】
本実施の形態でも、第1の実施の形態と同様に、時刻証明書の発行のために公開鍵基盤とデジタル署名を用いている（具体的には、図１１の全体署名作成部83が部分署名から全体デジタル署名を作成し、それを用いて時刻証明書を作成している）。従って、従って、デジタル署名の有効性の根拠となる公開鍵証明書に有効期限があるため、時刻証明書の有効性をこの公開鍵証明書の有効期限を越えて保持するためには、時刻証明書の有効期限延長のための処理が必要となる。本実施の形態においても、第1の実施の形態と同様に、ある１つのラウンドに受け付けられた複数の時刻証明要求に対して、同一のデジタル署名を用いて時刻証明書を発行する。従って、第1の実施の形態におけると同様に、１つのラウンドで発行された時刻証明書の有効期限延長のための処理を、誰か一人（TSA、あるいはクライアントの一人、あるいはそれ以外の第三者）が実行すれば、当該のラウンドに時刻証明要求を出した全てのクライアントの受領する時刻証明書の有効期限延長処理が実現されることになる。従って、時刻証明書を受領した各クライアントが、各々、時刻証明書の有効期限延長処理をしなければならない従来手法（非特許文献１に記載のもの等）に比較して、時刻証明書の有効期限延長処理のためのクライアントの負荷および、該延長処理を行う機関の負荷が著しく軽減されることになる。
【０１６４】
以上、第４の実施の形態のタイムスタンプシステム４００によれば、分散署名型のタイムスタンプシステムにおいても、タイムスタンプシステム３００と同様の効果を得ることができる。即ち、クライアント装置３０３ｉから時刻証明要求を受け付けた要求受付装置８は、時刻を付与した時刻証明要求を複数の時刻証明装置 9j に送信し、時刻証明装置 9j は、自己で取得した時刻と要求受付装置８で付与した時刻が一定の限度内であれば、時刻を付与した時刻証明要求を二分木を用いてまとめ、このまとめた値に対して部分署名をし、要求受付装置８がこの部分署名から全体署名を生成して、時刻証明書を発行するので、精度の高い時刻情報を付した時刻証明書を発行することができる。
【０１６５】
タイムスタンプ・システムにおいては、タイムスタンプを生成する上で正しい時刻情報の使用が保証されることが望ましい。この際、単独のTSAを全面的に信頼することなく正しい時刻情報の使用について保証するため，当該のTSA以外の第三者が時刻の正しさについて確認する機能を持つことが望ましい。本実施の形態においては、時刻証明書に付する時刻値について、複数のTSA が所定の誤差範囲の中で当該の値を正しいと判断したときのみ、当該の時刻値を含む署名対象データに対するデジタル署名を生成することができるようになっている。このため、一つのTSAの使用する時刻について他のTSAが確認をする機能を実現しており、上記の条件、即ち単独のTSAを全面的に信頼することなく正しい時刻情報の使用について保証するため当該のTSA以外の第三者（当実施の形態においては他のTSA）が時刻の正しさについて確認する機能を持つという条件を満たしている。
【０１６６】
尚、本実施の形態においては、全体署名の生成のためには全ての署名サーバが同一データに対して部分署名を生成することを要求する（非閾値型の）分散ＲＳＡ方式を前提にして説明したため、複数の時刻証明装置９ｊのうち１つでも時刻差が所定の限度を超えていると、要求受付装置８は時刻証明をすることができないが、部分署名する時刻証明装置９ｊのうちの一定数が部分署名を生成することができれば、最終的に全体署名を生成することができる閾値型分散署名方式（例えば閾値型の分散RSA署名方式）を採用すれば、このような場合においても、時刻証明をすることが可能となる。
【０１６７】
また、本実施の形態においては、要求受付装置８と時刻証明装置９ｊ間の通信量を減少させるために要求受付装置８および時刻証明装置９ｊの双方において、同じ二分木を構成するようにしたが、時刻証明装置９ｊだけで二分木を構成し、二分木の補完データHKｉを要求受付装置８に送信する方法により時刻証明を行うようにしてもよい。
【０１６８】
以上、上記実施の形態における各装置の動作は、各装置に格納されたプログラムを実行することにより実現される。そして、このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体に記録することも、コンピュータネットワークを介して配信することも可能である。
【０１６９】
＜動的な二分木（認証木）の構成方法＞
上記実施の形態において用いられた二分木の動的な構成方法について説明するが、その前提としてまず、二分木の構成に必要な基本関数について説明する。
【０１７０】
高さｋの二分木は、レベル0からレベルｋまでのノードで構成されるが、レベルｊ（ｊ＝0,1,…,k）のノードの数は、２（ｋ−ｊ）であるので、レベルｊ、番号ｉのノードを（ｊ,ｉ）と表すことにすると、ｉ＝0,1,…,2（k-j）-1となる。以下、実数ｘに対して、ceiling(x）をｘ以上の最小の整数、floor(x）をｘ以下の最大の整数として、説明する。
【０１７１】
ノード（ｊ,ｉ）（但し、j＜k）の親は、（ｊ＋１，floor(i/2））であるので、
patent(j,i）＝（ｊ＋１，floor(i/2））と定義する。
【０１７２】
また、ノード（ｊ,ｉ）（但し、0＜j）の左側の子供は（j-1，2i）、右側の子供は（j-1，2i+1）であるので、
leftChild(j,i）＝（j-1，2i）
rightChild(j,i)＝（j-1，2i+1）と定義する。
【０１７３】
このとき、高さｋの二分木のノード（ｊ，ｉ）（0≦ｉ＜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となる。
【０１７５】
また、高さｋの二分木のノード（j,ｉ）（0 ≦ ｉ ＜ 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’)＋１、r(j’)が奇数の場合、r(j’)−１であり、また、r(j’)が偶数の場合、LR(j’)＝R、r(j’)が奇数の場合、LR(j’)＝Lである（但し、j’＝ j，…，k-1）。
【０１７７】
上述した基本関数の定義のもと、第１の動的な二分木の構成方法について説明する。この二分木の構成方法は、深さの違いを１以内に押さえ、ダミーノードを作成しない方法である。
【０１７８】
単位時間（１ラウンドの時間であり、例えば、１秒）に受け付けた時刻証明要求の数をｎとすると、高さｋは、ｋ＝ceiling(log2(n)）である。高さｋの二分木のリーフ数は最大で２kであるので、ｄ＝2k−ｎとして、レベル0のノードのうち、２ｄ個を消去すれば、時刻証明要求の数ｎをダミーノードなしでリーフに割り当てることが可能となる。これは、レベル0のリーフが２ｄ個減ると、レベル１のリーフが新たにｄ個できるので、合計でｄ個減り、リーフの数は結局、2k−ｄ＝ｎとなるからである。
【０１７９】
以下、L1W＝2（k-1）（レベル１のノードの個数）、L1L＝2（k-1）−ｄ（子を有するレベル１のノードの個数）の、L0L＝2・(2（k-1）−ｄ)（レベル0のノードの個数）とおくと、ｎ個の時刻証明要求のうち、初めのL0L個をレベル0に配置し、残りをレベル１に配置するとき、ｉ番目の時刻証明要求の配置先を表す関数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’ のノードであることを示す。
【０１８１】
図１３は、第１の動的な二分木の構成方法のｎ＝１０の場合の具体例を示すものである。この場合においては、図１３に示す通り、ｋ＝ceiling(log2(10))＝４となり、高さは４である。そして、ｄ＝２4−10＝６であるので、6×2＝12個のレベル0のリーフを消去する。この結果、L1W＝２3＝８、L1L＝８−６＝２、L0L＝２×２＝４となる。従って、レベル0のリーフが４個、レベル１のリーフが６個で、リーフの合計数はｎ＝１０となる。この結果、図13に示すような二分木を動的に作成することができる。
【０１８２】
次に、第２の動的な二分木の構成方法について説明する。この二分木の構成方法は、深さを単一にして、ダミーノードを作成する方法である。
【０１８３】
単位時間（１ラウンドの時間であり、例えば、１秒）に受け付けた時刻証明要求の数をｎとすると、高さｋは、ｋ＝ceiling(log2(n))である。高さｋの二分木のリーフ数は最大で２kであるので、０からｎ−１までのｎ個の時刻証明要求をレベル0のノード（0,0）からノード（0,n-1）に割り当てる。ここで、レベル0に割り当てられた、最も右のノード（0, n-1）に対して、ルートパス rtPath(k, 0, n-1)を計算し、その結果を
（（0, r(0)），…，（k, r(k)）
とする。
【０１８４】
次に、各レベルｊ（ｊ＝0, …，k-1）においては、以下の手順を実行するものとする。
【０１８５】
r(j) が偶数のとき、ノード（j, r(j)+1）をダミーノードとする。
【０１８６】
r(j) + 1 ＜ ｉ ＜２(k-j)となる各ｉに対して、ノード（j，i）は消去される。
【０１８７】
r(j) が奇数のとき、r(j) + 1 ≦ ｉ ＜ ２(k-j) となる各ｉに対して、ノード（ｊ，ｉ）は消去される。また、ルートにあるレベルｋについては、何も行わない。
【０１８８】
以上のような方法に基づいて構成される二分木は、ダミーノードは各レベルの右端でのみ現れる、および作成されるダミーノードの数は、ｋ以下であるという性質を有する。
【０１８９】
図１４は、第２の動的な二分木の構成方法のｎ＝９の場合の具体例を示す図である。この場合においては、図１４に示す通り、ｋ＝ceiling(log2(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,5）がダミーノードとなり、５＜ｉ＜２3＝８であれば、ノード（j，i）は削除される。レベル２では、ノード（2, 3）がダミーノードになる。レベル３および４においては、ダミーノードも消去されるノードもない。この結果、図14に示すような二分木を動的に作成することができる。
【０１９２】
次に、第３の動的な二分木の構成方法について説明する。第１および第２の動的な二分木の構成方法は、ともに受け付けた時刻証明要求の数が確定した後に、二分木を構成する方法であったが、この方法は、第２の動的な二分木の構成方法をベースに、インクリメンタルに二分木を構成する方法である。ここで、イクリメンタルとは、時刻証明要求を受け付ける都度、そこから計算できる二分木の部分を計算していくという意味である。この意味で、前もって定めた時間間隔（ラウンドの時間）に受け付ける時刻証明要求の数は予想できないものとする。以下では、受け付ける時刻証明要求の数は予想できないが、その上界Ｎは見積もることができるとして説明する。尚、この方法においては、第２の動的な二分木の構成方法と同様に、時刻証明要求はすべてレベル0に割り付けられるものとする（ダミーノードを使用する方法である）。
【０１９３】
図１５は、第３の動的な二分木の構成方法のアルゴリズムを示すものであり、該アルゴリズムに従って二分木がインクリメンタルに構成されるようになっている。ここで、前提として以下の定義を行う。
【０１９４】
・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)とする。各配列は、２(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)は２つの引数 i, jに対してノード(j,i)に割り当てるべきダミー値を計算する関数である。
【０２０２】
・x、x0、x1、x2は、ノードに割り当てる値を表す変数である。
【０２０３】
・x1‖x2は、バイト列で表された２つの値の連接である。
【０２０４】
・h(x)はxのハッシュ値を計算する関数である。
【０２０５】
このような定義のもと、図１５の処理手順１が終了すると（定められた時間が終了すると）、nは、受け付けた時刻処理要求の数、kは生成された二分木の高さ、i(j)は、レベルjのノードの数、b(j)は、レベルjにダミーノードがあるか否か、A(j)は、レベルjのノードに割り付けられた値、をそれぞれ有することになる(但し、j = 0, ..., k)。
【０２０６】
図１６は、第３の動的な二分木の構成方法のｎ＝９の場合の具体例を示す図である。即ち、定められた時間間隔が終了したとき、ｎ＝９であったとする。このとき、ｋ＝ceiling(log2(9))＝４となり、高さは４の二分木を構成することになる。尚、0からｎ−１までのｎ個の時刻処理要求は、処理手順１により、既にノード(0,0), …, (0,n-1)に割り当てられている。また、処理手順１により、i(0)＝９、i(1)＝４、i(2) = 2, i(3)＝1、i(4)＝0となっている。
【０２０７】
このとき、処理手順２の(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）がダミーノードになる。レベル１においては、ステップ(2.3.3.1)より、ノード（1, 4）に値が割り付けられ、(1, 5)がダミーノードになる。レベル２においては、ステップ（2.3.3.1）より、ノード（0, 2）に値が割り付けられ、(0, 3)がダミーノードになる。レベル３においては、ステップ（2.3.3.1）により、ノード（3, 1）に値が割り付けられる。レベル４においては、ステップ（2.3.3.1）により、ノード（4, 0）に値が割り付けられる。
【０２０９】
この結果、図１６に示すような二部木をインクリメンタルに構成することができる。
【０２１０】
尚、上記実施の形態におけるタイムスタンプシステム１００、２００、３００および４００は、上述した動的な二分木の構成方法のいずれをも採用できるものであり、これにより、クライアント装置３ｉおよび３０３ｉからの時刻証明要求の量的変化に柔軟に対応することができるので、スケーラビリティの高いタイムスタンプシステムを構築することが可能となる。
【図面の簡単な説明】
【０２１１】
【図１】本発明の第１の実施の形態に係るタイムスタンプシステムの構成を説明する図である。
【図２】本発明の第１の実施の形態における二分木を説明する図である。
【図３】本発明の第１の実施の形態に係る時刻証明装置が時刻証明書を発行する動作を説明するフローチャートである。
【図４】本発明の第１の実施の形態に係るクライアント装置が時刻証明書の検証を行う動作を説明するフローチャートである。
【図５】本発明の第２の実施の形態に係るタイムスタンプシステムの構成を説明する図である。
【図６】本発明の第２の実施の形態に係るタイムスタンプシステムの動作を説明するシーケンス図である。
【図７】本発明の第３の実施の形態に係るタイムスタンプシステムの構成を説明する図である。
【図８】本発明の第３の実施の形態における二分木を説明する図である。
【図９】本発明の第３の実施の形態に係る時刻証明装置が時刻証明書を発行する動作を説明するフローチャートである。
【図１０】本発明の第３の実施の形態に係るクライアント装置が時刻証明書の検証を行う動作を説明するフローチャートである。
【図１１】本発明の第４の実施の形態に係るタイムスタンプシステムの構成を説明する図である。
【図１２】本発明の第４の実施の形態に係るタイムスタンプシステムの動作を説明するシーケンス図である。
【図１３】深さの違いを１以内に押さえ、ダミーノードを作成しない動的な二分木の構成方法を説明する図である。
【図１４】深さを単一にして、ダミーノードを作成する動的な二分木の構成方法を説明する図である。
【図１５】インクリメンタルに二分木を構成する方法のアルゴリズムを説明する図である。
【図１６】インクリメンタルに二分木を構成する方法を説明する図である。
【図１７】タイムスタンプシステムの概念を説明する図である。
【図１８】本発明の第１の実施の形態に係るタイムスタンプシステムの変形例における時刻証明書の構成を示す図である。
【図１９】本発明の第１の実施の形態の変形例における直前ラウンドのルート値を現ラウンドの二分木のリーフに割り当てる方法１を説明する図である。
【図２０】本発明の第１の実施の形態の変形例における直前ラウンドのルート値を現ラウンドの二分木のリーフに割り当てる方法２を説明する図である。
【図２１】本発明の第１の実施の形態の変形例における補完情報の構成を示す図である。
【図２２】本発明の第２の実施の形態に係るタイムスタンプシステムの変形例１の構成を示す図である。
【図２３】本発明の第２の実施の形態に係るタイムスタンプシステムの変形例における時刻証明書の構成を示す図である。
【図２４】本発明の第２の実施の形態に係るタイムスタンプシステムの変形例２の構成を示す図である。
【符号の説明】
【０２１２】
１，６，７，９  時刻証明装置
２  時刻情報提供装置
３，３０３  クライアント装置
４  コンピュータネットワーク
５，５’，５”  要求受付装置
１０  ＴＳＡ
１１，３１，５１，６１，８１，９１  送受信部
１２，７２，９２  時刻証明要求まとめ部
１３  時刻情報取得部
１４，７４  時刻証明作成部
１５  時刻証明書記憶部
１６  部分時刻証明装置
２０  ＴＡ
３０  利用者
３２  メッセージ記憶部
３３  時刻証明要求部
３４  時刻証明書記憶部
３５，３６  時刻証明検証部
５２  直前ラウンド時刻証明書記憶部
５３  全体署名作成部
８２  時刻情報付加部
８３  全体証明作成部
９３  部分証明作成部
１００，２００，２００’，２００”，３００，４００，９００  タイムスタンプシステム
【図１】
2005130488.tif 000003
【図２】
2005130488.tif 000004
【図３】
2005130488.tif 000005
【図４】
2005130488.tif 000006
【図５】
2005130488.tif 000007
【図６】
2005130488.tif 000008
【図７】
2005130488.tif 000009
【図８】
2005130488.tif 000010
【図９】
2005130488.tif 000011
【図１０】
2005130488.tif 000012
【図１１】
2005130488.tif 000013
【図１２】
2005130488.tif 000014
【図１３】
2005130488.tif 000015
【図１４】
2005130488.tif 000016
【図１５】
2005130488.tif 000017
【図１６】
2005130488.tif 000018
【図１７】
2005130488.tif 000019
【図１８】
2005130488.tif 000020
【図１９】
2005130488.tif 000021
【図２０】
2005130488.tif 000022
【図２１】
2005130488.tif 000023
【図２２】
2005130488.tif 000024
【図２３】
2005130488.tif 000025
【図２４】
2005130488.tif 000026