WO2023281694A1 - 秘密計算システム、装置、方法及びプログラム - Google Patents
秘密計算システム、装置、方法及びプログラム Download PDFInfo
- Publication number
- WO2023281694A1 WO2023281694A1 PCT/JP2021/025770 JP2021025770W WO2023281694A1 WO 2023281694 A1 WO2023281694 A1 WO 2023281694A1 JP 2021025770 W JP2021025770 W JP 2021025770W WO 2023281694 A1 WO2023281694 A1 WO 2023281694A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- ciphertext
- vector
- secure computing
- computing system
- value
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 49
- 239000013598 vector Substances 0.000 claims description 179
- 238000004364 calculation method Methods 0.000 claims description 81
- 238000012545 processing Methods 0.000 description 63
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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/72—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 in cryptographic circuits
-
- 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
Definitions
- the present invention relates to technology for performing database operations while keeping data confidential.
- the group by operation which is a type of DB processing, is a grouping process that takes a table as input, groups it by the value of the specified column, and in some cases calculates statistical values for each group and outputs them in table format. is.
- Non-Patent Document 1 proposes a method of performing group by operations while they are encrypted.
- the input/output considered here was a table obtained by encrypting each element of a normal table.
- the input/output may be given a flag indicating whether or not a certain record is the original output.
- FIG. 15(b) shows an example of an encrypted table in Non-Patent Document 1
- FIG. 15(c) shows an example of a table with added flags.
- Non-Patent Document 1 does not work when a table to which the flags illustrated in FIG. 7(c) are added is input. This is because, in addition to the fact that the input format is different, until now all records were assumed to have meaningful values, so for example, it was not possible to skip unused records and perform processing. , the value of "?” which should be ignored affects the final result, and the original result cannot be obtained.
- An object of the present invention is to provide a secure computing system, device, method, and program for performing group by max calculation or group by min calculation on a table to which flags have been added.
- a group by max operation or group by min operation can be performed on a table with added flags.
- FIG. 1 is a diagram showing an example of the functional configuration of a secure computing system.
- FIG. 2 is a diagram showing an example of the functional configuration of a secure computing device that performs group by max calculation.
- FIG. 3 is a diagram showing an example of an algorithm.
- FIG. 4 is a diagram showing an example of an algorithm.
- FIG. 5 is a diagram showing an example of an algorithm.
- FIG. 6 is a diagram showing an example of an algorithm.
- FIG. 4 is a diagram for explaining examples of inputs and examples of outputs.
- FIG. 8 is a diagram showing an example of a processing procedure of a secure calculation method.
- FIG. 9 is a diagram showing an example of the functional configuration of a secure computing device that performs group by min calculations.
- FIG. 10 is a diagram showing an example of an algorithm.
- FIG. 10 is a diagram showing an example of an algorithm.
- FIG. 11 is a diagram showing an example of an algorithm.
- FIG. 12 is a diagram showing an example of an algorithm.
- FIG. 13 is a diagram showing an example of an algorithm.
- FIG. 14 is a diagram showing an example of a processing procedure of a secure calculation method.
- FIG. 15 is a diagram for explaining the background art.
- FIG. 16 is a diagram illustrating a functional configuration example of a computer;
- encryption is performed by a method such as secret sharing (for example, Reference 1) or homomorphic encryption (for example, Reference 2), which allows the following calculations to be performed while encrypted.
- Different encryption may be used for the stored value, so if the digits of the ciphertext [ ⁇ ] are bit values, the ciphertext [ ⁇ ] may be written as [[ ⁇ ]].
- the notation ⁇ > is sometimes used for substitution.
- • is any value, vector.
- Different encryption may be used for stored values. That is, these encryptions may or may not all be the same.
- [x' ⁇ ] ([x 1 '],...,[x n ']).
- priority is given to the original order of x ⁇ .
- stable sort consists of two algorithms (GENPERM, SORT).
- GENPERM is a function that outputs an encrypted version of the permutation ⁇ that permutes x ⁇ .
- GENPERM is written as ⁇ > ⁇ GENPERM([x ⁇ ]).
- SORT is a function that applies ⁇ to x ⁇ and calculates the rearranged result x′ ⁇ while keeping it encrypted.
- SORT is described, for example, as [x ⁇ '] ⁇ SORT( ⁇ >,[x ⁇ ]).
- SORT is e.g. ([x' ⁇ ],[y' ⁇ ]) ⁇ SORT( ⁇ >,([x ⁇ ],[y ⁇ ])).
- a self-explanatory way to configure SORT is to use a sorting network. Also, if secret sharing is used, SORT can be efficiently performed by the method described in reference 3.
- IFTHEN can be realized, for example, by Mult([f],[x])+Mult([1-f],[y]).
- MODCONV is a function that takes an encrypted bit value [[a]] as an input and generates [a] with the same encrypted value but a different ciphertext form.
- MODCONV is a function that takes a bit-value ciphertext [[a]] as input and generates ciphertext [a], a value representing a as an integer.
- MODCONV is described, for example, as [a] ⁇ MODCONV([[a]]).
- BITDECOMP is a function that takes an encrypted integer value [a] as an input and generates [[a]], which is the encrypted value of the same bit representation of a, but with a different ciphertext format.
- BITDECOMP is a function that takes an integer-valued ciphertext [a] as input and generates a ciphertext [[a]] whose value is the bit representation of a.
- the number of records in the table to be processed by the secure computing system, device, method and program is m. It is assumed that this table consists of at least the ciphertext [k ⁇ ] of the key vector k ⁇ , the ciphertext [v ⁇ ] of the value vector v ⁇ , and the ciphertext [f ⁇ ] of the flag vector f ⁇ . . Let the elements of the ciphertext [f ⁇ ] be the bit ciphertext. If no bits are found, convert them to bits using the bit decomposition protocol.
- FIG. 7(a) shows an example of a table to be processed by the secure computing system, device, method, and program.
- a table shown in FIG. 7B is obtained from the table shown in FIG. [k''' ⁇ ] is the ciphertext of vector k''' ⁇ rearranging the elements of key vector k ⁇ .
- [x' ⁇ ] is the ciphertext of the vector x' ⁇ consisting of the maximum values.
- [e''' ⁇ ] is the ciphertext of vector e''' ⁇ of flags corresponding to vector k''' ⁇ .
- the maximum value of the elements of the ciphertext [v ⁇ ] corresponding to the key of [1] of the ciphertext [k ⁇ ] is [3]
- [2] of the ciphertext [k ⁇ ] The maximum value of the elements of the ciphertext [v ⁇ ] corresponding to the key of is [1]
- the maximum value of the elements of the ciphertext [v ⁇ ] corresponding to the key of [4] of the ciphertext [k ⁇ ] is [5].
- the element of the ciphertext [x ⁇ ] corresponding to [1] of the ciphertext [k''' ⁇ ] is [3]
- the ciphertext [k''' The element of the ciphertext [x' ⁇ ] corresponding to [2] of ⁇ ] is [1]
- the ciphertext [x' ⁇ ] corresponding to [4] of the ciphertext [k''' ⁇ ] element is [5].
- a table shown in FIG. 7(c), for example, is obtained from the table shown in FIG. [k''' ⁇ ] is the ciphertext of vector k'' ⁇ rearranging the elements of key vector k ⁇ .
- [x'' ⁇ ] is the ciphertext of the vector x'' ⁇ consisting of the minimum values.
- [g'' ⁇ ] is the ciphertext of vector g'' ⁇ of flags corresponding to vector k'' ⁇ .
- the minimum value of the elements of the ciphertext [v ⁇ ] corresponding to the key of [1] of the ciphertext [k ⁇ ] is [3]
- [2] of the ciphertext [k ⁇ ] The minimum value of the elements of the ciphertext [v ⁇ ] corresponding to the key of is [1]
- the minimum value of the elements of the ciphertext [v ⁇ ] corresponding to the key of [4] of the ciphertext [k ⁇ ] is [4].
- This secure computation system and method performs a so-called group by operation (group by max operation or group by min operation) in secure computation.
- the secure computing system includes N ( ⁇ 2) secure computing devices 1 1 , . . . , 1 N .
- each of the secure computing devices 1 1 , . . . , 1 N is connected to the communication network 2 .
- the communication network 2 is a circuit-switched or packet-switched communication network configured so that connected devices can communicate with each other. and so on. Note that each device does not necessarily need to be able to communicate online via the communication network 2 .
- each step is performed by secure calculation. That is, the secure computing device 1 n performs each step without restoring the ciphertext, in other words, without knowing the contents of the ciphertext.
- the secure computing device 1n is configured by reading a special program into a publicly known or dedicated computer having, for example, a central processing unit (CPU) and a main memory (RAM: Random Access Memory). It is a special device.
- the secure computing device 1 n executes each process under the control of, for example, a central processing unit. Data input to the secure computing device 1n and data obtained in each process are stored in, for example, a main memory device, and the data stored in the main memory device are read out to the central processing unit as needed. used for other processing.
- At least a part of each component of the secure computing device 1 n may be configured by hardware such as an integrated circuit.
- a secure computing device 1 n of a secure computing system that performs group by max calculation includes a first computing unit 11 n , a second computing unit 12 n , a third computing unit 13 n , a fourth computing unit It has a unit 14 n and an output unit 15 n .
- the plurality of first calculation units 2 use the ciphertext [f ⁇ ] of the vector f ⁇ , the ciphertext [k ⁇ ] of the vector k ⁇ , and the ciphertext [v ⁇ ] of the vector v ⁇ to negate the vector f ⁇ , vector k ⁇ and vector v ⁇ are sorted using vector f ⁇ , vector k ⁇ and vector v ⁇ as a key, vector f′ ⁇ vector k′ ⁇ and vector v′ ⁇ ciphertext [f ' ⁇ ], ciphertext [k' ⁇ ] and ciphertext [v' ⁇ ] are generated (step S1).
- the ciphertext [[f' ⁇ ]] is generated as the ciphertext [f' ⁇ ].
- ciphertext [[k' ⁇ ]] and ciphertext [k' ⁇ ] are generated as ciphertext [k' ⁇ ].
- GENPERM([[f * ⁇ ]],[[k ⁇ ]],[[v ⁇ ]]) is a ciphertext [[f * ⁇ ]], a ciphertext [[k ⁇ ]] and Using the ciphertext [[v ⁇ ]], the process of generating a permutation ⁇ ciphertext ⁇ > that stably sorts a vector that combines vector f * ⁇ , vector k ⁇ and vector v ⁇ element by element.
- ⁇ Second calculator 12 1 ,..., 12 N > is input to the plurality of second calculators 12 1 , . . . , 12 N .
- the plurality of second calculation units 12 1 , . . . , 12 N 5: each 1 ⁇ i ⁇ m-1 do 6: [[e i ]] ⁇ IFTHEN([[f' i ]]:EQ([[k' i ]],[[k' i+1 ]]),[[1]]) 7: [[e' i ]] ⁇ IFTHEN([[f' i ]]XOR[[f' i+1 ]]:[[0]],[[e i ]]) 8: [e' i ] ⁇ MODCONV([[e' i ]]) 9:[[e' m ]] 1-[[f' m ]] 10:[e' m ] ⁇ MODCONV([[e' m ]])
- ⁇ Third calculator 13 1 ,..., 13 N > is input to the plurality of third calculators 13 1 , . . . , 13 N .
- ⁇ Fourth calculator 14 1 ,..., 14 N > is input to the plurality of fourth calculators 14 1 , . . . , 14 N .
- a ciphertext [e''' ⁇ ] is calculated (step S4).
- ⁇ Output unit 15 1 , . . . , 15 N > A ciphertext [k' ⁇ ], a ciphertext [x ⁇ ], and a ciphertext [e''' ⁇ ] are input to the plurality of output units 15 1 , . . . , 15 N .
- the secure computing devices 1 1 , . . . , 1 N may perform a so-called output sorting process.
- This output sorting process is realized, for example, by the processes from "13:” to " 14 :” in FIG.
- the plurality of fourth calculation units 14 1 , . . . , 14 N 13: ⁇ '> ⁇ GENPERM([[e' ⁇ ]]) 14:([x' ⁇ ],[[e'' ⁇ ]],[k'']) ⁇ SORT( ⁇ '>,([x ⁇ ],[[e' ⁇ ]],[k' ⁇ ])) 15:[[e'' ⁇ ]] 1-[[e'' ⁇ ]]
- the secure computing devices 1 1 , . . . , 1 N may perform so-called null processing. This null processing is realized, for example, by the processing of " 13 :" in FIG.
- the process of The processing of "11:" and "12:” in FIG. 5 is the same as the processing of "11:” and "12:” in FIG.
- the plurality of output units 15 1 the plurality of output units 15 1 , .
- the secure computing devices 1 1 1 , . . . , 1 N may perform so-called output sorting processing and so-called null processing.
- This null processing is realized, for example, by the processing of " 13 :" in FIG.
- the plurality of third calculation units 13 1 , . . . , 13 N 13: [k'' i ] ⁇ IFTHEN([e' i ]:[null],[k' i ]) process may be performed.
- This output sorting process is realized, for example, by the processes from “ 14 :” to "15:” in FIG.
- the plurality of fourth calculation units 14 1 , . . . , 14 N 14: ⁇ '> ⁇ GENPERM([[e' ⁇ ]]) 15:([x' ⁇ ],[[e'' ⁇ ]],[k''']) ⁇ SORT( ⁇ '>,([x ⁇ ],[[e' ⁇ ]],[k'' ⁇ ])) 16:[[e'' ⁇ ]] 1-[[e'' ⁇ ]] process may be performed.
- the plurality of output units 15 1 , . . . , 15 N need not output the ciphertexts corresponding to the dummy records.
- the plurality of output units 15 1 Using the text [x' ⁇ ] and the ciphertext [[e''' ⁇ ]], the ciphertext [k' ⁇ ] or the ciphertext [k'' ⁇ ] or the ciphertext [k''' ⁇ ] , and from the ciphertext [x ⁇ ] or the ciphertext [x' ⁇ ], output the ciphertext [x ⁇ ] or the ciphertext [x' ⁇ ] with the elements corresponding to the dummy records removed from the elements e i ''' of the vector e''' ⁇ may
- the ciphertext [k''' ⁇ ], the ciphertext [x' ⁇ ], and the ciphertext [[e''' ⁇ ]] are as shown in FIG. 15 1 , . _ may be output. That is, in this case, the plurality of output units 15 1 , .
- the record is a dummy record.
- a secure computing device 1 n of a secure computing system that performs group by max calculation includes a first computing unit 11 n , a second computing unit 12 n , a third computing unit 13 n , a fourth computing unit It has a unit 14 n and an output unit 15 n .
- a plurality of first calculation units 11 1 , . , the negation of vector f ⁇ , vector k ⁇ and vector v ⁇ are sorted using vector f ⁇ , vector k ⁇ and vector v ⁇ as keys, vector f′ ⁇ , vector k′ ⁇ and vector v′ ciphertext [f' ⁇ ], ciphertext [k' ⁇ ], and ciphertext [v' ⁇ ] of ⁇ are generated (step S1).
- the ciphertext [[f' ⁇ ]] is generated as the ciphertext [f' ⁇ ].
- ciphertext [[k' ⁇ ]] and ciphertext [k' ⁇ ] are generated as ciphertext [k' ⁇ ].
- GENPERM([[f * ⁇ ]],[[k ⁇ ]],[[v ⁇ ]]) is a ciphertext [[f * ⁇ ]], a ciphertext [[k ⁇ ]] and Using the ciphertext [[v ⁇ ]], the process of generating a permutation ⁇ ciphertext ⁇ > that stably sorts a vector that combines vector f * ⁇ , vector k ⁇ and vector v ⁇ element by element.
- ⁇ Second calculator 12 1 ,..., 12 N > is input to the plurality of second calculators 12 1 , . . . , 12 N .
- the plurality of second calculation units 12 1 , . . . , 12 N 5: each 1 ⁇ i ⁇ m-1 do 6: [[e i ]] ⁇ IFTHEN([[f' i ]]:EQ([[k' i ]],[[k' i+1 ]]),[[1]]) 7: [[e' i ]] ⁇ IFTHEN([[f' i ]]XOR[[f' i+1 ]]:[[0]],[[e i ]]) 8:[[e' 0 ]] 1-[[f' 1 ]] 9: each 1 ⁇ i ⁇ m do 10: [[g i ]] ⁇ IFTHEN([[f' i ]]:[[e' i-1 ]],[[1]]) 11: [g i ] ⁇ MODCONV([[g i ]])
- the plurality of third calculation units 13 1 , . . . , 13 N (9: each 1 ⁇ i ⁇ mdo) 12: [x i ] ⁇ IFTHEN([g i ]:[0],[v' i ])
- ⁇ Plurality of fourth calculation units 14 1 , . . . , 14 N > is input to the plurality of fourth calculators 14 1 , . . . , 14 N .
- the plurality of fourth calculation units 14 1 , . ' ⁇ ] is calculated (step S4).
- the ciphertext [[g' ⁇ ]] is generated as the ciphertext [g' ⁇ ].
- the plurality of output units 151 The plurality of output units 151 , .
- the secure computing devices 1 1 , . . . , 1 N may perform a so-called output sorting process.
- This output sorting process is realized, for example, by the processes from “ 13 :” to "15:" in FIG.
- the secure computing devices 1 1 , . . . , 1 N may perform so-called null processing. This null processing is realized, for example, by the processing of " 13 :" in FIG.
- the plurality of third calculation units 13 1 , . . . , 13 N (9:each 1 ⁇ i ⁇ mdo) 13: [k'' i ] ⁇ IFTHEN([g' i ]:[null],[k' i ])
- the plurality of output units 15 1 the plurality of output units 15 1 , .
- the secure computing devices 1 1 1 , . . . , 1 N may perform so-called output sorting processing and so-called null processing.
- This null processing is realized, for example, by the processing of " 13 :" in FIG.
- the plurality of third calculation units 13 1 , . . . , 13 N (9:each 1 ⁇ i ⁇ mdo) 13: [k'' i ] ⁇ IFTHEN([g' i ]:[null],[k' i ]) process may be performed.
- This output sorting process is realized, for example, by the processes from “ 14 :” to "15:” in FIG.
- the plurality of fourth calculation units 14 1 , . . . , 14 N 14: ⁇ '> ⁇ GENPERM([[g ⁇ ]]) 15:([x' ⁇ ],[[g' ⁇ ]],[k''' ⁇ ]) ⁇ SORT( ⁇ '>,([x ⁇ ],[[g ⁇ ]],[k'' ⁇ ])) 16:[[g'' ⁇ ]] ⁇ 1-[[g' ⁇ ]] process may be performed.
- the plurality of output units 15 1 , . . . , 15 N need not output the ciphertexts corresponding to the dummy records.
- the ciphertext [k''' ⁇ ], the ciphertext [x' ⁇ ], and the ciphertext [[g'' ⁇ ]] are as shown in FIG. 1 ,...,15 N outputs only the elements of ciphertext [k''' ⁇ ] and ciphertext [x' ⁇ ] corresponding to element [1] of ciphertext [[g'' ⁇ ]]. may That is, in this case, the plurality of output units 15 1 , .
- data exchange between components of the secure computing device may be performed directly or may be performed via a storage unit (not shown).
- a program that describes this process can be recorded on a computer-readable recording medium.
- a computer-readable recording medium is, for example, a non-temporary recording medium, specifically a magnetic recording device, an optical disc, or the like.
- this program will be carried out, for example, by selling, transferring, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded.
- the program may be distributed by storing the program in the storage device of the server computer and transferring the program from the server computer to other computers via the network.
- a computer that executes such a program for example, first stores a program recorded on a portable recording medium or a program transferred from a server computer once in the auxiliary recording unit 1050, which is its own non-temporary storage device. Store. When executing the process, this computer reads the program stored in the auxiliary recording section 1050, which is its own non-temporary storage device, into the storage section 1020, and executes the process according to the read program. As another execution form of this program, the computer may read the program directly from the portable recording medium into the storage unit 1020 and execute processing according to the program. It is also possible to execute processing in accordance with the received program each time the is transferred.
- ASP Application Service Provider
- the above-mentioned processing is executed by a so-called ASP (Application Service Provider) type service, which does not transfer the program from the server computer to this computer, and realizes the processing function only by its execution instruction and result acquisition.
- ASP Application Service Provider
- the program in this embodiment includes information that is used for processing by a computer and that conforms to the program (data that is not a direct instruction to the computer but has the property of prescribing the processing of the computer, etc.).
- the device is configured by executing a predetermined program on a computer, but at least part of these processing contents may be implemented by hardware.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
Description
<参考文献2>Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. Fully homomorphic encryption without bootstrapping. Electronic Colloquium on Computational Complexity (ECCC), Vol. 18, p. 111, 2011.
加減算、定数倍に関して、秘密分散と準同型暗号はサポートされているとする。すなわち、c[a]±[b]±d=[ca±b±d]の関係が成立しているとする。
等号判定EQは、[x],[y]を入力として、x=yならば1、x≠yならば0となるようなeの暗号文[e]を出力する関数である。EQは、例えば[e]←EQ([x],[y])と記述される。ここで、eはx=yならば1、x≠yならば0である。
他にもmod p上で暗号化されているのであれば、[(x-y)p-1]を乗算を使って計算しても、等号判定を行うことができる。
まず、group by max演算を行う秘密計算装置1nの各構成部の処理について説明する。
複数の第一計算部2には、ベクトルf→の暗号文[f→]、ベクトルk→の暗号文[k→]及びベクトルv→の暗号文[v→]が入力される。
1:([[k†→]],[[v†→]])←BITDECOMP([k→],[v→])
2:[[f*→]]←1-[[f→]]
3:<π>←GENPERM([[f*→]],[[k†→]],[[v†→]])
4:([[k’→]],[k’→],[v’→],[[f’→]])←SORT(<π>,([[k†→]],[k→],[v→],[[f→]]))
という処理を例えば行う。
複数の第二計算部121,…,12Nには、が入力される。
5:each 1≦i≦m-1 do
6: [[ei]]←IFTHEN([[f’i]]:EQ([[k’i]],[[k’i+1 ]]),[[1]])
7: [[e’i]]←IFTHEN([[f’i]]XOR[[f’i+1]]:[[0]],[[ei]])
8: [e’i]←MODCONV([[e’i]])
9:[[e’m]]=1-[[f’m]]
10:[e’m]←MODCONV([[e’m]])
という処理を例えば行う。
複数の第三計算部131,…,13Nには、が入力される。
11:each 1≦i≦m do
12: [xi]←IFTHEN([e’i]:[0],[v’i])
という処理を例えば行う。
複数の第四計算部141,…,14Nには、が入力される。
13:[[e’’’→]] =1-[[e’→]]
という処理を例えば行う。
複数の出力部151,…,15Nには、暗号文[k’→]、暗号文[x→]及び暗号文[e’’’→]が入力される。
13:<π’>←GENPERM([[e’→]])
14:([x’→],[[e’’→]],[k’’])←SORT(<π’>,([x→],[[e’→]],[k’ →]))
15:[[e’’’→]] =1-[[e’’→]]
という処理を例えば行ってもよい。
11:each 1≦i≦m do
12: [xi]←IFTHEN([e’i]:[0],[v’i])
13: [k’’i]←IFTHEN([e’i]:[null],[k’i])
という処理を例えば行ってもよい。図5の「11:」及び「12:」の処理は、図3の「11:」及び「12:」の処理と同じである。
13: [k’’i]←IFTHEN([e’i]:[null],[k’i])
という処理を行ってもよい。
14:<π’>←GENPERM([[e’→]])
15:([x’→],[[e’’→]],[k’’’])←SORT(<π’>,([x→],[[e’→]],[k’’→]))
16:[[e’’’→]] =1-[[e’’→]]
という処理を行ってもよい。
つぎに、group by min演算を行う秘密計算装置1nの各構成部の処理について説明する。
複数の第一計算部111,…,11Nには、ベクトルf→の暗号文[f→]、ベクトルk→の暗号文[k→]及びベクトルv→の暗号文[v→]が入力される。
1:([[k†→]],[[v†→]])←BITDECOMP([k→],[v→])
2:[[f*→]]←1-[[f→]]
3:<π>←GENPERM([[f*→]],[[k†→]],[[v†→]])
4:([[k’→]],[k’→],[v’→],[[f’→]])←SORT(<π>,([[k†→]],[k→],[v→],[[f→]]))
という処理を例えば行う。
複数の第二計算部121,…,12Nには、が入力される。
5:each 1≦i≦m-1 do
6: [[ei]]←IFTHEN([[f’i]]:EQ([[k’i]],[[k’i+1]]),[[1]])
7: [[e’i]]←IFTHEN([[f’i]]XOR[[f’i+1]]:[[0]],[[ei]])
8:[[e’0]]=1-[[f’1]]
9:each 1≦i≦m do
10: [[gi]]←IFTHEN([[f’i]]:[[e’i-1]],[[1]])
11: [gi]←MODCONV([[gi]])
という処理を例えば行う。
複数の第三計算部131,…,13Nには、が入力される。
(9:each 1≦i≦m do)
12: [xi]←IFTHEN([gi]:[0],[v’i])
という処理を例えば行う。
複数の第四計算部141,…,14Nには、が入力される。
13:[[g’→]]←1-[[g→]]
という処理を例えば行う。
複数の出力部151,…,15Nには、暗号文[k’→]、暗号文[x→]及び暗号文[g’→]が入力される。
13:<π’>←GENPERM([[g→]])
14:([x’→],[[g’→]],[k’’ →])←SORT(<π’>,([x→],[[g→]],[k’ →]))
15:[[g’’→]]←1-[[g’→]]
という処理を例えば行ってもよい。
( 9:each 1≦i≦m do)
13: [k’’i]←IFTHEN([g’i]:[null],[k’i])
という処理を例えば行ってもよい。
( 9:each 1≦i≦m do)
13: [k’’i]←IFTHEN([g’i]:[null],[k’i])
という処理を行ってもよい。
14:<π’>←GENPERM([[g→]])
15:([x’→],[[g’→]],[k’’’→])←SORT(<π’>,([x→],[[g→]],[k’’→]))
16:[[g’’→]]←1-[[g’→]]
という処理を行ってもよい。
以上、本発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、本発明に含まれることはいうまでもない。
上述した各装置の各部の処理をコンピュータにより実現してもよく、この場合は各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図16に示すコンピュータ1000の記憶部1020に読み込ませ、演算処理部1010、入力部1030、出力部1040などに動作させることにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
Claims (12)
- 複数の秘密計算装置を含む秘密計算システムであって、
mはレコード数であり1以上の整数であり、k→はキーのベクトルk→=(k1,…,km)であり、v→はバリューのベクトルv→=(v1,…,vm)であり、f→はフラグのベクトルf→=(f1,…,fm)であり、αを任意の値又は任意ベクトルとして[α]はαの暗号文であり、暗号文のままαを用いた所定の演算が可能であり、
前記複数の秘密計算装置は、
前記ベクトルf→の暗号文[f→]、前記ベクトルk→の暗号文[k→]及び前記ベクトルv→の暗号文[v→]を用いて、前記ベクトルf→の否定、前記ベクトルk→及び前記ベクトルv→を結合したベクトルをキーとして、前記ベクトルf→、前記ベクトルk→及び前記ベクトルv→をそれぞれソートしたベクトルf’→、ベクトルk’→及びベクトルv’→の暗号文[f’→]、暗号文[k’→] 及び暗号文[v’→]を生成する複数の第一計算部と、
前記暗号文[f’→]及び前記暗号文[k’→]を用いて、i=1,…,m-1として、f’i=1かつk’i≠k’i+1又はf’i=1かつf’i+1=0のときe’i=0、それ以外のときe’i=1となり、f’m=1のときe’m=0であり、それ以外のときe’m=1であるようなe’mの暗号文[e’m]を生成することで、ei(i=1,…,m)を要素とするベクトルe’→の暗号文[e’→]を生成する複数の第二計算部と、
前記暗号文[e’→]及び前記暗号文[v’→]を用いて、i=1,…,mとして、前記ベクトルe’→の要素e’i=0である場合には値がv’iであり、前記ベクトルe’→の要素e’i=1である場合には値が0であるxiの暗号文[xi]を生成することで、xi(i=1,…,m)を要素とするベクトルx→の暗号文[x→]を生成する複数の第三計算部と、
前記暗号文[e’→]を用いて、前記ベクトルe’→の各要素を1から減算した値により構成されるベクトルe’’’→の暗号文[e’’’→]を計算する複数の第四計算部と、
を含む秘密計算システム。 - 請求項1の秘密計算システムであって、
前記複数の第四計算部は、前記暗号文[e’→]、前記暗号文[x→]及び前記暗号文[k’→]を用いて、前記ベクトルe’→をキーとして、前記ベクトルx→、前記ベクトルk’→及び前記ベクトルe’→をそれぞれソートしたベクトルx’→、前記ベクトルk’’→及び前記ベクトルe’’→の暗号文[x’→],暗号文[k’’→]及び暗号文[e’’→]を生成し、前記暗号文[e’’→]を用いて、前記ベクトルe’’→の各要素を1から減算した値により構成されるベクトルe’’’→の暗号文[e’’’→]を計算する、
秘密計算システム。 - 請求項1又は2の秘密計算システムであって、
前記複数の秘密計算装置は、前記暗号文[k’→]又は前記暗号文[k’’→]、前記暗号文[x→]及び前記暗号文[e’’’→]を出力する複数の出力部を更に含む、
秘密計算システム。 - 請求項3の秘密計算システムであって、
複数の出力部は、ダミーレコードに対応する暗号文については出力しない、
秘密計算システム。 - 複数の秘密計算装置を含む秘密計算システムであって、
mはレコード数であり1以上の整数であり、k→はキーのベクトルk→=(k1,…,km)であり、v→はバリューのベクトルv→=(v1,…,vm)であり、f→はフラグのベクトルf→=(f1,…,fm)であり、αを任意の値又は任意ベクトルとして[α]はαの暗号文であり、暗号文のままαを用いた所定の演算が可能であり、
前記複数の秘密計算装置は、
前記ベクトルf→の暗号文[f→]、前記ベクトルk→の暗号文[k→]及び前記ベクトルv→の暗号文[v→]を用いて、前記ベクトルf→の否定、前記ベクトルk→及び前記ベクトルv→を結合したベクトルをキーとして、前記ベクトルf→、前記ベクトルk→及び前記ベクトルv→をそれぞれソートしたベクトルf’→、ベクトルk’→及びベクトルv’→の暗号文[f’→]、暗号文[k’→]及び暗号文[v’→]を生成する複数の第一計算部と、
前記暗号文[f’→]及び前記暗号文[k’→]を用いて、i=1,…,m-1として、f’i=1かつk’i≠k’i+1又はf’i=1かつf’i+1=0のときgi=0、それ以外のときgi=1となり、f’1=0のときg1=1であり、それ以外のときg1=0であるようなg1の暗号文[g1]を生成することで、gi(i=1,…,m)を要素とするベクトルg→の暗号文[g→]を生成する複数の第二計算部と、
前記暗号文[g→]及び前記暗号文[v’→]を用いて、i=1,…,mとして、前記ベクトルg→の要素gi=0である場合には値がv’iであり、前記ベクトルg→の要素gi=1である場合には値が0であるxiの暗号文[xi]を生成することで、xi(i=1,…,m)を要素とするベクトルx→の暗号文[x→]を生成する複数の第三計算部と、
前記暗号文[g→]を用いて、前記ベクトルg→の各要素を1から減算した値により構成されるベクトルg’→の暗号文[g’→]を計算する複数の第四計算部と、 を含む秘密計算システム。 - 請求項5の秘密計算システムであって、
前記複数の第四計算部は、前記暗号文[g→]、前記暗号文[x→]及び前記暗号文[k’→]を用いて、前記ベクトルg→をキーとして、前記ベクトルx→、前記ベクトルk’→及び前記ベクトルg→をそれぞれソートしたベクトルx’→、前記ベクトルk’’→及び前記ベクトルg’→の暗号文[x’→],暗号文[k’’→]及び暗号文[g’→]を生成し、前記暗号文[g’→]を用いて、前記ベクトルg’→の各要素を1から減算した値により構成されるベクトルg’’→の暗号文[g’’→]を計算する、
秘密計算システム。 - 請求項5又は6の秘密計算システムであって、
前記複数の秘密計算装置は、前記暗号文[k’→]又は前記暗号文[k’’→]、前記暗号文[x→]、及び、前記暗号文[g’→]又は前記暗号文[g’’→]を出力する複数の出力部を更に含む、
秘密計算システム。 - 請求項7の秘密計算システムであって、
複数の出力部は、ダミーレコードに対応する暗号文については出力しない、
秘密計算システム。 - 請求項1から8の何れかの秘密計算システムの秘密計算装置。
- mはレコード数であり1以上の整数であり、k→はキーのベクトルk→=(k1,…,km)であり、v→はバリューのベクトルv→=(v1,…,vm)であり、f→はフラグのベクトルf→=(f1,…,fm)であり、αを任意の値又は任意ベクトルとして[α]はαの暗号文であり、暗号文のままαを用いた所定の演算が可能であり、
複数の第一計算部が、前記ベクトルf→の暗号文[f→]、前記ベクトルk→の暗号文[k→]及び前記ベクトルv→の暗号文[v→]を用いて、前記ベクトルf→の否定、前記ベクトルk→及び前記ベクトルv→を結合したベクトルをキーとして、前記ベクトルf→、前記ベクトルk→及び前記ベクトルv→をそれぞれソートしたベクトルf’→、ベクトルk’→及びベクトルv’→の暗号文[f’→]、暗号文[k’→] 及び暗号文[v’→]を生成する第一計算ステップと、
複数の第二計算部が、前記暗号文[f’→]及び前記暗号文[k’→]を用いて、i=1,…,m-1として、f’i=1かつk’i≠k’i+1又はf’i=1かつf’i+1=0のときe’i=0、それ以外のときe’i=1となり、f’m=1のときe’m=0であり、それ以外のときe’m=1であるようなe’mの暗号文[e’m]を生成することで、ei(i=1,…,m)を要素とするベクトルe’→の暗号文[e’→]を生成する第二計算ステップと、
複数の第三計算部が、前記暗号文[e’→]及び前記暗号文[v’→]を用いて、i=1,…,mとして、前記ベクトルe’→の要素e’i=0である場合には値がv’iであり、前記ベクトルe’→の要素e’i=1である場合には値が0であるxiの暗号文[xi]を生成することで、xi(i=1,…,m)を要素とするベクトルx→の暗号文[x→]を生成する第三計算ステップと、
複数の第四計算部が、前記暗号文[e’→]を用いて、前記ベクトルe’→の各要素を1から減算した値により構成されるベクトルe’’’→の暗号文[e’’’→]を計算する第四計算ステップと、
を含む秘密計算方法。 - mはレコード数であり1以上の整数であり、k→はキーのベクトルk→=(k1,…,km)であり、v→はバリューのベクトルv→=(v1,…,vm)であり、f→はフラグのベクトルf→=(f1,…,fm)であり、αを任意の値又は任意ベクトルとして[α]はαの暗号文であり、暗号文のままαを用いた所定の演算が可能であり、
複数の第一計算部が、前記ベクトルf→の暗号文[f→]、前記ベクトルk→の暗号文[k→]及び前記ベクトルv→の暗号文[v→]を用いて、前記ベクトルf→の否定、前記ベクトルk→及び前記ベクトルv→を結合したベクトルをキーとして、前記ベクトルf→、前記ベクトルk→及び前記ベクトルv→をそれぞれソートしたベクトルf’→、ベクトルk’→及びベクトルv’→の暗号文[f’→]、暗号文[k’→]及び暗号文[v’→]を生成する第一計算ステップと、
複数の第二計算部が、前記暗号文[f’→]及び前記暗号文[k’→]を用いて、i=1,…,m-1として、f’i=1かつk’i≠k’i+1又はf’i=1かつf’i+1=0のときgi=0、それ以外のときgi=1となり、f’1=0のときg1=1であり、それ以外のときg1=0であるようなg1の暗号文[g1]を生成することで、gi(i=1,…,m)を要素とするベクトルg→の暗号文[g→]を生成する第二計算ステップと、
複数の第三計算部が、前記暗号文[g→]及び前記暗号文[v’→]を用いて、i=1,…,mとして、前記ベクトルg→の要素gi=0である場合には値がv’iであり、前記ベクトルg→の要素gi=1である場合には値が0であるxiの暗号文[xi]を生成することで、xi(i=1,…,m)を要素とするベクトルx→の暗号文[x→]を生成する第三計算ステップと、
複数の第四計算部が、前記暗号文[g→]を用いて、前記ベクトルg→の各要素を1から減算した値により構成されるベクトルg’→の暗号文[g’→]を計算する第四計算ステップと、
を含む秘密計算方法。 - 請求項10又は11の秘密計算方法の各ステップとしてコンピュータを機能させるためのプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202180100287.3A CN117693750A (zh) | 2021-07-08 | 2021-07-08 | 秘密计算系统、装置、方法以及程序 |
JP2023532978A JPWO2023281694A1 (ja) | 2021-07-08 | 2021-07-08 | |
PCT/JP2021/025770 WO2023281694A1 (ja) | 2021-07-08 | 2021-07-08 | 秘密計算システム、装置、方法及びプログラム |
EP21949327.7A EP4350562A1 (en) | 2021-07-08 | 2021-07-08 | Secure computation system, device, method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/025770 WO2023281694A1 (ja) | 2021-07-08 | 2021-07-08 | 秘密計算システム、装置、方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023281694A1 true WO2023281694A1 (ja) | 2023-01-12 |
Family
ID=84801637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/025770 WO2023281694A1 (ja) | 2021-07-08 | 2021-07-08 | 秘密計算システム、装置、方法及びプログラム |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4350562A1 (ja) |
JP (1) | JPWO2023281694A1 (ja) |
CN (1) | CN117693750A (ja) |
WO (1) | WO2023281694A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164145A (ja) * | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 秘密集合演算装置及び方法 |
WO2016120975A1 (ja) * | 2015-01-26 | 2016-08-04 | 株式会社日立製作所 | データ集計分析システム及びその方法 |
-
2021
- 2021-07-08 WO PCT/JP2021/025770 patent/WO2023281694A1/ja active Application Filing
- 2021-07-08 EP EP21949327.7A patent/EP4350562A1/en active Pending
- 2021-07-08 JP JP2023532978A patent/JPWO2023281694A1/ja active Pending
- 2021-07-08 CN CN202180100287.3A patent/CN117693750A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164145A (ja) * | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 秘密集合演算装置及び方法 |
WO2016120975A1 (ja) * | 2015-01-26 | 2016-08-04 | 株式会社日立製作所 | データ集計分析システム及びその方法 |
Non-Patent Citations (5)
Title |
---|
DAI IKARASHIRYO KIKUCHIKOKI HAMADAKOJI CHIDA: "Actively private and correct MPC scheme in t < n/2 from passively secure schemes with small overhead", IACR CRYPTOLOGY EPRINT ARCHIVE, vol. 2014, 2014, pages 304 |
KOJI CHIDAKOKI HAMADADAI IKARASHIRYO KIKUCHINAOTO KIRIBUCHIBENNY PINKAS: "An efficient secure three-party sorting protocol with an honest majority", IACR CRYPTOLOGY EPRINT ARCHIVE, vol. 2019, 2019, pages 695 |
RYO KIKUCHI, KOKI HAMADA, DAI IGARASHI, GEN TAKAHASHI, KATSUMI TAKAHASHI: "3C2-1 Secure cross-sector customer-flow invention", 2020 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY; KOCHI, JAPAN; JANUARY 28-31, 2020, IEICE, JP, 20 January 2020 (2020-01-20) - 31 January 2020 (2020-01-31), JP, pages 1 - 8, XP009542487 * |
RYO KIKUCHIDAI IKARASHITAKAHIRO MATSUDAKOKI HAMADAKOJI CHIDA: "Efficient bitdecomposition and modulus-conversion protocols with an honest majority", ACISP, 2018, pages 64 - 82 |
ZVIKA BRAKERSKICRAIG GENTRYVINOD VAIKUNTANATHAN: "Fully homomorphic encryption without bootstrapping", ELECTRONIC COLLOQUIUM ON COMPUTATIONAL COMPLEXITY (ECCC, vol. 18, 2011, pages 111 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2023281694A1 (ja) | 2023-01-12 |
EP4350562A1 (en) | 2024-04-10 |
CN117693750A (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | MILP-aided method of searching division property using three subsets and applications | |
JP6934963B2 (ja) | データを暗号化する方法およびシステム | |
JP6973632B2 (ja) | 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム | |
JPWO2019225401A1 (ja) | 秘密集約関数計算システム、秘密計算装置、秘密集約関数計算方法、およびプログラム | |
JP7031682B2 (ja) | 秘密計算装置、システム、方法、プログラム | |
JP6605746B2 (ja) | 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム | |
JP2023063430A (ja) | 暗号システム、鍵生成装置、暗号化装置、復号装置、方法及びプログラム | |
JP6973634B2 (ja) | 秘密集約中央値システム、秘密計算装置、秘密集約中央値方法、およびプログラム | |
JP6973633B2 (ja) | 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム | |
Xu et al. | Toward practical privacy-preserving linear regression | |
JP7047838B2 (ja) | 秘密計算装置、比較方法、比較プログラム、および秘密計算システム | |
US11200346B2 (en) | Secure computation for reading multiple elements from a secure text array | |
JP7315032B2 (ja) | 暗号化データ分析装置、暗号化データ分析方法、プログラム | |
JP2020519968A (ja) | ビット分解秘密計算装置、ビット結合秘密計算装置、方法およびプログラム | |
WO2023281694A1 (ja) | 秘密計算システム、装置、方法及びプログラム | |
WO2023281693A1 (ja) | 秘密計算システム、装置、方法及びプログラム | |
WO2020152831A1 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
JPWO2019221108A1 (ja) | 秘密クロス集計システム、秘密計算装置、秘密クロス集計方法、およびプログラム | |
JP5689845B2 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
JP2017223822A (ja) | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 | |
WO2023228273A1 (ja) | 秘密属性選択システム、秘密属性選択装置、秘密属性選択方法、プログラム | |
WO2023233516A1 (ja) | 秘密計算装置、秘密計算方法、プログラム | |
WO2023157118A1 (ja) | 秘密計算装置、秘密計算方法、プログラム | |
JP7359225B2 (ja) | 秘密最大値計算装置、方法及びプログラム | |
WO2023233569A1 (ja) | 秘密検索システム、秘密検索装置、秘密検索方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21949327 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023532978 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18576103 Country of ref document: US Ref document number: 2021949327 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180100287.3 Country of ref document: CN |
|
ENP | Entry into the national phase |
Ref document number: 2021949327 Country of ref document: EP Effective date: 20240103 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |