WO2019053788A1 - データ処理装置、データ処理方法及びデータ処理プログラム - Google Patents
データ処理装置、データ処理方法及びデータ処理プログラム Download PDFInfo
- Publication number
- WO2019053788A1 WO2019053788A1 PCT/JP2017/032919 JP2017032919W WO2019053788A1 WO 2019053788 A1 WO2019053788 A1 WO 2019053788A1 JP 2017032919 W JP2017032919 W JP 2017032919W WO 2019053788 A1 WO2019053788 A1 WO 2019053788A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- index
- encrypted
- bit string
- data
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Definitions
- the present invention relates to a secret search technology.
- Secret search is a technology for searching encrypted data in an encrypted state.
- secret search has attracted attention as a security technology for protecting confidential information from eavesdropping by a server administrator when managing data on the Internet such as cloud services.
- the basic flow of the secret search is as follows. First, a user who encrypts data (encipherer) encrypts data to generate encrypted data. Also, the user (encryptor) associates a keyword for searching the generated encrypted data with the encrypted data. Since the associated keyword is also information on data, the keyword is also encrypted. The encrypted keyword is called an encryption tag. The encrypted data and the encrypted tag are stored in the data center device. The number of encryption tags need not be one, and multiple encryption tags can be associated with the encrypted data. Also, keywords do not leak from the encrypted tag.
- a user who performs a search selects a keyword that he / she wants to search, and generates a search query using the keyword and his / her own private key. Since a search query is a randomization of keywords using a secret key, it is difficult to guess the secret key from the search query itself. Then, the user (searcher) transmits this search query to the data center device, and requests the data center device to search.
- the data center device stores the encrypted data and the encrypted tag requested to be stored by the user (encryptor) in association with each other.
- the data center device receives the search query from the user (searcher)
- the data center device searches for an encryption tag including the same keyword as the keyword used for generating the search query from among the encryption tags stored in the data center device. Do.
- the data center device performs a special operation for secret search to determine whether the keyword of the encryption tag and the keyword of the search query are the same without decrypting the encryption tag and extracting the keyword. it can.
- the data center device returns, to the user (searcher), the encrypted data associated with the encrypted tag whose keyword is determined to be identical to the search query.
- the deterministic encryption is an encryption method characterized in that the same encrypted text can be obtained even if the same keyword is encrypted several times. Therefore, the deterministic encryption is characterized in that the search can be performed at high speed by using a high-speed method such as inverted index realized by a conventional database.
- the deterministic encryption is based on information of the population ratio of a surname generally known, etc.
- the contents of encrypted data can be inferred (for example, Non-Patent Document 2).
- probabilistic encryption is an encryption method characterized in that even when the same keyword is encrypted, different encryption texts are obtained each time the encryption is performed. Therefore, simply comparing encrypted data with one another does not know whether the keywords are identical. For this reason, it is impossible to estimate a keyword by counting the frequency of occurrence, which has been a problem in deterministic cryptography, and its feature is that its security is high.
- the speeding-up method realized by the conventional database can not be used and the search is slow because even the identity of the keyword is not known (for example, Non Patent Literature 1, Non Patent Literature 3, Non Patent Literature 4, nonpatent literature 5).
- the secret search method using probabilistic encryption there is a technology for speeding up secret search by encrypting a bit string that is partial information of a keyword and transmitting the encrypted bit string to the data center device (for example, , Patent Document 2).
- the data center apparatus can use the bit string as an index by disclosing a part of bit values of the encrypted bit string.
- the technique of Patent Document 2 can speed up confidential search.
- the data center apparatus when the number of encrypted data registered in the data center apparatus increases and the search speed becomes slow, the data center apparatus additionally adds the concealed bit value in the bit string. Can improve the search speed of the confidential search.
- Patent Document 2 a bit string used as an index in a data center apparatus is encrypted using a public key system. Therefore, there is a problem that the decoding process takes time when decoding a part of bit values of a bit string in the data center device.
- the main object of the present invention is to solve such problems. More specifically, the main object of the present invention is to speed up search processing by speeding up decoding processing of a bit string used as an index.
- the data processing apparatus is An index bit string generation unit that generates a bit string to be used as an index in search of encrypted data stored in a data storage apparatus as an index bit string in association with the encrypted data;
- An index bit string encryption unit that encrypts a plurality of bit values of the index bit string using a common key index key;
- An encrypted index bit string which is the index bit string after the plurality of bit values are encrypted by the index bit string encryption unit, and a transmitting unit that transmits the encrypted data to the data storage device.
- the index bit string is encrypted using a common key index key. Therefore, according to the present invention, it is possible to speed up the decoding process of the index bit string, and as a result, it is possible to speed up the search process.
- FIG. 1 is a diagram showing an example of configuration of a secret search system according to a first embodiment.
- FIG. 1 shows a secret search system according to a first embodiment.
- FIG. 1 shows a secret search system according to a first embodiment.
- FIG. 1 shows a secret search system according to a first embodiment.
- FIG. 2 is a diagram showing an example of a functional configuration of the access terminal apparatus according to the first embodiment.
- FIG. 2 is a diagram showing an example of a functional configuration of a data center apparatus according to the first embodiment.
- FIG. 6 is a flowchart showing an operation example of the access terminal apparatus according to the first embodiment.
- FIG. 6 is a flowchart showing an operation example of the access terminal apparatus according to the first embodiment.
- FIG. 6 is a flowchart showing an operation example of the access terminal apparatus according to the first embodiment.
- FIG. 6 is a flowchart showing an operation example of the access terminal apparatus according to the first embodiment.
- FIG. 6 is a flowchart showing an operation example of the data center apparatus according to the first embodiment.
- FIG. 6 is a flowchart showing an operation example of the data center apparatus according to the first embodiment.
- FIG. 6 is a flowchart showing an operation example of the data center apparatus according to the first embodiment.
- FIG. 2 is a diagram showing an example of a hardware configuration of an access terminal apparatus according to the first embodiment.
- FIG. 2 is a diagram showing an example of the hardware configuration of the data center apparatus according to the first embodiment.
- Embodiment 1 In the present embodiment, a bit string (hereinafter referred to as index bit string) used as an index in search of encrypted data is encrypted, and an index bit string obtained by encryption (hereinafter referred to as encrypted index bit string) is encrypted tag.
- index bit string used as an index in search of encrypted data
- encrypted index bit string an index bit string obtained by encryption
- FIG. 1 is a view showing an example of the configuration of a secret search system 100. As shown in FIG. 1
- the secret search system 100 includes a key management server device 201, an access terminal device 301, and a data center device 401.
- the key management server device 201 and the access terminal device 301 are connected to a LAN (Local Area Network) 102.
- the 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, and the data center device 401 is an example of a data storage device. Although only one access terminal device 301 is shown in FIG. 1, a plurality of access terminal devices 301 may be included in the secret search system 100.
- the key management server device 201 generates an encryption key used to encrypt storage target data to be stored in the data center device 401 and an encryption key used to encrypt tags. Further, the key management server device 201 may generate a plurality of index keys used for encryption of the index bit string.
- the access terminal device 301 is a PC (Personal Computer) used by a user.
- the access terminal device 301 generates storage target data and encrypts the generated storage target data. Further, the access terminal device 301 stores the encrypted data obtained by the encryption in the data center device 401.
- the access terminal device 301 also requests the data center device 401 to search for encrypted data. Then, the access terminal device 301 receives the acquired encrypted data from the data center device 401 and decrypts the received encrypted data.
- the data center device 401 is a server device having a large-capacity storage device for storing encrypted data. Since the storage target data is stored in an encrypted state, the data center apparatus 401 can not browse the contents of the storage target data.
- the network 101 is a communication path connecting the LAN 102 and the data center device 401.
- the Internet is an example of a typical network 101.
- the access terminal device 301 encrypts storage target data to generate encrypted data. Further, the access terminal device 301 extracts a keyword from the storage target data, and encrypts the extracted keyword using a random number and an encryption key to generate an encrypted tag.
- the encrypted tag is data to be collated when searching for encrypted data.
- the access terminal device 301 performs a prescribed operation on keywords of storage target data to generate an index bit string. For example, the access terminal apparatus 301 performs a hash operation on a keyword to generate an index bit string. Further, the access terminal apparatus 301 may generate an index bit string by performing encryption by a deterministic encryption method using an encryption key in addition to the hash operation. Then, the access terminal device 301 encrypts the index bit string.
- the access terminal device 301 encrypts the index bit string using a common key index key. Then, the access terminal device 301 transmits, to the data center device 401, the encrypted data, the encrypted tag, and the encrypted index bit string obtained by encrypting the index bit string.
- the data center device 401 receives the encrypted data, the encryption tag, and the encryption index bit string. Then, the data center device 401 stores the encrypted data, the encrypted tag, and the encrypted index bit string in association with each other.
- the access terminal device 301 when searching for encrypted data stored in the data center device 401, the access terminal device 301 encrypts a keyword to be searched and generates a trapdoor. Then, the access terminal device 301 transmits a search query including the trap door to the data center device 401. Note that 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 encrypted data may not match.
- the data center device 401 When the data center device 401 receives a search query from the access terminal device 301, the data center device 401 matches the trap door included in the search query with the encryption tag. Then, the data center device 401 identifies the encrypted tag generated with the same keyword as the keyword used for generating the trapdoor as a result of the collation, and encrypts the encrypted data associated with the specified tag data. Extract. Next, the data center device 401 transmits the extracted encrypted data to the access terminal device 301 that is the transmission source of the search query.
- the access terminal apparatus 301 that has requested storage of encrypted data discloses a bit value of a part of the encrypted index bit string to the data center apparatus 401.
- the access terminal apparatus 301 may disclose bit values in steps of one bit or may disclose bit values in steps of multiple bits. Also, the access terminal 301 may disclose all bit values at one time.
- the access terminal device 301 transmits the index key used to generate the encrypted index bit string to the data center device 401 in the disclosure of the bit value. The transmission of the index key is performed by encrypted communication.
- the data center device 401 receives the index key transmitted from the access terminal device 301. Then, the data center device 401 decrypts the encrypted bit value of the encrypted index bit string using the received index key. For example, as shown in FIG. 2, it is assumed that the value before encryption (that is, the value of the index bit string) of the encrypted index bit string associated with the encrypted data is “011”. It is assumed that the access terminal device 301 transmits to the data center device 401 an index key for releasing the bit value of the most significant bit. The data center apparatus 401 obtains the bit value “0” which is the most significant bit of the index bit string “011” using the received index key. As shown in FIG.
- the access terminal device 301 transmits to the data center device 401 a search query including “0”, which is the bit value of the trapdoor and the most significant bit of the encrypted index bit string.
- the data center device 401 selects the encrypted tag associated with the encrypted index bit string whose bit value of the most significant bit is “0”, and checks only the selected encrypted tag against the trapdoor.
- the access terminal device 301 discloses the lower bit value of the encrypted index bit string to the data center device 401. By doing this, even when the search efficiency is lowered, the search efficiency can be improved by the disclosure of the bit value of the encrypted bit string.
- the index bit string is encrypted by the common key method.
- the data center apparatus 401 can decode the bit value of the index bit string at high speed.
- the access terminal apparatus 301 performs encryption by the deterministic encryption method in the process of generating the index bit string. For this reason, even when all the bit values of the encrypted index bit string are disclosed to the data center device 401, there is no possibility that the keyword leaks to the data center device 401. For example, in the case where a hash operation is performed on a keyword without using an encryption key to generate an index bit string, anyone can execute the hash operation, and therefore, an index bit string can be generated by anyone.
- the same hash value stored in the data center device 401 may appear by calculating the hash value of the keyword gradually per touch, and then obtaining the keyword that is the source of the index bit string generation.
- the index bit string according to the present embodiment is an index bit string generated by performing encryption of the deterministic encryption method, there is no concern that a keyword may be leaked.
- FIG. 6 shows an example of a functional configuration of the access terminal device 301.
- FIG. 14 shows an example of a hardware configuration of the access terminal device 301.
- the access terminal apparatus 301 includes a data encryption unit 302, an encrypted tag generation unit 303, a tag-attached encrypted data generation unit 304, a key management unit 305, a search query generation unit 306, and a data decryption unit 307. , A permission bit position designation unit 308, a terminal-side data transmission / reception unit 309, and an encrypted index bit string generation unit 310.
- the access terminal device 301 is a computer. As illustrated in FIG. 14, the access terminal device 301 includes, as hardware, a processor 931, an auxiliary storage device 932, a memory 933, a communication interface 934, and an input / output interface 935.
- the auxiliary storage device 932 includes a data encryption unit 302, an encrypted tag generation unit 303, a tagged encrypted data generation unit 304, a key management unit 305, a search query generation unit 306, a data decryption unit 307, and a permission bit position specification unit
- a program for realizing the functions of the terminal-side data transmission / reception unit 309 and the encrypted index bit string generation unit 310 is stored. These programs are loaded from the auxiliary storage device 932 into the memory 933.
- the processor 931 executes these programs, and a data encryption unit 302, an encrypted tag generation unit 303, a tag-attached encrypted data generation unit 304, a key management unit 305, a search query generation unit 306, a data decryption unit to be described later.
- the operation of the permission bit position designation unit 308, the terminal-side data transmission / reception unit 309, and the encrypted index bit string generation unit 310 is performed.
- the processor 931 is a data encryption unit 302, an encrypted tag generation unit 303, a tag-attached encrypted data generation unit 304, a key management unit 305, a search query generation unit 306, a data decryption unit 307, and a permission bit position specification unit.
- FIG. 308 schematically shows a state in which a program for realizing the functions of the terminal-side data transmission / reception unit 309 and the encrypted index bit string generation unit 310 is being executed.
- the operation performed by the access terminal device 301 corresponds to a data processing method.
- a program that implements the functions of the transmission / reception unit 309 and the encryption index bit string generation unit 310 corresponds to a data processing program.
- the communication interface 934 communicates with an external device.
- the input / output interface 935 receives an instruction from the user of the access terminal device 301, and presents information to the user of the access terminal device 301.
- the data encryption unit 302 receives storage target data stored in the data center apparatus 401 from a user or an application. In addition, the data encryption unit 302 encrypts storage target data using common key encryption to obtain encrypted data of storage target data.
- the encryption key used by the data encryption unit 302 to encrypt storage target data is hereinafter referred to as an encryption key eka. Further, the data encryption unit 302 extracts a keyword to be used for a search later from the storage target data. Also, the data encryption unit 302 may receive a keyword to be associated with data from the user.
- the encrypted tag generation unit 303 generates an encrypted tag by encrypting the keyword associated with the storage target data by the data encryption unit 302 using a random number and an encryption key.
- the encryption key used by the encryption tag generation unit 303 for encrypting the keyword is hereinafter referred to as an encryption key ekb.
- the encrypted index bit string generating unit 310 performs a prescribed operation on keywords of storage target data to generate an index bit string. Also, the encrypted index bit string generation unit 310 encrypts the index bit string using the index key.
- the encrypted index bit string generation unit 310 encrypts each of the plurality of bit values of the index bit string using different index keys. For example, if the index bit string is 3 bits, the encrypted index bit string generator 310 uses three index keys.
- the index key used for encryption of the index bit string by the encrypted index bit string generator 310 is hereinafter referred to as the index key ik.
- “ik” is followed by a number representing a bit position to which the index key ik corresponds. For example, if the index bit string is 3 bits, the index key used to encrypt the most significant bit value is denoted as index key ik1.
- index key ik an index key used to encrypt the bit value of the least significant bit.
- index key ik an index key used to encrypt the bit value of the least significant bit.
- the encrypted index bit string generation unit 310 when a plurality of encrypted data are stored in the data center device 401, the encrypted index bit string generation unit 310 generates a plurality of index bit strings in association with the plurality of encrypted data. Then, the encrypted index bit string generation unit 310 can use a set of index keys common to encryption of a plurality of index bit strings of a plurality of encrypted data. That is, the encrypted index bit string generation unit 310 encrypts bit values in the same bit position of a plurality of index bit strings using the same index key. For example, if all index bit strings are 3 bits, the encrypted index bit string generator 310 encrypts the bit value of the most significant bit of all index bit strings using the index key ik1.
- the encrypted index bit string generating unit 310 encrypts the bit value of the least significant bit of all the index bit strings using the index key ik3. By doing this, the bit value of the most significant bit of the plurality of encrypted index bit strings of the plurality of encrypted data can be obtained merely by transmitting the index key ik1 to the data center device 401 by the permission bit position designation unit 308 described later. It can be disclosed. Note that the encrypted index bit string generation unit 310 may use different sets of index keys for encryption of a plurality of index bit strings.
- the encrypted index bit string generating unit 310 encrypts each of the plurality of bit values of the index bit string using different index keys, but the encrypted index bit string generating unit 310 does not include the index bit string
- the plurality of bit values may be encrypted using a smaller number of index keys than the number of bits of the index bit string. Specifically, if the index bit string is 3 bits, the encrypted index bit string generator 310 may use one or two index keys.
- the encrypted index bit string generation unit 310 does not decrypt the encrypted bit value at a bit position other than the permission bit position described later by the index key used for the encryption of the bit value at the permission bit position.
- multiple bit values of the index bit string are encrypted.
- the encrypted index bit string generation unit 310 corresponds to an index bit string generation unit and an index bit string encryption unit.
- the processing performed by the encrypted index bit string generation unit 310 corresponds to index bit string generation processing and index bit string encryption processing.
- the tagged encrypted data generation unit 304 generates the encrypted data generated by the data encryption unit 302, the encrypted tag generated by the encrypted tag generation unit 303, and the encrypted index bit string generation unit 310. Combine the encrypted index bit strings to generate tagged encrypted data. Then, the tagged encrypted data generation unit 304 outputs the tagged encrypted data to the terminal-side data transmission / reception unit 309.
- the key management unit 305 manages the encryption key eka and the encryption key ekb. More specifically, the key management unit 305 stores the encryption key eka and the encryption key ekb generated by the key management server device 201 in the auxiliary storage device 932. Also, the key management unit 305 generates a plurality of index keys ik (ik1, ik2, ik3...) From the encryption key eka or the encryption key ekb, and stores the generated plurality of index keys ik in the auxiliary storage device 932. Instead of storing the plurality of index keys ik in the auxiliary storage device 932, the key management unit 305 may generate the encryption key eka or the encryption key ekb each time the index key ik is needed.
- the key management unit 305 may store the index key ik generated independently of the encryption key eka and the encryption key ekb in the key management server device 201 in the auxiliary storage device 932. Also, the key management unit 305 outputs the encryption key ekb for generation of the search query of the search query generation unit 306. Also, the key management unit 305 outputs the encryption key eka to the data decryption unit 307 in order to decrypt the encrypted data of the data decryption unit 307. Also, the key management unit 305 outputs the index key ik corresponding to the bit value to be disclosed to the permission bit position specification unit 308 in order to disclose the specific bit value in the encrypted index bit string.
- the search query generation unit 306 generates a trapdoor by encrypting the search keyword specified by the user with the encryption key ekb. Then, the search query generation unit 306 generates a search query including the trapdoor, and outputs the search query to the terminal-side data transmission / reception unit 309. If the disclosed bit value exists, the search query generation unit 306 generates a search query including the trapdoor and the disclosed bit value, and outputs the search query to the terminal-side data transmission / reception unit 309. When the disclosed bit value exists, the search query generation unit 306 generates the encrypted index bit string of the search keyword using the encrypted index bit string generation unit 310, and the trapdoor and the encrypted index bit string are generated. A search query to be included may be generated, and the search query may be output to the terminal-side data transmission / reception unit 309. In this case, the data center device 401 can obtain the disclosed bit value from the encrypted index bit string using the index key ik already disclosed.
- the data decryption unit 307 decrypts the encrypted data received from the data center device 401 using the encryption key eka.
- the permission bit position designation unit 308 designates a permission bit position.
- the permission bit position is a bit position that decrypts and exposes a bit value among a plurality of bit positions of the encrypted index bit string.
- the permission bit position designating unit 308 may specify the permission bit position according to an instruction from the user, or may specify the permission bit position according to a predetermined algorithm.
- the permission bit position specification unit 308 may specify the permission bit positions in steps of one bit at a time, or may specify two or more bits at one time as the permission bit positions. Also, the permission bit position specification unit 308 may specify all the bits of the encrypted index bit string as permission bit positions at one time.
- the permission bit position specification unit 308 specifies permission bit positions in order from the most significant bit when specifying permission bit positions in stages.
- the permission bit position designation unit 308 acquires from the key management unit 305 the index key ik corresponding to the permission bit position. That is, the permission bit position designation unit 308 acquires, from the key management unit 305, the index key ik used for encrypting the bit value of the permission bit position. Then, the acquired index key ik is output to the terminal-side data transmission / reception unit 309.
- the terminal-side data transmission / reception unit 309 receives the encryption key eka and the encryption key ekb from the key management server device 201.
- the terminal-side data transmission / reception unit 309 may receive a plurality of index keys ik from the key management server device 201 in some cases.
- the terminal-side data transmission / reception unit 309 also transmits tagged encrypted data to the data center device 401.
- the terminal-side data transmission / reception unit 309 receives, from the data center device 401, encrypted data that is a search result. Further, the terminal-side data transmission / reception unit 309 transmits the index key ik to the data center device 401 in order to disclose the bit value of the permission bit position.
- the terminal-side data transmission / reception unit 309 corresponds to a transmission unit. Further, the processing performed by the terminal-side data transmission / reception unit 309 corresponds to transmission processing.
- FIG. 7 shows an example of the functional configuration of the data center device 401.
- FIG. 15 shows an example of the hardware configuration of the data center device 401.
- the data center device 401 includes a center-side data transmission / reception unit 402, a storage request processing unit 403, a data storage unit 404, a disclosure bit value decoding unit 405, and a search processing unit 406.
- the data center device 401 is a computer. As shown in FIG. 15, the data center device 401 includes a processor 941, an auxiliary storage device 942, a memory 943, a communication interface 944 and an input / output interface 945 as hardware.
- the auxiliary storage unit 942 stores programs for realizing the functions of the center-side data transmission / reception unit 402, the storage request processing unit 403, the disclosure bit value decoding unit 405, and the search processing unit 406. These programs are loaded from the storage unit 942 into the memory 943. Then, the processor 941 executes these programs to operate the center-side data transmission / reception unit 402, the storage request processing unit 403, the disclosure bit value decoding unit 405, and the search processing unit 406, which will be described later.
- the 14 schematically shows a state in which the processor 941 is executing a program for realizing the functions of the center-side data transmission / reception unit 402, the storage request processing unit 403, the disclosure bit value decoding unit 405, and the search processing unit 406. .
- the data storage unit 404 is realized by the auxiliary storage device 942.
- the communication interface 944 communicates with an external device.
- the input / output interface 945 receives an instruction from the user of the data center apparatus 401, and presents information to the user of the data center apparatus 401.
- the center-side data transmission / reception unit 402 receives tagged encrypted data from the access terminal device 301.
- the center-side data transmission / reception unit 402 also receives a search query from the access terminal device 301, and transmits encrypted data as a response.
- the center-side data transmission / reception unit 402 also receives the index key ik from the access terminal device 301.
- the storage request processing unit 403 analyzes the received tagged encrypted data, and decomposes the tagged encrypted data into encrypted data, an encrypted tag, and an encrypted index bit string. Then, the storage request processing unit 403 stores the encrypted data, the encrypted tag, and the encrypted index bit string in the data storage unit 404 in association with each other.
- the data storage unit 404 mutually stores the encrypted data, the encrypted tag, and the encrypted index bit string in association with each other.
- the disclosed bit value decryption unit 405 decrypts the bit value of the permission bit position of the encrypted index bit string using the received index key ik.
- the search processing unit 406 collates the search query received from the access terminal device 301 with the encrypted tag in the data storage unit 404.
- the search processing unit 406 determines whether or not the keyword included in the tag and the keyword included in the search query match by this matching process. Thereafter, the search processing unit 406 acquires, from the data storage unit 404, the encrypted data associated with the tag hit in the search. Then, the search processing unit 406 returns the acquired encrypted data to the access terminal apparatus 301 via the center-side data transmission / reception unit 402.
- 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 data encryption unit 302 may extract the keyword from the storage target data, or the user may specify the keyword.
- one keyword may be associated with storage target data, and a plurality of keywords may be associated with storage target data. In the following, in order to simplify the explanation, it is assumed that one keyword is associated with the data to be stored.
- step S802 the data encryption unit 302 encrypts storage target data to generate encrypted data. More specifically, the data encryption unit 302 acquires the encryption key eka from the key management unit 305, and encrypts storage target data using the encryption key eka. The data encryption unit 302 outputs the keyword to the encryption tag generation unit 303. Also, the data encryption unit 302 outputs the encrypted data to the tagged encrypted data generation unit 304.
- the encrypted tag generation unit 303 generates an encrypted tag. More specifically, the encryption tag generation unit 303 acquires the encryption key ekb from the key management unit 305, encrypts the keyword using a random number and the encryption key ekb, and generates an encryption tag. The encrypted tag generation unit 303 outputs the keyword to the encrypted index bit string generation unit 310. In addition, the encrypted tag generation unit 303 outputs the encrypted tag to the tagged encrypted data generation unit 304.
- step S804 the encrypted index bit string generating unit 310 performs a prescribed operation on the keyword to generate an index bit string.
- the encryption index bit string generating unit 310 performs a hash operation on the keyword to generate an index bit string.
- the encryption index bit string generation unit 310 may generate an index bit string by performing encryption using a deterministic encryption method in addition to the hash operation.
- step S805 the encrypted index bit string generation unit 310 encrypts the index bit string to generate an encrypted index bit string. More specifically, the encrypted index bit string generating unit 310 acquires the index key ik of the common key method from the key management unit 305, and encrypts the index bit string using the index key ik. The encrypted index bit string generating unit 310 outputs the encrypted index bit string to the tagged encrypted data generating unit 304.
- step S806 the tagged encrypted data generation unit 304 combines the encrypted data, the encrypted tag, and the encrypted index bit string to generate tagged encrypted data.
- the tagged encrypted data generation unit 304 outputs the generated tagged encrypted data to the terminal-side data transmission / reception unit 309.
- step S 807 the terminal-side data transmission / reception unit 309 transmits the tagged encrypted data to the data center device 401.
- step S1102 when the center-side data transmission / reception unit 402 receives tagged encrypted data (YES in step S1101), in step S1102, the storage request processing unit 403 encrypts tagged encrypted data as encrypted data, an encrypted tag, and an encryption tag. Break it down into binary index bit strings.
- step S 1103 the storage request processing unit 403 stores the encrypted data, the encrypted tag, and the encrypted index bit string in the data storage unit 404 in association with each other.
- search request processing in the access terminal device 301 will be described based on FIG.
- step S 901 the search query generation unit 306 acquires a search keyword from the user who operates the access terminal device 301.
- step S902 the search query generation unit 306 encrypts the search keyword to generate a search query. More specifically, the search query generation unit 306 acquires the encryption key ekb from the key management unit 305, and encrypts the search keyword using the encryption key ekb. Then, the search query generation unit 306 generates a search query including the trapdoor obtained by the encryption.
- step S 903 the search query generation unit 306 determines whether any bit value of the index bit string has been disclosed.
- step S 904 the search query generation unit 306 adds the disclosed bit value to the search query.
- step S 905 the terminal-side data transmission / reception unit 309 transmits a search query to the data center device 401.
- step S906 when the terminal-side data transmission / reception unit 309 receives the search result (YES in step S906), the data decryption unit 307 acquires the encryption key eka from the key management unit 305, and uses the search result as the search result. The included encrypted data is decrypted using the encryption key eka (step S 907).
- step S1202 the search processing unit 406 determines whether the search query includes a disclosed bit value.
- step S1204 the search processing unit 406 performs a search using a trapdoor. That is, the search processing unit 406 matches the trapdoor with the encryption tag. Then, the search processing unit 406 specifies an encrypted tag generated with the same keyword as the keyword used for generating the trapdoor, and extracts encrypted data associated with the specified tag data.
- step S1203 the search processing unit 406 determines that the encrypted bit value is the same as the disclosed bit value included in the search query.
- the search using the trapdoor is performed with limitation to the encryption tag associated with the conversion index bit string.
- the center-side data transmission / reception unit 402 transmits the encrypted data extracted by the search processing unit 406 to the access terminal apparatus 301 that is the transmission source of the search query.
- index bit value disclosure processing in the access terminal device 301 will be described.
- the permission bit position designation unit 308 designates the permission bit position. For example, when the search efficiency in the data center apparatus 401 becomes equal to or less than the threshold value, the permission bit position specification unit 308 specifies the permission bit position. As described above, the permission bit position designating unit 308 may specify the permission bit position according to an instruction from the user, or may specify the permission bit position according to a predetermined algorithm. The permission bit position specification unit 308 may specify the permission bit positions in steps of one bit at a time, or may specify two or more bits at one time as the permission bit positions.
- step S1002 the permission bit position designation unit 308 acquires, from the key management unit 305, the index key ik used for encrypting the bit value of the permission bit position.
- the permission bit position specification unit 308 outputs the index key ik acquired from the key management unit 305 to the terminal-side data transmission / reception unit 309 together with the information on the permission bit position.
- step S1003 the terminal-side data transmission / reception unit 309 transmits the index key ik to the data center apparatus 401 together with the information of the permission bit position.
- step S1302 When center side data transmission / reception unit 402 receives index key ik (YES in step S1301), in step S1302, disclosed bit value decryption unit 405 uses index key ik to use the corresponding bit value in the encrypted index bit string. Decode the
- the new encrypted data is registered in the data center device 401 after the disclosure of any bit value in the encrypted disclosure bit string
- the new encrypted data is registered. All bit values of the encrypted index bit string are encrypted.
- the access terminal device 301 also transmits the index key of the corresponding bit position to the data center device 401 for the encrypted index bit string corresponding to the new encrypted data, and the data center device 401 transmits the index key string corresponding to the encrypted index bit string. Decode a bit position.
- the access terminal device 301 encrypts the index bit string using the common key index key. Therefore, according to the present embodiment, the access terminal apparatus 301 can speed up the decoding process of the index bit string, and as a result, it is possible to speed up the search process.
- the access terminal device 301 encrypts the index bit string using the common key index key. Therefore, according to the present embodiment, no information leaks from the encrypted index bit string before disclosure.
- the access terminal apparatus 301 performs encryption by a deterministic encryption method in addition to the hash operation to generate an index bit string. Therefore, according to the present embodiment, even if all bit values of the index bit string are disclosed, there is little possibility that the keyword is analogized.
- the processor 931 and the processor 941 illustrated in FIGS. 14 and 15 are integrated circuits (ICs) that perform processing.
- the processor 931 and the processor 941 are a central processing unit (CPU), a digital signal processor (DSP), and the like.
- the auxiliary storage device 932 and the auxiliary storage device 942 illustrated in FIGS. 14 and 15 are a ROM (Read Only Memory), a flash memory, an HDD (Hard Disk Drive), and the like.
- the memory 933 and the memory 943 illustrated in FIGS. 14 and 15 are a random access memory (RAM).
- the communication interface 934 and the communication interface 944 illustrated in FIGS. 14 and 15 are electronic circuits that execute data communication processing.
- the communication interface 934 and the communication interface 944 are, for example, a communication chip or a NIC (Network Interface Card).
- the input / output interface 935 and the input / output interface 945 shown in FIGS. 14 and 15 are, for example, a mouse, a keyboard, a display, and the like.
- the auxiliary storage device 932 also stores an OS (Operating System). Then, at least part of the OS is executed by the processor 931.
- the processor 931 executes at least a part of the OS while the data encryption unit 302, the encrypted tag generation unit 303, the tagged encrypted data generation unit 304, the key management unit 305, the search query generation unit 306, and the data decryption unit 307.
- a program for realizing the functions of permission bit position designation unit 308, terminal side data transmission / reception unit 309, and encrypted index bit string generation unit 310 is executed.
- the processor 931 executes the OS, task management, memory management, file management, communication control, and the like are performed.
- a data encryption unit 302 an encrypted tag generation unit 303, a tagged encrypted data generation unit 304, a key management unit 305, a search query generation unit 306, a data decryption unit 307, a permission bit position specification unit 308, terminal side data
- At least one of information, data, signal value and variable value indicating the result of processing of transmission / reception unit 309 and encrypted index bit string generation unit 310 corresponds to at least one of auxiliary storage device 932, memory 933, register in processor 931 and cache memory. It is memorized in either.
- Programs for realizing the functions of the transmission / reception unit 309 and the encrypted index bit string generation unit 310 may be stored in a portable storage medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, and a DVD.
- the auxiliary storage device 942 also stores an OS (Operating System). Then, at least part of the OS is executed by the processor 941.
- the processor 941 executes a program that implements the functions of the center-side data transmission / reception unit 402, the storage request processing unit 403, the disclosed bit value decoding unit 405, and the search processing unit 406 while executing at least a part of the OS.
- the processor 941 executes the OS, task management, memory management, file management, communication control, and the like are performed. Further, at least one of information, data, signal value, and variable value indicating the result of processing of the center-side data transmission / reception unit 402, storage request processing unit 403, disclosure bit value decoding unit 405, and search processing unit 406 is an auxiliary storage device.
- the programs for realizing the functions of the center-side data transmission / reception unit 402, the storage request processing unit 403, the disclosure bit value decoding unit 405, and the search processing unit 406 are magnetic disks, flexible disks, optical disks, compact disks, Blu-ray (registered trademark) It may be stored in a portable storage medium such as a disc or a DVD.
- a data encryption unit 302 an encrypted tag generation unit 303, a tagged encrypted data generation unit 304, a key management unit 305, a search query generation unit 306, a data decryption unit 307, a permission bit position specification unit 308, terminal side data
- the “parts” of the transmission / reception unit 309 and the encrypted index bit string generation unit 310 may be read as “circuit” or “process” or “procedure” or “process”.
- the "unit” of the center-side data transmission / reception unit 402, the storage request processing unit 403, the disclosure bit value decoding unit 405, and the search processing unit 406 is replaced with “circuit” or "process” or “procedure” or "process”.
- the access terminal device 301 and the data center device 401 may be realized by a processing circuit.
- the processing circuit is, for example, a logic integrated circuit (IC), a gate array (GA), an application specific integrated circuit (ASIC), or a field-programmable gate array (FPGA).
- IC logic integrated circuit
- G gate array
- ASIC application specific integrated circuit
- FPGA field-programmable gate array
- the side data transmission / reception unit 309 and the encrypted index bit string generation unit 310 are each realized as part of a processing circuit.
- center-side data transmission / reception unit 402, the storage request processing unit 403, the disclosure bit value decoding unit 405, and the search processing unit 406 are also realized as part of the processing circuit.
- processing circuit the upper concept of the processor, the memory, the combination of the processor and the memory, and the processing circuit. That is, the processor, the memory, the combination of the processor and the memory, and the processing circuit are specific examples of the "processing circuit".
- Reference Signs List 100 secret search system 101 network 102 LAN 201 key management server device 301 access terminal device 302 data encryption unit 303 encrypted tag generation unit 304 tagged encrypted data generation unit 305 key management unit 306 Search query generation unit 307 data decryption unit 308 permission bit position specification unit 309 terminal side data transmission / reception unit 310 encrypted index bit string generation unit 401 data center apparatus 402 center side data transmission / reception unit 403 storage request processing unit 404 data storage unit, 405 disclosure bit value decoding unit, 406 search processing unit.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
索引ビット列生成部(310)は、データセンタ装置(401)で保管される暗号化データの検索の際に索引として用いられるビット列を、暗号化データに関連付けて、索引ビット列として生成する。また、索引ビット列生成部(310)は、索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化する。端末側データ送受信部(309)は、索引ビット列生成部(310)により複数のビット値が暗号化された後の索引ビット列である暗号化索引ビット列と、暗号化データとをデータセンタ装置(401)に送信する。
Description
本発明は、秘匿検索技術に関する。
秘匿検索とは、暗号化データを暗号化したまま検索する技術である。
近年、秘匿検索は、クラウドサービスなどのインターネット上でデータを管理する際のサーバ管理者による盗聴からも機密情報を守るためのセキュリティ技術として注目されている。
近年、秘匿検索は、クラウドサービスなどのインターネット上でデータを管理する際のサーバ管理者による盗聴からも機密情報を守るためのセキュリティ技術として注目されている。
秘匿検索の基本的な流れは、下記の通りである。
まず、データを暗号化するユーザ(暗号化者)は、データを暗号化して暗号化データを生成する。また、ユーザ(暗号化者)は、生成した暗号化データを検索するためのキーワードを当該暗号化データに関連付ける。
関連付けたキーワードもデータに関する情報であるため、キーワードも暗号化される。暗号化されたキーワードは暗号化タグという。暗号化データと暗号化タグはデータセンタ装置に保管される。
暗号化タグは1個である必要はなく、複数の暗号化タグを暗号化データに関連付けることができる。
また、暗号化タグからキーワードが漏れることはない。
まず、データを暗号化するユーザ(暗号化者)は、データを暗号化して暗号化データを生成する。また、ユーザ(暗号化者)は、生成した暗号化データを検索するためのキーワードを当該暗号化データに関連付ける。
関連付けたキーワードもデータに関する情報であるため、キーワードも暗号化される。暗号化されたキーワードは暗号化タグという。暗号化データと暗号化タグはデータセンタ装置に保管される。
暗号化タグは1個である必要はなく、複数の暗号化タグを暗号化データに関連付けることができる。
また、暗号化タグからキーワードが漏れることはない。
検索を行うユーザ(検索者)は、検索したいキーワードを選び、そのキーワードと自身の持つ秘密鍵を用いて検索クエリを生成する。
検索クエリは、秘密鍵を用いてキーワードをランダム化したものであるため、検索クエリ自身から秘密鍵を類推するのは難しい。
そして、ユーザ(検索者)は、この検索クエリをデータセンタ装置に送信し、データセンタ装置に検索を要求する。
検索クエリは、秘密鍵を用いてキーワードをランダム化したものであるため、検索クエリ自身から秘密鍵を類推するのは難しい。
そして、ユーザ(検索者)は、この検索クエリをデータセンタ装置に送信し、データセンタ装置に検索を要求する。
データセンタ装置は、ユーザ(暗号化者)から保管を依頼された暗号化データと暗号化タグを相互に対応付けて保管している。
データセンタ装置は、ユーザ(検索者)から検索クエリを受け取ったら、データセンタ装置が保管する暗号化タグの中から、検索クエリの生成に用いられたキーワードと同一のキーワードを含む暗号化タグを検索する。
この時、データセンタ装置は秘匿検索のための特殊な演算を行うことによって、暗号化タグを復号してキーワードを取り出すことなく、暗号化タグのキーワードと、検索クエリのキーワードが同一かどうかを判定できる。
そして、データセンタ装置はキーワードが検索クエリと同一と判定された暗号化タグと関連付けられた暗号化データをユーザ(検索者)に返却する。
データセンタ装置は、ユーザ(検索者)から検索クエリを受け取ったら、データセンタ装置が保管する暗号化タグの中から、検索クエリの生成に用いられたキーワードと同一のキーワードを含む暗号化タグを検索する。
この時、データセンタ装置は秘匿検索のための特殊な演算を行うことによって、暗号化タグを復号してキーワードを取り出すことなく、暗号化タグのキーワードと、検索クエリのキーワードが同一かどうかを判定できる。
そして、データセンタ装置はキーワードが検索クエリと同一と判定された暗号化タグと関連付けられた暗号化データをユーザ(検索者)に返却する。
なお、秘匿検索には、暗号化者と検索者が同一の秘密情報を保持しなくてはならない共通鍵方式と、暗号化者は誰でも良くて検索者のみが秘密情報を保持する特定ユーザに限定された公開鍵方式の2種類がある。
また、秘匿検索を実現する手法は、確定的暗号を利用する方法と、確率的暗号を利用する方法の2種類がある。
確定的暗号とは、同一のキーワードを暗号化した際に、何回繰り返して暗号化しても同一の暗号文が得られるという特徴を持つ暗号化方式である。
そのため、確定的暗号には、従来のデータベースで実現されている転置索引などの高速化手法を利用して、検索を高速に実施することができるという特徴がある。
その一方で、暗号化データの出現頻度をカウントする事ができるため、確定的暗号には、例えばキーワードが名字であった場合、一般的に知られている名字の人口比率の情報等を元にして、暗号化データの中身が推測できてしまうという欠点もある(例えば非特許文献2)。
確定的暗号とは、同一のキーワードを暗号化した際に、何回繰り返して暗号化しても同一の暗号文が得られるという特徴を持つ暗号化方式である。
そのため、確定的暗号には、従来のデータベースで実現されている転置索引などの高速化手法を利用して、検索を高速に実施することができるという特徴がある。
その一方で、暗号化データの出現頻度をカウントする事ができるため、確定的暗号には、例えばキーワードが名字であった場合、一般的に知られている名字の人口比率の情報等を元にして、暗号化データの中身が推測できてしまうという欠点もある(例えば非特許文献2)。
一方、確率的暗号とは、同一のキーワードを暗号化する場合でも、暗号化のたびに異なる暗号文となるという特徴を持つ暗号化方式である。
したがって、単純に暗号化データ同士を比較してもキーワードが同一かどうか分からない。このため、確定的暗号で問題となっていた出現頻度のカウントによるキーワードの推測ができない様になっており、その安全性が高い事が特徴である。
その一方で、キーワードの同一性すら分からないため、従来のデータベースで実現されていた高速化手法が使えず、検索が遅いという欠点がある(例えば非特許文献1、非特許文献3、非特許文献4、非特許文献5)。
したがって、単純に暗号化データ同士を比較してもキーワードが同一かどうか分からない。このため、確定的暗号で問題となっていた出現頻度のカウントによるキーワードの推測ができない様になっており、その安全性が高い事が特徴である。
その一方で、キーワードの同一性すら分からないため、従来のデータベースで実現されていた高速化手法が使えず、検索が遅いという欠点がある(例えば非特許文献1、非特許文献3、非特許文献4、非特許文献5)。
確率的暗号を用いた秘匿検索を高速化する手法として、検索結果をキャッシュすることによって平均応答時間を短縮するアイデアが提案されている。
これは、一般的な検索では同じキーワードで2回以上検索される事があるという特徴に着目したものである。この手法では、1回目の検索では時間がかかるものの、その結果をキャッシュして2回目以降はキャッシュした結果を返すだけにする事で、検索の高速化を図っている(例えば特許文献1)。
これは、一般的な検索では同じキーワードで2回以上検索される事があるという特徴に着目したものである。この手法では、1回目の検索では時間がかかるものの、その結果をキャッシュして2回目以降はキャッシュした結果を返すだけにする事で、検索の高速化を図っている(例えば特許文献1)。
また、確率的暗号を用いた秘匿検索方式において、キーワードの部分情報であるビット列を暗号化し、暗号化されたビット列をデータセンタ装置に送信することによって、秘匿検索を高速化する技術がある(例えば、特許文献2)。
特許文献2の技術では、暗号化されたビット列のうちの一部のビット値が開示されることで、データセンタ装置は当該ビット列を索引として用いることができる。この結果、特許文献2の技術により、秘匿検索を高速化することができる。更に、特許文献2の技術では、データセンタ装置に登録されている暗号化データの数が増加して検索速度が遅くなった場合に、ビット列内の秘匿されているビット値を追加でデータセンタ装置に開示することで、秘匿検索の検索速度を改善することができる。
特許文献2の技術では、暗号化されたビット列のうちの一部のビット値が開示されることで、データセンタ装置は当該ビット列を索引として用いることができる。この結果、特許文献2の技術により、秘匿検索を高速化することができる。更に、特許文献2の技術では、データセンタ装置に登録されている暗号化データの数が増加して検索速度が遅くなった場合に、ビット列内の秘匿されているビット値を追加でデータセンタ装置に開示することで、秘匿検索の検索速度を改善することができる。
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.
M.Bellare、A.Boldyreva、A.O’Neill、"Deterministic and Efficiently Searchable Encryption"、CRYPTO’2007、Lecture Notes in Computer Science、Vol.4622、2007.
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.
服部 充洋、森 拓海、伊藤 隆、松田 規、米田 健、太田 和夫、"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.
特許文献2では、データセンタ装置において索引として用いられるビット列は公開鍵方式を用いて暗号化されている。このため、データセンタ装置でビット列の一部のビット値の復号する際に、復号処理に時間を要するという課題がある。
本発明は、このような課題を解決することを主な目的とする。より具体的には、本発明は、索引として用いられるビット列の復号処理を高速化することにより、検索処理を高速化することを主な目的とする。
本発明に係るデータ処理装置は、
データ保管装置で保管される暗号化データの検索の際に索引として用いられるビット列を、前記暗号化データに関連付けて、索引ビット列として生成する索引ビット列生成部と、
前記索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化する索引ビット列暗号化部と、
前記索引ビット列暗号化部により前記複数のビット値が暗号化された後の前記索引ビット列である暗号化索引ビット列と、前記暗号化データとを前記データ保管装置に送信する送信部とを有する。
データ保管装置で保管される暗号化データの検索の際に索引として用いられるビット列を、前記暗号化データに関連付けて、索引ビット列として生成する索引ビット列生成部と、
前記索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化する索引ビット列暗号化部と、
前記索引ビット列暗号化部により前記複数のビット値が暗号化された後の前記索引ビット列である暗号化索引ビット列と、前記暗号化データとを前記データ保管装置に送信する送信部とを有する。
本発明では、索引ビット列は、共通鍵方式の索引鍵を用いて暗号化される。このため、本発明によれば、索引ビット列の復号処理を高速化することができ、この結果、検索処理を高速化することができる。
実施の形態1.
本実施の形態では、暗号化データの検索の際に索引として用いられるビット列(以下、索引ビット列)を暗号化し、暗号化により得られた索引ビット列(以下、暗号化索引ビット列という)を暗号化タグに付加して秘匿検索を高速化する方式を説明する。
更に、本実施の形態1では、データセンタ装置に登録された暗号化データの数が増加して検索処理が遅くなった場合に、暗号化索引ビット列の暗号化されているビット値を段階的に開示することで、秘匿検索を安全に高速化する方式を説明する。
本実施の形態では、暗号化データの検索の際に索引として用いられるビット列(以下、索引ビット列)を暗号化し、暗号化により得られた索引ビット列(以下、暗号化索引ビット列という)を暗号化タグに付加して秘匿検索を高速化する方式を説明する。
更に、本実施の形態1では、データセンタ装置に登録された暗号化データの数が増加して検索処理が遅くなった場合に、暗号化索引ビット列の暗号化されているビット値を段階的に開示することで、秘匿検索を安全に高速化する方式を説明する。
図1は、秘匿検索システム100の構成例を示す図である。
秘匿検索システム100は、鍵管理サーバ装置201、アクセス端末装置301、データセンタ装置401を備える。
鍵管理サーバ装置201とアクセス端末装置301とは、LAN(Local Area Network)102に接続されている。
LAN102は、ネットワーク101を介してデータセンタ装置401と接続されている。
なお、アクセス端末装置301はデータ処理装置の例であり、データセンタ装置401はデータ保管装置の例である。
図1では、1つのアクセス端末装置301のみが示されているが、秘匿検索システム100に複数のアクセス端末装置301が含まれていてもよい。
鍵管理サーバ装置201とアクセス端末装置301とは、LAN(Local Area Network)102に接続されている。
LAN102は、ネットワーク101を介してデータセンタ装置401と接続されている。
なお、アクセス端末装置301はデータ処理装置の例であり、データセンタ装置401はデータ保管装置の例である。
図1では、1つのアクセス端末装置301のみが示されているが、秘匿検索システム100に複数のアクセス端末装置301が含まれていてもよい。
鍵管理サーバ装置201は、データセンタ装置401での保管対象となる保管対象データの暗号化に用いる暗号鍵及びタグの暗号化に用いる暗号鍵を生成する。
また、鍵管理サーバ装置201は、索引ビット列の暗号化に用いる複数の索引鍵を生成してもよい。
また、鍵管理サーバ装置201は、索引ビット列の暗号化に用いる複数の索引鍵を生成してもよい。
アクセス端末装置301は、ユーザが利用するPC(Personal Computer)である。
アクセス端末装置301は、保管対象データを生成し、生成した保管対象データを暗号化する。また、アクセス端末装置301は、暗号化により得られた暗号化データをデータセンタ装置401に保管する。また、アクセス端末装置301は、データセンタ装置401に、暗号化データの検索を要求する。そして、アクセス端末装置301は、データセンタ装置401から、取得された暗号化データを受信し、受信した暗号化データの復号を行う。
アクセス端末装置301は、保管対象データを生成し、生成した保管対象データを暗号化する。また、アクセス端末装置301は、暗号化により得られた暗号化データをデータセンタ装置401に保管する。また、アクセス端末装置301は、データセンタ装置401に、暗号化データの検索を要求する。そして、アクセス端末装置301は、データセンタ装置401から、取得された暗号化データを受信し、受信した暗号化データの復号を行う。
データセンタ装置401は、暗号化データを保管する大容量の記憶装置を持つサーバ装置である。
保管対象データは暗号化された状態で保管されるため、データセンタ装置401では保管対象データの中身を閲覧することができない。
保管対象データは暗号化された状態で保管されるため、データセンタ装置401では保管対象データの中身を閲覧することができない。
ネットワーク101は、LAN102とデータセンタ装置401を接続する通信路である。
例えば、インターネットなどが代表的なネットワーク101の例である。
例えば、インターネットなどが代表的なネットワーク101の例である。
ここで、図2~図5を参照して、本実施の形態における秘匿検索システム100の概要を説明する。
図2に示すように、アクセス端末装置301は、保管対象データを暗号化して、暗号化データを生成する。
また、アクセス端末装置301は、保管対象データからキーワードを抽出し、抽出したキーワードを乱数と暗号鍵を用いて暗号化して暗号化タグを生成する。
暗号化タグは、暗号化データの検索の際に照合されるデータである。
また、アクセス端末装置301は、保管対象データのキーワードに対して規定の演算を行って索引ビット列を生成する。アクセス端末装置301は、例えば、キーワードに対してハッシュ演算を行って索引ビット列を生成する。また、アクセス端末装置301は、ハッシュ演算に加え暗号鍵を用いて確定的暗号方式による暗号化を行って索引ビット列を生成してもよい。
そして、アクセス端末装置301は、索引ビット列を暗号化する。より具体的には、アクセス端末装置301は、共通鍵方式の索引鍵を用いて索引ビット列を暗号化する。
そして、アクセス端末装置301は、暗号化データと、暗号化タグと、索引ビット列を暗号化して得られた暗号化索引ビット列をデータセンタ装置401に送信する。
また、アクセス端末装置301は、保管対象データからキーワードを抽出し、抽出したキーワードを乱数と暗号鍵を用いて暗号化して暗号化タグを生成する。
暗号化タグは、暗号化データの検索の際に照合されるデータである。
また、アクセス端末装置301は、保管対象データのキーワードに対して規定の演算を行って索引ビット列を生成する。アクセス端末装置301は、例えば、キーワードに対してハッシュ演算を行って索引ビット列を生成する。また、アクセス端末装置301は、ハッシュ演算に加え暗号鍵を用いて確定的暗号方式による暗号化を行って索引ビット列を生成してもよい。
そして、アクセス端末装置301は、索引ビット列を暗号化する。より具体的には、アクセス端末装置301は、共通鍵方式の索引鍵を用いて索引ビット列を暗号化する。
そして、アクセス端末装置301は、暗号化データと、暗号化タグと、索引ビット列を暗号化して得られた暗号化索引ビット列をデータセンタ装置401に送信する。
データセンタ装置401は、暗号化データと暗号化タグと暗号化索引ビット列を受信する。そして、データセンタ装置401は、暗号化データと暗号化タグと暗号化索引ビット列を相互に対応付けて記憶する。
図3に示すように、データセンタ装置401に保管されている暗号化データを検索する際には、アクセス端末装置301は、検索対象のキーワードを暗号化してトラップドアを生成する。
そして、アクセス端末装置301は、トラップドアが含まれる検索クエリをデータセンタ装置401に送信する。
なお、データセンタ装置401に暗号化データを登録するアクセス端末装置301と、データセンタ装置401に暗号化データの検索を要求するアクセス端末装置301は一致していなくてもよい。
そして、アクセス端末装置301は、トラップドアが含まれる検索クエリをデータセンタ装置401に送信する。
なお、データセンタ装置401に暗号化データを登録するアクセス端末装置301と、データセンタ装置401に暗号化データの検索を要求するアクセス端末装置301は一致していなくてもよい。
データセンタ装置401は、アクセス端末装置301から検索クエリを受信した場合に、検索クエリに含まれているトラップドアを暗号化タグと照合する。
そして、データセンタ装置401は、照合の結果、トラップドアの生成に用いられたキーワードと同じキーワードで生成されている暗号化タグを特定し、特定したタグデータと対応付けられている暗号化データを抽出する。次に、データセンタ装置401は、抽出した暗号化データを検索クエリの送信元のアクセス端末装置301に送信する。
そして、データセンタ装置401は、照合の結果、トラップドアの生成に用いられたキーワードと同じキーワードで生成されている暗号化タグを特定し、特定したタグデータと対応付けられている暗号化データを抽出する。次に、データセンタ装置401は、抽出した暗号化データを検索クエリの送信元のアクセス端末装置301に送信する。
データセンタ装置401で保管されている暗号化データが増えてくると、検索効率が低下し、暗号化データの検索速度が遅くなる。
このような場合には、図4に示すように、暗号化データの保管を要求したアクセス端末装置301は、暗号化索引ビット列の一部のビット値をデータセンタ装置401に開示する。アクセス端末装置301は、1ビットずつ段階的にビット値を開示してもよいし、複数ビットずつ段階的にビット値を開示してもよい。また、アクセス端末装置301は、1度にすべてのビット値を開示してもよい。
ビット値の開示は、具体的には、アクセス端末装置301は、暗号化索引ビット列の生成に用いられた索引鍵をデータセンタ装置401に送信することで行われる。なお、この索引鍵の送信は暗号化通信により行われる。
このような場合には、図4に示すように、暗号化データの保管を要求したアクセス端末装置301は、暗号化索引ビット列の一部のビット値をデータセンタ装置401に開示する。アクセス端末装置301は、1ビットずつ段階的にビット値を開示してもよいし、複数ビットずつ段階的にビット値を開示してもよい。また、アクセス端末装置301は、1度にすべてのビット値を開示してもよい。
ビット値の開示は、具体的には、アクセス端末装置301は、暗号化索引ビット列の生成に用いられた索引鍵をデータセンタ装置401に送信することで行われる。なお、この索引鍵の送信は暗号化通信により行われる。
データセンタ装置401は、アクセス端末装置301から送信された索引鍵を受信する。そして、データセンタ装置401は、受信した索引鍵を用いて暗号化索引ビット列の暗号化されているビット値の復号を行う。
例えば、図2に示すように、暗号化データと対応付けられている暗号化索引ビット列の暗号化前の値(つまり、索引ビット列の値)が「011」であるとする。
アクセス端末装置301が、最上位ビットのビット値を解除するための索引鍵をデータセンタ装置401に送信したと仮定する。
データセンタ装置401は、受信した索引鍵を用いて、上記「011」の索引ビット列のうち、最上位ビットのビット値である「0」を得る。
アクセス端末装置301は、図5に示すように、トラップドアと暗号化索引ビット列の最上位ビットのビット値である「0」を含む検索クエリをデータセンタ装置401に送信する。
データセンタ装置401は、最上位ビットのビット値が「0」である暗号化索引ビット列に対応付けられている暗号化タグを選択し、選択した暗号化タグのみをトラップドアと照合する。
更に検索効率が低下した場合には、アクセス端末装置301は、暗号化索引ビット列の下位のビット値をデータセンタ装置401に開示する。このようにすることで、検索効率が低下した場合にも、暗号化ビット列のビット値の開示により検索効率を改善することができる。
例えば、図2に示すように、暗号化データと対応付けられている暗号化索引ビット列の暗号化前の値(つまり、索引ビット列の値)が「011」であるとする。
アクセス端末装置301が、最上位ビットのビット値を解除するための索引鍵をデータセンタ装置401に送信したと仮定する。
データセンタ装置401は、受信した索引鍵を用いて、上記「011」の索引ビット列のうち、最上位ビットのビット値である「0」を得る。
アクセス端末装置301は、図5に示すように、トラップドアと暗号化索引ビット列の最上位ビットのビット値である「0」を含む検索クエリをデータセンタ装置401に送信する。
データセンタ装置401は、最上位ビットのビット値が「0」である暗号化索引ビット列に対応付けられている暗号化タグを選択し、選択した暗号化タグのみをトラップドアと照合する。
更に検索効率が低下した場合には、アクセス端末装置301は、暗号化索引ビット列の下位のビット値をデータセンタ装置401に開示する。このようにすることで、検索効率が低下した場合にも、暗号化ビット列のビット値の開示により検索効率を改善することができる。
本実施の形態では、索引ビット列は共通鍵方式で暗号化される。このため、データセンタ装置401は、高速に索引ビット列のビット値の復号を行うことができる。
また、本実施の形態では、アクセス端末装置301は、索引ビット列の生成過程で確定的暗号方式による暗号化を行う。このため、暗号化索引ビット列の全てのビット値がデータセンタ装置401に開示された場合でも、データセンタ装置401にキーワードが漏洩するおそれがない。例えば、暗号鍵を用いずにキーワードにハッシュ演算を行って索引ビット列を生成する場合は、ハッシュ演算は誰でも実行できるため、索引ビット列を誰でも生成することができる。このため、手当り次第にキーワードのハッシュ値を計算することで、データセンタ装置401に保管されたハッシュ値と同じものが現れる可能性があり、その時索引ビット列の生成のもとになったキーワードを得ることができる。しかし、本実施の形態に係る索引ビット列は、確定的暗号方式の暗号が行われて生成された索引ビット列であるため、キーワードが漏洩する心配はない。
また、本実施の形態では、アクセス端末装置301は、索引ビット列の生成過程で確定的暗号方式による暗号化を行う。このため、暗号化索引ビット列の全てのビット値がデータセンタ装置401に開示された場合でも、データセンタ装置401にキーワードが漏洩するおそれがない。例えば、暗号鍵を用いずにキーワードにハッシュ演算を行って索引ビット列を生成する場合は、ハッシュ演算は誰でも実行できるため、索引ビット列を誰でも生成することができる。このため、手当り次第にキーワードのハッシュ値を計算することで、データセンタ装置401に保管されたハッシュ値と同じものが現れる可能性があり、その時索引ビット列の生成のもとになったキーワードを得ることができる。しかし、本実施の形態に係る索引ビット列は、確定的暗号方式の暗号が行われて生成された索引ビット列であるため、キーワードが漏洩する心配はない。
以上が、本実施の形態に係る秘匿検索システム100における動作の概要であり、以下では、アクセス端末装置301及びデータセンタ装置401の内部構成を説明する。
図6は、アクセス端末装置301の機能構成例を示す。
また、図14は、アクセス端末装置301のハードウェア構成例を示す。
また、図14は、アクセス端末装置301のハードウェア構成例を示す。
図6に示すように、アクセス端末装置301は、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310を備える。
本実施の形態に係るアクセス端末装置301は、コンピュータである。
図14に示すように、アクセス端末装置301は、ハードウェアとして、プロセッサ931、補助記憶装置932、メモリ933、通信インタフェース934及び入出力インタフェース935を備える。
補助記憶装置932には、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムが記憶されている。
これらプログラムは補助記憶装置932からメモリ933にロードされる。
そして、プロセッサ931がこれらプログラムを実行して、後述するデータ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の動作を行う。
図14では、プロセッサ931がデータ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムを実行している状態を模式的に表している。
アクセス端末装置301が行う動作は、データ処理方法に相当する。また、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムは、データ処理プログラムに相当する。
通信インタフェース934は、外部装置と通信を行う。
入出力インタフェース935は、アクセス端末装置301のユーザからの指示を受け付け、また、アクセス端末装置301のユーザに情報を提示する。
図14に示すように、アクセス端末装置301は、ハードウェアとして、プロセッサ931、補助記憶装置932、メモリ933、通信インタフェース934及び入出力インタフェース935を備える。
補助記憶装置932には、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムが記憶されている。
これらプログラムは補助記憶装置932からメモリ933にロードされる。
そして、プロセッサ931がこれらプログラムを実行して、後述するデータ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の動作を行う。
図14では、プロセッサ931がデータ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムを実行している状態を模式的に表している。
アクセス端末装置301が行う動作は、データ処理方法に相当する。また、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムは、データ処理プログラムに相当する。
通信インタフェース934は、外部装置と通信を行う。
入出力インタフェース935は、アクセス端末装置301のユーザからの指示を受け付け、また、アクセス端末装置301のユーザに情報を提示する。
次に、図6に示すアクセス端末装置301の機能構成の詳細を説明する。
データ暗号化部302は、ユーザ又はアプリケーションからデータセンタ装置401で保管する保管対象データを受領する。また、データ暗号化部302は、共通鍵暗号を用いて保管対象データを暗号化し、保管対象データの暗号化データを得る。
データ暗号化部302が保管対象データの暗号化に用いる暗号鍵を以下では暗号鍵ekaという。
また、データ暗号化部302は、保管対象データから後で検索に利用されるキーワードを抽出する。また、データ暗号化部302は、ユーザからデータに関連付けるキーワードを受領してもよい。
データ暗号化部302が保管対象データの暗号化に用いる暗号鍵を以下では暗号鍵ekaという。
また、データ暗号化部302は、保管対象データから後で検索に利用されるキーワードを抽出する。また、データ暗号化部302は、ユーザからデータに関連付けるキーワードを受領してもよい。
暗号化タグ生成部303は、データ暗号化部302で保管対象データに関連付けられたキーワードを乱数と暗号鍵を用いて暗号化して暗号化タグを生成する。
暗号化タグ生成部303がキーワードの暗号化に用いる暗号鍵を以下では暗号鍵ekbという。
暗号化タグ生成部303がキーワードの暗号化に用いる暗号鍵を以下では暗号鍵ekbという。
暗号化索引ビット列生成部310は、保管対象データのキーワードに対して規定の演算を行って索引ビット列を生成する。
また、暗号化索引ビット列生成部310は、索引鍵を用いて索引ビット列を暗号化する。
また、暗号化索引ビット列生成部310は、索引鍵を用いて索引ビット列を暗号化する。
本実施の形態では、暗号化索引ビット列生成部310は、索引ビット列の複数のビット値の各々を、異なる索引鍵を用いて暗号化する。例えば、索引ビット列が3ビットであれば、暗号化索引ビット列生成部310は、3つの索引鍵を用いる。
暗号化索引ビット列生成部310が索引ビット列の暗号化に用いる索引鍵を以下では索引鍵ikという。以下では、「ik」の後ろに索引鍵ikが対応しているビット位置を表す数字を付加する。例えば、索引ビット列が3ビットであれば、最上位ビットのビット値の暗号化に用いられる索引鍵は索引鍵ik1と表記する。また、最下位ビットのビット値の暗号化に用いられる索引鍵は索引鍵ik3と表記する。なお、「ik」の後ろに数字が付加されない「索引鍵ik」との表記は、複数の索引鍵の全て又は複数の索引鍵のうちの一部の索引鍵を意味する。
暗号化索引ビット列生成部310が索引ビット列の暗号化に用いる索引鍵を以下では索引鍵ikという。以下では、「ik」の後ろに索引鍵ikが対応しているビット位置を表す数字を付加する。例えば、索引ビット列が3ビットであれば、最上位ビットのビット値の暗号化に用いられる索引鍵は索引鍵ik1と表記する。また、最下位ビットのビット値の暗号化に用いられる索引鍵は索引鍵ik3と表記する。なお、「ik」の後ろに数字が付加されない「索引鍵ik」との表記は、複数の索引鍵の全て又は複数の索引鍵のうちの一部の索引鍵を意味する。
また、暗号化索引ビット列生成部310は、複数の暗号化データがデータセンタ装置401に保管される場合は、複数の暗号化データに対応させて複数の索引ビット列を生成する。そして、暗号化索引ビット列生成部310は、複数の暗号化データの複数の索引ビット列の暗号化に共通する索引鍵のセットを用いることができる。
つまり、暗号化索引ビット列生成部310は、複数の索引ビット列の同じビット位置にあるビット値を同じ索引鍵を用いて暗号化する。例えば、全ての索引ビット列が3ビットであれば、暗号化索引ビット列生成部310は、全ての索引ビット列の最上位ビットのビット値を索引鍵ik1を用いて暗号化する。また、暗号化索引ビット列生成部310は、全ての索引ビット列の最下位ビットのビット値を索引鍵ik3を用いて暗号化する。
このようにすることで、後述する許可ビット位置指定部308が索引鍵ik1をデータセンタ装置401に送信するのみで、複数の暗号化データの複数の暗号化索引ビット列の最上位ビットのビット値を開示することができる。
なお、暗号化索引ビット列生成部310は、複数の索引ビット列の暗号化にそれぞれ異なる索引鍵のセットを用いてもよい。
つまり、暗号化索引ビット列生成部310は、複数の索引ビット列の同じビット位置にあるビット値を同じ索引鍵を用いて暗号化する。例えば、全ての索引ビット列が3ビットであれば、暗号化索引ビット列生成部310は、全ての索引ビット列の最上位ビットのビット値を索引鍵ik1を用いて暗号化する。また、暗号化索引ビット列生成部310は、全ての索引ビット列の最下位ビットのビット値を索引鍵ik3を用いて暗号化する。
このようにすることで、後述する許可ビット位置指定部308が索引鍵ik1をデータセンタ装置401に送信するのみで、複数の暗号化データの複数の暗号化索引ビット列の最上位ビットのビット値を開示することができる。
なお、暗号化索引ビット列生成部310は、複数の索引ビット列の暗号化にそれぞれ異なる索引鍵のセットを用いてもよい。
また、本実施の形態では、暗号化索引ビット列生成部310は、索引ビット列の複数のビット値の各々を、異なる索引鍵を用いて暗号化するが、暗号化索引ビット列生成部310は、索引ビット列の複数のビット値を、索引ビット列のビット数よりも少ない個数の索引鍵を用いて暗号化してもよい。具体的には、索引ビット列が3ビットであれば、暗号化索引ビット列生成部310は、1つ又は2つの索引鍵を用いるようにしてもよい。
また、暗号化索引ビット列生成部310は、後述する許可ビット位置以外のビット位置にある暗号化されたビット値は、許可ビット位置のビット値の暗号化に用いられた索引鍵では復号されない暗号化方式にて、索引ビット列の複数のビット値を暗号化する。
暗号化索引ビット列生成部310は、索引ビット列生成部及び索引ビット列暗号化部に相当する。また、暗号化索引ビット列生成部310により行われる処理は、索引ビット列生成処理及び索引ビット列暗号化処理に相当する。
タグ付き暗号化データ生成部304は、データ暗号化部302で生成された暗号化データと、暗号化タグ生成部303で生成された暗号化タグと、暗号化索引ビット列生成部310で生成された暗号化索引ビット列を結合してタグ付き暗号化データを生成する。
そして、タグ付き暗号化データ生成部304は、タグ付き暗号化データを端末側データ送受信部309に出力する。
そして、タグ付き暗号化データ生成部304は、タグ付き暗号化データを端末側データ送受信部309に出力する。
鍵管理部305は、暗号鍵eka及び暗号鍵ekbを管理する。
より具体的には、鍵管理部305は、鍵管理サーバ装置201で生成された暗号鍵eka及び暗号鍵ekbを補助記憶装置932に格納する。
また、鍵管理部305は、暗号鍵eka又は暗号鍵ekbから複数の索引鍵ik(ik1,ik2,ik3…)を生成し、生成した複数の索引鍵ikを補助記憶装置932に格納する。鍵管理部305は複数の索引鍵ikを補助記憶装置932に格納する代わりに、索引鍵ikが必要になる度に、暗号鍵eka又は暗号鍵ekbから生成してもよい。
また、鍵管理部305は、鍵管理サーバ装置201で暗号鍵ekaと暗号鍵ekbとは独立に生成された索引鍵ikを補助記憶装置932に格納するようにしてもよい。
また、鍵管理部305は、検索クエリ生成部306の検索クエリの生成のために暗号鍵ekbを出力する。
また、鍵管理部305は、データ復号部307の暗号化データの復号のためにデータ復号部307に暗号鍵ekaを出力する。
また、鍵管理部305は、暗号化索引ビット列内の特定のビット値の開示のために、開示対象のビット値に対応する索引鍵ikを許可ビット位置指定部308に出力する。
より具体的には、鍵管理部305は、鍵管理サーバ装置201で生成された暗号鍵eka及び暗号鍵ekbを補助記憶装置932に格納する。
また、鍵管理部305は、暗号鍵eka又は暗号鍵ekbから複数の索引鍵ik(ik1,ik2,ik3…)を生成し、生成した複数の索引鍵ikを補助記憶装置932に格納する。鍵管理部305は複数の索引鍵ikを補助記憶装置932に格納する代わりに、索引鍵ikが必要になる度に、暗号鍵eka又は暗号鍵ekbから生成してもよい。
また、鍵管理部305は、鍵管理サーバ装置201で暗号鍵ekaと暗号鍵ekbとは独立に生成された索引鍵ikを補助記憶装置932に格納するようにしてもよい。
また、鍵管理部305は、検索クエリ生成部306の検索クエリの生成のために暗号鍵ekbを出力する。
また、鍵管理部305は、データ復号部307の暗号化データの復号のためにデータ復号部307に暗号鍵ekaを出力する。
また、鍵管理部305は、暗号化索引ビット列内の特定のビット値の開示のために、開示対象のビット値に対応する索引鍵ikを許可ビット位置指定部308に出力する。
検索クエリ生成部306は、ユーザから指定された検索キーワードを暗号鍵ekbで暗号化してトラップドアを生成する。そして、検索クエリ生成部306は、トラップドアが含まれる検索クエリを生成し、検索クエリを端末側データ送受信部309に出力する。
また、開示済みビット値が存在する場合は、検索クエリ生成部306は、トラップドアと開示済みビット値とが含まれる検索クエリを生成し、検索クエリを端末側データ送受信部309に出力する。
なお、開示済みビット値が存在する場合は、検索クエリ生成部306は、暗号化索引ビット列生成部310を用いて検索キーワードの暗号化索引ビット列を生成し、トラップドアと前記暗号化索引ビット列とが含まれる検索クエリを生成し、検索クエリを端末側データ送受信部309に出力するようにしてもよい。この場合、データセンタ装置401は、既に開示された索引鍵ikを使って、前記暗号化索引ビット列から開示済みビット値を取得することができる。
また、開示済みビット値が存在する場合は、検索クエリ生成部306は、トラップドアと開示済みビット値とが含まれる検索クエリを生成し、検索クエリを端末側データ送受信部309に出力する。
なお、開示済みビット値が存在する場合は、検索クエリ生成部306は、暗号化索引ビット列生成部310を用いて検索キーワードの暗号化索引ビット列を生成し、トラップドアと前記暗号化索引ビット列とが含まれる検索クエリを生成し、検索クエリを端末側データ送受信部309に出力するようにしてもよい。この場合、データセンタ装置401は、既に開示された索引鍵ikを使って、前記暗号化索引ビット列から開示済みビット値を取得することができる。
データ復号部307は、データセンタ装置401から受信された暗号化データを、暗号鍵ekaを用いて復号する。
許可ビット位置指定部308は、許可ビット位置を指定する。
許可ビット位置は、暗号化索引ビット列の複数のビット位置のうち暗号化を解除してビット値を開示するビット位置である。
許可ビット位置指定部308は、ユーザからの指示に従って許可ビット位置を指定してもよいし、既定のアルゴリズムに従って許可ビット位置を指定してもよい。許可ビット位置指定部308は、1ビットずつ段階的に許可ビット位置を指定してもよいし、1度に2ビット以上を許可ビット位置に指定してもよい。また、許可ビット位置指定部308は、1度に暗号化索引ビット列の全ビットを許可ビット位置に指定してもよい。許可ビット位置指定部308は段階的に許可ビット位置を指定する場合は最上位ビットから順に許可ビット位置を指定する。
許可ビット位置指定部308は、許可ビット位置に対応する索引鍵ikを鍵管理部305から取得する。つまり、許可ビット位置指定部308は、許可ビット位置のビット値の暗号化に用いられた索引鍵ikを鍵管理部305から取得する。そして、取得した索引鍵ikを端末側データ送受信部309に出力する。
許可ビット位置は、暗号化索引ビット列の複数のビット位置のうち暗号化を解除してビット値を開示するビット位置である。
許可ビット位置指定部308は、ユーザからの指示に従って許可ビット位置を指定してもよいし、既定のアルゴリズムに従って許可ビット位置を指定してもよい。許可ビット位置指定部308は、1ビットずつ段階的に許可ビット位置を指定してもよいし、1度に2ビット以上を許可ビット位置に指定してもよい。また、許可ビット位置指定部308は、1度に暗号化索引ビット列の全ビットを許可ビット位置に指定してもよい。許可ビット位置指定部308は段階的に許可ビット位置を指定する場合は最上位ビットから順に許可ビット位置を指定する。
許可ビット位置指定部308は、許可ビット位置に対応する索引鍵ikを鍵管理部305から取得する。つまり、許可ビット位置指定部308は、許可ビット位置のビット値の暗号化に用いられた索引鍵ikを鍵管理部305から取得する。そして、取得した索引鍵ikを端末側データ送受信部309に出力する。
端末側データ送受信部309は、鍵管理サーバ装置201から暗号鍵eka及び暗号鍵ekbを受信する。端末側データ送受信部309は、鍵管理サーバ装置201から複数の索引鍵ikを受信する場合もある。
また、端末側データ送受信部309は、タグ付き暗号化データをデータセンタ装置401に送信する。
また、端末側データ送受信部309は、検索結果である暗号化データをデータセンタ装置401から受信する。
また、端末側データ送受信部309は、許可ビット位置のビット値の開示のために、データセンタ装置401に索引鍵ikを送信する。
端末側データ送受信部309は送信部に相当する。また、端末側データ送受信部309で行われる処理は送信処理に相当する。
また、端末側データ送受信部309は、タグ付き暗号化データをデータセンタ装置401に送信する。
また、端末側データ送受信部309は、検索結果である暗号化データをデータセンタ装置401から受信する。
また、端末側データ送受信部309は、許可ビット位置のビット値の開示のために、データセンタ装置401に索引鍵ikを送信する。
端末側データ送受信部309は送信部に相当する。また、端末側データ送受信部309で行われる処理は送信処理に相当する。
図7は、データセンタ装置401の機能構成例を示す。
図15は、データセンタ装置401のハードウェア構成例を示す。
図15は、データセンタ装置401のハードウェア構成例を示す。
図7に示すように、データセンタ装置401は、センタ側データ送受信部402、保管要求処理部403、データ記憶部404、開示ビット値復号部405、検索処理部406を備える。
本実施の形態に係るデータセンタ装置401は、コンピュータである。
図15に示すように、データセンタ装置401は、ハードウェアとして、プロセッサ941、補助記憶装置942、メモリ943、通信インタフェース944及び入出力インタフェース945を備える。
補助記憶装置942には、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の機能を実現するプログラムが記憶されている。
これらプログラムは記憶装置942からメモリ943にロードされる。
そして、プロセッサ941がこれらプログラムを実行して、後述するセンタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の動作を行う。
図14では、プロセッサ941がセンタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の機能を実現するプログラムを実行している状態を模式的に表している。
データ記憶部404は補助記憶装置942により実現される。
通信インタフェース944は、外部装置と通信を行う。
入出力インタフェース945は、データセンタ装置401のユーザからの指示を受け付け、また、データセンタ装置401のユーザに情報を提示する。
図15に示すように、データセンタ装置401は、ハードウェアとして、プロセッサ941、補助記憶装置942、メモリ943、通信インタフェース944及び入出力インタフェース945を備える。
補助記憶装置942には、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の機能を実現するプログラムが記憶されている。
これらプログラムは記憶装置942からメモリ943にロードされる。
そして、プロセッサ941がこれらプログラムを実行して、後述するセンタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の動作を行う。
図14では、プロセッサ941がセンタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の機能を実現するプログラムを実行している状態を模式的に表している。
データ記憶部404は補助記憶装置942により実現される。
通信インタフェース944は、外部装置と通信を行う。
入出力インタフェース945は、データセンタ装置401のユーザからの指示を受け付け、また、データセンタ装置401のユーザに情報を提示する。
次に、図7に示すデータセンタ装置401の機能構成の詳細を説明する。
センタ側データ送受信部402は、アクセス端末装置301からタグ付き暗号化データを受信する。
また、センタ側データ送受信部402は、アクセス端末装置301から検索クエリを受信し、その応答として暗号化データを送信する。
また、センタ側データ送受信部402は、アクセス端末装置301から索引鍵ikを受信する。
また、センタ側データ送受信部402は、アクセス端末装置301から検索クエリを受信し、その応答として暗号化データを送信する。
また、センタ側データ送受信部402は、アクセス端末装置301から索引鍵ikを受信する。
保管要求処理部403は、受信したタグ付き暗号化データを解析し、タグ付き暗号化データを暗号化データと暗号化タグと暗号化索引ビット列に分解する。そして、保管要求処理部403は、暗号化データと暗号化タグと暗号化索引ビット列を相互に対応付けてデータ記憶部404に格納する。
データ記憶部404は、暗号化データと暗号化タグと暗号化索引ビット列を相互に対応付けて記憶する。
開示ビット値復号部405は、受信した索引鍵ikを用いて、暗号化索引ビット列の許可ビット位置のビット値の復号を行う。
検索処理部406は、アクセス端末装置301から受信した検索クエリと、データ記憶部404内の暗号化タグとの照合処理を行う。
検索処理部406は、この照合処理によって、タグに含まれるキーワードと、検索クエリに含まれるキーワードが一致するかどうかを判定する。
その後、検索処理部406は、検索にヒットしたタグと関連付けられた暗号化データをデータ記憶部404から取得する。そして、検索処理部406は、取得した暗号化データをセンタ側データ送受信部402を介してアクセス端末装置301に返送する。
検索処理部406は、この照合処理によって、タグに含まれるキーワードと、検索クエリに含まれるキーワードが一致するかどうかを判定する。
その後、検索処理部406は、検索にヒットしたタグと関連付けられた暗号化データをデータ記憶部404から取得する。そして、検索処理部406は、取得した暗号化データをセンタ側データ送受信部402を介してアクセス端末装置301に返送する。
***動作の説明***
次に、図8に基づき、アクセス端末装置301でのデータの暗号化処理を説明する。
次に、図8に基づき、アクセス端末装置301でのデータの暗号化処理を説明する。
最初に、ステップS801において、データ暗号化部302は、ユーザから保管対象データを受け取り、保管対象データと関連付けるキーワードを決定する。
データ暗号化部302が保管対象データからキーワードを抽出してもよいし、ユーザがキーワードを指定してもよい。
また、1つのキーワードが保管対象データに関連付けられてもよいし、複数のキーワードが保管対象データに関連付けられてもよい。以下では、説明の簡明のために、1つのキーワードが保管対象データに関連付けられるものとする。
データ暗号化部302が保管対象データからキーワードを抽出してもよいし、ユーザがキーワードを指定してもよい。
また、1つのキーワードが保管対象データに関連付けられてもよいし、複数のキーワードが保管対象データに関連付けられてもよい。以下では、説明の簡明のために、1つのキーワードが保管対象データに関連付けられるものとする。
次に、ステップS802において、データ暗号化部302は、保管対象データを暗号化して暗号化データを生成する。
より具体的には、データ暗号化部302は、鍵管理部305から暗号鍵ekaを取得し、暗号鍵ekaを用いて保管対象データを暗号化する。
データ暗号化部302は、キーワードを暗号化タグ生成部303に出力する。また、データ暗号化部302は、暗号化データをタグ付き暗号化データ生成部304に出力する。
より具体的には、データ暗号化部302は、鍵管理部305から暗号鍵ekaを取得し、暗号鍵ekaを用いて保管対象データを暗号化する。
データ暗号化部302は、キーワードを暗号化タグ生成部303に出力する。また、データ暗号化部302は、暗号化データをタグ付き暗号化データ生成部304に出力する。
次に、ステップS803において、暗号化タグ生成部303は、暗号化タグを生成する。
より具体的には、暗号化タグ生成部303は、鍵管理部305から暗号鍵ekbを取得し、キーワードを乱数と暗号鍵ekbを用いて暗号化して暗号化タグを生成する。
暗号化タグ生成部303は、キーワードを暗号化索引ビット列生成部310に出力する。また、暗号化タグ生成部303は、暗号化タグをタグ付き暗号化データ生成部304に出力する。
より具体的には、暗号化タグ生成部303は、鍵管理部305から暗号鍵ekbを取得し、キーワードを乱数と暗号鍵ekbを用いて暗号化して暗号化タグを生成する。
暗号化タグ生成部303は、キーワードを暗号化索引ビット列生成部310に出力する。また、暗号化タグ生成部303は、暗号化タグをタグ付き暗号化データ生成部304に出力する。
次に、ステップS804において、暗号化索引ビット列生成部310がキーワードに対して規定の演算を行って索引ビット列を生成する。
暗号化索引ビット列生成部310は、例えば、キーワードに対してハッシュ演算を行って索引ビット列を生成する。また、暗号化索引ビット列生成部310は、ハッシュ演算に加えて確定的暗号方式による暗号化を行って索引ビット列を生成してもよい。
暗号化索引ビット列生成部310は、例えば、キーワードに対してハッシュ演算を行って索引ビット列を生成する。また、暗号化索引ビット列生成部310は、ハッシュ演算に加えて確定的暗号方式による暗号化を行って索引ビット列を生成してもよい。
次に、ステップS805において、暗号化索引ビット列生成部310が索引ビット列を暗号化して暗号化索引ビット列を生成する。
より具体的には、暗号化索引ビット列生成部310は、鍵管理部305から共通鍵方式の索引鍵ikを取得し、索引鍵ikを用いて索引ビット列を暗号化する。
暗号化索引ビット列生成部310は、暗号化索引ビット列をタグ付き暗号化データ生成部304に出力する。
より具体的には、暗号化索引ビット列生成部310は、鍵管理部305から共通鍵方式の索引鍵ikを取得し、索引鍵ikを用いて索引ビット列を暗号化する。
暗号化索引ビット列生成部310は、暗号化索引ビット列をタグ付き暗号化データ生成部304に出力する。
次に、ステップS806において、タグ付き暗号化データ生成部304が、暗号化データと暗号化タグと暗号化索引ビット列とを結合してタグ付き暗号化データを生成する。
タグ付き暗号化データ生成部304は、生成したタグ付き暗号化データを端末側データ送受信部309に出力する。
タグ付き暗号化データ生成部304は、生成したタグ付き暗号化データを端末側データ送受信部309に出力する。
次に、ステップS807において、端末側データ送受信部309が、タグ付き暗号化データをデータセンタ装置401に送信する。
次に、図11に基づき、データセンタ装置401における暗号化データの保管処理を説明する。
まず、センタ側データ送受信部402がタグ付き暗号化データを受信すると(ステップS1101でYES)、ステップS1102において、保管要求処理部403が、タグ付き暗号化データを暗号化データと暗号化タグと暗号化索引ビット列に分解する。
そして、ステップS1103において、保管要求処理部403が、暗号化データと暗号化タグと暗号化索引ビット列とを相互に対応付けてデータ記憶部404に格納する。
次に、図9に基づき、アクセス端末装置301での検索要求処理について説明する。
はじめにステップS901において、検索クエリ生成部306が、アクセス端末装置301を操作するユーザから、検索キーワードを取得する。
次に、ステップS902において、検索クエリ生成部306は、検索キーワードを暗号化して、検索クエリ生成する。
より具体的には、検索クエリ生成部306は、鍵管理部305から暗号鍵ekbを取得し、暗号鍵ekbを用いて検索キーワードを暗号化する。そして、検索クエリ生成部306は、暗号化により得られたトラップドアが含まれる検索クエリを生成する。
より具体的には、検索クエリ生成部306は、鍵管理部305から暗号鍵ekbを取得し、暗号鍵ekbを用いて検索キーワードを暗号化する。そして、検索クエリ生成部306は、暗号化により得られたトラップドアが含まれる検索クエリを生成する。
次に、ステップS903において、検索クエリ生成部306は、索引ビット列のいずれかのビット値が開示済みであるか否かを判定する。
索引ビット列のいずれかのビット値が開示済みであれば(ステップS903でYES)は、ステップS904において、検索クエリ生成部306は、開示済みビット値を検索クエリに追加する。
次に、ステップS905にて、端末側データ送受信部309が検索クエリをデータセンタ装置401に送信する。
次に、ステップS906にて、端末側データ送受信部309が検索結果を受信した場合に(ステップS906でYES)、データ復号部307が、鍵管理部305から暗号鍵ekaを取得し、検索結果に含まれる暗号化データを暗号鍵ekaを用いて復号する(ステップS907)。
次に、図12に基づき、データセンタ装置401での暗号化データ検索処理を説明する。
センタ側データ送受信部402が検索クエリを受信すると(ステップS1201でYES)、ステップS1202において、検索処理部406が、検索クエリに開示済みビット値が含まれているか否かを判定する。
検索クエリに開示済みビット値が含まれていない場合(ステップS1202でNO)は、ステップS1204において、検索処理部406は、トラップドアを用いた検索を行う。つまり、検索処理部406は、トラップドアを暗号化タグと照合する。そして、検索処理部406は、トラップドアの生成に用いられたキーワードと同じキーワードで生成されている暗号化タグを特定し、特定したタグデータと対応付けられている暗号化データを抽出する。
一方、検索クエリに開示済みビット値が含まれている場合(ステップS1202でYES)は、ステップS1203において、検索処理部406は、検索クエリに含まれる開示済みビット値と同じビット値が含まれる暗号化索引ビット列に対応付けられた暗号化タグに限定してトラップドアを用いた検索を行う。
最後に、センタ側データ送受信部402が、検索処理部406により抽出された暗号化データを検索クエリの送信元のアクセス端末装置301に送信する。
次に、図10に基づき、アクセス端末装置301での索引ビット値開示処理を説明する。
まず、ステップS1001において、許可ビット位置指定部308が許可ビット位置を指定する。
例えば、データセンタ装置401における検索効率が閾値以下になった場合に、許可ビット位置指定部308は許可ビット位置を指定する。前述したように、許可ビット位置指定部308は、ユーザからの指示に従って許可ビット位置を指定してもよいし、既定のアルゴリズムに従って許可ビット位置を指定してもよい。許可ビット位置指定部308は、1ビットずつ段階的に許可ビット位置を指定してもよいし、1度に2ビット以上を許可ビット位置に指定してもよい。
例えば、データセンタ装置401における検索効率が閾値以下になった場合に、許可ビット位置指定部308は許可ビット位置を指定する。前述したように、許可ビット位置指定部308は、ユーザからの指示に従って許可ビット位置を指定してもよいし、既定のアルゴリズムに従って許可ビット位置を指定してもよい。許可ビット位置指定部308は、1ビットずつ段階的に許可ビット位置を指定してもよいし、1度に2ビット以上を許可ビット位置に指定してもよい。
次に、ステップS1002において、許可ビット位置指定部308は、許可ビット位置のビット値の暗号化に用いられた索引鍵ikを鍵管理部305から取得する。
許可ビット位置指定部308は鍵管理部305から取得した索引鍵ikを許可ビット位置の情報とともに端末側データ送受信部309に出力する。
許可ビット位置指定部308は鍵管理部305から取得した索引鍵ikを許可ビット位置の情報とともに端末側データ送受信部309に出力する。
次に、ステップS1003において、端末側データ送受信部309が索引鍵ikを許可ビット位置の情報とともにデータセンタ装置401に送信する。
次に、図13に基づき、データセンタ装置401における暗号化索引ビット列のビット値の復号処理を説明する。
センタ側データ送受信部402が索引鍵ikを受信した場合(ステップS1301でYES)に、ステップS1302にて、開示ビット値復号部405が索引鍵ikを用いて暗号化索引ビット列内の対応するビット値の復号を行う。
なお、暗号化開示ビット列内のいずれかのビット値の開示後に新たな暗号化データがデータセンタ装置401に登録された場合は、新たな暗号化データの登録時には、新たな暗号化データに対応する暗号化索引ビット列の全てのビット値は暗号化されている。アクセス端末装置301は、新たな暗号化データ対応する暗号化索引ビット列についても、対応するビット位置の索引鍵をデータセンタ装置401に送信し、データセンタ装置401は、暗号化索引ビット列内の対応するビット位置の復号を行う。
***実施の形態の効果の説明***
本実施の形態では、アクセス端末装置301は、共通鍵方式の索引鍵を用いて索引ビット列を暗号化する。このため、本実施の形態によれば、アクセス端末装置301は、索引ビット列の復号処理を高速化することができ、この結果、検索処理を高速化することができる。
本実施の形態では、アクセス端末装置301は、共通鍵方式の索引鍵を用いて索引ビット列を暗号化する。このため、本実施の形態によれば、開示前の暗号化索引ビット列からは何も情報が漏れない。
本実施の形態では、アクセス端末装置301は、ハッシュ演算に加えて確定的暗号方式による暗号化を行って索引ビット列を生成する。このため、本実施の形態によれば、索引ビット列の全てのビット値が開示されてもキーワードが類推されるおそれが少ない。
本実施の形態では、アクセス端末装置301は、共通鍵方式の索引鍵を用いて索引ビット列を暗号化する。このため、本実施の形態によれば、アクセス端末装置301は、索引ビット列の復号処理を高速化することができ、この結果、検索処理を高速化することができる。
本実施の形態では、アクセス端末装置301は、共通鍵方式の索引鍵を用いて索引ビット列を暗号化する。このため、本実施の形態によれば、開示前の暗号化索引ビット列からは何も情報が漏れない。
本実施の形態では、アクセス端末装置301は、ハッシュ演算に加えて確定的暗号方式による暗号化を行って索引ビット列を生成する。このため、本実施の形態によれば、索引ビット列の全てのビット値が開示されてもキーワードが類推されるおそれが少ない。
***ハードウェア構成の説明***
最後に、本実施の形態に係るアクセス端末装置301及びデータセンタ装置401のハードウェア構成例の補足説明を行う。
最後に、本実施の形態に係るアクセス端末装置301及びデータセンタ装置401のハードウェア構成例の補足説明を行う。
図14及び図15に示すプロセッサ931及びプロセッサ941は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ931及びプロセッサ941は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図14及び図15に示す補助記憶装置932及び補助記憶装置942は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図14及び図15に示すメモリ933及びメモリ943は、RAM(Random Access Memory)である。
図14及び図15に示す通信インタフェース934及び通信インタフェース944は、データの通信処理を実行する電子回路である。
通信インタフェース934及び通信インタフェース944は、例えば、通信チップ又はNIC(Network Interface Card)である。
図14及び図15に示す入出力インタフェース935及び入出力インタフェース945は、例えば、マウス、キーボード、ディスプレイ等である。
プロセッサ931及びプロセッサ941は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図14及び図15に示す補助記憶装置932及び補助記憶装置942は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図14及び図15に示すメモリ933及びメモリ943は、RAM(Random Access Memory)である。
図14及び図15に示す通信インタフェース934及び通信インタフェース944は、データの通信処理を実行する電子回路である。
通信インタフェース934及び通信インタフェース944は、例えば、通信チップ又はNIC(Network Interface Card)である。
図14及び図15に示す入出力インタフェース935及び入出力インタフェース945は、例えば、マウス、キーボード、ディスプレイ等である。
また、補助記憶装置932には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がプロセッサ931により実行される。
プロセッサ931はOSの少なくとも一部を実行しながら、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムを実行する。
プロセッサ931がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、補助記憶装置932、メモリ933、プロセッサ931内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
そして、OSの少なくとも一部がプロセッサ931により実行される。
プロセッサ931はOSの少なくとも一部を実行しながら、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムを実行する。
プロセッサ931がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、補助記憶装置932、メモリ933、プロセッサ931内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
また、補助記憶装置942には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がプロセッサ941により実行される。
プロセッサ941はOSの少なくとも一部を実行しながら、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の機能を実現するプログラムを実行する。
プロセッサ941がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、補助記憶装置942、メモリ943、プロセッサ941内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
そして、OSの少なくとも一部がプロセッサ941により実行される。
プロセッサ941はOSの少なくとも一部を実行しながら、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の機能を実現するプログラムを実行する。
プロセッサ941がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、補助記憶装置942、メモリ943、プロセッサ941内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
また、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。同様に、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、アクセス端末装置301及びデータセンタ装置401は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
この場合は、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310は、それぞれ処理回路の一部として実現される。また、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406も、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
また、アクセス端末装置301及びデータセンタ装置401は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
この場合は、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、鍵管理部305、検索クエリ生成部306、データ復号部307、許可ビット位置指定部308、端末側データ送受信部309及び暗号化索引ビット列生成部310は、それぞれ処理回路の一部として実現される。また、センタ側データ送受信部402、保管要求処理部403、開示ビット値復号部405及び検索処理部406も、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
100 秘匿検索システム、101 ネットワーク、102 LAN、201 鍵管理サーバ装置、301 アクセス端末装置、302 データ暗号化部、303 暗号化タグ生成部、304 タグ付き暗号化データ生成部、305 鍵管理部、306 検索クエリ生成部、307 データ復号部、308 許可ビット位置指定部、309 端末側データ送受信部、310 暗号化索引ビット列生成部、401 データセンタ装置、402 センタ側データ送受信部、403 保管要求処理部、404 データ記憶部、405 開示ビット値復号部、406 検索処理部。
Claims (10)
- データ保管装置で保管される暗号化データの検索の際に索引として用いられるビット列を、前記暗号化データに関連付けて、索引ビット列として生成する索引ビット列生成部と、
前記索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化する索引ビット列暗号化部と、
前記索引ビット列暗号化部により前記複数のビット値が暗号化された後の前記索引ビット列である暗号化索引ビット列と、前記暗号化データとを前記データ保管装置に送信する送信部とを有するデータ処理装置。 - 前記索引ビット列生成部は、
前記索引ビット列の生成過程において確定的暗号方式による暗号化を行って前記索引ビット列を生成する請求項1に記載のデータ処理装置。 - 前記索引ビット列暗号化部は、
前記索引ビット列の前記複数のビット値の各々を、異なる索引鍵を用いて暗号化する請求項1に記載のデータ処理装置。 - 前記索引ビット列暗号化部は、
前記索引ビット列の前記複数のビット値を、前記索引ビット列のビット数よりも少ない個数の索引鍵を用いて暗号化する請求項1に記載のデータ処理装置。 - 前記索引ビット列生成部は、
複数の暗号化データに関連付けて、複数の索引ビット列を生成し、
前記索引ビット列暗号化部は、
前記複数の索引ビット列の同じビット位置にあるビット値を同じ索引鍵を用いて暗号化する請求項1に記載のデータ処理装置。 - 前記送信部は、
前記暗号化索引ビット列と、前記暗号化データと、前記暗号化データの検索の際に照合される暗号化されたタグである暗号化タグとを前記データ保管装置に送信する請求項1に記載のデータ処理装置。 - 前記索引ビット列暗号化部は、
前記索引ビット列の複数のビット位置のうちビット値の開示が許可されるビット位置である許可ビット位置以外のビット位置にある暗号化されたビット値は、前記許可ビット位置のビット値の暗号化に用いられた索引鍵では復号されない暗号化方式にて、前記索引ビット列の前記複数のビット値を暗号化する請求項1に記載のデータ処理装置。 - 前記データ処理装置は、更に、
前記送信部により前記データ保管装置に前記暗号化索引ビット列が送信され後に、前記許可ビット位置を指定する許可ビット位置指定部を有し、
前記送信部は、
前記許可ビット位置指定部により前記許可ビット位置が指定された後に、前記許可ビット位置のビット値の暗号化に用いられた索引鍵を前記データ保管装置に送信する請求項7に記載のデータ処理装置。 - コンピュータが、データ保管装置で保管される暗号化データの検索の際に索引として用いられるビット列を、前記暗号化データに関連付けて、索引ビット列として生成し、
前記コンピュータが、前記索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化し、
前記コンピュータが、前記複数のビット値が暗号化された後の前記索引ビット列である暗号化索引ビット列と、前記暗号化データとを前記データ保管装置に送信するデータ処理方法。 - データ保管装置で保管される暗号化データの検索の際に索引として用いられるビット列を、前記暗号化データに関連付けて、索引ビット列として生成する索引ビット列生成処理と、
前記索引ビット列の複数のビット値を、共通鍵方式の索引鍵を用いて暗号化する索引ビット列暗号化処理と、
前記索引ビット列暗号化処理により前記複数のビット値が暗号化された後の前記索引ビット列である暗号化索引ビット列と、前記暗号化データとを前記データ保管装置に送信する送信処理とをコンピュータに実行させるデータ処理プログラム。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2019541523A JP6632780B2 (ja) | 2017-09-12 | 2017-09-12 | データ処理装置、データ処理方法及びデータ処理プログラム |
| CN201780094595.3A CN111052108A (zh) | 2017-09-12 | 2017-09-12 | 数据处理装置、数据处理方法和数据处理程序 |
| EP17925167.3A EP3657475B1 (en) | 2017-09-12 | 2017-09-12 | Data processing apparatus, data processing method, and data processing program |
| PCT/JP2017/032919 WO2019053788A1 (ja) | 2017-09-12 | 2017-09-12 | データ処理装置、データ処理方法及びデータ処理プログラム |
| US16/630,782 US20210081562A1 (en) | 2017-09-12 | 2017-09-12 | Data processing apparatus, data processing method, and computer readable medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2017/032919 WO2019053788A1 (ja) | 2017-09-12 | 2017-09-12 | データ処理装置、データ処理方法及びデータ処理プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019053788A1 true WO2019053788A1 (ja) | 2019-03-21 |
Family
ID=65722539
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2017/032919 Ceased WO2019053788A1 (ja) | 2017-09-12 | 2017-09-12 | データ処理装置、データ処理方法及びデータ処理プログラム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20210081562A1 (ja) |
| EP (1) | EP3657475B1 (ja) |
| JP (1) | JP6632780B2 (ja) |
| CN (1) | CN111052108A (ja) |
| WO (1) | WO2019053788A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12216787B2 (en) | 2020-01-14 | 2025-02-04 | Mitsubishi Electric Corporation | Searchable encryption system, searchable encryption method, and non-transitory computer-readable recording medium |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019086429A1 (en) * | 2017-10-30 | 2019-05-09 | Abb Schweiz Ag | Privacy-preserving log analysis |
| WO2019142268A1 (ja) * | 2018-01-17 | 2019-07-25 | 三菱電機株式会社 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
| US12493532B2 (en) * | 2019-11-22 | 2025-12-09 | Microsoft Technology Licensing, Llc | System and method for database recovery for encrypted indexes |
| CN113014563B (zh) * | 2021-02-10 | 2022-03-25 | 华中科技大学 | 一种保障可搜索公钥加密检索完备性的方法及系统 |
| US12197615B2 (en) | 2022-07-19 | 2025-01-14 | IronCore Labs, Inc. | Secured search for ready-made search software |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005134990A (ja) | 2003-10-28 | 2005-05-26 | National Institute Of Information & Communication Technology | 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム |
| JP2007052698A (ja) * | 2005-08-19 | 2007-03-01 | Kddi Corp | 暗号化された文書のためのインデックス生成および検索方法ならびに暗号化文書検索システム |
| JP2010503118A (ja) * | 2006-09-06 | 2010-01-28 | マイクロソフト コーポレーション | 暗号化されたデータの検索 |
| WO2012095973A1 (ja) | 2011-01-13 | 2012-07-19 | 三菱電機株式会社 | データ処理装置及びデータ保管装置 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20150108516A (ko) * | 2014-03-18 | 2015-09-30 | 한국전자통신연구원 | 범위 검색을 위한 복호화가능 인덱스 생성 방법, 검색 방법, 및 복호화 방법 |
| JP6419633B2 (ja) * | 2015-04-09 | 2018-11-07 | 株式会社日立ソリューションズ | 検索システム |
| CN106326360B (zh) * | 2016-08-10 | 2019-04-09 | 武汉科技大学 | 一种云环境中密文数据的模糊多关键词检索方法 |
| CN106330865B (zh) * | 2016-08-12 | 2019-03-29 | 安徽大学 | 云环境下支持高效撤销的属性基关键字搜索方法及云计算应用系统 |
| CN106789007B (zh) * | 2016-12-16 | 2020-02-11 | 中国科学院软件研究所 | 一种基于密文检索的网络信息审查方法与系统 |
-
2017
- 2017-09-12 JP JP2019541523A patent/JP6632780B2/ja active Active
- 2017-09-12 US US16/630,782 patent/US20210081562A1/en not_active Abandoned
- 2017-09-12 EP EP17925167.3A patent/EP3657475B1/en active Active
- 2017-09-12 CN CN201780094595.3A patent/CN111052108A/zh active Pending
- 2017-09-12 WO PCT/JP2017/032919 patent/WO2019053788A1/ja not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005134990A (ja) | 2003-10-28 | 2005-05-26 | National Institute Of Information & Communication Technology | 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム |
| JP2007052698A (ja) * | 2005-08-19 | 2007-03-01 | Kddi Corp | 暗号化された文書のためのインデックス生成および検索方法ならびに暗号化文書検索システム |
| JP2010503118A (ja) * | 2006-09-06 | 2010-01-28 | マイクロソフト コーポレーション | 暗号化されたデータの検索 |
| WO2012095973A1 (ja) | 2011-01-13 | 2012-07-19 | 三菱電機株式会社 | データ処理装置及びデータ保管装置 |
Non-Patent Citations (8)
| Title |
|---|
| D. BONEHG. D. CRESCENZOR. OSTROVSKYG. PERSIANOG: "Public Key Encryption with Keyword Search", EUROCRYPT' 2004, LECTURE NOTES IN COMPUTER SCIENCE, vol. 3027, 2004 |
| J. KATZA. SAHAIB. WATERS: "Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products", EUROCRYPT 2008, LECTURE NOTES IN COMPUTER SCIENCE, vol. 4965, 2008 |
| M. BELLAREA. BOLDYREVAA. O'NEILL: "Deterministic and Efficiently Searchable Encryption", CRYPTO' 2007, LECTURE NOTES IN COMPUTER SCIENCE, vol. 4622, 2007 |
| MATSUDA, NORI ET AL.: "Efficient Searchable Encryption and Its Application to Web Services. Multimedia, Distributed, Cooperative, and Mobile Symposium (DICOMO2013", IPSJ SYMPOSIUM SERIES, vol. 2013, no. 2, 3 July 2013 (2013-07-03), pages 2067 - 2074, XP009511604 * |
| MATSUDA, NORI ET AL.: "Towards Secure and Fast Searchable Encryption (1)", PROCEEDINGS OF THE 2012 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY; 30/01-02/02/2013, 30 January 2012 (2012-01-30), JAPAN, pages 1 - 6, XP009518769 * |
| MITSUHIRO HATTORITAKUMI MORITAKASHI ITONORI MATSUDATAKESHI YONEDAKAZUO OHTA: "Anonymous HIBE with Wildcards and Its Application to Secure Keyword Search for Group-Oriented Multi-User System", SCIS' 2010, 3A4-2, THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, 2010 |
| See also references of EP3657475A4 * |
| TATSUAKI OKAMOTOKATSUYUKI TAKASHIMA: "Hierarchical Predicate Encryption for Inner-Products", ASIACRYPT' 2009, LECTURE NOTES IN COMPUTER SCIENCE, vol. 5912, 2009 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12216787B2 (en) | 2020-01-14 | 2025-02-04 | Mitsubishi Electric Corporation | Searchable encryption system, searchable encryption method, and non-transitory computer-readable recording medium |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6632780B2 (ja) | 2020-01-22 |
| EP3657475B1 (en) | 2021-08-25 |
| EP3657475A4 (en) | 2020-08-12 |
| EP3657475A1 (en) | 2020-05-27 |
| JPWO2019053788A1 (ja) | 2020-01-16 |
| US20210081562A1 (en) | 2021-03-18 |
| CN111052108A (zh) | 2020-04-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5420085B2 (ja) | データ処理装置及びデータ保管装置 | |
| JP6632780B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
| CN107077469B (zh) | 服务器装置、检索系统、终端装置以及检索方法 | |
| Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
| JP5670365B2 (ja) | 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム | |
| JP6961324B2 (ja) | 検索可能暗号処理システム | |
| CN112042150A (zh) | 登记装置、服务器装置、隐匿检索系统、隐匿检索方法、登记程序及服务器程序 | |
| KR101140576B1 (ko) | 암호화 문서에 대한 다자간 검색 시스템 및 그 방법 | |
| WO2019142268A1 (ja) | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム | |
| WO2017122326A1 (ja) | 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム | |
| Khan et al. | Secure ranked fuzzy multi-keyword search over outsourced encrypted cloud data | |
| WO2020003821A1 (ja) | 情報処理システム、情報処理方法、および情報処理装置 | |
| JP6289768B2 (ja) | 暗号化装置、暗号化プログラム及び暗号化方法 | |
| JP6351890B1 (ja) | 検索装置、秘匿検索システム及び検索プログラム | |
| JP6672451B2 (ja) | 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法 | |
| JP6462968B1 (ja) | データ管理装置、データ管理方法及びデータ管理プログラム | |
| JP6381861B2 (ja) | 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム | |
| WO2020003859A1 (ja) | 情報処理装置および情報処理方法 | |
| CN106789007B (zh) | 一种基于密文检索的网络信息审查方法与系统 | |
| JP2020109447A (ja) | 秘密情報検索システム、秘密情報検索プログラム、および秘密情報検索方法 | |
| JP6987330B1 (ja) | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム | |
| US10769144B2 (en) | Database search system, database search method, and non-transitory recording medium | |
| Funde et al. | HORAM: Hybrid oblivious random access memory scheme for secure path hiding in distributed environment | |
| Sharmila | Secure retrieval of files using homomorphic encryption for cloud computing |
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: 17925167 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2019541523 Country of ref document: JP Kind code of ref document: A |
|
| ENP | Entry into the national phase |
Ref document number: 2017925167 Country of ref document: EP Effective date: 20200219 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |