JP7540599B2 - Secure computation system, secure computation device, secure computation method, and program - Google Patents
Secure computation system, secure computation device, secure computation method, and program Download PDFInfo
- Publication number
- JP7540599B2 JP7540599B2 JP2023536228A JP2023536228A JP7540599B2 JP 7540599 B2 JP7540599 B2 JP 7540599B2 JP 2023536228 A JP2023536228 A JP 2023536228A JP 2023536228 A JP2023536228 A JP 2023536228A JP 7540599 B2 JP7540599 B2 JP 7540599B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- elements
- computing device
- secure computing
- matrix
- 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
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、秘密計算システム、秘密計算装置、秘密計算方法、及びプログラムに関する。 The present invention relates to a secure computation system, a secure computation device, a secure computation method, and a program.
2つのパーティがお互いにデータを持っているときに、それらの2つのデータから何等かの計算結果を得るためのやり取りを考えた場合、お互いが計算結果以外に得る情報を極力減らすための技術はよく研究されており、2パーティ秘密計算等と呼ばれている。その中でも、パーティA、Bがそれぞれ数値の集合When two parties each have data, and they are considering an exchange to obtain some kind of calculation result from those two pieces of data, there are many well-researched techniques to minimize the information that each party obtains other than the calculation result, and these are called two-party secret computations.
上記のような計算を実現するために、従来技術では、秘匿回路や完全準同型暗号を使って一般回路的に計算をするか(例えば、非特許文献1)、もしくは完全準同型暗号を使ってこのような用途に特化したプロトコルを利用するか(例えば、非特許文献2)の2つのパターンが知られている。 In order to realize the above-mentioned calculations, two patterns are known in the prior art: performing the calculations in a general circuit manner using secret circuits or fully homomorphic encryption (for example, Non-Patent Document 1), or using fully homomorphic encryption to utilize a protocol specialized for such applications (for example, Non-Patent Document 2).
しかしながら、一般回路的に計算する方法は当然非常に効率が悪く、特化したプロトコルであっても一部に完全準同型計算(つまり、加法と乗法を両方使用する準同型計算)という効率の悪い処理が含まれるため非効率なプロトコルとなっている。However, calculations using general circuits are naturally very inefficient, and even specialized protocols are inefficient because they contain inefficient processing such as fully homomorphic calculations (i.e., homomorphic calculations that use both addition and multiplication).
本発明の一実施形態は、上記の点に鑑みてなされたもので、特定の2パーティ秘密計算を効率的に実行することを目的とする。 One embodiment of the present invention has been made in consideration of the above points and aims to efficiently perform a specific two-party secure computation.
上記目的を達成するため、一実施形態に係る秘密計算システムは、第1の数値集合X=(xi,j)(i∈A1,j∈A2)を持つ第1の秘密計算装置と、第2の数値集合Y=(yi,j)(i∈B1,j∈B2)を持つ第2の秘密計算装置とが含まれる秘密計算システムであって、前記第1の秘密計算装置は、前記A1の要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記第2の秘密計算装置に送信する第1の暗号化部と、前記第2の秘密計算装置から受信したベクトルに基づいて、前記第1の数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列T1を置換した行列T1'を計算し、前記行列T1'を前記第2の秘密計算装置に送信する第2の暗号化部と、加法準同型計算の計算結果を前記第2の秘密計算装置から受信すると、前記計算結果を前記加法準同型暗号により復号し、xi,jyi,j'のi∈A1∩B1に関する和を(j',j)成分に持つ|B2|×|A2|行列を計算する復号部と、を有し、前記第2の秘密計算装置は、前記B1の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルを前記第1の秘密計算装置に送信する第3の暗号化部と、前記第2の数値集合Yを表す行列の転置行列と、前記行列T1'の行を所定の関数により入れ替えた行列Zとの積を前記加法準同型計算により計算した計算結果を前記第1の秘密計算装置に送信する計算部と、を有する。 In order to achieve the above object, a secure computation system according to one embodiment includes a first secure computation device having a first numerical set X=(x i,j ) (i∈A 1 , j∈A 2 ) and a second secure computation device having a second numerical set Y=(y i,j ) (i∈B 1 , j∈B 2 ), in which the first secure computation device includes a first encryption unit that transmits a vector having elements which are ciphertexts obtained by encrypting elements of the A 1 using commutative encryption to the second secure computation device, a second encryption unit that calculates a matrix T 1 ' by permuting a matrix T 1 having elements which are ciphertexts obtained by encrypting elements of the first numerical set X using additive homomorphic encryption based on the vector received from the second secure computation device, and transmits the matrix T 1 ' to the second secure computation device, and a calculation result of the additive homomorphic computation received from the second secure computation device, and and a decryption unit that calculates a | B2 |×| A2 | matrix whose (j', j) component is the sum of i,j yi ,j' for i∈A1∩B1 , and the second secure computing device has a third encryption unit that transmits a vector whose elements are ciphertexts obtained by encrypting the elements of B1 using the commutative encryption to the first secure computing device, and a calculation unit that transmits to the first secure computing device a calculation result obtained by calculating, using the additive homomorphic calculation, the product of a transposed matrix of a matrix representing the second numerical set Y and a matrix Z obtained by replacing the rows of the matrix T1 ' using a predetermined function.
特定の2パーティ秘密計算を効率的に実行することができる。 It is possible to efficiently perform certain two-party secret computations.
以下、本発明の一実施形態について説明する。本実施形態では、パーティA、Bがそれぞれ数値集合Hereinafter, one embodiment of the present invention will be described. In this embodiment, parties A and B each have a set of numerical values.
<秘密計算システム1の全体構成>
本実施形態に係る秘密計算システム1には、秘密計算装置10と、秘密計算装置20とが含まれる。秘密計算装置10と秘密計算装置20は、例えば、インターネット等を含む通信ネットワークNを介して通信可能に接続される。
<Overall configuration of
The
秘密計算装置10は、パーティAとして機能するコンピュータ又はコンピュータシステムである。例えば、秘密計算装置10は、パーティAとして機能するデータベースサーバ等である。The
ここで、秘密計算装置10は、秘密計算部101と、通信部102とを有する。これら各部は、例えば、秘密計算装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。Here, the
また、秘密計算装置10は、記憶部103を有する。記憶部103は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置により実現される。The
秘密計算部101は、秘密計算装置20との間で、後述する実施例1又は2で説明する2パーティ秘密計算を行って、関数値f1,・・・,fnを得る。通信部102は、当該2パーティ秘密計算に必要な各種情報の送受信を行う。記憶部103は、数値集合XとA1、A2を記憶している。
The
秘密計算装置20は、パーティBとして機能するコンピュータ又はコンピュータシステムである。例えば、秘密計算装置20は、パーティBとして機能するデータベースサーバ等である。The
ここで、秘密計算装置20は、秘密計算部201と、通信部202とを有する。これら各部は、例えば、秘密計算装置20にインストールされた1以上のプログラムが、CPU等のプロセッサに実行させる処理により実現される。Here, the
また、秘密計算装置20は、記憶部203を有する。記憶部203は、例えば、HDDやSSD等の補助記憶装置により実現される。The
秘密計算部201は、秘密計算装置10との間で、後述する実施例1又は2で説明する2パーティ秘密計算を行う。通信部202は、当該2パーティ秘密計算に必要な各種情報の送受信を行う。記憶部203は、数値集合YとB1、B2を記憶している。
The
<秘密計算装置10、20のハードウェア構成>
本実施形態に係る秘密計算装置10、20のハードウェア構成を図2に示す。なお、秘密計算装置10、20は同様のハードウェア構成で実現可能であるため、以下では、主に、秘密計算装置10のハードウェア構成について説明する。
<Hardware Configuration of the
The hardware configuration of the
図2に示すように、本実施形態に係る秘密計算装置10は一般的なコンピュータ又はコンピュータシステムのハードウェア構成で実現され、入力装置301と、表示装置302と、外部I/F303と、通信I/F304と、プロセッサ305と、メモリ装置306とを有する。これらの各ハードウェアは、それぞれがバス307を介して通信可能に接続される。2, the
入力装置301は、例えば、キーボードやマウス、タッチパネル、各種物理ボタン等である。表示装置302は、例えば、ディスプレイや表示パネル等である。なお、秘密計算装置10、20は、例えば、入力装置301及び表示装置302のうちの少なくとも一方を有していなくてもよい。The
外部I/F303は、記録媒体303a等とのインタフェースである。なお、記録媒体303aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。The external I/
通信I/F304は、通信ネットワークNとのインタフェースである。プロセッサ305は、例えば、CPU等の各種演算装置である。メモリ装置306は、例えば、HDDやSSD、フラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)等の各種記憶装置である。The communication I/
本実施形態に係る秘密計算装置10、20は、図2に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図2に示すハードウェア構成は一例であって、秘密計算装置10、20は、例えば、複数のプロセッサ305を有していてもよいし、複数のメモリ装置306を有していてもよいし、図2に示したハードウェア以外の様々なハードウェアを有していてもよい。また、図2では秘密計算装置10と秘密計算装置20のハードウェア構成が同様である場合について説明したが、秘密計算装置10と秘密計算装置20のハードウェア構成は異なっていてもよい。The
<実施例1>
以下、実施例1について説明する。
Example 1
Example 1 will now be described.
≪準備≫
加法準同型暗号の公開鍵をPK、秘密鍵をSKとして、aEnc(PK,・)を加法準同型暗号の暗号化アルゴリズム、aDec(SK,・)を加法準同型暗号の復号アルゴリズムとする。また、加法準同型暗号の暗号文CT1とCT2への加法準同型計算を単にCT1+CT2と加法的に表記する。
<Preparation>
Let PK be the public key of additive homomorphic encryption and SK be the private key, aEnc(PK,·) be the encryption algorithm of additive homomorphic encryption, and aDec(SK,·) be the decryption algorithm of additive homomorphic encryption. In addition, additive homomorphic computation of ciphertexts CT1 and CT2 of additive homomorphic encryption is simply expressed additively as CT1 + CT2 .
可換暗号の秘密鍵をsとして、Enc(s,・)を可換暗号の暗号化アルゴリズムとする。可換暗号とは、任意の自然数kとk個の秘密鍵s1,・・・,skに対して、次の性質を持つような暗号である。すなわち、秘密鍵空間はアーベル群であり、Enc(Πsi,m)=Enc(sk,Enc(sk-1,・・・,Enc(s1,m)))を満たす(右辺はmをs1で暗号化し、それをs2で暗号化し、それを更にs3で暗号化する、というのをskまで繰り返すことを意味している。)。 Let s be the private key of the commutative encryption, and Enc(s,.) be the encryption algorithm of the commutative encryption. The commutative encryption is an encryption that has the following properties for any natural number k and k private keys s 1 , ..., s k . That is, the private key space is an Abelian group, and satisfies Enc(Πs i ,m)=Enc(s k ,Enc(s k-1 ,...,Enc(s 1 ,m))) (the right-hand side means that m is encrypted with s 1 , which is then encrypted with s 2 , which is then further encrypted with s 3 , and this is repeated up to s k ).
また、以下では、任意の自然数kと平文集合m=(m1,・・・,mk)Τに対して、Enc(s,m)=(Enc(s,m1),・・・,Enc(s,mk))Τという表記を用いる。平文集合が行列であっても同様に扱う。なお、Τは転置を表す。 In the following, for any natural number k and plaintext set m = ( m1 , ..., mk ) T , the notation Enc(s, m) = (Enc(s, m1 ), ..., Enc(s, mk )) T is used. The same applies even if the plaintext set is a matrix. Note that T represents a transpose.
ベクトルtのi番目の要素t[i]と表記する。 The i-th element of vector t is denoted as t[i].
≪実施例1における2パーティ秘密計算処理≫
実施例1における2パーティ秘密計算処理について図3を参照しながら説明する。
<<Two-party secure computation process in the first embodiment>>
The two-party secure computation process in the first embodiment will be described with reference to FIG.
ステップS101:秘密計算装置10の秘密計算部101は、可換暗号の秘密鍵aをランダムに選び、t1=Enc(a,A1)を計算する。
Step S101: The
ステップS102:秘密計算装置10の通信部102は、t1を秘密計算装置20に送信する。
Step S102: The
ステップS103:秘密計算装置20の秘密計算部201は、可換暗号の秘密鍵bをランダムに選び、t2=Enc(b,B1)を計算する。
Step S103: The
ステップS104:秘密計算装置20の通信部202は、t2を秘密計算装置10に送信する。
Step S104: The
ステップS105:秘密計算装置10の秘密計算部101は、t2の要素をランダムに並べ替えたt2'に対して、t3=Enc(a,t2')を計算する。
Step S105: The
ステップS106:秘密計算装置10の通信部102は、t3を秘密計算装置20に送信する。
Step S106: The
ステップS107:秘密計算装置20の秘密計算部201は、t4=Enc(1/b,t3)を計算し、t5=t1∪t4とする(このとき、t5の要素の順番は、t1の要素を順に並べたものに、t4の要素のうちt1と被っている要素を除いて順に並べたものを連結するようにする。)。次に、秘密計算装置20の秘密計算部201は、可換暗号の秘密鍵c,dをランダムに選び、t6=Enc(c,t5)とt7=Enc(d,B1)を計算する。
Step S107: The
ステップS108:秘密計算装置20の通信部202は、t6,t7を秘密計算装置10に送信する。
Step S108: The
ステップS109:秘密計算装置10の秘密計算部101は、可換暗号の秘密鍵eをランダムに選ぶと共に、加法準同型暗号の公開鍵、秘密鍵(PK,SK)をランダムに選ぶ。次に、秘密計算装置10の秘密計算部101は、t8=Enc(e/a,t6)を計算すると共に、
Step S109: The
ステップS110:秘密計算装置10の通信部102は、t8',T1',t9を秘密計算装置20に送信する。
Step S110: The
ステップS111:秘密計算装置20の秘密計算部201は、v=Enc(1/c,t8')とw=Enc(1/d,t9)を計算する。次に、秘密計算装置20の秘密計算部201は、φをw[i]=v[φ(i)]を満たす関数として、Zをi行目がT1'のφ(i)行目の行である|B1|×|A2|の行列とする。そして、秘密計算装置20の秘密計算部201は、T2=YΤZを加法準同型暗号の加法準同型計算により計算する。
Step S111: The
ステップS112:秘密計算装置20の通信部202は、T2を秘密計算装置10に送信する。
Step S112: The
ステップS113:秘密計算装置10の秘密計算部101は、aDec(SK,T2)と復号する。この復号結果の(jB,jA)成分は
Step S113: The
<実施例2>
以下、実施例2について説明する。実施例2は、実施例1の通信量やラウンド数を削減した改良版のプロトコルである。
Example 2
Hereinafter, a description will be given of Example 2. Example 2 is an improved version of the protocol in Example 1, in which the amount of communication and the number of rounds are reduced.
≪準備≫
L=|B1\A1|とする。また、記法の乱用ではあるが、aがベクトルtの要素に含まれる場合、a∈tと表記する。更に、DをD∩(A1∪B1)=φ(空集合)である集合とする。なお、これら以外については、実施例1と同様の記号や表記を用いるものとする。
<Preparation>
Let L = |B 1 \A 1 |. Although it is an abuse of notation, if a is included in an element of vector t, it is written as a∈t. Furthermore, let D be a set where D∩(A 1 ∪B 1 ) = φ (empty set). Note that for the rest, the same symbols and notations as in Example 1 are used.
≪実施例2における2パーティ秘密計算処理≫
実施例2における2パーティ秘密計算処理について図4を参照しながら説明する。
<<Two-party secure computation process in the second embodiment>>
The two-party secure computation process in the second embodiment will be described with reference to FIG.
ステップS201:秘密計算装置10の秘密計算部101は、可換暗号の秘密鍵aをランダムに選び、t1=Enc(a,A1)を計算する。
Step S201: The
ステップS202:秘密計算装置10の通信部102は、t1を秘密計算装置20に送信する。
Step S202: The
ステップS203:秘密計算装置20の秘密計算部201は、可換暗号の秘密鍵bをランダムに選ぶ。次に、秘密計算装置20の秘密計算部201は、t1の要素をランダムに並べ替えたt1'に対して、t2=Enc(b,t1')を計算する。また、秘密計算装置20の秘密計算部201は、t3=Enc(b,B1)とt4=Enc(b,D)を計算する。
Step S203: The
ステップS204:秘密計算装置20の通信部202は、t2,t3,t4を秘密計算装置20に送信する。
Step S204: The
ステップS205:秘密計算装置10の秘密計算部101は、t5=Enc(1/a,t2)を計算し、t6={t6[1],・・・,t6[|B1|]}の各要素t6[i]を以下により計算する。
Step S205: The
ステップS206:秘密計算装置10の通信部102は、t7,t8',T1'を秘密計算装置20に送信する。
Step S206: The
ステップS207:秘密計算装置20の秘密計算部201は、v=t8'とw=Enc(1/b,t7)を計算する。次に、秘密計算装置20の秘密計算部201は、φをw[i]=v[φ(i)]を満たす関数として、Zをi行目がT1'のφ(i)行目の行である|B1|×|A2|の行列とする。そして、秘密計算装置20の秘密計算部201は、T2=YΤZを加法準同型暗号の加法準同型計算により計算する。
Step S207: The
ステップS208:秘密計算装置20の通信部202は、T2を秘密計算装置10に送信する。
Step S208: The
ステップS209:秘密計算装置10の秘密計算部101は、aDec(SK,T2)と復号する。この復号結果の(jB,jA)成分は
Step S209: The
<まとめ>
以上のように、実施例1及び2における秘密計算システム1では、パーティAが持つ数値集合XとパーティBが持つ数値集合Yから上記の数6に示す関数値(つまり、数値集合Xの要素と数値集合Yの要素の間のある集計値を表す関数値)を2パーティ秘密計算により計算し、それらの関数値をパーティAのみが得ることができる。しかも、このとき、効率が悪い処理である完全準同型計算を用いずに、効率的に実行可能な処理である加法準同型計算のみを用いて関数値を計算する。これにより、上記の数6に示す関数値を計算するための2パーティ秘密計算を効率的に実行することが可能となる。
<Summary>
As described above, in the
なお、上述したように、上記の数6に示す関数値が計算できると、例えば、パーティA、Bの両者が持っているデータベースを等結合して、それに付随するデータのクロス集計表を計算すること等が可能となる。したがって、本実施形態に係る秘密計算装置10は、更にクロス集計表を計算し、それを出力(表示、保存、他の機器又は装置に送信すること等を含む)することができてもよい。As described above, if the function value shown in the above formula 6 can be calculated, it becomes possible, for example, to equally combine the databases held by both parties A and B and calculate a cross-tabulation table of the associated data. Therefore, the
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。The present invention is not limited to the specifically disclosed embodiments above, and various modifications, variations, and combinations with known technologies are possible without departing from the scope of the claims.
10 秘密計算装置
20 秘密計算装置
101 秘密計算部
102 通信部
103 記憶部
201 秘密計算部
202 通信部
203 記憶部
301 入力装置
302 表示装置
303 外部I/F
303a 記録媒体
304 通信I/F
305 プロセッサ
306 メモリ装置
307 バス
N 通信ネットワーク
REFERENCE SIGNS
303a Recording medium 304 Communication I/F
305
Claims (7)
前記第1の秘密計算装置は、
前記A1の要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記第2の秘密計算装置に送信する第1の暗号化部と、
前記第2の秘密計算装置から受信したベクトルに基づいて、前記第1の数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列T1を置換した行列T1'を計算し、前記行列T1'を前記第2の秘密計算装置に送信する第2の暗号化部と、
加法準同型計算の計算結果を前記第2の秘密計算装置から受信すると、前記計算結果を前記加法準同型暗号により復号し、xi,jyi,j'のi∈A1∩B1に関する和を(j',j)成分に持つ|B2|×|A2|行列を計算する復号部と、を有し、
前記第2の秘密計算装置は、
前記B1の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルを前記第1の秘密計算装置に送信する第3の暗号化部と、
前記第2の数値集合Yを表す行列の転置行列と、前記行列T1'の行を所定の関数により入れ替えた行列Zとの積を前記加法準同型計算により計算した計算結果を前記第1の秘密計算装置に送信する計算部と、
を有する秘密計算システム。 A secure computation system including a first secure computation apparatus having a first set of numerical values X=(x i,j ) (i∈A 1 , j∈A 2 ) and a second secure computation apparatus having a second set of numerical values Y=(y i,j ) (i∈B 1 , j∈B 2 ),
The first secure computing device is
a first encryption unit that transmits a vector having elements that are ciphertexts obtained by encrypting elements of the A1 using a commutative cipher to the second secure computing device;
a second encryption unit that calculates a matrix T 1 ′ by permuting a matrix T 1 having elements that are ciphertexts obtained by encrypting elements of the first numerical set X by additive homomorphic encryption based on the vector received from the second secure computing device, and transmits the matrix T 1 ′ to the second secure computing device;
a decryption unit which, upon receiving a calculation result of the additive homomorphic computation from the second secure computing device, decrypts the calculation result by the additive homomorphic encryption and calculates a |B 2 |×|A 2 | matrix having a (j',j) component that is the sum of x i,j y i,j' with respect to i∈A 1 ∩B 1,
The second secure computing device is
a third encryption unit that transmits a vector having elements that are ciphertexts obtained by encrypting elements of the B1 using the commutative cipher to the first secure computing device;
a calculation unit that calculates, by the additive homomorphic calculation, a product of a transposed matrix of a matrix representing the second set of values Y and a matrix Z obtained by replacing rows of the matrix T 1 ′ by a predetermined function, and transmits the result of the calculation to the first secure computing device;
A secure computing system having the above structure.
前記A1の要素を可換暗号により暗号化した暗号文を要素に持つベクトルt1を前記第2の秘密計算装置に送信し、
前記第2の秘密計算装置からベクトルt2を受信すると、前記ベクトルt2の要素を並べ替えたベクトルt2'を計算し、前記ベクトルt2'の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt3を前記第2の秘密計算装置に送信し、
前記第3の暗号化部は、
前記B1の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt2を前記第1の秘密計算装置に送信し、
前記第1の秘密計算装置からベクトルt3を受信すると、前記ベクトルt3の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt4を計算し、前記ベクトルt1の要素と前記ベクトルt4の要素とを持つベクトルt5と計算し、前記ベクトルt5の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt6と、前記B1の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt7とを前記第1の秘密計算装置に送信し、
前記第2の暗号化部は、
前記ベクトルt6と前記ベクトルt7とを前記第2の秘密計算装置から受信すると、前記ベクトルt6の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt8と、前記行列T1とを計算し、前記ベクトルt8及び前記行列T1の行を共通のランダム置換でそれぞれ並べ替えたベクトルt8'及び前記行列T1'と、前記ベクトルt7の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt9とを前記第2の秘密計算装置に送信し、
前記計算部は、
前記ベクトルt8'と前記行列T1'と前記ベクトルt9とを前記第1の秘密計算装置から受信すると、前記ベクトルt8'の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルvと、前記ベクトルt9の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルwとを計算し、前記ベクトルvのi番目の要素v[i]と前記ベクトルwのφ(i)番目の要素w[φ(i)]とが等しくなる関数φを用いてi行目が前記行列T1'のφ(i)番目の行となる前記行列Zを計算し、前記転置行列と前記行列Zとの積を前記加法準同型計算により計算する、請求項1に記載の秘密計算システム。 The first encryption unit
A vector t1 having elements that are ciphertexts obtained by encrypting the elements of A1 using a commutative cipher is transmitted to the second secure computing device;
Upon receiving vector t2 from the second secure computing device, calculate vector t2 ' by rearranging elements of vector t2 , and transmit vector t3 having elements which are ciphertexts obtained by encrypting elements of vector t2 ' by the commutative cipher to the second secure computing device;
The third encryption unit
A vector t2 having elements that are ciphertexts obtained by encrypting the elements of B1 using the commutative cipher is transmitted to the first secure computing device;
upon receiving vector t3 from the first secure computing device, calculate vector t4 having elements which are ciphertext obtained by encrypting elements of vector t3 using the commutative cipher, calculate vector t5 having elements of vector t1 and elements of vector t4 , and transmit vector t6 having elements which are ciphertext obtained by encrypting elements of vector t5 using the commutative cipher and vector t7 having elements which are ciphertext obtained by encrypting elements of B1 using the commutative cipher to the first secure computing device;
The second encryption unit
Upon receiving the vector t6 and the vector t7 from the second secure computing device, calculate a vector t8 having elements which are ciphertext obtained by encrypting the elements of the vector t6 using the commutative cipher, and the matrix T1 , and transmit to the second secure computing device vector t8 ' and matrix T1 ' which are obtained by rearranging the rows of the vector t8 and the matrix T1 using a common random permutation, respectively, and vector t9 having elements which are ciphertext obtained by encrypting the elements of the vector t7 using the commutative cipher,
The calculation unit is
The secure computation system of claim 1, wherein, upon receiving the vector t8 ', the matrix T1 ', and the vector t9 from the first secure computation device, a vector v having elements which are ciphertext obtained by encrypting the elements of the vector t8 ' using the commutative encryption and a vector w having elements which are ciphertext obtained by encrypting the elements of the vector t9 using the commutative encryption are calculated, the matrix Z whose i-th row becomes the φ(i)-th row of the matrix T1 ' is calculated using a function φ that makes the i-th element v[i] of the vector v equal to the φ(i)-th element w[φ(i)] of the vector w, and the product of the transposed matrix and the matrix Z is calculated using the additive homomorphic computation.
前記A1の要素を可換暗号により暗号化した暗号文を要素に持つベクトルt1を前記第2の秘密計算装置に送信し、
前記第2の暗号化部は、
前記第2の秘密計算装置からベクトルt2とベクトルt3とベクトルt4とを受信すると、前記ベクトルt2の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt5を計算し、前記ベクトルt3と前記ベクトルt5との関係性に基づいて、前記ベクトルt3と前記ベクトルt4からベクトルt6を計算し、前記ベクトルt6の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt7と、前記A1の要素とD∩(A1∪B1)=φを満たす集合Dの要素とを前記可換暗号により暗号化した暗号文を要素に持つベクトルt8と、前記行列T1とを計算し、前記ベクトルt8及び前記行列T1の行を共通のランダム置換でそれぞれ並べ替えたベクトルt8'及び前記行列T1'と、前記ベクトルt7とを前記第2の秘密計算装置に送信し、
前記第3の暗号化部は、
前記ベクトルt1を前記第1の秘密計算装置から受信すると、前記ベクトルt1の要素をランダムに並べ替えたベクトルt1'を計算し、前記ベクトルt1'の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt2と、前記B1の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt3と、前記Dの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルt4とを前記第1の秘密計算装置に送信し、
前記計算部は、
前記ベクトルt8'と前記行列T1'と前記ベクトルt7とを前記第1の秘密計算装置から受信すると、前記ベクトルt8'をベクトルvとすると共に、前記ベクトルt7の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルwを計算し、前記ベクトルvのi番目の要素v[i]と前記ベクトルwのφ(i)番目の要素w[φ(i)]とが等しくなる関数φを用いてi行目が前記行列T1'のφ(i)番目の行となる前記行列Zを計算し、前記転置行列と前記行列Zとの積を前記加法準同型計算により計算する、請求項1に記載の秘密計算システム。 The first encryption unit
A vector t1 having elements that are ciphertexts obtained by encrypting the elements of A1 using a commutative cipher is transmitted to the second secure computing device;
The second encryption unit
upon receiving vector t2 , vector t3 , and vector t4 from the second secure computing device, calculate vector t5 having elements which are ciphertexts obtained by encrypting elements of vector t2 using the commutative encryption, calculate vector t6 from vector t3 and vector t4 based on the relationship between vector t3 and vector t5 , calculate vector t7 having elements which are ciphertexts obtained by encrypting elements of vector t6 using the commutative encryption, calculate vector t8 having elements which are ciphertexts obtained by encrypting elements of A1 and elements of set D which satisfies D∩( A1∪B1 )=φ using the commutative encryption, and calculate matrix T1 , and transmit vector t8 ' and matrix T1 ' obtained by rearranging rows of vector t8 and matrix T1 , respectively, using a common random permutation, and vector t7 to the second secure computing device;
The third encryption unit
upon receiving the vector t1 from the first secure computing device, calculate a vector t1 ' by randomly rearranging the elements of the vector t1 , and transmit to the first secure computing device a vector t2 having elements which are ciphertexts obtained by encrypting the elements of the vector t1 ' using the commutative cipher, a vector t3 having elements which are ciphertexts obtained by encrypting the elements of the B1 using the commutative cipher, and a vector t4 having elements which are ciphertexts obtained by encrypting the elements of the D using the commutative cipher,
The calculation unit is
The secure computing system of claim 1, wherein when the vector t8 ', the matrix T1 ', and the vector t7 are received from the first secure computing device, the vector t8 ' is set as vector v, and a vector w whose elements are ciphertext obtained by encrypting the elements of the vector t7 using the commutative encryption is calculated, the matrix Z whose i-th row becomes the φ(i)-th row of the matrix T1 ' is calculated using a function φ that makes the i-th element v[i] of the vector v equal to the φ(i)-th element w[φ(i)] of the vector w, and the product of the transposed matrix and the matrix Z is calculated using the additive homomorphic computation.
前記A1の要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記他の秘密計算装置に送信する第1の暗号化部と、
前記他の秘密計算装置から受信したベクトルに基づいて、前記数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列T1を置換した行列T1'を計算し、前記行列T1'を前記他の秘密計算装置に送信する第2の暗号化部と、
加法準同型計算の計算結果を前記他の秘密計算装置から受信すると、前記計算結果を前記加法準同型暗号により復号し、xi,jyi,j'のi∈A1∩B1に関する和を(j',j)成分に持つ|B2|×|A2|行列を計算する復号部と、を有する秘密計算装置。 A secure computing device having a numerical value set X=(x i ,j )(i∈A 1 , j∈A 2 ) and connected to another secure computing device capable of communicating with the other secure computing device having a numerical value set Y=(y i,j )(i∈B 1 , j∈B 2 ),
a first encryption unit that transmits a vector having elements that are ciphertexts obtained by encrypting elements of the A1 using a commutative cipher to the other secure computing device;
a second encryption unit that calculates a matrix T 1 ′ by replacing a matrix T 1 having elements that are ciphertexts obtained by encrypting elements of the numerical set X by additive homomorphic encryption based on the vector received from the other secure computing device, and transmits the matrix T 1 ′ to the other secure computing device;
and a decryption unit that, when receiving a calculation result of an additive homomorphic calculation from the other secure computing device, decrypts the calculation result by the additive homomorphic encryption and calculates a |B 2 |×|A 2 | matrix having a (j', j) component that is the sum of x i,j y i,j' with respect to i∈A 1 ∩B 1 .
前記B1の要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記他の秘密計算装置に送信する暗号化部と、
前記数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列T1を置換した行列T1'を受信すると、前記数値集合Yを表す行列の転置行列と、前記行列T1'の行を所定の関数により入れ替えた行列Zとの積を前記加法準同型暗号の加法準同型計算により計算する計算部と、
を有する秘密計算装置。 A secure computing device having a numerical value set Y=( yi,j ) ( i∈B1 , j∈B2 ) and connected to another secure computing device capable of communicating with the other secure computing device having a numerical value set X=(xi ,j ) ( i∈A1 , j∈A2 ),
an encryption unit that transmits a vector having an element that is a ciphertext obtained by encrypting an element of the B1 by a commutative cipher to the other secure computing device;
a calculation unit that, upon receiving a matrix T1 ' obtained by permuting a matrix T1 having elements that are ciphertext obtained by encrypting elements of the value set X using additive homomorphic encryption, calculates the product of a transposed matrix of a matrix representing the value set Y and a matrix Z obtained by permuting rows of the matrix T1 ' using a predetermined function using additive homomorphic calculation of the additive homomorphic encryption;
A secure computing device having the above configuration.
前記第1の秘密計算装置が、
前記A1の要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記第2の秘密計算装置に送信する第1の暗号化手順と、
前記第2の秘密計算装置から受信したベクトルに基づいて、前記第1の数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列T1を置換した行列T1'を計算し、前記行列T1'を前記第2の秘密計算装置に送信する第2の暗号化手順と、
加法準同型計算の計算結果を前記第2の秘密計算装置から受信すると、前記計算結果を前記加法準同型暗号により復号し、xi,jyi,j'のi∈A1∩B1に関する和を(j',j)成分に持つ|B2|×|A2|行列を計算する復号手順と、を実行し、
前記第2の秘密計算装置が、
前記B1の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルを前記第1の秘密計算装置に送信する第3の暗号化手順と、
前記第2の数値集合Yを表す行列の転置行列と、前記行列T1'の行を所定の関数により入れ替えた行列Zとの積を前記加法準同型計算により計算した計算結果を前記第1の秘密計算装置に送信する計算手順と、
を実行する秘密計算方法。 A secure computation method for use in a secure computation system including a first secure computation device having a first set of numerical values X=(x i,j ) (i∈A 1 , j∈A 2 ) and a second secure computation device having a second set of numerical values Y=(y i,j ) (i∈B 1 , j∈B 2 ),
The first secure computing device,
a first encryption step of transmitting a vector having elements each of which is a ciphertext obtained by encrypting elements of the A1 using a commutative cipher to the second secure computing device;
a second encryption step of calculating a matrix T 1 ′ by replacing a matrix T 1 having elements each of which is a ciphertext obtained by encrypting elements of the first numerical set X by additive homomorphic encryption based on the vector received from the second secure computing device, and transmitting the matrix T 1 ′ to the second secure computing device;
a decryption step of receiving a calculation result of the additive homomorphic computation from the second secure computing device, decrypting the calculation result by the additive homomorphic encryption, and calculating a |B 2 |×|A 2 | matrix having a (j',j) component that is the sum of x i,j y i,j' with respect to i∈A 1 ∩B 1 ;
The second secure computing device,
a third encryption step of transmitting a vector having elements each of which is a ciphertext obtained by encrypting an element of the B1 by the commutative cipher to the first secure computing device;
a calculation step of calculating, by the additive homomorphic calculation, a product of a transposed matrix of a matrix representing the second set of values Y and a matrix Z obtained by replacing rows of the matrix T 1 ′ by a predetermined function, and transmitting the result of the calculation to the first secure computing device;
A secret computation method for performing
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2021/026939 WO2023002525A1 (en) | 2021-07-19 | 2021-07-19 | Secret calculation system, secret calculation device, secret calculation method, and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2023002525A1 JPWO2023002525A1 (en) | 2023-01-26 |
| JP7540599B2 true JP7540599B2 (en) | 2024-08-27 |
Family
ID=84979830
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2023536228A Active JP7540599B2 (en) | 2021-07-19 | 2021-07-19 | Secure computation system, secure computation device, secure computation method, and program |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7540599B2 (en) |
| WO (1) | WO2023002525A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2025004250A1 (en) * | 2023-06-28 | 2025-01-02 | ||
| JP7829820B1 (en) * | 2025-01-08 | 2026-03-13 | 三菱電機株式会社 | Data management systems, data management methods, and data management programs |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6532843B2 (en) * | 2016-07-21 | 2019-06-19 | 日本電信電話株式会社 | Secret calculation system, first secret calculation device, second secret calculation device, secret circuit generation method, secret circuit evaluation method, program |
-
2021
- 2021-07-19 WO PCT/JP2021/026939 patent/WO2023002525A1/en not_active Ceased
- 2021-07-19 JP JP2023536228A patent/JP7540599B2/en active Active
Non-Patent Citations (2)
| Title |
|---|
| 光成 滋生,Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモ,2021年 暗号と情報セキュリティシンポジウム予稿集 [online],2021年01月19日,pp.1-6 |
| 片山 源太郎 ほか,匿名加工をともなう2パーティ秘匿クロス集計の完全準同型暗号による実現と性能比較,情報処理学会 論文誌(ジャーナル) Vol.61 No.6 [online],日本,情報処理学会,2020年06月15日,pages 1175-1189 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2023002525A1 (en) | 2023-01-26 |
| JPWO2023002525A1 (en) | 2023-01-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11798435B2 (en) | Executing a cryptographic operation | |
| Yang et al. | Image encryption based on fractional chaotic pseudo-random number generator and DNA encryption method | |
| CN115688167B (en) | Stealth query method, device and system and storage medium | |
| Anees et al. | Designing secure substitution boxes based on permutation of symmetric group | |
| Salarifard et al. | An efficient low-latency point-multiplication over curve25519 | |
| US11764943B2 (en) | Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology | |
| Kuang et al. | A new quantum-safe multivariate polynomial public key digital signature algorithm | |
| CN113971290B (en) | Methods and devices for compiling cryptographic information, consumables, authentication systems and media | |
| US11093213B1 (en) | Cryptographic computer machines with novel switching devices | |
| Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
| CN111555880A (en) | Data collision method and device, storage medium and electronic equipment | |
| EP3483866B1 (en) | Secure computation system, secure computation device, secure computation method, and program | |
| KR20220054746A (en) | Systems and methods for performing equality and less-than operations on encrypted data using quasi-group operations | |
| AU2020265775A1 (en) | System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption | |
| JP7540599B2 (en) | Secure computation system, secure computation device, secure computation method, and program | |
| CN115918028A (en) | Device and method for performing statistical operations on homomorphic ciphertext | |
| CN112865957A (en) | Data encryption transmission method and device, computer target equipment and storage medium | |
| Courtois | Security evaluation of GOST 28147-89 in view of international standardisation | |
| Kuang et al. | Homomorphic polynomial public key encapsulation over two hidden rings for quantum-safe key encapsulation: R. Kuang, M. Perepechaenko | |
| EP4080488B1 (en) | Secret random number generation system, secret calculation device, secret random number generation method, and program | |
| Tong et al. | Owner-free distributed symmetric searchable encryption supporting conjunctive queries | |
| US20220069980A1 (en) | Information processing apparatus, secure computation method, and program | |
| US20240411514A1 (en) | Methods and systems for addition, multiplication, subtraction, and division of rational numbers encoded in the domain of farey rationals for mpc systems | |
| Karanam et al. | Performance evaluation of cryptographic security algorithms on cloud | |
| Lau et al. | A new encryption scheme based on rank metric codes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231023 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20240701 |
|
| 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: 20240716 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240729 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7540599 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |