JP2023182383A - Data retention certification system and data retention certification method - Google Patents
Data retention certification system and data retention certification method Download PDFInfo
- Publication number
- JP2023182383A JP2023182383A JP2022095954A JP2022095954A JP2023182383A JP 2023182383 A JP2023182383 A JP 2023182383A JP 2022095954 A JP2022095954 A JP 2022095954A JP 2022095954 A JP2022095954 A JP 2022095954A JP 2023182383 A JP2023182383 A JP 2023182383A
- Authority
- JP
- Japan
- Prior art keywords
- data
- terminal
- target data
- polynomial
- verification target
- 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.)
- Pending
Links
- 230000014759 maintenance of location Effects 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004364 calculation method Methods 0.000 claims abstract description 74
- 238000012795 verification Methods 0.000 claims description 39
- 238000006467 substitution reaction Methods 0.000 abstract 2
- 230000004044 response Effects 0.000 description 39
- 230000008569 process Effects 0.000 description 21
- 210000004899 c-terminal region Anatomy 0.000 description 20
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
Images
Abstract
Description
本発明は、データ保持証明システム及びデータ保持証明方法に関する。 The present invention relates to a data retention certification system and a data retention certification method.
近年、種々のデータから未知の、かつ有用な知識を引き出すデータ分析が注目を集めている。企業は自社保有のデータはもとより、他社を含む社外のデータも収集し、マーケティングや業務効率化に活用するなど、情報の種々の分析がますます重要な活動として認識されるようになっている。 In recent years, data analysis, which extracts unknown and useful knowledge from various data, has been attracting attention. Companies are collecting not only their own data but also data from outside the company, including those of other companies, and analyzing information in various ways, such as using it for marketing and improving operational efficiency, is becoming increasingly recognized as an important activity.
情報利活用やそのための情報流通への期待が高まる中、扱われる情報には機微情報及び個人情報などの、漏洩や改ざんなどセキュリティ攻撃にさらされてはならない情報が多々含まれる。 As expectations for information utilization and information distribution for that purpose are increasing, the information being handled often includes sensitive information, personal information, and other information that must not be exposed to security attacks such as leakage or falsification.
データ所有者がクラウドやデータ分析者などの第三者にデータを預託又は付与する場合、データ送信の際に、データが正しく受信されたか、及びデータの受信後にデータ漏洩や改ざんされることなく正しく保管されているか、などの第三者によるデータ管理への懸念がある。このような懸念は、データ所有者がデータの提供を躊躇する一因となっている。データ所有者の安心の観点から、第三者に預託したデータの管理が正しく行われているか否かを確認できる方法が望まれる。 When a data owner entrusts or gives data to a third party, such as a cloud or a data analyst, it is important to check whether the data was received correctly at the time of data transmission, and whether the data was received correctly and without data leakage or tampering. There are concerns about data management by third parties, such as whether it is being stored or not. Such concerns are one reason why data owners are hesitant to provide data. From the perspective of data owners' peace of mind, it is desirable to have a method that can confirm whether data entrusted to a third party is being correctly managed.
データの受信が正しく行われたかを確認する手段としては受信直後にデータのハッシュ値を返送する単純な方法などの方法があるが、データが保管されてから時間が経過した後、再度データの完全性(消去や改ざんがないか)を確認したい場合にはこのような単純な方法では保管していたハッシュ値の再送することにより第三者側が虚偽の報告を行うことが簡単にできてしまう。 There are methods to confirm whether data has been received correctly, such as a simple method of returning the hash value of the data immediately after receiving it, but after some time has elapsed since the data was stored, If you want to check the authenticity (whether it has been erased or tampered with), using such a simple method would easily allow a third party to make a false report by retransmitting the stored hash value.
これを防ぐ技術として、国際公開第2014/068734号(特許文献1)がある。この公報には、「ユーザ端末がサーバ装置に預けた検証対象データをサーバ装置が保持しているか否かの検証を少ない通信量又は計算量で行い得るデータ保持検証システム及び方法を提案する。ユーザ端末がサーバ装置に預けた検証対象データをサーバ装置が保持しているか否かを検証するデータ保持検証システム及び方法において、ユーザ端末からサーバ装置に所定の検証用情報を送信し、サーバ装置において、保持している検証対象データと、検証用情報とを用いて当該検証対象データに固有かつ当該検証対象データよりも小さいデータサイズのサーバ側証拠データを算出し、算出したサーバ側証拠データをユーザ端末に送信し、ユーザ端末側において、検証用情報に基づくユーザ端末側証拠データと、サーバ装置から送信されたサーバ側証拠データとを比較し、比較結果に基づいて、サーバ装置が検証対象データを保持しているか否かを判定するようにした」と記載されている(要約参照)。 As a technique for preventing this, there is International Publication No. 2014/068734 (Patent Document 1). This publication states, ``We propose a data retention verification system and method that can verify whether or not a server device retains verification target data deposited by a user terminal in a server device with a small amount of communication or calculation. In a data retention verification system and method for verifying whether or not the server device holds verification target data deposited by a terminal in the server device, predetermined verification information is transmitted from the user terminal to the server device, and in the server device, Using the verification target data held and the verification information, calculate server-side evidence data that is specific to the verification target data and smaller in data size than the verification target data, and transfer the calculated server-side evidence data to the user terminal. On the user terminal side, the user terminal side evidence data based on the verification information is compared with the server side evidence data sent from the server device, and based on the comparison result, the server device retains the data to be verified. (See summary).
特許文献1に記載の技術では、RSA暗号技術の一部を使うことなどにより証明プロトコルの際の計算量が多いため、データ量やデータ所有者数が多くなった場合、データ保管している第三者の計算量が膨大になる。
The technology described in
そこで、本発明の一態様は、データ保持証明時の計算量が小さいデータ保持証明プロトコルを実現する。 Therefore, one aspect of the present invention realizes a data retention proof protocol that requires a small amount of calculation when proving data retention.
上記した課題を解決するために本発明の一態様は以下の構成を採用する。データ保持証明システムは、第1端末と第2端末とを含み、前記第1端末は、預託対象データが分割されて生成された複数のブロックそれぞれの整数nによる剰余に基づく、前記預託対象データに対する証跡を保持し、前記複数のブロックの数と同じ個数の変数を有する多項式をランダムに生成して、前記第2端末に送信し、前記第2端末は、検証対象データを保持し、前記検証対象データを、前記預託対象データの分割と同じアルゴリズムで複数のブロックに分割し、前記分割した検証対象データのブロックそれぞれを、前記多項式の変数に代入した代入値を計算し、前記第1端末に送信し、前記第1端末は、前記代入値と、前記多項式に前記証跡を代入した値と、が前記整数nを法として合同であるかに基づいて、前記検証対象データと前記預託対象データとが一致するかを判定する。 In order to solve the above problems, one embodiment of the present invention employs the following configuration. The data retention certification system includes a first terminal and a second terminal, and the first terminal is configured to provide information on the deposited data based on a remainder by an integer n of each of a plurality of blocks generated by dividing the deposited data. A polynomial that holds a trail and has the same number of variables as the number of blocks is randomly generated and transmitted to the second terminal, and the second terminal holds verification target data and The data is divided into a plurality of blocks using the same algorithm as the division of the data to be deposited, and each block of the divided data to be verified is substituted into a variable of the polynomial to calculate a substituted value and transmitted to the first terminal. The first terminal determines whether the verification target data and the deposit target data are congruent with the substituted value and the value obtained by substituting the trail into the polynomial, modulo the integer n. Determine if there is a match.
本発明の一態様によれば、データ保持証明時の計算量が小さいデータ保持証明プロトコルを実現することができる。 According to one aspect of the present invention, it is possible to realize a data retention proof protocol that requires a small amount of calculation when proving data retention.
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。 Problems, configurations, and effects other than those described above will be made clear by the following description of the embodiments.
以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。 Hereinafter, embodiments of the present invention will be described in detail based on the drawings. In this embodiment, in principle, the same components are given the same reference numerals, and repeated explanations will be omitted. Note that this embodiment is merely an example for implementing the present invention, and does not limit the technical scope of the present invention.
<システム構成>
図1は、データ保持証明システムの構成例を示すブロック図である。データ保持証明システムは、例えば、インターネット等のネットワーク1000で接続されたデータ所有者A端末100及びデータ受託者B端末200を含む。
<System configuration>
FIG. 1 is a block diagram showing a configuration example of a data retention certification system. The data retention certification system includes, for example, a data
データ所有者A端末100が保有するデータをデータ受託者B端末200が保管する。データ所有者A端末100は、ネットワーク1000を通じて、データ受託者B端末200がデータ所有者A端末100のデータを正しく保管しているか否かを確認する。
Data held by data owner A
<データ所有者A端末100の構成例>
図2は、データ所有者A端末100の構成例を示すブロック図である。データ所有者A端末100は、例えば、入力装置101、出力装置102、通信装置103、CPU(Central Processing Unit)110、補助記憶装置120、及びメモリ150を有する計算機によって構成される。
<Configuration example of data
FIG. 2 is a block diagram showing a configuration example of data
CPU110は、プロセッサを含み、メモリ150に格納されたプログラムを実行する。メモリ150は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU110が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置120は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU110が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置120から読み出されて、メモリ150にロードされて、CPU110によって実行される。
The
入力装置101は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。出力装置102は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。
The
通信装置103は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置103は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含んでもよい。
The
CPU110が実行するプログラムの一部またはすべては、非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又は、非一時的記憶装置を備える外部計算機からネットワークを介してデータ所有者A端末100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置120に格納されてもよい。このため、データ所有者A端末100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。これは、データ受託者B端末200及び実施例2で後述するデータ受託者C端末300についても同様である。
A part or all of the programs executed by the
データ所有者A端末100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、データ受託者B端末200及び実施例2で後述するデータ受託者C端末300についても同様である。
The data
CPU110は、例えば、パラメータ生成部111と、証跡計算部112と、を含む。パラメータ生成部111は、データ保持証明システムでデータ所有者A端末100が計算に用いるパラメータ141を生成する。
The
証跡計算部112は、預託対象のデータ131をデータ所有者A端末100がデータ131をデータ受託者B端末200に送信する前に、データ131と生成されたパラメータ141とに基づいて、証跡データ132を計算する。証跡データ132は、データ受託者B端末200が正しいデータ(データ所有者A端末100がデータ受託者B端末200に対して送信した元のデータに対して改変(改ざんや消去など)などが実行されていないデータ)を保有していることを証明するためのデータである。
The
例えば、CPU110は、メモリ150にロードされたパラメータ生成プログラムに従って動作することで、パラメータ生成部111として機能し、メモリ150にロードされた証跡計算プログラムに従って動作することで、証跡計算部112として機能する。データ受託者B端末200のCPU210、及び実施例2で後述するデータ受託者C端末300のCPU310それぞれに含まれる後述する機能部についても、プログラムと機能部の関係は同様である。
For example, the
なお、CPU110、データ受託者B端末200のCPU210、及び実施例2で後述するデータ受託者C端末300のCPU310に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。
Note that some or all of the functions of the functional units included in the
また、CPU110は、補助記憶装置120に格納されているデータの少なくとも一部を出力装置102に表示したり、補助記憶装置120に格納されているデータを読み込み、通信装置103を介して、データ受託者B端末200へ送信したりする。これは、データ受託者B端末200のCPU210、及び実施例2で後述するデータ受託者C端末300のCPU310についても同様である。
Further, the
補助記憶装置120は、それぞれデータを記録するための領域であるデータ記録部130及びパラメータ記録部140を含む。データ記録部130は、データ受託者B端末200に送信されるデータ131、及び証跡計算部112が計算した証跡データ132を保持する。パラメータ記録部140は、パラメータ生成部111が生成したパラメータ141を保持する。
The
なお、補助記憶装置120、データ受託者B端末200の補助記憶装置220、及び実施例2で後述するデータ受託者C端末300の補助記憶装置320に格納されている一部又は全部の情報は、それぞれ、メモリ150、データ受託者B端末200のメモリ250、及び実施例2で後述するデータ受託者C端末300のメモリ350に格納されていてもよいし、当該端末に接続されている外部のデータベースに格納されていてもよい。
Note that some or all of the information stored in the
なお、本実施形態において、データ保持証明システムが使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。 Note that in this embodiment, the information used by the data retention certification system may be expressed in any data structure without depending on the data structure. For example, a suitable selection of data structures from tables, lists, databases, or queues can store the information.
<データ受託者B端末200の構成例>
図3は、データ受託者B端末200の構成例を示すブロック図である。データ受託者B端末200は、例えば、入力装置201、出力装置202、通信装置203、CPU210、補助記憶装置220、及びメモリ250を有する計算機によって構成される。
<Configuration example of data
FIG. 3 is a block diagram showing a configuration example of the data
入力装置201、出力装置202、通信装置203、CPU210、補助記憶装置220、及びメモリ250それぞれのハードウェアとしての説明は、入力装置101、出力装置102、通信装置103、CPU110、補助記憶装置120、及びメモリ150のハードウェアとしての説明と同様であるため省略する。
The hardware description of each of the
CPU210は、例えば、レスポンス計算部211を含む。レスポンス計算部211は、データ所有者A端末100から受信したデータ231及びチャレンジを用いてレスポンスを計算する。
The
補助記憶装置220は、データを格納する領域であるデータ記録部230を含む。データ記録部230は、データ所有者A端末100から受信した検証対象のデータ231を保持する。
<データの預託>
図4は、データ所有者A端末100が保持するデータ131をデータ受託者B端末200に預託する処理の一例を示すシーケンス図である。図4の処理が開始する前に、データ所有者A端末100のデータ記録部130には、データ131が格納されている。
<Data deposit>
FIG. 4 is a sequence diagram illustrating an example of a process of entrusting
ステップS401において、データ所有者A端末100のパラメータ生成部111は、データ131に対する証跡データ132を計算するために必要なパラメータ141を生成し、パラメータ記録部140に記録する。ステップS401の詳細は、図5を用いて後述する。
In step S401, the
ステップS402において、データ所有者A端末100の証跡計算部112は、データ131とパラメータ141に基づいて証跡データ132を計算する。ステップS402の詳細は、図6を用いて後述する。
In step S402, the
ステップS403において、証跡計算部112は、データ131をデータ受託者B端末200に送付する。ステップS404において、データ受託者B端末200のレスポンス計算部211は、データ131を受信した後、データ131をデータ記録部230にデータ231として記録する。
In step S403, the
ステップS405において、データ所有者A端末100の証跡計算部112は、証跡データ132をデータ記録部130に記録する。さらに、証跡計算部112は、データ131をデータ記録部130に保管したままとしてもよいし、データ131をデータ記録部130から消去してもよい。ステップS405の処理は、ステップS402以降かつステップS403の処理の前に実行されてもよい。
In step S405, the
図5は、ステップS401におけるパラメータ141の生成処理の一例を示すフローチャートである。ステップS501において、データ所有者A端末100のパラメータ生成部111は、自然数nをランダムに生成する。具体的には、例えば、パラメータ生成部111は、予め定められた範囲、例えば2^127(「^」はべき乗を示す)より大きくかつ2^128より小さいなどの範囲、に含まれる自然数nをランダムに選択する。なお、ステップS401において、パラメータ生成部111は、予め定められた範囲に含まれる自然数に代えて、予め定められた範囲に含まれる整数、素数、又は奇数等をランダムに生成してもよい。
FIG. 5 is a flowchart illustrating an example of the
ステップS502において、パラメータ生成部111は、データ131をブロック分割するための各ブロックのサイズを決定する。パラメータ生成部111は、全てのブロックのサイズを予め定められた同じ長さ、例えば512MBなどに決定してもよいし、少なくとも一部のブロックのサイズが異なるように決定してもよい。
In step S502, the
パラメータ生成部111は、例えば、乱数を用いて各ブロックサイズを決定することで、少なくとも一部のブロックのサイズが異なるようにブロックサイズを決定することができる。また、パラメータ生成部111は、擬似乱数生成器を用いて、各ブロックサイズを決定してもよい。なお、パラメータ生成部111は、乱数を用いて各ブロックサイズを決定した場合は当該乱数を、擬似乱数生成器を用いて各ブロックサイズを決定した場合は擬似乱数生成器に対して入力されたシードをパラメータ141としてパラメータ記録部140に記録する。
For example, the
なお、各ブロックのサイズは、自然数nよりも十分大きく、かつデータ131のデータ長よりも十分小さいことが望ましい。
Note that it is desirable that the size of each block is sufficiently larger than the natural number n and sufficiently smaller than the data length of the
なお、パラメータ生成部111は、ブロック分割のアルゴリズム(ブロック分割の位置及び/又は各ブロックのサイズ)、及び各ブロックのサイズの情報を、ステップS403において、データ131とともにデータ受託者B端末200に送信し、データ受託者B端末200のレスポンス計算部211は当該情報をデータ231とともにデータ記録部230に記録する。
Note that the
図6は、ステップS402における証跡データ132の計算処理の一例を示すフローチャートである。ステップS601において、証跡計算部112は、ステップS502において決定されたブロック分割手順及びブロックサイズに基づいて、例えば、データ131に対するブロック分割を以下の(式1)を用いて実行する。
FIG. 6 is a flowchart showing an example of the calculation process of the
M=M1||M2||・・・|Mt・・・(式1) M=M1||M2||...|Mt... (Formula 1)
ここでMはデータ131であり、Mi(i=1,2,..,t)はデータ131の分割後の各ブロックであり、||は各ブロックの結合を示す。なお、tは、この例におけるブロック総数である。
Here, M is the
ステップS602において、証跡計算部112は、各ブロックMiに対し、ステップS501で生成された自然数nを用いて、Miをnで割った時の剰余αiを計算し、以下の(式2)が示すt個のブロックそれぞれに対応するαiの全体からなる集合A(M)を、証跡データ132としてデータ記録部130に保管する。
In step S602, the
A(M)={αi|αi=Mi mod n}・・・(式2) A(M)={αi|αi=Mi mod n}...(Formula 2)
<データの保持証明>
図7は、データ保持証明処理の一例を示すシーケンス図である。データ保持証明処理では、データ所有者A端末100がデータ131をデータ受託者B端末200に預託した後、データ受託者B端末200がデータ231を改変(改ざんや消去など)することなく、預託したときのまま保管しているかが確認される。
<Data retention proof>
FIG. 7 is a sequence diagram illustrating an example of data retention certification processing. In the data retention certification process, after the data
ステップS701において、データ所有者A端末100の証跡計算部112は、データ131をデータ受託者B端末200が改変なく保管していることを確かめるために必要なチャレンジを生成する。ステップS701の詳細は、図8を用いて後述する。
In step S701, the
ステップS702において、証跡計算部112は、チャレンジを含む保持証明リクエストをデータ受託者B端末200に送信する。ステップS703において、データ受託者B端末200のレスポンス計算部211は、チャレンジを含む保持証明リクエストを受信する。
In step S702, the
ステップS704において、レスポンス計算部211は、保管しているデータ231とチャレンジとを用いてレスポンスを計算する。ステップS704の詳細は、図8を用いて後述する。ステップS705において、レスポンス計算部211は、ステップS704で計算したレスポンスをデータ所有者A端末100に送信する。
In step S704, the
ステップS706において、データ所有者A端末100の証跡計算部112はレスポンスを受信する。ステップS707において、証跡計算部112は、証跡データ132と、受信したレスポンスと、を用いて預託したデータ131が改変されずにデータ受託者B端末200に保管されているか否かを判定して、判定結果(データ131が改変されていると判定した場合にはOK、改変されていないと判定した場合にはNG)を例えば出力装置102に出力して、データ保持証明を終了する。ステップS707の詳細は、図8を用いて後述する。
In step S706, the
図8は、ステップS701におけるチャレンジ生成処理、ステップS704におけるレスポンス計算処理、及びステップS707におけるレスポンスのチェック処理の例を示すシーケンス図である。 FIG. 8 is a sequence diagram showing an example of the challenge generation process in step S701, the response calculation process in step S704, and the response check process in step S707.
ステップS801において、データ所有者A端末100の証跡計算部112は、ランダムにt変数整数係数多項式F(x1,x2,・・・,xt)を生成する。なお、証跡計算部112は、F(x1,x2,・・・,xt)の係数を、予め定められた範囲の中でランダムに選択してもよい。なお、F(x1,x2,・・・,xt)は任意の次数をとることができるが、例えば、1次多項式のように次数の低い多項式であれば計算量を低減することができる。また、1次多項式のように次数の低い多項式であっても、データ保持証明の十分な精度を確保することができる。
In step S801, the
また、証跡計算部112は、F(x1,x2,・・・,xt)の係数の決定方法自体を選択してもよい。F(x1,x2,・・・,xt)に含まれる各項の次数や係数を、擬似ランダム関数を用いて決定し、擬似ランダム関数への入力としてのシードを決定する方法は、F(x1,x2,・・・,xt)の係数の決定方法の一例である。
Further, the
具体的には、例えば、証跡計算部112は、t変数1次多項式に対する係数を、ハッシュ関数を連続的に適用する方法として決定し、t変数1次多項式を生成したことを示す情報と、ハッシュ関数の最初の入力をチャレンジとしてデータ受託者B端末200に送付するなどしてもよい。
Specifically, for example, the
より具体的には、例えば、証跡計算部112は、ハッシュ関数の入力Sをランダムに生成し、ハッシュチェーンh_1=h(S),h_i=h(h_(i-1))とし、多項式Fを、下記の(式3)によって決定すればよい。但し、下記の(式3)における「*」は乗算を表す。
More specifically, for example, the
F=h_1*x1+h_2*x2+・・・+h_t*xt・・・(式3) F=h_1*x1+h_2*x2+...+h_t*xt...(Formula 3)
ステップS802において、証跡計算部112は、多項式を生成した手順を示す情報及びS、又は生成した多項式自体をチャレンジとしてデータ受託者B端末200に送信する。ステップS803において、データ受託者B端末200のレスポンス計算部211は、チャレンジを受信する。
In step S802, the
ステップS804において、レスポンス計算部211は、ステップS403で受信したブロック分割のアルゴリズムに従って(即ちデータ231を分割する位置及び各ブロックのブロック数はステップS403におけるブロック分割と同じである)、データ231をブロック分割する。以下、データ231をM’とするとき、下記の(式4)に示すブロック分割が行われたものとする。
In step S804, the
M’=M’1||M’2||…||M’t・・・(式4) M’=M’1 | | M’2 | |… | | M’t… (Formula 4)
ステップS805において、レスポンス計算部211は、M’の各ブロックをビット系列とみなし、さらにビット系列を整数の2進展開とみなして整数値とし、下記の(式5)に示すように当該整数値をチャレンジが示す多項式Fに代入して多項式の整数値を計算する。
In step S805, the
F(M’)=F(M’1,M’2,・・・,M’t)・・・(式5) F(M')=F(M'1, M'2,..., M't)...(Formula 5)
ステップS806において、レスポンス計算部211は、F(M’)をレスポンスとしてデータ所有者A端末100に送信する。ステップS807において、データ所有者A端末100の証跡計算部112は、レスポンスF(M’)を受信する。
In step S806, the
ステップS808において、証跡計算部112は、証跡データ132(A(M))を用いて、剰余計算によりデータの改変の有無を判定する。具体的には、例えば、証跡計算部112は、nと証跡データA(M)とを用いて、下記の(式6)を計算する。
In step S808, the
F(α1,α2,・・・,αt) mod n・・・(式6) F (α1, α2,..., αt) mod n... (Formula 6)
証跡計算部112は、下記の(式7)に従って、F(α1,α2,・・・,αt)が、レスポンスF(M’)と、nを法とした剰余として等しくなるか否かを判定する。
The
F(M’)≡F(α1,α2,・・・,αt) mod n・・・(式7) F(M’)≡F(α1,α2,...,αt) mod n...(Formula 7)
証跡計算部112は、(式7)の合同式が成立すると判定した場合には、データの改変がないと判定して「OK」を出力装置102に出力し、(式7)の合同式が成立しないと判定した場合には、データの改変があると判定して「NG」を出力装置102に出力する。なお、(式7)におけるmod nはnで割った余り、つまり剰余を表す。
When the
以上、本実施例のデータ保持証明システムにおいては、加算、乗算、及び剰余計算等の計算量の少ない処理のみによってデータが改変されているか否かを判定することができる。具体的には、データ所有者A端末100が証跡を計算する際の自然数nを、データ131を分割するブロックサイズに比べて小さい値として選択することで元のデータ131に対して証跡のサイズを小さくできる。またデータ所有者A端末100が、データ保持証明処理の際に生成する多項式として低次数かつ、係数の小さいものを生成すれば、多項式の値を計算する際の計算量を小さく抑えることが可能である。つまり、データ保持証明処理における計算を効率よく実行でき、大容量データや多数のデータ所有者からの要求にも効率的に対応可能である。また、データ所有者A端末100は、多項式を毎回ランダムに選択することで、チャレンジレスポンスによってデータ受託者B端末200の虚偽報告を防ぐことができる。
As described above, in the data retention certification system of this embodiment, it is possible to determine whether or not data has been altered only by processing with a small amount of calculation such as addition, multiplication, and remainder calculation. Specifically, the data
また、データ所有者A端末100はデータ131をブロック分割することにより、データ所有者によるデータの一部のアップデートの際における通信量を抑えることができる。
Furthermore, by dividing the
次にデータ保持証明システムのユースケースを説明する。 Next, we will explain the use case of the data retention certification system.
<クラウドストレージ>
クラウドの利用は着実に増加しており、クラウドは社会経済活動を支える重要な基盤インフラとなっている。データ所有者の所有する画像や動画などのデータが増加し、自身のIT(Information technology)環境で保管するのはコストがかかるようになってきており、クラウドストレージサービスを利用するケースが多くなってきている。
<Cloud storage>
The use of the cloud is steadily increasing, and the cloud has become an important infrastructure that supports social and economic activities. The amount of data owned by data owners, such as images and videos, is increasing, and it is becoming costly to store it in their own IT (Information Technology) environments, so cloud storage services are increasingly being used. ing.
その際、データ所有者がデータ受託者(クラウド)に過去に預けたデータが正しく、改変されることなく保管されているか否かを定期的、又は不定期に(例えば、データ所有者の希望に応じて)、データ所有者が確認できるようになっていれば、データ所有者の安心感が高まる。そこで、本実施例で説明した方法を適用すれば、当該確認作業を行うことができる。 At that time, whether or not the data that the data owner has entrusted to the data trustee (cloud) in the past is stored correctly and unaltered is checked periodically or irregularly (for example, according to the data owner's wishes). If the data owner can confirm the information (depending on the situation), the data owner will feel more secure. Therefore, by applying the method described in this embodiment, the confirmation work can be performed.
データ所有者はクラウドにデータを預ける際、本実施例の手順でパラメータと対象データに対する証跡を生成した後、証跡を保管し、対象データをクラウドに送付する。この際、証跡のデータサイズは元のデータをブロック分割した際のブロックサイズより大幅に小さくなるようにすれば、データ所有者の端末が保管する証跡データは小さくなり、クラウドを利用して端末の保管データ量の削減を実現することができる。 When entrusting data to the cloud, the data owner generates a trail for parameters and target data using the procedure of this embodiment, stores the trail, and sends the target data to the cloud. At this time, if the data size of the trail is made to be significantly smaller than the block size when the original data is divided into blocks, the trail data stored on the data owner's device will be smaller, and the data can be stored on the device using the cloud. It is possible to reduce the amount of stored data.
<情報銀行及び情報信託銀行>
情報利活用の観点から、個人情報を収集し、データとして事業者に活用してもらうサービスが考えられている。個人情報が収集される際には、漏洩対策などのセキュリティが求められる。具体的には、例えば、暗号化保管や、利活用事業者への提供の際の高度な匿名化などの処理が求められる。
<Information banks and information trust banks>
From the perspective of information utilization, services are being considered that collect personal information and have businesses utilize it as data. When personal information is collected, security measures such as measures against leakage are required. Specifically, processing such as encrypted storage and high-level anonymization when providing information to businesses that utilize it are required.
一方、データ提供した個人(データ所有者)の観点では、預託したデータが改変されずに正しく保管されているかなど、データの管理に対する懸念も生じ、このような懸念はデータ提供の障壁の一因となっている。そこで、本実施例の手順を適用することにより、このような懸念を払しょくすることができる。 On the other hand, from the perspective of the individual who provided the data (data owner), there are concerns about data management, such as whether the entrusted data is not altered and stored correctly, and such concerns are one of the barriers to data provision. It becomes. Therefore, by applying the procedure of this embodiment, such concerns can be eliminated.
一般的な銀行では、通帳への記帳により預けた資産の状況を確認することが実社会で行われているが、デジタルデータを情報銀行等に預ける場合にはデジタルデータが改変されているかをデータ所有者自身が判断しにくいため、本実施例のデータ保持証明による処理のように、虚偽報告を高い確率で見抜くプロトコルが必要である。 In the real world, general banks check the status of deposited assets by making entries in passbooks, but when depositing digital data to an information bank etc., data ownership checks whether the digital data has been altered or not. Since it is difficult for a person to make a judgment on his/her own, a protocol is required that can detect false reports with a high probability, such as the process using data retention proof in this embodiment.
データ所有者である個人は、自身に関する情報を情報銀行等に預託する際、本実施例の手順でパラメータと対象データに対する証跡を生成した後、証跡を保管し、対象データを情報銀行に送信すればよい。 When an individual who is a data owner deposits information about himself or herself with an information bank, etc., he/she must generate a trail for the parameters and target data using the steps in this example, then store the trail and send the target data to the information bank. Bye.
<システム構成>
以下、実施例1との相違点について主に説明し、実施例1と同様の点については適宜説明を省略する。図9は、データ保持証明システムの構成例を示すブロック図である。データ保持証明システムは、例えば、インターネット等のネットワーク1000で接続されたデータ所有者A端末100、データ受託者B端末200、及びデータ受託者C端末300を含む。
<System configuration>
Hereinafter, differences from Example 1 will be mainly described, and descriptions of points similar to Example 1 will be omitted as appropriate. FIG. 9 is a block diagram showing a configuration example of a data retention certification system. The data retention certification system includes, for example, a data
データ所有者A端末100と、2つのデータ受託者端末がネットワーク1000を通じて通信を行い、データ所有者A端末100が持つデータを1つ目のデータ受託者端末に預託した後、預託したデータの一部又は全部を他のデータ受託者端末に移設する。つまり、本実施例のデータ保持証明システムは、複数のデータ受託者間におけるデータ移設を実現する。
The data
本実施例では、データ所有者A端末100が1つ目のデータ受託者端末にデータを預託する際、データの内容を秘匿するために暗号化を施す。1つ目のデータ受託者端末に預託した暗号化データを他のデータ受託者端末に移設する際、高い安全性を確保するため、暗復号化のための鍵を、別の鍵に変更することを想定する。
In this embodiment, when data
<データ所有者A端末100とデータ受託者B端末200>
本実施例のデータ所有者A端末100の構成例は、実施例1の図2に示したデータ所有者A端末100の構成例と同様であり、本実施例のデータ受託者B端末200の構成例は実施例1の図3に示したデータ受託者B端末200と同様の構成例であるため、それぞれ説明を省略する。
<Data
The configuration example of the data
<データ受託者C端末300>
図10は、データ受託者C端末300の構成例を示すブロック図である。データ受託者C端末300は、例えば、入力装置301、出力装置302、通信装置303、CPU310、補助記憶装置320、及びメモリ350を有する計算機によって構成される。
<Data
FIG. 10 is a block diagram showing a configuration example of the data
入力装置301、出力装置302、通信装置303、CPU310、補助記憶装置320、及びメモリ350それぞれのハードウェアとしての説明は、入力装置101、出力装置102、通信装置103、CPU110、補助記憶装置120、及びメモリ150のハードウェアとしての説明と同様であるため省略する。
The hardware descriptions of the
但し、CPU310は、内部の処理がデータ受託者C端末300の外部から盗み見ることができない、つまりCPU310上において他の処理を実行する領域と隔離され、秘密計算が実行可能な保護領域3100を有する。TEE(Trusted Execution Environment)などは、保護領域3100の一例である。保護領域3100と、データ所有者A端末100と、の間で暗号化通信が可能であるとする。
However, the
保護領域3100は、レスポンス計算部311及び暗復号化部312を含む。レスポンス計算部311は、データ受託者B端末200から移設されたデータ331と、チャレンジと、を用いてレスポンスを計算する。暗復号化部312は、鍵の復号、データの暗号化及び復号を実行する。
The protected
補助記憶装置320は、データを格納する領域であるデータ記録部330を含む。データ記録部330は、データ受託者B端末200から受信したデータ331を保持する。
<データ移設>
図11は、複数データ受託者間におけるデータ移設の処理の一例を示すシーケンス図である。ステップS1001において、データ所有者A端末100のパラメータ生成部111は、ステップS401と同様の方法で、平文の預託対象のデータ131に対するパラメータを生成し、データ所有者A端末100の証跡計算部112は、ステップS402と同様の方法で、平文の預託対象のデータ131に対する証跡を計算する。
<Data transfer>
FIG. 11 is a sequence diagram illustrating an example of data transfer processing between multiple data entrustees. In step S1001, the
ステップS1002において、証跡計算部112は、データ131を共通鍵暗号方式などで鍵Kを用いて暗号化し、暗号化されたデータ131をデータ受託者B端末200に送信する。なお、鍵Kは予め補助記憶装置120に格納されていてもよいし、ステップS1002の処理が開始するまでに証跡計算部112によって生成されてもよい。ステップS1003において、データ受託者B端末200のレスポンス計算部211は、受信した暗号化されたデータ131を、データ231として保管する。
In step S1002, the
ステップS1004において、データ受託者B端末200のレスポンス計算部211は、例えば、データ所有者A端末100の依頼に応じて、保管しているデータ231をデータ受託者C端末300に送信する。なお、預託されているデータ231がブロックごとに暗号化されている場合には、レスポンス計算部211は、暗号化されているデータ231のうち、依頼された一部のブロックの暗号化データのみをデータ受託者C端末300に送信してもよい。
In step S1004, the
ステップS1005において、データ受託者C端末300のレスポンス計算部311は、受信した暗号化データをデータ331として保管する。ステップS1006において、データ所有者A端末100の証跡計算部112は、ステップS801と同様の方法で生成した、平文のデータ131に対するチャレンジを生成し、もとの暗号化の際に用いた鍵Kと、新しい鍵K’と、を暗号化した暗号文と、生成したチャレンジと、をデータ受託者C端末300の保護領域3100に送信する。
In step S1005, the
なお、鍵K’は予め補助記憶装置120に格納されていてもよいし、ステップS1006の処理が開始するまでに証跡計算部112によって生成されてもよい。また、鍵K及びK’を暗号化するための暗号鍵及び暗号化アルゴリズムは、例えば、データ所有者A端末100とデータ受託者C端末300との間で予め共有されている。
Note that the key K' may be stored in the
ステップS1007において、データ受託者C端末300の暗復号化部312は、保護領域3100の内部で鍵K及び鍵K’を復号し、ステップS1005で受信したデータ331を、鍵Kを用いて保護領域3100の内部で復号する。さらに、ステップS1007において、レスポンス計算部311は、復号したデータと、ステップS1006で送信されたチャレンジと、に基づいて、ステップS804及びステップS805と同様の方法で、レスポンスを保護領域3100の内部で計算する。さらに、ステップS1007において、暗復号化部312は、保護領域3100の内部で、復号したデータを鍵K’で暗号化し、データ331として保管する。
In step S1007, the encryption/
ステップS1008において、レスポンス計算部311は、ステップS1007で計算したレスポンスをデータ所有者A端末100に送信する。
In step S1008, the
ステップS1009において、データ所有者A端末100の証跡計算部112は、ステップS808と同様の方法でレスポンスをチェックし、データが改変されていないか否かを判定する。また、ステップS1009において、証跡計算部112は、(式7)の合同式が成立すると判定した場合には、データの改変がないと判定して「OK」を出力装置102に出力し、(式7)の合同式が成立しないと判定した場合には、データの改変があると判定して「NG」を出力装置102に出力する。
In step S1009, the
従って、データ所有者A端末100は、データが改変されていないと判断した場合、データ受託者B端末200に保管されていた暗号化データが改変されずに保管されていたこと、及びデータ受託者B端末200からデータ受託者端末C300にデータが正しく移設されたことを確認することができる。
Therefore, if the data
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 Note that the present invention is not limited to the above-described embodiments, and includes various modifications. For example, the embodiments described above are described in detail to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to having all the configurations described. Further, it is also possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Further, it is possible to add, delete, or replace a part of the configuration of each embodiment with other configurations.
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Further, each of the above-mentioned configurations, functions, processing units, processing means, etc. may be partially or entirely realized in hardware by designing, for example, an integrated circuit. Furthermore, each of the above configurations, functions, etc. may be realized by software by a processor interpreting and executing a program for realizing each function. Information such as programs, tables, files, etc. that implement each function can be stored in a memory, a recording device such as a hard disk, an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 In addition, the control lines and information lines are shown to be necessary for explanation purposes, and not all control lines and information lines are necessarily shown in the product. In reality, almost all components may be considered to be interconnected.
100 データ所有者A端末、103 通信装置、110 CPU、111 パラメータ生成部、112 証跡計算部、120 補助記憶装置、131 データ、132 証跡データ、141 パラメータ、200 データ受託者B端末 203 通信装置、210 CPU、211 レスポンス計算部、220 補助記憶装置、231 データ、300 データ受託者C端末、303 通信装置、310 CPU、311 レスポンス計算部、312 暗復号化部、331 データ、3100 保護領域
100 Data Owner A Terminal, 103 Communication Device, 110 CPU, 111 Parameter Generation Unit, 112 Trail Calculation Unit, 120 Auxiliary Storage Device, 131 Data, 132 Trail Data, 141 Parameter, 200 Data
Claims (10)
第1端末と第2端末とを含み、
前記第1端末は、
預託対象データが分割されて生成された複数のブロックそれぞれの整数nによる剰余に基づく、前記預託対象データに対する証跡を保持し、
前記複数のブロックの数と同じ個数の変数を有する多項式をランダムに生成して、前記第2端末に送信し、
前記第2端末は、
検証対象データを保持し、
前記検証対象データを、前記預託対象データの分割と同じアルゴリズムで複数のブロックに分割し、
前記分割した検証対象データのブロックそれぞれを、前記多項式の変数に代入した代入値を計算し、前記第1端末に送信し、
前記第1端末は、
前記代入値と、前記多項式に前記証跡を代入した値と、が前記整数nを法として合同であるかに基づいて、前記検証対象データと前記預託対象データとが一致するかを判定する、データ保持証明システム。 A data retention certification system,
including a first terminal and a second terminal;
The first terminal is
Maintaining a trail for the deposit target data based on a remainder by an integer n of each of a plurality of blocks generated by dividing the deposit target data,
randomly generating a polynomial having the same number of variables as the number of blocks and transmitting it to the second terminal;
The second terminal is
Hold the data to be verified,
dividing the verification target data into a plurality of blocks using the same algorithm as the division of the deposit target data;
calculating a substituted value for each block of the divided verification target data to a variable of the polynomial, and transmitting the substituted value to the first terminal;
The first terminal is
determining whether the verification target data and the deposit target data match based on whether the substituted value and the value obtained by substituting the trail into the polynomial are congruent modulo the integer n; Retention proof system.
前記預託対象データMは、t個のブロックM1||M2||・・・|Mtに分割され、
前記第1端末は、
前記証跡として、A(M)={αi|αi=Mi mod n} (i=1,2,..,t)を生成し、
前記多項式として、t変数整数係数多項式F(x1,x2,・・・,xt)をランダムに生成し、
前記第2端末は、
前記検証対象データM’を、t個のブロックM’1||M’2||…||M’tに分割し、
前記代入値として、F(M’)=F(M’1,M’2,・・・,M’t)を計算し、
前記第1端末は、
F(M’)≡F(α1,α2,・・・,αt) mod nが成立するかに基づいて、前記検証対象データと前記預託対象データとが一致するかを判定する、データ保持証明システム。 The data retention certification system according to claim 1,
The deposited data M is divided into t blocks M1||M2||...|Mt,
The first terminal is
As the trail, generate A(M)={αi|αi=Mi mod n} (i=1, 2,..., t),
Randomly generate a t variable integer coefficient polynomial F (x1, x2, ..., xt) as the polynomial,
The second terminal is
Divide the verification target data M' into t blocks M'1||M'2||...||M't,
As the substituted value, calculate F(M')=F(M'1, M'2,..., M't),
The first terminal is
A data retention certification system that determines whether the verification target data and the deposit target data match based on whether F(M')≡F(α1, α2, ..., αt) mod n holds true. .
前記第1端末は、前記多項式として、1次多項式をランダムに生成する、データ保持証明システム。 The data retention certification system according to claim 1,
The first terminal is a data retention proof system that randomly generates a first-order polynomial as the polynomial.
前記整数nは、所定の範囲からランダムに選択された値であり、
前記複数のブロックのブロックサイズそれぞれは、予め定められた同じ値、又は乱数若しくは擬似乱数に基づいて定められた値である、データ保持証明システム。 The data retention certification system according to claim 1,
The integer n is a value randomly selected from a predetermined range,
In the data retention proof system, each of the plurality of blocks has a block size of the same predetermined value or a value determined based on random numbers or pseudorandom numbers.
前記検証対象データを保持する第3端末を含み、
前記第2端末は、計算を実行する領域として、通常領域と、前記通常領域とは隔離された保護領域と、を有し、
前記第1端末は、
第1の鍵と第2の鍵とを保持し、
前記第1の鍵と前記第2の鍵とを暗号化した暗号文を前記第2端末の前記保護領域に送信し、
前記検証対象データは、前記第1の鍵で暗号化されており、
前記第2端末が保持する前記検証対象データは、前記第3端末から送信されたものであり、
前記第2端末は、
前記保護領域において、前記暗号文を復号することで前記第1の鍵及び前記第2の鍵を取得し、
前記保護領域において、前記検証対象データを前記第1の鍵を用いて復号し、
前記保護領域において、前記復号した検証対象データを前記第2の鍵で暗号化し、
前記保護領域において、前記復号した検証対象データを、前記預託対象データの分割と同じアルゴリズムで複数のブロックに分割し、
前記復号した検証対象データが分割されたブロックそれぞれを、前記多項式の変数に代入した代入値を計算し、前記第1端末に送信し、
前記第1端末は、
前記代入値と、前記多項式に前記証跡を代入した値と、が前記整数nを法として合同であるかに基づいて、前記復号した検証対象データと前記預託対象データとが一致するかを判定する、データ保持証明システム。 The data retention certification system according to claim 1,
including a third terminal holding the verification target data;
The second terminal has a normal area and a protected area isolated from the normal area as an area for performing calculations,
The first terminal is
holding a first key and a second key;
transmitting a ciphertext obtained by encrypting the first key and the second key to the protected area of the second terminal;
The verification target data is encrypted with the first key,
The verification target data held by the second terminal is transmitted from the third terminal,
The second terminal is
in the protected area, acquiring the first key and the second key by decrypting the ciphertext;
in the protected area, decrypting the verification target data using the first key;
in the protected area, encrypting the decrypted verification target data with the second key;
In the protected area, dividing the decrypted verification target data into a plurality of blocks using the same algorithm as the division of the deposit target data,
calculating a substituted value by substituting each block into which the decrypted verification target data is divided into variables of the polynomial, and transmitting the substituted value to the first terminal;
The first terminal is
Determining whether the decrypted verification target data and the deposit target data match based on whether the substituted value and the value obtained by substituting the trail into the polynomial are congruent modulo the integer n. , Data Retention Proof System.
前記データ保持証明システムは、第1端末と第2端末とを含み、
前記第1端末は、預託対象データが分割されて生成された複数のブロックそれぞれの整数nによる剰余に基づく、前記預託対象データに対する証跡を保持し、
前記第2端末は、検証対象データを保持し、
前記データ保持証明方法は、
前記第2端末が、前記複数のブロックの数と同じ個数の変数を有する多項式をランダムに生成して、前記第2端末に送信し、
前記第2端末が、前記検証対象データを、前記預託対象データの分割と同じアルゴリズムで複数のブロックに分割し、
前記第2端末が、前記分割した検証対象データのブロックそれぞれを、前記多項式の変数に代入した代入値を計算し、前記第1端末に送信し、
前記第1端末が、前記代入値と、前記多項式に前記証跡を代入した値と、が前記整数nを法として合同であるかに基づいて、前記検証対象データと前記預託対象データとが一致するかを判定する、データ保持証明方法。 A data retention certification method using a data retention certification system, the method comprising:
The data retention certification system includes a first terminal and a second terminal,
The first terminal maintains a trail for the deposit target data based on a remainder by an integer n of each of a plurality of blocks generated by dividing the deposit target data,
The second terminal holds verification target data,
The data retention certification method is
the second terminal randomly generates a polynomial having the same number of variables as the number of blocks, and transmits it to the second terminal;
The second terminal divides the verification target data into a plurality of blocks using the same algorithm as the division of the deposit target data,
the second terminal calculates a substituted value by substituting each block of the divided verification target data into a variable of the polynomial, and transmits the substituted value to the first terminal;
The first terminal matches the verification target data and the deposit target data based on whether the substituted value and the value obtained by substituting the trail into the polynomial are congruent modulo the integer n. Data retention certification method to determine whether
前記預託対象データMは、t個のブロックM1||M2||・・・|Mtに分割され、
前記データ保持証明方法は、
前記第1端末が、前記証跡として、A(M)={αi|αi=Mi mod n} (i=1,2,..,t)を生成し、
前記第1端末が、前記多項式として、t変数整数係数多項式F(x1,x2,・・・,xt)をランダムに生成し、
前記第2端末が、前記検証対象データM’を、t個のブロックM’1||M’2||…||M’tに分割し、
前記第2端末が、前記代入値として、F(M’)=F(M’1,M’2,・・・,M’t)を計算し、
前記第1端末が、F(M’)≡F(α1,α2,・・・,αt) mod nが成立するかに基づいて、前記検証対象データと前記預託対象データとが一致するかを判定する、データ保持証明方法。 7. The data retention certification method according to claim 6,
The deposited data M is divided into t blocks M1||M2||...|Mt,
The data retention certification method is
The first terminal generates A(M)={αi|αi=Mi mod n} (i=1, 2, . . . , t) as the trail,
The first terminal randomly generates a t variable integer coefficient polynomial F (x1, x2, ..., xt) as the polynomial,
The second terminal divides the verification target data M' into t blocks M'1||M'2||...|M't,
The second terminal calculates F(M')=F(M'1, M'2, ..., M't) as the substituted value,
The first terminal determines whether the verification target data and the deposit target data match based on whether F(M')≡F(α1, α2, ..., αt) mod n holds true. Data retention proof method.
前記第1端末が、前記多項式として、1次多項式をランダムに生成する、データ保持証明方法。 7. The data retention certification method according to claim 6,
A data retention proof method, wherein the first terminal randomly generates a first-order polynomial as the polynomial.
前記整数nは、所定の範囲からランダムに選択された値であり、
前記複数のブロックのブロックサイズそれぞれは、予め定められた同じ値、又は乱数若しくは擬似乱数に基づいて定められた値である、データ保持証明方法。 7. The data retention certification method according to claim 6,
The integer n is a value randomly selected from a predetermined range,
The data retention proof method, wherein each of the plurality of blocks has a block size of the same predetermined value or a value determined based on random numbers or pseudo-random numbers.
前記データ保持証明システムは、前記検証対象データを保持する第3端末を含み、
前記第2端末は、計算を実行する領域として、通常領域と、前記通常領域とは隔離された保護領域と、を有し、
前記第1端末は、第1の鍵と第2の鍵とを保持し、
前記検証対象データは、前記第1の鍵で暗号化されており、
前記第2端末が保持する前記検証対象データは、前記第3端末から送信されたものであり、
前記データ保持証明方法は、
前記第1端末が、前記第1の鍵と前記第2の鍵とを暗号化した暗号文を前記第2端末の前記保護領域に送信し、
前記第2端末が、前記保護領域において、前記暗号文を復号することで前記第1の鍵及び前記第2の鍵を取得し、
前記第2端末が、前記保護領域において、前記検証対象データを前記第1の鍵を用いて復号し、
前記第2端末が、前記保護領域において、前記復号した検証対象データを前記第2の鍵で暗号化し、
前記第2端末が、前記保護領域において、前記復号した検証対象データを、前記預託対象データの分割と同じアルゴリズムで複数のブロックに分割し、
前記復号した検証対象データが分割されたブロックそれぞれを、前記多項式の変数に代入した代入値を計算し、前記第1端末に送信し、
前記第1端末が、前記代入値と、前記多項式に前記証跡を代入した値と、が前記整数nを法として合同であるかに基づいて、前記復号した検証対象データと前記預託対象データとが一致するかを判定する、データ保持証明方法。 7. The data retention certification method according to claim 6,
The data retention certification system includes a third terminal that retains the verification target data,
The second terminal has a normal area and a protected area isolated from the normal area as an area for performing calculations,
The first terminal holds a first key and a second key,
The verification target data is encrypted with the first key,
The verification target data held by the second terminal is transmitted from the third terminal,
The data retention certification method is
the first terminal transmits a ciphertext obtained by encrypting the first key and the second key to the protected area of the second terminal;
the second terminal obtains the first key and the second key by decrypting the ciphertext in the protected area;
the second terminal decrypts the verification target data in the protected area using the first key;
the second terminal encrypts the decrypted verification target data with the second key in the protected area;
the second terminal divides the decrypted verification target data into a plurality of blocks in the protected area using the same algorithm as the division of the deposit target data;
calculating a substituted value by substituting each block into which the decrypted verification target data is divided into variables of the polynomial, and transmitting the substituted value to the first terminal;
The first terminal determines whether the decrypted data to be verified and the data to be entrusted are determined based on whether the substituted value and the value obtained by substituting the trail into the polynomial are congruent modulo the integer n. A data retention proof method that determines whether there is a match.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022095954A JP2023182383A (en) | 2022-06-14 | 2022-06-14 | Data retention certification system and data retention certification method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022095954A JP2023182383A (en) | 2022-06-14 | 2022-06-14 | Data retention certification system and data retention certification method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023182383A true JP2023182383A (en) | 2023-12-26 |
Family
ID=89309972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022095954A Pending JP2023182383A (en) | 2022-06-14 | 2022-06-14 | Data retention certification system and data retention certification method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023182383A (en) |
-
2022
- 2022-06-14 JP JP2022095954A patent/JP2023182383A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111355705B (en) | Data auditing and safety duplicate removal cloud storage system and method based on block chain | |
Kaaniche et al. | Data security and privacy preservation in cloud storage environments based on cryptographic mechanisms | |
Liu et al. | DivORAM: Towards a practical oblivious RAM with variable block size | |
Jin et al. | Dynamic and public auditing with fair arbitration for cloud data | |
JP5281074B2 (en) | Information security apparatus and information security system | |
Chen | Using algebraic signatures to check data possession in cloud storage | |
JP5196883B2 (en) | Information security apparatus and information security system | |
Kumar et al. | An efficient and secure protocol for ensuring data storage security in cloud computing | |
Barsoum et al. | Integrity verification of multiple data copies over untrusted cloud servers | |
JP6016948B2 (en) | Secret calculation system, arithmetic device, secret calculation method, and program | |
CN116776318A (en) | Method and system for verifying ownership of digital assets using distributed hash tables and peer-to-peer distributed ledgers | |
Alowolodu et al. | Elliptic curve cryptography for securing cloud computing applications | |
JP2012518330A (en) | Reliable cloud computing and cloud service framework | |
Varalakshmi et al. | Integrity checking for cloud environment using encryption algorithm | |
CN113407627A (en) | Intelligent medical network system based on block chain and medical data sharing method | |
Neela et al. | An improved RSA technique with efficient data integrity verification for outsourcing database in cloud | |
Hwang et al. | Data error locations reported by public auditing in cloud storage service | |
CN115001730A (en) | Role attribute-based access control system and method in distributed scene | |
Yoosuf | Lightweight fog‐centric auditing scheme to verify integrity of IoT healthcare data in the cloud environment | |
CN110914826A (en) | System and method for distributed data mapping | |
KR102501004B1 (en) | Method and apparatus for managing data based on blockchain | |
Sarkar et al. | Ensuring data storage security in cloud computing based on hybrid encryption schemes | |
JP2023182383A (en) | Data retention certification system and data retention certification method | |
Kavya et al. | A survey on data auditing approaches to preserve privacy and data integrity in cloud computing | |
Verma et al. | Applications of Data Security and Blockchain in Smart City Identity Management |