WO2020240816A1 - 暗号システム、暗号方法および暗号プログラム - Google Patents

暗号システム、暗号方法および暗号プログラム Download PDF

Info

Publication number
WO2020240816A1
WO2020240816A1 PCT/JP2019/021707 JP2019021707W WO2020240816A1 WO 2020240816 A1 WO2020240816 A1 WO 2020240816A1 JP 2019021707 W JP2019021707 W JP 2019021707W WO 2020240816 A1 WO2020240816 A1 WO 2020240816A1
Authority
WO
WIPO (PCT)
Prior art keywords
predicate
vector
vectors
key
ciphertext
Prior art date
Application number
PCT/JP2019/021707
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 PCT/JP2019/021707 priority Critical patent/WO2020240816A1/ja
Priority to JP2021521725A priority patent/JP6980155B2/ja
Publication of WO2020240816A1 publication Critical patent/WO2020240816A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Definitions

  • the present invention relates to a multi-client type inner product predicate cipher.
  • the inner product predicate cipher is a cryptographic technique capable of determining the orthogonality of a vector while keeping the value of the vector concealed.
  • inner product predicate encryption first, a master private key and an encryption key are generated. Then, the user private key is generated using the master private key, and the ciphertext is generated using the encryption key. An input vector is assigned to each of the user private key and the ciphertext. When the user private key and the ciphertext are input to the determination algorithm, a boolean value indicating whether or not the assigned vectors are orthogonal to each other is output. At this time, even if the user private key and the ciphertext are viewed, it is not possible to obtain information about the vector values assigned to each. Therefore, the orthogonality can only be determined using a determination algorithm.
  • the inner product predicate cipher As described above, in the inner product predicate cipher, it is possible to determine that a specific relationship is satisfied while keeping a specific value secret. Therefore, the inner product predicate cipher is applied to the searchable cipher, which is a technique for performing a search while being encrypted.
  • Patent Document 1 describes an internal product predicate cipher that can conceal both an attribute vector set in a ciphertext and a predicate vector set in a decryption key.
  • one vector is assigned to each of the user private key and the ciphertext, and it is determined that the vectors are orthogonal to each other between the user private key and the ciphertext. Therefore, when determining a plurality of ciphertexts created by a plurality of clients, it is necessary to pass a plurality of user private keys corresponding to the plurality of clients to the user who executes the determination algorithm. In addition, by using individual keys and ciphertexts, the orthogonality of all combinations of ciphertexts and user private keys can be known.
  • An object of the present invention is to enable a plurality of ciphertexts to be determined without using a plurality of user private keys corresponding to a plurality of clients in the inner product predicate encryption.
  • the cryptosystem of the present invention Input one user secret key in which a plurality of predicate vectors are set and a plurality of ciphertexts in which one attribute vector corresponding to one predicate vector among the plurality of predicate vectors is set. Equipped with a judgment device that executes the judgment algorithm of the inner product predicate vector The plurality of ciphertexts have different predicate vectors corresponding to the set attribute vectors. By executing the determination algorithm, the determination device determines whether the set attribute vector is orthogonal to the corresponding predicate vector among the plurality of predicate vectors in all of the plurality of ciphertexts.
  • FIG. 5 is a functional configuration diagram of the determination device 140 according to the first embodiment.
  • Equation 101 indicates that when “A” is a random variable or a random distribution, "A" to “y” are uniformly and randomly selected according to the distribution of "A”. That is, [Equation 101] indicates that "y” is a uniform random number on "A”.
  • Equation 102 indicates that "y” is a value defined by “z” or that "z” is assigned to the variable y.
  • Equation 103 indicates a finite field F having an order q.
  • the finite field F of the order q is referred to as the finite field F q .
  • Equation 104 represents a vector (x 1 , ..., X n ) in the finite field F q .
  • Equation 105 represents the transposed matrix of the matrix X.
  • a transposed matrix of the matrix X referred to as a matrix X T.
  • [Expression 106] is the vector (b 1, ..., b N ) base B consisting of, and vector (b 1 *, ..., b N *) representing the base B * consisting.
  • Equation 107 represents the original coefficient vector (x 1 , ..., X N ) B on the basis B and the original coefficient vector (y 1 , ..., Y N ) B on the basis B * .
  • Symmetric bilinear pairing groups (q, G, G T, g, e) is a prime number q, and additive cyclic group G of order q, and a multiplicative cyclic group G T of order q, and the pairing e It is a group.
  • Dual pairing vector spaces (q, V, G T, A, e) can be configured by a direct product of a symmetric bilinear pairing groups (q, G, G T, g, e).
  • Dual pairing vector spaces (q, V, G T, A, e), the set of the prime numbers q, space V, of order q of the multiplicative cyclic group G T, and the standard basis A space V, a pairing e Is.
  • the space V is an N-dimensional vector space on the finite field F q and is defined by [Equation 108].
  • Embodiment 1 The encryption system 100 will be described with reference to FIGS. 1 to 11.
  • the encryption system 100 is a system that implements inner product predicate encryption.
  • the cryptosystem 100 is useful for implementing multi-client inner product predicate cryptography.
  • the multi-client type inner product predicate cipher is an inner product predicate cipher that can be applied to multiple clients.
  • the configuration of the encryption system 100 includes a master key generation device 110, a user key generation device 120, a plurality of ciphertext generation devices 130, and a determination device 140.
  • the number of ciphertext generators 130 is "m". "M” is an integer of 2 or more.
  • the i-th ciphertext generator 130 is referred to as the i-th ciphertext generator 130. “I” is an integer of 1 or more and m or less.
  • the master key generation device 110 uses the master key generation parameters ( ⁇ , n, m) to generate a master secret key msk and an encryption key pair (ek 1 , ..., ek m ).
  • User key generation device 120 the master secret key msk and predicate vector set (y 1, ..., y m ) with a, generating a user secret key usk.
  • the i ciphertext generating apparatus 130 by using the encryption key ek i and attribute vectors x i and the identifier id, to generate ciphertext c i.
  • the determination device 140 obtains a determination result (0 or 1) by using the user secret key sk and the ciphertext set (c 1 , ..., cm ).
  • the determination result shows the orthogonality between the predicate vector y i and the attribute vector x i for all "i".
  • the determination result "1" means that the predicate vector y i and the attribute vector x i are orthogonal to each other for all "i”.
  • the determination result "0” means that the predicate vector y i and the attribute vector x i are not orthogonal to each other for at least one of "i”.
  • the master key generation device 110 includes a parameter reception unit 111, a master key generation unit 112, and a master key output unit 113.
  • the parameter receiving unit 111 receives the master key generation parameter ( ⁇ , n, m).
  • the master key generation unit 112 uses the master key generation parameters ( ⁇ , n, m) to generate a master secret key msk and a set of encryption keys (ek 1 , ..., ek m ).
  • Master key output unit 113 a master secret key msk and, of encryption key pair (ek 1, ..., ek m ) to output.
  • the user key generation device 120 includes a master secret key reception unit 121, a predicate vector reception unit 122, a user secret key generation unit 123, and a user secret key output unit 124.
  • the master private key reception unit 121 receives the master private key msk.
  • Predicate vector receiving unit 122 the set of predicates vector (y 1, ..., y m ) accepts.
  • the user private key output unit 124 outputs the user private key usk.
  • the i-th ciphertext generation device 130 includes an encryption key reception unit 131, an attribute vector reception unit 132, a ciphertext generation unit 133, and a ciphertext output unit 134.
  • Encryption key reception unit 131 receives the encryption key ek i.
  • the attribute vector receiving unit 132 receives the attribute vector x i and the identifier id.
  • the ciphertext generation unit 133 generates the ciphertext c i by using the encryption key eki i , the attribute vector x i, and the identifier id.
  • Ciphertext output unit 134 outputs the ciphertext c i.
  • the determination device 140 includes a user private key reception unit 141, a ciphertext reception unit 142, a determination unit 143, and a determination result output unit 144.
  • the user private key reception unit 141 accepts the user private key usk.
  • the ciphertext receiving unit 142 receives a set of ciphertexts (c 1 , ..., cm ).
  • the determination unit 143 obtains the determination result (0 or 1) by using the user secret key usk and the ciphertext set (c 1 , ..., cm ).
  • the determination result output unit 144 outputs the determination result (0 or 1).
  • Each of the master key generation device 110, the user key generation device 120, the ciphertext generation device 130, and the determination device 140 is a computer.
  • Each computer includes hardware such as a processor 191 and a memory 192, an auxiliary storage device 193, a communication device 194, and an input / output interface 195. These hardware are connected to each other via signal lines.
  • the processor 191 is an IC that performs arithmetic processing and controls other hardware.
  • processor 191 is a CPU.
  • IC is an abbreviation for Integrated Circuit.
  • CPU is an abbreviation for Central Processing Unit.
  • the memory 192 is a volatile storage device.
  • the memory 192 is also referred to as a main storage device or a main memory.
  • the memory 192 is a RAM.
  • the data stored in the memory 192 is stored in the auxiliary storage device 193 as needed.
  • RAM is an abbreviation for Random Access Memory.
  • the auxiliary storage device 193 is a non-volatile storage device.
  • the auxiliary storage device 193 is a ROM, HDD or flash memory.
  • the data stored in the auxiliary storage device 193 is loaded into the memory 192 as needed.
  • ROM is an abbreviation for Read Only Memory.
  • HDD is an abbreviation for Hard Disk Drive.
  • the communication device 194 is a receiver and a transmitter.
  • the communication device 194 is a communication chip or NIC.
  • NIC is an abbreviation for Network Interface Card.
  • the input / output interface 195 is a port to which an input device and an output device are connected.
  • the input / output interface 195 is a USB terminal
  • the input device is a keyboard, mouse or USB memory
  • the output device is a display or USB memory.
  • the USB memory is an example of a storage medium.
  • USB is an abbreviation for Universal Serial Bus.
  • the auxiliary storage device 193 of the master key generation device 110 stores a master key generation program for operating the computer as a parameter reception unit 111, a master key generation unit 112, and a master key output unit 113.
  • the auxiliary storage device 193 of the user key generation device 120 contains a user key generation program for operating the computer as a master secret key reception unit 121, a predicate vector reception unit 122, a user secret key generation unit 123, and a user secret key output unit 124. Is remembered.
  • the auxiliary storage device 193 of the ciphertext generation device 130 stores a ciphertext generation program for operating the computer as an encryption key reception unit 131, an attribute vector reception unit 132, a ciphertext generation unit 133, and a ciphertext output unit 134. Has been done.
  • the auxiliary storage device 193 of the determination device 140 stores a determination program for operating the computer as the user private key reception unit 141, the ciphertext reception unit 142, the determination unit 143, and the determination result output unit 144. Each program is loaded into memory 192 and executed by processor 191.
  • the OS is further stored in the auxiliary storage device 193. At least part of the OS is loaded into memory 192 and executed by processor 191. The processor 191 executes each program while executing the OS.
  • OS is an abbreviation for Operating System.
  • the input / output data of each program is stored in the storage unit 196.
  • the memory 192 functions as a storage unit 196.
  • a storage device such as an auxiliary storage device 193, a register in the processor 191 and a cache memory in the processor 191 may function as a storage unit 196 instead of the memory 192 or together with the memory 192.
  • Each device may include a plurality of processors that replace the processor 191.
  • the plurality of processors share the role of the processor 191.
  • Each program can be recorded (stored) in a computer-readable manner on a non-volatile recording medium such as an optical disk or a flash memory.
  • the procedure for operating the encryption system 100 corresponds to the encryption method. Further, the operation procedure of the encryption system 100 corresponds to the processing procedure by the encryption program.
  • the encryption method is composed of a master key generation method, a user key generation method, a ciphertext generation method, and a determination method.
  • the encryption program is composed of a master key generation program, a user key generation program, a ciphertext generation program, and a determination program.
  • step S110 the parameter receiving unit 111 receives the master key generation parameter ( ⁇ , n, m). Specifically, the user of the master key generation device 110 operates the input device to input the master key generation parameters ( ⁇ , n, m) to the master key generation device 110. Then, the parameter receiving unit 111 receives the input master key generation parameters ( ⁇ , n, m). However, the parameter receiving unit 111 may receive the master key generation parameter ( ⁇ , n, m) by using the communication device 194.
  • the master key generation parameter ( ⁇ , n, m) consists of the security parameter ⁇ , the number of vector dimensions n, and the number of vectors m.
  • the security parameter ⁇ specifies the strength of the generated key.
  • the vector dimension number n is the respective dimension number of the predicate vector y i and the attribute vector x i .
  • the number of vectors m is the number of each of the predicate vector y i and the attribute vector x i, and corresponds to the number of ciphertext generators 130, that is, the number of clients.
  • step S120 the master key generation unit 112 executes the key generation algorithm by inputting the master key generation parameters ( ⁇ , n, m).
  • the master secret key msk, encryption key pair (ek 1, ..., ek m ) is generated.
  • the key generation algorithm will be described later.
  • the master key output unit 113 outputs the master secret key msk, encryption key pair (ek 1, ..., ek m ) a. Specifically, the master key output unit 113 transmits the master secret key msk to the user key generation device 120 by using the communication device 194. The master key output unit 113, using the communication device 194, transmits the encryption key ek i to the i-th ciphertext generating apparatus 130. However, the master key output unit 113 may write the master secret key msk to the storage medium connected to the input / output interface 195. The master key output unit 113 to another storage medium connected to the input and output interface 195, the encryption key pair (ek 1, ..., ek m ) may export the.
  • step S210 the master private key receiving unit 121 receives the master private key msk. Specifically, the master secret key receiving unit 121 receives the master secret key msk transmitted from the master key generating device 110 by using the communication device 194. However, the master private key receiving unit 121 may read the master private key msk from the storage medium connected to the input / output interface 195.
  • step S220 the predicate vector receiving unit 122, the set of predicates vector (y 1, ..., y m ) accepts.
  • the user of the user key generation device 120 operates the input device to input a set of predicate vectors (y 1 , ..., Y m ) to the user key generation device 120.
  • the predicate vector receiving unit 122, the set of input predicate vector (y 1, ..., y m ) accepts.
  • the predicate vector receiving unit 122, using the communication device 194, the set of predicates vector (y 1, ..., y m ) may receive.
  • step S230 the user private key generation unit 123, a master secret key msk and predicate vector set (y 1, ..., y m ) in the input and executes a user key generation algorithm. As a result, the user private key usk is generated.
  • the user key generation algorithm will be described later.
  • step S240 the user private key output unit 124 outputs the user private key usk. Specifically, the user secret key output unit 124 transmits the user secret key usk to the determination device 140 by using the communication device 194. However, the user secret key output unit 124 may write the user secret key usk to the storage medium connected to the input / output interface 195.
  • step S310 the encryption key reception unit 131 receives the encryption key ek i.
  • the master secret key reception unit 121 using the communication device 194 receives the encryption key ek i transmitted from the master key generating apparatus 110.
  • the master secret key reception unit 121 from a storage medium connected the output interface 195 may read the encryption key ek i.
  • step S320 the attribute vector receiving unit 132 receives the attribute vector x i and the identifier id.
  • the user of the ciphertext generating apparatus 130 operates the input device to input an attribute vector x i and the identifier id to the ciphertext generating apparatus 130.
  • the attribute vector receiving unit 132 receives the input attribute vector x i and the input identifier id.
  • the attribute vector receiving unit 132 may receive the attribute vector x i and the identifier id by using the communication device 194.
  • step S330 the ciphertext generator 133, and the input of the encryption key ek i and attribute vectors x i and the identifier id, executes the ciphertext generation algorithm.
  • ciphertext c i is generated.
  • the ciphertext generation algorithm will be described later.
  • step S340 the ciphertext output unit 134 outputs the ciphertext c i. Specifically, the ciphertext output unit 134, using the communication device 194 transmits the ciphertext c i to the decision unit 140. However, the ciphertext output unit 134, to a storage medium connected to the input and output interface 195 may write the ciphertext c i.
  • the user private key receiving unit 141 receives the user private key sk. Specifically, the user private key receiving unit 141 receives the user private key usk transmitted from the user key generating device 120 by using the communication device 194. However, the user private key reception unit 141 may read the user private key usk from the storage medium connected to the input / output interface 195.
  • the ciphertext receiving unit 142 receives a set of ciphertexts (c 1 , ..., cm ). Specifically, the ciphertext receiving unit 142, using the communication device 194 receives the cipher text c i transmitted from the i-th ciphertext generating apparatus 130. However, the ciphertext receiving unit 142, from a storage medium connected the output interface 195 may read the ciphertext c i.
  • step S430 the determination unit 143 executes the determination algorithm by inputting the user secret key sk and the ciphertext set (c 1 , ..., cm ). As a result, a determination result (0 or 1) is obtained.
  • the determination algorithm will be described later.
  • step S440 the determination result output unit 144 outputs the determination result (0 or 1). Specifically, the determination result output unit 144 displays the determination result (0 or 1) on the display connected to the input / output interface 195. However, the determination result output unit 144 may transmit the determination result (0 or 1) by using the communication device 194.
  • step S121 the master key generation unit 112 determines the parameter P 0 of the symmetric bilinear pairing group based on the security parameter ⁇ .
  • the parameter P 0 of the symmetric bilinear pairing group is defined by [number 111].
  • Parameter P 0 of the symmetric bilinear pairing group includes a position number q, and additive cyclic group G of order q, and a multiplicative cyclic group G T, and generator g of the additive cyclic group G, a pairing e ..
  • Of order q and additive cyclic group G and the multiplicative cyclic group G T and generator g is generated by an existing algorithm that generates the elliptic curve, such as BN curve suitable for pairing. Pairing e is determined by an algorithm selected from existing pairing arithmetic algorithms such as optimal ate pairing.
  • step S122 the master key generation unit 112 determines the parameter P 1 of the dual pairing vector space based on the parameter P 0 of the symmetric bilinear pairing group.
  • the parameter P 1 of the dual pairing vector space is defined by [Equation 112].
  • Parameter P 1 of dual pairing vector space includes a position number q, and space V, a multiplicative cyclic group G T of order q, and a canonical basis A space V.
  • Space V is defined by [Equation 108].
  • “A i ” is defined by [number 109].
  • Pairing e is defined by [number 110].
  • step S123 the master key generation unit 112 generates a random number ⁇ . Specifically, the master key generation unit 112 selects a random number ⁇ from the finite field F q .
  • the random number ⁇ is defined by [Equation 113].
  • step S124 the master key generation unit 112 generates a set of random matrices (X 1 , ..., X m ) whose determinant is not 0.
  • the random matrix X k is a random matrix on the finite field F q , and the magnitude of the random matrix X k is (N ⁇ N).
  • K is an integer of 1 or more and m or less.
  • the random matrix X k is defined by [number 114].
  • (X k i, j ) is an element of the random matrix X k .
  • GL (n, F q ) represents the set of the entire nth-order regular matrix on the finite field F q .
  • step S125 the master key generation unit 112 generates elements ( ⁇ ki , j ) based on the random matrix X k .
  • the element ( ⁇ ki , j ) is defined by [Equation 115].
  • step S126 the master key generation unit 112 generates a basis B k based on the standard basis A and the random matrix X k .
  • the basis B k is defined by [Equation 116].
  • step S127 the master key generation unit 112 generates a basis B k * based on the element ( ⁇ ki , j ) and the standard basis A.
  • the basis B k * is defined by [Equation 117].
  • step S128 the master key generation unit 112 generates the element g T based on the pairing e.
  • the element g T is defined by [Equation 118].
  • step S129 the master key generation unit 112 generates the master secret key msk by using the parameter P 0 , the parameter P 1, and the base set (B 1 * , ..., B m * ).
  • the master secret key msk includes a parameter P 0 , a parameter P 1, and a base pair (B 1 * , ..., B m * ).
  • the master private key msk is defined by [Equation 119].
  • the master key generation unit 112 uses a parameter P 0 and the parameter P 1 and the base B i, to generate the encryption key ek i.
  • “I” is an integer of 1 or more and m or less.
  • Encryption key ek i includes a parameter P 0 and the parameter P 1 and the base B i.
  • Encryption key ek i is defined by Equation 120].
  • step S230 the user secret key generation unit 123 generates a set of random numbers (s 1 , ..., S m-1 ) based on the finite field F q .
  • a set of random numbers (s 1 , ..., sm -1 ) is defined by [number 121].
  • Random s m is a random number set (s 1, ..., s m -1) which is inverse of the sum of. Random s m is defined by Equation 122].
  • the user secret key generation unit 123 generates a random set of vectors ( ⁇ 1 , ..., ⁇ m ) based on the finite field F q .
  • a random set of vectors ( ⁇ 1 , ..., ⁇ m ) is defined by [number 123].
  • the user secret key generation unit 123 generates a random set of vectors ( ⁇ 1 , ..., ⁇ m ) based on the finite field F q .
  • a set of random vectors ( ⁇ 1 , ..., ⁇ m ) is defined by [Equation 124].
  • step S232 the user secret key generator 123 uses the base pair (B 1 * , ..., B m * ) to generate the original pair ( ⁇ 1 , ..., ⁇ m ) on the dual pairing vector space. Generate.
  • the element ⁇ i on the dual pairing vector space is defined by [Equation 125]. “I” is an integer of 1 or more and m or less.
  • step S233 the user secret key generation unit 123 generates the user secret key usk using the original set ( ⁇ 1 , ..., ⁇ m ) on the dual pairing vector space.
  • the user secret key usk contains the original set ( ⁇ 1 , ..., ⁇ m ) on the dual pairing vector space.
  • the user private key usk is defined by [Equation 126].
  • step S331 the ciphertext generation unit 133 generates a random vector ⁇ i based on the finite field F q .
  • the random vector ⁇ i is defined by [Equation 127].
  • the ciphertext generation unit 133 generates a random vector ⁇ i based on the finite field F q .
  • the random vector ⁇ i is defined by [Equation 128].
  • step S332 the ciphertext generator 133, based on the vector omega i and vector phi i and the base B i, to generate the original c i on dual pairing vector spaces.
  • the generated source c i is the ciphertext.
  • Original c i on dual pairing vector spaces (ciphertext c i) is defined by Equation 129].
  • H (id) represents the output when id is input to the hash function H having F q as the range.
  • step S431 the determination unit 143 calculates the determination value ⁇ by using the elements of the user secret key usk ( ⁇ 1 , ..., ⁇ m ) and the ciphertext set (c 1 , ..., cm ).
  • the determination value ⁇ is defined by [Equation 130].
  • step S432 the determination unit 143 generates a determination result based on the determination value ⁇ . Specifically, if the determination value ⁇ is “1”, the determination result is “1”, and if the determination value ⁇ is not “1”, the determination result is “0”.
  • the determination result output is defined by [Equation 131].
  • the encryption system 100 realizes the following inner product predicate encryption method.
  • the inner product predicate encryption method can determine orthogonality while keeping the value of the vector concealed by using the user private key and the ciphertext in which the vector is set for each.
  • the value of each vector determines whether or not all the orthogonality between the corresponding vectors holds between one user private key in which a plurality of vectors are set and a plurality of ciphertexts in which one vector is set. It is possible to judge while keeping the secret. Multiple ciphertexts can be generated separately by different client devices.
  • the determination result is always "0".
  • the encryption system 100 includes a determination device 140.
  • the determination device 140 includes one user secret key in which a plurality of predicate vectors are set, and a plurality of ciphertexts in which one attribute vector corresponding to one predicate vector among the plurality of predicate vectors is set. , Is input to execute the judgment algorithm of the internal predicate vector. The plurality of ciphertexts have different predicate vectors corresponding to the set attribute vectors. Then, by executing the determination algorithm, the determination device 140 determines whether the set attribute vector is orthogonal to the corresponding predicate vector among the plurality of predicate vectors in all of the plurality of ciphertexts.
  • the encryption system 100 includes a user key generation device 120 and a plurality of ciphertext generation devices 130.
  • the user key generation device 120 receives one master secret key and a plurality of predicate vectors, and generates the user secret key using the received master secret key and the received plurality of predicate vectors.
  • the plurality of ciphertext generators 130 generate the plurality of ciphertexts. Each of the plurality of ciphertext generators 130 accepts one encryption key and one predicate vector, and generates one ciphertext using the accepted encryption key and the accepted predicate vector.
  • the encryption system 100 includes a master key generation device 110.
  • the master key generation device 110 generates one master private key and a plurality of encryption keys.
  • the user key generation device 120 receives the master private key generated by the master key generation device 110.
  • Each of the plurality of ciphertext generation devices 130 receives an encryption key of one of the plurality of encryption keys generated by the master key generation device 110.
  • Each of the master key generation device 110, the user key generation device 120, the ciphertext generation device 130, and the determination device 140 includes a processing circuit 199.
  • the master key generation device 110 processing circuit 199 is hardware that realizes the parameter reception unit 111, the master key generation unit 112, and the master key output unit 113.
  • the processing circuit 199 of the user key generation device 120 is hardware that realizes the master secret key reception unit 121, the predicate vector reception unit 122, the user secret key generation unit 123, and the user secret key output unit 124.
  • the processing circuit 199 of the ciphertext generation device 130 is hardware that realizes the encryption key reception unit 131, the attribute vector reception unit 132, the ciphertext generation unit 133, and the ciphertext output unit 134.
  • the processing circuit 199 of the determination device 140 is hardware that realizes the user secret key reception unit 141, the ciphertext reception unit 142, the determination unit 143, and the determination result output unit 144.
  • the processing circuit 199 may be dedicated hardware or may be a processing circuit 199 that executes a program loaded in the memory 192.
  • the processing circuit 199 is dedicated hardware, the processing circuit 199 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • ASIC is an abbreviation for Application Specific Integrated Circuit.
  • FPGA is an abbreviation for Field Programmable Gate Array.
  • Each device may include a plurality of processing circuits that replace the processing circuit 199.
  • the plurality of processing circuits share the role of the processing circuit 199.
  • each device can be realized by hardware, software, firmware, or a combination thereof.
  • the embodiments are examples of preferred embodiments and are not intended to limit the technical scope of the present invention.
  • the embodiment may be partially implemented or may be implemented in combination with other embodiments.
  • the procedure described using the flowchart or the like may be appropriately changed.
  • 100 cryptosystem 110 master key generator, 111 parameter reception unit, 112 master key generation unit, 113 master key output unit, 120 user key generator, 121 master secret key reception unit, 122 predicate vector reception unit, 123 user secret key Generation unit, 124 User secret key output unit, 130 Cryptography generation device, 131 Encryption key reception unit, 132 Attribute vector reception unit, 133 Cryptography generation unit, 134 Cryptography output unit, 140 Judgment device, 141 User secret key reception Unit, 142 Cryptographic reception unit, 143 Judgment unit, 144 Judgment result output unit, 191 processor, 192 memory, 193 auxiliary storage device, 194 communication device, 195 input / output interface, 196 storage unit, 199 processing circuit.

Abstract

暗号システム(100)は判定装置(140)を備える。前記判定装置は、複数の述語ベクトルが設定された1つのユーザ秘密鍵と、前記複数の述語ベクトルのうちの1つの述語ベクトルに対応する1つの属性ベクトルがそれぞれに設定された複数の暗号文と、を入力にして内積述語暗号の判定アルゴリズムを実行する。前記複数の暗号文は、設定された属性ベクトルに対応する述語ベクトルが互いに異なる。そして、前記判定装置は、前記判定アルゴリズムを実行することによって、前記複数の暗号文の全てで、設定された属性ベクトルが前記複数の述語ベクトルのうちの対応する述語ベクトルと直交するか判定する。

Description

暗号システム、暗号方法および暗号プログラム
 本発明は、マルチクライアント型内積述語暗号に関するものである。
 内積述語暗号とは、ベクトルの直交性を、ベクトルの値を秘匿したまま判定することが可能な暗号技術である。
 内積述語暗号では、まずマスタ秘密鍵と暗号化鍵の2つが生成される。そして、マスタ秘密鍵を使ってユーザ秘密鍵が生成され、暗号化鍵を使って暗号文が生成される。ユーザ秘密鍵と暗号文とのそれぞれには、入力されるベクトルが割り当てられる。ユーザ秘密鍵と暗号文を判定アルゴリズムに入力すると、割り当てられたベクトル同士が直交するか否かを表す真偽値が出力される。この時、ユーザ秘密鍵と暗号文を見ても、それぞれに割り当てられたベクトルの値についての情報を得ることはできない。そのため、判定アルゴリズムを用いて直交性を判定することしかできない。
 上記の通り、内積述語暗号では、具体的な値を秘匿したまま特定の関係性を満たすことを判定することが可能である。
 そのため、内積述語暗号は、暗号化したまま検索を行う技術である検索可能暗号に応用される。
 特許文献1には、暗号文に設定された属性ベクトルと、復号鍵に設定された述語ベクトルと、を共に秘匿可能な内積述語暗号について記載されている。
特許第5951122号公報
 従来の内積述語暗号では、ユーザ秘密鍵と暗号文とのそれぞれに1つのベクトルが割り当てられ、1つのユーザ秘密鍵と1つの暗号文との間でベクトルが直交することを判定する。
 そのため、複数のクライアントによって作成された複数の暗号文を判定する場合には、判定アルゴリズムを実行するユーザに複数のクライアントに対応する複数のユーザ秘密鍵を渡さなければならない。また、個別の鍵と暗号文をそれぞれ用いることで、暗号文とユーザ秘密鍵の全ての組み合わせにおける直交性が分かってしまう。
 本発明は、内積述語暗号において複数のクライアントに対応する複数のユーザ秘密鍵を用いずに複数の暗号文を判定できるようにすることを目的とする。
 本発明の暗号システムは、
 複数の述語ベクトルが設定された1つのユーザ秘密鍵と、前記複数の述語ベクトルのうちの1つの述語ベクトルに対応する1つの属性ベクトルがそれぞれに設定された複数の暗号文と、を入力にして内積述語暗号の判定アルゴリズムを実行する判定装置を備え、
 前記複数の暗号文は、設定された属性ベクトルに対応する述語ベクトルが互いに異なり、
 前記判定装置は、前記判定アルゴリズムを実行することによって、前記複数の暗号文の全てで、設定された属性ベクトルが前記複数の述語ベクトルのうちの対応する述語ベクトルと直交するか判定する。
 本発明によれば、内積述語暗号において1つのユーザ秘密鍵を用いて複数の暗号文の全ての直交性を判定することができる。
実施の形態1における暗号システム100の構成図。 実施の形態1におけるマスタ鍵生成装置110の機能構成図。 実施の形態1におけるユーザ鍵生成装置120の機能構成図。 実施の形態1における暗号文生成装置130の機能構成図。 実施の形態1における判定装置140の機能構成図。 実施の形態1における各装置(110、120、130、140)のハードウェア構成図。 実施の形態1におけるマスタ鍵生成アルゴリズム(S120)のフローチャート。 実施の形態1におけるユーザ鍵生成アルゴリズム(S230)のフローチャート。 実施の形態1における暗号文生成アルゴリズム(S330)のフローチャート。 実施の形態1における判定アルゴリズム(S430)のフローチャート。 実施の形態1における各装置(110、120、130、140)のハードウェア構成の補足図。
 実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
 実施の形態で使用する記法について説明する。
 [数101]は、「A」がランダムな変数またはランダムな分布である時、「A」の分布に従い「A」から「y」を一様ランダムに選択したことを表す。つまり、[数101]は、「y」が「A」上の一様乱数であることを表す。
Figure JPOXMLDOC01-appb-M000004
 [数102]は、「y」が「z」により定義された値であること、または、「z」が変数yに代入されたことを表す。
Figure JPOXMLDOC01-appb-M000005
 [数103]は、位数qの有限体Fを示す。位数qの有限体Fを有限体Fと記す。
Figure JPOXMLDOC01-appb-M000006
 [数104]は、有限体Fにおけるベクトル(x,…,x)を表す。
Figure JPOXMLDOC01-appb-M000007
 [数105]は、行列Xの転置行列を表す。行列Xの転置行列を行列Xと記す。
Figure JPOXMLDOC01-appb-M000008
 [数106]は、ベクトル(b,…,b)から成る基底B、および、ベクトル(b ,…,b )からなる基底Bを表す。
Figure JPOXMLDOC01-appb-M000009
 [数107]は、基底B上の元の係数ベクトル(x,…,x、および、基底B上の元の係数ベクトル(y,…,yを表す。
Figure JPOXMLDOC01-appb-M000010
 実施の形態で使用する数学的概念について説明する。
 まず、対称双線型ペアリング群について説明する。
 対称双線型ペアリング群(q,G,G,g、e)は、素数qと、位数qの加法巡回群Gと、位数qの乗法巡回群Gと、ペアリングeとの組である。
 ペアリングeは、g≠0∈Gと多項式時間で計算可能な非退化双線型ペアリングであり、「e:G×G→G」で表される。そして、e(sg、tg)=e(g,g)stとe(g,g)≠1が成り立つ。
 次に、双対ペアリングベクトル空間について説明する。
 双対ペアリングベクトル空間(q,V,G,A,e)は、対称双線型ペアリング群(q,G,G,g,e)の直積によって構成することができる。
 双対ペアリングベクトル空間(q,V,G,A,e)は、素数qと、空間V、位数qの乗法巡回群G、空間Vの標準基底Aと、ペアリングeとの組である。
 空間Vは、有限体F上のN次元ベクトル空間であり、[数108]で定義される。
 空間Vの標準基底Aは、「A:=(a,…,a)」で定義される。「a」は、[数109]で定義される。
 空間Vにおけるペアリングは、[数110]によって定義される。この定義は、非退化双線型である。
 つまり、e(sx,ty)=e(x,y)stであり、全ての整数y∈Vに対してe(x,y)=1である場合、x=0である。
 また、全ての整数i<Nと全ての整数j<Nに対して、e(a,a)=e(g,g)δi,jである。但し、i=jであれば、δi,j=1であり、i≠jであれば、δi,j=0である。また、e(g,g)≠1∈Gである。
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
Figure JPOXMLDOC01-appb-M000013
 実施の形態1.
 暗号システム100について、図1から図11に基づいて説明する。
 暗号システム100は、内積述語暗号を実施するシステムである。特に、暗号システム100は、マルチクライアント型内積述語暗号の実施に有用である。
 マルチクライアント型内積述語暗号は、マルチクライアントに対して適用することが可能な内積述語暗号である。
***構成の説明***
 図1に基づいて、暗号システム100の構成を説明する。
 暗号システム100は、マスタ鍵生成装置110と、ユーザ鍵生成装置120と、複数の暗号文生成装置130と、判定装置140とを備える。
 暗号文生成装置130の数は「m」である。「m」は2以上の整数である。
 i番目の暗号文生成装置130を第i暗号文生成装置130と称する。「i」は1以上m以下の整数である。
 マスタ鍵生成装置110は、マスタ鍵生成パラメータ(λ,n,m)を用いて、マスタ秘密鍵mskと暗号化鍵の組(ek,…,ek)を生成する。
 ユーザ鍵生成装置120は、マスタ秘密鍵mskと述語ベクトルの組(y,…,y)とを用いて、ユーザ秘密鍵uskを生成する。
 第i暗号文生成装置130は、暗号化鍵ekと属性ベクトルxと識別子idとを用いて、暗号文cを生成する。
 判定装置140は、ユーザ秘密鍵uskと暗号文の組(c,…,c)とを用いて、判定結果(0または1)を求める。
 判定結果は、全ての「i」について、述語ベクトルyと属性ベクトルxとの直交性を示す。
 判定結果「1」は、全ての「i」について、述語ベクトルyと属性ベクトルxとが直交することを意味する。
 判定結果「0」は、少なくともいずれかの「i」について、述語ベクトルyと属性ベクトルxとが直交しないことを意味する。
 図2に基づいて、マスタ鍵生成装置110の機能構成を説明する。
 マスタ鍵生成装置110は、パラメータ受付部111と、マスタ鍵生成部112と、マスタ鍵出力部113とを備える。
 パラメータ受付部111は、マスタ鍵生成パラメータ(λ,n,m)を受け付ける。
 マスタ鍵生成部112は、マスタ鍵生成パラメータ(λ,n,m)を用いて、マスタ秘密鍵mskと、暗号化鍵の組(ek,…,ek)を生成する。
 マスタ鍵出力部113は、マスタ秘密鍵mskと、暗号化鍵の組(ek,…,ek)を出力する。
 図3に基づいて、ユーザ鍵生成装置120の機能構成を説明する。
 ユーザ鍵生成装置120は、マスタ秘密鍵受付部121と、述語ベクトル受付部122と、ユーザ秘密鍵生成部123と、ユーザ秘密鍵出力部124とを備える。
 マスタ秘密鍵受付部121は、マスタ秘密鍵mskを受け付ける。
 述語ベクトル受付部122は、述語ベクトルの組(y,…,y)を受け付ける。
 ユーザ秘密鍵生成部123は、マスタ秘密鍵mskと述語ベクトルの組(y,…,y)とを用いて、ユーザ秘密鍵uskを生成する。
 ユーザ秘密鍵出力部124は、ユーザ秘密鍵uskを出力する。
 図4に基づいて、第i暗号文生成装置130の機能構成を説明する。
 第i暗号文生成装置130は、暗号化鍵受付部131と、属性ベクトル受付部132と、暗号文生成部133と、暗号文出力部134とを備える。
 暗号化鍵受付部131は、暗号化鍵ekを受け付ける。
 属性ベクトル受付部132は、属性ベクトルxと識別子idとを受け付ける。
 暗号文生成部133は、暗号化鍵ekと属性ベクトルxと識別子idとを用いて、暗号文cを生成する。
 暗号文出力部134は、暗号文cを出力する。
 図5に基づいて、判定装置140の機能構成を説明する。
 判定装置140は、ユーザ秘密鍵受付部141と、暗号文受付部142と、判定部143と、判定結果出力部144とを備える。
 ユーザ秘密鍵受付部141は、ユーザ秘密鍵uskを受け付ける。
 暗号文受付部142は、暗号文の組(c,…,c)を受け付ける。
 判定部143は、ユーザ秘密鍵uskと暗号文の組(c,…,c)とを用いて、判定結果(0または1)を求める。
 判定結果出力部144は、判定結果(0または1)を出力する。
 図6に基づいて、暗号システム100の各装置のハードウェア構成を説明する。
 マスタ鍵生成装置110とユーザ鍵生成装置120と暗号文生成装置130と判定装置140とのそれぞれは、コンピュータである。
 各コンピュータは、プロセッサ191とメモリ192と補助記憶装置193と通信装置194と入出力インタフェース195といったハードウェアを備える。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ191は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ191はCPUである。
 ICは、Integrated Circuitの略称である。
 CPUは、Central Processing Unitの略称である。
 メモリ192は揮発性の記憶装置である。メモリ192は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ192はRAMである。メモリ192に記憶されたデータは必要に応じて補助記憶装置193に保存される。
 RAMは、Random Access Memoryの略称である。
 補助記憶装置193は不揮発性の記憶装置である。例えば、補助記憶装置193は、ROM、HDDまたはフラッシュメモリである。補助記憶装置193に記憶されたデータは必要に応じてメモリ192にロードされる。
 ROMは、Read Only Memoryの略称である。
 HDDは、Hard Disk Driveの略称である。
 通信装置194はレシーバ及びトランスミッタである。例えば、通信装置194は通信チップまたはNICである。
 NICは、Network Interface Cardの略称である。
 入出力インタフェース195は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース195はUSB端子であり、入力装置はキーボード、マウスまたはUSBメモリであり、出力装置はディスプレイまたはUSBメモリである。USBメモリは記憶媒体の一例である。
 USBは、Universal Serial Busの略称である。
 マスタ鍵生成装置110の補助記憶装置193には、パラメータ受付部111とマスタ鍵生成部112とマスタ鍵出力部113としてコンピュータを機能させるためのマスタ鍵生成プログラムが記憶されている。
 ユーザ鍵生成装置120の補助記憶装置193には、マスタ秘密鍵受付部121と述語ベクトル受付部122とユーザ秘密鍵生成部123とユーザ秘密鍵出力部124としてコンピュータを機能させるためのユーザ鍵生成プログラムが記憶されている。
 暗号文生成装置130の補助記憶装置193には、暗号化鍵受付部131と属性ベクトル受付部132と暗号文生成部133と暗号文出力部134としてコンピュータを機能させるための暗号文生成プログラムが記憶されている。
 判定装置140の補助記憶装置193には、ユーザ秘密鍵受付部141と暗号文受付部142と判定部143と判定結果出力部144としてコンピュータを機能させるための判定プログラムが記憶されている。
 各プログラムは、メモリ192にロードされて、プロセッサ191によって実行される。
 補助記憶装置193には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ192にロードされて、プロセッサ191によって実行される。
 プロセッサ191は、OSを実行しながら、各プログラムを実行する。
 OSは、Operating Systemの略称である。
 各プログラムの入出力データは記憶部196に記憶される。
 メモリ192は記憶部196として機能する。但し、補助記憶装置193、プロセッサ191内のレジスタおよびプロセッサ191内のキャッシュメモリなどの記憶装置が、メモリ192の代わりに、又は、メモリ192と共に、記憶部196として機能してもよい。
 各装置は、プロセッサ191を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ191の役割を分担する。
 各プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
***動作の説明***
 暗号システム100の動作の手順は暗号方法に相当する。また、暗号システム100の動作の手順は暗号プログラムによる処理の手順に相当する。
 暗号方法は、マスタ鍵生成方法と、ユーザ鍵生成方法と、暗号文生成方法と、判定方法とで構成される。
 暗号プログラムは、マスタ鍵生成プログラムと、ユーザ鍵生成プログラムと、暗号文生成プログラムと、判定プログラムとで構成される。
 図2に基づいて、マスタ鍵生成方法を説明する。
 ステップS110において、パラメータ受付部111は、マスタ鍵生成パラメータ(λ,n,m)を受け付ける。
 具体的には、マスタ鍵生成装置110のユーザが、入力装置を操作して、マスタ鍵生成パラメータ(λ,n,m)をマスタ鍵生成装置110に入力する。そして、パラメータ受付部111は、入力されたマスタ鍵生成パラメータ(λ,n,m)を受け付ける。但し、パラメータ受付部111は、通信装置194を用いて、マスタ鍵生成パラメータ(λ,n,m)を受信してもよい。
 マスタ鍵生成パラメータ(λ,n,m)は、セキュリティパラメータλと、ベクトル次元数nとベクトル個数mとから成る。
 セキュリティパラメータλは、生成される鍵の強度を指定する。
 ベクトル次元数nは、述語ベクトルyと属性ベクトルxとのそれぞれの次元数である。
 ベクトル個数mは、述語ベクトルyと属性ベクトルxとのそれぞれの数であり、暗号文生成装置130の数、すなわち、クライアントの数に相当する。
 ステップS120において、マスタ鍵生成部112は、マスタ鍵生成パラメータ(λ,n,m)を入力にして、鍵生成アルゴリズムを実行する。これにより、マスタ秘密鍵mskと、暗号化鍵の組(ek,…,ek)が生成される。
 鍵生成アルゴリズムについて後述する。
 ステップS130において、マスタ鍵出力部113は、マスタ秘密鍵mskと、暗号化鍵の組(ek,…,ek)を出力する。
 具体的には、マスタ鍵出力部113は、通信装置194を用いて、マスタ秘密鍵mskをユーザ鍵生成装置120へ送信する。また、マスタ鍵出力部113は、通信装置194を用いて、暗号化鍵ekを第i暗号文生成装置130へ送信する。但し、マスタ鍵出力部113は、入出力インタフェース195に接続された記憶媒体へ、マスタ秘密鍵mskを書き出してもよい。また、マスタ鍵出力部113は、入出力インタフェース195に接続された別の記憶媒体へ、暗号化鍵の組(ek,…,ek)を書き出してもよい。
 図3に基づいて、ユーザ鍵生成方法を説明する。
 ステップS210において、マスタ秘密鍵受付部121は、マスタ秘密鍵mskを受け付ける。
 具体的には、マスタ秘密鍵受付部121は、通信装置194を用いて、マスタ鍵生成装置110から送信されたマスタ秘密鍵mskを受信する。但し、マスタ秘密鍵受付部121は、入出力インタフェース195に接続された記憶媒体から、マスタ秘密鍵mskを読み出してもよい。
 ステップS220において、述語ベクトル受付部122は、述語ベクトルの組(y,…,y)を受け付ける。
 具体的には、ユーザ鍵生成装置120のユーザが、入力装置を操作して、述語ベクトルの組(y,…,y)をユーザ鍵生成装置120に入力する。そして、述語ベクトル受付部122は、入力された述語ベクトルの組(y,…,y)を受け付ける。但し、述語ベクトル受付部122は、通信装置194を用いて、述語ベクトルの組(y,…,y)を受信してもよい。
 ステップS230において、ユーザ秘密鍵生成部123は、マスタ秘密鍵mskと述語ベクトルの組(y,…,y)とを入力にして、ユーザ鍵生成アルゴリズムを実行する。これにより、ユーザ秘密鍵uskが生成される。
 ユーザ鍵生成アルゴリズムについて後述する。
 ステップS240において、ユーザ秘密鍵出力部124は、ユーザ秘密鍵uskを出力する。
 具体的には、ユーザ秘密鍵出力部124は、通信装置194を用いて、ユーザ秘密鍵uskを判定装置140へ送信する。但し、ユーザ秘密鍵出力部124は、入出力インタフェース195に接続された記憶媒体へ、ユーザ秘密鍵uskを書き出してもよい。
 図4に基づいて、第i暗号文生成装置130による暗号文生成方法を説明する。
 ステップS310において、暗号化鍵受付部131は、暗号化鍵ekを受け付ける。
 具体的には、マスタ秘密鍵受付部121は、通信装置194を用いて、マスタ鍵生成装置110から送信された暗号化鍵ekを受信する。但し、マスタ秘密鍵受付部121は、入出力インタフェース195に接続された記憶媒体から、暗号化鍵ekを読み出してもよい。
 ステップS320において、属性ベクトル受付部132は、属性ベクトルxと識別子idとを受け付ける。
 具体的には、暗号文生成装置130のユーザが、入力装置を操作して、属性ベクトルxと識別子idとを暗号文生成装置130に入力する。そして、属性ベクトル受付部132は、入力された属性ベクトルxと入力された識別子idとを受け付ける。但し、属性ベクトル受付部132は、通信装置194を用いて、属性ベクトルxと識別子idとを受信してもよい。
 ステップS330において、暗号文生成部133は、暗号化鍵ekと属性ベクトルxと識別子idとを入力にして、暗号文生成アルゴリズムを実行する。これにより、暗号文cが生成される。
 暗号文生成アルゴリズムについて後述する。
 ステップS340において、暗号文出力部134は、暗号文cを出力する。
 具体的には、暗号文出力部134は、通信装置194を用いて、暗号文cを判定装置140へ送信する。但し、暗号文出力部134は、入出力インタフェース195に接続された記憶媒体へ、暗号文cを書き出してもよい。
 図5に基づいて、判定方法を説明する。
 ステップS410において、ユーザ秘密鍵受付部141は、ユーザ秘密鍵uskを受け付ける。
 具体的には、ユーザ秘密鍵受付部141は、通信装置194を用いて、ユーザ鍵生成装置120から送信されたユーザ秘密鍵uskを受信する。但し、ユーザ秘密鍵受付部141は、入出力インタフェース195に接続された記憶媒体から、ユーザ秘密鍵uskを読み出してもよい。
 ステップS420において、暗号文受付部142は、暗号文の組(c,…,c)を受け付ける。
 具体的には、暗号文受付部142は、通信装置194を用いて、第i暗号文生成装置130から送信された暗号文cを受信する。但し、暗号文受付部142は、入出力インタフェース195に接続された記憶媒体から、暗号文cを読み出してもよい。
 ステップS430において、判定部143は、ユーザ秘密鍵uskと暗号文の組(c,…,c)とを入力にして、判定アルゴリズムを実行する。これにより、判定結果(0または1)が得られる。
 判定アルゴリズムについて後述する。
 ステップS440において、判定結果出力部144は、判定結果(0または1)を出力する。
 具体的には、判定結果出力部144は、入出力インタフェース195に接続されたディスプレイに、判定結果(0または1)を表示する。但し、判定結果出力部144は、通信装置194を用いて、判定結果(0または1)を送信してもよい。
 図7に基づいて、マスタ鍵生成アルゴリズム(S120)を説明する。
 ステップS121において、マスタ鍵生成部112は、セキュリティパラメータλに基づいて、対称双線型ペアリング群のパラメータPを決定する。
 対称双線型ペアリング群のパラメータPは[数111]で定義される。
Figure JPOXMLDOC01-appb-M000014
 対称双線型ペアリング群のパラメータPは、位数qと、位数qの加法巡回群Gと、乗法巡回群Gと、加法巡回群Gの生成元gと、ペアリングeとを含む。
 位数qと加法巡回群Gと乗法巡回群Gと生成元gは、ペアリングに適したBN曲線などの楕円曲線を生成する既存のアルゴリズムによって生成される。
 ペアリングeは、optimal ateペアリングなどの既存のペアリング演算アルゴリズムから選択されるアルゴリズムによって決定される。
 ステップS122において、マスタ鍵生成部112は、対称双線型ペアリング群のパラメータPに基づいて、双対ペアリングベクトル空間のパラメータPを決定する。
 双対ペアリングベクトル空間のパラメータPは[数112]で定義される。
Figure JPOXMLDOC01-appb-M000015
 双対ペアリングベクトル空間のパラメータPは、位数qと、空間Vと、位数qの乗法巡回群Gと、空間Vの標準基底Aとを含む。
 位数qと空間Vと位数qの乗法巡回群Gと空間Vの標準基底Aとペアリングeは、[数108]と[数109]と[数110]に示すように、対称双線型ペアリング群の直積とその上のペアリングとして決定される。
 空間Vは[数108]で定義される。「N」は、ベクトル次元数nを用いて、N=6(n+1)で定義される。
 空間Vの標準基底Aは「A:=(a,…,a)」で定義される。「a」は[数109]で定義される。
 ペアリングeは[数110]で定義される。
 ステップS123において、マスタ鍵生成部112は、乱数ψを生成する。
 具体的には、マスタ鍵生成部112は、有限体Fから乱数ψを選択する。
 乱数ψは[数113]で定義される。
Figure JPOXMLDOC01-appb-M000016
 ステップS124において、マスタ鍵生成部112は、行列式が0でないランダム行列の組(X,…,X)を生成する。
 ランダム行列Xは有限体F上のランダム行列であり、ランダム行列Xの大きさは(N×N)である。「k」は1以上m以下の整数である。
 ランダム行列Xは[数114]で定義される。
 (X i,j)は、ランダム行列Xの要素である。
 ここでGL(n,F)は有限体F上のn次正則行列全体の集合を表す。
Figure JPOXMLDOC01-appb-M000017
 ステップS125において、マスタ鍵生成部112は、ランダム行列Xに基づいて、要素(γ i,j)を生成する。
 要素(γ i,j)は[数115]で定義される。
Figure JPOXMLDOC01-appb-M000018
 ステップS126において、マスタ鍵生成部112は、標準基底Aとランダム行列Xとに基づいて、基底Bを生成する。
 基底Bは[数116]で定義される。
Figure JPOXMLDOC01-appb-M000019
 ステップS127において、マスタ鍵生成部112は、要素(γ i,j)と標準基底Aとに基づいて、基底B を生成する。
 基底B は[数117]で定義される。
Figure JPOXMLDOC01-appb-M000020
 ステップS128において、マスタ鍵生成部112は、ペアリングeに基づいて、要素gを生成する。
 要素gは[数118]で定義される。
Figure JPOXMLDOC01-appb-M000021
 ステップS129において、マスタ鍵生成部112は、パラメータPとパラメータPと基底の組(B ,…,B )とを用いて、マスタ秘密鍵mskを生成する。
 マスタ秘密鍵mskは、パラメータPとパラメータPと基底の組(B ,…,B )とを含む。
 マスタ秘密鍵mskは[数119]で定義される。
Figure JPOXMLDOC01-appb-M000022
 さらに、マスタ鍵生成部112は、パラメータPとパラメータPと基底Bとを用いて、暗号化鍵ekを生成する。「i」は1以上m以下の整数である。
 暗号化鍵ekは、パラメータPとパラメータPと基底Bとを含む。
 暗号化鍵ekは[数120]で定義される。
Figure JPOXMLDOC01-appb-M000023
 図8に基づいて、ユーザ鍵生成アルゴリズム(S230)を説明する。
 ステップS231において、ユーザ秘密鍵生成部123は、有限体Fに基づいて、乱数の組(s,…,sm-1)を生成する。
 乱数の組(s,…,sm-1)は[数121]で定義される。
Figure JPOXMLDOC01-appb-M000024
 ユーザ秘密鍵生成部123は、乱数の組(s,…,sm-1)に基づいて、乱数sを生成する。乱数sは、乱数の組(s,…,sm-1)の総和の逆元である。
 乱数sは[数122]で定義される。
Figure JPOXMLDOC01-appb-M000025
 ユーザ秘密鍵生成部123は、有限体Fに基づいて、ランダムなベクトルの組(η,…,η)を生成する。
 ランダムなベクトルの組(η,…,η)は[数123]で定義される。
Figure JPOXMLDOC01-appb-M000026
 ユーザ秘密鍵生成部123は、有限体Fに基づいて、ランダムなベクトルの組(θ,…,θ)を生成する。
 ランダムなベクトルの組(θ,…,θ)は[数124]で定義される。
Figure JPOXMLDOC01-appb-M000027
 ステップS232において、ユーザ秘密鍵生成部123は、基底の組(B ,…,B )を用いて、双対ペアリングベクトル空間上の元の組(σ,…,σ)を生成する。
 双対ペアリングベクトル空間上の元σは[数125]で定義される。「i」は1以上m以下の整数である。
Figure JPOXMLDOC01-appb-M000028
 ステップS233において、ユーザ秘密鍵生成部123は、双対ペアリングベクトル空間上の元の組(σ,…,σ)を用いて、ユーザ秘密鍵uskを生成する。
 ユーザ秘密鍵uskは双対ペアリングベクトル空間上の元の組(σ,…,σ)を含む。
 ユーザ秘密鍵uskは[数126]で定義される。
Figure JPOXMLDOC01-appb-M000029
 図9に基づいて、第i暗号文生成装置130による暗号文生成アルゴリズム(S330)を説明する。
 ステップS331において、暗号文生成部133は、有限体Fに基づいて、ランダムなベクトルωを生成する。
 ランダムなベクトルωは[数127]で定義される。
Figure JPOXMLDOC01-appb-M000030
 さらに、暗号文生成部133は、有限体Fに基づいて、ランダムなベクトルφを生成する。
 ランダムなベクトルφは[数128]で定義される。
Figure JPOXMLDOC01-appb-M000031
 ステップS332において、暗号文生成部133は、ベクトルωとベクトルφと基底Bとに基づいて、双対ペアリングベクトル空間上の元cを生成する。生成された元cが暗号文となる。
 双対ペアリングベクトル空間上の元c(暗号文c)は[数129]で定義される。
 ここでH(id)はFを値域とするハッシュ関数Hにidを入力した際の出力を表す。
Figure JPOXMLDOC01-appb-M000032
 図10に基づいて、判定アルゴリズム(S430)を説明する。
 ステップS431において、判定部143は、ユーザ秘密鍵uskの要素(σ,…,σ)と暗号文の組(c,…,c)とを用いて、判定値ζを算出する。
 判定値ζは[数130]で定義される。
Figure JPOXMLDOC01-appb-M000033
 ステップS432において、判定部143は、判定値ζに基づいて、判定結果を生成する。
 具体的には、判定値ζが「1」であれば判定結果は「1」であり、判定値ζが「1」でなければ判定結果は「0」である。
 判定結果outputは[数131]で定義される。
Figure JPOXMLDOC01-appb-M000034
***実施の形態1の特徴***
 暗号システム100は、以下のような内積述語暗号方式を実現する。
 その内積述語暗号方式は、ベクトルがそれぞれに設定されたユーザ秘密鍵と暗号文を用いて、ベクトルの値を秘匿したまま、直交性の判定が可能である。特に、複数のベクトルが設定された1つのユーザ秘密鍵と、1つのベクトルが設定された複数の暗号文との間で、対応するベクトル同士の直交性が全て成り立つか否かを各ベクトルの値を秘匿したまま判定することが可能である。
 複数の暗号文はそれぞれ異なるクライアントの装置によってバラバラに生成することが可能である。また、各暗号文にはベクトルだけではなく識別子idが設定され、識別子idが等しい暗号文同士のみが判定アルゴリズムの入力として機能する。そのため、暗号文同士の識別子idが異なる場合は、常に、判定結果が「0」になる。
***実施の形態1の概要***
 暗号システム100は、判定装置140を備える。
 判定装置140は、複数の述語ベクトルが設定された1つのユーザ秘密鍵と、前記複数の述語ベクトルのうちの1つの述語ベクトルに対応する1つの属性ベクトルがそれぞれに設定された複数の暗号文と、を入力にして内積述語暗号の判定アルゴリズムを実行する。
 前記複数の暗号文は、設定された属性ベクトルに対応する述語ベクトルが互いに異なる。
 そして、判定装置140は、前記判定アルゴリズムを実行することによって、前記複数の暗号文の全てで、設定された属性ベクトルが前記複数の述語ベクトルのうちの対応する述語ベクトルと直交するか判定する。
 暗号システム100は、ユーザ鍵生成装置120と複数の暗号文生成装置130とを備える。
 ユーザ鍵生成装置120は、1つのマスタ秘密鍵と複数の述語ベクトルとを受け付け、受け付けたマスタ秘密鍵と受け付けた複数の述語ベクトルとを用いて前記ユーザ秘密鍵を生成する。
 複数の暗号文生成装置130は、前記複数の暗号文を生成する。
 複数の暗号文生成装置130のそれぞれは、1つの暗号鍵と1つの述語ベクトルとを受け付け、受け付けた暗号鍵と受け付けた述語ベクトルとを用いて1つの暗号文を生成する。
 暗号システム100は、マスタ鍵生成装置110を備える。
 マスタ鍵生成装置110は、1つのマスタ秘密鍵と複数の暗号化鍵とを生成する。
 ユーザ鍵生成装置120は、マスタ鍵生成装置110によって生成されたマスタ秘密鍵を受け付ける。
 複数の暗号文生成装置130のそれぞれは、マスタ鍵生成装置110によって生成された複数の暗号化鍵のうちの1つの暗号化鍵を受け付ける。
***実施の形態1の効果***
 それぞれ1つのベクトルが割り当てられた複数の暗号文に対して複数のベクトルが割り当てられた1つのユーザ秘密鍵を用いることで、対応するベクトル同士のペアの全てが直交するか否かのみを一度に判定することができる。
***実施の形態1の補足***
 実施の形態1では、対称双線型ペアリング群により双対ペアリングベクトル空間を構成した場合について説明した。
 なお、非対称双線型ペアリング群により双対ペアリングベクトル空間を構成することも可能である。
 実施の形態1を非対称双線型ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
 図11に基づいて、暗号システム100の各装置のハードウェア構成について補足する。
 マスタ鍵生成装置110とユーザ鍵生成装置120と暗号文生成装置130と判定装置140とのそれぞれは、処理回路199を備える。
 マスタ鍵生成装置110処理回路199は、パラメータ受付部111とマスタ鍵生成部112とマスタ鍵出力部113とを実現するハードウェアである。
 ユーザ鍵生成装置120の処理回路199は、マスタ秘密鍵受付部121と述語ベクトル受付部122とユーザ秘密鍵生成部123とユーザ秘密鍵出力部124とを実現するハードウェアである。
 暗号文生成装置130の処理回路199は、暗号化鍵受付部131と属性ベクトル受付部132と暗号文生成部133と暗号文出力部134とを実現するハードウェアである。
 判定装置140の処理回路199は、ユーザ秘密鍵受付部141と暗号文受付部142と判定部143と判定結果出力部144とを実現するハードウェアである。
 処理回路199は、専用のハードウェアであってもよいし、メモリ192にロードされたプログラムを実行する処理回路199であってもよい。
 処理回路199が専用のハードウェアである場合、処理回路199は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 ASICは、Application Specific Integrated Circuitの略称である。
 FPGAは、Field Programmable Gate Arrayの略称である。
 各装置は、処理回路199を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路199の役割を分担する。
 各装置において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、各装置の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
 実施の形態で説明された各装置の要素である「部」は、「処理」または「工程」と読み替えてもよい。
 100 暗号システム、110 マスタ鍵生成装置、111 パラメータ受付部、112 マスタ鍵生成部、113 マスタ鍵出力部、120 ユーザ鍵生成装置、121 マスタ秘密鍵受付部、122 述語ベクトル受付部、123 ユーザ秘密鍵生成部、124 ユーザ秘密鍵出力部、130 暗号文生成装置、131 暗号化鍵受付部、132 属性ベクトル受付部、133 暗号文生成部、134 暗号文出力部、140 判定装置、141 ユーザ秘密鍵受付部、142 暗号文受付部、143 判定部、144 判定結果出力部、191 プロセッサ、192 メモリ、193 補助記憶装置、194 通信装置、195 入出力インタフェース、196 記憶部、199 処理回路。

Claims (8)

  1.  複数の述語ベクトルが設定された1つのユーザ秘密鍵と、前記複数の述語ベクトルのうちの1つの述語ベクトルに対応する1つの属性ベクトルがそれぞれに設定された複数の暗号文と、を入力にして内積述語暗号の判定アルゴリズムを実行する判定装置を備え、
     前記複数の暗号文は、設定された属性ベクトルに対応する述語ベクトルが互いに異なり、
     前記判定装置は、前記判定アルゴリズムを実行することによって、前記複数の暗号文の全てで、設定された属性ベクトルが前記複数の述語ベクトルのうちの対応する述語ベクトルと直交するか判定する
    暗号システム。
  2.  前記判定装置は、数1に示す値ζをユーザ秘密鍵uskの要素(σ,…,σ)と暗号文の組(c,…,c)とを用いて算出し、値ζに基づいて判定結果を生成する
    請求項1に記載の暗号システム。
    Figure JPOXMLDOC01-appb-M000001
  3.  ユーザ秘密鍵uskの要素σが数2で定義される請求項2に記載の暗号システム。
    Figure JPOXMLDOC01-appb-M000002
  4.  識別子idと属性ベクトルxとを用いて、暗号文cが数3で定義される請求項2または請求項3に記載の暗号システム。
    Figure JPOXMLDOC01-appb-M000003
  5.  前記暗号システムは、
     1つのマスタ秘密鍵と複数の述語ベクトルとを受け付け、受け付けたマスタ秘密鍵と受け付けた複数の述語ベクトルとを用いて前記ユーザ秘密鍵を生成するユーザ鍵生成装置と、
     前記複数の暗号文を生成する複数の暗号文生成装置と、を備え、
     前記複数の暗号文生成装置のそれぞれは、1つの暗号鍵と1つの述語ベクトルとを受け付け、受け付けた暗号鍵と受け付けた述語ベクトルとを用いて1つの暗号文を生成する
    請求項1から請求項4のいずれか1項に記載の暗号システム。
  6.  前記暗号システムは、1つのマスタ秘密鍵と複数の暗号化鍵とを生成するマスタ鍵生成装置を備え、
     前記ユーザ鍵生成装置は、前記マスタ鍵生成装置によって生成されたマスタ秘密鍵を受け付け、
     前記複数の暗号文生成装置のそれぞれは、前記マスタ鍵生成装置によって生成された複数の暗号化鍵のうちの1つの暗号化鍵を受け付ける
    請求項5に記載の暗号システム。
  7.  複数の述語ベクトルが設定された1つのユーザ秘密鍵と、前記複数の述語ベクトルのうちの1つの述語ベクトルに対応する1つの属性ベクトルがそれぞれに設定された複数の暗号文と、を入力にして内積述語暗号の判定アルゴリズムを実行する暗号方法であって、
     前記複数の暗号文は、設定された属性ベクトルに対応する述語ベクトルが互いに異なり、
     判定装置が、前記判定アルゴリズムを実行することによって、前記複数の暗号文の全てで、設定された属性ベクトルが前記複数の述語ベクトルのうちの対応する述語ベクトルと直交するか判定する
    暗号方法。
  8.  複数の述語ベクトルが設定された1つのユーザ秘密鍵と、前記複数の述語ベクトルのうちの1つの述語ベクトルに対応する1つの属性ベクトルがそれぞれに設定された複数の暗号文と、を入力にして内積述語暗号の判定アルゴリズムを実行する判定処理をコンピュータに実行させるための暗号プログラムであって、
     前記複数の暗号文は、設定された属性ベクトルに対応する述語ベクトルが互いに異なり、
     前記判定処理は、前記判定アルゴリズムを実行することによって、前記複数の暗号文の全てで、設定された属性ベクトルが前記複数の述語ベクトルのうちの対応する述語ベクトルと直交するか判定する
    暗号プログラム。
PCT/JP2019/021707 2019-05-31 2019-05-31 暗号システム、暗号方法および暗号プログラム WO2020240816A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2019/021707 WO2020240816A1 (ja) 2019-05-31 2019-05-31 暗号システム、暗号方法および暗号プログラム
JP2021521725A JP6980155B2 (ja) 2019-05-31 2019-05-31 暗号システム、暗号方法および暗号プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/021707 WO2020240816A1 (ja) 2019-05-31 2019-05-31 暗号システム、暗号方法および暗号プログラム

Publications (1)

Publication Number Publication Date
WO2020240816A1 true WO2020240816A1 (ja) 2020-12-03

Family

ID=73553640

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/021707 WO2020240816A1 (ja) 2019-05-31 2019-05-31 暗号システム、暗号方法および暗号プログラム

Country Status (2)

Country Link
JP (1) JP6980155B2 (ja)
WO (1) WO2020240816A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150732A (ja) * 2011-01-20 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> 検索システム、判定装置、ベクトル構成装置、その方法及びプログラム
JP2012249215A (ja) * 2011-05-31 2012-12-13 Nippon Telegr & Teleph Corp <Ntt> ベクトル構成システム、方法、装置及びプログラム並びに暗号システム
JP2014191670A (ja) * 2013-03-28 2014-10-06 Mitsubishi Space Software Co Ltd 遺伝子情報記憶装置、遺伝子情報検索装置、遺伝子情報記憶プログラム、遺伝子情報検索プログラム、遺伝子情報記憶方法、遺伝子情報検索方法及び遺伝子情報検索システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011147074A1 (zh) * 2010-05-25 2011-12-01 华为技术有限公司 策略与计费控制的实现方法、系统及相应设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150732A (ja) * 2011-01-20 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> 検索システム、判定装置、ベクトル構成装置、その方法及びプログラム
JP2012249215A (ja) * 2011-05-31 2012-12-13 Nippon Telegr & Teleph Corp <Ntt> ベクトル構成システム、方法、装置及びプログラム並びに暗号システム
JP2014191670A (ja) * 2013-03-28 2014-10-06 Mitsubishi Space Software Co Ltd 遺伝子情報記憶装置、遺伝子情報検索装置、遺伝子情報記憶プログラム、遺伝子情報検索プログラム、遺伝子情報記憶方法、遺伝子情報検索方法及び遺伝子情報検索システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KAWAI, YUTAKA ET AL.: "Efficient configuration of predicate encryption of a common key type specialized for match determination", PREPRINTS OF THE 2017 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2017) [USB, 24 January 2017 (2017-01-24), pages 1 - 6 *

Also Published As

Publication number Publication date
JPWO2020240816A1 (ja) 2021-10-14
JP6980155B2 (ja) 2021-12-15

Similar Documents

Publication Publication Date Title
US11477006B2 (en) Secure analytics using an encrypted analytics matrix
EP3940988B1 (en) Multi-party threshold authenticated encryption
US11323444B2 (en) Method for faster secure multiparty inner product computation with SPDZ
US11431487B2 (en) Adaptive attack resistant distributed symmetric encryption
JP5419056B2 (ja) Cartier対形成の暗号化適用
US11171773B2 (en) Client-server computer system
US11804960B2 (en) Distributed symmetric encryption
CN106789087B (zh) 确定消息的数据摘要、基于多方的数字签名的方法及系统
EP3618345B1 (en) Re-encrypted key generation device, re-encryption device, re-encrypted cipher text decryption device and cryptosystem
KR20230141845A (ko) 임계값 키 교환
CN109565440B (zh) 密钥交换方法,密钥交换系统
US11101981B2 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
WO2019239776A1 (ja) 復号装置、暗号化装置及び暗号システム
JP6980155B2 (ja) 暗号システム、暗号方法および暗号プログラム
EP4144042A1 (en) Adaptive attack resistant distributed symmetric encryption
Liu et al. Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators
Chen et al. Public-key quantum signature for classical messages without third-party verification
Abdalla et al. Anonymous Pairing-Free and Certificateless Key Exchange Protocol for DRM System.
RU2774807C2 (ru) Гомоморфное шифрование для проверки подлинности с помощью пароля
Ruan et al. Building blocks of the security and management engine
JPH11331149A (ja) 公開鍵暗号方法および装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19930764

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021521725

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19930764

Country of ref document: EP

Kind code of ref document: A1