WO2016113878A1 - 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置 - Google Patents

秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置 Download PDF

Info

Publication number
WO2016113878A1
WO2016113878A1 PCT/JP2015/050931 JP2015050931W WO2016113878A1 WO 2016113878 A1 WO2016113878 A1 WO 2016113878A1 JP 2015050931 W JP2015050931 W JP 2015050931W WO 2016113878 A1 WO2016113878 A1 WO 2016113878A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
key
search key
vector
conversion
Prior art date
Application number
PCT/JP2015/050931
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 JP2016557102A priority Critical patent/JPWO2016113878A1/ja
Priority to PCT/JP2015/050931 priority patent/WO2016113878A1/ja
Publication of WO2016113878A1 publication Critical patent/WO2016113878A1/ja

Links

Images

Classifications

    • 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 technique for performing a search with data encrypted.
  • Cloud computing that provides various services using computing resources in a network, particularly the Internet, exists.
  • a service is provided in which data is stored on a network, and an authorized user downloads data to a terminal and uses it.
  • data stored on the network there is data that needs to be concealed so as not to be leaked to third parties, such as user personal information.
  • Such data can be concealed by encrypting it with a cipher such as a secret key cipher or a public key cipher.
  • a secret search technique has been proposed as a technique for solving this problem.
  • data can be searched even by encrypted data by encrypting the data using a special encryption method.
  • Non-Patent Document 1 describes a partial match secret search method.
  • partial match concealment search is realized by transmitting search information for all patterns that may partially match from the searcher terminal to the search device.
  • the searcher terminal creates search information for all patterns and transmits it to the search device. Therefore, the amount of search information transmitted from the searcher terminal to the search device increases.
  • An object of the present invention is to reduce the amount of search information transmitted by a searcher terminal.
  • the secret search system is: A post-conversion search key generation unit that converts an original search key set with each character of a character string having a designated position, and generates a post-conversion search key, wherein at least one of the characters set in the original search key A post-conversion search key generation unit that generates the post-conversion search key by converting the position specified for some characters to another position; For each character set in the post-conversion search key generated by the post-conversion search key generation unit from a plurality of encryption tags set by specifying the position of each character of the character string, the character and the character And a search unit for searching for an encryption tag that matches a character set at a position designated for the.
  • the original search key is converted into the search key after conversion, and the encryption tag is searched. Therefore, if the original search key is transmitted from the searcher terminal, the search can be executed. Therefore, it is possible to reduce the amount of search information transmitted by the searcher terminal.
  • FIG. 1 is a configuration diagram of a secret search system 10 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a key generation device 100 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of an encryption tag generation apparatus 200 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a search key generation device 300 according to Embodiment 1.
  • FIG. 3 is a configuration diagram of a post-conversion search key generation apparatus 400 according to the first embodiment.
  • 1 is a configuration diagram of a search device 500 according to Embodiment 1.
  • FIG. 4 is a flowchart of processing of a KG algorithm according to the first embodiment.
  • 5 is a flowchart of processing of a TagGen algorithm according to the first embodiment.
  • 6 is a flowchart of processing of the TrapGen algorithm according to the first embodiment.
  • FIG. 4 is a flowchart of processing of a TrapShift algorithm according to the first embodiment. 4 is a flowchart of processing of a Search algorithm according to the first embodiment.
  • 3 is a diagram illustrating a hardware configuration example of a key generation device 100, an encryption tag generation device 200, a search key generation device 300, a post-conversion search key generation device 400, and a search device 500 according to Embodiment 1.
  • FIG. 1 is a flowchart of processing of a TrapShift algorithm according to the first embodiment. 4 is a flowchart of processing of a Search algorithm according to the first embodiment.
  • 3 is a diagram illustrating a hardware configuration example of a key generation device 100, an encryption tag generation device 200, a search key generation device 300, a post-conversion search key generation device 400, and a search device 500 according to Embodiment 1.
  • Equation 101 represents selecting y from A randomly according to the distribution of A. That is, in Equation 101, y is a random number.
  • Equation 102 represents selecting y from A uniformly. That is, in Equation 102, y is a uniform random number.
  • Expression 103 indicates that z is set in y, y is defined by z, or y is substituted with z.
  • a is a constant, the number 104 represents that the machine (algorithm) A outputs a for the input x.
  • the number 105 represents the field of order q.
  • Equation 106 represents a vector representation in the finite field Fq .
  • Equation 107 represents the inner product shown in Equation 109 between the two vectors x ⁇ and v ⁇ shown in Equation 108.
  • X T represents the transpose of the matrix X.
  • Equation 111 is obtained.
  • the number of elements may be different between the sentence vector x ⁇ and the key vector v ⁇ .
  • 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 with the key.
  • a secret value s 0 and a variance value s t for each integer t with t ⁇ Iv are used.
  • Key is an element k * 0 is a vector on the basis B * 0 which is set a secret value s 0, for each integer t of T ⁇ Iv, setting the dispersion value s t and attribute values v t and the index t is Element k * t , which is a vector on the generated basis B * .
  • the ciphertext includes a base B in which an attribute value x t and an index t are set for each element c 0 that is a vector on the base B 0 corresponding to the base B * 0 and each integer t of t ⁇ Ix.
  • Element c t which is a vector on the base B corresponding to * .
  • the inner product of with the inner product of the element k * 0 and element c 0 is calculated, for each integer t of T ⁇ Iv, and element k * t included in the key, the element c t included in the ciphertext Is calculated.
  • the variance value s i can be obtained even if the inner product of the element k * i and the element c j is calculated. Is never obtained.
  • element k * t key was the vector of the basis B * on the variance value s t and attribute values v t and the index t is set.
  • the element k * t a vector on the variance value s t and attribute values v basal t and is set B * t.
  • the index t is not set to the element k * t , but the vector on the basis B * t assigned for each index t is used.
  • the ciphertext element c t is a vector on the base B in which the attribute value x t and the index t are set.
  • the element c t, the attribute value x t is set to the vector on the basis B t corresponding to the base B * t. That is, without setting the index t to the element c t, is a vector on the basis B t assigned to each index t.
  • t 1,. . . , D
  • the basis B * i and the basis B j do not correspond. Therefore, even if the attribute value v i and the attribute value x j correspond to each other, the variance value s i is not obtained even if the inner product of the element k * i and the element c j is calculated. However, the element k * t and the element c t and the index t has not been set. Therefore, the element k * i, if conversion from the vector on the basis B * i vector on basis B * j, that by calculating the inner product of the element k * i and element c j obtain a dispersion value s i Can do.
  • the converted search key is generated by sequentially shifting the subscript t of the base B * t of the element k * t of the original search key one by one, and the encrypted tag is decrypted with the converted search key. If decrypted, the encrypted tag is searched with the converted search key.
  • a converted search key is generated by shifting the subscript t of the base B * t of the element k * t of the original search key by 0, and the encrypted tag is decrypted with the converted search key. That is, the encryption tag is decrypted with the converted search key using the original search key as it is as the converted search key.
  • the inner product of the element c 1 set with the attribute value A and the element k * 1 set with the attribute value C is taken, and the element c 2 set with the attribute value B and the attribute value D are set.
  • the inner product with the element k * 2 is taken. Since the attribute value does not correspond between the element c 1 and the element k * 1 , and the attribute value does not correspond between the element c 2 and the element k * 2 , the encrypted tag cannot be decrypted with the converted search key.
  • a converted search key is generated by shifting the subscript t of the base B * t of the element k * t of the original search key by 1, and the encryption tag is decrypted with the converted search key. That is, to convert the base B * 1 of the original search key elements k * 1 to the base B * 2, the base B * 2 elements k * 2 as converted by converting the base B * 3 Search key, converted Decrypt the encryption tag with the search key.
  • the inner product of the element c 2 set with the attribute value B and the element k * 1 set with the attribute value C is taken, and the element c 3 set with the attribute value C and the attribute value D are set.
  • the inner product with the element k * 2 is taken. Since the attribute value does not correspond between the element c 2 and the element k * 1 , and the attribute value does not correspond between the element c 3 and the element k * 2 , the encrypted tag cannot be decrypted with the search key after conversion.
  • the converted search key is generated by shifting the subscript t of the base B * t of the element k * t of the original search key by 2, and the encryption tag is decrypted with the converted search key. That is, to convert the base B * 1 of the original search key elements k * 1 to the base B * 3, the base B * 2 elements k * 2 as converted is converted into the base B * 4 search key, the converted Decrypt the encryption tag with the search key.
  • the inner product of the element c 3 set with the attribute value C and the element k * 1 set with the attribute value C is taken, and the element c 4 set with the attribute value D and the attribute value D are set.
  • the inner product with the element k * 2 is taken.
  • an element c 3 and element k * 1 and attribute values corresponding, in the element c 4 and element k * 2 since the attribute value is compatible can decrypt the encrypted tag converted search key. Therefore, the encrypted tag is searched with the converted search key.
  • the converted search key is converted so that the difference between the subscript of the base B * 1 of the element k * 1 of the original search key and the subscript of the base B * 2 of the element k * 2 becomes large.
  • converted search key is generated.
  • the inner product of the element c 2 with the attribute value B set and the element k * 1 with the attribute value B set is taken, and the element c 4 with the attribute value D set and the attribute value D are set.
  • the inner product with the element k * 2 is taken.
  • an element c 2 and element k * 1 and attribute values corresponding, in the element c 4 and element k * 2 since the attribute value is compatible can decrypt the encrypted tag converted search key. Therefore, the encrypted tag is searched with the converted search key.
  • the converted search key is converted so that the difference between the subscript of the base B * 1 of the element k * 1 of the original search key and the subscript of the base B * 2 of the element k * 2 is increased.
  • converted search key is generated.
  • the inner product of the element c 2 with the attribute value B set and the element k * 1 with the attribute value B set is taken, and the element c 1 with the attribute value A set and the attribute value A are set
  • the inner product with the element k * 2 is taken.
  • an element c 2 and element k * 1 and attribute values corresponding, in the element c 1 and element k * 2 since the attribute value is compatible can decrypt the encrypted tag converted search key. Therefore, the encrypted tag is searched with the converted search key.
  • the base B * 1 of the original search key elements k * 1 by converting element k * 2 of the base B * 2 and so are switched to generate the converted search key, the search keyword character It is possible to realize a partial match secret search method in which the order of columns is changed.
  • the partial match secret search method includes a KG algorithm, a TagGen algorithm, a TrapGen algorithm, a TrapShift algorithm, and a Search algorithm.
  • the KG algorithm is an algorithm that receives a security parameter ⁇ and a vector length d and outputs a public key pk, a secret key sk, and a shift secret key ssk.
  • the TagGen algorithm is a probabilistic algorithm that outputs the encryption tag ET x with the public key pk and the attribute vector x ⁇ as inputs.
  • the TrapGen algorithm is a probabilistic algorithm that outputs the original search key TD v with the public key pk, the secret key sk, and the predicate vector v ⁇ as inputs.
  • the TrapShift algorithm is an algorithm that receives an original search key TD v , shift information SI, and a shift secret key ssk, and outputs a converted search key TD v ′ .
  • the Search algorithm receives the public key pk, the encryption tag ET x, and the converted search key TD v ′ as input, and 0 indicating that the search is hit or 1 indicating that the search is not hit. This is a deterministic algorithm to output.
  • the secret search system 10 includes a key generation device 100, an encrypted tag generation device 200, a search key generation device 300, a post-conversion search key generation device 400, and a search device 500.
  • the key generation device 100, the encryption tag generation device 200, the search key generation device 300, the converted search key generation device 400, and the search device 500 are different devices. Two or more devices among the devices may be configured as one device.
  • the post-conversion search key generation device 400 and the search device 500 may be configured as a single device.
  • 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 are divided into a key generation unit, an encryption tag generation unit, and
  • the search key generation unit, the converted search key generation unit, and the search unit may be read as elements of a certain device.
  • the key generation device 100 receives the security parameter ⁇ and the vector length d, executes the KG algorithm, and outputs the public key pk, the secret key sk, and the shift secret key ssk.
  • the encryption tag generation device 200 receives the public key pk and the attribute vector x ⁇ , executes the TagGen algorithm, and outputs the encryption tag ET x .
  • the search key generation device 300 receives the public key pk, the secret key sk, and the predicate vector v ⁇ , executes the TrapGen algorithm, and outputs the original search key TD v .
  • the post-conversion search key generation device 400 receives the original search key TD v , the shift information SI, and the shift secret key ssk, executes the TrapShift algorithm, and outputs the post-conversion search key TD v ′ .
  • the search device 500 receives the public key pk, the encryption tag ET x, and the converted search key TD v ′ as input, and executes the Search algorithm to indicate that the search is hit, or 0 1 is output indicating that no action has been taken.
  • the key generation device 100 includes an information acquisition unit 110, a base generation unit 120, a transformation matrix generation unit 130, a key generation unit 140, and a key output unit 150.
  • the information acquisition unit 110 acquires the security parameter ⁇ and the vector length d.
  • 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 1, and a base B * 1 that are the basis for realizing the partial match secret search method. Further, the base generation unit 120 generates a parameter param.
  • the key generation unit 140 a base B 0 and basal B 1, by using the parameter param, and a transformation matrix W i, to generate the public key pk.
  • the key generation unit 140 a base B * 0 and basal B * 0, by using the transformation matrix W * i, to generate the secret key sk. Further, the key generation unit 140 generates a shift secret key ssk using the transformation matrix W * i .
  • the key output unit 150 publishes the public key pk. Further, the key output unit 150 outputs the secret key sk to the search key generation device 300. In addition, the key output unit 150 outputs the shift secret key ssk to the converted search key generation device 400.
  • the encryption tag generation device 200 includes an information acquisition unit 210, a tag generation unit 220, and an encryption tag output unit 230.
  • the information acquisition unit 210 acquires the public key pk and the attribute vector x ⁇ .
  • the tag generation unit 220 generates an encryption tag ET x including a tag vector c t on at least a part of the bases B t among the plurality of bases B t using the public key pk and the attribute vector x ⁇ . To do.
  • the tag generation unit 220 includes a random number generation unit 221 and an element generation unit 222.
  • the encryption tag output unit 230 outputs the encryption 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 predicate vector v ⁇ .
  • the key generation unit 320 uses the public key pk, the secret key sk, and the predicate vector v ⁇ to generate an original search key TD v in which each character of the character string is set by specifying the position.
  • the key generation unit 320 generates the original search key TD v that contains the search vector k * t on at least a portion of the basis B * t of the plurality of base B * t.
  • the key generation unit 320 includes a random number generation unit 321, a secret value generation unit 322, and an element generation unit 323.
  • Key output unit 330 outputs the original search key TD v conversion after searching the key generation device 400.
  • the post-conversion search key generation device 400 includes an information acquisition unit 410, a determination unit 420, a key conversion unit 430, and a key output unit 440.
  • Determination unit 420 determines whether it is possible to convert the original search key TD v based on the shift information SI.
  • the key conversion unit 430 converts the original search key TD v based on the shift information SI using the shift secret key ssk to generate a converted search key TD v ′ .
  • the key conversion unit 430 converts the search key TD v ′ after conversion by converting the position designated for at least some of the characters set in the original search key TD v to another position.
  • the key conversion unit 430 uses at least a part of the search vectors k * t included in the original search key TD v as search vectors k * on other bases B * t among the plurality of bases B * t .
  • a post-conversion search key TD v ′ is generated.
  • the key output unit 440 outputs the converted search key TD v ′ 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, the encryption tag ET x, and the converted search key TD v ′ .
  • the search determination unit 520 converts the plurality of encryption tags ET x generated by the encryption tag generation device 200 from the plurality of encryption tags ET x in which each character of the character string is set by specifying the position. For each character set in the post-conversion search key TD v ′ generated by the post-search key generation device 400, the encryption tag ET that matches the character and the character set at the position specified for the character Search for x .
  • the search determination unit 520 determines whether or not the search has been hit by decrypting the encryption tag ET x using the public key pk and the converted search key TD v ′ . That is, the search determination unit 520 uses the encrypted tag ET corresponding to the converted search key TD v ′ generated by the converted search key generating device 400 from the plurality of encrypted tags ET x generated by the encrypted tag generating device 200. Search for x .
  • the result output unit 530 outputs 0 indicating that the search is hit or 1 indicating that the search is not hit.
  • the KG algorithm is executed by the key generation device 100.
  • the KG algorithm corresponds to a key generation step in the secret search method according to the first embodiment.
  • the KG algorithm corresponds to a key generation process in the secret search program according to the first embodiment.
  • the information acquisition unit 110 acquires the security parameter ⁇ and the vector length d input by the administrator of the secret search system 10 using the input device.
  • the vector length d is an integer of 2 or more.
  • the base generation unit 120 receives the security parameter ⁇ and calculates the formula 112 to generate the base B 0 , the base B * 0 , the base B 1 , the base B * 1, and the parameter param of the dual pairing vector space. To do.
  • G bpg is a function that generates a bilinear pairing group
  • G dpvs is a function that generates a dual pairing vector space.
  • the key output unit 150 outputs the public key pk generated in S104 to a public server or the like, and publishes the public key pk.
  • the key output unit 150 outputs the secret key sk generated in S105 to the search key generation device 300 in a secret manner.
  • the key output unit 150 outputs the shift secret key ssk generated in S106 to the search key generation device 400 after converting it into a secret key.
  • the TagGen algorithm is executed by the encryption tag generation device 200.
  • the TagGen algorithm corresponds to the encryption tag generation step in the secret search method according to the first embodiment.
  • the TagGen algorithm corresponds to an encryption tag generation process in the secret search program according to the first embodiment.
  • the information acquisition unit 210 acquires the public key pk released 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 encryption tag generation device 200 or the like.
  • Attribute vector x ⁇ : ⁇ (t, x t )
  • Ix is a set of indexes. For example, as described with reference to FIGS. 5 to 7, each character of a character string serving as a search tag is set in each element x t of the attribute vector x ⁇ .
  • the random number generation unit 221 generates a random number as shown in Expression 118.
  • Element generator 222 has been a public key pk and attribute vectors x ⁇ acquired in S201, as an input the random number generated in S202, as shown in several 119, a tag vector c 0, each of t ⁇ Ix A tag vector c t and a tag vector c T for the integer t are generated.
  • (S204: Tag output processing) Encrypting tag output section 230, a set Ix index acquired in S201, the tag vector c 0 and t ⁇ Ix generated in S203 and a tag vector c t and tag vector c T for each integer t element
  • the TrapGen algorithm is executed by the search key generation device 300.
  • the TrapGen algorithm corresponds to a search key generation step in the secret search method according to the first embodiment.
  • the TrapGen algorithm corresponds to a search key generation process in the secret search program according to the first embodiment.
  • 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.
  • 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.
  • Predicate vector v ⁇ : ⁇ (t, v t )
  • Iv is a set of indexes. For example, as described with reference to FIGS. 5 to 7, each character of a character string serving as a search keyword is set in each element v t of the predicate vector v ⁇ .
  • the random number generation unit 321 generates a random number as shown in Expression 120.
  • Element generator 323 has been a public key pk and a secret key sk and the predicate vector v ⁇ acquired in S301, as an input the random number generated in S302, and the secret value s 0 generated in S303, to the number 121 As shown, a search vector k * 0 and a search vector k * t for each integer t with t ⁇ Iv are generated.
  • the TrapShift algorithm is executed by the post-conversion search key generation device 400.
  • the TrapShift algorithm corresponds to a post-conversion search key generation step in the secret search method according to the first embodiment.
  • the TrapShift algorithm corresponds to a post-conversion search key generation process in the secret search program according to the first embodiment.
  • Information acquisition unit 410 acquires the original search key TD v outputted by the search key generating apparatus 300.
  • the information acquisition unit 410 acquires shift information SI.
  • Shift information SI: (Iv′ ⁇ ⁇ 1,..., D ⁇ , ⁇ ). That is, the shift information SI includes an index set Iv ′ and transition information ⁇ .
  • the transition information ⁇ is information representing that the index t i included in the index set Iv is moved to the index t ′ i included in the index set Iv ′.
  • i 1,. . . , D.
  • the information acquisition unit 410 acquires the shift secret key ssk output by the key generation device 100.
  • the determination unit 420 determines whether or not the size
  • U of the index set Iv is equal to the size
  • the key conversion unit 430 generates a search vector k * t′i as shown in Expression 122. That is, the key conversion unit 430 uses the search vector k * ti as it is as the search vector k * t′i .
  • the key conversion unit 430 generates a search vector k * t′i as shown in Equation 123.
  • the key conversion unit 430 determines whether or not the processing for all indexes t in the index set Iv has been completed. If not completed, the key conversion unit 430 selects, as the index t i , the index t having the next highest value from the index t currently selected from the indexes t included in the index set Iv, and performs the processing. Return to S404. On the other hand, if the key conversion unit 430 has ended, the process proceeds to S409.
  • the base B * t + 1 is obtained by multiplying the base B * t by the transformation matrix W * t .
  • a search vector k * t basis B * t' t be converted on the search vector k * t ' .
  • the post-conversion search key generation device 400 generates the post-conversion search key TD v ′ .
  • the Search algorithm is executed by the search device 500.
  • the Search algorithm corresponds to a search step in the secret search method according to the first embodiment.
  • the Search algorithm corresponds to search processing in the secret search program according to the first embodiment.
  • the information acquisition unit 510 acquires the public key pk released by the key generation device 100.
  • the information acquisition unit 510 acquires the encryption tag ET x output by the encryption tag generation device 200.
  • the information acquisition unit 510 acquires the post-conversion search key TD v ′ output by the post-conversion search key generation device 400.
  • the search determination unit 520 In the search determination unit 520, the index set Iv ′ included in the converted search key TD v ′ acquired in S501 is a subset of the index set Ix included in the encryption tag ET x acquired in S501. It is determined whether or not. If it is a subset, the search determination unit 520 advances the process to S503, and if it is not a subset, determines that search is impossible and ends the process.
  • the search determination unit 520 calculates a session key K by performing a pairing operation on the tag included in the encrypted tag ET x and the search vector included in the post-conversion search key TD v ′ as shown in Formula 125. To do. That is, the search determination unit 520 performs a process of decrypting the encryption tag ET x by using the public key pk and the converted search key TD v ′ , which is the so-called inner product predicate encryption method.
  • Search determination unit 520 determines the calculated session key K, whether equal tag vector c T in encrypted tag ET x at S503. If they are equal, search determination unit 520 advances the process to S505, and if not equal, advances the process to S506.
  • the result output unit 530 outputs 0 indicating that the search is hit.
  • the result output unit 530 outputs 1 indicating that the search was not hit.
  • the search device 500 by the search vector k * t included in the converted search key TD v ', the calculation using the tag vector c t included in the encrypted tag ET x, the search after conversion Search the encryption tag ET x corresponding to the key TD v ′ .
  • the search device 500 includes a search vector k * t included in the converted search key TD v ′ and a tag vector c t included in each encryption tag ET x , and the search vector k *. by the inner product computation of the tag vector c t suprabasal B t corresponding to the base B * t of t, it retrieves the encrypted tag ET x corresponding to the converted search key TD v '.
  • the post-conversion search key generation device 400 converts at least some search vectors k * t included in the original search key TD v to a plurality of bases B * t . by converting to another base B * t 'on the search vector k * t' of out, it is possible to generate the converted search key TD v '. Therefore, as described with reference to FIG. 5, the converted search key TD v ′ is generated by sequentially shifting the subscript t of the base B * t of the search vector k * t included in the original search key TD v one by one. As a result, a partial match secret search method can be realized.
  • search key TD v ′ is not limited to the base B * t by sequentially shifting the subscript t one by one, and all search vectors k * t included in the original search key TD v are searched.
  • a post-conversion search key may be generated by performing conversion so that the subscript t of the base B * t of the vector k * t is shifted by the same value.
  • the search key generating apparatus 300 by transmitting to generate one original search key TD v to the converted retrieval key generating apparatus 400, is possible to perform partial matching secure search it can. Therefore, it is possible to reduce the amount of search information transmitted by the search key generation device 300 that is a searcher terminal. Further, the secure search system 10 according to the first embodiment, nor information of the original search key TD v is leaked to the search device 500.
  • a search vector k * 1 of the basis B * 1 subscript included in the original search key TD v the difference between the search basis vector k 2 B * 2 subscript It is also possible to generate a post-conversion search key TD v ′ by converting it to be large.
  • a search vector k * t basis B * t search vector subscript t is less than the reference value of the search over the reference value
  • a converted search key TD v ′ is generated by converting the search vector k * t included in the original search key TD v so that the difference in the value of the subscript t from the vector k * t becomes large.
  • the original search key TD v and base B * 1 element k * 1, the element k * 2 of the base B * 2 after conversion and is converted as replaced search key TD v ' can also be generated. More generally, a first search vector and a second search vector included in the original search key TD v, as a base B * t1 of the first search vector and the base B * t2 of the second search vector is replaced By performing the conversion, a post-conversion search key TD v ′ can be generated. As a result, it is possible to realize a partial match secret search method in which the order of character strings of search keywords is changed.
  • searchable users are not limited, and all users can search all encryption tags ET x .
  • the searchable users can be limited for each encryption tag ET x .
  • i 1,. . .
  • the base B i and the base B * i for each integer i are generated to limit the users who can search.
  • t d + 1,. . .
  • the key generation device 100, the encrypted tag generation device 200, the search key generation device 300, the converted search key generation device 400, and the search device 500 are computers.
  • the key generation device 100, the encryption tag generation device 200, the search key generation device 300, the converted search key generation device 400, and the search device 500 are a processor 901, an auxiliary storage device 902, a memory 903, and a communication device 904.
  • Hardware such as an input interface 905 and a display interface 906.
  • the processor 901 is connected to other hardware via the signal line 910, and controls these other hardware.
  • the input interface 905 is connected to the input device 907 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 that receives data and a transmitter 9042 that transmits 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).
  • the auxiliary storage device 902 includes the information acquisition unit 110, the base generation unit 120, the transformation matrix generation unit 130, the key generation unit 140, the key output unit 150, the information acquisition unit 210, the tag generation unit 220, the random number generation unit 221, and the like.
  • Element generation unit 222, encryption tag output unit 230, information acquisition unit 310, key generation unit 320, random number generation unit 321, secret value generation unit 322, element generation unit 323, key output unit 330, information acquisition unit 410, determination unit 420, key conversion unit 430, key output unit 440, information acquisition unit 510, search determination unit 520, result output unit 530 (hereinafter, information acquisition unit 110, base generation unit 120, conversion matrix generation unit 130, key generation unit 140, Key output unit 150, information acquisition unit 210, tag generation unit 220, random number generation unit 221, element generation unit 222, encryption tag output unit 230, information acquisition unit 310, key generation unit 320 Random number generation unit 321, secret value generation unit 322, element generation unit 323, key output unit 330, information acquisition unit 410, determination unit 420, key conversion unit 430, key output unit 440, information acquisition unit 510, search determination unit 520, A program for realizing the function of the result output unit 530 is collectively described as “part” is stored.
  • This program is loaded into the memory 903, read into the processor 901, and executed by the processor 901. Further, the auxiliary storage device 902 also stores an OS (Operating System). Then, at least a part of the OS is loaded into the memory 903, and the processor 901 executes a program that realizes the function of “unit” while executing the OS.
  • the processor 901 executes a program that realizes the function of “unit” while executing the OS.
  • FIG. 19 one processor 901 is illustrated, but the key generation device 100, the encryption tag generation device 200, the search key generation device 300, the converted search key generation device 400, and the search device 500 are included.
  • a plurality of processors 901 may be provided.
  • a plurality of processors 901 may execute a program for realizing the function of “unit” in cooperation with each other.
  • information, data, signal values, and variable values indicating the results of the processing of “unit” are stored as files in the memory 903, the auxiliary storage device 902, or a register or cache memory in the processor 901.
  • Parts may be provided by “Circuitry”. Further, “part” may be read as “circuit”, “process”, “procedure”, or “processing”. “Circuit” and “Circuitry” include not only the processor 901 but also other types of processing circuits such as logic IC, GA (Gate Array), ASIC (Application Specific Integrated Circuit), or FPGA (Field-Programmable Gate Array). It is a concept to include.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 秘匿検索システム(10)は、文字列の各文字が位置を指定されて設定されたオリジナル検索鍵を変換して変換後検索鍵を生成し、複数の暗号化タグETから、生成した変換後検索鍵TDv'に対応する暗号化タグを検索する。特に、秘匿検索システム(10)は、オリジナル検索鍵TDに設定された文字のうち少なくとも一部の文字に対して指定された位置を他の位置に変換することにより、変換後検索鍵TDv'を生成し、文字列の各文字が位置を指定されて設定された複数の暗号化タグから、変換後検索鍵TDv'に設定された各文字について、その文字と、その文字に対して指定された位置に設定された文字とが一致する暗号化タグを検索する。

Description

秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
 この発明は、データを暗号化した状態で検索を行う秘匿検索技術に関する。
 ネットワーク、特にインターネットにおける演算資源を用いて、様々なサービスを提供するクラウドコンピューティングが存在する。例えば、ネットワーク上にデータを保管しておき、許可された利用者がデータを端末にダウンロードし利用するといったサービスが提供されている。
 ネットワーク上に保管するデータの中には、利用者の個人情報等の第三者に漏えいしない様に秘匿する必要があるデータが存在する。このようなデータは、秘密鍵暗号や公開鍵暗号といった暗号で暗号化することにより秘匿することが可能である。
 暗号化したデータをネットワーク上に保管することで、データの秘匿化とクラウドコンピューティングの活用とを両立させることができる。
 しかし、データを暗号化してしまうとデータを検索できなくなってしまうという課題がある。この課題を解決する技術として秘匿検索技術が提案されている。秘匿検索技術では、特別な暗号化方法によりデータを暗号化することによって、暗号化されたデータであっても検索が可能となる。
 様々な秘匿検索が提案されているが、検索対象データと、検索キーワードとが全く同じ場合にのみ検索される完全一致秘匿検索方式が多く提案されている。これに対して、検索キーワードが検索対象データ中の一部に含まれている場合に検索される方式を部分一致秘匿検索方式という。
 非特許文献1には、部分一致秘匿検索方式について記載されている。非特許文献1に記載された方式では、部分一致する可能性のある全てのパターンについての検索情報を検索者端末から検索装置へ送信することにより、部分一致秘匿検索を実現している。
"部分一致検索可能暗号" 吉田 麗生、小田 哲、小林 鉄太郎 SCIS 2010
 非特許文献1の方式では、検索者端末が、全てのパターンについての検索情報を作成し、検索装置に送信する。そのため、検索者端末から検索装置へ送信される検索情報量が多くなる。
 この発明は、検索者端末が送信する検索情報量を減らすことを目的とする。
 この発明に係る秘匿検索システムは、
 文字列の各文字が位置を指定されて設定されたオリジナル検索鍵を変換して変換後検索鍵を生成する変換後検索鍵生成部であって、前記オリジナル検索鍵に設定された文字のうち少なくとも一部の文字に対して指定された位置を他の位置に変換することにより、前記変換後検索鍵を生成する変換後検索鍵生成部と、
 文字列の各文字が位置を指定されて設定された複数の暗号化タグから、前記変換後検索鍵生成部が生成した前記変換後検索鍵に設定された各文字について、その文字と、その文字に対して指定された位置に設定された文字とが一致する暗号化タグを検索する検索部とを備える。
 この発明に係る秘匿検索システムでは、オリジナル検索鍵を変換後検索鍵に変換して暗号化タグを検索する。そのため、検索者端末からオリジナル検索鍵が送信されれば、検索を実行することが可能である。したがって、検索者端末が送信する検索情報量を減らすことが可能である。
内積述語暗号における内積の取り方の説明図。 内積述語暗号における内積の取り方の説明図。 内積述語暗号の基本構成の説明図。 実施の形態1に係る部分一致秘匿検索方式のキーテクニックの説明図。 実施の形態1に係る部分一致秘匿検索方式の実現例の説明図。 実施の形態1に係る部分一致秘匿検索方式の実現例の説明図。 実施の形態1に係る部分一致秘匿検索方式の実現例の説明図。 実施の形態1に係る秘匿検索システム10の構成図。 実施の形態1に係る鍵生成装置100の構成図。 実施の形態1に係る暗号化タグ生成装置200の構成図。 実施の形態1に係る検索鍵生成装置300の構成図。 実施の形態1に係る変換後検索鍵生成装置400の構成図。 実施の形態1に係る検索装置500の構成図。 実施の形態1に係るKGアルゴリズムの処理のフローチャート。 実施の形態1に係るTagGenアルゴリズムの処理のフローチャート。 実施の形態1に係るTrapGenアルゴリズムの処理のフローチャート。 実施の形態1に係るTrapShiftアルゴリズムの処理のフローチャート。 実施の形態1に係るSearchアルゴリズムの処理のフローチャート。 実施の形態1に係る鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、変換後検索鍵生成装置400と、検索装置500とのハードウェア構成例を示す図。
 実施の形態1.
 ***記法の説明***
 以下の説明における記法について説明する。
 Aがランダムな値または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
Figure JPOXMLDOC01-appb-M000001
 Aが集合であるとき、数102は、Aからyを一様に選択することを表す。つまり、数102において、yは一様乱数である。
Figure JPOXMLDOC01-appb-M000002
 数103は、yにzが設定されたこと、yがzにより定義されたこと、又はyがzを代入されたことを表す。
Figure JPOXMLDOC01-appb-M000003
 aが定数であるとき、数104は、機械(アルゴリズム)Aが入力xに対しaを出力することを表す。
Figure JPOXMLDOC01-appb-M000004
 数105は、位数qの体を表す。
Figure JPOXMLDOC01-appb-M000005
 数106は、有限体Fにおけるベクトル表現を表す。
Figure JPOXMLDOC01-appb-M000006
 数107は、数108に示す2つのベクトルxとvとの数109に示す内積を表す。
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
Figure JPOXMLDOC01-appb-M000009
 Xは、行列Xの転置行列を表す。
 数110に示す基底Bと基底Bとに対して、数111である。
Figure JPOXMLDOC01-appb-M000010
Figure JPOXMLDOC01-appb-M000011
 ***概要の説明***
 実施の形態1では、内積述語暗号を応用して、部分一致秘匿検索方式を実現する。
 図1及び図2に基づき、内積述語暗号における内積の取り方について説明する。
 図1に示すように、暗号文がベクトルx=(x,x,...,x)であり、鍵がベクトルv=(v,v,...,v)であるとする。この場合、内積述語暗号では、ベクトルxとベクトルvとの内積Σi=1 (x・v)が計算され、暗号文が鍵により復号される。つまり、暗号文のベクトルxと鍵のベクトルvとの対応する要素毎の内積の和が計算され、暗号文が鍵により復号される。
 図2に示すように、暗号文がベクトルx=(x,x)であり、鍵がベクトルv=(v,v,...,v)であるように、暗号文のベクトルxと鍵のベクトルvとの要素数が異なる場合もある。この場合にも、暗号文のベクトルxと鍵のベクトルvとの対応する要素毎の内積の和が計算され、暗号文が鍵により復号される。
 図3に基づき、内積述語暗号の基本構成について説明する。
 秘密値sと、t∈Ivの各整数tについての分散値sとが用いられる。秘密値sと分散値sとには、s=Σt∈Ivという関係がある。
 鍵は、秘密値sが設定された基底B 上のベクトルである要素k と、t∈Ivの各整数tについて、分散値sと属性値vとインデックスtとが設定された基底B上のベクトルである要素k とを含む。一方、暗号文は、基底B に対応する基底B上のベクトルである要素cと、t∈Ixの各整数tについて、属性値xとインデックスtとが設定された、基底Bに対応する基底B上のベクトルである要素cとを含む。
 そして、要素k と要素cとの内積が計算されるとともに、t∈Ivとの各整数tについて、鍵に含まれる要素k と、暗号文に含まれる要素cとの内積が計算される。t∈Ivの各整数tについては、要素k に設定された属性値vと要素cに設定された属性値xとが対応している場合に、分散値sが得られる。s=Σt∈Ivであるため、t∈Ivの全ての要素k に設定された分散値sが得られると、要素k に設定された秘密値sが得られる。そして、この場合に、暗号文が鍵により復号できる。
 なお、要素k と要素cとにインデックスtが設定されている。そのため、i≠jの整数i,jについて、属性値vと属性値xとが対応していたとしても、要素k と要素cとの内積を計算しても分散値sが得られることはない。
 図4に基づき、実施の形態1に係る部分一致秘匿検索方式のキーテクニックを説明する。
 内積述語暗号の基本構成で説明したように、鍵の要素k は、分散値sと属性値vとインデックスtとが設定された基底B上のベクトルであった。この要素k を、分散値sと属性値vとが設定された基底B 上のベクトルとする。つまり、要素k にインデックスtを設定せず、インデックスt毎に割り当てられた基底B 上のベクトルにする。
 同様に、暗号文の要素cは、属性値xとインデックスtとが設定された基底B上のベクトルであった。この要素cを、属性値xが設定された、基底B に対応する基底B上のベクトルにする。つまり、要素cにインデックスtを設定せず、インデックスt毎に割り当てられた基底B上のベクトルにする。
 ここで、t=1,...,dの各整数tについての基底B は、t=1,...,d-1の各整数tについて、基底B t+1が基底B を変換行列W によって変換されて得られたものる。
 つまり、変換行列W を用いれば、基底B を基底B t+1に変換できるし、逆に基底B t+1を基底B に変換できる。したがって、t=1,...,d-1の各整数tについての変換行列W を用いれば、ある基底B をt=1,...,dのどの整数tについての基底B にも変換することができる。
 これにより、ある基底B 上のベクトルを、t=1,...,dのどの整数tについての基底B 上のベクトルにも変換することができる。
 i≠jの整数i,jについて、基底B と基底Bとが対応していない。そのため、属性値vと属性値xとが対応していたとしても、要素k と要素cとの内積を計算しても分散値sが得られることはない。
 しかし、要素k と要素cとにはインデックスtが設定されていない。そのため、要素k を、基底B 上のベクトルから基底B 上のベクトルに変換すれば、要素k と要素cとの内積を計算して分散値sを得ることができる。
 つまり、鍵の要素k の基底B を変換して、要素k と内積を取る相手となる暗号文の要素cを変更できる。そのため、検索者から与えられたオリジナル検索鍵における各要素k の基底B を変換して、要素k と内積を取る相手となる暗号文の要素cを別の要素ct’に変更した複数の変換後検索鍵を生成することができる。これを利用すれば、部分一致秘匿検索方式を実現することができる。
 図5に基づき、実施の形態1に係る部分一致秘匿検索方式の実現例を説明する。
 データベースに、ABCDEという検索タグとなる文字列が暗号化された暗号化タグが記憶されており、検索キーワードとして、CDという文字列が与えられたとする。
 この場合、ABCDEという文字列の各文字を属性値xとして、暗号文の要素cが生成される。つまり、要素cには属性値Aが設定され、要素cには属性値Bが設定され、要素cには属性値Cが設定され、要素cには属性値Dが設定され、要素cには属性値Eが設定される。
 一方、CDという文字列の各文字を属性値vとして、オリジナル検索鍵が生成される。つまり、要素k には属性値Cが設定され、要素k には属性値Dが設定される。
 検索処理では、オリジナル検索鍵の要素k の基底B の添え字tを1つづつ順にずらして変換後検索鍵を生成し、変換後検索鍵で暗号化タグを復号する。復号されれば、変換後検索鍵で暗号化タグが検索されたことになる。
 つまり、初めに、オリジナル検索鍵の要素k の基底B の添え字tを0ずらして変換後検索鍵を生成し、変換後検索鍵で暗号化タグを復号する。すなわち、オリジナル検索鍵をそのまま変換後検索鍵として、変換後検索鍵で暗号化タグを復号する。
 この場合、属性値Aが設定された要素cと属性値Cが設定された要素k との内積が取られ、属性値Bが設定された要素cと属性値Dが設定された要素k との内積が取られる。要素cと要素k とでは属性値が対応しておらず、要素cと要素k とでは属性値が対応していないため、変換後検索鍵で暗号化タグを復号できない。
 次に、オリジナル検索鍵の要素k の基底B の添え字tを1ずらして変換後検索鍵を生成し、変換後検索鍵で暗号化タグを復号する。すなわち、オリジナル検索鍵の要素k の基底B を基底B に変換し、要素k の基底B を基底B に変換して変換後検索鍵として、変換後検索鍵で暗号化タグを復号する。
 この場合、属性値Bが設定された要素cと属性値Cが設定された要素k との内積が取られ、属性値Cが設定された要素cと属性値Dが設定された要素k との内積が取られる。要素cと要素k とでは属性値が対応しておらず、要素cと要素k とでは属性値が対応していないため、変換後検索鍵で暗号化タグを復号できない。
 次に、オリジナル検索鍵の要素k の基底B の添え字tを2ずらして変換後検索鍵を生成し、変換後検索鍵で暗号化タグを復号する。すなわち、オリジナル検索鍵の要素k の基底B を基底B に変換し、要素k の基底B を基底B に変換して変換後検索鍵として、変換後検索鍵で暗号化タグを復号する。
 この場合、属性値Cが設定された要素cと属性値Cが設定された要素k との内積が取られ、属性値Dが設定された要素cと属性値Dが設定された要素k との内積が取られる。要素cと要素k とでは属性値が対応しており、要素cと要素k とでは属性値が対応しているため、変換後検索鍵で暗号化タグを復号できる。したがって、変換後検索鍵で暗号化タグが検索される。
 このように、オリジナル検索鍵の要素k の基底B の添え字tを1つづつ順にずらして変換後検索鍵を生成することにより、部分一致秘匿検索方式を実現できる。
 図6に基づき、実施の形態1に係る部分一致秘匿検索方式の実現例を説明する。
 データベースに、ABCDEという検索タグとなる文字列が暗号化された暗号化タグが記憶されており、検索キーワードとして、BDという文字列が与えられたとする。
 この場合、ABCDEという文字列の各文字を属性値xとして、暗号文の要素cが生成される。つまり、要素cには属性値Aが設定され、要素cには属性値Bが設定され、要素cには属性値Cが設定され、要素cには属性値Dが設定され、要素cには属性値Eが設定される。
 一方、BDという文字列の各文字を属性値vとして、オリジナル検索鍵が生成される。つまり、要素k には属性値Bが設定され、要素k には属性値Dが設定される。
 検索処理では、オリジナル検索鍵の要素k の基底B の添え字と、要素k の基底B の添え字との差が大きくなるように変換して変換後検索鍵を生成し、変換後検索鍵で暗号化タグを復号する。
 例えば、オリジナル検索鍵の要素k の基底B を基底B に変換し、要素k の基底B を基底B に変換して、変換後検索鍵が生成される。
 この場合、属性値Bが設定された要素cと属性値Bが設定された要素k との内積が取られ、属性値Dが設定された要素cと属性値Dが設定された要素k との内積が取られる。要素cと要素k とでは属性値が対応しており、要素cと要素k とでは属性値が対応しているため、変換後検索鍵で暗号化タグを復号できる。したがって、変換後検索鍵で暗号化タグが検索される。
 このように、オリジナル検索鍵の要素k の基底B の添え字と、要素k の基底B の添え字との差が大きくなるように変換して変換後検索鍵を生成することにより、検索キーワードの文字列に間を空けた部分一致秘匿検索方式を実現できる。
 図7に基づき、実施の形態1に係る部分一致秘匿検索方式の実現例を説明する。
 データベースに、ABCDEという検索タグとなる文字列が暗号化された暗号化タグが記憶されており、検索キーワードとして、BAという文字列が与えられたとする。
 この場合、ABCDEという文字列の各文字を属性値xとして、暗号文の要素cが生成される。つまり、要素cには属性値Aが設定され、要素cには属性値Bが設定され、要素cには属性値Cが設定され、要素cには属性値Dが設定され、要素cには属性値Eが設定される。
 一方、BAという文字列の各文字を属性値vとして、オリジナル検索鍵が生成される。つまり、要素k には属性値Bが設定され、要素k には属性値Aが設定される。
 検索処理では、オリジナル検索鍵の要素k の基底B と、要素k の基底B とが入れ替わるように変換して変換後検索鍵を生成し、変換後検索鍵で暗号化タグを復号する。
 例えば、オリジナル検索鍵の要素k の基底B を基底B に変換し、要素k の基底B を基底B に変換して、変換後検索鍵が生成される。
 この場合、属性値Bが設定された要素cと属性値Bが設定された要素k との内積が取られ、属性値Aが設定された要素cと属性値Aが設定された要素k との内積が取られる。要素cと要素k とでは属性値が対応しており、要素cと要素k とでは属性値が対応しているため、変換後検索鍵で暗号化タグを復号できる。したがって、変換後検索鍵で暗号化タグが検索される。
 このように、オリジナル検索鍵の要素k の基底B と、要素k の基底B とが入れ替わるように変換して変換後検索鍵を生成することにより、検索キーワードの文字列の順序を入れ替えた部分一致秘匿検索方式を実現できる。
 ***構成の説明***
 実施の形態1に係る部分一致秘匿検索方式の構成について説明する。
 部分一致秘匿検索方式は、KGアルゴリズムと、TagGenアルゴリズムと、TrapGenアルゴリズムと、TrapShiftアルゴリズムと、Searchアルゴリズムとを備える。
 KGアルゴリズムは、セキュリティパラメータλとベクトル長dとを入力として、公開鍵pkと、秘密鍵skと、シフト用秘密鍵sskとを出力するアルゴリズムである。
 TagGenアルゴリズムは、公開鍵pkと、属性ベクトルxとを入力として、暗号化タグETを出力する確率的アルゴリズムである。
 TrapGenアルゴリズムは、公開鍵pkと、秘密鍵skと、述語ベクトルvとを入力として、オリジナル検索鍵TDを出力する確率的アルゴリズムである。
 TrapShiftアルゴリズムは、オリジナル検索鍵TDと、シフト情報SIと、シフト用秘密鍵sskとを入力として、変換後検索鍵TDv’を出力するアルゴリズムである。
 Searchアルゴリズムは、公開鍵pkと、暗号化タグETと、変換後検索鍵TDv’とを入力として、検索にヒットしたことを示す0、又は、検索にヒットしなかったことを示す1を出力する確定的アルゴリズムである。
 図8に基づき、実施の形態1に係る秘匿検索システム10の構成について説明する。
 秘匿検索システム10は、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、変換後検索鍵生成装置400と、検索装置500とを備える。
 なお、ここでは、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、変換後検索鍵生成装置400と、検索装置500とをそれぞれ別の装置としているが、これらの装置のうち2つ以上の装置が1つの装置で構成されていてもよい。例えば、変換後検索鍵生成装置400と検索装置500とは1つの装置で構成されていてもよい。したがって、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、変換後検索鍵生成装置400と、検索装置500とを、それぞれ鍵生成部と、暗号化タグ生成部と、検索鍵生成部と、変換後検索鍵生成部と、検索部と読み替え、ある装置の要素としてもよい。
 鍵生成装置100は、セキュリティパラメータλと、ベクトル長dを入力として、KGアルゴリズムを実行して、公開鍵pkと、秘密鍵skと、シフト用秘密鍵sskとを出力する。
 暗号化タグ生成装置200は、公開鍵pkと、属性ベクトルxとを入力として、TagGenアルゴリズムを実行して、暗号化タグETを出力する。
 検索鍵生成装置300は、公開鍵pkと、秘密鍵skと、述語ベクトルvとを入力として、TrapGenアルゴリズムを実行して、オリジナル検索鍵TDを出力する。
 変換後検索鍵生成装置400は、オリジナル検索鍵TDと、シフト情報SIと、シフト用秘密鍵sskとを入力として、TrapShiftアルゴリズムを実行して、変換後検索鍵TDv’を出力する。
 検索装置500は、公開鍵pkと、暗号化タグETと、変換後検索鍵TDv’とを入力として、Searchアルゴリズムを実行して、検索にヒットしたことを示す0、又は、検索にヒットしなかったことを示す1を出力する。
 図9に基づき、実施の形態1に係る鍵生成装置100の構成について説明する。
 鍵生成装置100は、情報取得部110と、基底生成部120と、変換行列生成部130と、鍵生成部140と、鍵出力部150とを備える。
 情報取得部110は、セキュリティパラメータλと、ベクトル長dとを取得する。
 基底生成部120は、セキュリティパラメータλに基づき、部分一致秘匿検索方式を実現するための基礎となる基底Bと基底B と基底Bと基底B とを生成する。また、基底生成部120は、パラメータparamを生成する。
 変換行列生成部130は、ベクトル長dを用いて、i=1,...,d-1の各整数iについて、変換行列Wと変換行列W とを生成する。
 鍵生成部140は、基底B及び基底Bと、パラメータparamと、変換行列Wとを用いて、公開鍵pkを生成する。また、鍵生成部140は、基底B 及び基底B と、変換行列W とを用いて、秘密鍵skを生成する。また、鍵生成部140は、変換行列W を用いて、シフト用秘密鍵sskを生成する。
 鍵出力部150は、公開鍵pkを公開する。また、鍵出力部150は、秘密鍵skを検索鍵生成装置300へ出力する。また、鍵出力部150は、シフト用秘密鍵sskを変換後検索鍵生成装置400に出力する。
 図10に基づき、実施の形態1に係る暗号化タグ生成装置200の構成を説明する。
 暗号化タグ生成装置200は、情報取得部210と、タグ生成部220と、暗号化タグ出力部230とを備える。
 情報取得部210は、公開鍵pkと、属性ベクトルxとを取得する。
 タグ生成部220は、公開鍵pkと、属性ベクトルxとを用いて、複数の基底Bのうちの少なくとも一部の基底B上のタグベクトルcを含む暗号化タグETを生成する。タグ生成部220は、乱数生成部221と、要素生成部222とを備える。
 暗号化タグ出力部230は、暗号化タグETを検索装置500に出力する。
 図11に基づき、実施の形態1に係る検索鍵生成装置300の構成を説明する。
 検索鍵生成装置300は、情報取得部310と、鍵生成部320と、鍵出力部330とを備える。
 情報取得部310は、公開鍵pkと、秘密鍵skと、述語ベクトルvとを取得する。
 鍵生成部320は、公開鍵pkと、秘密鍵skと、述語ベクトルvとを用いて、文字列の各文字が位置を指定されて設定されたオリジナル検索鍵TDを生成する。ここでは、鍵生成部320は、複数の基底B のうちの少なくとも一部の基底B 上の検索ベクトルk を含むオリジナル検索鍵TDを生成する。鍵生成部320は、乱数生成部321と、秘密値生成部322と、要素生成部323とを備える。
 鍵出力部330は、オリジナル検索鍵TDを変換後検索鍵生成装置400に出力する。
 図12に基づき、実施の形態1に係る変換後検索鍵生成装置400の構成を説明する。
 変換後検索鍵生成装置400は、情報取得部410と、判定部420と、鍵変換部430と、鍵出力部440とを備える。
 情報取得部410は、オリジナル検索鍵TDと、シフト情報SIと、シフト用秘密鍵sskとを取得する。
 判定部420は、シフト情報SIに基づきオリジナル検索鍵TDを変換可能か否かを判定する。
 鍵変換部430は、変換可能である場合に、シフト用秘密鍵sskを用いて、シフト情報SIに基づきオリジナル検索鍵TDを変換して、変換後検索鍵TDv’を生成する。特に、鍵変換部430は、オリジナル検索鍵TDに設定された文字のうち少なくとも一部の文字に対して指定された位置を他の位置に変換することにより、変換後検索鍵TDv’を生成する。ここでは、鍵変換部430は、は、オリジナル検索鍵TDに含まれる少なくとも一部の検索ベクトルk を複数の基底B のうちの他の基底B 上の検索ベクトルk に変換することにより、変換後検索鍵TDv’を生成する。
 鍵出力部440は、変換後検索鍵TDv’を検索装置500に出力する。
 図13に基づき、実施の形態1に係る検索装置500の構成を説明する。
 検索装置500は、情報取得部510と、検索判定部520と、結果出力部530とを備える。
 情報取得部510は、公開鍵pkと、暗号化タグETと、変換後検索鍵TDv’とを取得する。
 検索判定部520は、暗号化タグ生成装置200が生成した複数の暗号化タグETであって、文字列の各文字が位置を指定されて設定された複数の暗号化タグETから、変換後検索鍵生成装置400が生成した変換後検索鍵TDv’に設定された各文字について、その文字と、その文字に対して指定された位置に設定された文字とが一致する暗号化タグETを検索する。ここでは、検索判定部520は、公開鍵pkと変換後検索鍵TDv’とを用いて、暗号化タグETを復号することにより、検索にヒットしたか否かを判定する。つまり、検索判定部520は、暗号化タグ生成装置200が生成した複数の暗号化タグETから、変換後検索鍵生成装置400が生成した変換後検索鍵TDv’に対応する暗号化タグETを検索する。
 結果出力部530は、検索にヒットしたことを示す0、又は、検索にヒットしなかったことを示す1を出力する。
 ***動作の説明***
 図14に基づき、実施の形態1に係るKGアルゴリズムの処理を説明する。
 上述した通り、KGアルゴリズムは、鍵生成装置100によって実行される。KGアルゴリズムは、実施の形態1に係る秘匿検索方法における鍵生成工程に相当する。また、KGアルゴリズムは、実施の形態1に係る秘匿検索プログラムにおける鍵生成処理に相当する。
 (S101:情報取得処理)
 情報取得部110は、秘匿検索システム10の管理者等によって入力装置により入力された、セキュリティパラメータλと、ベクトル長dとを取得する。ベクトル長dは、2以上の整数である。
 (S102:基底生成処理)
 基底生成部120は、セキュリティパラメータλを入力として、数112を計算して、基底Bと基底B と基底Bと基底B と、双対ペアリングベクトル空間のパラメータparamとを生成する。
Figure JPOXMLDOC01-appb-M000012
 なお、数112において、Gbpgは、双線形ペアリング群を生成する関数であり、Gdpvsは、双対ペアリングベクトル空間を生成する関数である。
 (S103:変換行列生成処理)
 変換行列生成部130は、i=1,...,d-1の各整数iについて、数113を計算して、変換行列Wと変換行列W とを生成する。
Figure JPOXMLDOC01-appb-M000013
 (S104:公開鍵生成処理)
 鍵生成部140は、i=1,...,d-1の各整数iについて、S102で生成された基底Bと、S103で生成された変換行列Wとを入力として、数114を計算して、i=2,...,dの各整数iについての基底Bを生成する。
Figure JPOXMLDOC01-appb-M000014
 鍵生成部140は、S102で生成された基底Bの部分基底B^と、i=1,...,dの各整数iについて、部分基底B^とを数115に示すように生成する。
Figure JPOXMLDOC01-appb-M000015
 鍵生成部140は、i=0,...,dの各整数iについての部分基底B^と、S102で生成されたパラメータparamとを公開鍵pkとする。
 (S105:秘密鍵生成処理)
 鍵生成部140は、i=1,...,d-1の各整数iについて、S102で生成された基底B と、S103で生成された変換行列W とを入力として、数116を計算して、i=2,...,dの各整数iについての基底B を生成する。
Figure JPOXMLDOC01-appb-M000016
 鍵生成部140は、S102で生成された基底B の部分基底B^ と、i=1,...,dの各整数iについて、部分基底B^ とを数117に示すように生成する。
Figure JPOXMLDOC01-appb-M000017
 鍵生成部140は、i=0,...,dの各整数iについての部分基底B^ を秘密鍵skとする。
 (S106:シフト用秘密鍵生成処理)
 鍵生成部140は、S103で生成された、i=1,...,d-1の各整数iについての変換行列W をシフト用秘密鍵sskとする。
 (S107:鍵出力処理)
 鍵出力部150は、S104で生成された公開鍵pkを公開用のサーバ等へ出力して、公開鍵pkを公開する。鍵出力部150は、S105で生成された秘密鍵skを秘密裡に検索鍵生成装置300へ出力する。鍵出力部150は、S106で生成されたシフト用秘密鍵sskを秘密裡に変換後検索鍵生成装置400に出力する。
 図15に基づき、実施の形態1に係るTagGenアルゴリズムの処理を説明する。
 上述した通り、TagGenアルゴリズムは、暗号化タグ生成装置200によって実行される。TagGenアルゴリズムは、実施の形態1に係る秘匿検索方法における暗号化タグ生成工程に相当する。また、TagGenアルゴリズムは、実施の形態1に係る秘匿検索プログラムにおける暗号化タグ生成処理に相当する。
 (S201:情報取得処理)
 情報取得部210は、鍵生成装置100によって公開された公開鍵pkを取得する。
 情報取得部210は、暗号化タグ生成装置200の使用者等によって入力装置により入力された、属性ベクトルxを取得する。属性ベクトルx:={(t,x)|t∈Ix⊆{1,...,d}}である。Ixは、インデックスの集合である。例えば、属性ベクトルxの各要素xには、図5から図7で説明したように、検索タグとなる文字列の各文字が設定される。
 (S202:乱数生成処理)
 乱数生成部221は、数118に示すように、乱数を生成する。
Figure JPOXMLDOC01-appb-M000018
 (S203:タグ要素生成処理)
 要素生成部222は、S201で取得された公開鍵pk及び属性ベクトルxと、S202で生成された乱数とを入力として、数119に示すように、タグベクトルcと、t∈Ixの各整数tについてのタグベクトルcと、タグベクトルcとを生成する。
Figure JPOXMLDOC01-appb-M000019
 (S204:タグ出力処理)
 暗号化タグ出力部230は、S201で取得されたインデックスの集合Ixと、S203で生成されたタグベクトルc及びt∈Ixの各整数tについてのタグベクトルc及びタグベクトルcとを要素として含む暗号化タグETを検索装置500に出力する。
 図16に基づき、実施の形態1に係るTrapGenアルゴリズムの処理を説明する。
 上述した通り、TrapGenアルゴリズムは、検索鍵生成装置300によって実行される。TrapGenアルゴリズムは、実施の形態1に係る秘匿検索方法における検索鍵生成工程に相当する。また、TrapGenアルゴリズムは、実施の形態1に係る秘匿検索プログラムにおける検索鍵生成処理に相当する。
 (S301:情報取得処理)
 情報取得部310は、鍵生成装置100によって公開された公開鍵pkと、鍵生成装置100によって出力された秘密鍵skとを取得する。
 情報取得部310は、検索鍵生成装置300の使用者等によって入力装置により入力された、述語ベクトルvを取得する。述語ベクトルv:={(t,v)|t∈Iv⊆{1,...,d}}である。Ivは、インデックスの集合である。例えば、述語ベクトルvの各要素vには、図5から図7で説明したように、検索キーワードとなる文字列の各文字が設定される。
 (S302:乱数生成処理)
 乱数生成部321は、数120に示すように、乱数を生成する。
Figure JPOXMLDOC01-appb-M000020
 (S303:秘密値生成処理)
 秘密値生成部322は、S202で生成されたt∈Ivの各整数tについての乱数sを入力として、秘密値s=Σt∈Ivを生成する。
 (S304:鍵要素生成処理)
 要素生成部323は、S301で取得された公開鍵pk及び秘密鍵sk及び述語ベクトルvと、S302で生成された乱数と、S303で生成された秘密値sとを入力として、数121に示すように、検索ベクトルk と、t∈Ivの各整数tについての検索ベクトルk とを生成する。
Figure JPOXMLDOC01-appb-M000021
 (S305:鍵出力処理)
 鍵出力部330は、S301で取得されたインデックスの集合Ivと、S304で生成された検索ベクトルk 及びt∈Ivの各整数tについての検索ベクトルk とを要素として含むオリジナル検索鍵TDを変換後検索鍵生成装置400に出力する。
 図17に基づき、実施の形態1に係るTrapShiftアルゴリズムの処理を説明する。
 上述した通り、TrapShiftアルゴリズムは、変換後検索鍵生成装置400によって実行される。TrapShiftアルゴリズムは、実施の形態1に係る秘匿検索方法における変換後検索鍵生成工程に相当する。また、TrapShiftアルゴリズムは、実施の形態1に係る秘匿検索プログラムにおける変換後検索鍵生成処理に相当する。
 (S401:情報取得処理)
 情報取得部410は、検索鍵生成装置300によって出力されたオリジナル検索鍵TDを取得する。
 情報取得部410は、シフト情報SIを取得する。シフト情報SI:=(Iv’⊆{1,...,d},ρ)である。つまり、シフト情報SIは、インデックスの集合Iv’と、遷移情報ρとを含む。遷移情報ρは、インデックスの集合Ivに含まれるインデックスtiをインデックスの集合Iv’に含まれるインデックスt’iに移すことを表現した情報である。ここでi=1,...,dである。
 情報取得部410は、鍵生成装置100によって出力されたシフト用秘密鍵sskを取得する。
 (S402:サイズ判定処理)
 判定部420は、インデックスの集合Ivのサイズ|Iv|=Uと、インデックスの集合Iv’のサイズ|Iv’|=U’とが等しいか否かを判定する。これにより、判定部420は、シフト情報SIに基づきオリジナル検索鍵TDを変換可能か否かを判定する。
 判定部420は、U=U’であれば変換可能であるため、処理をS303へ進め、U≠U’であれば変換不可能であるため、処理を終了する。
 (S403:インデックス初期化処理)
 鍵変換部430は、インデックスの集合Ivのうち、最も小さい値のインデックスtをインデックスtとして選択する。
 (S404:シフト判定処理)
 鍵変換部430は、遷移情報ρがt=t’を示すか、又は、t<t’を示すか、又は、t>t’を示すかを判定する。
 鍵変換部430は、t=t’を示す場合には、処理をS405へ進め、t<t’を示す場合には、処理をS406へ進め、t>t’を示す場合には、処理をS407へ進める。
 (S405:シフトA処理)
 鍵変換部430は、数122に示すように、検索ベクトルk t’iを生成する。
Figure JPOXMLDOC01-appb-M000022
 つまり、鍵変換部430は、検索ベクトルk tiをそのまま検索ベクトルk t’iとする。
 (S406:シフトB処理)
 鍵変換部430は、数123に示すように、検索ベクトルk t’iを生成する。
Figure JPOXMLDOC01-appb-M000023
 つまり、鍵変換部430は、基底B 上の検索ベクトルk tiに、j=t,...,t’-1の各整数jについての変換行列W を順に乗じて、基底B t’i上の検索ベクトルk t’iに変換する。
 (S407:シフトC処理)
 鍵変換部430は、数124に示すように、検索ベクトルk t’iを生成する。
Figure JPOXMLDOC01-appb-M000024
 つまり、鍵変換部430は、基底B 上の検索ベクトルk に、j=t-1,...,t’の各整数jについての変換行列W の逆行列(W -1を順に乗じて、基底B t’i上の検索ベクトルk t’iに変換する。
 (S408:終了判定処理)
 鍵変換部430は、インデックスの集合Ivの全てのインデックスtについての処理が終了したか否かを判定する。
 鍵変換部430は、終了していない場合、インデックスの集合Ivに含まれるインデックスtのうち、現在選択されているインデックスtの次に大きい値のインデックスtをインデックスtとして選択して、処理をS404に戻す。一方、鍵変換部430は、終了している場合、処理をS409に進める。
 (S409:鍵出力処理)
 鍵出力部440は、S401で取得されたインデックスの集合Iv’及び検索ベクトルk と、S405からS407で生成されたt’∈Iv’の各整数t’についての検索ベクトルk t’とを要素として含む変換後検索鍵TDv’を検索装置500に出力する。
 つまり、複数の基底B は、t=1,...,d-1の各整数tについて、基底B t+1が基底B を変換行列W によって変換されて得られる、t=1,...,dの各整数tについての基底B である。そして、変換後検索鍵生成装置400は、オリジナル検索鍵TDに含まれる少なくとも一部の検索ベクトルk を、変換行列W により他の基底B 上の検索ベクトルk に変換する。
 より具体的には、複数の基底B は、t=1,...,d-1の各整数tについて、基底B t+1が基底B に変換行列W を乗じて得られたものである。そして、変換後検索鍵生成装置400は、1以上d以下の整数t,t’について、t<t’のときには、基底B 上の検索ベクトルk にj=t,...,t’-1の各整数jについての変換行列W を乗じて、検索ベクトルk を基底B t’上の検索ベクトルk t’に変換する。変換後検索鍵生成装置400は、t>t’の場合のときには、基底B 上の検索ベクトルk にj=t-1,...,t’の各整数jについての変換行列W の逆行列(W -1を乗じて、検索ベクトルk を基底B t’上の検索ベクトルk t’に変換する。
 これにより、変換後検索鍵生成装置400は、変換後検索鍵TDv’を生成する。
 図18に基づき、実施の形態1に係るSearchアルゴリズムの処理を説明する。
 上述した通り、Searchアルゴリズムは、検索装置500によって実行される。Searchアルゴリズムは、実施の形態1に係る秘匿検索方法における検索工程に相当する。また、Searchアルゴリズムは、実施の形態1に係る秘匿検索プログラムにおける検索処理に相当する。
 (S501:情報取得処理)
 情報取得部510は、鍵生成装置100によって公開された公開鍵pkを取得する。
 情報取得部510は、暗号化タグ生成装置200によって出力された暗号化タグETを取得する。
 情報取得部510は、変換後検索鍵生成装置400によって出力された変換後検索鍵TDv’を取得する。
 (S502:検索可能判定処理)
 検索判定部520は、S501で取得された変換後検索鍵TDv’に含まれるインデックスの集合Iv’が、S501で取得された暗号化タグETに含まれるインデックスの集合Ixの部分集合であるか否かを判定する。
 検索判定部520は、部分集合である場合には検索可能であるとして、処理をS503に進め、部分集合でない場合には検索不可能であるとして、処理を終了する。
 (S503:復号処理)
 検索判定部520は、数125に示すように、暗号化タグETに含まれるタグと、変換後検索鍵TDv’に含まれる検索ベクトルとについて、ペアリング演算して、セッション鍵Kを計算する。
Figure JPOXMLDOC01-appb-M000025
 つまり、検索判定部520は、内積述語暗号方式で言うところの、公開鍵pkと変換後検索鍵TDv’とを用いて、暗号化タグETを復号する処理を行う。
 (S504:検索判定処理)
 検索判定部520は、S503で計算されたセッション鍵Kが、暗号化タグETに含まれるタグベクトルcと等しいか否かを判定する。
 検索判定部520は、等しい場合、処理をS505へ進め、等しくない場合、処理をS506へ進める。
 (S505:結果A出力処理)
 結果出力部530は、検索にヒットしたことを示す0を出力する。
 (S506:結果B出力処理)
 結果出力部530は、検索にヒットしなかったことを示す1を出力する。
 つまり、検索装置500は、変換後検索鍵TDv’に含まれる検索ベクトルk と、各暗号化タグETに含まれるタグベクトルcとを用いた計算をすることにより、変換後検索鍵TDv’に対応する暗号化タグETを検索する。
 より具体的には、検索装置500は、変換後検索鍵TDv’に含まれる検索ベクトルk と、各暗号化タグETに含まれるタグベクトルcであって、その検索ベクトルk の基底B に対応する基底B上のタグベクトルcとの内積の計算をすることにより、変換後検索鍵TDv’に対応する暗号化タグETを検索する。
 以上のように、実施の形態1に係る秘匿検索システム10は、変換後検索鍵生成装置400がオリジナル検索鍵TDに含まれる少なくとも一部の検索ベクトルk を複数の基底B のうちの他の基底B t’上の検索ベクトルk t’に変換することにより、変換後検索鍵TDv’を生成することができる。
 そのため、図5に基づき説明したように、オリジナル検索鍵TDに含まれる検索ベクトルk の基底B の添え字tを1つづつ順にずらして変換後検索鍵TDv’を生成することにより、部分一致秘匿検索方式を実現できる。
 なお、基底B の添え字tを1つづつ順にずらして変換後検索鍵TDv’を生成することに限らず、オリジナル検索鍵TDに含まれる全ての検索ベクトルk を、検索ベクトルk の基底B の添え字tが同じ値だけずれるように変換することにより、変換後検索鍵を生成してもよい。
 実施の形態1に係る秘匿検索システム10では、検索鍵生成装置300は、1つのオリジナル検索鍵TDを生成して変換後検索鍵生成装置400へ送信すれば、部分一致秘匿検索を行うことができる。そのため、検索者端末である検索鍵生成装置300が送信する検索情報量を減らすことが可能である。
 また、実施の形態1に係る秘匿検索システム10は、オリジナル検索鍵TDの情報が検索装置500に漏洩することもない。
 また、図6に基づき説明したように、オリジナル検索鍵TDに含まれる検索ベクトルk の基底B の添え字と、検索ベクトルkの基底B の添え字との差が大きくなるように変換して変換後検索鍵TDv’を生成することもできる。
 より一般的には、オリジナル検索鍵TDに含まれる検索ベクトルk のうち、検索ベクトルk の基底B の添え字tが基準値未満の検索ベクトルと、基準値以上の検索ベクトルk との間で、添え字tの値の差が大きくなるように、オリジナル検索鍵TDに含まれる検索ベクトルk を変換することにより、変換後検索鍵TDv’を生成することもできる。
 これにより、検索キーワードの文字列の途中に間を空けた部分一致秘匿検索方式を実現できる。
 また、図7に基づき説明したように、オリジナル検索鍵TDの要素k の基底B と、要素k の基底B とが入れ替わるように変換して変換後検索鍵TDv’を生成することもできる。
 より一般的には、オリジナル検索鍵TDに含まれる第1検索ベクトルと第2検索ベクトルとを、第1検索ベクトルの基底B t1と第2検索ベクトルの基底B t2とが入れ替わるように変換することにより、変換後検索鍵TDv’を生成することもできる。
 これにより、検索キーワードの文字列の順序を入れ替えた部分一致秘匿検索方式を実現できる。
 なお、上記説明では、検索可能な利用者を限定せず、全ての利用者が全ての暗号化タグETを検索可能であった。しかし、上述した部分一致秘匿検索方式を、内積述語暗号方式と組み合わせることにより、暗号化タグET毎に、検索可能な利用者を限定することも可能である。
 この場合、KGアルゴリズムにおいて、i=1,...,dの各整数iについての基底B及び基底B に加えて、i=d+1,...,d+nの各整数iについての基底B及び基底B を検索可能な利用者を限定するために生成する。そして、TagGenアルゴリズムにおいて、t=d+1,...,d+nの少なくとも一部の整数tについてのタグベクトルcに関しては検索可能な利用者の属性を示す要素xを設定し、TrapGenアルゴリズムにおいて、t=d+1,...,d+nの少なくとも一部の整数tについての検索ベクトルk に関しては検索者の属性を示す要素vを設定する。
 これにより、検索可能な利用者の属性を示す要素xと、検索者の属性を示す要素vとが対応している場合に限り検索可能となる。
 図19に基づき、実施の形態1に係る鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、変換後検索鍵生成装置400と、検索装置500とのハードウェア構成例を説明する。
 鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、変換後検索鍵生成装置400と、検索装置500とはコンピュータである。
 鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、変換後検索鍵生成装置400と、検索装置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、変換行列生成部130、鍵生成部140、鍵出力部150、情報取得部210、タグ生成部220、乱数生成部221、要素生成部222、暗号化タグ出力部230、情報取得部310、鍵生成部320、乱数生成部321、秘密値生成部322、要素生成部323、鍵出力部330、情報取得部410、判定部420、鍵変換部430、鍵出力部440、情報取得部510、検索判定部520、結果出力部530(以下、情報取得部110、基底生成部120、変換行列生成部130、鍵生成部140、鍵出力部150、情報取得部210、タグ生成部220、乱数生成部221、要素生成部222、暗号化タグ出力部230、情報取得部310、鍵生成部320、乱数生成部321、秘密値生成部322、要素生成部323、鍵出力部330、情報取得部410、判定部420、鍵変換部430、鍵出力部440、情報取得部510、検索判定部520、結果出力部530をまとめて「部」と表記する)の機能を実現するプログラムが記憶されている。
 このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
 更に、補助記憶装置902には、OS(Operating System)も記憶されている。
 そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
 図19では、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 基底生成部、130 変換行列生成部、140 鍵生成部、150 鍵出力部、200 暗号化タグ生成装置、210 情報取得部、220 タグ生成部、221 乱数生成部、222 要素生成部、230 暗号化タグ出力部、300 検索鍵生成装置、310 情報取得部、320 鍵生成部、321 乱数生成部、322 秘密値生成部、323 要素生成部、330 鍵出力部、400 変換後検索鍵生成装置、410 情報取得部、420 判定部、430 鍵変換部、440 鍵出力部、500 検索装置、510 情報取得部、520 検索判定部、530 結果出力部、pk 公開鍵、sk 秘密鍵、ssk シフト用秘密鍵、B,B 基底、B^,B^ 部分基底、param パラメータ、W,W 変換行列、Ix,Iv インデックスの集合、x 属性ベクトル、v 述語ベクトル、c タグ、k 検索ベクトル、SI シフト情報、ET 暗号化タグ、TD オリジナル検索鍵、TDv’ 変換後検索鍵。

Claims (11)

  1.  文字列の各文字が位置を指定されて設定されたオリジナル検索鍵を変換して変換後検索鍵を生成する変換後検索鍵生成部であって、前記オリジナル検索鍵に設定された文字のうち少なくとも一部の文字に対して指定された位置を他の位置に変換することにより、前記変換後検索鍵を生成する変換後検索鍵生成部と、
     文字列の各文字が位置を指定されて設定された複数の暗号化タグから、前記変換後検索鍵生成部が生成した前記変換後検索鍵に設定された各文字について、その文字と、その文字に対して指定された位置に設定された文字とが一致する暗号化タグを検索する検索部と
    を備える秘匿検索システム。
  2.  前記オリジナル検索鍵は、前記各文字が設定された検索ベクトルであって、位置を指定する複数の基底のうちのいずれかの基底上のベクトルである検索ベクトルを含み、
     前記変換後検索鍵生成部は、前記オリジナル検索鍵に含まれる少なくとも一部の検索ベクトルを前記複数の基底のうちの他の基底上の検索ベクトルに変換することにより、前記変換後検索鍵を生成する
    請求項1に記載の秘匿検索システム。
  3.  前記複数の基底は、t=1,...,d-1の各整数tについて、基底B t+1が基底B を変換行列W によって変換されて得られる、t=1,...,dの各整数tについての基底B であり、
     前記変換後検索鍵生成部は、前記オリジナル検索鍵に含まれる少なくとも一部の検索ベクトルを、前記変換行列W により前記他の基底上の検索ベクトルに変換する
    請求項2に記載の秘匿検索システム。
  4.  前記複数の基底は、t=1,...,d-1の各整数tについて、基底B t+1が前記基底B に変換行列W を乗じて得られ、
     前記変換後検索鍵生成部は、1以上d以下の整数t,t’について、t<t’のときには、基底B 上の検索ベクトルk にj=t,...,t’-1の各整数jについての変換行列W を乗じて、前記検索ベクトルk を基底B t’上の検索ベクトルk t’に変換し、t>t’の場合のときには、基底B 上の検索ベクトルk にj=t-1,...,t’の各整数jについての変換行列W の逆行列(W -1を乗じて、前記検索ベクトルk を基底B t’上の検索ベクトルk t’に変換する
    請求項3に記載の秘匿検索システム。
  5.  前記複数の基底は、t=1,...,dの各整数tについての基底B であり、
     各暗号化タグは、t=1,...,dのうちの少なくとも一部の整数tについて、前記基底B に対応する基底B上のタグベクトルを含み、
     前記検索部は、前記変換後検索鍵に含まれる検索ベクトルと、前記各暗号化タグに含まれるタグベクトルとを用いた計算をすることにより、前記変換後検索鍵に対応する暗号化タグを検索する
    請求項2に記載の秘匿検索システム。
  6.  前記検索部は、前記変換後検索鍵に含まれる検索ベクトルと、前記各暗号化タグに含まれるタグベクトルであって、その検索ベクトルの基底B に対応する基底B上のタグベクトルとの内積の計算をすることにより、前記変換後検索鍵に対応する暗号化タグを検索する
    請求項5に記載の秘匿検索システム。
  7.  前記複数の基底は、t=1,...,dの各整数tについての基底B であり、
     前記変換後検索鍵生成部は、前記オリジナル検索鍵に含まれる全ての検索ベクトルを、検索ベクトルの基底B の添え字tが同じ値だけずれるように変換することにより、前記変換後検索鍵を生成する
    請求項2に記載の秘匿検索システム。
  8.  前記複数の基底は、t=1,...,dの各整数tについての基底B であり、
     前記変換後検索鍵生成部は、前記オリジナル検索鍵に含まれる検索ベクトルのうち、検索ベクトルの基底B の添え字tが基準値未満の検索ベクトルと、基準値以上の検索ベクトルとの間で、前記添え字tの値の差が大きくなるように、前記オリジナル検索鍵に含まれる検索ベクトルを変換することにより、前記変換後検索鍵を生成する
    請求項2に記載の秘匿検索システム。
  9.  前記変換後検索鍵生成部は、前記オリジナル検索鍵に含まれる第1検索ベクトルと第2検索ベクトルとを、第1検索ベクトルの基底と第2検索ベクトルの基底とが入れ替わるように変換することにより、前記変換後検索鍵を生成する
    請求項2に記載の秘匿検索システム。
  10.  文字列の各文字が位置を指定されて設定されたオリジナル検索鍵を変換して変換後検索鍵を生成する変換後検索鍵生成処理であって、前記オリジナル検索鍵に設定された文字のうち少なくとも一部の文字に対して指定された位置を他の位置に変換することにより、前記変換後検索鍵を生成する変換後検索鍵生成処理と、
     文字列の各文字が位置を指定されて設定された複数の暗号化タグから、前記変換後検索鍵生成処理で生成した前記変換後検索鍵に設定された各文字について、その文字と、その文字に対して指定された位置に設定された文字とが一致する暗号化タグを検索する検索処理と
    をコンピュータに実行させる秘匿検索プログラム。
  11.  文字列の各文字が位置を指定されて設定されたオリジナル検索鍵を取得する情報取得部と、
     前記情報取得部が取得したオリジナル検索鍵に設定された文字のうち少なくとも一部の文字に対して指定された位置を他の位置に変換することにより、変換後検索鍵を生成する鍵変換部と
    を備える変換後検索鍵生成装置。
PCT/JP2015/050931 2015-01-15 2015-01-15 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置 WO2016113878A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016557102A JPWO2016113878A1 (ja) 2015-01-15 2015-01-15 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
PCT/JP2015/050931 WO2016113878A1 (ja) 2015-01-15 2015-01-15 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/050931 WO2016113878A1 (ja) 2015-01-15 2015-01-15 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置

Publications (1)

Publication Number Publication Date
WO2016113878A1 true WO2016113878A1 (ja) 2016-07-21

Family

ID=56405439

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/050931 WO2016113878A1 (ja) 2015-01-15 2015-01-15 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置

Country Status (2)

Country Link
JP (1) JPWO2016113878A1 (ja)
WO (1) WO2016113878A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019220531A1 (ja) * 2018-05-15 2019-11-21 三菱電機株式会社 秘匿検索装置および秘匿検索方法
CN110612563A (zh) * 2017-05-18 2019-12-24 三菱电机株式会社 检索装置、标签生成装置、查询生成装置、隐匿检索系统、检索程序、标签生成程序以及查询生成程序
WO2020136884A1 (ja) * 2018-12-28 2020-07-02 三菱電機株式会社 秘匿検索システムおよび秘匿検索方法
CN112236974A (zh) * 2018-06-11 2021-01-15 三菱电机株式会社 解密装置、加密装置以及密码系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01237724A (ja) * 1988-03-18 1989-09-22 Hitachi Ltd あいまい文字列検索表示方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
REO YOSHIDA: "Bubun Icchi Kensaku Kano Ango", 2010 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY GAIYOSHU, 19 January 2010 (2010-01-19), pages 1 - 6 *
YUTAKA KAWAI AND KATSUYUKI TAKASHIMA, PREDICATE- AND ATTRIBUTE-HIDING INNER PRODUCT ENCRYPTION IN A PUBLIC KEY SETTING, 17 November 2013 (2013-11-17), pages 1 - 47, Retrieved from the Internet <URL:http://eprint.iacr.org/2013/763.pdf> [retrieved on 20150306] *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110612563B (zh) * 2017-05-18 2023-05-12 三菱电机株式会社 检索装置、隐匿检索系统以及计算机能读取的存储介质
CN110612563A (zh) * 2017-05-18 2019-12-24 三菱电机株式会社 检索装置、标签生成装置、查询生成装置、隐匿检索系统、检索程序、标签生成程序以及查询生成程序
CN112074889A (zh) * 2018-05-15 2020-12-11 三菱电机株式会社 隐匿检索装置和隐匿检索方法
WO2019220531A1 (ja) * 2018-05-15 2019-11-21 三菱電機株式会社 秘匿検索装置および秘匿検索方法
US11431496B2 (en) 2018-05-15 2022-08-30 Mitsubishi Electric Corporation Secret search device and secret search method
CN112074889B (zh) * 2018-05-15 2023-07-04 三菱电机株式会社 隐匿检索装置和隐匿检索方法
CN112236974A (zh) * 2018-06-11 2021-01-15 三菱电机株式会社 解密装置、加密装置以及密码系统
EP3767874A4 (en) * 2018-06-11 2021-06-30 Mitsubishi Electric Corporation DECCRYPTION DEVICE, ENCRYPTION DEVICE, AND ENCRYPTION SYSTEM
US11533176B2 (en) 2018-06-11 2022-12-20 Mitsubishi Electric Corporation Decryption device, encryption device, and cryptographic system
CN112236974B (zh) * 2018-06-11 2024-02-23 三菱电机株式会社 解密装置、加密装置以及密码系统
US20210248262A1 (en) * 2018-12-28 2021-08-12 Mitsubishi Electric Corporation Secret search system and secret search method
WO2020136884A1 (ja) * 2018-12-28 2020-07-02 三菱電機株式会社 秘匿検索システムおよび秘匿検索方法
US11790105B2 (en) 2018-12-28 2023-10-17 Mitsubishi Electric Corporation Secret search system and secret search method

Also Published As

Publication number Publication date
JPWO2016113878A1 (ja) 2017-04-27

Similar Documents

Publication Publication Date Title
Wu et al. Image encryption using the two-dimensional logistic chaotic map
JP6234605B2 (ja) サーバ装置及び検索システム及び端末装置及び検索方法及びサーバプログラム及び端末プログラム
JP5593458B2 (ja) 文字列がオートマトンに受理されるか否かを認証するシステム
US9584315B2 (en) Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof
JP5929905B2 (ja) 順序保存暗号化システム、装置、方法及びプログラム
WO2016088453A1 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
WO2016113878A1 (ja) 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
CN107454975B (zh) 加密系统和密钥生成装置
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
WO2016072022A1 (ja) 暗号化グラフの検索方法、暗号化グラフの検索システム及び計算機
JP6494893B2 (ja) 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
US10050782B2 (en) Decryption condition addition device, cryptographic system, and computer readable medium
JP6918253B2 (ja) 秘匿検索システムおよび秘匿検索方法
KR100919824B1 (ko) 데이터 암호화 장치와 이를 이용한 암호화 방법
Hoang A novel structure of fast and efficient multiple image encryption
JP6296589B2 (ja) 暗号処理システム
JP7126635B2 (ja) 再暗号化装置、暗号システム、再暗号化方法及び再暗号化プログラム
CN114722405A (zh) 关键字搜索处理方法、加密方法、装置及相关设备
Romanczuk-Polubiec et al. On Multivariate Cryptosystems Based on Polynomially Compressed Maps with Invertible Decomposition.
JP2022053676A (ja) 情報処理システム及び情報処理方法
JPWO2020240630A1 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016557102

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

Country of ref document: EP

Kind code of ref document: A1