Abstract:
Each of at least three arithmetic units includes: a random number generator determining shared value [r] obtained by performing secret sharing of random number r; a randomizator using shared value [a0], . . . ,[aM−1] obtained by performing secret sharing of value a0, . . . , aM−1 and shared value [r] to generate randomized shared value , . . . , with shared values [a0], . . . , [aM−1] and [a0r], . . . , [aM−1r] as a pair; a secret computator determining concealed function value [F([a0], . . . , [aM−1])] by executing function F including at least one secret operation while including randomized shared value of an operation target and an operation result depending on contents of secret operation into checksum C:= , . . . , ; and a correctness prover verifying correctness of function value [F([a0], . . . , [aM−1])] based on shared value [Ø] obtained by multiplying a sum total of shared values [f1] included in checksum C by shared value [r] and shared value [ψ] of a sum total of shared values [fir] included in checksum C.
Abstract:
Provided is a technology for performing secure computation of a random number generation method using weighted probability distribution with high accuracy while keeping data secure. The technology includes: first vector computation means that computes a share ([[p′1]], . . . , [[p′L]]) from a share ([[p1]], . . . , [[pL]]) by using prefix sum; uniform random number generation means that generates a share ([[q1]], . . . , [[qS]]) of a vector (q1, . . . , qS) (where qi (i=1, . . . , S) is a uniform random number, and satisfies 0≤qi≤1) having a uniform random number as an element; and random number computation means that computes a share ([[r1]], . . . , [[rS]]) of a vector (r1, . . . , rS) having an output value as an element from the share ([[p′1]], . . . , [[p′L]]), a share ([[x1]], . . . , [[xL]]), and the share ([[q1]], . . . , [[qS]]) by using secure collective mapping.
Abstract:
Provided is a clustering apparatus capable of securely performing hierarchical clustering while concealing all of a calculation process and values in the middle. A clustering apparatus includes: a cluster ID update unit that combines two clusters closest to each other and updates a cluster ID of a cluster ID table in which a data ID and a cluster ID are associated with each other on a one-to-one basis; and an inter-cluster distance update unit that executes deletion processing of deleting information corresponding to clusters to be combined from an inter-cluster distance table that is a table of distances between all clusters and addition processing of adding a distance between a newly combined cluster and another cluster to the inter-cluster distance table, and updates the inter-cluster distance table, in which information of the cluster ID table and the inter-cluster distance table is encrypted, and processing in the cluster ID update unit and the addition processing in the inter-cluster distance update unit are performed by using information encrypted without being decrypted.
Abstract:
A cumulative calculation device according to an embodiment is a cumulative calculation device that, with respect to a column v=(v1, . . . , vn) of n values divided into groups, calculates cumulation for each of the groups through an associative binary operation. The cumulative calculation device includes: a value conversion unit configured to convert v into v′=(v1′, . . . , vn′) (where v1′=(v1, ci)) when c=(c1, . . . , cn) is a column of values in which 1 corresponds to a head element of the group and 0 corresponds to elements other than the head element among elements v1, . . . , vn of v; a binary operation generation unit configured to generate a new binary operation for calculating a new pair (p, q) for two pairs (w, x) and (y, z) (where x, z ∈ {0, 1} using the binary operation; a cumulative calculation unit configured to calculate cumulation s1′ (where si′ is cumulation from v1′ to vi′ from the new binary operation) by the new binary operation for i=1, . . . , n; and an output unit configured to extract a column u=(u1, . . . , un) of values indicating the cumulation for said each of the groups from each si′ (where i=1, . . . , n) and output the extracted u. The new binary operation sets an operation result of w and y by the binary operation to p when z=0, sets y to p when z=1, and sets a logical sum of x and z to q.
Abstract:
A secure collation system performs secure-data-collation between first and second information processing apparatuses and includes the first and second information processing apparatuses. The second information-processing-apparatus creates, when receiving a first vector having a hash value of a key value of the first information-processing-apparatus as an element, a second vector by adding a dummy hash value to the first vector and rearranging the first vector by random permutation; creates a third vector having, as elements, a hash value of a key value of the second information-processing-apparatus and a hash value of a dummy key value; and transmits the second and third vectors to the first information-processing-apparatus. The first information-processing-apparatus calculates a hash value of an element of the third vector and creates a fourth vector having the hash value as an element; and collates matched values between each element of the third vector and each element of the fourth vector.
Abstract:
Data search by secure computation is efficiently performed and retrieved data is safely provided. A searcher terminal acquires condition data. The searcher terminal extracts a feature from the condition data. The searcher terminal encrypts the feature of the condition data. A secure search apparatus acquires a search result indicating a ciphertext of target data corresponding to a feature of target data similar to the feature of the condition data while keeping the feature of the target data and the feature of the condition data secret. The secure search apparatus transmits the search result to an encryption apparatus and the searcher terminal. The searcher terminal acquires the ciphertext of the target data indicated by the search result. The encryption apparatus transmits a decryption key to the searcher terminal. The searcher terminal decrypts the ciphertext of the target data using the decryption key.
Abstract:
A secret grouping apparatus according to an embodiment is a secret grouping apparatus, which classifies a plurality of elements into one or more groups through secret calculation, includes: an input unit configured to receive, as an input, a target vector in which the plurality of elements are disposed so that elements belonging to a same group are continuous, a group information vector representing a last element in the group, and a classification destination vector representing a classification destination of each of the elements in the group; a detection vector calculation unit configured to calculate a detection vector representing a last element of elements classified into a same classification destination in the group by using the target vector, the group information vector, and the classification destination vector; and a classification unit configured to stably sort the target vector and the detection vector with respect to the classification destination vector to create a target vector after classifying each of the elements into the classification destination in the group and a group information vector representing a last element in a group after the classification.
Abstract:
A secret decision tree learning device according to an embodiment is a secret decision tree learning device for learning a decision tree by secret calculation, that includes an input unit configured to input a data set composed of a plurality of records including one or more attribute values of explanatory variables and attribute values of objective variables; and a learning unit configured to learn the decision tree by collectively dividing the data set at all nodes included in a hierarchical level, for each of a plurality of hierarchical levels of the decision tree.
Abstract:
A server determines an array [[addr]] indicating a storage destination of each piece of data, generates an array of concealed values, and connects the generated array to the array [[addr]] to determine an array [[addr′]]. The server generates a sort permutation [[σ1]] for the array, applies the sort permutation [[σ1]] to the array [[addr′]], and converts the array [[addr′]] into an array with a sequence composed of first Z elements set to [[i]] followed by αi elements set to [[B]]. The server generates a sort permutation [[σ2]] for the converted array [[addr′]], generates dummy data, imparts the generated dummy data to the concealed data sequence, applies the sort permutations [[σ1]] and [[σ2]] to the data array imparted with the dummy data, and generates, as a secret hash table, a data sequence obtained by deleting the last N pieces of data from the sorted data array.
Abstract:
A computation apparatus, a method of the same, and a program which perform a secure computation using fixed-point arithmetic, and overflow is unlikely to occur and the occurrence of division by zero can be detected when an odds ratio is calculated. The computation apparatus includes an odds ratio computation unit for obtaining an odds ratio between a first group (a+b) and a second group (c+d) based on four plaintext values a, b, c, and d, by means of secure computation; a zero-division detection unit for determining, by means of secure computation, whether or not at least one of the plaintext values b and c is not zero, and detecting division by zero; and a selection unit for selecting the odds ratio if division by zero is not detected, by means of secure computation.