JP2014138349A - Secret sharing system, data sharing device, shared data retention device, secret sharing scheme, and program - Google Patents

Secret sharing system, data sharing device, shared data retention device, secret sharing scheme, and program Download PDF

Info

Publication number
JP2014138349A
JP2014138349A JP2013006913A JP2013006913A JP2014138349A JP 2014138349 A JP2014138349 A JP 2014138349A JP 2013006913 A JP2013006913 A JP 2013006913A JP 2013006913 A JP2013006913 A JP 2013006913A JP 2014138349 A JP2014138349 A JP 2014138349A
Authority
JP
Japan
Prior art keywords
secret sharing
values
unit
value
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.)
Granted
Application number
JP2013006913A
Other languages
Japanese (ja)
Other versions
JP5944841B2 (en
Inventor
Masaru Igarashi
大 五十嵐
Akira Kikuchi
亮 菊池
Koji Senda
浩司 千田
Hiroki Hamada
浩気 濱田
Original Assignee
Nippon Telegr & Teleph Corp <Ntt>
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegr & Teleph Corp <Ntt>, 日本電信電話株式会社 filed Critical Nippon Telegr & Teleph Corp <Ntt>
Priority to JP2013006913A priority Critical patent/JP5944841B2/en
Publication of JP2014138349A publication Critical patent/JP2014138349A/en
Application granted granted Critical
Publication of JP5944841B2 publication Critical patent/JP5944841B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To enable restoration and redistribution, and falsification detection by performing multi-party computation using a variance value by a computational secret sharing scheme.SOLUTION: A data sharing device 10 generates pseudo random numbers r, ..., rfrom keys s, ..., s; generates ciphertext c from information a by using the pseudo random numbers r, ..., r; distributes the keys s, ..., sto variance values f(n), ..., f(n); and distributes the ciphertext c to variance values f(n). A shared data retention device 20 generates a restoration value Ufrom variance values f(λ); generates a restoration value Ufrom variance values f(λ); distributes the restoration values Uand Uto variance values f(n) and f(n) using a secret sharing scheme S2 having homomorphy; and generates a variance value g(i) from variance values f(i), ..., f(i). The shared data retention device 20 verifies whether or not any of the variance values is tampered with by comparing a conversion verification value c'generated by using the variance value g(i) with a conversion check sum cgenerated by using the variance value g(i).

Description

この発明は、計算量型秘密分散技術およびマルチパーティ計算技術に関する。   The present invention relates to a computational complexity type secret sharing technique and a multi-party calculation technique.
秘密分散は、データを複数の分散値に変換し、一定個数以上の分散値を用いれば元のデータを復元でき、一定個数未満の分散値からは元のデータを一切復元できなくする技術である。分散値の総数をN、復元に必要な分散値の最小数をK(≦N)としたとき、N,Kの値に制限がない方式と制限がある方式とがある。   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 a method in which the values of N and K are not restricted and a method in which there is a restriction.
秘密分散の代表的な方式として、Shamir秘密分散方式がある(例えば、非特許文献1参照)。この方式の例では、pを素数、GF(p)を位数pの有限体として、値a∈GF(p)に対してf(0)=aとなるような、xを変数とするK-1次式f(x)から、aの分散値Si(a)=f(i)(i=1,…,N)を得る。n1,…,nKを互いに異なる1以上N以下の整数として以下の式(1)(2)の関係が成り立つため、任意の異なるK個の分散値からaを復元できる。 As a typical scheme for secret sharing, there is a Shamir secret sharing scheme (for example, see Non-Patent Document 1). In this example, p is a prime number, GF (p) is a finite field of order p, and x is a variable such that f (0) = a for the value a∈GF (p) A variance value S i (a) = f (i) (i = 1,..., N) of a is obtained from the −1 linear expression f (x). Since n 1 ,..., n K are different integers of 1 or more and N or less, the relations of the following formulas (1) and (2) are established, and therefore a can be restored from arbitrarily different K dispersion values.
また、秘密分散の一種として、計算量的安全性に基づき一定個数未満の分散値からは元のデータを一切復元できなくする、計算量型秘密分散方式がある(例えば、非特許文献2参照)。この方式の例では、値a=(a0,a1,…,aL-1)(a0,a1,…,aL-1∈GF(p))を共通鍵暗号を用いて暗号化し、当該暗号文c=(c0,c1,…,cK-1)(ただしc0,c1,…,cK-1∈GF(p))から決まる、xを変数とするK-1次式f(x)=c0+c1x+…+cK-1xK-1から、cの分散値Ti(c)=f(i)(i=1,…,N)を得る。また共通鍵は別途Shamir秘密分散方式などにより分散する。するとn1,…,nKを互いに異なる1以上N以下の整数として、f(x)のK個の点(ni,f(ni))(i=1,…,K)からf(x)の係数c0,c1,…,cK-1を一意に求めることができる。これはc0,c1,…,cK-1を変数とする以下の行列についてc0,c1,…,cK-1の解を求めればよい。 Further, as one type of secret sharing, there is a computational complexity type secret sharing scheme in which the original data cannot be restored from less than a certain number of distributed values based on computational safety (for example, see Non-Patent Document 2). . In this example, the value a = (a 0 , a 1 , ..., a L-1 ) (a 0 , a 1 , ..., a L-1 ∈GF (p)) is encrypted using a common key cryptosystem. And K determined by the ciphertext c = (c 0 , c 1 ,..., C K-1 ) (where c 0 , c 1 ,..., C K-1 ∈GF (p)) and x as a variable From the linear expression f (x) = c 0 + c 1 x + ... + c K-1 x K-1 , the variance value c i (c) = f (i) (i = 1, ..., N) Get. In addition, the common key is separately distributed by Shamir secret sharing method. Then, let n 1 , ..., n K be different integers of 1 or more and N or less, and from K points (n i , f (n i )) (i = 1, ..., K) of f (x), f (x The coefficients c 0 , c 1 ,..., c K−1 of x) can be uniquely obtained. This c 0, c 1, ..., c 0, c 1 the following matrix with a c K-1 variable, ... may be obtained a solution of c K-1.
そして共通鍵を復元して、cを復号すれば、aを得ることができる。   If the common key is restored and c is decrypted, a can be obtained.
一方、秘密分散を要素技術としたマルチパーティ計算方式が提案されている。マルチパーティ計算は、各計算主体i(i=1,…,N)がそれぞれ値aiを入力として、他の計算主体に値aiを明かすことなく、特定の関数値Fi(a1,…,aN)を得る技術である。上述のShamir秘密分散方式では、値a,b∈GF(p)の分散値Si(a),Si(b)から、各計算主体の入力を明かさず、a+bの分散値Si(a+b)およびabの分散値Si(ab)を得る方法が知られている(非特許文献3参照)。すなわち、Shamir秘密分散方式であれば、加算および乗算のマルチパーティ計算ができる。なお、Si(a)+Si(b)=Si(a+b)の関係を満たす秘密分散を(加法)準同型性をもつ秘密分散と呼ぶ。 On the other hand, a multi-party calculation method using secret sharing as an elemental technology has been proposed. In the multi-party calculation, each calculation subject i (i = 1,..., N) receives the value a i as an input, and without revealing the value a i to other calculation subjects, a specific function value F i (a 1 , …, A N ) In the above Shamir secret sharing scheme, the value a, B∈GF variance value (p) S i (a) , from S i (b), without revealing the input to the compute-intensive, the dispersion value of a + b S i A method for obtaining a variance value S i (ab) of (a + b) and ab is known (see Non-Patent Document 3). That is, with the Shamir secret sharing scheme, addition and multiplication multi-party calculations can be performed. Note that secret sharing that satisfies the relationship S i (a) + S i (b) = S i (a + b) is called secret sharing with (additive) homomorphism.
また、秘密分散の一種として、線形秘密分散方式がある。線形秘密分散方式は、元のデータa∈GF(p)についてすべての分散値がa∈GF(p)およびGF(p)上の乱数の線形結合で表現できる秘密分散と定義され、任意の線形秘密分散方式をマルチパーティ計算に拡張できることが知られている(非特許文献4参照)。   As one type of secret sharing, there is a linear secret sharing scheme. The linear secret sharing scheme is defined as secret sharing that can be expressed by linear combination of random numbers on a∈GF (p) and GF (p) for the original data a∈GF (p). It is known that the secret sharing scheme can be extended to multi-party computation (see Non-Patent Document 4).
また、秘密分散の安全性を向上する機能として、復旧、再分散が可能であることが求められている。復旧とは、サーバが利用不能になるなどにより一部の分散値が失われた際に、少なくともK台のサーバが利用可能であれば、利用不能となったN-K個の分散値を利用可能なK個の分散値から秘匿性を失わずに再構築する方法である。   Further, as a function for improving the security of secret sharing, it is required that recovery and re-distribution are possible. Recovery means that when some distributed values are lost due to the server becoming unavailable, etc., if at least K servers are available, NK distributed values that could not be used can be used. This is a method of reconstructing without loss of confidentiality from K distributed values.
再分散とは、一旦秘密分散した分散値が一部漏洩した場合に、秘匿性を失わないように再度秘密分散する方法である。例えば、K-1個の分散値が漏洩した場合、あと1個の分散値が漏洩すると攻撃者はK個の分散値からaを復元可能となり秘匿性が破られてしまう。このような場合に再度秘密分散すれば、攻撃者が再分散する前のK-1個の分散値と再分散後の1個の分散値を保有したとしても、aの秘匿性は破られない。   The re-distribution is a method of performing secret sharing again so as not to lose confidentiality when a part of the secret sharing value is leaked. For example, when K-1 distributed values are leaked, if one more distributed value is leaked, the attacker can recover a from the K distributed values and the confidentiality is broken. In such a case, if secret sharing is performed again, even if the attacker has K-1 distribution values before redistribution and one distribution value after redistribution, the confidentiality of a is not broken. .
さらに、秘密分散の安全性を向上する機能として、改ざん検知が可能であることが求められている。秘密分散の分散値のいずれかが改ざんされていると、その分散値を用いた秘匿計算の計算結果が不正な結果となる。秘匿計算を行う前に分散値の改ざんを検知することができれば計算結果の正当性を保証することができる。準同型性をもつ秘密分散による分散値は他の計算主体と通信することなく加算と乗算が可能であるため、改ざん検知に用いるチェックサムは加算と乗算のみから計算できる方式であると効率がよい。このようなチェックサムには非特許文献5に記載の技術がある。   Further, as a function for improving the security of secret sharing, it is required that tampering detection is possible. If any of the secret sharing values has been tampered with, the calculation result of the secret calculation using the sharing value becomes an incorrect result. If falsification of the distributed value can be detected before the confidential calculation is performed, the correctness of the calculation result can be guaranteed. Since the distributed value by secret sharing with homomorphism can be added and multiplied without communicating with other calculation subjects, it is efficient that the checksum used for tampering detection can be calculated only from addition and multiplication . Such a checksum has a technique described in Non-Patent Document 5.
非特許文献5に記載のチェックサムは、Fを体として、値a0,…,aN-1∈Fのチェックサムcを、乱数r∈Fを用いて、以下の式(3)により生成する。 The checksum described in Non-Patent Document 5 generates a checksum c of values a 0 ,..., A N-1 ∈F using F as a field, using the random number r∈F, by the following equation (3) To do.
非特許文献5では、以下の式(4)によりチェックサムcを検証する。   In Non-Patent Document 5, the checksum c is verified by the following equation (4).
式(2)が0であれば、値a0,…,aN-1はいずれも改ざんされていないと判断する。式(2)が0以外であれば、値a0,…,aN-1は少なくとも1個が改ざんされていると判断する。 If the expression (2) is 0, it is determined that none of the values a 0 ,..., A N−1 has been tampered with. If the expression (2) is other than 0 , it is determined that at least one of the values a 0 ,..., A N−1 has been tampered with.
Shamir秘密分散方式では、aおよびその各分散値のデータ量を一定とすると、分散値の総データ量がそれぞれaのデータ量のおよそN倍となる。復元に必要な分散値の総データ量はそれぞれaのデータ量のおよそK倍となる。分散値のデータ量の増加は通信時間や保存データの増大につながるため、できるだけ分散値のデータ量を抑えることが望ましい。   In the Shamir secret sharing scheme, if the data amount of a and its respective distributed values is constant, the total data amount of the distributed values is approximately N times the data amount of a. The total data amount of the variance values required for restoration is approximately K times the data amount of a. Since an increase in the data amount of the variance value leads to an increase in communication time and stored data, it is desirable to suppress the data amount of the variance value as much as possible.
計算量型秘密分散方式は一般にTi(a)+Ti(b)≠Ti(a+b)となり、Shamir秘密分散方式のように各入力の加算のマルチパーティ計算を行う方法は自明でない。 Computational secret sharing schemes are generally T i (a) + T i (b) ≠ T i (a + b), and the method of performing multi-party computations for addition of each input is not obvious as in the Shamir secret sharing scheme. .
この発明の目的は、計算量型秘密分散方式による分散値を用いてマルチパーティ計算を行い、復旧および再分散と改ざん検知が可能な秘密分散技術を提供することである。   An object of the present invention is to provide a secret sharing technique capable of performing recovery, re-distribution, and falsification detection by performing multi-party calculation using a distributed value by a computational complexity type secret sharing scheme.
上記の課題を解決するために、この発明の一態様による秘密分散システムは、データ分散装置とN台の分散データ保有装置を含む。この発明では、N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像である。 In order to solve the above problems, a secret sharing system according to an aspect of the present invention includes a data distribution device and N distributed data holding devices. In this invention, N and K are integers of 2 or more, N ≧ K, n = 1,..., N, λ is 1 or more and N or less N integers different from each other, and i is i ∈λ is an integer, f x (n) is N variances of x, R is a ring, S is a key space, and P (x) is a mapping that transfers x∈S to ring R It is.
一態様によるデータ分散装置は、K個の鍵s1,…,sK∈Sを選択する鍵選択部と、鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成部と、情報a∈Rから擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化部と、鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散部と、暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散部とを有する。 Data distribution apparatus according to one aspect, K-number of keys s 1, ..., s K a key selector for selecting ∈S, key s 1, ..., r 1 = P (s 1) from s K, ..., r pseudo random number r 1 by calculating K = P (s K), ..., a pseudo-random number generator for generating a r K, pseudo random number r 1 from the information a∈R, ..., ciphertext using r K c And a key distribution unit that distributes the keys s 1,..., S K into N distributed values f s1 (n),..., F sK (n), respectively, by an arbitrary secret sharing scheme S1 And a ciphertext distributing unit that distributes the ciphertext c into N distributed values f c (n) by an arbitrary secret sharing scheme S0.
一態様による分散データ保有装置は、K個の分散値fsi(λ)から任意の秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から任意の秘密分散方式S0により復元値U0を復元する復元部と、復元値U0,Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散部と、K+1個の分散値fU0(i),…,fUK(i)から情報aの分散値ga(i)を生成する変換部と、分散値fsi(λ)が入力されると復元部と分散部と変換部により分散値ga(i)を生成し、分散値ga(i)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成部と、分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を任意の秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証部とを有する。 The distributed data holding device according to one aspect calculates a restored value U i = P (u i ) from a value u i restored by an arbitrary secret sharing scheme S1 from K distributed values f si (λ), and K A restoration unit that restores the restored value U 0 from the variance value f c (λ) by an arbitrary secret sharing scheme S0, and the restored values U 0 , U i by the secret sharing scheme S2 having an arbitrary homomorphism, respectively. A variance part distributed to variance values f U0 (n), f Ui (n), and a variance value g a (i of information a from K + 1 variance values f U0 (i), ..., f UK (i) ) And a variance value f si (λ) are input, the restoration unit, the variance unit, and the transformation unit generate a variance value g a (i), and the variance value g a (i) is used. A conversion generation unit that generates a checksum c α for conversion and distributes it to N distributed values f (n) by an arbitrary secret sharing scheme S3 and a conversion value generated using the distributed value g a (i) conversion check the verification value c 'alpha and the K dispersion values f c alpha a (lambda) was recovered by any secret sharing scheme S3 By comparing the beam c alpha, variance f s1 (λ), ..., f sK (λ), and a conversion verification unit either f c (λ) to verify whether it has been tampered .
この発明の他の態様による秘密分散システムは、データ分散装置とN台の分散データ保有装置を含む。   A secret sharing system according to another aspect of the present invention includes a data sharing apparatus and N distributed data holding apparatuses.
他の態様によるデータ分散装置は、K個の鍵s1,…,sK∈Sを選択する鍵選択部と、鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成部と、情報a∈Rから擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化部と、鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散部と、暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散部と、前記情報aを任意の準同型性をもつ秘密分散方式S2によりN個に分散した分散値ga(n)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成部と、を有する。 The data distribution device according to another aspect, K-number of keys s 1, ..., a key selecting unit that selects an s K ∈S, key s 1, ..., a s K r 1 = P (s 1), ..., pseudo random number r 1 by calculating r K = P (s K) , ..., ciphertext by using the pseudo-random number generator for generating a r K, pseudo random number r 1 from the information a∈R, ..., a r K an encryption unit that generates c, and a key distribution unit that distributes keys s 1,..., s K into N distributed values f s1 (n) ,. A ciphertext distributing unit that distributes ciphertext c into N distributed values f c (n) by an arbitrary secret sharing scheme S0, and N pieces of information a by a secret sharing scheme S2 having arbitrary homomorphism A conversion checksum c α is generated using the distributed value g a (n) distributed to the conversion value, and the conversion generation unit is distributed to N distributed values f (n) by an arbitrary secret sharing scheme S3. Have.
他の態様による分散データ保有装置は、K個の分散値fsi(λ)から任意の秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から任意の秘密分散方式S0により復元値U0を復元する復元部と、復元値U0,Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散部と、K+1個の分散値fU0(i),…,fUK(i)から情報aの分散値ga(i)を生成する変換部と、分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を任意の秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証部とを有する。 The distributed data holding device according to another aspect calculates a restored value U i = P (u i ) from a value u i restored by an arbitrary secret sharing scheme S1 from K distributed values f si (λ), and K pieces A restoration unit that restores the restored value U 0 from the distributed value f c (λ) of the original by the arbitrary secret sharing scheme S0, and N restored values U 0 and U i by the secret sharing scheme S2 having any homomorphism Variance values f U0 (n), f Ui (n), and K + 1 variance values f U0 (i), ..., f UK (i) from the variance value g a ( a conversion unit that generates i), a conversion value c ′ α generated using the variance value g a (i), and a transformation obtained by restoring the K variance values f (λ) using an arbitrary secret sharing scheme S3 by comparing the use checksums c alpha, variance f s1 (λ), ..., f sK (λ), and conversion verification unit either f c (λ) to verify whether it has been tampered Have
この発明の秘密分散技術によれば、計算量型秘密分散方式による分散値を任意の準同型性をもつ秘密分散方式による分散値に変換することができる。例えば、Shamir秘密分散方式など既存の多くの線形秘密分散方式は準同型性をもつ秘密分散方式であり、Shamir秘密分散方式など既存の線形秘密分散方式による分散値を用いてマルチパーティ計算を行う方法は既知である。そのため、準同型性をもつ秘密分散方式としてShamir秘密分散方式など既存の線形秘密分散方式を選択することで、計算量型秘密分散方式による分散値を用いてマルチパーティ計算を行うことができるようになる。また、暗号文cを分散する秘密分散方式S0として符号化効率がよい計算量型秘密分散方式を適用すれば分散値のサイズが小さくなるため、保存する分散値の総データ量および復元に必要な分散値の総データ量を減らすことができる。   According to the secret sharing technique of the present invention, it is possible to convert a distributed value according to a computational complexity secret sharing scheme into a distributed value according to a secret sharing scheme having an arbitrary homomorphism. For example, many existing linear secret sharing schemes such as Shamir secret sharing schemes are homomorphic secret sharing schemes, and a method for performing multi-party computation using shared values from existing linear secret sharing schemes such as Shamir secret sharing schemes Is known. Therefore, by selecting an existing linear secret sharing scheme such as Shamir secret sharing scheme as a secret sharing scheme with homomorphism, multi-party calculation can be performed using the distributed value by the complexity secret sharing scheme Become. In addition, if the computational complexity type secret sharing scheme with good coding efficiency is applied as the secret sharing scheme S0 that distributes the ciphertext c, the size of the distributed value will be reduced. The total data amount of the distributed value can be reduced.
また、この発明の秘密分散技術は復旧、再分散が可能となっており、一部の分散値が漏洩もしくは失われた場合でも対処することが可能である。そして、各操作においてチェックサムを検証することで分散値の改ざんを検知することができる。   Further, the secret sharing technique of the present invention can be restored and re-distributed, and can cope with even if some of the shared values are leaked or lost. Then, it is possible to detect falsification of the distributed value by verifying the checksum in each operation.
秘密分散システムの機能構成を例示する図。The figure which illustrates the function structure of a secret sharing system. データ分散装置の機能構成を例示する図。The figure which illustrates the function structure of a data distribution apparatus. 分散データ保有装置の機能構成を例示する図。The figure which illustrates the function structure of a distributed data holding apparatus. データ分散の処理フローを例示する図。The figure which illustrates the processing flow of data distribution. チェックサム生成の処理フローを例示する図。The figure which illustrates the processing flow of checksum generation. 分散データ変換の処理フローを例示する図。The figure which illustrates the processing flow of distributed data conversion. データ復元の処理フローを例示する図。The figure which illustrates the processing flow of data restoration. 分散データ復旧の処理フローを例示する図。The figure which illustrates the processing flow of distributed data recovery. データ再分散の処理フローを例示する図。The figure which illustrates the processing flow of data re-distribution.
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。   Hereinafter, embodiments of the present invention will be described in detail. In addition, the same number is attached | subjected to the component which has the same function in drawing, and duplication description is abbreviate | omitted.
[実施形態]
この発明の実施形態に係る秘密分散システムは、計算量型秘密分散方式による分散値を、準同型性をもつ任意の秘密分散方式による分散値に変換する。この秘密分散システムでは復旧および再分散が可能である。また、予め元データや分散値のチェックサムを生成しておき、変換、復元、復旧の各操作においてチェックサムを検証する。
[Embodiment]
The secret sharing system according to the embodiment of the present invention converts a distributed value according to a computational complexity type secret sharing scheme into a distributed value according to an arbitrary secret sharing scheme having homomorphism. This secret sharing system can be restored and redistributed. In addition, checksums of original data and distributed values are generated in advance, and the checksums are verified in each operation of conversion, restoration, and recovery.
以下の説明では、N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、jはj∈λの整数であり、i≠jであり、ζは互いに異なる1以上N以下の2K-1個の整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であるものとする。写像P(x)は、入力されたx∈Sに対して環Rの要素を出力するものである。同一の入力xには同一のP(x)が対応する。すなわち、写像P(x)は入力が等しければ出力も等しくなる、確定的な写像である。入力xとP(x)とは一対一で対応してもよいし、しなくてもよい。例えば、写像P(x)はxをシードとして環Rの要素を返す擬似乱数生成関数である。また例えば、写像P(x)はxを暗号化鍵として固定の平文に対して環Rに属する暗号文を出力する共通鍵暗号関数である。写像P(x)は関数であってもよいし、アルゴリズムであってもよい。 In the following description, N and K are integers of 2 or more, N ≧ K, n = 1,..., N, λ is 1 or more and N or less N integers, and i is i∈λ is an integer, j is an integer of j∈λ, i ≠ j, ζ is 2K-1 integers different from 1 to N, and f x (n) is It is assumed that there are N variance values, R is a ring, S is a key space, and P (x) is a mapping that transfers x∈S to ring R. The map P (x) outputs the elements of the ring R for the input x∈S. The same input x corresponds to the same P (x). That is, the map P (x) is a deterministic map in which the outputs are equal if the inputs are equal. The inputs x and P (x) may or may not correspond one-on-one. For example, the map P (x) is a pseudorandom number generation function that returns elements of the ring R using x as a seed. Also, for example, the map P (x) is a common key encryption function that outputs a ciphertext belonging to the ring R for a fixed plaintext with x as an encryption key. The map P (x) may be a function or an algorithm.
<構成>
図1を参照して、実施形態に係る秘密分散システム1の構成例を説明する。秘密分散システム1は、データ分散装置10とN(≧2)台の分散データ保有装置201〜20Nとネットワーク9を含む。データ分散装置10と分散データ保有装置201〜20Nは、ネットワーク9に接続される。ネットワーク9は、データ分散装置10と分散データ保有装置201〜20Nそれぞれとが相互に通信可能なように構成されていればよく、例えばインターネットやLAN、WANなどで構成することができる。また、データ分散装置10と分散データ保有装置201〜20Nそれぞれとは必ずしもネットワークを介してオンラインで通信可能である必要はない。例えば、データ分散装置10が出力する情報をUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から分散データ保有装置201〜20Nへオフラインで入力するように構成してもよい。
<Configuration>
A configuration example of the secret sharing system 1 according to the embodiment will be described with reference to FIG. The secret sharing system 1 includes a data sharing device 10, N (≧ 2) distributed data holding devices 20 1 to 20 N, and a network 9. The data distribution device 10 and the distributed data holding devices 20 1 to 20 N are connected to the network 9. The network 9 only needs to be configured so that the data distribution device 10 and each of the distributed data holding devices 20 1 to 20 N can communicate with each other, and can be configured by the Internet, a LAN, a WAN, or the like, for example. Moreover, it is not always necessary over the network can communicate online data distribution device 10 and the distributed data held device 20 1 to 20 N, respectively. For example, to store information output from the data distribution apparatus 10 to the portable recording medium such as a USB memory, may be configured to enter offline from the portable recording medium to the distributed data held device 20 1 to 20 N .
図2を参照して、秘密分散システム1に含まれるデータ分散装置10の構成例を説明する。データ分散装置10は、入力部110と鍵選択部120と擬似乱数生成部130と暗号化部140と鍵分散部150と暗号文分散部160と復元用生成部170と出力部180と鍵復元部310と暗号文復元部320と復号部330と復元用検証部340とを有する。   With reference to FIG. 2, a configuration example of the data sharing apparatus 10 included in the secret sharing system 1 will be described. The data distribution apparatus 10 includes an input unit 110, a key selection unit 120, a pseudo random number generation unit 130, an encryption unit 140, a key distribution unit 150, a ciphertext distribution unit 160, a restoration generation unit 170, an output unit 180, and a key recovery unit. 310, a ciphertext restoration unit 320, a decryption unit 330, and a restoration verification unit 340.
図3を参照して、秘密分散システム1に含まれる分散データ保有装置20nの構成例を説明する。分散データ保有装置20nは、入力部210と復元部220と分散部230と変換部240と変換用検証部250と出力部260と補間部410と復旧部420と復旧用検証部430と再分散部510と一貫性検証部520と再復元部530と変換用生成部540と復旧用生成部550と記憶部290とを有する。記憶部290は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)などの半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。 A configuration example of the distributed data holding device 20 n included in the secret sharing system 1 will be described with reference to FIG. The distributed data holding device 20 n includes an input unit 210, a restoration unit 220, a distribution unit 230, a conversion unit 240, a conversion verification unit 250, an output unit 260, an interpolation unit 410, a recovery unit 420, a recovery verification unit 430, and a redistribution unit. Unit 510, consistency verification unit 520, re-restoration unit 530, conversion generation unit 540, recovery generation unit 550, and storage unit 290. The storage unit 290 is, for example, a main storage device such as a RAM (Random Access Memory), an auxiliary storage device including a semiconductor memory element such as a hard disk, an optical disk, or a flash memory, or a relational database or a key-value store. The middleware can be configured.
<データ分散処理>
図4を参照して、データ分散装置10の実行するデータ分散処理の動作例を、実際に行われる手続きの順に従って説明する。
<Data distribution processing>
With reference to FIG. 4, an operation example of data distribution processing executed by the data distribution apparatus 10 will be described in the order of procedures actually performed.
入力部110には、情報aが入力される(ステップS110)。情報aは環Rに含まれる値である。したがって、a∈Rと表すことができる。情報aの例は、動画ファイル、音声ファイル、テキストファイル、表ファイルなどである。情報aのデータ量は、例えば1メガバイト以上である。   Information a is input to the input unit 110 (step S110). The information a is a value included in the ring R. Therefore, it can be expressed as a∈R. Examples of the information a are a moving image file, an audio file, a text file, a table file, and the like. The data amount of information a is, for example, 1 megabyte or more.
鍵選択部120は、K個の鍵s1,…,sKを選択する(ステップS120)。鍵s1,…,sKは鍵空間Sに含まれる値である。したがって、s1,…,sK∈Sと表すことができる。鍵選択部120は、逐一ランダムにK個の鍵s1,…,sKを選択してもよいし、事前に生成されメモリに格納されている複数個の値から所定の規則に従ってK個の鍵s1,…,sKを選択してもよい。鍵s1,…,sKの鍵長は、必要な安全性と許容できる処理性能を確保できる長さに設定する。例えば、128〜256ビットとするのが一般的であるが、この限りではない。 The key selection unit 120 selects K keys s 1 ,..., S K (step S120). The keys s 1 ,..., S K are values included in the key space S. Therefore, it can be expressed as s 1 ,..., S K ∈ S. The key selection unit 120 may select K keys s 1 ,..., S K randomly at a time, or may select K keys according to a predetermined rule from a plurality of values generated in advance and stored in the memory. Keys s 1 ,..., S K may be selected. The key length of the keys s 1 ,..., S K is set to a length that can ensure the required security and acceptable processing performance. For example, it is common to use 128 to 256 bits, but this is not a limitation.
K個の鍵s1,…,sKは擬似乱数生成部130に入力される。擬似乱数生成部130は、鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することによりK個の擬似乱数r1,…,rKを生成する(ステップS130)。 K keys s 1 ,..., S K are input to the pseudorandom number generator 130. Pseudo-random number generation unit 130, the key s 1, ..., a s K r 1 = P (s 1), ..., the pseudo random number r 1 K pieces of by calculating r K = P (s K) , ..., to generate a r K (step S130).
情報aおよびK個の擬似乱数r1,…,rKは暗号化部140に入力される。暗号化部140は、擬似乱数r1,…,rKを用いて情報aから暗号文cを生成する(ステップS140)。具体的には、以下の式(5)に示す通り、情報aから擬似乱数r1,…,rKの総和を減算した結果を暗号文cとする。 Information a and K pseudorandom numbers r 1 ,..., R K are input to the encryption unit 140. The encryption unit 140 generates a ciphertext c from the information a using the pseudo random numbers r 1 ,..., R K (step S140). Specifically, as shown in the following equation (5), the pseudo random number r 1 from the information a, ..., a result obtained by subtracting the sum of r K and ciphertext c.
K個の鍵s1,…,sKは鍵分散部150に入力される。鍵分散部150は、鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する(ステップS150)。秘密分散方式S1はどのような秘密分散方式であってもよいが、情報aの復号に用いる鍵を分散するため、より安全性の高い秘密分散方式を適用することが望ましい。例えば、Shamir秘密分散方式を適用することができる。Shamir秘密分散方式は、N,Kが2以上の整数であり、N≧Kであるとして、元のデータaをN個に分散した分散値のうちK個以上の分散値からは元のデータaを復元することができるが、K個未満の分散値からは元のデータaの情報を一切得ることができない。したがって、安全性が高い秘密分散方式である。 K keys s 1 ,..., S K are input to the key distribution unit 150. The key distribution unit 150 distributes the keys s 1,..., S K into N distributed values f s1 (n),..., F sK (n) by an arbitrary secret sharing scheme S1 (step S150). The secret sharing scheme S1 may be any secret sharing scheme, but it is desirable to apply a more secure secret sharing scheme in order to distribute the key used for decrypting the information a. For example, the Shamir secret sharing scheme can be applied. In the Shamir secret sharing scheme, N and K are integers of 2 or more, and N ≧ K, and the original data a is derived from K or more of the distributed values obtained by distributing the original data a into N pieces. Can be restored, but no information of the original data a can be obtained from less than K variance values. Therefore, it is a secret sharing scheme with high security.
暗号文cは暗号文分散部160に入力される。暗号文分散部160は、暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する(ステップS160)。秘密分散方式S0はどのような秘密分散方式であってもよいが、例えば非特許文献2に記載の方法を適用することができる。ただし非特許文献2に記載の方法を適用する場合には、環R上の値cをGF(p)上のK次ベクトルに変換する必要がある。これは例えば、素数pのビット長をL+1、環Rの要素のビット長をK×L以下とすれば、環Rの要素がK×Lビットになるように上位ビットを0でパディングし、値cをLビット毎に分割し、各Lビット分割値を0以上2L未満の整数としてGF(p)の元とすればよい。 The ciphertext c is input to the ciphertext distribution unit 160. The ciphertext distributing unit 160 distributes the ciphertext c into N distributed values f c (n) by an arbitrary secret sharing scheme S0 (step S160). The secret sharing scheme S0 may be any secret sharing scheme, but for example, the method described in Non-Patent Document 2 can be applied. However, when applying the method described in Non-Patent Document 2, it is necessary to convert the value c on the ring R into a K-order vector on GF (p). For example, if the bit length of the prime p is L + 1 and the bit length of the element of the ring R is K × L or less, the upper bits are padded with 0 so that the element of the ring R becomes K × L bits. The value c may be divided into L bits, and each L bit divided value may be an integer of 0 or more and less than 2 L and may be used as an element of GF (p).
情報aは復元用生成部170に入力される。復元用生成部170は、情報aを用いて復元用チェックサムcβを生成する(ステップS170)。生成するチェックサムはどのようなチェックサムであってもよいが、加算と乗算のみから計算できることが望ましい。例えば非特許文献5に記載のチェックサムとすることができる。具体的には、rを環R上の乱数(r∈R)とし、情報aを環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(6)により復元用チェックサムcβを生成する。 The information a is input to the restoration generation unit 170. Restoration generator 170 generates a restoring checksum c beta by using the information a (Step S170). The checksum to be generated may be any checksum, but it is desirable that the checksum can be calculated only from addition and multiplication. For example, the checksum described in Non-Patent Document 5 can be used. Specifically, let r be a random number on ring R (r∈R), information a be M values on ring R (a 0 , a 1 ,..., A M-1 ∈R), and A checksum c β for restoration is generated according to equation (6).
次に、復元用生成部170は、復元用チェックサムcβを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3はどのような秘密分散方式であってもよく、この実施形態で用いる他の秘密分散方式と同じものであってもよい。例えば、Shamir秘密分散方式を適用することができる。 Next, restoration generator 170 is dispersed into N variance f cβ (n) the restoration checksum c beta by any secret sharing scheme S3. The secret sharing scheme S3 may be any secret sharing scheme, and may be the same as other secret sharing schemes used in this embodiment. For example, the Shamir secret sharing scheme can be applied.
出力部180は、分散値fs1(n),…,fsK(n),fc(n),f(n)を出力する(ステップS180)。出力された各分散値fs1(n),…,fsK(n),fc(n),f(n)は、それぞれ分散データ保有装置201〜20Nにネットワーク9もしくはUSBメモリ等の可搬型記録媒体を経由して入力される。 The output unit 180 outputs the variance values f s1 (n),..., F sK (n), f c (n), f (n) (step S180). Each dispersion value f s1 outputted (n), ..., f sK (n), f c (n), f cβ (n) , respectively distributed data retention device 20 1 to 20 N to the network 9 or USB memory, It is input via a portable recording medium.
<チェックサム生成処理>
図5を参照して、分散データ保有装置201,…,20Nの実行するチェックサム生成処理の動作例を、実際に行われる手続きの順に従って説明する。この実施形態では分散データ保有装置20iへ分散値fs1(i),…,fsK(i),fc(i),f(i)が入力された場合を説明する。チェックサム生成処理は少なくとも分散値fs1(i),…,fsK(i),fc(i),f(i)が入力された際には実行しなければならないが、以降は任意のタイミングで実行しても構わない。
<Checksum generation processing>
Referring to FIG. 5, an example of the checksum generation process performed by the distributed data holding devices 20 1 ,..., 20 N will be described in the order of the procedures actually performed. In this embodiment, a case where distributed values f s1 (i),..., F sK (i), f c (i), f (i) are input to the distributed data holding device 20 i will be described. The checksum generation process must be executed at least when the variance values f s1 (i), ..., f sK (i), f c (i), f (i) are input. You may perform at the timing.
入力部210には、データ分散装置10が出力した分散値fs1(i),…,fsK(i),fc(i),f(i)が入力される(ステップS210)。 The input unit 210, the dispersion value data distribution device 10 has output f s1 (i), ..., f sK (i), f c (i), f cβ (i) is input (step S210).
分散値fs1(i),…,fsK(i),fc(i)は変換用生成部540へ入力される。変換用生成部540は、後述するデータ変換処理により、情報aの分散値ga(i)を生成する。続いて、生成した分散値ga(i)を用いて変換用チェックサムcαを生成する(ステップS540)。生成するチェックサムはどのようなチェックサムであってもよいが、加算と乗算のみから計算できることが望ましい。例えば、非特許文献5に記載のチェックサムとすることができる。具体的には、rを環R上の乱数(r∈R)とし、分散値ga(i)を環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(7)により変換用チェックサムcαを生成することができる。 The variance values f s1 (i),..., F sK (i), f c (i) are input to the conversion generation unit 540. The conversion generation unit 540 generates a variance value g a (i) of the information a by data conversion processing described later. Subsequently, to produce a conversion checksum c alpha using the generated variance value g a (i) (step S540). The checksum to be generated may be any checksum, but it is desirable that the checksum can be calculated only from addition and multiplication. For example, the checksum described in Non-Patent Document 5 can be used. Specifically, r is a random number on the ring R (r∈R), and the variance g a (i) is M values on the ring R (a 0 , a 1 , ..., a M-1 ∈R ), The conversion checksum c α can be generated by the following equation (7).
次に、変換用生成部540は、変換用チェックサムcαを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3は、復元用生成部170と同様に、どのような秘密分散方式であってもよく、この実施形態で用いる他の秘密分散方式と同じものであってもよい。例えば、Shamir秘密分散方式を適用することができる。 Next, the conversion generation unit 540 distributes the conversion checksum c α into N distributed values f (n) by an arbitrary secret sharing scheme S3. The secret sharing scheme S3 may be any secret sharing scheme similar to the generating unit 170 for restoration, and may be the same as other secret sharing schemes used in this embodiment. For example, the Shamir secret sharing scheme can be applied.
分散値fs1(i),…,fsK(i),fc(i),f(i)は復旧用生成部550へ入力される。復旧用生成部550は、分散値fs1(i),…,fsK(i),fc(i),f(i)を用いて復旧用チェックサムcγを生成する(ステップS550)。生成するチェックサムはどのようなチェックサムであってもよいが、加算と乗算のみから計算できることが望ましい。例えば、非特許文献5に記載のチェックサムとすることができる。具体的には、rを環R上の乱数(r∈R)とし、分散値fs1(i),…,fsK(i),fc(i),f(i)を環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(8)により復旧用チェックサムcγを生成することができる。 The variance values f s1 (i),..., F sK (i), f c (i), f (i) are input to the recovery generation unit 550. Recovering generating unit 550, the variance value f s1 (i), ..., f sK (i), f c (i), generates a restoration checksum c gamma using f cβ (i) (Step S550) . The checksum to be generated may be any checksum, but it is desirable that the checksum can be calculated only from addition and multiplication. For example, the checksum described in Non-Patent Document 5 can be used. Specifically, r is a random number on ring R (r∈R), and variances f s1 (i), ..., f sK (i), f c (i), f (i) are on ring R. A recovery checksum c γ can be generated by the following equation (8) as M values (a 0 , a 1 ,..., A M−1 ∈R).
次に、復旧用生成部550は、復旧用チェックサムcγを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3は、復元用生成部170と同様に、どのような秘密分散方式であってもよく、この実施形態で用いる他の秘密分散方式と同じものであってもよい。例えば、Shamir秘密分散方式を適用することができる。 Next, the recovery generation unit 550 distributes the recovery checksum c γ into N distributed values f (n) by an arbitrary secret sharing scheme S3. The secret sharing scheme S3 may be any secret sharing scheme similar to the generating unit 170 for restoration, and may be the same as other secret sharing schemes used in this embodiment. For example, the Shamir secret sharing scheme can be applied.
出力部260は、分散値f(n),f(n)を出力する(ステップS260)。出力された各分散値f(n),f(n)は、それぞれ分散データ保有装置201〜20Nにネットワーク9もしくはUSBメモリ等の可搬型記録媒体を経由して入力される。また、分散値fs1(i),…,fsK(i),fc(i),f(i),f(i),f(i)を記憶部290へ記憶する。 The output unit 260 outputs the variance values f (n) and f (n) (step S260). Each variance f C alpha output (n), f cγ (n ) is input through the portable recording medium such as a network 9 or USB memory, each distributed data retention device 20 1 to 20 N. Further, the variance values f s1 (i),..., F sK (i), f c (i), f (i), f (i), f (i) are stored in the storage unit 290.
<分散データ変換処理>
図6を参照して、分散データ保有装置201,…,20Nの実行する分散データ変換処理の動作例を、実際に行われる手続きの順に従って説明する。
<Distributed data conversion processing>
With reference to FIG. 6, an example of the operation of the distributed data conversion process executed by the distributed data holding devices 20 1 ,..., 20 N will be described in the order of the procedures actually performed.
以下に示すステップS211からS230までの処理は、N台の分散データ保有装置201〜20Nのすべてが行う必要はなく、任意に選択された少なくともK台の分散データ保有装置20λ(λ∈{1,…,N})が行えばよい。以下では分散データ保有装置20i(i∈λ)が行う処理を説明する。 The processing from step S211 described below to S230, is not necessary for all N number of distributed data retention device 20 1 to 20 N is performed, at least K heights distributed data held device arbitrarily selected 20 λ (λ∈ {1, ..., N}) may be performed. Hereinafter, processing performed by the distributed data holding device 20 i (iελ) will be described.
入力部210には、K台の分散データ保有装置20λが記憶するそれぞれK個の分散値fsi(λ),fc(λ),f(λ)が入力される(ステップS211)。 K pieces of distributed values f si (λ), f c (λ), and f (λ) stored in the K units of distributed data holding devices 20 λ are input to the input unit 210 (step S211).
K個の分散値fsi(λ)およびK個の分散値fc(λ)は復元部220に入力される。復元部220は、入力された分散値fsi(λ)から復元値Uiを生成し、分散値fc(λ)から復元値U0を生成する(ステップS220)。復元部220は、分散値fsi(λ)を任意の秘密分散方式S1により復元して値uiを生成する。続いて、Ui=P(ui)を計算することで復元値Uiを生成する。写像P(x)はデータ分散装置10の有する擬似乱数生成部130と同じ写像である。上述の通り、データ分散装置10の有する鍵分散部150により、分散値fsi(λ)には鍵siの分散値が設定されているため、同じ写像P(x)が鍵siを写した復元値Uiは擬似乱数riと等しくなる。秘密分散方式S1はどのような秘密分散方式であってもよいが、データ分散装置10の有する鍵分散部150が用いる秘密分散方式S1と同じ方式でなければならない。 K variance values f si (λ) and K variance values f c (λ) are input to the restoration unit 220. The restoration unit 220 generates a restoration value U i from the input variance value f si (λ), and generates a restoration value U 0 from the variance value f c (λ) (step S220). The restoration unit 220 restores the distributed value f si (λ) by an arbitrary secret sharing scheme S1 to generate a value u i . Subsequently, a restored value U i is generated by calculating U i = P (u i ). The mapping P (x) is the same mapping as the pseudorandom number generation unit 130 included in the data distribution apparatus 10. As described above, since the distribution value f si (λ) is set to the distribution value of the key s i by the key distribution unit 150 of the data distribution apparatus 10, the same mapping P (x) is used to copy the key s i . The restored value U i is equal to the pseudorandom number r i . The secret sharing scheme S1 may be any secret sharing scheme, but must be the same scheme as the secret sharing scheme S1 used by the key distribution unit 150 of the data distribution apparatus 10.
また、復元部220は、分散値fc(λ)を任意の秘密分散方式S0により復元することで復元値U0を生成する。上述の通り、データ分散装置10の有する暗号文分散部160により、分散値fc(λ)には暗号文cの分散値が設定されているため、復元値U0は暗号文cと等しくなる。秘密分散方式S0はどのような秘密分散方式であってもよいが、データ分散装置10の有する暗号文分散部160が用いる秘密分散方式S0と同じ方式でなければならない。 Further, the restoration unit 220 generates the restored value U 0 by restoring the variance value f c (λ) using an arbitrary secret sharing scheme S0. As described above, the ciphertext distribution unit 160 of the data distribution apparatus 10 sets the distribution value of the ciphertext c to the distribution value f c (λ), so the restored value U 0 is equal to the ciphertext c. . The secret sharing scheme S0 may be any secret sharing scheme, but it must be the same scheme as the secret sharing scheme S0 used by the ciphertext distribution unit 160 of the data distribution apparatus 10.
復元値U0および復元値Uiは分散部230に入力される。分散部230は、復元値U0および復元値Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する(ステップS230)。準同型性とは2つの値a,bの分散値fa(i),fb(i)およびa+bの分散値fa+b(i)について、fa(i)+fb(i)=fa+b(i)が成り立つことをいう。秘密分散方式S2は準同型性をもつ秘密分散方式であればどのような秘密分散方式でもよい。例えば、Shamir秘密分散方式など既存の線形秘密分散方式を適用することができる。 The restoration value U 0 and the restoration value U i are input to the distribution unit 230. The distribution unit 230 distributes the restored value U 0 and the restored value U i into N distributed values f U0 (n) and f Ui (n), respectively, by a secret sharing scheme S2 having arbitrary homomorphism (step S230). ). Homomorphism refers to f a (i) + f b (for the variance values f a (i), f b (i) of two values a, b and the variance value f a + b (i) of a + b. i) = f a + b (i). The secret sharing scheme S2 may be any secret sharing scheme as long as it is a secret sharing scheme having homomorphism. For example, an existing linear secret sharing scheme such as Shamir secret sharing scheme can be applied.
以下に示すステップS212からS261までの処理は、N台の分散データ保有装置201〜20Nのすべてで行う。以下では分散データ保有装置20i(i∈{1,…,N})が行う処理を説明する。。 The processing from step S212 described below to S261, performed in every N number of distributed data retention device 20 1 to 20 N. Hereinafter, processing performed by the distributed data holding device 20 i (i∈ {1,..., N}) will be described. .
入力部210には、K台の分散データ保有装置20λの有する分散部230が生成したK個の分散値fU1(i),…,fUK(i)が入力される(ステップS212)。 The input unit 210 receives K distribution values f U1 (i),..., F UK (i) generated by the distribution unit 230 of the K distributed data holding devices 20 λ (step S212).
復元部220の生成した分散値fU0(i)と入力部210から入力されたfU1(i),…,fUK(i)は変換部240に入力される。変換部240は、K+1個の分散値fU0(i),…,fUK(i)から情報aの分散値ga(i)を生成する(ステップS240)。具体的には、以下の式(9)に示す通り、分散値fU0(i),…,fUK(i)の総和を分散値ga(i)とする。 F U1 input generated variance value f U0 and (i) from the input unit 210 of the recovery unit 220 (i), ..., f UK (i) is input to the converter 240. The conversion unit 240 generates a variance value g a (i) of the information a from the K + 1 variance values f U0 (i),..., F UK (i) (step S240). Specifically, as shown in the following formula (9), the sum of the variance values f U0 (i),..., F UK (i) is defined as a variance value g a (i).
上述の通り、fU0(i)は準同型性をもつ秘密分散方式S2により暗号文cを分散した分散値であり、fU1(i),…,fUK(i)は準同型性をもつ秘密分散方式S2により擬似乱数r1,…,rKをそれぞれ分散した分散値である。したがって、準同型性の性質により、fU0(i),…,fUK(i)の総和は、暗号文cと擬似乱数r1,…,rKの総和を加算した値を秘密分散方式S2により分散した分散値となる。暗号文cは情報aから擬似乱数r1,…,rKの総和を減算した値であるため、この分散値ga(i)は、情報aを秘密分散方式S2により分散した分散値と等しい。 As described above, f U0 (i) is a distributed value obtained by distributing the ciphertext c by the secret sharing scheme S2 having homomorphism, and f U1 (i), ..., f UK (i) has homomorphism. The pseudo-random numbers r 1 ,..., R K are each distributed by the secret sharing scheme S2. Therefore, the nature of homomorphism, f U0 (i), ... , sum of f UK (i) is the ciphertext c and the pseudo random number r 1, ..., r K total secret sharing the added value system S2 It becomes the dispersion value dispersed by. Since the ciphertext c is a value obtained by subtracting the sum of pseudorandom numbers r 1 ,..., R K from the information a, this distributed value g a (i) is equal to the distributed value obtained by distributing the information a by the secret sharing scheme S2. .
分散値ga(i)およびK個の分散値f(λ)は変換用検証部250に入力される。変換用検証部250は、分散値ga(i)を用いて変換用検証値c’αを生成する。生成する検証値は変換用生成部540で生成したチェックサムに対応した検証値である。例えば、変換用生成部540で非特許文献5に記載のチェックサムを生成した場合であれば、rを環R上の乱数(r∈R)とし、分散値ga(i)を環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(10)により変換用検証値c’αを生成することができる。 The variance value g a (i) and the K variance values f (λ) are input to the conversion verification unit 250. The conversion verification unit 250 generates a conversion verification value c ′ α using the variance value g a (i). The verification value to be generated is a verification value corresponding to the checksum generated by the conversion generation unit 540. For example, if the conversion generation unit 540 generates the checksum described in Non-Patent Document 5, r is a random number on the ring R (r∈R), and the variance g a (i) is on the ring R. The conversion verification value c ′ α can be generated by the following equation (10) as M values (a 0 , a 1 ,..., A M−1 ∈R).
また、変換用検証部250は、秘密分散方式S3によりK個の分散値f(λ)から変換用チェックサムcαを復元する。秘密分散方式S3はどのような秘密分散方式であってもよいが、変換用生成部540が用いる秘密分散方式S3と同じ方式でなければならない。 Also, the conversion verification unit 250 restores the conversion checksum c α from the K distributed values f (λ) by the secret sharing scheme S3. The secret sharing scheme S3 may be any secret sharing scheme, but must be the same scheme as the secret sharing scheme S3 used by the conversion generation unit 540.
そして、変換用検証部250は、変換用検証値c’αと変換用チェックサムcαとを比較して、分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する(ステップS250)。変換用検証部250は、c’α=cαであれば分散値fs1(λ),…,fsK(λ),fc(λ)はいずれも改ざんされていないと判断する。c’α≠cαであれば分散値fs1(λ),…,fsK(λ),fc(λ)の少なくとも1個が改ざんされたと判断する。 Then, the conversion verification unit 250 compares the conversion verification value c ′ α with the conversion checksum c α and compares the variance values f s1 (λ),..., F sK (λ), f c (λ). It is verified whether any of the above has been tampered with (step S250). If c ′ α = c α , the conversion verification unit 250 determines that none of the variance values f s1 (λ),..., F sK (λ), f c (λ) has been tampered with. If c ′ α ≠ c α , it is determined that at least one of the dispersion values f s1 (λ),..., f sK (λ), f c (λ) has been falsified.
出力部260は、改ざんがあったと判断した場合はその旨を示す情報(例えば、「⊥」など)を出力する。改ざんがないと判断した場合は分散値ga(i)を出力する(ステップS261)。分散値ga(i)を記憶部290へ記憶しておき、要求に応じて記憶部290から分散値ga(i)を読み出して出力してもよい。 When the output unit 260 determines that there has been falsification, the output unit 260 outputs information indicating the fact (for example, “⊥”). If it is determined that there is no falsification, the variance value g a (i) is output (step S261). The variance value g a (i) may be stored in the storage unit 290, and the variance value g a (i) may be read from the storage unit 290 and output in response to a request.
<データ復元処理>
図7を参照して、データ分散装置10の実行するデータ復元処理の動作例を、実際に行われる手続きの順に従って説明する。
<Data restoration processing>
With reference to FIG. 7, an operation example of data restoration processing executed by the data distribution apparatus 10 will be described in the order of procedures actually performed.
入力部110には、K台の分散データ保有装置20λが記憶するそれぞれK個の分散値fs1(λ),…,fsK(λ),fc(λ),f(λ)が入力される(ステップS111)。 The input unit 110 stores K distributed values f s1 (λ),..., F sK (λ), f c (λ), f (λ) stored in the K distributed data holding devices 20 λ. Input (step S111).
それぞれK個の分散値fs1(λ),…,fsK(λ)は鍵復元部310に入力される。鍵復元部310は、秘密分散方式S1により分散値fs1(λ),…,fsK(λ)からK個の鍵s1,…,sKを復元する(ステップS310)。秘密分散方式S1はどのような秘密分散方式であってもよいが、鍵分散部150が用いる秘密分散方式S1と同じ方式でなければならない。 Each of K variance values f s1 (λ),..., F sK (λ) is input to the key recovery unit 310. The key restoration unit 310 restores K keys s 1,..., S K from the distributed values f s1 (λ),..., F sK (λ) by the secret sharing scheme S1 (step S310). The secret sharing scheme S1 may be any secret sharing scheme, but must be the same scheme as the secret sharing scheme S1 used by the key distribution unit 150.
K個の鍵s1,…,sKは擬似乱数生成部130に入力される。擬似乱数生成部130は、鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することによりK個の擬似乱数r1,…,rKを生成する(ステップS131)。 K keys s 1 ,..., S K are input to the pseudorandom number generator 130. Pseudo-random number generation unit 130, the key s 1, ..., a s K r 1 = P (s 1), ..., the pseudo random number r 1 K pieces of by calculating r K = P (s K) , ..., to generate a r K (step S131).
K個の分散値fc(λ)は暗号文復元部320に入力される。暗号文復元部320は、秘密分散方式S0により分散値fc(λ)から暗号文cを復元する(ステップS320)。秘密分散方式S0はどのような秘密分散方式であってもよいが、暗号文分散部160が用いる秘密分散方式S0と同じ方式でなければならない。 The K variance values f c (λ) are input to the ciphertext restoration unit 320. The ciphertext restoration unit 320 restores the ciphertext c from the distributed value f c (λ) using the secret sharing scheme S0 (step S320). The secret sharing scheme S0 may be any secret sharing scheme, but must be the same scheme as the secret sharing scheme S0 used by the ciphertext distributing unit 160.
暗号文cおよびK個の擬似乱数r1,…,rKは復号部330に入力される。復号部330は、擬似乱数r1,…,rKを用いて暗号文cから情報aを復号する(ステップS330)。具体的には、以下の式(11)に示す通り、暗号文cに擬似乱数r1,…,rKの総和を加算した結果を情報aとする。 The ciphertext c and the K pseudorandom numbers r 1 ,..., R K are input to the decryption unit 330. The decryption unit 330 decrypts the information a from the ciphertext c using the pseudo random numbers r 1 ,..., R K (step S330). Specifically, as shown in the following formula (11), information a is a result of adding the sum of pseudorandom numbers r 1 ,..., R K to the ciphertext c.
情報aおよびK個の分散値f(λ)は復元用検証部340に入力される。復元用検証部340は、情報aを用いて復元用検証値c’βを生成する。生成する検証値は復元用生成部170で生成したチェックサムに対応した検証値である。例えば、復元用生成部170で非特許文献5に記載のチェックサムを生成した場合であれば、rを環R上の乱数(r∈R)とし、情報aを環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(12)により復元用検証値c’βを生成することができる。 The information a and the K variance values f (λ) are input to the restoration verification unit 340. The restoration verification unit 340 generates a restoration verification value c ′ β using the information a. The verification value to be generated is a verification value corresponding to the checksum generated by the restoration generation unit 170. For example, when the checksum described in Non-Patent Document 5 is generated by the restoration generation unit 170, r is a random number on the ring R (r∈R), and the information a is M values on the ring R. As (a 0 , a 1 ,..., A M−1 ∈R), the restoration verification value c ′ β can be generated by the following equation (12).
また、復元用検証部340は、秘密分散方式S3によりK個の分散値f(λ)から復元用チェックサムcβを復元する。秘密分散方式S3はどのような秘密分散方式であってもよいが、復元用生成部170が用いる秘密分散方式S3と同じ方式でなければならない。 Further, the restoration verification unit 340 restores the restoration checksum c β from the K dispersion values f (λ) by the secret sharing scheme S3. The secret sharing scheme S3 may be any secret sharing scheme, but must be the same scheme as the secret sharing scheme S3 used by the restoration generation unit 170.
そして、復元用検証部340は、復元用検証値c’βと復元用チェックサムcβとを比較して、分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する(ステップS340)。復元用検証部340は、c’β=cβであれば分散値fs1(λ),…,fsK(λ),fc(λ)はいずれも改ざんされていないと判断する。c’β≠cβであれば分散値fs1(λ),…,fsK(λ),fc(λ)の少なくとも1個が改ざんされたと判断する。 Then, the restoration verification unit 340 compares the restoration verification value c ′ β with the restoration checksum c β and compares the variance values f s1 (λ),..., F sK (λ), f c (λ). It is verified whether or not any of the above has been falsified (step S340). The restoration verification unit 340 determines that none of the variance values f s1 (λ),..., F sK (λ), and f c (λ) are falsified if c ′ β = c β . If c ′ β ≠ c β , it is determined that at least one of the dispersion values f s1 (λ),..., f sK (λ), f c (λ) has been tampered with.
出力部180は、改ざんがあったと判断した場合はその旨を示す情報(例えば、「⊥」など)を出力する。改ざんがないと判断した場合は復元した情報aを出力する(ステップS181)。   When the output unit 180 determines that the falsification has occurred, the output unit 180 outputs information indicating the fact (for example, “⊥”). If it is determined that there is no falsification, the restored information a is output (step S181).
<分散データ復旧処理>
図8を参照して、秘密分散システム1の実行する分散データ復旧処理の動作例を、実際に行われる手続きの順に従って説明する。この実施形態では分散データ保有装置20iが故障等により利用不可となり、保有する分散値fs1(i),…,fsK(i),fc(i),f(i)が失われた場合を前提とする。
<Distributed data recovery processing>
With reference to FIG. 8, an example of the operation of the distributed data recovery process executed by the secret sharing system 1 will be described in the order of the procedures actually performed. In this embodiment, the distributed data holding device 20 i becomes unusable due to a failure or the like, and the distributed values f s1 (i),..., F sK (i), f c (i), f (i) are lost. Assumes that
以下に示すステップS410からS411までの処理は、任意に選択された少なくともK台の分散データ保有装置20λ(λ∈{1,…,N})が行えばよい。以下では分散データ保有装置20j(j∈λ;i≠j)が行う処理を説明する。。 The processing from step S410 to S411 shown below may be performed by at least K arbitrarily selected distributed data holding devices 20 λ (λε {1,..., N}). Hereinafter, processing performed by the distributed data holding device 20 j (jελ; i ≠ j) will be described. .
記憶部290に記憶されている分散値fs1(j),…,fsK(j),fc(j),f(j)が補間部410に入力される。補間部410は、分散値fs1(j),…,fsK(j),fc(j),f(j)を秘密分散方式S4により分散し、再分散値[fs1(j)],…,[fsK(j)],[fc(j)],[f(j)]を生成する(ステップS410)。秘密分散方式S4はどのような秘密分散方式であってもよく、例えば、Shamir秘密分散方式を用いることができる。 The variance values f s1 (j),..., F sK (j), f c (j), f (j) stored in the storage unit 290 are input to the interpolation unit 410. The interpolation unit 410 distributes the distributed values f s1 (j),..., F sK (j), f c (j), f (j) by the secret sharing scheme S4, and re-distributed values [f s1 (j) ], ..., [f sK (j)], [f c (j)], [f (j)] are generated (step S410). The secret sharing scheme S4 may be any secret sharing scheme. For example, the Shamir secret sharing scheme can be used.
次に、補間部410は、再分散値[fs1(j)],…,[fsK(j)],[fc(j)],[f(j)]を補間して再分散値[fs1(i)],…,[fsK(i)],[fc(i)],[f(i)]を計算する(ステップS411)。補間の方法はどのような補間方法であってもよく、例えば、ラグランジュ補間により行うことができる。具体的には以下のように補間を行う。まず、ラグランジュ補間のための係数αijを求める。係数αijは、分散値fs1(j),…,fsK(j),fc(j),f(j)それぞれについて、ajをいずれかの分散値として、以下の式(13)により求める。 Next, the interpolation unit 410 interpolates the redispersion values [f s1 (j)],..., [F sK (j)], [f c (j)], [f (j)] and redistributes them. Values [f s1 (i)],..., [F sK (i)], [f c (i)], [f (i)] are calculated (step S411). Any interpolation method may be used, and for example, it can be performed by Lagrange interpolation. Specifically, interpolation is performed as follows. First, a coefficient α ij for Lagrange interpolation is obtained. Coefficient alpha ij is the variance value f s1 (j), ..., f sK (j), f c (j), for f C.beta (j), respectively, as one of the dispersion values of a j, the following equation (13 )
次に、再分散値[fs1(i)],…,[fsK(i)],[fc(i)],[f(i)]は、再分散値[fs1(j)],…,[fsK(j)],[fc(j)],[f(j)]それぞれについて、[ai]を補間する再分散値、[aj]を[ai]に対応する再分散値として、以下の式(14)により求める。 Then, re-dispersion values [f s1 (i)], ..., [f sK (i)], [f c (i)], [f cβ (i)] is redispersed value [f s1 (j) ], ..., [f sK (j)], [f c (j)], [f (j)], [a i ] is the redispersion value to be interpolated, and [a j ] is [a i ] Is obtained by the following equation (14).
以下に示すステップS420からS430までの処理は、分散データ保有装置20i(i∈λ;i≠j)のみが行う。 The following processing from step S420 to S430 is performed only by the distributed data holding device 20 i (i∈λ; i ≠ j).
K台の分散データ保有装置20λが出力したそれぞれK個の再分散値[fs1(i)],…,[fsK(i)],[fc(i)],[f(i)]とK個の分散値f(λ)とは入力部210を介して復旧部420へ入力される。復旧部420は、秘密分散方式S4により再分散値[fs1(i)],…,[fsK(i)],[fc(i)],[f(i)]から分散値fs1(i),…,fsK(i),fc(i),f(i)を復元する(ステップS420)。秘密分散方式S4はどのような秘密分散方式であってもよいが、補間部410が用いる秘密分散方式S4と同じ方式でなければならない。 Each K heights of distributed data retention device 20 lambda is output the K redispersed values [f s1 (i)], ..., [f sK (i)], [f c (i)], [f cβ (i )] And K variance values f (λ) are input to the recovery unit 420 via the input unit 210. The recovery unit 420 uses the secret sharing scheme S4 to calculate the distribution value f from the redistribution values [f s1 (i)],..., [F sK (i)], [f c (i)], [f (i)]. s1 (i),..., f sK (i), f c (i), f (i) are restored (step S420). The secret sharing scheme S4 may be any secret sharing scheme, but must be the same scheme as the secret sharing scheme S4 used by the interpolation unit 410.
分散値fs1(i),…,fsK(i),fc(i),f(i)とK個の分散値f(λ)は復旧用検証部430に入力される。復旧用検証部430は、分散値fs1(i),…,fsK(i),fc(i),f(i)を用いて復旧用検証値c’γを生成する。生成する検証値は復旧用生成部550で生成したチェックサムに対応した検証値である。例えば、復旧用生成部550で非特許文献5に記載のチェックサムを生成した場合であれば、rを環R上の乱数(r∈R)とし、分散値fs1(i),…,fsK(i),fc(i),f(i)を環R上のM個の値(a0,a1,…,aM-1∈R)として、以下の式(15)により復旧用検証値c’γを生成することができる。 The variance values f s1 (i),..., F sK (i), f c (i), f (i) and the K variance values f (λ) are input to the restoration verification unit 430. The restoration verification unit 430 generates a restoration verification value c ′ γ using the variance values f s1 (i),..., F sK (i), f c (i), f (i). The verification value to be generated is a verification value corresponding to the checksum generated by the recovery generation unit 550. For example, when the checksum described in Non-Patent Document 5 is generated by the recovery generation unit 550, r is a random number on the ring R (r∈R), and the distributed value f s1 (i),. Let sK (i), f c (i), f (i) be M values on ring R (a 0 , a 1 , ..., a M-1 ∈R), A recovery verification value c ′ γ can be generated.
また、復旧用検証部430は、秘密分散方式S3によりK個の分散値f(λ)から復旧用チェックサムcγを復元する。秘密分散方式S3はどのような秘密分散方式であってもよいが、復旧用生成部550が用いる秘密分散方式S3と同じ方式でなければならない。 Further, the restoration verification unit 430 restores the restoration checksum c γ from the K distributed values f (λ) by the secret sharing scheme S3. The secret sharing scheme S3 may be any secret sharing scheme, but it must be the same as the secret sharing scheme S3 used by the recovery generation unit 550.
そして、復旧用検証部430は、復旧用検証値c’γと復旧用チェックサムcγとを比較して、分散値fs1(i),…,fsK(i),fc(i),f(i)のいずれかが改ざんされたか否かを検証する(ステップS430)。復旧用検証部430は、c’γ=cγであれば分散値fs1(i),…,fsK(i),fc(i),f(i)はいずれも改ざんされていないと判断する。c’γ≠cγであれば分散値fs1(i),…,fsK(i),fc(i),f(i)の少なくとも1個が改ざんされたと判断する。 Then, the restoration verification unit 430 compares the restoration verification value c ′ γ with the restoration checksum c γ and compares the variance values f s1 (i),..., F sK (i), f c (i) , f (i) is verified (step S430). If c ′ γ = c γ , the restoration verification unit 430 has not altered any of the variance values f s1 (i),..., F sK (i), f c (i), and f (i). Judge. If c ′ γ ≠ c γ , it is determined that at least one of the variance values f s1 (i),..., f sK (i), f c (i), f (i) has been tampered with.
出力部260は、改ざんがあったと判断した場合はその旨を示す情報(例えば、「⊥」など)を出力する。改ざんがないと判断した場合は分散値fs1(i),…,fsK(i),fc(i),f(i)を記憶部290へ記憶する。 When the output unit 260 determines that there has been falsification, the output unit 260 outputs information indicating the fact (for example, “⊥”). If it is determined that there is no falsification, the variance values f s1 (i),..., F sK (i), f c (i), f (i) are stored in the storage unit 290.
<データ再分散処理>
図9を参照して、秘密分散システム1の実行するデータ再分散処理の動作例を、実際に行われる手続きの順に従って説明する。データ再分散処理は少なくとも2K-1台の分散データ保有装置20nが利用可能となっている必要がある。故障等により利用可能な分散データ保有装置20nが2K-1台未満となっている場合には、データ再分散処理に先立って、上述の分散データ復旧処理により2K-1台以上の分散データ保有装置20nを利用可能としておく。以降の説明では、2K-1台の分散データ保有装置20ζ(ζ∈{1,…,N})が利用可能となっているものとする。データ再分散処理は、2K-1台の分散データ保有装置20ζが行う。以下では、分散データ保有装置20i(i∈ζ)が行う処理を説明する。
<Data redistribution processing>
With reference to FIG. 9, an operation example of data redistribution processing executed by the secret sharing system 1 will be described in the order of procedures actually performed. The data redistribution processing needs to be available for at least 2K-1 distributed data holding apparatuses 20 n . If the number of distributed data holding devices 20 n that can be used due to a failure or the like is less than 2K-1, 2K-1 or more of distributed data is held by the above-mentioned distributed data recovery processing before the data redistribution processing. The device 20 n is made available. In the following description, it is assumed that 2K-1 distributed data holding devices 20 ζ (ζε {1,..., N}) are available. The data re-distribution process is performed by 2K-1 distributed data holding apparatuses 20 ζ . Hereinafter, processing performed by the distributed data holding device 20 i (iεζ) will be described.
記憶部290に記憶されている分散値fs1(i),…,fsK(i),f(i)が再分散部510に入力される。再分散部510は、分散値fs1(i),…,fsK(i),f(i)を秘密分散方式S1により分散して再分散値[fs1(i)],…,[fsK(i)],[f(i)]を生成する(ステップS510)。秘密分散方式S1はどのような秘密分散方式であってもよいが、データ分散装置10の有する鍵分散部150の用いる秘密分散方式S1と同じ方式でなければならない。 The variance values f s1 (i),..., F sK (i), f (i) stored in the storage unit 290 are input to the redistribution unit 510. The redistribution unit 510 disperses the dispersion values f s1 (i),..., F sK (i), f (i) by the secret sharing scheme S1, and redistribute values [f s1 (i)] ,. f sK (i)], [f (i)] are generated (step S510). The secret sharing scheme S1 may be any secret sharing scheme, but must be the same scheme as the secret sharing scheme S1 used by the key distribution unit 150 of the data distribution apparatus 10.
再分散部510が秘密分散する際に用いる乱数は、鍵分散部150が秘密分散する際に用いた乱数と異なるものとする。例えば、rα1,…,rαKを環R上のK個の乱数(rα1,…,rαK∈R)とし、rβ1,…,rβKを環R上のK個の乱数(rβ1,…,rβK∈R)とし、乱数rα1,…,rαK,rβ1,…,rβKが相異なる乱数であるとして、鍵分散部150が乱数rα1,…,rαK∈Rを用いてShamir秘密分散により鍵s1,…,sKをそれぞれN個の分散値fs1(n),…,fsK(n)へ分散したとする。この場合、再分散部510は、乱数rβ1,…,rβK∈Rを用いてShamir秘密分散により分散値fs1(i),…,fsK(i)をそれぞれ2K-1個の再分散値[fs1(i)],…,[fsK(i)],[f(i)]へ分散すればよい。 It is assumed that the random number used when the redistribution unit 510 performs secret sharing is different from the random number used when the key distribution unit 150 performs secret sharing. For example, let r α1 , ..., r αK be K random numbers (r α1 , ..., r αK ∈R) on ring R, and r β1 , ..., r βK be K random numbers on ring R (r β1 , ..., r βK ∈R), and the random number r α1 , ..., r αK , r β1 , ..., r βK are different random numbers, the key distribution unit 150 sets the random numbers r α1 , ..., r αK ∈R to It is assumed that the keys s 1 ,..., S K are distributed to N distributed values f s1 (n),..., F sK (n) by Shamir secret sharing. In this case, the redistribution unit 510 uses the random numbers r β1 ,..., R βK ∈R to redistribute 2K−1 redistribution values f s1 (i) ,. What is necessary is just to disperse | distribute to the value [f s1 (i)], ..., [f sK (i)], [f (i)].
再分散値[fs1(i)],…,[fsK(i)],[f(i)]は出力部260を介して出力され、それぞれ2K-1台の分散データ保有装置20ζにネットワーク9もしくはUSBメモリ等の可搬型記録媒体を経由して入力される。 The re-distribution values [f s1 (i)],..., [F sK (i)], [f (i)] are output via the output unit 260, and each of the 2K-1 distributed data holding devices 20 ζ Are input via a network 9 or a portable recording medium such as a USB memory.
2K-1台の分散データ保有装置20ζの有する再分散部510が出力する再分散値[fs1(ζ)],…,[fsK(ζ)],[f(ζ)]は入力部210を介して一貫性検証部520へ入力される。一貫性検証部520は、再分散値[fs1(ζ)],…,[fsK(ζ)],[f(ζ)]を補間して再分散値[fs1(i)]’,…,[fsK(i)]’,[f(i)]’を生成する(ステップS520)。補間の方法はどのような補間方法であってもよく、例えば、ラグランジュ補間により行うことができる。補間して生成した再分散値[fs1(i)]’,…,[fsK(i)]’,[f(i)]’と再分散部510が生成した再分散値[fs1(i)],…,[fsK(i)],[f(i)]とをそれぞれ比較し、分散値fs1(ζ),…,fsK(ζ),f(ζ)の改ざん有無を検証する。k=1,…,Kのすべてについて[fsk(i)]’=[fsk(i)]かつ[f(i)]’=[f(i)]であれば、分散値fs1(ζ),…,fsK(ζ),f(ζ)はいずれも改ざんされていないと判断する。いずれかのkについて[fsk(i)]’≠[fsk(i)]もしくは[f(i)]’≠[f(i)]であれば、少なくとも1個の分散値fs1(ζ),…,fsK(ζ),f(ζ)が改ざんされたと判断する。 The redistribution values [f s1 (ζ)],..., [F sK (ζ)], [f (ζ)] output from the redistribution unit 510 of the 2K-1 distributed data holding devices 20 ζ are input. The data is input to the consistency verification unit 520 via the unit 210. The consistency verification unit 520 interpolates the redispersion values [f s1 (ζ)],..., [F sK (ζ)], [f (ζ)] to redistribute values [f s1 (i)] ′. ,..., [F sK (i)] ′, [f (i)] ′ are generated (step S520). Any interpolation method may be used, and for example, it can be performed by Lagrange interpolation. Re-dispersion values [f s1 (i)] ′,..., [F sK (i)] ′, [f (i)] ′ generated by interpolation and the re-distribution values [f s1 (i)], ..., [f sK (i)], [f (i)], respectively, and the variance values f s1 (ζ), ..., f sK (ζ), f (ζ) Verify whether tampering has occurred. If [f sk (i)] '= [f sk (i)] and [f (i)]' = [f (i)] for all k = 1, ..., K, the variance f It is determined that neither s1 (ζ),..., f sK (ζ), or f (ζ) has been tampered with. If [f sk (i)] ′ ≠ [f sk (i)] or [f (i)] ′ ≠ [f (i)] for any k , at least one variance value f s1 It is determined that (ζ),..., f sK (ζ), f (ζ) are falsified.
2K-1台の分散データ保有装置20ζがすべて改ざんなしと判断した場合、一貫性検証が成功したものとする。いずれかの分散データ保有装置20z(z∈ζ)が改ざんありと判断した場合、一貫性検証が失敗したものとする。 When all the 2K-1 distributed data holding devices 20 ζ determine that there is no falsification, it is assumed that the consistency verification is successful. When any of the distributed data holding devices 20 z (zεζ) is determined to have been tampered with, it is assumed that the consistency verification has failed.
一貫性検証が成功した場合には、再分散値[fs1(i)],…,[fsK(i)],[f(i)]が再復元部530に入力される。再復元部530は、秘密分散方式S1により乱数rα1,…,rαK∈Rを用いて再分散値[fs1(i)],…,[fsK(i)],[f(i)]を復元することで、新たな分散値f’s1(i),…,f’sK(i),f’(i)を生成する(ステップS530)。これにより、新たな分散値f’s1(i),…,f’sK(i),f’(i)は鍵s1,…,sKを乱数rβ1,…,rβK∈Rを用いて秘密分散方式S1により分散した分散値と等しくなる。秘密分散方式S1はどのような秘密分散方式であってもよいが、データ分散装置10の有する鍵分散部150の用いる秘密分散方式S1と同じ方式でなければならない。 If the consistency verification is successful, the re-distribution values [f s1 (i)],..., [F sK (i)], [f (i)] are input to the re-restoring unit 530. Re restoring unit 530, the random number r [alpha] 1 by the secret sharing scheme S1, ..., redispersed value with r αK ∈R [f s1 (i )], ..., [f sK (i)], [f cβ (i )] Is generated to generate new variance values f ′ s1 (i),..., F ′ sK (i), f ′ (i) (step S530). As a result, the new variance values f ′ s1 (i),..., F ′ sK (i), f ′ (i) are converted from the keys s 1 ,…, s K to the random numbers r β1 ,…, r βK ∈R. Used to be equal to the distributed value distributed by the secret sharing scheme S1. The secret sharing scheme S1 may be any secret sharing scheme, but must be the same scheme as the secret sharing scheme S1 used by the key distribution unit 150 of the data distribution apparatus 10.
新たな分散値f’s1(i),…,f’sK(i),f’(i)は復旧用生成部550へ入力される。復旧用生成部550は、分散値f’s1(i),…,f’sK(i),fc(i),f’(i)を用いて新たな復旧用チェックサムc’γを生成する(ステップS550)。次に、復旧用生成部550は、新たな復旧用チェックサムc’γを秘密分散方式S3によりN個の分散値f’(n)に分散する。 The new variance values f ′ s1 (i),..., F ′ sK (i), f ′ (i) are input to the recovery generation unit 550. The recovery generation unit 550 uses the variance values f ′ s1 (i),..., F ′ sK (i), f c (i), f ′ (i) to generate a new recovery checksum c ′ γ . Generate (step S550). Next, the recovery generation unit 550 distributes the new recovery checksum c ′ γ into N distributed values f ′ (n) by the secret sharing scheme S3.
出力部260は、分散値f’(n)を出力する(ステップS262)。出力された分散値f’(n)は、それぞれ分散データ保有装置201〜20Nにネットワーク9もしくはUSBメモリ等の可搬型記録媒体を経由して入力される。また、分散データ保有装置201〜20Nは分散値f’(i)を記憶部290へ記憶する。 The output unit 260 outputs the variance value f ′ (n) (step S262). Output variance value f 'cγ (n) is input through the portable recording medium such as a network 9 or USB memory, each distributed data retention device 20 1 to 20 N. Moreover, the distributed data held device 20 1 to 20 N stores a variance value f 'cγ (i) to the storage unit 290.
<機密性>
分散データ保有装置201〜20Nが得る情報aに関する情報は、準同型性をもつ秘密分散方式S2による分散値であり、各分散値の生成に用いる乱数が互いに独立であれば、この実施形態の機密性は、利用する準同型性をもつ秘密分散方式S2の機密性に帰着される。また、K-1台の分散データ保有装置20iは情報aの分散値である復元値Uiを得るが、K個の復元値U1,…,UKすべてを得られない限り情報aを得ることはできない。そのため、この実施形態の機密性は、結局、利用する秘密分散方式S2の機密性に帰着される。
<Confidentiality>
Information about the information a dispersion data retention device 20 1 to 20 N is obtained is a dispersion value according to a secret sharing scheme S2, with homomorphism, if an independent random number used in the generation of each dispersion value to each other, this embodiment The secrecy is reduced to the secrecy of the secret sharing scheme S2 having homomorphism to be used. The K-1 distributed data holding devices 20 i obtain the restoration value U i that is the dispersion value of the information a. However, unless all the K restoration values U 1 ,. I can't get it. Therefore, the confidentiality of this embodiment is eventually reduced to the confidentiality of the secret sharing scheme S2 to be used.
<効果>
この実施形態の秘密分散システムは、計算量型秘密分散方式による情報aの分散値fa(1),…,fa(N)を、任意の準同型性をもつ秘密分散方式S2による分散値ga(1),…,ga(N)に変換することができる。
<Effect>
In the secret sharing system of this embodiment, the distributed values f a (1),..., F a (N) of the information a by the computational complexity type secret sharing scheme are used as the distributed values by the secret sharing scheme S2 having an arbitrary homomorphism. g a (1), ..., g a (N).
準同型性をもつ秘密分散方式としては、例えば、Shamir秘密分散方式など既存の線形秘密分散方式が挙げられる。Shamir秘密分散方式など既存の線形秘密分散方式を用いてマルチパーティ計算を行う方法は既知であるため、秘密分散方式S2としてShamir秘密分散方式など既存の任意の線形秘密分散方式を選択することで、計算量型秘密分散方式による分散値を用いてマルチパーティ計算を行うことができるようになる。   Examples of secret sharing schemes having homomorphism include existing linear secret sharing schemes such as Shamir secret sharing schemes. Since the method of performing multi-party computation using the existing linear secret sharing scheme such as Shamir secret sharing scheme is known, by selecting any existing linear secret sharing scheme such as Shamir secret sharing scheme as secret sharing scheme S2, Multi-party calculation can be performed using a distributed value based on a computational complexity type secret sharing scheme.
例えば、非特許文献2に記載の計算量型秘密分散方式は分散値のサイズの下限が元のデータの1/Kとなるため、暗号文cを分散する秘密分散方式S0として非特許文献2に記載の計算量型秘密分散方式を適用すれば、分散値のサイズが元のデータと同程度となるShamir秘密分散方式と比較して、分散値を保存するために必要となる記憶容量を削減することができる。   For example, in the computational complexity type secret sharing scheme described in Non-Patent Document 2, since the lower limit of the size of the distributed value is 1 / K of the original data, the secret sharing scheme S0 for distributing the ciphertext c is disclosed in Non-Patent Document 2. Applying the described computational complexity type secret sharing scheme reduces the storage capacity required to store the shared value compared to the Shamir secret sharing scheme where the size of the distributed value is comparable to the original data. be able to.
また、この発明の秘密分散技術は復旧、再分散が可能となっており、一部の分散値が漏洩もしくは失われた場合でも対処することが可能であり、安全性が向上している。   Further, the secret sharing technique of the present invention can be restored and re-distributed, and even when some of the shared values are leaked or lost, the security can be improved.
そして、変換、復元、復旧の各操作においてチェックサムを検証することで分散値の改ざんを検知することができるため、各操作の正当性が保証される。   Since the alteration of the distributed value can be detected by verifying the checksum in each of the conversion, restoration, and recovery operations, the correctness of each operation is guaranteed.
[変形例1]
復元用チェックサムcβは分散データ保有装置201,…,20Nそれぞれが生成してもよい。変換用チェックサムcαはデータ分散装置10が生成してもよい。復旧用チェックサムcγはデータ分散装置10が生成してもよい。これらの組み合わせは任意であり、例えば、すべてのチェックサムcα,cβ,cγをデータ分散装置10が生成してもよいし、すべてのチェックサムcα,cβ,cγを分散データ保有装置201,…,20Nそれぞれが生成してもよい。また、データ分散装置10が復元用チェックサムcβと変換用チェックサムcαを生成し、分散データ保有装置201,…,20Nそれぞれが復旧用チェックサムcγを生成してもよい。
[Modification 1]
Recovery checksum c beta Distributed data held device 20 1, ..., may be generated is 20 N, respectively. Conversion checksum c alpha may generate the data distribution device 10. The recovery checksum c γ may be generated by the data distribution apparatus 10. These combinations are optional, for example, all the checksums c alpha, c beta, may be generated by the data distribution device 10 c gamma, all checksums c α, c β, c γ Distributed Data Each of the holding devices 20 1 ,..., 20 N may generate. Further, data distribution device 10 generates the conversion checksum c alpha and restoring checksum c beta, distributed data retention device 20 1, ..., 20 N respectively may generate a checksum c gamma for recovery.
復元用チェックサムcβを分散データ保有装置201,…,20Nが生成する場合には、分散データ保有装置201,…,20Nは復元用生成部171を含み、データ分散装置10は復元用生成部170を含まない。分散データ保有装置201,…,20Nはチェックサム生成処理において以下のように復元用チェックサムcβを生成すればよい。 When the distributed data holding devices 20 1 ,..., 20 N generate the restoration checksum c β , the distributed data holding devices 20 1 ,..., 20 N include the restoration generation unit 171. The restoration generating unit 170 is not included. The distributed data holding devices 20 1 ,..., 20 N may generate the restoration checksum c β as follows in the checksum generation process.
入力部210から入力された分散値fs1(i),…,fsK(i),fc(i)は復元用生成部171に入力される。復元用生成部171は、上述したデータ変換処理により、情報aの分散値ga(i)を生成する。続いて、任意のマルチパーティ計算方法により、分散値ga(i)を用いて復元用チェックサムcβの分散値f(i)を生成する。チェックサムの生成方法は復元用生成部170と同様である。マルチパーティ計算方法は例えば、非特許文献3や非特許文献4に記載の方法を用いることができる。分散値ga(i)は準同型性をもつ秘密分散方式S2による分散値であるので、加算と乗算からなるチェックサムを他の計算主体と通信することなく秘匿計算を行うことができる。したがって、分散値ga(i)を用いて計算したチェックサムは、情報aを用いて計算した復元用チェックサムcβの分散値となる。 The variance values f s1 (i),..., F sK (i), f c (i) input from the input unit 210 are input to the restoration generation unit 171. The restoration generation unit 171 generates the variance value g a (i) of the information a by the data conversion process described above. Subsequently, the variance value f (i) of the restoration checksum c β is generated using the variance value g a (i) by an arbitrary multi-party calculation method. The checksum generation method is the same as that of the restoration generation unit 170. For example, the methods described in Non-Patent Document 3 and Non-Patent Document 4 can be used as the multi-party calculation method. Since the variance value g a (i) is a variance value according to the secret sharing scheme S2 having homomorphism, a secret calculation can be performed without communicating a checksum consisting of addition and multiplication with another calculation subject. Therefore, the checksum calculated using the variance value g a (i) is the variance value of the restoration checksum c β calculated using the information a.
変換用チェックサムcαをデータ分散装置10が生成する場合には、データ分散装置10は変換用生成部541を含み、分散データ保有装置201,…,20Nは変換用生成部540を含まない。データ分散装置10はデータ分散処理において以下のように変換用チェックサムcαを生成すればよい。 When the conversion checksum c alpha data distribution apparatus 10 generates the data distribution apparatus 10 includes a conversion generating unit 541, the distributed data held device 20 1, ..., 20 N are free of conversion generation unit 540 Absent. Data distribution apparatus 10 may generate a conversion checksum c alpha as follows in the data distribution processing.
入力部110から入力された情報aは変換用生成部541に入力される。変換用生成部541は、情報aを任意の準同型性をもつ秘密分散方式S2によりN個の分散値ga(n)に分散する。続いて、i=1,…,Nごとに、分散値ga(i)を用いて変換用チェックサムcαを生成する。変換用チェックサムcαの生成方法は変換用生成部540と同様である。変換用生成部541は、変換用チェックサムcαを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3は変換用生成部540と同様である。 Information a input from the input unit 110 is input to the conversion generation unit 541. The conversion generation unit 541 distributes the information a into N distributed values g a (n) by a secret sharing scheme S2 having an arbitrary homomorphism. Subsequently, for each i = 1,..., N, a conversion checksum c α is generated using the variance value g a (i). The method for generating the conversion checksum c α is the same as that of the conversion generation unit 540. The conversion generation unit 541 distributes the conversion checksum c α into N distributed values f (n) by an arbitrary secret sharing scheme S3. The secret sharing scheme S3 is the same as that of the conversion generation unit 540.
復旧用チェックサムcγをデータ分散装置10が生成する場合には、データ分散装置10は復旧用生成部551を含み、分散データ保有装置201,…,20Nは復旧用生成部550を含まない。データ分散装置10はデータ分散処理において以下のように復旧用チェックサムcγを生成すればよい。 When the data distribution device 10 generates the checksum c γ for recovery, the data distribution device 10 includes a recovery generation unit 551, and the distributed data holding devices 20 1 ,..., 20 N include a recovery generation unit 550. Absent. Data distribution apparatus 10 may generate the restoration checksum c gamma as follows in the data distribution processing.
鍵分散部150の出力する分散値fs1(n),…,fsK(n)と暗号文分散部160の出力する分散値fc(n)と復元用生成部170もしくは復元用生成部171の出力する分散値f(n)は復旧用生成部551へ入力される。復旧用生成部551は、i=1,…,Nごとに、分散値fs1(i),…,fsK(i),fc(i),f(i)を用いて復旧用チェックサムcγを生成する。復旧用チェックサムcγの生成方法は復旧用生成部550と同様である。復旧用生成部551は、復旧用チェックサムcγを任意の秘密分散方式S3によりN個の分散値f(n)に分散する。秘密分散方式S3は復旧用生成部550と同様である。 Variance value and outputs the key distribution unit 150 f s1 (n), ... , f sK (n) and the variance value f c (n) and the restoring generation unit 170 or the restoration generator 171 outputs the ciphertext part 160 Is output to the recovery generation unit 551. The recovery generation unit 551 uses the variance values f s1 (i),..., F sK (i), f c (i), f (i) for each i = 1 ,. Generate the sum c γ . The method of generating the recovery checksum c γ is the same as that of the recovery generation unit 550. The recovery generation unit 551 distributes the recovery checksum c γ into N distributed values f (n) by an arbitrary secret sharing scheme S3. The secret sharing scheme S3 is the same as that of the recovery generation unit 550.
[変形例2]
変換用検証部250は、復元用チェックサムcβを用いて改ざん検知を行ってもよい。この場合には、分散データ保有装置201,…,20Kは変換用生成部540を備えず、変換用検証部250は、以下のように改ざん検知を行えばよい。
[Modification 2]
Conversion verification unit 250 may perform tampering detection using the restoring checksum c beta. In this case, the distributed data holding devices 20 1 ,..., 20 K do not include the conversion generation unit 540, and the conversion verification unit 250 may perform falsification detection as follows.
変換用検証部250は、上述したデータ変換処理により、情報aの分散値ga(i)を生成する。次に、変換用検証部250は、任意のマルチパーティ計算方法により、分散値ga(i)を用いて情報aの復元用検証値c’βを生成する。マルチパーティ計算方法は例えば、非特許文献3や非特許文献4に記載の方法を用いることができる。分散値ga(i)は準同型性をもつ秘密分散方式S2による分散値であるので、加算と乗算からなる検証値を他の計算主体と通信することなく秘匿計算を行うことができる。したがって、分散値ga(i)を用いて計算した検証値は、情報aを用いて計算した復元用検証値c’βの分散値となる。 The conversion verification unit 250 generates the variance value g a (i) of the information a by the data conversion process described above. Next, the conversion verification unit 250 generates a verification value c ′ β for restoring the information a using the variance value g a (i) by an arbitrary multi-party calculation method. For example, the methods described in Non-Patent Document 3 and Non-Patent Document 4 can be used as the multi-party calculation method. Since the variance value g a (i) is a variance value according to the secret sharing scheme S2 having homomorphism, it is possible to perform a secret calculation without communicating a verification value consisting of addition and multiplication with another calculation subject. Therefore, the verification value calculated using the variance value g a (i) is the variance value of the restoration verification value c ′ β calculated using the information a.
このように構成することで、秘密分散システム1は復元用チェックサムcβと変換用チェックサムcαとの両方を保持する必要がなく、必要とされるリソースを削減することができる。 With this configuration, the secret sharing system 1 does not need to hold both the restoration checksum and the conversion checksum cα, and the required resources can be reduced.
[プログラム、記録媒体]
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[Program, recording medium]
The present invention is not limited to the above-described embodiment, and it goes without saying that modifications can be made as appropriate without departing from the spirit of the present invention. The various processes described in the above-described embodiments are not only executed in time series according to the order described, but may be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes.
また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。   When various processing functions in each device described in the above embodiment are realized by a computer, the processing contents of the functions that each device should have are described by a program. Then, by executing this program on a computer, various processing functions in each of the above devices are realized on the computer.
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。   The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   The program is distributed 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, the computer reads a program stored in its own recording medium and executes a 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 秘密分散システム
9 ネットワーク
10 データ分散装置
20 分散データ保有装置
110 入力部
120 鍵選択部
130 擬似乱数生成部
140 暗号化部
150 鍵分散部
160 暗号文分散部
170 復元用生成部
180 出力部
210 入力部
220 復元部
230 分散部
240 変換部
250 変換用検証部
260 出力部
310 鍵復元部
320 暗号文復元部
330 復号部
340 復元用検証部
410 補間部
420 復旧部
430 復旧用検証部
510 再分散部
520 一貫性検証部
530 再復元部
540 変換用生成部
550 復旧用生成部
DESCRIPTION OF SYMBOLS 1 Secret sharing system 9 Network 10 Data distribution apparatus 20 Distributed data holding apparatus 110 Input part 120 Key selection part 130 Pseudo-random number generation part 140 Encryption part 150 Key distribution part 160 Ciphertext distribution part 170 Restoration generation part 180 Output part 210 Input Unit 220 restoration unit 230 distribution unit 240 conversion unit 250 conversion verification unit 260 output unit 310 key restoration unit 320 ciphertext restoration unit 330 decryption unit 340 restoration verification unit 410 interpolation unit 420 restoration unit 430 restoration verification unit 510 redistribution unit 520 Consistency verification unit 530 Restoration unit 540 Conversion generation unit 550 Recovery generation unit

