WO2013111284A1 - データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 - Google Patents

データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 Download PDF

Info

Publication number
WO2013111284A1
WO2013111284A1 PCT/JP2012/051533 JP2012051533W WO2013111284A1 WO 2013111284 A1 WO2013111284 A1 WO 2013111284A1 JP 2012051533 W JP2012051533 W JP 2012051533W WO 2013111284 A1 WO2013111284 A1 WO 2013111284A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
search
unit
key
encryption
Prior art date
Application number
PCT/JP2012/051533
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 CN201280068055.5A priority Critical patent/CN104081390B/zh
Priority to US14/350,987 priority patent/US9391965B2/en
Priority to PCT/JP2012/051533 priority patent/WO2013111284A1/ja
Priority to EP12866425.7A priority patent/EP2808803B1/en
Priority to US15/984,468 priority patent/USRE48146E1/en
Priority to JP2013555046A priority patent/JP5606642B2/ja
Publication of WO2013111284A1 publication Critical patent/WO2013111284A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Definitions

  • the present invention relates to a data search device, a data search method, a data search program, a data registration device, a data registration method, a data registration program, and an information processing device.
  • PLC Public Key Cryptography
  • PKS searchable public key cryptography
  • This searchable public key encryption realizes the following application, for example.
  • server an external database
  • a sender sends a data file containing confidential information to a recipient via an external database (hereinafter referred to as “server”). That is, consider a situation in which a sender uploads a data file to a server and a receiver downloads a necessary data file from the server by keyword search.
  • the sender and the receiver want to share both the data file and the keyword without being known to the server.
  • Recipients use public key encryption public / private key pair (used to encrypt / decrypt data file itself) and searchable public key encryption public / private key pair (keyword encryption, creation of search query) Prepared in advance). Then, the receiver makes each public key public.
  • the sender generates a ciphertext of the data file by encrypting the data file using the public key of the receiver's public key encryption.
  • the sender encrypts the keyword using the public key of the searchable public key encryption to generate a ciphertext of the keyword.
  • the ciphertext of the keyword generated using the public key of the searchable public key encryption is referred to as “encryption tag”.
  • the sender uploads the ciphertext of the data file and the encryption tag to the server together.
  • the receiver encrypts the keyword using the secret key of the searchable public key encryption to generate a ciphertext of the keyword.
  • the keyword ciphertext generated using the searchable public key encryption private key is hereinafter referred to as “trap door”.
  • the recipient transmits this trapdoor as a search query to the server.
  • the server uses the received trapdoor to perform a secret search on the encryption tags of the ciphertexts of all data files in the database. Then, the server transmits the ciphertext of the data file hit in the confidential search to the receiver.
  • the searchable public key cryptography has a problem that the search processing time becomes proportional to the number of data files because all cases must be searched. Several methods have been proposed to solve this.
  • Patent Document 1 provides an index storage unit that stores keywords and document names in association with each other and an encrypted database that stores encrypted documents, searches for keywords in the index storage unit, and does not hit the search.
  • a method for full text retrieval of documents in an encrypted database is disclosed.
  • the index storage unit is updated according to the search result.
  • this method has a problem that the full text search is necessary until the index storage unit is appropriately updated, and therefore the search process cannot be accelerated.
  • this method has a problem that when a large number of various search requests are generated, the effect of the index storage unit is diminished and the search process cannot be accelerated.
  • this method also has a problem that it is necessary to greatly change an existing searchable public key cryptosystem.
  • An object of the present invention is to increase the speed of search processing using, for example, searchable public key cryptography.
  • the data retrieval apparatus of the present invention A data storage unit that stores a plurality of data groups including one or more data and a plurality of decryption keys for decrypting encrypted information in association with each other; A key determination information storage unit that stores key determination information for determining a decryption key; A search condition input unit for inputting a search condition for searching for data and encrypted information obtained by encrypting predetermined information; The encryption information input by the search condition input unit is decrypted using each of the plurality of decryption keys stored in the data storage unit, and the encryption information of the plurality of decryption keys is used as the key determination information.
  • a data group selection unit that selects a decryption key decrypted to the same information and selects a data group associated with the selected decryption key among the plurality of data groups stored in the data storage unit as a search destination group; , A data search unit that acquires data satisfying the search condition input by the search condition input unit as data of a search result from one or more data included in the search destination group selected by the data group selection unit; A search result output unit that outputs data of the search results acquired by the data search unit.
  • the search process using searchable public key cryptography can be speeded up.
  • FIG. 1 is a configuration diagram of a data search system 900 according to Embodiment 1.
  • FIG. 2 is a functional configuration diagram of a data search terminal 100 according to Embodiment 1.
  • FIG. 3 shows a system public key 140 and a system secret key 150 in the first embodiment. The figure which shows the public key correspondence table 160 in Embodiment 1.
  • FIG. 3 shows a search query 170 in the first embodiment.
  • FIG. 3 is a functional configuration diagram of a data registration terminal 200 in the first embodiment.
  • FIG. 3 is a diagram showing a system ciphertext 230 according to the first embodiment.
  • FIG. 3 is a functional configuration diagram of a data search server 300 in the first embodiment.
  • FIG. 6 shows a secret key correspondence table 350 according to the first embodiment.
  • 5 is a flowchart showing a setup process of the data search terminal 100 according to the first embodiment.
  • 5 is a flowchart showing a data registration process of the data registration terminal 200 in the first embodiment.
  • 5 is a flowchart showing data registration processing of the data search server 300 according to the first embodiment.
  • 5 is a flowchart showing data search request processing of the data search terminal 100 according to the first embodiment.
  • 5 is a flowchart showing data search processing of the data search server 300 according to the first embodiment.
  • 6 is a flowchart showing category registration request processing of the data search terminal 100 according to the first embodiment.
  • 5 is a flowchart showing category registration processing of the data search server 300 according to the first embodiment.
  • FIG. 3 is a diagram illustrating an example of hardware resources of the data search system 900 according to the first embodiment.
  • FIG. 9 is a flowchart showing a setup process of the data search terminal 100 according to the second embodiment.
  • 9 is a flowchart showing data registration request processing of the data registration terminal 200 in the second embodiment.
  • 9 is a flowchart showing data registration processing of the data search server 300 according to the second embodiment.
  • 9 is a flowchart showing data search request processing of the data search terminal 100 according to Embodiment 2.
  • 9 is a flowchart showing data search processing of the data search server 300 according to the second embodiment.
  • FIG. 10 is a flowchart showing category registration request processing of the data search terminal 100 according to the second embodiment.
  • 9 is a flowchart showing category registration processing of the data search server 300 according to the second embodiment.
  • FIG. 10 is a diagram showing a system public key 140 and a system secret key 150 according to the third embodiment.
  • Embodiment 1 A system for performing a high-speed search using searchable public key cryptography (PEKS) will be described.
  • Searchable public key cryptography is a technique for performing keyword search without decrypting encrypted data (see Non-Patent Document 1).
  • FIG. 1 is a configuration diagram of a data search system 900 according to the first embodiment.
  • the configuration of the data search system 900 according to Embodiment 1 will be described with reference to FIG.
  • the data search system 900 is an example of a system that performs search using searchable public key cryptography.
  • searchable public key encryption By using the searchable public key encryption, it is possible to perform keyword search while concealing search target data and search keywords.
  • the data search system 900 includes one data search terminal 100, a plurality of data registration terminals 200, and one data search server 300. However, there may be a plurality of data search terminals 100 and data search servers 300, or a single data registration terminal 200.
  • the data search terminal 100, the data registration terminal 200, and the data search server 300 are communicatively connected via a network 909 (for example, the Internet).
  • the data registration terminal 200 (an example of a data registration device) is a device (computer) for encrypting search target data and registering it in the data search server 300.
  • the data search terminal 100 (an example of an information processing terminal device) is a device for requesting a keyword search by specifying an encrypted search keyword to the data search server 300.
  • the data search server 300 (an example of a data search device) performs keyword search for searchable public key cryptography according to the encryption keyword specified by the data search terminal 100 for the encrypted data registered by the data registration terminal 200. It is a device for.
  • the data search server 300 returns the search result to the data search terminal 100.
  • e-mail is an example of search target data.
  • the data search server 300 functions as a mail server
  • the data registration terminal 200 functions as a computer used by an e-mail sender
  • the data search terminal 100 functions as a computer used by an e-mail receiver.
  • the data search system 900 is used as follows. However, the following usage method is an example of a usage method of the data search system 900.
  • Each of the email senders A, B, and C transmits the email that is encrypted using the data registration terminal 200 to the data search server 300.
  • the data search server 300 stores the encrypted emails of the senders A, B, and C, respectively.
  • the e-mail recipient When the e-mail recipient wants to view the e-mail of the sender A, the e-mail recipient designates the identifier (e.g., e-mail address) of the sender A as an e-mail search keyword to the data search terminal 100.
  • the data search terminal 100 encrypts the search keyword (identifier of the sender A) and transmits it to the data search server 300.
  • the data search server 300 performs a search for a searchable public key encryption keyword according to the encrypted search keyword, and transmits the encrypted email of the sender A to the data search terminal 100.
  • the data retrieval terminal 100 receives the encrypted email of the sender A, decrypts the received email, and displays the decrypted email.
  • the senders A, B, and C of the electronic mail and the receiver can keep the electronic mail secret. Further, the e-mail recipient can conceal the e-mail search keyword.
  • FIG. 2 is a functional configuration diagram of the data search terminal 100 according to the first embodiment. A functional configuration of data search terminal 100 in the first embodiment will be described with reference to FIG.
  • the data search terminal 100 (an example of an information processing apparatus) includes a setup processing unit 110, a search request processing unit 120, a category registration request unit 130, and a search terminal storage unit 190.
  • the setup processing unit 110 includes a system key generation unit 111, a public key correspondence table generation unit 112, and a key information disclosure unit 113.
  • the system key generation unit 111 generates a key determination value 191, a system public key 140, and a system secret key 150 described later.
  • the public key correspondence table generating unit 112 generates a public key correspondence table 160 described later.
  • the key information disclosure unit 113 publishes the system public key 140, the system secret key 150, and the public key correspondence table 160 to the data registration terminal 200 or the data search server 300. Details of the system key generation unit 111, the public key correspondence table generation unit 112, and the key information disclosure unit 113 will be described based on a flowchart of a setup process to be described later.
  • FIG. 3 is a diagram showing the system public key 140 and the system secret key 150 in the first embodiment.
  • the system public key 140 and the system secret key 150 in the first embodiment will be described with reference to FIG.
  • the system public key 140 and the system private key 150 constitute a key pair of public key encryption (or searchable public key encryption) used in the data search system 900.
  • the system public key 140 includes one data public key 141, one keyword public key 142, and a plurality of category determination public keys 143 (an example of a plurality of encryption keys).
  • the data public key 141 is key data (encryption key) for encrypting search target data.
  • the keyword public key 142 is key data (encryption key) for encrypting a keyword (data keyword) attached to data to be searched or a keyword (search keyword) specified when searching for data.
  • the category determination public key 143 is key data (encryption key) for encrypting information (key determination value 191) for determining the category (data category) to which the search target data belongs.
  • the category determination public key 143 is different for each category of data.
  • the system secret key 150 includes one data secret key 151, one keyword secret key 152, and a plurality of category determination secret keys 153 (an example of a plurality of decryption keys).
  • the data secret key 151 is key data (decryption key) for decrypting encrypted data to be searched.
  • the keyword secret key 152 is key data (master secret key) for generating a secret key (search trap door 171 to be described later) corresponding to the search keyword.
  • the category determination secret key 153 is key data (decryption key) for decrypting an encrypted key determination value 191 (an index tag 172 or an index tag 233 described later).
  • the category determination secret key 153 is different for each category of data.
  • the data public key 141 and the data private key 151 constitute a data key pair (public key encryption key pair).
  • the keyword public key 142 and the keyword private key 152 constitute a key pair for data keywords (a key pair for searchable public key encryption).
  • the keyword public key 142 and the keyword private key 152 may be used as a data key pair. In this case, the data public key 141 and the data private key 151 are not necessary.
  • the category determination public key 143 and the category determination secret key 153 constitute a plurality of key pairs for data category determination (key pairs for public key encryption).
  • FIG. 4 is a diagram showing the public key correspondence table 160 in the first embodiment.
  • the public key correspondence table 160 in the first embodiment will be described with reference to FIG.
  • the public key correspondence table 160 is data that associates the category determination public key 143 with the data category.
  • the public key correspondence table 160 shown in FIG. 4 associates the category determination public key 143 identified by “PK 1 ” with the “patent” category, and the category determination public key 143 identified by “PK 2 ”.
  • the “design” category is associated.
  • the search request processing unit 120 includes a search keyword input unit 121, a search query generation unit 122, a search request unit 123, and a search result output unit 124.
  • the search keyword input unit 121 (an example of a search condition input unit) inputs a search keyword (an example of a search condition) designated by a user (data searcher) and a search target category from an input device or a storage device.
  • the search query generation unit 122 (an example of an encryption tag generation unit) generates a search query 170 based on the search keyword and the search target category.
  • the search query 170 is data for specifying a search keyword.
  • the search request unit 123 (an example of a data search request unit) transmits a search query 170 to the data search server 300 and receives a search result 199 including encrypted data corresponding to the search keyword from the data search server 300.
  • the search result output unit 124 decrypts the encrypted data included in the search result 199 using the data secret key 151, and outputs the data obtained by the decryption. Details of the search keyword input unit 121, the search query generation unit 122, the search request unit 123, and the search result output unit 124 will be described based on a flowchart of data search request processing described later.
  • FIG. 5 is a diagram showing the search query 170 in the first embodiment.
  • the search query 170 in the first embodiment will be described with reference to FIG.
  • the search query 170 is data including a search trap door 171 (an example of search condition information) and an index tag 172 (an example of an encryption tag).
  • the search trap door 171 is a secret key corresponding to the search keyword.
  • the search trap door 171 is generated using the keyword secret key 152.
  • the index tag 172 is a key determination value 191 encrypted using the category determination public key 143 for the category to be searched.
  • the category registration request unit 130 requests the data search server 300 to generate a database for data belonging to a specific category. Details of the category registration request unit 130 will be described based on a flowchart of a category registration request process described later.
  • the search terminal storage unit 190 (an example of an encryption key storage unit) stores data used in the data search terminal 100.
  • the search terminal storage unit 190 stores a key determination value 191, a system public key 140, a system secret key 150, a public key correspondence table 160, a search query 170, and a search result 199.
  • FIG. 6 is a functional configuration diagram of the data registration terminal 200 in the first embodiment.
  • the functional configuration of the data registration terminal 200 according to Embodiment 1 will be described with reference to FIG.
  • the data registration terminal 200 (an example of a data registration device) includes a public information acquisition unit 210, a data registration request processing unit 220, and a registration terminal storage unit 290.
  • the public information acquisition unit 210 acquires the key determination value 191, the system public key 140, and the public key correspondence table 160 disclosed by the data search terminal 100. Details of the public information acquisition unit 210 will be described based on a flowchart of a setup process to be described later.
  • the data registration request processing unit 220 includes a registration information input unit 221, a data ciphertext generation unit 222, a keyword ciphertext generation unit 223, an index tag generation unit 224, and a data registration request unit 225.
  • the registration information input unit 221 (an example of a classification information input unit) inputs data designated by a user (data registrant), a data keyword, and a data category from an input device or a storage device.
  • the data ciphertext generation unit 222 (an example of a data generation unit) encrypts data using the data public key 141.
  • the keyword ciphertext generation unit 223 encrypts the data keyword using the keyword public key 142.
  • the index tag generation unit 224 (an example of an encryption tag generation unit) encrypts the key determination value 191 using the category determination public key 143 for the data category.
  • the data registration request unit 225 (an example of a data registration request unit) requests the data search server 300 to register the system ciphertext 230 including the encrypted data, the keyword, and the key determination value 191. Details of the registration information input unit 221, the data ciphertext generation unit 222, the keyword ciphertext generation unit 223, the index tag generation unit 224, and the data registration request unit 225 will be described based on a flowchart of data registration request processing described later. .
  • FIG. 7 is a diagram showing the system ciphertext 230 in the first embodiment.
  • System ciphertext 230 according to the first embodiment will be described with reference to FIG.
  • the system ciphertext 230 is data including a data ciphertext 231, a keyword ciphertext 232, and an index tag 233.
  • the data ciphertext 231 (an example of data) is obtained by encrypting data using the data public key 141.
  • the keyword ciphertext 232 is obtained by encrypting a data keyword using the keyword public key 142.
  • the index tag 233 (an example of an encryption tag) is obtained by encrypting the key determination value 191 using the category determination public key 143 of the category to which the data belongs.
  • the registration terminal storage unit 290 stores data used by the data registration terminal 200.
  • the registered terminal storage unit 290 stores a key determination value 191, a system public key 140, a public key correspondence table 160, and a system ciphertext 230.
  • FIG. 8 is a functional configuration diagram of the data search server 300 according to the first embodiment. A functional configuration of the data search server 300 according to the first embodiment will be described with reference to FIG.
  • the data search server 300 (an example of a data search device) includes a category secret key management unit 310, a data registration processing unit 320, a data search processing unit 330, a category determination unit 340, and a search server storage unit 390. . Furthermore, the data search server 300 includes a database for each category of data (hereinafter, referred to as “category DB unit 391”). In addition, the data search server 300 includes a database for data that is not classified into any category (hereinafter referred to as “unclassified DB unit 392”).
  • the category secret key management unit 310 (an example of an additional decryption key input unit and a data group registration unit) manages the key determination value 191 and the category determination secret key 153 generated by the data search terminal 100. Also, the category secret key management unit 310 generates a category-specific DB unit 391 that is associated with the category determination secret key 153. Furthermore, the category secret key management unit 310 generates a secret key correspondence table 350 that associates the category determination secret key 153 with the category-specific DB unit 391. Details of the category private key management unit 310 will be described based on a flowchart of a setup process and a flowchart of a category registration process described later.
  • the data registration processing unit 320 includes a registration request receiving unit 321 and a data registration unit 322.
  • the registration request receiving unit 321 (an example of a new data input unit) receives a registration request for data (system ciphertext 230 shown in FIG. 7) transmitted from the data registration terminal 200.
  • the data registration unit 322 (an example of a new data registration unit) stores data in the category-specific DB unit 391 for the category to which the data belongs in accordance with the data registration request. Details of the registration request receiving unit 321 and the data registration unit 322 will be described based on a flowchart of data registration processing to be described later.
  • the data search processing unit 330 includes a search request receiving unit 331, a data search unit 332, and a search result transmission unit 333.
  • the search request receiving unit 331 receives a data search request (search query shown in FIG. 5) transmitted from the data search terminal 100.
  • the data search unit 332 (an example of a data search unit) searches the category-specific DB unit 391 for the search target category according to the data search request.
  • the search result transmission unit 333 (an example of a search result output unit) transmits a search result including data satisfying the search condition (system ciphertext 230 shown in FIG. 7) to the data search terminal 100. Details of the search request reception unit 331, the data search unit 332, and the search result transmission unit 333 will be described based on a flowchart of data search processing described later.
  • the category determination unit 340 determines the category-specific DB unit 391 to which the data belongs based on the data registration request, and determines the category for the category to be searched based on the data search request. Another DB unit 391 is determined. Details of the category determination unit 340 will be described based on a flowchart of data registration processing and a flowchart of data search processing described later.
  • the search server storage unit 390 stores data used by the data search server 300.
  • the search server storage unit 390 stores a key determination value 191, a category determination secret key 153, and a secret key correspondence table 350.
  • FIG. 9 is a diagram showing the private key correspondence table 350 in the first embodiment.
  • the secret key correspondence table 350 in the first embodiment will be described with reference to FIG.
  • the secret key correspondence table 350 is data that associates the category determination secret key 153 with the category-specific DB unit 391.
  • the secret key correspondence table 350 shown in FIG. 9 associates the category determination secret key 153 identified by “SK 1 ” with the category-specific DB unit 391 identified by “DB 1 ”, and “SK 2 ”.
  • the category determination secret key 153 identified is associated with the category-specific DB unit 391 identified by “DB 2 ”.
  • the category-specific DB unit 391 (an example of a data storage unit) stores one or more system ciphertexts 230 (an example of a data group) classified into the same category.
  • the unclassified DB unit 392 (an example of a data storage unit) stores one or more system ciphertexts 230 (an example of an unclassified group) that are not classified into any category.
  • FIG. 10 is a flowchart showing the setup process of data search terminal 100 in the first embodiment. The setup process of the data search terminal 100 in Embodiment 1 will be described based on FIG.
  • searcher A user who wants to perform data search (hereinafter referred to as “searcher”) activates the setup processing unit 110 of the data search terminal 100, and the setup processing unit 110 of the data search terminal 100 performs the following setup processing (S110 to S131). Execute.
  • the system key generation unit 111 generates a system public key 140 and a system secret key 150 (see FIG. 3). See Non-Patent Document 3 for the key generation method. At this time, the system key generation unit 111 generates a key pair of the data public key 141 and the data private key 151 using a key generation algorithm of a public key cryptosystem. RSA cryptography (RSA is a registered trademark) is an example of a public key cryptosystem. Further, the system key generation unit 111 generates a key pair of the keyword public key 142 and the keyword private key 152 by a searchable public key cryptosystem key generation algorithm.
  • the system key generation unit 111 generates a plurality of key pairs of the category determination public key 143 and the category determination secret key 153 using a key generation algorithm of a public key cryptosystem.
  • the system key generation unit 111 uses a public key encryption method having key anonymity (key-privacy) such as ElGamal encryption or Cramer-Shoop encryption.
  • key anonymity is a property that it is not known which public key is used even if the ciphertext is viewed.
  • the number of key pairs of the category determination public key 143 and the category determination secret key 153 is the number of categories for classifying data, and the searcher designates (inputs) to the system key generation unit 111 of the data search terminal 100. To do. It progresses to S120 after S110.
  • the searcher In S120, the searcher generates category information indicating the category of data associated with the category determination public key 143 generated in S110 using the input device (for example, a keyboard or a mouse) and generates the public key correspondence table of the data search terminal 100. Input to the unit 112. That is, the public key correspondence table generating unit 112 inputs the category information designated by the searcher from the input device. The public key correspondence table generating unit 112 generates a public key correspondence table 160 as shown in FIG. 4 according to the input category information.
  • the public key correspondence table 160 is data that associates the category determination public key 143 with the data category.
  • the public key correspondence table generation unit 112 associates “PK 1 ” with “patent”. This is set in the public key correspondence table 160. It progresses to S130 after S120.
  • the key information disclosure unit 113 discloses the predetermined key determination value 191, the system public key 140 generated in S ⁇ b> 110 and the public key correspondence table 160 generated in S ⁇ b> 120 as public information to the data registration terminal 200.
  • the key determination value 191 is a predetermined value (for example, “1”).
  • the key information disclosure unit 113 of the data search terminal 100 registers the public information in a predetermined server (for example, the data search server 300), and the public information acquisition unit 210 of the data registration terminal 200 acquires the public information from the predetermined server. To do.
  • the public information acquisition unit 210 stores the acquired public information in the registered terminal storage unit 290.
  • the public information acquisition unit 210 of the data registration terminal 200 transmits a public request for requesting public information to the data search terminal 100, and the key information public unit 113 of the data search terminal 100 receives the public request. Then, the key information disclosure unit 113 of the data search terminal 100 transmits the public information to the data registration terminal 200, and the public information acquisition unit 210 of the data registration terminal 200 receives the public information.
  • the public information acquisition unit 210 stores the received public information in the registered terminal storage unit 290. It progresses to S131 after S130.
  • the key information disclosure unit 113 transmits the predetermined key determination value 191 and the plurality of category determination secret keys 153 generated in S110 to the data search server 300.
  • the key determination value 191 is the same as the value disclosed to the data registration terminal 200.
  • the key information disclosure unit 113 may transmit only at least one of the category determination secret keys 153 among the plurality of category determination secret keys 153 to the data search server 300. That is, there may be a category determination secret key 153 that is not transmitted to the data search server 300.
  • the searcher specifies the category determination secret key 153. Then, the key information disclosure unit 113 transmits the category determination secret key 153 designated by the searcher among the plurality of category determination secret keys 153 to the data search server 300.
  • the category secret key management unit 310 of the data search server 300 receives the key determination value 191 and the category determination secret key 153 transmitted by the key information disclosure unit 113 of the data search terminal 100.
  • the category secret key management unit 310 stores the received key determination value 191 and the category determination secret key 153 in the search server storage unit 390.
  • the category secret key management unit 310 generates a category-specific DB unit 391 for each received category determination secret key 153.
  • the category-specific DB unit 391 stores the system ciphertext 230 (see FIG. 7) including the index tag 233 generated using the category determination public key 143 and the category determination secret key 153. It is a database for.
  • the category secret key management unit 310 generates a secret key correspondence table 350 as shown in FIG. For example, a case of generating a category DB unit 391 identified by "DB 1" for the category determination private key 153 identified by "SK 1", category secret key management unit 310 is "SK 1" “DB 1 ” is associated and set in the secret key correspondence table 350. By S131, the setup process ends.
  • FIG. 11 is a flowchart showing a data registration process of data registration terminal 200 in the first embodiment. Data registration processing of the data registration terminal 200 in Embodiment 1 will be described based on FIG.
  • a user who wants to register data to be searched (hereinafter referred to as “registrant”) activates the data registration request processing unit 220 of the data registration terminal 200, and the data registration request processing unit 220 of the data registration terminal 200 performs the following data registration. Processing (S210 to S251) is executed.
  • the registrant uses the input device to register the data to be registered as a search target, keywords related to the data, and category information indicating the category to which the data belongs to the registration information input unit 221 of the data registration terminal 200. input. That is, the registration information input unit 221 inputs data, keywords, and category information designated by the registrant from the input device. It progresses to S220 after S210.
  • the data ciphertext generation unit 222 acquires the data public key 141 from the registered terminal storage unit 290, and encrypts the data input in S210 using the acquired data public key 141.
  • the encrypted data is referred to as “data ciphertext 231”. It progresses to S230 after S220.
  • the keyword ciphertext generation unit 223 acquires the keyword public key 142 from the registered terminal storage unit 290, and encrypts the keyword input in S210 using the acquired keyword public key 142.
  • the encrypted keyword is referred to as “keyword ciphertext 232”. It progresses to S240 after S230.
  • the index tag generation unit 224 refers to the public key correspondence table 160 stored in the registered terminal storage unit 290. Then, the index tag generating unit 224 makes the category determination disclosure associated with the category indicated by the category information input in S210 out of the plurality of category determination public keys 143 shown in the public key correspondence table 160. The key 143 is selected, and the selected category determination public key 143 is acquired from the registered terminal storage unit 290. It progresses to S241 after S240.
  • the index tag generation unit 224 acquires the key determination value 191 from the registered terminal storage unit 290, and encrypts the key determination value 191 using the category determination public key 143 acquired in S240.
  • the encrypted key determination value 191 is referred to as “index tag 233”. It progresses to S250 after S241.
  • the data registration request unit 225 receives the system ciphertext 230 (see FIG. 7) including the data ciphertext 231 generated in S220, the keyword ciphertext 232 generated in S230, and the index tag 233 generated in S241. Generate. After S250, the process proceeds to S251.
  • the data registration request unit 225 transmits a registration request for requesting registration of the system ciphertext 230 generated in S250 to the data search server 300.
  • the registration request is data including the system ciphertext 230.
  • the data registration request process ends.
  • FIG. 12 is a flowchart showing data registration processing of the data search server 300 according to the first embodiment. Data registration processing of the data search server 300 in the first embodiment will be described with reference to FIG.
  • the registration request receiving unit 321 receives a registration request for the system ciphertext 230 transmitted from the data registration terminal 200. It progresses to S320 after S310.
  • the category determination unit 340 determines whether or not the search server storage unit 390 has an unselected category determination secret key 153 that has not been selected in S330 described later. If there is an unselected category determination secret key 153 (YES), the process proceeds to S330. If there is no unselected category determination private key 153 (NO), the process proceeds to S321.
  • the category determination unit 340 selects one unselected category determination secret key 153 from the search server storage unit 390, and acquires the selected category determination secret key 153 from the search server storage unit 390. It progresses to S331 after S330.
  • the category determination unit 340 acquires the index tag 233 from the system ciphertext 230 received in S310, and decrypts the acquired index tag 233 using the category determination secret key 153 acquired in S330.
  • a value obtained by decoding the index tag 233 is referred to as a decoded value of the index tag 233. It progresses to S332 after S331.
  • the category determination unit 340 compares the decrypted value of the index tag 233 obtained in S ⁇ b> 331 with the key determination value 191 stored in the search server storage unit 390. When the decrypted value of the index tag 233 and the key determination value 191 are the same value (YES), the process proceeds to S340. When the decrypted value of the index tag 233 and the key determination value 191 are different values (NO), the process returns to S320.
  • the data registration unit 322 refers to the private key correspondence table 350 (see FIG. 9) stored in the search server storage unit 390, and a plurality of category-specific DB units 391 shown in the private key correspondence table 350. Of these, the category-specific DB unit 391 associated with the category determination secret key 153 selected in S330 is selected. Then, the data registration unit 322 stores the system ciphertext 230 received in S310 in the selected category-specific DB unit 391. By S340, the data registration process ends.
  • the data registration unit 322 stores the system ciphertext 230 received in S310 in the unclassified DB unit 392. That is, when the data ciphertext 231 of the system ciphertext 230 is not classified into any category of the category-specific DB unit 391, the data registration unit 322 stores the system ciphertext 230 in the unclassified DB unit 392.
  • the uncategorized DB unit 392 is generated in the data search server 300 in advance.
  • the system ciphertext 230 is stored in any category DB unit 391 or unclassified DB unit 392 of the data search server 300 by the data registration request process shown in FIG. 11 and the data registration process shown in FIG.
  • FIG. 13 is a flowchart showing data search request processing of the data search terminal 100 according to the first embodiment.
  • the data search request process of the data search terminal 100 in the first embodiment will be described based on FIG.
  • the searcher activates the search request processing unit 120 of the data search terminal 100, and the search request processing unit 120 of the data search terminal 100 executes the following data search request processing (S410 to S441).
  • the searcher inputs the search keyword and category information indicating the search target category to the search keyword input unit 121 of the data search terminal 100 using the input device. That is, the search keyword input unit 121 inputs the search keyword designated by the searcher and the category information from the input device. It progresses to S420 after S410.
  • the search query generation unit 122 acquires the keyword secret key 152 from the search terminal storage unit 190, and encrypts the search keyword input in S410 using the acquired keyword secret key 152.
  • the encrypted search keyword is referred to as “search trap door 171”. It progresses to S421 after S420.
  • the search query generation unit 122 refers to the public key correspondence table 160 stored in the search terminal storage unit 190, and among the plurality of category determination public keys 143 shown in the public key correspondence table 160, S410 The category determination public key 143 associated with the category indicated by the category information input in is selected. It progresses to S422 after S421.
  • the search query generation unit 122 acquires the key determination value 191 from the search terminal storage unit 190, and encrypts the acquired key determination value 191 using the category determination public key 143 selected in S421.
  • the encrypted key determination value 191 is referred to as “index tag 172”.
  • the search query generation unit 122 generates a search query 170 (see FIG. 5) including the search trap door 171 generated in S420 and the index tag 172 generated in S422. It progresses to S430 after S423.
  • the search request unit 123 transmits the search query 170 generated in S423 to the data search server 300. It progresses to S431 after S430.
  • the search request unit 123 receives the search result transmitted from the data search server 300.
  • the search result is data including the data ciphertext 231 corresponding to the search query 170 (in other words, “data ciphertext 231 satisfying the search condition” or “data ciphertext 231 hit by the search process”). It progresses to S440 after S431.
  • the search result output unit 124 acquires the data secret key 151 from the search terminal storage unit 190, and uses the acquired data secret key 151 to store the data ciphertext 231 included in the search result received in S431. Decrypt. By decrypting the data ciphertext 231, data before encryption is obtained. It progresses to S441 after S440.
  • the search result output unit 124 outputs a search result including the data obtained in S440.
  • the search result output unit 124 displays the search result on the display.
  • FIG. 14 is a flowchart showing data search processing of the data search server 300 according to the first embodiment. Data search processing of the data search server 300 in the first embodiment will be described with reference to FIG.
  • the search request receiving unit 331 receives the search query 170 transmitted from the data search terminal 100.
  • the search query 170 is data including a search trap door 171 and an index tag 172 (see FIG. 5). It progresses to S520 after S510.
  • the category determination unit 340 determines whether or not the search server storage unit 390 has an unselected category determination secret key 153 that has not been selected in S530, which will be described later. If there is an unselected category determination secret key 153 (YES), the process proceeds to S530. If there is no unselected category determination private key 153 (NO), the process proceeds to S521.
  • the category determination unit 340 selects one unselected category determination secret key 153 from the search server storage unit 390, and acquires the selected category determination secret key 153 from the search server storage unit 390. It progresses to S531 after S530.
  • the category determination unit 340 acquires the index tag 172 from the search query 170 received in S510, and decrypts the acquired index tag 172 using the category determination secret key 153 acquired in S530.
  • a value obtained by decoding the index tag 172 is referred to as a decoded value of the index tag 172.
  • the category determination unit 340 compares the decrypted value of the index tag 172 obtained in S531 with the key determination value 191 stored in the search server storage unit 390. When the decrypted value of the index tag 172 and the key determination value 191 are the same value (YES), the process proceeds to S540. When the decrypted value of the index tag 172 and the key determination value 191 are different values (NO), the process returns to S520.
  • the data search unit 332 refers to the secret key correspondence table 350 (see FIG. 9) stored in the search server storage unit 390, and a plurality of category-specific DB units 391 shown in the secret key correspondence table 350. Of these, the category-specific DB unit 391 associated with the category determination secret key 153 selected in S530 is selected as a search target. Then, the data search unit 332 acquires the search trap door 171 from the search query 170 received in S510, and uses the acquired search trap door 171 to search the category to be searched by the search algorithm of the searchable public key cryptosystem. The other DB unit 391 is searched.
  • the data search unit 332 searches as follows.
  • the data search unit 332 selects the system ciphertext 230 one by one from the category-specific DB unit 391 to be searched, and acquires the keyword ciphertext 232 from the selected system ciphertext 230.
  • the data search unit 332 executes a search algorithm (search program) of a searchable public key cryptosystem using the keyword ciphertext 232 and the search trap door 171 as input data.
  • the data search unit 332 determines whether the data keyword before encryption into the keyword ciphertext 232 matches the search keyword before encryption into the search trap door 171 based on the execution result of the search algorithm. To do.
  • the data search unit 332 acquires the search trap door 171 from the search query 170 received in S510, and uses the acquired search trap door 171 to search the unclassified DB by the search algorithm of the searchable public key cryptosystem.
  • the part 392 is searched. That is, the data search unit 332 performs a search process using the unclassified DB unit 392 as a search target instead of the category-specific DB unit 391.
  • the search method is the same as S540. It progresses to S550 after S521.
  • the search result transmission unit 333 transmits the search result including the data ciphertext 231 hit in the search process of S540 or S521 to the data search terminal 100.
  • the data search process ends.
  • the data search server 300 searches for the category-specific DB unit 391 (or unclassified DB unit 392) for the category designated by the searcher using the searchable public key cryptosystem. It can be performed. That is, the data search server 300 can perform a keyword search while keeping the data, the search keyword, and the search target category secret. Further, the data search server 300 searches for all the data ciphertexts 231 by performing a search using the category-specific DB unit 391 (or the unclassified DB unit 392) specified by the searcher as a search target. The search time can be shortened compared to.
  • FIG. 15 is a flowchart showing category registration request processing of the data search terminal 100 according to the first embodiment.
  • the category registration request process of the data search terminal 100 in the first embodiment will be described with reference to FIG.
  • the searcher inputs category information indicating a category in which the unclassified system ciphertext 230 is desired to be classified to the category registration request unit 130 of the data search terminal 100 using the input device. That is, the category registration request unit 130 inputs the category information designated by the searcher from the input device. It progresses to S602 after S601.
  • the category registration request unit 130 refers to the public key correspondence table 160 (see FIG. 4) stored in the search terminal storage unit 190, and a plurality of category determination secrets shown in the public key correspondence table 160.
  • the category determination secret key 153 associated with the category indicated by the category information input in S601 is selected. After S602, the process proceeds to S603.
  • the category registration request unit 130 acquires the category determination secret key 153 selected in S ⁇ b> 602 from the search terminal storage unit 190, and sends the category registration request including the acquired category determination secret key 153 to the data search server 300. Send.
  • the category registration request process ends.
  • FIG. 16 is a flowchart showing category registration processing of the data search server 300 according to the first embodiment.
  • the category registration process of the data search server 300 in the first embodiment will be described with reference to FIG.
  • step S ⁇ b> 610 the category secret key management unit 310 receives the category registration request transmitted from the data search terminal 100.
  • the category registration request is data including a category determination secret key 153.
  • the category secret key management unit 310 acquires the category determination secret key 153 from the received category registration request, and stores the acquired category determination secret key 153 in the search server storage unit 390. It progresses to S620 after S610.
  • the category secret key management unit 310 newly generates a category-specific DB unit 391. It progresses to S630 after S620.
  • the category secret key management unit 310 associates the category determination secret key 153 acquired in S610 with the category-specific DB unit 391 generated in S620 and sets them in the secret key correspondence table 350 (see FIG. 9). . It progresses to S640 after S630.
  • the category private key management unit 310 determines whether or not the unselected system ciphertext 230 that has not been selected in S641 described later exists in the unclassified DB unit 392. When the unselected system ciphertext 230 exists in the unclassified DB unit 392 (YES), the process proceeds to S641. If there is no unselected system ciphertext 230 in the unclassified DB unit 392 (NO), the category registration process ends.
  • the category secret key management unit 310 selects one unselected system ciphertext 230 from the unclassified DB unit 392, and acquires the selected system ciphertext 230 from the unclassified DB unit 392. After S641, the process proceeds to S642.
  • the category secret key management unit 310 acquires the index tag 233 from the system ciphertext 230 selected in S641, and decrypts the acquired index tag 233 using the category determination secret key 153 acquired in S610. To do.
  • a value obtained by decoding the index tag 233 is referred to as a decoded value of the index tag 233.
  • the category secret key management unit 310 compares the decrypted value of the index tag 233 obtained in S642 with the key determination value 191 stored in the search server storage unit 390. When the decrypted value of the index tag 233 and the key determination value 191 are the same (YES), the process proceeds to S644. If the decrypted value of the index tag 233 is different from the key determination value 191 (NO), the process returns to S640.
  • the category private key management unit 310 moves the system ciphertext 230 selected in S641 from the unclassified DB unit 392 to the new category-specific DB unit 391 generated in S620. After S644, the process returns to S640.
  • the category registration request process shown in FIG. 15 and the category registration process shown in FIG. 16 generate a category-specific DB unit 391 for a new category, and the generated category-specific DB unit 391 classifies it into a new category.
  • System ciphertext 230 to be stored is stored.
  • FIG. 17 is a diagram illustrating an example of hardware resources of the data search system 900 according to the first embodiment.
  • a data search terminal 100, a data registration terminal 200, and a data search server 300 include a CPU 901 (Central Processing Unit).
  • the CPU 901 is connected to hardware devices such as a ROM 903, a RAM 904, a communication board 905, a display 911 (display device), a keyboard 912, a mouse 913, a drive 914, and a magnetic disk device 920 via a bus 902, and these hardware devices.
  • a bus 902 a bus 901
  • the drive 914 is a device that reads and writes a storage medium such as an FD (Flexible Disk Drive), a CD (Compact Disc), and a DVD (Digital Versatile Disc).
  • the ROM 903, the RAM 904, the magnetic disk device 920, and the drive 914 are examples of storage devices.
  • a keyboard 912, a mouse 913, and a communication board 905 are examples of input devices.
  • the display 911 and the communication board 905 are examples of output devices.
  • the communication board 905 is wired or wirelessly connected to a communication network such as a LAN (Local Area Network), the Internet, or a telephone line.
  • a communication network such as a LAN (Local Area Network), the Internet, or a telephone line.
  • the magnetic disk device 920 stores an OS 921 (operating system), a program group 922, and a file group 923.
  • OS 921 operating system
  • program group 922 program group 922
  • file group 923 file group 923
  • the program group 922 includes a program for executing a function described as “unit” in the embodiment.
  • Programs for example, a data search program, a data registration program, and an information processing program
  • the program causes the computer to function as “to part” and causes the computer to execute the procedures and methods of “to part”.
  • the file group 923 includes various data (input, output, determination result, calculation result, processing result, etc.) used in “ ⁇ part” described in the embodiment.
  • arrows included in the configuration diagrams and flowcharts mainly indicate input and output of data and signals.
  • the processing of the embodiment described based on the flowchart and the like is executed using hardware such as the CPU 901, a storage device, an input device, and an output device.
  • what is described as “to part” may be “to circuit”, “to apparatus”, and “to device”, and “to step”, “to procedure”, and “to processing”. May be. That is, what is described as “ ⁇ unit” may be implemented by any of firmware, software, hardware, or a combination thereof.
  • the data search system 900 has the following features, for example.
  • An index tag is added to both the ciphertext (system ciphertext 230) and the search query (see FIGS. 5 and 7).
  • the secret key category determination secret key 153
  • the index tag in the search query is decrypted with the secret key, and the search target is limited by referring to the result (see FIG. 14).
  • the data search system 900 according to Embodiment 1 can provide the following effects, for example. (1) There is an effect that the search speed can be increased in the searchable public key encryption. (2) There is an effect that the search can be speeded up by targeting specific data (for example, data corresponding to a certain category). (3) There is an effect that the searcher can adaptively increase the category for speeding up the search (see FIGS. 15 and 16). (4) By using a public key cryptosystem having key anonymity such as ElGamal cipher or Cramer-Shoup cipher as public key cipher used for creating the index tag, the ciphertext category information is sent to the data search server 300. This has the effect of speeding up the search while keeping it secret.
  • a public key cryptosystem having key anonymity such as ElGamal cipher or Cramer-Shoup cipher as public key cipher used for creating the index tag.
  • the data search system 900 according to Embodiment 1 may be configured as follows.
  • the system ciphertext 230 may include a plurality of index tags 233.
  • the registrant designates (inputs) a plurality of category information to the data registration terminal 200.
  • the data registration terminal 200 generates an index tag 233 for each designated category, and sets the generated plurality of index tags 233 in the system ciphertext 230.
  • the data search server 300 stores the system ciphertext 230 in the plurality of category-specific DB units 391 corresponding to the plurality of index tags 233 included in the system ciphertext 230. Thereby, it is possible to deal with data extending over a plurality of categories.
  • the category classification may be detailed using a plurality of key determination values 191. By refining the category classification, a faster search can be realized.
  • the data search system 900 operates as follows.
  • the data search terminal 100 generates a key determination value correspondence table 192 as shown in FIG. 18 and provides the generated key determination value correspondence table 192 to the data registration terminal 200 and the data search server 300.
  • the data search terminal 100 and the data registration terminal 200 are designated by the user as the major category and minor category of the category, and use the key determination value 191 associated with the designated major category and minor category.
  • the data search server 300 generates a category-specific DB unit 391 for each major category category (for each category determination secret key 153), and stores the system ciphertext 230 for each minor category category in the category-specific DB unit 391. For example, the data search server 300 categorizes the system ciphertext 230 in which the decryption value of the index tag 233 is “11” and the system ciphertext 230 in which the decryption value of the index tag 233 is “12” into the category-specific DB unit 391. Manage separately within.
  • FIG. 18 is a diagram illustrating the key determination value correspondence table 192 according to the first embodiment. As shown in FIG. 18, the key determination value correspondence table 192 is data that associates the major classification category, the minor classification category, and the key determination value 191.
  • the category classification may be three or more levels (for example, major classification, middle classification, and minor classification).
  • the category may be adaptively decreased.
  • the searcher operates the data search terminal 100 to transmit a category deletion request to the data search server 300.
  • the category deletion request is data specifying the category determination secret key 153 of the category to be deleted.
  • the data search server 300 deletes the category determination secret key 153 according to the deletion request, extracts the system ciphertext 230 from the category-specific DB unit 391 associated with the category determination secret key 153, and moves to the unclassified DB unit 392. Then, the category-specific DB unit 391 is deleted.
  • a predetermined number of key pairs of the category determination public key 143 and the category determination secret key 153 are generated.
  • the category determination public key 143 and the category determination secret key 153 are generated.
  • a key pair may be added as necessary.
  • the searcher inputs additional category information to the data search terminal 100.
  • the data search terminal 100 newly generates a key pair of the category determination public key 143 and the category determination secret key 153 based on the additional category information, updates the public key correspondence table 160, and determines the category determination.
  • the public key 143, the category determination secret key 153, and the public key correspondence table 160 are provided to the data registration terminal 200 and the data search server 300 in the same manner as the setup process.
  • the system ciphertext 230 is classified according to the category (for example, “patent” and “design”) related to the contents of data (data ciphertext 231) and keywords (keyword ciphertext 232). However, the system ciphertext 230 may be classified according to other attributes of data (creation date, data size, etc.). As a result, the system ciphertext 230 can be managed according to the attribute (type) of the data, and the search can be speeded up.
  • FIG. 19 is a diagram showing another example of the public key correspondence table 160 in the first embodiment.
  • the data search terminal 100 generates a public key correspondence table 160 as shown in FIG. 19 and provides the generated public key correspondence table 160 to the data registration terminal 200.
  • the data registration terminal 200 uses the category determination public key 143 associated with the creation date of the system ciphertext 230 among the plurality of category determination public keys 143 shown in the public key correspondence table 160 to use the system ciphertext 230.
  • the index tag 233 is generated.
  • the searcher inputs the creation date of data to be acquired to the data search terminal 100.
  • the data search terminal 100 uses the category determination public key 143 associated with the creation date of the input data among the plurality of category determination public keys 143 shown in the public key correspondence table 160. 170 index tags 172 are generated.
  • public key cryptosystem or searchable public key cryptosystem
  • another cryptosystem for example, a common key cryptosystem
  • data and keywords may be registered without encryption as necessary.
  • the data search device includes a data storage unit, a key determination information storage unit, a search condition input unit, a data group selection unit, a data search unit, and a search result output unit.
  • the data storage unit includes a plurality of data groups (category DB unit 391) including one or more data (system ciphertext 230) and a plurality of decryption keys (category determination) for decrypting the encrypted information. Private key 153) for use in association with each other.
  • the key determination information storage unit (search server storage unit 390) stores key determination information (key determination value 191) for determining a decryption key.
  • the search condition input unit includes a search condition (search trap door 171) for searching for data, and encrypted information (index tag) obtained by encrypting predetermined information (key determination value 191). 172).
  • the data group selection unit decrypts the encryption information input by the search condition input unit using each of a plurality of decryption keys stored in the data storage unit.
  • the data group selection unit selects a decryption key obtained by decrypting the encrypted information into the same information as the key determination information among the plurality of decryption keys.
  • the data group selection unit selects a data group associated with the selected decryption key among the plurality of data groups stored in the data storage unit as a search destination group.
  • the data search unit acquires, as search result data, data satisfying the search condition input by the search condition input unit from one or more data included in the search destination group selected by the data group selection unit. To do.
  • the search result output unit (search result transmission unit 333) outputs search result data acquired by the data search unit.
  • the data search apparatus further includes a new data input unit and a new data registration unit.
  • the new data input unit (registration request receiving unit 321) inputs new data (data ciphertext 231) and an encryption tag (index tag 233) obtained by encrypting predetermined information (key determination value 191).
  • the new data registration unit (data registration unit 322) adds the new data input by the new data input unit to the registration destination group selected by the data group selection unit among the plurality of data groups.
  • the data group selection unit decrypts the encryption tag input by the new data input unit using each of the plurality of decryption keys.
  • the data group selection unit selects a decryption key obtained by decrypting the encryption tag into the same information as the key determination information from among a plurality of decryption keys, and registers a data group associated with the selected decryption key among the plurality of data groups. Select as destination group.
  • the data storage unit (storage device) further stores an unclassified group (unclassified DB unit 392) as a data group including a plurality of data and a plurality of encrypted tags obtained by encrypting predetermined information in association with each other.
  • the data search apparatus further includes an additional decryption key input unit and a data group registration unit.
  • the additional decryption key input unit (category secret key management unit 310) inputs a new decryption key (category determination secret key 153) as an additional decryption key.
  • the data group registration unit (category secret key management unit 310) decrypts the plurality of encryption tags included in the unclassified group using the additional decryption key input by the additional decryption key input unit.
  • the data group registration unit selects an encryption tag decrypted to the same information as the key determination information from among a plurality of encryption tags.
  • the data group registration unit extracts data associated with the selected encryption tag from the plurality of data included in the unclassified group, and includes the extracted data as a new data group to be added to the plurality of data groups. Generate additional groups.
  • the data group registration unit stores the generated additional group and the additional decryption key in association with each other in the data storage unit.
  • the data registration device includes a data generation unit, a classification information input unit, an encryption tag generation unit, and a data registration request unit.
  • the data generation unit (data ciphertext generation unit 222) generates data (data ciphertext 231).
  • the classification information input unit (registration information input unit 221) inputs classification information indicating the classification of data generated by the data generation unit.
  • the encryption tag generation unit (index tag generation unit 224) encrypts predetermined information (key determination value 191) based on the classification information input by the classification information input unit, thereby encrypting the tag (index tag 233). ) Is generated.
  • the data registration request unit (data registration request unit 225) transmits the data generated by the data generation unit and the encryption tag generated by the encryption tag generation unit to the data search device (data search server 300). Accordingly, the data registration request unit causes the data search apparatus to execute a process of adding data as search target data to the data group of the classification indicated by the classification information.
  • the data registration apparatus further includes an encryption key storage unit (registered terminal storage unit 290) that stores a plurality of encryption keys (category determination public key 143) and a plurality of classification information (category information) in association with each other. .
  • the encryption tag generation unit selects and selects an encryption key associated with the same classification information as the classification information input by the classification information input unit from among a plurality of encryption keys stored in the encryption key storage unit The encryption tag is generated by encrypting predetermined information using the encryption key.
  • the information processing apparatus includes a search condition input unit, an encryption tag generation unit, and a data search request unit.
  • the search condition input unit (search keyword input unit 121) inputs a search condition (search keyword) for searching for data (data ciphertext 231) and classification information (category information) indicating the classification of data.
  • the encryption tag generation unit (search query generation unit 122) encrypts predetermined information (key determination value 191) based on the classification information input by the search condition input unit, thereby encrypting the tag (index tag 172). Is generated.
  • the data search request unit receives the search condition information (search trap door 171) input by the search condition input unit and the encryption tag generated by the encryption tag generation unit. Search server 300).
  • the data search request unit receives data satisfying the search condition from the data included in the classification data group indicated by the classification information from the data search apparatus as search result data.
  • the information processing apparatus further includes an encryption key storage unit (search terminal storage unit 190) that stores a plurality of encryption keys (category determination public key 143) and a plurality of classification information in association with each other.
  • the encryption tag generation unit selects and selects an encryption key associated with the same classification information as the classification information input by the search condition input unit from among a plurality of encryption keys stored in the encryption key storage unit
  • the encryption tag is generated by encrypting predetermined information using the encryption key.
  • Embodiment 2 An embodiment using ID-based encryption (IBE: Identity-Based Encryption) instead of public key encryption will be described.
  • ID-based encryption is an encryption method that uses an identifier (ID) such as a user name, IP address, or mail address as a public key.
  • ID identifier
  • IBE Identity-Based Encryption
  • items different from the first embodiment will be mainly described. Matters whose description is omitted are the same as those in the first embodiment.
  • the configuration of the data search system 900 and the functional configurations of the data search terminal 100, the data registration terminal 200, and the data search server 300 are the same as those in the first embodiment (see FIGS. 1, 2, 6, and 8).
  • the data search system 900 is different from the first embodiment in the following points.
  • the public key correspondence table 160 (see FIG. 4) described in the first embodiment is not necessary. For this reason, the public key correspondence table generation unit 112 of the data search terminal 100 is also unnecessary. Details of the processing will be described later.
  • FIG. 20 is a diagram showing the system public key 140 and the system secret key 150 according to the second embodiment.
  • the system public key 140 and the system secret key 150 in the second embodiment will be described with reference to FIG.
  • the system public key 140 has one IBE master public key 144 instead of the plurality of category determination public keys 143 described in the first embodiment (see FIG. 3).
  • the IBE master public key 144 is an ID-based encryption master public key.
  • the system secret key 150 has one IBE master secret key 154 instead of the plurality of category determination secret keys 153 described in the first embodiment (see FIG. 3).
  • the IBE master secret key 154 is an ID-based encryption master secret key.
  • FIG. 21 is a flowchart showing a setup process of data search terminal 100 in the second embodiment.
  • a setup process of the data search terminal 100 according to the second embodiment will be described with reference to FIG. S110B to S131B described below are processes corresponding to S110 to S131 described in the first embodiment (see FIG. 10).
  • a process partially different from that of the first embodiment is indicated by “B” at the end.
  • the system key generation unit 111 generates a system public key 140 and a system secret key 150.
  • the system public key 140 includes an IBE master public key 144
  • the system private key 150 includes an IBE master private key 154.
  • the system key generation unit 111 generates a key pair of the IBE master public key 144 and the IBE master secret key 154 by executing an ID-based encryption master key generation algorithm.
  • the system key generation unit 111 includes anonymity such as Boneh-Franklin ID-based encryption (BF-IBE) (see Non-Patent Document 4) and Boyen-Waters ID-based encryption (BW-IBE) (see Non-Patent Document 5).
  • An ID-based encryption scheme having (anonymity) is used.
  • Anonymity is a property that even if a ciphertext is viewed, it is not known which ID is used as a public key (see Non-Patent Document 6).
  • the system key generation unit 111 may use an ID-based encryption method that does not have anonymity (for example, Boneh-Boyen ID-based encryption (BB-IBE)). It progresses to S130B after S110B.
  • BB-IBE Boneh-Boyen ID-based encryption
  • the key information disclosing unit 113 discloses the system public key 140, the key determination value 191 and the ID-based encryption public parameter to the data registration terminal 200, as in S130 of the first embodiment.
  • the public key correspondence table 160 is not necessary. It progresses to S131B after S130B.
  • the key information disclosure unit 113 executes an ID-based encryption user secret key generation algorithm using the IBE master secret key 154 and category information, and generates a user secret key for each category.
  • the category information is specified (input) to the data search terminal 100 by the user.
  • the key information disclosure unit 113 receives the user secret key for each category (instead of the category determination secret key 153), the key determination value 191, and the ID-based encryption public parameter, as the data search server 300. Register with.
  • the data search server 300 generates a secret key correspondence table 350 that associates the user secret key for each category with the DB unit 391 for each category.
  • the setup process ends.
  • FIG. 22 is a flowchart showing data registration request processing of the data registration terminal 200 in the second embodiment.
  • Data registration request processing of the data registration terminal 200 in Embodiment 2 will be described with reference to FIG. S210 to S251 described below are processes corresponding to S210 to S251 described in the first embodiment (see FIG. 11). A process partially different from that of the first embodiment is indicated by “B” at the end.
  • S210 to S230 are the same as those in the first embodiment. After S230, the process proceeds to S241B.
  • the index tag generation unit 224 executes an ID-based encryption algorithm using the IBE master public key 144 and the category information, and generates an index tag 233 in which the key determination value 191 is encrypted. That is, the index tag generation unit 224 encrypts the key determination value 191 using the IBE master public key 144 using the category information as a parameter. After S241B, the process proceeds to S250.
  • S250 and S251 are the same as those in the first embodiment. By S251, the data registration request process ends.
  • FIG. 23 is a flowchart showing data registration processing of the data search server 300 according to the second embodiment.
  • Data registration processing of the data search server 300 in the second embodiment will be described with reference to FIG. S310 to S340B described below are processes corresponding to S310 to S340 described in the first embodiment (see FIG. 12).
  • a process partially different from that of the first embodiment is indicated by “B” at the end.
  • the registration request receiving unit 321 receives a registration request for the system ciphertext 230 from the data registration terminal 200. After S310, the process proceeds to S320B.
  • the category determination unit 340 determines whether or not the search server storage unit 390 has an unselected user secret key for each category not selected in S330B described later. When there is an unselected user secret key for each category (YES), the process proceeds to S330B. When there is no unselected user secret key for each category (NO), the process proceeds to S321. In S321, the data registration unit 322 stores the system ciphertext 230 in the unclassified DB unit 392.
  • the category determination unit 340 selects one user secret key for each category that has not been selected from the search server storage unit 390. It progresses to S331B after S330B.
  • the category determination unit 340 decrypts the index tag 233 included in the system ciphertext 230 using the category-specific user secret key selected in S330B. It progresses to S332 after S331B.
  • the category determination unit 340 compares the key determination value 191 with the decrypted value of the index tag 233 obtained in S331B. When the key determination value 191 and the decryption value of the index tag 233 are the same value (YES), the process proceeds to S340B. When the key determination value 191 and the decrypted value of the index tag 233 are different values (NO), the process returns to S320B.
  • the data registration unit 322 stores the system ciphertext 230 in the category-specific DB unit 391 corresponding to the category-specific user secret key selected in S330B. With S340B, the data registration process ends.
  • FIG. 24 is a flowchart showing data search request processing of the data search terminal 100 according to the second embodiment.
  • Data search request processing of the data search terminal 100 in the second embodiment will be described with reference to FIG. S410 to S441 described below are processes corresponding to S410 to S441 described in the first embodiment (see FIG. 13). A process partially different from that of the first embodiment is indicated by “B” at the end.
  • S410 and S420 are the same as those in the first embodiment. It progresses to S422B after S420.
  • the search query generation unit 122 executes an ID-based encryption algorithm using the IBE master public key 144 and the category information, and generates an index tag 172 in which the key determination value 191 is encrypted. That is, the search query generation unit 122 encrypts the key determination value 191 using the IBE master public key 144 using the category information as a parameter. It progresses to S423 after S422B.
  • S423 to S441 are the same as those in the first embodiment.
  • S441 the data search request process ends.
  • FIG. 25 is a flowchart showing data search processing of the data search server 300 according to the second embodiment.
  • Data search processing of the data search server 300 in the second embodiment will be described with reference to FIG. S510 to S550 described below are processes corresponding to S510 to S550 described in the first embodiment (see FIG. 14).
  • a process partially different from that of the first embodiment is indicated by “B” at the end.
  • the search request receiving unit 331 receives the search query 170 including the search trap door 171 and the index tag 172 from the data search terminal 100. After S510, the process proceeds to S520B.
  • the category determination unit 340 determines whether or not the search server storage unit 390 has user secret keys for unselected categories that are not selected in S530B described later. If there is an unselected user secret key for each category (YES), the process proceeds to S530B. If there is no unselected category user secret key (NO), the process proceeds to S521. In S ⁇ b> 521, the data search unit 332 searches the unclassified DB unit 392 using the search trapdoor 171 using the search algorithm of the searchable public key cryptosystem.
  • the category determination unit 340 selects one user secret key for each category that has not been selected from the search server storage unit 390. It progresses to S531B after S530B.
  • the category determination unit 340 decrypts the index tag 172 using the category-specific user secret key selected in S530B. After S531B, the process proceeds to S532.
  • the category determination unit 340 compares the key determination value 191 with the decrypted value of the index tag 172 obtained in S531B. When the key determination value 191 and the decryption value of the index tag 172 are the same value (YES), the process proceeds to S540B. If the key determination value 191 and the decryption value of the index tag 172 are different values (NO), the process returns to S520B.
  • the data search unit 332 searches the category-specific DB unit 391 corresponding to the category-specific user secret key selected in S530B using the search trapdoor 171 by a search algorithm of a searchable encryption method. It progresses to S550 after S540B.
  • the search result transmission unit 333 transmits the search result including the data ciphertext 231 hit in the search process of S540B or S521 to the data search terminal 100.
  • the data search process ends.
  • FIG. 26 is a flowchart showing category registration request processing of the data search terminal 100 according to the second embodiment.
  • the category registration request process of the data search terminal 100 in the second embodiment will be described with reference to FIG. S601 to S603B described below are processes corresponding to S601 to S603 described in the first embodiment (see FIG. 15). A process partially different from that of the first embodiment is indicated by “B” at the end.
  • step S601 the category registration request unit 130 inputs category information designated by the searcher. After S601, the process proceeds to S602B.
  • the category registration request unit 130 executes an ID-based user secret key generation algorithm using the IBE master secret key 154 and the category information, and generates a user secret key for each category. After S602B, the process proceeds to S603B.
  • the category registration request unit 130 transmits a category registration request including the user secret key for each category generated in S602B to the data search server 300.
  • the category registration request process ends.
  • FIG. 27 is a flowchart showing category registration processing of the data search server 300 according to the second embodiment.
  • the category registration process of the data search server 300 in the second embodiment will be described with reference to FIG. S610B to S644 described below are processes corresponding to S610 to S644 described in the first embodiment (see FIG. 16). A process partially different from that of the first embodiment is indicated by “B” at the end.
  • the category secret key management unit 310 receives a category registration request including the user secret key for each category from the data search terminal 100. It progresses to S620 after S610B.
  • the category private key management unit 310 In S620, the category private key management unit 310 generates a new category-specific DB unit 391. It progresses to S630B after S620.
  • the category secret key management unit 310 sets the correspondence between the category user secret key and the new category DB unit 391 in the secret key correspondence table 350. It progresses to S640 after S630B.
  • the category private key management unit 310 determines whether there is an unselected system ciphertext 230 that has not been selected in S641 described later. If there is an unselected system ciphertext 230 (YES), the process proceeds to S641. If there is no unselected system ciphertext 230 (NO), the category registration process ends.
  • the category secret key management unit 310 selects one unselected system ciphertext 230 from the registered terminal storage unit 290. After S641, the process proceeds to S642B.
  • the category secret key management unit 310 decrypts the index tag 233 using the category-specific user secret key. After S642B, the process proceeds to S643.
  • the category secret key management unit 310 compares the key determination value 191 with the decrypted value of the index tag 233 obtained in S642B.
  • the process proceeds to S644.
  • the key determination value 191 and the decryption value of the index tag 233 are different values (NO)
  • the process returns to S640.
  • the category secret key management unit 310 moves the system ciphertext 230 selected in S641 from the unclassified DB unit 392 to a new category-specific DB unit 391. After S644, the process returns to S640.
  • the public key correspondence table 160 may be used as in the first embodiment.
  • the data search terminal 100 and the data registration terminal 200 operate as follows.
  • FIG. 28 is a diagram showing the public key correspondence table 160 in the second embodiment.
  • the public key correspondence table 160 is data associating an ID used as a category determination public key with a category.
  • the data search terminal 100 and the data registration terminal 200 generate an ID corresponding to a category indicated by the category information among a plurality of IDs shown in the public key correspondence table 160 instead of generating a category-specific user public key using the category information.
  • a user public key for each category is generated using.
  • the data search system 900 according to Embodiment 2 can provide the following effects, for example. (1) The same effects as those of the first embodiment can be obtained.
  • the search speed can be increased in searchable public key cryptography.
  • the category information of a ciphertext can be concealed by using ID-based encryption having anonymity.
  • the public key correspondence table is unnecessary, the data registration terminal 200 can immediately generate the index tag 233 without referring to the public key correspondence table. However, a public key correspondence table may be used.
  • Embodiment 3 A mode of using functional encryption (FE) instead of ID-based encryption will be described.
  • Functional encryption is an encryption method that uses a parameter y when generating a user secret key using the parameter x as a public key.
  • the parameter x and the parameter y satisfy the predetermined relationship R (x, y)
  • the ciphertext can be decrypted.
  • R (x, y) There are various types of parameter x, parameter y, and relationship R (x, y).
  • x and y are numerical vectors, and the relationship R is generally a relationship in which the inner product value of x and y is 0.
  • Such x, y, and R (x, y) are called inner product predicates.
  • Non-Patent Document 8 Katz-Sahai-Waters inner product predicate encryption (KSW-IPE) (see Non-Patent Document 7) and Okamoto-Takashima inner product predicate encryption (OT-IPE) (see Non-Patent Document 8) are functional encryption schemes having attribute confidentiality. It is an example. Sahai-Waters fuzzy ID-based encryption (SW-FIDE) is an example of a functional encryption that does not have attribute confidentiality.
  • the configuration of the data search system 900 and the functional configurations of the data search terminal 100, the data registration terminal 200, and the data search server 300 are the same as those in the first embodiment (see FIGS. 1, 2, 6, and 8).
  • the data search system 900 is different from the first and second embodiments in the following points.
  • the public key correspondence table 160 Since the data search system 900 uses functional encryption, the public key correspondence table 160 is not required as in the case where ID-based encryption is used (see Embodiment 2). For this reason, the public key correspondence table generation unit 112 of the data search terminal 100 is also unnecessary. However, as in the second embodiment (see FIG. 28), the public key correspondence table 160 that associates the parameter x (instead of ID) with the category may be used.
  • FIG. 29 is a diagram showing the system public key 140 and the system secret key 150 according to the third embodiment.
  • the system public key 140 and the system secret key 150 in the third embodiment will be described with reference to FIG.
  • the system public key 140 has one FE master public key 145 instead of the plurality of category determination public keys 143 described in the first embodiment (see FIG. 3).
  • the FE master public key 145 is a functional public master key.
  • the system secret key 150 has one FE master secret key 155 instead of the plurality of category determination secret keys 153 described in the first embodiment (see FIG. 3).
  • the FE master secret key 155 is a functional secret master secret key.
  • the setup process of the data search terminal 100 is the same as that in the second embodiment (see FIG. 21).
  • the system key generation unit 111 generates the system public key 140 including the functional public key master public key instead of the IBE master public key 144, and uses the functional cryptographic master secret key instead of the IBE master private key 154.
  • the included system secret key 150 is generated (S110B).
  • the data registration request process of the data registration terminal 200 is the same as that in the second embodiment (see FIG. 22).
  • the index tag generation unit 224 generates the index tag 233 by encrypting the key determination value 191 using the functional public encryption master public key instead of the IBE master public key 144 (S241B).
  • the registrant may specify the category under complicated conditions utilizing the characteristics of the functional encryption. For example, it is known that an AND condition or an OR condition can be specified by using inner product predicate encryption. It is also known that NOT conditions can be specified by using functional encryption that does not have attribute confidentiality.
  • the index tag generation unit 224 uses a vector x in a format corresponding to the search condition as a public key.
  • Data registration processing of the data search server 300 is the same as that of the second embodiment (see FIG. 23).
  • the user secret key for each category is not a ID-based encryption but a functional encryption user secret key.
  • the data search request process of the data search terminal 100 is the same as that in the second embodiment (see FIG. 24). However, similarly to the above-described index tag generation unit 224, the search query generation unit 122 executes the encryption algorithm of the functional encryption scheme using the functional public encryption master public key instead of the IBE master public key 144, The key determination value 191 is encrypted to generate the index tag 172 (S422B).
  • the data search process of the data search server 300 is the same as that in the second embodiment (see FIG. 25).
  • the user secret key for each category is not a ID-based encryption but a functional encryption user secret key.
  • CN is category information (category name). That is, the index tag generation unit 224 generates a user secret key for each category using the parameter y including the category information.
  • the searcher may specify a category under complicated conditions by taking advantage of the characteristics of functional encryption.
  • an AND condition or an OR condition can be specified by using inner product predicate encryption. It is also known that NOT conditions can be specified by using functional encryption that does not have attribute confidentiality.
  • the category registration request unit 130 uses a vector y in a format according to the conditions.
  • the category registration process of the data search server 300 is the same as that in the second embodiment (see FIG. 27).
  • the user secret key for each category is not a ID-based encryption but a functional encryption user secret key.
  • the data search system 900 according to Embodiment 3 can provide the following effects, for example. (1) The same effect as in the first and second embodiments can be obtained.
  • the search speed can be increased in searchable public key cryptography.
  • the category information of a ciphertext can be concealed by using the functional encryption which has attribute secrecy.
  • a category can be specified under conditions (AND condition, OR condition, NOT condition, etc.) that are more flexible than the category conditions (ID matching) when ID-based encryption is used.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

 データ検索サーバ300は、データのカテゴリ別にデータ暗号文とキーワード暗号文とを含んだシステム暗号文230をカテゴリ別DB部391に記憶し、カテゴリ別DB部391に対応付けてカテゴリ判定用秘密鍵153を記憶する。検索要求受信部331は検索用トラップドアと索引用タグとを含んだ検索要求をデータ検索端末から受信する。データ検索部332は、索引用タグを鍵判定値191と同じ値に復号するカテゴリ判定用秘密鍵153を探索し、そのカテゴリ判定用秘密鍵153に対応付けられたカテゴリ別DB部391内のシステム暗号文230を検索用トラップドアを用いて検索可能公開鍵暗号方式で検索する。検索結果送信部333は、検索にヒットしたシステム暗号文230に含まれるデータ暗号文をデータ検索端末100へ送信する。

Description

データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
 本発明は、データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置に関するものである。
 公開鍵暗号(PKC:Public Key Cryptography)の分野において、暗号化したデータを復号しないでキーワード検索を行うための技術として、検索可能公開鍵暗号(PEKS:Public-key Encryption with Keyword Search)が知られている(非特許文献1参照)。
 この検索可能公開鍵暗号は、例えば、次のようなアプリケーションを実現する。
 送信者が機密情報を含んだデータファイルを外部データベース(以下、「サーバ」という)経由で受信者に送る、という状況を考える。すなわち、送信者がサーバにデータファイルをアップロードしておき、受信者がキーワード検索により必要なデータファイルをサーバからダウンロードする、という状況を考える。
 ここで、送信者と受信者は、データファイルとキーワードとの両方をサーバに知られずに共有したい。
 受信者は、公開鍵暗号の公開鍵・秘密鍵ペア(データファイル本体の暗号化・復号に使用)と、検索可能公開鍵暗号の公開鍵・秘密鍵ペア(キーワードの暗号化、検索クエリの作成に使用)とを予め用意する。そして、受信者は、それぞれの公開鍵を公開しておく。
 送信者は、受信者の公開鍵暗号の公開鍵を用いてデータファイルを暗号化してデータファイルの暗号文を生成する。これに加えて、送信者は、検索可能公開鍵暗号の公開鍵を用いてキーワードを暗号化してキーワードの暗号文を生成する。以下、検索可能公開鍵暗号の公開鍵を用いて生成したキーワードの暗号文を「暗号化タグ」という。送信者は、データファイルの暗号文と暗号化タグとを合わせてサーバにアップロードする。
 受信者は、検索可能公開鍵暗号の秘密鍵を用いてキーワードを暗号化してキーワードの暗号文を生成する。以下、検索可能公開鍵暗号の秘密鍵を用いて生成したキーワードの暗号文を「トラップドア」という。受信者は、このトラップドアを検索クエリとしてサーバに送信する。
 サーバは、受け取ったトラップドアを用いてデータベース内の全てのデータファイルの暗号文それぞれの暗号化タグに対して秘匿検索を行う。そして、サーバは、秘匿検索でヒットしたデータファイルの暗号文を受信者に送信する。
 検索可能公開鍵暗号には、全件検索をしなければならないため検索処理の時間がデータファイルの数に比例した大きさになってしまう、という課題があった。
 これを解決するためにいくつかの方法が提案されている。
 特許文献1は、キーワードと文書名とを対応付けて記憶したインデックス記憶部と暗号化した文書を記憶した暗号化データベースとを用意し、インデックス記憶部内のキーワードを検索し、検索にヒットしなかった場合に暗号化データベース内の文書を全文検索する方法を開示している。インデックス記憶部は検索結果に応じて更新される。
 但し、この方法には、インデックス記憶部が適切に更新されるまでは全文検索が必要なため、検索処理を高速化することができない、という課題がある。また、この方法には、様々な検索要求が大量に発生した場合にインデックス記憶部の効果が薄まり、検索処理を高速化することができない、という課題もある。さらに、この方法には、既存の検索可能公開鍵暗号方式のシステムを大きく変更する必要がある、という課題もある。
特開2005-134990号公報 国際公開第2011/086668号パンフレット
Dan Boneh, Giovanni Di Crescenzo, Rafail Ostrovsky and Giuseppe Persiano, ``Public Key Encryption with Keyword Search,’’ Eurocrypt 2004, Lecture Notes in Computer Science, vol. 3027, pp. 506-522, 2004. Mihir Bellare, Alexandra Boldyreva, Anand Desai and David Pointcheval, ``Key-Privacy in Public-Key Encryption,’’ Asiacrypt 2001, Lecture Notes in Computer Science, vol. 2248, pp. 566-582, 2001. Alfred J. Menezes, Paul C. Van Oorschot, and Scott A. Vanstone, Handbook of Applied Cryptography, Chapter 8 ``Public-Key Encryption,’’ CRC Press, 2006. Dan Boneh and Matthew Franklin, ``Identity-Based Encryption from the Weil Pairing,’’ Crypto 2001, Lecture Notes in Computer Science, vol. 2139, pp. 213-229, 2001. Xavier Boyen and Brent Waters, ``Anonymous Hierarchical Identity-Based Encryption (Without Random Oracles),’’ Crypto 2006, Lecture Notes in Computer Science, vol. 4117, pp. 290-307, 2006. Michel Abdalla, Mihir Bellare, Dario Catalano, Eike Kiltz, Tadayoshi Kohno, Tanja Lange, John Malone-Lee, Gregory Neven, Pascal Paillier, and Haixia Shi, ``Searchable Encryption Revisited: Consistency Properties, Relation to Anonymous IBE, and Extensions,’’ Crypto 2005, Lecture Notes in Computer Science, vol. 3621, pp. 205-222, 2005. Jonathan Katz, Amit Sahai, and Brent Waters, ``Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products,’’ Eurocrypt 2008, Lecture Notes in Computer Science, vol. 4965, pp. 146-162, 2008. Tatsuaki Okamoto and Katsuyuki Takashima, ``Adaptively Attribute-Hiding (Hierarchical) Inner Product Encryption,’’ Cryptology ePrint Archive, Report 2011/543, 2011.
 本発明は、例えば、検索可能公開鍵暗号を用いた検索処理を高速化できるようにすることを目的とする。
 本発明のデータ検索装置は、
 1つ以上のデータを含んだ複数のデータグループと暗号化された情報を復号する複数の復号鍵とを対応付けて記憶するデータ記憶部と、
 復号鍵を判定するための鍵判定情報を記憶する鍵判定情報記憶部と、
 データを検索するための検索条件と、所定の情報を暗号化した暗号化情報とを入力する検索条件入力部と、
 前記検索条件入力部が入力した前記暗号化情報を前記データ記憶部に記憶される前記複数の復号鍵それぞれを用いて復号し、前記複数の復号鍵のうち前記暗号化情報を前記鍵判定情報と同じ情報に復号した復号鍵を選択し、前記データ記憶部に記憶される前記複数のデータグループのうち前記選択した復号鍵に対応付けられたデータグループを検索先グループとして選択するデータグループ選択部と、
 前記データグループ選択部によって選択された前記検索先グループに含まれる1つ以上のデータから前記検索条件入力部が入力した前記検索条件を満たすデータを検索結果のデータとして取得するデータ検索部と、
 前記データ検索部によって取得された前記検索結果のデータを出力する検索結果出力部とを備える。
 本発明によれば、例えば、検索可能公開鍵暗号を用いた検索処理を高速化することができる。
実施の形態1におけるデータ検索システム900の構成図。 実施の形態1におけるデータ検索端末100の機能構成図。 実施の形態1におけるシステム公開鍵140とシステム秘密鍵150とを示す図。 実施の形態1における公開鍵対応表160を示す図。 実施の形態1における検索クエリ170を示す図。 実施の形態1におけるデータ登録端末200の機能構成図。 実施の形態1におけるシステム暗号文230を示す図。 実施の形態1におけるデータ検索サーバ300の機能構成図。 実施の形態1における秘密鍵対応表350を示す図。 実施の形態1におけるデータ検索端末100のセットアップ処理を示すフローチャート。 実施の形態1におけるデータ登録端末200のデータ登録処理を示すフローチャート。 実施の形態1におけるデータ検索サーバ300のデータ登録処理を示すフローチャート。 実施の形態1におけるデータ検索端末100のデータ検索要求処理を示すフローチャート。 実施の形態1におけるデータ検索サーバ300のデータ検索処理を示すフローチャート。 実施の形態1におけるデータ検索端末100のカテゴリ登録要求処理を示すフローチャート。 実施の形態1におけるデータ検索サーバ300のカテゴリ登録処理を示すフローチャート。 実施の形態1におけるデータ検索システム900のハードウェア資源の一例を示す図。 実施の形態1における鍵判定値対応表192を示す図。 実施の形態1における公開鍵対応表160の別例を示す図。 実施の形態2におけるシステム公開鍵140とシステム秘密鍵150とを示す図。 実施の形態2におけるデータ検索端末100のセットアップ処理を示すフローチャート。 実施の形態2におけるデータ登録端末200のデータ登録要求処理を示すフローチャート。 実施の形態2におけるデータ検索サーバ300のデータ登録処理を示すフローチャート。 実施の形態2におけるデータ検索端末100のデータ検索要求処理を示すフローチャート。 実施の形態2におけるデータ検索サーバ300のデータ検索処理を示すフローチャート。 実施の形態2におけるデータ検索端末100のカテゴリ登録要求処理を示すフローチャート。 実施の形態2におけるデータ検索サーバ300のカテゴリ登録処理を示すフローチャート。 実施の形態2における公開鍵対応表160を示す図。 実施の形態3におけるシステム公開鍵140とシステム秘密鍵150とを示す図。
 実施の形態1.
 検索可能公開鍵暗号(PEKS)を用いて高速に検索を行うシステムについて説明する。
 検索可能公開鍵暗号とは、暗号化したデータを復号しないでキーワード検索を行うための技術である(非特許文献1参照)。
 図1は、実施の形態1におけるデータ検索システム900の構成図である。
 実施の形態1におけるデータ検索システム900の構成について、図1に基づいて説明する。
 データ検索システム900は検索可能公開鍵暗号を用いて検索を行うシステムの一例である。検索可能公開鍵暗号を用いることにより、検索対象のデータおよび検索用のキーワードを秘匿してキーワード検索を行うことができる。
 データ検索システム900は、一つのデータ検索端末100と、複数のデータ登録端末200と、一つのデータ検索サーバ300とを備える。但し、データ検索端末100やデータ検索サーバ300が複数あっても構わないし、データ登録端末200が一つであっても構わない。
 データ検索端末100とデータ登録端末200とデータ検索サーバ300とはネットワーク909(例えば、インターネット)を介して通信接続している。
 データ登録端末200(データ登録装置の一例)は、検索対象のデータを暗号化してデータ検索サーバ300に登録するための装置(コンピュータ)である。
 データ検索端末100(情報処理端末装置の一例)は、データ検索サーバ300に対して暗号化した検索キーワードを指定してキーワード検索を要求するための装置である。
 データ検索サーバ300(データ検索装置の一例)は、データ登録端末200によって登録された暗号化データを対象にしてデータ検索端末100によって指定された暗号化キーワードに従って検索可能公開鍵暗号のキーワード検索を行うための装置である。データ検索サーバ300は検索結果をデータ検索端末100に応答する。
 例えば、検索対象のデータとして電子メールが挙げられる。この場合、データ検索サーバ300はメールサーバとして機能し、データ登録端末200は電子メールの送信者が使用するコンピュータとして機能し、データ検索端末100は電子メールの受信者が使用するコンピュータとして機能する。そして、データ検索システム900は以下のように利用される。但し、以下の利用方法は、データ検索システム900の利用方法の一例である。
 電子メールの送信者A、B、Cはそれぞれ、データ登録端末200を用いて暗号化した電子メールをデータ検索サーバ300へ送信する。データ検索サーバ300は送信者A、B、Cそれぞれの暗号化された電子メールを記憶する。
 電子メールの受信者は、送信者Aの電子メールを見たい場合、データ検索端末100に対して電子メールの検索キーワードとして送信者Aの識別子(例えば、電子メールアドレス)を指定する。データ検索端末100は、検索キーワード(送信者Aの識別子)を暗号化してデータ検索サーバ300へ送信する。
 データ検索サーバ300は、暗号化された検索キーワードに従って検索可能公開鍵暗号のキーワード検索を行い、送信者Aの暗号化された電子メールをデータ検索端末100へ送信する。
 データ検索端末100は送信者Aの暗号化された電子メールを受信し、受信した電子メールを復号し、復号した電子メールを表示する。
 これにより、電子メールの送信者A、B、Cおよび受信者は電子メールを秘匿することができる。さらに、電子メールの受信者は電子メールの検索キーワードを秘匿することができる。
 図2は、実施の形態1におけるデータ検索端末100の機能構成図である。
 実施の形態1におけるデータ検索端末100の機能構成について、図2に基づいて説明する。
 データ検索端末100(情報処理装置の一例)は、セットアップ処理部110と、検索要求処理部120と、カテゴリ登録要求部130と、検索端末記憶部190とを備える。
 セットアップ処理部110は、システム鍵生成部111と、公開鍵対応表生成部112と、鍵情報公開部113とを備える。
 システム鍵生成部111は、後述する鍵判定値191とシステム公開鍵140とシステム秘密鍵150とを生成する。
 公開鍵対応表生成部112は、後述する公開鍵対応表160を生成する。
 鍵情報公開部113は、システム公開鍵140とシステム秘密鍵150と公開鍵対応表160とをデータ登録端末200またはデータ検索サーバ300に対して公開する。
 システム鍵生成部111、公開鍵対応表生成部112および鍵情報公開部113の詳細については、後述するセットアップ処理のフローチャートに基づいて説明する。
 図3は、実施の形態1におけるシステム公開鍵140とシステム秘密鍵150とを示す図である。
 実施の形態1におけるシステム公開鍵140とシステム秘密鍵150とについて、図3に基づいて説明する。
 システム公開鍵140およびシステム秘密鍵150は、データ検索システム900で使用する公開鍵暗号(または検索可能公開鍵暗号)の鍵ペアを構成する。
 システム公開鍵140は、一つのデータ用公開鍵141と、一つのキーワード用公開鍵142と、複数のカテゴリ判定用公開鍵143(複数の暗号化鍵の一例)とを含む。
 データ用公開鍵141は、検索対象のデータを暗号化するための鍵データ(暗号化鍵)である。
 キーワード用公開鍵142は、検索対象のデータに添付するキーワード(データキーワード)またはデータの検索時に指定するキーワード(検索キーワード)を暗号化するための鍵データ(暗号化鍵)である。
 カテゴリ判定用公開鍵143は、検索対象のデータが属するカテゴリ(データカテゴリ)を判定するための情報(鍵判定値191)を暗号化するための鍵データ(暗号化鍵)である。カテゴリ判定用公開鍵143はデータのカテゴリ毎に異なる。
 システム秘密鍵150は、一つのデータ用秘密鍵151と、一つのキーワード用秘密鍵152と、複数のカテゴリ判定用秘密鍵153(複数の復号鍵の一例)とを含む。
 データ用秘密鍵151は、暗号化された検索対象のデータを復号するための鍵データ(復号鍵)である。
 キーワード用秘密鍵152は、検索キーワードに対応する秘密鍵(後述する検索用トラップドア171)を生成するための鍵データ(マスタ秘密鍵)である。
 カテゴリ判定用秘密鍵153は、暗号化された鍵判定値191(後述する索引用タグ172または索引用タグ233)を復号するための鍵データ(復号鍵)である。カテゴリ判定用秘密鍵153はデータのカテゴリ毎に異なる。
 データ用公開鍵141およびデータ用秘密鍵151はデータ用の鍵ペア(公開鍵暗号の鍵ペア)を構成する。
 キーワード用公開鍵142およびキーワード用秘密鍵152はデータのキーワード用の鍵ペア(検索可能公開鍵暗号の鍵ペア)を構成する。キーワード用公開鍵142とキーワード用秘密鍵152とをデータ用の鍵ペアとして兼用しても構わない。この場合、データ用公開鍵141およびデータ用秘密鍵151は不要である。
 カテゴリ判定用公開鍵143およびカテゴリ判定用秘密鍵153はデータのカテゴリ判定用の複数の鍵ペア(公開鍵暗号の鍵ペア)を構成する。
 図4は、実施の形態1における公開鍵対応表160を示す図である。
 実施の形態1における公開鍵対応表160について、図4に基づいて説明する。
 公開鍵対応表160は、カテゴリ判定用公開鍵143とデータのカテゴリとを対応付けるデータである。
 図4に示す公開鍵対応表160は、「PK」で識別されるカテゴリ判定用公開鍵143と「特許」カテゴリとを対応付け、「PK」で識別されるカテゴリ判定用公開鍵143と「意匠」カテゴリとを対応付けている。
 図2に戻り、データ検索端末100の機能構成の説明を続ける。
 検索要求処理部120は、検索キーワード入力部121と、検索クエリ生成部122と、検索要求部123と、検索結果出力部124とを備える。
 検索キーワード入力部121(検索条件入力部の一例)は、利用者(データの検索者)に指定された検索キーワード(検索条件の一例)と検索対象のカテゴリとを入力装置または記憶装置から入力する。
 検索クエリ生成部122(暗号化タグ生成部の一例)は、検索キーワードと検索対象のカテゴリとに基づいて検索クエリ170を生成する。検索クエリ170は検索キーワードを指定するためのデータである。
 検索要求部123(データ検索要求部の一例)は、検索クエリ170をデータ検索サーバ300へ送信し、検索キーワードに該当する暗号化データを含んだ検索結果199をデータ検索サーバ300から受信する。
 検索結果出力部124は、検索結果199に含まれる暗号化データをデータ用秘密鍵151を用いて復号し、復号して得られたデータを出力する。
 検索キーワード入力部121、検索クエリ生成部122、検索要求部123および検索結果出力部124の詳細については、後述するデータ検索要求処理のフローチャートに基づいて説明する。
 図5は、実施の形態1における検索クエリ170を示す図である。
 実施の形態1における検索クエリ170について、図5に基づいて説明する。
 検索クエリ170は、検索用トラップドア171(検索条件の情報の一例)と索引用タグ172(暗号化タグの一例)とを含んだデータである。
 検索用トラップドア171は検索キーワードに対応する秘密鍵である。検索用トラップドア171はキーワード用秘密鍵152を用いて生成される。
 索引用タグ172は、検索対象のカテゴリ用のカテゴリ判定用公開鍵143を用いて暗号化した鍵判定値191である。
 図2に戻り、データ検索端末100の機能構成について説明を続ける。
 カテゴリ登録要求部130は、特定のカテゴリに属するデータ用のデータベースの生成をデータ検索サーバ300に対して要求する。
 カテゴリ登録要求部130の詳細については、後述するカテゴリ登録要求処理のフローチャートに基づいて説明する。
 検索端末記憶部190(暗号化鍵記憶部の一例)は、データ検索端末100で使用するデータを記憶する。
 例えば、検索端末記憶部190は、鍵判定値191、システム公開鍵140、システム秘密鍵150、公開鍵対応表160、検索クエリ170および検索結果199を記憶する。
 図6は、実施の形態1におけるデータ登録端末200の機能構成図である。
 実施の形態1におけるデータ登録端末200の機能構成について、図6に基づいて説明する。
 データ登録端末200(データ登録装置の一例)は、公開情報取得部210と、データ登録要求処理部220と、登録端末記憶部290とを備える。
 公開情報取得部210は、データ検索端末100によって公開された鍵判定値191とシステム公開鍵140と公開鍵対応表160とを取得する。
 公開情報取得部210の詳細については、後述するセットアップ処理のフローチャートに基づいて説明する。
 データ登録要求処理部220は、登録情報入力部221と、データ暗号文生成部222と、キーワード暗号文生成部223と、索引用タグ生成部224と、データ登録要求部225とを備える。
 登録情報入力部221(分類情報入力部の一例)は、利用者(データの登録者)に指定されたデータとデータのキーワードとデータのカテゴリとを入力装置または記憶装置から入力する。
 データ暗号文生成部222(データ生成部の一例)は、データ用公開鍵141を用いてデータを暗号化する。
 キーワード暗号文生成部223は、キーワード用公開鍵142を用いてデータのキーワードを暗号化する。
 索引用タグ生成部224(暗号化タグ生成部の一例)は、データのカテゴリ用のカテゴリ判定用公開鍵143を用いて鍵判定値191を暗号化する。
 データ登録要求部225(データ登録要求部の一例)は、暗号化したデータとキーワードと鍵判定値191とを含んだシステム暗号文230の登録をデータ検索サーバ300に対して要求する。
 登録情報入力部221、データ暗号文生成部222、キーワード暗号文生成部223、索引用タグ生成部224およびデータ登録要求部225の詳細については、後述するデータ登録要求処理のフローチャートに基づいて説明する。
 図7は、実施の形態1におけるシステム暗号文230を示す図である。
 実施の形態1におけるシステム暗号文230について、図7に基づいて説明する。
 システム暗号文230は、データ暗号文231と、キーワード暗号文232と、索引用タグ233とを含んだデータである。
 データ暗号文231(データの一例)は、データ用公開鍵141を用いてデータを暗号化したものである。
 キーワード暗号文232は、キーワード用公開鍵142を用いてデータのキーワードを暗号化したものである。
 索引用タグ233(暗号化タグの一例)は、データが属するカテゴリのカテゴリ判定用公開鍵143を用いて鍵判定値191を暗号化したものである。
 図6に戻り、データ登録端末200の機能構成の説明を続ける。
 登録端末記憶部290は、データ登録端末200で使用するデータを記憶する。
 例えば、登録端末記憶部290は、鍵判定値191、システム公開鍵140、公開鍵対応表160およびシステム暗号文230を記憶する。
 図8は、実施の形態1におけるデータ検索サーバ300の機能構成図である。
 実施の形態1におけるデータ検索サーバ300の機能構成について、図8に基づいて説明する。
 データ検索サーバ300(データ検索装置の一例)は、カテゴリ用秘密鍵管理部310と、データ登録処理部320と、データ検索処理部330と、カテゴリ判定部340と、検索サーバ記憶部390とを備える。
 さらに、データ検索サーバ300は、データのカテゴリ別にデータベース(以下、「カテゴリ別DB部391」という)を備える。
 また、データ検索サーバ300は、いずれのカテゴリにも分類されていないデータ用のデータベース(以下、「未分類DB部392」という)を備える。
 カテゴリ用秘密鍵管理部310(追加復号鍵入力部、データグループ登録部の一例)は、データ検索端末100によって生成される鍵判定値191とカテゴリ判定用秘密鍵153とを管理する。
 また、カテゴリ用秘密鍵管理部310は、カテゴリ判定用秘密鍵153に対応付けるカテゴリ別DB部391を生成する。
 さらに、カテゴリ用秘密鍵管理部310は、カテゴリ判定用秘密鍵153とカテゴリ別DB部391とを対応付ける秘密鍵対応表350を生成する。
 カテゴリ用秘密鍵管理部310の詳細については、後述するセットアップ処理のフローチャートおよびカテゴリ登録処理のフローチャートに基づいて説明する。
 データ登録処理部320は、登録要求受信部321と、データ登録部322とを備える。
 登録要求受信部321(新規データ入力部の一例)は、データ登録端末200から送信されるデータ(図7に示したシステム暗号文230)の登録要求を受信する。
 データ登録部322(新規データ登録部の一例)は、データの登録要求に従ってデータが属するカテゴリ用のカテゴリ別DB部391にデータを記憶する。
 登録要求受信部321およびデータ登録部322の詳細については、後述するデータ登録処理のフローチャートに基づいて説明する。
 データ検索処理部330は、検索要求受信部331と、データ検索部332と、検索結果送信部333とを備える。
 検索要求受信部331(検索条件入力部の一例)は、データ検索端末100から送信されるデータの検索要求(図5に示した検索クエリ)を受信する。
 データ検索部332(データ検索部の一例)は、データの検索要求に従って検索対象のカテゴリ用のカテゴリ別DB部391を検索する。
 検索結果送信部333(検索結果出力部の一例)は、検索条件を満たすデータ(図7に示したシステム暗号文230)を含んだ検索結果をデータ検索端末100へ送信する。
 検索要求受信部331、データ検索部332および検索結果送信部333の詳細については、後述するデータ検索処理のフローチャートに基づいて説明する。
 カテゴリ判定部340(データグループ選択部の一例)は、データの登録要求に基づいてデータが属するカテゴリ用のカテゴリ別DB部391を判定し、データの検索要求に基づいて検索対象のカテゴリ用のカテゴリ別DB部391を判定する。
 カテゴリ判定部340の詳細については、後述するデータ登録処理のフローチャートおよびデータ検索処理のフローチャートに基づいて説明する。
 検索サーバ記憶部390は、データ検索サーバ300で使用するデータを記憶する。
 例えば、検索サーバ記憶部390は、鍵判定値191、カテゴリ判定用秘密鍵153および秘密鍵対応表350を記憶する。
 図9は、実施の形態1における秘密鍵対応表350を示す図である。
 実施の形態1における秘密鍵対応表350について、図9に基づいて説明する。
 秘密鍵対応表350は、カテゴリ判定用秘密鍵153とカテゴリ別DB部391とを対応付けるデータである。
 図9に示す秘密鍵対応表350は、「SK」で識別されるカテゴリ判定用秘密鍵153と、「DB」で識別されるカテゴリ別DB部391とを対応付け、「SK」で識別されるカテゴリ判定用秘密鍵153と、「DB」で識別されるカテゴリ別DB部391とを対応付けている。
 図8に戻り、データ検索サーバ300の機能構成の説明を続ける。
 カテゴリ別DB部391(データ記憶部の一例)は、同じカテゴリに分類された1つ以上のシステム暗号文230(データグループの一例)を記憶する。
 未分類DB部392(データ記憶部の一例)は、いずれのカテゴリにも分類されていない1つ以上のシステム暗号文230(未分類グループの一例)を記憶する。
 図10は、実施の形態1におけるデータ検索端末100のセットアップ処理を示すフローチャートである。
 実施の形態1におけるデータ検索端末100のセットアップ処理について、図10に基づいて説明する。
 データ検索を行いたい利用者(以下、「検索者」という)はデータ検索端末100のセットアップ処理部110を起動し、データ検索端末100のセットアップ処理部110は以下のセットアップ処理(S110からS131)を実行する。
 S110において、システム鍵生成部111は、システム公開鍵140とシステム秘密鍵150とを生成する(図3参照)。鍵生成方法については非特許文献3を参照のこと。
 このとき、システム鍵生成部111は、データ用公開鍵141とデータ用秘密鍵151との鍵ペアを公開鍵暗号方式の鍵生成アルゴリズムによって生成する。RSA暗号(RSAは登録商標)は公開鍵暗号方式の一例である。
 また、システム鍵生成部111は、キーワード用公開鍵142とキーワード用秘密鍵152との鍵ペアを検索可能公開鍵暗号方式の鍵生成アルゴリズムによって生成する。
 また、システム鍵生成部111は、カテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との複数の鍵ペアを公開鍵暗号方式の鍵生成アルゴリズムによって生成する。例えば、システム鍵生成部111は、ElGamal暗号やCramer-Shoup暗号など、鍵匿名性(key-privacy)を有する公開鍵暗号方式を使用する。鍵匿名性とは、暗号文を見てもどの公開鍵を用いたかわからない、という性質である。カテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との鍵ペアの個数はデータを分類するカテゴリの個数であり、検索者がデータ検索端末100のシステム鍵生成部111に対して指定(入力)する。
 S110の後、S120に進む。
 S120において、検索者は、S110で生成されたカテゴリ判定用公開鍵143に対応付けるデータのカテゴリを示すカテゴリ情報を入力装置(例えば、キーボードやマウス)を用いてデータ検索端末100の公開鍵対応表生成部112に対して入力する。つまり、公開鍵対応表生成部112は、検索者によって指定されたカテゴリ情報を入力装置から入力する。
 公開鍵対応表生成部112は、入力したカテゴリ情報に従って図4に示すような公開鍵対応表160を生成する。公開鍵対応表160は、カテゴリ判定用公開鍵143とデータのカテゴリとを対応付けるデータである。
 例えば、「PK」で識別されるカテゴリ判定用公開鍵143に対応付けるデータのカテゴリが「特許」である場合、公開鍵対応表生成部112は「PK」と「特許」とを対応付けて公開鍵対応表160に設定する。
 S120の後、S130に進む。
 S130において、鍵情報公開部113は、所定の鍵判定値191とS110で生成したシステム公開鍵140とS120で生成した公開鍵対応表160とをデータ登録端末200に対する公開情報として公開する。鍵判定値191は所定値(例えば「1」)である。
 例えば、データ検索端末100の鍵情報公開部113が公開情報を所定のサーバ(例えば、データ検索サーバ300)に登録し、データ登録端末200の公開情報取得部210が所定のサーバから公開情報を取得する。公開情報取得部210は取得した公開情報を登録端末記憶部290に記憶する。
 また例えば、データ登録端末200の公開情報取得部210が公開情報を要求する公開要求をデータ検索端末100へ送信し、データ検索端末100の鍵情報公開部113が公開要求を受信する。そして、データ検索端末100の鍵情報公開部113が公開情報をデータ登録端末200へ送信し、データ登録端末200の公開情報取得部210が公開情報を受信する。公開情報取得部210は受信した公開情報を登録端末記憶部290に記憶する。
 S130の後、S131に進む。
 S131において、鍵情報公開部113は、所定の鍵判定値191とS110で生成した複数のカテゴリ判定用秘密鍵153とをデータ検索サーバ300へ送信する。鍵判定値191はデータ登録端末200に対して公開する値と同じである。
 但し、鍵情報公開部113は、複数のカテゴリ判定用秘密鍵153のうち少なくともいずれかのカテゴリ判定用秘密鍵153だけをデータ検索サーバ300へ送信してもよい。つまり、データ検索サーバ300に対して送信しないカテゴリ判定用秘密鍵153があっても構わない。例えば、検索者がカテゴリ判定用秘密鍵153を指定する。そして、鍵情報公開部113は、複数のカテゴリ判定用秘密鍵153のうち検索者によって指定されたカテゴリ判定用秘密鍵153をデータ検索サーバ300へ送信する。
 このとき、データ検索サーバ300のカテゴリ用秘密鍵管理部310は、データ検索端末100の鍵情報公開部113によって送信された鍵判定値191とカテゴリ判定用秘密鍵153とを受信する。カテゴリ用秘密鍵管理部310は、受信した鍵判定値191とカテゴリ判定用秘密鍵153とを検索サーバ記憶部390に記憶する。
 そして、カテゴリ用秘密鍵管理部310は、受信したカテゴリ判定用秘密鍵153別にカテゴリ別DB部391を生成する。カテゴリ別DB部391は、カテゴリ判定用秘密鍵153と鍵ペアを構成するカテゴリ判定用公開鍵143を用いて生成された索引用タグ233を含んだシステム暗号文230(図7参照)を記憶するためのデータベースである。
 また、カテゴリ用秘密鍵管理部310は、図9に示すような秘密鍵対応表350を生成する。例えば、「SK」で識別されるカテゴリ判定用秘密鍵153に対して「DB」で識別されるカテゴリ別DB部391を生成した場合、カテゴリ用秘密鍵管理部310は「SK」と「DB」とを対応付けて秘密鍵対応表350に設定する。
 S131により、セットアップ処理は終了する。
 図11は、実施の形態1におけるデータ登録端末200のデータ登録処理を示すフローチャートである。
 実施の形態1におけるデータ登録端末200のデータ登録処理について、図11に基づいて説明する。
 検索対象のデータを登録したい利用者(以下、「登録者」という)はデータ登録端末200のデータ登録要求処理部220を起動し、データ登録端末200のデータ登録要求処理部220は以下のデータ登録処理(S210からS251)を実行する。
 S210において、登録者は、検索対象として登録したいデータと、データに関連するキーワードと、データが属するカテゴリを示すカテゴリ情報とを入力装置を用いてデータ登録端末200の登録情報入力部221に対して入力する。つまり、登録情報入力部221は、登録者によって指定されたデータとキーワードとカテゴリ情報とを入力装置から入力する。
 S210の後、S220に進む。
 S220において、データ暗号文生成部222は、登録端末記憶部290からデータ用公開鍵141を取得し、取得したデータ用公開鍵141を用いてS210で入力されたデータを暗号化する。以下、暗号化後のデータを「データ暗号文231」という。
 S220の後、S230に進む。
 S230において、キーワード暗号文生成部223は、登録端末記憶部290からキーワード用公開鍵142を取得し、取得したキーワード用公開鍵142を用いてS210で入力されたキーワードを暗号化する。以下、暗号化後のキーワードを「キーワード暗号文232」という。
 S230の後、S240に進む。
 S240において、索引用タグ生成部224は、登録端末記憶部290に記憶されている公開鍵対応表160を参照する。
 そして、索引用タグ生成部224は、公開鍵対応表160に示されている複数のカテゴリ判定用公開鍵143のうちS210で入力されたカテゴリ情報が示すカテゴリに対応付けられているカテゴリ判定用公開鍵143を選択し、選択したカテゴリ判定用公開鍵143を登録端末記憶部290から取得する。
 S240の後、S241に進む。
 S241において、索引用タグ生成部224は、登録端末記憶部290から鍵判定値191を取得し、S240で取得したカテゴリ判定用公開鍵143を用いて鍵判定値191を暗号化する。以下、暗号化後の鍵判定値191を「索引用タグ233」という。
 S241の後、S250に進む。
 S250において、データ登録要求部225は、S220で生成したデータ暗号文231とS230で生成したキーワード暗号文232とS241で生成した索引用タグ233とを含んだシステム暗号文230(図7参照)を生成する。
 S250の後、S251に進む。
 S251において、データ登録要求部225は、S250で生成したシステム暗号文230の登録を要求する登録要求をデータ検索サーバ300へ送信する。登録要求はシステム暗号文230を含んだデータである。
 S251により、データ登録要求処理は終了する。
 図12は、実施の形態1におけるデータ検索サーバ300のデータ登録処理を示すフローチャートである。
 実施の形態1におけるデータ検索サーバ300のデータ登録処理について、図12に基づいて説明する。
 S310において、登録要求受信部321は、データ登録端末200から送信されるシステム暗号文230の登録要求を受信する。
 S310の後、S320に進む。
 S320において、カテゴリ判定部340は、後述するS330で選択していない未選択のカテゴリ判定用秘密鍵153が検索サーバ記憶部390に有るか否かを判定する。
 未選択のカテゴリ判定用秘密鍵153が有る場合(YES)、S330に進む。
 未選択のカテゴリ判定用秘密鍵153が無い場合(NO)、S321に進む。
 S330において、カテゴリ判定部340は、検索サーバ記憶部390から未選択のカテゴリ判定用秘密鍵153を一つ選択し、選択したカテゴリ判定用秘密鍵153を検索サーバ記憶部390から取得する。
 S330の後、S331に進む。
 S331において、カテゴリ判定部340は、S310で受信されたシステム暗号文230から索引用タグ233を取得し、取得した索引用タグ233をS330で取得したカテゴリ判定用秘密鍵153を用いて復号する。以下、索引用タグ233を復号した値を索引用タグ233の復号値という。
 S331の後、S332に進む。
 S332において、カテゴリ判定部340は、S331で得られた索引用タグ233の復号値と検索サーバ記憶部390に記憶されている鍵判定値191とを比較する。
 索引用タグ233の復号値と鍵判定値191とが同じ値である場合(YES)、S340に進む。
 索引用タグ233の復号値と鍵判定値191とが異なる値である場合(NO)、S320に戻る。
 S340において、データ登録部322は、検索サーバ記憶部390に記憶されている秘密鍵対応表350(図9参照)を参照し、秘密鍵対応表350に示されている複数のカテゴリ別DB部391のうちS330で選択したカテゴリ判定用秘密鍵153に対応付けられているカテゴリ別DB部391を選択する。
 そして、データ登録部322は、選択したカテゴリ別DB部391にS310で受信されたシステム暗号文230を記憶する。
 S340により、データ登録処理は終了する。
 S321において、データ登録部322は、S310で受信されたシステム暗号文230を未分類DB部392に記憶する。つまり、システム暗号文230のデータ暗号文231がいずれのカテゴリ別DB部391のカテゴリにも分類されない場合、データ登録部322はシステム暗号文230を未分類DB部392に記憶する。未分類DB部392はデータ検索サーバ300に予め生成しておく。
 S321により、データ登録処理は終了する。
 図11に示したデータ登録要求処理と図12に示したデータ登録処理とにより、システム暗号文230はデータ検索サーバ300のいずれかのカテゴリ別DB部391または未分類DB部392に記憶される。
 図13は、実施の形態1におけるデータ検索端末100のデータ検索要求処理を示すフローチャートである。
 実施の形態1におけるデータ検索端末100のデータ検索要求処理について、図13に基づいて説明する。
 検索者はデータ検索端末100の検索要求処理部120を起動し、データ検索端末100の検索要求処理部120は以下のデータ検索要求処理(S410からS441)を実行する。
 S410において、検索者は、検索キーワードと検索対象のカテゴリを示すカテゴリ情報とを入力装置を用いてデータ検索端末100の検索キーワード入力部121に対して入力する。つまり、検索キーワード入力部121は検索者によって指定された検索キーワードとカテゴリ情報とを入力装置から入力する。
 S410の後、S420に進む。
 S420において、検索クエリ生成部122は、検索端末記憶部190からキーワード用秘密鍵152を取得し、取得したキーワード用秘密鍵152を用いてS410で入力された検索キーワードを暗号化する。以下、暗号化後の検索キーワードを「検索用トラップドア171」という。
 S420の後、S421に進む。
 S421において、検索クエリ生成部122は、検索端末記憶部190に記憶されている公開鍵対応表160を参照し、公開鍵対応表160に示されている複数のカテゴリ判定用公開鍵143のうちS410で入力されたカテゴリ情報が示すカテゴリに対応付けられているカテゴリ判定用公開鍵143を選択する。
 S421の後、S422に進む。
 S422において、検索クエリ生成部122は、検索端末記憶部190から鍵判定値191を取得し、取得した鍵判定値191をS421で選択したカテゴリ判定用公開鍵143を用いて暗号化する。以下、暗号化後の鍵判定値191を「索引用タグ172」という。
 S422の後、S423に進む。
 S423において、検索クエリ生成部122は、S420で生成した検索用トラップドア171とS422で生成した索引用タグ172とを含んだ検索クエリ170(図5参照)を生成する。
 S423の後、S430に進む。
 S430において、検索要求部123は、S423で生成された検索クエリ170をデータ検索サーバ300へ送信する。
 S430の後、S431に進む。
 S431において、検索要求部123は、データ検索サーバ300から送信される検索結果を受信する。検索結果は、検索クエリ170に対応するデータ暗号文231(言い換えると「検索条件を満たすデータ暗号文231」または「検索処理でヒットしたデータ暗号文231」)を含んだデータである。
 S431の後、S440に進む。
 S440において、検索結果出力部124は、検索端末記憶部190からデータ用秘密鍵151を取得し、取得したデータ用秘密鍵151を用いてS431で受信された検索結果に含まれるデータ暗号文231を復号する。データ暗号文231を復号することにより、暗号化前のデータが得られる。
 S440の後、S441に進む。
 S441において、検索結果出力部124は、S440で得られたデータを含んだ検索結果を出力する。例えば、検索結果出力部124は、検索結果をディスプレイに表示する。
 S441により、データ検索要求処理は終了する。
 図14は、実施の形態1におけるデータ検索サーバ300のデータ検索処理を示すフローチャートである。
 実施の形態1におけるデータ検索サーバ300のデータ検索処理について、図14に基づいて説明する。
 S510において、検索要求受信部331は、データ検索端末100から送信される検索クエリ170を受信する。検索クエリ170は、検索用トラップドア171と索引用タグ172とを含んだデータである(図5参照)。
 S510の後、S520に進む。
 S520において、カテゴリ判定部340は、後述するS530で選択していない未選択のカテゴリ判定用秘密鍵153が検索サーバ記憶部390に有るか否かを判定する。
 未選択のカテゴリ判定用秘密鍵153が有る場合(YES)、S530に進む。
 未選択のカテゴリ判定用秘密鍵153が無い場合(NO)、S521に進む。
 S530において、カテゴリ判定部340は、検索サーバ記憶部390から未選択のカテゴリ判定用秘密鍵153を一つ選択し、選択したカテゴリ判定用秘密鍵153を検索サーバ記憶部390から取得する。
 S530の後、S531に進む。
 S531において、カテゴリ判定部340は、S510で受信された検索クエリ170から索引用タグ172を取得し、取得した索引用タグ172をS530で取得したカテゴリ判定用秘密鍵153を用いて復号する。以下、索引用タグ172を復号した値を索引用タグ172の復号値という。
 S531の後、S532に進む。
 S532において、カテゴリ判定部340は、S531で得られた索引用タグ172の復号値と検索サーバ記憶部390に記憶されている鍵判定値191とを比較する。
 索引用タグ172の復号値と鍵判定値191とが同じ値である場合(YES)、S540に進む。
 索引用タグ172の復号値と鍵判定値191とが異なる値である場合(NO)、S520に戻る。
 S540において、データ検索部332は、検索サーバ記憶部390に記憶されている秘密鍵対応表350(図9参照)を参照し、秘密鍵対応表350に示されている複数のカテゴリ別DB部391のうちS530で選択したカテゴリ判定用秘密鍵153に対応付けられているカテゴリ別DB部391を検索対象として選択する。
 そして、データ検索部332は、S510で受信された検索クエリ170から検索用トラップドア171を取得し、取得した検索用トラップドア171を用いて検索可能公開鍵暗号方式の検索アルゴリズムによって検索対象のカテゴリ別DB部391を検索する。
 例えば、データ検索部332は以下のように検索する。
 データ検索部332は、検索対象のカテゴリ別DB部391からシステム暗号文230を一つずつ選択し、選択したシステム暗号文230からキーワード暗号文232を取得する。
 データ検索部332は、キーワード暗号文232と検索用トラップドア171とを入力データにして検索可能公開鍵暗号方式の検索アルゴリズム(検索プログラム)を実行する。
 データ検索部332は、検索アルゴリズムの実行結果に基づいて、キーワード暗号文232へ暗号化する前のデータキーワードと検索用トラップドア171へ暗号化する前の検索キーワードとが一致するか否かを判定する。キーワード暗号文232のデータキーワードと検索用トラップドア171の検索キーワードとが一致する場合、そのキーワード暗号文232と共にシステム暗号文230に含まれているデータ暗号文231が検索処理でヒットしたデータ暗号文231である。
 S540の後、S550に進む。
 S521において、データ検索部332は、S510で受信された検索クエリ170から検索用トラップドア171を取得し、取得した検索用トラップドア171を用いて検索可能公開鍵暗号方式の検索アルゴリズムによって未分類DB部392を検索する。つまり、データ検索部332はカテゴリ別DB部391の代わりに未分類DB部392を検索対象にして検索処理を行う。検索方法はS540と同様である。
 S521の後、S550に進む。
 S550において、検索結果送信部333は、S540またはS521の検索処理でヒットしたデータ暗号文231を含んだ検索結果をデータ検索端末100へ送信する。
 S550により、データ検索処理は終了する。
 図14に示したデータ検索処理により、データ検索サーバ300は、検索者が指定したカテゴリ用のカテゴリ別DB部391(または未分類DB部392)を検索対象にして検索可能公開鍵暗号方式で検索を行うことができる。つまり、データ検索サーバ300は、データと検索キーワードと検索対象のカテゴリとを秘匿にしたままキーワード検索を行うことができる。また、データ検索サーバ300は、検索者が指定したカテゴリ用のカテゴリ別DB部391(または未分類DB部392)を検索対象にして検索を行うことにより、全てのデータ暗号文231を検索する場合に比べて検索時間を短縮させることができる。
 図15は、実施の形態1におけるデータ検索端末100のカテゴリ登録要求処理を示すフローチャートである。
 実施の形態1におけるデータ検索端末100のカテゴリ登録要求処理について、図15に基づいて説明する。
 S601において、検索者は、未分類のシステム暗号文230を分類したいカテゴリを示すカテゴリ情報を入力装置を用いてデータ検索端末100のカテゴリ登録要求部130に対して入力する。つまり、カテゴリ登録要求部130は検索者に指定されたカテゴリ情報を入力装置から入力する。
 S601の後、S602に進む。
 S602において、カテゴリ登録要求部130は、検索端末記憶部190に記憶されている公開鍵対応表160(図4参照)を参照し、公開鍵対応表160に示されている複数のカテゴリ判定用秘密鍵153のうちS601で入力したカテゴリ情報が示すカテゴリに対応付けられているカテゴリ判定用秘密鍵153を選択する。
 S602の後、S603に進む。
 S603において、カテゴリ登録要求部130は、S602で選択したカテゴリ判定用秘密鍵153を検索端末記憶部190から取得し、取得したカテゴリ判定用秘密鍵153を含んだカテゴリ登録要求をデータ検索サーバ300へ送信する。
 S603により、カテゴリ登録要求処理は終了する。
 図16は、実施の形態1におけるデータ検索サーバ300のカテゴリ登録処理を示すフローチャートである。
 実施の形態1におけるデータ検索サーバ300のカテゴリ登録処理について、図16に基づいて説明する。
 S610において、カテゴリ用秘密鍵管理部310は、データ検索端末100から送信されるカテゴリ登録要求を受信する。カテゴリ登録要求はカテゴリ判定用秘密鍵153を含んだデータである。
 カテゴリ用秘密鍵管理部310は、受信したカテゴリ登録要求からカテゴリ判定用秘密鍵153を取得し、取得したカテゴリ判定用秘密鍵153を検索サーバ記憶部390に記憶する。
 S610の後、S620に進む。
 S620において、カテゴリ用秘密鍵管理部310は、新たにカテゴリ別DB部391を生成する。
 S620の後、S630に進む。
 S630において、カテゴリ用秘密鍵管理部310は、S610で取得したカテゴリ判定用秘密鍵153とS620で生成したカテゴリ別DB部391とを対応付けて秘密鍵対応表350(図9参照)に設定する。
 S630の後、S640に進む。
 S640において、カテゴリ用秘密鍵管理部310は、後述するS641で選択していない未選択のシステム暗号文230が未分類DB部392にあるか否かを判定する。
 未選択のシステム暗号文230が未分類DB部392にある場合(YES)、S641に進む。
 未選択のシステム暗号文230が未分類DB部392に無い場合(NO)、カテゴリ登録処理は終了する。
 S641において、カテゴリ用秘密鍵管理部310は、未分類DB部392から未選択のシステム暗号文230を1つ選択し、選択したシステム暗号文230を未分類DB部392から取得する。
 S641の後、S642に進む。
 S642において、カテゴリ用秘密鍵管理部310は、S641で選択したシステム暗号文230から索引用タグ233を取得し、取得した索引用タグ233をS610で取得したカテゴリ判定用秘密鍵153を用いて復号する。以下、索引用タグ233を復号した値を索引用タグ233の復号値という。
 S642の後、S643に進む。
 S643において、カテゴリ用秘密鍵管理部310は、S642で得られた索引用タグ233の復号値と検索サーバ記憶部390に記憶されている鍵判定値191とを比較する。
 索引用タグ233の復号値と鍵判定値191とが同じである場合(YES)、S644に進む。
 索引用タグ233の復号値と鍵判定値191とが異なる場合(NO)、S640に戻る。
 S644において、カテゴリ用秘密鍵管理部310は、S641で選択したシステム暗号文230を未分類DB部392からS620で生成した新たなカテゴリ別DB部391へ移動する。
 S644の後、S640に戻る。
 図15に示したカテゴリ登録要求処理と図16に示したカテゴリ登録処理とにより、新たなカテゴリ用のカテゴリ別DB部391が生成され、生成されたカテゴリ別DB部391には新たなカテゴリに分類されるシステム暗号文230が記憶される。
 図17は、実施の形態1におけるデータ検索システム900のハードウェア資源の一例を示す図である。
 図17において、データ検索端末100、データ登録端末200およびデータ検索サーバ300(いずれもコンピュータの一例)は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905、ディスプレイ911(表示装置)、キーボード912、マウス913、ドライブ914、磁気ディスク装置920などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ914は、FD(Flexible Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)などの記憶媒体を読み書きする装置である。
 ROM903、RAM904、磁気ディスク装置920およびドライブ914は記憶装置の一例である。キーボード912、マウス913および通信ボード905は入力装置の一例である。ディスプレイ911および通信ボード905は出力装置の一例である。
 通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
 磁気ディスク装置920には、OS921(オペレーティングシステム)、プログラム群922、ファイル群923が記憶されている。
 プログラム群922には、実施の形態において「~部」として説明する機能を実行するプログラムが含まれる。プログラム(例えば、データ検索プログラム、データ登録プログラム、情報処理プログラム)は、CPU901により読み出され実行される。すなわち、プログラムは、「~部」としてコンピュータを機能させるものであり、また「~部」の手順や方法をコンピュータに実行させるものである。
 ファイル群923には、実施の形態において説明する「~部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
 実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
 フローチャートなどに基づいて説明する実施の形態の処理はCPU901、記憶装置、入力装置、出力装置などのハードウェアを用いて実行される。
 実施の形態において「~部」として説明するものは「~回路」、「~装置」、「~機器」であってもよく、また「~ステップ」、「~手順」、「~処理」であってもよい。すなわち、「~部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
 実施の形態1におけるデータ検索システム900は、例えば、以下のような特徴を有する。
(1)暗号文(システム暗号文230)と検索クエリとの両方に索引用タグを付加する(図5、7参照)。
(2)データ検索サーバ300に秘密鍵(カテゴリ判定用秘密鍵153)を開示することによって、秘密鍵に対応した特定のデータを全体から分離する。
(3)検索クエリ内の索引用タグを秘密鍵で復号し、その結果を見て検索対象を限定する(図14参照)。
(4)上記の(1)から(3)を組み合わせることにより、全件検索を回避し、検索を高速化する。
 実施の形態1におけるデータ検索システム900により、例えば、以下のような効果を奏することができる。
(1)検索可能公開鍵暗号において検索の高速化を実現できる、という効果がある。
(2)特定のデータ(例えば、あるカテゴリに該当するデータ)に狙いを定めて検索を高速化することができる、という効果がある。
(3)検索者が検索の高速化を行うカテゴリを適応的に増加させることができる、という効果がある(図15、16参照)。
(4)索引用タグの作成に使用する公開鍵暗号としてElGamal暗号やCramer-Shoup暗号などの鍵匿名性を有する公開鍵暗号方式を利用することにより、暗号文のカテゴリ情報をデータ検索サーバ300に秘匿したままで検索を高速化できる、という効果がある。また、鍵匿名性を有さない公開鍵暗号方式を利用することにより、公開鍵暗号方式の選択肢を増やすことができる、という効果がある。
(5)既存の検索可能公開鍵暗号に対してカテゴリ判定用鍵ペア群(図3参照)や索引用タグ(図5、7参照)を増設する(アドオンする)構成をとっているため、既存の検索可能公開鍵暗号を大きく変更することなく実装することができる、という効果がある。これにより、実装コストを低減させることができる、という効果がある。
 実施の形態1におけるデータ検索システム900は以下のような構成にしてもよい。
(1)システム暗号文230に複数の索引用タグ233を含めてもよい。この場合、登録者は複数のカテゴリ情報をデータ登録端末200に指定(入力)する。そして、データ登録端末200は指定されたカテゴリ別に索引用タグ233を生成し、生成した複数の索引用タグ233をシステム暗号文230に設定する。また、データ検索サーバ300は、システム暗号文230に含まれる複数の索引用タグ233に対応する複数のカテゴリ別DB部391にシステム暗号文230を記憶する。これにより、複数のカテゴリにまたがるデータに対応することができる。
(2)実施の形態1では索引用タグの平文(鍵判定値191)として定数(例えば「1」)を用いる例を示したが、検索対象のデータやキーワードに依存した平文を用いてもよい。
 例えば、キーワード暗号文232(図7参照)のハッシュ値を索引用タグの平文として用いてもよい。このようにすれば、キーワード暗号文232と索引用タグとの間に対応関係が生じるため、通信路上におけるデータの取り替え攻撃に耐性を持たせることができる。この場合、データ検索端末100、データ登録端末200およびデータ検索サーバ300は鍵判定値191を使用する代わりにキーワード暗号文232のハッシュ値を算出して使用する。
(3)複数の鍵判定値191を用いてカテゴリの分類を詳細化してもよい。カテゴリの分類を詳細化することにより、より高速な検索を実現することができる。
 例えば、データ検索システム900は以下のように動作する。
 データ検索端末100は図18に示すような鍵判定値対応表192を生成し、生成した鍵判定値対応表192をデータ登録端末200およびデータ検索サーバ300に提供する。
 データ検索端末100およびデータ登録端末200は利用者からカテゴリの大分類と小分類とを指定され、指定されたカテゴリの大分類と小分類とに対応付けられた鍵判定値191を使用する。
 データ検索サーバ300は、カテゴリの大分類毎(カテゴリ判定用秘密鍵153毎)にカテゴリ別DB部391を生成し、カテゴリ別DB部391内でカテゴリの小分類別にシステム暗号文230を記憶する。例えば、データ検索サーバ300は、索引用タグ233の復号値が「11」であるシステム暗号文230と索引用タグ233の復号値が「12」であるシステム暗号文230とをカテゴリ別DB部391内で別々に管理する。
 図18は、実施の形態1における鍵判定値対応表192を示す図である。図18に示すように、鍵判定値対応表192は大分類のカテゴリと小分類のカテゴリと鍵判定値191とを対応付けるデータである。カテゴリの分類は3階層以上(例えば、大分類、中分類、小分類)であっても構わない。
(4)実施の形態1ではカテゴリを適応的に増加させる方法(図15、16参照)を示したが、カテゴリを適応的に減少させてもよい。
 例えば、検索者はデータ検索端末100を操作してカテゴリの削除要求をデータ検索サーバ300へ送信する。カテゴリの削除要求は削除したいカテゴリのカテゴリ判定用秘密鍵153を指定するデータである。データ検索サーバ300は削除要求に従ってカテゴリ判定用秘密鍵153を削除し、カテゴリ判定用秘密鍵153に対応付けられたカテゴリ別DB部391からシステム暗号文230を取り出して未分類DB部392へ移動し、カテゴリ別DB部391を削除する。
(5)実施の形態1ではカテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との鍵ペアを所定数だけ生成する例を示したが、カテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との鍵ペアを必要に応じて追加してもよい。
 例えば、検索者はカテゴリを追加したい場合に追加のカテゴリ情報をデータ検索端末100に入力する。この場合、データ検索端末100は追加のカテゴリ情報に基づいて新たにカテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153との鍵ペアを生成し、公開鍵対応表160を更新し、カテゴリ判定用公開鍵143とカテゴリ判定用秘密鍵153と公開鍵対応表160とをセットアップ処理と同様にデータ登録端末200およびデータ検索サーバ300に提供する。
(6)実施の形態1ではデータ(データ暗号文231)やキーワード(キーワード暗号文232)の内容に関するカテゴリ(例えば「特許」「意匠」)によってシステム暗号文230を分類する例を示した。但し、データのその他の属性(作成日付、データサイズなど)によってシステム暗号文230を分類しても構わない。これにより、データの属性(種類)に応じてシステム暗号文230を管理し、検索を高速化することができる。
 図19は、実施の形態1における公開鍵対応表160の別例を示す図である。
 例えば、データ検索端末100は図19に示すような公開鍵対応表160を生成し、生成した公開鍵対応表160をデータ登録端末200に提供する。データ登録端末200は、公開鍵対応表160に示される複数のカテゴリ判定用公開鍵143のうちシステム暗号文230の作成日に対応付けられているカテゴリ判定用公開鍵143を用いてシステム暗号文230の索引用タグ233を生成する。検索者は、取得したいデータの作成日をデータ検索端末100に入力する。そして、データ検索端末100は、公開鍵対応表160に示される複数のカテゴリ判定用公開鍵143のうち入力されたデータの作成日に対応付けられているカテゴリ判定用公開鍵143を用いて検索クエリ170の索引用タグ172を生成する。
(7)公開鍵暗号方式(または検索可能公開鍵暗号)の代わりに他の暗号方式(例えば、共通鍵暗号方式)を用いても構わない。また、データやキーワードを必要に応じて暗号化せずに登録しても構わない。
 実施の形態1において、例えば、以下のようなデータ検索システム900について説明した。
 データ検索装置(データ検索サーバ300)は、データ記憶部と、鍵判定情報記憶部と、検索条件入力部と、データグループ選択部と、データ検索部と、検索結果出力部とを備える。
 データ記憶部(記憶装置)は、1つ以上のデータ(システム暗号文230)を含んだ複数のデータグループ(カテゴリ別DB部391)と暗号化された情報を復号する複数の復号鍵(カテゴリ判定用秘密鍵153)とを対応付けて記憶する。
 鍵判定情報記憶部(検索サーバ記憶部390)は、復号鍵を判定するための鍵判定情報(鍵判定値191)を記憶する。
 検索条件入力部(検索要求受信部331)は、データを検索するための検索条件(検索用トラップドア171)と、所定の情報(鍵判定値191)を暗号化した暗号化情報(索引用タグ172)とを入力する。
 データグループ選択部(カテゴリ判定部340)は、検索条件入力部が入力した暗号化情報をデータ記憶部に記憶される複数の復号鍵それぞれを用いて復号する。データグループ選択部は、複数の復号鍵のうち暗号化情報を鍵判定情報と同じ情報に復号した復号鍵を選択する。データグループ選択部は、データ記憶部に記憶される複数のデータグループのうち選択した復号鍵に対応付けられたデータグループを検索先グループとして選択する。
 データ検索部(データ検索部332)は、データグループ選択部によって選択された検索先グループに含まれる1つ以上のデータから検索条件入力部が入力した検索条件を満たすデータを検索結果のデータとして取得する。
 検索結果出力部(検索結果送信部333)は、データ検索部によって取得された検索結果のデータを出力する。
 データ検索装置は、さらに、新規データ入力部と新規データ登録部とを備える。
 新規データ入力部(登録要求受信部321)は、新規データ(データ暗号文231)と所定の情報(鍵判定値191)を暗号化した暗号化タグ(索引用タグ233)とを入力する。
 新規データ登録部(データ登録部322)は、新規データ入力部が入力した新規データを複数のデータグループのうちデータグループ選択部によって選択される登録先グループに追加する。
 データグループ選択部は、新規データ入力部が入力した暗号化タグを複数の復号鍵それぞれを用いて復号する。データグループ選択部は、複数の復号鍵のうち暗号化タグを鍵判定情報と同じ情報に復号した復号鍵を選択し、複数のデータグループのうち選択した復号鍵に対応付けられたデータグループを登録先グループとして選択する。
 データ記憶部(記憶装置)は、さらに、複数のデータと所定の情報を暗号化した複数の暗号化タグとを対応付けて含んだデータグループとして未分類グループ(未分類DB部392)を記憶する。
 データ検索装置は、さらに、追加復号鍵入力部とデータグループ登録部とを備える。
 追加復号鍵入力部(カテゴリ用秘密鍵管理部310)は、新たな復号鍵(カテゴリ判定用秘密鍵153)を追加復号鍵として入力する。
 データグループ登録部(カテゴリ用秘密鍵管理部310)は、未分類グループに含まれる複数の暗号化タグを追加復号鍵入力部が入力した追加復号鍵を用いて復号する。データグループ登録部は、複数の暗号化タグのうち鍵判定情報と同じ情報に復号された暗号化タグを選択する。データグループ登録部は、未分類グループに含まれる複数のデータから、選択した暗号化タグに対応付けられたデータを抽出し、複数のデータグループに加える新たなデータグループとして、抽出したデータを含んだ追加グループを生成する。データグループ登録部は、生成した追加グループと追加復号鍵とを対応付けてデータ記憶部に記憶する。
 データ登録装置(データ登録端末200)は、データ生成部と、分類情報入力部と、暗号化タグ生成部と、データ登録要求部とを備える。
 データ生成部(データ暗号文生成部222)はデータ(データ暗号文231)を生成する。
 分類情報入力部(登録情報入力部221)は、データ生成部によって生成されたデータの分類を示す分類情報を入力する。
 暗号化タグ生成部(索引用タグ生成部224)は、分類情報入力部が入力した分類情報に基づいて所定の情報(鍵判定値191)を暗号化することによって暗号化タグ(索引用タグ233)を生成する。
 データ登録要求部(データ登録要求部225)は、データ生成部が生成したデータと暗号化タグ生成部が生成した暗号化タグとをデータ検索装置(データ検索サーバ300)へ送信する。これにより、データ登録要求部は、分類情報が示す分類のデータグループにデータを検索対象のデータとして追加する処理をデータ検索装置に実行させる。
 データ登録装置は、さらに、複数の暗号化鍵(カテゴリ判定用公開鍵143)と複数の分類情報(カテゴリ情報)とを対応付けて記憶する暗号化鍵記憶部(登録端末記憶部290)を備える。
 暗号化タグ生成部は、暗号化鍵記憶部に記憶される複数の暗号化鍵のうち分類情報入力部が入力した分類情報と同じ分類情報に対応付けられた暗号化鍵を選択し、選択した暗号化鍵を用いて所定の情報を暗号化して暗号化タグを生成する。
 情報処理装置(データ検索端末100)は、検索条件入力部と、暗号化タグ生成部と、データ検索要求部とを備える。
 検索条件入力部(検索キーワード入力部121)は、データ(データ暗号文231)を検索するための検索条件(検索キーワード)とデータの分類を示す分類情報(カテゴリ情報)とを入力する。
 暗号化タグ生成部(検索クエリ生成部122)は、検索条件入力部が入力した分類情報に基づいて所定の情報(鍵判定値191)を暗号化することによって暗号化タグ(索引用タグ172)を生成する。
 データ検索要求部(検索要求部123)は、検索条件入力部が入力した検索条件の情報(検索用トラップドア171)と暗号化タグ生成部によって生成された暗号化タグとをデータ検索装置(データ検索サーバ300)へ送信する。データ検索要求部は、分類情報が示す分類のデータグループに含まれるデータのうち検索条件を満たすデータを検索結果のデータとしてデータ検索装置から受信する。
 情報処理装置は、さらに、複数の暗号化鍵(カテゴリ判定用公開鍵143)と複数の分類情報とを対応付けて記憶する暗号化鍵記憶部(検索端末記憶部190)を備える。
 暗号化タグ生成部は、暗号化鍵記憶部に記憶される複数の暗号化鍵のうち検索条件入力部が入力した分類情報と同じ分類情報に対応付けられた暗号化鍵を選択し、選択した暗号化鍵を用いて所定の情報を暗号化して暗号化タグを生成する。
 実施の形態2.
 公開鍵暗号の代わりにIDベース暗号(IBE:Identity-Based Encryption)を用いる形態について説明する。
 IDベース暗号とは、ユーザ名、IPアドレス、メールアドレスなどの識別子(ID)を公開鍵として用いる暗号方式である。
 以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
 データ検索システム900の構成、およびデータ検索端末100とデータ登録端末200とデータ検索サーバ300との機能構成は、実施の形態1と同様である(図1、2、6、8参照)。
 但し、データ検索システム900は、以下の点で実施の形態1と異なる。
 データ検索システム900は、公開鍵暗号の代わりにIDベース暗号を用いるため、実施の形態1で説明した公開鍵対応表160(図4参照)が不要である。このため、データ検索端末100の公開鍵対応表生成部112も不要である。処理の詳細については後述する。
 図20は、実施の形態2におけるシステム公開鍵140とシステム秘密鍵150とを示す図である。
 実施の形態2におけるシステム公開鍵140とシステム秘密鍵150とについて、図20に基づいて説明する。
 システム公開鍵140は、実施の形態1(図3参照)で説明した複数のカテゴリ判定用公開鍵143の代わりに、一つのIBEマスタ公開鍵144を有する。IBEマスタ公開鍵144はIDベース暗号のマスタ公開鍵である。
 システム秘密鍵150は、実施の形態1(図3参照)で説明した複数のカテゴリ判定用秘密鍵153の代わりに、一つのIBEマスタ秘密鍵154を有する。IBEマスタ秘密鍵154はIDベース暗号のマスタ秘密鍵である。
 図21は、実施の形態2におけるデータ検索端末100のセットアップ処理を示すフローチャートである。
 実施の形態2におけるデータ検索端末100のセットアップ処理について、図21に基づいて説明する。
 以下に説明するS110BからS131Bは、実施の形態1(図10参照)で説明したS110からS131に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
 S110Bにおいて、システム鍵生成部111はシステム公開鍵140とシステム秘密鍵150とを生成する。
 図20に示したように、システム公開鍵140はIBEマスタ公開鍵144を含み、システム秘密鍵150はIBEマスタ秘密鍵154を含む。
 システム鍵生成部111は、IDベース暗号方式のマスタ鍵生成アルゴリズムを実行してIBEマスタ公開鍵144とIBEマスタ秘密鍵154との鍵ペアを生成する。
 例えば、システム鍵生成部111は、Boneh-Franklin IDベース暗号(BF-IBE)(非特許文献4参照)やBoyen-Waters IDベース暗号(BW-IBE)(非特許文献5参照)など、匿名性(anonymity)を有するIDベース暗号方式を使用する。匿名性とは、暗号文を見てもどのIDを公開鍵として用いたかわからない、という性質である(非特許文献6参照)。
 但し、システム鍵生成部111は、匿名性を有さないIDベース暗号方式(例えば、Boneh-Boyen IDベース暗号(BB-IBE))を使用しても構わない。
 S110Bの後、S130Bに進む。
 S130Bにおいて、鍵情報公開部113は、実施の形態1のS130と同様にシステム公開鍵140と鍵判定値191とIDベース暗号の公開パラメータとをデータ登録端末200に対して公開する。但し、公開鍵対応表160は不要である。
 S130Bの後、S131Bに進む。
 S131Bにおいて、鍵情報公開部113は、IBEマスタ秘密鍵154とカテゴリ情報とを用いてIDベース暗号のユーザ秘密鍵生成アルゴリズムを実行し、カテゴリ別にユーザ秘密鍵を生成する。カテゴリ情報は利用者がデータ検索端末100に対して指定(入力)する。
 鍵情報公開部113は、実施の形態1のS131と同様にカテゴリ別のユーザ秘密鍵(カテゴリ判定用秘密鍵153の代わり)と鍵判定値191とIDベース暗号の公開パラメータとをデータ検索サーバ300に登録する。データ検索サーバ300は、カテゴリ別のユーザ秘密鍵とカテゴリ別DB部391とを対応付ける秘密鍵対応表350を生成する。
 S131Bにより、セットアップ処理は終了する。
 図22は、実施の形態2におけるデータ登録端末200のデータ登録要求処理を示すフローチャートである。
 実施の形態2におけるデータ登録端末200のデータ登録要求処理について、図22に基づいて説明する。
 以下に説明するS210からS251は、実施の形態1(図11参照)で説明したS210からS251に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
 S210からS230は実施の形態1と同じである。S230の後、S241Bに進む。
 S241Bにおいて、索引用タグ生成部224は、IBEマスタ公開鍵144とカテゴリ情報とを用いてIDベース暗号の暗号化アルゴリズムを実行し、鍵判定値191を暗号化した索引用タグ233を生成する。つまり、索引用タグ生成部224はカテゴリ情報をパラメータとして、IBEマスタ公開鍵144を用いて鍵判定値191を暗号化する。
 S241Bの後、S250に進む。
 S250およびS251は実施の形態1と同じである。S251により、データ登録要求処理は終了する。
 図23は、実施の形態2におけるデータ検索サーバ300のデータ登録処理を示すフローチャートである。
 実施の形態2におけるデータ検索サーバ300のデータ登録処理について、図23に基づいて説明する。
 以下に説明するS310からS340Bは、実施の形態1(図12参照)で説明したS310からS340に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
 S310において、登録要求受信部321はデータ登録端末200からシステム暗号文230の登録要求を受信する。
 S310の後、S320Bに進む。
 S320Bにおいて、カテゴリ判定部340は、後述するS330Bで選択していない未選択のカテゴリ別のユーザ秘密鍵が検索サーバ記憶部390に有るか否かを判定する。
 未選択のカテゴリ別のユーザ秘密鍵が有る場合(YES)、S330Bに進む。
 未選択のカテゴリ別のユーザ秘密鍵が無い場合(NO)、S321に進む。S321において、データ登録部322はシステム暗号文230を未分類DB部392に記憶する。
 S330Bにおいて、カテゴリ判定部340は、検索サーバ記憶部390から未選択のカテゴリ別のユーザ秘密鍵を一つ選択する。
 S330Bの後、S331Bに進む。
 S331Bにおいて、カテゴリ判定部340は、S330Bで選択したカテゴリ別のユーザ秘密鍵を用いてシステム暗号文230に含まれる索引用タグ233を復号する。
 S331Bの後、S332に進む。
 S332において、カテゴリ判定部340は、鍵判定値191とS331Bで得られた索引用タグ233の復号値とを比較する。
 鍵判定値191と索引用タグ233の復号値とが同じ値である場合(YES)、S340Bに進む。
 鍵判定値191と索引用タグ233の復号値とが異なる値である場合(NO)、S320Bに戻る。
 S340Bにおいて、データ登録部322は、S330Bで選択したカテゴリ別のユーザ秘密鍵に対応するカテゴリ別DB部391にシステム暗号文230を記憶する。
 S340Bにより、データ登録処理は終了する。
 図24は、実施の形態2におけるデータ検索端末100のデータ検索要求処理を示すフローチャートである。
 実施の形態2におけるデータ検索端末100のデータ検索要求処理について、図24に基づいて説明する。
 以下に説明するS410からS441は、実施の形態1(図13参照)で説明したS410からS441に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
 S410およびS420は実施の形態1と同じである。S420の後、S422Bに進む。
 S422Bにおいて、検索クエリ生成部122は、IBEマスタ公開鍵144とカテゴリ情報とを用いてIDベース暗号の暗号化アルゴリズムを実行し、鍵判定値191を暗号化した索引用タグ172を生成する。つまり、検索クエリ生成部122はカテゴリ情報をパラメータとして、IBEマスタ公開鍵144を用いて鍵判定値191を暗号化する。
 S422Bの後、S423に進む。
 S423からS441は実施の形態1と同じである。S441により、データ検索要求処理は終了する。
 図25は、実施の形態2におけるデータ検索サーバ300のデータ検索処理を示すフローチャートである。
 実施の形態2におけるデータ検索サーバ300のデータ検索処理について、図25に基づいて説明する。
 以下に説明するS510からS550は、実施の形態1(図14参照)で説明したS510からS550に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
 S510において、検索要求受信部331は、検索用トラップドア171と索引用タグ172とを含んだ検索クエリ170をデータ検索端末100から受信する。
 S510の後、S520Bに進む。
 S520Bにおいて、カテゴリ判定部340は、後述するS530Bで選択していない未選択のカテゴリ別のユーザ秘密鍵が検索サーバ記憶部390にあるか否かを判定する。
 未選択のカテゴリ別のユーザ秘密鍵が有る場合(YES)、S530Bに進む。
 未選択のカテゴリ別のユーザ秘密鍵が無い場合(NO)、S521に進む。S521において、データ検索部332は、検索用トラップドア171を用いて検索可能公開鍵暗号方式の検索アルゴリズムにより未分類DB部392を検索する。
 S530Bにおいて、カテゴリ判定部340は、検索サーバ記憶部390から未選択のカテゴリ別のユーザ秘密鍵を一つ選択する。
 S530Bの後、S531Bに進む。
 S531Bにおいて、カテゴリ判定部340は、S530Bで選択したカテゴリ別のユーザ秘密鍵を用いて索引用タグ172を復号する。
 S531Bの後、S532に進む。
 S532において、カテゴリ判定部340は、鍵判定値191とS531Bで得られた索引用タグ172の復号値とを比較する。
 鍵判定値191と索引用タグ172の復号値とが同じ値である場合(YES)、S540Bに進む。
 鍵判定値191と索引用タグ172の復号値とが異なる値である場合(NO)、S520Bに戻る。
 S540Bにおいて、データ検索部332は、S530Bで選択したカテゴリ別のユーザ秘密鍵に対応するカテゴリ別DB部391を、検索用トラップドア171を用いて検索可能暗号方式の検索アルゴリズムにより検索する。
 S540Bの後、S550に進む。
 S550において、検索結果送信部333は、S540BまたはS521の検索処理でヒットしたデータ暗号文231を含んだ検索結果をデータ検索端末100へ送信する。
 S550により、データ検索処理は終了する。
 図26は、実施の形態2におけるデータ検索端末100のカテゴリ登録要求処理を示すフローチャートである。
 実施の形態2におけるデータ検索端末100のカテゴリ登録要求処理について、図26に基づいて説明する。
 以下に説明するS601からS603Bは、実施の形態1(図15参照)で説明したS601からS603に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
 S601において、カテゴリ登録要求部130は検索者が指定したカテゴリ情報を入力する。
 S601の後、S602Bに進む。
 S602Bにおいて、カテゴリ登録要求部130は、IBEマスタ秘密鍵154とカテゴリ情報とを用いてIDベース暗号のユーザ秘密鍵生成アルゴリズムを実行し、カテゴリ別のユーザ秘密鍵を生成する。
 S602Bの後、S603Bに進む。
 S603Bにおいて、カテゴリ登録要求部130は、S602Bで生成したカテゴリ別のユーザ秘密鍵を含んだカテゴリ登録要求をデータ検索サーバ300へ送信する。
 S603Bにより、カテゴリ登録要求処理は終了する。
 図27は、実施の形態2におけるデータ検索サーバ300のカテゴリ登録処理を示すフローチャートである。
 実施の形態2におけるデータ検索サーバ300のカテゴリ登録処理について、図27に基づいて説明する。
 以下に説明するS610BからS644は、実施の形態1(図16参照)で説明したS610からS644に対応する処理である。実施の形態1と一部が異なる処理には末尾に「B」を付記する。
 S610Bにおいて、カテゴリ用秘密鍵管理部310は、カテゴリ別のユーザ秘密鍵を含んだカテゴリ登録要求をデータ検索端末100から受信する。
 S610Bの後、S620に進む。
 S620において、カテゴリ用秘密鍵管理部310は新たなカテゴリ別DB部391を生成する。
 S620の後、S630Bに進む。
 S630Bにおいて、カテゴリ用秘密鍵管理部310は、秘密鍵対応表350にカテゴリ別のユーザ秘密鍵と新たなカテゴリ別DB部391との対応関係を設定する。
 S630Bの後、S640に進む。
 S640において、カテゴリ用秘密鍵管理部310は、後述するS641で選択していない未選択のシステム暗号文230が有るか否かを判定する。
 未選択のシステム暗号文230が有る場合(YES)、S641に進む。
 未選択のシステム暗号文230が無い場合(NO)、カテゴリ登録処理は終了する。
 S641において、カテゴリ用秘密鍵管理部310は、登録端末記憶部290から未選択のシステム暗号文230を一つ選択する。
 S641の後、S642Bに進む。
 S642Bにおいて、カテゴリ用秘密鍵管理部310は、カテゴリ別のユーザ秘密鍵を用いて索引用タグ233を復号する。
 S642Bの後、S643に進む。
 S643において、カテゴリ用秘密鍵管理部310は、鍵判定値191とS642Bで得られた索引用タグ233の復号値とを比較する。
 鍵判定値191と索引用タグ233の復号値とが同じ値である場合(YES)、S644に進む。
 鍵判定値191と索引用タグ233の復号値とが異なる値である場合(NO)、S640に戻る。
 S644において、カテゴリ用秘密鍵管理部310は、S641で選択したシステム暗号文230を未分類DB部392から新たなカテゴリ別DB部391へ移動する。
 S644の後、S640に戻る。
 実施の形態2において、実施の形態1と同様に公開鍵対応表160を用いても構わない。この場合、データ検索端末100およびデータ登録端末200は以下のように動作する。
 図28は、実施の形態2における公開鍵対応表160を示す図である。図28に示すように、公開鍵対応表160は、カテゴリ判定用公開鍵として用いるIDとカテゴリとを対応付けるデータである。
 データ検索端末100およびデータ登録端末200は、カテゴリ情報を用いてカテゴリ別のユーザ公開鍵を生成する代わりに、公開鍵対応表160に示される複数のIDのうちカテゴリ情報が示すカテゴリに対応するIDを用いてカテゴリ別のユーザ公開鍵を生成する。
 実施の形態2におけるデータ検索システム900により、例えば、以下のような効果を奏することができる。
(1)実施の形態1と同様な効果を得ることができる。特に、検索可能公開鍵暗号において検索の高速化を実現することができる。また、匿名性を有するIDベース暗号を用いることにより暗号文のカテゴリ情報を秘匿することができる。
(2)公開鍵対応表が不要なため、データ登録端末200は公開鍵対応表を参照することなく直ちに索引用タグ233を生成することができる。但し、公開鍵対応表を用いても構わない。
(3)IBEマスタ公開鍵144およびIBEマスタ秘密鍵154を用いることにより、カテゴリ数の増加や減少に直ちに対応することができる。
 実施の形態3.
 IDベース暗号の代わりに関数型暗号(FE:Functional Encryption)を用いる形態について説明する。
 関数型暗号とは、パラメータxを公開鍵として用いて、ユーザ秘密鍵を生成する際にパラメータyを用いる暗号方式である。パラメータxとパラメータyとが所定の関係R(x、y)を満たす場合に暗号文を復号することができる。
 パラメータx、パラメータyおよび関係R(x,y)には様々な種類がある。例えば、属性秘匿性を有する関数型暗号の場合、xおよびyは数値ベクトルであり、関係Rはxとyとの内積値が0となる関係であることが一般的である。このようなx、y、R(x,y)を内積述語と呼ぶ。例えば、x=(1,34,5)、y=(-29, 1, -1)のとき、xとyの内積値は0になるので、このxおよびyは関係R(x,y)を満たすことになる。
 属性秘匿性とは、暗号文を見てもどの属性を用いて暗号化したかわからない、という性質である(非特許文献8参照)。Katz-Sahai-Waters内積述語暗号(KSW-IPE)(非特許文献7参照)や岡本-高島内積述語暗号(OT-IPE)(非特許文献8参照)は、属性秘匿性を有する関数型暗号方式の一例である。Sahai-WatersファジイIDベース暗号(SW-FIDE)は属性秘匿性を有さない関数型暗号の一例である。
 以下、実施の形態1、2と異なる事項について主に説明する。説明を省略する事項については実施の形態1、2と同様である。
 データ検索システム900の構成、およびデータ検索端末100とデータ登録端末200とデータ検索サーバ300との機能構成は、実施の形態1と同様である(図1、2、6、8参照)。
 但し、データ検索システム900は、以下の点で実施の形態1、2と異なる。
 データ検索システム900は、関数型暗号を用いるため、IDベース暗号を用いる場合(実施の形態2参照)と同様に公開鍵対応表160が不要である。このため、データ検索端末100の公開鍵対応表生成部112も不要である。但し、実施の形態2(図28参照)と同様にパラメータx(IDの代わり)とカテゴリとを対応付ける公開鍵対応表160を用いても構わない。
 図29は、実施の形態3におけるシステム公開鍵140とシステム秘密鍵150とを示す図である。
 実施の形態3におけるシステム公開鍵140とシステム秘密鍵150とについて、図29に基づいて説明する。
 システム公開鍵140は、実施の形態1(図3参照)で説明した複数のカテゴリ判定用公開鍵143の代わりに、一つのFEマスタ公開鍵145を有する。FEマスタ公開鍵145は関数型暗号のマスタ公開鍵である。
 システム秘密鍵150は、実施の形態1(図3参照)で説明した複数のカテゴリ判定用秘密鍵153の代わりに、一つのFEマスタ秘密鍵155を有する。FEマスタ秘密鍵155は関数型暗号のマスタ秘密鍵である。
 データ検索端末100のセットアップ処理は実施の形態2と同様である(図21参照)。
 但し、システム鍵生成部111はIBEマスタ公開鍵144の代わりに関数型暗号のマスタ公開鍵を含んだシステム公開鍵140を生成し、IBEマスタ秘密鍵154の代わりに関数型暗号のマスタ秘密鍵を含んだシステム秘密鍵150を生成する(S110B)。
 データ登録端末200のデータ登録要求処理は実施の形態2と同様である(図22参照)。
 但し、索引用タグ生成部224は、IBEマスタ公開鍵144の代わりに関数型暗号のマスタ公開鍵を用いて鍵判定値191を暗号化して索引用タグ233を生成する(S241B)。
 例えば、索引用タグ生成部224は、マスタ公開鍵「ベクトルx=(CN、1)」の「CN」にカテゴリ情報(カテゴリ名)を設定してユーザ公開鍵を生成し、生成したユーザ公開鍵を用いて鍵判定値191を暗号化して索引用タグ233を生成する。つまり、索引用タグ生成部224はカテゴリ情報を含んだパラメータxを公開鍵として用いて索引用タグ233を生成する。
 登録者は、関数型暗号の特性を活かして複雑な条件でカテゴリを指定してもよい。例えば、内積述語暗号を用いればAND条件またはOR条件を指定できることが知られている。また、属性秘匿性を有さない関数型暗号を用いればNOT条件を指定できることが知られている。索引用タグ生成部224は検索条件に応じた形式のベクトルxを公開鍵として用いる。
 データ検索サーバ300のデータ登録処理は実施の形態2と同様である(図23参照)。
 但し、カテゴリ別のユーザ秘密鍵はIDベース暗号ではなく関数型暗号のユーザ秘密鍵である。
 データ検索端末100のデータ検索要求処理は実施の形態2と同様である(図24参照)。
 但し、検索クエリ生成部122は、上記の索引用タグ生成部224と同様に、IBEマスタ公開鍵144の代わりに関数型暗号のマスタ公開鍵を用いて関数型暗号方式の暗号アルゴリズムを実行し、鍵判定値191を暗号化して索引用タグ172を生成する(S422B)。
 データ検索サーバ300のデータ検索処理は実施の形態2と同様である(図25参照)。
 但し、カテゴリ別のユーザ秘密鍵はIDベース暗号ではなく関数型暗号のユーザ秘密鍵である。
 データ検索端末100のカテゴリ登録要求処理は実施の形態2と同様である(図26参照)。
 但し、カテゴリ登録要求部130は、IBEマスタ秘密鍵154の代わりに関数型暗号のマスタ秘密鍵を用いてカテゴリ別のユーザ秘密鍵を生成する(S602B)。
 例えば、カテゴリ登録要求部130は、関数型暗号のマスタ秘密鍵とベクトルy=(-1、CN)とを入力にして関数型暗号方式のユーザ秘密鍵生成アルゴリズムを実行し、カテゴリ別のユーザ秘密鍵を生成する。CNはカテゴリ情報(カテゴリ名)である。つまり、索引用タグ生成部224はカテゴリ情報を含んだパラメータyを用いてカテゴリ別のユーザ秘密鍵を生成する。
 検索者は、関数型暗号の特性を活かして複雑な条件でカテゴリを指定してもよい。例えば、内積述語暗号を用いればAND条件またはOR条件を指定できることが知られている。また、属性秘匿性を有さない関数型暗号を用いればNOT条件を指定できることが知られている。この場合、カテゴリ登録要求部130は条件に応じた形式のベクトルyを用いる。
 データ検索サーバ300のカテゴリ登録処理は実施の形態2と同様である(図27参照)。
 但し、カテゴリ別のユーザ秘密鍵はIDベース暗号ではなく関数型暗号のユーザ秘密鍵である。
 実施の形態3におけるデータ検索システム900により、例えば、以下のような効果を奏することができる。
(1)実施の形態1、2と同様な効果を得ることができる。特に、検索可能公開鍵暗号において検索の高速化を実現することができる。また、属性秘匿性を有する関数型暗号を用いることにより暗号文のカテゴリ情報を秘匿することができる。
(2)IDベース暗号を用いた場合のカテゴリの条件(IDの一致)よりも柔軟な条件(AND条件、OR条件、NOT条件など)でカテゴリを指定することができる。
 100 データ検索端末、110 セットアップ処理部、111 システム鍵生成部、112 公開鍵対応表生成部、113 鍵情報公開部、120 検索要求処理部、121 検索キーワード入力部、122 検索クエリ生成部、123 検索要求部、124 検索結果出力部、130 カテゴリ登録要求部、140 システム公開鍵、141 データ用公開鍵、142 キーワード用公開鍵、143 カテゴリ判定用公開鍵、144 IBEマスタ公開鍵、150 システム秘密鍵、151 データ用秘密鍵、152 キーワード用秘密鍵、153 カテゴリ判定用秘密鍵、154 IBEマスタ秘密鍵、160,161 公開鍵対応表、170 検索クエリ、171 検索用トラップドア、172 索引用タグ、190 検索端末記憶部、191 鍵判定値、192 鍵判定値対応表、199 検索結果、200 データ登録端末、210 公開情報取得部、220 データ登録要求処理部、221 登録情報入力部、222 データ暗号文生成部、223 キーワード暗号文生成部、224 索引用タグ生成部、225 データ登録要求部、230 システム暗号文、231 データ暗号文、232 キーワード暗号文、233 索引用タグ、290 登録端末記憶部、300 データ検索サーバ、310 カテゴリ用秘密鍵管理部、320 データ登録処理部、321 登録要求受信部、322 データ登録部、330 データ検索処理部、331 検索要求受信部、332 データ検索部、333 検索結果送信部、340 カテゴリ判定部、350 秘密鍵対応表、390 検索サーバ記憶部、391 カテゴリ別DB部、392 未分類DB部、900 データ検索システム、901 CPU、902 バス、903 ROM、904 RAM、905 通信ボード、909 ネットワーク、911 ディスプレイ、912 キーボード、913 マウス、914 ドライブ、920 磁気ディスク装置、921 OS、922 プログラム群、923 ファイル群。

Claims (17)

  1.  1つ以上のデータを含んだ複数のデータグループと暗号化された情報を復号する複数の復号鍵とを対応付けて記憶するデータ記憶部と、
     復号鍵を判定するための鍵判定情報を記憶する鍵判定情報記憶部と、
     データを検索するための検索条件と、所定の情報を暗号化した暗号化情報とを入力する検索条件入力部と、
     前記検索条件入力部が入力した前記暗号化情報を前記データ記憶部に記憶される前記複数の復号鍵それぞれを用いて復号し、前記複数の復号鍵のうち前記暗号化情報を前記鍵判定情報と同じ情報に復号した復号鍵を選択し、前記データ記憶部に記憶される前記複数のデータグループのうち前記選択した復号鍵に対応付けられたデータグループを検索先グループとして選択するデータグループ選択部と、
     前記データグループ選択部によって選択された前記検索先グループに含まれる1つ以上のデータから前記検索条件入力部が入力した前記検索条件を満たすデータを検索結果のデータとして取得するデータ検索部と、
     前記データ検索部によって取得された前記検索結果のデータを出力する検索結果出力部と
    を備えることを特徴とするデータ検索装置。
  2.  前記データ検索装置は、さらに、
     新規データと所定の情報を暗号化した暗号化タグとを入力する新規データ入力部と、
     前記新規データ入力部が入力した前記新規データを前記複数のデータグループのうち前記データグループ選択部によって選択される登録先グループに追加する新規データ登録部と、を備え、
     前記データグループ選択部は、
     前記新規データ入力部が入力した前記暗号化タグを前記複数の復号鍵それぞれを用いて復号し、前記複数の復号鍵のうち前記暗号化タグを前記鍵判定情報と同じ情報に復号した復号鍵を選択し、前記複数のデータグループのうち前記選択した復号鍵に対応付けられたデータグループを前記登録先グループとして選択する
    ことを特徴とする請求項1記載のデータ検索装置。
  3.  前記データ記憶部は、さらに、複数のデータと所定の情報を暗号化した複数の暗号化タグとを対応付けて含んだデータグループとして未分類グループを記憶し、
     前記データ検索装置は、さらに、
     新たな復号鍵を追加復号鍵として入力する追加復号鍵入力部と、
     前記未分類グループに含まれる前記複数の暗号化タグを前記追加復号鍵入力部が入力した前記追加復号鍵を用いて復号し、前記複数の暗号化タグのうち前記鍵判定情報と同じ情報に復号された暗号化タグを選択し、前記未分類グループに含まれる前記複数のデータから前記選択した暗号化タグに対応付けられたデータを抽出し、前記複数のデータグループに加える新たなデータグループとして前記抽出したデータを含んだ追加グループを生成し、生成した前記追加グループと前記追加復号鍵とを対応付けて前記データ記憶部に記憶するデータグループ登録部と、を備える
    ことを特徴とする請求項1または請求項2記載のデータ検索装置。
  4.  1つ以上のデータを含んだ複数のデータグループと暗号化された情報を復号する複数の復号鍵とを対応付けて記憶するデータ記憶部と、復号鍵を判定するための鍵判定情報を記憶する鍵判定情報記憶部と、検索条件入力部と、データグループ選択部と、データ検索部と、検索結果出力部と、を備えるデータ検索装置を用いて実行するデータ検索方法であって、
     前記検索条件入力部が、データを検索するための検索条件と、所定の情報を暗号化した暗号化情報とを入力し、
     前記データグループ選択部が、前記検索条件入力部が入力した前記暗号化情報を前記データ記憶部に記憶される前記複数の復号鍵それぞれを用いて復号し、前記複数の復号鍵のうち前記暗号化情報を前記鍵判定情報と同じ情報に復号した復号鍵を選択し、前記データ記憶部に記憶される前記複数のデータグループのうち前記選択した復号鍵に対応付けられたデータグループを検索先グループとして選択し、
     前記データ検索部が、前記データグループ選択部によって選択された前記検索先グループに含まれる1つ以上のデータから前記検索条件入力部が入力した前記検索条件を満たすデータを検索結果のデータとして取得し、
     前記検索結果出力部が、前記データ検索部によって取得された前記検索結果のデータを出力する
    ことを特徴とするデータ検索方法。
  5.  請求項4記載のデータ検索方法をコンピュータに実行させるためのデータ検索プログラム。
  6.  データを生成するデータ生成部と、
     前記データ生成部によって生成されたデータの分類を示す分類情報を入力する分類情報入力部と、
     前記分類情報入力部が入力した前記分類情報に基づいて所定の情報を暗号化することによって暗号化タグを生成する暗号化タグ生成部と、
     前記データ生成部が生成した前記データと前記暗号化タグ生成部が生成した前記暗号化タグとをデータ検索装置へ送信することによって、前記分類情報が示す前記分類のデータグループに前記データを検索対象のデータとして追加する処理を前記データ検索装置に実行させるデータ登録要求部と
    を備えることを特徴とするデータ登録装置。
  7.  前記データ登録装置は、さらに、
     複数の暗号化鍵と複数の分類情報とを対応付けて記憶する暗号化鍵記憶部を備え、
     前記暗号化タグ生成部は、
     前記暗号化鍵記憶部に記憶される前記複数の暗号化鍵のうち前記分類情報入力部が入力した前記分類情報と同じ分類情報に対応付けられた暗号化鍵を選択し、選択した暗号化鍵を用いて前記所定の情報を暗号化して前記暗号化タグを生成する
    ことを特徴とする請求項6記載のデータ登録装置。
  8.  前記暗号化タグ生成部は、前記分類情報に基づくIDを用いてIDベース暗号方式によって前記所定の情報を暗号化して前記暗号化タグを生成する
    ことを特徴とする請求項6記載のデータ登録装置。
  9.  前記暗号化タグ生成部は、前記分類情報を含んだベクトルを用いて関数型暗号方式によって前記所定の情報を暗号化して前記暗号化タグを生成する
    ことを特徴とする請求項6記載のデータ登録装置。
  10.  データ生成部と、分類情報入力部と、暗号化タグ生成部と、データ登録要求部と、を備えるデータ登録装置を用いて実行するデータ登録方法であって、
     前記データ生成部が、データを生成し、
     前記分類情報入力部が、前記データ生成部によって生成されたデータの分類を示す分類情報を入力し、
     前記暗号化タグ生成部が、前記分類情報入力部が入力した前記分類情報に基づいて所定の情報を暗号化することによって暗号化タグを生成し、
     前記データ登録要求部が、前記データ生成部が生成した前記データと前記暗号化タグ生成部が生成した前記暗号化タグとをデータ検索装置へ送信することによって、前記分類情報が示す前記分類のデータグループに前記データを検索対象のデータとして追加する処理を前記データ検索装置に実行させる
    ことを特徴とするデータ登録方法。
  11.  請求項10記載のデータ登録方法をコンピュータに実行させるためのデータ登録プログラム。
  12.  データを検索するための検索条件とデータの分類を示す分類情報とを入力する検索条件入力部と、
     前記検索条件入力部が入力した前記分類情報に基づいて所定の情報を暗号化することによって暗号化タグを生成する暗号化タグ生成部と、
     前記検索条件入力部が入力した前記検索条件の情報と前記暗号化タグ生成部によって生成された前記暗号化タグとをデータ検索装置へ送信し、前記分類情報が示す前記分類のデータグループに含まれるデータのうち前記検索条件を満たすデータを検索結果のデータとして前記データ検索装置から受信するデータ検索要求部と
    を備えることを特徴とする情報処理装置。
  13.  前記情報処理装置は、さらに、
     複数の暗号化鍵と複数の分類情報とを対応付けて記憶する暗号化鍵記憶部を備え、
     前記暗号化タグ生成部は、
     前記暗号化鍵記憶部に記憶される前記複数の暗号化鍵のうち前記検索条件入力部が入力した前記分類情報と同じ分類情報に対応付けられた暗号化鍵を選択し、選択した暗号化鍵を用いて前記所定の情報を暗号化して前記暗号化タグを生成する
    ことを特徴とする請求項12記載の情報処理装置。
  14.  前記暗号化タグ生成部は、前記分類情報に基づくIDを用いてIDベース暗号方式によって前記所定の情報を暗号化して前記暗号化タグを生成する
    ことを特徴とする請求項12記載の情報処理装置。
  15.  前記暗号化タグ生成部は、前記分類情報を含んだベクトルを用いて関数型暗号方式によって前記所定の情報を暗号化して前記暗号化タグを生成する
    ことを特徴とする請求項12記載の情報処理装置。
  16.  検索条件入力部と、暗号化タグ生成部と、データ検索要求部と、を備える情報処理装置を用いて実行するデータ検索方法であって、
     前記検索条件入力部が、データを検索するための検索条件とデータの分類を示す分類情報とを入力し、
     前記暗号化タグ生成部が、前記検索条件入力部が入力した前記分類情報に基づいて所定の情報を暗号化することによって暗号化タグを生成し、
     前記データ検索要求部が、前記検索条件入力部が入力した前記検索条件の情報と前記暗号化タグ生成部によって生成された前記暗号化タグとをデータ検索装置へ送信し、前記分類情報が示す前記分類のデータグループに含まれるデータのうち前記検索条件を満たすデータを検索結果のデータとして前記データ検索装置から受信する
    ことを特徴とするデータ検索方法。
  17.  請求項16記載のデータ検索方法をコンピュータに実行させるためのデータ検索プログラム。
PCT/JP2012/051533 2012-01-25 2012-01-25 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 WO2013111284A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201280068055.5A CN104081390B (zh) 2012-01-25 2012-01-25 数据检索装置、数据检索方法、数据检索程序、数据登记装置、数据登记方法、数据登记程序以及信息处理装置
US14/350,987 US9391965B2 (en) 2012-01-25 2012-01-25 Data search device, data search method, data search program, data registration device, data registration method, data registration program, and information processing device
PCT/JP2012/051533 WO2013111284A1 (ja) 2012-01-25 2012-01-25 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
EP12866425.7A EP2808803B1 (en) 2012-01-25 2012-01-25 Data search device, data search method, data search program, data registration device, data registration method, data registration program and information processing device
US15/984,468 USRE48146E1 (en) 2012-01-25 2012-01-25 Data search device, data search method, computer readable medium storing data search program, data registration device, data registration method, computer readable medium storing data registration program, and information processing device
JP2013555046A JP5606642B2 (ja) 2012-01-25 2012-01-25 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/051533 WO2013111284A1 (ja) 2012-01-25 2012-01-25 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置

Publications (1)

Publication Number Publication Date
WO2013111284A1 true WO2013111284A1 (ja) 2013-08-01

Family

ID=48873055

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/051533 WO2013111284A1 (ja) 2012-01-25 2012-01-25 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置

Country Status (5)

Country Link
US (2) USRE48146E1 (ja)
EP (1) EP2808803B1 (ja)
JP (1) JP5606642B2 (ja)
CN (1) CN104081390B (ja)
WO (1) WO2013111284A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016206555A (ja) * 2015-04-27 2016-12-08 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
EP3096245A4 (en) * 2014-01-16 2017-09-13 Hitachi, Ltd. Retrievable cryptograph processing system and retrievable cryptograph processing method
WO2017221308A1 (ja) * 2016-06-20 2017-12-28 三菱電機株式会社 データ管理装置、データ管理方法、データ管理プログラム、検索装置、検索方法及び検索プログラム
WO2018131129A1 (ja) * 2017-01-12 2018-07-19 三菱電機株式会社 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
CN109672525A (zh) * 2018-12-14 2019-04-23 华中科技大学 一种具有高效前向索引的可搜索公钥加密方法及系统
JP2019117232A (ja) * 2017-12-26 2019-07-18 日本電信電話株式会社 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
JP2020524864A (ja) * 2017-06-22 2020-08-20 セントリクス インフォメーション セキュリティ テクノロジーズ リミテッド データへのアクセスの制御
WO2023007595A1 (ja) * 2021-07-27 2023-02-02 三菱電機株式会社 検索実行装置、検索実行方法、検索実行プログラム及び秘匿検索システム
CN117272394A (zh) * 2023-11-21 2023-12-22 中债金科信息技术有限公司 债券市场数据共享方法及装置、存储介质及电子设备

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5606642B2 (ja) 2012-01-25 2014-10-15 三菱電機株式会社 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
CN104704493B (zh) * 2012-08-15 2019-06-07 维萨国际服务协会 可搜索的经加密的数据
US9602473B2 (en) * 2012-09-06 2017-03-21 Zixcorp Systems, Inc. Secure message forwarding with sender controlled decryption
US10235539B2 (en) 2013-02-25 2019-03-19 Mitsubishi Electric Corporation Server device, recording medium, and concealed search system
JP6144992B2 (ja) * 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
US9660930B2 (en) * 2014-03-17 2017-05-23 Splunk Inc. Dynamic data server nodes
US9753818B2 (en) 2014-09-19 2017-09-05 Splunk Inc. Data forwarding using multiple data pipelines
US9838467B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Dynamically instantiating dual-queue systems
US9838346B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Alerting on dual-queue systems
US9836358B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Ephemeral remote data store for dual-queue systems
US10417442B2 (en) * 2015-02-09 2019-09-17 Nec Corporation Server device, data search system, search method, and recording medium for extracting concealed data
CN107251479B (zh) * 2015-02-20 2020-08-11 三菱电机株式会社 数据保管装置和数据处理方法
WO2018047698A1 (ja) 2016-09-12 2018-03-15 日本電信電話株式会社 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム
JP6813773B2 (ja) * 2016-10-17 2021-01-13 富士通株式会社 データ収集プログラム、データ収集システム及びデータ収集方法
US20190340389A1 (en) * 2017-01-27 2019-11-07 Mitsubishi Electric Corporation Search device, monitoring system, and computer readable medium
CN110612563B (zh) * 2017-05-18 2023-05-12 三菱电机株式会社 检索装置、隐匿检索系统以及计算机能读取的存储介质
US11170123B2 (en) * 2017-09-12 2021-11-09 Mitsubishi Electric Corporation Registration terminal, key server, search system, and computer readable medium
JP6849102B2 (ja) * 2017-12-14 2021-03-24 三菱電機株式会社 検索システム
CN108259172B (zh) * 2018-01-12 2021-02-05 哈尔滨工业大学深圳研究生院 云存储系统中的密文搜索方法
JP6462968B1 (ja) * 2018-01-17 2019-01-30 三菱電機株式会社 データ管理装置、データ管理方法及びデータ管理プログラム
WO2019142268A1 (ja) * 2018-01-17 2019-07-25 三菱電機株式会社 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
CN108449309B (zh) * 2018-01-19 2019-08-20 华中科技大学 一种混合型可搜索加密方法和系统
DE112018007433T5 (de) * 2018-05-08 2020-12-31 Mitsubishi Electric Corporation Registrierungsvorrichtung, servervorrichtung, durchsuchbares verschlüsselungssystem, durchsuchbares verschlüsselungs-verfahren, registrierungsprogramm und serverprogramm
CN112074889B (zh) * 2018-05-15 2023-07-04 三菱电机株式会社 隐匿检索装置和隐匿检索方法
CN112115506B (zh) * 2020-08-21 2022-10-25 山东师范大学 一种支持布尔查询的属性基数据搜索方法及系统
CN113014563B (zh) * 2021-02-10 2022-03-25 华中科技大学 一种保障可搜索公钥加密检索完备性的方法及系统
CN116975884A (zh) * 2023-06-30 2023-10-31 萍乡逗花科技有限公司 一种数据安全存储方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003178070A (ja) * 2001-12-12 2003-06-27 Canon Inc 情報検索装置
JP2005134990A (ja) 2003-10-28 2005-05-26 National Institute Of Information & Communication Technology 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
JP2005284915A (ja) * 2004-03-30 2005-10-13 Canon Inc 情報検索装置および方法、ならびに情報検索システムおよびその制御方法
JP2010165275A (ja) * 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
WO2011086668A1 (ja) 2010-01-13 2011-07-21 三菱電機株式会社 秘匿検索システム及び公開パラメータ生成装置及び暗号化装置及びユーザ秘密鍵生成装置及びクエリ発行装置及び検索装置及びコンピュータプログラム及び秘匿検索方法及び公開パラメータ生成方法及び暗号化方法及びユーザ秘密鍵生成方法及びクエリ発行方法及び検索方法
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3457184B2 (ja) 1998-06-25 2003-10-14 シャープ株式会社 検索装置及びその制御プログラムを記憶した媒体
US7068787B1 (en) 1998-10-23 2006-06-27 Contentguard Holdings, Inc. System and method for protection of digital works
US6519700B1 (en) 1998-10-23 2003-02-11 Contentguard Holdings, Inc. Self-protecting documents
CA2341979A1 (en) 2000-03-24 2001-09-24 Contentguard Holdings, Inc. System and method for protection of digital works
US7496767B2 (en) * 2001-01-19 2009-02-24 Xerox Corporation Secure content objects
US7171557B2 (en) 2001-10-31 2007-01-30 Hewlett-Packard Development Company, L.P. System for optimized key management with file groups
US20050271246A1 (en) 2002-07-10 2005-12-08 Sharma Ravi K Watermark payload encryption methods and systems
US20050004924A1 (en) 2003-04-29 2005-01-06 Adrian Baldwin Control of access to databases
US20050138393A1 (en) * 2003-12-22 2005-06-23 Challener David C. Determining user security level using trusted hardware device
JP2006210964A (ja) 2005-01-24 2006-08-10 National Institute Of Information & Communication Technology エルガマル暗号による情報授受伝達方法及び装置
JP2006284915A (ja) 2005-03-31 2006-10-19 Toshiba Matsushita Display Technology Co Ltd 表示装置及びアレイ基板
JP4722620B2 (ja) 2005-08-19 2011-07-13 Kddi株式会社 暗号化文書検索方法および暗号化文書検索システム
US20090094200A1 (en) 2007-10-05 2009-04-09 Yahoo! Inc. Method for Admission-controlled Caching
US8165305B2 (en) * 2008-12-08 2012-04-24 Harrison Corporation Enhanced relational database security through encryption of table indices
JP2010160235A (ja) 2009-01-07 2010-07-22 Nippon Telegr & Teleph Corp <Ntt> 検索システム、端末装置、データベース装置、検索方法及びプログラム
US8837718B2 (en) 2009-03-27 2014-09-16 Microsoft Corporation User-specified sharing of data via policy and/or inference from a hierarchical cryptographic store
JP5432736B2 (ja) 2010-01-18 2014-03-05 日本電信電話株式会社 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP5411034B2 (ja) 2010-03-19 2014-02-12 株式会社日立ソリューションズ データベース暗号化システム及び方法
CN101859323B (zh) * 2010-05-31 2013-01-16 广西大学 密文全文检索系统
JP5557683B2 (ja) 2010-10-07 2014-07-23 三菱電機株式会社 情報検索装置および情報検索方法
JP5412414B2 (ja) 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
US8429421B2 (en) 2010-12-17 2013-04-23 Microsoft Corporation Server-side encrypted pattern matching
JP5420085B2 (ja) 2011-01-13 2014-02-19 三菱電機株式会社 データ処理装置及びデータ保管装置
CN103329478B (zh) 2011-01-18 2015-11-25 三菱电机株式会社 密码系统以及密码系统的密码处理方法
JP2012164031A (ja) 2011-02-03 2012-08-30 Mitsubishi Electric Corp データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
US8549653B2 (en) * 2011-09-14 2013-10-01 Morgan Stanley Secure wildcard searchable database
CN103975553B (zh) 2011-11-30 2016-10-12 三菱电机株式会社 数据处理装置以及数据处理方法
US9087212B2 (en) 2012-01-25 2015-07-21 Massachusetts Institute Of Technology Methods and apparatus for securing a database
JP5606642B2 (ja) 2012-01-25 2014-10-15 三菱電機株式会社 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
US20140019454A1 (en) 2012-07-10 2014-01-16 Jason A. Carter Systems and Methods for Caching Data Object Identifiers
WO2014109066A1 (ja) 2013-01-12 2014-07-17 三菱電機株式会社 鍵生成装置、鍵生成プログラム、秘匿検索システム及び鍵配布方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003178070A (ja) * 2001-12-12 2003-06-27 Canon Inc 情報検索装置
JP2005134990A (ja) 2003-10-28 2005-05-26 National Institute Of Information & Communication Technology 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
JP2005284915A (ja) * 2004-03-30 2005-10-13 Canon Inc 情報検索装置および方法、ならびに情報検索システムおよびその制御方法
JP2010165275A (ja) * 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
WO2011086668A1 (ja) 2010-01-13 2011-07-21 三菱電機株式会社 秘匿検索システム及び公開パラメータ生成装置及び暗号化装置及びユーザ秘密鍵生成装置及びクエリ発行装置及び検索装置及びコンピュータプログラム及び秘匿検索方法及び公開パラメータ生成方法及び暗号化方法及びユーザ秘密鍵生成方法及びクエリ発行方法及び検索方法
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム

Non-Patent Citations (11)

* Cited by examiner, † Cited by third party
Title
ALFRED J. MENEZES; PAUL C. VAN OORSCHOT; SCOTT A. VANSTONE: "Handbook of Applied Cryptography", 2006, CRC PRESS, article "Public-Key Encryption"
DAN BONEH; GIOVANNI DI CRESCENZO; RAFAIL OSTROVSKY; GIUSEPPE PERSIANO: "Public Key Encryption with Keyword Search", EUROCRYPT 2004, LECTURE NOTES IN COMPUTER SCIENCE, vol. 3027, 2004, pages 506 - 522, XP019005037
DAN BONEH; MATTHEW FRANKLIN: "Identity-Based Encryption from the Weil Pairing", CRYPTO 2001, LECTURE NOTES IN COMPUTER SCIENCE, vol. 2139, 2001, pages 213 - 229
JONATHAN KATZ; AMIT SAHAI; BRENT WATERS: "Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products", EUROCRYPT 2008, LECTURE NOTES IN COMPUTER SCIENCE, vol. 4965, 2008, pages 146 - 162, XP047030435, DOI: doi:10.1007/978-3-540-78967-3_9
MICHEL ABDALLA; MIHIR BELLARE; DARIO CATALANO; EIKE KILTZ; TADAYOSHI KOHNO; TANJA LANGE; JOHN MALONE-LEE; GREGORY NEVEN; PASCAL PA: "Searchable Encryption Revisited: Consistency Properties, Relation to Anonymous IBE, and Extensions", CRYPTO 2005, LECTURE NOTES IN COMPUTER SCIENCE, vol. 3621, 2005, pages 205 - 222
MIHIR BELLARE; ALEXANDRA BOLDYREVA; ANAND DESAI; DAVID POINTCHEVAL: "Key-Privacy in Public-Key Encryption", ASIACRYPT 2001, LECTURE NOTES IN COMPUTER SCIENCE, vol. 2248, 2001, pages 566 - 582
MITSUHIRO HATTORI ET AL.: "Anzensei to Kosokusei no Ryoritsu o Mezashita Kensaku Kano Ango (2)", SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY KOEN RONBUNSHU, vol. 2012, no. 1A3-2, 30 January 2012 (2012-01-30), pages 1 - 6, XP008173926 *
NORI MATSUDA ET AL.: "Anzensei to Kosokusei no Ryoritsu o Mezashita Kensaku Kano Ango (1)", SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY KOEN RONBUSHU, vol. 2012, no. 1A3-1, 30 January 2012 (2012-01-30), pages 1 - 6, XP008173929 *
See also references of EP2808803A4
TATSUAKI OKAMOTO; KATSUYUKI TAKASHIMA: "Adaptively Attribute-Hiding (Hierarchical) Inner Product Encryption", CRYPTOLOGY EPRINT ARCHIVE, 2011
XAVIER BOYEN; BRENT WATERS: "Anonymous Hierarchical Identity-Based Encryption (Without Random Oracles", CRYPTO 2006, LECTURE NOTES IN COMPUTER SCIENCE, vol. 4117, 2006, pages 290 - 307

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3096245A4 (en) * 2014-01-16 2017-09-13 Hitachi, Ltd. Retrievable cryptograph processing system and retrievable cryptograph processing method
US10489604B2 (en) 2014-01-16 2019-11-26 Hitachi, Ltd. Searchable encryption processing system and searchable encryption processing method
JP2016206555A (ja) * 2015-04-27 2016-12-08 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
WO2017221308A1 (ja) * 2016-06-20 2017-12-28 三菱電機株式会社 データ管理装置、データ管理方法、データ管理プログラム、検索装置、検索方法及び検索プログラム
JPWO2018131129A1 (ja) * 2017-01-12 2019-06-27 三菱電機株式会社 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
JP6494893B2 (ja) * 2017-01-12 2019-04-03 三菱電機株式会社 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
WO2018131129A1 (ja) * 2017-01-12 2018-07-19 三菱電機株式会社 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
JP2020524864A (ja) * 2017-06-22 2020-08-20 セントリクス インフォメーション セキュリティ テクノロジーズ リミテッド データへのアクセスの制御
JP2019117232A (ja) * 2017-12-26 2019-07-18 日本電信電話株式会社 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
CN109672525A (zh) * 2018-12-14 2019-04-23 华中科技大学 一种具有高效前向索引的可搜索公钥加密方法及系统
WO2023007595A1 (ja) * 2021-07-27 2023-02-02 三菱電機株式会社 検索実行装置、検索実行方法、検索実行プログラム及び秘匿検索システム
JP7350220B2 (ja) 2021-07-27 2023-09-25 三菱電機株式会社 検索実行装置、検索実行方法、検索実行プログラム及び秘匿検索システム
CN117272394A (zh) * 2023-11-21 2023-12-22 中债金科信息技术有限公司 债券市场数据共享方法及装置、存储介质及电子设备
CN117272394B (zh) * 2023-11-21 2024-02-02 中债金科信息技术有限公司 债券市场数据共享方法及装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN104081390B (zh) 2017-11-03
JP5606642B2 (ja) 2014-10-15
USRE48146E1 (en) 2020-08-04
EP2808803A4 (en) 2016-01-20
EP2808803A1 (en) 2014-12-03
US9391965B2 (en) 2016-07-12
EP2808803B1 (en) 2017-03-01
US20140298009A1 (en) 2014-10-02
JPWO2013111284A1 (ja) 2015-05-11
CN104081390A (zh) 2014-10-01

Similar Documents

Publication Publication Date Title
JP5606642B2 (ja) データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
JP5501482B2 (ja) 暗号システム、暗号システムの暗号処理方法、暗号化装置、暗号化プログラム、復号装置および復号プログラム
JP5420085B2 (ja) データ処理装置及びデータ保管装置
Zhao et al. Multi-user keyword search scheme for secure data sharing with fine-grained access control
JP5985123B1 (ja) 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
TWI749444B (zh) 可靠的使用者服務系統和方法
Liu et al. Practical ciphertext-policy attribute-based encryption: traitor tracing, revocation, and large universe
JP5432736B2 (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP6770075B2 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム
JP5492007B2 (ja) コンテンツサーバ、コンテンツ受信装置、属性鍵発行サーバ、ユーザ鍵発行サーバ、アクセス制御システム、コンテンツ配信プログラムおよびコンテンツ受信プログラム
Zhang et al. An improved anonymous multi‐receiver identity‐based encryption scheme
Liu et al. Broadcast authenticated encryption with keyword search
JP6700797B2 (ja) 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム
Xu et al. Efficient attribute-based encryption with blackbox traceability
Ling et al. Server-aided revocable predicate encryption: formalization and lattice-based instantiation
Aronesty et al. Encapsulated search index: Public-key, sub-linear, distributed, and delegatable
JP2010160235A (ja) 検索システム、端末装置、データベース装置、検索方法及びプログラム
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
Pareek et al. Proxy re-encryption scheme for access control enforcement delegation on outsourced data in public cloud
Zhenhua et al. A ciphertext‐policy hidden vector encryption scheme supporting multiuser keyword search
Rhee et al. Anonymous ibe from peks: A generic construction
Chaudhari et al. Privacy-Preserving Proxy Re-encryption with Fine-Grained Access Control
Lima et al. A secure collaborative network protocol
Rahman et al. Implementation of a conditional searchable encryption system for data storage
Xu et al. Mergeable and revocable identity-based encryption

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013555046

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14350987

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2012866425

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012866425

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE