Secure computation device, secure computation method, and program
The secure computing device addresses the challenge of calculating representative values for missing data in secure computation by generating a flag sequence to keep missing values' locations and numbers confidential, enabling secure computation of mean, median, or mode.
Patent Information
- Application Number
- JP2024524106
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-06-02
- Publication Date
- 2025-09-17
- Estimated Expiration
- 2042-06-02
AI Technical Summary
Existing secure computation methods cannot effectively calculate representative values for data containing missing values without revealing their locations or numbers, hindering the application of machine learning techniques.
A secure computing device that generates a flag sequence to identify missing values and calculates representative values like mean, median, or mode while keeping the missing values' locations and numbers confidential using encrypted computations.
Enables the calculation of representative values for data with missing values in a secure computation environment, maintaining data confidentiality.
Smart Images

Figure 0007740543000008 
Figure 0007740543000009 
Figure 0007740543000010
Abstract
Description
[Technical Field]
[0001] The present invention relates to a secure computation device, a secure computation method, and a program for calculating a representative value of data excluding missing values while keeping input data including missing values secret. [Background technology]
[0002] There is a method called secure computation as a method for obtaining a specific computation result without restoring an encrypted numerical value (see, for example, Non-Patent Document 1 and Non-Patent Document 2). In the method described in Non-Patent Document 1, encryption is performed by distributing fragments of a numerical value among three secure computing devices, and the three secure computing devices perform cooperative computation, so that the results of addition / subtraction, constant addition, multiplication, constant multiplication, logical operations (negation, logical product, logical sum, exclusive logical sum), and data format conversion (integer, binary number) can be kept in a distributed state, i.e., encrypted state, among the three secure computing devices, without restoring the numerical value. Furthermore, Non-Patent Document 2 specifically shows functions that can be executed by secure computation. In recent years, proposals have also been made to perform machine learning on secure computation. [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] Koji Senda, Hiroki Hamada, Dai Igarashi, and Katsumi Takahashi, "Rethinking Lightweight Verifiable Three-Party Secure Function Computation," in CSS, 2010. [Non-patent document 2] Naoto Kiribuchi, Dai Igarashi, Hiroki Hamada, Ryo Kikuchi, "Programmable Secure Computation Library MEVAL3", In SCIS, 2018 [Non-patent document 3] the pandas development team, "pandas.DataFrame.fillna", [online], [Retrieved May 27, 2022], Internet〈 URL: https: / / pandas.pydata.org / docs / reference / api / pandas.DataFrame.fillna.html 〉 Summary of the Invention [Problem to be solved by the invention]
[0004] Data often contains missing data. For example, in a questionnaire survey, data becomes missing when a respondent does not respond, or when the sensor is unable to collect data for some reason. Such missing data is called a missing value. In addition to missing values, it can also be expressed as a missing value, a null value, or NA (Not Available). When data contains missing values, many machine learning models cannot use the data as training data. In such cases, a process is commonly performed in which the missing values are replaced with a representative value that represents the data (Non-Patent Document 3). The mean, median, or mode of the data excluding the missing values is generally used as the representative value.
[0005] However, since it is not obvious how to calculate a representative value for data that contains missing values in secure computation, it is not possible to apply conventional techniques to machine learning in secure computation to complement missing values.
[0006] Therefore, an object of the present invention is to provide a secure computing device that realizes data transformation for calculating a representative value for data containing missing values while keeping the number and locations of the missing values secret. [Means for solving the problem]
[0007] The secure computing device of the present invention is a secure computing device that performs computations on input data including an encrypted value string containing missing values while keeping it confidential, and includes a flag string generation unit and a true data number calculation unit.
[0008] The flag sequence generator generates a flag sequence, which is a sequence of flags each of which is an encrypted value of 0 when the corresponding value is a missing value and an encrypted value of 1 when the corresponding value is not a missing value. The true data number calculator calculates the number of true data excluding missing values by summing up the flag values in the flag sequence. [Effects of the Invention]
[0009] The secure computing device of the present invention realizes data transformation for calculating a representative value for data containing missing values while keeping the number and locations of the missing values secret. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a block diagram illustrating a secret sharing process performed by a plurality of secure computing devices connected to a network. [Figure 2] FIG. 1 is a block diagram showing the functional configuration of a secure computing device according to a first embodiment. [Figure 3] 1 is a flowchart showing the operation of the secure computing device of the first embodiment. [Figure 4] FIG. 2 is a block diagram showing the functional configuration of an average value calculation unit according to the first embodiment. [Figure 5] 4 is a flowchart showing the operation of an average value calculation unit according to the first embodiment. [Figure 6] 5A and 5B are diagrams showing examples of data processed by a correction value sequence generation unit of the average value calculation unit according to the first embodiment. [Figure 7] FIG. 2 is a block diagram showing the functional configuration of a median calculation unit according to the first embodiment. [Figure 8] 4 is a flowchart showing the operation of a median calculation unit according to the first embodiment. [Figure 9] FIG. 4 is a diagram showing an example of data processed by a missing value overwriting unit of the median calculation unit of the first embodiment. [Figure 10] FIG. 10 is a diagram showing an example of data processed by a value ascending sort unit and an index flag sequence generation unit of the median calculation unit of the first embodiment. [Figure 11] 4A and 4B are diagrams showing examples of data processed by an odd number flag sequence generation unit and an even number flag sequence generation unit of the median calculation unit according to the first embodiment. [Figure 12] FIG. 2 is a block diagram showing the functional configuration of a mode calculation unit according to the first embodiment. [Figure 13] 4 is a flowchart showing the operation of a mode calculation unit according to the first embodiment. [Figure 14]FIG. 10 is a diagram showing an example of data processed by a missing value overwrite unit, a value ascending order sort unit, and a boundary flag sequence generation unit of the mode calculation unit of the first embodiment. [Figure 15] FIG. 2 is a diagram showing an example of data processed by a value vector generation unit, a frequency vector generation unit, and a mode output unit of the mode calculation unit according to the first embodiment. [Figure 16] FIG. 2 is a diagram showing an example of the functional configuration of a computer. DETAILED DESCRIPTION OF THE INVENTION
[0011] Hereinafter, embodiments of the present invention will be described in detail. Components having the same functions are given the same numbers, and duplicated explanations will be omitted. [Example]
[0012] With reference to FIG. 1, a secret sharing process will be described using a plurality of secure computing apparatuses 1-1, ... 1-p, ... 1-P (P is an integer equal to or greater than 2, p=1, ..., P) of embodiment 1 connected to a network 9. As shown in the figure, the secure computing apparatuses 1-1, ... 1-p, ... 1-P of this embodiment are connected to the network 9 so as to be able to communicate with each other. All of the P secure computing apparatuses 1-1, ... 1-p, ... 1-P have the same functions and will be collectively referred to as the secure computing apparatus 1. Data handled by the secure computing apparatus 1 is encrypted by secret sharing using the configuration shown in the figure, and is calculated while remaining encrypted.
[0013] It should be noted that although the data handled by the secure computing device of the present invention needs to be encrypted in some way and be computed while remaining encrypted, it does not necessarily need to be encrypted using secret sharing.
[0014] The functional configuration of a secure computing device 1, which is a device that performs calculations on input data including an encrypted value sequence containing missing values while keeping it confidential, will be described with reference to Fig. 2. As shown in the figure, the secure computing device 1 of this embodiment includes a flag sequence generation unit 11, a true data number calculation unit 12, an average value calculation unit 13, a median calculation unit 14, and a mode calculation unit 15. Below, the operation of each component will be described with reference to Fig. 3.
[0015] <Flag sequence generation unit 11> The encrypted value sequence containing missing values is expressed as v = v1, ..., v consisting of n ≥ 2 values. n Then, any value can be calculated by using index i as v i For v, the results of checking for missing values are written as a flag sequence f = f1, ..., f n and missing values will be represented as NA.
[0016] The flag sequence generation unit 11 generates a flag sequence, which is a sequence of flags each of which is an encrypted value of 0 when the corresponding value is a missing value (NA) and an encrypted value of 1 when the corresponding value is not a missing value (NA).
number
[0017] (Reference Patent Document 1: Patent No. 5957126) <True Data Count Calculation Unit 12> The true data number calculation unit 12 calculates the sum (Σ n i=1 f i ) to calculate the number m of true data excluding missing values (S12). Therefore, the true data number calculation unit 12 calculates m = Σ n i=1 f i The number of true data m is calculated by:
[0018] <Average value calculation unit 13> The average value calculation unit 13 calculates the average value of the value string based on the value string, the flag string, and the number m of true data (S13), as will be described in detail later.
[0019] <Median calculation unit 14> The median calculation unit 14 calculates the median of the value sequence based on the value sequence, the flag sequence, and the number of true data m (S14), as will be described in detail later.
[0020] <Most frequent value calculation unit 15> The mode calculation unit 15 calculates the mode of the value sequence using an aggregate sum calculation based on the value sequence, the flag sequence, and the number of true data m (S15). Details will be described later.
[0021] An aggregate function is an operation that obtains statistical values grouped based on the value of a key attribute when a table has a key attribute and a value attribute, and an aggregate sum is one of the aggregate functions that is an operation that tally the sum of desired value attributes for each group when a table is grouped based on the value of a key attribute. For example, the method proposed in Reference Patent Document 2 can be used for the aggregate sum operation.
[0022] (Reference Patent Document 2: Patent No. 6973632) The secret aggregation summation system in Reference Patent Document 2 is A vector of value attributes when sorted based on the values of the key attributes A flag where the last element of each group is true and the other elements are false when grouped based on the value of the key attribute. Number of groups A vector with no duplicates of the key attribute values is the input, A vector representing the sum of the value attributes for each group Output.
[0023] <Detailed Functional Configuration of Average Value Calculation Unit 13> The detailed functional configuration of the average value calculation unit 13 will be described below with reference to Fig. 4. As shown in the figure, the average value calculation unit 13 of this embodiment includes a correction value sequence generation unit 131 and an average value calculation unit 132. The operation of each component will be described below with reference to Fig. 5.
[0024] <Correction value sequence generation unit 131> The correction value sequence generation unit 131 generates a correction value sequence v' by taking the product of the value and the corresponding flag, i.e., v' = v × f, as the correction value (S131). Note that the result of multiplying a missing value (NA) by 0 is 0. Therefore, values in the correction value sequence v' other than the missing value remain the same as the values in the value sequence v, and the missing value is converted to 0. An example of the operation of the correction value sequence generation unit 131 is shown in FIG. 6. Referring to the table before processing on the left side of the figure and the table after processing on the right side of the figure, it can be seen that NA has been converted to 0.
[0025] <Average value calculation unit 132> The average value calculation unit 132 divides the sum of the correction values by the number of true data, i.e.,
number
[0026] <Detailed functional configuration of the median calculation unit 14> The detailed functional configuration of the median calculation unit 14 will be described below with reference to Fig. 7. As shown in Fig. 7, the median calculation unit 14 of this embodiment includes a missing value overwriting unit 141, a value ascending sorting unit 142, an index flag sequence generation unit 143, a median index calculation unit 144, an odd number flag sequence generation unit 145, an even number flag sequence generation unit 146, and a median calculation unit 147. The operation of each component will be described below with reference to Fig. 8.
[0027] <Missing value overwriting unit 141> The missing value overwriting unit 141 calculates the value pairs of v and f associated with each other by the index (v i , fi ) is sorted in descending order based on f. The sorting process (including stable sorting) may use the sorting described in Reference Non-Patent Document 1, for example.
[0028] (Reference Non-Patent Document 1: Dai Igarashi, Hiroki Hamada, Ryo Kikuchi, Koji Senda, "Design and Implementation of Ultra-High-Speed Secure Computation Sorting: The Day Secure Computation Stands on Top of Scripting Languages", CSS2017) The v and f after sorting are represented as v' and f'. This moves the missing values to the back. The table on the left of FIG. 9 shows the state before the sorting process by the missing value overwrite unit 141, and the table in the center of the same figure shows the state after the sorting process by the missing value overwrite unit 141. Note that this sorting process is not essential and can be omitted as appropriate.
[0029] Next, the missing value overwriting unit 141 overwrites the missing value with a value greater than the maximum value of the true data (S141). The state after the overwriting process by the missing value overwriting unit 141 is shown in the table on the right of FIG.
[0030] For example, the missing value overwrite unit 141 can overwrite the missing value with the maximum value that can be expressed in the processing system. If the value is stored as an unsigned integer, the maximum value is a value where all bits are 1 (0b1...1). This means that for 1≦i≦n, f i When ' = 0, v i ' is overwritten with the maximum value.
[0031] Note that step S141 is a process performed to correctly perform the subsequent ascending sorting, and therefore although it is necessary to replace the missing value with a value larger than the maximum value of the value in the true data, it is not necessary to replace NA with a value where all bits are 1 (0b1...1). However, as mentioned above, since all values in the value column are encrypted, the simplest method for reliably converting NA to a large value without knowing the value of the value column is to overwrite NA with a value where all bits are 1 (0b1...1).
[0032] <<Value ascending sort section 142>> The value ascending order sorting unit 142 sorts the data consisting of the value string v' and the flag string in ascending order based on the value v' (S142). The sorted result will be denoted as v''. The left table in FIG. 10 shows the state before the ascending order sorting process by the value ascending order sorting unit 142, and the center table in the same figure shows the state after the ascending order sorting process by the value ascending order sorting unit 142.
[0033] <Index flag sequence generation unit 143> The index flag string generation unit 143 generates the value corresponding to the first row of the data by encrypting 0 (j1=0), and the values corresponding to the other rows are the values corresponding to the previous row plus 1 (j2=1, j3=2, ..., j n 10. The index flag string generation unit 143 generates an index flag string j, which is a string of index flags that is an encrypted value of the index flag string j (= n-1) (S143). The table on the right of FIG.
[0034] <<Median index calculation unit 144>> The median index calculation unit 144 calculates the median index I by truncating (m-1) / 2, where m is the number of true data. med ,i.e.,
number
[0035] <<Odd number flag string generation unit 145>> The odd number flag sequence generator 145 generates an odd number flag sequence when the value of the index flag is not equal to the value of the median index (I med ≠j i , 1≦i≦n) is the encrypted value of the value 0, and the value of the index flag and the value of the median index are equal (I med = j i, 1≦i≦n) is a sequence of odd flags that are encrypted with the value 1. odd ,i.e.,
number
[0036] <<Even number flag string generation unit 146>> The even flag sequence generator 146 generates an even flag sequence when the value of the index flag is not equal to the value obtained by adding 1 to the median index (I med +1≠j i , 1≦i≦n) is the encrypted value of the value 0, and the value of the index flag is equal to the value obtained by adding 1 to the median index (I med +1 = j i , 1≦i≦n), and is a sequence of even flags whose value is 1 when the odd flag value is 1. even ,i.e.,
number
[0037] <<Median Calculation Unit 147>> When the true number of data m is odd, the median calculation unit 147 calculates the value v'' and the odd number flag f odd The sum of the products is calculated as the median, and if the true number of data m is even, the value v'' is set as the even flag f even The sum of the products of divided by 2, i.e.
number
[0038] <Detailed Functional Configuration of Mode Calculation Unit 15> 12, the detailed functional configuration of the mode calculation unit 15 will be described. As shown in the figure, the mode calculation unit 15 of this embodiment includes a missing value overwriting unit 151, a value ascending sorting unit 152, a boundary flag sequence generation unit 153, a number-of-groups calculation unit 154, a value vector generation unit 155, a frequency vector calculation unit 156, and a mode output unit 157.
[0039] The operation of each component will be described below with reference to FIG.
[0040] <<Missing value overwriting unit 151>> The missing value overwriting unit 151 overwrites the missing value with a value greater than the maximum value of the true data (S151). The state after the missing value overwriting process by the missing value overwriting unit 151 is shown in the left table of FIG.
[0041] <<Value ascending sort section 152>> The value ascending sorting unit 152 sorts data (v) consisting of a value string and a flag string based on the value v. i , f i ) are sorted in ascending order (S152). The sorted results are designated as v' and f', respectively.
[0042] The central table in FIG. 14 shows the state after ascending sorting processing by the value ascending sort unit 152.
[0043] <<Boundary flag string generation unit 153>> The boundary flag sequence generation unit 153 generates a boundary flag sequence when the value of a predetermined value and the value of the next value are equal (v i '=v i+1 ', 1≦i≦n-1) with a given value v i The value corresponding to ' is the encrypted value of 0, and if the value of a given value and the value of the next value are not equal (v i '≠v i+1 ', 1≦i≦n-1) with a given value v i The value corresponding to ' is the encrypted value of 1, and is the value v located in the bottom row of the value column. nThe value corresponding to ' is a boundary flag string, which is a string of boundary flags whose value is an encrypted value of 1, i.e.,
number
[0044] <<Group number calculation unit 154>> The group number calculation unit 154 calculates the number of groups g by calculating the sum of the boundary flag strings as follows: n i=1 e i is calculated (S154).
[0045] <<Value vector generation unit 155>> The value vector generation unit 155 generates a value vector k having elements each corresponding to the value 1 of the boundary flag, that is, a vector k having elements corresponding to the value 1 of the boundary flag, from the beginning to the end of the i = 1 when k j = v i ', and generates a value vector k (S155). The value vector k is a vector in which the values of the key attributes are elements without duplication. The second table from the left in FIG. 15 shows an example of a value vector generated by the value vector generation unit 155.
[0046] <<Frequency vector calculation unit 156>> The frequency vector calculation unit 156 calculates a frequency vector s = s1, ..., s, which is the sum of the flag values (value attributes) in each group separated based on the value 1 of the boundary flag. g An example of the frequency vector generated by the frequency vector calculation unit 156 is shown in the third table from the left in FIG.
[0047] <Most frequent value output unit 157> The mode output unit 157 outputs data (k i , s i ) are sorted in descending order using the frequency vector s as a key, and the element of the first value vector is output as the mode (mode = k1') (S157). The rightmost table in Figure 15 shows the state after the descending sorting process by the mode output unit 157.
[0048] <Effects of the secure computing device 1 of the first embodiment> According to the secure computing apparatus 1 of the first embodiment, it is possible to calculate a representative value of values other than missing values for data containing missing values by secure computation while keeping the number of missing values and indexes containing missing values secret.
[0049] <Additional Notes> The device of the present invention may, for example, be a single hardware entity having an input unit to which a keyboard or the like can be connected, an output unit to which an LCD display or the like can be connected, a communication unit to which a communication device (e.g., a communication cable) capable of communicating with an external device can be connected, a CPU (which may also include a central processing unit, cache memory, registers, etc.), memories such as RAM and ROM, an external storage device such as a hard disk, and buses connecting these input unit, output unit, communication unit, CPU, RAM, ROM, and external storage device so that data can be exchanged between them. If necessary, the hardware entity may also be provided with a device (drive) capable of reading and writing to a recording medium such as a CD-ROM. A physical entity equipped with such hardware resources includes a general-purpose computer.
[0050] The external storage device of the hardware entity stores the programs required to realize the above-mentioned functions and the data required for processing these programs (the programs may be stored in a ROM, which is a read-only storage device, for example, instead of an external storage device). Data obtained by processing these programs is stored in RAM, the external storage device, etc. as appropriate.
[0051] In a hardware entity, each program stored in an external storage device (or ROM, etc.) and the data required to process each program are loaded into memory as needed, and interpreted, executed, and processed by the CPU as appropriate, resulting in the CPU realizing a predetermined function (each component represented as a unit, means, etc., above).
[0052] The present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the spirit of the present invention. Furthermore, the processes described in the above embodiments may not only be executed in chronological order according to the order described, but may also be executed in parallel or individually depending on the processing capacity of the device that executes the processes or as needed.
[0053] As described above, when the processing functions of the hardware entities (apparatuses of the present invention) described in the above embodiments are realized by a computer, the processing contents of the functions that the hardware entities should have are described by a program. Then, by executing this program on a computer, the processing functions of the hardware entities are realized on the computer.
[0054] The various processes described above can be implemented by loading a program that executes each step of the above method into the recording unit 10020 of the computer 10000 shown in Figure 16 and operating the control unit 10010, input unit 10030, output unit 10040, etc.
[0055] The program describing the processing contents can be recorded on a computer-readable recording medium. Examples of computer-readable recording media include magnetic recording devices, optical disks, magneto-optical recording media, and semiconductor memories. Specifically, examples of magnetic recording devices include hard disk drives, flexible disks, and magnetic tapes; optical disks include DVDs (Digital Versatile Discs), DVD-RAMs (Random Access Memory), CD-ROMs (Compact Disc Read Only Memory), and CD-Rs (Recordable) / RWs (Rewritable); magneto-optical recording media include MOs (Magneto-Optical discs), and semiconductor memories include EEP-ROMs (Electrically Erasable and Programmable-Read Only Memory).
[0056] The program may be distributed, for example, by selling, transferring, lending, etc. a portable recording medium such as a DVD or CD-ROM on which the program is recorded. Furthermore, the program may be stored in a storage device of a server computer, and then transferred from the server computer to another computer via a network, thereby distributing the program.
[0057] A computer that executes such a program may first temporarily store the program recorded on a portable recording medium or transferred from a server computer in its own storage device. Then, when executing a process, the computer reads the program stored on its own recording medium and executes the process in accordance with the read program. Alternatively, the computer may read the program directly from a portable recording medium and execute the process in accordance with the program. Furthermore, the computer may execute the process in accordance with the received program each time a program is transferred from a server computer to the computer. Alternatively, the server computer may not transfer the program to the computer, but may execute the process through a so-called ASP (Application Service Provider) service, which realizes the processing function by issuing an execution instruction and obtaining the results. In this embodiment, the program includes information used for processing by a computer that is equivalent to a program (such as data that is not a direct instruction to the computer but has properties that define computer processing).
[0058] In addition, in this embodiment, a hardware entity is configured by executing a predetermined program on a computer, but at least a part of the processing contents may be realized by hardware.
Claims
1. A secure computing device that performs computations on input data including an encrypted value string containing missing values while keeping the data confidential, comprising: a flag sequence generator that generates a flag sequence, which is a sequence of flags that are encrypted with 0 when a corresponding value is a missing value and encrypted with 1 when the corresponding value is not a missing value; a true data number calculation unit that calculates the number of true data excluding missing values by summing up the flag values of the flag sequence; Secret computing device.
2. 2. The secure computing device according to claim 1, a correction value sequence generation unit that generates a correction value sequence by using a product of the value and a corresponding flag as a correction value; an average value calculation unit that calculates an average value of the input data by dividing the sum of the correction values by the number of true data; Secret computing device.
3. 2. The secure computing device according to claim 1, a missing value overwriting unit that overwrites the missing value with a value greater than a maximum value in the true data; a value ascending sorting unit that sorts data consisting of the value string and the flag string in ascending order based on the value; an index flag sequence generator that generates an index flag sequence, which is a sequence of index flags in which the value corresponding to the first row of the data is an encrypted value of 0, and the values corresponding to the other rows are encrypted values obtained by adding 1 to the value corresponding to the previous row; a median index calculation unit that calculates a median index by rounding down (m-1) / 2, where m is the number of true data; an odd flag sequence generator that generates an odd flag sequence, which is a sequence of odd flags that is a value obtained by encrypting a value 0 when the value of the index flag and the value of the median index are not equal, and a value obtained by encrypting a value 1 when the value of the index flag and the value of the median index are equal; an even number flag sequence generator that generates an even number flag sequence, which is a sequence of even number flags whose values are 1 when the value of the index flag is 1 and the value obtained by adding 1 to the median index is not equal, and whose value is 0 and the value obtained by adding 1 to the median index is equal, and whose value is 1 when the value of the index flag is 1 and the value obtained by adding 1 to the median index is equal; a median calculation unit that calculates the sum of the products of the values and the odd number flags as a median when the true number of data is odd, and calculates the sum of the products of the values and the even number flags divided by 2 as a median when the true number of data is even Secret computing device.
4. 2. The secure computing device according to claim 1, a missing value overwriting unit that overwrites the missing value with a value greater than a maximum value in the true data; a value ascending sorting unit that sorts data consisting of the value string and the flag string in ascending order based on the value; a boundary flag sequence generation unit that generates a boundary flag sequence, which is a sequence of boundary flags in which, when a predetermined value and a value next to it are equal, the value corresponding to the predetermined value is a value obtained by encrypting 0, and when the predetermined value and a value next to it are not equal, the value corresponding to the predetermined value is a value obtained by encrypting 1, and the value corresponding to the value located in the bottom row of the value sequence is a value obtained by encrypting 1; a value vector generation unit that generates a value vector having elements each having a value corresponding to the value 1 of the boundary flag; a frequency vector calculation unit that calculates a frequency vector that is the sum of the values of the flags in each group that is separated based on the value 1 of the boundary flag; a mode output unit that sorts data consisting of pairs of the value vector and each element of the frequency vector in descending order using the frequency vector as a key, and outputs the element of the top value vector as the mode; Secret computing device.
5. A secure computation method executed by a secure computation device that performs computation on input data including an encrypted value string containing missing values while keeping the data confidential, comprising: a flag sequence generator that generates a flag sequence, which is a sequence of flags that are encrypted with 0 when a corresponding value is a missing value and encrypted with 1 when the corresponding value is not a missing value; a true data number calculation unit that calculates the number of true data excluding missing values by summing up the flag values of the flag sequence; Secret calculation method.
6. A program that causes a computer to function as the secure computing device according to any one of claims 1 to 4.
Citation Information
Patent Citations
Temperature detector
JP1984057126A
Data analysis support device and data analysis support processing program
JP2013196609A
Share generation device, restoration device, secret calculation system, share generation method, restoration method, program, and recording medium
WO2019039383A1