JP2020519968A - ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム - Google Patents
ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム Download PDFInfo
- Publication number
- JP2020519968A JP2020519968A JP2019563913A JP2019563913A JP2020519968A JP 2020519968 A JP2020519968 A JP 2020519968A JP 2019563913 A JP2019563913 A JP 2019563913A JP 2019563913 A JP2019563913 A JP 2019563913A JP 2020519968 A JP2020519968 A JP 2020519968A
- Authority
- JP
- Japan
- Prior art keywords
- distributed
- secret
- secret calculation
- value
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 215
- 238000000354 decomposition reaction Methods 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims description 109
- 239000006185 dispersion Substances 0.000 claims abstract description 65
- 230000008569 process Effects 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 34
- 238000000605 extraction Methods 0.000 claims description 24
- 230000010076 replication Effects 0.000 claims description 15
- 239000000470 constituent Substances 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 30
- 238000010586 diagram Methods 0.000 abstract description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/727—Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3026—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
Description
x = r1 + r2 + r3 mod p
となるような、それぞれ0からp-1以下の3つの値の組r1、r2、r3を生成し、3つの分散情報として、それぞれ(r1, r2, r3)から選んだ2つの値を有し、互いに異なる組み合わせである3組を用いることで、(2,3)秘密分散を実現する。なお、このpを法と呼ぶ。
pを2以上の整数として、0以上p未満の値wを秘密分散する場合、
w = r1 + r2 + r3 mod p
を満たすランダムに選ばれたr1、r2、r3を生成して、以下のように保管する。
装置1は、自装置のストレージに値wの分散値として、(r1, r2)を保管する。
装置2は、自装置のストレージに値wの分散値として、(r2, r3)を保管する。
装置3は、自装置のストレージに値wの分散値として、(r3, r1)を保管する。
上述した方法によって、装置1、装置2、装置3に分散して保管されている値wと値w'の分散に関して実行される加算処理について説明する。ここで、r1、r2、r3は、
w = r1 + r2 + r3 mod p
を満たすようにランダムに選ばれ、r1'、r2'、r3'は、
w' = r1' + r2' + r3' mod p
を満たすようにランダムに選ばれるとする。
wの分散値として、(s1, t1) = (r1, r2)を保管し、
w'の分散値として、(s1', t1') = (r1', r2')を保管する。
装置2は、自装置のストレージに、
wの分散値として、(s2, t2) = (r2, r3)を保管し、
w'の分散値として、(s2', t2') = (r2', r3')を保管する。
装置3は、自装置のストレージに、
wの分散値として、(s3, t3) = (r3, r1)を保管し、
w'の分散値として、(s3', t3') = (r3', r1')を保管する。
(s1", t1") = (r1" = s1 + s1' mod p, r2" = t1 + t1'mod p)
によって、(s1", t1")を計算し、
(s1", t1")を、w + w'の分散値として自装置のストレージに保管する。
装置2は、
(s2", t2") = (r2" = s2 + s2' mod p, r3" = t2 + t2'mod p)
によって、(s2", t2")を計算し、
(s2", t2")を、w + w'の分散値として自装置のストレージに保管する。
装置3は、
(s3", t3") = (r3" = s3 + s3' mod p, r1" = t3 + t3'mod p)
によって、(s3", t3")を計算し、
(s3", t3")を、w + w'の分散値として自装置のストレージに保管する。
w + w' = r1" + r2" + r3" mod p
となるr1", r2", r3"を用いて分散したw + w'の分散値となっている。
これは、
r1" + r2" + r3" = (r1 + r2 + r3) + (r1' + r2' + r3') = w + w' mod p
から確認できる。
上述した方法によって、装置1、装置2、装置3に分散して保管されている値wと値w'の分散に関して実行される減算処理について説明する。なお、
w = r1 + r2 + r3 mod p、
w' = r1' + r2' + r3' mod p
とする。
装置2は、自装置のストレージに、wの分散値として、(s2, t2) = (r2, r3)を保管し、w'の分散値として、(s2', t2') = (r2', r3')を保管する。
装置3は、自装置のストレージに、wの分散値として、(s3, t3) = (r3, r1)を保管し、w'の分散値として、(s3', t3') = (r3', r1')を保管する。
(s1", t1") = (r1" = s1 - s1' mod p, r2" = t1 - t1' mod p)
によって、(s1", t1")を計算し、(s1", t1")をw - w'の分散値として自装置のストレージに保管する。
(s2", t2") = (r2" = s2 - s2' mod p, r3" = t2 - t2' mod p)
によって、(s2", t2")を計算し、(s2", t2")をw - w'の分散値として自装置のストレージに保管する。
(s3", t3") = (r3" = s3 - s3' mod p, r1" = t3 - t3' mod p)
によって、(s3", t3")を計算し、(s3", t3")をw - w'の分散値として自装置のストレージに保管する。
w - w' = r1" + r2" + r3" mod p
となるr1"、r2"、r3"を用いて分散したw - w'の分散値となっている。
これは、
r1" + r2" + r3" = (r1 + r2 + r3) - (r1' + r2' + r3') = w - w' mod p
から確認できる。
上述した方法によって、装置1、装置2、装置3に保管されている値wと値w'に関して実行される乗算処理について説明する。
装置2は、自装置のストレージに、wの分散値として、(s2, t2) = (r2, r3)を保管し、w'の分散値として、(s2', t2') = (r2', r3')を保管する。
装置3は、自装置のストレージに、wの分散値として、(s3, t3) = (r3, r1)を保管し、w'の分散値として、(s3', t3') = (r3', r1')を保管する。
r1" + r2" + r3" = 0 mod 2 ^ n
を満たすランダムに選ばれた値として、r1"、r2"、r3"をそれぞれ保管しているものとする。このような性質を満たすr1"、r2"、r3"は、乗算を実行するたびに使い捨てで必要となる。このような3値を、3台の装置が効率的に生成する方法については後述する。
を計算し、u2を装置2に送付する。
装置2は、u3 = s2 s2' + s2 t2' + t2 s2' + r2" mod p を計算し、u3を装置3に送付する。
装置3は、u1 = s3 s3' + s3 t3' + t3 s3' + r3" mod p を計算し、u1を装置1に送付する。
装置2は、自装置のストレージに(u2, u3)を、ww'の分散値として保管する。
装置3は、自装置のストレージに(u3, u1)を、ww'の分散値として保管する。
u1 + u2 + u3 = r1r1' + r1r2' + r2r1' + r2r2' + r2r3' + r3r2' + r3r3' + r3r1' + r1r3' + r1" + r2" + r3"
= (r1 + r2 + r3)(r1' + r2' + r3') + r1" + r2" + r3"
= ww' mod p
以下、3つ足すと0となる値を、装置1、装置2、装置3が通信することなく、また、各装置が所有する値を他の装置に知られることのない方法で、大量に生成する方法について説明する。ここでは、
r[i,1] + r[i,2] + r[i,3] = 0 mod 2^n
となるr[i,1]、r[i,2]、r[i,3]を、多くのi = 1,...,Nに関して生成する方法を説明する。
r[1] = r'[1] - r'[3] mod p
とする。
r[2] = r'[2] - r'[1] mod p
とする。
r[3] = r'[3] - r'[2] mod p
とする。
r[1] + r[2] + r[3] = r'[1] - r'[3] + r'[2] - r'[1] + r[3] - r[2] = 0 mod p
r1 + r2 + r3 = w mod p に関して、
(r1 - r2 mod p, r2), (r2 - r3 mod p, r3), (r3 - r1 mod p, r1) を分散情報としてもよい。3台の装置が、r1、r2、r3のうち、異なる二つの組に相当する情報を保有している方法を、(2,3)型RSSと称することにする。
a * b mod 2^4 < c
を処理する場合、a * bを数値演算として処理し、比較演算を論理演算として実行するのが望ましい。a * bを数値演算として計算するのが望ましいが、a * bをcと比較する処理を数値演算として表現することは難しい。
装置2は、1ビット目に関して(1, 1)、2ビット目に関して(1, 1)、3ビット目に関して(0, 0)、4ビット目に関して(0, 0)を所有する。
装置3は、1ビット目に関して(1, 1)、2ビット目に関して(1, 0)、3ビット目に関して(0, 0)、4ビット目に関して(0, 0)を所有する。
r12 = r1 + r2 mod p、および、r3の分散(sharing)を実行する。
r12 + r3 が pよりも大であるか否かを判定し、
r12 + r3 が pよりも大きい場合、s = 1とし、
それ以外の場合、s = 0
となるような秘密計算を実行する。
全加算器(full adder)によるr12 + r3 + s mod 2 ^ nの秘密計算を下位桁からビット毎に実行する。
2を法とする演算を用いる(2,3)型RSSによって得た(分散した)分散値の列を保管する分解分散値保管装置と、
ビット分解秘密計算装置と、
を含み、
前記分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散(sharing)に関して、w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たすランダムに選ばれたr1、r2、r3を用い、前記ビット分解秘密計算装置は、
r1、r2、r3のうち2つの値について、法2 ^ n上の和をとり、前記和について、前記(2,3)型RSSによって分散値を生成し配布する加算分散部と、
前記加算分散部が生成した前記値と、前記加算分散部によって用いられなかった値との加算処理を、全加算器の秘密計算を用いて各桁毎に実行し、その結果を前記分解分散値保管装置に記憶する全加算器秘密計算部と、を含むビット分解秘密計算システムが提供される。
2を法とする演算を用いる(2,3)型RSSによって得た(分散した)分散値の列を保管する分解分散値保管装置と、
ビット分解秘密計算装置と、
を含み、
前記分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散に関して、w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たすランダムに選ばれたr1、r2、r3を用い、前記ビット分解秘密計算装置は、
r12 = r1 + r2 mod 2 ^ n の秘密計算とr123 = r12 + r3 mod 2 ^ n の秘密計算とを全加算器の秘密計算によって各桁毎に実行し、その計算結果を前記分解分散値保管装置に記憶する全加算器秘密計算部を含むビット分解秘密計算システムが提供される。
2を法とする演算を用いる(2,3)型RSSによって得た(分散した)分散値の列を保管する分解分散値保管装置と、
ビット結合秘密計算装置と、
を含み、
前記分解分散値保管装置が記憶するn個の前記(2,3)型RSSの分散情報の列として、値w_iの分散に関して、w_i = r {1, i} + r {2, i} + r_{3, i} mod 2 を満たすランダムに選ばれたr_{1, i}, r_{2, i}, r_{3, i}(i = 1,...,n)を用い、前記ビット結合秘密計算装置は、
r12 = r_{1, n} || ... | r_{1, 1} + r_{2, n} || ... || r_{2, 1} mod 2 ^ n (記号||は連結演算子、^はべき乗演算、nは予め設定された正整数)の秘密計算と、r123 = r12 + r_{3, n} || ... ||r_{3, 1} mod 2 ^ n の秘密計算とを全加算器の秘密計算によって各桁毎に実行し、計算結果を前記分散値保管装置に記憶する全加算器秘密計算部を含むビット結合秘密計算システムが提供される。
2のべき乗を法とする演算を用いる(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)方式によって得た(分散した)分散値を保管する分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散に関して、w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たしランダムに選ばれたr1、r2、r3を用い、r1、r2、r3のうち2つの値について、法2 ^ n上の和をとり、前記和について、前記(2,3)型RSSによって分散値を生成し配布する加算分散ステップと、
前記加算分散ステップにおいて生成された前記値と、前記加算分散ステップにおいて用いられなかった値との加算処理を、全加算器の秘密計算を用いて各桁毎に実行し、その結果を、2を法とする演算を用いる(2,3)型RSSによって得た(分散した)分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算ステップと、を含む方法が提供される。
2のべき乗を法とする演算を用いる(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)方式によって得た(分散した)分散値を保管する分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散に関して、w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たしランダムに選ばれたr1、r2、r3を用い、r12 = r1 + r2 mod 2 ^ n の秘密計算とr123 = r12 + r3 mod 2 ^ n の秘密計算とを全加算器の秘密計算によって各桁毎に実行し、
その計算結果を、2を法とする演算を用いる(2,3)型RSSによって得た(分散した)分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算ステップを含む方法が提供される。
2を法とする演算を用いる(2,3)型RSSによって得た(分散した)分散値の列を保管する分解分散値保管装置が記憶するn個の前記(2,3)型RSSの分散情報の列として、値w_iの分散に関して、w_i = r {1, i} + r {2, i} + r_{3, i} mod 2 を満たしランダムに選ばれたr_{1, i}, r_{2, i}, r_{3, i}(i = 1,...,n)を用い、r12 = r_{1, n} || ... | r_{1, 1} + r_{2, n} || ... || r_{2, 1} mod 2 ^ n (記号||は連結演算子、^はべき乗演算、nは予め設定された正整数)の秘密計算と、r123 = r12 + r_{3, n} || ... ||r_{3, 1} mod 2 ^ n の秘密計算とを全加算器の秘密計算によって各桁毎に実行し、
その計算結果を、2のべき乗を法とする(2,3)型RSSによって得た(分散した)分散値を保管する分散値保管装置に記憶する全加算器秘密計算ステップを含む方法が提供される。
w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たしランダムに選ばれたr1、r2、r3を用い、r1、r2、r3のうち2つの値について、法2 ^ n上の和をとり、前記和について、前記(2,3)型RSSにより分散値を生成して分散する加算分散処理と、
前記加算分散処理において生成された前記値と、前記加算分散処理において用いられなかった値との加算処理を、全加算器の秘密計算を用いて、各桁毎に実行し、その結果を、2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算処理と、を含む、ビット分解秘密計算処理をコンピュータに実行させるプログラムが提供される。
r12 = r1 + r2 mod 2 ^ n の秘密計算と、
r123 = r12 + r3 mod 2 ^ n の秘密計算と、
を全加算器の秘密計算を用いて、各桁毎に実行し、計算結果を、2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算処理を含む、ビット分解秘密計算処理をコンピュータに実行させるプログラムが提供される。
本発明のさらに他の特徴及び利点は、本発明を実施することが企図されている最良の形態の単なる例示により、本発明の実施形態のみを図示及び説明した添付の図面と併せて以下の詳細な説明から当業者には容易に明らかになるであろう。理解されるように、本発明は、他の異なる実施形態が可能であり、そのいくつかの詳細は、本発明から逸脱することなく、様々な明白な点において変更可能である。従って、図面及び説明は、本質的に例示的であるとみなされるべきであり、限定的ではないとみなされるべきである。
例えば、r1に関する箇所以外を全てゼロに設定すると、装置1は(0, 0)を保有し、装置2は(0, r1)を保有し、装置3は(r1, 0)を保有する。これらは、r1の分散情報とすることができる。
r' + p mod p = r'+ p + 1 = r' + 2 ^ n mod 2 ^ n
以上の変更を加えた本発明の一形態のビット分解法について以下に説明する。
r12 = r1 + r2 mod 2 ^ n の分散(sharing)を実行する。
各装置でr3の分散情報を生成する。
下位桁からビット毎に全加算器の秘密計算を実行して、
r12 + r3 + s mod 2 ^ n を計算する。
w = r1 + r2 + r3 mod 2 ^ n を満たすr1、r2、r3をランダムに選択して、以下のように保管されているものとする。
装置1には、(r1, r2)がwの分散値(share value)として保管され、
装置2には、(r2, r3)がwの分散値として保管され、
装置3には、(r3, r1)がwの分散値として保管される。
r1 + r2の配布(distribution)は、装置1によって実行される。まず、装置1は、r12 = r1 + r2 mod 2 ^ n を計算し、r12A + r12B = r12 mod 2 ^ n となるr12Aとr12Bをランダムに選択する。
装置2は、r12の分散値として、(r12A, 0)を得る。
装置3は、r12の分散値として、(0, r12B)を得る。
この処理では、2nビットの通信を行っている。
上述したように、r3の分散情報は、通信を行わずに生成できる。
全加算器の秘密計算は、各桁のキャリーを計算するために1回のAND演算を必要とする。したがって、n桁の加算の場合、3 * (n - 1)ビットの通信が必要となる。
r12 + r3 mod 8 = 5 + 1 mod 8 = 6
を最下位桁から計算する手順を示す。
1桁目の計算は以下の通りになる。
r123_1 = r12_1 XOR r3_1 = 0 XOR 1 XOR 1 = 0
XORはビット単位の排他的論理和である。
1桁目の計算に関する桁上がりは以下の通りになる。
c1 = r12_1 AND r3_1 = 1 AND 1 = 1
(1桁目では下位桁からの桁上がり(キャリー)がない。)
2桁目の計算は以下の通りになる。
r123_2 = r12_2 XOR r3_2 XOR c1 = 0 XOR 0 XOR 1 = 1
2桁目の計算に関するキャリーは以下の通りになる。
c2 = c1 XOR (1 XOR r12_2 XOR r3_ 2) AND (r3_ 2 XOR c1) = 1 XOR (1 XOR 0 XOR 0) AND (0 XOR 1) = 0
3桁目の計算は以下の通りになる。
r123_3 = r12_3 XOR r2_3 XOR c2 = 1 XOR 0 XOR 0 = 1
w = r1 + r2 + r3 mod p
装置1が、(r1, r2)を保管し、
装置2が、(r2, r3)を保管し、
装置3が、(r3, r1)を保管する。
本発明の実施形態1の構成と動作について図面を参照して説明する。
第1の実施形態では、w = r1 + r2 + r3 mod 2 ^ n を満たすランダムに選ばれたr1、r2、r3を用いた(2,3)型RSS方式でwが分散されている場合、1つの装置がr12 = r1 + r2 mod 2 ^ n を分散し、r12 + r3 mod 2 ^ n を全加算器の秘密計算を用いて実行することによって、ビット分解された分散情報を生成する。
r_ij = r_i + r_j mod 2 ^ n が分散(share)され、
r_ijとr_kの加算を全加算器の秘密計算で実行する。
i、j、kは互いに異なる値で1、2、3のいずれかの値の組み合わせから選択されれば、どのような組み合わせが用いられてもよい。
本発明の第2の例示的な実施形態の構成と動作について図面を参照して説明する。
r12 = r1 + r2 mod 2 ^ n を全加算器の秘密計算によって実行し、
r12 + r3 mod 2 ^ n を下位ビットから全加算器の秘密計算によって計算する。
第2の実施形態の動作では、
r_ij = r_i + r_j mod 2 ^ n を全加算器の秘密計算で実行し、
r_ij + r_k mod 2 ^ n を全加算器の秘密計算で実行する。i、j、kは互いに異なり、1、2、3のいずれか値の組み合わせから選択される値とする。
本発明の第3の例示的な実施形態の構成と動作について図面を参照して説明する。
r12 = r_{1, n} ||... ||r_{1, 1} + r_{2, n} ||r_{2, 1} mod 2 ^と、
r12 = r12 + r_{3, n} ||... ||r_{3, 1} mod 2 ^ n を
全加算器の秘密計算によって実行することによって、ビット結合を行う。記号||は、ビット連結(concatenation)を表す。
r_ij = r_ {i, n} || ... || r_ {i, 1} + r_ {j, n} || ... r_{j, 1} mod 2 ^n
を全加算器の秘密計算で実行し、
r_ij + r_ {k, n} || ... r_ {k, 1} mod 2 ^ n
を全加算器の秘密計算で実行する。インデックスi、j、kは互いに異なる値で1、2、3のいずれか値の組み合わせから選択される。
20 ビット結合秘密計算システム
100 分散値保管装置
101 第1の分散値保管部
102 第2の分散値保管部
200 分解分散値保管装置
201 第1の分解分散値保管部
202 第2の分解分散値保管部
300、300A ビット分解秘密計算装置
301 加算分散部
302 部分分散情報抽出部
303 全加算器秘密計算部
400 ビット結合秘密計算装置
500 コンピュータシステム
502 プロセッサ
504 メモリ
506 表示装置
508 通信インタフェース
Claims (15)
- 2のべき乗を法とする演算を用いた(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)を適用して得た分散値を保管する分散値保管装置と、
2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置と、
ビット分解秘密計算装置と、
を含み、
前記分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散に関して、
w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たすr1、r2、r3を用い、
前記ビット分解秘密計算装置は、
r1、r2、r3のうち2つの値について、法2 ^ n上の和をとり、前記和について、前記(2,3)型RSSにより分散値を生成し分散する加算分散部と、
前記加算分散部が生成した前記値と、前記加算分散部によって用いられなかった値との加算処理を、全加算器の秘密計算を用いて、各桁毎に実行し、計算結果を前記分解分散値保管装置に記憶する全加算器秘密計算部と、
を含む、ことを特徴とするビット分解秘密計算システム。 - 2のべき乗を法とする演算を用いた(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)を適用して得た分散値を保管する分散値保管装置と、
2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置と、
ビット分解秘密計算装置と、
を含み、
前記分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散に関して、w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たすr1、r2、r3を用い、
前記ビット分解秘密計算装置は、
r12 = r1 + r2 mod 2 ^ n の秘密計算と、
r123 = r12 + r3 mod 2 ^ n の秘密計算と、
を全加算器の秘密計算によって、各桁毎に実行し、計算結果を前記分解分散値保管装置に記憶する全加算器秘密計算部を含む、ことを特徴とするビット分解秘密計算システム。 - 2のべき乗を法とする演算を用いた(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)を適用して得た分散値を保管する分散値保管装置と、
2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置と、
ビット結合秘密計算装置と、
を含み、
前記分解分散値保管装置が記憶するn個の前記(2,3)型RSSの分散情報の列として、値w_iの分散に関して、w_i = r {1, i} + r {2, i} + r_{3, i} mod 2 を満たすr_{1, i}, r_{2, i}, r_{3, i}(i = 1,...,n)を用い、
前記ビット結合秘密計算装置は、
r12 = r_{1, n} || ... | r_{1, 1} + r_{2, n} || ... || r_{2, 1} mod 2 ^ n (記号||は連結演算子、^はべき乗演算、nは予め設定された正整数)の秘密計算と、
r123 = r12 + r_{3, n} || ... ||r_{3, 1} mod 2 ^ n の秘密計算と、
を全加算器の秘密計算によって、各桁毎に実行し、計算結果を前記分散値保管装置に記憶する全加算器秘密計算部を含む、ことを特徴とするビット結合秘密計算システム。 - 前記ビット分解秘密計算装置は、
前記(2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、前記(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出部を含み、
前記全加算器秘密計算部は、前記加算分散部で生成され配布された前記(2,3)型RSSの前記分散情報と、前記部分分散情報抽出部で生成した前記(2,3)型RSSの前記分散情報とについて、全加算器の秘密計算を用いた加算処理を実行し、
ビット毎の計算結果の分散情報を結合した値を、前記分解分散値保管装置に記憶する、ことを特徴とする請求項1に記載のビット分解秘密計算システム。 - 前記ビット分解秘密計算装置は、
前記(2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、前記(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出部を含み、
前記全加算器秘密計算部は、
r_i、r_j、r_kを含む、前記部分分散情報抽出部によって生成された前記(2,3)型RSSの3組の分散情報を用いて(i、j、kは互いに異なり、1〜3から選択される)、
下位ビットから、全加算器の秘密計算によって、r_ij = r_i + r_j mod 2 ^ n の秘密計算と、r_ij + r_k mod 2 ^ n の秘密計算とを実行し、
ビット毎の計算結果の列を前記分解分散値保管装置に記憶する、ことを特徴とする請求項2に記載のビット分解秘密計算システム。 - 前記ビット結合秘密計算装置は、
前記(2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、前記(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出部を含む、ことを特徴とする請求項3に記載のビット結合秘密計算システム。 - ビット分解秘密計算を提供するためのコンピュータシステムの方法であって、
2のべき乗を法とする演算を用いた(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)方式を適用して得た分散値を保管する分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散に関して、
w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たすr1、r2、r3を用い、r1、r2、r3のうち2つの値について、法2 ^ n上の和をとり、前記和について、前記(2,3)型RSSにより分散値を生成して分散する加算分散ステップと、
前記加算分散ステップによって生成された前記値と、前記加算分散ステップにおいて用いられなかった値との加算処理を、全加算器の秘密計算を用いて、各桁毎に実行し、その結果を、2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算ステップと、
を含む、ことを特徴とする方法。 - ビット分解秘密計算を提供するためのコンピュータシステムの方法であって、
2のべき乗を法とする演算を用いた(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)方式を適用して得た分散値を保管する分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散に関して、
w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たすr1、r2、r3を用い、
r12 = r1 + r2 mod 2 ^ n の秘密計算と、
r123 = r12 + r3 mod 2 ^ n の秘密計算と、
を全加算器の秘密計算を用いて、各桁毎に実行し、
計算結果を、2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算ステップを含む、ことを特徴とする方法。 - ビット結合秘密計算を提供するためのコンピュータシステムの方法であって、
2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置が記憶するn個の前記(2,3)型RSSの分散情報の列として、値w_iの分散に関して、
w_i = r {1, i} + r {2, i} + r_{3, i} mod 2 を満たすr_{1, i}, r_{2, i}, r_{3, i}(i = 1,...,n)を用い、
r12 = r_{1, n} || ... | r_{1, 1} + r_{2, n} || ... || r_{2, 1} mod 2 ^ n (記号||は連結演算子、^はべき乗演算、nは予め設定された正整数)の秘密計算と、
r123 = r12 + r_{3, n} || ... ||r_{3, 1} mod 2 ^ n の秘密計算と、を全加算器の秘密計算を用いて、各桁毎に実行し、
計算結果を、2のべき乗を法とする演算を用いる(2,3)型RSSを適用して得た分散値を保管する分散値保管装置に記憶する全加算器秘密計算ステップを含む、ことを特徴とする方法。 - (2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、前記(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出ステップを含み、
前記全加算器秘密計算ステップは、前記加算分散ステップで生成され配布された(2,3)型RSSの前記分散情報と、前記部分分散情報抽出ステップで生成した(2,3)型RSSの前記分散情報とについて、全加算器の秘密計算を用いた加算処理を実行し、ビット毎の計算結果の分散情報を結合した値を、前記分解分散値保管装置に記憶する、ことを特徴とする請求項7に記載の方法。 - 前記(2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、前記(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出ステップを含み、
前記全加算器秘密計算ステップは、r_i、r_j、r_kを含む、前記部分分散情報抽出ステップによって生成された前記(2,3)型RSSの3組の分散情報を用いて(i、j、kは互いに異なり、1〜3から選択される)、
下位ビットから、全加算器の秘密計算によって、r_ij = r_i + r_j mod 2 ^ n の秘密計算と、r_ij + r_k mod 2 ^ n の秘密計算とを実行し、
ビット毎の計算結果の列を、前記分解分散値保管装置に記憶する、ことを特徴とする請求項8に記載の方法。 - (2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出ステップを含む、
ことを特徴とする請求項9に記載の方法。 - 2のべき乗を法とする演算を用いた(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)方式を適用して得た分散値を保管する分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散に関して、
w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たすr1、r2、r3を用い、r1、r2、r3のうち2つの値について、法2 ^ n上の和をとり、前記和について、前記(2,3)型RSSにより分散値を生成して分散する加算分散処理と、
前記加算分散処理において生成された前記値と、前記加算分散処理において用いられなかった値との加算処理を、全加算器の秘密計算を用いて、各桁毎に実行し、その結果を、2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算処理と、
を含む、
ビット分解秘密計算処理をコンピュータに実行させるプログラム。 - 2のべき乗を法とする演算を用いた(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)方式を適用して得た分散値を保管する分散値保管装置が保管する前記(2,3)型RSSの分散情報として、値wの分散に関して、w = r1 + r2 + r3 mod 2 ^ n (^はべき乗演算、nは予め設定された正整数)を満たすr1、r2、r3を用い、
r12 = r1 + r2 mod 2 ^ n の秘密計算と、
r123 = r12 + r3 mod 2 ^ n の秘密計算と、
を全加算器の秘密計算を用いて、各桁毎に実行し、計算結果を、2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算処理を含む、
ビット分解秘密計算処理をコンピュータに実行させるプログラム。 - 2を法とする演算を用いた(2,3)型RSSを適用して得た分散値の列を保管する分解分散値保管装置が記憶するn個の前記(2,3)型RSSの分散情報の列として、値w_iの分散に関して、w_i = r {1, i} + r {2, i} + r_{3, i} mod 2 を満たすr_{1, i}, r_{2, i}, r_{3, i}(i = 1,...,n)を用い、r12 = r_{1, n} || ... | r_{1, 1} + r_{2, n} || ... || r_{2, 1} mod 2 ^ n (記号||は連結演算子、^はべき乗演算、nは予め設定された正整数)の秘密計算と、r123 = r12 + r_{3, n} || ... ||r_{3, 1} mod 2 ^ n の秘密計算とを全加算器の秘密計算を用いて、各桁毎に実行し、計算結果を、2のべき乗を法とする演算を用いる(2,3)型RSSを適用して得た分散値を保管する分散値保管装置に記憶する全加算器秘密計算処理を含む、
ビット結合秘密計算処理をコンピュータに実行させるプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/018745 WO2018211675A1 (en) | 2017-05-18 | 2017-05-18 | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020519968A true JP2020519968A (ja) | 2020-07-02 |
JP6844897B2 JP6844897B2 (ja) | 2021-03-17 |
Family
ID=64273620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019563913A Active JP6844897B2 (ja) | 2017-05-18 | 2017-05-18 | ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11599681B2 (ja) |
JP (1) | JP6844897B2 (ja) |
WO (1) | WO2018211675A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3651141B1 (en) * | 2017-07-05 | 2021-12-08 | Nippon Telegraph and Telephone Corporation | Secure computing system, secure computing device, secure computing method, program, and recording medium |
CN109787757B (zh) * | 2019-01-18 | 2021-07-13 | 浙江机电职业技术学院 | 一种物理层密钥生成过程中的非均匀量化方法 |
IT201900021576A1 (it) | 2019-11-19 | 2021-05-19 | Intesa Sanpaolo Innovation Center S P A | Metodo di multiparty computation |
CN114981862A (zh) * | 2020-01-20 | 2022-08-30 | 日本电信电话株式会社 | 秘密指数函数计算系统、秘密指数函数计算方法、秘密计算装置以及程序 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7218734B2 (en) * | 2001-05-02 | 2007-05-15 | Nciper Corporation Limited | Ring arithmetic method, system, and apparatus |
US8077862B2 (en) | 2007-10-29 | 2011-12-13 | Red Hat, Inc. | Sharing a secret using polynomials |
EP3528233B1 (en) * | 2013-10-10 | 2021-03-10 | Nippon Telegraph and Telephone Corporation | Secret bit decomposition device, secret bit decomposition method, and program therefor |
FR3021777B1 (fr) | 2014-06-03 | 2018-08-17 | Morpho | Stockage distribue securise par calcul multipartite |
JP6493697B2 (ja) | 2014-09-19 | 2019-04-03 | 日本電気株式会社 | 秘密計算装置、方法、記録媒体、および秘密計算システム |
US9906505B2 (en) | 2015-05-08 | 2018-02-27 | Nxp B.V. | RSA decryption using multiplicative secret sharing |
JP5957126B1 (ja) | 2015-06-24 | 2016-07-27 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、およびプログラム |
JP6607257B2 (ja) * | 2015-08-31 | 2019-11-20 | 日本電気株式会社 | 秘密計算システム、秘密計算装置、および、秘密計算方法 |
GB2549981B (en) * | 2016-05-05 | 2018-10-10 | Jung Tjhai Cen | A public key cryptosystem based on the partitioning of elements of vectors |
GB201705621D0 (en) * | 2017-04-07 | 2017-05-24 | Nchain Holdings Ltd | Computer-implemented system and method |
-
2017
- 2017-05-18 US US16/614,259 patent/US11599681B2/en active Active
- 2017-05-18 WO PCT/JP2017/018745 patent/WO2018211675A1/en active Application Filing
- 2017-05-18 JP JP2019563913A patent/JP6844897B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP6844897B2 (ja) | 2021-03-17 |
US20210157955A1 (en) | 2021-05-27 |
WO2018211675A1 (en) | 2018-11-22 |
US11599681B2 (en) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110348231B (zh) | 实现隐私保护的数据同态加解密方法及装置 | |
US8077863B2 (en) | Secret sharing apparatus, method, and program | |
JP4334582B2 (ja) | 秘密分散装置、方法及びプログラム | |
JP7031682B2 (ja) | 秘密計算装置、システム、方法、プログラム | |
JP6844897B2 (ja) | ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
JP6534778B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
WO2016148281A1 (ja) | 秘匿文字列計算システム及び方法と装置並びにプログラム | |
JP6605746B2 (ja) | 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム | |
EP4016506B1 (en) | Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program | |
JP7248120B2 (ja) | 暗号システム、鍵生成装置、暗号化装置、復号装置、及びプログラム | |
JP7173170B2 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
WO2019208486A1 (ja) | 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム | |
JP6585846B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
JP7327511B2 (ja) | 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム | |
JP6337133B2 (ja) | 非減少列判定装置、非減少列判定方法及びプログラム | |
Lizama-Pérez | Digital signatures over HMAC entangled chains | |
JP6532843B2 (ja) | 秘匿計算システム、第一秘匿計算装置、第二秘匿計算装置、秘匿回路生成方法、秘匿回路評価方法、プログラム | |
JP6321216B2 (ja) | 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム | |
CN108075889B (zh) | 一种降低加解密运算时间复杂度的数据传输方法及系统 | |
WO2023281693A1 (ja) | 秘密計算システム、装置、方法及びプログラム | |
WO2023157118A1 (ja) | 秘密計算装置、秘密計算方法、プログラム | |
WO2023281694A1 (ja) | 秘密計算システム、装置、方法及びプログラム | |
WO2023243141A1 (ja) | 連合学習システム及び連合学習方法 | |
JP6799012B2 (ja) | 秘匿決定木計算システム、装置、方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191220 |
|
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: 20210126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210218 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6844897 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |