JP6607257B2 - 秘密計算システム、秘密計算装置、および、秘密計算方法 - Google Patents

秘密計算システム、秘密計算装置、および、秘密計算方法 Download PDF

Info

Publication number
JP6607257B2
JP6607257B2 JP2017538016A JP2017538016A JP6607257B2 JP 6607257 B2 JP6607257 B2 JP 6607257B2 JP 2017538016 A JP2017538016 A JP 2017538016A JP 2017538016 A JP2017538016 A JP 2017538016A JP 6607257 B2 JP6607257 B2 JP 6607257B2
Authority
JP
Japan
Prior art keywords
mod
secret
unit
secret calculation
computing 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
JP2017538016A
Other languages
English (en)
Other versions
JPWO2017038761A1 (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 JPWO2017038761A1 publication Critical patent/JPWO2017038761A1/ja
Application granted granted Critical
Publication of JP6607257B2 publication Critical patent/JP6607257B2/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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Nonlinear Science (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2015−169992号(2015年8月31日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、秘密計算装置、秘密計算システム、および、秘密計算方法に関し、特に、複数の秘密計算装置が互いに通信しつつ与えられた関数の出力を計算し、所定の数の秘密装置の間でデータを共有しない限り、関数に対する入力および出力の情報を得ることができない秘密計算システム、かかる秘密計算システムを構成する秘密計算装置、および、秘密計算システムによる秘密計算方法に関する。
非特許文献1には、ある体上の値である、秘密Sを、この体上の多項式FでF(0) = Sを満たす多項式Fを用いて複数の装置に分散する秘密計算方法が記載されている。
また、非特許文献2には、装置の数が2つの場合における秘密計算方法に関する記載がある。
Tal Rabin, Michael Ben-Or, "Verifiable Secret Sharing and Multiparty Protocols with Honest Majority (Extended Abstract)," STOC 1989, pp. 73-85. Oded Goldreich, Ronen Vainish, "How to Solve any Protocol Problem - An Efficiency Improvement," CRYPTO 1987, pp. 73-86.
非特許文献1、2の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
非特許文献1に記載された方法では、ある体上の値(秘密S)を、この体上の多項式FでF(0) = Sを満たす多項式Fを使用して複数の装置に分散する。ここで、装置の数をN、装置の個数がK未満であれば関数の入力や出力に関する情報を得ることができないものとする。また、各装置に対して、この体上の異なる値が割り当てられているものとする。具体的に、装置iに割り当てられている体の値をX[i]とする(i = 1, …, N)。秘密Aをこれらの複数の装置に分散するとき、i番目の装置にはF(0) = Aなるランダムに選ばれた(K - 1)次多項式Fに関するF[i] := F(X[i])を配布する。秘密Bに関しても、同様にG(0) = Bなる(K - 1)次多項式Gに関するG[i] := G(X[i])をi番目の装置に配布する。K個以上の装置が集まると、(K - 1)次多項式F, G(すなわち、FやGの係数)を求めることができる。すなわち、F(0)やG(0)を計算することが可能となり、秘密A, Bが求められる。
このとき、A + Bを分散した値を計算するには、i番目の装置は H[i] = F[i] + G[i]を計算する。この値はFとGのそれぞれ対応する係数を足したものを係数とする多項式Hに、X[i]を代入して得られるH(X[i])である。したがって、AやBと同様に、A + Bも複数の装置で分散したものとなる。AやBの場合と同様に、K個以上の装置が集まれば(K - 1)次多項式H(すなわち、多項式Hの係数)を求めることができる。すなわち、H(0)を計算することが可能となり、秘密A + Bが求められる。
また、2K ≦ N + 1の場合、A*Bを分散した値を計算するには、i番目の装置は H[i] = F[i]*G[i]を計算する。この値は2K次多項式H(X) = F(X)*G(X)にX[i]を代入して得られるH(X[i])である。したがって、AやBと同様に、A*Bも複数の装置で分散したものとなる。ただし、AやBの場合とは異なり、Hの次数は2Kとなる。したがって、2K個以上の装置が集まると、2K次多項式H(すなわち、多項式Hの係数)を求めることができ、H(0)を計算することが可能になる。ここで、A*Bの分散方法は、AやBとは分散のされ方が異なる。A*BをAやBと同様に(K - 1)次多項式を用いた形で分散するには、i番目の装置がH[i]から(K - 1)次多項式Gを生成して、他のj番目の装置にG(X[j])を配布する方法が用いられる。このようにして、加算と乗算から成るすべての関数を計算することが可能となる。
非特許文献1に記載された方法によると、体上の乗算と加算が容易に行われる。ただし、条件として2K ≦ N + 1が課される。また、Kが2以上でなければ、単独の装置で秘密を求めることができる。そこで、Nを3以上とする必要がある。異なるiについてX[i]は異なる値でなければならないため、利用できる体にGF(2)は含まれない。利用できる体にGF(2)が含まれないため、加算を用いて排他的論理和とすることはできない。
非特許文献2には、装置の数が2つの場合の方法に関する記述がある。この方法では、2つの装置がビット、すなわちGF(2)上のある要素bを分散して保持する場合、b + c = b mod 2となるbとcを、それぞれの装置で分散して保持する。かかる方法を使用すると、あるビットAとあるビットBを装置1と装置2で分散する場合、A = C + D mod 2, B = E + F mod 2として、装置1はCとEを、装置2はDとFを保持する。このとき、AとBの排他的論理和GはG = A + B mod 2となり、これらの装置1と装置2との分散は、それぞれ、H = C + E mod 2とJ = D + F mod 2とすることができる。それぞれの装置は、他の装置と通信することなく、分散された2つの値の排他的論理和の分散を少ない計算量で計算することができる。
同様に、AとBが分散されて保持されている場合、この2つのビットの論理積 K = A・Bのそれぞれの分散、すなわちL + M = K mod 2なるLとMを、装置1がLを得るとともに装置2がMを得るように行うには、次のようにする。装置1は、Lをランダムに生成する。このとき、M = (C + D)・(E + F) = L mod 2である。そこで、装置2が持つ値DとFに応じて、装置1はMの値を知ることなく、(D, F)=(0, 0)ならM = (C + 0)・(E + 0) + L mod 2を、(D, F)=(0, 1)ならM = (C + 0)・(1 + E)+L mod 2を、(D, F)=(1, 0)ならM = (1 + C)・(E + 0) + L mod 2 を、(D, F)=(1, 1)ならM = (1 + C)・(1 + E) + L mod 2 を装置2に返す。すなわち、装置1は、装置2の入力に依存する値を装置2に送付する。装置1が装置2の入力を知ることができないようにする方法は、装置1と装置2の間のoblivious transferと呼ばれる技術によって実現される。しかし、かかる技術によると、装置1、2において多くの計算と通信が必要とされる。
非特許文献1に記載された方法によると、少ない通信と少ない計算量で論理積を分散して計算することが可能となる。しかし、非特許文献1に記載された方法によると、排他的論理和を分散して計算する際にも、論理積の計算のときと同様に、通信と若干の計算が必要とされる。
一方、非特許文献2に記載された方法によると、排他的論理和を分散して計算する際に通信を要しないという利点がある。しかし、非特許文献2に記載された方法によると、論理積については、通信も計算も必要となる。
したがって、ビット、すなわちGF(2) の元の排他的論理和を、複数の装置で分散したまま計算しつつ、これらの装置間に通信が発生せず、ビットの論理積も少ない通信量と計算量で分散したまま計算できるようにすることが望まれる。これを実現することにより、任意の関数を論理ゲートに分解し、排他的論理和と論理積で記述することにより、この関数を複数の装置で分散したまま、かつ、いずれの装置もデータを知る(計算する)ことなく高速に計算することが可能となる。
本発明の目的は、加算が容易であり乗算に必要な通信と計算の量が少ない秘密計算を実現する秘密計算システム、秘密計算装置、および、秘密計算方法を提供することにある。
本発明の第1の態様に係る秘密計算システムは、3台の秘密計算装置を備えている。第i番目の秘密計算装置(i = 1, 2, 3)は、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持する保持部を有する。また、第i番目の秘密計算装置は、S[i]とS'[i]の論理積を求める第1の乗算部と、T[i]とT'[i]の論理積を求める第2の乗算部とを有する。さらに、第i番目の秘密計算装置は、前記第1の乗算部が求めた論理積と、前記第2の乗算部が求めた論理積との差を求める第1の減算部を有する。
本発明の第2の態様に係る秘密計算装置は、上記の秘密計算システムに含まれる一の秘密計算装置である。
本発明の第3の態様に係る秘密計算方法は、3台の秘密計算装置を用いた秘密計算方法である。秘密計算方法は、第i番目の秘密計算装置(i = 1, 2, 3)が、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持するステップを含む。また、秘密計算方法は、S[i]とS'[i]の論理積を第1の論理積として求めるステップと、T[i]とT'[i]の論理積を第2の論理積として求めるステップとを含む。さらに、秘密計算方法は、前記第1の論理積と、前記第2の論理積との差を求めるステップを含む。
本発明に係る秘密計算システム、秘密計算装置、および、秘密計算方法によると、加算が容易であり乗算に必要な通信と計算の量が少ない秘密計算を実現することができる。
一実施形態に係る秘密計算システムの構成を例示するブロック図である。 第1の実施形態に係る秘密計算システムの構成を示す図である。 第1の実施形態に係る秘密計算システムにおける秘密計算装置の構成を例示するブロック図である。 第2の実施形態に係る秘密計算システムにおける秘密計算装置の構成を例示するブロック図である。
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
図1は、一実施形態に係る秘密計算システム100の構成を例示するブロック図である。図1を参照すると、秘密計算システム100は、3台の秘密計算装置10、20、30を備えている。ここでは、秘密計算装置10、20、30を、それぞれ、第1番目〜第3番目の秘密計算装置とする。第i番目の秘密計算装置(i = 1, 2, 3)は、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持する保持部12と、S[i]とS'[i]の論理積を求める第1の乗算部14と、T[i]とT'[i]の論理積を求める第2の乗算部16と、第1の乗算部14が求めた論理積と、第2の乗算部16が求めた論理積との差を求める第1の減算部18と、を有する。
また、R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q, R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、分散値は、
(S[1], T[1]) = (R[1], R[3] - W mod Q),
(S[2], T[2]) = (R[2], R[1] - W mod Q),
(S[3], T[3]) = (R[3], R[2] - W mod Q),
(S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q),
(S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q),
(S'[3], T'[3]) = (R'[3], R'[2] - W' mod Q)とすることができる。ここで、Qは3と互いに素な整数(例えば、nを自然数としてQ = 2^n)である。
かかる秘密計算システムによると、第i番目の装置は第1、第2の乗算部および第1の減算部を用いて局所積要素U[i] = (T[i]・T’[i] - S[i]・S’[i])/3 mod Qを求めることができる。ここで、U[1] + U[2] + U[3] = WW’ mod Qであるから、3台の装置が協力することによって論理積W" = W・W’ mod Qを復元することができる。一実施形態の秘密計算システムによると、装置間で通信を行うことなく加算の計算が可能となり、少ない計算量で論理積の計算が可能となる。
<実施形態1>
次に、第1の実施形態に係る秘密計算システムについて、図面を参照して説明する。
図2は、本実施形態に係る秘密計算システム100の構成を例示する図である。図2を参照すると、秘密計算システム100は、3台の秘密計算装置10、20、30を備えている。
図3は、秘密計算装置10の構成を例示するブロック図である。秘密計算装置20、30も、秘密計算装置10と同様の構成を有する。図3を参照すると、秘密計算装置10は、局所乗算部36、積再分配部38、および、通信部24を備えている。局所乗算部36は、保持部12、乗算部14、16、および、減算部18を備えている。一方、積再分配部38は、加算部22および加減算部26を備えている。
秘密計算装置10、20、30は、値Wを分散して保持する。1以上の整数であるnに対して、R[1] + R[2] + R[3] = 0 mod Qなる3つのランダムに選ばれた数R[1], R[2], R[3]を用いて、秘密計算装置10の保持部12は(R[1], R[3] - W mod Q)を保持する。同様に、秘密計算装置20の保持部12は(R[2], R[1] - W mod Q)を保持し、秘密計算装置30の保持部12は(R[3], R[2] - W mod Q)を保持する。ここで、Qは3と互いに素な整数(例えば、nを自然数としてQ = 2^n)である。
3台の秘密計算装置10、20、30のうちの2台が協力するとWを復元することができる。一般性を失うことなく、秘密計算装置10と秘密計算装置20が協力する場合に、かかる復元方法を説明することができる。すなわち、秘密計算装置10の保持部12が保持するR[1]と、秘密計算装置20の保持部12が保持するR[1] - W mod Qを用いて、W = R[1] - (R[1] - W) mod Qを計算することで、値Wを復元することができる。
(通信を伴わない加算)
次に、秘密計算装置10、20、30の間での通信を行うことなく、加算が可能であることを説明する。ビットWとW’がそれぞれ秘密計算装置10、20、30に分散されているときに、分散されたままで、これらの加算を計算するには、以下のようにする。
ここで、ビットWは、次のように秘密計算装置10、20、30に分散されているものとする。すなわち、R[1] + R[2] + R[3] = 0 mod 2を満たす3つのランダムに選ばれたビットR[1], R[2], R[3]を用いて、秘密計算装置10の保持部12は(S[1], T[1]) := (R[1], W + R[2] mod 2)を保持する。同様に、秘密計算装置20の保持部12は(S[2], T[2]) := (R[2], W + R[3] mod 2)を保持し, 秘密計算装置30の保持部12は(S[3], T[3]) = (R[3], W + R[1] mod 2) を保持する。
一方、ビットW'は次のように秘密計算装置10、20、30に分散されているものとする。すなわち、R’[1] + R’[2] + R’[3] = 0 mod 2なる3つのランダムに選ばれたビットR'[1], R'[2], R'[3]を用いて、秘密計算装置10の保持部12は(S’[1], T’[1]) =(R’[1], W’ + R’[2] mod 2)を保持する。同様に、秘密計算装置20の保持部12は(S’[2], T’[2]) := (R’[2], W’ + R’[3] mod 2)を保持し, 秘密計算装置30の保持部12は(S’[3], T’[3]) := (R’[3], W’ + R’[1] mod 2)を保持するものとする。
このとき、秘密計算装置10は(S"[1], T"[1]) = (S[1] + S’[1] mod 2, T[1] + T’[1] mod 2)を計算する。同様に、秘密計算装置20は(S"[2], T"[2]) = (S[2] + S’[2] mod 2, T[2] + T’[2] mod 2)を計算する。また、秘密計算装置30は(S"[3], T"[3]) = (S[3] + S’[3] mod 2, T[3] + T’[3] mod 2)を計算する。秘密計算装置10、20、30は、それぞれの計算結果をもってW" = W + W’ mod 2を分散して保持したとする。これらの結果から、元のWまたはW’と同様に、W"を復元することが可能となる。したがって、秘密計算装置10、20、30の間で通信を行うことなく、加算を計算することができる。
(否定)
次に、否定の計算について説明する。ビットWが装置10、20、30に分散されているときに、分散されたままでビットWの否定を計算するには、次のようにする。
ビットWは、次のように秘密計算装置10、20、30に分散されているものとする。すなわち、R[1] + R[2] + R[3] = 0 mod 2なる3つのランダムに選ばれたビットR[1], R[2], R[3]を用いて、秘密計算装置10の保持部12は(S[1], T[1]) := (R[1], W + R[2] mod 2)を保持する。同様に、秘密計算装置20の保持部12は(S[2], T[2]) := (R[2], W + R[3] mod 2)を保持する。また、秘密計算装置30の保持部12は(S[3], T[3]) = (R[3], W + R[1] mod 2)を保持する。
このとき、秘密計算装置10は(S’[1], T’[1]) = (S[1], T[1] + 1 mod 2)を計算する。同様に、秘密計算装置20は(S’[2], T’[2]) = (S[2], T[2] + 1 mod 2)を計算する。また、秘密計算装置30は(S’[3], T’[3]) = (S[3], T[3] + 1 mod 2)を計算する。秘密計算装置10、20、30は、それぞれの計算結果をもってW’ = W + 1 mod 2を分散して保持したとする。これらの結果から、元のWと同様にW’を復元することができる。したがって、秘密計算装置10、20、30の間で通信を行うことなく、否定を計算することができる。
(論理積)
次に、論理積の計算について説明する。論理積の計算において、図3に示した局所乗算部36および積再分配部38を使用する。ビットWとW’がそれぞれ、秘密計算装置10、20、30に分散されているときに、分散されたままでこれらの論理積W" = W・W' mod Qを計算するには、次のようにする。
ビットWは、次のように秘密計算装置10、20、30に分散されているものとする。すなわち。R[1] + R[2] + R[3] = 0 mod Qなる3つのランダムに選ばれた数R[1], R[2], R[3]を用いて、秘密計算装置10の保持部12は(S[1], T[1]) :=(R[1], R[3] - W mod Q)を保持する。同様に、秘密計算装置20の保持部12は(S[2], T[2]) := (R[2], R[1] - W mod 2)を保持する。また、秘密計算装置30の保持部12は(S[3], T[3]) = (R[3], R[2] - W mod Q)を保持する。
一方、ビットW'は次のように秘密計算装置10、20、30に分散されているものとする。すなわち、R’[1] + R’[2] + R’[3] = 0 mod Q なる3つのランダムに選ばれた数R'[1], R'[2], R'[3]を用いて、秘密計算装置10の保持部12は(S’[1], T’[1]) = (R’[1], R’[3] - W’ mod Q)を保持する。同様に、秘密計算装置20の保持部12は(S’[2], T’[2]) := (R’[2], R’[1] - W’ mod Q)を保持する。また、秘密計算装置30の保持部12は(S’[3], T’[3]) := (R’[3], R’[2] - W’ mod Q)を保持する。
このとき、秘密計算装置10の局所乗算部36において、乗算部14は、保持部12が保持する第1入力第1要素S[1]と第2入力第1要素S’[1]の論理積を求めて減算部18に出力する。一方、乗算部16は、第1入力第2要素T[2]と第2入力第2要素T’[1]の論理積を求めて減算部18に出力する。減算部18は、乗算部14、16からの出力に基づいて、局所積要素U[1] = (T[1]・T’[1] - S[1]・S’[1])/3 mod Qを算出する。
同様に、秘密計算装置20の局所乗算部36は局所積要素U[2] = (T[2]・T’[2]-S[2]・S’[2])/3 mod Qを算出する。また、秘密計算装置30の局所乗算部36は局所積要素U[3] = (T[3]・T’[3] - S[3]・S’[3])/3 mod Qを算出する。秘密計算装置10、20、30は、それぞれの計算結果をもってW" = W・W’ mod Qを分散して保持したとする。
このとき、各秘密計算装置が算出した局所積要素のみから、元のWあるいはW’と同様に、論理積W"も復元することはできない。各秘密計算装置が算出した局所積要素から直接論理積W"を復元するには、W" = U[1] + U[2] + U[3] mod Qと計算すればよい。論理積W"の復元が可能であることは、次の計算によって示される。
U[1] + U[2] + U[3]
= {(T[1]・T’[1] - S[1]・S’[1]) + (T[2]・T’[2] - S[2]・S’[2]) + (T[3]・T’[3] - S[3]・S’[3])}/3 mod Q
= {-S[1]S’[1] + (R[3] - W)(R’[3] - W’) - S[2]S’[2] + (R[1] - W)(R’[1] - W’) - S[3]S’[3] + (R[2] - W)(R’[2] - W’)}/3 mod Q
= {-R[1]R’[1] + R[3]R’[3] - R[3]W’ - W R’[3] + WW’
- R[2]R’[2] + R[1]R’[1] - R[1]W’ - W R’[1] + WW’
- R[3]R’[3] + R[2]R’[2] - R[2]W’ - W R’[2] + WW’}/3 mod Q
= 3WW’/3 mod Q
= WW’ mod Q
なお、Qと3は互いに素であることから、mod Q上での3の逆数は必ず計算することができる。
以上より、(U[1], U[2], U[3])はW・W’を3つの値に分散したものとなる。同様に、(U’[1],U’[2],U’[3])がZ = U’[1] + U’[2] + U’[3] mod QなるZを3つの値に分散したものであるとき、W・W’ + Z mod Qは、(U[1] + U’[1] mod Q, U[2] + U’[2] mod Q, U[3] + U’[3] mod Q)の3つの値に分散される。秘密計算装置10がU[1]とU’[1]を保持し、秘密計算装置20がU[2]とU’[2]を保持し、秘密計算装置30がU[3]とU’[3]を保持しているとする。この場合、新たに分散された値は、それぞれの秘密計算装置が他の秘密計算装置と通信することなく計算することができる。すなわち、ある関数がmodQ上の和と積で構成されている場合、次の積の入力となるまでの間、何度でも互いに通信することなく和の計算を実行することができる。積を計算した結果を用いた積を計算する場合、次の処理を実施すればよい。
論理積W"をWやW’と同様の形式で3台の秘密計算装置に分散するには、秘密計算装置10、20、30の積再分配部38を用いる。
ここでは、V[1] + V[2] + V[3] = 0 mod Qとなるランダムに選ばれたマスクV[1], V[2], V[3]が存在し、秘密計算装置10にはマスクV[1]、秘密計算装置20にはマスクV[2]、秘密計算装置30にはマスクV[3]が予め渡されているものとする。
秘密計算装置10、20、30は、渡されたマスクV[i]を積再分配部38に入力する。秘密計算装置30の加算部22はX[3] = U[3] + V[3] mod Qのように局所積要素U[3]とマスクV[3]の和をとり、結果を第1和X[3]とする。また、秘密計算装置30の通信部24は、求めた第1和X[3]を秘密計算装置20に送信する。同様に、秘密計算装置20の加算部22は第1和X[2] = U[2] + V[2] mod n^2を生成し、生成した第1和X[2]を秘密計算装置20の通信部24を介して秘密計算装置10に送信する。また、秘密計算装置10の加算部22は第1和X[1] = U[1] + V[1] mod Qを生成し、生成した第1和X[1]を秘密通信装置10の通信部24を介して秘密計算装置30に送信する。
秘密計算装置10、20、30は、それぞれ、通信部24から第1和X[2], X[3], X[1]を受け取り、受け取った第1和X[2], X[3], X[1]を加減算部26に出力する。秘密計算装置10、20、30は、それぞれの加算部22が算出した第1和X[1], X[2], X[3]と、受信した第1和X[2], X[3], X[1]とを用いて、出力第1要素S"[i]と出力第2要素T"[i]を算出する。具体的には、秘密計算装置10の加減算部26は(S"[1], T"[1]) = (X[1] - X[2] mod Q, - 2X[1] - X[2] mod Q)を算出する。同様に、秘密計算装置20の加減算部26は(S"[2], T"[2]) = (X[2] - X[3] mod Q, - 2X[2] - X[3] mod Q)を算出する。また、秘密計算装置30の加減算部26は(S"[3], T"[3]) = (X[3] - X[1] mod Q, -2X[3] - X[1] mod Q)を算出する。
WとW’と同様に論理積W"の値を2台の秘密計算装置から復元できることは、一般性を失うことなく、秘密計算装置10と秘密計算装置20が協力する場合の復元方法に基づいて説明することができる。すなわち、秘密計算装置10からの出力第1要素S"[1]と、秘密計算装置20からの出力第2要素T"[2]を用いて、次のように論理積W"を復元することができる。
W・W’ = S"[1] - T"[2] mod Q
= U[1] + V[1] + U[2] + U[3] + V[2] + V[3] mod Q
= U[1] + U[2] + U[3] mod Q
= W"
また、以下の計算から、論理積W"がWやW’と同様に分散されていることが分かる。
S"[1] + S"[2] + S"[3] mod Q
= X[1] - X[2] + X[2] - X[3] + X[3] - X[1] mod Q
= 0 mod Q
(効果)
本実施形態に係る秘密計算システムを用いれば、3つの秘密計算装置に分散されて保持された2つの値のmod Q上の和を、これら秘密計算装置が互いに通信することなく計算し、3つの秘密計算装置に分散された形で保持することが可能となる。ここで、和の計算結果を保持する方法は、最初に2つのそれぞれのビットを保持する方法と同一である。
また、本実施形態の秘密計算システムによると、3つの秘密計算装置に分散されて保持された2つの値のmod Q上の積を、これら秘密計算装置が互いに通信しつつ計算することで、3つの秘密計算装置に分散された形で保持することが可能となる。このときに発生する通信量は全体として3nビットにすぎず、非特許文献2に記載された2つの装置間の秘密計算で必要とされる通信量と比較して格段に少ない。ここで、積の計算結果の値を保持する方法も、最初に2つ値をそれぞれ保持していたときの方法と同一である。
このように積と和との両方に関して、計算結果が計算の前のそれぞれの値の保持方法と同一の方法で保持される。これにより、計算結果に対して、さらに積や和の演算を続けることが可能となる。すなわち、本実施形態の秘密計算システムによると、mod Q上の和と積で記述される任意の関数を、データを分散したまま、3つの秘密計算装置を用いて少ない通信量で計算することが可能となる。
以上説明したように、本実施形態によれば、複数の秘密計算装置にデータを分散して各秘密計算装置にデータを隠ぺいしたままmod Q上の任意の多項式を計算することが可能になる。また、かかる計算に必要とされる通信量と計算量を関連技術と比較して削減することができる。かかる秘密計算システムによると、秘密計算装置上で秘密のデータを扱いつつ何らかのサービスを提供するときに、秘密計算装置の管理者がデータを盗み出すことを防止することにも寄与する。なぜなら、複数の秘密計算装置に対して異なる管理者を割り当てることにより、すべての秘密計算装置中のデータを参照することができる管理者が存在しなくなり、管理者を通じたデータの盗み出しを防止することができるからである。
<実施形態2>
次に、第2の実施形態に係る秘密計算システムについて、図面を参照して説明する。図4は、本実施形態の秘密計算システムにおける秘密計算装置10の構成を例示するブロック図である。秘密計算装置20、30も、秘密計算装置10と同様の構成を有する。
図4を参照すると、本実施形態では、秘密計算装置10は、第1の実施形態の秘密計算装置10(図3)に対して、さらにマスク生成部42を備えている。マスク生成部42は、鍵生成部28、疑似乱数生成部32、および、減算部34を備えている。なお、本実施形態における局所乗算部36および積再分配部38の動作は、第1の実施形態におけるこれらの要素の動作と同様であるから、説明を省略する。
第1の実施形態では、秘密計算装置10、20、30がそれぞれランダムなビットV[1], V[2], V[3]をマスクとして受け取り、V[1] + V[2] + V[3] = 0 mod Qを満たしているものと仮定した。このようなランダムなビットは、積を1つ計算するたびに一揃い必要とされる。したがって、大量の積を計算する場合、V[i,1] + V[i,2] + V[i,3] = 0 mod Q を満たすV[i,1], V[i,2], V[i,3]を多数のi = 1, …, Nに関して生成しておくことが望ましい。本実施形態では、マスク生成部42を用いることにより、これを実現する。
ここで、Kを安全変数とする。秘密計算装置10、20、30の鍵生成部28は、それぞれ、Kビットの鍵L[1], L[2], L[3]を生成する。秘密計算装置10の通信部24は、生成された鍵L[1]を秘密計算装置30に送信する。同様に、秘密計算装置20の通信部24は生成された鍵L[2]を秘密計算装置10に送信する。また、秘密計算装置30の通信部24は生成された鍵L[3]を秘密計算装置20へ送信する。
秘密計算装置10、20、30の通信部24は、それぞれ、秘密計算装置20、30、10から鍵L[2], L[3], L[1]を受信する。以下では、受け取った鍵を受信鍵と呼ぶ。
疑似乱数生成部32は、疑似乱数生成器PRGを有する。ここで、PRGはKビットの文字列からnNビットの文字列を出力する疑似乱数生成器である。秘密計算装置10の疑似乱数生成部32は鍵L[1]から第1疑似乱数PRG(L[1])を生成するとともに、受信鍵L[2]から第2疑似乱数PRG(L[2])を生成する。減算部34は、第1疑似乱数PRG(L[1])および第2疑似乱数PRG(L[2])をnビット毎に分割して、それぞれmod Q上の差を求めることにより、nビットの乱数をN個生成する。ここで、最初からi番目のnビット乱数をV[i.1]とする(i = 1, …, N)。
同様に、秘密計算装置20は疑似乱数生成部32を用いて第1疑似乱数PRG(L[2])および第2疑似乱数PRG(L[3])を生成し、減算部34を用いて第1疑似乱数PRG(L[2])と第2疑似乱数PRG(L[3])からnビットの乱数N個の列を生成する。ここで、最初からi番目のnビット乱数をV[i.2]とする(i = 1, …, N)。また、秘密計算装置30は疑似乱数生成部32を用いて第1疑似乱数PRG(L[3])および第2疑似乱数PRG(L[1])を生成し、減算部34を用いて第1疑似乱数PRG(L[3])と第2疑似乱数PRG(L[1])から同様にnビットの乱数N個の列を生成する。ここで、最初からi番目のnビット乱数をV[i.3]とする(i = 1, …, N)。
秘密計算装置10のマスク生成部42は、生成した乱数V[i,1] (i = 1, …, N)を積再分配部38の加算部22に供給する。同様に、秘密計算装置20のマスク生成部42は、生成した乱数V[i,2]を積再分配部38の加算部22に供給する。また、秘密計算装置30のマスク生成部42は、生成した乱数V[i,3]を積再分配部38の加算部22に供給する。
本実施形態に係る秘密計算システムによると、第1の実施形態に係る秘密計算システムと同様の効果がもたらされる。さらに、本実施形態の秘密計算システムによると、マスク生成部によって生成されたマスクを利用することにより、大量の積の秘密計算を高速に実行することが可能となる。
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の態様に係る秘密計算システムのとおりである。
[形態2]
R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q(Qは3と互いに素な整数), R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、前記分散値は、
(S[1], T[1]) = (R[1], R[3] - W mod Q),
(S[2], T[2]) = (R[2], R[1] - W mod Q),
(S[3], T[3]) = (R[3], R[2] - W mod Q),
(S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q),
(S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q),
(S'[3], T'[3]) = (R'[3], R'[2] - W' mod Q)である、
形態1に記載の秘密計算システム。
[形態3]
前記保持部は、前記第1および第2の乗算部ならびに前記第1の減算部を用いて算出された局所積要素U[i] = (S[i]・S'[i] - T[i]・T'[i])/3 mod Q(Qは3と互いに素な整数)を保持し、
前記第i番目の秘密計算装置(i = 1, 2, 3)は、それぞれ、V[1], V[2], V[3]を、V[1] + V[2] + V[3] = 0 mod Qを満たすnビットの乱数とした場合、
U[i]とV[i]の和X[i]を求める加算部と、
前記加算部によって算出された和X[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するとともに、第(i mod 3 + 1)番目の秘密計算装置の前記加算部によって算出された和X[i mod 3 + 1]を受信する通信部と、
前記和X[i]および前記和X[i mod 3 + 1]を用いた加減算に基づいて、積W・W'の分散値(S"[i], T"[i])を算出する加減算部と、を備える、
形態1または2に記載の秘密計算システム。
[形態4]
前記分散値は(S"[i], T"[i]) = (X[i] - X[i mod 3 + 1] mode Q, -2X[i] - X[i mod 3 + 1])である、
形態3に記載の秘密計算システム。
[形態5]
前記第i番目の秘密計算装置(i = 1, 2, 3)は、それぞれ、
Kビット(Kは自然数)の鍵L[i]を生成する鍵生成部と、
Kビットの鍵からnNビット(Nは自然数)の乱数を生成する疑似乱数生成部と、
nNビットの2つの数からnビットごとに抽出してmod Q(Qは3と互いに素な整数)上の差を算出する第2の減算部と、を備え、
前記通信部は、前記鍵L[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するとともに、第(i mod 3 + 1)番目の秘密計算装置の前記鍵生成部によって算出された鍵L[i mod 3 + 1]を受信し、
前記疑似乱数生成部は、前記鍵L[i]に基づいて第1の疑似乱数を生成するとともに、前記鍵L[i mod 3 + 1]に基づいて第2の疑似乱数を生成し、
前記第2の減算部は、前記第1の疑似乱数および前記第2の疑似乱数をnビットごとに抽出してmod Q上の差を算出する、
形態1ないし4のいずれか一に記載の秘密計算システム。
[形態6]
前記i番目の秘密計算装置(i = 1, 2, 3)の前記加算部は、前記第2の減算部によって算出された値を前記乱数V[i]として使用する、
形態5に記載の秘密計算システム。
[形態7]
上記第2の態様に係る秘密計算装置のとおりである。
[形態8]
上記第3の態様に係る秘密計算方法のとおりである。
[形態9]
R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q(Qは3と互いに素な整数), R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、前記分散値は、
(S[1], T[1]) = (R[1], R[3] - W mod Q),
(S[2], T[2]) = (R[2], R[1] - W mod Q),
(S[3], T[3]) = (R[3], R[2] - W mod Q),
(S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q),
(S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q),
(S'[3], T'[3]) = (R'[3], R'[2] - W' mod Q)である、
形態8に記載の秘密計算方法。
[形態10]
前記第i番目の秘密計算装置(i = 1, 2, 3)が、それぞれ、前記求めた差を用いて算出された局所積要素U[i] = (S[i]・S'[i] - T[i]・T'[i])/3 mod Q(Qは3と互いに素な整数)を保持するステップと、
V[1], V[2], V[3]を、V[1] + V[2] + V[3] = 0 mod Qを満たすnビットの乱数とした場合、
U[i]とV[i]の和X[i]を求めるステップと、
前記算出された和X[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するステップと、
第(i mod 3 + 1)番目の秘密計算装置によって算出された和X[i mod 3 + 1]を受信するステップと、
前記和X[i]および前記和X[i mod 3 + 1]を用いた加減算に基づいて、積W・W'の分散値(S"[i], T"[i])を算出するステップと、を含む、
形態8または9に記載の秘密計算方法。
[形態11]
前記分散値は(S"[i], T"[i]) = (X[i] - X[i mod 3 + 1] mode Q, -2X[i] - X[i mod 3 + 1])である、
形態10に記載の秘密計算方法。
なお、上記非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10、20、30 秘密計算装置
12 保持部
14、16 乗算部
18、34 減算部
22 加算部
24 通信部
26 加減算部
28 鍵生成部
32 擬似乱数生成部
36 局所乗算部
38 積再分配部
42 マスク生成部
100 秘密計算システム

Claims (10)

  1. 3台の秘密計算装置を備えた秘密計算システムであって、
    第i番目の秘密計算装置(i = 1, 2, 3)は、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持する保持部と、
    S[i]とS'[i]の論理積を求める第1の乗算部と、
    T[i]とT'[i]の論理積を求める第2の乗算部と、
    前記第1の乗算部が求めた論理積と、前記第2の乗算部が求めた論理積との差を求める第1の減算部と、を有する、
    ことを特徴とする秘密計算システム。
  2. R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q(Qは3と互いに素な整数である), R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、前記分散値は、
    (S[1], T[1]) = (R[1], R[3] - W mod Q),
    (S[2], T[2]) = (R[2], R[1] - W mod Q),
    (S[3], T[3]) = (R[3], R[2] - W mod Q),
    (S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q),
    (S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q),
    (S'[3], T'[3]) = (R'[3], R'[2] - W' mod Q)である、
    請求項1に記載の秘密計算システム。
  3. 前記保持部は、前記第1および第2の乗算部ならびに前記第1の減算部を用いて算出された局所積要素U[i] = (S[i]・S'[i] - T[i]・T'[i])/3 mod Q(Qは3と互いに素な整数)を保持し、
    前記第i番目の秘密計算装置(i = 1, 2, 3)は、それぞれ、V[1], V[2], V[3]を、V[1] + V[2] + V[3] = 0 mod Qを満たすnビットの乱数とした場合、
    U[i]とV[i]の和X[i]を求める加算部と、
    前記加算部によって算出された和X[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するとともに、第(i mod 3 + 1)番目の秘密計算装置の前記加算部によって算出された和X[i mod 3 + 1]を受信する通信部と、
    前記和X[i]および前記和X[i mod 3 + 1]を用いた加減算に基づいて、積W・W'の分散値(S"[i], T"[i])を算出する加減算部と、を備える、
    請求項1または2に記載の秘密計算システム。
  4. 前記分散値は(S"[i], T"[i]) = (X[i] - X[i mod 3 + 1] mode Q, -2X[i] - X[i mod 3 + 1])である、
    請求項3に記載の秘密計算システム。
  5. 前記第i番目の秘密計算装置(i = 1, 2, 3)は、それぞれ、
    Kビット(Kは自然数)の鍵L[i]を生成する鍵生成部と、
    Kビットの鍵からnNビット(Nは自然数)の乱数を生成する疑似乱数生成部と、
    nNビットの2つの数からnビットごとに抽出してmod Q(Qは3と互いに素な整数)上の差を算出する第2の減算部と、を備え、
    前記通信部は、前記鍵L[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するとともに、第(i mod 3 + 1)番目の秘密計算装置の前記鍵生成部によって算出された鍵L[i mod 3 + 1]を受信し、
    前記疑似乱数生成部は、前記鍵L[i]に基づいて第1の疑似乱数を生成するとともに、前記鍵L[i mod 3 + 1]に基づいて第2の疑似乱数を生成し、
    前記第2の減算部は、前記第1の疑似乱数および前記第2の疑似乱数をnビットごとに抽出してmod Q上の差を算出する、
    請求項1ないし4のいずれか1項に記載の秘密計算システム。
  6. 前記i番目の秘密計算装置(i = 1, 2, 3)の前記加算部は、前記第2の減算部によって算出された値を前記乱数V[i]として使用する、
    請求項5に記載の秘密計算システム。
  7. 請求項1ないし6のいずれか1項に記載の秘密計算システムに含まれる一の秘密計算装置。
  8. 3台の秘密計算装置を用いた秘密計算方法であって、
    第i番目の秘密計算装置(i = 1, 2, 3)が、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持するステップと、
    S[i]とS'[i]の論理積を第1の論理積として求めるステップと、
    T[i]とT'[i]の論理積を第2の論理積として求めるステップと、
    前記第1の論理積と、前記第2の論理積との差を求めるステップと、を含む、
    ことを特徴とする秘密計算方法。
  9. R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q(Qは3と互いに素な整数), R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、前記分散値は、
    (S[1], T[1]) = (R[1], R[3] - W mod Q),
    (S[2], T[2]) = (R[2], R[1] - W mod Q),
    (S[3], T[3]) = (R[3], R[2] - W mod Q),
    (S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q),
    (S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q),
    (S'[3], T'[3]) = (R'[3], R'[2] - W' mod Q)である、
    請求項8に記載の秘密計算方法。
  10. 前記第i番目の秘密計算装置(i = 1, 2, 3)が、それぞれ、前記求めた差を用いて算出された局所積要素U[i] = (S[i]・S'[i] - T[i]・T'[i])/3 mod Q(Qは3と互いに素な整数)を保持するステップと、
    V[1], V[2], V[3]を、V[1] + V[2] + V[3] = 0 mod Qを満たすnビットの乱数とした場合、
    U[i]とV[i]の和X[i]を求めるステップと、
    前記算出された和X[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するステップと、
    第(i mod 3 + 1)番目の秘密計算装置によって算出された和X[i mod 3 + 1]を受信するステップと、
    前記和X[i]および前記和X[i mod 3 + 1]を用いた加減算に基づいて、積W・W'の分散値(S"[i], T"[i])を算出するステップと、を含む、
    請求項8または9に記載の秘密計算方法。
JP2017538016A 2015-08-31 2016-08-29 秘密計算システム、秘密計算装置、および、秘密計算方法 Active JP6607257B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015169992 2015-08-31
JP2015169992 2015-08-31
PCT/JP2016/075186 WO2017038761A1 (ja) 2015-08-31 2016-08-29 秘密計算システム、秘密計算装置、および、秘密計算方法

Publications (2)

Publication Number Publication Date
JPWO2017038761A1 JPWO2017038761A1 (ja) 2018-07-12
JP6607257B2 true JP6607257B2 (ja) 2019-11-20

Family

ID=58187571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017538016A Active JP6607257B2 (ja) 2015-08-31 2016-08-29 秘密計算システム、秘密計算装置、および、秘密計算方法

Country Status (4)

Country Link
US (1) US10924270B2 (ja)
EP (1) EP3346455B1 (ja)
JP (1) JP6607257B2 (ja)
WO (1) WO2017038761A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6844897B2 (ja) * 2017-05-18 2021-03-17 日本電気株式会社 ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム
JP7031682B2 (ja) 2017-10-31 2022-03-08 日本電気株式会社 秘密計算装置、システム、方法、プログラム
WO2021064996A1 (ja) * 2019-10-04 2021-04-08 日本電気株式会社 秘密計算システム、秘密計算サーバ、補助サーバ、秘密計算方法及びプログラム
JP7396373B2 (ja) 2020-01-20 2023-12-12 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2242032B1 (en) 2008-01-21 2013-10-02 Nippon Telegraph and Telephone Corporation Secure computing system, secure computing method, secure computing apparatus and program therefor
EP2507708B1 (en) * 2009-12-04 2019-03-27 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
JP5400705B2 (ja) 2010-02-24 2014-01-29 日本電信電話株式会社 秘密計算システム、秘密計算方法、計算装置
US8700906B2 (en) * 2011-01-14 2014-04-15 Microsoft Corporation Secure computing in multi-tenant data centers
JP5450839B2 (ja) 2011-01-24 2014-03-26 日本電信電話株式会社 秘匿積和計算方法、秘匿積和計算システム、計算装置、及びそれらのプログラム
US9077539B2 (en) 2011-03-09 2015-07-07 Microsoft Technology Licensing, Llc Server-aided multi-party protocols
JP5531154B2 (ja) 2011-03-10 2014-06-25 日本電信電話株式会社 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム
WO2014112548A1 (ja) * 2013-01-17 2014-07-24 日本電信電話株式会社 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
US8977847B1 (en) * 2013-03-13 2015-03-10 Emc Corporation Distributed challenge-response authentication

Also Published As

Publication number Publication date
EP3346455A4 (en) 2019-05-22
EP3346455A1 (en) 2018-07-11
JPWO2017038761A1 (ja) 2018-07-12
US20180270057A1 (en) 2018-09-20
WO2017038761A1 (ja) 2017-03-09
EP3346455B1 (en) 2020-09-30
US10924270B2 (en) 2021-02-16

Similar Documents

Publication Publication Date Title
Wang et al. Cryptanalysis of a symmetric fully homomorphic encryption scheme
Almaiah et al. A new hybrid text encryption approach over mobile ad hoc network
JP6493697B2 (ja) 秘密計算装置、方法、記録媒体、および秘密計算システム
JP6607257B2 (ja) 秘密計算システム、秘密計算装置、および、秘密計算方法
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
US20220006615A1 (en) Computer-implemented system and method for distributing shares of digitally signed data
WO2016088453A1 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JP2019528028A (ja) 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム
WO2013021360A1 (en) Encryption and decryption method
CN115694777A (zh) 基于同态加密的隐私集合求交方法、装置、设备及介质
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
US20190294417A1 (en) Method and system for deriving deterministic prime number
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP6053983B2 (ja) 暗号システム、署名システム、暗号プログラム及び署名プログラム
WO2018216512A1 (ja) 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
JP7173170B2 (ja) 情報処理装置、秘密計算方法及びプログラム
WO2020165931A1 (ja) 情報処理装置、秘密計算方法及びプログラム
CN105099693B (zh) 一种传输方法及传输装置
WO2019111319A1 (ja) 秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体
JP2007124610A (ja) 秘密情報分散装置及び秘密情報復元装置及び方法及びプログラム
Anand et al. Real-time symmetric cryptography using quaternion julia set
JP2000035757A (ja) 暗号化/復号化装置と公開鍵暗号化システムおよび暗号化/復号化方法と公開鍵暗号化方法
Shaw et al. An Approach for Secured Transmission of Data using Fractal based Chaos
Sharma et al. TEXCEL: text encryption with elliptic curve cryptography for enhanced security
Sethi et al. Multi-Way encryption using elliptic curve cryptography

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190702

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191007

R150 Certificate of patent or registration of utility model

Ref document number: 6607257

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150