WO2013038698A1 - 検索システム、検索方法、およびプログラム - Google Patents

検索システム、検索方法、およびプログラム Download PDF

Info

Publication number
WO2013038698A1
WO2013038698A1 PCT/JP2012/005885 JP2012005885W WO2013038698A1 WO 2013038698 A1 WO2013038698 A1 WO 2013038698A1 JP 2012005885 W JP2012005885 W JP 2012005885W WO 2013038698 A1 WO2013038698 A1 WO 2013038698A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
enc
sequence data
encrypted
encryption
Prior art date
Application number
PCT/JP2012/005885
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 US14/344,453 priority Critical patent/US9215068B2/en
Priority to JP2013533524A priority patent/JP5975490B2/ja
Publication of WO2013038698A1 publication Critical patent/WO2013038698A1/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/30Data warehousing; Computing architectures
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/40Encryption of genetic data
    • 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
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Definitions

  • the present invention relates to a search system and a search method for checking whether there is similar data in a database while maintaining search conditions and the confidentiality of the database.
  • “Today's drug discovery goes to the drug development process of preclinical trials through target search, hit compound search, lead compound search, and drug candidate synthesis.
  • a disease-causing gene protein or the like
  • sequence information analysis database research
  • analysis of gene expression information in a microarray or the like.
  • hit compound search compounds that are likely to be effective for the causative gene are searched by narrowing down candidates by docking and MD (simulation) on a computer, or by performing structure prediction and function prediction from similar proteins.
  • the lead compound search a similar compound to the hit compound is searched for a more effective lead compound.
  • verification experiments are conducted around the lead compound.
  • NCBI National Center for Biotechnology Information
  • Focused Library is a database that collects useful compounds that are expected to be hit easily by companies, especially when they are costly.
  • Focused Library aggregates compounds that are considered to be highly effective against a specific drug discovery target (for example, GPCR, kinase, etc.).
  • a specific drug discovery target for example, GPCR, kinase, etc.
  • Non-Patent Document 1 that securely calculates the similarity (Tanimoto coefficient) between compounds.
  • a researcher and a database holder encrypt a vector element representing a compound and send it to a third party, and the third party determines whether the two match. Repeat.
  • Non-Patent Document 1 requires the existence of a researcher who has a hit compound as a search condition and a third party who may disclose confidential information in addition to the database holder. . Moreover, since communication for the number of elements of the vector occurs, it is not practical.
  • the present invention examines whether the database contains data similar to the search condition in a state where both the database owner and the database user conceal their information from each other.
  • a search system and a search method capable of
  • the search system of the present invention includes a management device having a database that stores data representing a partial structure or property of an object, and a searcher device that inputs search conditions for the database and outputs search results.
  • the data is sequence data in which “1” is set when an object has the partial structure or property for a plurality of predetermined partial structures or properties, and “0” is set when the object does not have the partial structure or property.
  • T is the Tversky coefficient S i
  • the following steps are performed to check whether the database includes sequence data p i that is equal to or greater than the threshold ⁇ n / ⁇ d (where ⁇ n and ⁇ d are natural numbers satisfying ⁇ n ⁇ ⁇ d ). To do. (1) The searcher device generates an encryption public key and secret key having additive homomorphism. (2) The searcher device accepts input of query number sequence data q.
  • the searcher device obtains the number of elements
  • While encrypting with the public key, the value of each element q j (where j 1,..., N: n is the length of the query number sequence q) is encrypted with the public key.
  • the searcher apparatus determines that the public key, the encrypted value Enc ( ⁇
  • the management device includes the public key output from the searcher device, the encrypted value Enc ( ⁇
  • the management device reads one sequence data p i from the database.
  • the management device obtains the number of elements
  • the encryption value Enc (q k ) is performed, and the encryption value Enc (
  • the management device converts (
  • )) is obtained by performing a calculation corresponding to the calculation, and the encryption value Enc ( ⁇ a ( ⁇
  • the management apparatus repeats the above (6) to (11) for each of the plurality of sequence data p i included in the database, and obtains an encrypted value of the score T i for each sequence data p i .
  • the management device outputs the encrypted values of the scores T 1 , T 2 ,... T m to the searcher device.
  • the searcher device receives the encrypted values of the scores T 1 , T 2 ,... T m output from the management device.
  • the searcher device decrypts the encrypted values of the scores T 1 , T 2 ,... T m with the secret key. (16) said searcher apparatus, the score T 1, T 2, determines non-negative / negative ⁇ ⁇ ⁇ T m. (17)
  • the searcher device outputs a determination result.
  • the cipher may be a stochastic cipher. Further, the calculation corresponding to the addition in the plaintext may be multiplication in the encrypted value. As a cipher having these properties, a Palier cipher can be used.
  • the present invention can use ciphers having additive homomorphism and additive homomorphism as well as ciphers having additive homomorphism described herein.
  • the management device calculates the score T i for determining the Tversky coefficient S i using the encrypted value of the query sequence data q, so that the confidentiality of the query sequence data q can be maintained. it can. Further, the score T i only indicates whether the data of the object stored in the database is more similar than the predetermined threshold value ⁇ n / ⁇ d, so that the contents of the database may leak directly to the searcher. Absent. In this way, it is possible to obtain information on whether or not the database contains data similar to the query while maintaining the confidentiality of the query sequence data q and the database.
  • ) ⁇ ) is a flowchart showing the algorithm for calculating. It is a flowchart which shows operation
  • Random share R i is a flowchart illustrating an operation of acquiring a non-negative / negative information score T i. It is a flowchart which shows operation
  • a search system and a search method according to an embodiment of the present invention will be described with reference to the drawings.
  • a compound whose structure is expressed by a fingerprint will be described as an example.
  • the present invention is not limited to searching for a compound, and the data (for example, data that can express the structure or property of an object with numerical data of “1” and “0” (for example, , A database storing genes).
  • FIG. 1 is a diagram illustrating an example of a fingerprint.
  • Fingerprint is one of the expression methods of a compound, and represents whether or not a compound has a predetermined partial structure by a numerical sequence having “1” and “0” as elements.
  • the presence or absence of “pyrrole ring”, “benzene ring”, “O”, “N”, and “N double bond” is shown in order from the first bit.
  • An element value of “0” indicates that there is no corresponding structure, and a value of “1” indicates that there is a corresponding structure. Since compound 1 has “1” standing on the 2nd to 4th bits, it contains “benzene ring”, “O”, “N”, and the 1st and 5th bits are “0”. And “N double bond” are not included.
  • MDL MACCS key As a representation method using such a fingerprint, there are MDL MACCS key, Daylight Fingerprint, ECFP (Extended Connectivity FP), FCFP (Functional Class FP), pharmacophore key, and the like.
  • ECFP Extended Connectivity FP
  • FCFP Full Class FP
  • pharmacophore key As a representation method using such a fingerprint, there are MDL MACCS key, Daylight Fingerprint, ECFP (Extended Connectivity FP), FCFP (Functional Class FP), pharmacophore key, and the like.
  • FIG. 1 the example of MDL MACCS key was shown.
  • FIG. 1 shows only 5 bits of data as an example, but the actual fingerprint length is longer, for example, 960 bits in the MDL MACCS key.
  • the present invention can be applied when any fingerprint is used.
  • FIG. 2B is a diagram showing the Tversky coefficient S.
  • FIG. 2C is a diagram for explaining the Tversky coefficient.
  • A is a set of partial structures of compound A, and corresponds to the left circle shown in FIG. 2C.
  • B is a set of partial structures of the compound A, and corresponds to the right circle shown in FIG. 2C.
  • C is a set (logical product) of partial structures shared by the compounds A and B, and corresponds to an overlapping portion of both circles shown in FIG. 2C.
  • “ ⁇ ” and “ ⁇ ” included in the Tversky coefficient are coefficients having a value of 0 or more.
  • the similarity between the compounds A and B can be measured from different viewpoints.
  • S c / (a + b ⁇ c).
  • This is a coefficient called the Tanimoto coefficient, and represents the ratio of the common partial structures among all the partial structures possessed by the compounds A and B.
  • the partial structure of compound A is a set of partial structures that compound A and B have in common. It is a value obtained by dividing the number by the average of the number of partial structures of compound B. This is called a Dice coefficient. In any case, the larger the coefficient S, the higher the proportion of the compound A and the compound B that are similar.
  • a compound having a Tversky coefficient equal to or greater than a predetermined threshold with a fingerprint of a compound (this is referred to as “query”) input by a searcher device, that is, a compound similar to a query. Find out how much is in the database. At this time, a search is performed while keeping the query secret in a management apparatus that manages the database.
  • the search system according to the present embodiment uses a stochastic cipher having additive homomorphism, and the management apparatus performs an operation with the encrypted value as it is.
  • additive homomorphism will be described.
  • FIG. 3A is a diagram for explaining additive homomorphism.
  • Enc () indicates an encrypted value obtained by encrypting the value in parentheses.
  • Additive homomorphism cipher is a cipher that can perform a calculation corresponding to addition in plain text using a cipher value. That is, as shown in FIG. 3A, by calculating the encryption value Enc (A) of the value A and the encryption value Enc (B) of the value B, the encryption value Enc (A + B of the value A + B remains in the encrypted state. ) Can be calculated. The calculation performed on the encryption value Enc (A) and the encryption value Enc (B) differs depending on the type of encryption.
  • FIG. 3B is a diagram for explaining additive homomorphism of the Palier encryption.
  • the encryption value Enc (A + B) obtained by encrypting the value A + B can be obtained by multiplying the encryption value Enc (A) and the encryption value Enc (B). That is, multiplication of encrypted values corresponds to addition in plain text. Using this, it is possible to perform multiplication of integer multiples in plain text.
  • FIG. 3C is a diagram illustrating an example in which the encrypted value Enc (A ⁇ B) of the value A ⁇ B is calculated in an encrypted state. Since A ⁇ B is the same as adding A to B times, when calculating with an encrypted value, multiplying the encrypted value Enc (A) B times (that is, Enc (A) is raised to the B power). The encryption value Enc (A ⁇ B) can be obtained. Needless to say, the encryption value Enc (B) may be multiplied A times.
  • the data handled in this embodiment is binary data
  • a unique ciphertext is generated for plaintext
  • only two types of cipher values are generated: an encryption value for “1” and an encryption value for “0”. Therefore, the fingerprint of the query may be exposed.
  • probability encryption is used.
  • stochastic encryption since the encryption procedure is performed stochastically, no partial information of plaintext is leaked from the ciphertext.
  • ciphertexts generated from the same plaintext are different.
  • the Palier cipher is used as the probability cipher having additive homomorphism.
  • the query is not exposed to the database administrator, but it has additive homomorphism.
  • the fractional Tversky coefficient S i cannot be calculated. Therefore, in the present embodiment, the following score T is introduced that takes a non-negative (not negative, ie, positive or 0) value when the Tversky coefficient is equal to or greater than a predetermined threshold ⁇ n / ⁇ d . .
  • the Pillar cipher has additive homomorphism, but since subtraction cannot be performed in the encrypted state, a negative value is added ( ⁇
  • the score T i is obtained by modifying the inequality between the Tversky coefficient and the threshold ⁇ n / ⁇ d . Since the Pillar encryption cannot handle decimal numbers, the coefficient ⁇ , ⁇ of the Tversky coefficient S i is set to ⁇ a / ⁇ , ⁇ b / ⁇ , and the threshold value is expressed as ⁇ n / ⁇ d .
  • FIG. 4 is a diagram illustrating a configuration of the search system according to the first embodiment.
  • the search system includes a management device 10 having a database 12 storing compound fingerprints, and a searcher device 30 that sends a query to the management device 10 to request a search of the database 12.
  • the management device 10 and the searcher device 30 are connected by a network 50 such as the Internet.
  • the management apparatus 10 includes a compound database 12, a query reception unit 16, an input data check unit 18, a score encryption value calculation unit 20, a transmission order change unit 24, and a result transmission unit 26.
  • the management apparatus 10 includes a set value storage unit 14 that stores the determination threshold ⁇ n / ⁇ d of the similarity based on the coefficients ⁇ a / ⁇ , ⁇ b / ⁇ , and the Tversky coefficient used in the Tversky coefficient, and the set value storage And a set value changing unit 22 for changing the set values stored in the unit 14.
  • the management apparatus 10 is not shown in FIG. 4, it has a CPU and a storage unit used for calculating the similarity between the data p i of the compound query q. The hardware configuration of the database will be described later (see FIG. 5).
  • the query receiving unit 16 has a function of receiving a query (search condition) transmitted from the searcher device 30.
  • the query receiving unit 16 stores the received data in the storage unit.
  • the query includes encrypted values Enc (q 1 ), Enc (q 2 ),... Enc (q n ) obtained by encrypting the value of each element of the compound fingerprint, and “1” included in the fingerprint.
  • ) and the public key for encryption are included. Note that each value of the fingerprint and the number of “1” included in the fingerprint are all encrypted, so the management device 10 cannot know the contents.
  • the input data check unit 18 has a function of checking whether or not the query received by the query receiving unit 16 is appropriate. For example, the value of each element of the fingerprint is an encrypted value of “1” or “0”, but if the numerical value is other than this, it is determined that the query is not appropriate, and the subsequent processing is performed. You can avoid it. As described above, the management device 10 cannot know the content of plaintext from the encrypted value, but such a check is performed by, for example, zero knowledge proof (Practical Private Computation and Zero-Knowledge Tools for Privacy-Preserving Distributed Data Mining). SDM 2008: pp.265-276, Towards restricting plaintext space in public key encryption, in: Proceedings of IWSEC 2011, LNCS 7038, 2011, pp.193-209.) Etc. The configuration of the input data check is not essential and can be omitted.
  • the set value storage unit 14 stores coefficients ⁇ a / ⁇ , ⁇ b / ⁇ used as Tversky coefficients, and a threshold ⁇ d / ⁇ n used for calculating a Tversky score.
  • the set value storage unit 14 may store several patterns of coefficients ⁇ a / ⁇ , ⁇ b / ⁇ and threshold values ⁇ d / ⁇ n .
  • the coefficients ⁇ a / ⁇ and ⁇ b / ⁇ are changed according to the type of search (Tanimoto coefficient, partial structure search, Dice coefficient, etc.), or the threshold ⁇ d / ⁇ n is set according to the degree of similarity to be obtained. Can be changed.
  • the score encryption value calculation unit 20 calculates the encryption values of the scores T 1 , T 2 ,... T m for each compound in the database 12. The calculation process of the encryption value of the score T by the score encryption value calculation unit 20 will be described later.
  • Transmission order change section 24 has a function of exchanging a plurality of score T 1, T 2, the transmission order of cryptographic value of ⁇ ⁇ ⁇ T m at random. Specifically, the encryption values of the scores T 1 , T 2 ,... T m are stored in the storage unit in the order of calculation, and are randomly read from the storage unit when the transmission order changing unit 24 performs transmission. Thus, the transmission order can be changed.
  • Score cryptographic value calculation unit 20 the score T 1, T 2 data of the compound from the database 12 reads sequentially, the calculation of the cryptographic values of ⁇ ⁇ ⁇ T m. Each time, the score T 1, T 2, and send the order of calculation of the cryptographic values of ⁇ ⁇ ⁇ T m, score T 1, T 2 to change the query appropriately on the side of the search apparatus 30 to obtain a ⁇ ⁇ ⁇ T m
  • the transmission order changing unit 24 prevents such inconvenience.
  • This configuration is not an essential configuration and can be omitted.
  • the result transmitting unit 26 has a function of transmitting the encrypted values of the scores T 1 , T 2 ,... T m to the searcher device 30.
  • the searcher device 30 includes a query input unit 32, an encryption key generation unit 34, an encryption unit 36, a query transmission unit 38, a result reception unit 40, a decryption unit 42, a determination unit 44, and a display unit. 46 and a storage unit 48.
  • the query input unit 32 has a function of accepting input of fingerprint data q of a compound for which a similar compound is to be searched.
  • the query input unit 32 may receive an input of the structural formula of the compound and may convert the structural formula into a fingerprint.
  • the query input unit 32 stores the input fingerprint data q in the storage unit 48. Further, the query input unit 32 obtains the number of elements whose value included in the fingerprint is “1”, and also stores the obtained number of elements
  • the encryption key generation unit 34 has a function of generating a public key that performs encryption using the Pillar encryption and a secret key that performs decryption.
  • the encryption key generation unit 34 stores the generated public key and secret key in the storage unit.
  • the encryption key generation unit 34 may generate a new public key and secret key for each query q, or may use the same public key and secret key for a plurality of queries q.
  • the encryption unit 36 reads the value of each element q 1 , q 2 ,... Q n of the query fingerprint and the number of elements
  • the negative sign is attached to the number of elements
  • the encryption unit 36 encrypts encryption values Enc (q 1 ), Enc (q 2 ),... Enc (q n ) of each element of the fingerprint and the number of elements
  • ) is input to the query transmission unit 38.
  • the result receiving unit 40 has a function of receiving the encrypted values of the scores T 1 , T 2 ,... T m transmitted from the management device 10.
  • the result receiving unit 40 stores the received encrypted values of the scores T 1 , T 2 ,... T m in the storage unit 48.
  • the decrypting unit 42 has a function of decrypting the encrypted values of the scores T 1 , T 2 ,... T m received by the result receiving unit 40 using the secret key.
  • the decryption unit 42 inputs the scores T 1 , T 2 ,... T m obtained by decryption to the determination unit 44.
  • the determination unit 44 determines whether or not the scores T 1 , T 2 ,... T m have non-negative values. When the scores T 1 , T 2 ,... T m are non-negative, it can be seen that the Tversky coefficient is greater than or equal to a predetermined threshold ⁇ n / ⁇ d . By counting the number of scores T i having non-negative values, it is possible to know how many compounds are similar to the database 12 of the management apparatus 10.
  • the display unit 46 has a function of displaying the determination result by the determination unit 44.
  • the display unit 46 may display how many compounds have a Tversky coefficient equal to or greater than the threshold value ⁇ n / ⁇ d, or may display the ratio of the compounds.
  • FIG. 5 is a diagram showing a hardware configuration of the management device 10 and the searcher device 30.
  • Both the management device 10 and the searcher device 30 are configured by a computer in which a CPU 60, a RAM 62, a ROM 64, a communication interface 68, a hard disk 70, an operation unit 72, and a display 74 are connected by a data bus 76.
  • the contents of the program 66 written in the ROM 64 are different between the management device 10 and the searcher device 30.
  • the program 66 stored in the ROM 64 of the management apparatus 10 is a program for realizing the function of the management apparatus 10, and the program 66 stored in the ROM 64 of the searcher apparatus 30 is for realizing the function of the searcher apparatus 30. It is a program. Each such program 66 is included in the scope of the present invention.
  • the management device 10 stores compound fingerprint data in a hard disk.
  • FIG. 6 is a flowchart showing the operation of the search system of this embodiment.
  • the searcher device 30 inputs fingerprint data q of the query compound (S10).
  • the searcher device 30 stores the input fingerprint data q in the storage unit 48.
  • the searcher device 30 generates a set of public and private keys for the Pillar encryption and stores them in the storage unit 48 (S12).
  • the searcher device 30 reads the query fingerprint data q from the storage unit 48, and encrypts the values of the read fingerprint elements q 1 , q 2 ,... Q n with the public key (S14). .
  • FIG. 7 is a diagram illustrating an example of obtaining an encrypted value by encrypting each element of the fingerprint.
  • the searcher device 30 encrypts the value of each element, that is, “1” or “0” to obtain encrypted values Enc (q 1 ), Enc (q 2 ),... Enc (q n ). Since the Pillar cipher used in this embodiment is a probability cipher, even if the same value is encrypted, the cipher value does not become the same. As a result, it is possible to prevent the inconvenience of guessing the plaintext value from the encrypted value.
  • the searcher device 30 obtains the number of elements whose value is “1” among the elements included in the fingerprint, encrypts the value obtained by adding a negative sign to the number of elements
  • the searcher device 30 includes the public key, the encrypted value Enc ( ⁇
  • the management device 10 transmits the public key transmitted from the searcher device 30, the encrypted value Enc (-
  • the management device 10 checks the validity of the received data (S20).
  • the encrypted value of each element of the query is an encrypted one of “1” and “0”, but if it is determined that neither “1” or “0” is present, the query sequence data q is Since it is incorrect, the management apparatus 10 interrupts the process at this point and notifies the searcher apparatus 30 that there is an input error of the query q.
  • a malicious attacker who tries to extract more information in the database 12 of the management apparatus 10 by selecting an abnormal value other than 0 or 1 that is originally assumed as the query q. Therefore, the information in the database 12 can be protected.
  • the management apparatus 10 calculates a cryptographic value of the score T i based on the fingerprint data (each data is referred to as “entry”) p i and the query q stored in the database 12 ( S22). A specific calculation method will be described with reference to FIGS.
  • FIG. 8 is a flowchart showing the operation of calculating the cryptographic value of the score T i .
  • the management apparatus 10 first reads one entry p i from the database 12 (S40).
  • the management device 10 stores the read entry p i in the storage unit.
  • the management apparatus 10 counts the number of elements whose value is “1” among the elements included in the entry p i , encrypts a value obtained by adding a negative sign to the number of elements
  • ) is obtained (S42).
  • is given a negative sign is that plaintext cannot be subtracted when the Pillar cipher is in an encrypted value state.
  • the management apparatus 10 calculates the number of partial structures (
  • FIG. 9A is a diagram illustrating an example of each element of the entry p i and each element of the query q.
  • the partial structure that the query q and the entry p i have in common is an element in which “1” stands for both.
  • the number of common partial structures can be obtained by obtaining the number of elements with “1” standing on both.
  • the management apparatus 10 knows the value of each element of the entry p i , but cannot understand the value of each element of the query q. However, if the value of the element q k of the query q corresponding to the element p i, k where “1” is set in the entry p i is added (multiplication in the ciphertext), the value of the entry p i becomes “ The number of elements that are common to the query q and the entry p i can be obtained because any number of elements having a query q value of “0” and “0” does not affect the result.
  • FIG. 10 is a flowchart showing an algorithm for obtaining the encryption value of the number of partial structures common to the query q and the entry p i read from the database 12.
  • the management apparatus 10 initializes variables by setting “1” to each of the variable I and the counter j (S60).
  • the variable I is a variable in which the encryption value of the number of elements of the common partial structure is entered, and the variable j is a counter.
  • the variable I and the counter j are allotted an area to a part of the RAM 62, and the values of the variable I and the counter j are stored by writing data in the area. ing.
  • the above initialization of the variable I and the counter j means that a value “1” is written in the assigned predetermined area.
  • the calculation is performed using computer hardware resources such as the CPU 60 and the RAM 62 according to the program 66 stored in the ROM 64. Do.
  • ⁇ ( ⁇ d ⁇ n ) + ⁇ n ( ⁇ a + ⁇ b ) is a set value, and is a natural number known to the management apparatus 10.
  • an encrypted value obtained by multiplying a plaintext by an integer is obtained by raising the encrypted value to the power.
  • ) is multiplied by ⁇ ( ⁇ d ⁇ n ) + ⁇ n ( ⁇ a + ⁇ b ) times.
  • Figure 11 is a cryptographic value Enc is a flowchart showing the algorithm for calculating the ((
  • the management device 10 encrypts the variable tmpX, j (S80).
  • a variable tmpX is a variable for storing a calculation result, and a variable j is a counter.
  • Management device 10 the encryption value Enc variable tmpX (
  • the counter j ⁇ ( ⁇ d ⁇ n ) + ⁇ n ( ⁇ a + ⁇ b ) (YES in S84)
  • the calculated calculation result tmpX is returned (S88).
  • the management apparatus 10 calculates Enc ( ⁇ n ⁇ a ( ⁇
  • FIG. 12 is a flowchart showing an algorithm for calculating Enc ( ⁇ n ⁇ a ( ⁇
  • the management apparatus 10 sets “1” for each of the variables tmpY, j, and initializes the variable tmpY, j (S90).
  • the variable tmpY is a variable in which the calculation result of Enc ( ⁇ a ( ⁇
  • the management apparatus 10 multiplies tmpY by the encryption value Enc ( ⁇
  • the management apparatus 10 sets “1” for each of the variables tmpZ, j, and initializes the variable tmpZ, j (S98).
  • Variable tmpY the encrypted value Enc ( ⁇ b (-
  • Management device 10 the encryption value tmpZ Enc (-
  • ) ⁇ ) is the encrypted value Enc ( ⁇ a ( ⁇
  • )) is encrypted value Enc ( ⁇ a (-
  • the management apparatus 10 sets “1” for each of the variables tmpW, j, and initializes the variable tmpW, j (S106).
  • the variable tmpW is a variable in which the calculation result of Enc ( ⁇ n ⁇ a ( ⁇
  • the management apparatus 10 multiplies tmpW by tmpY ⁇ tmpZ and substitutes the result into tmpW (S108).
  • Enc management device 10 obtained in step S46 (
  • This value is an encrypted value of the score T i .
  • the management device 10 stores the obtained encrypted value of the score T i in the storage unit.
  • the score T i calculation process has been described in detail above.
  • the management device 10 changes the order of the encrypted values of the scores T 1 , T 2 ,... T m obtained for each entry p i in the database 12 (S24), and then transmits the search values to the searcher device 30. (S26). Specifically, the transmission order changing unit 24 reads the encrypted value of the score T i from the storage unit at random, and inputs the read data to the result transmission unit 26 to change the transmission order.
  • the searcher device 30 When the searcher device 30 receives the encrypted values of the scores T 1 , T 2 ,... T m transmitted from the management device 10 (S28), the decryption unit 42 reads the secret key from the storage unit 48, Using the secret key, the encrypted values of the scores T 1 , T 2 ,... T m are decrypted (S30). The searcher device 30 determines non-negative / negative of each score T 1 , T 2 ,... T m obtained by decoding, and displays the determination result (S32). When the scores T 1 , T 2 ,... T m are non-negative, it means that the Tversky coefficient is equal to or greater than a predetermined threshold ⁇ n / ⁇ d . Therefore, when many compounds having a non-negative score T i are included, it can be seen that the database 12 includes many compounds similar to the query compound.
  • the configuration and operation of the search system according to the first embodiment have been described above.
  • the searcher device 30 transmits the encryption value of the fingerprint of the query compound to the management device 10, so that the confidentiality of the query compound is given to the management device 10. While maintaining, it is possible to check how many compounds similar to the database 12 are contained. In addition, the management apparatus 10 can notify the information of similar compounds without disclosing the compounds stored in the database 12.
  • FIG. 13 is a flowchart illustrating the operation of the search system according to the second embodiment.
  • the operation of the search system of the second embodiment is basically the same as that of the first embodiment, but the random number r is applied to the encrypted value Enc (T i ) of the score T i obtained in step S50. i, with s i (r i> s i ) to calculate the encrypted value Enc (T i ⁇ r i + s i), the calculation results are the new score T i (S51).
  • FIG. 14 is a flowchart showing an algorithm for calculating the encryption value Enc (T i ⁇ r i + s i ).
  • the management apparatus 10 assigns “1” to each of the variables t_res, j and initializes the variables t_res, j (S120).
  • the variable t-res is a variable in which the calculation result of Enc (T i ⁇ r i + s i ) is entered, and the variable j is a counter.
  • the management device 10 multiplies t_res by the encrypted value Enc (T i ) and assigns the result to t_res (S122).
  • the search system according to the second embodiment has been described with respect to differences from the first embodiment.
  • a value obtained by adding the random number s i after random number r i multiplied scores T i is the new score T i. Therefore, there is no correlation between the degree of similarity and the score T i, and the tendency of data stored in the database 12 cannot be estimated from the score T i . Therefore, the confidentiality of the data stored in the database 12 can be further enhanced.
  • the score T i is a score indicating that the Tversky coefficient is not less than a predetermined threshold when it is non-negative and lower than the predetermined threshold when it is negative, and has only significance. Therefore, since the sign does not change even if it is multiplied by r i , there is no change in the criterion for determining the score T i .
  • a score T i of 0 means that a compound having a Tversky coefficient that matches the threshold value ⁇ n / ⁇ d exists in the database 12. Random numbers s i are added so as not to leak information that there is a compound that matches the Tversky coefficient. This is because the above-described disturbance multiplied by the random number r i has no meaning when the score T i is 0. As a result, the score T i of a compound whose Tverssky coefficient matches the threshold value ⁇ n / ⁇ d is always a positive value.
  • the random number s i is because the random number r i value less than, by adding a random number s i, will not be replaced positive and negative scores T i. This is because, when the absolute value of the negative-scoring T i thought minimal "-1", r i a value obtained by multiplying is -r i, this absolute value by adding r i smaller random number s i The result remains negative.
  • the search system of the third embodiment will be described.
  • the basic configuration of the search system of the third embodiment is the same as that of the first embodiment, but the third embodiment.
  • the confidentiality of the database 12 is further enhanced by disturbing the score T i and generating a random share R i .
  • FIG. 15 is a flowchart illustrating the operation of the search system according to the third embodiment.
  • the operation of the search system of the third embodiment is basically the same as that of the first embodiment, but the random number r is applied to the encrypted value Enc (T i ) of the score T i obtained in step S50. with i calculate the encrypted value Enc (T i + r i) , the calculation results are the encrypted value of the random share R i (S51a). Random share R i, since the addition of the random number r i relative score T i, matching of the positive and negative Tversky coefficient and threshold ⁇ n / ⁇ d and scores T i is not guaranteed.
  • Figure 16 is a random share R i, is a flowchart illustrating an operation of acquiring a non-negative / negative information score T i.
  • Searcher unit 30 transmits the random share R i in the hidden circuit (S140), concealing circuit receiving a random share R i (S144).
  • the “secret circuit” is a circuit that can perform calculation while keeping the calculation contents secret, and is designed by Secure Function Evaluation.
  • the management device 10 transmits the random number r i used when generating the random share R i transmitted by the searcher device 30 to the secret circuit (S142), and the secret circuit receives the random number r i (S144).
  • Secure Circuit obtains a score T i by subtracting the random number r i from the random share R i (S146), determines the non-negative / negative (S148).
  • the concealment circuit transmits a non-negative / negative determination result of the score T i to the searcher device 30 (S150), and the searcher device 30 receives the determination result (S152).
  • Searcher unit 30 determines whether or not completed the calculation for all the entries (S154), if for all the entries are computed not ended (in S154 NO), and the next random share R i Repeat the same process. When the calculation has been completed for all entries (YES in S154), searcher device 30 aggregates the determination results (S156) and displays the results (S158).
  • the search system according to the third embodiment has been described above with a focus on differences from the first embodiment.
  • the searcher device 30 returns a random share R i instead of the score T i , and the searcher device 30 transmits the random share R i to the concealment circuit. Only get. Since there is no correlation between the degree of similarity and the score T i , the tendency of the data stored in the database 12 cannot be estimated from the random share R i . Therefore, the confidentiality of the data stored in the database 12 can be further enhanced.
  • FIG. 17 is a flowchart showing the operation of the score encryption value calculation unit 20 in the fourth embodiment.
  • the steps up to the step (S40 to S44) for obtaining the number of elements of the partial structure that the query q and the read entry p i have in common are the same as those in the first to third embodiments.
  • the cipher has multiplicative homomorphism, and plaintext multiplication can be performed with the cipher value unchanged, so the following equation is used as the score T i .
  • the score cipher value calculation unit 20 calculates the cipher value Enc (
  • the score encryption value calculation unit 20 calculates the encryption value Enc ( ⁇ ( ⁇
  • ) ⁇ ⁇ in plaintext is performed on the encrypted value Enc ( ⁇
  • ) ⁇ ⁇ in plaintext is performed on the encrypted value Enc ( ⁇
  • ) is obtained. Subsequently, for the encrypted value Enc ( ⁇ ( ⁇
  • the score encryption value calculation unit 20 calculates the encryption value Enc (
  • )) ) Is calculated corresponding to
  • a score T i between the read entry p i and the query q is obtained.
  • the score encryption value calculation unit 20 determines whether or not the calculation of the score T i has been completed for all entries p i in the database 12 (S166), and the calculation for all the entries P i has not been completed. (NO in S166), the uncalculated entry p i is read from the database 12, and the same processing as described above is performed. When the calculation for all the entries p i is completed (YES in S166), the process is terminated.
  • the search system according to the fourth embodiment has been described with respect to differences from the first to third embodiments.
  • the search system according to the fourth embodiment because of the use of encryption with a multiplicative homomorphism in addition to additive homomorphism, it is possible to calculate the score T i easily.
  • the example in which the coefficients ⁇ , ⁇ , and the threshold ⁇ are used as they are has been described on the assumption that the cipher can handle decimals.
  • the coefficients ⁇ and ⁇ are set to the coefficients ⁇ a / ⁇ and ⁇ b / ⁇ , the threshold ⁇ is replaced with ⁇ n / ⁇ d, and the same as in the first to third embodiments.
  • a score T i may be obtained.
  • FIG. 18 is a diagram illustrating a configuration of a search system according to the fifth embodiment.
  • the management apparatus 10 includes a dummy data generation unit 28 that generates dummy data, in addition to the configuration of the search system of the first embodiment (see FIG. 4).
  • the dummy data generation unit 28 generates a dummy score Td i according to a predetermined probability distribution. Dummy data generation unit 28 generates the data close to the actual score T i of the data. Dummy data generation unit 28 encrypts using a public key transmitted scores Td i of the produced blank from the searcher unit 30 generates an encryption value of the dummy score Td i. In addition, the dummy data generation unit 28 determines how many non-negative dummy scores and how many negative dummy scores are included in the generated dummy score Td i , and obtains the value as a result transmission unit 26.
  • the transmission order changing unit 24 randomly rearranges (shuffles) the transmission order of the encryption value of the score T i of the entry P i in the database 12 and the encryption value of the dummy score Td i .
  • the result transmitting unit 26 transmits the number of non-negative dummy scores and the number of negative dummy scores to the searcher device 30 together with the encrypted value of the score T i and the encrypted value of the dummy score Td i .
  • the searcher unit 30 from the management apparatus 10, the score T 1, T 2, which is transmitted in a random transmission order, ⁇ ⁇ ⁇ T cryptographic value of m and the dummy scores Td 1, Td 2, the ⁇ ⁇ ⁇ Td k
  • the decryption unit 42 reads the secret key from the storage unit 48 and decrypts the received encrypted value using the secret key. Since the transmission order is random, the searcher device 30 does not know which is the score T i corresponding to the entry P i in the database 12 and which is the dummy score Td i .
  • the searcher device 30 the scores T 1 obtained by decoding, T 2, ⁇ T m, Td 1, Td 2, to determine the non-negative / negative ⁇ ⁇ ⁇ Td k, nonnegative and negative scores Ask for how many are included.
  • the searcher device 30 subtracts the number of non-negative dummy scores and the number of negative dummy scores transmitted from the management device 10 from the determined number of non-negative and negative scores, thereby obtaining the database 12.
  • the number of entries P i each having a non-negative and negative Tversky coefficient is determined. For example, it is determined from the result of decoding the received score that 20 non-negative scores and 100 negative scores are included, 5 non-negative dummy scores, and 10 negative dummy scores. If there is, it can be determined that the database 12 has 15 entries having a non-negative score and 90 entries having a negative score.
  • the configuration and operation of the search system according to the fifth embodiment have been described above.
  • the search system which is the score T i based on the entry P i in the database 12 is hidden by the dummy score Td i , and immediately becomes unknown.
  • the amount of information leaking to the device 30 can be reduced.
  • the number of dummy scores Td i the amount of extra information leaked to the searcher device 30 can be made as close to zero as possible.
  • the example in which the management device 10 and the searcher device 30 are connected via the network 50 such as the Internet has been described.
  • the network 50 that connects the management device 10 and the searcher device 30 is described below. Anything Further, the management device 10 and the searcher device 30 do not necessarily have to be connected via the network 50, and the query data q output by the searcher device 30 is recorded on a recording medium such as a CD-ROM, and the management device It may be mailed to 10 operators, and the operator may cause the management apparatus 10 to read the CD-ROM.
  • the Pillar method itself cannot perform encryption when the plain text is negative. Therefore, when applied to the present invention, the following processing is performed. That is, the numerical value range 0 to n that can be handled by the Pailler cipher is divided into two, and 0 to n / 2 are set as positive values corresponding to 0 to n / 2 as they are, and n / 2 + 1 to n are set to ⁇ 1 to ⁇ n / Read as a negative value corresponding to 2. Such a technique is a conventional means for handling negative signs.
  • the present invention is not limited to compounds, and the present invention is applied to a database in which the presence or absence of the structure or property of an object is expressed by binary data. Can do.
  • the present invention can be used to determine how many similar gene sequences are present. When throwing personal genetic information as a query, it is necessary to conceal the genetic information from the viewpoint of protecting the personal information. In such a case, the present invention is useful.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Medical Informatics (AREA)
  • Biotechnology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biophysics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Genetics & Genomics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

 検索システムは化合物データを記憶した管理装置と検索者装置とを有する。管理装置は、検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、データベースに記憶された物の数列データpi(i=1,2、・・・m:mは数列データの数)との類似度をTversky係数Siが閾値θn/θd(ただし、θn,θdはθn≦θdを満たす自然数)以上となるときに非負の値をとるスコアTを規定し、クエリー数列qを暗号化された状態でスコアTの暗号値を計算して検索者装置に返すことにより、秘匿状態を保ったままデータベースに類似した化合物が存在するか否かの情報を開示する。これにより、データベースの保持者およびデータベースの利用者の双方が、お互いに自らの情報を秘匿した状態で、検索条件に類似するデータがデータベースに含まれているかどうかを調べることができる。

Description

検索システム、検索方法、およびプログラム
 本発明は、検索条件およびデータベースの秘匿性を保持しつつ、データベース内に類似するデータがあるか調べる検索システムおよび検索方法に関する。
 今日における創薬は、ターゲット探索、ヒット化合物探索、リード化合物探索、薬候補の合成を経て、前臨床試験の医薬品開発プロセスに進む。ターゲット探索では、配列情報解析(データベースリサーチ)やマイクロアレイでの遺伝子発現情報の解析等により、病気の原因遺伝子(タンパク質等)を特定する。ヒット化合物探索では、計算機上のDocking、MD(シミュレーション)により候補を絞り込んだり、類似タンパク質から構造予測や機能予測を行ったりすることで、原因遺伝子に効きそうな化合物を探索する。リード化合物探索では、ヒット化合物の類似化合物を探して、より効果のあるリード化合物を探索する。薬候補の合成では、リード化合物の周辺で検証実験を行う。
 リード化合物を探索する際には、既知の化合物データベースから、ヒット化合物に類似する化合物を検索する必要がある。既知の化合物データベースの保有者としては、国立生物工学情報センター(NCBI)のような公的機関や、化合物を合成・販売するサプライヤー企業がある。
 さて、創薬においては、研究者は、自身が発見したヒット化合物のデータを外部に公開することを望まないという現状がある。特に、企業においては、このような傾向は顕著である。研究者は、公共の化合物データベースを検索する場合には、データをすべて自社のコンピュータにダウンロードする。しかし、有機化合物の探索空間は、10の60乗もの大きさがあるため、将来的にはデータ量が増大し、すべてのデータをダウンロードし、保持することが困難になる可能性がある。また、企業の化合物データベースを探索する場合には、秘密保持契約を締結した上で、データを購入することになる。しかし、購入したデータベースにヒット化合物に類似する化合物が含まれているかどうかをあらかじめ知ることはできないため、無駄な投資になるおそれがある。
 一方、化合物データベースを提供する企業においては、秘匿性の低いデータベースは無償で公開するが、秘匿性の高いいわゆるFocused Libraryは、販売するという形態をとっている。Focused Libraryは、企業がコストをかけて、特にヒットが出やすいと見込まれる有用な化合物を集めたデータベースである。一般的には、Focused Libraryは、特定の創薬ターゲット(例えば、GPCRやキナーゼ等)に対して効果が高いと考えられる化合物を集約している。しかし、Focused Libraryの情報を一切開示しないとすれば、無駄な投資をおそれる研究者はデータの購入に消極的となり、企業側は、ビジネスチャンスを喪失するおそれがある。
 したがって、研究者は自身が発見した化合物を、データベース提供者はデータベースの内容を秘匿したまま、研究者が持っている化合物に類似する化合物がデータベースに存在しているか否かを知ることができれば、お互いにとってメリットがある。
 秘匿性を保ったまま化合物どうしの類似度を求める方法は、これまでほとんど研究されていない。本発明者らの知る限りでは、過去の先行研究としては、化合物どうしの類似度(Tanimoto係数)をセキュアに計算する非特許文献1だけである。非特許文献1が提案する方法では、研究者とデータベース保持者が化合物を表現したベクトルの要素を暗号化して第三者に送り、第三者において両者が一致しているかを判断するという処理を繰り返し行う。
M D Singh et.al.「A privacy preserving Jaccard similarity function for mining encrypted data」IEEE TENCON 2009
 しかし、非特許文献1に記載された方法は、検索条件となるヒット化合物を有する研究者と、データベースの保持者の他に、秘密情報を開示してもよい第三者の存在が必要である。また、ベクトルの要素数分の通信が発生するため、実用性に乏しい。
 本発明は、上記背景に鑑み、データベースの保持者およびデータベースの利用者の双方が、お互いに自らの情報を秘匿した状態で、検索条件に類似するデータがデータベースに含まれているかどうかを調べることができる検索システム及び検索方法を提供する。
 本発明の検索システムは、物の部分構造または性質を表すデータを記憶したデータベースを有する管理装置と、前記データベースの検索条件の入力および検索結果の出力を行う検索者装置とを備えている。ここで、前記データは、予め定められた複数の部分構造または性質について物が前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データである。前記検索システムは、前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2、・・・m:mは数列データの数)とのTversky係数Si
Figure JPOXMLDOC01-appb-M000001
が閾値θn/θd(ただし、θn、θdはθn≦θdを満たす自然数)以上となる数列データpiが、前記データベースに含まれているかを調べるために以下のステップを実行する。
(1)前記検索者装置が、加法準同型性を有する暗号の公開鍵及び秘密鍵を生成する。
(2)前記検索者装置が、クエリー数列データqの入力を受け付ける。
(3)前記検索者装置が、前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|を求め、当該要素数|q|に負号を付した値を前記公開鍵で暗号化すると共に、前記クエリー数列データqの各要素qj(ただし、j=1,・・・n:nはクエリー数列qの長さ)の値を前記公開鍵で暗号化する。
(4)前記検索者装置が、前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を前記管理装置に対して出力する。
(5)前記管理装置が、前記検索者装置から出力された前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を受け取る。
(6)前記管理装置が、前記データベースから一の数列データpiを読み出す。
(7)前記管理装置が、前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化する。
(8)前記管理装置が、前記数列データpiの各要素pi,j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
(9)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(|pi∩q|)に対して、平文において(|pi∩q|)をγ(θd-θn)+θn(μa+μb)回加算する計算に対応する計算を行って、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb))を求める。
(10)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|)に対して平文において(-|q|)をμa回加算する計算に対応する計算を行って暗号値Enc(μa(-|q|))を求めるとともに、前記暗号値Enc(-|pi|)に対して平文において(-|pi|)をμb回加算する計算に対応する計算を行って暗号値Enc(μb(-|pi|))を求め、前記暗号値Enc(μa(-|q|))と前記暗号値Enc(μb(-|pi|))に対して平文におけるμa(-|q|)+μb(-|pi|)に対応する計算を行って暗号値Enc(μa(-|q|)+μb(-|pi|))を求め、さらに、暗号値Enc(μa(-|q|)+μb(-|pi|))に対して平文においてμa(-|q|)+μb(-|pi|)をθn回加算する計算に対応する計算を行って、暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))を求める。
(11)前記管理装置が、暗号の加法準同型性を利用して、上記(9)で求めた暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)})と、上記(10)で求めた暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))に対して、平文における(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))に対応する計算を行い、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))})をスコアTiの暗号値として求める。
(12)前記管理装置が、前記データベースに含まれる複数の数列データpiのそれぞれについて、上記(6)から(11)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
(13)前記管理装置が、前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する。
(14)前記検索者装置が、前記管理装置から出力された前記スコアT1,T2,・・・Tmの暗号値を受け取る。
(15)前記検索者装置が、前記スコアT1,T2,・・・Tmの暗号値を前記秘密鍵で復号する。
(16)前記検索者装置が、前記スコアT1,T2,・・・Tmの非負/負を判定する。
(17)前記検索者装置が、判定結果を出力する。
 本発明において、前記暗号は、確率暗号であってもよい。また、平文における加算に対応する計算は、暗号値における乗算であってもよい。これらの性質を有する暗号として、Paillier暗号を用いることができる。
 また、本発明は、ここで述べた加法準同型性を有する暗号を利用するほか、乗法準同型性および加法準同型性を有する暗号を利用することも可能である。
 本発明によれば、管理装置は、クエリー数列データqを暗号化した値を用いてTversky係数Siを判定するためのスコアTiを計算するので、クエリー数列データqの秘匿性を保つことができる。また、スコアTiは、データベースに記憶された物のデータが所定の閾値θn/θdより類似しているか否かを示すだけなので、データベースの内容が直接的に検索者に漏洩することがない。このようにクエリー数列データqおよびデータベースの秘匿性を保ちつつ、データベースにクエリーに類似する物のデータが含まれているか否かの情報を得ることが可能である。
フィンガープリントについて説明する図である。 2つのフィンガープリントを比較した例を示す図である。 Tversky係数Siを示す図である。 Tversky係数を説明するための図である。 加法準同型性について説明する図である。 Paillier暗号の加法準同型性について説明するための図である。 値A×Bの暗号値Enc(A×B)を暗号化された状態のまま計算する例を示す図である。 第1の実施の形態の検索システムの構成を示す図である。 管理装置および検索者装置のハードウェア構成を示す図である。 実施の形態の検索システムの動作を示すフローチャートである。 フィンガープリントの各要素を暗号化して暗号値を求める例を示す図である。 スコアTiの暗号値の計算の動作を示すフローチャートである。 エントリpiの各要素と、クエリーqの各要素の例を示す図である。 管理装置からみたエントリpiの各要素とクエリーqの各要素の例を示す図である。 クエリーqとエントリpiとに共通する要素数の暗号値を求めるアルゴリズムを示すフローチャートである。 暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)})を計算するアルゴリズムを示すフローチャートである。 Enc(θn{μa(-|q|)+μb(-|pi|)})を計算するアルゴリズムを示すフローチャートである。 第2の実施の形態の検索システムの動作を示すフローチャートである。 暗号値Enc(Ti×ri+si)を計算するアルゴリズムを示すフローチャートである。 第3の実施の形態の検索システムの動作を示すフローチャートである。 ランダムシェアRiから、スコアTiの非負/負の情報を取得する動作を示すフローチャートである。 第4の実施の形態におけるスコア暗号値計算部の動作を示すフローチャートである。 第5の実施の形態の検索システムの構成を示す図である。
 以下、本発明の実施の形態の検索システムおよび検索方法について図面を参照しながら説明する。以下では、構造をフィンガープリントによって表現した化合物を例として説明するが、本発明は、化合物の検索に限らず、物の構造または性質を「1」「0」の数列データで表現できるデータ(例えば、遺伝子を記憶したデータベース)に対して適用することが可能である。
 検索システムの構成および動作の説明に先立って、フィンガープリントとTversky係数について説明する。
 (フィンガープリント)
 図1は、フィンガープリントの一例を示す図である。フィンガープリントは、化合物の表現方法の一つであり、化合物が所定の部分構造を有するか否かを「1」「0」を要素とする数列で表したものである。図1に示す例においては、先頭のビットから順に、「ピロール環」、「ベンゼン環」、「O」、「N」、「Nの二重結合」の有無を表している。要素の値が「0」の場合には該当の構造がないことを示し、値が「1」の場合には該当の構造があることを示す。化合物1は、2~4番目のビットに「1」が立っているので、「ベンゼン環」、「O」、「N」を含み、1,5番目のビットが「0」なので、「ピロール環」、「Nの二重結合」を含まない。
 このようなフィンガープリントによる表現方法としては、MDL MACCS key、Daylight Fingerprint、ECFP(Extended Connectivity FP)、FCFP(Functional Class FP)、ファルマコフォアキー等がある。図1では、MDL MACCS keyの例を示した。
 図1では、一例として5ビット分しかデータを示していないが、実際のフィンガープリントの長さはもっと長く、例えば、MDL MACCS keyでは、960ビットである。本発明は、いずれのフィンガープリントを用いた場合にも適用できる。
 (Tversky係数)
 図2Aに示すように、化合物A,Bのフィンガープリントを比較することにより、化合物A,Bに共通して含まれる部分構造と、化合物A,Bのそれぞれにのみ含まれる部分構造の数が分かる。これに基づいて、化合物A,Bの類似性を評価することができる。なお、化合物A,Bの両方に含まれていない部分構造は、考慮する必要がない。
 図2Bは、Tversky係数Sを示す図である。図2Cは、Tversky係数を説明するための図である。「a」は、化合物Aのもつ部分構造の集合であり、図2Cに示す左側の円に相当する。「b」は、化合物Aのもつ部分構造の集合であり、図2Cに示す右側の円に相当する。「c」は、化合物A,Bが共通してもつ部分構造の集合(論理積)であり、図2Cに示す両円の重なり部分に相当する。
 Tversky係数に含まれる「α」及び「β」は、0以上の値をとる係数である。係数α、βを適切に設定することにより、異なる観点から、化合物A,Bの類似度を測ることができる。α=1、β=1の場合には、S=c/(a+b-c)となる。これはTanimoto係数と呼ばれる係数であり、化合物A,Bが持つすべての部分構造のうち、共通している部分構造の割合を表す。α=1、β=0の場合には、S=c/aとなる。これは化合物Bが化合物Aを部分構造として含む割合を表す。α=1/2、β=1/2の場合には、S=c/{(a+b)/2}となり、化合物A,Bが共通してもつ部分構造の集合を化合物Aのもつ部分構造の数と化合物Bのもつ部分構造の数の平均で割った値となる。これは、Dice係数と呼ばれる。いずれの場合にも、係数Sが大きくなればなるほど、化合物Aと化合物Bが類似している割合が高いということになる。
 (本実施の形態の概要)
 本実施の形態の検索システムは、検索者装置にて入力された化合物のフィンガープリント(これを「クエリー」という)とのTversky係数が所定の閾値以上となる化合物、すなわち、クエリーに類似した化合物が、データベース内にどのくらいあるかを調べる。この際に、データベースを管理する管理装置に、クエリーを秘匿したまま検索を行う。これを実現するために、本実施の形態の検索システムでは、加法準同型性を有する確率暗号を用い、管理装置は、暗号値のまま演算を行う。ここで、加法準同型性について説明する。
 図3Aは、加法準同型性について説明する図である。なお、本明細書において「Enc( )」は、括弧内の値が暗号化された暗号値を示す。加法準同型性の暗号は、平文における加算に相当する計算を、暗号値を用いて行うことができる暗号である。すなわち、図3Aに示すように、値Aの暗号値Enc(A)と値Bの暗号値Enc(B)を演算することにより、暗号化された状態のまま、値A+Bの暗号値Enc(A+B)を計算することができる性質である。暗号値Enc(A)と暗号値Enc(B)に対して行う演算は、暗号の種類によって異なる。
 図3Bは、Paillier暗号の加法準同型性について説明するための図である。Paillier暗号では、図3Bに示すように、値A+Bを暗号化した暗号値Enc(A+B)は、暗号値Enc(A)と暗号値Enc(B)の乗算によって求めることができる。つまり、暗号化された値の乗算は、平文での加算に相当する。これを利用して、平文における整数倍の乗算も行える。
 図3Cは、値A×Bの暗号値Enc(A×B)を暗号化された状態のまま計算する例を示す図である。A×BはAをB回加算することと同じなので、暗号値で計算をする場合には、暗号値Enc(A)をB回乗算する(つまり、Enc(A)をB乗する)ことにより、暗号値Enc(A×B)を求めることができる。なお、暗号値Enc(B)をA回乗算してもよいことは言うまでもない。
 本実施の形態で扱うデータはバイナリデータなので、平文に対して一意の暗号文が生成されると、「1」に対する暗号値と「0」に対する暗号値の2種類の暗号値しか生成されないことになり、クエリーのフィンガープリントが露呈してしまうおそれがある。このような不都合を防止するため、確率暗号を用いる。確率暗号では、暗号化の手続きが確率的に行われるため、暗号文からは平文のいかなる部分情報も漏洩しない。一般的には、同一の平文から生成される暗号文は異なる。第1~第3の実施の形態では、加法準同型性を有する確率暗号として、Paillier暗号を用いる。
 本実施の形態では、検索者装置から送信された暗号文を暗号文のまま取り扱って計算処理を行うため、データベースの管理者に対してクエリーが露呈しない構成としているが、加法準同型性を有する暗号においては、平文の加算に相当する演算しか行うことができないため、分数形式のTversky係数Siを計算することはできない。そこで、本実施の形態では、Tversky係数が所定の閾値θn/θd以上であるときに非負(負ではない、すなわち、正または0)の値をとる、以下のスコアTを導入している。
Figure JPOXMLDOC01-appb-M000002
 なお、Pillier暗号では加法準同型性を有するが、暗号化した状態で減算を行うことはできないので、負の値を加算する形になるように(-|q|)、(-|pi|)を用いている。
 スコアTiは、Tversky係数と閾値θn/θdとの不等式を変形して得られる。
Figure JPOXMLDOC01-appb-M000003
 なお、Pillier暗号では小数を扱えないため、Tversky係数Siの係数α、βをμa/γ、μb/γとし、閾値をθn/θdで表す工夫をしている。
 (第1の実施の形態)
[検索システムの構成]
 図4は、第1の実施の形態の検索システムの構成を示す図である。検索システムは、化合物のフィンガープリントを記憶したデータベース12を有する管理装置10と、管理装置10に対してクエリーを送信してデータベース12の検索を依頼する検索者装置30とを有している。管理装置10と検索者装置30とは、インターネット等のネットワーク50によって接続されている。
 管理装置10は、化合物のデータベース12と、クエリー受信部16と、入力データチェック部18と、スコア暗号値計算部20と、送信順序入替部24と、結果送信部26とを有している。また、管理装置10は、Tversky係数で用いられる係数μa/γ、μb/γやTversky係数に基づく類似度の判定閾値θn/θdを記憶した設定値記憶部14と、設定値記憶部14に記憶された設定値を変更する設定値変更部22とを有している。また、管理装置10は、図4には図示していないが、クエリーqと化合物のデータpiとの類似度を計算する際に用いるCPUや記憶部を有している。データベースのハードウェア構成については、後述する(図5参照)。
 クエリー受信部16は、検索者装置30から送信されるクエリー(検索条件)を受信する機能を有する。クエリー受信部16は、受信したデータを記憶部に記憶する。クエリーには、化合物のフィンガープリントの各要素の値を暗号化した暗号値Enc(q1)、Enc(q2)、・・・Enc(qn)と、フィンガープリントに含まれる「1」の個数の暗号値Enc(-|q|)と、暗号化のための公開鍵が含まれる。なお、フィンガープリントの各値やフィンガープリントに含まれる「1」の個数は、いずれも暗号化されているので、管理装置10においてその内容を知ることはできない。
 入力データチェック部18は、クエリー受信部16にて受信したクエリーが適正であるか否かをチェックする機能を有する。例えば、フィンガープリントの各要素の値は「1」または「0」を暗号化したものであるところ、これ以外の数値の暗号値であれば、クエリーが適正ではないと判定し、後の処理を行わないようにできる。上述したとおり、管理装置10は、暗号値から平文の内容を一切知ることはできないが、このようなチェックは、例えば、ゼロ知識証明(Practical Private Computation and Zero-Knowledge Tools for Privacy-Preserving Distributed Data Mining SDM 2008: pp.265-276, Towards restricting plaintext space in public key encryption, in: Proceedings of IWSEC 2011, LNCS 7038, 2011, pp.193-209.)等の技術を用いて実施することができる。なお、入力データチェックの構成は必須ではなく、省略することも可能である。
 設定値記憶部14は、Tversky係数で用いられる係数μa/γ,μb/γと、Tverskyスコアの計算に用いる閾値θd/θnを記憶している。設定値記憶部14は、係数μa/γ,μb/γと閾値θd/θnを何パターンか記憶しておいてもよい。これにより、検索の種類(Tanimoto係数、部分構造検索、Dice係数等)に応じて係数μa/γ,μb/γを変えたり、求めたい類似の程度に応じて閾値θd/θnを変えることができる。
 スコア暗号値計算部20は、データベース12内の化合物のデータpi(i=1,2,・・・m:mはデータ数)とクエリーqとのTversky係数が所定の閾値θn/θd以上かそうでないかを示すスコアTiの暗号値を計算する機能を有する。検索者装置30では、スコアTiが非負の値であるときにはTversky係数が閾値以上、負の値であるときにはTversky係数が閾値より小さいと判定される。スコア暗号値計算部20は、データベース12内のそれぞれの化合物について、スコアT1,T2,・・・Tmの暗号値を計算する。スコア暗号値計算部20によるスコアTの暗号値の計算処理は、後述する。
 送信順序入替部24は、複数のスコアT1,T2,・・・Tmの暗号値の送信順序をランダムに入れ替える機能を有する。具体的には、スコアT1,T2,・・・Tmの暗号値を計算した順に記憶部に記憶しておき、送信順序入替部24が送信を行う際に、記憶部からランダムに読み出すことによって、送信順序を入れ替えることができる。
 スコア暗号値計算部20は、データベース12から化合物のデータを順番に読み出してスコアT1,T2,・・・Tmの暗号値の計算を行う。毎回、スコアT1,T2,・・・Tmの暗号値を計算した順に送信すると、検索者装置30の側でクエリーを適宜変えてスコアT1,T2,・・・Tmを得ることによって、データベース12に含まれる化合物を予測されないとも限らない。送信順序入替部24は、このような不都合を防止する。なお、この構成は、必須の構成ではなく、省略することも可能である。
 結果送信部26は、スコアT1,T2,・・・Tmの暗号値を検索者装置30に送信する機能を有する。
 次に、検索者装置30の構成について説明する。検索者装置30は、クエリー入力部32と、暗号鍵生成部34と、暗号化部36と、クエリー送信部38と、結果受信部40と、復号化部42と、判定部44と、表示部46と、記憶部48とを有している。
 クエリー入力部32は、類似する化合物を探したい化合物のフィンガープリントのデータqの入力を受け付ける機能を有する。クエリー入力部32は、化合物の構造式の入力を受け付け、構造式からフィンガープリントへの変換を行ってもよい。クエリー入力部32は、入力されたフィンガープリントのデータqを記憶部48に記憶する。また、クエリー入力部32は、フィンガープリントに含まれる値が「1」の要素数を求め、求めた要素数|q|も記憶部に記憶する。
 暗号鍵生成部34は、Paillier暗号により暗号化を行う公開鍵と、復号を行う秘密鍵を生成する機能を有する。暗号鍵生成部34は、生成した公開鍵及び秘密鍵を記憶部に記憶する。暗号鍵生成部34は、クエリーqごとに新しい公開鍵及び秘密鍵を生成してもよいし、複数のクエリーqに対して同じ公開鍵及び秘密鍵を用いてもよい。
 暗号化部36は、クエリーのフィンガープリントの各要素q1,q2,・・・qnの値と、値が「1」の要素数|q|を記憶部48から読み出し、フィンガープリントの各値q1,q2,・・・qnを暗号化すると共に、要素数|q|に負号を付けた値(-|q|)を暗号化する機能を有する。ここで、要素数|q|に対して負号を付しているのは、Paillier暗号は加法準同型性を有するが、減算に対応する暗号値の計算を扱えないため、予め負号を付しておくことにより、負の値の加算として扱えるようにするためである。暗号化部36は、フィンガープリントの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)と、値が「1」の要素数|q|の暗号値Enc(-|q|)をクエリー送信部38に入力する。
 クエリー送信部38は、フィンガープリントの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)と、要素数|q|の暗号値Enc(-|q|)と、公開鍵を管理装置10に送信する機能を有する。
 結果受信部40は、管理装置10から送信されたスコアT1,T2,・・・Tmの暗号値を受信する機能を有する。結果受信部40は、受信したスコアT1,T2,・・・Tmの暗号値を記憶部48に記憶する。復号化部42は、秘密鍵を用いて、結果受信部40にて受信したスコアT1,T2,・・・Tmの暗号値を復号する機能を有する。復号化部42は、復号により得られたスコアT1,T2,・・・Tmを判定部44に入力する。
 判定部44は、スコアT1,T2,・・・Tmが非負の値を有するか否かを判定する。スコアT1,T2,・・・Tmが非負の場合には、Tversky係数が所定の閾値θn/θd以上であることが分かる。非負の値を有するスコアTiの数を集計することにより、管理装置10のデータベース12に類似する化合物がいくつあるか知ることができる。
 表示部46は、判定部44による判定結果を表示する機能を有する。表示部46は、Tversky係数が閾値θn/θd以上の化合物が何個あったかを表示してもよいし、当該化合物があった割合を表示してもよい。
 図5は、管理装置10および検索者装置30のハードウェア構成を示す図である。管理装置10および検索者装置30はともに、CPU60、RAM62、ROM64、通信インターフェース68、ハードディスク70、操作部72、ディスプレイ74がデータバス76によって接続されたコンピュータによって構成される。管理装置10と検索者装置30とでは、ROM64に書き込まれているプログラム66の内容が異なっている。管理装置10のROM64に記憶されたプログラム66は管理装置10の機能を実現するためのプログラムであり、検索者装置30のROM64に記憶されたプログラム66は検索者装置30の機能を実現するためのプログラムである。このような各プログラム66は、本発明の範囲に含まれる。また、管理装置10は、ハードディスクに化合物のフィンガープリントのデータが記憶されている。
[検索システムの動作]
 図6は、本実施の形態の検索システムの動作を示すフローチャートである。まず、検索者装置30にて、クエリーの化合物のフィンガープリントのデータqを入力する(S10)。検索者装置30は、入力されたフィンガープリントのデータqを記憶部48に記憶する。次に、検索者装置30は、Pailler暗号の公開鍵、秘密鍵のセットを生成し、記憶部48に記憶する(S12)。
 検索者装置30は、記憶部48からクエリーのフィンガープリントのデータqを読み出し、読み出したフィンガープリントの各要素q1,q2,・・・qnの値を公開鍵で暗号化する(S14)。
 図7は、フィンガープリントの各要素を暗号化して暗号値を求める例を示す図である。検索者装置30は、各要素の値すなわち「1」または「0」を暗号化して暗号値Enc(q1),Enc(q2),・・・Enc(qn)を得る。本実施の形態で用いるPaillier暗号は確率暗号なので、同じ値を暗号化しても暗号値は同じにはならない。これにより、暗号値から平文の値を推測される不都合を防止できる。
 また、検索者装置30は、フィンガープリントに含まれる要素のうち値が「1」の要素数を求め、当該要素数|q|に負号を付した値を暗号化し、暗号値Enc(-|q|)を得る。検索者装置30は、公開鍵と、値が「1」の要素数|q|の暗号値Enc(-|q|)と、クエリーの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を、管理装置10に送信する(S16)。
 管理装置10は、検索者装置30から送信された公開鍵と、暗号値Enc(-|q|)と、クエリーの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を受信し(S18)、受信したデータを記憶部に記憶する。管理装置10は、受信したデータの正当性チェックを行う(S20)。クエリーの各要素の暗号値は「1」「0」のいずれかを暗号化したものであるが、「1」「0」のいずれでもないと判定された場合には、クエリーの数列データqが誤っているので、この時点で管理装置10は処理を中断し、検索者装置30にクエリーqの入力誤りがあることを知らせる。また、この構成により、クエリーqとして本来想定されている0や1以外の異常値を選ぶことで、管理装置10のデータベース12の情報をより多く引き出そうとする悪意の攻撃者(形式逸脱攻撃者)から、データベース12の情報を保護することも可能となる。
 続いて、管理装置10は、データベース12に記憶された化合物のフィンガープリントのデータ(個々のデータを「エントリ」という)piとクエリーqとに基づいて、スコアTiの暗号値を計算する(S22)。具体的な計算方法については、図8~図12を参照して説明する。
 図8は、スコアTiの暗号値の計算の動作を示すフローチャートである。管理装置10は、まず、データベース12から一つのエントリpiを読み出す(S40)。管理装置10は、読み出したエントリpiを記憶部に記憶する。
 管理装置10は、エントリpiに含まれる要素のうち値が「1」の要素数を数え、要素数|pi|に負号を付した値を公開鍵で暗号化して暗号値Enc(-|pi|)を得る(S42)。ここで、要素数|pi|に負号を付すのは、Pillier暗号が暗号値の状態で平文の減算を行えないためである。続いて、管理装置10は、クエリーqとデータベース12から読み出したエントリpiに共通する部分構造の数(|pi∩q|)を暗号値のまま計算する(S44)。
 図9Aは、エントリpiの各要素と、クエリーqの各要素の例を示す図である。クエリーqとエントリpiが共通して有する部分構造は、両方に「1」が立っている要素である。図9Aにおいて丸で囲んだように、両方に「1」が立っている要素の数を求めれば、共通する部分構造の数を求めることができる。
 図9Bに示すように、管理装置10は、エントリpiの各要素の値は把握しているが、クエリーqの各要素の値は暗号化されていて把握できない。しかし、エントリpiにおいて「1」が立っている要素pi,kに対応するクエリーqの要素qkの値を加算(暗号文においては乗算)していけば、エントリpiの値が「1」でクエリーqの値が「0」の要素はいくら足しても結果に影響を与えないから、クエリーqとエントリpiとが共通する要素数を求めることができる。
 図10は、クエリーqとデータベース12から読み出したエントリpiとに共通する部分構造の数の暗号値を求めるアルゴリズムを示すフローチャートである。まず、管理装置10は、変数I、カウンタjのそれぞれに「1」を設定することにより、変数を初期化する(S60)。変数Iは、共通する部分構造の要素数の暗号値が入る変数、変数jはカウンタである。なお、図10のフローを行う際には、変数I,カウンタjは、RAM62の一部に領域が割り当てられており、当該領域にデータを書き込むことにより、変数I,カウンタjの値を記憶している。上記した変数I、カウンタjの初期化は、割り当てられた所定の領域に「1」という値を書き込むことを意味する。なお、以下の説明においても、変数を初期化したり、変数の演算を行ったりする場合には、ROM64に記憶されたプログラム66に従って、CPU60、RAM62等のコンピュータのハードウェア資源を利用して演算を行う。
 エントリpiの1番目の要素pi,1の値が「1」であるか否かを判定する(S62)。「1」であった場合には(S62でYES)、対応するクエリーの要素の暗号値Enc(qj)を変数Iに掛け、求めた結果をIに代入する(S64)。具体的には、割り当てられた変数Iの領域に保存されたデータを読み出し、読み出したデータに暗号値Enc(qj)を乗じ、得られた結果を変数Iの領域に書き込む。
 次に、カウンタj=n(nはフィンガープリントの長さ)になったか否かを判定する(S66)。カウンタj=nでない場合には(S66でNO)、jをインクリメントして(S68)、エントリpiの次の要素pi,2が「1」であるか否かを判定し(S62)、上記した処理をカウンタjの値がnに等しくなるまで繰り返す。カウンタj=nの場合には(S66でYES)、計算結果Iをクエリーqとエントリpiに共通する要素数の暗号値Enc(|pi∩q|)とする(S70)。
 図8に戻る。管理装置10は、クエリーqとエントリpiとで共通する部分構造の要素数|pi∩q|に{γ(θd-θn)+θn(μa+μb)}を乗算した値の暗号値を求める。ここで、γ(θd-θn)+θn(μa+μb)はいずれも設定値であり、管理装置10にとって既知の自然数である。図3Cを用いて説明したとおり、平文で整数倍した値の暗号値は、暗号値を冪乗することによって得られる。ここでは、暗号値Enc(|pi∩q|)をγ(θd-θn)+θn(μa+μb)回乗算する。
 図11は、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)})を計算するアルゴリズムを示すフローチャートである。まず、管理装置10は、変数tmpX,jを暗号化する(S80)。変数tmpXは計算結果が入る変数、変数jはカウンタである。
 管理装置10は、変数tmpXに暗号値Enc(|pi∩q|)を乗算し、その結果を変数tmpXに代入する(S82)。管理装置10は、カウンタj=γ(θd-θn)+θn(μa+μb)であるか否かを判定し(S84)、カウンタj=γ(θd-θn)+θn(μa+μb)でない場合には(S84でNO)、カウンタjをインクリメントして(S86)、変数tmpXに暗号値Enc(|pi∩q|)を乗算し、その結果を変数tmpXに代入する処理を行う(S82)。カウンタj=γ(θd-θn)+θn(μa+μb)の場合には(S84でYES)、求めた計算結果tmpXを返す(S88)。
 図8に戻る。管理装置10は、Enc(θn{μa(-|q|)+μb(-|pi|)})を計算する。この計算には、クエリーqに含まれる値が「1」の要素数|q|の暗号値Enc(-|q|)と、エントリpiに含まれる値が「1」の要素数|pi|の暗号値Enc(-|pi|)を用いる。
 図12は、Enc(θn{μa(-|q|)+μb(-|pi|)})を計算するアルゴリズムを示すフローチャートである。まず、管理装置10は、変数tmpY,jのそれぞれに「1」を設定し、変数tmpY,jを初期化する(S90)。変数tmpYはEnc(μa(-|q|))の計算結果が入る変数、変数jはカウンタである。管理装置10は、tmpYに暗号値Enc(-|q|)を乗算し、その結果をtmpYに代入する(S92)。管理装置10は、カウンタj=μaであるか否かを判定し(S94)、カウンタj=μaでない場合には(S94でNO)、カウンタjをインクリメントして(S96)、変数tmpYに暗号値Enc(-|q|)を乗算し、その結果を変数tmpYに代入する処理を行う。カウンタj=μaの場合には(S94でYES)、暗号値Enc(μa(-|q|))の計算を終了し、暗号値Enc(μb(-|pi|))の計算処理に移る。
 ここでも、まず、管理装置10は、変数tmpZ,jのそれぞれに「1」を設定し、変数tmpZ,jを初期化する(S98)。変数tmpYは暗号値Enc(μb(-|pi|))の計算結果が入る変数、変数jはカウンタである。管理装置10は、tmpZに暗号値Enc(-|pi|)を乗算し、その結果をtmpZに代入する(S100)。管理装置10は、カウンタj=μbであるか否かを判定し(S102)、カウンタj=μbでない場合には(S102でNO)、カウンタjをインクリメントして(S104)、変数tmpZに暗号値Enc(-|pi|)を乗算し、その結果を変数tmpZに代入する処理を行う。カウンタj=μbの場合には(S102でYES)、暗号値Enc(μb(-|pi|))の計算処理を終了し、暗号値Enc(θn{μa(-|q|)+μb(-|pi|)})の計算処理に移る。
 暗号値Enc(θn{μa(-|q|)+μb(-|pi|)})は、図3Cで説明したとおり、暗号値Enc(μa(-|q|)+μb(-|pi|))のθn乗によって計算することができる。また、暗号値Enc(μa(-|q|)+μb(-|pi|))は、暗号値Enc(μa(-|q|))と暗号値Enc(μb(-|pi|))の乗算で計算できるから、tmpY×tmpZによって求められる。したがって、tmpY×tmpZをθn回乗算すれば、暗号値Enc(θn{μa(-|q|)+μb(-|pi|)})を求めることができる。
 管理装置10は、変数tmpW,jのそれぞれに「1」を設定し、変数tmpW,jを初期化する(S106)。変数tmpWは、Enc(θn{μa(-|q|)+μb(-|pi|)})の計算結果が入る変数、変数jはカウンタである。管理装置10は、tmpWにtmpY×tmpZを乗算し、その結果をtmpWに代入する(S108)。管理装置10は、カウンタj=θnであるか否かを判定し(S110)、カウンタj=θnでない場合には(S110でNO)、カウンタjをインクリメントして(S112)、変数tmpWにtmpY×tmpZを乗算し、その結果を変数tmpWに代入する処理を行う。カウンタj=θnの場合には(S110でYES)、Enc(θn{μa(-|q|)+μb(-|pi|)})の計算処理を終了し、tmpWの値を計算結果として返す(S114)。
 図8に戻る。次に、管理装置10は、ステップS46で求めたEnc(|pi∩q|×{γ(θd-θn)+θn(μa+μb)})とステップS48で求めた暗号値Enc(θn{μa(-|q|)+μb(-|pi|)})を乗算し、暗号値Enc(|pi∩q|×{γ(θd-θn)+θn(μa+μb)}+θn{μa(-|q|)+μb(-|pi|)})を求める。この値が、スコアTiの暗号値である。管理装置10は、求めたスコアTiの暗号値を記憶部に記憶する。
 管理装置10は、データベース12内の全エントリpiについてスコアTiの暗号値の計算を終了したか否かを判定する(S52)。全エントリpiについての計算が終了していない場合には(S52でNO)、管理装置10は、データベース12から次のエントリpiを読み出し、読み出したエントリpiとクエリーqとのスコアTiの暗号値を計算し、計算結果を記憶部に順番に記憶していく。全エントリpi(i=1,2,・・・m)についての計算が終了した場合には(S52でYES)、スコアTiの計算を終了する。以上、スコアTiの計算処理について詳しく説明した。
 図6に戻って、検索システムの動作について説明する。管理装置10は、データベース12内の各エントリpiについて求めたスコアT1,T2,・・・Tmの暗号値の順序を入れ替えた後(S24)、検索者装置30に対して送信する(S26)。具体的には、送信順序入替部24は、スコアTiの暗号値をランダムに記憶部から読み出し、読み出したデータを結果送信部26に入力することにより、送信順序を入れ替える。
 検索者装置30は、管理装置10から送信されたスコアT1,T2,・・・Tmの暗号値を受信すると(S28)、復号化部42は、記憶部48から秘密鍵を読み出し、秘密鍵を用いて、スコアT1,T2,・・・Tmの暗号値を復号化する(S30)。検索者装置30は、復号して求められた各スコアT1,T2,・・・Tmの非負/負を判定し、判定結果を表示する(S32)。スコアT1,T2,・・・Tmが非負であるときには、Tversky係数が所定の閾値θn/θd以上であることを意味する。したがって、スコアTiが非負の化合物が多く含まれている場合には、クエリーの化合物と類似する化合物が多く含まれたデータベース12であることが分かる。以上、第1の実施の形態の検索システムの構成および動作について説明した。
 第1の実施の形態の検索システムによれば、検索者装置30は、クエリーの化合物のフィンガープリントの暗号値を管理装置10に送信するので、管理装置10に対してクエリーの化合物の秘匿性を保ちつつ、データベース12に類似する化合物がどれだけ含まれているかを調べることができる。また、管理装置10にとっても、データベース12が記憶している化合物を開示せずに、類似化合物の情報を知らせることができるという効果がある。
(第2の実施の形態)
 次に、第2の実施の形態の検索システムについて説明する、第2の実施の形態の検索システムの基本的な構成は、第1の実施の形態と同じであるが、第2の実施の形態では、スコアTiを撹乱してスコアTiの絶対値が意味を持たないようにして、データベース12の秘匿性をさらに高めている。
 図13は、第2の実施の形態の検索システムの動作を示すフローチャートである。第2の実施の形態の検索システムの動作は、第1の実施の形態と基本的に同じであるが、ステップS50にて求めたスコアTiの暗号値Enc(Ti)に対し、乱数ri,si(ri>si)を用いて暗号値Enc(Ti×ri+si)を計算し、計算結果を新たなスコアTiとしている(S51)。
 図14は、暗号値Enc(Ti×ri+si)を計算するアルゴリズムを示すフローチャートである。管理装置10は、まず、変数t_res,jのそれぞれに「1」を代入して、変数t_res,jを初期化する(S120)。変数t-resはEnc(Ti×ri+si)の計算結果が入る変数、変数jはカウンタである。管理装置10は、t_resに暗号値Enc(Ti)を乗算し、その結果をt_resに代入する(S122)。
 管理装置10は、カウンタj=riであるか否かを判定し(S124)、カウンタj=rでない場合には(S124でNO)、カウンタjをインクリメントして(S126)、変数t_resに暗号値Enc(Ti)を乗算し、その結果を変数t_resに代入する処理を行う。カウンタj=riになった場合には(S124でYES)、管理装置10は、t_resに乱数siを公開鍵で暗号化して得られた暗号値Enc(si)を乗算し、その結果を変数t_resに代入する(S128)。管理装置10は、計算結果t_resを返す(S130)。
 以上、第2の実施の形態の検索システムについて、第1の実施の形態と相違する点について説明した。第2の実施の形態においては、スコアTiを乱数ri倍した後に乱数siを加えた値を新たなスコアTiとしている。したがって、類似の度合いとスコアTiとの間に相関関係がなくなり、スコアTiからデータベース12に記憶されたデータの傾向を推測することができなくなる。したがって、データベース12に記憶されたデータの秘匿性をいっそう高めることができる。
 なお、スコアTiは、非負のときにTversky係数が所定の閾値以上、負のときに所定の閾値より低いということを示すスコアであり、正負しか意味を持たない。したがって、ri倍しても正負は変わらないので、スコアTiの判断基準に何ら変更はない。
 ところで、スコアTiが0であることは、Tversky係数が閾値θn/θdに一致する化合物がデータベース12内に存在することを意味する。上記Tversky係数に一致する化合物が存在するという情報が漏れないようにするために乱数siを加えている。上記した乱数riを乗ずる撹乱では、スコアTiが0の場合には意味を持たないからである。これにより、Tversky係数が閾値θn/θdに一致する化合物のスコアTiは必ず正の値となる。なお、乱数siは、乱数riより小さい値なので、乱数siを加えることによって、スコアTiの正負が入れ替わることはない。なぜなら、負のスコアTiのうち絶対値が最小の「-1」を考えたとき、ri倍した値は-riであり、これに絶対値がriより小さい乱数siを加えても結果は負のままである。
(第3の実施の形態)
 次に、第3の実施の形態の検索システムについて説明する、第3の実施の形態の検索システムの基本的な構成は、第1の実施の形態と同じであるが、第3の実施の形態では、スコアTiを撹乱してランダムシェアRiを生成することにより、データベース12の秘匿性をさらに高めている。
 図15は、第3の実施の形態の検索システムの動作を示すフローチャートである。第3の実施の形態の検索システムの動作は、第1の実施の形態と基本的に同じであるが、ステップS50にて求めたスコアTiの暗号値Enc(Ti)に対し、乱数riを用いて暗号値Enc(Ti+ri)を計算し、計算結果をランダムシェアRiの暗号値としている(S51a)。ランダムシェアRiは、スコアTiに対して乱数riを加えているので、Tversky係数と閾値θn/θdとスコアTiの正負の一致が保証されていない。
 図16は、ランダムシェアRiから、スコアTiの非負/負の情報を取得する動作を示すフローチャートである。検索者装置30は、ランダムシェアRiを秘匿回路に送信し(S140)、秘匿回路はランダムシェアRiを受信する(S144)。ここで、「秘匿回路」は、計算内容を秘匿したまま計算を行える回路であり、Secure Function Evaluationにより設計される。
 管理装置10は、検索者装置30が送信したランダムシェアRiを生成する際に用いた乱数riを秘匿回路に送信し(S142)、秘匿回路は乱数riを受信する(S144)。秘匿回路は、ランダムシェアRiから乱数riを減算することによりスコアTiを求め(S146)、その非負/負を判定する(S148)。
 なお、ランダムシェアRiおよび乱数riの送信(S140~S144)や、ランダムシェアRiから乱数riの減算(S146)、非負/負の判定(S148)は、Secure Function Evaluationにより行われる。
 秘匿回路は、スコアTiの非負/負の判定結果を検索者装置30に送信し(S150)、検索者装置30は判定結果を受信する(S152)。検索者装置30は、全エントリについて計算を終了したか否かを判定し(S154)、全エントリについて計算が終了していない場合には(S154でNO)、次のランダムシェアRiについて上記と同じ処理を繰り返す。全エントリについて計算が終了した場合には(S154でYES)、検索者装置30は、判定結果を集計し(S156)、結果を表示する(S158)。
 以上、第3の実施の形態の検索システムについて、第1の実施の形態との相違を中心に説明した。第3の実施の形態においては、検索者装置30に対してスコアTiではなくランダムシェアRiを返し、検索者装置30はランダムシェアRiを秘匿回路に送信することによって、非負の判定結果のみを得る。類似の度合いとスコアTiとの間には相関関係がないので、ランダムシェアRiからデータベース12に記憶されたデータの傾向を推測することができない。したがって、データベース12に記憶されたデータの秘匿性をいっそう高めることができる。
(第4の実施の形態)
 次に、第4の実施の形態の検索システムについて説明する。第1~第3の実施の形態では、加法準同型性を有する暗号であるPillier暗号を用いる例について説明したが、第4の実施の形態では、加法準同型性に加え乗法準同型性を有する暗号を用いる。第4の実施の形態の検索システムの基本的な構成は、第1~第3の実施の形態と同じである(図4等参照)。第4の実施の形態では、用いる暗号の性質が異なるので、管理装置10におけるスコア暗号値計算部20の処理が第1~第3の実施の形態とは異なる。
 図17は、第4の実施の形態におけるスコア暗号値計算部20の動作を示すフローチャートである。クエリーqと読み出したエントリpiとが共通して有する部分構造の要素数を求めるステップ(S40~S44)までは、第1~第3の実施の形態と同じである。
 第4の実施の形態では、暗号は乗法準同型性を有しており、暗号値のままで、平文の乗算を行うことができるので、スコアTiとして、以下の式を用いる。
Figure JPOXMLDOC01-appb-M000004
 第4の実施の形態では、スコア暗号値計算部20は、暗号値Enc(|pi∩q|×(1+θα+θβ-θ))を計算する(S160)。暗号は、乗法準同型性を有するので、平文における|pi∩q|×(1+θα+θβ-θ)の計算に対応する計算を行うことにより求めることができる。第1~第3の実施の形態のように、暗号値Enc(|pi∩q|)を(1+θα+θβ-θ)回乗ずるという処理は不要であり、しかも、(1+θα+θβ-θ)が自然数でなくとも計算が可能である。
 次に、スコア暗号値計算部20は、暗号値Enc(θα(-|q|)+θβ(-|pi|))を計算する(S162)。まず、暗号値Enc(-|q|)と、θαを公開鍵によって暗号化した暗号値Enc(θα)に対して、平文における(-|q|)×θαに対応する計算を行って、Enc(θα(-|q|))を求める。次に、暗号値Enc(-|pi|)と、θβを公開鍵によって暗号化した暗号値Enc(θβ)に対して、平文における(-|pi|)×θβに対応する計算を行って、Enc(θβ(-|pi|))を求める。続いて、暗号値Enc(θα(-|q|))と暗号値Enc(θβ(-|pi|))に対して、平文における(θα(-|q|))+(θβ(-|pi|))に対応する計算を行ってEnc(θα(-|q|)+(θβ(-|pi|))を求める。
 続いて、スコア暗号値計算部20は、スコアTiの暗号値Enc(|pi∩q|×(1+θα+θβ-θ)+θα(-|q|)+(θβ(-|pi|))を計算する(S164)。具体的には、暗号値Enc(|pi∩q|×(1+θα+θβ-θ))と暗号値Enc(θα(-|q|)+(θβ(-|pi|))に対して、平文における|pi∩q|×(1+θα+θβ-θ)+θα(-|q|)+(θβ(-|pi|))に対応する計算を行う。以上により、データベース12から読み出したエントリpiとクエリーqとのスコアTiを求める。
 スコア暗号値計算部20は、データベース12内の全エントリpiについて、スコアTiの計算が終了したか否かを判定し(S166)、全エントリPiについての計算が終了していない場合には(S166でNO)、未計算のエントリpiをデータベース12から読み出して、上記と同様の処理を行う。全エントリpiについての計算が終了した場合には(S166でYES)、処理を終了する。
 以上、第4の実施の形態の検索システムについて、第1~第3の実施の形態と相違する点を説明した。第4の実施の形態の検索システムでは、加法準同型性に加えて乗法準同型性を有する暗号を用いているので、スコアTiを簡易に計算することができる。
 なお、上記した実施の形態では暗号が小数を扱えることを前提として、係数α、βや閾値θをそのまま用いる例について説明したが、用いる暗号の性質として小数を扱えない場合には、第1~第3の実施の形態と同様に、係数α、βを係数μa/γ、μb/γとし、閾値θをθn/θdと置き換え、第1~第3の実施の形態と同様のスコアTiを求めればよい。
(第5の実施の形態)
 次に、第5の実施の形態の検索システムについて説明する。第5の実施の形態の検索システムは、管理装置10から検索者装置30に検索結果を送信する際に、データベース12内のエントリPのスコアT(i=1,2,・・・m)の暗号値に加えて、ダミーのスコアTd(i=1,2,・・・k)の暗号値を混在させたデータを送信し、管理装置10のデータベース12の情報遺漏のリスクをさらに低減させる。
 図18は、第5の実施の形態の検索システムの構成を示す図である。第5の実施の形態においては、管理装置10は、第1の実施の形態の検索システムの構成(図4参照)に加えて、ダミーデータを生成するダミーデータ生成部28を備えている。
 ダミーデータ生成部28は、所定の確率分布にしたがって、ダミーのスコアTdを生成する。ダミーデータ生成部28は、実際のスコアTのデータに近いデータを生成する。ダミーデータ生成部28は、生成したダミーのスコアTdを検索者装置30から送信された公開鍵を用いて暗号化し、ダミーのスコアTdの暗号値を生成する。また、ダミーデータ生成部28は、生成したダミーのスコアTdの中に、非負のダミースコアが何個含まれるか、負のダミースコアが何個含まれるかを求め、その値を結果送信部26に渡す。
 送信順序入替部24は、データベース12内のエントリPのスコアTの暗号値とダミーのスコアTdの暗号値の送信順序をランダムに並び替える(シャッフルする)。結果送信部26は、スコアTの暗号値とダミーのスコアTdの暗号値と共に、非負のダミースコアの個数、負のダミースコアの個数を検索者装置30に送信する。
 検索者装置30は、管理装置10から、ランダムな送信順序で送信されるスコアT1,T2,・・・Tmの暗号値とダミーのスコアTd1,Td2,・・・Tdkを受信すると、復号化部42は、記憶部48から秘密鍵を読み出し、秘密鍵を用いて、受信した暗号値を復号化する。送信順序がランダムであるため、検索者装置30は、どれがデータベース12内のエントリPに対応するスコアTiでどれがダミーのスコアTdiであるかは分からない。検索者装置30は、復号して求められた各スコアT1,T2,・・・Tm,Td1,Td2,・・・Tdkの非負/負を判定し、非負および負のスコアがいくつずつ含まれているかを求める。次に、検索者装置30は、求められた非負および負のスコアの個数から、管理装置10から送信された非負のダミースコアの個数と、負のダミースコアの個数を減算することによって、データベース12内に非負および負のTversky係数を有するエントリPがそれぞれいくつずつ含まれているかを求める。例えば、受信したスコアを復号化した結果から非負のスコアが20個、負のスコアが100個含まれていると求められ、非負のダミーのスコアが5個、負のダミーのスコアが10個であるとした場合、データベース12には、非負のスコアを有するエントリが15個、負のスコアを有するエントリが90個であると判定することができる。以上、第5の実施の形態の検索システムの構成および動作について説明した。
 第5の実施の形態の検索システムにおいては、どれがデータベース12内のエントリPに基づくスコアTであるかが、ダミーのスコアTdによって隠され、直ちにわからない状態となることから、検索者装置30に漏れる情報量が削減できる。さらに、ダミーのスコアTdの個数を大きくすることにより、検索者装置30に漏れる余分な情報量を限りなく0に近づけることができる。
 以上、本発明の検索システムおよび検索方法について実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。
 上記した実施の形態では、管理装置10と検索者装置30とがインターネット等のネットワーク50を介して接続されている例について説明したが、管理装置10と検索者装置30とを接続するネットワーク50は何でもよい。また、管理装置10と検索者装置30とは必ずしもネットワーク50で接続されている必要はなく、検索者装置30にて出力したクエリーデータqをCD-ROM等の記録媒体に記録して、管理装置10の運用者に郵送し、運用者が管理装置10にCD-ROMを読み取らせてもよい。
 上記した実施の形態では、加法準同型性および確率暗号という特性を有する暗号方式としてPaillier暗号を用いる例について説明したが、暗号化方式は、加法準同型性および確率暗号という特性を満たせば、何であってもよい。
 なお、Paillier方式について補足すると、Paillier方式自体は、平文が負の場合に暗号化を行うことができないので、本発明に適用する際には、以下のような処理を行う。すなわち、Paillier暗号が扱える数値範囲0からnを2分割し、0からn/2までをそのまま0からn/2に対応する正の値とし、n/2+1からnまでを-1~-n/2に対応する負の値に読み替える。このような手法は、負号を扱えるようにするための常套手段である。
 上記した実施の形態では、類似する化合物がどれだけあるかを調べる例を挙げたが、化合物に限らず、本発明は、物の構造または性質の有無をバイナリデータで表現したデータベースに適用することができる。例えば、類似する遺伝子配列がどれだけあるかを調べるために、本発明を用いることが可能である。クエリーとして、個人の遺伝子情報を投げる場合には、個人情報を保護する観点から遺伝子情報を秘匿する必要があるので、そのような場合に、本発明は有用である。
 本発明によれば、データベースおよびクエリーの秘匿性を保ちつつ、クエリーに類似したデータがどれだけ含まれるかを調べることができ、創薬における新規化合物の類似化合物の検索や、遺伝子情報の検索等に有用である。
10 管理装置
12 データベース
14 記憶部
16 クエリー受信部
18 入力データチェック部
20 スコア暗号値計算部
22 設定値変更部
24 送信順序入替部
26 結果送信部
28 ダミーデータ生成部
30 検索者装置
32 クエリー入力部
34 暗号鍵生成部
36 暗号化部
38 クエリー送信部
40 結果受信部
42 復号化部
44 判定部
46 表示部
48 記憶部
50 ネットワーク
60 CPU
62 RAM
64 ROM
66 プログラム
68 通信インターフェース
70 ハードディスク
72 操作部
74 ディスプレイ

Claims (19)

  1.  物の部分構造または性質を表すデータを記憶したデータベースを有する管理装置と、前記データベースの検索条件の入力および検索結果の出力を行う検索者装置とを備え、前記データは、予め定められた複数の部分構造または性質について物が前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データであり、
     前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000005
    が閾値θn/θd(ただし、θn、θdはθn≦θdを満たす自然数)以上の数列データpiが、前記データベースに含まれているかを調べる、以下のステップを有する検索方法。
    (1)前記検索者装置が、加法準同型性を有する暗号の公開鍵及び秘密鍵を生成する。
    (2)前記検索者装置が、クエリー数列データqの入力を受け付ける。
    (3)前記検索者装置が、前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|を求め、当該要素数|q|に負号を付した値を前記公開鍵で暗号化すると共に、前記クエリー数列データqの各要素qj(ただし、j=1,・・・n:nはクエリー数列qの長さ)の値を前記公開鍵で暗号化する。
    (4)前記検索者装置が、前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を前記管理装置に対して出力する。
    (5)前記管理装置が、前記検索者装置から出力された前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を受け取る。
    (6)前記管理装置が、前記データベースから一の数列データpiを読み出す。
    (7)前記管理装置が、前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化する。
    (8)前記管理装置が、前記数列データpiの各要素pi,j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (9)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(|pi∩q|)に対して、平文において(|pi∩q|)を{γ(θd-θn)+θn(μa+μb)}回加算する計算に対応する計算を行って、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb))を求める。
    (10)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|)に対して平文において(-|q|)をμa回加算する計算に対応する計算を行って暗号値Enc(μa(-|q|))を求めるとともに、前記暗号値Enc(-|pi|)に対して平文において(-|pi|)をμb回加算する計算に対応する計算を行って暗号値Enc(μb(-|pi|))を求め、前記暗号値Enc(μa(-|q|))と前記暗号値Enc(μb(-|pi|))に対して平文におけるμa(-|q|)+μb(-|pi|)に対応する計算を行って暗号値Enc(μa(-|q|)+μb(-|pi|))を求め、さらに、暗号値Enc(μa(-|q|)+μb(-|pi|))に対して平文において(μa(-|q|)+μb(-|pi|))をθn回加算する計算に対応する計算を行って、暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))を求める。
    (11)前記管理装置が、暗号の加法準同型性を利用して、上記(9)で求めた暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)}と、上記(10)で求めた暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))に対して、平文における(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))に対応する計算を行い、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))})をスコアTiの暗号値として求める。(12)前記管理装置が、前記データベースに含まれる複数の数列データpiのそれぞれについて、上記(6)から(11)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
    (13)前記管理装置が、前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する。
    (14)前記検索者装置が、前記管理装置から出力された前記スコアT1,T2,・・・Tmの暗号値を受け取る。
    (15)前記検索者装置が、前記スコアT1,T2,・・・Tmの暗号値を前記秘密鍵で復号する。
    (16)前記検索者装置が、前記スコアT1,T2,・・・Tmの非負/負を判定する。
    (17)前記検索者装置が、判定結果を出力する。
  2.  前記暗号は、確率暗号である請求項1に記載の検索方法。
  3.  平文における加算に対応する計算は、暗号値における乗算である請求項1または2に記載の検索方法。
  4.  前記管理装置は、暗号の加法準同型性を利用して、上記(11)で求めたスコアTiの暗号値に対して、平文において(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))をr回(rは乱数)加算する計算に対応する計算を行い、求められた暗号値Enc([(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))}]×r)をスコアTiの暗号値とするステップを有する請求項1~3のいずれかに記載の検索方法。
  5.  前記管理装置は、値(-si)(ただし、siはri>siを満たす自然数)を前記公開鍵によって暗号化して暗号値Enc(-si)を求め、暗号の加法準同型性を利用して、暗号値Enc(((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))})×ri)と前記暗号値Enc(-si)に対して平文における[(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))}]×ri+(-si)に対応する計算を行い、求めた暗号値Enc([(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))}]×ri)-si)をスコアTiの暗号値とするステップを有する請求項4に記載の検索方法。
  6.  前記管理装置は、乱数riを前記公開鍵で暗号化して暗号値Enc(ri)を求め、暗号の加法準同型性を利用して、上記(11)で求めたスコアTiの暗号値と前記暗号値Enc(ri)に対し、平文における(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))+riに対応する計算を行い、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))}+r)をランダムシェアRiの暗号値として求め、
     上記(16)の非負/負を判定するステップは、
    (16-1)前記検索者装置が、Secure Function Evaluationを利用して設計された秘匿回路に、前記ランダムシェアRiを送信し、
    (16-2)前記管理装置が、前記秘匿回路に乱数riを送信し、
    (16-3)前記秘匿回路が、前記ランダムシェアRiから乱数riを減算し、求められた値の非負/負を判定し、
    (16-4)前記秘匿回路が、前記検索者装置に非負/負の判定結果を送信する、請求項1~3のいずれかに記載の検索方法。
  7.  上記(13)において、前記管理装置が前記データベースに記憶されたデータの順序と異なる順序で、前記スコアT1,T2,・・・Tmの暗号値を出力する請求項1~6のいずれかに記載の検索方法。
  8.  前記検索者装置は、Tversky係数Siに含まれる係数μa/γ、μb/γないし値θn/θdのいずれかの入力を受け付けるステップと、入力された係数μa/γ、μb/γないし値θn/θdのいずれかを前記管理装置に対して出力するステップとを有する請求項1~7のいずれかに記載の検索方法。
  9.  前記管理装置が、ダミーのスコアTd1,Td2,…Tdkを生成し、生成したダミーのスコアTd1,Td2,…Tdkを、前記公開鍵によって暗号化するステップと、
     前記管理装置が、ダミーのスコアTd1,Td2,…Tdkの暗号値と前記スコアT1,T2,・・・Tmの暗号値の出力順序をランダムに並び替えるステップと、
     を備え、
     上記(13)において、前記管理装置が、ランダムに並び替えた暗号値と、ダミーのスコアに含まれる非負のダミーのスコアの個数と負のダミーのスコアの個数のデータとを前記検索者装置に送信する請求項1~3のいずれかに記載の検索方法。
  10.  前記管理装置が、前記検索者装置から送信された前記クエリー数列データqの各要素の暗号値Enc(q)が「1」または「0」を暗号化したものであるか否かを判定するステップを備え、前記クエリー数列データqに「1」または「0」を暗号化したものでない暗号値が含まれている場合には、以降の処理を行わないで検索を終了する請求項1~9のいずれかに記載の検索方法。
  11.  物の部分構造または性質を表すデータを記憶したデータベースを有する管理装置と、前記データベースの検索条件の入力および検索結果の出力を行う検索者装置とを備え、前記データは、予め定められた複数の部分構造または性質について物が前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データであり、
     前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000006
    が閾値θ(0<θ≦1)以上の数列データpiが前記データベースに含まれているかを調べる、以下のステップを有する検索方法。
    (1)前記検索者装置が、乗法準同型性および加法準同型性を有する暗号の公開鍵及び秘密鍵を生成する。
    (2)前記検索者装置が、クエリー数列データqの入力を受け付ける。
    (3)前記検索者装置が、前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|を求め、当該要素数|q|に負号を付した値を前記公開鍵で暗号化すると共に、前記クエリー数列データqの各要素qj(ただし、j=1,・・・n:nはクエリー数列qの長さ)の値を前記公開鍵で暗号化する。
    (4)前記検索者装置が、前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を前記管理装置に対して出力する。
    (5)前記管理装置が、前記検索者装置から出力された前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各値の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を受け取る。
    (6)前記管理装置が、前記データベースから一の数列データpiを読み出す。
    (7)前記管理装置が、前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化し、暗号値Enc(-|pi|)を得る。
    (8)前記管理装置が、前記数列データpiの各要素pi,j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (9)前記管理装置が、値(1+θα+θβ-θ)を前記公開鍵によって暗号化して暗号値Enc(1+θα+θβ-θ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(|pi∩q|)と前記暗号値Enc(1+θα+θβ-θ)に対して平文における(|pi∩q|)×(1+θα+θβ-θ)に対応する計算を行って暗号値Enc((|pi∩q|)×(1+θα+θβ-θ))を求める。
    (10)前記管理装置が、値θαおよび値θβを前記公開鍵で暗号化して暗号値Enc(θα)と暗号値(θβ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(-|q|)と前記暗号値Enc(θα)に対して平文における-|q|×θαに対応する計算を行って暗号値Enc(-|q|×θα)を求めると共に、前記暗号値Enc(-|pi|)と前記暗号値Enc(θβ)に対して平文における-|pi|×θβに対応する計算を行って暗号値Enc(-|pi|×θβ)を求め、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|×θα)と前記暗号値Enc(-|pi|×θβ)に対して平文における(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って暗号値Enc((-|q|×θα)+(-|pi|×θβ))を求める。
    (11)前記管理装置が、暗号の加法準同型性を利用して、上記(9)で求めた暗号値Enc(|pi∩q|)×(1+θα+θβ-θ))と、上記(10)で求めた暗号値Enc((-|q|×θα)+(-|pi|×θβ))に対して、平文における(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って、暗号値Enc(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ))をスコアTiの暗号値として求める。
    (12)前記管理装置が、前記データベースに含まれる複数の物の数列データpiのそれぞれについて、上記(6)から(11)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
    (13)前記管理装置が、前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する。
    (14)前記検索者装置が、前記管理装置から出力された前記スコアT1,T2,・・・Tmの暗号値を受け取る。
    (15)前記検索者装置が、前記スコアT1,T2,・・・Tmの暗号値を前記秘密鍵で復号する。
    (16)前記検索者装置が、前記スコアT1,T2,・・・Tmの非負/負を判定する。
    (17)前記検索者装置が、判定結果を出力する。
  12.  物の部分構造または性質を表すデータを記憶したデータベースを有する管理装置が、検索者装置にて入力された検索条件に基づいて検索を行う方法であって、前記データは、予め定められた複数の部分構造または性質について物が前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データであり、前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000007
    が閾値θn/θd(ただし、θn、θdはθn≦θdを満たす自然数)以上か否かを値の非負/負によって示したスコアTiの暗号値を前記検索者装置に返す、以下のステップを有する検索方法。
    (1)前記管理装置が、前記検索者装置にて生成された加法準同型性を有する暗号の公開鍵と、前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|に負号を付した値を前記公開鍵で暗号化した暗号値Enc(-|q|)と、前記クエリー数列データqの各要素を前記公開鍵で暗号化した暗号値Enc(q1),Enc(q2),・・・Enc(qn)とを受け取る。
    (2)前記管理装置が、前記データベースから一の数列データpiを読み出す。
    (3)前記管理装置が、前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化する。
    (4)前記管理装置が、前記数列データpiの各要素pi,j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (5)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(|pi∩q|)に対して、平文において(|pi∩q|)を{γ(θd-θn)+θn(μa+μb)}回加算する計算に対応する計算を行って、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb))を求める。
    (6)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|)に対して平文において(-|q|)をμa回加算する計算に対応する計算を行って暗号値Enc(μa(-|q|))を求めるとともに、前記暗号値Enc(-|pi|)に対して平文において(-|pi|)をμb回加算する計算に対応する計算を行って暗号値Enc(μb(-|pi|))を求め、前記暗号値Enc(μa(-|q|))と前記暗号値Enc(μb(-|pi|))に対して平文におけるμa(-|q|)+μb(-|pi|)に対応する計算を行って暗号値Enc(μa(-|q|)+μb(-|pi|))を求め、さらに、暗号値Enc(μa(-|q|)+μb(-|pi|))に対して平文において(μa(-|q|)+μb(-|pi|))をθn回加算する計算に対応する計算を行って、暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))を求める。
    (7)前記管理装置が、暗号の加法準同型性を利用して、上記(5)で求めた暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)}と、上記(6)で求めた暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))に対して、平文における(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))に対応する計算を行い、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))})をスコアTiの暗号値として求める。
    (8)前記管理装置が、前記データベースに含まれる複数の数列データpiのそれぞれについて、上記(2)から(7)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
    (9)前記管理装置が、前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する。
  13.  物の部分構造または性質を表すデータを記憶したデータベースを有する管理装置が、検索者装置にて入力された検索条件に基づいて検索を行う方法であって、前記データは、予め定められた複数の部分構造または性質について物が前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データであり、前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000008
    が閾値θ(0<θ≦1)以上か否かを値の非負/負によって示したスコアTiの暗号値を前記検索者装置に返す、以下のステップを有する検索方法。
    (1)前記管理装置が、前記検索者装置にて生成された乗法準同型性および加法準同型性を有する暗号の公開鍵と、前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|に負号を付した値を前記公開鍵で暗号化した暗号値Enc(-|q|)と、前記クエリー数列データqの各要素を前記公開鍵で暗号化した暗号値Enc(q1),Enc(q2),・・・Enc(qn)とを受け取る。
    (2)前記管理装置が、前記データベースから一の数列データpiを読み出す。
    (3)前記管理装置が、前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化し、暗号値Enc(-|pi|)を得る。
    (4)前記管理装置が、前記数列データpiの各要素pi,j(ただし、i=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (5)前記管理装置が、値(1+θα+θβ-θ)を前記公開鍵によって暗号化して暗号値Enc(1+θα+θβ-θ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(|pi∩q|)と前記暗号値Enc(1+θα+θβ-θ)に対して平文における(|pi∩q|)×(1+θα+θβ-θ)に対応する計算を行って暗号値Enc((|pi∩q|)×(1+θα+θβ-θ))を求める。
    (6)前記管理装置が、値θαおよび値θβを前記公開鍵で暗号化して暗号値Enc(θα)と暗号値(θβ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(-|q|)と前記暗号値Enc(θα)に対して平文における-|q|×θαに対応する計算を行って暗号値Enc(-|q|×θα)を求めると共に、前記暗号値Enc(-|pi|)と前記暗号値Enc(θβ)に対して平文における-|pi|×θβに対応する計算を行って暗号値Enc(-|pi|×θβ)を求め、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|×θα)と前記暗号値Enc(-|pi|×θβ)に対して平文における(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って暗号値Enc((-|q|×θα)+(-|pi|×θβ))を求める。
    (7)前記管理装置が、暗号の加法準同型性を利用して、上記(5)で求めた暗号値Enc(|pi∩q|)×(1+θα+θβ-θ))と、上記(6)で求めた暗号値Enc((-|q|×θα)+(-|pi|×θβ))に対して、平文における(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って、暗号値Enc(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ))をスコアTの暗号値として求める。
    (8)前記管理装置が、前記データベースに含まれる複数の物の数列データpiのそれぞれについて、上記(2)から(7)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
    (9)前記管理装置が、前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する。
  14.  物の部分構造または性質を表すデータを記憶したデータベースを有する管理装置にて実行され、検索者装置にて入力された検索条件に基づいて検索を行うプログラムであって、前記データは、予め定められた複数の部分構造または性質について物が前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データであり、前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000009
    が閾値θn/θd(ただし、θn、θdはθn≦θdを満たす自然数)以上か否かを値の非負/負によって示したスコアTiの暗号値を前記検索者装置に返す、以下のステップを前記管理装置に実行させるプログラム。
    (1)前記検索者装置にて生成された加法準同型性を有する暗号の公開鍵と、前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|に負号を付した値を前記公開鍵で暗号化した暗号値Enc(-|q|)と、前記クエリー数列データqの各要素を前記公開鍵で暗号化した暗号値Enc(q1),Enc(q2),・・・Enc(qn)とを受け取る。
    (2)前記データベースから一の数列データpiを読み出す。
    (3)前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化する。
    (4)前記数列データpiの各要素pi,j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (5)暗号の加法準同型性を利用して、前記暗号値Enc(|pi∩q|)に対して、平文において(|pi∩q|)を{γ(θd-θn)+θn(μa+μb)}回加算する計算に対応する計算を行って、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb))を求める。
    (6)暗号の加法準同型性を利用して、前記暗号値Enc(-|q|)に対して平文において(-|q|)をμa回加算する計算に対応する計算を行って暗号値Enc(μa(-|q|))を求めるとともに、前記暗号値Enc(-|pi|)に対して平文において(-|pi|)をμb回加算する計算に対応する計算を行って暗号値Enc(μb(-|pi|))を求め、前記暗号値Enc(μa(-|q|))と前記暗号値Enc(μb(-|pi|))に対して平文におけるμa(-|q|)+μb(-|pi|)に対応する計算を行って暗号値Enc(μa(-|q|)+μb(-|pi|))を求め、さらに、暗号値Enc(μa(-|q|)+μb(-|pi|))に対して平文において(μa(-|q|)+μb(-|pi|))をθn回加算する計算に対応する計算を行って、暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))を求める。
    (7)暗号の加法準同型性を利用して、上記(5)で求めた暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)}と、上記(6)で求めた暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))に対して、平文における(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))に対応する計算を行い、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))})をスコアTiの暗号値として求める。
    (8)前記データベースに含まれる複数の数列データpiのそれぞれについて、上記(2)から(7)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
    (9)前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する。
  15.  物の部分構造または性質を表すデータを記憶したデータベースを有する管理装置にて実行され、検索者装置にて入力された検索条件に基づいて検索を行うプログラムであって、前記データは、予め定められた複数の部分構造または性質について物が前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データであり、前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000010
    が閾値θ(0<θ≦1)以上か否かを値の非負/負によって示したスコアTの暗号値を前記検索者装置に返す、以下のステップを前記管理装置に実行させるプログラム。
    (1)前記検索者装置にて生成された乗法準同型性および加法準同型性を有する暗号の公開鍵と、前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|に負号を付した値を前記公開鍵で暗号化した暗号値Enc(-|q|)と、前記クエリー数列データqの各要素を前記公開鍵で暗号化した暗号値Enc(q1),Enc(q2),・・・Enc(qn)とを受け取る。
    (2)前記データベースから一の数列データpiを読み出す。
    (3)前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化し、暗号値Enc(-|pi|)を得る。
    (4)前記数列データpiの各要素pi,j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (5)値(1+θα+θβ-θ)を前記公開鍵によって暗号化して暗号値Enc(1+θα+θβ-θ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(|pi∩q|)と前記暗号値Enc(1+θα+θβ-θ)に対して平文における(|pi∩q|)×(1+θα+θβ-θ)に対応する計算を行って暗号値Enc((|pi∩q|)×(1+θα+θβ-θ))を求める。
    (6)値θαおよび値θβを前記公開鍵で暗号化して暗号値Enc(θα)と暗号値(θβ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(-|q|)と前記暗号値Enc(θα)に対して平文における-|q|×θαに対応する計算を行って暗号値Enc(-|q|×θα)を求めると共に、前記暗号値Enc(-|pi|)と前記暗号値Enc(θβ)に対して平文における-|pi|×θβに対応する計算を行って暗号値Enc(-|pi|×θβ)を求め、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|×θα)と前記暗号値Enc(-|pi|×θβ)に対して平文における(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って暗号値Enc((-|q|×θα)+(-|pi|×θβ))を求める。
    (7)暗号の加法準同型性を利用して、上記(5)で求めた暗号値Enc(|pi∩q|)×(1+θα+θβ-θ))と、上記(6)で求めた暗号値Enc((-|q|×θα)+(-|pi|×θβ))に対して、平文における(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って、暗号値Enc(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ))をスコアTiの暗号値として求める。
    (8)前記データベースに含まれる複数の物の数列データpiのそれぞれについて、上記(2)から(7)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
    (9)前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する。
  16.  物の部分構造または性質を表すデータを記憶したデータベースを有する管理装置と、前記データベースの検索条件の入力および検索結果の出力を行う検索者装置とを備え、前記データは、予め定められた複数の部分構造または性質について物が前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データであり、
     前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000011
    が閾値θn/θd(ただし、θn、θdはθn≦θdを満たす自然数)以上の数列データpiが、前記データベースに含まれているかを調べる検索システムであって、
     前記検索者装置は、
     加法準同型性を有する暗号の公開鍵及び秘密鍵を生成する手段と、
     クエリー数列データqの入力を受け付ける手段と、
     前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|を求め、当該要素数|q|に負号を付した値を前記公開鍵で暗号化すると共に、前記クエリー数列データqの各要素qj(ただし、j=1,・・・n:nはクエリー数列qの長さ)の値を前記公開鍵で暗号化する手段と、
     前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を前記管理装置に対して出力する手段と、
     前記管理装置から出力された前記スコアT1,T2,・・・Tmの暗号値を受け取る手段と、
     前記スコアT1,T2,・・・Tmの暗号値を前記秘密鍵で復号する手段と、
     前記スコアT1,T2,・・・Tmの非を判定する手段と、
     判定結果を出力する手段と、
     を備え、
     前記管理装置は、
     前記検索者装置から出力された前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を受け取る手段と、
     前記データベースから数列データpiを読み出す手段と、
     前記データベースに含まれる複数の物の数列データpiのそれぞれについて、スコアTiの暗号値を求める演算手段と、
     前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する手段と、
     を備え、
     前記演算手段は、以下の処理を行う検索システム。
    (1)前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化する。
    (2)前記数列データpiの各要素pi.j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (3)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(|pi∩q|)に対して、平文において(|pi∩q|)を{γ(θd-θn)+θn(μa+μb)}回加算する計算に対応する計算を行って、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb))を求める。
    (4)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|)に対して平文において(-|q|)をμa回加算する計算に対応する計算を行って暗号値Enc(μa(-|q|))を求めるとともに、前記暗号値Enc(-|pi|)に対して平文において(-|pi|)をμb回加算する計算に対応する計算を行って暗号値Enc(μb(-|pi|))を求め、前記暗号値Enc(μa(-|q|))と前記暗号値Enc(μb(-|pi|))に対して平文におけるμa(-|q|)+μb(-|pi|)に対応する計算を行って暗号値Enc(μa(-|q|)+μb(-|pi|))を求め、さらに、暗号値Enc(μa(-|q|)+μb(-|pi|))に対して平文において(μa(-|q|)+μb(-|pi|))をθn回加算する計算に対応する計算を行って、暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))を求める。
    (5)前記管理装置が、暗号の加法準同型性を利用して、上記(3)で求めた暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)}と、上記(4)で求めた暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))に対して、平文における(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))に対応する計算を行い、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))})をスコアTiの暗号値として求める。
    (6)前記管理装置が、前記データベースに含まれる複数の数列データpiのそれぞれについて、上記(1)から(5)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
  17.  物の部分構造または性質を表すデータを記憶したデータベースを有する管理装置と、前記データベースの検索条件の入力および検索結果の出力を行う検索者装置とを備え、前記データは、予め定められた複数の部分構造または性質について物が前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データであり、
     前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000012
    が閾値θ(0<θ≦1)以上の数列データpiが前記データベースに含まれているかを調べる検索システムであって、
     前記検索者装置は、
     乗法準同型性および加法準同型性を有する暗号の公開鍵及び秘密鍵を生成する手段と、
     クエリー数列データqの入力を受け付ける手段と、
     前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|を求め、当該要素数|q|に負号を付した値を前記公開鍵で暗号化すると共に、前記クエリー数列データqの各要素qj(ただし、j=1,・・・n:nはクエリー数列qの長さ)の値を前記公開鍵で暗号化する手段と、
     前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各要素の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を前記管理装置に対して出力する手段と、
     前記管理装置から出力された前記スコアT1,T2,・・・Tmの暗号値を受け取る手段と、
     前記スコアT1,T2,・・・Tmの暗号値を前記秘密鍵で復号する手段と、
     前記スコアT1,T2,・・・Tmの非負/負を判定する手段と、
     判定結果を出力する手段と、
     を備え、
     前記管理装置は、
     前記検索者装置から出力された前記公開鍵と前記暗号値Enc(-|q|)とクエリー数列データqの各値の暗号値Enc(q1),Enc(q2),・・・Enc(qn)を受け取る手段と、
     前記データベースから一の数列データpiを読み出す手段と、
     前記データベースに含まれる複数の物の数列データpiのそれぞれについて、スコアTiの暗号値を求める演算手段と、
     前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する手段と、
     を備え、
     前記演算手段は、以下の処理を行う検索システム。
    (1)前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化し、暗号値Enc(-|pi|)を得る。
    (2)前記管理装置が、前記数列データpiの各要素pi,j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (3)前記管理装置が、値(1+θα+θβ-θ)を前記公開鍵によって暗号化して暗号値Enc(1+θα+θβ-θ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(|pi∩q|)と前記暗号値Enc(1+θα+θβ-θ)に対して平文における(|pi∩q|)×(1+θα+θβ-θ)に対応する計算を行って暗号値Enc((|pi∩q|)×(1+θα+θβ-θ))を求める。
    (4)前記管理装置が、値θαおよび値θβを前記公開鍵で暗号化して暗号値Enc(θα)と暗号値(θβ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(-|q|)と前記暗号値Enc(θα)に対して平文における-|q|×θαに対応する計算を行って暗号値Enc(-|q|×θα)を求めると共に、前記暗号値Enc(-|pi|)と前記暗号値Enc(θβ)に対して平文における-|pi|×θβに対応する計算を行って暗号値Enc(-|pi|×θβ)を求め、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|×θα)と前記暗号値Enc(-|pi|×θβ)に対して平文における(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って暗号値Enc((-|q|×θα)+(-|pi|×θβ))を求める。
    (5)前記管理装置が、暗号の加法準同型性を利用して、上記(3)で求めた暗号値Enc(|pi∩q|)×(1+θα+θβ-θ))と、上記(4)で求めた暗号値Enc((-|q|×θα)+(-|pi|×θβ))に対して、平文における(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って、暗号値Enc(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ))をスコアTの暗号値として求める。
    (6)前記管理装置が、前記データベースに含まれる複数の物の数列データpiのそれぞれについて、上記(1)から(5)を繰り返し行い、各数列データpiに対するスコアTi(i=1,2,・・・m:mはスコアTの計算を行ったデータ数)の暗号値を求める。
  18.  物の部分構造または性質を表すデータとして、物が予め定められた前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データを記憶したデータベースを有し、前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000013
    が閾値θn/θd(ただし、θn、θdはθn≦θdを満たす自然数)以上か否かを値の非負/負によって示したスコアTの暗号値を前記検索者装置に返す管理装置であって、
     前記検索者装置にて生成された加法準同型性を有する暗号の公開鍵と、前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|に負号を付した値を前記公開鍵で暗号化した暗号値Enc(-|q|)と、前記クエリー数列データqの各要素を前記公開鍵で暗号化した暗号値Enc(q1),Enc(q2),・・・Enc(qn)とを受け取る手段と、
     前記データベースから一の数列データpiを読み出す手段と、
     前記データベースに含まれる複数の物の数列データpiのそれぞれについて、スコアTi(i=1,2,・・・m:mはスコアTの計算を行ったデータ数)の暗号値を求める演算手段と、
     前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する手段と、
     を備え、
     前記演算手段は、以下の処理を行う管理装置。
    (1)前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化する。
    (2)前記管理装置が、前記数列データpiの各要素pi,j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (3)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(|pi∩q|)に対して、平文において(|pi∩q|)を{γ(θd-θn)+θn(μa+μb)}回加算する計算に対応する計算を行って、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb))を求める。
    (4)前記管理装置が、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|)に対して平文において(-|q|)をμa回加算する計算に対応する計算を行って暗号値Enc(μa(-|q|))を求めるとともに、前記暗号値Enc(-|pi|)に対して平文において(-|pi|)をμb回加算する計算に対応する計算を行って暗号値Enc(μb(-|pi|))を求め、前記暗号値Enc(μa(-|q|))と前記暗号値Enc(μb(-|pi|))に対して平文におけるμa(-|q|)+μb(-|pi|)に対応する計算を行って暗号値Enc(μa(-|q|)+μb(-|pi|))を求め、さらに、暗号値Enc(μa(-|q|)+μb(-|pi|))に対して平文において(μa(-|q|)+μb(-|pi|))をθn回加算する計算に対応する計算を行って、暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))を求める。
    (5)前記管理装置が、暗号の加法準同型性を利用して、上記(3)で求めた暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)}と、上記(4)で求めた暗号値Enc(θn(μa(-|q|)+μb(-|pi|)))に対して、平文における(|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))に対応する計算を行い、暗号値Enc((|pi∩q|)×{γ(θd-θn)+θn(μa+μb)+θn(μa(-|q|)+μb(-|pi|))})をスコアTiの暗号値として求める。
    (6)前記管理装置が、前記データベースに含まれる複数の数列データpiのそれぞれについて、上記(1)から(5)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
  19.  物の部分構造または性質を表すデータとして、物が予め定められた前記部分構造または性質を有する場合に「1」、有しない場合に「0」を設定した数列データを記憶したデータベースを有し、前記検索者装置にて検索条件として入力された物の部分構造または性質を表すクエリー数列データqと、前記データベースに記憶された物の数列データpi(i=1,2,・・・m:mは数列データの数)とのTversky係数Si
    Figure JPOXMLDOC01-appb-M000014
    が閾値θ(0<θ≦1)以上か否かを値の非負/負によって示したスコアTiの暗号値を前記検索者装置に返す管理装置であって、
     前記検索者装置にて生成された乗法準同型性および加法準同型性を有する暗号の公開鍵と、前記クエリー数列データqを構成する要素のうちで値が「1」の要素数|q|に負号を付した値を前記公開鍵で暗号化した暗号値Enc(-|q|)と、前記クエリー数列データqの各要素を前記公開鍵で暗号化した暗号値Enc(q1),Enc(q2),・・・Enc(qn)とを受け取る手段と、
     前記データベースから一の数列データpiを読み出す手段と、
     前記データベースに含まれる複数の物の数列データpiのそれぞれについて、スコアTiの暗号値を求める演算手段と、
     前記スコアT1,T2,・・・Tmの暗号値を検索者装置に対して出力する手段と、
     を備え、
     前記演算手段は、以下の処理を行う管理装置。
    (1)前記数列データpiを構成する要素のうちで値が「1」の要素数|pi|を求め、当該要素数|pi|に負号を付した値を前記公開鍵で暗号化し、暗号値Enc(-|pi|)を得る。
    (2)前記管理装置が、前記数列データpiの各要素pi,j(ただし、j=0,1,・・・n:nは数列データpiの長さ)を調べ、値が「1」を有する要素に対応するクエリー数列データqのすべての要素qk(kはpi,k=1を満たす)の平文における加算に対応する計算を、暗号の加法準同型性を利用して暗号値Enc(qk)に対して行い、クエリー数列データqと数列データpiにおいて値がともに「1」の要素数|pi∩q|の暗号値Enc(|pi∩q|)を求める。
    (3)前記管理装置が、値(1+θα+θβ-θ)を前記公開鍵によって暗号化して暗号値Enc(1+θα+θβ-θ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(|pi∩q|)と前記暗号値Enc(1+θα+θβ-θ)に対して平文における(|pi∩q|)×(1+θα+θβ-θ)に対応する計算を行って暗号値Enc((|pi∩q|)×(1+θα+θβ-θ))を求める。
    (4)前記管理装置が、値θαおよび値θβを前記公開鍵で暗号化して暗号値Enc(θα)と暗号値(θβ)を求め、暗号の乗法準同型性を利用して、前記暗号値Enc(-|q|)と前記暗号値Enc(θα)に対して平文における-|q|×θαに対応する計算を行って暗号値Enc(-|q|×θα)を求めると共に、前記暗号値Enc(-|pi|)と前記暗号値Enc(θβ)に対して平文における-|pi|×θβに対応する計算を行って暗号値Enc(-|pi|×θβ)を求め、暗号の加法準同型性を利用して、前記暗号値Enc(-|q|×θα)と前記暗号値Enc(-|pi|×θβ)に対して平文における(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って暗号値Enc((-|q|×θα)+(-|pi|×θβ))を求める。
    (5)前記管理装置が、暗号の加法準同型性を利用して、上記(3)で求めた暗号値Enc(|pi∩q|)×(1+θα+θβ-θ))と、上記(4)で求めた暗号値Enc((-|q|×θα)+(-|pi|×θβ))に対して、平文における(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ)に対応する計算を行って、暗号値Enc(|pi∩q|)×(1+θα+θβ-θ)+(-|q|×θα)+(-|pi|×θβ))をスコアTiの暗号値として求める。
    (6)前記管理装置が、前記データベースに含まれる複数の物の数列データpiのそれぞれについて、上記(1)から(5)を繰り返し行い、各数列データpiに対するスコアTiの暗号値を求める。
PCT/JP2012/005885 2011-09-14 2012-09-14 検索システム、検索方法、およびプログラム WO2013038698A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/344,453 US9215068B2 (en) 2011-09-14 2012-09-14 Search system, search method, and program
JP2013533524A JP5975490B2 (ja) 2011-09-14 2012-09-14 検索システム、検索方法、およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011200826 2011-09-14
JP2011-200826 2011-09-14

Publications (1)

Publication Number Publication Date
WO2013038698A1 true WO2013038698A1 (ja) 2013-03-21

Family

ID=47882947

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/005885 WO2013038698A1 (ja) 2011-09-14 2012-09-14 検索システム、検索方法、およびプログラム

Country Status (3)

Country Link
US (1) US9215068B2 (ja)
JP (1) JP5975490B2 (ja)
WO (1) WO2013038698A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015108682A (ja) * 2013-12-03 2015-06-11 富士通株式会社 秘匿比較方法、プログラム、およびシステム
WO2016129390A1 (ja) * 2015-02-10 2016-08-18 株式会社RNAi 端末装置、データベースサーバおよび計算システム
WO2016203555A1 (ja) * 2015-06-16 2016-12-22 株式会社日立製作所 類似性秘匿検索システム、類似性秘匿検索方法
JP2016224905A (ja) * 2015-05-29 2016-12-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 類似情報検索方法、サーバ装置及び類似情報検索システム
CN110569420A (zh) * 2019-08-22 2019-12-13 上海摩库数据技术有限公司 一种基于化工行业的搜索方法
US10673614B2 (en) 2015-10-09 2020-06-02 Mitsubishi Electric Corporation Secret search system, management device, secret search method and computer readable medium
JP2021108108A (ja) * 2019-12-27 2021-07-29 株式会社日立ハイテクソリューションズ 生物活性を持つ化合物の探索システム
WO2021229973A1 (ja) * 2020-05-14 2021-11-18 コニカミノルタ株式会社 情報処理装置、プログラム及び情報処理方法
WO2023008045A1 (ja) * 2021-07-29 2023-02-02 株式会社日立製作所 情報処理システム及び情報処理方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10341103B2 (en) * 2015-01-29 2019-07-02 Entit Software Llc Data analytics on encrypted data elements
US10404669B2 (en) 2015-06-09 2019-09-03 Skyhigh Networks, Llc Wildcard search in encrypted text
US10176207B1 (en) 2015-06-09 2019-01-08 Skyhigh Networks, Llc Wildcard search in encrypted text
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
US9942032B1 (en) * 2015-09-30 2018-04-10 Symantec Corporation Systems and methods for securely detecting data similarities
CN106411955B (zh) * 2016-12-01 2019-07-23 微鲸科技有限公司 一种基于模m同余类环的账号生成方法
US20180212753A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-To-End Secure Operations Using a Query Vector
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US11290252B2 (en) 2017-01-20 2022-03-29 Enveil, Inc. Compression and homomorphic encryption in secure query and analytics
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
WO2018136801A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-to-end secure operations using a query matrix
JP6834771B2 (ja) * 2017-05-19 2021-02-24 富士通株式会社 通信装置および通信方法
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
WO2021021120A1 (en) * 2019-07-30 2021-02-04 Emd Millipore Corporation Method of synthesizing chemical compounds
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
US11799643B2 (en) * 2021-01-19 2023-10-24 Bank Of America Corporation Collaborative architecture for secure data sharing
EP4057287A1 (en) * 2021-03-12 2022-09-14 UVUE Limited System for processing molecular information and method of facilitating inter-party communication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010164835A (ja) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp 検索システム及び索引暗号化装置及び検索暗号化装置及び検索装置及びコンピュータプログラム及び検索方法
JP2011013672A (ja) * 2009-06-30 2011-01-20 Mitsubishi Electric Research Laboratories Inc 暗号化された信号に適用された関数の安全な評価のための方法
US20110110525A1 (en) * 2009-11-10 2011-05-12 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006094017A2 (en) * 2005-03-01 2006-09-08 The Regents Of The University Of California Method for private keyword search on streaming data
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
US8862895B2 (en) * 2010-04-27 2014-10-14 Fuji Xerox Co., Ltd. Systems and methods for communication, storage, retrieval, and computation of simple statistics and logical operations on encrypted data
WO2012149395A1 (en) * 2011-04-29 2012-11-01 International Business Machines Corporation Fully homomorphic encryption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010164835A (ja) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp 検索システム及び索引暗号化装置及び検索暗号化装置及び検索装置及びコンピュータプログラム及び検索方法
JP2011013672A (ja) * 2009-06-30 2011-01-20 Mitsubishi Electric Research Laboratories Inc 暗号化された信号に適用された関数の安全な評価のための方法
US20110110525A1 (en) * 2009-11-10 2011-05-12 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GOETHALS, B. ET AL.: "On Private Scalar Product computetion for Privacy-Preserving Data Mining", LECTURE NOTES IN COMPUTER SCIENCE, vol. 3506, 2005, pages 104 - 120, XP019010724 *
SINGH M. D. ET AL.: "A Privacy Preserving Jaccard Similarity Function for Mining Encrypted Data", TENCON2009 - 2009 IEEE REGION 10 CONFERENCE, 2009, pages 1 - 4, XP031617330 *
WRIGHT, R. ET AL.: "Privacy-Preserving Bayesian Network Structure Computation on Distributed Heterogeneous Data, Proceedings of the 10th ACM SIGKDD international conference on Knowledge discovery and data mining, 2004.08, p.713-718, especially 3.", PRIVACY-PRESERVING DISTRIBUTED ALGORITHM FOR LEARNING BAYES NETWORK STRUCTURE *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015108682A (ja) * 2013-12-03 2015-06-11 富士通株式会社 秘匿比較方法、プログラム、およびシステム
WO2016129390A1 (ja) * 2015-02-10 2016-08-18 株式会社RNAi 端末装置、データベースサーバおよび計算システム
JPWO2016129390A1 (ja) * 2015-02-10 2017-11-09 株式会社RNAi 端末装置、データベースサーバおよび計算システム
US10594473B2 (en) 2015-02-10 2020-03-17 Kabushikikaisha Rnai Terminal device, database server, and calculation system
JP2016224905A (ja) * 2015-05-29 2016-12-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 類似情報検索方法、サーバ装置及び類似情報検索システム
WO2016203555A1 (ja) * 2015-06-16 2016-12-22 株式会社日立製作所 類似性秘匿検索システム、類似性秘匿検索方法
US10673614B2 (en) 2015-10-09 2020-06-02 Mitsubishi Electric Corporation Secret search system, management device, secret search method and computer readable medium
CN110569420A (zh) * 2019-08-22 2019-12-13 上海摩库数据技术有限公司 一种基于化工行业的搜索方法
JP2021108108A (ja) * 2019-12-27 2021-07-29 株式会社日立ハイテクソリューションズ 生物活性を持つ化合物の探索システム
JP7030171B2 (ja) 2019-12-27 2022-03-04 株式会社日立ハイテクソリューションズ 生物活性を持つ化合物の探索システム
WO2021229973A1 (ja) * 2020-05-14 2021-11-18 コニカミノルタ株式会社 情報処理装置、プログラム及び情報処理方法
WO2023008045A1 (ja) * 2021-07-29 2023-02-02 株式会社日立製作所 情報処理システム及び情報処理方法

Also Published As

Publication number Publication date
US20140355756A1 (en) 2014-12-04
JPWO2013038698A1 (ja) 2015-03-23
US9215068B2 (en) 2015-12-15
JP5975490B2 (ja) 2016-08-23

Similar Documents

Publication Publication Date Title
JP5975490B2 (ja) 検索システム、検索方法、およびプログラム
US20230385437A1 (en) System and method for fast and efficient searching of encrypted ciphertexts
Kim et al. Private genome analysis through homomorphic encryption
US9536047B2 (en) Privacy-enhancing technologies for medical tests using genomic data
Tang et al. Protecting genomic data analytics in the cloud: state of the art and opportunities
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
EP2895980B1 (en) Privacy-enhancing technologies for medical tests using genomic data
Sousa et al. Efficient and secure outsourcing of genomic data storage
CN113626484A (zh) 一种可灵活替换密文可搜索加密方法、系统及计算机设备
JP5762232B2 (ja) プライバシを保護したまま暗号化された要素の順序を選択するための方法およびシステム
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
CN111143865B (zh) 一种密文数据上标签自动生成的用户行为分析系统及方法
JP2017225116A (ja) データ再暗号化を介して機密データを保護するためのコンピュータ実施システムおよび方法
Gürsoy et al. Privacy-preserving genotype imputation with fully homomorphic encryption
US8862893B2 (en) Techniques for performing symmetric cryptography
Hidayat et al. Data encryption algorithm AES by using blockchain technology: a review
Behera et al. Preserving the Privacy of Medical Data using Homomorphic Encryption and Prediction of Heart Disease using K-Nearest Neighbor
Zhao et al. Secure genomic computation through site-wise encryption
Dugan et al. Privacy-preserving evaluation techniques and their application in genetic tests
Liu et al. ESMAC: Efficient and secure multi-owner access control with TEE in multi-level data processing
Gaikwad et al. Privacy preserving outsourced k nearest neighbors classification: comprehensive study
Choi et al. Privacy-preserving exploration of genetic cohorts with i2b2 at lausanne university hospital
Nugent Privacy-Preserving Credit Card Fraud Detection using Homomorphic Encryption
Divakar Allavarpu et al. Privacy‐preserving credit risk analysis based on homomorphic encryption aware logistic regression in the cloud
Ki et al. An Efficient Method for Securely Storing and Handling of Genomic Data

Legal Events

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

Ref document number: 12831702

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013533524

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14344453

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12831702

Country of ref document: EP

Kind code of ref document: A1