Claims (12)

  1. データ分散装置とN台の分散データ保有装置を含む秘密分散システムであって、
    N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    前記データ分散装置は、
    K個の鍵s1,…,sK∈Sを選択する鍵選択部と、
    前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成部と、
    情報a∈Rから前記擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化部と、
    前記鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散部と、
    前記暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散部と、
    を有し、
    前記分散データ保有装置は、
    K個の分散値fsi(λ)から前記秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から前記秘密分散方式S0により復元値U0を復元する復元部と、
    前記復元値U0,Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散部と、
    K+1個の分散値fU0(i),…,fUK(i)から前記情報aの分散値ga(i)を生成する変換部と、
    前記分散値fsi(λ)が入力されると前記復元部と前記分散部と前記変換部により前記分散値ga(i)を生成し、前記分散値ga(i)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成部と、
    前記分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を前記秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証部と、
    を有する秘密分散システム。
    A secret sharing system including a data distribution device and N distributed data holding devices,
    N and K are integers of 2 or more, N ≧ K, n = 1,..., N, λ is 1 or more and N or less different integers, and i is an integer of i∈λ F x (n) is N variances of x, R is a ring, S is a key space, P (x) is a mapping that transfers x∈S to ring R,
    The data distribution device includes:
    A key selection unit for selecting K keys s 1 ,..., S K ∈ S;
    The key s 1, ..., s K from r 1 = P (s 1) , ..., the pseudo random number r 1 by calculating r K = P (s K) , ..., pseudo-random number generator for generating a r K When,
    An encryption unit that generates a ciphertext c from the information a∈R using the pseudo-random numbers r 1 ,..., R K ;
    A key distribution unit that distributes the keys s 1,..., S K into N distributed values f s1 (n),..., F sK (n), respectively, by an arbitrary secret sharing scheme S1;
    A ciphertext distributing unit that distributes the ciphertext c to N distributed values f c (n) by an arbitrary secret sharing scheme S0;
    Have
    The distributed data holding device is:
    A restored value U i = P (u i ) is calculated from a value u i restored by the secret sharing scheme S1 from K variance values f si (λ), and the secret is obtained from K variance values f c (λ). A restoration unit for restoring the restored value U 0 by the distribution method S0;
    A dispersion unit that distributes the restored values U 0 and U i to N distributed values f U0 (n) and f Ui (n) by a secret sharing scheme S2 having arbitrary homomorphism,
    A conversion unit that generates a variance value g a (i) of the information a from K + 1 variance values f U0 (i),..., F UK (i);
    Wherein said generating a variance value g a (i) variance f si (lambda) and is inputted to the restoration unit and the distribution unit by the conversion unit, for the conversion using the variance value g a (i) A generation unit for conversion that generates a checksum c α and distributes it to N distributed values f (n) by an arbitrary secret sharing scheme S3;
    The conversion verification value c ′ α generated using the variance value g a (i) is compared with the conversion checksum c α obtained by restoring the K variance values f (λ) by the secret sharing scheme S3. Then, a verification unit for conversion for verifying whether any one of the variance values f s1 (λ),..., F sK (λ), f c (λ) has been falsified,
    A secret sharing system.
  2. データ分散装置とN台の分散データ保有装置を含む秘密分散システムであって、
    N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    前記データ分散装置は、
    K個の鍵s1,…,sK∈Sを選択する鍵選択部と、
    前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成部と、
    情報a∈Rから前記擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化部と、
    前記鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散部と、
    前記暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散部と、
    前記情報aを任意の準同型性をもつ秘密分散方式S2によりN個に分散した分散値ga(n)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成部と、
    を有し、
    前記分散データ保有装置は、
    K個の分散値fsi(λ)から前記秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から前記秘密分散方式S0により復元値U0を復元する復元部と、
    前記復元値U0,Uiを前記秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散部と、
    K+1個の分散値fU0(i),…,fUK(i)から前記情報aの分散値ga(i)を生成する変換部と、
    前記分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を前記秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証部と、
    を有する秘密分散システム。
    A secret sharing system including a data distribution device and N distributed data holding devices,
    N and K are integers of 2 or more, N ≧ K, n = 1,..., N, λ is 1 or more and N or less different integers, and i is an integer of i∈λ F x (n) is N variances of x, R is a ring, S is a key space, P (x) is a mapping that transfers x∈S to ring R,
    The data distribution device includes:
    A key selection unit for selecting K keys s 1 ,..., S K ∈ S;
    The key s 1, ..., s K from r 1 = P (s 1) , ..., the pseudo random number r 1 by calculating r K = P (s K) , ..., pseudo-random number generator for generating a r K When,
    An encryption unit that generates a ciphertext c from the information a∈R using the pseudo-random numbers r 1 ,..., R K ;
    A key distribution unit that distributes the keys s 1,..., S K into N distributed values f s1 (n),..., F sK (n), respectively, by an arbitrary secret sharing scheme S1;
    A ciphertext distributing unit that distributes the ciphertext c to N distributed values f c (n) by an arbitrary secret sharing scheme S0;
    A checksum c α for conversion is generated by using a distributed value g a (n) in which the information a is distributed into N pieces by a secret sharing scheme S2 having an arbitrary homomorphism, and N pieces by an arbitrary secret sharing scheme S3. A generating unit for conversion that distributes to a variance value f (n) of
    Have
    The distributed data holding device is:
    A restored value U i = P (u i ) is calculated from a value u i restored by the secret sharing scheme S1 from K variance values f si (λ), and the secret is obtained from K variance values f c (λ). A restoration unit for restoring the restored value U 0 by the distribution method S0;
    A dispersion unit that distributes the restored values U 0 and U i to N distributed values f U0 (n) and f Ui (n) by the secret sharing scheme S2, respectively;
    A conversion unit that generates a variance value g a (i) of the information a from K + 1 variance values f U0 (i),..., F UK (i);
    The conversion verification value c ′ α generated using the variance value g a (i) is compared with the conversion checksum c α obtained by restoring the K variance values f (λ) by the secret sharing scheme S3. Then, a verification unit for conversion for verifying whether any one of the variance values f s1 (λ),..., F sK (λ), f c (λ) has been falsified,
    A secret sharing system.
  3. 請求項1または2に記載の秘密分散システムであって、
    前記データ分散装置は、
    前記情報aを用いて復元用チェックサムcβを生成し、前記秘密分散方式S3によりそれぞれN個の分散値f(n)に分散する復元用生成部と、
    前記秘密分散方式S1により前記分散値fsi(λ)から鍵s1,…,sKを復元する鍵復元部と、
    前記秘密分散方式S0により前記分散値fc(λ)から暗号文cを復元する暗号文復元部と、
    前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより生成した擬似乱数r1,…,rKを用いて前記暗号文cから前記情報aを復号する復号部と、
    前記情報aを用いて生成した復元用検証値c’βとK個の分散値f(λ)を前記秘密分散方式S3により復元した復元用チェックサムcβとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する復元用検証部と、
    を有する秘密分散システム。
    The secret sharing system according to claim 1 or 2,
    The data distribution device includes:
    A restoration checksum c β is generated using the information a, and a restoration generation unit that distributes each of the N distributed values f (n) by the secret sharing scheme S3;
    A key restoration unit for restoring the keys s 1,..., S K from the shared value f si (λ) by the secret sharing scheme S1;
    A ciphertext restoration unit that restores ciphertext c from the distributed value f c (λ) by the secret sharing scheme S0;
    The key s 1, ..., a s K r 1 = P (s 1), ..., the pseudo random number r 1 was generated by calculating the r K = P (s K) , ..., the encryption using r K A decryption unit for decrypting the information a from the sentence c;
    By comparing the restoration verification value c ′ β generated using the information a and the K distribution values f (λ) with the restoration checksum c β restored by the secret sharing scheme S3, A restoration verification unit that verifies whether any of the values f s1 (λ),..., F sK (λ), f c (λ) has been tampered with;
    A secret sharing system.
  4. 請求項1または2に記載の秘密分散システムであって、
    前記データ分散装置は、
    前記秘密分散方式S1により前記分散値fsi(λ)から鍵s1,…,sKを復元する鍵復元部と、
    前記秘密分散方式S0により前記分散値fc(λ)から暗号文cを復元する暗号文復元部と、
    前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより生成した擬似乱数r1,…,rKを用いて前記暗号文cから前記情報aを復号する復号部と、
    前記情報aを用いて生成した復元用検証値c’βとK個の分散値f(λ)を前記秘密分散方式S3により復元した復元用チェックサムcβとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する復元用検証部と、
    を有し、
    前記分散データ保有装置は、
    前記分散値fsi(λ)が入力されると前記復元部と前記分散部と前記変換部により前記分散値ga(i)を生成し、前記分散値ga(i)を用いて復元用チェックサムcβを前記秘密分散方式S3により分散した分散値f(i)を生成する復元用生成部と、
    を有する秘密分散システム。
    The secret sharing system according to claim 1 or 2,
    The data distribution device includes:
    A key restoration unit for restoring the keys s 1,..., S K from the shared value f si (λ) by the secret sharing scheme S1;
    A ciphertext restoration unit that restores ciphertext c from the distributed value f c (λ) by the secret sharing scheme S0;
    The key s 1, ..., a s K r 1 = P (s 1), ..., the pseudo random number r 1 was generated by calculating the r K = P (s K) , ..., the encryption using r K A decryption unit for decrypting the information a from the sentence c;
    By comparing the restoration verification value c ′ β generated using the information a and the K distribution values f (λ) with the restoration checksum c β restored by the secret sharing scheme S3, A restoration verification unit that verifies whether any of the values f s1 (λ),..., F sK (λ), f c (λ) has been tampered with;
    Have
    The distributed data holding device is:
    Wherein generating a variance value g a (i) said the variance value f si (lambda) is inputted to the restoration unit and the distribution unit by the conversion unit, for recovery by using the variance value g a (i) A restoration generating unit that generates a distributed value f (i) in which the checksum c β is distributed by the secret sharing scheme S3;
    A secret sharing system.
  5. 請求項1から4のいずれかに記載の秘密分散システムであって、
    jはj∈λの整数であり、i≠jであり、
    前記分散データ保有装置は、
    前記分散値fs1(j),…,fsK(j),fc(j)を用いて復旧用チェックサムcγを生成し、前記秘密分散方式S3によりN個の分散値f(n)に分散する復旧用生成部と、
    前記分散値fs1(i),…,fsK(i),fc(i)を前記秘密分散方式S1により分散した分散値[fs1(i)],…,[fsK(i)],[fc(i)]を補間して分散値[fs1(j)],…,[fsK(j)],[fc(j)]を生成し、前記分散値[fs1(j)],…,[fsK(j)],[fc(j)]を前記秘密分散方式S1により復元して分散値fs1(j),…,fsK(j),fc(j)を生成する復旧部と、
    前記分散値fs1(j),…,fsK(j),fc(j)を用いて生成した復旧用検証値c’γとK個の分散値f(λ)を前記秘密分散方式S3により復元した復旧用チェックサムcγとを比較することで、前記分散値fs1(j),…,fsK(j),fc(j)のいずれかが改ざんされたか否かを検証する復旧用検証部と、
    を有する秘密分散システム。
    The secret sharing system according to any one of claims 1 to 4,
    j is an integer of j∈λ, i ≠ j,
    The distributed data holding device is:
    A restoration checksum c γ is generated using the distributed values f s1 (j),..., F sK (j), f c (j), and N distributed values f (n Recovery generators distributed in
    The variance value f s1 (i), ..., f sK (i), variance dispersed by said f c (i) secret sharing scheme S1 [f s1 (i)] , ..., [f sK (i)] , [f c (i)] to generate variance values [f s1 (j)],..., [f sK (j)], [f c (j)], and the variance values [f s1 ( j)], ..., [f sK (j)], [f c (j)] are restored by the secret sharing scheme S1, and the distributed values f s1 (j), ..., f sK (j), f c ( j) a recovery unit that generates
    .., F sK (j), f c (j) and the recovery verification value c ′ γ generated using the variance values f s1 (j),..., F sK (j), and K variance values f (λ) By comparing with the restoration checksum c γ restored by S3, it is verified whether any of the variance values f s1 (j),..., F sK (j), f c (j) has been tampered with. A recovery verification unit,
    A secret sharing system.
  6. 請求項1から4のいずれかに記載の秘密分散システムであって、
    jはj∈λの整数であり、i≠jであり、
    前記データ分散装置は、
    前記分散値fs1(n),…,fsK(n),fc(n)を用いて復旧用チェックサムcγを生成し、前記秘密分散方式S3によりN個の分散値f(n)に分散する復旧用生成部と、
    を有し、
    前記分散データ保有装置は、
    前記分散値fs1(i),…,fsK(i),fc(i)を前記秘密分散方式S1により分散した分散値[fs1(i)],…,[fsK(i)],[fc(i)]を補間して分散値[fs1(j)],…,[fsK(j)],[fc(j)]を生成し、前記分散値[fs1(j)],…,[fsK(j)],[fc(j)]を前記秘密分散方式S1により復元して分散値fs1(j),…,fsK(j),fc(j)を生成する復旧部と、
    前記分散値fs1(j),…,fsK(j),fc(j)を用いて生成した復旧用検証値c’γとK個の分散値f(λ)を前記秘密分散方式S3により復元した復旧用チェックサムcγとを比較することで、前記分散値fs1(j),…,fsK(j),fc(j)のいずれかが改ざんされたか否かを検証する復旧用検証部と、
    を有する秘密分散システム。
    The secret sharing system according to any one of claims 1 to 4,
    j is an integer of j∈λ, i ≠ j,
    The data distribution device includes:
    A restoration checksum c γ is generated using the distributed values f s1 (n),..., F sK (n), f c (n), and N distributed values f (n Recovery generators distributed in
    Have
    The distributed data holding device is:
    The variance value f s1 (i), ..., f sK (i), variance dispersed by said f c (i) secret sharing scheme S1 [f s1 (i)] , ..., [f sK (i)] , [f c (i)] to generate variance values [f s1 (j)],..., [f sK (j)], [f c (j)], and the variance values [f s1 ( j)], ..., [f sK (j)], [f c (j)] are restored by the secret sharing scheme S1, and the distributed values f s1 (j), ..., f sK (j), f c ( j) a recovery unit that generates
    .., F sK (j), f c (j) and the recovery verification value c ′ γ generated using the variance values f s1 (j),..., F sK (j), and K variance values f (λ) By comparing with the restoration checksum c γ restored by S3, it is verified whether any of the variance values f s1 (j),..., F sK (j), f c (j) has been tampered with. A recovery verification unit,
    A secret sharing system.
  7. 請求項1から6のいずれかに記載の秘密分散システムであって、
    ζは互いに異なる1以上N以下の2K-1個の整数であり、rα1,…,rαKは前記鍵分散部が前記秘密分散方式S1で用いた乱数であり、rβ1,…,rβKはそれぞれrα1,…,rαKのいずれとも異なる乱数であり、
    前記分散データ保有装置は、
    前記分散値fs1(i),…,fsK(i)を前記乱数rβ1,…,rβKを用いて前記秘密分散方式S1により再分散値[fs1(i)],…,[fsK(i)]に分散する再分散部と、
    再分散値[fs1(ζ)],…,[fsK(ζ)]を補間して生成した分散値[fs1(i)]’,…,[fsK(i)]’と前記分散値[fs1(i)],…,[fsK(i)]とを比較することで、分散値fs1(ζ),…,fsK(ζ)のいずれかが改ざんされたか否かを検証する一貫性検証部と、
    前記再分散値[fs1(i)],…,[fsK(i)]を前記乱数rα1,…,rαKを用いて前記秘密分散方式S1により復元し、分散値f’s1(i),…,f’sK(i)を生成する再復元部と、
    を有する秘密分散システム。
    The secret sharing system according to any one of claims 1 to 6,
    ζ is 2K-1 integers different from 1 to N, and r α1 ,..., r αK are random numbers used by the key distribution unit in the secret sharing scheme S1, and r β1 ,. Are random numbers different from each of r α1 , ..., r αK ,
    The distributed data holding device is:
    The variance value f s1 (i), ..., said f sK (i) the random number r β1, ..., redispersed value by the secret sharing scheme S1 with r βK [f s1 (i) ], ..., [f sK (i)]
    The variance [f s1 (i)] ', ..., [f sK (i)]' generated by interpolating the re-dispersion values [f s1 (ζ)], ..., [f sK (ζ)] and the variance By comparing the values [f s1 (i)], ..., [f sK (i)], it is determined whether any of the dispersion values f s1 (ζ), ..., f sK (ζ) has been tampered with. A consistency verification unit to verify;
    The redispersion values [f s1 (i)], ..., said [f sK (i)] the random number r [alpha] 1, ..., and restored by the secret sharing scheme S1 with r .alpha.k, variance f 's1 (i ), ..., f ' sK (i)
    A secret sharing system.
  8. N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    K個の鍵s1,…,sK∈Sを選択する鍵選択部と、
    前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成部と、
    情報a∈Rから前記擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化部と、
    前記鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散部と、
    前記暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散部と、
    を有するデータ分散装置。
    N and K are integers of 2 or more, N ≧ K, n = 1,..., N, λ is 1 or more and N or less different integers, and i is an integer of i∈λ F x (n) is N variances of x, R is a ring, S is a key space, P (x) is a mapping that transfers x∈S to ring R,
    A key selection unit for selecting K keys s 1 ,..., S K ∈ S;
    The key s 1, ..., s K from r 1 = P (s 1) , ..., the pseudo random number r 1 by calculating r K = P (s K) , ..., pseudo-random number generator for generating a r K When,
    An encryption unit that generates a ciphertext c from the information a∈R using the pseudo-random numbers r 1 ,..., R K ;
    A key distribution unit that distributes the keys s 1,..., S K into N distributed values f s1 (n),..., F sK (n), respectively, by an arbitrary secret sharing scheme S1;
    A ciphertext distributing unit that distributes the ciphertext c to N distributed values f c (n) by an arbitrary secret sharing scheme S0;
    A data distribution apparatus.
  9. N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    鍵siを任意の秘密分散方式S1により分散したK個の分散値fsi(λ)から前記秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、情報aを鍵s1,…,sKを用いて暗号化した暗号文cを任意の秘密分散方式S0により分散したK個の分散値fc(λ)から前記秘密分散方式S0により復元値U0を復元する復元部と、
    前記復元値U0,Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散部と、
    K+1個の分散値fU0(i),…,fUK(i)から前記情報aの分散値ga(i)を生成する変換部と、
    前記分散値ga(i)を用いて生成した変換用検証値c’αと前記分散値ga(i)を用いて生成した変換用チェックサムcαとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証部と、
    を有する分散データ保有装置。
    N and K are integers of 2 or more, N ≧ K, n = 1,..., N, λ is 1 or more and N or less different integers, and i is an integer of i∈λ F x (n) is N variances of x, R is a ring, S is a key space, P (x) is a mapping that transfers x∈S to ring R,
    A restored value U i = P (u i ) is calculated from a value u i restored by the secret sharing scheme S1 from K variance values f si (λ) obtained by dispersing the key s i by an arbitrary secret sharing scheme S1. The ciphertext c obtained by encrypting the information a using the keys s 1,..., S K is restored by the secret sharing scheme S0 from the K distributed values f c (λ) obtained by distributing the ciphertext c by any secret sharing scheme S0. A restoration unit for restoring 0 ;
    A dispersion unit that distributes the restored values U 0 and U i to N distributed values f U0 (n) and f Ui (n) by a secret sharing scheme S2 having arbitrary homomorphism,
    A conversion unit that generates a variance value g a (i) of the information a from K + 1 variance values f U0 (i),..., F UK (i);
    By comparing the variance value g a (i) conversion checksum c alpha generated using the generated conversion verification value c 'alpha said variance value g a (i) using the variance value a conversion verification unit that verifies whether any of f s1 (λ),..., f sK (λ), f c (λ) has been tampered with;
    A distributed data holding device.
  10. N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    鍵選択部が、K個の鍵s1,…,sK∈Sを選択する鍵選択ステップと、
    擬似乱数生成部が、前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成ステップと、
    暗号化部が、情報a∈Rから前記擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化ステップと、
    鍵分散部が、前記鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散ステップと、
    暗号文分散部が、前記暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散ステップと、
    復元部が、K個の分散値fsi(λ)から前記秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から前記秘密分散方式S0により復元値U0を復元する復元ステップと、
    分散部が、前記復元値U0,Uiを任意の準同型性をもつ秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散ステップと、
    変換用生成部が、前記分散値fsi(λ)が入力されると前記復元ステップと前記分散ステップと前記変換ステップにより前記分散値ga(i)を生成し、前記分散値ga(i)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりN個の分散値f(n)に分散する変換用生成ステップと、
    変換部が、K+1個の分散値fU0(i),…,fUK(i)から前記情報aの分散値ga(i)を生成する変換ステップと、
    変換用検証部が、前記分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を前記秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証ステップと、
    を含む秘密分散方法。
    N and K are integers of 2 or more, N ≧ K, n = 1,..., N, λ is 1 or more and N or less different integers, and i is an integer of i∈λ F x (n) is N variances of x, R is a ring, S is a key space, P (x) is a mapping that transfers x∈S to ring R,
    A key selection step in which the key selection unit selects K keys s 1 ,..., S K ∈ S;
    Pseudo-random number generation unit, the key s 1, ..., s K from r 1 = P (s 1) , ..., the pseudo random number r 1 by calculating r K = P (s K) , ..., a r K A pseudo-random number generation step to generate;
    An encryption step for generating a ciphertext c from the information a ∈ R using the pseudo-random numbers r 1 ,..., R K ;
    A key distribution unit that distributes the keys s 1,..., S K to N distributed values f s1 (n),..., F sK (n) by an arbitrary secret sharing scheme S1,
    A ciphertext distributing unit that distributes the ciphertext c into N distributed values f c (n) by an arbitrary secret sharing scheme S0;
    The restoration unit calculates a restored value U i = P (u i ) from the value u i restored by the secret sharing scheme S1 from the K variance values f si (λ), and the K variance values f c (λ ) To restore the restored value U 0 by the secret sharing scheme S0,
    The dispersion unit distributes the restored values U 0 and U i to N distributed values f U0 (n) and f Ui (n), respectively, by a secret sharing scheme S2 having arbitrary homomorphism,
    When the variance value f si (λ) is input, the generation unit for conversion generates the variance value g a (i) by the restoration step, the variance step, and the conversion step, and the variance value g a (i ) To generate a conversion checksum c α and distribute it to N distributed values f (n) by an arbitrary secret sharing scheme S3, and
    A converting step for generating a variance value g a (i) of the information a from the K + 1 variance values f U0 (i),..., F UK (i);
    The conversion verification unit restores the conversion verification value c ′ α and the K distribution values f (λ) generated using the shared value g a (i) by the secret sharing scheme S3. a conversion verification step for verifying whether any of the variance values f s1 (λ),..., f sK (λ), f c (λ) has been falsified by comparing with c α ,
    Secret sharing method.
  11. N,Kは2以上の整数であり、N≧Kであり、n=1,…,Nであり、λは互いに異なる1以上N以下のK個の整数であり、iはi∈λの整数であり、fx(n)はxのN個の分散値であり、Rは環であり、Sは鍵空間であり、P(x)はx∈Sを環Rへ移す写像であり、
    鍵選択部が、K個の鍵s1,…,sK∈Sを選択する鍵選択ステップと、
    擬似乱数生成部が、前記鍵s1,…,sKからr1=P(s1),…,rK=P(sK)を計算することにより擬似乱数r1,…,rKを生成する擬似乱数生成ステップと、
    暗号化部が、情報a∈Rから前記擬似乱数r1,…,rKを用いて暗号文cを生成する暗号化ステップと、
    鍵分散部が、前記鍵s1,…,sKを任意の秘密分散方式S1によりそれぞれN個の分散値fs1(n),…,fsK(n)に分散する鍵分散ステップと、
    暗号文分散部が、前記暗号文cを任意の秘密分散方式S0によりN個の分散値fc(n)に分散する暗号文分散ステップと、
    変換用生成部が、前記情報aを任意の準同型性をもつ秘密分散方式S2によりN個に分散した分散値ga(n)を用いて変換用チェックサムcαを生成し、任意の秘密分散方式S3によりそれぞれN個の分散値f(n)に分散する変換用生成ステップと、
    復元部が、K個の分散値fsi(λ)から前記秘密分散方式S1により復元した値uiから復元値Ui=P(ui)を計算し、K個の分散値fc(λ)から前記秘密分散方式S0により復元値U0を復元する復元ステップと、
    分散部が、前記復元値U0,Uiを前記秘密分散方式S2によりそれぞれN個の分散値fU0(n),fUi(n)に分散する分散ステップと、
    変換部が、K+1個の分散値fU0(i),…,fUK(i)から前記情報aの分散値ga(i)を生成する変換ステップと、
    変換用検証部が、前記分散値ga(i)を用いて生成した変換用検証値c’αとK個の分散値f(λ)を前記秘密分散方式S3により復元した変換用チェックサムcαとを比較することで、前記分散値fs1(λ),…,fsK(λ),fc(λ)のいずれかが改ざんされたか否かを検証する変換用検証ステップと、
    を含む秘密分散方法。
    N and K are integers of 2 or more, N ≧ K, n = 1,..., N, λ is 1 or more and N or less different integers, and i is an integer of i∈λ F x (n) is N variances of x, R is a ring, S is a key space, P (x) is a mapping that transfers x∈S to ring R,
    A key selection step in which the key selection unit selects K keys s 1 ,..., S K ∈ S;
    Pseudo-random number generation unit, the key s 1, ..., s K from r 1 = P (s 1) , ..., the pseudo random number r 1 by calculating r K = P (s K) , ..., a r K A pseudo-random number generation step to generate;
    An encryption step for generating a ciphertext c from the information a ∈ R using the pseudo-random numbers r 1 ,..., R K ;
    A key distribution unit that distributes the keys s 1,..., S K to N distributed values f s1 (n) ,.
    A ciphertext distributing unit that distributes the ciphertext c into N distributed values f c (n) by an arbitrary secret sharing scheme S0;
    The generation unit for conversion generates a checksum c α for conversion using a distributed value g a (n) obtained by distributing the information a into N pieces using a secret sharing scheme S2 having an arbitrary homomorphism, and an arbitrary secret A generation step for conversion each of which is distributed to N dispersion values f (n) by the dispersion method S3;
    The restoration unit calculates a restored value U i = P (u i ) from the value u i restored by the secret sharing scheme S1 from the K variance values f si (λ), and the K variance values f c (λ ) To restore the restored value U 0 by the secret sharing scheme S0,
    A distribution unit distributes the restored values U 0 and U i to N distributed values f U0 (n) and f Ui (n) by the secret sharing scheme S2, respectively;
    A converting step for generating a variance value g a (i) of the information a from the K + 1 variance values f U0 (i),..., F UK (i);
    The conversion verification unit restores the conversion verification value c ′ α and the K distribution values f (λ) generated using the shared value g a (i) by the secret sharing scheme S3. a conversion verification step for verifying whether any of the variance values f s1 (λ),..., f sK (λ), f c (λ) has been falsified by comparing with c α ,
    Secret sharing method.
  12. 請求項8に記載のデータ分散装置もしくは請求項9に記載の分散データ保有装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the data distribution device according to claim 8 or the distributed data holding device according to claim 9.
JP2013006913A 2013-01-18 2013-01-18 Secret sharing system, data sharing device, distributed data holding device, secret sharing method, and program Active JP5944841B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013006913A JP5944841B2 (en) 2013-01-18 2013-01-18 Secret sharing system, data sharing device, distributed data holding device, secret sharing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013006913A JP5944841B2 (en) 2013-01-18 2013-01-18 Secret sharing system, data sharing device, distributed data holding device, secret sharing method, and program

Publications (2)

Publication Number Publication Date
JP2014138349A true JP2014138349A (en) 2014-07-28
JP5944841B2 JP5944841B2 (en) 2016-07-05

Family

ID=51415627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013006913A Active JP5944841B2 (en) 2013-01-18 2013-01-18 Secret sharing system, data sharing device, distributed data holding device, secret sharing method, and program

Country Status (1)

Country Link
JP (1) JP5944841B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5860557B1 (en) * 2015-02-06 2016-02-16 日本電信電話株式会社 Secret disclosure method, secret disclosure system, secret disclosure device, and program
WO2016104476A1 (en) * 2014-12-26 2016-06-30 日本電信電話株式会社 Secret falsification detection system, secret calculation device, secret falsification detection method, and program
JP5968484B1 (en) * 2015-03-18 2016-08-10 日本電信電話株式会社 Share recovery system, share recovery method, and program
WO2016125749A1 (en) * 2015-02-06 2016-08-11 日本電信電話株式会社 Mismatch detection method, mismatch detection system, mismatch detection device and program therefor
WO2016129363A1 (en) * 2015-02-12 2016-08-18 学校法人東京理科大学 Calculating device relating to concealment computation system employing distribution of secrets

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004279526A (en) * 2003-03-13 2004-10-07 Oki Electric Ind Co Ltd Secrecy reconstruction method, distributed secrecy reconstruction device, and secrecy reconstruction system
WO2008001628A1 (en) * 2006-06-30 2008-01-03 Nec Corporation Distributed information generator and restoring device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004279526A (en) * 2003-03-13 2004-10-07 Oki Electric Ind Co Ltd Secrecy reconstruction method, distributed secrecy reconstruction device, and secrecy reconstruction system
WO2008001628A1 (en) * 2006-06-30 2008-01-03 Nec Corporation Distributed information generator and restoring device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6015046471; 千田浩司,他: '計算量的秘密分散およびランプ型秘密分散のマルチパーティ計算拡張' 電子情報通信学会技術研究報告 Vol. 112,No. 126, 20120712, pp. 267-271, 電子情報通信学会 *
JPN6015046473; S. Obana et al.: 'Almost Optimum Secret Sharing Schemes Secure Against Cheating for Arbitrary Secret Distribution' Lecture Notes in Computer Science Vol. 4284, 2006, pp. 364-379, Springer *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107111965A (en) * 2014-12-26 2017-08-29 日本电信电话株式会社 Secret tampering detection system, secret computing device, secret altering detecting method and program
WO2016104476A1 (en) * 2014-12-26 2016-06-30 日本電信電話株式会社 Secret falsification detection system, secret calculation device, secret falsification detection method, and program
WO2016125749A1 (en) * 2015-02-06 2016-08-11 日本電信電話株式会社 Mismatch detection method, mismatch detection system, mismatch detection device and program therefor
JP5860557B1 (en) * 2015-02-06 2016-02-16 日本電信電話株式会社 Secret disclosure method, secret disclosure system, secret disclosure device, and program
CN107210006A (en) * 2015-02-06 2017-09-26 日本电信电话株式会社 Mismatch detection method, inconsistent detecting system, inconsistent detection means and program
CN107210006B (en) * 2015-02-06 2020-09-15 日本电信电话株式会社 Inconsistency detection method, inconsistency detection system, inconsistency detection apparatus, and recording medium
WO2016129363A1 (en) * 2015-02-12 2016-08-18 学校法人東京理科大学 Calculating device relating to concealment computation system employing distribution of secrets
JP5968484B1 (en) * 2015-03-18 2016-08-10 日本電信電話株式会社 Share recovery system, share recovery method, and program
WO2016147718A1 (en) * 2015-03-18 2016-09-22 日本電信電話株式会社 Share recovery system, share recovery device, share recovery method, and program
CN107430829A (en) * 2015-03-18 2017-12-01 日本电信电话株式会社 Share recovery system, share recovery device, share restoration methods and program
US10885814B2 (en) 2015-03-18 2021-01-05 Nippon Telegraph And Telephone Corporation Share recovery system, share recovery apparatus, share recovery method, and program

Also Published As

Publication number Publication date
JP5944841B2 (en) 2016-07-05

Similar Documents

Publication Publication Date Title
JP5885840B2 (en) Secret sharing system, data sharing device, distributed data conversion device, secret sharing method, and program
US9438423B2 (en) Encryption device, encryption method, and information processing device
JP5944841B2 (en) Secret sharing system, data sharing device, distributed data holding device, secret sharing method, and program
JPWO2012057134A1 (en) Proxy calculation system, calculation device, capability providing device, proxy calculation method, capability providing method, program, and recording medium
JP5957095B2 (en) Tamper detection device, tamper detection method, and program
JP4869824B2 (en) Receiver device, sender device, cryptographic communication system, and program
JP5596616B2 (en) Information providing system, mediating apparatus, mediating method, information providing method, and program
Fakhar et al. Management of Symmetric Cryptographic Keys in cloud based environment
JP5972181B2 (en) Tamper detection device, tamper detection method, and program
CN110635909A (en) Attribute-based collusion attack resistant proxy re-encryption method
KR20160131798A (en) Method and system for additive homomorphic encryption scheme with error detection functionality
JP6270683B2 (en) Encryption system, encryption method, universal re-encryption key generation device, and re-encryption key generation device
Sarkar et al. Ensuring data storage security in cloud computing based on hybrid encryption schemes
JP5732429B2 (en) Secret sharing system, data sharing device, data restoration device, secret sharing method, and program
US20210157955A1 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
CN107210006B (en) Inconsistency detection method, inconsistency detection system, inconsistency detection apparatus, and recording medium
Liu et al. Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators
JP2018098757A (en) Communication apparatus and cryptographic processing system
JP2014178379A (en) Encryption data calculation system, device and program
JP5860557B1 (en) Secret disclosure method, secret disclosure system, secret disclosure device, and program
JP5381981B2 (en) Distributed information generator
JP5103407B2 (en) Encrypted numerical binary conversion system, encrypted numerical binary conversion method, encrypted numerical binary conversion program
US20210135851A1 (en) Encryption processing system and encryption processing method
JP2020046558A (en) Generation device, restoration device, transmission device, reception device, generation program, restoration program, transmission program, and reception program
Singh et al. Security of Data with 3DES & Watermarking Algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160414

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160428

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160526

R150 Certificate of patent or registration of utility model

Ref document number: 5944841

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150