JP4783119B2 - Secret sharing apparatus, method and program - Google Patents

Secret sharing apparatus, method and program Download PDF

Info

Publication number
JP4783119B2
JP4783119B2 JP2005310056A JP2005310056A JP4783119B2 JP 4783119 B2 JP4783119 B2 JP 4783119B2 JP 2005310056 A JP2005310056 A JP 2005310056A JP 2005310056 A JP2005310056 A JP 2005310056A JP 4783119 B2 JP4783119 B2 JP 4783119B2
Authority
JP
Japan
Prior art keywords
information
distributed
secret
data
pieces
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005310056A
Other languages
Japanese (ja)
Other versions
JP2007124032A (en
Inventor
吉弘 藤井
美奈子 多田
範和 保坂
孝也 栃窪
岳久 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2005310056A priority Critical patent/JP4783119B2/en
Publication of JP2007124032A publication Critical patent/JP2007124032A/en
Application granted granted Critical
Publication of JP4783119B2 publication Critical patent/JP4783119B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、秘密情報を分散させた分散情報を配布し、収集した分散情報から秘密情報を復元する秘密分散装置、方法及びプログラムに係り、例えば多項式補間を用いずに高速に実行可能な完全秘密分散を実現し得る秘密分散装置、方法及びプログラムに関する。   The present invention relates to a secret sharing apparatus, method, and program for distributing shared information in which secret information is distributed and restoring the secret information from the collected shared information. For example, a complete secret that can be executed at high speed without using polynomial interpolation. The present invention relates to a secret sharing apparatus, method, and program that can realize sharing.

一般に、暗号化鍵などの秘密情報を紛失した場合の対策としては、予め秘密情報のコピーを作成しておくことが有効である。しかしながら、秘密情報のコピーを作成すると、盗難のリスクが高くなるという問題が生じる。このような問題を解決する手法として、1979年にシャミア(Shamir)が(k,n)しきい値秘密分散法と呼ばれる秘密分散法を提案している(例えば、非特許文献1参照)。   In general, it is effective to make a copy of secret information in advance as a countermeasure when secret information such as an encryption key is lost. However, when a copy of secret information is created, there is a problem that the risk of theft increases. As a technique for solving such a problem, Shamir proposed a secret sharing method called (k, n) threshold secret sharing method in 1979 (see, for example, Non-Patent Document 1).

(k,n)しきい値秘密分散法では、秘密情報をn個の分散情報に分割し、n個の分散情報の中から任意のk個を集めれば元の秘密情報を復元できるが、k−1個の分散情報からでは、元の秘密情報に関する情報を全く得られない。すなわち、(k,n)しきい値秘密分散法は、しきい値kを境にした秘密情報の復元特性をもっている(なお、1<k<n)。   In the (k, n) threshold secret sharing method, secret information is divided into n pieces of distributed information, and the original secret information can be restored by collecting arbitrary k pieces from the n pieces of shared information. No information on the original secret information can be obtained from one piece of shared information. That is, the (k, n) threshold value secret sharing method has a restoration characteristic of secret information with the threshold value k as a boundary (1 <k <n).

このため、(k,n)しきい値秘密分散法によれば、k−1個以下の分散情報が漏洩しても元の秘密情報が安全であり、n−k個以下の分散情報を紛失しても元の秘密情報を復元できるといった管理を実現できる。   For this reason, according to the (k, n) threshold secret sharing method, even if k−1 or less shared information is leaked, the original secret information is safe, and n−k or less shared information is lost. Even so, management that can restore the original secret information can be realized.

しかしながら、シャミアの(k,n)しきい値秘密分散法では、秘密情報の分散や復元の処理を、多くの計算量を要する多項式補間により実現するので、大量のデータを秘密分散するためには、高速な計算機を必要とする不都合がある。   However, in the Shamir (k, n) threshold secret sharing method, the secret information is distributed and restored by polynomial interpolation that requires a large amount of calculation. There is an inconvenience that requires a high-speed computer.

一方、このような不都合を解決し、計算量を大幅に削減し得る(k,n)しきい値秘密分散法として、荻原らの方式が知られている(例えば、特許文献1参照)。ここで、荻原らの方式は、秘密情報の分散処理や復元処理を排他的論理和演算のみで実現するので、高速に実行可能となっている。しかしながら、荻原らの方式は、例えば(3,4)しきい値法においては、分散データの取り方によっては、2個の分散データで元の秘密情報を復元できるなど(例えば、第132段落参照)、完全秘密分散ではない不都合がある。ここで、完全秘密分散とは、分散データの取り方によらずに、しきい値を境にした秘密情報の復元特性を有することを意味する。
A. Shamir: “How to share a secret", Communications of the ACM, 22, 11, pp.612-613 (1979) 特開2004−213650号公報
On the other hand, as a (k, n) threshold secret sharing method that can solve such inconvenience and can greatly reduce the amount of calculation, a method of Sugawara et al. Is known (see, for example, Patent Document 1). Here, the method of Sakakibara et al. Can realize the high-speed execution because the secret information is distributed and restored only by the exclusive OR operation. However, in the method of Sugawara et al., For example, in the (3, 4) threshold method, the original secret information can be restored with two pieces of distributed data depending on how the distributed data is taken (for example, see paragraph 132). ) There is an inconvenience that is not completely secret sharing. Here, the complete secret sharing means that there is a recovery characteristic of secret information with a threshold as a boundary, regardless of how to take the shared data.
A. Shamir: “How to share a secret”, Communications of the ACM, 22, 11, pp.612-613 (1979) JP 2004-213650 A

以上説明したように、シャミアによる(k,n)しきい値秘密分散法では、多項式補間を用いるため、高速な計算機が必要となる不都合がある。一方、荻原らの方式は、分散データの取り方によっては、完全秘密分散ではない不都合がある。   As described above, the (k, n) threshold secret sharing method based on Shamir uses polynomial interpolation, and thus has a disadvantage that a high-speed computer is required. On the other hand, the method of Hagiwara et al. Has the disadvantage that it is not perfect secret sharing depending on how to take distributed data.

また、本発明者の検討によれば、従来のシステムで分散情報を追加したい場合、次のように、(A)分散情報を全メンバに再配布する手法、又は(B)分散情報を追加メンバのみに配布する手法が考えられる。具体的には、手法(A)においては、追加後の人数に基づき、全ての分散情報を作成し直して全てのメンバに再配布する。手法(B)においては、ディーラーが予め分散情報を多めに作成して保持しておき、メンバ追加時に、この多めに作成してある分散情報を追加メンバのみに配布する。または手法(B)においては、ディーラーが秘密情報を保持しておき、追加人数分の分散情報を秘密情報から作成し、追加メンバのみに配布する方式としてもよい。   Further, according to the study of the present inventor, when it is desired to add shared information in the conventional system, (A) a method of redistributing the distributed information to all members, or (B) an additional member of the distributed information as follows: It is possible to distribute it only to Specifically, in the method (A), based on the number of persons after the addition, all shared information is recreated and redistributed to all members. In the method (B), the dealer creates and holds a large amount of shared information in advance, and distributes the extra shared information to only the additional members when adding members. Alternatively, in the method (B), the dealer may hold the secret information, create the distributed information for the additional number of people from the secret information, and distribute it only to the additional members.

しかしながら、追加時の手法(A)は、既存のメンバにも分散情報を再配布する必要があるので、手間がかかってしまう。また、手法(B)は、秘密情報を復元可能な数の分散情報、又は秘密情報それ自体を1箇所でディーラーが保持する必要があるので、セキュリティ性を低下させてしまう。   However, since the method (A) at the time of addition needs to redistribute distributed information to existing members, it takes time and effort. Further, in the method (B), since the dealer needs to hold the number of pieces of shared information that can restore the secret information or the secret information itself at one place, the security is lowered.

本発明は上記実情を考慮してなされたもので、多項式補間を用いずに高速に実行可能な完全秘密分散を実現し得る秘密分散装置、方法及びプログラムを提供することを目的とする。   The present invention has been made in consideration of the above circumstances, and an object thereof is to provide a secret sharing apparatus, method, and program capable of realizing complete secret sharing that can be executed at high speed without using polynomial interpolation.

本発明の他の目的は、メンバを追加したい場合に、分散情報を既存のメンバに配布する必要がなく、また、秘密情報を復元可能な数の分散情報又は秘密情報を1箇所に保存せずに、セキュリティ性を向上し得る秘密分散装置のプログラムを提供することにある。   Another object of the present invention is that it is not necessary to distribute shared information to existing members when adding members, and the number of shared information or secret information that can restore secret information is not stored in one place. Another object of the present invention is to provide a secret sharing apparatus program that can improve security.

第1の発明は、秘密情報Sが分散されてなるn個(但し、n≧2)の分散情報D(0),…,D(n-1)を個別にn個の記憶装置に配布し、且つ、前記n個の分散情報のうち、任意の2個の分散情報から秘密情報Sを復元可能な(2,n)型の秘密分散装置であって、前記分散情報D(0)〜D(n-1)が配布される前に、前記秘密情報Sが一時的に記憶される記憶手段と、この秘密情報Sをn−1個に分割すると共に、分割結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てることにより、互いに同一サイズのn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)を生成する手段と、前記各分割秘密データのサイズと同一サイズのゼロ値を作成し、作成結果に行番号j=0を割り当てて第2分割秘密データK(0)を生成する手段と、前記各分割秘密データのサイズ以上のサイズを有するn−1個の乱数を生成すると共に、各生成結果に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当ててn−1個の乱数データR(0),…,R(i),…,R(n-2)を生成する手段と、前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び前記乱数データR(0),…,R(i),…,R(n-2)に基づいて、n(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)を算出する手段(但し、(+)は排他的論理和を表す記号)と、前記各分散部分データのうち、同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に、行番号jを割り当ててn個のヘッダ情報H(0),…,H(j),…,H(n-1)を生成する手段と、互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0)〜D(j,n-2)からなるn個の分散情報D(0),…,D(j),…,D(n-1)を個別に前記n個の記憶装置に配布する手段と、前記配布されたn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)に基づいて、前記秘密情報Sを復元する復元手段とを備えた秘密分散装置である。   The first invention distributes n (where n ≧ 2) shared information D (0),..., D (n−1) obtained by distributing the secret information S to n storage devices individually. And (2, n) type secret sharing apparatus capable of restoring the secret information S from any two of the n pieces of shared information, wherein the shared information D (0) to D Before the distribution of (n-1), the storage means for temporarily storing the secret information S and the secret information S are divided into n-1 pieces, and the division results are divided into 1 to n-1. .., K (j),..., K (1) are assigned the same row number j (where 0 ≦ j ≦ n−1). n-1), a zero value having the same size as the size of each of the divided secret data, and a line number j = 0 is assigned to the generation result to generate the second divided secret data. A means for generating K (0), and n-1 random numbers having a size equal to or larger than the size of each of the divided secret data, and a column number i from 0 to n-2 (where Means for generating (n-1) random number data R (0), ..., R (i), ..., R (n-2) by assigning 0≤i≤n-2), The divided secret data K (0), K (1), ..., K (j), ..., K (n-1) and the random number data R (0), ..., R (i), ..., R (n- 2) Based on (2), means for calculating n (n−1) pieces of distributed partial data D (j, i) = K (j−i (mod n)) (+) R (i) (where (+ ) Is a symbol representing exclusive OR), and n-1 distributed partial data D (j, 0) to D (j, n-2) having the same row number j among the respective distributed partial data. N number of header information by assigning line number j every time (0),..., H (j),..., H (n−1), header information H (j) and distributed partial data D (j, 0) having the same row number j Means for distributing n pieces of distributed information D (0),..., D (j),..., D (n-1) comprising D (j, n-2) individually to the n storage devices; The secret information S is restored based on any two pieces of distributed information D (i) and D (j) among the distributed n pieces of distributed information D (0) to D (n-1). A secret sharing apparatus including a restoring unit.

第2の発明は、秘密情報Sが分散されてなるn’個(但し、n’≧3)の分散情報D(0),…,D(n’-1)のうち、n個(但し、n<n’)の分散情報D(0),…,D(n-1)を個別にn個の記憶装置に配布し、且つ、前記n個の分散情報のうち、任意の2個の分散情報から秘密情報Sを復元可能な(2,n)型の秘密分散装置のプログラムであって、前記秘密分散装置のコンピュータを、前記分散情報D(0)〜D(n-1)が配布される前に、前記秘密情報Sが一時的に記憶される記憶手段、この秘密情報Sをn’−1個に分割すると共に、分割結果に1からn’−1までの行番号j(但し、0≦j≦n’−1)を割り当てることにより、互いに同一サイズのn’−1個の第1分割秘密データK(1),…,K(j),…,K(n’-1)を生成する手段、前記各分割秘密データのサイズと同一サイズのゼロ値を作成し、作成結果に行番号j=0を割り当てて第2分割秘密データK(0)(=0)を生成する手段、前記各分割秘密データのサイズ以上のサイズを有するn’−1個の乱数を生成すると共に、各生成結果に0からn’−2までの列番号i(但し、0≦i≦n’−2)を割り当ててn’−1個の乱数データR(0),…,R(i),…,R(n’-2)を生成する手段、前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n’-1)及び前記乱数データR(0),…,R(i),…,R(n’-2)に基づいて、n(n’−1)個の分散部分データD(j,i)=K(j−i(mod n’))(+)R(i)を算出する手段(但し、(+)は排他的論理和を表す記号)、前記各分散部分データのうち、同一の行番号jを有するn’−1個の分散部分データD(j,0)〜D(j,n’-2)毎に、行番号jを割り当ててn個のヘッダ情報H(0),…,H(j),…,H(n-1)を生成する手段、互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0)〜D(j,n’-2)からなるn個の分散情報D(0),…,D(j),…,D(n-1)を個別に前記n個の記憶装置に配布する手段、前記配布されたn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)に基づいて、前記秘密情報Sを復元する秘密情報復元手段、前記(2,n)型を(2,n+t)型に変更したいとき、変更可能条件t≦n’−nを満たすか否かを判定する手段、前記判定結果が変更可能条件を満たすとき、前記任意の2個の分散情報D(i),D(j)に基づいて、t個の分散情報D(n),…,D(n-1+t)を生成する分散情報生成手段、この生成したt個の分散情報D(n),…,D(n-1+t)を前記n個の記憶装置とは異なるt個の記憶装置に個別に配布する手段、として機能させるためのプログラムである。   According to the second invention, n (provided that n (note that n ′ ≧ 3) shared information D (0),..., D (n′−1)) in which the secret information S is distributed. n <n ′) distributed information D (0),..., D (n−1) are individually distributed to n storage devices, and any two of the n pieces of distributed information are distributed. A (2, n) type secret sharing apparatus program capable of restoring the secret information S from the information, wherein the shared information D (0) to D (n-1) is distributed to the computer of the secret sharing apparatus. Storage means in which the secret information S is temporarily stored, and the secret information S is divided into n′−1 pieces, and the division results are divided into line numbers j (from 1 to n′−1). By assigning 0 ≦ j ≦ n′−1), n′−1 pieces of first divided secret data K (1),..., K (j),. Raw Means for generating a second divided secret data K (0) (= 0) by generating a zero value having the same size as the size of each of the divided secret data and assigning a row number j = 0 to the generation result; N′−1 random numbers having a size equal to or larger than the size of each divided secret data are generated, and a column number i from 0 to n′−2 (where 0 ≦ i ≦ n′−2) is generated in each generation result. , R (i),..., R (n′−2), and the first and second divided secret data K (0). , K (1), ..., K (j), ..., K (n'-1) and the random number data R (0), ..., R (i), ..., R (n'-2). , N (n′−1) distributed partial data D (j, i) = K (j−i (mod n ′)) (+) means for calculating R (i) (where (+) is exclusive) Symbol representing logical OR), previous Of each distributed partial data, n'-1 distributed partial data D (j, 0) to D (j, n'-2) having the same row number j are assigned a row number j and n. , H (j),..., H (n−1), header information H (j) having the same row number j and distributed partial data D (j, , D (j),..., D (n-1) each consisting of 0) to D (j, n′−2) are distributed to the n storage devices individually. The secret information S based on any two pieces of shared information D (i), D (j) among the distributed n pieces of shared information D (0) to D (n-1). Secret information restoring means for restoring the information, means for judging whether or not the changeable condition t ≦ n′−n is satisfied when the (2, n) type is changed to the (2, n + t) type, and the judgment result is Changeable conditions When satisfying, shared information generation for generating t pieces of shared information D (n),..., D (n-1 + t) based on the arbitrary two pieces of shared information D (i), D (j) Means for distributing the generated t pieces of distributed information D (n),..., D (n-1 + t) individually to t storage devices different from the n storage devices. It is a program for.

第3の発明は、秘密情報Sが分散されてなる5個の分散情報D(0),…,D(4)を個別に5個の記憶装置に配布し、且つ、前記5個の分散情報のうち、任意の3個の分散情報から秘密情報Sを復元可能な(3,5)型の秘密分散装置のプログラムであって、前記秘密分散装置のコンピュータを、前記分散情報D(0)〜D(4)が配布される前に、前記秘密情報Sが一時的に記憶される記憶手段、この秘密情報Sを2個に分割すると共に、分割結果に0から1までの識別番号を割り当てることにより、互いに同一サイズの2個の分割秘密データK(0),K(1)を生成する手段、前記各分割秘密データのサイズと同一サイズを有する4個の乱数を生成すると共に、各生成結果に0から3までの識別番号を割り当てて4個の乱数データR(0),R(1),R(2),R(3)を生成する手段、前記2個の分割秘密データK(0),K(1)、前記4個の乱数データR(0)〜R(3)及び下記10個の式に基づいて(但し、(+)は排他的論理和を表す記号)、互いに2つの識別番号の組合せで識別可能な10個の分散部分データD(0,0),D(0,1),D(1,0),D(1,1),D(2,0),D(2,1),D(3,0),D(3,1),D(4,0),D(4,1)を算出する手段、 D(0,0)=R(0)、 D(0,1)=K(0)(+)R(1)(+)R(2)、 D(1,0)=R(1)、 D(1,1)=K(1)(+)R(2)(+)R(3)、 D(2,0)=R(2)、 D(2,1)=K(0)(+)R(3)(+)R(0)、 D(3,0)=R(3)、 D(3,1)=K(1)(+)R(0)(+)R(1)、 D(4,0)=K(1)(+)R(0)(+)R(2)、 D(4,1)=K(0)(+)R(1)(+)R(3)、前記各分散部分データの2つの識別番号を行番号j,列番号iとし、各分散部分データをD(j,i)と表すとき、同一の行番号jを有する2個の分散部分データD(j,0),D(j,1)毎に、行番号jを割り当てて、5個のヘッダ情報H(0),H(1),H(2),H(3),H(4)を生成する手段、互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0),D(j,1)からなる5個の分散情報D(0),D(1),D(2),D(3),D(4)を個別に前記5個の記憶装置に配布する手段、前記配布された5個の分散情報D(0)〜D(4)のうち、任意の3個の分散情報D(j)に基づいて、前記秘密情報Sを復元する復元手段、として機能させるためのプログラムである。   According to a third aspect of the invention, five pieces of shared information D (0),..., D (4) obtained by distributing secret information S are distributed to five storage devices individually, and the five pieces of shared information are distributed. (3, 5) type secret sharing apparatus program capable of restoring the secret information S from any three pieces of shared information, the computer of the secret sharing apparatus being connected to the shared information D (0) ˜ Storage means for temporarily storing the secret information S before D (4) is distributed, dividing the secret information S into two, and assigning an identification number from 0 to 1 to the division result Means for generating two divided secret data K (0) and K (1) having the same size, generating four random numbers having the same size as the size of each of the divided secret data, and generating each result Random number data R with 4 assigned identification numbers from 0 to 3 0), R (1), R (2), R (3), the two divided secret data K (0), K (1), the four random number data R (0) to Based on R (3) and the following 10 equations (where (+) is a symbol representing exclusive OR), 10 distributed partial data D (0, 0, identifiable by a combination of two identification numbers) 0), D (0, 1), D (1, 0), D (1, 1), D (2, 0), D (2, 1), D (3, 0), D (3, 1 ), D (4,0), means for calculating D (4,1), D (0,0) = R (0), D (0,1) = K (0) (+) R (1) (+) R (2), D (1,0) = R (1), D (1,1) = K (1) (+) R (2) (+) R (3), D (2, 0) = R (2), D (2,1) = K (0) (+) R (3) (+) R (0), D (3,0) = R (3), D (3 1) K (1) (+) R (0) (+) R (1), D (4,0) = K (1) (+) R (0) (+) R (2), D (4,1 ) = K (0) (+) R (1) (+) R (3), the two identification numbers of each distributed partial data are row number j and column number i, and each distributed partial data is D (j, i), a row number j is assigned to each of two pieces of distributed partial data D (j, 0) and D (j, 1) having the same row number j, and five pieces of header information H (0 ), H (1), H (2), H (3), H (4), header information H (j) having the same row number j and distributed partial data D (j, 0) , D (j, 1), 5 pieces of distributed information D (0), D (1), D (2), D (3), D (4) are individually distributed to the five storage devices. Means, any three of the distributed five pieces of distributed information D (0) to D (4) Based of the shared information D (j), said a program for functioning as a restoring means for restoring the secret information S.

第4の発明は、秘密情報Sが分散されてなる7個の分散情報D(0),…,D(6)を個別に7個の記憶装置に配布し、且つ、前記7個の分散情報のうち、任意の3個の分散情報から秘密情報Sを復元可能な(3,7)型の秘密分散装置のプログラムであって、前記秘密分散装置のコンピュータを、前記分散情報D(0)〜D(6)が配布される前に、前記秘密情報Sが一時的に記憶される記憶手段、この秘密情報Sを3個に分割すると共に、分割結果に0から2までの識別番号を割り当てることにより、互いに同一サイズの3個の分割秘密データK(0),K(1),K(2)を生成する手段、前記各分割秘密データのサイズと同一サイズを有する6個の乱数を生成すると共に、各生成結果に0から5までの識別番号を割り当てて6個の乱数データR(0),R(1),R(2),R(3),R(4),R(5)を生成する手段、前記3個の分割秘密データK(0)〜K(2)、前記6個の乱数データR(0)〜R(5)及び下記21個の式に基づいて(但し、(+)は排他的論理和を表す記号)、互いに2つの識別番号の組合せで識別可能な21個の分散部分データD(0,0),D(0,1),D(0,2),D(1,0),D(1,1),D(1,2),D(2,0),D(2,1),D(2,2),D(3,0),D(3,1),D(3,2),D(4,0),D(4,1)D(4,2),D(5,0),D(5,1),D(5,2),D(6,0),D(6,1),D(6,2)を算出する手段、 D(0,0)=R(0)、 D(0,1)=K(0)(+)R(1)(+)R(2)、 D(0,2)=K(2)(+)R(3)(+)R(5)、 D(1,0)=R(1)、 D(1,1)=K(1)(+)R(2)(+)R(3)、 D(1,2)=K(0)(+)R(0)(+)R(4)、 D(2,0)=R(2)、 D(2,1)=K(2)(+)R(3)(+)R(4)、 D(2,2)=K(1)(+)R(1)(+)R(5)、 D(3,0)=R(3)、 D(3,1)=K(0)(+)R(4)(+)R(5)、 D(3,2)=K(2)(+)R(0)(+)R(2)、 D(4,0)=R(4)、 D(4,1)=K(1)(+)R(5)(+)R(0)、 D(4,2)=K(0)(+)R(1)(+)R(3)、 D(5,0)=R(5)、 D(5,1)=K(2)(+)R(0)(+)R(1)、 D(5,2)=K(1)(+)R(2)(+)R(4)、 D(6,0)=K(1)(+)R(0)(+)R(3)、 D(6,1)=K(2)(+)R(1)(+)R(4)、 D(6,2)=K(0)(+)R(2)(+)R(5)、前記各分散部分データの2つの識別番号を行番号j,列番号iとし、各分散部分データをD(j,i)と表すとき、同一の行番号jを有する3個の分散部分データD(j,0),D(j,1),D(j,2)毎に、行番号jを割り当てて、7個のヘッダ情報H(0),H(1),H(2),H(3),H(4),H(5),H(6)を生成する手段、互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0),D(j,1),D(j,2)からなる7個の分散情報D(0),D(1),D(2),D(3),D(4),D(5),D(6)を個別に前記7個の記憶装置に配布する手段、前記配布された7個の分散情報D(0)〜D(6)のうち、任意の3個の分散情報D(j)に基づいて、前記秘密情報Sを復元する復元手段、として機能させるためのプログラムである。   According to a fourth aspect of the invention, seven pieces of shared information D (0),..., D (6) obtained by distributing the secret information S are individually distributed to seven storage devices, and the seven pieces of shared information are distributed. (3, 7) type secret sharing apparatus program capable of restoring the secret information S from any three pieces of shared information, the computer of the secret sharing apparatus being connected to the shared information D (0) ˜ Storage means for temporarily storing the secret information S before D (6) is distributed, dividing the secret information S into three, and assigning an identification number from 0 to 2 to the division result To generate three pieces of divided secret data K (0), K (1), K (2) having the same size, and six random numbers having the same size as the size of each of the divided secret data. In addition, each generation result is assigned an identification number from 0 to 5, Means for generating data R (0), R (1), R (2), R (3), R (4), R (5), the three divided secret data K (0) to K (2 ), Based on the six random number data R (0) to R (5) and the following 21 formulas (where (+) is a symbol representing an exclusive OR), and a combination of two identification numbers. 21 pieces of distributed partial data D (0,0), D (0,1), D (0,2), D (1,0), D (1,1), D (1,2) that can be identified , D (2,0), D (2,1), D (2,2), D (3,0), D (3,1), D (3,2), D (4,0), D (4,1) D (4,2), D (5,0), D (5,1), D (5,2), D (6,0), D (6,1), D ( 6, 2) means for calculating D (0,0) = R (0), D (0,1) = K (0) (+) R (1) (+) R (2) D (0,2) = K (2) (+) R (3) (+) R (5), D (1,0) = R (1), D (1,1) = K (1) ( +) R (2) (+) R (3), D (1,2) = K (0) (+) R (0) (+) R (4), D (2,0) = R (2 ), D (2,1) = K (2) (+) R (3) (+) R (4), D (2,2) = K (1) (+) R (1) (+) R (5), D (3,0) = R (3), D (3,1) = K (0) (+) R (4) (+) R (5), D (3,2) = K (2) (+) R (0) (+) R (2), D (4,0) = R (4), D (4,1) = K (1) (+) R (5) (+ ) R (0), D (4,2) = K (0) (+) R (1) (+) R (3), D (5,0) = R (5), D (5,1) = K (2) (+) R (0) (+) R (1), D (5,2) = K (1) (+) R (2) (+) R (4), D (6 0) = K (1) (+) R (0) (+) R ( ), D (6,1) = K (2) (+) R (1) (+) R (4), D (6,2) = K (0) (+) R (2) (+) R (5) Three distributions having the same row number j when the two identification numbers of the respective distributed partial data are represented by row number j and column number i, and each distributed partial data is represented by D (j, i). A row number j is assigned to each of the partial data D (j, 0), D (j, 1), D (j, 2), and seven pieces of header information H (0), H (1), H (2 ), H (3), H (4), H (5), H (6), header information H (j) having the same row number j and distributed partial data D (j, 0) , D (j, 1), D (j, 2), seven pieces of shared information D (0), D (1), D (2), D (3), D (4), D (5) , D (6) individually distributed to the seven storage devices, the distributed seven Of distributed information D (0) ~D (6), based on any of the three shared information D (j), said a program for functioning as a restoring means for restoring the secret information S.

(作用)
第1〜第4の各発明は、排他的論理和を用いた(2,n)型、(3,5)型、又は(3,7)型のしきい値秘密分散により、秘密情報の分散や復元の処理を非常に高速に実現し、多項式補間を用いずに高速に実行可能な完全秘密分散を実現することができる。
(Function)
Each of the first to fourth inventions distributes secret information by using (2, n) type, (3,5) type, or (3,7) type threshold secret sharing using exclusive OR. And restoration processing can be realized at a very high speed, and complete secret sharing that can be executed at high speed without using polynomial interpolation can be realized.

これに加え、第2の発明は、メンバを追加したい場合に、配布されたn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)に基づいて、追加人数分のt個の分散情報D(n),…,D(n-1+t)を生成し、この分散情報D(n),…,D(n-1+t)を追加メンバに配布する。   In addition, in the second invention, when it is desired to add a member, any two pieces of distributed information D (i) among the distributed n pieces of distributed information D (0) to D (n-1). , D (j), t shared information D (n),..., D (n-1 + t) for the additional number of people is generated, and this shared information D (n),. -1 + t) is distributed to additional members.

これにより、第2の発明は、メンバを追加したい場合に、分散情報を既存のメンバに配布する必要がなく、また、秘密情報を復元可能な数の分散情報又は秘密情報を1箇所に保存せずに、セキュリティ性を向上させることができる。   Thus, according to the second invention, when adding a member, it is not necessary to distribute the distributed information to the existing members, and the number of shared information or secret information that can restore the secret information can be stored in one place. And security can be improved.

以上説明したように本発明によれば、多項式補間を用いずに高速に実行可能な完全秘密分散を実現することができる。   As described above, according to the present invention, complete secret sharing that can be executed at high speed without using polynomial interpolation can be realized.

以下、本発明の各実施形態を図面を用いて説明する。なお、以下の各装置は、各装置毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. Each of the following devices can be implemented for each device with either a hardware configuration or a combined configuration of hardware resources and software. As the software of the combined configuration, a program that is installed in advance on a computer of a corresponding device from a network or a storage medium and that realizes the function of the corresponding device is used.

(第1の実施形態)
図1は本発明の第1の実施形態に係る秘密分散システムの構成を示す模式図である。この秘密分散システムは、1台のクライアント装置10及びn−1台の保管サーバ装置20,30,…,n0が互いにインターネット等のネットワークNWを介して接続されている。
(First embodiment)
FIG. 1 is a schematic diagram showing the configuration of a secret sharing system according to the first embodiment of the present invention. In this secret sharing system, one client device 10 and n-1 storage server devices 20, 30,..., N0 are connected to each other via a network NW such as the Internet.

これら合計n台の装置10,20,30,…,n0は、(k,n)しきい値秘密分散法におけるn人のメンバに対応する。特に、n台の装置10,20,…,n0が個別に有するn個の保存部11,21,…,n1は、n人のメンバが個別に有するn個の記憶装置に対応する。各装置10,20,30,…,n0には、それぞれ分散情報の配布順番を示すj番号(行番号)が割当てられている。例えば、クライアント装置10には、j=0番目が割り当てられており、保管サーバ装置20にはj=1番目が割り当てられている。保管サーバ装置30にはj=2番目が割り当てられ、…、保管サーバ装置n0にはj=n−1番目が割り当てられている。   These n devices 10, 20, 30,..., N0 correspond to n members in the (k, n) threshold secret sharing scheme. In particular, n storage units 11, 21,..., N1 that n devices 10, 20,..., N0 individually correspond to n storage devices that n members individually have. Each device 10, 20, 30,..., N0 is assigned a j number (row number) indicating the distribution order of the distributed information. For example, j = 0 is assigned to the client device 10, and j = 1 is assigned to the storage server device 20. The storage server device 30 is assigned j = 2nd,..., The storage server device n0 is assigned j = n−1.

ここで、クライアント装置10は、秘密情報Sが分散されてなるn個(但し、n≧2)の分散情報D(0),…,D(n-1)を個別にn台の装置10,20,…,n0に配布し、且つ、n個の分散情報のうち、任意の2個の分散情報から秘密情報Sを復元可能な(2,n)型の秘密分散装置を実現するものである。なお、分散情報の個数は2個以上であればよい。例えばn=2とし、秘密情報Sをn−1(=1)個に分割して後述するK(1)とし、配布した2個の分散情報D(0),D(1)から秘密情報Sを復元してもよい。   Here, the client device 10 individually distributes n pieces (where n ≧ 2) of the shared information D (0),..., D (n−1) obtained by distributing the secret information S to the n devices 10. 20,..., N0 and a (2, n) type secret sharing apparatus capable of restoring the secret information S from any two pieces of shared information among the n pieces of shared information. . Note that the number of pieces of shared information may be two or more. For example, n = 2, and the secret information S is divided into n-1 (= 1) pieces to be K (1), which will be described later, and the secret information S is obtained from the distributed two pieces of distributed information D (0), D (1). May be restored.

具体的にはクライアント装置10は、保存部11、入力部12、分散部分データ生成部13、ハッシュ値生成部14、元データ復元部15、ハッシュ値検証部16、制御部17、出力部18及び通信部19が互いにバスを介して接続されている。   Specifically, the client device 10 includes a storage unit 11, an input unit 12, a distributed partial data generation unit 13, a hash value generation unit 14, an original data restoration unit 15, a hash value verification unit 16, a control unit 17, an output unit 18, and Communication units 19 are connected to each other via a bus.

保存部11は、制御部19から読出/書込可能なハードウェア資源としての記憶装置であり、後述する分散情報D(0)〜D(n-1)が配布される前に、秘密情報Sが一時的に記憶され、分散情報D(0)〜D(n-1)が作成されると、分散情報作成情報が記憶され、分散情報が配布された後、j=0番目の分散情報D(0)が記憶されると共に、秘密情報Sが削除される。ここで、分散情報作成情報は、分散情報D(j)の識別情報jと、分散情報D(j)の配布先識別情報(装置ID、装置のアドレス情報等)とが互いに関連付けられた情報である。   The storage unit 11 is a storage device as a hardware resource that can be read / written from the control unit 19, and before the distributed information D (0) to D (n-1) described later is distributed, the secret information S Is temporarily stored and shared information D (0) to D (n-1) is created, the shared information creation information is stored, and after the distributed information is distributed, j = 0th shared information D (0) is stored and the secret information S is deleted. Here, the shared information creation information is information in which the identification information j of the shared information D (j) and the distribution destination identification information (device ID, device address information, etc.) of the shared information D (j) are associated with each other. is there.

入力部12は、キーボード又はマウス等の通常の入力デバイスであり、操作者の操作により、分散処理又は復号処理の開始等の命令や、秘密情報S等の情報をクライアント装置10内に入力する機能をもっている。   The input unit 12 is a normal input device such as a keyboard or a mouse, and has a function of inputting information such as a start of distributed processing or decryption processing and information such as secret information S into the client device 10 by an operation of the operator. Have

分散部分データ生成部13は、制御部17により制御され、保存部11に一時的に記憶された秘密情報Sに基づいて、図2に一例(n=5の例)を示すように、n(n−1)個の分散部分データD(j,i)を生成する機能をもっている。具体的には、分散部分データ生成部12は、以下の各機能(f12−1)〜(f12−4)をもっている。   The distributed partial data generation unit 13 is controlled by the control unit 17 and based on the secret information S temporarily stored in the storage unit 11, as shown in FIG. 2 (example of n = 5), n ( It has a function of generating (n-1) pieces of distributed partial data D (j, i). Specifically, the distributed partial data generation unit 12 has the following functions (f12-1) to (f12-4).

(f12−1) 保存部11に記憶された秘密情報Sをn−1個に分割すると共に、分割結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てることにより、互いに同一サイズのn−1個の分割秘密データK(1),…,K(j),…,K(n-1)を生成する機能。   (F12-1) The secret information S stored in the storage unit 11 is divided into n-1 pieces, and the row numbers j from 1 to n-1 (where 0≤j≤n-1) are added to the division result. A function of generating n-1 pieces of divided secret data K (1),..., K (j),.

(f12−2) 各分割秘密データのサイズと同一サイズのゼロ値データを作成し、作成結果に行番号j=0を割り当てて分割秘密データK(0)を生成する機能。   (F12-2) A function of creating zero-value data having the same size as the size of each divided secret data and assigning line number j = 0 to the creation result to generate divided secret data K (0).

(f12−3) 各分割秘密データのサイズ以上のサイズを有するn−1個の乱数を生成すると共に、各生成結果に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当ててn−1個の乱数データR(0),…,R(i),…,R(n-2)を生成する機能。なお、各乱数R(i)は、互いに異なる値である。   (F12-3) n-1 random numbers having a size equal to or larger than the size of each divided secret data are generated, and column numbers i from 0 to n-2 (where 0 ≦ i ≦ n−) are generated in each generation result. 2) A function of assigning and generating n−1 random number data R (0),..., R (i),. Each random number R (i) is a different value.

(f12−4) 分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び乱数データR(0),…,R(i),…,R(n-2)に基づいて、n(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)を算出する機能(但し、(+)は排他的論理和を表す記号)。なお、K(j−i(mod n))=K(0)(=0)の場合、必ずしもK(0)の項を計算する必要は無く、例えばK(0)の項の計算無しにD(j,i)=R(i)としてもよい。このように、K(0)(=0)の場合、必ずしもK(0)の項を計算する必要が無いことは、本明細書中の他の箇所でも同様である。   (F12-4) The divided secret data K (0), K (1), ..., K (j), ..., K (n-1) and the random number data R (0), ..., R (i), ..., A function for calculating n (n−1) pieces of distributed partial data D (j, i) = K (j−i (mod n)) (+) R (i) based on R (n−2) ( However, (+) is a symbol representing exclusive OR). When K (j−i (mod n)) = K (0) (= 0), it is not always necessary to calculate the term of K (0), for example, without calculating the term of K (0). (J, i) = R (i) may be used. As described above, in the case of K (0) (= 0), it is not always necessary to calculate the term of K (0).

ハッシュ値生成部14は、制御部17により制御され、制御部17からバスを介してヘッダ情報H(j)が入力されると、ヘッダ情報H(j)のハッシュ値h(H(j))を生成し、得られたハッシュ値h(H(j))をバスに出力する機能をもっている。なお、ハッシュ値生成部14は、ヘッダ情報H(j)を検証しない場合、省略可能である。   The hash value generation unit 14 is controlled by the control unit 17, and when the header information H (j) is input from the control unit 17 via the bus, the hash value h (H (j)) of the header information H (j). And the obtained hash value h (H (j)) is output to the bus. The hash value generation unit 14 can be omitted if the header information H (j) is not verified.

元データ復元部15は、制御部17に制御され、n台の装置10,…,n0に配布されたn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)に基づいて、秘密情報Sを復元する秘密情報復元機能をもっている。具体的には元データ復元部15は、以下の各機能(f15−1)〜(f15−8)をもっている。   The original data restoration unit 15 is controlled by the control unit 17, and any two of n pieces of distributed information D (0) to D (n-1) distributed to the n devices 10, ..., n0. Based on the distributed information D (i) and D (j), the secret information restoring function for restoring the secret information S is provided. Specifically, the original data restoration unit 15 has the following functions (f15-1) to (f15-8).

(f15−1) 2個の分散情報D(i),D(j)のうち、一方の分散情報D(i)に関し、行番号iと同一の列番号iが割り当てられた分散部分データD(i,i)を含むか否かを判定する機能。   (F15-1) Among the two pieces of shared information D (i) and D (j), with respect to one shared information D (i), distributed partial data D () assigned the same column number i as the row number i A function for determining whether or not i, i) is included.

(f15−2) この判定の結果、分散情報D(i)が分散部分データD(i,i)を含むとき、この分散部分データD(i,i)と、他方の分散情報D(j)に含まれる同一列番号iの分散部分データD(j,i)と、j=0番目の分割秘密データK(0)(=0)とに基づいて、分割秘密データK(r)=D(i,i)(+)D(j,i)(+)K(0)を復元する第1の復元機能(但し、r=j−i(mod n))。なお、K(0)(=0)の項は必ずしも計算する必要が無く、例えばK(0)の項の計算無しにK(r)=D(i,i)(+)D(j,i)としてもよい。   (F15-2) As a result of this determination, when the shared information D (i) includes the distributed partial data D (i, i), the distributed partial data D (i, i) and the other shared information D (j) Divided secret data K (r) = D () based on the distributed partial data D (j, i) of the same column number i and j = 0th divided secret data K (0) (= 0) i, i) (+) D (j, i) (+) A first restoration function for restoring K (0) (where r = j−i (mod n)). It is not always necessary to calculate the term of K (0) (= 0). For example, K (r) = D (i, i) (+) D (j, i) without calculating the term of K (0). ).

(f15−3) この分割秘密データK(r)の復元後、第1終了条件i−r=n−1を満たすか否かを判定する機能。   (F15-3) A function of determining whether or not the first end condition i−r = n−1 is satisfied after restoration of the divided secret data K (r).

(f15−4) この判定結果が第1終了条件を満たさないとき、分割秘密データK(r)の復元の式をrだけずらすことにより、第1終了条件を満たすまで、順次、他の第1分割秘密データK(r+r),…,K((n-1)r)を復元する第2の復元機能(但し、K(r+r)=D(i,i−r)(+)D(j,i−r)(+)K(r),…,K((n-1)r)=D(i,i−(n-2)r)(+)D(j,i−(n-2)r)(+)K((n-2)r))。   (F15-4) When this determination result does not satisfy the first termination condition, the restoration formula of the divided secret data K (r) is shifted by r until the first termination condition is satisfied. A second restoration function for restoring the divided secret data K (r + r),..., K ((n−1) r) (where K (r + r) = D (i, ir−r) (+) D (j, ir) (+) K (r), ..., K ((n-1) r) = D (i, i- (n-2) r) (+) D (j, i- (n-2) ) r) (+) K ((n-2) r)).

(f15−5) f15−3の判定結果が第1終了条件を満たすとき又はf15−1により分散情報D(i)が分散部分データD(i,i)を含まないとき、他方の分散情報D(j)における行番号jと同一の列番号jが割り当てられた分散部分データD(j,j)と、一方の分散情報D(i)に含まれる同一列番号jの分散部分データD(i,j)と、j=0番目の分割秘密データK(0)(=0)とに基づいて、他の分割秘密データK(−r)=D(i,j)(+)D(j,j)(+)K(0)を復元する第3の復元機能。なお、K(0)(=0)の項は必ずしも計算する必要が無く、例えばK(0)の項の計算無しにK(−r)=D(i,j)(+)D(j,j)としてもよい。   (F15-5) When the determination result of f15-3 satisfies the first termination condition, or when the shared information D (i) does not include the distributed partial data D (i, i) by f15-1, the other shared information D The distributed partial data D (j, j) to which the same column number j as the row number j in (j) is assigned, and the distributed partial data D (i of the same column number j included in one shared information D (i). , J) and j = 0th divided secret data K (0) (= 0), the other divided secret data K (−r) = D (i, j) (+) D (j, j) A third restoration function for restoring (+) K (0). It is not always necessary to calculate the term of K (0) (= 0). For example, K (−r) = D (i, j) (+) D (j, j).

(f15−6) この分割秘密データK(−r)の復元後、第2終了条件j+r=n−1を満たすか否かを判定する機能。   (F15-6) A function of determining whether or not the second end condition j + r = n−1 is satisfied after restoration of the divided secret data K (−r).

(f15−7) この判定結果が第2終了条件を満たさないとき、分割秘密データK(−r)の復元の式をrだけずらすことにより、第2終了条件を満たすまで、順次、残りの分割秘密データK(−r−r),…,K(−(n-1)r)を復元する第4の復元機能(但し、K(−r−r)=D(i,j+r)(+)D(j,j+r)(+)K(−r),…,K(−(n-1)r)=D(i,j+(n-2)r)(+)D(j,j+(n-2)r)(+)K(−(n-2)r))。   (F15-7) When this determination result does not satisfy the second end condition, the remaining division is sequentially performed until the second end condition is satisfied by shifting the restoration formula of the divided secret data K (-r) by r. A fourth restoration function for restoring the secret data K (−r−r),..., K (− (n−1) r) (where K (−r−r) = D (i, j + r) (+) D (j, j + r) (+) K (-r), ..., K (-(n-1) r) = D (i, j + (n-2) r) (+) D (j, j + (n -2) r) (+) K (-(n-2) r)).

(f15−8) 各復元機能のうち、該当する各復元機能により復元されたn−1個の分割秘密データK(1),…,K(n-1)を互いに連接することにより、秘密情報S=K(1)‖K(2)‖…‖K(n-1)を復元する機能(但し、‖は連接を表す記号)。   (F15-8) The secret information is obtained by concatenating n−1 pieces of divided secret data K (1),..., K (n−1) restored by the corresponding restoration functions among the restoration functions. S = K (1) ‖K (2) ‖ ... function to restore 復 元 K (n-1) (where ‖ is a symbol representing concatenation).

ハッシュ値検証部16は、制御部17により制御され、制御部17からバスを介してヘッダ情報H(j)及びそのハッシュ値h(H(j))が入力されると、ハッシュ値h(H(j))に基づいてヘッダ情報H(j)を検証し、検証結果をバスに出力する機能をもっている。検証内容は、ヘッダ情報H(j)から計算したハッシュ値と、入力されたハッシュ値h(H(j))との一致により、ヘッダ情報H(j)を正当と判定する方式である。なお、ハッシュ値検証部16は、ヘッダ情報H(j)を検証しない場合、省略可能である。   The hash value verification unit 16 is controlled by the control unit 17, and when the header information H (j) and its hash value h (H (j)) are input from the control unit 17 via the bus, the hash value h (H The header information H (j) is verified based on (j)), and the verification result is output to the bus. The verification content is a method for determining that the header information H (j) is valid based on a match between the hash value calculated from the header information H (j) and the input hash value h (H (j)). The hash value verification unit 16 can be omitted if the header information H (j) is not verified.

ここで、ヘッダ情報H(j)は、図3の上方に一例を示すように、行番号jを示すデータ識別子、ヘッダのサイズを表すヘッダーサイズ、元データのサイズを表す元データサイズm、元の秘密情報Sの分割数を示す分割数n−1、分散部分データD(i,j)の処理単位ビットを示す処理単位ビット長a、乱数R(i)のデータサイズを示す乱数データサイズa、分割秘密データK(j)のサイズを表す分割データサイズa、パディングの有無やアルゴリズムを表すパディングアルゴリズム、ハッシュアルゴリズム情報(オプション)などが考えられる。ハッシュアルゴリズム情報は、ヘッダ情報のハッシュ値を算出し、ヘッダ情報の原本性を保証する場合などに追加される。すなわち、ハッシュアルゴリズム情報は、セキュリティの要件などに応じて追加又は省略される。但し、セキュリティの要件として予めシステムでハッシュアルゴリズムを決めている場合には、ハッシュアルゴリズム情報は、ヘッダ情報から省略可能である。   Here, the header information H (j) includes a data identifier indicating the line number j, a header size indicating the size of the header, an original data size m indicating the size of the original data, The division number n−1 indicating the division number of the secret information S, the processing unit bit length a indicating the processing unit bit of the distributed partial data D (i, j), and the random data size a indicating the data size of the random number R (i) A divided data size a representing the size of the divided secret data K (j), a padding algorithm representing the presence or absence of padding and an algorithm, hash algorithm information (option), and the like are conceivable. The hash algorithm information is added when the hash value of the header information is calculated and the originality of the header information is guaranteed. That is, hash algorithm information is added or omitted according to security requirements. However, when the hash algorithm is determined in advance by the system as a security requirement, the hash algorithm information can be omitted from the header information.

なお、分散情報D(j)のデータフォーマットは、図3の下方に一例を示すように、ヘッダ情報H(j)、そのハッシュ値h(H(j))、n−1個の分散部分データD(j,0),D(j,1),…,D(j,n-2)から構成されている。ここで、ハッシュ値h(H(j))は、オプション(option)であり、ヘッダ情報H(j)内のハッシュアルゴリズム情報と同様に、セキュリティの要件に応じて省略可能となっている。   The data format of the shared information D (j) is, as shown in the lower part of FIG. 3, header information H (j), its hash value h (H (j)), n−1 pieces of distributed partial data. D (j, 0), D (j, 1), ..., D (j, n-2). Here, the hash value h (H (j)) is an option, and can be omitted according to security requirements, like the hash algorithm information in the header information H (j).

制御部17は、入力部12から入力される命令に基づいて、後述する図4及び図5のフローチャートに基づいて、各部11,13〜16,18,19を制御する機能をもっている。また、制御部17は、例えば、以下の機能(f17−1)〜(f17−2)をもっている。   The control unit 17 has a function of controlling the units 11, 13 to 16, 18, and 19 based on instructions input from the input unit 12 and based on flowcharts of FIGS. 4 and 5 to be described later. Further, the control unit 17 has, for example, the following functions (f17-1) to (f17-2).

(f17−1) 分散部分データ生成部13により生成された各分散部分データのうち、同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に、行番号jを割り当ててn個のヘッダ情報H(0),…,H(j),…,H(n-1)を生成する機能。   (F17-1) Of the distributed partial data generated by the distributed partial data generation unit 13, n−1 distributed partial data D (j, 0) to D (j, n− having the same row number j are included. 2) A function for generating n pieces of header information H (0),..., H (j),.

(f17−2) 互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0)〜D(j,n-2)からなるn個の分散情報D(0),…,D(j),…,D(n-1)を通信部19を介して個別にn台の装置10,20,…,n0に配布する機能。なお、制御部17は、分散情報D(0)〜D(n-1)の漏洩防止の観点から、分散情報D(0)〜D(n-1)を暗号化した状態で配布してもよい。   (F17-2) Header information H (j) having the same row number j and n pieces of distributed information D (0) consisting of distributed partial data D (j, 0) to D (j, n-2), .., D (j),..., D (n-1) are individually distributed to n devices 10, 20,. The control unit 17 may distribute the distributed information D (0) to D (n-1) in an encrypted state from the viewpoint of preventing the shared information D (0) to D (n-1) from leaking. Good.

出力部18は、ディスプレイ装置やプリンタ装置等の通常の出力デバイスであり、制御部18により制御され、命令等の入力画面や、復元後の秘密情報S等の出力画面等を出力する機能をもっている。   The output unit 18 is a normal output device such as a display device or a printer device, and is controlled by the control unit 18 and has a function of outputting an input screen for commands and the like, an output screen for secret information S after restoration, and the like. .

通信部19は、制御部17により制御され、クライアント装置10とネットワークNWとの間の通信インターフェイス機能をもっている。   The communication unit 19 is controlled by the control unit 17 and has a communication interface function between the client device 10 and the network NW.

一方、各保管サーバ装置20〜n0について説明する。
各保管サーバ装置20〜n0は、記憶する分散情報D(1)〜D(n-1)が互いに異なる他は互いに同一構成のため、ここでは保管サーバ装置20を代表例に挙げて説明する。
On the other hand, each of the storage server devices 20 to n0 will be described.
Each of the storage server devices 20 to n0 has the same configuration except that the distributed information D (1) to D (n-1) to be stored is different from each other. Therefore, the storage server device 20 will be described as a representative example here.

保管サーバ装置20は、保存部21及び通信部22を備えている。   The storage server device 20 includes a storage unit 21 and a communication unit 22.

保存部21は、通信部22から読出/書込可能なハードウェア資源としての記憶装置であり、クライアント装置10から配布された分散情報D(1)が記憶される。   The storage unit 21 is a storage device as a hardware resource that can be read / written from the communication unit 22, and stores the distributed information D (1) distributed from the client device 10.

通信部22は、クライアント装置10から配布された分散情報D(1)を保存部21に書き込む機能と、クライアント装置10から要求された分散情報D(1)を保存部21から読み出してこの分散情報D(1)をクライアント装置10に返信する機能とをもっている。   The communication unit 22 writes the shared information D (1) distributed from the client device 10 to the storage unit 21, and reads the shared information D (1) requested from the client device 10 from the storage unit 21. A function of returning D (1) to the client device 10;

なお、通信部22は、分散情報D(1)の漏洩防止の観点から、クライアント装置10の認証機能を有してもよく、この場合、クライアント装置10の認証の後、分散情報D(1)を返信する構成として設けられる。   Note that the communication unit 22 may have an authentication function of the client device 10 from the viewpoint of preventing the shared information D (1) from leaking. In this case, after authentication of the client device 10, the shared information D (1) Is provided as a configuration for replying.

ここで、各保管サーバ装置20,30,…,n0は、他のクライアント装置や、USB(Universal Serial Bus)メモリ、携帯電話、PDA(Personal Digital Assistants:携帯情報端末)に置き換え可能であり、あるいは外付けHDD(Hard Disc Drive: 固定磁気ディスク装置)などのように、コンピュータ以外の他の装置と置き換えることも可能である。   Here, each storage server device 20, 30,..., N0 can be replaced with another client device, a USB (Universal Serial Bus) memory, a mobile phone, a PDA (Personal Digital Assistants: personal digital assistant), or It can be replaced with other devices other than a computer, such as an external HDD (Hard Disc Drive).

なお、各保管装置20,30,…,n0は、他のクライアント装置に置き換えられる場合、前述同様に、分散部分データ生成部13や元データ復元部15などの機能を保持していてもよい。すなわち、秘密情報を復元できる装置は、クライアント装置10以外にあってもよい。例えば、各保管装置20,30,…,n0のうちの任意の台数の装置j0,…が秘密情報を復元できる構成としてもよい。なお、分散の場合も同様に、秘密情報を分散できる装置は、クライアント装置10以外にあってもよい。例えば、各保管装置20,30,…,n0のうちの任意の台数の装置j0,…が分散情報を配布できる構成としてもよい。また、各保管装置20,30,…,n0がUSBメモリや携帯電話などのように物理的な接続手段又は無線通信手段を有する装置に置き換えられる場合、ネットワークNWを省略してもよい。上述した各保管装置20,30,…,n0を他の装置に置き換えた変形例は、以下の各実施形態でも同様に適用可能である。   When each storage device 20, 30,..., N0 is replaced with another client device, it may hold functions such as the distributed partial data generation unit 13 and the original data restoration unit 15 as described above. That is, the device that can restore the secret information may be other than the client device 10. For example, any number of devices j0,... Among the storage devices 20, 30,. Similarly, in the case of distribution, a device other than the client device 10 may distribute the secret information. For example, an arbitrary number of devices j0,... Among the storage devices 20, 30,. In addition, when each storage device 20, 30,..., N0 is replaced with a device having physical connection means or wireless communication means such as a USB memory or a mobile phone, the network NW may be omitted. The above-described modification in which the storage devices 20, 30,..., N0 are replaced with other devices can be similarly applied to the following embodiments.

次に、以上のように構成された秘密分散システムの動作を説明する。ここでは(2,n)型のしきい値秘密分散法を例に挙げて述べる。   Next, the operation of the secret sharing system configured as described above will be described. Here, the (2, n) type threshold secret sharing method will be described as an example.

始めに、n人のメンバ(初期メンバ)に、秘密情報Sを(2,n)しきい値秘密分散法で分散した分散情報D(j)を配布する場合を考える。このときnは素数を選ばなければならない。従って、合成数のn人に分散情報を配布したい場合は、n<n’でありかつn’が素数となるようなn’について秘密分散法を適用することになる。以下では(2,n)秘密分散法についての一例を示す。   First, consider a case where distributed information D (j) obtained by distributing secret information S by (2, n) threshold secret sharing method is distributed to n members (initial members). At this time, n must be a prime number. Therefore, when it is desired to distribute the distributed information to the composite number n, the secret sharing method is applied to n ′ where n <n ′ and n ′ is a prime number. In the following, an example of the (2, n) secret sharing method is shown.

(分散処理の動作)
クライアント装置10においては、分散情報D(0)〜D(n-1)を配布する前に、ビット長mの秘密情報Sが一時的に保存部11に記憶されているとする。
(Distributed processing operation)
In the client device 10, it is assumed that secret information S having a bit length m is temporarily stored in the storage unit 11 before the distributed information D (0) to D (n−1) is distributed.

このとき、クライアント装置10においては、図4に示すように、操作者(以下、ディーラーともいう)の操作により、分散処理の開始命令が入力部12から入力されたとする(ST1)。   At this time, in the client device 10, as shown in FIG. 4, it is assumed that a distributed processing start command is input from the input unit 12 by an operation of an operator (hereinafter also referred to as a dealer) (ST1).

クライアント装置10は、この開始命令に基づいて、分散処理を開始する。制御部17は、秘密情報Sのビット長をm、分散数をn、処理単位ビットをaと定める(ST1)。なお、秘密情報Sのビット長mは、保存部11内の秘密情報Sから分かる。処理単位ビットaは、分散データ生成部13の仕様により予め定まっている。   The client device 10 starts distributed processing based on this start command. The control unit 17 determines the bit length of the secret information S as m, the number of distributions as n, and the processing unit bit as a (ST1). Note that the bit length m of the secret information S can be found from the secret information S in the storage unit 11. The processing unit bit a is determined in advance according to the specification of the distributed data generation unit 13.

続いて、制御部17は、ビット長mの秘密情報Sをn−1個に分割した際のビット長(m/(n-1))が処理単位ビットaを超える(m/(n-1)>a)か否かを判定し(ST2)、処理単位ビットaを超える場合、nより大きい素数n’を探索し、得られた素数n’を分散数nと置き換えて(ST3)、ステップST1に戻る。   Subsequently, the control unit 17 determines that the bit length (m / (n-1)) when the secret information S having the bit length m is divided into n-1 pieces exceeds the processing unit bit a (m / (n-1). )> A) or not (ST2). When the processing unit bit a is exceeded, a prime number n ′ greater than n is searched, and the obtained prime number n ′ is replaced with the variance number n (ST3), step Return to ST1.

一方、ステップST2の判定の結果が否の場合、制御部17は、秘密情報S及び分散数nを分散部分データ生成部13に入力する。   On the other hand, if the result of the determination in step ST <b> 2 is negative, the control unit 17 inputs the secret information S and the distribution number n to the distributed partial data generation unit 13.

分散部分データ生成部13は、秘密情報S及び分散数nに基づいて、ビット長mの秘密情報Sをn−1個に分割した際のビット長(m/(n-1))が処理単位ビットaと等しいか(m/(n-1)=a)か否かを判定する(ST4)。   The distributed partial data generation unit 13 has a bit length (m / (n-1)) when the secret information S having the bit length m is divided into n-1 based on the secret information S and the distribution number n. It is determined whether it is equal to bit a (m / (n-1) = a) (ST4).

ステップST4の判定結果が否の場合、分散部分データ生成部13は、秘密情報Sをn−1個の分割秘密データK(0)〜K(n-2)に分割した際の末尾の分割秘密データK(n-2)をパディングする(パディング有)とし(ST5)、ステップST6に進む。   If the determination result in step ST4 is negative, the distributed partial data generation unit 13 divides the secret information S into n-1 pieces of divided secret data K (0) to K (n-2), and the last divided secret. The data K (n-2) is padded (with padding) (ST5), and the process proceeds to step ST6.

なお、パディングは、必ずしも末尾の分割秘密データK(n-2)に行わなくても良く、他の分割秘密データK(j)に行っても良い。但し、本実施形態では、秘密情報Sは4個にちょうど分割できた場合(パディング無し)を例に挙げて述べる。また、図2に示した如き、分散数n=5,しきい値k=2の(2,5)型を例に挙げて述べる。   Note that padding does not necessarily have to be performed on the last divided secret data K (n-2), and may be performed on other divided secret data K (j). However, in the present embodiment, the secret information S will be described as an example in which the secret information S can be divided into four (no padding). Further, as shown in FIG. 2, a (2, 5) type with a dispersion number n = 5 and a threshold value k = 2 will be described as an example.

ステップST4の判定の結果、処理単位ビットaと等しい場合、分散部分データ生成部13は、この秘密情報Sをn−1個に分割すると共に、分割結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てることにより、互いに同一サイズのn−1個の分割秘密データK(1),…,K(j),…,K(n-1)を生成する。(2,5)型の例では、分割秘密データK(1),…,K(4)が生成される。   If the result of determination in step ST4 is equal to the processing unit bit a, the distributed partial data generation unit 13 divides the secret information S into n−1 pieces, and the division result includes row numbers j from 1 to n−1. (Where 0 ≦ j ≦ n−1) is assigned to generate n−1 pieces of divided secret data K (1),..., K (j),. To do. In the (2, 5) type example, divided secret data K (1),..., K (4) are generated.

また、分散部分データ生成部13は、各分割秘密データのサイズと同一サイズのゼロ値を作成し、作成結果に行番号j=0を割り当てて分割秘密データK(0)を生成する。   In addition, the distributed partial data generation unit 13 generates a zero value having the same size as the size of each divided secret data, assigns a line number j = 0 to the generation result, and generates divided secret data K (0).

さらに、分散部分データ生成部13は、各分割秘密データのサイズ以上のサイズを有するn−1個の乱数を生成すると共に、各生成結果に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当ててn−1個の乱数データR(0),…,R(i),…,R(n-2)を生成する(ST6)。(2,5)型の例では、4個の乱数データR(0),…,R(3)が生成される。   Further, the distributed partial data generation unit 13 generates n−1 random numbers having a size equal to or larger than the size of each divided secret data, and each generation result includes a column number i (0 to n−2). .Ltoreq.i.ltoreq.n-2) is assigned to generate n-1 random number data R (0),..., R (i),. In the (2, 5) type example, four random number data R (0),..., R (3) are generated.

次に、分散部分データ生成部13は、分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び乱数データR(0),…,R(i),…,R(n-2)に基づいて、n(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)を算出する(ST7)。この算出は、行番号jを0からn-1まで繰り返すと共に、列番号iを0からn-2まで繰り返すことにより行う。(2,5)型の例では、図2に示したように、20個の分散部分データD(j,i)が生成される。また、K(j−i(mod n))=K(0)(=0)の場合、K(0)の項を計算せずに、D(j,i)=R(i)としてもよい。   Next, the distributed partial data generation unit 13 divides the secret data K (0), K (1),..., K (j), ..., K (n-1) and random number data R (0),. Based on (i),..., R (n−2), n (n−1) pieces of distributed partial data D (j, i) = K (j−i (mod n)) (+) R (i ) Is calculated (ST7). This calculation is performed by repeating the row number j from 0 to n-1 and repeating the column number i from 0 to n-2. In the (2, 5) type example, as shown in FIG. 2, 20 distributed partial data D (j, i) are generated. If K (j−i (mod n)) = K (0) (= 0), D (j, i) = R (i) may be set without calculating the term of K (0). .

しかる後、分散部分データ生成部13は、得られた分散部分データn(n−1)個の分散部分データD(j,i)を制御部17に出力する。   Thereafter, the distributed partial data generation unit 13 outputs the obtained distributed partial data n (n−1) pieces of distributed partial data D (j, i) to the control unit 17.

制御部17は、各分散部分データのうち、同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に、行番号jを割り当ててn個のヘッダ情報H(0),…,H(j),…,H(n-1)を生成する(ST8)。ヘッダ情報H(j)には、K(n-1)に対するパディングの有無、元データのサイズなどの情報が含まれる。   The control unit 17 assigns a row number j to each of n-1 pieces of distributed partial data D (j, 0) to D (j, n-2) having the same row number j among the distributed partial data. , H (j),..., H (n−1) are generated (ST8). The header information H (j) includes information such as the presence / absence of padding for K (n−1) and the size of the original data.

制御部17は、互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0)〜D(j,n-2)からなるn個の分散情報D(0),…,D(j),…,D(n-1)を個別にn個の保存部11,21,…,n1に配布するように、分散情報D(0)を保存部11に書き込み、分散情報D(1),…,D(n-1)を個別に保管サーバ装置20,…,n0に配布する(ST9)。(2,5)型の例では、5個の分散情報D(0),…,D(4)が配布される。各保管サーバ装置20〜50では、配布された分散情報D(1),…,D(4)を保存部21〜51に記憶する。   The control unit 17 includes n pieces of shared information D (0), which includes header information H (j) having the same row number j and distributed partial data D (j, 0) to D (j, n-2). .., D (j),..., D (n-1) are distributed to the n storage units 11, 21,. Information D (1),..., D (n-1) is individually distributed to the storage server devices 20, ..., n0 (ST9). In the (2, 5) type example, five pieces of shared information D (0),..., D (4) are distributed. Each of the storage server devices 20 to 50 stores the distributed information D (1),..., D (4) distributed in the storage units 21 to 51.

以上により、秘密情報の分散処理が完了する。   Thus, the secret information distribution process is completed.

なお、(2,5)型において、必ずしも5個の分散情報D(0)〜D(4)を配布する必要は無い。例えば4個の分散情報D(0)〜D(3)を配布しておき、残り1個の分散情報D(4)を新メンバが追加されたときに新メンバに配布してもよい。このことについては、後の第2の実施形態で述べる。   In the (2, 5) type, it is not always necessary to distribute the five pieces of shared information D (0) to D (4). For example, four pieces of shared information D (0) to D (3) may be distributed, and the remaining one shared information D (4) may be distributed to a new member when a new member is added. This will be described in a later second embodiment.

(復元処理の動作)
クライアント装置10においては、操作者の操作により、復元処理の開始命令が入力部12から入力されたとする。
(Restore processing operation)
In the client device 10, it is assumed that a restoration process start command is input from the input unit 12 by an operation of the operator.

クライアント装置10は、この開始命令に基づいて、復元処理を開始する。制御部17は、n台の装置10,…,n0に配布したn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)を収集し(ST11)、得られた分散情報D(i),D(j)を元データ復元部15に入力する。   The client device 10 starts the restoration process based on this start command. The control unit 17 selects any two pieces of shared information D (i), D (n) among the n pieces of shared information D (0) to D (n−1) distributed to the n devices 10,. j) is collected (ST11), and the obtained distributed information D (i) and D (j) are input to the original data restoration unit 15.

元データ復元部15は、分散情報D(i),D(j)を受けると、2つの分散情報D(i),D(j)のヘッダ情報H(i),H(j)から、図6及び図7に示すように、例えば、j=(i=)1番目、j=3番目の分散情報D(i),D(j)であることを解析する(ST12)。例えば分散情報D(1),D(3)であることを確認する。   When the original data restoration unit 15 receives the shared information D (i) and D (j), the original data restoration unit 15 obtains the figure from the header information H (i) and H (j) of the two shared information D (i) and D (j). 6 and FIG. 7, for example, it is analyzed that j = (i =) 1st and j = 3rd shared information D (i), D (j) (ST12). For example, it is confirmed that the shared information is D (1), D (3).

元データ復元部15は、2個の分散情報D(i),D(j)のうち、一方の分散情報D(i)に関し、行番号iと同一の列番号iが割り当てられた分散部分データD(i,i)を含むか否かを判定する(ST13)。例えば分散情報D(1)に関し、分散部分データD(1,1)を含むかを判定する。   The original data restoration unit 15 is the distributed partial data to which one of the two pieces of shared information D (i) and D (j) is assigned the same column number i as the row number i with respect to one shared information D (i). It is determined whether or not D (i, i) is included (ST13). For example, regarding the distributed information D (1), it is determined whether or not the distributed partial data D (1, 1) is included.

ステップST13の判定の結果、分散情報D(i)が分散部分データD(i,i)を含むとき(ST13;YES)、元データ復元部15は、ステップST14を実行する。   As a result of the determination in step ST13, when the shared information D (i) includes the distributed partial data D (i, i) (ST13; YES), the original data restoring unit 15 executes step ST14.

ステップST14においては、この分散部分データD(i,i)と、他方の分散情報D(j)に含まれる同一列番号iの分散部分データD(j,i)と、j=0番目の分割秘密データK(0)(=0)とに基づいて、分割秘密データK(r)=D(i,i)(+)D(j,i)(+)K(0)を復元する(但し、r=j−i(mod n))。   In step ST14, this distributed partial data D (i, i), the distributed partial data D (j, i) of the same column number i included in the other shared information D (j), and j = 0th division Based on the secret data K (0) (= 0), the divided secret data K (r) = D (i, i) (+) D (j, i) (+) K (0) is restored (however, R = j-i (mod n)).

例えば、分散部分データD(1,1)と、分割秘密データK(0)(=0)との排他的論理和に基づいて、乱数データR(1)を算出する(ST14−1)。なお、K(0)(=0)との排他的論理和を計算せずに、D(1,1)=R(1)としてもよい。続いて、乱数データR(1)と、分散部分データD(3,1)との排他的論理和に基づいて、分割秘密データK(2)を復元する(ST14−2)。   For example, the random number data R (1) is calculated based on the exclusive OR of the distributed partial data D (1,1) and the divided secret data K (0) (= 0) (ST14-1). Note that D (1,1) = R (1) may be used without calculating the exclusive OR with K (0) (= 0). Subsequently, the divided secret data K (2) is restored based on the exclusive OR of the random number data R (1) and the distributed partial data D (3, 1) (ST14-2).

また、この分割秘密データK(r)の復元後、第1終了条件i−r=n−1を満たすか否かを判定する。例えばK(2)の復元後、第1終了条件i−r(mod 5)=1−2(mod 5)=4が、n−1=5−1=4を満たすか否かを判定する。この場合は満たす。   Further, after the restoration of the divided secret data K (r), it is determined whether or not the first end condition ir = n−1 is satisfied. For example, after restoration of K (2), it is determined whether or not the first end condition ir (mod 5) = 1−2 (mod 5) = 4 satisfies n−1 = 5-1 = 4. Satisfy this case.

この判定結果が第1終了条件を満たさないとき、分割秘密データK(r)の復元の式をrだけずらすことにより、第1終了条件を満たすまで、順次、他の第1分割秘密データK(r+r),…,K((n-1)r)を復元する。但し、
K(r+r)=D(i,i−r)(+)D(j,i−r)(+)K(r),
…,
K((n-1)r)=D(i,i−(n-2)r)(+)D(j,i−(n-2)r)(+)K((n-2)r))。
When this determination result does not satisfy the first termination condition, the restoration formula of the divided secret data K (r) is shifted by r, so that the other first divided secret data K ( r + r),..., K ((n-1) r) are restored. However,
K (r + r) = D (i, ir) (+) D (j, ir) (+) K (r),
…,
K ((n-1) r) = D (i, i- (n-2) r) (+) D (j, i- (n-2) r) (+) K ((n-2) r )).

一方、ステップST14中の判定結果が第1終了条件を満たすとき又はステップST13の判定結果が否のとき、元データ復元部15は、ステップST15を実行する。   On the other hand, when the determination result in step ST14 satisfies the first termination condition or the determination result in step ST13 is negative, the original data restoration unit 15 executes step ST15.

ステップST15においては、他方の分散情報D(j)における行番号jと同一の列番号jが割り当てられた分散部分データD(j,j)と、一方の分散情報D(i)に含まれる同一列番号jの分散部分データD(i,j)と、j=0番目の分割秘密データK(0)(=0)とに基づいて、他の分割秘密データK(−r)=D(i,j)(+)D(j,j)(+)K(0)を復元する。   In step ST15, the distributed partial data D (j, j) to which the same column number j as the row number j in the other shared information D (j) is assigned and the same included in one shared information D (i). Based on the distributed partial data D (i, j) of the column number j and the j = 0th divided secret data K (0) (= 0), the other divided secret data K (−r) = D (i , J) (+) D (j, j) (+) K (0) is restored.

例えば、分散部分データD(3,3)と、分割秘密データK(0)(=0)との排他的論理和に基づいて、乱数データR(3)を算出する(ST15−1)。なお、K(0)(=0)との排他的論理和を計算せずに、D(3,3)=R(3)としてもよい。続いて、乱数データR(3)と、分散部分データD(1,3)との排他的論理和に基づいて、分割秘密データK(3)を復元する(ST15−2)。   For example, the random number data R (3) is calculated based on the exclusive OR of the distributed partial data D (3, 3) and the divided secret data K (0) (= 0) (ST15-1). Note that D (3,3) = R (3) may be used without calculating the exclusive OR with K (0) (= 0). Subsequently, the divided secret data K (3) is restored based on the exclusive OR of the random number data R (3) and the distributed partial data D (1, 3) (ST15-2).

また、この分割秘密データK(−r)の復元後、第2終了条件j+r=n−1を満たすか否かを判定する。例えばK(3)の復元後、第2終了条件j+r(mod 5)=3+2(mod 5)=5(mod 5)=0が、n−1=4を満たすか否かを判定する。この場合は満たさない。   Further, after the restoration of the divided secret data K (−r), it is determined whether or not the second end condition j + r = n−1 is satisfied. For example, after restoring K (3), it is determined whether or not the second end condition j + r (mod 5) = 3 + 2 (mod 5) = 5 (mod 5) = 0 satisfies n−1 = 4. This case is not satisfied.

この判定結果が第2終了条件を満たさないとき、分割秘密データK(−r)の復元の式をrだけずらすことにより、第2終了条件を満たすまで、順次、残りの分割秘密データK(−r−r),…,K(−(n-1)r)を復元する。但し、
K(−r−r)=D(i,j+r)(+)D(j,j+r)(+)K(−r),
…,
K(−(n-1)r)=D(i,j+(n-2)r)(+)D(j,j+(n-2)r)(+)K(−(n-2)r))。
When the determination result does not satisfy the second end condition, the remaining divided secret data K (− is sequentially changed until the second end condition is satisfied by shifting the restoration formula of the divided secret data K (−r) by r. r−r),..., K (− (n−1) r) are restored. However,
K (−r−r) = D (i, j + r) (+) D (j, j + r) (+) K (−r),
…,
K (-(n-1) r) = D (i, j + (n-2) r) (+) D (j, j + (n-2) r) (+) K (-(n-2) r )).

例えば、図6及び図7のステップST15−3からST15−6により、残りの分割秘密データK(1),K(4)を復元する。   For example, the remaining divided secret data K (1) and K (4) are restored by steps ST15-3 to ST15-6 in FIGS.

ステップST15が完了すると、元データ復元部15は、復元されたn−1個の分割秘密データK(1),…,K(n-1)を制御部17に送出する。この例では、4個の分割秘密データK(1),…,K(4)が送出される。   When step ST15 is completed, the original data restoring unit 15 sends the restored n-1 pieces of divided secret data K (1), ..., K (n-1) to the control unit 17. In this example, four pieces of divided secret data K (1),..., K (4) are transmitted.

制御部17は、分割秘密データK(1),…,K(n-1)に対して、ヘッダ情報H(i),H(j)に基づいて、パディングなどの処理があれば除去する(ST16)。しかる後、制御部17は、分割秘密データK(1),…,K(n-1)を互いに連接することにより、秘密情報S=K(1)‖K(2)‖…‖K(n-1)を復元する(ST17)。この例では、秘密情報S=K(1)‖K(2)‖…‖K(4)が復元される。   The control unit 17 removes the divided secret data K (1),..., K (n-1) based on the header information H (i), H (j) if there is a process such as padding ( ST16). Thereafter, the control unit 17 concatenates the divided secret data K (1),..., K (n-1) to each other so that the secret information S = K (1) ‖K (2) ‖ ... ‖K (n -1) is restored (ST17). In this example, secret information S = K (1) ‖K (2) ‖ ... ‖K (4) is restored.

上述したように本実施形態によれば、排他的論理和を用いた(2,n)型のしきい値秘密分散により、秘密情報の分散や復元の処理を非常に高速に実現し、多項式補間を用いずに高速に実行可能な完全秘密分散を実現することができる。   As described above, according to the present embodiment, the (2, n) -type threshold secret sharing using exclusive OR makes it possible to perform processing of secret information distribution and restoration very quickly, and polynomial interpolation It is possible to realize complete secret sharing that can be executed at high speed without using the.

補足すると、本実施形態は、特許文献1記載の技術とは異なり、完全秘密分散法を実現しているため、k−1個以下の分散部分データから、元の秘密情報を復元できないだけでなく、秘密情報の部分データも復元できないという効果を得ることができる。   Supplementally, unlike the technique described in Patent Document 1, the present embodiment realizes the complete secret sharing method, so that not only the original secret information cannot be restored from k−1 or less distributed partial data. In addition, it is possible to obtain an effect that partial data of secret information cannot be restored.

これに加え、本実施形態によれば、分散部分データをK(*)+R(*)として、K(0)を擬似的に作ることで全て同じ形式となり、アルゴリズム的に分散部分データを作成することが可能である。これに対し、特許文献1での分散部分データはK(*)+R(*)、K(*)+R(*)+R(*)、R(*)など、分散部分データ毎に部分秘密データと乱数の組み合わせが異なっているため、うまくアルゴリズム的に作成できない。また、特許文献1の分散部分データでは、K(*)+R(*)+R(*)といった分散部分データから復元する際に、計算量がどうしても多くなるため、本実施形態と比べて計算量が増大している。   In addition to this, according to the present embodiment, the distributed partial data is K (*) + R (*), and K (0) is created in a pseudo manner to create all the same partial data. It is possible. On the other hand, the distributed partial data in Patent Document 1 is K (*) + R (*), K (*) + R (*) + R (*), R (*), etc. Because the combination of random numbers is different, it cannot be created algorithmically. Further, in the distributed partial data of Patent Document 1, the amount of calculation inevitably increases when restoring from the distributed partial data such as K (*) + R (*) + R (*). It is increasing.

(第2の実施形態)
次に、本発明の第2の実施形態について図1を参照しながら説明する。
本実施形態は、第1の実施形態の変形例であり、(2,n)型のしきい値秘密分散を(2,n’)型のしきい値秘密分散(n<n’)に拡張可能な構成により、新メンバを追加可能とした形態となっている。
(Second Embodiment)
Next, a second embodiment of the present invention will be described with reference to FIG.
This embodiment is a modification of the first embodiment, and extends the (2, n) type threshold secret sharing to the (2, n ′) type threshold secret sharing (n <n ′). A new member can be added by a possible configuration.

ここで、nは、第1の実施形態とは異なり、素数に限らない。nが素数でない場合はnよりも大きな素数n’を用いて(2,n’)型の秘密分散法を構築し、そのうちn人に分散情報を配布することで(2,n)型の秘密分散システムを実現する。この場合、n’−n人だけ新メンバの追加が可能である。例えば、(2,5)型の秘密分散法を構築しておき、そのうち4人に分散情報を配布することで(2,4)型の秘密分散システムを実現する。この場合、1人だけ新メンバの追加が可能である。   Here, unlike the first embodiment, n is not limited to a prime number. If n is not a prime number, a (2, n ′) type secret sharing method is constructed using a prime number n ′ larger than n, and distributed information is distributed to n of them, thereby a (2, n) type secret. Realize a distributed system. In this case, new members can be added by n'-n people. For example, a (2, 5) type secret sharing method is constructed, and distributed information is distributed to four of them, thereby realizing a (2, 4) type secret sharing system. In this case, only one new member can be added.

新メンバ用の分散情報は、追加時にクライアント装置10が作成してもよく、あるいは、最も権限があるユーザ、前述したディーラー、又は信頼できる第三者機関(trusted third party)などのクライアント装置又は保管サーバ装置等が作成することが考えられる。これは任意のユーザがメンバーを追加可能なシステムでは、ユーザ全体を管理することが困難なためである。特定のユーザや機関によってのみ追加可能な形態が望まれる。   The distributed information for the new member may be created by the client device 10 at the time of addition, or the client device such as the most authorized user, the above-mentioned dealer, or a trusted third party, or storage. It is conceivable that a server device or the like is created. This is because it is difficult to manage the entire user in a system in which any user can add members. A form that can be added only by a specific user or organization is desired.

次に、第2の実施形態の具体的な構成を述べる。   Next, a specific configuration of the second embodiment will be described.

クライアント装置10は、秘密情報Sが分散されてなるn’個(但し、n’≧3)の分散情報D(0),…,D(n’-1)のうち、n個(但し、n<n’)の分散情報D(0),…,D(n-1)を個別にn個の保存部11,…,n0に配布し、且つ、n個の分散情報のうち、任意の2個の分散情報から秘密情報Sを復元可能な(2,n)型の秘密分散装置を実現している。   The client device 10 has n (provided that n ′ (where n ′ ≧ 3) distributed information D (0),..., D (n′−1)) in which secret information S is distributed. <N ′) distributed information D (0),..., D (n−1) is distributed to n storage units 11,..., N0 individually, and any two of the n pieces of distributed information A (2, n) type secret sharing apparatus capable of restoring the secret information S from each piece of shared information is realized.

ここで、制御部17は、前述した機能に加え、(2,n)型を(2,n+t)型に変更したいとき、変更可能条件t≦n’−nを満たすか否かを判定する機能と、判定結果が変更可能条件を満たすとき、任意の2個の分散情報D(i),D(j)に基づいて、t個の分散情報D(n),…,D(n-1+t)を生成する機能と、この生成したt個の分散情報D(n),…,D(n-1+t)をn個の保存部11,…,n0とは異なるt個の記憶装置に個別に配布する機能とをもっている。   Here, in addition to the functions described above, the control unit 17 determines whether or not the changeable condition t ≦ n′−n is satisfied when it is desired to change the (2, n) type to the (2, n + t) type. When the determination result satisfies the changeable condition, t pieces of shared information D (n),..., D (n-1 +) based on arbitrary two pieces of shared information D (i) and D (j). t) and the t pieces of distributed information D (n),..., D (n-1 + t) thus generated are t storage devices different from the n storage units 11,. It has the function to distribute it individually.

次に、以上のように構成された秘密分散システムの動作を説明する。   Next, the operation of the secret sharing system configured as described above will be described.

図8に示すように、複数のメンバーからなるあるグループで、秘密情報Sを(k,n’)しきい値秘密分散法(n<n’、k≦n)を用いて分散し、n’個の分散情報のうち、n個の分散情報をn人のメンバーに配布した状態において、新たにt人の新規メンバーがそのグループに追加される場合を考える(ST21)。   As shown in FIG. 8, in a certain group of members, the secret information S is distributed using the (k, n ′) threshold secret sharing method (n <n ′, k ≦ n), and n ′ Consider a case where t new members are newly added to the group in a state where n pieces of shared information are distributed to n members among the pieces of shared information (ST21).

例えば、図9に示すように、秘密情報Sを(2,5)しきい値秘密分散法を用いて分散し、n’=5個の分散情報のうち、n=4個の分散情報を4人のメンバーに配布した状態において、新たにt=1人の新規メンバーがそのグループに追加される場合である。   For example, as shown in FIG. 9, the secret information S is distributed using the (2, 5) threshold secret sharing method, and n = 4 pieces of shared information among 4 pieces of the shared information n ′ = 5. This is a case where t = 1 new member is newly added to the group in a state of being distributed to human members.

まず、分散情報を既に保持しているメンバーの分散情報を用いてディーラーが新規メンバー用の分散情報を作成する場合を考える。   First, consider a case where a dealer creates shared information for a new member using shared information of a member who already holds shared information.

このとき、クライアント装置10においては、制御部17が、保存部11内の分散情報作成情報に基づいて、配布済みの分散情報D(j)の個数nを確認し、変更可能条件t≦n’−nを満たすか否かを判定する(ST22)。   At this time, in the client apparatus 10, the control unit 17 confirms the number n of distributed distributed information D (j) based on the shared information creation information in the storage unit 11, and the changeable condition t ≦ n ′. It is determined whether or not −n is satisfied (ST22).

制御部17は、ステップST22の判定結果が変更可能条件を満たすとき、任意の2個の分散情報D(i),D(j)を収集し(ST23)、この分散情報D(i),D(j)に基づいて、n+1番目の分散部分データD(n,0)〜D(n,n’-2)を生成し、以下同様に、順次、n+t番目の分散部分データD(n-1+t,0)〜D(n-1+t,n’-2)を生成する(ST24)。   When the determination result in step ST22 satisfies the changeable condition, the control unit 17 collects arbitrary two pieces of shared information D (i) and D (j) (ST23), and the shared information D (i) and D Based on (j), the (n + 1) th distributed partial data D (n, 0) to D (n, n′−2) are generated, and thereafter the n + tth distributed partial data D (n−1) are sequentially generated. + t, 0) to D (n-1 + t, n'-2) are generated (ST24).

例えば、制御部17は、図10に示すように、2個の分散情報D(1),D(3)に基づいて、5番目の分散部分データD(4,0)〜D(4,3)を生成する。このとき、分散部分データD(4,0)〜D(4,3)は、次のように算出される。   For example, as illustrated in FIG. 10, the control unit 17 performs fifth distribution partial data D (4,0) to D (4,3) based on the two pieces of distribution information D (1) and D (3). ) Is generated. At this time, the distributed partial data D (4,0) to D (4,3) are calculated as follows.

D(4,0)=D(1,0)(+)D(1,2)(+)D(3,2)、
D(4,1)=D(1,1)(+)D(1,3)(+)D(3,3)、
D(4,2)=D(1,0)(+)D(1,1)(+)D(1,3)(+)D(3,0)(+)D(3,1)(+)D(3,2)(+)D(3,3)、
D(4,3)=D(1,0)(+)D(1,3)(+)D(3,0)。
D (4,0) = D (1,0) (+) D (1,2) (+) D (3,2),
D (4,1) = D (1,1) (+) D (1,3) (+) D (3,3),
D (4,2) = D (1,0) (+) D (1,1) (+) D (1,3) (+) D (3,0) (+) D (3,1) ( +) D (3,2) (+) D (3,3),
D (4,3) = D (1,0) (+) D (1,3) (+) D (3,0).

制御部17は、各分散部分データのうち、同一の行番号jを有するn’−1個の分散部分データD(j,0)〜D(j,n’-2)毎に、行番号jを割り当ててt個のヘッダ情報H(n),…,H(n-1+t)を生成する(ST25)。この例では、t=1なので、ヘッダ情報H(4)が生成される。   The control unit 17 sets the row number j for every n′−1 pieces of distributed partial data D (j, 0) to D (j, n′−2) having the same row number j among the distributed partial data. , T header information H (n),..., H (n-1 + t) are generated (ST25). In this example, since t = 1, header information H (4) is generated.

制御部17は、互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0)〜D(j,n’-2)からなるt個の分散情報D(n),…,D(n-1+t)を生成する。この例では、t=1個の分散情報D(4)が生成される。また、制御部17は、分散情報作成情報を、t個の分散情報D(n),…,D(n-1+t)の識別情報j(=n,…,n-1+t)を含むように更新する(ST26)。この例では、分散情報作成情報は、識別情報j=4を含むように更新される。   The control unit 17 includes t pieces of shared information D (n) including header information H (j) having the same row number j and distributed partial data D (j, 0) to D (j, n′−2). ,..., D (n-1 + t) is generated. In this example, t = 1 shared information D (4) is generated. Further, the control unit 17 uses the shared information creation information as identification information j (= n,..., N-1 + t) of t pieces of shared information D (n),..., D (n-1 + t). Update to include (ST26). In this example, the shared information creation information is updated to include identification information j = 4.

しかる後、制御部17は、この生成したt個の分散情報D(n),…,D(n-1+t)をn個の保存部11,…,n0とは異なるt個の記憶装置に個別に配布する(ST27)。この例では、t=1個の分散情報D(4)が1個の記憶装置に配布される。   Thereafter, the control unit 17 uses the generated t pieces of distributed information D (n),..., D (n−1 + t) to be stored in t storage devices different from the n storage units 11,. (ST27). In this example, t = 1 shared information D (4) is distributed to one storage device.

これにより、(2,n)型の秘密分散システムは(2,n+t)型の秘密分散システムに拡張される。この例では、(2,4)型が(2,5)型に拡張される。ここで、t=n’−nの場合、(2,n+t)型は(2,n’)型である。   As a result, the (2, n) type secret sharing system is expanded to the (2, n + t) type secret sharing system. In this example, the (2,4) type is expanded to the (2,5) type. Here, when t = n′−n, the (2, n + t) type is the (2, n ′) type.

一方、ステップST22の判定結果が変更可能条件を満たさないとき、n’よりも大きな素数n”について(2,n”)型の秘密分散法を適用し、全てのメンバー(n+t人)に分散情報を配布しなおす(ST29)。この場合も(2,n)型が(2,n+t)型に拡張される。   On the other hand, when the determination result in step ST22 does not satisfy the changeable condition, the (2, n ″) type secret sharing method is applied to the prime number n ″ larger than n ′, and the distributed information is distributed to all members (n + t). Is redistributed (ST29). In this case as well, the (2, n) type is expanded to the (2, n + t) type.

上述したように本実施形態によれば、第1の実施形態の効果に加え、(2,n)型の秘密分散法を(2,n+t)型又は(2,n’)型の秘密分散システムに拡張することができる(t≦n’−n、n<n’)。   As described above, according to the present embodiment, in addition to the effects of the first embodiment, the (2, n) type secret sharing method is changed to the (2, n + t) type or (2, n ′) type secret. It can be extended to distributed systems (t ≦ n′−n, n <n ′).

補足すると、メンバを追加したい場合に、配布されたn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)に基づいて、追加人数分のt個の分散情報D(n),…,D(n-1+t)を生成し、この分散情報D(n),…,D(n-1+t)を追加メンバに配布している。   Supplementally, when it is desired to add a member, based on any two pieces of distributed information D (i) and D (j) among the distributed n pieces of distributed information D (0) to D (n-1). Then, t shared information D (n),..., D (n-1 + t) corresponding to the additional number of people is generated, and this shared information D (n),. Distribute to members.

例えば(2,4)型を(2,5)型に拡張する場合、4番目の分散情報D(4)を新たなメンバーに配布することで、予め配布していた分散情報D(0)〜D(3)を更新することなく、(2,5)型の秘密分散法に拡張可能となっている。   For example, when the (2, 4) type is expanded to the (2, 5) type, the fourth shared information D (4) is distributed to new members, so that the previously distributed distributed information D (0) to Without updating D (3), it can be extended to the (2,5) type secret sharing method.

この際、追加する分散情報D(n),…は、2個の分散情報から元の秘密情報を復元することなく作成可能となっている。また、データ分割時にn’を大きくとっておくことでメンバーの追加に対応可能である。   At this time, the shared information D (n),... To be added can be created without restoring the original secret information from the two pieces of shared information. Further, it is possible to cope with the addition of members by keeping n 'large at the time of data division.

また、本実施形態によれば、初期に配布した分散情報を更新することなく新たなメンバーを追加することが可能になる。また、ディーラーが既存の分散情報を使って新たに分散情報を作成するので、元の秘密情報をディーラー又はその他のメンバーが保持している必要がなく、セキュリティ上セキュアなシステムを構築することが可能になる。すなわち、本実施形態によれば、メンバを追加したい場合に、分散情報を既存のメンバに配布する必要がなく、また、秘密情報を復元可能な数の分散情報又は秘密情報を1箇所に保存せずに、セキュリティ性を向上させることができる。また、権限を保持している既存のメンバーが協力して新たなメンバーに分散情報を配布することも可能になる。   Further, according to the present embodiment, it becomes possible to add a new member without updating the distributed information distributed in the initial stage. In addition, since the dealer creates new shared information using the existing shared information, it is not necessary for the dealer or other members to hold the original confidential information, and it is possible to build a security-secure system. become. That is, according to this embodiment, when adding a member, it is not necessary to distribute the distributed information to the existing members, and the number of shared information or secret information that can restore the secret information can be stored in one place. And security can be improved. Also, existing members who have authority can cooperate to distribute distributed information to new members.

(第3の実施形態)
図11は本発明の第3の実施形態に係る秘密分散システムの構成を示す模式図であり、図1と同一部分には同一符号を付し、ほぼ同一部分にはアルファベットの添字を付してその詳しい説明を省略する。なお、以下の各実施形態も同様にして重複した説明を省略する。
(Third embodiment)
FIG. 11 is a schematic diagram showing the configuration of a secret sharing system according to the third embodiment of the present invention. The same parts as those in FIG. 1 are denoted by the same reference numerals, and the substantially same parts are denoted by alphabetic suffixes. Detailed description thereof is omitted. In the following embodiments, the same description is omitted.

本実施形態は、第1の実施形態の変形例であり、(3,5)型の秘密分散システムとなっている。これに伴い、分散部分データ生成部13a、元データ復元部15a及び制御部17aの機能が(3,5)型の秘密分散システムに対応して変更されている。また、保管サーバ装置20,30,40,50の台数は、n−1=4台と定まっている。   This embodiment is a modification of the first embodiment, and is a (3, 5) type secret sharing system. Accordingly, the functions of the distributed partial data generation unit 13a, the original data restoration unit 15a, and the control unit 17a are changed corresponding to the (3, 5) type secret sharing system. Further, the number of storage server devices 20, 30, 40, 50 is determined to be n-1 = 4.

ここで、分散部分データ生成部13aは、具体的には、以下の機能(f13a−1)〜(f13a−4)をもっている。   Here, specifically, the distributed partial data generation unit 13a has the following functions (f13a-1) to (f13a-4).

(f13a−1) 制御部17aから受けた秘密情報Sを2個に分割すると共に、分割結果に0から1までの識別番号を割り当てることにより、互いに同一サイズの2個の分割秘密データK(0),K(1)を生成する機能。   (F13a-1) The secret information S received from the control unit 17a is divided into two, and by assigning identification numbers from 0 to 1 to the division result, two pieces of divided secret data K (0 ), A function for generating K (1).

(f13a−2) 各分割秘密データのサイズと同一サイズを有する4個の乱数を生成すると共に、各生成結果に0から3までの識別番号を割り当てて4個の乱数データR(0),R(1),R(2),R(3)を生成する機能。   (F13a-2) Four random numbers having the same size as the size of each divided secret data are generated, and an identification number from 0 to 3 is assigned to each generation result to generate four random number data R (0), R A function for generating (1), R (2), and R (3).

(f13a−3) 2個の分割秘密データK(0),K(1)、4個の乱数データR(0)〜R(3)及び下記10個の式に基づいて(但し、(+)は排他的論理和を表す記号)、互いに2つの識別番号の組合せで識別可能な10個の分散部分データD(0,0),D(0,1),D(1,0),D(1,1),D(2,0),D(2,1),D(3,0),D(3,1),D(4,0),D(4,1)を算出する機能。   (F13a-3) Based on two pieces of divided secret data K (0), K (1), four pieces of random number data R (0) to R (3) and the following ten expressions (however, (+) Is a symbol representing an exclusive OR), 10 distributed partial data D (0,0), D (0,1), D (1,0), D () that can be identified by a combination of two identification numbers. 1,1), D (2,0), D (2,1), D (3,0), D (3,1), D (4,0), D (4,1) .

D(0,0)=R(0)、
D(0,1)=K(0)(+)R(1)(+)R(2)、
D(1,0)=R(1)、
D(1,1)=K(1)(+)R(2)(+)R(3)、
D(2,0)=R(2)、
D(2,1)=K(0)(+)R(3)(+)R(0)、
D(3,0)=R(3)、
D(3,1)=K(1)(+)R(0)(+)R(1)、
D(4,0)=K(1)(+)R(0)(+)R(2)、
D(4,1)=K(0)(+)R(1)(+)R(3)。
D (0,0) = R (0),
D (0,1) = K (0) (+) R (1) (+) R (2),
D (1,0) = R (1),
D (1,1) = K (1) (+) R (2) (+) R (3),
D (2,0) = R (2),
D (2,1) = K (0) (+) R (3) (+) R (0),
D (3,0) = R (3),
D (3,1) = K (1) (+) R (0) (+) R (1),
D (4,0) = K (1) (+) R (0) (+) R (2),
D (4,1) = K (0) (+) R (1) (+) R (3).

(f13a−4) 算出した10個の分散部分データD(j,i)を制御部17aに送出する機能。   (F13a-4) A function of sending the calculated 10 distributed partial data D (j, i) to the control unit 17a.

元データ復元部15aは、配布された5個の分散情報D(0)〜D(4)のうち、任意の3個の分散情報D(j)が制御部17aから入力されると、この3個の分散情報D(j)に基づいて、秘密情報Sを復元する復元機能をもっている。   When the original data restoration unit 15a receives any three pieces of distributed information D (j) from the distributed five pieces of distributed information D (0) to D (4) from the control unit 17a, the original data restoration unit 15a It has a restoration function for restoring the secret information S based on the pieces of shared information D (j).

制御部17aは、入力部12から入力される命令に基づいて、後述する図12及び図14のフローチャートに基づいて、各部11,13a,14,15a,16,18,19を制御する機能をもっている。また、制御部17aは、例えば、以下の機能(17a−1)〜(17a−2)をもっている。   The control unit 17a has a function of controlling the respective units 11, 13a, 14, 15a, 16, 18, and 19 based on a command input from the input unit 12 and based on flowcharts of FIGS. . Moreover, the control part 17a has the following functions (17a-1)-(17a-2), for example.

(17a−1) 各分散部分データの2つの識別番号を行番号j,列番号iとし、各分散部分データをD(j,i)と表すとき、同一の行番号jを有する2個の分散部分データD(j,0),D(j,1)毎に、行番号jを割り当てて、5個のヘッダ情報H(0),H(1),H(2),H(3),H(4)を生成する機能。   (17a-1) When two identification numbers of each distributed partial data are row number j, column number i, and each distributed partial data is represented as D (j, i), two distributed data having the same row number j A row number j is assigned to each of the partial data D (j, 0) and D (j, 1), and five pieces of header information H (0), H (1), H (2), H (3), Function to generate H (4).

(17a−2) 互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0),D(j,1)からなる5個の分散情報D(0),D(1),D(2),D(3),D(4)を個別に5個の保存部11〜51に配布する機能。   (17a-2) Five pieces of shared information D (0), D (D) composed of header information H (j) having the same row number j and distributed partial data D (j, 0), D (j, 1) 1) A function of distributing D (2), D (3), and D (4) individually to the five storage units 11 to 51.

次に、以上のように構成された秘密分散システムの動作を説明する。   Next, the operation of the secret sharing system configured as described above will be described.

(分散処理の動作)
クライアント装置10においては、分散情報D(0)〜D(4)を配布する前に、ビット長mの秘密情報Sが一時的に保存部11に記憶されているとする。
(Distributed processing operation)
In the client device 10, it is assumed that the secret information S having a bit length m is temporarily stored in the storage unit 11 before the distributed information D (0) to D (4) is distributed.

このとき、クライアント装置10においては、操作者の操作により、分散処理の開始命令が入力部12から入力されると、分散処理を開始する。   At this time, in the client device 10, when a distributed processing start command is input from the input unit 12 by an operation of the operator, the distributed processing is started.

制御部17aは、保存部11内の秘密情報Sを分散部分データ生成部13aに入力する。   The control unit 17a inputs the secret information S in the storage unit 11 to the distributed partial data generation unit 13a.

分散部分データ生成部13aは、図12に示すように、秘密情報Sを2個に分割すると共に、分割結果に0から1までの識別番号を割り当てることにより、互いに同一サイズの2個の分割秘密データK(0),K(1)を生成する(ST31)。   As shown in FIG. 12, the distributed partial data generation unit 13a divides the secret information S into two, and assigns two divided secrets of the same size to each other by assigning identification numbers from 0 to 1 to the division result. Data K (0) and K (1) are generated (ST31).

ここで、2個の分割秘密データK(0),K(1)は、互いに同一サイズでなければいけない。このため、秘密情報Sが奇数ビットのサイズの場合、2の倍数のビット(桁)で表現されるように、末尾に0が付加(パディング)される。その後、パディング済みの秘密情報Sを同じデータサイズになるように2個に分ける。データサイズはビット単位で扱う。2の倍数のビットとは、例えば10100110のように表現される。   Here, the two divided secret data K (0) and K (1) must have the same size. For this reason, when the secret information S has an odd-bit size, 0 is added (padded) to the end so that the secret information S is represented by a bit (digit) that is a multiple of 2. Thereafter, the padded secret information S is divided into two so as to have the same data size. Data size is handled in bits. A bit that is a multiple of 2 is expressed as 10100110, for example.

次に、分散部分データ生成部13aは、分割秘密データK(0)、K(1)と同一サイズを有する4個の乱数を生成すると共に、各生成結果に0から3までの識別番号を割り当てて4個の乱数データR(0),R(1),R(2),R(3)を生成する(ST32)。   Next, the distributed partial data generation unit 13a generates four random numbers having the same size as the divided secret data K (0) and K (1), and assigns an identification number from 0 to 3 to each generation result. The four random number data R (0), R (1), R (2), R (3) are generated (ST32).

分散部分データ生成部13aは、2個の分割秘密データK(0),K(1)、4個の乱数データR(0)〜R(3)に基づいて、図13に示すように、10個の分散部分データD(0,0),D(0,1),D(1,0),D(1,1),D(2,0),D(2,1),D(3,0),D(3,1),D(4,0),D(4,1)を算出する。   Based on the two pieces of divided secret data K (0), K (1) and the four pieces of random number data R (0) to R (3), the distributed partial data generation unit 13a has 10 as shown in FIG. Pieces of distributed partial data D (0,0), D (0,1), D (1,0), D (1,1), D (2,0), D (2,1), D (3 , 0), D (3, 1), D (4, 0), D (4, 1).

しかる後、分散部分データ生成部13aは、これら分散部分データを制御部17aに送出する。   Thereafter, the distributed partial data generation unit 13a sends the distributed partial data to the control unit 17a.

制御部17aは、各分散部分データの2つの識別番号を行番号j,列番号iとし、各分散部分データをD(j,i)と表すとき、同一の行番号jを有する2個の分散部分データD(j,0),D(j,1)毎に、行番号jを割り当てて、5個のヘッダ情報H(0),H(1),H(2),H(3),H(4)を生成する(ST33)。   When the two identification numbers of each distributed partial data are row number j and column number i, and each distributed partial data is represented as D (j, i), the control unit 17a has two distributed numbers having the same row number j. A row number j is assigned to each of the partial data D (j, 0) and D (j, 1), and five pieces of header information H (0), H (1), H (2), H (3), H (4) is generated (ST33).

次に、制御部17aは、互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0),D(j,1)からなる5個の分散情報D(0),D(1),D(2),D(3),D(4)を生成する。例えば、分散情報D(0)は、ヘッダ情報H(j)と、分散部分データD(0,0)と、分散部分データD(0,1)とをビット列単位で結合したものである。   Next, the control unit 17a includes five pieces of shared information D (0) including header information H (j) having the same row number j and distributed partial data D (j, 0) and D (j, 1). , D (1), D (2), D (3), and D (4). For example, the distributed information D (0) is obtained by combining header information H (j), distributed partial data D (0,0), and distributed partial data D (0,1) in units of bit strings.

しかる後、制御部17aは、5個の分散情報D(0),D(1),D(2),D(3),D(4)を個別に5個の保存部11〜51に配布するように、分散情報D(0)を保存部11に書き込み、分散情報D(1),…,D(4)を個別に保管サーバ装置20,…,50に配布する(ST34)。各保管サーバ装置20〜50では、配布された分散情報D(1),…,D(4)を保存部21〜51に記憶する。   Thereafter, the control unit 17a distributes the five pieces of shared information D (0), D (1), D (2), D (3), and D (4) individually to the five storage units 11 to 51. As described above, the shared information D (0) is written in the storage unit 11, and the distributed information D (1),..., D (4) is individually distributed to the storage server devices 20,. Each of the storage server devices 20 to 50 stores the distributed information D (1),..., D (4) distributed in the storage units 21 to 51.

以上により、秘密情報の分散処理が完了する。   Thus, the secret information distribution process is completed.

(復元処理の動作)
クライアント装置10においては、操作者の操作により、復元処理の開始命令が入力部12から入力されたとする。
(Restore processing operation)
In the client device 10, it is assumed that a restoration process start command is input from the input unit 12 by an operation of the operator.

クライアント装置10は、この開始命令に基づいて、復元処理を開始する。制御部17aは、図14に示すように、5台の装置10,…,50に配布した5個の分散情報D(0)〜D(4)のうち、任意の3個の分散情報を収集し(ST35)、得られた分散情報を元データ復元部15aに入力する。この例では、5個の分散情報のうち、D(0)、D(2)、D(4)を用いることとする。   The client device 10 starts the restoration process based on this start command. As shown in FIG. 14, the control unit 17a collects any three pieces of shared information among the five pieces of shared information D (0) to D (4) distributed to the five devices 10,. (ST35), and the obtained shared information is input to the original data restoration unit 15a. In this example, D (0), D (2), and D (4) are used among the five pieces of shared information.

元データ復元部15aは、分散情報D(0)、D(2)、D(4)を受けると、分散情報のヘッダ情報H(0),H(2),H(4)を参照し、分散情報D(j)毎に、分散部分データD(j,0),D(j,1)を確認する(ST36)。   Upon receiving the shared information D (0), D (2), D (4), the original data restoring unit 15a refers to the header information H (0), H (2), H (4) of the shared information, Distributed partial data D (j, 0) and D (j, 1) are confirmed for each shared information D (j) (ST36).

元データ復元部15aは、分散情報D(j)毎の分散部分データD(j,0),D(j,1)に基づいて、2個の分割秘密データK(0),K(1)を算出する(ST37)。   Based on the distributed partial data D (j, 0) and D (j, 1) for each shared information D (j), the original data restoration unit 15a uses two pieces of divided secret data K (0) and K (1). Is calculated (ST37).

例えば、図15に示すように、分散部分データD(0,0)、D(2,0)とD(4,0)との排他的論理和により、分割秘密データK(1)を算出する(ST37−1)。   For example, as shown in FIG. 15, the divided secret data K (1) is calculated by exclusive OR of the distributed partial data D (0,0), D (2,0) and D (4,0). (ST37-1).

分散部分データD(0,0)とD(2,1)との排他的論理和により、中間データK(0)(+) R(3)を算出する(ST37−2)。   Intermediate data K (0) (+) R (3) is calculated by exclusive OR of the distributed partial data D (0,0) and D (2,1) (ST37-2).

分散部分データD(2,0)とD(0,1)との排他的論理和により、中間データK(0)(+) R(1)を算出する(ST37−3)。   Intermediate data K (0) (+) R (1) is calculated by exclusive OR of the distributed partial data D (2,0) and D (0,1) (ST37-3).

中間データK(0)(+) R(3)とK(0)(+) R(1)との排他的論理和により、中間データR(1)(+) R(3)を算出する(ST37−4)。   Intermediate data R (1) (+) R (3) is calculated by exclusive OR of intermediate data K (0) (+) R (3) and K (0) (+) R (1) ( ST37-4).

中間データR(1)(+) R(3)と、分散部分データD(4,1)とにより、分割秘密データK(0)を算出する(ST37−5)。   The divided secret data K (0) is calculated from the intermediate data R (1) (+) R (3) and the distributed partial data D (4, 1) (ST37-5).

元データ復元部15aは、これら分割秘密データK(0),K(1)とヘッダ情報H(0),H(2),H(4)に基づいて、元の秘密情報S=K(0)‖K(1)を復元する(ST38)。   Based on the divided secret data K (0), K (1) and the header information H (0), H (2), H (4), the original data restoration unit 15a uses the original secret information S = K (0 ) Restore ‖K (1) (ST38).

上述したように本実施形態によれば、排他的論理和を用いた(3,5)型のしきい値秘密分散により、秘密情報の分散や復元の処理を非常に高速に実現し、多項式補間を用いずに高速に実行可能な完全秘密分散を実現することができる。   As described above, according to the present embodiment, the (3, 5) -type threshold secret sharing using exclusive logical sum realizes the processing of secret information distribution and restoration very quickly, and polynomial interpolation It is possible to realize complete secret sharing that can be executed at high speed without using the.

(第4の実施形態)
図16は本発明の第4の実施形態に係る秘密分散システムの構成を示す模式図である。
(Fourth embodiment)
FIG. 16 is a schematic diagram showing a configuration of a secret sharing system according to the fourth exemplary embodiment of the present invention.

本実施形態は、第1の実施形態の変形例であり、(3,7)型の秘密分散システムとなっている。これに伴い、分散部分データ生成部13b、元データ復元部15b及び制御部17bの機能が(3,7)型の秘密分散システムに対応して変更されている。また、保管サーバ装置20,30,40,50,60,70の台数は、n−1=6台と定まっている。   This embodiment is a modification of the first embodiment, and is a (3, 7) type secret sharing system. Accordingly, the functions of the distributed partial data generation unit 13b, the original data restoration unit 15b, and the control unit 17b are changed corresponding to the (3, 7) type secret sharing system. Further, the number of storage server devices 20, 30, 40, 50, 60, 70 is determined to be n-1 = 6.

ここで、分散部分データ生成部13bは、具体的には、以下の機能(f13b−1)〜(f13b−4)をもっている。   Here, the distributed partial data generation unit 13b specifically has the following functions (f13b-1) to (f13b-4).

(f13b−1) 制御部17bから受けた秘密情報Sを3個に分割すると共に、分割結果に0から2までの識別番号を割り当てることにより、互いに同一サイズの3個の分割秘密データK(0),K(1),K(1)を生成する機能。   (F13b-1) The secret information S received from the control unit 17b is divided into three, and by assigning an identification number from 0 to 2 to the division result, three pieces of divided secret data K (0 ), K (1), and a function for generating K (1).

(f13b−2) 各分割秘密データのサイズと同一サイズを有する6個の乱数を生成すると共に、各生成結果に0から5までの識別番号を割り当てて6個の乱数データR(0),R(1),R(2),R(3),R(4),R(5)を生成する機能。   (F13b-2) Six random numbers having the same size as the size of each divided secret data are generated, and an identification number from 0 to 5 is assigned to each generation result, and six random data R (0), R A function for generating (1), R (2), R (3), R (4), and R (5).

(f13b−3) 3個の分割秘密データK(0)〜K(2)、6個の乱数データR(0)〜R(5)及び下記21個の式に基づいて、互いに2つの識別番号の組合せで識別可能な21個の分散部分データD(0,0),D(0,1),D(0,2),D(1,0),D(1,1),D(1,2),D(2,0),D(2,1),D(2,2),D(3,0),D(3,1),D(3,2),D(4,0),D(4,1)D(4,2),D(5,0),D(5,1),D(5,2),D(6,0),D(6,1),D(6,2)を算出する機能。   (F13b-3) Two identification numbers based on three pieces of divided secret data K (0) to K (2), six random number data R (0) to R (5) and the following 21 formulas 21 pieces of distributed partial data D (0, 0), D (0, 1), D (0, 2), D (1, 0), D (1, 1), D (1 , 2), D (2,0), D (2,1), D (2,2), D (3,0), D (3,1), D (3,2), D (4 0), D (4,1) D (4,2), D (5,0), D (5,1), D (5,2), D (6,0), D (6,1) , D (6, 2).

D(0,0)=R(0)、
D(0,1)=K(0)(+)R(1)(+)R(2)、
D(0,2)=K(2)(+)R(3)(+)R(5)、
D(1,0)=R(1)、
D(1,1)=K(1)(+)R(2)(+)R(3)、
D(1,2)=K(0)(+)R(0)(+)R(4)、
D(2,0)=R(2)、
D(2,1)=K(2)(+)R(3)(+)R(4)、
D(2,2)=K(1)(+)R(1)(+)R(5)、
D(3,0)=R(3)、
D(3,1)=K(0)(+)R(4)(+)R(5)、
D(3,2)=K(2)(+)R(0)(+)R(2)、
D(4,0)=R(4)、
D(4,1)=K(1)(+)R(5)(+)R(0)、
D(4,2)=K(0)(+)R(1)(+)R(3)、
D(5,0)=R(5)、
D(5,1)=K(2)(+)R(0)(+)R(1)、
D(5,2)=K(1)(+)R(2)(+)R(4)、
D(6,0)=K(1)(+)R(0)(+)R(3)、
D(6,1)=K(2)(+)R(1)(+)R(4)、
D(6,2)=K(0)(+)R(2)(+)R(5)。
D (0,0) = R (0),
D (0,1) = K (0) (+) R (1) (+) R (2),
D (0,2) = K (2) (+) R (3) (+) R (5),
D (1,0) = R (1),
D (1,1) = K (1) (+) R (2) (+) R (3),
D (1,2) = K (0) (+) R (0) (+) R (4),
D (2,0) = R (2),
D (2,1) = K (2) (+) R (3) (+) R (4),
D (2,2) = K (1) (+) R (1) (+) R (5),
D (3,0) = R (3),
D (3,1) = K (0) (+) R (4) (+) R (5),
D (3,2) = K (2) (+) R (0) (+) R (2),
D (4,0) = R (4),
D (4,1) = K (1) (+) R (5) (+) R (0),
D (4,2) = K (0) (+) R (1) (+) R (3),
D (5,0) = R (5),
D (5,1) = K (2) (+) R (0) (+) R (1),
D (5,2) = K (1) (+) R (2) (+) R (4),
D (6,0) = K (1) (+) R (0) (+) R (3),
D (6,1) = K (2) (+) R (1) (+) R (4),
D (6,2) = K (0) (+) R (2) (+) R (5).

(f13b−4) 算出した21個の分散部分データD(j,i)を制御部17bに送出する機能。   (F13b-4) A function of sending the calculated 21 distributed partial data D (j, i) to the control unit 17b.

元データ復元部15bは、配布された7個の分散情報D(0)〜D(6)のうち、任意の3個の分散情報D(j)が制御部17aから入力されると、この3個の分散情報D(j)に基づいて、秘密情報Sを復元する復元機能をもっている。   When the original data restoration unit 15b receives any three pieces of distributed information D (j) from the distributed seven pieces of distributed information D (0) to D (6) from the control unit 17a, the original data restoration unit 15b It has a restoration function for restoring the secret information S based on the pieces of shared information D (j).

制御部17bは、入力部12から入力される命令に基づいて、後述する図17及び図19のフローチャートに基づいて、各部11,13b,14,15b,16,18,19を制御する機能をもっている。また、制御部17bは、例えば、以下の機能(17b−1)〜(17b−2)をもっている。   The control unit 17b has a function of controlling the respective units 11, 13b, 14, 15b, 16, 18, and 19 based on the commands input from the input unit 12 and based on the flowcharts of FIGS. . Moreover, the control part 17b has the following functions (17b-1)-(17b-2), for example.

(17b−1) 各分散部分データの2つの識別番号を行番号j,列番号iとし、各分散部分データをD(j,i)と表すとき、同一の行番号jを有する3個の分散部分データD(j,0),D(j,1),D(j,2)毎に、行番号jを割り当てて、7個のヘッダ情報H(0),H(1),H(2),H(3),H(4),H(5),H(6)を生成する機能。   (17b-1) When two identification numbers of each distributed partial data are row number j and column number i, and each distributed partial data is expressed as D (j, i), three distributed numbers having the same row number j A row number j is assigned to each of the partial data D (j, 0), D (j, 1), D (j, 2), and seven pieces of header information H (0), H (1), H (2 ), H (3), H (4), H (5), H (6).

(17b−2) 互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0),D(j,1),D(j,2)からなる7個の分散情報D(0),D(1),D(2),D(3),D(4),D(5),D(6)を個別に7個の保存部11〜71に配布する機能。   (17b-2) Seven pieces of shared information consisting of header information H (j) having the same row number j and distributed partial data D (j, 0), D (j, 1), D (j, 2) A function of distributing D (0), D (1), D (2), D (3), D (4), D (5), and D (6) individually to the seven storage units 11 to 71.

次に、以上のように構成された秘密分散システムの動作を説明する。   Next, the operation of the secret sharing system configured as described above will be described.

(分散処理の動作)
クライアント装置10においては、分散情報D(0)〜D(6)を配布する前に、ビット長mの秘密情報Sが一時的に保存部11に記憶されているとする。
(Distributed processing operation)
In the client device 10, it is assumed that the secret information S having a bit length m is temporarily stored in the storage unit 11 before the distributed information D (0) to D (6) is distributed.

このとき、クライアント装置10においては、操作者の操作により、分散処理の開始命令が入力部12から入力されると、分散処理を開始する。   At this time, in the client device 10, when a distributed processing start command is input from the input unit 12 by an operation of the operator, the distributed processing is started.

制御部17bは、保存部11内の秘密情報Sを分散部分データ生成部13bに入力する。   The control unit 17b inputs the secret information S in the storage unit 11 to the distributed partial data generation unit 13b.

分散部分データ生成部13bは、図17に示すように、秘密情報Sを3個に分割すると共に、分割結果に0から2までの識別番号を割り当てることにより、互いに同一サイズの3個の分割秘密データK(0),K(1),K(2)を生成する(ST41)。   As shown in FIG. 17, the distributed partial data generation unit 13b divides the secret information S into three pieces, and assigns identification numbers from 0 to 2 to the division result, so that three divided secrets having the same size can be obtained. Data K (0), K (1), and K (2) are generated (ST41).

ここで、3個の分割秘密データK(0),K(1),K(2)は、互いに同一サイズでなければいけない。このため、秘密情報Sが3の倍数のビット(桁)で表現されるように、末尾に0が付加(パディング)される。その後、パディング済みの秘密情報Sを同じデータサイズになるように3個に分ける。データサイズはビット単位で扱う。3の倍数のビットとは、例えば101001100のように表現される。   Here, the three pieces of divided secret data K (0), K (1), and K (2) must have the same size. For this reason, 0 is added (padding) to the end so that the secret information S is expressed by bits (digits) that are multiples of 3. Thereafter, the padded secret information S is divided into three pieces so as to have the same data size. Data size is handled in bits. A bit that is a multiple of 3 is expressed as, for example, 101001100.

次に、分散部分データ生成部13bは、分割秘密データK(0),K(1),K(2)と同一サイズを有する6個の乱数を生成すると共に、各生成結果に0から5までの識別番号を割り当てて6個の乱数データR(0),R(1),…,R(5)を生成する(ST42)。   Next, the distributed partial data generation unit 13b generates six random numbers having the same size as the divided secret data K (0), K (1), K (2), and 0 to 5 for each generation result. .., R (5) are generated (ST42).

分散部分データ生成部13bは、3個の分割秘密データK(0)〜K(2)、6個の乱数データR(0)〜R(5)に基づいて、図18に示すように、21個の分散部分データD(0,0),D(0,1),D(0,2),D(1,0),D(1,1),D(1,2),D(2,0),D(2,1),D(2,2),D(3,0),D(3,1),D(3,2),D(4,0),D(4,1)D(4,2),D(5,0),D(5,1),D(5,2),D(6,0),D(6,1),D(6,2)を算出する。   Based on the three pieces of divided secret data K (0) to K (2) and the six pieces of random number data R (0) to R (5), the distributed partial data generation unit 13b, as shown in FIG. Pieces of distributed partial data D (0,0), D (0,1), D (0,2), D (1,0), D (1,1), D (1,2), D (2 , 0), D (2,1), D (2,2), D (3,0), D (3,1), D (3,2), D (4,0), D (4 1) D (4,2), D (5,0), D (5,1), D (5,2), D (6,0), D (6,1), D (6,2) Is calculated.

しかる後、分散部分データ生成部13bは、これら分散部分データを制御部17bに送出する。   Thereafter, the distributed partial data generation unit 13b sends these distributed partial data to the control unit 17b.

制御部17bは、各分散部分データの2つの識別番号を行番号j,列番号iとし、各分散部分データをD(j,i)と表すとき、同一の行番号jを有する3個の分散部分データD(j,0),D(j,1),D(j,2)毎に、行番号jを割り当てて、7個のヘッダ情報H(0),H(1),…,H(6)を生成する(ST43)。   When the two identification numbers of each distributed partial data are row number j and column number i, and each distributed partial data is represented as D (j, i), the control unit 17b has three distributed numbers having the same row number j. A row number j is assigned to each of the partial data D (j, 0), D (j, 1), D (j, 2), and seven pieces of header information H (0), H (1),. (6) is generated (ST43).

次に、制御部17bは、互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0),D(j,1),D(j,2)からなる7個の分散情報D(0),D(1),…,D(6)を生成する。例えば、分散情報D(0)は、ヘッダ情報H(j)、分散部分データD(0,0),D(0,1),D(0,2)を互いにビット列単位で結合したものである。   Next, the control unit 17b includes seven pieces of header information H (j) having the same row number j and distributed partial data D (j, 0), D (j, 1), D (j, 2). , D (6) are generated. For example, the shared information D (0) is a combination of header information H (j) and distributed partial data D (0,0), D (0,1), D (0,2) in units of bit strings. .

しかる後、制御部17bは、7個の分散情報D(0),…,D(6)を個別に7個の保存部11〜71に配布するように、分散情報D(0)を保存部11に書き込み、分散情報D(1),…,D(6)を個別に保管サーバ装置20,…,70に配布する(ST44)。各保管サーバ装置20〜70では、配布された分散情報D(1),…,D(6)を保存部21〜71に記憶する。   Thereafter, the control unit 17b stores the shared information D (0) so that the seven shared information D (0),..., D (6) are individually distributed to the seven storage units 11 to 71. 11 and distributed information D (1),..., D (6) is individually distributed to the storage server devices 20,..., 70 (ST44). Each of the storage server devices 20 to 70 stores the distributed information D (1),..., D (6) distributed in the storage units 21 to 71.

以上により、秘密情報の分散処理が完了する。   Thus, the secret information distribution process is completed.

(復元処理の動作)
クライアント装置10においては、操作者の操作により、復元処理の開始命令が入力部12から入力されたとする。
(Restore processing operation)
In the client device 10, it is assumed that a restoration process start command is input from the input unit 12 by an operation of the operator.

クライアント装置10は、この開始命令に基づいて、復元処理を開始する。制御部17bは、図19に示すように、5台の装置10,…,70に配布した7個の分散情報D(0)〜D(6)のうち、任意の3個の分散情報を収集し(ST45)、得られた分散情報を元データ復元部15bに入力する。この例では、7個の分散情報のうち、D(0)、D(2)、D(6)を用いることとする。   The client device 10 starts the restoration process based on this start command. As shown in FIG. 19, the control unit 17b collects arbitrary three pieces of shared information among the seven pieces of shared information D (0) to D (6) distributed to the five devices 10,. (ST45), and the obtained shared information is input to the original data restoration unit 15b. In this example, D (0), D (2), and D (6) are used among the seven pieces of shared information.

元データ復元部15bは、分散情報D(0)、D(2)、D(6)を受けると、分散情報のヘッダ情報H(0),H(2),H(6)を参照し、分散情報D(j)毎に、分散部分データD(j,0),D(j,1),D(j,2)を確認する(ST46)。   Upon receiving the shared information D (0), D (2), D (6), the original data restoration unit 15b refers to the header information H (0), H (2), H (6) of the shared information, For each shared information D (j), the distributed partial data D (j, 0), D (j, 1), D (j, 2) are confirmed (ST46).

元データ復元部15bは、分散情報D(j)毎の分散部分データD(j,0),D(j,1),D(j,2)に基づいて、3個の分割秘密データK(0),K(1),K(2)を算出する(ST47)。   Based on the distributed partial data D (j, 0), D (j, 1), D (j, 2) for each shared information D (j), the original data restoration unit 15b generates three pieces of divided secret data K ( 0), K (1), K (2) are calculated (ST47).

例えば、図20に示すように、分散部分データD(0,1)とD(6,2)との排他的論理和により、中間データR(1)(+) R(5)を算出する(ST47−1)。   For example, as shown in FIG. 20, intermediate data R (1) (+) R (5) is calculated by exclusive OR of distributed partial data D (0, 1) and D (6, 2) ( ST47-1).

中間データR(1)+R(5)と、分散部分データD(2,2)との排他的論理和により、分割秘密データK(1)を算出する(ST47−2)。   The divided secret data K (1) is calculated by exclusive OR of the intermediate data R (1) + R (5) and the distributed partial data D (2, 2) (ST47-2).

分割秘密データK(1)と、分散部分データD(6,0)とD(0、0)との排他的論理和により、乱数データR(3)を算出する(ST47−3)。   Random number data R (3) is calculated by exclusive OR of the divided secret data K (1) and the distributed partial data D (6,0) and D (0,0) (ST47-3).

分散部分データD(2,1)とD(6,1)との排他的論理和により、中間データR(1)(+) R(3)を算出する(ST47−4)。   Intermediate data R (1) (+) R (3) is calculated by exclusive OR of the distributed partial data D (2,1) and D (6,1) (ST47-4).

中間データR(1)(+) R(3)と、乱数データR(3)との排他的論理和により、乱数データR(1)を算出する(ST47−5)。   Random number data R (1) is calculated by exclusive OR of intermediate data R (1) (+) R (3) and random number data R (3) (ST47-5).

乱数データR(1)とR(2)と、分散部分データD(0,1)との排他的論理和により、分割秘密データK(0)を算出する(ST47−6)。   The divided secret data K (0) is calculated by exclusive OR of the random number data R (1) and R (2) and the distributed partial data D (0, 1) (ST47-6).

中間データR(1)(+) R(5)と、乱数データR(1)との排他的論理和により、乱数データR(5)を算出する(ST47−7)。   Random number data R (5) is calculated by exclusive OR of intermediate data R (1) (+) R (5) and random number data R (1) (ST47-7).

分散部分データD(0,2)と、乱数データR(3)とR(5)との排他的論理和により、分割秘密データK(2)を算出する(ST57−8)。   The divided secret data K (2) is calculated by exclusive OR of the distributed partial data D (0, 2) and the random number data R (3) and R (5) (ST57-8).

元データ復元部15bは、これら分割秘密データK(0)〜K(2)とヘッダ情報H(0),H(2),H(6)に基づいて、元の秘密情報S=K(0)‖K(1)‖K(2)を復元する(ST48)。   Based on the divided secret data K (0) to K (2) and the header information H (0), H (2), H (6), the original data restoration unit 15b uses the original secret information S = K (0 ) ‖K (1) ‖K (2) is restored (ST48).

上述したように本実施形態によれば、排他的論理和を用いた(3,7)型のしきい値秘密分散により、秘密情報の分散や復元の処理を非常に高速に実現し、多項式補間を用いずに高速に実行可能な完全秘密分散を実現することができる。   As described above, according to the present embodiment, the (3, 7) -type threshold secret sharing using exclusive OR makes it possible to realize the secret information distribution and restoration processing at a very high speed, and polynomial interpolation. It is possible to realize complete secret sharing that can be executed at high speed without using the.

なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。   Note that the method described in the above embodiment includes a magnetic disk (floppy (registered trademark) disk, hard disk, etc.), an optical disk (CD-ROM, DVD, etc.), a magneto-optical disk (MO) as programs that can be executed by a computer. ), And can be distributed in a storage medium such as a semiconductor memory.

また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。   In addition, as long as the storage medium can store a program and can be read by a computer, the storage format may be any form.

また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。   In addition, an OS (operating system) running on a computer based on an instruction of a program installed in the computer from a storage medium, MW (middleware) such as database management software, network software, and the like realize the above-described embodiment. A part of each process may be executed.

さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。   Furthermore, the storage medium in the present invention is not limited to a medium independent of a computer, but also includes a storage medium in which a program transmitted via a LAN or the Internet is downloaded and stored or temporarily stored.

また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。   Further, the number of storage media is not limited to one, and the case where the processing in the above embodiment is executed from a plurality of media is also included in the storage media in the present invention, and the media configuration may be any configuration.

尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。   The computer according to the present invention executes each process in the above-described embodiment based on a program stored in a storage medium, and is a single device such as a personal computer or a system in which a plurality of devices are connected to a network. Any configuration may be used.

また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。   In addition, the computer in the present invention is not limited to a personal computer, but includes an arithmetic processing device, a microcomputer, and the like included in an information processing device, and is a generic term for devices and devices that can realize the functions of the present invention by a program. .

なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Moreover, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.

本発明の第1の実施形態に係る秘密分散システムの構成を示す模式図である。It is a schematic diagram which shows the structure of the secret sharing system which concerns on the 1st Embodiment of this invention. 同実施形態における分散部分データの一例を示す模式図である。It is a schematic diagram which shows an example of the distribution partial data in the embodiment. 同実施形態におけるヘッダ情報及び分散情報の一例を示す模式図である。It is a schematic diagram which shows an example of the header information and distribution information in the embodiment. 同実施形態における分散処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement of the distributed process in the embodiment. 同実施形態における復元処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the decompression | restoration process in the embodiment. 同実施形態における復元処理の動作を説明するための模式図である。It is a schematic diagram for demonstrating the operation | movement of the decompression | restoration process in the embodiment. 同実施形態における復元処理の動作を説明するための参考図である。FIG. 6 is a reference diagram for explaining an operation of a restoration process in the same embodiment. 本発明の第2の実施形態に係る秘密分散システムの動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the secret sharing system which concerns on the 2nd Embodiment of this invention. 同実施形態における分散部分データの一例を示す模式図である。It is a schematic diagram which shows an example of the distribution partial data in the embodiment. 同実施形態における復元処理の動作を説明するための参考図である。FIG. 6 is a reference diagram for explaining an operation of a restoration process in the same embodiment. 本発明の第3の実施形態に係る秘密分散システムの構成を示す模式図である。It is a schematic diagram which shows the structure of the secret sharing system which concerns on the 3rd Embodiment of this invention. 同実施形態における分割処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement of the division | segmentation process in the embodiment. 同実施形態における分散部分データの一例を示す模式図である。It is a schematic diagram which shows an example of the distribution partial data in the embodiment. 同実施形態における復元処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the decompression | restoration process in the embodiment. 同実施形態における復元処理の動作を説明するための模式図である。It is a schematic diagram for demonstrating the operation | movement of the decompression | restoration process in the embodiment. 本発明の第4の実施形態に係る秘密分散システムの構成を示す模式図である。It is a schematic diagram which shows the structure of the secret sharing system which concerns on the 4th Embodiment of this invention. 同実施形態における分割処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement of the division | segmentation process in the embodiment. 同実施形態における分散部分データの一例を示す模式図である。It is a schematic diagram which shows an example of the distribution partial data in the embodiment. 同実施形態における復元処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the decompression | restoration process in the embodiment. 同実施形態における復元処理の動作を説明するための模式図である。It is a schematic diagram for demonstrating the operation | movement of the decompression | restoration process in the embodiment.

符号の説明Explanation of symbols

10…クライアント装置、11〜n1…保存部、12…入力部、13,13a,13b…分散部分データ生成部、14…ハッシュ値生成部、15,15a,15b…元データ復元部、16…ハッシュ値検証部、17,17a,17b…制御部、18…出力部、19,22〜n2…通信部、20,30,…,n0…保管サーバ装置、NW…ネットワーク。   DESCRIPTION OF SYMBOLS 10 ... Client apparatus, 11-n1 ... Saving part, 12 ... Input part, 13, 13a, 13b ... Distributed partial data generation part, 14 ... Hash value generation part, 15, 15a, 15b ... Original data restoration part, 16 ... Hash Value verification unit, 17, 17a, 17b ... control unit, 18 ... output unit, 19, 22 to n2 ... communication unit, 20, 30, ..., n0 ... storage server device, NW ... network.

Claims (7)

