WO2017061024A1 - 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム - Google Patents

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

Info

Publication number
WO2017061024A1
WO2017061024A1 PCT/JP2015/078712 JP2015078712W WO2017061024A1 WO 2017061024 A1 WO2017061024 A1 WO 2017061024A1 JP 2015078712 W JP2015078712 W JP 2015078712W WO 2017061024 A1 WO2017061024 A1 WO 2017061024A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
data
similarity
encrypted
encryption
Prior art date
Application number
PCT/JP2015/078712
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 JP2016526364A priority Critical patent/JP5985123B1/ja
Priority to US15/764,780 priority patent/US10673614B2/en
Priority to EP15905843.7A priority patent/EP3361469B8/en
Priority to PCT/JP2015/078712 priority patent/WO2017061024A1/ja
Priority to CN201580083638.9A priority patent/CN108140334B/zh
Publication of WO2017061024A1 publication Critical patent/WO2017061024A1/ja

Links

Images

Classifications

    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Definitions

  • the present invention relates to a secret search system, a management device, a secret search method, and a secret search program.
  • the secret search is a technique that enables search with data to be searched and search contents encrypted.
  • data management on the Internet has become possible.
  • the data that has been entrusted to the data management such as when the cloud server is infected with malware such as a computer virus, or the server administrator acts illegally, etc.
  • malware such as a computer virus
  • the server administrator acts illegally, etc.
  • Non-Patent Document 1 discloses a method capable of performing a complete search, which is a simple search, as a search function in the secret search technique. Further, Patent Literature 1, Patent Literature 2, Patent Literature 3, and Non-Patent Literature 2 disclose a method capable of performing a similarity search that is a more flexible search. From here onwards, the secret search technique that enables the similarity search is referred to as the secret similarity search technique. Patent Document 1 and Non-Patent Document 2 disclose a secret similarity search technique that efficiently calculates a Hamming distance using a special encryption technique called a homomorphic encryption that can be operated while encrypted. Non-Patent Document 3, Non-Patent Document 4, Non-Patent Document 5, and Non-Patent Document 6 also disclose homomorphic encryption.
  • the similarity between the plaintexts is kept secret without decryption from the encrypted data stored on the server by the data registrant and the ciphertext of the data that the data searcher wants to search.
  • the degree can be calculated.
  • the encrypted data stored in the server by the data registrant is referred to as stored encrypted data.
  • the ciphertext of data that the data searcher wants to search is called search encrypted data.
  • a specific example of the similarity between plaintexts is the Euclidean square distance between the plaintext of the stored encrypted data and the plaintext of the search encrypted data.
  • the server calculates the similarity while keeping the similarity secret, and transmits the calculation result to the data searcher. Thereafter, the data searcher can know the similarity by decoding.
  • the secret similarity search technique has not only a search but also a secret analysis technique.
  • the secret similarity search technology keeps the privacy of the patient, that is, does not disclose the patient's personal data and keeps it encrypted. Can be analyzed. For this reason, the patient can ask the data analyst for analysis with peace of mind. Therefore, such a secret similarity search technique is very useful also from the viewpoint of privacy protection.
  • Nissim “Evaluating 2-DNF Formulas on Ciphertexts”, TCC 2005, Lecture Notes in Computer Science 3378, Springer, 2005. P. , Pillar, “Public-Key Cryptossystems Based on Composite Degree Residuity Classes”, Eurocrypt 1999, Lecture Notes in Computer 1999. D. Catalano and D.C. Fiore, “Boosting Linearly-Homomorphic Encryption to Evaluate Degree-2 Functions on Encrypted Data”, IACR CryptologyReprint8: 14
  • Patent Document 1 and Non-Patent Document 2 disclose a secret similarity search technique that efficiently calculates a Hamming distance using a special encryption technique called a homomorphic encryption that can be operated while encrypted.
  • the data searcher can know the similarity between the plaintext of the stored encrypted data and the plaintext of the search encrypted data in plaintext. Note that no similarity value appears on the server.
  • the data searcher may be able to infer the plaintext of the stored encrypted data from the two data of the plaintext and the similarity of the search encrypted data.
  • the data searcher has the plaintext of the search encrypted data (0,0,0), and the Hamming distance between this plaintext (0,0,0) and the plaintext of the stored encrypted data is (0,1). , 2) is obtained. At this time, the data searcher can easily specify the plaintext of the stored encrypted data as (0, 0, 0, 1, 1).
  • Patent Document 2 discloses a secret similarity search technique using plaintext auxiliary information that stores a hash value related to plaintext of stored encrypted data and stored encrypted data in association with each other.
  • the plaintext auxiliary information is direct partial information of the plaintext of the stored encrypted data, the plaintext of the stored encrypted data may be inferred from the auxiliary information. Therefore, there is a problem that even if the method of Patent Document 2 is used, sufficient safety cannot be achieved.
  • Patent Document 3 the similarity is not disclosed to the data searcher, and the similarity is disclosed only when the similarity is within the threshold, or only whether the similarity is within the threshold or not.
  • a similarity search technique is disclosed.
  • the similarity calculation processing performed by the server in Patent Document 3 is performed using plain text of registered data. For this reason, it is assumed that the stored data is not encrypted.
  • the server is not owned by a third party but can be considered as the property of the data registrant. Therefore, when the data registrant does not have a server, there is a problem that it is impossible to request analysis outside while protecting the privacy.
  • the present invention provides a secret search system capable of calculating similarity from stored encrypted data and search encrypted data without using any plaintext information and outputting information indicating whether the similarity is within a threshold value.
  • the purpose is to do.
  • the secret search system is: A storage encryption data that is storage data encrypted by homomorphic encryption, and a search encryption data that is search data used for searching the storage data and encrypted by the homomorphic encryption An encryption similarity calculation unit that calculates an encryption similarity in which the similarity between the stored data and the search data is encrypted by the homomorphic encryption by performing an isomorphic operation; A management apparatus comprising: an encryption result transmitting unit that generates an encrypted search result indicating whether the similarity is within a threshold using the encryption similarity; and transmits the generated encrypted search result; , A decryption unit that decrypts the encrypted search result transmitted from the management device, and outputs the decrypted encrypted search result as a search result; And a search device having an output unit that outputs search result information indicating whether the similarity is within the threshold value based on the search result.
  • the secret search system performs a homomorphic operation between the stored encrypted data and the search encrypted data, thereby using the stored data and the search data in plain text without using the stored data and the search data.
  • the encryption similarity calculation unit that calculates the encryption similarity that has been encrypted and the encryption search result that indicates whether or not the similarity is within the threshold using the encryption similarity
  • a management apparatus having an encrypted result transmission unit for transmitting the encrypted search result.
  • the secret search system decrypts the encrypted search result received from the management device, outputs the search result as a search result, and whether or not the similarity is within a threshold based on the search result.
  • a search device having an output unit that outputs search result information.
  • the encrypted similarity is calculated from the stored encrypted data and the search encrypted data, and the similarity itself is output. Since it is possible to output search result information indicating whether or not the similarity is within a threshold, it is possible to provide a secret search system with higher safety.
  • FIG. 1 is a system configuration diagram of a secret search system 100 according to Embodiment 1.
  • FIG. 1 is a block configuration diagram of a key generation device 200 according to Embodiment 1.
  • FIG. FIG. 3 is a block configuration diagram of a registration apparatus 300 according to the first embodiment.
  • 1 is a block configuration diagram of a search device 400 according to Embodiment 1.
  • FIG. 3 is a block configuration diagram of a management apparatus 500 according to the first embodiment.
  • FIG. 10 is a flowchart showing a flow of a secret search method 9100 of the secret search system 100 according to Embodiment 1 and a secret search process S100 of the secret search program 9200.
  • 5 is a flowchart showing a key generation process S110 of the secret search system 100 according to the first embodiment.
  • FIG. 9 is a flowchart showing search processing S130a of the secret search system 100 according to Embodiment 2.
  • 10 is a flowchart showing search processing S130b of the secret search system 100 according to Embodiment 3.
  • 10 is a flowchart showing search processing S130c of the secret search system 100 according to Embodiment 4.
  • Embodiment 1 a secret similarity search technique using homomorphic encryption, which is one of encryption techniques, will be described.
  • homomorphic encryption is an encryption technique that can perform four arithmetic operations while encrypting encrypted data without decrypting it.
  • Some homomorphic ciphers can only perform homomorphic addition and homomorphic subtraction, and there are no restrictions on the number of homomorphic addition and homomorphic subtraction, but there are restrictions on the number of homomorphic multiplication and homomorphic division. is there. In addition, there are cases where there is no limit on the number of times of homomorphic addition and homomorphic subtraction, and homomorphic multiplication and homomorphic division.
  • a ciphertext having a similarity degree may be referred to as an encryption similarity.
  • an encryption similarity A ciphertext of the Euclidean square distance between (x1, x2) and (y1, y2), that is, an example in which the encryption similarity is obtained while encrypted using the homomorphic encryption of specific example 1 will be described.
  • each ciphertext is a vector having each plaintext ciphertext as a component.
  • Specific Example 2 describes an example in which the encryption similarity between the stored encrypted data E (x1, x2, x3) and the search encrypted data E (y1, y2) is obtained. Unlike the homomorphic encryption of the specific example 1 described above, the homomorphic encryption of the specific example 2 can encrypt the plaintext vectors in a lump and can be expressed by one ciphertext.
  • the Hamming distance is used as the similarity, and the Hamming distance between (x1, x2) and (y1, y2) is S1, (x2, x3), and (y1, y2). Is set to S2.
  • the first example of the specific example 2 is a method for efficiently calculating E (S1, S2) from the stored encrypted data E (x1, x2, x3) and the retrieved encrypted data E (y1, y2). .
  • the Hamming distance between (x1, x2) and (y1, y2) is (x1-y1) ⁇ (x1-y1) + (x2-y2) ⁇ ((similar to the calculation method of the Euclidean square distance). x2-y2) can be calculated.
  • x1, x2, y1, and y2 are integers of 0 or 1.
  • a ciphertext that is, an encrypted search result is generated so that only the similarity of the plaintext after decryption is within a certain threshold is determined from the calculated encryption similarity.
  • the second example of the specific example 2 is a method for obtaining the encryption similarity between the stored plaintext data and the plaintext of the search encrypted data, and thus security is low.
  • FIG. 1 is a diagram showing a system configuration of a confidential search system 100 according to the present embodiment.
  • the secret search system 100 includes a key generation device 200, a plurality of registration devices 300, a plurality of search devices 400, and a management device 500.
  • the management apparatus 500a will be described in the second embodiment.
  • 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 creates a pair of homomorphic encryption public key and secret key, and transmits the public key and secret to a plurality of registration devices 300, a plurality of search devices 400, and a management device 500 via the network 101. Send the key.
  • the public key and the private key may be transmitted directly to the plurality of registration apparatuses 300, the plurality of search apparatuses 400, and the management apparatus 500 by mail or the like without using the network 101.
  • the key generation device 200 sends only the public key to the plurality of registration devices 300 and the management device 500.
  • the key generation device 200 sends a public key and a secret key to the plurality of search devices 400.
  • the registration device 300 is a PC (Personal Computer).
  • the registration device 300 is a computer that operates as a registration terminal for registering stored encrypted data in the management device 500.
  • the registration device 300 functions as an encryption device and a registration device. That is, the registration device 300 generates stored encrypted data and requests the management device 500 to store the stored encrypted data.
  • the registration device 300 functions as a deletion request device. That is, the registration device 300 requests the management device 500 to delete the stored encrypted data.
  • the search device 400 is a PC.
  • the search device 400 transmits the search encrypted data to the management device 500 and then receives the encrypted search result from the management device 500.
  • the search device 400 is a computer that operates as a terminal that decrypts the received encrypted search result.
  • the search device 400 functions as a search request device. That is, the search device 400 transmits the search encrypted data to the management device 500, and requests the calculation of the encryption similarity regarding the stored encrypted data and the search encrypted data.
  • the search device 400 functions as a decryption device. That is, the search device 400 decrypts the encrypted search result returned from the management device 500.
  • the management device 500 is a device having a large-capacity recording medium that stores the storage encrypted data created by the registration device 300.
  • the management device 500 functions as a storage device. That is, if there is a request for storage of stored encrypted data from the registration device 300, the management apparatus 500 stores the stored encrypted data.
  • the management device 500 functions as a search execution device. That is, if there is a search request from the search device 400, the management device 500 calculates the encryption similarity from the stored encrypted data and the search encryption data, and then calculates the encrypted search result from the encryption similarity.
  • the encrypted search result is transmitted to the search device 400.
  • the management device 500 functions as a deletion device. That is, if there is a request for deletion of the stored encrypted data from the registration device 300, the management device 500 deletes the stored stored encrypted data.
  • At least two of the key generation device 200, the registration device 300, and the search device 400 may be included at the same time. Both the storage encryption data and the search encryption data are encrypted. Further, the encryption similarity and the encrypted search result are also encrypted. A device other than the search device 400 that does not have the secret key SK cannot obtain useful information from the stored encrypted data, the search encrypted data, the encryption similarity, and the encrypted search result.
  • the confidential search system 100 includes a key generation device 200, a registration device 300, a search device 400, and a management device 500.
  • the configuration of the key generation device 200, the configuration of the registration device 300, the configuration of the search device 400, and the configuration of the management device 500 will be described in order.
  • FIG. 2 is a diagram showing a block configuration of the key generation apparatus 200 according to the present embodiment.
  • the key generation device 200 includes a key generation unit 201 and a key transmission unit 202.
  • the key generation device 200 includes a recording medium that stores data used by each unit of the key generation device 200.
  • the key transmission unit 202 transmits the public key PK generated by the key generation unit 201 to the registration device 300 and the management device 500. In addition, the key transmission unit 202 transmits the public key PK and private key SK pair generated by the key generation unit 201 to the search device 400.
  • FIG. 3 is a diagram showing a block configuration of registration apparatus 300 according to the present embodiment.
  • the registration device 300 includes a key reception unit 301, a key storage unit 302, an input unit 303, an encryption unit 304, and a data transmission unit 305.
  • the registration device 300 includes a recording medium that stores data used by each unit of the registration device 300.
  • the key receiving unit 301 receives the public key PK transmitted from the key generation device 200.
  • the key storage unit 302 stores the public key PK received by the key reception unit 301.
  • the input unit 303 receives the storage data 610 input from the data registrant. In the present embodiment, description will be made assuming that a vector (x1, x2,..., Xk) (k is an integer satisfying k ⁇ 1) is received from the data registrant as the storage data 610.
  • the input unit 303 may receive a storage data identifier related to the storage data 610 from the data registrant at the same time as the storage data 610.
  • the storage data identifier may be any information that can identify the storage data, such as the storage encryption data name, the registration time, and the name of the data registrant.
  • the input unit 303 receives from the data registrant a deletion target data identifier for identifying the stored encrypted data to be deleted among the stored encrypted data stored in the management apparatus 500.
  • the deletion target data identifier may be information that can identify the stored data, such as the stored encrypted data name, the registration time, and the name of the data registrant.
  • the encryption unit 304 reads the public key PK from the key storage unit 302, encrypts the storage data (x1, x2,..., Xk) received from the input unit 303 using the public key PK, and stores the storage key. Generated data 620.
  • the stored encrypted data 620 is represented as E (PK, x1, x2,..., Xk).
  • E (PK, x1, x2,..., Xk) is one encryption. Can be considered.
  • the homomorphic encryption of specific example 1 described above it is necessary to encrypt each vector component.
  • E (PK, x1, x2,..., Xk) is the ciphertext vector (E (PK, x1), E (PK) of each vector component. , X2),..., E (PK, xk)).
  • the data transmission unit 305 transmits the stored encrypted data E (PK, x1, x2,..., Xk) received from the encryption unit 304 to the management apparatus 500. If a stored data identifier is input from the data registrant together with the stored data, both the stored encrypted data and the stored data identifier are transmitted to the management apparatus 500. In addition, the data transmission unit 305 transmits the deletion target data identifier received from the input unit 303 to the management apparatus 500.
  • FIG. 4 is a diagram showing a block configuration of search apparatus 400 according to the present embodiment.
  • the search device 400 includes a reception unit 401, a key storage unit 402, an input unit 403, an encryption unit 404, a search data transmission unit 405, a decryption unit 406, and an output unit 407. Is provided.
  • the search device 400 includes a recording medium that stores data used by each unit of the search device 400.
  • the receiving unit 401 receives a pair of the public key PK and the secret key SK transmitted from the key generation device 200. In addition, the reception unit 401 receives the encrypted search result 5001 from the management device 500.
  • the encrypted search result 5001 may be one ciphertext or a plurality of ciphertexts depending on the content of similarity calculation.
  • the encrypted search result 5001 is information indicating whether or not the similarity between the stored data and the search data is within a threshold value. However, the encrypted search result 5001 is obtained by encrypting information indicating whether or not the similarity between the stored data and the search data is within the threshold, and does not include the similarity value itself.
  • the key storage unit 402 stores a pair of the public key PK and the secret key SK received from the receiving unit 401.
  • the input unit 403 receives search data 710 input from a data searcher.
  • a vector (y1, y2,..., Ym) (m is an integer satisfying m ⁇ 1) is received from the data searcher as the search data 710.
  • the length m of the search data may be the same as or different from the length n of the stored data.
  • the value of m is determined depending on what kind of similarity the data searcher wants to calculate.
  • the input unit 403 may receive a search target data identifier for designating the stored encrypted data 620 to be searched by the search data 710 together with the search data 710 from the data searcher.
  • the stored encrypted data searched by the search data 710 is stored encrypted data whose similarity is calculated by the search data 710.
  • the search target data identifier may be information that can specify the stored encrypted data, such as the stored encrypted data name, the registration time, and the name of the data registrant.
  • the encryption unit 404 reads the public key PK from the key storage unit 402 and encrypts the search data 710 received from the input unit 403, that is, the vector (y1, y2,..., Ym) using the public key PK. And search encrypted data 720 is created.
  • search encrypted data is represented as E (PK, y1, y2,..., Ym).
  • the search data transmission unit 405 transmits the search encrypted data 720 received from the encryption unit 404, that is, E (PK, y1, y2,..., Ym) to the management apparatus 500. If the search target data identifier is input together with the search data 710 from the data searcher, the search data transmission unit 405 transmits both the search encrypted data 720 and the search target data identifier to the management apparatus 500.
  • the decryption unit 406 decrypts the encrypted search result 5001 transmitted from the management apparatus 500, and outputs the decrypted encrypted search result 5001 as the search result 4061.
  • the decryption unit 406 reads the secret key SK from the key storage unit 402, decrypts the encrypted search result 5001 received from the reception unit 401, and extracts the search result 4061.
  • the output unit 407 Based on the search result 4061, the output unit 407 outputs search result information 4071 indicating whether the similarity is within the threshold ⁇ .
  • the output unit 407 may output the search result 4061 received from the decryption unit 406 as it is to the data searcher.
  • FIG. 5 is a diagram showing a block configuration of the management apparatus 500 according to the present embodiment.
  • the management device 500 includes a data receiving unit 501, a key storage unit 502, a data storage unit 503, an encryption similarity calculation unit 504, an encryption result transmission unit 505, and a threshold storage unit. 506.
  • the encryption result transmission unit 505 includes a similar ciphertext generation unit 5051, a plaintext randomization unit 5052, and a result transmission unit 5053.
  • the management device 500 includes a recording medium that stores data used by each unit of the management device 500.
  • the data reception unit 501 receives the public key PK transmitted from the key generation device 200. Further, the data receiving unit 501 receives search encrypted data 720 that is search data 710 used for searching the stored data 610 and is search data 710 encrypted by homomorphic encryption. The data receiving unit 501 receives the stored encrypted data 620 sent from the registration apparatus 300, that is, E (PK, x1, x2,..., Xk). The data receiving unit 501 may receive a storage data identifier and a deletion target data identifier from the registration device 300 in addition to the storage encryption data E (PK, x1, x2,..., Xk).
  • the data receiving unit 501 receives the search target data identifier transmitted from the search device 400 in addition to the search encrypted data E (PK, y1, y2,..., Ym). There is also.
  • the key storage unit 502 stores the public key PK received from the data reception unit 501.
  • the data storage unit 503 stores the storage data 610 encrypted by the homomorphic encryption as the storage encryption data 620.
  • the data storage unit 503 stores the stored encrypted data E (PK, x1, x2,..., Xk) received from the data receiving unit 501 in association with the stored data identifier. If there is no stored data identifier, the data storage unit 503 generates a stored data identifier from the data registrant name or registration time as the stored data identifier, and stores the stored data identifier in association with the stored encrypted data. Further, the data storage unit 503 deletes the stored encrypted data stored based on the deletion target data identifier received from the data reception unit 501.
  • the encryption similarity calculation unit 504 includes storage encryption data 620 that is storage data encrypted by homomorphic encryption, and search data that is search data used for search of storage data and encrypted by homomorphic encryption. By performing a homomorphic operation on certain retrieval encrypted data 720, an encryption similarity 5041 in which the similarity between the stored data and the retrieval data is encrypted by the homomorphic encryption is calculated.
  • the encryption similarity calculation unit 504 receives the search encrypted data E (PK, y1, y2,..., Ym) and the search target data identifier from the data reception unit 501. Also, the encryption similarity calculation unit 504 reads the public key PK from the key storage unit 502.
  • the encryption similarity calculation unit 504 reads the stored encrypted data E (PK, x1, x2,..., Xk) from the data storage unit 503 based on the search target data identifier. If there is no search target data identifier, all the stored encrypted data 620 is read from the data storage unit 503. Then, the encryption similarity calculation unit 504 calculates the encryption similarity 5041 by performing a homomorphic operation using the public key PK, each stored encryption data 620, and the search encryption data 720. Here, the encryption similarity 5041 between the stored encrypted data E (PK, x1, x2,..., Xk) and the retrieved encrypted data E (PK, y1, y2,. PK, S1, S2,..., Sn).
  • S1 is considered to be the Euclidean square distance of (x1, x2) and (y1, y2).
  • S1 is considered to be the Euclidean square distance of (x1, x2) and (y1, y2).
  • the encryption result transmission unit 505 generates an encrypted search result 5001 indicating whether or not the similarity is within a threshold using the encryption similarity 5041, and transmits the generated encrypted search result 5001.
  • the similar ciphertext generation unit 5051 is a plurality of plaintexts similar in similarity, and each of the plurality of plaintexts in which at least one is 0 when the similarity is within a threshold is encrypted by homomorphic encryption A plurality of similar ciphertexts 50510 are generated.
  • the similar ciphertext generation unit 5051 reads the public key PK from the key storage unit 502 and reads the threshold ⁇ from the threshold storage unit 506.
  • the similar ciphertext generation unit 5051 uses the homomorphic operation based on the public key PK and the threshold value ⁇ , and the plaintext (S1, S2,%) Of the encryption similarity 5041 received from the encryption similarity calculation unit 504. ⁇ Generate a plurality of ciphertexts having values close to Sn). This generated ciphertext is referred to as similar ciphertext 50510, and each similar ciphertext is represented as E (PK, AS1, AS2,..., ASn).
  • the threshold storage unit 506 stores the threshold ⁇ .
  • is an integer of 1 or more.
  • the setting of the threshold ⁇ may be determined by the key generation device 200 or a data registrant of the registration device 300.
  • the threshold ⁇ may be a value determined in advance by the system. Further, the threshold value is not unique, and there may be a plurality of threshold values depending on the degree of similarity to be calculated.
  • the plaintext randomizing unit 5052 randomizes a plurality of plaintexts of a plurality of similar ciphertexts 50510, and generates a set of random ciphertexts in which each of the plurality of randomized plaintexts is encrypted by homomorphic encryption.
  • the plaintext randomizing unit 5052 reads the public key PK stored in the key storage unit 502 and reads each similar ciphertext E (PK, AS1, AS2,..., ASn) received from the similar ciphertext generation unit 5051.
  • Each component of plaintext AS1, AS2,..., ASn is randomized.
  • the plaintext randomizing unit 5052 generates a random ciphertext 50520 obtained by randomizing each component of the plaintext (AS1, AS2,..., ASn) of each similar ciphertext E (PK, AS1, AS2,..., ASn). Generate.
  • the random ciphertext 50520 is represented as E (PK, R1,..., Rn).
  • the plaintext randomizing unit 5052 sets a plaintext having a value of 0 among a plurality of plaintexts to 0 and randomizes a plaintext having a value not 0 among the plurality of plaintexts, and each of the plurality of randomized plaintexts is a homomorphic encryption.
  • a set of random ciphertexts 50520 encrypted by the above is generated. That is, the plaintext randomizing unit 5052 converts the ciphertext so that the plaintext is random, using a plurality of non-zero random numbers and homomorphic operations, and the plaintext is zero. Special randomization processing is performed such that the ciphertext is converted so that the plaintext remains 0. Therefore, the random ciphertext E (PK, R1,..., Rn) is also referred to as each zero-preserved random ciphertext E (PK, R1,..., Rn).
  • the result transmission unit 5053 generates an encrypted search result 5001 using the set of random ciphertext 50520 generated by the plaintext randomization unit 5052, and transmits the generated encrypted search result 5001.
  • the result transmission unit 5053 transmits the set of random ciphertext 50520 received from the plaintext randomization unit 5052 to the search device 400 as the encrypted search result 5001.
  • FIG. 6 is a flowchart showing the flow of the secret search method 9100 of the secret search system 100 according to the present embodiment and the secret search processing S100 of the secret search program 9200.
  • the secret search process S100 includes a key generation process S110, a registration process S120, and a search process S130.
  • the key generation apparatus 200 generates a key and stores it in each apparatus.
  • the registration process S120 encrypts the stored data and stores it in the management apparatus 500 as stored encrypted data.
  • the search process S130 calculates the encryption similarity between the search encrypted data and the stored encrypted data in response to a request from the search device, and indicates whether the similarity between the search data and the stored data is within a threshold value. Search results are generated without using plain text information.
  • FIG. 7 is a flowchart showing the key generation processing S110 of the secret search system 100 according to the present embodiment. 7 are processing executed by the key generation device 200, the registration device 300, the search device 400, and the management device 500.
  • S601 to S602 are executed by the key generation apparatus 200.
  • S603 to S604 are executed by the registration apparatus 300.
  • S605 to S606 are executed by the search device 400.
  • S607 to S608 are executed by the management apparatus 500.
  • step S601 the key generation unit 201 generates a public key PK of homomorphic encryption for encrypting and decrypting data and a secret key SK thereof.
  • a public key PK of homomorphic encryption for encrypting and decrypting data and a secret key SK thereof.
  • the key generation unit 201 may set the public key PK as the secret key SK and perform the subsequent processing in the same manner as in the public key cryptosystem.
  • step S ⁇ b> 602 the key transmission unit 202 transmits the public key PK generated in step S ⁇ b> 601 to the registration apparatus 300 and the management apparatus 500.
  • the key transmission unit 202 transmits the pair of the public key PK and the private key SK generated in S601 to the search device 400.
  • step S603 the key receiving unit 301 receives the public key PK transmitted in step S602.
  • step S604 the key storage unit 302 stores the public key PK received in step S603 in a storage medium.
  • step S605 the reception unit 401 receives the pair of the public key PK and the secret key SK transmitted in step S602.
  • the key storage unit 402 stores the pair of the public key PK and the secret key SK received in S605 in a storage medium. Since the secret key SK is secret information, the secret key SK is strictly stored so as not to be disclosed to anyone other than the search device 400 and a data searcher using the search device 400.
  • the data receiving unit 501 receives the public key PK transmitted in S602.
  • FIG. 8 is a flowchart showing the registration process S120 of the secret search system 100 according to the present embodiment. 8 are processing executed by the registration apparatus 300 and the management apparatus 500. S701 to S703 are processes executed by the registration apparatus 300. Steps S ⁇ b> 704 to S ⁇ b> 705 are processes executed by the management apparatus 500.
  • step S ⁇ b> 701 the input unit 303 receives storage data (x1, x2,..., Xk) (k ⁇ 1) input from a data registrant.
  • the input unit 303 may receive a storage data identifier related to the storage data together with the storage data from the data registrant.
  • the encryption unit 304 encrypts the storage data (x1, x2,..., Xk) input in S701 using the public key PK stored in the key storage unit 302, and stores the stored encryption.
  • Generated data E (PK, x1, x2,..., Xk).
  • the data transmission unit 305 transmits the stored encrypted data E (PK, x1, x2,..., Xk) generated in S702 to the management apparatus 500. If the storage data identifier is also input in S702, the storage data identifier is also sent at the same time.
  • the data receiving unit 501 receives the stored encrypted data E (PK, x1, x2,..., Xk) transmitted in S703. If the storage data identifier is also transmitted in S704, the storage data identifier is also received. In S705, the data storage unit 503 stores the stored encrypted data E (PK, x1, x2,..., Xk) received in S704. If the storage data identifier is also received in S704, the storage data identifier is stored in association with the storage encryption data. Thus, the registration process S120 of the secret search system 100 ends.
  • FIG. 9 is a flowchart showing the search process S130 of the secret search system 100 according to the present embodiment. 9 are processes executed by the search device 400 and the management device 500. S801 to S803 and S810 to S812 are processes executed by the search device 400. S804 to S809 are processes executed by the management apparatus 500.
  • step S801 the input unit 403 receives search data (y1, y2,..., Ym) input from a data searcher.
  • the input unit 403 may also receive a search target data identifier indicating the stored encrypted data to be searched simultaneously with the search data from the data searcher.
  • the encryption unit 404 encrypts the search data (y1, y2,..., Ym) input in S801 by using the public key PK stored in the key storage unit 402, and performs a search encryption.
  • Generated data E (PK, y1, y2,..., Ym).
  • the search data transmission unit 405 transmits the search encrypted data E (PK, y1, y2,..., Ym) generated in S802 to the management apparatus 500. If the search target data identifier is also input in S801, the search target data identifier is also sent at the same time.
  • the management apparatus 500 stores the storage data 610 encrypted by the homomorphic encryption as the storage encryption data 620.
  • the data receiving unit 501 executes a data reception process S804 for receiving search encrypted data 720 that is search data 710 used for searching the stored data 610 and encrypted by homomorphic encryption.
  • the data reception unit 501 receives the search encrypted data E (PK, y1, y2,..., Ym) transmitted in S803. If the search target data identifier is also transmitted in S803, the search target data identifier is also received.
  • the encryption similarity calculation unit 504 reads the stored encrypted data E (PK, x1, x2,..., Xk) from the data storage unit 503. If the search target data identifier is also received in S804, the encryption similarity calculation unit 504 reads the target stored encrypted data based on the received search target data identifier. The encryption similarity calculation unit 504 reads all stored encrypted data when the search target data identifier has not been received in S804.
  • the encryption similarity calculation unit 504 performs a homomorphic operation on the stored encrypted data 620 and the retrieved encrypted data 720 so that the similarity between the stored data 610 and the retrieved data 710 is encrypted with the homomorphic encryption.
  • An encryption similarity calculation process S806 for calculating the encryption similarity 5041 is executed.
  • the encryption similarity calculation unit 504 uses the public key PK stored in the key storage unit 502 to store each encrypted encrypted data E (PK, x1, x2) read in S805.
  • the encryption similarity calculation unit 504 calculates the Euclidean square distance by using the homomorphic encryption of Specific Example 1 described above, thereby calculating the encryption similarity E (PK, S1, S2,..., Sn ) Is calculated. Further, for example, the encryption similarity calculation unit 504 calculates the Hamming distance by using the homomorphic encryption of Specific Example 2 described above, thereby calculating the encryption similarity E (PK, S1, S2,..., Sn ) Is calculated.
  • the similar ciphertext generation unit 5051 has a plurality of plaintexts similar to the similarity and each of the plurality of plaintexts in which at least one is 0 when the similarity is within the threshold is encrypted by homomorphic encryption
  • a similar ciphertext generation process S807 for generating a plurality of similar ciphertexts is executed.
  • the similar ciphertext generation unit 5051 reads the public key PK from the key storage unit 502 and reads the threshold value ⁇ from the threshold storage unit 506.
  • the similar ciphertext generation unit 5051 uses the homomorphic operation based on the public key PK and the threshold value ⁇ , and the plaintext (S1, S2,%) Of the encryption similarity 5041 received from the encryption similarity calculation unit 504. ⁇ Generate a plurality of ciphertexts having values close to Sn). Each of the plurality of ciphertexts generated here is similar ciphertext E (PK, AS1, AS2,..., ASn). Specifically, the similar ciphertext generation unit 5051 uses the public key PK stored in the key storage unit 502 and the threshold value ⁇ stored in the threshold storage unit 506 to generate ⁇ + 1 pieces of similar ciphertext 50510. Generate.
  • the set of generated similar ciphertexts 50510 is represented as ⁇ c0, c1,..., C ⁇ , and each c is represented as E (PK, AS1, AS2,..., ASn). Also, the ciphertexts in the set of similar ciphertexts are arranged in the order of c0, c1,..., C ⁇ .
  • c0 E (PK, S1, S2,..., Sn)
  • c1 E (PK, ⁇ 1 + S1, ⁇ 1 + S2,..., + 1 + Sn),.
  • the similar ciphertext generation processing S807 converts the ciphertext by a homomorphic operation if there is plaintext Si with a similarity within ⁇ in the encryption similarity E (PK, S1, S2,..., Sn). This is a process of generating even one similar ciphertext in which 0 appears as plaintext.
  • the 0th similar ciphertext is a value obtained by subtracting 0 from the encryption similarity
  • the 1st similar ciphertext is a value obtained by subtracting 1 from the encryption similarity
  • This is a value obtained by subtracting ⁇ from the encryption similarity.
  • the similar ciphertext generation unit 5051 when the similarity is within the threshold ⁇ , a plurality of similarities obtained by encrypting each of a plurality of plaintexts in which the plaintext with the value of the similarity from the top is 0 is homomorphic encryption A ciphertext is generated.
  • the plaintext randomization unit 5052 randomizes a plurality of plaintexts of a plurality of similar ciphertexts 50510, and generates a set of random ciphertexts 50520 in which each of the plurality of randomized plaintexts is encrypted by homomorphic encryption Processing S808 is executed.
  • the plaintext randomization unit 5052 uses each public ciphertext c of the set of similar ciphertexts generated in the similar ciphertext generation processing S807 using the public key PK stored in the key storage unit 502. The plaintext is randomized for.
  • the plaintext randomizing unit 5052 generates ⁇ + 1 random ciphertexts as a result of randomizing the plaintext for each similar ciphertext c.
  • the set of generated random ciphertexts is represented as ⁇ C0, C1,..., C ⁇
  • each random ciphertext C is represented as E (PK, R1,..., Rn).
  • the ciphertexts in the set of random ciphertexts are arranged in the order of C0, C1,..., C ⁇ .
  • this randomization uses homomorphic operation to convert a similar ciphertext whose plaintext is other than 0 so that the plaintext is random, and a similar ciphertext whose plaintext is 0. This is a special randomizing process in which similar ciphertext is converted so that the plaintext remains 0.
  • the result transmission unit 5053 uses the set of random ciphertext 50520 generated by the plaintext randomization process S808 to generate an encrypted search result 5001 indicating whether the similarity is within the threshold ⁇ , and generates the generated cipher
  • the result transmission process S809 for transmitting the search result 5001 is executed.
  • the result transmission unit 5053 transmits the set of random ciphertexts ⁇ C0, C1,..., C ⁇ generated by the plaintext randomization process S808 to the search device 400 as the encrypted search result 5001.
  • step S810 the reception unit 401 receives the encrypted search result 5001 transmitted in the result transmission process S809, that is, the set of random ciphertexts ⁇ C0, C1,..., C ⁇ .
  • the decryption unit 406 decrypts the encrypted search result ⁇ C0, C1,..., C ⁇ received in the result transmission process S809 using the secret key SK stored in the key storage unit 402.
  • the search result 4061 is obtained.
  • step S812 the output unit 407 determines whether or not there is a plaintext having a value of 0 in a plurality of plaintexts based on the search result 4061. If it is determined that there is a plaintext having a value of 0, the similarity is the threshold ⁇ The search result information 4071 indicating that it is within is output. Further, the output unit 407 outputs search result information 4071 indicating that the similarity is greater than the threshold ⁇ when it is determined that there is no plaintext having a value of 0 in a plurality of plaintexts.
  • the output unit 407 determines that there is a plaintext having a value of 0 among the plurality of plaintexts, the output unit 407 acquires the order of the plaintext having a value of 0 in the plurality of plaintexts.
  • the output unit 407 may specify the acquired order as the similarity and output the specified similarity.
  • the search process of the confidential search system 100 ends by S812.
  • step S801 the input unit 403 receives (0, 0, 0) as search data of the data searcher.
  • the search data transmission unit 405 transmits the search encrypted data E (PK, 0, 0, 0) to the management device 500.
  • the data reception unit 501 searches for the encrypted search data E (PK, 0, 0). 0,0) is received.
  • step S806 the encryption similarity calculation unit 504 calculates the encryption similarity E (PK, 1).
  • the plaintext randomizing unit 5052 generates non-zero random numbers r0 and r1, performs homomorphic addition, and calculates ⁇ C0, C1 ⁇ as in the following Expression 1 and Expression 2.
  • step S809 the result transmission unit 5053 transmits ⁇ E (PK, r0), E (PK, 0) ⁇ .
  • the reception unit 401 receives ⁇ E (PK, r0), E (PK, 0) ⁇ .
  • the decryption unit 406 decrypts E (PK, r0) and E (PK, 0) using the secret key SK, and obtains r0 and 0 as plain text.
  • the output unit 407 decrypts and 0 appears, the similarity (Euclidean square distance) between the plaintext (0,0,1) of the stored encrypted data and the search data (0,0,0) is obtained.
  • the search result information 4071 indicating 1 is displayed on a display device or the like. The data searcher knows from the displayed search result information 4071 that the similarity (Euclidean square distance) is 1.
  • step S806 the encryption similarity calculation unit 504 calculates E (PK, 2) as the encryption similarity.
  • step S809 the result transmission unit 5053 transmits ⁇ E (PK, 2 ⁇ r0), E (PK, r1) ⁇ .
  • the reception unit 401 receives ⁇ E (PK, 2 ⁇ r0), E (PK, r1) ⁇ .
  • the decryption unit 406 decrypts E (PK, 2 ⁇ r0) and E (PK, r1) using the secret key SK, and obtains 2 ⁇ r0 and r1 as plain text.
  • the stored data and the search data can be executed while being encrypted using the method described in the present embodiment.
  • FIG. 10 is a flowchart showing the deletion process S140 of the secret search system 100 according to the present embodiment.
  • S901 to S904 in FIG. 10 are processes executed by the registration apparatus 300 and the management apparatus 500.
  • S ⁇ b> 901 to S ⁇ b> 902 are processes executed by the registration apparatus 300.
  • S903 to S904 are processes executed by the management apparatus 500.
  • step S ⁇ b> 901 the input unit 303 receives a deletion target data identifier for stored encrypted data to be deleted from the data registrant.
  • the deletion target data identifier may be any information as long as it can identify the storage data to be deleted.
  • step S902 the data transmission unit 305 transmits the deletion target data identifier input in step S901 to the management apparatus 500.
  • step S903 the data reception unit 501 receives the deletion target data identifier transmitted from the registration apparatus 300 in step S902.
  • the data storage unit 503 deletes the stored encrypted data stored based on the deletion target data identifier received in S903.
  • the deletion process of the confidential search system 100 ends by S904.
  • the output unit of the search device outputs an accurate value of the similarity if the similarity is within a certain threshold, and the threshold if the similarity exceeds the threshold. Only output information that exceeded the limit. Therefore, the data searcher cannot know the correct value of the similarity when the similarity exceeds the threshold, and cannot estimate the plaintext of the stored encrypted data from the similarity.
  • the secure search system 100 In the secure search system 100 according to the present embodiment, several similar ciphertexts are generated, and special randomization is performed on the similar ciphertexts, so that similarities are similar if they are within a certain threshold. If the degree of similarity exceeds the threshold, only information that the threshold has been exceeded can be output. Further, in the confidential search system 100 according to the present embodiment, the management device can calculate a ciphertext having a similarity while both the stored data and the search data are encrypted, and the similarity is obtained by disturbing the ciphertext. Only information about whether or not is within the threshold can be output.
  • the similarity can be calculated from the stored encrypted data and the search encrypted data without using any plaintext information. Furthermore, according to the secure search system 100 according to the present embodiment, the similarity itself is not disclosed to the data searcher, and if the similarity is within the threshold, it is disclosed, or only whether the similarity is within the threshold. Can be released.
  • the secret search system 100 may include a plurality of key generation devices 200.
  • the secret search system 100 may include only one registration device 300.
  • the secret search system 100 may include only one search device 400.
  • the secret search system 100 may include a plurality of management devices 500.
  • Each of the key generation device 200, the plurality of registration devices 300, the plurality of search devices 400, and the management device 500 is not connected via the network 101, but is a LAN (Local Area) laid in the same company. (Network).
  • LAN Local Area
  • the same PC may include a configuration in which at least two of the key generation device 200, the registration device 300, and the search device 400 are included at the same time.
  • Embodiment 2 differences from the first embodiment will be mainly described.
  • the data searcher can know the similarity itself.
  • the data searcher can only know that the similarity is within the threshold. explain.
  • FIG. 11 is a block diagram showing a configuration of management apparatus 500 according to the present embodiment.
  • components having the same functions as those described in Embodiment 1 are denoted by the same reference numerals, and description thereof is omitted.
  • the result transmission unit 5053 includes a ciphertext disturbance unit 50531 and a transmission unit 50532.
  • the ciphertext disturbing unit 50531 disturbs the set of random ciphertexts 50520 generated by the plaintext randomizing unit 5052, and generates a set of disturbed random ciphertexts 50520 as the disturbed random ciphertexts 5002.
  • the ciphertext disturbing unit 50531 disturbs the set of random ciphertexts 50520 by changing the order of the random ciphertexts 50520 in the set of random ciphertexts 50520 in the set of random ciphertexts 50520.
  • the ciphertext disturbing unit 50531 generates a set of random ciphertexts 50520 whose order has been changed as a disturbed random ciphertext 5002.
  • the ciphertext disturbing unit 50531 reads the public key PK stored in the key storage unit 502 and disturbs the random ciphertext E (PK, R1,..., Rn) received from the plaintext randomizing unit 5052. Processing is performed to generate a disturbed random ciphertext 5002. There may be one or more random random ciphertexts 5002. Note that the process of the ciphertext disturbing unit 50531 is executed so that the similarity itself does not appear even when the encrypted search result is decrypted. In other words, this is the final process for converting into ciphertext that only shows whether the similarity is within a certain threshold.
  • each random ciphertext in the set of random ciphertexts 50520 that is, the order is randomly replaced, the components between the random ciphertexts are exchanged randomly, or a homomorphic operation is performed.
  • the random ciphertext is combined into one ciphertext.
  • the transmission unit 50532 transmits the set of disturbed random ciphertexts 5002 generated by the ciphertext disturbing unit 50531 to the search device 400 as an encrypted search result 5001.
  • the output unit 407 of the search device 400 determines whether or not there is a plaintext with a value of 0 in a plurality of plaintexts, and when it is determined that there is a plaintext with a value of 0, the similarity is within the threshold ⁇ .
  • Search result information 4071 is output. Further, the output unit 407 of the search device 400 outputs search result information 4071 indicating that the similarity is greater than the threshold ⁇ when it is determined that there is no plaintext having a value of 0 in a plurality of plaintexts.
  • FIG. 12 is a flowchart showing the search process S130a of the secret search system 100 in the present embodiment.
  • the similarity is known by executing the search process using the replacement function ⁇ : ⁇ 0, 1,..., ⁇ ⁇ ⁇ 0, 1,.
  • the secret search system 100 that makes it difficult to improve the security will be described.
  • the difference from the first embodiment is only a part of the search process.
  • S1001 to S1013 in FIG. 12 are processing executed by the search device 400 and the management device 500.
  • S1001 to S1003 and S1011 to S1013 are processes executed by the search device 400.
  • S1004 to S1010 are processes executed by the management apparatus 500. Note that steps S1001 to S1008 in the search processing S130a of the present embodiment are the same as steps S801 to S808 of the first embodiment, and thus description thereof is omitted here.
  • the ciphertext disturbing unit 50531 randomly changes the order of the random ciphertexts to the set of random ciphertexts ⁇ C0, C1,..., C ⁇ generated in S1008, Create a set.
  • the transmission unit 50532 transmits the set of disturbed random ciphertexts ⁇ C ⁇ (1), C ⁇ (2),..., C ⁇ ( ⁇ ) ⁇ generated in S1009 to the search device 400 as the encrypted search result 5001. To do.
  • the reception unit 401 receives the encrypted search result ⁇ C ⁇ (1), C ⁇ (2),..., C ⁇ ( ⁇ ) ⁇ transmitted in S1010.
  • the decryption unit 406 uses the secret key SK stored in the key storage unit 402, and the encrypted search result ⁇ C ⁇ (1), C ⁇ (2),..., C ⁇ ( ⁇ ) ⁇ Is decoded to obtain a search result 4061.
  • the output unit 407 outputs search result information 4071 to the data searcher based on the result of determining the search result obtained in S1012.
  • the output unit 407 uses the search result 4061 to determine whether or not there is a plaintext of 0 in a plurality of plaintexts of the disturbed random ciphertext. If it is determined that there is a plaintext of 0, the similarity is within the threshold ⁇ .
  • the search result information 4071 representing that is output. Further, the output unit 407 outputs search result information 4071 indicating that the similarity is greater than the threshold ⁇ when it is determined that there is no plaintext of 0 in the plurality of plaintexts of the disturbed random ciphertext.
  • the encryption similarity calculation unit 504 calculates the encryption similarity E (PK, 1).
  • the plaintext randomizing unit 5052 generates non-zero random numbers r0 and r1, performs homomorphic addition, and calculates ⁇ C0, C1 ⁇ as in the following Expression 3 and Expression 4.
  • the ciphertext disturbing unit 50531 randomly determines the replacement ⁇ .
  • ⁇ C0, C1 ⁇ ⁇ E (PK, r0)
  • E (PK, 0) ⁇ is ⁇ C ⁇ (0)
  • C ⁇ (1) ⁇ ⁇ C1
  • C0 ⁇ ⁇ E (PK, 0)
  • E (PK, r0) ⁇ the order is changed.
  • the result transmission unit 5053 transmits ⁇ E (PK, 0), E (PK, r0) ⁇ .
  • the receiving unit 401 receives ⁇ E (PK, 0), E (PK, r0) ⁇ .
  • the decryption unit 406 decrypts E (PK, 0) and E (PK, r0) using the secret key SK to obtain 0 and a random number r0 as plain text.
  • the output unit 407 since the output unit 407 decrypts and 0 appears, the similarity between the plaintext (0,0,1) of the stored encrypted data and the search data (0,0,0), that is, the Euclidean square distance is determined.
  • Search result information 4071 representing the fact that it is within the threshold ⁇ , that is, within 1, is output.
  • the 0th ciphertext is a value obtained by subtracting 0 from the encryption similarity
  • the 1st ciphertext is obtained by subtracting 1 from the encryption similarity.
  • the data searcher always knows that the value,...,
  • the ⁇ th ciphertext is the value obtained by subtracting ⁇ from the encryption similarity. Therefore, if 0 appears at the j-th after decoding, the data searcher can easily know that the similarity is j. Therefore, by changing the order by the ciphertext disturbing unit 50531 in S1009, it can be converted into information indicating only whether the similarity between the stored data and the search data is within a threshold.
  • the data searcher in addition to obtaining the same effect as in the first embodiment, can obtain the similarity between the stored data and the search data from the search result. Since it is only possible to know whether the degree is within the threshold or not, the safety is further improved.
  • Embodiment 3 FIG.
  • differences from Embodiments 1 and 2 will be mainly described.
  • a secret search method for achieving the same object as that of the second embodiment, which is different from the second embodiment will be described.
  • a method for improving the security of the secret search system will be described below.
  • the secret search system of the present embodiment is almost the same as that of the second embodiment, and only a part of the search process is different.
  • the ciphertext disturbing unit 50531 exchanges the components of one random ciphertext with the components of the other random ciphertext in two random ciphertexts in the set of random ciphertexts 50520. Disturb the set of sentences 50520. The ciphertext disturbing unit 50531 generates a set of disturbed random ciphertexts 50520 as a disturbed random ciphertext 5002.
  • FIG. 13 is a flowchart showing the search process S130b of the secret search system 100 in the present embodiment.
  • S1101 to S1113 in FIG. 13 are processes executed by the search device 400 and the management device 500.
  • S1101 to S1103 and S1111 to S1113 are processes executed by the search device 400.
  • S1104 to S1110 are processes executed by the management apparatus 500. Note that steps S1101 to S1108 in the search process are the same as steps S1001 to S1008 of the second embodiment, and thus description thereof is omitted here.
  • the ciphertext disturbing unit 50531 generates a set ⁇ RC1, RC2,..., RCn ⁇ of disturbed random ciphertexts by repeating such exchange.
  • the ciphertext disturbing unit 50531 repeats such processing to generate a disturbed random ciphertext ⁇ RC1, RC2,..., RCn ⁇ .
  • the transmission unit 50532 transmits the set of disturbed random ciphertexts ⁇ RC1, RC2,..., RCn ⁇ generated in S1109 to the search device 400 as the encrypted search result 5001.
  • the receiving unit 401 receives the encrypted search result ⁇ RC1, RC2,..., RCn ⁇ transmitted in S1110.
  • the decryption unit 406 decrypts the encrypted search results ⁇ RC1, RC2,..., RCn ⁇ received in S1011 using the secret key SK stored in the key storage unit 402, and the search results 4061 is obtained.
  • the output unit 407 outputs search result information 4071 based on the search result 4061 obtained in S1112. By S1113, search processing S130b of secret search system 100 is ended.
  • the plaintext randomizing unit 5052 generates a random number that is not 0, performs homomorphic addition, and calculates ⁇ C0, C1, C2 ⁇ as follows.
  • C0 E (PK, R0, R1)
  • C1 E (PK, R2, R3)
  • C2 E (PK, R4, 0)
  • R0, R1, R2, R3, R4 are random numbers.
  • ⁇ RC0, RC1, RC2 ⁇ ⁇ E (PK, R2, 0), E (PK, R0, R1), E (PK, R4, R3) ⁇ .
  • the exchange of components between the ciphertexts can be easily performed because the ciphertexts can be simply exchanged.
  • the result transmission unit 5053 transmits ⁇ E (PK, R2, 0), E (PK, R0, R1), E (PK, R4, R3) ⁇ .
  • the reception unit 401 receives ⁇ E (PK, R2, 0), E (PK, R0, R1), E (PK, R4, R3) ⁇ .
  • the decryption unit 406 decrypts E (PK, R2, 0), E (PK, R0, R1), and E (PK, R4, R3) using the secret key SK.
  • the decryption unit 406 obtains R2, R0, and R4 as plaintexts related to S1, and obtains 0, R1, and R3 as plaintexts related to S2.
  • the output unit 407 outputs search result information 4071 indicating that the similarity regarding the Euclidean square distance between the stored data and the search data is greater than the threshold, that is, greater than 2, because 0 does not appear as the plaintext regarding S1. To do. Further, the output unit 407 outputs search result information 4071 indicating that the similarity regarding the hamming distance between the stored data and the search data is within the threshold, that is, within 2, since 0 appears as the plaintext regarding S2.
  • the data searcher in addition to obtaining the same effect as in the first embodiment, can obtain the similarity between the stored data and the search data from the search result. Since it is only possible to know whether or not the degree is within a threshold, safety can be further improved. Further, in the present embodiment, the same effect as in the second embodiment can be obtained by using a disturbance technique different from that in the second embodiment.
  • Embodiment 4 FIG.
  • differences from Embodiments 1 to 3 will be mainly described.
  • a secret search method for achieving the same object as in the second and third embodiments and using a technique different from those in the second and third embodiments will be described.
  • the secret search system according to the present embodiment has an advantage that the size of the encrypted search result can be reduced as compared with the first to third embodiments.
  • the secret search system of the present embodiment is almost the same as that of the third embodiment, and only a part of the search process is different.
  • the ciphertext disturbing unit 50531 disturbs the set of random ciphertexts 50520 by combining all the random ciphertexts included in the set of random ciphertexts 50520 by homomorphic multiplication.
  • the ciphertext disturbing unit 50531 generates one combined ciphertext obtained by combining a set of random ciphertexts 50520 as a disturbed random ciphertext 5002.
  • FIG. 14 is a flowchart showing the search process S130c of the secret search system 100 according to this embodiment. 14 are processing executed by the search device 400 and the management device 500. S1201 to S1203 and S1211 to S1213 are processes executed by the search device 400. S1204 to S1210 are processes executed by the management apparatus 500. Note that steps S1201 to S1208 in the search processing S130c of the present embodiment are the same as steps S1101 to S1108 of the third embodiment, and thus description thereof is omitted here.
  • the ciphertext disturbing unit 50531 uses the public key PK stored in the key storage unit 502 to perform the random ciphertext set ⁇ C0, C1,..., C ⁇ generated in S1208.
  • Ci E (PK, Ri1, Ri2,..., Rin) (i is an integer satisfying 0 ⁇ i ⁇ ⁇ )
  • Zj R0j ⁇ R1j ⁇ ... ⁇ R ⁇ j (i is 0 ⁇ i ⁇ ⁇ )
  • the result transmission unit 5053 transmits the combined ciphertext CC generated in S1209 to the search device 400 as the encrypted search result 5001.
  • the receiving unit 401 receives the encrypted search result CC transmitted in S1210.
  • the decryption unit 406 decrypts the encrypted search result CC received in S1211 using the secret key SK stored in the key storage unit 402, and obtains the search results Z1, Z2,. obtain.
  • the output unit 407 outputs the search result obtained in S1212.
  • the plaintext randomizing unit 5052 generates a random number other than 0, performs homomorphic addition, and calculates ⁇ C0, C1, C2 ⁇ as follows.
  • C0 E (PK, R0, R1)
  • C1 E (PK, R2, R3)
  • C2 E (PK, R4, 0)
  • R0, R1, R2, R3, R4 are random numbers.
  • R R0 ⁇ R2 ⁇ R4.
  • the receiving unit 401 receives E (PK, R, 0).
  • the decryption unit 406 decrypts E (PK, R, 0) using the secret key SK, obtains R as a plaintext relating to S1, and obtains 0 as a plaintext relating to S2.
  • the output unit 407 outputs the search result information 4071 indicating that the similarity regarding the Euclidean square distance between the stored data and the search data is greater than the threshold, that is, greater than 2, because the random number R appears as the plaintext regarding S1. To do. Further, the output unit 407 outputs search result information 4071 indicating that the similarity regarding the hamming distance between the stored data and the search data is within the threshold, that is, within 2, since 0 appears as the plaintext regarding S2.
  • Each of the key generation device 200, the registration device 300, the search device 400, and the management devices 500 and 500a is a computer.
  • Each of the key generation device 200, the registration device 300, the search device 400, and the management devices 500 and 500a includes hardware such as a processor 901, an auxiliary storage device 902, a memory 903, a communication device 904, an input interface 905, and a display interface 906.
  • the processor 901 is connected to other hardware via the signal line 910, and controls these other hardware.
  • the input interface 905 is connected to the input device 907.
  • the display interface 906 is connected to the display 908.
  • the processor 901 is an IC (Integrated Circuit) that performs processing.
  • Specific examples of the processor 901 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit).
  • a specific example of the auxiliary storage device 902 is a ROM (Read Only Memory), a flash memory, and an HDD (Hard Disk Drive).
  • a specific example of the memory 903 is a RAM (Random Access Memory).
  • the communication device 904 includes a receiver 9041 that receives data and a transmitter 9042 that transmits data.
  • a specific example of the communication device 904 is a communication chip or a NIC (Network Interface Card).
  • the input interface 905 is a port to which the cable 911 of the input device 907 is connected.
  • a specific example of the input interface 905 is a USB (Universal Serial Bus) terminal.
  • the display interface 906 is a port to which the cable 912 of the display 908 is connected.
  • a specific example of the display interface 906 is a USB terminal or a HDMI (registered trademark) (High Definition Multimedia Interface) terminal.
  • a specific example of the input device 907 is a mouse, a keyboard, or a touch panel.
  • a specific example of the display 908 is an LCD (Liquid Crystal Display).
  • the auxiliary storage device 902 stores programs that realize the functions of the key generation unit and the key transmission unit shown in FIG.
  • the auxiliary storage device 902 stores programs that realize the functions of the input unit, encryption unit, data transmission unit, key reception unit, and key storage unit shown in FIG. Yes.
  • the auxiliary storage device 902 implements the functions of the reception unit, input unit, encryption unit, key storage unit, search data transmission unit, decryption unit, and output unit shown in FIG. Program to be stored.
  • the auxiliary storage device 902 includes a data reception unit, a data storage unit, a threshold storage unit, a key storage unit, an encryption similarity calculation unit, and a similar ciphertext generation unit illustrated in FIG.
  • a program for realizing the functions of the plaintext randomizing unit and the result transmitting unit is stored.
  • the auxiliary storage device 902 includes a data reception unit, a data storage unit, a threshold storage unit, a key storage unit, an encryption similarity calculation unit, and a similar ciphertext generation unit illustrated in FIG.
  • a program for realizing the functions of a plaintext randomizing unit, a ciphertext disturbing unit, and a transmitting unit is stored.
  • the components listed in each of the key generation device 200, the registration device 300, the search device 400, and the management devices 500 and 500a are collectively referred to as “unit” for each device.
  • the input unit 303 of the registration device 300 and the input unit 403 of the search device 400 may be realized by the input interface 905 and the input device 907. Further, the output unit 407 of the search device 400 may be realized by the display interface 906 and the display 908.
  • the key transmission unit 202 of the key generation device 200, the search data transmission unit 405 of the search device 400, the result transmission unit 5053 of the management device 500, and the transmission unit 50532 of the management device 500a may be realized by the communication device 904. .
  • the receiving unit 401 of the search device 400 and the data receiving unit 501 of the management devices 500 and 500a may be realized by the communication device 904.
  • the key storage unit 302 of the registration device 300 and the key storage unit 402 of the search device 400 may be realized by the auxiliary storage device 902.
  • the data storage unit 503, the key storage unit 502, and the threshold storage unit 506 of the management apparatus 500 may also be realized by the auxiliary storage device 902.
  • the program that realizes the function of “unit” may be a single program or a plurality of programs. This program is loaded into the memory 903, read into the processor 901, and executed by the processor 901.
  • the auxiliary storage device 902 also stores an OS (Operating System). Then, at least a part of the OS is loaded into the memory 903, and the processor 901 executes a program that realizes the function of “unit” while executing the OS.
  • OS Operating System
  • the processor 901 executes a program that realizes the function of “unit” while executing the OS.
  • FIG. 15 one processor 901 is shown, but each of the key generation device 200, the registration device 300, the search device 400, and the management devices 500 and 500 a may include a plurality of processors 901. A plurality of processors 901 may execute a program for realizing the function of “unit” in cooperation with each other.
  • At least one of information, data, signal value, and variable value indicating the result of the processing of “unit” is stored in the memory 903, the auxiliary storage device 902, or a register or cache memory in the processor 901.
  • a program for realizing the function of “part” is stored in a storage medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD.
  • Parts may be provided by “Processing Circuitry”. Further, “part” may be read as “circuit”, “process”, “procedure”, or “processing”.
  • the “circuit” and the “processing circuit” are not only the processor 901 but also other types of processing circuits such as a logic IC or GA (Gate Array) or ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array). Is a concept that also includes
  • a program product is a storage medium and storage device on which a program that realizes the function described as “part” is recorded, and loads a computer-readable program regardless of the appearance format. It is what you are doing.
  • each “unit” constitutes each device as an independent functional block.
  • each device may not be configured as described above, and the configuration of each device is arbitrary.
  • the functional blocks of each device are arbitrary as long as the functions described in the above embodiments can be realized. You may comprise each apparatus of the key generation apparatus 200, the registration apparatus 300, the search apparatus 400, and the management apparatus 500, 500a by these function blocks in what kind of other combination or arbitrary block configurations.
  • each device of the key generation device 200, the registration device 300, the search device 400, and the management devices 500 and 500a may be a system constituted by a plurality of devices instead of a single device.
  • Embodiments 1 to 4 have been described, a plurality of these four embodiments may be partially combined. Alternatively, one of the four embodiments may be partially implemented. In addition, these four embodiments may be implemented in any combination, in 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 key generation unit, 202 key transmission unit, 300 registration device, 301 key reception unit, 302 key storage unit, 303 input unit, 304 encryption unit, 305 data transmission unit , 400 search device, 401 reception unit, 402 key storage unit, 403 input unit, 404 encryption unit, 405 search data transmission unit, 406 decryption unit, 4061 search result, 407 output unit, 4071 search result information, 500, 500a management Device, 5001 encrypted search result, 5002 disturbed random ciphertext, 501 data receiving unit, 502 key storage unit, 503 data storage unit, 504 encryption similarity calculation unit, 5041 encryption similarity, 505 encryption result transmission unit, 5051 Similar ciphertext generator, 50510 Similar ciphertext, 5052 plaintext randomization unit, 50520 random ciphertext, 5053 result transmission unit, 50531 ciphertext disruption unit, 50532 transmission unit, 506 threshold storage unit, ⁇ threshold, 610 storage data, 620 storage encryption data, 710 search Data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

準同型暗号により暗号化された保管データである保管暗号化データ(620)と、保管データの検索に用いる検索データであって準同型暗号により暗号化された検索データである検索暗号化データ(720)とを準同型演算することにより、保管データと検索データとの類似度が準同型暗号により暗号化された暗号化類似度(5041)を算出する暗号化類似度計算部(504)と、暗号化類似度(5041)を用いて類似度が閾値θ以内であるか否かを表す暗号化検索結果(5001)を生成し、検索装置に送信する暗号化結果送信部(505)とを有する。

Description

秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
 本発明は、秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラムに関する。
 秘匿検索とは、検索対象データと検索内容とを暗号化したまま検索できる技術である。
 近年、クラウドサービス等の普及により、インターネット上でのデータ管理が可能となった。しかし、インターネット上でのデータ管理には、データ管理の委託先であるクラウドのサーバがコンピュータウィルス等のマルウェアに感染すること、あるいは、サーバの管理者が不正を働くことなどによって、預けたデータが外部に漏洩する危険性がある。もしサーバに預けたデータが個人情報あるいは企業機密データであった場合、この漏洩は非常に問題である。
 このようなセキュリティの脅威を回避する方法として暗号化技術がある。しかし、単純にデータを暗号化してサーバに保管するとデータの検索ができなくなるといった問題が生じる。このような問題を回避するために、従来では、検索を行うときにサーバ上に保管された暗号化データを一旦復号してから検索を行うという手法がとられてきた。しかし、データがサーバ内で一定期間平文に戻ってしまうため、セキュリティ対策として十分とはいえない。そこで、データを暗号化したまま検索可能な暗号技術である秘匿検索技術が考案され、秘匿検索技術の具体的な手法が近年多く開示されている。
 非特許文献1には、秘匿検索技術における検索機能として、単純な検索である完全一致検索ができる方式が開示されている。
 また、特許文献1、特許文献2、特許文献3、及び非特許文献2には、より柔軟な検索である類似度検索ができる方式が開示されている。ここから以降、類似度検索ができる秘匿検索技術を秘匿類似度検索技術と呼ぶ。特許文献1及び非特許文献2では、暗号化したまま演算が可能な準同型暗号と呼ばれる特殊な暗号技術を用いてハミング距離を効率良く計算する秘匿類似度検索技術を開示している。
 また、非特許文献3、非特許文献4、非特許文献5、非特許文献6においても準同型暗号について開示されている。
 秘匿類似度検索技術では、データ登録者がサーバに保管した暗号化データと、データ検索者が検索したいデータの暗号文とから、それぞれを復号することなく秘匿したまま、それぞれの平文の間の類似度を計算することができる。ここから以降、データ登録者がサーバに保管した暗号化データを保管暗号化データと呼ぶ。また、データ検索者が検索したいデータの暗号文を検索暗号化データと呼ぶ。また、平文の間の類似度の具体例としては、保管暗号化データの平文と検索暗号化データの平文とのユークリッド2乗距離などである。
 サーバは、データ検索者から検索の要求、すなわち類似度計算の要求があれば、類似度を秘匿したまま計算し、その計算結果をデータ検索者に送信する。その後、データ検索者は復号することで類似度を知ることができる。このように、秘匿類似度検索技術は、検索としてのみならず、秘匿分析技術としての側面を持っている。
 具体例として、データ登録者を患者、データ検索者を分析者としたとき、秘匿類似度検索技術は、患者のプライバシを保ったまま、すなわち患者の個人データを公開することなく、暗号化したまま分析できる。このため、患者は安心してデータ分析者に分析を依頼することができる。よって、このような秘匿類似度検索技術はプライバシ保護の観点からも非常に有用である。
特開2015-031935号公報 特開2013-105207号公報 国際公開第2013/038698号
D. Boneh, G. D. Crescenzo, R. Ostrovsky, and G. Persiano, "Public Key Encryption with Keyword Search", EUROCRYPT 2004, Lecture Notes in Computer Science 3027, Springer, 2004. 小暮,安田,下山,小柴,横山."準同型暗号を用いた秘匿検索",第31回 暗号と情報セキュリティシンポジウム(SCIS2014),1D3-5,2014. C. Gentry, "Fully Homomorphic Encryption Using Ideal Lattices", ACM Symposium on Theory of Computing, p.169-178, 2009. D. Boneh, E-J. Goh, and K. Nissim, "Evaluating 2-DNF Formulas on Ciphertexts", TCC 2005, Lecture Notes in Computer Science 3378, Springer, 2005. P. Paillier,"Public-Key Cryptosystems Based on Composite Degree Residuosity Classes", Eurocrypt 1999, Lecture Notes in Computer Science 1592, Springer, 1999. D. Catalano and D. Fiore, "Boosting Linearly-Homomorphic Encryption to Evaluate Degree-2 Functions on Encrypted Data", IACR Cryptology ePrint Archive: Report 2014/813.
 既存の秘匿類似度検索技術の課題について説明する。
 特許文献1及び非特許文献2では、暗号化したまま演算が可能な準同型暗号と呼ばれる特殊な暗号技術を用いてハミング距離を効率良く計算する秘匿類似度検索技術を開示している。ここで開示された方法では、データ検索者がデータ検索を行った結果、保管暗号化データの平文と検索暗号化データの平文との類似度を、データ検索者は平文で知ることができる。なお、サーバ上ではこの類似度の値が一切現れない。このとき、データ検索者は、検索暗号化データの平文と類似度との2つのデータから、保管暗号化データの平文を推測できる可能性がある。
 具体例で説明する。保管暗号化データの平文を(0,0,0,1,1)、検索暗号化データの平文を(0,0,0)とすると、データ検索者は検索結果の類似度、すなわちハミング距離として(0,1,2)を得ることができる。具体的には、(0,0,0,1,1)を(0,0,0)で検索する場合、(0,0,0,1,1)の最初の3成分である(0,0,0)と(0,0,0)とのハミング距離(=0)、(0,0,0,1,1)の次の3成分である(0,0,1)と(0,0,0)とのハミング距離(=1)、(0,0,0,1,1)の次の3成分である(0,1,1)と(0,0,0)とのハミング距離(=2)をデータ検索者は得ることができる。
 一方で、データ検索者は、検索暗号化データの平文が(0,0,0)であり、この平文(0,0,0)と保管暗号化データの平文とのハミング距離として(0,1,2)が得られたとする。このとき、データ検索者は、この保管暗号化データの平文を(0,0,0,1,1)と簡単に特定することができる。
 上述したように、データ登録者を患者、データ検索者を分析者としたとき、分析者は検索データと類似度から患者のデータを推測できる可能性がある。このため、特許文献1及び非特許文献2で開示された方法を用いても、患者のプライバシを保てないという課題がある。
 特許文献2では、保管暗号化データの平文に関するハッシュ値と、保管暗号化データとを関連付けて保管する平文の補助情報を使った秘匿類似度検索技術が開示されている。しかしながら、この平文の補助情報は保管暗号化データの平文の直接的な部分情報であるため、この補助情報から保管暗号化データの平文を推測される可能性がある。よって、特許文献2の方法を用いても十分な安全性を達成できないという課題がある。
 特許文献3では、データ検索者に対して、類似度そのものを公開せず、類似度が閾値以内の場合のみ類似度を公開する、もしくは類似度が閾値以内か否かのみを公開する方式の秘匿類似度検索技術が開示されている。しかしながら、特許文献3においてサーバが行う類似度計算処理は、登録データの平文を使って処理するものである。このため、保管されているデータは暗号化されていないことが前提である。つまり、サーバは第三者のものではなく、データ登録者の所有物として考えられる。よって、データ登録者がサーバを所持していない状態では、プライバシを保護したまま外部に分析を依頼することはできないという課題がある。
 本発明は、平文情報を一切用いることなく、保管暗号化データと検索暗号化データとから類似度計算ができ、かつ、類似度が閾値以内か否かを表す情報を出力する秘匿検索システムを提供することを目的とする。
 本発明に係る秘匿検索システムは、
 準同型暗号により暗号化された保管データである保管暗号化データと、前記保管データの検索に用いる検索データであって前記準同型暗号により暗号化された検索データである検索暗号化データとを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出する暗号化類似度計算部と、
 前記暗号化類似度を用いて前記類似度が閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する暗号化結果送信部と
