WO2020136884A1 - 秘匿検索システムおよび秘匿検索方法 - Google Patents

秘匿検索システムおよび秘匿検索方法 Download PDF

Info

Publication number
WO2020136884A1
WO2020136884A1 PCT/JP2018/048531 JP2018048531W WO2020136884A1 WO 2020136884 A1 WO2020136884 A1 WO 2020136884A1 JP 2018048531 W JP2018048531 W JP 2018048531W WO 2020136884 A1 WO2020136884 A1 WO 2020136884A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
key
index
tag
secret
Prior art date
Application number
PCT/JP2018/048531
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 JP2020562226A priority Critical patent/JP6918253B2/ja
Priority to PCT/JP2018/048531 priority patent/WO2020136884A1/ja
Publication of WO2020136884A1 publication Critical patent/WO2020136884A1/ja
Priority to US17/244,080 priority patent/US11790105B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Definitions

  • the present invention relates to a secret search system and a secret search method for searching a searched character string including a search character string from a plurality of searched character strings.
  • Confidential search is a technology that allows you to search for data while it is encrypted.
  • inexpensive and easy-to-use cloud storage is becoming popular.
  • In the confidential search even encrypted data can be searched without decrypting the data, and thus both security and convenience can be achieved.
  • Confidential search is realized by using two encrypted keywords.
  • the first is a ciphertext of a keyword (hereinafter, referred to as a searched character string) associated with data, which is called an encryption tag.
  • the second is an encrypted text of a keyword to be searched (hereinafter referred to as a search character string), which is called a search key.
  • search key an encrypted text of a keyword to be searched
  • the encryption tag is associated with the associated data or data identifier and is stored as an encryption index.
  • the confidential search is realized without exposing the data and the keyword information by identifying the encrypted tag that matches the search key transmitted by the searcher from the encryption index without decrypting it.
  • the confidential search it is judged as a match when the searched character string and the search character string are equal (hereinafter referred to as an exact match confidential search), and as a match when the searched character string contains the search character string.
  • the method (hereinafter, referred to as partial matching secret search) is known. Since the partial match confidential search can match with the partial character string of the encrypted tag, it is possible to realize a more ambiguous search than the complete match confidential search, which is highly convenient.
  • One of the methods of realizing the partial match confidential search is a method of generating a ciphertext for each partial character string such as a character or a word.
  • the partial character string information may be leaked by an attack technique such as frequency analysis. Therefore, there is a need for a mechanism that prevents a malicious third party from performing a search that the registrant or searcher does not intend.
  • Patent Literature 1 and Patent Literature 2 respectively show methods capable of realizing a partial match confidential search.
  • the method of Patent Document 2 since the same key is used in the generation of the encryption tag and the generation of the search key, the authorities cannot be separated.
  • the method of Patent Document 2 is higher in security than Patent Document 1 because different keys can be used for the generation of the encryption tag and the generation of the search key, and a key having different authority for each searcher can be generated.
  • the method of Patent Document 2 is intended by a malicious third party by embedding a distributed value in a ciphertext and introducing a secret key (hereinafter, a secret key for shift) necessary for partial match search. Do not prevent searches.
  • Non-Patent Document 1 shows an encryption method that is highly secure and can be used for partial match confidential search.
  • Non-Patent Document 1 does not describe a method for reducing the amount of search information transmitted from the searcher terminal to the search device by search key conversion as in Patent Document 2.
  • search key conversion of Patent Document 2 will be described.
  • Patent Document 2 realizes a highly secure and flexible partial match confidential search by separating authorities.
  • Patent Document 2 in order to determine whether the partial character string of the encryption tag and the search key match, the start character position of the partial character string of the encryption tag and the start character position of the search key are determined. It is necessary to perform the process of matching. This process is called “search key conversion”. As described above, in Patent Document 2, it is necessary to perform the search key conversion, and depending on the number of characters of the encryption tag or the search key, the search time may be significantly increased.
  • the present invention has been made to solve the above problems, and a secret search system and a secret search method capable of reducing the search time while preventing an unintended search by a malicious third party. Aim to get.
  • a secret search system includes a search key generation unit that generates a search key TD v in which each character of a search character string is designated and set, and each character of a searched character string is designated. and encrypting the tag generator for generating a set encrypted tag ET x, from among the encrypted tag ET x, and a search unit which searches the encryption tag ET x corresponding to the search key TD v, An index t indicating the position of each character is set in one of the element included in the search key TD v and the element included in the encryption tag ET x , and the index t in which the sign of the index t is inverted-in the other.
  • the index t and the index-t are added by adding the index t and the index-t set to the search key TD v and the encryption tag ET x. It cancels and searches the encrypted tag ET x corresponding to the search key TD v .
  • the secret search method includes a search key generation step of generating a search key TD v in which each character of a search character string is designated and set, and each character of a searched character string is designated.
  • the index t indicating the position of each character is set in one of the element included in the search key TD v and the element included in the encryption tag ET x, and the sign of the index t is inverted in the other.
  • Index-t is set, and at the time of search, the index t and the index-t are added by adding the index t and the index-t set in the search key TD v and the encryption tag ET x. Is canceled and the encrypted tag ET x corresponding to the search key TD v is searched.
  • the confidential search system and the confidential search method according to the present invention it is possible to reduce the search time while preventing an unintended search by a malicious third party.
  • FIG. 3 is a flowchart of processing of a Search algorithm according to the first embodiment of the present invention.
  • FIG. 3 is a diagram showing a hardware configuration example of a key generation device, an encryption tag generation device, a search key generation device, a converted search key generation device, and a search device according to the first embodiment of the present invention.
  • Embodiment 1 a confidential search system according to Embodiment 1 of the present invention will be described with reference to the drawings.
  • the following formula (1) represents that y is randomly selected from A according to the distribution of A. That is, in the following formula (1), y is a random number.
  • the following expression (2) represents that y is uniformly selected from A. That is, in the following expression (2), y is a uniform random number.
  • the vector x ⁇ represents a vector expression in the finite field F q as shown in the following expression (7).
  • the notation " ⁇ " means that a ⁇ is added to the upper part of the symbol described before it, and represents a vector.
  • the following equation (8) represents the inner product shown in the following equation (10) of the two vectors x ⁇ and v ⁇ shown in the following equation (9).
  • X T represents a transposed matrix of the matrix X.
  • the inner product predicate encryption is applied to realize the partial match secret search method.
  • the ciphertext vector x ⁇ and the key vector v ⁇ have the same number of elements.
  • the ciphertext vector x ⁇ and the key vector v ⁇ may have different numbers of elements.
  • the sum of the inner products of the corresponding elements of the ciphertext vector x ⁇ and the key vector v ⁇ is calculated, and the ciphertext is decrypted by the key.
  • the elements x 1, x 2 of the vector x ⁇ is because correspond respectively to the vector v ⁇ elements v 1, v 2, the sum of the inner product of each of these elements are calculated.
  • the vector v ⁇ of elements v 3,. . . , V n the inner product is not calculated because there is no corresponding element of the vector x ⁇ .
  • inner product predicate cryptography uses a secret value s 0 and a variance value s t for each integer t of t ⁇ Iv.
  • t is an index
  • Iv is a set of indexes t.
  • the ciphertext is a base B in which an element value c 0 , which is a vector on the base B 0 corresponding to the base B * 0 , and an attribute value x t and an index t are set for each integer t of t ⁇ Ix.
  • element c t which is a vector on the basis B corresponding to * .
  • Ix is a set of indexes t.
  • the inner product of the element k * 0 and the element c 0 is calculated, and for each integer t of t ⁇ Iv, the inner product of the element k * t contained in the key and the element c t contained in the ciphertext. Is calculated.
  • the index t is set. Therefore, even if the attribute values v i and the attribute values x j correspond to the integers i and j of i ⁇ j, even if the inner product of the elements k * i and the elements c j is calculated, the variance value s i is calculated. Will never be obtained.
  • the index t indicates the position of each character in the search target character string and the search character string.
  • the basic configuration of the above-described inner product predicate encryption, by each element mu (t, -1) related to the index t of the elements of the encrypted c t and the key element k * t and sigma (1, t), malicious Prevents unintended searches by third parties.
  • the variance value s i cannot be calculated unless the elements share the same index t, it is difficult to realize the partial match confidential search without additional mechanism and additional calculation.
  • the method of setting the index t is changed.
  • the variance value ⁇ t is newly used. That is, in the first embodiment, in the inner product predicate encryption, the secret value s 0 , the first variance value s t for each integer t of t ⁇ Iv, and the second dispersion value s t for each integer t of t ⁇ Iv.
  • the variance value ⁇ t of is used.
  • ⁇ ⁇ t is set in place of ⁇ (1,t) in the ciphertext element c t .
  • ⁇ ′ ⁇ t ⁇ t is set for the key element k * t instead of ⁇ (t, ⁇ 1). That is, in the first embodiment, the key includes the element k * 0 and the element k * t .
  • Element k * 0 is a vector on the basis B * 0, which is set to the secret value s 0.
  • the element k * t is a vector on the basis B * in which the first variance value s t , the second variance value ⁇ t , the attribute value v t, and the index t are set for each integer t of t ⁇ Iv. is there.
  • the ciphertext includes the elements c 0 and c t .
  • the element c 0 is a vector on the base B 0 corresponding to the base B * 0 .
  • Element c t for each integer t of T ⁇ Ix, and the index -t attribute value x t is set, a vector of the base B corresponding to the base B *.
  • is a fixed element of F q having a sufficiently large order
  • ⁇ and ⁇ ′ are random numbers.
  • the power code of ⁇ may be replaced by the ciphertext and the key. That is, in the above description, it is explained that the index t is set for the key that is the search character string and the index -t is set for the ciphertext that is the searched character string.
  • the present invention is not limited to this case, and the index-t may be set for the key that is the search character string and the index t may be set for the ciphertext that is the searched character string.
  • ⁇ and ⁇ ′ may be omitted.
  • may be disclosed, but may be shared in advance as confidential information between the registrant and the searcher using a secure communication channel.
  • the inner product is calculated with the element c t of each ciphertext and the element k * t of each key at each index t. ..
  • the power elements of ⁇ cancel each other out at each index t, and ⁇ ′ ⁇ t can be extracted.
  • the terms of ⁇ t cancel each other out, and the remaining variance value s i can be obtained.
  • the first variance value s t and the second variance value ⁇ t are used in the inner product predicate encryption. Further, in the key that is the search character string and the ciphertext that is the searched character string, the index t is set on one side and the index -t with the sign reversed is set on the other side. This allows the index t to be canceled when calculating the inner product. As a result, the search key conversion process required in Patent Document 2 becomes unnecessary, and the search time can be shortened. Further, it is possible to prevent an unintended search by a malicious third party.
  • the database stores the encrypted tag ET x generated by encrypting the searched character string that is the search tag ABCDE. At this time, it is assumed that the character string CD is given as the search character string.
  • each character of the search string ABCDE as attribute values x t, element c t of ciphertext are generated. That is, the element c 1 are set attribute value A is, the attribute value B is set in the element c 2, the element c 3 attribute value C is set, the attribute value D is set in the element c 4, The attribute value E is set in the element c 5 .
  • the encrypted tag ET x is set by specifying the position of each character of the searched character string.
  • the search key TD v is generated by using each character of the character string CD as the attribute value v t . That is, the element k * 1 is set attribute value C, the element k * 2 attribute value D is set. As described above, the search key TD v is set by specifying the position of each character of the search character string.
  • the elements k * t of the search key TD v are sequentially shifted one by one, the encrypted tags ET x are sequentially decrypted, and a match determination is performed.
  • the elements c 3 and c 4 are decoded by the elements k * 1 and k * 2 , they match.
  • the database stores the encrypted tag ET x in which the searched character string that is the search tag ABCDE is encrypted, and the character string BD is given as the search character string.
  • each character of the search string ABCDE as attribute values x t, element c t of ciphertext are generated. That is, the element c 1 are set attribute value A is, the attribute value B is set in the element c 2, the element c 3 attribute value C is set, the attribute value D is set in the element c 4, The attribute value E is set in the element c 5 .
  • the search key TD v is generated by using each character of the search character string BD as the attribute value v t . That is, the element k * 1 is set attribute value B, the element k * 2 attribute value D is set.
  • the database stores an encryption tag in which the searched character string that is the search tag ABCDE is encrypted, and the character string BA is given as the search character string.
  • each character of the search string ABCDE as attribute values x t, element c t of ciphertext are generated. That is, the element c 1 are set attribute value A is, the attribute value B is set in the element c 2, the element c 3 attribute value C is set, the attribute value D is set in the element c 4, The attribute value E is set in the element c 5 .
  • the search key is generated by using each character of the character string BA as the attribute value v t . That is, the element k * 1 is set attribute value B, the element k * 2 attribute value A is set.
  • the coincidence determination can be performed only when all the elements of the key are shifted by a constant width ⁇ .
  • an unintended search such as separation of characters as shown in FIG. 6 and replacement of characters as shown in FIG.
  • the partial match secret search method used in the secret search system 10 includes a KG algorithm, a TagGen algorithm, a TrapGen algorithm, and a Search algorithm.
  • the KG algorithm is an algorithm that inputs a security parameter ⁇ and outputs a public key pk and a secret key sk.
  • the TagGen algorithm is a probabilistic algorithm that inputs a public key pk and an attribute vector x ⁇ and outputs an encryption tag ET x .
  • the TrapGen algorithm is a probabilistic algorithm that inputs a public key pk, a secret key sk, and a predicate vector v ⁇ and outputs a search key TD v .
  • the Search algorithm takes the public key pk, the encryption tag ET x, and the search key TD v as input, and outputs 0 indicating that the search was hit or 1 indicating that the search was not hit. Algorithm.
  • the secret search system 10 according to the first embodiment will be described with reference to FIG.
  • the secret search system 10 shown in FIG. 8 generates a search key TD v in which the position of each character in the search character string is designated and set. Further, the confidential search system 10 generates a plurality of encrypted tags ET x in which the position of each character of the searched character string is designated and set. Then, the confidential search system 10 searches for the encrypted tag ET x corresponding to the generated search key TD v . At this time, as described above, the confidential search system 10 sets the index t indicating the position of each character in the search key TD v , and the index ⁇ t in which the sign of the index t is inverted in the encryption tag ET x. doing.
  • the secret search system 10 includes a key generation device 100, an encryption tag generation device 200, a search key generation device 300, and a search device 500.
  • the key generation device 100, the encryption tag generation device 200, the search key generation device 300, and the search device 500 are separate devices here, two or more of these devices are It may be configured as one device. Therefore, the key generation device 100, the encryption tag generation device 200, the search key generation device 300, and the search device 500 are respectively a key generation unit, an encryption tag generation unit, a search key generation unit, and a search. It may be replaced with a unit and may be a component of one or more devices.
  • the key generation device 100 inputs the security parameter ⁇ , executes the KG algorithm, and outputs the public key pk, the secret key sk, and the fixed value ⁇ .
  • the security parameter ⁇ is input by an administrator of the confidential search system 10 or the like using an input device connected to the input interface of the confidential search system 10.
  • the encryption tag generation device 200 receives the public key pk, the attribute vector x ⁇ , and the fixed value ⁇ and executes the TagGen algorithm to generate the encryption tag ET x .
  • the attribute vector x ⁇ is input by an administrator of the confidential search system 10, a user of the encrypted tag generation device 200, or the like through an input device connected to the input interface of the confidential search system 10.
  • the search key generation device 300 receives the public key pk, the secret key sk, the predicate vector v ⁇ , and the fixed value ⁇ , and executes the TrapGen algorithm to generate the search key TD v .
  • the predicate vector v ⁇ is input by an administrator of the confidential search system 10, a user of the search key generation device 300, or the like through an input device connected to the input interface of the confidential search system 10.
  • the search device 500 receives the public key pk, the encryption tag ET x, and the search key TD v as input, executes the Search algorithm, and searches for the encryption tag ET x including the search key TD v as a partial character string. To do.
  • the search device 500 outputs 0 indicating a hit in the search or 1 indicating no hit in the search.
  • the key generation device 100 includes an information acquisition unit 110, a base generation unit 120, a key generation unit 140, and a key output unit 150.
  • the information acquisition unit 110 acquires the security parameter ⁇ input from the input device connected to the confidential search system 10.
  • the base generation unit 120 Based on the security parameter ⁇ , the base generation unit 120 generates a base B 0 , a base B * 0 , a base B, and a base B * which are bases for realizing the partial match confidential search method. In addition, the base generation unit 120 generates a parameter param. The method of generating these bases and parameters will be described later.
  • the key generation unit 140 generates the public key pk using the base B 0 and the base B and the parameter param. Further, the key generation unit 140 generates the secret key sk using the base B * 0 and the base B * . Furthermore, the key generation unit 140 generates a fixed value ⁇ . A method of generating the public key pk, the secret key sk and the fixed value ⁇ will be described later.
  • the key output unit 150 publishes the public key pk generated by the key generation unit 140.
  • the key output unit 150 also outputs the secret key sk generated by the key generation unit 140 to the search key generation device 300.
  • the key output unit 150 outputs the fixed value ⁇ generated by the key generation unit 140 to the encryption tag generation device 200 and the search key generation device 300.
  • the fixed value ⁇ may be disclosed or may be output as secret information to the encrypted tag generation device 200 and the search key generation device 300 using a secure communication path.
  • the encrypted tag generation device 200 includes an information acquisition unit 210, a tag generation unit 220, and an encrypted tag output unit 230.
  • the information acquisition unit 210 acquires the public key pk and the fixed value ⁇ from the key generation device 100, and also acquires the attribute vector x ⁇ input from the input device connected to the confidential search system 10.
  • Tag generator 220 a public key pk, using a fixed value beta, the attribute vector x ⁇ , to generate an encrypted tag ET x containing the tag vector c t on one or more of the basis B.
  • the tag generator 220 includes a random number generator 221 and an element generator 222. Operations of the random number generation unit 221 and the element generation unit 222 will be described later.
  • the encrypted tag output unit 230 outputs the encrypted tag ET x to the search device 500.
  • the search key generation device 300 includes an information acquisition unit 310, a key generation unit 320, and a key output unit 330.
  • the information acquisition unit 310 acquires the public key pk, the secret key sk, and the fixed value ⁇ from the key generation device 100, and also acquires the predicate vector v ⁇ from the input device connected to the confidential search system 10.
  • the key generation unit 320 uses the public key pk, the secret key sk, the fixed value ⁇ , and the predicate vector v ⁇ to generate the search key TD v in which the position of each character of the character string is designated and set. To do.
  • the key generation unit 320 generates the search key TD v including the search vector k * t on one or more bases B * .
  • the key generation unit 320 includes a random number generation unit 321, a secret value generation unit 322, and an element generation unit 323. Operations of the random number generation unit 321, the secret value generation unit 322, and the element generation unit 323 will be described later.
  • the key output unit 330 outputs the search key TD v generated by the key generation unit 320 to the search device 500.
  • the search device 500 includes an information acquisition unit 510, a search determination unit 520, and a result output unit 530.
  • the information acquisition unit 510 acquires the public key pk from the key generation device 100.
  • the information acquisition unit 510 also acquires the encrypted tag ET x from the encrypted tag generation device 200. Further, the information acquisition unit 510 acquires the search key TD v from the search key generation device 300.
  • Search determination unit 520 a plurality of encrypted tag ET x encrypted tag generator 200 has generated, a plurality of the character string is set to the specified position from the encrypted tag ET x, search For each character set in the search key TD v generated by the key generation device 300, the encryption tag ET x in which the character and the character set in the position designated for the character match is searched.
  • the search determination unit 520 determines whether or not there is a search hit by decrypting the encrypted tag ET x using the public key pk and the search key TD v .
  • the search determination unit 520, a plurality of encrypted tag ET x encrypted tag generator 200 has generated, to search the encrypted tag ET x corresponding to the search key TD v a search key generating apparatus 300 generates.
  • the result output unit 530 outputs 0 indicating that the search is hit or 1 indicating that the search is not hit.
  • the processing of the KG algorithm will be described with reference to FIG.
  • the KG algorithm is executed by the key generation device 100.
  • the KG algorithm corresponds to the key generation step in the secret search method according to the first embodiment. Further, the KG algorithm corresponds to the key generation process in the secret search program according to the first embodiment.
  • Step S101 Information acquisition process
  • the information acquisition unit 110 acquires the security parameter ⁇ .
  • the security parameter ⁇ is input by an administrator of the confidential search system 10 or the like using an input device.
  • Step S102 Base Generation Processing
  • the basis generation unit 120 calculates the following equation (13) using the security parameter ⁇ as an input, and calculates the basis B 0 , the basis B * 0 , the basis B 1 , the basis B * 1, and the dual pairing vector. Generate the space parameter param and.
  • the basis B 1 and the basis B * 1 are also referred to as the basis B and the basis B * , respectively.
  • the fixed value ⁇ is generated as an element of F q having a sufficiently large order.
  • G bpg is a function that generates a bilinear pairing group
  • G dpvs is a function that generates a dual pairing vector space.
  • Step S104 Public Key Generation Processing
  • the key generation unit 140 In step S104, the key generation unit 140, a partial base B ⁇ 0 of the basis B 0 generated in step S102, it generates the partial base B ⁇ of the base B as shown in the following equation (14).
  • the key generation unit 140 sets the partial bases B ⁇ 0 and B ⁇ and the parameter param generated in step S102 as the public key pk.
  • step S105 the key generation unit 140, a partial base B ⁇ * 0 of the basis B * 0 generated in step S102, base B * partial base B ⁇ * and of, as shown in the following equation (15) To generate.
  • the notation " ⁇ " means that ⁇ is added to the upper part of the symbol described before it.
  • the key generation unit 140 sets the partial base B ⁇ * 0 and the partial base B ⁇ * as the secret key sk.
  • Step S107 Key Output Processing
  • the key output unit 150 outputs the public key pk generated in step S104 to a public server or the like to publish the public key pk.
  • the key output unit 150 also secretly outputs the secret key sk generated in step S105 to the search key generation device 300.
  • the key output unit 150 outputs the fixed value ⁇ generated in step S102 to the encryption tag generation device 200 and the search key generation device 300. At this time, by releasing the fixed value ⁇ , the fixed value ⁇ may be output to the encryption tag generation device 200 and the search key generation device 300, and the secret information is secured to the encryption tag generation device 200 and the search key generation device 300. You may output using a communication path.
  • the TagGen algorithm is executed by the encrypted tag generation device 200.
  • the TagGen algorithm corresponds to the encrypted tag generation step in the confidential search method according to the first embodiment.
  • the TagGen algorithm corresponds to the encrypted tag generation process in the secret search program according to the first embodiment.
  • Step S201 Information acquisition process
  • the information acquisition unit 210 acquires the public key pk published by the key generation device 100. Further, the information acquisition unit 210 acquires the fixed value ⁇ output by the key generation device 100.
  • the information acquisition unit 210 acquires the attribute vector x ⁇ input by the input device by the user of the encrypted tag generation device 200 or the like.
  • the attribute vector x ⁇ is expressed by the following equation.
  • Attribute vector x ⁇ : ⁇ (t,x t )
  • Ix is a set of indexes.
  • each element x t of the attribute vector x ⁇ is set with each character of the character string serving as the search tag, as described with reference to FIGS.
  • Step S202 Random Number Generation Process
  • the random number generation unit 221 generates a random number as shown in the following expression (16).
  • Step S203 Tag Element Generation Processing
  • the element generation unit 222 receives the public key pk and the attribute vector x ⁇ acquired in step S201 and the random number generated in step S202 as input, and outputs the tag vector as shown in the following expression (17).
  • Generate c 0 a tag vector c t for each integer t of t ⁇ Ix, and a tag vector c T.
  • is a fixed element of F q having a sufficiently large order.
  • Step S204 Tag Output Processing
  • the encrypted tag output unit 230 outputs the encrypted tag ET x to the search device 500.
  • the encryption tag ET x includes the index set Ix acquired in step S201 and the tag vector c t and the tag vector c T for each integer t of the tag vectors c 0 and t ⁇ Ix generated in step S203. Include as an element.
  • the TrapGen algorithm is executed by the search key generation device 300.
  • the TrapGen algorithm corresponds to the search key generation step in the secret search method according to the first embodiment. Further, the TrapGen algorithm corresponds to the search key generation process in the secret search program according to the first embodiment.
  • Step S301 Information acquisition process
  • the information acquisition unit 310 acquires the public key pk disclosed by the key generation device 100 and the secret key sk output by the key generation device 100. Further, the information acquisition unit 310 acquires the fixed value ⁇ output by the key generation device 100.
  • the information acquisition unit 310 acquires the predicate vector v ⁇ input by the input device by the user of the search key generation device 300 or the like.
  • the predicate vector v ⁇ is expressed by the following equation.
  • Predicate vector v ⁇ : ⁇ (t,v t )
  • Iv is a set of indexes.
  • each element v t of the predicate vector v ⁇ is set with each character of the character string to be the search character string, as described with reference to FIGS. 5 to 7.
  • Step S302 Random Number Generation Process
  • Step S303 Secret Value Generation Processing
  • Step S304 Key Element Generation Processing
  • the element generation unit 323 uses the public key pk, the secret key sk, and the predicate vector v ⁇ obtained in step S301, the random number generated in step S302, and the secret value s 0 generated in step S303.
  • a search vector k * 0 and a search vector k * t for each integer t of t ⁇ Iv are generated as shown in the following equation (19).
  • is a fixed element of F q having a sufficiently large order.
  • Step S305 Key output process
  • the key output unit 330 outputs the search key TD v to the search device 500.
  • Search key TD v includes a set Iv index acquired in step S301, a search vector k * t for each integer t search vector k * 0 and t ⁇ Iv generated in step S304 as an element.
  • the Search algorithm is executed by the search device 500.
  • the Search algorithm corresponds to the search step in the confidential search method according to the first embodiment.
  • the Search algorithm corresponds to the search process in the secret search program according to the first embodiment.
  • Step S501 Information acquisition process
  • the information acquisition unit 510 acquires the public key pk published by the key generation device 100.
  • the information acquisition unit 510 also acquires the encrypted tag ET x output by the encrypted tag generation device 200. Further, the information acquisition unit 510 acquires the search key TD v output by the search key generation device 300.
  • Step S502 Searchability determination process
  • the search determination unit 520 determines that the index set Iv included in the search key TD v acquired in step S501 is a subset of the index set Ix included in the encryption tag ET x acquired in step S501. Or not.
  • the search determination unit 520 determines that the search is possible and advances the process to step S503. On the other hand, if the index set Iv is not a subset of the index set Ix, it is determined that the search is impossible, and the process proceeds to step S507.
  • Step S503 Decoding process
  • the search determination unit 520 performs pairing operation on the tag included in the encrypted tag ET x and the search vector included in the search key TD v , as shown in the following formula (20), and the session is calculated. Calculate the key K.
  • the search determination unit 520 performs the process of decrypting the encrypted tag ET x using the public key pk and the search key TD v , which is the inner product predicate encryption method.
  • Step S504 Search determination process
  • the search determination unit 520 determines whether the session key K calculated in step S503 is equal to the tag vector c T included in the encrypted tag ET x .
  • Step S505 Result A Output Processing
  • the result output unit 530 outputs 0 indicating that the search is hit.
  • Step S507 Search Key Index Update Processing
  • the search determination unit 520 adds 1 to each element of the index set Iv included in the search key TD v acquired in step S501. Further, the search determination unit 520 adds 1 to the index t of each search vector k * t included in the search key TD v .
  • Step S508 Search End Determination Processing
  • the search determination unit 520 determines that the largest index included in the index set Iv included in the search key TD v updated in step S507 is the index included in the encrypted tag ET x acquired in step S501. If the index is less than or equal to the maximum index included in the set Ix of, the process proceeds to step S502, and otherwise proceeds to process S506.
  • the result output unit 530 outputs 1 indicating that the search is not hit.
  • the search device 500 by the search vector k * t included in the search key TD v, the calculation using the tag vector c t included in the encrypted tag ET x, corresponding to the retrieval key TD v Search for the encrypted tag ET x .
  • the retrieval unit 500 includes a search vector k * t included in the search key TD v, a tag vector c t included in the encrypted tag ET x, corresponding to the search vector k * t by the inner product computation of the tag vector c t that searches the encrypted tag ET x corresponding to the search key TD v.
  • the partial coincidence secret search can be realized by shifting the index t of the search vector k * t included in the search key TD v one by one and calculating the inner product. Since this update of the index t is a simple index replacement, it does not require any special search key conversion processing and is fast. On the other hand, as described with reference to FIG. 6 or FIG. 7, it is not possible to search after separating or replacing the search character strings, and it is possible to prevent an unintended search by a malicious third party.
  • the confidentiality detection system includes the key generation device 100, the encryption tag generation device 200, the search key generation device 300, and the search device 500.
  • the key generation device 100, the encryption tag generation device 200, the search key generation device 300, and the search device 500 are composed of, for example, computers.
  • the key generation device 100, the encryption tag generation device 200, the search key generation device 300, and the search device 500 include a processor 901, an auxiliary storage device 902, a memory 903, a communication device 904, an input interface 905, a display interface 906, and the like. Equipped with hardware.
  • the processor 901 is connected to other hardware via a signal line 910 and controls these other hardware.
  • the input interface 905 is connected to the input device 907 by a cable 911.
  • the display interface 906 is connected to the display 908 by a cable 912.
  • the processor 901 is an IC (Integrated Circuit) that performs processing.
  • the processor 901 is, for example, a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit).
  • the auxiliary storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or an HDD (Hard Disk Drive).
  • the memory 903 is, for example, a RAM (Random Access Memory).
  • the communication device 904 includes a receiver 9041 for receiving data and a transmitter 9042 for transmitting data.
  • the communication device 904 is, for example, a communication chip or a NIC (Network Interface Card).
  • the input interface 905 is a port to which the cable 911 of the input device 907 is connected.
  • the input interface 905 is, for example, a USB (Universal Serial Bus) terminal.
  • the display interface 906 is a port to which the cable 912 of the display 908 is connected.
  • the display interface 906 is, for example, a USB terminal or an HDMI (registered trademark) (High Definition Multimedia Interface) terminal.
  • the input device 907 is, for example, a mouse, a keyboard or a touch panel.
  • the display 908 is, for example, an LCD (Liquid Crystal Display).
  • a program for realizing the function of 530 is stored.
  • the information acquisition unit 310, the key generation unit 320, the random number generation unit 321, the secret value generation unit 322, the element generation unit 323, the key output unit 330, the information acquisition unit 510, the search determination unit 520, and the result output unit 530 are collected together. , "Each part”.
  • This program is loaded into the memory 903, read into the processor 901, and executed by the processor 901.
  • auxiliary storage device 902 also stores an OS (Operating System).
  • OS Operating System
  • the processor 901 executes the OS while executing a program that realizes the functions of “each part”.
  • the key generation device 100, the encryption tag generation device 200, the search key generation device 300, the post-conversion search key generation device 400, and the search device 500 May be composed of a plurality of processors 901. Then, the plurality of processors 901 may execute programs that realize the functions of “each part” in cooperation with each other.
  • each part may be provided as a “circuitry”. Further, each of the “respective parts” may be read as a “circuit” or “step” or “procedure” or “processing”. “Circuit” and “Circuitry” include not only the processor 901 but also other types of processing circuits such as logic IC or GA (Gate Array), ASIC (Application Specific Integrated Circuit), or FPGA (Field-Programmable Gate Array). It is an inclusive concept.
  • 10 secret search system 100 key generation device, 110 information acquisition unit, 120 base generation unit, 140 key generation unit, 150 key output unit, 200 encrypted tag generation device, 210 information acquisition unit, 220 tag generation unit, 221 random number generation Unit, 222 element generation unit, 230 encryption tag output unit, 300 search key generation device, 310 information acquisition unit, 320 key generation unit, 321 random number generation unit, 322 secret value generation unit, 323 element generation unit, 330 key output unit , 500 search device, 510 information acquisition unit, 520 search determination unit, 530 result output unit, pk public key, sk private key, B, B * basis, B ⁇ , B ⁇ * partial basis, param parameter, Ix, Iv index , X ⁇ attribute vector, v ⁇ predicate vector, k * search vector, ET x encryption tag, TD v search key.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

秘匿検索システムは、検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成し、被検索文字列の各文字が位置を指定されて設定された複数の暗号化タグETxから、生成した検索鍵TDvに対応する暗号化タグを検索する。特に、秘匿検索システムは、検索鍵TDvおよび暗号化タグETxの一方に各文字の位置tを設定し、他方に符号を反転した各文字の位置-tを設定することにより、検索の際に、双方に設定された位置tと位置-tとを打ち消すことで、検索鍵TDvを部分文字列として含むような暗号化タグETxを検索する。

Description

秘匿検索システムおよび秘匿検索方法
 この発明は、複数の被検索文字列の中から検索文字列を含む被検索文字列を検索する秘匿検索システムおよび秘匿検索方法に関する。
 秘匿検索とは、暗号化したままデータを検索することが可能な技術である。クラウドサービスの広がりを見せる現代において、安価かつ手間なく利用可能なクラウドストレージが、一般的に用いられるようになりつつある。一方で、極めて慎重に取り扱うべきセンシティブな情報である機微な情報を含むデータをクラウドで管理するような場合は、情報漏洩のリスクがある。そのため、データを暗号化して保管する必要がある。秘匿検索は、暗号化されているデータであっても、当該データを復号することなく検索が行えるため、安全性と利便性を両立することが可能である。
 秘匿検索では、2つの暗号化されたキーワードを用いることで検索を実現する。1つ目は、データに関連付けるキーワード(以下、被検索文字列とする)の暗号文で、暗号化タグという。2つ目は、検索するキーワード(以下、検索文字列とする)の暗号文で、検索鍵という。データを登録するときは、暗号化したデータと暗号化タグとをストレージサーバに登録する。このとき、暗号化タグは関連付けられているデータまたはデータの識別子と紐づけられて、暗号化索引として保管される。秘匿検索は、検索者が送信する検索鍵と一致する暗号化タグを、暗号化索引内から復号することなく特定することで、データおよびキーワードの情報を露出することなく実現される。
 秘匿検索では、被検索文字列と検索文字列とが等しい場合に一致と判定する方式(以下、完全一致秘匿検索とする)と、被検索文字列に検索文字列が含まれる場合に一致と判定する方式(以下、部分一致秘匿検索という)とが知られている。部分一致秘匿検索は、暗号化タグの部分文字列と一致判定が可能なため、完全一致秘匿検索よりもあいまいな検索を実現でき、利便性が高い。部分一致秘匿検索の実現方法の一つに、文字または単語など部分文字列毎に暗号文を生成する方式がある。暗号化タグまたは検索鍵の部分文字列を入れ替えたり切り離したりしてさらに検索が可能な場合、頻度分析等の攻撃手法により、部分文字列情報が漏洩する可能性がある。そのため、登録者または検索者が意図しない検索を悪意のある第三者に実行させない仕組みが必要である。
 特許文献1および特許文献2は、部分一致秘匿検索を実現することが可能な手法をそれぞれ示している。ただし、特許文献1の手法は、暗号化タグの生成と検索鍵の生成とにおいて、同じ鍵を使用するため、権限が分離できない。特許文献2の手法は、暗号化タグの生成と検索鍵の生成とで異なる鍵を使用でき、さらに検索者毎に異なる権限を持つ鍵を生成可能なため、安全性が特許文献1より高い。また、特許文献2の手法は、暗号文への分散値の埋め込み、および、部分一致検索時に必要な秘密鍵(以下、シフト用秘密鍵)を導入することで、悪意のある第三者による意図しない検索を防止している。
 また、非特許文献1は、安全性が高く、部分一致秘匿検索に利用可能な暗号方式を示している。しかしながら、非特許文献1には、特許文献2のような検索鍵変換による検索者端末から検索装置へ送信される検索情報量の削減を行うための手法については記載されていない。以下、特許文献2の検索鍵変換について説明する。
 上述したように、特許文献2は、権限を分離することで、安全性が高く柔軟性のある部分一致秘匿検索を実現している。しかしながら、特許文献2では、暗号化タグの部分文字列と検索鍵とが一致するか否かの判定を行うために、暗号化タグの部分文字列の先頭文字位置と検索鍵の先頭文字位置とを合わせる処理を行う必要がある。当該処理を「検索鍵変換」という。このように、特許文献2では、検索鍵変換を行う必要があり、暗号化タグまたは検索鍵の文字数によっては、検索時間の大幅な増加を招く可能性がある。
国際公開第2017/122352号 国際公開第2016/113878号
Tatsuaki Okamoto and Katsuyuki Takashima,"Fully Secure Unbounded Inner-Product and Attribute-Based Encryption",Asiacrypt 2012,LNCS 7658,2012年,p.349-366
 上述したように、特許文献2における検索処理は、検索鍵変換処理の計算量が大きいため、暗号化タグの部分文字列と検索鍵とが一致するか否かの判定を多用する場合には、検索時間が長くなるという課題があった。
 この発明は、かかる課題を解決するためになされたものであり、悪意のある第三者による意図しない検索を防止しつつ、検索時間の短縮化を図ることが可能な秘匿検索システムおよび秘匿検索方法を得ることを目的とする。
 この発明に係る秘匿検索システムは、検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する検索鍵生成部と、被検索文字列の各文字が位置を指定されて設定された暗号化タグETxを生成する暗号化タグ生成部と、前記暗号化タグETxの中から、前記検索鍵TDvに対応する暗号化タグETxを検索する検索部とを備え、前記検索鍵TDvに含まれる要素および前記暗号化タグETxに含まれる要素の一方に、前記各文字の位置を示すインデックスtが設定され、他方に、前記インデックスtの符号を反転したインデックス-tが設定され、検索時に、前記検索鍵TDvと前記暗号化タグETxとに設定された前記インデックスtと前記インデックス-tとを加算することで、前記インデックスtと前記インデックス-tとを打消して、前記検索鍵TDvに対応する前記暗号化タグETxを検索する。
 この発明に係る秘匿検索方法は、検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する検索鍵生成ステップと、被検索文字列の各文字が位置を指定されて設定された複数の暗号化タグETxを生成する暗号化タグ生成ステップと、複数の前記暗号化タグETxから、前記検索鍵TDvに対応する暗号化タグETxを検索する検索ステップとを備え、前記検索鍵TDvに含まれる要素および前記暗号化タグETxに含まれる要素の一方に、前記各文字の位置を示すインデックスtが設定され、他方に、前記インデックスtの符号を反転したインデックス-tが設定され、検索時に、前記検索鍵TDvと前記暗号化タグETxとに設定された前記インデックスtと前記インデックス-tとを加算することで、前記インデックスtと前記インデックス-tとを打消して、前記検索鍵TDvに対応する前記暗号化タグETxを検索する。
 この発明に係る秘匿検索システムおよび秘匿検索方法によると、悪意のある第三者による意図しない検索を防止しつつ、検索時間の短縮化を図ることができる。
内積述語暗号における内積の取り方の説明図である。 内積述語暗号における内積の取り方の説明図である。 内積述語暗号の基本構成の説明図である。 この発明の実施の形態1に係る部分一致秘匿検索方式のキーテクニックの説明図である。 この発明の実施の形態1に係る部分一致秘匿検索方式の実現例の説明図である。 この発明の実施の形態1に係る部分一致秘匿検索方式の実現例の説明図である。 この発明の実施の形態1に係る部分一致秘匿検索方式の実現例の説明図である。 この発明の実施の形態1に係る秘匿検索システムの構成図である。 この発明の実施の形態1に係る鍵生成装置の構成図である。 この発明の実施の形態1に係る暗号化タグ生成装置の構成図である。 この発明の実施の形態1に係る検索鍵生成装置の構成図である。 この発明の実施の形態1に係る検索装置の構成図である。 この発明の実施の形態1に係るKGアルゴリズムの処理のフローチャートである。 この発明の実施の形態1に係るTagGenアルゴリズムの処理のフローチャートである。 この発明の実施の形態1に係るTrapGenアルゴリズムの処理のフローチャートである。 この発明の実施の形態1に係るSearchアルゴリズムの処理のフローチャートである。 この発明の実施の形態1に係る鍵生成装置と、暗号化タグ生成装置と、検索鍵生成装置と、変換後検索鍵生成装置と、検索装置とのハードウェア構成例を示す図である。
 実施の形態1.
 以下、この発明の実施の形態1に係る秘匿検索システムについて、図面を用いて説明する。
 <記法の説明>
 はじめに、以下の説明における記法について説明する。
 Aがランダムな値または分布であるとき、下式(1)は、Aの分布に従い、Aからyをランダムに選択することを表す。つまり、下式(1)において、yは乱数である。
Figure JPOXMLDOC01-appb-M000001
 Aが集合であるとき、下式(2)は、Aからyを一様に選択することを表す。つまり、下式(2)において、yは一様乱数である。
Figure JPOXMLDOC01-appb-M000002
 下式(3)は、yにzが設定されたこと、yがzにより定義されたこと、または、yがzを代入されたことを表す。
Figure JPOXMLDOC01-appb-M000003
 aが定数であるとき、下式(4)は、機械AまたはアルゴリズムAが、入力xに対して、aを出力することを表し、下式(5)は、a=1の場合を例示した式である。
Figure JPOXMLDOC01-appb-M000004
 下式(6)は、位数qの体を表す。
Figure JPOXMLDOC01-appb-M000005
 ベクトルxは、有限体Fqにおける下式(7)のようなベクトル表現を表す。なお、表記「」は、その前に記載された記号の上部に→が付されることを意味しており、ベクトルを表している。
Figure JPOXMLDOC01-appb-M000006
 下式(8)は、下式(9)に示す2つのベクトルxおよびvの下式(10)に示す内積を表す。
Figure JPOXMLDOC01-appb-M000007
 XTは、行列Xの転置行列を表す。
 また、下式(11)に示す基底Bと基底B*とは、下式(12)の関係を満たす。
Figure JPOXMLDOC01-appb-M000008
 <実施の形態1の概要の説明>
 本実施の形態1では、内積述語暗号を応用して、部分一致秘匿検索方式を実現する。
 図1および図2に基づき、内積述語暗号における内積の取り方について説明する。
 図1に示すように、暗号文がベクトルx=(x1,x2,...,xn)であり、鍵がベクトルv=(v1,v2,...,vn)であるとする。暗号文のベクトルxと鍵のベクトルvとの要素数は同じである。この場合、内積述語暗号では、ベクトルxとベクトルvとの内積Σi=1 n(xi・vi)が計算され、暗号文が鍵により復号される。つまり、暗号文のベクトルxと鍵のベクトルvとの対応する要素毎の内積の和が計算され、暗号文が鍵により復号される。
 また、図2に示すように、暗号文がベクトルx=(x1,x2)であり、鍵がベクトルv=(v1,v2,...,vn)であるように、暗号文のベクトルxと鍵のベクトルvとの要素数が異なる場合もある。この場合にも、暗号文のベクトルxと鍵のベクトルvとの対応する要素毎の内積の和が計算され、暗号文が鍵により復号される。図2の場合、ベクトルxの要素x1,x2が、ベクトルvの要素v1,v2にそれぞれ対応しているので、これらの要素毎の内積の和が計算される。一方、ベクトルvの要素v3,...,vnについては、対応するベクトルxの要素がないため、内積は計算されない。
 次に、図3に基づき、内積述語暗号の基本構成について説明する。
 一般に、内積述語暗号では、秘密値s0と、t∈Ivの各整数tについての分散値stとが用いられる。秘密値s0と分散値stとには、s0=Σt∈Ivtという関係がある。ここで、tはインデックスであり、Ivは、インデックスtの集合である。
 鍵は、秘密値s0が設定された基底B* 0上のベクトルである要素k* 0と、t∈Ivの各整数tについて、分散値stと属性値vtとインデックスtとが設定された基底B*上のベクトルである要素k* tとを含む。一方、暗号文は、基底B* 0に対応する基底B0上のベクトルである要素c0と、t∈Ixの各整数tについて、属性値xtとインデックスtとが設定された、基底B*に対応する基底B上のベクトルである要素ctとを含む。ここで、Ixは、インデックスtの集合である。
 そして、要素k* 0と要素c0との内積が計算されるとともに、t∈Ivとの各整数tについて、鍵に含まれる要素k* tと、暗号文に含まれる要素ctとの内積が計算される。t∈Ivの各整数tについては、要素k* tに設定された属性値vtと、要素ctに設定された属性値xtとが対応している場合に、分散値stが得られる。s0=Σt∈Ivtであるため、t∈Ivの全ての要素k* tに設定された分散値stが得られると、要素k* 0に設定された秘密値s0が得られる。そして、この場合に、暗号文が鍵により復号できる。
 なお、上述したように、要素k* tと要素ctとには、インデックスtが設定されている。そのため、i≠jの整数i,jについて、属性値viと属性値xjとが対応していたとしても、要素k* iと要素cjとの内積を計算しても分散値siが得られることはない。ここで、インデックスtは、被検索文字列および検索文字列における各文字の位置を示す。
 次に、図4に基づき、実施の形態1に係る部分一致秘匿検索方式のキーテクニックを説明する。
 上述した内積述語暗号の基本構成では、暗号文の要素ctと鍵の要素k* tのインデックスtに関連する各要素μ(t,-1)およびσ(1,t)によって、悪意のある第三者による意図しない検索を防止している。一方で、同じインデックスtを共有する要素同士でなければ分散値siを計算できないため、追加の仕組みおよび追加の計算なしに部分一致秘匿検索は実現が困難である。
 そこで、本実施の形態1では、インデックスtの設定方法を変更する。図4に示すように、まず、新たに、分散値τtを使用する。すなわち、本実施の形態1においては、内積述語暗号において、秘密値s0と、t∈Ivの各整数tについての第1の分散値stと、t∈Ivの各整数tについての第2の分散値τtとが用いられる。秘密値s0と分散値stとには、s0=Σt∈Ivtという関係がある。また、各整数tについての分散値τtは、0=Σt∈Ivτtの関係を満たす。
 次に、本実施の形態1においては、暗号文の要素ctには、σ(1,t)に代えて、γβ-tを設定する。また、鍵の要素k* tには、μ(t,-1)に代えて、γ’βtτtを設定する。すなわち、本実施の形態1においては、鍵は、要素k* 0と要素k* tとを含む。要素k* 0は、秘密値s0が設定された基底B* 0上のベクトルである。要素k* tは、t∈Ivの各整数tについて、第1の分散値stと第2の分散値τtと属性値vtとインデックスtとが設定された基底B*上のベクトルである。一方、暗号文は、要素c0と要素ctとを含む。要素c0は、基底B* 0に対応する基底B0上のベクトルである。要素ctは、t∈Ixの各整数tについて、属性値xtとインデックス-tとが設定された、基底B*に対応する基底B上のベクトルである。
 ここで、βは、位数が十分大きいFqの固定された元とし、γおよびγ’は乱数とする。ただし、βの冪の符号は暗号文と鍵とで入れ替えても構わない。すなわち、上記の説明においては、検索文字列である鍵にインデックスtを設定し、被検索文字列である暗号文にインデックス-tを設定すると説明した。しかしながら、その場合に限らず、検索文字列である鍵にインデックス-tを設定し、被検索文字列である暗号文にインデックスtを設定するようにしてもよい。また、γおよびγ’は省略しても構わない。また、βは公開しても構わないが、秘密情報として登録者と検索者との間で安全な通信路を用いて事前に共有しても構わない。
 このことにより、例えば同じインデックスtを共有する暗号文と鍵とで部分一致秘匿検索を行う場合、各インデックスtにおける各暗号文の要素ctと各鍵の要素k* tとで内積を計算する。その結果、各インデックスtにおいてβの冪要素が打ち消しあい、γγ’τtを取り出すことができる。このとき、0=γγ’Σt∈Ivτtであることから、τtの項は打ち消しあって、残った分散値siを得ることができる。
 次に、鍵の要素のインデックスtに対して暗号文の要素のインデックスをαだけずらして部分一致秘匿検索を行う場合について説明する。即ち、この場合は、暗号文の要素ct+αに対して鍵の要素k* tとの内積を計算することになり、各インデックスtにおいてγγ’βτtを取り出すことができる。この結果、0=γγ’βΣt∈Ivτtであることから、この場合も、τtの項は打ち消しあって、残った分散値siを得ることができる。
 言い換えると、一定の幅αだけ、鍵の全要素をずらす場合のみ一致判定が可能となる。これは、即ち、検索鍵変換処理を行わずに部分一致秘匿検索を実現し、一方で、文字の入れ替えまたは切り離しによる意図しない検索を防止することができることを意味する。
 このように、本実施の形態1においては、内積述語暗号において、第1の分散値stと第2の分散値τtとを用いる。また、検索文字列である鍵と被検索文字列である暗号文において、一方にインデックスtを設定し、他方に符号を反転させたインデックス-tを設定する。これにより、内積を計算する際に、インデックスtを打ち消すことができる。その結果、特許文献2で必要であった検索鍵変換処理が不要となり、検索時間の短縮を図ることができる。また、悪意のある第三者による意図しない検索を防止することができる。
 図5に基づき、本実施の形態1に係る部分一致秘匿検索方式の実現例を説明する。
 図5に示すように、データベースに、ABCDEという検索タグとなる被検索文字列が暗号化されて生成された暗号化タグETxが記憶されている。このとき、検索文字列として、CDという文字列が与えられたとする。
 この場合、ABCDEという被検索文字列の各文字を属性値xtとして、暗号文の要素ctが生成される。つまり、要素c1には属性値Aが設定され、要素c2には属性値Bが設定され、要素c3には属性値Cが設定され、要素c4には属性値Dが設定され、要素c5には属性値Eが設定される。このように、暗号化タグETxは、被検索文字列の各文字が位置を指定されて設定されている。
 一方、CDという文字列の各文字を属性値vtとして、検索鍵TDvが生成される。つまり、要素k* 1には属性値Cが設定され、要素k* 2には属性値Dが設定される。このように、検索鍵TDvは、検索文字列の各文字が位置を指定されて設定されている。
 検索処理では、図5に示すように、検索鍵TDvの要素k* tを1つずつ順にずらして暗号化タグETxを順に復号して、一致判定を行う。この実現例では、要素c3,c4を要素k* 1,k* 2で復号したときに一致となる。
 次に、図6に基づき、本実施の形態1に係る部分一致秘匿検索方式の他の実現例を説明する。
 データベースに、ABCDEという検索タグとなる被検索文字列が暗号化された暗号化タグETxが記憶されており、検索文字列として、BDという文字列が与えられたとする。
 この場合、ABCDEという被検索文字列の各文字を属性値xtとして、暗号文の要素ctが生成される。つまり、要素c1には属性値Aが設定され、要素c2には属性値Bが設定され、要素c3には属性値Cが設定され、要素c4には属性値Dが設定され、要素c5には属性値Eが設定される。
 一方、BDという検索文字列の各文字を属性値vtとして、検索鍵TDvが生成される。つまり、要素k* 1には属性値Bが設定され、要素k* 2には属性値Dが設定される。
 この実現例では、例えば、意図しない検索として、要素k* 1,k* 2を不正に分離して要素c2,c4を復号した場合を考える。このとき、各要素の属性値が一致しているため、内積の結果としてvtおよびxt成分は打ち消されて0となる。一方で、内積の結果として取り出されるτtの項は、γγ’(β-1τ1+β-2τ2)≠0となり、打ち消されないため、部分一致秘匿検索の結果は不一致となる。
 次に、図7に基づき、実施の形態1に係る部分一致秘匿検索方式のさらなる他の実現例を説明する。
 データベースに、ABCDEという検索タグとなる被検索文字列が暗号化された暗号化タグが記憶されており、検索文字列として、BAという文字列が与えられたとする。
 この場合、ABCDEという被検索文字列の各文字を属性値xtとして、暗号文の要素ctが生成される。つまり、要素c1には属性値Aが設定され、要素c2には属性値Bが設定され、要素c3には属性値Cが設定され、要素c4には属性値Dが設定され、要素c5には属性値Eが設定される。
 一方、BAという文字列の各文字を属性値vtとして、検索鍵が生成される。つまり、要素k* 1には属性値Bが設定され、要素k* 2には属性値Aが設定される。
 この実現例では、例えば、意図しない検索として、要素k* 1,k* 2を不正に置換して要素c1,c2を復号した場合を考える。このとき、各要素の属性値が一致しているため、内積の結果としてvtおよびxt成分は打ち消されて0となる。一方で、内積の結果として取り出されるτtの項は、γγ’(β-1τ1+β1τ2)≠0となり、打ち消されないため、部分一致秘匿検索の結果は不一致となる。
 このように、本実施の形態1においては、図5に示すように、一定の幅αだけ、鍵の全要素をずらす場合のみ一致判定が可能となる。一方、図6に示すような文字の切り離し、および、図7に示すような文字の入れ替えなどの、意図しない検索の場合には、一致判定が不可能になる。これにより、悪意のある第三者による意図しない検索を防止することができる。
 <実施の形態1に係る秘匿検索システムの構成の説明>
 本実施の形態1に係る秘匿検索システム10の構成を説明する前に、本実施の形態1における部分一致秘匿検索方式の基本構成について説明する。
 本実施の形態1に係る秘匿検索システム10で用いられる部分一致秘匿検索方式は、KGアルゴリズムと、TagGenアルゴリズムと、TrapGenアルゴリズムと、Searchアルゴリズムとを備える。
 KGアルゴリズムは、セキュリティパラメータλを入力として、公開鍵pkと、秘密鍵skとを出力するアルゴリズムである。
 TagGenアルゴリズムは、公開鍵pkと、属性ベクトルxとを入力として、暗号化タグETxを出力する確率的アルゴリズムである。
 TrapGenアルゴリズムは、公開鍵pkと、秘密鍵skと、述語ベクトルvとを入力として、検索鍵TDvを出力する確率的アルゴリズムである。
 Searchアルゴリズムは、公開鍵pkと、暗号化タグETxと、検索鍵TDvとを入力として、検索にヒットしたことを示す0、または、検索にヒットしなかったことを示す1を出力する確定的アルゴリズムである。
 図8に基づき、本実施の形態1に係る秘匿検索システム10について説明する。
 図8に示す秘匿検索システム10は、検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する。また、秘匿検索システム10は、被検索文字列の各文字が位置を指定されて設定された複数の暗号化タグETxを生成する。そして、秘匿検索システム10は、生成した検索鍵TDvに対応する暗号化タグETxを検索する。このとき、秘匿検索システム10は、上述したように、検索鍵TDvに各文字の位置を示すインデックスtを設定し、暗号化タグETxに、インデックスtの符号を反転したインデックス-tを設定している。そのため、検索時に、検索鍵TDvと暗号化タグETxとに設定されたインデックスtとインデックス-tとを加算することで、双方に設定された位置を打消して、検索鍵TDvを部分文字列として含む暗号化タグETxを検索する。
 図8に示すように、秘匿検索システム10は、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とを備える。
 なお、ここでは、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とをそれぞれ別の装置としているが、これらの装置のうち2つ以上の装置が1つの装置として構成されていてもよい。したがって、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とを、それぞれ、鍵生成部と、暗号化タグ生成部と、検索鍵生成部と、検索部と読み替え、或る1つ以上の装置の各構成要素としてもよい。
 鍵生成装置100は、セキュリティパラメータλを入力として、KGアルゴリズムを実行して、公開鍵pkと、秘密鍵skと、固定値βとを出力する。セキュリティパラメータλは、秘匿検索システム10の管理者等によって、秘匿検索システム10の入力インタフェースに接続された入力装置により入力される。
 暗号化タグ生成装置200は、公開鍵pkと、属性ベクトルxと、固定値βとを入力として、TagGenアルゴリズムを実行して、暗号化タグETxを生成する。属性ベクトルxは、秘匿検索システム10の管理者または暗号化タグ生成装置200の使用者等によって、秘匿検索システム10の入力インタフェースに接続された入力装置により入力される。
 検索鍵生成装置300は、公開鍵pkと、秘密鍵skと、述語ベクトルvと、固定値βとを入力として、TrapGenアルゴリズムを実行して、検索鍵TDvを生成する。述語ベクトルvは、秘匿検索システム10の管理者または検索鍵生成装置300の使用者等によって、秘匿検索システム10の入力インタフェースに接続された入力装置により入力される。
 検索装置500は、公開鍵pkと、暗号化タグETxと、検索鍵TDvとを入力として、Searchアルゴリズムを実行して、検索鍵TDvを部分文字列として含む暗号化タグETxを検索する。検索装置500は、検索においてヒットしたことを示す0、または、検索においてヒットしなかったことを示す1を出力する。
 次に、図9に基づき、本実施の形態1に係る鍵生成装置100の構成について説明する。
 図9に示すように、鍵生成装置100は、情報取得部110と、基底生成部120と、鍵生成部140と、鍵出力部150とを備える。
 情報取得部110は、秘匿検索システム10に接続された入力装置から入力されたセキュリティパラメータλを取得する。
 基底生成部120は、セキュリティパラメータλに基づき、部分一致秘匿検索方式を実現するための基礎となる基底B0と基底B* 0と基底Bと基底B*とを生成する。また、基底生成部120は、パラメータparamを生成する。これらの基底およびパラメータの生成方法については後述する。
 鍵生成部140は、基底B0および基底Bと、パラメータparamとを用いて、公開鍵pkを生成する。また、鍵生成部140は、基底B* 0および基底B*を用いて、秘密鍵skを生成する。さらに、鍵生成部140は、固定値βを生成する。公開鍵pk、秘密鍵skおよび固定値βの生成方法については後述する。
 鍵出力部150は、鍵生成部140が生成した公開鍵pkを公開する。また、鍵出力部150は、鍵生成部140が生成した秘密鍵skを、検索鍵生成装置300へ出力する。さらに、鍵出力部150は、鍵生成部140が生成した固定値βを、暗号化タグ生成装置200と検索鍵生成装置300へ出力する。このとき、固定値βは公開しても構わないし、秘密情報として暗号化タグ生成装置200と検索鍵生成装置300へ安全な通信路を用いて出力しても構わない。
 次に、図10に基づき、本実施の形態1に係る暗号化タグ生成装置200の構成を説明する。
 図10に示すように、暗号化タグ生成装置200は、情報取得部210と、タグ生成部220と、暗号化タグ出力部230とを備える。
 情報取得部210は、鍵生成装置100から公開鍵pkと固定値βとを取得するとともに、秘匿検索システム10に接続された入力装置から入力された属性ベクトルxを取得する。
 タグ生成部220は、公開鍵pkと、固定値βと、属性ベクトルxとを用いて、1つ以上の基底B上のタグベクトルctを含む暗号化タグETxを生成する。タグ生成部220は、乱数生成部221と、要素生成部222とを備える。乱数生成部221および要素生成部222の動作については後述する。
 暗号化タグ出力部230は、暗号化タグETxを検索装置500に出力する。
 次に、図11に基づき、本実施の形態1に係る検索鍵生成装置300の構成を説明する。
 図11に示すように、検索鍵生成装置300は、情報取得部310と、鍵生成部320と、鍵出力部330とを備える。
 情報取得部310は、鍵生成装置100から公開鍵pkと、秘密鍵skと、固定値βとを取得するとともに、秘匿検索システム10に接続された入力装置から述語ベクトルvを取得する。
 鍵生成部320は、公開鍵pkと、秘密鍵skと、固定値βと、述語ベクトルvとを用いて、文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する。ここでは、鍵生成部320は、1つ以上の基底B*上の検索ベクトルk* tを含む検索鍵TDvを生成する。鍵生成部320は、乱数生成部321と、秘密値生成部322と、要素生成部323とを備える。乱数生成部321、秘密値生成部322、および、要素生成部323の動作については、後述する。
 鍵出力部330は、鍵生成部320が生成した検索鍵TDvを検索装置500に出力する。
 次に、図12に基づき、本実施の形態1に係る検索装置500の構成を説明する。
 図12に示すように、検索装置500は、情報取得部510と、検索判定部520と、結果出力部530とを備える。
 情報取得部510は、鍵生成装置100から公開鍵pkを取得する。また、情報取得部510は、暗号化タグ生成装置200から、暗号化タグETxを取得する。さらに、情報取得部510は、検索鍵生成装置300から、検索鍵TDvを取得する。
 検索判定部520は、暗号化タグ生成装置200が生成した複数の暗号化タグETxであって、文字列の各文字が位置を指定されて設定された複数の暗号化タグETxから、検索鍵生成装置300が生成した検索鍵TDvに設定された各文字について、その文字と、その文字に対して指定された位置に設定された文字とが一致する暗号化タグETxを検索する。ここでは、検索判定部520は、公開鍵pkと検索鍵TDvとを用いて、暗号化タグETxを復号することにより、検索にヒットしたか否かを判定する。つまり、検索判定部520は、暗号化タグ生成装置200が生成した複数の暗号化タグETxから、検索鍵生成装置300が生成した検索鍵TDvに対応する暗号化タグETxを検索する。
 結果出力部530は、検索にヒットしたことを示す0、または、検索にヒットしなかったことを示す1を出力する。
 <実施の形態1に係る秘匿検索システムの動作の説明>
 以下、図13~図16に基づいて、本実施の形態1に係る秘匿検索システム10の動作について説明する。
 [KGアルゴリズムの処理の説明]
 はじめに、図13に基づいて、KGアルゴリズムの処理について説明する。上述した通り、KGアルゴリズムは、鍵生成装置100によって実行される。KGアルゴリズムは、本実施の形態1に係る秘匿検索方法における鍵生成ステップに相当する。また、KGアルゴリズムは、本実施の形態1に係る秘匿検索プログラムにおける鍵生成処理に相当する。
 [ステップS101:情報取得処理]
 ステップS101では、情報取得部110が、セキュリティパラメータλを取得する。セキュリティパラメータλは、秘匿検索システム10の管理者等によって入力装置により入力される。
 [ステップS102:基底生成処理]
 ステップS102では、基底生成部120が、セキュリティパラメータλを入力として、下式(13)を計算して、基底B0と基底B* 0と基底B1と基底B* 1と、双対ペアリングベクトル空間のパラメータparamとを生成する。ただし、以降では基底B1と基底B* 1とを、各々、基底Bと基底B*とも書く。さらに、固定値βを位数が十分大きいFqの元として生成する。
Figure JPOXMLDOC01-appb-M000009
 なお、上式(13)において、Gbpgは、双線形ペアリング群を生成する関数であり、Gdpvsは、双対ペアリングベクトル空間を生成する関数である。
 [ステップS104:公開鍵生成処理]
 ステップS104では、鍵生成部140が、ステップS102で生成された基底B0の部分基底B^0と、基底Bの部分基底B^とを下式(14)に示すように生成する。
Figure JPOXMLDOC01-appb-M000010
 鍵生成部140は、部分基底B^0およびB^と、ステップS102で生成されたパラメータparamとを、公開鍵pkとする。
 [S105:秘密鍵生成処理]
 ステップS105では、鍵生成部140は、ステップS102で生成された基底B* 0の部分基底B^* 0と、基底B*の部分基底B^*とを、下式(15)に示すように生成する。なお、表記「^」は、その前に記載された記号の上部に^が付されることを意味している。
Figure JPOXMLDOC01-appb-M000011
 鍵生成部140は、部分基底B^* 0および部分基底B^*を、秘密鍵skとする。
 [ステップS107:鍵出力処理]
 ステップS107では、鍵出力部150が、ステップS104で生成された公開鍵pkを公開用のサーバ等へ出力して、公開鍵pkを公開する。また、鍵出力部150は、ステップS105で生成された秘密鍵skを秘密裡に検索鍵生成装置300へ出力する。さらに、鍵出力部150は、ステップS102で生成された固定値βを暗号化タグ生成装置200と検索鍵生成装置300とへ出力する。このとき、固定値βを公開することで、暗号化タグ生成装置200と検索鍵生成装置300へ出力しても構わないし、秘密情報として暗号化タグ生成装置200と検索鍵生成装置300へ安全な通信路を用いて出力しても構わない。
 [TagGenアルゴリズムの処理の説明]
 次に、図14に基づき、本実施の形態1に係るTagGenアルゴリズムの処理を説明する。上述した通り、TagGenアルゴリズムは、暗号化タグ生成装置200によって実行される。TagGenアルゴリズムは、本実施の形態1に係る秘匿検索方法における暗号化タグ生成ステップに相当する。また、TagGenアルゴリズムは、本実施の形態1に係る秘匿検索プログラムにおける暗号化タグ生成処理に相当する。
 [ステップS201:情報取得処理]
 ステップS201では、情報取得部210が、鍵生成装置100によって公開された公開鍵pkを取得する。また、情報取得部210は、鍵生成装置100によって出力された固定値βを取得する。
 さらに、情報取得部210は、暗号化タグ生成装置200の使用者等によって入力装置により入力された、属性ベクトルxを取得する。属性ベクトルxは、次式で示される。
  属性ベクトルx:={(t,xt)|t∈Ix⊆{1,...}}
 ここで、Ixは、インデックスの集合である。例えば、属性ベクトルxの各要素xtには、図5~図7で説明したように、検索タグとなる文字列の各文字が設定される。
 [ステップS202:乱数生成処理]
 ステップS202では、乱数生成部221が、下式(16)に示すように、乱数を生成する。
Figure JPOXMLDOC01-appb-M000012
 [ステップS203:タグ要素生成処理]
 ステップS203では、要素生成部222が、ステップS201で取得された公開鍵pkおよび属性ベクトルxと、ステップS202で生成された乱数とを入力として、下式(17)に示すように、タグベクトルc0と、t∈Ixの各整数tについてのタグベクトルctと、タグベクトルcTとを生成する。ただし、βは位数が十分大きいFqの固定された元とする。
Figure JPOXMLDOC01-appb-M000013
 [ステップS204:タグ出力処理]
 ステップS204では、暗号化タグ出力部230が、暗号化タグETxを、検索装置500に出力する。暗号化タグETxは、ステップS201で取得されたインデックスの集合Ixと、ステップS203で生成されたタグベクトルc0およびt∈Ixの各整数tについてのタグベクトルctおよびタグベクトルcTとを要素として含む。
 [TrapGenアルゴリズムの処理の説明]
 次に、図15に基づき、本実施の形態1に係るTrapGenアルゴリズムの処理を説明する。上述した通り、TrapGenアルゴリズムは、検索鍵生成装置300によって実行される。TrapGenアルゴリズムは、本実施の形態1に係る秘匿検索方法における検索鍵生成ステップに相当する。また、TrapGenアルゴリズムは、本実施の形態1に係る秘匿検索プログラムにおける検索鍵生成処理に相当する。
 [ステップS301:情報取得処理]
 ステップS301では、情報取得部310が、鍵生成装置100によって公開された公開鍵pkと、鍵生成装置100によって出力された秘密鍵skとを取得する。また、情報取得部310は、鍵生成装置100によって出力された固定値βを取得する。
 さらに、情報取得部310は、検索鍵生成装置300の使用者等によって入力装置により入力された、述語ベクトルvを取得する。述語ベクトルvは、下式で表わされる。
  述語ベクトルv:={(t,vt)|t∈Iv⊆{1,...}}
 ここで、Ivは、インデックスの集合である。例えば、述語ベクトルvの各要素vtには、図5から図7で説明したように、検索文字列となる文字列の各文字が設定される。
 [ステップS302:乱数生成処理]
 ステップS302では、乱数生成部321が、下式(18)に示すように、乱数を生成する。ただし、τtはstとは異なり、0=Σt∈Ivτtを満たすように生成する。
Figure JPOXMLDOC01-appb-M000014
 [ステップS303:秘密値生成処理]
 ステップS303では、秘密値生成部322が、ステップS202で生成されたt∈Ivの各整数tについての乱数stを入力として、秘密値s0=Σt∈Ivtを生成する。
 [ステップS304:鍵要素生成処理]
 ステップS304では、要素生成部323が、ステップS301で取得された公開鍵pk、秘密鍵skおよび述語ベクトルvと、ステップS302で生成された乱数と、ステップS303で生成された秘密値s0とを入力として、下式(19)に示すように、検索ベクトルk* 0と、t∈Ivの各整数tについての検索ベクトルk* tとを生成する。ただし、βは位数が十分大きいFqの固定された元とする。
Figure JPOXMLDOC01-appb-M000015
 [ステップS305:鍵出力処理]
 ステップS305では、鍵出力部330が、検索鍵TDvを、検索装置500に出力する。検索鍵TDvは、ステップS301で取得されたインデックスの集合Ivと、ステップS304で生成された検索ベクトルk* 0およびt∈Ivの各整数tについての検索ベクトルk* tとを要素として含む。
 [Searchアルゴリズムの処理の説明]
 次に、図16に基づき、本実施の形態1に係るSearchアルゴリズムの処理を説明する。上述した通り、Searchアルゴリズムは、検索装置500によって実行される。Searchアルゴリズムは、本実施の形態1に係る秘匿検索方法における検索ステップに相当する。また、Searchアルゴリズムは、本実施の形態1に係る秘匿検索プログラムにおける検索処理に相当する。
 [ステップS501:情報取得処理]
 ステップS501では、情報取得部510が、鍵生成装置100によって公開された公開鍵pkを取得する。また、情報取得部510は、暗号化タグ生成装置200によって出力された暗号化タグETxを取得する。さらに、情報取得部510は、検索鍵生成装置300によって出力された検索鍵TDvを取得する。
 [ステップS502:検索可能判定処理]
 ステップS502では、検索判定部520が、ステップS501で取得された検索鍵TDvに含まれるインデックスの集合Ivが、ステップS501で取得された暗号化タグETxに含まれるインデックスの集合Ixの部分集合であるか否かを判定する。
 検索判定部520は、インデックスの集合Ivが、インデックスの集合Ixの部分集合である場合には検索可能であるとして、処理をステップS503に進める。一方、インデックスの集合Ivが、インデックスの集合Ixの部分集合でない場合には検索不可能であるとして、処理をステップS507へ進める。
 [ステップS503:復号処理]
 ステップS503では、検索判定部520が、下式(20)に示すように、暗号化タグETxに含まれるタグと、検索鍵TDvに含まれる検索ベクトルとについて、ペアリング演算して、セッション鍵Kを計算する。
Figure JPOXMLDOC01-appb-M000016
 つまり、検索判定部520は、内積述語暗号方式で言うところの、公開鍵pkと検索鍵TDvとを用いて、暗号化タグETxを復号する処理を行う。
 [ステップS504:検索判定処理]
 ステップS504では、検索判定部520が、ステップS503で計算されたセッション鍵Kが、暗号化タグETxに含まれるタグベクトルcTと等しいか否かを判定する。
 検索判定部520は、セッション鍵KがタグベクトルcTと等しい場合、処理をステップS505へ進める。一方、セッション鍵KがタグベクトルcTと等しくない場合、処理をステップS507へ進める。
 [ステップS505:結果A出力処理]
 ステップS505では、結果出力部530が、検索にヒットしたことを示す0を出力する。
 [ステップS507:検索鍵インデックス更新処理]
 ステップS507では、検索判定部520が、ステップS501で取得された検索鍵TDvに含まれるインデックスの集合Ivの各要素に対して1を加算する。また、検索判定部520が、検索鍵TDvに含まれる各検索ベクトルk* tのインデックスtに対して1を加算する。
 [ステップS508:検索終了判定処理]
 ステップS508では、検索判定部520が、ステップS507で更新された検索鍵TDvに含まれるインデックスの集合Ivに含まれる最大のインデックスが、ステップS501で取得された暗号化タグETxに含まれるインデックスの集合Ixに含まれる最大のインデックス以下であるとき、処理をステップS502へ進め、さもなければ処理S506へ進む。
 [ステップS506:結果B出力処理]
 ステップS506では、結果出力部530が、検索にヒットしなかったことを示す1を出力する。
 つまり、検索装置500は、検索鍵TDvに含まれる検索ベクトルk* tと、各暗号化タグETxに含まれるタグベクトルctとを用いた計算をすることにより、検索鍵TDvに対応する暗号化タグETxを検索する。
 より具体的には、検索装置500は、検索鍵TDvに含まれる検索ベクトルk* tと、各暗号化タグETxに含まれるタグベクトルctであって、その検索ベクトルk* tに対応するタグベクトルctとの内積の計算をすることにより、検索鍵TDvに対応する暗号化タグETxを検索する。
 図5を用いて説明したように、検索鍵TDvに含まれる検索ベクトルk* tのインデックスtを1つずつ順にずらして内積を計算することにより、部分一致秘匿検索を実現できる。このインデックスtの更新は、単純なインデックスの張替えであるため、特別な検索鍵変換処理を必要とせず、高速である。一方で、図6または図7に基づいて説明したように、検索文字列の分離あるいは置換したうえで検索することはできず、悪意のある第三者による意図しない検索を防止できる。
 なお、上記説明では、検索可能な利用者を限定せず、全ての利用者が全ての暗号化タグETxを検索可能であった。しかし、特許文献2と同様に、上述した部分一致秘匿検索方式を、内積述語暗号方式と組み合わせることにより、暗号化タグETx毎に、検索可能な利用者を限定することも可能である。
 <実施の形態1に係る秘匿検索システムのハードウェア構成>
 次に、図17に基づき、本実施の形態1に係る秘匿検索システム10のハードウェア構成例について説明する。本実施の形態1に係る秘匿検出システムは、上述したように、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とから構成されている。
 鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とは、例えばコンピュータから構成される。
 鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とは、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906などのハードウェアを備える。
 プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 入力インタフェース905は、ケーブル911により入力装置907に接続されている。
 ディスプレイインタフェース906は、ケーブル912によりディスプレイ908に接続されている。
 プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
 メモリ903は、例えば、RAM(Random Access Memory)である。
 通信装置904は、データを受信するレシーバー9041およびデータを送信するトランスミッター9042を含む。通信装置904は、例えば、通信チップまたはNIC(Network Interface Card)である。
 入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。
 ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。ディスプレイインタフェース906は、例えば、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。
 入力装置907は、例えば、マウス、キーボードまたはタッチパネルである。
 ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
 補助記憶装置902には、上述した情報取得部110、基底生成部120、鍵生成部140、鍵出力部150、情報取得部210、タグ生成部220、乱数生成部221、要素生成部222、暗号化タグ出力部230、情報取得部310、鍵生成部320、乱数生成部321、秘密値生成部322、要素生成部323、鍵出力部330、情報取得部510、検索判定部520、結果出力部530の機能を実現するプログラムが記憶されている。以下では、情報取得部110、基底生成部120、鍵生成部140、鍵出力部150、情報取得部210、タグ生成部220、乱数生成部221、要素生成部222、暗号化タグ出力部230、情報取得部310、鍵生成部320、乱数生成部321、秘密値生成部322、要素生成部323、鍵出力部330、情報取得部510、検索判定部520、および、結果出力部530をまとめて、「各部」と表記する。
 このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
 更に、補助記憶装置902には、OS(Operating System)も記憶されている。
 そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「各部」の機能を実現するプログラムを実行する。
 なお、図17では、1つのプロセッサ901が図示されているが、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、変換後検索鍵生成装置400と、検索装置500とが、複数のプロセッサ901から構成されていてもよい。そして、複数のプロセッサ901が「各部」の機能を実現するプログラムを連携して実行してもよい。
 また、「各部」の処理の結果を示す情報、データ、信号値、および、変数値が、メモリ903、補助記憶装置902、または、プロセッサ901内のレジスタまたはキャッシュメモリにファイルとして記憶される。
 さらに、「各部」を「サーキットリー」で提供してもよい。また、「各部」のそれぞれを「回路」または「ステップ」または「手順」または「処理」に読み替えてもよい。「回路」および「サーキットリー」は、プロセッサ901だけでなく、ロジックICまたはGA(Gate Array)またはASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
 10 秘匿検索システム、100 鍵生成装置、110 情報取得部、120 基底生成部、140 鍵生成部、150 鍵出力部、200 暗号化タグ生成装置、210 情報取得部、220 タグ生成部、221 乱数生成部、222 要素生成部、230 暗号化タグ出力部、300 検索鍵生成装置、310 情報取得部、320 鍵生成部、321 乱数生成部、322 秘密値生成部、323 要素生成部、330 鍵出力部、500 検索装置、510 情報取得部、520 検索判定部、530 結果出力部、pk 公開鍵、sk 秘密鍵、B,B* 基底、B^,B^* 部分基底、param パラメータ、Ix,Iv インデックスの集合、x 属性ベクトル、v 述語ベクトル、k* 検索ベクトル、ETx 暗号化タグ、TDv 検索鍵。

Claims (6)

  1.  検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する検索鍵生成部と、
     被検索文字列の各文字が位置を指定されて設定された暗号化タグETxを生成する暗号化タグ生成部と、
     前記暗号化タグETxの中から、前記検索鍵TDvに対応する暗号化タグETxを検索する検索部と
     を備え、
     前記検索鍵TDvに含まれる要素および前記暗号化タグETxに含まれる要素の一方に、前記各文字の位置を示すインデックスtが設定され、他方に、前記インデックスtの符号を反転したインデックス-tが設定され、
     検索時に、前記検索鍵TDvと前記暗号化タグETxとに設定された前記インデックスtと前記インデックス-tとを加算することで、前記インデックスtと前記インデックス-tとを打消して、前記検索鍵TDvに対応する前記暗号化タグETxを検索する、
     秘匿検索システム。
  2.  前記検索部は、前記検索鍵TDvに含まれる要素と前記暗号化タグETxに含まれる要素との内積を演算する内積述語暗号方式を用いて、前記検索鍵TDvに対応する前記暗号化タグを検索する、
     請求項1に記載の秘匿検索システム。
  3.  前記検索部は、秘密値s0と、t∈Ivの各前記インデックスtについての第1の分散値stと、t∈Ivの各インデックスtについての第2の分散値τtとを用いて検索を行い、
     前記秘密値s0と前記第1の分散値stとは、s0=Σt∈Ivtの関係を満たし、
     前記第2の分散値τtは、0=Σt∈Ivτtの関係を満たし、
     ここで、前記Ivは、前記インデックスtの集合である、
     請求項1または2に記載の秘匿検索システム。
  4.  前記検索鍵TDvは、
     前記秘密値s0が設定された基底B* 0上のベクトルである要素k* 0と、
     t∈Ivの各前記インデックスtについて、前記第1の分散値stと前記第2の分散値τtと属性値vtと前記インデックスtとが設定された基底B*上のベクトルである要素k* t
     を含む、
     請求項3に記載の秘匿検索システム。
  5.  前記暗号化タグETxは、
     前記基底B* 0に対応する基底B0上のベクトルである要素c0と、
     t∈Ixの各インデックスtについて、属性値xtと前記インデックス-tとが設定された、前記基底B*に対応する基底B上のベクトルである要素ct
     を含み、
     ここで、前記Ixは、前記インデックスtの集合である、
     請求項4に記載の秘匿検索システム。
  6.  検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する検索鍵生成ステップと、
     被検索文字列の各文字が位置を指定されて設定された複数の暗号化タグETxを生成する暗号化タグ生成ステップと、
     複数の前記暗号化タグETxから、前記検索鍵TDvに対応する暗号化タグETxを検索する検索ステップと
     を備え、
     前記検索鍵TDvに含まれる要素および前記暗号化タグETxに含まれる要素の一方に、前記各文字の位置を示すインデックスtが設定され、他方に、前記インデックスtの符号を反転したインデックス-tが設定され、
     検索時に、前記検索鍵TDvと前記暗号化タグETxとに設定された前記インデックスtと前記インデックス-tとを加算することで、前記インデックスtと前記インデックス-tとを打消して、前記検索鍵TDvに対応する前記暗号化タグETxを検索する、
     秘匿検索方法。
PCT/JP2018/048531 2018-12-28 2018-12-28 秘匿検索システムおよび秘匿検索方法 WO2020136884A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020562226A JP6918253B2 (ja) 2018-12-28 2018-12-28 秘匿検索システムおよび秘匿検索方法
PCT/JP2018/048531 WO2020136884A1 (ja) 2018-12-28 2018-12-28 秘匿検索システムおよび秘匿検索方法
US17/244,080 US11790105B2 (en) 2018-12-28 2021-04-29 Secret search system and secret search method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/048531 WO2020136884A1 (ja) 2018-12-28 2018-12-28 秘匿検索システムおよび秘匿検索方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/244,080 Continuation US11790105B2 (en) 2018-12-28 2021-04-29 Secret search system and secret search method

Publications (1)

Publication Number Publication Date
WO2020136884A1 true WO2020136884A1 (ja) 2020-07-02

Family

ID=71128863

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/048531 WO2020136884A1 (ja) 2018-12-28 2018-12-28 秘匿検索システムおよび秘匿検索方法

Country Status (3)

Country Link
US (1) US11790105B2 (ja)
JP (1) JP6918253B2 (ja)
WO (1) WO2020136884A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016113878A1 (ja) * 2015-01-15 2016-07-21 三菱電機株式会社 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
WO2018198192A1 (ja) * 2017-04-25 2018-11-01 三菱電機株式会社 検索装置、検索システム、検索方法及び検索プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017122326A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
US11005645B2 (en) 2016-01-15 2021-05-11 Mitsubishi Electric Corporation Encryption device, encryption method, computer readable medium, and storage device
CN108370312B (zh) * 2016-01-18 2021-01-05 三菱电机株式会社 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法
US10984052B2 (en) * 2018-11-19 2021-04-20 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for multiple-character wildcard search over encrypted data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016113878A1 (ja) * 2015-01-15 2016-07-21 三菱電機株式会社 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
WO2018198192A1 (ja) * 2017-04-25 2018-11-01 三菱電機株式会社 検索装置、検索システム、検索方法及び検索プログラム

Also Published As

Publication number Publication date
JP6918253B2 (ja) 2021-08-11
US11790105B2 (en) 2023-10-17
JPWO2020136884A1 (ja) 2021-02-18
US20210248262A1 (en) 2021-08-12

Similar Documents

Publication Publication Date Title
US10476662B2 (en) Method for operating a distributed key-value store
US10673614B2 (en) Secret search system, management device, secret search method and computer readable medium
US9892211B2 (en) Searchable code processing system and method
CN107077469B (zh) 服务器装置、检索系统、终端装置以及检索方法
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
Liu et al. An efficient privacy-preserving outsourced computation over public data
US10872158B2 (en) Secret search system, secret search method, and computer readable medium
EP3511845B1 (en) Encrypted message search method, message transmission/reception system, server, terminal and programme
US10733317B2 (en) Searchable encryption processing system
Chi et al. An Efficient Searchable Public‐Key Authenticated Encryption for Cloud‐Assisted Medical Internet of Things
US20210391976A1 (en) Low latency calculation transcryption method
JP2019057822A (ja) 医療データ検索システム、医療データ検索方法および医療データ検索プログラム
EP3373504B1 (en) Encryption device, retrieval device, encryption program, retrieval program, encryption method, and retrieval method
CN110062941B (zh) 消息发送系统及方法、通信终端、服务器装置、记录介质
CN115795514A (zh) 一种隐私信息检索方法、装置及系统
WO2016113878A1 (ja) 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
US10050782B2 (en) Decryption condition addition device, cryptographic system, and computer readable medium
JP6918253B2 (ja) 秘匿検索システムおよび秘匿検索方法
KR100919824B1 (ko) 데이터 암호화 장치와 이를 이용한 암호화 방법
Hamsanandhini et al. IoT Data Encryption and Phrase Search-Based Efficient Processing Using a Fully Homomorphic-Based SE (FHSE) Scheme
KR20230058314A (ko) 다중 키 정보 검색

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020562226

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18945088

Country of ref document: EP

Kind code of ref document: A1