WO2021024398A1 - 秘密計算システム、秘密計算方法、および秘密計算プログラム - Google Patents
秘密計算システム、秘密計算方法、および秘密計算プログラム Download PDFInfo
- Publication number
- WO2021024398A1 WO2021024398A1 PCT/JP2019/031057 JP2019031057W WO2021024398A1 WO 2021024398 A1 WO2021024398 A1 WO 2021024398A1 JP 2019031057 W JP2019031057 W JP 2019031057W WO 2021024398 A1 WO2021024398 A1 WO 2021024398A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- secret
- calculation
- cache unit
- result
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Definitions
- the present invention relates to a secret calculation system, a secret calculation method, and a secret calculation program.
- the secret calculation method is a technology that can provide the calculation result to a third party involved while concealing the calculation process and the like.
- the calculation is executed on the data in the state where the data is held in the server managed by a third party such as the cloud.
- a secret calculation method a basic processing method for executing an arbitrary calculation is known. Since the third party does not know the data or calculation process that is the basis of the calculation, it can be used to outsource the analysis process for sensitive information such as personal information.
- Non-Patent Document 1 describes a typical example of the calculation method of the secret sharing method.
- the homomorphic encryption method can also perform calculations using data that has been kept confidential.
- Non-Patent Document 2 describes a typical example of a calculation method of homomorphic encryption method.
- the secret calculation method performs a lot of communication, it will be several tens to several hundred times slower than the normal calculation method.
- information to be kept secret is divided into data called shares and stored in a plurality of servers, so that the amount of communication between the plurality of servers increases significantly.
- Cache is known as a general technology for reducing the amount of communication between servers and effectively utilizing the calculation results in the middle.
- secret calculation the data in the secret processed state has a larger data capacity than the data in the non-secret processed state, and requires a large amount of capacity to be used for the cache.
- secret calculation using secret sharing it is necessary to provide a cache for each server, so even if it is simply considered, a large amount of capacity is required for the cache as much as the number of shares that divide the information to be kept secret. ..
- An object of the present invention is to provide a secret calculation system, a secret calculation method, and a secret calculation program that contribute to reducing the required cache capacity in view of the above-mentioned problems.
- the calculation process is performed using the concealed cache unit that holds the result of the calculation process using the concealed data as it is, and the concealed data. It includes a normal cache unit that holds the result without the secret processing, and a first confidentiality determination unit that determines whether to hold the result of the calculation processing in the secret cache unit or the normal cache unit.
- a secret calculation system characterized by this is provided.
- a secret including a secret cache unit that holds the result of calculation processing using the secret processed data as it is, and a normal cache unit that holds the result without the secret processing.
- a secret calculation method performed by using a calculation system in which a secret calculation step of performing calculation processing using the secretly processed data and a result of the secret calculation step are held in the secret cache unit or the normal cache.
- a secret calculation method having a confidentiality determination step for determining whether to retain the data and a confidentiality determination method is provided.
- a secret including a secret cache unit that holds the result of calculation processing using the secret processed data as it is, and a normal cache unit that holds the result without the secret processing.
- a secret calculation program executed by a calculation system, in which a secret calculation step that performs calculation processing using the secretly processed data and a result of the secret calculation step are held in the secret cache unit or the normal cache unit.
- a secret calculation program is provided that has a confidentiality determination step to determine whether to retain the data.
- the storage medium may be a non-transient such as a semiconductor memory, a hard disk, a magnetic recording medium, or an optical recording medium.
- the present invention can also be embodied as a computer program product.
- FIG. 1 is a diagram showing a schematic configuration of a secret calculation system according to the first embodiment.
- FIG. 2 is a diagram showing an example of the procedure of the secret calculation method.
- FIG. 3 is a diagram showing an example of the procedure of the secret calculation method.
- FIG. 4 is a diagram showing an example of the entire procedure of the secret calculation method.
- FIG. 5 is a diagram showing confidential data used for explaining a specific example.
- FIG. 6 is a diagram showing data to be held in the secret cache.
- FIG. 7 is a diagram showing a schematic configuration of the secret calculation system according to the second embodiment.
- FIG. 8 is a diagram showing a hardware configuration example of each server.
- FIG. 1 is a diagram showing a schematic configuration of a secret calculation system according to the first embodiment.
- the secret calculation system 10 includes a secret data holding unit 11, a secret cache unit 12, a normal cache unit 13, and an arithmetic unit 14.
- the secret calculation system 10 is a system capable of calculating the secret data provided by the data provider while keeping it secret, and providing only the calculation result to the data analyst while keeping the contents of the secret data and the calculation process secret. is there.
- the data analyst may be a member of the data provider. That is, when the data providers are Mr. A, Mr. B, and Mr. C, Mr. A may be the data analyst. In this case, Mr. A can perform an analysis including the data provided by Mr. B and Mr. C without knowing the contents of the data provided by Mr. B and Mr. C.
- the secret data holding unit 11 is a storage device that holds the secret data provided by the data provider in a secret processed state.
- the confidential data provided by the data provider corresponds to personal information.
- the content of the confidential data is not necessarily limited to personal information, and data that is desired to be confidential can be treated as confidential data.
- the secret data holding unit 11 divides the secret data provided by the data provider into data called a share and stores it in a plurality of servers. Therefore, although the confidential data holding unit 11 is shown as a single device or device in FIG. 1, the figure is described as a functional block and does not show a physical entity. On the other hand, the confidential data holding unit 11 can be configured as a storage device provided in one server, for example, when a homomorphic encryption method is used.
- the secret cache unit 12 is a storage device configured to hold the result of calculation processing using the secret data held in the secret data holding unit 11 as the secret processing.
- the secret cache unit 12 can be configured to use a part of the storage area of the secret data holding unit 11, but it should be configured as a storage device physically separate from the secret data holding unit 11. Is also possible.
- the secret cache unit 12 adopts a configuration suitable for realizing a cache function such as higher read / write processing speed. can do.
- the secret cache unit 12 not only holds the result of performing the calculation process using the secret data held in the secret data holding unit 11 as the secret process, but also the result of the calculation process and the calculation process. To associate and hold. Then, using the calculation process as a search key, the data is held so that the result of the calculation process can be read out.
- the normal cache unit 13 is a normal storage device that holds the result of calculation processing using the secret data held in the secret data holding unit 11 without the secret processing.
- holding without secret processing means that the secret processing processed by the secret data held in the secret data holding unit 11 is not performed. That is, it may include performing a secret process different from the secret process processed on the secret data.
- the data normally held in the cache unit 13 is not limited to so-called plaintext. For example, it is possible to change the type of concealment processing between the concealed cache unit 12 and the normal cache unit 13 and to make a difference in the level of the cipher strength.
- the normal cache unit 13 can be configured to use a part of the storage area of the secret data holding unit 11, it is configured as a storage device physically separate from the secret data holding unit 11. Is also possible. For example, when a homomorphic encryption method is used, it is not necessary to encrypt with homomorphic encryption, so that it is possible to cache data that is not encrypted with homomorphic encryption in a part of the storage area of the confidential data holding unit 11. ..
- the secret sharing method the secret data holding unit 11 and the secret cache unit 12 are distributed and provided in a plurality of servers. Therefore, although the possibility that the cache unit 13 is usually provided in the server of any one of the secret cache units 12 is not excluded, it is preferable to provide the cache unit 13 in a computing device different from the server provided with the secret cache unit 12.
- the normal cache unit 13 not only holds the result of performing the calculation process using the secret data held in the secret data holding unit 11 as the secret process, but also associates the result of the calculation process with the calculation process. Hold. Then, using the calculation process as a search key, the data is held so that the result of the calculation process can be read out.
- the arithmetic unit 14 is an arithmetic unit configured to perform calculation processing (so-called secret calculation) using confidentially processed data. Further, the arithmetic unit 14 determines whether the result of this calculation process is held in the secret cache unit 12 or the normal cache unit 13.
- the arithmetic unit 14 can be configured by using a general-purpose microprocessor, but a microprocessor specially configured so as to be able to appropriately process secret calculations may be used. Further, the arithmetic unit 14 can be configured by combining a general-purpose microprocessor and a microprocessor for secret calculation. Further, when the secret calculation system 10 is configured in the same server, it is possible to use one arithmetic unit 14, but the secret data holding unit 11 and the secret data holding unit 11 and the secret are hidden in each of the plurality of servers by using the secret sharing method. When the cache unit 12 is provided, the arithmetic unit 14 is provided in each server.
- the calculation device in which the normal cache unit 13 is provided also includes the arithmetic unit 14.
- the arithmetic unit 14 provided in the arithmetic unit different from the server provided with the secret cache unit 12 does not need to perform the calculation process (so-called secret calculation) using the secretly processed data, but the result of the calculation process is stored in the secret cache. It may be determined whether to hold the data in the unit 12 or the normal cache unit 13.
- secret calculation method a secret calculation is performed using a secret calculation system including a secret cache unit that holds the result of calculation processing using the confidential data and a normal cache unit that holds the result without secret processing.
- the method will be described.
- the secret calculation method itself described below can be implemented if it is a secret calculation system including a secret cache unit that holds the secret processing and a normal cache unit that holds the secret calculation without the secret processing, but the explanation is easy. In order to do so, the description will be made with reference to the configuration of the secret calculation system 10 shown in FIG.
- the secret calculation method determines whether to hold the secret calculation step (step A) in which the calculation process is performed using the secret data and the result of the secret calculation step in the secret cache unit 12 or the normal cache unit 13. It suffices to have a confidentiality determination step (step B) to be performed, but there are two orders of the secret calculation step (step A) and the confidentiality determination step (step B).
- the confidentiality determination step (step B) may be performed after the secret calculation step (step A), and as shown in FIG. 3, the confidentiality determination step (step B) is the secret calculation. It can also be done before step (step A).
- the confidentiality judgment step (step B) is the secret calculation step (step A). It is done before.
- k-anonymity l-diversity is another example in which a judgment needs to be made using the calculation results.
- a method of adding noise sufficient to satisfy the differential privacy can be considered.
- the average value or total value of a plurality of people is data that cannot identify an individual, so it can be judged that it does not correspond to personal information.
- the average value and total value of one person are personal information, but also the average value and total value of two people are likely to lead to individual identification. If k in k-anonymity is not an average value or a total value of data having a sufficiently large value (for example, 10 or more), even a value such as an average value or a total value can be determined to be personal information.
- l-diversity requires that data groups with the same quasi-identifier have at least l different information. Since l-diversity also satisfies l-anonymity, it is a stronger criterion than k-anonymity.
- the secret cache unit 12 or the normal cache unit 13 it is possible to consider not only the nature of the secret data such as personal information but also the judgment from a technical point of view. For example, it may be determined whether to hold the secret cache unit 12 or the normal cache unit 13 by using a threshold value according to the capacity of the secret cache unit 12. Further, it may be determined that the one having a long processing time for the calculation process is preferentially held in the secret cache unit 12.
- FIG. 4 is a diagram showing an example of the entire procedure of the secret calculation method.
- the entire procedure of the secret calculation method shown in FIG. 4 includes a part of the secret calculation method shown in FIGS. 2 and 3, but may be any of FIGS. 2 and 3.
- the calculation process is first divided (step S1).
- the normal calculation process is a stack of a plurality of calculation processes, and here, the calculation process requested by the data analyst is divided. For example, in order to calculate the number of people satisfying a certain condition, it can be divided into a process of extracting people satisfying a certain condition and a process of adding up the number of the extracted people.
- step S2 it is checked whether the result of each calculation process divided as described above is held in the cache (step S2).
- the check of whether or not it is held in the cache includes both the secret cache unit 12 and the normal cache unit 13.
- the secret cache unit 12 and the normal cache unit 13 hold the result of the calculation process and the calculation process in association with each other, the method of checking whether the calculation process is held in the cache is a method of checking each divided calculation process. Is checked as a search key.
- step S3 When the result of the calculation process is held in the cache (step S2; Y), the result of the calculation process held in the cache is used (step S3). On the other hand, when the result of the calculation process is not held in the cache (step S2; N), the secret calculation is executed.
- the confidentiality determination step (step B) may be performed after the confidentiality calculation step (step A), as described above.
- the confidentiality determination step (step B) may be performed before the secret calculation step (step A). That is, with respect to the execution of the secret calculation and the confidentiality determination in step S4, either the secret calculation method shown in FIG. 2 or the secret calculation method shown in FIG. 3 is appropriately executed.
- the calculation process requested by the data analyst is divided in step S1, but the execution of the secret calculation and the confidentiality determination in step S4 is performed by the secret calculation method shown in FIG. 2 for each divided calculation process.
- any of the secret calculation methods shown in FIG. 3 can be selected.
- step S4 is held in the secret cache unit 12 or the normal cache unit 13 according to the confidentiality determination step (step B) (step S5).
- the final calculation result is not only held in the secret cache unit 12 or the normal cache unit 13, but also provided to the data analyst.
- Request processing A Calculate the average weight of men with an annual income of 100 or more.
- Request processing B Calculate the average annual income of men with an annual income of 100 or more.
- Request processing C Calculate the number of men with an annual income of 100 or more.
- the request process A is divided into each calculation process (step S1).
- it is divided as follows.
- Calculation process A1 Extract men with an annual income of 100 or more.
- Calculation process A2 Add up the weights of men with an annual income of 100 or more.
- Calculation process A3 The number of men with an annual income of 100 or more is added up.
- Calculation process A4 Divide the total weight of men with an annual income of 100 or more by the number of men with an annual income of 100 or more.
- step S2 it is checked whether the result of each calculation process is held in the cache. However, here, it is assumed that the request process A is the first process, and the results of all the calculation processes are not held in the cache.
- the result of the calculation process A1 is a list as shown in FIG. 6, and since this corresponds to personal information, it is judged that it should be kept secret.
- the result of the calculation process A2 is "150", which does not correspond to personal information, so it is determined that it is not necessary to keep it confidential.
- the result of the calculation process A3 is "2”, which does not correspond to personal information, so it is determined that it is not necessary to keep it confidential.
- the result of the calculation process A4 is "75", which does not correspond to personal information, so it is determined that it is not necessary to keep it confidential.
- the aggregation of data of a plurality of people such as the total average is non-personal information and is not confidential.
- step S5 the result of the above calculation process is held in the secret cache unit 12 or the normal cache unit 13 (step S5).
- the result of the calculation process A1 is personal information, it is stored in the secret cache unit 12, and since the result of the calculation process A2-4 is not personal information, it is normally stored in the cache unit 13. Since the result of the request processing A is the result "75" of the calculation processing A4, this is provided to the data analyst.
- step S1 Extract men with an annual income of 100 or more.
- Calculation process B2 The annual income of men with an annual income of 100 or more is added up.
- Calculation process B3 The number of men with an annual income of 100 or more is added up.
- Calculation process B4 Divide the total annual income of men with an annual income of 100 or more by the number of men with an annual income of 100 or more.
- step S2 it is checked whether the result of each calculation process is held in the cache. Then, since the calculation process B1 and the calculation process B3 are the same processes as the calculation process A1 and the calculation process A3, the result is cached. Therefore, the calculation process B2 and the calculation process B4 use the cache without executing the calculation process (step S3).
- the secret calculation and the confidentiality determination are executed (step S4).
- the result of the calculation process B2 is "220", which does not correspond to personal information, so it is determined that it is not necessary to keep it confidential.
- the result of the calculation process B4 is "110", which does not correspond to personal information, so it is determined that it is not necessary to keep it confidential.
- step S5 the result of the above calculation process is held in the secret cache unit 12 or the normal cache unit 13 (step S5). Specifically, since the results of the calculation processes B2 and B4 are not personal information, they are usually held in the cache unit 13. Since the result of the request process B is the result "110" of the calculation process B4, this is provided to the data analyst.
- step S1 the request processing C is divided into each calculation process.
- Calculation process C1 Extract men with an annual income of 100 or more.
- Calculation process C2 Add up the number of men with an annual income of 100 or more.
- step S2 it is checked whether the result of each calculation process is held in the cache (step S2). Then, since the calculation process C1 and the calculation process C2 are the same processes as the calculation process A1 and the calculation process A3, the result is cached. Therefore, the calculation process C1 and the calculation process C2 use the cache without executing the calculation process (step S3).
- the result of the calculation process is held in the secret cache unit 12 or in the normal cache unit 13.
- the data in the secret processed state has a larger data capacity than the data in the non-secret processed state, and requires a large amount of capacity to be used for the cache. Therefore, by caching the result of the calculation process that does not need to use the secret cache unit 12 in the normal cache unit 13, it is possible to reduce the total cache of the secret cache unit 12 and the normal cache unit 13.
- FIG. 7 is a diagram showing a schematic configuration of the secret calculation system according to the second embodiment.
- the secret calculation system 100 includes three secret calculation servers 110, 120, 130 and a front-end server 140.
- the secret calculation system 100 secretly distributes the secret data provided by the data provider to the three secret calculation servers 110, 120, and 130, and keeps the contents of the secret data and the calculation process secret, and only the calculation result is a data analyst. It is a system that can be provided to. That is, the secret calculation system 100 has a configuration in which the technical idea of the first embodiment is applied to the secret sharing method. However, although the number of secret calculation servers is set to 3 here, it is set to 3 due to space limitations, and a configuration may include more secret calculation servers than 3.
- the secret calculation server 110 includes a secret data holding unit 111, a secret cache unit 112, and an arithmetic unit 114.
- the secret calculation server 120 includes a secret data holding unit 121, a secret cache unit 122, and an arithmetic unit 124.
- the secret calculation server 130 includes a secret data holding unit 131, a secret cache unit 132, and an arithmetic unit 134.
- the secret data holding units 111, 121, 131 are storage devices that hold the secret data provided by the data provider in a secret processed state.
- the confidential data provided by the data provider corresponds to personal information.
- the content of the confidential data is not necessarily limited to personal information, and data that is desired to be confidential can be treated as confidential data.
- the secret calculation system 100 divides the secret data provided by the data provider into data called a share and stores the secret data in the secret data holding units 111, 121, 131.
- the secret cache units 112, 122, 132 are storage devices configured to hold the results of calculation processing using the secret data held in the secret data holding units 111, 121, 131 in a secret-shared manner. ..
- the secret cache units 112, 122, 132 may be configured to use a part of the storage areas of the secret data holding units 111, 121, 131, but the secret data holding units 111, 121, 131 and Can also be configured as a physically separate storage device.
- the secret cache units 112, 122, 132 are configured as a storage device physically separate from the secret data holding units 111, 121, 131, the secret cache units 112, 122, 132 are cached at a higher read / write processing speed.
- a suitable configuration can be adopted to realize the above functions.
- the secret cache units 112, 122, 132 not only hold the result of performing the calculation process using the secret data held in the secret data holding units 111, 121, 131 in secret sharing, but also perform the calculation process.
- the result of the above is associated with the calculation process and held. Then, using the calculation process as a search key, the data is held so that the result of the calculation process can be read out.
- the arithmetic units 114, 124, and 134 are arithmetic units configured to perform calculation processing (so-called secret calculation) using secretly distributed data. Further, the arithmetic units 114, 124, 134 determine whether the result of this calculation process is held in the secret cache units 112, 122, 132 or the normal cache unit 143. For example, when a secret calculation is performed by concealing personal information, it is necessary to judge whether or not the calculation result satisfies k anonymity by using the calculation result. Therefore, the calculation devices 114, 124, and 134 are used. , The confidentiality judgment is performed in the secret calculation servers 110, 120, 130.
- the front-end server 140 is a computing device including a normal cache unit 143 and an arithmetic unit 144.
- the normal cache unit 143 is a normal storage device that holds the result of calculation processing using the secret data held in the secret data holding units 111, 121, 131 without secret sharing.
- the data normally held in the cache unit 143 is not limited to the so-called plaintext.
- the normal cache unit 143 can be configured to use a part of the storage area of the front-end server 140.
- the normal cache unit 143 not only holds the result of the calculation process using the secret data held in the secret data holding units 111, 121, 131 in a secret-shared state, but also calculates the result of the calculation process. Keep in association with the process. Then, using the calculation process as a search key, the data is held so that the result of the calculation process can be read out.
- the arithmetic unit 144 performs general processing as an arithmetic unit, such as dividing the calculation processing requested by the data analyst and checking whether the result of each divided calculation processing is held in the cache. Do. Further, the arithmetic unit 144 determines whether the result of this calculation process is held in the secret cache units 112, 122, 132 or the normal cache unit 143. For example, when calculating an average value, a total value, or the like, it is not necessary to make a confidentiality determination using the calculation result, so that the arithmetic unit 144 makes a confidentiality determination in the front-end server 140.
- the example of the secret calculation of the secret sharing method applicable to the configuration of the secret calculation system 100 is not limited to the following, and the secret calculation of the general secret sharing method is selected and improved according to the purpose of use. Can be used.
- the secret S which is a value on a certain field
- F (0) S.
- the number of secret calculation servers is N and the number of secrets is less than K, information on the input and output of the function cannot be obtained.
- the value of the body assigned to the i-th device is X [i] (note that 1 ⁇ i ⁇ N).
- H (X [i]) obtained by substituting X [i] into the polynomial H whose coefficient is the sum of the coefficients corresponding to each of the polynomials F and G.
- a + B is distributed to a plurality of secret calculation servers.
- K or more secret calculation servers are gathered, it is possible to solve the (K-1) degree polynomial, the coefficient of H can be obtained, and H (0) is calculated. It becomes possible to do.
- the i-th device sets the (K-1) degree polynomial G from H [i]. This can be achieved by generating and distributing G [X (j)] to each of the other j-th devices. In this way, in the secret calculation of the secret sharing method, all functions consisting of addition and multiplication can be calculated.
- the secret calculation of the secret sharing method it is possible to perform the calculation result for the original data by calculating for the divided data. That is, the calculation result for the original data can be obtained by combining the contents calculated by each secret calculation server.
- the original data cannot be restored from the individual divided data, so it is robust even when the administrator of a specific secret calculation server is unreliable, and it is necessary to restore the data during the calculation process. Since there is no such thing, it is robust against leaks during calculation.
- FIG. 8 is a diagram showing a hardware configuration example of each server. That is, the hardware configuration example shown in FIG. 8 is a hardware configuration example of the secret calculation servers 110, 120, 130 and the front-end server 140 included in the secret calculation system 100.
- the information processing apparatus adopting the hardware configuration shown in FIG. 8 executes the secret calculation method shown in FIG. 4 as a program to form the secret calculation servers 110, 120, 130 and the front-end server 140 included in the secret calculation system 100. It makes it possible to realize the function.
- the hardware configuration example shown in FIG. 8 is an example of the hardware configuration that realizes the functions of the secret calculation servers 110, 120, 130 and the front-end server 140, and the secret calculation servers 110, 120, 130 and the front-end server. It is not intended to limit the hardware configuration of 140.
- the secret computing servers 110, 120, 130 and the front-end server 140 can include hardware not shown in FIG.
- the hardware configurations 101 that can be adopted by the secret calculation servers 110, 120, 130 and the front-end server 140 are connected to each other by, for example, an internal bus, a CPU (Central Processing Unit) 102, and main storage. It includes a device 103, an auxiliary storage device 104, and an IF (Interface) unit 105.
- a CPU Central Processing Unit
- main storage main storage. It includes a device 103, an auxiliary storage device 104, and an IF (Interface) unit 105.
- IF Interface
- the CPU 102 executes various programs such as a secret calculation program executed by the secret calculation servers 110, 120, 130 and the front-end server 140.
- the main storage device 103 is, for example, a RAM (Random Access Memory), and temporarily stores various programs such as secret calculation programs executed by the secret calculation servers 110, 120, 130 and the front-end server 140 for the CPU 102 to process. ..
- the auxiliary storage device 104 is, for example, an HDD (Hard Disk Drive), and stores various programs such as secret calculation programs executed by the secret calculation servers 110, 120, 130 and the front-end server 140 in the medium to long term. It is possible. Various programs such as a secret calculation program can be provided as a program product recorded on a non-temporary computer-readable recording medium (non-transitory computer-read storage medium). The auxiliary storage device 104 can be used to store various programs such as a secret calculation program recorded on a non-temporary computer-readable recording medium in the medium to long term.
- HDD Hard Disk Drive
- the IF unit 105 provides an interface for input / output between each server.
- the information processing apparatus adopting the hardware configuration 101 as described above executes the secret calculation method shown in FIG. 4 as a program, so that the secret calculation server 110, 120, 130 and the front-end server 140 included in the secret calculation system 100 are executed. To realize the function of.
- [Appendix 1] A concealed cache unit that holds the result of calculation processing using concealed data as it is concealed.
- a normal cache unit that holds the result of calculation processing using the concealed data without the concealment processing,
- a first confidentiality determination unit that determines whether to retain the result of the calculation process in the secret cache unit or the normal cache unit, and
- a secret calculation system characterized by being equipped with.
- the confidentialized data is secretly shared among a plurality of servers.
- the secret cache unit is provided in each of the plurality of servers.
- [Appendix 3] The secret calculation system according to Appendix 2, wherein the first confidentiality determination unit is provided in each of the plurality of servers.
- [Appendix 4] The secret calculation system according to any one of Supplementary note 1 to Supplementary note 3, wherein the normal cache unit is provided in a computing device different from the server provided with the secret cache unit.
- [Appendix 5] It is characterized in that the same server as the normal cache unit is provided with a second confidentiality determination unit that determines whether the result of the calculation process is held in the secret cache unit or the normal cache unit.
- [Appendix 6] The secret calculation system according to any one of Supplementary note 1 to Supplementary note 5, wherein the secret cache unit and the normal cache unit hold the result of performing the calculation process in association with the calculation process.
- the first confidentiality determination unit is characterized in that it determines whether to retain the information in the confidential cache unit or the normal cache unit depending on whether or not the result of the calculation process is personal information.
- the secret calculation system according to any one of 1 to 6.
- the first confidentiality determination unit is characterized in that it determines whether to retain the secret cache unit or the normal cache unit based on whether or not the result of the calculation process satisfies k-anonymity.
- the secret calculation system according to any one of Supplementary notes 1 to 6.
- the first confidentiality determination unit is characterized in that it determines whether to retain the secret cache unit or the normal cache unit based on whether or not the result of the calculation process satisfies l-diversity.
- the secret calculation system according to any one of Supplementary notes 1 to 6.
- the first confidentiality determination unit is characterized in that it determines whether to hold the cache in the secret cache unit or the normal cache unit by using a threshold value according to the capacity of the secret cache unit.
- the secret calculation system according to any one of Supplementary notes 1 to 6.
- the first confidentiality determination unit is described in any one of Supplementary notes 1 to 6, wherein the first confidentiality determination unit determines to preferentially hold a calculation process having a long processing time in the confidentiality cache unit.
- Secret calculation system [Appendix 12] A secret calculation method that uses a secret calculation system that includes a secret cache unit that holds the result of calculation processing using the confidential data and a normal cache unit that holds the result without the secret processing.
- a secret calculation step that performs calculation processing using the secretly processed data A confidentiality determination step for determining whether to retain the result of the secret calculation step in the secret cache unit or the normal cache unit, and Secret calculation method with.
- Appendix 13 The secret calculation method according to Appendix 12, wherein the confidentiality determination step is performed after the secret calculation step.
- Appendix 14 The secret calculation method according to Appendix 12, wherein the confidentiality determination step is performed before the secret calculation step.
- Appendix 15 A secret calculation program executed by a secret calculation system that includes a secret cache unit that holds the result of calculation processing using the secret processed data while the secret processing is performed and a normal cache unit that holds the result without the secret processing.
- a secret calculation step that performs calculation processing using the secretly processed data
- the first confidentiality determination step for determining whether to retain the result of the secret calculation step in the secret cache unit or the normal cache unit, and Secret calculation program with.
- the confidentialized data is secretly shared among a plurality of servers.
- the secret cache unit is provided in each of the plurality of servers.
- the secret calculation program according to Appendix 16 The secret calculation program according to Appendix 16, wherein the first confidentiality determination step is executed by each of the plurality of servers.
- [Appendix 18] The secret calculation program according to any one of Supplementary note 15 to Supplementary note 17, wherein the normal cache unit is provided in a calculation device different from the server provided with the secret cache unit.
- the appendix 18 is characterized in that the calculation device has a second confidentiality determination step for determining whether to retain the result of the secret calculation step in the secret cache unit or the normal cache unit.
- Secret calculation program [Appendix 20] The secret according to any one of Appendix 15 to Appendix 19, wherein the secret calculation step is associated with the result of performing the calculation process and has a cache step held in the secret cache unit or the normal cache unit. Calculation program.
- the first confidentiality determination step is characterized in that it is determined whether to retain the information in the confidential cache unit or the normal cache unit depending on whether or not the result of the confidential calculation step is personal information.
- the secret calculation program according to any one of Supplementary note 15 to Supplementary note 20.
- the first confidentiality determination step it is determined whether to retain the secret cache unit or the normal cache unit based on whether the result of the secret calculation step satisfies k-anonymity.
- the secret calculation program according to any one of Supplementary note 15 to Supplementary note 20, which is characterized.
- the first confidentiality determination step determines whether to retain the secret cache unit or the normal cache unit based on whether the result of the secret calculation step satisfies l-diversity.
- the first confidentiality determination step is characterized in that it is determined whether to hold the cache in the secret cache unit or the normal cache unit by using a threshold value according to the capacity of the secret cache unit.
- the secret calculation program according to any one of Supplementary note 15 to Supplementary note 20.
- the first confidentiality determination step is described in any one of Appendix 15 to Appendix 20, wherein it is determined to preferentially hold the one having a long processing time of the calculation process in the confidential cache unit. Secret calculation program.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
秘密計算システムは、秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理したまま保持する秘匿キャッシュ部と、前記秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理せず保持する通常キャッシュ部と、前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断部とを備える。
Description
本発明は、秘密計算システム、秘密計算方法、および秘密計算プログラムに関するものである。
秘密計算方法は、関与する第3者に対して計算過程等を秘匿しながら計算結果を提供することができる技術である。秘密計算方法では、データをクラウドのような第3者が管理するサーバに保持した状態のデータに対して演算を実行する。なお、秘密計算方法は、任意の計算を実行するための基本処理の方法が知られている。第3者は、計算の基礎となるデータや計算過程等を知ることがないので、個人情報のような機微な情報に対する分析処理をアウトソースするために用いることができる。
代表的な秘密計算方法として、秘密分散を利用した方式と準同型暗号を利用した方式が知られている。秘密分散方式では、秘匿すべき情報をシェアと呼ばれるデータに分割して複雑のサーバに格納する。そして、秘密分散方式では、分割されたままのデータ、すなわち、秘匿処理されたままのデータを用いて任意の計算を実行することができる。非特許文献1には、秘密分散方式の計算方法の代表例が記載されている。また、準同型暗号方式も、秘匿処理されたままのデータを用いて計算を実行することができる。非特許文献2には、準同型暗号方式の計算方法の代表例が記載されている。
M. Ben Or, S. Goldwasser, and A. Wigderson. "Completeness theorems for non-cryptographic fault tolerant distributed computation (extended abstract)."
T. E. Gamal. "A public key cryptosystem and a signature scheme based on discrete logarithms", IEEE Transactions on Information Theory, 31(4) 469-472, 1985.
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
ところで、秘密計算方法では多くの通信を行うため、通常の計算方法よりも数10~数100倍程度遅くなってしまう。特に、秘密分散を利用した秘密計算では、秘匿すべき情報をシェアと呼ばれるデータに分割して複数のサーバに格納するので、複数のサーバ間の通信量の増大する程度が大きい。
サーバ間の通信量を削減したり、途中の計算結果を有効活用したりする一般的技術としてキャッシュが知られている。しかしながら、一般に秘密計算では、秘匿処理された状態のデータは秘匿処理されていない状態のデータよりもデータ容量が大きく、キャッシュに用いる容量も多く必要とする。また、秘密分散を利用した秘密計算では、各サーバにキャッシュを備える必要があるので、単純に考えても秘匿すべき情報を分割するシェアの数の分だけ、キャッシュに用いる容量も多く必要となる。
本発明の目的は、上述した課題を鑑み、必要となるキャッシュの容量を低減することに寄与する秘密計算システム、秘密計算方法、および秘密計算プログラムを提供することである。
本発明の第1の視点では、秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理したまま保持する秘匿キャッシュ部と、前記秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理せず保持する通常キャッシュ部と、前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断部と、を備えることを特徴とする秘密計算システムが提供される。
本発明の第2の視点では、秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法であって、前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する秘匿性判断ステップと、を有する秘密計算方法が提供される。
本発明の第3の視点では、秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムが実行する秘密計算プログラムであって、前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する秘匿性判断ステップと、を有する秘密計算プログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明の各視点によれば、必要となるキャッシュの容量を低減することに寄与する秘密計算システム、秘密計算方法、および秘密計算プログラムを提供することができる。
以下、図面を参照しながら、本発明の実施形態について説明する。ただし、以下に説明する実施形態により本発明が限定されるものではない。また、各図面において、同一または対応する要素には適宜同一の符号を付している。さらに、図面は模式的なものであり、各要素の寸法の関係、各要素の比率などは、現実のものとは異なる場合があることに留意する必要がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。
[第1実施形態]
図1は、第1実施形態に係る秘密計算システムの概略構成を示す図である。図1に示すように、秘密計算システム10は、秘匿データ保持部11と、秘匿キャッシュ部12と、通常キャッシュ部13と、演算装置14とを備えている。秘密計算システム10は、データ提供者から提供を受けた秘匿データを秘匿したまま計算し、秘匿データの内容および計算過程を秘匿したまま計算結果のみをデータ分析者へ提供することが可能なシステムである。
図1は、第1実施形態に係る秘密計算システムの概略構成を示す図である。図1に示すように、秘密計算システム10は、秘匿データ保持部11と、秘匿キャッシュ部12と、通常キャッシュ部13と、演算装置14とを備えている。秘密計算システム10は、データ提供者から提供を受けた秘匿データを秘匿したまま計算し、秘匿データの内容および計算過程を秘匿したまま計算結果のみをデータ分析者へ提供することが可能なシステムである。
なお、データ分析者は、データ提供者の構成員となる場合もある。すなわち、データ提供者がA氏、B氏、C氏である場合、A氏がデータ分析者となることがある。この場合、A氏は、B氏およびC氏から提供されたデータの内容を知ることなくB氏およびC氏から提供されたデータを含めた分析をすることができる。
秘匿データ保持部11は、データ提供者から提供された秘匿データを秘匿処理された状態で保持する記憶装置である。例えば、データ提供者から提供された秘匿データとは、個人情報が該当する。ただし、秘匿データの内容は、必ずしも個人情報に限定されず、秘匿することを希望するデータを秘匿データとして扱うことができる。
秘匿データ保持部11は、例えば秘密分散方式を用いる場合、データ提供者から提供された秘匿データをシェアと呼ばれるデータに分割して複数のサーバに格納する。したがって、図1では秘匿データ保持部11が単一の装置ないし機器であるように示されているが、同図は機能ブロックとして記載しており、物理的実体を示すものではない。一方、秘匿データ保持部11は、例えば準同型暗号方式を用いる場合、一つのサーバ内に設けられた記憶装置として構成することが可能である。
秘匿キャッシュ部12は、秘匿データ保持部11に保持されている秘匿データを用いて計算処理を行った結果を秘匿処理したまま保持するように構成した記憶装置である。なお、秘匿キャッシュ部12は、秘匿データ保持部11の記憶領域のうち一部を用いる構成とすることが可能であるが、秘匿データ保持部11とは物理的に別個の記憶装置として構成することも可能である。秘匿キャッシュ部12を秘匿データ保持部11とは物理的に別個の記憶装置として構成する場合、秘匿キャッシュ部12をより読み書きの処理速度が高いなどキャッシュの機能を実現するために好適な構成を採用することができる。
また、秘匿キャッシュ部12は、秘匿データ保持部11に保持されている秘匿データを用いて計算処理を行った結果を秘匿処理したまま保持するだけでなく、計算処理を行った結果と計算処理とを関連付けて保持する。そして、計算処理を検索キーとして、計算処理を行った結果を読み出すことができるようにデータを保持する。
通常キャッシュ部13は、秘匿データ保持部11に保持されている秘匿データを用いて計算処理を行った結果を秘匿処理せず保持する通常の記憶装置である。ここで、秘匿処理せず保持するとは、秘匿データ保持部11に保持されている秘匿データに処理されている秘匿処理を行わないという意味である。すなわち、秘匿データに処理されている秘匿処理とは異なる秘匿処理を施すことを含み得る。逆に言えば、通常キャッシュ部13に保持されるデータは、いわゆる平文に限定されない。例えば、秘匿キャッシュ部12と通常キャッシュ部13との間で、秘匿処理の種類を変えたり、暗号強度の高低に差を付けたりする運用も可能である。
また、通常キャッシュ部13は、秘匿データ保持部11の記憶領域のうち一部を用いる構成とすることが可能であるが、秘匿データ保持部11とは物理的に別個の記憶装置として構成することも可能である。例えば、準同型暗号方式を用いる場合、準同型暗号で暗号化しなければよいので、秘匿データ保持部11の記憶領域のうち一部に準同型暗号で暗号化しないデータをキャッシュすることが可能である。一方、秘密分散方式の場合、秘匿データ保持部11および秘匿キャッシュ部12は複数のサーバに分散して設けられる。したがって、通常キャッシュ部13は、どれか一つの秘匿キャッシュ部12のサーバに設ける可能性を排除するものではないが、秘匿キャッシュ部12を備えるサーバとは異なる計算装置に設けることが好ましい。
通常キャッシュ部13は、秘匿データ保持部11に保持されている秘匿データを用いて計算処理を行った結果を秘匿処理したまま保持するだけでなく、計算処理を行った結果と計算処理とを関連付けて保持する。そして、計算処理を検索キーとして、計算処理を行った結果を読み出すことができるようにデータを保持する。
演算装置14は、秘匿処理されたデータを用いて計算処理(いわゆる秘密計算)を行うように構成した演算装置である。さらに、演算装置14は、この計算処理の結果を秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断する。
演算装置14は、汎用マイクロプロセッサを用いて構成することも可能であるが、秘密計算を好適に処理することが可能なように特別に構成したマイクロプロセッサを用いてもよい。また、演算装置14は、汎用マイクロプロセッサと秘密計算用のマイクロプロセッサとを組み合わせて構成することも可能である。また、秘密計算システム10を同一のサーバ内に構成した場合は、演算装置14を一つとすることも可能であるが、秘密分散方式を用いて複数のサーバの各々に秘匿データ保持部11および秘匿キャッシュ部12を設ける構成とした場合、各サーバに演算装置14を設けることになる。さらに、秘匿キャッシュ部12を備えるサーバとは異なる計算装置に通常キャッシュ部13を設ける場合、通常キャッシュ部13を設ける計算装置にも演算装置14を備える。秘匿キャッシュ部12を備えるサーバとは異なる計算装置に設けられた演算装置14は、秘匿処理されたデータを用いて計算処理(いわゆる秘密計算)を行う必要はないが、計算処理の結果を秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断することがある。
(秘密計算方法)
ここで、秘匿処理されたデータを用いて計算処理を行った結果を、秘匿処理したまま保持する秘匿キャッシュ部と秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法について説明する。なお、以下で説明する秘密計算方法自体は、秘匿処理したまま保持する秘匿キャッシュ部と秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムであれば実施可能であるが、説明を容易とするために図1に示した秘密計算システム10の構成を参照しながら説明するものとする。
ここで、秘匿処理されたデータを用いて計算処理を行った結果を、秘匿処理したまま保持する秘匿キャッシュ部と秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法について説明する。なお、以下で説明する秘密計算方法自体は、秘匿処理したまま保持する秘匿キャッシュ部と秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムであれば実施可能であるが、説明を容易とするために図1に示した秘密計算システム10の構成を参照しながら説明するものとする。
図2および図3は、秘密計算方法の手順の例を示す図である。秘密計算方法は、秘匿されたデータを用いて計算処理を行う秘密計算ステップ(ステップA)と、秘密計算ステップの結果を秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断する秘匿性判断ステップ(ステップB)とを有すればよいが、秘密計算ステップ(ステップA)と秘匿性判断ステップ(ステップB)との順序には2通りある。
図2に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の後に行われることもあれば、図3に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の前に行われることもあり得る。
例えば、個人情報を秘匿して秘密計算をする場合、計算結果がk匿名性を充足しているか否かは、計算結果を用いて判断をする必要があるので、図2に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の後に行われる。一方、平均値や合計値などを計算する場合、計算結果を用いて判断をする必要がないので、図3に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の前に行われる。その他、計算結果を用いて判断をする必要がある例として、k匿名性の他に、l多様性などがある。一方、計算結果を用いて判断をする必要がない例として、差分プライバシーを満たす程度のノイズを付加する方法が考えられる。
k匿名性とは、準識別子(同一属性)のデータがk件以上になることをいう。母集団にも依存するが、例えば、110歳の人というデータは、一般にk=1となってしまう個人情報である。一方、80歳の人というデータは、一般にkが十分に大きい。したがって、年齢が85歳以上というデータは個人情報に該当すると判断し、年齢が85歳より若いというデータは個人情報に該当しないと判断するのが一つの判断基準例となる。一般に最大値や最小値は、k=1となってしまうが、予め属性ごとに指定された値以上または以下でなければ、個人情報に該当しないと判断してもよい場合がある。
また、一般に複数の人の平均値や合計値などは、個人を識別することができないデータであるので、個人情報に該当しないと判断することができる。しかしながら、1名の平均値や合計値などは個人情報となるのはもちろんのこと、2名の平均値や合計値なども個人の識別につながる可能性が高い。k匿名性におけるkが十分に大きい(例えば10以上の)データの平均値や合計値でなければ、たとえ平均値や合計値などの値であっても個人情報であると判断することもできる。
なお、l多様性は、同じ準識別子を持つデータ群が少なくともl個の異なる情報を持つことを要求する。l多様性は、同時にl匿名性も満たすので、k匿名性よりも強力な判断基準である。
上記のように個人情報に該当するか否か、すなわち秘匿性の判断は、母集団の大きさや取り扱うデータの属性に依存する問題であるので、秘密計算システム10の管理者ないし設計者が適宜設定する。
また、秘匿キャッシュ部12または通常キャッシュ部13のどちらに保持するかの判断として、個人情報などの秘匿データの性質だけではなく、技術的観点からの判断を加味することも可能である。例えば、秘匿キャッシュ部12の容量に応じたしきい値を用いて、秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断するとしてもよい。また、計算処理の処理時間が大きいものを優先的に、秘匿キャッシュ部12に保持するように判断するとしてもよい。
図4は、秘密計算方法の全体の手順の例を示す図である。図4に示される秘密計算方法の全体の手順は、図2および図3に示された秘密計算方法を一部に含むものであるが、図2および図3のいずれであってもよい。
図4に示すように、秘密計算方法の全体の手順では、最初に計算処理の分割が行われる(ステップS1)。通常の計算処理は、複数の計算処理の積み重ねとなっており、ここではデータ分析者から要求された計算処理を分割する。例えば、ある条件を満たす人数を計算するには、ある条件を満たす人を抽出する処理と、当該抽出した人の数を合算する処理とに分割することができる。
そして、上記のように分割された各計算処理の結果がキャッシュに保持されているかをチェックする(ステップS2)。ここで、キャッシュに保持されているかのチェックは、秘匿キャッシュ部12および通常キャッシュ部13の両方を含む。また、秘匿キャッシュ部12および通常キャッシュ部13は、計算処理を行った結果と計算処理とを関連付けて保持しているので、キャッシュに保持されているかをチェックする方法は、分割された各計算処理を検索キーとしてチェックする。
計算処理の結果がキャッシュに保持されている場合(ステップS2;Y)、キャッシュに保持されている計算処理の結果を利用する(ステップS3)。一方、計算処理の結果がキャッシュに保持されていない場合(ステップS2;N)、秘密計算を実行することになる。
ステップS4における秘密計算および秘匿性判断の実行については、上記説明したように、図2に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の後に行われることもあれば、図3に示すように、秘匿性判断ステップ(ステップB)が秘密計算ステップ(ステップA)の前に行われることもあり得る。すなわち、ステップS4における秘密計算および秘匿性判断の実行については、図2に示した秘密計算方法または図3に示した秘密計算方法のいずれかを適宜実行する。なお、データ分析者から要求された計算処理はステップS1にて分割されているが、ステップS4における秘密計算および秘匿性判断の実行は、分割された計算処理ごとに図2に示した秘密計算方法または図3に示した秘密計算方法のいずれかを選択することが可能である。
そして、ステップS4における結果を秘匿性判断ステップ(ステップB)にしたがって、秘匿キャッシュ部12または通常キャッシュ部13に保持する(ステップS5)。なお、最終的な計算処理の結果は、秘匿キャッシュ部12または通常キャッシュ部13に保持するだけではなく、データ分析者に対しても提供する。
(具体例)
ここで、上記秘密計算方法の具体例について説明する。ここで説明する具体例は、3つの計算処理が順次要求された場合の計算処理とキャッシュとの関係を示している。なお、以下の説明では、説明の容易性のため、図4に示したステップを参照する。
ここで、上記秘密計算方法の具体例について説明する。ここで説明する具体例は、3つの計算処理が順次要求された場合の計算処理とキャッシュとの関係を示している。なお、以下の説明では、説明の容易性のため、図4に示したステップを参照する。
要求される3つの計算処理は、以下の通りであり、これら要求処理を図5に示される秘匿データに関して行う。
要求処理A:年収が100以上の男性の平均体重を計算する。
要求処理B:年収が100以上の男性の平均年収を計算する。
要求処理C:年収が100以上の男性の人数を計算する。
要求処理A:年収が100以上の男性の平均体重を計算する。
要求処理B:年収が100以上の男性の平均年収を計算する。
要求処理C:年収が100以上の男性の人数を計算する。
まず、要求処理Aを各計算処理に分割する(ステップS1)。ここでは、例えば、以下のように分割する。
計算処理A1:年収が100以上の男性を抽出する。
計算処理A2:年収が100以上の男性の体重を合算する。
計算処理A3:年収が100以上の男性の人数を合算する。
計算処理A4:年収が100以上の男性の体重の合計を年収が100以上の男性の人数で割る。
計算処理A1:年収が100以上の男性を抽出する。
計算処理A2:年収が100以上の男性の体重を合算する。
計算処理A3:年収が100以上の男性の人数を合算する。
計算処理A4:年収が100以上の男性の体重の合計を年収が100以上の男性の人数で割る。
次に、各計算処理の結果がキャッシュに保持されているかをチェックする(ステップS2)。しかしながら、ここでは要求処理Aが最初の処理であるとし、全ての計算処理の結果がキャッシュに保持されていないものと考える。
そこで、各計算処理について秘密計算および秘匿性判断を実行する(ステップS4)。
計算処理A1の結果は、図6に示されるようなリストであり、これは個人情報に該当するので秘匿すべきものと判断する。
計算処理A2の結果は、「150」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理A3の結果は、「2」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理A4の結果は、「75」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
上述したように一つの判断基準例としては、例えば合計平均といった複数の人のデータの集計は非個人情報となり、秘匿性なしとされる。
計算処理A1の結果は、図6に示されるようなリストであり、これは個人情報に該当するので秘匿すべきものと判断する。
計算処理A2の結果は、「150」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理A3の結果は、「2」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理A4の結果は、「75」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
上述したように一つの判断基準例としては、例えば合計平均といった複数の人のデータの集計は非個人情報となり、秘匿性なしとされる。
そして、上記計算処理の結果を、秘匿キャッシュ部12または通常キャッシュ部13に保持する(ステップS5)。具体的には、計算処理A1の結果は、個人情報なので秘匿キャッシュ部12に保持し、計算処理A2―4の結果は、個人情報ではないので、通常キャッシュ部13に保持する。なお、要求処理Aの結果は、計算処理A4の結果「75」であるので、これをデータ分析者に提供する。
次に、要求処理Bが要求されるとする。そこで、要求処理Bを各計算処理に分割する(ステップS1)。ここでは、例えば、以下のように分割する。
計算処理B1:年収が100以上の男性を抽出する。
計算処理B2:年収が100以上の男性の年収を合算する。
計算処理B3:年収が100以上の男性の人数を合算する。
計算処理B4:年収が100以上の男性の年収の合計を年収が100以上の男性の人数で割る。
計算処理B1:年収が100以上の男性を抽出する。
計算処理B2:年収が100以上の男性の年収を合算する。
計算処理B3:年収が100以上の男性の人数を合算する。
計算処理B4:年収が100以上の男性の年収の合計を年収が100以上の男性の人数で割る。
次に、各計算処理の結果がキャッシュに保持されているかをチェックする(ステップS2)。すると、計算処理B1と計算処理B3は、計算処理A1と計算処理A3と同じ処理であるので、結果がキャッシュされている。そこで、計算処理B2と計算処理B4は、計算処理を実行せずキャッシュを利用する(ステップS3)。
一方、計算処理B2と計算処理B4は、キャッシュされていないので、秘密計算および秘匿性判断を実行する(ステップS4)。
計算処理B2の結果は、「220」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理B4の結果は、「110」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理B2の結果は、「220」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
計算処理B4の結果は、「110」であり、これは個人情報に該当しないので、秘匿する必要がないと判断する。
そして、上記計算処理の結果を、秘匿キャッシュ部12または通常キャッシュ部13に保持する(ステップS5)。具体的には、計算処理B2およびB4の結果は、個人情報ではないので、通常キャッシュ部13に保持する。なお、要求処理Bの結果は、計算処理B4の結果「110」であるので、これをデータ分析者に提供する。
次に、要求処理Cが要求されるとする。そこで、要求処理Cを各計算処理に分割する(ステップS1)。ここでは、例えば、以下のように分割する。
計算処理C1:年収が100以上の男性を抽出する。
計算処理C2:年収が100以上の男性の人数を合算する。
計算処理C1:年収が100以上の男性を抽出する。
計算処理C2:年収が100以上の男性の人数を合算する。
次に、各計算処理の結果がキャッシュに保持されているかをチェックする(ステップS2)。すると、計算処理C1と計算処理C2は、計算処理A1と計算処理A3と同じ処理であるので、結果がキャッシュされている。そこで、計算処理C1と計算処理C2は、計算処理を実行せずキャッシュを利用する(ステップS3)。
さらに、要求処理Cでは、分割した全ての計算処理がキャッシュされていたので、秘密計算および秘匿性判断を実行する必要もない。そこで、要求処理Cの結果は、計算処理C2の結果「2」であるので、これをデータ分析者に提供する。
このように、秘匿キャッシュ部12と通常キャッシュ部13とを備える秘密計算システム10を用いて行う秘密計算方法では、計算処理の結果を秘匿キャッシュ部12に保持するか、通常キャッシュ部13に保持するかを判断することで、必要となるキャッシュの容量を低減することに寄与することが可能である。一般に秘密計算では、秘匿処理された状態のデータは秘匿処理されていない状態のデータよりもデータ容量が大きく、キャッシュに用いる容量も多く必要とする。そこで、秘匿キャッシュ部12を用いる必要がない計算処理の結果を通常キャッシュ部13にキャッシュすることで、秘匿キャッシュ部12および通常キャッシュ部13の全体のキャッシュを少なくすることが可能である。
[第2実施形態]
図7は、第2実施形態に係る秘密計算システムの概略構成を示す図である。図7に示すように、秘密計算システム100は、3つの秘密計算サーバ110,120,130と、フロントエンドサーバ140とを備えている。秘密計算システム100は、データ提供者から提供を受けた秘匿データを3つの秘密計算サーバ110,120,130に秘密分散し、秘匿データの内容および計算過程を秘匿したまま計算結果のみをデータ分析者へ提供することが可能なシステムである。つまり、秘密計算システム100は、第1実施形態の技術思想を秘密分散方式に適用した構成である。ただし、ここでは秘密計算サーバの個数を3つとしているが、紙面の都合上3つとしているものであり、3つよりも多くの秘密計算サーバを備える構成としても良い。
図7は、第2実施形態に係る秘密計算システムの概略構成を示す図である。図7に示すように、秘密計算システム100は、3つの秘密計算サーバ110,120,130と、フロントエンドサーバ140とを備えている。秘密計算システム100は、データ提供者から提供を受けた秘匿データを3つの秘密計算サーバ110,120,130に秘密分散し、秘匿データの内容および計算過程を秘匿したまま計算結果のみをデータ分析者へ提供することが可能なシステムである。つまり、秘密計算システム100は、第1実施形態の技術思想を秘密分散方式に適用した構成である。ただし、ここでは秘密計算サーバの個数を3つとしているが、紙面の都合上3つとしているものであり、3つよりも多くの秘密計算サーバを備える構成としても良い。
図7に示すように、秘密計算サーバ110は、秘匿データ保持部111と、秘匿キャッシュ部112と、演算装置114とを備えている。また、秘密計算サーバ120は、秘匿データ保持部121と、秘匿キャッシュ部122と、演算装置124とを備えている。また、秘密計算サーバ130は、秘匿データ保持部131と、秘匿キャッシュ部132と、演算装置134とを備えている。
秘匿データ保持部111,121,131は、データ提供者から提供された秘匿データを秘匿処理された状態で保持する記憶装置である。例えば、データ提供者から提供された秘匿データとは、個人情報が該当する。ただし、秘匿データの内容は、必ずしも個人情報に限定されず、秘匿することを希望するデータを秘匿データとして扱うことができる。秘密計算システム100は、データ提供者から提供された秘匿データをシェアと呼ばれるデータに分割して各秘匿データ保持部111,121,131に格納する。
秘匿キャッシュ部112,122,132は、秘匿データ保持部111,121,131に保持されている秘匿データを用いて計算処理を行った結果を秘密分散したまま保持するように構成した記憶装置である。なお、秘匿キャッシュ部112,122,132は、秘匿データ保持部111,121,131の記憶領域のうち一部を用いる構成とすることが可能であるが、秘匿データ保持部111,121,131とは物理的に別個の記憶装置として構成することも可能である。秘匿キャッシュ部112,122,132を秘匿データ保持部111,121,131とは物理的に別個の記憶装置として構成する場合、秘匿キャッシュ部112,122,132をより読み書きの処理速度が高いなどキャッシュの機能を実現するために好適な構成を採用することができる。
また、秘匿キャッシュ部112,122,132は、秘匿データ保持部111,121,131に保持されている秘匿データを用いて計算処理を行った結果を秘密分散したまま保持するだけでなく、計算処理を行った結果と計算処理とを関連付けて保持する。そして、計算処理を検索キーとして、計算処理を行った結果を読み出すことができるようにデータを保持する。
演算装置114,124,134は、秘密分散されたデータを用いて計算処理(いわゆる秘密計算)を行うように構成した演算装置である。さらに、演算装置114,124,134は、この計算処理の結果を秘匿キャッシュ部112,122,132に保持するか、通常キャッシュ部143に保持するかを判断する。例えば、個人情報を秘匿して秘密計算をする場合、計算結果がk匿名性を充足しているか否かは、計算結果を用いて判断をする必要があるので、演算装置114,124,134は、秘密計算サーバ110,120,130内で秘匿性判断を行う。
一方、フロントエンドサーバ140は、通常キャッシュ部143と、演算装置144とを備える計算装置である。
通常キャッシュ部143は、秘匿データ保持部111,121,131に保持されている秘匿データを用いて計算処理を行った結果を秘密分散せず保持する通常の記憶装置である。ここで、通常キャッシュ部143に保持されるデータは、いわゆる平文に限定されない。例えば、秘密分散方式とは異なる暗号を施す運用も可能である。また、通常キャッシュ部143は、フロントエンドサーバ140の記憶領域のうち一部を用いる構成とすることが可能である。
通常キャッシュ部143は、秘匿データ保持部111,121,131に保持されている秘匿データを用いて計算処理を行った結果を秘密分散したまま保持するだけでなく、計算処理を行った結果と計算処理とを関連付けて保持する。そして、計算処理を検索キーとして、計算処理を行った結果を読み出すことができるようにデータを保持する。
演算装置144は、データ分析者から要求された計算処理を分割することや、分割された各計算処理の結果がキャッシュに保持されているかをチェックすることなど、計算装置としての一般的な処理を行う。さらに、演算装置144は、この計算処理の結果を秘匿キャッシュ部112,122,132に保持するか、通常キャッシュ部143に保持するかを判断する。例えば、平均値や合計値などを計算する場合、計算結果を用いて秘匿性判断をする必要がないので、演算装置144は、フロントエンドサーバ140内で秘匿性判断を行う。
ここで、秘密計算システム100の構成に適用可能な秘密分散方式の秘密計算の例を説明する。ただし、秘密計算システム100の構成に適用可能な秘密分散方式の秘密計算の例は以下に限定されるものではなく、一般的な秘密分散方式の秘密計算を利用の目的に合わせて選択および改良して用いることが可能である。
ここでは、ある体上の値である秘密Sを、この体上の多項式FでF(0)=Sとなるものを使って複数の秘密計算サーバに分散する。その際、秘密計算サーバの数をN、秘密の個数がK未満であれば、関数の入力や出力に関する情報を得ることができないものとなっている。秘密計算サーバごとに異なるこの体上の値が割り当てられているとし、i番目の装置に割り当てられている体の値をX[i]とする(なお、1≦i≦Nとする)。
秘密Aをこれら複数の秘密計算サーバに分散する際、各i番目の装置にはF(0)=Aとなるランダムに選ばれた(K-1)次多項式Fに関する、F[i]:=F(X[i])を配布する。秘密Bに関しても同様に、G(0)=Bなる(K-1)次多項式Gに関する、G[i]:=G(X[i])を各i番目の秘密計算サーバに配布する。ここで、秘密は、K個以上の装置が集まれば(K-1)次多項式を解くことが可能となり、FやGの係数を求めることができ、F(0)やG(0)が計算可能となる。
秘密AとBの加算A+Bを各秘密計算サーバに分散した値により計算するには、各i番目の装置はH[i]=F[i]+G[i]を計算する。この値は、多項式FとGのそれぞれに対応する係数を足したものを係数とする多項式Hに、X[i]を代入して得られた値H(X[i])と等しいので、秘密Aや秘密Bと同様にA+Bを複数の秘密計算サーバに分散したものとなる。秘密Aや秘密Bの場合と同様に、K個以上の秘密計算サーバが集まれば(K-1)次多項式を解くことが可能で、Hの係数を求めることができ、H(0)を計算することが可能になる。
さらに、K*2≦N+1という条件の下で、秘密AとBの乗算A*Bを分散した値により計算するには、各i番目の秘密計算サーバがH[i]=F[i]*G[i]を計算する。この値は、2K次多項式H(X)=F(X)*G(X)にX[i]を代入して得られた値H(X[i])と等しいので、秘密Aや秘密Bと同様にA*Bを複数の秘密計算サーバに分散したものとなる。ただし、秘密Aや秘密Bの場合とは異なりHの次数は2Kとなるので、2K個以上の秘密計算サーバが集まれば2K次多項式を解くことが可能で、Hの係数を求めることができ、H(0)が計算可能となる。このように、A*Bの分散方法は、秘密Aや秘密Bとは分散のされ方が異なる。
A*Bを秘密Aや秘密Bと同様に、(K-1)次多項式を用いた形で分散するには、それぞれi番目の装置がH[i]から(K-1)次多項式Gを生成し、他のそれぞれj番目の装置にG[X(j)]を配布することで実現できる。このようにして、秘密分散方式の秘密計算では、加算と乗算からなる全ての関数が計算可能となる。
秘密分散方式の秘密計算では、元データに対する計算の結果を、分割されたデータに対して計算することによって行うことを可能としている。つまり、各秘密計算サーバにおいて計算された内容を合わせると、元データに対する計算結果が得られる。なお、原則として、分割された個々のデータからは元データを復元不可能なため、特定の秘密計算サーバの管理者が信頼できない場合にも堅牢であり、また計算過程でデータを復元する必要が無いため計算途中の漏洩にも堅牢である。
図8は、各サーバのハードウェア構成例を示す図である。すなわち、図8に示すハードウェア構成例は、秘密計算システム100が備える秘密計算サーバ110,120,130およびフロントエンドサーバ140のハードウェア構成例である。図8に示すハードウェア構成を採用した情報処理装置は、図4に示す秘密計算方法をプログラムとして実行することで、秘密計算システム100が備える秘密計算サーバ110,120,130およびフロントエンドサーバ140の機能を実現することを可能にする。
ただし、図8に示すハードウェア構成例は、秘密計算サーバ110,120,130およびフロントエンドサーバ140の機能を実現するハードウェア構成の一例であり、秘密計算サーバ110,120,130およびフロントエンドサーバ140のハードウェア構成を限定する趣旨ではない。秘密計算サーバ110,120,130およびフロントエンドサーバ140は、図8に示さないハードウェアを含むことができる。
図8に示すように、秘密計算サーバ110,120,130およびフロントエンドサーバ140が採用し得るハードウェア構成101は、例えば内部バスにより相互に接続される、CPU(Central Processing Unit)102、主記憶装置103、補助記憶装置104、およびIF(Interface)部105を備える。
CPU102は、秘密計算サーバ110,120,130およびフロントエンドサーバ140が実行する秘密計算プログラムなどの各種プログラムを実行する。主記憶装置103は、例えばRAM(Random Access Memory)であり、秘密計算サーバ110,120,130およびフロントエンドサーバ140が実行する秘密計算プログラムなどの各種プログラムなどをCPU102が処理するために一時記憶する。
補助記憶装置104は、例えば、HDD(Hard Disk Drive)であり、秘密計算サーバ110,120,130およびフロントエンドサーバ140が実行する秘密計算プログラムなどの各種プログラムなどを中長期的に記憶しておくことが可能である。秘密計算プログラムなどの各種プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。補助記憶装置104は、非一時的なコンピュータ可読記録媒体に記録された秘密計算プログラムなどの各種プログラムを中長期的に記憶することに利用することが可能である。
IF部105は、各サーバ間の入出力に関するインターフェイスを提供する。
上記のようなハードウェア構成101を採用した情報処理装置は、図4に示す秘密計算方法をプログラムとして実行することで、秘密計算システム100が備える秘密計算サーバ110,120,130およびフロントエンドサーバ140の機能を実現する。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理したまま保持する秘匿キャッシュ部と、
前記秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理せず保持する通常キャッシュ部と、
前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断部と、
を備えることを特徴とする秘密計算システム。
[付記2]
前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
ことを特徴とする付記1に記載の秘密計算システム。
[付記3]
前記第1秘匿性判断部は、前記複数のサーバの各々に設けられている、ことを特徴とする付記2に記載の秘密計算システム。
[付記4]
前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする付記1から付記3のいずれか1に記載の秘密計算システム。
[付記5]
前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断部を前記通常キャッシュ部と同一のサーバに備えていることを特徴とする付記4に記載の秘密計算システム。
[付記6]
前記秘匿キャッシュ部および前記通常キャッシュ部は、前記計算処理を行った結果と前記計算処理とを関連付けて保持することを特徴とする付記1から付記5のいずれか1に記載の秘密計算システム。
[付記7]
前記第1秘匿性判断部は、前記計算処理の結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記8]
前記第1秘匿性判断部は、前記計算処理の結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記9]
前記第1秘匿性判断部は、前記計算処理の結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記10]
前記第1秘匿性判断部は、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記11]
前記第1秘匿性判断部は、前記計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記12]
秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法であって、
前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、
前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する秘匿性判断ステップと、
を有する秘密計算方法。
[付記13]
前記秘匿性判断ステップは、前記秘密計算ステップの後に行われることを特徴とする付記12に記載の秘密計算方法。
[付記14]
前記秘匿性判断ステップは、前記秘密計算ステップの前に行われることを特徴とする付記12に記載の秘密計算方法。
[付記15]
秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムが実行する秘密計算プログラムであって、
前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、
前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断ステップと、
を有する秘密計算プログラム。
[付記16]
前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
ことを特徴とする付記15に記載の秘密計算プログラム。
[付記17]
前記第1秘匿性判断ステップは、前記複数のサーバの各々が実行することを特徴とする付記16に記載の秘密計算プログラム。
[付記18]
前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする付記15から付記17のいずれか1に記載の秘密計算プログラム。
[付記19]
前記計算装置が、前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断ステップを有することを特徴とする付記18に記載の秘密計算プログラム。
[付記20]
前記計算処理を行った結果と前記秘密計算ステップとを関連付けて前記秘匿キャッシュ部または前記通常キャッシュ部に保持するキャッシュステップを有することを特徴とする付記15から付記19のいずれか1に記載の秘密計算プログラム。
[付記21]
前記第1秘匿性判断ステップは、前記秘密計算ステップの結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記22]
前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記23]
前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記24]
前記第1秘匿性判断ステップは、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記25]
前記第1秘匿性判断ステップは、前記計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記1]
秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理したまま保持する秘匿キャッシュ部と、
前記秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理せず保持する通常キャッシュ部と、
前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断部と、
を備えることを特徴とする秘密計算システム。
[付記2]
前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
ことを特徴とする付記1に記載の秘密計算システム。
[付記3]
前記第1秘匿性判断部は、前記複数のサーバの各々に設けられている、ことを特徴とする付記2に記載の秘密計算システム。
[付記4]
前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする付記1から付記3のいずれか1に記載の秘密計算システム。
[付記5]
前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断部を前記通常キャッシュ部と同一のサーバに備えていることを特徴とする付記4に記載の秘密計算システム。
[付記6]
前記秘匿キャッシュ部および前記通常キャッシュ部は、前記計算処理を行った結果と前記計算処理とを関連付けて保持することを特徴とする付記1から付記5のいずれか1に記載の秘密計算システム。
[付記7]
前記第1秘匿性判断部は、前記計算処理の結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記8]
前記第1秘匿性判断部は、前記計算処理の結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記9]
前記第1秘匿性判断部は、前記計算処理の結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記10]
前記第1秘匿性判断部は、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記11]
前記第1秘匿性判断部は、前記計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする付記1から付記6のいずれか1に記載の秘密計算システム。
[付記12]
秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法であって、
前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、
前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する秘匿性判断ステップと、
を有する秘密計算方法。
[付記13]
前記秘匿性判断ステップは、前記秘密計算ステップの後に行われることを特徴とする付記12に記載の秘密計算方法。
[付記14]
前記秘匿性判断ステップは、前記秘密計算ステップの前に行われることを特徴とする付記12に記載の秘密計算方法。
[付記15]
秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムが実行する秘密計算プログラムであって、
前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、
前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断ステップと、
を有する秘密計算プログラム。
[付記16]
前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
ことを特徴とする付記15に記載の秘密計算プログラム。
[付記17]
前記第1秘匿性判断ステップは、前記複数のサーバの各々が実行することを特徴とする付記16に記載の秘密計算プログラム。
[付記18]
前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする付記15から付記17のいずれか1に記載の秘密計算プログラム。
[付記19]
前記計算装置が、前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断ステップを有することを特徴とする付記18に記載の秘密計算プログラム。
[付記20]
前記計算処理を行った結果と前記秘密計算ステップとを関連付けて前記秘匿キャッシュ部または前記通常キャッシュ部に保持するキャッシュステップを有することを特徴とする付記15から付記19のいずれか1に記載の秘密計算プログラム。
[付記21]
前記第1秘匿性判断ステップは、前記秘密計算ステップの結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記22]
前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記23]
前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記24]
前記第1秘匿性判断ステップは、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
[付記25]
前記第1秘匿性判断ステップは、前記計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする付記15から付記20のいずれか1に記載の秘密計算プログラム。
なお、上記の非特許文献の各開示は、本書に引用をもって繰り込み記載されているものとし、必要に応じて本発明の基礎ないし一部として用いることが出来るものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るだろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10,100 秘密計算システム
101 ハードウェア構成
102 CPU
103 主記憶装置
104 補助記憶装置
105 IF部
11,111,121,131 秘匿データ保持部
12,112,122,132 秘匿キャッシュ部
13,143 通常キャッシュ部
14,114,124,134,144 演算装置
110,120,130 秘密計算サーバ
140 フロントエンドサーバ
101 ハードウェア構成
102 CPU
103 主記憶装置
104 補助記憶装置
105 IF部
11,111,121,131 秘匿データ保持部
12,112,122,132 秘匿キャッシュ部
13,143 通常キャッシュ部
14,114,124,134,144 演算装置
110,120,130 秘密計算サーバ
140 フロントエンドサーバ
Claims (25)
- 秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理したまま保持する秘匿キャッシュ部と、
前記秘匿処理されたデータを用いて計算処理を行った結果を前記秘匿処理せず保持する通常キャッシュ部と、
前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断部と、
を備えることを特徴とする秘密計算システム。 - 前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
ことを特徴とする請求項1に記載の秘密計算システム。 - 前記第1秘匿性判断部は、前記複数のサーバの各々に設けられている、ことを特徴とする請求項2に記載の秘密計算システム。
- 前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする請求項1から請求項3のいずれか1項に記載の秘密計算システム。
- 前記計算処理の結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断部を前記通常キャッシュ部と同一のサーバに備えていることを特徴とする請求項4に記載の秘密計算システム。
- 前記秘匿キャッシュ部および前記通常キャッシュ部は、前記計算処理を行った結果と前記計算処理とを関連付けて保持することを特徴とする請求項1から請求項5のいずれか1項に記載の秘密計算システム。
- 前記第1秘匿性判断部は、前記計算処理の結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
- 前記第1秘匿性判断部は、前記計算処理の結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
- 前記第1秘匿性判断部は、前記計算処理の結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
- 前記第1秘匿性判断部は、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
- 前記第1秘匿性判断部は、前記計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする請求項1から請求項6のいずれか1項に記載の秘密計算システム。
- 秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムを用いて行う秘密計算方法であって、
前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、
前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する秘匿性判断ステップと、
を有する秘密計算方法。 - 前記秘匿性判断ステップは、前記秘密計算ステップの後に行われることを特徴とする請求項12に記載の秘密計算方法。
- 前記秘匿性判断ステップは、前記秘密計算ステップの前に行われることを特徴とする請求項12に記載の秘密計算方法。
- 秘匿処理されたデータを用いて計算処理を行った結果を、前記秘匿処理したまま保持する秘匿キャッシュ部と前記秘匿処理せず保持する通常キャッシュ部とを備える秘密計算システムが実行する秘密計算プログラムであって、
前記秘匿処理されたデータを用いて計算処理を行う秘密計算ステップと、
前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第1秘匿性判断ステップと、
を有する秘密計算プログラム。 - 前記秘匿処理されたデータは、複数のサーバに秘密分散されたものであり、
前記秘匿キャッシュ部は、前記複数のサーバの各々に設けられている、
ことを特徴とする請求項15に記載の秘密計算プログラム。 - 前記第1秘匿性判断ステップは、前記複数のサーバの各々が実行することを特徴とする請求項16に記載の秘密計算プログラム。
- 前記通常キャッシュ部は、前記秘匿キャッシュ部を備えるサーバとは異なる計算装置に設けられている、ことを特徴とする請求項15から請求項17のいずれか1項に記載の秘密計算プログラム。
- 前記計算装置が、前記秘密計算ステップの結果を前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断する第2秘匿性判断ステップを有することを特徴とする請求項18に記載の秘密計算プログラム。
- 前記計算処理を行った結果と前記秘密計算ステップとを関連付けて前記秘匿キャッシュ部または前記通常キャッシュ部に保持するキャッシュステップを有することを特徴とする請求項15から請求項19のいずれか1項に記載の秘密計算プログラム。
- 前記第1秘匿性判断ステップは、前記秘密計算ステップの結果が個人情報であるか否かで、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
- 前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がk匿名性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
- 前記第1秘匿性判断ステップは、前記秘密計算ステップの結果がl多様性を満たすか否かに基づいて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
- 前記第1秘匿性判断ステップは、前記秘匿キャッシュ部の容量に応じたしきい値を用いて、前記秘匿キャッシュ部に保持するか、前記通常キャッシュ部に保持するかを判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
- 前記第1秘匿性判断ステップは、前記計算処理の処理時間が大きいものを優先的に、前記秘匿キャッシュ部に保持するように判断することを特徴とする請求項15から請求項20のいずれか1項に記載の秘密計算プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021538603A JP7359212B2 (ja) | 2019-08-07 | 2019-08-07 | 秘密計算システム、秘密計算方法、および秘密計算プログラム |
PCT/JP2019/031057 WO2021024398A1 (ja) | 2019-08-07 | 2019-08-07 | 秘密計算システム、秘密計算方法、および秘密計算プログラム |
US17/631,079 US20220277110A1 (en) | 2019-08-07 | 2019-08-07 | Secure computation system, secure computation method, and secure computation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/031057 WO2021024398A1 (ja) | 2019-08-07 | 2019-08-07 | 秘密計算システム、秘密計算方法、および秘密計算プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021024398A1 true WO2021024398A1 (ja) | 2021-02-11 |
Family
ID=74502886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/031057 WO2021024398A1 (ja) | 2019-08-07 | 2019-08-07 | 秘密計算システム、秘密計算方法、および秘密計算プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220277110A1 (ja) |
JP (1) | JP7359212B2 (ja) |
WO (1) | WO2021024398A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012195733A (ja) * | 2011-03-16 | 2012-10-11 | Fujitsu Ltd | 秘匿分析処理方法、プログラム及び装置 |
JP2013125354A (ja) * | 2011-12-13 | 2013-06-24 | Ntt Docomo Inc | 情報処理装置および情報処理方法 |
WO2019009180A1 (ja) * | 2017-07-05 | 2019-01-10 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734355B2 (en) * | 2014-04-11 | 2017-08-15 | Rubicon Labs, Inc. | System and method for an efficient authentication and key exchange protocol |
US10019603B2 (en) * | 2014-04-16 | 2018-07-10 | Synopsys, Inc. | Secured memory system and method therefor |
CN107533813B (zh) * | 2015-05-14 | 2021-02-19 | 日本电信电话株式会社 | 数据库系统、数据库处理方法 |
US10521612B2 (en) * | 2017-06-21 | 2019-12-31 | Ca, Inc. | Hybrid on-premises/software-as-service applications |
-
2019
- 2019-08-07 JP JP2021538603A patent/JP7359212B2/ja active Active
- 2019-08-07 WO PCT/JP2019/031057 patent/WO2021024398A1/ja active Application Filing
- 2019-08-07 US US17/631,079 patent/US20220277110A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012195733A (ja) * | 2011-03-16 | 2012-10-11 | Fujitsu Ltd | 秘匿分析処理方法、プログラム及び装置 |
JP2013125354A (ja) * | 2011-12-13 | 2013-06-24 | Ntt Docomo Inc | 情報処理装置および情報処理方法 |
WO2019009180A1 (ja) * | 2017-07-05 | 2019-01-10 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体 |
Non-Patent Citations (2)
Title |
---|
IMABAYASHI, HIROKI ET AL.: "Acceleration of safe frequent pattern mining by stream processing", DEIM FORUM 2017, 27 February 2017 (2017-02-27), pages 1 - 7 * |
SAWADA, JUNICHI ET AL.: "An architecture for low-latency anonymizing mechanism", IPSJ SIG TECHNICAL REPORT, 15 April 2011 (2011-04-15), pages 1 - 6 * |
Also Published As
Publication number | Publication date |
---|---|
JP7359212B2 (ja) | 2023-10-11 |
US20220277110A1 (en) | 2022-09-01 |
JPWO2021024398A1 (ja) | 2021-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | DivORAM: Towards a practical oblivious RAM with variable block size | |
US20110138191A1 (en) | Secure data cache | |
US20210248263A1 (en) | Categorizing a sensitive data field in a dataset | |
US10127244B2 (en) | Systems and methods for dynamic data storage | |
AU2019448601B2 (en) | Privacy preserving oracle | |
Khedr et al. | Cryptographic accumulator-based scheme for critical data integrity verification in cloud storage | |
KR20120065972A (ko) | 암호화 속성을 이용하는 가속 크립토그래피 | |
US8483386B2 (en) | Share generation apparatus, reconstruction apparatus, verification apparatus, and secret sharing system | |
US20220413807A1 (en) | Secure random number generation system, secure computation apparatus, secure random number generation method, and program | |
JP5972181B2 (ja) | 改ざん検知装置、改ざん検知方法、およびプログラム | |
US11106821B2 (en) | Determining pseudonym values using tweak-based encryption | |
US20150212951A1 (en) | Low-latency, low-overhead hybrid encryption scheme | |
US10853502B1 (en) | Systems and methods for reducing computational difficulty of cryptographic operations | |
WO2021024398A1 (ja) | 秘密計算システム、秘密計算方法、および秘密計算プログラム | |
Mahapatro et al. | Blockchain segmentation: a storage optimization technique for large data | |
US12088702B2 (en) | Systems and methods for adaptive recursive descent data redundancy | |
Huang et al. | Achieving data privacy on hybrid cloud | |
US11455404B2 (en) | Deduplication in a trusted execution environment | |
JP7452669B2 (ja) | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム | |
Wang et al. | Secret sharing scheme with dynamic size of shares for distributed storage system | |
Kumari et al. | A Review on Challenges of Security for Secure Data Storage in Cloud | |
Zhu et al. | Verifiable dynamic fuzzy search over encrypted data in cloud computing | |
Dankar et al. | Efficient private information retrieval for geographical aggregation | |
EP3358490A1 (en) | Method for protecting privacy in data queries | |
US11989325B1 (en) | Protecting membership in a secure multi-party computation and/or communication |
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: 19940322 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021538603 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19940322 Country of ref document: EP Kind code of ref document: A1 |