WO2017122393A1 - 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム - Google Patents

秘匿検索システム、秘匿検索方法及び秘匿検索プログラム Download PDF

Info

Publication number
WO2017122393A1
WO2017122393A1 PCT/JP2016/079421 JP2016079421W WO2017122393A1 WO 2017122393 A1 WO2017122393 A1 WO 2017122393A1 JP 2016079421 W JP2016079421 W JP 2016079421W WO 2017122393 A1 WO2017122393 A1 WO 2017122393A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
encryption
storage unit
keyword
management
Prior art date
Application number
PCT/JP2016/079421
Other languages
English (en)
French (fr)
Inventor
健一郎 早坂
豊 川合
貴人 平野
義博 小関
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2017547007A priority Critical patent/JP6239213B1/ja
Priority to CN201780003889.0A priority patent/CN108351905B/zh
Priority to EP17738450.0A priority patent/EP3382576B1/en
Priority to PCT/JP2017/000679 priority patent/WO2017122696A1/ja
Priority to US16/063,457 priority patent/US10872158B2/en
Publication of WO2017122393A1 publication Critical patent/WO2017122393A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Definitions

  • the present invention relates to a secret search system, a secret search method, and a secret search program.
  • Secure search is a technology that can search files with encryption.
  • cloud storage that can be used inexpensively and without any hassle is becoming common.
  • the secret search is a technique that can achieve both safety and functionality because an encrypted file can be searched without being decrypted.
  • the search is realized using two encrypted keywords.
  • the first is an encryption keyword associated with the encrypted file, which will be referred to as an encryption tag hereinafter.
  • the second is a keyword obtained by encrypting a keyword used for search, and hereinafter referred to as an encrypted query or a search query.
  • a search query is used for this set of encryption tags to find a matching encryption tag without decryption, so that the stored file or search keyword information is not exposed. Realize.
  • the secret search includes a method using deterministic encryption for generating the same ciphertext for the same search keyword and a method using probabilistic encryption for generating a different ciphertext even with the same search keyword.
  • a secret search using deterministic encryption with a definite search query it is possible to obtain a distribution of search keywords while being encrypted, so that there is a possibility that a keyword is inferred from the distribution bias. For this reason, a confidential search using probabilistic encryption with probabilistic search queries is more secure than a confidential search using deterministic encryption.
  • a secret search with a probable search query has a problem that the search process is slower than a secret search with a definite search query.
  • Patent Literature 1 and Patent Literature 2 as speed-up methods of the confidential search with a probable search query.
  • the search query is a definite method for speeding up a secret search
  • Non-Patent Document 1 describes a method for speeding up a re-search using the fact that a search query is deterministic.
  • Non-Patent Document 2 discloses a method of constructing an encryption tag that is resistant to a frequency analysis attack even if a search query is generated by deterministic encryption.
  • Patent Document 1 and Patent Document 2 a deterministic value that depends on a search keyword is included in an encryption query, and a deterministic value is similarly added to a set of encryption tags so that the search target encryption tag can be changed. Limited, speeding up the search process.
  • Patent Document 1 and Patent Document 2 a deterministic value depending on a search keyword is included in a search query, and a deterministic value is similarly added to a set of encryption tags.
  • the search query and the encryption tag include deterministic values that depend on the search keyword. Therefore, it cannot be said that the search query is probabilistic, and there is safety instead of speeding up the search processing. There is a problem of lowering.
  • An object of the present invention is to provide a secret search system capable of embedding information for speeding up a search process in a probabilistic search query.
  • the secret search system is: An encryption tag having a management storage unit, which is a storage device, and generated by executing encryption using stochastic encryption with respect to encrypted data in which stored data is encrypted and related keywords associated with the stored data And a management device that stores the encryption tag and the encrypted data in association with each other in the management storage unit, When a search keyword for searching the encrypted data stored in the management storage unit is acquired, deterministic information uniquely determined from the search keyword is calculated, and a probability encryption is performed using the deterministic information for the search keyword.
  • a search device that generates a search query by performing encryption of a scheme and transmits the search query to the management device; The management device If the search query is received from the search device, does the search keyword obtained by decrypting the search query match a related keyword obtained by decrypting the encryption tag stored in the management storage unit? Determine whether or not.
  • a search device when a search device acquires a search keyword, it calculates deterministic information that is uniquely determined from the search keyword, and encrypts the stochastic cryptosystem while embedding the deterministic information in the search keyword. Since the search query is generated by executing the above, the encryption tag can be searched using a search query that is probabilistic and includes deterministic information for speeding up the search process. Play.
  • FIG. 1 is a configuration diagram of a confidential search system 100 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a key generation device 200 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a registration device 300 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a search device 400 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a management device 500 according to Embodiment 1.
  • FIG. FIG. 4 is a flowchart of key generation storage processing S110 of the secret search system 100 according to the first embodiment.
  • the flowchart of registration process S120 of the secret search system 100 which concerns on Embodiment 1.
  • FIG. FIG. 3 is a flowchart of search processing S130 of the secret search system 100 according to the first embodiment.
  • FIG. 7 is a flowchart of keyword encryption processing in step S802 of the search device 400 according to Embodiment 1.
  • the flowchart of deletion process S140 of the secret search system 100 which concerns on Embodiment 1.
  • FIG. The block diagram of the modification of the key generation apparatus 200 which concerns on Embodiment 1.
  • FIG. The block diagram of the modification of the registration apparatus 300 which concerns on Embodiment 1.
  • FIG. FIG. 6 is a configuration diagram of a modification of the search device 400 according to the first embodiment.
  • FIG. 6 is a configuration diagram of a modified example of the management apparatus 500 according to the first embodiment.
  • the block diagram of the confidential search system 100a which concerns on Embodiment 2.
  • FIG. The block diagram of the registration apparatus 300a which concerns on Embodiment 2.
  • FIG. 1 The block diagram of the search device 400a which concerns on Embodiment 2.
  • FIG. 2 The block diagram of the management apparatus 500a which concerns on Embodiment 2.
  • FIG. The flowchart of registration process S120a of the secret search system 100a which concerns on Embodiment 2.
  • FIG. 2 The flowchart of search process S130a of the secret search system 100a which concerns on Embodiment 2.
  • FIG. The flowchart of keyword encryption process S802a of search process S130a which concerns on Embodiment 2.
  • the secret search system 100 includes a key generation device 200, a registration device 300, a search device 400, and a management device 500.
  • the key generation device 200, the plurality of registration devices 300, the plurality of search devices 400, and the management device 500 are connected via the network 101.
  • the network 101 is a communication path that connects the key generation device 200, the plurality of registration devices 300, the plurality of search devices 400, and the management device 500.
  • the network 101 is the Internet or a LAN (Local Area Network), and other types of networks may be used.
  • the key generation device 200 is a PC (Personal Computer).
  • the key generation device 200 creates a key used for encryption, and transmits the key to the registration device 300, the search device 400, and the management device 500 via the network 101. This key may be transmitted directly by a method such as mailing.
  • the registration device 300 is a PC.
  • the registration device 300 encrypts the storage data stored in the management device 500 and the related keywords associated with the storage data to generate encrypted data and an encryption tag.
  • the storage data is also referred to as a storage file.
  • the encrypted data is also called an encrypted file.
  • the registration device 300 is a computer that operates as a registration terminal that registers the generated encrypted data and the encrypted tag in the management device 500.
  • the registration device 300 also functions as a deletion request device. That is, the registration device 300 requests the management device 500 to delete the encrypted data and the encryption tag stored in the management device 500.
  • the encrypted data and the encrypted tag are also referred to as stored encrypted data.
  • the search device 400 is a PC.
  • the search device 400 functions as a search request device.
  • the search device 400 transmits a search query in which a search keyword used for the search is encrypted to the management device 500, and requests a collation between the search query and the encrypted tag.
  • the management apparatus 500 is a computer having a large-capacity storage medium.
  • the management device 500 functions as a storage device for stored encrypted data. That is, if there is a request for storing the encrypted data and the encrypted tag from the registration device 300, the management device 500 stores them.
  • the management device 500 also functions as a search device. That is, if there is a search request from the search device 400, the management device 500 collates the set of encryption tags with the search query and transmits the search result to the search device 400.
  • the management device 500 also functions as a deletion device. That is, if there is a request for deletion of the encrypted data and the encryption tag, that is, the stored encrypted data, from the registration device 300, the management device 500 deletes the stored stored encrypted data.
  • Any two or more of the key generation device 200, the registration device 300, and the search device 400 may be included in the same PC at the same time.
  • the key generation device 200 is a computer.
  • the key generation device 200 includes hardware such as a CPU (Central Processing Unit) 910, a storage device 920, an input interface 930, an output interface 940, and a communication device 950.
  • the storage device 920 includes a memory 921 and an auxiliary storage device 922.
  • the key generation device 200 includes a parameter reception unit 201, a key generation unit 202, a transmission unit 209, and a key generation storage unit 250 as functional configurations.
  • the functions of the parameter reception unit 201, the key generation unit 202, and the transmission unit 209 in the key generation device 200 are referred to as “unit” functions of the key generation device 200.
  • the function of “unit” of the key generation device 200 is realized by software.
  • the key generation storage unit 250 is realized by the memory 921.
  • the key generation storage unit 250 stores data used by each unit of the key generation device 200.
  • the parameter receiving unit 201 receives the parameter ⁇ .
  • the key generation unit 202 receives the parameter ⁇ received from the parameter reception unit 201 and generates a key K1 and a key K2 for encrypting or decrypting data.
  • the transmission unit 209 transmits the key K1 generated by the key generation unit 202 to the registration device 300 and the search device 400. In addition, the transmission unit 209 transmits the key K2 to the search device 400 and the management device 500.
  • registration device 300 is a computer.
  • the registration device 300 includes hardware such as a CPU 910, a storage device 920, an input interface 930, an output interface 940, and a communication device 950.
  • the storage device 920 includes a memory 921 and an auxiliary storage device 922.
  • the registration apparatus 300 includes a reception unit 301, a key storage unit 302, an input unit 311, an encryption unit 312, a transmission unit 319, and a registration storage unit 350 as functional configurations.
  • the functions of the reception unit 301, the key storage unit 302, the input unit 311, the encryption unit 312, and the transmission unit 319 in the registration device 300 are referred to as “unit” functions of the registration device 300.
  • the function of “part” of the registration apparatus 300 is realized by software.
  • the registration storage unit 350 is realized by the memory 921.
  • the registration storage unit 350 stores data used by each unit of the registration apparatus 300.
  • the receiving unit 301 receives the key K1 transmitted from the key generation device 200.
  • the key storage unit 302 stores the key K1 received from the reception unit 301 in the registration storage unit 350.
  • the input unit 311 receives the stored data D, the stored data name ID (D), and the set W (D) of related keywords w associated with the stored data D, which are input from the data registrant, via the input interface 930. Further, the input unit 311 receives a deletion request 339 for deleting the storage data D.
  • the encryption unit 312 receives the key K1 from the key storage unit 302, receives the storage data D, the storage data name ID (D), and the set W (D) of related keywords w from the input unit 311 and uses the key K1.
  • the stored data D and the related keyword set W (D) are encrypted.
  • the encryption unit 312 generates a set R (D) of the first random numbers r used for encryption.
  • the stored data D encrypted using the key K1 is assumed to be encrypted data E (D).
  • a set W (D) of related keywords w stochastically encrypted using the key K1 and the set R (D) of the first random number r is set as a set C (D) of encryption tags c.
  • the encryption unit 312 stores the stored data name ID (D), a set C (D) of the encryption tag c (ID (D), C (D)), and a set R ( D).
  • (ID (D), C (D)) may be written as stored encrypted data.
  • the stored data name ID (D) is associated with the encrypted data E (D).
  • the stored encrypted data (ID (D), C (D)) is the set C (D) of the encrypted data E (D) and the encrypted tag c associated with the stored data name ID (D).
  • a set of related keywords w may be written as a related keyword W (D), a set of first random numbers r as a first random number R (D), and a set of encryption tags c may be written as an encryption tag C (D).
  • the transmission unit 319 transmits the stored encrypted data (ID (D), C (D)) received from the encryption unit 312 to the management apparatus 500.
  • the set R (D) of the first random number r received from the encryption unit 312 is transmitted to the search device 400.
  • the transmission unit 319 transmits the deletion request 339 received from the input unit 311 to the management apparatus 500.
  • search device 400 is a computer.
  • the search device 400 includes hardware such as a CPU 910, a storage device 920, an input interface 930, an output interface 940, and a communication device 950.
  • the storage device 920 includes a memory 921 and an auxiliary storage device 922.
  • the search device 400 includes a receiving unit 401, an input unit 411, an encryption unit 412, a transmission unit 419, a key storage unit 421, an auxiliary information storage unit 422, a search result output unit 439, as functional configurations.
  • a search storage unit 450 is a computer.
  • the search device 400 includes hardware such as a CPU 910, a storage device 920, an input interface 930, an output interface 940, and a communication device 950.
  • the storage device 920 includes a memory 921 and an auxiliary storage device 922.
  • the search device 400 includes a receiving unit 401, an input unit 411, an encryption unit 412, a transmission unit 419, a key storage unit 421, an
  • the receiving unit 401, the input unit 411, the encryption unit 412, the transmission unit 419, the key storage unit 421, the auxiliary information storage unit 422, and the search result output unit 439 in the search device 400 are described.
  • the function is referred to as a “part” function of the search device 400.
  • the function of “part” of the search device 400 is realized by software.
  • the search storage unit 450 is realized by the memory 921.
  • the search storage unit 450 stores data used by each unit of the search device 400.
  • the receiving unit 401 receives the key K1 and the key K2 transmitted from the key generation device 200, the set R (D) of the first random numbers r transmitted from the registration device 300, or the search transmitted from the management device 500.
  • the result I (s) is received.
  • the key storage unit 421 stores the key K1 and the key K2 received from the reception unit 401 in the search storage unit 450.
  • the input unit 411 receives the search keyword s and the definitive instruction f input from the data searcher.
  • the deterministic instruction f is specifically a flag and is also called a high-speed index creation flag.
  • the auxiliary information storage unit 422 stores the set R (D) of the first random numbers r received from the reception unit 401 in the search storage unit 450.
  • R a set of all first random numbers accumulated in the search storage unit 450 by the auxiliary information storage unit 422 is written as R.
  • the auxiliary information storage unit 422 stores the search history information 451 in the search storage unit 450. That is, the auxiliary information storage unit 422 receives the definitive instruction f and deterministic information t of the search keyword s from the encryption unit 412, and receives the search result I (s) of the search keyword s from the reception unit 401.
  • the auxiliary information storage unit 422 accumulates deterministic information t in the search history information 451 when it can be confirmed that the management apparatus 500 has created high-speed index information 554 described later.
  • the auxiliary information storage unit 422 does nothing if it cannot be confirmed that the high-speed index information 554 has been created.
  • a set of all deterministic information t accumulated in the search history information 451 of the search storage unit 450 by the auxiliary information storage unit 422 is written as T.
  • the deterministic information t of the search keyword s is an identifier that has a one-to-one correspondence with the search keyword s.
  • the deterministic information t is calculated by a technique such as a hash function.
  • the deterministic information t is also referred to as a definite value.
  • the encryption unit 412 receives the keys K1 and K2 from the key storage unit 421, the first random number set R and the deterministic information set T from the auxiliary information storage unit 422, and the search keyword s and the deterministic instruction f from the input unit 411. Receive.
  • the encryption unit 412 outputs the deterministic information t of the search keyword or the search query Q (s) to the transmission unit 419.
  • the transmission unit 419 transmits the deterministic information t or the search query Q (s) received from the encryption unit 412 to the management apparatus 500 via the communication apparatus 950.
  • the search result output unit 439 outputs the search result to the data searcher via the output interface 940 based on the search result I (s) received from the receiving unit 401.
  • management device 500 is a computer.
  • the management device 500 includes hardware such as a CPU 910, a storage device 920, an input interface 930, an output interface 940, and a communication device 950.
  • the storage device 920 includes a memory 921 and an auxiliary storage device 922.
  • the management apparatus 500 includes a receiving unit 501, a key storage unit 511, a data storage unit 521, a high-speed verification unit 531, a verification unit 502, a transmission unit 509, and a management storage unit 550 as functional configurations.
  • the functions of the reception unit 501, the key storage unit 511, the data storage unit 521, the high-speed verification unit 531, the verification unit 502, and the transmission unit 509 in the management device 500 are described as “ Part function.
  • the function of “unit” of the management apparatus 500 is realized by software.
  • the management storage unit 550 is realized by the memory 921.
  • the management storage unit 550 stores data used by each unit of the management device 500.
  • the receiving unit 501 receives the key K2 transmitted from the key generation device 200, the stored encrypted data (ID (D), C (D)) transmitted from the registration device 300, the deletion request 339, and the transmission device 400. Deterministic information t or search query Q (s) is received.
  • the key storage unit 511 stores the key K2 received from the reception unit 501 in the management storage unit 550.
  • the data storage unit 521 stores the stored encrypted data (ID (D), C (D)) received from the reception unit 501 in the management storage unit 550. If necessary, the data storage unit 521 may store information such as the transmitted date and time together with the stored encrypted data (ID (D), C (D)).
  • the data storage unit 521 deletes the stored encrypted data (ID (D), C (D)) stored in the management storage unit 550 based on the deletion request 339 received from the reception unit 501.
  • the stored encrypted data (ID (D), C (D)) is stored encrypted data 551
  • the encrypted data E (D) is encrypted data 552
  • the set C ( D) may be described as an encryption tag 553.
  • the high-speed collation unit 531 is a high-speed index that can quickly retrieve the search result I (s) using the deterministic information t as a key for the deterministic information t received from the collation unit 502 and the search result I (s).
  • Information 554 is generated and the high-speed index information 554 is stored in the management storage unit 550. Further, the high-speed collation unit 531 retrieves the search result I (s) corresponding to the deterministic information t received from the reception unit 501 from the management storage unit 550 using the high-speed index information 554, and retrieves it to the transmission unit 509. Output the result I (s).
  • the collation unit 502 includes the search query Q (s) received from the reception unit 501, the key K2 received from the key storage unit 511, and all the stored encrypted data (ID (D), C (D) received from the data storage unit 521. )), A search result I (s) is generated and output to the transmission unit 509. If the search result I (s) is not an empty set, the matching unit 502 outputs the deterministic information t and the search result I (s) to the high-speed matching unit 531.
  • the transmission unit 509 transmits the search result I (s) received from the verification unit 502 or the high-speed verification unit 531 to the search device 400.
  • the CPU 910 is connected to other hardware via a signal line, and controls these other hardware.
  • the CPU 910 is an IC (Integrated Circuit) that performs processing.
  • the CPU 910 is also referred to as a processor.
  • the storage device 920 includes an auxiliary storage device 922 and a memory 921.
  • the auxiliary storage device 922 is a ROM (Read Only Memory), a flash memory, or an HDD (Hard Disk Drive).
  • the memory 921 is a RAM (Random Access Memory).
  • the storage unit of each device included in the secret search system 100 that is, the key generation storage unit 250, the registration storage unit 350, the search storage unit 450, and the management storage unit 550 are realized by the memory 921, but the auxiliary storage device 922 and the memory 921 are included. It may be realized by both.
  • the input interface 930 is a port connected to an input device such as a mouse, a keyboard, or a touch panel. Specifically, the input interface 930 is a USB (Universal Serial Bus) terminal. The input interface 930 may be a port connected to a LAN (Local Area Network).
  • the output interface 940 is a port to which a cable of a display device such as a display is connected. Specifically, the output interface 940 is a USB terminal or a HDMI (registered trademark) (High Definition Multimedia Interface) terminal.
  • the display is specifically an LCD (Liquid Crystal Display).
  • the communication device 950 includes a receiver that receives data and a transmitter that transmits data.
  • the communication device 950 is specifically a communication chip or a NIC (Network Interface Card).
  • the auxiliary storage device 922 stores a program that realizes the function of “unit” of each device of the secret search system 100. This program is loaded into the memory, read into the CPU 910, and executed by the CPU 910.
  • the auxiliary storage device 922 also stores an OS (Operating System). At least a part of the OS is loaded into the memory, and the CPU 910 executes a program that realizes the function of “unit” while executing the OS.
  • OS Operating System
  • Each device of the secret search system 100 may include only one CPU 910 or may include a plurality of CPUs 910.
  • a plurality of CPUs 910 may execute a program that realizes the function of “unit” in cooperation.
  • Information, data, signal values, and variable values indicating the processing results of “unit” are stored in an auxiliary storage device, memory, or a register or cache memory in the CPU 910.
  • the program for realizing the function of “part” may be stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD (Digital Versatile Disc).
  • the secret search program 620 is a program that implements the functions described as “parts” of each device of the secret search system 100.
  • a secret search program product is a storage medium and storage device on which a program that realizes the function described as “part” is recorded, and is a computer-readable program regardless of the appearance format. Is what you are loading.
  • the secret search process S100 includes a key generation / storage process S110, a registration process S120, a search process S130, and a deletion process S140.
  • Steps S601 to S609 in FIG. 6 are processes executed by the key generation device 200, the registration device 300, the search device 400, and the management device 500.
  • Steps S601 to S603 are key generation processing S112 executed by the key generation device 200.
  • Steps S604 to S605 are a key generation process S113 executed by the registration apparatus 300.
  • Steps S606 to S607 are key generation processing S114 executed by the search device 400.
  • Steps S608 to S609 are key generation processing S115 executed by the management apparatus 500.
  • step S ⁇ b> 601 the parameter receiving unit 201 of the key generation device 200 receives the parameter ⁇ via the communication device 950 of the key generation device 200.
  • step S602 the key generation unit 202 of the key generation device 200 receives the parameter ⁇ received by the parameter reception unit 201 of the key generation device 200 in step S601, and generates a key K1 and a key K2.
  • step S603 the transmission unit 209 of the key generation device 200 receives the key K1 and the key K2 generated by the key generation unit 202 of the key generation device 200 in step S602 and inputs the key K1 to the registration device 300 and the search device 400. Send.
  • the transmission unit 209 of the key generation device 200 transmits the key K2 to the search device 400 and the management device 500.
  • step S ⁇ b> 604 the reception unit 301 of the registration device 300 receives the key K ⁇ b> 1 transmitted by the transmission unit 209 of the key generation device 200 in step S ⁇ b> 603 via the communication device 950 of the registration device 300.
  • step S605 the key storage unit 302 of the registration apparatus 300 stores the key K1 received by the reception unit 301 of the registration apparatus 300 in step S604.
  • step S606 the reception unit 401 of the search device 400 receives the key K1 and the key K2 transmitted by the transmission unit 209 of the key generation device 200 in step S603 via the communication device 950 of the search device 400.
  • step S607 the key storage unit 421 of the search device 400 stores the keys K1 and K2 received by the reception unit 401 of the search device 400 in step S606.
  • step S608 the reception unit 501 of the management apparatus 500 receives the key K2 transmitted by the transmission unit 209 of the key generation apparatus 200 in step S603 via the communication apparatus 950 of the management apparatus 500.
  • step S609 the key storage unit 511 of the management apparatus 500 stores the key K2 received by the reception unit 501 of the management apparatus 500 in step S608.
  • the key generation / storage process S110 of the secret search system 100 ends. Since the keys K1 and K2 are secret information, the key storage unit 302 and the key storage unit 421 need to be stored strictly so that the keys K1 and K2 do not leak outside.
  • Steps S701 to S708 in FIG. 7 are processes executed by the registration device 300, the search device 400, and the management device 500.
  • Steps S701 to S704 are encryption processing S123 executed by the registration apparatus 300.
  • Steps S705 to S706 are the first random number storage process S124 executed by the search device 400.
  • Steps S707 to S708 are data storage processing S125 executed by the management apparatus 500.
  • the registration device 300 In the encryption process S123 of the registration device 300, the registration device 300 generates a first random number R (D) and uses the first random number R (D) to encrypt the related keyword W (D) using the probability encryption method. To generate an encryption tag C (D). In addition, the registration device 300 transmits the encryption tag C (D) and the encrypted data E (D) obtained by encrypting the storage data D to the management device 500. In addition, the registration device 300 transmits the first random number R (D) to the search device 400. This will be specifically described below.
  • step S ⁇ b> 701 the input unit 311 of the registration device 300 sets the stored data D, the stored data name ID (D), and the related keyword w associated with the stored data D input from the data registrant from the keyboard, mouse, or storage device. W (D) is received. If there is no input of the storage data name ID (D) from the data registrant, the input unit 311 may assign the storage data name ID (D) of the input storage data D as a random number, or other storage An integer value greater than 0 may be assigned in order so as not to overlap with the data storage data name.
  • step S702 the encryption unit 312 of the registration apparatus 300 receives the key K1 stored in the key storage unit 302 in step S605.
  • the encryption unit 312 receives the storage data D, the storage data name ID (D), and the set W (D) of related keywords w that are input to the input unit 311 in step S701. Then, the encryption unit 312 performs the following processing.
  • the encryption unit 312 sets one of the elements of the set W (D) of the related keywords w as the related keyword w.
  • E is a common key cryptosystem such as AES (Advanced Encryption Standard), a message authentication code such as HMAC (Hash-based Message Authentication Code), and a hash function such as SHA (Secure Hash Algorithm) -256.
  • AES Advanced Encryption Standard
  • HMAC Hash-based Message Authentication Code
  • SHA Secure Hash Algorithm
  • the ciphertext calculated for all the related keywords w that is, a set of encryption tags c is written as C (D).
  • a set of all first random numbers r generated at this time is written as R (D).
  • the encryption unit 312 generates the stored encrypted data (ID (D), C (D)) and the set R (D) of the first random number r.
  • step S ⁇ b> 703 the transmission unit 319 of the registration apparatus 300 transmits the stored encrypted data (ID (D), C (D)) generated in step S ⁇ b> 702 to the management apparatus 500.
  • step S704 the transmission unit 319 of the registration device 300 transmits the set R (D) of the first random numbers r generated in step S702 to the search device 400.
  • step S705 of the first random number storage process S124 of the search device 400 the reception unit 401 of the search device 400 receives the set R (D) of the first random numbers r transmitted from the transmission unit 319 of the registration device 300 in step S704. Received via the communication device 950 of the search device 400.
  • the auxiliary information storage unit 422 of the search device 400 stores the set R (D) of the first random numbers r received by the reception unit 401 in step S705.
  • a set of all the first random numbers r accumulated in the auxiliary information storage unit 422 is written as R.
  • the management apparatus 500 uses the probability encryption method for the encrypted data E (D) obtained by encrypting the storage data D and the related keyword W (D) associated with the storage data D.
  • the encryption tag C (D) generated by executing the encryption is received.
  • the management device 500 associates the encrypted tag C (D) (encrypted tag 553) with the encrypted data E (D) (encrypted data 552), and stores the stored encrypted data (ID (D), C (D)) Stored in the management storage unit 550 as (stored encrypted data 551). This will be specifically described below.
  • step S707 the reception unit 501 of the management apparatus 500 uses the stored encrypted data (ID (D), C (D)) transmitted from the transmission unit 319 of the registration apparatus 300 in step S703 as the communication apparatus of the management apparatus 500. Receive via 950.
  • step S708 the data storage unit 521 of the management apparatus 500 stores the stored encrypted data (ID (D), C (D)) received by the reception unit 501 in step S707 in the management storage unit 550.
  • the stored encrypted data (ID (D), C (D)) includes the encrypted data E (D) associated with the stored data name ID (D) and the encrypted tag C (D). It is a pair.
  • Steps S801 to S811 in FIG. 8 are processes executed by the search device 400 and the management device 500.
  • Steps S801 to S803 are search query generation processing S134 executed by the search device 400.
  • Steps S804 to S808 are determination processing S135 executed by the management apparatus 500.
  • Steps S809 to S811 are result output processing S136 executed by the search device 400.
  • the search device 400 acquires the search keyword s for searching the encrypted data E (D) stored in the management storage unit 550.
  • the search device 400 calculates deterministic information t that is uniquely determined from the search keyword s, and executes the encryption of the stochastic cryptosystem using the deterministic information t for the search keyword s, thereby obtaining the search query Q (s). Generate. Then, the search device 400 transmits the search query Q (s) to the management device 500. This will be specifically described below.
  • step S801 the input unit 411 of the search device 400 receives the search keyword s and the definitive instruction f input from the keyboard, mouse, or storage device by the data searcher.
  • the deterministic instruction f instructs whether or not the deterministic information t is used when encrypting the search keyword s, and is specifically a flag.
  • the definitive instruction f is also called a high-speed index creation flag.
  • using deterministic information t when encrypting the search keyword s means embedding deterministic information t, which is information effective for high-speed search, in the search query Q (s).
  • the search device 400 acquires the deterministic instruction f, and when instructed to use the deterministic information t by the deterministic instruction f, executes the encryption of the stochastic cryptosystem using the deterministic information t for the search keyword s. To do. In addition, when the deterministic instruction f indicates that the deterministic information t is not used, the search device 400 executes probability encryption encryption without using deterministic information for the search keyword s.
  • step S802 the encryption unit 412 of the search device 400 sets the key R1 and the key K2 stored in the key storage unit 421 in step S607, and the set R of the first random numbers r stored in the auxiliary information storage unit 422 in step S706. , And the set T of deterministic information t managed by the auxiliary information storage unit 422, the search keyword s and the deterministic instruction f input to the input unit 411 in step S801.
  • the encryption unit 412 performs the following processing using the received data.
  • FIG. 9 is a flowchart showing the keyword encryption processing in step S802 of search device 400 according to the present embodiment.
  • the search device 400 calculates the deterministic information t by executing the encryption of the definite encryption method for the search keyword s.
  • step S ⁇ b> 402 after calculating the deterministic information t, the encryption unit 412 determines whether the calculated deterministic information t is accumulated in the search storage unit 450. When the calculated deterministic information t is accumulated in the search storage unit 450 (YES in S402), the encryption unit 412 transmits the deterministic information t to the management apparatus 500.
  • the encryption unit 412 confirms whether or not the calculated deterministic information t is included in the set T.
  • the encryption unit 412 outputs the calculated deterministic information t to the transmission unit 419 (step S403).
  • step S404 the encryption unit 412 performs a search if the deterministic information t is not accumulated in the search storage unit 450 (NO in S402), that is, if the calculated deterministic information t is not included in the set T.
  • the query Q (s) is transmitted to the management apparatus 500.
  • the encryption unit 412 generates the search query Q (s) as follows.
  • the encryption unit 412 generates a second random number, and uses the second random number, the first random number R received from the registration device 300, and the deterministic information t to encrypt the search keyword s using the probability encryption method. Execute.
  • represents bit string concatenation.
  • a set of the generated ciphertext qi is written as Q (s).
  • a set Q (s) of ciphertext q is called a search query.
  • the search query Q (s) is output to the transmission unit 419 (step S405).
  • the definitive instruction f and deterministic information t are output to the auxiliary information storage unit 422.
  • qi E (ki, 0 ⁇
  • step S406 the transmission unit 419 transmits the deterministic information t or the search query Q (s) to the management apparatus 500.
  • step S802 the process of step S802 is complete
  • step S803 the transmission unit 419 of the search device 400 transmits the deterministic information t or the search query Q (s) generated by the encryption unit 412 in step S802 to the management device 500.
  • the search query generation process S134 of the search device 400 ends, and the process proceeds to step S804.
  • the management device 500 receives the search query Q (s) from the search device 400, the search keyword s obtained by decrypting the search query Q (s) is stored in the management storage unit 550. It is determined whether or not it matches the related keyword w obtained by decrypting the stored encryption tag C (D). When the search keyword s obtained by decrypting the search query Q (s) matches the related keyword w obtained by decrypting the encryption tag C (D), the management apparatus 500 encrypts the tag C (D).
  • the search result I (s) including the encrypted data E (D) corresponding to is transmitted to the search device 400 and the deterministic information t obtained by decrypting the search query Q (s) and the encryption tag C (D ) Corresponding to the encrypted data E (D) and stored in the management storage unit 550.
  • the management device 500 acquires the encrypted data E (D) corresponding to the deterministic information t from the management storage unit 550, and acquires the acquired encrypted data E (D).
  • the search result I (s) including it is transmitted to the search device 400. This will be specifically described below.
  • step S804 the reception unit 501 of the management device 500 receives the deterministic information t or the search query Q (s) transmitted from the transmission unit 419 of the search device 400 in step S803.
  • step S804a when the receiving unit 501 receives the search query Q (s), the process proceeds to step 805.
  • the receiving unit 501 receives the deterministic information t, the process proceeds to step 807.
  • step S805 when the information received by the receiving unit 501 in step S804 is the search query Q (s), the collation unit 502 of the management apparatus 500 stores the key K2 stored in the key storage unit 511 in step S609, step S708.
  • the following processing is performed on all the stored encrypted data (ID (D), C (D)) stored by the data storage unit 521.
  • the collation unit 502 prepares an empty search result I (s).
  • the collation unit 502 performs the following processing for all the stored encrypted data (ID (D), C (D)) and the search query Q (s). Match determination is performed as follows for any pair (c, q) of all elements c of the encryption tag C (D) and all elements q of the search query Q (s).
  • adding the storage data name ID (D) to the search result I (s) includes the encrypted data E (D) associated with the storage data name ID (D) in the search result I (s).
  • the search keyword s obtained by decrypting the search query Q (s) matches the related keyword w obtained by decrypting the encryption tag C (D) stored in the management storage unit 550. This is a process for determining whether or not.
  • the collation unit 502 outputs the search result I (s) to the transmission unit 509 when the search result I (s) is an empty set, that is, when YES in step S805a. If the search result I (s) is not an empty set, that is, if NO in Step 805a, the collation unit 502 outputs m1 as the deterministic information t and the search result I (s) to the high-speed collation unit 531.
  • step S806 the high-speed collation unit 531 of the management device 500 uses the deterministic information t obtained by decrypting the search query Q (s) and the encrypted data E (D) corresponding to the encrypted tag C (D).
  • the information is stored in the management storage unit 550 in association.
  • the high-speed collation unit 531 receives the deterministic information t and the search result I (s) received from the collation unit 502 in step S805.
  • the high-speed collation unit 531 stores in the management storage unit 550 high-speed index information 554 that can retrieve the search result I (s) at high speed using the deterministic information t as a key.
  • the high-speed index information 554 is realized by using a hash table.
  • step S807 if the information received by the receiving unit 501 in step S804 is deterministic information t, the high-speed collation unit 531 of the management apparatus 500 receives the deterministic information t from the receiving unit 501.
  • the high-speed collation unit 531 extracts the corresponding search result I (s) from the high-speed index information 554 for the received deterministic information t, and outputs I (s) to the transmission unit 509. If there is no search result I (s) corresponding to the received deterministic information t, the high-speed collation unit 531 outputs an empty set to the transmission unit 509 as I (s).
  • step S808 the transmission unit 509 of the management device 500 transmits the search result I (s) received from the collation unit 502 or the high-speed collation unit 531 to the search device 400. This is the end of the determination process S135 of the management apparatus 500, and the process proceeds to step S809.
  • the search device 400 when the search device 400 receives the search result I (s) from the management device 500, the deterministic information t is accumulated in the search storage unit 450. This will be specifically described below.
  • step S809 the reception unit 401 of the search device 400 receives the search result I (s) transmitted by the transmission unit 509 of the management device 500 in step S808.
  • step S810 the auxiliary information storage unit 422 of the search device 400 receives the deterministic information t and the deterministic instruction f of the search keyword s generated by the encryption unit 412 in step S802.
  • the auxiliary information storage unit 422 receives the search result I (s) for the search keyword s received by the receiving unit 401 in step S809, and performs the following processing.
  • the auxiliary information storage unit 422 stores the deterministic information t in the search storage unit 450. Further, when the search result I (s) is an empty set, that is, there is no encrypted data E (D) with respect to the search query Q (s), the deterministic information t is already stored in the search storage unit by the auxiliary information storage unit 422. When the information is stored in 450, the auxiliary information storage unit 422 deletes the stored definitive information t.
  • step S811 the search result output unit 439 of the search device 400 outputs the search result to the display via the output interface 940 based on the search result I (s) received from the reception unit 401.
  • the search result output unit 439 outputs the storage data name ID (D) of the encrypted data E (D) to the display.
  • the search result output unit 439 outputs information indicating that the search using the search keyword s has failed to the display.
  • the search process of the secret search system 100 ends.
  • Steps S901 to S904 in FIG. 10 are processes executed by the registration apparatus 300 and the management apparatus 500.
  • Steps S901 to S902 are executed by the registration apparatus 300.
  • Steps S903 to S904 are executed by the management apparatus 500.
  • the management apparatus 500 receives the deletion request 339 for deleting the encrypted data 552 stored in the management storage unit 550, and includes the encrypted data 552 from the management storage unit 550 based on the deletion request 339.
  • the stored encrypted data 551 is deleted. This will be specifically described below.
  • step S ⁇ b> 901 the input unit 311 of the registration apparatus 300 receives a deletion request 339 including a deletion data name for the stored encrypted data to be deleted from the data registrant.
  • the deletion request 339 may be the deletion data name itself.
  • the deletion request 339 may be anything as long as it can specify the stored encrypted data corresponding to the encrypted data 552.
  • the transmission unit 319 of the registration apparatus 300 transmits the deletion request 339 input to the input unit 311 in step S901 to the management apparatus 500.
  • the reception unit 501 of the management apparatus 500 receives the deletion request 339 transmitted from the transmission unit 319 of the registration apparatus 300 in step S902.
  • step S904 the data storage unit 521 and the high-speed collation unit 531 of the management apparatus 500 delete the stored encrypted data 551 stored based on the deletion data name included in the deletion request received by the reception unit 501 in step S903. To do.
  • step S904 the deletion process S140 of the confidential search system 100 ends.
  • each device of the secret search system 100 is realized by software, but as a modification, the function of each device of the secret search system 100 may be realized by hardware. A modification of the present embodiment will be described with reference to FIGS.
  • FIG. 11 is a diagram showing a configuration of a key generation apparatus 200 according to a modification example of the present embodiment.
  • FIG. 12 is a diagram showing a configuration of a registration apparatus 300 according to a modification example of the present embodiment.
  • FIG. 13 is a diagram illustrating a configuration of a search device 400 according to a modification of the present embodiment.
  • FIG. 14 is a diagram illustrating a configuration of a management apparatus 500 according to a modification example of the present embodiment.
  • each device of the secret search system 100 includes a processing circuit 909 instead of the CPU 910 and the storage device 920.
  • the processing circuit 909 is a dedicated electronic circuit that realizes the function of the “unit” of each device described above and the storage unit of each device. Specifically, the processing circuit 909 includes a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field). -Programmable Gate Array).
  • the function of “unit” of each device of the confidential search system 100 may be realized by one processing circuit 909 or may be realized by being distributed to a plurality of processing circuits 909.
  • the function of the “unit” of each device of the confidential search system 100 and the storage unit of each device may be realized by a combination of software and hardware.
  • some functions of each device may be realized by dedicated hardware, and the remaining functions may be realized by software.
  • the CPU 910, the storage device 920, and the processing circuit 909 are collectively referred to as a “processing circuit”. That is, regardless of the configuration of each device of the confidential search system 100 shown in FIGS. 2 to 5 and 11 to 14, the function of “unit” is realized by the processing circuitry.
  • Part may be read as “Process”, “Procedure” or “Process”. Further, the function of “unit” may be realized by firmware.
  • the secret search system includes an encryption unit of a search device that generates a search query embedded with useful information for performing a search at high speed, a reception unit of a management device that receives the search query, A data storage unit of the management device that stores the encrypted tag in which the related keyword is encrypted, and a verification unit of the management device that extracts a match with the encrypted search keyword from the stored set of encrypted tags.
  • the encryption tag and the search query are generated by probabilistic encryption. Therefore, the encryption tag and the search query do not depend on the definitive information of the related keyword and the search keyword associated with the storage data. Thereby, the encryption tag and the search query have high frequency analysis resistance and high security.
  • the secret search system includes a high-speed collation unit that can quickly retrieve a search result for a search query for a search keyword once searched in the past. Therefore, deterministic information for the search query is extracted only when the search result storage encrypted data exists for the search query, and the search result is retrieved at high speed based on this deterministic information at the next and subsequent searches. It can be taken out. The reason that this deterministic information is extracted only when there is stored encrypted data of the search result is that the search can be speeded up with high security.
  • the secret search system may allow the data searcher to select whether to embed information that speeds up the search, that is, deterministic information, into the search query when generating the search query. it can. Therefore, according to the secret search system according to the present embodiment, the data searcher can select in advance not to embed deterministic information in the search query, which is excellent in functionality.
  • Embodiment 2 FIG. In the present embodiment, differences from the first embodiment will be mainly described. In the present embodiment, parts that are the same as those in the first embodiment are denoted by the same reference numerals, and description thereof may be omitted.
  • a secret search is performed using a counter value instead of the first random number r in the first embodiment.
  • the set R (D) of the first random numbers r is not generated in the encryption process S123a of the registration apparatus 300a. Further, in the search query generation process S134a of the search device 400a, a search query is generated without using the set R (D) of the first random numbers r.
  • the configuration of the confidential search system 100a according to the present embodiment will be described with reference to FIG.
  • the secret search system 100a includes a key generation device 200, a registration device 300a, a search device 400a, and a management device 500a.
  • FIG. 15 corresponds to FIG. 1 described in the first embodiment. Since the basic configuration and function of the confidential search system 100a are the same as those in FIG. 1 described in the first embodiment, the description thereof is omitted. Next, the configuration and function of each device included in the confidential search system 100a according to the present embodiment will be described.
  • the transmission unit 209 transmits the key K1 generated by the key generation unit 202 to the registration device 300a and the search device 400a, and manages the key K2 with the search device 400a.
  • the key K2 may be a known parameter, and the key K2 may be the same as the key K1. Further, encryption using the key K2 may be replaced with encryption without a key, and encryption using the key K2 may not be performed.
  • Registration device 300a Next, the configuration and function of registration apparatus 300a according to the present embodiment will be described with reference to FIG.
  • the configuration of registration apparatus 300a according to the present embodiment is the same as that of FIG. 3 described in the first embodiment.
  • the functions different from those of the first embodiment are as follows.
  • the input unit 311 includes a set U of stored data D input from a data registrant, a stored data name set ID of each element D of U, and a set W of related keywords w associated with each element D of U. receive. Further, the input unit 311 receives a deletion request 339 for deleting the storage data D.
  • the stored data name of the stored data D may be expressed as ID (D)
  • the related keyword set associated with the stored data D may be expressed as W (D).
  • the encryption unit 312 receives the key K1 from the key storage unit 302, receives the set U of stored data D, the stored data name set ID, and the set W of related keywords w from the input unit 311, and stores the stored data using the key K1.
  • the stored data D encrypted using the key K1 is assumed to be encrypted data E (D).
  • the related keyword w encrypted using the key K1 is defined as an encryption tag c.
  • a key different from the key K1 may be used to generate the encrypted data E (D). That is, the encryption unit 312 stores the storage data name ID (D) for all the storage data D received from the input unit 311, the storage data name ID (D) of this D, and the related keyword set W (D). And a pair of encryption tags c (ID (D), c) are generated.
  • (ID (D), c) may be written as stored encrypted data.
  • the stored data name ID (D) is associated with the encrypted data E (D). That is, the stored encrypted data (ID (D), c) represents a set of the encrypted data E (D) and the encryption tag c associated with the stored data name ID (D).
  • a set of stored encrypted data (ID (D), c) generated by the encryption unit 312 may be written as an encryption index C.
  • the transmission unit 319 transmits the encrypted index C received from the encryption unit 312 to the management apparatus 500a.
  • the transmission unit 319 transmits the deletion request 339 received from the input unit 311 to the management apparatus 500a.
  • Other functions are the same as those described in the first embodiment.
  • FIG. 17 is a diagram corresponding to FIG. 4 described in the first embodiment. 17 is different from FIG. 4 in the following configuration.
  • Search device 400 according to the present embodiment does not store first random number R in search storage unit 450.
  • Other configurations are the same as those in FIG. In the search device 400, functions different from those of the first embodiment are as follows.
  • the receiving unit 401 receives the key K1 and key K2 transmitted from the key generation apparatus 200 or the search result I (s) transmitted from the management apparatus 500.
  • the auxiliary information storage unit 422 stores the search history information 451 in the search storage unit 450. That is, the auxiliary information storage unit 422 receives the definitive instruction f and deterministic information t of the search keyword s from the encryption unit 412, and receives the search result I (s) of the search keyword s from the reception unit 401. Then, the auxiliary information storage unit 422 accumulates deterministic information t in the search history information 451 when it can be confirmed that the management apparatus 500 has created high-speed index information 554 described later.
  • the auxiliary information storage unit 422 does nothing if it cannot be confirmed that the high-speed index information 554 has been created.
  • a set of all deterministic information t accumulated in the search history information 451 of the search storage unit 450 by the auxiliary information storage unit 422 is written as T.
  • the encryption unit 412 receives the key K1 and the key K2 from the key storage unit 421, the set T of deterministic information t from the auxiliary information storage unit 422, and the search keyword s and the deterministic instruction f from the input unit 411.
  • the encryption unit 412 outputs the deterministic information t of the search keyword or the search query Q (s) to the transmission unit 419.
  • the functions of the reception unit 401, the auxiliary information storage unit 422, and the encryption unit 412 are the same as those in the first embodiment except that the first random number R is not handled. Other functions are the same as those in the first embodiment.
  • Management device 500a Next, the configuration and functions of the management apparatus 500a according to the present embodiment will be described with reference to FIG.
  • the configuration of the management apparatus 500a according to the present embodiment is the same as that in FIG. 5 described in the first embodiment.
  • functions different from those in the first embodiment are as follows.
  • the receiving unit 501 receives the key K2 transmitted from the key generation apparatus 200, the encrypted index C or the deletion request 339 transmitted from the registration apparatus 300, the deterministic information t or the search query Q (s) transmitted from the search apparatus 400. Receive.
  • the data storage unit 521 stores the encrypted index C received from the reception unit 501 in the management storage unit 550. Also, the data storage unit 521 deletes the stored encrypted data (ID (D), c) stored in the management storage unit 550 based on the deletion request 339 received from the reception unit 501.
  • the stored encrypted data (ID (D), c) is stored encrypted data 551
  • the encrypted data E (D) is encrypted data 552
  • the encrypted tag c is an encrypted tag 553. There is a case.
  • the collation unit 502 applies the search query Q (s) received from the reception unit 501, the key K ⁇ b> 2 received from the key storage unit 511, and all stored encrypted data (ID (D), c) received from the data storage unit 521.
  • a search result I (s) is generated and output to the transmission unit 509. If the search result I (s) is not an empty set, the matching unit 502 outputs the deterministic information t and the search result I (s) to the high-speed matching unit 531.
  • Other functions are the same as those in the first embodiment.
  • the hardware of each of the key generation device 200, the registration device 300a, the search device 400a, and the management device 500a included in the secret search system 100a according to the present embodiment is the same as that of the first embodiment.
  • the secret search process S100 of the secret search system 100a includes a key generation / storage process S110, a registration process S120a, a search process S130a, and a deletion process S140.
  • FIG. 19 is a diagram corresponding to FIG. 7 described in the first embodiment.
  • the same processes as those in FIG. 7 are denoted by the same reference numerals, and the description thereof may be omitted.
  • Steps S701, S702a, and S703 in FIG. 19 are encryption processing S123a executed by the registration apparatus 300a.
  • Steps S707 to S708 are a data storage process S125 executed by the management apparatus 500a.
  • the present embodiment is different from the first embodiment in that step S704 and the first random number storage process S124 from step S705 to step S706 do not exist.
  • the registration device 300a includes a storage data set U, a storage data name ID (D) of each element D of U, and a related keyword set associated with each element D of U. Encryption is performed on W (D), and an encrypted index C is generated. In addition, the registration device 300 transmits the encrypted index C and the encrypted data E (D) to the management device 500a. This will be specifically described below.
  • step S701 the input unit 311 of the registration device 300a sets the stored data D, the stored data name ID (D), and the related keyword w associated with the stored data D input from the data registrant from the keyboard, mouse, or storage device. W (D) is received. If there is no input of the storage data name ID (D) from the data registrant, the input unit 311 may assign the storage data name ID (D) of the input storage data D as a random number, or other storage An integer value greater than 0 may be assigned in order so as not to overlap with the data storage data name.
  • step S702a the encryption unit 312 of the registration apparatus 300a receives the key K1 stored in the key storage unit 302 in step S605.
  • the encryption unit 312 also stores the stored data set U input to the input unit 311 in step S701, the stored data name ID (D) of each element D of U, and the related keyword w of each element D of U. And a set W (D). Then, the encryption unit 312 performs the following processing.
  • One element of the related keyword set W (D) of the stored data D is set as a related keyword w.
  • the storage encryption data which are the elements of the encryption index C are generated as (ID (D), c).
  • j is a value assigned without duplication to w.
  • an encryption tag c E (K1, w, j) is generated for each stored data. Allocate without doing. That is, when considering a set of encryption tags c, the elements of the set are different from each other except a negligible probability.
  • j is a counter value. When j is a counter value, the counter value j is set as an initial value 1 for each keyword w, and 1 is added to j every time an encryption tag c of the same keyword w is generated.
  • j is a hash value of the hash chain.
  • the hash value j is set as an initial value 1 for each keyword w, and j is updated to the hash value of j each time an encryption tag c of the same keyword w is generated.
  • E is an encryption function.
  • E is a common key cryptosystem such as AES (Advanced Encryption Standard), a message authentication code such as HMAC (Hash-based Message Authentication Code), and a hash function such as SHA (Secure Hash Algorithm) -256. It is.
  • the encryption unit 312 of the registration apparatus 300a generates the encrypted index C.
  • the stored encrypted data may be generated using j such that j>
  • step S703 the transmission unit 319 of the registration apparatus 300a transmits the encrypted index C generated in step S702a to the management apparatus 500a.
  • the management device 500a encrypts the encrypted data E (D) obtained by encrypting the stored data D and the related keyword W (D) associated with the stored data D.
  • the encrypted index C generated by the execution is received.
  • the management device 500a stores the encrypted data E (D) and the encrypted index C in the management storage unit 550. This will be specifically described below.
  • step S707 the reception unit 501 of the management apparatus 500a receives the encrypted index C transmitted from the transmission unit 319 of the registration apparatus 300a in step S703 via the communication apparatus 950 of the management apparatus 500a.
  • step S708 the data storage unit 521 of the management device 500a stores the encrypted index C received by the reception unit 501 in step S707 in the management storage unit 550.
  • the encrypted index C is a set of a set of the encrypted data E (D) associated with the stored data name ID (D) and the encryption tag c.
  • FIG. 20 is a diagram corresponding to FIG. 8 described in the first embodiment.
  • the same processes as those in FIG. 8 are denoted by the same reference numerals, and the description thereof may be omitted.
  • Steps S801 to S803 are search query generation processing S134a executed by the search device 400a.
  • Steps S804 to S808 are determination processing S135a executed by the management apparatus 500a.
  • Steps S809 to S811 are result output processing S136 executed by the search device 400a.
  • the search device 400a acquires the search keyword s for searching the encrypted data E (D) stored in the management storage unit 550.
  • the search device 400a calculates deterministic information t that is uniquely determined from the search keyword s, and executes a probabilistic encryption method encryption using the deterministic information t for the search keyword s, thereby obtaining the search query Q (s). Generate. Then, the search device 400 transmits the search query Q (s) to the management device 500. This will be specifically described below.
  • step S801 the input unit 411 of the search device 400a receives the search keyword s and the definitive instruction f input from the keyboard, mouse, or storage device by the data searcher.
  • the deterministic instruction f instructs whether or not the deterministic information t is used when encrypting the search keyword s, and is specifically a flag.
  • the definitive instruction f is also called a high-speed index creation flag.
  • using deterministic information t when encrypting the search keyword s means embedding deterministic information t, which is information effective for high-speed search, in the search query Q (s).
  • the search device 400a obtains the deterministic instruction f, and when instructed to use the deterministic information t by the deterministic instruction f, the search device 400a executes the encryption of the stochastic cryptosystem using the deterministic information t for the search keyword s. To do. Further, when the deterministic instruction f instructs the search device 400a not to use the deterministic information t, the search device 400a performs the encryption of the stochastic cryptosystem without using the deterministic information t for the search keyword s.
  • the processing in step S801 is the same as that in the first embodiment.
  • step S802a the encryption unit 412 of the search device 400a sets the key K1 and the key K2 stored in the key storage unit 421 in step S607 and the set T of deterministic information t managed by the auxiliary information storage unit 422, step In step S801, the search keyword s and the definitive instruction f input to the input unit 411 are received.
  • the encryption unit 412 performs the following processing using the received data.
  • step S402 when the encryption unit 412 calculates the deterministic information t in step S401, the encryption unit 412 determines whether or not the calculated deterministic information t is accumulated in the search storage unit 450. When the calculated deterministic information t is accumulated in the search storage unit 450 (YES in S402), the encryption unit 412 transmits the deterministic information t to the management device 500a. Specifically, the encryption unit 412 confirms whether or not the calculated deterministic information t is included in the set T. When the calculated deterministic information t is included in the set T, the encryption unit 412 outputs the calculated deterministic information t to the transmission unit 419 (step S403).
  • step S404a the encryption unit 412 performs a search when the deterministic information t is not accumulated in the search storage unit 450 (NO in S402), that is, when the calculated deterministic information t is not included in the set T.
  • the query Q (s) is transmitted to the management device 500a.
  • the encryption unit 412 generates the search query Q (s) as follows.
  • represents bit string concatenation.
  • a set of the generated ciphertext qi is written as Q (s).
  • the transmission unit 419 transmits the deterministic information t or the search query Q (s) to the management device 500a.
  • step S802a the process of step S802a is complete
  • step S802a the processing from step S401 to step S403 and from step S405 to step S406 is the same as in the first embodiment.
  • step S803 the transmission unit 419 of the search device 400a transmits the deterministic information t or the search query Q (s) generated by the encryption unit 412 in step S802a to the management device 500a.
  • the search query generation process S134a of the search device 400a is thus completed, and the process proceeds to step S804.
  • the management apparatus 500a when the management apparatus 500a receives the search query Q (s) from the search apparatus 400a, the search keyword s obtained by decrypting the search query Q (s) is stored in the management storage unit 550. It is determined whether or not it matches the related keyword w obtained by decrypting the stored encryption tag c. When the search keyword s obtained by decrypting the search query Q (s) matches the related keyword w obtained by decrypting the encrypted tag c, the management device 500a encrypts the encrypted data corresponding to the encrypted tag c.
  • the search result I (s) including E (D) is transmitted to the search device 400a, and the deterministic information t obtained by decrypting the search query Q (s) and the encrypted data E ( D) is stored in the management storage unit 550 in association with each other.
  • the management device 500a acquires the encrypted data E (D) corresponding to the deterministic information t from the management storage unit 550, and acquires the acquired encrypted data E (D).
  • the search result I (s) including it is transmitted to the search device 400a. This will be specifically described below.
  • step S804 the reception unit 501 of the management device 500a receives the deterministic information t or the search query Q (s) transmitted from the transmission unit 419 of the search device 400 in step S803. In step S804a, it is determined whether it is a search query or deterministic information. If the receiving unit 501 receives the search query Q (s), the process proceeds to step 805a1, and if the receiving unit 501 receives deterministic information t, Goes to step 807.
  • step S805a1 when the information received by the receiving unit 501 in step S804 is the search query Q (s), the collation unit 502 of the management apparatus 500a uses the key K2 stored in the key storage unit 511 in step S609, step S708.
  • the following processing is performed on all the stored encrypted data (ID (D), c) stored by the data storage unit 521.
  • the collation unit 502 prepares an empty search result I (s).
  • the collation unit 502 performs the following processing on all the stored encrypted data (ID (D), c) and the search query Q (s).
  • a match determination is performed as follows for any pair (c, q) of all the encryption tags c included in the encryption index C and all the elements q of the search query Q (s).
  • adding the storage data name ID (D) to the search result I (s) includes the encrypted data E (D) associated with the storage data name ID (D) in the search result I (s).
  • the collation unit 502 outputs the search result I (s) to the transmission unit 509 if the search result I (s) is an empty set, that is, if YES in step S805a. If the search result I (s) is not an empty set, that is, if NO in Step 805a, the collation unit 502 outputs m1 as the deterministic information t and the search result I (s) to the high-speed collation unit 531.
  • the high-speed collation unit 531 of the management device 500a stores the deterministic information t obtained by decoding the search query Q (s) and the search result I (s) in the management storage unit 550 in association with each other. Specifically, the high-speed collation unit 531 receives the deterministic information t and the search result I (s) received from the collation unit 502 in step S805a1. Then, the high-speed collation unit 531 stores in the management storage unit 550 high-speed index information 554 that can retrieve the search result I (s) at high speed using the deterministic information t as a key. Specifically, the high-speed index information 554 is realized by using a hash table.
  • the high-speed collation unit 531 of the management apparatus 500a receives the deterministic information t from the receiving unit 501 when the information received by the receiving unit 501 in step S804 is deterministic information t.
  • the high-speed collation unit 531 extracts the corresponding search result I (s) from the high-speed index information 554 for the received deterministic information t, and outputs I (s) to the transmission unit 509. If there is no search result I (s) corresponding to the received deterministic information t, the high-speed collation unit 531 outputs an empty set to the transmission unit 509 as I (s).
  • step S808 the transmission unit 509 of the management device 500a transmits the search result I (s) received from the verification unit 502 or the high-speed verification unit 531 to the search device 400. This is the end of the determination process S135a of the management apparatus 500a, and the process proceeds to step S809. Note that the processing in step S803, step S804, and step S804a is the same as that in the first embodiment. Further, the processing in step S805a, step S806, step S807, and step S808 is the same as that in the first embodiment.
  • the search device 400a when the search device 400a receives the search result I (s) from the management device 500a, the deterministic information t is accumulated in the search storage unit 450.
  • the result output processing S136 from step S809 to step S811 is the same as in the first embodiment.
  • the search process S130a of the secret search system 100a ends.
  • the deletion process S140 of the confidential search system 100a is the same as the process of FIG. 10 described in the first embodiment, and thus the description thereof is omitted.
  • the secret search system includes an encryption unit of a search device that generates a search query embedded with information useful for performing a search at high speed, and a reception unit of a management device that receives the search query. Prepare.
  • the secret search system matches the encrypted search keyword from the data storage unit of the management device that stores the encrypted tag in which the related keyword is encrypted and the stored encrypted tag set. And a collation unit of a management device for taking out the data. Therefore, the secret search system according to the present embodiment is probabilistic and can search for an encryption tag using a search query in which deterministic information for accelerating the search process is embedded.
  • the search query is generated by probabilistic encryption.
  • the search query does not depend on definitive information about the search keyword. As a result, the search query has high frequency analysis resistance and high safety.
  • the encryption tag is generated by deterministic encryption.
  • the counter value j is duplicated for the same related keyword w.
  • the encryption tag c for the same related keyword w does not overlap.
  • the ciphertext is always changed by using the counter value, and frequency analysis is avoided.
  • the encryption tag has high frequency analysis resistance and high security.
  • the secret search system includes a key generation device, a registration device, a search device, and a management device, and the case where each device is a single computer has been described.
  • the key generation device and the registration device may be one computer.
  • the search device and the management device may be one computer.
  • all the apparatuses may be realized by one computer.
  • the secret search system may be configured by combining the devices of the secret search system.
  • each device of the secret search system only one of those described as “parts” may be adopted, or some arbitrary combinations may be adopted. That is, the functional block of each device of the secret search system is arbitrary as long as the functions described in the first and second embodiments can be realized. Each device may be configured in any combination of these functional blocks. In addition, each functional block may be configured as an arbitrary block configuration.
  • Embodiment 1 and 2 may implement combining some in Embodiment 1 and 2 partially. Or you may implement partially one invention among these embodiments. In addition, these embodiments may be implemented in any combination as a whole or in part. In addition, said embodiment is an essentially preferable illustration, Comprising: It does not intend restrict
  • 100 secret search system 101 network, 200 key generation device, 201 parameter reception unit, 202 key generation unit, 209 transmission unit, 250 key generation storage unit, 300 registration device, 301 reception unit, 302 key storage unit, 311 input unit, 312 encryption unit, 319 transmission unit, 350 registration storage unit, 339 deletion request, 400 search device, 401 reception unit, 411 input unit, 412 encryption unit, 419 transmission unit, 421 key storage unit, 422 auxiliary information storage unit, 439 Search result output unit, 450 Search storage unit, 451 Search history information, 500 management device, 501 reception unit, 511 key storage unit, 521 data storage unit, 531 high-speed verification unit, 502 verification unit, 509 transmission unit, 550 management storage Part, 551 stored encrypted data, 552 dark Data, 553 encryption tag, 554 high-speed index information, 610 secret search method, 620 secret search program, 909 processing circuit, 910 CPU, 920 storage device, 930 input interface, 940 output interface, 950 communication device, 921 memory, 922 Auxiliary storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

管理装置(500)は、暗号化タグ(C(D))と暗号化データとを対応付けて保管する。検索装置(400)は、管理装置(500)に保管されている暗号化データを検索する検索キーワード(s)を取得すると、検索キーワード(s)から一意に定まる確定的情報(t)を算出し、検索キーワード(s)に対し確定的情報(t)を用いて確率暗号方式の暗号化を実行することにより検索クエリ(Q(s))を生成する。検索装置(400)は、検索クエリ(Q(s))を管理装置(500)に送信する。管理装置(500)は、検索装置(400)から検索クエリ(Q(s))を受信すると、検索クエリ(Q(s))を復号して得られる検索キーワード(s)が、管理装置(500)に保管されている暗号化タグ(C(D))を復号して得られる関連キーワードと一致するか否かを判定する。

Description

秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
 本発明は、秘匿検索システム、秘匿検索方法及び秘匿検索プログラムに関する。
 秘匿検索とは、暗号化したままファイルを検索することができる技術である。クラウドサービスが普及し始めている現在において、安価かつ手間なく利用を開始することができるクラウドストレージが一般的になりつつある。ここで、クラッキング或いはクラウドの信頼性に対する懸念から、クラウドストレージ上ではファイルを暗号化して保管することが考えられる。秘匿検索は、暗号化されているファイルに対して、復号することなく検索できるため、安全性と機能性とを両立することが可能な技術である。
 秘匿検索では、2つの暗号化されたキーワードを用いて検索を実現する。1つ目は、暗号化ファイルに関連付ける暗号化キーワードで、以降では暗号化タグという。2つ目は、検索に用いるキーワードを暗号化したキーワードで、以降では暗号化クエリ或いは検索クエリという。秘匿検索では、この暗号化タグの集合に対し、検索クエリを用いて、復号することなく一致する暗号化タグを見つけることで、保管されているファイル或いは検索キーワードの情報を露出することなく検索を実現する。
 秘匿検索には、同じ検索キーワードに対して同じ暗号文を生成する確定的暗号化を用いる方式と同じ検索キーワードでも異なる暗号文を生成する確率的暗号化を用いる方式とがある。検索クエリが確定的な確定的暗号化を用いる秘匿検索は、暗号化されたまま検索キーワードの分布を得ることが可能なため、分布の偏りからキーワードを推測されてしまう可能性がある。このため、検索クエリが確率的な確率的暗号化を用いる秘匿検索は、確定的暗号化を用いる秘匿検索と比較して安全性が高い。しかし、一方で、検索クエリが確率的な秘匿検索は、検索クエリが確定的な秘匿検索と比較して検索処理が遅いという課題がある。
 検索クエリが確率的な秘匿検索の高速化手法として、特許文献1及び特許文献2がある。また、検索クエリが確定的な秘匿検索の高速化手法であるが、検索クエリが確定的であることを利用して、再検索を高速化する手法が非特許文献1に記されている。また、非特許文献2には、検索クエリが確定的暗号化により生成されていても、頻度分析攻撃に強い暗号化タグの構成法を開示している。
 特許文献1及び特許文献2では、検索キーワードに依存する確定的な値を暗号化クエリに含め、暗号化タグの集合にも同様に確定的な値を付加することで検索対象の暗号化タグを限定し、検索処理を高速化している。
特開2012-164031号公報 特開2013-152512号公報
 特許文献1及び特許文献2では、検索キーワードに依存する確定的な値を検索クエリに含め、暗号化タグの集合にも同様に確定的な値を付加している。このように、検索クエリ及び暗号化タグに、検索キーワードに依存する確定的な値を含んでいる点で、検索クエリが確率的であるとはいえず、検索処理高速化の代わりに安全性が低下するという課題がある。
 本発明は、確率的な検索クエリに検索処理を高速化するための情報を埋め込むことができる秘匿検索システムを提供することを目的とする。
 本発明に係る秘匿検索システムは、
 記憶装置である管理記憶部を備え、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードに対し確率暗号方式の暗号化を実行することにより生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管する管理装置と、
 前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索装置と
を備え、
 前記管理装置は、
 前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する。
 本発明に係る秘匿検索システムによれば、検索装置が、検索キーワードを取得すると、検索キーワードから一意に定まる確定的情報を算出し、検索キーワードに対し確定的情報を埋め込みつつ確率暗号方式の暗号化を実行することにより検索クエリを生成するので、確率的であり、かつ、検索処理を高速化するための確定的情報が埋め込まれた検索クエリを用いて暗号化タグを検索することができるという効果を奏する。
実施の形態1に係る秘匿検索システム100の構成図。 実施の形態1に係る鍵生成装置200の構成図。 実施の形態1に係る登録装置300の構成図。 実施の形態1に係る検索装置400の構成図。 実施の形態1に係る管理装置500の構成図。 実施の形態1に係る秘匿検索システム100の鍵生成保管処理S110のフロー図。 実施の形態1に係る秘匿検索システム100の登録処理S120のフロー図。 実施の形態1に係る秘匿検索システム100の検索処理S130のフロー図。 実施の形態1に係る検索装置400のステップS802のキーワード暗号化処理のフロー図。 実施の形態1に係る秘匿検索システム100の削除処理S140のフロー図。 実施の形態1に係る鍵生成装置200の変形例の構成図。 実施の形態1に係る登録装置300の変形例の構成図。 実施の形態1に係る検索装置400の変形例の構成図。 実施の形態1に係る管理装置500の変形例の構成図。 実施の形態2に係る秘匿検索システム100aの構成図。 実施の形態2に係る登録装置300aの構成図。 実施の形態2に係る検索装置400aの構成図。 実施の形態2に係る管理装置500aの構成図。 実施の形態2に係る秘匿検索システム100aの登録処理S120aのフロー図。 実施の形態2に係る秘匿検索システム100aの検索処理S130aのフロー図。 実施の形態2に係る検索処理S130aのキーワード暗号化処理S802aのフロー図。
 実施の形態1.
***構成の説明***
 図1を用いて、本実施の形態に係る秘匿検索システム100の構成について説明する。
 秘匿検索システム100は、鍵生成装置200と、登録装置300と、検索装置400と、管理装置500とを有する。
 秘匿検索システム100では、鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とのそれぞれがネットワーク101を経由して接続される。
 ネットワーク101は、鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とを接続する通信路である。ネットワーク101は、具体的には、インターネット、LAN(Local Area Network)であり、他の種類のネットワークが用いられてもよい。
 鍵生成装置200は、具体的には、PC(Personal Computer)である。鍵生成装置200は、暗号化に利用する鍵を作成し、ネットワーク101を介して、登録装置300と、検索装置400と、管理装置500とに鍵を送信する。なお、この鍵は、郵送のような方法で直接的に送信してもよい。
 登録装置300は、具体的には、PCである。登録装置300は、管理装置500に保管する保管データ及び保管データに関連付ける関連キーワードを暗号化して、暗号化データ及び暗号化タグを生成する。ここで、保管データは保管ファイルともいう。また、暗号化データは、暗号化ファイルともいう。登録装置300は、生成した暗号化データ及び暗号化タグを管理装置500に登録する登録端末として動作するコンピュータである。
 登録装置300は、削除要求装置としても機能する。即ち、登録装置300は、管理装置500に対して、管理装置500に保管されている暗号化データ及び暗号化タグの削除を要求する。以下において、暗号化データ及び暗号化タグを保管暗号化データともいう。
 検索装置400は、具体的には、PCである。検索装置400は、検索要求装置として機能する。検索装置400は、検索に用いる検索キーワードが暗号化された検索クエリを管理装置500に送信し、検索クエリと暗号化タグとの照合を要求する。
 管理装置500は、具体的には、大容量の記憶媒体を持つ計算機である。管理装置500は、保管暗号化データの保管装置として機能する。即ち、管理装置500は、登録装置300から暗号化データ及び暗号化タグの保管の要求があれば、それらを保管する。
 管理装置500は、検索装置としても機能する。即ち、管理装置500は、検索装置400からの検索の要求があれば、暗号化タグの集合と検索クエリとを照合し、検索結果を検索装置400に送信する。
 管理装置500は、削除装置としても機能する。即ち、管理装置500は、登録装置300から暗号化データ及び暗号化タグ、即ち保管暗号化データの削除の要求があれば、保管している保管暗号化データを削除する。
 なお、同じPC内に、鍵生成装置200、登録装置300および検索装置400のいずれか2つ以上が同時に含まれていてもよい。
 次に、秘匿検索システム100の有する各装置の構成について説明する。
<鍵生成装置200>
 まず、図2を用いて鍵生成装置200の構成について説明する。
 本実施の形態において、鍵生成装置200は、コンピュータである。鍵生成装置200は、CPU(Central Processing Unit)910、記憶装置920、入力インタフェース930、出力インタフェース940および通信装置950といったハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを含む。
 鍵生成装置200は、機能構成として、パラメータ受信部201と、鍵生成部202と、送信部209と、鍵生成記憶部250とを備える。以下の説明では、鍵生成装置200におけるパラメータ受信部201と、鍵生成部202と、送信部209との機能を、鍵生成装置200の「部」の機能という。鍵生成装置200の「部」の機能は、ソフトウェアで実現される。
 また、鍵生成記憶部250は、メモリ921で実現される。鍵生成記憶部250は、鍵生成装置200の各部で使用されるデータを記憶する。
 パラメータ受信部201は、パラメータλを受信する。
 鍵生成部202は、パラメータ受信部201から受け取ったパラメータλを入力として、データを暗号化又は復号するための鍵K1及び鍵K2を生成する。
 送信部209は、鍵生成部202で生成された鍵K1を、登録装置300と検索装置400とに送信する。また、送信部209は、鍵K2を、検索装置400と管理装置500とに送信する。
<登録装置300>
 次に、図3を用いて登録装置300の構成について説明する。
 本実施の形態において、登録装置300は、コンピュータである。登録装置300は、CPU910、記憶装置920、入力インタフェース930、出力インタフェース940および通信装置950といったハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを含む。
 登録装置300は、機能構成として、受信部301と、鍵保管部302と、入力部311と、暗号化部312と、送信部319と、登録記憶部350とを備える。以下の説明では、登録装置300における受信部301と、鍵保管部302と、入力部311と、暗号化部312と、送信部319との機能を、登録装置300の「部」の機能という。登録装置300の「部」の機能は、ソフトウェアで実現される。
 また、登録記憶部350は、メモリ921で実現される。登録記憶部350は、登録装置300の各部で使用されるデータを記憶する。
 受信部301は、鍵生成装置200から送信されてきた鍵K1を受信する。
 鍵保管部302は、受信部301から受け取った鍵K1を登録記憶部350に保管する。
 入力部311は、データ登録者から入力された保管データDと保管データ名ID(D)と保管データDに関連付ける関連キーワードwの集合W(D)とを、入力インタフェース930を介して受け取る。また、入力部311は、保管データDを削除する削除要求339を受け取る。
 暗号化部312は、鍵保管部302から鍵K1を受け取り、入力部311から保管データDと保管データ名ID(D)と関連キーワードwの集合W(D)とを受け取り、鍵K1を用いて保管データDと関連キーワードの集合W(D)とを暗号化する。暗号化部312は、暗号化に用いる第1乱数rの集合R(D)を生成する。
 鍵K1を用いて暗号化された保管データDを暗号化データE(D)とする。鍵K1と第1乱数rの集合R(D)とを用いて確率的に暗号化された関連キーワードwの集合W(D)を暗号化タグcの集合C(D)とする。
 即ち、暗号化部312は、保管データ名ID(D)と、暗号化タグcの集合C(D)の組(ID(D),C(D))と、第1乱数rの集合R(D)とを生成する。以降では、(ID(D),C(D))を保管暗号化データと書く場合がある。なお、保管データ名ID(D)には暗号化データE(D)が対応付けられているものとする。つまり、保管暗号化データ(ID(D),C(D))とは、保管データ名ID(D)に対応付けられた暗号化データE(D)と暗号化タグcの集合C(D)との組を表すものとする。
 なお、関連キーワードwの集合を関連キーワードW(D)、第1乱数rの集合を第1乱数R(D)、暗号化タグcの集合を暗号化タグC(D)と書く場合もある。
 送信部319は、暗号化部312から受け取った保管暗号化データ(ID(D),C(D))を管理装置500へ送信する。また、暗号化部312から受け取った第1乱数rの集合R(D)を検索装置400へ送信する。また、送信部319は、入力部311から受け取った削除要求339を管理装置500へ送信する。
<検索装置400>
 次に、図4を用いて検索装置400の構成について説明する。
 本実施の形態において、検索装置400は、コンピュータである。検索装置400は、CPU910、記憶装置920、入力インタフェース930、出力インタフェース940および通信装置950といったハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを含む。
 検索装置400は、機能構成として、受信部401と、入力部411と、暗号化部412と、送信部419と、鍵保管部421と、補助情報保管部422と、検索結果出力部439と、検索記憶部450とを備える。以下の説明では、検索装置400における受信部401と、入力部411と、暗号化部412と、送信部419と、鍵保管部421と、補助情報保管部422と、検索結果出力部439との機能を、検索装置400の「部」の機能という。検索装置400の「部」の機能は、ソフトウェアで実現される。
 また、検索記憶部450は、メモリ921で実現される。検索記憶部450は、検索装置400の各部で使用されるデータを記憶する。
 受信部401は、鍵生成装置200から送信されてきた鍵K1及び鍵K2、又は登録装置300から送信されてきた第1乱数rの集合R(D)、又は管理装置500から送信されてきた検索結果I(s)を受信する。
 鍵保管部421は、受信部401から受け取った鍵K1及び鍵K2を検索記憶部450に保管する。
 入力部411は、データ検索者から入力された検索キーワードs及び確定的指示fを受け取る。確定的指示fは、具体的にはフラグであり、高速索引作成フラグともいう。
 補助情報保管部422は、受信部401から受け取った第1乱数rの集合R(D)を検索記憶部450に保管する。以降では、補助情報保管部422により検索記憶部450に蓄積された全ての第1乱数の集合をRと書く。また、補助情報保管部422は、検索履歴情報451を検索記憶部450に保管する。即ち、補助情報保管部422は、暗号化部412から確定的指示f及び検索キーワードsの確定的情報tを受け取り、受信部401から検索キーワードsの検索結果I(s)を受け取る。そして、補助情報保管部422は、管理装置500により後述する高速索引情報554が作成されたことが確認できた場合は確定的情報tを検索履歴情報451に蓄積する。補助情報保管部422は、高速索引情報554が作成されたことが確認できなければ何も実行しない。以降では、補助情報保管部422により検索記憶部450の検索履歴情報451に蓄積された全ての確定的情報tの集合をTと書く。
 検索キーワードsの確定的情報tとは、検索キーワードsと一対一対応する識別子である。即ち、ある検索キーワードsとs’の確定的情報をそれぞれtとt’とするとき、sとs’が一致することは、tとt’が一致することと同値である。確定的情報tは、具体的には、ハッシュ関数といった手法で計算される。確定的情報tは、確定値ともいう。
 暗号化部412は、鍵保管部421から鍵K1及び鍵K2、補助情報保管部422から第1乱数の集合R及び確定的情報tの集合T、入力部411から検索キーワードs及び確定的指示fを受け取る。暗号化部412は、検索キーワードの確定的情報t又は検索クエリQ(s)を送信部419へ出力する。
 送信部419は、暗号化部412から受け取った確定的情報t又は検索クエリQ(s)を管理装置500へ通信装置950を介して送信する。
 検索結果出力部439は、受信部401から受け取った検索結果I(s)に基づき、出力インタフェース940を介して検索結果をデータ検索者に対して出力する。
<管理装置500>
 次に、図5を用いて管理装置500の構成について説明する。
 本実施の形態において、管理装置500は、コンピュータである。管理装置500は、CPU910、記憶装置920、入力インタフェース930、出力インタフェース940および通信装置950といったハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを含む。
 管理装置500は、機能構成として、受信部501と、鍵保管部511と、データ保管部521と、高速照合部531と、照合部502と、送信部509と、管理記憶部550とを備える。以下の説明では、管理装置500における受信部501と、鍵保管部511と、データ保管部521と、高速照合部531と、照合部502と、送信部509との機能を、管理装置500の「部」の機能という。管理装置500の「部」の機能は、ソフトウェアで実現される。
 また、管理記憶部550は、メモリ921で実現される。管理記憶部550は、管理装置500の各部で使用されるデータを記憶する。
 受信部501は、鍵生成装置200から送信された鍵K2、登録装置300から送信された保管暗号化データ(ID(D),C(D))或いは削除要求339、検索装置400から送信された確定的情報t又は検索クエリQ(s)を受信する。
 鍵保管部511は、受信部501から受け取った鍵K2を管理記憶部550に保管する。
 データ保管部521は、受信部501から受け取った保管暗号化データ(ID(D),C(D))を管理記憶部550に保管する。データ保管部521は、必要があれば、送信されてきた日時といった情報を保管暗号化データ(ID(D),C(D))と共に保管してもよい。また、データ保管部521は、受信部501から受け取った削除要求339に基づき、管理記憶部550に保管している保管暗号化データ(ID(D),C(D))を削除する。
 なお、以降の説明では、保管暗号化データ(ID(D),C(D))を保管暗号化データ551、暗号化データE(D)を暗号化データ552、暗号化タグcの集合C(D)を暗号化タグ553として説明する場合がある。
 高速照合部531は、照合部502から受け取った確定的情報tとその検索結果I(s)に対して、確定的情報tをキーとして検索結果I(s)を高速に取出せるような高速索引情報554を生成し、高速索引情報554を管理記憶部550に保管する。また、高速照合部531は、受信部501から受け取った確定的情報tに対して、高速索引情報554を用いて対応する検索結果I(s)を管理記憶部550から取り出し、送信部509へ検索結果I(s)を出力する。
 照合部502は、受信部501から受け取った検索クエリQ(s)、鍵保管部511から受け取った鍵K2、データ保管部521から受け取った全ての保管暗号化データ(ID(D),C(D))に対して、検索結果I(s)を生成し、送信部509へ出力する。また、検索結果I(s)が空集合でない場合、照合部502は、確定的情報tと検索結果I(s)を高速照合部531へ出力する。
 送信部509は、照合部502又は高速照合部531から受け取った検索結果I(s)を検索装置400へ送信する。
 次に、秘匿検索システム100が備える鍵生成装置200と登録装置300と検索装置400と管理装置500との各装置のハードウェアについて説明する。
 CPU910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。CPU910は、プロセッシングを行うIC(Integrated Circuit)である。CPU910は、プロセッサともいう。
 記憶装置920は、補助記憶装置922及びメモリ921を含む。補助記憶装置922は、具体的には、ROM(Read Only Memory)、フラッシュメモリ、又は、HDD(Hard Disk Drive)である。メモリ921は、具体的には、RAM(Random Access Memory)である。秘匿検索システム100が備える各装置の記憶部、即ち鍵生成記憶部250、登録記憶部350、検索記憶部450、管理記憶部550は、メモリ921により実現されるが、補助記憶装置922及びメモリ921の両方により実現されてもよい。
 入力インタフェース930は、マウス、キーボード、又はタッチパネルといった入力装置に接続されたポートである。入力インタフェース930は、具体的には、USB(Universal Serial Bus)端子である。なお、入力インタフェース930は、LAN(Local Area Network)と接続されるポートであってもよい。
 出力インタフェース940は、ディスプレイといった表示機器のケーブルが接続されるポートである。出力インタフェース940は、具体的には、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
 通信装置950は、データを受信するレシーバ及びデータを送信するトランスミッタを含む。通信装置950は、具体的には、通信チップ又はNIC(Network Interface Card)である。
 補助記憶装置922には、秘匿検索システム100の各装置の「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリにロードされ、CPU910に読み込まれ、CPU910によって実行される。補助記憶装置922には、OS(Operating System)も記憶されている。OSの少なくとも一部がメモリにロードされ、CPU910はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
 秘匿検索システム100の各装置は、1つのCPU910のみを備えていてもよいし、複数のCPU910を備えていてもよい。複数のCPU910が「部」の機能を実現するプログラムを連携して実行してもよい。
 「部」の処理の結果を示す情報、データ、信号値、及び、変数値は、補助記憶装置、メモリ、又は、CPU910内のレジスタ又はキャッシュメモリに記憶される。
 「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disc)といった可搬記録媒体に記憶されてもよい。
 なお、秘匿検索プログラム620は、秘匿検索システム100の各装置の「部」として説明している機能を実現するプログラムである。また、秘匿検索プログラムプロダクトと称されるものは、「部」として説明している機能を実現するプログラムが記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
***動作の説明***
 次に、本実施の形態に係る秘匿検索システム100における秘匿検索方法610及び秘匿検索プログラム620による秘匿検索処理S100について説明する。
 秘匿検索処理S100は、鍵生成保管処理S110と、登録処理S120と、検索処理S130と、削除処理S140とを有する。
<鍵生成保管処理S110>
 図6を用いて、本実施の形態に係る秘匿検索システム100の鍵生成保管処理S110について説明する。
 図6のステップS601からステップS609は、鍵生成装置200と、登録装置300と、検索装置400と、管理装置500とが実行する処理である。ステップS601からステップS603は鍵生成装置200により実行される鍵生成処理S112である。ステップS604からステップS605は登録装置300により実行される鍵生成処理S113である。ステップS606からステップS607は検索装置400により実行される鍵生成処理S114である。ステップS608からステップS609は管理装置500により実行される鍵生成処理S115である。
 ステップS601において、鍵生成装置200のパラメータ受信部201は、鍵生成装置200の通信装置950を介してパラメータλを受信する。
 ステップS602において、鍵生成装置200の鍵生成部202は、ステップS601において鍵生成装置200のパラメータ受信部201が受信したパラメータλを入力として、鍵K1及び鍵K2を生成する。
 ステップS603において、鍵生成装置200の送信部209は、ステップS602において鍵生成装置200の鍵生成部202が生成した鍵K1及び鍵K2を入力として、鍵K1を登録装置300と検索装置400とに送信する。また、鍵生成装置200の送信部209は、鍵K2を検索装置400と管理装置500とに送信する。
 ステップS604において、登録装置300の受信部301は、ステップS603において鍵生成装置200の送信部209が送信した鍵K1を、登録装置300の通信装置950を介して受信する。
 ステップS605において、登録装置300の鍵保管部302は、ステップS604において登録装置300の受信部301が受信した鍵K1を保管する。
 ステップS606において、検索装置400の受信部401は、ステップS603において鍵生成装置200の送信部209が送信した鍵K1及び鍵K2を、検索装置400の通信装置950を介して受信する。
 ステップS607において、検索装置400の鍵保管部421は、ステップS606において検索装置400の受信部401が受信した鍵K1及び鍵K2を保管する。
 ステップS608において、管理装置500の受信部501は、ステップS603において鍵生成装置200の送信部209が送信した鍵K2を、管理装置500の通信装置950を介して受信する。
 ステップS609において、管理装置500の鍵保管部511は、ステップS608において管理装置500の受信部501が受信した鍵K2を保管する。
 以上で、秘匿検索システム100の鍵生成保管処理S110は終了する。
 なお、鍵K1,K2は秘密情報であるため、鍵保管部302と、鍵保管部421とは、鍵K1,K2が外部に漏れないように厳重に保管する必要がある。
<登録処理S120>
 図7を用いて、本実施の形態に係る秘匿検索システム100の登録処理S120について説明する。
 図7のステップS701からステップS708は、登録装置300と検索装置400と管理装置500とが実行する処理である。ステップS701からステップS704は登録装置300により実行される暗号化処理S123である。ステップS705からステップS706は検索装置400により実行される第1乱数保管処理S124である。ステップS707からステップS708は管理装置500により実行されるデータ保管処理S125である。
 登録装置300の暗号化処理S123において、登録装置300は、第1乱数R(D)を生成し、第1乱数R(D)を用いて、関連キーワードW(D)に対し確率暗号方式の暗号化を実行し、暗号化タグC(D)を生成する。また、登録装置300は、暗号化タグC(D)と保管データDが暗号化された暗号化データE(D)とを管理装置500に送信する。また、登録装置300は、第1乱数R(D)を検索装置400に送信する。
 以下に具体的に説明する。
 ステップS701において、登録装置300の入力部311は、データ登録者から、キーボード、マウスあるいは記憶装置から入力された保管データDと保管データ名ID(D)と保管データDに関連付ける関連キーワードwの集合W(D)とを受け取る。もし、データ登録者から保管データ名ID(D)の入力がなければ、入力部311は、入力された保管データDの保管データ名ID(D)を乱数と割り当ててもよいし、他の保管データの保管データ名と重複しないように0より大きい整数の値を順に割り当ててもよい。
 ステップS702において、登録装置300の暗号化部312は、ステップS605で鍵保管部302に保管された鍵K1を受け取る。また、暗号化部312は、ステップS701で入力部311に入力された保管データDと保管データ名ID(D)と関連キーワードwの集合W(D)とを受け取る。そして、暗号化部312は、以下の処理を行う。
 暗号化部312は、関連キーワードwの集合W(D)の要素の一つを関連キーワードwとする。暗号化部312は、全ての関連キーワードwに対して、乱数生成器によって第1乱数rを生成し、c=E(K1,E(K1,w),r)とする。なお、Eは暗号化関数とする。具体的には、EはAES(Advanced Encryption Standard)のような共通鍵暗号方式、HMAC(Hash-based Message Authentication Code)のようなメッセージ認証符号、SHA(Secure Hash Algorithm)-256のようなハッシュ関数である。ここで、全ての関連キーワードwに対して計算した暗号文、即ち暗号化タグcの集合をC(D)と書く。また、このとき生成した全ての第1乱数rの集合をR(D)と書く。
 以上のように、暗号化部312は、保管暗号化データ(ID(D),C(D))と第1乱数rの集合R(D)とを生成する。
 ステップS703において、登録装置300の送信部319は、ステップS702で生成した保管暗号化データ(ID(D),C(D))を管理装置500へ送信する。
 ステップS704において、登録装置300の送信部319は、ステップS702で生成した第1乱数rの集合R(D)を検索装置400へ送信する。
 検索装置400の第1乱数保管処理S124のステップS705において、検索装置400の受信部401は、ステップS704で登録装置300の送信部319から送信された第1乱数rの集合R(D)を、検索装置400の通信装置950を介して受信する。
 ステップS706において、検索装置400の補助情報保管部422は、ステップS705で受信部401が受信した第1乱数rの集合R(D)を保管する。以降では、補助情報保管部422に蓄積された全ての第1乱数rの集合をRと書く。
 管理装置500のデータ保管処理S125において、管理装置500は、保管データDが暗号化された暗号化データE(D)と、保管データDに関連付けられた関連キーワードW(D)に対し確率暗号方式の暗号化を実行することにより生成された暗号化タグC(D)とを受信する。そして、管理装置500は、暗号化タグC(D)(暗号化タグ553)と暗号化データE(D)(暗号化データ552)とを対応付けて保管暗号化データ(ID(D),C(D))(保管暗号化データ551)として管理記憶部550に保管する。
 以下に具体的に説明する。
 ステップS707において、管理装置500の受信部501は、ステップS703で登録装置300の送信部319から送信された保管暗号化データ(ID(D),C(D))を、管理装置500の通信装置950を介して受信する。
 ステップS708において、管理装置500のデータ保管部521は、ステップS707で受信部501が受信した保管暗号化データ(ID(D),C(D))を管理記憶部550に保管する。上述したように、保管暗号化データ(ID(D),C(D))は、保管データ名ID(D)に対応付けられた暗号化データE(D)と、暗号化タグC(D)との組である。
 以上で、秘匿検索システム100の登録処理S120は終了する。
<検索処理S130>
 図8を用いて、本実施の形態に係る秘匿検索システム100の検索処理S130について説明する。
 図8のステップS801からステップS811は、検索装置400と管理装置500とが実行する処理である。ステップS801からステップS803は検索装置400により実行される検索クエリ生成処理S134である。ステップS804からステップS808は管理装置500によって実行される判定処理S135である。ステップS809からステップS811は検索装置400により実行される結果出力処理S136である。
 検索装置400の検索クエリ生成処理S134において、検索装置400は、管理記憶部550に保管されている暗号化データE(D)を検索する検索キーワードsを取得する。検索装置400は、検索キーワードsから一意に定まる確定的情報tを算出し、検索キーワードsに対し確定的情報tを用いて確率暗号方式の暗号化を実行することにより検索クエリQ(s)を生成する。そして、検索装置400は、検索クエリQ(s)を管理装置500に送信する。
 以下に具体的に説明する。
 ステップS801において、検索装置400の入力部411は、データ検索者により、キーボード、マウスあるいは記憶装置から入力された検索キーワードs及び確定的指示fを受け取る。
 ここで、確定的指示fは、検索キーワードsを暗号化する際に確定的情報tを用いるか否かを指示するものであり、具体的にはフラグである。確定的指示fは、高速索引作成フラグともいう。また、検索キーワードsを暗号化する際に確定的情報tを用いるとは、検索クエリQ(s)に高速検索に有効な情報である確定的情報tを埋め込むことを意味する。
 検索装置400は、確定的指示fを取得し、確定的指示fにより確定的情報tを用いると指示された場合、検索キーワードsに対し確定的情報tを用いて確率暗号方式の暗号化を実行する。
 また、検索装置400は、確定的指示fにより確定的情報tを用いないと指示された場合、検索キーワードsに対し確定的情報を用いずに確率暗号方式の暗号化を実行する。
 ステップS802において、検索装置400の暗号化部412は、ステップS607で鍵保管部421に保管された鍵K1及び鍵K2、ステップS706で補助情報保管部422により保管された第1乱数rの集合R、及び補助情報保管部422により管理される確定的情報tの集合T、ステップS801で入力部411に入力された検索キーワードs及び確定的指示fを受け取る。暗号化部412は、受け取ったデータを用いて以下の処理を行う。
 図9は、本実施の形態に係る検索装置400のステップS802のキーワード暗号化処理を示すフロー図である。
 ステップS401において、検索装置400は、検索キーワードsに対して確定暗号方式の暗号化を実行することにより確定的情報tを算出する。具体的には、暗号化部412は、検索キーワードsの確定的情報tをt=E(K1,s)とする。
 ステップS402において、暗号化部412は、確定的情報tを算出すると、算出した確定的情報tが検索記憶部450に蓄積されているか否かを判定する。暗号化部412は、算出した確定的情報tが検索記憶部450に蓄積されている場合(S402でYES)、この確定的情報tを管理装置500に送信する。
 具体的には、暗号化部412は、集合Tに、算出した確定的情報tが含まれているか確認する。算出した確定的情報tが集合Tに含まれている場合、暗号化部412は、算出した確定的情報tを送信部419へ出力する(ステップS403)。
 ステップS404において、暗号化部412は、確定的情報tが検索記憶部450に蓄積されていない場合(S402でNO)、即ち、算出した確定的情報tが集合Tに含まれていない場合、検索クエリQ(s)を管理装置500に送信する。
 暗号化部412は、検索クエリQ(s)を以下のように生成する。暗号化部412は、第2乱数を生成し、第2乱数と、登録装置300から受信した第1乱数Rと、確定的情報tとを用いて、検索キーワードsに対し確率暗号方式の暗号化を実行する。具体的には、暗号化部412は、第1乱数の集合Rの全ての要素ri(0<=i<|R|)に対して、暗号文diをdi=E(K1,t,ri)とする。次に、それぞれの暗号文diに対して、暗号文kiをki=E(K2,di)とする。さらに、乱数生成器によって第2乱数uiを生成し、暗号文qiをqi=(E(ki,t||ui),ui)とする。このとき、確定的指示fが偽の場合は、tの代わりに意味のない乱数を用いる。ここで、演算||はビット列の連結を表す。生成した暗号文qiの集合をQ(s)と書く。暗号文qの集合Q(s)を検索クエリと呼ぶ。最後に、検索クエリQ(s)を送信部419へ出力する(ステップS405)。また、確定的指示f及び確定的情報tを補助情報保管部422に出力する。
 ここで、暗号文qiに第2乱数uiを含めず、代わりにqi=E(ki,0λ||t||ui)とすることもできる。検索クエリQ(s)と暗号化タグC(D)との一致判定の際は、暗号文qiを復号した結果、平文に0λが現れるならば一致、そうでなければ不一致として判定できる。
 ステップS406において、送信部419は、確定的情報t又は検索クエリQ(s)を管理装置500に送信する。
 以上でステップS802の処理を終わり、図8のステップS803に進む。
 ステップS803において、検索装置400の送信部419は、ステップS802で暗号化部412が生成した、確定的情報t又は検索クエリQ(s)を管理装置500へ送信する。
 以上で検索装置400の検索クエリ生成処理S134の処理を終わり、ステップS804に進む。
 管理装置500の判定処理S135において、管理装置500は、検索装置400から検索クエリQ(s)を受信すると、検索クエリQ(s)を復号して得られる検索キーワードsが、管理記憶部550に保管されている暗号化タグC(D)を復号して得られる関連キーワードwと一致するか否かを判定する。管理装置500は、検索クエリQ(s)を復号して得られる検索キーワードsが、暗号化タグC(D)を復号して得られる関連キーワードwと一致した場合、暗号化タグC(D)に対応する暗号化データE(D)を含む検索結果I(s)を検索装置400に送信すると共に、検索クエリQ(s)を復号して得られる確定的情報tと暗号化タグC(D)に対応する暗号化データE(D)とを対応付けて管理記憶部550に記憶する。
 管理装置500は、検索装置400から確定的情報tを受信すると、確定的情報tに対応する暗号化データE(D)を管理記憶部550から取得し、取得した暗号化データE(D)を含む検索結果I(s)を検索装置400に送信する。
 以下に具体的に説明する。
 ステップS804において、管理装置500の受信部501は、ステップS803で検索装置400の送信部419から送信された、確定的情報t又は検索クエリQ(s)を受信する。
 ステップS804aにおいて、受信部501が検索クエリQ(s)を受信した場合、処理はステップ805に進み、受信部501が確定的情報tを受信した場合、処理はステップ807に進む。
 ステップS805において、管理装置500の照合部502は、ステップS804で受信部501が受信した情報が検索クエリQ(s)であった場合、ステップS609で鍵保管部511が保管した鍵K2、ステップS708でデータ保管部521が保管した全ての保管暗号化データ(ID(D),C(D))に対して、以下の処理を行う。
 照合部502は、空の検索結果I(s)を用意する。照合部502は、全ての保管暗号化データ(ID(D),C(D))と検索クエリQ(s)に対して、以下の処理を行う。暗号化タグC(D)の全ての要素cと、検索クエリQ(s)の全ての要素qの、任意のペア(c,q)に対して、一致判定を以下のようにして行う。qの2つの要素をe1,e2とする。暗号文kをk=E(K2,c)とする。復号関数であるDecを用いて、m=Dec(k,e1)とする。mをm1とm2に分割する。m2がe2と一致するとき、cとqは一致したと判定する。これは即ち、検索クエリQ(s)の要素と一致する要素が暗号化タグC(D)に含まれていることを示している。このとき、m1は確定的情報tである。cとqが一致した場合、検索結果I(s)に保管データ名ID(D)を加える。ここで、検索結果I(s)に保管データ名ID(D)を加えるとは、保管データ名ID(D)に対応付けられた暗号化データE(D)を検索結果I(s)に含めることを意味する。
 上記の処理は、検索クエリQ(s)を復号して得られる検索キーワードsが、管理記憶部550に保管されている暗号化タグC(D)を復号して得られる関連キーワードwと一致するか否かを判定する処理である。
 照合部502は、検索結果I(s)が空集合の場合、即ちステップS805aでYESの場合、送信部509に検索結果I(s)を出力する。照合部502は、検索結果I(s)が空集合でない場合、即ちステップ805aでNOの場合、高速照合部531に確定的情報tとしてのm1及び検索結果I(s)を出力する。
 ステップS806において、管理装置500の高速照合部531は、検索クエリQ(s)を復号して得られる確定的情報tと暗号化タグC(D)に対応する暗号化データE(D)とを対応付けて管理記憶部550に記憶する。具体的には、高速照合部531は、ステップS805で照合部502から受け取った確定的情報t及び検索結果I(s)を入力とする。そして、高速照合部531は、確定的情報tをキーとして検索結果I(s)を高速に取出せる高速索引情報554を管理記憶部550に保管する。高速索引情報554は、具体的にはハッシュテーブルを利用することにより実現される。
 ステップS807において、管理装置500の高速照合部531は、ステップS804で受信部501が受信した情報が確定的情報tであった場合、受信部501から確定的情報tを受け取る。高速照合部531は、受け取った確定的情報tに対して、高速索引情報554から対応する検索結果I(s)を取り出し、送信部509へI(s)を出力する。高速照合部531は、受け取った確定的情報tに対応する検索結果I(s)がない場合、送信部509へI(s)として空集合を出力する。
 ステップS808において、管理装置500の送信部509は、照合部502又は高速照合部531から受け取った検索結果I(s)を検索装置400へ送信する。
 以上で管理装置500の判定処理S135の処理を終わり、ステップS809に進む。
 検索装置400の結果出力処理S136において、検索装置400は、管理装置500から検索結果I(s)を受信すると、確定的情報tを検索記憶部450に蓄積する。
 以下に具体的に説明する。
 ステップS809において、検索装置400の受信部401は、ステップS808で管理装置500の送信部509が送信した検索結果I(s)を受信する。
 ステップS810において、検索装置400の補助情報保管部422は、ステップS802で暗号化部412が生成した検索キーワードsの確定的情報t及び確定的指示fを受け取る。そして、補助情報保管部422は、ステップS809で受信部401が受信した検索キーワードsに対する検索結果I(s)を受け取り、以下の処理を行う。
 確定的指示fが真、かつ、検索結果I(s)が空集合でない場合、即ち確定的情報tが埋め込まれた検索クエリQ(s)に対して暗号化データE(D)ありの場合は、補助情報保管部422は、確定的情報tを検索記憶部450に保管する。また、検索結果I(s)が空集合、即ち検索クエリQ(s)に対して暗号化データE(D)なしの場合、かつ、確定的情報tが補助情報保管部422により既に検索記憶部450に保管されている場合、補助情報保管部422は、保管されている確定的情報tを削除する。
 ステップS811において、検索装置400の検索結果出力部439は、受信部401から受け取った検索結果I(s)に基づいて、出力インタフェース940を介してディスプレイに検索結果を出力する。検索結果出力部439は、検索結果I(s)に暗号化データE(D)が含まれる場合は、暗号化データE(D)の保管データ名ID(D)をディスプレイに出力する。また、検索結果出力部439は、検索結果I(s)が空集合の場合は、検索キーワードsによる検索が失敗したことを表す情報をディスプレイに出力する。
 ステップS811により、秘匿検索システム100の検索処理は終了する。
<削除処理S140>
 図10を用いて、本実施の形態に係る秘匿検索システム100の削除処理S140について説明する。
 図10のステップS901からステップS904は、登録装置300と管理装置500とが実行する処理である。ステップS901からステップS902は登録装置300により実行される。ステップS903からステップS904は管理装置500によって実行される。
 削除処理S140において、管理装置500は、管理記憶部550に保管されている暗号化データ552を削除する削除要求339を受信し、削除要求339に基づいて管理記憶部550から暗号化データ552を含む保管暗号化データ551を削除する。
 以下に具体的に説明する。
 ステップS901において、登録装置300の入力部311は、データ登録者から削除したい保管暗号化データについての削除データ名を含む削除要求339を受け取る。なお、削除要求339は、削除データ名そのものでもよい。また、削除要求339は、暗号化データ552に対応する保管暗号化データを特定できるものであれば何でもよい。
 ステップS902において、登録装置300の送信部319は、ステップS901で入力部311に入力された削除要求339を管理装置500へ送信する。
 ステップS903において、管理装置500の受信部501は、ステップS902で登録装置300の送信部319から送信されてきた削除要求339を受信する。
 ステップS904において、管理装置500のデータ保管部521及び高速照合部531は、ステップS903で受信部501が受信した削除要求に含まれる削除データ名に基づき、保管している保管暗号化データ551を削除する。
 ステップS904により、秘匿検索システム100の削除処理S140は終了する。
***他の構成***
 本実施の形態では、秘匿検索システム100の各装置の機能がソフトウェアで実現されるが、変形例として、秘匿検索システム100の各装置の機能がハードウェアで実現されてもよい。
 この本実施の形態の変形例について、図11から図14を用いて説明する。
 図11は、本実施の形態の変形例に係る鍵生成装置200の構成を示す図である。
 図12は、本実施の形態の変形例に係る登録装置300の構成を示す図である。
 図13は、本実施の形態の変形例に係る検索装置400の構成を示す図である。
 図14は、本実施の形態の変形例に係る管理装置500の構成を示す図である。
 図11から図14に示すように、秘匿検索システム100の各装置は、CPU910及び記憶装置920に替えて処理回路909を備える。
 処理回路909は、上述した各装置の「部」の機能及び各装置の記憶部を実現する専用の電子回路である。処理回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、又は、FPGA(Field-Programmable Gate Array)である。
 秘匿検索システム100の各装置の「部」の機能は、1つの処理回路909で実現されてもよいし、複数の処理回路909に分散して実現されてもよい。
 別の変形例として、秘匿検索システム100の各装置の「部」の機能及び各装置の記憶部がソフトウェアとハードウェアとの組合せで実現されてもよい。即ち、各装置の一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
 CPU910、記憶装置920、及び、処理回路909を、総称して「プロセッシングサーキットリ」という。つまり、秘匿検索システム100の各装置の構成が図2から図5及び図11から図14のいずれに示した構成であっても、「部」の機能は、プロセッシングサーキットリにより実現される。
 「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。また、「部」の機能をファームウェアで実現してもよい。
***本実施の形態の効果の説明***
 本実施の形態に係る秘匿検索システムは、検索を高速に行うために有用な情報が埋め込まれた検索クエリを生成する検索装置の暗号化部と、検索クエリを受信する管理装置の受信部と、関連キーワードが暗号化された暗号化タグを保管する管理装置のデータ保管部と、保管されている暗号化タグ集合の中から、暗号化された検索キーワードと一致するものを取り出す管理装置の照合部とを備える。よって、確率的であり、かつ、検索処理を高速化するための確定的情報が埋め込まれた検索クエリを用いて暗号化タグを検索することができる。また、本実施の形態に係る秘匿検索システムは、暗号化タグ及び検索クエリが、確率的暗号化によって生成されている。よって、暗号化タグ及び検索クエリは、保管データに関連付けられている関連キーワード及び検索キーワードの確定的情報に依らない。これにより暗号化タグ及び検索クエリは頻度分析耐性が高くなり、安全性が高い。
 さらに、本実施の形態に係る秘匿検索システムは、一度過去に検索された検索キーワードに対する検索クエリに対しては、高速に検索結果を取り出すことができる高速照合部を備える。よって、検索クエリに対して検索結果の保管暗号化データが存在する場合のみ、検索クエリに対する確定的情報を抽出させ、次回以降の再検索の際はこの確定的情報を基に高速に検索結果を取り出すことができる。この確定的情報の抽出は検索結果の保管暗号化データが存在する場合のみ行われるという点が、安全性が高いまま検索を高速化できるとする理由である。
 さらに、本実施の形態に係る秘匿検索システムは、検索クエリ生成時、検索を高速にする情報、すなわち確定的情報を検索クエリに埋め込むかどうかを、確定的指示によりデータ検索者に選択させることができる。よって、本実施の形態に係る秘匿検索システムよれば、事前にデータ検索者が検索クエリに確定的情報を埋め込まないという選択をすることも可能であり、機能性に優れている。
 実施の形態2.
 本実施の形態では、主に、実施の形態1と異なる点について説明する。
 本実施の形態において、実施の形態1と共通する部分については、同一の符号を付し、その説明を省略する場合がある。
 本実施の形態に係る秘匿検索システム100aでは、実施の形態1における第1乱数rの代わりに、カウンタ値を用いて秘匿検索を行う。本実施の形態では、登録装置300aの暗号化処理S123aにおいて、第1乱数rの集合R(D)を生成しない。また、検索装置400aの検索クエリ生成処理S134aにおいて、第1乱数rの集合R(D)を用いずに、検索クエリを生成する。
 図15を用いて、本実施の形態に係る秘匿検索システム100aの構成について説明する。
 秘匿検索システム100aは、鍵生成装置200と、登録装置300aと、検索装置400aと、管理装置500aとを有する。図15は、実施の形態1で説明した図1に対応する。秘匿検索システム100aの基本的な構成及び機能については、実施の形態1で説明した図1と同様であるため、その説明を省略する。
 次に、本実施の形態に係る秘匿検索システム100aの有する各装置の構成及び機能について説明する。
<鍵生成装置200>
 本実施の形態に係る鍵生成装置200の構成及び機能は、実施の形態1で説明した図2と同様であるため、説明を省略する。
 なお、実施の形態1で説明したように、送信部209は、鍵生成部202で生成された鍵K1を、登録装置300aと検索装置400aとに送信し、鍵K2を、検索装置400aと管理装置500aとに送信する。このとき、鍵K2は公知のパラメータとしてもよいし、鍵K2は鍵K1と同一でも構わない。また、鍵K2を用いた暗号化を鍵なしの暗号化で置き換えても構わないし、鍵K2を用いた暗号化を行わなくても構わない。
<登録装置300a>
 次に、図16を用いて、本実施の形態に係る登録装置300aの構成及び機能について説明する。
 本実施の形態に係る登録装置300aの構成は、実施の形態1で説明した図3と同様である。登録装置300aにおいて、実施の形態1と異なる機能は以下の通りである。
 入力部311は、データ登録者から入力された保管データDの集合Uと、Uのそれぞれの要素Dの保管データ名集合IDと、Uのそれぞれの要素Dに関連付ける関連キーワードwの集合Wとを受け取る。また、入力部311は、保管データDを削除する削除要求339を受け取る。本実施の形態では、保管データDの保管データ名をID(D)と表記し、保管データDに関連付けられる関連キーワード集合をW(D)と表記する場合もある。
 暗号化部312は、鍵保管部302から鍵K1を受け取り、入力部311から保管データDの集合Uと保管データ名集合IDと関連キーワードwの集合Wとを受け取り、鍵K1を用いて保管データDと、保管データDに関連付られる関連キーワードの集合W(D)とを暗号化する。
 鍵K1を用いて暗号化された保管データDを暗号化データE(D)とする。鍵K1を用いて暗号化された関連キーワードwを暗号化タグcとする。なお、暗号化データE(D)の生成には鍵K1と異なる鍵を用いてもよい。
 即ち、暗号化部312は、入力部311から受け取った全ての保管データDと、このDの保管データ名ID(D)と関連キーワード集合W(D)に対して、保管データ名ID(D)と暗号化タグcの組(ID(D),c)を生成する。以降では、(ID(D),c)を保管暗号化データと書く場合がある。なお、保管データ名ID(D)には暗号化データE(D)が対応付けられているものとする。つまり、保管暗号化データ(ID(D),c)とは、保管データ名ID(D)に対応付けられた暗号化データE(D)と暗号化タグcとの組を表すものとする。なお、暗号化部312が生成した保管暗号化データ(ID(D),c)の集合を暗号化索引Cと書く場合がある。
 送信部319は、暗号化部312から受け取った暗号化索引Cを管理装置500aへ送信する。また、送信部319は、入力部311から受け取った削除要求339を管理装置500aへ送信する。
 その他の機能については、実施の形態1で説明したものと同様である。
<検索装置400a>
 次に、図17を用いて、本実施の形態に係る検索装置400aの構成及び機能について説明する。
 図17は、実施の形態1で説明した図4に対応する図である。図17において図4と異なる構成は次の通りである。本実施の形態に係る検索装置400は、検索記憶部450に第1乱数Rを記憶していない。その他の構成は、図4と同様である。
 また、検索装置400において、実施の形態1と異なる機能は以下の通りである。
 受信部401は、鍵生成装置200から送信されてきた鍵K1及び鍵K2、又は管理装置500から送信されてきた検索結果I(s)を受信する。
 補助情報保管部422は、検索履歴情報451を検索記憶部450に保管する。即ち、補助情報保管部422は、暗号化部412から確定的指示f及び検索キーワードsの確定的情報tを受け取り、受信部401から検索キーワードsの検索結果I(s)を受け取る。そして、補助情報保管部422は、管理装置500により後述する高速索引情報554が作成されたことが確認できた場合は確定的情報tを検索履歴情報451に蓄積する。補助情報保管部422は、高速索引情報554が作成されたことが確認できなければ何も実行しない。以降では、補助情報保管部422により検索記憶部450の検索履歴情報451に蓄積された全ての確定的情報tの集合をTと書く。
 暗号化部412は、鍵保管部421から鍵K1及び鍵K2、補助情報保管部422から確定的情報tの集合T、入力部411から検索キーワードs及び確定的指示fを受け取る。暗号化部412は、検索キーワードの確定的情報t又は検索クエリQ(s)を送信部419へ出力する。
 受信部401、補助情報保管部422及び暗号化部412の機能については、第1乱数Rを扱わないという点以外は、実施の形態1と同様である。また、その他の機能については、実施の形態1と同様である。
<管理装置500a>
 次に、図18を用いて、本実施の形態に係る管理装置500aの構成及び機能について説明する。
 本実施の形態に係る管理装置500aの構成は、実施の形態1で説明した図5と同様である。管理装置500aにおいて、実施の形態1と異なる機能は以下の通りである。
 受信部501は、鍵生成装置200から送信された鍵K2、登録装置300から送信された暗号化索引Cあるいは削除要求339、検索装置400から送信された確定的情報t又は検索クエリQ(s)を受信する。
 データ保管部521は、受信部501から受け取った暗号化索引Cを管理記憶部550に保管する。また、データ保管部521は、受信部501から受け取った削除要求339に基づき、管理記憶部550に保管している保管暗号化データ(ID(D),c)を削除する。
 なお、以降の説明では、保管暗号化データ(ID(D),c)を保管暗号化データ551、暗号化データE(D)を暗号化データ552、暗号化タグcを暗号化タグ553として説明する場合がある。
 照合部502は、受信部501から受け取った検索クエリQ(s)、鍵保管部511から受け取った鍵K2、データ保管部521から受け取った全ての保管暗号化データ(ID(D),c)に対して、検索結果I(s)を生成し、送信部509へ出力する。また、検索結果I(s)が空集合でない場合、照合部502は、確定的情報tと検索結果I(s)を高速照合部531へ出力する。
 その他の機能については、実施の形態1と同様である。
 本実施の形態に係る秘匿検索システム100aが備える鍵生成装置200と登録装置300aと検索装置400aと管理装置500aとの各装置のハードウェアについては、実施の形態1と同様である。
***動作の説明***
 次に、本実施の形態に係る秘匿検索システム100aにおける秘匿検索方法610及び秘匿検索プログラム620による秘匿検索処理S100aについて説明する。
 実施の形態1と同様に、秘匿検索システム100aの秘匿検索処理S100は、鍵生成保管処理S110と、登録処理S120aと、検索処理S130aと、削除処理S140とを有する。
<鍵生成保管処理S110>
 本実施の形態に係る秘匿検索システム100の鍵生成保管処理S110は、実施の形態1で説明した図6と同様であるため説明を省略する。
<登録処理S120a>
 図19を用いて、本実施の形態に係る秘匿検索システム100aの登録処理S120aについて説明する。図19は、実施の形態1で説明した図7に対応する図である。図19において図7と同様の処理については同一の符号を付し、その説明を省略する場合がある。
 図19のステップS701、ステップS702a及びステップS703は登録装置300aにより実行される暗号化処理S123aである。ステップS707からステップS708は管理装置500aにより実行されるデータ保管処理S125である。本実施の形態では、ステップS704と、ステップS705からステップS706の第1乱数保管処理S124とが存在しない点が実施の形態1とは異なる。
 登録装置300aの暗号化処理S123aにおいて、登録装置300aは、保管データ集合Uと、Uのそれぞれの要素Dの保管データ名ID(D)と、Uのそれぞれの要素Dに関連付けられた関連キーワード集合W(D)に対し暗号化を実行し、暗号化索引Cを生成する。また、登録装置300は、暗号化索引Cと、暗号化データE(D)とを管理装置500aに送信する。
 以下に具体的に説明する。
 ステップS701において、登録装置300aの入力部311は、データ登録者から、キーボード、マウスあるいは記憶装置から入力された保管データDと保管データ名ID(D)と保管データDに関連付ける関連キーワードwの集合W(D)とを受け取る。もし、データ登録者から保管データ名ID(D)の入力がなければ、入力部311は、入力された保管データDの保管データ名ID(D)を乱数と割り当ててもよいし、他の保管データの保管データ名と重複しないように0より大きい整数の値を順に割り当ててもよい。
 ステップS702aにおいて、登録装置300aの暗号化部312は、ステップS605で鍵保管部302に保管された鍵K1を受け取る。また、暗号化部312は、ステップS701で入力部311に入力された保管データ集合Uと、Uのそれぞれの要素Dの保管データ名ID(D)と、Uのそれぞれの要素Dの関連キーワードwの集合W(D)とを受け取る。そして、暗号化部312は、以下の処理を行う。
 保管データDの関連キーワードの集合W(D)の要素の一つを関連キーワードwとする。暗号化部312は、Wに含まれる全ての関連キーワードwに対して、c=E(K1,w,j)とする。また、(ID(D),c)として、暗号化索引Cの要素である保管暗号化データを生成する。ただし、jはwに対して重複なく割り振られる値である。具体的には、複数の保管データに関連するキーワードwが存在する場合、それぞれの保管データに対して暗号化タグc=E(K1,w,j)が生成されるが、このときjは重複することなく割り振る。すなわち、暗号化タグcの集合を考えると、無視できる確率を除いてその集合の要素は互いに異なる。jは、具体的には、カウンタ値である。jをカウンタ値とした場合、キーワードw毎にカウンタ値jを初期値1として設定し、同じキーワードwの暗号化タグcを生成するたびにjに1を加える。jは、具体的には、ハッシュチェインのハッシュ値である。jをハッシュ値とした場合、キーワードw毎にハッシュ値jを初期値1として設定し、同じキーワードwの暗号化タグcを生成するたびにjをjのハッシュ値に更新する。なお、Eは暗号化関数とする。具体的には、EはAES(Advanced Encryption Standard)のような共通鍵暗号方式、HMAC(Hash-based Message Authentication Code)のようなメッセージ認証符号、SHA(Secure Hash Algorithm)-256のようなハッシュ関数である。
 以上のように、登録装置300aの暗号化部312は、暗号化索引Cを生成する。
 なお、関連キーワードwが関連付いていない保管データDに対して、j>|U|であるようなjを用いて保管暗号化データを生成し暗号化索引Cに追加してよい。これにより、暗号化索引Cにおける保管データ名の出現頻度を均一にすることもできる。また、どの保管データDにも関連付いていない関連キーワードに対して保管暗号化データを生成し暗号化索引Cに追加してよい。これにより、暗号化索引Cのサイズを調節することもできる。
 ステップS703において、登録装置300aの送信部319は、ステップS702aで生成した暗号化索引Cを管理装置500aへ送信する。
 管理装置500aのデータ保管処理S125において、管理装置500aは、保管データDが暗号化された暗号化データE(D)と、保管データDに関連付けられた関連キーワードW(D)に対し暗号化を実行することにより生成された暗号化索引Cとを受信する。そして、管理装置500aは、暗号化データE(D)と暗号化索引Cとを管理記憶部550に保管する。
 以下に具体的に説明する。
 ステップS707において、管理装置500aの受信部501は、ステップS703で登録装置300aの送信部319から送信された暗号化索引Cを、管理装置500aの通信装置950を介して受信する。
 ステップS708において、管理装置500aのデータ保管部521は、ステップS707で受信部501が受信した暗号化索引Cを管理記憶部550に保管する。上述したように、暗号化索引Cは、保管データ名ID(D)に対応付けられた暗号化データE(D)と、暗号化タグcとの組の集合である。
 以上で、秘匿検索システム100aの登録処理S120aは終了する。
<検索処理S130a>
 図20を用いて、本実施の形態に係る秘匿検索システム100aの検索処理S130aについて説明する。図20は、実施の形態1で説明した図8に対応する図である。図20において、図8と同様の処理ついては同一の符号を付し、その説明を省略する場合がある。
 図20のステップS801からステップS811は、検索装置400aと管理装置500aとが実行する処理である。ステップS801からステップS803は検索装置400aにより実行される検索クエリ生成処理S134aである。ステップS804からステップS808は管理装置500aによって実行される判定処理S135aである。ステップS809からステップS811は検索装置400aにより実行される結果出力処理S136である。
 検索装置400aの検索クエリ生成処理S134aにおいて、検索装置400aは、管理記憶部550に保管されている暗号化データE(D)を検索する検索キーワードsを取得する。検索装置400aは、検索キーワードsから一意に定まる確定的情報tを算出し、検索キーワードsに対し確定的情報tを用いて確率暗号方式の暗号化を実行することにより検索クエリQ(s)を生成する。そして、検索装置400は、検索クエリQ(s)を管理装置500に送信する。
 以下に具体的に説明する。
 ステップS801において、検索装置400aの入力部411は、データ検索者により、キーボード、マウスあるいは記憶装置から入力された検索キーワードs及び確定的指示fを受け取る。
 ここで、確定的指示fは、検索キーワードsを暗号化する際に確定的情報tを用いるか否かを指示するものであり、具体的にはフラグである。確定的指示fは、高速索引作成フラグともいう。また、検索キーワードsを暗号化する際に確定的情報tを用いるとは、検索クエリQ(s)に高速検索に有効な情報である確定的情報tを埋め込むことを意味する。
 検索装置400aは、確定的指示fを取得し、確定的指示fにより確定的情報tを用いると指示された場合、検索キーワードsに対し確定的情報tを用いて確率暗号方式の暗号化を実行する。
 また、検索装置400aは、確定的指示fにより確定的情報tを用いないと指示された場合、検索キーワードsに対し確定的情報tを用いずに確率暗号方式の暗号化を実行する。ステップS801の処理は、実施の形態1と同様である。
 ステップS802aにおいて、検索装置400aの暗号化部412は、ステップS607で鍵保管部421に保管された鍵K1及び鍵K2、及び補助情報保管部422により管理される確定的情報tの集合T、ステップS801で入力部411に入力された検索キーワードs及び確定的指示fを受け取る。暗号化部412は、受け取ったデータを用いて以下の処理を行う。
 図21を用いて、本実施の形態に係る検索処理S130aのキーワード暗号化処理S802aについて説明する。図21は、実施の形態1で説明した図9に対応する図である。図21において、図9と同様の処理ついては同一の符号を付し、その説明を省略する場合がある。
 ステップS401において、検索装置400aは、検索キーワードsに対して確定暗号方式の暗号化を実行することにより確定的情報tを算出する。具体的には、暗号化部412は、検索キーワードsの確定的情報tをt=E(K1,s)とする。なお、確定的情報tの生成に用いる鍵はK1と異なる鍵を用いてもよい。
 ステップS402において、暗号化部412は、ステップS401で確定的情報tを算出すると、算出した確定的情報tが検索記憶部450に蓄積されているか否かを判定する。暗号化部412は、算出した確定的情報tが検索記憶部450に蓄積されている場合(S402でYES)、この確定的情報tを管理装置500aに送信する。
 具体的には、暗号化部412は、集合Tに、算出した確定的情報tが含まれているか確認する。算出した確定的情報tが集合Tに含まれている場合、暗号化部412は、算出した確定的情報tを送信部419へ出力する(ステップS403)。
 ステップS404aにおいて、暗号化部412は、確定的情報tが検索記憶部450に蓄積されていない場合(S402でNO)、すなわち、算出した確定的情報tが集合Tに含まれていない場合、検索クエリQ(s)を管理装置500aに送信する。
 暗号化部412は、検索クエリQ(s)を以下のように生成する。暗号化部412は、乱数を生成し、確定的情報tとを用いて、検索キーワードsに対し確率暗号方式の暗号化を実行する。具体的には、暗号化部412は、1から保管データ集合Uの要素数のカウンタ値j(1<=j<|U|)に対して、暗号文diをdi=E(K1,w,j)とする。次に、それぞれの暗号文diに対して、暗号文kiをki=E(K2,di)とする。さらに、乱数生成器によって乱数vを生成し、暗号文qiをqi=(E(ki,t||v),v)とする。このとき、確定的指示fが偽の場合は、tの代わりに意味のない乱数を用いる。ここで、演算||はビット列の連結を表す。生成した暗号文qiの集合をQ(s)と書く。暗号文qiの集合Q(s)を検索クエリと呼ぶ。なお、乱数vは、qiそれぞれに含めずに、Q(s)にひとつだけ含めてもよい。最後に、検索クエリQ(s)を送信部419へ出力する(ステップS405)。また、確定的指示f及び確定的情報tを補助情報保管部422に出力する。
 なお、暗号文qiに乱数vを含めず、代わりにqi=E(ki,0λ||t||vi)とすることもできる。検索クエリQ(s)と暗号化タグcとの一致判定の際は、暗号文qiを復号した結果、平文に0λが現れるならば一致、そうでなければ不一致として判定できる。
 ステップS406において、送信部419は、確定的情報t又は検索クエリQ(s)を管理装置500aに送信する。
 以上でステップS802aの処理を終わり、図8のステップS803に進む。なお、ステップS802aにおいて、ステップS401からステップS403、及びステップS405からステップS406の処理は、実施の形態1と同様である。
 ステップS803において、検索装置400aの送信部419は、ステップS802aで暗号化部412が生成した、確定的情報t又は検索クエリQ(s)を管理装置500aへ送信する。
 以上で検索装置400aの検索クエリ生成処理S134aの処理を終わり、ステップS804に進む。
 管理装置500aの判定処理S135aにおいて、管理装置500aは、検索装置400aから検索クエリQ(s)を受信すると、検索クエリQ(s)を復号して得られる検索キーワードsが、管理記憶部550に保管されている暗号化タグcを復号して得られる関連キーワードwと一致するか否かを判定する。管理装置500aは、検索クエリQ(s)を復号して得られる検索キーワードsが、暗号化タグcを復号して得られる関連キーワードwと一致した場合、暗号化タグcに対応する暗号化データE(D)を含む検索結果I(s)を検索装置400aに送信すると共に、検索クエリQ(s)を復号して得られる確定的情報tと暗号化タグcに対応する暗号化データE(D)とを対応付けて管理記憶部550に記憶する。
 管理装置500aは、検索装置400aから確定的情報tを受信すると、確定的情報tに対応する暗号化データE(D)を管理記憶部550から取得し、取得した暗号化データE(D)を含む検索結果I(s)を検索装置400aに送信する。
 以下に具体的に説明する。
 ステップS804において、管理装置500aの受信部501は、ステップS803で検索装置400の送信部419から送信された、確定的情報t又は検索クエリQ(s)を受信する。
 ステップS804aにおいて検索クエリか確定的情報かを判定し、受信部501が検索クエリQ(s)を受信した場合、処理はステップ805a1に進み、受信部501が確定的情報tを受信した場合、処理はステップ807に進む。
 ステップS805a1において、管理装置500aの照合部502は、ステップS804で受信部501が受信した情報が検索クエリQ(s)であった場合、ステップS609で鍵保管部511が保管した鍵K2、ステップS708でデータ保管部521が保管した全ての保管暗号化データ(ID(D),c)に対して、以下の処理を行う。
 照合部502は、空の検索結果I(s)を用意する。照合部502は、全ての保管暗号化データ(ID(D),c)と検索クエリQ(s)に対して、以下の処理を行う。暗号化索引Cに含まれる全ての暗号化タグcと、検索クエリQ(s)の全ての要素qの、任意のペア(c,q)に対して、一致判定を以下のようにして行う。qの2つの要素をe1,e2とする。暗号文kをk=E(K2,c)とする。復号関数であるDecを用いて、m=Dec(k,e1)とする。mをm1とm2に分割する。m2がe2と一致するとき、cとqは一致したと判定する。これは即ち、検索クエリQ(s)の要素と一致する要素が暗号化索引Cに含まれていることを示している。このとき、m1は確定的情報tである。cとqが一致した場合、検索結果I(s)に保管データ名ID(D)を加える。ここで、検索結果I(s)に保管データ名ID(D)を加えるとは、保管データ名ID(D)に対応付けられた暗号化データE(D)を検索結果I(s)に含めることを意味する。
 上記の処理は、検索クエリQ(s)を復号して得られる検索キーワードsが、管理記憶部550に保管されている暗号化タグcを復号して得られる関連キーワードwと一致するか否かを判定する処理である。
 照合部502は、検索結果I(s)が空集合の場合、即ち、ステップS805aでYESの場合、送信部509に検索結果I(s)を出力する。照合部502は、検索結果I(s)が空集合でない場合、即ちステップ805aでNOの場合、高速照合部531に確定的情報tとしてのm1及び検索結果I(s)を出力する。
 ステップS806において、管理装置500aの高速照合部531は、検索クエリQ(s)を復号して得られる確定的情報tと検索結果I(s)とを対応付けて管理記憶部550に記憶する。具体的には、高速照合部531は、ステップS805a1で照合部502から受け取った確定的情報t及び検索結果I(s)を入力とする。そして、高速照合部531は、確定的情報tをキーとして検索結果I(s)を高速に取出せる高速索引情報554を管理記憶部550に保管する。高速索引情報554は、具体的にはハッシュテーブルを利用することにより実現される。
 ステップS807において、管理装置500aの高速照合部531は、ステップS804で受信部501が受信した情報が確定的情報tであった場合、受信部501から確定的情報tを受け取る。高速照合部531は、受け取った確定的情報tに対して、高速索引情報554から対応する検索結果I(s)を取り出し、送信部509へI(s)を出力する。高速照合部531は、受け取った確定的情報tに対応する検索結果I(s)がない場合、送信部509へI(s)として空集合を出力する。
 ステップS808において、管理装置500aの送信部509は、照合部502又は高速照合部531から受け取った検索結果I(s)を検索装置400へ送信する。
 以上で管理装置500aの判定処理S135aの処理を終わり、ステップS809に進む。なお、ステップS803、ステップS804及びステップS804aの処理は、実施の形態1と同様である。また、ステップS805a、ステップS806、ステップS807及びステップS808の処理は、実施の形態1と同様である。
 検索装置400aの結果出力処理S136において、検索装置400aは、管理装置500aから検索結果I(s)を受信すると、確定的情報tを検索記憶部450に蓄積する。ステップS809からステップS811の結果出力処理S136は、実施の形態1と同様である。
 以上により、秘匿検索システム100aの検索処理S130aは終了する。
 なお、秘匿検索システム100aの削除処理S140については、実施の形態1で説明した図10の処理と同様であるため、説明を省略する。
***本実施の形態の効果の説明***
 本実施の形態に係る秘匿検索システムは、検索を高速に行うために有用な情報が埋め込まれた検索クエリを生成する検索装置の暗号化部と、検索クエリを受信する管理装置の受信部とを備える。また、秘匿検索システムは、関連キーワードが暗号化された暗号化タグを保管する管理装置のデータ保管部と、保管されている暗号化タグ集合の中から、暗号化された検索キーワードと一致するものを取り出す管理装置の照合部とを備える。よって、本実施の形態に係る秘匿検索システムは、確率的であり、かつ、検索処理を高速化するための確定的情報が埋め込まれた検索クエリを用いて暗号化タグを検索することができる。また、本実施の形態に係る秘匿検索システムは、検索クエリが、確率的暗号化によって生成されている。よって、検索クエリは、検索キーワードの確定的情報に依らない。これにより検索クエリは頻度分析耐性が高くなり、安全性が高い。
 また、本実施の形態に係る秘匿検索システムは、暗号化タグが、確定的暗号化によって生成されているが、暗号化タグcを生成する際、同じ関連キーワードwに対してカウンタ値jを重複なく入力することで、同じ関連キーワードwに対する暗号化タグcも重複しない。すなわち、カウンタ値を使用することで暗号文を常に変化させ、頻度分析を回避している。これにより暗号化タグは頻度分析耐性が高くなり、安全性が高い。また、本実施の形態に係る秘匿検索システムでは、検索装置において第1乱数rを記憶させる必要がなくなった。
 以上、実施の形態1及び2について説明した。実施の形態1及び2では、秘匿検索システムは、鍵生成装置、登録装置、検索装置、管理装置を備え、各装置が1つのコンピュータである場合について説明した。しかし、鍵生成装置と登録装置とが1つのコンピュータであってもよい。また、検索装置と管理装置とが1つのコンピュータであってもよい。また、全ての装置が1つのコンピュータで実現されていても構わない。上記の実施の形態1及び2で説明した機能を実現することができれば、秘匿検索システムの各装置をどのように組み合わせて秘匿検索システムを構成しても構わない。
 また、秘匿検索システムの各装置において、「部」として説明するもののうち、いずれか1つのみを採用してもよいし、いくつかの任意の組合せを採用してもよい。つまり、秘匿検索システムの各装置の機能ブロックは、上記の実施の形態1及び2で説明した機能を実現することができれば、任意である。これらの機能ブロックを、どのような組合せで各装置を構成しても構わない。また、これらの機能ブロックを、任意のブロック構成で各装置を構成しても構わない。
 また、実施の形態1及び2のうち、複数を部分的に組合せて実施しても構わない。あるいは、これらの実施の形態のうち、1つの発明を部分的に実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組合せて実施しても構わない。
 なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物あるいは用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
 100 秘匿検索システム、101 ネットワーク、200 鍵生成装置、201 パラメータ受信部、202 鍵生成部、209 送信部、250 鍵生成記憶部、300 登録装置、301 受信部、302 鍵保管部、311 入力部、312 暗号化部、319 送信部、350 登録記憶部、339 削除要求、400 検索装置、401 受信部、411 入力部、412 暗号化部、419 送信部、421 鍵保管部、422 補助情報保管部、439 検索結果出力部、450 検索記憶部、451 検索履歴情報、500 管理装置、501 受信部、511 鍵保管部、521 データ保管部、531 高速照合部、502 照合部、509 送信部、550 管理記憶部、551 保管暗号化データ、552 暗号化データ、553 暗号化タグ、554 高速索引情報、610 秘匿検索方法、620 秘匿検索プログラム、909 処理回路、910 CPU、920 記憶装置、930 入力インタフェース、940 出力インタフェース、950 通信装置、921 メモリ、922 補助記憶装置、S100 秘匿検索処理、S110 鍵生成保管処理、S120 登録処理、S130 検索処理、S134 検索クエリ生成処理、S135 判定処理、S136 結果出力処理、S140 削除処理、K1,K2 鍵、E(D) 暗号化データ、C(D) 暗号化タグ、s 検索キーワード、f 確定的指示、t 確定的情報、Q(s) 検索クエリ、r 第1乱数、ui 第2乱数、λ パラメータ、100a 秘匿検索システム、300a 登録装置、400a 検索装置、500a 管理装置、S100a 秘匿検索処理、S120a 登録処理、S130a 検索処理、S134a 検索クエリ生成処理、S135a 判定処理、v 乱数。

Claims (19)

  1.  記憶装置である管理記憶部を備え、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードに対し確率暗号方式の暗号化を実行することにより生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管する管理装置と、
     前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索装置と
    を備え、
     前記管理装置は、
     前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する秘匿検索システム。
  2.  前記管理装置は、
     前記検索クエリを復号して得られる前記検索キーワードが、前記暗号化タグを復号して得られる関連キーワードと一致した場合、前記暗号化タグに対応する前記暗号化データを含む検索結果を前記検索装置に送信し、
     前記検索装置は、
     記憶装置である検索記憶部を備え、前記管理装置から前記検索結果を受信すると、前記確定的情報を前記検索記憶部に蓄積する請求項1に記載の秘匿検索システム。
  3.  前記管理装置は、
     前記検索クエリを復号して得られる前記検索キーワードが、前記暗号化タグを復号して得られる関連キーワードと一致した場合、前記検索クエリを復号して得られる前記確定的情報と前記暗号化タグに対応する前記暗号化データとを対応付けて前記管理記憶部に記憶する請求項2に記載の秘匿検索システム。
  4.  前記検索装置は、
     前記確定的情報を算出すると、前記確定的情報が前記検索記憶部に蓄積されているか否かを判定し、前記確定的情報が前記検索記憶部に蓄積されていない場合に前記検索クエリを前記管理装置に送信し、前記確定的情報が前記検索記憶部に蓄積されている場合に前記確定的情報を前記管理装置に送信し、
     前記管理装置は、
     前記検索装置から前記確定的情報を受信すると、前記確定的情報に対応する前記暗号化データを前記管理記憶部から取得し、取得した前記暗号化データを含む前記検索結果を前記検索装置に送信する請求項3に記載の秘匿検索システム。
  5.  前記検索装置は、
     前記検索キーワードに対して確定暗号方式の暗号化を実行することにより前記確定的情報を算出する請求項1から4のいずれか1項に記載の秘匿検索システム。
  6.  前記検索装置は、
     前記検索キーワードを暗号化する際に前記確定的情報を用いるか否かを指示する確定的指示を取得し、前記確定的指示により前記確定的情報を用いると指示された場合、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行し、前記確定的指示により前記確定的情報を用いないと指示された場合、前記検索キーワードに対し前記確定的情報を用いずに確率暗号方式の暗号化を実行する請求項1から5のいずれか1項に記載の秘匿検索システム。
  7.  前記秘匿検索システムは、さらに、
     第1乱数を生成し、前記第1乱数を用いて、前記関連キーワードに対し確率暗号方式の暗号化を実行することにより前記暗号化タグを生成し、前記暗号化タグと前記暗号化データとを前記管理装置に送信すると共に、前記第1乱数を前記検索装置に送信する登録装置を備え、
     前記検索装置は、
     第2乱数を生成し、前記第2乱数と、前記登録装置から受信した前記第1乱数と、前記確定的情報とを用いて、前記検索キーワードに対し確率暗号方式の暗号化を実行する請求項1から6のいずれか1項に記載の秘匿検索システム。
  8.  前記管理装置は、
     前記管理記憶部に保管されている前記暗号化データを削除する削除要求を受信し、前記削除要求に基づいて前記管理記憶部から前記暗号化データを削除する請求項1から7のいずれか1項に記載の秘匿検索システム。
  9.  記憶装置である管理記憶部を備えた管理装置と検索装置とを有する秘匿検索システムの秘匿検索方法において、
     前記管理装置が、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードに対し確率暗号方式の暗号化を実行することにより生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管し、
     前記検索装置が、前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信し、
     前記管理装置が、前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する秘匿検索方法。
  10.  記憶装置である管理記憶部を備えた管理装置と検索装置とを有する秘匿検索システムの秘匿検索プログラムにおいて、
     保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードに対し確率暗号方式の暗号化を実行することにより生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管するデータ保管処理と、
     前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索クエリ生成処理と、
     前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する判定処理と
    をコンピュータに実行させる秘匿検索プログラム。
  11.  記憶装置である管理記憶部を備え、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードを暗号化して生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管する管理装置と、
     前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索装置と
    を備え、
     前記管理装置は、
     前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する秘匿検索システム。
  12.  前記管理装置は、
     前記検索クエリを復号して得られる前記検索キーワードが、前記暗号化タグを復号して得られる関連キーワードと一致した場合、前記暗号化タグに対応する前記暗号化データを含む検索結果を前記検索装置に送信し、
     前記検索装置は、
     記憶装置である検索記憶部を備え、前記管理装置から前記検索結果を受信すると、前記確定的情報を前記検索記憶部に蓄積する請求項11に記載の秘匿検索システム。
  13.  前記管理装置は、
     前記検索クエリを復号して得られる前記検索キーワードが、前記暗号化タグを復号して得られる関連キーワードと一致した場合、前記検索クエリを復号して得られる前記確定的情報と前記暗号化タグに対応する前記暗号化データとを対応付けて前記管理記憶部に記憶する請求項12に記載の秘匿検索システム。
  14.  前記検索装置は、
     前記確定的情報を算出すると、前記確定的情報が前記検索記憶部に蓄積されているか否かを判定し、前記確定的情報が前記検索記憶部に蓄積されていない場合に前記検索クエリを前記管理装置に送信し、前記確定的情報が前記検索記憶部に蓄積されている場合に前記確定的情報を前記管理装置に送信し、
     前記管理装置は、
     前記検索装置から前記確定的情報を受信すると、前記確定的情報に対応する前記暗号化データを前記管理記憶部から取得し、取得した前記暗号化データを含む前記検索結果を前記検索装置に送信する請求項13に記載の秘匿検索システム。
  15.  前記検索装置は、
     前記検索キーワードに対して確定暗号方式の暗号化を実行することにより前記確定的情報を算出する請求項11から14のいずれか1項に記載の秘匿検索システム。
  16.  前記検索装置は、
     前記検索キーワードを暗号化する際に前記確定的情報を用いるか否かを指示する確定的指示を取得し、前記確定的指示により前記確定的情報を用いると指示された場合、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行し、前記確定的指示により前記確定的情報を用いないと指示された場合、前記検索キーワードに対し前記確定的情報を用いずに確率暗号方式の暗号化を実行する請求項11から15のいずれか1項に記載の秘匿検索システム。
  17.  前記秘匿検索システムは、さらに、
     カウンタ値を生成し、前記カウンタ値を用いて、前記関連キーワードに対し暗号化を実行することにより前記暗号化タグを生成し、前記暗号化タグと前記暗号化データとを前記管理装置に送信する登録装置を備え、
     前記検索装置は、
     乱数を生成し、前記乱数と、前記登録装置で生成した前記カウンタ値とを用いて、前記検索キーワードに対し確率暗号方式の暗号化を実行する請求項11から16のいずれか1項に記載の秘匿検索システム。
  18.  記憶装置である管理記憶部を備えた管理装置と検索装置とを有する秘匿検索システムの秘匿検索方法において、
     前記管理装置が、保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードを暗号化して生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管し、
     前記検索装置が、前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信し、
     前記管理装置が、前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する秘匿検索方法。
  19.  記憶装置である管理記憶部を備えた管理装置と検索装置とを有する秘匿検索システムの秘匿検索プログラムにおいて、
     保管データが暗号化された暗号化データと、前記保管データに関連付けられた関連キーワードを暗号化して生成された暗号化タグとを受信し、前記暗号化タグと前記暗号化データとを対応付けて前記管理記憶部に保管するデータ保管処理と、
     前記管理記憶部に保管されている前記暗号化データを検索する検索キーワードを取得すると、前記検索キーワードから一意に定まる確定的情報を算出し、前記検索キーワードに対し前記確定的情報を用いて確率暗号方式の暗号化を実行することにより検索クエリを生成し、前記検索クエリを前記管理装置に送信する検索クエリ生成処理と、
     前記検索装置から前記検索クエリを受信すると、前記検索クエリを復号して得られる前記検索キーワードが、前記管理記憶部に保管されている前記暗号化タグを復号して得られる関連キーワードと一致するか否かを判定する判定処理と
    をコンピュータに実行させる秘匿検索プログラム。
PCT/JP2016/079421 2016-01-14 2016-10-04 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム WO2017122393A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017547007A JP6239213B1 (ja) 2016-01-14 2017-01-11 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
CN201780003889.0A CN108351905B (zh) 2016-01-14 2017-01-11 隐匿检索系统、隐匿检索方法及计算机可读取的记录介质
EP17738450.0A EP3382576B1 (en) 2016-01-14 2017-01-11 Secret search system, secret search method, and secret search program
PCT/JP2017/000679 WO2017122696A1 (ja) 2016-01-14 2017-01-11 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
US16/063,457 US10872158B2 (en) 2016-01-14 2017-01-11 Secret search system, secret search method, and computer readable medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/JP2016/051006 WO2017122326A1 (ja) 2016-01-14 2016-01-14 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
JPPCT/JP2016/051006 2016-01-14

Publications (1)

Publication Number Publication Date
WO2017122393A1 true WO2017122393A1 (ja) 2017-07-20

Family

ID=59311136

Family Applications (3)

Application Number Title Priority Date Filing Date
PCT/JP2016/051006 WO2017122326A1 (ja) 2016-01-14 2016-01-14 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
PCT/JP2016/079421 WO2017122393A1 (ja) 2016-01-14 2016-10-04 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
PCT/JP2017/000679 WO2017122696A1 (ja) 2016-01-14 2017-01-11 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/051006 WO2017122326A1 (ja) 2016-01-14 2016-01-14 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/000679 WO2017122696A1 (ja) 2016-01-14 2017-01-11 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム

Country Status (5)

Country Link
US (1) US10872158B2 (ja)
EP (1) EP3382576B1 (ja)
JP (1) JP6239213B1 (ja)
CN (1) CN108351905B (ja)
WO (3) WO2017122326A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019142268A1 (ja) * 2018-01-17 2019-07-25 三菱電機株式会社 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
DE112018007468T5 (de) 2018-05-15 2021-01-21 Mitsubishi Electric Corporation Geheime-Suche-Einrichtung und Geheime-Suche-Verfahren
WO2020136884A1 (ja) * 2018-12-28 2020-07-02 三菱電機株式会社 秘匿検索システムおよび秘匿検索方法
US11281733B2 (en) * 2019-03-14 2022-03-22 Microsoft Technology Licensing, Llc Selective presentation of rich experiences in search
CN114945963A (zh) 2020-01-14 2022-08-26 三菱电机株式会社 登记装置、检索操作装置、数据管理装置、登记程序、检索操作程序以及数据管理程序
CN114091054A (zh) * 2021-11-03 2022-02-25 深圳前海微众银行股份有限公司 一种双向隐匿数据查询方法及装置
WO2023112176A1 (ja) * 2021-12-14 2023-06-22 三菱電機株式会社 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
WO2023127038A1 (ja) * 2021-12-27 2023-07-06 三菱電機株式会社 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012077541A1 (ja) * 2010-12-08 2012-06-14 株式会社日立製作所 検索可能暗号処理システム
WO2014128958A1 (ja) * 2013-02-25 2014-08-28 三菱電機株式会社 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
JP2015170057A (ja) * 2014-03-05 2015-09-28 富士通株式会社 秘匿検索装置、秘匿検索方法および秘匿検索プログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108910A (ja) * 2000-09-27 2002-04-12 Nec Soft Ltd 暗号化ファイルシステム及び暗号化ファイル検索方法並びにコンピュータ可読記録媒体
JP2005101883A (ja) 2003-09-25 2005-04-14 Hitachi Ltd 電子メール文書原本性保証装置
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
JP2006072585A (ja) 2004-08-31 2006-03-16 Planet:Kk 移動体通信端末を用いた認証方法
JP2006113704A (ja) 2004-10-13 2006-04-27 Toshiba Corp 医用システムのパスワード管理方法及び医用装置用パスワード管理システム
JP5140026B2 (ja) 2009-03-19 2013-02-06 株式会社日立製作所 データベース処理方法、データベース処理プログラム、および、暗号化装置
WO2012004880A1 (ja) 2010-07-08 2012-01-12 三菱電機株式会社 キーワード変換装置、キーワード変換プログラム、記録媒体及びキーワード変換方法
US8533489B2 (en) * 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
US8429421B2 (en) 2010-12-17 2013-04-23 Microsoft Corporation Server-side encrypted pattern matching
CN103329184B (zh) 2011-01-13 2016-02-03 三菱电机株式会社 数据处理装置以及数据保管装置
JP2012164031A (ja) 2011-02-03 2012-08-30 Mitsubishi Electric Corp データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
US9418238B2 (en) 2011-02-22 2016-08-16 Mitsubishi Electric Corporation Search system, search method of search system, and information processing device
US9311494B2 (en) 2011-12-01 2016-04-12 Hitachi, Ltd. Secure search method and secure search device
JP5800720B2 (ja) 2012-01-24 2015-10-28 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
US9355359B2 (en) * 2012-06-22 2016-05-31 California Institute Of Technology Systems and methods for labeling source data using confidence labels
JP5255154B1 (ja) 2012-12-26 2013-08-07 株式会社エアー 部分一致検索の可能な暗号システム
JP6054790B2 (ja) * 2013-03-28 2016-12-27 三菱スペース・ソフトウエア株式会社 遺伝子情報記憶装置、遺伝子情報検索装置、遺伝子情報記憶プログラム、遺伝子情報検索プログラム、遺伝子情報記憶方法、遺伝子情報検索方法及び遺伝子情報検索システム
JP6144992B2 (ja) 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
JP6208586B2 (ja) 2014-01-16 2017-10-04 株式会社日立製作所 検索可能暗号処理システムおよび検索可能暗号処理方法
US20150379280A1 (en) 2014-06-30 2015-12-31 Nicira, Inc. Method and Apparatus for Dynamically Creating Encryption Rules
CN107077469B (zh) * 2014-10-21 2020-11-27 三菱电机株式会社 服务器装置、检索系统、终端装置以及检索方法
JP6381128B2 (ja) 2015-02-05 2018-08-29 国立研究開発法人産業技術総合研究所 検索システム、クライアント、サーバ、検索プログラムおよび検索方法
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012077541A1 (ja) * 2010-12-08 2012-06-14 株式会社日立製作所 検索可能暗号処理システム
WO2014128958A1 (ja) * 2013-02-25 2014-08-28 三菱電機株式会社 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
JP2015170057A (ja) * 2014-03-05 2015-09-28 富士通株式会社 秘匿検索装置、秘匿検索方法および秘匿検索プログラム

Also Published As

Publication number Publication date
CN108351905B (zh) 2022-05-31
EP3382576B1 (en) 2020-08-12
EP3382576A1 (en) 2018-10-03
CN108351905A (zh) 2018-07-31
US20180365433A1 (en) 2018-12-20
JP6239213B1 (ja) 2017-11-29
EP3382576A4 (en) 2018-10-03
US10872158B2 (en) 2020-12-22
WO2017122326A1 (ja) 2017-07-20
WO2017122696A1 (ja) 2017-07-20
JPWO2017122696A1 (ja) 2018-01-25

Similar Documents

Publication Publication Date Title
JP6239213B1 (ja) 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
JP5420085B2 (ja) データ処理装置及びデータ保管装置
JP6234605B2 (ja) サーバ装置及び検索システム及び端末装置及び検索方法及びサーバプログラム及び端末プログラム
US10235539B2 (en) Server device, recording medium, and concealed search system
JP2012164031A (ja) データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
JP6038427B1 (ja) 暗号化装置、暗号化方法、暗号化プログラム及び保管装置
KR101979267B1 (ko) 클라우드 저장 기반 암호화 시스템 및 방법
JP6632780B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP6289768B2 (ja) 暗号化装置、暗号化プログラム及び暗号化方法
JP6672451B2 (ja) 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
US11106740B2 (en) Search device, search system, search method, and computer readable medium
JP7217844B1 (ja) 秘匿検索システムおよび秘匿検索方法
JP7016458B2 (ja) 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
WO2017203698A1 (ja) 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム
CN117413489A (zh) 加密标签生成装置、隐匿检索系统、加密标签生成方法和加密标签生成程序

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16884996

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16884996

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP