WO2022259515A1 - 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム - Google Patents

暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム Download PDF

Info

Publication number
WO2022259515A1
WO2022259515A1 PCT/JP2021/022276 JP2021022276W WO2022259515A1 WO 2022259515 A1 WO2022259515 A1 WO 2022259515A1 JP 2021022276 W JP2021022276 W JP 2021022276W WO 2022259515 A1 WO2022259515 A1 WO 2022259515A1
Authority
WO
WIPO (PCT)
Prior art keywords
logical
value
encrypted tag
tag generation
encrypted
Prior art date
Application number
PCT/JP2021/022276
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 DE112021007462.8T priority Critical patent/DE112021007462T5/de
Priority to PCT/JP2021/022276 priority patent/WO2022259515A1/ja
Priority to CN202180098791.4A priority patent/CN117413489A/zh
Priority to JP2023526799A priority patent/JP7378675B2/ja
Publication of WO2022259515A1 publication Critical patent/WO2022259515A1/ja
Priority to US18/380,916 priority patent/US20240045984A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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 disclosure relates to confidential search technology.
  • the confidential search technique is a technique for searching encrypted data (hereinafter also referred to as encrypted data) using an encrypted keyword as it is.
  • Confidential search uses two encrypted keywords to achieve the search.
  • the first is the encryption tag.
  • An encryption tag is an encrypted keyword that associates with encrypted data.
  • the second is a trapdoor.
  • a trapdoor is an encrypted keyword used as a search condition.
  • encrypted data and encrypted tags are associated with each other and registered on a storage server such as cloud storage.
  • the encryption tag is associated with the encrypted data itself or an identifier of the encrypted data.
  • Cryptographic tags are stored at the storage server as cryptographic indexes.
  • the searcher sends a trapdoor to the storage server.
  • the storage server finds an encryption tag that matches the trapdoor without decrypting the trapdoor.
  • the storage server then extracts the encrypted data associated with the encrypted tag and transmits the extracted encrypted data to the searcher.
  • Confidential search can be broadly classified into common key type confidential search and public key type confidential search.
  • Public-key secure search uses different keys to generate encrypted tags and trapdoors
  • common-key secure search uses the same key to generate encrypted tags and trapdoors.
  • the common key type confidential search can perform searches at a higher speed than the public key type confidential search.
  • Patent Literature 1 and Non-Patent Literature 1 describe an access control method for common key-based secure search.
  • an access control pattern is determined before starting operation of the confidential search system, and access control is performed according to the determined access control pattern.
  • An access control pattern is a logical expression that expresses a condition under which confidential search is permitted by a logical configuration of a plurality of attribute values and logical operators (simply referred to as operators).
  • the logical configuration in the access control pattern is predetermined, such as a logical expression with one logical sum operator and a logical expression with two logical product operators.
  • access control is performed according to a predetermined logical configuration. In this way, with the techniques described in Patent Literature 1 and Non-Patent Literature 1, once an access control pattern is determined, access control cannot be performed with an access control pattern different from the determined access control pattern.
  • Patent Document 1 when performing access control with a new access control pattern, it is necessary to reconstruct the confidential search system, and there is a problem that convenience is extremely low. .
  • the main purpose of this disclosure is to solve such problems.
  • the main object of the present disclosure is to realize confidential search that enables more flexible access control.
  • the encrypted tag generation device is a logical expression acquisition unit that acquires a logical expression representing a condition under which confidential search is permitted by a logical configuration of a plurality of attribute values and logical operators; setting a secret sharing value reflecting the logical configuration to each of the plurality of attribute values, and using the plurality of secret sharing values set to the plurality of attribute values, encrypting tags used for the confidential search; and an encryption tag generator for generating.
  • a secret sharing value that reflects the logical configuration represented by the logical expression is set for each attribute value, and an encrypted tag is generated using the secret sharing value set for each attribute value. Therefore, according to the present disclosure, it is possible to freely determine the logical configuration represented by the logical expression, and to realize more flexible access control in the confidential search.
  • FIG. 1 is a diagram showing a configuration example of a secure search system according to Embodiment 1;
  • FIG. 4 is a diagram showing a data flow according to the first embodiment;
  • FIG. 2 is a diagram showing a functional configuration example of a master key generation device according to Embodiment 1;
  • FIG. 2 is a diagram showing a functional configuration example of a user key generation device according to Embodiment 1;
  • FIG. 2 is a diagram showing a functional configuration example of a trapdoor generation device according to Embodiment 1;
  • FIG. 2 is a diagram showing a functional configuration example of the encrypted tag generation device according to the first embodiment;
  • FIG. 2 is a diagram showing a functional configuration example of the match determination device according to the first embodiment;
  • Embodiment 1 ***Overview***
  • the conditions for users who are permitted to perform confidential searches are defined by a plurality of attribute values (values representing job titles, departments to which they belong, etc.) and logical operators (logical OR).
  • An encrypted tag is generated using a logical expression represented by a logical construction with a logical AND operator).
  • searchable conditions the conditions for users who are permitted to perform confidential searches
  • attribute values values representing job titles, departments to which they belong, etc.
  • logical operators logical OR
  • An encrypted tag is generated using a logical expression represented by a logical construction with a logical AND operator.
  • the logical expressions "A AND B” and “A OR B” contain the same two attribute values (A and B).
  • it is necessary to generate the encrypted tag so that the logical configurations represented by the two logical expressions are distinguished. That is, it is necessary to generate encrypted tags so that it is possible to distinguish whether the logical operator included in each logical expression is a logical product operator (AND) or a logical sum operator (OR).
  • a secret sharing value that reflects the logical structure of a logical expression is set for each attribute value, and an encrypted tag is generated using the secret sharing value set for each attribute value.
  • each attribute value (logical product attribute value) connected by the logical product operator (AND) has each logical product attribute value A secret sharing value is set that reflects that they are connected by a logical product operator (AND).
  • each of the logical sum attribute values is A secret sharing value is set that reflects the fact that they are connected by a logical sum operator (OR).
  • the secret sharing value s is set to both the attribute value A and the attribute value B.
  • FIG. 1 shows a configuration example of a secure search system 100 according to this embodiment.
  • the confidential search system 100 includes a master key generation device 200, a plurality of user key generation devices 300, a plurality of trap door generation devices 400, a plurality of encrypted tag generation devices 500, and a match determination device. an apparatus 600;
  • a master key generation device 200, a plurality of user key generation devices 300, a plurality of trap door generation devices 400, a plurality of encrypted tag generation devices 500, and a match determination device 600 are interconnected via a network 101.
  • Network 101 is, for example, the Internet.
  • Networks other than the Internet may be used as the network 101 .
  • a LAN Local Area Network
  • a master key generation device 200, a plurality of user key generation devices 300, a plurality of trap door generation devices 400, a plurality of encrypted tag generation devices 500, and a match determination device 600 are located within the same company.
  • Master key generation device 200, user key generation device 300, trap door generation device 400, encrypted tag generation device 500, and match determination device 600 are each computers. Master key generation device 200, user key generation device 300, trap door generation device 400, encrypted tag generation device 500, and match determination device 600 are each, for example, a PC (Personal Computer). Match determination device 600 is, for example, a storage server.
  • the master key generation device 200 generates the master key K according to the bit length U. Then, the master key generation device 200 transmits the generated master key K to the user key generation device 300 and the encrypted tag generation device 500 via the network 101, as shown in FIG.
  • User key generation device 300 receives master key K, as shown in FIG.
  • the master key generation device 200 also acquires an attribute value set ⁇ , which is a set of user attribute values, and generates a user key sk ⁇ using the master key K and the attribute value set ⁇ .
  • User key generation device 300 then transmits the generated user key sk ⁇ to trapdoor generation device 400 and encrypted tag generation device 500 via network 101 .
  • the user key sk.GAMMA. may be sent by means such as mail, not via the network 101.
  • the trapdoor generator 400 receives the user key sk ⁇ , as shown in FIG. Also, the trapdoor generation device 400 acquires the keyword W, and generates the trapdoor T using the user key sk ⁇ and the keyword W.
  • FIG. Keyword W is a keyword used for confidential search. Trapdoor generation device 400 then transmits the generated trapdoor T to match determination device 600 via network 101 .
  • the encrypted tag generation device 500 receives a master key K and a user key sk ⁇ , as shown in FIG.
  • the encrypted tag generation device 500 also acquires the keyword W and the logical expression V, and generates the encrypted tag E using the master key K, the user key sk ⁇ , the keyword W, and the logical expression V.
  • FIG. A logical formula V is a logical formula expressing a searchable condition by a logical configuration of a plurality of attribute values and logical operators, as described above.
  • the searchable condition is a user attribute condition for which confidential search is permitted.
  • the encrypted tag generation device 500 transmits the generated encrypted tag E to the match determination device 600 via the network 101 .
  • the operation procedure of the encrypted tag generation device 500 corresponds to the encrypted tag generation method.
  • the program that realizes the operation of the encrypted tag generation device 500 corresponds to the encrypted tag generation program.
  • Match determination device 600 receives trapdoor T and encrypted tag E, as shown in FIG. Then, the match determination device 600 determines whether or not the keyword W contained in the trapdoor T and the keyword W contained in the encrypted tag E match. Match determination device 600 then transmits the determination result to trapdoor generation device 400 via network 101 .
  • FIG. 3 shows a functional configuration example of the master key generation device 200 according to this embodiment.
  • master key generation device 200 includes bit length acquisition section 201 , key generation section 202 , transmission section 203 , and random value generation section 204 .
  • the master key generation device 200 includes a storage medium for storing data used in each element shown in FIG.
  • the bit length acquisition unit 201 acquires the bit length U of the key used in the confidential search system 100 .
  • the key generation unit 202 generates a master key K suitable for a bit length U, which is the basis of calculations performed in the confidential search system 100, using a common key method.
  • the key generator 202 generates a master key K using the random number generated by the random number generator 204 .
  • the random value generation unit 204 generates random values used to generate the master key K.
  • the transmission unit 203 transmits the master key K generated by the key generation unit 202 to the user key generation device 300 and the encrypted tag generation device 500 .
  • FIG. 4 shows a functional configuration example of the user key generation device 300 according to this embodiment.
  • user key generation device 300 includes key reception section 301 , attribute value set acquisition section 302 , user key generation section 303 , transmission section 304 , and random value generation section 305 .
  • the user key generation device 300 includes a storage medium for storing data used in each element shown in FIG.
  • the key receiving unit 301 receives the master key K from the master key generation device 200.
  • the attribute value set acquisition unit 302 acquires an attribute value set ⁇ , which is a set of user attribute values to be set in the user key.
  • the user key generation unit 303 uses the master key K, the attribute value set ⁇ , and the random value generated by the random value generation unit 305 to generate the user key sk ⁇ .
  • the random value generation unit 305 generates random values used to generate the user key sk ⁇ .
  • the transmission unit 304 transmits the user key sk ⁇ generated by the user key generation unit 303 to the trapdoor generation device 400 and the encrypted tag generation device 500 .
  • FIG. 5 shows a functional configuration example of the trap door generating device 400 according to this embodiment.
  • the trapdoor generator 400 includes a key receiver 401 , a keyword acquirer 402 , a trapdoor generator 403 , a transmitter 404 and a random number generator 405 .
  • the trapdoor generation device 400 includes a recording medium for storing data used in each element shown in FIG.
  • the key receiving unit 401 receives the user key sk ⁇ from the user key generation device 300.
  • the keyword acquisition unit 402 acquires the keyword W.
  • the trapdoor generator 403 generates a trapdoor T using the user key sk ⁇ , the keyword W, and the random number generated by the random number generator 405 . Note that the trapdoor generation unit 403 generates the trapdoor T using a random number value common to a plurality of trapdoors T (common random number value).
  • the random number generation unit 405 generates random numbers used to generate the trap door T.
  • the transmission unit 404 transmits the trapdoor T generated by the trapdoor generation unit 403 to the match determination device 600 .
  • FIG. 6 shows a functional configuration example of the encrypted tag generation device 500 according to this embodiment.
  • the encrypted tag generation device 500 includes a key reception unit 501, a logical expression acquisition unit 502, a keyword acquisition unit 503, an encryption tag generation unit 504, a transmission unit 505, and a random value generation unit. 506 and a random value storage unit 507 .
  • the encrypted tag generation device 500 includes a recording medium for storing data used in each element shown in FIG.
  • the random number generated by the random number generator 506 is held as a held random number.
  • the retained random value is used for the secret sharing value.
  • FIG. 6 particularly shows a random number holding unit 507 that holds random numbers.
  • the key receiving unit 501 receives the master key K and the user key sk ⁇ .
  • a logical expression acquisition unit 502 acquires a logical expression V expressing a searchable condition L.
  • the keyword acquisition unit 503 acquires the keyword W.
  • the encrypted tag generator 504 holds a master key K, a user key sk ⁇ , a logical expression V, a keyword W, a random number generated by the random number generator 506, and a random number holder 507.
  • An encrypted tag E is generated using the retained random value. Note that the processing performed by the encrypted tag generation unit 504 corresponds to the encrypted tag generation processing.
  • the random number generation unit 506 generates random numbers used to generate the encryption tag E.
  • a random value storage unit 507 stores random values generated by the random value generation unit 506 .
  • the random value storage unit 507 stores a new random value and/or a new random value. Update the retained random value with a random value.
  • the transmission unit 505 transmits the encrypted tag E generated by the encrypted tag generation unit 504 to the match determination device 600 .
  • FIG. 7 shows a functional configuration example of the match determination device 600 according to the present embodiment.
  • match determination device 600 includes encrypted tag receiver 601 , trapdoor receiver 602 , match determination unit 603 , result transmitter 604 , and random number generator 605 .
  • match determination device 600 includes a recording medium for storing data used in each element shown in FIG.
  • the encrypted tag reception unit 601 receives the encrypted tag E.
  • the trapdoor reception unit 602 receives the trapdoor T.
  • the match determination unit 603 performs match determination. Specifically, the match determination unit 603 uses the random value generated by the random value generation unit 605 to determine whether the keyword W included in the encryption tag E matches the keyword W included in the trapdoor T. judge.
  • the result transmission unit 604 transmits the determination result of the match determination unit 603 to the trapdoor generation device 400 . For example, when the match determination unit 603 determines that the keyword W included in the encrypted tag E matches the keyword W included in the trapdoor T, the result transmission unit 604 transmits "0" as the determination result. . On the other hand, if it is determined that they do not match, the result transmitting unit 604 transmits "1" as the determination result. Note that the result transmitting unit 604 may use other numerical values, characters, and symbols as the determination result. It should be noted that, instead of transmitting the determination result, the result transmitting unit 604 transmits the encrypted tag associated with the encrypted tag E when the keyword W contained in the encrypted tag E matches the keyword W contained in the trapdoor T. Conversion data may be obtained, for example, from a database (not shown). Then, the result transmission unit 604 may transmit the acquired encrypted data to the trapdoor generation device 400 .
  • Attribute-based encryption is a cryptographic technology that can be decrypted only by a user who possesses a user key generated from an attribute value set ⁇ , which is a set of attribute values that satisfy searchable conditions L. Attribute-based encryption is composed of, for example, the following algorithms.
  • Encryption ABEENC A key KK for common key encryption is generated using the public key pk and searchable condition L, and a ciphertext P is generated using the key KK.
  • Decryption ABEDEC Using the user key sk ⁇ and the ciphertext P, it is determined whether or not the attribute value set ⁇ and the searchable condition L used when generating the ciphertext P match. When the attribute value set ⁇ and the searchable condition L match, the key KK used to encrypt the ciphertext P is output.
  • a master key K is used to encrypt a plaintext M.
  • the master key K is used to decrypt the ciphertext C to obtain the plaintext M.
  • Master key K is a random value.
  • Common key cryptography is composed of, for example, the following algorithms.
  • Encryption SKEENC The plaintext M is encrypted using the master key K, and the ciphertext C is output.
  • Decrypt SKEDEC The ciphertext C is decrypted using the master key K, and the plaintext M is output.
  • a counter mode encryption technique using a block cipher among common key encryption techniques is used.
  • SCTRENC the encryption process using the counter-mode encryption technique using block cipher
  • SCTRDEC the decryption process
  • auxC auxiliary information
  • FIG. 8 shows an operation example of the master key generation device 200 according to this embodiment.
  • step S201 the bit length acquisition unit 201 acquires the bit length U of the key.
  • step S202 the random number generator 204 generates an M-bit random number, and the key generator 202 generates the master key K using the random number.
  • the key generation unit 202 may use the M-bit random number as the master key K as it is.
  • step S203 the transmission unit 203 transmits the master key K to the user key generation device 300 and the encrypted tag generation device 500.
  • FIG. 9 shows an operation example of the user key generation device 300 according to this embodiment.
  • the key receiving unit 301 receives the master key K in step S301.
  • step S302 the attribute value set acquisition unit 302 acquires the attribute value set ⁇ .
  • step S303 the user key generation unit 303 generates a user key sk ⁇ .
  • the user key generation unit 303 generates the user key sk ⁇ as follows.
  • Qi is an attribute included in the attribute value set ⁇ .
  • step S304 the transmission unit 304 transmits the user key sk ⁇ to the trapdoor generation device 400 and the encrypted tag generation device 500.
  • FIG. 10 shows an operation example of the trap door generation device 400 according to this embodiment.
  • step S401 the key receiving unit 401 receives the user key sk ⁇ .
  • step S402 the keyword acquisition unit 402 acquires the keyword W.
  • the trapdoor generator 403 generates a trapdoor T in step S403. Specifically, the trapdoor generator 403 generates the trapdoor T as follows.
  • r means a random number value. A random number is generated by the random number generator 405 .
  • T0 H (K, W) + r
  • Ti1 H (ski, w)
  • the transmission unit 404 transmits the trapdoor T to the match determination device 600 .
  • FIG. 11 shows an operation example of the encrypted tag generation device 500 according to this embodiment.
  • step S501 the key receiving unit 501 receives the master key K and the user key sk ⁇ .
  • step S502 the logical expression acquisition unit 502 acquires the logical expression V expressing the searchable condition L.
  • step S503 the keyword acquisition unit 503 acquires the keyword W.
  • step S504 the encrypted tag generation unit 504 calculates a secret sharing value from the logical expression V.
  • FIG. Details of step S504 will be described later.
  • step S505 the encrypted tag generation unit 504 generates an encrypted tag E from the secret sharing value generated in step S504, the master key K, the user key sk ⁇ , and the keyword W. Details of step S505 will be described later.
  • step S506 the transmission unit 505 transmits the encrypted tag E to the match determination device 600.
  • FIG. 12 shows an operation example of the match determination device 600 according to this embodiment.
  • step S601 the trapdoor reception unit 602 receives the trapdoor T.
  • step 602 the encrypted tag receiving section 601 receives the encrypted tag E.
  • step 603 the match determination unit 603 performs match determination. Details of step S603 will be described later.
  • step S604 the result transmission unit 604 transmits the determination result to the trapdoor generation device 400.
  • the result transmission unit 604 outputs " 0”. On the other hand, if it is determined that they do not match, the result transmitting unit 604 transmits "1" as the determination result.
  • step S504 in FIG. 11 Next, the details of step S504 in FIG. 11 will be described.
  • step S504 the encrypted tag generation unit 504 sets a secret sharing value reflecting the logical configuration represented by the logical formula V to each of the plurality of attribute values.
  • "setting a secret sharing value to each of a plurality of attribute values” means to associate a secret sharing value with each attribute value.
  • a logical expression V includes a plurality of attribute values and logical operators.
  • a logical operator is a logical sum operator (OR) or a logical product operator (AND). Below, a logical sum operator (OR) is written as a logical sum (OR) or OR, and a logical product operator (AND) is written as a logical product (AND) or AND.
  • encrypted tag generation unit 504 When logical sum (OR) is included in logical expression V, encrypted tag generation unit 504 generates two or more logical sum attribute values that are two or more attribute values connected by logical sum (OR). , set a secret sharing value that reflects that two or more logical sum attribute values are connected by logical sum (OR). More specifically, the encrypted tag generator 504 sets a held random number as a secret sharing value for each of two or more logical sum attribute values. The retained random value is a random value retained by the random value retaining unit 507 . Further, when the logical expression V includes a logical product operator (AND), the encrypted tag generation unit 504 generates two or more attribute values connected by the logical product operator (AND).
  • AND logical product operator
  • a secret sharing value is set that reflects that each of two or more logical product attribute values is connected by a logical product operator (AND). More specifically, the encrypted tag generation unit 504 causes the random value generation unit 506 to generate a new random value, performs calculation using the new random value and the retained random value, and generates a further new random value. Generate. Then, the encrypted tag generation unit 504 sets either a new random number value or a further new random number value as a secret sharing value for each of the logical product attribute values of two or more.
  • step S504 in FIG. 11 will be described below using a flowchart. 13, 14 and 15 are flowcharts showing the details of step S504.
  • the encrypted tag generation unit 504 also converts the logical expression V in Polish notation, and scans the converted logical expression V from the beginning.
  • step S5401 the encrypted tag generation unit 504 substitutes the initial random numbers S0 and 0 into the retained random numbers Xn and Yn (Xn ⁇ S0, Yn ⁇ 0).
  • the encrypted tag generation unit 504 causes the random value holding unit 507 to hold the initial random values S0 and 0 as the held random values Xn and Yn.
  • the initial random number is a random number initially generated by the random number generator 506 .
  • step S5402 the encrypted tag generator 504 determines whether the logical operator included in the logical expression V is a logical product (AND) or a logical sum (OR). If the first operator is a logical product (AND), the process advances to step S5403. On the other hand, if the first operator is a logical sum (OR), the process proceeds to step S5418 (FIG. 15).
  • step S5404 the encrypted tag generation unit 504 determines whether or not the currently focused logical product (AND) is the first AND. If the current logical product (AND) is the first AND, the process advances to step S5405. On the other hand, if the currently focused logical product (AND) is not the first AND, the process proceeds to step S5416.
  • step S5405 the encrypted tag generation unit 504 acquires a new random value Zj from the random value generation unit 506, divides the currently held random value Xn by the new random value Zj, and obtains a further new random value (Xn/Zj) is obtained.
  • step S5406 the encrypted tag generation unit 504 updates the current held random values Xn and Yn with a new random value Zj and a further new random value (Xn/Zj) (Xn ⁇ Zj, Yn ⁇ (Xn/Zj)).
  • the encrypted tag generation unit 504 causes the random value storage unit 507 to store the new random value Zj and the further new random value (Xn/Zj) as the updated retained random values Xn and Yn.
  • step S5407 the encrypted tag generation unit 504 determines whether or not the term following the logical product (AND) in the logical expression V is the operand (attribute value). If the next term of the logical product (AND) is the operand (attribute value), the process advances to step S5408. If the term following the logical product (AND) is not an operand (attribute value), the next term is a logical operator. Determine if the child is a conjunction (AND) or a disjunction (OR).
  • step S5408 the encrypted tag generation unit 504 sets the retained random value Xn as a secret sharing value to the operand (attribute value) that is the next term of the logical product (AND).
  • the held random number value Xn set here is the random number value updated in step S5406 or step S5417 described later.
  • step S5409 the encrypted tag generation unit 504 determines whether the logical expression V has the next term. If there is a next term, processing continues to step S5410. On the other hand, if there is no next term, the process ends.
  • step S5410 encrypted tag generation section 504 determines whether the next term is an operand (attribute value). If the next term is the operand (attribute value), the process advances to step S5411. If the next term is not the operand (attribute value), the next term is a logical operator, so the process returns to step S5402. ) or logical sum (OR).
  • step S5411 the encrypted tag generation unit 504 sets the retained random value Yn as the secret sharing value in the operand (attribute value) of the next term.
  • the held random number value Yn set here is the random number value updated in step S5406 or step S5417 described later.
  • step S5412 of FIG. 14 the encrypted tag generation unit 504 determines whether or not the logical expression V has the next term. If there is a next term, the process advances to step S5413. On the other hand, if there is no next term, the process ends.
  • step S5413 the encrypted tag generation unit 504 determines whether or not the next term is the operand (attribute value). If the next term is the operand (attribute value), the process advances to step S5414. If the next term is not the operand (attribute value), the next term is a logical operator, so the process returns to step S5402. ) or logical sum (OR).
  • step S5415 the encrypted tag generation unit 504 updates the current held random number value Yn with a further new random number value (Yn/Xn) (Yn ⁇ (Yn/Xn)).
  • step S5411 the process returns to step S5411, and the encrypted tag generation unit 504 sets the held random number value Yn as the secret sharing value in the operand (attribute value) of the next term.
  • step S5404 If the logical product (AND) of interest in step S5404 is not the first AND (if it is the second and subsequent AND), in step S5416, encrypted tag generation section 504 generates a new random number from random value generation section 506. Take a number Zj and divide the current held random value Y by the new random value Zj to get a further new random value (Yn/Zj).
  • step S5417 the encrypted tag generation unit 504 updates the current held random values Xn and Yn with a new random value Zj and a further new random value (Yn/Zj) (Xn ⁇ Zj, Yn ⁇ (Yn/Zj)).
  • the encrypted tag generation unit 504 causes the random value storage unit 507 to store the new random value Zj and the further new random value (Yn/Zj) as the updated retained random values Xn and Yn.
  • step S5402 If the operator included in logical expression V is a logical sum (OR) in step S5402, in step S5418 of FIG. (attribute value). If the term following the logical sum (OR) is the operand (attribute value), the process advances to step S5419. If the term following the logical sum (OR) is not an operand (attribute value), the next term is a logical operator. Determine if the child is a conjunction (AND) or a disjunction (OR).
  • step S5419 the encrypted tag generation unit 504 sets the held random number value Xn as the secret sharing value in the operand (attribute value) of the next term.
  • step S5420 encrypted tag generation section 504 determines whether or not logical expression V has the following term. If there is a next term, processing returns to step S5418. On the other hand, if there is no next term, the process ends.
  • the encrypted tag generation unit 504 can set the secret sharing value to the operand (attribute value) included in the logical expression V.
  • step S5401 the encrypted tag generation unit 504 substitutes the initial random values S0, 0 into the retained random values X1, Y1 (X1 ⁇ S0, Y1 ⁇ 0).
  • the encrypted tag generation unit 504 scans the logical expression "AND OR A B AND C D" from the left. Since the first logical operator is "AND” ("AND" in step S5402), the process proceeds to step S5403.
  • step S5403 the encrypted tag generator 504 instructs the random number generator 506 to generate a new random number Zj.
  • Z1 is generated as a new random number value Zj.
  • the process advances to step S5405.
  • step S5407 the encrypted tag generation unit 504 determines whether or not the term following "AND” is an operand (attribute value).
  • the term following "AND” is "OR”, so the process returns to step S5402.
  • step S5402 the process proceeds to step S5418 in FIG.
  • step S5418 it is determined whether or not the term following "OR” is an operand (attribute value). In the logical expression “AND OR A B AND C D”, the next term after "OR” is "A”, so the process proceeds to step S5419.
  • step S5420 encrypted tag generation section 504 determines whether or not there is a next term.
  • the process advances to step S5418. Since the next term “B” is the operand (attribute value), the process proceeds to step S5419.
  • step S5420 encrypted tag generation section 504 determines whether or not there is a next term.
  • the process advances to step S5418. Then, since the next term "AND” is a logical operator, the process proceeds to step S5402 in FIG.
  • step S5403 Since the logical operator is "AND” ("AND" in step S5402), the process proceeds to step S5403.
  • step S5403 the encrypted tag generator 504 instructs the random number generator 506 to generate a new random number Zj.
  • Z2 is generated as a new random number value Zj.
  • step S54016 since the currently focused "AND” is the second AND ("NO" in step S5404), the process proceeds to step S5416.
  • step S5417 the encrypted tag generation unit 504 updates the current held random values X2 and Y2 with a new random value Z2 and a further new random value (Y2/Z2) (X3 ⁇ Z2, Y3 ⁇ (Y2/Z2)).
  • step S5407 the encrypted tag generation unit 504 determines whether or not the term following "AND” is an operand (attribute value). In the logical expression “AND OR A B AND C D”, the next term after "AND” is "C”, so the process proceeds to step S5408.
  • step S5409 the encrypted tag generation unit 504 determines whether or not there is a next term.
  • the process advances to step S5410. Since "D” is the operand (attribute value), the process proceeds to step S5411.
  • step S5412 of FIG. 14 the encrypted tag generation unit 504 determines whether or not there is the next term.
  • "D" is the last term, so the process ends.
  • the encrypted tag generation unit 504 sets the secret sharing value "Z1” to "A” and “B”, sets the secret sharing value "Z2” to "C”, and sets "D” to "D”. is set to a secret sharing value ⁇ S0/(Z1*Z2) ⁇ obtained by calculating "Z1" and "Z2". Therefore, it can be identified that "A”, “B”, “C” and “D” are connected by a logical product (AND).
  • step S505 in FIG. 11 the details of step S505 in FIG. 11 will be described.
  • secret sharing values are set for all operands.
  • S1 secret sharing values
  • Sm secret sharing values
  • step S505 the encryption tag generator 504 calculates the following.
  • S0 is an initial random number value.
  • L is a searchable condition.
  • Ri is a random value.
  • step S603 in FIG. 12 Next, the details of step S603 in FIG. 12 will be described.
  • the match determination unit 603 extracts the attribute combination with the smallest number of attributes among the attribute combinations that satisfy the searchable condition L as the “minimum attribute that satisfies the searchable condition L”. Also, let F be a calculation formula for extracting a minimum attribute that satisfies the searchable condition of the searchable condition L here. The match determination unit 603 executes the calculation formula F to extract the minimum attributes (QQ1, . . . , QQu) that satisfy the searchable condition L.
  • FIG. 16 shows a hardware configuration example of the master key generation device 200, the user key generation device 300, the trap door generation device 400, the encrypted tag generation device 500, and the match determination device 600. As shown in FIG.
  • the master key generation device 200, the user key generation device 300, the trap door generation device 400, the encrypted tag generation device 500, and the match determination device 600 each include a processor 1101.
  • FIG. The processor 1101 is, for example, a CPU (Central Processing Unit). Processor 1101 is connected to multiple hardware devices via bus 1102 .
  • the processor 1101 is connected to, for example, a ROM (Read Only Memory) 1103 and a RAM (Random Access Memory) 1104 .
  • Processor 1101 may also be connected to communication board 1105 , display 1111 (display device), keyboard 1112 , and mouse 1113 . Also, the processor 1101 may be connected to a drive 1114 and a magnetic disk device 1120 . Processor 1101 controls these hardware devices.
  • the drive 1114 is a device that reads and writes storage media such as FD (Flexible Disk Drive), CD (Compact Disc), and DVD (Digital Versatile Disc).
  • FD Flexible Disk Drive
  • CD Compact Disc
  • DVD Digital Versatile Disc
  • the ROM 1103, RAM 1104, magnetic disk device 1120 and drive 1114 are examples of storage devices.
  • the keyboard 1112, mouse 1113 and communication board 1105 are examples of input devices.
  • the display 1111 and communication board 1105 are examples of output devices.
  • the communication board 1105 is wired or wirelessly connected to a communication network such as a LAN (Local Area Network), the Internet, or a telephone line.
  • the magnetic disk device 1120 stores an OS (Operating System) 1121, programs 1122, and files 1123.
  • OS Operating System
  • the program 1122 includes a program that executes functions described as "part" in the present embodiment.
  • Programs eg, encrypted tag generation program, match determination program
  • the program causes the computer to function as the ⁇ unit'', and causes the computer to execute the procedures and methods of the ⁇ unit''.
  • the file 1123 contains various data (input, output, determination result, calculation result, processing result, etc.) used in the "- part" described in the present embodiment.
  • Arrows included in the configuration diagrams and flowcharts of the present embodiment mainly indicate input/output of data or signals.
  • the processing of this embodiment which will be described based on flowcharts and the like, is executed using hardware such as a processor 1101, a storage device, an input device, and an output device.
  • what is described as “-unit” may be “-circuit”, “-device” or “-equipment”, and “-step” or “-procedure” or “-processing” or It may be “circuitry”. That is, what is described as “--unit” may be implemented in firmware, software, hardware, or a combination thereof.
  • the master key generation device 200, the user key generation device 300, the trap door generation device 400, the encrypted tag generation device 500, and the match determination device 600 may each be realized by a processing circuit.
  • the processing circuits are, for example, logic ICs (Integrated Circuits), GAs (Gate Arrays), ASICs (Application Specific Integrated Circuits), and FPGAs (Field-Programmable Gate Arrays). In this case, what is described as “- section” is implemented as a part of the processing circuit, respectively.
  • the general concept of processors and processing circuits is referred to as "processing circuitry.” Thus, processors and processing circuitry are each examples of "processing circuitry.”

Landscapes

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

Abstract

論理式取得部(502)は、秘匿検索が許可される条件を複数の属性値と論理演算子との論理構成により表す論理式を取得する。暗号化タグ生成部(504)は、論理構成が反映される秘密分散値を複数の属性値の各々に設定し、複数の属性値に設定された複数の秘密分散値を用いて、秘匿検索に用いられる暗号化タグを生成する。

Description

暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム
 本開示は、秘匿検索技術に関する。
 秘匿検索技術では、暗号化されたキーワードを暗号化されたまま用いて、暗号化されたデータ(以下、暗号化データともいう)を検索する技術である。
 クラウドサービスが普及し始めている現在において、安価かつ手間なく利用開始可能なクラウドストレージの利用が一般的になりつつある。一方で、機微な情報を含むデータをクラウドで管理する場合は、情報漏洩のリスクを回避するため、データを暗号化し、暗号化データを保管する必要がある。
 秘匿検索は、暗号化データを復号することなく検索できるため、安全性と機能性を両立することが可能である。
 秘匿検索では、2つの暗号化されたキーワードを用いて検索を実現する。
 1つ目は暗号化タグである。暗号化タグは、暗号化データに関連付ける、暗号化されたキーワードである。2つ目はトラップドアである。トラップドアは、検索条件に用いる、暗号化されたキーワードである。
 登録時にクラウドストレージ等のストレージサーバで暗号化データと暗号化タグが相互に関連付けられて登録される。暗号化タグは、暗号化データそのもの又は暗号化データの識別子と関連付けられる。暗号化タグは、暗号化索引としてストレージサーバで保管される。
 秘匿検索では、検索者がトラップドアをストレージサーバに送信する。
 ストレージサーバは、トラップドアを復号することなく、トラップドアに一致する暗号化タグを見つける。そして、ストレージサーバは、暗号化タグと関連付けられている暗号化データを抽出し、抽出した暗号化データを検索者に送信する。
 このようにすることで、秘匿検索では、データ及びキーワードを露出することなくデータ検索が可能である。
 秘匿検索は、共通鍵型秘匿検索と公開鍵型秘匿検索に大別できる。
 公開鍵型秘匿検索では、暗号化タグとトラップドアの生成に異なる鍵を使用する、一方、共通鍵型秘匿検索では、暗号化タグとトラップドアの生成に同一の鍵を使用する。
 また、一般的に共通鍵型秘匿検索は公開鍵型秘匿検索よりも高速に検索可能である。
 本開示に関連する技術として、特許文献1に記載の技術及び非特許文献1に記載の技術がある。
 特許文献1及び非特許文献1では、共通鍵型秘匿検索のアクセス制御方法が記載されている。
国際公開WO2019/142268号
R. A. Popa, N. Zeldovich, "Multi-Key Searchable Encryption", IACR Cryptology ePrint Archive: Report 2013/508
 特許文献1及び非特許文献1に記載の技術では、秘匿検索システムの運用開始前にアクセス制御パターンを決めておき、決めておいたアクセス制御パターンに従ってアクセス制御が行われる。アクセス制御パターンは、秘匿検索が許可される条件を複数の属性値と論理演算子(単に、演算子ともいう)との論理構成により表す論理式である。
 特許文献1及び非特許文献1に記載の技術では、例えば論理和演算子が1つの論理式、論理積演算子が2つの論理式のように、アクセス制御パターンでの論理構成があらかじめ決められている。そして、特許文献1及び非特許文献1に記載の技術では、あらかじめ決められた論理構成に従ったアクセス制御が行われる。
 このように、特許文献1及び非特許文献1に記載の技術では、いったんアクセス制御パターンが決定されると、決定されたアクセス制御パターンとは異なるアクセス制御パターンでアクセス制御を行うことができない。
 このため、特許文献1及び非特許文献1に記載の技術において、新たなアクセス制御パターンでアクセス制御を行う場合は、秘匿検索システムを再構築する必要があり、利便性が著しく低いという課題がある。
 本開示は、このような課題を解決することを主な目的とする。つまり、本開示は、より柔軟なアクセス制御が可能な秘匿検索を実現することを主な目的とする。
 本開示に係る暗号化タグ生成装置は、
 秘匿検索が許可される条件を複数の属性値と論理演算子との論理構成により表す論理式を取得する論理式取得部と、
 前記論理構成が反映される秘密分散値を前記複数の属性値の各々に設定し、前記複数の属性値に設定された複数の秘密分散値を用いて、前記秘匿検索に用いられる暗号化タグを生成する暗号化タグ生成部とを有する。
 本開示では、論理式に表される論理構成が反映される秘密分散値を各属性値に設定し、各属性値に設定された秘密分散値を用いて暗号化タグを生成する。このため、本開示によれば、論理式に表される論理構成を自由に決定することができ、秘匿検索において、より柔軟なアクセス制御を実現することができる。
実施の形態1に係る秘匿検索システムの構成例を示す図。 実施の形態1に係るデータフローを示す図。 実施の形態1に係るマスター鍵生成装置の機能構成例を示す図。 実施の形態1に係るユーザ鍵生成装置の機能構成例を示す図。 実施の形態1に係るトラップドア生成装置の機能構成例を示す図。 実施の形態1に係る暗号化タグ生成装置の機能構成例を示す図。 実施の形態1に係る一致判定装置の機能構成例を示す図。 実施の形態1に係るマスター鍵生成装置の処理の流れを示すフローチャート。 実施の形態1に係るユーザ鍵生成装置の処理の流れを示すフローチャート。 実施の形態1に係るトラップドア生成装置の処理の流れを示すフローチャート。 実施の形態1に係る暗号化タグ生成装置の処理の流れを示すフローチャート。 実施の形態1に係る一致判定装置の処理の流れを示すフローチャート。 実施の形態1に係る暗号化タグ生成装置の処理の詳細を示すフローチャート。 実施の形態1に係る暗号化タグ生成装置の処理の詳細を示すフローチャート。 実施の形態1に係る暗号化タグ生成装置の処理の詳細を示すフローチャート。 実施の形態1に係る秘匿検索システムのハードウェア資源の一例を示す図。
 以下、実施の形態を図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
 実施の形態1.
***概要***
 本実施の形態では、共通鍵型秘匿検索において、柔軟なアクセス制御を実現する秘匿検索システムを説明する。
 本実施の形態に係る秘匿検索システムでは、秘匿検索が許可されるユーザの条件(以下、検索可能条件という)を複数の属性値(肩書、所属部署等を表す値)と論理演算子(論理和演算子、論理積演算子)との論理構成により表す論理式を用いて暗号化タグが生成される。そして、本実施の形態に係る秘匿検索システムでは、暗号化タグの生成に用いられる論理式の長さ(つまり、論理式に含まれる属性値の個数)に制約を設ける必要がないため、柔軟なアクセス制御が可能である。
 長さに制約のない論理式を可能にするためには、属性値ごとにパラメータを生成する必要がある。従来は、1つのパラメータのみであるため、1つのパラメータに何個の属性値を含ませるか、つまり、1つのパラメータでどれ程度の長さの論理式を生成するかを事前に決める必要があった。本実施の形態に係る秘匿検索システムでは、属性値ごとにパラメータを生成するため、論理式に含ませる属性値の数の上限を不要にする。このように、属性値ごとにパラメータを生成する場合に、暗号化タグに、論理式の論理構成を正確に反映させる必要がある。
 例えば、論理式「A AND B」と論理式「A OR B」には、同じ2つの属性値(AとB)が含まれる。この場合に、2つの論理式に表される論理構成が区別されるようにして暗号化タグを生成する必要がある。つまり、各論理式に含まれる論理演算子が、論理積演算子(AND)であるのか論理和演算子(OR)であるのかを区別できるようにして暗号化タグを生成する必要がある。
 本実施の形態では、論理式の論理構成が反映される秘密分散値を各属性値に設定し、各属性値に設定された秘密分散値を用いて暗号化タグを生成する。つまり、論理式に論理積演算子(AND)が含まれている場合は、論理積演算子(AND)で接続される属性値(論理積属性値)の各々に、論理積属性値の各々が論理積演算子(AND)で接続されていることが反映される秘密分散値を設定する。また、論理式に論理和演算子(OR)が含まれている場合に、論理和演算子(OR)で接続される属性値(論理和属性値)の各々に、論理和属性値の各々が論理和演算子(OR)で接続されていることが反映される秘密分散値を設定する。
 具体的には、前述の論理式「A AND B」の場合は、s=s1+s2となる秘密分散値s1を属性値Aに設定し、秘密分散値s2を属性値Bに設定する。また、論理式「A OR B」の場合は、秘密分散値sを属性値A及び属性値Bの双方に設定する。
 このように、本実施の形態に係る秘匿検索システムでは、論理式に表される論理構成を自由に決定することができ、従来よりも柔軟なアクセス制御を実現することができる。
***機能構成の説明***
 図1は、本実施の形態に係る秘匿検索システム100の構成例を示す。
 図1に示すように、秘匿検索システム100は、マスター鍵生成装置200と、複数のユーザ鍵生成装置300と、複数のトラップドア生成装置400と、複数の暗号化タグ生成装置500と、一致判定装置600とを備える。
 マスター鍵生成装置200と、複数のユーザ鍵生成装置300と、複数のトラップドア生成装置400と、複数の暗号化タグ生成装置500と、一致判定装置600とは、ネットワーク101で相互に接続されている。
 ネットワーク101は、例えばインターネットである。
 ネットワーク101として、インターネット以外のネットワークが用いられてもよい。例えば、ネットワーク101として、LAN(Local・Area・Network)が用いられてもよい。ネットワーク101としてLANが用いられる場合は、マスター鍵生成装置200と、複数のユーザ鍵生成装置300と、複数のトラップドア生成装置400と、複数の暗号化タグ生成装置500と、一致判定装置600とが同じ企業内に設置されていることになる。
 マスター鍵生成装置200、ユーザ鍵生成装置300、トラップドア生成装置400、暗号化タグ生成装置500及び一致判定装置600は、それぞれ、コンピュータである。
 マスター鍵生成装置200、ユーザ鍵生成装置300、トラップドア生成装置400、暗号化タグ生成装置500及び一致判定装置600は、それぞれ、例えば、PC(Personal Computer)である。一致判定装置600は、例えば、ストレージサーバである。
 マスター鍵生成装置200は、ビット長Uに合わせてマスター鍵Kを生成する。
 そして、マスター鍵生成装置200は、図2に示すように、ネットワーク101を介して、生成したマスター鍵Kをユーザ鍵生成装置300と暗号化タグ生成装置500とに送信する。
 ユーザ鍵生成装置300は、図2に示すように、マスター鍵Kを受信する。
 また、マスター鍵生成装置200は、ユーザの属性値の集合である属性値集合Γを取得し、マスター鍵Kと属性値集合Γとを用いてユーザ鍵skΓを生成する。
 そして、ユーザ鍵生成装置300は、ネットワーク101を介して、生成したユーザ鍵skΓをトラップドア生成装置400と暗号化タグ生成装置500に送信する。なお、ユーザ鍵skΓは、ネットワーク101を介さず、郵送等の手段で送付してもよい。
 トラップドア生成装置400は、図2に示すように、ユーザ鍵skΓを受信する。
 また、トラップドア生成装置400は、キーワードWを取得し、ユーザ鍵skΓとキーワードWとを用いて、トラップドアTを生成する。キーワードWは、秘匿検索に用いるキーワードである。
 そして、トラップドア生成装置400は、ネットワーク101を介して、生成したトラップドアTを一致判定装置600に送信する。
 暗号化タグ生成装置500は、図2に示すように、マスター鍵Kとユーザ鍵skΓを受信する。
 また、暗号化タグ生成装置500は、キーワードWと論理式Vを取得し、マスター鍵Kとユーザ鍵skΓとキーワードWと論理式Vとを用いて、暗号化タグEを生成する。
 論理式Vは、前述のように、検索可能条件を複数の属性値と論理演算子との論理構成により表す論理式である。検索可能条件は、秘匿検索が許可されるユーザの属性の条件である。
 暗号化タグ生成装置500は、ネットワーク101を介して、生成した暗号化タグEを一致判定装置600に送信する。
 なお、暗号化タグ生成装置500の動作手順は、暗号化タグ生成方法に相当する。また、暗号化タグ生成装置500の動作を実現するプログラムは、暗号化タグ生成プログラムに相当する。
 一致判定装置600は、図2に示すように、トラップドアTと暗号化タグEとを受信する。
 そして、一致判定装置600は、トラップドアTに含まれているキーワードWと暗号化タグEに含まれているキーワードWとが一致するか否かを判定する。
 そして、一致判定装置600は、ネットワーク101を介して、判定結果をトラップドア生成装置400に送信する。
 図3は、本実施の形態に係るマスター鍵生成装置200の機能構成例を示す。
 図3に示すように、マスター鍵生成装置200は、ビット長取得部201と、鍵生成部202と、送信部203と、乱数値生成部204とを備える。
 なお、図示していないが、マスター鍵生成装置200は、図3に示す各要素で用いられるデータを記憶するための記憶媒体を備える。
 ビット長取得部201は、秘匿検索システム100で用いられる鍵のビット長Uを取得する。
 鍵生成部202は、秘匿検索システム100で行われる演算の基本となる、ビット長Uに適合するマスター鍵Kを共通鍵方式にて生成する。
 鍵生成部202は、乱数値生成部204により生成された乱数値を用いてマスター鍵Kを生成する。
 乱数値生成部204は、マスター鍵Kの生成に用いられる乱数値を生成する。
 送信部203は、鍵生成部202で生成されたマスター鍵Kを、ユーザ鍵生成装置300と暗号化タグ生成装置500に送信する。
 図4は、本実施の形態に係るユーザ鍵生成装置300の機能構成例を示す。
 図4に示すように、ユーザ鍵生成装置300は、鍵受信部301と、属性値集合取得部302と、ユーザ鍵生成部303と、送信部304と、乱数値生成部305とを備える。
 なお、図示していないが、ユーザ鍵生成装置300は、図4に示す各要素で用いられるデータを記憶するための記憶媒体を備える。
 鍵受信部301は、マスター鍵生成装置200からマスター鍵Kを受信する。
 属性値集合取得部302は、ユーザ鍵に設定するユーザの属性値の集合である属性値集合Γを取得する。
 ユーザ鍵生成部303は、マスター鍵Kと属性値集合Γと乱数値生成部305により生成された乱数値とを用いてユーザ鍵skΓする。
 乱数値生成部305は、ユーザ鍵skΓの生成に用いられる乱数値を生成する。
 送信部304は、ユーザ鍵生成部303で生成されたユーザ鍵skΓを、トラップドア生成装置400と暗号化タグ生成装置500に送信する。
 図5は、本実施の形態に係るトラップドア生成装置400の機能構成例を示す。
 図5に示すように、トラップドア生成装置400は、鍵受信部401と、キーワード取得部402と、トラップドア生成部403と、送信部404と、乱数値生成部405とを備える。
 図示していないが、トラップドア生成装置400は、図5に示す各要素で用いられるデータを記憶するための記録媒体を備える。
 鍵受信部401は、ユーザ鍵生成装置300からユーザ鍵skΓを受信する。
 キーワード取得部402は、キーワードWを取得する。
 トラップドア生成部403は、ユーザ鍵skΓとキーワードWと乱数値生成部405により生成された乱数値とを用いてトラップドアTを生成する。
 なお、トラップドア生成部403は、複数のトラップドアTで共通する乱数値(共通乱数値)を用いてトラップドアTを生成する。
 乱数値生成部405は、トラップドアTの生成に用いられる乱数値を生成する。
 送信部404は、トラップドア生成部403で生成されたトラップドアTを、一致判定装置600に送信する。
 図6は、本実施の形態に係る暗号化タグ生成装置500の機能構成例を示す。
 図6に示すように、暗号化タグ生成装置500は、鍵受信部501と、論理式取得部502と、キーワード取得部503と、暗号化タグ生成部504と、送信部505と、乱数値生成部506と、乱数値保持部507とを備える。
 なお、図示していないが、暗号化タグ生成装置500は、乱数値生成部506及び乱数値保持部507を除く図6に示す各要素で用いられるデータを記憶するための記録媒体を備える。なお、後述するように、乱数値生成部506で生成される乱数値が保持乱数値として保持される。保持乱数値は秘密分散値に用いられる。乱数値が保持乱数値として保持されることをより明確にするために、図6では、乱数値を保持する乱数値保持部507を特に図示している。
 鍵受信部501は、マスター鍵Kとユーザ鍵skΓとを受信する。
 論理式取得部502は、検索可能条件Lが表される論理式Vを取得する。
 なお、論理式取得部502により行われる処理は、論理式取得処理に相当する。
 キーワード取得部503は、キーワードWを取得する。
 暗号化タグ生成部504は、マスター鍵Kと、ユーザ鍵skΓと、論理式Vと、キーワードWと、乱数値生成部506により生成された乱数値と、乱数値保持部507により保持されている保持乱数値とを用いて暗号化タグEを生成する。
 なお、暗号化タグ生成部504により行われる処理は、暗号化タグ生成処理に相当する。
 乱数値生成部506は、暗号化タグEの生成に用いられる乱数値を生成する。
 乱数値保持部507は、乱数値生成部506により生成された乱数値を保持する。
 乱数値保持部507は、乱数値生成部506により新たな乱数値が生成され、暗号化タグ生成部504により更なる新たな乱数値が生成された場合に、新たな乱数値及び/又は新たな乱数値で保持乱数値を更新する。
 送信部505は、暗号化タグ生成部504により生成された暗号化タグEを一致判定装置600に送信する。
 図7は、本実施の形態に係る一致判定装置600の機能構成例を示す。
 図7に示すように、一致判定装置600は、暗号化タグ受信部601と、トラップドア受信部602と、一致判定部603と、結果送信部604と、乱数値生成部605とを備える。
 なお、図示していないが、一致判定装置600は、図7に示す各要素で用いられるデータを記憶するための記録媒体を備える。
 暗号化タグ受信部601は、暗号化タグEを受信する。
 トラップドア受信部602は、トラップドアTを受信する。
 一致判定部603は、一致判定を行う。
 具体的には、一致判定部603は、乱数値生成部605により生成される乱数値を用いて、暗号化タグEに含まれるキーワードWとトラップドアTに含まれるキーワードWが一致するか否かを判定する。
 結果送信部604は、一致判定部603の判定結果をトラップドア生成装置400に送信する。
 例えば、一致判定部603により、暗号化タグEに含まれるキーワードWとトラップドアTに含まれるキーワードWが一致すると判定された場合は、結果送信部604は、判定結果として「0」を送信する。一方、不一致と判定された場合は、結果送信部604は、判定結果として「1」を送信する。なお、結果送信部604は、判定結果として、他の数値、文字、記号を用いてもよい。
 なお、結果送信部604は、判定結果の送信に代えて、暗号化タグEに含まれるキーワードWとトラップドアTに含まれるキーワードWが一致する場合に、暗号化タグEと関連付けられている暗号化データを、例えば、図示していないデータベースから取得してもよい。そして、結果送信部604は、取得した暗号化データをトラップドア生成装置400に送信してもよい。
***暗号技術について***
 次に、本実施の形態に係る秘匿検索システム100の動作の前提となる暗号技術を説明する。
 属性ベース暗号は、検索可能条件Lを満たす属性値の集合である属性値集合Γから生成されたユーザ鍵を所持するユーザのみが復号できる暗号技術である。属性ベース暗号は、例えば、以下に示すアルゴリズムで構成される。
 セットアップABESETUP
 取得されたビット長に対応したマスター鍵Kと公開鍵pkとを生成する。
 ユーザ鍵生成ABEKEYGEN
 マスター鍵Kと属性値集合Γを用いて、属性値集合Γに該当するユーザ鍵skΓを生成する。
 暗号化ABEENC
 公開鍵pkと検索可能条件Lとを用いて、共通鍵暗号用の鍵KKを生成し、鍵KKを用いて暗号文Pを生成する。
 復号ABEDEC
 ユーザ鍵skΓと暗号文Pを用いて、属性値集合Γと暗号文Pを生成した際に用いられた検索可能条件Lが一致するか否かを判定する。属性値集合Γと検索可能条件Lが一致する場合に、暗号文Pの暗号化に用いられた鍵KKが出力される。
 共通鍵暗号技術では、マスター鍵Kを用いて平文Mを暗号化する。また、共通鍵暗号技術では、マスター鍵Kを用いて暗号文Cを復号して平文Mを得る。
 マスター鍵Kはランダムな値である。共通鍵暗号技術は、例えば、以下のアルゴリズムで構成される。
 暗号化SKEENC
 マスター鍵Kを用いて平文Mを暗号化し、暗号文Cを出力する。
 復号SKEDEC
 マスター鍵Kを用いて暗号文Cを復号し、平文Mを出力する。
 実施の形態では、共通鍵暗号技術の中でもブロック暗号を用いたカウンターモード暗号化技術を用いる。以下では、ブロック暗号を用いたカウンターモード暗号化技術での暗号化処理をSCTRENCと表記し、復号処理をSCTRDECと表記する。
 カウンターモードには、補助情報(カウンター値)が存在する。以下では、補助情報(カウンター値)は、auxCと表記する。
 ブロック暗号を用いたカウンターモード暗号化技術では、以下にて暗号化が行われる。
 C=SCTRENC(K、auxC)+M
 Cは暗号文である。Mは平文である。Kはマスター鍵である。また、「+」は排他的論理和を示す。
 また、ブロック暗号を用いたカウンターモード暗号化技術では、以下にて復号が行われる。
 M=SCTRENC(K、auxC)+C
***動作の説明***
 次に、本実施の形態に係る秘匿検索システム100の動作例を説明する。
 図8は、本実施の形態に係るマスター鍵生成装置200の動作例を示す。
 先ず、ステップS201において、ビット長取得部201が鍵のビット長Uを取得する。
 次に、ステップS202において、乱数値生成部204が、Mビットの乱数値を生成し、鍵生成部202が乱数値を用いてマスター鍵Kを生成する。鍵生成部202は、Mビットの乱数値をそのままマスター鍵Kにしてもよい。
 最後に、ステップS203において、送信部203が、マスター鍵Kをユーザ鍵生成装置300と暗号化タグ生成装置500に送信する。
 図9は、本実施の形態に係るユーザ鍵生成装置300の動作例を示す。
 最初に、ステップS301において、鍵受信部301が、マスター鍵Kを受信する。
 次に、ステップS302において、属性値集合取得部302が属性値集合Γを取得する。
 次に、ステップS303において、ユーザ鍵生成部303が、ユーザ鍵skΓを生成する。
 具体的には、ユーザ鍵生成部303は、以下にて、ユーザ鍵skΓを生成する。
 なお、Γ={Qi}(i=1,..,n)とする。Qiは属性値集合Γに含まれる属性である。また、以下にて、Hはハッシュ演算を意味する。
    ski=H(K,Qi)(i=1,…n)
    skΓ=(sk1,..skn)
 最後に、ステップS304において、送信部304が、ユーザ鍵skΓをトラップドア生成装置400と暗号化タグ生成装置500に送信する。
 図10は、本実施の形態に係るトラップドア生成装置400の動作例を示す。
 先ず、ステップS401において、鍵受信部401が、ユーザ鍵skΓを受信する。
 次に、ステップS402において、キーワード取得部402が、キーワードWを取得する。
 次に、ステップS403において、トラップドア生成部403が、トラップドアTを生成する。
 具体的には、トラップドア生成部403は、以下にて、トラップドアTを生成する。なお、以下にてrは乱数値を意味する。乱数値は乱数値生成部405により生成される。
     T0=H(K,W)+r
     (i=1,…,n)に対して、
     Ti1=H(ski、w)、Ti2=H(Ti1、r)
     T=(Γ、T0、(T11、T12),...,(Tn1、Tn2))
 最後に、ステップ404において、送信部404が、トラップドアTを一致判定装置600に送信する。
 図11は、本実施の形態に係る暗号化タグ生成装置500の動作例を示す。
 先ず、ステップS501において、鍵受信部501が、マスター鍵Kとユーザ鍵skΓを受信する。
 次に、ステップS502において、論理式取得部502が、検索可能条件Lが表される論理式Vを取得する。
 次に、ステップS503において、キーワード取得部503が、キーワードWを取得する。
 次に、ステップS504において、暗号化タグ生成部504が、論理式Vから秘密分散値を算出する。
 ステップS504の詳細は後述する。
 次に、ステップS505において、暗号化タグ生成部504が、ステップS504で生成した秘密分散値と、マスター鍵Kと、ユーザ鍵skΓと、キーワードWから、暗号化タグEを生成する。
 ステップS505の詳細は後述する。
 最後に、ステップS506において、送信部505が、暗号化タグEを一致判定装置600に送信する。
 図12は、本実施に形態に係る一致判定装置600の動作例を示す。
 先ず、ステップS601において、トラップドア受信部602が、トラップドアTを受信する。
 次に、ステップ602において、暗号化タグ受信部601が、暗号化タグEを受信する。
 なお、ステップS601とステップS602は順序が入れ替わってもよい。また、ステップS601とステップS602が並行して行われてもよい。
 次に、ステップ603において、一致判定部603が、一致判定を行う。
 ステップS603の詳細は、後述する。
 最後に、ステップS604において、結果送信部604が、判定結果をトラップドア生成装置400に送信する。
 前述したように、例えば、一致判定部603により、暗号化タグEに含まれるキーワードWとトラップドアTに含まれるキーワードWが一致すると判定された場合は、結果送信部604は、判定結果として「0」を送信する。一方、不一致と判定された場合は、結果送信部604は、判定結果として「1」を送信する。
 次に、図11のステップS504の詳細を説明する。
 ステップS504では、暗号化タグ生成部504は、論理式Vに表される論理構成が反映される秘密分散値を複数の属性値の各々に設定する。ここで、「秘密分散値を複数の属性値の各々に設定する」とは、各属性値に秘密分散値を対応付けることである。
 また、「論理構成が反映される秘密分散値」の詳細を以下にて説明する。
 論理式Vには、複数の属性値と論理演算子とが含まれる。
 論理演算子は、論理和演算子(OR)又は論理積演算子(AND)である。以下では、論理和演算子(OR)を論理和(OR)又はORと表記し、論理積演算子(AND)を論理積(AND)又はANDと表記する。
 暗号化タグ生成部504は、論理式Vに論理和(OR)が含まれている場合に、論理和(OR)で接続される2以上の属性値である2以上の論理和属性値の各々に、2以上の論理和属性値の各々が論理和(OR)で接続されていることが反映される秘密分散値を設定する。より具体的には、暗号化タグ生成部504は、2以上の論理和属性値の各々に秘密分散値として保持乱数値を設定する。保持乱数値は、乱数値保持部507が保持する乱数値である。
 また、論理式Vに論理積演算子(AND)が含まれている場合に、暗号化タグ生成部504は、論理積演算子(AND)で接続される2以上の属性値である2以上の論理積属性値の各々に、2以上の論理積属性値の各々が論理積演算子(AND)で接続されていることが反映される秘密分散値を設定する。より具体的には、暗号化タグ生成部504は、乱数値生成部506に新たな乱数値を生成させ、新たな乱数値と保持乱数値を用いた演算を行って更なる新たな乱数値を生成する。そして、暗号化タグ生成部504は、2以上の論理積属性値の各々に秘密分散値として新たな乱数値及び更なる新たな乱数値のいずれかを設定する。
 以下にて、図11のステップS504の詳細をフローチャートを用いて説明する。
 図13、図14及び図15は、ステップS504の詳細を示すフローチャートである。
 なお、以下では、乱数値保持部507は、保持乱数値Xn及びYnを保持する。なお、n=1、2…である。
 また、暗号化タグ生成部504は、論理式Vをポーランド記法で変換し、変換後の論理式Vを先頭から走査する。
 先ず、ステップS5401において、暗号化タグ生成部504は、初期乱数値S0と0を保持乱数値Xn、Ynに代入する(Xn←S0、Yn←0)。つまり、暗号化タグ生成部504は、乱数値保持部507に初期乱数値S0と0を保持乱数値XnとYnとして保持させる。
 初期乱数値は、乱数値生成部506が最初に生成する乱数値である。
 次に、ステップS5402において、暗号化タグ生成部504が、論理式Vに含まれる論理演算子が論理積(AND)であるか、論理和(OR)であるかを判定する。
 最初の演算子が論理積(AND)である場合は、処理がステップS5403に進む。一方、最初の演算子が論理和(OR)である場合は、処理がステップS5418(図15)に進む。
 ステップS5403では、暗号化タグ生成部504は、乱数値生成部506に新たな乱数値Zjを生成させる。ここで、j=1、2…である。
 次に、ステップS5404において、暗号化タグ生成部504は、現在着目している論理積(AND)が最初のANDであるか否かを判定する。
 現在着目している論理積(AND)が最初のANDである場合は、処理がステップS5405に進む。
 一方、現在着目している論理積(AND)が最初のANDでない場合は、処理がステップS5416に進む。
 ステップS5405では、暗号化タグ生成部504は、乱数値生成部506から新たな乱数値Zjを取得し、現在の保持乱数値Xnを新たな乱数値Zjで除算して、更なる新たな乱数値(Xn/Zj)を得る。
 次に、ステップS5406において、暗号化タグ生成部504は、現在の保持乱数値XnとYnを、新たな乱数値Zjと更なる新たな乱数値(Xn/Zj)で更新する(Xn←Zj、Yn←(Xn/Zj))。
 つまり、暗号化タグ生成部504は、乱数値保持部507に新たな乱数値Zjと更なる新たな乱数値(Xn/Zj)を更新後の保持乱数値Xn、Ynとして保持させる。
 次に、ステップS5407において、暗号化タグ生成部504は、論理式Vにおいて論理積(AND)の次の項が被演算子(属性値)であるか否かを判定する。
 論理積(AND)の次の項が被演算子(属性値)である場合は、処理がステップS5408に進む。
 論理積(AND)の次の項が被演算子(属性値)でない場合は、次の項は論理演算子であるため、処理がステップS5402に戻り、暗号化タグ生成部504は、当該論理演算子が論理積(AND)であるか、論理和(OR)であるかを判定する。
 ステップS5408では、暗号化タグ生成部504は、論理積(AND)の次の項である被演算子(属性値)に、保持乱数値Xnを秘密分散値として設定する。ここで設定する保持乱数値Xnは、ステップS5406又は後述するステップS5417で更新された乱数値である。
 次に、ステップS5409において、暗号化タグ生成部504は、論理式Vに次の項があるか否かを判定する。
 次の項がある場合は、処理がステップS5410に進む。
 一方、次の項がない場合は、処理が終了する。
 ステップS5410では、暗号化タグ生成部504は、次の項が被演算子(属性値)であるか否かを判定する。
 次の項が被演算子(属性値)である場合は、処理がステップS5411に進む。
 次の項が被演算子(属性値)でない場合は、次の項は論理演算子であるため、処理がステップS5402に戻り、暗号化タグ生成部504は、当該論理演算子が論理積(AND)であるか、論理和(OR)であるかを判定する。
 ステップS5411では、暗号化タグ生成部504は、次の項である被演算子(属性値)に、保持乱数値Ynを秘密分散値として設定する。ここで設定する保持乱数値Ynは、ステップS5406又は後述するステップS5417で更新された乱数値である。
 次に、図14のステップS5412において、暗号化タグ生成部504は、論理式Vに次の項があるか否かを判定する。
 次の項がある場合は、処理がステップS5413に進む。
 一方、次の項がない場合は、処理が終了する。
 ステップS5413では、暗号化タグ生成部504は、次の項が被演算子(属性値)であるか否かを判定する。
 次の項が被演算子(属性値)である場合は、処理がステップS5414に進む。
 次の項が被演算子(属性値)でない場合は、次の項は論理演算子であるため、処理がステップS5402に戻り、暗号化タグ生成部504は、当該論理演算子が論理積(AND)であるか、論理和(OR)であるかを判定する。
 ステップS5414では、暗号化タグ生成部504は、現在の保持乱数値Ynを現在の保持乱数値Xnで除算して、更なる新たな乱数値(Yn/Xn)を得る。なお、(Yn/Xn)={Xn-1/(Zj*Zj)}である。
 次に、ステップS5415において、暗号化タグ生成部504は、現在の保持乱数値Ynを、更なる新たな乱数値(Yn/Xn)で更新する(Yn←(Yn/Xn))。
 次に、処理がステップS5411に戻り、暗号化タグ生成部504は、次の項である被演算子(属性値)に、保持乱数値Ynを秘密分散値として設定する。ここで設定する保持乱数値Ynは、ステップS5415で更新された乱数値(具体的には(Yn/Xn)={Xn-1/(Zj*Zj)})である。
 この後は、ステップS5412以降の処理が行われる。
 ステップS5404で着目している論理積(AND)が最初のANDでない場合(2回目以降のANDの場合)は、ステップS5416において、暗号化タグ生成部504は、乱数値生成部506から新たな乱数値Zjを取得し、現在の保持乱数値Yを新たな乱数値Zjで除算して、更なる新たな乱数値(Yn/Zj)を得る。
 次に、ステップS5417において、暗号化タグ生成部504は、現在の保持乱数値XnとYnを、新たな乱数値Zjと更なる新たな乱数値(Yn/Zj)で更新する(Xn←Zj、Yn←(Yn/Zj))。
 つまり、暗号化タグ生成部504は、乱数値保持部507に新たな乱数値Zjと更なる新たな乱数値(Yn/Zj)を更新後の保持乱数値Xn、Ynとして保持させる。
 その後、ステップS5407以降の処理が行われる。
 ステップS5402において論理式Vに含まれる演算子が論理和(OR)である場合は、図15のステップS5418において、暗号化タグ生成部504は、論理和(OR)の次の項が被演算子(属性値)であるか否かを判定する。
 論理和(OR)の次の項が被演算子(属性値)である場合は、処理がステップS5419に進む。
 論理和(OR)の次の項が被演算子(属性値)でない場合は、次の項は論理演算子であるため、処理がステップS5402に戻り、暗号化タグ生成部504は、当該論理演算子が論理積(AND)であるか、論理和(OR)であるかを判定する。
 ステップS5419では、暗号化タグ生成部504は、次の項である被演算子(属性値)に、保持乱数値Xnを秘密分散値として設定する。
 次に、ステップS5420において、暗号化タグ生成部504は、論理式Vに次の項があるか否かを判定する。
 次の項がある場合は、処理がステップS5418に戻る。
 一方、次の項がない場合は、処理が終了する。
 図13、図14及び図15の手順を行うことにより、暗号化タグ生成部504は、論理式Vに含まれる被演算子(属性値)に秘密分散値を設定することができる。
 ここで、図13、図14及び図15に示す手順を、具体例を用いて説明する。
 以下では、例えば、論理式「(A OR B)AND (C AND D)」を用いて説明を行う。この論理式を、ポーランド記法に従って変換すると、「AND OR A B AND C D」となる。2つの「AND」と「OR」が、それぞれ、論理演算子であり、「A」と「B」と「C」と「D」が、それぞれ、被演算子(属性値)である。
 ステップS5401により、暗号化タグ生成部504は、初期乱数値S0、0を保持乱数値X1、Y1に代入する(X1←S0、Y1←0)。
 暗号化タグ生成部504は、論理式「AND OR A B AND C D」を左から走査する。最初の論理演算子は「AND」であるため(ステップS5402で「AND」)、処理がステップS5403に進む。
 ステップS5403において、暗号化タグ生成部504は、乱数値生成部506に新たな乱数値Zjの生成を指示する。
 ここでは、新たな乱数値ZjとしてZ1が生成されたものとする。
 また、現在着目している「AND」は最初のANDであるため(ステップS5404で「YES」)、処理がステップS5405に進む。
 ステップS5405において、暗号化タグ生成部504は、乱数値生成部506から新たな乱数値Z1を取得し、現在の保持乱数値X1を新たな乱数値Z1で除算して、更なる新たな乱数値(X1/Z1)(=(S0/Z1))を得る。
 次に、ステップS5406において、暗号化タグ生成部504は、現在の保持乱数値X1とY1を、新たな乱数値Z1と更なる新たな乱数値(X1/Z1)で更新する(X2←Z1、Y2←(X1/Z1)(=(S0/Z1))。
 次に、ステップS5407において、暗号化タグ生成部504は、「AND」の次の項が被演算子(属性値)であるか否かを判定する。
 論理式「AND OR A B AND C D」では、「AND」の次の項は「OR」であるため、処理がステップS5402に戻る。
 更に、ステップS5402の判定の結果、処理が図15のステップS5418に進む。
 ステップS5418では、「OR」の次の項が被演算子(属性値)であるか否かを判定する。
 論理式「AND OR A B AND C D」では、「OR」の次の項は「A」であるため、処理がステップS5419に進む。
 ステップS5419では、暗号化タグ生成部504は、次の項である被演算子(属性値「A」)に、保持乱数値X2(=Z1)を秘密分散値として設定する。
 次に、ステップS5420において、暗号化タグ生成部504は、次の項があるか否かを判定する。
 論理式「AND OR A B AND C D」では、「A」の次に「B」があるため、処理がステップS5418に進む。
 そして、次の項である「B」は被演算子(属性値)であるため、処理がステップS5419に進む。
 この結果、ステップS5419において、暗号化タグ生成部504は、次の項である被演算子(属性値「B」)に、保持乱数値X2(=Z1)を秘密分散値として設定する。
 次に、ステップS5420において、暗号化タグ生成部504は、次の項があるか否かを判定する。
 論理式「AND OR A B AND C D」では、「B」の次に「AND」があるため、処理がステップS5418に進む。
 そして、次の項である「AND」は論理演算子であるため、処理が図13のステップS5402に進む。
 論理演算子は「AND」であるため(ステップS5402で「AND」)、処理がステップS5403に進む。
 ステップS5403において、暗号化タグ生成部504は、乱数値生成部506に新たな乱数値Zjの生成を指示する。
 ここでは、新たな乱数値ZjとしてZ2が生成されたものとする。
 次に、現在着目している「AND」は2回目のANDであるため(ステップS5404で「NO」)、処理がステップS5416に進む。
 ステップS5416では、暗号化タグ生成部504は、乱数値生成部506から新たな乱数値Z2を取得し、現在の保持乱数値Y2を新たな乱数値Z2で除算して、更なる新たな乱数値(Y2/Z2)(={S0/(Z1*Z2)})を得る。
 次に、ステップS5417において、暗号化タグ生成部504は、現在の保持乱数値X2とY2を、新たな乱数値Z2と更なる新たな乱数値(Y2/Z2)で更新する(X3←Z2、Y3←(Y2/Z2))。
 次に、ステップS5407において、暗号化タグ生成部504は、「AND」の次の項が被演算子(属性値)であるか否かを判定する。
 論理式「AND OR A B AND C D」では、「AND」の次の項は「C」であるため、処理がステップS5408に進む。
 ステップS5408では、暗号化タグ生成部504は、「AND」の次の項である被演算子(属性値「C」)に、保持乱数値X3(=Z2)を秘密分散値として設定する。
 次に、ステップS5409において、暗号化タグ生成部504は、次の項があるか否かを判定する。
 論理式「AND OR A B AND C D」では、「C」の次に「D」があるため、処理がステップS5410に進む。そして、「D」は被演算子(属性値)であるため、処理がステップS5411に進む。
 ステップS5411では、暗号化タグ生成部504は、属性値「D」に、保持乱数値Y3(=(Y2/Z2))を秘密分散値として設定する。
 次に、図14のステップS5412において、暗号化タグ生成部504は、次の項があるか否かを判定する。
 論理式「AND OR A B AND C D」では、「D」が最後の項なので、処理が終了する。
  以上の処理により、「A」にX2=Z1、「B」にX2=Z1、「C」にX3=Z2、「D」に(Y2/Z2)(={S0/(Z1*Z2)})の秘密分散値が設定される。
  論理和(OR)で接続されている「A」と「B」には、共通する秘密分散値「Z1」が設定される。このため、両者が論理和(OR)で接続されていることを識別可能である。
  また、前述したように、本実施の形態では、論理式「A AND B」の場合は、s=s1+s2となる秘密分散値s1を属性値Aに設定し、秘密分散値s2を属性値Bに設定することを基本原理とする。この基本原理に沿って、暗号化タグ生成部504は、「A」と「B」に秘密分散値「Z1」を設定し、「C」に秘密分散値「Z2」を設定し、「D」に「Z1」と「Z2」との演算により得られる秘密分散値{S0/(Z1*Z2)}を設定する。このため、「A」と「B」と「C」と「D」が、論理積(AND)で接続されていることを識別可能である。
 次に、図11のステップS505の詳細を説明する。
 ステップS504の処理が行われると、全ての被演算子に秘密分散値が設定される。
 以下では、(S1,...,Sm)というm個の秘密分散値が設定されたとする。
 ステップS505では、暗号化タグ生成部504は、以下を計算する。
    E0=H(K,W)+S0
    (i=1,…,m)に対して、
     Ei1=H(H(ski、W),Ri)+Si、Ei2=Ri
     E=(L、E0、(E11、E12),...,(Em1、Em2))
 なお、S0は初期乱数値である。また、Lは検索可能条件である。Riは乱数値である。
 次に、図12のステップS603の詳細を説明する。
 先ず、一致判定部603は、検索可能条件Lと属性値集合Γとを比較する。
 そして、一致判定部603は、属性値集合Γの要素に含まれる属性Qiのうち、検索可能条件Lを満たす最低限の属性を抽出する。ここでは、一致判定部603は、検索可能条件Lを満たす最低限の属性を(QQ1,...,QQu)として抽出するものとする。
 例えば、検索可能条件Lとして論理式「A OR B」が与えられている場合、QQ1=A、QQ2=Bでも、QQ1=Aのみでも検索可能条件Lを満たす。
 一致判定部603は、このよう検索可能条件Lを満たす属性の組み合わせのうち、最も属性数が少なくなる属性の組み合わせを「検索可能条件Lを満たす最低限の属性」として抽出する。
 また、ここでは、検索可能条件Lの検索可能条件を満たす最低限の属性を抽出するための計算式をFとする。一致判定部603は、計算式Fを実行することで、検索可能条件Lを満たす最低限の属性(QQ1,...,QQu)を抽出する。
 そして、一致判定部603は、以下の計算にて、検索可能条件Lを満たす最低限の属性(QQ1,...,QQu)に対応した暗号化タグEの成分とトラップドアTの成分を以下のように抽出する。
    E0=H(K,W)+S0
    i=1,…,uに対して、
    Ei1=H(H(ski、W),Ri)+Si、Ei2=Ri
    T0=H(K,W)+r
    i=1,…,uに対して、
    Ti1=H(ski、W)、Ti2=H(Ti1、r)
 なお、Ri及びrは、それぞれ、乱数値である。
 次に、一致判定部603は、以下の計算により秘密分散値Siを算出する。
    i=1,…,uに対して、
    Si=Ei1+H(Ti1,Ei2)
 そして、一致判定部603は、算出された秘密分散値Siから、条件を満たすS0を計算式Fを用いて計算する。
 具体的には、一致判定部603は、以下のように計算を行う。
    r=H(E0+S0)+T0
 上記の「条件」とは、例えば、論理式「A AND B」の場合は、2つの属性値の論理積(乗算)である。この例の場合は、暗号化タグ生成部504により「A」に秘密分散値Z1が、「B」に秘密分散値(S0/Z1)が設定されているはずである。このため、一致判定部603が、計算式F(この例の場合は乗算)を実行すると、初期乱数値S0が復元される。
 計算式Fと条件の対応について、論理式の演算子が「OR」であれば計算式Fは加算であり、論理式の演算子が「AND」であれば計算式Fは乗算となる。
 次に、一致判定部603は、(i=1,…,n)に対して、Ti2=H(Ti1、r)が成立するか否かを判定する。
 (i=1,…,n)の全てに対して、Ti2=H(Ti1、r)が成立すれば、一致判定部603は、キーワードWが一致していると判定する。一方、(i=1,…,n)のうちの1つでもTi2=H(Ti1、r)が成立しなければ、一致判定部603は、キーワードWが一致していないと判定する。
***実施の形態の効果の説明***
 以上、本実施の形態に係る秘匿検索システムでは、暗号化タグの生成に用いられる論理式の長さ(つまり、論理式に含まれる属性値の個数)に制約を設ける必要がないため、より柔軟なアクセス制御が可能な秘匿検索を実現することができる。
 なお、本実施の形態で説明した手順の一部のみを実施しても構わない。
 また、本実施の形態で説明した手順の少なくとも一部と、本実施の形態で説明していない手順とを組み合わせて実施しても構わない。
 また、本実施の形態に記載された構成及び手順を必要に応じて変更してもよい。
***ハードウェア構成の説明***
 最後に、マスター鍵生成装置200、ユーザ鍵生成装置300、トラップドア生成装置400、暗号化タグ生成装置500及び一致判定装置600のハードウェア構成例を説明する。
 図16は、マスター鍵生成装置200と、ユーザ鍵生成装置300と、トラップドア生成装置400と、暗号化タグ生成装置500と、一致判定装置600のハードウェア構成例を示す。
 図16において、マスター鍵生成装置200と、ユーザ鍵生成装置300と、トラップドア生成装置400と、暗号化タグ生成装置500と、一致判定装置600は、それぞれ、プロセッサ1101を備える。
 プロセッサ1101は、例えばCPU(Central Processing Unit)である。
 プロセッサ1101は、バス1102を介して複数のハードウェアデバイスと接続される。プロセッサ1101は、例えば、ROM(Read Only Memory)1103、RAM(Random Access Memory)1104と接続される。また、プロセッサ1101は、通信ボード1105、ディスプレイ1111(表示装置)、キーボード1112、マウス1113と接続されていてもよい。また、プロセッサ1101は、ドライブ1114、磁気ディスク装置1120と接続されていてもよい。
 プロセッサ1101は、これらのハードウェアデバイスを制御する。
 ドライブ1114は、FD(Flexible Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)等の記憶媒体を読み書きする装置である。
 ROM1103、RAM1104、磁気ディスク装置1120及びドライブ1114は記憶装置の一例である。
 キーボード1112、マウス1113及び通信ボード1105は入力装置の一例である。
 ディスプレイ1111及び通信ボード1105は出力装置の一例である。
 通信ボード1105は、有線又は無線で、LAN(Local Area Network)、インターネット、電話回線等の通信網に接続している。
 磁気ディスク装置1120には、OS(Operating System)1121、プログラム1122、ファイル1123が記憶されている。
 プログラム1122には、本実施の形態において「~部」として説明する機能を実行するプログラムが含まれる。プログラム(例えば、暗号化タグ生成プログラム、一致判定プログラム)は、プロセッサ1101により読み出され実行される。すなわち、プログラムは、「~部」としてコンピュータを機能させるものであり、また「~部」の手順及び方法をコンピュータに実行させるものである。
 ファイル1123には、本実施の形態において説明する「~部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果等)が含まれる。
 本本実施の形態において構成図及びフローチャートに含まれている矢印は主としてデータ又は信号の入出力を示す。
 フローチャート等に基づいて説明する本実施の形態の処理はプロセッサ1101、記憶装置、入力装置、出力装置等のハードウェアを用いて実行される。
 本実施の形態において「~部」として説明するものは「~回路」又は「~装置」又は「~機器」であってもよく、また「~ステップ」又は「~手順」又は「~処理」又は「サーキットリー」であってもよい。すなわち、「~部」として説明するものは、ファームウェア、ソフトウェア、ハードウェア又はこれらの組み合わせのいずれで実装されても構わない。
 また、マスター鍵生成装置200と、ユーザ鍵生成装置300と、トラップドア生成装置400と、暗号化タグ生成装置500と、一致判定装置600は、それぞれ、処理回路により実現されてもよい。
 処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
 この場合は、「~部」として説明するものは、それぞれ処理回路の一部として実現される。
 なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
 つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
 100 秘匿検索システム、101 ネットワーク、200 マスター鍵生成装置、201 ビット長取得部、202 鍵生成部、203 送信部、204 乱数値生成部、300 ユーザ鍵生成装置、301 鍵受信部、302 属性値集合取得部、303 ユーザ鍵生成部、304 送信部、305 乱数値生成部、400 トラップドア生成装置、401 鍵受信部、402 キーワード取得部、403 トラップドア生成部、404 送信部、405 乱数値生成部、500 暗号化タグ生成装置、501 鍵受信部、502 論理式取得部、503 キーワード取得部、504 暗号化タグ生成部、505 送信部、506 乱数値生成部、507 乱数値保持部、600 一致判定装置、601 暗号化タグ受信部、602 トラップドア受信部、603 一致判定部、604 結果送信部、605 乱数値生成部、1101 プロセッサ、1102 バス、1103 ROM、1104 RAM、1105 通信ボード、1111 ディスプレイ、1112 キーボード、1113 マウス、1114 ドライブ、1120 磁気ディスク装置、1121 OS、1122 プログラム、1123 ファイル。

