Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7540599B2 - Secure computation system, secure computation device, secure computation method, and program - Google Patents
[go: Go Back, main page]

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 PDF

Info

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
Application number
JP2023536228A
Other languages
Japanese (ja)
Other versions
JPWO2023002525A1 (en
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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2023002525A1 publication Critical patent/JPWO2023002525A1/ja
Application granted granted Critical
Publication of JP7540599B2 publication Critical patent/JP7540599B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

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.

Figure 0007540599000001
を持っており(A,A,B,Bは任意の集合)、それらの数値集合から計算される計算結果(関数値)f,・・・,fをAのみが得て、それ以外の数値集合に関する情報を相手方にほとんど漏らさないような2パーティ秘密計算を考える。ただし、それらの関数値は、
Figure 0007540599000001
(A 1 , A 2 , B 1 , B 2 are arbitrary sets), and only A can obtain the calculation results (function values) f 1 , ..., f n calculated from these numerical sets, and little information about the other numerical sets is leaked to the other party. However, these function values are

Figure 0007540599000002
に対して、
Figure 0007540599000002
In contrast,

Figure 0007540599000003
と書けるものとする。このような計算ができると、例えば、パーティA、Bの両者が持っているデータベースを等結合して、それに付随するデータのクロス集計表を計算すること等が可能となる。
Figure 0007540599000003
If such calculations can be performed, it will be possible to, for example, equally combine the databases held by parties A and B and calculate a cross-tabulation table of the associated data.

上記のような計算を実現するために、従来技術では、秘匿回路や完全準同型暗号を使って一般回路的に計算をするか(例えば、非特許文献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).

Andrew Chi-Chih Yao: How to Generate and Exchange Secrets. FOCS 1986Andrew Chi-Chih Yao: How to Generate and Exchange Secrets. FOCS 1986 片山 源太郎、吉浦 裕: 匿名加工をともなう2 パーティ秘匿クロス集計の完全準同型暗号による実現と性能比較. 情報処理学会論文誌vol.61 No.6 1175-1189 (June 2020)Gentaro Katayama, Yutaka Yoshiura: Realization and Performance Comparison of Two-Party Private Cross-Tabulation with Anonymization Using Fully Homomorphic Encryption. Transactions of Information Processing Society of Japan, vol.61, No.6, 1175-1189 (June 2020)

しかしながら、一般回路的に計算する方法は当然非常に効率が悪く、特化したプロトコルであっても一部に完全準同型計算(つまり、加法と乗法を両方使用する準同型計算)という効率の悪い処理が含まれるため非効率なプロトコルとなっている。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∈A,j∈A)を持つ第1の秘密計算装置と、第2の数値集合Y=(yi,j)(i∈B,j∈B)を持つ第2の秘密計算装置とが含まれる秘密計算システムであって、前記第1の秘密計算装置は、前記Aの要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記第2の秘密計算装置に送信する第1の暗号化部と、前記第2の秘密計算装置から受信したベクトルに基づいて、前記第1の数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列Tを置換した行列T'を計算し、前記行列T'を前記第2の秘密計算装置に送信する第2の暗号化部と、加法準同型計算の計算結果を前記第2の秘密計算装置から受信すると、前記計算結果を前記加法準同型暗号により復号し、xi,ji,j'のi∈A∩Bに関する和を(j',j)成分に持つ|B|×|A|行列を計算する復号部と、を有し、前記第2の秘密計算装置は、前記Bの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルを前記第1の秘密計算装置に送信する第3の暗号化部と、前記第2の数値集合Yを表す行列の転置行列と、前記行列T'の行を所定の関数により入れ替えた行列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.

本実施形態に係る秘密計算システムの全体構成の一例を示す図である。1 is a diagram showing an example of the overall configuration of a secure computation system according to an embodiment of the present invention; 本実施形態に係る秘密計算装置のハードウェア構成の一例を示す図である。FIG. 2 is a diagram illustrating an example of a hardware configuration of a secure computing device according to the present embodiment. 実施例1における2パーティ秘密計算処理を示すシーケンス図である。FIG. 11 is a sequence diagram showing a two-party secure computation process in the first embodiment. 実施例2における2パーティ秘密計算処理を示すシーケンス図である。FIG. 11 is a sequence diagram showing a two-party secure computation process in the second embodiment.

以下、本発明の一実施形態について説明する。本実施形態では、パーティ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.

Figure 0007540599000004
を持っており(A,A,B,Bは任意の集合)、それらの数値集合から計算される計算結果(関数値)f,・・・,fをAのみが得て、それ以外の数値集合に関する情報を相手方であるBにほとんど漏らさないような2パーティ秘密計算を対象として、当該2パーティ秘密計算を効率的に実行することができる秘密計算システム1について説明する。ただし、それらの関数値は、
Figure 0007540599000004
(A 1 , A 2 , B 1 , B 2 are arbitrary sets), and only A obtains the calculation results (function values) f 1 , ..., f n calculated from these numerical value sets, and information about other numerical value sets is hardly leaked to the other party B. The following describes a secure computation system 1 that can efficiently execute the two-party secure computation. However, these function values are

Figure 0007540599000005
に対して、
Figure 0007540599000005
In contrast,

Figure 0007540599000006
と書けるものとする。なお、nは任意の自然数である。上述したように、このような計算ができると、例えば、パーティA、Bの両者が持っているデータベースを等結合して、それに付随するデータのクロス集計表を計算すること等が可能となる。
Figure 0007540599000006
where n is any natural number. As mentioned above, if such calculations are possible, it will be possible to, for example, equally combine the databases held by parties A and B and calculate a cross-tabulation table of the associated data.

<秘密計算システム1の全体構成>
本実施形態に係る秘密計算システム1には、秘密計算装置10と、秘密計算装置20とが含まれる。秘密計算装置10と秘密計算装置20は、例えば、インターネット等を含む通信ネットワークNを介して通信可能に接続される。
<Overall configuration of secure computation system 1>
The secure computation system 1 according to this embodiment includes a secure computation apparatus 10 and a secure computation apparatus 20. The secure computation apparatus 10 and the secure computation apparatus 20 are communicatively connected via a communication network N including, for example, the Internet.

秘密計算装置10は、パーティAとして機能するコンピュータ又はコンピュータシステムである。例えば、秘密計算装置10は、パーティAとして機能するデータベースサーバ等である。The secure computing device 10 is a computer or computer system that functions as party A. For example, the secure computing device 10 is a database server or the like that functions as party A.

ここで、秘密計算装置10は、秘密計算部101と、通信部102とを有する。これら各部は、例えば、秘密計算装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。Here, the secure computing device 10 has a secure computing unit 101 and a communication unit 102. Each of these units is realized, for example, by a process in which one or more programs installed in the secure computing device 10 are executed by a processor such as a CPU (Central Processing Unit).

また、秘密計算装置10は、記憶部103を有する。記憶部103は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置により実現される。The secure computing device 10 also has a memory unit 103. The memory unit 103 is realized by an auxiliary storage device such as a hard disk drive (HDD) or a solid state drive (SSD).

秘密計算部101は、秘密計算装置20との間で、後述する実施例1又は2で説明する2パーティ秘密計算を行って、関数値f,・・・,fを得る。通信部102は、当該2パーティ秘密計算に必要な各種情報の送受信を行う。記憶部103は、数値集合XとA、Aを記憶している。 The secure computation unit 101 performs two-party secure computation with the secure computation device 20, as described in the following embodiment 1 or 2, to obtain function values f1 , ..., fn . The communication unit 102 transmits and receives various information necessary for the two-party secure computation. The storage unit 103 stores a numerical value set X, and A1 and A2 .

秘密計算装置20は、パーティBとして機能するコンピュータ又はコンピュータシステムである。例えば、秘密計算装置20は、パーティBとして機能するデータベースサーバ等である。The secure computing device 20 is a computer or computer system that functions as party B. For example, the secure computing device 20 is a database server or the like that functions as party B.

ここで、秘密計算装置20は、秘密計算部201と、通信部202とを有する。これら各部は、例えば、秘密計算装置20にインストールされた1以上のプログラムが、CPU等のプロセッサに実行させる処理により実現される。Here, the secure computing device 20 has a secure computing unit 201 and a communication unit 202. Each of these units is realized, for example, by a process in which one or more programs installed in the secure computing device 20 are executed by a processor such as a CPU.

また、秘密計算装置20は、記憶部203を有する。記憶部203は、例えば、HDDやSSD等の補助記憶装置により実現される。The secure computing device 20 also has a memory unit 203. The memory unit 203 is realized, for example, by an auxiliary storage device such as a HDD or SSD.

秘密計算部201は、秘密計算装置10との間で、後述する実施例1又は2で説明する2パーティ秘密計算を行う。通信部202は、当該2パーティ秘密計算に必要な各種情報の送受信を行う。記憶部203は、数値集合YとB、Bを記憶している。 The secure computation unit 201 performs two-party secure computation, which will be described in the following embodiment 1 or 2, with the secure computation device 10. The communication unit 202 transmits and receives various information necessary for the two-party secure computation. The storage unit 203 stores a set of numerical values Y, B1 , and B2 .

<秘密計算装置10、20のハードウェア構成>
本実施形態に係る秘密計算装置10、20のハードウェア構成を図2に示す。なお、秘密計算装置10、20は同様のハードウェア構成で実現可能であるため、以下では、主に、秘密計算装置10のハードウェア構成について説明する。
<Hardware Configuration of the Secure Computing Apparatuses 10 and 20>
The hardware configuration of the secure computing apparatuses 10 and 20 according to this embodiment is shown in Fig. 2. Note that since the secure computing apparatuses 10 and 20 can be realized with the same hardware configuration, the following mainly describes the hardware configuration of the secure computing apparatus 10.

図2に示すように、本実施形態に係る秘密計算装置10は一般的なコンピュータ又はコンピュータシステムのハードウェア構成で実現され、入力装置301と、表示装置302と、外部I/F303と、通信I/F304と、プロセッサ305と、メモリ装置306とを有する。これらの各ハードウェアは、それぞれがバス307を介して通信可能に接続される。2, the secure computing device 10 according to this embodiment is realized by the hardware configuration of a general computer or computer system, and has an input device 301, a display device 302, an external I/F 303, a communication I/F 304, a processor 305, and a memory device 306. Each of these pieces of hardware is connected to each other so as to be able to communicate with each other via a bus 307.

入力装置301は、例えば、キーボードやマウス、タッチパネル、各種物理ボタン等である。表示装置302は、例えば、ディスプレイや表示パネル等である。なお、秘密計算装置10、20は、例えば、入力装置301及び表示装置302のうちの少なくとも一方を有していなくてもよい。The input device 301 is, for example, a keyboard, a mouse, a touch panel, various physical buttons, etc. The display device 302 is, for example, a display, a display panel, etc. Note that the secure computing devices 10 and 20 may not have at least one of the input device 301 and the display device 302, for example.

外部I/F303は、記録媒体303a等とのインタフェースである。なお、記録媒体303aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。The external I/F 303 is an interface with a recording medium 303a, etc. Examples of the recording medium 303a include a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), and a USB (Universal Serial Bus) memory card.

通信I/F304は、通信ネットワークNとのインタフェースである。プロセッサ305は、例えば、CPU等の各種演算装置である。メモリ装置306は、例えば、HDDやSSD、フラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)等の各種記憶装置である。The communication I/F 304 is an interface with the communication network N. The processor 305 is, for example, various arithmetic devices such as a CPU. The memory device 306 is, for example, various storage devices such as an HDD, SSD, flash memory, RAM (Random Access Memory), and ROM (Read Only Memory).

本実施形態に係る秘密計算装置10、20は、図2に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図2に示すハードウェア構成は一例であって、秘密計算装置10、20は、例えば、複数のプロセッサ305を有していてもよいし、複数のメモリ装置306を有していてもよいし、図2に示したハードウェア以外の様々なハードウェアを有していてもよい。また、図2では秘密計算装置10と秘密計算装置20のハードウェア構成が同様である場合について説明したが、秘密計算装置10と秘密計算装置20のハードウェア構成は異なっていてもよい。The secure computing devices 10 and 20 according to this embodiment have the hardware configuration shown in FIG. 2, and can realize various processes described below. Note that the hardware configuration shown in FIG. 2 is an example, and the secure computing devices 10 and 20 may have, for example, multiple processors 305, multiple memory devices 306, or various other hardware besides the hardware shown in FIG. 2. Also, while FIG. 2 describes a case where the hardware configurations of the secure computing device 10 and the secure computing device 20 are similar, the hardware configurations of the secure computing device 10 and the secure computing device 20 may be different.

<実施例1>
以下、実施例1について説明する。
Example 1
Example 1 will now be described.

≪準備≫
加法準同型暗号の公開鍵をPK、秘密鍵をSKとして、aEnc(PK,・)を加法準同型暗号の暗号化アルゴリズム、aDec(SK,・)を加法準同型暗号の復号アルゴリズムとする。また、加法準同型暗号の暗号文CTとCTへの加法準同型計算を単にCT+CTと加法的に表記する。
<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個の秘密鍵s,・・・,sに対して、次の性質を持つような暗号である。すなわち、秘密鍵空間はアーベル群であり、Enc(Πs,m)=Enc(s,Enc(sk-1,・・・,Enc(s,m)))を満たす(右辺はmをsで暗号化し、それをsで暗号化し、それを更にsで暗号化する、というのをsまで繰り返すことを意味している。)。 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=(m,・・・,mΤに対して、Enc(s,m)=(Enc(s,m),・・・,Enc(s,m))Τという表記を用いる。平文集合が行列であっても同様に扱う。なお、Τは転置を表す。 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をランダムに選び、t=Enc(a,A)を計算する。 Step S101: The secure computing unit 101 of the secure computing device 10 randomly selects a private key a for the commutative encryption, and calculates t 1 =Enc(a, A 1 ).

ステップS102:秘密計算装置10の通信部102は、tを秘密計算装置20に送信する。 Step S102: The communication unit 102 of the secure computing apparatus 10 transmits t 1 to the secure computing apparatus 20.

ステップS103:秘密計算装置20の秘密計算部201は、可換暗号の秘密鍵bをランダムに選び、t=Enc(b,B)を計算する。 Step S103: The secure computing unit 201 of the secure computing device 20 randomly selects a private key b of the commutative encryption, and calculates t 2 =Enc(b, B 1 ).

ステップS104:秘密計算装置20の通信部202は、tを秘密計算装置10に送信する。 Step S104: The communication unit 202 of the secure computing apparatus 20 transmits t 2 to the secure computing apparatus 10 .

ステップS105:秘密計算装置10の秘密計算部101は、tの要素をランダムに並べ替えたt'に対して、t=Enc(a,t')を計算する。 Step S105: The secure computation unit 101 of the secure computation apparatus 10 calculates t 3 =Enc(a, t 2 ′) for t 2 ′ obtained by randomly rearranging the elements of t 2 .

ステップS106:秘密計算装置10の通信部102は、tを秘密計算装置20に送信する。 Step S106: The communication unit 102 of the secure computing apparatus 10 transmits t 3 to the secure computing apparatus 20.

ステップS107:秘密計算装置20の秘密計算部201は、t=Enc(1/b,t)を計算し、t=t∪tとする(このとき、tの要素の順番は、tの要素を順に並べたものに、tの要素のうちtと被っている要素を除いて順に並べたものを連結するようにする。)。次に、秘密計算装置20の秘密計算部201は、可換暗号の秘密鍵c,dをランダムに選び、t=Enc(c,t)とt=Enc(d,B)を計算する。 Step S107: The secure computing unit 201 of the secure computing device 20 calculates t4 = Enc(1/b, t3 ) and sets t5 = t1t4 (at this time, the order of the elements of t5 is such that the elements of t1 arranged in order are concatenated with the elements of t4 arranged in order excluding the elements that overlap with t1 .) Next, the secure computing unit 201 of the secure computing device 20 randomly selects private keys c and d of the commutative cipher, and calculates t6 = Enc(c, t5 ) and t7 = Enc(d, B1 ).

ステップS108:秘密計算装置20の通信部202は、t,tを秘密計算装置10に送信する。 Step S108: The communication unit 202 of the secure computing apparatus 20 transmits t 6 and t 7 to the secure computing apparatus 10.

ステップS109:秘密計算装置10の秘密計算部101は、可換暗号の秘密鍵eをランダムに選ぶと共に、加法準同型暗号の公開鍵、秘密鍵(PK,SK)をランダムに選ぶ。次に、秘密計算装置10の秘密計算部101は、t=Enc(e/a,t)を計算すると共に、 Step S109: The secure computing unit 101 of the secure computing device 10 randomly selects a private key e for the commutative encryption and a public key and a private key (PK, SK) for the additive homomorphic encryption. Next, the secure computing unit 101 of the secure computing device 10 calculates t 8 =Enc(e/a, t 6 ) and obtains the following:

Figure 0007540599000007
を計算する。ただし、Oはすべての成分が0である|B\A|×|A|の行列とする。そして、秘密計算装置10の秘密計算部101は、t,Tの行を共通のランダム置換で並べ替えたものをそれぞれt',T'とする。また、秘密計算装置10の秘密計算部101は、t=Enc(e,t)を計算する。
Figure 0007540599000007
where O is a matrix of |B 1 \ A 1 |×|A 2 | with all components being 0. The secure computation unit 101 of the secure computation device 10 rearranges the rows of t 8 and T 1 by a common random permutation to obtain t 8 ' and T 1 ', respectively. The secure computation unit 101 of the secure computation device 10 also calculates t 9 = Enc(e, t 7 ).

ステップS110:秘密計算装置10の通信部102は、t',T',tを秘密計算装置20に送信する。 Step S110: The communication unit 102 of the secure computing apparatus 10 transmits t 8 ′, T 1 ′, and t 9 to the secure computing apparatus 20 .

ステップS111:秘密計算装置20の秘密計算部201は、v=Enc(1/c,t')とw=Enc(1/d,t)を計算する。次に、秘密計算装置20の秘密計算部201は、φをw[i]=v[φ(i)]を満たす関数として、Zをi行目がT'のφ(i)行目の行である|B|×|A|の行列とする。そして、秘密計算装置20の秘密計算部201は、T=YΤZを加法準同型暗号の加法準同型計算により計算する。 Step S111: The secure computation unit 201 of the secure computation device 20 calculates v=Enc(1/c, t8 ') and w=Enc(1/d, t9 ). Next, the secure computation unit 201 of the secure computation device 20 sets φ to a function that satisfies w[i]=v[φ(i)], and sets Z to a matrix of | B1 |×| A2 |, the i-th row of which is the φ(i)-th row of T1 '. Then, the secure computation unit 201 of the secure computation device 20 calculates T2 = YTZ by additive homomorphic computation of additive homomorphic encryption.

ステップS112:秘密計算装置20の通信部202は、Tを秘密計算装置10に送信する。 Step S112: The communication unit 202 of the secure computing apparatus 20 transmits T2 to the secure computing apparatus 10.

ステップS113:秘密計算装置10の秘密計算部101は、aDec(SK,T)と復号する。この復号結果の(j,j)成分は Step S113: The secure computing unit 101 of the secure computing device 10 decrypts aDec(SK, T 2 ). The (j B , j A ) component of this decryption result is

Figure 0007540599000008
に一致する。
Figure 0007540599000008
Matches.

<実施例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=|B\A|とする。また、記法の乱用ではあるが、aがベクトルtの要素に含まれる場合、a∈tと表記する。更に、DをD∩(A∪B)=φ(空集合)である集合とする。なお、これら以外については、実施例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をランダムに選び、t=Enc(a,A)を計算する。 Step S201: The secure computing unit 101 of the secure computing device 10 randomly selects a private key a for the commutative encryption, and calculates t 1 =Enc(a, A 1 ).

ステップS202:秘密計算装置10の通信部102は、tを秘密計算装置20に送信する。 Step S202: The communication unit 102 of the secure computing apparatus 10 transmits t 1 to the secure computing apparatus 20 .

ステップS203:秘密計算装置20の秘密計算部201は、可換暗号の秘密鍵bをランダムに選ぶ。次に、秘密計算装置20の秘密計算部201は、tの要素をランダムに並べ替えたt'に対して、t=Enc(b,t')を計算する。また、秘密計算装置20の秘密計算部201は、t=Enc(b,B)とt=Enc(b,D)を計算する。 Step S203: The secure computation unit 201 of the secure computation device 20 randomly selects a private key b of the commutative cipher. Next, the secure computation unit 201 of the secure computation device 20 calculates t2 = Enc(b, t1 ') for t1 ' obtained by randomly rearranging the elements of t1 . In addition, the secure computation unit 201 of the secure computation device 20 calculates t3 = Enc(b, B1 ) and t4 = Enc(b, D).

ステップS204:秘密計算装置20の通信部202は、t,t,tを秘密計算装置20に送信する。 Step S204: The communication unit 202 of the secure computing apparatus 20 transmits t 2 , t 3 , and t 4 to the secure computing apparatus 20 .

ステップS205:秘密計算装置10の秘密計算部101は、t=Enc(1/a,t)を計算し、t={t[1],・・・,t[|B|]}の各要素t[i]を以下により計算する。 Step S205: The secure computing unit 101 of the secure computing apparatus 10 calculates t 5 =Enc(1/a, t 2 ), and calculates each element t 6 [i] of t 6 ={t 6 [1], . . . , t 6 [|B 1 |]} as follows.

Figure 0007540599000009
ただし、
Figure 0007540599000009
however,

Figure 0007540599000010
とする。次に、秘密計算装置10の秘密計算部101は、可換暗号の秘密鍵cをランダムに選ぶと共に、加法準同型暗号の公開鍵、秘密鍵(PK,SK)をランダムに選ぶ。続いて、秘密計算装置10の秘密計算部101は、t=Enc(c,t)とt=Enc(c,(A,D[1],・・・,D[L]))を計算すると共に、
Figure 0007540599000010
Next, the secure computation unit 101 of the secure computation device 10 randomly selects a private key c for the commutative encryption and randomly selects a public key and a private key (PK, SK) for the additive homomorphic encryption. Next, the secure computation unit 101 of the secure computation device 10 calculates t7 = Enc(c, t6 ) and t8 = Enc(c, ( A1 , D[1], ..., D[L])), and

Figure 0007540599000011
を計算する。ただし、Oはすべての成分が0である|B\A|×|A|の行列とする。そして、秘密計算装置10の秘密計算部101は、t,Tの行を共通のランダム置換で並べ替えたものをそれぞれt',T'とする。
Figure 0007540599000011
where O is a matrix |B 1 \ A 1 |×|A 2 | in which all components are 0. The secure computing unit 101 of the secure computing device 10 rearranges the rows of t 8 and T 1 by a common random permutation to obtain t 8 ' and T 1 ', respectively.

ステップS206:秘密計算装置10の通信部102は、t,t',T'を秘密計算装置20に送信する。 Step S206: The communication unit 102 of the secure computing apparatus 10 transmits t 7 , t 8 ′, and T 1 ′ to the secure computing apparatus 20 .

ステップS207:秘密計算装置20の秘密計算部201は、v=t'とw=Enc(1/b,t)を計算する。次に、秘密計算装置20の秘密計算部201は、φをw[i]=v[φ(i)]を満たす関数として、Zをi行目がT'のφ(i)行目の行である|B|×|A|の行列とする。そして、秘密計算装置20の秘密計算部201は、T=YΤZを加法準同型暗号の加法準同型計算により計算する。 Step S207: The secure computation unit 201 of the secure computation device 20 calculates v=t 8 ' and w=Enc( 1 /b, t 7 ). Next, the secure computation unit 201 of the secure computation device 20 sets φ to a function that satisfies w[i]=v[φ(i)], and sets Z to a matrix of |B 1 |×|A 2 |, the i-th row of which is the φ(i)-th row of T 1 '. Then, the secure computation unit 201 of the secure computation device 20 calculates T 2 =Y T Z by additive homomorphic computation of additive homomorphic encryption.

ステップS208:秘密計算装置20の通信部202は、Tを秘密計算装置10に送信する。 Step S208: The communication unit 202 of the secure computing apparatus 20 transmits T2 to the secure computing apparatus 10.

ステップS209:秘密計算装置10の秘密計算部101は、aDec(SK,T)と復号する。この復号結果の(j,j)成分は Step S209: The secure computing unit 101 of the secure computing device 10 decrypts aDec(SK, T 2 ). The (j B , j A ) component of this decryption result is

Figure 0007540599000012
に一致する。
Figure 0007540599000012
Matches.

<まとめ>
以上のように、実施例1及び2における秘密計算システム1では、パーティAが持つ数値集合XとパーティBが持つ数値集合Yから上記の数6に示す関数値(つまり、数値集合Xの要素と数値集合Yの要素の間のある集計値を表す関数値)を2パーティ秘密計算により計算し、それらの関数値をパーティAのみが得ることができる。しかも、このとき、効率が悪い処理である完全準同型計算を用いずに、効率的に実行可能な処理である加法準同型計算のみを用いて関数値を計算する。これにより、上記の数6に示す関数値を計算するための2パーティ秘密計算を効率的に実行することが可能となる。
<Summary>
As described above, in the secure computation system 1 in Examples 1 and 2, the function value shown in the above formula 6 (i.e., the function value representing an aggregate value between elements of the value set X and elements of the value set Y) is calculated by two-party secure computation from the value set X held by party A and the value set Y held by party B, and these function values can be obtained only by party A. Moreover, at this time, the function value is calculated using only additive homomorphic computation, which is an efficiently executable process, without using fully homomorphic computation, which is an inefficient process. This makes it possible to efficiently execute two-party secure computation for calculating the function value shown in the above formula 6.

なお、上述したように、上記の数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 secure computing device 10 according to this embodiment may further calculate a cross-tabulation table and output it (including displaying, saving, transmitting to other devices, etc.).

本発明は、具体的に開示された上記の実施形態に限定されるものではなく、請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。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 LIST 10 Secure computing device 20 Secure computing device 101 Secure computing unit 102 Communication unit 103 Storage unit 201 Secure computing unit 202 Communication unit 203 Storage unit 301 Input device 302 Display device 303 External I/F
303a Recording medium 304 Communication I/F
305 Processor 306 Memory device 307 Bus N Communication network

Claims (7)

第1の数値集合X=(xi,j)(i∈A,j∈A)を持つ第1の秘密計算装置と、第2の数値集合Y=(yi,j)(i∈B,j∈B)を持つ第2の秘密計算装置とが含まれる秘密計算システムであって、
前記第1の秘密計算装置は、
前記Aの要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記第2の秘密計算装置に送信する第1の暗号化部と、
前記第2の秘密計算装置から受信したベクトルに基づいて、前記第1の数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列Tを置換した行列T'を計算し、前記行列T'を前記第2の秘密計算装置に送信する第2の暗号化部と、
加法準同型計算の計算結果を前記第2の秘密計算装置から受信すると、前記計算結果を前記加法準同型暗号により復号し、xi,ji,j'のi∈A∩Bに関する和を(j',j)成分に持つ|B|×|A|行列を計算する復号部と、を有し、
前記第2の秘密計算装置は、
前記Bの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルを前記第1の秘密計算装置に送信する第3の暗号化部と、
前記第2の数値集合Yを表す行列の転置行列と、前記行列T'の行を所定の関数により入れ替えた行列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.
前記第1の暗号化部は、
前記Aの要素を可換暗号により暗号化した暗号文を要素に持つベクトルtを前記第2の秘密計算装置に送信し、
前記第2の秘密計算装置からベクトルtを受信すると、前記ベクトルtの要素を並べ替えたベクトルt'を計算し、前記ベクトルt'の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtを前記第2の秘密計算装置に送信し、
前記第3の暗号化部は、
前記Bの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtを前記第1の秘密計算装置に送信し、
前記第1の秘密計算装置からベクトルtを受信すると、前記ベクトルtの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtを計算し、前記ベクトルtの要素と前記ベクトルtの要素とを持つベクトルtと計算し、前記ベクトルtの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtと、前記Bの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtとを前記第1の秘密計算装置に送信し、
前記第2の暗号化部は、
前記ベクトルtと前記ベクトルtとを前記第2の秘密計算装置から受信すると、前記ベクトルtの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtと、前記行列Tとを計算し、前記ベクトルt及び前記行列Tの行を共通のランダム置換でそれぞれ並べ替えたベクトルt'及び前記行列T'と、前記ベクトルtの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtとを前記第2の秘密計算装置に送信し、
前記計算部は、
前記ベクトルt'と前記行列T'と前記ベクトルtとを前記第1の秘密計算装置から受信すると、前記ベクトルt'の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルvと、前記ベクトルtの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルwとを計算し、前記ベクトルvのi番目の要素v[i]と前記ベクトルwのφ(i)番目の要素w[φ(i)]とが等しくなる関数φを用いてi行目が前記行列T'のφ(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.
前記第1の暗号化部は、
前記Aの要素を可換暗号により暗号化した暗号文を要素に持つベクトルtを前記第2の秘密計算装置に送信し、
前記第2の暗号化部は、
前記第2の秘密計算装置からベクトルtとベクトルtとベクトルtとを受信すると、前記ベクトルtの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtを計算し、前記ベクトルtと前記ベクトルtとの関係性に基づいて、前記ベクトルtと前記ベクトルtからベクトルtを計算し、前記ベクトルtの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtと、前記Aの要素とD∩(A∪B)=φを満たす集合Dの要素とを前記可換暗号により暗号化した暗号文を要素に持つベクトルtと、前記行列Tとを計算し、前記ベクトルt及び前記行列Tの行を共通のランダム置換でそれぞれ並べ替えたベクトルt'及び前記行列T'と、前記ベクトルtとを前記第2の秘密計算装置に送信し、
前記第3の暗号化部は、
前記ベクトルtを前記第1の秘密計算装置から受信すると、前記ベクトルtの要素をランダムに並べ替えたベクトルt'を計算し、前記ベクトルt'の要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtと、前記Bの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtと、前記Dの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルtとを前記第1の秘密計算装置に送信し、
前記計算部は、
前記ベクトルt'と前記行列T'と前記ベクトルtとを前記第1の秘密計算装置から受信すると、前記ベクトルt'をベクトルvとすると共に、前記ベクトルtの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルwを計算し、前記ベクトルvのi番目の要素v[i]と前記ベクトルwのφ(i)番目の要素w[φ(i)]とが等しくなる関数φを用いてi行目が前記行列T'のφ(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.
数値集合Y=(yi,j)(i∈B,j∈B)を持つ他の秘密計算装置と通信可能に接続され、数値集合X=(xi,j)(i∈A,j∈A)を持つ秘密計算装置であって、
前記Aの要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記他の秘密計算装置に送信する第1の暗号化部と、
前記他の秘密計算装置から受信したベクトルに基づいて、前記数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列Tを置換した行列T'を計算し、前記行列T'を前記他の秘密計算装置に送信する第2の暗号化部と、
加法準同型計算の計算結果を前記他の秘密計算装置から受信すると、前記計算結果を前記加法準同型暗号により復号し、xi,ji,j'のi∈A∩Bに関する和を(j',j)成分に持つ|B|×|A|行列を計算する復号部と、を有する秘密計算装置。
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 .
数値集合X=(xi,j)(i∈A,j∈A)を持つ他の秘密計算装置と通信可能に接続され、数値集合Y=(yi,j)(i∈B,j∈B)を持つ秘密計算装置であって、
前記Bの要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記他の秘密計算装置に送信する暗号化部と、
前記数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列Tを置換した行列T'を受信すると、前記数値集合Yを表す行列の転置行列と、前記行列T'の行を所定の関数により入れ替えた行列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の数値集合X=(xi,j)(i∈A,j∈A)を持つ第1の秘密計算装置と、第2の数値集合Y=(yi,j)(i∈B,j∈B)を持つ第2の秘密計算装置とが含まれる秘密計算システムに用いられる秘密計算方法であって、
前記第1の秘密計算装置が、
前記Aの要素を可換暗号により暗号化した暗号文を要素に持つベクトルを前記第2の秘密計算装置に送信する第1の暗号化手順と、
前記第2の秘密計算装置から受信したベクトルに基づいて、前記第1の数値集合Xの要素を加法準同型暗号により暗号化した暗号文を要素に持つ行列Tを置換した行列T'を計算し、前記行列T'を前記第2の秘密計算装置に送信する第2の暗号化手順と、
加法準同型計算の計算結果を前記第2の秘密計算装置から受信すると、前記計算結果を前記加法準同型暗号により復号し、xi,ji,j'のi∈A∩Bに関する和を(j',j)成分に持つ|B|×|A|行列を計算する復号手順と、を実行し、
前記第2の秘密計算装置が、
前記Bの要素を前記可換暗号により暗号化した暗号文を要素に持つベクトルを前記第1の秘密計算装置に送信する第3の暗号化手順と、
前記第2の数値集合Yを表す行列の転置行列と、前記行列T'の行を所定の関数により入れ替えた行列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
コンピュータを、請求項1乃至3の何れか一項に記載の秘密計算システムに含まれる第1の秘密計算装置又は第2の秘密計算装置として機能させるプログラム。 A program that causes a computer to function as a first secure computing device or a second secure computing device included in the secure computing system described in any one of claims 1 to 3.
JP2023536228A 2021-07-19 2021-07-19 Secure computation system, secure computation device, secure computation method, and program Active JP7540599B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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