を有する管理装置と、
 前記管理装置から送信された前記暗号化検索結果を復号し、復号した前記暗号化検索結果を検索結果として出力する復号部と、
 前記検索結果に基づいて、前記類似度が前記閾値以内であるか否かを表す検索結果情報を出力する出力部と
を有する検索装置と
を備える。
 本発明に係る秘匿検索システムは、保管暗号化データと検索暗号化データとを準同型演算することにより、平文である保管データと検索データとを用いることなく、保管データと検索データとの類似度が暗号化された暗号化類似度を算出する暗号化類似度計算部と、暗号化類似度を用いて類似度が閾値以内であるか否かを表す暗号化検索結果を生成し、生成した暗号化検索結果を送信する暗号化結果送信部とを有する管理装置を備える。また、本発明に係る秘匿検索システムは、管理装置から受信した暗号化検索結果を復号し、検索結果として出力する復号部と、検索結果に基づいて、類似度が閾値以内であるか否かを表す検索結果情報を出力する出力部とを有する検索装置を備える。よって、本発明に係る秘匿検索システムによれば、平文を用いることなく、保管暗号化データと検索暗号化データとから暗号化された暗号化類似度を算出すると共に、類似度そのものを出力することなく、類似度が閾値以内か否かを表す検索結果情報を出力することができるので、より安全性が高い秘匿検索システムを提供することができる。
実施の形態1に係る秘匿検索システム100のシステム構成図。 実施の形態1に係る鍵生成装置200のブロック構成図。 実施の形態1に係る登録装置300のブロック構成図。 実施の形態1に係る検索装置400のブロック構成図。 実施の形態1に係る管理装置500のブロック構成図。 実施の形態1に係る秘匿検索システム100の秘匿検索方法9100、秘匿検索プログラム9200の秘匿検索処理S100の流れを示すフロー図である。 実施の形態1に係る秘匿検索システム100の鍵生成処理S110を示すフローチャート。 実施の形態1に係る秘匿検索システム100の登録処理S120を示すフローチャート。 実施の形態1に係る秘匿検索システム100の検索処理S130を示すフローチャート。 実施の形態1に係る秘匿検索システム100の削除処理S140を示すフローチャート。 実施の形態2に係る管理装置500aのブロック構成図。 実施の形態2における秘匿検索システム100の検索処理S130aを示すフローチャート。 実施の形態3における秘匿検索システム100の検索処理S130bを示すフローチャート。 実施の形態4における秘匿検索システム100の検索処理S130cを示すフローチャート。 鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置のハードウェア構成図。
 以下、実施の形態について、図を用いて説明する。なお、各図中、互いに同一又は相当する構成部には、同一符号を付している。実施の形態の説明において、互いに同一又は相当する構成部については、その説明を適宜省略又は簡略化する。
 実施の形態1.
 本実施の形態では、暗号技術の一つである準同型暗号を用いた秘匿類似度検索技術について説明する。
 まずは、準同型暗号とその応用について説明する。
 準同型暗号は、暗号化データを復号することなく暗号化したまま四則演算が行える暗号技術である。
 平文xと平文yに対して、準同型暗号を用いて暗号化したそれぞれの暗号文をE(x)とE(y)と書くことにする。
 準同型暗号では、E(x)とE(y)に対して演算を行うと、平文がx+yの暗号文E(x+y)を得ることができる。これを準同型加算と呼び、本実施の形態ではこの演算を◇と表わし、E(x)◇E(y)=E(x+y)と書くことにする。
 また、E(x)とE(y)に対して演算を行うと、平文がx-yの暗号文E(x-y)を得ることができる。これを準同型減算と呼び、本実施の形態ではこの演算を◆と表わし、E(x)◆E(y)=E(x-y)と書くことにする。
 また、E(x)とE(y)に対して演算を行うと、平文がx×yの暗号文E(x×y)を得ることができる。これを準同型乗算と呼び、本実施の形態ではこの演算を□と表わし、E(x)□E(y)=E(x×y)と書くことにする。
 また、E(x)とE(y)に対して演算を行うと、平文がx/yの暗号文E(x/y)を得ることができる。これを準同型除算と呼び、本明細書ではこの演算を■と表わし、E(x)■E(y)=E(x/y)と書くことにする。
 なお、準同型暗号の中には、準同型加算及び準同型減算しかできないものと、準同型加算及び準同型減算の回数制限はないが準同型乗算及び準同型除算の回数制限があるものとがある。また、準同型加算及び準同型減算と、準同型乗算及び準同型除算共に回数制限がないものがある。
 準同型暗号の応用の具体例として、サーバに保管された保管暗号化データとデータ検索者の検索暗号化データとから、暗号化したまま類似度の暗号文を計算することができる。以下の説明では、類似度の暗号文を暗号化類似度という場合がある。
 まず、具体例1について説明する。具体例1の準同型暗号を用いて、(x1,x2)と(y1,y2)の間のユークリッド2乗距離の暗号文、すなわち暗号化類似度を暗号化したまま求める例について説明する。なお、(x1,x2)と(y1,y2)の間のユークリッド2乗距離は、(x1-y1)×(x1-y1)+(x2-y2)×(x2-y2)と計算して求めることができる。ただし、x1,x2,y1,y2は、整数とする。
 ここで、保管暗号化データをE(x1,x2)=(E(x1),E(x2))、検索暗号化データをE(y1,y2)=(E(y1),E(y2))とする。すなわち、それぞれの暗号文は、各平文の暗号文を成分に持つベクトルである。
 このとき、暗号化ユークリッド2乗距離を計算するためには、まず、T1=E(x1-y1)=E(x1)◆E(y1)及びT2=E(x2-y2)=E(x2)◆E(y2)を計算する。その後、T3=T1□T1=E((x1-y1))及びT4=T2□T2=E((x2-y2))を計算する。最後に、T3◇T4=E((x1-y1)+(x2-y2))を計算すればよい。
 次に、具体例2について説明する。具体例2では、保管暗号化データE(x1,x2,x3)と検索暗号化データE(y1,y2)との暗号化類似度を求める例について説明する。具体例2の準同型暗号は、上述した具体例1の準同型暗号とは異なり、平文のベクトルを一括で暗号化でき、1つの暗号文で表現できる。
 具体例2の1つ目の例では、類似度としてハミング距離を用いており、(x1,x2)と(y1,y2)とのハミング距離をS1、(x2,x3)と(y1,y2)のハミング距離をS2としている。具体例2の1つ目の例は、保管暗号化データE(x1,x2,x3)と検索暗号化データE(y1,y2)から、E(S1,S2)を効率良く計算する方法である。なお、(x1,x2)と(y1,y2)の間のハミング距離は、ユークリッド2乗距離の計算方法と同様に、(x1-y1)×(x1-y1)+(x2-y2)×(x2-y2)と計算して求めることができる。ただし、x1,x2,y1,y2は、0または1の整数とする。
 また、具体例2の2つ目の例では、準同型加算及び準同型減算しかできない準同型暗号方式を用いて、保管されている平文データと検索暗号化データの平文との暗号化Tversky係数、すなわち暗号化類似度を計算する。さらに、計算した暗号化類似度から、復号後の平文の類似度がある閾値以内か否かだけがわかるような暗号文、すなわち暗号化検索結果を生成している。しかし、この具体例2の2つ目の例では、保管されている平文データと検索暗号化データの平文との暗号化類似度を求める方式であるため、セキュリティ上の安全性が低い。
***構成の説明***
 以下、本実施の形態の概要について説明する。
 図1は、本実施の形態に係る秘匿検索システム100のシステム構成を示す図である。
 図1に示すように、秘匿検索システム100は、鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とを備える。管理装置500aについては実施の形態2で説明する。
 秘匿検索システム100では、鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とのそれぞれがネットワーク101を経由して接続される。
 ネットワーク101は、鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とを接続する通信路である。ネットワーク101は、具体的には、インターネット、LAN(Local Area Network)であり、他の種類のネットワークが用いられてもよい。
 鍵生成装置200は、準同型暗号の公開鍵及び秘密鍵のペアを作成し、ネットワーク101を介して、複数の登録装置300と、複数の検索装置400と、管理装置500とに公開鍵及び秘密鍵を送信する。なお、公開鍵及び秘密鍵は、ネットワーク101を介さず、郵送などで直接的に、複数の登録装置300と、複数の検索装置400と、管理装置500とに送信してもよい。鍵生成装置200は、複数の登録装置300と、管理装置500とには公開鍵のみを送付する。鍵生成装置200は、複数の検索装置400には公開鍵及び秘密鍵を送付する。
 登録装置300は、具体的には、PC(Personal Computer)である。登録装置300は、保管暗号化データを管理装置500に登録する登録端末として動作するコンピュータである。
 登録装置300は、暗号化装置及び登録装置として機能する。すなわち、登録装置300は、保管暗号化データを生成し、保管暗号化データの保管を管理装置500に要求する。
 また、登録装置300は、削除要求装置として機能する。すなわち、登録装置300は、管理装置500に対して、保管されている保管暗号化データの削除を要求する。
 検索装置400は、具体的には、PCである。検索装置400は、検索暗号化データを管理装置500に送信し、その後管理装置500から暗号化検索結果を受信する。そして、検索装置400は、受信した暗号化検索結果を復号する端末として動作するコンピュータである。
 検索装置400は、検索要求装置として機能する。すなわち、検索装置400は、検索暗号化データを管理装置500に送信し、保管暗号化データと検索暗号化データとに関する暗号化類似度の計算を要求する。
 検索装置400は、復号装置として機能する。すなわち、検索装置400は、管理装置500から返信される暗号化検索結果を復号する。
 管理装置500は、登録装置300によって作成された保管暗号化データを保管する大容量の記録媒体を持つ装置である。
 管理装置500は、保管装置として機能する。すなわち、管理装置500は、登録装置300から保管暗号化データの保管の要求があれば、保管暗号化データを保管する。
 管理装置500は、検索実行装置として機能する。すなわち、管理装置500は、検索装置400からの検索の要求があれば、保管暗号化データと検索暗号化データとから暗号化類似度を計算し、その後暗号化類似度から暗号化検索結果を計算し、暗号化検索結果を検索装置400に送信する。
 管理装置500は、削除装置として機能する。すなわち、管理装置500は、登録装置300から保管暗号化データの削除の要求があれば、保管している保管暗号化データを削除する。
 なお、同じPC内に、鍵生成装置200と登録装置300と検索装置400との少なくとも2つが同時に含まれていてもよい。
 保管暗号化データ及び検索暗号化データは、いずれも暗号化されている。また、暗号化類似度及び暗号化検索結果も暗号化されている。検索装置400以外の秘密鍵SKを持たない装置では、保管暗号化データ、検索暗号化データ、暗号化類似度、暗号化検索結果から有益な情報を得ることはできない。
 以下、本実施の形態の構成について詳細に説明する。
 図1に示したように、秘匿検索システム100は、鍵生成装置200と、登録装置300と、検索装置400と、管理装置500とを備える。以下では、鍵生成装置200の構成、登録装置300の構成、検索装置400の構成、管理装置500の構成について順番に説明する。
 図2は、本実施の形態に係る鍵生成装置200のブロック構成を示す図である。
 図2に示すように、鍵生成装置200は、鍵生成部201と、鍵送信部202とを備える。また、図示していないが、鍵生成装置200は、鍵生成装置200の各部で使用されるデータを記憶する記録媒体を備える。
 鍵生成部201は、データを暗号化及び復号するための準同型暗号の公開鍵PKと秘密鍵SKとを生成する。秘密鍵SKは検索装置400に保管される秘密情報であるため、厳重に生成される。なお、本実施の形態では、公開鍵暗号系の準同型暗号を用いて説明しているが、共通鍵暗号系の準同型暗号を用いてもよい。このとき、鍵生成部201は、秘密鍵SK=公開鍵PKのみを生成する。この秘密鍵SKは、登録装置300と、検索装置400と、管理装置500とに厳重に保管される。
 鍵送信部202は、鍵生成部201で生成された公開鍵PKを、登録装置300と、管理装置500とに送信する。また、鍵送信部202は、鍵生成部201で生成された公開鍵PKと秘密鍵SKのペアを検索装置400へ送信する。
 図3は、本実施の形態に係る登録装置300のブロック構成を示す図である。
 図3に示すように、登録装置300は、鍵受信部301と、鍵保管部302と、入力部303と、暗号化部304と、データ送信部305とを備える。図示していないが、登録装置300は、登録装置300の各部で使用されるデータを記憶する記録媒体を備える。
 鍵受信部301は、鍵生成装置200から送信されてきた公開鍵PKを受信する。
 鍵保管部302は、鍵受信部301により受信された公開鍵PKを保管する。
 入力部303は、データ登録者から入力された保管データ610を受け取る。なお、本実施の形態では、保管データ610としてベクトル(x1,x2,・・・,xk)(kは、k≧1となる整数)をデータ登録者から受け取ったものとして説明する。
 また、入力部303は、データ登録者から、保管データ610と同時に、その保管データ610に関する保管データ識別子を受けとってもよい。保管データ識別子は、具体的には、保管暗号化データ名、登録した時刻、データ登録者の名前など、保管データを識別できる情報であればよい。
 また、入力部303は、データ登録者から、管理装置500に保管された保管暗号化データのうち、削除したい保管暗号化データを識別する削除対象データ識別子を受け取る。削除対象データ識別子は、具体的には、保管暗号化データ名、登録した時刻、データ登録者の名前など、保管データを識別できるもの情報であればよい。
 暗号化部304は、鍵保管部302から公開鍵PKを読み出し、入力部303から受け取った保管データ(x1,x2,・・・,xk)に対して公開鍵PKを用いて暗号化し、保管暗号化データ620を作成する。なお、本実施の形態では、保管暗号化データ620をE(PK,x1,x2,・・・,xk)と表わすことにする。
 なお、上述した具体例2の準同型暗号のように、ベクトルを一括で暗号化できる準同型暗号を用いた場合は、E(PK,x1,x2,・・・,xk)は1つの暗号化とみなすことができる。一方で、上述した具体例1の準同型暗号を用いた場合は、ベクトル成分毎に暗号化する必要がある。よって、具体例1の準同型暗号を用いた場合は、E(PK,x1,x2,・・・,xk)は、各ベクトル成分の暗号文のベクトル(E(PK,x1),E(PK,x2),・・・,E(PK,xk))とみなされる。
 データ送信部305は、暗号化部304から受け取った保管暗号化データE(PK,x1,x2,・・・,xk)を管理装置500へ送信する。もし、データ登録者から保管データと同時に保管データ識別子も入力されていた場合は、保管暗号化データと保管データ識別子との両方を管理装置500へ送信する。
 また、データ送信部305は、入力部303から受け取った削除対象データ識別子を管理装置500へ送信する。
 図4は、本実施の形態に係る検索装置400のブロック構成を示す図である。
 図4に示すように、検索装置400は、受信部401と、鍵保管部402と、入力部403と、暗号化部404と、検索データ送信部405と、復号部406と、出力部407とを備える。図示していないが、検索装置400は、検索装置400の各部で使用されるデータを記憶する記録媒体を備える。
 受信部401は、鍵生成装置200から送信されてきた公開鍵PKと秘密鍵SKとのペアを受信する。また、受信部401は、管理装置500から暗号化検索結果5001を受信する。なお、暗号化検索結果5001は、類似度計算の内容によって、1つの暗号文もしくは複数の暗号文である場合がある。暗号化検索結果5001は、保管データと検索データとの類似度が閾値以内であるか否かを表す情報である。ただし、暗号化検索結果5001は、保管データと検索データとの類似度が閾値以内であるか否かを表す情報が暗号化されたものであり、類似度の値そのものは含まれない。
 鍵保管部402は、受信部401から受け取った公開鍵PKと秘密鍵SKとのペアを保管する。
 入力部403は、データ検索者から入力された検索データ710を受け取る。なお、本実施の形態では、検索データ710としてベクトル(y1,y2,・・・,ym)(mは、m≧1となる整数)をデータ検索者から受け取ったとして説明する。ここで、検索データの長さmは保管データの長さnと同じでも、もしくは異なっていてもよい。このmの値は、データ検索者がどのような類似度計算したいかに依存して決定される。
 また、入力部403は、データ検索者から、検索データ710と共に、その検索データ710により検索する保管暗号化データ620を指定する検索対象データ識別子を受けとってもよい。検索データ710により検索する保管暗号化データとは、検索データ710により類似度を算出する対象の保管暗号化データのことである。検索対象データ識別子としては、具体的には、保管暗号化データ名、登録した時刻、データ登録者の名前など、保管暗号化データを特定できる情報であればよい。
 暗号化部404は、鍵保管部402から公開鍵PKを読み出し、入力部403から受け取った検索データ710、すなわちベクトル(y1,y2,・・・,ym)に対して公開鍵PKを用いて暗号化し、検索暗号化データ720を作成する。本実施の形態では、検索暗号化データをE(PK,y1,y2,・・・,ym)と表わすことにする。
 検索データ送信部405は、暗号化部404から受け取った検索暗号化データ720、すなわちE(PK,y1,y2,・・・,ym)を管理装置500へ送信する。もし、データ検索者から検索データ710と共に検索対象データ識別子が入力されていた場合は、検索データ送信部405は、検索暗号化データ720と検索対象データ識別子との両方を管理装置500へ送信する。
 復号部406は、管理装置500から送信された暗号化検索結果5001を復号し、復号した暗号化検索結果5001を検索結果4061として出力する。
 復号部406は、鍵保管部402から秘密鍵SKを読み出し、受信部401から受け取った暗号化検索結果5001を復号して、検索結果4061を抽出する。
 出力部407は、検索結果4061に基づいて、類似度が閾値θ以内であるか否かを表す検索結果情報4071を出力する。
 出力部407は、復号部406から受け取った検索結果4061をそのままデータ検索者に対して出力してもよい。
 図5は、本実施の形態に係る管理装置500のブロック構成を示す図である。
 図5に示すように、管理装置500は、データ受信部501と、鍵保管部502と、データ保管部503と、暗号化類似度計算部504と、暗号化結果送信部505と、閾値保管部506とを備える。暗号化結果送信部505は、類似暗号文生成部5051と、平文ランダム化部5052と、結果送信部5053とを備える。
 図示していないが、管理装置500は、管理装置500の各部で使用されるデータを記憶する記録媒体を備える。
 データ受信部501は、鍵生成装置200から送信されてきた公開鍵PKを受信する。
 また、データ受信部501は、保管データ610の検索に用いる検索データ710であって準同型暗号により暗号化された検索データ710である検索暗号化データ720を受信する。
 データ受信部501は、登録装置300から送られてきた保管暗号化データ620、すなわちE(PK,x1,x2,・・・,xk)を受信する。データ受信部501は、保管暗号化データE(PK,x1,x2,・・・,xk)に加え、登録装置300から保管データ識別子及び削除対象データ識別子を受信する場合もある。また、データ受信部501は、上述したように、検索暗号化データE(PK,y1,y2,・・・,ym)に加え、検索装置400から送信されてきた検索対象データ識別子を受信する場合もある。
 鍵保管部502は、データ受信部501から受け取った公開鍵PKを保管する。
 データ保管部503は、準同型暗号により暗号化された保管データ610を保管暗号化データ620として保管する。
 データ保管部503は、データ受信部501から受け取った保管暗号化データE(PK,x1,x2,・・・,xk)と保管データ識別子とを対応付けて保管する。もし保管データ識別子がなかった場合は、データ保管部503は、保管データ識別子としてデータ登録者名あるいは登録時刻などから保管データ識別子を生成して、保管暗号化データと対応付けて保管する。
 また、データ保管部503は、データ受信部501から受け取った削除対象データ識別子に基づき、保管している保管暗号化データを削除する。
 暗号化類似度計算部504は、準同型暗号により暗号化された保管データである保管暗号化データ620と、保管データの検索に用いる検索データであって準同型暗号により暗号化された検索データである検索暗号化データ720とを準同型演算することにより、保管データと検索データとの類似度が準同型暗号により暗号化された暗号化類似度5041を算出する。
 暗号化類似度計算部504は、データ受信部501から検索暗号化データE(PK,y1,y2,・・・,ym)と検索対象データ識別子を受け取る。また、暗号化類似度計算部504は、鍵保管部502から公開鍵PKを読み出す。そして、暗号化類似度計算部504は、検索対象データ識別子に基づき、データ保管部503から保管暗号化データE(PK,x1,x2,・・・,xk)を読み出す。もし、検索対象データ識別子がなかった場合は、データ保管部503からすべての保管暗号化データ620を読み出す。
 そして、暗号化類似度計算部504は、公開鍵PKと、各保管暗号化データ620と、検索暗号化データ720とを用いて、準同型演算を行って暗号化類似度5041を計算する。ここで、保管暗号化データE(PK,x1,x2,・・・,xk)と検索暗号化データE(PK,y1,y2,・・・,ym)との暗号化類似度5041をE(PK,S1,S2,・・・,Sn)と表わすことにする。
 上述したように、具体例1の準同型暗号を用いて、(x1,x2)と(y1,y2)(k=m=2)の間のユークリッド2乗距離を求める場合は、n=1で、S1を(x1,x2)と(y1,y2)のユークリッド2乗距離と考える。また、具体例2の準同型暗号を用いて、(x1,x2,x3)(k=3)と(y1,y2)(m=2)のハミング距離に関する類似度を求める場合は、n=2で、S1を(x1,x2)と(y1,y2)のハミング距離、S2を(x2,x3)と(y1,y2)のハミング距離と考える。
 暗号化結果送信部505は、暗号化類似度5041を用いて類似度が閾値以内であるか否かを表す暗号化検索結果5001を生成し、生成した暗号化検索結果5001を送信する。
 類似暗号文生成部5051は、類似度に類似する複数の平文であって、類似度が閾値以内の場合には少なくとも1つは0となる複数の平文の各々が準同型暗号により暗号化された複数の類似暗号文50510を生成する。
 類似暗号文生成部5051は、鍵保管部502から公開鍵PKを読み出し、閾値保管部506から閾値θを読み出す。類似暗号文生成部5051は、公開鍵PKと閾値θとに基づいて、準同型演算を用いて、暗号化類似度計算部504から受け取った暗号化類似度5041の平文(S1,S2,・・・,Sn)と近い値を持つ暗号文を複数生成する。この生成された暗号文を類似暗号文50510と呼ぶことにし、各類似暗号文をE(PK,AS1,AS2,・・・,ASn)と表わすことにする。
 閾値保管部506は、閾値θを保管する。ただし、θは1以上の整数とする。なお、この閾値θの設定は、鍵生成装置200が決定してもよいし、登録装置300のデータ登録者が決めてもよい。もしくは閾値θは、システムで事前に決められている値を使ってもよい。また、閾値は唯一つでなく、計算する類似度に応じて複数あってもよい。
 平文ランダム化部5052は、複数の類似暗号文50510の複数の平文をランダム化し、ランダム化された複数の平文の各々が準同型暗号により暗号化されたランダム暗号文の集合を生成する。
 平文ランダム化部5052は、鍵保管部502に保管されている公開鍵PKを読み出し、類似暗号文生成部5051から受け取った各類似暗号文E(PK,AS1,AS2,・・・,ASn)の平文(AS1,AS2,・・・,ASn)の各成分をランダム化する。平文ランダム化部5052は、各類似暗号文E(PK,AS1,AS2,・・・,ASn)の平文(AS1,AS2,・・・,ASn)の各成分をランダム化したランダム暗号文50520を生成する。ここで、ランダム暗号文50520をE(PK,R1,...,Rn)と表す。
 平文ランダム化部5052は、複数の平文のうち値が0の平文を0とすると共に複数の平文のうち値が0ではない平文をランダム化し、ランダム化された複数の平文の各々が準同型暗号により暗号化されたランダム暗号文50520の集合を生成する。
 すなわち、平文ランダム化部5052は、0でない複数の乱数と準同型演算を用いて、平文が0以外の暗号文を平文がランダムとなるように暗号文を変換し、また平文が0の暗号文を平文が0のまま変化しないように暗号文を変換するような特殊なランダム化処理を行う。よって、ランダム暗号文E(PK,R1,...,Rn)は各零保存ランダム暗号文E(PK,R1,...,Rn)とも称される。
 結果送信部5053は、平文ランダム化部5052により生成されたランダム暗号文50520の集合を用いて、暗号化検索結果5001を生成し、生成した暗号化検索結果5001を送信する。結果送信部5053は、平文ランダム化部5052から受け取ったランダム暗号文50520の集合を、暗号化検索結果5001として検索装置400へ送信する。
***動作の説明***
 図6は、本実施の形態に係る秘匿検索システム100の秘匿検索方法9100、秘匿検索プログラム9200の秘匿検索処理S100の流れを示すフロー図である。
 秘匿検索処理S100は、鍵生成処理S110と、登録処理S120と、検索処理S130を有する。
 鍵生成処理S110は、鍵生成装置200により鍵を生成して各装置に保管する。
 登録処理S120は、保管データを暗号化して保管暗号化データとして管理装置500に保管する。
 検索処理S130は、検索装置からの要求により、検索暗号化データと保管暗号化データとにおける暗号化類似度を算出し、検索データと保管データとの類似度が閾値以内か否かを表す暗号化検索結果を、平文情報を用いることなく生成する。
 図7は、本実施の形態に係る秘匿検索システム100の鍵生成処理S110を示すフローチャートである。
 図7のS601からS608は、鍵生成装置200と、登録装置300と、検索装置400と、管理装置500とが実行する処理である。S601からS602は鍵生成装置200によって実行される。S603からS604は登録装置300によって実行される。S605からS606は検索装置400によって実行される。S607からS608は管理装置500によって実行される。
<鍵生成装置200の処理>
 S601において、鍵生成部201は、データの暗号化及び復号をするための準同型暗号の公開鍵PKとその秘密鍵SKとを生成する。なお、ここでは公開鍵暗号系の準同型暗号を用いて説明するが、共通鍵暗号系の準同型暗号を用いてもよい。その場合は、鍵生成部201は、公開鍵PKを秘密鍵SKとして設定して、公開鍵暗号系の場合と同じように以降の処理を実施すればよい。
 S602において、鍵送信部202は、S601で生成した公開鍵PKを、登録装置300と管理装置500へ送信する。また、鍵送信部202は、S601で生成した公開鍵PKと秘密鍵SKのペアを検索装置400へ送信する。
<登録装置300の処理>
 S603において、鍵受信部301は、S602で送信された公開鍵PKを受信する。
 S604において、鍵保管部302は、S603で受信した公開鍵PKを記憶媒体に保管する。
<検索装置400の処理>
 S605において、受信部401は、S602で送信された公開鍵PKと秘密鍵SKとのペアを受信する。
 S606において、鍵保管部402は、S605で受信した公開鍵PKと秘密鍵SKのペアを記憶媒体に保管する。なお、秘密鍵SKは秘密情報であるため、検索装置400及び検索装置400を用いるデータ検索者以外に公開しないように厳重に保管する。
<管理装置500の処理>
 S607において、データ受信部501は、S602で送信された公開鍵PKを受信する。
 S608において、鍵保管部502は、S607で受信した公開鍵PKを記憶媒体に保管する。
 以上で、秘匿検索システム100の鍵生成保管処理は終了する。
 もし、公開鍵PK=秘密鍵SKの場合は、公開鍵PKも秘密情報となるため、鍵保管部302、鍵保管部402、鍵保管部502ともに、公開鍵PKを厳重に保管する。
 以上により、秘匿検索システム100の鍵生成処理S110は終了する。
 図8は、本実施の形態に係る秘匿検索システム100の登録処理S120を示すフローチャートである。
 図8のS701からS705は、登録装置300と管理装置500が実行する処理である。S701からS703は登録装置300によって実行される処理である。S704からS705は管理装置500によって実行される処理である。
<登録装置300の処理>
 S701において、入力部303は、データ登録者から入力された保管データ(x1,x2,・・・,xk)(k≧1)を受け取る。入力部303は、データ登録者から保管データと共に、その保管データに関する保管データ識別子も受けとってもよい。
 S702において、暗号化部304は、鍵保管部302に保管されている公開鍵PKを用いて、S701で入力された保管データ(x1,x2,・・・,xk)を暗号化して、保管暗号化データE(PK,x1,x2,・・・,xk)を生成する。
 S703において、データ送信部305は、S702で生成した保管暗号化データE(PK,x1,x2,・・・,xk)を管理装置500へ送信する。もし、S702で保管データ識別子も入力されていれば、保管データ識別子も同時に送付する。
<管理装置500の処理>
 S704において、データ受信部501は、S703で送信された保管暗号化データE(PK,x1,x2,・・・,xk)を受信する。もし、S704で保管データ識別子も送信されていたら、保管データ識別子も受信する。
 S705において、データ保管部503は、S704で受信した保管暗号化データE(PK,x1,x2,・・・,xk)を保管する。もし、S704で保管データ識別子も受信されていれば、その保管暗号化データと関連付けて保管する。
 以上により、秘匿検索システム100の登録処理S120は終了する。
 図9は、本実施の形態に係る秘匿検索システム100の検索処理S130を示すフローチャートである。
 図9のS801からS812は、検索装置400と管理装置500が実行する処理である。S801からS803及びS810からS812は検索装置400によって実行される処理である。S804からS809は管理装置500によって実行される処理である。
<検索装置400の処理>
 S801において、入力部403は、データ検索者から入力された検索データ(y1,y2,・・・,ym)を受け取る。入力部403は、データ検索者から検索データと同時に、検索を行いたい保管暗号化データを示す検索対象データ識別子も受けとってもよい。
 S802において、暗号化部404は、鍵保管部402に保管されている公開鍵PKを用いて、S801で入力された検索データ(y1,y2,・・・,ym)を暗号化して、検索暗号化データE(PK,y1,y2,・・・,ym)を生成する。
 S803において、検索データ送信部405は、S802で生成した検索暗号化データE(PK,y1,y2,・・・,ym)を管理装置500へ送信する。もし、S801で検索対象データ識別子も入力されていれば、検索対象データ識別子も同時に送付する。
<管理装置500の処理>
 上述したように、管理装置500は、準同型暗号により暗号化された保管データ610を保管暗号化データ620として保管する。
<データ受信処理S804>
 データ受信部501は、保管データ610の検索に用いる検索データ710であって準同型暗号により暗号化された検索データ710である検索暗号化データ720を受信するデータ受信処理S804を実行する。
 データ受信処理S804において、データ受信部501は、S803で送信された検索暗号化データE(PK,y1,y2,・・・,ym)を受信する。もし、S803で検索対象データ識別子も送信されていたら、検索対象データ識別子も受信する。
 S805において、暗号化類似度計算部504は、データ保管部503から保管暗号化データE(PK,x1,x2,・・・,xk)を読み出す。なお、暗号化類似度計算部504は、S804で検索対象データ識別子も受信していた場合は、受信した検索対象データ識別子に基づき、対象の保管暗号化データを読み出す。暗号化類似度計算部504は、S804で検索対象データ識別子を受信していなかった場合は、すべての保管暗号化データを読み出す。
<暗号化類似度算出処理S806>
 暗号化類似度計算部504は、保管暗号化データ620と検索暗号化データ720とを準同型演算することにより、保管データ610と検索データ710との類似度が準同型暗号により暗号化された暗号化類似度5041を算出する暗号化類似度算出処理S806を実行する。
 暗号化類似度算出処理S806において、暗号化類似度計算部504は、鍵保管部502に保管されている公開鍵PKを用いて、S805で読み出した各保管暗号化データE(PK,x1,x2,・・・,xk)とS804で受信した検索暗号化データE(PK,y1,y2,・・・,ym)との間で準同型演算を行い、暗号化類似度E(PK,S1,S2,・・・,Sn)を計算する。
 例えば、暗号化類似度計算部504は、上述した具体例1の準同型暗号を用いて、ユークリッド2乗距離を計算することにより暗号化類似度E(PK,S1,S2,・・・,Sn)を算出する。
 また、例えば、暗号化類似度計算部504は、上述した具体例2の準同型暗号を用いて、ハミング距離を計算することにより暗号化類似度E(PK,S1,S2,・・・,Sn)を算出する。
<類似暗号文生成処理S807>
 類似暗号文生成部5051は、類似度に類似する複数の平文であって類似度が閾値以内の場合には少なくとも1つは0となる複数の平文の各々が、準同型暗号により暗号化された複数の類似暗号文を生成する類似暗号文生成処理S807を実行する。
 類似暗号文生成処理S807において、類似暗号文生成部5051は、鍵保管部502から公開鍵PKを読み出し、閾値保管部506から閾値θを読み出す。類似暗号文生成部5051は、公開鍵PKと閾値θとに基づいて、準同型演算を用いて、暗号化類似度計算部504から受け取った暗号化類似度5041の平文(S1,S2,・・・,Sn)と近い値を持つ暗号文を複数生成する。ここで生成された複数の暗号文の各々は、類似暗号文E(PK,AS1,AS2,・・・,ASn)である。
 具体的には、類似暗号文生成部5051は、鍵保管部502に保管されている公開鍵PKと、閾値保管部506に保管されている閾値θとを用いて、類似暗号文50510をθ+1個生成する。ここで、生成された類似暗号文50510の集合を{c0,c1,・・・,cθ}と表し、各cをE(PK,AS1,AS2,・・・,ASn)と表わす。また、類似暗号文の集合内の暗号文は、c0,c1,・・・,cθの順で並んでいるものとする。
 具体的な類似暗号文の生成方法について説明する。準同型加算を用いて、c0=E(PK,S1,S2,・・・,Sn),c1=E(PK,-1+S1,-1+S2,・・・,-1+Sn),・・・,cθ=E(PK,-θ+S1,-θ+S2,・・・,-θ+Sn)として生成する。
 類似暗号文生成処理S807は、暗号化類似度E(PK,S1,S2,・・・,Sn)の中に類似度がθ以内の平文Siがあれば、準同型演算で暗号文を変換して、平文として0が現れるような類似暗号文を1つでも生成する処理である。
 ここでは、0番目の類似暗号文は暗号化類似度から0を引いた値、1番目の類似暗号文は暗号化類似度から1を引いた値、・・・、θ番目の類似暗号文は暗号化類似度からθを引いた値である。すなわち、類似暗号文生成部5051は、類似度が閾値θ以内の場合に、先頭から類似度の値番目の平文が0となる複数の平文の各々が準同型暗号により暗号化された複数の類似暗号文を生成することになる。
<平文ランダム化処理S808>
 平文ランダム化部5052は、複数の類似暗号文50510の複数の平文をランダム化し、ランダム化された複数の平文の各々が準同型暗号により暗号化されたランダム暗号文50520の集合を生成する平文ランダム化処理S808を実行する。
 平文ランダム化処理S808において、平文ランダム化部5052は、鍵保管部502に保管されている公開鍵PKを用いて、類似暗号文生成処理S807で生成した類似暗号文の集合の各類似暗号文cに対して平文のランダム化を行う。平文ランダム化部5052は、各類似暗号文cに対して平文のランダム化を行った結果、ランダム暗号文をθ+1個生成する。ここで、生成されたランダム暗号文の集合を{C0,C1,・・・,Cθ}と表し、各ランダム暗号文CをE(PK,R1,...,Rn)と表わす。また、ランダム暗号文の集合内の暗号文は、C0,C1,・・・,Cθの順で並んでいるものとする。
 なお、このランダム化は、上述した通り、準同型演算を用いて、平文が0以外の類似暗号文を平文がランダムとなるように類似暗号文を変換し、また平文が0の類似暗号文を平文が0のまま変化しないように類似暗号文を変換するような特殊なランダム化処理である。
 具体的には、まず、0ではない乱数ri(iは、0≦i≦θを満たす整数)を生成する。その後、各類似暗号文c=E(PK,AS1,AS2,・・・,ASn)に対して、準同型演算を用いて、C=E(PK,R1,R2,・・・,Rn)=E(PK,r1×AS1,r2×AS2,・・・,rn×ASn)を計算する。なお、ASiが0であれば、乱数riを乗じても0のままである。
 もし、暗号化類似度E(PK,S1,S2,・・・,Sn)の中に類似度がθ以内の平文Siがあれば、類似暗号文生成処理S807で準同型演算を用いて暗号文を変換した結果、平文として0となる、すなわちASi=0となる暗号文を生成される。よって、平文ランダム化部5052によるランダム化を行ってもRi(=ri×ASi)が0のまま保存される。Ri(=ri×ASi)が0のまま保存された場合は、ランダム暗号文Eを復号すると0が現れる。
 対偶をとると、0ではない平文しか現れなかった場合、すなわち復号しても0が現れなかった場合は、類似度Siの値は分からずに、類似度Siが閾値以内ではなかったことのみが分かる。
<結果送信処理S809>
 結果送信部5053は、平文ランダム化処理S808により生成されたランダム暗号文50520の集合を用いて、類似度が閾値θ以内であるか否かを表す暗号化検索結果5001を生成し、生成した暗号化検索結果5001を送信する結果送信処理S809を実行する。
 結果送信部5053は、平文ランダム化処理S808により生成されたランダム暗号文の集合{C0,C1,・・・,Cθ}を暗号化検索結果5001として検索装置400に送信する。
<検索装置400の処理>
 S810において、受信部401は、結果送信処理S809で送信された暗号化検索結果5001、すなわちランダム暗号文の集合{C0,C1,・・・,Cθ}を受信する。
 S811において、復号部406は、鍵保管部402に保管されている秘密鍵SKを用いて、結果送信処理S809で受信した暗号化検索結果{C0,C1,・・・,Cθ}を復号して、検索結果4061を得る。
 S812において、出力部407は、検索結果4061に基づいて、複数の平文に値が0の平文があるか否かを判定し、値が0の平文があると判定した場合に類似度が閾値θ以内であることを示す検索結果情報4071を出力する。また、出力部407は、複数の平文に値が0の平文がないと判定した場合に類似度が閾値θより大きいことを示す検索結果情報4071を出力する。
 また、出力部407は、複数の平文の中に値が0の平文があると判定した場合に、複数の平文における値が0の平文の順番を取得する。出力部407は、取得した順番を類似度と特定し、特定した類似度を出力してもよい。
 S812により、秘匿検索システム100の検索処理は終了する。
<検索処理の具体例10の説明>
 ここで、上述した具体例1の準同型暗号に基づき、本実施の形態の検索処理S130の具体例10について説明する。ここでは、保管データを(0,0,1)、検索データを(0,0,0)、θ=1として説明する。このときの保管データと検索データとのユークリッド2乗距離は1である。本実施の形態では、データ検索者に保管データと検索データの類似度が1であることを伝えたい。
 S801では、入力部403は、(0,0,0)をデータ検索者の検索データとして受け取る。
 S802では、暗号化部404は、公開鍵PKを用いて、検索暗号化データE(PK,0,0,0)=(E(PK,0),E(PK,0),E(PK,0))を計算する。
 S803では、検索データ送信部405は、検索暗号化データE(PK,0,0,0)を管理装置500へ送信する
 S804では、データ受信部501は、検索暗号化データE(PK,0,0,0)を受信する。
 S805では、暗号化類似度計算部504は、保管暗号化データE(PK,0,0,1)=(E(PK,0),E(PK,0),E(PK,1))を読み出す。
 S806では、暗号化類似度計算部504は、暗号化類似度E(PK,1)を計算する。
 S807では、類似暗号文生成部5051は、準同型減算を行って、E(PK,1)から2個の暗号文E(PK,1-0)=E(PK,1)及びE(PK,1-1)=E(PK,0)を生成する。つまり、{c0,c1}={E(PK,1),E(PK,0)}を生成する。
 S808では、平文ランダム化部5052は、0でない乱数r0とr1を生成し、準同型加算を行って、次の式1及び式2のように{C0,C1}を計算する。
式1:C0=E(PK,R0)=r0×c0=E(PK,1)◇・・・◇E(PK,1)=E(PK,r0)
式2:C1=E(PK,R1)=r1×c1=E(PK,0)◇・・・◇E(PK,0)=E(PK,0)
 S809では、結果送信部5053は、{E(PK,r0),E(PK,0)}を送信する。
 S810では、受信部401は、{E(PK,r0),E(PK,0)}を受信する。
 S811では、復号部406は、秘密鍵SKを用いて、E(PK,r0)とE(PK,0)を復号して、平文としてr0と0を得る。
 S812では、出力部407は、復号して0が現れたので、保管暗号化データの平文(0,0,1)と検索データ(0,0,0)の類似度(ユークリッド2乗距離)が1であることを表す検索結果情報4071を表示装置等に表示する。データ検索者は、表示された検索結果情報4071から、類似度(ユークリッド2乗距離)が1であることが分かる。
<検索処理の具体例20の説明>
 次に、検索処理の具体例10とは異なる例として、検索処理の具体例20について説明する。ここでは、保管データを(0,1,1)、検索データを(0,0,0)、θ=1を説明する。このとき、保管データ(0,1,1)と検索データ(0,0,0)とのユークリッド2乗距離は2である。本実施の形態では、類似度が閾値θ以上であるため、データ検索者には、保管データと検索データの類似度は閾値より大きいという事実のみを伝えたい。
 S801からS805の処理は省略する。
 S806では、暗号化類似度計算部504は、暗号化類似度としてE(PK,2)を計算する。
 S807では、平文ランダム化部5052は、E(PK,2-0)=E(PK,2)及びE(PK,2-1)=E(PK,1)を生成する。
 S808では、平文ランダム化部5052は、乱数r0とr1を生成し、準同型加算を行って、C0=E(PK,R0)=E(PK,2×r0)とC1=E(PK,R1)=E(PK,r1)を生成する。
 S809では、結果送信部5053は、{E(PK,2×r0),E(PK,r1)}を送信する。
 S810では、受信部401は、{E(PK,2×r0),E(PK,r1)}を受信する。
 S811では、復号部406は、秘密鍵SKを用いて、E(PK,2×r0)とE(PK,r1)とを復号して、平文として2×r0とr1を得る。
 S812では、出力部407は、復号しても0が現れないため、保管暗号化データの平文(0,1,1)と検索データ(0,0,0)の類似度(ユークリッド2乗距離)が閾値θより大きいことを表す検索結果情報4071を表示する。このとき、類似度そのものの値(=2)は検索処理の過程で現れず、表示されない。よって、データ検索者は復号しても乱数2×r0及びr1しか得ることができない。したがって、データ検索者は、保管データと検索データの類似度は閾値1より大きいという事実のみがわかる。
 なお、上記の例は類似度としてユークリッド2乗距離を用いて説明したが、他の類似度の指標を用いてもよい。具体的には、LpノルムあるいはTversky係数などでも、本実施の形態で説明したような方法を用いて、保管データと検索データをともに暗号化したまま実行できる。
 図10は、本実施の形態に係る秘匿検索システム100の削除処理S140を示すフローチャートである。
 図10のS901からS904は、登録装置300と管理装置500とが実行する処理である。S901からS902は登録装置300によって実行される処理である。S903からS904は管理装置500によって実行される処理である。
<登録装置300の処理>
 S901において、入力部303は、データ登録者から削除したい保管暗号化データについての削除対象データ識別子を受け取る。上述のように、削除対象データ識別子は、削除対象の保管データを識別できる情報であれば何でもよい。
 S902において、データ送信部305は、S901で入力された削除対象データ識別子を管理装置500へ送信する。
<管理処理500の処理>
 S903において、データ受信部501は、S902で登録装置300から送信されてきた削除対象データ識別子を受信する。
 S904において、データ保管部503は、S903で受信した削除対象データ識別子に基づき、保管している保管暗号化データを削除する。
 S904により、秘匿検索システム100の削除処理は終了する。
***本実施の形態に係る効果の説明***
 本実施の形態は、以下のような効果を奏する。
 本実施の形態に係る秘匿検索システム100によれば、保管データを暗号化して保管しているので、たとえ管理装置500から保管暗号化データが漏洩しても、保管データの中身そのものを知られることはない。
 また、本実施の形態に係る秘匿検索システム100によれば、検索データのみならず保管データも暗号化したまま処理ができるため、より安全性が高い秘匿類似度検索を達成できる。
 また、本実施の形態に係る秘匿検索システム100によれば、公開鍵暗号を用いても秘匿類似度検索を達成できるため、データ登録者とデータ検索者との間で秘密鍵を共有することがなく、データ登録者とデータ検索者との役割を分離することができる。
 また、本実施の形態に係る秘匿検索システム100によれば、検索装置の出力部は、類似度がある閾値以内であれば類似度の正確な値を出力し、類似度が閾値を超えれば閾値を超えたという情報のみ出力する。したがって、データ検索者は、類似度が閾値を超えている場合に類似度の正確な値を知ることができず、類似度から保管暗号化データの平文を推測することはできない。
 また、本実施の形態に係る秘匿検索システム100では、類似暗号文をいくつか生成し、それらの類似暗号文に対して特殊なランダム化をすることにより、類似度がある閾値以内であれば類似度の正確な値を出力し、類似度が閾値を超えれば閾値を超えたという情報のみ出力することができる。
 また、本実施の形態に係る秘匿検索システム100では、管理装置は保管データと検索データとをともに暗号化したまま類似度の暗号文を計算でき、またその暗号文を攪乱することにより、類似度が閾値以内か否かのみの情報のみを出力することができる。
 以上のように、本実施の形態に係る秘匿検索システム100によれば、平文情報を一切用いることなく、保管暗号化データと検索暗号化データとから類似度計算ができる。さらに、本実施の形態に係る秘匿検索システム100によれば、データ検索者に対して、類似度そのものを公開せず、類似度が閾値以内であれば公開する、もしくは閾値以内か否かのみを公開できる。
***他の構成***
 秘匿検索システム100は、複数の鍵生成装置200を備えていてもよい。また、秘匿検索システム100は、1つの登録装置300のみを備えていてもよい。また、秘匿検索システム100は、1つの検索装置400のみを備えていてもよい。秘匿検索システム100は、複数の管理装置500を備えていてもよい。
 鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とのそれぞれは、ネットワーク101を経由して接続されずに、同じ企業内に敷設されたLAN(Local Area Network)内に設置されていてもよい。
 同じPC内に、鍵生成装置200と登録装置300と検索装置400との少なくとも2つが同時に含まれている構成でも構わない。
 実施の形態2.
 本実施の形態では、主に、実施の形態1と異なる点について説明する。
 実施の形態1に係る秘匿検索システム100では、保管データと検索データとの類似度が閾値以内であれば、データ検索者が類似度そのものを知ることができた。しかし、本実施の形態では、類似度が閾値以内であっても、データ検索者は類似度が閾値以内であったことのみしか知ることができないようにすることを目的とする秘匿検索システム100について説明する。
***構成の説明***
 図11は、本実施の形態に係る管理装置500の構成を示すブロック図である。
 本実施の形態において、実施の形態1で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する。
 本実施の形態では、結果送信部5053は、暗号文攪乱部50531と、送信部50532とを備える。
 暗号文攪乱部50531は、平文ランダム化部5052により生成されたランダム暗号文50520の集合を攪乱し、攪乱したランダム暗号文50520の集合を攪乱ランダム暗号文5002として生成する。
 具体的には、暗号文攪乱部50531は、ランダム暗号文50520の集合において、ランダム暗号文50520の集合におけるランダム暗号文50520の順序を変更することによりランダム暗号文50520の集合を攪乱する。暗号文攪乱部50531は、順序を変更したランダム暗号文50520の集合を攪乱ランダム暗号文5002として生成する。
 暗号文攪乱部50531は、鍵保管部502に保管されている公開鍵PKを読み出し、平文ランダム化部5052から受け取ったランダム暗号文E(PK,R1,...,Rn)に対して、攪乱処理を行って攪乱ランダム暗号文5002を生成する。攪乱ランダム暗号文5002は1つの場合もあるし、複数の場合もある。
 なお、暗号文攪乱部50531の処理は、暗号化検索結果を復号しても類似度そのものが現れないようにするために実行される。つまり、類似度がある閾値以内か否かのみがわかるような暗号文に変換するための最終処理である。具体的には、ランダム暗号文50520の集合の各ランダム暗号文の順番、すなわち順序をランダムに置換すること、あるいは、ランダム暗号文間の成分をランダムに交換すること、あるいは、準同型演算を行ってランダム暗号文を1つの暗号文に結合することなどを行う。これらの具体的処理については後述する。
 送信部50532は、暗号文攪乱部50531により生成された攪乱ランダム暗号文5002の集合を暗号化検索結果5001として検索装置400に送信する。
 検索装置400の出力部407は、複数の平文に値が0の平文があるか否かを判定し、値が0の平文があると判定した場合に類似度が閾値θ以内であることを表す検索結果情報4071を出力する。また、検索装置400の出力部407は、複数の平文に値が0の平文がないと判定した場合には類似度が閾値θより大きいことを表す検索結果情報4071を出力する。
***動作の説明***
 図12は、本実施の形態における秘匿検索システム100の検索処理S130aを示すフローチャートである。
 本実施の形態では、置換関数π:{0,1,・・・,θ}→{0,1,・・・,θ}を用いて検索処理を実行することにより、類似度を知られることを困難とし、安全性をより向上させる秘匿検索システム100について説明する。
 本実施の形態の秘匿検索システム100の動作において、実施の形態1と異なる点は検索処理の一部のみである。
 図12のS1001からS1013は、検索装置400と管理装置500が実行する処理である。S1001からS1003及びS1011からS1013は検索装置400によって実行される処理である。S1004からS1010は管理装置500によって実行される処理である。
 なお、本実施の形態の検索処理S130aにおけるS1001からS1008は、実施の形態1のS801からS808と同様の処理であるため、ここでは説明を省略する。
<管理装置500の処理>
 S1009において、暗号文攪乱部50531は、S1008で生成したランダム暗号文の集合{C0,C1,・・・,Cθ}に対して、ランダム暗号文の順序変更をランダムに行い、攪乱ランダム暗号文の集合を生成する。なお、この順序変更を行った結果は、置換関数π:{0,1,・・・,θ}→{0,1,・・・,θ}を用いて、{Cπ(0),Cπ(1),・・・,Cπ(θ)}と表わすことができ、攪乱ランダム暗号文の順番もこのように並んでいるとする。なお、もしπ(i)=π(j)ならばi=jである。
 S1010において、送信部50532は、S1009で生成した攪乱ランダム暗号文の集合{Cπ(1),Cπ(2),・・・,Cπ(θ)}を暗号化検索結果5001として検索装置400へ送信する。
<検索装置400の処理>
 S1011において、受信部401は、S1010で送信された暗号化検索結果{Cπ(1),Cπ(2),・・・,Cπ(θ)}を受信する。
 S1012において、復号部406は、鍵保管部402に保管されている秘密鍵SKを用いて、S1011で受信した暗号化検索結果{Cπ(1),Cπ(2),・・・,Cπ(θ)}を復号して、検索結果4061を得る。
 S1013において、出力部407は、S1012で得られた検索結果を判定した結果に基づき、データ検索者に対して検索結果情報4071を出力する。
 出力部407は、検索結果4061を用いて、攪乱ランダム暗号文の複数の平文に、0の平文があるか否かを判定し、0の平文があると判定した場合に類似度が閾値θ以内であることを表す検索結果情報4071を出力する。また、出力部407は、攪乱ランダム暗号文の複数の平文に、0の平文がないと判定した場合には類似度が閾値θより大きいことを表す検索結果情報4071を出力する。
 S1013により、秘匿検索システム100の検索処理は終了する。
<検索処理の具体例30の説明>
 ここで、上述した具体例1の準同型暗号に基づき、本実施の形態の検索処理の具体例30について説明する。ここでは、保管データを(0,0,1)、検索データを(0,0,0)、θ=1として説明する。このときの保管データを(0,0,1)と検索データを(0,0,0)のユークリッド2乗距離は1である。本実施の形態では、データ検索者に、保管データと検索データの類似度が1以内であることのみを伝えたい。
 S1006では、暗号化類似度計算部504は、暗号化類似度E(PK,1)を計算する。
 S1007では、類似暗号文生成部5051は、準同型減算を行って、E(PK,1)から2個の暗号文E(PK,1-0)=E(PK,1)とE(PK,1-1)=E(PK,0)を生成する。つまり、{c0,c1}={E(PK,1),E(PK,0)}を生成する。
 S1008では、平文ランダム化部5052は、0でない乱数r0とr1を生成し、準同型加算を行って、次の式3及び式4のように{C0,C1}を計算する。
式3:C0=E(PK,R0)=r0×c0=E(PK,1)◇・・・◇E(PK,1)=E(PK,r0)
式4:C1=E(PK,R1)=r1×c1=E(PK,0)◇・・・◇E(PK,0)=E(PK,0)。
 S1009では、暗号文攪乱部50531は、置換πをランダムに決める。ここでは、π(0)=1,π(1)=0となるようなπを選んだとする。この時、{C0,C1}={E(PK,r0),E(PK,0)}は{Cπ(0),Cπ(1)}={C1,C0}={E(PK,0),E(PK,r0)}と順序が変更される。
 S1010では、結果送信部5053は、{E(PK,0),E(PK,r0)}を送信する。
 S1011では、受信部401は、{E(PK,0),E(PK,r0)}を受信する。
 S1012では、復号部406は、秘密鍵SKを用いて、E(PK,0)とE(PK,r0)を復号して、平文として0と乱数r0を得る。
 S1013では、出力部407は、復号して0が現れたので、保管暗号化データの平文(0,0,1)と検索データ(0,0,0)の類似度、すなわちユークリッド2乗距離が閾値θ以内、すなわち1以内であるという事実を表す検索結果情報4071を出力する。
 ここで、S1009で暗号文攪乱部50531により順序変更が実行されない場合、0番目の暗号文は暗号化類似度から0を引いた値、1番目の暗号文は暗号化類似度から1を引いた値、・・・、θ番目の暗号文は暗号化類似度からθを引いた値、であるとデータ検索者はいつも知ることになる。よって、復号してj番目に0が現れたとすると、データ検索者は類似度がjであることが簡単にわかる。よって、S1009で暗号文攪乱部50531による順序変更を行うことにより、保管データと検索データとの類似度が閾値以内か否かだけを表す情報に変換することができる。
***本実施の形態に係る効果の説明***
 以上のように、本実施の形態に係る秘匿検索システム100によれば、実施の形態1と同様な効果を得ることに加えて、データ検索者は、検索結果から、保管データと検索データの類似度が閾値以内か否かのみしか知ることができないため、より安全性が向上する。
 実施の形態3.
 本実施の形態では、主に、実施の形態1,2と異なる点について説明する。
 本実施の形態では、実施の形態2と同様の目的を達成するための秘匿検索方法であって実施の形態2とは異なる秘匿検索方法について説明する。
 本実施の形態では、実施の形態2と同様に置換関数π:{0,1,・・・,θ}→{0,1,・・・,θ}を用いて、実施の形態2と同様に秘匿検索システムの安全性を向上させる方法について説明する。
 本実施の形態の秘匿検索システムは実施の形態2とほぼ同じであり、検索処理の一部のみ異なっている。
***構成の説明***
 本実施の形態に係る秘匿検索システム100の構成は、実施の形態2で説明したものと同様である。
 本実施の形態において、実施の形態2で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する。
 本実施の形態に係る暗号文攪乱部50531は、ランダム暗号文50520の集合における2つのランダム暗号文において、一方のランダム暗号文の成分と他方のランダム暗号文の成分とを交換することによりランダム暗号文50520の集合を攪乱する。暗号文攪乱部50531は、攪乱したランダム暗号文50520の集合を攪乱ランダム暗号文5002として生成する。
***動作の説明***
 図13は、本実施の形態における秘匿検索システム100の検索処理S130bを示すフローチャートである。
 図13のS1101からS1113は、検索装置400と管理装置500が実行する処理である。S1101からS1103及びS1111からS1113は検索装置400によって実行される処理である。S1104からS1110は管理装置500によって実行される処理である。
 なお、本検索処理におけるS1101からS1108は、実施の形態2のS1001からS1008と同様の処理であるため、ここでは説明を省略する。
<管理装置500の処理>
 S1109において、暗号文攪乱部50531は、S1108で生成したランダム暗号文の集合{C0,C1,・・・,Cθ}に対して、あるランダム暗号文Ci=E(PK,Ri1,Ri2,・・・,Rin)の平文(Ri1,Ri2,・・・,Rin)と、あるランダム暗号文Cj=E(PK,Rj1,Rj2,・・・,Rjn)の平文(Rj1,Rj2,・・・,Rjn)の同じ位置の成分をランダムに交換する。暗号文攪乱部50531は、このような交換を繰り返すことで攪乱ランダム暗号文の集合{RC1,RC2,・・・,RCn}を生成する。
 具体的には、暗号文攪乱部50531は、CiのRi1とCjのRj1のみを交換して新しい暗号文RCi=E(PK,Rj1,Ri2,・・・,Rin)及びRCj=E(PK,Ri1,Rj2,・・・,Rjn)を生成する。暗号文攪乱部50531は、このような処理を繰り返して、攪乱ランダム暗号文{RC1,RC2,・・・,RCn}を生成する。
 S1110において、送信部50532は、S1109で生成した攪乱ランダム暗号文の集合{RC1,RC2,・・・,RCn}を暗号化検索結果5001として検索装置400へ送信する。
<検索装置400の処理>
 S1111において、受信部401は、S1110で送信された暗号化検索結果{RC1,RC2,・・・,RCn}を受信する。
 S1112において、復号部406は、鍵保管部402に保管されている秘密鍵SKを用いて、S1011で受信した暗号化検索結果{RC1,RC2,・・・,RCn}を復号して、検索結果4061を得る。
 S1113において、出力部407は、S1112で得られた検索結果4061に基づき、検索結果情報4071を出力する。
 S1113により、秘匿検索システム100の検索処理S130bは終了する。
<検索処理の具体例40の説明>
 ここで、上述した具体例1の準同型暗号に基づき、本実施の形態の検索処理S130bの具体例40について説明する。ここでは、保管データを(0,1,2)、検索データを(0,0,0)、θ=2として説明する。このとき、保管データ(0,1,2)と検索データ(0,0,0)とのユークリッド2乗距離は10である。また、3=10と2進数表現すれば、保管データ(0,1,2)と検索データ(0,0,0)のハミング距離は2である。ここでS1=10,S2=2とおく。本実施の形態では、データ検索者に対して、保管データと検索データの類似度として、ユークリッド2乗距離は2より大きく、ハミング距離が2以内であることを伝えたい。
 S1106では、暗号化類似度計算部504は、暗号化類似度E(PK,S1,S2)=(E(PK,10),E(PK,2))を計算する。
 S1107では、類似暗号文生成部5051は、準同型減算を行って、E(PK,S1,S2)=(E(PK,10),E(PK,2))からE(PK,10,2)=(E(PK,10),E(PK,2)),E(PK,9,1)=(E(PK,9),E(PK,1)),E(PK,8,0)=(E(PK,8),E(PK,0))を生成する。つまり、{c0,c1,c2}={E(PK,10,2),E(PK,9,1),E(PK,8,0)}を生成する。
 S1108では、平文ランダム化部5052は、0でない乱数を生成し、準同型加算を行って、次のように{C0,C1,C2}を計算する。
C0=E(PK,R0,R1)
C1=E(PK,R2,R3)
C2=E(PK,R4,0)
 ただし、R0,R1,R2,R3,R4は乱数である。
 S1109では、暗号文攪乱部50531は、1番目の成分をランダムに置換するπ1と、2番目の成分をランダムに置換するπ2として、π1(1)=2,π1(2)=1,π1(3)=3,及びπ2(1)=3,π2(2)=2,π1(3)=2を選んだとする。この時、{RC0,RC1,RC2}={E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)}となる。この暗号文同士の成分の交換は暗号文を単純入れ替えればよいため、簡単に実行可能である。
 S1110では、結果送信部5053は、{E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)}を送信する。
 S1111では、受信部401は、{E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)}を受信する。
 S1112では、復号部406は、秘密鍵SKを用いて、E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)を復号する。復号部406は、S1に関する平文としてR2、R0、R4を得て、S2に関する平文として0、R1、R3を得る。
 S1113では、出力部407は、S1に関する平文として0が現われなかったので、保管データと検索データのユークリッド2乗距離に関する類似度が閾値より大きい、すなわち2より大きいことを表す検索結果情報4071を出力する。また、出力部407は、S2に関する平文として0が現れたので、保管データと検索データのハミング距離に関する類似度が閾値以内、すなわち2以内であることを表す検索結果情報4071を出力する。
***本実施の形態に係る効果の説明***
 以上のように、本実施の形態に係る秘匿検索システム100によれば、実施の形態1と同様な効果を得ることに加えて、データ検索者は、検索結果から、保管データと検索データの類似度が閾値以内か否かのみしかわからないため、より安全性を向上できる。
 また、本実施の形態では、実施の形態2とは異なる攪乱手法を用いて、実施の形態2と同様な効果を得ることができる。
 実施の形態4.
 本実施の形態では、主に、実施の形態1から3と異なる点について説明する。
 本実施の形態では、実施の形態2,3と同様の目的を達成するための秘匿検索方法であって実施の形態2,3とは異なる手法を用いた秘匿検索方法について説明する。
 また、本実施の形態に係る秘匿検索システムでは、実施の形態1から3に比べて、暗号化検索結果のサイズを小さくできるという利点を持つ。一方で、本実施の形態に係る秘匿検索システムでは、準同型乗算がθ+1回できる準同型暗号を用いることが必要となる。
 本実施の形態の秘匿検索システムは実施の形態3とほぼ同じであり、検索処理の一部のみ異なっている。
***構成の説明***
 本実施の形態に係る秘匿検索システム100の構成は、実施の形態2で説明したものと同様である。
 本実施の形態において、実施の形態2で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する。
 暗号文攪乱部50531は、ランダム暗号文50520の集合に含まれる全てのランダム暗号文を準同型乗算により結合することによりランダム暗号文50520の集合を攪乱する。暗号文攪乱部50531は、ランダム暗号文50520の集合を結合した1つの結合暗号文を攪乱ランダム暗号文5002として生成する。
***動作の説明***
 図14は、本実施の形態における秘匿検索システム100の検索処理S130cを示すフローチャートである。
 図14のS1201からS1213は、検索装置400と管理装置500が実行する処理である。S1201からS1203及びS1211からS1213は検索装置400によって実行される処理である。S1204からS1210は管理装置500によって実行される処理である。
 なお、本実施の形態の検索処理S130cにおけるS1201からS1208は、実施の形態3のS1101からS1108と同様の処理であるため、ここでは説明を省略する。
 S1209において、暗号文攪乱部50531は、鍵保管部502に保管されている公開鍵PKを用いて、S1208で生成したランダム暗号文の集合{C0,C1,・・・,Cθ}に対して、結合暗号文CC=C0◇C1◇・・・◇Cθ=E(PK,Z1,Z2,・・・,Zn)を計算する。ただし、Ci=E(PK,Ri1,Ri2,・・・,Rin)(iは0≦i≦θを満たす整数)、Zj=R0j×R1j×・・・×Rθj(iは0≦i≦θを満たす整数)とする。
 ここで、もしRij=0となる(i,j)があれば、Zj=R0j×R1j×・・・×Rθj=0となることに注意する。
 S1210において、結果送信部5053は、S1209で生成した結合暗号文CCを暗号化検索結果5001として検索装置400へ送信する。
 S1211において、受信部401は、S1210で送信された暗号化検索結果CCを受信する。
 S1212において、復号部406は、鍵保管部402に保管されている秘密鍵SKを用いて、S1211で受信した暗号化検索結果CCを復号して、検索結果Z1,Z2,・・・,Znを得る。
 S1213において、出力部407は、S1212で得られた検索結果を出力する。
 ここで、準同型乗算がθ+1回できる準同型暗号に基づき、本実施の形態に係る検索処理S130cの例を説明する。ここでは、保管データを(0,1,2)、検索データを(0,0,0)、θ=2として説明する。このとき、保管データ(0,1,2)と検索データ(0,0,0)とのユークリッド2乗距離は10である。また、3=10と2進数表現すれば、保管データ(0,1,2)と検索データ(0,0,0)とのハミング距離は2である。ここでS1=10,S2=2とおく。本実施の形態では、データ検索者に対して、保管データと検索データの類似度として、ユークリッド2乗距離は2より大きく、ハミング距離が2以内であることを伝えたい。
 S1206では、暗号化類似度計算部504は、暗号化類似度E(PK,S1,S2)=(E(PK,10),E(PK,2))を計算する。
 S1207では、類似暗号文生成部5051は、準同型減算を行って、E(PK,S1,S2)=(E(PK,10),E(PK,2))からE(PK,10,2)=(E(PK,10),E(PK,2)),E(PK,9,1)=(E(PK,9),E(PK,1)),E(PK,8,0)=(E(PK,8),E(PK,0))を生成し、{c0,c1,c2}={E(PK,10,2),E(PK,9,1),E(PK,8,0)}とおく。
 S1208では、平文ランダム化部5052は、0でない乱数を生成し、準同型加算を行って、次のように{C0,C1,C2}を計算する。
C0=E(PK,R0,R1)
C1=E(PK,R2,R3)
C2=E(PK,R4,0)
 ただし、R0,R1,R2,R3,R4は乱数である。
 S1209では、暗号文攪乱部50531は、準同型乗算を行って、結合暗号文CC=E(PK,R0×R2×R4,R1×R3×0)=E(PK,R,0)を計算する。ただし、R=R0×R2×R4とする。
 S1210では、送信部50532は、CC=E(PK,R,0)を送信する。
 S1211では、受信部401は、E(PK,R,0)を受信する。
 S1212では、復号部406は、秘密鍵SKを用いて、E(PK,R,0)を復号して、S1に関する平文としてRを得て、S2に関する平文として0を得る。
 S1213では、出力部407は、S1に関する平文として乱数Rが現れたので、保管データと検索データのユークリッド2乗距離に関する類似度が閾値より大きい、すなわち2より大きいことを表す検索結果情報4071を出力する。また、出力部407は、S2に関する平文として0が現れたので、保管データと検索データのハミング距離に関する類似度が閾値以内、すなわち2以内であることを表す検索結果情報4071を出力する。
***本実施の形態に係る効果の説明***
 以上のように、本実施の形態に係る秘匿検索システム100によれば、実施の形態2及び実施の形態3と同様な効果を得ることに加えて、準同型演算を用いて暗号文を結合するといった攪乱手法を用いて、実施の形態1から3と比べて暗号化検索結果のサイズを小さくすることが可能である。
***ハードウェア構成例の説明***
 最後に、図15を用いて、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置のハードウェア構成の一例について説明する。
 鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置はコンピュータである。
 鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。
 プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 入力インタフェース905は、入力装置907に接続されている。
 ディスプレイインタフェース906は、ディスプレイ908に接続されている。
 プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
 プロセッサ901は、具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 補助記憶装置902は、具体例は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
 メモリ903は、具体例は、RAM(Random Access Memory)である。
 通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。
 通信装置904は、具体例は、通信チップ又はNIC(Network Interface Card)である。
 入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。
 入力インタフェース905は、具体例は、USB(Universal Serial Bus)端子である。
 ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。
 ディスプレイインタフェース906は、具体例は、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
 入力装置907は、具体例は、マウス、キーボード又はタッチパネルである。
 ディスプレイ908は、具体例は、LCD(Liquid Crystal Display)である。
 コンピュータが鍵生成装置200の場合は、補助記憶装置902には、図2に示す鍵生成部及び鍵送信部の機能を実現するプログラムが記憶されている。
 また、コンピュータが登録装置300の場合は、補助記憶装置902には、図3に示す入力部、暗号化部、データ送信部、鍵受信部、鍵保管部の機能を実現するプログラムが記憶されている。
 また、コンピュータが検索装置400の場合は、補助記憶装置902には、図4に示す受信部、入力部、暗号化部、鍵保管部、検索データ送信部、復号部、出力部の機能を実現するプログラムが記憶されている。
 また、コンピュータが管理装置500の場合は、補助記憶装置902には、図5に示すデータ受信部、データ保管部、閾値保管部、鍵保管部、暗号化類似度計算部、類似暗号文生成部、平文ランダム化部、結果送信部の機能を実現するプログラムが記憶されている。
 また、コンピュータが管理装置500aの場合は、補助記憶装置902には、図11に示すデータ受信部、データ保管部、閾値保管部、鍵保管部、暗号化類似度計算部、類似暗号文生成部、平文ランダム化部、暗号文攪乱部、送信部の機能を実現するプログラムが記憶されている。
 以下において、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置において列挙した構成部を、装置毎にまとめて「部」と表記する。
 なお、登録装置300の入力部303、検索装置400の入力部403は、入力インタフェース905及び入力装置907により実現されていてもよい。
 また、検索装置400の出力部407は、ディスプレイインタフェース906及びディスプレイ908により実現されていてもよい。
 また、鍵生成装置200の鍵送信部202、検索装置400の検索データ送信部405、管理装置500の結果送信部5053、管理装置500aの送信部50532は、通信装置904により実現されていてもよい。
 また、検索装置400の受信部401、管理装置500,500aのデータ受信部501は、通信装置904により実現されていてもよい。
 また、登録装置300の鍵保管部302、検索装置400の鍵保管部402は、補助記憶装置902により実現されていてもよい。また、管理装置500のデータ保管部503、鍵保管部502、閾値保管部506についても、補助記憶装置902により実現されていてもよい。
 「部」の機能を実現するプログラムは、1つのプログラムであってもよいし、複数のプログラムから構成されていてもよい。
 このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
 更に、補助記憶装置902には、OS(Operating System)も記憶されている。
 そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
 図15では、1つのプロセッサ901が図示されているが、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置が複数のプロセッサ901を備えていてもよい。
 そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
 また、「部」の処理の結果を示す情報とデータと信号値と変数値との少なくともいずれかが、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
 また、「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の記憶媒体に記憶される。
 「部」を「プロセッシングサーキットリー」で提供してもよい。
 また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
 「回路」及び「プロセッシングサーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
 なお、プログラムプロダクトと称されるものは、「部」として説明している機能を実現するプログラムが記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
 上記の実施の形態では、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置において、「部」の各々が独立した機能ブロックとして各装置を構成している。しかし、各装置は、上記のような構成でなくてもよく、各装置の構成は任意である。各装置の機能ブロックは、上記の実施の形態で説明した機能を実現することができれば、任意である。これらの機能ブロックを、他のどのような組み合わせ、あるいは任意のブロック構成で、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置を構成しても構わない。
 また、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置は、1つの装置でなく、複数の装置から構成されたシステムでもよい。
 また、実施の形態1から4について説明したが、これらの4つの実施の形態のうち、複数を部分的に組み合わせて実施しても構わない。あるいは、これらの4つの実施の形態のうち、1つの実施の形態を部分的に実施しても構わない。その他、これらの4つの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
 なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物及び用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
 100 秘匿検索システム、101 ネットワーク、200 鍵生成装置、201 鍵生成部、202 鍵送信部、300 登録装置、301 鍵受信部、302 鍵保管部、303 入力部、304 暗号化部、305 データ送信部、400 検索装置、401 受信部、402 鍵保管部、403 入力部、404 暗号化部、405 検索データ送信部、406 復号部、4061 検索結果、407 出力部、4071 検索結果情報、500,500a 管理装置、5001 暗号化検索結果、5002 攪乱ランダム暗号文、501 データ受信部、502 鍵保管部、503 データ保管部、504 暗号化類似度計算部、5041 暗号化類似度、505 暗号化結果送信部、5051 類似暗号文生成部、50510 類似暗号文、5052 平文ランダム化部、50520 ランダム暗号文、5053 結果送信部、50531 暗号文攪乱部、50532 送信部、506 閾値保管部、θ 閾値、610 保管データ、620 保管暗号化データ、710 検索データ、720 検索暗号化データ、901 プロセッサ、902 補助記憶装置、903 メモリ、904 通信装置、905 入力インタフェース、906 ディスプレイインタフェース、907 入力装置、908 ディスプレイ、910 信号線、911,912 ケーブル、9041 レシーバー、9042 トランスミッター、9100 秘匿検索方法、9200 秘匿検索プログラム、S100 秘匿検索処理、S110 鍵生成処理、S120 登録処理、S130,S130a,S130b,S130c 検索処理、S806 暗号化類似度算出処理、S807 類似暗号文生成処理、S808 平文ランダム化処理、S809 結果送信処理、PK 公開鍵、SK 秘密鍵。

Claims (11)

  1.  準同型暗号により暗号化された保管データである保管暗号化データと、前記保管データの検索に用いる検索データであって前記準同型暗号により暗号化された検索データである検索暗号化データとを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出する暗号化類似度計算部と、
     前記暗号化類似度を用いて前記類似度が閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する暗号化結果送信部と
    を有する管理装置と、
     前記管理装置から送信された前記暗号化検索結果を復号し、復号した前記暗号化検索結果を検索結果として出力する復号部と、
     前記検索結果に基づいて、前記類似度が前記閾値以内であるか否かを表す検索結果情報を出力する出力部と
    を有する検索装置と
    を備える秘匿検索システム。
  2.  前記暗号化結果送信部は、
     前記類似度に類似する複数の平文であって、前記類似度が前記閾値以内の場合には少なくとも1つは0となる前記複数の平文の各々が前記準同型暗号により暗号化された複数の類似暗号文を生成する類似暗号文生成部と、
     前記複数の類似暗号文の複数の平文をランダム化し、ランダム化された前記複数の平文の各々が前記準同型暗号により暗号化されたランダム暗号文の集合を生成する平文ランダム化部と、
     前記平文ランダム化部により生成された前記ランダム暗号文の集合を用いて、前記暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する結果送信部と
    を有する請求項1に記載の秘匿検索システム。
  3.  前記平文ランダム化部は、
     前記複数の平文のうち値が0の平文を0とすると共に前記複数の平文のうち値が0ではない平文をランダム化し、ランダム化された前記複数の平文の各々が前記準同型暗号により暗号化された前記ランダム暗号文の集合を生成し、
     前記出力部は、
     前記検索結果に基づいて、前記複数の平文に値が0の平文があるか否かを判定し、値が0の平文があると判定した場合に前記類似度が前記閾値以内であることを表す前記検索結果情報を出力し、前記複数の平文に値が0の平文がないと判定した場合に前記類似度が前記閾値より大きいことを表す前記検索結果情報を出力する請求項2に記載の秘匿検索システム。
  4.  前記類似暗号文生成部は、
     前記類似度が前記閾値以内の場合に、先頭から前記類似度の値番目の平文が0となる前記複数の平文の各々が前記準同型暗号により暗号化された前記複数の類似暗号文を生成し、
     前記出力部は、
     前記複数の平文の中に値が0の平文があると判定した場合に、前記複数の平文における前記値が0の平文の順番を取得し、前記順番を前記類似度と特定し、特定した前記類似度を出力する請求項3に記載の秘匿検索システム。
  5.  前記結果送信部は、
     前記平文ランダム化部により生成された前記ランダム暗号文の集合を攪乱し、攪乱した前記ランダム暗号文の集合を攪乱ランダム暗号文として生成する暗号文攪乱部と、
     前記暗号文攪乱部により生成された前記攪乱ランダム暗号文の集合を前記暗号化検索結果として送信する送信部と
    を備え、
     前記出力部は、
     前記複数の平文に値が0の平文があるか否かを判定し、値が0の平文があると判定した場合に前記類似度が前記閾値以内であることを表す前記検索結果情報を出力し、前記複数の平文に値が0の平文がないと判定した場合に前記類似度が前記閾値より大きいことを表す前記検索結果情報を出力する請求項2または3に記載の秘匿検索システム。
  6.  前記暗号文攪乱部は、
     前記ランダム暗号文の集合において、前記ランダム暗号文の集合における前記ランダム暗号文の順序を変更することにより前記ランダム暗号文の集合を攪乱し、順序を変更した前記ランダム暗号文の集合を攪乱ランダム暗号文として生成する請求項5に記載の秘匿検索システム。
  7.  前記暗号文攪乱部は、
     前記ランダム暗号文の集合における2つのランダム暗号文において、一方のランダム暗号文の成分と他方のランダム暗号文の成分とを交換することにより前記ランダム暗号文の集合を攪乱し、攪乱した前記ランダム暗号文の集合を前記攪乱ランダム暗号文として生成する請求項5に記載の秘匿検索システム。
  8.  前記暗号文攪乱部は、
     前記ランダム暗号文の集合に含まれる全てのランダム暗号文を準同型乗算により結合することにより前記ランダム暗号文の集合を攪乱し、前記ランダム暗号文の集合を結合した1つの結合暗号文を前記攪乱ランダム暗号文として生成する請求項5に記載の秘匿検索システム。
  9.  準同型暗号により暗号化された保管データである保管暗号化データと、前記保管データの検索に用いる検索データであって前記準同型暗号により暗号化された検索データである検索暗号化データとを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出する暗号化類似度計算部と、
     前記類似度に類似する複数の平文であって、前記類似度が閾値以内の場合には少なくとも1つは0となる前記複数の平文の各々が前記準同型暗号により暗号化された複数の類似暗号文を生成する類似暗号文生成部と、
     前記複数の類似暗号文の複数の平文をランダム化し、ランダム化された前記複数の平文の各々が前記準同型暗号により暗号化されたランダム暗号文の集合を生成する平文ランダム化部と、
     前記平文ランダム化部により生成された前記ランダム暗号文の集合を用いて、前記類似度が前記閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する結果送信部と
    を備える管理装置。
  10.  準同型暗号により暗号化された保管データを保管暗号化データとして保管する管理装置と、検索データを用いて前記保管データを検索する検索装置とを有する秘匿検索システムの秘匿検索方法において、
     前記管理装置の暗号化類似度計算部が、前記保管暗号化データと前記検索データが前記準同型暗号により暗号化された検索暗号化データを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出し、
     前記管理装置の暗号化結果送信部が、前記暗号化類似度を用いて、前記類似度が閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信し、
     前記検索装置の復号部が、前記管理装置から送信された前記暗号化検索結果を復号し、復号した前記暗号化検索結果を検索結果として出力し、
     前記検索装置の出力部が、前記検索結果に基づいて、前記類似度が前記閾値以内であるか否かを表す検索結果情報を出力する秘匿検索方法。
  11.  準同型暗号により暗号化された保管データを保管暗号化データとして保管する管理装置の秘匿検索プログラムにおいて、
     前記保管暗号化データと、前記保管データの検索に用いる検索データであって前記準同型暗号により暗号化された検索データである検索暗号化データとを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出する暗号化類似度算出処理と、
     前記類似度に類似する複数の平文であって、前記類似度が閾値以内の場合には少なくとも1つは0となる前記複数の平文の各々が前記準同型暗号により暗号化された複数の類似暗号文を生成する類似暗号文生成処理と、
     前記複数の類似暗号文の複数の平文をランダム化し、ランダム化された前記複数の平文の各々が前記準同型暗号により暗号化されたランダム暗号文の集合を生成する平文ランダム化処理と、
     前記平文ランダム化処理により生成された前記ランダム暗号文の集合を用いて、前記類似度が前記閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する結果送信処理と
    をコンピュータに実行させる備える秘匿検索プログラム。
PCT/JP2015/078712 2015-10-09 2015-10-09 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム WO2017061024A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016526364A JP5985123B1 (ja) 2015-10-09 2015-10-09 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
US15/764,780 US10673614B2 (en) 2015-10-09 2015-10-09 Secret search system, management device, secret search method and computer readable medium
EP15905843.7A EP3361469B8 (en) 2015-10-09 2015-10-09 Secret search system, management device, secret search method, and secret search program
PCT/JP2015/078712 WO2017061024A1 (ja) 2015-10-09 2015-10-09 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
CN201580083638.9A CN108140334B (zh) 2015-10-09 2015-10-09 隐匿检索系统、管理装置、隐匿检索方法和记录介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/078712 WO2017061024A1 (ja) 2015-10-09 2015-10-09 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム

Publications (1)

Publication Number Publication Date
WO2017061024A1 true WO2017061024A1 (ja) 2017-04-13

Family

ID=56843292

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/078712 WO2017061024A1 (ja) 2015-10-09 2015-10-09 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム

Country Status (5)

Country Link
US (1) US10673614B2 (ja)
EP (1) EP3361469B8 (ja)
JP (1) JP5985123B1 (ja)
CN (1) CN108140334B (ja)
WO (1) WO2017061024A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019523909A (ja) * 2017-05-09 2019-08-29 深▲せん▼市全同態科技有限公司 完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム
JP2020109447A (ja) * 2019-01-07 2020-07-16 富士通株式会社 秘密情報検索システム、秘密情報検索プログラム、および秘密情報検索方法
WO2023008045A1 (ja) * 2021-07-29 2023-02-02 株式会社日立製作所 情報処理システム及び情報処理方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7024709B2 (ja) * 2016-06-02 2022-02-24 日本電気株式会社 暗号化情報照合装置、暗号化情報照合方法、及び、暗号化情報照合プログラム
US10812252B2 (en) * 2017-01-09 2020-10-20 Microsoft Technology Licensing, Llc String matching in encrypted data
US11196539B2 (en) 2017-06-22 2021-12-07 Microsoft Technology Licensing, Llc Multiplication operations on homomorphic encrypted data
US10541805B2 (en) 2017-06-26 2020-01-21 Microsoft Technology Licensing, Llc Variable relinearization in homomorphic encryption
US10749665B2 (en) 2017-06-29 2020-08-18 Microsoft Technology Licensing, Llc High-precision rational number arithmetic in homomorphic encryption
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
US11907952B2 (en) * 2019-03-12 2024-02-20 Cox Communications, Inc. Secured analytics using encrypted data
US10985904B2 (en) * 2019-06-18 2021-04-20 International Business Machines Corporation Compressible (F)HE with applications to PIR
WO2021029173A1 (ja) * 2019-08-09 2021-02-18 株式会社村田製作所 通信システム
US11070357B2 (en) * 2019-10-17 2021-07-20 Raytheon Company Techniques for privacy-preserving data processing across multiple computing nodes
CN111159745B (zh) * 2019-12-30 2023-04-07 深圳前海微众银行股份有限公司 一种适用于区块链的验证方法及装置
US11308234B1 (en) 2020-04-02 2022-04-19 Wells Fargo Bank, N.A. Methods for protecting data
US11816212B2 (en) * 2020-04-15 2023-11-14 Inferati Inc. Large scale zero trust malware detection
US11238168B2 (en) * 2020-04-20 2022-02-01 Cyberark Software Ltd. Secure, efficient, and flexible searchable-encryption techniques
WO2021256843A1 (ko) * 2020-06-15 2021-12-23 주식회사 크립토랩 동형 암호문에 대한 통계 연산 수행하는 장치 및 방법
RU2763394C1 (ru) * 2021-03-30 2021-12-28 Автономная некоммерческая организация высшего образования «Университет Иннополис» Способ и устройство шифрования данных
CN115001649A (zh) * 2022-04-15 2022-09-02 支付宝(杭州)信息技术有限公司 批量加密方法、相关装置、系统、设备、介质及程序产品
WO2024015101A1 (en) * 2022-07-15 2024-01-18 Google Llc Private pre-fetching of search results

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007114494A (ja) * 2005-10-20 2007-05-10 Nippon Telegr & Teleph Corp <Ntt> 秘匿計算方法及び装置
JP2008521025A (ja) * 2004-11-16 2008-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 類似性指標のセキュアな計算
JP2015139014A (ja) * 2014-01-20 2015-07-30 富士通株式会社 情報処理プログラム、情報処理装置および情報処理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
JP2010165275A (ja) 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
US8515058B1 (en) 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
EP2680488B1 (en) * 2011-02-22 2019-08-21 Mitsubishi Electric Corporation Similarity calculation system, similarity calculation device, computer program, and similarity calculation method
JP5975490B2 (ja) 2011-09-14 2016-08-23 国立研究開発法人産業技術総合研究所 検索システム、検索方法、およびプログラム
WO2013046320A1 (ja) * 2011-09-27 2013-04-04 株式会社 日立製作所 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム
JP5720536B2 (ja) 2011-11-10 2015-05-20 富士通株式会社 秘匿化データの検索のための情報処理方法及び装置
JP5948060B2 (ja) 2012-01-13 2016-07-06 株式会社日立製作所 暗号化データの高速な類似検索処理システム
KR101543196B1 (ko) * 2012-03-19 2015-08-07 미쓰비시덴키 가부시키가이샤 시퀀스 프로그램 작성 장치
JP6083234B2 (ja) 2012-12-27 2017-02-22 富士通株式会社 暗号処理装置
JP2014126865A (ja) 2012-12-27 2014-07-07 Fujitsu Ltd 暗号処理装置および方法
JP6244728B2 (ja) 2013-08-07 2017-12-13 富士通株式会社 情報処理方法及びプログラム
JP6144992B2 (ja) * 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
CN103744976B (zh) * 2014-01-13 2017-02-22 北京工业大学 一种基于同态加密的图像安全检索方法
CN104967693B (zh) * 2015-07-15 2018-05-18 中南民族大学 面向云存储的基于全同态密码技术的文档相似度计算方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008521025A (ja) * 2004-11-16 2008-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 類似性指標のセキュアな計算
JP2007114494A (ja) * 2005-10-20 2007-05-10 Nippon Telegr & Teleph Corp <Ntt> 秘匿計算方法及び装置
JP2015139014A (ja) * 2014-01-20 2015-07-30 富士通株式会社 情報処理プログラム、情報処理装置および情報処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3361469A4 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019523909A (ja) * 2017-05-09 2019-08-29 深▲せん▼市全同態科技有限公司 完全準同型暗号化の暗号化テキストのクエリメソッド及びシステム
JP2020109447A (ja) * 2019-01-07 2020-07-16 富士通株式会社 秘密情報検索システム、秘密情報検索プログラム、および秘密情報検索方法
JP7132506B2 (ja) 2019-01-07 2022-09-07 富士通株式会社 秘密情報検索システム、秘密情報検索プログラム、および秘密情報検索方法
WO2023008045A1 (ja) * 2021-07-29 2023-02-02 株式会社日立製作所 情報処理システム及び情報処理方法

Also Published As

Publication number Publication date
CN108140334B (zh) 2021-03-23
JP5985123B1 (ja) 2016-09-06
EP3361469B1 (en) 2020-12-23
CN108140334A (zh) 2018-06-08
US20180278410A1 (en) 2018-09-27
EP3361469B8 (en) 2021-03-10
US10673614B2 (en) 2020-06-02
EP3361469A4 (en) 2018-08-15
EP3361469A1 (en) 2018-08-15
JPWO2017061024A1 (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
JP5985123B1 (ja) 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
KR101351789B1 (ko) 암호 시스템, 암호 통신 방법, 암호화 장치, 키 생성 장치, 복호 장치, 콘텐츠 서버 장치, 프로그램, 기억매체
JP5422053B2 (ja) 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
JP5420085B2 (ja) データ処理装置及びデータ保管装置
JP6234605B2 (ja) サーバ装置及び検索システム及び端末装置及び検索方法及びサーバプログラム及び端末プログラム
JP5432736B2 (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
JP2014002365A (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
JP6556955B2 (ja) 通信端末、サーバ装置、プログラム
JP6770075B2 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム
JP5670365B2 (ja) 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
JP6961324B2 (ja) 検索可能暗号処理システム
Zhou et al. Threshold Key Management Scheme for Blockchain‐Based Intelligent Transportation Systems
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
Devi et al. A comparative study on homomorphic encryption algorithms for data security in cloud environment
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
JP6885325B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
Montañez New security definitions, constructions and applications of proxy re-encryption
Bhattasali SeDReS: Secured Data Retrieval Service
JP2013092740A (ja) アクセス制御システム、アクセス制御方法およびプログラム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2016526364

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 15905843

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15764780

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE