WO2019124134A1 - 検索装置、検索方法、プログラム、および記録媒体 - Google Patents

検索装置、検索方法、プログラム、および記録媒体 Download PDF

Info

Publication number
WO2019124134A1
WO2019124134A1 PCT/JP2018/045254 JP2018045254W WO2019124134A1 WO 2019124134 A1 WO2019124134 A1 WO 2019124134A1 JP 2018045254 W JP2018045254 W JP 2018045254W WO 2019124134 A1 WO2019124134 A1 WO 2019124134A1
Authority
WO
WIPO (PCT)
Prior art keywords
concealed
concealment
search
operation result
result
Prior art date
Application number
PCT/JP2018/045254
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 AU2018389418A priority Critical patent/AU2018389418B2/en
Priority to EP18892647.1A priority patent/EP3731215B1/en
Priority to JP2019560978A priority patent/JP6927332B2/ja
Priority to US16/954,247 priority patent/US11675847B2/en
Priority to CN201880081581.2A priority patent/CN111712868B/zh
Publication of WO2019124134A1 publication Critical patent/WO2019124134A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a secret calculation technique, and more particularly to a technique for performing search while concealing data.
  • Non-Patent Document 1 There is known a secret calculation technique for performing a match search while concealing a search word and a search target word group (see, for example, Non-Patent Document 1).
  • An object of the present invention is to perform matching search of a concealed database efficiently while concealing a search word including a wildcard character.
  • the concealing databases [x 1 ],..., [X m ] are stored in the storage unit.
  • the concealed search target word [x i ] included in the concealed databases [x 1 ],..., [X m ] includes t (i) characters x i, 1 ,..., X i, t (i)
  • the search target word x i (x i, 1 ,..., X i, t (i) ,..., X i, N ) is concealed.
  • the input unit receives an input of the concealed search word [k].
  • the operation result e i (e i, 1 , ..., e i, N) is concealed concealed operation result [e i Get].
  • matching search of a concealed database can be performed with a smaller amount of traffic than in the past.
  • FIG. 1 is a block diagram illustrating a search system of the embodiment.
  • FIG. 2 is a block diagram illustrating a search device of the embodiment.
  • FIG. 3 is a flowchart for explaining the search method of the first embodiment.
  • FIG. 4 is a conceptual diagram for explaining the search method of the first embodiment.
  • FIG. 5 is a conceptual diagram for explaining the search method of the first embodiment.
  • FIG. 6 is a conceptual diagram for explaining the search method of the first embodiment.
  • FIG. 7 is a conceptual diagram for explaining the search method of the first embodiment.
  • FIG. 8 is a conceptual diagram for explaining the search method of the first embodiment.
  • FIG. 9 is a conceptual diagram for explaining the search method of the first embodiment.
  • FIG. 10 is a flowchart for explaining the search method of the second embodiment.
  • FIG. 10 is a flowchart for explaining the search method of the second embodiment.
  • FIG. 11 is a conceptual diagram for explaining the search method of the second embodiment.
  • FIG. 12 is a conceptual diagram for explaining the search method of the second embodiment.
  • FIG. 13 is a conceptual diagram for explaining the search method of the second embodiment.
  • FIG. 14 is a flowchart for explaining the search method of the third embodiment.
  • FIG. 15 is a conceptual diagram for explaining the search method of the third embodiment.
  • FIG. 16 is a conceptual diagram for explaining the search method of the third embodiment.
  • FIG. 17 is a flowchart for explaining the search method of the fourth embodiment.
  • FIG. 18 is a conceptual diagram for explaining the search method of the fourth embodiment.
  • FIG. 19 is a conceptual diagram for explaining the search method of the fourth embodiment.
  • FIG. 20 is a flowchart for explaining the search method of the fifth embodiment.
  • FIG. 21 is a conceptual diagram for explaining the search method of the embodiment.
  • FIG. 22 is a conceptual diagram for explaining the search method of the fifth embodiment.
  • FIG. 23 is a conceptual diagram for explaining the search method of the fifth embodiment.
  • FIG. 24 is a conceptual diagram for explaining the search method of the fifth embodiment.
  • FIG. 25 is a flowchart for explaining the search method of the sixth embodiment.
  • FIG. 26 is a conceptual diagram for explaining the search method of the sixth embodiment.
  • FIG. 27 is a conceptual diagram for explaining the search method of the sixth embodiment.
  • FIG. 28 is a conceptual diagram for explaining the search method of the sixth embodiment.
  • the search system 1 of the present embodiment has a request device 11 for requesting a search, and a search device 12-h for performing a search, and performs search processing by secret calculation.
  • h 1,..., H
  • H is an integer of 1 or more.
  • H 1.
  • the search device 12-h of this embodiment includes a control unit 120-h, an equal sign determination unit 121-h, a wildcard determination unit 122-h, an OR operation unit 123-h, and a logic. It has a product calculation unit 127-h, a storage unit 128-h, an input unit 1291-h, and an output unit 1292-h.
  • the search device 12-h executes each process under the control of the control unit 120-h.
  • data obtained by each unit is stored in the storage unit 128-h one by one, read out as necessary, and used for other processing.
  • search target words x i (x i, 1 ,..., X i, t (t ) including t (i) characters x i, 1 ,..., X i, t (i) i) , ..., x i, N (for example, refer to DB in FIG. 4 and FIG. 6) concealed search concealed database [x 1 ], ..., [x m ] including concealed search target word [x i ] Is stored.
  • the t (i) characters x i, 1 ,..., X i, t (i) included in the search target word x i are normal characters to be searched.
  • Each character is represented by, for example, an element of a finite field.
  • the concealed search target word [x i ] is a secret sharing value of the search target word x i .
  • the concealed search target word [x i ] is a ciphertext of the search target word x i .
  • Letters x i, 1, ..., x i, t (i), ..., x i, concealment values obtained respectively by separate concealment of N [x i, 1], ..., [x i, t ( i) ], ..., [x i, N ] may be set as the concealment search target word [x i ], or N characters x i, 1 , ..., x i, t (i) , ..., It is good also as a concealment search object word [x i ] which summarized and concealed xi, N. Further, each concealed search target word [x i ] may be associated with a concealed value of content information indicating the position of the content or the content on the network.
  • the search processing of the present embodiment will be described using FIG.
  • n is a positive integer and n ⁇ N.
  • the characters k 1 ,..., K n may include one or more wildcard characters. Characters other than wildcards among the characters k 1 ,..., K n are normal characters. Wildcard characters are predetermined (e.g., "*") and are not used as normal characters. In addition, one wild character corresponds to one normal character or one null character (the same applies to the following embodiments).
  • the search target word x i is a null character x i, t (i) +1 , ..., if x i, including N, k t (i) +1 in the present embodiment, ..., k N is included wildcard character I will not do it.
  • the null characters included in the search word k are identical to the null characters included in the search target word x i described above. If secret calculation based on the secret sharing scheme is performed by the search device 12-h, the concealed search word [k] is the secret sharing value of the search word k. On the other hand, if secret calculation based on the homomorphic encryption scheme is performed by the search device 12-h, the concealed search word [k] is a ciphertext of the search word k.
  • a set of concealed values [k 1 ],..., [K n ],..., [K N ] obtained by concealing each of the characters k 1 , ..., k n , ..., k N separately is concealed and searched
  • the word [k] may be used, or the N characters k 1 ,..., K n ,..., K N may be collectively concealed to be the concealed search word [k].
  • the request device 11 outputs the concealed search word [k].
  • the output concealed search word [k] is sent to the search device 12-h via a network or the like.
  • e i ( e i, 1, ..., e i, N)
  • e i, j a 1
  • if x i, j is not k j (x i, j ⁇ k j And e i, j a 0 ).
  • the equal sign judging unit 121-h collects e i, 1 ,..., E i, N together by secret calculation using the concealed search target word [x i ] and the concealed search word [k]. You may obtain the concealment concealment calculation result [e i ].
  • the concealment calculation result [e i ] is stored in the storage unit 128-h (step S121-h).
  • the wildcard determination unit 122-h uses the concealed search word [k] and the concealed wildcard character obtained by concealing the wildcard character, and performs concealment calculation result [w] by secret calculation. obtain.
  • the concealment calculation result [w 1 ,..., W N are concealed collectively by secret calculation using the concealed search word [k] and the concealed wildcard character by the wildcard determination unit 122-h w] may be obtained.
  • the concealment calculation result [w] is stored in the storage unit 128-h (step S122-h).
  • represents a disjunction (OR).
  • the logical disjunction operation unit 123-h may be configured to secretize y i, 1 ,..., Y i, N together by secret calculation using the concealment operation result [e i ] and the concealment operation result [w].
  • the obtained concealment calculation result [y i ] may be obtained.
  • the concealment calculation result [y i ] is stored in the storage unit 128-h (step S123-h).
  • z i y i, 1 ⁇ ... Y i, N.
  • “ ⁇ ” represents a logical product (AND).
  • the concealment coincidence determination result [z i ] is stored in the storage unit 128-h (step S127-h).
  • the concealed coincidence determination result [z i ] is sent to the request device 11 via a network or the like.
  • the request device 11 restores z i from [z i ] sent from a predetermined number or more of search devices 12-h.
  • the sent [z i ] is decrypted to obtain z i .
  • search results for each i can be obtained. After that, processing using these search results (for example, a request for a concealment value of content information corresponding to the matched concealed search target word [x i ], etc.) is executed.
  • kr is a wildcard character “*”, 1 ⁇ r ⁇ n
  • 6 to 9 are examples of n ⁇ N and t (i) ⁇ N. As illustrated in FIG. 6, k n + 1 ,..., K N and x i, t (i) +1 ,..., X i, N are null characters.
  • a t (1) n
  • k r is a wildcard character "*”
  • 1 ⁇ r is ⁇ n
  • j 1 other than r, ..., x 1 for n
  • J k j
  • e 1 (1, 1, ..., 0, ..., 1, ..., 1)
  • w (0, 0, ..., 1, ..., 0, ..., 0)
  • 1 ⁇ r is ⁇ n
  • j 1 other than r, ...
  • t (3) n ⁇ 1
  • perfect concealment search of a concealed database can be performed while concealing a search word including a wildcard character.
  • matching search of the concealed database can be performed with a smaller amount of communication (for example, the amount of communication of O (N)) than in the past.
  • the characters x i, t (i) +1 ,..., X i, N of the search target word x i are null characters, and the characters k t (i) +1 ,..., K N of the search word k include wildcard characters If so, the method of the first embodiment may not be able to perform an exact match search correctly.
  • the characters x 3, n , ..., x i, N of the search target word x 3 are null characters
  • the characters k n of the search word k are wildcard characters. Wildcard characters must be determined to match any normal character, but wildcard characters must be determined not to match null characters.
  • the search system 2 of this embodiment has a request device 11 for requesting a search, and a search device 22-h for performing a search, and performs search processing by secret calculation.
  • h 1,..., H, and H is an integer of 1 or more.
  • the search device 22-h includes a control unit 120-h, an equal sign determination unit 121-h, a wildcard determination unit 122-h, a disjunction operation unit 223-h, and a null.
  • a determination unit 224-h, AND operation units 127-h and 226-h, a storage unit 128-h, an input unit 1291-h, and an output unit 1292-h are provided.
  • the search device 22-h executes each process under the control of the control unit 120-h.
  • data obtained by each unit is stored in the storage unit 128-h one by one, read out as necessary, and used for other processing.
  • the search processing of this embodiment will be described using FIG.
  • n is a positive integer and n ⁇ N.
  • the characters k 1 ,..., K n may include wildcard characters.
  • the search target word x i is a null character x i, t (i) +1 , ..., x i, if it contains N, k t (i) +1 , ..., k N Wild It may contain card characters.
  • the request device 11 outputs the concealed search word [k].
  • the output concealed search word [k] is sent to the search device 22-h via a network or the like.
  • the first concealment operation result [e i ] in which e i, 1 ,..., e i, N ) are concealed is obtained and output.
  • the concealment calculation result [e i ] is stored in the storage unit 128-h (step S121-h).
  • the concealment calculation result [w] is stored in the storage unit 128-h (step S122-h).
  • the null judgment unit 224-h uses the concealed search target word [x i ] and the concealed null character obtained by concealing the null character to calculate the concealment operation result [ ⁇ i ] by secret calculation. obtain.
  • the converted [ ⁇ i, j ] is obtained, and a set of [ ⁇ i, 1 ],..., [ ⁇ i, N ] is obtained as the concealment operation result [ ⁇ i ].
  • the secure computing the null decision unit 224-h was used and concealed searched word [x i] and concealment null character, ⁇ i, 1, ..., ⁇ i, concealment of N is collectively confidential
  • An operation result [ ⁇ i ] may be obtained.
  • the concealment calculation result [ ⁇ i ] is stored in the storage unit 128-h (step S224-h).
  • v i, j w j ⁇ i, j .
  • the logical product operation unit 226-h may be configured to secrete v i, 1 ,..., V i, N together by secret calculation using the concealment operation result [w] and the concealment operation result [ ⁇ i ].
  • the obtained concealment calculation result [v i ] may be obtained.
  • the concealment calculation result [v i ] is stored in the storage unit 128-h (step S226-h).
  • It is y i, j d 0 when both are satisfied.
  • y i, j e i, j ⁇ v i, j .
  • the disjunction operation unit 223-h may group y i, 1 ,..., Y i, N together by secret calculation using the concealment operation result [e i ] and the concealment operation result [v i ]. You may obtain the concealment concealment calculation result [y i ].
  • the concealment calculation result [y i ] is stored in the storage unit 128-h (step S223-h).
  • 11 to 13 show examples of n ⁇ N and t (i) ⁇ N.
  • k n is a wildcard character “*”
  • k n + 1 ,..., K N and x i, t (i) +1 ,..., X i, N are null characters.
  • the characters x i, t (i) +1 ,..., X i, N of the search target word x i are null characters
  • the characters k t (i) +1 , of the search word k .., K N may include wildcard characters
  • exact matches search of the concealed database can be performed while concealing the search word including the wildcard characters.
  • matching search of a concealed database can be performed with a smaller amount of traffic than in the past.
  • the third embodiment is a modification of the first embodiment.
  • forward concealment search of the concealed database is performed while concealing the search word including the wildcard character.
  • the search system 3 of this embodiment has a request device 11 for requesting a search, and a search device 32-h for performing a search, and performs a search process by secret calculation.
  • h 1,..., H
  • H is an integer of 1 or more.
  • H 1.
  • the search device 32-h includes a control unit 120-h, an equal sign determination unit 121-h, a wild card determination unit 122-h, an OR operation unit 323-h, and a null.
  • a determination unit 325-h, an AND operation unit 127-h, a storage unit 128-h, an input unit 1291-h, and an output unit 1292-h are provided.
  • the search device 32-h executes each process under the control of the control unit 120-h.
  • data obtained by each unit is stored in the storage unit 128-h one by one, read out as necessary, and used for other processing.
  • the search processing of the present embodiment will be described using FIG.
  • n is a positive integer and n ⁇ N.
  • the search target word x i is a null character x i, t (i) +1 , ..., if x i, including N, k t (i) +1 in the present embodiment, ..., k N is included wildcard character I will not do it.
  • the request device 11 outputs the concealed search word [k].
  • the output concealed search word [k] is sent to the search device 32-h via a network or the like.
  • e i ( e i, 1, ..., e i, N)
  • e i, j a 1
  • if x i, j is not k j (x i, j ⁇ k j And e i, j a 0 ).
  • the concealment calculation result [e i ] is stored in the storage unit 128-h (step S121-h).
  • the concealment calculation result [w] is stored in the storage unit 128-h (step S122-h).
  • a u j c 0 when k j is not null values.
  • the null judgment unit 325-h obtains the concealment calculation result [u] by secret calculation using the concealment search word [k] and the concealment null character obtained by concealing the null character.
  • the concealment calculation result [u] in which u 1 ,..., U N are concealed in a lump by secret calculation using the concealment search word [k] and the nullification search character by the null judgment unit 325-h You may get it.
  • the concealment calculation result [u] is stored in the storage unit 128-h (step S325-h).
  • the logical sum operation unit 323-h performs an operation according to secret calculation using the concealment operation result [e i ], the concealment operation result [w], and the concealment operation result [u] read from the storage unit 128-h.
  • the disjunction operation unit 323-h performs y i, 1 , ..., by secret calculation using the concealment operation result [e i ], the concealment operation result [w], and the concealment operation result [u]. You may obtain the concealment calculation result [y i ] in which y i, N were collectively concealed.
  • the concealment calculation result [y i ] is stored in the storage unit 128-h (step S323-h).
  • the fourth embodiment is a modification of the second and third embodiments.
  • forward concealment search of the concealed database is performed while concealing the search word including the wildcard character.
  • the characters x i, t (i) +1 ,..., X i, N of the search target word x i are null characters, and the characters k t (i) +1,. If k N may include wildcard characters, the method of the third embodiment may not be able to perform a forward search correctly. In the present embodiment, a method of correctly performing a forward match search in such a case will be described.
  • the search system 4 of the present embodiment has a request device 11 for requesting a search, and a search device 42-h for performing a search, and performs search processing by secret calculation.
  • h 1,..., H
  • H is an integer of 1 or more.
  • H 1.
  • the search device 42-h includes a control unit 120-h, an equal sign determination unit 121-h, a wild card determination unit 122-h, an OR operation unit 423-h, and a null.
  • the search device 32-h executes each process under the control of the control unit 120-h. In addition, data obtained by each unit is stored in the storage unit 128-h one by one, read out as necessary, and used for other processing.
  • the search processing of this embodiment will be described using FIG.
  • n is a positive integer and n ⁇ N.
  • the characters k 1 ,..., K n may include wildcard characters.
  • the search target word x i is a null character x i, t (i) +1 , ..., x i, if it contains N, k t (i) +1 , ..., k N Wild It may contain card characters.
  • the request device 11 outputs the concealed search word [k].
  • the output concealed search word [k] is sent to the search device 22-h via a network or the like.
  • e i ( e i, 1, ..., e i, N)
  • e i, j a 1
  • if x i, j is not k j (x i, j ⁇ k j And e i, j a 0 ).
  • the concealment calculation result [e i ] is stored in the storage unit 128-h (step S121-h).
  • the concealment calculation result [w] is stored in the storage unit 128-h (step S122-h).
  • the null judgment unit 325-h obtains the concealment calculation result [u] by secret calculation using the concealment search word [k] and the concealment null character obtained by concealing the null character.
  • the concealment calculation result [u] is stored in the storage unit 128-h (step S325-h).
  • the concealment calculation result [ ⁇ i ] is stored in the storage unit 128-h (step S224-h).
  • v i (v i, 1 ,..., V i, N ) are concealed and obtained and output as the concealment operation result [v i ].
  • v i, j ⁇ 1
  • the OR operation unit 423-h performs secret calculation using the concealment operation result [e i ], the concealment operation result [u], and the concealment operation result [v i ] read from the storage unit 128-h.
  • the disjunction operation unit 423-h performs secret calculation using the concealment operation result [e i ], the concealment operation result [v i ], and the concealment operation result [u] to obtain y i, 1 ,. , Y i, N may be collectively obtained to obtain the concealment calculation result [y i ].
  • the concealment calculation result [y i ] is stored in the storage unit 128-h (step S423-h).
  • 18 and 19 are examples of n ⁇ N and t (i) ⁇ N.
  • k n is the wildcard character “*”, and k n + 1 ,..., k N and x i, t (i) +1 ,..., x i, N are null characters.
  • the characters x i, t (i) +1 ,..., X i, N of the search target word x i are null characters
  • the characters k t (i) +1 , of the search word k .., K N can include wildcard characters, it is possible to perform a prefix match search of the concealed database while concealing the search word including the wildcard characters.
  • matching search of a concealed database can be performed with a smaller amount of traffic than in the past.
  • the fifth embodiment is a modification of the first and second embodiments.
  • it is premised that the lengths of the concealed search target word and the concealed search word are the same.
  • perfect match search can be performed regardless of whether the lengths of the concealed search target word and the concealed search word are the same as each other.
  • the search system 5 of this embodiment has a request device 11 for requesting a search, and a search device 52-h for performing a search, and performs search processing by secret calculation.
  • h 1,..., H
  • H is an integer of 1 or more.
  • H 1.
  • the search device 52-h includes a control unit 120-h, an equal sign determination unit 521-h, a wildcard determination unit 522-h, a logical sum operation unit 523-h, and a null.
  • the search device 52-h executes each process under the control of the control unit 120-h.
  • data obtained by each unit is stored in the storage unit 128-h one by one, read out as necessary, and used for other processing.
  • search target words x i (x i, 1 ,..., X i, t (t ) including t (i) characters x i, 1 ,..., X i, t (i) i) , ..., xi , N (i) (for example, refer to DB in FIG. 21) is a concealed database [x 1 ], ..., [x m ] including concealed search target word [x i ] concealed Is stored.
  • the t (i) characters x i, 1 ,..., X i, t (i) included in the search target word x i are normal characters to be searched.
  • the remaining N (i) -t (i) characters x i, t (i) +1 ,..., X i, N (i) included in the search target word x i are null characters.
  • Hidden values [x i, 1 ],..., [X i obtained by concealing each of the characters x i, 1 ,..., X i, t (i) ,..., X i, N (i) separately , T (i) ],..., [X i, N (i) ] may be set as the concealment search target word [x i ], or N (i) characters x i, 1 ,.
  • the i, t (i) ,..., x i, N (i) may be collectively concealed to be the concealed search target word [x i ]. Others are as described in the first embodiment.
  • the search processing of this embodiment will be described using FIG.
  • j 1,..., N, n is a positive integer, and n ⁇ N.
  • the characters k 1 ,..., K n may include wildcard characters.
  • the search target word x i is null character x i, t (i) +1 , ..., in the case where x i, contains N, k t (i) +1 , ..., k N is also contain a wildcard character Good.
  • n and N are positive integers, and n ⁇ N.
  • M min N (i)
  • M min min (N (i), N).
  • N max N (i)
  • N max N when N> N (i).
  • M max max (N (i), N). Due to the restriction of written description, N min may be written as “N min ” and N max may be written as “N max ”.
  • j ′ ′ is empty when M min + 1 ⁇ N
  • j ′ ′ (i) is empty when M min + 1 ⁇ N (i).
  • the concealed values [k 1 ],..., [K n ],..., [K N ] obtained by concealing the characters k 1 , ..., k n , ..., k N separately
  • the set may be the concealed search word [k], or the N characters k 1 ,..., K n ,..., K N may be collectively concealed to be the concealed search word [k].
  • the request device 11 outputs the concealed search word [k].
  • the output concealed search word [k] is sent to the search device 52-h via a network or the like.
  • the equal sign determination unit 521-h may calculate e i, 1 ,..., E i, N min collectively by secret calculation using the concealed search target word [x i ] and the concealed search word [k]. You may obtain the concealment concealment calculation result [e i ].
  • the concealment calculation result [e i ] is stored in the storage unit 128-h (step S521-h).
  • the concealment calculation result in which w 1 ,..., W Nmin are concealed together by the secret calculation using the concealed search word [k] and the concealed wildcard character the wildcard determination unit 122-h w] may be obtained.
  • the concealment calculation result [w] is stored in the storage unit 128-h (step S522-h).
  • the null judgment unit 525-h is a concealment calculation result u ′ Nmin + 1 ,..., U ′ N concealed by secret calculation using at least a part of the concealed search word [k] read from the storage unit 128-h. Obtain the quantization operation result [u '] and output it.
  • the null judgment unit 525-h uses at least a part of the concealed search word [k] and the concealed null character obtained by concealing the null character, and performs concealment calculation result [u ′] by secret calculation.
  • Are concealed [u ′ j ′ ′], and a set of [u ′ Mmin + 1 ],..., [U ′ N ] is obtained as the concealment operation result [u ′].
  • the concealment calculation result [u] in which u ′ Mmin + 1 ,..., U ′ N are concealed collectively by the secret calculation using the concealment search word [k] and the nullified null character by the null judgment unit 525-h. You may get '].
  • the concealment calculation result [u ′] is stored in the storage unit 128-h. (Step S525-h). Note that when M min +1 ⁇ N, the process of step S525-h is not performed.
  • the logical disjunction operation unit 523-h collects e ′ i, 1 ,..., E ′ i, N min by secret calculation using the concealment operation result [e i ] and the concealment operation result [w]. You may obtain the concealment operation result [e ' i ] concealed.
  • the concealment calculation result [e ′ i ] is stored in the storage unit 128-h (step S5231-h).
  • step S524-h When M min +1 minN (i), the process of step S524-h is not executed.
  • the connecting unit 528-h obtains and outputs the concealment calculation result [y i ] in which the calculation result y i is concealed by secret calculation using at least the concealment calculation result [e ′ i ].
  • the connecting unit 528-h outputs the concealment operation result [e ′ i ] as the concealment operation result [y i ].
  • [Y i ] may be a set of concealment results in which elements of y i are concealed respectively, or all of the elements of y i may be concealed together.
  • the concealment calculation result [y i ] is stored in the storage unit 128-h (step S528-h).
  • the logical product operation unit 527-h performs the secret determination using the concealment calculation result [y i ] read out from the storage unit 128-h, and the match determination result based on the secret calculation using the concealment calculation result [y i ].
  • the concealment coincidence judgment result [z i ] in which z i is concealed is obtained and output.
  • z i g 1
  • N ⁇ N (i) m
  • n, t (i), N, N (i) are positive integers
  • wildcard determination unit 522-h is a secret calculation using the concealed search word [k]
  • connection portion 528-h is concealed operation result [e' i] and concealment operation result [mu 'i]
  • the search word k may include a wildcard character
  • at least one of the search word k and the search target word x i may include a null character. It is possible to perform a perfect match search of a concealed database while concealing a search word including a wildcard character. Furthermore, in the present embodiment, perfect match search can be performed regardless of whether the lengths of the concealed search target word and the concealed search word are identical to each other. In addition, matching search of a concealed database can be performed with a smaller amount of traffic than in the past.
  • the sixth embodiment is a modification of the third and fourth embodiments.
  • the third and fourth embodiments it is premised that the lengths of the concealed search target word and the concealed search word are the same.
  • the forward match search can be performed regardless of whether the lengths of the concealed search target word and the concealed search word are the same.
  • the search system 6 of this embodiment has a request device 11 for requesting a search, and a search device 62-h for performing a search, and performs search processing by secret calculation.
  • h 1,..., H, and H is an integer of 1 or more.
  • H 1.
  • the search device 62-h includes a control unit 120-h, an equal sign determination unit 521-h, a wildcard determination unit 522-h, a logical sum operation unit 623-h, and a null.
  • a determination unit 625-h an AND operation unit 527-h, a connection unit 628-h, a storage unit 128-h, an input unit 1291-h, and an output unit 1292-h.
  • the search device 62-h executes each process under the control of the control unit 120-h.
  • data obtained by each unit is stored in the storage unit 128-h one by one, read out as necessary, and used for other processing.
  • the search processing of this embodiment will be described using FIG.
  • the request device 11 outputs the concealed search word [k].
  • the concealed search word [k] output is sent to the search device 62-h via a network or the like.
  • e i ( e i, 1, ..., e i, Nmin)
  • e i ( e i, 1, ..., e i, Nmin) outputs to obtain a concealed concealed operation result [e i].
  • j ' 1,..., N min
  • e i, j' a 1
  • if x i, j ' is not k j' , e i , J ' a 0 .
  • the concealment calculation result [e i ] is stored in the storage unit 128-h (step S521-h).
  • the concealment calculation result [w] is stored in the storage unit 128-h (step S522-h).
  • the null determination unit 625-h is configured to determine at least one of the concealed search word [k]
  • a concealment operation result [u ′ ′] is obtained by secret calculation using a part and a concealed null character obtained by concealing a null character.
  • N is collectively concealed concealed operation result [u "].
  • the concealment calculation result [u ”] is stored in the storage unit 128-h (step S6251-h).
  • the logical sum operation unit 623-h (first logical OR operation unit) performs secret calculation using at least a part of the concealment operation result [w] read out from the storage unit 128-h and the concealment operation result [u ”].
  • the operation result w ' (w' 1, ..., w and outputs to obtain a 'Nmin) is concealed concealed operation result [w'].
  • the logical disjunction operation unit 623-h may hide w ′ 1 ,..., W ′ Nmin collectively by secret calculation using the concealment operation result [w] and the concealment operation result [u ′ ′ ] .
  • the concealment calculation result [w '] may be obtained, and the concealment calculation result [w'] is stored in the storage unit 128-h (step S6231-h).
  • the disjunction operation unit 623-h (second disjunction operation unit) performs secret calculation using the concealment operation result [e i ] and concealment operation result [w ′] read from the storage unit 128-h.
  • the concealment operation result [e ' i ] obtained by concealing the operation result e' i (e ' i, 1 ,..., E' i, Nmin ) is obtained and output.
  • the logical disjunction operation unit 623-h performs e ′ i, 1 ,..., E ′ i, N min by secret calculation using the concealment operation result [e i ] and the concealment operation result [w ′]. collectively concealed concealed operation result [e 'i] may be obtained.
  • the concealment calculation result [e ′ i ] is stored in the storage unit 128-h (step S6232-h).
  • the connecting unit 628-h obtains and outputs the concealment calculation result [y i ] in which the calculation result y i is concealed by secret calculation using at least the concealment calculation result [e ′ i ].
  • the connecting unit 628-h outputs the concealment operation result [e ′ i ] as the concealment operation result [y i ].
  • [Y i ] may be a set of concealment results in which elements of y i are respectively concealed, or all elements of y i are summarized
  • the concealment calculation result [y i ] is stored in the storage unit 128-h (step S628-h).
  • step S527-h and step S1292-h and subsequent steps described in the first embodiment are performed.
  • the disjunction operation unit 623-h combines the concealment operation result [e i ] and the concealment operation result [w ']
  • the search word k may include a wildcard character
  • at least one of the search word k and the search target word x i may include a null character. It is possible to perform a forward match search of a concealed database while concealing a search word including a wildcard character. Furthermore, in the present embodiment, the forward match search can be performed regardless of whether the lengths of the concealed search target word and the concealed search word are the same. In addition, matching search of a concealed database can be performed with a smaller amount of traffic than in the past.
  • the search device may output the concealment calculation result [y i ] as it is, or the concealment calculation result [y i ] is subjected to a secret calculation different from that in step S127-h, and thus obtained. You may output the result.
  • the secret calculation method is not limited. Secret calculation based on the secret sharing scheme may be used, as long as equality determination by the secret calculation and logical operation (OR operation, AND operation) are possible, or secret computation based on the homomorphic encryption scheme is used. It may be done.
  • the secret calculation method described below may be used.
  • Reference 1 Ivan Damgard, Dr Fitzi, Eike Kiltz, Jesper Buus Nielsen, Tomas Toft, “Unconditionally Secure Constant-Rounds Multi-party Computation for Equality, Comparison, Bits and Exponentiation”, TCC 2006, pp. 285-304.
  • Reference 2 Koji Chida, Koki Shibata, Igarashi Univ., Katsuya Takahashi, “Reconsideration of Secure Database Operations Using An Improved 3-party Verifiable Secure Function Evaluation”, In CSS, 2010.
  • Reference 3 Takashi Nishide, Kazuo Ohta, “Multiparty computation for interval, equality, and comparison without bit-decomposition protocol", PKC, pp. 343-360, 2007.
  • Each of the above-described devices is, for example, a general-purpose or dedicated computer including a processor (hardware processor) such as a CPU (central processing unit) and a memory such as a RAM (random-access memory) and a ROM (read-only memory). Is configured by executing a predetermined program.
  • the computer may have one processor or memory, or may have a plurality of processors or memory.
  • This program may be installed in a computer or may be stored in advance in a ROM or the like.
  • an electronic circuit circuitry
  • a part or all of the processing units are configured using an electronic circuit that realizes a processing function without using a program. May be
  • the electronic circuit that constitutes one device may include a plurality of CPUs.
  • the processing content of the function that each device should have is described by a program.
  • the above processing functions are realized on a computer by executing this program on a computer.
  • the program describing the processing content can be recorded in a computer readable recording medium.
  • An example of a computer readable recording medium is a non-transitory recording medium. Examples of such recording media are magnetic recording devices, optical disks, magneto-optical recording media, semiconductor memories and the like.
  • This program is distributed, for example, by selling, transferring, lending, etc. a portable recording medium such as a DVD, a CD-ROM or the like recording the program. Furthermore, this program may be stored in a storage device of a server computer, and the program may be distributed by transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first temporarily stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. At the time of execution of processing, this computer reads a program stored in its own storage device and executes processing in accordance with the read program. As another execution form of this program, the computer may read the program directly from the portable recording medium and execute processing in accordance with the program, and further, each time the program is transferred from the server computer to this computer Alternatively, processing may be performed sequentially according to the received program.
  • the configuration described above is also executed by a so-called ASP (Application Service Provider) type service that realizes processing functions only by executing instructions and acquiring results from the server computer without transferring the program to this computer. Good.
  • ASP Application Service Provider
  • At least a part of these processing functions may be realized by hardware.

Abstract

等号判定部は、秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=a1であり、xi,jがkでない場合にei,j=a0である、ei=(ei,1,…,ei,N)が秘匿された[e]を得る。ワイルドカード判定部は、[k]を用いた秘密計算によって、kがワイルドカード文字の場合にwj=b1であり、そうでない場合にwj=b0である、w=(w1,…,wN)が[w]を得る。論理和演算部は、[e]と[w]とを用いた秘密計算によって、ei,j=a1およびwj=b1の少なくとも一方を満たす場合にyi,j=d1であり、そうでない場合にyi,j=d0である、yi=(yi,1,…,yi,N)が秘匿された[y]を得る。

Description

検索装置、検索方法、プログラム、および記録媒体
 本発明は、秘密計算技術に関し、特にデータを秘匿したまま検索を行う技術に関する。
 検索ワードおよび検索対象ワード群を秘匿したまま一致検索を行う秘密計算技術が知られている(例えば、非特許文献1等参照)。
濱田浩気, 桐淵直人,五十嵐大,"ラウンド効率のよい秘密計算パターンマッチング(A Round-Efficient Pattern Matching Algorithm for Secure Multi-Party Computation)"コンピュータ・セキュリティシンポジウム(CSS)2014.
 従来方式では、ワイルドカード文字を含む検索ワードを用いて秘匿したままの検索を実現しているものの、通信効率が悪く、秘匿化検索対象ワード長と秘匿化検索ワード長を共にNとすると、O(NlogN)もの通信量が必要となってしまう。
 本発明は、ワイルドカード文字を含む検索ワードを秘匿したまま、効率良く秘匿されたデータベースの一致検索を行うことを目的とする。
 記憶部に秘匿化データベース[x],…,[x]が格納されている。秘匿化データベース[x],…,[x]が含む秘匿化検索対象ワード[x]は、t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N)が秘匿されたものである。入力部は秘匿化検索ワード[k]の入力を受け付ける。秘匿化検索ワード[k]は、ワイルドカード文字を含むn個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)が秘匿されたものである。等号判定部は、秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得る。ワイルドカード判定部は、秘匿化検索ワード[k]を用いた秘密計算によって、kがワイルドカード文字の場合にw=bであり、kがワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得る。論理和演算部は、秘匿化演算結果[e]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=aおよびw=bの少なくとも一方を満たす場合にyi,j=dであり、ei,j=aおよびw=bの両方を満たす場合にyi,j=dである、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得る。ただし、m,n,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、n≦Nであり、t(i)≦Nである。
 以上により、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
図1は実施形態の検索システムを例示したブロック図である。 図2は実施形態の検索装置を例示したブロック図である。 図3は第1実施形態の検索方法を説明するためのフロー図である。 図4は第1実施形態の検索方法を説明するための概念図である。 図5は第1実施形態の検索方法を説明するための概念図である。 図6は第1実施形態の検索方法を説明するための概念図である。 図7は第1実施形態の検索方法を説明するための概念図である。 図8は第1実施形態の検索方法を説明するための概念図である。 図9は第1実施形態の検索方法を説明するための概念図である。 図10は第2実施形態の検索方法を説明するためのフロー図である。 図11は第2実施形態の検索方法を説明するための概念図である。 図12は第2実施形態の検索方法を説明するための概念図である。 図13は第2実施形態の検索方法を説明するための概念図である。 図14は第3実施形態の検索方法を説明するためのフロー図である。 図15は第3実施形態の検索方法を説明するための概念図である。 図16は第3実施形態の検索方法を説明するための概念図である。 図17は第4実施形態の検索方法を説明するためのフロー図である。 図18は第4実施形態の検索方法を説明するための概念図である。 図19は第4実施形態の検索方法を説明するための概念図である。 図20は第5実施形態の検索方法を説明するためのフロー図である。 図21は実施形態の検索方法を説明するための概念図である。 図22は第5実施形態の検索方法を説明するための概念図である。 図23は第5実施形態の検索方法を説明するための概念図である。 図24は第5実施形態の検索方法を説明するための概念図である。 図25は第6実施形態の検索方法を説明するためのフロー図である。 図26は第6実施形態の検索方法を説明するための概念図である。 図27は第6実施形態の検索方法を説明するための概念図である。 図28は第6実施形態の検索方法を説明するための概念図である。
 以下、図面を参照して本発明の実施形態を説明する。
 [第1実施形態]
 第1実施形態を説明する。本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行う。
 <構成>
 図1に例示するように、本実施形態の検索システム1は、検索を依頼する依頼装置11、および検索を行う検索装置12-hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
 図2に例示するように、本実施形態の検索装置12-hは、制御部120-h、等号判定部121-h、ワイルドカード判定部122-h、論理和演算部123-h、論理積演算部127-h、記憶部128-h、入力部1291-h、および出力部1292-hを有する。検索装置12-hは、制御部120-hの制御のもとで各処理を実行する。また、各部で得られたデータは、逐一、記憶部128-hに格納され、必要に応じて読み出されて他の処理に用いられる。
 <前処理>
 記憶部128-hには、t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N)(例えば、図4および図6のDB参照)が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]が格納されている。ただし、m,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、t(i)≦Nである。検索対象ワードxに含まれるt(i)個の文字xi,1,…,xi,t(i)は検索対象となる通常文字である。一方、検索対象ワードxに含まれる残りのN-t(i)個の文字xi,t(i)+1,…,xi,Nはヌル値を表す特殊文字(ヌル文字)である。ヌル文字は予め定められており(例えば、“0”)、通常文字として利用されない。t(i)=Nの場合、検索対象ワードxはヌル文字を含まない。各文字は例えば有限体の元で表現される。秘密分散方式に基づく秘密計算が行われる場合、秘匿化検索対象ワード[x]は検索対象ワードxの秘密分散値である。準同型性暗号方式に基づく秘密計算が行われる場合、秘匿化検索対象ワード[x]は検索対象ワードxの暗号文である。文字xi,1,…,xi,t(i),…,xi,Nのそれぞれを別々に秘匿化して得られた秘匿値[xi,1],…,[xi,t(i)],…,[xi,N]の集合を秘匿化検索対象ワード[x]としてもよいし、N個の文字xi,1,…,xi,t(i),…,xi,Nをまとめて秘匿化したものを秘匿化検索対象ワード[x]としてもよい。また、各秘匿化検索対象ワード[x]には、コンテンツまたはネットワーク上のコンテンツの位置を表すコンテンツ情報の秘匿値が対応付けられていてもよい。
 <検索処理>
 図3を用いて本実施形態の検索処理を説明する。
 依頼装置11は、n個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)(例えば、図4および図6参照)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k,…,kは1個以上のワイルドカード文字を含んでもよい。文字k,…,kのうちワイルドカード以外の文字は通常文字である。ワイルドカード文字は予め定められており(例えば、「*」)、通常文字として利用されない。また、1個のワイルド文字は1個の通常文字または1個のヌル文字に対応する(以下の各実施形態でも同じである)。上述の検索対象ワードx(ただしi=1,…,m)がヌル文字を含まない場合、文字k,…,kのどの文字がワイルドカード文字であってもよい。一方、検索対象ワードxがヌル文字xi,t(i)+1,…,xi,Nを含む場合、本実施形態ではkt(i)+1,…,kがワイルドカード文字を含まないことにする。検索ワードkに含まれるN-n個の文字kn+1,…,kはヌル文字である。ただし、n=Nの場合、検索ワードkはヌル文字を含まない(例えば、図4参照)。検索ワードkに含まれたヌル文字は、上述の検索対象ワードx含まれたヌル文字と同一である。検索装置12-hで秘密分散方式に基づく秘密計算が行われるのであれば、秘匿化検索ワード[k]は検索ワードkの秘密分散値である。一方、検索装置12-hで準同型性暗号方式に基づく秘密計算が行われるのであれば、秘匿化検索ワード[k]は検索ワードkの暗号文である。文字k,…,k,…,kのそれぞれを別々に秘匿化して得られた秘匿値[k],…,[k],…,[k]の集合を秘匿化検索ワード[k]としてもよいし、N個の文字k,…,k,…,kをまとめて秘匿化したものを秘匿化検索ワード[k]としてもよい。
 依頼装置11は秘匿化検索ワード[k]を出力する。出力された秘匿化検索ワード[k]は、ネットワーク等を経由して検索装置12-hに送られる。秘匿化検索ワード[k]は、検索装置12-hの入力部1291-hに入力されて記憶部128-hに格納される(ステップS1291-h)。その後、各i=1,…,mについて以下の処理が実行される。
 まず、等号判定部121-hは、記憶部128-hから読み出した秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得て出力する。ただし、xi,jがkの場合(xi,j=kの場合)にei,j=aであり、xi,jがkでない場合(xi,j≠kの場合)にei,j=aである。ei,j∈{a,a}であり、例えば、a=0であり、a=1である。ワイルドカード文字は通常文字と相違するため、kがワイルドカード文字である場合には必ずei,j=aとなる。同様に、ヌル文字は通常文字と相違するため、kがヌル文字でxi,jが通常文字である場合、および、kが通常文字でxi,jがヌル文字である場合には、必ずei,j=aとなる。また、kおよびxi,jがいずれもヌル文字ならばei,j=aとなる。例えば、等号判定部121-hは、秘密計算によって、j=1,…,Nについて[k]と[xi,j]との等号判定(一致判定)を行い、ei,jを秘匿化した[ei,j]を得、[e1,j],…,[e1,N]の集合を秘匿化演算結果[e]として得る。あるいは、等号判定部121-hは、秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、ei,1,…,ei,Nがまとめて秘匿された秘匿化演算結果[e]を得てもよい。秘匿化演算結果[e]は記憶部128-hに格納される(ステップS121-h)。
 ワイルドカード判定部122-hは、記憶部128-hから読み出した秘匿化検索ワード[k]を用いた秘密計算によって、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得て出力する。ただし、kがワイルドカード文字の場合にw=bであり、kがワイルドカード文字でない場合にw=bである。w∈{b,b}であり、例えば、b=0であり、b=1である。例えば、ワイルドカード判定部122-hは、秘匿化検索ワード[k]と、ワイルドカード文字を秘匿化して得られた秘匿化ワイルドカード文字とを用い、秘密計算によって秘匿化演算結果[w]を得る。一例を挙げると、ワイルドカード判定部122-hは、秘密計算によって、j=1,…,Nについて[k]と秘匿化ワイルドカード文字との等号判定を行い、wを秘匿化した[w]を得、[w],…,[w]の集合を秘匿化演算結果[w]として得る。あるいは、ワイルドカード判定部122-hが、秘匿化検索ワード[k]と秘匿化ワイルドカード文字とを用いた秘密計算によって、w,…,wがまとめて秘匿された秘匿化演算結果[w]を得てもよい。秘匿化演算結果[w]は記憶部128-hに格納される(ステップS122-h)。
 論理和演算部123-hは、記憶部128-hから読み出した秘匿化演算結果[e]と秘匿化演算結果[w]とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得て出力する。ただし、ei,j=aおよびw=bの少なくとも一方を満たす場合にyi,j=dであり、ei,j=aおよびw=bの両方を満たす場合にyi,j=dである。yi,j∈{d,d}であり、例えば、d=0であり、d=1である。例えば、a=0、a=1、b=0、b=1、d=0、d=1の場合、yi,j=ei,j∨wである。ただし、「∨」は論理和(OR)を表す。例えば、論理和演算部123-hは、秘密計算によって、j=1,…,Nについて[ei,j]と[w]との論理和を行い、yi,j=ei,j∨wを秘匿化した[yi,j]を得、[yi,1],…,[yi,N]の集合を秘匿化演算結果[y]として得る。あるいは、論理和演算部123-hは、秘匿化演算結果[e]と秘匿化演算結果[w]とを用いた秘密計算によって、yi,1,…,yi,Nがまとめて秘匿された秘匿化演算結果[y]を得てもよい。秘匿化演算結果[y]は記憶部128-hに格納される(ステップS123-h)。
 論理積演算部127-hは、記憶部128-hから読み出した秘匿化演算結果[y]を用いた秘密計算によって、一致判定結果zが秘匿された秘匿化一致判定結果[z]を得て出力する。ただし、yi,1=…=yi,N=dの場合にz=gであり、yi,1=…=yi,N=dでない場合にz=gである。z∈{g,g}であり、例えば、g=0であり、g=1である。例えば、d=0、d=1、g=0、g=1の場合、z=yi,1∧…∧yi,Nである。ただし、「∧」は論理積(AND)を表す。z=gは検索対象ワードxが検索ワードkに一致することを表し、z=gは検索対象ワードxが検索ワードkに一致しないことを表す。秘匿化一致判定結果[z]は記憶部128-hに格納される(ステップS127-h)。
 出力部1292-hは、各i=1,…,mについての秘匿化一致判定結果[z]を出力する(ステップS1292-h)。秘匿化一致判定結果[z]は、ネットワーク等を経由して依頼装置11に送られる。依頼装置11は各i=1,…,mについて秘匿化一致判定結果[z]を復元してzを得る。例えば、秘密分散方式に基づく秘密計算が行われた場合には、依頼装置11は所定数以上の検索装置12-hから送られた[z]からzを復元する。一方、準同型性暗号方式に基づく秘密計算が行われた場合には、送られた[z]を復号してzを得る。これにより、各iについての検索結果が得られる。その後、これらの検索結果を用いた処理(例えば、一致した秘匿化検索対象ワード[x]に対応するコンテンツ情報の秘匿値の要求など)が実行される。
 <具体例>
 以下に、a=0、a=1、b=0、b=1、d=0、d=1、g=0、g=1である場合の具体例を示す。
 図4に例示するように、N=n=t(i)であり、kがワイルドカード文字「*」であり、1≦r≦nであり、r以外のj=1,…,nについてx1,j=kを満たす場合、e=(1,…,1,0,1,…,1)およびw=(0,…,0,1,0,…,0)となり、y=(1,…,1,1,1,…,1)となる。そのため、z=1となる。
 図5に例示するように、N=n=t(i)であり、1およびr以外のj=2,…,nについてのみx2,j=kを満たす場合、e=(0,1,…,1,0,1,…,1)およびw=(0,0,…,0,1,0,…,0)となり、y=(0,1,…,1,1,1,…,1)となる。そのため、z=0となる。
 図6から図9はn<Nおよびt(i)<Nの例である。図6に例示するように、kn+1,…,kおよびxi,t(i)+1,…,xi,Nがヌル文字である。
 図7に例示するように、t(1)=nであり、kがワイルドカード文字「*」であり、1≦r≦nであり、r以外のj=1,…,nについてx1,j=kを満たす場合、e=(1,1,…,0,…,1,…,1)およびw=(0,0,…,1,…,0,…,0)となり、y=(1,1,…,1,…,1,…,1)となる。そのため、z=1となる。
 図8に例示するように、t(2)=n+1であり、kがワイルドカード文字「*」であり、1≦r≦nであり、r以外のj=1,…,nについてx2,j=kを満たす場合、e=(1,1,…,0,…,1,0,1,…,1)およびw=(0,0,…,1,…,0,0,0,…,0)となり、y=(1,1,…,1,…,1,0,1,…,1)となる。そのため、z=0となる。
 図9に例示するように、t(3)=n‐1であり、kがワイルドカード文字「*」であり、1≦r≦n‐1であり、r以外のj=1,…,n‐1のみについてx3,j=kを満たす場合、e=(1,1,…,0,…,0,1,1,…,1)およびw=(0,0,…,1,…,0,0,0,…,0)となり、y=(1,1,…,1,…,0,1,1,…,1)となる。そのため、z=0となる。
 <本実施形態の特徴>
 上述のように、本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量(例えば、O(N)の通信量)で行うことができる。
 [第2実施形態]
 検索対象ワードxの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kがワイルドカード文字を含み得る場合、第1実施形態の方法では正しく完全一致検索を行うことができないことがある。例えば、図11の例の場合、検索対象ワードxの文字x3,n,…,xi,Nがヌル文字であり、検索ワードkの文字kがワイルドカード文字である。ワイルドカード文字はどのような通常文字にも一致すると判定しなければならないが、ワイルドカード文字はヌル文字とは一致しないと判定しなければならない。しかし、j=1,…,n‐1についてx3,j=kを満たす場合、第1実施形態の方法ではy=(1,1,…,1,…,1,1,1,…,1)となり、z=1となる。本実施形態では、このような場合にも正しく完全一致検索を行う方式を説明する。なお、以下ではこれまで説明した事項との相違点を中心に説明し、共通する事項については同じ参照番号を引用して説明を簡略化する。
 <構成>
 図1に例示するように、本実施形態の検索システム2は、検索を依頼する依頼装置11、および検索を行う検索装置22-hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。
 図2に例示するように、本実施形態の検索装置22-hは、制御部120-h、等号判定部121-h、ワイルドカード判定部122-h、論理和演算部223-h、ヌル判定部224-h、論理積演算部127-h,226-h、記憶部128-h、入力部1291-h、および出力部1292-hを有する。検索装置22-hは、制御部120-hの制御のもとで各処理を実行する。また、各部で得られたデータは、逐一、記憶部128-hに格納され、必要に応じて読み出されて他の処理に用いられる。
 <前処理>
 第1実施形態と同じである。
 <検索処理>
 図10を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k,…,kはワイルドカード文字を含んでもよい。第1実施形態と異なり、検索対象ワードxがヌル文字xi,t(i)+1,…,xi,Nを含んでいる場合に、kt(i)+1,…,kがワイルドカード文字を含んでいてもよい。
 依頼装置11は秘匿化検索ワード[k]を出力する。出力された秘匿化検索ワード[k]は、ネットワーク等を経由して検索装置22-hに送られる。秘匿化検索ワード[k]は、検索装置22-hの入力部1291-hに入力されて記憶部128-hに格納される(ステップS1291-h)。その後、各i=1,…,mについて以下の処理が実行される。
 まず、等号判定部121-hは、記憶部128-hから読み出した秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、演算結果e=(ei,1,…,ei,N)が秘匿された第1秘匿化演算結果[e]を得て出力する。ただし、xi,jがkの場合(xi,j=kの場合)にei,j=aであり、xi,jがkでない場合(xi,j≠kの場合)にei,j=aである。秘匿化演算結果[e]は記憶部128-hに格納される(ステップS121-h)。
 ワイルドカード判定部122-hは、記憶部128-hから読み出した秘匿化検索ワード[k]を用いた秘密計算によって、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得て出力する。ただし、kがワイルドカード文字の場合にw=bであり、kがワイルドカード文字でない場合にw=bである。秘匿化演算結果[w]は記憶部128-hに格納される(ステップS122-h)。
 ヌル判定部224-hは、記憶部128-hから読み出した秘匿化検索対象ワード[x]を用いた秘密計算によって、演算結果μ=(μi,1,…,μi,N)が秘匿された秘匿化演算結果[μ]を得て出力する。ただし、xi,jがヌル文字の場合にμi,j=θであり、xi,jがヌル文字でない場合にμi,j=θである。μi,j∈{θ,θ}であり、例えば、θ=0であり、θ=1である。例えば、ヌル判定部224-hは、秘匿化検索対象ワード[x]と、ヌル文字を秘匿化して得られた秘匿化ヌル文字とを用い、秘密計算によって秘匿化演算結果[μ]を得る。一例を挙げると、ヌル判定部224-hは、秘密計算によって、j=1,…,Nについて[xi,j]と秘匿化ヌル文字との等号判定を行い、μi,jを秘匿化した[μi,j]を得、[μi,1],…,[μi,N]の集合を秘匿化演算結果[μ]として得る。あるいは、ヌル判定部224-hが秘匿化検索対象ワード[x]と秘匿化ヌル文字とを用いた秘密計算によって、μi,1,…,μi,Nがまとめて秘匿された秘匿化演算結果[μ]を得てもよい。秘匿化演算結果[μ]は記憶部128-hに格納される(ステップS224-h)。
 論理積演算部226-hは、記憶部128-hから読み出した秘匿化演算結果[w]と秘匿化演算結果[μ]とを用いた秘密計算によって、演算結果v=(vi,1,…,vi,N)が秘匿された秘匿化演算結果[v]を得て出力する。ただし、w=bおよびμi,j=θの両方を満たす場合にvi,j=ρであり、w=bおよびμi,j=θの少なくとも一方を満たす場合にvi,j=ρである。vi,j∈{ρ,ρ}であり、例えば、ρ=0であり、ρ=1である。例えば、b=0、b=1、ρ=0、ρ=1の場合、vi,j=w∧μi,jである。例えば、論理積演算部226-hは、秘密計算によって、j=1,…,Nについて[w]と[μi,j]との論理積を行い、vi,j=w∧μi,jを秘匿化した[vi,j]を得、[vi,1],…,[vi,N]の集合を秘匿化演算結果[v]として得る。あるいは、論理積演算部226-hは、秘匿化演算結果[w]と秘匿化演算結果[μ]とを用いた秘密計算によって、vi,1,…,vi,Nがまとめて秘匿された秘匿化演算結果[v]を得てもよい。秘匿化演算結果[v]は記憶部128-hに格納される(ステップS226-h)。
 論理和演算部223-hは、記憶部128-hから読み出した秘匿化演算結果[e]と秘匿化演算結果[v]とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得て出力する。ただし、ei,j=aおよびvi,j=ρの少なくとも一方を満たす場合にyi,j=dであり、ei,j=aおよびvi,j=ρの両方を満たす場合にyi,j=dである。yi,j∈{d,d}であり、例えば、d=0であり、d=1である。例えば、a=0、a=1、ρ=0、ρ=1、d=0、d=1の場合、yi,j=ei,j∨vi,jである。例えば、論理和演算部223-hは、秘密計算によって、j=1,…,Nについて[ei,j]と[vi,j]との論理和を行い、yi,j=ei,j∨wi,jを秘匿化した[yi,j]を得、[yi,1],…,[yi,N]の集合を秘匿化演算結果[y]として得る。あるいは、論理和演算部223-hは、秘匿化演算結果[e]と秘匿化演算結果[v]とを用いた秘密計算によって、yi,1,…,yi,Nがまとめて秘匿された秘匿化演算結果[y]を得てもよい。秘匿化演算結果[y]は記憶部128-hに格納される(ステップS223-h)。
 その後、第1実施形態で説明したステップS127-h以降の処理が実行される。
 <具体例>
 以下にa=0、a=1、b=0、b=1、ρ=0、ρ=1、d=0、d=1、g=0、g=1である場合の具体例を示す。
 図11から図13はn<Nおよびt(i)<Nの例である。図11に例示するように、kがワイルドカード文字「*」であり、kn+1,…,kおよびxi,t(i)+1,…,xi,Nがヌル文字である。
 図12に例示するように、t(1)=nであり、j=1,…,n‐1についてx1,j=kを満たす場合、e=(1,1,…,1,0,1,1,…,1)、w=(0,0,…,0,1,0,0,…,0)、μ=(1,1,…,1,1,0,0,…,0)、v=(0,0,…,0,1,0,0,…,0)となり、y=(1,1,…,1,1,1,1,…,1)となる。そのため、z=1となる。
 図13に例示するように、t(3)=n‐1であり、j=1,…,n‐1についてx1,j=kを満たす場合、e=(1,1,…,1,0,1,1,…,1)、w=(0,0,…,0,1,0,0,…,0)、μ=(1,1,…,1,0,0,0,…,0)、v=(0,0,…,0,0,0,0,…,0)となり、y=(1,1,…,1,0,1,1,…,1)となる。そのため、z=0となる。
 <本実施形態の特徴>
 上述のように、本実施形態では、検索対象ワードxの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kがワイルドカード文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
 [第3実施形態]
 第3実施形態は第1実施形態の変形例である。本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行う。
 <構成>
 図1に例示するように、本実施形態の検索システム3は、検索を依頼する依頼装置11、および検索を行う検索装置32-hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
 図2に例示するように、本実施形態の検索装置32-hは、制御部120-h、等号判定部121-h、ワイルドカード判定部122-h、論理和演算部323-h、ヌル判定部325-h、論理積演算部127-h、記憶部128-h、入力部1291-h、および出力部1292-hを有する。検索装置32-hは、制御部120-hの制御のもとで各処理を実行する。また、各部で得られたデータは、逐一、記憶部128-hに格納され、必要に応じて読み出されて他の処理に用いられる。
 <前処理>
 第1実施形態と同一である。
 <検索処理>
 図14を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k,…,kはワイルドカード文字を含んでもよい。検索対象ワードx(ただしi=1,…,m)がヌル文字を含まない場合、文字k,…,kのどの文字がワイルドカード文字であってもよい。一方、検索対象ワードxがヌル文字xi,t(i)+1,…,xi,Nを含む場合、本実施形態ではkt(i)+1,…,kがワイルドカード文字を含まないことにする。
 依頼装置11は秘匿化検索ワード[k]を出力する。出力された秘匿化検索ワード[k]は、ネットワーク等を経由して検索装置32-hに送られる。秘匿化検索ワード[k]は、検索装置32-hの入力部1291-hに入力されて記憶部128-hに格納される(ステップS1291-h)。その後、各i=1,…,mについて以下の処理が実行される。
 まず、等号判定部121-hは、記憶部128-hから読み出した秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得て出力する。ただし、xi,jがkの場合(xi,j=kの場合)にei,j=aであり、xi,jがkでない場合(xi,j≠kの場合)にei,j=aである。秘匿化演算結果[e]は記憶部128-hに格納される(ステップS121-h)。
 ワイルドカード判定部122-hは、記憶部128-hから読み出した秘匿化検索ワード[k]を用いた秘密計算によって、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得て出力する。ただし、kがワイルドカード文字の場合にw=bであり、kがワイルドカード文字でない場合にw=bである。秘匿化演算結果[w]は記憶部128-hに格納される(ステップS122-h)。
 ヌル判定部325-hは、記憶部128-hから読み出した秘匿化検索ワード[k]を用いた秘密計算によって、演算結果u=(u,…,u)が秘匿された秘匿化演算結果[u]を得て出力する。ただし、kがヌル値の場合にu=cであり、kがヌル値でない場合にu=cである。u∈{c,c}であり、例えば、c=0であり、c=1である。例えば、ヌル判定部325-hは、秘匿化検索ワード[k]とヌル文字を秘匿化して得られた秘匿化ヌル文字とを用い、秘密計算によって秘匿化演算結果[u]を得る。一例を挙げると、ヌル判定部325-hは、秘密計算によって、j=1,…,Nについて[k]と秘匿化ヌル文字との等号判定を行い、uを秘匿化した[u]を得、[u],…,[u]の集合を秘匿化演算結果[u]として得る。あるいは、ヌル判定部325-hが秘匿化検索ワード[k]と秘匿化ヌル文字とを用いた秘密計算によって、u,…,uがまとめて秘匿された秘匿化演算結果[u]を得てもよい。秘匿化演算結果[u]は記憶部128-hに格納される(ステップS325-h)。
 論理和演算部323-hは、記憶部128-hから読み出した秘匿化演算結果[e]と秘匿化演算結果[w]と秘匿化演算結果[u]とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得て出力する。ただし、ei,j=a、w=b、およびu=cの少なくとも何れかを満たす場合にyi,j=dであり、ei,j=aおよびw=bおよびu=cのすべての満たす場合にyi,j=dである。yi,j∈{d,d}であり、例えば、d=0であり、d=1である。例えば、a=0、a=1、b=0、b=1、c=0、c=1、d=0、d=1の場合、yi,j=ei,j∨w∨uである。例えば、論理和演算部323-hは、秘密計算によって、j=1,…,Nについて[ei,j]と[w]と[u]との論理和を行い、yi,j=ei,j∨w∨uを秘匿化した[yi,j]を得、[yi,1],…,[yi,N]の集合を秘匿化演算結果[y]として得る。あるいは、論理和演算部323-hは、秘匿化演算結果[e]と秘匿化演算結果[w]と秘匿化演算結果[u]とを用いた秘密計算によって、yi,1,…,yi,Nがまとめて秘匿された秘匿化演算結果[y]を得てもよい。秘匿化演算結果[y]は記憶部128-hに格納される(ステップS323-h)。
 その後、第1実施形態で説明したステップS127-h以降の処理が実行される。
 <具体例>
 以下に、a=0、a=1、b=0、b=1、c=0、c=1、d=0、d=1、g=0、g=1である場合の具体例を示す。
 図15に例示するように、t(2)=n+1であり、j=1,…,nについてx1,j=kを満たす場合、e=(1,1,…,0,…,1,0,1,…,1)、w=(0,0,…,1,…,0,0,0,…,0)、u=(0,0,…,0,…,0,1,1,…,1)、y=(1,1,…,1,…,1,1,1,…,1)となる。そのため、z=1となる。
 図16に例示するように、t(3)=n‐1であり、j=1,…,n‐1についてx1,j=kを満たす場合、e=(1,1,…,0,…,0,1,1,…,1)、w=(0,0,…,1,…,0,0,0,…,0)、u=(0,0,…,0,…,0,1,1,…,1)、y=(1,1,…,1,…,0,1,1,…,1)となる。そのため、z=0となる。
 <本実施形態の特徴>
 上述のように、本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
 [第4実施形態]
 第4実施形態は第2,3実施形態の変形例である。本実施形態では、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行う。完全一致検索の場合と同様、検索対象ワードxの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kがワイルドカード文字を含み得る場合、第3実施形態の方法では正しく前方一致検索を行うことができないことがある。本実施形態では、このような場合にも正しく前方一致検索を行う方式を説明する。
 <構成>
 図1に例示するように、本実施形態の検索システム4は、検索を依頼する依頼装置11、および検索を行う検索装置42-hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
 図2に例示するように、本実施形態の検索装置42-hは、制御部120-h、等号判定部121-h、ワイルドカード判定部122-h、論理和演算部423-h、ヌル判定部,224-h,325-h、論理積演算部127-h,226-h、記憶部128-h、入力部1291-h、および出力部1292-hを有する。検索装置32-hは、制御部120-hの制御のもとで各処理を実行する。また、各部で得られたデータは、逐一、記憶部128-hに格納され、必要に応じて読み出されて他の処理に用いられる。
 <前処理>
 第1実施形態と同じである。
 <検索処理>
 図17を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)を秘匿化して秘匿化検索ワード[k]を得る。ただし、nは正整数であり、n≦Nである。文字k,…,kはワイルドカード文字を含んでもよい。第3実施形態と異なり、検索対象ワードxがヌル文字xi,t(i)+1,…,xi,Nを含んでいる場合に、kt(i)+1,…,kがワイルドカード文字を含んでいてもよい。
 依頼装置11は秘匿化検索ワード[k]を出力する。出力された秘匿化検索ワード[k]は、ネットワーク等を経由して検索装置22-hに送られる。秘匿化検索ワード[k]は、検索装置22-hの入力部1291-hに入力されて記憶部128-hに格納される(ステップS1291-h)。その後、各i=1,…,mについて以下の処理が実行される。
 まず、等号判定部121-hは、記憶部128-hから読み出した秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得て出力する。ただし、xi,jがkの場合(xi,j=kの場合)にei,j=aであり、xi,jがkでない場合(xi,j≠kの場合)にei,j=aである。秘匿化演算結果[e]は記憶部128-hに格納される(ステップS121-h)。
 ワイルドカード判定部122-hは、記憶部128-hから読み出した秘匿化検索ワード[k]を用いた秘密計算によって、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得て出力する。ただし、kがワイルドカード文字の場合にw=bであり、kがワイルドカード文字でない場合にw=bである。秘匿化演算結果[w]は記憶部128-hに格納される(ステップS122-h)。
 ヌル判定部325-hは、記憶部128-hから読み出した秘匿化検索ワード[k]を用いた秘密計算によって、演算結果u=(u,…,u)が秘匿された秘匿化演算結果[u]を得て出力する。ただし、kがヌル値の場合にu=cであり、kがヌル値でない場合にu=cである。例えば、ヌル判定部325-hは、秘匿化検索ワード[k]とヌル文字を秘匿化して得られた秘匿化ヌル文字とを用い、秘密計算によって秘匿化演算結果[u]を得る。秘匿化演算結果[u]は記憶部128-hに格納される(ステップS325-h)。
 ヌル判定部224-hは、記憶部128-hから読み出した秘匿化検索対象ワード[x]を用いた秘密計算によって、演算結果μ=(μi,1,…,μi,N)が秘匿された秘匿化演算結果[μ]を得て出力する。ただし、xi,jがヌル文字の場合にμi,j=θであり、xi,jがヌル文字でない場合にμi,j=θである。秘匿化演算結果[μ]は記憶部128-hに格納される(ステップS224-h)。
 論理積演算部226-hは、記憶部128-hから読み出した秘匿化演算結果[w]と秘匿化演算結果[μ]とを用いた秘密計算によって、演算結果v=(vi,1,…,vi,N)が秘匿された秘匿化演算結果[v]を得て出力する。ただし、w=bおよびμi,j=θの両方を満たす場合にvi,j=ρであり、w=bおよびμi,j=θの少なくとも一方を満たす場合にvi,j=ρである。秘匿化演算結果[v]は記憶部128-hに格納される(ステップS226-h)。
 論理和演算部423-hは、記憶部128-hから読み出した秘匿化演算結果[e]と秘匿化演算結果[u]と秘匿化演算結果[v]とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得て出力する。ただし、ei,j=a、vi,j=ρ、およびu=cの少なくとも何れかを満たす場合にyi,j=dであり、ei,j=aおよびvi,j=ρおよびu=cのすべての満たす場合にyi,j=dである。yi,j∈{d,d}であり、例えば、d=0であり、d=1である。例えば、a=0、a=1、ρ=0、ρ=1、c=0、c=1、d=0、d=1の場合、yi,j=ei,j∨vi,j∨uである。例えば、論理和演算部423-hは、秘密計算によって、j=1,…,Nについて[ei,j]と[vi,j]と[u]との論理和を行い、yi,j=ei,j∨vi,j∨uを秘匿化した[yi,j]を得、[yi,1],…,[yi,N]の集合を秘匿化演算結果[y]として得る。あるいは、論理和演算部423-hは、秘匿化演算結果[e]と秘匿化演算結果[v]と秘匿化演算結果[u]とを用いた秘密計算によって、yi,1,…,yi,Nがまとめて秘匿された秘匿化演算結果[y]を得てもよい。秘匿化演算結果[y]は記憶部128-hに格納される(ステップS423-h)。
 その後、第1実施形態で説明したステップS127-h以降の処理が実行される。
 <具体例>
 以下に、a=0、a=1、b=0、b=1、c=0、c=1、d=0、d=1、ρ=0、ρ=1、g=0、g=1である場合の具体例を示す。図18および図19はn<Nおよびt(i)<Nの例である。kがワイルドカード文字「*」であり、kn+1,…,kおよびxi,t(i)+1,…,xi,Nがヌル文字である。
 図18に例示するように、t(1)=nであり、j=1,…,n‐1についてx1,j=kを満たす場合、e=(1,1,…,1,0,1,1,…,1)、w=(0,0,…,0,1,0,0,…,0)、u=(0,0,…,0,1,1,…,1)、μ=(1,1,…,1,1,0,0,…,0)、v=(0,0,…,0,1,0,0,…,0)となり、y=(1,1,…,1,1,1,1,…,1)となる。そのため、z=1となる。
 図19に例示するように、t(3)=n‐1であり、j=1,…,n‐1についてx1,j=kを満たす場合、e=(1,1,…,1,0,1,1,…,1)、w=(0,0,…,0,1,0,0,…,0)、u=(0,0,…,0,1,1,…,1)、μ=(1,1,…,1,0,0,0,…,0)、v=(0,0,…,0,0,0,0,…,0)となり、y=(1,1,…,1,0,1,1,…,1)となる。そのため、z=0となる。
 <本実施形態の特徴>
 上述のように、本実施形態では、検索対象ワードxの文字xi,t(i)+1,…,xi,Nがヌル文字であり、検索ワードkの文字kt(i)+1,…,kがワイルドカード文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
 [第5実施形態]
 第5実施形態は第1,2実施形態の変形例である。第1,2実施形態では秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であることが前提であった。これに対し、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず、完全一致検索を行うことができる。
 図1に例示するように、本実施形態の検索システム5は、検索を依頼する依頼装置11、および検索を行う検索装置52-hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
 図2に例示するように、本実施形態の検索装置52-hは、制御部120-h、等号判定部521-h、ワイルドカード判定部522-h、論理和演算部523-h、ヌル判定部524-h,525-h、論理積演算部527-h、連結部528-h、記憶部128-h、入力部1291-h、および出力部1292-hを有する。検索装置52-hは、制御部120-hの制御のもとで各処理を実行する。また、各部で得られたデータは、逐一、記憶部128-hに格納され、必要に応じて読み出されて他の処理に用いられる。
 <前処理>
 記憶部128-hには、t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N(i))(例えば、図21のDB参照)が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]が格納されている。ただし、m,t(i),N(i)が正整数であり、i=1,…,mであり、j(i)=1,…,N(i)であり、t(i)≦N(i)である。検索対象ワードxに含まれるt(i)個の文字xi,1,…,xi,t(i)は検索対象となる通常文字である。一方、検索対象ワードxに含まれる残りのN(i)-t(i)個の文字xi,t(i)+1,…,xi,N(i)はヌル文字である。文字xi,1,…,xi,t(i),…,xi,N(i)のそれぞれを別々に秘匿化して得られた秘匿値[xi,1],…,[xi,t(i)],…,[xi,N(i)]の集合を秘匿化検索対象ワード[x]としてもよいし、N(i)個の文字xi,1,…,xi,t(i),…,xi,N(i)をまとめて秘匿化したものを秘匿化検索対象ワード[x]としてもよい。その他は第1実施形態で述べた通りである。
 <検索処理>
 図20を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)を秘匿化して秘匿化検索ワード[k]を得る。ただし、j=1,…,Nであり、nは正整数であり、n≦Nである。文字k,…,kはワイルドカード文字を含んでもよい。検索対象ワードxがヌル文字xi,t(i)+1,…,xi,Nを含んでいる場合に、kt(i)+1,…,kがワイルドカード文字を含んでいてもよい。n,Nが正整数であり、n≦Nである。N≦N(i)のときMmin=Nであり、N>N(i)のときMmin=N(i)である。このようなMminをMmin=min(N(i),N)と表記する。また、N≦N(i)のときNmax=N(i)であり、N>N(i)のときNmax=Nである。このようなMmaxをMmax=max(N(i),N)と表記する。記載表記の制約上、Nminを「Nmin」と表記し、Nmaxを「Nmax」と表記する場合がある。j”=Mmin+1,…,Nであり、j”(i)=Mmin+1,…,N(i)である。ただし、Mmin+1≧Nのときj”は空であり、Mmin+1≧N(i)のときj”(i)は空である。前述のように、文字k,…,k,…,kのそれぞれを別々に秘匿化して得られた秘匿値[k],…,[k],…,[k]の集合を秘匿化検索ワード[k]としてもよいし、N個の文字k,…,k,…,kをまとめて秘匿化したものを秘匿化検索ワード[k]としてもよい。
 依頼装置11は秘匿化検索ワード[k]を出力する。出力された秘匿化検索ワード[k]は、ネットワーク等を経由して検索装置52-hに送られる。秘匿化検索ワード[k]は、検索装置52-hの入力部1291-hに入力されて記憶部128-hに格納される(ステップS1291-h)。その後、各i=1,…,mについて以下の処理が実行される。
 まず、等号判定部521-hは、記憶部128-hから読み出した秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、演算結果e=(ei,1,…,ei,Nmin)が秘匿された秘匿化演算結果[e]を得て出力する。ただし、j’=1,…,Nminについて、xi,j’がkj’の場合にei,j’=aであり、xi,j’がkj’でない場合にei,j’=aである。ei,j’∈{a,a}であり、例えば、a=0であり、a=1である。例えば、等号判定部521-hは、秘密計算によって、j’=1,…,Nminついて[kj’]と[xi,j’]との等号判定を行い、ei,j’を秘匿化した[ei,j’]を得、[e1,j’],…,[e1,Nmin]の集合を秘匿化演算結果[e]として得る。あるいは、等号判定部521-hは、秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、ei,1,…,ei,Nminがまとめて秘匿された秘匿化演算結果[e]を得てもよい。秘匿化演算結果[e]は記憶部128-hに格納される(ステップS521-h)。
 ワイルドカード判定部522-hは、記憶部128-hから読み出した秘匿化検索ワード[k]を用いた秘密計算によって、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得て出力する。ただし、j’=1,…,Nminについて、kj’がワイルドカード文字の場合にwj’=bであり、kj’がワイルドカード文字でない場合にwj’=bである。例えば、ワイルドカード判定部522-hは、秘匿化検索ワード[k]とワイルドカード文字を秘匿化して得られた秘匿化ワイルドカード文字とを用い、秘密計算によって秘匿化演算結果[w]を得る。一例を挙げると、ワイルドカード判定部522-hは、秘密計算によって、j’=1,…,Nminについて[kj’]と秘匿化ワイルドカード文字との等号判定を行い、wj’を秘匿化した[wj’]を得、[w],…,[wNmin]の集合を秘匿化演算結果[w]として得る。あるいは、ワイルドカード判定部122-hが、秘匿化検索ワード[k]と秘匿化ワイルドカード文字とを用いた秘密計算によって、w,…,wNminがまとめて秘匿された秘匿化演算結果[w]を得てもよい。秘匿化演算結果[w]は記憶部128-hに格納される(ステップS522-h)。
 ヌル判定部525-hは、記憶部128-hから読み出した秘匿化検索ワード[k]の少なくとも一部を用いた秘密計算によって、演算結果u’Nmin+1,…,u’が秘匿された秘匿化演算結果[u’]を得て出力する。ただし、j”=Mmin+1,…,Nについて、kj”がヌル文字の場合にu’j”=cであり、kj”がヌル文字でない場合にu’j”=cである。u’j”∈{c,c}であり、例えば、c=0であり、c=1である。例えば、ヌル判定部525-hは、秘匿化検索ワード[k]の少なくとも一部とヌル文字を秘匿化して得られた秘匿化ヌル文字とを用い、秘密計算によって秘匿化演算結果[u’]を得る。一例を挙げると、ヌル判定部525-hは、秘密計算によって、j”=Mmin+1,…,Nについて[kj”]と秘匿化ヌル文字との等号判定を行い、u’j”を秘匿化した[u’j”]を得、[u’Mmin+1],…,[u’]の集合を秘匿化演算結果[u’]として得る。あるいは、ヌル判定部525-hが秘匿化検索ワード[k]と秘匿化ヌル文字とを用いた秘密計算によって、u’Mmin+1,…,u’がまとめて秘匿された秘匿化演算結果[u’]を得てもよい。秘匿化演算結果[u’]は記憶部128-hに格納される。(ステップS525-h)。なお、Mmin+1≧NのときにはステップS525-hの処理は実行されない。
 論理和演算部523-hは、記憶部128-hから読み出した秘匿化演算結果[e]と秘匿化演算結果[w]とを用いた秘密計算によって、演算結果e’=(e’i,1,…,e’i,Nmin)が秘匿された秘匿化演算結果[e’]を得て出力する。ただし、j’=1,…,Nminについて、ei,j’=aおよびwj’=bの少なくとも一方を満たす場合にe’i,j’=dであり、ei,j’=aおよびwj’=bの両方を満たす場合にe’i,j’=dである。e’i,j’∈{d,d}であり、例えば、d=0であり、d=1である。例えば、a=0、a=1、b=0、b=1、d=0、d=1の場合、e’i,j’=ei,j’∨wj’である。例えば、論理和演算部523-hは、秘密計算によって、j’=1,…,Nminについて、[ei,j’]と[wj’]との論理和を行い、e’i,j’=ei,j’∨wj’を秘匿化した[e’i,j’]を得、[e’i,1],…,[e’i,Nmin]の集合を秘匿化演算結果[e’]として得る。あるいは、論理和演算部523-hは、秘匿化演算結果[e]と秘匿化演算結果[w]とを用いた秘密計算によって、e’i,1,…,e’i,Nminがまとめて秘匿された秘匿化演算結果[e’]を得てもよい。秘匿化演算結果[e’]は記憶部128-hに格納される(ステップS5231-h)。
 ヌル判定部524-hは、記憶部128-hから読み出した秘匿化検索対象ワード[x]の少なくとも一部を用いた秘密計算によって、演算結果μ’=(μ’i,Nmin+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[μ’]を得て出力する。ただし、j”(i)=Mmin+1,…,N(i)について、xi,j”(i)がヌル文字の場合にμ’i,j”(i)=dであり、xi,j”(i)がヌル文字でない場合にμ’i,j”(i)=dである。μ’i,j”(i)∈{d,d}であり、例えば、d=0であり、d=1である。ヌル判定部524-hは、秘匿化検索対象ワード[x]の少なくとも一部とヌル文字を秘匿化して得られた秘匿化ヌル文字とを用い、秘密計算によって秘匿化演算結果[μ’]を得る。一例を挙げると、ヌル判定部524-hは、秘密計算によって、j”(i)=Mmin+1,…,N(i)について[xi,j”(i)]と秘匿化ヌル文字との等号判定を行い、μ’i,j”(i)を秘匿化した[μ’i,j”(i)]を得、[μ’i,Mmin+1],…,[μ’i,N(i)]の集合を秘匿化演算結果[μ’]として得る。あるいは、ヌル判定部524-hが秘匿化検索対象ワード[x]と秘匿化ヌル文字とを用いた秘密計算によって、μ’i,Nmin+1,…,μ’i,N(i)がまとめて秘匿された秘匿化演算結果[μ’]を得てもよい。秘匿化演算結果[μ’]は記憶部128-hに格納される(ステップS524-h)。なお、Mmin+1≧N(i)のときにはステップS524-hの処理は実行されない。
 連結部528-hは、少なくとも秘匿化演算結果[e’]を用いた秘密計算によって、演算結果yが秘匿された秘匿化演算結果[y]を得て出力する。N=N(i)の場合、連結部528-hは、秘匿化演算結果[e’]を秘匿化演算結果[y]として出力する。N>N(i)の場合、連結部528-hは、秘匿化演算結果[u’]および秘匿化演算結果[e’]を用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u’N(i)+1,…,u’)が秘匿された秘匿化演算結果[y]を得て出力する。N<N(i)の場合、連結部528-hは、秘匿化演算結果[e’]と秘匿化演算結果[μ’]とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N(i))=(e’i,1,…,e’i,N,μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[y]を得て出力する。[y]はyの要素がそれぞれ秘匿化された秘匿化結果の集合であってもよいし、yのすべての要素をまとめて秘匿化したものであってもよい。秘匿化演算結果[y]は記憶部128-hに格納される(ステップS528-h)。
 論理積演算部527-hは、記憶部128-hから読み出した秘匿化演算結果[y]を用いた秘密計算によって、秘匿化演算結果[y]を用いた秘密計算によって、一致判定結果zが秘匿された秘匿化一致判定結果[z]を得て出力する。ただし、yi,1=…=yi,Nmax=dの場合にz=gであり、yi,1=…=yi,Nmax=dでない場合にz=gである。z∈{g,g}であり、例えば、g=0であり、g=1である。例えば、d=0、d=1、g=0、g=1の場合、z=yi,1∧…∧yi,Nmaxである。秘匿化一致判定結果[z]は記憶部128-hに格納される(ステップS527-h)。
 その後、第1実施形態で説明したステップS1292-h以降の処理が実行される。
 <具体例>
 本実施形態の処理をN=N(i)の場合、N>N(i)の場合、N<N(i)の場合に区分して記載すると以下のようになる。
 ≪N=N(i)の場合≫
 m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)である。等号判定部521-hは、秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得て出力する。ワイルドカード判定部522-hは、秘匿化検索ワード[k]を用いた秘密計算によって、kがワイルドカード文字の場合にw=bであり、kがワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得て出力する。論理和演算部523-hは、秘匿化演算結果[e]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=aおよびw=bの少なくとも一方を満たす場合にyi,j=dであり、ei,j=aおよびw=bの両方を満たす場合にyi,j=dである、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]=[e’]を得て出力する。例えば、図23に例示するように、a=0、a=1、b=0、b=1、d=0、d=1、g=0、g=1であり、kn-1がワイルドカード文字「*」であり、j=1,…,n-2,nについてx2,j=kを満たす場合、e=(1,1,…,1,0,1,0,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、y=e’=(1,1,…,1,1,1,0,1,…,1)となる。そのため、z=0となる。
 ≪N>N(i)の場合≫
 m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)である。等号判定部521-hは、秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=aであり、xi,j(i)がkj(i)でない場合にei,j(i)=aである、演算結果e=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[e]を得て出力する。ワイルドカード判定部522-hは、秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)がワイルドカード文字の場合にwj(i)=dであり、kj(i)がワイルドカード文字でない場合にwj(i)=dである、演算結果w=(w,…,wN(i))が秘匿された秘匿化演算結果[w]を得て出力する。ヌル判定部525-h(第1ヌル判定部)は、秘匿化検索ワード[k]の少なくとも一部を用いた秘密計算によって、kj”(i)がヌル文字の場合にu’j”(i)=cであり、kj”(i)がヌル文字でない場合にu’j”(i)=cである、演算結果u’N(i)+1,…,u’が秘匿された秘匿化演算結果[u’]を得て出力する。論理和演算部523-hは、秘匿化演算結果[e]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j(i)=aおよびwj(i)=bの少なくとも一方を満たす場合にe’i,j(i)=dであり、ei,j(i)=aおよびwj(i)=bの両方を満たす場合にe’i,j(i)=dである、演算結果e’=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’]を得て出力する。連結部528-hは、秘匿化演算結果[u’]および秘匿化演算結果[e’]を用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u’N(i)+1,…,u’)が秘匿された秘匿化演算結果[y]を得て出力する。例えば、図22に例示するように、a=0、a=1、b=0、b=1、d=0、d=1、g=0、g=1であり、kn-1がワイルドカード文字「*」であり、j=1,…,n-2,nについてx1,j=kを満たす場合、e=(1,1,…,1,0,1,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、e’=(1,1,…,1,1,1,1,1,…,1)となり、y=(1,1,…,1,1,1,1,1,…,1,1)となる。そのため、z=1となる。
 ≪N<N(i)の場合≫
 m,n,t(i),N,N(i)が正整数であり、N<N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)であり、j”(i)=N+1,…,N(i)である。等号判定部521-hは、秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得て出力する。ワイルドカード判定部522-hは、秘匿化検索ワード[k]を用いた秘密計算によって、kがワイルドカード文字の場合にw=bであり、kがワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得て出力する。論理和演算部523-hは、秘匿化演算結果[e]と秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=aおよびw=bの少なくとも一方を満たす場合にe’i,j=dであり、ei,j=aおよびw=bの両方を満たす場合にe’i,j=dである、演算結果e’=(e’i,1,…,e’i,N)が秘匿された秘匿化演算結果[e’]を得て出力する。ヌル判定部524-h(第2ヌル判定部)は、秘匿化検索対象ワード[x]の少なくとも一部を用いた秘密計算によって、xi,j”(i)がヌル文字の場合にμ’i,j”(i)=dであり、xi,j”(i)がヌル文字でない場合にμ’i,j”(i)=dである、演算結果μ’=(μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[μ’]を得て出力する。連結部528-hは、秘匿化演算結果[e’]と秘匿化演算結果[μ’]とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N(i))=(e’i,1,…,e’i,N,μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[y]を得て出力する。例えば、図24に例示するように、a=0、a=1、b=0、b=1、d=0、d=1、g=0、g=1であり、kn-1がワイルドカード文字「*」であり、j=1,…,n-2,nについてx3,j=kを満たす場合、e=(1,1,…,1,0,0,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、e’=(1,1,…,1,1,0,1,1,…,1)となり、y=(1,1,…,1,1,0,1,1,…,1,1)となる。そのため、z=0となる。
 <本実施形態の特徴>
 上述のように、本実施形態では、検索ワードkがワイルドカード文字を含み得る場合であっても、検索ワードkおよび検索対象ワードxの少なくとも一方がヌル文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの完全一致検索を行うことができる。さらに、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず完全一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
 [第6実施形態]
 第6実施形態は第3,4実施形態の変形例である。第3,4実施形態では秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であることが前提であった。これに対し、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず、前方一致検索を行うことができる。
 図1に例示するように、本実施形態の検索システム6は、検索を依頼する依頼装置11、および検索を行う検索装置62-hを有し、秘密計算による検索処理を行う。ただし、h=1,…,Hであり、Hは1以上の整数である。秘密分散方式に基づく秘密計算を行う場合にはH≧2であり、準同型性暗号方式に基づく秘密計算を行う場合にはH=1である。
 図2に例示するように、本実施形態の検索装置62-hは、制御部120-h、等号判定部521-h、ワイルドカード判定部522-h、論理和演算部623-h、ヌル判定部625-h、論理積演算部527-h、連結部628-h、記憶部128-h、入力部1291-h、および出力部1292-hを有する。検索装置62-hは、制御部120-hの制御のもとで各処理を実行する。また、各部で得られたデータは、逐一、記憶部128-hに格納され、必要に応じて読み出されて他の処理に用いられる。
 <前処理>
 第5実施形態と同じである。
 図25を用いて本実施形態の検索処理を説明する。依頼装置11は、n個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)を秘匿化して秘匿化検索ワード[k]を得る。依頼装置11は秘匿化検索ワード[k]を出力する。出力された秘匿化検索ワード[k]は、ネットワーク等を経由して検索装置62-hに送られる。秘匿化検索ワード[k]は、検索装置62-hの入力部1291-hに入力されて記憶部128-hに格納される(ステップS1291-h)。その後、各i=1,…,mについて以下の処理が実行される。
 まず、等号判定部521-hは、記憶部128-hから読み出した秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、演算結果e=(ei,1,…,ei,Nmin)が秘匿された秘匿化演算結果[e]を得て出力する。ただし、j’=1,…,Nminについて、xi,j’がkj’の場合にei,j’=aであり、xi,j’がkj’でない場合にei,j’=aである。秘匿化演算結果[e]は記憶部128-hに格納される(ステップS521-h)。
 ワイルドカード判定部522-hは、記憶部128-hから読み出した秘匿化検索ワード[k]を用いた秘密計算によって、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得て出力する。ただし、j’=1,…,Nminについて、kj’がワイルドカード文字の場合にwj’=bであり、kj’がワイルドカード文字でない場合にwj’=bである。秘匿化演算結果[w]は記憶部128-hに格納される(ステップS522-h)。
 ヌル判定部625-hは、記憶部128-hから読み出した秘匿化検索ワード[k]を用いた秘密計算によって、演算結果u”=(u”,…,u”)が秘匿された秘匿化演算結果[u”]を得て出力する。ただし、j=1,…,Nについて、kがヌル文字の場合にu”=cであり、kがヌル文字でない場合にu”=cである。u”∈{c,c}であり、例えば、c=0であり、c=1である。例えば、ヌル判定部625-hは、秘匿化検索ワード[k]の少なくとも一部とヌル文字を秘匿化して得られた秘匿化ヌル文字とを用い、秘密計算によって秘匿化演算結果[u”]を得る。一例を挙げると、ヌル判定部625-hは、秘密計算によって、j=1,…,Nについて[k]と秘匿化ヌル文字との等号判定を行い、u”を秘匿化した[u”]を得、[u”],…,[u”]の集合を秘匿化演算結果[u”]として得る。あるいは、ヌル判定部625-hが秘匿化検索ワード[k]と秘匿化ヌル文字とを用いた秘密計算によって、u”,…,u”がまとめて秘匿された秘匿化演算結果[u”]を得てもよい。秘匿化演算結果[u”]は記憶部128-hに格納される(ステップS6251-h)。
 論理和演算部623-h(第1論理和演算部)は、記憶部128-hから読み出した秘匿化演算結果[w]と秘匿化演算結果[u”]の少なくとも一部を用いた秘密計算によって、演算結果w’=(w’,…,w’Nmin)が秘匿された秘匿化演算結果[w’]を得て出力する。ただし、j’=1,…,Nminについてu”j’=cおよびwj’=bの少なくとも一方を満たす場合にw’j’=b’であり、u”j’=cおよびwj’=bの両方を満たす場合にw’j’=b’である。w’∈{b’,b’}であり、例えば、b’=0であり、b’=1である。例えば、b=0、b=1、c=0、c=1、b’=0、b’=1の場合、w’j’=u”j’∨wj’である。例えば、論理和演算部623-hは、秘密計算によって、j’=1,…,Nminについて、[u”j’]と[wj’]との論理和を行い、w’j’=u”j’∨wj’を秘匿化した[w’j’]を得、[w’],…,[w’Nmin]の集合を秘匿化演算結果[w’]として得る。あるいは、論理和演算部623-hは、秘匿化演算結果[w]と秘匿化演算結果[u”]とを用いた秘密計算によって、w’,…,w’Nminがまとめて秘匿された秘匿化演算結果[w’]を得てもよい。秘匿化演算結果[w’]は記憶部128-hに格納される(ステップS6231-h)。
 論理和演算部623-h(第2論理和演算部)は、記憶部128-hから読み出した秘匿化演算結果[e]と秘匿化演算結果[w’]とを用いた秘密計算によって、演算結果e’=(e’i,1,…,e’i,Nmin)が秘匿された秘匿化演算結果[e’]を得て出力する。ただし、j’=1,…,Nminについて、e’i,j’=aおよびw’j’=b’の少なくとも一方を満たす場合にe’i,j’=dであり、ei,j’=aおよびw’j’=b’の両方を満たす場合にe’i,j’=dである。e’i,j’∈{d,d}であり、例えば、d=0であり、d=1である。例えば、a=0、a=1、b’=0、b’=1、d=0、d=1の場合、e’i,j’=ei,j’∨w’j’である。例えば、論理和演算部623-hは、秘密計算によって、j’=1,…,Nminについて、[ei,j’]と[w’j’]との論理和を行い、e’i,j’=ei,j’∨w’j’を秘匿化した[e’i,j’]を得、[e’i,1],…,[e’i,Nmin]の集合を秘匿化演算結果[e’]として得る。あるいは、論理和演算部623-hは、秘匿化演算結果[e]と秘匿化演算結果[w’]とを用いた秘密計算によって、e’i,1,…,e’i,Nminがまとめて秘匿された秘匿化演算結果[e’]を得てもよい。秘匿化演算結果[e’]は記憶部128-hに格納される(ステップS6232-h)。
 連結部628-hは、少なくとも秘匿化演算結果[e’]を用いた秘密計算によって、演算結果yが秘匿された秘匿化演算結果[y]を得て出力する。N≦N(i)の場合、連結部628-hは、秘匿化演算結果[e’]を秘匿化演算結果[y]として出力する。N>N(i)の場合、連結部628-hは、秘匿化演算結果[e’]と秘匿化演算結果[u”]の少なくとも一部とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u”N(i)+1,…,u”)が秘匿された秘匿化演算結果[y]を得て出力する。[y]はyの要素がそれぞれ秘匿化された秘匿化結果の集合であってもよいし、yのすべての要素をまとめて秘匿化したものであってもよい。秘匿化演算結果[y]は記憶部128-hに格納される(ステップS628-h)。
 その後、ステップS527-hおよび第1実施形態で説明したステップS1292-h以降の処理が実行される。
 <具体例>
 本実施形態の処理をN>N(i)の場合、N≦N(i)の場合に区分して記載すると以下のようになる。
 ≪N>N(i)の場合≫
 m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)である。等号判定部521-hは、秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=aであり、xi,j(i)がkj(i)でない場合にei,j(i)=aである、演算結果e=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[e]を得て出力する。ワイルドカード判定部522-hは、秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)がワイルドカード文字の場合にwj(i)=bであり、kj(i)がワイルドカード文字でない場合にwj(i)=bである、演算結果w=(w,…,wN(i))が秘匿された秘匿化演算結果[w]を得て出力する。ヌル判定部625-hは、秘匿化検索ワード[k]を用いた秘密計算によって、kがヌル文字の場合にu”=cであり、kがヌル文字でない場合にu”=cである、演算結果u”=(u”,…,u”)が秘匿された秘匿化演算結果[u”]を得て出力する。論理和演算部623-hは、秘匿化演算結果[w]と秘匿化演算結果[u”]の少なくとも一部を用いた秘密計算によって、u”j(i)=cおよびwj(i)=bの少なくとも一方を満たす場合にw’j(i)=b’であり、u”j(i)=cおよびwj(i)=bの両方を満たす場合にw’j(i)=b’である、演算結果w’=(w’,…,w’N(i))が秘匿された秘匿化演算結果[w’]を得て出力する。論理和演算部623-hは、秘匿化演算結果[e]と秘匿化演算結果[w’]とを用いた秘密計算によって、e’i,j(i)=aおよびw’j(i)=b’の少なくとも一方を満たす場合にe’i,j(i)=dであり、ei,j(i)=aおよびw’j(i)=b’の両方を満たす場合にyi,j(i)=dである、演算結果e’=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’]を得て出力する。連結部628-hは秘匿化演算結果[e’]と秘匿化演算結果[u”]の少なくとも一部とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u”N(i)+1,…,u”)が秘匿された秘匿化演算結果[y]を得て出力する。例えば、図26に例示するように、a=0、a=1、b=0、b=1、b’=0、b’=1、c=0、c=1、d=0、d=1、g=0、g=1であり、kn-1がワイルドカード文字「*」であり、j=1,…,n-2,nについてx1,j=kを満たす場合、e=(1,1,…,1,0,1,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、u”=(0,0,…,0,0,0,1,1,…,1,1)、w’=(0,0,…,0,1,0,1,1,…,1)となり、e’=(1,1,…,1,1,1,1,1,…,1)となり、y=(1,1,…,1,1,1,1,1,…,1,1)となる。そのため、z=1となる。
 ≪N≦N(i)の場合≫
 m,n,t(i),N,N(i)が正整数であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)である。等号判定部521-hは、秘匿化検索対象ワード[x]と秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得て出力する。ワイルドカード判定部522-hは、秘匿化検索ワード[k]を用いた秘密計算によって、kがワイルドカード文字の場合にw=bであり、kがワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得て出力する。ヌル判定部625-hは、秘匿化検索ワード[k]を用いた秘密計算によって、kがヌル文字の場合にu”=cであり、kがヌル文字でない場合にu”=cである、演算結果u”=(u”,…,u”)が秘匿された秘匿化演算結果[u”]を得て出力する。論理和演算部623-hは、秘匿化演算結果[w]と秘匿化演算結果[u”]を用いた秘密計算によって、u”=cおよびw=bの少なくとも一方を満たす場合にw’=b’であり、u”=cおよびw=bの両方を満たす場合にw’=b’である、演算結果w’=(w’,…,w’)が秘匿された秘匿化演算結果[w’]を得て出力する。論理和演算部623-hは、秘匿化演算結果[e]と秘匿化演算結果[w’]とを用いた秘密計算によって、ei,j=aおよびw’=b’の少なくとも一方を満たす場合にyi,j=dであり、ei,j=aおよびw’=b’の両方を満たす場合にyi,j=dである、演算結果e’=y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得て出力する。例えば、図27に例示するように、a=0、a=1、b=0、b=1、b’=0、b’=1、c=0、c=1、d=0、d=1、g=0、g=1であり、kn-1がワイルドカード文字「*」であり、j=1,…,n-2,nについてx1,j=kを満たし、N=N(2)の場合、e=(1,1,…,1,0,1,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、u”=(0,0,…,0,0,0,1,1,…,1,1)、w’=(0,0,…,0,1,0,1,1,…,1)となり、e’=(1,1,…,1,1,1,1,1,…,1)となり、y=(1,1,…,1,1,1,1,1,…,1,1)となる。そのため、z=1となる。例えば、図28に例示するように、N<N(3)の場合、e=(1,1,…,1,0,0,1,1,…,1)、w=(0,0,…,0,1,0,0,0,…,0)、u”=(0,0,…,0,0,0,1,1,…,1,1)、w’=(0,0,…,0,1,0,1,1,…,1)となり、e’=(1,1,…,1,1,0,1,1,…,1)となり、y=(1,1,…,1,1,0,1,1,…,1,1)となる。そのため、z=0となる。
 <本実施形態の特徴>
 上述のように、本実施形態では、検索ワードkがワイルドカード文字を含み得る場合であっても、検索ワードkおよび検索対象ワードxの少なくとも一方がヌル文字を含み得る場合であっても、ワイルドカード文字を含む検索ワードを秘匿したまま、秘匿されたデータベースの前方一致検索を行うことができる。さらに、本実施形態では、秘匿化検索対象ワードと秘匿化検索ワードとの長さが互いに同一であるか否かにかかわらず前方一致検索を行うことができる。また、秘匿されたデータベースの一致検索を従来よりも少ない通信量で行うことができる。
 [変形例等]
 なお、本発明は上述の実施形態に限定されるものではない。例えば、検索装置が秘匿化演算結果[y]をそのまま出力してもよいし、秘匿化演算結果[y]に対してステップS127-hとは異なる秘密計算を施し、それによって得られた結果を出力してもよい。
 前述したように秘密計算方式に限定はない。秘密計算による等号判定および論理演算(論理和演算、論理積演算)が可能であれば、秘密分散方式に基づく秘密計算が用いられてもよいし、準同型性暗号方式に基づく秘密計算が用いられてもよい。例えば、以下に記載された秘密計算方式を用いればよい。
 参考文献1: Ivan Damgard, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, Tomas Toft, “Unconditionally Secure Constant-Rounds Multi-party Computation for Equality, Comparison, Bits and Exponentiation”, TCC 2006, pp. 285-304.
 参考文献2:千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考(Secure Database Operations Using An Improved 3-party Verifiable Secure Function Evaluation)”, In CSS, 2010.
 参考文献3:Takashi Nishide, Kazuo Ohta, “Multiparty computation for interval, equality, and comparison without bit-decomposition protocol”, PKC, pp. 343-360, 2007.
 上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
 上記の各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
 上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
 このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
 コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1~4 検索システム
12-1~H,22-1~H,32-1~H,42-1~H 検索装置

Claims (13)

  1.  秘密計算によって完全一致検索を行う検索装置であって、
     m,n,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、n≦Nであり、t(i)≦Nであり、
     t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N)が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]を格納する記憶部と、
     ワイルドカード文字を含むn個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
     前記秘匿化検索対象ワード[x]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得る等号判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kが前記ワイルドカード文字の場合にw=bであり、kが前記ワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
     前記秘匿化演算結果[e]と前記秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=aおよびw=bの少なくとも一方を満たす場合にyi,j=dであり、ei,j=aおよびw=bの両方を満たす場合にyi,j=dである、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得る論理和演算部と、
    を有する検索装置。
  2.  秘密計算によって完全一致検索を行う検索装置であって、
     m,n,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、n≦Nであり、t(i)≦Nであり、
     t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N)が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]を格納する記憶部と、
     ワイルドカード文字を含むn個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
     前記秘匿化検索対象ワード[x]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得る等号判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kが前記ワイルドカード文字の場合にw=bであり、kが前記ワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
     前記秘匿化検索対象ワード[x]を用いた秘密計算によって、xi,jがヌル文字の場合にμi,j=θであり、xi,jがヌル文字でない場合にμi,j=θである、演算結果μ=(μi,1,…,μi,N)が秘匿された秘匿化演算結果[μ]を得るヌル判定部と、
     前記秘匿化演算結果[w]と前記秘匿化演算結果[μ]とを用いた秘密計算によって、w=bおよびμi,j=θの両方を満たす場合にvi,j=ρであり、w=bおよびμi,j=θの少なくとも一方を満たす場合にvi,j=ρである、演算結果v=(vi,1,…,vi,N)が秘匿された秘匿化演算結果[v]を得る論理積演算部と、
     前記秘匿化演算結果[e]と前記秘匿化演算結果[v]とを用いた秘密計算によって、ei,j=aおよびvi,j=ρの少なくとも一方を満たす場合にyi,j=dであり、ei,j=aおよびvi,j=ρの両方を満たす場合にyi,j=dである、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得る論理和演算部と、
    を有する検索装置。
  3.  秘密計算によって前方一致検索を行う検索装置であって、
     m,n,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、n≦Nであり、t(i)≦Nであり、
     t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N)が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]を格納する記憶部と、
     ワイルドカード文字を含むn個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
     前記秘匿化検索対象ワード[x]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得る等号判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kが前記ワイルドカード文字の場合にw=bであり、kが前記ワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kがヌル文字の場合にu=cであり、kがヌル文字でない場合にu=cである、演算結果u=(u,…,u)が秘匿された秘匿化演算結果[u]を得る第1ヌル判定部と、
     前記秘匿化演算結果[e]と前記秘匿化演算結果[w]と前記秘匿化演算結果[u]とを用いた秘密計算によって、ei,j=a、w=b、およびu=cの少なくとも何れかを満たす場合にyi,j=dであり、ei,j=aおよびw=bおよびu=cのすべての満たす場合にyi,j=dである、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得る論理和演算部と、
    を有する検索装置。
  4.  秘密計算によって前方一致検索を行う検索装置であって、
     m,n,t(i),Nが正整数であり、i=1,…,mであり、j=1,…,Nであり、n≦Nであり、t(i)≦Nであり、
     t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N)が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]を格納する記憶部と、
     ワイルドカード文字を含むn個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
     前記秘匿化検索対象ワード[x]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得る等号判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kが前記ワイルドカード文字の場合にw=bであり、kが前記ワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kがヌル文字の場合にu=cであり、kがヌル文字でない場合にu=cである、演算結果u=(u,…,u)が秘匿された秘匿化演算結果[u]を得る第1ヌル判定部と、
     前記秘匿化検索対象ワード[x]を用いた秘密計算によって、xi,jがヌル文字の場合にμi,j=θであり、xi,jがヌル文字でない場合にμi,j=θである、演算結果μ=(μi,1,…,μi,N)が秘匿された秘匿化演算結果[μ]を得る第2ヌル判定部と、
     前記秘匿化演算結果[w]と前記秘匿化演算結果[μ]とを用いた秘密計算によって、w=bおよびμi,j=θの両方を満たす場合にvi,j=ρであり、w=bおよびμi,j=θの少なくとも一方を満たす場合にvi,j=ρである、演算結果v=(vi,1,…,vi,N)が秘匿された秘匿化演算結果[v]を得る論理積演算部と、
     前記秘匿化演算結果[e]と前記秘匿化演算結果[u]と前記秘匿化演算結果[v]とを用いた秘密計算によって、ei,j=a、vi,j=ρ、およびu=cの少なくとも何れかを満たす場合にyi,j=dであり、ei,j=aおよびvi,j=ρおよびu=cのすべての満たす場合にyi,j=dである、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得る論理和演算部と、
    を有する検索装置。
  5.  請求項1から4の何れかの検索装置であって、
     前記秘匿化演算結果[y]を用いた秘密計算によって、yi,1=…=yi,N=dの場合にz=gであり、yi,1=…=yi,N=dでない場合にz=gである一致判定結果zが秘匿された秘匿化一致判定結果[z]を得る論理積演算部を有する、検索装置。
  6.  秘密計算によって完全一致検索を行う検索装置であって、
     m,n,t(i),N,N(i)が正整数であり、N>N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)であり、
     t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N(i))が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]を格納する記憶部と、
     ワイルドカード文字を含むn個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
     前記秘匿化検索対象ワード[x]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=aであり、xi,j(i)がkj(i)でない場合にei,j(i)=aである、演算結果e=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[e]を得る等号判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)が前記ワイルドカード文字の場合にwj(i)=dであり、kj(i)が前記ワイルドカード文字でない場合にwj(i)=dである、演算結果w=(w,…,wN(i))が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
     前記秘匿化検索ワード[k]の少なくとも一部を用いた秘密計算によって、kj”(i)がヌル文字の場合にu’j”(i)=cであり、kj”(i)がヌル文字でない場合にu’j”(i)=cである、演算結果u’N(i)+1,…,u’が秘匿された秘匿化演算結果[u’]を得る第1ヌル判定部と、
     前記秘匿化演算結果[e]と前記秘匿化演算結果[w]とを用いた秘密計算によって、ei,j(i)=aおよびwj(i)=bの少なくとも一方を満たす場合にe’i,j(i)=dであり、ei,j(i)=aおよびwj(i)=bの両方を満たす場合にe’i,j(i)=dである、演算結果e’=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’]を得る論理和演算部と、
     前記秘匿化演算結果[u’]および秘匿化演算結果[e’]を用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u’N(i)+1,…,u’)が秘匿された秘匿化演算結果[y]を得る連結部と、
    を有する検索装置。
  7.  秘密計算によって完全一致検索を行う検索装置であって、
     m,n,t(i),N,N(i)が正整数であり、N<N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)であり、j”(i)=N+1,…,N(i)であり、
     t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N(i))が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]を格納する記憶部と、
     ワイルドカード文字を含むn個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
     前記秘匿化検索対象ワード[x]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得る等号判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kが前記ワイルドカード文字の場合にw=bであり、kが前記ワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
     前記秘匿化演算結果[e]と前記秘匿化演算結果[w]とを用いた秘密計算によって、ei,j=aおよびw=bの少なくとも一方を満たす場合にe’i,j=dであり、ei,j=aおよびw=bの両方を満たす場合にe’i,j=dである、演算結果e’=(e’i,1,…,e’i,N)が秘匿された秘匿化演算結果[e’]を得る論理和演算部と、
     前記秘匿化検索対象ワード[x]の少なくとも一部を用いた秘密計算によって、xi,j”(i)がヌル文字の場合にμ’i,j”(i)=dであり、xi,j”(i)がヌル文字でない場合にμ’i,j”(i)=dである、演算結果μ’=(μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[μ’]を得る第2ヌル判定部と、
     前記秘匿化演算結果[e’]と前記秘匿化演算結果[μ’]とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N(i))=(e’i,1,…,e’i,N,μ’i,N+1,…,μ’i,N(i))が秘匿された秘匿化演算結果[y]を得る連結部と、
    を有する検索装置。
  8.  秘密計算によって前方一致検索を行う検索装置であって、
     m,n,t(i),N,N(i)が正整数であり、N≦N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、n≦Nであり、t(i)≦N(i)であり、
     t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N(i))が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]を格納する記憶部と、
     ワイルドカード文字を含むn個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
     前記秘匿化検索対象ワード[x]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,jがkの場合にei,j=aであり、xi,jがkでない場合にei,j=aである、演算結果e=(ei,1,…,ei,N)が秘匿された秘匿化演算結果[e]を得る等号判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kが前記ワイルドカード文字の場合にw=bであり、kが前記ワイルドカード文字でない場合にw=bである、演算結果w=(w,…,w)が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kがヌル文字の場合にu”=cであり、kがヌル文字でない場合にu”=cである、演算結果u”=(u”,…,u”)が秘匿された秘匿化演算結果[u”]を得るヌル判定部と、
     前記秘匿化演算結果[w]と前記秘匿化演算結果[u”]とを用いた秘密計算によって、u”=cおよびw=bの少なくとも一方を満たす場合にw’=b’であり、u”=cおよびw=bの両方を満たす場合にw’=b’である、演算結果w’=(w’,…,w’)が秘匿された秘匿化演算結果[w’]を得る第1論理和演算部と、
     前記秘匿化演算結果[e]と前記秘匿化演算結果[w’]とを用いた秘密計算によって、ei,j=aおよびw’=b’の少なくとも一方を満たす場合にyi,j=dであり、ei,j=aおよびw’=b’の両方を満たす場合にyi,j=dである、演算結果y=(yi,1,…,yi,N)が秘匿された秘匿化演算結果[y]を得る第2論理和演算部と、
    を有する検索装置。
  9.  秘密計算によって前方一致検索を行う検索装置であって、
     m,n,t(i),N,N(i)が正整数であり、N>N(i)であり、i=1,…,mであり、j=1,…,Nであり、j(i)=1,…,N(i)であり、j”(i)=N(i)+1,…,Nであり、n≦Nであり、t(i)≦N(i)であり、
     t(i)個の文字xi,1,…,xi,t(i)を含む検索対象ワードx=(xi,1,…,xi,t(i),…,xi,N(i))が秘匿された秘匿化検索対象ワード[x]を含む秘匿化データベース[x],…,[x]を格納する記憶部と、
     ワイルドカード文字を含むn個の文字k,…,kを含む検索ワードk=(k,…,k,…,k)が秘匿された秘匿化検索ワード[k]の入力を受け付ける入力部と、
     前記秘匿化検索対象ワード[x]と前記秘匿化検索ワード[k]とを用いた秘密計算によって、xi,j(i)がkj(i)の場合にei,j(i)=aであり、xi,j(i)がkj(i)でない場合にei,j(i)=aである、演算結果e=(ei,1,…,ei,N(i))が秘匿された秘匿化演算結果[e]を得る等号判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kj(i)が前記ワイルドカード文字の場合にwj(i)=bであり、kj(i)が前記ワイルドカード文字でない場合にwj(i)=bである、演算結果w=(w,…,wN(i))が秘匿された秘匿化演算結果[w]を得るワイルドカード判定部と、
     前記秘匿化検索ワード[k]を用いた秘密計算によって、kがヌル文字の場合にu”=cであり、kがヌル文字でない場合にu”=cである、演算結果u”=(u”,…,u”)が秘匿された秘匿化演算結果[u”]を得るヌル判定部と、
     前記秘匿化演算結果[w]と前記秘匿化演算結果[u”]の少なくとも一部を用いた秘密計算によって、u”j(i)=cおよびwj(i)=bの少なくとも一方を満たす場合にw’j(i)=b’であり、u”j(i)=cおよびwj(i)=bの両方を満たす場合にw’j(i)=b’である、演算結果w’=(w’,…,w’N(i))が秘匿された秘匿化演算結果[w’]を得る第1論理和演算部と、
     前記秘匿化演算結果[e]と前記秘匿化演算結果[w’]とを用いた秘密計算によって、e’i,j(i)=aおよびw’j(i)=b’の少なくとも一方を満たす場合にe’i,j(i)=dであり、ei,j(i)=aおよびw’j(i)=b’の両方を満たす場合にe’i,j(i)=dである、演算結果e’=(e’i,1,…,e’i,N(i))が秘匿された秘匿化演算結果[e’]を得る第2論理和演算部と、
     前記秘匿化演算結果[e’]と前記秘匿化演算結果[u”]の少なくとも一部とを用いた秘密計算によって、演算結果y=(yi,1,…,yi,N)=(e’i,1,…,e’i,N(i),u”N(i)+1,…,u”)が秘匿された秘匿化演算結果[y]を得る連結部と、
    を有する検索装置。
  10.  請求項6から9の何れかの検索装置であって、
     N≦N(i)のときNmax=N(i)であり、N>N(i)のときNmax=Nであり、
     前記秘匿化演算結果[y]を用いた秘密計算によって、yi,1=…=yi,Nmax=dの場合にz=gであり、yi,1=…=yi,Nmax=dでない場合にz=gである一致判定結果zが秘匿された秘匿化一致判定結果[z]を得る論理積演算部を有する、検索装置。
  11.  請求項1から10の何れかの検索装置の検索方法。
  12.  請求項1から10の何れかの検索装置としてコンピュータを機能させるためのプログラム。
  13.  請求項1から10の何れかの検索装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
PCT/JP2018/045254 2017-12-19 2018-12-10 検索装置、検索方法、プログラム、および記録媒体 WO2019124134A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
AU2018389418A AU2018389418B2 (en) 2017-12-19 2018-12-10 Retrieval device, retrieval method, program, and recording medium
EP18892647.1A EP3731215B1 (en) 2017-12-19 2018-12-10 Retrieval device, retrieval method, program, and recording medium
JP2019560978A JP6927332B2 (ja) 2017-12-19 2018-12-10 検索装置、検索方法、プログラム、および記録媒体
US16/954,247 US11675847B2 (en) 2017-12-19 2018-12-10 Retrieval device, retrieval method, program, and recording medium
CN201880081581.2A CN111712868B (zh) 2017-12-19 2018-12-10 检索装置、检索方法、以及记录介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017242830 2017-12-19
JP2017-242830 2017-12-19

Publications (1)

Publication Number Publication Date
WO2019124134A1 true WO2019124134A1 (ja) 2019-06-27

Family

ID=66993387

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/045254 WO2019124134A1 (ja) 2017-12-19 2018-12-10 検索装置、検索方法、プログラム、および記録媒体

Country Status (6)

Country Link
US (1) US11675847B2 (ja)
EP (1) EP3731215B1 (ja)
JP (1) JP6927332B2 (ja)
CN (1) CN111712868B (ja)
AU (1) AU2018389418B2 (ja)
WO (1) WO2019124134A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009089B1 (en) * 2011-06-27 2015-04-14 Hrl Laboratories, Llc Secure pattern matching
JP2016148722A (ja) * 2015-02-10 2016-08-18 日本電信電話株式会社 秘匿パターンマッチング装置、端末装置、その方法、プログラム、およびデータ構造
JP2016148693A (ja) * 2015-02-10 2016-08-18 日本電信電話株式会社 秘匿パターンマッチング装置、端末装置、それらの方法、およびプログラム
US20160366113A1 (en) * 2015-06-09 2016-12-15 Skyhigh Networks, Inc. Wildcard search in encrypted text

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500111B2 (en) * 2003-05-30 2009-03-03 International Business Machines Corporation Querying encrypted data in a relational database system
KR100903599B1 (ko) * 2007-11-22 2009-06-18 한국전자통신연구원 내적을 이용한 암호화된 데이터 검색 방법 및 이를 위한단말 장치와 서버
EP2525340B1 (en) * 2010-01-15 2018-06-06 Mitsubishi Electric Corporation Confidential search system and encryption processing system
US9613292B1 (en) * 2012-01-26 2017-04-04 Hrl Laboratories, Llc Secure multi-dimensional pattern matching for secure search and recognition
US20130238646A1 (en) * 2012-03-06 2013-09-12 Evrichart, Inc. Partial-Match Searches of Encrypted Data Sets
CN104995621B (zh) * 2013-02-25 2018-06-05 三菱电机株式会社 服务器装置以及隐匿检索系统
US9652511B2 (en) * 2013-03-13 2017-05-16 International Business Machines Corporation Secure matching supporting fuzzy data
US10291396B2 (en) * 2014-10-08 2019-05-14 Nippon Telegraph And Telephone Corporation Device, method and program for detecting positions of partial character strings
WO2016129259A1 (ja) * 2015-02-09 2016-08-18 日本電気株式会社 サーバ装置、データ検索システム、検索方法および記録媒体
CN106209761A (zh) * 2015-05-29 2016-12-07 松下电器(美国)知识产权公司 相似信息检索方法、终端装置以及相似信息检索系统
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
US9760637B2 (en) * 2015-09-11 2017-09-12 Skyhigh Networks, Inc. Wildcard search in encrypted text using order preserving encryption

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009089B1 (en) * 2011-06-27 2015-04-14 Hrl Laboratories, Llc Secure pattern matching
JP2016148722A (ja) * 2015-02-10 2016-08-18 日本電信電話株式会社 秘匿パターンマッチング装置、端末装置、その方法、プログラム、およびデータ構造
JP2016148693A (ja) * 2015-02-10 2016-08-18 日本電信電話株式会社 秘匿パターンマッチング装置、端末装置、それらの方法、およびプログラム
US20160366113A1 (en) * 2015-06-09 2016-12-15 Skyhigh Networks, Inc. Wildcard search in encrypted text

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BARON, J. ET AL.: "5PM: Secure Pattern Matching", CRYPTOLOGY EPRINT ARCHIVE, REPORT 2012/698, 1 July 2013 (2013-07-01), pages 1 - 51, XP061007642, Retrieved from the Internet <URL:https://eprint.iacr.org/2012/698> [retrieved on 20190225], DOI: doi:10.3233/JCS-130481 *
IVAN DAMGARDMATTHIAS FITZIEIKE KILTZJESPER BUUS NIELSENTOMAS TOFT: "Unconditionally Secure Constant-Rounds Multi-party Computation for Equality, Comparison, Bits and Exponentiation", TCC, 2006, pages 285 - 304, XP047422636, DOI: 10.1007/11681878_15
KOJI CHIDAKOKI HAMADADAI IKARASHIKATSUMI TAKAHASHI: "A Three-party Secure Function Evaluation with Lightweight Verifiability Revisited", CSS, 2010
KOKI HAMADANAOTO KIRIBUCHIDAI IKARASHI: "A Round-Efficient Pattern Matching Algorithm for Secure Multi-Party Computation", COMPUTER SECURITY SYMPOSIUM (CSS, 2014
TAKASHI NISHIDEKAZUO OHTA: "Multiparty computation for interval, equality, and comparison without bit-decomposition protocol", PKC, 2007, pages 343 - 360, XP047029618, DOI: 10.1007/978-3-540-71677-8_23

Also Published As

Publication number Publication date
EP3731215A1 (en) 2020-10-28
AU2018389418B2 (en) 2021-11-04
AU2018389418A1 (en) 2020-07-02
EP3731215A4 (en) 2021-08-04
JPWO2019124134A1 (ja) 2020-12-03
JP6927332B2 (ja) 2021-08-25
CN111712868A (zh) 2020-09-25
US20210011953A1 (en) 2021-01-14
EP3731215B1 (en) 2024-02-07
US11675847B2 (en) 2023-06-13
CN111712868B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
JP6034927B1 (ja) 秘密計算システム、秘密計算装置、およびプログラム
US20180011996A1 (en) Secret shared random access machine
US20160182222A1 (en) Computer-Implemented System And Method For Multi-Party Data Function Computing Using Discriminative Dimensionality-Reducing Mappings
US10432405B1 (en) Systems and methods for accelerating transaction verification by performing cryptographic computing tasks in parallel
JP2016510912A (ja) プライバシーを保護する行列因子分解のための方法及びシステム
CN108881230B (zh) 一种政务大数据的安全传输方法及装置
US11792010B2 (en) Distributed machine learning via secure multi-party computation and ensemble learning
Riazi et al. MPCircuits: Optimized circuit generation for secure multi-party computation
US20220413807A1 (en) Secure random number generation system, secure computation apparatus, secure random number generation method, and program
CN111126628B (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
WO2019124134A1 (ja) 検索装置、検索方法、プログラム、および記録媒体
CN110990829B (zh) 在可信执行环境中训练gbdt模型的方法、装置及设备
WO2018008547A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
CN112417468B (zh) 数据处理方法、装置、电子设备及计算机存储介质
ur Rehman et al. Blockchain-based approach for proving the source of digital media
CN109313664B (zh) 费希尔精确检验计算装置、方法以及记录介质
CN109328346B (zh) 费希尔精确检验计算装置、方法以及记录介质
Mishra et al. Efficient collusion resistant multi-secret image sharing
JP7359225B2 (ja) 秘密最大値計算装置、方法及びプログラム
US20240048519A1 (en) Anonymous message board server verification
Chouragade et al. A Survey on Privacy Preserving Content Based Image Retrieval and Information Sharing in Cloud Environment
KR102234542B1 (ko) 블록 체인 기반 영상 저작물 관리 방법
WO2023281693A1 (ja) 秘密計算システム、装置、方法及びプログラム
WO2023281694A1 (ja) 秘密計算システム、装置、方法及びプログラム
Vaiwsri et al. Encryption-based sub-string matching for privacy-preserving record linkage

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: 18892647

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019560978

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018389418

Country of ref document: AU

Date of ref document: 20181210

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2018892647

Country of ref document: EP

Effective date: 20200720