WO2017103970A1 - データ加工システム及びデータ加工方法 - Google Patents
データ加工システム及びデータ加工方法 Download PDFInfo
- Publication number
- WO2017103970A1 WO2017103970A1 PCT/JP2015/084910 JP2015084910W WO2017103970A1 WO 2017103970 A1 WO2017103970 A1 WO 2017103970A1 JP 2015084910 W JP2015084910 W JP 2015084910W WO 2017103970 A1 WO2017103970 A1 WO 2017103970A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- encrypted
- data
- encrypted data
- queries
- processor
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- 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/6227—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 where protection concerns the structure of data, e.g. records, types, queries
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2115—Third party
Definitions
- the present invention relates to a technique for creating an anonymization database.
- a technology that processes data that contains sensitive information and that does not contain sensitive information after processing is called anonymization technology and has been studied for a long time.
- anonymization technology A technology that processes data that contains sensitive information and that does not contain sensitive information after processing.
- an attacker who has knowledge of original data before anonymization may be able to identify the original data even after anonymization.
- Non-Patent Document 1 discloses a technique for anonymizing such that there are always k or more identical values for the attributes defined in the data in order to solve this problem.
- k is a number of 2 or more, the original data is not uniquely determined from the attribute after anonymization.
- Patent Document 1 discloses a system that outputs anonymized data so as to satisfy a specified anonymity request.
- Patent Document 2 discloses providing an anonymization device that automatically configures a generalized hierarchical tree of attribute values in personal information protection technology.
- Patent Document 1 US Pat. No. 7,269,578
- Patent Document 2 US Patent Application Publication No. 2013/0138698
- Non-patent literature 1 Kristen LeFevre, David J. DeWitt, Raghu Ramakrishnan, “Incognito: Inefficient full-domain K-anonymity”, Proceedings of the 2005 ACM SIGMOD international conference on Management Data, p49-60
- Patent Document 1 data must be disclosed to an anonymization execution environment.
- an anonymization execution environment operated by an external organization such as a cloud
- user data is stored in the cloud.
- the user cannot use the cloud because of concerns about information leakage.
- a data processing system having a first computer, wherein the first computer has a first processor and a first storage device connected to the first processor, and the first storage device is Holding a plurality of encrypted data generated by encrypting a plurality of plaintext data, and a plurality of encrypted queries for searching the plurality of encrypted data as they are encrypted,
- the first processor calculates the number of appearances of the encrypted data searched using the respective encrypted queries by searching the respective encrypted data using the respective encrypted queries. And changing at least two of the plurality of encrypted data so as to satisfy a predetermined anonymity based on the number of appearances of the encrypted data searched using The features.
- the user can entrust the data anonymization process to an information system managed by another organization.
- Database A type of data management. When storing data in plain text, it is written as plain text database. When storing ciphertext as data, it is referred to as an encrypted database. When it is simply called a database, the data state may or may not be encrypted.
- Decryption key A key used for decrypting data.
- the encryption key and the decryption key are the same.
- Plain text data (or plain text) Refers to data to be encrypted.
- Plaintext space A set of values that can be taken by plaintext. For example, when the plaintext space is 0 or more and less than t, the plaintext can take any integer [0, 1, 2,..., T ⁇ 1].
- Searchable encryption The data encryption / decryption function and query encryption function are possessed. It is possible to determine whether the original data and the value of the query are equal by comparing with the encrypted query while maintaining the encryption of the encrypted data. In the present invention, it is assumed that this determination function outputs 0 or 1, and is equal when 1 and is not equal when 0. Note that even a searchable cipher that does not have a decryption function at the encryption primitive level can be combined with another encryption primitive to form a searchable cipher that has a decryption function.
- Anonymization auxiliary parameters k A generic term for parameters used for anonymization. It may include k value, k-anonymization algorithm, anonymization target attribute (or column number or column name of encryption database to be encrypted), and the like.
- Anonymization auxiliary data It is data which shows the state of anonymization.
- a score based on the amount of information after anonymization may be included.
- the generalized hierarchical tree is data used for data re-encoding (anonymization) procedures generally defined for each attribute. As shown in a generalized hierarchical tree 112A of FIG. 5B described later, a generalized hierarchical tree is given to a single attribute (attribute 1 in the example of FIG. 5B).
- the nodes in the generalized hierarchical tree are labeled with values (a, b, ab, etc.), and the nodes have a connection structure. Each node is given a height in the generalized hierarchical tree.
- the node ⁇ * ⁇ is at the highest position, and then the nodes ⁇ abc, def ⁇ and ⁇ bc, de ⁇ , There is a node ⁇ a, b, c, d, e, f ⁇ at the end (that is, the lowest position).
- the higher one is called the parent node, and the lower one is called the child node.
- a node having no parent node is called a root node, and a node having no child nodes is called a leaf node. The leaf node directly points to the value of the original data.
- the value ⁇ a, b, c, d, e, f ⁇ in attribute 1 in Table 4.1 is assigned as the label of the leaf node.
- the position with the lowest node height is set to 0 hierarchy, and the hierarchy is increased by 1 each time the height increases.
- the generalized hierarchical tree 112A there are four types of hierarchies from the 0th hierarchy to the 1, 2, and 3 hierarchy.
- the generalized hierarchical tree is used for data re-encoding (anonymization) procedures.
- the plaintext space values of data are listed as ⁇ a, b, c, d, e, f ⁇ in the 0th hierarchy.
- the first layer there are ⁇ bc ⁇ as a value obtained by re-encoding ⁇ b, c ⁇ and ⁇ de ⁇ as a value obtained by re-encoding ⁇ d, e ⁇ .
- ⁇ abc ⁇ as a value obtained by re-encoding ⁇ a ⁇ and ⁇ bc ⁇
- ⁇ def ⁇ a value obtained by re-encoding ⁇ de, f ⁇ .
- the encrypted data can be compared with the encrypted query while maintaining the encryption of the encrypted data, and the comparison of the original data and the value of the query can be determined.
- the data encryption function and the query encryption function may be the same.
- FIG. 1 is an explanatory diagram showing an outline of a use case of the data processing system according to the first embodiment of the present invention.
- the data processing system of the present embodiment includes a registration PC 100, a management server 200, and a decryption PC 300.
- the registration PC 100 may be owned by a data registration company
- the management server 200 may be owned by a cloud operator
- the decryption PC 300 may be owned by a service provider.
- the registration PC 100 encrypts the data 100A using the encryption key 100C and registers it as the encrypted data 200A in the management server 200 via the network 400 (see FIG. 2).
- the registration PC 100 encrypts the anonymization auxiliary information 100 ⁇ / b> B used for anonymization and registers it in the management server 200 via the network 400.
- the management server 200 creates the anonymized encrypted data 200C obtained by anonymizing the encrypted data 200A using the encrypted anonymization auxiliary information 200B, and provides it to the decryption PC 300 via the network 400.
- the decryption PC 300 decrypts the anonymized encrypted data 300C using the decryption key 300B to obtain the anonymized data 300A.
- the management server 200 can create anonymized data.
- the content of the data is not leaked to the management server 200 by encryption. Therefore, even for sensitive data, the data registration company (registered PC 100) is safe.
- the anonymization process can be outsourced to the cloud (management server 200).
- FIG. 2 is a block diagram illustrating a hardware configuration of the management server 200 according to the first embodiment of this invention.
- a CPU Central Processing Unit
- the storage device 203 stores a program.
- the program is loaded into the memory 202 and executed by the CPU 201.
- the processing executed by the management server 200 is actually the CPU 201 controlling the memory 202, the storage device 203, the input device 205, the output device 206, the reading device 207, and the communication device 208 as necessary according to the program. To be executed.
- the reading device 207 is a interchangeable storage medium read / write device such as a CD-R / CD-RW drive or an SD card reader / writer.
- the communication device 208 is connected to the network 400 and transmits / receives data to / from the registration PC 100 and the decryption PC 300 via the network 400.
- the hardware configurations of the registration PC 100 and the decryption PC 300 are the same as those of the management server 200, and thus the description thereof is omitted.
- a program is stored in the storage device of the registration PC 100, the program is loaded into the memory of the registration PC 100, and executed by the CPU of the registration PC 100, thereby realizing the processing of the registration PC 100.
- a program is stored in the storage device of the decryption PC 300, the program is loaded into the memory of the decryption PC 300, and executed by the CPU of the decryption PC 300, thereby realizing the processing of the decryption PC 300.
- the program of the management server 200 is input via the reading device 207 or input from the network 400 via the communication device 208, stored in the storage device 203, and then loaded on the memory 202, It may be executed by the CPU 201.
- FIG. 3 is an explanatory diagram illustrating an outline of data and programs stored in the registration PC 100, the management server 200, and the decryption PC 300 according to the first embodiment of the present invention, and data transmitted and received via the network.
- the registration PC 100 holds a plaintext database 111 storing plaintext data, a plaintext generalized hierarchical tree 112 that is information used for anonymization, and an anonymization auxiliary parameter 113 in a storage device or memory. Furthermore, the storage device or memory of the registered PC 100 holds an encryption program 110 that encrypts the plaintext database 111 and the plaintext generalized hierarchical tree 112.
- the plaintext database 111 corresponds to the data 100A in FIG. 1, and the generalized hierarchical tree 112 and the anonymization auxiliary parameter 113 correspond to the anonymization auxiliary information 100B in FIG.
- the encrypted database 121 and the encrypted generalized hierarchical tree 122 are generated by encrypting the plaintext database 111 and the plaintext generalized hierarchical tree 112 by the encryption program 110 held by the registered PC 100, respectively. Yes, it is provided from the registration PC 100 to the management server 200 via the network 400.
- the anonymization auxiliary parameter 113 is also provided from the registration PC 100 to the management server 200 via the network 400.
- the management server 200 holds an encrypted database 121, an encrypted generalized hierarchical tree 122 that is information used for anonymization, and an anonymization auxiliary parameter 113 in the storage device 203 or the memory 202. Furthermore, the storage device 203 or the memory 202 holds an anonymization program 210 that anonymizes encrypted data using the encrypted generalized hierarchical tree and anonymization auxiliary parameters.
- the encrypted database 121 corresponds to the encrypted data 200A in FIG. 1, and the encrypted generalized hierarchical tree 122 and the anonymization auxiliary parameter 113 correspond to the encrypted anonymization auxiliary information 200B in FIG. 1, respectively.
- the anonymized encryption database 231 is generated by anonymizing the encryption database 121 by the anonymization program 210 held by the management server 200, and is provided from the management server 200 to the decryption PC 300 via the network 400.
- the Anonymization result auxiliary data 232 is also provided from the management server 200 to the decryption PC 300 via the network 400.
- the anonymized encryption database 231 corresponds to the anonymized encrypted data 200C in FIG.
- the decryption PC 300 holds a decryption program 310 for decrypting the anonymized encryption database 231 in the storage device or in the memory.
- the decryption PC 300 can hold the anonymization database 331 in the storage device or the memory by decrypting the anonymization encryption database 231 using the decryption program 310.
- the anonymization database 331 corresponds to the anonymization data 300A in FIG.
- FIG. 4A is a flowchart showing the creation and registration processing of the encryption database 121 executed by the registration PC 100 according to the first embodiment of the present invention.
- FIG. 4B is an explanatory diagram of the encryption database 121 created by the registration PC 100 according to the first embodiment of this invention.
- the plaintext database 111 includes a plurality of records (rows) for a plurality of attributes (columns). A possible value is determined for each attribute, and attribute 1 of the plaintext database 111 shown in FIG. 4B always takes one of the values ⁇ a, b, c, d, e, f ⁇ .
- These plaintext attribute values are plaintext data in an arbitrary format such as numerical data such as a human age or character string data such as a human address.
- the encryption database 121 is generated by the registered PC 100 encrypting data extracted from the plain text database 111 in units of cells with a searchable encryption data encryption function provided by the encryption program 110. is there.
- E () means encryption, and for example, E (a) means encrypted data of value a. Therefore, attribute 1 in Table 4.2 always takes one of the values ⁇ E (a), E (b), E (c), E (d), E (e), E (f) ⁇ .
- the registration PC 100 extracts all corresponding plaintext data from the plaintext database 111, creates an encrypted database 121 using an encryption key (S111), and registers the encrypted database 121 in the management server 200 via the network 400. (S112).
- the registration PC 100 creates an encrypted generalized hierarchical tree, registers it in the management server 200 together with the anonymization auxiliary parameter, and uses FIG. 5A to FIG. 5E for the procedure for requesting the management server 200 to anonymize. I will explain.
- FIG. 5A is a flowchart showing anonymization request processing executed by the registration PC 100 according to the first embodiment of the present invention.
- FIG. 5B is an explanatory diagram of encryption of the generalized hierarchical tree by the registration PC 100 according to the first embodiment of this invention.
- FIG. 5C is an explanatory diagram of an implementation example of the generalized hierarchical tree encrypted by the registration PC 100 according to the first embodiment of this invention.
- FIG. 5D is an explanatory diagram of a first example of a correspondence table between encrypted queries and encrypted data generated by the registration PC 100 according to the first embodiment of this invention.
- FIG. 5E is an explanatory diagram of a second example of a correspondence table between encrypted queries and encrypted data generated by the registration PC 100 according to the first embodiment of this invention.
- the encrypted generalized hierarchical tree is obtained by encrypting the nodes in the generalized hierarchical tree with the query encryption function of searchable encryption. For example, as shown in FIG. 5B, when the generalized hierarchical tree 112A is encrypted, an encrypted general hierarchical tree 122A is obtained.
- Q () means an encrypted query, and for example, Q (a) means an encrypted query of value a.
- the management server 200 Since the management server 200 does not have a decryption key for decrypting the encrypted data, it cannot decrypt the encrypted attribute value E (a), for example, and therefore cannot know the attribute value a. However, the management server 200 can search the encrypted data E (a) included in the encrypted database 121 using the encrypted query Q (a) as it is encrypted, for example The number of encrypted data E (a) included in the encryption database 121 can be counted.
- the anonymization auxiliary parameter 113 includes an encrypted query for retrieving encrypted data obtained by encrypting each node of the plaintext generalized hierarchical tree while encrypting the encrypted data, and the encrypted data.
- a correspondence table that associates encrypted data that can be replaced is included. With this correspondence table, each node of the encrypted generalized hierarchical tree is associated with encrypted data obtained by encrypting one attribute value or a combination of a plurality of attribute values.
- FIG. 5D shows a correspondence table 115A for the generalized hierarchical tree 112A.
- the encrypted query and the encrypted data need not have a one-to-one relationship.
- the encryption for each decryption key is included in one encryption query. Data may be associated.
- the relationship between the encrypted query and the encrypted data may be many-to-many.
- the encrypted data for the decryption PC 300 held in the correspondence table is replacement encrypted data for replacing the encrypted data retrieved using the encryption query, and can be decrypted by the decryption key 300B of the decryption PC 300. Is encrypted.
- the registration PC 100 when the decryption PC 300 holds a public key cryptosystem private key as the decryption key 300B, the registration PC 100 generates replacement encrypted data for the decryption PC 300 using the public key corresponding to the decryption key 300B. It may be registered in the table 115A.
- the encryption data for replacement for each decryption PC is generated and stored in the correspondence table 115B. You may register. However, it is a matter of course that the replacement encrypted data may be created using a common key encryption key.
- the registration PC 100 creates replacement encrypted data using the same encryption key as that used when creating the encryption database in S111, and secures the decryption key used to decrypt it. You may pass to the decoding PC300 by a method. Thus, a desired anonymization database can be safely provided to each decryption PC 300.
- the implementation method of the generalized hierarchical tree is not limited to one.
- an implementation example 112B of the generalized hierarchical tree 112A is illustrated in FIG. 5C.
- FIG. 5C shows an example of implementation of an encrypted generalized hierarchical tree generated by encrypting each cell with the encrypted query function when the generalized hierarchical tree 112A is implemented as in the implementation example 112B. 122B is shown.
- the above procedure is an example of encryption of a generalized hierarchical tree with one attribute (for example, attribute 1), but the registered PC 100 also has a generalized hierarchical tree with other attributes (for example, attribute 2,..., Attribute n). It can be encrypted in the same way with the query encryption function of searchable encryption.
- the registration PC 100 creates an encrypted generalized hierarchical tree by encrypting the generalized hierarchical tree using the encryption key (S121), and uses the encrypted generalized hierarchical tree and the anonymization auxiliary parameter.
- the data is transmitted to the management server 200 via the network and registered (S122).
- the registration PC 100 also generates the replacement encrypted data and the correspondence table 115A or 115B including the encrypted data, and transmits the data to the management server 200 for registration.
- the registration PC 100 requests the management server 200 for anonymization (S123).
- the registration PC 100 does not have to transmit the encrypted generalized hierarchical tree and the anonymization auxiliary parameter at the same time.
- the registration PC 100 may register a generalized hierarchical tree encrypted in advance in the management server 200 and transmit the anonymization auxiliary parameter when requesting the management server 200 to make anonymization.
- the management server 200 replaces the encrypted data E (b) retrieved using the encrypted query Q (b) with reference to the encrypted generalized hierarchical tree 122A and the correspondence table 115A. It can be seen that the encrypted data Ek (b), Ek (bc), or Ek (abc) can be replaced. Furthermore, the management server 200 refers to, for example, the encrypted generalized hierarchical tree 122A and the correspondence table 115A and replaces the encrypted data E (b) with the replacement encrypted data Ek (bc).
- the degree of anonymity for example, the appearance frequency
- the degree of anonymity is the appearance frequency of the encrypted data searched using the encrypted query Q (b) and the encrypted data searched using the encrypted query Q (c). It is possible to know that it can be calculated by the sum of the appearance frequency of
- the encrypted generalized hierarchical tree and the correspondence table shown in FIGS. 5B to 5E represent the encrypted data for replacement that can replace the encrypted data searched using each encrypted query.
- information to identify the information to be identified and the encryption query to calculate the appearance frequency of the search result in order to calculate the degree of anonymity realized when the replacement is performed may be implemented in other forms.
- the encryption queries Q (b) and Q (c) are encrypted by associating with the encrypted data for replacement Ek (bc) via the encryption query Q (bc). It is expressed that the encrypted data searched using the query Q (b) and the encrypted data searched using the encrypted query Q (c) can be replaced by the replacement encrypted data Ek (bc). Although this is expressed by associating the encrypted queries Q (b) and Q (c) with the replacement encrypted data Ek (bc) without going through the encrypted query Q (bc). Good.
- FIG. 6 is a flowchart showing a process in which the management server 200 according to the first embodiment of the present invention uses the encrypted generalized hierarchical tree to count the appearance frequency of encrypted data having the same value as the leaf node.
- the management server 200 reads the anonymization auxiliary parameter 113, extracts all the attributes to be anonymized from the attributes of the encryption database 121, and lists them (S202).
- the management server 200 selects one attribute from the attributes to be anonymized listed in S201 (S203). If no attribute remains, the management server 200 ends the process (S204). If any attribute can be selected in S203, the management server 200 extracts all the leaf nodes of the encrypted generalized hierarchical tree corresponding to the selected attribute and lists them (S205). An encryption query is registered in the leaf node.
- the management server 200 selects one of the leaf nodes listed (S211). If no leaf node remains, the process proceeds to S210.
- the management server 200 selects one of the listed leaf nodes, and then sets the frequency counting variable cnt to 0 (S206).
- the management server 200 extracts encrypted data in the selected attribute (S207).
- the management server 200 inputs the extracted encrypted data and the encrypted query (leaf node) to the searchable encryption determination function, and outputs 0 (encrypted data and the encrypted query). Is not matched) or 1 (the encrypted data and the encrypted query are identical) is added to the variable cnt (S208).
- the number of encrypted data matching the leaf node is totaled in the variable cnt. If there is no newly extracted encrypted data, the management server 200 registers the current variable cnt as the number of occurrences of leaf nodes in the selected attribute (S209).
- the management server 200 deletes the leaf node selected in S211 from the list created in S205 (S212), and the process returns to S211.
- the attribute selected in S203 is deleted from the list created in S202 (S210).
- a procedure in which the management server 200 creates an anonymized encrypted database in which the encrypted database is anonymized and provides it to the decryption PC will be described with reference to FIGS. 7A to 7C.
- FIG. 7A is a flowchart illustrating anonymization processing executed by the management server 200 according to the first embodiment of this invention.
- FIG. 7B is an explanatory diagram of the generalized hierarchical tree encrypted with frequency generated by the management server 200 according to the first embodiment of this invention.
- FIG. 7C is an explanatory diagram of the anonymized encryption database generated by the management server 200 according to the first embodiment of this invention.
- the management server 200 stores the appearance frequency of the encrypted generalized hierarchical tree leaf node in all the attributes to be anonymized according to the processing flow of FIG. 6 (S221).
- FIG. 7B shows an example of a frequency-encrypted generalized hierarchical tree 122C generated by adding the appearance frequency to the encrypted generalized hierarchical tree 122A shown in FIG. 5B.
- the node to which the encrypted query Q (a) is attached as a label hereinafter simply referred to as the node Q (a) is also described. Nodes corresponding to other encrypted queries are also described.
- the management server 200 uses the appearance frequency of the leaf nodes and assigns the sum of the appearance frequencies of the child nodes as the appearance frequency of the parent node (S222). For example, in the generalized hierarchical tree 112C encrypted with frequency, the appearance frequency of the node Q (b) having the appearance frequency of 3 times and the appearance frequency of Q (bc) which is the parent node of the node Q (c) once is 3 times. And 4 times which is a total value of 1 time are assigned. Similarly, the management server 200 assigns appearance frequencies to all nodes.
- the management server 200 determines a combination of nodes satisfying k-anonymity based on the appearance frequency of the nodes.
- a conventional technique can be used.
- a node satisfying k-anonymity can be determined using the technique described in Patent Document 1 or Non-Patent Document 1.
- the nodes Q (a), Q (b), and Q (c) appear. Since the frequency is less than 7, k-anonymity is not satisfied. Furthermore, the appearance frequency of the node Q (bc) which is the parent node of Q (b) and Q (c) is also less than 7. However, since the appearance frequency of the node Q (abc) which is the parent node of the nodes Q (a) and Q (bc) is 7 or more, this is determined as a node satisfying k-anonymity. Similarly, since the appearance frequency of the node Q (de), which is the parent node of Q (d) and Q (e), and the node Q (f) is also 7 or more, these are nodes satisfying k-anonymity It is determined.
- the management server 200 replaces the determined node with the value of the leaf node, and further replaces the encrypted data corresponding to the replaced value of the leaf node with the original value using the correspondence table 115A or 115B.
- the anonymized encrypted database 231 is created from the encrypted database 121 (S224).
- the encrypted attribute value of attribute 1 of the encryption database 121 is encrypted.
- E (a) corresponds to the node Q (abc) that satisfies k-anonymity above the node Q (a) corresponding to the encrypted query Q (a) used to search for it.
- the encrypted data Ek (abc) corresponding to Q (abc) is substituted.
- the encrypted data E (b) and E (c) retrieved by the encrypted queries Q (b) and Q (c) are both encrypted data Ek (abc) corresponding to Q (abc).
- the encrypted data E (d) and E (e) retrieved by the encrypted queries Q (d) and Q (e) are both encrypted data Ek (de) corresponding to the node Q (de).
- the encrypted data E (f) searched by the encrypted query Q (f) is replaced by the encrypted data Ek (f) corresponding to the node Q (f).
- the management server 200 creates the anonymization result auxiliary data 232 and provides it to the decryption PC via the network together with the anonymization encryption database 231 (S225).
- the management server 200 searches the encrypted The converted data is replaced with replacement encrypted data corresponding to the designated decryption PC 300 (S224).
- the management server 200 anonymizes the encrypted database, it may not be known which decryption PC 300 uses the anonymized database.
- the management server 200 replaces the original encrypted data with the corresponding encrypted query instead of replacing the original encrypted data with the replacement encrypted data, and then the decryption PC 300 to be used is found.
- each encryption query may be replaced with the corresponding replacement encryption data for the decryption PC 300.
- the decryption PC 300 receives the anonymized encryption database 231 and the anonymization result auxiliary data 232 from the management server 200. Also, the decryption PC 300 uses the decryption key 300B to decrypt the anonymized encryption database 231 to create the anonymization database 331 and store it in the storage device.
- the registration PC 100 requests the management server 200 for anonymization processing while maintaining the confidentiality of the data without disclosing the plain text database to the management server 200, and sends it to the decryption PC 300.
- Anonymized database can be provided.
- the encryption key held by the registered PC is different from the decryption key held by the decryption PC is shown, but the same key is used for encryption and decryption. It may be changed as follows.
- the encrypted data encrypted using the same encryption key as that used when the registration PC 100 generates the encrypted data is registered in the correspondence table 115A and the like as the encrypted data for the decryption PC.
- the management server 200 has a predetermined anonymity before the anonymization process, and the encrypted data that does not need to be replaced with the encrypted data combined with other attribute values is used for replacement. It is not necessary to replace the encrypted data.
- the registration PC 100 and the decryption PC 300 are operated by different computers of different operators, but both are the same computer of the same operator. It may be operated by.
- FIG. 1 a case has been described in which one registration PC 100, one management server 200, and one decryption PC 300 operate.
- the number of computers is not fixed. That is, a plurality of registered PCs 100, management servers 200, and decryption PCs 300 may exist.
- different encryption keys may be provided for each registered PC 100 or each grouped registered PC 100.
- different decryption keys may be provided for each decryption PC 300 or each grouped decryption PC 300.
- the management server 200 may be provided with a special purpose key that can handle encrypted data encrypted with different encryption keys and perform frequency counting.
- the registration PC 100 encrypts the information for identifying the attribute using the searchable encryption data encryption function in S111, and searches for the encrypted attribute using the searchable encryption query encryption function in S121. Encrypt the query. Thereafter, the management server 200 extracts an encrypted generalized hierarchical tree corresponding to the extracted attribute by using a searchable encryption determination function in S205. By this change processing, the registration PC 100 can hide the attribute identification information in the management server in addition to the attribute value data included in the plaintext database 111.
- an encrypted database is created using the searchable encryption data encryption function
- an encrypted generalized hierarchical tree is created using the searchable encryption query encryption function.
- a searchable encryption decision function Using a searchable encryption decision function, a frequency-encrypted generalized hierarchical tree was created.
- the order storage cipher has a data encryption function, a query encryption function, and a judgment function as well as a searchable cipher. Therefore, an encryption database is created using the data storage function of the order storage encryption.
- a comparison / decryption encryption that can be numerically aggregated may be used.
- the comparison determination cipher has a data and query encryption function, and can be tabulated and compared while encrypted. For this reason, the encryption of the comparable cipher can discover a node satisfying k-anonymity while encrypting the appearance frequency of the node.
- a cipher that can perform numerical aggregation and can decrypt only the result of numerical aggregation may be used.
- a node satisfying k-anonymity can be found more safely.
- FIG. 10 is an explanatory diagram of the creation and registration processing of the encryption database 121 executed by the registration PC 100 according to the modification of the first embodiment of the present invention.
- FIG. 11 is an explanatory diagram of the node frequency counting process executed by the management server 200 according to the modification of the first embodiment of the present invention.
- the encrypted database (table 1002) Values that the plaintext attribute 1 can take are expanded into columns, and an encrypted database (table 1002) is created in which each row corresponds to each value of the attribute 1 included in the plaintext database.
- the attribute value corresponding to each row is always one of a to f, and the value corresponding to the attribute value of each row is encrypted with 1 and the other columns are encrypted with 0. Retained.
- the column corresponding to the value a in the first row of the table 1002 has a value obtained by encrypting 1 (for example, Ek (1)).
- a value obtained by encrypting 0 for example, Ek (1)
- Each column of the 0th row of the table 1002 includes values obtained by encrypting values that can be attribute 1 corresponding to the columns (for example, E (a) to E (f obtained by encrypting values a to f, respectively). )) Is held.
- Ek () means encryption that can be decrypted with the key k only for the summation result. For example, since the first row of the table 1002 is Ek (1) only in the first column and the others are Ek (0), the encrypted attribute value corresponding to the first row is described in the 0th row and the first column. Means taking E (a). Similarly, since the nth row is E (1) only in the sixth column and the others are E (0), the encrypted attribute value corresponding to the nth row is described in the 0th row and the sixth column. This means taking E (f). All of these values are encrypted, and the management server 200 cannot distinguish these values from random numbers.
- the registration PC 100 extracts all corresponding plaintext data from the plaintext database, creates an encrypted database using the encryption key by the above method (S111), and registers this encrypted database in the management server 200 via the network. (S112). Also, in the leaf node aggregation processing (S221) by the management server 200, as shown in FIG. 11, the encrypted data is aggregated for each column, and the result is decrypted to thereby obtain the leaf nodes of the encrypted generalized hierarchical tree. The appearance frequency of is obtained.
- a plaintext database and an encrypted database exist.
- encrypted data may exist in a part of the plaintext database.
- Some plaintext data may exist.
- the processing related to the correspondence table can be omitted by adding a decryption function to the search query encryption query.
- the management server 200 replaces the selected node with the value of the leaf node, and replaces the value of the replaced leaf node with the original value of the encrypted database, thereby anonymizing the encrypted database. Create an encrypted database.
- processing may be changed so that the management server 200 creates the correspondence table by itself without sending the correspondence table from the registration PC 100 to the management server 200.
- the encrypted generalized hierarchical tree is given from the registration PC 100 to the management server 200.
- the registered PC 100 does not hold the generalized hierarchical tree or does not want to give it to the management server 200 even if it holds it.
- the management server 200 may use a generalized hierarchical tree different from a given encrypted generalized hierarchical tree to perform anonymization.
- an anonymization processing method will be described in the case where the registered PC 100 does not provide the encrypted generalized hierarchical tree to the management server 200 but provides the data for generating the general hierarchical tree.
- each part of the system of the second embodiment has the same function as each part denoted by the same reference numeral in the first embodiment shown in FIGS. Is omitted.
- FIG. 8A is a flowchart illustrating anonymization request processing executed by the registration PC 100 according to the second embodiment of the present invention.
- FIG. 8B is an explanatory diagram of creating a generalized hierarchical tree auxiliary parameter by the registration PC 100 according to the second embodiment of the present invention.
- FIG. 8C is an explanatory diagram of a correspondence table between encrypted queries and encrypted data generated by the registration PC 100 according to the second embodiment of the present invention.
- the request flow for anonymization of the registered PC 100 is similar to the first embodiment.
- the registered PC 100 instead of the process of creating an encrypted generalized hierarchical tree (S121) in the flow shown in FIG. 5A, is a generalized hierarchical tree auxiliary parameter that is data for assisting in creating the generalized hierarchical tree.
- the process of creating is performed (S131).
- the registration PC 100 first extracts all attribute values in each attribute of the plaintext database.
- the plaintext database attribute value 131A in FIG. 8B is an example thereof, a representative value of attribute 1 (in alphabetical order from a to f), a representative value of attribute 2 (an integer from 1 to 9), and a representative value of attribute n (Blood type).
- the registered PC 100 encrypts all of the extracted representative values using the search encryption function of the searchable encryption, and uses this as the data for creating the generalized hierarchical tree.
- the generalized hierarchical tree auxiliary parameter 132A of FIG. 8B is an example thereof, and includes all representative values of attribute 1, attribute 2,..., Attribute n.
- the registration PC 100 registers the generalized hierarchical tree auxiliary parameter 132A and the anonymization auxiliary parameter 113 in the management server 200 via the network 400 (S132). Finally, the registration PC 100 requests the management server 200 for anonymization (S133).
- the anonymization auxiliary parameter 113 includes an encryption query for searching for encrypted data while it is encrypted, and an encryption key obtained by encrypting plaintext data identical to the searched encrypted data with an encryption key for the decryption PC 300 Correspondence table that associates data with data.
- FIG. 8C illustrates a correspondence table 133A when the generalized hierarchical tree 112A is targeted.
- the encrypted queries Q (a) to Q (f) are associated with the replacement encrypted data Eki (a) to Eki (f), respectively.
- the attribute value 131A of the plaintext database includes all representative values of each attribute. However, the attribute value 131A may be changed to include only values used in the plaintext database 111, or only specific values are extracted. It may be changed as follows.
- FIG. 9A is a flowchart illustrating anonymization processing executed by the management server 200 according to the second embodiment of the present invention.
- FIG. 9B is an explanatory diagram of the appearance frequencies of leaf nodes that are tabulated by the management server 200 according to the second embodiment of the present invention.
- FIG. 9C is an explanatory diagram of a generalized hierarchical tree with frequency generated by the management server 200 according to the second embodiment of this invention.
- the management server 200 takes out the data for creating the generalized hierarchical tree for each attribute and sets it as a leaf node of the generalized hierarchical tree. For example, for attribute 1, the management server 200 extracts the encryption queries Q (a) to Q (f) corresponding to the attribute 1 from the generalized hierarchical tree auxiliary parameter 132A, and generates a leaf node of the general hierarchical tree from them. (See FIG. 9B).
- the management server 200 stores the appearance frequencies of the encrypted generalized hierarchical tree leaf nodes in all attributes according to the processing flow of FIG. Thereby, for example, the appearance frequency of the leaf node in FIG. 9B is obtained.
- the management server 200 uses the appearance frequency of the leaf node to sequentially create a parent node, and finally creates a generalized hierarchical tree with frequency.
- the management server uses the evaluation function to create a generalized hierarchical tree with frequency so that the score is optimized (or maximized or minimized).
- the generalized hierarchical tree 212B with frequency in FIG. 9C is an example of a generalized hierarchical tree created so that the information entropy is maximized as the evaluation function.
- a generalized hierarchical tree is created by combining child nodes with the smallest appearance frequency so that the appearance frequency of the parent node is sequentially minimized.
- the management server 200 combines Q (c) with an appearance frequency of 1 and Q (d) of 2 times, and means Q (c) or Q (d), which is a parent node Q (c) Q (d) Create The parent node Q (c) Q (d) is assigned 3 times, which is the sum of the appearance frequencies of Q (c) and Q (d).
- the management server 200 appears most frequently from the five nodes Q (a), Q (b), Q (c), Q (d), Q (e), and Q (f) that do not have a parent node.
- the parent node Q (b) Q (c) Q (d) is assigned 6 times, which is the sum of the appearance frequencies of Q (b) and Q (c) Q (d).
- the management server 200 sequentially creates a parent node so that the appearance frequency of the parent node is minimized, and the target node is equal to or less than the prescribed number (2 in the example of FIG. 9C). Repeat this operation until
- each encrypted data for example, E (a), E (b), E) searched using each of the encrypted queries Q (a), Q (b), Q (c), and Q (d).
- C) and E (d)) are encryption data for replacement corresponding to each of the encrypted queries Q (a), Q (b), Q (c), and Q (d).
- each encrypted data (for example, E (e) and E (f)) retrieved using each of the encrypted queries Q (e) and Q (f) is converted into the encrypted queries Q (e) and Q (f). It is replaced by a combination of Eki (e) and Eki (f), which is encrypted data for replacement corresponding to each of (f).
- Eki (e) and Eki (f) which is encrypted data for replacement corresponding to each of (f).
- the encrypted data E (c) whose appearance frequency is once is replaced by a combination of Eki (a), Eki (b), Eki (c) and Eki (d), and the desired anonymization is achieved. Realized.
- the selection method is given in advance. For example, the nodes may be selected at random, or may be selected in dictionary order, but in any case, the target node is always selected.
- the hierarchy of the parent node is set to be higher than the hierarchy of the child node. For example, a hierarchy one level higher may be set, or if there is another parent node, a hierarchy equivalent to that node may be set.
- Q (e) Q (f) which is the parent node of Q (e) and Q (f)
- Q (f) which is the parent node of Q (e) and Q (f)
- this may be changed to be set to four layers, or may be set to one or two layers.
- the registration PC 100 can request the management server 200 for anonymization processing without providing the management server 200 with the encrypted generalized hierarchical tree.
- the management server 200 of the present embodiment employs information entropy as an evaluation function in the creation of the generalized hierarchical tree with frequency (S222b) in the frequency tabulation of the parent node and the creation process of the generalized hierarchical tree with frequency.
- a generalized hierarchical tree may be created by using a compression technique such as Huffman code or Hu-Tucker so that the loss of information entropy is minimized. These techniques are described in detail in Patent Document 2.
- the management server 200 may create a generalized hierarchical tree so as to optimize the difference between the k value and the appearance frequency as an evaluation function in the generation process of the generalized hierarchical tree with frequency (S222b). good.
- this invention is not limited to the above-mentioned Example, Various modifications are included.
- the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
- a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
- each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
- each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
- Information such as programs, tables, and files that realize each function is stored in a non-volatile semiconductor memory, a hard disk drive, a storage device such as an SSD (Solid State Drive), or a computer-readable information such as an IC card, SD card, or DVD. It can be stored on a temporary data storage medium.
- control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
プロセッサと、プロセッサに接続される記憶装置と、を有するデータ加工システムであって、記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、プロセッサは、各暗号化クエリを用いて各暗号化データを検索することによって、各暗号化クエリを用いて検索された暗号化データの出現数を計算し、各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように複数の暗号化データの少なくとも二つを変更し、複数の暗号化データを出力する。
Description
本発明は、匿名化データベースを作成する技術に関する。
機微情報が含まれているデータを加工し、加工後はデータに機微情報が含まれないような技術が匿名化技術と呼ばれ、古くから検討されている。しかしながら、従来技術では、匿名化前の元データの知識を有する攻撃者に対しては、匿名化後も元データが識別可能な場合があることが知られている。
非特許文献1には、この課題を解消するため、データ内の定められた属性に対しては、必ず同一値がk件以上存在するよう、匿名化する技術が開示されている。ここで、kが2以上の数であれば、匿名化後の属性からは元データが一意には定まらない。
特許文献1には、指定された匿名性の要求を満たすように匿名化されたデータを出力するシステムが開示されている。
特許文献2には、個人情報の保護技術において、属性値の一般化階層木を自動で構成する匿名化装置を提供することが開示されている。
特許文献1:米国特許第7269578号明細書
特許文献2:米国特許出願公開第2013/0138698号明細書
特許文献2:米国特許出願公開第2013/0138698号明細書
非特許文献1:Kristen LeFevre, David J. DeWitt, Raghu Ramakrishnan, ”Incognito: efficient full-domain K-anonymity”, Proceedings of the 2005 ACM SIGMOD international conference on Management Data, p49-60
情報システムの開発・運用管理費の効率化を目的に、近年、情報システムを自組織が維持するのではなく、他組織が提供するクラウドと呼ばれる情報システム上でデータ加工を依頼するシステムが注目されている。この場合、データを他組織が管理する情報システムに預ける必要があるため、情報漏洩の予防を目的とした、暗号技術が有効な策として研究されている。
特許文献1に開示される方式では、必ず匿名化の実行環境にデータを開示する必要があるが、クラウド等の外部組織が運用する匿名化の実行環境を用いる場合には、ユーザのデータはクラウド側に開示されるため、情報漏洩の危険性がある。また、特に機微性の高いデータに対しては、この情報漏洩の懸念から、ユーザはクラウドを利用できない。
上記課題を解決するための、本発明の代表的なものの一例を示すと、次の通りである。すなわち、第1計算機を有するデータ加工システムであって、前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、前記第1プロセッサは、前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算し、前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データの少なくとも二つを変更し、前記複数の暗号化データを出力することを特徴とする。
本発明の一態様によれば、ユーザはデータが機微情報を含む場合であっても、そのデータの匿名化処理を他組織が管理する情報システムに委託できる。
以下、本発明の実施例を図面に基づいて詳細に説明する。なお、これによって本発明が限定されるものではない。実施の形態において、同一の部材には原則として同一の符号を付け、繰り返しの説明は省略する。
まず、本発明の実施例で使用する用語を定義する。
(1)データベース
データの管理形態の一種である。データを平文で保存する場合、平文データベースと記す。また、データとして暗号文を保存する場合、暗号化データベースと記す。単にデータベースと呼ぶ場合は、データの状態は暗号化の有無を問わない。
データの管理形態の一種である。データを平文で保存する場合、平文データベースと記す。また、データとして暗号文を保存する場合、暗号化データベースと記す。単にデータベースと呼ぶ場合は、データの状態は暗号化の有無を問わない。
(2)暗号鍵
データの暗号化に用いる鍵である。
データの暗号化に用いる鍵である。
(3)復号鍵
データの復号に用いる鍵である。共通鍵暗号の場合、暗号鍵と復号鍵は等しい。
データの復号に用いる鍵である。共通鍵暗号の場合、暗号鍵と復号鍵は等しい。
(4)平文データ(または平文)
暗号化対象のデータを指す。
暗号化対象のデータを指す。
(5)平文空間
平文がとりえる値の集合を指す。例えば、平文空間を0以上t未満とするとき、整数[0、1、2、・・・t-1]のいずれかを平文が取りうる。
平文がとりえる値の集合を指す。例えば、平文空間を0以上t未満とするとき、整数[0、1、2、・・・t-1]のいずれかを平文が取りうる。
(6)検索可能暗号
データの暗号化/復号機能とクエリの暗号化機能を保有する。暗号化データの暗号化を維持したまま、暗号化クエリと比較し、元のデータとクエリの値が等しいかを判定することが可能である。本発明では、この判定関数が0または1を出力するものとし、1の場合は等しい、0の場合は等しくないものとする。なお、暗号プリミティブレベルでは復号機能を有さない検索可能暗号でも、別の暗号プリミティブと組み合わせ、復号機能を有する検索可能暗号が構成できる。
データの暗号化/復号機能とクエリの暗号化機能を保有する。暗号化データの暗号化を維持したまま、暗号化クエリと比較し、元のデータとクエリの値が等しいかを判定することが可能である。本発明では、この判定関数が0または1を出力するものとし、1の場合は等しい、0の場合は等しくないものとする。なお、暗号プリミティブレベルでは復号機能を有さない検索可能暗号でも、別の暗号プリミティブと組み合わせ、復号機能を有する検索可能暗号が構成できる。
(7)匿名化補助パラメータ
k-匿名化をする際に利用するパラメータの総称である。k値、k-匿名化のアルゴリズム、匿名化対象の属性(もしくは、暗号化対象となる暗号化データベースの列番号、または列名)等を含んでもよい。
k-匿名化をする際に利用するパラメータの総称である。k値、k-匿名化のアルゴリズム、匿名化対象の属性(もしくは、暗号化対象となる暗号化データベースの列番号、または列名)等を含んでもよい。
(8)匿名化補助データ
匿名化の状態を示すデータである。k値に加え、匿名化後の情報量などに基づくスコア等を含んでもよい。
匿名化の状態を示すデータである。k値に加え、匿名化後の情報量などに基づくスコア等を含んでもよい。
(9)一般化階層木
一般化階層木は、一般には属性毎に定められた、データの再符号化(匿名化)の手順に利用されるデータである。後述する図5Bの一般化階層木112Aに示すように、単一の属性(図5Bの例では属性1)に対し、一般化階層木が与えられる。一般化階層木内のノードには値がラベル付け(a,b,abなど)され、ノード同士は結線構造を有する。各ノードには一般化階層木における高さが与えられており、例えば一般化階層木112Aでは、ノード{*}が最も高い位置にあり、次いでノード{abc,def}と{bc,de}、最後(すなわち最も低い位置)にノード{a,b,c,d,e,f}がある。直接的に線で結ばれたノードのうち、位置が高い方を親ノードと呼び、低い方を子ノードと呼ぶ。また、親ノードをもたないノードを根ノード、子ノードをもたないノードを葉ノードと呼ぶ。葉ノードは、もともとのデータの値を直接指しており、例えば表4.1の属性1における値{a,b,c,d,e,f}が葉ノードのラベルとして割り当てられている。ノードの高さが最も低い位置を0階層とし、高さが上がるたびに階層を1ずつ増やす。例えば、一般化階層木112Aでは、0階層から1、2、3階層まで、4種類の階層がある。本実施例で開示する匿名化技術では、一般化階層木は、データの再符号化(匿名化)の手順に利用される。例えば、一般化階層木112Aでは、0階層目にデータの平文空間の値が{a,b,c,d,e,f}として列挙されている。1階層目には、{b,c}を再符号化した値として{bc}、{d,e}を再符号化した値として{de}がある。2階層目には、{a},{bc}を再符号化した値として{abc}、{de,f}を再符号化した値として{def}がある。3階層目には{abc,def}を再符号化した値として、記号{*}がある。
一般化階層木は、一般には属性毎に定められた、データの再符号化(匿名化)の手順に利用されるデータである。後述する図5Bの一般化階層木112Aに示すように、単一の属性(図5Bの例では属性1)に対し、一般化階層木が与えられる。一般化階層木内のノードには値がラベル付け(a,b,abなど)され、ノード同士は結線構造を有する。各ノードには一般化階層木における高さが与えられており、例えば一般化階層木112Aでは、ノード{*}が最も高い位置にあり、次いでノード{abc,def}と{bc,de}、最後(すなわち最も低い位置)にノード{a,b,c,d,e,f}がある。直接的に線で結ばれたノードのうち、位置が高い方を親ノードと呼び、低い方を子ノードと呼ぶ。また、親ノードをもたないノードを根ノード、子ノードをもたないノードを葉ノードと呼ぶ。葉ノードは、もともとのデータの値を直接指しており、例えば表4.1の属性1における値{a,b,c,d,e,f}が葉ノードのラベルとして割り当てられている。ノードの高さが最も低い位置を0階層とし、高さが上がるたびに階層を1ずつ増やす。例えば、一般化階層木112Aでは、0階層から1、2、3階層まで、4種類の階層がある。本実施例で開示する匿名化技術では、一般化階層木は、データの再符号化(匿名化)の手順に利用される。例えば、一般化階層木112Aでは、0階層目にデータの平文空間の値が{a,b,c,d,e,f}として列挙されている。1階層目には、{b,c}を再符号化した値として{bc}、{d,e}を再符号化した値として{de}がある。2階層目には、{a},{bc}を再符号化した値として{abc}、{de,f}を再符号化した値として{def}がある。3階層目には{abc,def}を再符号化した値として、記号{*}がある。
(10)順序保存暗号
データの暗号化/復号機能とクエリの暗号化機能を保有する。暗号化データの暗号化を維持したまま、暗号化クエリと比較し、元のデータとクエリの値の大小比較が判定可能である。暗号プリミティブによっては、データの暗号化機能とクエリの暗号化機能が同じ場合もある。
データの暗号化/復号機能とクエリの暗号化機能を保有する。暗号化データの暗号化を維持したまま、暗号化クエリと比較し、元のデータとクエリの値の大小比較が判定可能である。暗号プリミティブによっては、データの暗号化機能とクエリの暗号化機能が同じ場合もある。
図1は、本発明の実施例1のデータ加工システムのユースケースの概要を示した説明図である。
図示するように、本実施例のデータ加工システムは、登録PC100、管理サーバ200および復号PC300から構成される。図1に示すように、例えば、登録PC100はデータ登録業者が保有し、管理サーバ200はクラウド運用業者が保有し、復号PC300はサービス提供業者が保有してもよい。登録PC100が暗号鍵100Cを用いてデータ100Aを暗号化し、暗号化データ200Aとして、ネットワーク400(図2参照)経由で管理サーバ200に登録する。さらに、登録PC100は匿名化の際に利用する匿名化補助情報100Bを暗号化し、ネットワーク400経由で管理サーバ200に登録する。
管理サーバ200は、暗号化された匿名化補助情報200Bを用い、暗号化データ200Aを匿名化した、匿名化済暗号化データ200Cを作成し、復号PC300にネットワーク400経由で提供する。復号PC300は、復号鍵300Bを用い、匿名化済暗号化データ300Cを復号し、匿名化データ300Aを入手する。
上記の処理では、管理サーバ200は匿名化データを作成できる一方、暗号化によって、データの内容は管理サーバ200には漏れないため、機微性の高いデータでも、データ登録業者(登録PC100)は安全にクラウド(管理サーバ200)に匿名化処理を委託できる。
図2は、本発明の実施例1の管理サーバ200のハードウェア構成を示すブロック図である。
図示するように、管理サーバ200は、CPU(Central Processing Unit)201、メモリ202、記憶装置203、入力装置205、出力装置206、読書装置207、および通信装置208が内部信号線304によって連結されることで構成される。記憶装置203には、プログラムが格納されている。プログラムは、メモリ202にロードされ、CPU201によって実行される。以下の説明において管理サーバ200が実行する処理は、実際には、CPU201がプログラムに従って、必要に応じてメモリ202、記憶装置203、入力装置205、出力装置206、読書装置207及び通信装置208を制御することによって実行される。
読書装置207は、例えばCD-R/CD-RWドライブ、SDカードリーダライタ等の、掛け替え可能な記憶媒体の読み書き装置である。通信装置208は、ネットワーク400に接続され、ネットワーク400を介して登録PC100及び復号PC300との間でデータの送受信を行う。
また、登録PC100及び復号PC300のハードウェア構成は、管理サーバ200と同様であるため、説明を省略する。登録PC100の記憶装置には、プログラムが格納され、そのプログラムが登録PC100のメモリにロードされ、登録PC100のCPUによって実行されることによって、登録PC100の処理が実現される。同様に、復号PC300の記憶装置には、プログラムが格納され、そのプログラムが復号PC300のメモリにロードされ、復号PC300のCPUによって実行されることによって、復号PC300の処理が実現される。
なお、管理サーバ200のプログラムは、読書装置207を介して入力されるか、または通信装置208を介してネットワーク400から入力され、記憶装置203に記憶され、その後、メモリ202上にロードされて、CPU201によって実行されてもよい。登録PC100及び復号PC300のプログラムも同様である。
図3は、本発明の実施例1の登録PC100、管理サーバ200および復号PC300に格納されるデータおよびプログラム、ならびに、ネットワーク経由で送受信されるデータの概要を示す説明図である。
登録PC100は、記憶装置内またはメモリ内に、平文データを格納した平文データベース111と、匿名化時に用いる情報である平文の一般化階層木112と、匿名化補助パラメータ113と、を保持する。さらに、登録PC100の記憶装置またはメモリは、平文データベース111および平文の一般化階層木112を暗号化する暗号化プログラム110を保持する。平文データベース111が図1のデータ100Aに、一般化階層木112及び匿名化補助パラメータ113が図1の匿名化補助情報100Bに、それぞれ対応する。
暗号化データベース121および暗号化された一般化階層木122は、登録PC100が保持する暗号化プログラム110によって、それぞれ平文データベース111および平文の一般化階層木112を暗号化することによって生成されたものであり、ネットワーク400経由で登録PC100から管理サーバ200に提供される。また、匿名化補助パラメータ113も、ネットワーク400経由で登録PC100から管理サーバ200に提供される。
管理サーバ200は、記憶装置203内またはメモリ202内に、暗号化データベース121と、匿名化時に用いる情報である暗号化された一般化階層木122と、匿名化補助パラメータ113とを保持する。さらに、記憶装置203またはメモリ202は、暗号化された一般化階層木および匿名化補助パラメータを用い、暗号化データを匿名化する、匿名化プログラム210を保持する。暗号化データベース121が図1の暗号化データ200Aに、暗号化された一般化階層木122及び匿名化補助パラメータ113が図1の暗号化した匿名化補助情報200Bに、それぞれ対応する。
匿名化暗号化データベース231は、管理サーバ200が保持する匿名化プログラム210によって、暗号化データベース121を匿名化することによって生成されたものであり、ネットワーク400経由で管理サーバ200から復号PC300に提供される。また、匿名化結果補助データ232も、ネットワーク400経由で管理サーバ200から復号PC300に提供される。匿名化暗号化データベース231が図1の匿名化済暗号化データ200Cに対応する。
復号PC300は、記憶装置内またはメモリ内に、匿名化暗号化データベース231を復号する復号プログラム310を保持する。復号PC300は、復号プログラム310を用いて匿名化暗号化データベース231を復号することによって、記憶装置内またはメモリ内に匿名化データベース331を保持することが可能である。匿名化データベース331が図1の匿名化データ300Aに対応する。
次に、登録PC100が暗号化データベース121を作成し、管理サーバ200に登録する手順について図4Aおよび図4Bを用いて説明する。
図4Aは、本発明の実施例1の登録PC100が実行する暗号化データベース121の作成及び登録の処理を示すフローチャートである。
図4Bは、本発明の実施例1の登録PC100によって作成される暗号化データベース121の説明図である。
平文データベース111は、図4Bに示すように、複数の属性(列)に対し、複数のレコード(行)を含む。属性毎に取りうる値が決まっており、図4Bに示す平文データベース111の属性1は必ず{a,b,c,d,e,f}のいずれかの値をとるものとする。これらの平文の属性値は、例えば人間の年齢のような数値データ又は人間の住所のような文字列データ等、任意の形式の平文データである。
暗号化データベース121は、登録PC100が、平文データベース111からセル単位で抜き出されたデータを、暗号化プログラム110が提供する検索可能暗号のデータ暗号化機能で暗号化することによって生成されたものである。E()は暗号化(Encyption)を意味し、例えば、E(a)は値aの暗号化データを意味する。従って、表4.2の属性1は必ず{E(a),E(b),E(c),E(d),E(e),E(f)}のいずれかの値をとる。
登録PC100は、平文データベース111から該当する平文データを全て抽出し、暗号鍵を用いて、暗号化データベース121を作成し(S111)、この暗号化データベース121をネットワーク400経由で管理サーバ200に登録する(S112)。
次に、登録PC100が暗号化された一般化階層木を作成し、それを匿名化補助パラメータと共に管理サーバ200に登録し、管理サーバ200に匿名化を依頼する手順について図5Aから図5Eを用いて説明する。
図5Aは、本発明の実施例1の登録PC100が実行する匿名化の依頼処理を示すフローチャートである。
図5Bは、本発明の実施例1の登録PC100による一般化階層木の暗号化の説明図である。
図5Cは、本発明の実施例1の登録PC100によって暗号化された一般化階層木の実装例の説明図である。
図5Dは、本発明の実施例1の登録PC100によって生成される暗号化クエリと暗号化データとの対応表の第1の例の説明図である。
図5Eは、本発明の実施例1の登録PC100によって生成される暗号化クエリと暗号化データとの対応表の第2の例の説明図である。
暗号化された一般化階層木は、一般化階層木におけるノードを検索可能暗号のクエリ暗号化機能で暗号化したものである。例えば、図5Bに示すように、一般化階層木112Aを暗号化した場合、暗号化された一般階層木122Aが得られる。Q()は暗号化クエリ(encypted Query)を意味し、例えば、Q(a)は値aの暗号化クエリを意味する。
管理サーバ200は、暗号化データを復号するための復号鍵を持たないため、例えば暗号化された属性値E(a)を復号することができず、したがって、属性値aを知ることができない。しかし、管理サーバ200は、暗号化クエリQ(a)を用いて暗号化データベース121に含まれる暗号化データE(a)をそれが暗号化されたままで検索することができ、それによって、例えば暗号化データベース121に含まれる暗号化データE(a)の数を計数することができる。
匿名化補助パラメータ113は、平文の一般化階層木の各ノードを暗号化することによって得られた暗号化データをそれが暗号化されたままで検索するための暗号化クエリと、その暗号化データを置き換えることができる暗号化データと、を対応付ける対応表を含む。この対応表によって、暗号化された一般化階層木の各ノードは、一つの属性値又は複数の属性値の組合せを暗号化することによって得られた暗号化データと対応付けられる。
図5Dには、一般化階層木112Aを対象とした対応表115Aを示す。なお、暗号化クエリと暗号化データは1対1関係である必要はない。例えば、複数の復号PC300があり、それぞれ異なる復号鍵(k1、k2・・・)を有する場合は、図5Eの対応表115Bに例示するように、一つの暗号化クエリに、復号鍵ごとの暗号化データが対応付けられても良い。また、もちろん暗号化クエリと暗号化データの関係は多対多でもよい。
対応表に保持された復号PC300用の暗号化データは、暗号化クエリを用いて検索された暗号化データを置換するための置換用暗号化データであり、復号PC300の復号鍵300Bによって復号できるように暗号化されている。例えば復号PC300が公開鍵暗号方式の秘密鍵を復号鍵300Bとして保持している場合、登録PC100は、それに対応する公開鍵を用いて復号PC300向けの置換用暗号化データを生成し、それを対応表115Aに登録してもよい。同様に、複数の復号PC300がある場合には、それぞれの復号PC300が保持する秘密鍵に対応する公開鍵を用いてそれぞれの復号PC向けの置換用暗号データを生成してそれらを対応表115Bに登録してもよい。ただし、共通鍵方式の暗号鍵を使用して置換用暗号化データを作成してもよいことは当然である。
あるいは、登録PC100は、S111において暗号化データベースを作成するときに使用した暗号鍵と同一の暗号鍵を用いて置換用暗号化データを作成し、それを復号するために使用する復号鍵を安全な方法で復号PC300に渡してもよい。これによって、それぞれの復号PC300に安全に所望の匿名化データベースを提供することができる。
一般化階層木の実装方法は一つに限定されないが、その一例として一般化階層木112Aの実装例112Bを図5Cに示す。さらに、図5Cは、実装例112Bのように一般化階層木112Aを実装した場合に、セル毎に暗号化クエリ機能で暗号化することによって生成された、暗号化された一般化階層木の実装例122Bを示す。
上記の手続きは一属性(例えば属性1)の一般化階層木の暗号化の例であるが、登録PC100は、他の属性(例えば属性2、・・・、属性n)の一般化階層木も検索可能暗号のクエリ暗号化機能で同様に暗号化できる。
登録PC100は、暗号鍵を用い、一般化階層木を暗号化することによって、暗号化された一般化階層木を作成し(S121)、この暗号化された一般化階層木と匿名化補助パラメータをネットワーク経由で管理サーバ200に送信し、登録する(S122)。このとき、登録PC100は、置換用の暗号化データおよびそれを含む対応表115Aまたは115Bも生成して管理サーバ200に送信し、登録する。最後に、登録PC100は管理サーバ200に匿名化を依頼する(S123)。
なお、S122において、登録PC100は、暗号化された一般化階層木と匿名化補助パラメータとを同時に送信しなくても良い。例えば、登録PC100は、事前に暗号化された一般化階層木を管理サーバ200に登録しておき、管理サーバ200に匿名化を依頼する際に、匿名化補助パラメータを送信しても良い。
管理サーバ200は、例えば、上記の暗号化された一般化階層木122Aおよび対応表115Aを参照して、暗号化クエリQ(b)を用いて検索された暗号化データE(b)を、置換用の暗号化データEk(b)、Ek(bc)またはEk(abc)のいずれとも置換できることを知ることができる。さらに、管理サーバ200は、例えば、暗号化された一般化階層木122Aおよび対応表115Aを参照して、暗号化データE(b)を置換用の暗号化データEk(bc)に置き換えた場合に実現される匿名性の程度(例えば出現頻度)が、暗号化クエリQ(b)を用いて検索された暗号化データの出現頻度と暗号化クエリQ(c)を用いて検索された暗号化データの出現頻度との合計によって計算できることを知ることができる。
図5Bから図5Eに示す暗号化された一般化階層木および対応表は、上記のように、各暗号化クエリを用いて検索された暗号化データを置き換えることができる置換用の暗号化データを特定する情報、および、その置換を行ったときに実現される匿名性の程度を計算するためにどの暗号化クエリによる検索結果の出現頻度を計算したらよいかを特定する情報の一つの実装例に過ぎず、このような情報が別の形態で実装されてもよい。例えば、図5Bから図5Eでは、暗号化クエリQ(b)およびQ(c)を、暗号化クエリQ(bc)を介して置換用の暗号化データEk(bc)と対応付けることによって、暗号化クエリQ(b)を用いて検索された暗号化データ及び暗号化クエリQ(c)を用いて検索された暗号化データがいずれも置換用の暗号化データEk(bc)によって置換できること等が表現されているが、暗号化クエリQ(bc)を介さずに暗号化クエリQ(b)およびQ(c)を置換用の暗号化データEk(bc)と対応付けることによってそのことを表現してもよい。
図6は、本発明の実施例1の管理サーバ200が、暗号化された一般化階層木を用い、葉ノードと同じ値を有する暗号化データの出現頻度を集計する処理を示すフローチャートである。
管理サーバ200は、匿名化補助パラメータ113を読み込み、匿名化の対象となる属性を暗号化データベース121の属性から全て抽出し、リスト化する(S202)。
次に、管理サーバ200は、S201でリスト化した匿名化対象の属性から1つの属性を選択する(S203)。もし、1つも属性が残っていない場合は、管理サーバ200は処理を終了する(S204)。S203においていずれかの属性を選択できた場合、管理サーバ200は、選択した属性における暗号化された一般化階層木の葉ノードを全て抽出し、リスト化する(S205)。なお、葉ノードには暗号化クエリが登録されている。
次に、管理サーバ200は、リスト化した葉ノードの1つを選択する(S211)。もし、一つも葉ノードが残っていない場合、処理はS210へ進む。管理サーバ200は、リスト化した葉ノードの1つを選択した後、頻度集計用の変数cntを0にセットする(S206)。
次に、管理サーバ200は、選択した属性における暗号化データを抽出する(S207)。暗号化データが抽出できた場合、管理サーバ200は、抽出した暗号化データと暗号化クエリ(葉ノード)を検索可能暗号の判定関数に入力し、出力された0(暗号化データと暗号化クエリは不一致)または1(暗号化データと暗号化クエリは一致)を変数cntに加算する(S208)。この操作によって、変数cntには、葉ノードと一致する暗号データの個数が集計される。新規に抽出できる暗号化データがない場合、管理サーバ200は、その時点の変数cntを、選択した属性における葉ノードの出現数として登録する(S209)。
次に、管理サーバ200は、S205で作成したリストからS211で選択した葉ノードを削除し(S212)、処理はS211に戻る。
S202で作成したリストからS203で選択した属性を削除する(S210)。
図6の処理によって、全ての匿名化対象の属性における暗号化された一般化階層木の葉ノードの出現数(又は出現数に基づいて計算される出現頻度)が得られる。
管理サーバ200が、暗号化データベースを匿名化した匿名化暗号化データベースを作成し、復号PCに提供する手順について図7Aから図7Cを用いて説明する。
図7Aは、本発明の実施例1の管理サーバ200が実行する匿名化処理を示すフローチャートである。
図7Bは、本発明の実施例1の管理サーバ200が生成する頻度付き暗号化された一般化階層木の説明図である。
図7Cは、本発明の実施例1の管理サーバ200が生成する匿名化暗号化データベースの説明図である。
管理サーバ200は、図6の処理フローに従い、全ての匿名化対象の属性における暗号化された一般化階層木の葉ノードの出現頻度を記憶する(S221)。図7Bには、図5Bに示した暗号化された一般化階層木122Aに出現頻度を付すことによって生成された頻度付き暗号化された一般化階層木122Cの一例を示す。この例では、一般化階層木の葉ノードのうち、暗号化クエリQ(a)がラベルとして付されたノード(以下、単にノードQ(a)とも記載する。他の暗号化クエリに対応するノードについても同様)には4回、ノードQ(b)には3回、ノードQ(c)には1回、ノードQ(d)には2回、ノードQ(e)には6回、ノードQ(f)には7回の出現頻度が付与された。なお、この例では、出現回数が出現頻度として扱われる。
次に、管理サーバ200は、葉ノードの出現頻度を用い、子ノードの出現頻度の総和を親ノードの出現頻度として割り当てる(S222)。例えば、頻度付き暗号化された一般化階層木112Cでは、出現頻度3回のノードQ(b)と1回のノードQ(c)の親ノードであるQ(bc)の出現頻度には3回と1回の合計値である4回が割り当てられる。同様に、管理サーバ200は、全てのノードに出現頻度を割り当てる。
さらに、管理サーバ200は、S222において、ノードの出現頻度に基づいて、k-匿名性を満たすノードの組み合わせを決める。このノードの決定方法は、従来技術を利用でき、例えば、特許文献1または非特許文献1に記載されている技術を用い、k-匿名性を満たすノードを決定できる。
例えば、図7Bに示す頻度付き暗号化された一般化階層木122Cが得られ、かつ、k値が7であるとすると、ノードQ(a)、Q(b)、Q(c)は、出現頻度が7より小さいため、k-匿名性を満たさない。さらに、Q(b)およびQ(c)の親ノードであるノードQ(bc)の出現頻度も7より小さい。しかし、ノードQ(a)およびQ(bc)の親ノードであるノードQ(abc)の出現頻度は7以上であるため、これがk-匿名性を満たすノードとして決定される。同様に、Q(d)およびQ(e)の親ノードであるノードQ(de)、ならびに、ノードQ(f)の出現頻度も7以上であるため、これらがk-匿名性を満たすノードとして決定される。
次に、管理サーバ200は、決定されたノードを葉ノードの値と置換し、更に対応表115Aまたは115Bを用いて、置換した葉ノードの値と対応する暗号化データを元の値と置換することによって、暗号化データベース121から匿名化暗号化データベース231を作成する(S224)。
例えば、図7の112CでQ(abc)、Q(de)、Q(f)がk-匿名性を満たすノードとして決定された場合は、暗号化データベース121の属性1の暗号化された属性値E(a)は、それを検索するために用いられた暗号化クエリQ(a)に対応するノードQ(a)の上位のk-匿名性を満たすノードQ(abc)が決定されたため、対応表115Aを用いて、Q(abc)に対応する暗号化データEk(abc)に置換される。
同様に、暗号化クエリQ(b)およびQ(c)によって検索される暗号化データE(b)およびE(c)は、いずれも、Q(abc)に対応する暗号化データEk(abc)に置換される。さらに、暗号化クエリQ(d)およびQ(e)によって検索される暗号化データE(d)およびE(e)は、いずれも、ノードQ(de)に対応する暗号化データEk(de)に置換される。さらに、暗号化クエリQ(f)によって検索される暗号化データE(f)は、ノードQ(f)に対応する暗号化データEk(f)によって置換される。
その結果、最終的には図7Cの匿名化暗号化データベース231の属性1のように置換される。管理サーバ200は、匿名化結果補助データ232を作成し、匿名化暗号化データベース231と共にネットワーク経由で復号PCに提供する(S225)。
なお、図5Eに示す対応表115Bが用意され、どの復号PC300に向けた匿名化データを作成するかを指示する情報が管理サーバ200に入力されている場合、管理サーバ200は、検索された暗号化データを、指示された復号PC300に対応する置換用暗号化データによって置換する(S224)。
また、管理サーバ200が暗号化データベースの匿名化を実行する時点で、匿名化したデータベースをどの復号PC300が利用するか判明していない場合があり得る。この場合、管理サーバ200は、上記の処理において、元の暗号化データを置換用暗号化データで置換する代わりに、それに対応する暗号化クエリによって置換し、その後、利用する復号PC300が判明して、その復号PC300に向けた置換用暗号化データのセットを含む対応表を入手したときに、それぞれの暗号化クエリをそれに対応する当該復号PC300向けの置換用暗号化データに置換してもよい。
復号PC300は、管理サーバ200から匿名化暗号化データベース231および匿名化結果補助データ232を受信する。また、復号PC300は、復号鍵300Bを用い、匿名化暗号化データベース231の暗号化を解除し、匿名化データベース331を作成し、記憶装置に格納する。
以上の処理によって、本実施例では、登録PC100は、管理サーバ200には平文データベースを開示することなく、データの機密性を維持しながら、管理サーバ200に匿名化処理を依頼し、復号PC300に匿名化データベースを提供することができる。
なお、本実施例のユースケースでは、図1が示すように、登録PCが保有する暗号鍵と復号PCが保有する復号鍵が異なる例を示したが、暗号化と復号に同一の鍵を用いるように変更しても良い。その場合、対応表115A等には、復号PC向け暗号化データとして、登録PC100が暗号化データを生成するときに使用したものと同じ暗号鍵を用いて暗号化した暗号化データが登録される。そして、管理サーバ200は、匿名化処理を行う前に既に所定の匿名性が満たされており、他の属性値と組み合わせた暗号化データによって置換する必要がない暗号化データについては、置換用の暗号化データと置換しなくてもよい。
また、本実施例のユースケースでは、図1が示すように、登録PC100と復号PC300がそれぞれ異なる事業者の異なる計算機によって運用される場合を想定したが、両者が同一の事業者の同一の計算機によって運用されても良い。
また、本実施例におけるユースケースでは、図1が示すように、登録PC100、管理サーバ200および復号PC300がそれぞれ1台ずつ動作する場合を記述したが、本発明では、計算機の台数は固定されない。即ち、登録PC100、管理サーバ200および復号PC300がそれぞれ複数台、存在しても良い。また、その場合は、それぞれ異なる暗号化鍵を、登録PC100ごとあるいはグループングした登録PC100ごとに持たせてもよい。同様に、それぞれ異なる復号鍵を、復号PC300ごとあるいはグルーピングした復号PC300ごとに持たせてもよい。また、管理サーバ200に、異なる暗号鍵で暗号化された暗号化データを取り扱え、頻度集計が可能な、特殊用途の鍵を持たせても良い。
また、本の暗号化データベース121では、図4に示すように、「属性1」等の属性を識別する情報が暗号化されていないが、属性を識別する情報も暗号化するように変更しても良い。この場合、登録PC100は、S111で検索可能暗号のデータ暗号化機能を用いて属性を識別する情報を暗号化し、S121で検索可能暗号のクエリ暗号化機能を用いて暗号化された属性を検索するクエリを暗号化する。その後、管理サーバ200は、S205で検索可能暗号の判定関数を用い、抽出した属性に対応する暗号化された一般化階層木を抽出する。この変更処理によって、登録PC100は平文データベース111に含まれる属性値のデータに加え、属性を識別する情報も管理サーバに隠すことが出来る。
また、本実施例においては、検索可能暗号のデータの暗号化機能を用い、暗号化データベースを作成し、検索可能暗号のクエリの暗号化機能を用い、暗号化された一般化階層木を作成し、検索可能暗号の判定関数を用い、頻度付き暗号化された一般化階層木を作成した。しかし、これは一例であり、検索可能暗号とは異なる暗号方式を用いても本発明を実施することができる。例えば、順序保存暗号は、検索可能暗号と同様にデータの暗号化機能、クエリの暗号化機能、判定関数が存在するので、順序保存暗号のデータの暗号化機能を用い、暗号化データベースを作成し、順序保存暗号のクエリの暗号化機能を用い、暗号化された一般化階層木を作成し、順序保存暗号の判定関数を用い、頻度付き暗号化された一般化階層木を作成するよう、本実施例を変更しても良い。この場合、順序保存暗号は数値の順序関係を保存するので、最終的に、順序関係を保存した匿名化データベースを作成できる。
また、本実施例において、数値集計が可能な比較判定暗号を用いてもよい。比較判定暗号は、検索可能暗号と同様、データやクエリの暗号化機能を保有するほか、暗号化したまま集計、比較ができる。そのため、比較可能暗号の暗号化により、ノードの出現頻度を暗号化したまま、k-匿名性を満たすノードを発見できる。
また、本発明において、数値集計が可能であり、かつ数値集計の結果のみを復号可能な暗号を用いてもよい。このとき、ノードと暗号化データとの対応関係(判定結果)もサーバに知らせずに済むため、より安全にk-匿名性を満たすノードを発見できる。このような暗号を適用した本実施例の変形例について図10及び図11を参照して説明する。
図10は、本発明の実施例1の変形例の登録PC100が実行する暗号化データベース121の作成及び登録の処理の説明図である。
図11は、本発明の実施例1の変形例の管理サーバ200が実行するノードの頻度集計処理の説明図である。
例えば、図10の表1001に示すように、平文データベースの属性1が{a,b,c,d,e,f}のいずれかの値をとりうる場合、暗号化データベース(表1002)は、平文の属性1がとりうる値を列に展開し、各行が平文データベースに含まれる属性1の各値に対応する暗号化データベース(表1002)が作成される。この表1002において、各行に対応する属性値は必ずa~fのいずれかであり、各行の属性値に対応する列に1を暗号化した値、それ以外の列に0を暗号化した値が保有される。例えば、平文データベースの1行目の属性1の値がaであるため、表1002の1行目の値aに対応する列には、1を暗号化した値(例えばEk(1))が保有され、それ以外の列には、0を暗号化した値(例えばEk(1))が保有される。また、表1002の0行目の各列には、各列に対応する属性1のとりうる各値を暗号化した値(例えば値a~fをそれぞれ暗号化したE(a)~E(f))が保有される。
この暗号化は頻度集計が可能である。Ek()は集計結果のみ鍵kで復号可能な暗号化(Encyption)を意味する。例えば、表1002の1行目は1列目のみEk(1)、他はEk(0)であるので、1行目に対応する暗号化された属性値は、0行目1列目に記載されたE(a)をとることを意味する。同様に、n行目は6列目のみE(1)、他はE(0)であるので、n行目に対応する暗号化された属性値は、0行目6列目に記載されたE(f)をとることを意味する。これらの値は全て暗号化されており、管理サーバ200はこれらの値を乱数と区別できない。
登録PC100は、平文データベースから該当する平文データを全て抽出し、上記の手法で、暗号鍵を用いて、暗号化データベースを作成し(S111)、この暗号化データベースをネットワーク経由で管理サーバ200に登録する(S112)。また、管理サーバ200による葉ノードの集計処理(S221)では、図11に示すように、暗号化データを列毎に集計し、その結果を復号することによって、暗号化された一般化階層木の葉ノードの出現頻度が得られる。
また、本実施例のユースケースでは、図1等が示すように、平文データベースと暗号化データベースが存在するが、平文データベースの一部に暗号化データが存在してもよく、また暗号化データベースの一部に平文データが存在しても良い。
また、本発明における匿名化パラメータとして、対応表115Aまたは115B等を用いる場合を示したが、検索可能暗号の暗号化クエリに復号機能を付与することによって、対応表に関する処理を省くことが出来る。このとき、S224において、管理サーバ200は、選択されたノードを葉ノードの値と置換し、置換した葉ノードの値を暗号化データベースの元の値と置換することで、暗号化データベースから匿名化暗号化データベースを作成する。
また、対応表を登録PC100から管理サーバ200に送らずに、管理サーバ200が自身で作成するように処理を変更しても良い。
実施例1では、暗号化された一般化階層木が登録PC100から管理サーバ200にあたえられることを想定した。しかしながら、登録PC100が一般化階層木を保持していない、または保持していたとしてもそれを管理サーバ200に与えたくない場合もありえる。また、管理サーバ200が、与えられた暗号化された一般化階層木とは異なる一般化階層木を用い、匿名化を行いたい場合もありえる。そこで、実施例2では、登録PC100が暗号化された一般化階層木を管理サーバ200に与えず、一般階層木作成用のデータを与える場合の匿名化の処理方式を述べる。以下に説明する相違点を除き、実施例2のシステムの各部は、図1~図7Cに示された実施例1の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
図8Aは、本発明の実施例2の登録PC100が実行する匿名化の依頼処理を示すフローチャートである。
図8Bは、本発明の実施例2の登録PC100による一般化階層木補助パラメータの作成の説明図である。
図8Cは、本発明の実施例2の登録PC100によって生成される暗号化クエリと暗号化データとの対応表の説明図である。
登録PC100の匿名化の依頼フローは、実施例1と類似する。登録PC100は、図5Aに示したフローにおける、暗号化された一般化階層木を作成する処理(S121)の代わりに、一般化階層木作成を補助するためのデータである一般化階層木補助パラメータを作成する処理を行う(S131)。例えば、登録PC100は、まず平文データベースの各属性における属性値全てを抽出する。図8Bの平文データベースの属性値131Aはその一例であり、属性1の代表値(aからfまでアルファベット順)と、属性2の代表値(1から9までの整数)と、属性nの代表値(血液型)と、を含む。
次に、登録PC100は、それら抽出した代表値全てを検索可能暗号のクエリ暗号化機能で暗号化し、これを一般化階層木用作成用データとする。図8Bの一般化階層木補助パラメータ132Aはその一例であり、属性1、属性2、・・・、属性nの全ての代表値を含む。
次に、登録PC100は、一般化階層木補助パラメータ132Aと匿名化補助パラメータ113とをネットワーク400経由で管理サーバ200に登録する(S132)。最後に、登録PC100は管理サーバ200に匿名化を依頼する(S133)。
匿名化補助パラメータ113は、暗号化データをそれが暗号化されたままで検索するための暗号化クエリと、検索された暗号化データと同一の平文データを復号PC300向けの暗号鍵で暗号化した暗号化データとを対応付ける、対応表を含む。図8Cに、一般化階層木112Aを対象とした場合の対応表133Aを例示する。この例では、暗号化クエリQ(a)~Q(f)が、それぞれ、置換用の暗号化データEki(a)~Eki(f)に対応付けられる。
なお、平文データベースの属性値131Aは各属性の代表値を全て含んでいるが、平文データベース111内で利用されている値のみを含むように変更しても良いし、特定の値のみを抽出するように変更しても良い。
図9Aは、本発明の実施例2の管理サーバ200が実行する匿名化処理を示すフローチャートである。
図9Bは、本発明の実施例2の管理サーバ200によって集計された葉ノードの出現頻度の説明図である。
図9Cは、本発明の実施例2の管理サーバ200が生成する頻度付き一般化階層木の説明図である。
まず、図9Aを参照して管理サーバ200による匿名化処理を説明する。図7Aに示した実施例1のフローと異なる部分は、S220bの追加と、S222の代わりにS222bを行う点である。以下、図7Aの管理サーバ200の匿名化処理と異なる、S210bからS212bを説明する。
S220bでは、管理サーバ200は、一般化階層木作成用のデータを、属性毎に取り出し、一般化階層木の葉ノードとする。例えば、属性1については、管理サーバ200は、一般化階層木補助パラメータ132Aから、属性1に対応する暗号化クエリQ(a)~Q(f)を取り出し、それらから一般階層木の葉ノードを生成する(図9B参照)。
S221では、管理サーバ200は、図6の処理フローに従い、全ての属性における暗号化された一般化階層木の葉ノードの出現頻度を記憶する。これによって、例えば図9Bの葉ノードの出現頻度が得られる。
S222bでは、管理サーバ200は、葉ノードの出現頻度を利用し、逐次的に親ノードを作成し、最終的には頻度付き一般化階層木を作成する。作成においては、管理サーバは評価関数を用い、そのスコアが最適(または最大化や最小化)になるように、頻度付き一般化階層木を作成する。
図9Cの頻度付き一般化階層木212Bは、評価関数として情報エントロピーが最大になるように作成した一般化階層木の例である。この場合、逐次的に親ノードの出現頻度が最小化されるよう、出現頻度が最小の子ノードを組み合わせた、一般化階層木が作成される。
例えば、図9Bに示す一般化階層木の葉ノード211Bの例では、Q(a)に4回、Q(b)に3回、Q(c)に1回、Q(d)に2回、Q(e)に6回、Q(f)に7回の出現頻度が付与されている。そこで、管理サーバ200は、出現頻度1回のQ(c)と2回のQ(d)を組み合わせ、Q(c)またはQ(d)を意味する、親ノードQ(c)Q(d)を作成する。親ノードQ(c)Q(d)には、Q(c)とQ(d)の出現頻度の総和である3回が割り振られる。
次に、管理サーバ200は、親ノードの存在しない、5つのノードQ(a)、Q(b)、Q(c)、Q(d)、Q(e)、Q(f)から、最も出現頻度の少ないノードである出現頻度3回のQ(b)と3回のQ(c)Q(d)を組み合わせ、Q(b)またはQ(c)またはQ(d)を意味する、親ノードQ(b)Q(c)Q(d)を作成する。親ノードQ(b)Q(c)Q(d)には、Q(b)とQ(c)Q(d)の出現頻度の総和である6回が割り振られる。
このようにして、管理サーバ200は、逐次的に親ノードの出現頻度が最小となるよう、親ノードを作成していき、対象となるノードが規定数以下(図9Cの例では2)になるまで、この操作を繰り返す。
図9Cの例では、暗号化クエリQ(a)、Q(b)、Q(c)およびQ(d)のそれぞれを用いて検索された暗号化データの出現頻度の合計が10、暗号化クエリQ(e)およびQ(f)のそれぞれを用いて検索された暗号化データの出現頻度の合計が13であり、いずれもk値(例えば7)以上である。このため、暗号化クエリQ(a)、Q(b)、Q(c)およびQ(d)のそれぞれを用いて検索された各暗号化データ(例えばE(a)、E(b)、E(c)およびE(d))が、暗号化クエリQ(a)、Q(b)、Q(c)およびQ(d)のそれぞれに対応する置換用の暗号化データであるEki(a)、Eki(b)、Eki(c)およびEki(d)の組合せによって置き換えられる。同様に、暗号化クエリQ(e)およびQ(f)のそれぞれを用いて検索された各暗号化データ(例えばE(e)およびE(f))が、暗号化クエリQ(e)およびQ(f)のそれぞれに対応する置換用の暗号化データであるEki(e)およびEki(f)の組合せによって置き換えられる。これによって、例えば出現頻度が1回である暗号化データE(c)が、Eki(a)、Eki(b)、Eki(c)およびEki(d)の組合せによって置き換えられ、所望の匿名化が実現される。
なお、頻度付き一般化階層木の作成において、親ノードを作成する際に、同じ頻度のノードが存在する場合は、その選択方法が予め与えられる。例えば、ランダムに選択されてもよいし、辞書順等で選択されてもよいが、いずれの場合も、対象とするノードが必ず選択される。また、親ノードの階層は子ノードの階層より上の階層が設定される。例えば1ずつ上の階層を設定してもよいし、他の親ノードがある場合は、そのノードと同等の階層を設定しても良い。例えば、図9に示す頻度付き一般化階層木212Bでは、Q(e)とQ(f)の親ノードであるQ(e)Q(f)は、別の親ノードと同じ3階層に設定したが、これを4階層に設定するように変更してもよいし、1階層または2階層に設定してもよい。
S223からS225は実施例1の処理と同様であるので、説明を省略する。
以上の処理によって、本実施例では、登録PC100は、管理サーバ200に暗号化された一般化階層木を提供することなく、管理サーバ200に匿名化処理を依頼することができる。
なお、本実施例の管理サーバ200は、親ノードの頻度集計と頻度付き一般化階層木の作成処理における、頻度付き一般化階層木の作成(S222b)において、評価関数として情報エントロピーを採用し、この情報エントロピーの欠損が最小となるよう、Huffman符号やHu-Tucker等の圧縮技術を用い、一般化階層木を作成しても良い。これらの技術については、特許文献2に詳しく記載されている。
また、管理サーバ200は、頻度付き一般化階層木の作成処理(S222b)において、k値と出現頻度との差分を評価関数とし、これを最適化するように一般化階層木を作成しても良い。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
Claims (14)
- 第1計算機を有するデータ加工システムであって、
前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、
前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、
前記第1プロセッサは、
前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算し、
前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データの少なくとも二つを変更し、
前記複数の暗号化データを出力することを特徴とするデータ加工システム。 - 請求項1に記載のデータ加工システムであって、
前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
前記補助情報は、二つ以上の暗号化クエリと、前記二つ以上の暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データとを対応付ける情報を含み、
前記第1プロセッサは、前記二つ以上の暗号化クエリのいずれか一つを用いて検索された暗号化データの出現数が所定の数より小さく、かつ、前記二つ以上の暗号化クエリの各々を用いて検索された暗号化データの出現数の合計が前記所定の数以上である場合、前記二つ以上の暗号化クエリの各々を用いて検索された各暗号化データを、前記二つ以上の暗号化クエリに対応付けられた前記置換用暗号化データによって置換することによって、前記所定の匿名性を満たすように前記暗号化されたデータを変更することを特徴とするデータ加工システム。 - 請求項2に記載のデータ加工システムであって、
ネットワークを介して前記第1計算機に接続される第2計算機をさらに有し、
前記第1計算機は、前記第1プロセッサ及び前記ネットワークに接続される第1通信装置をさらに有し、
前記第2計算機は、第2プロセッサと、前記第2プロセッサに接続される第2記憶装置と、前記第2プロセッサ及び前記ネットワークに接続される第2通信装置と、を有し、
前記第2記憶装置は、
前記複数の平文データを保持し、
前記平文データがとり得る複数の内容に対応する最下位層の複数のノードと、複数の下位層のノードに連結され、前記複数の下位層のノードに対応する全ての平文データの内容に対応する一つ以上の上位層のノードと、を含む一般化階層木を保持し、
第1暗号鍵及び第2暗号鍵と、を保持し、
前記第2プロセッサは、
前記第1暗号鍵を用いて前記複数の平文データを暗号化することによって前記複数の暗号化データを生成し、前記第1暗号鍵を用いて前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリを生成し、前記第2暗号鍵を用いて前記各ノードに対応する一つの平文データの内容又は複数の平文データの内容の組合せを暗号化することによって複数の前記置換用暗号化データを生成し、前記一般化階層木に基づいて、前記複数の平文データの内容を含む複数の暗号化データを検索するための複数の暗号化クエリと前記複数の平文データの内容の組合せを暗号化することによって生成された前記置換用暗号化データとを対応付ける情報を含む前記補助情報を生成し、
前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1計算機に送信し、
前記第1プロセッサは、受信した前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1記憶装置に格納することを特徴とするデータ加工システム。 - 請求項1に記載のデータ加工システムであって、
前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
前記第1プロセッサは、前記複数の暗号化クエリのうち第1暗号化クエリを用いて検索された暗号化データの出現数が所定の数より小さく、かつ、前記第1暗号化クエリを含む複数の暗号化クエリの各々を用いて検索された暗号化データの出現数の合計が前記所定の数以上である場合、前記第1暗号化クエリを含む複数の暗号化クエリの各々に対応する置換用暗号化データの組合せによって、前記第1暗号化クエリを含む複数の暗号化クエリの各々によって検索された前記各暗号化データを置換することによって、前記所定の匿名性を満たすように前記複数の暗号化データを変更することを特徴とするデータ加工システム。 - 請求項4に記載のデータ加工システムであって、
前記第1プロセッサは、
各々が前記各暗号化クエリに対応する最下位層の複数のノードと、複数の下位層のノードに連結され、前記複数の下位層のノードに対応する全ての前記暗号化クエリに対応する一つ以上の上位層のノードと、を含み、各ノードに対応する全ての前記暗号化クエリによって検索された前記暗号化データの出現数の合計値が前記各ノードの出現数として与えられた一般化階層木を生成し、
前記所定の数以上の前記出現数を有する前記ノードに対応する全ての前記暗号化クエリを用いて検索された一つ以上の前記暗号化データの各々を、当該全ての暗号化クエリの各々に対応する置換用暗号化データの組合せによって置換することによって、前記所定の匿名性を満たすように前記暗号化データを変更することを特徴とするデータ加工システム。 - 請求項4に記載のデータ加工システムであって、
ネットワークを介して前記第1計算機に接続される第2計算機をさらに有し、
前記第1計算機は、前記第1プロセッサ及び前記ネットワークに接続される第1通信装置をさらに有し、
前記第2計算機は、第2プロセッサと、前記第2プロセッサに接続される第2記憶装置と、前記第2プロセッサ及び前記ネットワークに接続される第2通信装置と、を有し、
前記第2記憶装置は、前記複数の平文データと、第1暗号鍵と、第2暗号鍵と、を保持し、
前記第2プロセッサは、
前記第1暗号鍵を用いて前記複数の平文データを暗号化することによって前記複数の暗号化データを生成し、前記第1暗号鍵を用いて前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリを生成し、前記第2暗号鍵を用いて前記複数の平文データがとり得る複数の値を暗号化することによって複数の前記置換用暗号化データを生成し、同一の平文データの内容に対応する前記暗号化データを検索するための暗号化クエリと前記置換用暗号化データとを対応付ける情報を含む前記補助情報を生成し、
前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1計算機に送信し、
前記第1プロセッサは、受信した前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1記憶装置に格納することを特徴とするデータ加工システム。 - 請求項1に記載のデータ加工システムであって、
前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
前記複数の暗号化データは、第1暗号鍵を用いて前記複数の平文データを暗号化することによって生成されたデータを含み、
複数の前記置換用暗号化データは、第2暗号鍵を用いて前記複数の平文データを暗号化することによって生成された複数の第1置換用暗号化データと、第3暗号鍵を用いて前記複数の平文データを暗号化することによって生成された複数の第2置換用暗号化データと、を含み、
前記第1プロセッサは、前記第1置換用暗号化データ又は前記第2置換用暗号化データのいずれかを指定する情報が入力されると、指定された置換用暗号化データによって前記暗号化データを置換することによって、前記所定の匿名性を満たすように前記複数の暗号化データを変更することを特徴とするデータ加工システム。 - 第1計算機を有する計算機システムが実行するデータ加工方法であって、
前記第1計算機は、第1プロセッサと、前記第1プロセッサに接続される第1記憶装置と、を有し、
前記第1記憶装置は、複数の平文データを暗号化することによって生成された複数の暗号化データと、前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリと、を保持し、
前記データ加工方法は、
前記第1プロセッサが、前記各暗号化クエリを用いて前記各暗号化データを検索することによって、前記各暗号化クエリを用いて検索された暗号化データの出現数を計算する第1手順と、
前記第1プロセッサが、前記各暗号化クエリを用いて検索された暗号化データの出現数に基づいて、所定の匿名性を満たすように前記複数の暗号化データを変更する第2手順と
前記第1プロセッサが、前記変更した暗号化データを出力する第3手順と、を含むことを特徴とするデータ加工方法。 - 請求項8に記載のデータ加工方法であって、
前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
前記補助情報は、二つ以上の暗号化クエリと、前記二つ以上の暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データとを対応付ける情報を含み、
前記第2手順において、前記第1プロセッサは、前記二つ以上の暗号化クエリのいずれか一つを用いて検索された暗号化データの出現数が所定の数より小さく、かつ、前記二つ以上の暗号化クエリの各々を用いて検索された暗号化データの出現数の合計が前記所定の数以上である場合、前記二つ以上の暗号化クエリの各々を用いて検索された各暗号化データを、前記二つ以上の暗号化クエリに対応付けられた前記置換用暗号化データによって置換することによって、前記所定の匿名性を満たすように前記暗号化されたデータを変更することを特徴とするデータ加工方法。 - 請求項9に記載のデータ加工方法であって、
ネットワークを介して前記第1計算機に接続される第2計算機をさらに有し、
前記第1計算機は、前記第1プロセッサ及び前記ネットワークに接続される第1通信装置をさらに有し、
前記第2計算機は、第2プロセッサと、前記第2プロセッサに接続される第2記憶装置と、前記第2プロセッサ及び前記ネットワークに接続される第2通信装置と、を有し、
前記第2記憶装置は、
前記複数の平文データを保持し、
前記平文データがとり得る複数の内容に対応する最下位層の複数のノードと、複数の下位層のノードに連結され、前記複数の下位層のノードに対応する全ての平文データの内容に対応する一つ以上の上位層のノードと、を含む一般化階層木を保持し、
第1暗号鍵及び第2暗号鍵と、を保持し、
前記データ加工方法は、
前記第2プロセッサが、前記第1暗号鍵を用いて前記複数の平文データを暗号化することによって前記複数の暗号化データを生成し、前記第1暗号鍵を用いて前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリを生成し、前記第2暗号鍵を用いて前記各ノードに対応する一つの平文データの内容又は複数の平文データの内容の組合せを暗号化することによって複数の前記置換用暗号化データを生成し、前記一般化階層木に基づいて、前記複数の平文データの内容を含む複数の暗号化データを検索するための複数の暗号化クエリと前記複数の平文データの内容の組合せを暗号化することによって生成された前記置換用暗号化データとを対応付ける情報を含む前記補助情報を生成する手順と、
前記第2プロセッサが、前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1計算機に送信し、前記第1プロセッサが、受信した前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1記憶装置に格納する手順と、を含むことを特徴とするデータ加工方法。 - 請求項8に記載のデータ加工方法であって、
前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
前記第2手順において、前記第1プロセッサは、前記複数の暗号化クエリのうち第1暗号化クエリを用いて検索された暗号化データの出現数が所定の数より小さく、かつ、前記第1暗号化クエリを含む複数の暗号化クエリの各々を用いて検索された暗号化データの出現数の合計が前記所定の数以上である場合、前記第1暗号化クエリを含む複数の暗号化クエリの各々に対応する置換用暗号化データの組合せによって、前記第1暗号化クエリを含む複数の暗号化クエリの各々によって検索された前記各暗号化データを置換することによって、前記所定の匿名性を満たすように前記複数の暗号化データを変更することを特徴とするデータ加工方法。 - 請求項11に記載のデータ加工方法であって、
前記第1プロセッサが、各々が前記各暗号化クエリに対応する最下位層の複数のノードと、複数の下位層のノードに連結され、前記複数の下位層のノードに対応する全ての前記暗号化クエリに対応する一つ以上の上位層のノードと、を含み、各ノードに対応する全ての前記暗号化クエリによって検索された前記暗号化データの出現数の合計値が前記各ノードの出現数として与えられた一般化階層木を生成する手順をさらに含み、
前記第2手順において、前記第1プロセッサは、前記所定の数以上の前記出現数を有する前記ノードに対応する全ての前記暗号化クエリを用いて検索された一つ以上の前記暗号化データの各々を、当該全ての暗号化クエリの各々に対応する置換用暗号化データの組合せによって置換することによって、前記所定の匿名性を満たすように前記暗号化データを変更することを特徴とするデータ加工方法。 - 請求項11に記載のデータ加工方法であって、
前記計算機システムは、ネットワークを介して前記第1計算機に接続される第2計算機をさらに有し、
前記第1計算機は、前記第1プロセッサ及び前記ネットワークに接続される第1通信装置をさらに有し、
前記第2計算機は、第2プロセッサと、前記第2プロセッサに接続される第2記憶装置と、前記第2プロセッサ及び前記ネットワークに接続される第2通信装置と、を有し、
前記第2記憶装置は、前記複数の平文データと、第1暗号鍵と、第2暗号鍵と、を保持し、
前記データ加工方法は、
第2プロセッサが、前記第1暗号鍵を用いて前記複数の平文データを暗号化することによって前記複数の暗号化データを生成し、前記第1暗号鍵を用いて前記複数の暗号化データをそれらが暗号化されたままで検索するための複数の暗号化クエリを生成し、前記第2暗号鍵を用いて前記複数の平文データがとり得る複数の値を暗号化することによって複数の前記置換用暗号化データを生成し、同一の平文データの内容に対応する前記暗号化データを検索するための暗号化クエリと前記置換用暗号化データとを対応付ける情報を含む前記補助情報を生成する手順と、
第2プロセッサが、前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1計算機に送信し、前記第1プロセッサが、受信した前記複数の暗号化データ、前記複数の暗号化クエリ、前記複数の置換用暗号化データ及び前記補助情報を前記第1記憶装置に格納する手順と、をさらに含むことを特徴とするデータ加工方法。 - 請求項8に記載のデータ加工方法であって、
前記第1記憶装置は、前記各暗号化クエリと、前記各暗号化クエリを用いて検索された各暗号化データを置換するための置換用暗号化データと、を対応付ける補助情報を保持し、
前記複数の暗号化データは、第1暗号鍵を用いて前記複数の平文データを暗号化することによって生成されたデータを含み、
複数の前記置換用暗号化データは、第2暗号鍵を用いて前記複数の平文データを暗号化することによって生成された複数の第1置換用暗号化データと、第3暗号鍵を用いて前記複数の平文データを暗号化することによって生成された複数の第2置換用暗号化データと、を含み、
前記第2手順において、前記第1プロセッサは、前記第1置換用暗号化データ又は前記第2置換用暗号化データのいずれかを指定する情報が入力されると、指定された置換用暗号化データによって前記暗号化データを置換することによって、前記所定の匿名性を満たすように前記複数の暗号化データを変更することを特徴とするデータ加工方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017555883A JP6457660B2 (ja) | 2015-12-14 | 2015-12-14 | データ加工システム及びデータ加工方法 |
PCT/JP2015/084910 WO2017103970A1 (ja) | 2015-12-14 | 2015-12-14 | データ加工システム及びデータ加工方法 |
US15/759,532 US11295635B2 (en) | 2015-12-14 | 2015-12-14 | Data processing system and data processing method |
EP15910661.6A EP3392864B1 (en) | 2015-12-14 | 2015-12-14 | Data processing system and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/084910 WO2017103970A1 (ja) | 2015-12-14 | 2015-12-14 | データ加工システム及びデータ加工方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017103970A1 true WO2017103970A1 (ja) | 2017-06-22 |
Family
ID=59056145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/084910 WO2017103970A1 (ja) | 2015-12-14 | 2015-12-14 | データ加工システム及びデータ加工方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11295635B2 (ja) |
EP (1) | EP3392864B1 (ja) |
JP (1) | JP6457660B2 (ja) |
WO (1) | WO2017103970A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022520323A (ja) * | 2019-02-15 | 2022-03-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アナリティクスのための難読化データへのセキュアなマルチレベル・アクセス |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111201532B (zh) * | 2017-10-11 | 2023-08-15 | 日本电信电话株式会社 | k-匿名化装置、方法以及记录介质 |
US11190336B2 (en) * | 2019-05-10 | 2021-11-30 | Sap Se | Privacy-preserving benchmarking with interval statistics reducing leakage |
US11429740B2 (en) * | 2020-05-26 | 2022-08-30 | Intuit Inc. | Fast querying of encrypted data set |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011145401A1 (ja) * | 2010-05-19 | 2011-11-24 | 株式会社日立製作所 | 個人情報匿名化装置 |
WO2015063905A1 (ja) * | 2013-10-31 | 2015-05-07 | 株式会社日立製作所 | データ分析システム |
JP2016009338A (ja) * | 2014-06-24 | 2016-01-18 | 株式会社日立ソリューションズ | パーソナル情報管理システム及びパーソナル情報匿名化装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002084531A2 (en) * | 2001-04-10 | 2002-10-24 | Univ Carnegie Mellon | Systems and methods for deidentifying entries in a data source |
US7870398B2 (en) * | 2007-01-25 | 2011-01-11 | International Business Machines Corporation | Integrity assurance of query result from database service provider |
KR20120068524A (ko) * | 2010-12-17 | 2012-06-27 | 한국전자통신연구원 | 데이터 관리 장치 및 데이터 관리 방법 |
JP6078437B2 (ja) | 2013-08-28 | 2017-02-08 | 株式会社日立ソリューションズ | パーソナル情報匿名化システム |
-
2015
- 2015-12-14 US US15/759,532 patent/US11295635B2/en active Active
- 2015-12-14 JP JP2017555883A patent/JP6457660B2/ja active Active
- 2015-12-14 WO PCT/JP2015/084910 patent/WO2017103970A1/ja unknown
- 2015-12-14 EP EP15910661.6A patent/EP3392864B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011145401A1 (ja) * | 2010-05-19 | 2011-11-24 | 株式会社日立製作所 | 個人情報匿名化装置 |
WO2015063905A1 (ja) * | 2013-10-31 | 2015-05-07 | 株式会社日立製作所 | データ分析システム |
JP2016009338A (ja) * | 2014-06-24 | 2016-01-18 | 株式会社日立ソリューションズ | パーソナル情報管理システム及びパーソナル情報匿名化装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3392864A4 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022520323A (ja) * | 2019-02-15 | 2022-03-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アナリティクスのための難読化データへのセキュアなマルチレベル・アクセス |
JP7438607B2 (ja) | 2019-02-15 | 2024-02-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アナリティクスのための難読化データへのセキュアなマルチレベル・アクセス |
Also Published As
Publication number | Publication date |
---|---|
EP3392864B1 (en) | 2020-10-28 |
EP3392864A1 (en) | 2018-10-24 |
US11295635B2 (en) | 2022-04-05 |
JPWO2017103970A1 (ja) | 2018-08-02 |
EP3392864A4 (en) | 2019-06-05 |
JP6457660B2 (ja) | 2019-01-23 |
US20190147770A1 (en) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9684710B2 (en) | Extending random number summation as an order-preserving encryption scheme | |
US5963642A (en) | Method and apparatus for secure storage of data | |
JP5536067B2 (ja) | データを暗号化および処理するための装置、システム、方法および対応するソフトウエアコンポーネント | |
JP4810611B2 (ja) | 暗号化されたデータの検索 | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
Popa et al. | CryptDB: A practical encrypted relational DBMS | |
JP6457660B2 (ja) | データ加工システム及びデータ加工方法 | |
Emekci et al. | Dividing secrets to secure data outsourcing | |
Liu et al. | Efficient searchable symmetric encryption for storing multiple source dynamic social data on cloud | |
JP6910477B2 (ja) | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム | |
Persiano et al. | Lower bounds for differentially private RAMs | |
Rizomiliotis et al. | ORAM based forward privacy preserving dynamic searchable symmetric encryption schemes | |
Kacsmar et al. | Differentially private two-party set operations | |
Li et al. | CDPS: A cryptographic data publishing system | |
Moghadam et al. | Toward securing cloud-based data analytics: A discussion on current solutions and open issues | |
Kumar et al. | Approaches and challenges of privacy preserving search over encrypted data | |
Yang et al. | Trust enhancement over range search for encrypted data | |
Wang et al. | Search ranges efficiently and compatibly as keywords over encrypted data | |
Sobati Moghadam et al. | Enforcing privacy in cloud databases | |
JP7384740B2 (ja) | 検索システム、検索装置、および検索方法 | |
Kamini et al. | Encrypted multi-keyword ranked search supporting gram based search technique | |
Mu et al. | Encrypted data retrieval scheme based on bloom filter | |
Souror et al. | Secure query processing for smart grid data using searchable symmetric encryption | |
Almakdi et al. | Designing a Bit-Based Model to Accelerate Query Processing Over Encrypted Databases in Cloud | |
Chen et al. | A reinforced dynamic multi-keyword ranked search with forward privacy |
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: 15910661 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017555883 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |