WO2014128958A1 - サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム - Google Patents

サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム Download PDF

Info

Publication number
WO2014128958A1
WO2014128958A1 PCT/JP2013/054735 JP2013054735W WO2014128958A1 WO 2014128958 A1 WO2014128958 A1 WO 2014128958A1 JP 2013054735 W JP2013054735 W JP 2013054735W WO 2014128958 A1 WO2014128958 A1 WO 2014128958A1
Authority
WO
WIPO (PCT)
Prior art keywords
keyword
search
encryption
encrypted
deterministic
Prior art date
Application number
PCT/JP2013/054735
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 JP2015501221A priority Critical patent/JP5963936B2/ja
Priority to CN201380072944.3A priority patent/CN104995621B/zh
Priority to US14/765,050 priority patent/US10235539B2/en
Priority to EP13875718.2A priority patent/EP2960808A4/en
Priority to PCT/JP2013/054735 priority patent/WO2014128958A1/ja
Publication of WO2014128958A1 publication Critical patent/WO2014128958A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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

Definitions

  • the present invention relates to a server device that performs a secret search, a secret search program, a recording medium, and a secret search system.
  • the secret search system allows a searcher to search for data stored in a server by specifying a keyword, and at that time, the data and the keyword are kept secret from the server.
  • the secret search system is expected to be applied to outsourcing of confidential data management and filtering of encrypted mail in a mail server.
  • technologies for achieving various safety requirements and various technologies for reducing server, searcher storage, communication overhead, and calculation overhead have been proposed.
  • Secure search can be broadly divided into those based on deterministic encryption and those based on probabilistic encryption.
  • a secure search based on deterministic encryption the same keyword corresponds to the same encrypted keyword. Therefore, the server only needs to perform binary match determination based on the specified encrypted keyword. It has the merit that it can be made.
  • the frequency information of the keyword appears as the frequency information of the encrypted keyword as it is, there is a disadvantage that an attack called “frequency analysis” in which the server guesses the corresponding keyword by examining the frequency of the encrypted keyword is possible.
  • Patent Document 1 a table for storing a value of probabilistic encryption and a table for storing a value of deterministic encryption are prepared, and a table that encrypts and holds the relationship between the two tables is used. A method for quickly searching for the value of is disclosed.
  • both the probabilistic encryption value and the deterministic encryption value are transmitted to the server. Since the information related to these correspondences is encrypted in subsequent processing, if data is leaked to an external attacker, the attacker may link the probabilistic encryption value and the deterministic encryption value. This is not possible, and the security of the data is kept at the same level as the stochastic encryption.
  • the server itself can link the value of the probabilistic encryption and the value of the deterministic encryption at the time of the data registration process, and if it is a malicious server, a frequency analysis attack using this information is possible. is there. For this reason, there is a problem that the security for the server is reduced to the same level as that of the deterministic encryption.
  • the present invention has been made to solve the above-described problem, and by searching for the entire secret search system by incorporating deterministic encryption elements without reducing the security for the server from the stochastic encryption-based secret search.
  • the goal is to improve speed.
  • the server device of this invention In a server device that executes a secret search, A trapdoor generated from a keyword by a probabilistic encryption method as a secret search request from a search device, wherein the keyword of search target data in the secret search is encrypted by a stochastic encryption method A server-side communication unit that receives a set of a trapdoor used for matching determination and a deterministic encryption keyword generated by a deterministic encryption method from the keyword that is a source of generation of the trapdoor; As a history of past secret search requests, a search history storage unit that stores a set of the trapdoor and the deterministic encryption keyword received by the server-side communication unit; The search target data and the encryption keyword of the search target data are associated with each other, and if known, the keyword information in which the deterministic encryption keyword corresponding to the encryption keyword is further associated is stored.
  • a data storage unit It is determined whether or not the deterministic encryption keyword that matches the deterministic encryption keyword received by the server side communication unit is present in the search history storage unit.
  • a secret search of search target data based on a deterministic encryption method using the deterministic encryption keyword existing in the search history storage unit, and determining that it does not exist, Using the received trap door and the encrypted keyword of the keyword information stored in the data storage unit as a target, a secret search of search target data based on a probabilistic encryption method is performed. And a determination unit to be executed.
  • the search speed of the entire secret search system can be improved without reducing the security for the server from the stochastic encryption-based secret search.
  • FIG. 1 is a diagram illustrating a configuration of a secret search system 100 according to a first embodiment.
  • FIG. 2 is a block diagram of the server apparatus 201 according to the first embodiment.
  • FIG. 2 is a block diagram of a registration device 301 according to the first embodiment.
  • FIG. 3 is a block diagram of the search device 401 according to the first embodiment.
  • FIG. 3 shows an encrypted keyword storage area 211 in the first embodiment.
  • FIG. 3 shows a data storage area 212 according to the first embodiment.
  • FIG. 3 shows a search history storage area 213 according to the first embodiment.
  • FIG. 3 shows an encrypted keyword storage area 211 in the first embodiment.
  • FIG. 3 shows a data storage area 212 according to the first embodiment.
  • FIG. 3 shows an encrypted keyword storage area 211 in the first embodiment.
  • FIG. 3 shows a data storage area 212 according to the first embodiment.
  • FIG. 3 shows an encrypted keyword storage area 211 in the first embodiment.
  • FIG. 3 shows a data storage area 212 according to the first embodiment.
  • FIG. 3 shows a search history storage area 213 according to the first embodiment.
  • FIG. 3 shows an encrypted keyword storage area 211 in the first embodiment.
  • FIG. 3 shows an encrypted keyword storage area 211 in the first embodiment.
  • FIG. 3 shows a search history storage area 213 according to the first embodiment.
  • FIG. 3 shows an encrypted keyword storage area 211 in the first embodiment.
  • FIG. 3 shows a search history storage area 213 according to the first embodiment.
  • FIG. FIG. 3 shows an encrypted keyword storage area 211 in the first embodiment.
  • FIG. 3 shows an encrypted keyword storage area 211 in the first embodiment.
  • FIG. 5 is a flow showing initial settings of the server device 201, the registration device 301, and the search device 401 according to the first embodiment.
  • FIG. 3 is a diagram showing a flow of transmission processing of the registration device 301 according to the first embodiment.
  • FIG. 3 is a diagram showing a flow of registration processing of the server device 201 according to the first embodiment. .
  • FIG. . The figure which shows the flow of the secret search of the search device 401 of Embodiment 1.
  • FIG. FIG. 6 is a diagram illustrating an example of an appearance of a server device 201 or the like according to the second embodiment.
  • FIG. 3 is a diagram showing a flow of transmission processing of the registration device 301 according to the first embodiment.
  • FIG. 3 is a diagram showing a flow of registration processing of the server device
  • FIG. 1 The first embodiment will be described with reference to FIGS. 1 to 4 are diagrams showing the configuration of the confidential search system 100 and each device.
  • 5 to 20 are diagrams showing the state of each storage area.
  • 21 to 25 are flowcharts showing the operation of each device.
  • a component is indicated by () in each flow, it indicates that the component is a subject of processing.
  • FIG. 1 is a configuration example of a secret search system 100.
  • the secret search system 100 allows a user to search for data (search target data) stored in the server device 201 by specifying a keyword. At that time, the secret search system 100 keeps the data and keywords secret from the server device 201.
  • the secret search system 100 includes a server device 201, an information registration device 301, and an information search device 401.
  • the server apparatus 201, the information registration apparatus 301, and the information search apparatus 401 are connected to the network 101, and communicate with each other via the network 101.
  • the information registration apparatus 301 and the information search apparatus 401 are referred to as a registration apparatus 301 and a search apparatus 401.
  • FIG. 2 is a block diagram illustrating a configuration example of the server apparatus 201 that holds data and keywords and performs a search in the secret search system 100. The components of each device shown in FIG. 2 will be described below.
  • the encrypted keyword storage area 211 corresponds to a keyword encrypted by probabilistic encryption (hereinafter referred to as an encrypted keyword) and a keyword encrypted by deterministic encryption (hereinafter referred to as a definitive encrypted keyword).
  • the data ID is stored in association with the data ID.
  • FIG. 5 shows an example of data stored in the encrypted keyword storage area 211.
  • the data storage area 212 stores data in association with the corresponding data ID.
  • FIG. 6 shows an example of data stored in the data storage area 212. Examples of data include numerical values such as age, attributes such as gender, character strings such as names, files such as documents, and the like. A plurality of types of data may be held for one data ID.
  • the encrypted keyword storage area 211 and the data storage area 212 constitute a data storage unit 210.
  • the encrypted keyword and the data are associated with each other through the data ID.
  • the encryption keyword (c 1 ) and the data (d 1 ) are associated with each other via the data ID (id 1 ).
  • the related deterministic encryption keyword (det) it is known for the encryption keyword (c) and the data (d) as will be described later with reference to FIG.
  • a definitive encryption keyword (det) is associated.
  • Information having this relationship is referred to as keyword information.
  • the keyword information may be realized by the encrypted keyword storage area 211 and the data storage area 212, or may be realized by the contents described later in FIG.
  • the search history storage area 213 stores past search requests sent from the search device 401 as a search history.
  • FIG. 7 shows an example of data stored in the search history storage area 213.
  • the cache policy storage area 214 (policy storage unit) stores the search request sent from the search device 401 and the search processing result in the search history storage area 213 and the encrypted keyword storage area 211. This policy is memorized. Examples of policies include “Cache all search requests and search results”, “Cache search request and search results only when specified by the searcher”, “Cache all search requests and also cache search results for search requests executed n times or more”, “Cache deterministic encrypted keywords and all search results in search requests", Examples are given.
  • the probabilistic cipher collation unit 221 uses a keyword for the trap door included in the search request sent from the search device 401 and the encrypted keyword (by probabilistic encryption) stored in the encrypted keyword storage area 211. Determine whether or not. In addition, keyword matching determination is also performed for the trap door stored in the search history storage area 213 and the encrypted keyword sent from the registration device 301. These processes can be realized using an existing encryption technique (a stochastic encryption-based secret search technique).
  • the deterministic encryption matching unit 222 matches the keywords for the definitive encryption keyword included in the search request transmitted by the search device 401 and the definitive encryption keyword stored in the encryption keyword storage area 211. Determine whether or not. This process can be realized using binary match determination.
  • the probabilistic cryptographic verification unit 221 and the definitive cryptographic verification unit 222 constitute a determination unit 220.
  • the cache processing unit 223 Based on the contents of the cache policy storage area 214, the cache processing unit 223 sends the search request sent from the search device 401 and the search processing result to the search history storage area 213 and the encrypted keyword storage area 211.
  • the registration unit 224 stores the encrypted keyword, encrypted data, etc. received from the registration device 301 in the encrypted keyword storage area 211 and the data storage area 212.
  • the communication unit 231 (server side communication unit) communicates with the registration device 301 and the search device 401.
  • FIG. 3 is a block diagram illustrating a configuration example of a registration device 301 that registers encrypted data (search target data) in the server device 201 in the secure search system 100.
  • the registration encryption key storage area 311 stores an encryption key used for data encryption and encryption keyword generation at the time of data registration.
  • the data encryption processing unit 321 encrypts data using the data encryption key stored in the registration encryption key storage area 311. This process can be realized using an existing encryption technique (for example, a public key encryption technique such as RSA (registered trademark)).
  • the encrypted keyword generation unit 322 generates an encrypted keyword for secret search from the keyword using the encrypted keyword generation key stored in the registration encryption key storage area 311. This process can be realized using an existing encryption technique (a probabilistic encryption-based secret search technique).
  • the communication unit 331 communicates with the server device 201.
  • FIG. 4 is a block diagram illustrating a configuration example of the search device 401 that requests the server device 201 to search for encrypted data in the secret search system 100.
  • the search encryption key storage area 411 stores secret information used for trapdoor generation, deterministic encryption keyword generation, and data decryption at the time of data search.
  • the data decryption processing unit 421 decrypts data by using the data decryption key stored in the search encryption key storage area 411. This process can be realized using an existing encryption technique (for example, a public key encryption technique such as RSA (registered trademark)).
  • the trap door generation unit 422 uses the trap door generation key stored in the search encryption key storage area 411 to generate a secret search search request (trap door) from the keyword. This process can be realized using an existing encryption technique (a probabilistic encryption-based secret search technique).
  • the deterministic encryption keyword generation unit 423 generates a deterministic encryption keyword from the keyword using the deterministic encryption keyword generation key stored in the search encryption key storage area 411. This process can be realized using an existing encryption technique (for example, a common key encryption technique such as AES).
  • the communication unit 431 search side transmission unit communicates with the server device 201.
  • the procedure in the secure search system 100 is as follows: (A) A part for initial setting of each device, (B) A part in which the registration device 301 transmits and stores search target data to the server device 201. (C) a portion where the search device 401 searches for and acquires data on the server device 201; It is divided roughly into. Each procedure will be described below.
  • FIG. 21 shows initial settings of the server apparatus 201 and the like.
  • the server apparatus 201 stores the cache policy in the cache policy storage area 214.
  • the cache policy is, for example, a policy of “whether the search request sent from the search device 401 or the search processing result is stored in the search history storage area 213 or the encrypted keyword storage area 211”.
  • the cache policy may be determined by an administrator of a search apparatus 401 or a company using the confidential search system 100 and sent to the server apparatus 201. Alternatively, the server device 201 itself may determine. In the following description, it is assumed that the cache policy is “cache all search requests and search results”.
  • the search device 401 stores secret information used for data decryption, trapdoor generation, and deterministic encryption keyword generation in the search encryption key storage area 411. This may be generated by the data decryption processing unit 421, the trapdoor generation unit 422, or the definitive encryption keyword generation unit 423. Alternatively, secret information appropriately generated outside may be acquired. When the secret information for data decryption and trapdoor generation is generated by itself, the corresponding encryption key for data encryption and encryption keyword generation is disclosed or sent to the registration device 301.
  • the registration device 301 stores an encryption key used for data encryption and encryption keyword generation in a registration encryption key storage area 311. Normally, the registration device 301 acquires and stores an encryption key corresponding to the secret information stored in the search encryption key storage area 411 of the search device 401 so that the valid search device 401 can correctly perform the search / decryption process. . This procedure is complete.
  • FIG. 22 is a flow of transmission processing by the registration apparatus 301.
  • a data transmission process to the server apparatus 201 by the registration apparatus 301 will be described.
  • the data encryption processing unit 321 of the registration device 301 assigns a unique data ID (id x ) to the data.
  • the data encryption processing unit 321 encrypts data using the data encryption key stored in the registration encryption key storage area 311.
  • an existing encryption technology that can be decrypted only by a valid search device 401 is used (encrypted data is d x ).
  • step S103 the encryption keyword generation unit 322 encrypts the keyword associated with the data using the encryption keyword generation key stored in the registration encryption key storage area 311.
  • the communication unit 331 transmits the data ID, the encrypted keyword, and the encrypted data set (id x , c x , d x ) to the server apparatus 201.
  • FIG. 23 is a flow of data registration processing by the server apparatus 201. With reference to FIG. 23, the data registration process of the server apparatus 201 is demonstrated.
  • the registration unit 224 associates the encryption keyword (c x ) with the data ID (id x ) and encrypts the keyword
  • the data is stored in the storage area 211, and the encrypted data (d x ) is stored in the data storage area 212 in association with the data ID (id x ) (S201).
  • the registration unit 224 stores the information in association with each other like (c x , id x ) and (d x , id x ).
  • the contents of the encrypted keyword storage area 211 and the data storage area 212 before this procedure are as shown in FIGS.
  • the server apparatus 201 receives (id 6 , c 6 , d 6 ) and performs processing, the contents of the encrypted keyword storage area 211 and the data storage area 212 are updated as shown in FIGS. 10 and 11, respectively. Is done.
  • the probabilistic cryptographic verification unit 221 determines whether there is a trapdoor in the search history storage area 213.
  • the “trap door” is information transmitted as a confidential search request from the search device 401 to the server device 201.
  • the trap door will be described later in S301 of FIG. If there is a trap door (YES in S202), the stochastic cipher collation unit 221 performs collation processing using the trap door (if there is no trap door, this processing is skipped). (3) If there is a trap door, in S203, the stochastic cipher collation unit 221 determines for each trap door (td i ) stored in the search history storage area 213 and the received encrypted keyword (c x ). A match determination is performed as to whether or not the keywords match (a matching process is executed).
  • the probabilistic cryptographic collation unit 221 determines whether there is a matching trap door (td i ) in the search history storage area 213. If there is a match (and td y), the probabilistic encryption verification unit 221, are stored in the search-history storage area 213 in association with the trapdoor (td y), deterministic encryption keyword (det y) Is identified. The probabilistic encryption verification unit 221 stores the specified (det y ) as a definitive encryption keyword in the encryption keyword storage area 211 in association with the received encryption keyword (c x ) (S205).
  • the probabilistic encryption verification unit 221 uses the trapdoors (td 1 ) to (td 5 ) and the encrypted keyword (c 6 ) Perform keyword matching judgment.
  • the definitive encryption keyword corresponding to the encryption keyword (c 6 ) is (det 2 ). Therefore, (c 6 ) and (det 2 ) are stored in the encrypted keyword storage area 211 in association with each other.
  • the encrypted keyword storage area 211 is updated as shown in FIG. If no keyword match is found, no particular processing is performed. This procedure is complete.
  • the legitimate search device 401 can perform a secret search by specifying a keyword for the data stored in the server device 201.
  • a secret search by specifying a keyword for the data stored in the server device 201.
  • FIG. 24 is a flow of search request processing by the search apparatus 401.
  • search request transmission processing by the search device 401 will be described.
  • the trap door generation unit 422 of the search device 401 generates a trap door from a keyword to be searched using the trap door generation key stored in the search encryption key storage area 411.
  • an existing encryption technique probabilistic encryption-based secret search technique
  • a trapdoor is information generated by a probabilistic encryption method from a keyword to be searched. The trapdoor is used for matching determination with an encrypted keyword obtained by encrypting a keyword of search target data in a secret search by a probabilistic encryption method.
  • the deterministic encryption keyword generation unit 423 generates a deterministic encryption keyword from the keyword to be searched using the deterministic encryption keyword generation key stored in the search encryption key storage area 411.
  • an existing encryption technique for example, a common key encryption technique such as AES
  • the deterministic encryption method deterministic encryption keyword is det x . That is, the deterministic encryption keyword generation unit 423 generates a deterministic encryption keyword (det x ) from the keyword td x that is a source of generation of the trapdoor d x by a deterministic encryption method.
  • the communication unit 431 transmits a set (td x , det x ) of the trap door (td x ) and the definitive encryption keyword (det x ) to the server apparatus 201 as a secret search request (S303). Since (det x ) is generated by deterministic encryption, if the keyword to be searched is the same, the same value is always obtained. (3) The search device 401 receives the search result from the server device 201 (S401).
  • FIG. 25 is a processing flow of the secret search by the server device 201.
  • the communication unit 231 receives a search request (td x , det x ) from the search device 401.
  • the server apparatus 201 first determines whether or not the keyword to be searched is included in the search history so far. Specifically, the deterministic encryption matching unit 222 determines each deterministic encryption keyword (det i ) stored in the search history storage area 213 and the deterministic encryption keyword included in the search request (td x , det x ).
  • search it is determined whether or not the keywords match for (det x ) (S304, S305). Since this determination (search) may be binary match determination, an existing search technique (when encryption is not considered) can be used. Examples of existing search techniques include speeding up by sorting data in advance and speeding up by using a hash table.
  • the previous search result can be used.
  • the fact that the previous search results can be used is based on the cache processing (S312) by the cache processing unit described later.
  • the deterministic encryption collating unit 222 extracts a record in which the definitive encrypted keyword matches the definitive encrypted keyword (det x ) included in the search request from the encrypted keyword storage area 211. Similar to the above (S304), this extraction process may be binary match determination, so existing search techniques can be used.
  • the definitive cryptographic verification unit 222 acquires the data ID (id) from the matched record (S306), and acquires the encrypted data (d) corresponding to the acquired data ID from the data storage area 212 (S307). ).
  • the communication unit 231 transmits the encrypted data acquired in S307 to the search device 401 (S308). Note that. When a plurality is acquired, all may be transmitted, or a part may be transmitted.
  • the existing keyword search technique is used to search the records in the encrypted keyword storage area 211 one by one.
  • the probabilistic cryptographic collation unit 221 targets all the encrypted keywords (c i ) included in the encrypted keyword storage area 211 as trap targets (td x , det x ) included in the search request (td x , det x ).
  • a keyword match determination with td x ) is performed (S309). If the encrypted keyword (c) that matches the received trap door (td x ) is hit (YES in S310), the probabilistic encryption matching unit 221 reads data from the matched record from the encrypted keyword storage area 211. ID (id) is acquired, and encrypted data corresponding to the data ID (id) is acquired from the data storage area 212 (S311). Thereafter, the communication unit 231 transmits the encrypted data acquired above to the search device 401 (S308).
  • a cache process of “search request and search result” is further performed (S312). Specifically, the cache processing unit 223 stores the search request in the search history storage area 213 according to the contents of the cache policy (history policy) stored in the cache policy storage area 214. Further, the cache processing unit 223 uses the deterministic encryption keyword (det x ) included in the search request as the deterministic encryption keyword (det) for the record that matches the keyword among the records in the encryption keyword storage area 211. Is stored (S311 and S312).
  • the cache processing unit 223 determines whether to store det x included in the search request (td x , det x ) according to the contents of the cache policy (association policy) stored in the cache policy storage area 214. To do.
  • the cache policy instructs storage, the cache processing unit 223 stores det x of the search request in association with (c k ) in the encrypted keyword storage area 211.
  • the cache processing in S312 enables high-speed search (binary match search) using the definitive encrypted keyword (det) when the search is performed with the same keyword from the next time (S306, S307). Further, even when data (id, c, d) is additionally registered by transmission from the registration device 301, it matches the past search keyword (td) using the trap door in the search history storage area 213. Since the encrypted keyword (c) to be searched can be identified in advance, the time required for the search process can be shortened (S202 to S205 in FIG. 23).
  • the data decryption processing unit 421 of the search device 401 uses the data decryption key stored in the search encryption key storage area 411. Decrypt encrypted data.
  • an existing encryption technology is used so that only a valid search device 401 can decrypt the data. This procedure is complete.
  • the probabilistic encryption verification unit 221 searches the encryption keyword storage area 211 (FIG. 10) for an encryption keyword that matches the trap door (td 6 ). As a result, for example, if (c 2 ) and (c 5 ) match, the server apparatus 201 transmits the encrypted data (d 2 ) and (d 5 ) corresponding to these to the search apparatus 401 as a search result. .
  • the cache processing unit 223 of the server device 201 stores the definitive encryption keyword (det 6 ) in the matched record in the encryption keyword storage area 211 (FIG. 10) based on the cache policy, and the search history storage area 213.
  • the search request (td 6 , det 6 ) is stored in (FIG. 12).
  • the encrypted keyword storage area 211 and the search history storage area 213 are updated as shown in FIGS.
  • the search device 401 further transmits a search request (td 7 , det 6 ) generated from the same keyword to the server device 201 (deterministic encryption keywords have the same value, but the trap door Note that the values are different).
  • a search request (td 7 , det 6 ) generated from the same keyword
  • the server device 201 retrieves the deterministic encryption keyword (det 6 ) from the search history storage area 213 (FIG. 15)
  • the deterministic encryption collating unit 222 searches the encrypted keyword storage area 211 (FIG. 14) for a record including the definitive encrypted keyword (det 6 ).
  • the server apparatus 201 transmits the encrypted data (d 2 ) and (d 5 ) corresponding to these to the search apparatus 401 as the search results. .
  • the cache processing related to the search request / search result is not performed.
  • a secret search system is realized in which the search device 401 can search data and keywords while keeping the data and keywords secret from the server device 201 by the procedures of (A. Initial setting of each device) to (C. Data search and acquisition). it can.
  • A. Initial setting of each device to (C. Data search and acquisition).
  • C. Data search and acquisition the processing by the stochastic encryption matching unit 221 (probabilistic encryption-based secret search) is not performed at all. All the keyword match determinations are only binary match determinations by the deterministic cipher matching unit 222. For this reason, the time required for the search process can be greatly reduced.
  • the security with respect to the server device 201 is not lowered at all.
  • the identity of keywords for some encrypted keywords ((c 2 ) and (c 5 ) in FIG. 14) stored in the encrypted keyword storage area 211. May be leaked.
  • this is information that can be acquired by the server apparatus 201 even with a conventional secret search (using only probabilistic encryption), the security of the server apparatus 201 is not reduced.
  • the server device 201 stores the deterministic encryption keyword
  • data is leaked to an external attacker
  • extra information is leaked to the attacker.
  • an external attacker cannot perform a frequency analysis attack at the time of data leakage, but in the method shown in this embodiment, a frequency analysis attack is performed on a searched keyword.
  • all search histories and search results may be cached as in the present embodiment.
  • a cache policy may be set.
  • Another meaning of the cache policy is to control the number of trap doors stored in the search history storage area 213.
  • the number of trap doors increases, data registration for the procedure (B. transmission and storage of search target data) It takes time for the verification process (S203) between the encrypted keyword and each trapdoor. Therefore, it is conceivable to set a cache policy that limits the number of trapdoors stored in the search history storage area 213 so that it does not take too much time for data registration.
  • the encrypted keyword (c) that has been verified against the certain trap door (td x ) (verified in S309) and the encrypted keyword (c) that has not been verified are mixed. There are things to do. For this reason, information for distinguishing these is required.
  • the encrypted keyword storage area 211 stores contents as shown in FIG. 16, and the search history storage area 213 stores contents as shown in FIG. 16 and 17 can express the following contents. The following can be said from FIG. For the record IDs 1 to 5 (c 1 to c 5 ) in the encrypted keyword storage area 211 (FIG.
  • trap doors corresponding to (det 1 ) to (det 6 ), that is, (td 1 ) to (td 6 ) are set.
  • the collation used search collation
  • the server apparatus 201 that has received (td 7 , det 1 ) from the search apparatus 401 as a search request matches the search for the record IDs 1 to 5 in FIG. 16 (without using the trap door (td 7 )). I understand that I don't. From FIG.
  • the registration device 301 also encrypts data not used for the search (data before encryption of the encrypted data) and transmits it to the server device 201. However, if it is not necessary to conceal the data, the data may be transmitted to the server device 201 without being encrypted. Further, when data that is not used for the search includes data that needs to be concealed and data that does not need to be concealed, only data that needs to be concealed may be encrypted and transmitted to the server apparatus 201.
  • a means for generating a deterministic encryption keyword encryption in which the same keyword is always converted to the same value (for example, common key encryption such as AES) is used.
  • common key encryption such as AES
  • the encryption is not necessarily performed. That is, since it is not necessary to restore the original keyword from the deterministic encryption keyword, a keyed hash function such as HMAC may be used.
  • a trap door that is generated stochastically from a keyword and a deterministic encryption keyword are used together as a search request.
  • a trapdoor that can be matched with an encryption keyword (probably generated) can be deterministically generated from the keyword, one deterministic trapdoor should have both the role of trapdoor and deterministic encryption keyword.
  • This can be realized, for example, by deterministically generating a random number used for generating a stochastic trapdoor (by applying a hash function to a keyword).
  • the cache policy determined by the procedure (A. Initial setting of each device) is unchanged in the entire system.
  • changes may be made during system operation, for example, by an administrator of a system user company.
  • the encrypted keyword storage area 211 contains a mixture of encrypted keywords that have already been verified against trapdoors in the search history storage area 213, and non-matched encrypted keywords. Information is required.
  • the registration device 301 assigns a data ID for each data, and associates the encrypted keyword with the encrypted data.
  • the server device 201 may perform this. Specifically, the registration device 301 transmits an encryption keyword and a set of encrypted data (c x , d x ) to the server device 201, and the server device 201 assigns a unique data ID (id x ) thereto.
  • (c x , id x ) is stored in the encrypted keyword storage area 211, and (id x , d x ) is stored in the data storage area 212.
  • the server device 201 stores the encrypted keyword and the encrypted data separately in the encrypted keyword storage area 211 and the data storage area 212. However, it is also possible to manage this centrally. In this case, the stored data is as shown in FIG.
  • one keyword corresponds to one data
  • a plurality of keywords may be associated with one data.
  • the data of FIG. 19 is stored in the encrypted keyword storage area 211.
  • the encryption keywords (c 3 ) and (c 4 ) correspond to the data associated with (id 3 ).
  • the data storage area 212 is used to return encrypted data as a search result. However, if there is no need to return encrypted data, the server apparatus 201 may not have the data storage area 212. For example, the encrypted data may be held by another device and only the data ID may be returned to enable access to the encrypted data.
  • the registration device 301 and the search device 401 are separate devices. However, when only the information searcher can register information, these may be combined into one device. In this case, since it is not necessary to disclose the encrypted keyword generation key or the like to the outside, the secret search system 100 can be operated without giving extra information to the attacker.
  • the encryption key and the secret information are stored in the registration encryption key storage area 311 of the registration apparatus 301 and the search encryption key storage area 411 of the search apparatus 401.
  • they may be acquired from the outside when necessary without storing them. For example, acquisition from an IC card or automatic generation from a password / biological information may be executed.
  • only one registration device 301 or search device 401 is used.
  • a plurality of registration devices 301 and search devices 401 may be used to perform data registration and search, respectively.
  • the same search result can be obtained from different devices by sharing the trap door generation key and the deterministic encryption keyword generation key among the plurality of search devices 401.
  • FIG. The second embodiment will be described with reference to FIGS.
  • a hardware configuration of a server device 201, a registration device 301, and a search device 401, which are computers, will be described. Since the server device 201, the registration device 301, and the search device 401 are all computers, the following description will be made assuming the server device 201. The following description of the server device 201 also applies to the registration device 301 and the search device 401.
  • FIG. 26 is a diagram illustrating an example of an appearance of the server apparatus 201 that is a computer.
  • FIG. 27 is a diagram illustrating an example of hardware resources of the server apparatus 201.
  • the server device 201 includes a system unit 830, a display device 813 having a CRT (Cathode / Ray / Tube) or LCD (liquid crystal) display screen, a keyboard 814 (KeyBoard: K / B), and a mouse 815. And hardware resources such as a compact disk device 818 (CDD: Compact Disk Drive), which are connected by a cable or a signal line.
  • the system unit 830 is connected to the network.
  • the server apparatus 201 includes a CPU 810 (Central Processing Unit) for executing a program.
  • the CPU 810 is connected to a ROM (Read Only Memory) 811, a RAM (Random Access Memory) 812, a display device 813, a keyboard 814, a mouse 815, a communication board 816, a CDD 818, and a magnetic disk device 820 via a bus 825.
  • Control hardware devices instead of the magnetic disk device 820, a storage device such as an optical disk device or a flash memory may be used.
  • the RAM 812 is an example of a volatile memory.
  • Storage media such as the ROM 811, the CDD 818, and the magnetic disk device 820 are examples of nonvolatile memories. These are examples of a storage device or a storage unit, a storage unit, a buffer, and a storage area.
  • the communication board 816, the keyboard 814, and the like are examples of an input unit and an input device.
  • the communication board 816, the display device 813, and the like are examples of an output unit and an output device.
  • the communication board 816 (communication unit) is connected to a network.
  • the magnetic disk device 820 stores an operating system 821 (OS), a window system 822, a program group 823, and a file group 824.
  • the programs in the program group 823 are executed by the CPU 810, the operating system 821, and the window system 822.
  • the program group 823 stores a program for executing the function described as “unit” in the description of the above embodiment.
  • the program is read and executed by the CPU 810.
  • the file group 824 includes “determination result”, “calculation result”, “extraction result”, “generation result”, and “processing result”.
  • the described information, data, signal values, variable values, parameters, and the like are stored as items of “ ⁇ file” and “ ⁇ database”.
  • the “ ⁇ file” and “ ⁇ database” are stored in a recording medium such as a disk or a memory.
  • information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 810 via a read / write circuit, and extracted, searched, referenced, and compared. Used for CPU operations such as calculation, calculation, processing, output, printing, display, etc.
  • Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during the CPU operations of extraction, search, reference, comparison, operation, calculation, processing, output, printing, and display. Is remembered.
  • the data and signal values are the memory of the RAM 812, the compact disk of the CDD 818, the magnetic disk of the magnetic disk device 820, other optical disks, mini disks, and DVDs (Digital Versatile Disk). Or the like. Data and signals are transmitted on-line via the bus 825, signal lines, cables, and other transmission media.
  • to part may be “to means”, and “to step”, “to procedure”, and “to process”. May be. That is, what has been described as “ ⁇ unit” may be implemented by software alone, a combination of software and hardware, or a combination of firmware.
  • Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD.
  • the program is read by the CPU 810 and executed by the CPU 810.
  • the program causes the computer to function as the “ ⁇ unit” described above.
  • it causes a computer to execute the procedures and methods of “to part” described above.
  • the server device 201 has been described. However, it is obvious from the above description that the server device 201 can also be grasped as a secret search program for causing the server device 201 to function. Also, it is clear from the above description that the operations of each “ ⁇ unit” of the server apparatus 201 can be grasped as a secret search method.
  • 100 secret search system 201 server device, 210 data storage unit, 211 encrypted keyword storage region, 212 data storage region, 213 search history storage region, 214 cache policy storage region, 220 determination unit, 221 probabilistic encryption verification unit, 222 Deterministic encryption verification unit, 223 cache processing unit, 224 registration unit, 231 communication unit, 301 information registration device, 311 registration encryption key storage area, 321 data encryption processing unit, 322 encrypted keyword generation unit, 331 communication unit, 401 Information search device, 411, search encryption key storage area, 421 data decryption processing unit, 422 trap door generation unit, 423 deterministic encryption keyword generation unit, 431 communication unit.

Abstract

 サーバ装置201は、検索装置401からトラップドアと確定的暗号化キーワードとの組を受信する通信部231、前記組を格納する検索履歴記憶領域213、検索対象データと暗号化キーワードとが関連付けられ、かつ、判明している場合には暗号化キーワードに対応する確定的暗号化キーワードが関連付けられたキーワード情報を格納するデータ記憶部210、受信された確定的暗号化キーワードと一致する確定的暗号化キーワードが検索履歴記憶領域213に存在するかを判定し、存在する場合には、データ記憶部210を対象として、検索履歴記憶領域213に存在する確定的暗号化キーワードを用いて確定的暗号化方式に基づく秘匿検索を実行し、存在しない場合には、データ記憶部210を対象として、受信されたトラップドアと、データ記憶部210に格納された暗号化キーワードとを用いて、確率的暗号化方式に基づく秘匿検索を実行する判定部220を備えた。

Description

サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
 この発明は、秘匿検索を行うサーバ装置、秘匿検索プログラム、記録媒体及び秘匿検索システムに関する。
 秘匿検索システムは、サーバに保存されたデータを、検索者がキーワードを指定して検索でき、かつその際にデータ、キーワードをサーバに対して秘匿する。秘匿検索システムは、機密データ管理のアウトソーシングや、メールサーバにおける暗号化メールのフィルタリングへの応用が期待されている。秘匿検索システムには、種々の安全性要件を達成するための技術や、サーバや検索者のストレージ、通信オーバーヘッド、演算オーバーヘッドを削減するための様々な技術が提案されている。
 秘匿検索は、確定的暗号をベースとしたもの、確率的暗号をベースとしたものに大別できる。確定的暗号をベースとした秘匿検索では、同じキーワードが同じ暗号化キーワードに対応するため、サーバは指定された暗号化キーワードに基づくバイナリ一致判定を行うだけで良く、既存の検索技術を用いた高速化が可能というメリットを持つ。しかし、キーワードの頻度情報がそのまま暗号化キーワードの頻度情報として現れるため、サーバが暗号化キーワードの頻度を調べることによって対応するキーワードを推測する「頻度分析」と呼ばれる攻撃が可能となるデメリットもある。
 一方で、確率的暗号をベースとした秘匿検索では、同じキーワードから異なる暗号化キーワードが生成されるため、キーワードの頻度情報が保存されず、上記の頻度分析攻撃を受けることがない。かわりに、暗号化キーワードと検索要求(トラップドア)の照合に、バイナリ一致判定ではない特別な演算を必要とし、さらに通常の検索で用いられる高速化技術も適用できないため、検索完了までに非常に多くの時間を要するという課題がある。この課題への対策として、確率的暗号と確定的暗号とを併用することで、確率的暗号の安全性と、確定的暗号の高速性との両面を活かす方法がある。
 特許文献1では、確率的暗号の値を格納するテーブル、確定的暗号の値を格納するテーブルを用意し、さらに両テーブル間の関係を暗号化して保持するテーブルを利用することで、確率的暗号の値を高速に検索する方式が開示されている。
特開2011-198079号公報
 特許文献1の方式では、データ登録処理において、確率的暗号の値と、確定的暗号の値との両方をサーバに送信する。これらの対応に関する情報は、その後の処理で暗号化されるため、データが外部の攻撃者に漏えいした場合には、攻撃者は確率的暗号の値と確定的暗号の値を紐付けすることができず、データの安全性は確率的暗号と同程度に保たれることになる。一方、サーバ自身は、データ登録処理の時点で確率的暗号の値と確定的暗号の値とを紐付けできており、悪意を持ったサーバであればこの情報を用いた頻度分析攻撃が可能である。このため、サーバに対する安全性は確定的暗号と同程度まで低下してしまうという課題があった。
 本発明は上記の課題を解決するためになされたもので、サーバに対する安全性を確率的暗号ベースの秘匿検索から低下させることなく、確定的暗号の要素を取り入れることで、秘匿検索システム全体の検索速度を向上することを目的とする。
 この発明のサーバ装置は、
 秘匿検索を実行するサーバ装置において、
 検索装置から秘匿検索要求として、キーワードから確率的暗号化方式によって生成されるトラップドアであって、前記秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用されるトラップドアと、前記トラップドアの生成の元となる前記キーワードから確定的暗号化方式によって生成される確定的暗号化キーワードとの組を受信するサーバ側通信部と、
 過去の秘匿検索要求の履歴として、前記サーバ側通信部によって受信された前記トラップドアと前記確定的暗号化キーワードとの組を格納する検索履歴記憶部と、
 検索対象データと、この検索対象データの暗号化キーワードとが関連付けられると共に、判明している場合には、前記暗号化キーワードに対応する前記確定的暗号化キーワードがさらに関連付けられたキーワード情報を格納するデータ記憶部と、
 前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが、前記検索履歴記憶部に存在するかどうかを判定し、存在すると判定した場合には、前記データ記憶部を対象として、前記検索履歴記憶部に存在する前記確定的暗号化キーワードを用いて、確定的暗号化方式に基づく検索対象データの秘匿検索を実行し、存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとを用いて、確率的暗号化方式に基づく検索対象データの秘匿検索を実行する判定部と
を備えたことを特徴とする。
 本発明によれば、サーバに対する安全性を確率的暗号ベースの秘匿検索から低下させることなく、秘匿検索システム全体の検索速度を向上することができる。
実施の形態1の秘匿検索システム100の構成を示す図。 実施の形態1のサーバ装置201のブロック図。 実施の形態1の登録装置301のブロック図。 実施の形態1の検索装置401のブロック図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1のデータ記憶領域212を示す図。 実施の形態1の検索履歴記憶領域213を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1のデータ記憶領域212を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1のデータ記憶領域212を示す図。 実施の形態1の検索履歴記憶領域213を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1の検索履歴記憶領域213を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1の検索履歴記憶領域213を示す図。 実施の形態1の暗号化キーワード記憶領域211とデータ記憶領域212とを併せた内容の記憶領域を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1の暗号化キーワード記憶領域211を示す図。 実施の形態1のサーバ装置201、登録装置301、検索装置401の初期設定を示すフロー。 実施の形態1の登録装置301の送信処理のフローを示す図。。 実施の形態1のサーバ装置201の登録処理のフローを示す図。。 実施の形態1の検索装置401の検索要求の送信処理のフローを示す図。。 実施の形態1の検索装置401の秘匿検索のフローを示す図。 実施の形態2のサーバ装置201等の外観の一例を示す図。 実施の形態2のサーバ装置201等のハードウェア構成を示す図。
 実施の形態1.
 図1~図25を参照して実施の形態1を説明する。
 図1~図4は秘匿検索システム100及び各装置の構成を示す図である。
 図5~図20は、各記憶領域の状態を示す図である。
 図21~図25は、各装置の動作を示すフローである。なお、各フローに()で構成要素が示されている場合は、その構成要素が処理の主体であることを示す。
 図1は、秘匿検索システム100の構成例である。秘匿検索システム100は、サーバ装置201に保存されたデータ(検索対象データ)を、ユーザがキーワードを指定して検索できる。かつその際に、秘匿検索システム100は、データ、キーワードをサーバ装置201に対して秘匿する。秘匿検索システム100は、サーバ装置201、情報登録装置301、情報検索装置401を備える。サーバ装置201、情報登録装置301、情報検索装置401はネットワーク101に接続しており、これらは、ネットワーク101を介して通信する。以下、情報登録装置301、情報検索装置401は、登録装置301、検索装置401と呼ぶ。
 図2は、秘匿検索システム100において、データ、キーワードを保持し、検索を行うサーバ装置201の構成例を表すブロック図である。図2に示す各装置の構成要素を以下に説明する。
(1)暗号化キーワード記憶領域211は、確率的暗号によって暗号化されたキーワード(以降、暗号化キーワード)と、確定的暗号によって暗号化されたキーワード(以降、確定的暗号化キーワード)を、対応するデータIDと関連付けて記憶する。
 図5は、暗号化キーワード記憶領域211が記憶するデータの一例を表す。
(2)データ記憶領域212は、データを、対応するデータIDと関連付けて記憶する。
 図6は、データ記憶領域212が記憶するデータの一例を表す。なお、データの例としては年齢などの数値、性別などの属性、氏名などの文字列、文書などのファイルなどが挙げられる。また、一つのデータIDに対して複数種類のデータを保持しても良い。暗号化キーワード記憶領域211とデータ記憶領域212とは、データ記憶部210を構成する。なお、後述の図23のS201で述べるように、暗号化キーワード記憶領域211とデータ記憶領域212において、データIDを介して暗号化キーワードとデータとは関連付けられている。例えば図5、図6において、データID(id)を介して暗号化キーワード(c)とデータ(d)とが関連付けられている。また関連する確定的暗号化キーワード(det)が判明している場合には、図13の説明で後述するように、暗号化キーワード(c)とデータ(d)とに対して、判明している確定的暗号化キーワード(det)が関連づけられる。この関係を有する情報をキーワード情報という。キーワード情報は暗号化キーワード記憶領域211とデータ記憶領域212とで実現してもよいし、図18で後述する内容で実現してもよい。
(3)検索履歴記憶領域213(検索履歴記憶部)は、検索装置401から送られてきた過去の検索要求を、検索履歴として記憶する。
 図7は、検索履歴記憶領域213が記憶するデータの一例を表す。
(4)キャッシュポリシー記憶領域214(ポリシー記憶部)は、検索装置401から送られてきた検索要求や、検索処理の結果を、検索履歴記憶領域213や暗号化キーワード記憶領域211に記憶するか否かのポリシーを記憶する。
ポリシーの例としては、
「全ての検索要求と検索結果をキャッシュする」、
「検索者から指定があった場合に限り、検索要求と検索結果をキャッシュする」、
「全ての検索要求をキャッシュするとともに、n回以上実行された検索要求に対する検索結果もキャッシュする」、
「検索要求のうち確定的暗号化キーワード、および全ての検索結果をキャッシュする」、
などの例が挙げられる。
(5)確率的暗号照合部221は、検索装置401から送られてきた検索要求に含まれるトラップドアと、暗号化キーワード記憶領域211が記憶する、(確率的暗号による)暗号化キーワードについて、キーワードが一致するかどうかを判定する。また、検索履歴記憶領域213が記憶するトラップドアと、登録装置301から送られてきた暗号化キーワードについての、キーワード一致判定も行う。これらの処理は、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を用いて実現できる。
(6)確定的暗号照合部222は、検索装置401が送信した検索要求に含まれる確定的暗号化キーワードと、暗号化キーワード記憶領域211が記憶する、確定的暗号化キーワードについて、キーワードが一致するかどうかを判定する。この処理は、バイナリ一致判定を用いて実現できる。確率的暗号照合部221と確定的暗号照合部222とは、判定部220を構成する。
(7)キャッシュ処理部223は、キャッシュポリシー記憶領域214の内容に基づき、検索装置401から送られてきた検索要求や、検索処理の結果を、検索履歴記憶領域213や暗号化キーワード記憶領域211に記憶する。
(8)登録部224は登録装置301から受信した暗号化キーワード、暗号化データ等を暗号化キーワード記憶領域211、データ記憶領域212に格納する。
(9)通信部231(サーバ側通信部)は、登録装置301や検索装置401と通信を行う。
 図3は、本秘匿検索システム100において、サーバ装置201への暗号化データ(検索対象データ)の登録を行う登録装置301の構成例を表すブロック図である。
(1)図3において、登録用暗号鍵記憶領域311は、データ登録の際のデータ暗号化、暗号化キーワード生成に用いる暗号鍵を記憶する。
(2)データ暗号処理部321は、登録用暗号鍵記憶領域311が記憶するデータ暗号化鍵を用い、データを暗号化する。この処理は、既存の暗号技術(例えばRSA(登録商標)などの公開鍵暗号技術)を用いて実現できる。
(3)暗号化キーワード生成部322は、登録用暗号鍵記憶領域311が記憶する暗号化キーワード生成鍵を用い、キーワードから、秘匿検索用の暗号化キーワードを生成する。この処理は、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を用いて実現できる。
(4)通信部331は、サーバ装置201と通信を行う。
 図4は、本秘匿検索システム100において、サーバ装置201に暗号化データの検索を依頼する検索装置401の構成例を表すブロック図である。
(1)図4において、検索用暗号鍵記憶領域411は、データ検索の際のトラップドア生成、確定的暗号化キーワード生成、およびデータ復号に用いる秘密情報を記憶する。
(2)データ復号処理部421は、検索用暗号鍵記憶領域411が記憶するデータ復号鍵を用い、データを復号する。この処理は、既存の暗号技術(例えばRSA(登録商標)などの公開鍵暗号技術)を用いて実現できる。
(3)トラップドア生成部422は、検索用暗号鍵記憶領域411が記憶するトラップドア生成鍵を用い、キーワードから、秘匿検索用の検索要求(トラップドア)を生成する。この処理は、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を用いて実現できる。
(4)確定的暗号化キーワード生成部423は、検索用暗号鍵記憶領域411が記憶する確定的暗号化キーワード生成鍵を用い、キーワードから、確定的暗号化キーワードを生成する。この処理は、既存の暗号技術(例えばAESなどの共通鍵暗号技術)を用いて実現できる。
(5)通信部431(検索側送信部)は、サーバ装置201と通信を行う。
 秘匿検索システム100における手続きは、
(A)各装置の初期設定を行う部分、
(B)登録装置301が検索対象データをサーバ装置201に送信、格納する部分、
(C)検索装置401がサーバ装置201上にあるデータを検索、取得する部分、
に大別される。以下、それぞれの手続きについて説明する。
(A.各装置の初期設定)
 図21は、サーバ装置201等の初期設定を示す。図21に示すように、サーバ装置201は、キャッシュポリシーをキャッシュポリシー記憶領域214に格納する。キャッシュポリシーは、例えば、「検索装置401から送られてきた検索要求や、検索処理の結果を、検索履歴記憶領域213や暗号化キーワード記憶領域211に記憶するか否か」のポリシーである。キャッシュポリシーは、検索装置401や、秘匿検索システム100を利用する企業などの管理者が決定してサーバ装置201に送付しても良い。あるいは、サーバ装置201自身が決定しても良い。なお、以降の説明では、キャッシュポリシーが「全ての検索要求と検索結果をキャッシュする」であるとして説明を行う。
 図21に示すように、検索装置401は、データ復号、トラップドア生成、および確定的暗号化キーワード生成に用いる秘密情報を、検索用暗号鍵記憶領域411に格納する。これはデータ復号処理部421、トラップドア生成部422、確定的暗号化キーワード生成部423が自ら生成しても良い。あるいは、外部で適切に生成された秘密情報を取得しても良い。データ復号、トラップドア生成用の秘密情報を自ら生成する場合は、対応するデータ暗号化、暗号化キーワード生成用の暗号鍵を公開、もしくは登録装置301に送付する。
 図21に示すように、登録装置301は、データ暗号化、および暗号化キーワード生成に用いる暗号鍵を、登録用暗号鍵記憶領域311に格納する。通常は、正当な検索装置401が検索・復号処理を正しく行えるよう、登録装置301は、検索装置401の検索用暗号鍵記憶領域411が記憶する秘密情報に対応する暗号鍵を取得し、格納する。以上で本手続きは完了である。
(B.検索対象データの送信、格納)
 登録装置301がデータをサーバ装置201に送信する場合、登録装置301は、後に検索装置401による秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。これらを受信したサーバ装置201は、必要に応じて検索履歴記憶領域213を参照しながら、暗号化キーワード記憶領域211、データ記憶領域212への格納を行う。以下、本手続きの手順を具体例とともに説明する。
 図22は、登録装置301による送信処理のフローである。図22を参照して、登録装置301によるサーバ装置201へのデータの送信処理を説明する。
(1)まず、S101において、登録装置301のデータ暗号処理部321が、データに対し、ユニークなデータID(idとする)を割り当てる。
(2)次にS102において、データ暗号処理部321が、登録用暗号鍵記憶領域311が記憶するデータ暗号化鍵を用いて、データの暗号化を行う。ここでは、正当な検索装置401だけが復号できるような、既存の暗号技術を利用する(暗号化データをdとする)。
(3)その後、S103において、暗号化キーワード生成部322が、データに関連付けられたキーワードを、登録用暗号鍵記憶領域311が記憶する暗号化キーワード生成鍵を用いて暗号化する。ここでは、正当な検索装置401だけが検索できるような、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を利用する(暗号化キーワードをcとする)。
(4)そしてS104において、通信部331が、データID、暗号化キーワード、暗号化データの組(id,c,d)をサーバ装置201に送信する。
(サーバ装置201)
 図23は、サーバ装置201によるデータの登録処理のフローである。図23を参照して、サーバ装置201のデータ登録処理を説明する。
(1)通信部231が登録装置301から(id,c,d)を受信すると、登録部224は、暗号化キーワード(c)をデータID(id)と関連付けて暗号化キーワード記憶領域211に格納し、暗号化データ(d)をデータID(id)と関連付けてデータ記憶領域212に格納する(S201)。つまり登録部224は、(c、id)、(d、id)の様に対応付けて格納する。例えば、本手続き前の暗号化キーワード記憶領域211、データ記憶領域212の内容がそれぞれ図8、図9のとおりであったとする。この場合、サーバ装置201が(id,c,d)を受信して処理を行うと、暗号化キーワード記憶領域211、データ記憶領域212の内容はそれぞれ図10、図11のように更新される。
(2)S202において、確率的暗号照合部221は、検索履歴記憶領域213にトラップドアが存在するかどうかを判定する。「トラップドア」とは、検索装置401からサーバ装置201に、秘匿検索要求として送信される情報である。トラップドアについては、図24のS301で後述する。トラップドアが存在する場合(S202でYES)、確率的暗号照合部221がトラップドアを用いた照合処理を行う(トラップドアが存在しない場合は本処理をスキップする)。
(3)トラップドアが存在する場合、S203において、確率的暗号照合部221が、検索履歴記憶領域213が記憶する各トラップドア(td)と、受信した暗号化キーワード(c)とについて、キーワードが一致するかどうかの一致判定を実行(照合処理を実行)する。
(4)確率的暗号照合部221は、S204において、検索履歴記憶領域213のトラップドア(td)の中に一致するものがあるかどうか判定する。一致するものがあれば(tdとする)、確率的暗号照合部221は、検索履歴記憶領域213でトラップドア(td)と関連付けて格納されている、確定的暗号化キーワード(det)を特定する。確率的暗号照合部221は、特定した(det)を、暗号化キーワード記憶領域211内の確定的暗号化キーワードとして、受信した暗号化キーワード(c)と関連付けて格納する(S205)。
 例えば上述の例の続きとして、検索履歴記憶領域213の内容が図12のとおりであった場合、確率的暗号照合部221は、トラップドア(td)~(td)と暗号化キーワード(c)のキーワード一致判定を行う。ここで(td)と(c)のキーワード一致が確認されれば、暗号化キーワード(c)に対応する確定的暗号化キーワードが(det)であることが分かる。このため、暗号化キーワード記憶領域211に(c)と(det)を関連付けて格納する。結果、暗号化キーワード記憶領域211は図13のように更新される。なお、キーワード一致が見つからなかった場合は、特に処理を行わない。以上で本手続きは完了である。
(C.データの検索、取得)
 正当な検索装置401は、サーバ装置201に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。以下、本手続きの手順を具体例とともに説明する。
(検索装置401による検索要求)
 図24は、検索装置401による検索要求の処理のフローである。図24を参照して、検索装置401による検索要求の送信処理を説明する。
(1)まず、S301において、検索装置401のトラップドア生成部422が、検索用暗号鍵記憶領域411が記憶するトラップドア生成鍵を用いて、検索したいキーワードからトラップドアを生成する。ここでは、既存の暗号技術(確率的暗号ベースの秘匿検索技術)を利用する(トラップドアをtdとする)。トラップドアとは、検索したいキーワードから確率的暗号化方式によって生成される情報である。トラップドアは、秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用される。同時に、S302において、確定的暗号化キーワード生成部423が、検索用暗号鍵記憶領域411が記憶する確定的暗号化キーワード生成鍵を用いて、検索したいキーワードから確定的暗号化キーワードを生成する。ここでは、確定的暗号化方式として既存の暗号技術(例えばAESなどの共通鍵暗号技術)を利用する(確定的暗号化キーワードをdetとする)。つまり確定的暗号化キーワード生成部423は、トラップドアdの生成の元となるキーワードtdから、確定的暗号化方式によって確定的暗号化キーワード(det)を生成する。
そして、
(2)通信部431が、トラップドア(td)、確定的暗号化キーワード(det)の組(td,det)を、秘匿検索要求としてサーバ装置201に送信する(S303)。
なお、(det)は確定的暗号によって生成されるため、検索したいキーワードが同一であれば、常に同一の値が得られることになる。
(3)検索装置401は、サーバ装置201から検索結果を受信する(S401)。
(サーバ装置201)
 図25は、サーバ装置201による秘匿検索の処理フローである。図25を参照して、サーバ装置201による秘匿検索処理を説明する。
(1)通信部231は検索装置401から検索要求(td,det)を受信する。
(2)この検索要求を受信したサーバ装置201は、まず、検索しようとするキーワードが、これまでの検索履歴に含まれているか否かを判定する。具体的には、確定的暗号照合部222が、検索履歴記憶領域213が記憶する各確定的暗号化キーワード(det)と、検索要求(td,det)に含まれる確定的暗号化キーワード(det)について、キーワードが一致するかどうかを判定する(S304、S305)。この判定(検索)はバイナリ一致判定で良いため、既存の(暗号化を考えない場合の)検索技術が利用できる。既存の検索技術の例としては、データをあらかじめソートしておくことによる高速化や、ハッシュテーブルの利用による高速化などが挙げられる。
(3)ここでバイナリ一致が見つかった場合(S305でYES)は、以前の検索結果が利用できることが分かる。以前の検索結果が利用できることが分かるのは、後述するキャッシュ処理部によるキャッシュ処理(S312)に基づく。確定的暗号照合部222が、暗号化キーワード記憶領域211から、確定的暗号化キーワードが検索要求に含まれる確定的暗号化キーワード(det)と一致するレコードを抽出する。この抽出処理は上記(S304)と同様、バイナリ一致判定で良いため、既存の検索技術が利用できる。そして、確定的暗号照合部222は、一致したレコードからデータID(id)を取得し(S306)、データ記憶領域212から、取得したデータIDに対応する暗号化データ(d)を取得する(S307)。
(4)その後、通信部231が検索装置401に、S307で取得された暗号化データを送信する(S308)。なお。複数取得された場合は全て送信するようにしても、一部を送信するようにしても良い。
(5)一方、バイナリ一致が見つからなかった場合は(S305でNO)、既存の秘匿検索技術を利用して、暗号化キーワード記憶領域211のレコードを1件ずつ検索する。具体的には、確率的暗号照合部221が、暗号化キーワード記憶領域211に含まれる全ての暗号化キーワード(c)を対象として、検索要求(td,det)に含まれるトラップドア(td)とのキーワード一致判定を行う(S309)。そして、受信したトラップドア(td)と一致する暗号化キーワード(c)がヒットした場合(S310でYES)、確率的暗号照合部221は、暗号化キーワード記憶領域211から、一致したレコードからデータID(id)を取得し、データ記憶領域212からデータID(id)に対応する暗号化データを取得する(S311)。その後、通信部231が検索装置401に、上記で取得された暗号化データを送信する(S308)
(6)なお、検索要求に対応する暗号化キーワードが存在しなかった場合は(S310でNO)、その旨を送信する。
(7)<キャッシュ処理>
 確定的暗号化キーワードのバイナリ一致が見つからなかった場合(S305でNO)では、さらに、「検索要求および検索結果」のキャッシュ処理を実施する(S312)。具体的には、キャッシュ処理部223が、キャッシュポリシー記憶領域214に格納されたキャッシュポリシー(履歴ポリシー)の内容に従って、検索要求を検索履歴記憶領域213に格納する。また、キャッシュ処理部223は、暗号化キーワード記憶領域211のレコードのうち、キーワードが一致したレコードについて、確定的暗号化キーワード(det)として、検索要求に含まれる確定的暗号化キーワード(det)を格納する(S311,S312)。この場合、S310の判定で暗号化キーワード記憶領域211に検索要求(td、det)の(td)に対応する暗号化キーワード(c)がヒットした場合には(ヒットしたcをcとする)、キャッシュ処理部223は、キャッシュポリシー記憶領域214に格納されたキャッシュポリシー(関連付けポリシー)の内容に従って、検索要求(td、det)に含まれるdetを格納するかどうかを決定する。キャッシュポリシーが格納を指示する場合は、キャッシュ処理部223は検索要求のdetを、暗号化キーワード記憶領域211の(c)に対応付けて格納する。S312のキャッシュ処理によって、次回以降、同じキーワードで検索が行われる際に、確定的暗号化キーワード(det)を利用した高速な検索(バイナリ一致検索)が可能となる(S306,S307)。また、登録装置301からの送信により、データ(id,c,d)が追加で登録された際にも、検索履歴記憶領域213のトラップドアを利用して、過去の検索キーワード(td)と一致する暗号化キーワード(c)をあらかじめ洗い出すことができるので、検索処理に要する時間を短縮できる(図23のS202~S205)。
(検索装置401)
 最後に、図24のS401に示すように、検索結果である暗号化データを受信した検索装置401のデータ復号処理部421が、検索用暗号鍵記憶領域411が記憶するデータ復号鍵を用いて、暗号化データを復号する。ここでは、正当な検索装置401だけが復号できるような、既存の暗号技術を利用する。以上で本手続きは完了である。
 ここで、本手続きについて、例を使って補足説明を行う。あらかじめ、サーバ装置201の暗号化キーワード記憶領域211、データ記憶領域212、検索履歴記憶領域213の内容がそれぞれ図10、図11、図12のとおりであるとする。また、キャッシュポリシー記憶領域214には、手続き(A.各装置の初期設定)で述べたように「全ての検索要求と検索結果をキャッシュする」というポリシーが記憶されているものとする。検索装置401が、初めて検索されるキーワードから検索要求(td,det)を生成し、これをサーバ装置201に送信したときを考える。すなわち、(det)は、(det)~(det)とは異なる値である。このとき、サーバ装置201の確定的暗号照合部222が検索履歴記憶領域213(図12)から確定的暗号化キーワード(det)を検索しても見つからない。したがって、確率的暗号照合部221が、暗号化キーワード記憶領域211(図10)からトラップドア(td)とマッチする暗号化キーワードを検索する。この結果、例えば(c)と(c)がマッチしたとすると、サーバ装置201はこれらに対応する暗号化データ(d)と(d)を、検索結果として検索装置401に送信する。また、サーバ装置201のキャッシュ処理部223は、キャッシュポリシーに基づき、暗号化キーワード記憶領域211(図10)のマッチしたレコードに確定的暗号化キーワード(det)を格納し、検索履歴記憶領域213(図12)に検索要求(td,det)を格納する。その結果、暗号化キーワード記憶領域211および検索履歴記憶領域213はそれぞれ図14、図15のように更新される。
 この状況で、さらに検索装置401が、同じキーワードから生成された検索要求(td,det)をサーバ装置201に送信したとする(確定的暗号化キーワードは同一の値となるが、トラップドアは異なる値となることに注意)。サーバ装置201の確定的暗号照合部222が検索履歴記憶領域213(図15)から確定的暗号化キーワード(det)を検索すると、上で格納したものが見つかる。したがって、確定的暗号照合部222が、暗号化キーワード記憶領域211(図14)から確定的暗号化キーワード(det)を含むレコードを検索する。結果、(c)と(c)を含むレコードがマッチするため、サーバ装置201はこれらに対応する暗号化データ(d)と(d)を、検索結果として検索装置401に送信する。今回は検索履歴記憶領域213(図15)のバイナリ一致判定で確定的暗号化キーワードが見つかったため、検索要求・検索結果に関するキャッシュ処理は行わない。
 以上、上記(A.各装置の初期設定)~(C.データの検索、取得)の手続きによって、検索装置401がデータ・キーワードをサーバ装置201に対して秘匿したまま検索できる秘匿検索システムが実現できる。(C.データの検索、取得)で説明した例からも分かるように、同じキーワードの2回目以降の検索では確率的暗号照合部221による処理(確率的暗号ベースの秘匿検索)が一切行われず、キーワード一致判定は全て確定的暗号照合部222によるバイナリ一致判定のみである。このため、検索処理に要する時間を大幅に短縮することが可能である。同時に、安全性について考えると、本実施の形態で示した方式が、従来の(確率的暗号だけを用いる)秘匿検索と比べて余分にサーバ装置201に開示する情報は、検索要求に含まれる確定的暗号化キーワード(det)のみである。したがって、確定的暗号化キーワードとして安全なものを利用すれば、サーバ装置201に対する安全性は全く低下しないことになる。なお、システム運用の途中で、例えば図14のように、暗号化キーワード記憶領域211が記憶する一部の暗号化キーワード(図14では(c)と(c))について、キーワードの同一性が漏れた状態になることがある。しかし、これは従来の(確率的暗号だけを用いる)秘匿検索であってもサーバ装置201が取得可能な情報であるため、サーバ装置201に対する安全性が低下しているわけではない。
 一方で、サーバ装置201が確定的暗号化キーワードを記憶することによって、データが外部の攻撃者に漏えいした場合、攻撃者に余分な情報が漏れることになる。すなわち、従来の(確率的暗号だけを用いる)秘匿検索ではデータ漏えい時に外部の攻撃者が頻度分析攻撃をすることはできないが、本実施の形態で示した方式では、検索済みキーワードに関して頻度分析攻撃が可能となる。ここには「検索の高速性」「外部攻撃者に対する安全性」のトレードオフがあるが、これをコントロールするのがキャッシュポリシー記憶領域214、キャッシュ処理部223の一つの役割である。すなわち、秘匿検索システム100を利用する側で、検索の高速性を最優先したいのであれば、本実施の形態のように全ての検索履歴、検索結果をキャッシュすれば良い。あるいは、頻繁に使われる検索キーワードだけの高速化で十分ならば、そのようなキャッシュポリシーを設定すれば良い。
 キャッシュポリシーのもう一つの意義は、検索履歴記憶領域213に記憶するトラップドアの数をコントロールすることである。本実施の形態1のように、全ての検索履歴(に含まれるトラップドア)をキャッシュすると、トラップドアの数が増えた際、手続き(B.検索対象データの送信、格納)のデータ登録で、暗号化キーワードと各トラップドアとの照合処理(S203)に時間を要してしまう。そこで、データ登録に時間をかけすぎないよう、検索履歴記憶領域213に記憶するトラップドアの数を制限するようなキャッシュポリシーを設定することが考えられる。
 この場合、暗号化キーワード記憶領域211の中に、あるトラップドア(td)に対して照合済み(S309の照合)の暗号化キーワード(c)と、未照合の暗号化キーワード(c)が混在することがある。このため、これらを区別するための情報が必要となる。例えば、暗号化キーワード記憶領域211が図16のような内容を記憶し、検索履歴記憶領域213が図17のような内容を記憶するとする。この図16、図17により、次の内容が表現できる。図17から次のことがいえる。暗号化キーワード記憶領域211(図16)のレコードID1~5(c~c)については(det)~(det)に対応するトラップドア、すなわち(td)~(td)を用いた照合(検索照合)が行われたが、その後(td)と(td)が削除され、図16のレコードID6については(td)~(td)での照合だけが行われたという状況を表現できる。この場合、例えば検索要求として検索装置401から(td,det)を受信したサーバ装置201は、図16のレコードID1~5については(トラップドア(td)を用いることなく)検索にマッチしないことが分かる。これは、図17から、(det)に対応するトラップドアは、図16のレコードID1~5(c~c)と検索照合処理(S309)されていることがわかる。また、図16から、暗号化キーワード(c~c)は、いずれも(det)と対応付けられていないので、暗号化キーワード(c~c)は、(det)に対応する(td)にマッチしない。よって、暗号化キーワード(c)とトラップドア(td)の照合処理(検索時の照合)だけを実行すれば良いことになる。なお、トラップドアの数が上限に達した際の、トラップドアの取捨選択については、既存のキャッシュ技術が利用できる。
 なお、本実施の形態では、登録装置301は、検索に用いないデータ(暗号化データの暗号化前のデータ)も暗号化してサーバ装置201に送信している。しかし、データの秘匿が不要であれば暗号化せずにサーバ装置201にデータを送信しても良い。また、検索に用いないデータの中に秘匿が必要なものと不要なものとが混在している場合、秘匿が必要なものだけを暗号化してサーバ装置201に送信するようにしても良い。
 また、本実施の形態では、確定的暗号化キーワードを生成する手段として、同一キーワ―ドが常に同一の値に変換される暗号化(例えばAESなどの共通鍵暗号化)を用いている。しかし、同一キーワードが同一の値に変換され、かつ元のキーワードが秘匿されるのであれば、必ずしも暗号化でなくても良い。すなわち、確定的暗号化キーワードから元のキーワードを復元する必要がないため、HMACなどの鍵付きハッシュ関数を利用しても良い。
 また、本実施の形態では、検索要求として、キーワードから確率的に生成されるトラップドアと、確定的暗号化キーワードを併用している。しかし、(確率的に生成される)暗号化キーワードと照合できるトラップドアをキーワードから確定的に生成できれば、確定的トラップドア一つに、トラップドア・確定的暗号化キーワード両方の役割を持たせることも可能である。これは、例えば確率的トラップドア生成に用いる乱数を、(キーワードにハッシュ関数を適用するなどして)確定的に生成するなどして実現できる。ただし、この場合、乱数を確定的に生成することによって、方式の安全性が低下する可能性があるため注意が必要である。
 また、本実施の形態では、手続き(A.各装置の初期設定)で決定したキャッシュポリシーはシステム全体で不変としている。しかし、システム運用の途中で、例えばシステム利用企業の管理者によって変更が行われても良い。
 また、本実施の形態では、手続き(B.検索対象データの送信、格納)でサーバ装置201が暗号化キーワードを受け取るたびに、検索履歴記憶領域213が記憶する各トラップドアとの照合処理を行っている。しかし、この照合処理を例えば(サーバ装置201の処理能力に余裕があると思われる)夜中に一括で行うようにしても良い。この場合、暗号化キーワード記憶領域211の中に、検索履歴記憶領域213中のトラップドアに対して照合済みの暗号化キーワードと、未照合の暗号化キーワードが混在することになるため、これらを区別するための情報が必要となる。
 また、本実施の形態では、登録装置301がデータごとにデータIDを割り当て、暗号化キーワードと暗号化データの対応付けを行っている。しかし、これをサーバ装置201が行っても良い。具体的には、登録装置301が暗号化キーワード、暗号化データの組(c,d)をサーバ装置201に送信し、サーバ装置201がこれにユニークなデータID(id)を割り当てたうえで、(c,id)を暗号化キーワード記憶領域211に、(id,d)をデータ記憶領域212に格納する。
 また、本実施の形態では、サーバ装置201において、暗号化キーワードと暗号化データを、暗号化キーワード記憶領域211とデータ記憶領域212に分けて格納している。しかし、これを一元的に管理することも可能である。この場合、格納されるデータは例えば図18のようになる。
 また、本実施の形態では、一つのデータに対して一つのキーワードが対応する例を示した。しかし、一つのデータに複数のキーワードを対応させても良い。この場合、例えば図19のデータを暗号化キーワード記憶領域211に格納する。図19の例では、(id)に対応付けられたデータに、暗号化キーワード(c)、(c)が対応することになる。また、図20のように、キーワードの種類が複数あっても良い。
 また、本実施の形態では、検索結果として暗号化データを返すためにデータ記憶領域212を利用している。しかし、暗号化データを返す必要がない場合、サーバ装置201がデータ記憶領域212を持たなくても良い。例えば、暗号化データは別の装置が保持し、そこへのアクセスを可能とするためにデータIDだけを返すようにしても良い。
 また、本実施の形態では、登録装置301と検索装置401を別々の装置としている。しかし、情報検索者のみが情報登録可能である場合など、これらを一つの装置にまとめても良い。この場合、暗号化キーワード生成鍵などを外部に公開する必要がなくなるため、攻撃者に余分な情報を与えることなく秘匿検索システム100を運用することができる。
 また、本実施の形態では、登録装置301の登録用暗号鍵記憶領域311や、検索装置401の検索用暗号鍵記憶領域411に暗号鍵や秘密情報を記憶している。しかし、これらを記憶せずに、必要時に外部から取得するようにしても良い。例えば、ICカードからの取得や、パスワード・生体情報からの自動生成などを実行しても良い。
 また、本実施の形態では、登録装置301や検索装置401を1個だけ利用している。しかし、複数の登録装置301や検索装置401を利用して、データの登録や検索をそれぞれが実行できるようにしても良い。この場合、複数の検索装置401間でトラップドア生成鍵や確定的暗号化キーワード生成鍵を共有することで、異なる装置からでも同じ検索結果を得ることが可能となる。一方で、同じ検索キーワードでも、装置ごとに検索結果を変えたい場合は、トラップドア生成鍵を装置ごとに変えるのに加えて、確定的暗号化キーワード生成鍵も変える必要がある。
 実施の形態2.
 図26、図27を参照して実施の形態2を説明する。実施の形態2は、コンピュータであるサーバ装置201,登録装置301,検索装置401のハードウェア構成を説明する。サーバ装置201,登録装置301,検索装置401はいずれもコンピュータであるので、以下ではサーバ装置201を想定して説明する。以下のサーバ装置201の説明は登録装置301,検索装置401にも当てはまる。
 図26は、コンピュータであるサーバ装置201の外観の一例を示す図である。
 図27は、サーバ装置201のハードウェア資源の一例を示す図である。
 外観を示す図26において、サーバ装置201は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(KeyBoard:K/B)、マウス815、コンパクトディスク装置818(CDD:Compact Disk Drive)などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット830はネットワークに接続している。
 またハードウェア資源を示す図27において、サーバ装置201は、プログラムを実行するCPU810(Central Processing Unit)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、表示装置813、キーボード814、マウス815、通信ボード816、CDD818、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
 RAM812は、揮発性メモリの一例である。ROM811、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファ、記憶領域の一例である。通信ボード816、キーボード814などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813などは、出力部、出力装置の一例である。通信ボード816(通信部)は、ネットワークに接続されている。
 磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
 上記プログラム群823には、以上の実施の形態の説明において「~部」として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。
 ファイル群824には、以上の実施の形態の説明において、「~の判定結果」、「~の算出結果」、「~の抽出結果」、「~の生成結果」、「~の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「~ファイル」や「~データベース」の各項目として記憶されている。「~ファイル」や「~データベース」は、ディスクやメモリなどの記録媒体に記憶される。また、ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
 また、以上に述べた実施の形態の説明において、データや信号値は、RAM812のメモリ、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
 また、以上の実施の形態の説明において、「~部」として説明したものは、「~手段」、であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。すなわち、「~部」として説明したものは、ソフトウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以上に述べた「~部」としてコンピュータを機能させるものである。あるいは、以上に述べた「~部」の手順や方法をコンピュータに実行させるものである。
 以上の実施の形態では、例えばサーバ装置201を説明したが、サーバ装置201は、サーバ装置201として機能させるための秘匿検索プログラムとしても把握できることは以上の説明から当然である。また、サーバ装置201の各「~部」の動作は、秘匿検索方法としても把握できることは以上の説明により明らかである。
 100 秘匿検索システム、201 サーバ装置、210 データ記憶部、211 暗号化キーワード記憶領域、212 データ記憶領域、213 検索履歴記憶領域、214 キャッシュポリシー記憶領域、220 判定部、221 確率的暗号照合部、222 確定的暗号照合部、223 キャッシュ処理部、224 登録部、231 通信部、301 情報登録装置、311 登録用暗号鍵記憶領域、321 データ暗号処理部、322 暗号化キーワード生成部、331 通信部、401 情報検索装置、411 検索用暗号鍵記憶領域、421 データ復号処理部、422 トラップドア生成部、423 確定的暗号化キーワード生成部、431 通信部。

Claims (7)

  1.  秘匿検索を実行するサーバ装置において、
     検索装置から秘匿検索要求として、キーワードから確率的暗号化方式によって生成されるトラップドアであって、前記秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用されるトラップドアと、前記トラップドアの生成の元となる前記キーワードから確定的暗号化方式によって生成される確定的暗号化キーワードとの組を受信するサーバ側通信部と、
     過去の秘匿検索要求の履歴として、前記サーバ側通信部によって受信された前記トラップドアと前記確定的暗号化キーワードとの組を格納する検索履歴記憶部と、
     検索対象データと、この検索対象データの暗号化キーワードとが関連付けられると共に、判明している場合には、前記暗号化キーワードに対応する前記確定的暗号化キーワードがさらに関連付けられたキーワード情報を格納するデータ記憶部と、
     前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが、前記検索履歴記憶部に存在するかどうかを判定し、存在すると判定した場合には、前記データ記憶部を対象として、前記検索履歴記憶部に存在する前記確定的暗号化キーワードを用いて、確定的暗号化方式に基づく検索対象データの秘匿検索を実行し、存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとを用いて、確率的暗号化方式に基づく検索対象データの秘匿検索を実行する判定部と
    を備えたことを特徴とするサーバ装置。
  2.  前記サーバ装置は、さらに、
     前記サーバ側通信部によって受信された前記トラップドアと前記確定的暗号化キーワードとの組を前記検索履歴記憶部に格納するかどうかの履歴ポリシーを格納するポリシー記憶部と、
     前記判定部が、前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが前記検索履歴記憶部に存在しないと判定した場合には、受信した前記トラップドアと前記確定的暗号化キーワードとの組を前記検索履歴記憶部に格納するかどうかを前記ポリシー記憶部の前記履歴ポリシーに従って決定するキャッシュ処理部と
    を備えたことを特徴とする請求項1記載のサーバ装置。
  3.  前記判定部は、
     前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが前記検索履歴記憶部に存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとの一致判定を実行し、
     前記ポリシー記憶部は、
     前記判定部が前記一致判定によって、受信した前記トラップドアと一致する前記暗号化キーワードを前記データ記憶部から検出した場合には、検出された前記暗号化キーワードに、受信した前記トラップドアの組の前記確定的暗号化キーワードを関連付けるかどうかの関連付けポリシーを含み、
     前記キャッシュ処理部は、
     前記判定部が前記一致判定によって、受信した前記トラップドアと一致する前記暗号化キーワードを前記データ記憶部から検出した場合には、検出された前記暗号化キーワードの前記キーワード情報に、受信した前記トラップドアの組の前記確定的暗号化キーワードを関連付けるかどうかを前記関連付けポリシーに従って決定することを特徴とする請求項2記載のサーバ装置。
  4.  前記サーバ側通信部は、
     検索対象データの登録を要求する登録装置から、検索対象データと、この検索対象データの暗号化キーワードとを受信し、
    前記サーバ装置は、さらに、
     前記サーバ側通信部が受信した前記検索対象データと前記暗号化キーワードとを関連付けて前記データ記憶部に格納する登録部を
    備え、
     前記判定部は、
     前記サーバ側通信部が受信した前記暗号化キーワードと、前記検索履歴記憶部に格納された前記トラップドアとの一致判定を実行し、前記一致判定によって前記サーバ側通信部が受信した前記暗号化キーワードと一致する前記トラップドアを検出した場合には、検出された前記トラップドアと組をなす前記確定的暗号化キーワードを、前記登録部によって前記データ記憶部に格納された前記暗号化キーワードに関連付けることを特徴とする請求項1~3のいずれかに記載のサーバ装置。
  5.  コンピュータを、
     検索装置から秘匿検索要求として、キーワードから確率的暗号化方式によって生成されるトラップドアであって、秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用されるトラップドアと、前記トラップドアの生成の元となる前記キーワードから確定的暗号化方式によって生成される確定的暗号化キーワードとの組を受信するサーバ側通信部、
     過去の秘匿検索要求の履歴として、前記サーバ側通信部によって受信された前記トラップドアと前記確定的暗号化キーワードとの組を格納する検索履歴記憶部、
     検索対象データと、この検索対象データの暗号化キーワードとが関連付けられると共に、判明している場合には、前記暗号化キーワードに対応する前記確定的暗号化キーワードがさらに関連付けられたキーワード情報を格納するデータ記憶部、
     前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが、前記検索履歴記憶部に存在するかどうかを判定し、存在すると判定した場合には、前記データ記憶部を対象として、前記検索履歴記憶部に存在する前記確定的暗号化キーワードを用いて、確定的暗号化方式に基づく検索対象データの秘匿検索を実行し、存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとを用いて、確率的暗号化方式に基づく検索対象データの秘匿検索を実行する判定部、
    として機能させるための秘匿検索プログラム。
  6.  請求項5記載の秘匿検索プログラムを記録したコンピュータ読み取り可能な記録媒体。
  7.  秘匿検索要求をサーバ装置に送信する検索装置と、前記秘匿検索要求に応じて秘匿検索を実行するサーバ装置とを備えた秘匿検索システムにおいて、
     前記検索装置は、
     前記秘匿検索要求として、キーワードから確率的暗号化方式によって生成されるトラップドアであって、前記秘匿検索における検索対象データのキーワードが確率的暗号化方式によって暗号化された暗号化キーワードとの一致判定に使用されるトラップドアと、前記トラップドアの生成の元となる前記キーワードから確定的暗号化方式によって生成される確定的暗号化キーワードとの組を送信する検索側送信部を備え、
     前記サーバ装置は、
     前記検索側送信部が送信した前記トラップドアと、前記確定的暗号化キーワードとの組を受信するサーバ側通信部と、
     過去の秘匿検索要求の履歴として、前記サーバ側通信部によって受信された前記トラップドアと前記確定的暗号化キーワードとの組を格納する検索履歴記憶部と、
     検索対象データと、この検索対象データの暗号化キーワードとが関連付けられると共に、判明している場合には、前記暗号化キーワードに対応する前記確定的暗号化キーワードがさらに関連付けられたキーワード情報を格納するデータ記憶部と、
     前記サーバ側通信部が受信した前記確定的暗号化キーワードと一致する前記確定的暗号化キーワードが、前記検索履歴記憶部に存在するかどうかを判定し、存在すると判定した場合には、前記データ記憶部を対象として、前記検索履歴記憶部に存在する前記確定的暗号化キーワードを用いて、確定的暗号化方式に基づく検索対象データの秘匿検索を実行し、存在しないと判定した場合には、前記データ記憶部を対象として、受信した前記トラップドアと、前記データ記憶部に格納されている前記キーワード情報の前記暗号化キーワードとを用いて、確率的暗号化方式に基づく検索対象データの秘匿検索を実行する判定部と
    を備えたことを特徴とする秘匿検索システム。
PCT/JP2013/054735 2013-02-25 2013-02-25 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム WO2014128958A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015501221A JP5963936B2 (ja) 2013-02-25 2013-02-25 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
CN201380072944.3A CN104995621B (zh) 2013-02-25 2013-02-25 服务器装置以及隐匿检索系统
US14/765,050 US10235539B2 (en) 2013-02-25 2013-02-25 Server device, recording medium, and concealed search system
EP13875718.2A EP2960808A4 (en) 2013-02-25 2013-02-25 SERVER DEVICE, PRIVATE SEARCH PROGRAM, RECORDING MEDIA AND PRIVATE SEARCH SYSTEM
PCT/JP2013/054735 WO2014128958A1 (ja) 2013-02-25 2013-02-25 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/054735 WO2014128958A1 (ja) 2013-02-25 2013-02-25 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム

Publications (1)

Publication Number Publication Date
WO2014128958A1 true WO2014128958A1 (ja) 2014-08-28

Family

ID=51390781

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/054735 WO2014128958A1 (ja) 2013-02-25 2013-02-25 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム

Country Status (5)

Country Link
US (1) US10235539B2 (ja)
EP (1) EP2960808A4 (ja)
JP (1) JP5963936B2 (ja)
CN (1) CN104995621B (ja)
WO (1) WO2014128958A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016206555A (ja) * 2015-04-27 2016-12-08 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
WO2017122393A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
KR20180130249A (ko) * 2017-05-29 2018-12-07 성균관대학교산학협력단 클라우드 저장 기반 암호화 시스템 및 방법
US11005645B2 (en) 2016-01-15 2021-05-11 Mitsubishi Electric Corporation Encryption device, encryption method, computer readable medium, and storage device
US11106740B2 (en) 2017-04-25 2021-08-31 Mitsubishi Electric Corporation Search device, search system, search method, and computer readable medium
CN113904823A (zh) * 2021-09-28 2022-01-07 长沙学院 常数级授权计算复杂度的属性基可搜索加密方法及系统

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702781A (zh) * 2015-02-04 2015-06-10 深圳市中兴移动通信有限公司 一种信息加密的方法及装置
US10936757B2 (en) * 2016-05-27 2021-03-02 Mitsubishi Electric Corporation Registration destination determination device, searchable encryption system, destination determination method, and computer readable medium
FR3057123A1 (fr) * 2016-09-30 2018-04-06 Orange Procede et systeme de detection d'intrusions sur un reseau
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10790960B2 (en) 2017-01-20 2020-09-29 Enveil, Inc. Secure probabilistic analytics using an encrypted analytics matrix
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
WO2018136811A1 (en) * 2017-01-20 2018-07-26 Enveil, Inc. Secure web browsing via homomorphic encryption
US10880275B2 (en) 2017-01-20 2020-12-29 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption
CN110226190A (zh) * 2017-01-27 2019-09-10 三菱电机株式会社 检索装置、监视装置、监视方法和检索程序
AU2018387969B2 (en) * 2017-12-18 2021-07-22 Nippon Telegraph And Telephone Corporation Secret computation system and method
WO2019124134A1 (ja) * 2017-12-19 2019-06-27 日本電信電話株式会社 検索装置、検索方法、プログラム、および記録媒体
CN111602127B (zh) * 2018-01-17 2023-05-16 三菱电机株式会社 数据管理装置、数据管理方法和计算机能读取的存储介质
WO2019220531A1 (ja) * 2018-05-15 2019-11-21 三菱電機株式会社 秘匿検索装置および秘匿検索方法
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
CN109766314A (zh) * 2019-01-07 2019-05-17 西安电子科技大学 基于概率陷门的密文数据多关键词搜索方法
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN112784309B (zh) * 2021-02-20 2022-08-23 青岛大学 数据安全管理方法、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002044072A (ja) * 2000-03-24 2002-02-08 Contentguard Holdings Inc 秘話化電子著作物の生成方法、保護された電子著作物、及び電子著作物を再生の際に保護する方法
JP2011198079A (ja) 2010-03-19 2011-10-06 Hitachi Solutions Ltd データベース暗号化システム及び方法
JP2012083863A (ja) * 2010-10-07 2012-04-26 Mitsubishi Electric Corp 情報検索装置および情報検索方法
JP2012164031A (ja) * 2011-02-03 2012-08-30 Mitsubishi Electric Corp データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991414A (en) 1997-09-12 1999-11-23 International Business Machines Corporation Method and apparatus for the secure distributed storage and retrieval of information
JP3457184B2 (ja) 1998-06-25 2003-10-14 シャープ株式会社 検索装置及びその制御プログラムを記憶した媒体
US6519700B1 (en) 1998-10-23 2003-02-11 Contentguard Holdings, Inc. Self-protecting documents
US7068787B1 (en) 1998-10-23 2006-06-27 Contentguard Holdings, Inc. System and method for protection of digital works
JP4519963B2 (ja) 1999-06-21 2010-08-04 富士通株式会社 生体情報の暗号化・復号化方法および装置並びに、生体情報を利用した本人認証システム
US7496767B2 (en) 2001-01-19 2009-02-24 Xerox Corporation Secure content objects
WO2003025722A2 (en) * 2001-09-14 2003-03-27 Computer Associates Think, Inc. Virus detection system
US7171557B2 (en) 2001-10-31 2007-01-30 Hewlett-Packard Development Company, L.P. System for optimized key management with file groups
JP2003178070A (ja) 2001-12-12 2003-06-27 Canon Inc 情報検索装置
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
CN100353342C (zh) * 2003-09-26 2007-12-05 日本电信电话株式会社 标签隐私保护方法、标签装置、后端装置
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
US20050138393A1 (en) 2003-12-22 2005-06-23 Challener David C. Determining user security level using trusted hardware device
JP2005284915A (ja) 2004-03-30 2005-10-13 Canon Inc 情報検索装置および方法、ならびに情報検索システムおよびその制御方法
CN101057448B (zh) 2004-11-16 2012-02-15 皇家飞利浦电子股份有限公司 安全地计算相似性度量
JP2006210964A (ja) 2005-01-24 2006-08-10 National Institute Of Information & Communication Technology エルガマル暗号による情報授受伝達方法及び装置
JP2006262333A (ja) 2005-03-18 2006-09-28 Ic Brains Co Ltd 生体認証システム
JP4722620B2 (ja) 2005-08-19 2011-07-13 Kddi株式会社 暗号化文書検索方法および暗号化文書検索システム
JP4961214B2 (ja) 2006-03-29 2012-06-27 株式会社日立情報制御ソリューションズ 生体認証方法およびシステム
JP2008097438A (ja) 2006-10-13 2008-04-24 Hitachi Ltd ユーザ認証システム、認証サーバ、端末、及び耐タンパデバイス
US20090094200A1 (en) * 2007-10-05 2009-04-09 Yahoo! Inc. Method for Admission-controlled Caching
JP2009129210A (ja) 2007-11-25 2009-06-11 Tokyo Institute Of Technology チャレンジ・レスポンス生体認証方法
US8995665B1 (en) 2008-08-20 2015-03-31 Symantec Corporation Role based encryption without key management system
US8165305B2 (en) 2008-12-08 2012-04-24 Harrison Corporation Enhanced relational database security through encryption of table indices
JP5147673B2 (ja) 2008-12-18 2013-02-20 株式会社日立製作所 生体認証システムおよびその方法
JP2010160235A (ja) 2009-01-07 2010-07-22 Nippon Telegr & Teleph Corp <Ntt> 検索システム、端末装置、データベース装置、検索方法及びプログラム
JP2010165275A (ja) 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
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
WO2010125653A1 (ja) 2009-04-28 2010-11-04 富士通株式会社 生体認証装置、生体認証方法および生体認証プログラム
US8495056B2 (en) * 2009-09-21 2013-07-23 At&T Intellectual Property I, L.P. System and method for caching database reports
EP2495908A4 (en) 2009-10-29 2017-07-19 Mitsubishi Electric Corporation Data processing device
US20120324240A1 (en) 2010-01-13 2012-12-20 Mitsubishi Electric Corporation Secure search system, public parameter generation device, encryption device, user secret key generation device, query issuing device, search device, computer program, secure search method, public parameter generation method, encryption method, user secret key generation method, query issuing method, and search method
US8615668B2 (en) 2010-01-15 2013-12-24 Mitsubishi Electric Corporation Confidential search system and cryptographic processing system
JP5432736B2 (ja) 2010-01-18 2014-03-05 日本電信電話株式会社 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP5573293B2 (ja) 2010-03-30 2014-08-20 富士通株式会社 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム
JP5412414B2 (ja) * 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
US8429421B2 (en) * 2010-12-17 2013-04-23 Microsoft Corporation Server-side encrypted pattern matching
WO2012095973A1 (ja) 2011-01-13 2012-07-19 三菱電機株式会社 データ処理装置及びデータ保管装置
EP2667538A4 (en) 2011-01-18 2017-08-16 Mitsubishi Electric Corporation Encryption system, encryption processing method for encryption system, encryption device, encryption program, decryption device, decryption program, setup device, setup program, key generation device, key generation program, key assignment device and key assignment program
WO2012114452A1 (ja) 2011-02-22 2012-08-30 三菱電機株式会社 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法
JP2012248940A (ja) * 2011-05-25 2012-12-13 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
EP2808803B1 (en) 2012-01-25 2017-03-01 Mitsubishi Electric Corporation Data search device, data search method, data search program, data registration device, data registration method, data registration program and information processing device
US20140019454A1 (en) * 2012-07-10 2014-01-16 Jason A. Carter Systems and Methods for Caching Data Object Identifiers
EP2945313B1 (en) 2013-01-12 2017-09-06 Mitsubishi Electric Corporation Key generation device, key generation program, concealed data search system, and key distribution method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002044072A (ja) * 2000-03-24 2002-02-08 Contentguard Holdings Inc 秘話化電子著作物の生成方法、保護された電子著作物、及び電子著作物を再生の際に保護する方法
JP2011198079A (ja) 2010-03-19 2011-10-06 Hitachi Solutions Ltd データベース暗号化システム及び方法
JP2012083863A (ja) * 2010-10-07 2012-04-26 Mitsubishi Electric Corp 情報検索装置および情報検索方法
JP2012164031A (ja) * 2011-02-03 2012-08-30 Mitsubishi Electric Corp データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP2960808A4
TAKANORI SUGA ET AL.: "Security of Searchable Encryption Revisited", CSS2011 COMPUTER SECURITY SYMPOSIUM 2011 RONBUNSHU HEISAI ANTI MALWARE ENGINEERING WORKSHOP 2011, IPSJ SYMPOSIUM SERIES, vol. 2011, no. 3, 12 October 2011 (2011-10-12), pages 125 - 130, XP008180432 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016206555A (ja) * 2015-04-27 2016-12-08 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
WO2017122393A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
WO2017122696A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
WO2017122326A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
JP6239213B1 (ja) * 2016-01-14 2017-11-29 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
US10872158B2 (en) 2016-01-14 2020-12-22 Mitsubishi Electric Corporation Secret search system, secret search method, and computer readable medium
US11005645B2 (en) 2016-01-15 2021-05-11 Mitsubishi Electric Corporation Encryption device, encryption method, computer readable medium, and storage device
US11106740B2 (en) 2017-04-25 2021-08-31 Mitsubishi Electric Corporation Search device, search system, search method, and computer readable medium
KR20180130249A (ko) * 2017-05-29 2018-12-07 성균관대학교산학협력단 클라우드 저장 기반 암호화 시스템 및 방법
KR101979267B1 (ko) * 2017-05-29 2019-05-16 성균관대학교산학협력단 클라우드 저장 기반 암호화 시스템 및 방법
CN113904823A (zh) * 2021-09-28 2022-01-07 长沙学院 常数级授权计算复杂度的属性基可搜索加密方法及系统
CN113904823B (zh) * 2021-09-28 2024-02-27 长沙学院 常数级授权计算复杂度的属性基可搜索加密方法及系统

Also Published As

Publication number Publication date
CN104995621B (zh) 2018-06-05
EP2960808A1 (en) 2015-12-30
JPWO2014128958A1 (ja) 2017-02-02
US20150371062A1 (en) 2015-12-24
US10235539B2 (en) 2019-03-19
JP5963936B2 (ja) 2016-08-03
CN104995621A (zh) 2015-10-21
EP2960808A4 (en) 2016-10-26

Similar Documents

Publication Publication Date Title
JP5963936B2 (ja) サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
KR101760617B1 (ko) 컴퓨터 프로그램, 비밀관리방법 및 시스템
EP2731034B1 (en) Client computer for querying a database stored on a server via a network
US7912223B2 (en) Method and apparatus for data protection
US8874929B2 (en) Cross domain discovery
US8245042B2 (en) Shielding a sensitive file
US11232222B2 (en) Access management system, access management method and program
KR101371608B1 (ko) Dbms 및 데이터베이스에서 암호화 방법
CN107077469B (zh) 服务器装置、检索系统、终端装置以及检索方法
CN101925913A (zh) 加密文件访问的方法和系统
US20240061790A1 (en) Locally-stored remote block data integrity
JP2006523995A (ja) 認可証明書におけるユーザ・アイデンティティのプライバシ
CN104239820A (zh) 一种安全存储设备
JP7302600B2 (ja) 情報処理システムおよび情報処理方法
JP2012164031A (ja) データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
WO2017122326A1 (ja) 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
CN103973698A (zh) 一种云存储环境中的用户访问权限回收方法
US20210081562A1 (en) Data processing apparatus, data processing method, and computer readable medium
CN111753312B (zh) 数据处理方法、装置、设备和系统
US8499357B1 (en) Signing a library file to verify a callback function
WO2017126000A1 (ja) 暗号化装置、検索装置、暗号化プログラム、検索プログラム、暗号化方法及び検索方法
CN109154970B (zh) 登记目的地决定装置、登记装置、隐匿检索系统、登记目的地决定方法和计算机可读的存储介质
WO2018034192A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
KR102615556B1 (ko) 키 관리 서버를 이용한 데이터의 실시간 암복호화 보안 시스템 및 방법
US20210288798A1 (en) Jigsaw key encryption/decryption

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015501221

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14765050

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2013875718

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE