JP2020064245A - Secret distribution device, secret distribution system, and secret distribution method - Google Patents
Secret distribution device, secret distribution system, and secret distribution method Download PDFInfo
- Publication number
- JP2020064245A JP2020064245A JP2018197533A JP2018197533A JP2020064245A JP 2020064245 A JP2020064245 A JP 2020064245A JP 2018197533 A JP2018197533 A JP 2018197533A JP 2018197533 A JP2018197533 A JP 2018197533A JP 2020064245 A JP2020064245 A JP 2020064245A
- Authority
- JP
- Japan
- Prior art keywords
- data
- secret
- distributed data
- value
- random number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本発明は、秘密分散装置、秘密分散システム、及び秘密分散方法に関する。 The present invention relates to a secret sharing device, a secret sharing system, and a secret sharing method.
秘密分散法の代表例として、Shamirが考案した(k,n)閾値秘密分散法がある。Shamirの(k,n)閾値秘密分散法は、秘密情報(元データ)を、意味を成さないn個の分散データに分散し、n個の分散データのうちk個以上の分散データを集めると秘密情報(元データ)を復元可能な手法である。 A representative example of the secret sharing method is a (k, n) threshold secret sharing method devised by Shamir. Shamir's (k, n) threshold secret sharing method disperses secret information (original data) into n meaningless distributed data, and collects k or more distributed data out of n distributed data. And confidential information (original data) can be restored.
しかし、Shamirの(k,n)閾値秘密分散法は、秘密情報の分散処理や復元処理を、複雑な処理である多項式補間により実現するため、大量のデータを秘密分散化するのには、多くの計算量を要する。 However, Shamir's (k, n) threshold secret sharing method realizes the secret information sharing process and the restoring process by polynomial interpolation, which is a complicated process, and therefore, it is often used to secretly share a large amount of data. Requires a large amount of calculation.
そこで、簡単な処理である排他的論理和演算のみで実現される(2,n)秘密分散方式の背景技術として特開2007−124032号公報(特許文献1)がある。この公報には、「保存部11の秘密情報Sを分割してn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)を生成し、ゼロ値からなる分割秘密データK(0)を生成し、各分割秘密データと例えば同一サイズのn−1個の乱数データR(0),…,R(i),…,R(n-2)を生成し、分割秘密データK(0),…,K(n-1)及び乱数データR(0),…,R(n-2)に基づいて、n(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)を算出し((+)は排他的論理和)、互いに同一の行番号jを有する分散部分データD(j,0)〜D(j,n-2)を有するn個の分散情報D(0),…,D(j),…,D(n-1)を個別にn個の記憶装置に配布する。このうち、任意の2個の分散情報D(i),D(j)に基づいて、秘密情報Sを復元できる。」と記載されている(要約参照)。 Therefore, there is JP-A-2007-124032 (Patent Document 1) as a background art of the (2, n) secret sharing scheme which is realized only by an exclusive OR operation which is a simple process. In this publication, "secret information S in the storage unit 11 is divided to generate n-1 pieces of first divided secret data K (1), ..., K (j), ..., K (n-1). , Divided zero secret data K (0) is generated, and n−1 random number data R (0), ..., R (i) ,. 2) is generated, and based on the divided secret data K (0), ..., K (n-1) and the random number data R (0), ..., R (n-2), n (n-1) Distributed partial data D (j, i) = K (j-i (mod n)) (+) R (i) is calculated ((+) is an exclusive OR), and the shared row numbers j are the same. N pieces of shared information D (0), ..., D (j), ..., D (n-1) having partial data D (j, 0) to D (j, n-2) are individually n pieces. The data is distributed to a storage device. Zui and have been described as able to recover the secret information S. "(See Abstract).
しかし、特許文献1に記載の技術は、分散データが壊れている場合や、故意に第三者が正しい分散データを改竄した場合等において、分散データが正しいものであるかを判断することができない。そこで本発明の一態様は、秘密分散において、正しいデータであることを確認可能な分散データを、少ない計算量で生成することを目的とする。
However, the technique described in
上記課題を解決するために、本発明の一態様は、以下の構成を採用する。秘密分散装置は、プロセッサと記憶装置とを備え、前記記憶装置は、秘密データと、公開パラメータと、を保持し、前記プロセッサは、前記秘密データを分割し、前記分割した秘密データと、複数の乱数からなる第1乱数群と、の排他的論理和に基づいて、複数の部分分散データを生成し、前記秘密データの所定のハッシュ関数によるハッシュ値と、前記第1乱数群の乱数から得られる第1の値の前記所定のハッシュ関数によるハッシュ値と、前記複数の部分分散データそれぞれの前記所定のハッシュ関数によるハッシュ値と、を算出し、前記複数の部分分散データそれぞれについて、前記秘密データのハッシュ値と前記第1の値のハッシュ値とを係数又は定数項として有する第1の関数に当該部分分散データを代入して得られる値と、前記第1乱数群に含まれない乱数からなる第2乱数群の乱数を係数又は定数項として有する第2の関数に当該部分分散データを代入して得られる値と、を含む付加分散データを、当該部分分散データに付加して分散データを生成し、前記分散データそれぞれを異なる出力先へと出力し、前記公開パラメータと前記秘密データのハッシュ値と前記第2乱数群に含まれる第1乱数とに基づいて算出される第2の値と、前記公開パラメータと前記第1の値のハッシュ値と前記第2乱数群に含まれる第2乱数とに基づいて算出される第3の値と、を前記分散データの検証用データに含める、秘密分散装置。 In order to solve the above problems, one embodiment of the present invention employs the following configuration. The secret sharing device includes a processor and a storage device, the storage device holds secret data and public parameters, the processor divides the secret data, and divides the secret data, and a plurality of divided secret data. A plurality of partial distributed data is generated based on an exclusive OR of a first random number group consisting of random numbers, and is obtained from a hash value of the secret data by a predetermined hash function and a random number of the first random number group. A hash value of the first value by the predetermined hash function and a hash value of each of the plurality of partial distribution data by the predetermined hash function are calculated, and the secret data of each of the plurality of partial distribution data is calculated. A value obtained by substituting the partial variance data into a first function having a hash value and a hash value of the first value as a coefficient or a constant term; A value obtained by substituting the partial distributed data into a second function having a random number of a second random number group that is not included in 1 random number group as a coefficient or a constant term is added to the partial distributed data. Based on the public parameter, the hash value of the secret data, and the first random number included in the second random number group, the distributed data is generated by adding it to the distributed data, and the distributed data is output to different output destinations. The second value calculated by the above, the third value calculated based on the public parameter, the hash value of the first value, and the second random number included in the second random number group, and the variance. A secret sharing device that is included in the data for data verification.
本発明の一態様によれば、秘密分散において、正しいデータであることを確認可能な分散データを、少ない計算量で生成することができる。 According to one aspect of the present invention, in secret sharing, it is possible to generate distributed data that can be confirmed to be correct data with a small amount of calculation.
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。 Problems, configurations, and effects other than those described above will be clarified by the following description of the embodiments.
以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In this embodiment, the same components are denoted by the same reference symbols in principle, and repeated description will be omitted. It should be noted that the present embodiment is merely an example for realizing the present invention and does not limit the technical scope of the present invention.
<システム構成>
図1は、秘密分散システムの全体構成例を示すブロック図である。この図は、秘密分散システムの全体構成例と共に、秘密分散システムに含まれる各装置の機能構成例も示している。
<System configuration>
FIG. 1 is a block diagram showing an example of the overall configuration of a secret sharing system. This figure shows an example of the overall configuration of the secret sharing system as well as an example of the functional configuration of each device included in the secret sharing system.
秘密分散システム1は、例えば、クライアント装置10と、検証用データ公開装置30と、複数(本実施例ではn台とする)の保管サーバ装置20i(i=1,2,・・・,n−1)と、を含み、これらは互いにインターネット等のネットワーク40を介して接続されている。
The
つまり、秘密分散システム1は、クライアント装置10と保管サーバ装置20iと検証用データ公開装置30が、インターネット等のネットワーク40を介して通信可能に接続されて構成されたコンピュータネットワークシステムである。尚、複数の保管サーバ装置20iは、一部又は全部が同一の組織によって運用されてもよいし、また、全部が異なる組織によって運用されてもよい。
That is, the
なお、以下、保管サーバ装置201〜20n−1及び保管サーバ装置201〜20n−1に含まれる各部を特に区別する必要がない場合には、保管サーバ装置20という記載のように添え字を省略するか、保管サーバ装置20iという記載のように一般化して記載する。 In addition, hereinafter, when it is not necessary to distinguish between the respective units included in the storage server devices 20 1 to 20 n-1 and the storage server devices 20 1 to 20 n-1 , the storage server devices 20 are added as described. The letters are omitted or generalized as described as the storage server device 20 i .
クライアント装置10は、例えば、通信部101、制御部102、入出力部103、分散データ生成部104、データ復元部105、及び乱数生成部106を含む。通信部101は、他の装置との通信を行う。制御部102は、クライアント装置10の全体制御を行う。入出力部103は、クライアント装置10への指示及びデータ等の入力、並びにクライアント装置10からの指示及びデータ等の出力を行う。
The
分散データ生成部104は、後述する秘密情報を分散化して分散データD(i)を生成し、分散データD(i)を、それぞれ、保管サーバ装置20iに配布する。つまり、クライアント装置10は、秘密情報を分散する秘密情報分散装置として機能する。また、後述する検証用データ及び公開パラメータを生成して、検証用データ公開装置30に配布する。データ復元部105は、保管サーバ装置20から必要な数の(本実施例では、改竄及び破損等していない2つの正常な)分散化データを収集して元の秘密情報を復元する。
The distributed
乱数生成部106は、分散データ生成部104等からの指示に応じて乱数を生成する。また、クライアント装置10は、秘密情報107を保持する。秘密情報107は、分散化による秘匿対象のデータであり、分散化される前の元データである。
The random
各保管サーバ装置20iは、通信部201i、保存部202i、及び検証部204iを含む。通信部201iは他の装置との通信を行う。保存部202iは、通信部201iを介して受信した分散データ(D(i))203iを保持する。検証部204iは受信した分散データが改竄されていないか又は破損していないか等を検証する。
Each storage server device 20 i includes a
検証用データ公開装置30は、通信部301i、及び保存部302iを含む。通信部301iは他の装置との通信を行う。保存部302iは、例えば、通信部301iを介して受信した後述する検証用データ((G1,G2))303、及び後述する公開パラメータ((p,g1,g2))304を保持する。検証用データ303及び公開パラメータ304は、秘密分散システム1内で公開され、クライアント装置10及び保管サーバ装置20iによる分散データの改竄検知処理、並びにクライアント装置10による秘密情報の復元処理等に用いられる。
The verification
図2は、計算機50の構成例を示すブロック図である。クライアント装置10、保管サーバ装置20、及び検証用データ公開装置30は、それぞれ、例えば、図2に示す計算機によって構成される。計算機50は、例えば、通信装置501、入力装置502、メモリ503、補助記憶装置504、CPU(Central Processing Unit)505、及び出力装置506を含み、これらはバス507等の内部通信線を介して互いに接続されている。
FIG. 2 is a block diagram showing a configuration example of the computer 50. The
CPU505は、プロセッサを含み、メモリ503に格納されたプログラムを実行する。メモリ503は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
The CPU 505 includes a processor and executes a program stored in the
補助記憶装置504は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、CPU505が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置504から読み出されて、メモリ503にロードされて、CPU505によって実行される。
The auxiliary storage device 504 is a large-capacity and non-volatile storage device such as a magnetic storage device (HDD) or a flash memory (SSD), and stores a program executed by the CPU 505 and data used when the program is executed. . That is, the program is read from the auxiliary storage device 504, loaded into the
計算機50は、入力インターフェース及び出力インターフェースを有してもよい。入力インターフェースは、キーボードやマウスなどの入力装置502が接続され、オペレータからの入力を受けるインターフェースである。出力インターフェースは、液晶表示装置や有機EL(Electro Luminescence)ディスプレイ装置やプリンタなどの出力装置506が接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。 The computer 50 may have an input interface and an output interface. The input interface is an interface to which an input device 502 such as a keyboard or a mouse is connected and which receives an input from an operator. The output interface is an interface to which an output device 506 such as a liquid crystal display device, an organic EL (Electro Luminescence) display device, and a printer is connected, and outputs the execution result of the program in a format that can be visually recognized by the operator.
通信装置501は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。例えば、クライアント装置10の通信部101、保管サーバ装置20の通信部201、及び検証用データ公開装置30の通信部301は、それぞれ通信装置501によって構成される。
The communication device 501 is a network interface device that controls communication with other devices according to a predetermined protocol. For example, the
CPU505が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワーク40を介して計算機50に提供され、非一時的記憶媒体である不揮発性の補助記憶装置504に格納される。このため、計算機50は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
The program executed by the CPU 505 is provided to the computer 50 via a removable medium (CD-ROM, flash memory, etc.) or the
秘密分散システム1に含まれる各装置は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
Each device included in the
例えば、クライアント装置10の制御部102、分散データ生成部104、データ復元部105、乱数生成部106は、CPU505が実行するプログラムにより実現される。具体的には、例えば、CPU505は、メモリ503にロードされた制御プログラムに従って動作することで、制御部102として機能し、メモリ503にロードされた分散データ生成プログラムに従って動作することで、分散データ生成部104として機能する。保管サーバ装置20の検証部204についても同様である。
For example, the
例えば、保管サーバ装置20の保存部202i、及び検証用データ公開装置30の保存部302それぞれは、メモリ503又は補助記憶装置504に含まれる記憶領域の一部によって構成される。また、例えば、秘密情報107は、クライアント装置10のメモリ503又は補助記憶装置504に格納されている。
For example, the storage unit 202 i of the storage server device 20 and the
なお、本実施形態において、秘密分散システム1に含まれる各装置が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
In this embodiment, the information used by each device included in the
<処理手順例>
以下、本実施例における処理の一例について説明する。以下で説明する秘密分散処理に対応する各種動作は、秘密分散システム1を構成する各装置、即ちクライアント装置10、保管サーバ装置20i、及び検証用データ公開装置30それぞれがメモリ503等にロードして実行するプログラムによって実現される。
<Example of processing procedure>
Hereinafter, an example of processing in the present embodiment will be described. Various operations corresponding to the secret sharing processing described below are performed by loading the respective devices constituting the
まず、分散化処理について図3、図5、図6、及び図8を用いて説明する。図3は、秘密データ分散の全体処理の一例を示すシーケンス図である。図3の処理は、例えば、クライアント装置10のユーザからの指示(分散化化対象の秘密情報を示す情報を含む)を契機として開始する。 First, the decentralization process will be described with reference to FIGS. 3, 5, 6, and 8. FIG. 3 is a sequence diagram showing an example of the entire secret data distribution process. The process of FIG. 3 is triggered by, for example, an instruction from the user of the client device 10 (including information indicating secret information to be decentralized).
まず、クライアント装置10の分散データ生成部104は、公開パラメータ(p,g1,g2)を生成し(S10)、通信部101は、当該公開パラメータを検証用データ公開装置30に送信する(S11)。なお、公開パラメータは、後述する秘密情報の復元処理に用いられるため、分散データ生成部104は、生成した公開パラメータをクライアント装置10の補助記憶装置504に格納してもよい。
First, the distributed
検証用データ公開装置30は、受信した公開パラメータ(p,g1,g2)を公開パラメータ304として保存部302に保管すると共に、クライアント装置10及び保管サーバ装置20に対して、公開パラメータ304を秘密分散システム1内で公開する(S12)。つまり、クライアント装置10、及び保管サーバ装置20それぞれは、検証用データ公開装置30に対して公開パラメータ304の取得を要求することにより、検証用データ公開装置30から公開パラメータ304を取得することができる。
The verification
尚、値pは、q=(p−1)/2が素数となるような十分大きな素数(例えばpは1024bit以上の素数)とする。また、値g1,g2は、pを法とした有限体の位数qの異なる元、即ちg1,g2∈GF(p)、ord(g1)=ord(g2)=qである。なお、異なる秘密情報に、同一の公開パラメータ(p,g1,g2)が用いられてもよいし、秘密情報ごとに公開パラメータ(p,g1,g2)が異なってもよい。 The value p is a sufficiently large prime number such that q = (p-1) / 2 is a prime number (for example, p is a prime number of 1024 bits or more). Further, the values g 1 and g 2 are elements of different orders q of a finite field modulo p, that is, g 1 , g 2 εGF (p), ord (g 1 ) = ord (g 2 ) = q Is. Note that different secret information, the same public parameters (p, g 1, g 2 ) is to be used, the public parameters for each secret information (p, g 1, g 2 ) may be a different.
クライアント装置10の分散データ生成部104は、秘密情報107(以後、必要に応じて、秘密情報Sと記す)を分散化する(S20)。図5を用いてステップS20の分散化処理の詳細を説明する。
The distributed
図5は、ステップS20の秘密情報の分散化処理の詳細の一例を示すフローチャートである。尚、ここでは秘密情報Sのデータ長は、d×(n−1)であるものとする(dは1以上の所定の自然数)。仮に秘密情報Sのデータ長がn−1で割り切れない時は、分散データ生成部104は、秘密情報Sに対してパディング処理をすることによってデータ長をn−1で割り切れるように調整した値を、改めて秘密情報Sに決定する。
FIG. 5 is a flowchart showing an example of details of the secret information decentralization process of step S20. In this case, the data length of the secret information S is d × (n−1) (d is a predetermined natural number of 1 or more). If the data length of the secret information S is not divisible by n-1, the distributed
まず、分散データ生成部104は、秘密情報S∈{0,1}d(n−1)を分散化する(S201)。具体的には、例えば、分散データ生成部104は、秘密情報Sをn−1個のブロックに単純に分割する(S201)。尚、ここでは、秘密情報SをS=S1||・・・||Sn−1とし(記号“||”は、データの連結を示す)、分割された各ブロックをS1,・・・,Sn−1と記す。また、分散データ生成部104は、新たにS0∈{0}dを生成する。
First, the distributed
次に、分散データ生成部104は、秘密情報、乱数、及び部分分散データのハッシュ値を算出する(S202)。具体的には、まず、乱数生成部106は、データ長がdであるn−1個の乱数R0,・・・,Rn−2を、例えば互いに独立(即ち、選択された乱数間に所定の規則性がないように)かつランダムに選ぶ(i.e.,Ri∈{0,1}d)。そして、分散データ生成部104は、D(i,j)=S(i−j mod n)xor Rj(0≦i≦n−1,0≦j≦n−2)を、各(i,j)について計算する。
Next, the distributed
分散データ生成部104は、秘密情報S=S1||・・・||Sn−1と乱数R=R0||・・・||Rn−2のハッシュ値を計算する。また、分散データ生成部104は、各D(i,j)を各iについて連結した部分分散データD’(i)=D(i,0)||・・・||D(i,n−2),(0≦i≦n−1)を生成する。
The distributed
分散データ生成部104は、各部分分散データD’(i)=D(i,0)||・・・||D(i,n−2),(0≦i≦n−1)のハッシュ値を計算する。尚、ここでは、出力長d’(例えば、d’は、256bit程度)のハッシュ関数をH()で表し、H(S)=hS、H(R)=hR、H(D’(i))=hD’(i),(0≦i≦n−1)とする。
The distributed
このハッシュ関数は、例えば、クライアント装置10及び保管サーバ装置20iの補助記憶装置504に予め格納されていてもよいし、検証用データ公開装置30によって秘密分散システム1内で公開されていてもよい。
This hash function may be stored in advance in the auxiliary storage device 504 of the
次に、乱数生成部106は、乱数a,b∈GF(q)をさらに選び、分散データ生成部104は、2つの一次式、F(X)=hS+hRX mod q及びF’(X)=a+bX mod qを生成する(S203)。
Next, the random
次に、分散データ生成部104は、付加分散データD(i,n−1)=F(hD’(i))=fi及びD(i,n)=F’(hD’(i))=f’iを計算する(S204)。
Then, the distributed
次に、分散データ生成部104は、検証用データとして、G1=pow(g1,hS)×pow(g2,a)mod p、G2=pow(g1,hR)×pow(g2,b)mod pを生成し(S30)、(G1,G2)を検証用データとして検証用データ公開装置30に送信する(S31)。尚、関数pow()は指数関数を示し、pow(a,b)=abを意味する。
Next, the distributed
そして、検証用データ公開装置30は、受信した(G1,G2)を検証用データ303として保管すると共に、クライアント装置10、及び保管サーバ装置20iに対して、当該検証用データ(G1,G2)を秘密分散システム1内で公開する(S32)。分散データ生成部104は、部分分散データと付加分散データを連結した分散データD(i)=D’(i)||D(i,n−1)||D(i,n),(0≦i≦n−1)を、それぞれ、保管サーバ装置20iに配布する(S40)。
Then, the verification
図3の説明に戻る。続いて、各保管サーバ装置20iは、検証用データ公開装置30から検証用データ(G1,G2)及び公開パラメータ(p,g1,g2)を取得し、自身が保管する分散データD(i)203iの正当性を検証し(S50)、分散データD(i)を管理する(S60)。
Returning to the description of FIG. Subsequently, each storage server device 20 i acquires the verification data (G 1 , G 2 ) and the disclosure parameters (p, g 1 , g 2 ) from the verification
図6は、ステップS50及びステップS60における、各保管サーバ装置20iによる分散データの保管処理の一例を示すフローチャートである。各保管サーバ装置20iは、クライアント装置10から、部分分散データと付加分散データを連結したデータである分散データD(i)=D’(i)||D(i,n−1)||D(i,n),(0≦i≦n−1)を受信する(ステップS401)。
FIG. 6 is a flowchart showing an example of distributed data storage processing by each storage server device 20 i in steps S50 and S60. Each storage server device 20 i is distributed data D (i) = D ′ (i) || D (i, n−1) || that is data obtained by concatenating the partial distributed data and the additional distributed data from the
図8は、保管サーバ装置20に配布される分散データの各ブロックの値を示すテーブルである。図8は、n=5の場合の例を示す。テーブルのm行目かつl列目のセルの値は、i=mにおけるD(i)を長さdのブロック長に分割した場合のl番目のブロックの値を示す。 FIG. 8 is a table showing the value of each block of the distributed data distributed to the storage server device 20. FIG. 8 shows an example when n = 5. The value of the cell in the m-th row and the 1-th column of the table indicates the value of the l-th block when D (i) at i = m is divided into block lengths of length d.
まず、ステップS50の検証処理の詳細を説明する。検証部204は、検証用データ公開装置30から検証用データ(G1,G2)及び公開パラメータ(p,g1,g2)を取得する(S501)。検証部204iは、分散データD(i)=D’(i)||D(i,n−1)=fi||D(i,n)=f’iから部分分散データと付加分散データを取り出し、部分分散データD’(i)のハッシュ値H(D’(i))=hD’(i)を計算する(S502)。 First, the details of the verification process in step S50 will be described. The verification unit 204 acquires the verification data (G 1 , G 2 ) and the public parameters (p, g 1 , g 2 ) from the verification data disclosure device 30 (S501). Verification unit 204 i is distributed data D (i) = D '( i) || D (i, n-1) = f i || D (i, n) = f' i additional dispersion and partial dispersion data from The data is taken out and the hash value H (D ′ (i)) = h D ′ (i) of the partial distributed data D ′ (i) is calculated (S502).
続いて、ステップS60における管理処理について説明する。検証部204iは、pow(g1,fi)×pow(g2,f’i)≡G1×pow(G2,hD’(i))mod pとなるかを確認する(S503)。検証部203iがステップS503における数式が成り立つと判定した場合(S503:yes)、保管サーバ装置20iは、受信した分散データは正しいデータであるものとしてD(i)203iを保管する(S601)。 Subsequently, the management process in step S60 will be described. The verification unit 204 i confirms whether pow (g 1 , f i ) × pow (g 2 , f ′ i ) ≡G 1 × pow (G 2 , h D ′ (i) ) mod p holds (S 503). ). When the verification unit 203 i determines that the mathematical expression in step S503 holds (S503: yes), the storage server device 20 i stores the received distributed data as D (i) 203 i as correct data (S601). ).
一方、検証部204iはステップS503における数式が成り立たないと判定した場合(S503:no)、ERRORとして処理する(S602)。具体的には、例えば、検証部204iは、ERRORを、保管サーバ装置20iの出力装置506に出力する。また、例えば、検証部204iは、クライアント装置10に通知してもよい。この場合、例えば、クライアント装置10は、分散データD(i)を単に再送信する、又は分散データD(i)を再生成した上で、保管サーバ装置20iに再送信し、保管サーバ装置20iは、再受信した分散データD(i)を再検証する。
On the other hand, when the verification unit 204 i determines that the mathematical expression in step S503 does not hold (S503: no), the verification unit 204 i processes it as ERROR (S602). Specifically, for example, the verification unit 204 i outputs ERROR to the output device 506 of the storage server device 20 i . Further, for example, the verification unit 204 i may notify the
以下、ステップS503における数式の成否を判定することによって、受信した分散データが正しい値であるか否かを判定できる理由について説明する。前述した定義より、G1=pow(g1,hS)×pow(g2,a)mod p、G2=pow(g1,hR)×pow(g2,b)mod p、F(X)=hS+hRX mod q、F’(X)=a+bX mod q、F(hD’(i))=fi、F’(hD’(i))=f’iであることから、
(ステップS503の数式の右辺)
≡G1×pow(G2,hD’(i)) mod p
≡{pow(g1-,hs)×pow(g2,a)}×{pow(pow(g1,hR)×pow(g2,b)),hD’(i))} mod p
≡pow(g1,hs+hRhD’(i))×pow(g2,a+bhD’(i)) mod p
≡pow(g1,F(hD’(i))×pow(g2,F’(hD’(i)) mod p
≡pow(g1,fi)×pow(g2,f’i)
≡(ステップS503の数式の左辺)
である。
Hereinafter, the reason why it is possible to determine whether or not the received distributed data has a correct value by determining the success or failure of the mathematical expression in step S503 will be described. From the above definition, G 1 = pow (g 1 , h S ) × pow (g 2 , a) mod p, G 2 = pow (g 1 , h R ) × pow (g 2 , b) mod p, F (X) = h S + h R X mod q, F '(X) = a + bX mod q, F (h D' (i)) = f i, in F '(h D' (i )) = f 'i Because there is
(Right side of the equation in step S503)
≡G 1 × pow (G 2 , h D ′ (i) ) mod p
≡ {pow (g 1-, hs) × pow (g 2 , a)} × {pow (pow (g 1 , h R ) × pow (g 2 , b)), h D ′ (i) )} mod p
≡ pow (g 1 , hs + h R h D ′ (i) ) × pow (g 2 , a + bh D ′ (i) ) mod p
≡pow (g 1 , F (h D ′ (i) ) × pow (g 2 , F ′ (h D ′ (i) ) mod p
≡ pow (g 1 , f i ) × pow (g 2 , f ′ i ).
≡ (left side of equation in step S503)
Is.
従って、正しい公開パラメータ及び検証用データを取得した保管サーバ装置20iであれば、ステップS503における数式の成否を確認することにより、受信した分散データが正しい値であるか否かを判定することができる。 Therefore, if the storage server device 20 i has acquired the correct public parameters and verification data, it is possible to determine whether or not the received distributed data is a correct value by checking the success or failure of the mathematical expression in step S503. it can.
次に、復元化処理について図4、図7、及び図9を用いて説明する。図4は、秘密分散システム1全体による復元化処理の一例を示すシーケンス図である。図4の処理は、例えば、クライアント装置10のユーザからの指示(復元化対象の秘密情報を示す情報を含む)を契機として開始する。まず、クライアント装置10は、2つの保管サーバ装置20それぞれから、分散データD(i)を取得する(ステップS70)。
Next, the restoration process will be described with reference to FIGS. 4, 7, and 9. FIG. 4 is a sequence diagram showing an example of restoration processing by the entire
具体的には、例えば、クライアント装置10のデータ復元部105は、例えばランダムに選択した2つの保管サーバ装置20に対して、分散データD(i)の送信指示を出す。当該2つの保管サーバ装置20それぞれは、自身が保持する分散データD(i)をクライアント装置10に対して送信する(ステップS71)。
Specifically, for example, the
また、クライアント装置10は、検証用データ公開装置30から、検証値データ(G1,G2)を取得する(ステップS80)。具体的には、例えば、クライアント装置10のデータ復元部105は、検証用データ公開装置30に対して、検証値データ(G1,G2)の送信指示を出す。検証用データ公開装置30は、(G1,G2)をクライアント装置10に対して送信する(ステップS81)。
Further, the
なお、クライアント装置10は、検証用パラメータ生成時に検証用パラメータをクライアント装置10内に保存しなかった場合は、ステップS80〜S81において、検証用パラメータをさらに検証用データ公開装置30から取得する。続いて、クライアント装置10のデータ復元部105は、取得した分散データD(i)の正当性を確認しつつ、秘密情報Sを復元する(ステップS90)。
If the verification parameter is not stored in the
図7は、クライアント装置10による復元化処理の詳細の一例を示すフローチャートである。図7は、ステップS70における分散データ取得処理、ステップS90における秘密情報の復元処理の詳細を示す。
FIG. 7 is a flowchart showing an example of details of the restoration processing by the
まず、ステップS70の詳細について説明する。クライアント装置10のデータ復元部105は、n−1個の保管サーバ装置20の内、未選択の(即ち後述するステップS903及びステップS905の判定対象となっていない)保管サーバ装置20があるか否かを判定する(S701)。データ復元部105は、未選択の保管サーバ装置20が、ないと判定した場合(S701:no)、ERRORを返す(S906)。具体的には、例えば、データ復元部105は、ERRORを、クライアント装置10の出力装置506に出力する。
First, the details of step S70 will be described. The
データ復元部105は、未選択の保管サーバ装置20があると判定した場合(S701:yes)、未選択の保管サーバ装置20を1つ選択し、選択した保管サーバ装置20に対して、分散データD(i)の送信指示を出し、当該保管サーバ装置20から、分散データD(i)を取得する(S702)。
When the
続いて、前述したように、クライアント装置10は、検証用データ公開装置30から、検証値データ(G1,G2)を取得する(ステップS80)。なお、クライアント装置10が検証値データ(G1,G2)を取得済みの場合は、ステップS80は省略されてもよい。
Subsequently, as described above, the
次に、ステップS90の詳細について説明する。クライアント装置10のデータ復元部105は、取得した分散データD(i)=D’(i)||D(i,n−1)=fi||D(i,n)=f’iそれぞれに対して、部分分散データD’(i)のハッシュ値H(D’(i))=hD’(i)を計算する(S901)。
Next, the details of step S90 will be described.
そして、データ復元部105は、生成したハッシュ値H(D’(i))=hD’(i)に対して、pow(g1,fi)×pow(g2,f’i)≡G1×pow(G2,hD’(i))mod pとなるかを確認する(S902)。データ復元部105は、ステップS902における数式が成り立たないと判定した場合(S902:no)、ステップS701に戻り、新たな分散データを選択する。
Then, the
なお、ステップS902の数式の検証は、ステップS503と同様である。つまり、ステップS902における検証が実行されることにより、保管処理から復元までの間のいずれかのタイミングにおける分散データの改竄(及び破損等)を検知し、ひいては改竄された分散データを用いた復元処理を実行せずに済む。なお、分散データの改竄検知処理は、保管処理時(ステップS501〜S503)又は復元処理時(ステップS901〜S902)の一方のタイミングのみで実行されてもよい。 The verification of the mathematical formula in step S902 is the same as that in step S503. That is, by performing the verification in step S902, tampering (and damage, etc.) of the distributed data at any timing between the storage process and the restoration is detected, and thus the restoration process using the tampered distributed data. Need not be executed. It should be noted that the tampering detection processing of the distributed data may be executed only at one of the timing of the storage processing (steps S501 to S503) or the restoration processing (steps S901 to S902).
そして、データ復元部105は、ステップS902の数式が成立する分散データを2つ収集済みであるか否かを判定する(S903)。データ復元部105は、ステップS902の数式が成立する分散データをまだ2つ収集していない場合には(S903:no)、ステップS701に戻り、新たな分散データを選択する。
Then, the
データ復元部105は、ステップS902の数式が成立する2つの分散データを収集済みであると判定した場合(S903:yes)、その2つの分散データを用いて、秘密情報Sを復元する(S904)。
When the
以下、ステップS904の詳細について説明する。ここでは、ステップS902の数式が成立する2つの分散データをそれぞれD(i)=D’(i)||D(i,n−1)=fi||D(i,n)=f’i、D(j)=D’(j)||D(j,n−1)=fj||D(j,n)=f’jとする。 The details of step S904 will be described below. Here, the two distributed data formulas step S902 is satisfied, respectively D (i) = D '( i) || D (i, n-1) = f i || D (i, n) = f' i, D (j) = D '(j) || D (j, n-1) = f j || D (j, n) = f' and j.
まず、データ復元部105は、分散データD(i)及びD(j)に対して、それぞれ、後ろ2d’長のデータ、即ち、付加分散データであるD(i,n−1)=fi||D(i,n)=f’i及びD(j,n−1)=fj||D(j,n)=f’jを削除して得られる残りのデータである部分分散データD’(i)=D(i,0)||・・・||D(i,n−2)及びD’(j)=D(j,0)||・・・||D(j,n−2)、をデータ長dのブロックに分割する。
First, the
つまり、部分分散データD’(i)に対するデータ長dの各ブロックは、D(i,0),・・・,D(i,n−2)であり、部分分散データD’(j)に対するデータ長dの各ブロックはD(j,0),・・・,D(j,n−2)である。
そして、データ復元部105は、r=j−i mod nに対して、以下の場合に分けてS1,・・・,Sn−1を求める。
That is, each block of the data length d for the partial distributed data D ′ (i) is D (i, 0), ..., D (i, n−2), and for the partial distributed data D ′ (j). Each block of the data length d is D (j, 0), ..., D (j, n-2).
Then, the
Case1:D(i,i)がD(i,l)に含まれる時(但し0≦l≦n−2)、終了条件1を満たすまで以下を繰返す。但し終了条件1は、i−kr=n−1(1≦k≦n−1)。
k=1:Sr=D(i,i)xor D(j,i)xor S0,
k=2:Sr+r=D(i,i−r)xor D(j,i−r)xor Sr,
・・・
k=n−1:S(n−1)r=D(i,i−(n−2)r)xor D(j,i−(n−2)r)xor S(n−2)r
Case 1: When D (i, i) is included in D (i, l) (where 0 ≦ l ≦ n−2), the following is repeated until
k = 1: S r = D (i, i) xor D (j, i) xor S 0 ,
k = 2: S r + r = D (i, i-r) xor D (j, i-r) xor S r ,
...
k = n-1: S (n-1) r = D (i, i- (n-2) r) xor D (j, i- (n-2) r) xor S (n-2) r
Case2:D(j,j)がD(j,l)に含まれる時、終了条件2を満たすまで以下を繰返す。但し終了条件2は以下。j+kr=n−1(1≦k≦n−1)。
k=1:S−r=D(i,j)xor D(j,j)xor S0,
k=2:S−r−r=D(i,j+r)xor D(j,j+r)xor S−r,
・・・
k=n−1:S−(n−1)r=D(i,j+(n−2)r)xor D(j,i+(n−2)r)xor S−(n−2)r
Case 2: When D (j, j) is included in D (j, l), the following process is repeated until
k = 1: S− r = D (i, j) xor D (j, j) xor S 0 ,
k = 2: S -r-r = D (i, j + r) xorD (j, j + r) xorS- r ,
...
k = n-1: S- (n-1) r = D (i, j + (n-2) r) xor D (j, i + (n-2) r) xor S- (n-2) r
尚、Case1、及びCase2における演算子±はmod nの演算を示す。以下、上述したCase1、及びCase2におけるS1,・・・,Sn−1の算出処理の具体例を説明する。
The operator ± in
図9は、保管サーバ装置20に保管された分散データから付加分散データを削除して得られる部分分散データの各ブロックの値を示すテーブルである。図9は、n=5の場合の例を示す。従って、図9は、図8のテーブルからj=4の列とj=5の列が削除されたテーブルであるテーブルである。 FIG. 9 is a table showing the value of each block of the partial distributed data obtained by deleting the additional distributed data from the distributed data stored in the storage server device 20. FIG. 9 shows an example when n = 5. Therefore, FIG. 9 is a table in which the columns of j = 4 and j = 5 are deleted from the table of FIG.
図9のテーブルは5行×4列の表であるため、対角成分のうちD(4,4)を含まない。選択された2つの分散データがD(4)を含む場合と、含まない場合と、において、Case1及びCase2の該当有無が異なる。
Since the table of FIG. 9 is a table of 5 rows × 4 columns, D (4,4) is not included in the diagonal components. Whether
ここで、例えば、i=4,j=0の例、即ちD(4)とD(0)とが選択された例を説明しする。まず、r=j−i mod 5=0−4=−4である。D(4,4)は、D(4,l)={D(4,0),D(4,1),D(4,2),D(4,3)}に含まれないため、本例はCase1には該当しない。
また、D(0,0)は、D(0,l)={D(0,0),D(0,1),D(0,2),D(0,3)}に含まれるため、本例はCase2に該当する。
Here, for example, an example in which i = 4 and j = 0, that is, an example in which D (4) and D (0) are selected will be described. First, r =
Since D (0,0) is included in D (0, l) = {D (0,0), D (0,1), D (0,2), D (0,3)} This example corresponds to
k=1:S−(−4)=D(4,0) xor D(0,0) xor S0=S4であり、終了条件2については、0+1(−4)=−4=1≠4であるため、満たされない。
k = 1: S − (− 4) = D (4,0) xor D (0,0) xor S0 = S4, and for the
k=2:S−(−4)−(−4)=D(4,1)) xor D(0,1) xor S4=S3であり、終了条件2については、0+2(−4)=−8=2≠4であるため、満たされない。
k = 2: S − (− 4) − (− 4) = D (4,1)) xor D (0,1) xor S4 = S3, and 0 + 2 (−4) = − for the
k=3:S−3(−4)=D(4,2) xor D(0,2) xor S3=S2であり、終了条件2については、0+3(−4)=−12=3≠4であるため、満たされない。
k = 3: S−3 (−4) = D (4,2) xor D (0,2) xor S3 = S2, and for the
k=4:S−4(−4)=D(4,3) xor D(0,3) xor S2=S1であり、終了条件2については、0+4(−4)=−16=4=4であり、満たされるため、Case2の計算が終了する。これにより、Case2からS1、S2、S3、S4の全てが算出された。
k = 4: S-4 (-4) = D (4,3) xor D (0,3) xor S2 = S1, and for the
次に、ここで、例えば、i=3,j=0の例、即ちD(3)とD(0)とが選択された例を説明する。まずr=j−i mod 5 =0−3=−3である。D(3,3)はD(3,l)={D(3,0),D(3,1),D(3,2),D(3,3)}に含まれるため、本例はCase1に該当する。
Next, an example in which i = 3 and j = 0, that is, an example in which D (3) and D (0) are selected will be described. First, r =
k=1:S(−3)=D(3,3) xor D(0,3) xor S0=S2であり、終了条件1については、3−1(−3)=6=1≠4であり、満たされない。
k = 1: S (−3) = D (3,3) xor D (0,3) xor S0 = S2, and for the
k=2:S(−3)+(−3)=D(3,1) xor D(0,1) xor S2=S4であり、終了条件1については、3−2(−3)=9=4=4であり、満たされるため、Case1の計算が終了する。
また、D(0,0)も、D(0,l)={D(0,0),D(0,1),D(0,2),D(0,3)}に含まれるため、本例はCase2にも該当する。
k = 2: S (−3) + (− 3) = D (3,1) xor D (0,1) xor S2 = S4, and 3-2 (−3) = 9 for the
Further, D (0,0) is also included in D (0, l) = {D (0,0), D (0,1), D (0,2), D (0,3)}. This example also applies to
k=1:S−(−3)=D(3,0) xor D(0,0) xor S0=S3であり、終了条件2については、0+1(−3)=−3=2≠4であるため、満たされない。
k = 1: S − (− 3) = D (3,0) xor D (0,0) xor S0 = S3, and the
k=2:S−(−3)−(−3)=D(3,2)) xor D(0,2) xor S3=S1であり、終了条件2については、0+2(−3)=−6=2=4であり、満たされるため、Case2の計算が終了する。これにより、Case1及びCase2からS1、S2、S3、S4の全てが算出された。
つまり、どの分散データの組み合わせが選択されば場合であってもS1,S2,S3,S4を計算することができる。
k = 2: S − (− 3) − (− 3) = D (3,2)) xor D (0,2) xor S3 = S1, and for the
That is, S1, S2, S3, S4 can be calculated regardless of which combination of distributed data is selected.
続いて、データ復元部105は、Case1及び/又はCase2により出力されるS1,・・・,Sn−1を連結することで復元された秘密情報である復元データS’=S1||・・・||Sn−1を復元する。尚、ここでは復元されたデータと元データとを区別する為に復元された秘密情報を復元データS’と記す。
Subsequently, the
データ復元部105は、ステップS904で復元データS’=S1||・・・||Sn−1を復元したら、fi−H(R’)hD’(i)=H(S’)であるかを確認する(S905)。尚、R’とは以下の処理によって復元される乱数データである。
When the
データ復元部105は、Rj=D(i,j)xorS(i−j mod n)(0≦j≦n−2)を計算し、出力されるR0,・・・,Rn−2を連結することで乱数データR’=R0||・・・||Rn−2を復元する。
The
そして、データ復元部105は、D(i,n−1)=fiと、H(D’(i))=hD’(i)と、復元したS’,R’から、前述したようにステップS905における数式fi−H(R’)×hD’(i)=H(S’)が成立するか否かを判定する。
Then, the
データ復元部105がステップS905の数式が成り立つと判定した場合(S905:yes)、復元データS’は秘密情報Sと同一であり、復元データS’を出力して復元化処理を終了する。データ復元部105がステップS905の数式が成り立たないと判定した場合(S905:no)、復元データS’は秘密情報Sと同一ではないため、ステップS701に戻る。
When the
以下、ステップS905における数式の成否を判定することによって、復元の成否を判定できる理由について説明する。前述した定義より、F(hD’(i))=fi、F(X)=hS+hRX mod qであることから、(ステップS905の左辺)=fi−H(R’)×hD’(i)=F(hD’(i))−H(R’)×hD’(i)-=hS+hRhD’(i)−H(R’)×hD’(i)である。従って、hS=H(S’)及びhR=H(R’)が成立すれば、即ちSのハッシュ値とS’のハッシュ値とが等しく、かつRのハッシュ値とR’のハッシュ値とが等しければ、(ステップS905の左辺)=(ステップS905の右辺)が成立する。つまり、(ステップS905の左辺)=(ステップS905の右辺)が成立すれば極めて高い確率でSとS’は等しいことがいえる。 Hereinafter, the reason why the success or failure of the restoration can be determined by determining the success or failure of the mathematical expression in step S905 will be described. The definition described above, F (h D '(i )) = f i, since it is F (X) = h S + h R X mod q, ( left side in step S905) = f i -H (R ') × h D '(i) = F (h D' (i)) -H (R ') × h D' (i) - = h S + h R h D '(i) -H (R') × h D '(i) . Therefore, if h S = H (S ′) and h R = H (R ′) are satisfied, that is, the hash value of S and the hash value of S ′ are equal, and the hash value of R and the hash value of R ′ are equal. If they are equal to each other, (left side of step S905) = (right side of step S905) is satisfied. That is, if (left side of step S905) = (right side of step S905) is satisfied, it can be said that S and S ′ are equal to each other with an extremely high probability.
以上、本実施例の秘密情報分散システムによれば、ステップS503又はステップS902の検証処理を行うことで、分散データ保管時又は秘密情報復元時に、分散データD(i)の改竄及び破損等を、少ない計算量で検知することができる。また、分散データを生成するための計算量も少ない。 As described above, according to the secret information distribution system of the present exemplary embodiment, by performing the verification process of step S503 or step S902, it is possible to prevent falsification and damage of the distributed data D (i) at the time of storing the distributed data or restoring the confidential information. It can be detected with a small amount of calculation. Also, the amount of calculation for generating the distributed data is small.
尚、検証用データ(G1,G2)は、H(S)=hS,H(R)=hRの値を知っている者のみが生成することできる値であるため、分散データを生成した者以外は、正しい検証用データ(G1,G2)を生成することはできない。 The verification data (G 1 , G 2 ) is a value that can be generated only by a person who knows the values of H (S) = h S , H (R) = h R. Only the person who generated it can generate correct verification data (G 1 , G 2 ).
また、各分散データD(i)(0≦i≦n−1)に対して、検証用データ(G1,G2)は、同一である為、ステップS503又はステップS902の検証処理をパスした各分散データD(i)(0≦i≦n−1)は、同一の秘密情報Sを分散した物であることも、少ない計算量で確認できる。また、秘密情報を復元するための計算量も少ない。 Further, since the verification data (G 1 , G 2 ) is the same for each distributed data D (i) (0 ≦ i ≦ n−1), the verification processing of step S503 or step S902 is passed. It can also be confirmed with a small amount of calculation that each distributed data D (i) (0 ≦ i ≦ n−1) is the same secret information S distributed. Moreover, the amount of calculation for restoring the secret information is small.
さらに検証用データ(G1,G2)は、秘密情報Sの改竄検知機能も有するデータであるので、ステップS905の検証処理を行うことで、復元データS’は、秘密情報S(元データ)と一致していることも確認することができる。 Furthermore, since the verification data (G 1 , G 2 ) is data that also has a function of detecting the alteration of the secret information S, the restoration data S ′ becomes the secret information S (original data) by performing the verification process in step S905. It can also be confirmed that it agrees with.
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 It should be noted that the present invention is not limited to the above-described embodiments, but includes various modifications. For example, the above-described embodiments have been described in detail for the purpose of explaining the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of a certain embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of a certain embodiment. Further, it is possible to add / delete / replace other configurations with respect to a part of the configurations of the respective embodiments.
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Further, the above-described respective configurations, functions, processing units, processing means, etc. may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Further, the above-described respective configurations, functions and the like may be realized by software by a processor interpreting and executing a program for realizing each function. Information such as a program, a table, and a file that realizes each function can be placed in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, and a DVD.
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 Further, the control lines and information lines are shown as being considered necessary for explanation, and not all control lines and information lines are shown in the product. In reality, it may be considered that almost all the configurations are connected to each other.
1 秘密分散システム、10 クライアント装置、20 保管サーバ装置、30 検証用データ公開装置、50 計算機、104 分散データ生成部、105 データ復元部、106 乱数生成部、107 秘密情報、203 分散データ、303 検証用データ、304 公開パラメータ、501 通信装置、502 入力装置、503 メモリ、504 補助記憶装置、505 CPU、506 出力装置 1 secret sharing system, 10 client device, 20 storage server device, 30 verification data disclosure device, 50 computer, 104 distributed data generation unit, 105 data restoration unit, 106 random number generation unit, 107 secret information, 203 shared data, 303 verification Data, 304 public parameters, 501 communication device, 502 input device, 503 memory, 504 auxiliary storage device, 505 CPU, 506 output device
Claims (12)
プロセッサと記憶装置とを備え、
前記記憶装置は、秘密データと、公開パラメータと、を保持し、
前記プロセッサは、
前記秘密データを分割し、
前記分割した秘密データと、複数の乱数からなる第1乱数群と、の排他的論理和に基づいて、複数の部分分散データを生成し、
前記秘密データの所定のハッシュ関数によるハッシュ値と、前記第1乱数群の乱数から得られる第1の値の前記所定のハッシュ関数によるハッシュ値と、前記複数の部分分散データそれぞれの前記所定のハッシュ関数によるハッシュ値と、を算出し、
前記複数の部分分散データそれぞれについて、前記秘密データのハッシュ値と前記第1の値のハッシュ値とを係数又は定数項として有する第1の関数に当該部分分散データを代入して得られる値と、前記第1乱数群に含まれない乱数からなる第2乱数群の乱数を係数又は定数項として有する第2の関数に当該部分分散データを代入して得られる値と、を含む付加分散データを、当該部分分散データに付加して分散データを生成し、
前記分散データそれぞれを異なる出力先へと出力し、
前記公開パラメータと前記秘密データのハッシュ値と前記第2乱数群に含まれる第1乱数とに基づいて算出される第2の値と、前記公開パラメータと前記第1の値のハッシュ値と前記第2乱数群に含まれる第2乱数とに基づいて算出される第3の値と、を前記分散データの検証用データに含める、秘密分散装置。 A secret sharing device,
A processor and a memory device,
The storage device holds secret data and public parameters,
The processor is
Divide the secret data,
Generating a plurality of partial distributed data based on an exclusive OR of the divided secret data and a first random number group composed of a plurality of random numbers,
A hash value of the secret data by a predetermined hash function, a hash value of a first value obtained from a random number of the first random number group by the predetermined hash function, and the predetermined hash of each of the plurality of partial distributed data. Calculate the hash value by the function and
A value obtained by substituting the partial distributed data into a first function having a hash value of the secret data and a hash value of the first value as a coefficient or a constant term for each of the plurality of partial shared data. A value obtained by substituting the partial dispersion data into a second function having a random number of a second random number group consisting of random numbers not included in the first random number group as a coefficient or a constant term, Generates distributed data by adding to the partial distributed data,
Output each of the distributed data to different output destinations,
A second value calculated based on the public parameter, the hash value of the secret data, and the first random number included in the second random number group, the public parameter, the hash value of the first value, and the second value. A secret sharing apparatus, which includes a third value calculated based on a second random number included in a group of two random numbers and verification data of the shared data.
前記公開パラメータは、q=(p−1)/2が素数となるような素数pと、pを法とした有限体の位数qの異なる元であるg1∈GF(p)及びg2∈GF(p)と、を含み、
前記第1乱数群は、乱数R0,・・・,Rn−2(Rj∈{0,1}d(0≦j≦n−2))を含み、
前記第2乱数群は、乱数a∈GF(q)及び乱数b∈GF(q)を含み、
前記第1の値は、前記乱数を結合したR=R0||・・・||Rn−2であり、
前記第1の関数は、F(X)=hS+hRX mod qであり(但し、hsは前記秘密データのハッシュ値であり、hRは、前記第1の値Rのハッシュ値である)、
前記第2の関数は、F’(X)=a+bX mod qであり、
前記プロセッサは、
前記秘密データS∈{0,1}d(n−1)を、それぞれ長さdのn−1個のデータS1,・・・,Sn−1に分割し、
D(i,j)=S(i−j mod n)xor Rj(0≦i≦n−1,0≦j≦n−2、但しS0∈{0}d)を、各(i,j)について計算し、
各D(i,j)を各iについて連結したD’(i)=D(i,0)||・・・||D(i,n−2)を前記部分分散データとして生成し、
前記部分分散データD’(i)(0≦i≦n−1)それぞれに対して、前記付加分散データD(i,n−1)=F(hD’(i))及びD(i,n)=F’(hD’(i))を計算して、前記付加分散データと当該部分分散データを結合したD(i)=D’(i)||D(i,n−1)||D(i,n)を、前記分散データとして生成し、
G1=pow(g1,hS)×pow(g2,a)mod pを前記第2の値として算出し、
G2=pow(g1,hR)×pow(g2,b)mod pを前記第3の値として算出する、秘密分散装置。 The secret sharing device according to claim 1,
The public parameters are prime numbers p such that q = (p-1) / 2 is a prime number and g 1 εGF (p) and g 2 which are different elements of order q of a finite field modulo p. ∈ GF (p) and,
The first random number group includes random numbers R 0 , ..., R n−2 (R j ε {0,1} d (0 ≦ j ≦ n−2)),
The second random number group includes a random number aεGF (q) and a random number bεGF (q),
The first value is R = R 0 || ... || R n-2 obtained by combining the random numbers,
The first function is F (X) = h S + h R X mod q (where h s is a hash value of the secret data, and h R is a hash value of the first value R). is there),
The second function is F ′ (X) = a + bX mod q,
The processor is
The secret data Sε {0,1} d (n-1) is divided into n-1 pieces of data S 1 , ..., S n-1 each having a length d,
D (i, j) = S (i−j mod n) xor R j (0 ≦ i ≦ n−1, 0 ≦ j ≦ n−2, where S 0 ε {0} d ) for each (i, j),
D '(i) = D (i, 0) || ... || D (i, n-2), which is obtained by concatenating each D (i, j) for each i, is generated as the partial variance data,
For each of the partial variance data D ′ (i) (0 ≦ i ≦ n−1), the additional variance data D (i, n−1) = F (h D ′ (i) ) and D (i, n) = F ′ (h D ′ (i) ) is calculated and the additional dispersion data and the partial dispersion data are combined to obtain D (i) = D ′ (i) || D (i, n−1). || D (i, n) is generated as the distributed data,
G 1 = pow (g 1 , h S ) × pow (g 2 , a) mod p is calculated as the second value,
A secret sharing apparatus that calculates G 2 = pow (g 1 , h R ) × pow (g 2 , b) mod p as the third value.
前記記憶装置は、
復元対象の第1秘密データから生成された第1分散データと、第2分散データと、を保持し、
前記プロセッサは、
前記第1分散データと前記第2分散データとから前記第1秘密データの復元処理を実行し、
前記復元処理において、
前記第1分散データ及び第2分散データそれぞれから前記付加分散データを削除して、部分分散データを取得し、
前記第1分散データの部分分散データ及び前記第2分散データの部分分散データそれぞれを分割し、
前記第1分散データの部分分散データの分割後のデータと、前記第2分散データの部分分散データの分割後のデータと、の排他的論理和に基づいて、前記第1秘密データの復元分割データを生成し、
前記復元分割データを結合して、前記第1秘密データを復元する、秘密分散装置。 The secret sharing device according to claim 1,
The storage device is
Holding first distributed data generated from the first secret data to be restored and second distributed data,
The processor is
Executing restoration processing of the first secret data from the first distributed data and the second distributed data,
In the restoration process,
Deleting the additional distributed data from each of the first distributed data and the second distributed data to obtain partial distributed data,
Dividing each of the partial distributed data of the first distributed data and the partial distributed data of the second distributed data,
The restored divided data of the first secret data based on the exclusive OR of the divided data of the first distributed data after the division and the divided data of the second distributed data Produces
A secret sharing device that combines the restored divided data to restore the first secret data.
前記プロセッサは、
前記第1分散データ及び前記第2分散データそれぞれに対して、当該分散データに対応する付加分散データと、前記検証用データに含まれる前記第2の値及び前記第3の値と、に基づいて、当該分散データが正しいデータであるか否かを判定し、
前記第1分散データ及び前記第2分散データの双方が正しいデータであると判定した場合、前記復元処理を実行する、秘密分散装置。 The secret sharing device according to claim 3,
The processor is
For each of the first distributed data and the second distributed data, based on the additional distributed data corresponding to the distributed data and the second value and the third value included in the verification data. , Determine whether the distributed data is correct data,
A secret sharing apparatus that performs the restoration process when it is determined that both the first distributed data and the second distributed data are correct data.
前記プロセッサは、
前記分割した後の第1分散データ及び前記分割した後の第2分散データと、前記復元分割データと、の排他的論理和に基づいて、前記第1秘密データの分散データの生成に用いられた前記第1乱数群の乱数を復元し、
前記復元した乱数から算出した前記第1の値の前記所定のハッシュ関数によるハッシュ値と、前記復元した第1秘密データの前記所定のハッシュ関数によるハッシュ値と、に基づいて、前記復元した第1秘密データが正しいデータであるか否かを判定する、秘密分散装置。 The secret sharing device according to claim 3,
The processor is
It was used to generate the distributed data of the first secret data based on the exclusive OR of the divided first distributed data, the divided second distributed data, and the restored divided data. Restore the random numbers of the first random number group,
The restored first first value is calculated based on the hash value of the first value calculated from the restored random number by the predetermined hash function and the hash value of the restored first secret data by the predetermined hash function. A secret sharing device that determines whether the secret data is correct data.
秘密分散装置と、複数の保管装置と、検証用データ公開装置とを含み、
前記秘密分散装置は、
秘密データと、公開パラメータと、を保持し、
前記秘密データを分割し、
前記分割した秘密データと、複数の乱数からなる第1乱数群と、の排他的論理和に基づいて、複数の部分分散データを生成し、
前記秘密データの所定のハッシュ関数によるハッシュ値と、前記第1乱数群の乱数から得られる第1の値の前記所定のハッシュ関数によるハッシュ値と、前記複数の部分分散データそれぞれの前記所定のハッシュ関数によるハッシュ値と、を算出し、
前記複数の部分分散データそれぞれについて、前記秘密データのハッシュ値と前記第1の値のハッシュ値とを係数又は定数項として有する第1の関数に当該部分分散データを代入して得られる値と、前記第1乱数群に含まれない乱数からなる第2乱数群の乱数を係数又は定数項として有する第2の関数に当該部分分散データを代入して得られる値と、を含む付加分散データを、当該部分分散データに付加して分散データを生成し、
前記分散データそれぞれを異なる前記保管装置へ送信し、
前記公開パラメータと前記秘密データのハッシュ値と前記第2乱数群に含まれる第1乱数とに基づいて算出される第2の値と、前記公開パラメータと前記第1の値のハッシュ値と前記第2乱数群に含まれる第2乱数とに基づいて算出される第3の値と、を前記分散データの検証用データに含め、
前記検証用データ及び前記公開パラメータを前記検証用データ公開装置に送信し、
前記検証用データ公開装置は、前記秘密分散システム内において、前記検証用データ及び前記公開パラメータを公開する、秘密分散システム。 A secret sharing system,
Including a secret sharing device, a plurality of storage devices, and a verification data disclosure device,
The secret sharing device is
Holds secret data and public parameters,
Divide the secret data,
Generating a plurality of partial distributed data based on an exclusive OR of the divided secret data and a first random number group composed of a plurality of random numbers,
A hash value of the secret data by a predetermined hash function, a hash value of a first value obtained from a random number of the first random number group by the predetermined hash function, and the predetermined hash of each of the plurality of partial distributed data. Calculate the hash value by the function and
A value obtained by substituting the partial distributed data into a first function having a hash value of the secret data and a hash value of the first value as a coefficient or a constant term for each of the plurality of partial shared data. A value obtained by substituting the partial dispersion data into a second function having a random number of a second random number group consisting of random numbers not included in the first random number group as a coefficient or a constant term, Generates distributed data by adding to the partial distributed data,
Sending each of the distributed data to a different storage device,
A second value calculated based on the public parameter, the hash value of the secret data, and the first random number included in the second random number group, the public parameter, the hash value of the first value, and the second value. A third value calculated based on the second random number included in the two random number group, and the verification data of the distributed data,
Sending the verification data and the public parameters to the verification data publishing device,
The verification data disclosure device discloses the verification data and the disclosure parameter in the secret sharing system.
前記公開パラメータは、q=(p−1)/2が素数となるような素数pと、pを法とした有限体の位数qの異なる元であるg1∈GF(p)及びg2∈GF(p)と、を含み、
前記第1乱数群は、乱数R0,・・・,Rn−2(Rj∈{0,1}d(0≦j≦n−2))を含み、
前記第2乱数群は、乱数a∈GF(q)及び乱数b∈GF(q)を含み、
前記第1の値は、前記乱数を結合したR=R0||・・・||Rn−2であり、
前記第1の関数は、F(X)=hS+hRX mod qであり(但し、hsは前記秘密データのハッシュ値であり、hRは、前記第1の値Rのハッシュ値である)、
前記第2の関数は、F’(X)=a+bX mod qであり、
前記秘密分散装置は、
前記秘密データS∈{0,1}d(n−1)を、それぞれ長さdのn−1個のデータS1,・・・,Sn−1に分割し、
D(i,j)=S(i−j mod n)xor Rj(0≦i≦n−1,0≦j≦n−2、但しS0∈{0}d)を、各(i,j)について計算し、
各D(i,j)を各iについて連結したD’(i)=D(i,0)||・・・||D(i,n−2)を前記部分分散データとして生成し、
前記部分分散データD’(i)(0≦i≦n−1)それぞれに対して、前記付加分散データD(i,n−1)=F(hD’(i))及びD(i,n)=F’(hD’(i))を計算して、前記付加分散データと当該部分分散データを結合したD(i)=D’(i)||D(i,n−1)||D(i,n)を、前記分散データとして生成し、
G1=pow(g1,hS)×pow(g2,a)mod pを前記第2の値として算出し、
G2=pow(g1,hR)×pow(g2,b)mod pを前記第3の値として算出する、秘密分散システム。 The secret sharing system according to claim 6,
The public parameters are prime numbers p such that q = (p-1) / 2 is a prime number and g 1 εGF (p) and g 2 which are different elements of order q of a finite field modulo p. ∈ GF (p) and,
The first random number group includes random numbers R 0 , ..., R n−2 (R j ε {0,1} d (0 ≦ j ≦ n−2)),
The second random number group includes a random number aεGF (q) and a random number bεGF (q),
The first value is R = R 0 || ... || R n-2 obtained by combining the random numbers,
The first function is F (X) = h S + h R X mod q (where h s is a hash value of the secret data, and h R is a hash value of the first value R). is there),
The second function is F ′ (X) = a + bX mod q,
The secret sharing device is
The secret data Sε {0,1} d (n-1) is divided into n-1 pieces of data S 1 , ..., S n-1 each having a length d,
D (i, j) = S (i−j mod n) xor R j (0 ≦ i ≦ n−1, 0 ≦ j ≦ n−2, where S 0 ε {0} d ) for each (i, j),
D '(i) = D (i, 0) || ... || D (i, n-2), which is obtained by concatenating each D (i, j) for each i, is generated as the partial variance data,
For each of the partial variance data D ′ (i) (0 ≦ i ≦ n−1), the additional variance data D (i, n−1) = F (h D ′ (i) ) and D (i, n) = F ′ (h D ′ (i) ) is calculated and the additional dispersion data and the partial dispersion data are combined to obtain D (i) = D ′ (i) || D (i, n−1). || D (i, n) is generated as the distributed data,
G 1 = pow (g 1 , h S ) × pow (g 2 , a) mod p is calculated as the second value,
A secret sharing system that calculates G 2 = pow (g 1 , h R ) × pow (g 2 , b) mod p as the third value.
前記秘密分散装置は、
復元対象の第1秘密データから生成された第1分散データと、第2分散データと、をそれぞれ異なる前記保管装置から受信し、
前記第1分散データと前記第2分散データとから前記第1秘密データの復元処理を実行し、
前記復元処理において、
前記第1分散データ及び第2分散データそれぞれから前記付加分散データを削除して、部分分散データを取得し、
前記第1分散データの部分分散データ及び前記第2分散データの部分分散データそれぞれを分割し、
前記第1分散データの部分分散データの分割後のデータと、前記第2分散データの部分分散データの分割後のデータと、の排他的論理和に基づいて、前記第1秘密データの復元分割データを生成し、
前記復元分割データを結合して、前記第1秘密データを復元する、秘密分散システム。 The secret sharing system according to claim 6,
The secret sharing device is
Receiving first distributed data generated from the first secret data to be restored and second distributed data from different storage devices,
Executing restoration processing of the first secret data from the first distributed data and the second distributed data,
In the restoration process,
Deleting the additional distributed data from each of the first distributed data and the second distributed data to obtain partial distributed data,
Dividing each of the partial distributed data of the first distributed data and the partial distributed data of the second distributed data,
The restored divided data of the first secret data based on the exclusive OR of the divided data of the first distributed data after the division and the divided data of the second distributed data Produces
A secret sharing system that combines the restored divided data to restore the first secret data.
前記秘密分散装置は、
前記第1分散データ及び前記第2分散データそれぞれに対して、当該分散データに対応する付加分散データと、前記検証用データに含まれる前記第2の値及び前記第3の値と、に基づいて、当該分散データが正しいデータであるか否かを判定する検証処理を行い、
前記第1分散データ及び前記第2分散データの双方が正しいデータであると判定した場合、前記復元処理を実行し、
前記第1分散データ及び前記第2分散データの少なくとも一方が正しいデータでないと判定した場合、前記第1分散データ及び前記第2分散データ以外の前記第1秘密データの分散データを保持している保管装置から、前記第1秘密データの第3分散データを取得し、前記第3分散データに対して前記検証処理を行う、秘密分散システム。 The secret sharing system according to claim 8, wherein
The secret sharing device is
For each of the first distributed data and the second distributed data, based on the additional distributed data corresponding to the distributed data and the second value and the third value included in the verification data. , Performs verification processing to determine whether the distributed data is correct data,
When it is determined that both the first distributed data and the second distributed data are correct data, the restoration process is executed,
When it is determined that at least one of the first shared data and the second shared data is not correct data, a storage holding the shared data of the first secret data other than the first shared data and the second shared data. A secret sharing system that acquires third shared data of the first secret data from a device and performs the verification process on the third shared data.
前記秘密分散装置は、
前記分割した後の第1分散データ及び前記分割した後の第2分散データと、前記復元分割データと、の排他的論理和に基づいて、前記第1秘密データの分散データの生成に用いられた前記第1乱数群の乱数を復元し、
前記復元した乱数から算出した前記第1の値の前記所定のハッシュ関数によるハッシュ値と、前記復元した第1秘密データの前記所定のハッシュ関数によるハッシュ値と、に基づいて、前記復元した第1秘密データが正しいデータであるか否かを判定する、秘密分散システム。 The secret sharing system according to claim 8, wherein
The secret sharing device is
It was used to generate the distributed data of the first secret data based on the exclusive OR of the divided first distributed data, the divided second distributed data, and the restored divided data. Restore the random numbers of the first random number group,
The restored first first value is calculated based on the hash value of the first value calculated from the restored random number by the predetermined hash function and the hash value of the restored first secret data by the predetermined hash function. A secret sharing system that determines whether or not secret data is correct.
前記保管装置は、
前記検証用データ公開装置から、前記検証用データを取得し、
受信した分散データに対応する付加分散データと、前記検証用データに含まれる前記第2の値及び前記第3の値と、に基づいて、当該分散データが正しいデータであるか否かを判定する検証処理を行う、秘密分散システム。 The secret sharing system according to claim 6,
The storage device is
From the verification data disclosure device, obtain the verification data,
It is determined whether the distributed data is correct data based on the additional distributed data corresponding to the received distributed data and the second value and the third value included in the verification data. A secret sharing system that performs verification processing.
前記秘密分散装置は、プロセッサと記憶装置とを備え、
前記記憶装置は、秘密データと、公開パラメータと、を保持し、
前記秘密分散方法は、
前記プロセッサが、前記秘密データを分割し、
前記プロセッサが、前記分割した秘密データと、複数の乱数からなる第1乱数群と、の排他的論理和に基づいて、複数の部分分散データを生成し、
前記プロセッサが、前記秘密データの所定のハッシュ関数によるハッシュ値と、前記第1乱数群の乱数から得られる第1の値の前記所定のハッシュ関数によるハッシュ値と、前記複数の部分分散データそれぞれの前記所定のハッシュ関数によるハッシュ値と、を算出し、
前記プロセッサが、前記複数の部分分散データそれぞれについて、前記秘密データのハッシュ値と前記第1の値のハッシュ値とを係数又は定数項として有する第1の関数に当該部分分散データを代入して得られる値と、前記第1乱数群に含まれない乱数からなる第2乱数群の乱数を係数又は定数項として有する第2の関数に当該部分分散データを代入して得られる値と、を含む付加分散データを、当該部分分散データに付加して分散データを生成し、
前記プロセッサが、前記分散データそれぞれを異なる出力先へと出力し、
前記プロセッサが、前記公開パラメータと前記秘密データのハッシュ値と前記第2乱数群に含まれる第1乱数とに基づいて算出される第2の値と、前記公開パラメータと前記第1の値のハッシュ値と前記第2乱数群に含まれる第2乱数とに基づいて算出される第3の値と、を前記分散データの検証用データに含める、秘密分散方法。 A secret sharing method using a secret sharing device,
The secret sharing device includes a processor and a storage device,
The storage device holds secret data and public parameters,
The secret sharing method is
The processor divides the secret data,
The processor generates a plurality of partial distributed data based on an exclusive OR of the divided secret data and a first random number group composed of a plurality of random numbers,
The processor includes a hash value of the secret data according to a predetermined hash function, a hash value of a first value obtained from a random number of the first random number group according to the predetermined hash function, and the plurality of partial distributed data. Calculating a hash value by the predetermined hash function,
The processor obtains, for each of the plurality of partial distributed data, by assigning the partial distributed data to a first function having a hash value of the secret data and a hash value of the first value as a coefficient or a constant term. And a value obtained by substituting the partial variance data into a second function having a random number of a second random number group that is a random number not included in the first random number group as a coefficient or a constant term. Distributed data is added to the partial distributed data to generate distributed data,
The processor outputs each of the distributed data to different output destinations,
A second value calculated by the processor based on the public parameter, a hash value of the secret data, and a first random number included in the second random number group, and a hash of the public parameter and the first value. A secret sharing method, wherein a third value calculated based on a value and a second random number included in the second random number group is included in the verification data of the shared data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018197533A JP6997696B2 (en) | 2018-10-19 | 2018-10-19 | Secret sharing device, secret sharing system, and secret sharing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018197533A JP6997696B2 (en) | 2018-10-19 | 2018-10-19 | Secret sharing device, secret sharing system, and secret sharing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020064245A true JP2020064245A (en) | 2020-04-23 |
JP6997696B2 JP6997696B2 (en) | 2022-01-18 |
Family
ID=70387197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018197533A Active JP6997696B2 (en) | 2018-10-19 | 2018-10-19 | Secret sharing device, secret sharing system, and secret sharing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6997696B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230012676A (en) * | 2021-07-16 | 2023-01-26 | 주식회사 아이콘루프 | Method for transmitting data using a secret distributed |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009037094A (en) * | 2007-08-03 | 2009-02-19 | Kddi Corp | Apparatus for generating distributed information, apparatus for restoring secret information, method for generating distributed information, method for restoring secret information and program |
JP2009222778A (en) * | 2008-03-13 | 2009-10-01 | Toshiba Corp | Device, method, and program for adding distributed information |
JP2012194489A (en) * | 2011-03-17 | 2012-10-11 | Nec Soft Ltd | Shared information management system, shared information management method and shared information management program |
JP6300286B1 (en) * | 2016-12-27 | 2018-03-28 | 株式会社ZenmuTech | Access management system, access management method and program |
-
2018
- 2018-10-19 JP JP2018197533A patent/JP6997696B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009037094A (en) * | 2007-08-03 | 2009-02-19 | Kddi Corp | Apparatus for generating distributed information, apparatus for restoring secret information, method for generating distributed information, method for restoring secret information and program |
JP2009222778A (en) * | 2008-03-13 | 2009-10-01 | Toshiba Corp | Device, method, and program for adding distributed information |
JP2012194489A (en) * | 2011-03-17 | 2012-10-11 | Nec Soft Ltd | Shared information management system, shared information management method and shared information management program |
JP6300286B1 (en) * | 2016-12-27 | 2018-03-28 | 株式会社ZenmuTech | Access management system, access management method and program |
Non-Patent Citations (2)
Title |
---|
RONALD L. RIVEST: "All-or-Nathing Encryption and the Package Transform", LNCS, INTERNATIONAL WORKSHOP IN FAST SOFTWARE ENCRYPTION (FSE1997), vol. 1267, JPN6021047112, 1997, pages 210 - 218, XP007907068, ISSN: 0004649251 * |
千田 浩司 ほか: "効率的な3パーティ秘匿関数計算の提案とその運用モデルの考察", 情報処理学会研究報告 コンピュータセキュリティ(CSEC), JPN6013052563, 15 April 2010 (2010-04-15), JP, pages 1 - 7, ISSN: 0004649250 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230012676A (en) * | 2021-07-16 | 2023-01-26 | 주식회사 아이콘루프 | Method for transmitting data using a secret distributed |
KR102561247B1 (en) | 2021-07-16 | 2023-07-31 | 주식회사 파라메타 | Method for transmitting data using a secret distributed |
Also Published As
Publication number | Publication date |
---|---|
JP6997696B2 (en) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8077863B2 (en) | Secret sharing apparatus, method, and program | |
CN107210006B (en) | Inconsistency detection method, inconsistency detection system, inconsistency detection apparatus, and recording medium | |
JP6009697B2 (en) | Secret calculation method, secret calculation system, sort device, and program | |
JP7047133B2 (en) | Indexing and restoration of coded blockchain data | |
US20140229738A1 (en) | Timestamping system and timestamping program | |
JP2014044264A (en) | Secret distribution device and secret distribution program | |
JP5968484B1 (en) | Share recovery system, share recovery method, and program | |
CN111512590B (en) | Homomorphic encryption for password authentication | |
JP5860557B1 (en) | Secret disclosure method, secret disclosure system, secret disclosure device, and program | |
JP5299286B2 (en) | Distributed information generation apparatus, restoration apparatus, verification apparatus, and secret information distribution system | |
JP6844696B2 (en) | Authentication tag generator, authentication tag verification device, method and program | |
JP5944841B2 (en) | Secret sharing system, data sharing device, distributed data holding device, secret sharing method, and program | |
JPWO2016148281A1 (en) | Secret string calculation system, method, apparatus, and program | |
JP6777816B2 (en) | Secret tampering detection system, secret tampering detection device, secret tampering detection method, and program | |
JP6997696B2 (en) | Secret sharing device, secret sharing system, and secret sharing method | |
US9442890B2 (en) | Distribution apparatus, restoration apparatus, distribution method, restoration method, and distribution and restoration system | |
KR101666974B1 (en) | Prime number generation | |
JP6933290B2 (en) | Secret calculation device, secret calculation authentication system, secret calculation method, and program | |
JP4602675B2 (en) | CONFIDENTIAL INFORMATION MANAGEMENT SYSTEM, CONFIDENTIAL INFORMATION MANAGEMENT METHOD, CONFIDENTIAL INFORMATION MANAGEMENT PROGRAM, AND CONFIDENTIAL INFORMATION MANAGEMENT SYSTEM TERMINAL PROGRAM | |
CN114365132A (en) | Tamper verification method and tamper verification system | |
JP6495858B2 (en) | Server device, error correction system, error correction method, program | |
RU2369974C1 (en) | Method for generation and authentication of electronic digital signature that certifies electronic document | |
Kumar | New probabilistic efficient and secure protocols for data storage security in cloud computing | |
CN116781365A (en) | Resource scheduling verification method, device, computer equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210216 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211112 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20211130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211217 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6997696 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |