JP5683503B2 - Data distribution device, distributed data conversion device, and data restoration device - Google Patents
Data distribution device, distributed data conversion device, and data restoration device Download PDFInfo
- Publication number
- JP5683503B2 JP5683503B2 JP2012001346A JP2012001346A JP5683503B2 JP 5683503 B2 JP5683503 B2 JP 5683503B2 JP 2012001346 A JP2012001346 A JP 2012001346A JP 2012001346 A JP2012001346 A JP 2012001346A JP 5683503 B2 JP5683503 B2 JP 5683503B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- values
- data
- unit
- variance
- 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 technique.
秘密分散は、データを複数の分散値に変換し、一定個数以上の分散値を用いれば元のデータを復元でき、一定個数未満の分散値からは元のデータを一切復元できなくする技術である。分散値の総数をN、復元に必要な分散値の最小数をK(≦N)としたとき、N, K の値に制限がない方式とある方式とがある。秘密分散の単純な方法として、加法的秘密分散(Additive Secret Sharing)がある。これはMを2以上の整数として、データa=a0+a1+…+aM-1について、各分散値をA={a0,a1,…,aM-1}の部分集合とする。ただしa,a0,a1,…,aM-1は加法群の要素、特にa0,a1,…,aM-2は当該加法群からランダムに選択された値である。 Secret sharing is a technology that converts data into a plurality of distributed values and restores the original data by using more than a certain number of distributed values, and makes it impossible to restore the original data from less than a certain number of distributed values. . Assuming that the total number of variance values is N and the minimum number of variance values required for restoration is K (≦ N), there are some schemes in which the values of N and K are not limited. As a simple method of secret sharing, there is additive secret sharing. This is a subset of A = {a 0 , a 1 , ..., a M-1 } for data a = a 0 + a 1 + ... + a M-1 where M is an integer greater than or equal to 2 And However, a, a 0 , a 1 ,..., A M-1 are elements of the additive group, particularly a 0 , a 1 ,..., A M-2 are values randomly selected from the additive group.
また、秘密分散を要素技術とした秘密計算(マルチパーティ計算)方式も提案されている(例えば、非特許文献1,2等参照)。このような秘密計算方式では、各主体が保有するデータの分散値を他の主体に送り、当該分散値を他の主体に明かすことなく意中の計算を実行させる。計算を行った各主体からは計算結果の分散値が得られる。このような分散値がK個以上得られれば計算結果を復元でき、得られなければ計算結果を復元できない。
A secret calculation (multi-party calculation) method using secret sharing as an elemental technology has also been proposed (see, for example, Non-Patent
例えば、非特許文献1の秘密計算方式では、秘密分散方式として加法的秘密分散方式が用いられ、aの分散値をSi(a)=ai(i=0,1,…,N-1)とし、M=N=Kとして秘密計算が行われる。この方式では、明らかにN個の分散値Si(a)からaを復元でき、かつN-1個の分散値からはaを一切復元できない。非特許文献2の秘密計算方式では、秘密分散方式として加法的秘密分散方式が用いられ、aの分散値をSi(a)={ai, ai+1 mod 3} (i=0,1,…,N-1)とし、M=N=3, K=2として秘密計算が行われる。この方式では、明らかに任意の2個の分散値Si(a)からaを復元でき、かつ1個の分散値からはaを一切復元できない。
For example, in the secret calculation method of
非特許文献1や2に記載の加法的秘密分散では、分散値の総データ量がそれぞれ元データのN倍、6倍となっている。復元に必要な分散値の総データ量はそれぞれ元データのN倍、3倍となっている。分散値のデータ量の増加は通信時間や保存データの増大につながるため、できるだけ分散値のデータ量を抑えることが望ましい。このような課題は加法的秘密分散のみならず、その他の秘密分散方式にも共通するものである。
本発明はこのような点に鑑みてなされたものであり、秘密分散方式の分散値のデータ量を抑えることを目的とする。
In the additive secret sharing described in
The present invention has been made in view of such a point, and an object thereof is to suppress the data amount of the shared value of the secret sharing scheme.
M, Nが2以上の整数であり、Ni (i=0,...,N-1)が1以上M-1以下の整数であり、Gが或る集合であり、P(x)がxに対応する値を集合Gの要素に移す写像であり、y=f(y(0),...,y(M-1))が集合Gの要素であるM個の値y(0),...,y(M-1)からなる部分集合(y(0),...,y(M-1))を集合Gの要素である値yに移す写像であり、g(y, y(0),...,y(M-2))がy=f(y(0),...,y(M-1))を満たす集合Gの要素であるM個のy, y(0),...,y(M-2)からなる部分集合(y, y(0),...,y(M-2))を値y(M-1)に移す写像であるとする。 M and N are integers greater than or equal to 2, Ni (i = 0, ..., N-1) is an integer greater than or equal to 1 and less than or equal to M-1, G is a set, and P (x) Is a mapping that maps values corresponding to x to elements of the set G, and y = f (y (0), ..., y (M-1)) are M values y ( 0), ..., y (M-1) is a mapping that transfers a subset (y (0), ..., y (M-1)) to a value y that is an element of set G, and g M (y, y (0), ..., y (M-2)) are elements of the set G satisfying y = f (y (0), ..., y (M-1)) A subset (y, y (0), ..., y (M-2)) consisting of y, y (0), ..., y (M-2) Suppose it is a mapping to be transferred.
データ分散時には、M-1個の値v(m) (m=0,...,M-2)を選択し、M-1個の値a(m)=P(v(m)) (m=0,...,M-2)を得、集合Gの要素である値αに対して値a(M-1)=g(α, a(0),...,a(M-2))を得、値αの分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1)) (i=0,...,N-1)を得る。ただし、集合A={a(0),...,a(M-1)}の部分集合がSi(α)={a(i,0),...,a(i,Ni-1)} (i=0,...,N-1)であり、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応するv(i, ni)がP-1(a(i, ni))であり、a(i, qi)=a(M-1)である(i, qi) (qi∈{0,...,Ni-1})に対応するv(i, qi)がa(i, qi)である。 When distributing data, select M-1 values v (m) (m = 0, ..., M-2) and M-1 values a (m) = P (v (m)) ( m = 0, ..., M-2) and the value a (M-1) = g (α, a (0), ..., a (M -2)), the variance value T i (α) = (v (i, 0), v (i, 1), ..., v (i, N i -1)) (i = Get 0, ..., N-1). However, a subset of the set A = {a (0), ..., a (M-1)} is S i (α) = {a (i, 0), ..., a (i, N i -1)} (i = 0, ..., a n-1), which is a (i, n i) ≠ a (M-1) (i, n i) (n i ∈ {0 ,. .., N i -1}) is V (i, n i ) is P -1 (a (i, n i )), and a (i, q i ) = a (M-1) V (i, q i ) corresponding to a certain (i, q i ) (q i ∈ {0, ..., N i -1}) is a (i, q i ).
データ復元時には、分散値Ti(α) (i=0,...,N-1)の少なくとも一部を用いてM-1個の値a(m)=P(v(m)) (m=0,...,M-2)を得、値a(m) (m=0,...,M-2)と分散値Ti(α)の何れかが含む値a(M-1)とを用いてα=f(a(0),...,a(M-1))を得る。
When data restoration, the
本発明では、秘密分散方式の分散値のデータ量を抑えることができる。 In the present invention, it is possible to suppress the data amount of the shared value of the secret sharing scheme.
以下、図面を参照して本発明の実施形態を説明する。
〔第1実施形態〕
まず、第1実施形態の概要を説明する。
第1実施形態では、M, Nが2以上の整数であり、Ni(i=0,...,N-1)が1以上M-1以下の整数であり、Gが或る集合であり、P(x)がxに対応する値を集合Gの要素に移す写像であり、y=f(y(0),...,y(M-1))が集合Gの要素であるM個の値y(0),...,y(M-1)からなる部分集合(y(0),...,y(M-1))を集合Gの要素である値yに移す写像であり、g(y, y(0),...,y(M-2))がy=f(y(0),...,y(M-1))を満たす集合Gの要素であるM個のy, y(0),...,y(M-2)からなる部分集合(y, y(0),...,y(M-2))を値y(M-1)に移す写像である。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
First, the outline of the first embodiment will be described.
In the first embodiment, M, N is an integer of 2 or more, N i (i = 0, ..., N-1) is 1 or more M-1 an integer, G is a certain set Yes, P (x) is a mapping that moves the value corresponding to x to an element of set G, and y = f (y (0), ..., y (M-1)) is an element of set G A subset (y (0), ..., y (M-1)) of M values y (0), ..., y (M-1) is changed to a value y that is an element of the set G. G (y, y (0), ..., y (M-2)) satisfying y = f (y (0), ..., y (M-1)) A subset (y, y (0), ..., y (M-2)) consisting of M elements y, y (0), ..., y (M-2) This is the map to be transferred to (M-1).
集合Gは演算が定義された集合であり、集合Gの具体例は群(例えば、加法群や乗法群など)や体である。例えば、任意の正整数μを法とした剰余類の代表元からなる加法群{0,1,...,μ-1}を集合Gとすることができる。正整数μの一例はμ=232である。写像P(x)は、入力された「xに対応する値」に対して集合Gの要素を出力するものである。同一の「xに対応する値」には同一の「P(x)」が対応する。すなわち、写像P(x)は入力が等しければ出力も等しくなる、確定的な関数である。「xに対応する値」と「P(x)」とは一対一で対応してもよいし、しなくてもよい。「xに対応する値」は、値xそのものであってもよいし、xとその他の値との組み合わせ値(例えば、rとxとに対応する値z(r, x))であってもよい。写像P(x)の例はxをシードとして集合Gの要素を返す擬似乱数生成関数である。また例えば、xを秘密鍵として固定の平文に対して集合Gに属する暗号文を出力する共通鍵暗号関数をP(x)として用いることができる。写像y=f(y(0),...,y(M-1))及びg(y, y(0),...,y(M-2))の具体例は以下の通りである。例えば集合Gが加法群なのであれば、y=y(0)+...+y(M-1)∈G,y=-y(0)-...-y(M-1)∈G,y=y(0)-y(1)+y(2)-...+y(M-1)∈Gなどを写像y=f(y(0),...,y(M-1))とすることができる。例えば、集合Gがμを法とした剰余類の代表元からなる加法群なのであれば、例えばy=y(0)+...+y(M-1) (mod μ)などを写像y=f(y(0),...,y(M-1))とすることができる。集合Gが乗法群なのであれば、例えばy=y(0)・...・y(M-1)∈G,y={y(0)}-1・...・y{(M-1)}-1∈G,y=y(0)・{y(1)}-1・y(2)・{y(3)}-1・...・y(M-1)などを写像y=f(y(0),...,y(M-1))とすることができる。写像g(y, y(0),...,y(M-2))は写像y=f(y(0),...,y(M-1))に対して上記の関係を満たす。例えば、写像y=f(y(0),...,y(M-1))がy=y(0)+...+y(M-1) (mod μ)である場合、写像g(y, y(0),...,y(M-2))はy(M-1)=y-y(0)-y(1)...-y(M-2) (mod μ)である。「写像」は、関数であってもよいし、アルゴリズムであってもよい。また、M≦Nであってもよいし、M≧Nであってもよい。 The set G is a set in which operations are defined, and specific examples of the set G are groups (for example, additive groups and multiplicative groups) and fields. For example, the set G can be an additive group {0, 1,..., Μ−1} consisting of a representative element of a residue class modulo an arbitrary positive integer μ. An example of a positive integer mu are μ = 2 32. The mapping P (x) outputs elements of the set G with respect to the input “value corresponding to x”. The same “P (x)” corresponds to the same “value corresponding to x”. That is, the map P (x) is a deterministic function in which the outputs are equal if the inputs are equal. “Value corresponding to x” and “P (x)” may or may not correspond one-on-one. The “value corresponding to x” may be the value x itself or a combination value of x and other values (for example, a value z (r, x) corresponding to r and x). Good. An example of the mapping P (x) is a pseudorandom number generation function that returns elements of the set G using x as a seed. Also, for example, a common key encryption function that outputs a ciphertext belonging to the set G for a fixed plaintext with x as a secret key can be used as P (x). Specific examples of the mapping y = f (y (0), ..., y (M-1)) and g (y, y (0), ..., y (M-2)) are as follows: is there. For example, if the set G is an additive group, y = y (0) + ... + y (M-1) ∈G, y = -y (0) -...- y (M-1) ∈G , Y = y (0) -y (1) + y (2) -... + y (M-1) ∈G and so on map y = f (y (0), ..., y (M- 1)). For example, if the set G is an additive group consisting of representatives of residue classes modulo μ, for example, y = y (0) + ... + y (M-1) (mod μ) f (y (0), ..., y (M-1)). If the set G is a multiplicative group, for example, y = y (0) ···· y (M-1) ∈G, y = {y (0)} -1 ···· y {(M- 1)} -1 ∈G, y = y (0) ・ {y (1)} -1・ y (2) ・ {y (3)} -1 ...... y (M-1) etc. The map y = f (y (0), ..., y (M-1)). The map g (y, y (0), ..., y (M-2)) has the above relationship to the map y = f (y (0), ..., y (M-1)) Fulfill. For example, if the map y = f (y (0), ..., y (M-1)) is y = y (0) + ... + y (M-1) (mod μ), the map g (y, y (0), ..., y (M-2)) is y (M-1) = yy (0) -y (1) ...- y (M-2) (mod μ ). The “mapping” may be a function or an algorithm. Further, M ≦ N or M ≧ N may be satisfied.
第1実施形態の秘密分散システムは、データ分散装置とデータ復元装置とN個の分散データ変換装置とを有する。
本形態のデータ分散装置は、M-1個の値v(m) (m=0,...,M-2)を選択し、M-1個の値a(m)=P(v(m)) (m=0,...,M-2)を得、集合Gの要素である値αに対して値a(M-1)=g(α, a(0),...,a(M-2))を得、値αの分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1)) (i=0,...,N-1)を得る。ただし、集合A={a(0),...,a(M-1)}の部分集合がSi(α)={a(i,0),...,a(i,Ni-1)} (i=0,...,N-1)であり、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応するv(i, ni)がP-1(a(i, ni))であり、a(i, qi)=a(M-1)である(i, qi) (qi∈{0,...,Ni-1})に対応するv(i, qi)がa(i, qi)である。データ分散装置で得られたN個の分散値Ti(α) (i=0,...,N-1)は、例えばN個の分散データ変換装置のそれぞれに提供される。
The secret sharing system according to the first embodiment includes a data distribution device, a data restoration device, and N distributed data conversion devices.
The data distribution apparatus of this embodiment selects M-1 values v (m) (m = 0, ..., M-2) and M-1 values a (m) = P (v ( m)) (m = 0, ..., M-2) and the value a (M-1) = g (α, a (0), ... , a (M-2)), and the variance value T i (α) = (v (i, 0), v (i, 1), ..., v (i, N i -1) ) Get (i = 0, ..., N-1). However, a subset of the set A = {a (0), ..., a (M-1)} is S i (α) = {a (i, 0), ..., a (i, N i -1)} (i = 0, ..., a n-1), which is a (i, n i) ≠ a (M-1) (i, n i) (n i ∈ {0 ,. .., N i -1}) is V (i, n i ) is P -1 (a (i, n i )), and a (i, q i ) = a (M-1) V (i, q i ) corresponding to a certain (i, q i ) (q i ∈ {0, ..., N i -1}) is a (i, q i ). N distributed values T i (α) (i = 0,..., N−1) obtained by the data distribution apparatus are provided to, for example, each of the N distributed data conversion apparatuses.
本形態のデータ復元装置は、N個の分散値Ti(α) (i=0,...,N-1)の少なくとも一部を用いてM-1個の値a(m)=P(v(m)) (m=0,...,M-2)を得、得られた値a(m) (m=0,...,M-2)と上記分散値Ti(α)の何れかが含む値a(M-1)とを用いてα=f(a(0),...,a(M-1))を得る。 The data restoration device according to the present embodiment uses M−1 values a (m) = P using at least a part of N dispersion values T i (α) (i = 0,..., N−1). (v (m)) (m = 0, ..., M-2) is obtained, and the obtained value a (m) (m = 0, ..., M-2) and the variance T i ( α = f (a (0), ..., a (M-1)) is obtained using the value a (M-1) included in any of α).
本形態の分散データ変換装置のそれぞれは、自らに提供された分散値Ti(α)を用い、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応するv(i, ni)∈Ti(α)について値a(i, ni)=P(v(i, ni))を得、値a(i, ni)とv(i, qi)=a(M-1) (qi∈{0,...,Ni-1}, ni≠qi)であるa(i, qi)=v(i, qi)∈Ti(α)との少なくとも何れかを含むSi(α)={a(i,0),...,a(i,Ni-1)}を変換分散値として得ることもできる。このように得られる変換分散値Si(α)は、秘密計算の入力値として用いられる。例えば、複数の分散データ変換装置120−iで得られた変換分散値Si(α)に対してそれぞれ同一の秘密計算を行って得られる各結果は、αに演算を施して得られる演算結果の秘密分散値となる。秘密計算の具体例は、非特許文献1,2等に開示された線形演算などである。秘密計算は単項演算であってもよいし、多項演算であってもよい。
Each of the distributed data conversion apparatuses of the present embodiment uses the distributed value T i (α) provided to itself, and a (i, n i ) ≠ a (M−1) (i, n i ) (n the value a (i, n i ) = P (v (i, n i ) for v (i, n i ) ∈T i (α) corresponding to i ∈ {0, ..., N i -1}) ) And values a (i, n i ) and v (i, q i ) = a (M-1) (q i ∈ {0, ..., N i -1}, n i ≠ q i ) A (i, q i ) = v (i, q i ) ∈T i (α) and S i (α) = (a (i, 0), ..., a ( i, N i -1)} can also be obtained as the transformation variance value. The transform variance value S i (α) thus obtained is used as an input value for secret calculation. For example, each result obtained by performing the same secret calculation on the transformed variance value S i (α) obtained by the plurality of distributed data transformation devices 120-i is the computation result obtained by computing α. Secret sharing value. A specific example of the secret calculation is a linear calculation disclosed in
本形態において好ましくは、M-1個の値v(m) (m=0,...,M-2)のデータ量の合計値は、M-1個の集合Gの要素のデータ量の合計値よりも小さい。より好ましくは、値v(m)それぞれのデータ量は集合Gの要素(1個の要素)のデータ量よりも小さい。さらにより好ましくは、値v(m)それぞれのデータ量は集合Gの要素のデータ量に対して無視できる程度の大きさである(例えば、(v(m)それぞれのデータ量)/(集合Gの要素のデータ量)≦80/106)。 Preferably, in this embodiment, the total value of the data amount of M−1 values v (m) (m = 0,..., M−2) is the data amount of the elements of M−1 sets G. Less than the total value. More preferably, the data amount of each value v (m) is smaller than the data amount of the elements (one element) of the set G. Even more preferably, the data amount of each value v (m) is negligible with respect to the data amount of the elements of the set G (for example, (data amount of each of v (m)) / (set G The amount of data in the element) ≦ 80/10 6 ).
<構成>
図1に例示するように、第1実施形態の秘密分散システム1は、データ分散装置110、N個の分散データ変換装置120−i(i=0,...,N-1)、及びデータ復元装置130を有する。データ分散装置110は、ネットワークや可搬型記録媒体などを経由して、N個の分散データ変換装置120−i(i=0,...,N-1)に対して情報の提供が可能である。N個の分散データ変換装置120−i(i=0,...,N-1)のそれぞれは、ネットワークや可搬型記録媒体などを経由して、データ復元装置130に対して情報の提供が可能である。
<Configuration>
As illustrated in FIG. 1, the
図2Aに例示するように、本形態のデータ分散装置110は、入力部111、出力部112、メモリ113、制御部114、選択部115、変換部116、計算部117、及び分散値生成部118を有する。本形態のデータ分散装置110は、例えば、CPU(central processing unit),RAM(random-access memory)等を有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ分散装置110は、制御部114の制御のもとで各処理を実行する。入力部111に入力されたデータや各処理で得られたデータはメモリ113に格納され、メモリ113に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 2A, the data distribution apparatus 110 according to the present exemplary embodiment includes an
図2Bに例示するように、本形態のデータ復元装置130は、入力部131、出力部132、メモリ133、制御部134、変換部135、及び復元部136を有する。本形態のデータ復元装置130は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ復元装置130は、制御部134の制御のもとで各処理を実行する。入力部131に入力されたデータや各処理で得られたデータはメモリ133に格納され、メモリ133に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 2B, the data restoration device 130 according to the present exemplary embodiment includes an
図3に例示するように、本形態の分散データ変換装置120−i (i=0,...,N-1)は、入力部121−i、出力部122−i、メモリ123a−i、記憶部123b−i,123c−i、制御部124−i、変換部125−i、変換分散値生成部126−i、及び秘密計算部127−iを有する。本形態の分散データ変換装置120−iは、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態の分散データ変換装置120−iは、制御部124−iの制御のもとで各処理を実行する。入力部121−iに入力されたデータや各処理で得られたデータはメモリ123a−iや記憶部123b−iに格納され、メモリ123a−iや記憶部123b−iに格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 3, the distributed data conversion apparatus 120-i (i = 0,..., N−1) of this embodiment includes an input unit 121-i, an output unit 122-i, a memory 123 a-i, The
<データ分散処理>
図4に例示するように、データ分散装置110(図2A)の入力部111に秘密分散される値α∈Gが入力される(ステップS111)。値αの例は、動画ファイル、音声ファイル、テキストファイル、表ファイルなどである。値αのデータ量、すなわち集合Gの要素のデータ量は、例えば1メガバイト以上である。
<Data distribution processing>
As illustrated in FIG. 4, the value αεG that is secretly shared is input to the
選択部115は、M-1個の値v(m) (m=0,...,M-2)を選択し、値v(m) (m=0,...,M-2)を出力する(ステップS112)。選択部115は、逐一、ランダムにM-1個の値v(m) (m=0,...,M-2)を選択してもよいし、事前に生成されメモリに格納されている複数個の値から所定の規則に従ってM-1個の値v(m) (m=0,...,M-2)を選択してもよい。例えば、選択される値v(m) (m=0,...,M-2)それぞれのデータ量は集合Gの要素(1個の要素)のデータ量よりも十分小さいことが望ましい。安全性を考慮すると、値v(m)は、値v(m)から生成される値a(m)やP(x)から値v(m)を特定することが困難となる程度の値(全数探索による攻撃や現在の計算機の性能を考慮すれば、値v(m)は80ビット程度かそれ以上の乱数)とするのが望ましい。
The
値v(m) (m=0,...,M-2)は変換部116に入力される。変換部116は、入力された値v(m) (m=0,...,M-2)からM-1個の値a(m)=P(v(m)) (m=0,...,M-2)を計算し、当該M-1個の値a(m) (m=0,...,M-2)を出力する(ステップS113)。P(x)が擬似乱数生成関数の場合、値a(m)は擬似乱数となる。
The value v (m) (m = 0,..., M−2) is input to the
入力部111に入力された値αと変換部116から出力されたM-1個の値a(m) (m=0,...,M-2)とは計算部117に入力される。計算部117は、これらの値α,a(m) (m=0,...,M-2)から値a(M-1)=g(α, a(0),...,a(M-2))∈Gを計算し、当該値a(M-1)を出力する(ステップS114)。例えば、写像g(y, y(0),...,y(M-2))がy(M-1)=y-y(0)-y(1)...-y(M-2) (mod μ)である場合、計算部117はa(M-1)=α-a(0)-a(1)...-a(M-2) (mod μ)を計算し、それによって得られた値a(M-1)を出力する。
The value α input to the
選択部115から出力されたM-1個の値v(m) (m=0,...,M-2)と計算部117から出力された値a(M-1)は、分散値生成部118に入力される。分散値生成部118は、これらの値a(M-1),v(m) (m=0,...,M-2)を用い、値αのN個の分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1)) (i=0,...,N-1)を生成して出力する。ただし、集合A={a(0),...,a(M-1)}の部分集合がSi(α)={a(i,0),...,a(i,Ni-1)} (i=0,...,N-1)であり、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応するv(i, ni)がP-1(a(i, ni))であり、a(i, qi)=a(M-1)である(i, qi) (qi∈{0,...,Ni-1})に対応するv(i, qi)がa(i, qi)である。P-1(X)(X∈G)はP(x)の逆写像を表す(ステップS115)。
一例を挙げると、分散値生成部118は、M=N,Ni=N-1とし、集合Aから値a(i)を除いて得られる部分集合A\a(i)をSi(α) (i=0,...,N-1)とし、分散値Ti(α) (i=0,...,N-1)を以下のように生成する。
T0(α)=(v(1), v(2),..., v(M-2), a(M-1)),
T1(α)=(v(0), v(2),..., v(M-2), a(M-1)),...,
TM-2(α)=(v(0), v(1),..., v(M-3), a(M-1)),
TM-1(α)=(v(0), v(1),..., v(M-3), v(M-2)) ...(1)
The M−1 values v (m) (m = 0,..., M−2) output from the
For example, the variance
T 0 (α) = (v (1), v (2), ..., v (M-2), a (M-1)),
T 1 (α) = (v (0), v (2), ..., v (M-2), a (M-1)), ...,
T M-2 (α) = (v (0), v (1), ..., v (M-3), a (M-1)),
T M-1 (α) = (v (0), v (1), ..., v (M-3), v (M-2)) ... (1)
N個の分散値Ti(α) (i=0,...,N-1)は出力部112に入力され、出力部112はN個の分散値Ti(α) (i=0,...,N-1)を出力する(ステップS116)。出力された分散値Ti(α) (i=0,...,N-1)のそれぞれは、分散データ変換装置120−i(i=0,...,N-1)のそれぞれに提供される。例えば、分散値Ti(α)は、ネットワーク等を経由して、対応する分散データ変換装置120−i(図3)に送信される。分散データ変換装置120−i(i=0,...,N-1)のそれぞれに提供された分散値Ti(α)は入力部121−iに入力され、記憶部123b−iに格納される。
N variance values T i (α) (i = 0,..., N−1) are input to the
<分散データ変換処理/分散値出力処理>
分散データ変換装置120−i(i=0,...,N-1)が実行する分散データ変換処理及び分散値出力処理を説明する。これらの処理は、すべての分散データ変換装置120−i(i=0,...,N-1)で実行されてもよいし、それらのうちK個(K≦N)の分散データ変換装置120−k(k∈{0,...,N-1})のみで実行されてもよい。
図5に例示するように、分散データ変換装置120−i(i=0,...,N-1)のそれぞれが分散値の変換を行わずに分散値を出力する場合、制御部124−iは分散値の変換を行わずに分散値Ti(α)を読み出す旨を記憶部123b−iに指示する(ステップS121−i)。この指示を受けた記憶部123b−iは、格納している分散値Ti(α)を読み出して出力する。分散値Ti(α)は出力部122−iに送られ、出力部122−iは分散値Ti(α)を出力する(ステップS122−i)。出力された分散値Ti(α)はデータ復元装置130に提供される。例えば、分散値Ti(α)は、ネットワーク等を経由してデータ復元装置130に送信される。分散データ変換装置120−i(i=0,...,N-1)が分散値の変換を行わずに分散値を出力する場合には、分散データ変換処理及び分散値出力処理を実行するすべての分散データ変換装置120−i(i=0,...,N-1)が分散値の変換を行わずに分散値を出力する。
<Distributed data conversion processing / distributed value output processing>
A distributed data conversion process and a distributed value output process executed by the distributed data conversion apparatus 120-i (i = 0,..., N-1) will be described. These processes may be executed by all the distributed data converters 120-i (i = 0,..., N-1), or K (K ≦ N) distributed data converters among them. It may be executed only by 120-k (kε {0,..., N−1}).
As illustrated in FIG. 5, when each of the distributed data converters 120-i (i = 0,..., N−1) outputs a distributed value without converting the distributed value, the control unit 124- i instructs the
一方、分散データ変換装置120−i(i=0,...,N-1)のそれぞれが分散値の変換を行う場合、制御部124−iは、分散値の変換を行うために分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1))を読み出す旨を記憶部123b−iに指示する(ステップS121−i)。この指示を受けた記憶部123b−iは分散値Ti(α)を読み出す。
読み出された分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1))を構成する要素のうち、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応する値v(i, ni)∈Ti(α) (ni∈{0,...,Ni-1})は変換部125−iに入力される。読み出された分散値Ti(α)がv(i, qi)=a(i, qi)=a(M-1) ∈Ti(α) (qi∈{0,...,Ni-1}, ni≠qi)である値v(i, qi)を含む場合、当該値v(i, qi)は変換分散値生成部126−iに入力される。
On the other hand, when each of the distributed data converters 120-i (i = 0,..., N-1) performs the conversion of the variance value, the control unit 124-i performs the variance value conversion in order to convert the variance value. The
Of the elements constituting the read dispersion value T i (α) = (v (i, 0), v (i, 1), ..., v (i, N i -1)), a ( i, n i ) ≠ a (M-1), the value v (i, n i ) ∈T corresponding to (i, n i ) (n i ∈ {0, ..., N i -1}) i (α) (n i ε {0,..., N i −1}) is input to the conversion unit 125-i. The read variance T i (α) is v (i, q i ) = a (i, q i ) = a (M-1) ∈ T i (α) (q i ∈ {0, ... , n i -1}, n i ≠ q i) a is the value v (i, if it contains q i), the value v (i, q i) are input to the conversion variance generating unit 126-i.
変換部125−iは、入力された値v(i, ni)から値a(i, ni)=P(v(i, ni))を計算し、当該値a(i, ni)を出力する(ステップS123−i)。 Conversion unit 125-i is input value v (i, n i) from the values a (i, n i) = P (v (i, n i)) is calculated, and the value a (i, n i ) Is output (step S123-i).
変換分散値生成部126−iには、変換部125−iで得られた値a(i, ni) (ni∈{0,...,Ni-1})と、記憶部123b−iから読み出されたv(i, qi)=a(i, qi)=a(M-1) (qi∈{0,...,Ni-1}, ni≠qi)と(存在するのであれば)が入力される。変換分散値生成部126−iは、入力された値からなる変換分散値Si(α)={a(i,0),...,a(i,Ni-1)}を生成し(ステップS124−i)、当該変換分散値Si(α)を記憶部123c−iに格納する(ステップS125−i)。例えば、式(1)の分散値Ti(α)に対応する変換分散値Si(α)は以下のようになる。
S0(α)=(a(1), a(2),..., a(M-2), a(M-1)),
S1(α)=(a(0), a(2),..., a(M-2), a(M-1)),...,
SM-2(α)=(a(0), a(1),..., a(M-3), a(M-1)),
SM-1(α)=(a(0), a(1),..., a(M-3), a(M-2))
The conversion variance value generation unit 126-i includes a value a (i, n i ) (n i ε {0,..., N i −1}) obtained by the conversion unit 125-i, and a
S 0 (α) = (a (1), a (2), ..., a (M-2), a (M-1)),
S 1 (α) = (a (0), a (2), ..., a (M-2), a (M-1)), ...,
S M-2 (α) = (a (0), a (1), ..., a (M-3), a (M-1)),
S M-1 (α) = (a (0), a (1), ..., a (M-3), a (M-2))
秘密計算部127−iは、所定の契機で記憶部123c−iに格納された変換分散値Si(α)={a(i,0),...,a(i,Ni-1)}を読み出し、変換分散値Si(α)を入力とした秘密計算を実行し、その演算結果である分散値Ei={e(i,0),...,e(i,Ni-1)}を出力する。分散値Eiは出力部122−iから出力され、データ復元装置130に提供される。例えば、分散値Eiは、ネットワーク等を経由して、データ復元装置130に送信される。簡単な秘密計算の例は、変換分散値Si(α)={a(i,0),...,a(i,Ni-1)}の加法群Gでのスカラー倍算であり、この場合にはEi=υ・Si(α)、すなわち{e(i,0),...,e(i,Ni-1)}={υ・a(i,0),..., υ・a(i,Ni-1)}となる。ただしυは整数環の元である。
The secret calculation unit 127-i receives the transformation variance value S i (α) = {a (i, 0), ..., a (i, N i −1) stored in the
<データ復元処理>
図6に例示するように、データ復元装置130(図2B)の入力部131に、何れかK個の分散値Tk(α) (k∈{0,...,N-1})、又は、何れかK個の分散値Ek={e(k,0),...,e(k,Nk-1)} (k∈{0,...,N-1})が入力される(ステップS131)。制御部134は、分散値Tk(α)が入力されたか、分散値Ekが入力されたかを判定する(ステップS132)。
<Data restoration processing>
As illustrated in FIG. 6, any K distributed values T k (α) (k∈ {0,..., N−1}) are input to the
ステップS132で、分散値Tk(α)が入力されたと判定された場合、何れかK個の分散値Tk(α) (k∈{0,...,N-1})が変換部135に入力される。変換部135は、K個の分散値Tk(α) (k∈{0,...,N-1})の少なくとも一部を用いてM-1個の値a(m)=P(v(m)) (m=0,...,M-2)を計算し、値a(m) (m=0,...,M-2)を出力する(ステップS133)。例えば、前述の式(1)の分散値T0(α), T1(α)が変換部135に入力された場合、変換部135は、分散値T0(α)が含むv(1), v(2),..., v(M-2)と分散値T1(α)が含むv(0)とを用い、M-1個の値a(m)=P(v(m)) (m=0,...,M-2)を計算する。
復元部136には、M-1個の値a(m)=P(v(m)) (m=0,...,M-2)と、入力部131に入力された分散値Tk(α)の何れかが含む値a(M-1)とが入力される。復元部136は、これらを用いてα=f(a(0),...,a(M-1))を計算し、得られた値αを出力する(ステップS134)。例えば、写像y=f(y(0),...,y(M-1))がy=y(0)+y(1)...+y(M-1) (mod μ)である場合、復元部136はα=a(0)+a(1)+...+a(M-1) (mod μ)を計算し、それによって得られた値αを出力する。値αは出力部132に入力され、そこから出力される(ステップS135)。
When it is determined in step S132 that the variance value T k (α) is input, any K variance values T k (α) (k∈ {0,..., N−1}) 135 is input. The
The restoration unit 136 includes M−1 values a (m) = P (v (m)) (m = 0,..., M−2) and the variance value T k input to the
一方、ステップS132で、分散値Ekが入力されたと判定された場合、K個の分散値Ek(k∈{0,...,N-1})が復元部136に入力される。復元部136は、K個の分散値Ek={e(k,0),...,e(k,Nk-1)} (k∈{0,...,N-1})の要素からなるM個の値e(0),...,e(M-1)を得、ε=f(e (0),...,e(M-1))を計算し、その結果εを出力する(ステップS136)。簡単な例として、復元部136に2個の分散値E0=υ・S0(α)=(υ・a(1), υ・a(2),..., υ・a(M-2), υ・a(M-1))、及びE1=υ・S1(α)=(υ・a (0), υ・a (2),..., υ・a (M-2), a(M-1))が入力された場合、復元部136は、これらからυ・a (0), υ・a(1), υ・a(2),..., υ・a(M-2), υ・a(M-1)を得、ε=f(υ・a (0), υ・a(1), υ・a(2),..., υ・a(M-2), υ・a(M-1))を計算する。結果εは出力部132に入力され、そこから出力される(ステップS137)。
On the other hand, when it is determined in step S132 that the variance value E k is input, K variance values E k (kε {0,..., N−1}) are input to the restoration unit 136. The restoration unit 136 uses K variance values E k = {e (k, 0), ..., e (k, N k -1)} (k∈ {0, ..., N-1}). Obtain M values e (0), ..., e (M-1) consisting of the elements of, and calculate ε = f (e (0), ..., e (M-1)) As a result, ε is output (step S136). As a simple example, the restoration unit 136 has two variance values E 0 = υ · S 0 (α) = (υ · a (1), υ · a (2), ..., υ · a (M− 2), υ ・ a (M-1)), and E 1 = υ ・ S 1 (α) = (υ ・ a (0), υ ・ a (2), ..., υ ・ a (M- 2), a (M-1)) is input, the restoration unit 136 determines that υ · a (0), υ · a (1), υ · a (2), ..., υ · a (M-2), υ ・ a (M-1), ε = f (υ ・ a (0), υ ・ a (1), υ ・ a (2), ..., υ ・ a (M-2), υ · a (M-1)) is calculated. The result ε is input to the
<本形態の特徴>
本形態では従来の秘密分散方式に比べ、分散値のデータ量を大幅に削減することができる。すなわち、本形態の分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1))を構成する要素v(i,0), v(i,1),...,v(i,Ni-1)の少なくとも一部はv(m) (m=0,...,M-2)の何れかである。したがって、集合Gの要素のみからなる従来の分散値に比べて分散値のデータ量を削減できる。分散値のデータ量をどの程度削減できるかは、v(m)のデータ量と集合Gの要素のデータ量との違いに依存する。例えば、M-1個の値v(m) (m=0,...,M-2)のデータ量の合計値がM-1個の集合Gの要素のデータ量の合計値よりも小さいのであれば、本形態の分散値の総データ量は、従来の秘密分散方式の分散値の総データ量よりも小さくなる。例えば、v(m)それぞれのデータ量が集合Gの要素のデータ量よりも小さければ、本形態の方式での分散値の総データ量は、従来の秘密分散方式の分散値の総データ量よりも小さくなる。v(m)それぞれのデータ量が集合Gの要素のデータ量に対して無視できる程度に小さいのであれば、分散値Ti(α)それぞれのデータ量は集合Gの1個の要素のデータ量と同程度となる。
さらに、分散データ変換装置での分散データ変換処理により、データ分散装置で得られた分散値からもとの値αを復元することなく、秘密計算の入力とすることが可能な変換分散値を生成し、秘密計算を実行することもできる。
<Features of this embodiment>
In this embodiment, compared to the conventional secret sharing scheme, the data amount of the distributed value can be greatly reduced. That is, the element v (i, n) that constitutes the variance value T i (α) = (v (i, 0), v (i, 1), ..., v (i, N i -1)) in this embodiment. 0), v (i, 1), ..., v (i, N i -1) is at least part of v (m) (m = 0, ..., M-2) . Therefore, the data amount of the variance value can be reduced as compared with the conventional variance value including only the elements of the set G. How much the data amount of the variance value can be reduced depends on the difference between the data amount of v (m) and the data amount of the elements of the set G. For example, the sum of the data amount of M-1 values v (m) (m = 0, ..., M-2) is smaller than the sum of the data amounts of the elements of M-1 sets G In this case, the total data amount of the distributed value of this embodiment is smaller than the total data amount of the distributed value of the conventional secret sharing scheme. For example, if the data amount of each of v (m) is smaller than the data amount of the elements of the set G, the total data amount of the distributed value in the method of the present embodiment is larger than the total data amount of the distributed value of the conventional secret sharing method. Becomes smaller. If the data amount of each v (m) is negligibly small compared to the data amount of the elements of the set G, the data amount of each variance value T i (α) is the data amount of one element of the set G And the same level.
Furthermore, the distributed data conversion process in the distributed data conversion device generates a converted distributed value that can be used as an input for the secret calculation without restoring the original value α from the distributed value obtained by the data distribution device. It is also possible to execute a secret calculation.
〔第2実施形態〕
次に、本発明の第2実施形態を説明する。本形態は第1実施形態の変形例であり、同一の値v(m)を複数の秘密分散に流用することで分散値のデータ量をさらに削減する。以下では第1実施形態との相違点を中心に説明する。第1実施形態と共通する処理部やステップには第1実施形態と同じ参照符号を用い、説明を簡略化する。
第2実施形態では、M, N, Rが2以上の整数であり、Ni,r(i=0,...,N-1, r=0,...,R-1)が1以上M-1以下の整数であり、Gが或る集合であり、P(x)がxに対応する値を集合Gの要素に移す写像であり、y=f(y(0),...,y(M-1))が集合Gの要素であるM個の値y(0),...,y(M-1)からなる部分集合(y(0),...,y(M-1))を集合Gの要素である値yに移す写像であり、g(y, y(0),...,y(M-2))がy=f(y(0),...,y(M-1))を満たす集合Gの要素であるM個のy, y(0),...,y(M-2)からなる部分集合(y, y(0),...,y(M-2))を値y(M-1)に移す写像である。本形態の集合G、写像P(x)、y=f(y(0),...,y(N-1))及びg(y, y(0),...,y(N-2))の具体例は、第1実施形態で説明した集合G、写像P(x)、y=f(y(0),...,y(N-1))及びg(y, y(0),...,y(N-2))の具体例と同じである。M≦Nであってもよいし、M≧Nであってもよい。M≧Rであってもよいし、M≦Rであってもよい。N≧Rであってもよいし、N≦Rであってもよい。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. This embodiment is a modification of the first embodiment, and the data value of the distributed value is further reduced by diverting the same value v (m) to a plurality of secret sharing. Below, it demonstrates centering on difference with 1st Embodiment. The same reference numerals as those in the first embodiment are used for the processing units and steps common to the first embodiment, and the description will be simplified.
In the second embodiment, M, N, and R are integers of 2 or more, and Ni, r (i = 0, ..., N-1, r = 0, ..., R-1) is 1. Is an integer less than or equal to M-1, G is a set, P (x) is a mapping that moves a value corresponding to x to an element of set G, and y = f (y (0),. ., y (M-1)) is a subset (y (0), ..., y) of M values y (0), ..., y (M-1), with elements of the set G (M-1)) to a value y that is an element of the set G, and g (y, y (0), ..., y (M-2)) is y = f (y (0) , ..., y (M-1)), a subset (y, y (0) of M elements y, y (0), ..., y (M-2) that are elements of set G ), ..., y (M-2)) to the value y (M-1). Set G of this form, map P (x), y = f (y (0), ..., y (N-1)) and g (y, y (0), ..., y (N- Specific examples of 2)) include the set G, the mapping P (x), y = f (y (0), ..., y (N-1)) and g (y, y) described in the first embodiment. (0), ..., y (N-2)) is the same as the specific example. M ≦ N or M ≧ N may be satisfied. M ≧ R or M ≦ R may be satisfied. N ≧ R or N ≦ R may be satisfied.
第2実施形態の秘密分散システムは、データ分散装置とデータ復元装置とN個の分散データ変換装置とを有する。
本形態のデータ分散装置は、M-1個の値v(m) (m=0,...,M-2)を選択し、rと値v(m)とに対応する値をz(r, v(m))とし、rのそれぞれに対してM-1個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)を得、集合Gの要素である値αrに対して値ar(M-1)=g(αr, ar(0),...,ar(M-2))を得、分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1)) (i=0,...,N-1, r=0,...,R-1)を得る。ただし、集合Ar={ar(0),...,ar(M-1)}の部分集合がSi(αr)={ar(i,0),...,ar(i,Ni,r-1)} (i=0,...,N-1, r=0,...,R-1)であり、ar(i, ni,r)≠ar(M-1)である(i, ni,r) (ni,r∈{0,...,Ni,r-1}, r=0,...,R-1)に対応するR個のv0(i, ni,0),...,vR-1(i, ni,R-1)の少なくとも1個がar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (r’∈{0,...,R-1})を満たすvr’(i, ni,r’)∈{v(0),...,v(M-2)}であり、ar(i, qi,r)=ar(M-1)である(i, qi,r) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)に対応するvr(i, qi,r)がar(i, qi,r)=ar(M-1)である。同一の「rとv(m)との組み合わせ(r, v(m))」には同一の「z(r, v(m))」が対応する。z(r, v(m))と「rとv(m)との組み合わせ(r, v(m))」とは一対一で対応してもよいし、しなくてもよい。
The secret sharing system according to the second embodiment includes a data distribution device, a data restoration device, and N distributed data conversion devices.
The data distribution apparatus of this embodiment selects M-1 values v (m) (m = 0, ..., M-2), and sets values corresponding to r and value v (m) to z ( r, v (m)) and M-1 values for each r a r (m) = P (z (r, v (m))) (r = 0, ..., R- 1, m = 0, ..., M-2) to obtain a value for an element of the set G value α r a r (M-1 ) = g (α r, a r (0) ,. .., a r (M-2)), and variance T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1)) (i = 0, ..., N-1, r = 0, ..., R-1). Where a subset of the set A r = {a r (0), ..., a r (M-1)} is S i (α r ) = {a r (i, 0), ..., a r (i, N i, r -1)} (i = 0, ..., N-1, r = 0, ..., R-1) and a r (i, n i, r ) ≠ a r (M-1) (i, n i, r ) (n i, r ∈ {0, ..., N i, r -1}, r = 0, ..., R-1 ) At least one of R v 0 (i, n i, 0 ), ..., v R-1 (i, n i, R-1 ) corresponding to) is a r (i, n i, r ) = P (z (r, v r ′ (i, n i, r ′ ))) (r′∈ {0, ..., R-1}) satisfying v r ′ (i, n i, r ' ) ∈ {v (0), ..., v (M-2)} and a r (i, q i, r ) = a r (M-1) (i,
本形態のデータ復元装置は、分散値Ti(αr) (i=0,...,N-1)の少なくとも一部を用いて、rのそれぞれに対してM-1個の値ar(m)=P(z(r,v(m))) (r=0,...,R-1, m=0,...,M-2)を得、値ar(m) (m=0,...,M-2)と分散値Ti(αr)の何れかが含む値ar(M-1)とを用いてαr=f(ar(0),...,ar(M-1))を得る。 The data restoration apparatus of the present embodiment uses M−1 values a for each of r using at least a part of the variance values T i (α r ) (i = 0,..., N−1). r (m) = P (z (r, v (m))) (r = 0, ..., R-1, m = 0, ..., M-2), and the value a r (m ) Using (m = 0, ..., M-2) and the value a r (M-1) included in any of the variance values T i (α r ), α r = f (a r (0) , ..., a r (M-1)).
本形態の分散データ変換装置のそれぞれは、分散値Ti(αr) (r=0,...,R-1)に含まれるvr’(i, ni,r’) (r’∈{0,...,R-1})について値ar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (ni,r∈{0,...,Ni,r-1})を得、得られた値ar(i, ni,r) (ni,r∈{0,...,Ni,r-1})とvr(i, qi,r)=ar(M-1) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)であるar(i, qi,r)=vr(i, qi,r)∈Ti(αr)との少なくとも何れかを含むSi(αr)={ar(i,0),...,ar(i,Ni,r-1)}を変換分散値として得る。このように得られた変換分散値Si(αr)は、秘密計算の入力値として用いられる。 Each of the distributed data conversion apparatuses of the present embodiment includes v r ′ (i, n i, r ′ ) (r ′ included in the distributed value T i (α r ) (r = 0,..., R−1). ∈ {0, ..., R-1}) value a r (i, n i, r ) = P (z (r, v r ′ (i, n i, r ′ )))) (n i, r ∈ {0, ..., N i, r -1}) and the resulting values a r (i, n i, r ) (n i, r ∈ {0, ..., N i, r -1}) and v r (i, q i, r ) = a r (M-1) (q i, r ∈ {0, ..., N i, r -1}, n i, r ≠ q i, r) a is a r (i, q i, r) = v r (i, q i, r) ∈T i (α r) S i (α r containing at least one of the) = { a r (i, 0), ..., a r (i, N i, r -1)} are obtained as transformation variance values. The transform variance value S i (α r ) thus obtained is used as an input value for secret calculation.
本形態において好ましくは、M-1個の値v(m) (m=0,...,M-2)のデータ量の合計値は、M-1個の集合Gの要素のデータ量の合計値よりも小さい。より好ましくは、値v(m)それぞれのデータ量は集合Gの要素(1個の要素)のデータ量よりも小さい。さらにより好ましくは、値v(m)それぞれのデータ量は集合Gの要素のデータ量に対して無視できる程度の大きさである(例えば、(v(m)それぞれのデータ量)/(集合Gの要素のデータ量)≦80/106)。 Preferably, in this embodiment, the total value of the data amount of M−1 values v (m) (m = 0,..., M−2) is the data amount of the elements of M−1 sets G. Less than the total value. More preferably, the data amount of each value v (m) is smaller than the data amount of the elements (one element) of the set G. Even more preferably, the data amount of each value v (m) is negligible with respect to the data amount of the elements of the set G (for example, (data amount of each of v (m)) / (set G The amount of data in the element) ≦ 80/10 6 ).
<構成>
図1に例示するように、第2実施形態の秘密分散システム2は、データ分散装置210、N個の分散データ変換装置220−i(i=0,...,N-1)、及びデータ復元装置230を有する。データ分散装置210は、ネットワークや可搬型記録媒体などを経由して、N個の分散データ変換装置220−i(i=0,...,N-1)に対して情報の提供が可能である。N個の分散データ変換装置220−i(i=0,...,N-1)のそれぞれは、ネットワークや可搬型記録媒体などを経由して、データ復元装置230に対して情報の提供が可能である。
<Configuration>
As illustrated in FIG. 1, the
図2Aに例示するように、本形態のデータ分散装置210は、入力部111、出力部112、メモリ113、分割部211、制御部214、選択部115、変換部216、計算部217、及び分散値生成部218を有する。本形態のデータ分散装置210は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ分散装置210は、制御部214の制御のもとで各処理を実行する。入力部111に入力されたデータや各処理で得られたデータはメモリ113に格納され、メモリ113に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 2A, the data distribution apparatus 210 according to the present exemplary embodiment includes an
図2Bに例示するように、本形態のデータ復元装置230は、入力部131、出力部132、メモリ133、制御部234、変換部235、復元部236、及び結合部237を有する。本形態のデータ復元装置230は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ復元装置230は、制御部234の制御のもとで各処理を実行する。入力部131に入力されたデータや各処理で得られたデータはメモリ133に格納され、メモリ133に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 2B, the data restoration device 230 according to this embodiment includes an
図3に例示するように、本形態の分散データ変換装置220−i (i=0,...,N-1)は、入力部121−i、出力部122−i、メモリ123a−i、記憶部123b−i,123c−i、制御部224−i、変換部225−i、変換分散値生成部226−i、及び秘密計算部227−iを有する。本形態の分散データ変換装置220−iは、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態の分散データ変換装置220−iは、制御部224−iの制御のもとで各処理を実行する。入力部121−iに入力されたデータや各処理で得られたデータはメモリ123a−iや記憶部123b−iに格納され、メモリ123a−iや記憶部123b−iに格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 3, the distributed data conversion apparatus 220-i (i = 0,..., N−1) of this embodiment includes an input unit 121-i, an output unit 122-i, a memory 123 a-i, The
<データ分散処理>
図7に例示するように、データ分散装置210(図2A)の入力部111に秘密分散される値αが入力される(ステップS111)。値αは分割部211に入力される。分割部211は、値αを集合Gの要素であるR個の値αr ∈G (r=0,...,R-1)に分割し、R個の値αr ∈G (r=0,...,R-1)を出力する(ステップS211)。例えば、集合Gが加法群{0,1,...,μ-1}であってα≧μの場合、分割部211は、例えばRが最小となるようにα=α0+μ・α1+...+μR-1・αR-1となる0以上μ-1以下のR個の値α0,α1,...,αR-1∈{0,1,...,μ-1}を求め、値α0,α1,...,αR-1を出力する。
<Data distribution processing>
As illustrated in FIG. 7, the value α to be secretly shared is input to the
選択部115は、M-1個の値v(m) (m=0,...,M-2)を選択し、値v(m) (m=0,...,M-2)を出力する(ステップS112)。例えばM=3であれば、選択部115は2個の値v(0), v(1)を選択し、値v(0), v(1)を出力する。
The
値v(m) (m=0,...,M-2)は変換部216に入力される。変換部216は、rと値v(m)とに対応する値をz(r, v(m))とし、rのそれぞれに対してM-1個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)を生成し、当該(M-1)×R個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)を出力する(ステップS213)。例えばM=3であれば、変換部216は、ar(0)=P(z(r, v(0))), ar(1)=P(z(r, v(1))) (r=0,...,R-1)を出力する。なお、P(x)が擬似乱数生成関数の場合、値ar(m)は擬似乱数となる。
The value v (m) (m = 0,..., M−2) is input to the
分割部211から出力されたR個の値αr ∈G (r=0,...,R-1)と、変換部216から出力された(M-1)×R個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)とは計算部217に入力される。計算部217は、これらの値αr,ar(m) (r=0,...,R-1, m=0,...,M-2)から、各値αrに対して値ar(M-1)=g(αr, ar(0),...,ar(M-2))を生成し、当該R個のar(M-1) (r=0,...,R-1)を出力する(ステップS214)。例えば、写像g(y, y(0),...,y(M-2))がy(M-1)=y-y(0)-y(1)...-y(M-2) (mod μ)である場合、計算部217はar(M-1)=αr-ar(0)-ar(1)...-ar(M-2) (mod μ)を計算し、それによって得られた値ar(M-1)を出力する。この例においてM=3であれば、計算部217は、ar(2)=αr-ar(0)-ar(1) (mod μ)を計算し、それによって得られた値ar(2) (r=0,...,R-1)を出力する。
R values α r ∈G (r = 0,..., R−1) output from the dividing
選択部115から出力されたM-1個の値v(m) (m=0,...,M-2)と計算部217から出力された値ar(M-1) (r=0,...,R-1)は、分散値生成部218に入力される。分散値生成部218は、これらの値ar(M-1),v(m) (r=0,...,R-1, m=0,...,M-2)を用い、分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1)) (i=0,...,N-1, r=0,...,R-1)を生成し、当該分散値Ti(αr)を出力する(ステップS215)。
ここで、集合Ar={ar(0),...,ar(M-1)}の部分集合をSi(αr)={ar(i,0),...,ar(i,Ni,r-1)} (i=0,...,N-1, r=0,...,R-1)とおく。分散値Ti(αr)を構成する要素のうち、ar(i, ni,r)≠ar(M-1)である(i, ni,r) (ni,r∈{0,...,Ni,r-1}, r=0,...,R-1)に対応するR個のv0(i, ni,0),...,vR-1(i, ni,R-1)の少なくとも1個(好ましくは、R個のv0(i, ni,0),...,vR-1(i, ni,R-1)の何れかのみ)が、ar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (r’∈{0,...,R-1})を満たすvr’(i, ni,r’)∈{v(0),...,v(M-2)}である。例えば、a0(i, ni,0)≠a0(M-1)である(i, ni,0) (ni,0∈{0,...,Ni,0-1})に対応するv0(i, ni,0)が、ar(i, ni,r)=P(z(r, v0(i, ni,0)))を満たすv0(i, ni,0)∈{v(0),...,v(M-2)}とされる。ar(i, ni,r)≠ar(M-1)である(i, ni,r)に対応するv0(i, ni,0),...,vR-1(i, ni,R-1)のうちvr’(i, ni,r’)∈{v(0),...,v(M-2)}以外の値は、例えば、空値であってもよいし、rやR等のパラメータであってもよい。分散値Ti(αr)を構成する要素のうち、ar(i, qi,r)=ar(M-1)である(i, qi,r) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)に対応するvr(i, qi,r)がar(i, qi,r)=ar(M-1)である。
以下にM=N=3, K=2, Ni,r=2,G={0,1,...,μ-1}の場合の分散値Ti(αr) (i=0,...,2, r=0,...,R-1)を例示する。ただしφは空値を示す。
T0(α0)=(v(0), v(1)), T1(α0)=(v(1), a0(2)), T2(α0)=(a0(2) ,v(0)),
T0(α1)=φ, T1(α1)=(a1(2)), T2(α1)=(a1(2)),
T0(α2)=φ,T1(α2)=(a2(2)),T2(α2)=(a2(2)),...,
T0(αR-1)=φ,T1(αR-1)=(aR-1(2)),T2(αR-1)=(aR-1(2)) ...(2)
M−1 values v (m) (m = 0,..., M−2) output from the
Where a subset of the set A r = {a r (0), ..., a r (M-1)} is expressed as S i (α r ) = {a r (i, 0), ..., a r (i, N i, r -1)} (i = 0, ..., N-1, r = 0, ..., R-1). Among the elements constituting the variance value T i (α r ), (i, n i, r ) (n i, r ∈ {) where a r (i, n i, r ) ≠ a r (M-1) 0, ..., N i, r -1}, r = 0, ..., R-1), R v 0 (i, n i, 0 ), ..., v R- 1 (i, n i, R-1 ) at least one (preferably R v 0 (i, n i, 0 ), ..., v R-1 (i, n i, R-1 ) Only) a r (i, n i, r ) = P (z (r, v r ′ (i, n i, r ′ ))) (r′∈ {0, ..., R-1}) satisfying v r ′ (i, n i, r ′ ) ∈ {v (0),..., V (M−2)}. For example, a 0 (i, n i, 0 ) ≠ a 0 (M-1) (i, n i, 0 ) (n i, 0 ∈ {0, ..., N i, 0 -1} ) corresponding to v 0 (i, n i, 0) is, a r (i, n i , r) = P (z (r, v 0 (i, n i, 0))) satisfy v 0 ( i, n i, 0 ) ∈ {v (0), ..., v (M-2)}. It is a r (i, n i, r) ≠ a r (M-1) (i, n i, r)
The following is the dispersion value T i (α r ) (i = 0, for M = N = 3, K = 2, N i, r = 2 and G = {0,1, ..., μ-1}. ..., 2, r = 0, ..., R-1). However, φ indicates a null value.
T 0 (α 0 ) = (v (0), v (1)), T 1 (α 0 ) = (v (1), a 0 (2)), T 2 (α 0 ) = (a 0 ( 2), v (0)),
T 0 (α 1 ) = φ, T 1 (α 1 ) = (a 1 (2)), T 2 (α 1 ) = (a 1 (2)),
T 0 (α 2 ) = φ, T 1 (α 2 ) = (a 2 (2)), T 2 (α 2 ) = (a 2 (2)), ...,
T 0 (α R-1 ) = φ, T 1 (α R-1 ) = (a R-1 (2)), T 2 (α R-1 ) = (a R-1 (2)) .. . (2)
分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1)) (i=0,...,N-1, r=0,...,R-1)は出力部112に入力され、出力部112は分散値Ti(αr) (i=0,...,N-1, r=0,...,R-1)を出力する(ステップS216)。出力された分散値Ti(αr) (i=0,...,N-1, r=0,...,R-1)のそれぞれは、分散データ変換装置220−i (i=0,...,N-1)のそれぞれに提供される。例えば、分散値Ti(αr)は、ネットワーク等を経由して、対応する分散データ変換装置220−i(図3)に送信される。分散データ変換装置220−i(i=0,...,N-1)のそれぞれに提供された分散値分散値Ti(αr)は入力部121−iに入力され、記憶部123b−iに格納される。
Variance T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1)) (i = 0, ... ., N-1, r = 0, ..., R-1) are input to the
<分散データ変換処理/分散値出力処理>
分散データ変換装置220−i(i=0,...,N-1)が実行する分散データ変換処理及び分散値出力処理を説明する。これらの処理は、すべての分散データ変換装置220−i(i=0,...,N-1)で実行されてもよいし、それらのうちK個(K≦N)の分散データ変換装置220−k(k∈{0,...,N-1})のみで実行されてもよい。
図8に例示するように、分散データ変換装置220−i(i=0,...,N-1)のそれぞれが分散値の変換を行わずに分散値を出力する場合、制御部224−iは分散値の変換を行わずに分散値Ti(αr)を読み出す旨を記憶部123b−iに指示する(ステップS221−i)。この指示を受けた記憶部123b−iは、格納している分散値Ti(αr)を読み出して出力する。分散値Ti(αr)は出力部122−iに送られ、出力部122−iは分散値Ti(αr)を出力する(ステップS222−i)。出力された分散値Ti(αr)はデータ復元装置230に提供される。例えば、分散値Ti(αr)は、ネットワーク等を経由してデータ復元装置230に送信される。分散データ変換装置220−i(i=0,...,N-1)が分散値の変換を行わずに分散値を出力する場合には、分散データ変換処理及び分散値出力処理を実行するすべての分散データ変換装置220−i(i=0,...,N-1)が分散値の変換を行わずに分散値を出力する。
<Distributed data conversion processing / distributed value output processing>
A distributed data conversion process and a distributed value output process executed by the distributed data conversion apparatus 220-i (i = 0,..., N−1) will be described. These processes may be executed by all the distributed data converters 220-i (i = 0,..., N-1), or K (K ≦ N) of the distributed data converters. 220-k (kε {0,..., N−1}) may be executed only.
As illustrated in FIG. 8, when each of the distributed data converters 220-i (i = 0,..., N−1) outputs a distributed value without converting the distributed value, the control unit 224- i instructs the
一方、分散データ変換装置220−i(i=0,...,N-1)のそれぞれが分散値の変換を行う場合、制御部224−iは、分散値の変換を行うために分散値Ti(αr)を読み出す旨を記憶部123b−iに指示する(ステップS221−i)。この指示を受けた記憶部123b−iは分散値Ti(αr)を読み出す。
読み出された分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1))を構成する要素のうち、vr’(i, ni,r’)∈{v(0),...,v(M-2)} (r’∈{0,...,R-1})は変換部225−iに入力される。読み出された分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1))を構成する要素がvr(i, qi,r)=ar(M-1) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)であるar(i, qi,r)=vr(i, qi,r)∈Ti(αr)を含む場合、当該ar(i, qi,r)は変換分散値生成部226−iに入力される。
On the other hand, when each of the distributed data converters 220-i (i = 0,..., N-1) performs the conversion of the variance value, the control unit 224-i performs the variance value conversion in order to convert the variance value. The
Construct the read variance T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1)) Of the elements, v r ′ (i, n i, r ′ ) ∈ {v (0), ..., v (M-2)} (r′∈ {0, ..., R-1}) Is input to the conversion unit 225-i. Construct the read variance T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1)) The element is v r (i, q i, r ) = a r (M-1) (q i, r ∈ {0, ..., N i, r -1}, n i, r ≠ q i, r ) and is a r (i, q i, r) = v r (i, q i, r) if ∈T i containing (alpha r), the a r (i, q i, r) is converted variance The data is input to the generation unit 226-i.
変換部225−iは、入力された値vr’(i, ni,r’) (r’∈{0,...,R-1})からar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (ni,r∈{0,...,Ni,r-1}, r=0,...,R-1)を計算し、当該値ar(i, ni,r)を出力する(ステップS223−i)。 The conversion unit 225-i converts the input value v r ′ (i, n i, r ′ ) (r′∈ {0, ..., R−1}) to a r (i, n i, r ). = P (z (r, v r ' (i, n i, r' ))) (n i, r ∈ {0, ..., N i, r -1}, r = 0, ..., R-1) is calculated, and the value a r (i, n i, r ) is output (step S223-i).
変換分散値生成部226−iには、変換部225−iで得られた値ar(i, ni,r) (ni,r∈{0,...,Ni,r-1}, r=0,...,R-1)と、記憶部123b−iから読み出されたvr(i, qi,r)=ar(i, qi,r)=ar(M-1) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)と(存在するのであれば)が入力される。変換分散値生成部226−iは、入力された値からなる変換分散値Si(αr)={ar(i,0),...,ar(i,Ni,r-1)}を生成し(ステップS224−i)、当該変換分散値Si(αr)を記憶部123c−iに格納する(ステップS225−i)。
例えば式(2)の例では、変換分散値Si(αr)(i=0,1,2, r=0,...,R-1)は以下のようになる。
Si(α0)=(a0(i mod 3), a0(i+1 mod 3)) (i=0,1,2),
S0(αθ)=φ, S1(αθ)=S2(αθ)=aθ(2) (θ=1,...,R-1) ...(3)
The conversion variance value generation unit 226-i includes the value a r (i, n i, r ) (n i, r ∈ {0, ..., N i, r −1) obtained by the conversion unit 225-i. }, r = 0, ..., R-1) and v r (i, q i, r ) = a r (i, q i, r ) = a r read from the
For example, in the example of Expression (2), the transform variance value S i (α r ) (i = 0, 1, 2, r = 0,..., R−1) is as follows.
S i (α 0 ) = (a 0 (i mod 3), a 0 (i + 1 mod 3)) (i = 0,1,2),
S 0 (α θ ) = φ, S 1 (α θ ) = S 2 (α θ ) = a θ (2) (θ = 1, ..., R-1) ... (3)
秘密計算部227−iは、所定の契機で記憶部123c−iに格納された変換分散値Si(αr)={ar(i,0),...,ar(i,Ni,r-1)}を読み出し、変換分散値Si(αr)を入力とした秘密計算を実行し、その演算結果である分散値Ei,r={er(i,0),...,er (i,Ni,r-1)}を出力する。分散値Ei,rは出力部122−iから出力され、データ復元装置230に提供される。例えば、分散値Ei,rは、ネットワーク等を経由して、データ復元装置230に送信される。
The secret calculation unit 227-i receives the transform variance value S i (α r ) = {a r (i, 0), ..., a r (i, N) stored in the
<データ復元処理>
図9に例示するように、データ復元装置230(図2B)の入力部131に、rのそれぞれについて、何れかK個の分散値Tk(αr) (k∈{0,...,N-1})、又は、何れかK個の分散値Ek,r={er(k,0),...,er(k,Nk-1)} (k∈{0,...,N-1})が入力される(ステップS231)。制御部234は、分散値Tk(αr)が入力されたか、分散値Ek,rが入力されたかを判定する(ステップS232)。
<Data restoration processing>
As illustrated in FIG. 9, the
ステップS232で分散値Tk(αr)が入力されたと判定された場合、rのそれぞれについて、何れかK個の分散値Tk(αr) (k∈{0,...,N-1}, r=0,...,R-1)が変換部235に入力される。変換部235は、分散値Ti(αr) (i=0,...,N-1)の少なくとも一部を用いて、rのそれぞれに対してM-1個の値ar(m)=P(z(r,v(m))) (r=0,...,R-1, m=0,...,M-2)を計算し、値ar(m) (r=0,...,R-1, m=0,...,M-2)を出力する(ステップS233)。例えば、式(2)の分散値T0(αr), T1(αr) (r=0,...,R-1)が変換部235に入力された場合、変換部235は、T0(α0)=(v(0), v(1))が含むv(0), v(1)を用いて、rのそれぞれに対して2個の値ar(m)=P(z(r,v(m))) (r=0,...,R-1, m=0,1)を計算する。
復元部236には、rのそれぞれについてM-1個の値ar(m) (r=0,...,R-1, m=0,...,M-2)と、入力部131に入力された分散値Tk(αr)の何れかが含む値ar(M-1) (r=0,...,R-1)とが入力される。復元部236は、これらを用いてαr=f(ar(0),...,ar(M-1))を計算し、得られた値αr (r=0,...,R-1)を出力する(ステップS234)。例えば、式(2)の分散値Tk(αr)の場合、復元部236はαr=ar(0)+ar(1)+a(2) (mod μ)を計算し、それによって得られた値αr (r=0,...,R-1)を出力する。
値αr (r=0,...,R-1)は結合部237に入力される。結合部237は、R個の値αr (r=0,...,R-1)を結合して値α∈Gを生成し、当該値αを出力する(ステップS235)。例えば、前述の分割部211で、値αがα=α0+μ・α1+...+μR-1・αR-1を満たす値α0,α1,...,αR-1∈{0,1,...,μ-1}に分割されていた場合、結合部237は、R個の値αr(r=0,...,R-1)から値α=α0+μ・α1+...+μR-1・αR-1を計算する。値αは出力部132に入力され、出力部132は値αを出力する(ステップS236)。
If it is determined in step S232 that the variance value T k (α r ) has been input, for each r, any K variance values T k (α r ) (k∈ {0,..., N− 1}, r = 0,..., R−1) are input to the
The
The values α r (r = 0,..., R−1) are input to the
一方、ステップS232で、分散値Ek,rが入力されたと判定された場合、rのそれぞれについてK個の分散値Ek,r(k∈{0,...,N-1})が復元部236に入力される。復元部236は、rのそれぞれについて分散値Ek,r={er(k,0),...,er(k,Nk,r-1)} (r=0,...,R-1, k∈{0,...,N-1})の要素からなるM個の値er(0),...,er(M-1)を得、εr=f(er(0),...,er(M-1))を計算し、その結果εr (r=0,...,R-1)を出力する(ステップS237)。
R個の値εr (r=0,...,R-1)は結合部237に入力される。結合部237は、R個の値εr(r=0,...,R-1)を結合して値ε∈Gを生成し、当該値εを出力する(ステップS238)。例えば、前述の分割部211で、値αがα=α0+μ・α1+...+μR-1・αR-1を満たす値α0,α1,...,αR-1∈{0,1,...,μ-1}に分割されていた場合、結合部237は、R個の値εr(r=0,...,R-1)から値ε=ε0+μ・ε1+...+μR-1・εR-1を計算する。値εは出力部132に入力され、出力部132は値εを出力する(ステップS239)。
On the other hand, when it is determined in step S232 that the variance value E k, r is input, K variance values E k, r (k∈ {0,..., N−1}) are obtained for each r. The data is input to the
R values ε r (r = 0,..., R−1) are input to the
<本形態の特徴>
本形態でも従来の秘密分散方式に比べ、分散値のデータ量を大幅に削減できる。
すなわち、本形態の分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1))を構成する要素vr(i,0), vr(i,1),...,vr(i,Ni,r-1)の少なくとも1個はv(m) (m=0,...,M-2)の何れかである。したがって、集合Gの要素のみからなる従来の分散値に比べて分散値のデータ量を削減できる。第1実施形態で説明したように、分散値のデータ量をどの程度削減できるかは、v(m)のデータ量と集合Gの要素のデータ量との違いに依存する。
<Features of this embodiment>
Also in this embodiment, the data amount of the distributed value can be greatly reduced as compared with the conventional secret sharing scheme.
That is, the variance value T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1)) of this embodiment is configured. At least one of the elements v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1) is v (m) (m = 0, ... ., M-2). Therefore, the data amount of the variance value can be reduced as compared with the conventional variance value including only the elements of the set G. As described in the first embodiment, how much the data amount of the variance value can be reduced depends on the difference between the data amount of v (m) and the data amount of elements of the set G.
一例を挙げると、非特許文献2に記載された加法的秘密分散では、データ分散時に、データ分散装置がSi(ar)=(ai,ai+1 mod 3)(i=0,1,2)を生成して分散データ変換装置iに送信し、分散データ変換装置iはSi(ar)を記憶する。データ復元時には、データ復元装置は何れか2つの分散データ変換装置から合わせてa0,a1,a2を受信する。この場合、各rについて、データ分散時の通信データ量および記憶データ量は6×L、データ復元時の通信データ量は3×Lとなる。
一方、本形態でM=N=3, K=2, Ni,r=2,G={0,1,...,μ-1}とし(非特許文献2と同等の環境)、値v(0), v(1)のデータ量を無視できるとすると、各rについて、データ分散時の通信データ量および記憶データ量は2×Lとなり、上記加法的秘密分散と比べてデータ量は1/3に削減されることが分かる。同様な環境での本形態のデータ復元時の通信データ量はLとなり、上記加法的秘密分散と比べてデータ量が1/3程度に削減されることが分かる。
For example, in the additive secret sharing described in
On the other hand, in this embodiment, M = N = 3, K = 2, Ni, r = 2, G = {0,1, ..., μ-1} (environment equivalent to Non-Patent Document 2), value If the data amount of v (0) and v (1) can be ignored, the amount of communication data and the amount of stored data at the time of data distribution is 2 × L for each r, and the amount of data is less than the above additive secret sharing You can see that it is reduced to 1/3. It can be seen that the communication data amount at the time of data restoration of this embodiment in a similar environment is L, and the data amount is reduced to about 1/3 compared to the above-mentioned additive secret sharing.
さらに本形態では、各値v(m)からR個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1)を生成するため、複数の値αr(r=0,...,R-1)の秘密分散を行う場合のデータ量をさらに削減できる。また、分散データ変換装置での分散データ変換処理により、データ分散装置で得られた分散値からもとのαやαrを復元することなく、秘密計算の入力とすることが可能な変換分散値を生成し、秘密計算を実行することもできる。 Further, in this embodiment, R values a r (m) = P (z (r, v (m))) (r = 0, ..., R-1) are generated from each value v (m). Therefore, it is possible to further reduce the amount of data when performing secret sharing of a plurality of values α r (r = 0,..., R−1). Also, the distributed data conversion process in the distributed data conversion device can be used as an input for the secret calculation without restoring the original α and α r from the distributed value obtained by the data distribution device. Can be generated and a secret calculation can be performed.
〔第3実施形態〕
次に、本発明の第3実施形態を説明する。本形態は第1実施形態の変形例であり、同一の値v(n)を複数の秘密分散に流用することで分散値のデータ量をさらに削減する。以下では上述した実施形態との相違点を中心に説明する。上述した実施形態と共通する処理部やステップには上述した実施形態と同じ参照符号を用い、説明を簡略化する。
[Third Embodiment]
Next, a third embodiment of the present invention will be described. This embodiment is a modification of the first embodiment, and the data value of the distributed value is further reduced by diverting the same value v (n) to a plurality of secret shares. Below, it demonstrates centering on difference with embodiment mentioned above. The same reference numerals as those in the above-described embodiment are used for processing units and steps that are common to the above-described embodiment, and the description will be simplified.
第3実施形態では、N, Rが2以上の整数であり、Ni(i=0,...,N-1)が1以上N-1以下の整数であり、Gが或る集合であり、P(x)がxに対応する値を集合Gの要素に移す写像であり、y=f(y(0),...,y(N-1))が集合Gの要素であるN個の値y(0),...,y(N-1)からなる部分集合(y(0),...,y(N-1))を集合Gの要素である値yに移す写像であり、g(y, y(0),...,y(N-2))がy=f(y(0),...,y(N-1))を満たす集合Gの要素であるN個のy, y(0),...,y(N-2)からなる部分集合(y, y(0),...,y(N-2))を値y(N-1)に移す写像である。本形態の集合G及び写像P(x)の具体例は、第1実施形態で説明した集合G及び写像P(x)の具体例と同じである。本形態の写像y=f(y(0),...,y(N-1))及びg(y, y(0),...,y(N-2))の具体例は以下の通りである。例えば集合Gが加法群なのであれば、y=y(0)+...+y(N-1)∈G,y=-y(0)-...-y(N-1)∈G,y=y(0)-y(1)+y(2)-...+y(N-1)∈Gなどを写像y=f(y(0),...,y(N-1))とすることができる。例えば、集合Gがμを法とした剰余類の代表元からなる加法群なのであれば、例えばy=y(0)+...+y(N-1) (mod μ)などを写像y=f(y(0),...,y(N-1))とすることができる。集合Gが乗法群なのであれば、例えばy=y(0)・...・y(N-1)∈G,y={y(0)}-1・...・y{(N-1)}-1∈G,y=y(0)・{y(1)}-1・y(2)・{y(3)}-1・...・y(N-1)などを写像y=f(y(0),...,y(N-1))とすることができる。写像g(y, y(0),...,y(N-2))は写像y=f(y(0),...,y(N-1))に対して上記の関係を満たす。例えば、写像y=f(y(0),...,y(N-1))がy=y(0)+...+y(N-1) (mod μ)である場合、写像g(y, y(0),...,y(N-2))はy(N-1)=y-y(0)-y(1)...-y(N-2) (mod μ)である。N≦Rであってもよいし、N≧Rであってもよい。 In the third embodiment, N, R is an integer of 2 or more, N i (i = 0, ..., N-1) is 1 or more N-1 an integer, G is a certain set Yes, P (x) is a mapping that moves the value corresponding to x to an element of set G, and y = f (y (0), ..., y (N-1)) is an element of set G A subset (y (0), ..., y (N-1)) of N values y (0), ..., y (N-1) is changed to a value y that is an element of the set G. G (y, y (0), ..., y (N-2)) satisfying y = f (y (0), ..., y (N-1)) A subset (y, y (0), ..., y (N-2)) consisting of N elements y, y (0), ..., y (N-2) This is the mapping to (N-1). Specific examples of the set G and mapping P (x) in the present embodiment are the same as the specific examples of the set G and mapping P (x) described in the first embodiment. Specific examples of the mapping y = f (y (0), ..., y (N-1)) and g (y, y (0), ..., y (N-2)) in this embodiment are as follows: It is as follows. For example, if the set G is an additive group, y = y (0) + ... + y (N-1) ∈G, y = -y (0) -...- y (N-1) ∈G , Y = y (0) -y (1) + y (2) -... + y (N-1) ∈G and so on map y = f (y (0), ..., y (N- 1)). For example, if the set G is an additive group consisting of representatives of residue classes modulo μ, for example, y = y (0) + ... + y (N-1) (mod μ) f (y (0), ..., y (N-1)). If the set G is a multiplicative group, for example, y = y (0) ···· y (N-1) ∈G, y = {y (0)} -1 ···· y {(N- 1)} -1 ∈G, y = y (0) ・ {y (1)} -1・ y (2) ・ {y (3)} -1・ ... ・ y (N-1) etc. The map y = f (y (0), ..., y (N-1)). The map g (y, y (0), ..., y (N-2)) has the above relationship to the map y = f (y (0), ..., y (N-1)). Fulfill. For example, if the map y = f (y (0), ..., y (N-1)) is y = y (0) + ... + y (N-1) (mod μ), then the map g (y, y (0), ..., y (N-2)) is y (N-1) = yy (0) -y (1) ...- y (N-2) (mod μ ). N ≦ R may be satisfied, or N ≧ R may be satisfied.
第3実施形態の秘密分散システムは、データ分散装置とデータ復元装置とN個の分散データ変換装置とを有する。
本形態のデータ分散装置は、N-1個の値v(n) (n=0,...,N-2)を選択し、rと値v(n)とに対応する値をz(r, v(n))とし、rのそれぞれに対してN-1個の値ar(n)=P(z(r, v(n))) (r=0,...,R-1, n=0,...,N-2)を得、集合Gの要素である値αr (r=0,...,R-1)に対して値ar(N-1)=g(αr, ar(0),...,ar(N-2))を得、値v(n)を分散値Tn(β) (n=0,...,N-2)とし、値ar(N-1)を分散値TN-1(αr)とする。同一の「rとv(n)との組み合わせ(r, v(n))」には同一のz(r, v(n))が対応する。z(r, v(n))と「rとv(n)との組み合わせ(r, v(n))」とは一対一で対応してもよいし、しなくてもよい。z(r, v(n))の例は、rと値v(n)とのビット結合値である。分散値Tn(β) (n=0,...,N-2)は、例えばN-1個の分散データ変換装置のそれぞれに提供され、分散値TN-1(αr)は、例えば1個の分散データ変換装置に提供される。
The secret sharing system according to the third embodiment includes a data distribution device, a data restoration device, and N distributed data conversion devices.
The data distribution apparatus of the present embodiment selects N-1 values v (n) (n = 0, ..., N-2), and sets values corresponding to r and value v (n) to z ( r, v (n)), and N-1 values for each r a r (n) = P (z (r, v (n))) (r = 0, ..., R- 1, n = 0, ..., N-2) and the value a r (N-1) for the value α r (r = 0, ..., R-1) which is an element of the set G = g (α r , a r (0), ..., a r (N-2)) and the value v (n) is the variance T n (β) (n = 0, ..., N -2), and the value a r (N-1) is the variance value T N-1 (α r ). The same “r and v (n) combination (r, v (n))” corresponds to the same z (r, v (n)). z (r, v (n)) and “a combination of r and v (n) (r, v (n))” may or may not correspond one-to-one. An example of z (r, v (n)) is a bit combination value of r and value v (n). The variance value T n (β) (n = 0, ..., N-2) is provided to each of N-1 distributed data converters, for example, and the variance value T N-1 (α r ) is For example, it is provided to one distributed data converter.
本形態のデータ復元装置は、分散値Tn(β) (n=0,...,N-2)を用いて、rのそれぞれに対してN-1個の値ar(n)=P(z(r, v(n))) (r=0,...,R-1, n=0,...,N-2)を得、値ar(n) (n=0,...,N-2)と分散値TN-1(αr)=ar(N-1)とを用いてαr=f(ar(0),...,ar(N-1)) (r=0,...,R-1)を得る。 The data restoration apparatus of the present embodiment uses a variance value T n (β) (n = 0, ..., N-2), and N−1 values a r (n) = P (z (r, v (n))) (r = 0, ..., R-1, n = 0, ..., N-2) and get the value a r (n) (n = 0 , ..., N-2) and variance T N-1 (α r ) = a r (N-1) and α r = f (a r (0), ..., a r ( N-1)) (r = 0, ..., R-1) is obtained.
分散値Tn(β) (n=0,...,N-2)の何れかが提供された本形態の分散データ変換装置は、自らに提供された分散値Tn(β)=v(n)から値ar(n)=P(z(r, v(n))) (r=0,...,R-1)を変換分散値Sn(αr)として得る。このように得られる変換分散値Sn(αr)は、秘密計算の入力値とすることができる。一方、分散値TN-1(αr)が提供された分散データ変換装置は、分散値TN-1(αr)をそのまま変換分散値SN-1(αr)=TN-1(αr)とする。このように得られる変換分散値Si(αr) (i=0,...,N-1)は、秘密計算の入力値として用いられる。 The distributed data conversion apparatus of the present embodiment provided with any one of the distributed values T n (β) (n = 0,..., N−2) has the distributed value T n (β) = v provided to itself. The value a r (n) = P (z (r, v (n))) (r = 0,..., R−1) is obtained as the transformed variance value S n (α r ) from ( n ). The transform variance value S n (α r ) thus obtained can be used as an input value for secret calculation. On the other hand, the dispersion value T N-1 (α r) is provided, distributed data conversion apparatus, the dispersion value T N-1 (α r) directly converting variance S N-1 (α r) = T N-1 Let (α r ). The transform variance value S i (α r ) (i = 0,..., N−1) obtained in this way is used as an input value for secret calculation.
<構成>
図1に例示するように、第3実施形態の秘密分散システム3は、データ分散装置310、N個の分散データ変換装置320−i(i=0,...,N-1)、及びデータ復元装置330を有する。データ分散装置310は、ネットワークや可搬型記録媒体などを経由して、N個の分散データ変換装置320−i(i=0,...,N-1)に対して情報の提供が可能である。N個の分散データ変換装置320−i(i=0,...,N-1)のそれぞれは、ネットワークや可搬型記録媒体などを経由して、データ復元装置330に対して情報の提供が可能である。
<Configuration>
As illustrated in FIG. 1, the secret sharing system 3 according to the third embodiment includes a
図10Aに例示するように、本形態のデータ分散装置310は、入力部111、分割部211、出力部112、メモリ113、制御部314、選択部315、変換部316、計算部317、及び分散値生成部318を有する。本形態のデータ分散装置310は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ分散装置310は、制御部314の制御のもとで各処理を実行する。入力部111に入力されたデータや各処理で得られたデータはメモリ113に格納され、メモリ113に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 10A, the
図10Bに例示するように、本形態のデータ復元装置330は、入力部131、出力部132、メモリ133、制御部334、変換部335、復元部336、及び結合部237を有する。本形態のデータ復元装置330は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ復元装置330は、制御部334の制御のもとで各処理を実行する。入力部131に入力されたデータや各処理で得られたデータはメモリ133に格納され、メモリ133に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 10B, the
図11Aに例示するように、本形態の分散データ変換装置320−n (n=0,...,N-2)は、入力部121−n、出力部122−n、メモリ123a−n、記憶部323b−i,323c−n、制御部324−n、変換分散値生成部326−n、及び秘密計算部327−nを有する。図11Bに例示するように、本形態の分散データ変換装置320−(N−1)は、入力部121−(N−1)、出力部122−(N−1)、メモリ123a−(N−1)、記憶部323b−(N−1)、制御部324−(N−1)、及び秘密計算部327−(N−1)を有する。本形態の分散データ変換装置320−i(i=0,...,N-1)は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態の分散データ変換装置320−iは、制御部324−iの制御のもとで各処理を実行する。入力部121−iに入力されたデータや各処理で得られたデータはメモリ123a−iや記憶部323b−iに格納され、メモリ123a−iや記憶部323b−iに格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 11A, the distributed data conversion apparatus 320-n (n = 0,..., N-2) of this embodiment includes an input unit 121-n, an output unit 122-n,
<データ分散処理>
図12に例示するように、データ分散装置310(図10A)の入力部111に秘密分散される値αが入力される(ステップS111)。
<Data distribution processing>
As illustrated in FIG. 12, the value α to be secretly shared is input to the
値αは分割部211に入力される。分割部211は、値αを集合Gの要素であるR個の値αr ∈G (r=0,...,R-1)に分割し、R個の値αr ∈G (r=0,...,R-1)を出力する(ステップS211)。
The value α is input to the
選択部315は、N-2個の値v(n) (n=0,...,N-2)を選択し、値v(n) (n=0,...,N-2)を出力する(ステップS312)。選択部315は、逐一、ランダムにN-2個の値v(n) (n=0,...,N-2)選択してもよいし、事前に生成されメモリに格納されている複数個の値から所定の規則に従ってN-2個の値v(n) (n=0,...,N-2)を選択してもよい。例えば、選択される値v(n) (n=0,...,N-2)それぞれのデータ量は、集合Gの要素(1個の要素)のデータ量よりも小さい。値v(n) (n=0,...,N-2)それぞれのデータ量は集合Gの要素のデータ量よりも十分小さいことが望ましい。安全性を考慮すると、値v(n)は、値v(n)から生成される値a(n)及びP(x)から値v(n)を特定することが困難となる程度の値(全数探索による攻撃や現在の計算機の性能を考慮すれば、値v(n)は80ビット程度かそれ以上の乱数)とするのが望ましい。
The
値v(n) (n=0,...,N-2)は変換部316に入力される。変換部316は、rと値v(n)とに対応する値をz(r, v(n))とし、rのそれぞれに対してN-1個の値ar(n)=P(z(r, v(n))) (r=0,...,R-1, n=0,...,N-2)を計算し、それによって得られたR×(N-1)個の値ar(n) (r=0,...,R-1, n=0,...,N-2)を出力する(ステップS313)。P(x)が擬似乱数生成関数の場合、値ar(n)は擬似乱数となる。
The value v (n) (n = 0,..., N−2) is input to the
分割部211から出力されたR個の値αr ∈G (r=0,...,R-1)と変換部316から出力されたR×(N-1)個の値ar(n) (r=0,...,R-1, n=0,...,N-2)とは、計算部317に入力される。計算部317は、これらの値αr, ar(n) (r=0,...,R-1, n=0,...,N-2)から、R個の値ar(N-1)=g(αr, ar(0),...,ar(N-2))∈G (r=0,...,R-1)を計算し、当該値ar(N-1) (r=0,...,R-1)を出力する(ステップS314)。例えば、写像g(y, y(0),...,y(N-2))がy(N-1)=y-y(0)-y(1)...-y(N-2) (mod μ)である場合、計算部317は、ar(N-1)=αr-ar(0)-ar(1)...-ar(N-2) (mod μ)を計算し、それによって得られた値ar(N-1) (r=0,...,R-1)を出力する。
R values α r εG (r = 0,..., R−1) output from the dividing
選択部315から出力されたN-1個の値v(n) (n=0,...,N-2)と計算部317から出力された値ar(M-1) (r=0,...,R-1)とは、分散値生成部318に入力される。分散値生成部318は、これらの値ar(N-1),v(n) (n=0,..., N-2)を用い、値v(n)を分散値Tn(β) (n=0,...,N-2)とし、値ar(N-1)を分散値TN-1(αr) (r=0,...,R-1)とする。βは集合β={α0,...,αR-1}を表し、本形態の分散値生成部318は、値αr (r=0,...,R-1)の集合β={α0,...,αR-1}に対してN-1個の分散値Tn(β) (n=0,...,N-2)を得る。分散値生成部318は、分散値Tn(β)=v(n) (n=0,..., N-2), TN-1(αr)=ar(N-1) (r=0,...,R-1)を出力する(ステップS315)。
N−1 values v (n) (n = 0,..., N−2) output from the
分散値Tn(β) (n=0,..., N-2), TN-1(αr) (r=0,...,R-1)は出力部112に入力され、出力部112は分散値Tn(β) (n=0,..., N-2), TN-1(αr) (r=0,...,R-1)を出力する(ステップS316)。出力された分散値Tn(β) (n=0,..., N-2)のそれぞれは、分散データ変換装置320−n(n=0,...,N-2)のそれぞれに提供される。出力されたTN-1(αr) (r=0,...,R-1)は分散データ変換装置320−(N−1)に提供される。例えば、各分散値は、ネットワーク等を経由して、対応する分散データ変換装置320−i(図11A及び11B)に送信される。分散データ変換装置320−n(n=0,...,N-2)のそれぞれに提供された分散値Tn(β)は入力部221−nに入力され、記憶部323b−nに格納される。分散データ変換装置320−(N−1)に提供された分散値TN-1(αr)は入力部221−(N−1)に入力され、記憶部323b−(N−1)に格納される。
The variance T n (β) (n = 0, ..., N-2), T N-1 (α r ) (r = 0, ..., R-1) is input to the
<分散データ変換処理/分散値出力処理>
分散データ変換装置320−n(n=0,...,N-2)が実行する分散データ変換処理及び分散値出力処理を説明する。これらの処理は、すべての分散データ変換装置320−n(n=0,...,N-1)で実行される。
図13に例示するように、分散データ変換装置320−n(n=0,...,N-2)のそれぞれが分散値の変換を行わずに分散値を出力する場合、制御部324−n(図11A)は分散値の変換を行わずに分散値Tn(β)を読み出す旨を記憶部323b−nに指示する(ステップS321−n)。この指示を受けた記憶部323b−nは、格納している分散値Tn(β)を読み出して出力する。分散値Tn(β)は出力部122−nに送られ、出力部122−nは分散値Tn(β)をデータ復元装置330に提供する(ステップS322−n)。例えば、出力部122−nは、ネットワーク等を経由してデータ復元装置330に送信される。分散データ変換装置320−n(n=0,...,N-2)のそれぞれが分散値の変換を行わずに分散値を出力する場合には、分散データ変換処理及び分散値出力処理を実行するすべての分散データ変換装置320−n(n=0,...,N-2)が分散値の変換を行わずに分散値を出力する。
<Distributed data conversion processing / distributed value output processing>
A distributed data conversion process and a distributed value output process executed by the distributed data conversion apparatus 320-n (n = 0,..., N-2) will be described. These processes are executed by all the distributed data converters 320-n (n = 0,..., N−1).
As illustrated in FIG. 13, when each of the distributed data conversion devices 320-n (n = 0,..., N−2) outputs a distributed value without converting the distributed value, the control unit 324- n (FIG. 11A) instructs the
一方、分散データ変換装置320−n(n=0,...,N-2)のそれぞれが分散値の変換を行う場合、制御部324−nは、分散値の変換を行うために分散値Tn(β)を読み出す旨を記憶部323b−nに指示する(ステップS321−n)。この指示を受けた記憶部323b−nは、格納している分散値Tn(β)を読み出す。分散値Tn(β)は変換分散値生成部326−nに入力される。
On the other hand, when each of the distributed data converters 320-n (n = 0,..., N-2) performs the conversion of the distributed value, the control unit 324-n performs the distributed value in order to convert the distributed value. The
変換分散値生成部326−nは、分散値Tn(β)=v(n)から値ar(n)=P(z(r, v(n))) (r=0,...,R-1)を計算し、それによって得られたR個の値ar(n) (r=0,...,R-1)を変換分散値Sn(αr) (r=0,...,R-1)とする(ステップS323−n)。変換分散値生成部326−nは変換分散値Sn(αr)=ar(n) (r=0,...,R-1)を記憶部323c−nに格納する(ステップS325−n)。
The transform variance value generation unit 326-n converts the variance value T n (β) = v (n) to the value a r (n) = P (z (r, v (n))) (r = 0,. , R-1) and R values a r (n) (r = 0, ..., R-1) obtained thereby are converted into the variance value S n (α r ) (r = 0 ,..., R-1) (step S323-n). The transform variance value generation unit 326-n stores the transform variance value S n (α r ) = a r (n) (r = 0,..., R−1) in the
秘密計算部327−nは、所定の契機で記憶部323c−nに格納された変換分散値Sn(αr)=ar(n) (r=0,...,R-1)を読み出し、変換分散値Sn(αr)を入力とした秘密計算を実行し、その演算結果である分散値En,rを出力する。分散値En,rは出力部122−nから出力され、ネットワーク等を経由して、データ復元装置330に提供される。簡単な秘密計算の例は、変換分散値Sn(αr)=ar(n)の加法群Gでのスカラー倍算であり、この場合にはEi,r=υ・Sn(αr)となる。
The secret calculation unit 327-n obtains the transform variance value S n (α r ) = a r (n) (r = 0,..., R−1) stored in the
分散データ変換装置320−(N−1)が実行する分散データ変換処理及び分散値出力処理を説明する。
分散データ変換装置320−n(n=0,...,N-2)のそれぞれが分散値の変換を行わずに分散値を出力する場合、分散データ変換装置320−(N−1)(図11B)の制御部324−(N−1)は、記憶部323b−(N−1)から分散値TN-1(αr) (r=0,...,R-1)を読み出し、出力部122−(N−1)に送る。出力部122−(N−1)は、分散値TN-1(αr) (r=0,...,R-1)を出力する。分散値TN-1(αr) (r=0,...,R-1)は、ネットワーク等を経由して、データ復元装置330に提供される。
一方、分散データ変換装置320−n(n=0,...,N-2)のそれぞれが分散値の変換を行う場合であっても、分散データ変換装置320−(N−1)は分散値TN-1(αr) (r=0,...,R-1)を変更しない。秘密計算部327−(N−1)は、所定の契機で記憶部323b−(N−1)に格納された分散値TN-1(αr) (r=0,...,R-1)を読み出し、分散値TN-1(αr)を入力とした秘密計算を実行し、その演算結果である分散値EN-1,rを出力する。分散値EN-1,rは出力部122−(N−1)から出力され、ネットワーク等を経由して、データ復元装置330に提供される。簡単な秘密計算の例では、分散値EN-1,r=υ・TN-1(αr) (r=0,...,R-1)とされる。
A distributed data conversion process and a distributed value output process executed by the distributed data conversion apparatus 320- (N-1) will be described.
When each of the distributed data converters 320-n (n = 0,..., N-2) outputs a distributed value without converting the distributed value, the distributed data converter 320- (N-1) ( The control unit 324- (N-1) of FIG. 11B reads the dispersion value T N-1 (α r ) (r = 0,..., R-1) from the
On the other hand, even if each of the distributed data converters 320-n (n = 0,..., N-2) performs the conversion of the distributed values, the distributed data converter 320- (N-1) Do not change the value T N-1 (α r ) (r = 0, ..., R-1). The secret calculation unit 327- (N−1) receives the variance T N−1 (α r ) (r = 0,..., R−) stored in the
<データ復元処理>
図14に例示するように、データ復元装置330(図10B)の入力部131に、分散値Tn(β) (n=0,..., N-2), TN-1(αr) (r=0,...,R-1)、又は、分散値Ei,r(i=0,...,N-1, r=0,...,R-1)が入力される。(ステップS331)。制御部334は、分散値Tn(β), TN-1(αr)が入力されたか、分散値Ei,rが入力されたかを判定する(ステップS332)。
<Data restoration processing>
As illustrated in FIG. 14, the
ステップS332で、分散値Tn(β), TN-1(αr)が入力されたと判定された場合、分散値Tn(β) (n=0,..., N-2)が変換部335に入力される。変換部335は、分散値Tn(β)=v(n) (n=0,...,N-2)を用いて、rのそれぞれに対してN-1個の値ar(n)=P(z(r, v(n))) (r=0,...,R-1, n=0,...,N-2)を計算し、値ar(n)=P(z(r, v(n))) (r=0,...,R-1, n=0,...,N-2)を出力する(ステップS333)。
復元部336には、R×(N-1)個の値ar(n)=P(z(r, v(n))) (r=0,...,R-1, n=0,...,N-2)と、入力部131に入力されたR個のTN-1(αr)=ar(N-1) (r=0,...,R-1)とが入力される。復元部336は、値ar(n) (n=0,...,N-2)と分散値TN-1(αr)=ar(N-1)とを用いてαr=f(ar(0),...,ar(N-1)) (r=0,...,R-1)を計算し、それによって得られたR個の値αr (r=0,...,R-1)を出力する(ステップS334)。例えば、写像y=f(y(0),...,y(N-1))がy=y(0)+y(1)...+y(N-1) (mod μ)である場合、復元部336はαr=ar(0)+ar(1)+...+ar(N-1) (mod μ)を計算し、それによって得られた値αr (r=0,...,R-1)を出力する。R個の値αr (r=0,...,R-1)は結合部237に入力される。結合部237は、R個の値αr(r=0,...,R-1)を結合して値α∈Gを生成し、当該値αを出力する(ステップS335)。例えば、前述の分割部211で、値αがα=α0+μ・α1+...+μR-1・αR-1を満たす値α0,α1,...,αR-1∈{0,1,...,μ-1}に分割されていた場合、結合部237は、R個の値αr(r=0,...,R-1)から値α=α0+μ・α1+...+μR-1・αR-1を計算する。値αは出力部132に入力され、出力部132は値αを出力する(ステップS135)。
If it is determined in step S332 that the variance value T n (β), T N-1 (α r ) has been input, the variance value T n (β) (n = 0,..., N-2) is The data is input to the
The
一方、ステップS332で、分散値Ei,rが入力されたと判定された場合、分散値Ei,r(i=0,...,N-1, r=0,...,R-1)が復元部336に入力される。復元部336は、分散値Ei,r(i=0,...,N-1, r=0,...,R-1)を用いてεr=f(E0,r,..., EN-1,r) (r=0,...,R-1)を計算し、それによって得られたR個の値εr (r=0,...,R-1)を出力する(ステップS336)。例えば、写像y=f(y(0),...,y(N-1))がy=y(0)+y(1)...+y(N-1) (mod μ)である場合、復元部336はεr=E0,r+E1,r+...+EN-1,r (mod μ)を計算し、それによって得られた値εr (r=0,...,R-1)を出力する。
R個の値εr (r=0,...,R-1)は結合部237に入力される。結合部237は、R個の値εr(r=0,...,R-1)を結合して値ε∈Gを生成し、当該値εを出力する(ステップS337)。例えば、前述の分割部211で、値αがα=α0+μ・α1+...+μR-1・αR-1を満たす値α0,α1,...,αR-1∈{0,1,...,μ-1}に分割されていた場合、結合部237は、R個の値εr(r=0,...,R-1)から値ε=ε0+μ・ε1+...+μR-1・εR-1を計算する。値εは出力部132に入力され、出力部132は値εを出力する(ステップS137)。
On the other hand, if it is determined in step S332 that the variance value E i, r is input, the variance value E i, r (i = 0, ..., N-1, r = 0, ..., R- 1) is input to the
R values ε r (r = 0,..., R−1) are input to the
<本形態の特徴>
本形態では従来の秘密分散方式に比べ、分散値のデータ量を大幅に削減することができる。
比較のため以下の単純な加法的秘密分散を想定する。この単純な加法的秘密分散では、データ分散時に、R個の値ar∈G (r=0,1,…,R-1)をrのそれぞれについてN個ずつの分散値S(r,i)∈G (r=0,1,…,R-1, i=0,...,N-1)に加法的秘密分散し、R個の分散値S(0,i),...,S(R-1,i)をi番目の分散データ変換装置に送信し、各分散データ変換装置はそれらを格納する。データ復元時には、データ復元装置が全ての分散データ変換装置から分散値S(r,i)∈G (r=0,1,…,R-1, i=0,...,N-1)を受信し、R個の値ar∈G (r=0,1,…,R-1)を復元する。集合Gの要素のデータ量をLとおくと、データ分散時の通信データ量及び記憶データ量、並びにデータ復元時の通信データ量は全てN×R×Lとなる。
<Features of this embodiment>
In this embodiment, compared to the conventional secret sharing scheme, the data amount of the distributed value can be greatly reduced.
For comparison, assume the following simple additive secret sharing: In this simple additive secret sharing, R values a r ∈G (r = 0,1, ..., R-1) are divided into N distributed values S (r, i ) ∈G (r = 0,1,…, R-1, i = 0, ..., N-1), and the secret is distributed to R distributed values S (0, i), ... , S (R-1, i) are transmitted to the i-th distributed data converter, and each distributed data converter stores them. At the time of data restoration, the data restoration device receives the distributed value S (r, i) ∈G (r = 0,1, ..., R-1, i = 0, ..., N-1) from all the distributed data conversion devices. And restore R values a r ∈ G (r = 0, 1,..., R−1). If the data amount of the elements of the set G is L, the communication data amount and storage data amount at the time of data distribution and the communication data amount at the time of data restoration are all N × R × L.
これに対し、本形態ではデータ分散時に、データ分散装置310が分散値Tn(β)=v(n) (n=0,...,N-2)及びTN-1(αr)=ar(N-1)を生成し、分散データ変換装置320−nに分散値Tn(β)=v(n)を送信し、分散データ変換装置320−(N−1)に分散値TN-1(αr)=ar(N-1)を送信する。分散データ変換装置320−nは分散値Tn(β)=v(n)を格納し、分散データ変換装置320−(N−1)は分散値TN-1(αr)=ar(N-1)を格納する。データ復元時には、データ復元装置330が、分散値Tn(β)=v(n) (n=0,...,N-2)及びTN-1(αr)=ar(N-1)を受信し、R個の値ar∈G (r=0,1,…,R-1)を復元する。値v(n)のデータ量をνとおき、集合Gの要素のデータ量をLとおくと、データ分散時の通信データ量及び記憶データ量、並びにデータ復元時の通信データ量は全て(N-1)×ν+R×Lとなる。従って(N-1)×ν+R×L<N×R×Lであれば、すなわち、N-1個の分散値Tn(β) (n=0,...,N-2)のデータ量の合計値(N-1)×νが、R×(N-1)個の集合Gの要素のデータ量の合計値よりも小さいのであれば、本形態の通信データ量や記憶データ量は、上述の単純な加法的秘密分散の通信データ量や記憶データ量よりも小さくなる。例えば、値v(n)それぞれのデータ量は集合Gの要素のデータ量よりも小さいのであれば、本形態の通信データ量や記憶データ量は、上述の単純な加法的秘密分散の通信データ量や記憶データ量よりも小さくなる。例えば、値v(n)それぞれのデータ量が値ar∈Gのデータ量に対して無視できるほどの大きさなのであれば、形態の通信データ量や記憶データ量は、上述の単純な加法的秘密分散の通信データ量や記憶データ量の1/N程度となる。
さらに、分散データ変換装置での分散データ変換処理により、データ分散装置で得られた分散値からもとの値αrを復元することなく、秘密計算の入力とすることが可能な変換分散値を生成し、秘密計算を実行することもできる。
On the other hand, in this embodiment, during data distribution, the
Further, the distributed data conversion processing in the distributed data conversion device can be used to obtain a converted distributed value that can be used as an input for the secret calculation without restoring the original value α r from the distributed value obtained by the data distribution device. It can also generate and perform secret computations.
なお、本形態ではデータ分散時に、データ分散装置310が分散データ変換装置320−nに分散値Tn(β)=v(n)を送信し、分散データ変換装置320−(N−1)に分散値TN-1(αr)=ar(N-1)を送信することとした。しかしながら、データ分散時に、データ分散装置310が分散データ変換装置320−nにさらにRの値やr=0,...,R-1などのパラメータを送信してもよい。また、本形態ではRが2以上であるとしたが、R=1としてもよい。その場合の構成は第1実施形態でNi=0とすることで得られる。
〔第4実施形態〕
次に、本発明の第4実施形態を説明する。本形態は第1実施形態の変形例であり、第1実施形態の分散値が含んでいた集合Gの要素をさらに秘密分散し、分散値のデータ量をさらに削減するものである。以下では上述の実施形態との相違点を中心に説明する。上述の実施形態と共通する処理部やステップには上述の実施形態と同じ参照符号を用い、説明を簡略化する。
In this embodiment, at the time of data distribution, the
[Fourth Embodiment]
Next, a fourth embodiment of the present invention will be described. This embodiment is a modification of the first embodiment, in which the elements of the set G included in the variance value of the first embodiment are further secretly shared to further reduce the data amount of the variance value. Below, it demonstrates centering on difference with the above-mentioned embodiment. The same reference numerals as those in the above-described embodiment are used for processing units and steps that are the same as those in the above-described embodiment, and the description will be simplified.
本形態では、M, N, Kが2以上の整数であり、K≦Nであり、Ni (i=0,...,N-1)が1以上M-1以下の整数であり、Gが或る集合であり、P(x)がxに対応する値を集合Gの要素に移す写像であり、y=f(y(0),...,y(M-1))が集合Gの要素であるM個の値y(0),...,y(M-1)からなる部分集合(y(0),...,y(M-1))を集合Gの要素である値yに移す写像であり、g(y, y(0),...,y(M-2))がy=f(y(0),...,y(M-1))を満たす集合Gの要素であるM個のy, y(0),...,y(M-2)からなる部分集合(y, y(0),...,y(M-2))を値y(M-1)に移す写像である。本形態の集合G、写像P(x)、y=f(y(0),...,y(N-1))及びg(y, y(0),...,y(N-2))の具体例は、第1実施形態で説明した集合G、写像P(x)、y=f(y(0),...,y(N-1))及びg(y, y(0),...,y(N-2))の具体例と同じである。M≦Nであってもよいし、M≧Nであってもよい。M≧Rであってもよいし、M≦Rであってもよい。N≧Rであってもよいし、N≦Rであってもよい。K<Nであってもよいし、K=Nであってもよい。 In this embodiment, M, N, K are integers of 2 or more, K ≦ N, Ni (i = 0, ..., N-1) is an integer of 1 to M-1, G is a set, P (x) is a mapping that moves values corresponding to x to elements of the set G, and y = f (y (0), ..., y (M-1)) is A subset (y (0), ..., y (M-1)) consisting of M values y (0), ..., y (M-1) that are elements of the set G This is a mapping to the element value y, and g (y, y (0), ..., y (M-2)) is y = f (y (0), ..., y (M-1 )), A subset (y, y (0), ..., y (M- This is a mapping that moves 2)) to the value y (M-1). Set G of this form, map P (x), y = f (y (0), ..., y (N-1)) and g (y, y (0), ..., y (N- Specific examples of 2)) include the set G, the mapping P (x), y = f (y (0), ..., y (N-1)) and g (y, y) described in the first embodiment. (0), ..., y (N-2)) is the same as the specific example. M ≦ N or M ≧ N may be satisfied. M ≧ R or M ≦ R may be satisfied. N ≧ R or N ≦ R may be satisfied. K <N may be sufficient and K = N may be sufficient.
第4実施形態の秘密分散システムは、データ分散装置とデータ復元装置とN個の分散データ変換装置とを有する。
本形態のデータ分散装置は、M-1個の値v(m) (m=0,...,M-2)を選択し、M-1個の値a(m)=P(v(m)) (m=0,...,M-2)を得、集合Gの要素である値αに対して値a(M-1)=g(α, a(0),...,a(M-2))を得、(K, N)閾値秘密分散法Uに従って値a(M-1)を秘密分散してN個の分散値Ui(a(M-1)) (i=0,...,N-1)を得、値αの分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1), Ui(a(M-1))) (i=0,...,N-1)を得る。
The secret sharing system according to the fourth embodiment includes a data sharing device, a data restoration device, and N distributed data conversion devices.
The data distribution apparatus of this embodiment selects M-1 values v (m) (m = 0, ..., M-2) and M-1 values a (m) = P (v ( m)) (m = 0, ..., M-2) and the value a (M-1) = g (α, a (0), ... , a (M-2)) and secretly distribute the value a (M-1) according to the (K, N) threshold secret sharing method U, and N distributed values U i (a (M-1)) ( i = 0, ..., N-1), and the variance value T i (α) = (v (i, 0), v (i, 1), ..., v (i, N) i -1), U i (a (M-1))) (i = 0, ..., N-1).
ただし、集合A={a(0),...,a(M-1)}の部分集合がSi(α)={a(i,0),...,a(i,Ni-1)} (i=0,...,N-1)であり、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応するv(i, ni)がP-1(a(i, ni))であり、a(i, qi)=a(M-1)である(i, qi) (qi∈{0,...,Ni-1})に対応するv(i, qi)が空値である。また、どのような方式が(K, N)閾値秘密分散法Uとして用いられてもよいが、1個の分散値Ui(a(M-1))のデータ量が集合Gの1個の要素のデータ量よりも小さい方式が用いられることの望ましい。例えば、参考文献1「H.Krawczyk, “Secret sharing made short,” CRYPTO’93, pp.136-146, 1993.」に記載された方式を(K, N)閾値秘密分散法Uとして用いることが望ましい(詳細は後述)。参考文献1の方式の場合、1個の分散値Ui(a(M-1))のデータ量が集合Gの1個の要素のデータ量の1/K程度となる。
However, a subset of the set A = {a (0), ..., a (M-1)} is S i (α) = {a (i, 0), ..., a (i, N i -1)} (i = 0, ..., a n-1), which is a (i, n i) ≠ a (M-1) (i, n i) (n i ∈ {0 ,. .., v corresponding to n i -1}) is (i, n i) are P -1 (a (i, n i)), in a (i, q i) = a (M-1) V (i, q i ) corresponding to a certain (i, q i ) (q i ∈ {0, ..., N i -1}) is an empty value. In addition, any method may be used as the (K, N) threshold secret sharing method U, but the data amount of one distributed value U i (a (M−1)) is one in the set G. It is desirable to use a method that is smaller than the data amount of the element. For example, the method described in
本形態のデータ復元装置は、分散値Ti(α) (i=0,...,N-1)の少なくとも一部を用いてM-1個の値a(m)=P(v(m)) (m=0,...,M-2)を得、分散値Ti(α) (i=0,...,N-1)に含まれるK個の異なる分散値Uk(a(M-1)) (k∈{0,...,N-1})から値a(M-1)を得、得られた値a(m) (m=0,...,M-2)と値a(M-1)とを用いてα=f(a(0),...,a(M-1))を得る。 The data restoration apparatus according to the present embodiment uses M−1 values a (m) = P (v (v ()) using at least a part of the variance values T i (α) (i = 0,..., N−1). m)) (m = 0, ..., M-2), and K different variance values U k included in the variance T i (α) (i = 0, ..., N-1) The value a (M-1) is obtained from (a (M-1)) (k∈ {0, ..., N-1}) and the value a (m) (m = 0, ... , M-2) and the value a (M-1) to obtain α = f (a (0), ..., a (M-1)).
本形態の分散データ変換装置のそれぞれは、分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1), Ui(a(M-1))) (i=0,...,N-1)に含まれる、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応するv(i, ni)∈Ti(α)について値a(i, ni)=P(v(i, ni))を得、分散値Ti(α) (i=0,...,N-1)に含まれるK個の異なる分散値Uk(a(M-1)) (k∈{0,...,N-1})から値a(M-1)を得、得られた値a(i, ni)と値a(M-1)との少なくとも何れかを含むSi(α)={a(i,0),...,a(i,Ni-1)} (i=0,...,N-1)を変換分散値として得る。このような変換分散値Si(α)は、秘密計算の入力値として用いられる。 Each of the distributed data conversion apparatuses of the present embodiment has a distributed value T i (α) = (v (i, 0), v (i, 1), ..., v (i, N i -1), U i (a (M-1))) (i = 0, ..., N-1), (i, n i ) (i, n i ) (n the value a (i, n i ) = P (v (i, n i ) for v (i, n i ) ∈T i (α) corresponding to i ∈ {0, ..., N i -1}) ), And K different variance values U k (a (M-1)) (k∈ {0, .N) included in the variance values T i (α) (i = 0, ..., N-1). . ,, N-1}) to obtain a value a (M-1), and S i (α) including at least one of the obtained value a (i, n i ) and value a (M-1) = {a (i, 0), ..., a (i, N i -1)} (i = 0, ..., N-1) is obtained as a transformation variance value. Such a transformed variance value S i (α) is used as an input value for secret calculation.
本形態において好ましくは、a(i,j)≠a(M-1)である(i,j)に対するNi-1個のv(i,j)のデータ量とUi(a(M-1))のデータ量との合計値は、Ni個の集合Gの要素のデータ量の合計値よりも小さい。より好ましくは、値v(m)それぞれのデータ量は集合Gの要素(1個の要素)のデータ量よりも小さく、なおかつ、分散値Ui(a(M-1))それぞれのデータ量は集合Gの要素(1個の要素)のデータ量よりも小さい。 In this embodiment, preferably, the data amount of N i −1 v (i, j) and U i (a (M−M−) with respect to (i, j) where a (i, j) ≠ a (M−1). total value of the data amount of 1)) is less than the sum of the data amount of the elements N i number of set G. More preferably, the data amount of each value v (m) is smaller than the data amount of the element (one element) of the set G, and the data amount of each variance value U i (a (M-1)) is It is smaller than the data amount of the elements of the set G (one element).
<構成>
図15に例示するように、第4実施形態の秘密分散システム4は、データ分散装置410、N個の分散データ変換装置420−i(i=0,...,N-1)、及びデータ復元装置430を有する。データ分散装置410は、ネットワークや可搬型記録媒体などを経由して、N個の分散データ変換装置420−i(i=0,...,N-1)に対して情報の提供が可能である。N個の分散データ変換装置420−i(i=0,...,N-1)のそれぞれは、ネットワークや可搬型記録媒体などを経由して、データ復元装置430に対して情報の提供が可能である。分散データ変換装置420−i(i=0,...,N-1)のそれぞれは、ネットワークや可搬型記録媒体などを経由して、他の分散データ変換装置420−i’ (i’=i, i’∈{0,...,N-1})に対して情報の提供が可能である。
<Configuration>
As illustrated in FIG. 15, the secret sharing system 4 of the fourth embodiment includes a data sharing device 410, N distributed data conversion devices 420-i (i = 0,..., N−1), and data. A restoration device 430 is included. The data distribution device 410 can provide information to the N distributed data conversion devices 420-i (i = 0,..., N-1) via a network or a portable recording medium. is there. Each of the N distributed data conversion devices 420-i (i = 0,..., N-1) can provide information to the data restoration device 430 via a network, a portable recording medium, or the like. Is possible. Each of the distributed data conversion apparatuses 420-i (i = 0,..., N−1) is connected to another distributed data conversion apparatus 420-i ′ (i ′ =) via a network or a portable recording medium. i, i'∈ {0, ..., N-1}).
図16Aに例示するように、本形態のデータ分散装置410は、入力部111、出力部112、メモリ113、制御部414、選択部115、変換部116、計算部117、内部分散部418、及び分散値生成部418を有する。本形態のデータ分散装置410は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ分散装置410は、制御部414の制御のもとで各処理を実行する。入力部111に入力されたデータや各処理で得られたデータはメモリ113に格納され、メモリ113に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 16A, the data distribution apparatus 410 according to the present embodiment includes an
図16Bに例示するように、本形態のデータ復元装置430は、入力部131、出力部132、メモリ133、制御部434、変換部135、復元部136、及び内部復元部437を有する。本形態のデータ復元装置430は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ復元装置430は、制御部434の制御のもとで各処理を実行する。入力部131に入力されたデータや各処理で得られたデータはメモリ133に格納され、メモリ133に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 16B, the data restoration device 430 of this embodiment includes an
図17に例示するように、本形態の分散データ変換装置420−i (i=0,...,N-1)は、入力部121−i、出力部122−i、メモリ123a−i、記憶部123b−i,123c−i、制御部424−i、変換部125−i、変換分散値生成部426−i、内部復元部427−i、及び秘密計算部127−iを有する。本形態の分散データ変換装置420−iは、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態の分散データ変換装置420−iは、制御部424−iの制御のもとで各処理を実行する。入力部121−iに入力されたデータや各処理で得られたデータはメモリ123a−iや記憶部123b−i,123c−iに格納され、メモリ123a−iや記憶部123b−i,123c−iに格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 17, the distributed data conversion apparatus 420-i (i = 0,..., N−1) according to the present embodiment includes an input unit 121-i, an output unit 122-i, a
<データ分散処理>
図18に例示するように、データ分散装置410(図16A)の入力部111に秘密分散される値α∈Gが入力される(ステップS111)。選択部115は、M-1個の値v(m) (m=0,...,M-2)を選択し、値v(m) (m=0,...,M-2)を出力する(ステップS112)。変換部116は、入力された値v(m) (m=0,...,M-2)からM-1個の値a(m)=P(v(m)) (m=0,...,M-2)を計算し、当該M-1個の値a(m) (m=0,...,M-2)を出力する(ステップS113)。入力部111に入力された値αと変換部116から出力されたM-1個の値a(m) (m=0,...,M-2)とは計算部117に入力される。計算部117は、これらの値α,a(m) (m=0,...,M-2)から値a(M-1)=g(α, a(0),...,a(M-2))∈Gを計算し、当該値a(M-1)を出力する(ステップS114)。
<Data distribution processing>
As illustrated in FIG. 18, the value αεG to be secretly shared is input to the
計算部117から出力された値a(M-1)は、内部分散部418に入力される。内部分散部418は、(K, N)閾値秘密分散法Uに従って値a(M-1)を秘密分散してN個の分散値Ui(a(M-1)) (i=0,...,N-1)を生成し、生成したN個の分散値Ui(a(M-1)) (i=0,...,N-1)を出力する(ステップS415)。内部分散部418は、例えば参考文献1に記載された方式を用いて分散値Ui(a(M-1))を生成する。内部分散部418が、(K, N)閾値秘密分散法Uに従って、値τ=a(M-1)∈Gを秘密分散してN個の分散値Ui(τ)を生成する方法を例示する。
The value a (M−1) output from the calculation unit 117 is input to the internal dispersion unit 418. The internal distribution unit 418 secretly distributes the value a (M−1) according to the (K, N) threshold value secret distribution method U and N distributed values U i (a (M−1)) (i = 0,. .., N−1) and N generated dispersion values U i (a (M−1)) (i = 0,..., N−1) are output (step S415). The internal dispersion unit 418 generates the dispersion value U i (a (M−1)) using, for example, the method described in
[(K, N)閾値秘密分散法Uの例示]
内部分散部418は、ζビット(例えば128ビット)のランダムな値d,d(0),...,d(N-2)∈{0,1}ζを選択し、dを共通鍵暗号方式の共通鍵とし、d(N-1)=d-d(0)-...-d(N-2) mod 2ζとする。内部分散部418は、共通鍵dを用いて値τを暗号化し、共通鍵暗号方式の暗号文C(d, τ)を生成する。内部分散部418は、暗号文C(d, τ)をC(d, τ)=C(0)|C(1)|...|C(K-1)を満たすC(0),C(1),...,C(K-1)に分割する。ただし、C(0)|C(1)|...|C(K-1)は、C(0),C(1),...,C(K-1)のビット結合を表す。内部分散部418は、C(k)(k=0,...,K-1)をk次の係数としたK-1次式γ(x)=Σk=0 K-1 C(k)・xkを定め、K-1次式γ(x)のN個の関数値γ(i) mod q (i=0,...,N-1)を求める。ここで、qはC(0),C(1),...,C(K-1)よりも大きい素数である。内部分散部418は、分散値Ui(τ)=(d(i mod N),...,d(i+N-2 (mod N)), γ(i) mod q)(i=0,...,N-1)を生成する。例えば、N=3,K=2の場合、この例の分散値Ui(τ)は、U0(τ)=(d(0),d(1),γ(0) mod q), U1(τ)=(d(1),d(2),γ(1) mod q), U2(τ)=(d(2),d(0),γ(2) mod q)となる。なお、N=3,K=2の場合、U0(τ)=(d(0),d(1),C(0)), U1(τ)=(d(1),d(2), C(1)), U2(τ)=(d(2),d(0),C(0)(+)C(1))としてもよい。ただし、C(0)(+)C(1)はC(0)とC(1)との排他的論理和である([(K, N)閾値秘密分散法Uの例示]終わり)。
[Example of (K, N) threshold secret sharing method U]
The internal distribution unit 418 selects random values d, d (0),..., D (N−2) ∈ {0, 1} ζ of ζ bits (for example, 128 bits), and d is a common key encryption The common key of the scheme is d (N-1) = dd (0) -...- d (N-2)
選択部115から出力されたM-1個の値v(m) (m=0,...,M-2)と、内部分散部418から出力されたN個の分散値Ui(a(M-1)) (i=0,...,N-1)とは、分散値生成部418に入力される。分散値生成部418は、これらの値v(m), Ui(a(M-1)) (m=0,...,M-2, i=0,...,N-1)を用い、値αのN個の分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1), Ui(a(M-1))) (i=0,...,N-1)を生成して出力する。ただし、集合A={a(0),...,a(M-1)}の部分集合がSi(α)={a(i,0),...,a(i,Ni-1)} (i=0,...,N-1)であり、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応するv(i, ni)がP-1(a(i, ni))であり、a(i, qi)=a(M-1)である(i, qi) (qi∈{0,...,Ni-1})に対応するv(i, qi)が空値である(ステップS416)。
一例を挙げると、分散値生成部418は、M=N,Ni=N-1とし、分散値Ti(α) (i=0,...,N-1)を以下のように生成する。
T0(α)=(v(1), v(2),..., v(M-2), U0(a(M-1))),
T1(α)=(v(0), v(2),..., v(M-2), U1(a(M-1))),...,
TN-2(α)=(v(0), v(1),..., v(M-3), UM-2(a(M-1))),
TM-1(α)=(v(0), v(1),..., v(M-3), v(M-2), UM-1(a(M-1))) ...(4)
The M−1 values v (m) (m = 0,..., M−2) output from the
For example, the variance value generation unit 418 sets M = N and N i = N−1, and generates the variance value T i (α) (i = 0,..., N−1) as follows. To do.
T 0 (α) = (v (1), v (2), ..., v (M-2), U 0 (a (M-1))),
T 1 (α) = (v (0), v (2), ..., v (M-2), U 1 (a (M-1))), ...,
T N-2 (α) = (v (0), v (1), ..., v (M-3), U M-2 (a (M-1))),
T M-1 (α) = (v (0), v (1), ..., v (M-3), v (M-2), U M-1 (a (M-1))) ...(Four)
N個の分散値Ti(α) (i=0,...,N-1)は出力部112に入力され、出力部112はN個の分散値Ti(α) (i=0,...,N-1)を出力する(ステップS416)。出力された分散値Ti(α) (i=0,...,N-1)のそれぞれは、分散データ変換装置420−i(i=0,...,N-1)のそれぞれに提供される。例えば、分散値Ti(α)は、ネットワーク等を経由して、対応する分散データ変換装置420−i(図17)に送信される。分散データ変換装置420−i(i=0,...,N-1)のそれぞれに提供された分散値Ti(α)は入力部421−iに入力され、記憶部123b−iに格納される。
N variance values T i (α) (i = 0,..., N−1) are input to the
<分散データ変換処理/分散値出力処理>
分散データ変換装置420−i(i=0,...,N-1)が実行する分散データ変換処理及び分散値出力処理を説明する。これらの処理は、すべての分散データ変換装置420−i(i=0,...,N-1)で実行されてもよいし、それらのうちK個(K≦N)の分散データ変換装置420−k(k∈{0,...,N-1})のみで実行されてもよい。また、ステップS424−iの処理は、すべての分散データ変換装置420−i(i=0,...,N-1)で実行されてもよいし、それらのうち一部の分散データ変換装置のみで実行されてもよい。
図19に例示するように、分散データ変換装置420−i(i=0,...,N-1)のそれぞれが分散値の変換を行わずに分散値を出力する場合、制御部424−iは分散値の変換を行わずに分散値Ti(α)を読み出す旨を記憶部123b−iに指示する(ステップS421−i)。この指示を受けた記憶部123b−iは、格納している分散値Ti(α)を読み出して出力する。分散値Ti(α)は出力部122−iに送られ、出力部122−iは分散値Ti(α)を出力する(ステップS422−i)。出力された分散値Ti(α)はデータ復元装置430に提供される。例えば、分散値Ti(α)は、ネットワーク等を経由してデータ復元装置430に送信される。分散データ変換装置420−i(i=0,...,N-1)が分散値の変換を行わずに分散値を出力する場合には、分散データ変換処理及び分散値出力処理を実行するすべての分散データ変換装置420−i(i=0,...,N-1)が分散値の変換を行わずに分散値を出力する。
<Distributed data conversion processing / distributed value output processing>
A distributed data conversion process and a distributed value output process executed by the distributed data conversion apparatus 420-i (i = 0,..., N−1) will be described. These processes may be executed by all the distributed data converters 420-i (i = 0,..., N-1), or K (K ≦ N) distributed data converters among them. It may be executed only by 420-k (kε {0,..., N−1}). Further, the processing in step S424-i may be executed by all the distributed data conversion devices 420-i (i = 0,..., N-1), or some of the distributed data conversion devices. May be executed only.
As illustrated in FIG. 19, when each of the distributed data converters 420-i (i = 0,..., N−1) outputs a distributed value without converting the distributed value, the control unit 424- i instructs the
一方、分散データ変換装置420−i(i=0,...,N-1)のそれぞれが分散値の変換を行う場合、制御部424−iは、分散値の変換を行うために分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1), Ui(a(M-1)))を読み出す旨を記憶部123b−iに指示する。この指示を受けた記憶部123b−iは分散値Ti(α)を読み出す。読み出された分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1), Ui(a(M-1)))を構成する要素のうち、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応する値v(i, ni)∈Ti(α) (ni∈{0,...,Ni-1})は変換部125−iに入力される。読み出された分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1), Ui(a(M-1)))が含むUi(a(M-1))は内部復元部427−iに入力される。
変換部125−iは、入力された値v(i, ni)から値a(i, ni)=P(v(i, ni))を計算し、当該値a(i, ni)を出力する(ステップS123−i)。
On the other hand, when each of the distributed data converters 420-i (i = 0,..., N−1) performs the conversion of the distributed value, the control unit 424-i uses the distributed value to convert the distributed value. T i (α) = (v (i, 0), v (i, 1), ..., v (i, N i -1), U i (a (M-1))) The
Conversion unit 125-i is input value v (i, n i) from the values a (i, n i) = P (v (i, n i)) is calculated, and the value a (i, n i ) Is output (step S123-i).
内部復元部427−iには、記憶部123b−iから読み出された分散値Ti(α)の他、他の分散データ変換装置420−i’(i’≠i, i’∈{0,...,N-1})からネットワーク(NW)等を介して送信された分散値Ti’(α)も入力される。内部復元部427−iは、このように入力されたK個の異なる分散値Uk(a(M-1)) (k∈{0,...,N-1})から値a(M-1)を復元し、得られた値a(M-1)を出力する(ステップS424−i)。例えば、分散値Uk(a(M-1))が[(K, N)閾値秘密分散法Uの例示]で説明した方法で生成されている場合、内部復元部427−iは、分散値Uk(a(M-1))=(d(k mod N),...,d(k+N-2 (mod N)), γ(k))が含むK個のγ(k) (k∈{0,...,N-1})を用いてqを法としたK-1次式γ(x)=Σk=0 K-1 C(k)・xkの係数C(0),C(1),...,C(K-1)を求め、暗号文C(d, a(M-1))=C(0)|C(1)|...|C(K-1)を生成する。なお、係数C(0),C(1),...,C(K-1)は(x, γ(x))=(k, γ(k))をK-1次式γ(x)に代入して得られる方程式を解くことで得られる。また、N=3, K=2, U0(τ)=(d(0),d(1),C(0)), U1(τ)=(d(1),d(2), C(1)), U2(τ)=(d(2),d(0), C(0)(+)C(1))としていた場合には、C(0), C(1), C(0)(+)C(1)の何れか2個からC(0), C(1)が得られる。内部復元部427−iは、K個の分散値Uk(a(M-1))=(d(k mod N),...,d(k+N-2 (mod N)), γ(k))が含むd(k mod N),...,d(k+N-2 (mod N))から共通鍵d=d(0)+...+d(N-1) mod 2ζを計算し、共通鍵dを用いて暗号文C(d, a(M-1))を復号することで値a(M-1)を復元する。
In addition to the distributed value T i (α) read from the
変換分散値生成部426−iには、変換部125−iで得られた値a(i, ni) (ni∈{0,...,Ni-1})と、内部復元部427−iで得られた値a(M-1)と(存在するのであれば)が入力される。変換分散値生成部426−iは、得られた値a(i, ni)と値a(M-1)との少なくとも何れかを含むSi(α)={a(i,0),...,a(i,Ni-1)}を変換分散値として生成し(ステップS424−i)、当該変換分散値Si(α)を記憶部123c−iに格納する(ステップS425−i)。式(4)の分散値Ti(α)に対応する変換分散値Si(α)の例は以下の通りである。
S0(α)=(a(1), a(2),..., a(M-2), a(M-1)),
S1(α)=(a(0), a(2),..., a(M-2), a(M-1)),...,
SN-2(α)=(a(0), a(1),..., a(M-3), a(M-1)),
SM-1(α)=(a(0), a(1),..., a(M-3), a(M-2))
The conversion variance value generation unit 426-i includes a value a (i, n i ) (n i ε {0, ..., N i -1}) obtained by the conversion unit 125-i, and an internal restoration unit. The value a (M-1) obtained at 427-i and (if present) are input. The transformed variance generation unit 426-i includes S i (α) = {a (i, 0), including at least one of the obtained value a (i, n i ) and value a (M−1), ..., a (i, N i -1)} is generated as a transformed variance value (step S424-i), and the transformed variance value S i (α) is stored in the
S 0 (α) = (a (1), a (2), ..., a (M-2), a (M-1)),
S 1 (α) = (a (0), a (2), ..., a (M-2), a (M-1)), ...,
S N-2 (α) = (a (0), a (1), ..., a (M-3), a (M-1)),
S M-1 (α) = (a (0), a (1), ..., a (M-3), a (M-2))
秘密計算部127−iは、所定の契機で記憶部123c−iに格納された変換分散値Si(α)={a(i,0),...,a(i,Ni-1)}を読み出し、変換分散値Si(α)を入力とした秘密計算(例えば線形演算)を実行し、その演算結果である分散値Ei={e(i,0),...,e(i,Ni-1)}を出力する。分散値Eiは出力部122−iから出力され、データ復元装置430に提供される。
The secret calculation unit 127-i receives the transformation variance value S i (α) = {a (i, 0), ..., a (i, N i −1) stored in the
<データ復元処理>
図20に例示するように、データ復元装置430(図16B)の入力部131に、何れかK個の分散値Tk(α) (k∈{0,...,N-1})、又は、何れかK個の分散値Ek={e(k,0),...,e(k,Nk-1)} (k∈{0,...,N-1})が入力される(ステップS431)。制御部434は、分散値Tk(α)が入力されたか、分散値Ekが入力されたかを判定する(ステップS432)。
<Data restoration processing>
As illustrated in FIG. 20, any K variance values T k (α) (k∈ {0,..., N−1}) are input to the
ステップS432で、分散値Tk(α)が入力されたと判定された場合、何れかK個の分散値Tk(α) (k∈{0,...,N-1})が変換部135及び内部復元部437に入力され変換部135は、K個の分散値Tk(α) (k∈{0,...,N-1})の少なくとも一部を用いてM-1個の値a(m)=P(v(m)) (m=0,...,M-2)を計算し、値a(m) (m=0,...,M-2)を出力する(ステップS133)。内部復元部437は、K個の分散値Tk(α)が含むK個の異なる分散値Uk(a(M-1)) (k∈{0,...,N-1})から値a(M-1)を復元し、値a(M-1)を出力する(ステップS433)。復元部136には、M-1個の値a(m)=P(v(m)) (m=0,...,M-2)と値a(M-1)とが入力される。復元部136は、これらを用いてα=f(a(0),...,a(M-1))を計算し、得られた値αを出力する(ステップS134)。値αは出力部132に入力され、そこから出力される(ステップS135)。
If it is determined in step S432 that the variance value T k (α) has been input, any K variance values T k (α) (k∈ {0,..., N−1}) are converted into the conversion unit. 135 and the input to the internal restoration unit 437, the
一方、ステップS432で、分散値Ekが入力されたと判定された場合、K個の分散値Ek(k∈{0,...,N-1})が復元部136に入力される。復元部136は、K個の分散値Ek={e(k,0),...,e(k,Nk-1)} (k∈{0,...,N-1})の要素からなるM個の値e(0),...,e(M-1)を得、ε=f(e (0),...,e(M-1))を計算し、その結果εを出力する(ステップS136)。結果εは出力部132に入力され、そこから出力される(ステップS137)。
On the other hand, if it is determined in step S432 that the variance value E k has been input, K variance values E k (kε {0,..., N−1}) are input to the restoration unit 136. The restoration unit 136 uses K variance values E k = {e (k, 0), ..., e (k, N k -1)} (k∈ {0, ..., N-1}). Obtain M values e (0), ..., e (M-1) consisting of the elements of, and calculate ε = f (e (0), ..., e (M-1)) As a result, ε is output (step S136). The result ε is input to the
<本形態の特徴>
本形態では従来の秘密分散方式に比べ、分散値のデータ量を大幅に削減することができる。すなわち、本形態の分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1))を構成する要素v(i,0), v(i,1),...,v(i,Ni-1)の少なくとも1個はv(m) (m=0,...,M-2)の何れかである。したがって、集合Gの要素のみからなる従来の分散値に比べて分散値のデータ量を削減できる。さらに、本形態の分散値Ti(α)は、集合Gの要素であるa(M-1)の代わりにその秘密分散値Ui(a(M-1))を含む。そのため、秘密分散値Ui(a(M-1))のそれぞれのデータ量が集合Gの要素(1個の要素)のデータ量よりも小さいのであれば、第1実施形態よりもデータ量を削減できる。
<Features of this embodiment>
In this embodiment, compared to the conventional secret sharing scheme, the data amount of the distributed value can be greatly reduced. That is, the element v (i, n) that constitutes the variance value T i (α) = (v (i, 0), v (i, 1), ..., v (i, N i -1)) of the present embodiment. 0), v (i, 1), ..., v (i, N i -1) is at least one of v (m) (m = 0, ..., M-2) . Therefore, the data amount of the variance value can be reduced as compared with the conventional variance value including only the elements of the set G. Furthermore, the variance value T i (α) of this embodiment includes the secret sharing value U i (a (M−1)) instead of a (M−1) that is an element of the set G. Therefore, if each data amount of the secret sharing value U i (a (M−1)) is smaller than the data amount of the elements (one element) of the set G, the data amount is set to be larger than that of the first embodiment. Can be reduced.
例えば、集合Gの要素のデータ量がL、N=M=3,K=2、第1実施形態での分散値がT0(α)=(v(1), a(M-1)),T1(α)=(v(0), a(M-1)),T2(α)=(v(0), v(1))である場合、値v(0), v(1)のデータ量を無視できるのであれば、データ分散時の通信データ量及び記憶データ量は2×Lとなり、データ復元時の通信データ量はLとなる。一方、集合Gの要素のデータ量がL、N=M=3,K=2、第4実施形態での分散値がT0(α)=(v(1), U0(a(M-1))),T1(α)=(v(0), U1(a(M-1))),T2(α)=(v(0), v(1), U2(a(M-1)))である場合、値v(0), v(1)のデータ量を無視できるのであれば、データ分散時の通信データ量及び記憶データ量は1.5×Lとなり、データ復元時の通信データ量はLとなる。従ってデータ分散時の通信データ量及び記憶データ量がさらに3/4に削減されることが分かる。 For example, the data amount of the elements of the set G is L, N = M = 3, K = 2, and the variance value in the first embodiment is T 0 (α) = (v (1), a (M−1)) , T 1 (α) = (v (0), a (M-1)), T 2 (α) = (v (0), v (1)), the values v (0), v ( If the data amount of 1) can be ignored, the communication data amount and the storage data amount at the time of data distribution are 2 × L, and the communication data amount at the time of data restoration is L. On the other hand, the data amount of the elements of the set G is L, N = M = 3, K = 2, and the variance value in the fourth embodiment is T 0 (α) = (v (1), U 0 (a (M− 1))), T 1 (α) = (v (0), U 1 (a (M-1))), T 2 (α) = (v (0), v (1), U 2 (a (M-1))), if the data volume of values v (0) and v (1) can be ignored, the amount of communication data and the amount of stored data at the time of data distribution will be 1.5 × L, and data restoration The amount of communication data at that time is L. Therefore, it can be seen that the amount of communication data and the amount of stored data when data is distributed are further reduced to 3/4.
さらに、分散データ変換装置での分散データ変換処理により、データ分散装置で得られた分散値からもとの値αを復元することなく、秘密計算の入力とすることが可能な変換分散値を生成し、秘密計算を実行することもできる。 Furthermore, the distributed data conversion process in the distributed data conversion device generates a converted distributed value that can be used as an input for the secret calculation without restoring the original value α from the distributed value obtained by the data distribution device. It is also possible to execute a secret calculation.
〔第5実施形態〕
次に、本発明の第5実施形態を説明する。本形態は第2,4実施形態の変形例であり、第4実施形態において同一の値v(m)を複数の秘密分散に流用することで分散値のデータ量をさらに削減する。以下では上述の実施形態との相違点を中心に説明する。上述の実施形態と共通する処理部やステップには上述の実施形態と同じ参照符号を用い、説明を簡略化する。
第5実施形態では、M, N, K, Rが2以上の整数であり、K≦Nであり、Ni,r(i=0,...,N-1, r=0,...,R-1)が1以上M-1以下の整数であり、Gが或る集合であり、P(x)がxに対応する値を集合Gの要素に移す写像であり、y=f(y(0),...,y(M-1))が集合Gの要素であるM個の値y(0),...,y(M-1)からなる部分集合(y(0),...,y(M-1))を集合Gの要素である値yに移す写像であり、g(y, y(0),...,y(M-2))がy=f(y(0),...,y(M-1))を満たす集合Gの要素であるM個のy, y(0),...,y(M-2)からなる部分集合(y, y(0),...,y(M-2))を値y(M-1)に移す写像である。本形態の集合G、写像P(x)、y=f(y(0),...,y(N-1))及びg(y, y(0),...,y(N-2))の具体例は、第1実施形態で説明した集合G、写像P(x)、y=f(y(0),...,y(N-1))及びg(y, y(0),...,y(N-2))の具体例と同じである。M≦Nであってもよいし、M≧Nであってもよい。M≧Rであってもよいし、M≦Rであってもよい。N≧Rであってもよいし、N≦Rであってもよい。K<Nであってもよいし、K=Nであってもよい。
[Fifth Embodiment]
Next, a fifth embodiment of the present invention will be described. The present embodiment is a modification of the second and fourth embodiments. In the fourth embodiment, the same value v (m) is diverted to a plurality of secret shares to further reduce the data amount of the distributed values. Below, it demonstrates centering on difference with the above-mentioned embodiment. The same reference numerals as those in the above-described embodiment are used for processing units and steps that are the same as those in the above-described embodiment, and the description will be simplified.
In the fifth embodiment, M, N, K, and R are integers greater than or equal to 2, K ≦ N, and N i, r (i = 0, ..., N-1, r = 0,... ., R-1) is an integer greater than or equal to 1 and less than or equal to M-1, G is a set, P (x) is a mapping that transfers a value corresponding to x to an element of set G, and y = f A subset (y (0), ..., y (M-1)) of M values y (0), ..., y (M-1) where (y (0), ..., y (M-1)) is an element of the set G 0), ..., y (M-1)) to a value y that is an element of the set G, and g (y, y (0), ..., y (M-2)) Consists of M y, y (0), ..., y (M-2) elements of set G satisfying y = f (y (0), ..., y (M-1)) This is a mapping that transfers the subset (y, y (0), ..., y (M-2)) to the value y (M-1). Set G of this form, map P (x), y = f (y (0), ..., y (N-1)) and g (y, y (0), ..., y (N- Specific examples of 2)) include the set G, the mapping P (x), y = f (y (0), ..., y (N-1)) and g (y, y) described in the first embodiment. (0), ..., y (N-2)) is the same as the specific example. M ≦ N or M ≧ N may be satisfied. M ≧ R or M ≦ R may be satisfied. N ≧ R or N ≦ R may be satisfied. K <N may be sufficient and K = N may be sufficient.
第5実施形態の秘密分散システムは、データ分散装置とデータ復元装置とN個の分散データ変換装置とを有する。
本形態のデータ分散装置は、M-1個の値v(m) (m=0,...,M-2)を選択し、rと値v(m)とに対応する値をz(r, v(m))とし、rのそれぞれに対してM-1個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)を得、集合Gの要素である値αr (r=0,...,R-1)に対して値ar(M-1)=g(αr, ar(0),...,ar(M-2))を得、(K, N)閾値秘密分散法Uに従って値ar(M-1)を秘密分散してrのそれぞれについてN個の分散値Ui(ar(M-1)) (i=0,...,N-1)を得、分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1), Ui(ar(M-1))) (i=0,...,N-1, r=0,...,R-1)を得る。ただし、集合Ar={ar(0),...,ar(M-1)}の部分集合がSi(αr)={ar(i,0),...,ar(i,Ni,r-1)} (i=0,...,N-1, r=0,...,R-1)であり、ar(i, ni,r)≠ar(M-1)である(i, ni,r) (ni,r∈{0,...,Ni,r-1}, r=0,...,R-1)に対応するR個のv0(i, ni,0),...,vR-1(i, ni,R-1)の少なくとも1個(好ましくは、R個のv0(i, ni,0),...,vR-1(i, ni,R-1)の何れかのみ)がar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (r’∈{0,...,R-1})を満たすvr’(i, ni,r’)∈{v(0),...,v(M-2)}であり、ar(i, qi,r)=ar(M-1)である(i, qi,r) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)に対応するvr(i, qi,r)が空値である。
The secret sharing system according to the fifth embodiment includes a data sharing device, a data restoration device, and N distributed data conversion devices.
The data distribution apparatus of this embodiment selects M-1 values v (m) (m = 0, ..., M-2), and sets values corresponding to r and value v (m) to z ( r, v (m)) and M-1 values for each r a r (m) = P (z (r, v (m))) (r = 0, ..., R- 1, m = 0, ..., M-2) and the value a r (M-1) for the value α r (r = 0, ..., R-1) which is an element of the set G = g (α r , a r (0), ..., a r (M-2)) and secretly distribute the value a r (M-1) according to the (K, N) threshold secret sharing method U For each r, N dispersion values U i (a r (M-1)) (i = 0, ..., N-1) are obtained, and the dispersion values T i (α r ) = (v r ( i, 0), v r (i, 1), ..., v r (i, N i, r -1), U i (a r (M-1))) (i = 0, ... , N-1, r = 0, ..., R-1). Where a subset of the set A r = {a r (0), ..., a r (M-1)} is S i (α r ) = {a r (i, 0), ..., a r (i, N i, r -1)} (i = 0, ..., N-1, r = 0, ..., R-1) and a r (i, n i, r ) ≠ a r (M-1) (i, n i, r ) (n i, r ∈ {0, ..., N i, r -1}, r = 0, ..., R-1 ) Corresponding to R v 0 (i, n i, 0 ), ..., v R-1 (i, n i, R-1 ) (preferably R v 0 ( i, n i, 0 ), ..., v R-1 (only one of i, n i, R-1 )) is a r (i, n i, r ) = P (z (r, v r ′ (i, n i, r ′ ))) (r′∈ {0, ..., R-1}) satisfying v r ′ (i, n i, r ′ ) ∈ {v (0), ..., v (M-2)} and a r (i, q i, r ) = a r (M-1) (i, q i, r ) (q i, r ∈ {0 , ..., N i, r −1}, n i, r ≠ q i, r ), v r (i, q i, r ) is null.
本形態のデータ復元装置は、分散値Ti(αr) (i=0,...,N-1)の少なくとも一部を用いて、rのそれぞれに対してM-1個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)を得、分散値Ti(αr) (i=0,...,N-1)に含まれるK個の異なる分散値Uk(ar(M-1)) (k∈{0,...,N-1})から値ar(M-1)を得、第2変換部で得られた値ar(m) (m=0,...,M-2)と第1内部復元部で得られた値ar(M-1)とを用いてαr=f(ar(0),...,ar(M-1))を得る。 The data restoration apparatus of the present embodiment uses M−1 values a for each of r using at least a part of the variance values T i (α r ) (i = 0,..., N−1). r (m) = P (z (r, v (m))) (r = 0, ..., R-1, m = 0, ..., M-2) and the variance T i ( α r ) (i = 0, ..., N-1) K different variances U k (a r (M-1)) (k∈ {0, ..., N-1} ) To obtain the value a r (M-1), the value a r (m) (m = 0, ..., M-2) obtained by the second conversion unit and the first internal restoration unit. Using the value a r (M-1), α r = f (a r (0), ..., a r (M-1)) is obtained.
本形態の分散データ変換装置のそれぞれは、分散値Ti(αr) (r=0,...,R-1)に含まれるvr’(i, ni,r’) (r’∈{0,...,R-1})について値ar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (ni,r∈{0,...,Ni,r-1})を得、分散値Ti(αr)(i=0,...,N-1)に含まれるK個の異なる分散値Uk(ar(M-1)) (k∈{0,...,N-1})から値ar(M-1)を得、第3変換部で得られた値ar(i, ni,r)と第2内部復元部で得られた値ar(M-1)との少なくとも何れかを含むSi(αr)={ar(i,0),...,ar(i,Ni,r-1)} (i=0,...,N-1)を変換分散値として得る。このように得られた変換分散値Si(αr)は、秘密計算の入力値として用いられる。 Each of the distributed data conversion apparatuses of the present embodiment includes v r ′ (i, n i, r ′ ) (r ′ included in the distributed value T i (α r ) (r = 0,. ∈ {0, ..., R-1}) value a r (i, n i, r ) = P (z (r, v r ′ (i, n i, r ′ )))) (n i, r ∈ {0, ..., N i, r -1}), and K different variances included in the variance T i (α r ) (i = 0, ..., N-1) A value a r (M-1) is obtained from U k (a r (M-1)) (k∈ {0, ..., N-1}), and the value a r ( i, n i, r ) and the value a r (M−1) obtained by the second internal restoration unit include S i (α r ) = {a r (i, 0),. ., a r (i, N i, r −1)} (i = 0,..., N−1) are obtained as transformation variance values. The transform variance value S i (α r ) thus obtained is used as an input value for secret calculation.
本形態において好ましくは、ar(i,j)≠ar(M-1)である(i,j)に対するNi,r-1個のvr(i,j)のデータ量とUi(ar(M-1))のデータ量との合計値は、Ni,r個の集合Gの要素のデータ量の合計値よりも小さい。より好ましくは、値v(m)それぞれのデータ量は集合Gの要素(1個の要素)のデータ量よりも小さく、なおかつ、分散値Ui(ar(M-1))それぞれのデータ量は集合Gの要素のデータ量よりも小さい。さらにより好ましくは、値v(m)それぞれのデータ量は集合Gの要素のデータ量に対して無視できる程度の大きさである(例えば、(v(m)それぞれのデータ量)/(集合Gの要素のデータ量)≦80/106)。 Preferably, in this embodiment, the data amount of N i, r −1 v r (i, j) and U i for (i, j) where a r (i, j) ≠ a r (M−1). The total value of the data amount of (a r (M−1)) is smaller than the total value of the data amount of the elements of N i, r sets G. More preferably, the data amount of each value v (m) is smaller than the data amount of the element (one element) of the set G, and the data amount of each variance value U i (a r (M-1)) Is smaller than the data amount of the elements of set G. Even more preferably, the data amount of each value v (m) is negligible with respect to the data amount of the elements of the set G (for example, (data amount of each of v (m)) / (set G The amount of data in the element) ≦ 80/10 6 ).
<構成>
図15に例示するように、第5実施形態の秘密分散システム5は、データ分散装置510、N個の分散データ変換装置520−i(i=0,...,N-1)、及びデータ復元装置530を有する。データ分散装置510は、ネットワークや可搬型記録媒体などを経由して、N個の分散データ変換装置520−i(i=0,...,N-1)に対して情報の提供が可能である。N個の分散データ変換装置520−i(i=0,...,N-1)のそれぞれは、ネットワークや可搬型記録媒体などを経由して、データ復元装置530に対して情報の提供が可能である。分散データ変換装置520−i(i=0,...,N-1)のそれぞれは、ネットワークや可搬型記録媒体などを経由して、他の分散データ変換装置520−i’ (i’=i, i’∈{0,...,N-1})に対して情報の提供が可能である。
<Configuration>
As illustrated in FIG. 15, the secret sharing system 5 of the fifth embodiment includes a data distribution device 510, N distributed data conversion devices 520-i (i = 0,..., N−1), and data. A restoration device 530 is included. The data distribution device 510 can provide information to the N distributed data conversion devices 520-i (i = 0,..., N-1) via a network, a portable recording medium, or the like. is there. Each of the N distributed data conversion devices 520-i (i = 0,..., N-1) can provide information to the data restoration device 530 via a network, a portable recording medium, or the like. Is possible. Each of the distributed data conversion devices 520-i (i = 0,..., N−1) is connected to another distributed data conversion device 520-i ′ (i ′ =) via a network or a portable recording medium. i, i'∈ {0, ..., N-1}).
図16Aに例示するように、本形態のデータ分散装置510は、入力部111、出力部112、メモリ113、分割部211、制御部514、選択部115、変換部216、計算部217、分散値生成部518、及び内部分散部518を有する。本形態のデータ分散装置510は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ分散装置510は、制御部514の制御のもとで各処理を実行する。入力部111に入力されたデータや各処理で得られたデータはメモリ113に格納され、メモリ113に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 16A, the data distribution apparatus 510 of this embodiment includes an
図16Bに例示するように、本形態のデータ復元装置530は、入力部131、出力部132、メモリ133、制御部234、変換部235、復元部236、結合部237、内部復元部537を有する。本形態のデータ復元装置530は、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態のデータ復元装置530は、制御部534の制御のもとで各処理を実行する。入力部131に入力されたデータや各処理で得られたデータはメモリ133に格納され、メモリ133に格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 16B, the data restoration device 530 of this embodiment includes an
図17に例示するように、本形態の分散データ変換装置520−i (i=0,...,N-1)は、入力部121−i、出力部122−i、メモリ123a−i、記憶部123b−i,123c−i、制御部524−i、変換部225−i、変換分散値生成部526−i、内部復元部527−i、及び秘密計算部227−iを有する。本形態の分散データ変換装置520−iは、例えば、公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。以下では説明を省略するが、本形態の分散データ変換装置520−iは、制御部524−iの制御のもとで各処理を実行する。入力部121−iに入力されたデータや各処理で得られたデータはメモリ123a−iに格納され、メモリ123a−iに格納されたデータは必要に応じて読み出されて他の処理に利用される。
As illustrated in FIG. 17, the distributed data conversion apparatus 520-i (i = 0,..., N−1) of this embodiment includes an input unit 121-i, an output unit 122-i, a
<データ分散処理>
図21に例示するように、データ分散装置510(図16A)の入力部111に秘密分散される値αが入力される(ステップS111)。値αは分割部211に入力される。分割部211は、値αを集合Gの要素であるR個の値αr ∈G (r=0,...,R-1)に分割し、R個の値αr ∈G (r=0,...,R-1)を出力する(ステップS211)。選択部115は、M-1個の値v(m) (m=0,...,M-2)を選択し、値v(m) (m=0,...,M-2)を出力する(ステップS112)。値v(m) (m=0,...,M-2)は変換部216に入力される。変換部216は、rと値v(m)とに対応する値をz(r, v(m))とし、rのそれぞれに対してM-1個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)を生成し、当該(M-1)×R個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)を出力する(ステップS213)。分割部211から出力されたR個の値αr ∈G (r=0,...,R-1)と、変換部216から出力された(M-1)×R個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)とは計算部217に入力される。計算部217は、これらの値αr,ar(m) (r=0,...,R-1, m=0,...,M-2)から、各値αrに対して値ar(M-1)=g(αr, ar(0),...,ar(M-2))を生成し、当該R個のar(M-1) (r=0,...,R-1)を出力する(ステップS214)。
<Data distribution processing>
As illustrated in FIG. 21, the value α to be secretly shared is input to the
計算部217から出力された値ar(M-1)は、内部分散部518に入力される。内部分散部518は、(K, N)閾値秘密分散法Uに従って値ar(M-1)を秘密分散してrのそれぞれについてN個の分散値Ui(ar(M-1)) (i=0,...,N-1, r=0,...,R-1)を生成し、生成したN×R個の分散値Ui(ar(M-1)) (i=0,...,N-1, r=0,...,R-1)を出力する(ステップS515)。内部分散部518は、例えば、τ=ar(M-1)とおいて前述の[(K, N)閾値秘密分散法Uの例示]の処理を実行する。 The value a r (M−1) output from the calculation unit 217 is input to the internal dispersion unit 518. The internal distribution unit 518 secretly distributes the value a r (M−1) according to the (K, N) threshold value secret distribution method U, and N distributed values U i (a r (M−1)) for each of r. (i = 0, ..., N-1, r = 0, ..., R-1), and the generated N × R variance values U i (a r (M-1)) ( i = 0,..., N-1, r = 0,..., R-1) are output (step S515). The internal distribution unit 518 executes the above-described [exemplification of (K, N) threshold secret sharing method U], for example, with τ = a r (M−1).
選択部115から出力されたM-1個の値v(m) (m=0,...,M-2)と、内部分散部518から出力されたN×R個の分散値Ui(ar(M-1)) (i=0,...,N-1, r=0,...,R-1)とは、分散値生成部518に入力される。分散値生成部518は、これらの値v(m), Ui(ar(M-1)) (m=0,...,M-2, i=0,...,N-1, r=0,...,R-1)を用い、分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1), Ui(ar(M-1))) (i=0,...,N-1, r=0,...,R-1)を生成して出力する。ただし、集合Ar={ar(0),...,ar(M-1)}の部分集合がSi(αr)={ar(i,0),...,ar(i,Ni,r-1)} (i=0,...,N-1, r=0,...,R-1)であり、ar(i, ni,r)≠ar(M-1)である(i, ni,r) (ni,r∈{0,...,Ni,r-1}, r=0,...,R-1)に対応するR個のv0(i, ni,0),...,vR-1(i, ni,R-1)の少なくとも1個(好ましくは、R個のv0(i, ni,0),...,vR-1(i, ni,R-1)の何れかのみ)がar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (r’∈{0,...,R-1})を満たすvr’(i, ni,r’)∈{v(0),...,v(M-2)}であり、ar(i, qi,r)=ar(M-1)である(i, qi,r) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)に対応するvr(i, qi,r)が空値である(ステップS516)。例えば、a0(i, ni,0)≠a0(M-1)である(i, ni,0) (ni,0∈{0,...,Ni,0-1})に対応するv0(i, ni,0)が、ar(i, ni,r)=P(z(r, v0(i, ni,0)))を満たすv0(i, ni,0)∈{v(0),...,v(M-2)}とされる。ar(i, ni,r)≠ar(M-1)である(i, ni,r)に対応するv0(i, ni,0),...,vR-1(i, ni,R-1)のうちvr’(i, ni,r’)∈{v(0),...,v(M-2)}以外の値は、例えば、空値であってもよいし、rやR等のパラメータであってもよい。
一例を挙げると、分散値生成部518は、M=N,Ni=N-1とし、分散値Ti(αr) (i=0,...,N-1)を以下のように生成する。
T0(α0)=(v(1), v(2),..., v(M-2), U0(a0(M-1))), T0(α1)=(U0(a1(M-1))),...,T0(αR-1)=(U0(aR-1(M-1))),...,TM-1(α0)=(v(0), v(1),..., v(M-3), v(M-2), UM-1(a0(M-1))),...,TM-1(αR-1)=(UM-1(aR-1(M-1))
...(5)
M−1 values v (m) (m = 0,..., M−2) output from the
For example, the variance value generation unit 518 sets M = N and N i = N−1, and sets the variance values T i (α r ) (i = 0,..., N−1) as follows. Generate.
T 0 (α 0 ) = (v (1), v (2), ..., v (M-2), U 0 (a 0 (M-1))), T 0 (α 1 ) = ( U 0 (a 1 (M-1))), ..., T 0 (α R-1 ) = (U 0 (a R-1 (M-1))), ..., T M-1 (α 0 ) = (v (0), v (1), ..., v (M-3), v (M-2), U M-1 (a 0 (M-1))) ,. .., T M-1 (α R-1 ) = (U M-1 (a R-1 (M-1))
...(Five)
分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1), Ui(ar(M-1))) (i=0,...,N-1, r=0,...,R-1)は出力部112に入力され、出力部112は分散値Ti(αr) (i=0,...,N-1, r=0,...,R-1)を出力する(ステップS516)。出力された分散値Ti(αr) (i=0,...,N-1, r=0,...,R-1)のそれぞれは、分散データ変換装置520−i (i=0,...,N-1)のそれぞれに提供される。例えば、分散値Ti(αr)は、ネットワーク等を経由して、対応する分散データ変換装置520−i(図17)に送信される。分散データ変換装置520−i(i=0,...,N-1)のそれぞれに提供された分散値分散値Ti(αr)は入力部121−iに入力され、記憶部123b−iに格納される。
Variance T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1), U i (a r (M -1))) (i = 0, ..., N-1, r = 0, ..., R-1) are input to the
<分散データ変換処理/分散値出力処理>
分散データ変換装置520−i(i=0,...,N-1)が実行する分散データ変換処理及び分散値出力処理を説明する。これらの処理は、すべての分散データ変換装置520−i(i=0,...,N-1)で実行されてもよいし、それらのうちK個(K≦N)の分散データ変換装置520−k(k∈{0,...,N-1})のみで実行されてもよい。また、ステップS524−iの処理は、すべての分散データ変換装置520−i(i=0,...,N-1)で実行されてもよいし、それらのうち一部の分散データ変換装置のみで実行されてもよい。
図22に例示するように、分散データ変換装置520−i(i=0,...,N-1)のそれぞれが分散値の変換を行わずに分散値を出力する場合、制御部524−iは分散値の変換を行わずに分散値Ti(αr)を読み出す旨を記憶部123b−iに指示する(ステップS521−i)。この指示を受けた記憶部523b−iは、格納している分散値Ti(αr)を読み出して出力する。分散値Ti(αr)は出力部122−iに送られ、出力部122−iは分散値Ti(αr)を出力する(ステップS522−i)。出力された分散値Ti(αr)はデータ復元装置530に提供される。例えば、分散値Ti(αr)は、ネットワーク等を経由してデータ復元装置530に送信される。分散データ変換装置520−i(i=0,...,N-1)が分散値の変換を行わずに分散値を出力する場合には、分散データ変換処理及び分散値出力処理を実行するすべての分散データ変換装置520−i(i=0,...,N-1)が分散値の変換を行わずに分散値を出力する。
<Distributed data conversion processing / distributed value output processing>
A distributed data conversion process and a distributed value output process executed by the distributed data conversion apparatus 520-i (i = 0,..., N−1) will be described. These processes may be executed by all the distributed data converters 520-i (i = 0,..., N-1), or K (K ≦ N) distributed data converters among them. It may be executed only with 520-k (kε {0,..., N−1}). Further, the processing in step S524-i may be executed by all the distributed data conversion devices 520-i (i = 0,..., N-1), or some of the distributed data conversion devices. May be executed only.
As illustrated in FIG. 22, when each of the distributed data converters 520-i (i = 0,..., N−1) outputs a distributed value without converting the distributed value, the control unit 524- i instructs the
一方、分散データ変換装置520−i(i=0,...,N-1)のそれぞれが分散値の変換を行う場合、制御部524−iは、分散値の変換を行うために分散値Ti(αr)を読み出す旨を記憶部123b−iに指示する(ステップS521−i)。この指示を受けた記憶部123b−iは分散値Ti(αr)を読み出す。
読み出された分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1), Ui(ar(M-1)))を構成する要素のうち、vr’(i, ni,r’)∈{v(0),...,v(M-2)} (r’∈{0,...,R-1})は変換部225−iに入力される。読み出された分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni-1), Ui(ar(M-1)))が含むUi(ar(M-1))は内部復元部527−iに入力される。
On the other hand, when each of the distributed data conversion devices 520-i (i = 0,..., N-1) performs the conversion of the distributed value, the control unit 524-i The
Read variance T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1), U i ( a r (M-1))), v r ′ (i, n i, r ′ ) ∈ {v (0), ..., v (M-2)} (r′∈ {0, ..., R-1}) is input to the conversion unit 225-i. Read variance T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i -1), U i (a r U i ( ar (M−1)) included in (M−1))) is input to the internal restoration unit 527-i.
変換部225−iは、入力された値vr’(i, ni,r’) (r’∈{0,...,R-1})からar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (ni,r∈{0,...,Ni,r-1}, r=0,...,R-1)を計算し、当該値ar(i, ni,r)を出力する(ステップS223−i)。 The conversion unit 225-i converts the input value v r ′ (i, n i, r ′ ) (r′∈ {0, ..., R−1}) to a r (i, n i, r ). = P (z (r, v r ' (i, n i, r' ))) (n i, r ∈ {0, ..., N i, r -1}, r = 0, ..., R-1) is calculated, and the value a r (i, n i, r ) is output (step S223-i).
内部復元部527−iには、記憶部123b−iから読み出された分散値Ti(αr)の他、他の分散データ変換装置520−i’(i’≠i, i’∈{0,...,N-1})からネットワーク(NW)等を介して送信された分散値Ti’(αr)も入力される。内部復元部527−iは、rのそれぞれについてK個の異なる分散値Uk(ar(M-1)) (k∈{0,...,N-1})から値ar(M-1) (r=0,...,R-1)を復元し、得られた値ar(M-1) (r=0,...,R-1)を出力する(ステップS524−i)
In addition to the distributed value T i (α r ) read from the
変換分散値生成部526−iには、変換部125−iで得られた値ar(i, ni) (ni∈{0,...,Ni-1})と、内部復元部527−iで得られた値ar(M-1)と(存在するのであれば)が入力される。変換分散値生成部526−iは、rのそれぞれについて値ar(i, ni)と値ar(M-1)との少なくとも何れかを含むSi(αr)={ar(i,0),...,ar(i,Ni-1)}を変換分散値として生成し(ステップS524−i)、当該変換分散値Si(αr)を記憶部123c−iに格納する(ステップS525−i)。式(5)の分散値Ti(αr)に対応する変換分散値Si(αr)の例は以下の通りである。
S0(α0)=(a0(1), a0(2),..., a0(M-2), a0(M-1)), S0(α1)=(a1(1), a1(2),..., a1(M-2), a1(M-1)),...,SM-1(αR-1)=(aR-1(0), aR-1(1),..., aR-1(M-2))
The transformation variance value generation unit 526-i includes the value a r (i, n i ) (n i ε {0, ..., N i -1}) obtained by the transformation unit 125-i and internal restoration. The value a r (M−1) obtained in the part 527-i and (if present) are input. The transformed variance generation unit 526-i includes S i (α r ) = {a r (including at least one of the value a r (i, n i ) and the value a r (M−1) for each r. i, 0), ..., a r (i, N i -1)} are generated as transform variance values (step S524-i), and the transform variance value S i (α r ) is stored in the
S 0 (α 0 ) = (a 0 (1), a 0 (2), ..., a 0 (M-2), a 0 (M-1)), S 0 (α 1 ) = (a 1 (1), a 1 (2), ..., a 1 (M-2), a 1 (M-1)), ..., S M-1 (α R-1 ) = (a R -1 (0), a R-1 (1), ..., a R-1 (M-2))
秘密計算部227−iは、所定の契機で記憶部123c−iに格納された変換分散値Si(αr)={ar(i,0),...,ar(i,Ni-1)}を読み出し、変換分散値Si(αr)を入力とした秘密計算を実行し、その演算結果である分散値Ei,r={er(i,0),...,er(i,Ni-1)}を出力する。分散値Ei,rは出力部122−iから出力され、データ復元装置530に提供される。
The secret calculation unit 227-i receives the transform variance value S i (α r ) = {a r (i, 0), ..., a r (i, N) stored in the
<データ復元処理>
図23に例示するように、データ復元装置530(図16B)の入力部131に、rのそれぞれについて、何れかK個の分散値Tk(αr) (k∈{0,...,N-1})、又は、何れかK個の分散値Ek,r={er(k,0),...,er(k,Nk-1)} (k∈{0,...,N-1})が入力される(ステップS531)。制御部534は、分散値Tk(αr)が入力されたか、分散値Ek,rが入力されたかを判定する(ステップS532)。
<Data restoration processing>
As illustrated in FIG. 23, any K distributed values T k (α r ) (k∈ {0,..., For each of r are input to the
ステップS532で分散値Tk(αr)が入力されたと判定された場合、rのそれぞれについて、何れかK個の分散値Tk(αr) (k∈{0,...,N-1}, r=0,...,R-1)が変換部235に入力される。変換部235は、分散値Ti(αr) (i=0,...,N-1)の少なくとも一部を用いて、rのそれぞれに対してM-1個の値ar(m)=P(z(r,v(m))) (r=0,...,R-1, m=0,...,M-2)を計算し、値ar(m) (r=0,...,R-1, m=0,...,M-2)を出力する(ステップS233)。例えば、式(5)の分散値T0(αr), TM-1(αr) (r=0,...,R-1)が変換部235に入力された場合、変換部235は、分散値TM-1(α0)=(v(0), v(1),..., v(M-3), v(M-2), UM-1(a0(M-1)))が含む値v(0), v(1),..., v(M-3), v(M-2)を用い、rのそれぞれに対してM-1個の値ar(m)=P(z(r,v(m))) (r=0,...,R-1, m=0,...,M-2)を計算する。内部復元部537は、rのそれぞれについて、入力されたK個の異なる分散値Uk(ar(M-1)) (k∈{0,...,N-1})から値ar(M-1) (r=0,...,R-1)を復元し、当該値ar(M-1) (r=0,...,R-1)を出力する(ステップS533)。
復元部236には、rのそれぞれについてM-1個の値ar(m) (r=0,...,R-1, m=0,...,M-2)と値ar(M-1) (r=0,...,R-1)とが入力される。復元部236は、これらを用いてαr=f(ar(0),...,ar(M-1))を計算し、得られた値αr (r=0,...,R-1)を出力する(ステップS234)。値αr (r=0,...,R-1)は結合部237に入力される。結合部237は、R個の値αr(r=0,...,R-1)を結合して値α∈Gを生成し、当該値αを出力する(ステップS235)。値αは出力部132に入力され、出力部132は値αを出力する(ステップS236)。
When it is determined in step S532 that the variance value T k (α r ) has been input, for each r, any K variance values T k (α r ) (k∈ {0,..., N− 1}, r = 0,..., R−1) are input to the
The
一方、ステップS532で、分散値Ek,rが入力されたと判定された場合、rのそれぞれについてK個の分散値Ek,r(k∈{0,...,N-1})が復元部236に入力される。復元部236は、rのそれぞれについて分散値Ek,r={er(k,0),...,er(k,Nk,r-1)} (r=0,...,R-1, k∈{0,...,N-1})の要素からなるM個の値er(0),...,er(M-1)を得、εr=f(er(0),...,er(M-1))を計算し、その結果εr (r=0,...,R-1)を出力する(ステップS237)。R個の値εr(r=0,...,R-1)は結合部237に入力される。結合部237は、R個の値εr (r=0,...,R-1)を結合して値ε∈Gを生成し、当該値εを出力する(ステップS238)。値εは出力部132に入力され、出力部132は値εを出力する(ステップS239)。
On the other hand, if it is determined in step S532 that the variance value E k, r is input, K variance values E k, r (k∈ {0,..., N−1}) are obtained for each r. The data is input to the
<本形態の特徴>
本形態でも従来の秘密分散方式に比べ、分散値のデータ量を大幅に削減できる。本形態では、各値v(m)からR個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1)を生成するため、複数の値αr(r=0,...,R-1)の秘密分散を行う場合のデータ量をさらに削減できる。さらに、本形態の分散値Ti(αr)は集合Gの要素であるar(M-1)の代わりにその秘密分散値Ui(ar(M-1))を含むため、データ量をさらに削減できる。また、分散データ変換装置での分散データ変換処理により、データ分散装置で得られた分散値からもとのαやαrを復元することなく、秘密計算の入力とすることが可能な変換分散値を生成し、秘密計算を実行することもできる。
<Features of this embodiment>
Also in this embodiment, the data amount of the distributed value can be greatly reduced as compared with the conventional secret sharing scheme. In this embodiment, to generate R values a r (m) = P (z (r, v (m))) (r = 0, ..., R-1) from each value v (m) Further, it is possible to further reduce the data amount when performing secret sharing of a plurality of values α r (r = 0,..., R−1). Furthermore, since the variance value T i (α r ) of this embodiment includes the secret sharing value U i (a r (M-1)) instead of a r (M-1) that is an element of the set G, data The amount can be further reduced. Also, the distributed data conversion process in the distributed data conversion device can be used as an input for the secret calculation without restoring the original α and α r from the distributed value obtained by the data distribution device. Can be generated and a secret calculation can be performed.
<変形例等>
なお、本発明は上述の実施の形態に限定されるものではない。例えば、第2,3,5実施形態では、値αを分割してR個の値αr(r=0,...,R-1)が生成されたが、値αがR個の値αrからなるデータであってもよい。例えば、値αが表データであり、αrが当該表データを構成する要素であってもよい。その他、R個の値αrが値αから分割されたものではなく、互いに独立したデータであってもよい。
<Modifications>
The present invention is not limited to the embodiment described above. For example, in the second, third, and fifth embodiments, the value α is divided to generate R values α r (r = 0,..., R−1), but the value α is R values. Data consisting of α r may also be used. For example, the value α may be table data, and α r may be an element constituting the table data. In addition, the R values α r may not be divided from the value α, but may be independent data.
データ分散装置が上述の実施形態の分散値に加え、さらに別の情報(例えばrやRなどのパラメータや値v(m)など)を第2分散値として出力してもよい。例えば、第2,5実施形態において、Ti(αr)とrを含む(Ti(αr), r) (i=0,...,N-1, r=0,...,R-1)がデータ分散装置から出力されてもよい。その他、第3実施形態において、TN-1(αr)とrを含む(TN-1(αr), r) (r=0,...,R-1)がデータ分散装置から出力されてもよい。この場合、データ復元装置は、上述の実施形態の分散値に加え、さらに第2分散値を用いてデータの復元を行ってもよく、分散データ変換装置は、上述の実施形態の分散値に加え、さらに第2分散値を用いて変換分散値を生成してもよい。或いは、分散値としてrが送信されるのではなく、送信されるビットストリーム中のTi(αr)やTN-1(αr)の位置並びに順序、又は、記憶領域中に格納されたTi(αr)やTN-1(αr)のアドレスなどの情報にrを関連付け、これらの情報からTi(αr)やTN-1(αr)に対応するrが特定されてもよい。同様に、第2,3,5実施形態において、秘密計算の入力値として変換分散値に加えて当該変換分散値に対応するrが入力されてもよし、その他の方法で変換分散値に対応するrが特定されてもよい。 The data distribution apparatus may output further information (for example, parameters such as r and R, value v (m), etc.) as the second distribution value in addition to the distribution value of the above-described embodiment. For example, in the second and fifth embodiments, T i (α r ), r including (T i (α r ), r) (i = 0, ..., N-1, r = 0, ... , R-1) may be output from the data distribution apparatus. Other, in the third embodiment includes a T N-1 (α r) and r (T N-1 (α r), r) (r = 0, ..., R-1) from the data distribution apparatus It may be output. In this case, the data restoration device may perform data restoration using the second variance value in addition to the variance value of the above-described embodiment, and the distributed data conversion device may add to the variance value of the above-described embodiment. Further, the converted variance value may be generated using the second variance value. Alternatively, r is not transmitted as a variance value, but is stored in the storage area and the position and order of T i (α r ) and T N-1 (α r ) in the transmitted bitstream associate r in T i (α r) and T N-1 information such as the address of the (alpha r), the corresponding r is identified from the information T i (α r) and T N-1 (α r) May be. Similarly, in the second, third, and fifth embodiments, r corresponding to the transformed variance value may be input in addition to the transformed variance value as an input value for the secret calculation, or the transformed variance value is handled by other methods. r may be specified.
上述の実施形態で説明した装置の少なくとも一部の処理部が同一の装置に含まれていてもよい。例えば、データ分散装置とデータ復元装置とが同一のコンピュータを用いて構成されてもよい。また、上述の実施形態で説明した装置に含まれる一部の処理部が別の装置に含まれていてもよい。例えば、分散データ変換装置の外部の秘密計算装置に秘密計算部が設けられ、秘密計算装置が分散データ変換装置から提供された変換分散値を用いて秘密計算を行ってもよい。その他、分散データ変換装置の外部の記憶装置に分散値が格納されてもよい。この場合、分散データ変換装置が存在しなくてもよい。また、装置Aから装置Bへ情報を提供するとは、装置Aから装置Bへ情報を送信することであってもよいし、装置Aから出力された情報を可搬型記録媒体に格納し、装置Bが当該可搬型記録媒体から当該情報を読み出すことであってもよい。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。 At least a part of the processing units of the devices described in the above embodiments may be included in the same device. For example, the data distribution device and the data restoration device may be configured using the same computer. Further, some processing units included in the apparatus described in the above-described embodiment may be included in another apparatus. For example, a secret calculation unit may be provided in a secret calculation device outside the distributed data conversion device, and the secret calculation device may perform a secret calculation using a conversion distribution value provided from the distributed data conversion device. In addition, the distributed value may be stored in a storage device outside the distributed data conversion apparatus. In this case, the distributed data conversion apparatus may not exist. Providing information from device A to device B may be transmitting information from device A to device B, storing information output from device A in a portable recording medium, and device B Alternatively, the information may be read from the portable recording medium. The various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
When the above configuration is realized by a computer, the processing contents of the functions that each device should have are described by a program. The processing functions are realized on the computer by executing the program on the computer.
The program describing the processing contents can be recorded on a computer-readable recording medium. An example of a computer-readable recording medium is a non-transitory recording medium. Examples of such a recording medium are a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, and the like.
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 This program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。 A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads the program stored in its own recording device and executes the process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.
1〜5 秘密分散システム
110〜510 データ分散装置
120〜520 分散データ変換装置
130〜530 データ復元装置
1-5 Secret sharing system 110-510 Data distribution device 120-520 Distributed data conversion device 130-530 Data restoration device
Claims (19)
M-1個の値v(m) (m=0,...,M-2)を選択する選択部と、
M-1個の値a(m)=P(v(m)) (m=0,...,M-2)を得る第1変換部と、
前記集合Gの要素である値αに対して値a(M-1)=g(α, a(0),...,a(M-2))を得る第1計算部と、
集合A={a(0),...,a(M-1)}の部分集合がSi(α)={a(i,0),...,a(i,Ni-1)} (i=0,...,N-1)であり、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応するv(i, ni)がP-1(a(i, ni))であり、a(i, qi)=a(M-1)である(i, qi) (qi∈{0,...,Ni-1})に対応するv(i, qi)がa(i, qi)であり、前記値αの分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1)) (i=0,...,N-1)を得る分散値生成部と、
を有するデータ分散装置。 M and N are integers greater than or equal to 2, Ni (i = 0, ..., N-1) is an integer greater than or equal to 1 and less than or equal to M-1, G is a set, and P (x) Is a mapping that moves values corresponding to x to elements of the set G, and y = f (y (0), ..., y (M-1)) are M values that are elements of the set G A mapping that transfers a subset (y (0), ..., y (M-1)) consisting of y (0), ..., y (M-1) to a value y that is an element of the set G And g (y, y (0), ..., y (M-2)) satisfies y = f (y (0), ..., y (M-1)) A subset (y, y (0), ..., y (M-2)) consisting of M pieces of y, y (0), ..., y (M-2) is the value y ( M-1)
A selector for selecting M-1 values v (m) (m = 0, ..., M-2);
A first conversion unit for obtaining M-1 values a (m) = P (v (m)) (m = 0,..., M-2);
A first calculation unit that obtains a value a (M−1) = g (α, a (0),..., A (M−2)) for a value α that is an element of the set G;
A subset of the set A = {a (0), ..., a (M-1)} is S i (α) = {a (i, 0), ..., a (i, N i -1 )} (i = 0, ..., N-1) and (i, n i ) (n i ∈ {0, ...) where a (i, n i ) ≠ a (M-1) , N i -1}) is V (i, n i ) is P -1 (a (i, n i )) and a (i, q i ) = a (M-1) ( i, q i ) (q i ∈ {0, ..., N i -1}) corresponding to v (i, q i ) is a (i, q i ), and the variance T of the value α i (α) = (v (i, 0), v (i, 1), ..., v (i, N i -1)) (i = 0, ..., N-1) A value generator,
A data distribution apparatus.
前記第3変換部で得られた前記値a(i, ni)とv(i, qi)=a(M-1) (qi∈{0,...,Ni-1}, ni≠qi)であるa(i, qi)=v(i, qi)∈Ti(α)との少なくとも何れかを含むSi(α)={a(i,0),...,a(i,Ni-1)}を変換分散値として得る変換分散値生成部と、
を有する分散データ変換装置。 With claim 1 of the dispersion values obtained by the data distribution apparatus T i (α), a ( i, n i) ≠ is a (M-1) (i , n i) (n i ∈ {0, ..., N i -1}) to obtain the value a (i, n i ) = P (v (i, n i )) for v (i, n i ) ∈T i (α) A conversion unit;
The values a (i, n i ) and v (i, q i ) = a (M−1) (q i ∈ {0,..., N i −1}, n i ≠ q i ), including a (i, q i ) = v (i, q i ) ∈T i (α) and S i (α) = (a (i, 0), ..., a (i, N i -1)} as a transformation variance value,
A distributed data conversion apparatus.
前記第2変換部で得られた前記値a(m) (m=0,...,M-2)と前記分散値Ti(α)の何れかが含む値a(M-1)とを用いてα=f(a(0),...,a(M-1))を得る復元部と、
を有するデータ復元装置。 M-1 values a (m) = P using at least a part of the distribution values T i (α) (i = 0,..., N−1) obtained by the data distribution apparatus according to claim 1. a second converter that obtains (v (m)) (m = 0, ..., M-2);
The value a (m) (m = 0,..., M−2) obtained by the second conversion unit and the value a (M−1) included in any one of the variance values T i (α) A restoration unit that obtains α = f (a (0), ..., a (M-1)) using
A data restoration apparatus having
M-1個の値v(m) (m=0,...,M-2)を選択する選択部と、
rと値v(m)とに対応する値をz(r, v(m))とし、rのそれぞれに対してM-1個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)を得る第1変換部と、
前記集合Gの要素である値αrに対して値ar(M-1)=g(αr, ar(0),...,ar(M-2))を得る第1計算部と、
集合Ar={ar(0),...,ar(M-1)}の部分集合がSi(αr)={ar(i,0),...,ar(i,Ni,r-1)} (i=0,...,N-1, r=0,...,R-1)であり、ar(i, ni,r)≠ar(M-1)である(i, ni,r) (ni,r∈{0,...,Ni,r-1}, r=0,...,R-1)に対応するR個のv0(i, ni,0),...,vR-1(i, ni,R-1)の少なくとも1個がar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (r’∈{0,...,R-1})を満たすvr’(i, ni,r’)∈{v(0),...,v(M-2)}であり、ar(i, qi,r)=ar(M-1)である(i, qi,r) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)に対応するvr(i, qi,r)がar(i, qi,r)=ar(M-1)であり、分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1)) (i=0,...,N-1, r=0,...,R-1)を得る分散値生成部と、
を有するデータ分散装置。 M, N, and R are integers greater than or equal to 2, and N i, r (i = 0, ..., N-1, r = 0, ..., R-1) is greater than or equal to 1 and less than or equal to M-1 An integer, G is a set, and P (x) is a mapping that moves a value corresponding to x to an element of the set G, y = f (y (0), ..., y (M -1)) is a subset (y (0), ..., y (M-1) consisting of M values y (0), ..., y (M-1), which are elements of the set G )) To a value y that is an element of the set G, and g (y, y (0), ..., y (M-2)) is y = f (y (0), ... ., y (M-1)) satisfying a subset (y, y (0), ..., y (M-2)) to the value y (M-1),
A selector for selecting M-1 values v (m) (m = 0, ..., M-2);
The value corresponding to r and the value v (m) is z (r, v (m)), and M−1 values a r (m) = P (z (r, v ( m))) a first converter that obtains (r = 0, ..., R-1, m = 0, ..., M-2);
A first calculation for obtaining a value a r (M−1) = g (α r , a r (0),..., A r (M−2)) for a value α r that is an element of the set G And
A subset of the set A r = {a r (0), ..., a r (M-1)} is S i (α r ) = {a r (i, 0), ..., a r ( i, N i, r -1)} (i = 0, ..., N-1, r = 0, ..., R-1) and a r (i, n i, r ) ≠ a r (M-1) is (i, n i, r ) (n i, r ∈ {0, ..., N i, r -1}, r = 0, ..., R-1) At least one of the corresponding R v 0 (i, n i, 0 ), ..., v R-1 (i, n i, R-1 ) is a r (i, n i, r ) = P (z (r, v r ′ (i, n i, r ′ ))) (v r ′ (i, n i, r ′ ) satisfying (r′∈ {0, ..., R-1}) ∈ {v (0), ..., v (M-2)} and a r (i, q i, r ) = a r (M-1) (i, q i, r ) ( q i, r ∈ {0, ..., n i, r -1}, n i, r ≠ q i, v r (i corresponding to r), q i, r) is a r (i, q i, r ) = a r (M-1) and variance T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1)) (i = 0, ..., N-1, r = 0, ..., R-1)
A data distribution apparatus.
前記第3変換部で得られた前記値ar(i, ni,r) (ni,r∈{0,...,Ni,r-1})とvr(i, qi,r)=ar(M-1) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)であるar(i, qi,r)=vr(i, qi,r)∈Ti(αr)との少なくとも何れかを含むSi(αr)={ar(i,0),...,ar(i,Ni,r-1)}を変換分散値として得る変換分散値生成部と、
を有する分散データ変換装置。 V r ′ (i, n i, r ′ ) (r′∈ {0,..., R−1}) included in the dispersion value T i (α r ) obtained by the data distribution apparatus according to claim 4. Value a r (i, n i, r ) = P (z (r, v r ′ (i, n i, r ′ ))) (n i, r ∈ {0, ..., N i, r -1}), and a third conversion unit
The values a r (i, n i, r ) (n i, r ε {0, ..., N i, r -1}) and v r (i, q i ) obtained by the third conversion unit , r ) = a r (M-1) (q i, r ∈ {0, ..., N i, r -1}, n i, r ≠ q i, r ) a r (i, q i, r ) = v r (i, q i, r ) ∈T i (α r ) and at least one of S i (α r ) = (a r (i, 0), ..., a r (i, N i, r −1)} as a transformation variance value,
A distributed data conversion apparatus.
前記第2変換部で得られた前記値ar(m) (m=0,...,M-2)と前記分散値Ti(αr)の何れかが含む値ar(M-1)とを用いてαr=f(ar(0),...,ar(M-1))を得る復元部と、
を有するデータ復元装置。 Using at least a part of the distribution values T i (α r ) (i = 0, ..., N-1) obtained by the data distribution apparatus of claim 4, M-1 items for each of r The second transformation to obtain the value a r (m) = P (z (r, v (m))) (r = 0, ..., R-1, m = 0, ..., M-2) And
The value a r (M−) included in one of the value a r (m) (m = 0,..., M−2) obtained by the second conversion unit and the variance value T i (α r ). 1) and a restoration unit that obtains α r = f (a r (0), ..., a r (M-1)),
A data restoration apparatus having
N-1個の値v(n) (n=0,...,N-2)を選択する選択部と、
rと値v(n)とに対応する値をz(r, v(n))とし、rのそれぞれに対してN-1個の値ar(n)=P(z(r, v(n))) (r=0,...,R-1, n=0,...,N-2)を得る第1変換部と、
前記集合Gの要素である値αr (r=0,...,R-1)に対して値ar(N-1)=g(αr, ar(0),...,ar(N-2))を得る第1計算部と、
前記値v(n)を分散値Tn(β) (n=0,...,N-2、β={α 0 ,...,α R-1 })とし、前記値ar(N-1)を分散値TN-1(αr)とする分散値生成部と、
を有するデータ分散装置。 N and R are integers greater than or equal to 2, Ni (i = 0, ..., N-1) is an integer greater than or equal to 1 and less than or equal to N-1, G is a set, and P (x) Is a map that transfers values corresponding to x to elements of the set G, and N values where y = f (y (0), ..., y (N-1)) are elements of the set G A mapping that transfers a subset (y (0), ..., y (N-1)) consisting of y (0), ..., y (N-1) to a value y that is an element of the set G And g (y, y (0), ..., y (N-2)) satisfies y = f (y (0), ..., y (N-1)) A subset (y, y (0), ..., y (N-2)) consisting of N y, y (0), ..., y (N-2) is the value y ( N-1)
A selection section for selecting N-1 values v (n) (n = 0, ..., N-2);
The value corresponding to r and the value v (n) is z (r, v (n)), and N-1 values a r (n) = P (z (r, v ( n))) a first converter that obtains (r = 0, ..., R-1, n = 0, ..., N-2);
The value a r (N-1) = g (α r , a r (0), ..., for the value α r (r = 0, ..., R-1) which is an element of the set G a r (N-2)) to obtain a first calculation unit;
The value v (n) is a variance value T n (β) (n = 0, ..., N-2 , β = {α 0 , ..., α R-1 } ), and the value a r ( (N-1) as a variance value T N-1 (α r ),
A data distribution apparatus.
前記第2変換部で得られた前記値ar(n) (n=0,...,N-2)と前記分散値TN-1(αr)=ar(N-1)とを用いてαr=f(ar(0),...,ar(N-1)) (r=0,...,R-1)を得る復元部と、
を有するデータ復元装置。 The distribution value T n (β) (n = 0,..., N−2) obtained by the data distribution apparatus according to claim 7 is used, and N−1 values a r ( n) = P (z (r, v (n))) (r = 0, ..., R-1, n = 0, ..., N-2)
The value a r (n) (n = 0,..., N−2) obtained by the second conversion unit and the variance value T N−1 (α r ) = a r (N−1) A reconstruction unit that obtains α r = f (a r (0), ..., a r (N-1)) (r = 0, ..., R-1) using
A data restoration apparatus having
M-1個の値v(m) (m=0,...,M-2)を選択する選択部と、
M-1個の値a(m)=P(v(m)) (m=0,...,M-2)を得る第1変換部と、
前記集合Gの要素である値αに対して値a(M-1)=g(α, a(0),...,a(M-2))を得る第1計算部と、
(K, N)閾値秘密分散法Uに従って前記値a(M-1)を秘密分散してN個の分散値Ui(a(M-1)) (i=0,...,N-1)を得る内部分散部と、
集合A={a(0),...,a(M-1)}の部分集合がSi(α)={a(i,0),...,a(i,Ni-1)} (i=0,...,N-1)であり、a(i, ni)≠a(M-1)である(i, ni) (ni∈{0,...,Ni-1})に対応するv(i, ni)がP-1(a(i, ni))であり、a(i, qi)=a(M-1)である(i, qi) (qi∈{0,...,Ni-1})に対応するv(i, qi)が空値であり、前記値αの分散値Ti(α)=(v(i,0), v(i,1),...,v(i,Ni-1), Ui(a(M-1))) (i=0,...,N-1)を得る分散値生成部と、
を有するデータ分散装置。 M, N, K are integers of 2 or more, K ≦ N, Ni (i = 0, ..., N-1) is an integer of 1 to M-1, and G is Is a set, and P (x) is a mapping that transfers a value corresponding to x to an element of the set G, and y = f (y (0), ..., y (M-1)) is the set G A subset (y (0), ..., y (M-1)) consisting of M values y (0), ..., y (M-1) that are elements of Y (f (y (0), ..., y (M-1)), where g (y, y (0), ..., y (M-2)) ) Satisfying the subset (y, y (0), ..., y (M- 2)) is a mapping that moves to the value y (M-1),
A selector for selecting M-1 values v (m) (m = 0, ..., M-2);
A first conversion unit for obtaining M-1 values a (m) = P (v (m)) (m = 0,..., M-2);
A first calculation unit that obtains a value a (M−1) = g (α, a (0),..., A (M−2)) for a value α that is an element of the set G;
The value a (M-1) is secretly distributed according to the (K, N) threshold secret sharing method U, and N distributed values U i (a (M-1)) (i = 0, ..., N- 1) obtain internal dispersion part,
A subset of the set A = {a (0), ..., a (M-1)} is S i (α) = {a (i, 0), ..., a (i, N i -1 )} (i = 0, ..., N-1) and (i, n i ) (n i ∈ {0, ...) where a (i, n i ) ≠ a (M-1) , N i -1}) is V (i, n i ) is P -1 (a (i, n i )) and a (i, q i ) = a (M-1) ( i, q i ) (q i ∈ {0, ..., N i -1}) corresponding to v (i, q i ) is a null value, and the variance value T i (α) = (v (i, 0), v (i, 1), ..., v (i, N i -1), U i (a (M-1))) (i = 0, ..., N -1) to obtain a variance value generation unit,
A data distribution apparatus.
前記分散値Ti(α)(i=0,...,N-1)に含まれるK個の異なる分散値Uk(a(M-1)) (k∈{0,...,N-1})から前記値a(M-1)を得る第2内部復元部と、
前記第3変換部で得られた前記値a(i, ni)と前記第2内部復元部で得られた前記値a(M-1)との少なくとも何れかを含むSi(α)={a(i,0),...,a(i,Ni-1)} (i=0,...,N-1)を変換分散値として得る変換分散値生成部と、
を有する分散データ変換装置。 The distribution value T i (α) (i = 0,..., N−1) obtained by the data distribution apparatus according to claim 10 is used, and a (i, n i ) ≠ a (M−1). The value a (i, n i ) = P for v (i, n i ) ∈T i (α) corresponding to (i, n i ) (n i ∈ {0, ..., N i -1}) a third conversion unit for obtaining (v (i, n i ));
K different variance values U k (a (M-1)) (k∈ {0, ...,) included in the variance values T i (α) (i = 0, ..., N-1) N-1}) to obtain the value a (M-1) from the second internal restoration unit;
S i (α) = including at least one of the value a (i, n i ) obtained by the third conversion unit and the value a (M−1) obtained by the second internal restoration unit {a (i, 0), ..., a (i, N i -1)} (i = 0, ..., N-1), a transform variance value generation unit that obtains transform variance values;
A distributed data conversion apparatus.
前記分散値Ti(α)(i=0,...,N-1)に含まれるK個の異なる分散値Uk(a(M-1)) (k∈{0,...,N-1})から前記値a(M-1)を得る第1内部復元部と、
前記第2変換部で得られた前記値a(m) (m=0,...,M-2)と前記第1内部復元部で得られた前記値a(M-1)とを用いてα=f(a(0),...,a(M-1))を得る復元部と、
を有するデータ復元装置。 11. M−1 values a (m) = P using at least a part of the dispersion values T i (α) (i = 0,..., N−1) obtained by the data distribution apparatus according to claim 10. a second converter that obtains (v (m)) (m = 0, ..., M-2);
K different variance values U k (a (M-1)) (k∈ {0, ...,) included in the variance values T i (α) (i = 0, ..., N-1) N-1}) from which a value a (M-1) is obtained,
Using the value a (m) (m = 0,..., M−2) obtained by the second conversion unit and the value a (M−1) obtained by the first internal restoration unit A restoring unit for obtaining α = f (a (0), ..., a (M-1))
A data restoration apparatus having
M-1個の値v(m) (m=0,...,M-2)を選択する選択部と、
rと値v(m)とに対応する値をz(r, v(m))とし、rのそれぞれに対してM-1個の値ar(m)=P(z(r, v(m))) (r=0,...,R-1, m=0,...,M-2)を得る第1変換部と、
前記集合Gの要素である値αr (r=0,...,R-1)に対して値ar(M-1)=g(αr, ar(0),...,ar(M-2))を得る第1計算部と、
(K, N)閾値秘密分散法Uに従って前記値ar(M-1)を秘密分散してrのそれぞれについてN個の分散値Ui(ar(M-1)) (i=0,...,N-1)を得る内部分散部と、
集合Ar={ar(0),...,ar(M-1)}の部分集合がSi(αr)={ar(i,0),...,ar(i,Ni,r-1)} (i=0,...,N-1, r=0,...,R-1)であり、ar(i, ni,r)≠ar(M-1)である(i, ni,r) (ni,r∈{0,...,Ni,r-1}, r=0,...,R-1)に対応するR個のv0(i, ni,0),...,vR-1(i, ni,R-1)の少なくとも1個がar(i, ni,r)=P(z(r, vr’(i, ni,r’))) (r’∈{0,...,R-1})を満たすvr’(i, ni,r’)∈{v(0),...,v(M-2)}であり、ar(i, qi,r)=ar(M-1)である(i, qi,r) (qi,r∈{0,...,Ni,r-1}, ni,r≠qi,r)に対応するvr(i, qi,r)が空値であり、分散値Ti(αr)=(vr(i,0), vr(i,1),...,vr(i,Ni,r-1), Ui(ar(M-1))) (i=0,...,N-1, r=0,...,R-1)を得る分散値生成部と、
を有するデータ分散装置。 M, N, K, R are integers greater than or equal to 2, K ≦ N, and N i, r (i = 0, ..., N-1, r = 0, ..., R-1) Is an integer greater than or equal to 1 and less than or equal to M−1, G is a certain set, P (x) is a mapping that transfers a value corresponding to x to an element of the set G, and y = f (y (0) , ..., y (M-1)) is a subset (y (0), ...) consisting of M values y (0), ..., y (M-1), whose elements are the set G. .., y (M-1)) to a value y that is an element of the set G, and g (y, y (0), ..., y (M-2)) is y = f A subset of M y, y (0), ..., y (M-2) that are elements of the set G satisfying (y (0), ..., y (M-1)) (y, y (0), ..., y (M-2)) is a mapping that moves to the value y (M-1),
A selector for selecting M-1 values v (m) (m = 0, ..., M-2);
The value corresponding to r and the value v (m) is z (r, v (m)), and M−1 values a r (m) = P (z (r, v ( m))) a first converter that obtains (r = 0, ..., R-1, m = 0, ..., M-2);
For a value α r (r = 0, ..., R-1) which is an element of the set G, a value a r (M-1) = g (α r , a r (0), ..., a r (M-2)) to obtain a first calculation unit;
(K, N) The value a r (M-1) is secretly distributed according to the threshold secret sharing method U, and N distributed values U i (a r (M-1)) (i = 0, ..., N-1)
A subset of the set A r = {a r (0), ..., a r (M-1)} is S i (α r ) = {a r (i, 0), ..., a r ( i, N i, r -1)} (i = 0, ..., N-1, r = 0, ..., R-1) and a r (i, n i, r ) ≠ a r (M-1) is (i, n i, r ) (n i, r ∈ {0, ..., N i, r -1}, r = 0, ..., R-1) At least one of the corresponding R v 0 (i, n i, 0 ), ..., v R-1 (i, n i, R-1 ) is a r (i, n i, r ) = P (z (r, v r ′ (i, n i, r ′ ))) (v r ′ (i, n i, r ′ ) satisfying (r′∈ {0, ..., R-1}) ∈ {v (0), ..., v (M-2)} and a r (i, q i, r ) = a r (M-1) (i, q i, r ) ( q i, r ∈ {0, ..., n i, r -1}, n i, r ≠ q i, v r (i corresponding to r), q i, r) is empty value, variance Value T i (α r ) = (v r (i, 0), v r (i, 1), ..., v r (i, N i, r -1), U i (a r (M- 1))) A variance generator that obtains (i = 0, ..., N-1, r = 0, ..., R-1),
A data distribution apparatus.
前記分散値Ti(αr)(i=0,...,N-1)に含まれるK個の異なる分散値Uk(ar(M-1)) (k∈{0,...,N-1})から前記値ar(M-1)を得る第2内部復元部と、
前記第3変換部で得られた前記値ar(i, ni,r)と前記第2内部復元部で得られた前記値ar(M-1)との少なくとも何れかを含むSi(αr)={ar(i,0),...,ar(i,Ni,r-1)} (i=0,...,N-1)を変換分散値として得る変換分散値生成部と、
を有する分散データ変換装置。 V r ′ (i, n i, r ′ ) (r ′ included in the dispersion value T i (α r ) (r = 0,..., R−1) obtained by the data distribution apparatus according to claim 13. ∈ {0, ..., R-1}) value a r (i, n i, r ) = P (z (r, v r ′ (i, n i, r ′ )))) (n i, r ∈ {0, ..., N i, r -1}),
K different dispersion values U k (a r (M-1)) (k∈ {0,...) Included in the dispersion values T i (α r ) (i = 0, ..., N-1). ., N-1}) from the second internal restoration unit for obtaining the value a r (M-1)
S i including at least one of the value a r (i, n i, r ) obtained by the third conversion unit and the value a r (M−1) obtained by the second internal restoration unit (α r ) = {a r (i, 0), ..., a r (i, N i, r -1)} (i = 0, ..., N-1) is obtained as the transformation variance A transform variance value generation unit;
A distributed data conversion apparatus.
前記分散値Ti(αr) (i=0,...,N-1)に含まれるK個の異なる分散値Uk(ar(M-1)) (k∈{0,...,N-1})から前記値ar(M-1)を得る第1内部復元部と、
前記第2変換部で得られた前記値ar(m) (m=0,...,M-2)と前記第1内部復元部で得られた前記値ar(M-1)とを用いてαr=f(ar(0),...,ar(M-1))を得る復元部と、
を有するデータ復元装置。 14. At least part of the dispersion values T i (α 0 ) (i = 0,..., N−1) obtained by the data distribution apparatus according to claim 13, M−1 pieces for each of r The second transformation to obtain the value a r (m) = P (z (r, v (m))) (r = 0, ..., R-1, m = 0, ..., M-2) And
K different dispersion values U k (a r (M-1)) (k∈ {0,...) Included in the dispersion values T i (α r ) (i = 0, ..., N-1). ., N−1}) from the first internal restoration unit for obtaining the value a r (M−1),
The value a r (m) (m = 0,..., M−2) obtained by the second conversion unit and the value a r (M−1) obtained by the first internal restoration unit A restoration unit that obtains α r = f (a r (0), ..., a r (M-1)) using
A data restoration apparatus having
前記M-1個の値v(m) (m=0,...,M-2)のデータ量の合計値は、M-1個の前記集合Gの要素のデータ量の合計値よりも小さい、データ分散装置。 The data distribution apparatus according to claim 1, wherein
The total value of the data amount of the M-1 values v (m) (m = 0, ..., M-2) is larger than the total value of the data amount of the elements of the M-1 sets G. A small data distribution device.
N-1個の前記分散値Tn(β) (n=0,...,N-2)のデータ量の合計値は、R×(N-1)個の前記集合Gの要素のデータ量の合計値よりも小さい、データ分散装置。 The data distribution apparatus according to claim 7 , wherein
The total value of the data amount of the N−1 variance values T n (β) (n = 0,..., N−2) is R × (N−1) element G data. A data distribution device that is smaller than the total amount.
a(i,j)≠a(M-1)である(i,j)に対するNi-1個のv(i,j)のデータ量とUi(a(M-1))のデータ量との合計値は、Ni個の前記集合Gの要素のデータ量の合計値よりも小さい、データ分散装置。 The data distribution apparatus according to claim 10 , wherein
N i -1 v (i, j) data amount and U i (a (M-1)) data amount for (i, j) where a (i, j) ≠ a (M-1) Is a data distribution device that is smaller than the total value of the data amounts of the elements of the N i sets G.
ar(i,j)≠ar(M-1)である(i,j)に対するNi,r-1個のvr(i,j)のデータ量とUi(ar(M-1))のデータ量との合計値は、Ni,r個の前記集合Gの要素のデータ量の合計値よりも小さい、データ分散装置。 14. The data distribution device of claim 13 , wherein
The data amount of N i, r -1 v r (i, j) and U i (a r (M--) for (i, j) where a r (i, j) ≠ a r (M-1) A data distribution device in which the total value of the data amount in 1)) is smaller than the total value of the data amounts of the elements of the N i, r sets G.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012001346A JP5683503B2 (en) | 2012-01-06 | 2012-01-06 | Data distribution device, distributed data conversion device, and data restoration device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012001346A JP5683503B2 (en) | 2012-01-06 | 2012-01-06 | Data distribution device, distributed data conversion device, and data restoration device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2013142710A JP2013142710A (en) | 2013-07-22 |
| JP5683503B2 true JP5683503B2 (en) | 2015-03-11 |
Family
ID=49039309
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012001346A Active JP5683503B2 (en) | 2012-01-06 | 2012-01-06 | Data distribution device, distributed data conversion device, and data restoration device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5683503B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6059160B2 (en) * | 2014-01-16 | 2017-01-11 | 日本電信電話株式会社 | Share conversion system, share conversion method, program |
| JP6059159B2 (en) * | 2014-01-16 | 2017-01-11 | 日本電信電話株式会社 | Share conversion system, share conversion method, program |
-
2012
- 2012-01-06 JP JP2012001346A patent/JP5683503B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2013142710A (en) | 2013-07-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7729938B2 (en) | Homomorphic encryption methods applied to private information retrieval | |
| KR101386294B1 (en) | Encryption processing system, key generation device, encryption device, decryption device, signature processing system, signature device and verification device | |
| JP6053966B2 (en) | Cryptographic system and re-encryption device | |
| KR101344353B1 (en) | Secret sharing system, sharing apparatus, share management apparatus, acquisition apparatus, processing methods thereof, secret sharing method, and recording medium storing program | |
| WO2014007310A1 (en) | Secret sharing system, data distribution device, distributed data conversion device, secret sharing method, and program | |
| CN105210133B (en) | encryption system and encryption method | |
| EP3959841B1 (en) | Compression and oblivious expansion of rlwe ciphertexts | |
| JP5334873B2 (en) | Cryptographic processing system, key generation device, key delegation device, encryption device, decryption device, cryptographic processing method, and cryptographic processing program | |
| JP5944841B2 (en) | Secret sharing system, data sharing device, distributed data holding device, secret sharing method, and program | |
| JP5677273B2 (en) | Cryptographic processing system, cryptographic processing method, cryptographic processing program, and key generation apparatus | |
| KR20130084669A (en) | Encryption processing system, key generation device, encryption device, decryption device, encryption processing method, and encryption processing program | |
| JP5921410B2 (en) | Cryptosystem | |
| JP5458116B2 (en) | Data distribution device, distributed data conversion device, data restoration device | |
| JP2019215391A (en) | Decryption device, encryption device and encryption system | |
| JP5683503B2 (en) | Data distribution device, distributed data conversion device, and data restoration device | |
| JP2010160235A (en) | Retrieval system, terminal device, database device, retrieval method, and program | |
| JP5596616B2 (en) | Information providing system, mediating apparatus, mediating method, information providing method, and program | |
| JP2016156853A (en) | Distributed value conversion system, distributed value conversion apparatus, distributed value conversion method, and program | |
| Al Etaiwi et al. | Structured encryption algorithm for text cryptography | |
| JP2019117232A (en) | Encryption device, decryption device, method for encryption, method for decryption, and program | |
| CN119128976B (en) | Privacy-protecting data processing method and computing device | |
| JP5755600B2 (en) | Commitment system, common reference information generating device, commit generating device, commit receiving device, commitment method | |
| JP2025133672A (en) | Secure computation system and secure computation method | |
| CN118898082A (en) | A method, device and system for implementing encrypted database ciphertext index | |
| JP2015136049A (en) | Proxy signature device, signature verification device, key generation device, proxy signature system, and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140206 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141010 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141021 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141212 |
|
| 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: 20150106 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150113 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5683503 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |