JP6693508B2 - 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム - Google Patents
秘密計算システム、サーバ装置、秘密計算方法、および、プログラム Download PDFInfo
- Publication number
- JP6693508B2 JP6693508B2 JP2017510254A JP2017510254A JP6693508B2 JP 6693508 B2 JP6693508 B2 JP 6693508B2 JP 2017510254 A JP2017510254 A JP 2017510254A JP 2017510254 A JP2017510254 A JP 2017510254A JP 6693508 B2 JP6693508 B2 JP 6693508B2
- Authority
- JP
- Japan
- Prior art keywords
- share
- calculation
- secret
- finite field
- shares
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Description
本発明は、日本国特許出願:特願2015−077064号(2015年4月3日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、秘密計算システム、サーバ装置、秘密計算方法、および、プログラムに関し、特にマルチパーティ計算手法に基づく秘密計算システム、サーバ装置、秘密計算方法、および、プログラムに関する。
秘密分散方式(Share, Reconst)は、ユーザが保有している秘密aを複数のサーバ装置1, …, Nでシェアして持つためのプロトコルであり、秘密aからシェアを作るシェア生成関数Shareと、シェアから秘密aを復元する復元関数Reconstから成る。非特許文献1に記載された方式をはじめとして、秘密aおよびシェアは有限体の元であることが多い。本発明でも、秘密aおよびシェアが有限体の元である状況を考える。以下では、かかる状況における秘密分散法式について説明する。
・シェア生成関数Shareは、秘密aとサーバ装置の台数Nと有限体F(ないし、有限体Fに関する情報)を入力として受け取り、秘密aのシェアs[1], …, s[N]を出力する。
・復元関数Reconstは、シェアs[1], …, s[N]の一部または全部と有限体F(ないし、有限体Fに関する情報)を入力として受け付け、秘密aまたは「復元失敗」を意味するデータを出力する。
・S ∈ AccessかつS ⊂ Tであれば、T ∈ Access.
・s[1], …, s[N]をShare(a, N, F)の出力、S = {i_1, …, i_v}を{1, …, N}の部分集合とする。この場合、S ∈ Accessであるとき、Reconst(s[i_1], .., s[i_v], F)はaを出力する。一方、S ∈ Accessでないとき、s[i_1], .., s[i_v]からaのいかなる部分情報も知ることができない。
次に、非特許文献1においてShamirによって提案された秘密分散法(以下、「Shamir秘密分散法」という。)について説明する。Shamir秘密分散法では、「しきい値」という自然数Kを事前に決めて固定する。なお、しきい値Kはサーバ装置の台数N以下とする必要がある。
Access = {S ⊂ {1, …, N} | SはK個以上元を含む}
である。よって、Shamir秘密分散法では、サーバ装置1, ..., NのうちのK台以上が集まれば、秘密を復元することができる。一方、Shamir秘密分散法では、K台未満のサーバ装置が集まっても、秘密に関する情報を一切得ることができない。
f(X) = a + Σk = 1, …, K - 1r[k]Xk
により定義し、
s[i] = f(i)
を計算し、s[1], …, s[N]をそれぞれサーバ装置1, ..., Nのシェアとして返す。
・ShamirReconst(s[i_1], …, s[i_v], K, N, F) : vがK以上の場合、任意のu = 1, …, vに対して、f(i_u) = s[i_u]を満たす有限体F上のK - 1次多項式f(X)を求めてf(0)を出力する。一方、vがK未満の場合、秘密を復元できない旨のメッセージを返す。
MPCプロトコルとは、何らかのアルゴリズムを複数のサーバ装置でセキュアに計算する手段のことである。本発明では、MPCプロトコルとして、「乗法剰余MPCプロトコル」および「乱数生成MPCプロトコル」を用いる。
・1〜Xラウンド目でb[1] = a[1] AND a[2], b[2] = a[3] AND a[4], b[3] = a[5] AND a[6], b[4] = a[7] AND a[8]をマルチパーティ計算し、
・X+1〜2Xラウンド目でc[1] = b[1] AND b[2], c[2] = b[3] AND b[4]をマルチパーティ計算し、
・2X+1〜3Xラウンド目でc[1] AND c[2]をマルチパーティ計算する。
したがって、AND計算において、合計3X = (log2 8)・Xラウンドを要する。
φ(a, b) = 1(bがaの部分ビット列である場合)、
φ(a, b) = 0(それ以外の場合)
を満たすものを採用すればよい。
∃ j (b[j + 1] = a[j + 1]) AND … AND (b[j + n] = a[j + n])
を満たすことと同値である。したがって、部分ビット列であるか否かを判定するには、n個のデータのANDをマルチパーティ計算する必要があり、多数のラウンド数を要する。
はじめに、本発明の概要(基本的なアイデア)について説明する。
・足し算を計算するマルチパーティ計算と掛け算を計算するマルチパーティ計算を作る。
・ANDを計算するマルチパーティ計算、NOTを計算するマルチパーティ計算、および、ORを計算するマルチパーティ計算を、上述の足し算と掛け算のマルチパーティ計算を組み合わせて作る。
・任意の関数はAND演算子とNOT演算子とOR演算子を用いて表現できるので、上述のAND, OR, NOTのマルチパーティ計算を組み合わせて実現する。
1 - aq - 1
のシェアをマルチパーティ計算すればよい。ここで、qは有限体Fの位数である。
Σj = 1, …, J s[j, n]u[j, n] ∈F
を計算する。ここで、(u[j, n])n = 1, …, Nは有限体F上の何らかの乱数r[j]のシェアである。
第1の解決方法は、次のとおりである。すなわち、上述のジレンマを解決するため、有限体Fの位数qを小さな値としたまま、代わりに、1つの値aをλ回秘密分散することでλ個のシェアの組(s[n, 1])n = 1, … N、…, (s[n, λ])n = 1, … Nを生成し、サーバ装置nは(s[n, 1], …, s[n, λ])を保持する。ここで、λはセキュリティ・パラメータである。また、(s[n, 1], …, s[n, λ])のことをaの「拡張シェア」という。
OR計算では、拡張シェアの各成分s[n, 1], …, s[n, λ]に対し、前述のように乱数との積の和を取る。これにより「乱数との積の和」という計算がλ回繰り返されることになるので、OR計算を間違える確率は1/qλとなり、間違い確率はλに対して指数関数的に小さくなる。よって、λを大きくすることで、q自身を小さく保ったまま間違い確率を小さくすることができる。これにより、上述のジレンマを解消することができる。
一方、NOT計算の際には、s[n, 1], …, s[n, λ]がシェアしている値をu[1], …, u[λ]とするとき、v = (1 - u[1]q - 1) … (1 - u[λ]q - 1)のシェアをマルチパーティ計算し、vのシェアの拡張シェアを作る。Fermatの小定理より、u[1], …, u[λ]がすべて0の場合vは1になり、それ以外の場合vは0になる。したがって、以上の計算はNOT演算子に対応する。
解決方法1では、通常のシェアを拡張シェアに変換する手続きを導入した。一方、第2の解決方法では、変換手続きとして、通常のシェアに0のF上のシェアを足し合わせる方法が用いられる。第2の解決方法では、上述のジレンマを解決するため、有限体Fの位数qを小さな値としつつ、有限体Fの拡大体Lの位数を大きくする。さらに、必要に応じて有限体F上のシェアを拡大体L上のシェアに変換する。変換後のシェアを「拡張シェア」と呼ぶ。第2の解決方法においても、通常のシェアを拡張シェアに変換する変換手続が導入される。ただし、第2の解決方法では、変換手法として、通常のシェアに0の拡大体L上のシェアを足し合わせる方法が用いられる。
OR計算において、
Σj = 1, …, J T[j, n]u[j, n] ∈ L
を計算する。ここでT[j, n]はa[j]の拡張シェアであり、u[j, n]は拡大体L上の何らかの乱数のシェアである。有限体Fの位数q自身は小さい場合であっても、拡大体Lの位数Qを大きく取ることで、OR計算の間違い確率は小さくなる。すなわち、上述のジレンマは解消される。
NOT aをマルチパーティ計算するには、aの拡張シェアを用いて
1 - aQ - 1
のシェアをマルチパーティ計算する。ここで、Qは拡大体Lの位数である。しかし、前述の理由でQは大きい値にする必要があるため、単純に1 - aQ-1のシェアをマルチパーティ計算しようとすると、NOT計算の効率が悪くなるという問題がある。そこで、次のようにしてaQの計算を効率化する。
Σl = 1, …, λa[l]E[l]
と表すことができる。また、定義より明らかにQ = qλである。
aQ-1 = (Σl = 1, …, λa[l]E[l])^{qλ - 1} = Σl = 1, …, λa[l]E[l]^{(1 + q + … + qλ - 1)(q - 1)}
= (Πi = 0, …, λ - 1Σl = 1, …, λa[l]E[l]^{q^i})q - 1
である。
次に、本発明の一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
次に、第1の実施形態に係る秘密計算システムについて、図面を参照して説明する。はじめに、本実施形態と、後述する第2の実施形態との間で共通する構成および動作について説明する。
図2は、本実施形態に係る秘密計算システム10の構成を例示するブロック図である。なお、後述する第2の実施形態に係る秘密計算システム10も図2と同様の構成を有する。
本実施形態では、Shamirの秘密分散法を用いる。そこで、事前にしきい値Kを固定(fix)しておく。さらに、有限体Fの相異なる元m[1], …, m[N]を固定する。
・登録装置1は、秘密データa[1], ..., a[U]を受け付けると、受け付けた秘密データa[1], ..., a[U]を記憶部12に保持する。また、登録装置1のシェア生成部131は、u = 1, …, Uに対し、後述する「シェア生成」を行い、a[u]のシェアs[u, 1], …, s[u, N]を求める。次に、登録装置1の通信部11は、生成されたシェアs[u, 1], …, s[u, N]を、それぞれサーバ装置2−1〜2−Nに送る。
・サーバ装置2−1〜2−Nの通信部21−1〜21−Nは、それぞれ、登録装置1からシェアs[u, 1], …, s[u, N]を受け取ると、記憶部22−1〜22−Nに格納する。シェア拡張部231−1〜231−Nは、それぞれ、マルチパーティ計算を開始するまでに「シェア拡張」を行ってs[u, 1], …, s[u, N]の拡張シェアを求め、求めた拡張シェアを記憶部22−1〜22−Nに保持する。
・サーバ装置2−1〜2−Nの計算部23−1〜23−Nは、関数φをORゲートとNOTゲートの組み合わせで表記し、u = 1, …, Uに対するa[u]の拡張シェアを入力として、ORゲートとNOTゲートを順にマルチパーティ計算していく。ORゲートに対するマルチパーティ計算は後述する「OR計算」の部分、NOTゲートに対するマルチパーティ計算は後述する「NOT計算」の部分で説明する。サーバ装置2−1〜2−Nは、最終的にφ(a[1], …, a[U])のシェアを得る。
・φ(a[1], …, a[U])の各ビットのシェアの計算が終了すると、サーバ装置2−1〜2−Nの通信部21−1〜21−Nは、計算したシェアを登録装置1に送出する。登録装置1の復元部132は、サーバ装置2−1〜2−Nから送出されたシェアに基づいて、後述する「復元計算」を行うことでφ(a[1], …, a[U])を復元する。
実施形態1、2では、秘密aは{0, 1}の元である場合を想定する。ただし、以下のシェア生成動作は秘密aがFの元であれば{0, 1}の元でなくとも正しく動作する。なお、後述する第3、第4の実施形態では、秘密aが{0, 1}の元とは限らない場合に対しても以下のシェア生成動作を用いる。
・シェア生成部131は乱数r[1], …, r[K - 1] ∈ Fをランダムに選び、i = 1, …, Nに対し、有限体F上の多項式f(X)を
f(X) = a + Σk = 1, …, K - 1r[k]Xk
により定義し、n = 1, …, Nに対し
s[n] = f(m[n])
を計算する。通信部11は、計算されたシェアs[1], …, s[N]を、それぞれサーバ装置2-1, ..., 2-Nのシェアとして送信する。
・サーバ装置2−1〜2−Nは、それぞれ、受信したシェアs[1], …, s[N]を記憶部22−1〜22−Nに保持する。
・サーバ装置2−1〜2−Nのシェア拡張部231−1〜231−Nは、それぞれ、シェアs[1], …, s[N]を記憶部22−1〜22−Nから読み込む。
・l =1, …, λ、d = 1, …, Dに対し、シェア拡張部231−1〜231−Nは乱数生成MPCプロトコルを実行することで、有限体F上の一様乱数r[l, d]のシェアを生成する。実行結果として、シェア拡張部231−1〜231−Nはそれぞれr[l, d]のシェアρ[l, d, 1], …., ρ[l, d, N]を得る。
・n = 1, …, N, l = 1, …, λに対し、シェア拡張部231−nは
t[n, l] = s[n] + Σd = 1, …, Dρ[l, d, n]m[n]d
を計算する。
・n = 1, …, N に対し、シェア拡張部231−nは(t[n, 1], …, t[n, λ])を拡張シェアとして出力する。
j = 1, …, Jに対し、サーバ装置2−1〜2−Nがa[j]の拡張シェア(t[j, 1, 1], …, t[j, 1, λ]) ∈ Fλ, …, (t[j, N, 1],…,t[j, N, λ]) ∈ Fλをそれぞれ記憶部22−1〜22−Nに保管しているとき、サーバ装置2−1〜2−NのOR計算部232−1〜232−Nは、次のようにしてb = a[1] OR … OR a[J]のシェアを計算する。
・j = 1, …, Jに対し、OR計算部232−1〜232−Nは、それぞれ、拡張シェア(t[j, 1, 1], …, t[j, 1, λ]) ∈ Fλ, …, (t[j, N, 1], …, t[j, N, λ]) ∈Fλを記憶部22−1〜22−Nから読み込む。
・OR計算部232−1〜232−Nは、それぞれ、乱数生成MPCをJλ回実行する。その結果として、j = 1, …, J, l = 1, …, λに対して、OR計算部232−1〜232−Nは、それぞれ、有限体F上の乱数R[j, l]のシェアu[j, 1, l], …, u[j, N, l]を得る。
・n = 1, …, N, l = 1, …, λに対し、OR計算部232−nはv[n, l] = Σj = 1,…,Jt[j, n, l]u[j, n, l]∈Fを計算し、(v[n, 1], …, v[n, λ])をbの拡張シェアとして記憶部22−nに保管する。
サーバ装置2−1〜2−Nが、それぞれ、aの拡張シェア(t[1, 1], …, t[1, λ]) ∈ Fλ, …, (t[N, 1], …, t[N, λ]) ∈ Fλを記憶部22−1〜22−Nに保管しているとき、サーバ装置2−1〜2−NのNOT計算部233−1〜233−Nは、次のようにしてb = NOT aのシェアを計算する。
・NOT計算部233−1〜233−Nは、それぞれ、秘密aの拡張シェア(t[1, 1], …, t[1, λ]) ∈ Fλ, …, (t[N, 1], …, t[N, λ]) ∈ Fλを記憶部22−1〜22−Nから読み込む。拡張シェアの定義より、(t[n, l]) n = 1, …, Nは何らかの元c[n] ∈ Fの秘密分散になっている。
・n = 1, …, N, l = 1, …, λに対し、NOT計算部233−nがt[n, l] ∈ Fを入力として用いて
d[l] = 1 - c[l]q - 1
のシェアを得るマルチパーティ計算を実行する。NOT計算部233−nは、かかるマルチパーティ計算を、有限体F上の和のマルチパーティ計算と積のマルチパーティ計算を組み合わせることで実行することができる。ここで、qは有限体Fの位数である。実行結果として、NOT計算部233−1〜233−Nは、それぞれd[l]のシェアδ[1, l], …, δ[N, l]を得る。
・n = 1, …, Nに対し、NOT計算部233−nがδ[n, 1], …, δ[n, λ] ∈ Fを入力として用いて、
e = d[1] … d[λ]
のシェアを得るマルチパーティ計算を実行する。NOT計算部233−1〜233−Nは、実行結果として、それぞれeのシェアε[1], …, ε[N]を得る。
・n = 1, …, Nに対し、シェア拡張部231−nはε[n]を入力としてシェア拡張を実行する。実行結果として得られた拡張シェアを記憶部22−nに書き込む。
・登録装置1の復元部132は、v個(v ≧ K)の拡張シェア(t[i_1, 1], …, t[i_1, λ]) ∈ Fλ, …, (t[i_v, 1],…,t[i_v, λ]) ∈ Fλを入力として受け取る。
・復元部132は、l = 1, …, λに対して、ShamirReconst(t[i_1, l], …, t[i_v, l], K, N, F)を実行し、出力a[l]を得る。
・復元部132は、a[1] = …. = a[λ] = 0である場合0を出力し、それ以外の場合1を出力する。
次に、第2の実施形態に係る秘密計算システムについて、図面を参照して説明する。
図2は、本実施形態の秘密計算システム10の構成を例示するブロック図である。本実施形態の秘密計算システム10の構成は、第1の実施形態の秘密計算システムの構成と同様であるため、説明を省略する。
次に、本実施形態の秘密計算システムの動作について説明する。なお、本実施形態におけるシェア生成動作は、第1の実施形態におけるシェア生成動作と同様であるため、説明を省略する。以下では、本実施形態における「シェア拡張」、「OR計算」、「NOT計算」および「復元計算」の動作について説明する。
・n = 1, …, N, l = 1, …, λに対し、第1の実施形態と同様に、サーバ装置2−nのシェア拡張部231−1は
t[n, l] = s[n] + Σd = 1, …, Dρ[l, d, n]m[n]d
を計算する。
・本実施形態では、シェア拡張部231−n(n = 1, …, N)は、
T[n] = Σl = 1, …, λt[n, l]E[l]
を計算し、計算したT[n]を拡張シェアとして出力する。
j = 1, …, Jに対し、サーバ装置2−1〜2−Nが、それぞれa[j]の拡張シェアT[j, 1] ∈ L, …, T[j, N] ∈ Lを記憶部22−1〜22−Nに保管しているとき、サーバ装置2−1〜2−NのOR計算部232−1〜232−Nは、次のようにしてb = a[1] OR … OR a[J]のシェアを計算する。
・j = 1, …, Jに対し、OR計算部232−1〜232−Nは、それぞれ、拡張シェアT[j, 1] ∈ L, …, T[j, N] ∈ Lを記憶部22−1〜22−Nから読み込む。
・OR計算部232−1〜232−Nは、それぞれ、乱数生成MPCをJ回実行する。その結果として、j = 1, …, Jに対して、OR計算部232−1〜232−Nは、それぞれ、拡大体L上の乱数R[j]のシェアu[j, 1], …, u[j, N] ∈ Lを得る。
・n = 1, …, Nに対し、OR計算部232−nはv[n] = Σj = 1, …, JT[j, n]u[j, n] ∈ Lを計算し、v[n]をbの拡張シェアとして記憶部22−nに保管する。
サーバ装置2−1〜2−Nが、それぞれaの拡張シェアT[1] ∈ L, …, T[N] ∈ Lを記憶部22−1〜22−Nに保管しているとき、サーバ装置2−1〜2−NのNOT計算部233−1〜233−Nは、次のようにしてb = NOT aのシェアを計算する。
・NOT計算部233−1〜233−Nは、それぞれ、秘密aの拡張シェアT[1] ∈ L, …, T[N] ∈ Lを記憶部22−1〜22−Nから読み込む。拡張シェアの定義より、T[1], …, T[N]はaを秘密分散したシェアである。
・n = 1, …, Nに対し、NOT計算部233−nはT[n]を
T[n] = Σl = 1, …, λt[n, l]E[l] (t[n, l]∈F)
と成分表示し、y = 1, …, λに対し、
δ[n, y] = Σl = 1, …, λt[n, l]E[l]^{qu}
を計算する。ここで、qは有限体Fの位数である。拡張シェアの定義より、δ[n, y]は何らかの元d[y]を秘密分散したシェアである。
・n=1, …, Nに対し、NOT計算部233−nがδ[n, 1], …, δ[n, λ] ∈ Lを入力として用いて、
e = 1 - (d[1] … d[λ])q - 1
のシェアを得るマルチパーティ計算を実行する。NOT計算部233−1〜233−Nは、実行結果として、それぞれeのシェアε[1], …, ε[N]を得る。
・登録装置1の復元部132は、v個(v ≧ K)の拡張シェアT[i_1], …, T[i_v]を入力として受け取る。
・復元部132は、u = 1, …, vに対して、T[i_u]をT[i_u] = Σl = 1, …, λt[i_u, l]E[l]と成分表示する。
・復元部132は、l = 1, …, λに対して、ShamirReconst(t[i_1, l], …, t[i_v, l], K, N, F)を実行して出力a[l]を得る。
・復元部132は、a[1] = …. = a[λ] = 0である場合0を出力し、それ以外の場合1を出力する。
次に、第3の実施形態に係る秘密計算システムについて、図面を参照して説明する。本実施形態の秘密計算システムは、第1の実施形態に係る秘密計算システムを文字列検索(例えば、文字列の部分一致検索)に適用したものである。
図3は、本実施形態に係る秘密計算システム20の構成を例示するブロック図である。図3を参照すると、秘密計算システム20は、登録装置3、検索装置4、および、サーバ装置2−1〜2−Nを備えている。登録装置1と検索装置3は、別個の装置であっても同一の装置であってもよい。同様に、登録装置1および検索装置3の機能を、サーバ装置2−1〜2−Nのいずれかが備えていてもよい。
次に、本実施形態の秘密検索システム20の動作について説明する。
ここで、a = a[1] … a[U]を登録したい文字列とする。登録装置3のシェア生成部331は、各u = 1, …, Uに対して、a[u]のシェアs[u, 1], …, s[u, N]を第1の実施形態のシェア生成と同様の手順で計算する。登録装置3の通信部31は、生成されたシェアs[u, 1], …, s[u, N]を、それぞれサーバ装置2−1〜2−Nに送る。サーバ装置2−1〜2−Nは、それぞれ、受信したシェアs[u, 1], …, s[u, N]を記憶部22−1〜22−Nに保管する。サーバ装置2−nのシェア拡張部231−n(n = 1, …, N)は、任意のタイミングでシェアs[u, n]に対する拡大シェアを計算しておく。
ここでは、b = b[1] … b[V]を検索装置4がクエリする文字列とする。本実施形態では、サーバ装置2−1〜2−Nにシェアが登録されている文字列a = a[1] … a[U]のうちの、bがaの部分文字列となっているものを見つけることを目標とする。
・検索装置4のシェア生成部431は、v = 1, …, Vに対して、b[v]のシェアを計算する。検索装置4の通信部41は、計算されたb[v]のシェアをサーバ装置2−1、…、サーバ装置2−Nに送る。サーバ装置2−nのシェア拡張部231−n(n = 1, …, N)は、b[v]のシェアに対する拡大シェアを計算する。
・サーバ装置2−1〜2−Nの計算部23−1〜23−Nは、シェアが登録されている各文字列a = a[1] ... a[U]に対し、u = 1, …, U - Vに対するa[u]の拡大シェアとv = 1, …, Vに対するb[v]の拡大シェアを入力として減法と乗法のマルチパーティ計算を行うことで
c[u, v] = (a[u] - b[u + v])q
の拡大シェアを計算する。ここで、qは有限体Fの位数である。
・サーバ装置2−1〜2−NのNOT計算部233−1〜233−Nは、u = 1, …, U - V, v = 1, …, Vに対して、第1の実施形態のNOT計算を用いることで、c[u, v]の拡大シェアから
d[u, v] = NOT c[u, v]
の拡大シェアを計算する。
・サーバ装置2−1〜2−NのOR計算部232−1〜232−Nは、u = 1, …, U - Vに対して、第1の実施形態のOR計算を用いることで、d[u, v]の拡大シェアから
e[u] = d[u, 1] OR … OR d[u, V]
の拡大シェアを計算する。
・サーバ装置2−1〜2−NのNOT計算部233−1〜233−Nは、u = 1, …, U - V,に対して、第1の実施形態のNOT計算を用いることで、e[u]の拡大シェアから
f[u] = NOT e[u]
の拡大シェアを計算する。
・サーバ装置2−1〜2−NのOR計算部232−1〜232−Nは、第1の実施形態のOR計算を用いることで、f[u]の拡大シェアから
g = f[1] OR … OR f[V]
の拡大シェアを計算する。
・検索装置4の復元部432は、第1の実施形態の復元計算を用いることで、gのシェアからgを復元する。
・復元部432は、g = 1である場合、a = a[1] ... a[U]が検索にヒットしたものとみなして、a[1]のシェア、…、a[U]のシェアを検索装置に送信する。
・復元部432は、第1の実施形態の復元計算を用いることで、a[1]のシェア、…、a[U]のシェアからそれぞれa[1], …, a[U]を復元し、a = a[1] … a[U]とする。
次に、第4の実施形態に係る秘密計算システムについて、説明する。本実施形態の秘密計算システムの構成は、第3の実施形態に係る秘密計算システムの構成(図3)と同様である。
[形態1]
上記第1の態様に係る秘密計算システムのとおりである。
[形態2]
前記シェア拡張部は、前記シェアを秘密分散して生成された複数のシェアを成分とする配列を前記拡張シェアとして生成し、
前記OR計算部は、前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
前記NOT計算部は、前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記NOT演算を実行する、
形態1に記載の秘密計算システム。
[形態3]
前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
前記シェア拡張部は、前記シェアに対して、Shamirの秘密分散法による0の前記有限体上のシェアを加えることで、前記拡張シェアを生成する、
形態2に記載の秘密計算システム。
[形態4]
前記シェア拡張部は、前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、前記拡張シェアとして生成し、
前記OR計算部は、OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
前記NOT計算部は、NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することで、前記NOT演算を実行する、
形態1に記載の秘密計算システム。
[形態5]
前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
前記シェア拡張部は、前記シェアに対して、Shamirの秘密分散法による0の前記拡大体上のシェアを加えることで、前記拡張シェアを生成する、
形態4に記載の秘密計算システム。
[形態6]
前記複数のサーバ装置は、登録対象文字列の各ワードを秘密分散して生成されたシェアと、検索装置から受け付けた検索対象文字列の各ワードを秘密分散して生成されたシェアを前記記憶部に保持し、
前記シェア拡張部、前記OR計算部、および、前記NOT計算部を用いて、前記登録対象文字列の前記各ワードと前記検索対象文字列の前記各ワードの差のべき乗のシェアを、前記登録対象文字列の前記各ワードの前記シェアと前記検索対象文字列の前記各ワードの前記シェアとを用いてマルチパーティ計算し、前記べき乗のORのシェアを前記べき乗のシェアを用いてマルチパーティ計算し、前記ORされた値のNOTを前記ORされた値のシェアを用いてマルチパーティ計算し、前記NOTされた値のORを前記NOTされた値のシェアを用いてマルチパーティ計算し、
前記検索装置は、前記計算された前記NOTされた値のORに基づいて、検索対象文字列が登録対象文字列に部分一致したか否かを判定する、
形態1ないし5のいずれか一に記載の秘密計算システム。
[形態7]
形態1ないし6のいずれか一に記載の秘密計算システムに含まれる前記複数のサーバ装置のうちの一のサーバ装置。
[形態8]
上記第3の態様に係る秘密計算方法のとおりである。
[形態9]
前記一のサーバ装置は、前記シェアを秘密分散して生成された複数のシェアを成分とする配列を前記拡張シェアとして生成し、
前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記NOT演算を実行する、
形態8に記載の秘密計算方法。
[形態10]
前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
前記一のサーバ装置は、前記シェアに対して、Shamirの秘密分散法による0の前記有限体上のシェアを加えることで前記拡張シェアを生成する、
形態9に記載の秘密計算方法。
[形態11]
前記一のサーバ装置は、前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、前記拡張シェアとして生成し、
OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することで、前記NOT演算を実行する、
形態8に記載の秘密計算方法。
[形態12]
前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
前記一のサーバ装置は、前記シェアに対して、Shamirの秘密分散法による0の前記拡大体上のシェアを加えることで、前記拡張シェアを生成する、
形態11に記載の秘密計算方法。
[形態13]
上記第4の態様に係るプログラムのとおりである。
[形態14]
前記シェアを秘密分散して生成された複数のシェアを成分とする配列を前記拡張シェアとして生成する処理と、
前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行する処理と、
前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記NOT演算を実行する処理と、を前記一のコンピュータに実行させる、
形態13に記載のプログラム。
[形態15]
前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
前記シェアに対して、Shamirの秘密分散法による0の前記有限体上のシェアを加えることで、前記拡張シェアを生成する処理を、前記一のコンピュータに実行させる、
形態14に記載のプログラム。
[形態16]
前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、前記拡張シェアとして生成する処理と、
OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行する処理と、
NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することで、前記NOT演算を実行する処理と、を前記一のコンピュータに実行させる、
形態13に記載のプログラム。
[形態17]
前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
前記シェアに対して、Shamirの秘密分散法による0の前記拡大体上のシェアを加えることで、前記拡張シェアを生成する処理を、前記一のコンピュータに実行させる、
形態16に記載のプログラム。
2−1〜2−N サーバ装置
4 検索装置
10、20 秘密計算システム
11、21−1〜21−N、31、41 通信部
12、22−1〜22−N、32、42 記憶部
13、23−1〜23−N、33、43 計算部
131、331、431 シェア生成部
132、432 復元部
231−1〜231−N シェア拡張部
232−1〜232−N OR計算部
233−1〜233−N NOT計算部
Claims (10)
- 秘密データを引数とする所定の関数の値をマルチパーティ計算する秘密計算システムであって、
複数のサーバ装置と、登録装置と、を備え、
前記複数のサーバ装置は、前記秘密データを秘密分散して生成された有限体上の元であるシェアを保持する記憶部と、
前記シェアを秘密分散して生成された複数のシェアを成分とする配列を拡張シェアとして生成するシェア拡張部と、
前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記所定の関数に含まれるOR演算を実行するOR計算部と、
前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記所定の関数に含まれるNOT演算を実行するNOT計算部と、を有し、
前記登録装置は、前記複数のサーバ装置によって計算されたシェアから前記秘密データを復元する、
ことを特徴とする秘密計算システム。 - 前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
前記シェア拡張部は、前記シェアに対して、Shamirの秘密分散法による0の前記有限体上のシェアを加えることで前記拡張シェアを生成する、
請求項1に記載の秘密計算システム。 - 秘密データを引数とする所定の関数の値をマルチパーティ計算する秘密計算システムであって、
複数のサーバ装置と、登録装置と、を備え、
前記複数のサーバ装置は、前記秘密データを秘密分散して生成された有限体上の元であるシェアを保持する記憶部と、
前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、拡張シェアとして生成するシェア拡張部と、
OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで、前記所定の関数に含まれる前記OR演算を実行するOR計算部と、
NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することで、前記所定の関数に含まれる前記NOT演算を実行するNOT計算部と、を有し、
前記登録装置は、前記複数のサーバ装置によって計算されたシェアから前記秘密データを復元する、
ことを特徴とする秘密計算システム。 - 前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
前記シェア拡張部は、前記シェアに対して、Shamirの秘密分散法による0の前記拡大体上のシェアを加えることで、前記拡張シェアを生成する、
請求項3に記載の秘密計算システム。 - 前記複数のサーバ装置は、登録対象文字列の各ワードを秘密分散して生成されたシェアと、検索装置から受け付けた検索対象文字列の各ワードを秘密分散して生成されたシェアを前記記憶部に保持し、
前記シェア拡張部、前記OR計算部、および、前記NOT計算部を用いて、前記登録対象文字列の前記各ワードと前記検索対象文字列の前記各ワードの差のべき乗のシェアを、前記登録対象文字列の前記各ワードの前記シェアと前記検索対象文字列の前記各ワードの前記シェアとを用いてマルチパーティ計算し、前記べき乗のORのシェアを前記べき乗のシェアを用いてマルチパーティ計算し、前記ORされた値のNOTを前記ORされた値のシェアを用いてマルチパーティ計算し、前記NOTされた値のORを前記NOTされた値のシェアを用いてマルチパーティ計算し、
前記検索装置は、前記計算された前記NOTされた値のORに基づいて、検索対象文字列が登録対象文字列に部分一致したか否かを判定する、
請求項1ないし4のいずれか1項に記載の秘密計算システム。 - 請求項1ないし5のいずれか1項に記載の秘密計算システムに含まれる前記複数のサーバ装置のうちの一のサーバ装置。
- 秘密データを引数とする所定の関数の値を複数のサーバ装置を用いてマルチパーティ計算する秘密計算方法であって、
前記複数のサーバ装置のうちの一のサーバ装置が、前記秘密データを秘密分散して生成された有限体上の元であるシェアを受け付けるステップと、
前記シェアを秘密分散して生成された複数のシェアを成分とする配列を拡張シェアとして生成するステップと、
前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記所定の関数に含まれるOR演算を実行するステップと、
前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記所定の関数に含まれるNOT演算を実行するステップと、
前記複数のサーバ装置によって計算されたシェアから秘密データを復元する登録装置に対して、前記マルチパーティ計算の結果であるシェアを送信するステップと、を含む、
ことを特徴とする秘密計算方法。 - 秘密データを引数とする所定の関数の値を複数のサーバ装置を用いてマルチパーティ計算する秘密計算方法であって、
前記複数のサーバ装置のうちの一のサーバ装置が、前記秘密データを秘密分散して生成された有限体上の元であるシェアを受け付けるステップと、
前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、拡張シェアとして生成するステップと、
OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで、前記所定の関数に含まれる前記OR演算を実行するステップと、
NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することで、前記所定の関数に含まれるNOT演算を実行するステップと、
前記複数のサーバ装置によって計算されたシェアから秘密データを復元する登録装置に対して、前記マルチパーティ計算の結果であるシェアを送信するステップと、を含む、
ことを特徴とする秘密計算方法。 - 秘密データを引数とする所定の関数の値を複数のコンピュータを用いてマルチパーティ計算するプログラムであって、
前記秘密データを秘密分散して生成された有限体上の元であるシェアを受け付ける処理と、
前記シェアを秘密分散して生成された複数のシェアを成分とする配列を拡張シェアとして生成する処理と、
前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記所定の関数に含まれるOR演算を実行する処理と、
前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記所定の関数に含まれるNOT演算を実行する処理と、
前記複数のサーバ装置によって計算されたシェアから秘密データを復元する登録装置に対して、前記マルチパーティ計算の結果であるシェアを送信する処理と、
を前記複数のコンピュータのうちの一のコンピュータに実行させる、
ことを特徴とするプログラム。 - 秘密データを引数とする所定の関数の値を複数のコンピュータを用いてマルチパーティ計算するプログラムであって、
前記秘密データを秘密分散して生成された有限体上の元であるシェアを受け付ける処理と、
前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、拡張シェアとして生成する処理と、
OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで前記OR演算を実行する処理と、
NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することでNOT演算を実行する処理と、
前記複数のサーバ装置によって計算されたシェアから秘密データを復元する登録装置に対して、前記マルチパーティ計算の結果であるシェアを送信する処理と、
を前記複数のコンピュータのうちの一のコンピュータに実行させる、
ことを特徴とするプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015077064 | 2015-04-03 | ||
JP2015077064 | 2015-04-03 | ||
PCT/JP2016/060941 WO2016159357A1 (ja) | 2015-04-03 | 2016-04-01 | 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016159357A1 JPWO2016159357A1 (ja) | 2018-02-01 |
JP6693508B2 true JP6693508B2 (ja) | 2020-05-13 |
Family
ID=57006178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017510254A Active JP6693508B2 (ja) | 2015-04-03 | 2016-04-01 | 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10749671B2 (ja) |
JP (1) | JP6693508B2 (ja) |
WO (1) | WO2016159357A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11042358B2 (en) * | 2016-08-18 | 2021-06-22 | Nec Corporation | Secure computation system, secure computation method, secure computation apparatus, distribution information generation apparatus, and methods and programs therefor |
US11646880B2 (en) * | 2017-01-18 | 2023-05-09 | Nippon Telegraph And Telephone Corporation | Secret computation method, secret computation system, secret computation apparatus, and program |
US11334353B2 (en) | 2017-05-18 | 2022-05-17 | Nec Corporation | Multiparty computation method, apparatus and program |
US10749670B2 (en) * | 2017-05-18 | 2020-08-18 | Bank Of America Corporation | Block chain decoding with fair delay for distributed network devices |
JP6713585B2 (ja) * | 2017-07-05 | 2020-06-24 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体 |
CN111543025A (zh) * | 2017-08-30 | 2020-08-14 | 因福尔公司 | 高精度隐私保护实值函数评估 |
EP3688921B1 (en) * | 2017-09-29 | 2021-07-14 | Robert Bosch GmbH | Method for faster secure multiparty inner product computation with spdz |
EP3757976B1 (en) * | 2018-02-20 | 2023-10-11 | Nippon Telegraph And Telephone Corporation | Secret calculation device, secret calculation authentication system, secret calculation method, and program |
US11934518B2 (en) | 2019-01-09 | 2024-03-19 | Nec Corporation | Verification apparatus, multiparty computation verification system, and method and program for verifying multiparty computation executable code |
JP2022523182A (ja) * | 2019-02-22 | 2022-04-21 | インファー,インク. | モジュラー整数を使用したセキュアなマルチパーティ計算のための算術 |
US11101980B2 (en) * | 2019-05-01 | 2021-08-24 | Baffle, Inc. | System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption |
US11190339B2 (en) * | 2019-05-14 | 2021-11-30 | Baffle, Inc. | System and method for performing equality and less than operations on encrypted data with quasigroup operations |
EP4080488B1 (en) * | 2019-12-19 | 2024-02-28 | Nippon Telegraph And Telephone Corporation | Secret random number generation system, secret calculation device, secret random number generation method, and program |
CN113098840B (zh) * | 2021-02-25 | 2022-08-16 | 鹏城实验室 | 基于加法秘密分享技术的高效安全线性整流函数运算方法 |
US11637690B1 (en) | 2021-10-08 | 2023-04-25 | Baffle, Inc. | Format preserving encryption (FPE) system and method for long strings |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9270414B2 (en) * | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
JP5065795B2 (ja) | 2007-08-03 | 2012-11-07 | Kddi株式会社 | 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム |
JP5400705B2 (ja) | 2010-02-24 | 2014-01-29 | 日本電信電話株式会社 | 秘密計算システム、秘密計算方法、計算装置 |
EP2858297B1 (en) * | 2012-07-05 | 2017-03-01 | Nippon Telegraph And Telephone Corporation | Secret sharing system, data distribution apparatus, distributed data transform apparatus, secret sharing method and program |
JP5995749B2 (ja) | 2013-02-26 | 2016-09-21 | 日本電信電話株式会社 | 秘密集合演算装置及び方法 |
-
2016
- 2016-04-01 JP JP2017510254A patent/JP6693508B2/ja active Active
- 2016-04-01 WO PCT/JP2016/060941 patent/WO2016159357A1/ja active Application Filing
- 2016-04-01 US US15/562,659 patent/US10749671B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2016159357A1 (ja) | 2016-10-06 |
JPWO2016159357A1 (ja) | 2018-02-01 |
US20180115415A1 (en) | 2018-04-26 |
US10749671B2 (en) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6693508B2 (ja) | 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム | |
Ding et al. | Encrypted data processing with homomorphic re-encryption | |
Pasupuleti et al. | An efficient and secure privacy-preserving approach for outsourced data of resource constrained mobile devices in cloud computing | |
Lambić | A novel method of S-box design based on chaotic map and composition method | |
US9515828B2 (en) | Sharing a secret via linear interpolation | |
US8638926B2 (en) | Sharing a secret with modular inverses | |
Liu et al. | Efficient and privacy-preserving skyline computation framework across domains | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
WO2016148281A1 (ja) | 秘匿文字列計算システム及び方法と装置並びにプログラム | |
CN108055128B (zh) | Rsa密钥的生成方法、装置、存储介质及计算机设备 | |
US20170257218A1 (en) | Cryptographic hash generation system | |
CN110826089A (zh) | 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算*** | |
CN112769542A (zh) | 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质 | |
EP3959841B1 (en) | Compression and oblivious expansion of rlwe ciphertexts | |
US11599681B2 (en) | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program | |
US11101981B2 (en) | Generating a pseudorandom number based on a portion of shares used in a cryptographic operation | |
Syam Kumar et al. | RSA-based dynamic public audit service for integrity verification of data storage in cloud computing using Sobol sequence | |
Biksham et al. | A lightweight fully homomorphic encryption scheme for cloud security | |
Ramezanian et al. | Privacy preserving shortest path queries on directed graph | |
Liu et al. | Privacy-preserving decentralised singular value decomposition | |
Block et al. | Secure computation using leaky correlations (asymptotically optimal constructions) | |
CN113806760A (zh) | 获取特征间相关系数方法、装置、电子设备及存储介质 | |
Sardar et al. | The secure link prediction problem | |
WO2014203339A1 (ja) | 保持数検証システム | |
Vuicik et al. | Efficiency of RSA key factorization by open-source libraries and distributed system architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190305 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191015 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191216 |
|
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: 20200317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200330 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6693508 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |