データ保全性検証方法、装置、およびシステム
【課題】長期アーカイブサービスの目的は、データの存在否認の防止、データ保全性、およびデータオリジンをサポートすることであり、長期アーカイブサービスは、データを受け入れた時からデータの保管期間の終了時まで、データの保全性を検証する方法を提供する。
【解決手段】最初にデータのフィンガープリントがクライアントで生成され、そのフィンガープリントがデータと共にアーカイブに送信され、続いて、必要が生じたときにクライアントがデータの保全性を判定するための「チャレンジデータ」をアーカイブに送信し、アーカイブが受信したフィンガープリントを使用してデータの保全性を証明し、最後に、クライアントが「チャレンジデータ」への応答として返されたアーカイブからの出力に基づいてデータの保全性を検証する、証明可能データ保全性(PDI)検証方法を提供する。
【解決手段】最初にデータのフィンガープリントがクライアントで生成され、そのフィンガープリントがデータと共にアーカイブに送信され、続いて、必要が生じたときにクライアントがデータの保全性を判定するための「チャレンジデータ」をアーカイブに送信し、アーカイブが受信したフィンガープリントを使用してデータの保全性を証明し、最後に、クライアントが「チャレンジデータ」への応答として返されたアーカイブからの出力に基づいてデータの保全性を検証する、証明可能データ保全性(PDI)検証方法を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージネットワークのセキュリティ分野に関し、特に、証明可能データの保全性(PDI)検証方法、装置、およびシステムに関する。
【背景技術】
【0002】
インターネットの世界では、これまでローカルストレージで行っていたデータの保管を、世界規模の固定ストレージサービスに外注する動きが急速に高まっている。Amazon Simple Storage Service(Amazon S3)(非特許文献1:Amazon Simple Storage Service (Amazon S3),http://aws.amazon.com/s3)は、インターネット上のこうしたストレージシステムの1つである。Amazon S3は、データの格納と取り出しに利用できるウェブサービスインターフェースを提供する。Amazon S3は世界規模でビジネスクラスのサービスでありながら、その料金は非常に安価であり、利用料は記憶容量1GB当たり月額0.15米ドル、全データの転送入力料は1GB当たり0.10米ドル、データの転送出力料は最初の10 TBまで月額0.18米ドルである。無料の世界規模ストレージサービスを希望する企業向けにも、いくつかのサービスが提供されている。MediaMax(非特許文献2:MediaMax Free Online Storage,http://www.mediamax.com)が25 GBの無料オンラインストレージを提供しており、Gmail File System(非特許文献3:Gmail Drive Shell Extension,http://www.viksoe.dk/code/gmail.htm)プロジェクトではフリーGmailアカウントが1つの連続した無料ネットワークストレージ領域に変換された。
【0003】
これらの公的な記憶領域サービスを利用すれば、クライアントはローカルな記憶サブシステムを持たずに、インターネット上でいつでも、どこからでもデータを取り出すことが可能になる。この大きな魅力によって産業界での利用が進み、今ではストレージのアウトソーシングが必然的な流れとなっている。
【0004】
IETF Network WGはこの動向を受けて標準化を取り組み、その結果として、RFC 4810“Long−Term Archive Service Requirement”(長期アーカイブサービス要件)がリリースされた(非特許文献4:RFC 4810,Long−Term Archive Service Requirement、IETF Network WG.http://www.ietf.org/rfc/rfc4810.txt)。RFC 4810は、長期間のデータ保管を目的とする長期アーカイブサービスに関する要件を定めている。長期アーカイブサービスの主な目的は、データの存在否認の防止、データ保全性、およびデータオリジンをサポートすることである。RFC 4810で述べられているように、長期アーカイブサービスは、データを受け入れた時からデータの保管期間の終了時まで、データの保全性を実証する証拠を提供できなければならない。
【0005】
クライアントストレージのデータの保管をアーカイブサービスに委託する場合は、データの送信とデータの取り込みという2つのステップが必要となる。データ保全性の検証を目的とする単純な解決策では、データはアーカイブから取り出される。しかし、リモートアーカイブからクライアント検証器までを高帯域で接続することは現時点では実用的ではなく、近い将来にも同様である。特にモバイルクライアントでは、快適な高帯域接続を実現することは困難である。さらに、RFC 4810にもあるように、サードパーティ検証器がユーザデータの保全性を検査するケースもある。この場合は、ユーザデータのプライバシ侵害を防止するために、サードパーティ検証器がユーザデータにアクセスできないようにする必要がある。従来技術では、アーカイブから取り出さずにデータの保全性を検証するための方策として、図1に示す3つのステップから成る動作モデルが採用されている。説明の一般性を損なわず、かつ表記上の煩雑化を避けるため、以下では、クライアント(すなわち、データ所有者)がユーザのデータ保全性の検証器であるケースを例にとって説明する。しかし、前述したように、実際の検証器はデータ所有者以外のサードパーティのこともある。
【0006】
ステップ0において、クライアントによってデータのデジタルフィンガープリントが生成され、データと共にアーカイブに送信される。アーカイブには、データそのものに加えて、データのフィンガープリントも格納する必要がある。ステップ1において、クライアントがアーカイブに、データ保全性に関するチャレンジデータを送信する。アーカイブは、データのコンテンツ、データのフィンガープリント、クライアントのチャレンジデータのすべてを利用して、データ保全性証明を計算する。計算結果はクライアントに送り返され、ステップ2の検証に利用される。ステップ1とステップ2は、データの保管期間が終了するまで複数回にわたって反復することができる。
【0007】
上記の動作モデルを使用する場合に、証明可能データ保全性問題の技術的解決策において考慮すべき主な要因を以下に示す。
(I) クライアントがデータのフィンガープリントを生成する際の所要時間
(II) データのフィンガープリントが消費するアーカイブ記憶領域のサイズ
(III) 検証器がアーカイブに送信するチャレンジデータのサイズ
(IV) アーカイブがデータ保全性証明を計算する際の所要時間
(V) アーカイブが検証器に送信するデータ保全性証明のサイズ
(VI) 検証器がデータ保全性証明を検査する際の所要時間
【0008】
データ保全性問題に一見対処しているように見える解決策はある。この解決策では、データ所有者がまずデータを複数の断片に分割し、各断片について、メッセージ認証コード(MAC)を事前計算する。そして、検証器(データ所有者かサードパーティかを問わない)がデータ保全性証明を必要とするときには、アーカイブサービスから無作為に選択されたいくつかの断片を取り出し、各断片のMACを再計算して比較する。
【0009】
Deswarte et al.(非特許文献5:Y.Deswarte,J.J.Quisquater,A.Saidane,Remote integrity checking(リモート保全性検査),In Proc.of Conference on Integrity and Internal control in Information systems(IICIS’03),2003)とFilho et al.(非特許文献6:D.L.G.Filho、P.S.L.M.Baretto.Demonstrating Data Possession and Uncheatable Data Transfer.http://eprint.iacr.org/2006/150.pdf)では、RSAベースのハッシュ関数を使用して、アーカイブが格納するファイルの正確性を検証する方法が提案されている。
【0010】
最も新しい例では、Ateniese et al.(参考文献7:G.Ateniese,R.Burns,R.Curtmola,J.Herring,L.Kissner,Z.Peterson,D.Song,Provable Data Possession at Untrusted Stores(信頼されない記憶装置における証明可能データの保有).http://eprint.iacr.org/2007/202.pdf)において、RSAベースの証明可能データ保有スキームとして、S−PDPスキーム(Sは「サンプリング」の略)が提案されている。この提案における「サンプリング」とは、クライアントがデータの一部を無作為に選択し、アーカイブに対して、この無作為に選択されたデータが健全な状態にある(すなわち、選択されたデータのデータ保全性が保たれている)という証拠を示すよう要求することである。S−PDPスキームは、ファイル全体のべき乗を必要とせず、通信の複雑性が一定であるため、従来技術の中で最も効率的である。
【0011】
単純な解決策の短所は、通信の複雑性がクエリー対象のデータサイズに線形に比例することである。さらに、サードパーティ検証器の場合には、データ所有者のプライバシ侵害防止の観点から、ユーザデータを検証器に送ることは禁じられる。アーカイブサービスからデータを取り出さないようにするための方策としては、複数の秘密鍵を選択し、データに対して複数キーのハッシュMACを事前に計算することで、単純な解決策を改良するという方法がある。これにより、検証器は秘密鍵をその都度アーカイブサービスに開示し、新たなキーを付加したハッシュMACを要求して比較することが可能になる。しかし、この方法では、各データを検証できる回数は、事前に設定された秘密鍵の個数によって制限される。そのため、キーを使い果たした場合は、新たなMACを計算するために、アーカイブサービスからデータを取り出すことが不可避となる。
【0012】
また、参考文献5および6の提案には、アーカイブがファイル全体をべき乗しなければならないという短所がある。参考として2048ビットのRSA係数を例にとると、1つの指数を完全にべき乗するには、Intel Core Duo 2.16GHzプロセッサ上で61.325ミリ秒を要する。そのため、べき乗の所要時間は1メガバイト当たり251.3秒となり、64MBのファイルの保全性をテストする場合には、アーカイブがクライアントにデータ保全性証明を送信できるまでに16083.8秒もかかってしまうことになる。
【0013】
S−PDPスキームは、その設計目標(サンプリング)がデータ所有者には無意味な場合があるという問題を抱える。S−PDPスキームは、サンプリングによって、高い検出確率において遭遇されるファイルブロックの破壊の問題に対処する。例えば、参考文献7では、ファイルブロックの破壊が1%の場合に99%の検出確率を達成する方法が説明されている。しかし、1ビットのエラーも許容できないファイルタイプは多い。例えば、符号復号器の構成パラメータが格納されるメディアファイルの先頭部分が失われると、処理が困難になる。また、暗号化されたファイルに埋め込まれた(公開鍵で暗号化された)対称暗号キーが壊れると、誰も普通テキストを回復できない無意味な暗号文となってしまう。概してデータ所有者は100%のデータ安全性を要求し、どんな理由があろうとも妥協は許容しない。S−PDPスキームにはもう一つ、サードパーティ検証(いわゆる、「公的検証可能性」)システムで採用するには、あまりにも効率が低すぎるという問題もある。S−PDPスキームを使用した公的検証を可能とするためには、1つのファイルブロックをRSA公開鍵eよりも小さくする必要がある。例えば、2048ビットのRSAモジュールの場合、公開鍵eは1024ビット程度でしかない。そのため、公的検証が可能なS−PDPスキームによる解決策では、1つのファイルを複数の1024ビットファイルブロックに論理的に分割しなければならない。その結果生じるファイルブロックは膨大な数に上り、その一つひとつにタグを生成する必要がある。これにより、タグのサイズはファイルそのものの2倍となり、クライアントがファイルにタグ付けするための時間を考慮すると、とうてい実用に資するものとはいえない。
【発明の概要】
【発明が解決しようとする課題】
【0014】
従来技術における上記の問題点を解決するため、本発明は、最初にデータのフィンガープリントがクライアントで生成され、そのフィンガープリントがデータと共にアーカイブに送信され、続いて、必要が生じたときにクライアントまたはサードパーティ検証器がデータの保全性を判定するための「チャレンジデータ」をアーカイブに送信し、アーカイブが受信したフィンガープリントを使用してデータの保全性を証明し、最後に、クライアントが「チャレンジデータ」への応答として返されたアーカイブからの出力に基づいてデータの保全性を検証する、証明可能データ保全性(PDI)検証方法を提案する。
【0015】
本発明の第1の態様によれば、データへのフィンガープリント付加方法であって、データをN個のブロックMi(i=1,2,…,N)に分割するステップと、nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するステップと、有限循環グループG1=<g1>からnB個の要素hj(j=1,2,…, nB)を選択するステップと、k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k番目のスーパーブロック(k=1,2,…,n)のフィンガープリントTkを生成するステップとを備えることを特徴とする、データへのフィンガープリント付加方法が提供される。
【0016】
nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の一部であるのが望ましい。
【0017】
nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足するのが望ましい。
【0018】
k番目のスーパーブロックのフィンガープリントTkは、以下の式に従って生成されるのが望ましい。
【数1】
ここで、zMはデータの識別子である。
【0019】
k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値であるのがさらに望ましい。
【0020】
k番目のスーパーブロックのフィンガープリントTkは、以下の式に従って生成されるのが望ましい。
【数2】
【0021】
k番目のスーパーブロックのロケータWkは、少なくともkと、データの識別子zMとを入力とするハッシュ値であるのがさらに望ましい。
【0022】
本発明の第2の態様によれば、本発明の第1の態様によるデータへのフィンガープリント付加方法によってフィンガープリントが付加されたデータのデータ保全性証明方法であって、少なくとも第1の無作為性定義キーk1と第2の無作為性定義キーk2とから成るチャレンジデータを受信するステップと、Φ個のボックスを構築するステップと、第1の無作為性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当てるステップと、n個のフィンガープリントの上記割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するステップと、第2の無作為性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成するステップと、変換済みスーパーブロックの知識証明を生成するステップとを備えることを特徴とする、データ保全性証明方法が提供される。
【0023】
変換済みスーパーブロックの知識証明は、変換済みスーパーブロック自体であるのが望ましい。
【0024】
変換済みスーパーブロックの知識証明は、公開鍵と変換済みスーパーブロックとに基づいて生成されるのが望ましい。
【0025】
変換済みスーパーブロックの知識証明は、以下の式で表されるのがさらに望ましい。
【数3】
ここで、Hj=hjvであり、vは第2の秘密鍵、Ejは変換済みスーパーブロックである。
【0026】
あるいは、変換済みスーパーブロックの知識証明Hは、以下の式でも表される。
【数4】
ここで、Hj=hjvであり、vは第2の秘密鍵、Ejは変換済みスーパーブロックであり、prf5(・)は疑似ランダム関数を表す。
【0027】
チャレンジデータは、全n個のスーパーブロックと対応するフィンガープリントの代わりに、どのΛ個のスーパーブロックと対応するフィンガープリントとをデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対、(k3,Λ)をさらに備えるのが望ましい。
【0028】
チャレンジデータは、反復因数ψをさらに備えるのが望ましい。これにより、ボックス構築から知識証明生成までのステップがψ回反復され、1回の反復毎に1つの変換済みスーパーブロックの知識証明が、変換済みスーパーブロックHm,m=1,2,…,ψのm番目の知識証明として生成される。
【0029】
Φの数は2φと等しいのがさらに望ましい。ここで、φ=[l/ψ]+1であり、lはこの方法のセキュリティレベルを決定するセキュリティレベル因数である。
【0030】
第1および第2の無作為性定義キーk1、k2と、スーパーブロック選択キー対(k3,Λ)は、検証器によって選択されるのが望ましい。
【0031】
チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むのが望ましい。
【0032】
デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されるのがさらに望ましい。
【0033】
データ保全性証明方法は、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを送信するステップをさらに備えるのが望ましい。
【0034】
本発明の第3の態様によれば、本発明の第2の態様によるデータ保全性証明方法に関連する方法として、本発明の第1の態様によるデータへのフィンガープリント付加方法によってフィンガープリントが付加されたデータのデータ保全性検証方法であって、第1の無作為性定義キーk1と第2の無作為性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するステップと、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信するステップと、Φ個のボックスを構築するステップと、第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当てるステップと、n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するステップと、第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換して、変換済みロケータを生成するステップと、変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成するステップと、検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較するステップと、比較結果が一致の場合に、データのデータ保全性を検証するステップとを備えることを特徴とする、データ保全性検証方法が提供される。
【0035】
検証対象の変換済みスーパーブロックの知識証明は、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成されるのが望ましい。
【0036】
検証対象の変換済みスーパーブロックの知識証明は、第1および第2の秘密鍵x、vにも基づいて生成されるのがさらに望ましい。
【0037】
検証対象の変換済みスーパーブロックの知識証明は、以下の式で表されるのがさらに望ましい。
prf5=((T1/x・W)v),
ここで、Tは変換済みフィンガープリント、Wは変換済みロケータを表し、k番目のスーパーブロックのロケータWkは、少なくともkと、データの識別子zMとを入力とするハッシュ値である。
【0038】
あるいは、検証対象の変換済みスーパーブロックの知識証明は、以下の式で表される。
prf5=((Tx+zM・W)v),
ここで、Tは変換済みフィンガープリント、Wは変換済みロケータを表し、k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値である。
【0039】
検証対象の変換済みスーパーブロックの知識証明は、以下の式として生成されるのがさらに望ましい。
e(T,Yv,g2vzM)・e(W,
g2v)
ここで、Yj=Yv、g2v=g2v、Y= g2v∈G2である。G2=<g2>は、G1=<g1>に加えてもう1つのグループG=<g>を有する有限循環グループであり、|G1|=|G2|=|G|=p(pは大きな素数)となる。e:G1×G2→gは、双線形のマップ関数である。Tは変換済みフィンガープリントを表し、Wは変換済みロケータを表す。k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値である。xとvは、第1および第2の秘密鍵である。
検証対象の変換済みスーパーブロックの知識証明は、以下の式により、変換済みスーパーブロックの知識証明と比較される。
e(H,g2)=e(T,Yv・g2vzM)・e(W,g2v)
ここで、Hは変換済みスーパーブロックの知識証明である。
【0040】
検証対象の変換済みスーパーブロックの知識証明は、以下の式として生成されるのがさらに望ましい。
e(T,Yv)・e(W,g2v)
ここで、Yv=g2v/x、g2v=g2v、Y=g2v∈G2である。G2=<g2>は、G=<g>に加えてもう1つのグループG1=<g1>を有する有限循環グループであり、|G1|=|G2|=|G|=p(pは大きな素数)となる。e:G1×G2→gは、双線形のマップ関数である。Tは変換済みフィンガープリントを表し、Wは変換済みロケータを表す。k番目のスーパーブロックのロケータWkは、少なくともkとデータの識別子zMを入力とするハッシュ値である。xとvは、第1および第2の秘密鍵である。検証対象の変換済みスーパーブロックの知識証明は、以下の式により、変換済みスーパーブロックの知識証明と比較される。
e(H,g2)=e(T,Yv)・e(W,g2v)
ここで、Hは変換済みスーパーブロックの知識証明である。
【0041】
チャレンジデータは、全n個のロケータの代わりに、どのΛ個のロケータをデータ保全性検証のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えるのが望ましい。
【0042】
チャレンジデータは、反復因数ψをさらに備えるのが望ましい。これにより、ボックス構築から知識証明生成と検証対象知識証明との比較までのステップがψ回反復され、すべての比較結果が一致の場合にのみ、データのデータ保全性が検証される。
【0043】
第1および第2の無作為性定義キーk1、k2と、スーパーブロック選択キー対(k3,Λ)は、検証器によって選択されるのが望ましい。
【0044】
チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むのが望ましい。
【0045】
デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されるのがさらに望ましい。
【0046】
本発明の第4の態様によれば、データへのフィンガープリント付加装置であって、データをN個のブロックMi(i=1,2,…,N)に分割し、nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するスーバーブロック生成手段と、有限循環グループG1=<g1>からnB個の要素hj(j=1,2,…, nB)を選択し、k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k番目のスーパーブロック(k=1,2,…,n)のフィンガープリントTkを生成するフィンガープリント付加手段とを備えることを特徴とする、データへのフィンガープリント付加装置が提供される。
【0047】
nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の一部であるのが望ましい。
【0048】
nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足するのが望ましい。
【0049】
本発明の第5の態様によれば、データ保全性証明装置であって、少なくとも第1の無作為性定義キーk1と第2の無作為性定義キーk2とから成るチャレンジデータを受信する受信手段と、Φ個のボックスを構築し、第1の無作為性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当て、n個のフィンガープリントの上記割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するパッケージ化手段と、第2の無作為性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成する変換手段と、変換済みスーパーブロックの知識証明を生成する知識証明生成手段とを備えることを特徴とする、データ保全性証明装置が提供される。
【0050】
知識証明生成手段は、変換済みスーパーブロックの知識証明を、変換済みスーパーブロック自体として生成するのが望ましい。
【0051】
知識証明生成手段は、変換済みスーパーブロックの知識証明を、公開鍵と変換済みスーパーブロックに基づいて生成するのが望ましい。
【0052】
チャレンジデータは、全n個のスーパーブロックと対応するフィンガープリントの代わりに、どのΛ個のスーパーブロックと対応するフィンガープリントとをパッケージ化手段がデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えるのが望ましい。
【0053】
チャレンジデータは、反復因数ψをさらに備えるのが望ましい。これにより、パッケージ化手段と、変換手段と、知識証明生成手段の動作がψ回反復され、1回の反復毎に1つの変換済みスーパーブロックの知識証明が、変換済みスーパーブロックHm,m=1,2,…,ψのm番目の知識証明として生成される。
【0054】
チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むのが望ましい。
【0055】
デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されるのがさらに望ましい。
【0056】
データ保全性証明装置は、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを送信する送信手段をさらに備えるのが望ましい。
【0057】
本発明の第6の態様によれば、データ保全性検証装置であって、第1の無作為性定義キーk1と第2の無作為性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するチャレンジデータ生成・送信手段と、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信する受信手段と、Φ個のボックスを構築し、第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当て、n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するロケータパッケージ化手段と、第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換し、変換済みロケータを生成し、変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成する検証対象知識証明生成手段と、検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較する比較器と、比較結果が一致の場合に、データ保全性を検証する検証装置とを備えることを特徴とする、データ保全性検証装置が提供される。
【0058】
検証対象知識証明生成手段は、検証対象の変換済みスーパーブロックの知識証明を、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成するのが望ましい。
【0059】
検証対象知識証明生成手段は、検証対象の変換済みスーパーブロックの知識証明を、第1および第2の秘密鍵x、vにも基づいて生成するのがさらに望ましい。
【0060】
チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、ロケータパッケージ化手段がデータ保全性検証のために全n個のロケータのうちどのΛ個のロケータを選択すべきかを定義するスーパーブロック選択キー対(k3,Λ)をさらに備えるのが望ましい。
【0061】
チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、反復因数ψをさらに備えるのが望ましい。これにより、ロケータパッケージ化手段と、検証対象知識証明生成手段と、比較器の動作がψ回反復され、すべての比較結果が一致の場合にのみ、検証手段がデータ保全性を検証する。
【0062】
チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むのが望ましい。
【0063】
チャレンジデータ生成・送信手段は、デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とを決定するのがさらに望ましい。
【0064】
本発明の第7の態様によれば、データ保全性検証システムであって、本発明の第5の態様によるデータ保全性証明装置と、本発明の第6の態様によるデータ保全性検証装置とを備えることを特徴とするデータ保全性検証システムが提供される。
【0065】
データ保全性検証システムは、本発明の第4の態様によるデータへのフィンガープリント付加装置をさらに備えるのが望ましい。
【0066】
データへのフィンガープリント付加装置は、データ保全性検証装置としても使用されるのがさらに望ましい。
【0067】
本発明のPDIスキームにより、圧倒的に高い確率(例えば、1-2-64)でデータのデータ保全性を確保することができる。従来技術は(1)データ保全性がビット単位で保証される、(2)クライアントがアーカイブに送信するチャレンジデータのサイズが一定である、(3)アーカイブがクライアントに送信するデータ保全性証明のサイズが一定である、という効果を実現するのに対し、本発明のPDIスキームは以下の4つの主要な利点を有する。
(I) クライアントがデータのフィンガープリントを生成する速度が最速である。
(II) アーカイブがクライアントのチャレンジデータへの応答を生成する速度が最速である。
(III) クライアントがアーカイブの応答を検証する速度が最速である。
(IV) 検証器はサードパーティ検証器であってもよく、上記3つの利点(I)〜(III)のすべてが同様に実現される。しかも、フィンガープリントのサイズが最小である。
【0068】
以下では、具体例として64MBのデータファイルについて説明する。セキュリティ強度は2048ビットのRSA署名相当に設定され、l=64である。クライアントは速度2.16GHzのIntel Core Duoプロセッサ、アーカイブは速度2.66GHzのIntel Qx6700 Core2 Quadプロセッサとすると、PDIスキームにおいては、クライアントがファイルへのフィンガープリントの付加に要する時間は12.7秒間、アーカイブが変換済みフィンガープリントと変換済みスーパーブロックの知識証明の生成に要する時間は1.4秒間、クライアントが知識証明の検証に要する時間は約0.4秒間である。これらの時間値は、従来技術のRSAベーススキームが達成可能な理論的下限よりもさらに低い。
【先行技術文献】
【非特許文献】
【0069】
【非特許文献1】Amazon Simple Storage Service (Amazon S3),http://aws.amazon.com/s3
【非特許文献2】MediaMax Free Online Storage,http://www.mediamax.com
【非特許文献3】Gmail Drive Shell Extension,http://www.viksoe.dk/code/gmail.htm
【非特許文献4】RFC 4810,Long−Term Archive Service Requirement、IETF Network WG.http://www.ietf.org/rfc/rfc4810.txt
【非特許文献5】Y.Deswarte,J.J.Quisquater,A.Saidane,Remote integrity checking(リモート保全性検査),In Proc.of Conference on Integrity and Internal control in Information systems(IICIS’03),2003
【非特許文献6】D.L.G.Filho、P.S.L.M.Baretto.Demonstrating Data Possession and Uncheatable Data Transfer.http://eprint.iacr.org/2006/150.pdf
【図面の簡単な説明】
【0070】
本発明の上記および他の目的、特徴、利点は、本発明の非限定的な実施例に関する以下の説明と添付図面とを参照することにより、さらに明らかになるであろう。
【0071】
【図1】データ保全性証明における動作モデルを示す。
【図2】本発明によるデータ保全性証明方法(アトミック証明手順)とデータ保全性検証方法(アトミック検証手順)のフローチャートを示す。
【図3】データの論理ビューである。
【図4】6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証を示す。
【図5】6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証を示す。
【図6】6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証を示す。
【図7】6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証を示す。
【図8】256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。
【図9】256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。
【図10】256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。
【図11】256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。
【図12】データ保全性証明における他の動作モデルを示す。
【図13】データ保全性証明におけるさらに他の動作モデルを示す。
【図14】本発明を実装したクライアント1400のブロック図を示す。
【図15】本発明を実装したアーカイブ1500のブロック図を示す。
【図16】本発明を実装した検証器1600のブロック図を示す。
【発明を実施するための形態】
【0072】
次に、図面を参照しながら本発明について説明する。以下の説明では、説明の便宜上いくつかの具体的な実施例を使用しているが、これらは本発明を限定するものではなく、例示にすぎない。また、本発明の理解が多少曖昧になる可能性はあるが、従来技術の構成・構造の説明は省略する。
(原理の説明)
【0073】
本明細書において提示する証明可能データ保全性(PDI)スキームは、従来技術が抱えるすべての問題を克服するのみならず、どの従来技術にも勝る性能を示す。
【0074】
PDIスキームは、基本的には、図1に示す動作モデルに従った以下の3つのステップで構成される。
【0075】
ステップ0’:
PDIスキームでは、有限循環グループG1=<g1>が必要とされるが、このG1は楕円曲線上の有限循環グループであるのが望ましい。本発明の開示では、その全体を通して、楕円曲線に関連して頻用される加算表記ではなく、従来の乗法群表記を使用する。クライアントは、秘密鍵xとそれに対応する公開鍵とを有する。
【0076】
クライアントは、データファイルをN個のブロックMi、i=1,2,…,Nに分割する。nB個のブロックは、それぞれ1つのスーパーブロックとして結合される。したがって、データはn={N/nB}個のスーパーブロックに分割される。データファイルの長さがn個のスーパーブロックに必要な長さに満たない場合は、データファイルはゼロを使用して論理的に埋められる。
【0077】
クライアントは、各データファイルに関して、G1、i=1,2,…,nBのnB個の要素hjを作成する。好適なケースでは、クライアントは、hi=g1riとなるようにriを選択し、riを秘匿しておく。要素hiは、クライアントの公開鍵の一部とし、データファイルから独立させるのがさらに望ましい。
【0078】
クライアントは自身の秘密鍵と上記nB個の要素hiを利用して、すべてのスーパーブロックのフィンガープリントを生成する。例えば、i番目のスーパーブロックのフィンガープリントは
【数5】
の形式をとる。ここで、ロケータWiは、少なくともiを入力とするハッシュ値である。また、データファイルのファイル名やバージョン番号などを入力として追加することもできる。zMは、データファイルに対して選択された固有な識別子である。例えば、あるデータファイル集合には識別子zM、別のデータファイル集合には別の識別子zM、というように選択する。あるいは、フィンガープリントを
【数6】
として計算することもできる。この場合、ロケータWiはiとzMを入力とする。好適なケースでは、クライアントは、riの値と、hi=griであるという知識を有する。したがって、
【数7】
を
【数8】
に置換することにより、クライアントはriの知識を利用してフィンガープリント処理を迅速化することができる。
【0079】
ステップ0’の結果、クライアントは、n個のスーパーブロックに対してn個のフィンガープリントを取得する。クライアントは、データファイルとnB個の要素hjと共に、すべてのフィンガープリントをアーカイブに送信する。nB個の要素hiをクライアントの公開鍵の一部とする好適なケースでは、アーカイブはこれらの要素を公開鍵ディレクトリなどから事前に取得することもできる。その場合は、これらの要素をデータファイルと共に送信する必要はない。
【0080】
ステップ1’:
クライアントは、データの保全性を判定するための「チャレンジデータ」をアーカイブに送信する。
【0081】
アーカイブは、クライアントから受信したチャレンジデータに基づいて、アトミック証明手順を数回(例:ψ回)実行する必要がある。
【0082】
アーカイブは、各アトミック証明手順において、まずΦ=2φ個のボックスを構築し、論理的かつ無作為にn個のフィンガープリントをこれらのボックスに割り当てる。個数Φと無作為性は、クライアントから受信した「チャレンジデータ」によって決まる。1つのフィンガープリントの配置先は、必ず1つのボックスに限定しなければならない。1つのフィンガープリントを1つのスーパーブロックに対応させることを念頭に全n個のフィンガープリントをボックスに配置すると、その結果として、各ボックスには1つの「割り当て済みスーパーブロック」と、そのボックスに割り当てられたフィンガープリントに基づいて生成された「割り当て済みスーパーブロック」の「割り当て済みフィンガープリント」とが存在することになる。例えば、λ番目のボックスに、η番目およびω番目のスーパーブロックに関連する2つのフィンガープリントのみが配置されるケースであれば、このボックスの「割り当て済みスーパーブロック」は
【数9】
を含み、「割り当て済みスーパーブロック」の「割り当て済みフィンガープリント」は
【数10】
となる。
【0083】
次に、アーカイブは、すべてのボックスの「割り当て済みスーパーブロック」と「割り当て済みフィンガープリント」に別の無作為性を適用することにより、1つの「変換済みスーパーブロック」と、その「変換済みスーパーブロック」の1つの「変換済みフィンガープリント」を生成する。この無作為性もまた、クライアントから受信した「チャレンジデータ」によって決定される。上記の例についてさらに説明すれば、「変換済みスーパーブロック」は
【数11】
を含み、「変換済みスーパーブロック」の「変換済みフィンガープリント」は
【数12】
(aλはクライアントの「チャレンジデータ」によって決定された乱数)となる。
【0084】
最後に、アーカイブは、「変換済みスーパーブロックの知識証明」を生成する。これには「変換済みスーパーブロック」を直接使用することもできる。あるいは、標準的なゼロ知識証明技術(対話または非対話方式)による「変換済みスーパーブロック」のコンテンツの知識を使用してもよい。また、クライアントの「チャレンジデータ」がHi=hiv,i=1,2,…,nBを含む場合に、クライアントがチャレンジデータ毎に異なるvを選択し、vを秘匿しておくことも可能である。好適なケースでは、Hiはクライアントの公開鍵、vはクライアントの秘密鍵の一部である。アーカイブは、Hiを利用して、「変換済みスーパーブロックの知識証明」を
【数13】
として計算する。
【0085】
アーカイブは、「変換済みフィンガープリント」Tと「変換済みスーパーブロックの知識証明」Hとを、アトミック証明手順の出力としてクライアントに送信する。
【0086】
アーカイブは、アトミック証明手順を全部でψ回反復する必要がある。ボックス数を決定する値としては、ψ=[l/ψ]+1を選択することができる。ここで、lはセキュリティレベルを決定する値であり、クライアントによって選択される。乱数aλのビット長としては、ψを選択する。アトミック手順をψ回反復すると、PDIスキームのセキュリティレベルは(n/ψ)・2-lとなる。これは、1つ以上のブロックが破壊されている場合に、アーカイブが検証器に正しい結果を返す確率は、最大
(n/ψ)・2-lであることを意味する。
【0087】
上記の「個数Φと無作為性は、クライアントか受信したチャレンジデータによって決定される」と「aλは、クライアントのチャレンジデータによって決定される乱数である」の部分については、代替の実施例がある。例えば、φ=nを選択し、n個のフィンガープリントをn個のボックスに均等に配置し(すなわち、1つのボックスに必ず1つのフィンガープリントが含まれるようにする)、aλのビット長としてlを選択したとすると、この場合には、ψ=1を選択すると、n・2-lのセキュリティレベルが実現される。
【0088】
ステップ2’:
クライアントは、アーカイブから、ψ回のアトミック証明手順の全出力を受信する。
【0089】
クライアントは、1回のアトミック証明手順から得られた「変換済みスーパーブロック」の「変換済みフィンガープリント」と「変換済みスーパーブロックの知識証明」の各々を対象に、アトミック検証手順を実行する。
【0090】
クライアントは、各アトミック検証手順において、まずΦ個のボックスを構築し、論理的かつ無作為にロケータWiをこれらのボックスに割り当てる。無作為性はクライアントが選択した「チャレンジデータ」によって決まるので、ここで使用される無作為性は、アーカイブがフィンガープリントを割り当てる際に使用した無作為性と同一である。1つのロケータは、必ず1つのボックスに配置しなければならない。全n個のロケータがボックスに配置された後、各ボックス内には、ボックスに割り当てられたロケータに基づいて生成された「割り当て済みロケータ」が存在する。例えば、λ番目のボックスに2つのロケータWηおよびWωのみが配置されるケースであれば、このボックスの「割り当て済みロケータ」は
【数14】
となる。
【0091】
次に、クライアントは、別の無作為性をすべてのボックスの「割り当て済みロケータ」に適用することにより、1つの「変換済みロケータ」を生成する。無作為性はクライアントが選択した「チャレンジデータ」によって決まるので、ここで使用される無作為性は、アーカイブが「変換済みフィンガープリント」を計算する際に使用した無作為性と同一である。「変換済みロケータ」は
【数15】
となる。ここで、aλはクライアントの「チャレンジデータ」によって決定された乱数である。
【0092】
最後に、アーカイブが「変換済みスーパーブロックの知識証明」を直接「変換済みスーパーブロック」として生成する場合には、クライアントは「検証対象の変換済みスーパーブロックの知識証明」をH’=(Tx+zM/W)として計算し、
【数16】
と比較する。アトミック検証手順は、一致した場合にのみ、「成功」を出力する。あるいは、クライアントは「検証対象の変換済みスーパーブロックの知識証明」をH’=(Tx+zM/W)vとして計算し、アーカイブから受信した値Hと比較することもできる。アトミック検証手順は、H=H’の場合にのみ、「成功」を出力する。また、フィンガープリントが
【数17】
として計算される場合には、「検証対象の変換済みスーパーブロックの知識証明」は(T1/x/W)vとして計算される。
【0093】
クライアントは、アトミック検証手順が「成功」を出力した場合にのみ、アーカイブ側でデータ保全性が保たれていると判定する。アーカイブ側で1つ以上のブロックが破壊されているときにクライアントが誤判定する確率は、最大で2-lである。
(詳細な説明)
【0094】
次に、図面を参照しながら本発明についてさらに詳細に説明する。
【0095】
本発明の開示では、楕円曲線に関連して頻用される加算表記ではなく、従来の乗法群表記を使用する。
【0096】
G1=<g1>とG2=<g2>を2つの有限循環グループとし、G=<g>を追加のグループとする。|G1|=|G2|=|G|=p(pは大きな素数)である。双線形マップe: G1×G2→gは、以下の特性を有する関数である。
■ 双線形:すべてのh1∈G1,h2∈G2、すべてのa.b∈Zpにおいて、e(h1a,
h2b)= e(h1, h2)abである。
■ 非縮退:∃h1∈G1,∃h2∈G2は、e(h1, h2)≠I(Iはgの識別子)の関係を有する。
■ 計算可能:eを計算するための効率的なアルゴリズムが存在する。
【0097】
入力セキュリティパラメータ1kに基づいて上記の双線形マップの設定を出力し、それを(p,G1,G2,g,g1,g2)←setup(1k)として記述するセットアップアルゴリズムsetup(・)が存在すると仮定する。
【0098】
G1、G2、gは同一の素数位数pを有するので、双線形の特性と非縮退の特性から、e(g1,g2)=gであることは容易に理解できる。.
【0099】
(p,G1,G2,g,g1,g2)←setup(1k)とし、5つの疑似ランダム関数prf1:{0,1}*←Zp,、prf2:{0,1}*←G1、prf3(φ):{0,1}*←Z2φ、prf4(φ):{0,1}*←Z2φ、およびprf5:G1→{0,1}160をシステムパラメータとする。
【0100】
クライアントによるデータへのフィンガープリント付加
クライアントは、秘密鍵(x,v)←Zp2と公開鍵Y=g2x∈G2を有する。クライアントは、認証局からYの証明書を取得するのが望ましい。あるいは、クライアントの秘密鍵vを、例えばv=prf1(x,”second
private key”)として計算することもできる。
【0101】
さらに、クライアントは、(hi=g1prf1(i,x),Hi=hiv)∈G12,i=1,2,…,nBを計算して自身の公開鍵とする。
【0102】
データMを、各ビット長がlM(lM<logpが必須)のN個のブロックMi(i=1,2,…,N)に分割する。Mの修飾ファイル名をFNMとする。
【0103】
図3に、データMを論理的に分割してn個のスーパーブロックにする方法を示す。スーパーブロック数は、n=[N/nB]で表す。データMの長さがN・lMまたはn・(nB・lM)に満たない場合は、ゼロを使用して論理的に埋められる。
【0104】
クライアントは、以下を実行してデータにフィンガープリントを付加する。
a) クライアントは、識別子zM←Zpを選択し、ロケータWi=prf2(i,zM,FNM)∈G1、
【数18】
を計算する。i番目のスーパーブロックのフィンガープリントを、Tiと命名する。
b) 秘密鍵xを使用して(FNM,M,zM,{Ti})に署名して、署名Sを生成する。
c) FNMに対してzMを保存する。
d) FNM、M、zM∈Zp、{Ti}∈G1n、およびSをアーカイブに送信する。
e) アーカイブは、FNM、M、zM、{Ti}、およびSを受信後、クライアントの公開鍵を使用して、Sが(FNM,M,zM,{Ti})の有効な署名であるか検証する。
アーカイブによるデータ保全性の証明
【0105】
アーカイブが(最大2-lの確率におけるエラー以外には)ゼロビットエラー率でFNMのコンテンツを保持しているか確認するため、クライアントがアーカイブにチャレンジデータを送り、アーカイブはそれに対して以下を応答する。
i) クライアントは、反復因数
【数19】
を選択する。
ii) クライアントは、(k1,k2)←Zp2を選択し、FNM,chal=(l,ψ, k1,k2)をアーカイブに送信する。
iii) アーカイブは、FNMとchal=(l,ψ, k1,k2)を受信後、まずφ=[l/ψ]+1を計算し、変換済みフィンガープリントTk=O∈G1,k=1,2,…,ψ(OはG1の識別子)を初期化する。その後、以下のアトミック証明手順を独自に全ψ回にわたって反復する。
iii−a. 割り当て済みフィンガープリント
【数20】
、割り当て済みスーパーブロックevj=0、および変換済みスーパーブロックEj=0、v=0,1,…,Φ-1=2φ-1,j=1,2,…,nBを初期化する。
iii−b. i=1,2,…,nの各々について、以下の計算を行う。
b−i. σ=prf3(I,k,k1)
b−ii.
【数21】
これはTiをσ番目のボックスの割り当て済みフィンガープリントに付加することを意味する。
b−iii. j=1,2,…,nBの各々について、eσj+=M(i-1)*nB+jmodpを計算する。これはM(i-1)*nB+jをσ番目のボックスの割り当て済みスーパーブロックに付加することを意味する。
iii−c. v=1,2,…,Φの各々について、以下の計算を行う。
c−i. av=prf4(v,k,k2)
c−ii.
【数22】
c−iii. J=1,2,…,nBの各々について、Ej+=av・evjmodpを計算する。
iii−d.
【数23】
を計算し、変換済みスーパーブロックの知識証明とする。
iv) 保全性証明(Tk,Hk),k=1,2,…,ψをクライアントに送信する。
【0106】
上記に代わる方法として、クライアントがk1←Zpを選択し、k2を例えばk2=prf1(k1,”second
randomness defining key”)として計算することもできる。そのため、k2の送信は省略することができる。
【0107】
クライアントによるデータ保全性の検証
クライアントは、(Tk,Hk)、k=1,2,…,ψの受信後、以下のアトミック検証手順を独自に全ψ回にわたって反復する。
I) 変換済みロケータWk=I∈G1、割り当て済みロケータWv=I∈G1、v=0,1,…,Φ-1=2φ-1を初期化する。
II) i=1,2,…,nの各々について、σ=prf3(i,k,k1)およびWσ*=prf2(I,FNM)を計算する。
III) v=1,2,…,Φの各々について、av=prf4(v,k,k2)およびWk*=-Wv-avを計算する。
IV) 計算によりHk=prf5((Tkx+zM・Wk)v)であるか検証し、この合同式が成り立つ場合にのみTRUEを出力する。
全てのアトミック検証手順でTRUEが出力された場合にのみ、クライアントはデータ保全性証明が正しいと判断する。
(具体例)
【0108】
図4〜7は、6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証結果を示す。当該技術分野に精通する当業者は、上記の説明の各ステップと図4〜7を参照することにより、本発明をきわめて明確に理解できるであろう。
(実際の実験)
【0109】
図8〜11は、256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。図9〜11には、参考文献7の結果も示す。これにより、本発明では参考文献7に比較して計算時間コストが大幅に改善されていることが分かる。
(他の実施例)
(代替スキーム1:)
【0110】
PDI−2スキームは、「アーカイブによるデータ保全性の証明」のステップiii−dと「クライアントによるデータ保全性の検証」のステップIV)を一部変更したものである。これは、公的検証可能性をサポートするスキームである。
【0111】
クライアントは、Yv=Yvとg2v=
g2vを計算して自身の公開鍵とする。
【0112】
「アーカイブによるデータ保全性の証明」のステップiii−d.への変更:
iii−dd.
【数24】
を計算し、変換済みスーパーブロックの知識証明とする。
【0113】
「クライアントによるデータ保全性の検証」のステップIV)への変更:
IV’) 計算によりe(Hk,g2)=e(Tk,Yv,g2vzM)・e(Wk,
g2v)であることを検証する。
【0114】
PDI−2スキームでは、「アーカイブによるデータ保全性の証明」と「クライアントによるデータ保全性の検証」のどのステップもクライアントの秘密鍵を必要とせず、サードパーティ検証器が有効に処理を実行できるため、公的検証可能性がサポートされる。
(代替スキーム1.1:)
【0115】
PDI−2スキームは、PDI−2の「クライアントによるデータ保全性の検証」を一部変更したものである。
【0116】
「クライアントによるデータ保全性の検証」のステップIV’)への変更:
IV−e)k個の乱数rk∈Z⊆Zp(ただし、k=1,2,…,ψ)を選択し、計算により
【数25】
であることを検証する。
【0117】
加速化PDI−2スキームでは、クライアントはより低い計算能力で対の評価を行うことができる。
(代替スキーム2:)
【0118】
PDI−3スキームは、「クライアントによるデータへのフィンガープリント付加」のステップa)と「クライアントによるデータ保全性の検証」のステップIV)を一部変更したものである。
【0119】
「クライアントによるデータへのフィンガープリント付加」のステップa)への変更:
aa) クライアントは、識別子ZM←Zpを選択し、
【数26】
を計算する。
「クライアントによるデータ保全性の検証」のステップIV)への変更:
IV”) 計算によりHk=prf5((Tk1/x・Wk)v)であることを検証する。
(代替スキーム3:)
【0120】
PDI−4スキームは、上記の代替スキーム2に対し、「アーカイブによるデータ保全性の証明」のステップiii−d.と「クライアントによるデータ保全性の検証」のステップIV)に一部変更を加えたものである。これもまた、公的検証可能性をサポートするスキームである。
【0121】
クライアントは、Yv=g2v/xとg2v=g2vを計算して自身の公開鍵とする。
【0122】
「アーカイブによるデータ保全性の証明」のステップiii−d.への変更:
iii−ddd.
【数27】
を計算し、変換済みスーパーブロックの知識証明とする。
【0123】
「クライアントによるデータ保全性の検証」のステップIV)への変更:
IV’’’) 計算によりe(Hk,g2)=e(Tk,Yv)・e(Wk,g2v)であることを検証する。
【0124】
PDI−4スキームでは、「アーカイブによるデータ保全性の証明」と「クライアントによるデータ保全性の検証」のどのステップもクライアントの秘密鍵を必要とせず、サードパーティ検証器が有効に処理を実行できるため、公的検証可能性がサポートされる。
(代替スキーム3.1:)
【0125】
加速化PDI−4は、PDI−4の「クライアントによるデータ保全性の検証」を一部変更したものである。
【0126】
「クライアントによるデータ保全性の検証」のステップIV’’’)への変更:
IV−f)k個の乱数rk∈Z⊆Zp(ただし、k=1,2,…,ψ)を選択し、計算により
【数28】
であることを検証する。
【0127】
加速化PDI−4スキームでは、クライアントはより低い計算能力で対の評価を行うことができる。
(代替スキーム4:)
【0128】
上記のすべてのスキームに対し、システムパラメータ、「クライアントによるデータへのフィンガープリント付加」のステップ、および「クライアントによるデータ保全性の検証」のステップに一部変更を加えることで、サンプリングをサポートするスキームが得られる。
【0129】
サンプリングをサポートするには、システムパラメータprf6:{0,1}*→{1,2,…,n}を追加する必要がある。チャレンジデータchal=(l,ψ,k1,
k2)には、キーk3←Zpと正の数値Λが追加される。
【0130】
次に、「クライアントによるデータへのフィンガープリント付加」と「クライアントによるデータ保全性の検証」の全ステップにおいて、全てのi=1,2,…,nがi=prf6(k3,1),
prf6(k3,2),…, prf6(k3,Λ)に置換される。これにより、i=prf6(k3,1),
prf6(k3,2),…, prf6(k3,Λ)によって選択されたΛ個のスーパーブロックのみが処理対象となるため、サンプリングされたスーパーブロックデータのみのデータ保全性が検証される。
【0131】
したがって、代替スキーム4においては、アーカイブはすべてのスーパーブロックを使用しなくてもデータ保全性証明を生成することができる。アーカイブは、クライアントのチャレンジデータの情報をもとに、証明の生成において、どのスーパーブロックをいくつ選択すべきかを決定する。
(代替動作モデル:)
【0132】
非特許文献4(RFC 4810)で提案されるタイムスタンプ局(TSA)を導入することにより、図12に示すように、チャレンジキー(k1,k2)←Zp2をTSAから取得したデジタル署名付きタイムスタンプに置換することが可能になる。ここで、タイムスタンプをTとすると、標準的なハッシュアルゴリズムSHA−1を使用して、k1=SHA−1(T,“1”)とk2=SHA−1(T,“2”)を得ることができる。こうした置換を行った場合のクライアントのチャレンジデータは、データがTSAによるタイムスタンプ発行時間まで正常に保持されているかどうかの検証を求める内容となる。この事前計算により、アーカイブの応答(Tk,Hk)の利用が必須となるのはアトミック検証手順の最後のステップのみとなり、アーカイブとクライアントのいずれにおいても大幅に処理が簡素化される。
【0133】
さらに、図13に示すように、検証器がサードパーティ検証器の場合には、TSAのタイムスタンプからk1とk2を推論することもできる。また、サンプリングが有効な場合には、k3はTSAのタイムスタンプから、例えばk3=SHA−1(T,“3”)として推論することができる。
(ハードウェア実装:)
【0134】
当業者には明らかなように、本発明はハードウェア構造によって実装することもできる。以下では、限定ではなく参考として、いくつかの例について説明する。
クライアント
【0135】
図14に、本発明を実装したクライアント1400のブロック図を示す。この実装では、クライアント1400はデータへのフィンガープリント付加装置として使用される。
【0136】
図14に示すように、クライアント1400は、データをN個のブロックMi,i=1,2,…,Nに分割し、nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するスーバーブロック生成手段1410と、有限循環グループG1=<g1>からnB個の要素hj,j=1,2,…,nBを選択し、k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k=1,2,…,nであるk番目のスーパーブロックのフィンガープリントTkを生成するフィンガープリント付加手段1420とを含む。クライアント1400は、さらに、生成されたスーパーブロック、有限循環グループ、生成されたフィンガープリント、ロケータ、秘密鍵などの、スーパーブロック生成手段1410とフィンガープリント付加手段1420によって利用または生成される情報を格納するメモリ1430を含む。ただし、メモリ1430は、上記のように独立した手段とすることも、あるいはスーパーブロック生成手段1410とフィンガープリント付加手段1420に組み込まれた1つまたは複数の内蔵手段とすることも可能なことは、当業者には明かであろう。
【0137】
同様に、nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の部分とすることができる。また、nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足するものとすることができる。さらに、公開鍵と秘密鍵もメモリ1430に格納することができる。
アーカイブ
【0138】
図15に、本発明を実装したアーカイブ1500のブロック図を示す。この実装では、アーカイブ1500はデータ保全性証明装置として使用される。
【0139】
図15に示すように、アーカイブ1500は、少なくとも第1のランダム性定義キーk1と第2のランダム性定義キーk2とから成るチャレンジデータを受信する受信手段1510と、上記チャレンジデータが決定する数であるΦ個のボックスを構築し、第1のランダム性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当て、n個のフィンガープリントの上記割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するパッケージ化手段1520と、第2のランダム性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成する変換手段1530と、変換済みスーパーブロックの知識証明を生成する知識証明生成手段1540とを含む。アーカイブ1500はさらに、受信手段1510、パッケージ化手段1520、変換手段1530、および知識証明生成手段1540によって使用または生成される情報を格納するメモリ1550を含む。ただし、メモリ1550は、上記のように独立した手段とすることも、あるいは受信手段1510、パッケージ化手段1520、変換手段1530、および知識証明生成手段1540に組み込まれた1つまたは複数の内蔵手段とすることも可能なことは、当業者には明かであろう。
【0140】
知識証明生成手段1540は、変換済みスーパーブロックの知識証明を、変換済みスーパーブロック自体として生成することも、あるいは公開鍵と変換済みスーパーブロックに基づいて生成することもできる。
【0141】
チャレンジデータには、全n個のスーパーブロックと対応するフィンガープリントの代わりに、どのΛ個のスーパーブロックと対応するフィンガープリントとをパッケージ化手段1520がデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えることができる。
【0142】
チャレンジデータは、反復因数ψをさらに備えることができる。これにより、パッケージ化手段1520と、変換手段1530と、知識証明生成手段1540の動作がψ回反復され、各反復毎に、1つの変換済みスーパーブロックの知識証明が生成される。これは、変換済みスーパーブロックHm,m=1,2,…,ψのm番目の知識証明と呼ばれる。
【0143】
チャレンジデータには、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含めることができる。
【0144】
さらに、デジタル署名付きタイムスタンプから、第1および第2のランダム性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成される。
【0145】
また、アーカイブ1500は、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを送信する送信手段1560をさらに備える。
検証器(クライアントまたはサードパーティ検証器)
【0146】
図16に、本発明を実装した検証器1600のブロック図を示す。この実装では、検証器1600はデータ保全性検証装置として使用される。検証器1600はクライアント1400自体、あるいはサードパーティ検証器のいずれでもよいことは当業者には明かであろう。クライアント1400自体を検証器1600とする前者のケースでは、図14のデータにフィンガープリントを付加するためのサブシステムと、図16の検証データ保全性を検証するためのサブシステムはクライアント1400に備えられる。一方、サードパーティ検証器を検証器1600とする後者のケースでは、サードパーティ検証器は図16の構造を備えることのみが必須となり、図14の構造は任意である。
【0147】
図16に示すように、検証器1600は、第1のランダム性定義キーk1と第2のランダム性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するチャレンジデータ生成・送信手段1610と、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信する受信手段1620と、Φ個のボックスを構築し、第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当て、n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するロケータパッケージ化手段1630と、第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換し、変換済みロケータを生成し、変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成する検証対象知識証明生成手段1640と、検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較する比較器1650と、比較結果が一致の場合に、データ保全性を検証する検証装置1660とを含む。検証器1600はさらに、チャレンジデータ生成・送信手段1610、受信手段1620、ロケータパッケージ化手段1630、検証対象知識証明生成手段1640、比較器1650、および検証装置1660によって使用または生成される情報を格納するメモリ1670を含む。ただし、メモリ1670は、上記のように独立した手段とすることも、あるいはチャレンジデータ生成・送信手段1610、受信手段1620、ロケータパッケージ化手段1630、検証対象知識証明生成手段1640、比較器1650、および検証装置1660に組み込まれた1つまたは複数の内蔵手段とすることも可能なことは、当業者には明かであろう。
【0148】
検証対象知識証明生成手段1640は、検証対象の変換済みスーパーブロックの知識証明を、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成することができる。
【0149】
また、検証対象知識証明生成手段1640は、検証対象の変換済みスーパーブロックの知識証明を、第1および第2の秘密鍵x、vに基づいて生成することもできる。
【0150】
チャレンジデータ生成・送信手段1610によって生成されるチャレンジデータは、ロケータパッケージ化手段がデータ保全性検証のために全n個のロケータの代わりにどのΛ個のロケータを選択すべきかを定義するスーパーブロック選択キー対(k3,Λ)をさらに備える。
【0151】
チャレンジデータ生成・送信手段1610によって生成されるチャレンジデータは、反復因数ψをさらに備える。これにより、ロケータパッケージ化手段1630と、検証対象知識証明生成手段1640と、比較器1650の動作がψ回反復され、すべての比較結果が一致の場合にのみ、検証手段1660がデータ保全性を検証する。
【0152】
チャレンジデータ生成・送信手段1610によって生成されるチャレンジデータには、タイムスタンプ局(TSA)から取得した、デジタル署名付きのタイムスタンプを含めることができる。
【0153】
チャレンジデータ生成・送信手段1610は、デジタル署名付きタイムスタンプから、第1および第2のランダム性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とを決定する。
【0154】
上記の説明は本発明の好適な実施例のみを示したものであり、いかなる形であれ本発明を限定することを意図するものではない。したがって、本発明の適用範囲には、本発明の精神および原則に則ったあらゆる変更、置換、改良等も内包される。
【符号の説明】
【0155】
1:チャレンジデータ?
2:データ保全性証明
1’:タイムスタンプ
2’:データ保全性証明
1410:スーパーブロック生成手段
1420:フィンガープリント付加手段
1430:メモリ
1510:受信手段
1520:パッケージ化手段
1530:変換手段
1540:知識証明生成手段
1560:送信手段
1550:メモリ
1610:チャレンジデータ生成・送信手段
1620:受信手段
1630:ロケータパッケージ化手段
1640:検査対象知識証明生成手段
1650:比較器
1660:検証手段
1670:メモリ
【技術分野】
【0001】
本発明は、ストレージネットワークのセキュリティ分野に関し、特に、証明可能データの保全性(PDI)検証方法、装置、およびシステムに関する。
【背景技術】
【0002】
インターネットの世界では、これまでローカルストレージで行っていたデータの保管を、世界規模の固定ストレージサービスに外注する動きが急速に高まっている。Amazon Simple Storage Service(Amazon S3)(非特許文献1:Amazon Simple Storage Service (Amazon S3),http://aws.amazon.com/s3)は、インターネット上のこうしたストレージシステムの1つである。Amazon S3は、データの格納と取り出しに利用できるウェブサービスインターフェースを提供する。Amazon S3は世界規模でビジネスクラスのサービスでありながら、その料金は非常に安価であり、利用料は記憶容量1GB当たり月額0.15米ドル、全データの転送入力料は1GB当たり0.10米ドル、データの転送出力料は最初の10 TBまで月額0.18米ドルである。無料の世界規模ストレージサービスを希望する企業向けにも、いくつかのサービスが提供されている。MediaMax(非特許文献2:MediaMax Free Online Storage,http://www.mediamax.com)が25 GBの無料オンラインストレージを提供しており、Gmail File System(非特許文献3:Gmail Drive Shell Extension,http://www.viksoe.dk/code/gmail.htm)プロジェクトではフリーGmailアカウントが1つの連続した無料ネットワークストレージ領域に変換された。
【0003】
これらの公的な記憶領域サービスを利用すれば、クライアントはローカルな記憶サブシステムを持たずに、インターネット上でいつでも、どこからでもデータを取り出すことが可能になる。この大きな魅力によって産業界での利用が進み、今ではストレージのアウトソーシングが必然的な流れとなっている。
【0004】
IETF Network WGはこの動向を受けて標準化を取り組み、その結果として、RFC 4810“Long−Term Archive Service Requirement”(長期アーカイブサービス要件)がリリースされた(非特許文献4:RFC 4810,Long−Term Archive Service Requirement、IETF Network WG.http://www.ietf.org/rfc/rfc4810.txt)。RFC 4810は、長期間のデータ保管を目的とする長期アーカイブサービスに関する要件を定めている。長期アーカイブサービスの主な目的は、データの存在否認の防止、データ保全性、およびデータオリジンをサポートすることである。RFC 4810で述べられているように、長期アーカイブサービスは、データを受け入れた時からデータの保管期間の終了時まで、データの保全性を実証する証拠を提供できなければならない。
【0005】
クライアントストレージのデータの保管をアーカイブサービスに委託する場合は、データの送信とデータの取り込みという2つのステップが必要となる。データ保全性の検証を目的とする単純な解決策では、データはアーカイブから取り出される。しかし、リモートアーカイブからクライアント検証器までを高帯域で接続することは現時点では実用的ではなく、近い将来にも同様である。特にモバイルクライアントでは、快適な高帯域接続を実現することは困難である。さらに、RFC 4810にもあるように、サードパーティ検証器がユーザデータの保全性を検査するケースもある。この場合は、ユーザデータのプライバシ侵害を防止するために、サードパーティ検証器がユーザデータにアクセスできないようにする必要がある。従来技術では、アーカイブから取り出さずにデータの保全性を検証するための方策として、図1に示す3つのステップから成る動作モデルが採用されている。説明の一般性を損なわず、かつ表記上の煩雑化を避けるため、以下では、クライアント(すなわち、データ所有者)がユーザのデータ保全性の検証器であるケースを例にとって説明する。しかし、前述したように、実際の検証器はデータ所有者以外のサードパーティのこともある。
【0006】
ステップ0において、クライアントによってデータのデジタルフィンガープリントが生成され、データと共にアーカイブに送信される。アーカイブには、データそのものに加えて、データのフィンガープリントも格納する必要がある。ステップ1において、クライアントがアーカイブに、データ保全性に関するチャレンジデータを送信する。アーカイブは、データのコンテンツ、データのフィンガープリント、クライアントのチャレンジデータのすべてを利用して、データ保全性証明を計算する。計算結果はクライアントに送り返され、ステップ2の検証に利用される。ステップ1とステップ2は、データの保管期間が終了するまで複数回にわたって反復することができる。
【0007】
上記の動作モデルを使用する場合に、証明可能データ保全性問題の技術的解決策において考慮すべき主な要因を以下に示す。
(I) クライアントがデータのフィンガープリントを生成する際の所要時間
(II) データのフィンガープリントが消費するアーカイブ記憶領域のサイズ
(III) 検証器がアーカイブに送信するチャレンジデータのサイズ
(IV) アーカイブがデータ保全性証明を計算する際の所要時間
(V) アーカイブが検証器に送信するデータ保全性証明のサイズ
(VI) 検証器がデータ保全性証明を検査する際の所要時間
【0008】
データ保全性問題に一見対処しているように見える解決策はある。この解決策では、データ所有者がまずデータを複数の断片に分割し、各断片について、メッセージ認証コード(MAC)を事前計算する。そして、検証器(データ所有者かサードパーティかを問わない)がデータ保全性証明を必要とするときには、アーカイブサービスから無作為に選択されたいくつかの断片を取り出し、各断片のMACを再計算して比較する。
【0009】
Deswarte et al.(非特許文献5:Y.Deswarte,J.J.Quisquater,A.Saidane,Remote integrity checking(リモート保全性検査),In Proc.of Conference on Integrity and Internal control in Information systems(IICIS’03),2003)とFilho et al.(非特許文献6:D.L.G.Filho、P.S.L.M.Baretto.Demonstrating Data Possession and Uncheatable Data Transfer.http://eprint.iacr.org/2006/150.pdf)では、RSAベースのハッシュ関数を使用して、アーカイブが格納するファイルの正確性を検証する方法が提案されている。
【0010】
最も新しい例では、Ateniese et al.(参考文献7:G.Ateniese,R.Burns,R.Curtmola,J.Herring,L.Kissner,Z.Peterson,D.Song,Provable Data Possession at Untrusted Stores(信頼されない記憶装置における証明可能データの保有).http://eprint.iacr.org/2007/202.pdf)において、RSAベースの証明可能データ保有スキームとして、S−PDPスキーム(Sは「サンプリング」の略)が提案されている。この提案における「サンプリング」とは、クライアントがデータの一部を無作為に選択し、アーカイブに対して、この無作為に選択されたデータが健全な状態にある(すなわち、選択されたデータのデータ保全性が保たれている)という証拠を示すよう要求することである。S−PDPスキームは、ファイル全体のべき乗を必要とせず、通信の複雑性が一定であるため、従来技術の中で最も効率的である。
【0011】
単純な解決策の短所は、通信の複雑性がクエリー対象のデータサイズに線形に比例することである。さらに、サードパーティ検証器の場合には、データ所有者のプライバシ侵害防止の観点から、ユーザデータを検証器に送ることは禁じられる。アーカイブサービスからデータを取り出さないようにするための方策としては、複数の秘密鍵を選択し、データに対して複数キーのハッシュMACを事前に計算することで、単純な解決策を改良するという方法がある。これにより、検証器は秘密鍵をその都度アーカイブサービスに開示し、新たなキーを付加したハッシュMACを要求して比較することが可能になる。しかし、この方法では、各データを検証できる回数は、事前に設定された秘密鍵の個数によって制限される。そのため、キーを使い果たした場合は、新たなMACを計算するために、アーカイブサービスからデータを取り出すことが不可避となる。
【0012】
また、参考文献5および6の提案には、アーカイブがファイル全体をべき乗しなければならないという短所がある。参考として2048ビットのRSA係数を例にとると、1つの指数を完全にべき乗するには、Intel Core Duo 2.16GHzプロセッサ上で61.325ミリ秒を要する。そのため、べき乗の所要時間は1メガバイト当たり251.3秒となり、64MBのファイルの保全性をテストする場合には、アーカイブがクライアントにデータ保全性証明を送信できるまでに16083.8秒もかかってしまうことになる。
【0013】
S−PDPスキームは、その設計目標(サンプリング)がデータ所有者には無意味な場合があるという問題を抱える。S−PDPスキームは、サンプリングによって、高い検出確率において遭遇されるファイルブロックの破壊の問題に対処する。例えば、参考文献7では、ファイルブロックの破壊が1%の場合に99%の検出確率を達成する方法が説明されている。しかし、1ビットのエラーも許容できないファイルタイプは多い。例えば、符号復号器の構成パラメータが格納されるメディアファイルの先頭部分が失われると、処理が困難になる。また、暗号化されたファイルに埋め込まれた(公開鍵で暗号化された)対称暗号キーが壊れると、誰も普通テキストを回復できない無意味な暗号文となってしまう。概してデータ所有者は100%のデータ安全性を要求し、どんな理由があろうとも妥協は許容しない。S−PDPスキームにはもう一つ、サードパーティ検証(いわゆる、「公的検証可能性」)システムで採用するには、あまりにも効率が低すぎるという問題もある。S−PDPスキームを使用した公的検証を可能とするためには、1つのファイルブロックをRSA公開鍵eよりも小さくする必要がある。例えば、2048ビットのRSAモジュールの場合、公開鍵eは1024ビット程度でしかない。そのため、公的検証が可能なS−PDPスキームによる解決策では、1つのファイルを複数の1024ビットファイルブロックに論理的に分割しなければならない。その結果生じるファイルブロックは膨大な数に上り、その一つひとつにタグを生成する必要がある。これにより、タグのサイズはファイルそのものの2倍となり、クライアントがファイルにタグ付けするための時間を考慮すると、とうてい実用に資するものとはいえない。
【発明の概要】
【発明が解決しようとする課題】
【0014】
従来技術における上記の問題点を解決するため、本発明は、最初にデータのフィンガープリントがクライアントで生成され、そのフィンガープリントがデータと共にアーカイブに送信され、続いて、必要が生じたときにクライアントまたはサードパーティ検証器がデータの保全性を判定するための「チャレンジデータ」をアーカイブに送信し、アーカイブが受信したフィンガープリントを使用してデータの保全性を証明し、最後に、クライアントが「チャレンジデータ」への応答として返されたアーカイブからの出力に基づいてデータの保全性を検証する、証明可能データ保全性(PDI)検証方法を提案する。
【0015】
本発明の第1の態様によれば、データへのフィンガープリント付加方法であって、データをN個のブロックMi(i=1,2,…,N)に分割するステップと、nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するステップと、有限循環グループG1=<g1>からnB個の要素hj(j=1,2,…, nB)を選択するステップと、k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k番目のスーパーブロック(k=1,2,…,n)のフィンガープリントTkを生成するステップとを備えることを特徴とする、データへのフィンガープリント付加方法が提供される。
【0016】
nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の一部であるのが望ましい。
【0017】
nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足するのが望ましい。
【0018】
k番目のスーパーブロックのフィンガープリントTkは、以下の式に従って生成されるのが望ましい。
【数1】
ここで、zMはデータの識別子である。
【0019】
k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値であるのがさらに望ましい。
【0020】
k番目のスーパーブロックのフィンガープリントTkは、以下の式に従って生成されるのが望ましい。
【数2】
【0021】
k番目のスーパーブロックのロケータWkは、少なくともkと、データの識別子zMとを入力とするハッシュ値であるのがさらに望ましい。
【0022】
本発明の第2の態様によれば、本発明の第1の態様によるデータへのフィンガープリント付加方法によってフィンガープリントが付加されたデータのデータ保全性証明方法であって、少なくとも第1の無作為性定義キーk1と第2の無作為性定義キーk2とから成るチャレンジデータを受信するステップと、Φ個のボックスを構築するステップと、第1の無作為性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当てるステップと、n個のフィンガープリントの上記割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するステップと、第2の無作為性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成するステップと、変換済みスーパーブロックの知識証明を生成するステップとを備えることを特徴とする、データ保全性証明方法が提供される。
【0023】
変換済みスーパーブロックの知識証明は、変換済みスーパーブロック自体であるのが望ましい。
【0024】
変換済みスーパーブロックの知識証明は、公開鍵と変換済みスーパーブロックとに基づいて生成されるのが望ましい。
【0025】
変換済みスーパーブロックの知識証明は、以下の式で表されるのがさらに望ましい。
【数3】
ここで、Hj=hjvであり、vは第2の秘密鍵、Ejは変換済みスーパーブロックである。
【0026】
あるいは、変換済みスーパーブロックの知識証明Hは、以下の式でも表される。
【数4】
ここで、Hj=hjvであり、vは第2の秘密鍵、Ejは変換済みスーパーブロックであり、prf5(・)は疑似ランダム関数を表す。
【0027】
チャレンジデータは、全n個のスーパーブロックと対応するフィンガープリントの代わりに、どのΛ個のスーパーブロックと対応するフィンガープリントとをデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対、(k3,Λ)をさらに備えるのが望ましい。
【0028】
チャレンジデータは、反復因数ψをさらに備えるのが望ましい。これにより、ボックス構築から知識証明生成までのステップがψ回反復され、1回の反復毎に1つの変換済みスーパーブロックの知識証明が、変換済みスーパーブロックHm,m=1,2,…,ψのm番目の知識証明として生成される。
【0029】
Φの数は2φと等しいのがさらに望ましい。ここで、φ=[l/ψ]+1であり、lはこの方法のセキュリティレベルを決定するセキュリティレベル因数である。
【0030】
第1および第2の無作為性定義キーk1、k2と、スーパーブロック選択キー対(k3,Λ)は、検証器によって選択されるのが望ましい。
【0031】
チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むのが望ましい。
【0032】
デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されるのがさらに望ましい。
【0033】
データ保全性証明方法は、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを送信するステップをさらに備えるのが望ましい。
【0034】
本発明の第3の態様によれば、本発明の第2の態様によるデータ保全性証明方法に関連する方法として、本発明の第1の態様によるデータへのフィンガープリント付加方法によってフィンガープリントが付加されたデータのデータ保全性検証方法であって、第1の無作為性定義キーk1と第2の無作為性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するステップと、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信するステップと、Φ個のボックスを構築するステップと、第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当てるステップと、n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するステップと、第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換して、変換済みロケータを生成するステップと、変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成するステップと、検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較するステップと、比較結果が一致の場合に、データのデータ保全性を検証するステップとを備えることを特徴とする、データ保全性検証方法が提供される。
【0035】
検証対象の変換済みスーパーブロックの知識証明は、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成されるのが望ましい。
【0036】
検証対象の変換済みスーパーブロックの知識証明は、第1および第2の秘密鍵x、vにも基づいて生成されるのがさらに望ましい。
【0037】
検証対象の変換済みスーパーブロックの知識証明は、以下の式で表されるのがさらに望ましい。
prf5=((T1/x・W)v),
ここで、Tは変換済みフィンガープリント、Wは変換済みロケータを表し、k番目のスーパーブロックのロケータWkは、少なくともkと、データの識別子zMとを入力とするハッシュ値である。
【0038】
あるいは、検証対象の変換済みスーパーブロックの知識証明は、以下の式で表される。
prf5=((Tx+zM・W)v),
ここで、Tは変換済みフィンガープリント、Wは変換済みロケータを表し、k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値である。
【0039】
検証対象の変換済みスーパーブロックの知識証明は、以下の式として生成されるのがさらに望ましい。
e(T,Yv,g2vzM)・e(W,
g2v)
ここで、Yj=Yv、g2v=g2v、Y= g2v∈G2である。G2=<g2>は、G1=<g1>に加えてもう1つのグループG=<g>を有する有限循環グループであり、|G1|=|G2|=|G|=p(pは大きな素数)となる。e:G1×G2→gは、双線形のマップ関数である。Tは変換済みフィンガープリントを表し、Wは変換済みロケータを表す。k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値である。xとvは、第1および第2の秘密鍵である。
検証対象の変換済みスーパーブロックの知識証明は、以下の式により、変換済みスーパーブロックの知識証明と比較される。
e(H,g2)=e(T,Yv・g2vzM)・e(W,g2v)
ここで、Hは変換済みスーパーブロックの知識証明である。
【0040】
検証対象の変換済みスーパーブロックの知識証明は、以下の式として生成されるのがさらに望ましい。
e(T,Yv)・e(W,g2v)
ここで、Yv=g2v/x、g2v=g2v、Y=g2v∈G2である。G2=<g2>は、G=<g>に加えてもう1つのグループG1=<g1>を有する有限循環グループであり、|G1|=|G2|=|G|=p(pは大きな素数)となる。e:G1×G2→gは、双線形のマップ関数である。Tは変換済みフィンガープリントを表し、Wは変換済みロケータを表す。k番目のスーパーブロックのロケータWkは、少なくともkとデータの識別子zMを入力とするハッシュ値である。xとvは、第1および第2の秘密鍵である。検証対象の変換済みスーパーブロックの知識証明は、以下の式により、変換済みスーパーブロックの知識証明と比較される。
e(H,g2)=e(T,Yv)・e(W,g2v)
ここで、Hは変換済みスーパーブロックの知識証明である。
【0041】
チャレンジデータは、全n個のロケータの代わりに、どのΛ個のロケータをデータ保全性検証のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えるのが望ましい。
【0042】
チャレンジデータは、反復因数ψをさらに備えるのが望ましい。これにより、ボックス構築から知識証明生成と検証対象知識証明との比較までのステップがψ回反復され、すべての比較結果が一致の場合にのみ、データのデータ保全性が検証される。
【0043】
第1および第2の無作為性定義キーk1、k2と、スーパーブロック選択キー対(k3,Λ)は、検証器によって選択されるのが望ましい。
【0044】
チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むのが望ましい。
【0045】
デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されるのがさらに望ましい。
【0046】
本発明の第4の態様によれば、データへのフィンガープリント付加装置であって、データをN個のブロックMi(i=1,2,…,N)に分割し、nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するスーバーブロック生成手段と、有限循環グループG1=<g1>からnB個の要素hj(j=1,2,…, nB)を選択し、k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k番目のスーパーブロック(k=1,2,…,n)のフィンガープリントTkを生成するフィンガープリント付加手段とを備えることを特徴とする、データへのフィンガープリント付加装置が提供される。
【0047】
nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の一部であるのが望ましい。
【0048】
nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足するのが望ましい。
【0049】
本発明の第5の態様によれば、データ保全性証明装置であって、少なくとも第1の無作為性定義キーk1と第2の無作為性定義キーk2とから成るチャレンジデータを受信する受信手段と、Φ個のボックスを構築し、第1の無作為性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当て、n個のフィンガープリントの上記割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するパッケージ化手段と、第2の無作為性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成する変換手段と、変換済みスーパーブロックの知識証明を生成する知識証明生成手段とを備えることを特徴とする、データ保全性証明装置が提供される。
【0050】
知識証明生成手段は、変換済みスーパーブロックの知識証明を、変換済みスーパーブロック自体として生成するのが望ましい。
【0051】
知識証明生成手段は、変換済みスーパーブロックの知識証明を、公開鍵と変換済みスーパーブロックに基づいて生成するのが望ましい。
【0052】
チャレンジデータは、全n個のスーパーブロックと対応するフィンガープリントの代わりに、どのΛ個のスーパーブロックと対応するフィンガープリントとをパッケージ化手段がデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えるのが望ましい。
【0053】
チャレンジデータは、反復因数ψをさらに備えるのが望ましい。これにより、パッケージ化手段と、変換手段と、知識証明生成手段の動作がψ回反復され、1回の反復毎に1つの変換済みスーパーブロックの知識証明が、変換済みスーパーブロックHm,m=1,2,…,ψのm番目の知識証明として生成される。
【0054】
チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むのが望ましい。
【0055】
デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されるのがさらに望ましい。
【0056】
データ保全性証明装置は、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを送信する送信手段をさらに備えるのが望ましい。
【0057】
本発明の第6の態様によれば、データ保全性検証装置であって、第1の無作為性定義キーk1と第2の無作為性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するチャレンジデータ生成・送信手段と、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信する受信手段と、Φ個のボックスを構築し、第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当て、n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するロケータパッケージ化手段と、第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換し、変換済みロケータを生成し、変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成する検証対象知識証明生成手段と、検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較する比較器と、比較結果が一致の場合に、データ保全性を検証する検証装置とを備えることを特徴とする、データ保全性検証装置が提供される。
【0058】
検証対象知識証明生成手段は、検証対象の変換済みスーパーブロックの知識証明を、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成するのが望ましい。
【0059】
検証対象知識証明生成手段は、検証対象の変換済みスーパーブロックの知識証明を、第1および第2の秘密鍵x、vにも基づいて生成するのがさらに望ましい。
【0060】
チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、ロケータパッケージ化手段がデータ保全性検証のために全n個のロケータのうちどのΛ個のロケータを選択すべきかを定義するスーパーブロック選択キー対(k3,Λ)をさらに備えるのが望ましい。
【0061】
チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、反復因数ψをさらに備えるのが望ましい。これにより、ロケータパッケージ化手段と、検証対象知識証明生成手段と、比較器の動作がψ回反復され、すべての比較結果が一致の場合にのみ、検証手段がデータ保全性を検証する。
【0062】
チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むのが望ましい。
【0063】
チャレンジデータ生成・送信手段は、デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とを決定するのがさらに望ましい。
【0064】
本発明の第7の態様によれば、データ保全性検証システムであって、本発明の第5の態様によるデータ保全性証明装置と、本発明の第6の態様によるデータ保全性検証装置とを備えることを特徴とするデータ保全性検証システムが提供される。
【0065】
データ保全性検証システムは、本発明の第4の態様によるデータへのフィンガープリント付加装置をさらに備えるのが望ましい。
【0066】
データへのフィンガープリント付加装置は、データ保全性検証装置としても使用されるのがさらに望ましい。
【0067】
本発明のPDIスキームにより、圧倒的に高い確率(例えば、1-2-64)でデータのデータ保全性を確保することができる。従来技術は(1)データ保全性がビット単位で保証される、(2)クライアントがアーカイブに送信するチャレンジデータのサイズが一定である、(3)アーカイブがクライアントに送信するデータ保全性証明のサイズが一定である、という効果を実現するのに対し、本発明のPDIスキームは以下の4つの主要な利点を有する。
(I) クライアントがデータのフィンガープリントを生成する速度が最速である。
(II) アーカイブがクライアントのチャレンジデータへの応答を生成する速度が最速である。
(III) クライアントがアーカイブの応答を検証する速度が最速である。
(IV) 検証器はサードパーティ検証器であってもよく、上記3つの利点(I)〜(III)のすべてが同様に実現される。しかも、フィンガープリントのサイズが最小である。
【0068】
以下では、具体例として64MBのデータファイルについて説明する。セキュリティ強度は2048ビットのRSA署名相当に設定され、l=64である。クライアントは速度2.16GHzのIntel Core Duoプロセッサ、アーカイブは速度2.66GHzのIntel Qx6700 Core2 Quadプロセッサとすると、PDIスキームにおいては、クライアントがファイルへのフィンガープリントの付加に要する時間は12.7秒間、アーカイブが変換済みフィンガープリントと変換済みスーパーブロックの知識証明の生成に要する時間は1.4秒間、クライアントが知識証明の検証に要する時間は約0.4秒間である。これらの時間値は、従来技術のRSAベーススキームが達成可能な理論的下限よりもさらに低い。
【先行技術文献】
【非特許文献】
【0069】
【非特許文献1】Amazon Simple Storage Service (Amazon S3),http://aws.amazon.com/s3
【非特許文献2】MediaMax Free Online Storage,http://www.mediamax.com
【非特許文献3】Gmail Drive Shell Extension,http://www.viksoe.dk/code/gmail.htm
【非特許文献4】RFC 4810,Long−Term Archive Service Requirement、IETF Network WG.http://www.ietf.org/rfc/rfc4810.txt
【非特許文献5】Y.Deswarte,J.J.Quisquater,A.Saidane,Remote integrity checking(リモート保全性検査),In Proc.of Conference on Integrity and Internal control in Information systems(IICIS’03),2003
【非特許文献6】D.L.G.Filho、P.S.L.M.Baretto.Demonstrating Data Possession and Uncheatable Data Transfer.http://eprint.iacr.org/2006/150.pdf
【図面の簡単な説明】
【0070】
本発明の上記および他の目的、特徴、利点は、本発明の非限定的な実施例に関する以下の説明と添付図面とを参照することにより、さらに明らかになるであろう。
【0071】
【図1】データ保全性証明における動作モデルを示す。
【図2】本発明によるデータ保全性証明方法(アトミック証明手順)とデータ保全性検証方法(アトミック検証手順)のフローチャートを示す。
【図3】データの論理ビューである。
【図4】6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証を示す。
【図5】6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証を示す。
【図6】6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証を示す。
【図7】6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証を示す。
【図8】256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。
【図9】256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。
【図10】256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。
【図11】256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。
【図12】データ保全性証明における他の動作モデルを示す。
【図13】データ保全性証明におけるさらに他の動作モデルを示す。
【図14】本発明を実装したクライアント1400のブロック図を示す。
【図15】本発明を実装したアーカイブ1500のブロック図を示す。
【図16】本発明を実装した検証器1600のブロック図を示す。
【発明を実施するための形態】
【0072】
次に、図面を参照しながら本発明について説明する。以下の説明では、説明の便宜上いくつかの具体的な実施例を使用しているが、これらは本発明を限定するものではなく、例示にすぎない。また、本発明の理解が多少曖昧になる可能性はあるが、従来技術の構成・構造の説明は省略する。
(原理の説明)
【0073】
本明細書において提示する証明可能データ保全性(PDI)スキームは、従来技術が抱えるすべての問題を克服するのみならず、どの従来技術にも勝る性能を示す。
【0074】
PDIスキームは、基本的には、図1に示す動作モデルに従った以下の3つのステップで構成される。
【0075】
ステップ0’:
PDIスキームでは、有限循環グループG1=<g1>が必要とされるが、このG1は楕円曲線上の有限循環グループであるのが望ましい。本発明の開示では、その全体を通して、楕円曲線に関連して頻用される加算表記ではなく、従来の乗法群表記を使用する。クライアントは、秘密鍵xとそれに対応する公開鍵とを有する。
【0076】
クライアントは、データファイルをN個のブロックMi、i=1,2,…,Nに分割する。nB個のブロックは、それぞれ1つのスーパーブロックとして結合される。したがって、データはn={N/nB}個のスーパーブロックに分割される。データファイルの長さがn個のスーパーブロックに必要な長さに満たない場合は、データファイルはゼロを使用して論理的に埋められる。
【0077】
クライアントは、各データファイルに関して、G1、i=1,2,…,nBのnB個の要素hjを作成する。好適なケースでは、クライアントは、hi=g1riとなるようにriを選択し、riを秘匿しておく。要素hiは、クライアントの公開鍵の一部とし、データファイルから独立させるのがさらに望ましい。
【0078】
クライアントは自身の秘密鍵と上記nB個の要素hiを利用して、すべてのスーパーブロックのフィンガープリントを生成する。例えば、i番目のスーパーブロックのフィンガープリントは
【数5】
の形式をとる。ここで、ロケータWiは、少なくともiを入力とするハッシュ値である。また、データファイルのファイル名やバージョン番号などを入力として追加することもできる。zMは、データファイルに対して選択された固有な識別子である。例えば、あるデータファイル集合には識別子zM、別のデータファイル集合には別の識別子zM、というように選択する。あるいは、フィンガープリントを
【数6】
として計算することもできる。この場合、ロケータWiはiとzMを入力とする。好適なケースでは、クライアントは、riの値と、hi=griであるという知識を有する。したがって、
【数7】
を
【数8】
に置換することにより、クライアントはriの知識を利用してフィンガープリント処理を迅速化することができる。
【0079】
ステップ0’の結果、クライアントは、n個のスーパーブロックに対してn個のフィンガープリントを取得する。クライアントは、データファイルとnB個の要素hjと共に、すべてのフィンガープリントをアーカイブに送信する。nB個の要素hiをクライアントの公開鍵の一部とする好適なケースでは、アーカイブはこれらの要素を公開鍵ディレクトリなどから事前に取得することもできる。その場合は、これらの要素をデータファイルと共に送信する必要はない。
【0080】
ステップ1’:
クライアントは、データの保全性を判定するための「チャレンジデータ」をアーカイブに送信する。
【0081】
アーカイブは、クライアントから受信したチャレンジデータに基づいて、アトミック証明手順を数回(例:ψ回)実行する必要がある。
【0082】
アーカイブは、各アトミック証明手順において、まずΦ=2φ個のボックスを構築し、論理的かつ無作為にn個のフィンガープリントをこれらのボックスに割り当てる。個数Φと無作為性は、クライアントから受信した「チャレンジデータ」によって決まる。1つのフィンガープリントの配置先は、必ず1つのボックスに限定しなければならない。1つのフィンガープリントを1つのスーパーブロックに対応させることを念頭に全n個のフィンガープリントをボックスに配置すると、その結果として、各ボックスには1つの「割り当て済みスーパーブロック」と、そのボックスに割り当てられたフィンガープリントに基づいて生成された「割り当て済みスーパーブロック」の「割り当て済みフィンガープリント」とが存在することになる。例えば、λ番目のボックスに、η番目およびω番目のスーパーブロックに関連する2つのフィンガープリントのみが配置されるケースであれば、このボックスの「割り当て済みスーパーブロック」は
【数9】
を含み、「割り当て済みスーパーブロック」の「割り当て済みフィンガープリント」は
【数10】
となる。
【0083】
次に、アーカイブは、すべてのボックスの「割り当て済みスーパーブロック」と「割り当て済みフィンガープリント」に別の無作為性を適用することにより、1つの「変換済みスーパーブロック」と、その「変換済みスーパーブロック」の1つの「変換済みフィンガープリント」を生成する。この無作為性もまた、クライアントから受信した「チャレンジデータ」によって決定される。上記の例についてさらに説明すれば、「変換済みスーパーブロック」は
【数11】
を含み、「変換済みスーパーブロック」の「変換済みフィンガープリント」は
【数12】
(aλはクライアントの「チャレンジデータ」によって決定された乱数)となる。
【0084】
最後に、アーカイブは、「変換済みスーパーブロックの知識証明」を生成する。これには「変換済みスーパーブロック」を直接使用することもできる。あるいは、標準的なゼロ知識証明技術(対話または非対話方式)による「変換済みスーパーブロック」のコンテンツの知識を使用してもよい。また、クライアントの「チャレンジデータ」がHi=hiv,i=1,2,…,nBを含む場合に、クライアントがチャレンジデータ毎に異なるvを選択し、vを秘匿しておくことも可能である。好適なケースでは、Hiはクライアントの公開鍵、vはクライアントの秘密鍵の一部である。アーカイブは、Hiを利用して、「変換済みスーパーブロックの知識証明」を
【数13】
として計算する。
【0085】
アーカイブは、「変換済みフィンガープリント」Tと「変換済みスーパーブロックの知識証明」Hとを、アトミック証明手順の出力としてクライアントに送信する。
【0086】
アーカイブは、アトミック証明手順を全部でψ回反復する必要がある。ボックス数を決定する値としては、ψ=[l/ψ]+1を選択することができる。ここで、lはセキュリティレベルを決定する値であり、クライアントによって選択される。乱数aλのビット長としては、ψを選択する。アトミック手順をψ回反復すると、PDIスキームのセキュリティレベルは(n/ψ)・2-lとなる。これは、1つ以上のブロックが破壊されている場合に、アーカイブが検証器に正しい結果を返す確率は、最大
(n/ψ)・2-lであることを意味する。
【0087】
上記の「個数Φと無作為性は、クライアントか受信したチャレンジデータによって決定される」と「aλは、クライアントのチャレンジデータによって決定される乱数である」の部分については、代替の実施例がある。例えば、φ=nを選択し、n個のフィンガープリントをn個のボックスに均等に配置し(すなわち、1つのボックスに必ず1つのフィンガープリントが含まれるようにする)、aλのビット長としてlを選択したとすると、この場合には、ψ=1を選択すると、n・2-lのセキュリティレベルが実現される。
【0088】
ステップ2’:
クライアントは、アーカイブから、ψ回のアトミック証明手順の全出力を受信する。
【0089】
クライアントは、1回のアトミック証明手順から得られた「変換済みスーパーブロック」の「変換済みフィンガープリント」と「変換済みスーパーブロックの知識証明」の各々を対象に、アトミック検証手順を実行する。
【0090】
クライアントは、各アトミック検証手順において、まずΦ個のボックスを構築し、論理的かつ無作為にロケータWiをこれらのボックスに割り当てる。無作為性はクライアントが選択した「チャレンジデータ」によって決まるので、ここで使用される無作為性は、アーカイブがフィンガープリントを割り当てる際に使用した無作為性と同一である。1つのロケータは、必ず1つのボックスに配置しなければならない。全n個のロケータがボックスに配置された後、各ボックス内には、ボックスに割り当てられたロケータに基づいて生成された「割り当て済みロケータ」が存在する。例えば、λ番目のボックスに2つのロケータWηおよびWωのみが配置されるケースであれば、このボックスの「割り当て済みロケータ」は
【数14】
となる。
【0091】
次に、クライアントは、別の無作為性をすべてのボックスの「割り当て済みロケータ」に適用することにより、1つの「変換済みロケータ」を生成する。無作為性はクライアントが選択した「チャレンジデータ」によって決まるので、ここで使用される無作為性は、アーカイブが「変換済みフィンガープリント」を計算する際に使用した無作為性と同一である。「変換済みロケータ」は
【数15】
となる。ここで、aλはクライアントの「チャレンジデータ」によって決定された乱数である。
【0092】
最後に、アーカイブが「変換済みスーパーブロックの知識証明」を直接「変換済みスーパーブロック」として生成する場合には、クライアントは「検証対象の変換済みスーパーブロックの知識証明」をH’=(Tx+zM/W)として計算し、
【数16】
と比較する。アトミック検証手順は、一致した場合にのみ、「成功」を出力する。あるいは、クライアントは「検証対象の変換済みスーパーブロックの知識証明」をH’=(Tx+zM/W)vとして計算し、アーカイブから受信した値Hと比較することもできる。アトミック検証手順は、H=H’の場合にのみ、「成功」を出力する。また、フィンガープリントが
【数17】
として計算される場合には、「検証対象の変換済みスーパーブロックの知識証明」は(T1/x/W)vとして計算される。
【0093】
クライアントは、アトミック検証手順が「成功」を出力した場合にのみ、アーカイブ側でデータ保全性が保たれていると判定する。アーカイブ側で1つ以上のブロックが破壊されているときにクライアントが誤判定する確率は、最大で2-lである。
(詳細な説明)
【0094】
次に、図面を参照しながら本発明についてさらに詳細に説明する。
【0095】
本発明の開示では、楕円曲線に関連して頻用される加算表記ではなく、従来の乗法群表記を使用する。
【0096】
G1=<g1>とG2=<g2>を2つの有限循環グループとし、G=<g>を追加のグループとする。|G1|=|G2|=|G|=p(pは大きな素数)である。双線形マップe: G1×G2→gは、以下の特性を有する関数である。
■ 双線形:すべてのh1∈G1,h2∈G2、すべてのa.b∈Zpにおいて、e(h1a,
h2b)= e(h1, h2)abである。
■ 非縮退:∃h1∈G1,∃h2∈G2は、e(h1, h2)≠I(Iはgの識別子)の関係を有する。
■ 計算可能:eを計算するための効率的なアルゴリズムが存在する。
【0097】
入力セキュリティパラメータ1kに基づいて上記の双線形マップの設定を出力し、それを(p,G1,G2,g,g1,g2)←setup(1k)として記述するセットアップアルゴリズムsetup(・)が存在すると仮定する。
【0098】
G1、G2、gは同一の素数位数pを有するので、双線形の特性と非縮退の特性から、e(g1,g2)=gであることは容易に理解できる。.
【0099】
(p,G1,G2,g,g1,g2)←setup(1k)とし、5つの疑似ランダム関数prf1:{0,1}*←Zp,、prf2:{0,1}*←G1、prf3(φ):{0,1}*←Z2φ、prf4(φ):{0,1}*←Z2φ、およびprf5:G1→{0,1}160をシステムパラメータとする。
【0100】
クライアントによるデータへのフィンガープリント付加
クライアントは、秘密鍵(x,v)←Zp2と公開鍵Y=g2x∈G2を有する。クライアントは、認証局からYの証明書を取得するのが望ましい。あるいは、クライアントの秘密鍵vを、例えばv=prf1(x,”second
private key”)として計算することもできる。
【0101】
さらに、クライアントは、(hi=g1prf1(i,x),Hi=hiv)∈G12,i=1,2,…,nBを計算して自身の公開鍵とする。
【0102】
データMを、各ビット長がlM(lM<logpが必須)のN個のブロックMi(i=1,2,…,N)に分割する。Mの修飾ファイル名をFNMとする。
【0103】
図3に、データMを論理的に分割してn個のスーパーブロックにする方法を示す。スーパーブロック数は、n=[N/nB]で表す。データMの長さがN・lMまたはn・(nB・lM)に満たない場合は、ゼロを使用して論理的に埋められる。
【0104】
クライアントは、以下を実行してデータにフィンガープリントを付加する。
a) クライアントは、識別子zM←Zpを選択し、ロケータWi=prf2(i,zM,FNM)∈G1、
【数18】
を計算する。i番目のスーパーブロックのフィンガープリントを、Tiと命名する。
b) 秘密鍵xを使用して(FNM,M,zM,{Ti})に署名して、署名Sを生成する。
c) FNMに対してzMを保存する。
d) FNM、M、zM∈Zp、{Ti}∈G1n、およびSをアーカイブに送信する。
e) アーカイブは、FNM、M、zM、{Ti}、およびSを受信後、クライアントの公開鍵を使用して、Sが(FNM,M,zM,{Ti})の有効な署名であるか検証する。
アーカイブによるデータ保全性の証明
【0105】
アーカイブが(最大2-lの確率におけるエラー以外には)ゼロビットエラー率でFNMのコンテンツを保持しているか確認するため、クライアントがアーカイブにチャレンジデータを送り、アーカイブはそれに対して以下を応答する。
i) クライアントは、反復因数
【数19】
を選択する。
ii) クライアントは、(k1,k2)←Zp2を選択し、FNM,chal=(l,ψ, k1,k2)をアーカイブに送信する。
iii) アーカイブは、FNMとchal=(l,ψ, k1,k2)を受信後、まずφ=[l/ψ]+1を計算し、変換済みフィンガープリントTk=O∈G1,k=1,2,…,ψ(OはG1の識別子)を初期化する。その後、以下のアトミック証明手順を独自に全ψ回にわたって反復する。
iii−a. 割り当て済みフィンガープリント
【数20】
、割り当て済みスーパーブロックevj=0、および変換済みスーパーブロックEj=0、v=0,1,…,Φ-1=2φ-1,j=1,2,…,nBを初期化する。
iii−b. i=1,2,…,nの各々について、以下の計算を行う。
b−i. σ=prf3(I,k,k1)
b−ii.
【数21】
これはTiをσ番目のボックスの割り当て済みフィンガープリントに付加することを意味する。
b−iii. j=1,2,…,nBの各々について、eσj+=M(i-1)*nB+jmodpを計算する。これはM(i-1)*nB+jをσ番目のボックスの割り当て済みスーパーブロックに付加することを意味する。
iii−c. v=1,2,…,Φの各々について、以下の計算を行う。
c−i. av=prf4(v,k,k2)
c−ii.
【数22】
c−iii. J=1,2,…,nBの各々について、Ej+=av・evjmodpを計算する。
iii−d.
【数23】
を計算し、変換済みスーパーブロックの知識証明とする。
iv) 保全性証明(Tk,Hk),k=1,2,…,ψをクライアントに送信する。
【0106】
上記に代わる方法として、クライアントがk1←Zpを選択し、k2を例えばk2=prf1(k1,”second
randomness defining key”)として計算することもできる。そのため、k2の送信は省略することができる。
【0107】
クライアントによるデータ保全性の検証
クライアントは、(Tk,Hk)、k=1,2,…,ψの受信後、以下のアトミック検証手順を独自に全ψ回にわたって反復する。
I) 変換済みロケータWk=I∈G1、割り当て済みロケータWv=I∈G1、v=0,1,…,Φ-1=2φ-1を初期化する。
II) i=1,2,…,nの各々について、σ=prf3(i,k,k1)およびWσ*=prf2(I,FNM)を計算する。
III) v=1,2,…,Φの各々について、av=prf4(v,k,k2)およびWk*=-Wv-avを計算する。
IV) 計算によりHk=prf5((Tkx+zM・Wk)v)であるか検証し、この合同式が成り立つ場合にのみTRUEを出力する。
全てのアトミック検証手順でTRUEが出力された場合にのみ、クライアントはデータ保全性証明が正しいと判断する。
(具体例)
【0108】
図4〜7は、6ブロックM1〜M6を使用し、nB=2として3つのスーパーブロックを形成した本発明の具体例と、その正確性の実証結果を示す。当該技術分野に精通する当業者は、上記の説明の各ステップと図4〜7を参照することにより、本発明をきわめて明確に理解できるであろう。
(実際の実験)
【0109】
図8〜11は、256ブロック(1ブロックは27バイト)を結合して1つのスーパーブロックにし、Φ=29=512ボックスを使用し、データファイルのサイズを64MBとした場合の、実際の実験結果を示す。図9〜11には、参考文献7の結果も示す。これにより、本発明では参考文献7に比較して計算時間コストが大幅に改善されていることが分かる。
(他の実施例)
(代替スキーム1:)
【0110】
PDI−2スキームは、「アーカイブによるデータ保全性の証明」のステップiii−dと「クライアントによるデータ保全性の検証」のステップIV)を一部変更したものである。これは、公的検証可能性をサポートするスキームである。
【0111】
クライアントは、Yv=Yvとg2v=
g2vを計算して自身の公開鍵とする。
【0112】
「アーカイブによるデータ保全性の証明」のステップiii−d.への変更:
iii−dd.
【数24】
を計算し、変換済みスーパーブロックの知識証明とする。
【0113】
「クライアントによるデータ保全性の検証」のステップIV)への変更:
IV’) 計算によりe(Hk,g2)=e(Tk,Yv,g2vzM)・e(Wk,
g2v)であることを検証する。
【0114】
PDI−2スキームでは、「アーカイブによるデータ保全性の証明」と「クライアントによるデータ保全性の検証」のどのステップもクライアントの秘密鍵を必要とせず、サードパーティ検証器が有効に処理を実行できるため、公的検証可能性がサポートされる。
(代替スキーム1.1:)
【0115】
PDI−2スキームは、PDI−2の「クライアントによるデータ保全性の検証」を一部変更したものである。
【0116】
「クライアントによるデータ保全性の検証」のステップIV’)への変更:
IV−e)k個の乱数rk∈Z⊆Zp(ただし、k=1,2,…,ψ)を選択し、計算により
【数25】
であることを検証する。
【0117】
加速化PDI−2スキームでは、クライアントはより低い計算能力で対の評価を行うことができる。
(代替スキーム2:)
【0118】
PDI−3スキームは、「クライアントによるデータへのフィンガープリント付加」のステップa)と「クライアントによるデータ保全性の検証」のステップIV)を一部変更したものである。
【0119】
「クライアントによるデータへのフィンガープリント付加」のステップa)への変更:
aa) クライアントは、識別子ZM←Zpを選択し、
【数26】
を計算する。
「クライアントによるデータ保全性の検証」のステップIV)への変更:
IV”) 計算によりHk=prf5((Tk1/x・Wk)v)であることを検証する。
(代替スキーム3:)
【0120】
PDI−4スキームは、上記の代替スキーム2に対し、「アーカイブによるデータ保全性の証明」のステップiii−d.と「クライアントによるデータ保全性の検証」のステップIV)に一部変更を加えたものである。これもまた、公的検証可能性をサポートするスキームである。
【0121】
クライアントは、Yv=g2v/xとg2v=g2vを計算して自身の公開鍵とする。
【0122】
「アーカイブによるデータ保全性の証明」のステップiii−d.への変更:
iii−ddd.
【数27】
を計算し、変換済みスーパーブロックの知識証明とする。
【0123】
「クライアントによるデータ保全性の検証」のステップIV)への変更:
IV’’’) 計算によりe(Hk,g2)=e(Tk,Yv)・e(Wk,g2v)であることを検証する。
【0124】
PDI−4スキームでは、「アーカイブによるデータ保全性の証明」と「クライアントによるデータ保全性の検証」のどのステップもクライアントの秘密鍵を必要とせず、サードパーティ検証器が有効に処理を実行できるため、公的検証可能性がサポートされる。
(代替スキーム3.1:)
【0125】
加速化PDI−4は、PDI−4の「クライアントによるデータ保全性の検証」を一部変更したものである。
【0126】
「クライアントによるデータ保全性の検証」のステップIV’’’)への変更:
IV−f)k個の乱数rk∈Z⊆Zp(ただし、k=1,2,…,ψ)を選択し、計算により
【数28】
であることを検証する。
【0127】
加速化PDI−4スキームでは、クライアントはより低い計算能力で対の評価を行うことができる。
(代替スキーム4:)
【0128】
上記のすべてのスキームに対し、システムパラメータ、「クライアントによるデータへのフィンガープリント付加」のステップ、および「クライアントによるデータ保全性の検証」のステップに一部変更を加えることで、サンプリングをサポートするスキームが得られる。
【0129】
サンプリングをサポートするには、システムパラメータprf6:{0,1}*→{1,2,…,n}を追加する必要がある。チャレンジデータchal=(l,ψ,k1,
k2)には、キーk3←Zpと正の数値Λが追加される。
【0130】
次に、「クライアントによるデータへのフィンガープリント付加」と「クライアントによるデータ保全性の検証」の全ステップにおいて、全てのi=1,2,…,nがi=prf6(k3,1),
prf6(k3,2),…, prf6(k3,Λ)に置換される。これにより、i=prf6(k3,1),
prf6(k3,2),…, prf6(k3,Λ)によって選択されたΛ個のスーパーブロックのみが処理対象となるため、サンプリングされたスーパーブロックデータのみのデータ保全性が検証される。
【0131】
したがって、代替スキーム4においては、アーカイブはすべてのスーパーブロックを使用しなくてもデータ保全性証明を生成することができる。アーカイブは、クライアントのチャレンジデータの情報をもとに、証明の生成において、どのスーパーブロックをいくつ選択すべきかを決定する。
(代替動作モデル:)
【0132】
非特許文献4(RFC 4810)で提案されるタイムスタンプ局(TSA)を導入することにより、図12に示すように、チャレンジキー(k1,k2)←Zp2をTSAから取得したデジタル署名付きタイムスタンプに置換することが可能になる。ここで、タイムスタンプをTとすると、標準的なハッシュアルゴリズムSHA−1を使用して、k1=SHA−1(T,“1”)とk2=SHA−1(T,“2”)を得ることができる。こうした置換を行った場合のクライアントのチャレンジデータは、データがTSAによるタイムスタンプ発行時間まで正常に保持されているかどうかの検証を求める内容となる。この事前計算により、アーカイブの応答(Tk,Hk)の利用が必須となるのはアトミック検証手順の最後のステップのみとなり、アーカイブとクライアントのいずれにおいても大幅に処理が簡素化される。
【0133】
さらに、図13に示すように、検証器がサードパーティ検証器の場合には、TSAのタイムスタンプからk1とk2を推論することもできる。また、サンプリングが有効な場合には、k3はTSAのタイムスタンプから、例えばk3=SHA−1(T,“3”)として推論することができる。
(ハードウェア実装:)
【0134】
当業者には明らかなように、本発明はハードウェア構造によって実装することもできる。以下では、限定ではなく参考として、いくつかの例について説明する。
クライアント
【0135】
図14に、本発明を実装したクライアント1400のブロック図を示す。この実装では、クライアント1400はデータへのフィンガープリント付加装置として使用される。
【0136】
図14に示すように、クライアント1400は、データをN個のブロックMi,i=1,2,…,Nに分割し、nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するスーバーブロック生成手段1410と、有限循環グループG1=<g1>からnB個の要素hj,j=1,2,…,nBを選択し、k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k=1,2,…,nであるk番目のスーパーブロックのフィンガープリントTkを生成するフィンガープリント付加手段1420とを含む。クライアント1400は、さらに、生成されたスーパーブロック、有限循環グループ、生成されたフィンガープリント、ロケータ、秘密鍵などの、スーパーブロック生成手段1410とフィンガープリント付加手段1420によって利用または生成される情報を格納するメモリ1430を含む。ただし、メモリ1430は、上記のように独立した手段とすることも、あるいはスーパーブロック生成手段1410とフィンガープリント付加手段1420に組み込まれた1つまたは複数の内蔵手段とすることも可能なことは、当業者には明かであろう。
【0137】
同様に、nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の部分とすることができる。また、nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足するものとすることができる。さらに、公開鍵と秘密鍵もメモリ1430に格納することができる。
アーカイブ
【0138】
図15に、本発明を実装したアーカイブ1500のブロック図を示す。この実装では、アーカイブ1500はデータ保全性証明装置として使用される。
【0139】
図15に示すように、アーカイブ1500は、少なくとも第1のランダム性定義キーk1と第2のランダム性定義キーk2とから成るチャレンジデータを受信する受信手段1510と、上記チャレンジデータが決定する数であるΦ個のボックスを構築し、第1のランダム性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当て、n個のフィンガープリントの上記割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するパッケージ化手段1520と、第2のランダム性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成する変換手段1530と、変換済みスーパーブロックの知識証明を生成する知識証明生成手段1540とを含む。アーカイブ1500はさらに、受信手段1510、パッケージ化手段1520、変換手段1530、および知識証明生成手段1540によって使用または生成される情報を格納するメモリ1550を含む。ただし、メモリ1550は、上記のように独立した手段とすることも、あるいは受信手段1510、パッケージ化手段1520、変換手段1530、および知識証明生成手段1540に組み込まれた1つまたは複数の内蔵手段とすることも可能なことは、当業者には明かであろう。
【0140】
知識証明生成手段1540は、変換済みスーパーブロックの知識証明を、変換済みスーパーブロック自体として生成することも、あるいは公開鍵と変換済みスーパーブロックに基づいて生成することもできる。
【0141】
チャレンジデータには、全n個のスーパーブロックと対応するフィンガープリントの代わりに、どのΛ個のスーパーブロックと対応するフィンガープリントとをパッケージ化手段1520がデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えることができる。
【0142】
チャレンジデータは、反復因数ψをさらに備えることができる。これにより、パッケージ化手段1520と、変換手段1530と、知識証明生成手段1540の動作がψ回反復され、各反復毎に、1つの変換済みスーパーブロックの知識証明が生成される。これは、変換済みスーパーブロックHm,m=1,2,…,ψのm番目の知識証明と呼ばれる。
【0143】
チャレンジデータには、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含めることができる。
【0144】
さらに、デジタル署名付きタイムスタンプから、第1および第2のランダム性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成される。
【0145】
また、アーカイブ1500は、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを送信する送信手段1560をさらに備える。
検証器(クライアントまたはサードパーティ検証器)
【0146】
図16に、本発明を実装した検証器1600のブロック図を示す。この実装では、検証器1600はデータ保全性検証装置として使用される。検証器1600はクライアント1400自体、あるいはサードパーティ検証器のいずれでもよいことは当業者には明かであろう。クライアント1400自体を検証器1600とする前者のケースでは、図14のデータにフィンガープリントを付加するためのサブシステムと、図16の検証データ保全性を検証するためのサブシステムはクライアント1400に備えられる。一方、サードパーティ検証器を検証器1600とする後者のケースでは、サードパーティ検証器は図16の構造を備えることのみが必須となり、図14の構造は任意である。
【0147】
図16に示すように、検証器1600は、第1のランダム性定義キーk1と第2のランダム性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するチャレンジデータ生成・送信手段1610と、変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信する受信手段1620と、Φ個のボックスを構築し、第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当て、n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するロケータパッケージ化手段1630と、第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換し、変換済みロケータを生成し、変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成する検証対象知識証明生成手段1640と、検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較する比較器1650と、比較結果が一致の場合に、データ保全性を検証する検証装置1660とを含む。検証器1600はさらに、チャレンジデータ生成・送信手段1610、受信手段1620、ロケータパッケージ化手段1630、検証対象知識証明生成手段1640、比較器1650、および検証装置1660によって使用または生成される情報を格納するメモリ1670を含む。ただし、メモリ1670は、上記のように独立した手段とすることも、あるいはチャレンジデータ生成・送信手段1610、受信手段1620、ロケータパッケージ化手段1630、検証対象知識証明生成手段1640、比較器1650、および検証装置1660に組み込まれた1つまたは複数の内蔵手段とすることも可能なことは、当業者には明かであろう。
【0148】
検証対象知識証明生成手段1640は、検証対象の変換済みスーパーブロックの知識証明を、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成することができる。
【0149】
また、検証対象知識証明生成手段1640は、検証対象の変換済みスーパーブロックの知識証明を、第1および第2の秘密鍵x、vに基づいて生成することもできる。
【0150】
チャレンジデータ生成・送信手段1610によって生成されるチャレンジデータは、ロケータパッケージ化手段がデータ保全性検証のために全n個のロケータの代わりにどのΛ個のロケータを選択すべきかを定義するスーパーブロック選択キー対(k3,Λ)をさらに備える。
【0151】
チャレンジデータ生成・送信手段1610によって生成されるチャレンジデータは、反復因数ψをさらに備える。これにより、ロケータパッケージ化手段1630と、検証対象知識証明生成手段1640と、比較器1650の動作がψ回反復され、すべての比較結果が一致の場合にのみ、検証手段1660がデータ保全性を検証する。
【0152】
チャレンジデータ生成・送信手段1610によって生成されるチャレンジデータには、タイムスタンプ局(TSA)から取得した、デジタル署名付きのタイムスタンプを含めることができる。
【0153】
チャレンジデータ生成・送信手段1610は、デジタル署名付きタイムスタンプから、第1および第2のランダム性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とを決定する。
【0154】
上記の説明は本発明の好適な実施例のみを示したものであり、いかなる形であれ本発明を限定することを意図するものではない。したがって、本発明の適用範囲には、本発明の精神および原則に則ったあらゆる変更、置換、改良等も内包される。
【符号の説明】
【0155】
1:チャレンジデータ?
2:データ保全性証明
1’:タイムスタンプ
2’:データ保全性証明
1410:スーパーブロック生成手段
1420:フィンガープリント付加手段
1430:メモリ
1510:受信手段
1520:パッケージ化手段
1530:変換手段
1540:知識証明生成手段
1560:送信手段
1550:メモリ
1610:チャレンジデータ生成・送信手段
1620:受信手段
1630:ロケータパッケージ化手段
1640:検査対象知識証明生成手段
1650:比較器
1660:検証手段
1670:メモリ
【特許請求の範囲】
【請求項1】
データへのフィンガープリント付加方法であって、
前記データをN個のブロックMi(i=1,2,…,N)に分割するステップと、
nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するステップと、
有限循環グループG1=<g1>からnB個の要素hj(j=1,2,…, nB)を選択するステップと、
k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k番目のスーパーブロック(k=1,2,…,n)のフィンガープリントTkを生成するステップと
を有することを特徴とするデータへのフィンガープリント付加方法。
【請求項2】
前記nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の一部であることを特徴とする請求項1に記載のデータへのフィンガープリント付加方法。
【請求項3】
前記nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足することを特徴とする請求項1に記載のデータへのフィンガープリント付加方法。
【請求項4】
前記k番目のスーパーブロックのフィンガープリントTkは、以下の式に従って生成される、
【数29】
ここで、zMはデータの識別子
ことを特徴とする請求項1に記載のデータへのフィンガープリント付加方法。
【請求項5】
前記k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値であることを特徴とする請求項4に記載のデータへのフィンガープリント付加方法。
【請求項6】
前記k番目のスーパーブロックのフィンガープリントTkは、以下の式に従って生成される、
【数30】
ことを特徴とする請求項1に記載のデータへのフィンガープリント付加方法。
【請求項7】
前記k番目のスーパーブロックのロケータWkは、少なくともkと、データの識別子zMとを入力とするハッシュ値であることを特徴とする請求項6に記載のデータへのフィンガープリント付加方法。
【請求項8】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項5又は請求項7に記載のデータへのフィンガープリント付加方法。
【請求項9】
前記データの識別子zMが、前記データに従って変わることを特徴とする請求項4又は請求項7に記載のデータへのフィンガープリント付加方法。
【請求項10】
請求項1から請求項9の何れかに記載のデータへのフィンガープリント付加方法によって、フィンガープリントが付加されたデータのデータ保全性証明方法であって、
少なくとも第1の無作為性定義キーk1と第2の無作為性定義キーk2とから成るチャレンジデータを受信するステップと、
Φ個のボックスを構築するステップと、
前記第1の無作為性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当てるステップと、
前記n個のフィンガープリントの割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するステップと、
前記第2の無作為性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成するステップと、
変換済みスーパーブロックの知識証明を生成するステップと
を有することを特徴とするデータ保全性証明方法。
【請求項11】
前記変換済みスーパーブロックの知識証明は、変換済みスーパーブロック自体であることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項12】
前記変換済みスーパーブロックの知識証明は、公開鍵と変換済みスーパーブロックとに基づいて生成されることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項13】
前記変換済みスーパーブロックの知識証明Hは、以下の式で表される、
【数31】
ここで、Hj=hjvであり、vは第2の秘密鍵、Ejは変換済みスーパーブロック、
ことを特徴とする請求項12に記載のデータ保全性証明方法。
【請求項14】
前記変換済みスーパーブロックの知識証明Hは、以下の式で表される、
【数32】
ここで、Hj=hjvであり、vは第2の秘密鍵、Ejは変換済みスーパーブロックであり、prf5(・)は疑似ランダム関数を表す、
ことを特徴とする請求項12に記載のデータ保全性証明方法。
【請求項15】
前記チャレンジデータは、全n個のスーパーブロックと、対応するフィンガープリントの代わりに、何れのΛ個のスーパーブロックと、対応するフィンガープリントとをデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項16】
前記チャレンジデータは、反復因数ψをさらに備え、
ボックス構築から知識証明生成までのステップがψ回反復され、1回の反復毎に1つの変換済みスーパーブロックの知識証明が、変換済みスーパーブロックHm,m=1,2,…,ψのm番目の知識証明として生成されることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項17】
前記Φの数が、2φと等しい(ここで、φ=[l/ψ]+1であり、lはこの方法のセキュリティレベルを決定するセキュリティレベル因数)
ことを特徴とする請求項16に記載のデータ保全性証明方法。
【請求項18】
前記第1および第2の無作為性定義キーk1、k2と、スーパーブロック選択キー対(k3,Λ)は、検証器によって選択されることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項19】
前記チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むことを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項20】
前記デジタル署名付きタイムスタンプから、前記第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されることを特徴とする請求項19に記載のデータ保全性証明方法。
【請求項21】
前記変換済みフィンガープリントと、前記変換済みスーパーブロックの知識証明とを送信するステップをさらに備えることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項22】
請求項1から請求項9の何れかに記載のデータへのフィンガープリント付加方法によって、フィンガープリントが付加されたデータのデータ保全性検証方法であって、
第1の無作為性定義キーk1と第2の無作為性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するステップと、
変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信するステップと、
Φ個のボックスを構築するステップと、
第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当てるステップと、
n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するステップと、
第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換して、変換済みロケータを生成するステップと、
変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成するステップと、
検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較するステップと、
比較結果が一致の場合に、データのデータ保全性を検証するステップと
を有することを特徴とするデータ保全性検証方法。
【請求項23】
前記検証対象の変換済みスーパーブロックの知識証明は、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成されることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項24】
前記検証対象の変換済みスーパーブロックの知識証明は、第1および第2の秘密鍵x、vにも基づいて生成されることを特徴とする請求項23に記載のデータ保全性検証方法。
【請求項25】
前記検証対象の変換済みスーパーブロックの知識証明は、以下の式で表される、
prf5=((T1/x・W)v),
(ここで、Tは変換済みフィンガープリント、Wは変換済みロケータを表し、k番目のスーパーブロックのロケータWkは、少なくともkと、データの識別子zMとを入力とするハッシュ値である。)
ことを特徴とする請求項24に記載のデータ保全性検証方法。
【請求項26】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項25に記載のデータ保全性検証方法。
【請求項27】
前記データの識別子zMが、前記データに従って変わることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項28】
前記検証対象の変換済みスーパーブロックの知識証明は、以下の式で表される、
prf5=((Tx+zM・W)v),
(ここで、Tは変換済みフィンガープリント、Wは変換済みロケータを表し、k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値である。)
ことを特徴とする請求項24に記載のデータ保全性検証方法。
【請求項29】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項28に記載のデータ保全性検証方法。
【請求項30】
検証対象の変換済みスーパーブロックの知識証明は、以下の式として生成され、
e(T,Yv,g2vzM)・e(W,
g2v)
(ここで、Yj=Yv、g2v=g2v、Y= g2v∈G2である。G2=<g2>は、G1=<g1>に加えてもう1つのグループG=<g>を有する有限循環グループであり、|G1|=|G2|=|G|=p(pは大きな素数)となる。e:G1×G2→gは、双線形のマップ関数である。Tは変換済みフィンガープリントを表し、Wは変換済みロケータを表す。k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値である。xとvは、第1および第2の秘密鍵である。)
前記検証対象の変換済みスーパーブロックの知識証明は、以下の式により、変換済みスーパーブロックの知識証明と比較される、
e(H,g2)=e(T,Yv・g2vzM)・e(W,g2v)
(ここで、Hは変換済みスーパーブロックの知識証明である。)
ことを特徴とする請求項23に記載のデータ保全性検証方法。
【請求項31】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項30に記載のデータ保全性検証方法。
【請求項32】
前記チャレンジデータが、検証加速因数ψを含み、
k個の乱数rk∈Z⊆Zp(ただし、k=1,2,…,ψ)を選択し、計算により
【数33】
であることを検証することを特徴とする請求項30に記載のデータ保全性検証方法。
【請求項33】
前記検証対象の変換済みスーパーブロックの知識証明は、以下の式として生成され、
e(T,Yv)・e(W,g2v)
(ここで、Yv=g2v/x、g2v=g2v、Y=g2v∈G2である。G2=<g2>は、G=<g>に加えてもう1つのグループG1=<g1>を有する有限循環グループであり、|G1|=|G2|=|G|=p(pは大きな素数)となる。e:G1×G2→gは、双線形のマップ関数である。Tは変換済みフィンガープリントを表し、Wは変換済みロケータを表す。k番目のスーパーブロックのロケータWkは、少なくともkとデータの識別子zMを入力とするハッシュ値である。xとvは、第1および第2の秘密鍵である。)
検証対象の変換済みスーパーブロックの知識証明は、以下の式により、変換済みスーパーブロックの知識証明と比較される、
e(H,g2)=e(T,Yv)・e(W,g2v)
(ここで、Hは変換済みスーパーブロックの知識証明である。)
ことを特徴とする請求項23に記載のデータ保全性検証方法。
【請求項34】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項33に記載のデータ保全性検証方法。
【請求項35】
前記データの識別子zMが、前記データに従って変わることを特徴とする請求項33に記載のデータ保全性検証方法。
【請求項36】
前記チャレンジデータが、検証加速因数ψを含み、
k個の乱数rk∈Z⊆Zp(ただし、k=1,2,…,ψ)を選択し、計算により
【数34】
であることを検証することを特徴とする請求項33に記載のデータ保全性検証方法。
【請求項37】
前記チャレンジデータは、全n個のロケータの代わりに、何れのΛ個のロケータをデータ保全性検証のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項38】
前記チャレンジデータは、反復因数ψをさらに備え、
ボックス構築から知識証明生成と検証対象知識証明との比較までのステップがψ回反復され、すべての比較結果が一致の場合にのみ、データのデータ保全性が検証されることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項39】
前記第1および第2の無作為性定義キーk1、k2と、スーパーブロック選択キー対(k3,Λ)は、検証器によって選択されることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項40】
前記チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むことを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項41】
前記デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されることを特徴とする請求項40に記載のデータ保全性検証方法。
【請求項42】
データへのフィンガープリント付加装置であって、
データをN個のブロックMi(i=1,2,…,N)に分割し、nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するスーバーブロック生成手段と、
有限循環グループG1=<g1>からnB個の要素hj(j=1,2,…, nB)を選択し、k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k番目のスーパーブロック(k=1,2,…,n)のフィンガープリントTkを生成するフィンガープリント付加手段と
を備えることを特徴とするデータへのフィンガープリント付加装置。
【請求項43】
前記nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の一部であることを特徴とする請求項42に記載のデータへのフィンガープリント付加装置。
【請求項44】
前記nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足することを特徴とする請求項42に記載のデータへのフィンガープリント付加装置。
【請求項45】
データ保全性証明装置であって、
少なくとも第1の無作為性定義キーk1と第2の無作為性定義キーk2とから成るチャレンジデータを受信する受信手段と、
Φ個のボックスを構築し、第1の無作為性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当て、n個のフィンガープリントの上記割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するパッケージ化手段と、
第2の無作為性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成する変換手段と、
変換済みスーパーブロックの知識証明を生成する知識証明生成手段と
を備えることを特徴とするデータ保全性証明装置。
【請求項46】
前記知識証明生成手段は、変換済みスーパーブロックの知識証明を、変換済みスーパーブロック自体として生成することを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項47】
前記知識証明生成手段は、変換済みスーパーブロックの知識証明を、公開鍵と変換済みスーパーブロックに基づいて生成することを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項48】
前記チャレンジデータは、全n個のスーパーブロックと対応するフィンガープリントの代わりに、どのΛ個のスーパーブロックと対応するフィンガープリントとをパッケージ化手段がデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えることを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項49】
前記チャレンジデータは、反復因数ψをさらに備え、
前記パッケージ化手段と、前記変換手段と、前記知識証明生成手段の動作がψ回反復され、1回の反復毎に1つの変換済みスーパーブロックの知識証明が、変換済みスーパーブロックHm(m=1,2,…,ψ)のm番目の知識証明として生成されることを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項50】
前記チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むことを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項51】
前記デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されることを特徴とする請求項50に記載のデータ保全性証明装置。
【請求項52】
変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを送信する送信手段をさらに備えることを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項53】
データ保全性検証装置であって、
第1の無作為性定義キーk1と第2の無作為性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するチャレンジデータ生成・送信手段と、
変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信する受信手段と、
Φ個のボックスを構築し、第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当て、n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するロケータパッケージ化手段と、
第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換し、変換済みロケータを生成し、変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成する検証対象知識証明生成手段と、
検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較する比較器と、
比較結果が一致の場合に、データ保全性を検証する検証装置と
を備えることを特徴とするデータ保全性検証装置。
【請求項54】
前記検証対象知識証明生成手段は、検証対象の変換済みスーパーブロックの知識証明を、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成することを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項55】
前記検証対象知識証明生成手段は、検証対象の変換済みスーパーブロックの知識証明を、第1および第2の秘密鍵x、vにも基づいて生成することを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項56】
前記チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、前記ロケータパッケージ化手段がデータ保全性検証のために全n個のロケータのうちどのΛ個のロケータを選択すべきかを定義するスーパーブロック選択キー対(k3,Λ)をさらに備えることを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項57】
前記チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、反復因数ψをさらに備え、
前記ロケータパッケージ化手段と、前記検証対象知識証明生成手段と、前記比較器の動作がψ回反復され、すべての比較結果が一致の場合にのみ、前記検証手段がデータ保全性を検証することを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項58】
前記チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むことを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項59】
前記チャレンジデータ生成・送信手段は、デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とを決定することを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項60】
データ保全性検証システムであって、
請求項45から請求項52の何れかに記載のデータ保全性証明装置と、請求項53から請求項59の何れかに記載のデータ保全性検証装置とを備えることを特徴とするデータ保全性検証システム。
【請求項61】
請求項45から請求項52の何れかに記載のデータへのフィンガープリント付加装置をさらに備えることを特徴とする請求項60に記載のデータ保全性検証システム。
【請求項62】
前記データへのフィンガープリント付加装置は、データ保全性検証装置としても使用されることを特徴とする請求項61に記載のデータ保全性検証システム。
【請求項1】
データへのフィンガープリント付加方法であって、
前記データをN個のブロックMi(i=1,2,…,N)に分割するステップと、
nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するステップと、
有限循環グループG1=<g1>からnB個の要素hj(j=1,2,…, nB)を選択するステップと、
k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k番目のスーパーブロック(k=1,2,…,n)のフィンガープリントTkを生成するステップと
を有することを特徴とするデータへのフィンガープリント付加方法。
【請求項2】
前記nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の一部であることを特徴とする請求項1に記載のデータへのフィンガープリント付加方法。
【請求項3】
前記nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足することを特徴とする請求項1に記載のデータへのフィンガープリント付加方法。
【請求項4】
前記k番目のスーパーブロックのフィンガープリントTkは、以下の式に従って生成される、
【数29】
ここで、zMはデータの識別子
ことを特徴とする請求項1に記載のデータへのフィンガープリント付加方法。
【請求項5】
前記k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値であることを特徴とする請求項4に記載のデータへのフィンガープリント付加方法。
【請求項6】
前記k番目のスーパーブロックのフィンガープリントTkは、以下の式に従って生成される、
【数30】
ことを特徴とする請求項1に記載のデータへのフィンガープリント付加方法。
【請求項7】
前記k番目のスーパーブロックのロケータWkは、少なくともkと、データの識別子zMとを入力とするハッシュ値であることを特徴とする請求項6に記載のデータへのフィンガープリント付加方法。
【請求項8】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項5又は請求項7に記載のデータへのフィンガープリント付加方法。
【請求項9】
前記データの識別子zMが、前記データに従って変わることを特徴とする請求項4又は請求項7に記載のデータへのフィンガープリント付加方法。
【請求項10】
請求項1から請求項9の何れかに記載のデータへのフィンガープリント付加方法によって、フィンガープリントが付加されたデータのデータ保全性証明方法であって、
少なくとも第1の無作為性定義キーk1と第2の無作為性定義キーk2とから成るチャレンジデータを受信するステップと、
Φ個のボックスを構築するステップと、
前記第1の無作為性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当てるステップと、
前記n個のフィンガープリントの割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するステップと、
前記第2の無作為性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成するステップと、
変換済みスーパーブロックの知識証明を生成するステップと
を有することを特徴とするデータ保全性証明方法。
【請求項11】
前記変換済みスーパーブロックの知識証明は、変換済みスーパーブロック自体であることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項12】
前記変換済みスーパーブロックの知識証明は、公開鍵と変換済みスーパーブロックとに基づいて生成されることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項13】
前記変換済みスーパーブロックの知識証明Hは、以下の式で表される、
【数31】
ここで、Hj=hjvであり、vは第2の秘密鍵、Ejは変換済みスーパーブロック、
ことを特徴とする請求項12に記載のデータ保全性証明方法。
【請求項14】
前記変換済みスーパーブロックの知識証明Hは、以下の式で表される、
【数32】
ここで、Hj=hjvであり、vは第2の秘密鍵、Ejは変換済みスーパーブロックであり、prf5(・)は疑似ランダム関数を表す、
ことを特徴とする請求項12に記載のデータ保全性証明方法。
【請求項15】
前記チャレンジデータは、全n個のスーパーブロックと、対応するフィンガープリントの代わりに、何れのΛ個のスーパーブロックと、対応するフィンガープリントとをデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項16】
前記チャレンジデータは、反復因数ψをさらに備え、
ボックス構築から知識証明生成までのステップがψ回反復され、1回の反復毎に1つの変換済みスーパーブロックの知識証明が、変換済みスーパーブロックHm,m=1,2,…,ψのm番目の知識証明として生成されることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項17】
前記Φの数が、2φと等しい(ここで、φ=[l/ψ]+1であり、lはこの方法のセキュリティレベルを決定するセキュリティレベル因数)
ことを特徴とする請求項16に記載のデータ保全性証明方法。
【請求項18】
前記第1および第2の無作為性定義キーk1、k2と、スーパーブロック選択キー対(k3,Λ)は、検証器によって選択されることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項19】
前記チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むことを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項20】
前記デジタル署名付きタイムスタンプから、前記第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されることを特徴とする請求項19に記載のデータ保全性証明方法。
【請求項21】
前記変換済みフィンガープリントと、前記変換済みスーパーブロックの知識証明とを送信するステップをさらに備えることを特徴とする請求項10に記載のデータ保全性証明方法。
【請求項22】
請求項1から請求項9の何れかに記載のデータへのフィンガープリント付加方法によって、フィンガープリントが付加されたデータのデータ保全性検証方法であって、
第1の無作為性定義キーk1と第2の無作為性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するステップと、
変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信するステップと、
Φ個のボックスを構築するステップと、
第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当てるステップと、
n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するステップと、
第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換して、変換済みロケータを生成するステップと、
変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成するステップと、
検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較するステップと、
比較結果が一致の場合に、データのデータ保全性を検証するステップと
を有することを特徴とするデータ保全性検証方法。
【請求項23】
前記検証対象の変換済みスーパーブロックの知識証明は、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成されることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項24】
前記検証対象の変換済みスーパーブロックの知識証明は、第1および第2の秘密鍵x、vにも基づいて生成されることを特徴とする請求項23に記載のデータ保全性検証方法。
【請求項25】
前記検証対象の変換済みスーパーブロックの知識証明は、以下の式で表される、
prf5=((T1/x・W)v),
(ここで、Tは変換済みフィンガープリント、Wは変換済みロケータを表し、k番目のスーパーブロックのロケータWkは、少なくともkと、データの識別子zMとを入力とするハッシュ値である。)
ことを特徴とする請求項24に記載のデータ保全性検証方法。
【請求項26】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項25に記載のデータ保全性検証方法。
【請求項27】
前記データの識別子zMが、前記データに従って変わることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項28】
前記検証対象の変換済みスーパーブロックの知識証明は、以下の式で表される、
prf5=((Tx+zM・W)v),
(ここで、Tは変換済みフィンガープリント、Wは変換済みロケータを表し、k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値である。)
ことを特徴とする請求項24に記載のデータ保全性検証方法。
【請求項29】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項28に記載のデータ保全性検証方法。
【請求項30】
検証対象の変換済みスーパーブロックの知識証明は、以下の式として生成され、
e(T,Yv,g2vzM)・e(W,
g2v)
(ここで、Yj=Yv、g2v=g2v、Y= g2v∈G2である。G2=<g2>は、G1=<g1>に加えてもう1つのグループG=<g>を有する有限循環グループであり、|G1|=|G2|=|G|=p(pは大きな素数)となる。e:G1×G2→gは、双線形のマップ関数である。Tは変換済みフィンガープリントを表し、Wは変換済みロケータを表す。k番目のスーパーブロックのロケータWkは、少なくともkを入力とするハッシュ値である。xとvは、第1および第2の秘密鍵である。)
前記検証対象の変換済みスーパーブロックの知識証明は、以下の式により、変換済みスーパーブロックの知識証明と比較される、
e(H,g2)=e(T,Yv・g2vzM)・e(W,g2v)
(ここで、Hは変換済みスーパーブロックの知識証明である。)
ことを特徴とする請求項23に記載のデータ保全性検証方法。
【請求項31】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項30に記載のデータ保全性検証方法。
【請求項32】
前記チャレンジデータが、検証加速因数ψを含み、
k個の乱数rk∈Z⊆Zp(ただし、k=1,2,…,ψ)を選択し、計算により
【数33】
であることを検証することを特徴とする請求項30に記載のデータ保全性検証方法。
【請求項33】
前記検証対象の変換済みスーパーブロックの知識証明は、以下の式として生成され、
e(T,Yv)・e(W,g2v)
(ここで、Yv=g2v/x、g2v=g2v、Y=g2v∈G2である。G2=<g2>は、G=<g>に加えてもう1つのグループG1=<g1>を有する有限循環グループであり、|G1|=|G2|=|G|=p(pは大きな素数)となる。e:G1×G2→gは、双線形のマップ関数である。Tは変換済みフィンガープリントを表し、Wは変換済みロケータを表す。k番目のスーパーブロックのロケータWkは、少なくともkとデータの識別子zMを入力とするハッシュ値である。xとvは、第1および第2の秘密鍵である。)
検証対象の変換済みスーパーブロックの知識証明は、以下の式により、変換済みスーパーブロックの知識証明と比較される、
e(H,g2)=e(T,Yv)・e(W,g2v)
(ここで、Hは変換済みスーパーブロックの知識証明である。)
ことを特徴とする請求項23に記載のデータ保全性検証方法。
【請求項34】
前記k番目のスーパーブロックのロケータWkが、データのファイル名とバージョン番号の少なくとも一方を含むことを特徴とする請求項33に記載のデータ保全性検証方法。
【請求項35】
前記データの識別子zMが、前記データに従って変わることを特徴とする請求項33に記載のデータ保全性検証方法。
【請求項36】
前記チャレンジデータが、検証加速因数ψを含み、
k個の乱数rk∈Z⊆Zp(ただし、k=1,2,…,ψ)を選択し、計算により
【数34】
であることを検証することを特徴とする請求項33に記載のデータ保全性検証方法。
【請求項37】
前記チャレンジデータは、全n個のロケータの代わりに、何れのΛ個のロケータをデータ保全性検証のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項38】
前記チャレンジデータは、反復因数ψをさらに備え、
ボックス構築から知識証明生成と検証対象知識証明との比較までのステップがψ回反復され、すべての比較結果が一致の場合にのみ、データのデータ保全性が検証されることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項39】
前記第1および第2の無作為性定義キーk1、k2と、スーパーブロック選択キー対(k3,Λ)は、検証器によって選択されることを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項40】
前記チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むことを特徴とする請求項22に記載のデータ保全性検証方法。
【請求項41】
前記デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されることを特徴とする請求項40に記載のデータ保全性検証方法。
【請求項42】
データへのフィンガープリント付加装置であって、
データをN個のブロックMi(i=1,2,…,N)に分割し、nB個のブロックの各々を1つのスーパーブロックに結合してn=[N/nB]個のスーパーブロックを取得するスーバーブロック生成手段と、
有限循環グループG1=<g1>からnB個の要素hj(j=1,2,…, nB)を選択し、k番目のスーパーブロックのロケータWkと、選択されたnB個の要素hjと、第1の秘密鍵xとを使用して、k番目のスーパーブロック(k=1,2,…,n)のフィンガープリントTkを生成するフィンガープリント付加手段と
を備えることを特徴とするデータへのフィンガープリント付加装置。
【請求項43】
前記nB個の要素hjは、第1の秘密鍵xに対応する公開鍵の一部であることを特徴とする請求項42に記載のデータへのフィンガープリント付加装置。
【請求項44】
前記nB個の要素hjは、hj=g1rj(rjは秘密鍵)を満足することを特徴とする請求項42に記載のデータへのフィンガープリント付加装置。
【請求項45】
データ保全性証明装置であって、
少なくとも第1の無作為性定義キーk1と第2の無作為性定義キーk2とから成るチャレンジデータを受信する受信手段と、
Φ個のボックスを構築し、第1の無作為性定義キーk1によって定義された第1の無作為方法に従って、1つのフィンガープリントが1個のボックスに入るように、n個のフィンガープリントをΦ個のボックスに無作為に割り当て、n個のフィンガープリントの上記割り当てに基づいて、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを生成するパッケージ化手段と、
第2の無作為性定義キーk2によって定義された第2の無作為方法に従って、Φ個の割り当て済みスーパーブロックと対応する割り当て済みフィンガープリントとを無作為に変換して、変換済みスーパーブロックと変換済みフィンガープリントとを生成する変換手段と、
変換済みスーパーブロックの知識証明を生成する知識証明生成手段と
を備えることを特徴とするデータ保全性証明装置。
【請求項46】
前記知識証明生成手段は、変換済みスーパーブロックの知識証明を、変換済みスーパーブロック自体として生成することを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項47】
前記知識証明生成手段は、変換済みスーパーブロックの知識証明を、公開鍵と変換済みスーパーブロックに基づいて生成することを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項48】
前記チャレンジデータは、全n個のスーパーブロックと対応するフィンガープリントの代わりに、どのΛ個のスーパーブロックと対応するフィンガープリントとをパッケージ化手段がデータ保全性証明のために選択するかを定義する、スーパーブロック選択キー対(k3,Λ)をさらに備えることを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項49】
前記チャレンジデータは、反復因数ψをさらに備え、
前記パッケージ化手段と、前記変換手段と、前記知識証明生成手段の動作がψ回反復され、1回の反復毎に1つの変換済みスーパーブロックの知識証明が、変換済みスーパーブロックHm(m=1,2,…,ψ)のm番目の知識証明として生成されることを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項50】
前記チャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むことを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項51】
前記デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とが生成されることを特徴とする請求項50に記載のデータ保全性証明装置。
【請求項52】
変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを送信する送信手段をさらに備えることを特徴とする請求項45に記載のデータ保全性証明装置。
【請求項53】
データ保全性検証装置であって、
第1の無作為性定義キーk1と第2の無作為性定義キーk2の少なくとも一方を含むチャレンジデータを生成して送信するチャレンジデータ生成・送信手段と、
変換済みフィンガープリントと、変換済みスーパーブロックの知識証明とを受信する受信手段と、
Φ個のボックスを構築し、第1の無作為方法に従って、1つのロケータが1個のボックスに入るように、n個のロケータWkをΦ個のボックスに無作為に割り当て、n個のロケータの上記割り当てに基づいて、Φ個の割り当て済みロケータを生成するロケータパッケージ化手段と、
第2の無作為方法に従って、Φ個の割り当て済みロケータを無作為に変換し、変換済みロケータを生成し、変換済みフィンガープリントと変換済みロケータとから、検証対象の変換済みスーパーブロックの知識証明を生成する検証対象知識証明生成手段と、
検証対象の変換済みスーパーブロックの知識証明と、受信した変換済みスーパーブロックの知識証明とを比較する比較器と、
比較結果が一致の場合に、データ保全性を検証する検証装置と
を備えることを特徴とするデータ保全性検証装置。
【請求項54】
前記検証対象知識証明生成手段は、検証対象の変換済みスーパーブロックの知識証明を、データの識別子zMと、変換済みフィンガープリントと、変換済みロケータとに基づいて生成することを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項55】
前記検証対象知識証明生成手段は、検証対象の変換済みスーパーブロックの知識証明を、第1および第2の秘密鍵x、vにも基づいて生成することを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項56】
前記チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、前記ロケータパッケージ化手段がデータ保全性検証のために全n個のロケータのうちどのΛ個のロケータを選択すべきかを定義するスーパーブロック選択キー対(k3,Λ)をさらに備えることを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項57】
前記チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、反復因数ψをさらに備え、
前記ロケータパッケージ化手段と、前記検証対象知識証明生成手段と、前記比較器の動作がψ回反復され、すべての比較結果が一致の場合にのみ、前記検証手段がデータ保全性を検証することを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項58】
前記チャレンジデータ生成・送信手段によって生成されるチャレンジデータは、タイムスタンプ局(TSA)から取得したデジタル署名付きのタイムスタンプを含むことを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項59】
前記チャレンジデータ生成・送信手段は、デジタル署名付きタイムスタンプから、第1および第2の無作為性定義キーk1、k2の少なくとも一方と、スーパーブロック選択キーk3とを決定することを特徴とする請求項53に記載のデータ保全性検証装置。
【請求項60】
データ保全性検証システムであって、
請求項45から請求項52の何れかに記載のデータ保全性証明装置と、請求項53から請求項59の何れかに記載のデータ保全性検証装置とを備えることを特徴とするデータ保全性検証システム。
【請求項61】
請求項45から請求項52の何れかに記載のデータへのフィンガープリント付加装置をさらに備えることを特徴とする請求項60に記載のデータ保全性検証システム。
【請求項62】
前記データへのフィンガープリント付加装置は、データ保全性検証装置としても使用されることを特徴とする請求項61に記載のデータ保全性検証システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2009−187537(P2009−187537A)
【公開日】平成21年8月20日(2009.8.20)
【国際特許分類】
【外国語出願】
【出願番号】特願2008−324039(P2008−324039)
【出願日】平成20年12月19日(2008.12.19)
【出願人】(505418870)エヌイーシー(チャイナ)カンパニー, リミテッド (108)
【氏名又は名称原語表記】NEC(China)Co.,Ltd.
【Fターム(参考)】
【公開日】平成21年8月20日(2009.8.20)
【国際特許分類】
【出願番号】特願2008−324039(P2008−324039)
【出願日】平成20年12月19日(2008.12.19)
【出願人】(505418870)エヌイーシー(チャイナ)カンパニー, リミテッド (108)
【氏名又は名称原語表記】NEC(China)Co.,Ltd.
【Fターム(参考)】
[ Back to top ]