秘密情報Sが分散されてなるn個(但し、n≧2)の分散情報D(0),…,D(n-1)を個別にn個の記憶装置に配布し、且つ、前記n個の分散情報のうち、任意の2個の分散情報から秘密情報Sを復元可能な(2,n)型の秘密分散装置であって、
前記分散情報D(0)〜D(n-1)が配布される前に、前記秘密情報Sが一時的に記憶される記憶手段と、
この秘密情報Sをn−1個に分割すると共に、分割結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てることにより、互いに同一サイズのn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)を生成する手段と、
前記各分割秘密データのサイズと同一サイズのゼロ値を作成し、作成結果に行番号j=0を割り当てて第2分割秘密データK(0)を生成する手段と、
前記各分割秘密データのサイズ以上のサイズを有するn−1個の乱数を生成すると共に、各生成結果に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当ててn−1個の乱数データR(0),…,R(i),…,R(n-2)を生成する手段と、
前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び前記乱数データR(0),…,R(i),…,R(n-2)に基づいて、n(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)を算出する手段(但し、(+)は排他的論理和を表す記号)と、
前記各分散部分データのうち、同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に、行番号jを割り当ててn個のヘッダ情報H(0),…,H(j),…,H(n-1)を生成する手段と、
互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0)〜D(j,n-2)からなるn個の分散情報D(0),…,D(j),…,D(n-1)を個別に前記n個の記憶装置に配布する手段と、
前記配布されたn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)に基づいて、前記秘密情報Sを復元する復元手段と、
を備えたことを特徴とする秘密分散装置。
N (where n ≧ 2) shared information D (0),..., D (n−1) are distributed to n storage devices individually, and the n pieces of secret information S are distributed. (2, n) type secret sharing apparatus capable of restoring the secret information S from any two pieces of shared information,
Storage means for temporarily storing the secret information S before the distributed information D (0) to D (n-1) is distributed;
The secret information S is divided into n-1 pieces, and row numbers j from 1 to n-1 (where 0.ltoreq.j.ltoreq.n-1) are assigned to the divided results, so that n-1 having the same size. Means for generating the first divided secret data K (1), ..., K (j), ..., K (n-1);
Means for generating a second value of the divided secret data K (0) by creating a zero value having the same size as the size of each of the divided secret data and assigning a line number j = 0 to the creation result;
N-1 random numbers having a size equal to or larger than the size of each of the divided secret data are generated, and a column number i from 0 to n-2 (where 0 ≦ i ≦ n−2) is assigned to each generation result. Means for generating n-1 random number data R (0), ..., R (i), ..., R (n-2);
The first and second divided secret data K (0), K (1), ..., K (j), ..., K (n-1) and the random number data R (0), ..., R (i), ..., n (n-1) pieces of distributed partial data D (j, i) = K (j-i (mod n)) (+) R (i) are calculated based on R (n-2). Means (where (+) is a symbol representing exclusive OR),
Among the distributed partial data, a row number j is assigned to each of n−1 distributed partial data D (j, 0) to D (j, n−2) having the same row number j, and n pieces of distributed partial data are assigned. Means for generating header information H (0), ..., H (j), ..., H (n-1);
N shared information D (0),..., D (j consisting of header information H (j) having the same row number j and distributed partial data D (j, 0) to D (j, n-2) ),..., D (n-1) individually distributed to the n storage devices;
The secret information S is restored based on any two pieces of distributed information D (i) and D (j) among the distributed n pieces of distributed information D (0) to D (n-1). Recovery means,
A secret sharing apparatus comprising:
秘密情報Sが分散されてなるn個(但し、n≧2)の分散情報D(0),…,D(n-1)を個別にn個の記憶装置に配布し、且つ、前記n個の分散情報のうち、任意の2個の分散情報から秘密情報Sを復元可能な(2,n)型の秘密分散装置により実行される秘密分散方法であって、
前記分散情報D(0)〜D(n-1)を配布する前に、前記秘密情報Sを、前記秘密分散装置が有する記憶装置に一時的に記憶する記憶工程と、
この秘密情報Sをn−1個に分割すると共に、分割結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てることにより、互いに同一サイズのn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)を生成する工程と、
前記各分割秘密データのサイズと同一サイズのゼロ値を作成し、作成結果に行番号j=0を割り当てて第2分割秘密データK(0)を生成する工程と、
前記各分割秘密データのサイズ以上のサイズを有するn−1個の乱数を生成すると共に、各生成結果に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当ててn−1個の乱数データR(0),…,R(i),…,R(n-2)を生成する工程と、
前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び前記乱数データR(0),…,R(i),…,R(n-2)に基づいて、n(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)を算出する工程(但し、(+)は排他的論理和を表す記号)と、
前記各分散部分データのうち、同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に、行番号jを割り当ててn個のヘッダ情報H(0),…,H(j),…,H(n-1)を生成する工程と、
互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0)〜D(j,n-2)からなるn個の分散情報D(0),…,D(j),…,D(n-1)を個別に前記n個の記憶装置に配布する工程と、
前記配布されたn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)に基づいて、前記秘密情報Sを復元する復元工程と、
を備えたことを特徴とする秘密分散方法。
N (where n ≧ 2) shared information D (0),..., D (n−1) are distributed to n storage devices individually, and the n pieces of secret information S are distributed. Secret sharing method executed by a (2, n) type secret sharing apparatus capable of restoring the secret information S from any two pieces of shared information.
A storage step of temporarily storing the secret information S in a storage device included in the secret sharing device before distributing the shared information D (0) to D (n-1);
The secret information S is divided into n-1 pieces, and row numbers j from 1 to n-1 (where 0.ltoreq.j.ltoreq.n-1) are assigned to the divided results, so that n-1 having the same size. Generating the first divided secret data K (1), ..., K (j), ..., K (n-1);
Creating a zero value having the same size as each of the divided secret data, assigning a line number j = 0 to the creation result, and generating the second divided secret data K (0);
N-1 random numbers having a size equal to or larger than the size of each of the divided secret data are generated, and a column number i from 0 to n-2 (where 0 ≦ i ≦ n−2) is assigned to each generation result. Generating n−1 random number data R (0),..., R (i),.
The first and second divided secret data K (0), K (1), ..., K (j), ..., K (n-1) and the random number data R (0), ..., R (i), ..., n (n-1) pieces of distributed partial data D (j, i) = K (j-i (mod n)) (+) R (i) are calculated based on R (n-2). A process (where (+) is a symbol representing exclusive OR),
Among the distributed partial data, a row number j is assigned to each of n−1 distributed partial data D (j, 0) to D (j, n−2) having the same row number j, and n pieces of distributed partial data are assigned. Generating header information H (0), ..., H (j), ..., H (n-1);
N shared information D (0),..., D (j consisting of header information H (j) having the same row number j and distributed partial data D (j, 0) to D (j, n-2) ), ..., D (n-1) individually distributed to the n storage devices;
The secret information S is restored based on any two pieces of distributed information D (i) and D (j) among the distributed n pieces of distributed information D (0) to D (n-1). Restoration process,
A secret sharing method comprising:
秘密情報Sが分散されてなるn個(但し、n≧2)の分散情報D(0),…,D(n-1)を個別にn個の記憶装置に配布し、且つ、前記n個の分散情報のうち、任意の2個の分散情報から秘密情報Sを復元可能な(2,n)型の秘密分散装置のプログラムであって、
前記秘密分散装置のコンピュータを、
前記分散情報D(0)〜D(n-1)が配布される前に、前記秘密情報Sが一時的に記憶される記憶手段、
この秘密情報Sをn−1個に分割すると共に、分割結果に1からn−1までの行番号j(但し、0≦j≦n−1)を割り当てることにより、互いに同一サイズのn−1個の第1分割秘密データK(1),…,K(j),…,K(n-1)を生成する手段、
前記各分割秘密データのサイズと同一サイズのゼロ値を作成し、作成結果に行番号j=0を割り当てて第2分割秘密データK(0)(=0)を生成する手段、
前記各分割秘密データのサイズ以上のサイズを有するn−1個の乱数を生成すると共に、各生成結果に0からn−2までの列番号i(但し、0≦i≦n−2)を割り当ててn−1個の乱数データR(0),…,R(i),…,R(n-2)を生成する手段、
前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n-1)及び前記乱数データR(0),…,R(i),…,R(n-2)に基づいて、n(n−1)個の分散部分データD(j,i)=K(j−i(mod n))(+)R(i)を算出する手段(但し、(+)は排他的論理和を表す記号)、
前記各分散部分データのうち、同一の行番号jを有するn−1個の分散部分データD(j,0)〜D(j,n-2)毎に、行番号jを割り当ててn個のヘッダ情報H(0),…,H(j),…,H(n-1)を生成する手段、
互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0)〜D(j,n-2)からなるn個の分散情報D(0),…,D(j),…,D(n-1)を個別に前記n個の記憶装置に配布する手段、
前記配布されたn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)に基づいて、前記秘密情報Sを復元する秘密情報復元手段、
として機能させるためのプログラム。
N (where n ≧ 2) shared information D (0),..., D (n−1) are distributed to n storage devices individually, and the n pieces of secret information S are distributed. (2, n) type secret sharing apparatus program capable of restoring the secret information S from any two pieces of shared information,
A computer of the secret sharing device;
Storage means for temporarily storing the secret information S before the distributed information D (0) to D (n-1) is distributed;
The secret information S is divided into n-1 pieces, and row numbers j from 1 to n-1 (where 0.ltoreq.j.ltoreq.n-1) are assigned to the divided results, so that n-1 having the same size. Means for generating the first divided secret data K (1), ..., K (j), ..., K (n-1),
Means for generating a second divided secret data K (0) (= 0) by generating a zero value having the same size as the size of each of the divided secret data and assigning a line number j = 0 to the generation result;
N-1 random numbers having a size equal to or larger than the size of each of the divided secret data are generated, and a column number i from 0 to n-2 (where 0 ≦ i ≦ n−2) is assigned to each generation result. Means for generating n−1 random number data R (0),..., R (i),.
The first and second divided secret data K (0), K (1), ..., K (j), ..., K (n-1) and the random number data R (0), ..., R (i), ..., n (n-1) pieces of distributed partial data D (j, i) = K (j-i (mod n)) (+) R (i) are calculated based on R (n-2). Means (where (+) is a symbol representing exclusive OR),
Among the distributed partial data, a row number j is assigned to each of n−1 distributed partial data D (j, 0) to D (j, n−2) having the same row number j, and n pieces of distributed partial data are assigned. Means for generating header information H (0),..., H (j),.
N shared information D (0),..., D (j consisting of header information H (j) having the same row number j and distributed partial data D (j, 0) to D (j, n-2) ), ..., D (n-1) individually distributed to the n storage devices,
The secret information S is restored based on any two pieces of distributed information D (i) and D (j) among the distributed n pieces of distributed information D (0) to D (n-1). Secret information recovery means,
Program to function as.
請求項3に記載のプログラムにおいて、
前記秘密情報復元手段は、
前記2個の分散情報D(i),D(j)のうち、一方の分散情報D(i)に関し、行番号iと同一の列番号iが割り当てられた分散部分データD(i,i)を含むか否かを判定する手段、
この判定の結果、分散情報D(i)が分散部分データD(i,i)を含むとき、この分散部分データD(i,i)と、他方の分散情報D(j)に含まれる同一列番号iの分散部分データD(j,i)と、第2分割秘密データK(0)(=0)とに基づいて、第1分割秘密データK(r)=D(i,i)(+)D(j,i)(+)K(0)を復元する第1の復元手段(但し、r=j−i(mod n))、
この第1分割秘密データK(r)の復元後、第1終了条件i−r=n−1を満たすか否かを判定する手段、
この判定結果が第1終了条件を満たさないとき、前記第1分割秘密データK(r)の復元の式をrだけずらすことにより、前記第1終了条件を満たすまで、順次、他の第1分割秘密データK(r+r),…,K((n-1)r)を復元する第2の復元手段(但し、K(r+r)=D(i,i−r)(+)D(j,i−r)(+)K(r),…,K((n-1)r)=D(i,i−(n-2)r)(+)D(j,i−(n-2)r)(+)K((n-2)r))、
前記判定結果が第1終了条件を満たすとき又は前記分散情報D(i)が分散部分データD(i,i)を含まないとき、他方の分散情報D(j)における行番号jと同一の列番号jが割り当てられた分散部分データD(j,j)と、一方の分散情報D(i)に含まれる同一列番号jの分散部分データD(i,j)と、前記第2分割秘密データK(0)(=0)とに基づいて、他の第1分割秘密データK(−r)=D(i,j)(+)D(j,j)(+)K(0)を復元する第3の復元手段、
この第1分割秘密データK(−r)の復元後、第2終了条件j+r=n−1を満たすか否かを判定する手段、
この判定結果が第2終了条件を満たさないとき、前記第1分割秘密データK(−r)の復元の式をrだけずらすことにより、前記第2終了条件を満たすまで、順次、残りの第1分割秘密データK(−r−r),…,K(−(n-1)r)を復元する第4の復元手段(但し、K(−r−r)=D(i,j+r)(+)D(j,j+r)(+)K(−r),…,K(−(n-1)r)=D(i,j+(n-2)r)(+)D(j,j+(n-2)r)(+)K(−(n-2)r))、
前記各復元手段のうち、該当する各復元手段により復元されたn−1個の第1分割秘密データK(1),…,K(n-1)を互いに連接することにより、前記秘密情報S=K(1)‖K(2)‖…‖K(n-1)を復元する手段(但し、‖は連接を表す記号)、
を含んでいることを特徴とするプログラム。
In the program according to claim 3,
The secret information restoring means is
Among the two pieces of shared information D (i), D (j), with respect to one shared information D (i), distributed partial data D (i, i) assigned the same column number i as the row number i Means for determining whether or not
As a result of this determination, when the distributed information D (i) includes the distributed partial data D (i, i), the same column included in the distributed partial data D (i, i) and the other shared information D (j) Based on the distributed partial data D (j, i) with the number i and the second divided secret data K (0) (= 0), the first divided secret data K (r) = D (i, i) (+ ) D (j, i) (+) first restoring means for restoring K (0) (where r = j−i (mod n)),
Means for determining whether or not the first end condition i−r = n−1 is satisfied after the restoration of the first divided secret data K (r);
When this determination result does not satisfy the first end condition, the restoration formula of the first divided secret data K (r) is shifted by r until the first end condition is satisfied until another first division Second restoring means for restoring the secret data K (r + r),..., K ((n−1) r) (where K (r + r) = D (i, ir−r) (+) D (j, i -R) (+) K (r), ..., K ((n-1) r) = D (i, i- (n-2) r) (+) D (j, i- (n-2) r) (+) K ((n-2) r)),
When the determination result satisfies the first termination condition or when the shared information D (i) does not include the distributed partial data D (i, i), the same column as the row number j in the other shared information D (j) The distributed partial data D (j, j) to which the number j is assigned, the distributed partial data D (i, j) of the same column number j included in one shared information D (i), and the second divided secret data Based on K (0) (= 0), the other first divided secret data K (−r) = D (i, j) (+) D (j, j) (+) K (0) is restored. Third restoring means to
Means for determining whether or not the second end condition j + r = n−1 is satisfied after the restoration of the first divided secret data K (−r);
When this determination result does not satisfy the second end condition, the rest of the first divided secret data K (-r) is restored by shifting the restoration formula by r until the second end condition is satisfied. Fourth secret means for restoring the divided secret data K (−r−r),..., K (− (n−1) r) (where K (−r−r) = D (i, j + r) (+ ) D (j, j + r) (+) K (-r), ..., K (-(n-1) r) = D (i, j + (n-2) r) (+) D (j, j + ( n-2) r) (+) K (-(n-2) r)),
The n-1 pieces of first divided secret data K (1),..., K (n-1) restored by the corresponding restoration means among the respective restoration means are connected to each other, whereby the secret information S = K (1) ‖K (2) ‖ ... means for restoring ‖K (n-1) (where ‖ is a symbol representing concatenation),
The program characterized by including.
秘密情報Sが分散されてなるn’個(但し、n’≧3)の分散情報D(0),…,D(n’-1)のうち、n個(但し、n<n’)の分散情報D(0),…,D(n-1)を個別にn個の記憶装置に配布し、且つ、前記n個の分散情報のうち、任意の2個の分散情報から秘密情報Sを復元可能な(2,n)型の秘密分散装置のプログラムであって、
前記秘密分散装置のコンピュータを、
前記分散情報D(0)〜D(n-1)が配布される前に、前記秘密情報Sが一時的に記憶される記憶手段、
この秘密情報Sをn’−1個に分割すると共に、分割結果に1からn’−1までの行番号j(但し、0≦j≦n’−1)を割り当てることにより、互いに同一サイズのn’−1個の第1分割秘密データK(1),…,K(j),…,K(n’-1)を生成する手段、
前記各分割秘密データのサイズと同一サイズのゼロ値を作成し、作成結果に行番号j=0を割り当てて第2分割秘密データK(0)(=0)を生成する手段、
前記各分割秘密データのサイズ以上のサイズを有するn’−1個の乱数を生成すると共に、各生成結果に0からn’−2までの列番号i(但し、0≦i≦n’−2)を割り当ててn’−1個の乱数データR(0),…,R(i),…,R(n’-2)を生成する手段、
前記第1及び第2分割秘密データK(0),K(1),…,K(j),…,K(n’-1)及び前記乱数データR(0),…,R(i),…,R(n’-2)に基づいて、n(n’−1)個の分散部分データD(j,i)=K(j−i(mod n’))(+)R(i)を算出する手段(但し、(+)は排他的論理和を表す記号)、
前記各分散部分データのうち、同一の行番号jを有するn’−1個の分散部分データD(j,0)〜D(j,n’-2)毎に、行番号jを割り当ててn個のヘッダ情報H(0),…,H(j),…,H(n-1)を生成する手段、
互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0)〜D(j,n’-2)からなるn個の分散情報D(0),…,D(j),…,D(n-1)を個別に前記n個の記憶装置に配布する手段、
前記配布されたn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)に基づいて、前記秘密情報Sを復元する秘密情報復元手段、
前記(2,n)型を(2,n+t)型に変更したいとき、変更可能条件t≦n’−nを満たすか否かを判定する手段、
前記判定結果が変更可能条件を満たすとき、前記任意の2個の分散情報D(i),D(j)に基づいて、t個の分散情報D(n),…,D(n-1+t)を生成する分散情報生成手段、
この生成したt個の分散情報D(n),…,D(n-1+t)を前記n個の記憶装置とは異なるt個の記憶装置に個別に配布する手段、
として機能させるためのプログラム。
Out of n ′ (where n ′ ≧ 3) shared information D (0),..., D (n′−1) obtained by distributing the secret information S, n (where n <n ′) The distributed information D (0),..., D (n-1) is individually distributed to n storage devices, and the secret information S is obtained from any two shared information among the n shared information. A (2, n) type secret sharing device program that can be restored,
A computer of the secret sharing device;
Storage means for temporarily storing the secret information S before the distributed information D (0) to D (n-1) is distributed;
By dividing this secret information S into n′−1 and assigning row numbers j from 1 to n′−1 (where 0 ≦ j ≦ n′−1) to the division result, means for generating n'-1 pieces of first divided secret data K (1), ..., K (j), ..., K (n'-1);
Means for generating a second divided secret data K (0) (= 0) by generating a zero value having the same size as the size of each of the divided secret data and assigning a line number j = 0 to the generation result;
N′−1 random numbers having a size equal to or larger than the size of each of the divided secret data are generated, and the column number i from 0 to n′−2 (where 0 ≦ i ≦ n′−2) is generated in each generation result. ) To generate n′-1 random number data R (0),..., R (i),.
The first and second divided secret data K (0), K (1), ..., K (j), ..., K (n'-1) and the random number data R (0), ..., R (i) ,..., R (n′−2), n (n′−1) pieces of distributed partial data D (j, i) = K (j−i (mod n ′)) (+) R (i ) (Where (+) is an exclusive OR symbol),
Among the distributed partial data, a row number j is assigned to each of n′−1 distributed partial data D (j, 0) to D (j, n′−2) having the same row number j, and n , H (j),..., H (n−1) generating means for header information H (0),.
N pieces of shared information D (0),..., D (consisting of header information H (j) having the same row number j and distributed partial data D (j, 0) to D (j, n′−2). j),..., D (n-1) individually distributed to the n storage devices;
The secret information S is restored based on any two pieces of distributed information D (i) and D (j) among the distributed n pieces of distributed information D (0) to D (n-1). Secret information recovery means,
Means for determining whether or not the changeable condition t ≦ n′−n is satisfied when it is desired to change the (2, n) type to the (2, n + t) type;
When the determination result satisfies the changeable condition, t pieces of shared information D (n),..., D (n-1 +) based on the arbitrary two pieces of shared information D (i) and D (j). t) distributed information generating means for generating
Means for individually distributing the generated t pieces of distributed information D (n),..., D (n-1 + t) to t storage devices different from the n storage devices;
Program to function as.
秘密情報Sが分散されてなる5個の分散情報D(0),…,D(4)を個別に5個の記憶装置に配布し、且つ、前記5個の分散情報のうち、任意の3個の分散情報から秘密情報Sを復元可能な(3,5)型の秘密分散装置のプログラムであって、
前記秘密分散装置のコンピュータを、
前記分散情報D(0)〜D(4)が配布される前に、前記秘密情報Sが一時的に記憶される記憶手段、
この秘密情報Sを2個に分割すると共に、分割結果に0から1までの識別番号を割り当てることにより、互いに同一サイズの2個の分割秘密データK(0),K(1)を生成する手段、
前記各分割秘密データのサイズと同一サイズを有する4個の乱数を生成すると共に、各生成結果に0から3までの識別番号を割り当てて4個の乱数データR(0),R(1),R(2),R(3)を生成する手段、
前記2個の分割秘密データK(0),K(1)、前記4個の乱数データR(0)〜R(3)及び下記10個の式に基づいて(但し、(+)は排他的論理和を表す記号)、互いに2つの識別番号の組合せで識別可能な10個の分散部分データD(0,0),D(0,1),D(1,0),D(1,1),D(2,0),D(2,1),D(3,0),D(3,1),D(4,0),D(4,1)を算出する手段、
D(0,0)=R(0)、
D(0,1)=K(0)(+)R(1)(+)R(2)、
D(1,0)=R(1)、
D(1,1)=K(1)(+)R(2)(+)R(3)、
D(2,0)=R(2)、
D(2,1)=K(0)(+)R(3)(+)R(0)、
D(3,0)=R(3)、
D(3,1)=K(1)(+)R(0)(+)R(1)、
D(4,0)=K(1)(+)R(0)(+)R(2)、
D(4,1)=K(0)(+)R(1)(+)R(3)、
前記各分散部分データの2つの識別番号を行番号j,列番号iとし、各分散部分データをD(j,i)と表すとき、同一の行番号jを有する2個の分散部分データD(j,0),D(j,1)毎に、行番号jを割り当てて、5個のヘッダ情報H(0),H(1),H(2),H(3),H(4)を生成する手段、
互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0),D(j,1)からなる5個の分散情報D(0),D(1),D(2),D(3),D(4)を個別に前記5個の記憶装置に配布する手段、
前記配布された5個の分散情報D(0)〜D(4)のうち、任意の3個の分散情報D(j)に基づいて、前記秘密情報Sを復元する復元手段、
として機能させるためのプログラム。
Five pieces of shared information D (0),..., D (4) obtained by distributing the secret information S are individually distributed to five storage devices, and any three of the five pieces of shared information are distributed. A (3, 5) type secret sharing apparatus program capable of restoring the secret information S from each piece of shared information,
A computer of the secret sharing device;
Storage means for temporarily storing the secret information S before the distributed information D (0) to D (4) is distributed;
Means for generating two pieces of divided secret data K (0) and K (1) having the same size by dividing the secret information S into two and assigning identification numbers from 0 to 1 to the division result ,
Four random numbers having the same size as the size of each of the divided secret data are generated, and an identification number from 0 to 3 is assigned to each generation result to generate four random number data R (0), R (1), Means for generating R (2), R (3);
Based on the two pieces of divided secret data K (0), K (1), the four pieces of random number data R (0) to R (3) and the following ten expressions (where (+) is exclusive) 10 symbols of distributed partial data D (0, 0), D (0, 1), D (1, 0), D (1, 1) that can be identified by a combination of two identification numbers. ), D (2,0), D (2,1), D (3,0), D (3,1), D (4,0), D (4,1),
D (0,0) = R (0),
D (0,1) = K (0) (+) R (1) (+) R (2),
D (1,0) = R (1),
D (1,1) = K (1) (+) R (2) (+) R (3),
D (2,0) = R (2),
D (2,1) = K (0) (+) R (3) (+) R (0),
D (3,0) = R (3),
D (3,1) = K (1) (+) R (0) (+) R (1),
D (4,0) = K (1) (+) R (0) (+) R (2),
D (4,1) = K (0) (+) R (1) (+) R (3),
When the two identification numbers of the respective distributed partial data are row number j and column number i, and each distributed partial data is represented as D (j, i), two distributed partial data D having the same row number j ( j, 0), D (j, 1) is assigned a row number j, and five pieces of header information H (0), H (1), H (2), H (3), H (4) Means for generating,
Five pieces of shared information D (0), D (1), D () consisting of header information H (j) having the same row number j and distributed partial data D (j, 0), D (j, 1) 2), means for distributing D (3), D (4) individually to the five storage devices;
A restoring means for restoring the secret information S based on any three pieces of shared information D (j) among the distributed five pieces of shared information D (0) to D (4);
Program to function as.
秘密情報Sが分散されてなる7個の分散情報D(0),…,D(6)を個別に7個の記憶装置に配布し、且つ、前記7個の分散情報のうち、任意の3個の分散情報から秘密情報Sを復元可能な(3,7)型の秘密分散装置のプログラムであって、
前記秘密分散装置のコンピュータを、
前記分散情報D(0)〜D(6)が配布される前に、前記秘密情報Sが一時的に記憶される記憶手段、
この秘密情報Sを3個に分割すると共に、分割結果に0から2までの識別番号を割り当てることにより、互いに同一サイズの3個の分割秘密データK(0),K(1),K(2)を生成する手段、
前記各分割秘密データのサイズと同一サイズを有する6個の乱数を生成すると共に、各生成結果に0から5までの識別番号を割り当てて6個の乱数データR(0),R(1),R(2),R(3),R(4),R(5)を生成する手段、
前記3個の分割秘密データK(0)〜K(2)、前記6個の乱数データR(0)〜R(5)及び下記21個の式に基づいて(但し、(+)は排他的論理和を表す記号)、互いに2つの識別番号の組合せで識別可能な21個の分散部分データD(0,0),D(0,1),D(0,2),D(1,0),D(1,1),D(1,2),D(2,0),D(2,1),D(2,2),D(3,0),D(3,1),D(3,2),D(4,0),D(4,1)D(4,2),D(5,0),D(5,1),D(5,2),D(6,0),D(6,1),D(6,2)を算出する手段、
D(0,0)=R(0)、
D(0,1)=K(0)(+)R(1)(+)R(2)、
D(0,2)=K(2)(+)R(3)(+)R(5)、
D(1,0)=R(1)、
D(1,1)=K(1)(+)R(2)(+)R(3)、
D(1,2)=K(0)(+)R(0)(+)R(4)、
D(2,0)=R(2)、
D(2,1)=K(2)(+)R(3)(+)R(4)、
D(2,2)=K(1)(+)R(1)(+)R(5)、
D(3,0)=R(3)、
D(3,1)=K(0)(+)R(4)(+)R(5)、
D(3,2)=K(2)(+)R(0)(+)R(2)、
D(4,0)=R(4)、
D(4,1)=K(1)(+)R(5)(+)R(0)、
D(4,2)=K(0)(+)R(1)(+)R(3)、
D(5,0)=R(5)、
D(5,1)=K(2)(+)R(0)(+)R(1)、
D(5,2)=K(1)(+)R(2)(+)R(4)、
D(6,0)=K(1)(+)R(0)(+)R(3)、
D(6,1)=K(2)(+)R(1)(+)R(4)、
D(6,2)=K(0)(+)R(2)(+)R(5)、
前記各分散部分データの2つの識別番号を行番号j,列番号iとし、各分散部分データをD(j,i)と表すとき、同一の行番号jを有する3個の分散部分データD(j,0),D(j,1),D(j,2)毎に、行番号jを割り当てて、7個のヘッダ情報H(0),H(1),H(2),H(3),H(4),H(5),H(6)を生成する手段、
互いに同一の行番号jを有するヘッダ情報H(j)及び分散部分データD(j,0),D(j,1),D(j,2)からなる7個の分散情報D(0),D(1),D(2),D(3),D(4),D(5),D(6)を個別に前記7個の記憶装置に配布する手段、
前記配布された7個の分散情報D(0)〜D(6)のうち、任意の3個の分散情報D(j)に基づいて、前記秘密情報Sを復元する復元手段、
として機能させるためのプログラム。
Seven pieces of shared information D (0),..., D (6) obtained by distributing the secret information S are individually distributed to seven storage devices, and any three of the seven pieces of shared information. (3, 7) type secret sharing apparatus program capable of restoring the secret information S from each piece of shared information,
A computer of the secret sharing device;
Storage means for temporarily storing the secret information S before the distributed information D (0) to D (6) is distributed;
The secret information S is divided into three, and an identification number from 0 to 2 is assigned to the division result, so that three pieces of divided secret data K (0), K (1), K (2 )
Six random numbers having the same size as the size of each of the divided secret data are generated, and an identification number from 0 to 5 is assigned to each generation result to generate six random data R (0), R (1), Means for generating R (2), R (3), R (4), R (5);
Based on the three pieces of divided secret data K (0) to K (2), the six random number data R (0) to R (5), and the following 21 formulas (where (+) is exclusive) (Symbol representing logical sum) and 21 distributed partial data D (0,0), D (0,1), D (0,2), D (1,0) that can be identified by a combination of two identification numbers. ), D (1,1), D (1,2), D (2,0), D (2,1), D (2,2), D (3,0), D (3,1) , D (3,2), D (4,0), D (4,1) D (4,2), D (5,0), D (5,1), D (5,2), D Means for calculating (6,0), D (6,1), D (6,2);
D (0,0) = R (0),
D (0,1) = K (0) (+) R (1) (+) R (2),
D (0,2) = K (2) (+) R (3) (+) R (5),
D (1,0) = R (1),
D (1,1) = K (1) (+) R (2) (+) R (3),
D (1,2) = K (0) (+) R (0) (+) R (4),
D (2,0) = R (2),
D (2,1) = K (2) (+) R (3) (+) R (4),
D (2,2) = K (1) (+) R (1) (+) R (5),
D (3,0) = R (3),
D (3,1) = K (0) (+) R (4) (+) R (5),
D (3,2) = K (2) (+) R (0) (+) R (2),
D (4,0) = R (4),
D (4,1) = K (1) (+) R (5) (+) R (0),
D (4,2) = K (0) (+) R (1) (+) R (3),
D (5,0) = R (5),
D (5,1) = K (2) (+) R (0) (+) R (1),
D (5,2) = K (1) (+) R (2) (+) R (4),
D (6,0) = K (1) (+) R (0) (+) R (3),
D (6,1) = K (2) (+) R (1) (+) R (4),
D (6,2) = K (0) (+) R (2) (+) R (5),
When the two identification numbers of each distributed partial data are row number j and column number i, and each distributed partial data is represented as D (j, i), three distributed partial data D (same row number j) j, 0), D (j, 1), D (j, 2) is assigned a row number j, and seven pieces of header information H (0), H (1), H (2), H ( 3), means for generating H (4), H (5), H (6),
Seven pieces of shared information D (0) composed of header information H (j) having the same row number j and distributed partial data D (j, 0), D (j, 1), D (j, 2), Means for distributing D (1), D (2), D (3), D (4), D (5), D (6) individually to the seven storage devices;
A restoring means for restoring the secret information S based on any three pieces of shared information D (j) among the seven pieces of distributed information D (0) to D (6) distributed;
Program to function as.
JP2005310056A 2005-10-25 2005-10-25 Secret sharing apparatus, method and program Active JP4783119B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005310056A JP4783119B2 (en) 2005-10-25 2005-10-25 Secret sharing apparatus, method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005310056A JP4783119B2 (en) 2005-10-25 2005-10-25 Secret sharing apparatus, method and program

Publications (2)

Publication Number Publication Date
JP2007124032A JP2007124032A (en) 2007-05-17
JP4783119B2 true JP4783119B2 (en) 2011-09-28

Family

ID=38147424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005310056A Active JP4783119B2 (en) 2005-10-25 2005-10-25 Secret sharing apparatus, method and program

Country Status (1)

Country Link
JP (1) JP4783119B2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5134281B2 (en) * 2007-04-12 2013-01-30 Kddi株式会社 Distributed information generating apparatus, secret information restoring apparatus, shared information generating method, secret information restoring method, and program
JP5065795B2 (en) * 2007-08-03 2012-11-07 Kddi株式会社 Distributed information generating apparatus, secret information restoring apparatus, shared information generating method, secret information restoring method, and program
WO2009075353A1 (en) * 2007-12-12 2009-06-18 Nec Corporation Distributed information creating device, restoring device, verifying device, and secret information distributing system
JP5063777B2 (en) 2008-03-10 2012-10-31 三菱電機株式会社 Secret information management device, information processing device, and secret information management system
JP4966232B2 (en) * 2008-03-13 2012-07-04 株式会社東芝 Distributed information adding apparatus, method and program
JP2011035618A (en) * 2009-07-31 2011-02-17 Ntt Communications Kk Secret distribution device, secret distribution method and secret dispersion program
JP2011198325A (en) * 2010-03-24 2011-10-06 Hitachi Solutions Ltd Method and system for performing safe bringing-out of file data to outside
JP5669204B2 (en) * 2011-03-17 2015-02-12 Necソリューションイノベータ株式会社 Distributed information management system, distributed information management method, and distributed information management program
US9680639B2 (en) 2011-03-31 2017-06-13 Panasonic Intellectual Property Management Co., Ltd. Secret sharing apparatus and secret sharing method that restores secret data from at least two of generated shared data
JP6008316B2 (en) 2012-08-24 2016-10-19 パナソニックIpマネジメント株式会社 Secret sharing apparatus and secret sharing program
US9946894B2 (en) * 2014-06-27 2018-04-17 Panasonic Intellectual Property Management Co., Ltd. Data processing method and data processing device
JP5889454B1 (en) * 2015-02-23 2016-03-22 日本電信電話株式会社 Distributed value conversion system, distributed value conversion apparatus, distributed value conversion method, and program

Also Published As

Publication number Publication date
JP2007124032A (en) 2007-05-17

Similar Documents

Publication Publication Date Title
JP4783119B2 (en) Secret sharing apparatus, method and program
JP4304215B2 (en) Secret sharing apparatus, method and program
JP2009010531A (en) Security distribution device, method, and program
JP4575283B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD
JP5381543B2 (en) Data processing apparatus, signature processing program, verification program, and signature program
US20080144809A1 (en) Encryption process, encryption device, and computer-readable medium storing encryption program
WO2019114122A1 (en) Encryption method for login information, device, electronic device, and medium
JP2006121689A (en) Method for sharing and generating system key in drm system, and its device
JP2022501971A (en) Methods for key management, user devices, management devices, storage media and computer program products
CN107168998A (en) A kind of database transparent encryption method based on reservation form
JP5198539B2 (en) Storage device, access device and program
JP4302150B2 (en) Data processing apparatus and program
JP4632413B2 (en) Information encryption device, information distribution device, control method therefor, computer program, and computer-readable storage medium
Senthilnathan et al. An enhancing reversible data hiding for secured data using shuffle block key encryption and histogram bit shifting in cloud environment
KR101485460B1 (en) Method of tracing device keys for broadcast encryption
CN110113151B (en) Non-invasive real-time encryption and decryption method for ELF format program
JP2007258852A (en) Data management apparatus, terminal, key generating method, decoding method, and program
JP5784662B2 (en) ENCRYPTED DATA OPERATION SYSTEM, DEVICE, AND PROGRAM
JP6881111B2 (en) Cryptographic data generator, decryption data generator, authenticated cryptosystem with additional data, its method, and program
JP4818279B2 (en) Program processing apparatus, program processing method, and program
US7477742B2 (en) Method and apparatus for controlling contents utilization, and a computer product
JP4853026B2 (en) Information processing apparatus and program
JP6830867B2 (en) Authenticated encryption system with additional data, decryption device, authenticated encryption method with additional data, and program
JP4612501B2 (en) Block encryption device, block decryption device, method and program thereof
JP2006099697A (en) Method and device for protecting information program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081003

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110602

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: 20110614

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110708

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140715

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4783119

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350