JP2023182383A - Data retention certification system and data retention certification method - Google Patents

Data retention certification system and data retention certification method Download PDF

Info

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
Application number
JP2022095954A
Other languages
Japanese (ja)
Inventor
尚宜 佐藤
Hisanobu Sato
雅之 吉野
Masayuki Yoshino
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022095954A priority Critical patent/JP2023182383A/en
Publication of JP2023182383A publication Critical patent/JP2023182383A/en
Pending legal-status Critical Current

Links

Images

Abstract

To provide a data retention certification system and a data retention certification method that achieve a data retention certification protocol with a small amount of calculation when providing data retention.SOLUTION: A data owner A terminal maintains a trail based on the remainder of an integer n of each of a plurality of blocks generated by dividing data to be deposited, randomly generates a polynomial having the same number of variables as the number of blocks, and transmits it to a data consignee B terminal. The data consignee B terminal divides data to be verified into a plurality of blocks using the same algorithm as the division of the data to be deposited, calculates a substitution value by substituting each block of the divided data to be verified into the polynomial variable, and transmits it to the data owner A terminal. The data owner A terminal determines whether the data to be verified and the data to be deposited match based on whether the substitution value and the value obtained by substituting the trail into the polynomial are congruent modulo the integer n.SELECTED DRAWING: Figure 8

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).

国際公開第2014/068734号International Publication No. 2014/068734

特許文献1に記載の技術では、RSA暗号技術の一部を使うことなどにより証明プロトコルの際の計算量が多いため、データ量やデータ所有者数が多くなった場合、データ保管している第三者の計算量が膨大になる。 The technology described in Patent Document 1 requires a large amount of calculation in the proof protocol due to the use of part of the RSA encryption technology, so when the amount of data or the number of data owners increases, the number of data stored will be reduced. The amount of calculation for all three parties becomes enormous.

そこで、本発明の一態様は、データ保持証明時の計算量が小さいデータ保持証明プロトコルを実現する。 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.

実施例1におけるデータ保持証明システムの構成例を示すブロック図である。1 is a block diagram showing a configuration example of a data retention certification system in Example 1. FIG. 実施例1におけるデータ所有者A端末の構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of a data owner A terminal in Example 1. FIG. 実施例1におけるデータ受託者B端末の構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of a data trustee B terminal in the first embodiment. 実施例1におけるデータ所有者A端末が保持するデータをデータ受託者B端末に預託する処理の一例を示すシーケンス図である。FIG. 3 is a sequence diagram illustrating an example of a process of entrusting data held by a data owner A terminal to a data trustee B terminal in the first embodiment. 実施例1におけるパラメータの生成処理の一例を示すフローチャートである。7 is a flowchart illustrating an example of a parameter generation process in the first embodiment. 実施例1における証跡データの計算処理の一例を示すフローチャートである。7 is a flowchart illustrating an example of trail data calculation processing in the first embodiment. 実施例1におけるデータ保持証明処理の一例を示すシーケンス図である。3 is a sequence diagram illustrating an example of data retention certification processing in the first embodiment. FIG. 実施例1におけるチャレンジ生成処理、レスポンス計算処理、及びレスポンスのチェック処理の例を示すフローチャートである。5 is a flowchart illustrating an example of a challenge generation process, a response calculation process, and a response check process in the first embodiment. 実施例2におけるデータ保持証明システムの構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of a data retention certification system in Example 2. FIG. 実施例2におけるデータ受託者C端末の構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of a data trustee C terminal in a second embodiment. 実施例2における複数データ受託者間におけるデータ移設の処理の一例を示すシーケンス図である。FIG. 7 is a sequence diagram illustrating an example of data transfer processing between multiple data entrustees in Embodiment 2;

以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。 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 owner A terminal 100 and a data trustee B terminal 200 connected via a network 1000 such as the Internet.

データ所有者A端末100が保有するデータをデータ受託者B端末200が保管する。データ所有者A端末100は、ネットワーク1000を通じて、データ受託者B端末200がデータ所有者A端末100のデータを正しく保管しているか否かを確認する。 Data held by data owner A terminal 100 is stored by data trustee B terminal 200. The data owner A terminal 100 checks whether the data trustee B terminal 200 is correctly storing the data of the data owner A terminal 100 through the network 1000.

<データ所有者A端末100の構成例>
図2は、データ所有者A端末100の構成例を示すブロック図である。データ所有者A端末100は、例えば、入力装置101、出力装置102、通信装置103、CPU(Central Processing Unit)110、補助記憶装置120、及びメモリ150を有する計算機によって構成される。
<Configuration example of data owner A terminal 100>
FIG. 2 is a block diagram showing a configuration example of data owner A terminal 100. As shown in FIG. The data owner A terminal 100 is configured by a computer having an input device 101, an output device 102, a communication device 103, a CPU (Central Processing Unit) 110, an auxiliary storage device 120, and a memory 150, for example.

CPU110は、プロセッサを含み、メモリ150に格納されたプログラムを実行する。メモリ150は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU110が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。 CPU 110 includes a processor and executes programs stored in memory 150. The memory 150 includes a ROM (Read Only Memory) that is a nonvolatile storage element and a RAM (Random Access Memory) that is a volatile storage element. The ROM stores an unchangeable program (eg, BIOS (Basic Input/Output System)) and the like. The RAM is a high-speed and volatile storage element such as DRAM (Dynamic Random Access Memory), and temporarily stores programs executed by the CPU 110 and data used when executing the programs.

補助記憶装置120は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU110が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置120から読み出されて、メモリ150にロードされて、CPU110によって実行される。 The auxiliary storage device 120 is a large-capacity, non-volatile storage device such as a magnetic storage device (HDD (Hard Disk Drive)), flash memory (SSD (Solid State Drive)), etc., and stores programs and programs executed by the CPU 110. Stores data used during execution. That is, the program is read from the auxiliary storage device 120, loaded into the memory 150, and executed by the CPU 110.

入力装置101は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。出力装置102は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。 The input device 101 is a device such as a keyboard or a mouse that receives input from an operator. The output device 102 is a device, such as a display device or a printer, that outputs the execution results of a program in a format that can be visually recognized by an operator.

通信装置103は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置103は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含んでもよい。 The communication device 103 is a network interface device that controls communication with other devices according to a predetermined protocol. Furthermore, the communication device 103 may include, for example, a serial interface such as a USB (Universal Serial Bus).

CPU110が実行するプログラムの一部またはすべては、非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又は、非一時的記憶装置を備える外部計算機からネットワークを介してデータ所有者A端末100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置120に格納されてもよい。このため、データ所有者A端末100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。これは、データ受託者B端末200及び実施例2で後述するデータ受託者C端末300についても同様である。 A part or all of the programs executed by the CPU 110 are sent to the data owner A via a network from a removable medium (CD-ROM, flash memory, etc.) that is a non-temporary storage medium or an external computer equipped with a non-temporary storage device. The data may be provided to the terminal 100 and stored in a nonvolatile auxiliary storage device 120 that is a non-temporary storage medium. For this reason, data owner A terminal 100 preferably has an interface for reading data from removable media. This also applies to the data trustee B terminal 200 and the data trustee C terminal 300, which will be described later in the second embodiment.

データ所有者A端末100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、データ受託者B端末200及び実施例2で後述するデータ受託者C端末300についても同様である。 The data owner A terminal 100 is a computer system configured on one physical computer or on multiple logically or physically configured computers, and is a computer system configured on the same computer with separate threads. It may operate on a virtual computer built on multiple physical computer resources. This also applies to the data trustee B terminal 200 and the data trustee C terminal 300, which will be described later in the second embodiment.

CPU110は、例えば、パラメータ生成部111と、証跡計算部112と、を含む。パラメータ生成部111は、データ保持証明システムでデータ所有者A端末100が計算に用いるパラメータ141を生成する。 The CPU 110 includes, for example, a parameter generation section 111 and a trail calculation section 112. The parameter generation unit 111 generates parameters 141 used for calculation by the data owner A terminal 100 in the data retention certification system.

証跡計算部112は、預託対象のデータ131をデータ所有者A端末100がデータ131をデータ受託者B端末200に送信する前に、データ131と生成されたパラメータ141とに基づいて、証跡データ132を計算する。証跡データ132は、データ受託者B端末200が正しいデータ(データ所有者A端末100がデータ受託者B端末200に対して送信した元のデータに対して改変(改ざんや消去など)などが実行されていないデータ)を保有していることを証明するためのデータである。 The trail calculation unit 112 converts the data 131 to be deposited into trail data 132 based on the data 131 and the generated parameters 141 before the data owner A terminal 100 transmits the data 131 to the data trustee B terminal 200. Calculate. The trail data 132 is the correct data (the original data sent by the data owner A terminal 100 to the data trustee B terminal 200, which has been modified (altered, deleted, etc.)) by the data trustee B terminal 200. This data is used to prove that the company owns the

例えば、CPU110は、メモリ150にロードされたパラメータ生成プログラムに従って動作することで、パラメータ生成部111として機能し、メモリ150にロードされた証跡計算プログラムに従って動作することで、証跡計算部112として機能する。データ受託者B端末200のCPU210、及び実施例2で後述するデータ受託者C端末300のCPU310それぞれに含まれる後述する機能部についても、プログラムと機能部の関係は同様である。 For example, the CPU 110 functions as the parameter generation unit 111 by operating according to the parameter generation program loaded into the memory 150, and functions as the trail calculation unit 112 by operating according to the trail calculation program loaded into the memory 150. . The relationship between programs and functional units is the same for the functional units included in the CPU 210 of the data entrustee B terminal 200 and the CPU 310 of the data entrustee C terminal 300, which will be described later in the second embodiment.

なお、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 CPU 110, the CPU 210 of the data trustee B terminal 200, and the CPU 310 of the data trustee C terminal 300, which will be described later in the second embodiment, may be implemented using, for example, an ASIC (Application Specific Integrated Circuit). ) or FPGA (Field-Programmable Gate Array).

また、CPU110は、補助記憶装置120に格納されているデータの少なくとも一部を出力装置102に表示したり、補助記憶装置120に格納されているデータを読み込み、通信装置103を介して、データ受託者B端末200へ送信したりする。これは、データ受託者B端末200のCPU210、及び実施例2で後述するデータ受託者C端末300のCPU310についても同様である。 Further, the CPU 110 displays at least part of the data stored in the auxiliary storage device 120 on the output device 102, reads data stored in the auxiliary storage device 120, and sends data via the communication device 103. and transmits it to the user B terminal 200. This also applies to the CPU 210 of the data trustee B terminal 200 and the CPU 310 of the data trustee C terminal 300, which will be described later in the second embodiment.

補助記憶装置120は、それぞれデータを記録するための領域であるデータ記録部130及びパラメータ記録部140を含む。データ記録部130は、データ受託者B端末200に送信されるデータ131、及び証跡計算部112が計算した証跡データ132を保持する。パラメータ記録部140は、パラメータ生成部111が生成したパラメータ141を保持する。 The auxiliary storage device 120 includes a data recording section 130 and a parameter recording section 140, each of which is an area for recording data. The data recording unit 130 holds data 131 sent to the data trustee B terminal 200 and trail data 132 calculated by the trail calculation unit 112. The parameter recording unit 140 holds the parameters 141 generated by the parameter generation unit 111.

なお、補助記憶装置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 auxiliary storage device 120, the auxiliary storage device 220 of the data trustee B terminal 200, and the auxiliary storage device 320 of the data trustee C terminal 300, which will be described later in the second embodiment, are as follows: They may be stored in the memory 150, the memory 250 of the data trustee B terminal 200, and the memory 350 of the data trustee C terminal 300, which will be described later in Example 2, or an external database connected to the terminal. It may be stored in

なお、本実施形態において、データ保持証明システムが使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。 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 trustee B terminal 200>
FIG. 3 is a block diagram showing a configuration example of the data trustee B terminal 200. As shown in FIG. The data trustee B terminal 200 is configured by, for example, a computer having an input device 201, an output device 202, a communication device 203, a CPU 210, an auxiliary storage device 220, and a memory 250.

入力装置201、出力装置202、通信装置203、CPU210、補助記憶装置220、及びメモリ250それぞれのハードウェアとしての説明は、入力装置101、出力装置102、通信装置103、CPU110、補助記憶装置120、及びメモリ150のハードウェアとしての説明と同様であるため省略する。 The hardware description of each of the input device 201, output device 202, communication device 203, CPU 210, auxiliary storage device 220, and memory 250 is as follows: input device 101, output device 102, communication device 103, CPU 110, auxiliary storage device 120, Since the description is the same as that of the hardware of the memory 150, the description thereof will be omitted.

CPU210は、例えば、レスポンス計算部211を含む。レスポンス計算部211は、データ所有者A端末100から受信したデータ231及びチャレンジを用いてレスポンスを計算する。 The CPU 210 includes, for example, a response calculation unit 211. The response calculation unit 211 calculates a response using the data 231 and the challenge received from the data owner A terminal 100.

補助記憶装置220は、データを格納する領域であるデータ記録部230を含む。データ記録部230は、データ所有者A端末100から受信した検証対象のデータ231を保持する。 Auxiliary storage device 220 includes a data recording section 230 that is an area for storing data. The data recording unit 230 holds verification target data 231 received from the data owner A terminal 100.

<データの預託>
図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 data 131 held by data owner A terminal 100 to data trustee B terminal 200. Before the process in FIG. 4 starts, data 131 is stored in the data recording unit 130 of the data owner A terminal 100.

ステップS401において、データ所有者A端末100のパラメータ生成部111は、データ131に対する証跡データ132を計算するために必要なパラメータ141を生成し、パラメータ記録部140に記録する。ステップS401の詳細は、図5を用いて後述する。 In step S401, the parameter generation unit 111 of the data owner A terminal 100 generates parameters 141 necessary for calculating the trail data 132 for the data 131, and records them in the parameter recording unit 140. Details of step S401 will be described later using FIG. 5.

ステップS402において、データ所有者A端末100の証跡計算部112は、データ131とパラメータ141に基づいて証跡データ132を計算する。ステップS402の詳細は、図6を用いて後述する。 In step S402, the trail calculation unit 112 of the data owner A terminal 100 calculates trail data 132 based on the data 131 and parameters 141. Details of step S402 will be described later using FIG. 6.

ステップS403において、証跡計算部112は、データ131をデータ受託者B端末200に送付する。ステップS404において、データ受託者B端末200のレスポンス計算部211は、データ131を受信した後、データ131をデータ記録部230にデータ231として記録する。 In step S403, the trail calculation unit 112 sends the data 131 to the data trustee B terminal 200. In step S404, after receiving the data 131, the response calculation unit 211 of the data trustee B terminal 200 records the data 131 in the data recording unit 230 as data 231.

ステップS405において、データ所有者A端末100の証跡計算部112は、証跡データ132をデータ記録部130に記録する。さらに、証跡計算部112は、データ131をデータ記録部130に保管したままとしてもよいし、データ131をデータ記録部130から消去してもよい。ステップS405の処理は、ステップS402以降かつステップS403の処理の前に実行されてもよい。 In step S405, the trail calculation unit 112 of the data owner A terminal 100 records the trail data 132 in the data recording unit 130. Furthermore, the trail calculation unit 112 may keep the data 131 stored in the data recording unit 130 or may delete the data 131 from the data recording unit 130. The process in step S405 may be executed after step S402 and before the process in step S403.

図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 parameter 141 generation process in step S401. In step S501, the parameter generation unit 111 of the data owner A terminal 100 randomly generates a natural number n. Specifically, for example, the parameter generation unit 111 calculates a natural number n included in a predetermined range, such as a range larger than 2^127 (“^” indicates a power) and smaller than 2^128. Select randomly. Note that in step S401, the parameter generation unit 111 may randomly generate integers, prime numbers, odd numbers, etc. included in a predetermined range instead of natural numbers included in the predetermined range.

ステップS502において、パラメータ生成部111は、データ131をブロック分割するための各ブロックのサイズを決定する。パラメータ生成部111は、全てのブロックのサイズを予め定められた同じ長さ、例えば512MBなどに決定してもよいし、少なくとも一部のブロックのサイズが異なるように決定してもよい。 In step S502, the parameter generation unit 111 determines the size of each block for dividing the data 131 into blocks. The parameter generation unit 111 may determine the sizes of all blocks to be the same predetermined length, such as 512 MB, or may determine the sizes of at least some blocks to be different.

パラメータ生成部111は、例えば、乱数を用いて各ブロックサイズを決定することで、少なくとも一部のブロックのサイズが異なるようにブロックサイズを決定することができる。また、パラメータ生成部111は、擬似乱数生成器を用いて、各ブロックサイズを決定してもよい。なお、パラメータ生成部111は、乱数を用いて各ブロックサイズを決定した場合は当該乱数を、擬似乱数生成器を用いて各ブロックサイズを決定した場合は擬似乱数生成器に対して入力されたシードをパラメータ141としてパラメータ記録部140に記録する。 For example, the parameter generation unit 111 can determine the block size so that at least some of the blocks have different sizes by determining the size of each block using random numbers. Further, the parameter generation unit 111 may determine each block size using a pseudo-random number generator. Note that the parameter generation unit 111 uses the random numbers when determining each block size using random numbers, and the seed input to the pseudo random number generator when determining each block size using a pseudo random number generator. is recorded in the parameter recording unit 140 as a parameter 141.

なお、各ブロックのサイズは、自然数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 data 131.

なお、パラメータ生成部111は、ブロック分割のアルゴリズム(ブロック分割の位置及び/又は各ブロックのサイズ)、及び各ブロックのサイズの情報を、ステップS403において、データ131とともにデータ受託者B端末200に送信し、データ受託者B端末200のレスポンス計算部211は当該情報をデータ231とともにデータ記録部230に記録する。 Note that the parameter generation unit 111 transmits information on the block division algorithm (block division position and/or size of each block) and the size of each block to the data trustee B terminal 200 together with the data 131 in step S403. Then, the response calculation section 211 of the data entrustee B terminal 200 records the information in the data recording section 230 together with the data 231.

図6は、ステップS402における証跡データ132の計算処理の一例を示すフローチャートである。ステップS601において、証跡計算部112は、ステップS502において決定されたブロック分割手順及びブロックサイズに基づいて、例えば、データ131に対するブロック分割を以下の(式1)を用いて実行する。 FIG. 6 is a flowchart showing an example of the calculation process of the trail data 132 in step S402. In step S601, the trail calculation unit 112 executes block division of the data 131 using the following (Formula 1), for example, based on the block division procedure and block size determined in step S502.

M=M1||M2||・・・|Mt・・・(式1) M=M1||M2||...|Mt... (Formula 1)

ここでMはデータ131であり、Mi(i=1,2,..,t)はデータ131の分割後の各ブロックであり、||は各ブロックの結合を示す。なお、tは、この例におけるブロック総数である。 Here, M is the data 131, Mi (i=1, 2, . . . , t) is each block of the data 131 after division, and || indicates the combination of the blocks. Note that t is the total number of blocks in this example.

ステップS602において、証跡計算部112は、各ブロックMiに対し、ステップS501で生成された自然数nを用いて、Miをnで割った時の剰余αiを計算し、以下の(式2)が示すt個のブロックそれぞれに対応するαiの全体からなる集合A(M)を、証跡データ132としてデータ記録部130に保管する。 In step S602, the trail calculation unit 112 uses the natural number n generated in step S501 for each block Mi to calculate the remainder αi when Mi is divided by n, as shown in the following (Equation 2). A set A(M) consisting of the entire αi corresponding to each of t blocks is stored in the data recording unit 130 as trail data 132.

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 owner A terminal 100 entrusts the data 131 to the data entrustee B terminal 200, the data entruster B terminal 200 entrusts the data 231 without altering it (falsification, deletion, etc.). It will be checked to see if it has been stored as it was.

ステップS701において、データ所有者A端末100の証跡計算部112は、データ131をデータ受託者B端末200が改変なく保管していることを確かめるために必要なチャレンジを生成する。ステップS701の詳細は、図8を用いて後述する。 In step S701, the trail calculation unit 112 of the data owner A terminal 100 generates a challenge necessary to confirm that the data 131 is stored without modification by the data trustee B terminal 200. Details of step S701 will be described later using FIG. 8.

ステップS702において、証跡計算部112は、チャレンジを含む保持証明リクエストをデータ受託者B端末200に送信する。ステップS703において、データ受託者B端末200のレスポンス計算部211は、チャレンジを含む保持証明リクエストを受信する。 In step S702, the trail calculation unit 112 transmits a retention certification request including a challenge to the data trustee B terminal 200. In step S703, the response calculation unit 211 of the data trustee B terminal 200 receives the retention certification request including the challenge.

ステップS704において、レスポンス計算部211は、保管しているデータ231とチャレンジとを用いてレスポンスを計算する。ステップS704の詳細は、図8を用いて後述する。ステップS705において、レスポンス計算部211は、ステップS704で計算したレスポンスをデータ所有者A端末100に送信する。 In step S704, the response calculation unit 211 calculates a response using the stored data 231 and the challenge. Details of step S704 will be described later using FIG. 8. In step S705, the response calculation unit 211 transmits the response calculated in step S704 to the data owner A terminal 100.

ステップS706において、データ所有者A端末100の証跡計算部112はレスポンスを受信する。ステップS707において、証跡計算部112は、証跡データ132と、受信したレスポンスと、を用いて預託したデータ131が改変されずにデータ受託者B端末200に保管されているか否かを判定して、判定結果(データ131が改変されていると判定した場合にはOK、改変されていないと判定した場合にはNG)を例えば出力装置102に出力して、データ保持証明を終了する。ステップS707の詳細は、図8を用いて後述する。 In step S706, the trail calculation unit 112 of the data owner A terminal 100 receives the response. In step S707, the trail calculation unit 112 uses the trail data 132 and the received response to determine whether or not the deposited data 131 is stored in the data trustee B terminal 200 without being altered. The determination result (OK if it is determined that the data 131 has been modified; NG if it is determined that the data 131 has not been modified) is output to, for example, the output device 102, and the data retention certification is completed. Details of step S707 will be described later using FIG. 8.

図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 trail calculation unit 112 of the data owner A terminal 100 randomly generates a t-variable integer coefficient polynomial F(x1, x2, . . . , xt). Note that the trail calculation unit 112 may randomly select the coefficients of F(x1, x2, . . . , xt) within a predetermined range. Note that F(x1, x2, . . . , xt) can take any degree, but the amount of calculation can be reduced if it is a polynomial with a low degree, such as a first-order polynomial, for example. Further, even if the polynomial is a low degree polynomial such as a first degree polynomial, sufficient accuracy of data retention proof can be ensured.

また、証跡計算部112は、F(x1,x2,・・・,xt)の係数の決定方法自体を選択してもよい。F(x1,x2,・・・,xt)に含まれる各項の次数や係数を、擬似ランダム関数を用いて決定し、擬似ランダム関数への入力としてのシードを決定する方法は、F(x1,x2,・・・,xt)の係数の決定方法の一例である。 Further, the trail calculation unit 112 may select the method itself for determining the coefficients of F(x1, x2, . . . , xt). The method of determining the order and coefficient of each term included in F(x1,x2,...,xt) using a pseudorandom function and determining the seed as input to the pseudorandom function is to , x2, . . . , xt).

具体的には、例えば、証跡計算部112は、t変数1次多項式に対する係数を、ハッシュ関数を連続的に適用する方法として決定し、t変数1次多項式を生成したことを示す情報と、ハッシュ関数の最初の入力をチャレンジとしてデータ受託者B端末200に送付するなどしてもよい。 Specifically, for example, the trail calculation unit 112 determines the coefficients for the t-variable first-order polynomial using a method of continuously applying a hash function, and includes information indicating that the t-variable first-order polynomial is generated, and the hash The first input of the function may be sent to the data trustee B terminal 200 as a challenge.

より具体的には、例えば、証跡計算部112は、ハッシュ関数の入力Sをランダムに生成し、ハッシュチェーンh_1=h(S),h_i=h(h_(i-1))とし、多項式Fを、下記の(式3)によって決定すればよい。但し、下記の(式3)における「*」は乗算を表す。 More specifically, for example, the trail calculation unit 112 randomly generates the input S of the hash function, sets the hash chain h_1=h(S), h_i=h(h_(i-1)), and sets the polynomial F to , may be determined by the following (Equation 3). However, "*" in the following (Formula 3) represents multiplication.

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 trail calculation unit 112 transmits information indicating the procedure for generating the polynomial and S, or the generated polynomial itself as a challenge to the data trustee B terminal 200. In step S803, the response calculation unit 211 of the data trustee B terminal 200 receives the challenge.

ステップS804において、レスポンス計算部211は、ステップS403で受信したブロック分割のアルゴリズムに従って(即ちデータ231を分割する位置及び各ブロックのブロック数はステップS403におけるブロック分割と同じである)、データ231をブロック分割する。以下、データ231をM’とするとき、下記の(式4)に示すブロック分割が行われたものとする。 In step S804, the response calculation unit 211 blocks the data 231 according to the block division algorithm received in step S403 (that is, the position at which the data 231 is divided and the number of blocks in each block are the same as the block division in step S403). To divide. Hereinafter, when data 231 is referred to as M', it is assumed that block division as shown in (Equation 4) below has been performed.

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 response calculation unit 211 regards each block of M' as a bit sequence, and further regards the bit sequence as a binary expansion of an integer to obtain an integer value, and calculates the integer value as shown in (Equation 5) below. Substitute into the polynomial F indicated by the challenge and calculate the integer value of the polynomial.

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 response calculation unit 211 transmits F(M') to the data owner A terminal 100 as a response. In step S807, the trail calculation unit 112 of the data owner A terminal 100 receives the response F(M').

ステップS808において、証跡計算部112は、証跡データ132(A(M))を用いて、剰余計算によりデータの改変の有無を判定する。具体的には、例えば、証跡計算部112は、nと証跡データA(M)とを用いて、下記の(式6)を計算する。 In step S808, the trail calculation unit 112 uses the trail data 132 (A(M)) to determine whether or not the data has been altered through remainder calculation. Specifically, for example, the trail calculation unit 112 calculates the following (Formula 6) using n and trail data A(M).

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 trail calculation unit 112 determines whether F (α1, α2, ..., αt) is equal to the response F (M') as a remainder modulo n, according to (Equation 7) below. do.

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 trail calculation unit 112 determines that the congruence formula (Formula 7) holds, it determines that there is no modification of the data and outputs "OK" to the output device 102, so that the congruence formula (Formula 7) is satisfied. If it is determined that this is not true, it is determined that the data has been altered and "NG" is output to the output device 102. Note that mod n in (Equation 7) represents the remainder after dividing by n, that is, the remainder.

以上、本実施例のデータ保持証明システムにおいては、加算、乗算、及び剰余計算等の計算量の少ない処理のみによってデータが改変されているか否かを判定することができる。具体的には、データ所有者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 owner A terminal 100 selects the natural number n when calculating the trail as a smaller value than the block size into which the data 131 is divided, thereby reducing the size of the trail for the original data 131. Can be made smaller. Furthermore, if the data owner A terminal 100 generates a polynomial with a low degree and small coefficients during data retention certification processing, it is possible to reduce the amount of calculation when calculating the value of the polynomial. be. In other words, calculations in the data retention certification process can be executed efficiently, and requests from large volumes of data and a large number of data owners can be efficiently handled. Furthermore, by randomly selecting a polynomial each time, the data owner A terminal 100 can prevent the data trustee B terminal 200 from making a false report based on the challenge response.

また、データ所有者A端末100はデータ131をブロック分割することにより、データ所有者によるデータの一部のアップデートの際における通信量を抑えることができる。 Furthermore, by dividing the data 131 into blocks, the data owner A terminal 100 can reduce the amount of communication when the data owner updates a portion of the data.

次にデータ保持証明システムのユースケースを説明する。 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 owner A terminal 100, a data trustee B terminal 200, and a data trustee C terminal 300, which are connected via a network 1000 such as the Internet.

データ所有者A端末100と、2つのデータ受託者端末がネットワーク1000を通じて通信を行い、データ所有者A端末100が持つデータを1つ目のデータ受託者端末に預託した後、預託したデータの一部又は全部を他のデータ受託者端末に移設する。つまり、本実施例のデータ保持証明システムは、複数のデータ受託者間におけるデータ移設を実現する。 The data owner A terminal 100 and two data trustee terminals communicate through the network 1000, and after entrusting the data owned by the data owner A terminal 100 to the first data trustee terminal, a portion of the deposited data is Transfer part or all of the data to another data fiduciary terminal. In other words, the data retention certification system of this embodiment realizes data transfer between a plurality of data entrustees.

本実施例では、データ所有者A端末100が1つ目のデータ受託者端末にデータを預託する際、データの内容を秘匿するために暗号化を施す。1つ目のデータ受託者端末に預託した暗号化データを他のデータ受託者端末に移設する際、高い安全性を確保するため、暗復号化のための鍵を、別の鍵に変更することを想定する。 In this embodiment, when data owner A terminal 100 entrusts data to the first data trustee terminal, encryption is performed to keep the contents of the data secret. When transferring encrypted data entrusted to the first data entrustee terminal to another data entrustee terminal, the key for encryption and decryption must be changed to a different key to ensure high security. Assume that

<データ所有者A端末100とデータ受託者B端末200>
本実施例のデータ所有者A端末100の構成例は、実施例1の図2に示したデータ所有者A端末100の構成例と同様であり、本実施例のデータ受託者B端末200の構成例は実施例1の図3に示したデータ受託者B端末200と同様の構成例であるため、それぞれ説明を省略する。
<Data owner A terminal 100 and data trustee B terminal 200>
The configuration example of the data owner A terminal 100 of the present embodiment is similar to the configuration example of the data owner A terminal 100 shown in FIG. 2 of the first embodiment, and the configuration of the data consignee B terminal 200 of the present embodiment. The example has the same configuration as the data entrustee B terminal 200 shown in FIG. 3 of the first embodiment, so a description thereof will be omitted.

<データ受託者C端末300>
図10は、データ受託者C端末300の構成例を示すブロック図である。データ受託者C端末300は、例えば、入力装置301、出力装置302、通信装置303、CPU310、補助記憶装置320、及びメモリ350を有する計算機によって構成される。
<Data trustee C terminal 300>
FIG. 10 is a block diagram showing a configuration example of the data trustee C terminal 300. As shown in FIG. The data trustee C terminal 300 is configured by a computer having an input device 301, an output device 302, a communication device 303, a CPU 310, an auxiliary storage device 320, and a memory 350, for example.

入力装置301、出力装置302、通信装置303、CPU310、補助記憶装置320、及びメモリ350それぞれのハードウェアとしての説明は、入力装置101、出力装置102、通信装置103、CPU110、補助記憶装置120、及びメモリ150のハードウェアとしての説明と同様であるため省略する。 The hardware descriptions of the input device 301, output device 302, communication device 303, CPU 310, auxiliary storage device 320, and memory 350 are as follows: input device 101, output device 102, communication device 103, CPU 110, auxiliary storage device 120, Since the description is the same as that of the hardware of the memory 150, the description thereof will be omitted.

但し、CPU310は、内部の処理がデータ受託者C端末300の外部から盗み見ることができない、つまりCPU310上において他の処理を実行する領域と隔離され、秘密計算が実行可能な保護領域3100を有する。TEE(Trusted Execution Environment)などは、保護領域3100の一例である。保護領域3100と、データ所有者A端末100と、の間で暗号化通信が可能であるとする。 However, the CPU 310 has a protected area 3100 in which internal processing cannot be viewed from outside the data entrustee C terminal 300, that is, it is isolated from areas on the CPU 310 where other processes are executed, and in which secure calculations can be executed. A TEE (Trusted Execution Environment) or the like is an example of the protected area 3100. It is assumed that encrypted communication is possible between the protected area 3100 and the data owner A terminal 100.

保護領域3100は、レスポンス計算部311及び暗復号化部312を含む。レスポンス計算部311は、データ受託者B端末200から移設されたデータ331と、チャレンジと、を用いてレスポンスを計算する。暗復号化部312は、鍵の復号、データの暗号化及び復号を実行する。 The protected area 3100 includes a response calculation section 311 and an encryption/decryption section 312. The response calculation unit 311 calculates a response using the data 331 transferred from the data entrustee B terminal 200 and the challenge. The encryption/decryption unit 312 executes key decryption, data encryption, and decryption.

補助記憶装置320は、データを格納する領域であるデータ記録部330を含む。データ記録部330は、データ受託者B端末200から受信したデータ331を保持する。 Auxiliary storage device 320 includes a data recording section 330 that is an area for storing data. The data recording unit 330 holds data 331 received from the data trustee B terminal 200.

<データ移設>
図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 parameter generation unit 111 of the data owner A terminal 100 generates parameters for the data 131 to be entrusted in plaintext using a method similar to step S401, and the trail calculation unit 112 of the data owner A terminal 100 generates parameters for the data 131 to be entrusted in plaintext. , the trail for the plaintext data 131 to be deposited is calculated using a method similar to step S402.

ステップS1002において、証跡計算部112は、データ131を共通鍵暗号方式などで鍵Kを用いて暗号化し、暗号化されたデータ131をデータ受託者B端末200に送信する。なお、鍵Kは予め補助記憶装置120に格納されていてもよいし、ステップS1002の処理が開始するまでに証跡計算部112によって生成されてもよい。ステップS1003において、データ受託者B端末200のレスポンス計算部211は、受信した暗号化されたデータ131を、データ231として保管する。 In step S1002, the trail calculation unit 112 encrypts the data 131 using the key K using a common key encryption method or the like, and transmits the encrypted data 131 to the data trustee B terminal 200. Note that the key K may be stored in the auxiliary storage device 120 in advance, or may be generated by the trail calculation unit 112 before the process of step S1002 starts. In step S1003, the response calculation unit 211 of the data trustee B terminal 200 stores the received encrypted data 131 as data 231.

ステップS1004において、データ受託者B端末200のレスポンス計算部211は、例えば、データ所有者A端末100の依頼に応じて、保管しているデータ231をデータ受託者C端末300に送信する。なお、預託されているデータ231がブロックごとに暗号化されている場合には、レスポンス計算部211は、暗号化されているデータ231のうち、依頼された一部のブロックの暗号化データのみをデータ受託者C端末300に送信してもよい。 In step S1004, the response calculation unit 211 of the data trustee B terminal 200 transmits the stored data 231 to the data trustee C terminal 300, for example, in response to a request from the data owner A terminal 100. Note that if the deposited data 231 is encrypted block by block, the response calculation unit 211 will only process the encrypted data of the requested part of the encrypted data 231. It may also be transmitted to the data entrustee C terminal 300.

ステップS1005において、データ受託者C端末300のレスポンス計算部311は、受信した暗号化データをデータ331として保管する。ステップS1006において、データ所有者A端末100の証跡計算部112は、ステップS801と同様の方法で生成した、平文のデータ131に対するチャレンジを生成し、もとの暗号化の際に用いた鍵Kと、新しい鍵K’と、を暗号化した暗号文と、生成したチャレンジと、をデータ受託者C端末300の保護領域3100に送信する。 In step S1005, the response calculation unit 311 of the data trustee C terminal 300 stores the received encrypted data as data 331. In step S1006, the trail calculation unit 112 of the data owner A terminal 100 generates a challenge for the plaintext data 131 generated in the same manner as step S801, and challenges the plaintext data 131 using the key K used in the original encryption. , new key K', and the generated challenge are transmitted to the protected area 3100 of the data trustee C terminal 300.

なお、鍵K’は予め補助記憶装置120に格納されていてもよいし、ステップS1006の処理が開始するまでに証跡計算部112によって生成されてもよい。また、鍵K及びK’を暗号化するための暗号鍵及び暗号化アルゴリズムは、例えば、データ所有者A端末100とデータ受託者C端末300との間で予め共有されている。 Note that the key K' may be stored in the auxiliary storage device 120 in advance, or may be generated by the trail calculation unit 112 before the process of step S1006 starts. Further, the encryption key and encryption algorithm for encrypting the keys K and K' are shared in advance between the data owner A terminal 100 and the data trustee C terminal 300, for example.

ステップ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/decryption unit 312 of the data trustee C terminal 300 decrypts the key K and the key K' within the protected area 3100, and transfers the data 331 received in step S1005 to the protected area using the key K. 3100. Furthermore, in step S1007, the response calculation unit 311 calculates a response within the protected area 3100 based on the decrypted data and the challenge transmitted in step S1006, using the same method as in steps S804 and S805. do. Furthermore, in step S1007, the encryption/decryption unit 312 encrypts the decrypted data with the key K' inside the protected area 3100 and stores it as data 331.

ステップS1008において、レスポンス計算部311は、ステップS1007で計算したレスポンスをデータ所有者A端末100に送信する。 In step S1008, the response calculation unit 311 transmits the response calculated in step S1007 to the data owner A terminal 100.

ステップS1009において、データ所有者A端末100の証跡計算部112は、ステップS808と同様の方法でレスポンスをチェックし、データが改変されていないか否かを判定する。また、ステップS1009において、証跡計算部112は、(式7)の合同式が成立すると判定した場合には、データの改変がないと判定して「OK」を出力装置102に出力し、(式7)の合同式が成立しないと判定した場合には、データの改変があると判定して「NG」を出力装置102に出力する。 In step S1009, the trail calculation unit 112 of the data owner A terminal 100 checks the response in the same manner as in step S808, and determines whether the data has been altered. Further, in step S1009, if the trail calculation unit 112 determines that the congruence formula (Formula 7) holds true, it determines that there is no modification of the data, outputs "OK" to the output device 102, and outputs "OK" to the output device 102 (Formula 7). If it is determined that the congruence equation 7) does not hold, it is determined that the data has been altered and "NG" is output to the output device 102.