Claims (8)

  1.  秘匿検索が許可される条件を複数の属性値と論理演算子との論理構成により表す論理式を取得する論理式取得部と、
     前記論理構成が反映される秘密分散値を前記複数の属性値の各々に設定し、前記複数の属性値に設定された複数の秘密分散値を用いて、前記秘匿検索に用いられる暗号化タグを生成する暗号化タグ生成部とを有する暗号化タグ生成装置。
  2.  前記論理式取得部は、
     前記論理演算子として論理和演算子及び論理積演算子の少なくともいずれかが含まれる論理式を取得し、
     前記暗号化タグ生成部は、
     前記論理式に前記論理和演算子が含まれている場合に、前記論理和演算子で接続される2以上の属性値である2以上の論理和属性値の各々に、前記2以上の論理和属性値の各々が前記論理和演算子で接続されていることが反映される秘密分散値を設定し、
     前記論理式に前記論理積演算子が含まれている場合に、前記論理積演算子で接続される2以上の属性値である2以上の論理積属性値の各々に、前記2以上の論理積属性値の各々が前記論理積演算子で接続されていることが反映される秘密分散値を設定する請求項1に記載の暗号化タグ生成装置。
  3.  前記暗号化タグ生成装置は、更に、
     乱数値を生成する乱数値生成部と、
     前記乱数値生成部により生成された乱数値を保持乱数値として保持する乱数値保持部とを有し、
     前記暗号化タグ生成部は、
     前記論理式に前記論理和演算子が含まれている場合に、前記2以上の論理和属性値の各々に秘密分散値として前記保持乱数値を設定し、
     前記論理式に前記論理積演算子が含まれている場合に、前記乱数値生成部に新たな乱数値を生成させ、前記新たな乱数値と前記保持乱数値を用いた演算を行って更なる新たな乱数値を生成し、前記2以上の論理積属性値の各々に秘密分散値として前記新たな乱数値及び前記更なる新たな乱数値のいずれかを設定する請求項2に記載の暗号化タグ生成装置。
  4.  前記乱数値保持部は、
     前記乱数値生成部により前記新たな乱数値が生成され、前記暗号化タグ生成部により前記更なる新たな乱数値が生成された場合に、前記新たな乱数値及び前記更なる新たな乱数値の少なくともいずれかで前記保持乱数値を更新する請求項3に記載の暗号化タグ生成装置。
  5.  前記暗号化タグ生成部は、
     共通鍵方式によるマスター鍵と、前記マスター鍵から生成されたユーザ鍵と、前記秘匿検索のキーワードと、前記乱数値生成部により最初に生成された乱数値である初期乱数値と、前記複数の秘密分散値とを用いて、複数の暗号化タグを生成する請求項3に記載の暗号化タグ生成装置。
  6.  請求項5に示す暗号化タグ生成装置と、
     複数のトラップドアを、前記複数のトラップドアで共通する乱数値である共通乱数値と、請求項5に示すマスター鍵とユーザ鍵とキーワードとを用いて生成するトラップドア生成装置と、
     請求項5に示す複数の暗号化タグと前記複数のトラップドアとを取得し、前記複数の暗号化タグと前記複数のトラップドアとを用いて請求項5に示す複数の秘密分散値を算出し、算出した前記複数の秘密分散値を用いて請求項5に示す初期乱数値を算出し、算出した前記初期乱数値を用いて前記共通乱数値を算出し、算出した前記共通乱数値を用いて前記複数の暗号化タグの生成に用いられたキーワードと前記複数のトラップドアの生成に用いられたキーワードとが一致するかを判定する一致判定装置とを有する秘匿検索システム。
  7.  コンピュータが、秘匿検索が許可される条件を複数の属性値と論理演算子との論理構成により表す論理式を取得し、
     前記コンピュータが、前記論理構成が反映される秘密分散値を前記複数の属性値の各々に設定し、前記複数の属性値に設定された複数の秘密分散値を用いて、前記秘匿検索に用いられる暗号化タグを生成する暗号化タグ生成方法。
  8.  秘匿検索が許可される条件を複数の属性値と論理演算子との論理構成により表す論理式を取得する論理式取得処理と、
     前記論理構成が反映される秘密分散値を前記複数の属性値の各々に設定し、前記複数の属性値に設定された複数の秘密分散値を用いて、前記秘匿検索に用いられる暗号化タグを生成する暗号化タグ生成処理とをコンピュータに実行させる暗号化タグ生成プログラム。
