WO2012095973A1 - データ処理装置及びデータ保管装置 - Google Patents
データ処理装置及びデータ保管装置 Download PDFInfo
- Publication number
- WO2012095973A1 WO2012095973A1 PCT/JP2011/050393 JP2011050393W WO2012095973A1 WO 2012095973 A1 WO2012095973 A1 WO 2012095973A1 JP 2011050393 W JP2011050393 W JP 2011050393W WO 2012095973 A1 WO2012095973 A1 WO 2012095973A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- encrypted
- bit
- search
- encryption
- Prior art date
Links
Images
Classifications
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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
-
- 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
-
- 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/6272—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 by registering files or documents with a third party
-
- 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/2107—File encryption
Definitions
- the present invention relates to a secret search technology.
- the secret search is a technique for searching encrypted data while encrypting it.
- it is attracting attention as a security technique for protecting confidential information from eavesdropping by a server administrator.
- Deterministic encryption is an encryption method having the characteristic that, when the same keyword is encrypted, the same ciphertext can be obtained no matter how many times it is encrypted. Therefore, there is a feature that a search can be performed at high speed by using a speed-up method realized by a conventional database.
- the frequency of appearance of encrypted data can be counted, for example, when a keyword is a surname, the encrypted data
- the contents can be estimated (for example, Non-Patent Document 2).
- probabilistic encryption is an encryption method characterized in that even when the same keyword is encrypted, a different ciphertext is obtained each time the encryption is performed. Therefore, since it is not known whether the keywords are the same even if the encrypted data are simply compared, it is impossible to guess the keywords by counting the appearance frequency, which was a problem with deterministic encryption. It is characterized by high. On the other hand, since even the identity of the keyword is not known, there is a disadvantage that the speed-up method realized in the conventional database cannot be used and the search is slow (for example, Non-Patent Document 1, Non-Patent Document 3, Non-Patent Document). 4, Non-Patent Document 5).
- the basic flow of a secret search is as follows. First, a user (encryptor) who encrypts data creates encrypted data by encrypting the data, and at the same time, associates a keyword for searching the encrypted data with the encrypted data. Of course, since the associated keyword is also information related to data, this is also encrypted to generate an encryption tag, and the encrypted data and the encryption tag are stored in the data center device 401. There is no need for a single encryption tag, and a plurality of tags can be associated. In addition, keywords are not leaked from the encryption tag.
- a user that performs a search selects a keyword that the user wants to search and creates a search query using the keyword and the private key that the user has. Since the search query is a randomized keyword using a secret key, it is difficult to infer the secret key from the search query itself. Then, this search query is sent to the data center device 401 and a search is requested.
- the data center device 401 stores the encrypted data requested to be stored by the user in association with the encryption tag.
- a search query is received from a searcher
- a search is performed for encryption tags stored in the searcher that include the same keyword as the keyword used to generate the search query.
- the data center device 401 performs a special calculation for the secret search, thereby decrypting the encrypted tag and taking out the keyword without checking the keyword of the encrypted tag and the keyword of the search query. Can be judged.
- the encrypted data associated with the encryption tag whose keyword is determined to be the same as the search query is returned to the searcher.
- Non-patent document 2 discloses a secret search method using deterministic encryption. As described above, this is characterized in that when the same keyword is encrypted, the same encryption tag can be obtained no matter how many times the encryption is repeated. Therefore, the identity of the keyword can be determined by comparing the data bits of the encryption tag, and the comparison can be made between the encryption tags, so that the conventional database is realized for speeding up 2 Index information by branch tree can be created. In addition, this method is characterized in that the search query is also generated using a public key, and the comparison between the encryption tag and the search query can be judged based on whether or not the binary data completely matches, so that the search processing can be speeded up. .
- the data center device 401 storing the data can estimate the plaintext by measuring the appearance frequency of the encryption tag.
- the encryption tag “AAAAA” has an appearance frequency of 99% and the encryption tag “BBBBB” has an appearance frequency of 1% as a result of taking statistics of the encryption tag.
- BBBBBB has an appearance frequency of 1% as a result of taking statistics of the encryption tag.
- the frequency of occurrence of error is extremely low, so it is assumed that “AAAAAA” means Info and “BBBBB” means Error. I can do it.
- the deterministic encryption has a risk that the original data can be inferred even if the encryption itself is not broken. Therefore, although there is a merit that the search can be performed at high speed, a secret search based on a probabilistic encryption is often recommended in a system that requires high confidentiality.
- Non-Patent Document 1 is a secret search method using ID-based encryption (hereinafter referred to as IBE) which is one of probabilistic encryptions.
- IBE is an encryption method capable of encrypting data using an ID such as a mail address or name as a public key. Only the user having the user secret key corresponding to the ID can decrypt the encrypted data.
- the user secret key is generated by a PKG (Private-Key Generator) having a master key, and is issued only to an authorized user corresponding to the ID.
- PKG Principal-Key Generator
- IBE having ID secrecy that the ID used for encryption is not known from the encrypted data is used. Also, because it is a probabilistic cipher, even if the same message is encrypted with the same ID, it will always be a different ciphertext. It also has the feature of not sticking.
- the encryptor generates a random number and then encrypts the random number using ID-based encryption with the keyword as an ID to obtain an encrypted random number.
- the pair of the random number and the encrypted random number is stored in the data center apparatus together with the encrypted data as an encryption tag.
- the searcher generates a user secret key using the search keyword as an ID based on the master key held by the searcher. This user secret key is a secret key that can decrypt the data encrypted using the keyword, and sends this to the data center as a search query to request a search.
- the data center extracts the encrypted random number from the stored encryption tag, decrypts the extracted encrypted random number using the search query (user secret key), and confirms that the random number contained in the encryption tag is correctly decrypted. Check if. If the keyword (ID) used when generating the encrypted random number and the keyword (ID) used when generating the search query (user secret key) are the same, the encrypted random number can be correctly decrypted. From this, it can be seen that the encryption tag and the search query were generated from the same keyword.
- the secret search method based on the stochastic encryption includes the same keyword by comparing one encryption tag with one search query.
- it is a stochastic cipher, it cannot be determined whether or not it has been generated from the same keyword even if the encryption tags are compared. For this reason, it is not possible to create index information using a binary tree that is realized for speeding up in a conventional database, and it is necessary to compare all encryption tags stored as a result with a search query. If this occurs, the search speed becomes very slow.
- Non-Patent Document 3 and Non-Patent Document 5 are systems that make it possible to use conditions such as AND and OR with respect to the system described in Non-Patent Document 1, and enable more flexible search.
- Non-Patent Document 1 it is the same that all stored encryption tags need to be compared with a search query, and there is a problem that the search speed becomes very slow. .
- Non-patent document 4 is a method that enables group sharing of encrypted data by expanding the number of users that can be searched and decrypted to a plurality of users to the method described in non-patent document 1.
- Non-Patent Document 1 it is the same that all stored encryption tags need to be compared with a search query, and there is a problem that the search speed becomes very slow. .
- Patent Document 1 stores a search result of a user as a cache, and when a same keyword is searched after the next time, a mechanism for returning the search result at high speed. is suggesting. This method is effective when searching for the same keyword repeatedly.
- Patent Document 1 can return a search result to a searcher at high speed for a keyword that has been searched once, non-patent document for a keyword that has never been searched. As in problem 1, it is necessary to search all tags stored in the data center. Therefore, there is a problem that it takes a long time to obtain a search result when a search keyword is a keyword specified for the first time in a database storing a huge number of tags.
- the main object of the present invention is to solve the above-described problems.
- a secret search using probabilistic encryption even if a keyword has not been searched, the encrypted data search process is performed.
- the object is to realize a configuration that can be performed safely at high speed.
- the data processing apparatus Connected to a data storage device that stores a plurality of encrypted data and tag data that is associated with each encrypted data and that is collated when searching for the encrypted data;
- a keyword designating unit for designating a keyword of data to be stored to be stored in the data storage device as a storage keyword;
- a permission bit position designation unit that designates a bit position that permits disclosure of a bit value to the data storage device as a permission bit position;
- An index derivation bit string generation unit for generating a predetermined bit string as a storage index derivation bit string from the storage keyword in a predetermined generation procedure;
- a bit value of the permission bit position in the storage index derivation bit string is disclosed to the data storage device, and a bit value other than the permission bit position in the storage index derivation bit string is concealed to the data storage device.
- the storage index value that the data storage device attaches to the tag data when storing the tag data associated with the encrypted data of the storage target data is sent to the data storage device in the permission in the storage index derivation bit string.
- a concealment processing unit derived from the disclosed bit value of the bit position is sent to the data storage device in the permission in the storage index derivation bit string.
- the bit value at the permission bit position in the storage index derivation bit string generated from the storage keyword is disclosed to the data storage device, and the storage index is given to the tag data when tag data is stored in the data storage device.
- the value can be derived from the disclosed bit value.
- the data storage device can store the tag data with a storage index value, and can search the encrypted data at high speed using the storage index value even for keywords that have never been searched. can do.
- the bit values other than the permission bit position are concealed, the amount of information leaked to the data storage device regarding the storage keyword can be limited.
- FIG. 3 is a diagram illustrating a configuration example of a confidential search system according to the first embodiment.
- FIG. 3 is a diagram showing a configuration example of a key management server apparatus according to the first embodiment.
- FIG. 3 shows a configuration example of an access terminal apparatus according to the first embodiment.
- FIG. 3 is a diagram illustrating a configuration example of a data center device according to the first embodiment.
- FIG. 3 is a flowchart showing an example of system initial setting processing according to the first embodiment.
- FIG. 4 is a flowchart showing an example of user secret key issuance processing according to the first embodiment.
- FIG. 3 is a flowchart showing an example of data encryption processing according to the first embodiment.
- FIG. 5 is a flowchart showing an example of encryption tag storage processing according to the first embodiment.
- FIG. 3 is a flowchart illustrating an example of encrypted data search processing according to the first embodiment.
- FIG. 6 is a flowchart showing an example of an encryption tag acquisition process according to the first embodiment.
- FIG. 3 is a flowchart showing an example of index reconfiguration processing according to the first embodiment.
- FIG. 3 is a diagram showing an example of a tag ID hierarchical structure according to the first embodiment. The figure which shows the example of the grouping information ID hierarchical structure which concerns on Embodiment 1.
- FIG. The figure which shows the example of the decryption person ID hierarchical structure which concerns on Embodiment 1.
- FIG. The figure which shows the example of the user ID information database which concerns on Embodiment 1.
- FIG. FIG. 4 shows an example of tagged encrypted data according to the first embodiment.
- FIG. 4 shows an example of grouping information according to the first embodiment.
- FIG. 4 is a diagram showing an example of stored contents of an encrypted data management unit according to the first embodiment.
- FIG. 4 is a diagram showing an example of stored contents of an index management unit according to the first embodiment.
- FIG. 3 is a diagram illustrating a node configuration example of a binary tree according to the first embodiment.
- FIG. 3 is a diagram illustrating an example of a search query according to the first embodiment.
- FIG. 6 is a diagram illustrating an example of index reconfiguration processing according to the first embodiment.
- FIG. 5 shows a configuration example of an access terminal apparatus according to Embodiment 2.
- FIG. 9 is a flowchart showing an example of data encryption processing according to the second embodiment.
- FIG. 9 is a flowchart showing an example of encryption tag storage processing according to the second embodiment.
- FIG. 9 is a flowchart illustrating an example of encrypted data search processing according to the second embodiment.
- FIG. 9 is a flowchart showing an example of encryption tag acquisition processing according to the second embodiment.
- FIG. 9 is a flowchart showing an example of index reconstruction processing according to the second embodiment.
- FIG. which shows the production
- FIG. The figure which shows the example of a production
- FIG. 1 The figure which shows the example of a production
- Embodiments 1 and 2 describe a mechanism that enables index creation by a data center device by additionally attaching keyword partial information to an encryption tag in a secret search method using probabilistic encryption. To do. Furthermore, in the first and second embodiments, when the number of registered encrypted data increases and the search processing is slowed down, a mechanism for additionally disclosing the keyword partial information is provided, so that Explains the mechanism for speeding up secure search using.
- FIG. 1 is a diagram illustrating a configuration example of the secret search system 100.
- the secret search system 100 includes a key management server device 201, an access terminal device 301 (301a to 301m), and a data center device 401.
- the key management server device 201 and the access terminal device 301 are connected to an in-house LAN (Local Area Network) 102.
- the in-house LAN 102 is connected to the data center device 401 via the network 101.
- the access terminal device 301 is an example of a data processing device
- the data center device 401 is an example of a data storage device.
- the access terminal device 301 may be abbreviated as an access terminal
- the data center device 401 may be abbreviated as a data center.
- the key management server apparatus 201 generates a public parameter shared by all users (users of the access terminal apparatus 301) to perform processing such as encryption, and uses it to issue a user secret key to the user. Generate a master key. In addition, each user's ID (Identifier) is managed, and a user secret key is issued to the user based on the ID.
- the access terminal device 301 is, for example, a PC (Personal Computer) used by corporate users.
- the access terminal device 301 creates storage target data to be stored in the data center device 401, encrypts the generated storage target data, stores the encrypted data in the data center device 401, and stores the encrypted data in the data center device 401.
- the stored encrypted data is searched, and the encrypted data taken out from the data center device 401 is decrypted and edited.
- the data center device 401 is a server device having a large-capacity storage device that stores encrypted data created in a company. Since the data is stored in an encrypted state, the data center device 401 cannot view the contents.
- the network 101 is a communication path that connects the in-house LAN 102 and the data center device 401.
- the Internet is a typical example of the network 101.
- the in-house LAN 102 is a communication path established in the company, and is connected to various servers and personal computers used in the company. In addition, when there are offices in a plurality of buildings, a complicated communication path configuration is formed via a router or a dedicated line.
- the access terminal device 301 generates tag data (hereinafter also simply referred to as a tag) by encrypting a random number using the keyword of the storage target data (an example of the storage keyword) as an encryption key.
- Tag data is data that is collated when searching for encrypted data.
- the access terminal device 301 designates a bit position that permits the disclosure of the bit value to the data center device 401 as the permission bit position.
- the access terminal device 301 performs a predetermined operation on the keyword of the storage target data to generate a predetermined bit string (an example of a storage index derivation bit string).
- the access terminal device 301 performs a concealment process in which the bit value of the permission bit position in the bit string is disclosed to the data center apparatus 401 and the bit value other than the permission bit position in the bit string is concealed in the data center apparatus 401.
- the access terminal device 301 stores an index value (an example of a storage index value) that the data center device 401 attaches to the tag data when the tag data associated with the encrypted data of the storage target data is stored in the data center device 401. Derived from the disclosed bit values of allowed bit positions in the bit string. Note that this index value indicates that tag data to be collated with the trap door (encrypted search keyword) included in the search request in the data center device 401 when a search request is made from any of the access terminal devices 301. Used to identify.
- the concealment process for the bit string is performed by providing a decryption key from the access terminal apparatus 301 to the data center apparatus 401 and encrypting the bit string.
- the access terminal device 301 generates, for each permission bit position, a group determination key (an example of a permission bit decryption key) that is a decryption key used to decrypt the encrypted bit at the permission bit position, and uses the group determination key as a data center device. 401.
- a group determination key an example of a permission bit decryption key
- the permission bit position is designated in 1-bit units, for example, when the access terminal device 301 discloses the bit value of the upper 3 bits to the data center device 401, three bits are associated with each bit.
- Group determination keys are sequentially transmitted to the data center device 401.
- the access terminal device 301 encrypts the bit string generated from the keyword of the storage target data. More specifically, the access terminal device 301 encrypts the bit string by an encryption method in which the encrypted bit at the permission bit position is decrypted by the group determination key, and the encrypted bits other than the permission bit position are not decrypted by the group determination key. Turn into.
- the encrypted bit string is called grouping information.
- the access terminal device 301 transmits the encrypted data, tag data, and grouping information of the storage target data to the data center device 401.
- the encrypted data is stored in association with the tag data.
- the data center device 401 decrypts the encrypted bit at the permission bit position of the grouping information using the group determination key, generates an index value from the bit value obtained by the decryption, and generates the tag data and the index value. Store in association.
- group in the group determination key and grouping information means a group of tag data. For example, if the permission bit position is the upper 3 bits and the index value obtained from the decoding of the upper 3 bits of the grouping information of a certain tag data is “011”, the tag data has an index value of “011”. Are classified into the same group as other tag data obtained.
- the access terminal device 301 When searching for encrypted data stored in the data center device 401, the access terminal device 301 encrypts the search target keyword (example of search keyword) to generate a trapdoor, A predetermined bit string (an example of a search index derivation bit string) is generated from the search keyword in the same generation procedure as that of the bit string when storing the digitized data. Further, the access terminal device 301 encrypts the bit string using an encryption method in which the encrypted bit at the permission bit position is decrypted by the group determination key, and the encrypted bit other than the permission bit position is not decrypted by the group determination key. Generate information.
- the access terminal device 301 transmits a search query (an example of a search request) including the trap door and grouping information to the data center device 401.
- a search query an example of a search request
- the access terminal device 301 that registers encrypted data in the data center device 401 and the access terminal device 301 that requests the data center device 401 to search for encrypted data may not match.
- the data center device 401 When the data center device 401 receives the search query from the access terminal device 301, the data center device 401 decrypts the encrypted bit at the permission bit position of the grouping information included in the search query with the group determination key, and the index value (search Example of index value is derived. Next, the data center device 401 selects tag data to which the same index value as the derived index value is attached as a target for collation with the trapdoor. For example, when the grouping information is decrypted with the group determination key and an index value of “011” is obtained, tag data stored with the index value “011” is selected.
- the data center device 401 identifies tag data generated with the same keyword as the keyword used to generate the trap door, and is associated with the identified tag data.
- the encrypted data is extracted, and the extracted encrypted data is transmitted to the access terminal device 301 that is the transmission source of the search request.
- the above is an outline of the operation in the secure search system 100 according to the present embodiment.
- the internal configuration of the key management server device 201, the access terminal device 301, and the data center device 401 will be described. Details of the operation will be described.
- FIG. 2 is a functional block diagram showing the configuration of the key management server apparatus 201.
- the key management server apparatus 201 includes a master key generation unit 202, a key storage unit 203, a user secret key generation unit 204, a PKG side data transmission / reception unit 205, and a user ID information management unit 206.
- the master key generation unit 202 Based on the key length used in the system, the master key generation unit 202 generates a public parameter commonly used by all users who use the confidential search, and also generates a master key from which the user secret key is generated. To do.
- the key storage unit 203 stores the master key and public parameters generated by the master key generation unit 202 in a storage device.
- the user secret key generation unit 204 generates a user secret key from the master key using an ID uniquely assigned to the user, and sends the user secret key to the user.
- the PKG side data transmission / reception unit 205 is a communication function for sending public parameters to the access terminal device 301 and the data center device 401 used by the user.
- the PKG side data transmitting / receiving unit 205 is also used to transmit the user secret key to the access terminal apparatus 301.
- the PKG side data transmitting / receiving unit 205 may transmit the user ID to the access terminal device 301 in response to a user request in order to disclose the user ID information to the users in the company.
- the user ID information management unit 206 manages attribute information such as name, affiliation, login ID, and mail address as a user ID in a storage device. Further, the user ID information management unit 206 manages not only the current attribute information but also past attribute information as a history.
- FIG. 3 is a functional block diagram showing the configuration of the access terminal device 301.
- the access terminal device 301 includes a data encryption unit 302, an encryption tag generation unit 303, a tagged encrypted data generation unit 304, a user secret key management unit 305, a search query generation unit 306, a data decryption unit 307, and a group determination key generation.
- Unit 308 terminal-side data transmission / reception unit 309, and grouping information generation unit 310.
- the data encryption unit 302 receives data to be stored and a user ID stored in the data center device 401 from a user or an application, encrypts the data to be stored using ID-based encryption, and obtains encrypted data of the data to be stored. .
- the data encryption unit 302 extracts a plurality of keywords (storage keywords) to be used later in the search from the storage target data, and receives keywords associated with the data from the user.
- the data encryption unit 302 designates the keyword (storage keyword) of the storage target data by extracting the keyword from the storage target data or receiving the keyword from the user, and corresponds to an example of the keyword specifying unit.
- the encryption tag generation unit 303 generates a plurality of tags (tag data) from the plurality of keywords associated with the storage target data by the data encryption unit 302, the user ID, and the random number generated by itself. Further, the grouping information generated by the grouping information generation unit 310 (to be described later) and the tag are combined to generate a plurality of encryption tags.
- the tagged encrypted data generation unit 304 combines the encrypted data generated by the data encryption unit 302 and the plurality of encryption tags generated by the encryption tag generation unit 303 to generate tagged encrypted data, Request storage to the data center device 401.
- the user secret key management unit 305 stores the user secret key issued individually to the user and the public parameters in the storage device.
- the search query generation unit 306 generates a trap door by encrypting the user secret key and public parameters stored by the user secret key management unit 305 and the keyword to be searched specified by the user. The generated grouping information and the trap door are combined to generate a search query, which is sent to the data center device 401.
- the search query generation unit 306 specifies a keyword (search keyword) that causes the data center device 401 to search for encrypted data in accordance with a user instruction, and corresponds to an example of a keyword specification unit.
- the data decryption unit 307 decrypts the encrypted data received from the data center device 401 by using the user secret key stored in the user secret key management unit 305 and the public parameter.
- the group determination key generation unit 308 uses a user secret key stored in the user secret key management unit 305 and a public parameter to generate a group determination key (permission bit) used to generate an index value for speeding up the search.
- An example of a decryption key is generated and sent to the data center apparatus 401 via a terminal-side data transmission / reception unit 309 described later. More specifically, the group determination key generation unit 308 designates a permission bit position that permits the data center device 401 to disclose a bit value in the grouping information and decrypts the encrypted bit at the permission bit position.
- a group determination key that is a decryption key is generated.
- the generated group determination key is transmitted to the data center device 401 by a terminal-side data transmission / reception unit 309, which will be described later, and the data center device 401 decrypts the encrypted bit at the permission bit position of the grouping information using the group determination key. .
- the group determination key generation unit 308 specifies the permission bit position, which corresponds to an example of the permission bit position specification unit.
- the group determination key generation unit 308 provides the group determination key to the data center device 401, thereby disclosing the bit value of the permission bit position of the grouping information to the data center device 401 and converting it into the encrypted data of the storage target data.
- an index value (an example of a storage index value) that the data center device 401 attaches to the tag data when storing the associated tag data is stored in the data center device 401 from the disclosed bit value of the permission bit position of the grouping information.
- the group determination key generation unit 308 corresponds to an example of a concealment processing unit together with a grouping information generation unit 310 described later.
- the permission bit position is also expressed as a hierarchy below. For example, the upper nth bit position is denoted as the nth layer.
- the terminal-side data transmission / reception unit 309 receives public parameters and user secret keys from the key management server apparatus 201.
- the terminal-side data transmission / reception unit 309 transmits a group determination key.
- the terminal-side data transmission / reception unit 309 transmits the created encrypted data with tag (an example of a storage request) to the data center device 401.
- the terminal-side data transmission / reception unit 309 sends a search query (an example of a search request) to the data center device 401 and receives encrypted data as a search result from the data center device 401.
- the terminal-side data transmission / reception unit 309 is an example of a permission bit decryption key transmission unit, a storage request transmission unit, and a search request transmission unit.
- the grouping information generation unit 310 generates grouping information used for generating an index value in the data center device 401. As described above, this index value is used to specify tag data to be collated with the trap door included in the search request in the data center device 401 when there is a search request from any of the access terminal devices 301. It is done.
- the grouping information generation unit 310 performs a predetermined operation on the keywords of the storage target data to generate a predetermined bit string (an example of a storage index derivation bit string). Then, the grouping information generation unit 310 encrypts the bit string by an encryption method in which the encrypted bits at the permission bit positions are decrypted by the group determination key, and the encrypted bits other than the permission bit positions are not decrypted by the group determination key.
- the encrypted bit string becomes grouping information.
- the grouping information generation unit 310 generates a bit string (an example of a storage index derivation bit string) from the keyword of the storage target data, and performs a process of concealing the bit string by encryption, and the index derivation bit string generation unit And further corresponds to an example of a concealment processing unit together with the group determination key generation unit 308 described above.
- the grouping information generation unit 310 generates grouping information not only when storing the storage target data but also when searching for encrypted data.
- the procedure for generating the grouping information at the time of retrieving the encrypted data is the same as the grouping information at the time of storing the data to be stored.
- the grouping information at the time of storage of the storage target data is generated from the keyword of the storage target data (storage keyword), while the grouping information at the time of data search is the keyword (search for the search specified by the user)
- the only difference is that they are generated from keywords.
- FIG. 4 is a functional block diagram showing the configuration of the data center device 401.
- the data center apparatus 401 includes a center-side data transmission / reception unit 402, a storage request processing unit 403, an encrypted data management unit 404, an index management unit 405, and a search processing unit 406.
- the center side data transmitting / receiving unit 402 receives the group determination key from the access terminal device 301. Further, the center side data transmitting / receiving unit 402 receives the encrypted data with tag from the access terminal device 301. The center-side data transmission / reception unit 402 receives a search query from the access terminal device 301 and transmits encrypted data as a response. Further, the center-side data transmission / reception unit 402 receives from the key management server apparatus 201 via a public parameter. The center side data transmitting / receiving unit 402 corresponds to an example of a storage request receiving unit and a search request receiving unit.
- the storage request processing unit 403 analyzes the received encrypted data with tag, decomposes it into encrypted data and a plurality of encrypted tags, passes the encrypted data to the encrypted data management unit 404, and encrypts the encrypted tag. By passing the data to the index management unit 405 in association with the data, the tagged encrypted data is stored.
- the encrypted data management unit 404 stores the encrypted data received from the access terminal device 301, the public parameters received from the key management server device 201, and the like in the storage device.
- the encrypted data management unit 404 stores the encrypted data received from the access terminal device 301 in association with the tag.
- the index management unit 405 stores the group determination key received from the access terminal device 301. Therefore, the index management unit 405 corresponds to an example of a permission bit decryption key management unit. Also, the index management unit 405 generates an index value with a data structure suitable for searching for an encryption tag received from the access terminal device 301, and stores the encryption tag in association with the index value. More specifically, the index management unit 405 decrypts the encrypted bit at the permission bit position in the grouping information using the group determination key, derives the index value from the bit value obtained by the decryption, and derives the derived index The value and the encryption tag are stored in association with each other.
- the index management unit 405 uses the group determination key to calculate the encryption bit at the permission bit position in the grouping information included in the search query. Decryption, an index value is derived from the bit value obtained by the decryption, and an encryption tag associated with the same index value as the derived index value is extracted. In addition, when a new group determination key is received, the index management unit 405 reconstructs the index information that stores the encryption tag.
- the search processing unit 406 performs a matching process between the search query received from the access terminal device 301 and the tag in the encrypted tag extracted from the index management unit 405. The search processing unit 406 determines whether or not the keyword included in the tag matches the keyword included in the search query by the matching process. Thereafter, the search processing unit 406 acquires the encrypted data associated with the tag hit in the search from the encrypted data management unit 404 and returns it to the access terminal device 301 via the center-side data transmission / reception unit 402.
- the system initial setting is a process performed by the key management server apparatus 201 and is performed once before using the secret search system 100.
- the master key generation unit 202 determines the maximum tree hierarchy number L (L is an arbitrary integer) of index values generated using grouping information.
- L is an arbitrary integer
- the conventional method requires a search time proportional to M, but using an index value reduces the search time to be proportional to M / 2 ⁇ L. I can do things. Therefore, the maximum tree hierarchy number L is determined in consideration of the maximum number of data to be stored, the number of keywords associated with the data, the processing time of the existing secret search method and the existing encryption method, and the response time required at the time of search.
- the maximum tree hierarchy number L corresponds to the maximum number of permission bit positions.
- step S502 the master key generation unit 202, the existing secret search method based on the probabilistic encryption used in the secret search system 100, the existing encryption method A for creating grouping information, and data
- the existing encryption method B for encrypting the main body is determined.
- the group shared secret search method described in Non-Patent Document 4 is used as the existing secret search method
- the hierarchical ID-based encryption is used as the existing encryption method A used for grouping information generation
- data It is used as the existing encryption method B used for encrypting the main body.
- the utilization method of the existing secret search system is determined.
- the master key generation unit 202 determines the tag ID hierarchy number and the tag ID hierarchy structure.
- the master key generation unit 202 includes a group name field in which tag IDs are configured in three layers and store group names of departments and sections to which searchable users belong. , A user name column for storing names, etc., a keyword column for setting keywords associated with data, and the like are determined. Then, the master key generation unit 202 determines a method of using the existing encryption method A for generating grouping information. In the existing encryption method A used in the present embodiment, the master key generation unit 202 determines the number of grouping information ID hierarchies and the grouping information ID hierarchical structure. For example, it is determined to use a grouping information ID hierarchical structure as shown in FIG.
- the group name field and the user name field are the same as the group name field and the user name field of the tag ID hierarchical structure of FIG. 12, except that a hierarchical number is stored instead of the keyword. .
- a grouping information generation key corresponding to each layer of the tree hierarchy is generated.
- the grouping information generation key is an encryption key used when the access terminal apparatus 301 generates grouping information.
- the master key generation unit 202 determines a method of using the existing encryption method B for encrypting the data body.
- the number of decryption person ID hierarchies and the decryption person ID hierarchical structure are determined.
- the decryptor ID hierarchical structure as shown in FIG. 14 is determined.
- the group name field and the user name field are the same as the group name field and the user name field of the tag ID hierarchical structure of FIG.
- the user ID information management unit 206 constructs a user ID information database that stores user IDs and attribute information.
- the user ID information database stores information necessary for creating a user secret key and information necessary for specifying the partner group name / user name when the access terminal device 301 encrypts data. It is what. For example, as shown in FIG. 15, the user ID information database stores a department name that is a group ID, a name that is a user ID, affiliation information, position information, a period of the position / position, and the like.
- the user ID information database may store not only the latest situation but also all past histories.
- the master key generation unit 202 executes a master key generation algorithm of an existing secret search method used in the system, and generates a secret search master key and a secret search public parameter.
- the master key generation unit 202 executes a master key generation algorithm of the existing encryption method A to generate a grouping information master key and a grouping information public parameter, and generates a master key of the existing encryption method B
- An algorithm is executed to generate an encryption master key and an encryption public parameter.
- the secret search master key, the grouping information master key, and the encryption master key are grouped together as a master key, the secret search public parameter, the grouping information public parameter, and the encryption public parameter are grouped into public parameters. I will call it.
- step S505 the key storage unit 203 stores the master key and public parameters generated by the master key generation unit 202 in a storage device.
- step S506 the PKG side data transmitting / receiving unit 205 discloses the public parameters stored in the key storage unit 203 to the access terminal device 301.
- the setup of the secret search system is completed. Note that the content of the user ID information database generated in S503 is maintained each time a user changes, joins, or leaves the company during system operation.
- the user secret key issuance processing is mainly performed by the key management server device 201 and the access terminal device 301, and is performed when a new user is added or when the group name to which the user belongs is changed. .
- step S601 the user secret key generation unit 204 of the key management server apparatus 201 acquires a group name and a user name from the user ID information database held by the user ID information management unit 206.
- the user secret key generation unit 204 uses a secret search user secret key used to generate a search query, a grouping information user secret key used to generate a group determination key, and encryption.
- An encryption user secret key used for decrypting data is generated.
- it is necessary to specify a tag ID hierarchical structure when generating a secret search user secret key but the group name acquired in S601 is set in the group name column, and the user name is also set as the user name. Then, by specifying the keyword as an element that can be delegated (an element that can be specified by the access terminal device 301), a secret search user secret key can be generated.
- the group name acquired in S601 is displayed in the group name column, and the user name is also set as the user name.
- the name By setting the name as a name and specifying the hierarchy number as an element that can be delegated (an element that can be specified by the access terminal device 301), a user secret key for grouping information can be generated.
- a decryptor ID hierarchical structure when generating an encryption user secret key with the existing encryption method B.
- the group name acquired in S601 is entered in the group name column, and the user name is also entered. By specifying the user name, an encryption user secret key can be generated.
- the secret search user secret key, grouping information user secret key, and encryption user secret key generated above are collectively referred to as a user secret key.
- step S603 the PKG side data transmitting / receiving unit 205 sends the user private key generated in S602 and the public parameters stored in the key storage unit 203 to the access terminal device 301.
- step S604 the access terminal apparatus 301 stores the user secret key and public parameters received from the key management server apparatus 201 in step S603 in the user secret key management unit 305.
- the key management server apparatus 201 can issue a user secret key to the user who operates the access terminal apparatus 301.
- the data encryption processing is mainly performed by the access terminal device 301 and the data center device 401, and is performed when the storage target data is encrypted and stored in the data center device 401.
- the access terminal device 301 receives a group name and a user name (accessed to the storage target data) of a user who can search and decrypt the encrypted data of the storage target data from the user who operates the access terminal device 301.
- An example of user information of a possible user is received and input to the data encryption unit 302, the encryption tag generation unit 303, and the grouping information generation unit 310.
- the existing secret search method, the existing encryption method A, and the existing encryption method B used in the present embodiment can also receive a wild card meaning that anyone can be used as a group name or a user name.
- the data encryption unit 302 receives storage target data from the user and determines a keyword to be associated with the storage target data.
- the keyword may be automatically extracted from the storage target data, or may be received from the user.
- the number of keywords is not necessarily one, and a plurality of keywords may be associated.
- step S703 the data encryption unit 302 encrypts the storage target data received in S702 using the group name and user name received in S701. Specifically, the data encryption unit 302 randomly generates a session key, and encrypts the storage target data using the session key using a common key encryption such as AES (Advanced Encryption Standard) or Camellia (registered trademark). Generate the encrypted data body. Next, the data encryption unit 302 designates the group name and user name received in S701 as the group name and user name of the decryptor ID hierarchical structure, and uses this as the public key for encryption. The session key is encrypted using B, and an encrypted session key is generated. Then, the data encryption unit 302 generates encrypted data by combining the above two encryption results. The data structure of the generated encrypted data is shown in FIG. If a plurality of group names and user names are received in S701, it is necessary to generate encrypted session keys for all combinations of group names and user names.
- AES Advanced Encryption Standard
- Camellia registered trademark
- the grouping information generation unit 310 receives a keyword (keyword of data to be stored) for generating an encryption tag, and generates grouping information for each keyword. Specifically, the grouping information generation unit 310 designates the group name and user name received in S701 as the group name and user name of the grouping information ID hierarchical structure (FIG. 13), and sets the hierarchy number to 1. To L (maximum number of tree hierarchies of index information determined in S501 in FIG. 5) is set as a character string, thereby creating L grouping information generation keys.
- L maximum number of tree hierarchies of index information determined in S501 in FIG. 5
- the grouping information ID hierarchical structure in which 1 is set in the hierarchy number serves as the grouping information generation key in the first hierarchy
- the grouping information ID hierarchical structure in which L is set in the hierarchy number is the grouping information in the Lth hierarchy. It becomes a generation key.
- the grouping information generation unit 310 generates an L-bit bit string based on the keyword. This can be created, for example, by generating a hash value of a keyword using a hash function such as SHA-2 and extracting an arbitrary L bit therefrom. For this reason, L bits may be selected continuously in the hash value. For example, L bits may be selected non-sequentially, such as the first bit, third bit, sixth bit, and eleventh bit of the hash value. Also good.
- the grouping information generation unit 310 creates encrypted first information by encrypting the first extracted bit string using the first layer grouping information generation key with the existing encryption method A, and Is encrypted with the existing encryption method A using the second layer grouping information generation key to create the encrypted second information, all of the Lth items are encrypted in order, and these are grouped together with the grouping information.
- the grouping information generation unit 310 uses the L grouping information generation keys reflecting the user information of the users who are permitted to access the storage target data, and uses the L bits of the hash value of the keyword. Encrypt and generate grouping information.
- the structure of the generated grouping information is shown in FIG. If a plurality of group names and user names are received in S701, grouping information is generated for all groups of group names and user names.
- step S705 the encryption tag generation unit 303 encrypts the keyword and generates an encryption tag.
- the encryption tag generation unit 303 designates the group name and user name received in S701 as the group name and user name of the tag ID hierarchical structure, and the keyword determined in S702 in the keyword column. A random number is encrypted using the tag ID hierarchical structure as an encryption key, and a tag is created by an existing secret search method. Then, the encryption tag generation unit 303 combines this tag and the grouping information created from the same keyword in S704 to form an encryption tag.
- FIG. 16 shows the configuration of the generated encryption tag. Since the above is processing for one keyword, it is performed for all keywords associated with data. If a plurality of group names and user names are received in S701, encryption tags are generated for all combinations of group names and user names.
- step S706 the tagged encrypted data generation unit 304 combines the encrypted data generated in S703 and the encrypted tag generated in S705 to generate tagged encrypted data, and the terminal-side data
- the encrypted data with tag is sent to the data center device 401 as a storage request via the transmission / reception unit 309.
- the group name and the user name received in S701 are sent together in order to facilitate storage of the tagged encrypted data in the data center device 401.
- FIG. 16 shows the encrypted data with tag in which the group name and the user name are included in the encrypted data with tag.
- step S707 the storage request processing unit 403 of the data center device 401 disassembles the encrypted data with tag received from the access terminal device 301, and extracts the encrypted data and a plurality of encrypted tags. Then, the encrypted data management unit 404 stores the encrypted data. Note that the encrypted data management unit 404 stores the encrypted data separately for each group name and user name included in the tagged encrypted data in S706, and assigns a management number to the stored encrypted data. Then, the encrypted data can be uniquely identified from the management number later. When the encrypted data is associated with a plurality of group names and user names, the encrypted data is stored in association with each group name and user name.
- FIG. 18 shows an example of storage of encrypted data.
- the encrypted data and management number with the group name “General Affairs Department” and the user name “*” (wild card) are managed together, and the group name is “Development Department” and the user name is The encrypted data that is “*” and the management number are managed together.
- the encrypted data body is stored in association with the management number 000002, and the management number 000002 is referred to as the encrypted data in the management number 100002. To store the correct pointer.
- step S708 the storage request processing unit 403 sends the plurality of encryption tags acquired in S706 to the index management unit 405 together with the management number of the corresponding encrypted data.
- the index management unit 405 stores the received encryption tag and management number separately for each group name and user name included in the tagged encrypted data in S706.
- the group determination key for the first layer of the group determination key set is a decryption key for decrypting the encrypted first information (FIG. 17) in the grouping information, that is, permission This is a decryption key for decrypting the first encrypted bit at the bit position.
- the group determination key for the second layer of the group determination key set is a decryption key for decrypting the encrypted second information (FIG. 17) in the grouping information, that is, the second bit at the permission bit position.
- the node in the index information is an index value associated with the encryption tag (tag + grouping information). For example, in the node “01”, the bit value obtained by decrypting the encrypted first information of the grouping information is “0”, and the bit value obtained by decrypting the encrypted second information is “1”. ", Indicating that" 01 "was obtained by concatenating these. That is, in the example of FIG. 19, the access terminal device 301 is permitted to disclose the bit values only in the upper two bit positions, and only the two group determination keys are provided to the data center device 401. Therefore, the index value becomes 2 bits.
- step S801 the index management unit 405 searches for a plurality of index information managed for each group name and user name, and access is performed using the group name and user name received in S706.
- Index information (including index information using a wild card) corresponding to possible encrypted data is specified, and the group determination key received from the access terminal device 301 so far is extracted.
- one group determination key is assigned for each layer (per permission bit position), and since it is disclosed from the access terminal device 301 one by one in order from the first layer as will be described later, the total number is here. Assume that L ′ (L ′ ⁇ L) group determination keys are stored.
- the generation of the group determination key by the access terminal device 301, the sending of the group determination key from the access terminal device 301 to the data center device 401, and the storage of the group determination key in the data center device 401 are the flows shown in FIGS.
- L ′ group determination keys have already been generated by the access terminal device 301 and stored in the index management unit 405 of the data center device 401. Details of generation of the group determination key by the access terminal device 301 and storage of the group determination key in the data center device 401 will be described later with reference to FIG.
- step S802 the index management unit 405 extracts one unencrypted encryption tag from the plurality of encryption tags received in S707, and decomposes it into a tag and grouping information.
- step S803 the index management unit 405 decomposes the grouping information and extracts from the encrypted first information to the encrypted Lth information (FIG. 17). Then, the encrypted first information to the encrypted L ′ information are decrypted using the first layer group determination key to the L′ th layer group determination key, and the first information to the Lth information are decrypted. 'Get information.
- step S804 the index management unit 405 determines the first information from the 0th layer node to the 1st layer node based on the first information to the L′ th information extracted in S803.
- the second information is used as information for determining the second layer node from the first layer node.
- the index management unit 405 identifies a corresponding node from the binary tree corresponding to the group name and user name received in S705, associates the node with the encryption tag extracted in S802,
- the control number received is stored. For example, as shown in FIG. 20, the left and right child nodes are extracted depending on whether the first information is 0 or 1 starting from the root node (N (R)).
- the left and right child nodes are extracted depending on whether the second information is 0 or 1. Implement using all the information that holds this. Note that “1” in the arrow on the right side of FIG. 20 indicates that the node of the first layer is selected by the first information, and “2” in the arrow indicates the second by the second information. It shows that a layer node is selected. For example, when the first information is 0 and the second information is 1, the node 01 (N (01)) shown in FIG. 20 is detected as the corresponding node, and the encryption tag and the management number are stored in association with the node 01. . In FIG.
- step S805 the index management unit 405 determines whether there remains an encryption tag that has not been subjected to the processing from S802 to S804 among the plurality of encryption tags received in S707. . If it remains, the process returns to S802, and if not, the process ends.
- the access terminal device 301 encrypts the data and requests the data center device 401 to store it, and the data center device 401 can store the received encrypted data with tag.
- the encrypted data search processing is mainly performed by the access terminal device 301 and the data center device 401, and is performed when the encrypted data stored in the data center device 401 is acquired.
- step S ⁇ b> 901 the search query generation unit 306 of the access terminal apparatus 301 receives a keyword to be searched from a user who operates the access terminal apparatus 301. Further, the search query generation unit 306 notifies the grouped information generation unit 310 of the received search keyword.
- step S ⁇ b> 902 the grouping information generation unit 310 generates grouping information from the search keyword notified from the search query generation unit 306.
- This process is the same as the process of step S704. That is, the grouping information generation unit 310 inputs the group name and user name of the access terminal device 301 (the group name of the group to which the user who wants to search the encrypted data belongs and the user name of the user) and inputs the group By specifying the name and user name as the group name and user name of the grouping information ID hierarchical structure (FIG. 13), and setting the number from 1 to L as a character string to the layer number, L pieces of grouping information Create a generated key.
- the grouping information generation unit 310 generates an L-bit bit string from the search keyword using, for example, a hash function such as SHA-2. Note that the extraction of L bits from the hash value extracts the hash value at the same bit position as when the encrypted data was stored.
- the grouping information generation unit 310 creates encrypted first information by encrypting the first extracted bit string using the first layer grouping information generation key with the existing encryption method A, and Is encrypted with the existing encryption method A using the second layer grouping information generation key to create the encrypted second information, all of the Lth items are encrypted in order, and these are grouped together with the grouping information. To do.
- the search query generation unit 306 generates a search query using the search keyword received in S901 and the user secret key stored in the user secret key management unit 305. Specifically, the search query generation function of the existing secret search method is executed by using the secret search user secret key and the search keyword as input to generate a trapdoor. Next, the search query generation unit 306 combines the grouping information generated in S902 and the trap door to form a search query. The configuration of the generated search query is shown in FIG. Then, the search query generation unit 306 sends the generated search query to the data center device 401 via the terminal-side data transmission / reception unit 309. At this time, the user's own group name and user name are also sent.
- step S904 the search processing unit 406 of the data center device 401 extracts the trap door and grouping information from the search query received from the access terminal device 301 via the center side data transmission / reception unit 402, and the index information ( All encryption tags that are search candidates are acquired from FIG.
- the search processing unit 406 of the data center device 401 extracts the trap door and grouping information from the search query received from the access terminal device 301 via the center side data transmission / reception unit 402, and the index information ( All encryption tags that are search candidates are acquired from FIG.
- the acquisition process of the encryption tag in the index management unit 405 is complicated, the details will be described with reference to FIG.
- step S1001 the index management unit 405 searches a plurality of index information managed for each group name and user name, and converts the encrypted data that can be accessed with the group name and user name received together with the search query in S903. Identify the corresponding index information. Then, unprocessed index information is specified as index information to be processed.
- Step S1002 and step 1003 are the same as step S801 and step S803, respectively.
- the index management unit 405 extracts the first grouped information to the encrypted Lth information (FIG. 17) by decomposing the grouping information. Then, the encrypted first information to the encrypted L ′ information are decrypted using the first layer group determination key to the L′ th layer group determination key, and the first information to the Lth information are decrypted. 'Get information.
- step S1004 the index management unit 405 uses the procedure shown in step S804 to identify the node corresponding to the grouping information extracted in S903 from the binary tree and process it there. Set a pointer to indicate that it is inside. Then, all pairs of encryption tags and management numbers associated with the node pointed to by the pointer are extracted and sent to the search processing unit 406. That is, the index management unit 405 identifies and identifies the node number having the same value as the value (index value) obtained from the bit value indicated by the L ′ information from the first information in the index information identified in S1001. All the pairs of encryption tags and management numbers associated with the node numbers are extracted and sent to the search processing unit 406.
- index information of group name: general affairs department, user name: * is selected in S1001, and If the index value obtained by decrypting the grouping information is “01”, the combination of the encryption tag “2j0” #% Dq ”and the management number“ 000001 ”, the encryption tag“ 3ui8 $ SE ⁇ ” A set with the management number “000002” is extracted.
- step S1005 the index management unit 405 confirms whether a parent node exists for the node currently pointed to by the pointer. If it exists, the process proceeds to step S1006; otherwise, the process proceeds to step S1007. For example, if the pointer points to the root node, there is no parent node, so the process proceeds to step S1007.
- S1005 and S1006 are processes for dealing with a case where a search query is received during an index reconfiguration process described later with reference to FIG.
- step S1006 the index management unit 405 moves the pointer to the parent node of the node pointed to by the current pointer, retrieves all the pairs of encryption tags and management numbers associated with the node pointed to by the pointer, and searches them. It is sent to the processing unit 406. For example, when the pointer points to the node 01 (N (01)) in FIG. 20, the pair of the encryption tag and the management number of the parent node, node 0 (N (0)), is extracted. Thereafter, the process proceeds to S1005.
- step S1007 the index management unit 405 includes index information that has not yet undergone the processing from steps S1002 to S1006 among the index information corresponding to the encrypted data that can be accessed specified in S1001. If it exists, the process proceeds to step S1001, and if it does not exist, the process ends.
- step S905 the search processing unit 406 extracts the tag from the encrypted tag acquired in S904, and extracts the keyword included in the tag and the keyword included in the tag using the determination process of the existing secret search technology. It is determined whether or not the keywords included in the trap door are the same.
- the determination process of the existing secret search technology can be performed only for one tag and one trap door, so this is performed for all the encrypted tags acquired in S904.
- the search processing unit 406 specifies the management number associated with the encryption tag determined to be a match as a result of the determination process.
- step S906 the search processing unit 406 acquires all the encrypted data corresponding to the management number identified in S905 from the encrypted data management unit 404, and accesses the access terminal via the center side data transmission / reception unit 402. Send to device 301.
- step S907 the data decryption unit 307 of the access terminal apparatus 301 stores the encrypted data received from the data center apparatus 401 in S906 in the user secret key management unit 305 for encryption. Is decrypted using the decryption process of the existing encryption method. This is performed for all encrypted data.
- the access terminal device 301 can receive a search keyword from the user, acquire encrypted data including the keyword from the data center device 401, decrypt the acquired encrypted data, and browse the data.
- the index reconfiguration process is a process mainly performed by the access terminal device 301 and the data center device 401.
- step S1101 the group determination key generation unit 308 of the access terminal device 301 receives a group name and a user name as information for specifying index information to be reconfigured from the user. Since the data center device 401 manages index information for each group name and user name to which the encrypted data is disclosed, the index information to be reconfigured is uniquely identified using the group name and user name received here. Can be specified.
- step S1102 the group determination key generation unit 308 extracts from the user secret key management unit 305 the user secret key for grouping information and the number of hierarchies of already issued group determination keys. Then, the group determination key generation unit 308 specifies the hierarchy L ′ + 1 of the group determination key to be newly issued. That is, the group determination key generation unit 308 specifies the L ′ + 1th bit which is a new permission bit position. Since the grouping information user private key is issued in a state where the group name and user name of the grouping information ID hierarchical structure (FIG.
- the group determination key generation unit 308 newly adds the layer number L By specifying “+1” and executing the key delegation function of the existing encryption method, a group determination key corresponding to the layer L ′ + 1 is generated.
- the group determination key generation unit 308 then transmits the generated group determination key together with the group name and user name associated with the index information to be reconfigured received in S1101 via the terminal-side data transmission / reception unit 309. 401.
- the group determination key generation unit 308 generates a group determination key corresponding to the new hierarchy L ′ + 1 and sends it to the data center device 401 by designating a new permission bit position and encrypting the new permission bit position. This is equivalent to permitting decoding of the digitized bits.
- step S1103 the index management unit 405 of the data center device 401 identifies the corresponding index information and group determination key set from the group name and user name received in S1102, and receives the received hierarchy L ′ + 1. Are stored in the group determination key set together with the corresponding layer number L ′ + 1.
- step S1104 the index management unit 405 takes out the index information specified in S1103, and selects one node from among the nodes of the lowest layer (hierarchy number L ′).
- step S1105 the index management unit 405 extracts the encryption tag and management number associated with the L′ th hierarchy node selected in step S1104 or S1107, and further extracts grouping information from the encryption tag.
- the L ′ + 1th information is acquired. Then, it is determined based on the L ′ + 1 information whether the encryption tag and the management number are allocated to the child nodes of the selected L′ th hierarchy node, the association of the L′ th hierarchy node is deleted, and a new Are stored in association with the L ′ + 1 hierarchy node. This is performed for all the encryption tags associated with the selected L'th layer. An image of this processing is shown in FIG.
- step S1106 the index management unit 405 checks whether there is a node that has not performed the process of step S1105 from the nodes in the L′ th layer. If there is a node that has not been processed, the process proceeds to step S1107. If there is no node that has not been processed, the process ends.
- step S1107 the index management unit 405 selects a node that has not performed the process of step S1105 from the nodes in the L'th layer, and proceeds to the process of step S1105.
- the index management unit 405 stores the encryption tag in association with the node number.
- the encryption tag includes grouping information.
- grouping information In the example of FIG. 19, only the upper 2 bits of the grouping information are decoded, and the third and subsequent bits are kept secret.
- the access terminal device 301 permits the disclosure of the bit values up to the upper 3 bits of the grouping information
- the group determination key for decoding the third bit (group determination for the third layer) Key) is transmitted from the access terminal device 301 to the data center device 401.
- the index information of group name: general affairs department and user name: * in FIG. 19 will be described as an example.
- the grouping information included in the encryption tag (“2j0” #% Dq ”) of the record in the first row is described.
- the third bit encrypted bit (encrypted third information) is decrypted using the third layer group determination key to obtain a third bit decrypted value (third information).
- a third bit decrypted value (third information).
- the decrypted value of the third bit is “0”, for example, “010” is set as the new node number, and the encryption tag “2j0” is set for the new node number “010”.
- a set of “#% Dq” and management number “000001” is associated. Similar processing is performed for other records. For example, a new node number “011” is obtained by decrypting the third encrypted bit of the grouping information for the second record of the index information of group name: general affairs department, user name: *.
- the tag of the record on the first line and the tag of the record on the second line belong to different groups.
- the number of tags included in each group decreases, and the time required for the matching process between the trap door and the tag when receiving the search query can be reduced.
- the access terminal device 301 newly generates a group determination key for the data center device 401 and requests reconfiguration of index information.
- the data center device 401 reconfigures index information managed by itself. By doing so, the number of layers of index information can be increased by one.
- the grouping information generated from the keyword is included in the encryption tag, and the data center device 401 receives the group determination key from the user as necessary.
- the corresponding encryption tags can be grouped. Since the grouping information is created according to the keyword included in the search query at the time of the search, the data center device 401 uses the grouping information and the group determination key as necessary to search the keyword to be searched. It is possible to uniquely identify which encryption tag group corresponds to the group. Therefore, it is not necessary to perform the determination process of the existing secret search technology for all the encryption tags, and the determination process of the existing secret search technology may be performed only for the encryption tags belonging to the specific group. Time can be greatly reduced.
- M encryption tags can be divided into 2 ⁇ L ′ groups.
- M / 2 ⁇ L 'encryption tags are included. Therefore, according to the present embodiment, the search process is speeded up by 2 ⁇ L 'times.
- information for grouping can be divided and encrypted in 1-bit units, and the data center device 401 can acquire information to be used for grouping by disclosing the group determination key. I have to. Therefore, the user can adjust the grouping level according to the number of group determination keys to be disclosed. For example, in a situation where L ′ group determination keys are disclosed, it is assumed that the search time becomes T time as the number of stored encrypted data increases, which hinders operation. At this time, by newly disclosing the group determination key corresponding to the L ′ + 1 layer, the encryption tag can be divided into twice the group, so that the search time can be reduced to T / 2. become.
- the method shown in the present embodiment is an extended method that improves the search performance by adding grouping information to an existing secret search tag. Therefore, the present invention can be applied not only to the existing secret search method shown in the present embodiment but also to various existing secret search methods that have been proposed, and the search performance can be improved.
- an example applied to the method described in Non-Patent Document 4 has been shown. Can be speeded up.
- the method described in Non-Patent Document 1 can be applied, and the method described in Non-Patent Document 3 can also be applied, and can be applied to any existing secret search method.
- the speed-up method does not depend on what is used as the existing encryption method A or the existing encryption method B as well as the existing secret search method. Therefore, it is also possible to use RSA (registered trademark) (Rivest Shamir Adleman) encryption, which is generally used.
- a method for speeding up a secret search technique based on probabilistic encryption has been described.
- a method based on deterministic encryption is fast if only the search time of a secret search is viewed, but there is a problem that plaintext can be estimated by analyzing the appearance frequency of encrypted data.
- the method based on probabilistic encryption is safe for plain text estimation by analyzing the appearance frequency because the appearance frequency of the encrypted data is irrelevant to the keyword appearance frequency, but the search process takes a long time.
- the present embodiment is based on probabilistic encryption, there is a merit that the security for the analysis based on the appearance frequency remains despite the high-speed search.
- the encrypted data and index are created and managed for each group name / user name pair. Therefore, when the user performs a search, it is not necessary to search for index information including encrypted data that cannot be read originally, so that the search process can be greatly improved.
- the disclosure range of the encrypted data is determined by the group name and the user name, but it is generally expected that the number of encrypted data stored for each disclosure range is different.
- the group determination key is disclosed for the index associated with the group name / user name pair. Therefore, the balance between safety and high speed can be adjusted for each disclosure range.
- the grouping information included in the search query when using the grouping information included in the search query to obtain the encryption tag to be searched from the index information, not only the encryption tag associated with the node corresponding to the grouping information, but all of them The encryption tag related to the upper node of is also searched. Therefore, even if a search query is received while the group determination key is additionally received and the index information is being reconfigured, it is possible to check without leaking the encryption tag to be searched.
- the non-patent document 4 that is a hierarchical ID-based encryption is used when generating the grouping information, it is possible to reduce the amount of communication for sending the group information generation key to the user. Specifically, if only the group name, the user name, and the maximum number of hierarchies L are sent, by setting the received value in the grouping information ID hierarchical structure in the access terminal device 301, L group information generation keys Communication costs can be reduced.
- the system is configured to receive multiple group names and user names when generating encrypted data, even if there are multiple users and groups of disclosure destinations, encrypted data can be sent to multiple disclosure destinations using this method. And the search speed can be improved without depending on the number of disclosure destinations.
- the keywords associated with the encrypted data may be automatically extracted from the text, specified by the user, or combined with each other. Keywords can be added as the user intends.
- a high-speed common key encryption such as AES or Camellia (registered trademark) can be used, so even large-size data such as video and music data can be encrypted at high speed. It is possible to do.
- the key management server apparatus 201 since the key management server apparatus 201 has a user ID information database, even if the user does not know the group name or user name that can decrypt the encrypted data, the user knows the mail address, etc. Since the correct group name and user name can be acquired based on the other information, it is possible to prevent the disclosure range of the encrypted data from being set erroneously. Similarly, it is an aid for generating grouping information and generating an encryption tag.
- index information using a binary tree is shown.
- the index to be generated is not limited to the binary tree, and may be a more general tree structure or a hash table as long as it can be generated from the grouping information.
- the binary tree created as index information does not need to be stored on the disk while maintaining its structure, and may be stored in a table format by assigning node numbers as shown as an example, or other data It may be stored in the form.
- the encrypted i-th information of the grouping information is generated by encrypting the i-th bit of the bit string generated from the keyword.
- the encrypted i-th information may be generated using information of 2 bits or more. For example, it is possible to generate a 2L-bit bit string from the keyword, encrypt the 2i-1th bit and the 2ith bit, and generate the encrypted i-th information.
- the encrypted i-th information may be created by designating an arbitrary numerical value for the i-th information, and may be allocated as a child node (left) for an even number and a child node (right) for an odd number.
- an encrypted i-th information is created by designating a numerical value from 0 to 100 for the i-th information. If it is less than 50, it is a child node (left), and if it is 50 or more, it is a child node (right). May be assigned. As described above, any information may be set as the value designated as the i-th information as long as it is associated with the child node determination method.
- a group determination key may be used as in the second embodiment
- the encrypted i-th information of the grouping information is decrypted using the group determination key to determine whether the child node (left) or child node (right) of the binary tree is 0 / 1 information was obtained.
- the data center device 401 uses the group determination key (for encryption tag) and the group determination key (for search query). It is good also as a mechanism which produces i information. In this case, since the value set in the grouping information itself is not known to the data center device 401, it is difficult to guess the keyword even if it is a hash value of the keyword, and the safety can be improved.
- All grouping information need not be encrypted In the present embodiment, all bits are encrypted when creating grouping information. However, some or all of the bits may be sent as plain text without being encrypted. For example, if the number of group determination keys held on the data center device 401 side is known, the corresponding bit is decrypted on the data center device 401 side even if it is encrypted, so that it is sent as plain text. You may do it.
- a hash function such as SHA-2
- any algorithm can be used as long as an L-bit bit string can be created. good.
- a hash function other than SHA-2 may be used, or a keyed hash such as HMAC, a common key encryption such as AES, or a public key encryption such as RSA (registered trademark) encryption may be used.
- HMAC keyed hash
- AES common key encryption
- RSA registered trademark
- an L-bit random number may be generated by a pseudo-random number generation algorithm using a keyword as a random number seed.
- a correspondence table of keywords and L bit strings may be used.
- the frequency of occurrence of L bit strings can be leveled in consideration of the appearance frequency of keywords, so that further improvement in safety can be expected.
- Group judgment key generation timing In this embodiment, a grouping information ID hierarchical structure is defined before using the system, and a grouping information generation key is specified by specifying a group name, a user name, and a hierarchy number at the timing when the user generates grouping information. Was generated.
- the grouping information generation key may be issued collectively at a timing such as before the system is used or when the user secret key is issued.
- AES AES, RSA (registered trademark) encryption, or the like is used as an existing encryption method, it is necessary to generate it at a timing before encryption.
- the user group name and user name are set in the tag ID hierarchical structure, and the decryptor ID hierarchical structure is different. What is necessary is just to set the group name and user name of a user who can decrypt.
- the example using the existing secret search system based on ID base encryption, the existing encryption system A, and the existing encryption system B was shown.
- the method is not limited to a method based on ID-based encryption, and it is also possible to use common key encryption such as AES, Camellia (registered trademark), and HMAC, or public key encryption such as RSA (registered trademark) encryption.
- Public parameters can be shared In this embodiment, an example using the existing secret search method based on the ID-based encryption, the existing encryption method A, and the existing encryption method B has been shown, but different public parameters are used. However, it is also possible to share some information of public parameters such as an elliptic curve to be used. Therefore, what can be shared may be shared.
- search keyword In the present embodiment, the case where there is one search keyword is shown, but it is not always necessary to limit the search keyword to one. For example, when there are a plurality of search keywords, a search query may be generated for each keyword, and all search queries may be sent to the data center device 401. At that time, for example, to acquire encrypted data that is determined to be a hit in one search query, or to acquire encrypted data in which both search query A and search query B are hit, send optional conditions. good.
- a user ID information database is provided in the key management server apparatus 201, and a user secret key is generated based on the information.
- the user ID information database is not necessarily essential, and may be specified by the administrator of the key management server apparatus 201 when issuing the user private key, or may be received from the access terminal apparatus 301. Also good.
- Access terminal device 301 assuming user, use of IC card
- the access terminal device 301 is operated by one user.
- the access terminal device 301 itself is not occupied by a single user, but may be configured to be shared by a plurality of people.
- the user secret key management unit 305 since one user secret key is assigned to each user in the user secret key management unit 305, by authenticating the operator with the access terminal device 301 in such a manner as to store a plurality of user secret keys, It is preferable to determine which user secret key should be used. It is also possible to store and manage the user secret key on an employee ID card.
- the user secret key management unit 305 corresponds to an IC card. However, if all processing using the user secret key is performed by the IC card, the search query generation unit 306, the data decryption unit 307, A part of the processing of the group determination key generation unit 308 may be performed on the IC card.
- Data body encryption method In the present embodiment, AES and Camellia (registered trademark) are automatically used when encrypting data. However, this method may be used in advance in the system. It can be set by the user.
- the key management server device 201 and the access terminal device 301 are in the company, and the data center device 401 exists as an external service connected to the Internet or the like.
- the present invention is not limited to such a system configuration.
- the data center device 401 may be in a company, or the key management server device 201 and the access terminal device 301 may be connected to a network outside the company.
- the grouping information generation unit 310 of the access terminal device 301 From the hash value of the storage keyword, extract an L-bit bit string that is the same as the maximum number of hierarchies of the index information node, encrypt the extracted L-bit bit string with an ID-based encryption method, and generate grouping information Explained.
- the grouping information generation unit 310 index derivation bit string generation unit, concealment processing unit Extracts a bit string of the same number of bits as the maximum number that can be specified as a permission bit position from a bit string of random values obtained uniquely from the storage keyword, generates a storage index derivation bit string, and generates the generated storage index derivation bit string based on ID Encrypted with an encryption method.
- the grouping information generation unit 310 Consecutive L bits may be extracted from the hash value of the storage keyword, or L bits may be extracted discontinuously, such as the first bit, the third bit, the sixth bit, and the eleventh bit.
- the grouping information generation unit 310 When generating a storage index derivation bit string, the maximum number of consecutive bits that can be specified as the permitted bit position may be extracted from the bit string of the random value that is uniquely obtained from the storage keyword. The same number of non-consecutive bits as the maximum possible number may be extracted.
- the grouping information generation unit 310 It has been described that grouping information is generated by performing encryption using different grouping information generation keys for each bit of an L-bit bit string. In other words, the grouping information generation unit 310 A different encryption key is used for each unit bit of encryption of the storage index derivation bit string.
- the grouping information generation unit 310 It has been described that L grouping information generation keys can be generated by specifying a wild card in at least one of the group name and the user name of the grouping information ID hierarchical structure (FIG. 13).
- the grouping information generation unit 310 Define user information of users allowed to access the storage target data using wildcards, and encrypt the storage index derivation bit string using an encryption key that reflects the user information defined using wildcards. can do.
- the index management unit 405 of the data center device 401 When the encrypted data management unit 404 stores the encrypted data to be stored in association with the encryption tag, the grouping information is decrypted using the group determination key, and the node number and the encryption tag obtained by the decryption are displayed. Explained to store in association. In other words, the index management unit 405 When the encrypted data management unit 404 stores the encrypted data to be stored in association with the tag data, the encrypted data at the permission bit position in the encrypted bit string is decrypted using the permission bit decryption key, An index value is derived from the bit value obtained by decoding, and the derived index value and tag data are stored in association with each other.
- the index management unit 405 When a search query is received, a pair of an encryption tag and a management number associated with the node obtained by decoding the grouping information is extracted, and the encryption tag and management associated with the parent node of the node are extracted. It has been explained that all the pairs of numbers are extracted and sent to the search processing unit 406.
- the index management unit 405 Decrypts the encrypted bit at the permission bit position in the encrypted bit string included in the search request, derives the index value from the bit value at the permission bit position obtained by decryption, and corresponds to the same index value as the derived index value Extract the tag data attached, Further, an index value is derived from the bit value obtained by decrypting the encrypted bit at the permission bit position excluding the lowest permission bit position among the permission bit positions, and is associated with the same index value as the derived index value. Extract tag data.
- Embodiment 2 FIG. In Embodiment 1 above, hierarchical ID-based encryption is used as the existing encryption method A for generating grouped information. Next, using the inner product predicate encryption described in Non-Patent Document 5, An embodiment in which grouping information can be included in the tag itself will be described.
- an arbitrary message can be encrypted using a vector called an attribute vector as a public key.
- a vector called a predicate vector is embedded in the user secret key, and this predicate vector often uses a different vector for each user. Then, only when the inner product of the attribute vector embedded in the encrypted data and the predicate vector embedded in the user secret key is 0, the encrypted data can be decrypted using the user secret key. If the inner product does not become 0, the decoding is not possible.
- the ID is used as a public key, and the ID is also embedded in the user secret key. Then, only when the IDs match, the encrypted data can be decrypted using the user secret key. Therefore, the inner product predicate encryption can be considered as a generalization of ID-based encryption. Further, since there is a feature that logical expressions such as AND and OR can be evaluated using inner products of vectors, there is also a feature that a decryption condition can be specified more flexibly than ID-based encryption.
- the configuration example of the confidential search system 100 in the present embodiment is the same as that shown in FIG.
- the functional blocks of the key management server apparatus 201 and the data center apparatus 401 are also the same as those shown in FIG. 2 and FIG.
- FIG. 23 is a functional block diagram illustrating a configuration of the access terminal device 301.
- the data encryption unit 302, the encrypted tag generation unit 303, the tagged encrypted data generation unit 304, the user secret key management unit 305, the search query generation unit 306, the data decryption unit 307, and the terminal side data transmission / reception unit 309 are implemented. This is the same as that shown in FIG.
- a grouping bit string generation unit 2301 generates a grouping bit string of keywords included in an encryption tag or a search query from keywords.
- the grouping bit string generation unit 2301 is an element corresponding to the grouping information generation unit 310 in Embodiment 1, and corresponds to an example of an index derivation bit string generation unit and an example of a concealment processing unit.
- the group determination key generation unit 308 generates a group determination key to be sent to the data center device 401 to generate an index value using the user secret key managed by the user secret key management unit 305 and the public parameter.
- the group determination key includes a group determination key used for grouping encryption tags (for encryption tags) and a group determination key used for determining which group of encryption tags the search query refers to ( For search queries). Also in the present embodiment, the group determination key generation unit 308 corresponds to an example of a permission bit position designation unit and an example of a concealment processing unit.
- step S501 the processing in step S501 is the same as that in the first embodiment, and thus the description thereof is omitted.
- step S ⁇ b> 502 the master key generation unit 202 determines to use the inner product predicate encryption described in Non-Patent Document 5 as the existing secret search method and the existing encryption method used in the secret search system 100.
- the existing secret search method is used to generate an encryption tag including grouping information, and the existing encryption method is a method used to encrypt the data body.
- the number of tag ID hierarchies, the tag ID hierarchical structure, and the vector configuration to be given to the inner product predicate encryption are determined.
- tag IDs are configured in three levels, and a group name field for storing a group name of a department or section to which a searchable user belongs, a user who stores a name, etc.
- a name field, a keyword field for setting a keyword associated with data, and the like are determined.
- the keyword column is composed of two elements of grouping information and keyword information, and the grouping information is composed of elements from the first information to the L-th information.
- the production example of the tag ID predicate vector v T in FIG. 30 shows an example of generation of the tag ID attribute vectors x T in FIG. 31.
- (x1) is used for a tag ID attribute vector.
- X2) (“group name”, 1).
- the inner product value becomes 0 only when the group names are the same, and becomes a non-zero value when they are different.
- the user name, i-th information, and remaining bit information are also associated with vector values.
- the element is a wild card, its vector is (0, 0).
- wild cards are specified for other elements, they can be associated with vectors in the same way.
- the master key generation unit 202 determines the number of decryption person ID hierarchies and the decryption person ID hierarchical structure as a method of using the existing encryption method for encrypting the storage target data.
- the number of decryption person ID hierarchies is 2
- the decryption person ID hierarchical structure has a decryption person ID hierarchical structure composed of a group name and a user name as in the first embodiment.
- Example of the generation of the decryption person ID predicate vector v D in FIG. 32 shows an example of generation of the decryption person ID attribute vectors x D in FIG 33.
- the method of deriving each element of the vector is the same as in the case of tag ID.
- step S503 is the same as that in the first embodiment, and a description thereof will be omitted.
- step S504 the master key generation unit 202 executes a master key generation algorithm of an existing secret search method used in the system, and generates a secret search master key and a secret search public parameter.
- a master key generation algorithm of an existing encryption method is executed to generate an encryption master key and an encryption public parameter.
- the secret search master key and the encryption master key are collectively referred to as a master key
- the secret search public parameter and the encryption public parameter are collectively referred to as a public parameter.
- steps S505 and S506 are the same as those in the first embodiment, and a description thereof will be omitted. With the above procedure, the setup of the secret search system is completed.
- step S601 is the same as that of the first embodiment, the description thereof is omitted.
- the user secret key generation unit 204 generates a secret search user secret key used for generating a search query and an encryption user secret key used for decrypting encrypted data.
- the existing secret search method it is necessary to specify the tag ID hierarchical structure when generating the secret search user secret key, but the user secret key generation unit 204 stores the group name acquired in S601 in the group name column. Similarly, the user name is set as the user name, and all elements in the keyword column are designated as delegable elements.
- the tag ID hierarchical structure in which this value is set is vectorized based on the vector generation rule determined in step S502 to generate a tag ID predicate vector, and the user secret key generation algorithm (GenKey) of the existing secret search method is executed.
- GeneKey user secret key generation algorithm
- a secret search user secret key can be generated.
- the group name acquired in S601 is displayed in the group name column, and the user name is also set as the user.
- the user secret key generation unit 204 generates a decryptor ID predicate vector by vectorizing the decryptor ID hierarchical structure in which this value is set based on the vector generation rule determined in step S502,
- An encryption user secret key can be generated by executing an existing encryption method user secret key generation algorithm.
- the secret search user secret key and the encryption user secret key generated above are collectively referred to as a user secret key.
- step S603 and step S604 are the same as those in the first embodiment, and a description thereof will be omitted.
- the key management server apparatus 201 can issue a user secret key to the user who operates the access terminal apparatus 301.
- steps S701, S702, and S703 are the same as those in the first embodiment, and a description thereof will be omitted.
- the grouping bit string generation unit 2301 receives a keyword associated with the data, and generates a grouping bit string for each keyword. Specifically, the grouping bit string generation unit 2301 generates an L-bit bit string and arbitrary keyword information based on the keyword. For example, a hash value of a keyword is generated using a hash function such as SHA-2, and an arbitrary L bit is extracted from the keyword to form an L bit string, and the remaining bit strings are arranged, or a hash value It can be generated by using keyword information as a whole.
- a hash value of a keyword is generated using a hash function such as SHA-2, and an arbitrary L bit is extracted from the keyword to form an L bit string, and the remaining bit strings are arranged, or a hash value It can be generated by using keyword information as a whole.
- step S2405 the encryption tag generation unit 303 encrypts the grouped bit string and generates an encryption tag. Specifically, the encryption tag generation unit 303 designates the group name and user name received in S701 in the group name and user name of the tag ID hierarchical structure, and the grouping bit string generated in S2404 in the keyword column. Then, a tag ID attribute vector is generated from the tag ID hierarchical structure in which the value is set, and a tag is created with the encryption algorithm (Enc) of the existing secret search method. This tag is an encryption tag.
- the method for generating a secret search tag is not explicitly described, but it is generally known that the method may be implemented as follows.
- the random number R is selected, and the ciphertext C is obtained by encrypting the random number R using the tag ID attribute vector.
- the tag may be a set of (random number R, ciphertext C). Since the above is processing for one keyword, it is performed for all keywords associated with data. If a plurality of group names and user names are received in S701, encryption tags are generated for all combinations of group names and user names.
- step S706 the tagged encrypted data generation unit 304 combines the encrypted data generated in S703 with the encrypted tag generated in S2405 to generate tagged encrypted data, which is converted into data It is sent to the center device 401 as a storage request.
- the tagged encrypted data generation unit 304 sends both the group name and the user name received in S701. Since the encryption tag generation process in step S2405 has been slightly changed, the structure of the encrypted data with tag is changed from FIG. 16 of the first embodiment as shown in FIG. It becomes the composition.
- step S707 since the processing in step S707 is the same as that in the first embodiment, description thereof is omitted.
- step S708 will be described in detail with reference to FIG. As in the first embodiment, it is assumed that index information is managed for each group name and user name.
- step S801 the processing in step S801 is the same as that in the first embodiment, and a description thereof will be omitted.
- the index management unit 405 uses the L ′ group determination keys extracted in step S801 to decrypt the tag with each group determination key (for encryption tag). Specifically, the index management unit 405 decrypts the ciphertext C of the tags (R, C) using, for example, a group determination key (for encryption tag) corresponding to the first layer, and the decryption result is the same as the random number R In the case of the first information, the first information is set to 0; In the same procedure, the first information to the L′ th information are determined.
- steps S804 and S805 are the same as those in the first embodiment, and thus description thereof is omitted.
- the access terminal device 301 encrypts the data and requests the data center device 401 to store it, and the data center device 401 can store the received encrypted data with tag.
- step S901 is the same as that in the first embodiment, and a description thereof will be omitted.
- step S2602 the grouping bit string generation unit 2301 generates a grouping bit string from the search keyword received in S901. Since this process is the same as the process of step S2404, it is omitted.
- the search query generation unit 306 generates a search query using the grouped bit string received in S2602 and the user secret key stored in the user secret key management unit 305.
- the secret search user secret key values are set for the group name and the user name of the tag ID hierarchical structure, but no value is set for the keyword field, and a value is set by the user later. Can be set. Therefore, the search query generation unit 306 generates a search query of the existing secret search method using the tag ID predicate vector generated by specifying the grouping bit string that is a value set in the keyword field, the secret search user secret key, and the input.
- a function (Delete function) is executed, and the generated secret key is used as a trap door.
- This trap door is in a state in which values are set for all the elements shown in the tag ID hierarchical structure. Let this trapdoor be a search query. Then, the generated search query is sent to the data center device 401. At this time, the user's own group name and user name are also sent.
- step S904 the search processing unit 406 extracts the trapdoor from the search query received in S903, and acquires all the encryption tags that are search candidates from the index information.
- step S1001 and step S1002 are the same as those in the first embodiment, and a description thereof will be omitted.
- the index management unit 405 decrypts each group determination key (for search query) using the trapdoor, using the L ′ group determination keys extracted in step S801. Specifically, the index management unit 405 decrypts the ciphertext C using a trapdoor, for example, because the group determination key (for search query) corresponding to the first hierarchy is configured from (R, C). When the decryption result is the same as the random number R, the first information is set to 0. When the decryption result is not the same, the first information is set to 1. In the same procedure, the first information to the L′ th information are determined.
- step S1004 the index management unit 405 uses the procedure shown in step S804 to identify the corresponding node from the binary tree and set a pointer indicating that processing is being performed there. To do. Then, all pairs of encryption tags and management numbers associated with the node pointed to by the pointer are extracted and sent to the search processing unit 406.
- step S1005, step S1006, and step S1007 are the same as those in the first embodiment, and a description thereof will be omitted. Thus, the process of obtaining all the encryption tags that are candidates for the search from the index information, which is performed in step S2604, is completed.
- step S905 the search processing unit 406 extracts the tag from the encrypted tag acquired in S904, and extracts the keyword included in the tag and the keyword included in the tag using the determination process of the existing secret search technology. It is determined whether or not the keywords included in the trap door are the same. Specifically, the search processing unit 406 decrypts the ciphertext C of the tags (R, C) at the trap door, and determines that the keywords match when the decryption result is the same as the random number R. If they are not identical, it is determined that the keywords do not match. Note that the determination process of the existing secret search technology can be performed only for one tag and one trap door, so this is performed for all the encrypted tags acquired in S904. Then, the management number associated with the encryption tag determined to be coincident as a result of the determination process is specified.
- step S906 and step S907 are the same as those in the first embodiment, and a description thereof will be omitted.
- the access terminal device 301 can receive a search keyword from the user, acquire encrypted data including the keyword from the data center device 401, and decrypt and browse it.
- step 1101 is the same as that in the first embodiment, and thus the description thereof is omitted.
- step S2802 the group determination key generation unit 308 extracts from the user secret key management unit 305 the secret search user secret key, the public parameter, and the number of hierarchies of the group determination key that has already been issued. Then, the group determination key generation unit 308 specifies the hierarchy L ′ + 1 of the group determination key to be newly issued. Next, the group determination key generation unit 308 specifies 0 for the L ′ + 1th information in the grouping information of the tag ID hierarchical structure. Wildcards are designated for the other L 'information from the first information, the L'th information from the L' + 2 information, and the keyword information.
- the group determination key generation unit 308 For this tag ID hierarchical structure, the group determination key generation unit 308 generates a tag ID predicate vector by combining the group name embedded in the user secret key and the user name, and the group name received in S1101. A tag ID attribute vector is generated by combining user names. Then, the group determination key generation unit 308 receives the secret search user secret key and the tag ID predicate vector generated above as input, and executes a search query generation function (Delete function) of the existing secret search method. A group determination key (for an encryption tag) corresponding to the L ′ + 1 hierarchy is generated.
- the group determination key generation unit 308 generates a tag (R, C) by using the tag ID attribute vector generated above as an input in the same procedure as in step S2405, and uses this as a group determination key (for search query). And The group determination key generation unit 308 combines the generated group determination key (for encryption tag) and the group determination key (for search query) as a group determination key, and the group name and user associated with the index to be reconfigured The data is sent to the data center device 401 together with the name.
- steps 1103 and S1104 are the same as those in the first embodiment, description thereof is omitted.
- step S1105 the index management unit 405 extracts the encryption tag and management number associated with the L′-th layer node selected in step S1104 or S1107, and further extracts the tag from the encryption tag. Then, the index management unit 405 acquires L ′ + 1 information for distribution from the tag to the L ′ + 1 hierarchy in the same procedure as in step S2503. Then, the index management unit 405 determines based on the L ′ + 1 information whether the encryption tag and the management number are allocated to the child nodes of the selected L′ th hierarchy node, and associates the L′ th hierarchy node. Are newly stored in association with the L ′ + 1 hierarchy node. This is performed for all the encryption tags associated with the selected L'th layer.
- steps S1106 and S1107 are the same as in the first embodiment, and a description thereof is omitted.
- the access terminal device 301 newly generates a group determination key for the data center device 401 and requests reconfiguration of index information.
- the data center device 401 reconfigures index information managed by itself. By doing so, the number of layers of index information can be increased by one.
- the grouping information generated from the keyword is included in the encryption tag, and the data center device 401 receives the group determination key from the user, so that the grouping information (for the encryption tag) is used.
- Encryption tags can be grouped according to keywords. Even during a search, a group of encryption tags to be searched can be uniquely identified using a search query and a group determination key (for a search query), so an existing secret search is performed for all encryption tags. It is no longer necessary to perform the technology determination process, and the determination process of the existing secret search technique only needs to be performed for encryption tags belonging to a specific group, and the time for the secret search can be greatly reduced.
- M encryption tags can be divided into 2 ⁇ L ′ groups.
- M / 2 ⁇ L 'encryption tags are included. Therefore, according to the present embodiment, the search process is speeded up by 2 ⁇ L 'times.
- a group determination key for determining information included in a tag ID hierarchical structure by a user by setting information for grouping in different elements of the tag ID hierarchical structure in 1-bit units, etc. is disclosed
- the data center device 401 can generate information for use in grouping. Therefore, the user can adjust the grouping level according to the number of group determination keys to be disclosed. For example, in a situation where L ′ group determination keys are disclosed, it is assumed that the search time becomes T time as the number of stored encrypted data increases, which hinders operation. At this time, by newly disclosing the group determination key corresponding to the L ′ + 1 layer, the encryption tag can be divided into twice the group, so that the search time can be reduced to T / 2. become.
- the data center device 401 generates the i-th information using the group determination key (for encryption tag) and the group determination key (for search query). Therefore, since the value itself set in the grouping information is not known to the data center device 401, it is difficult to guess the keyword even if it is a hash value of the keyword, and the safety can be improved.
- the method according to the present embodiment is an extended method that improves the search performance by including grouping information in the existing secret search tag based on the inner product predicate encryption. Therefore, the present invention can be applied not only to the existing secret search method shown in the present embodiment but also to various existing secret search methods that have been proposed, and the search performance can be improved.
- an example applied to the method described in Non-Patent Document 5 is shown, but it can also be applied to the method described in Non-Patent Document 3, for example, other inner product predicate encryption, functional encryption, etc. It can be applied to existing secret search methods.
- the speed-up method does not depend on what is used as the existing encryption method. Therefore, it is also possible to use RSA (registered trademark) encryption that is commonly used.
- RSA registered trademark
- a method for speeding up a secret search technique based on probabilistic encryption has been described.
- a method based on deterministic encryption is fast if only the search time of a secret search is viewed, but there is a problem that plaintext can be estimated by analyzing the appearance frequency of encrypted data.
- the method based on probabilistic encryption is safe for plain text estimation by analyzing the appearance frequency because the appearance frequency of the encrypted data is irrelevant to the keyword appearance frequency, but the search process takes a long time.
- the present embodiment is based on probabilistic encryption, there is a merit that the security for the analysis based on the appearance frequency remains despite the high-speed search.
- the encrypted data and index are created and managed for each group name / user name pair. Therefore, when the user performs a search, it is not necessary to search for index information including encrypted data that cannot be read originally, so that the search process can be greatly improved.
- the disclosure range of the encrypted data is determined by the group name and the user name, but it is generally expected that the number of encrypted data stored for each disclosure range is different.
- the group determination key is disclosed for the index associated with the group name / user name pair. Therefore, the balance between safety and high speed can be adjusted for each disclosure range.
- the encryption tags associated with all the upper nodes are also searched. Therefore, even if a search query is received while the group determination key is additionally received and the index information is being reconfigured, it is possible to check without leaking the encryption tag to be searched.
- the system is configured to receive multiple group names and user names when generating encrypted data, even if there are multiple users and groups of disclosure destinations, encrypted data can be sent to multiple disclosure destinations using this method. And the search speed can be improved without depending on the number of disclosure destinations.
- the keywords associated with the encrypted data may be automatically extracted from the text, specified by the user, or combined with each other. Keywords can be added as the user intends.
- a high-speed common key encryption such as AES or Camellia (registered trademark) can be used, so even large-size data such as video and music data can be encrypted at high speed. It is possible to do.
- the key management server apparatus 201 since the key management server apparatus 201 has a user ID information database, even if the user does not know the group name or user name that can decrypt the encrypted data, the user knows the mail address, etc. Since the correct group name and user name can be acquired based on the other information, it is possible to prevent the disclosure range of the encrypted data from being set erroneously. Similarly, it is an aid for generating an encryption tag.
- index information using a binary tree is shown.
- the index to be generated is not limited to the binary tree, and may be a more general tree structure or a hash table as long as it can be generated from the grouping information.
- the binary tree created as index information does not need to be stored on the disk while maintaining its structure, and may be stored in a table format by assigning node numbers as shown as an example, or other data It may be stored in the form.
- the i-th bit of the bit string generated from the keyword is used as the i-th information.
- the i-th information may be generated using information of 2 bits or more. For example, it is possible to generate a 2L-bit bit string from a keyword and use the 2i-1th bit and the 2ith bit as i-th information.
- the i-th information is set to 0 when correctly decrypted.
- the i-th information is regarded as 1 when it cannot be correctly decoded.
- the allocation of 0 and 1 may be reversed.
- a hash function such as SHA-2
- any algorithm can be used as long as an L-bit bit string can be created. good.
- a hash function other than SHA-2 may be used, or a keyed hash such as HMAC, a common key encryption such as AES, or a public key encryption such as RSA (registered trademark) encryption may be used.
- HMAC keyed hash
- AES common key encryption
- RSA registered trademark
- an L-bit random number may be generated by a pseudo-random number generation algorithm using a keyword as a random number seed.
- a correspondence table of keywords and L bit strings may be used.
- the frequency of occurrence of L bit strings can be leveled in consideration of the appearance frequency of keywords, so that further improvement in safety can be expected.
- the group determination key is generated at the timing when the user performs index reconstruction.
- the group determination key may be generated anytime before index reconstruction.
- the key management server device 201 may generate the user secret key instead.
- the present embodiment an example of specifying a user or group that can be decrypted / searched using two types of information of a group name and a user name in the tag ID hierarchical structure and the decryptor ID hierarchical structure is shown. .
- two types of information For example, three types of department name, section name, and name may be used, or only the name may be used.
- the recipient attribute can be designated using conditions such as AND and OR, so that the recipient may be designated flexibly.
- the tag ID hierarchical structure is converted into a tag ID predicate vector and a tag ID attribute vector.
- (v1, v2) (1,-“group name”)
- conversion method from the tag ID hierarchical structure to the tag ID predicate vector or the tag ID attribute vector and various generally known methods can be used. The same applies to the decryptor ID hierarchical structure.
- Public parameters can be shared Although the example using the inner product predicate encryption of the nonpatent literature 5 was shown for the existing secret search system or the existing encryption system, it was made to utilize each different public parameter. However, it is also possible to share some information of public parameters such as an elliptic curve to be used. Therefore, what can be shared may be shared.
- search keyword In the present embodiment, the case where there is one search keyword is shown, but it is not always necessary to limit the search keyword to one. For example, when there are a plurality of search keywords, a search query may be generated for each keyword, and all search queries may be sent to the data center device 401. At that time, for example, to acquire encrypted data that is determined to be a hit in one search query, or to acquire encrypted data in which both search query A and search query B are hit, send optional conditions. good.
- a user ID information database is provided in the key management server apparatus 201, and a user secret key is generated based on the information.
- the user ID information database is not necessarily essential, and may be specified by the administrator of the key management server apparatus 201 when issuing the user private key, or may be received from the access terminal apparatus 301. Also good.
- Access terminal device 301 assuming user, use of IC card
- the access terminal device 301 is operated by one user.
- the access terminal device 301 itself is not occupied by a single user, but may be configured to be shared by a plurality of people.
- the user secret key management unit 305 since one user secret key is assigned to each user in the user secret key management unit 305, by authenticating the operator with the access terminal device 301 in such a manner as to store a plurality of user secret keys, It is preferable to determine which user secret key should be used. It is also possible to store and manage the user secret key on an employee ID card.
- the user secret key management unit 305 corresponds to an IC card. However, if all processing using the user secret key is performed by the IC card, the search query generation unit 306, the data decryption unit 307, A part of the processing of the group determination key generation unit 308 may be performed on the IC card.
- Data body encryption method In the present embodiment, AES and Camellia (registered trademark) are automatically used when encrypting data. However, this method may be used in advance in the system. It can be set by the user.
- the key management server device 201 and the access terminal device 301 are in the company, and the data center device 401 exists as an external service connected to the Internet or the like.
- the present invention is not limited to such a system configuration.
- the data center device 401 may be in a company, or the key management server device 201 and the access terminal device 301 may be connected to a network outside the company.
- the grouping bit string generation unit 2301 index derivation bit string, concealment processing unit of the access terminal device 301 has been described as using inner product predicate encryption.
- the grouping bit string generation unit 2301 From the hash value of the storage keyword, an L-bit bit string that is the same as the maximum number of hierarchies of the index information node is extracted, and another bit of the hash value or the entire hash value is used as the keyword information. Further, the encryption tag generation unit 303 encrypts the L-bit bit string and keyword information, uses the encrypted L-bit bit string and keyword information as the encryption tag, and transmits the encryption tag to the data center device 401. explained.
- the grouping information generation unit 310 Generates a storage index derivation bit string of the same number of bits that can be specified as the permitted bit position from a random value bit string that is uniquely obtained from the storage keyword, and further generates another bit of the random value bit string or a bit string of the random value
- the whole is keyword information
- the encryption tag generation unit 303 The storage index derivation bit string and the keyword information are encrypted, the encrypted storage index derivation bit string and the keyword information are used as tag data, and the tag data is transmitted to the data center device 401 (data storage device).
- the grouping bit string generation unit 2301 From the hash value of the search keyword, an L-bit bit string having the same number as the maximum number of hierarchies of the index information node is extracted, and another bit of the hash value or the entire hash value is used as keyword information. Further, the encryption tag generation unit 303 explained that the L-bit bit string and keyword information are encrypted, the encrypted L-bit bit string and keyword information are used as a trap door, and the trap door is transmitted to the data center device 401. . In other words, the grouping information generation unit 310 Generates a search index derivation bit string having the same number of bits as the maximum number that can be specified as the permitted bit position from a bit string of random values obtained uniquely from the search keyword.
- the whole is keyword information,
- the encryption tag generation unit 303 The search index derivation bit string and keyword information are encrypted, and the encrypted search index derivation bit string and keyword information are used as encrypted search keywords, and the encrypted search keyword is transmitted to the data center device 401 (data storage device).
- the index management unit 405 of the data center device 401 When the encrypted data with tag is received, the encrypted tag is decrypted with the group determination key, and when the decryption is successful, the bit value is 0, and when the decryption is not successful, the bit value is 1.
- the number of bit values is derived as the node number.
- the index management unit 405 When the storage request is received, the encryption bit at the permission bit position among the encrypted bits in the tag data is decrypted with the permission bit decryption key, and when the decryption is successful, the bit value is 0.
- the bit value By setting the bit value to 1, the bit value of each bit of the storage index value is derived from the decoding result, and the storage index value is derived by concatenating the derived bit values of each bit.
- the index management unit 405 of the data center device 401 When the search query is received, the trapdoor is decrypted with the group determination key, and if it can be decrypted correctly, the bit value is 0, and if it cannot be decrypted, the bit value is 1 so that L 'bits A value is derived as a node number.
- the index management unit 405 When the search request is received, the encrypted bit at the permission bit position among the encrypted bits in the encrypted search keyword is decrypted with the permission bit decryption key. If there is no bit, the bit value is set to 1, so that the bit value of each bit of the search index value is derived from the decoding result, and the search index value is derived by concatenating the derived bit values of each bit.
- FIG. 35 is a diagram illustrating an example of hardware resources of the key management server device 201, the access terminal device 301, and the data center device 401 described in the first and second embodiments.
- the configuration in FIG. 35 is merely an example of the hardware configuration of the key management server device 201, the access terminal device 301, and the data center device 401.
- the key management server device 201, the access terminal device 301, and the data center device The hardware configuration 401 is not limited to the configuration illustrated in FIG. 35 but may be other configurations.
- the key management server device 201, the access terminal device 301, and the data center device 401 may have different hardware configurations.
- a key management server device 201, an access terminal device 301, and a data center device 401 are also referred to as a CPU 911 (Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, processor for executing a program. ).
- the CPU 911 is connected to, for example, a ROM (Read Only Memory) 913, a RAM (Random Access Memory) 914, a communication board 915, a display device 901, a keyboard 902, a mouse 903, and a magnetic disk device 920 via a bus 912. Control hardware devices.
- the CPU 911 may be connected to an FDD 904 (Flexible Disk Drive) or a compact disk device 905 (CDD).
- FDD 904 Flexible Disk Drive
- CDD compact disk device
- a storage device such as an SSD (Solid State Drive), an optical disk device, or a memory card (registered trademark) read / write device may be used.
- the RAM 914 is an example of a volatile memory.
- the storage media of the ROM 913, the FDD 904, the CDD 905, and the magnetic disk device 920 are an example of a nonvolatile memory. These are examples of the storage device.
- the key storage unit 203, the user ID information management unit 206, the user secret key management unit 305, the index management unit 405, and the encrypted data management unit 404 described in the first and second embodiments are the RAM 914, the magnetic disk device 920, and the like.
- the communication board 915, the keyboard 902, the mouse 903, the FDD 904, and the like are examples of input devices.
- the communication board 915, the display device 901, and the like are examples of output devices.
- the communication board 915 is connected to a network.
- the communication board 915 may be connected to a WAN (wide area network), a SAN (storage area network), etc., in addition to the in-house LAN (local area network) and the Internet.
- the magnetic disk device 920 stores an operating system 921 (OS), a window system 922, a program group 923, and a file group 924.
- the programs in the program group 923 are executed by the CPU 911 using the operating system 921 and the window system 922.
- the RAM 914 temporarily stores at least part of the operating system 921 program and application programs to be executed by the CPU 911.
- the RAM 914 stores various data necessary for processing by the CPU 911.
- the ROM 913 stores a BIOS (Basic Input Output System) program
- the magnetic disk device 920 stores a boot program.
- BIOS Basic Input Output System
- the BIOS program in the ROM 913 and the boot program for the magnetic disk device 920 are executed, and the operating system 921 is activated by the BIOS program and the boot program.
- the program group 923 stores a program for executing the function described as “ ⁇ unit” in the description of the first and second embodiments.
- the program is read and executed by the CPU 911.
- Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit.
- the read information, data, signal value, variable value, and parameter are used for CPU operations such as extraction, search, reference, comparison, calculation, calculation, processing, editing, output, printing, and display.
- Information, data, signal values, variable values, and parameters are stored in the main memory, registers, cache memory, and buffers during the CPU operations of extraction, search, reference, comparison, calculation, processing, editing, output, printing, and display. It is temporarily stored in a memory or the like.
- the arrows in the flowcharts described in the first and second embodiments mainly indicate input / output of data and signals.
- Data and signal values are recorded on a recording medium such as a memory of the RAM 914, a flexible disk of the FDD 904, a compact disk of the CDD 905, a magnetic disk of the magnetic disk device 920, other optical disks, a mini disk, and a DVD.
- Data and signals are transmitted online via a bus 912, signal lines, cables, or other transmission media.
- what is described as “to part” in the description of the first and second embodiments may be “to circuit”, “to device”, “to device”, and “to step” It may be “ ⁇ procedure” or “ ⁇ processing”. That is, the data processing device and the data storage device can be grasped as a method by the steps, procedures, and processes shown in the flowcharts described in the first and second embodiments.
- what is described as “ ⁇ unit” may be realized by firmware stored in the ROM 913. Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware.
- Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD.
- the program is read by the CPU 911 and executed by the CPU 911. That is, the program causes the computer to function as the “ ⁇ unit” in the first and second embodiments. Alternatively, the computer executes the procedure and method of “units” in the first and second embodiments.
- the key management server device 201, the access terminal device 301, and the data center device 401 shown in the first and second embodiments are a CPU as a processing device, a memory as a storage device, a magnetic disk, etc., a keyboard as an input device, a mouse, A computer including a communication board or the like, a display device as an output device, a communication board, or the like.
- the functions indicated as “ ⁇ units” are realized using these processing devices, storage devices, input devices, and output devices.
- 201 Key management server device 202 Master key generation unit, 203 Key storage unit, 204 User secret key generation unit, 205 PKG side data transmission / reception unit, 206 User ID information management unit, 301 Access terminal device, 302 Data encryption unit, 303 Encryption tag generation unit, 304 Tagged encrypted data generation unit, 305 User secret key management unit, 306 Search query generation unit, 307 Data decryption unit, 308 Group determination key generation unit, 309 Terminal side data transmission / reception unit, 310 Grouping Information generation unit, 401 data center device, 402 center side data transmission / reception unit, 403 storage request processing unit, 404 encrypted data management unit, 405 index management unit, 406 search processing unit, 2301 grouping bit string generation unit.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
近年は、クラウドサービスなどのインターネット上でデータを管理する際に、サーバ管理者による盗聴からも機密情報を守るためのセキュリティ技術として注目されている。
確定的暗号とは、同一のキーワードを暗号化した際に、何回繰り返して暗号化しても同一の暗号文が得られるという特徴を持つ暗号化方式である。
そのため、従来のデータベースで実現されている高速化手法を利用して、検索を高速に実施することができるという特徴がある。
その一方で、暗号化データの出現頻度をカウントする事ができるため、例えばキーワードが名字であった場合、一般的に知られている名字の人口比率の情報等を元にして、暗号化データの中身が推測できてしまうという欠点も持っている(例えば非特許文献2)。
したがって、単純に暗号化データ同士を比較してもキーワードが同一かどうか分からないため、確定的暗号で問題となっていた出現頻度のカウントによるキーワードの推測ができない様になっており、その安全性が高い事が特徴である。
その一方で、キーワードの同一性すら分からないため、従来のデータベースで実現されていた高速化手法が使えず、検索が遅いという欠点がある(例えば非特許文献1、非特許文献3、非特許文献4、非特許文献5)。
これは、一般的な検索では同じキーワードで2回以上検索される事があるという特徴に着目したもので、1回目の検索では時間がかかるものの、その結果をキャッシュして2回目以降はキャッシュした結果を返すだけにする事で、検索の高速化を図るものである(例えば特許文献1)。
まず、データを暗号化するユーザ(暗号化者)は、データを暗号化して暗号化データを作成するが、それと同時に暗号化データを検索するためのキーワードを暗号化データに関連付ける。
もちろん関連付けたキーワードもデータに関する情報であるため、これも暗号化して暗号化タグを生成し、暗号化データと暗号化タグをデータセンタ装置401に保管する。
暗号化タグは1個である必要はなく、複数関連付ける事ができる。
また、暗号化タグからキーワードが漏れる事はない。
検索クエリは、秘密鍵を用いてキーワードをランダム化したものであるため、検索クエリ自身から秘密鍵を類推するのは難しい。
そして、この検索クエリをデータセンタ装置401に送付し、検索を要求する。
検索者から検索クエリを受け取ったら、自身が保管する暗号化タグの中から、検索クエリの生成に用いられたキーワードと同一のキーワードを含むものを検索する。
この時、データセンタ装置401は秘匿検索のための特殊な演算を行う事によって、暗号化タグを復号してキーワードを取り出すことなく、暗号化タグのキーワードと、検索クエリのキーワードが同一かどうかを判定できる。
そして、キーワードが検索クエリと同一と判定された暗号化タグと関連付けられた暗号化データを検索者に返却する。
上述の従来技術は、いずれも公開鍵方式の秘匿検索方式である。
これは、前述の様に、同一のキーワードを暗号化した際に、何回繰り返して暗号化しても同一の暗号化タグが得られるという特徴を持つ。
そのため、暗号化タグのデータビットを比較する事でキーワードの同一性が判定でき、かつ暗号化タグ同士で大小比較を行う事ができるため、従来のデータベースで高速化のために実現されている2分木によるインデックス情報を作成する事ができる。
また、本方式では検索クエリも公開鍵を用いて生成し、暗号化タグと検索クエリの比較もバイナリデータとして完全に一致するかどうかで判断ができるため、検索処理を高速化できるという特徴がある。
例えば、コンピュータのログファイルで、メッセージ種別としてInfo/Errorの2種類が保管されている事を考える。
ここで、暗号化タグの統計を取った結果、“AAAAA”という暗号化タグが99%の出現頻度、“BBBBB”という暗号化タグが1%の出現頻度であったと仮定する。
一般的に、正しく運用されたコンピュータシステムでは、Errorが発生する頻度は極めて低いと考えられる事から、“AAAAA”はInfoを意味しており、“BBBBB”はErrorを意味していると推測ができてしまう。
そのため、検索が高速に実施できるというメリットがあるものの、高い機密性が求められるシステムでは確率的暗号をベースにした秘匿検索の方が推奨される事が多い。
IBEは、メールアドレスや氏名などのIDを公開鍵としてデータの暗号化を行う事が可能な暗号化方式である。
暗号化データは、IDに対応するユーザ秘密鍵を持つユーザだけが復号できる。
なお、ユーザ秘密鍵はマスター鍵を持つPKG(Private-Key Generator)によって生成され、IDと対応する正規のユーザに対してのみ発行する。
秘匿検索では、暗号化データから暗号化に用いたIDが分からないというID秘匿性を持ったIBEが利用される。
また、確率的暗号であるため、同一のIDで同一のメッセージを暗号化しても、常に異なる暗号文となるため、複数の暗号文を並べてみても同一のメッセージを暗号化したものかどうかの区別がつかないという特徴も持っている。
この乱数と暗号化乱数の対を暗号化タグとして、暗号化データと共にデータセンタ装置に保管する。
次に検索者は、自身が持つマスター鍵を元に、検索キーワードをIDとしてユーザ秘密鍵を生成する。
このユーザ秘密鍵は、キーワードを用いて暗号化されたデータを復号できる秘密鍵であり、これを検索クエリとしてデータセンタに送付して、検索を要求する。
もし、暗号化乱数を生成する際に用いたキーワード(ID)と、検索クエリ(ユーザ秘密鍵)を生成する際に用いたキーワード(ID)が同一であれば、正しく暗号化乱数を復号可能である事から、暗号化タグと検索クエリが同一のキーワードから生成されていた事が分かる。
しかし、確率的暗号である事から、暗号化タグ同士を比較しても、同一のキーワードから生成されたかの判断がつかない。
そのため、従来のデータベースで高速化のために実現されている2分木によるインデックス情報を作成する事ができず、結果として保管されている全ての暗号化タグを、それぞれ検索クエリと比較する必要が生じてしまい、検索の速度が非常に遅くなってしまうとい課題ある。
しかし、非特許文献1と同様に、保管されている全ての暗号化タグを、それぞれ検索クエリと比較する必要が生ずる点は同一であり、検索の速度が非常に遅くなってしまうという課題がある。
しかし、非特許文献1と同様に、保管されている全ての暗号化タグを、それぞれ検索クエリと比較する必要が生ずる点は同一であり、検索の速度が非常に遅くなってしまうとい課題がある。
本方式は、繰り返し同一キーワードで検索される場合に有効である。
そのため、膨大なタグを保存するデータベースで、検索キーワードが初めて指定されるキーワードであった場合に、検索結果を得るのに多大な時間を要するという課題がある。
複数の暗号化データと、各暗号化データに対応付けられている、暗号化データの検索の際に照合されるタグデータとを保管するデータ保管装置に接続され、
前記データ保管装置での保管の対象となる保管対象データのキーワードを保管キーワードとして指定するキーワード指定部と、
前記データ保管装置へのビット値の開示を許可するビット位置を許可ビット位置として指定する許可ビット位置指定部と、
所定の生成手順にて、前記保管キーワードから所定のビット列を保管インデックス導出ビット列として生成するインデックス導出ビット列生成部と、
前記保管インデックス導出ビット列内の前記許可ビット位置のビット値は前記データ保管装置に開示し前記保管インデックス導出ビット列内の前記許可ビット位置以外のビット値は前記データ保管装置に秘匿する秘匿化処理を行い、前記保管対象データの暗号化データに対応付けられるタグデータを保管する際に前記データ保管装置が前記タグデータに付す保管インデックス値を、前記データ保管装置に、前記保管インデックス導出ビット列内の前記許可ビット位置の開示されたビット値から導出させる秘匿化処理部とを有することを特徴とする。
このため、データ保管装置は、保管インデックス値を付してタグデータを保管することができ、一度も検索を行っていないキーワードであっても、保管インデックス値を用いて暗号化データを高速に検索することができる。
また、許可ビット位置以外のビット値は秘匿しているため、保管キーワードに関してデータ保管装置に漏洩する情報量を限定することができる。
実施の形態1及び2では、確率的暗号を用いた秘匿検索方式において、暗号化タグに対してキーワードの部分情報も追加で添付する事で、データセンタ装置によるインデックス作成を可能とする仕組みを説明する。
更に、実施の形態1及び2では、登録された暗号化データ数が増加して検索処理が遅くなった際に、キーワードの部分情報を更に追加で開示する仕組みを提供する事で、確率的暗号を利用した秘匿検索を安全に高速化する仕組みを説明する。
鍵管理サーバ装置201とアクセス端末装置301とは、社内LAN(Local Area Network)102に接続されている。
社内LAN102は、ネットワーク101を介してデータセンタ装置401と接続されている。
なお、アクセス端末装置301はデータ処理装置の例であり、データセンタ装置401はデータ保管装置の例である。
なお、アクセス端末装置301はアクセス端末と略記する場合があり、また、データセンタ装置401はデータセンタと略記する場合がある。
また、各ユーザのID(Identificaiton)を管理するとともに、そのIDに基づいてユーザに対してユーザ秘密鍵を発行する。
アクセス端末装置301は、データセンタ装置401での保管対象となる保管対象データを作成し、生成した保管対象データを暗号化し、暗号化データをデータセンタ装置401に保管するとともに、データセンタ装置401に蓄積した暗号化データを検索し、データセンタ装置401から取り出した暗号化データを復号して編集する。
データは暗号化された状態で保管されるため、データセンタ装置401では中身を閲覧することができない。
例えば、インターネットなどが代表的なネットワーク101の例である。
なお、複数の建物にオフィスを持つ場合は、ルータや専用線などを介して複雑な通信路構成となる。
タグデータは、暗号化データの検索の際に照合されるデータである。
また、アクセス端末装置301は、データセンタ装置401へのビット値の開示を許可するビット位置を許可ビット位置として指定する。
更に、アクセス端末装置301は、保管対象データのキーワードに対して所定の演算を行って所定のビット列(保管インデックス導出ビット列の例)を生成する。
そして、アクセス端末装置301は、ビット列内の許可ビット位置のビット値はデータセンタ装置401に開示しビット列内の許可ビット位置以外のビット値はデータセンタ装置401に秘匿する秘匿化処理を行う。
アクセス端末装置301は、保管対象データの暗号化データに対応付けられるタグデータを保管する際にデータセンタ装置401がタグデータに付すインデックス値(保管インデックス値の例)を、データセンタ装置401に、ビット列内の許可ビット位置の開示されたビット値から導出させる。
なお、このインデックス値は、いずれかのアクセス端末装置301から検索要求があった場合に、データセンタ装置401において、検索要求に含まれるトラップドア(暗号化された検索キーワード)と照合するタグデータを特定するために用いられる。
アクセス端末装置301は、許可ビット位置ごとに、許可ビット位置の暗号化ビットの復号に用いられる復号鍵であるグループ判定鍵(許可ビット復号鍵の例)を生成し、グループ判定鍵をデータセンタ装置401に送信する。
本実施の形態では、1ビット単位で許可ビット位置を指定するため、例えば、アクセス端末装置301が上位3ビットのビット値をデータセンタ装置401に開示する場合は、各ビットに対応させて3つのグループ判定鍵が順にデータセンタ装置401に送信される。
また、アクセス端末装置301は、保管対象データのキーワードから生成したビット列に対して暗号化を行う。
より具体的には、アクセス端末装置301は、許可ビット位置の暗号化ビットはグループ判定鍵により復号され、許可ビット位置以外の暗号化ビットはグループ判定鍵により復号されない暗号化方式にてビット列を暗号化する。
暗号化されたビット列は、グループ化情報という。
データセンタ装置401では、タグデータと対応付けて暗号化データを保管する。
また、データセンタ装置401では、グループ判定鍵を用いてグループ化情報の許可ビット位置の暗号化ビットを復号し、復号により得られたビット値からインデックス値を生成し、タグデータとインデックス値とを対応付けて保管する。
なお、グループ判定鍵及びグループ化情報における“グループ”とは、タグデータのグループを意味している。
例えば、許可ビット位置が上位3ビットであり、あるタグデータのグループ化情報の上位3ビットの復号から得られたインデックス値が“011”であれば、当該タグデータは、“011”のインデックス値が得られた他のタグデータと同じグループに分類されることになる。
また、アクセス端末装置301は、許可ビット位置の暗号化ビットはグループ判定鍵により復号され、許可ビット位置以外の暗号化ビットはグループ判定鍵により復号されない暗号化方式にてビット列を暗号化して、グループ化情報を生成する。
そして、アクセス端末装置301は、トラップドアとグループ化情報が含まれる検索クエリ(検索要求の例)をデータセンタ装置401に送信する。
なお、データセンタ装置401に暗号化データを登録するアクセス端末装置301と、データセンタ装置401に暗号化データの検索を要求するアクセス端末装置301は一致していなくてもよい。
次に、データセンタ装置401は、導出したインデックス値と同じインデックス値が付されているタグデータをトラップドアとの照合対象として選出する。
例えば、グループ化情報をグループ判定鍵で復号して“011”のインデックス値が得られた場合には、インデックス値“011”が付されて保管されているタグデータが選出される。
データセンタ装置401は、トラップドアとタグデータとの照合の結果、トラップドアの生成に用いられたキーワードと同じキーワードで生成されているタグデータを特定し、特定したタグデータと対応付けられている暗号化データを抽出し、抽出した暗号化データを検索要求の送信元のアクセス端末装置301に送信する。
鍵管理サーバ装置201は、マスター鍵生成部202、鍵保管部203、ユーザ秘密鍵生成部204、PKG側データ送受信部205、ユーザID情報管理部206を備える。
また、PKG側データ送受信部205は、ユーザ秘密鍵をアクセス端末装置301へ送信するためにも用いる。
また、PKG側データ送受信部205は、ユーザID情報を企業内のユーザに対して開示するために、ユーザの要求によってユーザIDをアクセス端末装置301に送信する場合もある。
また、ユーザID情報管理部206は、現時点での属性情報だけでなく、過去の属性情報も履歴として管理する。
アクセス端末装置301は、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、ユーザ秘密鍵管理部305、検索クエリ生成部306、データ復号部307、グループ判定鍵生成部308、端末側データ送受信部309、グループ化情報生成部310を備える。
また、データ暗号化部302は、保管対象データから後で検索に利用されるキーワード(保管キーワード)を複数抽出し、またユーザからデータに関連付けるキーワードを受領する。
このように、データ暗号化部302は、保管対象データからのキーワード抽出又はユーザからのキーワード受領により、保管対象データのキーワード(保管キーワード)を指定しており、キーワード指定部の例に相当する。
また、後述のグループ化情報生成部310により生成されたグループ化情報とタグを結合して、複数の暗号化タグを生成する。
このように、検索クエリ生成部306は、ユーザの指示に従って、データセンタ装置401に暗号化データの検索を行わせるキーワード(検索キーワード)を指定しており、キーワード指定部の例に相当する。
より具体的には、グループ判定鍵生成部308は、グループ化情報のうちデータセンタ装置401にビット値の開示を許可する許可ビット位置を指定し、許可ビット位置の暗号化ビットを復号化するための復号鍵であるグループ判定鍵を生成する。
生成されたグループ判定鍵は、後述の端末側データ送受信部309によりデータセンタ装置401に送信され、データセンタ装置401ではグループ判定鍵を用いてグループ化情報の許可ビット位置の暗号化ビットを復号する。
このように、グループ判定鍵生成部308は、許可ビット位置を指定しており、許可ビット位置指定部の例に相当する。
また、グループ判定鍵生成部308は、グループ判定鍵のデータセンタ装置401への提供により、グループ化情報の許可ビット位置のビット値をデータセンタ装置401の開示し、保管対象データの暗号化データに対応付けられるタグデータを保管する際にデータセンタ装置401がタグデータに付すインデックス値(保管インデックス値の例)を、データセンタ装置401に、グループ化情報の許可ビット位置の開示されたビット値から導出させる。
このように、グループ判定鍵生成部308は、後述するグループ化情報生成部310とともに、秘匿化処理部の例に相当する。
なお、後述するように、データセンタ装置401では許可ビット位置をノードの階層構造に対応付けて管理するため、以下では、許可ビット位置を階層としても表す。
例えば、上位n番目のビット位置を、第n層と表記する。
端末側データ送受信部309は、グループ判定鍵を送信する。
また、端末側データ送受信部309は、作成したタグ付き暗号化データ(保管要求の例)をデータセンタ装置401に送信する。
また、端末側データ送受信部309は、データセンタ装置401へ検索クエリ(検索要求の例)を送付したり、検索結果である暗号化データをデータセンタ装置401から受領したりする。
端末側データ送受信部309は、許可ビット復号鍵送信部、保管要求送信部及び検索要求送信部の例である。
前述したように、このインデックス値は、いずれかのアクセス端末装置301から検索要求があった場合に、データセンタ装置401において、検索要求に含まれるトラップドアと照合するタグデータを特定するために用いられる。
グループ化情報生成部310は、保管対象データのキーワードに対して所定の演算を行って所定のビット列(保管インデックス導出ビット列の例)を生成する。
そして、グループ化情報生成部310は、許可ビット位置の暗号化ビットはグループ判定鍵により復号され、許可ビット位置以外の暗号化ビットはグループ判定鍵により復号されない暗号化方式にてビット列を暗号化する。
暗号化されたビット列が、グループ化情報となる。
このように、グループ化情報生成部310は、保管対象データのキーワードからビット列(保管インデックス導出ビット列の例)を生成するとともに、暗号化によりビット列を秘匿する処理を行っており、インデックス導出ビット列生成部の例に相当し、更に、前述のグループ判定鍵生成部308とともに秘匿化処理部の例に相当する。
グループ化情報生成部310は、保管対象データの保管時のみならず暗号化データの検索時においてもグループ化情報を生成する。
暗号化データの検索時のグループ化情報の生成手順自体は、保管対象データの保管時のグループ化情報と同じである。
保管対象データの保管時のグループ化情報は保管対象データのキーワード(保管キーワード)から生成しているのに対し、データ検索時のグループ化情報は、ユーザから指示された検索のためのキーワード(検索キーワード)から生成しているという点が異なるのみである。
データセンタ装置401は、センタ側データ送受信部402、保管要求処理部403、暗号化データ管理部404、インデックス管理部405、検索処理部406を備える。
また、センタ側データ送受信部402は、アクセス端末装置301からタグ付き暗号化データを受信する。
また、センタ側データ送受信部402は、アクセス端末装置301から検索クエリを受信し、その応答として暗号化データを送信する。
また、センタ側データ送受信部402は、鍵管理サーバ装置201から公開パラメータを介して受信する。
センタ側データ送受信部402は、保管要求受信部及び検索要求受信部の例に相当する。
暗号化データ管理部404は、アクセス端末装置301から受信した暗号化データをタグと対応付けて保管する。
このため、インデックス管理部405は、許可ビット復号鍵管理部の例に相当する。
また、インデックス管理部405は、アクセス端末装置301から受信した暗号化タグの検索に適したデータ構造にてインデックス値を生成し、インデックス値に対応付けて暗号化タグを保管する。
より具体的には、インデックス管理部405は、グループ化情報内の許可ビット位置の暗号化ビットをグループ判定鍵を用いて復号し、復号により得られるビット値からインデックス値を導出し、導出したインデックス値と暗号化タグとを対応付けて保管する。
また、インデックス管理部405は、アクセス端末装置301からの検索クエリが受信された場合に、グループ判定鍵を用いて、検索クエリに含まれているグループ化情報内の許可ビット位置の暗号化ビットを復号し、復号により得られるビット値からインデックス値を導出し、導出したインデックス値と同じインデックス値と対応付けられている暗号化タグを抽出する。
また、インデックス管理部405は、新しくグループ判定鍵を受信した際、暗号化タグを保管しているインデックス情報の再構成を実施する。
検索処理部406は、この照合処理によって、タグに含まれるキーワードと、検索クエリに含まれるキーワードが一致するかどうかを判定する。
その後、検索処理部406は、検索にヒットしたタグと関連付けられた暗号化データを暗号化データ管理部404から取得し、センタ側データ送受信部402を介してアクセス端末装置301に返送する。
システム初期設定は、鍵管理サーバ装置201で実施される処理であり、秘匿検索システム100を利用する前に1回実施される処理である。
データN個に対して関連付けられたキーワードの合計がM個の場合、従来方式ではMに比例した検索時間を要するが、インデックス値を使う事でM/2^Lに比例した検索時間に削減する事ができる。
そこで、最大ツリー階層数Lは、格納するデータの最大個数、データに関連付けるキーワード数、既存秘匿検索方式と既存暗号化方式の処理時間、および検索時に求められるレスポンス時間を加味して決定する。
なお、最大ツリー階層数Lは、許可ビット位置の最大個数に相当する。
本実施の形態では、非特許文献4に記載のグループ共有型秘匿検索方式を既存秘匿検索方式として利用し、階層型IDベース暗号をグループ化情報生成に用いる既存暗号化方式Aとして利用し、データ本体の暗号化に利用する既存暗号化方式Bとして利用する。
そして、既存秘匿検索方式の利用方法を決定する。
本実施の形態で利用する既存秘匿検索方式では、マスター鍵生成部202は、タグID階層数とタグID階層構造を決定する。
例えば、図12のタグID階層構造に示す様に、マスター鍵生成部202は、タグIDは3階層で構成され、検索可能なユーザが所属する部や課等のグループ名称を格納するグループ名欄、氏名などを保管するユーザ名欄、データに関連付けたキーワードを設定するキーワード欄で構成する、等を決定する。
そして、マスター鍵生成部202は、グループ化情報生成のための既存暗号化方式Aの利用方法を決定する。
本実施の形態で利用する既存暗号化方式Aでは、マスター鍵生成部202は、グループ化情報ID階層数とグループ化情報ID階層構造を決定する。
例えば、図13の様なグループ化情報ID階層構造を利用する事を決定する。
図13のグループ化情報ID階層構造において、グループ名欄とユーザ名欄は図12のタグID階層構造のグループ名欄とユーザ名欄と同一で、キーワードの代わりに階層番号を格納する点が異なる。
階層番号に、インデックス値のツリー階層の番号(許可ビット位置の番号)を入れる事で、そのツリー階層の各層に対応したグループ化情報生成鍵が生成される。
後述するように、グループ化情報生成鍵は、アクセス端末装置301においてグループ化情報を生成する際に用いられる暗号鍵である。
同様に、マスター鍵生成部202は、データ本体を暗号化するための既存暗号化方式Bの利用方法を決定する。
本実施の形態では、復号者ID階層数と復号者ID階層構造を決定する。
例えば、図14の様な復号者ID階層構造を決定する。
図14の復号者ID階層構造において、グループ名欄とユーザ名欄は図12のタグID階層構造のグループ名欄とユーザ名欄と同一である。
ユーザID情報データベースは、ユーザ秘密鍵を作成するために必要な情報、及びアクセス端末装置301がデータを暗号化する際に、相手のグループ名/ユーザ名を特定するために必要な情報が保管されているものである。
例えば、図15に示すように、ユーザID情報データベースには、グループIDである部名、ユーザIDである氏名、所属情報、役職情報、その所属/役職等にいた期間、等が格納される。
また、ユーザID情報データベースには、最新の状況だけでなく、過去の履歴を全て格納するようにしてもよい。
同様に、マスター鍵生成部202は、既存暗号化方式Aのマスター鍵生成アルゴリズムを実行してグループ化情報用マスター鍵とグループ化情報用公開パラメータを生成し、既存暗号化方式Bのマスター鍵生成アルゴリズムを実行して暗号化用マスター鍵と暗号化用公開パラメータを生成する。
以降、秘匿検索用マスター鍵とグループ化情報用マスター鍵と暗号化用マスター鍵をまとめてマスター鍵、秘匿検索用公開パラメータとグループ化情報用公開パラメータと暗号化用公開パラメータをまとめて公開パラメータと呼ぶ事とする。
なお、S503で生成したユーザID情報データベースは、システムの運用において、ユーザの人事異動や入社や退社があるたびに内容がメンテナンスされる。
ユーザ秘密鍵発行処理は、主に鍵管理サーバ装置201とアクセス端末装置301で実施される処理であり、新規ユーザを追加した場合や、ユーザの所属するグループ名が変わった時などに実施される。
既存秘匿検索方式では、秘匿検索用ユーザ秘密鍵を生成する際にタグID階層構造を指定する必要があるが、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に設定し、キーワードは委譲可能な要素(アクセス端末装置301で指定可能な要素)として指定する事で、秘匿検索用ユーザ秘密鍵が生成できる。
既存暗号化方式Aでは、グループ化情報用ユーザ秘密鍵を生成する際にグループ化情報階層構造を指定する必要があるが、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に設定し、階層番号は委譲可能な要素(アクセス端末装置301で指定可能な要素)として指定する事で、グループ化情報用ユーザ秘密鍵が生成できる。
同様に、既存暗号化方式Bで暗号化用ユーザ秘密鍵を生成する際に復号者ID階層構造を指定する必要があるが、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に指定する事で、暗号化用ユーザ秘密鍵が生成できる。
上記で生成した秘匿検索用ユーザ秘密鍵、グループ化情報用ユーザ秘密鍵、暗号化用ユーザ秘密鍵の3個をまとめてユーザ秘密鍵と呼ぶ事にする。
データ暗号化処理は、主にアクセス端末装置301とデータセンタ装置401で実施される処理であり、保管対象データを暗号化してデータセンタ装置401に保管する時に実施される。
受け取るグループ名やユーザ名は一つである必要はなく、復号可能なユーザが複数名いる場合は複数受け取る事もできる。
なお、本実施の形態で利用する既存秘匿検索方式や既存暗号化方式Aや既存暗号化方式Bは、グループ名やユーザ名として誰でも良い事を意味するワイルドカードを受け取る事も可能である。
キーワードは、保管対象データから自動的に抽出しても良いし、ユーザから受領する様にしても良い。
また、キーワードは1個である必要はなく、複数関連付けて良い。
具体的には、データ暗号化部302は、ランダムにセッション鍵を生成し、そのセッション鍵でAES(Advanced Encryption Standard)やCamellia(登録商標)等の共通鍵暗号を用いて保管対象データを暗号化し、暗号化データ本体を生成する。
次に、データ暗号化部302は、復号者ID階層構造のグループ名とユーザ名に、S701で受け取ったグループ名とユーザ名をそれぞれ指定して、これを暗号化用公開鍵として既存暗号化方式Bを用いてセッション鍵を暗号化し、暗号化セッション鍵を生成する。
そして、データ暗号化部302は、前述の2個の暗号化結果を組み合わせる事で、暗号化データを生成する。
生成した暗号化データのデータ構造を図16に示す。
なお、S701にて複数のグループ名とユーザ名を受領している場合、全てのグループ名とユーザ名の組に対して暗号化セッション鍵を生成する必要がある。
具体的には、グループ化情報生成部310は、グループ化情報ID階層構造(図13)のグループ名とユーザ名に、S701で受け取ったグループ名とユーザ名をそれぞれ指定して、階層番号に1からL(図5のS501で決定されたインデックス情報の最大ツリー階層数)までの数を文字列として設定する事で、L個のグループ化情報生成鍵を作成する。
なお、階層番号に1が設定されたグループ化情報ID階層構造が第1階層のグループ化情報生成鍵となり、階層番号にLが設定されたグループ化情報ID階層構造が第L階層のグループ化情報生成鍵となる。
次に、グループ化情報生成部310は、キーワードを元にLビットのビット列を生成する。
これは例えば、SHA-2等のハッシュ関数を用いてキーワードのハッシュ値を生成し、その中から任意のLビットを抽出する事で作成する事ができる。
このため、ハッシュ値においてLビットを連続させて選択してもよいし、例えばハッシュ値の1ビット目と3ビット目と6ビット目と11ビット目というように非連続にLビットを選択してもよい。
但し、検索時に生成するグループ化情報においても、同じビット位置でLビットを選択する必要がある。
また、グループ化情報生成部310は、抽出ビット列の1つ目を第1階層グループ化情報生成鍵を用いて既存暗号化方式Aにて暗号化して暗号化第1情報を作成し、2つ目を第2階層グループ化情報生成鍵を用いて既存暗号化方式Aにて暗号化して暗号化第2情報を作成し、順番にL個目まで全てを暗号化し、これらをまとめてグループ化情報とする。
このように、グループ化情報生成部310は、保管対象データに対するアクセスが許可されるユーザのユーザ情報が反映されているL個のグループ化情報生成鍵を用いて、キーワードのハッシュ値のLビットを暗号化して、グループ化情報を生成する。
生成したグループ化情報の構成を図17に示す。
なお、S701にて複数のグループ名とユーザ名を受領している場合、全てのグループ名とユーザ名の組に対してグループ化情報を生成する。
具体的には、暗号化タグ生成部303は、タグID階層構造のグループ名とユーザ名にS701で受け取ったグループ名とユーザ名を、キーワード欄にS702にて決定したキーワードをそれぞれ指定し、このタグID階層構造を暗号鍵にして乱数を暗号化し、既存秘匿検索方式でタグを作成する。
そして、暗号化タグ生成部303は、このタグと、S704にて同じキーワードから作られたグループ化情報を結合して暗号化タグとする。
生成した暗号化タグの構成を図16に示す。
なお、上記はキーワード1個に対する処理であるため、これをデータに関連付けられた全てのキーワードに対して実施する。
また、S701にて複数のグループ名とユーザ名を受領している場合、全てのグループ名とユーザ名の組に対して暗号化タグを生成する。
この時、データセンタ装置401でタグ付き暗号化データの保管を容易にするため、S701にて受領したグループ名とユーザ名を共に送付する。
図16では、グループ名とユーザ名をタグ付き暗号化データに含めた構成のタグ付き暗号化データを示している。
そして、暗号化データ管理部404にて暗号化データを保管する。
なお、暗号化データ管理部404は、S706にてタグ付き暗号化データに含められたグループ名とユーザ名ごとに暗号化データを分けて保管し、さらに保管した暗号化データに管理番号を付与して、後で管理番号から暗号化データを一意に特定できる様にする。
なお、暗号化データが複数のグループ名やユーザ名と関連付けられている場合、ぞれぞれのグループ名とユーザ名に対して暗号化データを関連付けて保管する。
複数のグループ名とユーザ名に関連付けられている場合、暗号化データは1個だけ格納し、他は参照情報のみを保管する様にすることでディスク容量の節約が可能である。
図18は、暗号化データの保管例を示している。
図18の様に、グループ名が“総務部”でユーザ名が“*”(ワイルドカード)である暗号化データと管理番号をまとめて管理し、さらにグループ名が“開発部”でユーザ名が“*”である暗号化データと管理番号をまとめて管理する、という様に保管する。
また、総務部と開発部の両方に開示されるデータがあった場合、例えば管理番号000002に暗号化データ本体を関連付けて保管し、管理番号100002には暗号化データとして管理番号000002を参照する様なポインタを保管する。
インデックス管理部405は、S706にてタグ付き暗号化データに含められたグループ名とユーザ名ごとに分けて、受け取った暗号化タグと管理番号を保管する。
なお、図19の例に示す様に、インデックス情報もグループ名、ユーザ名ごとに管理しているものとする。
また、図19のインデックス情報において、グループ判定鍵セットの第1層目用のグループ判定鍵は、グループ化情報内の暗号化第1情報(図17)を復号するための復号鍵、つまり、許可ビット位置の1ビット目の暗号化ビットを復号するための復号鍵である。
同様に、グループ判定鍵セットの第2層目用のグループ判定鍵は、グループ化情報内の暗号化第2情報(図17)を復号するための復号鍵、つまり、許可ビット位置の2ビット目の暗号化ビットを復号するための復号鍵である。
また、インデックス情報内のノードとは、暗号化タグ(タグ+グループ化情報)に対応付けられるインデックス値である。
例えば、ノード“01”は、グループ化情報の暗号化第1情報を復号して得られたビット値が“0”であり、暗号化第2情報を復号して得られたビット値が“1”であり、これらを連結して“01”が得られたことを示している。
つまり、図19の例では、アクセス端末装置301からは、上位2つのビット位置しかビット値の開示が許可されておらず、2つのグループ判定鍵のみがデータセンタ装置401に提供されており、このため、インデックス値は2ビットになる。
ここでグループ判定鍵は階層ごと(許可ビット位置ごと)に1個ずつ割り当てられており、後述する様に第1階層目から順番に1個ずつアクセス端末装置301から開示されるため、ここでは合計L’(L’≦L)個のグループ判定鍵が保管されていたと仮定する。
アクセス端末装置301によるグループ判定鍵の生成、アクセス端末装置301からデータセンタ装置401へのグループ判定鍵の送付、データセンタ装置401におけるグループ判定鍵の保管は、図7及び図8に示すフローとは非同期に行われ、ここでは、既に、L’個のグループ判定鍵がアクセス端末装置301により生成され、データセンタ装置401のインデックス管理部405に保管済みであると仮定する。
なお、アクセス端末装置301によるグループ判定鍵の生成、データセンタ装置401におけるグループ判定鍵の保管の詳細は図11を参照して後述する。
そして、暗号化第1情報から暗号化第L’情報までを、第1層目用のグループ判定鍵から第L’層目用のグループ判定鍵までを用いて復号し、第1情報から第L’情報を取得する。
そして、インデックス管理部405は、S705にて受領したグループ名とユーザ名に対応した2分木の中から該当するノードを特定し、そのノードに関連付けてS802で取り出した暗号化タグと、S707にて受領した管理番号を保管する。
例えば、図20に示す様に、最初はルートノード(N(R))を起点として、第1情報が0か1かによって、左右のいずれかの子ノードを取り出す。
同様に第2情報が0か1かによって、左右のいずれかの子ノードを取り出す。
これを保有する全ての情報を用いて実施する。
なお、図20の右側の矢印内の“1”は、第1情報によって第1層のノードが選択されることを示しており、また、矢印内の“2”は、第2情報によって第2層のノードが選択されることを示している。
例えば、第1情報が0、第2情報が1の場合、図20に示すノード01(N(01))が該当ノードとして検出され、そのノード01に暗号化タグと管理番号を関連付けて保管する。
前述の図19では、第1情報から第L’情報(図19では、L’=2)までを並べて作成したノードを表す番号(インデックス値)と、暗号化タグと、対応する暗号化データの管理番号を、表形式にて保管しているインデックス情報の例を示している。
もし残っていればS802の処理に戻り、残っていなければ終了する。
暗号化データ検索処理は、主にアクセス端末装置301とデータセンタ装置401で実施される処理であり、データセンタ装置401に保管された暗号化データを取得する時に実施される。
更に、検索クエリ生成部306は、受け取った検索キーワードをグループ化情報生成部310に通知する。
本処理は、ステップS704の処理と同一である。
つまり、グループ化情報生成部310は、アクセス端末装置301のグループ名とユーザ名(暗号化データを検索しようとするユーザの所属グループのグループ名と当該ユーザのユーザ名)を入力し、入力したグループ名とユーザ名をグループ化情報ID階層構造(図13)のグループ名とユーザ名に指定して、階層番号に1からLまでの数を文字列として設定する事で、L個のグループ化情報生成鍵を作成する。
次に、グループ化情報生成部310は、例えば、SHA-2等のハッシュ関数を用いて検索キーワードからLビットのビット列を生成する。
なお、ハッシュ値からのLビットの抽出は、暗号化データ保管時と同じビット位置のハッシュ値を抽出する。
また、グループ化情報生成部310は、抽出ビット列の1つ目を第1階層グループ化情報生成鍵を用いて既存暗号化方式Aにて暗号化して暗号化第1情報を作成し、2つ目を第2階層グループ化情報生成鍵を用いて既存暗号化方式Aにて暗号化して暗号化第2情報を作成し、順番にL個目まで全てを暗号化し、これらをまとめてグループ化情報とする。
具体的には、秘匿検索用ユーザ秘密鍵と検索キーワードを入力として、既存秘匿検索方式の検索クエリ生成関数を実行して、トラップドアを生成する。
次に、検索クエリ生成部306は、S902にて生成したグループ化情報とトラップドアを結合して検索クエリとする。
生成した検索クエリの構成を図21に示す。
そして、検索クエリ生成部306は、端末側データ送受信部309を介して、生成した検索クエリをデータセンタ装置401に送付する。
この時、ユーザ自身のグループ名とユーザ名も送付する。
なお、インデックス管理部405における暗号化タグの取得処理は複雑であるため、図10を用いて詳細を説明する。
そして、未処理のインデックス情報を、これから処理を行う対象のインデックス情報として特定する。
つまり、インデックス管理部405は、グループ化情報を分解して暗号化第1情報から暗号化第L情報(図17)までを取り出す。
そして、暗号化第1情報から暗号化第L’情報までを、第1層目用のグループ判定鍵から第L’層目用のグループ判定鍵までを用いて復号し、第1情報から第L’情報を取得する。
そして、そのポインタが指すノードに関連付けられた暗号化タグと管理番号の組を全て取り出し、検索処理部406に送付する。
つまり、インデックス管理部405は、第1情報から第L’情報で示されているビット値から得られる値(インデックス値)と同じ値のノード番号をS1001で特定したインデックス情報において特定し、特定したノード番号に対応付けられている暗号化タグと管理番号の組を全て取り出し、検索処理部406に送付する。
もし存在する様であればステップS1006へ、存在しない様ならステップS1007に処理を進める。
例えば、ポインタがルートノードを指している様であれば親ノードは存在しないため、ステップS1007の処理に進む。
S1005及びS1006は、図11を用いて後述するインデックス再構成処理の最中に検索クエリを受信した場合に対処するための処理である。
つまり、インデックス再構成処理において、全ての暗号化タグと管理番号の組が新たなノード番号(L’+1階層のノード番号)へ振り分けられる前に、検索クエリを受信した場合には、L’+1階層のノード番号についての検索のみならず、振り分けが完了していないL’階層のノード番号(親ノード)についての検索も必要になるため、S1005及びS1006の処理を行う。
例えば、ポインタが図20のノード01(N(01))を指している場合は、親ノードであるノード0(N(0))の暗号化タグと管理番号の組を取り出す。
その後、S1005の処理に進む。
既存秘匿検索技術の判定処理は、1個のタグと、1個のトラップドアの比較しか実施できないため、これをS904にて取得した全ての暗号化タグに対して実施する。
そして、検索処理部406は、判定処理の結果、一致と判定された暗号化タグに関連付けられた管理番号を特定する。
これを全ての暗号化データに対して実施する。
インデックス再構成処理は、主にアクセス端末装置301とデータセンタ装置401で実施される処理である。
データセンタ装置401では、暗号化データの開示先であるグループ名とユーザ名ごとにインデックス情報を管理しているため、ここで受け取ったグループ名とユーザ名を用いて、再構成するインデックス情報を一意に特定する事ができる。
そして、グループ判定鍵生成部308は、新たに発行するグループ判定鍵の階層L’+1を特定する。
つまり、グループ判定鍵生成部308は、新たな許可ビット位置であるL’+1ビット目を指定する。
グループ化情報用ユーザ秘密鍵は、グループ化情報ID階層構造(図13)のグループ名とユーザ名が指定された状態で発行されているため、グループ判定鍵生成部308は、新たに階層番号L’+1を指定して、既存暗号化方式の鍵委譲機能を実行する事で、階層L’+1に対応するグループ判定鍵を生成する。
そして、グループ判定鍵生成部308は、生成したグループ判定鍵を、S1101にて受け取った再構成したいインデックス情報に関連付けられたグループ名とユーザ名と共に、端末側データ送受信部309を介してデータセンタ装置401に送付する。
なお、グループ判定鍵生成部308による新たな階層L’+1に対応するグループ判定鍵の生成及びデータセンタ装置401への送付は、新たな許可ビット位置を指定すること及び新たな許可ビット位置の暗号化ビットの復号を許可することに相当する。
そして、グループ化情報の暗号化第L’+1情報を、階層L’+1用のグループ判定鍵を用いて、既存暗号化方式で復号する事で、暗号化タグを第L’+1階層に振り分けるための第L’+1情報を取得する。
そして、暗号化タグと管理番号を、選択した第L’階層ノードの子ノードのいずれに振り分けるかを第L’+1情報を元に決定し、第L’階層ノードの関連付けを削除して、新たに第L’+1階層ノードに関連付けて保存する。
これを選択した第L’階層に関連付けられた全ての暗号化タグに対して実施する。
本処理のイメージを図22に示す。
もし処理をしていないノードが存在する場合はステップS1107に進み、処理を行っていないノードが無い場合は終了する。
暗号化タグには、グループ化情報が含まれている。
図19の例では、グループ化情報の上位2ビットのみが復号され、3ビット目以降は秘匿されているままの状態である。
このとき、アクセス端末装置301が、グループ化情報の上位3ビット目までのビット値の開示を許可した場合には、3ビット目の復号のためのグループ判定鍵(第3層目用のグループ判定鍵)がアクセス端末装置301からデータセンタ装置401に送信される。
図19のグループ名:総務部、ユーザ名:*のインデックス情報を例にして説明すると、1行目のレコードの暗号化タグ(“2j0”#%Dq”)に含まれているグループ化情報の3ビット目の暗号化ビット(暗号化第3情報)を第3層目用のグループ判定鍵を用いて復号し、3ビット目の復号値(第3情報)を取得する。
この結果、3ビット目の復号値が、例えば、“0”であれば、新たなノード番号として、“010”が設定され、この新たなノード番号“010”に対して、暗号化タグ“2j0”#%Dq”と管理番号“000001”との組が対応付けられる。
他のレコードに対しても同様の処理が行われる。
例えば、グループ名:総務部、ユーザ名:*のインデックス情報の2行目のレコードに対してグループ化情報の3ビット目の暗号化ビットを復号して、新たなノード番号“011”が得られた場合には、1行目のレコードのタグと2行目のレコードのタグは異なるグループに属することになる。
このように、ノード番号のビット数が増えると、各グループに含まれるタグの数が減り、検索クエリを受信した際のトラップドアとタグとの照合処理に要する時間を低減することができる。
検索の際にも、検索クエリに含まれるキーワードに応じてグループ化情報を作成しているため、必要に応じてデータセンタ装置401はこのグループ化情報とグループ判定鍵を使う事で、検索したいキーワードがどの暗号化タグのグループに対応しているかを一意に特定する事ができる。
そのため、全ての暗号化タグに対して既存秘匿検索技術の判定処理を行う必要が無くなり、特定のグループに属する暗号化タグに対してのみ既存秘匿検索技術の判定処理を行えばよく、秘匿検索の時間を大きく削減する事ができる。
例えば、L’個のグループ判定鍵がデータセンタ装置401に開示されている状況では、暗号化タグM個を2^L’個のグループに分割する事ができるため、各グループには平均的にM/2^L’個の暗号化タグが含まれる。
そのため、本実施の形態によって、検索処理は2^L’倍に高速化される。
そのため、開示するグループ判定鍵の数によって、ユーザがグループ化のレベルを調整する事ができる。
例えば、L’個のグループ判定鍵を開示している状況で、暗号化データの保管数が増えるに従って検索時間がT時間になり、運用に支障が生じたとする。
この時、新しくL’+1階層目に対応したグループ判定鍵を開示する事で、暗号化タグを2倍のグループに分割する事ができるため、検索時間をT/2に削減する事ができる様になる。
一方、暗号アルゴリズム開発の世界では、暗号化データ中に含まれるキーワードによって、暗号化データのグループ化ができない事が高い安全性を持つ暗号と評価される。
そのため、データの機密性を保護したいユーザは、不必要にデータセンタ装置401に暗号化データをグループ化されてしまう事は望まない。
本実施の形態によれば、ユーザが求める安全性のレベルと検索処理の応答時間に応じて、必要最小限のグループ判定鍵のみをデータセンタ装置401に与える様にユーザ自身が制御する事ができる。
そのため、グループ化情報としてLビットの情報を付加していたとしても、開示するグループ判定鍵の数を調整する事で、ユーザ自身によって安全性と高速性のバランスを調整する事ができる。
そのため、本実施の形態で示した既存秘匿検索方式だけでなく、提案されている様々な既存秘匿検索方式に対して適用可能であり、その検索性能を向上させる事ができる。
本実施の形態では、非特許文献4の記載の方式に適用した例を示したが、非特許文献4が実現した暗号化データのグループ共有が可能という特徴を失うことなく、秘匿検索の検索速度を高速化できる。
同様に、例えば非特許文献1に記載の方式にも適用できるし、非特許文献3に記載の方式などでも適用可能であり、あらゆる既存秘匿検索方式に対して適用可能である。
そのため、一般的によく利用されているRSA(登録商標)(Rivest Shamir Adleman)暗号などを利用する事も可能である。
一般的に秘匿検索の検索時間だけを見れば確定的暗号に基づく方式が早いが、暗号化データの出現頻度を分析して平文を推定できるという課題がある。
一方、確率的暗号に基づく方式は、暗号化データの出現頻度がキーワードの出現頻度と無関係なため、出現頻度の分析による平文の推定に対して安全であるが、検索処理にとても時間がかかるという課題がある。
しかし、本実施の形態では、確率的暗号に基づいているため、検索が高速化されているにもかかわらず、出現頻度による分析に対しての安全性が残っているというメリットがある。
そのため、ユーザが検索を行う場合、元々読む事ができない暗号化データが含まれるインデックス情報を検索する必要が無くなるため、検索処理を大きく向上させる事ができる。
本実施の形態では、グループ判定鍵の開示は、グループ名とユーザ名の組と関連付けられたインデックスに対して実施する様な仕組みとした。
そのため、開示範囲ごとに安全性と高速性のバランスを調整する事ができる。
そのため、追加でグループ判定鍵を受け取ってインデックス情報の再構成を行っている最中に検索クエリを受け取ったとしても、検索対象とすべき暗号化タグを漏らすことなくチェックする事ができる。
具体的には、グループ名とユーザ名と最大階層数Lだけを送付すれば、アクセス端末装置301にてグループ化情報ID階層構造に受領した値を設定する事で、L個のグループ情報生成鍵を生成する事ができるため、通信コストを削減する事ができる。
同様に、グループ化情報を生成したり、暗号化タグを生成したりするための補助にもなる。
なお、本実施の形態では、2分木を用いたインデックス情報を構成する例を示した。
しかし、生成するインデックスは2分木に限る必要はなく、グループ化情報から生成する事ができるものであれば、より一般的な木構造であっても良く、ハッシュテーブルであっても良い。
また、インデックス情報として作成した2分木は、その構造を保ったままディスクに保管する必要はなく、例として示した様にノード番号を割り当てて表形式で保管しても良いし、その他のデータ形式で保管しても良い。
また、本実施の形態では、キーワードから生成したビット列の第iビットを暗号化する事で、グループ化情報の暗号化第i情報を生成する様にした。
しかし、1ビットずつ暗号化する必要はなく、2ビット以上の情報を用いて暗号化第i情報を生成する様にしても良い。
例えば、キーワードから2Lビットのビット列を生成し、その第2i-1ビット目と第2iビット目を暗号化して、暗号化第i情報を生成するようにすることも可能である。
また、本実施の形態では、グループ化情報の暗号化第i情報には、0や1といった1ビットの情報を含める例を示した。
しかし、グループ化情報の暗号化第i情報を用いて2分木の子ノード(左)か子ノード(右)かを判断できればいいので、必ずしも0や1の1ビットの情報である必要はない。
例えば、第i情報に任意の数値を指定して暗号化第i情報を作成しておき、偶数の場合は子ノード(左)、奇数の場合は子ノード(右)と割り振っても良い。
他にも、第i情報に0から100までの数値を指定して暗号化第i情報を作成しておき、50未満の場合は子ノード(左)、50以上の場合は子ノード(右)と割り振っても良い。
この様に、第i情報として指定する値は、子ノードの判定方法と関連付いていれば、どの様な情報を設定しても良い。
また、本実施の形態では、グループ化情報の暗号化第i情報をグループ判定鍵を用いて復号する事で、2分木の子ノード(左)か子ノード(右)かを判定する0/1の情報を得ていた。
しかし、かならずしもこの様にする必要はなく、例えば実施の形態2で示す様に、グループ判定鍵(暗号化タグ用)とグループ判定鍵(検索クエリ用)を用いて、データセンタ装置401側で第i情報を生成する様な仕組みとしても良い。
この場合、グループ化情報に設定した値自身もデータセンタ装置401には分からないため、それがキーワードのハッシュ値であったとしてもキーワードの推測が困難であり、安全性を向上させる事ができる。
また、本実施の形態では、グループ化情報を作成する際に全てのビットを暗号化する様にしたが、一部もしくは全てを暗号化せずに平文のまま送っても良い。
例えば、データセンタ装置401側で保持するグループ判定鍵の数が分かっている場合、その対応するビットは暗号化してもデータセンタ装置401側で復号される事が分かるので、そこは平文のまま送る様にしても良い。
また、本実施の形態では、キーワードからLビットのビット列を作成する際に、例えばSHA-2等のハッシュ関数を利用する事を例示したが、Lビットのビット列が作れるものであればアルゴリズムは何でも良い。
例えば、SHA-2以外のハッシュ関数を用いても良いし、HMAC等の鍵付きハッシュや、AES等の共通鍵暗号や、RSA(登録商標)暗号等の公開鍵暗号を用いても良い。
なお、鍵付きハッシュや共通鍵暗号や公開鍵暗号を用いる場合は、グループ情報生成鍵に加えてハッシュ鍵や共通鍵や秘密鍵も配布する必要がある。
また、キーワードを乱数のシードとして、疑似乱数生成アルゴリズムでLビットの乱数を生成する様にしても良い。
他にも、キーワードとLビット列の対応表を使う様にしても良い。
特に、Lビット列の対応表を用いる場合、キーワードの出現頻度を考慮してLビット列の発生頻度を平準化できるため、安全性が更に向上する事が期待できる。
また、本実施の形態では、ユーザがグループ判定鍵を1個ずつ開示する事を想定した例を記載したが、1回に1個ずつと制限する必要はなく、同時に2個や3個のグループ判定鍵を公開する様にしても良い。
また、本実施の形態では、システム利用前にグループ化情報ID階層構造を定めておき、ユーザがグループ化情報を生成するタイミングでグループ名・ユーザ名・階層番号を指定してグループ化情報生成鍵を生成していた。
しかし、グループ化情報生成鍵はシステム利用前やユーザ秘密鍵発行時などのタイミングで一括して発行しても良い。
特に、既存暗号化方式としてAESやRSA(登録商標)暗号などを使う場合は、暗号化より前のタイミングで生成する事が必要となる。
また、本実施の形態では、タグID階層構造やグループ化情報ID階層構造や復号者ID階層構造にて、グループ名とユーザ名の2種類の情報を用いて復号・検索が可能なユーザやグループを指定する例を示した。
しかし、この2種類の情報に制限する必要はなく、例えば部名・課名・氏名の3種を用いても良いし、氏名だけを用いても良い。
また、もっと多くの情報を用いて受信者を指定しても良い。
また、本実施の形態では、タグ付き暗号化データを生成する際、タグID階層構造やグループ化情報ID階層構造や復号者ID階層構造に、グループ名とユーザ名として同じ値を設定する例を示した。
しかし、これらは同じ値にせず、異なる値を設定しても良い。
例えば、グループ判定鍵の生成をユーザ自身に実施させずに管理者が実施する場合は、タグID階層構造と復号者ID階層構造には開示先ユーザのグループ名とユーザ名を設定しておき、グループ化情報ID階層構造にはグループ判定鍵の生成が可能な管理者のグループ名とユーザ名を指定する様にすればよい。
また、ユーザには検索だけ許可し、暗号化データ自身の復号は許可したくない場合は、タグID階層構造にはユーザのグループ名とユーザ名を設定し、復号者ID階層構造には別の復号可能なユーザのグループ名とユーザ名を設定すればよい。
また、本実施の形態では、鍵管理サーバ装置201が1台の例を示したが、1台に制限する必要はない。
例えば、非特許文献4の方式や、その他の秘匿検索方式では、鍵管理サーバ装置にも階層構造を持たせ、複数台に役割を分散して運用する形態も記載されている。
本実施の形態でも同様にして、鍵管理サーバ装置に階層構造を持たせた形で利用する事も可能である。
また、本実施の形態では、IDベース暗号に基づく既存秘匿検索方式や既存暗号化方式Aや既存暗号化方式Bを用いた例を示した。
しかし、IDベース暗号に基づく方式に制約するものではなく、AESやCamellia(登録商標)やHMACなどの共通鍵暗号や、RSA(登録商標)暗号などの公開鍵暗号を用いる事も可能である。
また、本実施の形態では、IDベース暗号に基づく既存秘匿検索方式や既存暗号化方式Aや既存暗号化方式Bを用いた例を示したが、それぞれ異なる公開パラメータを利用する様にした。
しかし、例えば利用する楕円曲線など、公開パラメータの一部の情報を共通化して利用する事も可能である。そのため、共通化できるものは共通化して利用しても構わない。
また、本実施の形態では、検索キーワードが1個の場合を示したが、必ずしも検索キーワードを1個に制限する必要はない。
例えば、複数の検索キーワードがある場合、それぞれのキーワードに対して検索クエリを生成して、全ての検索クエリをデータセンタ装置401に送付しても良い。
またその時、例えば1個の検索クエリでヒットと判定された暗号化データを取得するとか、検索クエリAと検索クエリBの両方がヒットした暗号化データを取得する等、任意の条件も送付して良い。
また、本実施の形態では、インデックス管理部405から取得した暗号化タグの全てを検索クエリと判定する様にした。
しかし、検索にヒットしたと判定された暗号化データに関しては、それ以降、その暗号化データに関連付けられた暗号化タグのチェックをしなくても構わない。また、検索結果として例えば10件の結果を返せばいい場合においても、規定個数以上の検索結果が見つかったら、それ以降の暗号化タグのチェックを行わなくても良い。
また、本実施の形態では、鍵管理サーバ装置201にユーザID情報データベースを設け、その情報を元にユーザ秘密鍵の生成を行っていた。
しかし、ユーザID情報データベースは必ずしも必須なものではなく、ユーザ秘密鍵を発行する際に鍵管理サーバ装置201の管理者によって指定する様にしても良いし、アクセス端末装置301から受領する様にしても良い。
また、本実施の形態では、アクセス端末装置301は一人のユーザが操作するものと仮定した記載とした。
しかし、アクセス端末装置301自身は一人のユーザが占有するものではなく、複数名で共有する様な仕組みでも良い。
この場合、ユーザ秘密鍵管理部305ではユーザごとに1個のユーザ秘密鍵が割り当てられるため、複数のユーザ秘密鍵を保管する様にして、アクセス端末装置301で操作者の認証をする事で、どのユーザ秘密鍵を利用すべきかを判断する事が好ましい。
また、ユーザ秘密鍵を社員証などに保管して管理する事も可能である。
この場合、ユーザ秘密鍵管理部305がICカードに相当する機能だが、ユーザ秘密鍵を用いた処理をICカードにて全て行わせる場合、必要に応じて検索クエリ生成部306やデータ復号部307やグループ判定鍵生成部308の一部の処理をICカードに実施させても良い。
また、本実施の形態では、データを暗号化する際にAESやCamellia(登録商標)を自動的に用いる事を例示したが、これはシステム内で事前に利用する方式を決定しておいても良いし、ユーザによって設定できる様にしておいても良い。
また、本実施の形態では、検索の結果、ヒットした暗号化データを全て返却する様な例を示したが、必ずしも検索時に同時に全ての暗号化データ自身を返却する必要はない。
例えば、ヒットした暗号化データのうち数個を返すだけにするとか、個数だけを返す様にするとか、暗号化データのリストだけを返却する様にしても良い。
また、本実施の形態では、鍵管理サーバ装置201とアクセス端末装置301が企業内にあり、データセンタ装置401がインターネットなどに接続された外部サービスとして存在した例を示した。
しかし、本発明はこの様なシステム構成に限定されるものではない。
例えば、データセンタ装置401が企業内にあっても良いし、鍵管理サーバ装置201やアクセス端末装置301が企業外のネットワークに接続されていても良い。
アクセス端末装置301のグループ化情報生成部310は、
保管キーワードのハッシュ値から、インデックス情報のノードの最大階層数と同数であるLビットのビット列を抽出し、抽出したLビットのビット列をIDベース暗号化方式で暗号化してグループ化情報を生成していることを説明した。
換言すると、グループ化情報生成部310(インデックス導出ビット列生成部、秘匿化処理部)は、
保管キーワードから一意に得られる乱数値のビット列から、許可ビット位置として指定できる最大数と同数のビット数のビット列を抽出して、保管インデックス導出ビット列を生成し、生成した保管インデックス導出ビット列をIDベース暗号化方式で暗号化している。
グループ化情報生成部310が、
保管キーワードのハッシュ値から連続するLビットを抽出してもよく、また、1ビット目と3ビット目と6ビット目と11ビット目というように非連続にLビットを抽出するようにしてもことを説明した。
換言すると、グループ化情報生成部310は、
保管インデックス導出ビット列の生成の際に、保管キーワードから一意に得られる乱数値のビット列から、許可ビット位置として指定できる最大数と同数の連続ビットを抽出してもよく、また、許可ビット位置として指定できる最大数と同数の非連続ビットを抽出してもよい。
グループ化情報生成部310は、
Lビットのビット列の各ビットで異なるグループ化情報生成鍵を用いて暗号化を行って、グループ化情報を生成していることを説明した。
換言すると、グループ化情報生成部310は、
保管インデックス導出ビット列の暗号化の単位ビットごとに異なる暗号鍵を用いている。
グループ化情報生成部310は、
グループ化情報ID階層構造(図13)のグループ名及びユーザ名の少なくともいずれかにワイルドカード指定して、L個のグループ化情報生成鍵を生成できることを説明した。
換言すると、グループ化情報生成部310は、
保管対象データに対するアクセスが許可されるユーザのユーザ情報をワイルドカードを用いて定義し、ワイルドカードを用いて定義されたユーザ情報が反映されている暗号鍵を用いて、保管インデックス導出ビット列を暗号化することができる。
データセンタ装置401のインデックス管理部405は、
暗号化データ管理部404が保管対象の暗号化データを暗号化タグと対応付けて保管する際に、グループ化情報をグループ判定鍵を用いて復号し、復号により得られるノード番号と暗号化タグを対応付けて保管することを説明した。
換言すると、インデックス管理部405は、
暗号化データ管理部404が保管対象の暗号化データをタグデータと対応付けて保管する際に、暗号化されたビット列内の許可ビット位置の暗号化ビットを許可ビット復号鍵を用いて復号し、復号により得られるビット値からインデックス値を導出し、導出したインデックス値とタグデータとを対応付けて保管している。
インデックス管理部405は、
検索クエリを受信した際に、グループ化情報の復号により得られたノードに対応付けられている暗号化タグと管理番号の組を取り出すとともに、当該ノードの親ノードに関連付けられた暗号化タグと管理番号の組を全て取り出し、検索処理部406に送付することを説明した。
換言すると、インデックス管理部405は、
検索要求に含まれる暗号化されたビット列内の許可ビット位置の暗号化ビットを復号し、復号により得られる許可ビット位置のビット値からインデックス値を導出し、導出したインデックス値と同じインデックス値と対応付けられているタグデータを抽出し、
更に、許可ビット位置のうち最下位の許可ビット位置を除く許可ビット位置の暗号化ビットの復号により得られるビット値からインデックス値を導出し、導出したインデックス値と同じインデックス値と対応付けられているタグデータを抽出する。
以上の実施の形態1では、グループ化情報生成のための既存暗号化方式Aとして階層型IDベース暗号を用いたものであるが、次に非特許文献5に記載の内積述語暗号を用いて、タグ自身にグループ化情報も含める事が可能な実施の形態を示す。
内積述語暗号では、属性ベクトルというベクトルを公開鍵として用いて、任意のメッセージを暗号化する事ができる。
ユーザ秘密鍵には、述語ベクトルというベクトルが埋め込まれており、この述語ベクトルはユーザごとに異なるベクトルを用いる事が多い。
そして、暗号化データに埋め込まれた属性ベクトルと、ユーザ秘密鍵に埋め込まれた述語ベクトルの内積が0となる場合にのみ、そのユーザ秘密鍵を用いて、その暗号化データを復号できる。
もし内積が0にならない場合は、正しく復号できないという方式である。
そして、そのIDが一致する時にのみ、そのユーザ秘密鍵を用いて、その暗号化データが復号できた。
そのため、内積述語暗号はIDベース暗号を一般化したものと考える事ができる。
さらに、ANDやOR等の論理式をベクトルの内積を用いて評価できるという特徴があるため、IDベース暗号よりも復号条件を柔軟に指定可能であるという特徴もある。
データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、ユーザ秘密鍵管理部305、検索クエリ生成部306、データ復号部307、端末側データ送受信部309に関しては、実施の形態1の図3で示したものと同一である。
グループ化ビット列生成部2301は、実施の形態1におけるグループ化情報生成部310に対応する要素であり、インデックス導出ビット列生成部の例及び秘匿化処理部の例に相当する。
なお、グループ判定鍵は、暗号化タグのグループ化に用いるグループ判定鍵(暗号化タグ用)と、検索クエリがどのグループの暗号化タグを参照しているかを判定するために用いるグループ判定鍵(検索クエリ用)の2種から構成される。
なお、本実施の形態においても、グループ判定鍵生成部308は、許可ビット位置指定部の例及び秘匿化処理部の例に相当する。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した図5の処理の流れを用いて、その差異を中心に説明する。
なお、既存秘匿検索方式がグループ化情報を含む暗号化タグの生成に用いるもので、既存暗号化方式がデータ本体を暗号化するために用いる方式である。
例えば、図29のタグID階層構造に示す様に、タグIDは3階層で構成され、検索可能なユーザが所属する部や課等のグループ名称を格納するグループ名欄、氏名などを保管するユーザ名欄、データに関連付けたキーワードを設定するキーワード欄で構成する、等を決定する。
また、キーワード欄はグループ化情報とキーワード情報の2要素で構成され、グループ化情報は第1情報から第L情報までの要素で構成する、等を決定する。
このタグID述語ベクトルvTの生成例を図30に、タグID属性ベクトルxTの生成例を図31に示す。
例えばタグID階層構造のグループ名からベクトルの要素を導出する場合、タグID述語ベクトルの場合は(v1,v2)=(1,-“グループ名”)とし、タグID属性ベクトルの場合は(x1,x2)=(“グループ名”,1)とする。両者のベクトルの内積を取ると、グループ名が同一であった場合のみ内積値が0となり、異なる場合は0以外の値となる。
同様に、ユーザ名や第i情報や残ビット情報もベクトルの値に対応づける。
なお例外として、要素がワイルドカードであった場合、そのベクトルは(0,0)とする。
例えば、ユーザ名にワイルドカードが指定されている場合、タグID述語ベクトルなら(v3,v4)=(0,0)とし、タグID属性ベクトルなら(x3,x4)=(0,0)とする。
他の要素にワイルドカードが指定されている場合にも、同様にベクトルに対応づける事ができる。
また、図の様に対応づけた場合、非特許文献5のマスター鍵生成アルゴリズム(Setup)に記載の各パラメータは、n=6+2L、d=3+L、μ1=2、μ2=4、・・・、μ(3+L)=6+2Lとなる。
本実施の形態では、復号者ID階層数が2とし、復号者ID階層構造として、実施の形態1と同様にグループ名とユーザ名からなる復号者ID階層構造を持つものと仮定する。
なお、復号者ID階層構造の全ての要素が一致した場合に検索にヒットする事とし、それに対応した復号者ID述語ベクトルと復号者ID属性ベクトルの生成方法を導出する。
この復号者ID述語ベクトルvDの生成例を図32に、復号者ID属性ベクトルxDの生成例を図33に示す。
ベクトルの各要素の導出方法は、タグIDの場合と同様である。
また、この場合、非特許文献5のマスター鍵生成アルゴリズムに記載の各パラメータは、n=4、d=2、μ1=2、μ2=4となる。
同様に、既存暗号化方式のマスター鍵生成アルゴリズムを実行して暗号化用マスター鍵と暗号化用公開パラメータを生成する。
以降、秘匿検索用マスター鍵と暗号化用マスター鍵をまとめてマスター鍵、秘匿検索用公開パラメータと暗号化用公開パラメータをまとめて公開パラメータと呼ぶ事とする。
以上の手順によって、本秘匿検索システムのセットアップが完了する。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した図6の処理の流れを用いて、その差異を中心に説明する。
既存秘匿検索方式では、秘匿検索用ユーザ秘密鍵を生成する際にタグID階層構造を指定する必要があるが、ユーザ秘密鍵生成部204は、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に設定し、キーワード欄内の全ての要素は委譲可能な要素として指定する。
この値を設定したタグID階層構造をステップS502で決定したベクトル生成ルールに基づいてベクトル化を行ってタグID述語ベクトルを生成し、既存秘匿検索方式のユーザ秘密鍵生成アルゴリズム(GenKey)を実行する事で、秘匿検索用ユーザ秘密鍵が生成できる。
同様に、既存暗号化方式で暗号化用ユーザ秘密鍵を生成する際に復号者ID階層構造を指定する必要があるが、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に指定し、ユーザ秘密鍵生成部204は、この値を設定した復号者ID階層構造をステップS502で決定したベクトル生成ルールに基づいてベクトル化を行う事で復号者ID述語ベクトルを生成し、既存暗号化方式のユーザ秘密鍵生成アルゴリズムを実行する事で、暗号化用ユーザ秘密鍵が生成できる。
上記で生成した秘匿検索用ユーザ秘密鍵、暗号化用ユーザ秘密鍵をまとめてユーザ秘密鍵と呼ぶ事にする。
以上の手順によって、鍵管理サーバ装置201はアクセス端末装置301を操作するユーザに対してユーザ秘密鍵を発行する事ができる。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した処理の流れとの差異を中心に説明する。
具体的には、グループ化ビット列生成部2301は、キーワードを元にLビットのビット列と、任意のキーワード情報を生成する。
これは例えば、SHA-2等のハッシュ関数を用いてキーワードのハッシュ値を生成し、その中から任意のLビットを抽出してLビットのビット列とし、残りのビット列を並べたもの、もしくはハッシュ値全体をキーワード情報とする事などで生成できる。
具体的には、暗号化タグ生成部303は、タグID階層構造のグループ名とユーザ名にS701で受け取ったグループ名とユーザ名を、キーワード欄にS2404にて生成したグループ化ビット列をそれぞれ指定して、その値が設定されたタグID階層構造からタグID属性ベクトルを生成し、既存秘匿検索方式の暗号化アルゴリズム(Enc)でタグを作成する。
このタグを暗号化タグとする。
非特許文献5では、秘匿検索用のタグの生成方式は明示的に記載されていないが、一般的に次の様に実施すれば良い事が知られている。
最初に、乱数Rを選び、この乱数RをタグID属性ベクトルを用いて暗号化する事で暗号文Cを得る。
そして、タグを(乱数R、暗号文C)の組とすれば良い。
なお、上記はキーワード1個に対する処理であるため、これをデータに関連付けられた全てのキーワードに対して実施する。
また、S701にて複数のグループ名とユーザ名を受領している場合、全てのグループ名とユーザ名の組に対して暗号化タグを生成する。
この時、データセンタ装置401でタグ付き暗号化データの保管を容易にするため、タグ付き暗号化データ生成部304は、S701にて受領したグループ名とユーザ名を共に送付する。
ステップS2405での暗号化タグの生成処理が若干変更になっているため、タグ付き暗号化データの構成も図34で示した様に、実施の形態1の図16から暗号化タグの構成が変わった構成となっている。
なお、実施の形態1と同様に、インデックス情報もグループ名、ユーザ名ごとに管理しているものとする。
具体的には、インデックス管理部405は、例えば第1階層に対応したグループ判定鍵(暗号化タグ用)でタグ(R,C)のうち暗号文Cを復号し、復号結果が乱数Rと同一であった場合、第1情報を0とし、同一でなかった場合は第1情報を1とする。
同様の手順にて、第1情報から第L’情報までを決定する。
以上の手順により、アクセス端末装置301はデータを暗号化してデータセンタ装置401に保管を要求し、データセンタ装置401は受け取ったタグ付き暗号化データの保管を行う事ができる。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した処理の流れとの差異を中心に説明する。
本処理は、ステップS2404の処理と同一であるため省略する。
具体的には、秘匿検索用ユーザ秘密鍵には、タグID階層構造のグループ名とユーザ名に値が設定されているが、キーワード欄に関しては値が設定されておらず、後でユーザによって値の設定ができる様になっている。
そこで、検索クエリ生成部306は、キーワード欄に設定する値であるグループ化ビット列を指定して生成したタグID述語ベクトルと、秘匿検索用ユーザ秘密鍵と入力として、既存秘匿検索方式の検索クエリ生成関数(Delegate関数)を実行して、生成された秘密鍵をトラップドアとする。
このトラップドアは、タグID階層構造で示した全ての要素に値が設定された状態となっている。
このトラップドアを検索クエリとする。
そして、生成した検索クエリをデータセンタ装置401に送付する。
この時、ユーザ自身のグループ名とユーザ名も送付する。
具体的には、インデックス管理部405は、例えば第1階層に対応したグループ判定鍵(検索クエリ用)は(R,C)から構成されているため、トラップドアを用いて暗号文Cを復号し、復号結果が乱数Rと同一であった場合、第1情報を0とし、同一でなかった場合は第1情報を1とする。
同様の手順にて、第1情報から第L’情報までを決定する。
そして、そのポインタが指すノードに関連付けられた暗号化タグと管理番号の組を全て取り出し、検索処理部406に送付する。
次に、ステップS1005とステップS1006とステップS1007は、実施の形態1と同様であるため説明を省略する。
以上により、ステップS2604で実施する、インデックス情報から検索の候補となる暗号化タグを全て取得する処理が終了する。
具体的には、検索処理部406は、トラップドアでタグ(R,C)のうち暗号文Cを復号し、復号結果が乱数Rと同一であった場合、キーワードが一致したと判定する。
同一でなかった場合は、キーワードが一致しなかったと判定する。
なお、既存秘匿検索技術の判定処理は、1個のタグと、1個のトラップドアの比較しか実施できないため、これをS904にて取得した全ての暗号化タグに対して実施する。
そして、判定処理の結果、一致と判定された暗号化タグに関連付けられた管理番号を特定する。
以上の手順により、アクセス端末装置301はユーザから検索キーワードを受け取り、そのキーワードを含む暗号化データをデータセンタ装置401から取得し、それを復号して閲覧する事ができる。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した処理の流れとの差異を中心に説明する。
そして、グループ判定鍵生成部308は、新たに発行するグループ判定鍵の階層L’+1を特定する。
次に、グループ判定鍵生成部308は、タグID階層構造のグループ化情報のうち第L’+1情報に0を指定する。
その他の第1情報から第L’情報と、第L’+2情報から第L情報と、キーワード情報にはワイルドカードを指定する。
このタグID階層構造に対して、グループ判定鍵生成部308は、ユーザ秘密鍵に埋め込まれたグループ名とユーザ名を組み合わせる事でタグID述語ベクトルを生成すると共に、S1101にて受け取ったグループ名とユーザ名を組み合わせる事でタグID属性ベクトルを生成する。
そして、グループ判定鍵生成部308は、秘匿検索用ユーザ秘密鍵と、上記で生成したタグID述語ベクトルを入力として、既存秘匿検索方式の検索クエリ生成関数(Delegate関数)を実行する事で、第L’+1階層に対応するグループ判定鍵(暗号化タグ用)を生成する。
更に、グループ判定鍵生成部308は、ステップS2405と同様の手順にて、上記で生成したタグID属性ベクトルを入力としてタグ(R,C)を生成し、これをグループ判定鍵(検索クエリ用)とする。
そして、グループ判定鍵生成部308は、生成したグループ判定鍵(暗号化タグ用)とグループ判定鍵(検索クエリ用)を合わせてグループ判定鍵として、再構成したいインデックスに関連付けられたグループ名とユーザ名と共にデータセンタ装置401に送付する。
そして、インデックス管理部405は、ステップS2503と同様の手順にて、タグから第L’+1階層に振り分けるための第L’+1情報を取得する。
そして、インデックス管理部405は、暗号化タグと管理番号を、選択した第L’階層ノードの子ノードのいずれに振り分けるかを第L’+1情報を元に決定し、第L’階層ノードの関連付けを削除して、新たに第L’+1階層ノードに関連付けて保存する。
これを選択した第L’階層に関連付けられた全ての暗号化タグに対して実施する。
以上の手順により、アクセス端末装置301はデータセンタ装置401に対してグループ判定鍵を新たに生成してインデックス情報の再構成を要求し、データセンタ装置401は自身が管理するインデックス情報の再構成を行う事で、インデックス情報の階層数を1階層増やす事ができる。
検索の際にも、検索クエリとグループ判定鍵(検索クエリ用)を用いて検索対象の暗号化タグのグループを一意に特定できる様にしているため、全ての暗号化タグに対して既存秘匿検索技術の判定処理を行う必要が無くなり、特定のグループに属する暗号化タグに対してのみ既存秘匿検索技術の判定処理を行えばよく、秘匿検索の時間を大きく削減する事ができる。
例えば、L’個のグループ判定鍵がデータセンタ装置401に開示されている状況では、暗号化タグM個を2^L’個のグループに分割する事ができるため、各グループには平均的にM/2^L’個の暗号化タグが含まれる。
そのため、本実施の形態によって、検索処理は2^L’倍に高速化される。
そのため、開示するグループ判定鍵の数によって、ユーザがグループ化のレベルを調整する事ができる。
例えば、L’個のグループ判定鍵を開示している状況で、暗号化データの保管数が増えるに従って検索時間がT時間になり、運用に支障が生じたとする。
この時、新しくL’+1階層目に対応したグループ判定鍵を開示する事で、暗号化タグを2倍のグループに分割する事ができるため、検索時間をT/2に削減する事ができる様になる。
そのため、データの機密性を保護したいユーザからすれば、不必要にデータセンタ装置401に暗号化データをグループ化されてしまう事は望まない。
本実施の形態では、ユーザが求める安全性のレベルと検索処理の応答時間に応じて、必要最小限のグループ判定鍵のみをデータセンタ装置401に与える様にユーザ自身が制御する事ができる。
そのため、グループ化情報としてLビットの情報を付加していたとしても、開示するグループ判定鍵の数を調整する事で、ユーザ自身によって安全性と高速性のバランスを調整する事ができる。
そのため、グループ化情報に設定した値自身もデータセンタ装置401には分からないため、それがキーワードのハッシュ値であったとしてもキーワードの推測が困難であり、安全性を向上させる事ができる。
そのため、本実施の形態で示した既存秘匿検索方式だけでなく、提案されている様々な既存秘匿検索方式に対して適用可能であり、その検索性能を向上させる事ができる。
本実施の形態では、非特許文献5の記載の方式に適用した例を示したが、例えば非特許文献3に記載の方式にも適用できるし、その他の内積述語暗号や関数型暗号など、あらゆる既存秘匿検索方式に対して適用可能である。
そのため、一般的によく利用されているRSA(登録商標)暗号などを利用する事も可能である。
また、本実施の形態では確率的暗号に基づく秘匿検索技術を高速化する手法について示した。
一般的に秘匿検索の検索時間だけを見れば確定的暗号に基づく方式が早いが、暗号化データの出現頻度を分析して平文を推定できるという課題がある。
一方、確率的暗号に基づく方式は、暗号化データの出現頻度がキーワードの出現頻度と無関係なため、出現頻度の分析による平文の推定に対して安全であるが、検索処理にとても時間がかかるという課題がある。
しかし、本実施の形態は確率的暗号に基づいているため、検索が高速化されているにもかかわらず、出現頻度による分析に対しての安全性が残っているというメリットがある。
そのため、ユーザが検索を行う場合、元々読む事ができない暗号化データが含まれるインデックス情報を検索する必要が無くなるため、検索処理を大きく向上させる事ができる。
本実施の形態では、グループ判定鍵の開示は、グループ名とユーザ名の組と関連付けられたインデックスに対して実施する様な仕組みとした。
そのため、開示範囲ごとに安全性と高速性のバランスを調整する事ができる。
そのため、追加でグループ判定鍵を受け取ってインデックス情報の再構成を行っている最中に検索クエリを受け取ったとしても、検索対象とすべき暗号化タグを漏らすことなくチェックする事ができる。
同様に、暗号化タグを生成したりするための補助にもなる。
なお、本実施の形態では、2分木を用いたインデックス情報を構成する例を示した。
しかし、生成するインデックスは2分木に限る必要はなく、グループ化情報から生成する事ができるものであれば、より一般的な木構造であっても良く、ハッシュテーブルであっても良い。
また、インデックス情報として作成した2分木は、その構造を保ったままディスクに保管する必要はなく、例として示した様にノード番号を割り当てて表形式で保管しても良いし、その他のデータ形式で保管しても良い。
また、本実施の形態では、キーワードから生成したビット列の第iビットを第i情報として用いる様にした。
しかし、1ビットずつ利用する必要はなく、2ビット以上の情報を用いて第i情報を生成する様にしても良い。
例えば、キーワードから2Lビットのビット列を生成し、その第2i-1ビット目と第2iビット目を第i情報として利用することも可能である。
また、本実施の形態では、グループ化情報の第i情報には、0や1といった1ビットの情報を含める例を示した。
しかし、本情報を用いて2分木の子ノード(左)か子ノード(右)かを判断できればいいので、必ずしも0や1の値である必要はない。
例えば、1と-1でも良いし、その他の値を入れる様にしても良い。
しかし、必ずしも0を設定する必要はなく、1を設定する様にしても良い。
また、第i情報が1と-1のいずれかを設定する様にした場合は-1でも良いし、その他の値を入れる様にしても良い。
しかし、この0と1の割り振りは逆であっても良い。
また、本実施の形態では、キーワードからLビットのビット列を作成する際に、例えばSHA-2等のハッシュ関数を利用する事を例示したが、Lビットのビット列が作れるものであればアルゴリズムは何でも良い。
例えば、SHA-2以外のハッシュ関数を用いても良いし、HMAC等の鍵付きハッシュや、AES等の共通鍵暗号や、RSA(登録商標)暗号等の公開鍵暗号を用いても良い。
なお、鍵付きハッシュや共通鍵暗号や公開鍵暗号を用いる場合は、秘匿検索用ユーザ秘密鍵に加えてハッシュ鍵や共通鍵や秘密鍵も配布する必要がある。
また、キーワードを乱数のシードとして、疑似乱数生成アルゴリズムでLビットの乱数を生成する様にしても良い。
他にも、キーワードとLビット列の対応表を使う様にしても良い。
特に、Lビット列の対応表を用いる場合、キーワードの出現頻度を考慮してLビット列の発生頻度を平準化できるため、安全性が更に向上する事が期待できる。
また、本実施の形態では、ユーザがグループ判定鍵を1個ずつ開示する事を想定した例を記載したが、1回に1個ずつと制限する必要はなく、同時に2個や3個のグループ判定鍵を公開する様にしても良い。
また、本実施の形態では、ユーザがインデックス再構成を行うタイミングでグループ判定鍵を生成していた。
しかし、グループ判定鍵はインデックス再構成を行う前であればいつ生成しても良い。
更に、ユーザではなく、鍵管理サーバ装置201がユーザ秘密鍵発行時に代行して生成しても良い。
また、本実施の形態では、タグID階層構造や復号者ID階層構造にて、グループ名とユーザ名の2種類の情報を用いて復号・検索が可能なユーザやグループを指定する例を示した。
しかし、この2種類の情報に制限する必要はなく、例えば部名・課名・氏名の3種を用いても良いし、氏名だけを用いても良い。
また、内積述語暗号ではANDやOR等の条件を用いて受信者の属性を指定できるので、その様に柔軟に受信者を指定できるようにしても良い。
また、本実施の形態では、タグID階層構造をタグID述語ベクトルやタグID属性ベクトルに変換する方式として、タグID述語ベクトルの場合は(v1,v2)=(1,-“グループ名”)とし、タグID属性ベクトルの場合は(x1,x2)=(“グループ名”,1)とする例を示した。
しかし、例えば(v1,v2)=(1,-“グループ名”)と(x1,x2)=(“グループ名”,1)としても良いし、他の変換方法を用いても構わない。
タグID階層構造からタグID述語ベクトルやタグID属性ベクトルへの変換方法に制約はなく、一般的に知られた様々な方法を利用する事ができる。
同様に、復号者ID階層構造に関しても同様である。
また、本実施の形態では、タグ付き暗号化データを生成する際、タグID階層構造や復号者ID階層構造に、グループ名とユーザ名として同じ値を設定する例を示した。
しかし、これらは同じ値にせず、異なる値を設定しても良い。
例えば、ユーザには検索だけ許可し、暗号化データ自身の復号は許可したくない場合は、タグID階層構造にはユーザのグループ名とユーザ名を設定し、復号者ID階層構造には別の復号可能なユーザのグループ名とユーザ名を設定すればよい。
また、本実施の形態では、鍵管理サーバ装置201が1台の例を示したが、1台に制限する必要はない。
例えば、非特許文献5の方式や、その他の秘匿検索方式では、鍵管理サーバ装置にも階層構造を持たせ、複数台に役割を分散して運用する形態も記載されている。
本実施の形態でも同様にして、鍵管理サーバ装置に階層構造を持たせた形で利用する事も可能である。
また、本実施の形態では、内積述語暗号に基づく既存秘匿検索方式や既存暗号化方式を用いた例を示した。
しかし、内積述語暗号に基づく方式に制約するものではなく、同様の機能を実現した関数型暗号などを用いる事も可能であるし、AESやCamellia(登録商標)やHMACなどの共通鍵暗号や、RSA(登録商標)暗号などの公開鍵暗号を用いる事も可能である。
また、本実施の形態では、既存秘匿検索方式や既存暗号化方式に非特許文献5に記載の内積述語暗号を用いた例を示したが、それぞれ異なる公開パラメータを利用する様にした。
しかし、例えば利用する楕円曲線など、公開パラメータの一部の情報を共通化して利用する事も可能である。そのため、共通化できるものは共通化して利用しても構わない。
また、本実施の形態では、検索キーワードが1個の場合を示したが、必ずしも検索キーワードを1個に制限する必要はない。
例えば、複数の検索キーワードがある場合、それぞれのキーワードに対して検索クエリを生成して、全ての検索クエリをデータセンタ装置401に送付しても良い。
またその時、例えば1個の検索クエリでヒットと判定された暗号化データを取得するとか、検索クエリAと検索クエリBの両方がヒットした暗号化データを取得する等、任意の条件も送付して良い。
また、本実施の形態では、インデックス管理部405から取得した暗号化タグの全てを検索クエリと判定する様にした。
しかし、検索にヒットしたと判定された暗号化データに関しては、それ以降、その暗号化データに関連付けられた暗号化タグのチェックをしなくても構わない。また、検索結果として例えば10件の結果を返せばいい場合においても、規定個数以上の検索結果が見つかったら、それ以降の暗号化タグのチェックを行わなくても良い。
また、本実施の形態では、鍵管理サーバ装置201にユーザID情報データベースを設け、その情報を元にユーザ秘密鍵の生成を行っていた。
しかし、ユーザID情報データベースは必ずしも必須なものではなく、ユーザ秘密鍵を発行する際に鍵管理サーバ装置201の管理者によって指定する様にしても良いし、アクセス端末装置301から受領する様にしても良い。
また、本実施の形態では、アクセス端末装置301は一人のユーザが操作するものと仮定した記載とした。
しかし、アクセス端末装置301自身は一人のユーザが占有するものではなく、複数名で共有する様な仕組みでも良い。
この場合、ユーザ秘密鍵管理部305ではユーザごとに1個のユーザ秘密鍵が割り当てられるため、複数のユーザ秘密鍵を保管する様にして、アクセス端末装置301で操作者の認証をする事で、どのユーザ秘密鍵を利用すべきかを判断する事が好ましい。
また、ユーザ秘密鍵を社員証などに保管して管理する事も可能である。
この場合、ユーザ秘密鍵管理部305がICカードに相当する機能だが、ユーザ秘密鍵を用いた処理をICカードにて全て行わせる場合、必要に応じて検索クエリ生成部306やデータ復号部307やグループ判定鍵生成部308の一部の処理をICカードに実施させても良い。
また、本実施の形態では、データを暗号化する際にAESやCamellia(登録商標)を自動的に用いる事を例示したが、これはシステム内で事前に利用する方式を決定しておいても良いし、ユーザによって設定できる様にしておいても良い。
また、本実施の形態では、検索の結果、ヒットした暗号化データを全て返却する様な例を示したが、必ずしも検索時に同時に全ての暗号化データ自身を返却する必要はない。
例えば、ヒットした暗号化データのうち数個を返すだけにするとか、個数だけを返す様にするとか、暗号化データのリストだけを返却する様にしても良い。
また、本実施の形態では、鍵管理サーバ装置201とアクセス端末装置301が企業内にあり、データセンタ装置401がインターネットなどに接続された外部サービスとして存在した例を示した。
しかし、本発明はこの様なシステム構成に限定されるものではない。
例えば、データセンタ装置401が企業内にあっても良いし、鍵管理サーバ装置201やアクセス端末装置301が企業外のネットワークに接続されていても良い。
アクセス端末装置301のグループ化ビット列生成部2301(インデックス導出ビット列、秘匿化処理部)は、実施の形態1と異なり、内積述語暗号を用いていることを説明した。
グループ化ビット列生成部2301は、
保管キーワードのハッシュ値から、インデックス情報のノードの最大階層数と同数であるLビットのビット列を抽出するとともに、ハッシュ値の他のビット又はハッシュ値全体をキーワード情報とし、
更に、暗号化タグ生成部303は、Lビットのビット列及びキーワード情報を暗号化し、暗号化したLビットのビット列及びキーワード情報を暗号化タグとし、暗号化タグをデータセンタ装置401に送信することを説明した。
換言すると、グループ化情報生成部310は、
保管キーワードから一意に得られる乱数値のビット列から、許可ビット位置として指定できる最大数と同数のビット数の保管インデックス導出ビット列を生成し、更に、乱数値のビット列の他のビット又は乱数値のビット列全体をキーワード情報とし、
暗号化タグ生成部303は、
保管インデックス導出ビット列及びキーワード情報を暗号化し、暗号化した保管インデックス導出ビット列及びキーワード情報をタグデータとし、タグデータをデータセンタ装置401(データ保管装置)に送信している。
グループ化ビット列生成部2301は、
検索キーワードのハッシュ値から、インデックス情報のノードの最大階層数と同数であるLビットのビット列を抽出するとともに、ハッシュ値の他のビット又はハッシュ値全体をキーワード情報とし、
更に、暗号化タグ生成部303は、Lビットのビット列及びキーワード情報を暗号化し、暗号化したLビットのビット列及びキーワード情報をトラップドアとし、トラップドアをデータセンタ装置401に送信することを説明した。
換言すると、グループ化情報生成部310は、
検索キーワードから一意に得られる乱数値のビット列から、許可ビット位置として指定できる最大数と同数のビット数の検索インデックス導出ビット列を生成し、更に、乱数値のビット列の他のビット又は乱数値のビット列全体をキーワード情報とし、
暗号化タグ生成部303は、
検索インデックス導出ビット列及びキーワード情報を暗号化し、暗号化した検索インデックス導出ビット列及びキーワード情報を暗号化した検索キーワードとし、暗号化した検索キーワードをデータセンタ装置401(データ保管装置)に送信している。
データセンタ装置401のインデックス管理部405は、
タグ付き暗号化データを受信した際に、暗号化タグをグループ判定鍵で復号し、正しく復号できた場合にビット値0とし、復号できなかった場合にビット値を1とすることで、L’個分のビット値を導出してノード番号としている。
換言すれば、インデックス管理部405は、
保管要求を受信した際に、タグデータ内の暗号化ビットのうち許可ビット位置の暗号化ビットを許可ビット復号鍵で復号し、正しく復号できた場合にビット値0とし、復号できなかった場合にビット値を1とすることで、復号結果から保管インデックス値の各ビットのビット値を導出し、導出した各ビットのビット値を連結して保管インデックス値を導出している。
データセンタ装置401のインデックス管理部405は、
検索クエリを受信した際に、トラップドアをグループ判定鍵で復号し、正しく復号できた場合にビット値0とし、復号できなかった場合にビット値を1とすることで、L’個分のビット値を導出してノード番号としている。
換言すれば、インデックス管理部405は、
検索要求を受信した際に、暗号化された検索キーワード内の暗号化ビットのうち許可ビット位置の暗号化ビットを許可ビット復号鍵で復号し、正しく復号できた場合にビット値0とし、復号できなかった場合にビット値を1とすることで、復号結果から検索インデックス値の各ビットのビット値を導出し、導出した各ビットのビット値を連結して検索インデックス値を導出している。
図35は、実施の形態1及び2に示す鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401のハードウェア資源の一例を示す図である。
なお、図35の構成は、あくまでも鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401のハードウェア構成の一例を示すものであり、鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401のハードウェア構成は図35に記載の構成に限らず、他の構成であってもよい。
また、鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401は、それぞれ異なるハードウェア構成であってもよい。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)と接続していてもよい。
また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
例えば、実施の形態1及び2で説明した鍵保管部203、ユーザID情報管理部206、ユーザ秘密鍵管理部305、インデックス管理部405及び暗号化データ管理部404は、RAM914、磁気ディスク装置920等に、各種鍵、インデックス情報、暗号化データ、タグデータ等を保管している。
通信ボード915、キーボード902、マウス903、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901などは、出力装置の一例である。
例えば、通信ボード915は、社内LAN(ローカルエリアネットワーク)、インターネットの他、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されていても構わない。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
「~ファイル」や「~データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
すなわち、実施の形態1及び2で説明したフローチャートに示すステップ、手順、処理により、データ処理装置及びデータ保管装置を方法として把握することができる。
また、「~部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1及び2の「~部」としてコンピュータを機能させるものである。あるいは、実施の形態1及び2の「~部」の手順や方法をコンピュータに実行させるものである。
そして、上記したように「~部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
Claims (15)
- 複数の暗号化データと、各暗号化データに対応付けられている、暗号化データの検索の際に照合されるタグデータとを保管するデータ保管装置に接続され、
前記データ保管装置での保管の対象となる保管対象データのキーワードを保管キーワードとして指定するキーワード指定部と、
前記データ保管装置へのビット値の開示を許可するビット位置を許可ビット位置として指定する許可ビット位置指定部と、
所定の生成手順にて、前記保管キーワードから所定のビット列を保管インデックス導出ビット列として生成するインデックス導出ビット列生成部と、
前記保管インデックス導出ビット列内の前記許可ビット位置のビット値は前記データ保管装置に開示し前記保管インデックス導出ビット列内の前記許可ビット位置以外のビット値は前記データ保管装置に秘匿する秘匿化処理を行い、前記保管対象データの暗号化データに対応付けられるタグデータを保管する際に前記データ保管装置が前記タグデータに付す保管インデックス値を、前記データ保管装置に、前記保管インデックス導出ビット列内の前記許可ビット位置の開示されたビット値から導出させる秘匿化処理部とを有することを特徴とするデータ処理装置。 - 前記データ処理装置は、
暗号化された検索キーワードと、開示が許可されているビット位置のビット値の開示により前記暗号化された検索キーワードとの照合の対象となるタグデータのインデックス値が導出される検索インデックス導出ビット列とが含まれる検索要求を受信した際に、前記検索インデックス導出ビット列内のビット値の開示により得られるインデックス値に基づき、前記暗号化された検索キーワードとの照合の対象となるタグデータを特定し、特定したタグデータと前記暗号化された検索キーワードとを照合して暗号化データを検索するデータ保管装置に接続され、
前記インデックス導出ビット列生成部は、
前記データ保管装置において前記検索インデックス導出ビット列から得られるインデックス値と比較される保管インデックス値が、前記秘匿処理部による前記データ保管装置への前記許可ビット位置のビット値の開示により導出される保管インデックス導出ビット列を生成することを特徴とする請求項1に記載のデータ処理装置。 - 前記許可ビット位置指定部は、
順次新たな許可ビット位置を指定し、
前記秘匿化処理部は、
前記許可ビット位置指定部により新たな許可ビット位置が指定された場合に、前記保管インデックス導出ビット列内の既存の許可ビット位置のビット値に加えて新たに指定された許可ビット位置のビット値を前記データ保管装置に開示する秘匿化処理を行い、保管インデックス値のビット数を増加させることを特徴とする請求項1又は2に記載のデータ処理装置。 - 前記秘匿化処理部は、
許可ビット位置ごとに、許可ビット位置の暗号化ビットの復号に用いられる復号鍵を許可ビット復号鍵として生成し、
前記データ処理装置は、更に、
前記許可ビット復号鍵を前記データ保管装置に対して送信する許可ビット復号鍵送信部を有し、
前記秘匿化処理部は、
前記許可ビット位置の暗号化ビットは前記許可ビット復号鍵により復号され、前記許可ビット位置以外の暗号化ビットは前記許可ビット復号鍵により復号されない暗号化方式にて前記保管インデックス導出ビット列を暗号化し、
前記データ処理装置は、更に、
前記保管対象データの暗号化データと、前記保管対象データの暗号化データに対応付けられるタグデータと、暗号化された前記保管インデックス導出ビット列とが含まれる保管要求を前記データ保管装置に対して送信する保管要求送信部を有することを特徴とする請求項1~3のいずれかに記載のデータ処理装置。 - 前記秘匿化処理部は、
前記保管対象データに対するアクセスが許可されるユーザのユーザ情報が反映されている復号鍵を、前記許可ビット復号鍵として生成し、
前記保管対象データに対するアクセスが許可されるユーザのユーザ情報が反映されている暗号鍵を用いて、前記保管インデックス導出ビット列を暗号化することを特徴とする請求項4に記載のデータ処理装置。 - 前記許可ビット位置指定部は、
順次新たな許可ビット位置を指定し、
前記秘匿化処理部は、
前記許可ビット位置指定部により新たな許可ビット位置が指定された場合に、新たに指定された許可ビット位置の暗号化ビットの復号に用いられる許可ビット復号鍵を生成し、
前記許可ビット復号鍵送信部は、
前記秘匿化処理部により生成された新たな許可ビット復号鍵を前記データ保管装置に対して送信することを特徴とする請求項4又は5に記載のデータ処理装置。 - 前記データ処理装置は、
暗号化された検索キーワードとの照合の対象となるタグデータを特定し、特定したタグデータと前記暗号化された検索キーワードとを照合して暗号化データを検索するデータ保管装置に接続され、
前記キーワード指定部は、
前記データ保管装置に暗号化データの検索を行わせる検索キーワードを指定し、
前記インデックス導出ビット列生成部は、
前記保管インデックス導出ビット列と同じ生成手順にて、前記キーワード指定部により指定された前記検索キーワードから所定のビット列を検索インデックス導出ビット列として生成し、
前記秘匿化処理部は、
前記データ保管装置へのビット値の開示が許可されているビット位置である許可ビット位置の暗号化ビットは、前記データ保管装置が保有する許可ビット復号鍵により復号され、前記許可ビット位置以外の暗号化ビットは前記許可ビット復号鍵により復号されない暗号化方式にて前記検索インデックス導出ビット列を暗号化し、
暗号化された検索キーワードとの照合の対象となるタグデータを抽出する際に前記データ保管装置が保管インデックス値と比較する検索インデックス値を、前記データ保管装置に、暗号化された前記検索インデックス導出ビット列内の前記許可ビット位置の暗号化ビットの復号により前記データ保管装置に開示される前記許可ビット位置のビット値から導出させ、
前記データ処理装置は、更に、
暗号化された前記検索キーワードと、暗号化された前記検索インデックス導出ビット列とが含まれる検索要求を前記データ保管装置に対して送信する検索要求送信部を有することを特徴とする請求項6に記載のデータ処理装置。 - 前記秘匿化処理部は、
前記データ処理装置のユーザのユーザ情報が反映されている暗号鍵を用いて、前記検索インデックス導出ビット列を暗号化することを特徴とする請求項7に記載のデータ処理装置。 - データ処理装置に接続され、前記データ処理装置から送信された暗号化データを保管するデータ保管装置であって、
復号が許可されている許可ビット位置ごとに、許可ビット位置の暗号化ビットの復号に用いられる許可ビット復号鍵を保管する許可ビット復号鍵管理部と、
保管対象の暗号化データと、暗号化データの検索の際に照合されるタグデータと、前記保管対象の暗号化データに指定された保管キーワードを用いて生成された暗号化されたビット列とが含まれる保管要求を前記データ処理装置から受信する保管要求受信部と、
前記保管要求に含まれる前記保管対象の暗号化データを、前記タグデータと対応付けて保管する暗号化データ管理部と、
前記保管要求に含まれる前記暗号化されたビット列内の許可ビット位置の暗号化ビットを前記許可ビット復号鍵を用いて復号し、復号により得られるビット値からインデックス値を導出し、導出したインデックス値と前記保管要求に含まれる前記タグデータとを対応付けて保管するインデックス管理部とを有することを特徴とするデータ保管装置。 - 前記許可ビット復号鍵管理部は、
ユーザ情報と対応付けて許可ビット復号鍵を保管し、
前記保管要求受信部は、
前記保管対象の暗号化データに対するアクセスが許可されるユーザのユーザ情報が含まれる保管要求を受信し、
前記インデックス管理部は、
前記保管要求に含まれるユーザ情報と合致するユーザ情報と対応付けられている許可ビット復号鍵を用いて、前記保管要求に含まれる前記暗号化されたビット列内の許可ビット位置の暗号化ビットを復号し、インデックス値を導出することを特徴とする請求項9に記載のデータ保管装置。 - 前記許可ビット復号鍵管理部は、
ユーザ情報が反映されている許可ビット復号鍵を、前記ユーザ情報と対応付けて保管し、
前記保管要求受信部は、
前記保管対象の暗号化データに対するアクセスが許可されるユーザのユーザ情報が反映されている暗号鍵により暗号化されたビット列が含まれる保管要求を受信することを特徴とする請求項10に記載のデータ保管装置。 - 前記インデックス管理部は、
前記保管要求に含まれる前記暗号化されたビット列に対する復号により得られるビット値を連結してインデックス値を導出し、
前記保管要求に含まれるユーザ情報に、導出したインデックス値と、前記保管要求に含まれる前記タグデータと、前記暗号化されたビット列内の復号されていない暗号化ビットとを対応付けて保管し、
前記許可ビット復号鍵管理部は、
新たな許可ビット位置が指定されると、新たな許可ビット位置の暗号化ビットの復号に用いられる新たな許可ビット復号鍵と、前記新たな許可ビット復号鍵と対応付けられるユーザ情報とを取得し、
前記インデックス管理部は、
前記許可ビット復号鍵管理部により取得された前記ユーザ情報と合致するユーザ情報に対応付けられている暗号化ビットを抽出し、抽出した暗号化ビットのうち前記新たな許可ビット位置に対応する暗号化ビットを前記新たな許可ビット復号鍵を用いて復号し、復号により得られたビット値を、共通のユーザ情報に対応付けられているインデックス値に追加して新たなインデックス値を導出することを特徴とする請求項10又は11に記載のデータ保管装置。 - 前記データ保管装置は、
複数のデータ処理装置に接続され、
前記データ保管装置は、更に、
前記複数のデータ処理装置のうち暗号化データの検索を要求する検索要求データ処理装置から、暗号化された検索キーワードと、暗号化前の検索キーワードを用いて生成された暗号化されたビット列と、前記検索要求データ処理装置のユーザのユーザ情報が含まれる検索要求を受信する検索要求受信部を有し、
前記インデックス管理部は、
前記検索要求に含まれるユーザ情報と合致するユーザ情報と対応付けられている許可ビット復号鍵を用いて、前記検索要求に含まれる前記暗号化されたビット列内の許可ビット位置の暗号化ビットを復号し、復号により得られる前記許可ビット位置のビット値からインデックス値を導出し、導出したインデックス値と同じインデックス値と対応付けられているタグデータを抽出し、
前記データ保管装置は、更に、
前記インデックス管理部により抽出されたタグデータと前記検索要求に含まれる前記暗号化された検索キーワードとを照合し、前記インデックス管理部により抽出されたタグデータの中から、前記検索キーワードと同じキーワードから生成されているタグデータを特定し、特定したタグデータに対応付けられている暗号化データを前記暗号化データ管理部から取得する検索処理部を有することを特徴とする請求項10~12のいずれかに記載のデータ保管装置。 - 前記許可ビット復号鍵管理部は、
ユーザ情報が反映されている許可ビット復号鍵を、前記ユーザ情報と対応付けて保管し、
前記検索要求受信部は、
前記検索要求データ処理装置のユーザのユーザ情報が反映されている暗号鍵により暗号化されたビット列が含まれる検索要求を受信することを特徴とする請求項13に記載のデータ保管装置。 - 前記インデックス管理部は、
前記保管要求に含まれるユーザ情報に、導出したインデックス値と、前記保管要求に含まれる前記タグデータとを対応付けて保管し、
前記検索要求受信部により前記検索要求が受信された場合に、
前記検索要求に含まれるユーザ情報と合致するユーザ情報と対応付けられている許可ビット復号鍵を用いて、前記検索要求に含まれる前記暗号化されたビット列内の許可ビット位置の暗号化ビットを復号し、復号により得られる前記許可ビット位置のビット値からインデックス値を導出し、前記検索要求に含まれるユーザ情報と合致するユーザ情報と対応付けられているタグデータの中から、導出したインデックス値と同じインデックス値と対応付けられているタグデータを抽出することを特徴とする請求項13又は14に記載のデータ保管装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012552574A JP5420085B2 (ja) | 2011-01-13 | 2011-01-13 | データ処理装置及びデータ保管装置 |
CN201180064828.8A CN103329184B (zh) | 2011-01-13 | 2011-01-13 | 数据处理装置以及数据保管装置 |
US13/979,508 US9111106B2 (en) | 2011-01-13 | 2011-01-13 | Data processing apparatus and data storage apparatus |
EP11855270.2A EP2665052B1 (en) | 2011-01-13 | 2011-01-13 | Data processing device and data archiving device |
PCT/JP2011/050393 WO2012095973A1 (ja) | 2011-01-13 | 2011-01-13 | データ処理装置及びデータ保管装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/050393 WO2012095973A1 (ja) | 2011-01-13 | 2011-01-13 | データ処理装置及びデータ保管装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012095973A1 true WO2012095973A1 (ja) | 2012-07-19 |
Family
ID=46506896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/050393 WO2012095973A1 (ja) | 2011-01-13 | 2011-01-13 | データ処理装置及びデータ保管装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9111106B2 (ja) |
EP (1) | EP2665052B1 (ja) |
JP (1) | JP5420085B2 (ja) |
CN (1) | CN103329184B (ja) |
WO (1) | WO2012095973A1 (ja) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103827862A (zh) * | 2012-09-20 | 2014-05-28 | 株式会社东芝 | 数据处理装置、数据管理系统、数据处理方法及程序 |
KR20140133383A (ko) * | 2013-05-09 | 2014-11-19 | 삼성전자주식회사 | 데이터관리장치, 데이터관리방법 및 데이터관리시스템 |
CN105190636A (zh) * | 2013-03-28 | 2015-12-23 | 三菱宇宙软件株式会社 | 基因信息存储装置、基因信息检索装置、基因信息存储程序、基因信息检索程序、基因信息存储方法、基因信息检索方法以及基因信息检索系统 |
JP2016146599A (ja) * | 2015-02-09 | 2016-08-12 | 日本電信電話株式会社 | 暗号システム、属性管理装置、鍵生成装置および鍵生成方法 |
JP2017532625A (ja) * | 2014-08-21 | 2017-11-02 | ドロップボックス, インコーポレイテッド | 個人用検索のための方法に用いるマルチユーザ検索システム |
US10235539B2 (en) | 2013-02-25 | 2019-03-19 | Mitsubishi Electric Corporation | Server device, recording medium, and concealed search system |
WO2019053788A1 (ja) | 2017-09-12 | 2019-03-21 | 三菱電機株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
JP2019050511A (ja) * | 2017-09-11 | 2019-03-28 | ブラザー工業株式会社 | 情報処理装置、および、コンピュータプログラム |
US10872158B2 (en) | 2016-01-14 | 2020-12-22 | Mitsubishi Electric Corporation | Secret search system, secret search method, and computer readable medium |
US10977324B2 (en) | 2015-01-30 | 2021-04-13 | Dropbox, Inc. | Personal content item searching system and method |
US11005645B2 (en) | 2016-01-15 | 2021-05-11 | Mitsubishi Electric Corporation | Encryption device, encryption method, computer readable medium, and storage device |
US11106740B2 (en) | 2017-04-25 | 2021-08-31 | Mitsubishi Electric Corporation | Search device, search system, search method, and computer readable medium |
US11120089B2 (en) | 2015-01-30 | 2021-09-14 | Dropbox, Inc. | Personal content item searching system and method |
US11170123B2 (en) | 2017-09-12 | 2021-11-09 | Mitsubishi Electric Corporation | Registration terminal, key server, search system, and computer readable medium |
CN113641769A (zh) * | 2021-08-20 | 2021-11-12 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种数据处理方法及装置 |
US11360978B2 (en) | 2017-05-18 | 2022-06-14 | Mitsubishi Electric Corporation | Search device, tag generation device, query generation device, searchable encryption system and computer readable medium |
JPWO2023007595A1 (ja) * | 2021-07-27 | 2023-02-02 |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013111284A1 (ja) | 2012-01-25 | 2013-08-01 | 三菱電機株式会社 | データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 |
US20140168264A1 (en) | 2012-12-19 | 2014-06-19 | Lockheed Martin Corporation | System, method and computer program product for real-time alignment of an augmented reality device |
EP3012817A4 (en) * | 2013-06-18 | 2017-02-22 | Hitachi, Ltd. | Storage count verification system |
US10122714B2 (en) | 2013-08-01 | 2018-11-06 | Bitglass, Inc. | Secure user credential access system |
US9553867B2 (en) | 2013-08-01 | 2017-01-24 | Bitglass, Inc. | Secure application access system |
US9552492B2 (en) * | 2013-08-01 | 2017-01-24 | Bitglass, Inc. | Secure application access system |
JP6144992B2 (ja) * | 2013-08-08 | 2017-06-07 | 株式会社日立製作所 | 検索可能暗号処理システム及び方法 |
US9825920B1 (en) | 2013-08-25 | 2017-11-21 | Google Llc | Systems and methods for multi-function and multi-purpose cryptography |
US9178855B1 (en) * | 2013-08-25 | 2015-11-03 | Google Inc. | Systems and methods for multi-function and multi-purpose cryptography |
EP3040876A4 (en) * | 2013-08-29 | 2017-04-12 | Cognitee Inc. | Information processing device, information processing method and program |
DE102014221893A1 (de) * | 2014-10-28 | 2016-04-28 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Erzeugen eines geheimen Schlüssels |
US10599677B2 (en) * | 2015-01-22 | 2020-03-24 | Brian J. Bulkowski | Methods and systems of splitting database indexes and digests |
CN107251479B (zh) * | 2015-02-20 | 2020-08-11 | 三菱电机株式会社 | 数据保管装置和数据处理方法 |
DE112015005924T5 (de) * | 2015-02-27 | 2017-10-19 | Mitsubishi Electric Corporation | Datenbearbeitungsvorrichtung, Datenbearbeitungsverfahren und Datenbearbeitungsprogramm |
US9992175B2 (en) * | 2016-01-08 | 2018-06-05 | Moneygram International, Inc. | Systems and method for providing a data security service |
US9922199B2 (en) * | 2016-02-18 | 2018-03-20 | Bank Of America Corporation | Document security tool |
AU2017223133B2 (en) | 2016-02-23 | 2022-09-08 | nChain Holdings Limited | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys |
WO2017145004A1 (en) | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Universal tokenisation system for blockchain-based cryptocurrencies |
GB2561729A (en) | 2016-02-23 | 2018-10-24 | Nchain Holdings Ltd | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
SG10202007904SA (en) | 2016-02-23 | 2020-10-29 | Nchain Holdings Ltd | A method and system for securing computer software using a distributed hash table and a blockchain |
JP6833861B2 (ja) | 2016-02-23 | 2021-02-24 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーンシステム内におけるフィードバックを統合したエージェントベースチューリング完全なトランザクション |
JP6925346B2 (ja) | 2016-02-23 | 2021-08-25 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーンベースのトークナイゼーションを用いた交換 |
KR20180115768A (ko) | 2016-02-23 | 2018-10-23 | 엔체인 홀딩스 리미티드 | 블록체인으로부터 데이터의 안전한 추출을 위한 암호화 방법 및 시스템 |
US11606219B2 (en) | 2016-02-23 | 2023-03-14 | Nchain Licensing Ag | System and method for controlling asset-related actions via a block chain |
BR112018016821A2 (pt) | 2016-02-23 | 2018-12-26 | Nchain Holdings Ltd | sistema e métodos implementados por computador |
CN117611331A (zh) | 2016-02-23 | 2024-02-27 | 区块链控股有限公司 | 用于使用区块链在点对点分布式账簿上有效转移实体的方法及系统 |
ES2680851T3 (es) | 2016-02-23 | 2018-09-11 | nChain Holdings Limited | Registro y método de gestión automática para contratos inteligentes ejecutados por cadena de bloques |
CN109313753A (zh) * | 2016-04-01 | 2019-02-05 | 摩根大通国家银行 | 用于在私有分布式账本中提供数据隐私的系统和方法 |
JP6381861B2 (ja) * | 2016-05-27 | 2018-08-29 | 三菱電機株式会社 | 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム |
JP6721832B2 (ja) * | 2016-08-24 | 2020-07-15 | 富士通株式会社 | データ変換プログラム、データ変換装置及びデータ変換方法 |
JP6781373B2 (ja) * | 2016-10-05 | 2020-11-04 | 富士通株式会社 | 検索プログラム、検索方法、および検索装置 |
JP6737117B2 (ja) * | 2016-10-07 | 2020-08-05 | 富士通株式会社 | 符号化データ検索プログラム、符号化データ検索方法および符号化データ検索装置 |
CN109983771A (zh) * | 2016-11-21 | 2019-07-05 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法及解码方法 |
CN110226190A (zh) * | 2017-01-27 | 2019-09-10 | 三菱电机株式会社 | 检索装置、监视装置、监视方法和检索程序 |
US10891366B1 (en) * | 2017-08-18 | 2021-01-12 | Jonetix Corporation | Secure hardware signature and related methods and applications |
EP3509247A1 (de) * | 2018-01-03 | 2019-07-10 | Siemens Aktiengesellschaft | Verfahren und schlüsselgenerator zum rechnergestützten erzeugen eines gesamtschlüssels |
WO2019142268A1 (ja) * | 2018-01-17 | 2019-07-25 | 三菱電機株式会社 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
US20210067317A1 (en) * | 2018-01-17 | 2021-03-04 | Mitsubishi Electric Corporation | Data management device, data management method, and computer readable medium |
CN108471417B (zh) * | 2018-03-28 | 2021-05-04 | 湖南大学 | 一种云环境下基于层次属性的关键字查询方法 |
US11611539B2 (en) * | 2018-12-16 | 2023-03-21 | Auth9, Inc. | Method, computer program product and apparatus for encrypting and decrypting data using multiple authority keys |
CN110266490B (zh) * | 2019-07-25 | 2023-04-21 | 西南石油大学 | 云存储数据的关键词密文生成方法及装置 |
US11216433B2 (en) * | 2019-12-12 | 2022-01-04 | Google Llc | Encrypted search with no zero-day leakage |
US11250151B2 (en) * | 2020-05-05 | 2022-02-15 | Google Llc | Encrypted search over encrypted data with reduced volume leakage |
US11539676B2 (en) * | 2020-11-12 | 2022-12-27 | Bank Of America Corporation | Encrypted tagging system for protection of network-based resource transfers |
CN114884660B (zh) * | 2022-07-12 | 2022-09-20 | 西南石油大学 | 一种基于通配符身份的可搜索加密方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005134990A (ja) | 2003-10-28 | 2005-05-26 | National Institute Of Information & Communication Technology | 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム |
JP2006520493A (ja) * | 2002-09-06 | 2006-09-07 | ユナイテッド ステイツ ポスタル サービス | 安全な事前処理が施されたアクセス情報により、保護されているデータを効率的に検索する方法及びシステム |
JP2007052698A (ja) * | 2005-08-19 | 2007-03-01 | Kddi Corp | 暗号化された文書のためのインデックス生成および検索方法ならびに暗号化文書検索システム |
JP2010164835A (ja) * | 2009-01-16 | 2010-07-29 | Mitsubishi Electric Corp | 検索システム及び索引暗号化装置及び検索暗号化装置及び検索装置及びコンピュータプログラム及び検索方法 |
JP2010205258A (ja) * | 2008-11-11 | 2010-09-16 | Nec (China) Co Ltd | 検索方法、検索装置、索引生成方法、索引生成装置 |
JP2010267227A (ja) * | 2009-05-18 | 2010-11-25 | Nec Corp | 情報検索システム、情報検索装置、情報検索端末、情報検索方法、及びプログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6094649A (en) * | 1997-12-22 | 2000-07-25 | Partnet, Inc. | Keyword searches of structured databases |
JP2002108910A (ja) * | 2000-09-27 | 2002-04-12 | Nec Soft Ltd | 暗号化ファイルシステム及び暗号化ファイル検索方法並びにコンピュータ可読記録媒体 |
US7484092B2 (en) * | 2001-03-12 | 2009-01-27 | Arcot Systems, Inc. | Techniques for searching encrypted files |
JP2002278970A (ja) | 2001-03-16 | 2002-09-27 | Ricoh Co Ltd | 文書管理システム |
US7461251B2 (en) * | 2002-05-09 | 2008-12-02 | Canon Kabushiki Kaisha | Public key certification issuing apparatus |
US7159119B2 (en) | 2002-09-06 | 2007-01-02 | United States Postal Service | Method and system for efficiently retrieving secured data by securely pre-processing provided access information |
US8639947B2 (en) * | 2004-06-01 | 2014-01-28 | Ben Gurion University Of The Negev Research And Development Authority | Structure preserving database encryption method and system |
FR2898747A1 (fr) | 2006-03-15 | 2007-09-21 | Gemplus Sa | Procede de chiffrement cherchable dechiffrable, systeme pour un tel chiffrement |
US7874013B2 (en) * | 2006-04-10 | 2011-01-18 | Sawteeth, Inc. | Secure and granular index for information retrieval |
KR20080067075A (ko) * | 2007-01-15 | 2008-07-18 | 주식회사 히타치엘지 데이터 스토리지 코리아 | 광디스크의 암호화 데이터 기록 및 재생방법 |
JP5245835B2 (ja) * | 2007-02-13 | 2013-07-24 | 日本電気株式会社 | 鍵生成装置、鍵導出装置、暗号化装置、復号化装置、方法、及び、プログラム |
CN101593196B (zh) * | 2008-05-30 | 2013-09-25 | 日电(中国)有限公司 | 用于快速密文检索的方法、装置和系统 |
CN102713996A (zh) | 2010-01-13 | 2012-10-03 | 三菱电机株式会社 | 隐匿检索系统以及公开参数生成装置以及加密装置以及用户秘密密钥生成装置以及查询发布装置以及检索装置以及计算机程序以及隐匿检索方法以及公开参数生成方法以及加密方法以及用户秘密密钥生成方法以及查询发布方法以及检索方法 |
WO2011086687A1 (ja) | 2010-01-15 | 2011-07-21 | 三菱電機株式会社 | 秘匿検索システム及び暗号処理システム |
US8429421B2 (en) * | 2010-12-17 | 2013-04-23 | Microsoft Corporation | Server-side encrypted pattern matching |
-
2011
- 2011-01-13 JP JP2012552574A patent/JP5420085B2/ja active Active
- 2011-01-13 WO PCT/JP2011/050393 patent/WO2012095973A1/ja active Application Filing
- 2011-01-13 US US13/979,508 patent/US9111106B2/en active Active
- 2011-01-13 EP EP11855270.2A patent/EP2665052B1/en active Active
- 2011-01-13 CN CN201180064828.8A patent/CN103329184B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006520493A (ja) * | 2002-09-06 | 2006-09-07 | ユナイテッド ステイツ ポスタル サービス | 安全な事前処理が施されたアクセス情報により、保護されているデータを効率的に検索する方法及びシステム |
JP2005134990A (ja) | 2003-10-28 | 2005-05-26 | National Institute Of Information & Communication Technology | 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム |
JP2007052698A (ja) * | 2005-08-19 | 2007-03-01 | Kddi Corp | 暗号化された文書のためのインデックス生成および検索方法ならびに暗号化文書検索システム |
JP2010205258A (ja) * | 2008-11-11 | 2010-09-16 | Nec (China) Co Ltd | 検索方法、検索装置、索引生成方法、索引生成装置 |
JP2010164835A (ja) * | 2009-01-16 | 2010-07-29 | Mitsubishi Electric Corp | 検索システム及び索引暗号化装置及び検索暗号化装置及び検索装置及びコンピュータプログラム及び検索方法 |
JP2010267227A (ja) * | 2009-05-18 | 2010-11-25 | Nec Corp | 情報検索システム、情報検索装置、情報検索端末、情報検索方法、及びプログラム |
Non-Patent Citations (5)
Title |
---|
D. BONEH; G. D. CRESCENZO; R. OSTROVSKY; G. PERSIANOG: "Public Key Encryption with Keyword Search", EUROCRYPT' 2004, LECTURE NOTES IN COMPUTER SCIENCE, vol. 3027, 2004 |
J. KATZ; A. SAHAI; B. WATERS: "Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products", EUROCRYPT 2008, LECTURE NOTES IN COMPUTER SCIENCE, vol. 4965, 2008 |
M. BELLARE; A. BOLDYREVA; A. O'NEILL: "Deterministic and Efficiently Searchable Encryption", CRYPTO' 2007, LECTURE NOTES IN COMPUTER SCIENCE, vol. 4622, 2007 |
MITSUHIRO HATTORI; TAKUMI MORI; TAKASHI ITO; NORI MATSUDA; TAKESHI YONEDA; KAZUO OHTA: "Anonymous HIBE with Wildcards and Its Application to Secure Keyword Search for Group-Oriented Multi-User System", SCIS' 2010, 3A4-2, 2010 |
TATSUAKI OKAMOTO; KATSUYUKI TAKASHIMA: "Hierarchical Predicate Encryption for Inner-Products", ASIACRYPT' 2009, LECTURE NOTES IN COMPUTER SCIENCE, vol. 5912, 2009 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103827862A (zh) * | 2012-09-20 | 2014-05-28 | 株式会社东芝 | 数据处理装置、数据管理系统、数据处理方法及程序 |
US10546136B2 (en) | 2012-09-20 | 2020-01-28 | Kabushiki Kaisha Toshiba | Data processor, data management system, data processing method, and computer program product |
US10235539B2 (en) | 2013-02-25 | 2019-03-19 | Mitsubishi Electric Corporation | Server device, recording medium, and concealed search system |
CN105190636A (zh) * | 2013-03-28 | 2015-12-23 | 三菱宇宙软件株式会社 | 基因信息存储装置、基因信息检索装置、基因信息存储程序、基因信息检索程序、基因信息存储方法、基因信息检索方法以及基因信息检索系统 |
US20160048690A1 (en) * | 2013-03-28 | 2016-02-18 | Mitsubishi Space Software Co., Ltd. | Genetic information storage apparatus, genetic information search apparatus, genetic information storage program, genetic information search program, genetic information storage method, genetic information search method, and genetic information search system |
EP2980718A4 (en) * | 2013-03-28 | 2016-11-23 | Mitsubishi Space Software Co | GENETIC INFORMATION STORAGE DEVICE, GENETIC INFORMATION SEARCHING DEVICE, GENETIC INFORMATION STORAGE PROGRAM, GENETIC INFORMATION SEARCHING PROGRAM, GENETIC INFORMATION STORAGE METHOD, METHOD FOR SEARCHING FOR GENETIC INFORMATION, AND SEARCH FOR GENETIC INFORMATION |
US10311239B2 (en) | 2013-03-28 | 2019-06-04 | Mitsubishi Space Software Co., Ltd. | Genetic information storage apparatus, genetic information search apparatus, genetic information storage program, genetic information search program, genetic information storage method, genetic information search method, and genetic information search system |
KR102131306B1 (ko) * | 2013-05-09 | 2020-07-07 | 삼성전자주식회사 | 데이터관리장치, 데이터관리방법 및 데이터관리시스템 |
KR20140133383A (ko) * | 2013-05-09 | 2014-11-19 | 삼성전자주식회사 | 데이터관리장치, 데이터관리방법 및 데이터관리시스템 |
US10579609B2 (en) | 2014-08-21 | 2020-03-03 | Dropbox, Inc. | Multi-user search system with methodology for bypassing instant indexing |
US10853348B2 (en) | 2014-08-21 | 2020-12-01 | Dropbox, Inc. | Multi-user search system with methodology for personalized search query autocomplete |
JP2017532625A (ja) * | 2014-08-21 | 2017-11-02 | ドロップボックス, インコーポレイテッド | 個人用検索のための方法に用いるマルチユーザ検索システム |
US10817499B2 (en) | 2014-08-21 | 2020-10-27 | Dropbox, Inc. | Multi-user search system with methodology for personal searching |
US10977324B2 (en) | 2015-01-30 | 2021-04-13 | Dropbox, Inc. | Personal content item searching system and method |
US11120089B2 (en) | 2015-01-30 | 2021-09-14 | Dropbox, Inc. | Personal content item searching system and method |
JP2016146599A (ja) * | 2015-02-09 | 2016-08-12 | 日本電信電話株式会社 | 暗号システム、属性管理装置、鍵生成装置および鍵生成方法 |
US10872158B2 (en) | 2016-01-14 | 2020-12-22 | Mitsubishi Electric Corporation | Secret search system, secret search method, and computer readable medium |
US11005645B2 (en) | 2016-01-15 | 2021-05-11 | Mitsubishi Electric Corporation | Encryption device, encryption method, computer readable medium, and storage device |
US11106740B2 (en) | 2017-04-25 | 2021-08-31 | Mitsubishi Electric Corporation | Search device, search system, search method, and computer readable medium |
US11360978B2 (en) | 2017-05-18 | 2022-06-14 | Mitsubishi Electric Corporation | Search device, tag generation device, query generation device, searchable encryption system and computer readable medium |
JP2019050511A (ja) * | 2017-09-11 | 2019-03-28 | ブラザー工業株式会社 | 情報処理装置、および、コンピュータプログラム |
US11283628B2 (en) | 2017-09-11 | 2022-03-22 | Brother Kogyo Kabushiki Kaisha | Information processing device that processes information using private key and public key |
US11170123B2 (en) | 2017-09-12 | 2021-11-09 | Mitsubishi Electric Corporation | Registration terminal, key server, search system, and computer readable medium |
WO2019053788A1 (ja) | 2017-09-12 | 2019-03-21 | 三菱電機株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
JPWO2019053788A1 (ja) * | 2017-09-12 | 2020-01-16 | 三菱電機株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
JPWO2023007595A1 (ja) * | 2021-07-27 | 2023-02-02 | ||
WO2023007595A1 (ja) * | 2021-07-27 | 2023-02-02 | 三菱電機株式会社 | 検索実行装置、検索実行方法、検索実行プログラム及び秘匿検索システム |
JP7350220B2 (ja) | 2021-07-27 | 2023-09-25 | 三菱電機株式会社 | 検索実行装置、検索実行方法、検索実行プログラム及び秘匿検索システム |
CN113641769A (zh) * | 2021-08-20 | 2021-11-12 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种数据处理方法及装置 |
CN113641769B (zh) * | 2021-08-20 | 2024-02-20 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2665052A1 (en) | 2013-11-20 |
CN103329184B (zh) | 2016-02-03 |
EP2665052A4 (en) | 2017-08-09 |
JPWO2012095973A1 (ja) | 2014-06-09 |
EP2665052B1 (en) | 2018-08-15 |
JP5420085B2 (ja) | 2014-02-19 |
US20130287210A1 (en) | 2013-10-31 |
US9111106B2 (en) | 2015-08-18 |
CN103329184A (zh) | 2013-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5420085B2 (ja) | データ処理装置及びデータ保管装置 | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
CN107077469B (zh) | 服务器装置、检索系统、终端装置以及检索方法 | |
JP6599066B1 (ja) | 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム | |
Yang et al. | Flexible wildcard searchable encryption system | |
JP2012164031A (ja) | データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム | |
US8341417B1 (en) | Data storage using encoded hash message authentication code | |
WO2017122393A1 (ja) | 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム | |
WO2014141802A1 (ja) | 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム | |
JP6632780B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
JP2013156675A (ja) | 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム | |
WO2017126000A1 (ja) | 暗号化装置、検索装置、暗号化プログラム、検索プログラム、暗号化方法及び検索方法 | |
Chamili et al. | Searchable encryption: a review | |
Liu et al. | Multi-user image retrieval with suppression of search pattern leakage | |
Ha et al. | Scalable and popularity-based secure deduplication schemes with fully random tags | |
Huang et al. | Achieving data privacy on hybrid cloud | |
KR20100003093A (ko) | 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법 | |
WO2015107561A1 (ja) | 検索システム、検索方法および検索プログラム | |
WO2017203698A1 (ja) | 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム | |
JP7384740B2 (ja) | 検索システム、検索装置、および検索方法 | |
Jospin Jeya et al. | Efficient Ranked and Secure File Retrieval in Cloud Computing | |
Chebrolu et al. | An efficiency and privacy-preserving biometric identification scheme in cloud computing | |
Kumar et al. | Precision and Privacy Preserving Multi-Keyword Search over Encrypted Data | |
Alyousif et al. | Improving Performance of Searchable Symmetric Encryption Through New Information Retrieval Scheme | |
CN118246041A (zh) | 防范恶意数据发布的加密方法、装置及存储介质 |
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: 11855270 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2012552574 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011855270 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13979508 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |