説明

タイムスタンプ圧縮装置、検証装置、要求装置、サーバ、制御方法、プログラム、及び記憶媒体

【課題】送信者が都合に合わせて時刻tでの配達証明が付加されたメールを事後に選ぶことを防止したタイムスタンプ圧縮装置、検証装置、要求装置、サーバ、制御方法、プログラム、及び記憶媒体を提供する。
【解決手段】入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、及びタイムスタンプ証明公開装置を備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タイムスタンプ圧縮装置、検証装置、要求装置、サーバ、制御方法、プログラム、及び記憶媒体に関する。
【背景技術】
【0002】
本発明に関連するタイムスタンプ装置として、非特許文献1に挙げられる方式を用いたタイムスタンプ装置がある。
非特許文献1に記載の方法を説明する。
【0003】
図8は、本発明に関連するタイムスタンプ装置のブロック図である。図9は、本発明に関連するタイムスタンプサーバのブロック図である。
タイムスタンプサーバTと、識別子ID<103>とを持つ顧客をC<100> とする。Hash をハッシュ関数とする。顧客C<103>は複数(k 個)の文書m1,...mk<101>を時刻tで保持しており、後にそのうちの一つmjないし複数の存在を証明する。
【0004】
存在の証明を行うには、i=1,...,kに関して乱数wi<102>を生成し、ハッシュ値xi=Hash(mi,wi)<104>を計算<106>し、さらにまとめのハッシュ値y=Hash(x1,...,xk)<108>を計算し<107>、(ID,y)をタイムスタンプサーバTにタイムスタンプ要求<105>として送付する。この要求は、タイムスタンプサーバTの受け取った全ての顧客からのタイムスタンプ要求としてn番目のものであったとする。
【0005】
タイムスタンプサーバT <200>がn番目のタイムスタンプ請求(IDn,yn)<201>を時刻tnに受け取ったとする。
タイムスタンプサーバT <200>は、Hn=(n,tn,IDn,yn,Ln) とする。但し、Lnはリンク情報<202>で以前に生成した情報から、
Ln = (tn-1,IDn-1,yn-1,Hash(Ln-1)) とする。
【0006】
タイムスタンプサーバはHnに対する自身の署名σnを生成<203>し、(σn,Hn) をタイムスタンプ<204> とし顧客Cに返送する。顧客Cが後に、文書mjが時刻tに存在してことの証明は次のように行う。
まず、Hn に対する署名σn が正当なタイムスタンプサーバTの署名であることを示す。
Hn=(n,tn,IDn,yn,Ln) が成立することを、(n,tn,IDn,yn,Ln) を提示して示す。y=Hash(x1,...,xk) が成立することを (x1,...,xk) を提示して示す。
xj=Hash(mj,wj) が成立することを、(mj,wj) を提示して示す。
以上で、文書mj が時刻 t に存在することの証明を終わる。
【0007】
本発明に関連する「時刻証明装置」の一例が特許文献1に記載されている。
特許文献1の「時刻照明装置」は、「開鍵基盤のもと、所定のデジタル情報に時刻情報の付与を要求する利用者装置とコンピュータネットワークを介して接続されており、所定の時間内における複数の要求を二分木を利用してまとめ、まとめた値に対して時刻情報を付し、デジタル署名を生成する時刻証明装置であって、利用者装置から要求を受信する受信手段と、所定の時間内に受信した前記要求に含まれる時刻証明対象データを二分木のリーフに順次割り当てて、同一の親を有する2つの子に割り当てられたそれぞれの値を連接した連接値のダイジェストを前記親に割り当てる値とする計算方法により、前記リーフに割り当てた要求に含まれる時刻証明対象データの値から二分木のルートに割り当てるルート値を計算する時刻証明要求まとめ手段と、所定の時間を決定する時刻情報を提供する時刻情報提供手段と、時刻情報提供手段から提供された時刻情報をルート値に付して施したデジタル署名、ルート値、およびルート値に付された時刻情報を含む時刻証明書を作成する時刻証明書作成手段と、要求に含まれる時刻証明対象データが割り当てられたリーフから二分木のルート値を計算するのに必要な他のノードの値を要求の補完情報として取得する補完情報取得手段と、時刻証明書および補完情報を利用者装置に送信する送信手段と、を有する」ことを特徴とする。
【0008】
この「時刻照明装置」によれば、公開鍵基盤に基づくタイムスタンプシステムにおいて、時刻証明要求を二分木を利用してまとめ、そのまとめたルート値にデジタル署名を施すので、利用者装置から一時的に多くの時刻証明要求があっても、正確な時刻を付した時刻証明をすることができるとしている。
【0009】
本発明に関連する「タイムスタンプシステム」の一例が特許文献2に記載されている。
特許文献2に記載の「タイムスタンプシステム」は、「ディジタルデータが存在した時刻を認証するタイムスタンプを要求するタイムスタンプ要求装置と、タイムスタンプ要求装置からの要求によりディジタルデータが存在した時刻を証明するデータであるタイムスタンプトークンを発行するタイムスタンプ装置とからなるタイムスタンプシステムであって、タイムスタンプ要求装置は、初期値として一方向性及び衝突困難性を持つ関数を用いて再帰的に変換して得られる値を持ち、ディジタルデータの一連の改版の前後性を証明するコミット情報を記憶する記憶手段と、タイムスタンプを要求するディジタルデータと、ディジタルデータにおいて、直前のタイムスタンプの要求に用いたコミット情報を生成する基となった値を持つコミット情報とを、一方向性及び衝突困難性を持つ関数を用いて変換して得たタイムスタンプ要求データをタイムスタンプ装置へ送信し、ディジタルデータに対するタイムスタンプを要求するタイムスタンプ要求手段と、要求に対応してタイムスタンプ装置から返送されたタイムスタンプトークンを受信するタイムスタンプトークン受信手段とを備え、タイムスタンプ装置は、タイムスタンプ要求装置から受信したタイムスタンプ要求データを基に、ディジタルデータに対するタイムスタンプトークンを生成して返送するタイムスタンプトークン生成手段を備える」ことを特徴とする。
【0010】
この「タイムスタンプシステム」によれば、正当なユーザが所有するドキュメントに対して不正なタイムスタンプを行うことを試みる敵が正当なユーザのドキュメントを入手可能であり、かつ、敵とタイムスタンプ発行者とが結託できる場合であっても、ユーザの所有するドキュメントに対して正しい時刻より後の時刻におけるタイムスタンプがなされることを防止することができるとしている。
【0011】
本発明に関連する「タイムスタンプ検証プログラム」の一例が特許文献3に記載されている。
特許文献1の「タイムスタンプ検証プログラム」は、「ディジタルデータの生成時刻の認証のためにタイムスタンプ局発行のタイムスタンプの利用者が使用するタイムスタンプ利用側コンピュータを、タイムスタンプ検証依頼対象とする検証対象ディジタルデータに対して、検証対象ディジタルデータと共通のタイムスタンプが生成された他のディジタルデータに関する情報と、タイムスタンプ及びタイムスタンプ生成時間情報を含むタイムスタンプ情報と、を含む付加情報を生成する付加情報生成手段、検証対象ディジタルデータに付加情報を付加してタイムスタンプ検証側コンピュータへ送信することによってタイムスタンプの検証を依頼するタイムスタンプ検証依頼手段、として機能させる」ことを特徴とする。
【0012】
この「タイムスタンプ検証プログラム」によれば、タイムスタンプ利用側コンピュータにおいて複数のディジタルデータに対して共通のタイムスタンプを取得した場合には、タイムスタンプ検証に必要な他のディジタルデータに関する情報を含む付加情報をディジタルデータに付加するようにしたので、タイムスタンプ検証側コンピュータでは、他のディジタルデータを用いることなく当該ディジタルデータに付加されたタイムスタンプを個別に検証することができるとしている。
【0013】
本発明に関連する「文書管理装置」の一例が特許文献4に記載されている。
特許文献4の「文書管理装置」は、「時刻認証用のタイムスタンプが付与された電子文書を管理する文書管理装置であって、複数の文書を一つにまとめて画像ファイルを生成する画像生成部と、画像ファイルにタイムスタンプを付与するタイムスタンプ部と、タイムスタンプが付与された画像ファイルを記憶する画像記憶部と、画像ファイルに含まれる複数の文書に対応する複数の部分画像を抽出し、その位置情報を特定する抽出部と、部分画像毎に検索用識別情報を前記部分画像の位置情報に対応付けて記憶する位置情報記憶部と、を備えた」ことを特徴とする。
【0014】
この「文書管理装置」によれば、タイムスタンプの消費量を抑えつつ、時刻認証されたファイルに含まれる目的の文書を効率良く検索することができる文書管理装置が提供されるとしている。
【特許文献1】特開2005−130488号公報
【特許文献2】特開2005−210479号公報
【特許文献3】特開2007−28015号公報
【特許文献4】特開2007−148543号公報
【非特許文献1】Stuart Haber, W. Scott Stornetta "How to Time-Stamp a Digital Document."J. Cryptology 3(2): 99-111 (1991)
【発明の開示】
【発明が解決しようとする課題】
【0015】
上述した非特許文献1に記載の技術では、識別子IDn を持つ顧客は、時刻tnにある文書mjが存在したことを証明することが出来る。しかし、mjと異なる文書mj' (j'≠ j)も保持しておき、mjqの代りにmj'を示すことも可能である。これは、例えば、電子的に配達証明を発行する時等に問題となる。時刻tにmjを電子メールで送ったとする。このメールに対してタイムスタンプを押し、配達証明することを考える。この時、このメールはメールサーバに保存される。
【0016】
一方、送信者はmj'に対してもタイムスタンプを得ておく。ここで、メールの受信者が長い間メールサーバにアクセスしなかったとする。
【0017】
そこで、送信者とメールサーバとは、サーバに保存されているmjをmj'に入れ替える。受信者がメールサーバにアクセスして手にいれるメールはmj'であり、タイムスタンプが押されているが、送信者が最初に送ったメールはmjであった。この様にして送信者が都合に合わせて時刻tでの配達証明が付加されたメールを事後に選ぶことが可能になった。このようなことが出来ることが問題となる場合がある。
【0018】
そこで、本発明の目的は、送信者が都合に合わせて時刻tでの配達証明が付加されたメールを事後に選ぶことを防止したタイムスタンプ圧縮装置、検証装置、要求装置、サーバ、制御方法、プログラム、及び記憶媒体を提供することにある。
【課題を解決するための手段】
【0019】
本発明の第1の装置は、入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、及びタイムスタンプ証明公開装置を備えたタイムスタンプ圧縮装置であって、前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送することを特徴とする。
【0020】
本発明の第2の装置は、入力手段、出力手段、及び計算手段を備えた圧縮タイムスタンプ検証装置であって、時刻tに対する圧縮タイムスタンプ(t,h[t])、この時刻tに関する全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k、直前の圧縮タイムスタンプ(t',h[t'])、顧客リストCS及び現在の時刻を前記入力手段に入力し、正当なタイムスタンプ要求の列の各要素 Q[i] は、前記顧客リストCSに属する顧客C[i]、前記時刻t、データE[i]、第二時刻t'[i]、データE'[i]と、データσ[i]の列(C[i],t,E[i],t'[i],E'[i],σ[i])であることを前記計算手段で確認し、異なる正当なタイムスタンプ要求の列の最初の要素である顧客は必ず異なるものであることを確認し、前記時刻t、正当なタイムスタンプ要求の列(Q[i])i=1,...,k、及び前記直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値Hash(t,(Q[i])i=1,...,k,t',h[t'])がタイムスタンプの要素h[t]に一致することを前記計算手段で確認すると、(t,h[t]) は正当なタイムスタンプであることを表すデータを前記出力装置が出力することを特徴とする。
【0021】
本発明の第3の装置は、入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、及びタイムスタンプ証明公開装置、及び通信手段を備えた履歴管理タイムスタンプシステムの中の、タイムスタンプ要求装置であって、前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する、タイムスタンプ圧縮装置を備え、前記入力手段に利用者リストUSを入力し、添字iで区別される、時刻t[i]、利用者リストUSに含まれる利用者U[i]、データQ[i]の組(t[i],U[i],Q[i])を複数入力し、これらを記憶装置に保存し、各添字iに関する利用者U[i]に関して、時刻t'[i]、本利用者U[i]、データQ'[i])の組 (t'[i],U[i],Q'[i]) を記憶装置から読み込み、圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])を前記計算手段で生成し、全ての添字に関する圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])と、顧客リストとしての前記利用者リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t',B]) とを、前記タイムスタンプ圧縮装置に入力し、その出力である圧縮タイムスタンプh[t,B]を前記計算手段で生成し、(t,h[t])を記憶装置に格納し、(B,t,h[t],t',h[t',B]) に対する署名、σ[t,B] を生成し、(B,t,h[t],t',h[t',B],σ[t,B]) をタイムスタンプ要求として履歴管理タイムスタンプサーバに前記通信手段で送付することを特徴とする。
【0022】
本発明の第4の装置は、入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備えた履歴管理タイムスタンプシステムの中の、履歴管理タイムスタンプサーバであって、前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送するタイムスタンプ圧縮装置を備え、顧客リストBSを入力し、時刻tに関して、それぞれ異なる前記顧客リストBSに含まれる顧客B のタイムスタンプ要求(B,t,h[t],t'[B],h[t'[B],B],σ[t,B]) を複数受け取り、これらを記憶装置に保存し、これらの全てのタイムスタンプ要求と、顧客リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t'])とを、前記タイムスタンプ圧縮装置に入力し、その出力である圧縮タイムスタンプ h[t]を前記計算手段で生成し、(t,h[t])を前記記憶装置に格納し、(t,h[t])を履歴管理タイムスタンプとして前記出力手段及び前記通信手段で出力することを特徴とする。
【0023】
本発明の第1の方法は、入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、及びタイムスタンプ証明公開装置を備えたタイムスタンプ圧縮装置の制御方法であって、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求 Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t* に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t] と直前の圧縮タイムスタンプ(t',h[t']) のハッシュ値h[t]=Hash(t,(Q[t,C])C ∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t' とこのハッシュ値h[t] の組(t,h[t]) を圧縮タイムスタンプとし生成して前記履歴Histに保存し、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送することを特徴とする。
【0024】
本発明の第2の方法は、入力手段、出力手段、及び計算手段を備えた圧縮タイムスタンプ検証装置の制御方法であって、時刻tに対する圧縮タイムスタンプ(t,h[t])、この時刻tに関する全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k、直前の圧縮タイムスタンプ(t',h[t'])、顧客リストCS及び現在の時刻を前記入力手段に入力し、前記顧客リストCSに属する顧客C[i]、前記時刻t、データE[i]、第二時刻t'[i]、データE'[i]と、データσ[i]の列(C[i],t,E[i],t'[i],E'[i],σ[i])であることを確認し、異なる正当なタイムスタンプ要求の列の最初の要素である顧客は必ず異なるものであることを確認し、タイムスタンプの要素h[t]に一致することを確認すると、(t,h[t]) は正当なタイムスタンプであることを表すデータを出力することを特徴とする。
【0025】
本発明の第3の方法は、入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備え、前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する履歴管理タイムスタンプシステムの中の、タイムスタンプ要求装置の制御方法であって、前記入力手段に利用者リストUSを入力し、添字iで区別される、時刻t[i]、利用者リストUSに含まれる利用者U[i]、データQ[i]の組(t[i],U[i],Q[i])を複数入力し、これらを記憶装置に保存し、各添字iに関する利用者U[i]に関して、時刻t'[i]、本利用者U[i]、データQ'[i])の組 (t'[i],U[i],Q'[i]) を記憶装置から読み込み、圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])を生成し、全ての添字に関する圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])と、顧客リストとしての前記利用者リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t',B]) とを、前記タイムスタンプ圧縮装置に入力し、その出力である圧縮タイムスタンプh[t,B]を生成し、(t,h[t])を記憶装置に格納し、(B,t,h[t],t',h[t',B]) に対する署名、σ[t,B] を生成し、(B,t,h[t],t',h[t',B],σ[t,B]) をタイムスタンプ要求として履歴管理タイムスタンプサーバに送付することを特徴とする。
【0026】
本発明の第4の方法は、入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備え、前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する履歴管理タイムスタンプサーバの制御方法であって、顧客リストBSを入力し、時刻tに関して、それぞれ異なる前記顧客リストBSに含まれる顧客B のタイムスタンプ要求(B,t,h[t],t'[B],h[t'[B],B],σ[t,B]) を複数受け取り、これらを記憶装置に保存し、これらの全てのタイムスタンプ要求と、顧客リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t'])とを、前記タイムスタンプ圧縮装置に入力し、その出力である圧縮タイムスタンプ h[t]を生成し、(t,h[t])を記憶装置に格納し、(t,h[t])を履歴管理タイムスタンプとして出力することを特徴とする。
【0027】
本発明の第1のプログラムは、入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備えたタイムススタンプ圧縮装置の制御プログラムであって、コンピュータに、前記タイムスタンプ要求受付装置が、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻 t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求 Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ) 、顧客リストCS及び現在の時刻を前記入力手段に入力する手順、前記履歴Histが、前記顧客Cと前記第二の時刻と第二のデータの組 (C,[t'[C],E'[C,t'[C]]] とを保存し、かつ第二の時刻t'[C] は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻 t* に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*) との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客C と前記時刻 t と第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存する手順、前記タイムスタンプ要求連結装置が、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i]) として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t] と直前の圧縮タイムスタンプ(t',h[t']) のハッシュ値h[t]=Hash(t,(Q[t,C])C ∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t' とこのハッシュ値h[t] の組(t,h[t]) を圧縮タイムスタンプとし生成して前記履歴Histに保存する手順、前記タイムスタンプ証明公開装置が、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する手順を実行させることを特徴とする。
【0028】
本発明の第2のプログラムは、入力手段、出力手段、及び計算手段を備えた圧縮タイムスタンプ検証装置の制御プログラムであって、コンピュータに、時刻tに対する圧縮タイムスタンプ(t,h[t])、この時刻tに関する全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k、直前の圧縮タイムスタンプ(t',h[t'])、顧客リストCS及び現在の時刻を前記入力手段が入力する手順、正当なタイムスタンプ要求の列の各要素 Q[i] は、前記顧客リストCSに属する顧客C[i]、前記時刻t、データE[i]、第二時刻t'[i]、データE'[i]と、データσ[i]の列(C[i],t,E[i],t'[i],E'[i],σ[i])であることを前記計算手段が確認し、異なる正当なタイムスタンプ要求の列の最初の要素である顧客は必ず異なるものであることを確認する手順、前記時刻t、正当なタイムスタンプ要求の列(Q[i])i=1,...,k、及び前記直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値Hash(t,(Q[i])i=1,...,k,t',h[t'])がタイムスタンプの要素h[t]に一致することを前記計算手段が確認する手順、(t,h[t]) は正当なタイムスタンプであることを表すデータを前記出力装置が出力する手順を実行させることを特徴とする。
【0029】
本発明の第3のプログラムは、入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備え、前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する圧縮タイムスタンプ出力装置タンプ圧縮装置を備えた履歴管理タイムスタンプシステムの中の、タイムスタンプ要求装置の制御プログラムであって、コンピュータに、前記入力手段が利用者リストUSを入力する手順、添字iで区別される、時刻t[i]、利用者リストUSに含まれる利用者U[i]、データQ[i]の組(t[i],U[i],Q[i])を複数入力し、これらを記憶装置が保存する手順、各添字iに関する利用者U[i]に関して、時刻t'[i]、本利用者U[i]、データQ'[i])の組 (t'[i],U[i],Q'[i]) を記憶装置から読み込む手順、圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])を前記計算手段が生成する手順、全ての添字に関する圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])と、顧客リストとしての前記利用者リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t',B]) とを、前記タイムスタンプ圧縮装置が入力する手順、その出力である圧縮タイムスタンプh[t,B]を前記計算手段が生成する手順、(t,h[t])を記憶装置が格納する手順、(B,t,h[t],t',h[t',B])に対する署名、σ[t,B]を生成し、(B,t,h[t],t',h[t',B],σ[t,B])をタイムスタンプ要求として履歴管理タイムスタンプサーバに前記通信手段で送付する手順を実行させることを特徴とする。
【0030】
本発明の第4のプログラムは、入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備え、前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する履歴管理タイムスタンプシステムの中の、履歴管理タイムスタンプサーバの制御プログラムであって、コンピュータに、前記記憶装置が顧客リストBSを入力し、時刻tに関して、それぞれ異なる前記顧客リストBSに含まれる顧客B のタイムスタンプ要求(B,t,h[t],t'[B],h[t'[B],B],σ[t,B]) を複数受け取り、これらを保存する手順、これらの全てのタイムスタンプ要求と、顧客リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t'])とを、前記タイムスタンプ圧縮装置が入力する手順、その出力である圧縮タイムスタンプ h[t]を前記計算手段が生成する手順、(t,h[t])を前記記憶装置が格納する手順、(t,h[t])を履歴管理タイムスタンプとして前記出力手段及び前記通信手段が出力する手順を実行することを特徴とする。
【0031】
本発明の記憶媒体は、上記いずれかに記載のプログラムを記憶したことを特徴とする。
【発明の効果】
【0032】
本発明によれば、送信者が都合に合わせて時刻tでの配達証明が付加されたメールを事後に選ぶことを防止したタイムスタンプ圧縮装置、検証装置、要求装置、サーバ、制御方法、プログラム、及び記憶媒体の提供を実現することができる。
【発明を実施するための最良の形態】
【0033】
<実施の形態1>
まず、本発明に係るタイムスタンプ圧縮装置の実施の形態について図を参照して記述する。
[構 成]
図1は、本発明に係るタイムスタンプ圧縮装置の一実施の形態を示す概念図である。
タイムスタンプ圧縮装置<300> CT を次のような装置する。タイムスタンプ圧縮装置<300>CTには登録された顧客の集合CS<301>が存在する。タイムスタンプ圧縮装置<300> CT は各時刻t に関して以下の様に動作する。
【0034】
安全性の指標となる変数LEが予め決められている。
1.時刻tに関して、ある集合CS'⊂CSに属する全ての顧客C∈CS'から、それぞれタイムスタンプの要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ[C])<302>を受け取る。
2.各顧客C∈CS'に関して、タイムスタンプ圧縮装置<300>CTは、以下を検証できれば正当なタイムスタンプの要求と見做す。
E[C,t],E'[C,t'[C]]の長さはLEである<303>。
【0035】
σ[C]は(C,t,E[C,t],t'[C],E'[C,t'[C]]) に対する、顧客Cの正当な署名である<304>。
([t'[C],E'[C,t'[C]]] に関して、顧客Cが時刻t'[C]<tにタイムスタンプ圧縮装置<300>CTに正当なタイムスタンプの要求(C,t'[C],E'[C,t'[C]],t''[C,E''[C,t''[C]],σ'[C]]を送付している<305>。
(t'[C],E'[C,t'[C]])に関して、顧客Cはt'[C]<t*≦tなるいかなる時刻t*にも、タイムスタンプ圧縮装置<300>CTに正当なタイムスタンプの要求を行っていない<306>。
【0036】
3.正当なタイムスタンプの要求<307>を行った顧客Cの集合をCS"⊂CS'とする。タイムスタンプ圧縮装置<300>CTは全ての顧客C∈CS“に関して、正当なタイムスタンプの要求を連結して<308>、圧縮タイムスタンプh[t]=Hash(t,(Q[t,C])C∈CS'',t',h[t']) <310>を計算する<309>。但し、(t',h[t'])はタイムスタンプ圧縮装置<300>CTが公表した直前の時刻t'のタイムスタンプとする。
【0037】
この様にして計算した圧縮タイムスタンプ (t,h[t])に対して、タイムスタンプ圧縮装置<300> CTの署名を添付して、時刻t以前に出来る限り多くの人に配布する(新聞, 官報等を利用しても良い)。また(t,Q[t,C])C∈ CS'',t',h[t'])も公表する。この公表は時刻t 以前である必要はなく、要求があれば送付すれば十分である。
【0038】
本実施形態によれば、圧縮されたタイムスタンプから、圧縮される前のタイムスタンプをたどるときに、 それぞれの値は全て何れかの顧客に対応していることが明らかなので、各顧客は自身に対応するタイムスタンプを全て発見することができる。よって、タイムスタンプを圧縮したものは、各顧客に対応するタイムスタンプの一意性を保証することが出来る。
【0039】
[動 作]
ここで、図1に示したタイムスタンプ圧縮装置の動作について図5を参照して記述する。
図5は、図1に示したタイムスタンプ圧縮装置の動作を説明するためのフローチャートの一例である。
図示しないCPU(Central Processing Unit)からタイムスタンプが要求されると(ステップS1)、タイムスタンプ要求を受け付け(ステップS2)、タイムステップの長さを確認し(ステップS3)、署名を確認し(ステップS4)、履歴を確認し(ステップS5)、唯一性を確認し(ステップS6)、連結する(ステップS7)。
さらにCPUは、全部そろったか否かを判断し(ステップS8)、全部そろっていないと判断した場合(ステップS8/N)は、ステップS2に戻り、全部そろったと判断した場合(ステップS8/Y)は、ステップS9に進む。
CPUは、顧客リストと時刻、履歴情報とを連結し(ステップS10、S11、S9)、ハッシュし(ステップS12)、圧縮タイムスタンプを作成して(ステップS13)終了する。
【0040】
<実施の形態2>
次に、本発明に係る圧縮タイムスタンプ検証装置の一実施の形態について図を参照して記述する。
図2は、本発明に係る圧縮タイムスタンプ検証装置の一実施の形態を示すブロック図である。
圧縮タイムスタンプ検証装置は、次のように圧縮タイムスタンプ<402>の正当性を確認する。
1.タイムスタンプ要求リスト(t,Q[t,C])C∈CS'',t',h[t'])をタイムスタンプ圧縮装置<300>CTに要求し、このタイムスタンプ要求リストを受け取る。h[t]=Hash(t,(Q[t,C])C∈CS'',t',h[t'])が成り立つことを、顧客のリストCS<405>も用いて確認する<403>。
【0041】
2.いかなるt>t*>t'なる時刻t*にも、タイムスタンプ圧縮装置<300>CTは検証者の知りうる限りいかなるタイムスタンプも発行していないことを、過去のタイムスタンプ<406>も用いて確認する。また(t',h[t'])は正当なタイムスタンプであったことを確認する<404>。
3.(Q[t,C])C∈CS"の各Q[t,C]全てが正当なタイムスタンプ要求であることを確認する<407>。
以上全てが確認されれば、(t,h[t])は正当な圧縮タイムスタンプであると見做す<408>。
【0042】
本実施形態によれば、圧縮されたタイムスタンプから、圧縮される前のタイムスタンプをたどるときに、 それぞれの値は全て何れかの顧客に対応していることが明らかなので、各顧客は自身に対応するタイムスタンプを全て発見することができる。よって、タイムスタンプを圧縮したものは、各顧客に対応するタイムスタンプの一意性を検証することが出来る。
【0043】
ここで、図2に示した圧縮タイムスタンプ検証装置の動作について図6を参照して記述する。
図6は、図2に示した圧縮タイムスタンプ検証装置の動作を説明するためのフローチャートの一例である。
図示しないCPUは、圧縮タイムスタンプを入力し(ステップS20、S21)、顧客リストを参照してタイムスタンプ要求リスト確認し(ステップS22、S23)、過去のタイムスタンプを参照して履歴を確認し(ステップS24、S25)、タイムスタンプ正当性を確認して終了する(ステップS26)。
【0044】
<実施の形態3>
上記タイムスタンプ圧縮装置と圧縮タイムスタンプ検証装置とを利用した履歴管理タイムスタンプシステムの中の、タイムスタンプ要求装置の一実施の形態について図を参照して記述する。
図3は、本発明に係る履歴管理タイムスタンプシステムの一実施形態を示すブロック図である。
履歴管理タイムスタンプサーバをT<500>とする。サーバの集合をBSとする。Tはタイムスタンプ圧縮装置CT[T] <502>を運用するとして、タイムスタンプ圧縮装置CT[T]の顧客集合をBS<503>とする。
【0045】
顧客集合BS<503>に名を連ねるあるメールサーバ<501>B∈BSの利用者の集合をUS<504>とする。送信者Sが文書mを時刻tに識別子<506>がU∈USである受信者に送付する場合、次のような処理を行う。但し時刻tは送信者SがメールサーバB<501>に文書を時刻tまでに送ったと、両者で納得できる時刻であり、両者が処理を行っている時刻よりは少し未来の時刻とする。
【0046】
最初に、送信者SはメールサーバB<501>に以下の手順で文書mを送付する。
1.送信者Sは(t,m)に対する送信者Sの署名σを生成する。
2.送信者Sは(t,m,σ)をメールサーバB<501>に送付する。
3.メールサーバB<501>は時刻tが未来である事を確認する。
4.メールサーバB<501>は署名σが(t,m) に対する送信者Sの署名であることを確認する。
5.メールサーバB<501>は(t,m)に対するメールサーバB<501>の署名σ'を生成し、この署名σ‘を送信者Sに返送する。
【0047】
ここで、L=(t,S,U,m,σ,σ')とし、これを対象文書<505>と呼ぶ。また、メールサーバB<501> は送信者S以外からも、利用者の集合USに属する利用者宛の複数のメッセージを受け取るとする。それらのメッセージにiで番号を振る。メールサーバB<501>がi 番目に処理したデータであれば、L[i]=(t[i],S[i],U[i],m[i],σ[i],σ'[i])とも書くことにする。
【0048】
メールサーバB<501>はこれらのデータL[i] がそれぞれ時間t[i]に存在したこととこのデータに矛盾するデータが存在していないことを証明する。
1.メールサーバB<501>は全ての対象文書L[i]<505>に関して乱数w[i]<509>を準備し、ハッシュ値x[i]= Hash(L[i],w[i])<507>を生成する<508>。これは、対象文書L[i]<505>に関する関係者以外に提示されるデータをx[i]<507>とすることで、対象文書L[i]<505>に関する情報が不必要に漏ないようにする為である。乱数w[i]<509>は利用者U[i]<506>に送られる。
【0049】
2.メールサーバB<501>はある時刻tに関して、それぞれの利用者U<506>に関してデータをまとめる作業を次のように行う。
i.全ての送信者Sに関して、M[t,U,S]を、全てのiからなる列(x [i])iの部分列で、t[i]=t,U[i]=U,S[i]=Sを満す要素全てからなる列として生成する<513>。
ii.全ての送信者Sに関して、乱数w[t,U,S]<510>を準備し、x[t,U,S] = Hash(t,U,M[t,U,S],w[t,U,S]) <511> を生成する。乱数w[t,U,S]<510>はU<506>に送られる。
iii.時刻tに関するUのまとめハッシュ値x[t,U] = Hash((x [t,U,S])S) <512>を生成する。ここで、(x [t,U,S])S は全ての送信者Sからなるx[t,U,S]の列である。これで時刻tにUが閲覧可能となるメッセージ全てに関するハッシュ木が完成した。
【0050】
3.メールサーバB<501>はタイムスタンプ圧縮装置CT[B]<513>を用意する。利用者の集合US<504>をタイムスタンプ圧縮装置CT[B]に登録された顧客の集合と見做し、それぞれのU∈USに関して、x[t,U]が存在したならば、Q[t,B,U]=(U,t,x[t,U],t'[U],x[t'[U],U],φ)をタイムスタンプ要求<514>とする。但しUの署名の代りに空集合φを用い、以降この署名は正当であると見做して処理を進める。また、(t'[U],x [t'[U]]<516>はUに関する直前のまとめデータで、このまとめデータに関する時刻をt'[C]とした。タイムスタンプ圧縮装置CT[B]の時刻t<517>に関する出力をh[B,t]<515>とする。
【0051】
4.メールサーバB<501>が直前に履歴管理タイムスタンプサーバTにタイムスタンプを要求したのは時刻 t'[B]であったとする。そのときはh'[B,t'[B]]に対するタイムスタンプを要求したとする。メールサーバB は(B,t,h[B,t],t'[B],h'[B,t'[B]])とこれに対する署名σ[B,t]を生成し<518>、Q[t,B]= (B,t,h[B,t],t'[B],h'[B,t'[B]],σ[B,t])を履歴管理タイムスタンプサーバT にタイムスタンプの要求<519>として送付する。
【0052】
5.履歴管理タイムスタンプサーバTは、顧客集合BSの全てあるいは一部のメールサーバB∈顧客集合BSから時刻t<517>に関するタイムスタンプ要求<519>を受けると、タイムスタンプ圧縮装置CT[T]<502>を用いて、時刻tのタイムスタンプ h[t]<520>を生成する。履歴管理タイムスタンプサーバTはこれに署名σを添付して広く配布する。
【0053】
ここで、図4は、本発明に係るタイムスタンプ圧縮装置に用いられる履歴管理タイムスタンプ検証装置の一例を示すブロック図である。
メールサーバBは文書L[i]=(t[i],S[i],U[i],m[i],σ[i],σ'[i])の存在を以下のように証明する。
1.タイムスタンプh[t[i]]<601>が時刻t[i]に配布されていることを確認する<602>。
2.タイムスタンプh[t[i]]の圧縮タイムスタンプとしての正当性を検証する。この時、メールサーバBが33.h[B,t[i]]に対するタイムスタンプ要求を行っていることを確認する。また顧客集合BSが顧客リスト<503>である。
h[B,t[i]]の、圧縮タイムスタンプとしての正当性を検証する<604>。この時、x[t[i],U[i]]に対するタイムスタンプ要求がメールサーバB自身により行われていることを確認する。但し、各顧客のタイムスタンプ要求における署名は、空集合φを正当な署名として扱う。また利用者リストUSが顧客リスト<504>である。
4.次のようにハッシュ値の検証を行う<605>。
乱数w[t[i],U[i],S[i]], M[t[i],U[i],S[i]]を示し、
x[t[i],U[i],S[i]]=Hash(M[t[i],U[i],S[i]],w[t[i],U[i],S[i]])
が成立することを示す。M[t[i],U[i],S[i]] にx[i] が含まれていることを確認する。さらに、乱数w[i]を示し、x[i]=Hash(L[i],w[i])が成立することを示す。
以上全てが確認できれば正当とする<606>。
【0054】
ここで、図3に示した履歴管理タイムスタンプシステムの動作について図7を参照して説明する。
図7は、図3に示した履歴管理タイムスタンプシステムの動作を説明するためのフローチャートの一例である。
図示しないCPUは、利用者識別子を対象文書に設け(ステップS30、S31)、乱数と共にハッシュし(ステップS32、S33)、連結し(ステップS34)、全部そろったか否かを判断(ステップS35)する。CPUは、全部そろっていないと判断した場合は(ステップS35/N)はステップS33に戻り、全部そろったと判断した場合(ステップS35/Y)はステップS36に進み、利用者リストと時刻、履歴情報とを参照して連結し(ステップS37、S38、S36)、まとめハッシュを行う(ステップS39)。CPUは、利用者リストと時刻、履歴情報とを参照してタイムスタンプ圧縮を行い(ステップS42、S43、S40)、時刻、履歴情報と共に署名する(ステップS41)。
【0055】
ここで、署名については終了するが、CPUはタイムスタンプ要求があると(ステップS44)、タイムスタンプ要求を受け付け(ステップS45)、連結し(ステップS46)、全部そろったか否かを判断し(ステップS47)、全部そろっていないと判断した場合(ステップS47/N)、ステップS45に戻る。CPUは、全部そろったと判断した場合(ステップS47/Y)、顧客リストと、時刻、履歴情報とを参照して連結し(ステップS49、S50、S51)、圧縮タイムスタンプを生成し(ステップS52)、タイムスタンプを行い終了する(ステップS53)。
【0056】
<プログラム及び記憶媒体>
以上で説明した本発明の各装置は、コンピュータで処理を実行させるプログラムによって実現されている。コンピュータとしては、例えばパーソナルコンピュータやワークステーションなどの汎用的なものが挙げられるが、本発明はこれに限定されるものではない。
【0057】
これにより、制御プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明の装置を実現することができる。
【0058】
このような制御プログラムは、コンピュータに読み取り可能な記憶媒体に記憶されていてもよい。
ここで、記憶媒体としては、例えば、CD-ROM(Compact Disc Read Only Memory)、フレキシブルディスク(FD)、CD-R(CD Recordable)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記憶媒体、フラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)、FeRAM(強誘電体メモリ)等の半導体メモリやHDD(Hard Disc Drive)が挙げられる。
【0059】
なお、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【0060】
<作用効果>
本実施形態によれば、サーバは、各利用者に対してある時刻に揃えて提供可能としているデータに対するタイムスタンプをタイムスタンプサーバから得ることができる。
本実施形態によれば、本サーバが同じ時刻に同じ利用者に対して提供可能としているデータに関して本タイムスタンプを得たデータの全体を、この利用者が確認することが出来る。これは、各顧客に対応するデータが明らかになるようにハッシュ木が構成されているからである。
利用者が自身に関するデータの全体を確認できるということは、隠されていた自身に関するデータが後になってタイムスタンプ付で明らかにされることはないということである。
【産業上の利用可能性】
【0061】
本発明によれば、ある送信者Sがある利用者Uの利用するメールサーバBにある時刻tにU宛のメッセージmを送ったときに、メールサーバBが本発明によるタイムスタンプをタイムスタンプサーバTから得たならば、メールサーバBは時刻tにU 宛の文書mを受け取っていたこと、他のメッセージは受け取っていない(あるいは受け取っていてもこれに対してタイムスタンプを得てUに転送するためのしかるべき準備をしていない) ことが証明できる。これは、通常の郵便の配達確認を電子的に実現できる効果がある。
【図面の簡単な説明】
【0062】
【図1】本発明に係るタイムスタンプ圧縮装置の一実施の形態を示す概念図である。
【図2】本発明に係る圧縮タイムスタンプ検証装置の一実施の形態を示すブロック図である。
【図3】本発明に係る履歴管理タイムスタンプシステムの一実施形態を示すブロック図である。
【図4】本発明に係るタイムスタンプ圧縮装置に用いられる履歴管理タイムスタンプ検証装置の一例を示すブロック図である。
【図5】図1に示したタイムスタンプ圧縮装置の動作を説明するためのフローチャートの一例である。
【図6】図2に示した圧縮タイムスタンプ検証装置の動作を説明するためのフローチャートの一例である。
【図7】図3に示した履歴管理タイムスタンプシステムの動作を説明するためのフローチャートの一例である。
【図8】本発明に関連するタイムスタンプ装置のブロック図である。
【図9】本発明に関連するタイムスタンプサーバのブロック図である。
【符号の説明】
【0063】
300 タイムスタンプ圧縮装置
301 顧客リスト
302 タイムスタンプ要求
303 長さ確認部
304 署名確認部
305 履歴確認部
306 唯一性確認部
307 正当なタイムスタンプ要求部
308 連結部
309 ハッシュ関数保持部
310 圧縮タイムスタンプ部

【特許請求の範囲】
【請求項1】
入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、及びタイムスタンプ証明公開装置を備えたタイムスタンプ圧縮装置であって、
前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、
前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、
前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、
前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送することを特徴とするタイムスタンプ圧縮装置。
【請求項2】
入力手段、出力手段、及び計算手段を備えた圧縮タイムスタンプ検証装置であって、
時刻tに対する圧縮タイムスタンプ(t,h[t])、この時刻tに関する全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k、直前の圧縮タイムスタンプ(t',h[t'])、顧客リストCS及び現在の時刻を前記入力手段に入力し、
正当なタイムスタンプ要求の列の各要素 Q[i] は、前記顧客リストCSに属する顧客C[i]、前記時刻t、データE[i]、第二時刻t'[i]、データE'[i]と、データσ[i]の列(C[i],t,E[i],t'[i],E'[i],σ[i])であることを前記計算手段で確認し、異なる正当なタイムスタンプ要求の列の最初の要素である顧客は必ず異なるものであることを確認し、
前記時刻t、正当なタイムスタンプ要求の列(Q[i])i=1,...,k、及び前記直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値Hash(t,(Q[i])i=1,...,k,t',h[t'])がタイムスタンプの要素h[t]に一致することを前記計算手段で確認すると、(t,h[t]) は正当なタイムスタンプであることを表すデータを前記出力装置が出力することを特徴とする圧縮タイムスタンプ検証装置。
【請求項3】
入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、及びタイムスタンプ証明公開装置、及び通信手段を備えた履歴管理タイムスタンプシステムの中の、タイムスタンプ要求装置であって、
前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、
前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、
前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、
前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する、タイムスタンプ圧縮装置を備え、
前記入力手段に利用者リストUSを入力し、
添字iで区別される、時刻t[i]、利用者リストUSに含まれる利用者U[i]、データQ[i]の組(t[i],U[i],Q[i])を複数入力し、これらを記憶装置に保存し、
各添字iに関する利用者U[i]に関して、時刻t'[i]、本利用者U[i]、データQ'[i])の組 (t'[i],U[i],Q'[i]) を記憶装置から読み込み、
圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])を前記計算手段で生成し、
全ての添字に関する圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])と、
顧客リストとしての前記利用者リストと、
記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t',B]) とを、
前記タイムスタンプ圧縮装置に入力し、その出力である圧縮タイムスタンプh[t,B]を前記計算手段で生成し、(t,h[t])を記憶装置に格納し、
(B,t,h[t],t',h[t',B]) に対する署名、σ[t,B] を生成し、(B,t,h[t],t',h[t',B],σ[t,B]) をタイムスタンプ要求として履歴管理タイムスタンプサーバに前記通信手段で送付することを特徴とする履歴管理タイムスタンプシステムの中の、タイムスタンプ要求装置。
【請求項4】
入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備えた履歴管理タイムスタンプシステムの中の、履歴管理タイムスタンプサーバであって、
前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、
前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、
前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、
前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送するタイムスタンプ圧縮装置を備え、
顧客リストBSを入力し、時刻tに関して、それぞれ異なる前記顧客リストBSに含まれる顧客B のタイムスタンプ要求(B,t,h[t],t'[B],h[t'[B],B],σ[t,B]) を複数受け取り、これらを記憶装置に保存し、
これらの全てのタイムスタンプ要求と、顧客リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t'])とを、前記タイムスタンプ圧縮装置に入力し、その出力である圧縮タイムスタンプ h[t]を前記計算手段で生成し、(t,h[t])を前記記憶装置に格納し、
(t,h[t])を履歴管理タイムスタンプとして前記出力手段及び前記通信手段で出力することを特徴とする履歴管理タイムスタンプシステムの中の、履歴管理タイムスタンプサーバ。
【請求項5】
入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、及びタイムスタンプ証明公開装置を備えたタイムスタンプ圧縮装置の制御方法であって、
時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求 Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、
前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t* に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、
時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t] と直前の圧縮タイムスタンプ(t',h[t']) のハッシュ値h[t]=Hash(t,(Q[t,C])C ∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t' とこのハッシュ値h[t] の組(t,h[t]) を圧縮タイムスタンプとし生成して前記履歴Histに保存し、
時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送することを特徴とするタイムスタンプ圧縮装置の制御方法。
【請求項6】
入力手段、出力手段、及び計算手段を備えた圧縮タイムスタンプ検証装置の制御方法であって、
時刻tに対する圧縮タイムスタンプ(t,h[t])、この時刻tに関する全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k、直前の圧縮タイムスタンプ(t',h[t'])、顧客リストCS及び現在の時刻を前記入力手段に入力し、
前記顧客リストCSに属する顧客C[i]、前記時刻t、データE[i]、第二時刻t'[i]、データE'[i]と、データσ[i]の列(C[i],t,E[i],t'[i],E'[i],σ[i])であることを確認し、異なる正当なタイムスタンプ要求の列の最初の要素である顧客は必ず異なるものであることを確認し、
タイムスタンプの要素h[t]に一致することを確認すると、(t,h[t]) は正当なタイムスタンプであることを表すデータを出力することを特徴とする圧縮タイムスタンプ検証装置の制御方法。
【請求項7】
入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備え、
前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、
前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、
前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、
前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する履歴管理タイムスタンプシステムの中の、タイムスタンプ要求装置の制御方法であって、
前記入力手段に利用者リストUSを入力し、
添字iで区別される、時刻t[i]、利用者リストUSに含まれる利用者U[i]、データQ[i]の組(t[i],U[i],Q[i])を複数入力し、これらを記憶装置に保存し、
各添字iに関する利用者U[i]に関して、時刻t'[i]、本利用者U[i]、データQ'[i])の組 (t'[i],U[i],Q'[i]) を記憶装置から読み込み、
圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])を生成し、
全ての添字に関する圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])と、
顧客リストとしての前記利用者リストと、
記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t',B]) とを、
前記タイムスタンプ圧縮装置に入力し、その出力である圧縮タイムスタンプh[t,B]を生成し、(t,h[t])を記憶装置に格納し、
(B,t,h[t],t',h[t',B]) に対する署名、σ[t,B] を生成し、(B,t,h[t],t',h[t',B],σ[t,B]) をタイムスタンプ要求として履歴管理タイムスタンプサーバに送付することを特徴とする履歴管理タイムスタンプシステムの中の、タイムスタンプ要求装置の制御方法。
【請求項8】
入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備え、
前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、
前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、
前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、
前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する履歴管理タイムスタンプサーバの制御方法であって、
顧客リストBSを入力し、時刻tに関して、それぞれ異なる前記顧客リストBSに含まれる顧客B のタイムスタンプ要求(B,t,h[t],t'[B],h[t'[B],B],σ[t,B]) を複数受け取り、これらを記憶装置に保存し、
これらの全てのタイムスタンプ要求と、顧客リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t'])とを、前記タイムスタンプ圧縮装置に入力し、その出力である圧縮タイムスタンプ h[t]を生成し、(t,h[t])を記憶装置に格納し、
(t,h[t])を履歴管理タイムスタンプとして出力することを特徴とする履歴管理タイムスタンプシステムの中の、履歴管理タイムスタンプサーバの制御方法。
【請求項9】
入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備えたタイムススタンプ圧縮装置の制御プログラムであって、
コンピュータに、前記タイムスタンプ要求受付装置が、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻 t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求 Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ) 、顧客リストCS及び現在の時刻を前記入力手段に入力する手順、
前記履歴Histが、前記顧客Cと前記第二の時刻と第二のデータの組 (C,[t'[C],E'[C,t'[C]]] とを保存し、かつ第二の時刻t'[C] は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻 t* に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*) との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客C と前記時刻 t と第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存する手順、
前記タイムスタンプ要求連結装置が、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i]) として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t] と直前の圧縮タイムスタンプ(t',h[t']) のハッシュ値h[t]=Hash(t,(Q[t,C])C ∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t' とこのハッシュ値h[t] の組(t,h[t]) を圧縮タイムスタンプとし生成して前記履歴Histに保存する手順、
前記タイムスタンプ証明公開装置が、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する手順を実行させることを特徴とする制御プログラム。
【請求項10】
入力手段、出力手段、及び計算手段を備えた圧縮タイムスタンプ検証装置の制御プログラムであって、
コンピュータに、時刻tに対する圧縮タイムスタンプ(t,h[t])、この時刻tに関する全ての正当なタイムスタンプ要求の列 Q[t]=(Q[i])i=1,...,k、直前の圧縮タイムスタンプ(t',h[t'])、顧客リストCS及び現在の時刻を前記入力手段が入力する手順、
正当なタイムスタンプ要求の列の各要素 Q[i] は、前記顧客リストCSに属する顧客C[i]、前記時刻t、データE[i]、第二時刻t'[i]、データE'[i]と、データσ[i]の列(C[i],t,E[i],t'[i],E'[i],σ[i])であることを前記計算手段が確認し、異なる正当なタイムスタンプ要求の列の最初の要素である顧客は必ず異なるものであることを確認する手順、
前記時刻t、正当なタイムスタンプ要求の列(Q[i])i=1,...,k、及び前記直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値Hash(t,(Q[i])i=1,...,k,t',h[t'])がタイムスタンプの要素h[t]に一致することを前記計算手段が確認する手順、
(t,h[t]) は正当なタイムスタンプであることを表すデータを前記出力装置が出力する手順を実行させることを特徴とする制御プログラム。
【請求項11】
入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備え、
前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、
前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、
前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、
前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する圧縮タイムスタンプ出力装置タンプ圧縮装置を備えた履歴管理タイムスタンプシステムの中の、タイムスタンプ要求装置の制御プログラムであって、
コンピュータに、前記入力手段が利用者リストUSを入力する手順、
添字iで区別される、時刻t[i]、利用者リストUSに含まれる利用者U[i]、データQ[i]の組(t[i],U[i],Q[i])を複数入力し、これらを記憶装置が保存する手順、
各添字iに関する利用者U[i]に関して、時刻t'[i]、本利用者U[i]、データQ'[i])の組 (t'[i],U[i],Q'[i]) を記憶装置から読み込む手順、
圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])を前記計算手段が生成する手順、
全ての添字に関する圧縮タイムスタンプ要求(U[i],t[i],Q[i],t'[i],Q[i])と、顧客リストとしての前記利用者リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t',B]) とを、前記タイムスタンプ圧縮装置が入力する手順、
その出力である圧縮タイムスタンプh[t,B]を前記計算手段が生成する手順、
(t,h[t])を記憶装置が格納する手順、
(B,t,h[t],t',h[t',B]) に対する署名、σ[t,B] を生成し、(B,t,h[t],t',h[t',B],σ[t,B]) をタイムスタンプ要求として履歴管理タイムスタンプサーバに前記通信手段で送付する手順を実行させることを特徴とする制御プログラム。
【請求項12】
入力手段、出力手段、計算手段、記憶装置である履歴Hist、タイムスタンプ要求受付装置、タイムスタンプ要求連結装置、タイムスタンプ証明公開装置、及び通信手段を備え、
前記タイムスタンプ要求受付装置は、時刻tに関して、顧客リストに含まれる客C、時刻t、第一のデータE[C,t]、第二の時刻t'[C]、第二のデータE'[C,t'[C]]、及びその他のデータσからなる列であるタイムスタンプ要求Q[t,C]=(C,t,E[C,t],t'[C],E'[C,t'[C]],σ)、顧客リストCS及び現在の時刻を前記入力手段に入力し、
前記履歴Histに、前記顧客Cと前記第二の時刻と第二のデータの組(C,[t'[C],E'[C,t'[C]]]とを保存し、かつ第二の時刻t'[C]は第一の時刻tよりも過去であり、第二の時刻t'[C]より未来で、時刻tと同じかそれよりも過去のいかなる第三の時刻t*に対しても、顧客Cと第三の時刻t*とデータE*(C,t*,E*)との組が保存されていなければ、前記タイムスタンプ要求を正当とみなして、前記顧客Cと前記時刻tと第一のデータの組(C,t,E[C,t])とを前記履歴Histに保存し、
前記タイムスタンプ要求連結装置は、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の数をkとし、i番目の正当なタイムスタンプ要求をQ[i]=(C[i],t,E[i],t'[i],E'[i],σ[i])として、時刻tに関して受け付けた全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,k を前記計算手段で生成し、時刻t とこのタイムスタンプ要求の列Q[t]と直前の圧縮タイムスタンプ(t',h[t'])のハッシュ値h[t]=Hash(t,(Q[t,C])C∈ CS'',t',h[t'])とを前記計算手段で生成し、時刻t'とこのハッシュ値h[t]の組(t,h[t])を圧縮タイムスタンプとし生成して前記履歴Histに保存し、
前記タイムスタンプ証明公開装置は、時刻tを前記入力手段に入力すると、この時刻t に関する全ての正当なタイムスタンプ要求の列Q[t]=(Q[i])i=1,...,kと直前のタイムスタンプ(t',h[t'])とを返送する履歴管理タイムスタンプシステムの中の、履歴管理タイムスタンプサーバの制御プログラムであって、
コンピュータに、前記記憶装置が顧客リストBSを入力し、時刻tに関して、それぞれ異なる前記顧客リストBSに含まれる顧客B のタイムスタンプ要求(B,t,h[t],t'[B],h[t'[B],B],σ[t,B]) を複数受け取り、これらを保存する手順、
これらの全てのタイムスタンプ要求と、顧客リストと、記憶装置から読み込んだ、直前の圧縮タイムスタンプ(t',h[t'])とを、前記タイムスタンプ圧縮装置が入力する手順、
その出力である圧縮タイムスタンプ h[t]を前記計算手段が生成する手順、
(t,h[t])を前記記憶装置が格納する手順、
(t,h[t])を履歴管理タイムスタンプとして前記出力手段及び前記通信手段が出力する手順を実行することを特徴とする制御プログラム。
【請求項13】
請求項9から12の何れか一項の制御プログラムを記憶したことを特徴とする記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−34783(P2010−34783A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2008−193823(P2008−193823)
【出願日】平成20年7月28日(2008.7.28)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】