従って、データ所有者A端末100は、データが改変されていないと判断した場合、データ受託者B端末200に保管されていた暗号化データが改変されずに保管されていたこと、及びデータ受託者B端末200からデータ受託者端末C300にデータが正しく移設されたことを確認することができる。 Therefore, if the data owner A terminal 100 determines that the data has not been altered, the data owner It can be confirmed that the data has been correctly transferred from the B terminal 200 to the data trustee terminal C300.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 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 Trustee B Terminal 203 Communication Device, 210 CPU, 211 response calculation unit, 220 auxiliary storage device, 231 data, 300 data entrustee C terminal, 303 communication device, 310 CPU, 311 response calculation unit, 312 encryption/decryption unit, 331 data, 3100 protected area

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.
請求項1に記載のデータ保持証明システムであって、
前記預託対象データ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端末は、前記多項式として、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.
請求項1に記載のデータ保持証明システムであって、
前記整数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.
請求項1に記載のデータ保持証明システムであって、
前記検証対象データを保持する第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
請求項6に記載のデータ保持証明方法であって、
前記預託対象データ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.
請求項6に記載のデータ保持証明方法であって、
前記第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.
請求項6に記載のデータ保持証明方法であって、
前記整数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.
請求項6に記載のデータ保持証明方法であって、
前記データ保持証明システムは、前記検証対象データを保持する第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.
JP2022095954A 2022-06-14 2022-06-14 Data retention certification system and data retention certification method Pending JP2023182383A (en)

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)

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