PCT/JP2021/022276 2021-06-11 2021-06-11 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム WO2022259515A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE112021007462.8T DE112021007462T5 (de) 2021-06-11 2021-06-11 Erzeugungsvorrichtung für ein verschlüsseltes tag, durchsuchbares verschlüsselungssystem, erzeugungsverfahren für ein verschlüsseltes tag und erzeugungsprogramm für ein verschlüsseltes tag
PCT/JP2021/022276 WO2022259515A1 (ja) 2021-06-11 2021-06-11 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム
CN202180098791.4A CN117413489A (zh) 2021-06-11 2021-06-11 加密标签生成装置、隐匿检索系统、加密标签生成方法和加密标签生成程序
JP2023526799A JP7378675B2 (ja) 2021-06-11 2021-06-11 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム
US18/380,916 US20240045984A1 (en) 2021-06-11 2023-10-17 Encrypted tag generation apparatus, searchable encryption system, encrypted tag generation method, and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/022276 WO2022259515A1 (ja) 2021-06-11 2021-06-11 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/380,916 Continuation US20240045984A1 (en) 2021-06-11 2023-10-17 Encrypted tag generation apparatus, searchable encryption system, encrypted tag generation method, and computer readable medium

Publications (1)

Publication Number Publication Date
WO2022259515A1 true WO2022259515A1 (ja) 2022-12-15

Family

ID=84424632

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/022276 WO2022259515A1 (ja) 2021-06-11 2021-06-11 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム

Country Status (5)

Country Link
US (1) US20240045984A1 (ja)
JP (1) JP7378675B2 (ja)
CN (1) CN117413489A (ja)
DE (1) DE112021007462T5 (ja)
WO (1) WO2022259515A1 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019142268A1 (ja) 2018-01-17 2019-07-25 三菱電機株式会社 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LI, J. ET AL.: "Attribute-Based Keyword Search and Data Access Control in Cloud", 2014 10TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY, November 2014 (2014-11-01), pages 382 - 386, XP032726679, DOI: 10.1109/CIS.2014.113 *
MENG FEI, CHENG LEIXIAO, WANG MINGQIANG: "Ciphertext‑policy attribute‑based encryption with hidden sensitive policy from keyword search techniques in smart city", EURASIP JOURNAL ON WIRELESS COMMUNICATIONS AND NETWORKING, vol. 2021, no. 20, 3 February 2021 (2021-02-03), XP093019874, DOI: 10.1186/s13638‑020‑01875‑2 *
MIAO, Y. ET AL.: "Privacy-Preserving Attribute-Based Keyword Search in Shared Multi-Owner Setting", IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING, vol. 18, no. 3, 5 February 2019 (2019-02-05), pages 1080 - 1094, XP011854441, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/document/8634881> DOI: 10.1109/TDSC.2019.2897675 *

Also Published As

Publication number Publication date
JP7378675B2 (ja) 2023-11-13
CN117413489A (zh) 2024-01-16
US20240045984A1 (en) 2024-02-08
DE112021007462T5 (de) 2024-02-08
JPWO2022259515A1 (ja) 2022-12-15

Similar Documents

Publication Publication Date Title
JP5420085B2 (ja) データ処理装置及びデータ保管装置
JP5606642B2 (ja) データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
US9600677B2 (en) Database apparatus, method, and program
US8688969B2 (en) Cryptographic management apparatus, decryption management apparatus and program
JP5432736B2 (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
JP6239213B1 (ja) 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
WO2022202284A1 (ja) データ共有システム、データ共有方法、およびデータ共有プログラム
JP7302600B2 (ja) 情報処理システムおよび情報処理方法
JP6049914B2 (ja) 暗号システム、鍵生成装置及び再暗号化装置
JP2013156675A (ja) 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
WO2020110830A1 (ja) 情報処理装置および情報処理方法
JP2013150026A (ja) データ処理システム及び秘匿化装置及び秘密鍵生成装置及び秘匿化方法及び秘密鍵生成方法及びプログラム
WO2017126000A1 (ja) 暗号化装置、検索装置、暗号化プログラム、検索プログラム、暗号化方法及び検索方法
WO2022259515A1 (ja) 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
US11887508B2 (en) Information processing apparatus and information processing method
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
JP7411526B2 (ja) 情報処理システム及び情報処理方法
WO2017203698A1 (ja) 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム
JP6865899B1 (ja) 暗号システム、暗号化データ変換装置及び変換プログラム
EP4250163A1 (en) Data sharing system, data sharing method, and data sharing program

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023526799

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 112021007462

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 202180098791.4

Country of ref document: CN