JP4783119B2 - Secret sharing apparatus, method and program - Google Patents
Secret sharing apparatus, method and program Download PDFInfo
- 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
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段落参照)、完全秘密分散ではない不都合がある。ここで、完全秘密分散とは、分散データの取り方によらずに、しきい値を境にした秘密情報の復元特性を有することを意味する。
以上説明したように、シャミアによる(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
これら合計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
ここで、クライアント装置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
具体的にはクライアント装置10は、保存部11、入力部12、分散部分データ生成部13、ハッシュ値生成部14、元データ復元部15、ハッシュ値検証部16、制御部17、出力部18及び通信部19が互いにバスを介して接続されている。
Specifically, the
保存部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
入力部12は、キーボード又はマウス等の通常の入力デバイスであり、操作者の操作により、分散処理又は復号処理の開始等の命令や、秘密情報S等の情報をクライアント装置10内に入力する機能をもっている。
The
分散部分データ生成部13は、制御部17により制御され、保存部11に一時的に記憶された秘密情報Sに基づいて、図2に一例(n=5の例)を示すように、n(n−1)個の分散部分データD(j,i)を生成する機能をもっている。具体的には、分散部分データ生成部12は、以下の各機能(f12−1)〜(f12−4)をもっている。
The distributed partial
(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
(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
元データ復元部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
(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
ここで、ヘッダ情報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
(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
(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
出力部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
一方、各保管サーバ装置20〜n0について説明する。
各保管サーバ装置20〜n0は、記憶する分散情報D(1)〜D(n-1)が互いに異なる他は互いに同一構成のため、ここでは保管サーバ装置20を代表例に挙げて説明する。
On the other hand, each of the
Each of the
保管サーバ装置20は、保存部21及び通信部22を備えている。
The
保存部21は、通信部22から読出/書込可能なハードウェア資源としての記憶装置であり、クライアント装置10から配布された分散情報D(1)が記憶される。
The
通信部22は、クライアント装置10から配布された分散情報D(1)を保存部21に書き込む機能と、クライアント装置10から要求された分散情報D(1)を保存部21から読み出してこの分散情報D(1)をクライアント装置10に返信する機能とをもっている。
The
なお、通信部22は、分散情報D(1)の漏洩防止の観点から、クライアント装置10の認証機能を有してもよく、この場合、クライアント装置10の認証の後、分散情報D(1)を返信する構成として設けられる。
Note that the
ここで、各保管サーバ装置20,30,…,n0は、他のクライアント装置や、USB(Universal Serial Bus)メモリ、携帯電話、PDA(Personal Digital Assistants:携帯情報端末)に置き換え可能であり、あるいは外付けHDD(Hard Disc Drive: 固定磁気ディスク装置)などのように、コンピュータ以外の他の装置と置き換えることも可能である。
Here, each
なお、各保管装置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
次に、以上のように構成された秘密分散システムの動作を説明する。ここでは(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
このとき、クライアント装置10においては、図4に示すように、操作者(以下、ディーラーともいう)の操作により、分散処理の開始命令が入力部12から入力されたとする(ST1)。
At this time, in the
クライアント装置10は、この開始命令に基づいて、分散処理を開始する。制御部17は、秘密情報Sのビット長をm、分散数をn、処理単位ビットをaと定める(ST1)。なお、秘密情報Sのビット長mは、保存部11内の秘密情報Sから分かる。処理単位ビットaは、分散データ生成部13の仕様により予め定まっている。
The
続いて、制御部17は、ビット長mの秘密情報Sをn−1個に分割した際のビット長(m/(n-1))が処理単位ビットaを超える(m/(n-1)>a)か否かを判定し(ST2)、処理単位ビットaを超える場合、nより大きい素数n’を探索し、得られた素数n’を分散数nと置き換えて(ST3)、ステップST1に戻る。
Subsequently, the
一方、ステップST2の判定の結果が否の場合、制御部17は、秘密情報S及び分散数nを分散部分データ生成部13に入力する。
On the other hand, if the result of the determination in step ST <b> 2 is negative, the
分散部分データ生成部13は、秘密情報S及び分散数nに基づいて、ビット長mの秘密情報Sをn−1個に分割した際のビット長(m/(n-1))が処理単位ビットaと等しいか(m/(n-1)=a)か否かを判定する(ST4)。
The distributed partial
ステップ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
なお、パディングは、必ずしも末尾の分割秘密データ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
また、分散部分データ生成部13は、各分割秘密データのサイズと同一サイズのゼロ値を作成し、作成結果に行番号j=0を割り当てて分割秘密データK(0)を生成する。
In addition, the distributed partial
さらに、分散部分データ生成部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
次に、分散部分データ生成部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
しかる後、分散部分データ生成部13は、得られた分散部分データn(n−1)個の分散部分データD(j,i)を制御部17に出力する。
Thereafter, the distributed partial
制御部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
制御部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
以上により、秘密情報の分散処理が完了する。 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
クライアント装置10は、この開始命令に基づいて、復元処理を開始する。制御部17は、n台の装置10,…,n0に配布したn個の分散情報D(0)〜D(n-1)のうち、任意の2個の分散情報D(i),D(j)を収集し(ST11)、得られた分散情報D(i),D(j)を元データ復元部15に入力する。
The
元データ復元部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
制御部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
上述したように本実施形態によれば、排他的論理和を用いた(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
これに加え、本実施形態によれば、分散部分データを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
(第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
次に、第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
ここで、制御部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
次に、以上のように構成された秘密分散システムの動作を説明する。 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
制御部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
例えば、制御部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
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
制御部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
しかる後、制御部17は、この生成したt個の分散情報D(n),…,D(n-1+t)をn個の保存部11,…,n0とは異なるt個の記憶装置に個別に配布する(ST27)。この例では、t=1個の分散情報D(4)が1個の記憶装置に配布される。
Thereafter, the
これにより、(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
ここで、分散部分データ生成部13aは、具体的には、以下の機能(f13a−1)〜(f13a−4)をもっている。
Here, specifically, the distributed partial
(f13a−1) 制御部17aから受けた秘密情報Sを2個に分割すると共に、分割結果に0から1までの識別番号を割り当てることにより、互いに同一サイズの2個の分割秘密データK(0),K(1)を生成する機能。
(F13a-1) The secret information S received from the
(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
元データ復元部15aは、配布された5個の分散情報D(0)〜D(4)のうち、任意の3個の分散情報D(j)が制御部17aから入力されると、この3個の分散情報D(j)に基づいて、秘密情報Sを復元する復元機能をもっている。
When the original
制御部17aは、入力部12から入力される命令に基づいて、後述する図12及び図14のフローチャートに基づいて、各部11,13a,14,15a,16,18,19を制御する機能をもっている。また、制御部17aは、例えば、以下の機能(17a−1)〜(17a−2)をもっている。
The
(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
次に、以上のように構成された秘密分散システムの動作を説明する。 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
このとき、クライアント装置10においては、操作者の操作により、分散処理の開始命令が入力部12から入力されると、分散処理を開始する。
At this time, in the
制御部17aは、保存部11内の秘密情報Sを分散部分データ生成部13aに入力する。
The
分散部分データ生成部13aは、図12に示すように、秘密情報Sを2個に分割すると共に、分割結果に0から1までの識別番号を割り当てることにより、互いに同一サイズの2個の分割秘密データK(0),K(1)を生成する(ST31)。
As shown in FIG. 12, the distributed partial
ここで、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
分散部分データ生成部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
しかる後、分散部分データ生成部13aは、これら分散部分データを制御部17aに送出する。
Thereafter, the distributed partial
制御部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
次に、制御部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
しかる後、制御部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
以上により、秘密情報の分散処理が完了する。 Thus, the secret information distribution process is completed.
(復元処理の動作)
クライアント装置10においては、操作者の操作により、復元処理の開始命令が入力部12から入力されたとする。
(Restore processing operation)
In the
クライアント装置10は、この開始命令に基づいて、復元処理を開始する。制御部17aは、図14に示すように、5台の装置10,…,50に配布した5個の分散情報D(0)〜D(4)のうち、任意の3個の分散情報を収集し(ST35)、得られた分散情報を元データ復元部15aに入力する。この例では、5個の分散情報のうち、D(0)、D(2)、D(4)を用いることとする。
The
元データ復元部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
元データ復元部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
例えば、図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
上述したように本実施形態によれば、排他的論理和を用いた(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
ここで、分散部分データ生成部13bは、具体的には、以下の機能(f13b−1)〜(f13b−4)をもっている。
Here, the distributed partial
(f13b−1) 制御部17bから受けた秘密情報Sを3個に分割すると共に、分割結果に0から2までの識別番号を割り当てることにより、互いに同一サイズの3個の分割秘密データK(0),K(1),K(1)を生成する機能。
(F13b-1) The secret information S received from the
(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
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
元データ復元部15bは、配布された7個の分散情報D(0)〜D(6)のうち、任意の3個の分散情報D(j)が制御部17aから入力されると、この3個の分散情報D(j)に基づいて、秘密情報Sを復元する復元機能をもっている。
When the original
制御部17bは、入力部12から入力される命令に基づいて、後述する図17及び図19のフローチャートに基づいて、各部11,13b,14,15b,16,18,19を制御する機能をもっている。また、制御部17bは、例えば、以下の機能(17b−1)〜(17b−2)をもっている。
The
(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
次に、以上のように構成された秘密分散システムの動作を説明する。 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
このとき、クライアント装置10においては、操作者の操作により、分散処理の開始命令が入力部12から入力されると、分散処理を開始する。
At this time, in the
制御部17bは、保存部11内の秘密情報Sを分散部分データ生成部13bに入力する。
The
分散部分データ生成部13bは、図17に示すように、秘密情報Sを3個に分割すると共に、分割結果に0から2までの識別番号を割り当てることにより、互いに同一サイズの3個の分割秘密データK(0),K(1),K(2)を生成する(ST41)。
As shown in FIG. 17, the distributed partial
ここで、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
分散部分データ生成部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
しかる後、分散部分データ生成部13bは、これら分散部分データを制御部17bに送出する。
Thereafter, the distributed partial
制御部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
次に、制御部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
しかる後、制御部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
以上により、秘密情報の分散処理が完了する。 Thus, the secret information distribution process is completed.
(復元処理の動作)
クライアント装置10においては、操作者の操作により、復元処理の開始命令が入力部12から入力されたとする。
(Restore processing operation)
In the
クライアント装置10は、この開始命令に基づいて、復元処理を開始する。制御部17bは、図19に示すように、5台の装置10,…,70に配布した7個の分散情報D(0)〜D(6)のうち、任意の3個の分散情報を収集し(ST45)、得られた分散情報を元データ復元部15bに入力する。この例では、7個の分散情報のうち、D(0)、D(2)、D(6)を用いることとする。
The
元データ復元部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
元データ復元部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
例えば、図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
上述したように本実施形態によれば、排他的論理和を用いた(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.
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
Claims (7)
前記分散情報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:
前記分散情報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:
前記秘密分散装置のコンピュータを、
前記分散情報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.
前記秘密情報復元手段は、
前記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.
前記秘密分散装置のコンピュータを、
前記分散情報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.
前記秘密分散装置のコンピュータを、
前記分散情報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.
前記秘密分散装置のコンピュータを、
前記分散情報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.
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)
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 |
-
2005
- 2005-10-25 JP JP2005310056A patent/JP4783119B2/en active Active
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 |