WO2019215818A1 - 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム - Google Patents
登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム Download PDFInfo
- Publication number
- WO2019215818A1 WO2019215818A1 PCT/JP2018/017792 JP2018017792W WO2019215818A1 WO 2019215818 A1 WO2019215818 A1 WO 2019215818A1 JP 2018017792 W JP2018017792 W JP 2018017792W WO 2019215818 A1 WO2019215818 A1 WO 2019215818A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- search
- key
- keyword
- unit
- registration
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
- G09C1/02—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system by using a ciphering code in chart form
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
Definitions
- the present invention relates to a registration device, a server device, a secret search system, a secret search method, a registration program, and a server program.
- Patent Document 1 Patent Document 2 and Patent Document 3 disclose techniques related to confidential search.
- Secure search is also called searchable encryption.
- Secret search is an encryption technique that allows data to be searched while encrypted. Actually, the encrypted data itself is not searched. Relevant keywords are extracted in advance from the data to be searched, and encrypted using a special encryption technique that allows the keywords to be searched. Then, a search is performed on the encrypted keyword with a search query.
- a search query is an encrypted search keyword.
- Secure search includes a common key method and a public key method.
- common key method common key encryption technology is used, and the registrant and searcher are limited.
- public key method public key cryptography is used, and searchers are limited, but registrants are not limited.
- a registrant is a user who registers encrypted data, and a searcher is a user who searches encrypted data.
- Secure search includes tag type and index type.
- tag type an encryption keyword that can be searched is added to data that is ciphertext. Since a plurality of keywords are associated with one ciphertext, the search is slow.
- index type ciphertext data is associated with each encryption keyword. Since a plurality of ciphertexts are associated with one keyword, the search becomes faster.
- the common key method can usually perform high-speed secret search, but cannot perform access control.
- access control is usually possible, but high-speed secret search is not possible.
- Non-Patent Document 1 discloses a common key method in which a registrant and a searcher do not share the same secret information in order to reduce the sharing cost of the secret information and the influence at the time of leakage of the secret information.
- Non-Patent Document 1 further discloses a multi-user shared key method.
- a user who is allowed to search and a user who is not allowed to search can be set.
- encrypted data that hits in one user's search but does not hit in another user's search. Can be generated.
- Non-Patent Document 1 access control is achieved using a plurality of keys, but since the method is a tag type, the efficiency is poor even though it is based on a common key.
- Patent Document 1 In the technologies described in Patent Document 1, Patent Document 2, and Patent Document 3, access control is achieved by using a reliable third party, but the permission of existence of a reliable third party strongly depends on the use case. Therefore, versatility is low.
- the present invention aims to increase the speed and the versatility of a secret search that allows access control.
- a registration device includes: An encrypted keyword is generated by encrypting a keyword corresponding to one or more ciphertexts among a plurality of ciphertexts with a registration key, the generated encrypted keyword, and identification information for identifying the one or more ciphertexts
- An index generator for generating an index including From the registration key and a search key used for encryption by a search device that encrypts a keyword used for search and generates a search query, the search query is re-encrypted to generate a re-encrypted keyword, and the index is
- a key generation unit that generates a conversion key used for agent re-encryption by the server device that searches with the re-encryption keyword
- a registration unit configured to transmit the plurality of ciphertexts, the index generated by the index generation unit, and the conversion key generated by the key generation unit to the server device;
- a server device includes: A plurality of ciphertexts and a keyword corresponding to one or more ciphertexts are encrypted with a registration key to identify the encrypted keyword and the one or more ciphertexts generated by a registration device that generates an encryption keyword
- a first receiver for receiving a conversion key to be used A management unit that registers a plurality of ciphertexts, indexes, and conversion keys received by the first reception unit in a database;
- the identification information is acquired from the index, and the ciphertext identified by the identification information is extracted from the plurality of ciphertexts registered by the management unit A search section to A transmission unit that transmits the ciphertext extracted by the search unit to the search device.
- the index type is applied to the method while achieving access control using a plurality of keys, the speed of the secret search can be achieved.
- the versatility is high.
- FIG. 1 is a block diagram showing a configuration of a secret search system according to Embodiment 1.
- FIG. 2 is a block diagram illustrating a configuration of a registration device according to the first embodiment.
- FIG. 2 is a block diagram illustrating a configuration of a search device according to Embodiment 1.
- FIG. 2 is a block diagram illustrating a configuration of a server device according to the first embodiment.
- 5 is a flowchart showing the operation of the registration apparatus according to the first embodiment. 4 is a table showing an example of an index according to the first embodiment. 4 is a table showing an example of an index according to the first embodiment.
- 5 is a flowchart showing the operation of the server apparatus according to the first embodiment. 5 is a flowchart showing the operation of the registration apparatus according to the first embodiment.
- FIG. 5 is a flowchart showing the operation of the server apparatus according to the first embodiment.
- 5 is a flowchart showing the operation of the search device according to the first embodiment.
- 5 is a flowchart showing the operation of the server apparatus according to the first embodiment.
- 5 is a flowchart showing the operation of the search device according to the first embodiment.
- FIG. 4 is a table showing an example of an index according to the first embodiment. 4 is a table showing an example of an index according to the first embodiment.
- FIG. 2 is a block diagram illustrating a configuration of a registration device according to the first embodiment.
- FIG. 2 is a block diagram illustrating a configuration of a search device according to Embodiment 1.
- FIG. 2 is a block diagram illustrating a configuration of a server device according to the first embodiment.
- the table which shows the example of the access authority information of data based on Embodiment 1, and a corresponding encryption key and registration key.
- the table which shows the example of the search key distributed to a searcher based on Embodiment 1.
- Embodiment 1 FIG. This embodiment will be described with reference to FIGS.
- the secret search system 100 includes a registration device 200, a search device 300, and a server device 400.
- the devices of the confidential search system 100 communicate with each other via a network 101 such as the Internet.
- the registration device 200 is a computer.
- the registration apparatus 200 is specifically a terminal such as a PC used by a registrant.
- PC is an abbreviation for Personal Computer.
- the registration device 200 includes a processor 201 and other hardware such as a memory 202, an auxiliary storage device 203, an input / output interface 204, and a communication device 205.
- the processor 201 is connected to other hardware via a signal line, and controls these other hardware.
- the registration apparatus 200 includes an input unit 210, a ciphertext generation unit 220, an index generation unit 230, a key generation unit 240, a distribution unit 250, and a registration unit 260 as functional elements.
- the functions of the input unit 210, the ciphertext generation unit 220, the index generation unit 230, the key generation unit 240, the distribution unit 250, and the registration unit 260 are realized by software. Specifically, the functions of the input unit 210, ciphertext generation unit 220, index generation unit 230, key generation unit 240, distribution unit 250, and registration unit 260 are realized by a registration program.
- the registration program includes procedures performed by the input unit 210, the ciphertext generation unit 220, the index generation unit 230, the key generation unit 240, the distribution unit 250, and the registration unit 260, respectively, as an input procedure, a ciphertext generation procedure, an index generation procedure, and a key.
- a program to be executed by a computer as a generation procedure, a distribution procedure, and a registration procedure.
- the registration program may be provided by being recorded on a computer-readable medium, may be provided by being stored in a recording medium, or may be provided as a program product.
- the processor 201 is a device that executes a registration program.
- the processor 201 is, for example, a CPU.
- CPU Central Processing Unit
- the memory 202 is a device that temporarily stores a registration program.
- the memory 202 is, for example, RAM, flash memory, or a combination thereof.
- RAM is an abbreviation for Random Access Memory.
- the auxiliary storage device 203 is a device that stores a registration program in advance.
- the auxiliary storage device 203 is, for example, an HDD, a flash memory, or a combination thereof. “HDD” is an abbreviation for Hard Disk Drive.
- the input / output interface 204 is a port to which an input device and a display (not shown) are connected.
- the input / output interface 204 is, for example, a USB terminal.
- USB is an abbreviation for Universal Serial Bus.
- the input device is a device operated by a registrant for inputting data to the registration program.
- the input device is, for example, a mouse, a keyboard, a touch panel, or some or all of these.
- the display is a device that displays data output from the registration program on a screen.
- the display is, for example, an LCD.
- LCD is an abbreviation for Liquid Crystal Display.
- the communication device 205 includes a receiver that receives data input to the registration program and a transmitter that transmits data output from the registration program.
- the communication device 205 is, for example, a communication chip or a NIC.
- NIC is an abbreviation for Network Interface Card.
- the registration program is loaded from the auxiliary storage device 203 into the memory 202, read from the memory 202 into the processor 201, and executed by the processor 201.
- the auxiliary storage device 203 stores not only the registration program but also the OS. “OS” is an abbreviation for Operating System.
- the processor 201 executes the registration program while executing the OS. Part or all of the registration program may be incorporated in the OS.
- the registration program and the OS may be stored in advance in the memory 202. In that case, the auxiliary storage device 203 can be omitted.
- the registration device 200 may include a plurality of processors that replace the processor 201.
- the plurality of processors share the execution of the registration program.
- Each processor is, for example, a CPU.
- Data, information, signal values and variable values used, processed or output by the registration program are stored in the auxiliary storage device 203, the memory 202, or a register or cache memory in the processor 201.
- the registration device 200 may be composed of one computer or a plurality of computers.
- the functions of the input unit 210, the ciphertext generation unit 220, the index generation unit 230, the key generation unit 240, the distribution unit 250, and the registration unit 260 are included in each computer. It may be realized in a distributed manner.
- search device 300 Referring to FIG. 3, the configuration of search device 300 according to the present embodiment will be described.
- the search device 300 is a computer. Specifically, the search device 300 is a terminal such as a PC used by a searcher.
- the search device 300 includes a processor 301 and other hardware such as a memory 302, an auxiliary storage device 303, an input / output interface 304, and a communication device 305.
- the processor 301 is connected to other hardware via a signal line, and controls these other hardware.
- the search device 300 includes an acquisition unit 310, an input unit 320, an encryption unit 330, a request unit 340, a decryption unit 350, and an output unit 360 as functional elements.
- the functions of the acquisition unit 310, the input unit 320, the encryption unit 330, the request unit 340, the decryption unit 350, and the output unit 360 are realized by software. Specifically, the functions of the acquisition unit 310, the input unit 320, the encryption unit 330, the request unit 340, the decryption unit 350, and the output unit 360 are realized by a search program.
- the search program includes procedures performed by the acquisition unit 310, the input unit 320, the encryption unit 330, the request unit 340, the decryption unit 350, and the output unit 360, respectively, an acquisition procedure, an input procedure, an encryption procedure, a request procedure, a decryption procedure, and A program to be executed by a computer as an output procedure.
- the search program may be provided by being recorded on a computer-readable medium, may be provided by being stored in a recording medium, or may be provided as a program product.
- the processor 301 is a device that executes a search program.
- the processor 301 is a CPU, for example.
- the memory 302 is a device that temporarily stores a search program.
- the memory 302 is, for example, RAM, flash memory, or a combination thereof.
- the auxiliary storage device 303 is a device that stores a search program in advance.
- the auxiliary storage device 303 is, for example, an HDD, a flash memory, or a combination thereof.
- the input / output interface 304 is a port to which an input device and a display (not shown) are connected.
- the input / output interface 304 is, for example, a USB terminal.
- the input device is a device operated by a searcher to input data to the search program.
- the input device is, for example, a mouse, a keyboard, a touch panel, or some or all of these.
- the display is a device that displays data output from the search program on a screen.
- the display is, for example, an LCD.
- the communication device 305 includes a receiver that receives data input to the search program and a transmitter that transmits data output from the search program.
- the communication device 305 is, for example, a communication chip or a NIC.
- the search program is loaded from the auxiliary storage device 303 into the memory 302, read from the memory 302 into the processor 301, and executed by the processor 301.
- the auxiliary storage device 303 stores not only the search program but also the OS.
- the processor 301 executes the search program while executing the OS. Note that a part or all of the search program may be incorporated in the OS.
- the search program and the OS may be stored in the memory 302 in advance, and in this case, the auxiliary storage device 303 can be omitted.
- the search device 300 may include a plurality of processors that replace the processor 301.
- the plurality of processors share the execution of the search program.
- Each processor is, for example, a CPU.
- Data, information, signal values, and variable values used, processed, or output by the search program are stored in the auxiliary storage device 303, the memory 302, or a register or cache memory in the processor 301.
- the search device 300 may be composed of one computer or a plurality of computers.
- the functions of the acquisition unit 310, the input unit 320, the encryption unit 330, the request unit 340, the decryption unit 350, and the output unit 360 are distributed to each computer. It may be realized.
- server apparatus 400 Referring to FIG. 4, the configuration of server apparatus 400 according to the present embodiment will be described.
- the server device 400 is a computer. Specifically, the server device 400 is a cloud server.
- the server device 400 includes a processor 401 and other hardware such as a memory 402, an auxiliary storage device 403, an input / output interface 404, and a communication device 405.
- the processor 401 is connected to other hardware via a signal line, and controls these other hardware.
- the server apparatus 400 includes a first reception unit 410, a management unit 420, a second reception unit 430, a search unit 440, and a transmission unit 450 as functional elements.
- the functions of the first reception unit 410, the management unit 420, the second reception unit 430, the search unit 440, and the transmission unit 450 are realized by software. Specifically, the functions of the first reception unit 410, the management unit 420, the second reception unit 430, the search unit 440, and the transmission unit 450 are realized by a server program.
- the server program sets the procedures performed by the first receiving unit 410, the managing unit 420, the second receiving unit 430, the searching unit 440, and the transmitting unit 450 as a first procedure, a management procedure, a second procedure, a searching procedure, and a transmitting procedure, respectively.
- a program to be executed by a computer may be provided by being recorded on a computer-readable medium, may be provided by being stored in a recording medium, or may be provided as a program product.
- the processor 401 is a device that executes a server program.
- the processor 401 is, for example, a CPU.
- the memory 402 is a device that temporarily stores a server program.
- the memory 402 is, for example, RAM, flash memory, or a combination thereof.
- the auxiliary storage device 403 is a device that stores a server program in advance.
- the auxiliary storage device 403 is, for example, an HDD, a flash memory, or a combination thereof.
- a database 460 is constructed in the auxiliary storage device 403.
- a database 460 may be constructed in the memory 402.
- the input / output interface 404 is a port to which an input device and a display (not shown) are connected.
- the input / output interface 404 is, for example, a USB terminal.
- the input device is a device operated by a server administrator for inputting data to the server program.
- the input device is, for example, a mouse, a keyboard, a touch panel, or some or all of these.
- the display is a device that displays data output from the server program on a screen.
- the display is, for example, an LCD.
- the communication device 405 includes a receiver that receives data input to the server program and a transmitter that transmits data output from the server program.
- the communication device 405 is, for example, a communication chip or a NIC.
- the server program is loaded from the auxiliary storage device 403 into the memory 402, read from the memory 402 into the processor 401, and executed by the processor 401.
- the auxiliary storage device 403 stores not only the server program but also the OS.
- the processor 401 executes the server program while executing the OS. A part or all of the server program may be incorporated in the OS.
- the server program and the OS may be stored in advance in the memory 402. In that case, the auxiliary storage device 403 can be omitted.
- the server apparatus 400 may include a plurality of processors that replace the processor 401.
- the plurality of processors share the execution of the server program.
- Each processor is, for example, a CPU.
- Data, information, signal values and variable values used, processed or output by the server program are stored in the auxiliary storage device 403, the memory 402, or a register or cache memory in the processor 401.
- the server apparatus 400 may be composed of a single computer or a plurality of computers.
- the functions of the first reception unit 410, the management unit 420, the second reception unit 430, the search unit 440, and the transmission unit 450 are realized by being distributed to each computer. May be.
- FIG. 5 shows an operation in which the registration apparatus 200 registers a plurality of ciphertexts and indexes in the server apparatus 400.
- the input unit 210 receives a plurality of plaintext inputs. Specifically, the input unit 210 receives plaintexts D1, D2, D3,... Via the input / output interface 204. In the present embodiment, the input unit 210 also receives an input of attribute sets S1, S2,... Indicating which searcher is allowed access to each plaintext.
- the ciphertext generation unit 220 generates a plurality of ciphertexts by encrypting a plurality of plaintexts input to the input unit 210 with an encryption key. Specifically, the ciphertext generation unit 220 encrypts the plaintext D1 with the encryption key EK1, and writes the data obtained by the encryption into the memory 202 as the ciphertext C1. The ciphertext generation unit 220 encrypts the plaintext D2 with the encryption key EK1, and writes the data obtained by the encryption into the memory 202 as the ciphertext C2. The ciphertext generation unit 220 encrypts the plaintext D3 with the encryption key EK2, and writes the data obtained by the encryption into the memory 202 as the ciphertext C3.
- Each encryption key is stored in advance in the auxiliary storage device 203 or is appropriately input via the input / output interface 204. Which encryption key is used for encrypting which plaintext is specified in advance, or is specified when plaintext is input or when an encryption key is input. In the present embodiment, which encryption key is used for encryption of which plaintext is determined by the attribute set input in step S11.
- the input unit 210 receives an input of a keyword corresponding to one or more plaintexts among a plurality of plaintexts input to the input unit 210. That is, the input unit 210 receives an input of a keyword corresponding to one or more ciphertexts among a plurality of ciphertexts input to the input unit 210. Specifically, the input unit 210 receives input of keywords W1, W2, W3,... Via the input / output interface 204.
- the keyword W1 corresponds to the plain text D1. That is, the keyword W1 corresponds to the ciphertext C1.
- the keyword W2 corresponds to the plaintext D1 and the plaintext D2.
- the keyword W2 corresponds to the ciphertext C1 and the ciphertext C2.
- the keyword W3 corresponds to the plain text D3. That is, the keyword W3 corresponds to the ciphertext C3.
- Each keyword may be set manually for plain text, or may be automatically extracted from plain text.
- the index generating unit 230 generates an encrypted keyword by encrypting the keyword input to the input unit 210 with the registration key. Specifically, the index generation unit 230 gives the hash value of the keyword W1 and a predetermined value g to the pairing function e, uses the value obtained from the pairing function e as a base, and sets the registration key SK1. The exponent, which is an exponent, is calculated, and the calculation result is written in the memory 202 as the encrypted keyword V1.
- the index generation unit 230 gives the hash value of the keyword W2 and the value g to the pairing function e, calculates the power using the value obtained from the pairing function e as a base, and the registration key SK1 as an index, The calculation result is written in the memory 202 as the encrypted keyword V2.
- the index generation unit 230 gives the hash value of the keyword W2 and the value g to the pairing function e, calculates the power with the value obtained from the pairing function e as the base, and the registration key SK2 as the index, The calculation result is written in the memory 202 as the encrypted keyword V3.
- the index generation unit 230 gives the hash value of the keyword W3 and the value g to the pairing function e, calculates the power with the value obtained from the pairing function e as the base, and the registration key SK2 as the index, The calculation result is written in the memory 202 as the encrypted keyword V4.
- Each registration key is paired with each encryption key, and is stored in advance in the auxiliary storage device 203 or inputted through the input / output interface 204 as in the case of each encryption key. Which registration key is used for encryption of which keyword is determined by which encryption key the plaintext corresponding to the keyword is encrypted.
- FIG. 20 shows an example of data access authority information and the corresponding encryption key and registration key.
- plaintext D1 and plaintext D2 correspond to attribute set S1
- plaintext D3 corresponds to attribute set S2. That is, it is assumed that access to the plaintext D1 and plaintext D2 is permitted to the searcher Pa and searcher Pb belonging to the attribute set S1, and access to the plaintext D3 is permitted only to the searcher Pb belonging to the attribute set S2.
- step S12 a pair of encryption key EK1 and registration key SK1, and a pair of encryption key EK2 and registration key SK2 are generated as a pair of encryption key and registration key corresponding to attribute set S1 and attribute set S2, respectively.
- the pair of the encryption key EK1 and the registration key SK1 is stored in association with the attribute set S1.
- the pair of the encryption key EK2 and the registration key SK2 is stored in association with the attribute set S2. If a pair of encryption key and registration key has already been registered using the same attribute set, the stored encryption key and registration key are read instead of generating the encryption key and registration key pair.
- the index generation unit 230 generates an index including the encrypted keyword generated in step S14 and identification information for identifying one or more corresponding ciphertexts.
- the index generation unit 230 includes a combination of the encrypted keyword V1 and the identifier of the plaintext D1 as one entry, and includes the encrypted keyword V2, the plaintext D1, and the plaintext D2.
- An index is generated that includes the combination with the identifier as another entry.
- the index generation unit 230 includes the combination of the encrypted keyword V3 and the plaintext D3 identifier as one entry, and the combination of the encrypted keyword V4 and the plaintext D3 identifier as another entry.
- step S ⁇ b> 16 the registration unit 260 transmits the plurality of ciphertexts generated by the ciphertext generation unit 220 and the index generated by the index generation unit 230 to the server device 400. Specifically, as illustrated in FIG. 14, the registration unit 260 collectively transmits the ciphertext C1 and the ciphertext C2 and the index of FIG. 6 to the server device 400. The registration unit 260 collectively transmits the ciphertext C3 and the index of FIG. 7 to the server device 400.
- FIG. 8 shows an operation in which the server apparatus 400 registers a plurality of ciphertexts and indexes in the database 460.
- the first receiving unit 410 receives a plurality of ciphertexts and indexes transmitted from the registration device 200. Specifically, as illustrated in FIG. 14, the first reception unit 410 collectively receives the ciphertext C1 and the ciphertext C2 and the index illustrated in FIG. 6 from the registration device 200. The first receiving unit 410 receives the ciphertext C3 and the index of FIG.
- step S ⁇ b> 22 the management unit 420 registers a plurality of ciphertexts and indexes received by the first reception unit 410 in the database 460. Specifically, as illustrated in FIG. 14, the management unit 420 collectively registers the ciphertext C1 and ciphertext C2 and the index illustrated in FIG. 6 in the database 461. The management unit 420 registers the ciphertext C3 and the index of FIG. 7 together in the database 461.
- the database 460 is preferably divided into a ciphertext and index database 461 and a conversion key database 462, which will be described later, as in the present embodiment, but may be integrated into one.
- FIG. 9 shows an operation in which the registration device 200 registers the conversion key in the server device 400 and distributes the search key to the search device 300.
- step S31 the key generation unit 240 generates a conversion key used for agent re-encryption by the server device 400 from the registration key and the search key used for encryption by the search device 300. Specifically, the key generation unit 240 calculates a power that uses the value g described above as a base and uses a value obtained by dividing the registration key SK1 by the search key Ka as an index, and stores the calculation result in the memory 202 as the conversion key K1a. Write. The key generation unit 240 calculates a power with the value g as a base and a value obtained by dividing the registration key SK1 by the search key Kb as an index, and writes the calculation result in the memory 202 as the conversion key K1b.
- the key generation unit 240 calculates the power with the value g as the base and the value obtained by dividing the registration key SK2 by the search key Kb as an index, and writes the calculation result in the memory 202 as the conversion key K2b.
- Each search key is stored in advance in the auxiliary storage device 203 or is appropriately input via the input / output interface 204. Which search key is combined with which search key is specified in advance, or is specified when the registration key is input or when the search key is input. If a conversion key generated from a combination of a certain registration key and a certain search key is used, a keyword encrypted with the search key is converted into a keyword encrypted with the registration key without being decrypted. Can do. In the example of FIG.
- the searcher Pa and the searcher Pb included in the attribute set S1 can search the index generated with the registration key SK1. Therefore, the corresponding conversion key K1a and conversion key K1b are generated so that the search key Ka scheduled to be distributed to the searcher Pa and the search key Kb scheduled to be distributed to the searcher Pb can be searched. Is done. Only the searcher Pb included in the attribute set S2 can search the index generated with the registration key SK2. Therefore, the conversion key K2b corresponding to the search key Kb is generated so that the searcher Pb can search using the search key Kb scheduled to be distributed.
- step S ⁇ b> 32 the registration unit 260 transmits the conversion key generated by the key generation unit 240 to the server device 400. Specifically, the registration unit 260 transmits conversion keys K1a, K1b, K2b,... To the server apparatus 400 as shown in FIG.
- step S33 the distribution unit 250 transmits the search key used for generating the conversion key by the key generation unit 240 to the search device 300.
- the distribution unit 250 transmits the search key Ka to the search device 300a that is the search device 300 of the searcher Pa.
- the distribution unit 250 transmits the search key Kb to the search device 300b that is the search device 300 of the searcher Pb.
- An example of a search key distributed to a searcher is shown in FIG. In this example, the search key Ka is distributed to the searcher Pa, and the search key Kb is distributed to the searcher Pb. Thus, the search key is different for each searcher.
- step S33 may be performed before the process of step S31.
- FIG. 10 shows an operation in which the server apparatus 400 registers the conversion key in the database 460.
- step S41 the first receiving unit 410 receives the conversion key transmitted from the registration device 200. Specifically, the first receiving unit 410 receives conversion keys K1a, K1b, K2b,... From the registration device 200 as shown in FIG.
- step S42 the management unit 420 registers the conversion key received by the first reception unit 410 in the database 460. Specifically, the management unit 420 registers the conversion keys K1a, K1b, K2b,... In the database 462 as shown in FIG. As described above, in this embodiment, the database 460 is divided into the ciphertext and index database 461 and the conversion key database 462.
- FIG. 11 shows an operation in which the search device 300 sends a search query to the server device 400 to request a search.
- step S51 the acquisition unit 310 receives the search key transmitted from the registration device 200.
- the acquisition unit 310 of the search device 300a receives the search key Ka from the registration device 200 as shown in FIG.
- the acquisition unit 310 of the search device 300b receives the search key Kb from the registration device 200.
- step S52 the input unit 320 receives an input of a keyword used for the search. Specifically, the input unit 320 receives an input of the keyword w via the input / output interface 304 or the communication device 305.
- step S53 the encryption unit 330 encrypts the keyword input to the input unit 320 with the search key received by the acquisition unit 310 to generate a search query.
- the encryption unit 330 of the search device 300a calculates a power with the hash value of the keyword w as the base and the search key Ka as an index, and writes the calculation result as the search query Q in the memory 302.
- the encryption unit 330 of the search device 300b calculates a power with the hash value of the keyword w as the base and the search key Kb as an index, and writes the calculation result as the search query Q in the memory 302.
- step S54 the request unit 340 transmits the search query generated by the encryption unit 330 to the server device 400 to request a search.
- the request unit 340 of the search device 300a or the search device 300b transmits a search query Q to the server device 400 as shown in FIG.
- FIG. 12 shows an operation in which the server apparatus 400 performs a search.
- step S61 the second receiving unit 430 receives the search query transmitted from the search device 300. Specifically, as illustrated in FIG. 14, the second receiving unit 430 receives the search query Q from the search device 300a or the search device 300b.
- step S62 the search unit 440 re-encrypts the search query received by the second receiving unit 430 with the conversion key registered by the management unit 420 to generate a re-encrypted keyword.
- the search unit 440 converts the search query Q transmitted from the search device 300a or the search device 300b into conversion keys K1a, K1b, K2b,... Registered in the database 462.
- the data obtained by the agent re-encryption is written in the memory 402 as the re-encryption keyword v.
- the agent re-encryption is performed by giving the search query Q and the conversion key K1a to the pairing function e and calculating the hash value of the value obtained from the pairing function e.
- the agent re-encryption is performed by giving the search query Q and the conversion key K1b to the pairing function e and calculating a hash value of a value obtained from the pairing function e.
- the agent re-encryption is performed by giving the search query Q and the conversion key K2b to the pairing function e and calculating the hash value of the value obtained from the pairing function e.
- step S63 the search unit 440 searches the index registered by the management unit 420 with the re-encrypted keyword generated in step S62. Specifically, as shown in FIG. 14, the search unit 440 extracts an entry including an encrypted keyword that matches the re-encrypted keyword v from the index of FIG. 6 registered in the database 461. The search unit 440 extracts an entry including an encrypted keyword that matches the re-encrypted keyword v from the index of FIG. 7 registered in the database 461.
- step S64 is performed.
- the re-encrypted keyword v matches the encrypted keyword V1
- an entry including the encrypted keyword V1 is extracted as a search result from the index of FIG.
- an entry including the encrypted keyword V2 is extracted as a search result from the index of FIG.
- an entry including the encryption keyword V3 is extracted as a search result from the index of FIG.
- an entry including the encryption keyword V4 is extracted as a search result from the index of FIG.
- step S64 the search unit 440 acquires identification information from the index including the encrypted keyword obtained as a search result in step S63. Then, the search unit 440 extracts a ciphertext identified by the acquired identification information from a plurality of ciphertexts registered by the management unit 420. Specifically, as shown in FIG. 14, when the entry including the encrypted keyword V1 is extracted as a search result, the search unit 440 registers the identifier in the database 461 because the entry includes the plaintext D1 identifier. Extracted ciphertext C1 is extracted.
- the search unit 440 extracts an entry including the encrypted keyword V2 as a search result, the plaintext D1 and the plaintext D2 identifier are included in the entry, and thus the ciphertext C1 and ciphertext registered in the database 461 are included. Extract C2.
- the search unit 440 extracts the ciphertext C3 registered in the database 461 because the entry includes the identifier of the plaintext D3.
- the search unit 440 extracts the ciphertext C3 registered in the database 461 because the entry includes the identifier of the plaintext D3.
- the transmission unit 450 transmits the ciphertext extracted by the search unit 440 to the search device 300. Specifically, as illustrated in FIG. 14, when the keyword w matches the keyword W1, the transmission unit 450 extracts the ciphertext C1 as a search result for the search query Q transmitted from the search device 300a. Therefore, the ciphertext C1 is transmitted to the search device 300a. When the keyword w matches the keyword W2, the transmission unit 450 extracts the ciphertext C1 and the ciphertext C2 as search results for the search query Q transmitted from the search device 300a. The ciphertext C2 is transmitted to the search device 300a.
- the transmission unit 450 does not transmit the ciphertext to the search device 300a because the ciphertext is not extracted as a search result for the search query Q transmitted from the search device 300a.
- the transmission unit 450 extracts the ciphertext C1 as the search result for the search query Q transmitted from the search device 300b.
- the transmission unit 450 extracts the ciphertext C1 and the ciphertext C2 as the search results for the search query Q transmitted from the search device 300b.
- the ciphertext C2 is transmitted to the search device 300b.
- the transmission unit 450 extracts the ciphertext C3 as a search result for the search query Q transmitted from the search device 300b. Send.
- FIG. 13 shows an operation in which the search device 300 acquires a search result.
- the request unit 340 receives the ciphertext transmitted from the server device 400. Specifically, the request unit 340 of the search device 300a or the search device 300b receives the ciphertext C1 from the server device 400 when the keyword w matches the keyword W1. When the keyword w matches the keyword W2, the request unit 340 of the search device 300a or the search device 300b receives the ciphertext C1 and the ciphertext C2 from the server device 400. When the keyword w matches the keyword W3, the request unit 340 of the search device 300b receives the ciphertext C3 from the server device 400.
- step S72 the decryption unit 350 decrypts the ciphertext received by the request unit 340 with the encryption key. Specifically, if the ciphertext C1 has been received in step S71, the decryption unit 350 of the search device 300a or the search device 300b decrypts the ciphertext C1 with the encryption key EK1, and converts the data obtained by the decryption into plaintext. Write to the memory 302 as D1. If the ciphertext C2 is received in step S71, the decryption unit 350 of the search device 300a or the search device 300b decrypts the ciphertext C2 with the encryption key EK1, and stores the data obtained by the decryption in the memory 302 as the plaintext D2. Write.
- the decryption unit 350 of the search device 300b decrypts the ciphertext C3 with the encryption key EK2, and writes the data obtained by the decryption to the memory 302 as the plaintext D3.
- Each encryption key is stored in advance in the auxiliary storage device 303 or is appropriately input via the input / output interface 304 or the communication device 305.
- the encryption key generated in step S12 is distributed to the corresponding searcher after step S12. In the example of FIG. 20, the encryption key EK1 is sent to the searcher Pa and the searcher Pb, and the encryption key EK2 is sent only to the searcher Pb.
- the encryption key EK1 is transmitted from the registration device 200 to the search device 300a and the search device 300b, and the encryption key EK2 is transmitted from the registration device 200 only to the search device 300b.
- the encryption key EK1 transmitted from the registration device 200 is received by the search device 300a and the search device 300b before step S72.
- the encryption key EK2 transmitted from the registration device 200 is received by the search device 300b before step S72.
- step S73 the output unit 360 outputs the plain text obtained by the decryption unit 350. Specifically, if the plaintext D1 is obtained in step S72, the output unit 360 of the search device 300a or the search device 300b displays the plaintext D1 on the screen or outputs it to a file via the input / output interface 204. To do. If the plaintext D2 is obtained in step S72, the output unit 360 of the search device 300a or the search device 300b displays the plaintext D2 on the screen or outputs it to a file via the input / output interface 204. If the plaintext D3 is obtained in step S72, the output unit 360 of the search device 300b displays the plaintext D3 on the screen or outputs it to a file via the input / output interface 204.
- step S14 and step S15 the index generation unit 230 of the registration device 200 performs first conversion processing and second conversion processing on the result data obtained by encrypting the keyword input to the input unit 210 with the registration key.
- the index generation unit 230 uses the first conversion data obtained by executing the first conversion process as an encryption keyword.
- the index generation unit 230 encodes the second conversion data obtained by executing the second conversion process with a ciphertext identifier to generate identification information.
- the ciphertext identifier is data that uniquely represents a combination of ciphertexts corresponding to the keywords input to the input unit 210.
- the first conversion process is a process of concatenating the first value to the result data and calculating the hash value of the data obtained by concatenating the first value as the first conversion data.
- the second conversion process is a process of connecting a second value different from the first value to the result data and calculating a hash value of data obtained by connecting the second values as the second conversion data.
- the first conversion process is a process of converting the result data into first conversion data that is a hash value using a first hash function.
- the second conversion process is a process of converting the result data into second conversion data that is a hash value by a second hash function different from the first hash function.
- the encoding of the second conversion data is performed by calculating the exclusive OR of the second conversion data and the ciphertext identifier as identification information.
- Each of G1, G2, and GT has a large prime number p as an order.
- H1 and H2 are the following functions.
- H1 ⁇ 0,1 ⁇ * ⁇
- the plaintext D1, the plaintext D3, and the plaintext D5 correspond to the keyword W1. (1,0,1,0,1,0,0,0,0,0) It is expressed.
- the plaintext D2 and the plaintext D3 correspond to the keyword WL. (0, 1, 1, 0, 0, 0, 0, 0, 0) It is expressed. That is, the order of each vector corresponds to the plaintext identifier to be hit, and when the plaintext D1, plaintext D3, and plaintext D5 identifiers are hit, the first, third, and fifth components of the vector are 1, All other components are zero.
- ind_S ⁇ (W1, (1, 0, 1, 0, 1, 0, 0, 0, 0)), ..., (WL, (0, 1, 1, 0, 0, 0,0,0,0)) ⁇ is configured. 4).
- t ⁇ i, 0 ⁇ and t ⁇ i, 1 ⁇ are calculated using the pairing function e and the hash functions H1 and H2.
- t ⁇ i, 0 ⁇ H2 (e (H1 (Wi), gsk_S )
- t ⁇ i, 1 ⁇ H2 (e (H1 (Wi), gsk_S )
- the calculation of t ⁇ i, 0 ⁇ corresponds to the first conversion process.
- the calculation of t ⁇ i, 1 ⁇ corresponds to the second conversion process.
- the first value is 0 and the second value is 1.
- the hash function H1 and the hash function H2 may be the same function. 5).
- step S62 to step S64 the search unit 440 of the server apparatus 400 separately performs the first conversion process and the second conversion process on the result data obtained by re-encrypting the search query transmitted from the search apparatus 300.
- the search unit 440 uses the first conversion data obtained by executing the first conversion process as a re-encryption keyword. If an encrypted keyword is obtained as a search result, the search unit 440 obtains a ciphertext identifier by decrypting the second conversion data obtained by executing the second conversion process with the identification information. Then, the search unit 440 extracts a ciphertext included in the combination represented by the acquired ciphertext identifier from the plurality of ciphertexts registered by the management unit 420.
- the first conversion process is a process of connecting the first value to the result data and calculating the hash value of the data obtained by connecting the first value as the first conversion data.
- the second conversion process is a process of connecting a second value different from the first value to the result data and calculating a hash value of data obtained by connecting the second values as the second conversion data.
- the decryption of the second conversion data is performed by calculating the exclusive OR of the second conversion data and the identification information as a ciphertext identifier.
- the specific index search procedure is as follows. 1.
- t0 H2 (e (q_U, ck_U)
- 1) H2 (e (H1 (w), gsk_S )
- t1 H2 (e (q_U, ck_U)
- 1) H2 (e (H1 (w), gsk_S )
- ID 0 (empty set). If there is, an exclusive logical sum of a value representing t1 and a value is calculated for (key, value) and the value corresponding to the key, and an identifier corresponding to the part where the component is 1 Are included in the ID and the ID is output.
- a secret search technique based on a common key encryption using a public key encryption technique and a plurality of secret keys.
- public key encryption technology proxy re-encryption technology by pairing is used.
- agent re-encryption technique if a certain conversion key is used, the data encrypted by the searcher can be converted into the data encrypted by the registrant without decrypting the data.
- index type data is generated instead of tag type at the time of data registration, and an index type search query is generated at the time of data search. Therefore, efficiency is good.
- the same encrypted keywords are collectively registered in the index at the time of data registration, and high security can be achieved by applying an existing secure index construction method. For example, it is possible to apply a technique of adding a dummy to the index or encrypting and hiding hit data names.
- an index system with a flexible search function such as a partial match search can be configured.
- the functions of the input unit 210, ciphertext generation unit 220, index generation unit 230, key generation unit 240, distribution unit 250, and registration unit 260 of the registration apparatus 200 are realized by software.
- the functions of the input unit 210, the ciphertext generation unit 220, the index generation unit 230, the key generation unit 240, the distribution unit 250, and the registration unit 260 may be realized by hardware.
- the difference with this Embodiment is mainly demonstrated.
- the registration device 200 includes hardware such as an electronic circuit 209, an auxiliary storage device 203, an input / output interface 204, and a communication device 205.
- the electronic circuit 209 is dedicated hardware that realizes the functions of the input unit 210, the ciphertext generation unit 220, the index generation unit 230, the key generation unit 240, the distribution unit 250, and the registration unit 260.
- the electronic circuit 209 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an FPGA, an ASIC, or some or all of these.
- IC is an abbreviation for Integrated Circuit.
- GA is an abbreviation for Gate Array.
- FPGA is an abbreviation for Field-Programmable Gate Array.
- ASIC is an abbreviation for Application Specific Integrated Circuit.
- the registration device 200 may include a plurality of electronic circuits that replace the electronic circuit 209.
- the plurality of electronic circuits as a whole realize the functions of the input unit 210, the ciphertext generation unit 220, the index generation unit 230, the key generation unit 240, the distribution unit 250, and the registration unit 260.
- Each electronic circuit is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an FPGA, an ASIC, or some or all of these combinations .
- the functions of the input unit 210, the ciphertext generation unit 220, the index generation unit 230, the key generation unit 240, the distribution unit 250, and the registration unit 260 may be realized by a combination of software and hardware. That is, some of the functions of the input unit 210, the ciphertext generation unit 220, the index generation unit 230, the key generation unit 240, the distribution unit 250, and the registration unit 260 are realized by dedicated hardware, and the rest are realized by software. Also good.
- Both the processor 201 and the electronic circuit 209 are processing circuits. That is, regardless of the configuration of the registration apparatus 200 shown in FIGS. 2 and 17, the input unit 210, the ciphertext generation unit 220, the index generation unit 230, the key generation unit 240, the distribution unit 250, and the registration unit
- the operation 260 is performed by a processing circuit.
- the functions of the acquisition unit 310, the input unit 320, the encryption unit 330, the request unit 340, the decryption unit 350, and the output unit 360 of the search device 300 are realized by software.
- the functions of 310, input unit 320, encryption unit 330, request unit 340, decryption unit 350, and output unit 360 may be realized by hardware.
- the difference with this Embodiment is mainly demonstrated.
- search device 300 Referring to FIG. 18, the configuration of search device 300 according to a modification of the present embodiment will be described.
- the search device 300 includes hardware such as an electronic circuit 309, an auxiliary storage device 303, an input / output interface 304, and a communication device 305.
- the electronic circuit 309 is dedicated hardware for realizing the functions of the acquisition unit 310, the input unit 320, the encryption unit 330, the request unit 340, the decryption unit 350, and the output unit 360.
- the electronic circuit 309 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an FPGA, an ASIC, or some or all of these.
- the search device 300 may include a plurality of electronic circuits that replace the electronic circuit 309.
- the plurality of electronic circuits as a whole realize the functions of the acquisition unit 310, the input unit 320, the encryption unit 330, the request unit 340, the decryption unit 350, and the output unit 360.
- Each electronic circuit is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an FPGA, an ASIC, or some or all of these combinations .
- the functions of the acquisition unit 310, the input unit 320, the encryption unit 330, the request unit 340, the decryption unit 350, and the output unit 360 may be realized by a combination of software and hardware. That is, some of the functions of the acquisition unit 310, the input unit 320, the encryption unit 330, the request unit 340, the decryption unit 350, and the output unit 360 may be realized by dedicated hardware, and the rest may be realized by software.
- Both the processor 301 and the electronic circuit 309 are processing circuits. That is, regardless of the configuration of the search device 300 shown in FIGS. 3 and 18, the operations of the acquisition unit 310, input unit 320, encryption unit 330, request unit 340, decryption unit 350, and output unit 360 Is performed by a processing circuit.
- first reception unit 410, management unit 420, second reception unit 430, search unit 440, and transmission unit 450 of server device 400 are realized by software.
- Functions of unit 410, management unit 420, second reception unit 430, search unit 440, and transmission unit 450 may be realized by hardware.
- this modification the difference with this Embodiment is mainly demonstrated.
- server apparatus 400 Referring to FIG. 19, the configuration of server apparatus 400 according to a modification of the present embodiment will be described.
- the server device 400 includes hardware such as an electronic circuit 409, an auxiliary storage device 403, an input / output interface 404, and a communication device 405.
- the electronic circuit 409 is dedicated hardware for realizing the functions of the first reception unit 410, the management unit 420, the second reception unit 430, the search unit 440, and the transmission unit 450.
- the electronic circuit 409 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an FPGA, an ASIC, or some or all of these.
- the server device 400 may include a plurality of electronic circuits that replace the electronic circuit 409.
- the plurality of electronic circuits as a whole realize the functions of the first reception unit 410, the management unit 420, the second reception unit 430, the search unit 440, and the transmission unit 450.
- Each electronic circuit is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an FPGA, an ASIC, or some or all of these combinations .
- the functions of the first reception unit 410, the management unit 420, the second reception unit 430, the search unit 440, and the transmission unit 450 may be realized by a combination of software and hardware. That is, some of the functions of the first reception unit 410, the management unit 420, the second reception unit 430, the search unit 440, and the transmission unit 450 may be realized by dedicated hardware, and the rest may be realized by software.
- the processor 401 and the electronic circuit 409 are both processing circuits. That is, regardless of the configuration of the server device 400 shown in FIGS. 4 and 19, the operations of the first receiving unit 410, the management unit 420, the second receiving unit 430, the search unit 440, and the transmitting unit 450 are the same. Is performed by a processing circuit.
- 100 secret search system 101 network, 200 registration device, 201 processor, 202 memory, 203 auxiliary storage device, 204 input / output interface, 205 communication device, 209 electronic circuit, 210 input unit, 220 ciphertext generation unit, 230 index generation unit , 240 key generation unit, 250 distribution unit, 260 registration unit, 300 search device, 300a search device, 300b search device, 301 processor, 302 memory, 303 auxiliary storage device, 304 input / output interface, 305 communication device, 309 electronic circuit, 310 acquisition unit, 320 input unit, 330 encryption unit, 340 request unit, 350 decryption unit, 360 output unit, 400 server device, 401 processor, 402 memory, 403 auxiliary storage device, 404 Output interface, 405 communication device, 409 an electronic circuit, the first receiving section 410, 420 control section, 430 a second reception unit, 440 the search unit, 450 transmission unit, 460 database, 461 database, 462 database.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
登録装置(200)は、キーワードを登録鍵で暗号化して暗号化キーワードを生成し、暗号化キーワードと、対応する暗号文を識別する識別情報とを含む索引を生成し、登録鍵と検索鍵とから、変換鍵を生成し、複数の暗号文と索引と変換鍵とをサーバ装置(400)に登録する。検索装置(300)は、キーワードを暗号化して検索クエリを生成し、検索クエリをサーバ装置(400)に送信する。サーバ装置(400)は、検索クエリを登録した変換鍵で再暗号化して再暗号化キーワードを生成し、登録した索引を再暗号化キーワードで検索し、検索結果として暗号化キーワードが得られれば、索引から識別情報を取得し、登録した複数の暗号文の中から、識別情報によって識別される暗号文を抽出し、抽出した暗号文を検索装置(300)に送信する。
Description
本発明は、登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラムに関するものである。
特許文献1、特許文献2および特許文献3には、秘匿検索に関する技術が開示されている。
秘匿検索は、検索可能暗号とも呼ばれる。秘匿検索は、暗号化したままデータを検索できる暗号技術である。実際には、暗号化データそのものは検索されない。検索対象のデータから関連するキーワードが事前に抽出され、そのキーワードが検索できる特殊な暗号技術を使って暗号化される。そして、その暗号化キーワードに対して検索クエリで検索が行われる。検索クエリとは、暗号化された検索用のキーワードのことである。
秘匿検索には、共通鍵方式と公開鍵方式とがある。共通鍵方式では、共通鍵暗号技術が利用され、登録者および検索者が限定される。公開鍵方式では、公開鍵暗号技術が利用され、検索者は限定されるが、登録者は限定されない。登録者は暗号化データを登録するユーザであり、検索者は暗号化データを検索するユーザである。
秘匿検索には、タグ型と索引型とがある。タグ型では、暗号文であるデータに検索できる暗号化キーワードが付加される。1つの暗号文に複数のキーワードが紐付くため、検索が低速になる。索引型では、暗号化キーワードごとに、暗号文であるデータが関連付けられる。1つのキーワードに複数の暗号文が紐付くため、検索が高速になる。
近年、秘匿検索は、クラウドサービスにおいてサーバ管理者による盗聴から機密情報を守るためのセキュリティ技術として注目されている。様々なサービスに適用するために、高速に検索ができ、かつ、アクセス制御ができる秘匿検索技術が求められている。
共通鍵方式では、通常、高速な秘匿検索ができるが、アクセス制御ができない。公開鍵方式では、通常、アクセス制御ができるが、高速な秘匿検索ができない。
共通鍵方式では、通常、登録者と検索者とが互いに同じ秘密情報を共有する。非特許文献1には、秘密情報の共有コストと秘密情報の漏洩時の影響度とを下げるため、登録者と検索者とが同じ秘密情報を共有しない共通鍵方式が開示されている。
非特許文献1には、マルチユーザ型共有鍵方式がさらに開示されている。マルチユーザ型共有鍵方式では、検索が許可されるユーザと検索が許可されないユーザとを設定することができる。つまり、マルチユーザ型共有鍵方式では、互いに異なる秘密情報を持っている複数のユーザが同じキーワードで検索した場合に、あるユーザの検索ではヒットするが、別のユーザの検索ではヒットしない暗号化データを生成することが可能である。
R. A. Popa, N. Zeldovich, "Multi-Key Searchable Encryption", IACR Cryptology ePrint Archive: Report 2013/508
非特許文献1に記載の技術では、複数の鍵を使ってアクセス制御を達成しているが、方式がタグ型のため、共通鍵ベースとはいえ効率が悪い。
特許文献1、特許文献2および特許文献3に記載の技術では、信頼できる第三者を使ってアクセス制御を達成しているが、信頼できる第三者の存在の許容はユースケースに強く依存するため、汎用性が低い。
本発明は、アクセス制御ができる秘匿検索の高速化および汎用性の向上を目的とする。
本発明の一態様に係る登録装置は、
複数の暗号文のうち1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成し、生成した暗号化キーワードと、前記1つ以上の暗号文を識別する識別情報とを含む索引を生成する索引生成部と、
前記登録鍵と、検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから、前記検索クエリを再暗号化して再暗号化キーワードを生成し前記索引を前記再暗号化キーワードで検索するサーバ装置により代理人再暗号化に用いられる変換鍵を生成する鍵生成部と、
前記複数の暗号文と、前記索引生成部により生成された索引と、前記鍵生成部により生成された変換鍵とを前記サーバ装置に送信する登録部と
を備える。
複数の暗号文のうち1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成し、生成した暗号化キーワードと、前記1つ以上の暗号文を識別する識別情報とを含む索引を生成する索引生成部と、
前記登録鍵と、検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから、前記検索クエリを再暗号化して再暗号化キーワードを生成し前記索引を前記再暗号化キーワードで検索するサーバ装置により代理人再暗号化に用いられる変換鍵を生成する鍵生成部と、
前記複数の暗号文と、前記索引生成部により生成された索引と、前記鍵生成部により生成された変換鍵とを前記サーバ装置に送信する登録部と
を備える。
本発明の一態様に係るサーバ装置は、
複数の暗号文と、1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成する登録装置が生成した、前記暗号化キーワードと前記1つ以上の暗号文を識別する識別情報とを含む索引と、前記登録装置が前記登録鍵と検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから生成した、代理人再暗号化に用いられる変換鍵とを受信する第1受信部と、
前記第1受信部により受信された複数の暗号文と索引と変換鍵とをデータベースに登録する管理部と、
前記検索クエリを受信する第2受信部と、
前記第2受信部により受信された検索クエリを前記管理部により登録された変換鍵で再暗号化して再暗号化キーワードを生成し、前記管理部により登録された索引を前記再暗号化キーワードで検索し、検索結果として前記暗号化キーワードが得られれば、前記索引から前記識別情報を取得し、前記管理部により登録された複数の暗号文の中から、前記識別情報によって識別される暗号文を抽出する検索部と、
前記検索部により抽出された暗号文を前記検索装置に送信する送信部と
を備える。
複数の暗号文と、1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成する登録装置が生成した、前記暗号化キーワードと前記1つ以上の暗号文を識別する識別情報とを含む索引と、前記登録装置が前記登録鍵と検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから生成した、代理人再暗号化に用いられる変換鍵とを受信する第1受信部と、
前記第1受信部により受信された複数の暗号文と索引と変換鍵とをデータベースに登録する管理部と、
前記検索クエリを受信する第2受信部と、
前記第2受信部により受信された検索クエリを前記管理部により登録された変換鍵で再暗号化して再暗号化キーワードを生成し、前記管理部により登録された索引を前記再暗号化キーワードで検索し、検索結果として前記暗号化キーワードが得られれば、前記索引から前記識別情報を取得し、前記管理部により登録された複数の暗号文の中から、前記識別情報によって識別される暗号文を抽出する検索部と、
前記検索部により抽出された暗号文を前記検索装置に送信する送信部と
を備える。
本発明では、複数の鍵を使ってアクセス制御を達成しながら、方式に索引型を適用しているため、秘匿検索の高速化を達成できる。また、共通鍵ベース索引方式のほとんどを適用できるため、汎用性が高い。
以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態は、部分的に実施されても構わない。
実施の形態1.
本実施の形態について、図1から図16を用いて説明する。
本実施の形態について、図1から図16を用いて説明する。
***構成の説明***
図1を参照して、本実施の形態に係る秘匿検索システム100の構成を説明する。
図1を参照して、本実施の形態に係る秘匿検索システム100の構成を説明する。
秘匿検索システム100は、登録装置200と、検索装置300と、サーバ装置400とを備える。
秘匿検索システム100の各装置は、インターネット等のネットワーク101を介して互いに通信を行う。
図2を参照して、本実施の形態に係る登録装置200の構成を説明する。
登録装置200は、コンピュータである。登録装置200は、具体的には、登録者によって利用されるPC等の端末である。「PC」は、Personal Computerの略語である。登録装置200は、プロセッサ201を備えるとともに、メモリ202、補助記憶装置203、入出力インタフェース204および通信装置205といった他のハードウェアを備える。プロセッサ201は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
登録装置200は、機能要素として、入力部210と、暗号文生成部220と、索引生成部230と、鍵生成部240と、配布部250と、登録部260とを備える。入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能は、ソフトウェアにより実現される。具体的には、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能は、登録プログラムにより実現される。登録プログラムは、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260により行われる手順をそれぞれ入力手順、暗号文生成手順、索引生成手順、鍵生成手順、配布手順および登録手順としてコンピュータに実行させるプログラムである。登録プログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
プロセッサ201は、登録プログラムを実行する装置である。プロセッサ201は、例えば、CPUである。「CPU」は、Central Processing Unitの略語である。
メモリ202は、登録プログラムを一時的に記憶する装置である。メモリ202は、例えば、RAM、フラッシュメモリまたはこれらの組み合わせである。「RAM」は、Random Access Memoryの略語である。
補助記憶装置203は、登録プログラムをあらかじめ記憶する装置である。補助記憶装置203は、例えば、HDD、フラッシュメモリまたはこれらの組み合わせである。「HDD」は、Hard Disk Driveの略語である。
入出力インタフェース204は、図示していない入力機器およびディスプレイが接続されるポートである。入出力インタフェース204は、例えば、USB端子である。「USB」は、Universal Serial Busの略語である。入力機器は、登録プログラムへのデータの入力のために登録者により操作される機器である。入力機器は、例えば、マウス、キーボード、タッチパネル、または、これらのうちいくつか、もしくは、すべての組み合わせである。ディスプレイは、登録プログラムから出力されるデータを画面に表示する機器である。ディスプレイは、例えば、LCDである。「LCD」は、Liquid Crystal Displayの略語である。
通信装置205は、登録プログラムに入力されるデータを受信するレシーバと、登録プログラムから出力されるデータを送信するトランスミッタとを備える。通信装置205は、例えば、通信チップまたはNICである。「NIC」は、Network Interface Cardの略語である。
登録プログラムは、補助記憶装置203からメモリ202にロードされ、メモリ202からプロセッサ201に読み込まれ、プロセッサ201によって実行される。補助記憶装置203には、登録プログラムだけでなく、OSも記憶されている。「OS」は、Operating Systemの略語である。プロセッサ201は、OSを実行しながら、登録プログラムを実行する。なお、登録プログラムの一部または全部がOSに組み込まれていてもよい。登録プログラムおよびOSは、メモリ202にあらかじめ記憶されていてもよく、その場合、補助記憶装置203を省略することができる。
登録装置200は、プロセッサ201を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、登録プログラムの実行を分担する。それぞれのプロセッサは、例えば、CPUである。
登録プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、補助記憶装置203、メモリ202、または、プロセッサ201内のレジスタまたはキャッシュメモリに記憶される。
登録装置200は、1台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。登録装置200が複数台のコンピュータで構成されている場合は、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能が、各コンピュータに分散されて実現されてもよい。
図3を参照して、本実施の形態に係る検索装置300の構成を説明する。
検索装置300は、コンピュータである。検索装置300は、具体的には、検索者によって利用されるPC等の端末である。検索装置300は、プロセッサ301を備えるとともに、メモリ302、補助記憶装置303、入出力インタフェース304および通信装置305といった他のハードウェアを備える。プロセッサ301は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
検索装置300は、機能要素として、取得部310と、入力部320と、暗号化部330と、要求部340と、復号部350と、出力部360とを備える。取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能は、ソフトウェアにより実現される。具体的には、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能は、検索プログラムにより実現される。検索プログラムは、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360により行われる手順をそれぞれ取得手順、入力手順、暗号化手順、要求手順、復号手順および出力手順としてコンピュータに実行させるプログラムである。検索プログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
プロセッサ301は、検索プログラムを実行する装置である。プロセッサ301は、例えば、CPUである。
メモリ302は、検索プログラムを一時的に記憶する装置である。メモリ302は、例えば、RAM、フラッシュメモリまたはこれらの組み合わせである。
補助記憶装置303は、検索プログラムをあらかじめ記憶する装置である。補助記憶装置303は、例えば、HDD、フラッシュメモリまたはこれらの組み合わせである。
入出力インタフェース304は、図示していない入力機器およびディスプレイが接続されるポートである。入出力インタフェース304は、例えば、USB端子である。入力機器は、検索プログラムへのデータの入力のために検索者により操作される機器である。入力機器は、例えば、マウス、キーボード、タッチパネル、または、これらのうちいくつか、もしくは、すべての組み合わせである。ディスプレイは、検索プログラムから出力されるデータを画面に表示する機器である。ディスプレイは、例えば、LCDである。
通信装置305は、検索プログラムに入力されるデータを受信するレシーバと、検索プログラムから出力されるデータを送信するトランスミッタとを備える。通信装置305は、例えば、通信チップまたはNICである。
検索プログラムは、補助記憶装置303からメモリ302にロードされ、メモリ302からプロセッサ301に読み込まれ、プロセッサ301によって実行される。補助記憶装置303には、検索プログラムだけでなく、OSも記憶されている。プロセッサ301は、OSを実行しながら、検索プログラムを実行する。なお、検索プログラムの一部または全部がOSに組み込まれていてもよい。検索プログラムおよびOSは、メモリ302にあらかじめ記憶されていてもよく、その場合、補助記憶装置303を省略することができる。
検索装置300は、プロセッサ301を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、検索プログラムの実行を分担する。それぞれのプロセッサは、例えば、CPUである。
検索プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、補助記憶装置303、メモリ302、または、プロセッサ301内のレジスタまたはキャッシュメモリに記憶される。
検索装置300は、1台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。検索装置300が複数台のコンピュータで構成されている場合は、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能が、各コンピュータに分散されて実現されてもよい。
図4を参照して、本実施の形態に係るサーバ装置400の構成を説明する。
サーバ装置400は、コンピュータである。サーバ装置400は、具体的には、クラウドサーバである。サーバ装置400は、プロセッサ401を備えるとともに、メモリ402、補助記憶装置403、入出力インタフェース404および通信装置405といった他のハードウェアを備える。プロセッサ401は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
サーバ装置400は、機能要素として、第1受信部410と、管理部420と、第2受信部430と、検索部440と、送信部450とを備える。第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能は、ソフトウェアにより実現される。具体的には、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能は、サーバプログラムにより実現される。サーバプログラムは、第1受信部410、管理部420、第2受信部430、検索部440および送信部450により行われる手順をそれぞれ第1手順、管理手順、第2手順、検索手順および送信手順としてコンピュータに実行させるプログラムである。サーバプログラムは、コンピュータ読取可能な媒体に記録されて提供されてもよいし、記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
プロセッサ401は、サーバプログラムを実行する装置である。プロセッサ401は、例えば、CPUである。
メモリ402は、サーバプログラムを一時的に記憶する装置である。メモリ402は、例えば、RAM、フラッシュメモリまたはこれらの組み合わせである。
補助記憶装置403は、サーバプログラムをあらかじめ記憶する装置である。補助記憶装置403は、例えば、HDD、フラッシュメモリまたはこれらの組み合わせである。
補助記憶装置403には、データベース460が構築される。なお、メモリ402にデータベース460が構築されていてもよい。
入出力インタフェース404は、図示していない入力機器およびディスプレイが接続されるポートである。入出力インタフェース404は、例えば、USB端子である。入力機器は、サーバプログラムへのデータの入力のためにサーバ管理者により操作される機器である。入力機器は、例えば、マウス、キーボード、タッチパネル、または、これらのうちいくつか、もしくは、すべての組み合わせである。ディスプレイは、サーバプログラムから出力されるデータを画面に表示する機器である。ディスプレイは、例えば、LCDである。
通信装置405は、サーバプログラムに入力されるデータを受信するレシーバと、サーバプログラムから出力されるデータを送信するトランスミッタとを備える。通信装置405は、例えば、通信チップまたはNICである。
サーバプログラムは、補助記憶装置403からメモリ402にロードされ、メモリ402からプロセッサ401に読み込まれ、プロセッサ401によって実行される。補助記憶装置403には、サーバプログラムだけでなく、OSも記憶されている。プロセッサ401は、OSを実行しながら、サーバプログラムを実行する。なお、サーバプログラムの一部または全部がOSに組み込まれていてもよい。サーバプログラムおよびOSは、メモリ402にあらかじめ記憶されていてもよく、その場合、補助記憶装置403を省略することができる。
サーバ装置400は、プロセッサ401を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、サーバプログラムの実行を分担する。それぞれのプロセッサは、例えば、CPUである。
サーバプログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、補助記憶装置403、メモリ402、または、プロセッサ401内のレジスタまたはキャッシュメモリに記憶される。
サーバ装置400は、1台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。サーバ装置400が複数台のコンピュータで構成されている場合は、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能が、各コンピュータに分散されて実現されてもよい。
***動作の説明***
図5から図14を参照して、本実施の形態に係る秘匿検索システム100の動作を説明する。秘匿検索システム100の動作は、本実施の形態に係る秘匿検索方法に相当する。
図5から図14を参照して、本実施の形態に係る秘匿検索システム100の動作を説明する。秘匿検索システム100の動作は、本実施の形態に係る秘匿検索方法に相当する。
図5は、登録装置200が複数の暗号文と索引とをサーバ装置400に登録する動作を示している。
ステップS11において、入力部210は、複数の平文の入力を受ける。具体的には、入力部210は、入出力インタフェース204を介して、平文D1,D2,D3,・・・の入力を受ける。本実施の形態では、入力部210は、それぞれの平文に対してどの検索者にアクセスを許可するかを示す属性集合S1,S2,・・・の入力も受ける。
ステップS12において、暗号文生成部220は、入力部210に入力された複数の平文を暗号鍵で暗号化して複数の暗号文を生成する。具体的には、暗号文生成部220は、平文D1を暗号鍵EK1で暗号化し、暗号化によって得られたデータを暗号文C1としてメモリ202に書き込む。暗号文生成部220は、平文D2を暗号鍵EK1で暗号化し、暗号化によって得られたデータを暗号文C2としてメモリ202に書き込む。暗号文生成部220は、平文D3を暗号鍵EK2で暗号化し、暗号化によって得られたデータを暗号文C3としてメモリ202に書き込む。各暗号鍵は、補助記憶装置203にあらかじめ記憶されているか、入出力インタフェース204を介して適宜入力される。どの平文の暗号化にどの暗号鍵を用いるかは、あらかじめ指定されるか、平文の入力時または暗号鍵の入力時に指定される。本実施の形態では、どの平文の暗号化にどの暗号鍵を用いるかは、ステップS11で入力された属性集合によって決定される。
ステップS13において、入力部210は、入力部210に入力された複数の平文のうち1つ以上の平文に対応するキーワードの入力を受ける。すなわち、入力部210は、入力部210に入力された複数の暗号文のうち1つ以上の暗号文に対応するキーワードの入力を受ける。具体的には、入力部210は、入出力インタフェース204を介して、キーワードW1,W2,W3,・・・の入力を受ける。キーワードW1は、平文D1に対応する。すなわち、キーワードW1は、暗号文C1に対応する。キーワードW2は、平文D1および平文D2に対応する。すなわち、キーワードW2は、暗号文C1および暗号文C2に対応する。キーワードW3は、平文D3に対応する。すなわち、キーワードW3は、暗号文C3に対応する。各キーワードは、平文に対して手動で設定されてもよいし、平文から自動で抽出されてもよい。
ステップS14において、索引生成部230は、入力部210に入力されたキーワードを登録鍵で暗号化して暗号化キーワードを生成する。具体的には、索引生成部230は、キーワードW1のハッシュ値と、あらかじめ定められた値gとをペアリング関数eに与え、ペアリング関数eより得られた値を底とし、登録鍵SK1を指数とする、べき乗を算出し、算出結果を暗号化キーワードV1としてメモリ202に書き込む。索引生成部230は、キーワードW2のハッシュ値と、値gとをペアリング関数eに与え、ペアリング関数eより得られた値を底とし、登録鍵SK1を指数とする、べき乗を算出し、算出結果を暗号化キーワードV2としてメモリ202に書き込む。索引生成部230は、キーワードW2のハッシュ値と、値gとをペアリング関数eに与え、ペアリング関数eより得られた値を底とし、登録鍵SK2を指数とする、べき乗を算出し、算出結果を暗号化キーワードV3としてメモリ202に書き込む。索引生成部230は、キーワードW3のハッシュ値と、値gとをペアリング関数eに与え、ペアリング関数eより得られた値を底とし、登録鍵SK2を指数とする、べき乗を算出し、算出結果を暗号化キーワードV4としてメモリ202に書き込む。各登録鍵は、各暗号鍵と対になっており、各暗号鍵と同じように、補助記憶装置203にあらかじめ記憶されているか、入出力インタフェース204を介して適宜入力される。どのキーワードの暗号化にどの登録鍵を用いるかは、キーワードに対応する平文がどの暗号鍵で暗号化されたかによって決定される。
データのアクセス権限情報と、対応する暗号鍵および登録鍵との例を図20に示す。この例では、平文D1と平文D2とが属性集合S1に対応し、平文D3が属性集合S2に対応しているとする。すなわち、平文D1および平文D2へのアクセスが属性集合S1に属する検索者Paおよび検索者Pbに許可され、平文D3へのアクセスが属性集合S2に属する検索者Pbのみに許可されているとする。ステップS12では、属性集合S1と属性集合S2とに対応した暗号鍵および登録鍵のペアとして、それぞれ暗号鍵EK1および登録鍵SK1のペアと暗号鍵EK2および登録鍵SK2のペアとが生成される。暗号鍵EK1および登録鍵SK1のペアは、属性集合S1と対応付けて保管される。暗号鍵EK2および登録鍵SK2のペアは、属性集合S2と対応付けて保管される。すでに同じ属性集合を使って暗号鍵および登録鍵のペアが登録されていた場合は、暗号鍵および登録鍵のペアが生成される代わりに、保管されている暗号鍵および登録鍵が読み出される。
ステップS15において、索引生成部230は、ステップS14で生成した暗号化キーワードと、対応する1つ以上の暗号文を識別する識別情報とを含む索引を生成する。具体的には、索引生成部230は、図6に示すように、暗号化キーワードV1と、平文D1の識別子との組み合わせを1つのエントリとして含み、暗号化キーワードV2と、平文D1および平文D2の識別子との組み合わせを別のエントリとして含む索引を生成する。索引生成部230は、図7に示すように、暗号化キーワードV3と、平文D3の識別子との組み合わせを1つのエントリとして含み、暗号化キーワードV4と、平文D3の識別子との組み合わせを別のエントリとして含む索引を生成する。なお、図6および図7に示した索引の構造をそのまま適用することもできるが、頻度分析に対する安全性を確保するために、後述する、図15および図16に示すような索引を適用することが望ましい。
ステップS16において、登録部260は、暗号文生成部220により生成された複数の暗号文と、索引生成部230により生成された索引とをサーバ装置400に送信する。具体的には、登録部260は、図14に示すように、暗号文C1および暗号文C2と、図6の索引とをまとめてサーバ装置400に送信する。登録部260は、暗号文C3と、図7の索引とをまとめてサーバ装置400に送信する。
図8は、サーバ装置400が複数の暗号文と索引とをデータベース460に登録する動作を示している。
ステップS21において、第1受信部410は、登録装置200から送信された複数の暗号文と索引とを受信する。具体的には、第1受信部410は、図14に示すように、暗号文C1および暗号文C2と、図6の索引とをまとめて登録装置200から受信する。第1受信部410は、暗号文C3と、図7の索引とをまとめて登録装置200から受信する。
ステップS22において、管理部420は、第1受信部410により受信された複数の暗号文と索引とをデータベース460に登録する。具体的には、管理部420は、図14に示すように、暗号文C1および暗号文C2と、図6の索引とをまとめてデータベース461に登録する。管理部420は、暗号文C3と、図7の索引とをまとめてデータベース461に登録する。なお、データベース460は、本実施の形態のように、暗号文と索引のデータベース461と、後述する変換鍵のデータベース462とに分かれていることが望ましいが、1つに統合されていてもよい。
図9は、登録装置200が変換鍵をサーバ装置400に登録するとともに検索鍵を検索装置300に配布する動作を示している。
ステップS31において、鍵生成部240は、登録鍵と、検索装置300により暗号化に用いられる検索鍵とから、サーバ装置400により代理人再暗号化に用いられる変換鍵を生成する。具体的には、鍵生成部240は、前述した値gを底とし、登録鍵SK1を検索鍵Kaで割った値を指数とする、べき乗を算出し、算出結果を変換鍵K1aとしてメモリ202に書き込む。鍵生成部240は、値gを底とし、登録鍵SK1を検索鍵Kbで割った値を指数とする、べき乗を算出し、算出結果を変換鍵K1bとしてメモリ202に書き込む。鍵生成部240は、値gを底とし、登録鍵SK2を検索鍵Kbで割った値を指数とする、べき乗を算出し、算出結果を変換鍵K2bとしてメモリ202に書き込む。各検索鍵は、補助記憶装置203にあらかじめ記憶されているか、入出力インタフェース204を介して適宜入力される。どの登録鍵にどの検索鍵を組み合わせるかは、あらかじめ指定されるか、登録鍵の入力時または検索鍵の入力時に指定される。ある登録鍵と、ある検索鍵との組み合わせから生成された変換鍵を用いれば、その検索鍵で暗号化されたキーワードを、復号することなく、その登録鍵で暗号化されたキーワードに変換することができる。図20の例では、登録鍵SK1で生成された索引は属性集合S1に含まれる検索者Paと検索者Pbとが検索できる。そのため、検索者Paに配布予定の検索鍵Kaと、検索者Pbに配布予定の検索鍵Kbとのそれぞれでの検索が可能となるように、それぞれに対応する変換鍵K1aおよび変換鍵K1bが生成される。登録鍵SK2で生成された索引は属性集合S2に含まれる検索者Pbのみが検索できる。そのため、検索者Pbに配布予定の検索鍵Kbでの検索が可能となるように、検索鍵Kbに対応する変換鍵K2bが生成される。
ステップS32において、登録部260は、鍵生成部240により生成された変換鍵をサーバ装置400に送信する。具体的には、登録部260は、図14に示すように、変換鍵K1a,K1b,K2b,・・・をサーバ装置400に送信する。
ステップS33において、配布部250は、鍵生成部240により変換鍵の生成に用いられた検索鍵を検索装置300に送信する。具体的には、配布部250は、図14に示すように、検索鍵Kaを、検索者Paの検索装置300である検索装置300aに送信する。配布部250は、検索鍵Kbを、検索者Pbの検索装置300である検索装置300bに送信する。検索者に配布される検索鍵の例を図21に示す。この例では、検索者Paには検索鍵Kaが配布され、検索者Pbには検索鍵Kbが配布される。このように、検索鍵は検索者ごとに異なる。
ステップS33の処理は、ステップS31の処理より前に行われてもよい。
図10は、サーバ装置400が変換鍵をデータベース460に登録する動作を示している。
ステップS41において、第1受信部410は、登録装置200から送信された変換鍵を受信する。具体的には、第1受信部410は、図14に示すように、変換鍵K1a,K1b,K2b,・・・を登録装置200から受信する。
ステップS42において、管理部420は、第1受信部410により受信された変換鍵をデータベース460に登録する。具体的には、管理部420は、図14に示すように、変換鍵K1a,K1b,K2b,・・・をデータベース462に登録する。前述したように、本実施の形態では、データベース460が、暗号文と索引のデータベース461と、変換鍵のデータベース462とに分かれている。
図11は、検索装置300が検索クエリをサーバ装置400に送付して検索を要求する動作を示している。
ステップS51において、取得部310は、登録装置200から送信された検索鍵を受信する。具体的には、検索装置300aの取得部310は、図14に示すように、検索鍵Kaを登録装置200から受信する。あるいは、検索装置300bの取得部310は、検索鍵Kbを登録装置200から受信する。
ステップS52において、入力部320は、検索に用いられるキーワードの入力を受ける。具体的には、入力部320は、入出力インタフェース304または通信装置305を介して、キーワードwの入力を受ける。
ステップS53において、暗号化部330は、入力部320に入力されたキーワードを取得部310により受信された検索鍵で暗号化して検索クエリを生成する。具体的には、検索装置300aの暗号化部330は、キーワードwのハッシュ値を底とし、検索鍵Kaを指数とする、べき乗を算出し、算出結果を検索クエリQとしてメモリ302に書き込む。あるいは、検索装置300bの暗号化部330は、キーワードwのハッシュ値を底とし、検索鍵Kbを指数とする、べき乗を算出し、算出結果を検索クエリQとしてメモリ302に書き込む。
ステップS54において、要求部340は、暗号化部330により生成された検索クエリをサーバ装置400に送信して検索を要求する。具体的には、検索装置300aまたは検索装置300bの要求部340は、図14に示すように、検索クエリQをサーバ装置400に送信する。
図12は、サーバ装置400が検索を行う動作を示している。
ステップS61において、第2受信部430は、検索装置300から送信された検索クエリを受信する。具体的には、第2受信部430は、図14に示すように、検索クエリQを検索装置300aまたは検索装置300bから受信する。
ステップS62において、検索部440は、第2受信部430により受信された検索クエリを管理部420により登録された変換鍵で再暗号化して再暗号化キーワードを生成する。具体的には、検索部440は、図14に示すように、検索装置300aまたは検索装置300bから送信された検索クエリQをデータベース462に登録されている変換鍵K1a,K1b,K2b,・・・で再暗号化し、代理人再暗号化によって得られたデータを再暗号化キーワードvとしてメモリ402に書き込む。代理人再暗号化は、変換鍵K1aの場合、検索クエリQと変換鍵K1aとをペアリング関数eに与え、ペアリング関数eより得られた値のハッシュ値を算出することで行われる。代理人再暗号化は、変換鍵K1bの場合、検索クエリQと変換鍵K1bとをペアリング関数eに与え、ペアリング関数eより得られた値のハッシュ値を算出することで行われる。代理人再暗号化は、変換鍵K2bの場合、検索クエリQと変換鍵K2bとをペアリング関数eに与え、ペアリング関数eより得られた値のハッシュ値を算出することで行われる。
ステップS63において、検索部440は、管理部420により登録された索引をステップS62で生成した再暗号化キーワードで検索する。具体的には、検索部440は、図14に示すように、データベース461に登録されている図6の索引から、再暗号化キーワードvと一致する暗号化キーワードを含むエントリを抽出する。検索部440は、データベース461に登録されている図7の索引から、再暗号化キーワードvと一致する暗号化キーワードを含むエントリを抽出する。
検索結果として暗号化キーワードが得られなければ、検索の動作が終了する。検索結果として暗号化キーワードが得られれば、ステップS64の処理が行われる。再暗号化キーワードvが暗号化キーワードV1と一致する場合、図6の索引から、検索結果として暗号化キーワードV1を含むエントリが抽出される。再暗号化キーワードvが暗号化キーワードV2と一致する場合、図6の索引から、検索結果として暗号化キーワードV2を含むエントリが抽出される。再暗号化キーワードvが暗号化キーワードV3と一致する場合、図7の索引から、検索結果として暗号化キーワードV3を含むエントリが抽出される。再暗号化キーワードvが暗号化キーワードV4と一致する場合、図7の索引から、検索結果として暗号化キーワードV4を含むエントリが抽出される。
ステップS64において、検索部440は、ステップS63で検索結果として得られた暗号化キーワードを含む索引から識別情報を取得する。そして、検索部440は、管理部420により登録された複数の暗号文の中から、取得した識別情報によって識別される暗号文を抽出する。具体的には、検索部440は、図14に示すように、検索結果として暗号化キーワードV1を含むエントリを抽出した場合、そのエントリに平文D1の識別子が含まれているため、データベース461に登録されている暗号文C1を抽出する。検索部440は、検索結果として暗号化キーワードV2を含むエントリを抽出した場合、そのエントリに平文D1および平文D2の識別子が含まれているため、データベース461に登録されている暗号文C1および暗号文C2を抽出する。検索部440は、検索結果として暗号化キーワードV3を含むエントリを抽出した場合、そのエントリに平文D3の識別子が含まれているため、データベース461に登録されている暗号文C3を抽出する。検索部440は、検索結果として暗号化キーワードV4を含むエントリを抽出した場合、そのエントリに平文D3の識別子が含まれているため、データベース461に登録されている暗号文C3を抽出する。
送信部450は、検索部440により抽出された暗号文を検索装置300に送信する。具体的には、送信部450は、図14に示すように、キーワードwがキーワードW1と一致する場合、検索装置300aから送信された検索クエリQに対しては、検索結果として暗号文C1が抽出されるため、暗号文C1を検索装置300aに送信する。送信部450は、キーワードwがキーワードW2と一致する場合、検索装置300aから送信された検索クエリQに対しては、検索結果として暗号文C1および暗号文C2が抽出されるため、暗号文C1および暗号文C2を検索装置300aに送信する。送信部450は、キーワードwがキーワードW3と一致する場合、検索装置300aから送信された検索クエリQに対しては、検索結果として暗号文が抽出されないため、暗号文を検索装置300aに送信しない。あるいは、送信部450は、キーワードwがキーワードW1と一致する場合、検索装置300bから送信された検索クエリQに対しては、検索結果として暗号文C1が抽出されるため、暗号文C1を検索装置300bに送信する。送信部450は、キーワードwがキーワードW2と一致する場合、検索装置300bから送信された検索クエリQに対しては、検索結果として暗号文C1および暗号文C2が抽出されるため、暗号文C1および暗号文C2を検索装置300bに送信する。送信部450は、キーワードwがキーワードW3と一致する場合、検索装置300bから送信された検索クエリQに対しては、検索結果として暗号文C3が抽出されるため、暗号文C3を検索装置300bに送信する。
図13は、検索装置300が検索結果を取得する動作を示している。
ステップS71において、要求部340は、サーバ装置400から送信された暗号文を受信する。具体的には、検索装置300aまたは検索装置300bの要求部340は、キーワードwがキーワードW1と一致する場合、暗号文C1をサーバ装置400から受信する。検索装置300aまたは検索装置300bの要求部340は、キーワードwがキーワードW2と一致する場合、暗号文C1および暗号文C2をサーバ装置400から受信する。検索装置300bの要求部340は、キーワードwがキーワードW3と一致する場合、暗号文C3をサーバ装置400から受信する。
ステップS72において、復号部350は、要求部340により受信された暗号文を暗号鍵で復号する。具体的には、検索装置300aまたは検索装置300bの復号部350は、ステップS71で暗号文C1が受信されていれば、暗号文C1を暗号鍵EK1で復号し、復号によって得られたデータを平文D1としてメモリ302に書き込む。検索装置300aまたは検索装置300bの復号部350は、ステップS71で暗号文C2が受信されていれば、暗号文C2を暗号鍵EK1で復号し、復号によって得られたデータを平文D2としてメモリ302に書き込む。検索装置300bの復号部350は、ステップS71で暗号文C3が受信されていれば、暗号文C3を暗号鍵EK2で復号し、復号によって得られたデータを平文D3としてメモリ302に書き込む。各暗号鍵は、補助記憶装置303にあらかじめ記憶されているか、入出力インタフェース304または通信装置305を介して適宜入力される。本実施の形態では、ステップS12で生成された暗号鍵が、ステップS12以後に、対応する検索者に配布される。図20の例では、暗号鍵EK1は検索者Paおよび検索者Pbに送付され、暗号鍵EK2は検索者Pbのみに送付される。すなわち、暗号鍵EK1は登録装置200から検索装置300aおよび検索装置300bに送信され、暗号鍵EK2は登録装置200から検索装置300bのみに送信される。登録装置200から送信された暗号鍵EK1は、ステップS72以前に、検索装置300aおよび検索装置300bで受信される。登録装置200から送信された暗号鍵EK2は、ステップS72以前に、検索装置300bで受信される。
ステップS73において、出力部360は、復号部350により得られた平文を出力する。具体的には、検索装置300aまたは検索装置300bの出力部360は、ステップS72で平文D1が得られていれば、入出力インタフェース204を介して、平文D1を画面に表示するか、ファイルに出力する。検索装置300aまたは検索装置300bの出力部360は、ステップS72で平文D2が得られていれば、入出力インタフェース204を介して、平文D2を画面に表示するか、ファイルに出力する。検索装置300bの出力部360は、ステップS72で平文D3が得られていれば、入出力インタフェース204を介して、平文D3を画面に表示するか、ファイルに出力する。
図15を参照して、より具体的な索引の生成のしかたを説明する。
ステップS14およびステップS15において、登録装置200の索引生成部230は、入力部210に入力されたキーワードを登録鍵で暗号化して得られた結果データに対し、第1変換処理と第2変換処理とを別々に実行する。索引生成部230は、第1変換処理を実行して得られた第1変換データを暗号化キーワードとして利用する。索引生成部230は、第2変換処理を実行して得られた第2変換データを暗号文識別子で符号化して識別情報を生成する。暗号文識別子は、入力部210に入力されたキーワードに対応する暗号文の組み合わせを一意に表すデータである。
本実施の形態では、第1変換処理は、結果データに第1値を連結し、第1値を連結したデータのハッシュ値を第1変換データとして算出する処理である。第2変換処理は、結果データに第1値とは異なる第2値を連結し、第2値を連結したデータのハッシュ値を第2変換データとして算出する処理である。
なお、第1変換処理と第2変換処理は、互いに異なる処理であればよく、種々の変形例が実施可能である。1つの例において、第1変換処理は、結果データを第1ハッシュ関数によってハッシュ値である第1変換データに変換する処理である。第2変換処理は、結果データを第1ハッシュ関数とは異なる第2ハッシュ関数によってハッシュ値である第2変換データに変換する処理である。
本実施の形態では、第2変換データの符号化は、第2変換データと暗号文識別子との排他的論理和を識別情報として算出することで行われる。
以下の記号を定義する。
λ:セキュリティパラメータ
W:登録時のキーワード
w:検索時のキーワード
D:平文
G1,G2,GT:巡回群
H1,H2:ハッシュ関数
e:ペアリング関数
λ:セキュリティパラメータ
W:登録時のキーワード
w:検索時のキーワード
D:平文
G1,G2,GT:巡回群
H1,H2:ハッシュ関数
e:ペアリング関数
G1,G2,GTともに大きな素数pを位数として持つ。G2の生成元はgである。つまり、gx≠1(1≦x≦p-1)かつgp=1である。
ハッシュ関数H1,H2は、以下のような関数である。
H1:{0,1}*→G1({0,1}*は任意のビット列)
H2:{0,1}*→{0,1}λ
H1:{0,1}*→G1({0,1}*は任意のビット列)
H2:{0,1}*→{0,1}λ
ペアリング関数eは、以下のような関数である。
e:G1×G2→GT
e(H(w)x,gy)=e(H(w),g)xyが成立する。
e:G1×G2→GT
e(H(w)x,gy)=e(H(w),g)xyが成立する。
具体的な索引の生成の手順は、以下のとおりである。
1.平文D1,・・・,Dnから相異なるキーワードW1,・・・,WLを抽出する。Lは正の整数である。
2.鍵sk_Sに対応する索引ind_S={(キーワード,識別子)}を生成する。ただし、このSは、平文D1,・・・,Dnへのアクセスが許可される検索者を示す属性情報の集合を意味する。例えば、検索者Paおよび検索者Pbに対して平文D1,・・・,Dnへのアクセスが許可されている場合、S={Pa,Pb}である。この場合、図20の例を用いると、S=S1、sk_S=SK1である。
3.各キーワードに対応する識別子をベクトルで表現する。例えば、平文数n=5、ハッシュ関数H2の出力ビット長λ=10のとき、キーワードW1に平文D1、平文D3および平文D5が対応することは、
(1,0,1,0,1,0,0,0,0,0)
と表現される。キーワードWLに平文D2および平文D3が対応することは、
(0,1,1,0,0,0,0,0,0,0)
と表現される。すなわち、各ベクトルの順番がヒットする平文の識別子と対応しており、平文D1、平文D3および平文D5の識別子がヒットする場合は、ベクトルの1番目、3番目および5番目の成分が1となり、それ以外の成分がすべて0になる。このとき、ind_S={(W1,(1,0,1,0,1,0,0,0,0,0)),・・・,(WL,(0,1,1,0,0,0,0,0,0,0))}が構成される。
4.各Wi(1≦i≦L)に対して、ペアリング関数eとハッシュ関数H1,H2とを用いて、以下のt{i,0}およびt{i,1}を計算する。
t{i,0}=H2(e(H1(Wi),gsk_S)||0)
t{i,1}=H2(e(H1(Wi),gsk_S)||1)
「||」は連結を表す。t{i,0}の計算は、第1変換処理に相当する。t{i,1}の計算は、第2変換処理に相当する。この例では、第1値を0、第2値を1としている。なお、ハッシュ関数H1とハッシュ関数H2は同じ関数でもよい。
5.各i(1≦i≦L)に対して、t{i,1}のハッシュ値をベクトル表現にする。例えば、t{1,1}=1010101010であれば、これは、
(1,0,1,0,1,0,1,0,1,0)
と表現される。t{L,1}=1111100000であれば、これは、
(1,1,1,1,1,0,0,0,0,0)
と表現される。
6.各Wi(1≦i≦L)の識別子に対して、ベクトル表現されたt{i,1}と各成分との排他的論理和を計算する。例えば、W1について、
(1,0,1,0,1,0,0,0,0,0)+(1,0,1,0,1,0,1,0,1,0)=(0,0,0,0,0,0,1,0,1,0)
が計算される。この計算されたベクトルをT{1,1}と定義する。WLについて、
(0,1,1,0,0,0,0,0,0,0)+(1,1,1,1,1,0,0,0,0,0)=(1,0,0,1,1,0,0,0,0,0)
が計算される。この計算されたベクトルをT{L,1}と定義する。
7.ind_Sを図15に示すように更新し、IND_S=(ind_S,S)を出力する。
1.平文D1,・・・,Dnから相異なるキーワードW1,・・・,WLを抽出する。Lは正の整数である。
2.鍵sk_Sに対応する索引ind_S={(キーワード,識別子)}を生成する。ただし、このSは、平文D1,・・・,Dnへのアクセスが許可される検索者を示す属性情報の集合を意味する。例えば、検索者Paおよび検索者Pbに対して平文D1,・・・,Dnへのアクセスが許可されている場合、S={Pa,Pb}である。この場合、図20の例を用いると、S=S1、sk_S=SK1である。
3.各キーワードに対応する識別子をベクトルで表現する。例えば、平文数n=5、ハッシュ関数H2の出力ビット長λ=10のとき、キーワードW1に平文D1、平文D3および平文D5が対応することは、
(1,0,1,0,1,0,0,0,0,0)
と表現される。キーワードWLに平文D2および平文D3が対応することは、
(0,1,1,0,0,0,0,0,0,0)
と表現される。すなわち、各ベクトルの順番がヒットする平文の識別子と対応しており、平文D1、平文D3および平文D5の識別子がヒットする場合は、ベクトルの1番目、3番目および5番目の成分が1となり、それ以外の成分がすべて0になる。このとき、ind_S={(W1,(1,0,1,0,1,0,0,0,0,0)),・・・,(WL,(0,1,1,0,0,0,0,0,0,0))}が構成される。
4.各Wi(1≦i≦L)に対して、ペアリング関数eとハッシュ関数H1,H2とを用いて、以下のt{i,0}およびt{i,1}を計算する。
t{i,0}=H2(e(H1(Wi),gsk_S)||0)
t{i,1}=H2(e(H1(Wi),gsk_S)||1)
「||」は連結を表す。t{i,0}の計算は、第1変換処理に相当する。t{i,1}の計算は、第2変換処理に相当する。この例では、第1値を0、第2値を1としている。なお、ハッシュ関数H1とハッシュ関数H2は同じ関数でもよい。
5.各i(1≦i≦L)に対して、t{i,1}のハッシュ値をベクトル表現にする。例えば、t{1,1}=1010101010であれば、これは、
(1,0,1,0,1,0,1,0,1,0)
と表現される。t{L,1}=1111100000であれば、これは、
(1,1,1,1,1,0,0,0,0,0)
と表現される。
6.各Wi(1≦i≦L)の識別子に対して、ベクトル表現されたt{i,1}と各成分との排他的論理和を計算する。例えば、W1について、
(1,0,1,0,1,0,0,0,0,0)+(1,0,1,0,1,0,1,0,1,0)=(0,0,0,0,0,0,1,0,1,0)
が計算される。この計算されたベクトルをT{1,1}と定義する。WLについて、
(0,1,1,0,0,0,0,0,0,0)+(1,1,1,1,1,0,0,0,0,0)=(1,0,0,1,1,0,0,0,0,0)
が計算される。この計算されたベクトルをT{L,1}と定義する。
7.ind_Sを図15に示すように更新し、IND_S=(ind_S,S)を出力する。
図16を参照して、上述した索引の生成のしかたに対応する、索引の検索のしかたを説明する。
ステップS62からステップS64において、サーバ装置400の検索部440は、検索装置300から送信された検索クエリを再暗号化して得られた結果データに対し、第1変換処理と第2変換処理とを別々に実行する。検索部440は、第1変換処理を実行して得られた第1変換データを再暗号化キーワードとして利用する。検索部440は、検索結果として暗号化キーワードが得られれば、第2変換処理を実行して得られた第2変換データを識別情報で復号して暗号文識別子を取得する。そして、検索部440は、管理部420により登録された複数の暗号文の中から、取得した暗号文識別子によって表される組み合わせに含まれる暗号文を抽出する。
前述したように、本実施の形態では、第1変換処理は、結果データに第1値を連結し、第1値を連結したデータのハッシュ値を第1変換データとして算出する処理である。第2変換処理は、結果データに第1値とは異なる第2値を連結し、第2値を連結したデータのハッシュ値を第2変換データとして算出する処理である。
本実施の形態では、第2変換データの復号は、第2変換データと識別情報との排他的論理和を暗号文識別子として算出することで行われる。
具体的な索引の検索の手順は、以下のとおりである。
1.検索クエリq_Uと変換鍵ck_Uとに対して、ペアリング関数eとハッシュ関数H1,H2とを用いて、以下のt0およびt1を計算する。
t0=H2(e(q_U,ck_U)||1)=H2(e(H1(w),gsk_S)||0)
t1=H2(e(q_U,ck_U)||1)=H2(e(H1(w),gsk_S)||1)
2.索引ind_S={(key,value)}に対して、t0=keyとなるkeyがあるか、バイナリ比較等を用いてチェックする。
3.もしなければ、ID=0(空集合)として出力する。もしあれば、(key,value)とそのkeyに対応したvalueに対して、t1をベクトル表現した値とvalueとの排他的論理和を計算し、成分が1となっている部分に対応した識別子をすべてIDに含め、IDを出力する。例えば、ind_Sが図16に示すとおりとし、t{1,0}=t0かつt1=(1,0,1,0,1,0,1,0,1,0)とする。このとき、t{1,0}に対応した(0,0,0,0,0,0,1,0,1,0)とt1=(1,0,1,0,1,0,1,0,1,0)との排他的論理和を成分ごとに計算し、(1,0,1,0,1,0,0,0,0,0)を得る。よって、平文D1、平文D3および平文D5の識別子をIDに含めて、IDを出力する。
1.検索クエリq_Uと変換鍵ck_Uとに対して、ペアリング関数eとハッシュ関数H1,H2とを用いて、以下のt0およびt1を計算する。
t0=H2(e(q_U,ck_U)||1)=H2(e(H1(w),gsk_S)||0)
t1=H2(e(q_U,ck_U)||1)=H2(e(H1(w),gsk_S)||1)
2.索引ind_S={(key,value)}に対して、t0=keyとなるkeyがあるか、バイナリ比較等を用いてチェックする。
3.もしなければ、ID=0(空集合)として出力する。もしあれば、(key,value)とそのkeyに対応したvalueに対して、t1をベクトル表現した値とvalueとの排他的論理和を計算し、成分が1となっている部分に対応した識別子をすべてIDに含め、IDを出力する。例えば、ind_Sが図16に示すとおりとし、t{1,0}=t0かつt1=(1,0,1,0,1,0,1,0,1,0)とする。このとき、t{1,0}に対応した(0,0,0,0,0,0,1,0,1,0)とt1=(1,0,1,0,1,0,1,0,1,0)との排他的論理和を成分ごとに計算し、(1,0,1,0,1,0,0,0,0,0)を得る。よって、平文D1、平文D3および平文D5の識別子をIDに含めて、IDを出力する。
上記のような索引技術を適用することで安全性を高めることができる。
***実施の形態の効果の説明***
本実施の形態では、複数の鍵を使ってアクセス制御を達成しながら、方式に索引型を適用しているため、秘匿検索の高速化を達成できる。また、共通鍵ベース索引方式のほとんどを適用できるため、汎用性が高い。
本実施の形態では、複数の鍵を使ってアクセス制御を達成しながら、方式に索引型を適用しているため、秘匿検索の高速化を達成できる。また、共通鍵ベース索引方式のほとんどを適用できるため、汎用性が高い。
本実施の形態では、特に、公開鍵暗号技術と複数の秘密鍵とを使って、共通鍵暗号ベースの秘匿検索技術におけるアクセス制御を実現することができる。公開鍵暗号技術としては、ペアリングによる代理人再暗号化技術が用いられている。代理人再暗号化技術では、ある変換鍵を使えば、検索者が暗号化したデータを復号せずに、登録者が暗号化したデータへ変換できる。
本実施の形態では、データ登録時に、タグ型ではなく、索引型のデータが生成され、データ検索時に、索引型の検索クエリが生成される。よって、効率が良い。
本実施の形態では、データ登録時に同じ暗号化キーワードはまとめて索引に登録されるとともに、既存の安全な索引構成手法を適用して高安全化が可能となる。例えば、索引にダミーを追加したり、ヒットするデータ名も暗号化して隠したりする手法を適用することができる。
本実施の形態は、既存の共通鍵暗号ベースの索引型の方式に適用できるため、部分一致検索等、柔軟な検索機能付きの索引方式も構成することが可能である。
***他の構成***
本実施の形態では、登録装置200の入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能がソフトウェアにより実現されるが、変形例として、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能がハードウェアにより実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
本実施の形態では、登録装置200の入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能がソフトウェアにより実現されるが、変形例として、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能がハードウェアにより実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
図17を参照して、本実施の形態の変形例に係る登録装置200の構成を説明する。
登録装置200は、電子回路209、補助記憶装置203、入出力インタフェース204および通信装置205といったハードウェアを備える。
電子回路209は、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能を実現する専用のハードウェアである。電子回路209は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。「IC」は、Integrated Circuitの略語である。「GA」は、Gate Arrayの略語である。「FPGA」は、Field-Programmable Gate Arrayの略語である。「ASIC」は、Application Specific Integrated Circuitの略語である。
登録装置200は、電子回路209を代替する複数の電子回路を備えていてもよい。これら複数の電子回路は、全体として入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能を実現する。それぞれの電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
別の変形例として、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
プロセッサ201および電子回路209は、いずれも処理回路である。すなわち、登録装置200の構成が図2および図17のいずれに示した構成であっても、入力部210、暗号文生成部220、索引生成部230、鍵生成部240、配布部250および登録部260の動作は、処理回路により行われる。
本実施の形態では、検索装置300の取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能がソフトウェアにより実現されるが、変形例として、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能がハードウェアにより実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
図18を参照して、本実施の形態の変形例に係る検索装置300の構成を説明する。
検索装置300は、電子回路309、補助記憶装置303、入出力インタフェース304および通信装置305といったハードウェアを備える。
電子回路309は、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能を実現する専用のハードウェアである。電子回路309は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
検索装置300は、電子回路309を代替する複数の電子回路を備えていてもよい。これら複数の電子回路は、全体として取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能を実現する。それぞれの電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
別の変形例として、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
プロセッサ301および電子回路309は、いずれも処理回路である。すなわち、検索装置300の構成が図3および図18のいずれに示した構成であっても、取得部310、入力部320、暗号化部330、要求部340、復号部350および出力部360の動作は、処理回路により行われる。
本実施の形態では、サーバ装置400の第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能がソフトウェアにより実現されるが、変形例として、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能がハードウェアにより実現されてもよい。この変形例について、主に本実施の形態との差異を説明する。
図19を参照して、本実施の形態の変形例に係るサーバ装置400の構成を説明する。
サーバ装置400は、電子回路409、補助記憶装置403、入出力インタフェース404および通信装置405といったハードウェアを備える。
電子回路409は、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能を実現する専用のハードウェアである。電子回路409は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
サーバ装置400は、電子回路409を代替する複数の電子回路を備えていてもよい。これら複数の電子回路は、全体として第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能を実現する。それぞれの電子回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、FPGA、ASIC、または、これらのうちいくつか、もしくは、すべての組み合わせである。
別の変形例として、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。すなわち、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の機能の一部が専用のハードウェアにより実現され、残りがソフトウェアにより実現されてもよい。
プロセッサ401および電子回路409は、いずれも処理回路である。すなわち、サーバ装置400の構成が図4および図19のいずれに示した構成であっても、第1受信部410、管理部420、第2受信部430、検索部440および送信部450の動作は、処理回路により行われる。
100 秘匿検索システム、101 ネットワーク、200 登録装置、201 プロセッサ、202 メモリ、203 補助記憶装置、204 入出力インタフェース、205 通信装置、209 電子回路、210 入力部、220 暗号文生成部、230 索引生成部、240 鍵生成部、250 配布部、260 登録部、300 検索装置、300a 検索装置、300b 検索装置、301 プロセッサ、302 メモリ、303 補助記憶装置、304 入出力インタフェース、305 通信装置、309 電子回路、310 取得部、320 入力部、330 暗号化部、340 要求部、350 復号部、360 出力部、400 サーバ装置、401 プロセッサ、402 メモリ、403 補助記憶装置、404 入出力インタフェース、405 通信装置、409 電子回路、410 第1受信部、420 管理部、430 第2受信部、440 検索部、450 送信部、460 データベース、461 データベース、462 データベース。
Claims (12)
- 複数の暗号文のうち1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成し、生成した暗号化キーワードと、前記1つ以上の暗号文を識別する識別情報とを含む索引を生成する索引生成部と、
前記登録鍵と、検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから、前記検索クエリを再暗号化して再暗号化キーワードを生成し前記索引を前記再暗号化キーワードで検索するサーバ装置により代理人再暗号化に用いられる変換鍵を生成する鍵生成部と、
前記複数の暗号文と、前記索引生成部により生成された索引と、前記鍵生成部により生成された変換鍵とを前記サーバ装置に送信する登録部と
を備える登録装置。 - 前記索引生成部は、前記1つ以上の暗号文に対応するキーワードを前記登録鍵で暗号化して得られた結果データに対し、第1変換処理と、前記第1変換処理とは異なる第2変換処理とを別々に実行し、前記第1変換処理を実行して得られた第1変換データを前記暗号化キーワードとして利用し、前記第2変換処理を実行して得られた第2変換データを、前記1つ以上の暗号文の組み合わせを一意に表す暗号文識別子で符号化して前記識別情報を生成する請求項1に記載の登録装置。
- 前記第1変換処理は、前記結果データに第1値を連結し、前記第1値を連結したデータのハッシュ値を前記第1変換データとして算出する処理であり、
前記第2変換処理は、前記結果データに前記第1値とは異なる第2値を連結し、前記第2値を連結したデータのハッシュ値を前記第2変換データとして算出する処理である請求項2に記載の登録装置。 - 前記索引生成部は、前記第2変換データと前記暗号文識別子との排他的論理和を前記識別情報として算出する請求項2または3に記載の登録装置。
- 複数の暗号文と、1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成する登録装置が生成した、前記暗号化キーワードと前記1つ以上の暗号文を識別する識別情報とを含む索引と、前記登録装置が前記登録鍵と検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから生成した、代理人再暗号化に用いられる変換鍵とを受信する第1受信部と、
前記第1受信部により受信された複数の暗号文と索引と変換鍵とをデータベースに登録する管理部と、
前記検索クエリを受信する第2受信部と、
前記第2受信部により受信された検索クエリを前記管理部により登録された変換鍵で再暗号化して再暗号化キーワードを生成し、前記管理部により登録された索引を前記再暗号化キーワードで検索し、検索結果として前記暗号化キーワードが得られれば、前記索引から前記識別情報を取得し、前記管理部により登録された複数の暗号文の中から、前記識別情報によって識別される暗号文を抽出する検索部と、
前記検索部により抽出された暗号文を前記検索装置に送信する送信部と
を備えるサーバ装置。 - 前記検索部は、前記検索クエリを再暗号化して得られた結果データに対し、第1変換処理と、前記第1変換処理とは異なる第2変換処理とを別々に実行し、前記第1変換処理を実行して得られた第1変換データを前記再暗号化キーワードとして利用し、前記検索結果として前記暗号化キーワードが得られれば、前記第2変換処理を実行して得られた第2変換データを前記識別情報で復号して、前記1つ以上の暗号文の組み合わせを一意に表す暗号文識別子を取得し、前記複数の暗号文の中から、前記暗号文識別子によって表される組み合わせに含まれる暗号文を抽出する請求項5に記載のサーバ装置。
- 前記第1変換処理は、前記結果データに第1値を連結し、前記第1値を連結したデータのハッシュ値を前記第1変換データとして算出する処理であり、
前記第2変換処理は、前記結果データに前記第1値とは異なる第2値を連結し、前記第2値を連結したデータのハッシュ値を前記第2変換データとして算出する処理である請求項6に記載のサーバ装置。 - 前記検索部は、前記第2変換データと前記識別情報との排他的論理和を前記暗号文識別子として算出する請求項6または7に記載のサーバ装置。
- 前記登録装置と、
前記検索装置と、
請求項5から8のいずれか1項に記載のサーバ装置と
を備える秘匿検索システム。 - 登録装置が、複数の暗号文のうち1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成し、生成した暗号化キーワードと、前記1つ以上の暗号文を識別する識別情報とを含む索引を生成し、前記登録鍵と、検索装置により暗号化に用いられる検索鍵とから、サーバ装置により代理人再暗号化に用いられる変換鍵を生成し、前記複数の暗号文と、生成した索引と、生成した変換鍵とを前記サーバ装置に送信し、
前記サーバ装置が、前記複数の暗号文と前記索引と前記変換鍵とをデータベースに登録し、
前記検索装置が、検索に用いるキーワードを暗号化して検索クエリを生成し、生成した検索クエリを前記サーバ装置に送信し、
前記サーバ装置が、前記検索クエリを前記データベースに登録した変換鍵で再暗号化して再暗号化キーワードを生成し、前記データベースに登録した索引を前記再暗号化キーワードで検索し、検索結果として前記暗号化キーワードが得られれば、前記索引から前記識別情報を取得し、前記データベースに登録した複数の暗号文の中から、前記識別情報によって識別される暗号文を抽出し、抽出した暗号文を前記検索装置に送信する秘匿検索方法。 - コンピュータに、
複数の暗号文のうち1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成し、生成した暗号化キーワードと、前記1つ以上の暗号文を識別する識別情報とを含む索引を生成する索引生成手順と、
前記登録鍵と、検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから、前記検索クエリを再暗号化して再暗号化キーワードを生成し前記索引を前記再暗号化キーワードで検索するサーバ装置により代理人再暗号化に用いられる変換鍵を生成する鍵生成手順と、
前記複数の暗号文と、前記索引生成手順により生成された索引と、前記鍵生成手順により生成された変換鍵とを前記サーバ装置に送信する登録手順と
を実行させる登録プログラム。 - コンピュータに、
複数の暗号文と、1つ以上の暗号文に対応するキーワードを登録鍵で暗号化して暗号化キーワードを生成する登録装置が生成した、前記暗号化キーワードと前記1つ以上の暗号文を識別する識別情報とを含む索引と、前記登録装置が前記登録鍵と検索に用いるキーワードを暗号化して検索クエリを生成する検索装置により暗号化に用いられる検索鍵とから生成した、代理人再暗号化に用いられる変換鍵とを受信する第1手順と、
前記第1手順により受信された複数の暗号文と索引と変換鍵とをデータベースに登録する管理手順と、
前記検索クエリを受信する第2手順と、
前記第2手順により受信された検索クエリを前記管理手順により登録された変換鍵で再暗号化して再暗号化キーワードを生成し、前記管理手順により登録された索引を前記再暗号化キーワードで検索し、検索結果として前記暗号化キーワードが得られれば、前記索引から前記識別情報を取得し、前記管理手順により登録された複数の暗号文の中から、前記識別情報によって識別される暗号文を抽出する検索手順と、
前記検索手順により抽出された暗号文を前記検索装置に送信する送信手順と
を実行させるサーバプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201880092550.7A CN112042150B (zh) | 2018-05-08 | 2018-05-08 | 登记装置、服务器装置、隐匿检索系统、隐匿检索方法及计算机可读取的记录介质 |
PCT/JP2018/017792 WO2019215818A1 (ja) | 2018-05-08 | 2018-05-08 | 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム |
JP2019534903A JP6599066B1 (ja) | 2018-05-08 | 2018-05-08 | 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム |
DE112018007433.1T DE112018007433T5 (de) | 2018-05-08 | 2018-05-08 | Registrierungsvorrichtung, servervorrichtung, durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungs-verfahren, registrierungsprogramm und serverprogramm |
US17/021,533 US11831769B2 (en) | 2018-05-08 | 2020-09-15 | Registration device, server device, searchable encryption system, and searchable encryption method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/017792 WO2019215818A1 (ja) | 2018-05-08 | 2018-05-08 | 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/021,533 Continuation US11831769B2 (en) | 2018-05-08 | 2020-09-15 | Registration device, server device, searchable encryption system, and searchable encryption method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019215818A1 true WO2019215818A1 (ja) | 2019-11-14 |
Family
ID=68383309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/017792 WO2019215818A1 (ja) | 2018-05-08 | 2018-05-08 | 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11831769B2 (ja) |
JP (1) | JP6599066B1 (ja) |
CN (1) | CN112042150B (ja) |
DE (1) | DE112018007433T5 (ja) |
WO (1) | WO2019215818A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2021144834A1 (ja) * | 2020-01-14 | 2021-07-22 | ||
CN113434739A (zh) * | 2021-06-08 | 2021-09-24 | 暨南大学 | 一种云环境下前向安全的多用户动态对称加密检索方法 |
DE112020005557B4 (de) | 2020-01-14 | 2023-09-28 | Mitsubishi Electric Corporation | Registrierungseinrichtung, suchoperationseinrichtung, datenverwaltungseinrichtung, registrierungsprogramm, suchoperationsprogramm und datenverwaltungsprogramm |
DE112021007711T5 (de) | 2021-07-27 | 2024-03-21 | Mitsubishi Electric Corporation | Suchausführungseinrichtung, suchausführungsverfahren, suchausführungsprogramm, und durchsuchbares verschlüsselungssystem |
JP7486688B2 (ja) | 2022-04-13 | 2024-05-17 | 三菱電機株式会社 | 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム |
JP7486693B2 (ja) | 2022-04-13 | 2024-05-17 | 三菱電機株式会社 | 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022153394A1 (ja) * | 2021-01-13 | 2022-07-21 | 三菱電機株式会社 | 秘匿検索システムおよび秘匿検索方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130046974A1 (en) * | 2011-08-16 | 2013-02-21 | Microsoft Corporation | Dynamic symmetric searchable encryption |
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
US20160191544A1 (en) * | 2014-12-29 | 2016-06-30 | Samsung Electronics Co., Ltd. | User terminal, service providing apparatus, driving method of user terminal, driving method of service providing apparatus, and encryption indexing-based search system |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593196B (zh) | 2008-05-30 | 2013-09-25 | 日电(中国)有限公司 | 用于快速密文检索的方法、装置和系统 |
US9251097B1 (en) * | 2011-03-22 | 2016-02-02 | Amazon Technologies, Inc. | Redundant key management |
KR20130085491A (ko) | 2011-12-09 | 2013-07-30 | 한국전자통신연구원 | 인덱스 검증과 추적이 가능한 다자간 환경에서의 검색 가능 암호 시스템 및 방법 |
JP5651609B2 (ja) | 2012-01-23 | 2015-01-14 | 日本電信電話株式会社 | 検索可能暗号システム、検索装置、計算装置、及びプログラム |
EP2808803B1 (en) * | 2012-01-25 | 2017-03-01 | Mitsubishi Electric Corporation | Data search device, data search method, data search program, data registration device, data registration method, data registration program and information processing device |
JP5670365B2 (ja) * | 2012-01-26 | 2015-02-18 | 日本電信電話株式会社 | 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム |
US9904788B2 (en) * | 2012-08-08 | 2018-02-27 | Amazon Technologies, Inc. | Redundant key management |
IN2014CH00681A (ja) | 2014-02-13 | 2015-08-14 | Infosys Ltd | |
JP6348004B2 (ja) * | 2014-06-30 | 2018-06-27 | Kddi株式会社 | 暗号化データ管理システム、プロキシサーバ、暗号化データ管理方法およびコンピュータプログラム |
WO2016063344A1 (ja) | 2014-10-21 | 2016-04-28 | 三菱電機株式会社 | サーバ装置及び検索システム及び端末装置及び検索方法及びサーバプログラム及び端末プログラム |
JP6419633B2 (ja) | 2015-04-09 | 2018-11-07 | 株式会社日立ソリューションズ | 検索システム |
US9894042B2 (en) | 2015-07-24 | 2018-02-13 | Skyhigh Networks, Inc. | Searchable encryption enabling encrypted search based on document type |
JP6592301B2 (ja) | 2015-08-10 | 2019-10-16 | Kddi株式会社 | 匿名化装置、検索装置、方法及びプログラム |
CN105743888A (zh) * | 2016-01-22 | 2016-07-06 | 河南理工大学 | 一种基于关键字搜索的代理重加密方案 |
US10686827B2 (en) * | 2016-04-14 | 2020-06-16 | Sophos Limited | Intermediate encryption for exposed content |
KR102449816B1 (ko) * | 2016-03-25 | 2022-10-04 | 삼성전자주식회사 | 암호화 및 검색 장치 및 그 방법 |
BR112019013130A8 (pt) * | 2016-12-30 | 2023-02-14 | Bosch Gmbh Robert | Método e sistema de criptografia pesquisável simétrica dinâmica alheia a padrões de busca |
-
2018
- 2018-05-08 JP JP2019534903A patent/JP6599066B1/ja active Active
- 2018-05-08 WO PCT/JP2018/017792 patent/WO2019215818A1/ja active Application Filing
- 2018-05-08 DE DE112018007433.1T patent/DE112018007433T5/de active Pending
- 2018-05-08 CN CN201880092550.7A patent/CN112042150B/zh active Active
-
2020
- 2020-09-15 US US17/021,533 patent/US11831769B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130046974A1 (en) * | 2011-08-16 | 2013-02-21 | Microsoft Corporation | Dynamic symmetric searchable encryption |
CN104394155A (zh) * | 2014-11-27 | 2015-03-04 | 暨南大学 | 可验证完整性和完备性的多用户云加密关键字搜索方法 |
US20160191544A1 (en) * | 2014-12-29 | 2016-06-30 | Samsung Electronics Co., Ltd. | User terminal, service providing apparatus, driving method of user terminal, driving method of service providing apparatus, and encryption indexing-based search system |
Non-Patent Citations (2)
Title |
---|
LEE, S.-H. ET AL.: "A Study of Practical Proxy Reencryption with a Keyword Search Scheme considering Cloud Storage Structure", HINDAWI- THE SCIENTIFIC WORLD JOURNAL, vol. 2014, no. ID615679, 12 February 2014 (2014-02-12), pages 1 - 10, XP055651747 * |
POPA, R. A. ET AL.: "Multi-Key Searchable Encryption", IACR CRYPTOLOGY EPRINT ARCHIVE, Report 2013/508, 16 August 2013 (2013-08-16), pages 1 - 18, XP061008020 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2021144834A1 (ja) * | 2020-01-14 | 2021-07-22 | ||
WO2021144834A1 (ja) * | 2020-01-14 | 2021-07-22 | 三菱電機株式会社 | 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム |
JP7016458B2 (ja) | 2020-01-14 | 2022-02-04 | 三菱電機株式会社 | 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム |
DE112020005557B4 (de) | 2020-01-14 | 2023-09-28 | Mitsubishi Electric Corporation | Registrierungseinrichtung, suchoperationseinrichtung, datenverwaltungseinrichtung, registrierungsprogramm, suchoperationsprogramm und datenverwaltungsprogramm |
CN113434739A (zh) * | 2021-06-08 | 2021-09-24 | 暨南大学 | 一种云环境下前向安全的多用户动态对称加密检索方法 |
DE112021007711T5 (de) | 2021-07-27 | 2024-03-21 | Mitsubishi Electric Corporation | Suchausführungseinrichtung, suchausführungsverfahren, suchausführungsprogramm, und durchsuchbares verschlüsselungssystem |
JP7486688B2 (ja) | 2022-04-13 | 2024-05-17 | 三菱電機株式会社 | 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム |
JP7486693B2 (ja) | 2022-04-13 | 2024-05-17 | 三菱電機株式会社 | 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN112042150A (zh) | 2020-12-04 |
JPWO2019215818A1 (ja) | 2020-05-28 |
US20200412536A1 (en) | 2020-12-31 |
JP6599066B1 (ja) | 2019-10-30 |
DE112018007433T5 (de) | 2020-12-31 |
US11831769B2 (en) | 2023-11-28 |
CN112042150B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6599066B1 (ja) | 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム | |
JP6941183B2 (ja) | データのトークン化 | |
US8694467B2 (en) | Random number based data integrity verification method and system for distributed cloud storage | |
US10361840B2 (en) | Server apparatus, search system, terminal apparatus, search method, non-transitory computer readable medium storing server program, and non-transitory computer readable medium storing terminal program | |
US10937339B2 (en) | Digital cryptosystem with re-derivable hybrid keys | |
JP2014002365A (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
US7986780B2 (en) | Privacy-preserving substring creation | |
US11233629B2 (en) | Registration apparatus, search operation apparatus, data management apparatus | |
WO2021129470A1 (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
CN112740615A (zh) | 多方计算的密钥管理 | |
CN111555880A (zh) | 数据碰撞方法、装置、存储介质及电子设备 | |
WO2022137668A1 (ja) | データファイル暗号化送受信システム及びデータファイル暗号化送受信方法 | |
US20210081562A1 (en) | Data processing apparatus, data processing method, and computer readable medium | |
Barukab et al. | Secure communication using symmetric and asymmetric cryptographic techniques | |
US11902418B2 (en) | Registration device, search operation device, and data management device | |
WO2019142265A1 (ja) | データ管理装置、検索装置、登録装置、データ管理方法及びデータ管理プログラム | |
CN114036541A (zh) | 一种复合加密存储用户私密内容的应用方法 | |
WO2015107561A1 (ja) | 検索システム、検索方法および検索プログラム | |
KR100919824B1 (ko) | 데이터 암호화 장치와 이를 이용한 암호화 방법 | |
WO2024142343A1 (ja) | 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、登録要求方法、登録要求プログラム、検索要求方法、検索要求プログラム、データ管理方法及びデータ管理プログラム | |
JP7573797B1 (ja) | 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、登録要求方法、登録要求プログラム、検索要求方法、検索要求プログラム、データ管理方法及びデータ管理プログラム | |
JPWO2020240630A1 (ja) | 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム | |
JP2020127084A (ja) | 暗号化システム及び暗号化方法 | |
TWI789115B (zh) | 雲端服務的加密系統及加密方法 | |
JP6918253B2 (ja) | 秘匿検索システムおよび秘匿検索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2019534903 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18918126 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18918126 Country of ref document: EP Kind code of ref document: A1 |