JP6844897B2 - ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム - Google Patents

ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム Download PDF

Info

Publication number
JP6844897B2
JP6844897B2 JP2019563913A JP2019563913A JP6844897B2 JP 6844897 B2 JP6844897 B2 JP 6844897B2 JP 2019563913 A JP2019563913 A JP 2019563913A JP 2019563913 A JP2019563913 A JP 2019563913A JP 6844897 B2 JP6844897 B2 JP 6844897B2
Authority
JP
Japan
Prior art keywords
distributed
value
secret calculation
secret
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019563913A
Other languages
English (en)
Other versions
JP2020519968A (ja
Inventor
俊則 荒木
俊則 荒木
一真 大原
一真 大原
古川 潤
潤 古川
リンデル ヤフダ、
リンデル ヤフダ、
ノフ アリエル、
ノフ アリエル、
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JP2020519968A publication Critical patent/JP2020519968A/ja
Application granted granted Critical
Publication of JP6844897B2 publication Critical patent/JP6844897B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/727Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/3026Public 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

Description

本発明はビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラムに関する。
秘密計算法は、コンピュータシステムが関連する主体に対して計算過程と結果を秘匿することができる技術である。クラウドのような第3者が管理する複数のサーバに分散して保管しデータの秘密分散を行うことにより、データに対してあらゆる演算を実行することができる。第3者には、データ、計算過程、計算結果を知られることがないため、秘密計算は、特に限定されないが、例えば個人情報のような慎重に扱うべき情報に対する分析処理等をアウトソースするために用いることができる。
以下、(2,3)閾値のアクセス構造を有する複製秘密分散(replication type secret shared)(以下(2,3)型RSSと称する)を用いる秘密計算に関する本発明の前提として、(2,3)型RSSを用いる秘密計算について説明する。
(2,3)閾値型RSSは、(2,3)秘密分散の実現方法の一つである。(2,3)秘密分散においては、入力された値から3つの分散情報を生成し、2つ以上の分散情報からは元の値を復元できるが、1つ以下の分散情報からは元の値はわからない。
(2,3)型RSSは、0からp-1以下の値xを秘密分散する際に、
x = r1 + r2 + r3 mod p
となるような、それぞれ0からp-1以下の3つの値の組r1、r2、r3を生成し、3つの分散情報として、それぞれ(r1, r2, r3)から選んだ2つの値を有し、互いに異なる組み合わせである3組を用いることで、(2,3)秘密分散を実現する。なお、このpを法と呼ぶ。
秘密分散によって分散された値に関する計算を復元すること無く実行する方法は秘密計算と呼ばれている。以下に、本発明に関する(2,3)型RSSによって分散された値に対する秘密計算方法について説明する。
まず、値の分散方法について説明し、次に加算、減算、乗算について説明する。ここでは、複数の値のそれぞれが3台の装置に対して分散され、分散値(分散された値)に対して秘密計算を行うという手順について説明する。以下では、3台の装置を装置1、装置2、装置3と呼んで区別する。
<値の分散方法>
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乃至3)も、r1、r2、r3のいずれかが足りないため、値wを得られないが、2台以上の装置が保管している分散値からならば、値wを復元可能なことが確認できる。
<加算処理>
上述した方法によって、装置1、装置2、装置3に分散して保管されている値wと値w'の分散に関して実行される加算処理について説明する。ここで、r1、r2、r3は、
w = r1 + r2 + r3 mod p
を満たすようにランダムに選ばれ、r1'、r2'、r3'は、
w' = r1' + r2' + r3' mod p
を満たすようにランダムに選ばれるとする。
装置1は、自装置のストレージに、
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')を保管する。
装置1乃至3は、それぞれ以下の手順に従った処理を行う。
装置1は、
(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'の分散値として自装置のストレージに保管する。
装置1乃至3のそれぞれの計算結果は、
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
とする。
装置1は、自装置のストレージに、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')を保管する。
装置1乃至3は、それぞれ以下の手順に従った処理を行う。
装置1は、
(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'の分散値として自装置のストレージに保管する。
装置1乃至3のそれぞれの計算結果は、
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'に関して実行される乗算処理について説明する。
まず、各装置がどのような値を保管しているかを示す。r1、r2、r3を、 r1 + r2 + r3 = w mod p を満たすランダムに選ばれた値とし、r1'、r2'、r3'を、r1' + r2' + r3' = w' mod 2 ^ n を満たすランダムに選ばれた値とする。
装置1は、自装置のストレージに、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')を保管する。
装置1乃至3は、それぞれ以下の手順に従った処理を行う。
装置1、装置2、及び装置3は、
r1" + r2" + r3" = 0 mod 2 ^ n
を満たすランダムに選ばれた値として、r1"、r2"、r3"をそれぞれ保管しているものとする。このような性質を満たすr1"、r2"、r3"は、乗算を実行するたびに使い捨てで必要となる。このような3値を、3台の装置が効率的に生成する方法については後述する。
装置1は、u2 = s1 s1' + s1 t1' + t1 s1' + r1" mod p
を計算し、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に送付する。
装置1は、自装置のストレージに(u1, u2)を、ww'の分散値として保管する。
装置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
装置1と装置2の保管する値から、ww' mod pが同じ計算方法で計算できる。他の装置の組み合わせについても同様である。このような方法によれば、両方とも(2,3)型RSSにより分散されているw及びw'に関する乗算を、各値を復元することなく実行し、(2,3)型RSSを適用してww'を分散した値を共有することができる。
<乱数の生成>
以下、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に関して生成する方法を説明する。
鍵とインデックスを入力として、nビットの数値列を出力する擬似乱数生成器(Pseudo Random Generator;PRG)が提供されるとする。インデックスは、カウンタなどでよい。この方法は、非特許文献3などに記載がある。
まず、装置のセットアップ処理として、PRGの鍵L1、L2、L3を生成する。装置1に、L1とL3を記憶させ、装置2に、L2とL1を記憶させ、装置3に、L3とL2を記憶させているものとする。
各装置1、2、3は、カウンタなどで同期されたインデックスidxを共有しているものとする。
装置1は、鍵L1とインデックスidxをPRGに入力し、その出力であるnビットの数値r'[1]を生成する。また、装置1は、鍵L3とインデックスidxをPRGに入力し、その出力であるnビットの数値r'[3]を生成する。そして、装置1は、
r[1] = r'[1] - r'[3] mod p
とする。
装置2は、鍵L2とインデックスidxをPRGに入力し、その出力であるnビットの数値r'[2]を生成する。また、装置2は、鍵L1とインデックスidxをPRGに入力し、その出力であるnビットの数値r'[1]を生成する。そして、装置2は、
r[2] = r'[2] - r'[1] mod p
とする。
装置3は、鍵L3とインデックスidxをPRGに入力し、その出力であるnビットの数値r'[3]を生成する。また、装置3は、鍵L2とインデックスidxをPRGに入力し、その出力であるnビットの数値r'[2]を生成する。そして、装置3は、
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
N組全てが上記条件を満たす。
装置1が生成する値 r[1] = r'[1] - r'[3] mod p に着目すると、装置3はr'[1]が得られず、装置2はr'[3]が得られない。
これにより、装置2、装置3は、r[1]を計算できないことがわかる。これは、r[2]やr[3]についても同様である。
セットアップ処理が済んでいれば、以上の処理は、例えば計算が行われる前などにも実行可能である。
上述の(2,3)型RSSを用いた秘密計算において、p = 2とすると、乗算は、AND(論理積)処理とみなすことができ、加算・減算は、排他的論理和(exclusive OR;XOR)処理とみなすことができる。これによって、p = 2とした場合、上述の計算は論理演算に適した秘密計算(secure computation)となる。また、装置1乃至3の分散情報を、すべて、(1,1)、(1,1)、(1,1)とすると、これは、r1 = 1, r2 = 1, r3 = 1として、1の分散情報になっている。これは、論理積(AND)、排他的論理和(XOR)、定数1によって完全系(complete system)となり、任意の演算が実行可能となる。
以上の方法は、非特許文献1などに記載されている。このような方法には種々のバリエーションを考えることができる。例えば、
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と称することにする。
RSSに関して、任意の演算は、p = 2とした(2,3)型RSSを用いることで、演算処理が可能である。しかし、すべての処理を、論理演算で実行することは、非効率的である。そこで、乗算と加算で構成できる演算は、pを大きく設定した(2,3)型RSSを用いた秘密計算で実行するほうがよい。
さらに、数値演算と論理演算の組み合わせるのが望ましい場合もある。例えば、2^4(^はべき乗演算)よりも小さい値であるa、b、cを入力として、
a * b mod 2^4 < c
を処理する場合、a * bを数値演算として処理し、比較演算を論理演算として実行するのが望ましい。a * bを数値演算として計算するのが望ましいが、a * bをcと比較する処理を数値演算として表現することは難しい。
このような問題を解決するため、非特許文献2に記載のビット分解(bit decomposition)と呼ばれる処理が知られている。ビット分解は、数値計算向けの分散情報を論理演算向けの分散情報に変換するための処理である。
例えば、p = 8を用いた(2,3)型RSSによって、値w = 5を分散し、装置1が、(1, 2)を記憶し、装置2が(2, 2)を記憶し、装置3が、(2, 1)を記憶しているものとする。
ビット分解を用いれば、これらの情報から、5の2進表記( = 101)である1と0と1の各ビットに対する分散情報を得ることができる。
具体的には、ビット分解が実行された後、装置1は、1ビット目に関して(1, 1)、2ビット目に関して(0, 1)、3ビット目に関して(1, 0)、4ビット目に関して(0, 0)を所有する。
装置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)を所有する。
ビット分解に関する関連技術として、非特許文献2に記載の方法の概要を以下に示す。この方法は以下のような手順でビット分解を実行する。
ビット分解を実行する値は、r = r1 + r2 + r3 mod pを満たすr1、r2、r3を用いて、共有(share)されているものとする。なお、非特許文献2では、p = 2 ^ n - 1によって表されるメルセンヌ素数を用いる。メルセンヌ素数(Mersenne prime)の性質により、手順2において、sが効率的に計算されている。
<手順1>
r12 = r1 + r2 mod p、および、r3の分散(sharing)を実行する。
<手順2>
r12 + r3 が pよりも大であるか否かを判定し、
r12 + r3 が pよりも大きい場合、s = 1とし、
それ以外の場合、s = 0
となるような秘密計算を実行する。
<手順3>
全加算器(full adder)によるr12 + r3 + s mod 2 ^ nの秘密計算を下位桁からビット毎に実行する。
非特許文献2の方法によれば、pがnビットの数であるとして、10n + 4ビットの総通信量によってビット分解を実行できることが記載されている。
千田浩司、五十嵐大、濱田浩気、高橋克巳、「エラー検出可能な軽量 3 パーティ秘匿関数計算の提案と実装評価」、Vol. 52, No.9, 2674-2685, Sep. 2011 五十嵐大、濱田浩気、菊池亮、千田浩司、「少パーティの秘密分散ベース秘密計算のための O(l)ビット通信ビット分解およびO(|p′|)ビット通信Modulus変換法」、Computer Security Symposium 2013、21 - 23 October 2013 Toshinori Araki, Jun Furukawa, Yehuda Lindell, Ariel Nof and Kazuma Ohara, "High-Throughput Semi-Honest Secure Three-Party Computation with an Honest Majority", CCS'16 Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, Pages 805-817
上記非特許文献1乃至3の全開示内容は、 引用をもって本書に組み込み記載されているものとする。以下の分析は、本発明者らによってなされたものである。
上述の通り、非特許文献2によれば、pをnビットの数とすれば、10n + 4ビットの通信量でビット分解を行うことができる。
しかし、例えば非特許文献2の通信量よりも少ない通信量で、ビット分解を効率的に実行できる方法を実現することが望ましい。
したがって、本発明の目的は、より少ない通信量で、ビット分解及び/又はビット結合を可能とし効率的な秘密計算を実現する装置、方法、プログラムを提供することにある。
本発明の1つの側面によれば、2のべき乗を法とする演算(arithmetic)を用いる(2,3)型RSS(Replication type Secret Sharing:複製秘密分散)によって得た(分散した)分散値を保管する分散値保管装置と、
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(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 の秘密計算とを全加算器の秘密計算によって各桁毎に実行し、計算結果を前記分散値保管装置に記憶する全加算器秘密計算部を含むビット結合秘密計算システムが提供される。
本発明の1つの側面によれば、ビット分解秘密計算を提供するためのコンピュータシステムの方法であり、
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によって得た(分散した)分散値を保管する分散値保管装置に記憶する全加算器秘密計算ステップを含む方法が提供される。
本発明の1つの側面によれば、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は予め設定された正整数)を満たしランダムに選ばれた1、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を適用して得た分散値を保管する分散値保管装置に記憶する全加算器秘密計算処理を含む、ビット結合秘密計算処理をコンピュータに実行させるプログラムが提供される。
本発明のさらに他の側面によれば、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、USB(Universal Serial Bus)デバイス、SSD(Solid State Device)などの半導体メモリ、又は例えばHDD(Hard Disk Drive)、CD(Compact Disc)又はDVD(Digital Versatile Disc)などの記憶装置などのような、上記のプログラムを記録した、非一時的なコンピュータ読み出し可能な記録媒体が提供される。
本発明によれば、より少ない通信量で、ビット分解及び/又はビット結合を可能とし効率的な秘密計算を実現することができる。
本発明のさらに他の特徴及び利点は、本発明を実施することが企図されている最良の形態の単なる例示により、本発明の実施形態のみを図示及び説明した添付の図面と併せて以下の詳細な説明から当業者には容易に明らかになるであろう。理解されるように、本発明は、他の異なる実施形態が可能であり、そのいくつかの詳細は、本発明から逸脱することなく、様々な明白な点において変更可能である。従って、図面及び説明は、本質的に例示的であるとみなされるべきであり、限定的ではないとみなされるべきである。
第1の実施形態の構成を例示する図である。 本発明の第1の実施形態の動作を説明する流れ図である。 第2の実施形態の構成を例示する図である。 本発明の第2の実施形態の動作を説明する流れ図である。 第3の実施形態の構成を例示する図である。 本発明の第3の実施形態の動作を説明する流れ図である。 本発明の第4の実施形態の構成を例示する図である。
図面を参照して例示的な実施形態を説明する。上記非特許文献2の方法によれば、上記手順1において、r3が共有されている。この処理を、通信無しで実行する方法について説明する。
r = r1 + r2 + r3 mod pを満たすr1、r2、r3を分散(shares)として用いてある値の分散(sharing)が行われることを想定する。
r = r1 + r2 + r3 mod pを満たすri (i = 1, 2, 3)に関連する分散(shares)を生成する場合、r = r1 + r2 + r3 mod pの分散情報(share information)のriに関する箇所以外をすべて0に設定した値が、riの分散情報となる。
装置1が(r2, r3)を保管し、装置2が(r3, r1)を保管し、装置3が(r1, r2)を保管しているとする。
例えば、r1に関する箇所以外を全てゼロに設定すると、装置1は(0, 0)を保有し、装置2は(0, r1)を保有し、装置3は(r1, 0)を保有する。これらは、r1の分散情報とすることができる。
装置2と装置3がr1自体を保管していることは秘匿性に何ら影響を与えない。これらは、元々、把握可能な値であるためである。r2、r3についても同様に、装置間において通信することなく、その分散情報を得ることができる。
非特許文献2の方法の上記手順3、すなわち、r12 + r3 + s mod 2 ^ nでsを加算している理由は、r12 + r3 mod p をmod 2 ^ nの秘密計算で求めるためである。
s = 1の場合、r12 + r3 = r' + p とすると、以下が成り立つ。
r' + p mod p = r'+ p + 1 = r' + 2 ^ n mod 2 ^ n
s = 0の場合、r12 + r3 = r'とすると、r' mod p = r' mod 2 ^ n となる。
以上のように、sの値に関わらず、上記手順3の計算結果は、r12 + r3 mod p となる。
しかしながら、pとして2 ^ nを用いれば、r12 + r3 が2 ^ nを越えた場合の処理は不要である。
<形態>
以上の変更を加えた本発明の一形態のビット分解法について以下に説明する。
<手順1>
r12 = r1 + r2 mod 2 ^ n の分散(sharing)を実行する。
<手順2>
各装置でr3の分散情報を生成する。
<手順3>
下位桁からビット毎に全加算器の秘密計算を実行して、
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の分散値として保管される。
<手順1の通信量>
r1 + r2の配布(distribution)は、装置1によって実行される。まず、装置1は、r12 = r1 + r2 mod 2 ^ n を計算し、r12A + r12B = r12 mod 2 ^ n となるr12Aとr12Bをランダムに選択する。
次に、装置1は、r12Aを装置2に送信し、r12Bを装置3に送信する。
この結果、装置1は、r12の分散値として、(r12B, r12A)を得る。
装置2は、r12の分散値として、(r12A, 0)を得る。
装置3は、r12の分散値として、(0, r12B)を得る。
この処理では、2nビットの通信を行っている。
<手順2の通信量>
上述したように、r3の分散情報は、通信を行わずに生成できる。
<手順3の通信量>
全加算器の秘密計算は、各桁のキャリーを計算するために1回のAND演算を必要とする。したがって、n桁の加算の場合、3 * (n - 1)ビットの通信が必要となる。
以上の結果として、5n - 3ビットの通信量でビット分解が計算できることが分かる。ここで、加算器処理によって計算結果をビット単位に分解する様子を示す例を挙げる。
p = 8、r = 6(2進表記で110)、r1 = 3(2進表記で011)、r2 = 2(2進表記で010)、r3 = 1(2進表記で001)のビット分解の計算過程を示す。
r_iの最下位桁からj桁目を ri_j、r1r2 mod 8のj桁目を r12_j、そして、r1 + r2 + r3 mod 8のj桁目を r123_j と表記する。
次に、
r12 + r3 mod 8 = 5 + 1 mod 8 = 6
を最下位桁から計算する手順を示す。
<1桁目>
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桁目>
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桁目>
3桁目の計算は以下の通りになる。
r123_3 = r12_3 XOR r2_3 XOR c2 = 1 XOR 0 XOR 0 = 1
以上のように、ANDの処理1回で、r123_1 = 0, r123_2 = 1, r123_3 = 1 のように、各桁をビット毎に分解した値を計算することが可能になる。この処理は秘密計算で実行できる。秘密計算の結果が、ビット毎に分解した値の分散値となる。
上記の場合では、(2,3)閾値型RSSとして、値wが以下のように与えられるとき、
w = r1 + r2 + r3 mod p
装置1が、(r1, r2)を保管し、
装置2が、(r2, r3)を保管し、
装置3が、(r3, r1)を保管する。
しかし、本発明は、r1、r2、r3の3つの値のうち異なる2つに相当する情報を保有する(2,3)閾値型RSSであれば適用可能である。例えば、 装置2は、(r2, r3)でなく、(r2 + r3, r3) を保有していてもよいし、装置2が(r2 - r3, r2 + r3) などを保有する方法であってもよい。秘密計算として加算、乗算、定数を備えていれば実施可能である。
あるいは、まず、r12 = r1 + r2 mod 2 ^ nの計算を秘密計算によって実行してから、r12 + r3に関する演算を全加算器の秘密計算によって実行してもよい。この方法を用いる場合、r12を計算する通信量が3nビットとなり、装置1が分散する場合に比べて効率は悪いが、全体の通信量は、6n-3ビットである。
r1 + r2の計算を全加算器の秘密計算によって実行する場合、最上位の桁から発生するキャリーに関する計算を実行する必要が無いため、3n - 3ビットの通信量で、r12に関する計算を実行できる。この場合、6n - 6ビットの通信量でビット分解を実行することができる。
これらの変形例も非特許文献2の方法に比べて効率的である。
また、両方の処理(r12 = r1 + r2 mod 2 ^ n、及び r12 + r3 mod 2 ^ n )を全加算器の秘密計算を用いて実行する場合、非特許文献3に記載されているような(2,3)型RSSを用いた秘密計算法に不正耐性を付与する仕組みを用いることもできる。
さらに、ビット分解された分散情報から結合された値に対する分散情報を作成することも可能である。下位の桁から上位の桁への各キャリー(carry)を、キャリー計算の秘密計算によって実行していき、すべての桁のキャリー計算を終えた段階で、各桁の秘密計算結果を結合すればよい。
この方法では、r1 + r2 mod 2 ^ n相当の情報を保有している主体が存在しないため、r12 = r1 + r2 mod 2 ^ n と、r12 + r 3 mod 2 ^ n の計算の両方を、全加算器の秘密計算によって実行することになる。
全加算器の計算を、下位桁から順番に実行する場合、n-1回のAND演算が発生する。これによって、通信の回数がn-1回となる。この回数を減らすためにキャリーセーブアダー(carry save adder)を用いてもよい。この手法では、AND演算の回数は増えるが、回路の深さは浅くなる。
<例示的な実施形態>
本発明の実施形態1の構成と動作について図面を参照して説明する。
<実施形態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 を全加算器の秘密計算を用いて実行することによって、ビット分解された分散情報を生成する。
図1は、本発明の第1の実施形態の構成を例示するブロック図である。図1を参照すると、本発明の第1の実施形態によるビット分解秘密計算システム10は、pとして2 ^ nを用いた(2,3)型RSSを適用して得た分散値(share value)を保管する分散値保管装置100と、ビット分解された分散情報(decomposed share value)を保管する分解分散値保管装置200と、分散値保管装置100が記憶する分散値を読み出し、分解分散値保管装置200にビット分解値(bit decomposed value)を記憶させるビット分解秘密計算装置300とを含む。
第1の実施形態では、図1の装置100、200、300が1組を構成し、3組の装置が設けられている。すなわち、3組のシステム10が提供されている。装置100、200、300、または装置100、200、300から選択されたいずれか2つの装置は1つのユニットとして配置されていてもよいし、分散して配置されていてもよい。例えば、少なくとも装置100と装置200との間、及び装置200と装置300との間には、LAN(Local Area Network)及び/又はWAN(Wide Area Network)などの1つ以上の通信経路が設けられてもよい。なお、図1において、装置100と装置300、装置300と装置200との間の矢印線はそれぞれ、データの流れの一例を示しているに過ぎない。装置100と装置300、装置300と装置200との間の通信は、矢印線の方向に限定されないことは勿論である。後述する他の実施形態においても同様である。
分散値保管装置100は、第1の分散値保管部101と、第2の分散値保管部102とを含む。第1の分散値保管部101及び第2の分散値保管部102は、それぞれの分散値(第1の分散値と第2の分散値)を、(2,3)型RSS方式の分散情報を生成するために用いられた3つの値のうちどの値が用いられ、 保管される分散値を得るためにそれらの値がどのように処理されたかが分かるように保管する。
分解分散値保管装置200は、第1の分解分散値保管部201と第2の分解分散値保管部202とを含む。第1の分解分散値保管部201及び第2の分解分散値保管部202は、それぞれの分散情報(第1の分散値と第2の分散値)を、(2,3)型RSS方式の分散情報を生成するために用いられた3つの値のうち、どの分散値が用いられ、保管される分散情報を得るためにそれらの値がどのように処理されたかが分かるように保管する。
ビット分解秘密計算装置300は、加算分散部301と、部分分散情報抽出部302と、全加算器秘密計算部303とを含む。ビット分解秘密計算装置300は、分散値保管装置100の第1の分散値保管部101と第2の分散値保管部102とが記憶する分散値を読み出し、他のビット分解秘密計算装置300(不図示)と通信し、分解分散値保管装置200の第1の分解分散値保管部201と第2の分解分散値保管部202とに情報(ビット分解された分散値)を記憶させる。
加算分散部301は、(2,3)型RSSによる分散情報を構成する3つの値のうち2つのインデックスを入力として、分散値保管装置100が記憶する分散値を読み出す。分散値保管装置100が2つのインデックス両方の分散値を保管している場合は、加算分散部301は、2つのインデックスの分散値の和について、(2,3)型RSSにより分散情報を生成 し、生成した分散情報を他の2つの装置(不図示)の加算分散部301に送付する。
部分分散情報抽出部302は、(2,3)型RSS方式による分散情報を構成する3つの値のうち1つのインデックスを入力として、分散値保管装置100が記憶する値を読み出し、(2,3)型RSS方式による分散情報を構成する3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する。
全加算器秘密計算部303は、加算分散部301によって生成配布された(2,3)型RSSの分散情報と部分分散情報抽出部302によって生成された(2,3)型RSSの分散情報とについて、全加算器の秘密計算を用いた加算処理を実行し、各ビットに関して得られたビット毎の計算結果の分散情報を結合した値を、分解分散値保管装置200に記憶させる。
図2は、本発明の第1の実施形態の動作を説明する流れ図である。分散値保管装置100には、r = r_1 + r_2 + r_3 mod 2 ^ n となるr_1、r_2、r_3を用いた(2,3)型RSSで分散された分散値が記憶されているものとする。
第1の実施形態の動作では、
r_ij = r_i + r_j mod 2 ^ n が分散(share)され、
r_ijとr_kの加算を全加算器の秘密計算で実行する。
i、j、kは互いに異なる値で1、2、3のいずれかの値の組み合わせから選択されれば、どのような組み合わせが用いられてもよい。
以下の処理は、3組の分散値保管装置100、分解分散値保管装置200、ビット分解秘密計算装置300が実行する。
まず、各加算分散部301は、ビット分解秘密計算装置300と対応付けられた分散値保管装置100が、r_iとr_jに関する情報を記憶しているか否かを判定する。記憶している場合、各加算分散部301は、r_ij = r_i + r_j mod 2 ^ n を計算し、計算結果を他の2つのビット分解秘密計算装置300の加算分散部301に送付する。その後、各加算分散部301は、r_ijの分散情報を出力する(ステップA1)。
次に、部分分散情報抽出部302は、分散値保管装置100の記憶する値から、r_kに関する部分以外の値を0と設定した部分分散情報を出力する(ステップA2)。
次に、全加算器秘密計算部303は、r_ijの分散情報と、r_kの分散情報に関して、全加算器の秘密計算を用いた加算処理を実行し、そして、加算処理結果のシーケンスを分解分散値保管装置200に記憶する(ステップA3)。
<例示的な実施形態2>
本発明の第2の例示的な実施形態の構成と動作について図面を参照して説明する。
第2の例示的な実施形態では、w = r1 + r2 + r3 mod 2 ^ nを満たすr1、r2、r3を用いた(2,3)型RSS方式でwが分散されている場合、
r12 = r1 + r2 mod 2 ^ n を全加算器の秘密計算によって実行し、
r12 + r3 mod 2 ^ n を下位ビットから全加算器の秘密計算によって計算する。
図3は、本発明の第2の実施形態の構成を例示するブロック図である。図3を参照すると、本発明の第2の実施形態によるビット分解秘密計算システム10Aは、pとして2 ^ nを用いた(2,3)型RSS方式を適用して得た分散値を保管する分散値保管装置100と、ビット分解された分散情報を保管する分解分散値保管装置200と、分散値保管装置100が記憶する分散値を読み出し、分解分散値保管装置200にビット分解値を記憶させるビット分解装置300を含む。
上記第1の実施形態と同様、図1の装置100、200、300を1セットとした装置が3組提供される。すなわち、システム10Aが3セット提供される。
分散値保管装置100は、第1の分散値保管部101と、第2の分散値保管部102とを含む。第1の分散値保管部101及び第2の分散値保管部102は、分散値を、(2,3)型RSSの分散情報を生成するために用いられた3つの値のうちどの値が用いられ、 保管される分散値を得るためにそれらの値がどのように処理されたかが分かるように保管する。
分解分散値保管装置200は、第1の分解分散値保管部201と第2の分解分散値保管部202とを含む。第1の分解分散値保管部201及び第2の分解分散値保管部202は、それそれの値(ビット分解された分散値)を、(2,3)型RSSの分散情報を生成するために用いられた3つの値のうちどの分散値が用いられ、保管される分散情報を得るためにそれらの値がどのように処理されたかが分かるように保管する。
ビット分解秘密計算装置300は、部分分散情報抽出部302と、全加算器秘密計算部303とを含む。
ビット分解秘密計算装置300Aは、分散値保管装置100が記憶する値を読み出し、他の2つのビット分解秘密計算装置300Aと通信し、分解分散値保管装置200に情報を記憶させる。
部分分散情報抽出部302は、(2,3)型RSS方式による分散情報を構成する3つの値のうち1つのインデックスを入力として、分散値保管装置100が記憶する値を読み出し、(2,3)型RSSによる分散情報を構成する3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する。
全加算器秘密計算部303Aは、部分分散情報抽出部302によって生成された(2,3)型RSSの分散情報3組を入力として、当該3つの値に関して下位ビットから全加算器の秘密計算を実行し、ビット毎の計算結果の分散情報を分解分散値保管装置200に記憶させる。
図4は、本発明の第2の実施形態の動作を説明する流れ図である。
分散値保管装置100には、r = r_1 + r_2 + r_3 mod 2 ^ n を満たすr_1、r_2、r_3を用いた(2,3)型RSSを適用して分散されるnビットの値rの分散値が記憶されているものとする。
第2の実施形態の動作では、
r_ij = r_i + r_j mod 2 ^ n を全加算器の秘密計算で実行し、
r_ij + r_k mod 2 ^ n を全加算器の秘密計算で実行する。i、j、kは互いに異なり、1、2、3のいずれか値の組み合わせから選択される値とする。
以下の処理は、3組の分散値保管装置100、分解分散値保管装置200、ビット分解秘密計算装置300Aが実行する。
まず、部分分散情報抽出部302は、分散値保管装置100の記憶する値からr_iに関する部分以外の値をゼロとみなした部分分散情報を出力する(ステップB1)。
次に、部分分散情報抽出部302は、分散値保管装置100の記憶する値からr_jに関する部分以外の値をゼロとみなした部分分散情報を出力する(ステップB2)。
次に、部分分散情報抽出部302は、分散値保管装置100の記憶する値からr_kに関する部分以外の値をゼロとみなした部分分散情報を出力する(ステップB3)。
次に、全加算器秘密計算部303は、r_iの分散情報とr_jの分散情報に関して、最下位ビットの降順で、全加算器の秘密計算を実行し、その結果の列をr_ijの分散情報として出力する(ステップB4)。
次に、全加算器秘密計算部303は、r_ijの分散情報とr_kの分散情報に関して、全加算器の秘密計算を実行し、その結果の列を分解分散値保管装置200に記憶させる(ステップB5)。
<例示的な実施形態3>
本発明の第3の例示的な実施形態の構成と動作について図面を参照して説明する。
第3の例示的な実施形態では、 i = 1,..., N について、w = r_{i, 1} + r_{i, 2} + r_{i, 3} mod 2 を満たす r_{i, 1}, r_ {i, 2}, r_ {i, 3}を用いた(2,3)型RSSで、ビットwiが分散されている場合に、
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)を表す。
図5は、本発明の第3の実施形態の構成を例示するブロック図である。図5を参照すると、本発明の第3の実施形態によるビット結合秘密計算システム20は、pとして2 ^ nを用いた(2,3)型RSSを適用して得た分散値を保管する分散値保管装置100と、分散情報を保管するビット分解分散値保管装置200と、分解分散値保管装置200が記憶する値を読み出し、分散値保管装置100に値を記憶させるビット結合秘密計算装置400とを含む。
図5の装置100、200、及び400が1組の装置を構成し、3組の装置が提供される。すなわち、3組のシステム20が提供される。
分散値保管装置100は、第1の分散値保管部101と、第2の分散値保管部102とを含む。第1の分散値保管部101及び第2の分散値保管部102は、(2,3)型RSS方式の分散情報を生成するために用いられた3つの値のうちどの値が用いられ、 保管される分散値を得るためにそれらの値がどのように処理されたかが分かるように分散値を保管する。
分解分散値保管装置200は、第1の分解分散値保管部201と第2の分解分散値保管部202とを含む。第1の分解分散値保管部201及び第2の分解分散値保管部202は、(2,3)型RSSの分散情報を生成するために用いられた3つの値のうちどの値が用いられ、保管される分散値を得るためにそれらの値がどのように処理されたかが分かるように分散値を保管する。
ビット結合秘密計算装置400は、部分分散情報抽出部302と全加算器秘密計算部303とを含む。
ビット結合秘密計算装置400は、分解分散値保管装置200が記憶する値を読み出し、他のビット結合秘密計算装置400と通信し、分散値保管装置100に情報を記憶させる。
部分分散情報抽出部302は、(2,3)型RSSによる分散情報を構成する3つの値のうち1つのインデックスを入力として、分解分散値保管装置200が記憶する値を抽出し読み出し、(2,3)型RSSによる分散情報を構成する3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する。
全加算器秘密計算部303は、部分分散情報抽出部302によって生成された(2,3)型RSSの分散情報3組を入力として、3つの値に関する 下位ビットから全加算器の秘密計算を実行し、ビット毎の計算結果の分散情報を分散値保管装置100に記憶させる。
図6は、本発明の第3の実施形態の動作を説明する流れ図である。分解分散値保管装置200には、ri = r_{i, 1} + r_{i, 2} + r_{i, 3} mod 2 となる r_{i, 1}, r_ {i, 2}, r_ {i, 3}を用いた(2,3)型RSSで分散された分散値が記憶されているものとする。
第3の実施形態の動作では、
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のいずれか値の組み合わせから選択される。
以下の処理は、3組の分散値保管装置100、分解分散値保管装置200、ビット結合秘密計算装置400が実行する。
まず、部分分散情報抽出部302は、分解分散値保管装置200の記憶する値から、r_{i, n}||...||r_{i, 1}に関する部分以外の値を0とみなした部分的に分解された分散情報を出力する(ステップC1)。
次に、部分分散情報抽出部302は、分解分散値保管装置200の記憶する値から、r_{j, n} || ... r _{j, 1}に関する部分以外の値を0とみなした部分的に分解された分散情報を抽出する(ステップC2)。
次に、部分分散情報抽出部302は、分解分散値保管装置200の記憶する値から、r_{k, n}|| ... || r_{k, 1}に関する部分以外の値を0とみなした部分的に分解された分散情報を抽出する(ステップC3)。
次に、全加算器秘密計算部303は、r_{i, n} || ... || r_ {i, 1}の部分的に分解された分散情報と、r_ {j, n} || ... ||r_ {j, 1}の部分的に分解された分散情報に関して、全加算器の秘密計算を実行し、その結果の列をr_ijの分散情報として出力する(ステップC4)。
次に、全加算器秘密計算部303は、r_ijの分散情報と、r_ {k, n}||... ||r_{k, 1}の部分的に分解された分散情報に関して、全加算器の秘密計算を実行し、その結果を、分散値保管装置100に記憶させる(ステップC5)。
第1及び第2の実施形態でそれぞれ説明されたビット分解秘密計算システム10および10Aは、例えば図7に示されるようなコンピュータシステム上で実現されてもよい。図7を参照すると、サーバシステムなどのコンピュータシステム500は、プロセッサ(Central Processing Unit)502と、例えば半導体メモり(例えばRAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory))、及び/又はHDD(Hard Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)のうち少なくとも1つを含む記憶装置などのメモリ504と、表示装置506と、通信インタフェース508とを含む。通信インタフェース508(ネットワークインタフェースコントローラ(Network Interface Controller;NIC)など)は、例えば、LAN及び/又はWANを介して他のコンピュータシステム(主体)と通信するように構成されてもよい。図1又は図3のビット分解秘密計算装置の処理を実行するプログラムは、メモリ504に記憶されており、プロセッサ112が、メモリからプログラムを読み取り、プログラムを実行してビット分解秘密計算を実現する。メモリ504は、分散値保管装置100と分解分散値保管装置200とを含んでもよい。さらに、第3の実施形態のビット結合秘密計算システム20も、図7に示されるようなコンピュータシステム上で実現されてもよい。
第1及び第2の実施形態によれば、(2,3)型RSSによって分散された分散値を、各ビットが(2,3)型RSSで分散された値に変換することができる。
第3の実施形態によれば、その逆の処理を効率的に実行することができる。
上記処理によれば、値の秘密計算と、ビットの秘密計算とを組み合わせた複雑な処理を効率的に実行することが可能となる。
なお、上記非特許文献1乃至3の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
10、10A ビット分解秘密計算システム
20 ビット結合秘密計算システム
100 分散値保管装置
101 第1の分散値保管部
102 第2の分散値保管部
200 分解分散値保管装置
201 第1の分解分散値保管部
202 第2の分解分散値保管部
300、300A ビット分解秘密計算装置
301 加算分散部
302 部分分散情報抽出部
303 全加算器秘密計算部
400 ビット結合秘密計算装置
500 コンピュータシステム
502 プロセッサ
504 メモリ
506 表示装置
508 通信インタフェース

Claims (15)

  1. 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のべき乗を法とする演算を用いた(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 の秘密計算と、
    を全加算器の秘密計算によって、各桁毎に実行し、計算結果を前記分解分散値保管装置に記憶する全加算器秘密計算部を含む、ことを特徴とするビット分解秘密計算システム。
  3. 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 の秘密計算と、
    を全加算器の秘密計算によって、各桁毎に実行し、計算結果を前記分散値保管装置に記憶する全加算器秘密計算部を含む、ことを特徴とするビット結合秘密計算システム。
  4. 前記ビット分解秘密計算装置は、
    前記(2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、前記(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出部を含み、
    前記全加算器秘密計算部は、前記加算分散部で生成され配布された前記(2,3)型RSSの前記分散情報と、前記部分分散情報抽出部で生成した前記(2,3)型RSSの前記分散情報とについて、全加算器の秘密計算を用いた加算処理を実行し、
    ビット毎の計算結果の分散情報を結合した値を、前記分解分散値保管装置に記憶する、ことを特徴とする請求項1に記載のビット分解秘密計算システム。
  5. 前記ビット分解秘密計算装置は、
    前記(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に記載のビット分解秘密計算システム。
  6. 前記ビット結合秘密計算装置は、
    前記(2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、前記(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出部を含む、ことを特徴とする請求項3に記載のビット結合秘密計算システム。
  7. ビット分解秘密計算を提供するためのコンピュータシステムの方法であって、
    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を適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算ステップと、
    を含む、ことを特徴とする方法。
  8. ビット分解秘密計算を提供するためのコンピュータシステムの方法であって、
    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を適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算ステップを含む、ことを特徴とする方法。
  9. ビット結合秘密計算を提供するためのコンピュータシステムの方法であって、
    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を適用して得た分散値を保管する分散値保管装置に記憶する全加算器秘密計算ステップを含む、ことを特徴とする方法。
  10. (2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、前記(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出ステップを含み、
    前記全加算器秘密計算ステップは、前記加算分散ステップで生成され配布された(2,3)型RSSの前記分散情報と、前記部分分散情報抽出ステップで生成した(2,3)型RSSの前記分散情報とについて、全加算器の秘密計算を用いた加算処理を実行し、ビット毎の計算結果の分散情報を結合した値を、前記分解分散値保管装置に記憶する、ことを特徴とする請求項7に記載の方法。
  11. 前記(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に記載の方法。
  12. (2,3)型RSSの分散情報を構成する3つの値のうち1つのインデックスを入力として、前記分散値保管装置が保管する値を読み出し、(2,3)型RSSの前記分散情報を構成する前記3つの値のうち1つを除いて値をゼロに設定した分散情報を生成する部分分散情報抽出ステップを含む、
    ことを特徴とする請求項9に記載の方法。
  13. 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を適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算処理と、
    を含む、
    ビット分解秘密計算処理をコンピュータに実行させるプログラム。
  14. 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を適用して得た分散値の列を保管する分解分散値保管装置に記憶する全加算器秘密計算処理を含む、
    ビット分解秘密計算処理をコンピュータに実行させるプログラム。
  15. 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を適用して得た分散値を保管する分散値保管装置に記憶する全加算器秘密計算処理を含む、
    ビット結合秘密計算処理をコンピュータに実行させるプログラム。
JP2019563913A 2017-05-18 2017-05-18 ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム Active JP6844897B2 (ja)

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 JP2020519968A (ja) 2020-07-02
JP6844897B2 true 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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110800034B (zh) * 2017-07-05 2023-05-02 日本电信电话株式会社 秘密计算系统、秘密计算装置、秘密计算方法、程序以及记录介质
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

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
EP3528234B1 (en) * 2013-10-10 2021-05-05 Nippon Telegraph and Telephone Corporation Secret modulus conversion device, secret modulus conversion 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

Also Published As

Publication number Publication date
JP2020519968A (ja) 2020-07-02
US20210157955A1 (en) 2021-05-27
WO2018211675A1 (en) 2018-11-22
US11599681B2 (en) 2023-03-07

Similar Documents

Publication Publication Date Title
CN110348231B (zh) 实现隐私保护的数据同态加解密方法及装置
JP4334582B2 (ja) 秘密分散装置、方法及びプログラム
RU2691874C2 (ru) Способ защиты информации в облачных вычислениях с использованием гомоморфного шифрования
US8077863B2 (en) Secret sharing apparatus, method, and program
JP6934963B2 (ja) データを暗号化する方法およびシステム
JP7031682B2 (ja) 秘密計算装置、システム、方法、プログラム
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
JP6973868B2 (ja) 秘密計算方法、装置、およびプログラム
JP6844897B2 (ja) ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
US11294633B2 (en) Secure computation system, secure computation device, secure computation method, and program
JP2019095635A (ja) 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム
JPWO2018135511A1 (ja) 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム
WO2016148281A1 (ja) 秘匿文字列計算システム及び方法と装置並びにプログラム
JP6605746B2 (ja) 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP7173170B2 (ja) 情報処理装置、秘密計算方法及びプログラム
JP6337133B2 (ja) 非減少列判定装置、非減少列判定方法及びプログラム
JP7248120B2 (ja) 暗号システム、鍵生成装置、暗号化装置、復号装置、及びプログラム
CN103873239A (zh) 基于偶数公钥密码体制应用的偶数素数对的快速生成方法
JP6321216B2 (ja) 行列・キー生成装置、行列・キー生成システム、行列結合装置、行列・キー生成方法、プログラム
JP6532843B2 (ja) 秘匿計算システム、第一秘匿計算装置、第二秘匿計算装置、秘匿回路生成方法、秘匿回路評価方法、プログラム
JP2012154990A (ja) 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム
JP7327511B2 (ja) 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム
Vats et al. LockNKey: Improvised Cloud Storage System using Threshold Cryptography Approach
CN108075889B (zh) 一种降低加解密运算时间复杂度的数据传输方法及系统

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