WO2018131129A1 - 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム - Google Patents

暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム Download PDF

Info

Publication number
WO2018131129A1
WO2018131129A1 PCT/JP2017/000886 JP2017000886W WO2018131129A1 WO 2018131129 A1 WO2018131129 A1 WO 2018131129A1 JP 2017000886 W JP2017000886 W JP 2017000886W WO 2018131129 A1 WO2018131129 A1 WO 2018131129A1
Authority
WO
WIPO (PCT)
Prior art keywords
tag
search
generation device
unit
encryption
Prior art date
Application number
PCT/JP2017/000886
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 JP2018561166A priority Critical patent/JP6494893B2/ja
Priority to PCT/JP2017/000886 priority patent/WO2018131129A1/ja
Priority to CN201780082449.9A priority patent/CN110140161B/zh
Priority to US16/346,336 priority patent/US20210173957A1/en
Publication of WO2018131129A1 publication Critical patent/WO2018131129A1/ja

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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • 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 that can search data in an encrypted state.
  • Patent Document 1 and Non-Patent Document 1 describe a method in which a user who registers encrypted data and a user who executes a search share the same key and use an encryption technique called inner product predicate encryption. As a result, Patent Literature 1 and Non-Patent Literature 1 realize a method in which no keyword to be leaked leaks when searching. In addition, Patent Document 1 describes a scheme that can include access control for controlling which encrypted data can be accessed for each user in a cryptographic manner.
  • Non-Patent Document 2 describes a method for realizing efficient search without sharing any keywords by sharing the same key between a user who registers encrypted data and a user who executes a search. Yes.
  • An object of the present invention is to make it possible to increase the search speed while realizing flexible access control.
  • the encryption tag generation device is: A core tag generation unit that generates a core tag by encrypting a range condition indicating a range in which a search is permitted; An encryption tag generation unit configured to generate an encryption tag in which the keyword is set by converting the core tag generated by the core tag generation unit using encoded information in which a search keyword is encoded.
  • an encryption tag is generated by converting a core tag obtained by encrypting a range condition using encoding information in which a keyword is encoded.
  • the encryption tag is also set with a range condition, and flexible access control can be realized.
  • FIG. 1 is a configuration diagram of a secret search system 10 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a master key generation device 20 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a user key generation device 30 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of an encryption tag generation device 40 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a search query generation device 50 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a search device 60 according to Embodiment 1.
  • FIG. 5 is a flowchart showing the operation of the master key generation apparatus 20 according to the first embodiment. 5 is a flowchart showing the operation of the user key generation device 30 according to the first embodiment.
  • 5 is a flowchart showing the operation of the encryption tag generation device 40 according to the first embodiment.
  • 5 is a flowchart showing the operation of the search query generation device 50 according to the first embodiment.
  • 5 is a flowchart showing an operation of the search device 60 according to the first embodiment, and a flowchart showing an encryption tag storage process.
  • 5 is a flowchart showing an operation of the search device 60 according to the first embodiment, and is a flowchart showing an encryption tag search process.
  • the block diagram of the master key generation apparatus 20 which concerns on the modification 1.
  • FIG. The block diagram of the user key generation apparatus 30 which concerns on the modification 1.
  • FIG. The block diagram of the encryption tag production
  • FIG. The block diagram of the search query production
  • FIG. The block diagram of the search device 60 concerning the modification 1.
  • Equation 11 represents a random selection from A to y according to the distribution of A. That is, in Equation 11, y is a random number.
  • Equation 12 indicates that y is a set defined by z, or y is a set to which z is substituted.
  • Equation 13 represents that machine (algorithm) A outputs a for input x.
  • Equation 15 is obtained.
  • F q represents a finite field of order q.
  • y ⁇ F q Z indicates that y is a vector having z elements on the finite field F q .
  • y ⁇ F q Z ⁇ W indicates that y is a matrix of Z rows and W columns having elements on the finite field F q .
  • the secret search system 10 includes a master key generation device 20, one or more user key generation devices 30, one or more encryption tag generation devices 40, one or more search query generation devices 50, and a search device 60.
  • the master key generation device 20, each user key generation device 30, each encryption tag generation device 40, each search query generation device 50, and the search device 60 are connected via a network 70 such as the Internet.
  • the network 70 is not limited to the Internet, but may be another type of network such as a LAN (Local Area Network).
  • the network 70 is a communication path between the master key generation device 20, each user key generation device 30, each encryption tag generation device 40, each search query generation device 50, and the search device 60.
  • the master key generation device 20 is a computer.
  • the master key generation device 20 includes hardware including a processor 21, a memory 22, a storage 23, and a communication interface 24.
  • the processor 21 is connected to other hardware via a signal line, and controls these other hardware.
  • the master key generation device 20 includes an acquisition unit 211, a master key generation unit 212, and an output unit 213 as functional components.
  • the functions of the acquisition unit 211, the master key generation unit 212, and the output unit 213 are realized by software.
  • the storage 23 stores programs that realize the functions of the acquisition unit 211, the master key generation unit 212, and the output unit 213. This program is read into the memory 22 by the processor 21 and executed by the processor 21. Thereby, the functions of the acquisition unit 211, the acquisition unit 211, the master key generation unit 212, and the output unit 213 are realized.
  • the storage 23 implements the function of the key storage unit 231.
  • the user key generation device 30 is a computer.
  • the user key generation device 30 includes hardware including a processor 31, a memory 32, a storage 33, and a communication interface 34.
  • the processor 31 is connected to other hardware via a signal line, and controls these other hardware.
  • the user key generation device 30 includes an acquisition unit 311, a user key generation unit 312, and an output unit 313 as functional components.
  • the functions of the acquisition unit 311, the user key generation unit 312, and the output unit 313 are realized by software.
  • the storage 33 stores programs that implement the functions of the acquisition unit 311, the user key generation unit 312, and the output unit 313. This program is read into the memory 32 by the processor 31 and executed by the processor 31. As a result, the functions of the acquisition unit 311, the user key generation unit 312, and the output unit 313 are realized. Further, the storage 33 realizes the function of the key storage unit 331.
  • the encryption tag generation device 40 is a computer.
  • the encryption tag generation device 40 includes hardware of a processor 41, a memory 42, a storage 43, and a communication interface 44.
  • the processor 41 is connected to other hardware via a signal line, and controls these other hardware.
  • the encryption tag generation device 40 includes an acquisition unit 411, a core tag generation unit 412, an encryption tag generation unit 413, and an output unit 414 as functional components.
  • the functions of the acquisition unit 411, the core tag generation unit 412, the encryption tag generation unit 413, and the output unit 414 are realized by software.
  • the storage 43 stores programs for realizing the functions of the acquisition unit 411, the core tag generation unit 412, the encryption tag generation unit 413, and the output unit 414. This program is read into the memory 42 by the processor 41 and executed by the processor 41. Thereby, the functions of the acquisition unit 411, the core tag generation unit 412, the encryption tag generation unit 413, and the output unit 414 are realized.
  • the storage 43 implements the function of the key storage unit 431.
  • the search query generation device 50 is a computer.
  • the search query generation device 50 includes hardware of a processor 51, a memory 52, a storage 53, and a communication interface 54.
  • the processor 51 is connected to other hardware via a signal line, and controls these other hardware.
  • the search query generation device 50 includes an acquisition unit 511, a query generation unit 512, and an output unit 513 as functional components. Functions of the acquisition unit 511, the query generation unit 512, and the output unit 513 are realized by software.
  • the storage 53 stores programs that implement the functions of the acquisition unit 511, the query generation unit 512, and the output unit 513. This program is read into the memory 52 by the processor 51 and executed by the processor 51. Thereby, the function of the acquisition part 511, the query production
  • the search device 60 is a computer.
  • the search device 60 includes hardware of a processor 61, a memory 62, a storage 63, and a communication interface 64.
  • the processor 61 is connected to other hardware via a signal line, and controls these other hardware.
  • the search device 60 includes an acquisition unit 611, a collation unit 612, and an output unit 613 as functional components.
  • the functions of the acquisition unit 611, the collation unit 612, and the output unit 613 are realized by software.
  • the storage 63 stores programs that realize the functions of the acquisition unit 611, the collation unit 612, and the output unit 613. This program is read into the memory 62 by the processor 61 and executed by the processor 61. Thereby, the function of the acquisition part 611, the collation part 612, and the output part 613 is implement
  • the processors 21, 31, 41, 51, 61 are integrated circuits (ICs) that perform arithmetic processing. Specific examples of the processors 21, 31, 41, 51, and 61 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit).
  • ICs integrated circuits
  • Specific examples of the processors 21, 31, 41, 51, and 61 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit).
  • the memories 22, 32, 42, 52, and 62 are storage devices that temporarily store data. Specific examples of the memories 22, 32, 42, 52, and 62 are SRAM (Static Random Access Memory) and DRAM (Dynamic Random Access Memory).
  • Storages 23, 33, 43, 53, and 63 are storage devices for storing data.
  • the storages 23, 33, 43, 53, and 63 are HDDs (Hard Disk Drives) as a specific example.
  • the storages 23, 33, 43, 53, and 63 are SD (Secure Digital) memory cards, CF (CompactFlash), NAND flash, flexible disks, optical disks, compact disks, Blu-ray (registered trademark) disks, DVDs (Digital Versatile Disks). ) May be a portable storage medium.
  • the communication interfaces 24, 34, 44, 54, and 64 are interfaces for communicating with external devices.
  • the communication interfaces 24, 34, 44, 54, and 64 are Ethernet (registered trademark), USB (Universal Serial Bus), and HDMI (registered trademark, High-Definition Multimedia Interface) ports.
  • the master key generation device 20 may include a plurality of processors that replace the processor 21.
  • the user key generation device 30 includes a plurality of processors that replace the processor 31,
  • the encryption tag generation device 40 includes a plurality of processors that replace the processor 41, and
  • the search query generation device 50 includes the processor 51.
  • a plurality of alternative processors may be provided.
  • the search device 60 may include a plurality of processors that replace the processor 61.
  • the plurality of processors share the execution of a program that realizes the function of each functional component.
  • Each processor is an IC that performs arithmetic processing in the same manner as the processors 21, 31, 41, 51, 61.
  • the operation of the master key generation device 20 according to the first embodiment corresponds to the master key generation method according to the first embodiment.
  • the operation of the master key generation device 20 according to the first embodiment corresponds to the processing of the master key generation program according to the first embodiment.
  • Step S11 Acquisition process
  • the acquisition unit 211 acquires the security parameter ⁇ and the dimension number N. Specifically, the acquisition unit 211 receives the security parameter ⁇ and the dimension number N input by the administrator of the master key generation device 20 or the like via the communication interface 24.
  • the acquisition unit 211 writes the security parameter ⁇ and the dimension number N in the memory 22.
  • the security parameter ⁇ is a value determined according to necessary safety.
  • the dimension number N is a value determined by necessary security, the content of access control to be realized, and the like, and is an integer of 3 or more as a specific example.
  • Step S12 basis generation process
  • the master key generation unit 212 generates a parameter param and a base B and a base B * that are orthonormal bases. Specifically, the master key generation unit 212 reads the security parameter ⁇ and the dimension number N from the memory 22. The master key generation unit 212 receives the security parameter ⁇ and the dimension number N as input, and generates a parameter param, a base B, and a base B * , as shown in Expression 16. The master key generation unit 212 writes the generated parameter param, base B, and base B * in the memory 22.
  • the algorithm G bpg is an algorithm for generating a target bilinear pairing group (q, G, G T , g, e).
  • Target bilinear pairing groups (q, G, G T, g, e) the prime q, and the cyclic multiplicative group G T cyclic additive group G and order q of order q, and g ⁇ 0 ⁇ G, non-degenerate bilinear pairing e: it is the combination of the G ⁇ G ⁇ G T.
  • the algorithm G dpvs is an algorithm for generating a dual pairing vector space (q, V, G T , A, e).
  • Step S13 Common key generation process
  • the master key generation unit 212 randomly generates a common key K ⁇ ⁇ 0, 1 ⁇ ⁇ .
  • the master key generation unit 212 writes the generated common key K in the memory 22.
  • Step S14 Master key generation process
  • the master key generation unit 212 generates a tag generation key tk and a master key mk. Specifically, the master key generation unit 212 reads the parameter param and the base B from the memory 22. The master key generation unit 212 writes the read parameter param and base B into the memory 22 as the tag generation key tk. Further, the master key generation unit 212 reads the parameter param and the base B * from the memory 22. The master key generation unit 212 writes the read parameter param and base B * into the memory 22 as the master key mk.
  • Step S15 Output process
  • the output unit 213 outputs the common key K, the tag generation key tk, and the master key mk to the key storage unit 231. Specifically, the output unit 213 reads the common key K, the tag generation key tk, and the master key mk from the memory 22. The output unit 213 writes the read common key K, tag generation key tk, and master key mk in the key storage unit 231. Further, the output unit 213 transmits the master key mk to the user key generation device 30 via the communication interface 24, transmits the common key K and the tag generation key tk to the encryption tag generation device 40, and the common key K Is transmitted to the search query generation device 50.
  • the output unit 213 When transmitting the common key K, the tag generation key tk, and the master key mk, the output unit 213 encrypts the common key K, the tag generation key tk, and the master key mk by a method such as encryption using an existing encryption method. To prevent leakage. Note that the output unit 213 may write the common key K, the tag generation key tk, and the master key mk to a portable storage medium instead of transmitting them via the network 70 via the communication interface 24. Then, the portable storage medium may be sent to the user key generation device 30, the encryption tag generation device 40, and the search query generation device 50 by mail.
  • the operation of the user key generation device 30 according to the first embodiment corresponds to the user key generation method according to the first embodiment.
  • the operation of the user key generation device 30 according to the first embodiment corresponds to the processing of the user key generation program according to the first embodiment.
  • Step S21 Acquisition process
  • the acquisition unit 311 acquires the master key mk and the user attribute information v ⁇ . Specifically, the acquisition unit 311 receives the master key mk transmitted in step S15 of FIG. 7 via the communication interface 34.
  • the acquisition unit 311 writes the received master key mk into the memory 32 and the key storage unit 331. If the master key mk is already stored in the key storage unit 331, the acquisition unit 311 reads the master key mk from the key storage unit 331 and writes it in the memory 32.
  • the acquisition unit 311 receives user attribute information v ⁇ input by the administrator of the user key generation device 30 or the like via the communication interface 34.
  • the user attribute information v ⁇ is expressed as an n-dimensional vector on the finite field Fq .
  • the attribute information v ⁇ is a vector other than a vector whose elements are all zero.
  • the acquisition unit 311 writes the received attribute information v ⁇ into the memory 32.
  • the attribute information v ⁇ indicates user attributes such as the user's affiliation and job title.
  • Step S22 random number generation process
  • the user key generation unit 312 generates a random number ⁇ F q and a random number ⁇ ⁇ ⁇ F q L.
  • the user key generation unit 312 writes the generated random number ⁇ and random number ⁇ ⁇ in the memory 32.
  • Step S23 User key generation process
  • the user key generation unit 312 sets the attribute information v ⁇ to the master key mk and generates a user key k * .
  • the user key generation unit 312 reads the master key mk, the attribute information v ⁇ , the random number ⁇ , and the random number ⁇ ⁇ from the memory 32.
  • the user key generation unit 312 generates a user key k * as shown in Equation 17 using the master key mk, the attribute information v ⁇ , the random number ⁇ , and the random number ⁇ ⁇ .
  • the user key generation unit 312 writes the generated user key k * into the memory 32.
  • 0 m means m 0s.
  • 0 k means k 0s.
  • m and k are integers of 0 or more.
  • Step S24 Output processing
  • the output unit 313 outputs the user key k * . Specifically, the output unit 313 reads the user key k * from the memory 32. The output unit 313 transmits the read user key k * to the search query generation device 50 via the communication interface 34. The output unit 313 may write the user key k * into a portable storage medium, and the portable storage medium may be sent to the search query generation device 50.
  • the operation of the encryption tag generation device 40 according to the first embodiment corresponds to the encryption tag generation method according to the first embodiment.
  • the operation of the encryption tag generation device 40 according to the first embodiment corresponds to the processing of the encryption tag generation program according to the first embodiment.
  • Step S31 Acquisition process
  • the acquisition unit 411 acquires the common key K and the tag generation key tk, the range condition x ⁇ , and the keyword w1. Specifically, the acquisition unit 411 receives the common key K and the tag generation key tk transmitted in step S15 of FIG. 7 via the communication interface 44.
  • the acquisition unit 411 writes the received common key K and tag generation key tk in the memory 42 and the key storage unit 431.
  • the acquisition unit 411 reads the common key K and the tag generation key tk from the key storage unit 431 and stores them in the memory 42. Write.
  • the acquisition unit 411 receives the range condition x ⁇ and the keyword w1 input by the user of the encryption tag generation device 40 or the like via the communication interface 44.
  • the range condition x ⁇ is expressed as an n-dimensional vector on the finite field Fq .
  • the range condition x ⁇ is a vector other than a vector whose elements are all zero.
  • the range condition x ⁇ indicates a range in which the search is permitted, and indicates an affiliation, a job title, and the like in which the search is permitted.
  • the keyword w1 is a bit string having an arbitrary number of bits.
  • the acquisition unit 411 writes the accepted range condition x ⁇ and the keyword w1 in the memory 42.
  • Step S32 random number generation process
  • the core tag generation unit 412 generates a random number ⁇ F q and a random number ⁇ ⁇ ⁇ F q k .
  • the core tag generation unit 412 writes the generated random number ⁇ and random number ⁇ 2 ⁇ in the memory 42.
  • Step S33 Core tag generation process
  • Core tags generation unit 412 encrypts the tag c x
  • the tag generation key tk is a key for generating the w
  • the range condition x ⁇ indicating a range to allow searches to produce a core tags c ⁇ x encrypted.
  • the core tag generation unit 412 reads the tag generation key tk, the range condition x ⁇ , the random number ⁇ , and the random number ⁇ ⁇ from the memory 42.
  • the core tag generation unit 412 generates the core tags c 1 to x that are vectors in the base B, as shown in Expression 18, using the tag generation key tk, the range condition x ⁇ , the random number ⁇ , and the random number ⁇ ⁇ .
  • the core tag generation unit 412 writes the generated core tags c 1 to x in the memory 42.
  • 0 L means L 0s.
  • L is an integer of 0 or more.
  • Step S34 Encoding process
  • the encryption tag generation unit 413 generates a matrix EW1 that is encoded information obtained by encoding the keyword w1. Specifically, the encryption tag generation unit 413 reads the common key K and the keyword w1 from the memory 42. The encryption tag generation unit 413 receives the common key K and the keyword w1 as input, calculates the encoding function H, and generates a matrix EW1 ⁇ F q N ⁇ N that is a square matrix with N rows and N columns. The encryption tag generation unit 413 writes the generated matrix EW1 in the memory 42.
  • the encoding function H is a function that repeatedly executes a hash function.
  • the encoding function H inputs the common key K, the keyword w1, and the value “1” to the hash function, and generates the first row component of the matrix EW. Also, the encoding function H inputs the common key K, the keyword w1, and the value “2” to the hash function, and generates the second row component of the matrix EW. As described above, the encoding function H is a function that calculates the components of each row of the matrix EW using the common key K, the keyword w1, and the value corresponding to the row as the input of the hash function.
  • Step S35 encryption tag generation process
  • the encryption tag generation unit 413 generates the encryption tags c x and w in which the keyword w1 is set by converting the core tags c 1 to x with a matrix EW1 that is encoded information in which the search keyword w1 is encoded. .
  • the encryption tag generation unit 413 reads the core tags c 1 to x and the matrix EW1 from the memory 42.
  • the encryption tag generation unit 413 generates the encryption tags c x, w by calculating the matrix product of the core tags c 1 to x and the matrix EW 1 as shown in Equation 19.
  • the encryption tag generation unit 413 calculates the matrix product of the matrix and the core tags c ⁇ x EW1, by converting the base B of the core tags c ⁇ x, to generate an encrypted tag c x, w.
  • the encryption tag generation unit 413 writes the generated encryption tag c x, w in the memory 42.
  • Step S36 Output processing
  • the output unit 414 outputs the encryption tag c x, w .
  • the output unit 414 reads the encryption tag c x, w from the memory 42.
  • the output unit 414 transmits the read encryption tag c x, w to the search device 60 via the communication interface 44.
  • the output unit 414 may write the encryption tag c x, w into a portable storage medium, and the portable storage medium may be sent to the search device 60.
  • the operation of the search query generation device 50 according to the first embodiment corresponds to the search query generation method according to the first embodiment.
  • the operation of the search query generation device 50 according to the first embodiment corresponds to the processing of the search query generation program according to the first embodiment.
  • Step S41 Acquisition process
  • the acquisition unit 511 acquires the common key K, the user key k *, and the keyword w2. Specifically, the acquisition unit 511 receives the common key K transmitted in step S15 of FIG. 7 via the communication interface 54.
  • the acquisition unit 511 writes the received common key K in the memory 52 and the key storage unit 531. If the common key K is already stored in the key storage unit 531, the acquisition unit 511 reads the common key K from the key storage unit 531 and writes it in the memory 52.
  • the acquisition unit 511 receives the user key k * transmitted in step S24 of FIG. 8 via the communication interface 54.
  • the acquisition unit 511 writes the received user key k * into the memory 52 and the key storage unit 531.
  • the acquisition unit 511 If the user key k * is already stored in the key storage unit 531, the acquisition unit 511 reads the user key k * from the key storage unit 531 and writes it in the memory 52. In addition, the acquisition unit 511 receives the keyword w ⁇ b> 2 input by the user of the search query generation device 50 or the like via the communication interface 54.
  • the keyword w2 is a bit string having an arbitrary number of bits. The acquisition unit 411 writes the accepted keyword w2 in the memory 52.
  • Step S42 random number generation process
  • the query generation unit 512 generates a random number r ⁇ F q .
  • the query generation unit 512 writes the generated random number r in the memory 52.
  • Step S43 Encoding process
  • the query generation unit 512 generates a matrix EW2 that is encoded information obtained by encoding the keyword w2. Specifically, the query generation unit 512 reads the common key K and the keyword w2 from the memory 52. The query generation unit 512 receives the common key K and the keyword w2 as input, calculates the encoding function H, and generates a matrix EW2 ⁇ F q N ⁇ N that is a square matrix of N rows and N columns. The query generation unit 512 writes the generated matrix EW2 in the memory 52. Note that the same encoding function H as that in step S34 in FIG. 9 is used.
  • Step S44 Query generation processing
  • the query generation unit 512 converts the user key k * in which the user attribute is set by the matrix EW2 that is encoded information in which the search keyword w2 is encoded, thereby the search query k * v in which the keyword w2 is set.
  • query generation unit 512 reads the user key k * and the matrix EW2 and the random number r from the memory 52.
  • the encryption tag generation unit 413 generates a search query k * v, w by calculating the matrix product of the user key k * and the inverse matrix of the matrix obtained by transposing the matrix EW2, as shown in Equation 20.
  • the query generation unit 512 calculates the matrix product of the user key k * and the inverse matrix of the matrix obtained by transposing the matrix EW2, and converts the base B * of the user key k * to thereby obtain the search query k * v. , W are generated.
  • the query generation unit 512 writes the generated search query k * v, w in the memory 52.
  • Step S45 Output processing
  • the output unit 513 outputs the search query k * v, w .
  • the output unit 513 reads the search query k * v, w from the memory 52.
  • the output unit 513 transmits the read search query k * v, w to the search device 60 via the communication interface 54.
  • the output unit 513 may write the search query k * v, w in a portable storage medium, and the portable storage medium may be sent to the search device 60.
  • the operation of the search device 60 according to the first embodiment corresponds to the search method according to the first embodiment.
  • the operation of the search device 60 according to the first embodiment corresponds to the processing of the search program according to the first embodiment.
  • the operation of the search device 60 according to the first embodiment is divided into an encryption tag storage process and an encryption tag search process.
  • Step S51 Acquisition process
  • the acquisition unit 611 acquires the encryption tag c x, w .
  • the acquisition unit 611 receives the encryption tag c x, w transmitted in step S36 of FIG. 9 via the communication interface 64.
  • the acquisition unit 611 writes the received encryption tag c x, w in the encryption tag storage unit 631.
  • step S36 of FIG. 9 the transmitted encryption tag c x, w is written in the encryption tag storage unit 631, thereby the encryption tag storage unit 631 A plurality of encryption tags c x, w are stored.
  • Step S61 Acquisition process
  • the acquisition unit 611 acquires the search query k * v, w .
  • the acquisition unit 611 receives the search query k * v, w transmitted in step S45 of FIG. 10 via the communication interface 64.
  • the acquisition unit 611 writes the received search query k * v, w in the memory 62.
  • Step S62 collation process
  • the collation unit 612 collates each encryption tag c x, w stored in the encryption tag storage unit 631 with the search query k * v, w, and performs encryption corresponding to the search query k * v, w .
  • the tags c x and w are extracted.
  • the collation unit 612 reads the search query k * v, w from the memory 62.
  • the collation unit 612 performs a pairing operation shown in Equation 21 for each encrypted tag c x, w stored in the encrypted tag storage unit 631 and the read search query k * v, w .
  • the collation unit 612 determines that the operation target encryption tag c x, w corresponds to the search query k * v, w , and the result of the pairing operation If the obtained value P is not 1, it is determined that the encryption tag c x, w to be calculated does not correspond to the search query k * v, w .
  • Step S63 output processing
  • the output unit 613 outputs the collation result. Specifically, the output unit 613 receives the identification information of the encryption tags c x, w determined to correspond to the search query k * v, w via the communication interface 64, and the search query received in step S61. k * v and w are transmitted to the search query generation device 50 of the transmission source. Alternatively, the output unit 613 determines whether or not there is an encryption tag c x, w determined to correspond to the search query k * v, w via the communication interface 64, in the search query k * received in step S61 . It transmits to the search query generation device 50 of the transmission source of v and w .
  • the encrypted tag generation device 40 uses the encoded information in which the keyword w1 is encoded as the core tags c 1 to x obtained by encrypting the range condition x 1 ⁇ .
  • An encryption tag c x, w is generated by conversion using a certain matrix EW1.
  • the search query generation device 50 converts the user key k * in which the attribute information v ⁇ is set by the matrix EW2 that is encoded information in which the keyword w2 is encoded , and generates the search query k * v, w .
  • the encryption tag generation device 40 by converting the base B matrix EW1 core tags c ⁇ x, without increasing the number of elements of the core tags c ⁇ x, encrypted tag keyword is set c Generate x, w .
  • the search query generator apparatus 50 by converting the user key k * basal B * matrix EW2, without increasing the number of elements of the user key k *, the search query k * v a keyword is set, w Is generated. Therefore, as compared with the conventional encryption tag having elements corresponding to the range information and the keyword and the search query having elements corresponding to the attribute information and the keyword, respectively. Encryption tags c x, w and search queries k * v, w with a small number of elements can be generated.
  • step S63 in FIG. 12 the number of pairing calculations in step S63 in FIG. 12 can be reduced.
  • the processing time required for collation between the encryption tag c x, w and the search query k * v, w is shortened, and the search speed is increased.
  • range information is set for the encryption tags c x, w and attribute information is set for the search query k * v, w . Therefore, flexible access control can be realized.
  • the functional components of the master key generation device 20, the user key generation device 30, the encryption tag generation device 40, the search query generation device 50, and the search device 60 are realized by software.
  • the functional components may be realized by hardware. The first modification will be described with respect to differences from the first embodiment.
  • the master key generation device 20 includes a processing circuit 25 instead of the processor 21, the memory 22, and the storage 23.
  • the processing circuit 25 is a dedicated electronic circuit that implements the functional components of the master key generation device 20 and the functions of the memory 22 and the storage 23.
  • the user key generation device 30 includes a processing circuit 35 instead of the processor 31, the memory 32, and the storage 33.
  • the processing circuit 35 is a dedicated electronic circuit that implements the functional components of the user key generation device 30 and the functions of the memory 32 and the storage 33.
  • the encryption tag generation device 40 includes a processing circuit 45 instead of the processor 41, the memory 42, and the storage 43.
  • the processing circuit 45 is a dedicated electronic circuit that implements the functional components of the encryption tag generation device 40 and the functions of the memory 42 and the storage 43.
  • the search query generation device 50 includes a processing circuit 55 instead of the processor 51, the memory 52, and the storage 53.
  • the processing circuit 55 is a dedicated electronic circuit that implements the functional components of the search query generation device 50 and the functions of the memory 52 and the storage 53.
  • the search device 60 When the function is realized by hardware, the search device 60 includes a processing circuit 65 instead of the processor 61, the memory 62, and the storage 63.
  • the processing circuit 65 is a dedicated electronic circuit that implements the functional components of the search device 60 and the functions of the memory 62 and the storage 63.
  • the processing circuits 25, 35, 45, 55, and 65 are a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), an FPGA ( Field-Programmable Gate Array) is assumed.
  • the function of each functional component of the master key generation device 20 may be realized by one processing circuit 25, or the function of each functional component may be distributed to a plurality of processing circuits 25.
  • the function of each functional component is realized by one processing circuit 35, 45, 55, 65.
  • the function of each functional component may be realized by being distributed to the plurality of processing circuits 35, 45, 55, and 65.
  • ⁇ Modification 2> As a second modification, some functions may be realized by hardware, and other functions may be realized by software. That is, some of the functional components may be realized by hardware, and other functions may be realized by software.
  • the processors 21, 31, 41, 51, 61, the memories 22, 32, 42, 52, 62, the storages 23, 33, 43, 53, 63, and the processing circuits 25, 35, 45, 55, 65 are collectively referred to. It is called “Processing Circuitry”. That is, the function of each functional component is realized by the processing circuitry.
  • 10 secret search system 20 master key generation device, 21 processor, 22 memory, 23 storage, 24 communication interface, 25 processing circuit, 211 acquisition unit, 212 master key generation unit, 213 output unit, 231 key storage unit, 30 user key Generation device, 31 processor, 32 memory, 33 storage, 34 communication interface, 35 processing circuit, 311 acquisition unit, 312 user key generation unit, 313 output unit, 331 key storage unit, 40 encryption tag generation device, 41 processor, 42 Memory, 43 storage, 44 communication interface, 45 processing circuit, 411 acquisition unit, 412 core tag generation unit, 413 encryption tag generation unit, 414 output unit, 431 key storage unit, 50 search query generation device, 51 processor 52 memory, 53 storage, 54 communication interface, 55 processing circuit, 511 acquisition unit, 512 query generation unit, 513 output unit, 531 key storage unit, 60 search device, 61 processor, 62 memory, 63 storage, 64 communication interface, 65 Processing circuit, 611 acquisition unit, 612 verification unit, 613 output unit, 631 encryption tag storage unit, 70 network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

暗号化タグ生成装置(40)では、コアタグ生成部(412)は、検索を許可する範囲を示す範囲条件xをタグ生成鍵tkで暗号化して基底Bにおけるベクトルであるコアタグc を生成する。暗号化タグ生成部(413)は、コアタグ生成部(412)によって生成されたコアタグc を、検索のキーワードw1がエンコードされたエンコード情報EW1によって変換することにより、キーワードw1が設定された暗号化タグcx,wを生成する。

Description

暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
 この発明は、暗号化された状態のデータを検索可能な秘匿検索技術に関する。
 近年、ネットワーク、特にインターネットにおける演算資源を用いて、様々なサービスを実行し提供するクラウドコンピューティング技術が存在する。これらのサービスとして、ネットワークに様々なデータを保管しておき、データの利用が許可された検索者のみがそのデータをダウンロードし利用する、といったサービスが考えられる。
 しかし、ネットワークに保管するデータの中には、利用者の個人情報といった第三者に漏洩することのない様に秘匿する必要があるデータが存在する場合がある。このようなデータは、秘密鍵暗号や公開鍵暗号といった暗号により秘匿可能であることが知られている。
 このように、暗号化したデータをネットワークに置くことで、データの秘匿化とクラウドコンピューティングの活用の両立をすることができる。しかし、データは暗号化してしまうことで検索ができなくなってしまうという課題がある。この課題を解決する技術として秘匿検索技術がある。秘匿検索技術では、特別な暗号化方法を用いることによって、暗号化された状態のデータが検索可能である。
 このような秘匿検索技術においては、クラウドに保存されるデータから情報が漏洩しないことが重要である。加えて、検索する際に送信する検索クエリからも検索するキーワードといった情報が漏洩しないことも重要である。
 特許文献1及び非特許文献1には、暗号化データを登録するユーザと、検索を実行するユーザとで、同じ鍵を共有し、内積述語暗号という暗号技術を用いる方式が記載されている。これにより、特許文献1及び非特許文献1では、検索する際、検索するキーワードが一切漏洩しない方式を実現している。
 加えて、特許文献1には、ユーザ毎に、どの暗号化データにアクセスしてよいかを制御するアクセス制御を暗号学的に含ませることができる方式が記載されている。
 非特許文献2には、暗号化データを登録するユーザと、検索を実行するユーザとで、同じ鍵を共有することで、キーワードが一切漏洩せず効率的な検索を実現する方式が記載されている。
国際公開2015/184894号公報
Emily Shen, Elaine Shi, and Brent Waters. Predicate privacy in encryption systems. In TCC 2009, volume 5444 of LNCS, pages 457-473. Springer, 2009 D. Boneh, G.D. Crescenzo, R. Ostrovsky, and G. Persiano.Public-Key Encryption with Keyword Search. In Advances in Cryptology - Eurocrypt, volume 3027 of LNCS, pages 506-522. Springer, 2004.
 特許文献1及び非特許文献1に記載された方式では、検索時に使用されるペアリング演算の実行回数が多く、検索速度が遅くなってしまう。非特許文献2に記載された方式では、特許文献1に記載された方式のようなアクセス制御を実現できていない。
 この発明は、柔軟なアクセス制御を実現しつつ、検索速度を早くすることを可能とすることを目的とする。
 この発明に係る暗号化タグ生成装置は、
 検索を許可する範囲を示す範囲条件を暗号化してコアタグを生成するコアタグ生成部と、
 前記コアタグ生成部によって生成された前記コアタグを、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された暗号化タグを生成する暗号化タグ生成部と
を備える。
 この発明では、範囲条件を暗号化して得られたコアタグをキーワードがエンコードされたエンコード情報を用いて変換して暗号化タグを生成する。これにより、暗号化タグに含まれる要素数を減らすことが可能になり、検索速度を早くすることが可能となる。また、暗号化タグには範囲条件も設定されており、柔軟なアクセス制御を実現可能である。
実施の形態1に係る秘匿検索システム10の構成図。 実施の形態1に係るマスタ鍵生成装置20の構成図。 実施の形態1に係るユーザ鍵生成装置30の構成図。 実施の形態1に係る暗号化タグ生成装置40の構成図。 実施の形態1に係る検索クエリ生成装置50の構成図。 実施の形態1に係る検索装置60の構成図。 実施の形態1に係るマスタ鍵生成装置20の動作を示すフローチャート。 実施の形態1に係るユーザ鍵生成装置30の動作を示すフローチャート。 実施の形態1に係る暗号化タグ生成装置40の動作を示すフローチャート。 実施の形態1に係る検索クエリ生成装置50の動作を示すフローチャート。 実施の形態1に係る検索装置60の動作を示すフローチャートであり、暗号化タグ記憶処理を示すフローチャート。 実施の形態1に係る検索装置60の動作を示すフローチャートであり、暗号化タグ検索処理を示すフローチャート。 変形例1に係るマスタ鍵生成装置20の構成図。 変形例1に係るユーザ鍵生成装置30の構成図。 変形例1に係る暗号化タグ生成装置40の構成図。 変形例1に係る検索クエリ生成装置50の構成図。 変形例1に係る検索装置60の構成図。
 実施の形態1.
 ***記法の説明***
 Aがランダムな変数または分布であるとき、数11は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数11において、yは乱数である。
Figure JPOXMLDOC01-appb-M000001
 数12は、yがzにより定義された集合であること、又はyがzを代入された集合であることを表す。
Figure JPOXMLDOC01-appb-M000002
 aが定数であるとき、数13は、機械(アルゴリズム)Aが入力xに対しaを出力することを表す。
Figure JPOXMLDOC01-appb-M000003
 数14に示す基底Bと基底Bとに対して、数15である。
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
 Fは、位数qの有限体を示す。また、y∈F は、yが有限体F上のz個の要素を有するベクトルであることを示す。また、y∈F Z×Wは、yが有限体F上の要素を持つ、Z行W列の行列であることを示す。
 ***構成の説明***
 図1を参照して、実施の形態1に係る秘匿検索システム10の構成を説明する。
 秘匿検索システム10は、マスタ鍵生成装置20と、1つ以上のユーザ鍵生成装置30と、1つ以上の暗号化タグ生成装置40と、1つ以上の検索クエリ生成装置50と、検索装置60とを備える。
 マスタ鍵生成装置20と、各ユーザ鍵生成装置30と、各暗号化タグ生成装置40と、各検索クエリ生成装置50と、検索装置60とは、インターネットといったネットワーク70を介して接続されている。ネットワーク70は、インターネットに限らず、LAN(Local Area Network)といった他の種別のネットワークであってもよい。ネットワーク70は、マスタ鍵生成装置20と、各ユーザ鍵生成装置30と、各暗号化タグ生成装置40と、各検索クエリ生成装置50と、検索装置60との通信路である。
 図2を参照して、実施の形態1に係るマスタ鍵生成装置20の構成を説明する。
 マスタ鍵生成装置20は、コンピュータである。
 マスタ鍵生成装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 マスタ鍵生成装置20は、機能構成要素として、取得部211と、マスタ鍵生成部212と、出力部213とを備える。取得部211と、マスタ鍵生成部212と、出力部213との機能はソフトウェアにより実現される。
 ストレージ23には、取得部211と、マスタ鍵生成部212と、出力部213との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、取得部211と、取得部211と、マスタ鍵生成部212と、出力部213との機能が実現される。
 また、ストレージ23は、鍵記憶部231の機能を実現する。
 図3を参照して、実施の形態1に係るユーザ鍵生成装置30の構成を説明する。
 ユーザ鍵生成装置30は、コンピュータである。
 ユーザ鍵生成装置30は、プロセッサ31と、メモリ32と、ストレージ33と、通信インタフェース34とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 ユーザ鍵生成装置30は、機能構成要素として、取得部311と、ユーザ鍵生成部312と、出力部313とを備える。取得部311と、ユーザ鍵生成部312と、出力部313との機能はソフトウェアにより実現される。
 ストレージ33には、取得部311と、ユーザ鍵生成部312と、出力部313との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ31によりメモリ32に読み込まれ、プロセッサ31によって実行される。これにより、取得部311と、ユーザ鍵生成部312と、出力部313との機能が実現される。
 また、ストレージ33は、鍵記憶部331の機能を実現する。
 図4を参照して、実施の形態1に係る暗号化タグ生成装置40の構成を説明する。
 暗号化タグ生成装置40は、コンピュータである。
 暗号化タグ生成装置40は、プロセッサ41と、メモリ42と、ストレージ43と、通信インタフェース44とのハードウェアを備える。プロセッサ41は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 暗号化タグ生成装置40は、機能構成要素として、取得部411と、コアタグ生成部412と、暗号化タグ生成部413と、出力部414とを備える。取得部411と、コアタグ生成部412と、暗号化タグ生成部413と、出力部414との機能はソフトウェアにより実現される。
 ストレージ43には、取得部411と、コアタグ生成部412と、暗号化タグ生成部413と、出力部414との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ41によりメモリ42に読み込まれ、プロセッサ41によって実行される。これにより、取得部411と、コアタグ生成部412と、暗号化タグ生成部413と、出力部414との機能が実現される。
 また、ストレージ43は、鍵記憶部431の機能を実現する。
 図5を参照して、実施の形態1に係る検索クエリ生成装置50の構成を説明する。
 検索クエリ生成装置50は、コンピュータである。
 検索クエリ生成装置50は、プロセッサ51と、メモリ52と、ストレージ53と、通信インタフェース54とのハードウェアを備える。プロセッサ51は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 検索クエリ生成装置50は、機能構成要素として、取得部511と、クエリ生成部512と、出力部513とを備える。取得部511と、クエリ生成部512と、出力部513との機能はソフトウェアにより実現される。
 ストレージ53には、取得部511と、クエリ生成部512と、出力部513との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ51によりメモリ52に読み込まれ、プロセッサ51によって実行される。これにより、取得部511と、クエリ生成部512と、出力部513との機能が実現される。
 また、ストレージ53は、鍵記憶部531との機能を実現する。
 図6を参照して、実施の形態1に係る検索装置60の構成を説明する。
 検索装置60は、コンピュータである。
 検索装置60は、プロセッサ61と、メモリ62と、ストレージ63と、通信インタフェース64とのハードウェアを備える。プロセッサ61は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 検索装置60は、機能構成要素として、取得部611と、照合部612と、出力部613とを備える。取得部611と、照合部612と、出力部613との機能はソフトウェアにより実現される。
 ストレージ63には、取得部611と、照合部612と、出力部613との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ61によりメモリ62に読み込まれ、プロセッサ61によって実行される。これにより、取得部611と、照合部612と、出力部613との機能が実現される。
 また、ストレージ63は、暗号化タグ記憶部631との機能を実現する。
 プロセッサ21,31,41,51,61は、演算処理を行うIC(Integrated Circuit)である。プロセッサ21,31,41,51,61は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 メモリ22,32,42,52,62は、データを一時的に記憶する記憶装置である。メモリ22,32,42,52,62は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
 ストレージ23,33,43,53,63は、データを保管する記憶装置である。ストレージ23,33,43,53,63は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ23,33,43,53,63は、SD(Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
 通信インタフェース24,34,44,54,64は、外部の装置と通信するためのインタフェースである。通信インタフェース24,34,44,54,64は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High-Definition Multimedia Interface)のポートである。
 図2では、プロセッサ21は、1つだけ示されている。しかし、マスタ鍵生成装置20は、プロセッサ21を代替する複数のプロセッサを備えていてもよい。同様に、ユーザ鍵生成装置30は、プロセッサ31を代替する複数のプロセッサを備え、暗号化タグ生成装置40は、プロセッサ41を代替する複数のプロセッサを備え、検索クエリ生成装置50は、プロセッサ51を代替する複数のプロセッサを備えていてもよい。同様に、検索装置60は、プロセッサ61を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、各機能構成要素の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ21,31,41,51,61と同じように、演算処理を行うICである。
 ***動作の説明***
 図7を参照して、実施の形態1に係るマスタ鍵生成装置20の動作を説明する。
 実施の形態1に係るマスタ鍵生成装置20の動作は、実施の形態1に係るマスタ鍵生成方法に相当する。また、実施の形態1に係るマスタ鍵生成装置20の動作は、実施の形態1に係るマスタ鍵生成プログラムの処理に相当する。
 (ステップS11:取得処理)
 取得部211は、セキュリティパラメータλと、次元数Nとを取得する。
 具体的には、取得部211は、通信インタフェース24を介して、マスタ鍵生成装置20の管理者等によって入力されたセキュリティパラメータλ及び次元数Nを受け付ける。取得部211は、セキュリティパラメータλ及び次元数Nをメモリ22に書き込む。セキュリティパラメータλは、必要な安全性に応じて決定される値である。次元数Nは、必要な安全性及び実現したいアクセス制御の内容等によって決定される値であり、具体例としては3以上の整数である。
 (ステップS12:基底生成処理)
 マスタ鍵生成部212は、パラメータparamと、正規直交基底である基底B及び基底Bとを生成する。
 具体的には、マスタ鍵生成部212は、メモリ22からセキュリティパラメータλ及び次元数Nを読み出す。マスタ鍵生成部212は、セキュリティパラメータλ及び次元数Nを入力として、数16に示すように、パラメータparamと、基底B及び基底Bとを生成する。マスタ鍵生成部212は、生成されたパラメータparamと、基底B及び基底Bとをメモリ22に書き込む。
Figure JPOXMLDOC01-appb-M000006
 アルゴリズムGbpgは、対象双線形ペアリング群(q,G,G,g,e)を生成するアルゴリズムである。対象双線形ペアリング群(q,G,G,g,e)は、素数q、位数qの巡回加法群Gと位数qの巡回乗法群Gと、g≠0∈Gと、非退化双線形ペアリングe:G×G→Gとの組である。
 アルゴリズムGdpvsは、双対ペアリングベクトル空間(q,V,G,A,e)を生成するアルゴリズムである。双対ペアリングベクトル空間(q,V,G,A,e)は、素数q、群Gの直積により構成されたN次元ベクトル空間V、位数qの巡回群G、空間Vの標準基底A:=(a,...,a)の組である。
 (ステップS13:共通鍵生成処理)
 マスタ鍵生成部212は、共通鍵K←{0,1}λをランダムに生成する。マスタ鍵生成部212は、生成された共通鍵Kをメモリ22に書き込む。
 (ステップS14:マスタ鍵生成処理)
 マスタ鍵生成部212は、タグ生成鍵tk及びマスタ鍵mkを生成する。
 具体的には、マスタ鍵生成部212は、メモリ22からパラメータparamと基底Bとを読み出す。マスタ鍵生成部212は、読み出されたパラメータparamと基底Bとをタグ生成鍵tkとしてメモリ22に書き込む。また、マスタ鍵生成部212は、メモリ22からパラメータparamと基底Bとを読み出す。マスタ鍵生成部212は、読み出されたパラメータparamと基底Bとをマスタ鍵mkとしてメモリ22に書き込む。
 (ステップS15:出力処理)
 出力部213は、共通鍵Kとタグ生成鍵tkとマスタ鍵mkとを鍵記憶部231を出力する。
 具体的には、出力部213は、メモリ22から共通鍵Kとタグ生成鍵tkとマスタ鍵mkとを読み出す。出力部213は、読み出された共通鍵Kとタグ生成鍵tkとマスタ鍵mkとを鍵記憶部231に書き込む。また、出力部213は、通信インタフェース24を介して、マスタ鍵mkをユーザ鍵生成装置30に送信し、共通鍵Kとタグ生成鍵tkとを暗号化タグ生成装置40に送信し、共通鍵Kを検索クエリ生成装置50に送信する。
 出力部213は、共通鍵Kとタグ生成鍵tkとマスタ鍵mkとを送信する際、既存の暗号方式により暗号化するといった方法により、共通鍵Kとタグ生成鍵tkとマスタ鍵mkとが他者に漏洩しないようにする。なお、出力部213は、共通鍵Kとタグ生成鍵tkとマスタ鍵mkとを、通信インタフェース24を介して、ネットワーク70経由で送信するのではなく、可搬記憶媒体に書き込んでもよい。そして、可搬記憶媒体が郵送によりユーザ鍵生成装置30と暗号化タグ生成装置40と検索クエリ生成装置50とに送付されてもよい。
 図8を参照して、実施の形態1に係るユーザ鍵生成装置30の動作を説明する。
 実施の形態1に係るユーザ鍵生成装置30の動作は、実施の形態1に係るユーザ鍵生成方法に相当する。また、実施の形態1に係るユーザ鍵生成装置30の動作は、実施の形態1に係るユーザ鍵生成プログラムの処理に相当する。
 (ステップS21:取得処理)
 取得部311は、マスタ鍵mkと、ユーザの属性情報vとを取得する。
 具体的には、取得部311は、通信インタフェース34を介して、図7のステップS15で送信されたマスタ鍵mkを受信する。取得部311は、受信されたマスタ鍵mkをメモリ32及び鍵記憶部331に書き込む。なお、既に、マスタ鍵mkが鍵記憶部331に記憶されている場合には、取得部311は、鍵記憶部331からマスタ鍵mkを読み出し、メモリ32に書き込む。
 また、取得部311は、通信インタフェース34を介して、ユーザ鍵生成装置30の管理者等によって入力されたユーザの属性情報vを受け付ける。ユーザの属性情報vは、有限体F上のn次元のベクトルとして表現されている。属性情報vは、要素が全て0のベクトル以外のベクトルである。取得部311は、受け付けられた属性情報vをメモリ32に書き込む。属性情報vは、ユーザの所属先及び役職といったユーザの属性を示す。
 (ステップS22:乱数生成処理)
 ユーザ鍵生成部312は、乱数σ∈Fと、乱数η∈F とを生成する。ユーザ鍵生成部312は、生成された乱数σ及び乱数ηをメモリ32に書き込む。
 (ステップS23:ユーザ鍵生成処理)
 ユーザ鍵生成部312は、マスタ鍵mkに属性情報vを設定してユーザ鍵kを生成する。
 具体的には、ユーザ鍵生成部312は、メモリ32からマスタ鍵mkと属性情報vと乱数σ及び乱数ηとを読み出す。ユーザ鍵生成部312は、マスタ鍵mkと属性情報vと乱数σ及び乱数ηとを用いて、数17に示すようにユーザ鍵kを生成する。ユーザ鍵生成部312は、生成されたユーザ鍵kをメモリ32に書き込む。
Figure JPOXMLDOC01-appb-M000007
 なお、0は、m個の0を意味している。同様に、0は、k個の0を意味している。m,kは0以上の整数である。
 (ステップS24:出力処理)
 出力部313は、ユーザ鍵kを出力する。
 具体的には、出力部313は、メモリ32からユーザ鍵kを読み出す。出力部313は、通信インタフェース34を介して、読み出されたユーザ鍵kを検索クエリ生成装置50に送信する。出力部313は、ユーザ鍵kを可搬記憶媒体に書き込み、可搬記憶媒体が検索クエリ生成装置50に送付されてもよい。
 図9を参照して、実施の形態1に係る暗号化タグ生成装置40の動作を説明する。
 実施の形態1に係る暗号化タグ生成装置40の動作は、実施の形態1に係る暗号化タグ生成方法に相当する。また、実施の形態1に係る暗号化タグ生成装置40の動作は、実施の形態1に係る暗号化タグ生成プログラムの処理に相当する。
 (ステップS31:取得処理)
 取得部411は、共通鍵K及びタグ生成鍵tkと、範囲条件xと、キーワードw1とを取得する。
 具体的には、取得部411は、通信インタフェース44を介して、図7のステップS15で送信された共通鍵K及びタグ生成鍵tkを受信する。取得部411は、受信された共通鍵K及びタグ生成鍵tkをメモリ42及び鍵記憶部431に書き込む。なお、既に、共通鍵K及びタグ生成鍵tkが鍵記憶部431に記憶されている場合には、取得部411は、鍵記憶部431から共通鍵K及びタグ生成鍵tkを読み出し、メモリ42に書き込む。
 また、取得部411は、通信インタフェース44を介して、暗号化タグ生成装置40の利用者等によって入力された範囲条件x及びキーワードw1を受け付ける。範囲条件xは、有限体F上のn次元のベクトルとして表現されている。範囲条件xは、要素が全て0のベクトル以外のベクトルである。範囲条件xは、検索を許可する範囲を示し、検索を許可する所属先及び役職等を示す。キーワードw1は、任意のビット数のビット列である。取得部411は、受け付けられた範囲条件x及びキーワードw1をメモリ42に書き込む。
 (ステップS32:乱数生成処理)
 コアタグ生成部412は、乱数ω∈Fと、乱数φ∈F とを生成する。コアタグ生成部412は、生成された乱数ω及び乱数φをメモリ42に書き込む。
 (ステップS33:コアタグ生成処理)
 コアタグ生成部412は、暗号化タグcx,wを生成するための鍵であるタグ生成鍵tkで、検索を許可する範囲を示す範囲条件xを暗号化してコアタグc を生成する。
 具体的には、コアタグ生成部412は、メモリ42からタグ生成鍵tkと範囲条件xと乱数ω及び乱数φとを読み出す。コアタグ生成部412は、タグ生成鍵tkと範囲条件xと乱数ω及び乱数φとを用いて、数18に示すように、基底Bにおけるベクトルであるコアタグc を生成する。コアタグ生成部412は、生成されたコアタグc をメモリ42に書き込む。
Figure JPOXMLDOC01-appb-M000008
 なお、0は、L個の0を意味している。Lは0以上の整数である。
 (ステップS34:エンコード処理)
 暗号化タグ生成部413は、キーワードw1をエンコードしたエンコード情報である行列EW1を生成する。
 具体的には、暗号化タグ生成部413は、メモリ42から共通鍵Kとキーワードw1とを読み出す。暗号化タグ生成部413は、共通鍵Kとキーワードw1とを入力として、エンコード関数Hを計算して、N行N列の正方行列である行列EW1∈F N×Nを生成する。暗号化タグ生成部413は、生成された行列EW1をメモリ42に書き込む。
 エンコード関数Hは、具体例としては、ハッシュ関数を繰り返し実行する関数である。例えば、エンコード関数Hは、共通鍵Kとキーワードw1と値“1”とをハッシュ関数に入力して、行列EWの1行目成分を生成する。また、エンコード関数Hは、共通鍵Kとキーワードw1と値“2”とをハッシュ関数に入力して、行列EWの2行目成分を生成する。このように、エンコード関数Hは、行列EWの各行の成分を、共通鍵Kとキーワードw1とその行に応じた値とをハッシュ関数の入力として計算する関数である。
 (ステップS35:暗号化タグ生成処理)
 暗号化タグ生成部413は、コアタグc を、検索のキーワードw1がエンコードされたエンコード情報である行列EW1によって変換することにより、キーワードw1が設定された暗号化タグcx,wを生成する。
 具体的には、暗号化タグ生成部413は、メモリ42からコアタグc と行列EW1とを読み出す。暗号化タグ生成部413は、数19に示すように、コアタグc と行列EW1との行列積を計算して暗号化タグcx,wを生成する。
Figure JPOXMLDOC01-appb-M000009
 つまり、暗号化タグ生成部413は、コアタグc と行列EW1との行列積を計算して、コアタグc の基底Bを変換することにより、暗号化タグcx,wを生成する。暗号化タグ生成部413は、生成された暗号化タグcx,wをメモリ42に書き込む。
 (ステップS36:出力処理)
 出力部414は、暗号化タグcx,wを出力する。
 具体的には、出力部414は、メモリ42から暗号化タグcx,wを読み出す。出力部414は、通信インタフェース44を介して、読み出された暗号化タグcx,wを検索装置60に送信する。出力部414は、暗号化タグcx,wを可搬記憶媒体に書き込み、可搬記憶媒体が検索装置60に送付されてもよい。
 図10を参照して、実施の形態1に係る検索クエリ生成装置50の動作を説明する。
 実施の形態1に係る検索クエリ生成装置50の動作は、実施の形態1に係る検索クエリ生成方法に相当する。また、実施の形態1に係る検索クエリ生成装置50の動作は、実施の形態1に係る検索クエリ生成プログラムの処理に相当する。
 (ステップS41:取得処理)
 取得部511は、共通鍵Kと、ユーザ鍵kと、キーワードw2とを取得する。
 具体的には、取得部511は、通信インタフェース54を介して、図7のステップS15で送信された共通鍵Kを受信する。取得部511は、受信された共通鍵Kをメモリ52及び鍵記憶部531に書き込む。なお、既に、共通鍵Kが鍵記憶部531に記憶されている場合には、取得部511は、鍵記憶部531から共通鍵Kを読み出し、メモリ52に書き込む。
 また、取得部511は、通信インタフェース54を介して、図8のステップS24で送信されたユーザ鍵kを受信する。取得部511は、受信されたユーザ鍵kをメモリ52及び鍵記憶部531に書き込む。なお、既に、ユーザ鍵kが鍵記憶部531に記憶されている場合には、取得部511は、鍵記憶部531からユーザ鍵kを読み出し、メモリ52に書き込む。
 また、取得部511は、通信インタフェース54を介して、検索クエリ生成装置50の利用者等によって入力されたキーワードw2を受け付ける。キーワードw2は、任意のビット数のビット列である。取得部411は、受け付けられたキーワードw2をメモリ52に書き込む。
 (ステップS42:乱数生成処理)
 クエリ生成部512は、乱数r∈Fを生成する。クエリ生成部512は、生成された乱数rをメモリ52に書き込む。
 (ステップS43:エンコード処理)
 クエリ生成部512は、キーワードw2をエンコードしたエンコード情報である行列EW2を生成する。
 具体的には、クエリ生成部512は、メモリ52から共通鍵Kとキーワードw2とを読み出す。クエリ生成部512は、共通鍵Kとキーワードw2とを入力として、エンコード関数Hを計算して、N行N列の正方行列である行列EW2∈F N×Nを生成する。クエリ生成部512は、生成された行列EW2をメモリ52に書き込む。
 なお、エンコード関数Hは、図9のステップS34と同じものが用いられる。
 (ステップS44:クエリ生成処理)
 クエリ生成部512は、ユーザの属性が設定されたユーザ鍵kを、検索のキーワードw2がエンコードされたエンコード情報である行列EW2によって変換することにより、キーワードw2が設定された検索クエリk v,wを生成する
 具体的には、クエリ生成部512は、メモリ52からユーザ鍵kと行列EW2と乱数rとを読み出す。暗号化タグ生成部413は、数20に示すように、ユーザ鍵kと行列EW2を転置した行列の逆行列との行列積を計算して検索クエリk v,wを生成する。
Figure JPOXMLDOC01-appb-M000010
 つまり、クエリ生成部512は、ユーザ鍵kと行列EW2を転置した行列の逆行列との行列積を計算して、ユーザ鍵kの基底Bを変換することにより、検索クエリk v,wを生成する。クエリ生成部512は、生成された検索クエリk v,wをメモリ52に書き込む。
 (ステップS45:出力処理)
 出力部513は、検索クエリk v,wを出力する。
 具体的には、出力部513は、メモリ52から検索クエリk v,wを読み出す。出力部513は、通信インタフェース54を介して、読み出された検索クエリk v,wを検索装置60に送信する。出力部513は、検索クエリk v,wを可搬記憶媒体に書き込み、可搬記憶媒体が検索装置60に送付されてもよい。
 図11及び図12を参照して、実施の形態1に係る検索装置60の動作を説明する。
 実施の形態1に係る検索装置60の動作は、実施の形態1に係る検索方法に相当する。また、実施の形態1に係る検索装置60の動作は、実施の形態1に係る検索プログラムの処理に相当する。
 実施の形態1に係る検索装置60の動作は、暗号化タグ記憶処理と、暗号化タグ検索処理とに分けられる。
 図11を参照して、実施の形態1に係る暗号化タグ記憶処理を説明する。
 (ステップS51:取得処理)
 取得部611は、暗号化タグcx,wを取得する。
 具体的には、取得部611は、通信インタフェース64を介して、図9のステップS36で送信された暗号化タグcx,wを受信する。取得部611は、受信された暗号化タグcx,wを暗号化タグ記憶部631に書き込む。
 図9のステップS36で暗号化タグcx,wが送信される度に、送信された暗号化タグcx,wが暗号化タグ記憶部631に書き込まれることにより、暗号化タグ記憶部631に複数の暗号化タグcx,wが記憶される。
 図12を参照して、実施の形態1に係る暗号化タグ検索処理を説明する。
 (ステップS61:取得処理)
 取得部611は、検索クエリk v,wを取得する。
 具体的には、取得部611は、通信インタフェース64を介して、図10のステップS45で送信された検索クエリk v,wを受信する。取得部611は、受信された検索クエリk v,wをメモリ62に書き込む。
 (ステップS62:照合処理)
 照合部612は、暗号化タグ記憶部631に記憶された各暗号化タグcx,wと、検索クエリk v,wとを照合して、検索クエリk v,wに対応する暗号化タグcx,wを抽出する。
 具体的には、照合部612は、メモリ62から検索クエリk v,wを読み出す。照合部612は、暗号化タグ記憶部631に記憶された各暗号化タグcx,wと、読み出された検索クエリk v,wとについて、数21に示すペアリング演算を行う。
Figure JPOXMLDOC01-appb-M000011
 照合部612は、ペアリング演算の結果得られた値Pが1であるなら、演算対象の暗号化タグcx,wは検索クエリk v,wに対応すると判定し、ペアリング演算の結果得られた値Pが1でないなら、演算対象の暗号化タグcx,wは検索クエリk v,wに対応しないと判定する。
 (ステップS63:出力処理)
 出力部613は、照合結果を出力する。
 具体的には、出力部613は、通信インタフェース64を介して、検索クエリk v,wに対応すると判定された暗号化タグcx,wの識別情報を、ステップS61で受信された検索クエリk v,wの送信元の検索クエリ生成装置50に送信する。あるいは、出力部613は、通信インタフェース64を介して、検索クエリk v,wに対応すると判定された暗号化タグcx,wがあったか否かを、ステップS61で受信された検索クエリk v,wの送信元の検索クエリ生成装置50に送信する。
 ***実施の形態1の効果***
 以上のように、実施の形態1に係る秘匿検索システム10では、暗号化タグ生成装置40は、範囲条件xを暗号化して得られたコアタグc をキーワードw1がエンコードされたエンコード情報である行列EW1によって変換して暗号化タグcx,wを生成する。また、検索クエリ生成装置50は、属性情報vが設定されたユーザ鍵kをキーワードw2がエンコードされたエンコード情報である行列EW2によって変換して検索クエリk v,wを生成する。
 より具体的には、暗号化タグ生成装置40は、コアタグc の基底Bを行列EW1によって変換することにより、コアタグc の要素数を増やすことなく、キーワードが設定された暗号化タグcx,wを生成する。また、検索クエリ生成装置50は、ユーザ鍵kの基底Bを行列EW2によって変換することにより、ユーザ鍵kの要素数を増やすことなく、キーワードが設定された検索クエリk v,wを生成する。
 そのため、従来のように、範囲情報とキーワードとのそれぞれに対応した要素を有していた暗号化タグと、属性情報とキーワードとのそれぞれに対応した要素を有していた検索クエリとに比べて、要素数の少ない暗号化タグcx,w及び検索クエリk v,wを生成することができる。その結果、図12のステップS63でのペアリング演算の演算数を少なくすることができる。ペアリング演算の演算数が少なくなると、暗号化タグcx,wと検索クエリk v,wとの照合にかかる処理時間が短くなり、検索速度が速くなる。
 また、実施の形態1に係る秘匿検索システム10では、従来のように、暗号化タグcx,wには範囲情報が設定され、検索クエリk v,wには属性情報が設定される。そのため、柔軟なアクセス制御を実現可能である。
 ***他の構成***
 <変形例1>
 実施の形態1では、マスタ鍵生成装置20とユーザ鍵生成装置30と暗号化タグ生成装置40と検索クエリ生成装置50と検索装置60との機能構成要素がソフトウェアで実現された。しかし、変形例1として、機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
 図13を参照して、変形例1に係るマスタ鍵生成装置20の構成を説明する。
 機能がハードウェアで実現される場合、マスタ鍵生成装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、処理回路25を備える。処理回路25は、マスタ鍵生成装置20の機能構成要素と、メモリ22とストレージ23との機能とを実現する専用の電子回路である。
 図14を参照して、変形例1に係るユーザ鍵生成装置30の構成を説明する。
 機能がハードウェアで実現される場合、ユーザ鍵生成装置30は、プロセッサ31とメモリ32とストレージ33とに代えて、処理回路35を備える。処理回路35は、ユーザ鍵生成装置30の機能構成要素と、メモリ32とストレージ33との機能とを実現する専用の電子回路である。
 図15を参照して、変形例1に係る暗号化タグ生成装置40の構成を説明する。
 機能がハードウェアで実現される場合、暗号化タグ生成装置40は、プロセッサ41とメモリ42とストレージ43とに代えて、処理回路45を備える。処理回路45は、暗号化タグ生成装置40の機能構成要素と、メモリ42とストレージ43との機能とを実現する専用の電子回路である。
 図16を参照して、変形例1に係る検索クエリ生成装置50の構成を説明する。
 機能がハードウェアで実現される場合、検索クエリ生成装置50は、プロセッサ51とメモリ52とストレージ53とに代えて、処理回路55を備える。処理回路55は、検索クエリ生成装置50の機能構成要素と、メモリ52とストレージ53との機能とを実現する専用の電子回路である。
 図17を参照して、変形例1に係る検索装置60の構成を説明する。
 機能がハードウェアで実現される場合、検索装置60は、プロセッサ61とメモリ62とストレージ63とに代えて、処理回路65を備える。処理回路65は、検索装置60の機能構成要素と、メモリ62とストレージ63との機能とを実現する専用の電子回路である。
 処理回路25,35,45,55,65は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
 マスタ鍵生成装置20の各機能構成要素の機能を1つの処理回路25で実現してもよいし、各機能構成要素の機能を複数の処理回路25に分散させて実現してもよい。同様に、ユーザ鍵生成装置30と暗号化タグ生成装置40と検索クエリ生成装置50と検索装置60とのそれぞれについて、各機能構成要素の機能を1つの処理回路35,45,55,65で実現してもよいし、各機能構成要素の機能を複数の処理回路35,45,55,65に分散させて実現してもよい。
 <変形例2>
 変形例2として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
 プロセッサ21,31,41,51,61とメモリ22,32,42,52,62とストレージ23,33,43,53,63と処理回路25,35,45,55,65とを、総称して「プロセッシングサーキットリー」という。つまり、各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
 10 秘匿検索システム、20 マスタ鍵生成装置、21 プロセッサ、22 メモリ、23 ストレージ、24 通信インタフェース、25 処理回路、211 取得部、212 マスタ鍵生成部、213 出力部、231 鍵記憶部、30 ユーザ鍵生成装置、31 プロセッサ、32 メモリ、33 ストレージ、34 通信インタフェース、35 処理回路、311 取得部、312 ユーザ鍵生成部、313 出力部、331 鍵記憶部、40 暗号化タグ生成装置、41 プロセッサ、42 メモリ、43 ストレージ、44 通信インタフェース、45 処理回路、411 取得部、412 コアタグ生成部、413 暗号化タグ生成部、414 出力部、431 鍵記憶部、50 検索クエリ生成装置、51 プロセッサ、52 メモリ、53 ストレージ、54 通信インタフェース、55 処理回路、511 取得部、512 クエリ生成部、513 出力部、531 鍵記憶部、60 検索装置、61 プロセッサ、62 メモリ、63 ストレージ、64 通信インタフェース、65 処理回路、611 取得部、612 照合部、613 出力部、631 暗号化タグ記憶部、70 ネットワーク。

Claims (9)

  1.  検索を許可する範囲を示す範囲条件を暗号化してコアタグを生成するコアタグ生成部と、
     前記コアタグ生成部によって生成された前記コアタグを、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された暗号化タグを生成する暗号化タグ生成部と
    を備える暗号化タグ生成装置。
  2.  前記コアタグは、基底Bにおけるベクトルであり、
     前記暗号化タグ生成部は、前記エンコード情報を用いて前記コアタグの前記基底Bを変換することにより、前記暗号化タグを生成する
    請求項1に記載の暗号化タグ生成装置。
  3.  前記暗号化タグ生成部は、前記エンコード情報である行列を生成し、前記コアタグと前記行列との積を計算して、前記基底Bを変換する
    請求項2に記載の暗号化タグ生成装置。
  4.  前記暗号化タグ生成部は、前記エンコード情報である正方行列を生成する
    請求項3に記載の暗号化タグ生成装置。
  5.  ユーザの属性が設定されたユーザ鍵を、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された検索クエリを生成するクエリ生成部
    を備える検索クエリ生成装置。
  6.  前記ユーザ鍵は、基底Bにおけるベクトルであり、
     前記クエリ生成部は、前記エンコード情報を用いて前記ユーザ鍵の前記基底Bを変換することにより、前記検索クエリを生成する
    請求項5に記載の検索クエリ生成装置。
  7.  前記クエリ生成部は、前記エンコード情報である行列を生成し、前記ユーザ鍵と前記行列を転置した行列の逆行列との積を計算して、前記基底Bを変換する
    請求項6に記載の検索クエリ生成装置。
  8.  前記クエリ生成部は、前記エンコード情報である正方行列を生成する
    請求項7に記載の検索クエリ生成装置。
  9.  暗号化タグ生成装置と検索クエリ生成装置とを備える秘匿検索システムであり、
     前記暗号化タグ生成装置は、
     検索を許可する範囲を示す範囲条件を暗号化してコアタグを生成するコアタグ生成部と、
     前記コアタグ生成部によって生成された前記コアタグを、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された暗号化タグを生成する暗号化タグ生成部と
    を備え、
     前記検索クエリ生成装置は、
     ユーザの属性が設定されたユーザ鍵を、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された検索クエリを生成するクエリ生成部
    を備える秘匿検索システム。
PCT/JP2017/000886 2017-01-12 2017-01-12 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム WO2018131129A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018561166A JP6494893B2 (ja) 2017-01-12 2017-01-12 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
PCT/JP2017/000886 WO2018131129A1 (ja) 2017-01-12 2017-01-12 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
CN201780082449.9A CN110140161B (zh) 2017-01-12 2017-01-12 加密标签生成装置、检索查询生成装置和隐匿检索系统
US16/346,336 US20210173957A1 (en) 2017-01-12 2017-01-12 Encrypted tag generation device, search query generation device, and searchable encryption system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/000886 WO2018131129A1 (ja) 2017-01-12 2017-01-12 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム

Publications (1)

Publication Number Publication Date
WO2018131129A1 true WO2018131129A1 (ja) 2018-07-19

Family

ID=62839481

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/000886 WO2018131129A1 (ja) 2017-01-12 2017-01-12 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム

Country Status (4)

Country Link
US (1) US20210173957A1 (ja)
JP (1) JP6494893B2 (ja)
CN (1) CN110140161B (ja)
WO (1) WO2018131129A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11233629B2 (en) 2018-01-17 2022-01-25 Mitsubishi Electric Corporation Registration apparatus, search operation apparatus, data management apparatus
US11902418B2 (en) 2020-01-14 2024-02-13 Mitsubishi Electric Corporation Registration device, search operation device, and data management device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11617148B2 (en) 2019-05-03 2023-03-28 Samsung Electronics Co., Ltd. Enhancement of flexibility to change STS index/counter for IEEE 802.15.4z

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887508A (ja) * 1994-09-14 1996-04-02 Olympus Optical Co Ltd 情報検索装置
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
WO2013111284A1 (ja) * 2012-01-25 2013-08-01 三菱電機株式会社 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
WO2014184894A1 (ja) * 2013-05-15 2014-11-20 三菱電機株式会社 暗号システム、暗号方法及び暗号プログラム
WO2015072203A1 (ja) * 2013-11-18 2015-05-21 三菱電機株式会社 情報配信システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724423A (en) * 1995-09-18 1998-03-03 Telefonaktiebolaget Lm Ericsson Method and apparatus for user authentication
JP5606351B2 (ja) * 2011-02-09 2014-10-15 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム
JP6054790B2 (ja) * 2013-03-28 2016-12-27 三菱スペース・ソフトウエア株式会社 遺伝子情報記憶装置、遺伝子情報検索装置、遺伝子情報記憶プログラム、遺伝子情報検索プログラム、遺伝子情報記憶方法、遺伝子情報検索方法及び遺伝子情報検索システム
KR20150108516A (ko) * 2014-03-18 2015-09-30 한국전자통신연구원 범위 검색을 위한 복호화가능 인덱스 생성 방법, 검색 방법, 및 복호화 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887508A (ja) * 1994-09-14 1996-04-02 Olympus Optical Co Ltd 情報検索装置
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
WO2013111284A1 (ja) * 2012-01-25 2013-08-01 三菱電機株式会社 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
WO2014184894A1 (ja) * 2013-05-15 2014-11-20 三菱電機株式会社 暗号システム、暗号方法及び暗号プログラム
WO2015072203A1 (ja) * 2013-11-18 2015-05-21 三菱電機株式会社 情報配信システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11233629B2 (en) 2018-01-17 2022-01-25 Mitsubishi Electric Corporation Registration apparatus, search operation apparatus, data management apparatus
US11902418B2 (en) 2020-01-14 2024-02-13 Mitsubishi Electric Corporation Registration device, search operation device, and data management device

Also Published As

Publication number Publication date
CN110140161A (zh) 2019-08-16
JPWO2018131129A1 (ja) 2019-06-27
JP6494893B2 (ja) 2019-04-03
US20210173957A1 (en) 2021-06-10
CN110140161B (zh) 2023-02-17

Similar Documents

Publication Publication Date Title
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
JP6732141B2 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
CN107077469B (zh) 服务器装置、检索系统、终端装置以及检索方法
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
JP6494893B2 (ja) 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
WO2018134922A1 (ja) 準同型演算装置、暗号システム及び準同型演算プログラム
JP6632780B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP2023063430A (ja) 暗号システム、鍵生成装置、暗号化装置、復号装置、方法及びプログラム
JP2010165275A (ja) データ格納システム及び情報送信装置及びサーバ装置
WO2016113878A1 (ja) 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
CN112236974A (zh) 解密装置、加密装置以及密码系统
JP7126635B2 (ja) 再暗号化装置、暗号システム、再暗号化方法及び再暗号化プログラム
JP6462968B1 (ja) データ管理装置、データ管理方法及びデータ管理プログラム
US11811741B2 (en) Information processing system and information processing method
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
JPWO2020044485A1 (ja) メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
JP6351890B1 (ja) 検索装置、秘匿検索システム及び検索プログラム
WO2023243141A1 (ja) 連合学習システム及び連合学習方法
Xu et al. End-to-end big data processing protection in cloud environment using black boxes—An FPGA approach
JP6918253B2 (ja) 秘匿検索システムおよび秘匿検索方法
Xu et al. LUT based secure cloud computing—An implementation using FPGAs

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018561166

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

Country of ref document: EP

Kind code of ref document: A1