JP6632959B2 - Verification system, verification method and verification program - Google Patents

Verification system, verification method and verification program Download PDF

Info

Publication number
JP6632959B2
JP6632959B2 JP2016234925A JP2016234925A JP6632959B2 JP 6632959 B2 JP6632959 B2 JP 6632959B2 JP 2016234925 A JP2016234925 A JP 2016234925A JP 2016234925 A JP2016234925 A JP 2016234925A JP 6632959 B2 JP6632959 B2 JP 6632959B2
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.)
Active
Application number
JP2016234925A
Other languages
Japanese (ja)
Other versions
JP2018093363A (en
Inventor
フン タオ トラン
フン タオ トラン
歩 窪田
歩 窪田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/en
Publication of JP2018093363A publication Critical patent/JP2018093363A/en
Application granted granted Critical
Publication of JP6632959B2 publication Critical patent/JP6632959B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、サーバに格納したデータの完全性を検証する検証システム、検証方法及び検証プログラムに関する。   The present invention relates to a verification system, a verification method, and a verification program for verifying the integrity of data stored in a server.

従来、情報資産を管理する上で、機密性、完全性及び可用性を維持する情報セキュリティが求められている。
ユーザデータを格納したクラウドサーバにおいて、完全性を維持するためのデータ検証の手法として、POR(Proof Of Retrievability)が提案されている。また、可用性を維持するためのデータ修復の手法としてネットワークコーディングが提案されている。例えば、非特許文献1〜3には、ネットワークコーディング及びPORを用いた手法が示されている。
Conventionally, in managing information assets, information security for maintaining confidentiality, integrity, and availability has been required.
In a cloud server storing user data, POR (Proof Of Retrievability) has been proposed as a data verification technique for maintaining integrity. In addition, network coding has been proposed as a data restoration technique for maintaining availability. For example, Non-Patent Documents 1 to 3 disclose techniques using network coding and 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.B. Chen, R.A. Curtmola, G .; Athenies and R.A. Burns, "Remote Data Checking for Network Coding-Based Distributed Storage Systems", in: Proceedings of the 2nd ACM Cloud Computing. 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.A. Le, and A. Markopoulou, "NC-Audit: Auditing for network coding storage", in: Proceedings of International Symposium on Network Coding (NetCord'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.K. Omote, and T.M. 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におけるレスポンスの安全性レベルが十分でなかった。   The method of Non-Patent Document 1 places a heavy load on terminals for data verification and restoration. The method of Non-Patent Document 2 allows verification by a third party other than the terminal, but cannot reduce the load on the terminal when restoring data in which an abnormality is recognized. In the method of Non-Patent Document 3, although the load on the terminal is reduced for data verification and restoration, the security level of the response in the POR is not sufficient.

本発明は、端末の負荷を低減しつつ、サーバに格納されたデータの完全性を十分に検証できる検証システム、検証方法及び検証プログラムを提供することを目的とする。   An object of the present invention is to provide a verification system, a verification method, and a verification program that can sufficiently verify the integrity of data stored in a server while reducing the load on a terminal.

本発明に係る検証システムは、端末が複数のデータサーバに格納したデータそれぞれの完全性を、検証装置により検証するシステムであって、前記端末は、対象ファイルを、素数を位数として持つ有限体上のベクトル空間の要素からなる複数個のファイルブロックに分割する分割部と、前記複数個のファイルブロックのベクトル空間と同次元の第1鍵を生成する第1鍵生成部と、前記複数個のファイルブロックに対する直交ベクトルを算出し、前記第1鍵と前記直交ベクトルとの和を、第2鍵として生成する第2鍵生成部と、前記複数個のファイルブロックを線形結合した符号化ブロック、及び当該符号化ブロックと前記第1鍵との内積を含む所定の演算により算出される準同型のメッセージ認証符号の組み合わせを、前記データサーバに複数格納する格納部と、を備え、前記検証装置は、前記データサーバに対するチャレンジとして、乱数の組を送信する第1送信部と、前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第1受信部と、前記符号化ブロックの線形結合に対して、前記第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第1判定部と、を備え、前記データサーバは、前記符号化ブロックを複数記憶する記憶部と、前記チャレンジに対して、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合を応答する応答部と、を備える。   A verification system according to the present invention is a system in which a terminal verifies the integrity of each of data stored in a plurality of data servers by a verification device, wherein the terminal has a finite field having a target file as a prime number. A dividing unit that divides the file space into a plurality of file blocks composed of elements of the above vector space; a first key generating unit that generates a first key having the same dimension as the vector space of the plurality of file blocks; A second key generation unit that calculates an orthogonal vector for a file block and generates a sum of the first key and the orthogonal vector as a second key; an encoded block obtained by linearly combining the plurality of file blocks; A combination of a homomorphic message authentication code calculated by a predetermined operation including an inner product of the encoded block and the first key is copied to the data server. A storage unit for storing, wherein the verification device transmits a set of random numbers as a challenge to the data server; and the encoding unit, wherein the set of random numbers is used as a coefficient from the data server. A first receiving unit that receives, as a response, a linear combination of blocks and a linear combination of the message authentication codes, and a message authentication calculated by the predetermined operation using the second key with respect to the linear combination of the encoded blocks. A first determination unit that compares a code with a linear combination of the received message authentication codes, determines that the data of the data server is normal if they are equal, and determines that the data of the data server is abnormal if they are different. The data server comprises: a storage unit that stores a plurality of the encoded blocks; And a response unit for responding a linear combination and a linear combination of the message authentication code of the coded block.

前記第1送信部は、前記データサーバのそれぞれに対して、当該データサーバに格納されている前記符号化ブロックをランダムに1又は複数選択し、前記チャレンジを送信してもよい。   The first transmission unit may randomly select one or a plurality of the encoded blocks stored in the data server and transmit the challenge to each of the data servers.

前記第1判定部により前記データサーバのデータが異常と判定された場合に、前記端末は、代替サーバに対して、新たな第2鍵を通知し、前記代替サーバは、正常と判定された前記データサーバから受信した前記符号化ブロックの線形結合を新たな符号化ブロックとし、当該符号化ブロック、及び当該符号化ブロックに対して前記新たな第2鍵を用いた前記所定の演算により算出した新たなメッセージ認証符号の組み合わせを複数格納する修復部を備えてもよい。   When the data of the data server is determined to be abnormal by the first determination unit, the terminal notifies the alternative server of a new second key, and the alternative server determines that the data is normal. A linear combination of the coded blocks received from the data server is set as a new coded block, and the coded block and a new code calculated by the predetermined operation using the new second key for the coded block are used. A restoration unit that stores a plurality of combinations of various message authentication codes may be provided.

前記代替サーバは、前記データサーバに対するチャレンジとして、乱数の組を送信する第2送信部と、前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第2受信部と、前記符号化ブロックの線形結合に対して、前記新たな第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第2判定部と、を備えてもよい。   A second transmission unit that transmits a set of random numbers as a challenge to the data server; and a linear combination of the encoding block and the message authentication code, using the set of random numbers as a coefficient from the data server. A second receiving unit that receives, as a response, a linear combination of the message authentication code calculated by the predetermined operation using the new second key with respect to the linear combination of the encoded blocks. A second determination unit may be provided that compares the data with a linear combination of authentication codes, determines that the data of the data server is normal if they are equal, and determines that the data of the data server is abnormal if they are different.

前記第2送信部は、前記データサーバのそれぞれに対して、当該データサーバに格納されている前記符号化ブロックをランダムに1又は複数選択し、前記チャレンジを送信してもよい。   The second transmitting unit may randomly select one or a plurality of the encoded blocks stored in the data server and transmit the challenge to each of the data servers.

前記所定の演算は、前記複数個のファイルブロックのベクトル空間と同次元の鍵と、前記符号化ブロックとの内積、並びに所定の鍵空間から選択された鍵と、前記符号化ブロックが格納されているサーバ及び順位を示すインデックスとを入力とした擬似ランダム関数の和であってもよい。   The predetermined operation includes a key having the same dimension as the vector space of the plurality of file blocks, an inner product of the encoded block, and a key selected from a predetermined key space, and the encoded block being stored. It may be the sum of a pseudo-random function with the input server and the index indicating the rank.

前記分割部は、対象ファイルを、素数qを位数として持つz次元の有限体の要素からなるm個のブロックに分割し、当該ブロックそれぞれに対して、m次元のインデックスを付加したz+m次元の拡張ブロックを、前記ファイルブロックとして生成してもよい。   The dividing unit divides the target file into m blocks each having an element of a z-dimensional finite field having a prime number q as an order, and assigns an m-dimensional index to each of the blocks. An extension block may be generated as the file block.

本発明に係る検証方法は、端末が複数のデータサーバに格納したデータそれぞれの完全性を、検証装置により検証する方法であって、前記端末が、対象ファイルを、素数を位数として持つ有限体上のベクトル空間の要素からなる複数個のファイルブロックに分割する分割ステップと、前記複数個のファイルブロックのベクトル空間と同次元の第1鍵を生成する第1鍵生成ステップと、前記複数個のファイルブロックに対する直交ベクトルを算出し、前記第1鍵と前記直交ベクトルとの和を、第2鍵として生成する第2鍵生成ステップと、前記複数個のファイルブロックを線形結合した符号化ブロック、及び当該符号化ブロックと前記第1鍵との内積を含む所定の演算により算出される準同型のメッセージ認証符号の組み合わせを、前記データサーバに複数格納する格納ステップと、を実行し、前記検証装置が、前記データサーバに対するチャレンジとして、乱数の組を送信する第1送信ステップと、前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第1受信ステップと、前記符号化ブロックの線形結合に対して、前記第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第1判定ステップと、を実行し、前記データサーバが、前記符号化ブロックを複数記憶する記憶ステップと、前記チャレンジに対して、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合を応答する応答ステップと、を実行する。   A verification method according to the present invention is a method for verifying the integrity of data stored in a plurality of data servers by a terminal using a verification device, wherein the terminal has a finite field having a target file as a prime number. A dividing step of dividing the file space into a plurality of file blocks composed of elements of the above vector space, a first key generating step of generating a first key having the same dimension as the vector space of the plurality of file blocks, A second key generation step of calculating an orthogonal vector for a file block and generating a sum of the first key and the orthogonal vector as a second key; an encoding block obtained by linearly combining the plurality of file blocks; A combination of a homomorphic message authentication code calculated by a predetermined operation including an inner product of the encoded block and the first key is represented by the data Performing a storage step of storing a plurality of random numbers as a challenge to the data server, and the verification device transmits a set of random numbers to the data server as a challenge. A first receiving step of receiving, as a response, a linear combination of the encoded block and a linear combination of the message authentication code, and the predetermined operation using the second key with respect to the linear combination of the encoded block Is compared with the linear combination of the received message authentication codes, and if they are equal, the data of the data server is determined to be normal, and if different, the data of the data server is determined to be abnormal. Executing a determining step, wherein the data server stores a plurality of the encoded blocks; Against Nji, a set of random numbers and a coefficient, executes a response step for responding to a linear combination of the linear combination and the message authentication code of the coded block.

本発明に係る検証プログラムは、コンピュータを、前記検証システムの各部として機能させる。   A verification program according to the present invention causes a computer to function as each unit of the verification system.

本発明によれば、端末の負荷を低減しつつ、サーバに格納されたデータの完全性を十分に検証できる。   According to the present invention, it is possible to sufficiently verify the integrity of data stored in a server while reducing the load on a terminal.

実施形態に係る検証システムの構成を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration of a verification system according to an embodiment. 実施形態に係る端末の機能構成を示すブロック図である。FIG. 2 is a block diagram illustrating a functional configuration of a terminal according to the embodiment. 実施形態に係る検証装置の機能構成を示すブロック図である。FIG. 2 is a block diagram illustrating a functional configuration of the verification device according to the embodiment. 実施形態に係るデータサーバの機能構成を示すブロック図である。FIG. 2 is a block diagram illustrating a functional configuration of a data server according to the embodiment. 実施形態に係る格納処理を示すフローチャートである。9 is a flowchart illustrating a storage process according to the embodiment. 実施形態に係る検証処理を示すシーケンス図である。FIG. 7 is a sequence diagram illustrating a verification process according to the embodiment. 実施形態に係る修復処理を示すフローチャートである。9 is a flowchart illustrating a restoration process according to the embodiment.

以下、本発明の実施形態の一例について説明する。
図1は、本実施形態に係る検証システム1の構成を示すブロック図である。
検証システム1は、端末Cと、複数のデータサーバS(S〜S)と、検証装置Aとを備える。各装置は、ネットワークを介して互いに接続され、通信データのセキュリティが確保されているものとする。
Hereinafter, an example of an embodiment of the present invention will be described.
FIG. 1 is a block diagram illustrating a configuration of a verification system 1 according to the present embodiment.
The verification system 1 includes a terminal C, a plurality of data servers S (S 1 to S n ), and a verification device A. Each device is connected to each other via a network, and security of communication data is ensured.

端末Cは、ユーザが利用するスマートフォン、タブレット端末又はPC等の情報処理装置であり、ユーザデータをクラウド上の複数のデータサーバSに格納する。
データサーバSは、事業者により提供されるクラウド上のサーバ装置であり、ユーザデータを複数装置に分散記憶し、端末Cからの要求に応じて、ユーザデータ又はこれらを用いた演算結果等を提供する。
The terminal C is an information processing device such as a smartphone, a tablet terminal, or a PC used by the user, and stores user data in a plurality of data servers S on the cloud.
The data server S is a server device on the cloud provided by the business operator, and stores user data in a distributed manner in a plurality of devices, and provides user data or calculation results using the same in response to a request from the terminal C. I do.

検証装置Aは、データサーバSに格納されたユーザデータの完全性を定期期に検証するため、第三者により提供されるサーバ装置(TPA;Third Party Auditor)である。
検証装置Aにより異常が認められたデータサーバSは、新たなデータサーバ(代替サーバ)S’に置き換えられ、代替サーバS’は、他の正常なデータサーバSに格納されている冗長なデータを用いて、新たに格納するデータを生成する。
The verification device A is a server device (TPA; Third Party Auditor) provided by a third party to periodically verify the integrity of the user data stored in the data server S.
The data server S in which an abnormality is recognized by the verification device A is replaced with a new data server (substitute server) S ′, and the substitute server S ′ replaces redundant data stored in another normal data server S. To generate data to be newly stored.

まず、ユーザデータの検証及び修復の処理で利用される要素技術である、POR、ネットワークコーディング、準同型MAC(Message Authentication Code)、及び直交ベクトル生成について説明する。   First, POR, network coding, homomorphic MAC (Message Authentication Code), and orthogonal vector generation, which are element technologies used in user data verification and restoration processing, will be described.

[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に格納される。
[POR]
The terminal C outputs the secret key sk C of the terminal C and the secret key sk TPA of the verification device A based on the security parameter λ.
The terminal C receives as input the secret key sk C and the original data file F, encodes them from F, and stores d encoded blocks F * Si stored in each data server S i (i∈ [1, n]). = {(C ij )} j } [1, d] and a tag (message authentication code; MAC) for F * Si calculated using the secret key sk C T * Si = {(t ij )} j } [1, d] is output. The output (F * Si , T * Si ) is stored in the data server Si.

検証装置Aは、各データサーバSに対して、チャレンジchallSiを送信する。データサーバSは、レスポンスrespSiを計算し、検証装置Aへ返信する。検証装置Aは、challSi及び秘密鍵skTPAを用いてrespSiを検証することで、データサーバSのデータの完全性を検証する。 Verification device A, for each data server S i, sends a challenge chall Si. Data server S i computes a response resp Si, and returns to the verification device A. Verification device A, by verifying resp Si using chall Si and a secret key sk TPA, verifies the data integrity of the data server S i.

データサーバ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]を生成する。
If abnormalities are observed in the data server S r, the alternative server S 'r is normal data server S of h stand i1, ..., from the coded blocks having the S ih (h <n), S r holds The coded block that has been restored is restored, or d coded blocks are newly generated.
Specifically, the data server S 'r receives the secret key sk S'R from the terminal C, first checks the integrity of the obtained coded blocks from each server. Next, the data server S ′ r extracts d encoded blocks F * S′r = {(c rj )} j } [1, d] stored therein from the acquired normal encoded blocks. Generate the corresponding d tags T * S′r = {(t rj )} j } [1, d] .

[ネットワークコーディング]
端末Cは、対象ファイルFを、冗長性を持つ符号化ブロックに分割し、n台のデータサーバSにd個ずつ格納する。
端末Cは、まず、ファイルFを次のように、m個のブロックvに分割する。

Figure 0006632959
以下、素数qを位数とする有限体をFとも表記し、素数qを位数とするz次元の有限体をF とも表記する。 [Network coding]
The terminal C divides the target file F into coded blocks having redundancy, and stores the coded blocks in n data servers S by d.
Terminal C, first, the file F as follows, divided into m blocks v k.
Figure 0006632959
Hereinafter, a finite field having a prime q as an order is also referred to as F q , and a z-dimensional finite field having a prime q as an order is also referred to as F q z .

続いて、端末Cは、次のように拡張ブロックwを生成する。なお、k番目の拡張ブロックwは、z+1からz+m番目の要素のうち、z+k番目の要素のみが「1」となり、この他が「0」となる。

Figure 0006632959
Subsequently, the terminal C generates an extension block wk as follows. In the k-th extended block w k , among the z + 1 to z + m-th elements, only the z + k-th element is “1”, and the others are “0”.
Figure 0006632959

次に、端末Cは、有限体Fからm個の係数α,…,αをランダムに選択し、線形結合により次の符号化ブロックcを生成する。

Figure 0006632959
Next, the terminal C randomly selects m coefficients α 1 ,..., Α m from the finite field F q and generates the next coding block c by linear combination.
Figure 0006632959

端末Cは、これらの符号化ブロックをデータサーバS,…,Sに配布する。
ここで、拡張ブロックwの最後のm個のベクトル要素は、k番目のみが1で、残りは0であることから、符号化ブロックcの最後のm個のベクトル要素から、エンコードの際に用いられた係数α,…,αが得られる。ファイルFを復元する際には、符号化ブロックの最初のz個のベクトル要素を取り出すと、次の式(1)が得られる。

Figure 0006632959
Terminal C, the data server S 1 these coded block, ..., and distributed to S n.
Here, as for the last m vector elements of the extended block w k , only the k-th element is 1 and the rest are 0, so that the last m vector elements of the encoded block c are used for encoding. The used coefficients α 1 ,..., Α m are obtained. When restoring the file F, the following equation (1) is obtained by extracting the first z vector elements of the coding block.
Figure 0006632959

m個の異なる符号化ブロックから、m個の式(1)が得られる。これらを解くことで、v,…,vが得られ、結合してF=v‖…‖vが復元される。
ここで、Fが復元可能であるためには、m個の式(1)が解を持つ必要があり、復元に利用されるm個の符号化ブロックの係数α,…,αのm個の組からなる行列のランクがmであることが条件となる。端末Cが十分に大きな素数qを選び、係数をランダムに選ぶと、この行列のランクは、十分に高い確率でmになることが知られている。
データサーバS(i∈[1,n])に問題が生じた場合、残りの正常なデータサーバSから符号化ブロックを収集し、これらを線形結合することで、新たな符号化ブロックが生成される。
From m different coded blocks, m equations (1) are obtained. By solving these, v 1, ..., v m is obtained, F = v 1 || ... ‖v m is restored bonded to.
In order F can be restored, must have the m of formula (1) collapsed, the coefficient alpha 1 of the m pieces of encoded blocks to be used for restoration, ..., of alpha m m The condition is that the rank of the matrix composed of the sets is m. It is known that if the terminal C selects a sufficiently large prime number q and randomly selects a coefficient, the rank of this matrix becomes m with a sufficiently high probability.
When a problem occurs in the data server S i (i∈ [1, n]), a new coded block is generated by collecting coded blocks from the remaining normal data servers S and linearly combining them. Is done.

[準同型MAC]
準同型MACは、ベクトル及びタグ(MAC)の2組のペア(v,t)及び(v,t)が与えられたとき、任意の係数α,α∈Fに対して、y=α+αであるベクトルyの有効なタグtが、t=α+αで計算できるという性質を備えている。
[Homomorphic MAC]
Given the two pairs of vectors and tags (MAC) (v 1 , t 1 ) and (v 2 , t 2 ), the homomorphic MAC is given by the arbitrary coefficients α 1 , α 2 ∈F q Thus, the effective tag t of the vector y in which y = α 1 v 1 + α 2 v 2 can be calculated by t = α 1 t 1 + α 2 t 2 .

鍵空間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の元を出力する疑似ランダム関数である。
Key space K F and then (q, z, m) as input, the secret key sk = (k 1, k 2 ), k 1 ∈F q z + m, and outputs a k 2 that is an element of the set K F, block (vector) w ∈ For F q z + m and block index k, the following tag t is homomorphic.
t = k 1 w + PRF (k 2 , k) ∈F q
Here, PRF is a pseudo-random function to output the elements of the finite field F q from a key selected from the key space K F [1, m] and.

m個のベクトル(w,…,w)の線形結合y=(y,…,yz+m)∈F z+mと、対応するm個のタグ(t,…,t)に同一の係数を用いた線形結合t∈Fとが保管されており、これらを検証する場合、秘密鍵sk=(k,k)を用いて、次式が成り立てばデータは正常と判定される。

Figure 0006632959
the m vectors (w 1, ..., w m ) the linear combination y = a (y 1, ..., y z + m) identical to ∈F q z + m, corresponding m pieces of tag (t 1, ..., t m ) to of are coefficients stored and the linear combination T∈F q using, when verifying them, using the secret key sk = (k 1, k 2 ), the data is judged to be normal Naritate the following formula You.
Figure 0006632959

[直交ベクトル生成]
直交ベクトルは、ベクトル集合w,…,w(w∈F z+m,k∈[1,m])が与えられたとき、任意のk∈[1,m]に対してwφ=0となるベクトルkφである。
[Orthogonal vector generation]
Orthogonal vector, vector set w 1, ..., w m ( w k ∈F q z + m, k∈ [1, m]) when given, w k k for any k∈ [1, m] The vector where φ = 0.

直交ベクトルを生成するためには、まず、ベクトル(w,…,w)によって張られる部分空間πを求める。続いて、行列M=[w,…,wを作り、行列Mのゼロ空間π を求める。
次に、π の基底ベクトルをz個(B,…,B∈F z+m)求め、F上のz個の乱数r(i∈[1,z])を用いて、次式によりkφを計算する。

Figure 0006632959
To generate orthogonal vectors, first, a vector (w 1, ..., w m ) determining the subspace [pi M spanned by. Subsequently, the matrix M = [w 1, ..., w m] to make a T, determine the zero space π M of the matrix M.
Next, z base vectors of π M } are obtained (B 1 ,..., B z ∈F q z + m ), and z random numbers r i (i∈ [1, z]) on F q are obtained. Calculate by the following equation.
Figure 0006632959

図2は、本実施形態に係る端末Cの機能構成を示すブロック図である。
端末Cは、分割部11と、第1鍵生成部12と、第2鍵生成部13と、格納部14とを備える。これらの各機能部は、制御部(例えば、CPU)が記憶部に格納されたプログラムを実行することにより実現される。
FIG. 2 is a block diagram illustrating a functional configuration of the terminal C according to the present embodiment.
The terminal C includes a division unit 11, a first key generation unit 12, a second key generation unit 13, and a storage unit 14. Each of these functional units is realized by a control unit (for example, a CPU) executing a program stored in a storage unit.

分割部11は、データサーバSに格納する対象ファイルFを、次のようにm個のz次元のブロックに分割する。
F=v‖…‖v,v∈F (ただし、k∈[1,m])
さらに、分割部11は、分割したブロックvそれぞれに対して、次のようにm次元のインデックスを付加したz+m次元の拡張ブロックwを生成する。

Figure 0006632959
The dividing unit 11 divides the target file F stored in the data server S into m z-dimensional blocks as follows.
F = v 1 ‖... ‖V m , v kた だ し F q z (where k∈ [1, m])
Further, the dividing unit 11 generates a z + m-dimensional extended block w k to which an m-dimensional index is added as follows for each of the divided blocks v k .
Figure 0006632959

第1鍵生成部12は、分割部11により生成された複数個のファイルブロックと同次元(z+m次元)の秘密鍵(第1鍵)kを有限体F z+mからランダムに生成する。また、第1鍵生成部12は、所定の鍵空間Kからランダムに秘密鍵kを選択する。 The first key generation unit 12 randomly generates a secret key (first key) k 1 of the plurality of file blocks of the same dimensions produced by the division unit 11 (z + m-dimensional) from finite F q z + m. The first key generation unit 12 selects the secret key k 2 at random from a predetermined key space K F.

第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}を自身の秘密鍵ペアとして保持する。
The second key generating unit 13, an orthogonal vector k phi for a plurality of file blocks that have been generated by the dividing unit 11 calculates a random (k φ ∈F q z + m cutlet k φ w k = 0, ∀k∈ [1 , M]), the sum of the secret key (first key) generated by the first key generation unit 12 and the orthogonal vector is generated as a secret key (second key) for an external device (k 3 = k 1). + k φ ∈F q z + m ).
The terminal C sends the secret key pair sk TPA = {k 2 , k 3 } to the verification device A via a secure communication path, and holds the sk C = {k 1 , k 2 } as its own secret key pair. I do.

また、第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’に送る。
The second key generation unit 13, when the data of the data server S r by the first determination unit 23 of the verification device A is determined to be abnormal with respect to the alternative server S 'r, a new secret key (the 2 key) k 4 = k 1 + k φr ≠ k 3 (k φr ∈F q z + m and k φr w k = 0, ∀k∈ [1, m]) to generate.
The terminal C sends the new secret key pair sk S′r = {k 2 , k 4 } to the data server S ′ r via a secure communication path.

格納部14は、分割部11により生成された複数個のファイルブロックを線形結合した符号化ブロックをnd個生成する。ここで、nは、データサーバSの数であり、d(<n)は、各データサーバSに格納される符号化ブロックの数である。
具体的には、格納部14は、i∈[1,n],j∈[1,d]に対して、有限体Fからランダムにm個の係数αijkを生成し、次のように、符号化ブロックを算出する。

Figure 0006632959
The storage unit 14 generates nd encoded blocks obtained by linearly combining a plurality of file blocks generated by the dividing unit 11. Here, n is the number of data servers S, and d (<n) is the number of encoded blocks stored in each data server S.
Specifically, the storage unit 14 randomly generates m coefficients α ijk from the finite field F q for i∈ [1, n], j∈ [1, d], and , Calculate the coded block.
Figure 0006632959

さらに、格納部14は、所定の演算により算出される準同型のタグ(MAC)を生成し、符号化ブロックcij及びタグtijの組み合わせを、データサーバSに複数(d組)格納する。
タグを生成するための所定の演算は、例えば、次のように、秘密鍵kと符号化ブロックとの内積、及び秘密鍵kと、符号化ブロックが格納されるサーバ及びサーバ内の順位を示すインデックスi,jとを入力とした擬似ランダム関数(PRF:K×[1,n]‖[1,d]→F)の和である。

Figure 0006632959
Further, storage unit 14 generates a homomorphic tag (MAC) that is calculated by a predetermined calculation, the combination of coding blocks c ij and tag t ij, multiple data servers S i (d set) stores .
Predetermined operation for generating a tag, for example, as follows: inner product of the secret key k 1 and coding blocks, and the secret key k 2, rank in the server and the server that coded block is stored Is the sum of the pseudo-random functions (PRF: K F × [1, n] ‖ [1, d] → F q ) that have the index i, j indicating that
Figure 0006632959

図3は、本実施形態に係る検証装置Aの機能構成を示すブロック図である。
検証装置Aは、第1送信部21と、第1受信部22と、第1判定部23とを備える。これらの各機能部は、制御部(例えば、CPU)が記憶部に格納されたプログラムを実行することにより実現される。
FIG. 3 is a block diagram illustrating a functional configuration of the verification device A according to the present embodiment.
The verification device A includes a first transmission unit 21, a first reception unit 22, and a first determination unit 23. Each of these functional units is realized by a control unit (for example, a CPU) executing a program stored in a storage unit.

第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毎に、また、定期的に実行される検証処理の度に異なっていてよい。
The first transmission unit 21 transmits a set of random numbers as a challenge to the data server S.
At this time, the first transmission unit 21 randomly selects one or more (s) encoded blocks stored in the data server S and transmits a challenge to each of the data servers S.
Specifically, the first transmission unit 21 selects an integer s {[1, d], and sets s sets of challenge challenge = {(b 1 , β 1 ),..., (B s , β s )}. It generates and transmits to the data server S i to. Here, for each u∈ [1, s], b u is randomly selected from [1, d] without duplication, and β u is randomly selected from the finite field F q . Note that s may be different for each data server S, and for each verification process that is periodically executed.

第1受信部22は、チャレンジを送信したデータサーバSから、乱数の組を係数とした次のような符号化ブロックの線形結合cと、タグの線形結合tとをレスポンスとして受信する。

Figure 0006632959
The first receiving unit 22 receives, as a response, a linear combination c i of the following coded block using a set of random numbers as a coefficient and a linear combination t i of a tag from the data server S i that transmitted the challenge. .
Figure 0006632959

第1判定部23は、レスポンスとして受信した符号化ブロックの線形結合cに対して、端末Cから受け取った秘密鍵(第2鍵)kを用いた所定の演算により算出したタグを、受信したタグの線形結合tと比較する。そして、第1判定部23は、次のように等式が成り立つ場合にデータサーバSのデータを正常と判定し、両者が異なる場合にデータサーバSのデータを異常と判定する。

Figure 0006632959
なお、右辺第1項「k」は、「k=(k+kφ)c=k」となるため、秘密鍵kを知らない検証装置Aが自身の秘密鍵kにより、端末Cに代わって検証を行える。 The first determination unit 23, with respect to the linear combination c i of the coded block received as a response, a tag calculated by a predetermined calculation using the secret key (second key) k 3 received from the terminal C, the receiving With the linear combination t i of the resulting tags. The first determination unit 23 determines that the normal data of the data server S i when as follows equality holds, determines data of the data server S i to be abnormal when they are different.
Figure 0006632959
The first term on the right side, "k 3 c i" is "k 3 c i = (k 1 + k φ) c i = k 1 c i ", and therefore, the verification apparatus A does not know the secret key k 1 is itself by the secret key k 3, perform the verification on behalf of the terminal C.

図4は、本実施形態に係るデータサーバSの機能構成を示すブロック図である。
データサーバSは、記憶部31と、応答部32とを備える。さらに、データの異常が認められたデータサーバSの代替となる新たなデータサーバS(代替サーバ)は、第2送信部33と、第2受信部34と、第2判定部35と、修復部36とを備える。これらの各機能部は、制御部(例えば、CPU)が記憶部に格納されたプログラムを実行することにより実現される。
FIG. 4 is a block diagram illustrating a functional configuration of the data server S according to the present embodiment.
The data server S includes a storage unit 31 and a response unit 32. Further, a new data server S (alternative server) as a substitute for the data server S in which the data abnormality is recognized includes a second transmission unit 33, a second reception unit 34, a second determination unit 35, and a restoration unit. 36. Each of these functional units is realized by a control unit (for example, a CPU) executing a program stored in a storage unit.

記憶部31は、端末Cから受信した符号化ブロックとタグの組を複数(d組)記憶する。
応答部32は、検証装置A又は他のデータサーバSから受信したチャレンジに対して、乱数βの組を係数とした、符号化ブロックの線形結合及びタグの線形結合を応答する。
The storage unit 31 stores a plurality (d sets) of pairs of encoded blocks and tags received from the terminal C.
The response unit 32 responds to the challenge received from the verification device A or another data server S with a linear combination of encoded blocks and a linear combination of tags using a set of random numbers β as coefficients.

第2送信部33は、検証装置Aの第1送信部21と同様に、自身と異なる他のデータサーバSに対して、このデータサーバSに格納されている符号化ブロックをランダムに1又は複数選択し、チャレンジとして乱数の組を送信する。   Similarly to the first transmission unit 21 of the verification device A, the second transmission unit 33 randomly transmits one or a plurality of encoded blocks stored in the data server S to another data server S different from itself. Select and send a set of random numbers as a challenge.

第2受信部34は、検証装置Aの第1受信部22と同様に、チャレンジを送信したデータサーバSから、乱数の組を係数とした、符号化ブロックの線形結合及びタグの線形結合をレスポンスとして受信する。   Similarly to the first receiving unit 22 of the verification device A, the second receiving unit 34 responds to the linear combination of the coded blocks and the linear combination of the tags using the set of random numbers as a coefficient from the data server S that transmitted the challenge. As received.

第2判定部35は、検証装置Aの第1判定部23と同様に、受信した符号化ブロックの線形結合に対して、端末Cから受信した秘密鍵(第2鍵)kを用いた所定の演算により算出したタグを、受信したタグの線形結合と比較する。そして、第2判定部35は、次のように等式が成り立つ場合に取得した符号化ブロックを正常と判定し、両者が異なる場合に異常と判定する。

Figure 0006632959
The second determination unit 35, similarly to the first determination unit 23 of the verification device A, with respect to the linear combination of the received coded blocks, using the secret key (second key) k 4 received from the terminal C given Is compared with the linear combination of the received tags. Then, the second determination unit 35 determines that the acquired coded block is normal when the equation is satisfied as follows, and determines that the coded block is abnormal when the two are different.
Figure 0006632959

修復部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から取得してもよい。
The restoration unit 36 sets a linear combination of the encoded blocks received from the h data servers S determined to be normal by the second determination unit 35 as a new encoded block.
Here, as the number h of normal data servers S, a value that satisfies the condition of “ceil (m / d) ≦ h <n” (ceil (x) is a minimum integer equal to or larger than x) is selected.
The verification process by the second transmission unit 33, the second reception unit 34, and the second determination unit 35 is repeated until the restoration unit 36 obtains d new encoded blocks from the h normal data servers S. The value of the challenge for the same data server S is assumed to be different each time.
The restoration unit 36 may acquire the verified encoded block from the verification device A.

修復部36は、d個の新たな符号化ブロックRc={ci1,…cid}に対して、それぞれ新たな秘密鍵(第2鍵)kを用いた所定の演算により新たなd個のタグtrjを、次のように計算する。
rj=crj+PRF(k,r‖j)
修復部36は、符号化ブロックとタグとの組み合わせ{crj,trj}(ただし、j∈[1,d])を、記憶部31に格納する。
Repair 36, d pieces of a new coded block Rc = {c i1, ... c id} respect, new d items by a predetermined calculation using a new secret key (second key) k 4 respectively Is calculated as follows.
t rj = c rj k 4 + PRF (k 2, r‖j)
The restoration unit 36 stores the combination {c rj , tr j } (where j∈ [1, d]) of the coded block and the tag in the storage unit 31.

図5は、本実施形態に係る格納処理を示すフローチャートである。
なお、本処理に先立って、端末Cは、第1鍵生成部12により自身の秘密鍵を生成しているものとする。
FIG. 5 is a flowchart illustrating the storage processing according to the present embodiment.
It is assumed that the terminal C has generated its own secret key by the first key generation unit 12 prior to this processing.

ステップS1において、端末C(分割部11)は、対象ファイルを素数qを位数として持つz次元の有限体の要素からなるm個のブロック(ベクトル)vに分割する。
ステップS2において、端末C(分割部11)は、ステップS1で分割した各ブロックにm次元のインデックスを付加してm個の拡張ブロックwを生成する。
In step S1, the terminal C (division unit 11) divides the target file into m blocks (vectors) v composed of elements of a z-dimensional finite field having a prime q as an order.
In step S2, the terminal C (divider 11) adds an m-dimensional index to each block divided in step S1 to generate m extended blocks w.

ステップS3において、端末C(格納部14)は、ランダムなm個の係数を用いて、ステップS2で生成したm個の拡張ブロックを線形結合した符号化ブロックを生成する。
ステップS4において、端末C(格納部14)は、ステップS3で生成した符号化ブロックそれぞれに対して、準同型のタグを生成する。
In step S3, the terminal C (the storage unit 14) generates an encoded block in which the m extended blocks generated in step S2 are linearly combined using m random coefficients.
In step S4, the terminal C (the storage unit 14) generates a homomorphic tag for each of the encoded blocks generated in step S3.

ステップS5において、端末C(格納部14)は、符号化ブロック及びタグをnd個ずつ生成したか否かを判定する。この判定がYESの場合、処理はステップS6に移り、判定がNOの場合、処理はステップS3に移る。   In step S5, the terminal C (the storage unit 14) determines whether or not nd encoded blocks and nd tags have been generated. If the determination is YES, the process proceeds to step S6, and if the determination is NO, the process proceeds to step S3.

ステップS6において、端末C(格納部14)は、符号化ブロック及びタグの組を、n台のデータサーバSそれぞれにd組ずつ送信する。   In step S6, the terminal C (the storage unit 14) transmits a set of the coding block and the tag to each of the n data servers S by d sets.

図6は、本実施形態に係る検証処理を示すシーケンス図である。
本処理は、各データサーバS(i=1,…,n)に対して定期的に実行される。
なお、本処理に先立って、端末Cは、第2鍵生成部により検証装置Aの秘密鍵を生成し、検証装置Aへ提供しているものとする。
FIG. 6 is a sequence diagram illustrating the verification processing according to the present embodiment.
This process is periodically executed for each data server S i (i = 1,..., N).
It is assumed that, prior to this processing, the terminal C generates a secret key of the verification device A by the second key generation unit and provides the secret key to the verification device A.

ステップS11において、検証装置A(第1送信部21)は、データサーバSに格納されているd個の符号化ブロックのうち、検証の対象とする数sを選択する。
ステップS12において、検証装置A(第1送信部21)は、s個のインデックスb(u=1,…,s)をランダムに[1,d]から重複なく選択する。
ステップS13において、検証装置A(第1送信部21)は、s個の乱数βを生成する。
In step S11, the verification device A (the first transmission unit 21) selects the number s to be verified from the d encoded blocks stored in the data server S.
In step S12, the verification device A (first transmission unit 21) randomly selects s indices b u (u = 1,..., S) from [1, d] without duplication.
In step S13, the verification device A (first transmission unit 21) generates s random numbers β u .

ステップS14において、検証装置A(第1送信部21)は、チャレンジ{(b,β),…,(b,β)}をi番目のデータサーバSに送信する。 In step S14, the verification device A (first transmission unit 21), the challenge {(b 1, β 1) , ..., (b s, β s)} transmits to the i-th data server S i.

ステップS15において、データサーバS(応答部32)は、ステップS14のチャレンジにより指定されたs個の符号化ブロック(b番目)を線形結合する。
ステップS16において、データサーバS(応答部32)は、ステップS14のチャレンジにより指定されたs個のタグ(b番目)を線形結合する。
In step S15, the data server S i (response unit 32) linearly combines the s encoded blocks ( bu- th) specified by the challenge in step S14.
In step S16, the data server S i (response unit 32) linearly combines the s tags ( bu- th) specified by the challenge in step S14.

ステップS17において、データサーバS(応答部32)は、ステップS15で生成した符号化ブロックの線形結合cと、タグの線形結合tとを、ステップS14のチャレンジに対するレスポンスとして送信し、検証装置A(第1受信部22)が受信する。 In step S17, the data server S i (response unit 32) transmits the linear combination c i of the coded block generated in step S15 and the linear combination t i of the tag as a response to the challenge in step S14, and performs verification. The device A (first receiving unit 22) receives the data.

ステップS18において、検証装置A(第1判定部23)は、データサーバSに送信したチャレンジ、端末Cから提供された秘密鍵、及びステップS17でレスポンスとして受信した符号化ブロックの線形結合cを用いて、タグを算出する。
ステップS19において、検証装置A(第1判定部23)は、ステップS18で算出したタグと、ステップS17でレスポンスとして受信したタグの線形結合tとを比較し、データサーバSに格納されているデータの完全性を検証する。
In step S18, the verification device A (first determination unit 23), the data server S i transmitted challenge, the private key provided by the terminal C, and a linear combination c i of the coded block received as a response in step S17 Is used to calculate the tag.
In step S19, the verification device A (first determination unit 23) compares the tag calculated in step S18, and a linear combination t i tags received as a response in step S17, is stored in the data server S i Verify the integrity of existing data.

図7は、本実施形態に係る修復処理を示すフローチャートである。
本処理は、異常が認められたデータサーバSに代えて設けられるデータサーバS’において、検証装置Aからの指示に応じて実行される。
なお、本処理に先立って、端末Cは、第2鍵生成部によりデータサーバS’の秘密鍵を生成し、データサーバS’へ提供しているものとする。
FIG. 7 is a flowchart illustrating the repair processing according to the present embodiment.
This process, in the data server S 'r which is provided in place of the abnormality is observed data server S r, is executed in response to an instruction from the verification device A.
Prior to the present process, the terminal C, the second key generating unit 'generates a secret key of r, the data server S' data server S is assumed to be provided to r.

ステップS21において、データサーバS’(第2送信部33)は、他のデータサーバS、及びデータサーバSに格納されている符号化ブロックの組をランダムに選択する。
ステップS22において、データサーバS’(第2送信部33)は、ステップS21で選択したデータサーバSに対して、検証処理(図6)と同様のチャレンジを送信する。
ステップS23において、データサーバS’(第2受信部34)は、データサーバSから、検証処理(図6)と同様のレスポンスを受信する。
In step S21, the data server S ′ r (second transmitting unit 33) randomly selects another data server S i and a set of coding blocks stored in the data server S i .
In step S22, the data server S 'r (second transmission portion 33), to the data server S i selected in the step S21, and transmits the same challenge and verification process (FIG. 6).
In step S23, the data server S 'r (second reception unit 34) from the data server S i, receives the same response as the verification process (FIG. 6).

ステップS24において、データサーバS’(第2判定部35)は、検証処理(図6)と同様の手順により、秘密鍵を用いて算出したタグとレスポンスのタグとを比較し、データサーバS’から取得したデータ(符号化ブロックの線形結合)が正常か否かを判定する。この判定がYESの場合、処理はステップS25に移り、判定がNOの場合、処理はステップS21に移る。 In step S24, the data server S ′ r (second determination unit 35) compares the tag calculated using the secret key with the tag of the response according to the same procedure as the verification process (FIG. 6), and 'It is determined whether or not the data (linear combination of encoded blocks) obtained from r is normal. If the determination is YES, the process proceeds to step S25, and if the determination is NO, the process proceeds to step S21.

ステップS25において、データサーバS’(修復部36)は、ステップS24で正常と判定された、データサーバSで線形結合により生成された符号化ブロックを、d個取得できたか否かを判定する。この判定がYESの場合、処理はステップS26に移り、判定がNOの場合、処理はステップS21に移る。 In step S25, the data server S 'r (restoration unit 36) has been determined to be normal in step S24, the coding block generated by linear combination with the data server S i, determines whether or not d items acquired I do. If the determination is YES, the process proceeds to step S26, and if the determination is NO, the process proceeds to step S21.

ステップS26において、データサーバS’(修復部36)は、取得した符号化ブロックのそれぞれに対して、自身の秘密鍵を用いてタグを生成する。
ステップS27において、データサーバS’(修復部36)は、符号化ブロック及びタグの組み合わせd組を記憶部31に格納する。
In step S26, the data server S ′ r (repair unit 36) generates a tag for each of the obtained encoded blocks using its own secret key.
In step S27, the data server S ′ r (repair unit 36) stores the combination d of the combination of the encoded block and the tag in the storage unit 31.

本実施形態によれば、検証システム1は、端末Cが直交ベクトルを用いて検証装置Aの秘密鍵を生成することにより、検証装置Aが端末Cの代理として、データサーバSに格納されたデータの完全性を検証できる。
また、検証システム1は、ネットワークコーディングの技術を用いて複数のデータサーバSに分散して符号化ブロックを格納し、効率的に復元可能とした。さらに、検証システム1は、準同型MACにより、チャレンジ及びレスポンスを用いたPORの手順を構築したので、データを秘匿したままの演算で処理負荷を低減しつつ、十分な検証精度を得られる。
According to the present embodiment, the verification system 1 uses the terminal C to generate the secret key of the verification device A using the orthogonal vector, so that the verification device A Can verify the completeness of
In addition, the verification system 1 uses a network coding technique to store the coded blocks in a distributed manner among the plurality of data servers S, thereby enabling efficient restoration. Furthermore, since the verification system 1 has constructed a POR procedure using a challenge and a response by the homomorphic MAC, sufficient verification accuracy can be obtained while reducing the processing load in the calculation while keeping the data secret.

検証システム1は、データサーバSに格納された一部の符号化ブロックをランダムに検証するので、高い精度を確保しつつ処理を効率化できる。さらに、検証システム1は、処理の効率性と検証精度とのバランスを、状況に応じて適切に設定できる。   Since the verification system 1 randomly verifies some of the encoded blocks stored in the data server S, the processing can be performed efficiently while ensuring high accuracy. Further, the verification system 1 can appropriately set the balance between the processing efficiency and the verification accuracy according to the situation.

検証システム1は、端末Cが直交ベクトルを用いてデータサーバSの秘密鍵を生成することにより、データサーバSにおいて正常な符号化ブロックからタグを生成する。これにより、端末Cの処理負荷が低減され、検証システム1は、容易に新たなデータサーバS(代替サーバ)の格納データを再生成できる。
さらに、検証システム1は、データサーバSにおいて、PORの手順により符号化ブロックを検証できるので、端末C及び検証装置Aを介さずに、データサーバS間で正常な符号化ブロックを自立的に取得できる。
このとき、データサーバSは、検証装置Aと同様に、他のデータサーバSに格納された一部の符号化ブロックをランダムに検証するので、高い精度を確保しつつ処理を効率化できる。
The verification system 1 generates a tag from a normal encoded block in the data server S when the terminal C generates a secret key of the data server S using the orthogonal vector. Thereby, the processing load on the terminal C is reduced, and the verification system 1 can easily regenerate the storage data of the new data server S (alternate server).
Further, since the verification system 1 can verify the encoded block by the POR procedure in the data server S, a normal encoded block can be independently obtained between the data servers S without passing through the terminal C and the verification device A. it can.
At this time, similarly to the verification device A, the data server S randomly verifies some of the encoded blocks stored in the other data servers S, so that the processing can be performed efficiently while ensuring high accuracy.

検証システム1は、秘密鍵と符号化ブロックとの内積、及び擬似ランダム関数を用いることにより、データサーバS及びこのサーバ内の符号化ブロック位置に固有のタグを容易に生成でき、効率的に精度良くデータの完全性を検証できる。   The verification system 1 can easily generate a tag unique to the data server S and the position of the encoded block in the server by using the inner product of the secret key and the encoded block, and the pseudo-random function, and efficiently perform the accuracy. Good data integrity can be verified.

検証システム1は、ファイルブロックにインデックスを付加した拡張ブロックを生成することにより、線形結合の係数を容易に抽出できるので、効率的にファイルを復元できる。   The verification system 1 can easily extract linear combination coefficients by generating an extended block in which an index is added to a file block, and thus can efficiently restore a file.

以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。   The embodiments of the present invention have been described above, but the present invention is not limited to the above-described embodiments. Further, the effects described in the present embodiment merely enumerate the most preferable effects resulting from the present invention, and the effects according to the present invention are not limited to those described in the present embodiment.

検証システム1による検証方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。   The verification method by the verification system 1 is realized by software. When realized by software, a program constituting the software is installed in an information processing device (computer). Further, these programs may be recorded on a removable medium such as a CD-ROM and distributed to the user, or may be distributed by being downloaded to the user's computer via a network. Furthermore, these programs may be provided to a user's computer as a Web service via a network without being downloaded.

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 修復部
Reference Signs List A verification device C terminal S data server 1 verification system 11 division unit 12 first key generation unit 13 second key generation unit 14 storage unit 21 first transmission unit 22 first reception unit 23 first determination unit 31 storage unit 32 response unit 33 second transmission section 34 second reception section 35 second determination section 36 restoration section

Claims (9)

端末が複数のデータサーバに格納したデータそれぞれの完全性を、検証装置により検証する検証システムであって、
前記端末は、
対象ファイルを、素数を位数として持つ有限体上のベクトル空間の要素からなる複数個のファイルブロックに分割する分割部と、
前記複数個のファイルブロックのベクトル空間と同次元の第1鍵を生成する第1鍵生成部と、
前記複数個のファイルブロックに対する直交ベクトルを算出し、前記第1鍵と前記直交ベクトルとの和を、第2鍵として生成する第2鍵生成部と、
前記複数個のファイルブロックを線形結合した符号化ブロック、及び当該符号化ブロックと前記第1鍵との内積を含む所定の演算により算出される準同型のメッセージ認証符号の組み合わせを、前記データサーバに複数格納する格納部と、を備え、
前記検証装置は、
前記データサーバに対するチャレンジとして、乱数の組を送信する第1送信部と、
前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第1受信部と、
前記符号化ブロックの線形結合に対して、前記第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第1判定部と、を備え、
前記データサーバは、
前記符号化ブロックを複数記憶する記憶部と、
前記チャレンジに対して、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合を応答する応答部と、を備える検証システム。
A verification system that verifies the integrity of each of the data stored in the plurality of data servers by the terminal using a verification device,
The terminal is
A dividing unit that divides the target file into a plurality of file blocks composed of elements of a vector space on a finite field having a prime as an order;
A first key generation unit that generates a first key having the same dimension as the vector space of the plurality of file blocks;
A second key generation unit that calculates an orthogonal vector for the plurality of file blocks and generates a sum of the first key and the orthogonal vector as a second key;
An encoding block obtained by linearly combining the plurality of file blocks, and a combination of a homomorphic message authentication code calculated by a predetermined operation including an inner product of the encoding block and the first key, to the data server. And a storage unit for storing a plurality of storage units,
The verification device,
A first transmission unit that transmits a set of random numbers as a challenge to the data server;
A first receiving unit that receives, as a response, a linear combination of the encoding block and a linear combination of the message authentication code, using the set of random numbers as a coefficient, from the data server,
For the linear combination of the encoded blocks, the message authentication code calculated by the predetermined operation using the second key is compared with the linear combination of the received message authentication codes, and when they are equal, the data server A first determination unit that determines that the data is normal, and determines that the data of the data server is abnormal when the data is different,
The data server comprises:
A storage unit that stores a plurality of the encoded blocks,
And a response unit that responds to the challenge with a linear combination of the encoding block and a linear combination of the message authentication code using the set of random numbers as a coefficient.
前記第1送信部は、前記データサーバのそれぞれに対して、当該データサーバに格納されている前記符号化ブロックをランダムに1又は複数選択し、前記チャレンジを送信する請求項1に記載の検証システム。   The verification system according to claim 1, wherein the first transmission unit randomly selects one or a plurality of the coded blocks stored in the data server and transmits the challenge to each of the data servers. . 前記第1判定部により前記データサーバのデータが異常と判定された場合に、
前記端末は、代替サーバに対して、新たな第2鍵を通知し、
前記代替サーバは、
正常と判定された前記データサーバから受信した前記符号化ブロックの線形結合を新たな符号化ブロックとし、当該符号化ブロック、及び当該符号化ブロックに対して前記新たな第2鍵を用いた前記所定の演算により算出した新たなメッセージ認証符号の組み合わせを複数格納する修復部を備える請求項1又は請求項2に記載の検証システム。
When the data of the data server is determined to be abnormal by the first determination unit,
The terminal notifies the alternative server of the new second key,
The alternative server,
The linear combination of the encoded blocks received from the data server determined to be normal is set as a new encoded block, and the encoded block, and the predetermined using the new second key for the encoded block. 3. The verification system according to claim 1, further comprising a restoration unit that stores a plurality of combinations of the new message authentication codes calculated by the calculation.
前記代替サーバは、
前記データサーバに対するチャレンジとして、乱数の組を送信する第2送信部と、
前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第2受信部と、
前記符号化ブロックの線形結合に対して、前記新たな第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第2判定部と、を備える請求項3に記載の検証システム。
The alternative server,
A second transmission unit that transmits a set of random numbers as a challenge to the data server;
A second receiving unit that receives, as a response, a linear combination of the encoding block and a linear combination of the message authentication code, using the set of random numbers as a coefficient from the data server.
For the linear combination of the coded blocks, the message authentication code calculated by the predetermined operation using the new second key is compared with the linear combination of the received message authentication codes, and if they are equal, the data 4. The verification system according to claim 3, further comprising: a second determination unit that determines that the data of the server is normal and determines that the data of the data server is abnormal when the data is different.
前記第2送信部は、前記データサーバのそれぞれに対して、当該データサーバに格納されている前記符号化ブロックをランダムに1又は複数選択し、前記チャレンジを送信する請求項4に記載の検証システム。   The verification system according to claim 4, wherein the second transmission unit randomly selects one or a plurality of the encoded blocks stored in the data server and transmits the challenge to each of the data servers. . 前記所定の演算は、前記複数個のファイルブロックのベクトル空間と同次元の鍵と、前記符号化ブロックとの内積、並びに所定の鍵空間から選択された鍵と、前記符号化ブロックが格納されているサーバ及び順位を示すインデックスとを入力とした擬似ランダム関数の和である請求項1から請求項4のいずれかに記載の検証システム。   The predetermined operation includes a key having the same dimension as the vector space of the plurality of file blocks, an inner product of the encoded block, and a key selected from a predetermined key space, and the encoded block being stored. The verification system according to any one of claims 1 to 4, wherein the verification system is a sum of pseudo-random functions using the input server and the index indicating the rank. 前記分割部は、対象ファイルを、素数qを位数として持つz次元の有限体の要素からなるm個のブロックに分割し、当該ブロックそれぞれに対して、m次元のインデックスを付加したz+m次元の拡張ブロックを、前記ファイルブロックとして生成する請求項1から請求項6のいずれかに記載の検証システム。   The dividing unit divides the target file into m blocks each having an element of a z-dimensional finite field having a prime number q as an order, and assigns an m-dimensional index to each of the blocks. The verification system according to claim 1, wherein an extension block is generated as the file block. 端末が複数のデータサーバに格納したデータそれぞれの完全性を、検証装置により検証する検証方法であって、
前記端末が、
対象ファイルを、素数を位数として持つ有限体上のベクトル空間の要素からなる複数個のファイルブロックに分割する分割ステップと、
前記複数個のファイルブロックのベクトル空間と同次元の第1鍵を生成する第1鍵生成ステップと、
前記複数個のファイルブロックに対する直交ベクトルを算出し、前記第1鍵と前記直交ベクトルとの和を、第2鍵として生成する第2鍵生成ステップと、
前記複数個のファイルブロックを線形結合した符号化ブロック、及び当該符号化ブロックと前記第1鍵との内積を含む所定の演算により算出される準同型のメッセージ認証符号の組み合わせを、前記データサーバに複数格納する格納ステップと、を実行し、
前記検証装置が、
前記データサーバに対するチャレンジとして、乱数の組を送信する第1送信ステップと、
前記データサーバから、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合をレスポンスとして受信する第1受信ステップと、
前記符号化ブロックの線形結合に対して、前記第2鍵を用いた前記所定の演算により算出したメッセージ認証符号を、受信した前記メッセージ認証符号の線形結合と比較し、等しい場合に前記データサーバのデータを正常と判定し、異なる場合に前記データサーバのデータを異常と判定する第1判定ステップと、を実行し、
前記データサーバが、
前記符号化ブロックを複数記憶する記憶ステップと、
前記チャレンジに対して、前記乱数の組を係数とした、前記符号化ブロックの線形結合及び前記メッセージ認証符号の線形結合を応答する応答ステップと、を実行する検証方法。
A verification method for verifying the integrity of each data stored in the plurality of data servers by the terminal by a verification device,
Said terminal,
A dividing step of dividing the target file into a plurality of file blocks composed of elements of a vector space on a finite field having a prime as an order;
A first key generation step of generating a first key having the same dimension as the vector space of the plurality of file blocks;
A second key generation step of calculating an orthogonal vector for the plurality of file blocks, and generating a sum of the first key and the orthogonal vector as a second key;
An encoding block obtained by linearly combining the plurality of file blocks, and a combination of a homomorphic message authentication code calculated by a predetermined operation including an inner product of the encoding block and the first key, to the data server. Performing a plurality of storing steps; and
The verification device,
A first transmission step of transmitting a set of random numbers as a challenge to the data server;
A first receiving step of receiving, as a response, a linear combination of the encoding block and a linear combination of the message authentication code from the data server, using the set of random numbers as a coefficient,
For the linear combination of the encoded blocks, the message authentication code calculated by the predetermined operation using the second key is compared with the linear combination of the received message authentication codes, and when they are equal, the data server A first determining step of determining that the data is normal, and determining that the data of the data server is abnormal when the data is different,
The data server comprises:
A storage step of storing a plurality of the encoded blocks;
A response step of responding to the challenge with a linear combination of the encoded blocks and a linear combination of the message authentication codes, using the set of random numbers as coefficients.
コンピュータを、請求項1から請求項7のいずれかに記載の検証システムの各部として機能させるための検証プログラム。   A verification program for causing a computer to function as each unit of the verification system according to claim 1.
JP2016234925A 2016-12-02 2016-12-02 Verification system, verification method and verification program Active JP6632959B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016234925A JP6632959B2 (en) 2016-12-02 2016-12-02 Verification system, verification method and verification program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016234925A JP6632959B2 (en) 2016-12-02 2016-12-02 Verification system, verification method and verification program

Publications (2)

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

Family

ID=62566446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016234925A Active JP6632959B2 (en) 2016-12-02 2016-12-02 Verification system, verification method and verification program

Country Status (1)

Country Link
JP (1) JP6632959B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108985102A (en) * 2018-06-22 2018-12-11 中国电子科技集团公司电子科学研究院 Data integrity verification method, device, system and storage medium
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
CN111814137B (en) * 2020-06-29 2024-03-22 深圳市海邻科信息技术有限公司 Operation and maintenance method, operation and maintenance system and storage medium of terminal
AU2021478663A1 (en) * 2021-12-16 2024-06-13 Nippon Telegraph And Telephone Corporation Detection system, detection method, and detection program

Also Published As

Publication number Publication date
JP2018093363A (en) 2018-06-14

Similar Documents

Publication Publication Date Title
JP6632959B2 (en) Verification system, verification method and verification program
JP5860556B1 (en) Inconsistency detection method, inconsistency detection system, inconsistency detection apparatus, and program
JP6034927B1 (en) Secret calculation system, secret calculation device, and program
Li et al. OPoR: Enabling proof of retrievability in cloud computing with resource-constrained devices
US20160335924A1 (en) Secret calculation method, secret calculation system, random permutation device, and program
JP5860557B1 (en) Secret disclosure method, secret disclosure system, secret disclosure device, and program
US10873631B2 (en) Method for storing data in a cloud and network for carrying out the method
JP5968484B1 (en) Share recovery system, share recovery method, and program
WO2014112550A1 (en) Tampering detection device, tampering detection method, and program
CN110602147A (en) Data encryption safe storage method, system and storage medium based on cloud platform
CN110048851B (en) Method and device for generating and verifying multilayer linkable ring signature in block chain
WO2016104476A1 (en) Secret falsification detection system, secret calculation device, secret falsification detection method, and program
US20150023498A1 (en) Byzantine fault tolerance and threshold coin tossing
JP5961561B2 (en) Distributed management device, restoration device, party device, and program
JP6053238B2 (en) Secret falsification detection system, secret calculation device, secret falsification detection method, and program
US11329808B2 (en) Secure computation device, secure computation authentication system, secure computation method, and program
JP5889454B1 (en) Distributed value conversion system, distributed value conversion apparatus, distributed value conversion method, and program
CN115499150A (en) Method and system for auditing integrity of edge data
Zage et al. Utilizing linear subspaces to improve cloud security
KR20150002821A (en) Method for protecting confidentiality of a file distributed and stored at a plurality of storage service providers
JP6885467B2 (en) Share generation device, share conversion device, secret calculation system, share generation method, share conversion method, program, and recording medium
Omote et al. D2-POR: direct repair and dynamic operations in network coding-based proof of retrievability
Aparna et al. Secure deduplication for images using blockchain
IIPS et al. Reliable and enhanced third party auditing in cloud server data storage
Mao et al. Parallel checking of content integrity in multi‐cloud storage of heterogeneous sensor systems

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