WO2023281694A1 - 秘密計算システム、装置、方法及びプログラム - Google Patents

秘密計算システム、装置、方法及びプログラム Download PDF

Info

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
Application number
PCT/JP2021/025770
Other languages
English (en)
French (fr)
Inventor
亮 菊池
大 五十嵐
弘貴 須藤
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to CN202180100287.3A priority Critical patent/CN117693750A/zh
Priority to JP2023532978A priority patent/JPWO2023281694A1/ja
Priority to PCT/JP2021/025770 priority patent/WO2023281694A1/ja
Priority to EP21949327.7A priority patent/EP4350562A1/en
Publication of WO2023281694A1 publication Critical patent/WO2023281694A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • 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

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

秘密計算システムの秘密計算装置1nは、第一計算部11n、第二計算部12n、第三計算部13n、第四計算部14n、出力部15nを備えている。これらが協調して計算を行うことで、フラグが追加されているテーブルに対してgroup by max演算又はgroup by min演算を行うことができる。

Description

秘密計算システム、装置、方法及びプログラム
 本発明は、データを秘匿したままデータベース演算を行う技術に関する。
 データを安全に扱うために、暗号化したまま分析する秘密計算という技術が研究されている。その中でも、暗号化したまま条件に合うデータの取り出しや集計値などを効率的に算出するために、暗号化データベース処理が考えられている。
 DB処理の一種であるgroup by演算とはグループ化処理であり、テーブルを入力とし、指定したカラムの値ごとにグループ化し、場合によってそのグループごとの統計値を計算してテーブル形式で出力するものである。
 group by演算を暗号化したまま行う方法は非特許文献1にて提案されている。ここで考えられている入出力は、通常のテーブルを、各要素ごとに暗号化したテーブルであった。
 一方、暗号化したままデータベース処理を行う場合、その入出力は、通常のテーブルとは異なり、あるレコードが本来の出力か否かを示すフラグが付与されていることが考えられる。
 kをキーのベクトルとし、vをバリューのベクトルとし、fをフラグのベクトルとし、[・]を暗号化したデータとして、図15(a)に通常の暗号化されていないテーブルの例を、図15(b)に非特許文献1における暗号化されたテーブルの例を、図15(c)にフラグが追加されているテーブルの例を示す。
 図15において、“?”は何かしらの値が入っていることを示す。フラグが0の場合、そのレコードのバリューは無視されるため、この“?”のバリューの値は任意である。
菊池亮, 濱田浩気, 五十嵐大, 高橋元, 高橋克巳, 「横断的動線分析を秘密計算でやってみよう」, In SCIS,2020.
 図7(c)に例示するフラグが追加されているテーブルが入力される場合、非特許文献1で提案されたアルゴリズムは機能しない。なぜなら、入力の形式が異なることに加えて、今までは全てのレコードが意味のある値であることを想定していたため、例えば、使わないレコードをスキップして処理を行うことができておらず、無視すべき“?”の値が最終結果に影響してしまい、本来の結果を得ることができないためである。
 本発明は、フラグが追加されているテーブルに対してgroup by max演算、又は、group by min演算を行う秘密計算システム、装置、方法及びプログラムを提供することを目的とする。
 この発明の一態様による秘密計算システムは、複数の秘密計算装置を含む秘密計算システムであって、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’]を計算する複数の第四計算部と、を備えている。
 フラグが追加されているテーブルに対してgroup by max演算、又は、group by min演算を行うことができる。
図1は、秘密計算システムの機能構成の例を示す図である。 図2は、group by max演算を行う秘密計算装置の機能構成の例を示す図である。 図3は、アルゴリズムの例を示す図である。 図4は、アルゴリズムの例を示す図である。 図5は、アルゴリズムの例を示す図である。 図6は、アルゴリズムの例を示す図である。 図4は、入力の例と出力の例を説明するための図である。 図8は、秘密計算方法の処理手続きの例を示す図である。 図9は、group by min演算を行う秘密計算装置の機能構成の例を示す図である。 図10は、アルゴリズムの例を示す図である。 図11は、アルゴリズムの例を示す図である。 図12は、アルゴリズムの例を示す図である。 図13は、アルゴリズムの例を示す図である。 図14は、秘密計算方法の処理手続きの例を示す図である。 図15は、背景技術を説明するための図である。 図16は、コンピュータの機能構成例を示す図である。
 以下、本発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
 なお、文中で使用する記号「」は、本来直後の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直後に記載する。
 暗号化されたデータを[x]と書き、ベクトルをx=(x1,…,xn)と書き、[x]=([x1],…,[xn])とする。[x]のことをxの暗号文と呼ぶ。
 暗号化は、秘密分散(例えば参考文献1)や準同型暗号(例えば参考文献2)など、暗号化したまま下記の演算が可能な方法で行われるとする。格納する値に対して異なる暗号化を用いてもよいため、暗号文[・]の・がビット値である場合には、暗号文[・]を[[・]]と記述することがある。また、置換には<π>という記述を用いることがある。・は、任意の値、ベクトルである。格納する値に対して異なる暗号化を用いてもよい。すなわち、これらの暗号化は全て同じものであっても、そうでなくてもよい。
 すなわち、αを任意の値又は任意ベクトルとして[α]はαの暗号文であり、βを任意の置換として<β>はβの暗号文である。
 <参考文献1>Dai Ikarashi, Ryo Kikuchi, Koki Hamada, and Koji Chida. Actively private and correct MPC scheme in t < n/2 from passively secure schemes with small overhead. IACR Cryptology ePrint Archive, Vol. 2014, p. 304, 2014.
 <参考文献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]の関係が成立しているとする。
 乗算は、秘密分散であれば参考文献1に記載された方法で、準同型暗号であれば準同型演算で計算可能である。乗算を、[c]←Mult([a],[b])と記述する。ここで、c=abである。
 安定ソートは、入力[x]=([x1],…,[xn])を、i∈{1,…,n-1}について、xi’≦xi+1’であるような[x’]=([x1’],…,[xn’])に並び替える処理である。ただし、xi’=xi+1’であるとき元々のxの並び順が優先されるものとする。
 安定ソートは、より具体的には2個のアルゴリズム(GENPERM,SORT)からなる。
 GENPERMは、xを並び替える置換πを暗号化したものを出力する関数である。GENPERMは、<π>←GENPERM([x])と記述される。
 SORTは、πをxに適用し並び替えたものx’を暗号化したまま計算する関数である。SORTは、例えば[x’]←SORT(<π>,[x])と記述される。
 記載の簡略化のため、複数のベクトルのそれぞれを同じ置換でソートする際には、SORTは、例えば([x’],[y’])←SORT(<π>,([x],[y]))と記述される。
 SORTの自明な構成方法は、ソーティングネットワークを用いる方法である。また、秘密分散であれば、参考文献3に記載された方法により効率よくSORTを行うことができる。
 <参考文献3>Koji Chida, Koki Hamada, Dai Ikarashi, Ryo Kikuchi, Naoto Kiribuchi, and Benny Pinkas. An efficient secure three-party sorting protocol with an honest majority. IACR Cryptology ePrint Archive, Vol. 2019, p. 695, 2019.
 等号判定EQは、[x],[y]を入力として、x=yならば1、x≠yならば0となるようなeの暗号文[e]を出力する関数である。EQは、例えば[e]←EQ([x],[y])と記述される。ここで、eはx=yならば1、x≠yならば0である。
 複数の要素の等号判定を行う場合、EQは、例えば[e]←EQ(([a],[b]),([c],[d]))と記述される。ここで、eは、a=cかつb=dならば1、そうでないならば0である。
 一般にビット表現でデータが暗号化されているならば、[x-y]の各ビットが0かどうかを回路計算することにより、等号判定を行うことができる。回路計算は、加減算と乗算で計算可能である。
 整数表現で暗号化されている場合であれば、ビット分解(例えば、参考文献4参照。)を用いてビット表現に変更して同様に回路計算することにより、等号判定を行うことができる。
 <参考文献4>Ryo Kikuchi, Dai Ikarashi, Takahiro Matsuda, Koki Hamada, and Koji Chida. Efficient bitdecomposition and modulus-conversion protocols with an honest majority. In ACISP 2018, pp.64-82, 2018.
 他にもmod p上で暗号化されているのであれば、[(x-y)p-1]を乗算を使って計算しても、等号判定を行うことができる。
 IFTHENは、フラグ[f](ただしf∈{0,1})と[x],[y]を入力として、f=1ならば[x]を、f=0ならば[y]を出力する関数である。IFTHENは、例えば[e]←IFTHEN([f]:[x],[y])と記述される。ここで、eは、f=1ならばxであり、f=0ならばyである。
 IFTHENは、Mult([f],[x])+Mult([1-f],[y])などで例えば実現することができる。
 MODCONVは、ビット値の暗号化[[a]]を入力として、同じ値の暗号化ではあるが暗号文の形が違う[a]を生成する関数である。言い換えれば、MODCONVは、ビット値の暗号文[[a]]を入力として、aを整数表現した値の暗号文[a]を生成する関数である。MODCONVは、例えば[a]←MODCONV([[a]])と記述される。
 BITDECOMPは、整数値の暗号化[a]を入力として、aをビット表現した同じ値の暗号化ではあるが、暗号文の形が違う[[a]]を生成する関数である。言い換えれば、BITDECOMPは、整数値の暗号文[a]を入力として、aをビット表現した値の暗号文[[a]]を生成する関数である。BITDECOMPは、例えば[[k]]←BITDECOMP([k])と記述される。ただし、k=(k1,k2,…,kL)としたとき,k=Σi=1 L2i-1kiである。
 秘密計算システム、装置、方法及びプログラムの処理の対象となるテーブルのレコード数はmである。このテーブルは、キーのベクトルkの暗号文[k]、バリューのベクトルvの暗号文[v]、フラグのベクトルfの暗号文[f]から少なくとも構成されているとする。暗号文[f]の要素はビットの暗号文であるとする。もし、ビット出なかった場合はビット分解プロトコルでビットに変換する。
 秘密計算システム、装置、方法及びプログラムの処理の対象となるテーブルを、図7(a)に例示する。
 秘密計算システム、装置、方法及びプログラムによるgroup by max演算により、図7(a)に示すテーブルから、例えば図7(b)に示すテーブルが得られる。[k’’’]はキーのベクトルkの要素を並び替えたベクトルk’’’の暗号文である。[x’]はバリューの最大値から構成されるベクトルx’の暗号文である。[e’’’]はベクトルk’’’に対応するフラグのベクトルe’’’の暗号文である。
 図7(a)では、暗号文[k]の[1]のキーに対応する暗号文[v]の要素の最大値は[3]であり、暗号文[k]の[2]のキーに対応する暗号文[v]の要素の最大値は[1]であり、暗号文[k]の[4]のキーに対応する暗号文[v]の要素の最大値は[5]である。
 このため、図7(b)では、暗号文[k’’’]の[1]に対応する暗号文[x]の要素が[3]となっており、暗号文[k’’’]の[2]に対応する暗号文[x’]の要素が[1]となっており、暗号文[k’’’]の[4]に対応する暗号文[x’]の要素が[5]となっている。
 また、秘密計算システム、装置、方法及びプログラムによるgroup by min演算により、図7(a)に示すテーブルから、例えば図7(c)に示すテーブルが得られる。[k’’’]はキーのベクトルkの要素を並び替えたベクトルk’’の暗号文である。[x’’]はバリューの最小値から構成されるベクトルx’’の暗号文である。[g’’]はベクトルk’’に対応するフラグのベクトルg’’の暗号文である。
 図7(a)では、暗号文[k]の[1]のキーに対応する暗号文[v]の要素の最小値は[3]であり、暗号文[k]の[2]のキーに対応する暗号文[v]の要素の最小値は[1]であり、暗号文[k]の[4]のキーに対応する暗号文[v]の要素の最小値は[4]である。
 このため、図7(c)では、暗号文[k’’’]の[1]に対応する暗号文[x’]の要素が[1]となっており、暗号文[k’’’]の[2]に対応する暗号文[x’]の要素が[1]となっており、暗号文[k’’’]の[4]に対応する暗号文[x’]の要素が[4]となっている。
 図1を参照して、秘密計算システム及び方法の構成例を説明する。この秘密計算システム及び方法は、いわゆるgroup by演算(group by max演算、又は、group by min演算、)を秘密計算で行うものである。
 秘密計算システムは、N(≧2)台の秘密計算装置11,…,1Nを含む。本形態では、秘密計算装置11, …, 1Nのそれぞれは通信網2に接続されている。通信網2は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などである。なお、各装置は必ずしも通信網2を介してオンラインで通信可能である必要はない。例えば、秘密計算装置11, …, 1Nへ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から秘密計算装置11, …,1Nへオフラインで入力するように構成してもよい。
 秘密計算装置1n(1≦n≦N)の各構成部が他の秘密計算装置1n'(n'=1, …, N、ただしn≠n')の各構成部と協調しながら後述する及び図8又は図14に例示する各ステップの処理を行うことにより実施形態の秘密結合方法が実現される。
 なお、各ステップの処理は、秘密計算により行われる。すなわち、秘密計算装置1nは、暗号文を復元することなく、言い換えれば暗号文の中身を知ることなく、各ステップの処理を行う。
 秘密計算装置1nは、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密計算装置1nは、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密計算装置1nに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密計算装置1nの各構成部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
 [group by max]
 まず、group by max演算を行う秘密計算装置1nの各構成部の処理について説明する。
 group by max演算を行う秘密計算システムの秘密計算装置1nは、例えば、図2に示すように、第一計算部11n、第二計算部12n、第三計算部13n、第四計算部14n、出力部15nを備えている。
 <第一計算部111,…,11N>
 複数の第一計算部2には、ベクトルfの暗号文[f]、ベクトルkの暗号文[k]及びベクトルvの暗号文[v]が入力される。
 複数の第一計算部2は、ベクトルfの暗号文[f]、ベクトルkの暗号文[k]及びベクトルvの暗号文[v]を用いて、ベクトルfの否定、ベクトルk及びベクトルvを結合したベクトルをキーとして、ベクトルf、ベクトルk及びベクトルvをそれぞれソートしたベクトルf’、ベクトルk’及びベクトルv’の暗号文[f’]、暗号文[k’] 及び暗号文[v’]を生成する(ステップS1)。
 この複数の第一計算部111,…,11Nによる処理は、図3の「1:」から「4:」の処理により例えば実現される。
 すなわち、複数の第一計算部111,…,11Nは、
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]]))
という処理を例えば行う。
 図3の例では、暗号文[f’]として暗号文[[f’]]が生成されている。また、図3の例では、暗号文[k’]として暗号文[[k’]]及び暗号文[k’]が生成されている。
 なお、GENPERM([[f*→]],[[k†→]],[[v†→]])は、暗号文[[f*→]]、暗号文[[k†→]]及び暗号文[[v†→]]を用いて、ベクトルf*→、ベクトルk†→及びベクトルv†→を要素ごとに結合したベクトルを安定ソートする置換πの暗号文<π>を生成する処理を意味する。
 <第二計算部121,…,12N>
 複数の第二計算部121,…,12Nには、が入力される。
 複数の第二計算部121,…,12Nは、暗号文[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’]を生成する(ステップS2)。
 この複数の第二計算部121,…,12Nによる処理は、図3の「5:」から「10:」の処理により例えば実現される。
 すなわち、複数の第二計算部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>
 複数の第三計算部131,…,13Nには、が入力される。
 複数の第三計算部131,…,13Nは、暗号文[e’]及び暗号文[v’]を用いて、i=1,…,mとして、ベクトルe’の要素e’i=0である場合には値がv’iであり、ベクトルe’の要素e’i=1である場合には値が0であるxiの暗号文[xi]を生成することで、xi(i=1,…,m)を要素とするベクトルxの暗号文[x]を生成する(ステップS3)。
 この複数の第三計算部131,…,13Nによる処理は、図3の「11:」から「12:」の処理により例えば実現される。
 すなわち、複数の第三計算部131,…,13Nは、
11:each 1≦i≦m do
12: [xi]←IFTHEN([e’i]:[0],[v’i])
という処理を例えば行う。
 <第四計算部141,…,14N>
 複数の第四計算部141,…,14Nには、が入力される。
 複数の第四計算部141,…,14Nは、暗号文[e’]を用いて、ベクトルe’の各要素を1から減算した値により構成されるベクトルe’’’の暗号文[e’’’]を計算する(ステップS4)。
 この複数の第四計算部141,…,14Nによる処理は、図3の「13:」の処理により例えば実現される。
 すなわち、複数の第四計算部141,…,14Nは、
13:[[e’’’]] =1-[[e’]]
という処理を例えば行う。
 <出力部151,…,15N>
 複数の出力部151,…,15Nには、暗号文[k’]、暗号文[x]及び暗号文[e’’’]が入力される。
 複数の出力部151,…,15Nは、暗号文[k’]、暗号文[x]及び暗号文[e’’’]を出力する出力を行う(ステップS5)。
 なお、秘密計算装置11, …, 1Nは、いわゆる出力ソート処理を行ってもよい。この出力ソート処理は、例えば、複数の第四計算部141,…,14Nにより行われる、図4の「13:」から「14:」の処理により例えば実現される。
 すなわち、複数の第四計算部141,…,14Nは、
13:<π’>←GENPERM([[e’]])
14:([x’],[[e’’]],[k’’])←SORT(<π’>,([x],[[e’]],[k’ →]))
15:[[e’’’]] =1-[[e’’]]
という処理を例えば行ってもよい。
 この場合、複数の出力部151,…,15Nは、暗号文[k’]に代えて暗号文[k’’]を出力し、暗号文[x]に代えて暗号文[x’]を出力する。
 また、秘密計算装置11, …, 1Nは、いわゆるnull処理を行ってもよい。このnull処理は、例えば、複数の第三計算部131,…,13Nにより行われる、図5の「13:」の処理により例えば実現される。
 すなわち、複数の第三計算部131,…,13Nは、
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:」の処理と同じである。
 この場合、複数の出力部151,…,15Nは、暗号文[k’]に代えて暗号文[k’’]を出力する。
 また、秘密計算装置11, …, 1Nは、いわゆる出力ソート処理及びいわゆるnull処理を行ってもよい。
 このnull処理は、例えば、複数の第三計算部131,…,13Nにより行われる、図6の「13:」の処理により例えば実現される。
 すなわち、複数の第三計算部131,…,13Nは、
13:  [k’’i]←IFTHEN([e’i]:[null],[k’i])
という処理を行ってもよい。
 この出力ソート処理は、複数の第四計算部141,…,14Nにより行われる、図6の「14:」から「15:」の処理により例えば実現される。
 すなわち、複数の第四計算部141,…,14Nは、
14:<π’>←GENPERM([[e’]])
15:([x’],[[e’’]],[k’’’])←SORT(<π’>,([x],[[e’]],[k’’]))
16:[[e’’’]] =1-[[e’’]]
という処理を行ってもよい。
 この場合、複数の出力部151,…,15Nは、暗号文[k’]に代えて暗号文[k’’]を出力し、暗号文[x]に代えて暗号文[x’]を出力する。
 これらの出力ソート処理及びnull処理により、例えば図7(b)に示す暗号文[k’’]、暗号文[x’]及び暗号文[[e’’’]]が得られる。
 なお、複数の出力部151,…,15Nは、ダミーレコードに対応する暗号文については出力しなくてもよい。
 すなわち、複数の出力部151,…,15Nは、暗号文[k’]又は暗号文[k’’]又は暗号文[k’’’]、暗号文[x]又は暗号文[x’]、及び、暗号文[[e’’’]]を用いて、暗号文[k’]又は暗号文[k’’]又は暗号文[k’’’]、及び、暗号文[x]又は暗号文[x’]から、ベクトルe’’’の要素ei’’’のうちダミーレコードを示す要素に対応する要素を削除したものを出力してもよい。
 暗号文[k’’’]、暗号文[x’]及び暗号文[[e’’’]]が例えば図7(b)に示されるものである場合には、複数の出力部151,…,15Nは、暗号文[[e’’’]]の要素[1]に対応する、暗号文[k’’’]及び暗号文[x’]の要素のみを出力してもよい。すなわち、この場合、複数の出力部151,…,15Nは、暗号文[k’’’]及び暗号文[x’]の3番目までの要素を出力してもよい。
 なお、図7(b)において暗号文[[e’’’]]が[[0]]となっているレコード、言い換えれば暗号文[k’’’]が[null]となっているレコードがダミーレコードである。
 [group by min]
 つぎに、group by min演算を行う秘密計算装置1nの各構成部の処理について説明する。
 group by max演算を行う秘密計算システムの秘密計算装置1nは、例えば、図9に示すように、第一計算部11n、第二計算部12n、第三計算部13n、第四計算部14n、出力部15nを備えている。
 <第一計算部111,…,11N>
 複数の第一計算部111,…,11Nには、ベクトルfの暗号文[f]、ベクトルkの暗号文[k]及びベクトルvの暗号文[v]が入力される。
 複数の第一計算部111,…,11Nは、ベクトルfの暗号文[f]、ベクトルkの暗号文[k]及びベクトルvの暗号文[v]を用いて、ベクトルfの否定、ベクトルk及びベクトルvを結合したベクトルをキーとして、ベクトルf、ベクトルk及びベクトルvをそれぞれソートしたベクトルf’、ベクトルk’及びベクトルv’の暗号文[f’]、暗号文[k’]及び暗号文[v’]を生成する(ステップS1)。
 この複数の第一計算部111,…,11Nによる処理は、図10の「1:」から「4:」の処理により例えば実現される。
 すなわち、複数の第一計算部111,…,11Nは、
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]]))
という処理を例えば行う。
 図10の例では、暗号文[f’]として暗号文[[f’]]が生成されている。また、図3の例では、暗号文[k’]として暗号文[[k’]]及び暗号文[k’]が生成されている。
 なお、GENPERM([[f*→]],[[k†→]],[[v†→]])は、暗号文[[f*→]]、暗号文[[k†→]]及び暗号文[[v†→]]を用いて、ベクトルf*→、ベクトルk†→及びベクトルv†→を要素ごとに結合したベクトルを安定ソートする置換πの暗号文<π>を生成する処理を意味する。
 <第二計算部121,…,12N>
 複数の第二計算部121,…,12Nには、が入力される。
 複数の第二計算部121,…,12Nは、暗号文[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]を生成する(ステップS2)。
 この複数の第二計算部121,…,12Nによる処理は、図10の「5:」から「11:」の処理により例えば実現される。
 すなわち、複数の第二計算部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>
 複数の第三計算部131,…,13Nには、が入力される。
 複数の第三計算部131,…,13Nは、暗号文[g]及び暗号文[v’]を用いて、i=1,…,mとして、ベクトルgの要素gi=0である場合には値がv’iであり、ベクトルgの要素gi=1である場合には値が0であるxiの暗号文[xi]を生成することで、xi(i=1,…,m)を要素とするベクトルxの暗号文[x]を生成する(ステップS3)。
 この複数の第三計算部131,…,13Nによる処理は、図10の「12:」の処理により例えば実現される。
 すなわち、複数の第三計算部131,…,13Nは、
(9:each 1≦i≦m do)
12:  [xi]←IFTHEN([gi]:[0],[v’i])
という処理を例えば行う。
 図10の「12:」の処理は、図10の「9:」から始まる繰り返し処理に含まれるので、上記では、図10の「9:」の処理(かっこ書き)も示している。
 <複数の第四計算部141,…,14N>
 複数の第四計算部141,…,14Nには、が入力される。
 複数の第四計算部141,…,14Nは、暗号文[g]を用いて、ベクトルgの各要素を1から減算した値により構成されるベクトルg’の暗号文[g’]を計算する(ステップS4)。
 この複数の第四計算部141,…,14Nによる処理は、図10の「13:」の処理により例えば実現される。
 すなわち、複数の第四計算部141,…,14Nは、
13:[[g’]]←1-[[g]]
という処理を例えば行う。
 図10の例では、暗号文[g’]として暗号文[[g’]]が生成されている。
 <出力部151,…,15N>
 複数の出力部151,…,15Nには、暗号文[k’]、暗号文[x]及び暗号文[g’]が入力される。
 複数の出力部151,…,15Nは、暗号文[k’]、暗号文[x]及び暗号文[g’]を出力する出力を行う(ステップS5)。
 なお、秘密計算装置11, …, 1Nは、いわゆる出力ソート処理を行ってもよい。この出力ソート処理は、例えば、複数の第四計算部141,…,14Nにより行われる、図11の「13:」から「15:」の処理により例えば実現される。
 すなわち、複数の第四計算部141,…,14Nは、
13:<π’>←GENPERM([[g]])
14:([x’],[[g’]],[k’’ →])←SORT(<π’>,([x],[[g]],[k’ →]))
15:[[g’’]]←1-[[g’]]
という処理を例えば行ってもよい。
 この場合、複数の出力部151,…,15Nは、暗号文[k’]に代えて暗号文[k’’]を出力し、暗号文[x]に代えて暗号文[x’]を出力し、暗号文[g’]に代えて暗号文[g’’]を出力する。
 また、秘密計算装置11, …, 1Nは、いわゆるnull処理を行ってもよい。このnull処理は、例えば、複数の第三計算部131,…,13Nにより行われる、図12の「13:」の処理により例えば実現される。
 すなわち、複数の第三計算部131,…,13Nは、
( 9:each 1≦i≦m do)
13: [k’’i]←IFTHEN([g’i]:[null],[k’i])
という処理を例えば行ってもよい。
 図12の「13:」の処理は、図10の「9:」から始まる繰り返し処理に含まれるので、上記では、図12の「9:」の処理(かっこ書き)も示している。
 この場合、複数の出力部151,…,15Nは、暗号文[k’]に代えて暗号文[k’’]を出力する。
 また、秘密計算装置11, …, 1Nは、いわゆる出力ソート処理及びいわゆるnull処理を行ってもよい。
 このnull処理は、例えば、複数の第三計算部131,…,13Nにより行われる、図13の「13:」の処理により例えば実現される。
 すなわち、複数の第三計算部131,…,13Nは、
( 9:each 1≦i≦m do)
13:  [k’’i]←IFTHEN([g’i]:[null],[k’i])
という処理を行ってもよい。
 図13の「13:」の処理は、図13の「9:」から始まる繰り返し処理に含まれるので、上記では、図13の「9:」の処理(かっこ書き)も示している。
 この出力ソート処理は、複数の第四計算部141,…,14Nにより行われる、図13の「14:」から「15:」の処理により例えば実現される。
 すなわち、複数の第四計算部141,…,14Nは、
14:<π’>←GENPERM([[g]])
15:([x’],[[g’]],[k’’’])←SORT(<π’>,([x],[[g]],[k’’]))
16:[[g’’]]←1-[[g’]]
という処理を行ってもよい。
 この場合、複数の出力部151,…,15Nは、暗号文[k’]に代えて暗号文[k’’’]を出力し、暗号文[x]に代えて暗号文[x’]を出力し、暗号文[g’]に代えて暗号文[g’’]を出力する。
 これらの出力ソート処理及びnull処理により、例えば図7(c)に示す暗号文[k’’’]、暗号文[x’]及び暗号文[[g’’]]が得られる。
 なお、複数の出力部151,…,15Nは、ダミーレコードに対応する暗号文については出力しなくてもよい。
 暗号文[k’’’]、暗号文[x’]及び暗号文[[g’’]]が例えば図7(c)に示されるものである場合には、複数の出力部151,…,15Nは、暗号文[[g’’]]の要素[1]に対応する、暗号文[k’’’]及び暗号文[x’]の要素のみを出力してもよい。すなわち、この場合、複数の出力部151,…,15Nは、暗号文[k’’’]及び暗号文[x’]の3番目までの要素を出力してもよい。
 このように、ダミーフラグの否定を最上位ビットに配置してソートすることでダミーレコードを最下位レコードとし、また、グループの境界判定ビットについて、フラグが0 ならば境界にならないようなif 文処理を加え、minの処理では1レコード前のフラグを利用するときも同様にif 文処理を加えることで、復号することなく、group by max/minを達成することができる。
 [変形例]
 以上、本発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、本発明に含まれることはいうまでもない。
 実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
 例えば、秘密計算装置の構成部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
 [プログラム、記録媒体]
 上述した各装置の各部の処理をコンピュータにより実現してもよく、この場合は各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図16に示すコンピュータ1000の記憶部1020に読み込ませ、演算処理部1010、入力部1030、出力部1040などに動作させることにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体は、例えば、非一時的な記録媒体であり、具体的には、磁気記録装置、光ディスク、等である。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の非一時的な記憶装置である補助記録部1050に格納する。そして、処理の実行時、このコンピュータは、自己の非一時的な記憶装置である補助記録部1050に格納されたプログラムを記憶部1020に読み込み、読み込んだプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを記憶部1020に読み込み、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
 その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。

Claims (12)

  1.  複数の秘密計算装置を含む秘密計算システムであって、
     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’’’]を計算する複数の第四計算部と、
     を含む秘密計算システム。
  2.  請求項1の秘密計算システムであって、
     前記複数の第四計算部は、前記暗号文[e’]、前記暗号文[x]及び前記暗号文[k’]を用いて、前記ベクトルe’をキーとして、前記ベクトルx、前記ベクトルk’及び前記ベクトルe’をそれぞれソートしたベクトルx’、前記ベクトルk’’及び前記ベクトルe’’の暗号文[x’],暗号文[k’’]及び暗号文[e’’]を生成し、前記暗号文[e’’]を用いて、前記ベクトルe’’の各要素を1から減算した値により構成されるベクトルe’’’の暗号文[e’’’]を計算する、
     秘密計算システム。
  3.  請求項1又は2の秘密計算システムであって、
     前記複数の秘密計算装置は、前記暗号文[k’]又は前記暗号文[k’’]、前記暗号文[x]及び前記暗号文[e’’’]を出力する複数の出力部を更に含む、
     秘密計算システム。
  4.  請求項3の秘密計算システムであって、
     複数の出力部は、ダミーレコードに対応する暗号文については出力しない、
     秘密計算システム。
  5.  複数の秘密計算装置を含む秘密計算システムであって、
     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’]を計算する複数の第四計算部と、 を含む秘密計算システム。
  6.  請求項5の秘密計算システムであって、
     前記複数の第四計算部は、前記暗号文[g]、前記暗号文[x]及び前記暗号文[k’]を用いて、前記ベクトルgをキーとして、前記ベクトルx、前記ベクトルk’及び前記ベクトルgをそれぞれソートしたベクトルx’、前記ベクトルk’’及び前記ベクトルg’の暗号文[x’],暗号文[k’’]及び暗号文[g’]を生成し、前記暗号文[g’]を用いて、前記ベクトルg’の各要素を1から減算した値により構成されるベクトルg’’の暗号文[g’’]を計算する、
     秘密計算システム。
  7.  請求項5又は6の秘密計算システムであって、
     前記複数の秘密計算装置は、前記暗号文[k’]又は前記暗号文[k’’]、前記暗号文[x]、及び、前記暗号文[g’]又は前記暗号文[g’’]を出力する複数の出力部を更に含む、
     秘密計算システム。
  8.  請求項7の秘密計算システムであって、
     複数の出力部は、ダミーレコードに対応する暗号文については出力しない、
     秘密計算システム。
  9.  請求項1から8の何れかの秘密計算システムの秘密計算装置。
  10.  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’’’]を計算する第四計算ステップと、
     を含む秘密計算方法。
  11.  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’]を計算する第四計算ステップと、
     を含む秘密計算方法。
  12.  請求項10又は11の秘密計算方法の各ステップとしてコンピュータを機能させるためのプログラム。
PCT/JP2021/025770 2021-07-08 2021-07-08 秘密計算システム、装置、方法及びプログラム WO2023281694A1 (ja)

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)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 データ集計分析システム及びその方法

Patent Citations (2)

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

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