JP2018093363A - 検証システム、検証方法及び検証プログラム - Google Patents

検証システム、検証方法及び検証プログラム Download PDF

Info

Publication number
JP2018093363A
JP2018093363A JP2016234925A JP2016234925A JP2018093363A JP 2018093363 A JP2018093363 A JP 2018093363A JP 2016234925 A JP2016234925 A JP 2016234925A JP 2016234925 A JP2016234925 A JP 2016234925A JP 2018093363 A JP2018093363 A JP 2018093363A
Authority
JP
Japan
Prior art keywords
data
key
data server
linear combination
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016234925A
Other languages
English (en)
Other versions
JP6632959B2 (ja
Inventor
フン タオ トラン
Hung Tao Tran
フン タオ トラン
歩 窪田
Ayumi Kubota
歩 窪田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2016234925A priority Critical patent/JP6632959B2/ja
Publication of JP2018093363A publication Critical patent/JP2018093363A/ja
Application granted granted Critical
Publication of JP6632959B2 publication Critical patent/JP6632959B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】端末の負荷を低減しつつ、サーバに格納されたデータの完全性を十分に検証できる検証システム、検証方法及び検証プログラムを提供すること。【解決手段】端末Cは、ファイルを分割する分割部11と、第1鍵を生成する第1鍵生成部12と、ファイルブロックの直交ベクトルと第1鍵との和を第2鍵として生成する第2鍵生成部13と、ファイルブロックを線形結合した符号化ブロック、及び準同型のタグの組み合わせを、データサーバSに格納する格納部14と、を備え、検証装置Aは、チャレンジとして乱数の組を送信する第1送信部21と、符号化ブロックの線形結合及びタグの線形結合をレスポンスとして受信する第1受信部22と、算出したタグと受信したタグとが等しい場合にデータを正常と判定する第1判定部23と、を備え、データサーバSは、符号化ブロックを記憶する記憶部31と、チャレンジに対してレスポンスを送信する応答部32と、を備える。【選択図】図1

Description

本発明は、サーバに格納したデータの完全性を検証する検証システム、検証方法及び検証プログラムに関する。
従来、情報資産を管理する上で、機密性、完全性及び可用性を維持する情報セキュリティが求められている。
ユーザデータを格納したクラウドサーバにおいて、完全性を維持するためのデータ検証の手法として、POR(Proof Of Retrievability)が提案されている。また、可用性を維持するためのデータ修復の手法としてネットワークコーディングが提案されている。例えば、非特許文献1〜3には、ネットワークコーディング及びPORを用いた手法が示されている。
B. Chen, R. Curtmola, G. Ateniese and R. Burns, "Remote Data Checking for Network Coding−based Distributed Storage Systems", in: Proceedings of the 2nd ACM Cloud Computing Security Workshop (CCSW’10), pp. 31−42, 2010. A. Le, and A. Markopoulou, "NC−Audit: Auditing for network coding storage", in: Proceedings of International Symposium on Network Coding (NetCod’12), pp. 155−160, 2012. K. Omote, and T. Thao, "MD−POR: Multi−source and Direct Repair for Network Coding−based Proof of Retrievability", in: Journal of Distributed Sensor Networks (IJDSN) on Advanced Big Data Management and Analytics for Ubiquitous Sensors − IJDSN, vol. 2015, article ID: 586720, 2015.
非特許文献1の手法は、データの検証及び修復のために端末の負荷が大きい。非特許文献2の手法は、端末以外の第三者による検証が可能だが、異常が認められたデータの修復の際に端末の負荷を低減できない。非特許文献3の手法は、データの検証及び修復のために端末の負荷が削減されるものの、PORにおけるレスポンスの安全性レベルが十分でなかった。
本発明は、端末の負荷を低減しつつ、サーバに格納されたデータの完全性を十分に検証できる検証システム、検証方法及び検証プログラムを提供することを目的とする。
本発明に係る検証システムは、端末が複数のデータサーバに格納したデータそれぞれの完全性を、検証装置により検証するシステムであって、前記端末は、対象ファイルを、素数を位数として持つ有限体上のベクトル空間の要素からなる複数個のファイルブロックに分割する分割部と、前記複数個のファイルブロックのベクトル空間と同次元の第1鍵を生成する第1鍵生成部と、前記複数個のファイルブロックに対する直交ベクトルを算出し、前記第1鍵と前記直交ベクトルとの和を、第2鍵として生成する第2鍵生成部と、前記複数個のファイルブロックを線形結合した符号化ブロック、及び当該符号化ブロックと前記第1鍵との内積を含む所定の演算により算出される準同型のメッセージ認証符号の組み合わせを、前記データサーバに複数格納する格納部と、を備え、前記検証装置は、前記データサーバに対するチャレンジとして、乱数の組を送信する第1送信部と、前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第1受信部と、前記符号化ブロックの線形結合に対して、前記第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第1判定部と、を備え、前記データサーバは、前記符号化ブロックを複数記憶する記憶部と、前記チャレンジに対して、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合を応答する応答部と、を備える。
前記第1送信部は、前記データサーバのそれぞれに対して、当該データサーバに格納されている前記符号化ブロックをランダムに1又は複数選択し、前記チャレンジを送信してもよい。
前記第1判定部により前記データサーバのデータが異常と判定された場合に、前記端末は、代替サーバに対して、新たな第2鍵を通知し、前記代替サーバは、正常と判定された前記データサーバから受信した前記符号化ブロックの線形結合を新たな符号化ブロックとし、当該符号化ブロック、及び当該符号化ブロックに対して前記新たな第2鍵を用いた前記所定の演算により算出した新たなメッセージ認証符号の組み合わせを複数格納する修復部を備えてもよい。
前記代替サーバは、前記データサーバに対するチャレンジとして、乱数の組を送信する第2送信部と、前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第2受信部と、前記符号化ブロックの線形結合に対して、前記新たな第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第2判定部と、を備えてもよい。
前記第2送信部は、前記データサーバのそれぞれに対して、当該データサーバに格納されている前記符号化ブロックをランダムに1又は複数選択し、前記チャレンジを送信してもよい。
前記所定の演算は、前記複数個のファイルブロックのベクトル空間と同次元の鍵と、前記符号化ブロックとの内積、並びに所定の鍵空間から選択された鍵と、前記符号化ブロックが格納されているサーバ及び順位を示すインデックスとを入力とした擬似ランダム関数の和であってもよい。
前記分割部は、対象ファイルを、素数qを位数として持つz次元の有限体の要素からなるm個のブロックに分割し、当該ブロックそれぞれに対して、m次元のインデックスを付加したz+m次元の拡張ブロックを、前記ファイルブロックとして生成してもよい。
本発明に係る検証方法は、端末が複数のデータサーバに格納したデータそれぞれの完全性を、検証装置により検証する方法であって、前記端末が、対象ファイルを、素数を位数として持つ有限体上のベクトル空間の要素からなる複数個のファイルブロックに分割する分割ステップと、前記複数個のファイルブロックのベクトル空間と同次元の第1鍵を生成する第1鍵生成ステップと、前記複数個のファイルブロックに対する直交ベクトルを算出し、前記第1鍵と前記直交ベクトルとの和を、第2鍵として生成する第2鍵生成ステップと、前記複数個のファイルブロックを線形結合した符号化ブロック、及び当該符号化ブロックと前記第1鍵との内積を含む所定の演算により算出される準同型のメッセージ認証符号の組み合わせを、前記データサーバに複数格納する格納ステップと、を実行し、前記検証装置が、前記データサーバに対するチャレンジとして、乱数の組を送信する第1送信ステップと、前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第1受信ステップと、前記符号化ブロックの線形結合に対して、前記第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第1判定ステップと、を実行し、前記データサーバが、前記符号化ブロックを複数記憶する記憶ステップと、前記チャレンジに対して、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合を応答する応答ステップと、を実行する。
本発明に係る検証プログラムは、コンピュータを、前記検証システムの各部として機能させる。
本発明によれば、端末の負荷を低減しつつ、サーバに格納されたデータの完全性を十分に検証できる。
実施形態に係る検証システムの構成を示すブロック図である。 実施形態に係る端末の機能構成を示すブロック図である。 実施形態に係る検証装置の機能構成を示すブロック図である。 実施形態に係るデータサーバの機能構成を示すブロック図である。 実施形態に係る格納処理を示すフローチャートである。 実施形態に係る検証処理を示すシーケンス図である。 実施形態に係る修復処理を示すフローチャートである。
以下、本発明の実施形態の一例について説明する。
図1は、本実施形態に係る検証システム1の構成を示すブロック図である。
検証システム1は、端末Cと、複数のデータサーバS(S〜S)と、検証装置Aとを備える。各装置は、ネットワークを介して互いに接続され、通信データのセキュリティが確保されているものとする。
端末Cは、ユーザが利用するスマートフォン、タブレット端末又はPC等の情報処理装置であり、ユーザデータをクラウド上の複数のデータサーバSに格納する。
データサーバSは、事業者により提供されるクラウド上のサーバ装置であり、ユーザデータを複数装置に分散記憶し、端末Cからの要求に応じて、ユーザデータ又はこれらを用いた演算結果等を提供する。
検証装置Aは、データサーバSに格納されたユーザデータの完全性を定期期に検証するため、第三者により提供されるサーバ装置(TPA;Third Party Auditor)である。
検証装置Aにより異常が認められたデータサーバSは、新たなデータサーバ(代替サーバ)S’に置き換えられ、代替サーバS’は、他の正常なデータサーバSに格納されている冗長なデータを用いて、新たに格納するデータを生成する。
まず、ユーザデータの検証及び修復の処理で利用される要素技術である、POR、ネットワークコーディング、準同型MAC(Message Authentication Code)、及び直交ベクトル生成について説明する。
[POR]
端末Cは、セキュリティパラメータλに基づいて、端末Cの秘密鍵skと、検証装置Aの秘密鍵skTPAとを出力する。
端末Cは、秘密鍵skと元データファイルFとを入力とし、Fからエンコードされ、各データサーバS(i∈[1,n])にd個ずつ格納される符号化ブロックF Si={(cij)}j∈[1,d]と、秘密鍵skを用いて算出されるF Siに対するタグ(メッセージ認証符号;MAC)T Si={(tij)}j∈[1,d]とを出力する。出力された(F Si,T Si)は、データサーバSiに格納される。
検証装置Aは、各データサーバSに対して、チャレンジchallSiを送信する。データサーバSは、レスポンスrespSiを計算し、検証装置Aへ返信する。検証装置Aは、challSi及び秘密鍵skTPAを用いてrespSiを検証することで、データサーバSのデータの完全性を検証する。
データサーバSに異常が認められた場合、代替サーバS’は、h台の正常なデータサーバSi1,…,Sih(h<n)の持つ符号化ブロックから、Sが保持していた符号化ブロックを復元、又は新たにd個の符号化ブロックを生成する。
具体的には、データサーバS’は、秘密鍵skS’rを端末Cから受け取り、まず、各サーバから取得した符号化ブロックの完全性を確認する。次に、データサーバS’は、取得した正常な符号化ブロックから、自身が格納するd個の符号化ブロックF S’r={(crj)}j∈[1,d]、及び対応するd個のタグT S’r={(trj)}j∈[1,d]を生成する。
[ネットワークコーディング]
端末Cは、対象ファイルFを、冗長性を持つ符号化ブロックに分割し、n台のデータサーバSにd個ずつ格納する。
端末Cは、まず、ファイルFを次のように、m個のブロックvに分割する。
Figure 2018093363
以下、素数qを位数とする有限体をFとも表記し、素数qを位数とするz次元の有限体をF とも表記する。
続いて、端末Cは、次のように拡張ブロックwを生成する。なお、k番目の拡張ブロックwは、z+1からz+m番目の要素のうち、z+k番目の要素のみが「1」となり、この他が「0」となる。
Figure 2018093363
次に、端末Cは、有限体Fからm個の係数α,…,αをランダムに選択し、線形結合により次の符号化ブロックcを生成する。
Figure 2018093363
端末Cは、これらの符号化ブロックをデータサーバS,…,Sに配布する。
ここで、拡張ブロックwの最後のm個のベクトル要素は、k番目のみが1で、残りは0であることから、符号化ブロックcの最後のm個のベクトル要素から、エンコードの際に用いられた係数α,…,αが得られる。ファイルFを復元する際には、符号化ブロックの最初のz個のベクトル要素を取り出すと、次の式(1)が得られる。
Figure 2018093363
m個の異なる符号化ブロックから、m個の式(1)が得られる。これらを解くことで、v,…,vが得られ、結合してF=v‖…‖vが復元される。
ここで、Fが復元可能であるためには、m個の式(1)が解を持つ必要があり、復元に利用されるm個の符号化ブロックの係数α,…,αのm個の組からなる行列のランクがmであることが条件となる。端末Cが十分に大きな素数qを選び、係数をランダムに選ぶと、この行列のランクは、十分に高い確率でmになることが知られている。
データサーバS(i∈[1,n])に問題が生じた場合、残りの正常なデータサーバSから符号化ブロックを収集し、これらを線形結合することで、新たな符号化ブロックが生成される。
[準同型MAC]
準同型MACは、ベクトル及びタグ(MAC)の2組のペア(v,t)及び(v,t)が与えられたとき、任意の係数α,α∈Fに対して、y=α+αであるベクトルyの有効なタグtが、t=α+αで計算できるという性質を備えている。
鍵空間K及び(q,z,m)を入力とし、秘密鍵sk=(k,k),k∈F z+m,k∈Kを出力すると、ブロック(ベクトル)w∈F z+m及びブロックのインデックスkに対して、以下のタグtは、準同型となる。
t=kw+PRF(k,k)∈F
ここで、PRFは、鍵空間Kから選ばれた鍵と[1,m]とから有限体Fの元を出力する疑似ランダム関数である。
m個のベクトル(w,…,w)の線形結合y=(y,…,yz+m)∈F z+mと、対応するm個のタグ(t,…,t)に同一の係数を用いた線形結合t∈Fとが保管されており、これらを検証する場合、秘密鍵sk=(k,k)を用いて、次式が成り立てばデータは正常と判定される。
Figure 2018093363
[直交ベクトル生成]
直交ベクトルは、ベクトル集合w,…,w(w∈F z+m,k∈[1,m])が与えられたとき、任意のk∈[1,m]に対してwφ=0となるベクトルkφである。
直交ベクトルを生成するためには、まず、ベクトル(w,…,w)によって張られる部分空間πを求める。続いて、行列M=[w,…,wを作り、行列Mのゼロ空間π を求める。
次に、π の基底ベクトルをz個(B,…,B∈F z+m)求め、F上のz個の乱数r(i∈[1,z])を用いて、次式によりkφを計算する。
Figure 2018093363
図2は、本実施形態に係る端末Cの機能構成を示すブロック図である。
端末Cは、分割部11と、第1鍵生成部12と、第2鍵生成部13と、格納部14とを備える。これらの各機能部は、制御部(例えば、CPU)が記憶部に格納されたプログラムを実行することにより実現される。
分割部11は、データサーバSに格納する対象ファイルFを、次のようにm個のz次元のブロックに分割する。
F=v‖…‖v,v∈F (ただし、k∈[1,m])
さらに、分割部11は、分割したブロックvそれぞれに対して、次のようにm次元のインデックスを付加したz+m次元の拡張ブロックwを生成する。
Figure 2018093363
第1鍵生成部12は、分割部11により生成された複数個のファイルブロックと同次元(z+m次元)の秘密鍵(第1鍵)kを有限体F z+mからランダムに生成する。また、第1鍵生成部12は、所定の鍵空間Kからランダムに秘密鍵kを選択する。
第2鍵生成部13は、分割部11により生成された複数個のファイルブロックに対する直交ベクトルkφをランダムに算出し(kφ∈F z+m かつ kφ=0,∀k∈[1,m])、第1鍵生成部12により生成された秘密鍵(第1鍵)と直交ベクトルとの和を、外部装置用の秘密鍵(第2鍵)として生成する(k=k+kφ∈F z+m)。
端末Cは、秘密鍵ペアskTPA={k,k}を、安全な通信路を介して検証装置Aに送り、sk={k,k}を自身の秘密鍵ペアとして保持する。
また、第2鍵生成部13は、検証装置Aの第1判定部23によりデータサーバSのデータが異常と判定された場合に、代替サーバS’に対して、新たな秘密鍵(第2鍵)k=k+kφr≠k(kφr∈F z+m かつ kφr=0,∀k∈[1,m])を生成する。
端末Cは、新たな秘密鍵ペアskS’r={k,k}を、安全な通信路を介してデータサーバS’に送る。
格納部14は、分割部11により生成された複数個のファイルブロックを線形結合した符号化ブロックをnd個生成する。ここで、nは、データサーバSの数であり、d(<n)は、各データサーバSに格納される符号化ブロックの数である。
具体的には、格納部14は、i∈[1,n],j∈[1,d]に対して、有限体Fからランダムにm個の係数αijkを生成し、次のように、符号化ブロックを算出する。
Figure 2018093363
さらに、格納部14は、所定の演算により算出される準同型のタグ(MAC)を生成し、符号化ブロックcij及びタグtijの組み合わせを、データサーバSに複数(d組)格納する。
タグを生成するための所定の演算は、例えば、次のように、秘密鍵kと符号化ブロックとの内積、及び秘密鍵kと、符号化ブロックが格納されるサーバ及びサーバ内の順位を示すインデックスi,jとを入力とした擬似ランダム関数(PRF:K×[1,n]‖[1,d]→F)の和である。
Figure 2018093363
図3は、本実施形態に係る検証装置Aの機能構成を示すブロック図である。
検証装置Aは、第1送信部21と、第1受信部22と、第1判定部23とを備える。これらの各機能部は、制御部(例えば、CPU)が記憶部に格納されたプログラムを実行することにより実現される。
第1送信部21は、データサーバSに対するチャレンジとして、乱数の組を送信する。
このとき、第1送信部21は、データサーバSのそれぞれに対して、このデータサーバに格納されている符号化ブロックをランダムに1又は複数(s個)選択し、チャレンジを送信する。
具体的には、第1送信部21は、整数s∈[1,d]を選択し、s組のチャレンジchall={(b,β),…,(b,β)}を生成してデータサーバSに送信する。ここで、各u∈[1,s]に対して、bはランダムに[1,d]から重複なく選ばれ、βはランダムに有限体Fから選ばれる。なお、sはデータサーバS毎に、また、定期的に実行される検証処理の度に異なっていてよい。
第1受信部22は、チャレンジを送信したデータサーバSから、乱数の組を係数とした次のような符号化ブロックの線形結合cと、タグの線形結合tとをレスポンスとして受信する。
Figure 2018093363
第1判定部23は、レスポンスとして受信した符号化ブロックの線形結合cに対して、端末Cから受け取った秘密鍵(第2鍵)kを用いた所定の演算により算出したタグを、受信したタグの線形結合tと比較する。そして、第1判定部23は、次のように等式が成り立つ場合にデータサーバSのデータを正常と判定し、両者が異なる場合にデータサーバSのデータを異常と判定する。
Figure 2018093363
なお、右辺第1項「k」は、「k=(k+kφ)c=k」となるため、秘密鍵kを知らない検証装置Aが自身の秘密鍵kにより、端末Cに代わって検証を行える。
図4は、本実施形態に係るデータサーバSの機能構成を示すブロック図である。
データサーバSは、記憶部31と、応答部32とを備える。さらに、データの異常が認められたデータサーバSの代替となる新たなデータサーバS(代替サーバ)は、第2送信部33と、第2受信部34と、第2判定部35と、修復部36とを備える。これらの各機能部は、制御部(例えば、CPU)が記憶部に格納されたプログラムを実行することにより実現される。
記憶部31は、端末Cから受信した符号化ブロックとタグの組を複数(d組)記憶する。
応答部32は、検証装置A又は他のデータサーバSから受信したチャレンジに対して、乱数βの組を係数とした、符号化ブロックの線形結合及びタグの線形結合を応答する。
第2送信部33は、検証装置Aの第1送信部21と同様に、自身と異なる他のデータサーバSに対して、このデータサーバSに格納されている符号化ブロックをランダムに1又は複数選択し、チャレンジとして乱数の組を送信する。
第2受信部34は、検証装置Aの第1受信部22と同様に、チャレンジを送信したデータサーバSから、乱数の組を係数とした、符号化ブロックの線形結合及びタグの線形結合をレスポンスとして受信する。
第2判定部35は、検証装置Aの第1判定部23と同様に、受信した符号化ブロックの線形結合に対して、端末Cから受信した秘密鍵(第2鍵)kを用いた所定の演算により算出したタグを、受信したタグの線形結合と比較する。そして、第2判定部35は、次のように等式が成り立つ場合に取得した符号化ブロックを正常と判定し、両者が異なる場合に異常と判定する。
Figure 2018093363
修復部36は、第2判定部35により正常と判定されたh台のデータサーバSから受信した符号化ブロックの線形結合を新たな符号化ブロックとする。
ここで、正常なデータサーバSの台数hは、「ceil(m/d)≦h<n」(ceil(x)は、x以上の最小の整数)の条件を満たす値が選択される。
h台の正常なデータサーバSから修復部36がd個の新たな符号化ブロックを得るまで、第2送信部33、第2受信部34及び第2判定部35による検証処理が繰り返される。なお、同一のデータサーバSに対するチャレンジの値は毎回異なるものとする。
修復部36は、検証済みの符号化ブロックを検証装置Aから取得してもよい。
修復部36は、d個の新たな符号化ブロックRc={ci1,…cid}に対して、それぞれ新たな秘密鍵(第2鍵)kを用いた所定の演算により新たなd個のタグtrjを、次のように計算する。
rj=crj+PRF(k,r‖j)
修復部36は、符号化ブロックとタグとの組み合わせ{crj,trj}(ただし、j∈[1,d])を、記憶部31に格納する。
図5は、本実施形態に係る格納処理を示すフローチャートである。
なお、本処理に先立って、端末Cは、第1鍵生成部12により自身の秘密鍵を生成しているものとする。
ステップS1において、端末C(分割部11)は、対象ファイルを素数qを位数として持つz次元の有限体の要素からなるm個のブロック(ベクトル)vに分割する。
ステップS2において、端末C(分割部11)は、ステップS1で分割した各ブロックにm次元のインデックスを付加してm個の拡張ブロックwを生成する。
ステップS3において、端末C(格納部14)は、ランダムなm個の係数を用いて、ステップS2で生成したm個の拡張ブロックを線形結合した符号化ブロックを生成する。
ステップS4において、端末C(格納部14)は、ステップS3で生成した符号化ブロックそれぞれに対して、準同型のタグを生成する。
ステップS5において、端末C(格納部14)は、符号化ブロック及びタグをnd個ずつ生成したか否かを判定する。この判定がYESの場合、処理はステップS6に移り、判定がNOの場合、処理はステップS3に移る。
ステップS6において、端末C(格納部14)は、符号化ブロック及びタグの組を、n台のデータサーバSそれぞれにd組ずつ送信する。
図6は、本実施形態に係る検証処理を示すシーケンス図である。
本処理は、各データサーバS(i=1,…,n)に対して定期的に実行される。
なお、本処理に先立って、端末Cは、第2鍵生成部により検証装置Aの秘密鍵を生成し、検証装置Aへ提供しているものとする。
ステップS11において、検証装置A(第1送信部21)は、データサーバSに格納されているd個の符号化ブロックのうち、検証の対象とする数sを選択する。
ステップS12において、検証装置A(第1送信部21)は、s個のインデックスb(u=1,…,s)をランダムに[1,d]から重複なく選択する。
ステップS13において、検証装置A(第1送信部21)は、s個の乱数βを生成する。
ステップS14において、検証装置A(第1送信部21)は、チャレンジ{(b,β),…,(b,β)}をi番目のデータサーバSに送信する。
ステップS15において、データサーバS(応答部32)は、ステップS14のチャレンジにより指定されたs個の符号化ブロック(b番目)を線形結合する。
ステップS16において、データサーバS(応答部32)は、ステップS14のチャレンジにより指定されたs個のタグ(b番目)を線形結合する。
ステップS17において、データサーバS(応答部32)は、ステップS15で生成した符号化ブロックの線形結合cと、タグの線形結合tとを、ステップS14のチャレンジに対するレスポンスとして送信し、検証装置A(第1受信部22)が受信する。
ステップS18において、検証装置A(第1判定部23)は、データサーバSに送信したチャレンジ、端末Cから提供された秘密鍵、及びステップS17でレスポンスとして受信した符号化ブロックの線形結合cを用いて、タグを算出する。
ステップS19において、検証装置A(第1判定部23)は、ステップS18で算出したタグと、ステップS17でレスポンスとして受信したタグの線形結合tとを比較し、データサーバSに格納されているデータの完全性を検証する。
図7は、本実施形態に係る修復処理を示すフローチャートである。
本処理は、異常が認められたデータサーバSに代えて設けられるデータサーバS’において、検証装置Aからの指示に応じて実行される。
なお、本処理に先立って、端末Cは、第2鍵生成部によりデータサーバS’の秘密鍵を生成し、データサーバS’へ提供しているものとする。
ステップS21において、データサーバS’(第2送信部33)は、他のデータサーバS、及びデータサーバSに格納されている符号化ブロックの組をランダムに選択する。
ステップS22において、データサーバS’(第2送信部33)は、ステップS21で選択したデータサーバSに対して、検証処理(図6)と同様のチャレンジを送信する。
ステップS23において、データサーバS’(第2受信部34)は、データサーバSから、検証処理(図6)と同様のレスポンスを受信する。
ステップS24において、データサーバS’(第2判定部35)は、検証処理(図6)と同様の手順により、秘密鍵を用いて算出したタグとレスポンスのタグとを比較し、データサーバS’から取得したデータ(符号化ブロックの線形結合)が正常か否かを判定する。この判定がYESの場合、処理はステップS25に移り、判定がNOの場合、処理はステップS21に移る。
ステップS25において、データサーバS’(修復部36)は、ステップS24で正常と判定された、データサーバSで線形結合により生成された符号化ブロックを、d個取得できたか否かを判定する。この判定がYESの場合、処理はステップS26に移り、判定がNOの場合、処理はステップS21に移る。
ステップS26において、データサーバS’(修復部36)は、取得した符号化ブロックのそれぞれに対して、自身の秘密鍵を用いてタグを生成する。
ステップS27において、データサーバS’(修復部36)は、符号化ブロック及びタグの組み合わせd組を記憶部31に格納する。
本実施形態によれば、検証システム1は、端末Cが直交ベクトルを用いて検証装置Aの秘密鍵を生成することにより、検証装置Aが端末Cの代理として、データサーバSに格納されたデータの完全性を検証できる。
また、検証システム1は、ネットワークコーディングの技術を用いて複数のデータサーバSに分散して符号化ブロックを格納し、効率的に復元可能とした。さらに、検証システム1は、準同型MACにより、チャレンジ及びレスポンスを用いたPORの手順を構築したので、データを秘匿したままの演算で処理負荷を低減しつつ、十分な検証精度を得られる。
検証システム1は、データサーバSに格納された一部の符号化ブロックをランダムに検証するので、高い精度を確保しつつ処理を効率化できる。さらに、検証システム1は、処理の効率性と検証精度とのバランスを、状況に応じて適切に設定できる。
検証システム1は、端末Cが直交ベクトルを用いてデータサーバSの秘密鍵を生成することにより、データサーバSにおいて正常な符号化ブロックからタグを生成する。これにより、端末Cの処理負荷が低減され、検証システム1は、容易に新たなデータサーバS(代替サーバ)の格納データを再生成できる。
さらに、検証システム1は、データサーバSにおいて、PORの手順により符号化ブロックを検証できるので、端末C及び検証装置Aを介さずに、データサーバS間で正常な符号化ブロックを自立的に取得できる。
このとき、データサーバSは、検証装置Aと同様に、他のデータサーバSに格納された一部の符号化ブロックをランダムに検証するので、高い精度を確保しつつ処理を効率化できる。
検証システム1は、秘密鍵と符号化ブロックとの内積、及び擬似ランダム関数を用いることにより、データサーバS及びこのサーバ内の符号化ブロック位置に固有のタグを容易に生成でき、効率的に精度良くデータの完全性を検証できる。
検証システム1は、ファイルブロックにインデックスを付加した拡張ブロックを生成することにより、線形結合の係数を容易に抽出できるので、効率的にファイルを復元できる。
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
検証システム1による検証方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
A 検証装置
C 端末
S データサーバ
1 検証システム
11 分割部
12 第1鍵生成部
13 第2鍵生成部
14 格納部
21 第1送信部
22 第1受信部
23 第1判定部
31 記憶部
32 応答部
33 第2送信部
34 第2受信部
35 第2判定部
36 修復部

Claims (9)

  1. 端末が複数のデータサーバに格納したデータそれぞれの完全性を、検証装置により検証する検証システムであって、
    前記端末は、
    対象ファイルを、素数を位数として持つ有限体上のベクトル空間の要素からなる複数個のファイルブロックに分割する分割部と、
    前記複数個のファイルブロックのベクトル空間と同次元の第1鍵を生成する第1鍵生成部と、
    前記複数個のファイルブロックに対する直交ベクトルを算出し、前記第1鍵と前記直交ベクトルとの和を、第2鍵として生成する第2鍵生成部と、
    前記複数個のファイルブロックを線形結合した符号化ブロック、及び当該符号化ブロックと前記第1鍵との内積を含む所定の演算により算出される準同型のメッセージ認証符号の組み合わせを、前記データサーバに複数格納する格納部と、を備え、
    前記検証装置は、
    前記データサーバに対するチャレンジとして、乱数の組を送信する第1送信部と、
    前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第1受信部と、
    前記符号化ブロックの線形結合に対して、前記第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第1判定部と、を備え、
    前記データサーバは、
    前記符号化ブロックを複数記憶する記憶部と、
    前記チャレンジに対して、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合を応答する応答部と、を備える検証システム。
  2. 前記第1送信部は、前記データサーバのそれぞれに対して、当該データサーバに格納されている前記符号化ブロックをランダムに1又は複数選択し、前記チャレンジを送信する請求項1に記載の検証システム。
  3. 前記第1判定部により前記データサーバのデータが異常と判定された場合に、
    前記端末は、代替サーバに対して、新たな第2鍵を通知し、
    前記代替サーバは、
    正常と判定された前記データサーバから受信した前記符号化ブロックの線形結合を新たな符号化ブロックとし、当該符号化ブロック、及び当該符号化ブロックに対して前記新たな第2鍵を用いた前記所定の演算により算出した新たなメッセージ認証符号の組み合わせを複数格納する修復部を備える請求項1又は請求項2に記載の検証システム。
  4. 前記代替サーバは、
    前記データサーバに対するチャレンジとして、乱数の組を送信する第2送信部と、
    前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第2受信部と、
    前記符号化ブロックの線形結合に対して、前記新たな第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第2判定部と、を備える請求項3に記載の検証システム。
  5. 前記第2送信部は、前記データサーバのそれぞれに対して、当該データサーバに格納されている前記符号化ブロックをランダムに1又は複数選択し、前記チャレンジを送信する請求項4に記載の検証システム。
  6. 前記所定の演算は、前記複数個のファイルブロックのベクトル空間と同次元の鍵と、前記符号化ブロックとの内積、並びに所定の鍵空間から選択された鍵と、前記符号化ブロックが格納されているサーバ及び順位を示すインデックスとを入力とした擬似ランダム関数の和である請求項1から請求項4のいずれかに記載の検証システム。
  7. 前記分割部は、対象ファイルを、素数qを位数として持つz次元の有限体の要素からなるm個のブロックに分割し、当該ブロックそれぞれに対して、m次元のインデックスを付加したz+m次元の拡張ブロックを、前記ファイルブロックとして生成する請求項1から請求項6のいずれかに記載の検証システム。
  8. 端末が複数のデータサーバに格納したデータそれぞれの完全性を、検証装置により検証する検証方法であって、
    前記端末が、
    対象ファイルを、素数を位数として持つ有限体上のベクトル空間の要素からなる複数個のファイルブロックに分割する分割ステップと、
    前記複数個のファイルブロックのベクトル空間と同次元の第1鍵を生成する第1鍵生成ステップと、
    前記複数個のファイルブロックに対する直交ベクトルを算出し、前記第1鍵と前記直交ベクトルとの和を、第2鍵として生成する第2鍵生成ステップと、
    前記複数個のファイルブロックを線形結合した符号化ブロック、及び当該符号化ブロックと前記第1鍵との内積を含む所定の演算により算出される準同型のメッセージ認証符号の組み合わせを、前記データサーバに複数格納する格納ステップと、を実行し、
    前記検証装置が、
    前記データサーバに対するチャレンジとして、乱数の組を送信する第1送信ステップと、
    前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第1受信ステップと、
    前記符号化ブロックの線形結合に対して、前記第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第1判定ステップと、を実行し、
    前記データサーバが、
    前記符号化ブロックを複数記憶する記憶ステップと、
    前記チャレンジに対して、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合を応答する応答ステップと、を実行する検証方法。
  9. コンピュータを、請求項1から請求項7のいずれかに記載の検証システムの各部として機能させるための検証プログラム。
JP2016234925A 2016-12-02 2016-12-02 検証システム、検証方法及び検証プログラム Active JP6632959B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016234925A JP6632959B2 (ja) 2016-12-02 2016-12-02 検証システム、検証方法及び検証プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016234925A JP6632959B2 (ja) 2016-12-02 2016-12-02 検証システム、検証方法及び検証プログラム

Publications (2)

Publication Number Publication Date
JP2018093363A true JP2018093363A (ja) 2018-06-14
JP6632959B2 JP6632959B2 (ja) 2020-01-22

Family

ID=62566446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016234925A Active JP6632959B2 (ja) 2016-12-02 2016-12-02 検証システム、検証方法及び検証プログラム

Country Status (1)

Country Link
JP (1) JP6632959B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108985102A (zh) * 2018-06-22 2018-12-11 中国电子科技集团公司电子科学研究院 数据完整性验证方法、装置、系统及存储介质
CN111814137A (zh) * 2020-06-29 2020-10-23 深圳市海邻科信息技术有限公司 终端的运维方法、运维系统及存储介质
WO2023112244A1 (ja) * 2021-12-16 2023-06-22 日本電信電話株式会社 検出システム、検出方法及び検出プログラム
US11750398B2 (en) 2018-09-27 2023-09-05 Nec Corporation MAC tag list generation apparatus, MAC tag list verification apparatus, aggregate MAC verification system and method
US11824993B2 (en) 2019-04-18 2023-11-21 Nec Corporation MAC tag list generation apparatus, MAC tag list verification apparatus, method, and program

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108985102A (zh) * 2018-06-22 2018-12-11 中国电子科技集团公司电子科学研究院 数据完整性验证方法、装置、系统及存储介质
US11750398B2 (en) 2018-09-27 2023-09-05 Nec Corporation MAC tag list generation apparatus, MAC tag list verification apparatus, aggregate MAC verification system and method
US11824993B2 (en) 2019-04-18 2023-11-21 Nec Corporation MAC tag list generation apparatus, MAC tag list verification apparatus, method, and program
CN111814137A (zh) * 2020-06-29 2020-10-23 深圳市海邻科信息技术有限公司 终端的运维方法、运维系统及存储介质
CN111814137B (zh) * 2020-06-29 2024-03-22 深圳市海邻科信息技术有限公司 终端的运维方法、运维系统及存储介质
WO2023112244A1 (ja) * 2021-12-16 2023-06-22 日本電信電話株式会社 検出システム、検出方法及び検出プログラム

Also Published As

Publication number Publication date
JP6632959B2 (ja) 2020-01-22

Similar Documents

Publication Publication Date Title
Yuan et al. Secure and constant cost public cloud storage auditing with deduplication
Yuan et al. Proofs of retrievability with public verifiability and constant communication cost in cloud
US10360392B2 (en) Generating shares of secret data
JP6632959B2 (ja) 検証システム、検証方法及び検証プログラム
Yang et al. Data storage auditing service in cloud computing: challenges, methods and opportunities
JP5885840B2 (ja) 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
JP5860556B1 (ja) 不整合検知方法、不整合検知システム、不整合検知装置、およびプログラム
Yang et al. Provable ownership of files in deduplication cloud storage
US20100217986A1 (en) Authenticated secret sharing
US10873631B2 (en) Method for storing data in a cloud and network for carrying out the method
Fu et al. DIPOR: An IDA-based dynamic proof of retrievability scheme for cloud storage systems
JP5860557B1 (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
JP5944841B2 (ja) 秘密分散システム、データ分散装置、分散データ保有装置、秘密分散方法、およびプログラム
US20150023498A1 (en) Byzantine fault tolerance and threshold coin tossing
Chen et al. Message‐locked proof of ownership and retrievability with remote repairing in cloud
Balmany et al. Dynamic proof of retrievability based on public auditing for coded secure cloud storage
He et al. Public auditing for encrypted data with client-side deduplication in cloud storage
US11329808B2 (en) Secure computation device, secure computation authentication system, secure computation method, and program
Fakhar et al. Management of symmetric cryptographic keys in cloud based environment
CN115499150A (zh) 一种边缘数据完整性审计方法及系统
Ganorkar et al. An information security scheme for cloud based environment using 3DES encryption algorithm
KR20150002821A (ko) 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법
Omote et al. DD-POR: Dynamic operations and direct repair in network coding-based proof of retrievability
Omote et al. D2-POR: direct repair and dynamic operations in network coding-based proof of retrievability
Liu et al. Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191120

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191211

R150 Certificate of patent or registration of utility model

Ref document number: 6632959

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150