WO2014021102A1 - 暗号システム、暗号方法、暗号プログラム及び復号装置 - Google Patents
暗号システム、暗号方法、暗号プログラム及び復号装置 Download PDFInfo
- Publication number
- WO2014021102A1 WO2014021102A1 PCT/JP2013/069368 JP2013069368W WO2014021102A1 WO 2014021102 A1 WO2014021102 A1 WO 2014021102A1 JP 2013069368 W JP2013069368 W JP 2013069368W WO 2014021102 A1 WO2014021102 A1 WO 2014021102A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- polynomial
- encryption
- coefficient
- ciphertext
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
Definitions
- This invention relates to a functional encryption method using the idea of a secondary span program.
- the functional encryption method is an encryption method in which the relationship between the encryption key ek and the decryption key dk is further advanced and made more flexible.
- a parameter ⁇ and a parameter ⁇ are set for the encryption key ek and the decryption key dk, respectively. Only when the relationship R ( ⁇ , ⁇ ) is established, the decryption key dk can decrypt the ciphertext encrypted with the encryption key ek.
- Non-Patent Document 3 describes a functional encryption method.
- Non-patent document 6 describes the secondary span program.
- the functional encryption method described in Non-Patent Document 3 is a method using a primary span program.
- this functional encryption method there is a limit to the range that can be expressed as the relationship R.
- An object of the present invention is to provide a functional encryption system that can widen the range that can be expressed as the relation R by utilizing the idea of the secondary span program.
- An encryption system includes: An encryption device that generates one of the first information including the secondary span program and the second information including the attribute information as ciphertext; Based on the information obtained from the secondary span program and the attribute information when the other of the first information and the second information is a decryption key and the secondary span program accepts the attribute information, And a decryption device for decrypting the ciphertext.
- the range that can be expressed as the relationship R can be made an idealized range by using the idea of the secondary span program.
- Explanatory drawing of a secondary span program. Explanatory drawing of the subset Iu . 1 is a configuration diagram of an encryption system 10 that executes a KP-FE scheme.
- FIG. 1 is a configuration diagram of a cryptographic system 10 that executes a CP-FE scheme.
- FIG. FIG. 4 is a configuration diagram of a key generation device 100 according to a second embodiment.
- FIG. 4 is a configuration diagram of an encryption apparatus 200 according to Embodiment 2.
- FIG. 4 is a configuration diagram of a decoding device 300 according to Embodiment 2.
- 9 is a flowchart showing processing of a Setup algorithm according to the second embodiment.
- 9 is a flowchart showing processing of a KeyGen algorithm according to the second embodiment.
- 9 is a flowchart showing processing of an Enc algorithm according to the second embodiment.
- 9 is a flowchart showing processing of a Dec algorithm according to the second embodiment.
- 9 is a flowchart showing processing of a KeyGen algorithm according to the fourth embodiment.
- the figure which shows an example of the hardware constitutions of the key generation apparatus 100, the encryption apparatus 200, and the decoding apparatus 300.
- the processing device is a CPU 911 or the like which will be described later.
- the storage device is a ROM 913, a RAM 914, a magnetic disk 920, etc., which will be described later.
- the communication device is a communication board 915 or the like which will be described later.
- the input device is a keyboard 902, a communication board 915, and the like which will be described later. That is, the processing device, the storage device, the communication device, and the input device are hardware.
- Equation 101 represents selecting y from A randomly according to the distribution of A. That is, in Equation 101, y is a random number.
- Equation 102 represents selecting y from A uniformly. That is, in Equation 102, y is a uniform random number.
- the number 103 represents that y is a set defined by z, or y is a set to which z is substituted.
- a is a constant, the number 104 represents that the machine (algorithm) A outputs a for the input x.
- the number 105 that is, F q indicates a finite field of order q.
- Equation 106 The vector notation represents a vector representation in the finite field Fq . That is, Equation 106.
- Equation 107 represents the inner product shown in Equation 109 between the two vectors x ⁇ and v ⁇ shown in Equation 108.
- X T represents the transpose of the matrix X.
- Equation 114 is obtained.
- Vt means V t.
- .delta.i, j if is indicated by superscript, this .delta.i, j refers to [delta] i, j.
- f ⁇ if the " ⁇ " are indicated by superscript, this Ftau refers to f tau, this Kappatau means kappa tau.
- the encryption process includes a key generation process, an encryption process, and a decryption process.
- Embodiment 1 a concept that is the basis of a functional encryption scheme using a secondary span program and an outline of a functional encryption scheme using a secondary span program will be described.
- DPVS Dual Pairing Vector Spaces
- secondary span program”, “equal sign of attribute information and secondary span program”, and “secret sharing scheme” will be described.
- Third, an outline of a functional encryption method using a secondary span program will be described.
- Symmetric bilinear pairing groups (q, G, G T, g, e) is a prime number q, and the cyclic additive group G of order q, and a cyclic multiplicative group G T of order q, g ⁇ 0 ⁇ G
- nondegenerate bilinear pairing that can be calculated in polynomial time (nondegenerate bilinear pairing) e: a set of a G ⁇ G ⁇ G T.
- a i is as shown in Expression 116.
- Equation 118 The linear transformation ⁇ i, j in the space V shown in Equation 118 can perform Equation 119.
- the linear transformation ⁇ i, j is called a distortion map.
- a dual pairing vector space is configured by the above-described symmetric bilinear pairing group.
- a dual pairing vector space can also be configured by an asymmetric bilinear pairing group. It is easy to apply the following description to a case where a dual pairing vector space is configured by an asymmetric bilinear pairing group.
- FIG. 1 is an explanatory diagram of a secondary span program.
- i ⁇ ⁇ 0,. . . , L ⁇ and set B ⁇ b i (x)
- T (p j ): u j
- T ( ⁇ p j ): ⁇ u j
- T (p 0 ): 1.
- T (p (i) 1) ⁇ .
- FIG. 2 is an explanatory diagram of the subset Iu .
- the label [rho, the [rho 1 is ⁇ P 2
- the [rho 2 is p 1
- the [rho 3 is p 4
- [rho to 4 ⁇ P 5 is a ⁇ P 3, [rho 6
- the quadratic span program is a set of ( ⁇ 1 ,..., ⁇ L ) and ( ⁇ 1 ,..., ⁇ L ) in the field F q L such that the target polynomial d (x) divides the number 120.
- Accept input u ⁇ ⁇ 0,1 ⁇ n (or accept subset I u ) only if the tuple exists.
- the secondary span program rejects the input u ⁇ ⁇ 0,1 ⁇ n otherwise.
- the quadratic span program has inputs u ⁇ ⁇ 0,1 ⁇ n only if there exists a set of ⁇ i and ⁇ i for i ⁇ I u such that the target polynomial d (x) divides the number 121. Is accepted. Then, if the secondary span program accepts the input u ⁇ ⁇ 0,1 ⁇ n , it is possible to calculate ⁇ i and ⁇ i pairs for i ⁇ I u in polynomial time (non-patent literature). 6).
- the input u ⁇ ⁇ 0,1 ⁇ n is accepted only if there exists a set of
- U t includes identification information (t) of a partial complete set and attribute information (v ⁇ ) represented by an n-dimensional vector. That is, U t is (t, v ⁇ ).
- t is ⁇ 1,. . . , D ⁇ , and not all indexes.
- T (p 0 ): 1. In other cases, the truth value T is zero.
- a functional encryption scheme is configured by providing one of the decryption key and the ciphertext with the access structure S described above and the other having the attribute set ⁇ .
- a functional encryption scheme in which the access structure S is provided in the decryption key is called a Key-Policy functional encryption (KP-FE) method
- KP-FE Key-Policy functional encryption
- Ciphertext-Policy functional encryption This is called a CP-FE method.
- KP-FE method includes four algorithms: Setup, KeyGen, Enc, and Dec.
- the Setup algorithm is a probabilistic algorithm that receives a security parameter ⁇ and outputs a public parameter pk and a master key sk.
- the KeyGen algorithm is a stochastic algorithm that receives the access structure S, the public parameter pk, and the master key sk and outputs the decryption key sk S.
- the Dec algorithm receives the message msg or the identification information ⁇ ⁇ ⁇ by inputting the ciphertext ct ⁇ encrypted under the attribute set ⁇ , the decryption key sk S for the access structure S, and the public parameter pk. The algorithm to output.
- FIG. 3 is a configuration diagram of the cryptographic system 10 that executes the KP-FE scheme.
- the encryption system 10 includes a key generation device 100, an encryption device 200, and a decryption device 300.
- the key generation device 100 executes the Setup algorithm with the security parameter ⁇ as an input, and generates a public parameter pk and a master key sk. Then, the key generation device 100 discloses the generated public parameter pk. Further, the key generation device 100 executes the KeyGen algorithm with the access structure S as an input, generates a decryption key sk S , and distributes it to the decryption device 300 in a secret manner.
- the encryption apparatus 200 receives the message msg, the attribute set ⁇ , and the public parameter pk and executes the Enc algorithm to generate a ciphertext ct ⁇ .
- the encryption device 200 transmits the generated ciphertext ct ⁇ to the decryption device 300.
- the decryption device 300 receives the public parameter pk, the decryption key sk S, and the ciphertext ct ⁇ , executes the Dec algorithm, and outputs a message msg or identification information ⁇ .
- the CP-FE system includes four algorithms: Setup, KeyGen, Enc, and Dec.
- the Setup algorithm is a probabilistic algorithm that receives a security parameter ⁇ and outputs a public parameter pk and a master key sk.
- the Enc algorithm is a probabilistic algorithm that outputs the ciphertext ct S with the message msg, the access structure S, and the public parameter pk as inputs.
- the Dec algorithm receives the message msg or the identification information ⁇ ⁇ ⁇ by inputting the ciphertext ct S encrypted under the access structure S, the decryption key sk ⁇ for ⁇ which is a set of attributes, and the public parameter pk. The algorithm to output.
- FIG. 4 is a configuration diagram of the cryptographic system 10 that executes the CP-FE scheme.
- the encryption system 10 includes a key generation device 100, an encryption device 200, and a decryption device 300.
- the key generation device 100 executes the Setup algorithm with the security parameter ⁇ as an input, and generates a public parameter pk and a master key sk. Then, the key generation device 100 discloses the generated public parameter pk. Further, the key generation apparatus 100 executes the KeyGen algorithm with the attribute set ⁇ as an input, generates a decryption key sk ⁇ , and distributes it to the decryption apparatus 300 in a secret manner.
- the encryption device 200 receives the message msg, the access structure S, and the public parameter pk and executes the Enc algorithm to generate a ciphertext ct S.
- the encryption device 200 transmits the generated ciphertext ct S to the decryption device 300.
- the decryption device 300 receives the public parameter pk, the decryption key sk ⁇ , and the ciphertext ct S , executes the Dec algorithm, and outputs a message msg or identification information ⁇ .
- the Dec algorithm selects a subset I ( ⁇ , ⁇ ) by the above-described method based on the access structure S and the attribute set ⁇ , and further uses a coefficient ( ⁇ 1 ,..., ⁇ L ) and coefficients ( ⁇ 1 ,..., ⁇ L ). Then, based on the subset I ( ⁇ , ⁇ ) , the coefficients ( ⁇ 1 ,..., ⁇ L ) and the coefficients ( ⁇ 1 ,..., ⁇ L ), the ciphertext ct ⁇ (or ct S ) is obtained. Decrypt and calculate message msg.
- the Setup algorithm is usually executed only once during system setup.
- the KeyGen algorithm is executed each time a user decryption key is generated.
- the Enc algorithm is executed every time the message msg is encrypted.
- the Dec algorithm is executed every time the ciphertext is decrypted.
- the functional encryption scheme is configured using the access structure S based on the secondary span program.
- the range that can be expressed as the relationship R can be made an idealized range.
- Embodiment 2 a configuration example of a functional encryption scheme using a secondary span program will be described.
- the KP-FE method will be described as an example.
- FIG. 5 is a configuration diagram of the key generation apparatus 100 according to the second embodiment.
- FIG. 6 is a configuration diagram of the encryption device 200 according to the second embodiment.
- FIG. 7 is a configuration diagram of the decoding device 300 according to the second embodiment.
- 8 and 9 are flowcharts showing the operation of the key generation apparatus 100.
- FIG. 8 is a flowchart showing the process of the Setup algorithm
- FIG. 9 is a flowchart showing the process of the KeyGen algorithm.
- FIG. 10 is a flowchart showing the operation of the encryption apparatus 200, and is a flowchart showing the processing of the Enc algorithm.
- FIG. 11 is a flowchart showing the operation of the decoding apparatus 300, and is a flowchart showing the Dec algorithm processing.
- the key generation device 100 includes a master key generation unit 110, a master key storage unit 120, an information input unit 130, a decryption key generation unit 140, and a key distribution unit 150.
- the decryption key generation unit 140 includes a secret information generation unit 141 and a key element generation unit 142.
- the master key generation unit 110 calculates the equation 123 by the processing device, and generates the parameter param, the base B 0 and the base B * 0, and the base B t and the base B * t .
- n t For each integer t of d (d is an integer of 1 or more) sets n t + u t + w t + z t to N t.
- n 0 is 2mf max +1
- n t is 2mf max k max + n.
- m is the number of factors when the target polynomial d (x) is factored.
- f max is the maximum value of the factor order when the target polynomial d (x) is factorized (maximum value of f ⁇ described later).
- k max is the maximum value of the number of labels ⁇ associated with one piece of identification information t.
- n is an integer of 1 or more
- u 0 , w 0 , z 0 , u t , w t , and z t are each an integer of 0 or more.
- GL is an abbreviation for General Linear. That is, GL is a general linear group, a set of square matrices whose determinants are not 0, and a group for multiplication.
- the master key generation unit 110 sets e (g, g) ⁇ to g T by the processing device.
- the master key generation unit 110 executes the algorithm Gob shown in Equation 124 to generate param, base B 0 and base B * 0 , base B t and base B * t. To do.
- the master key generation unit 110 the processing device is generated as shown in part the base B ⁇ 0 and partial base B ⁇ t and the number 125 of the basis B t of the basis B 0 generated in (S101).
- the master key generation unit 110 combines the generated partial base B ⁇ 0 and the partial base B ⁇ t , the security parameter ⁇ input in (S101), and the param generated in (S101), and sets the public parameter pk To do.
- the master key generation unit 110 (S103: Master key generation step)
- the master key generation unit 110 the processing unit, generated as shown the partial base B ⁇ * 0 of the basis B * 0 that generated and a portion basis B ⁇ * t of the basis B * t to the number 126 (S101) To do.
- the master key generation unit 110 sets the generated partial base B ⁇ * 0 and partial base B ⁇ * t as the master key sk.
- the master key storage unit 120 stores the public parameter pk generated in (S102) in the storage device. Further, the master key storage unit 120 stores the master key sk generated in (S103) in the storage device.
- the key generation apparatus 100 executes the Setup algorithm shown in Formula 127 to generate the public parameter pk and the master key sk.
- the key generation device 100 stores the generated public parameter pk and the master key sk in the storage device.
- the public parameter is made public via a network, for example, so that the encryption device 200 and the decryption device 300 can obtain it.
- ⁇ for example, attribute information of the user of the decryption key sk S is set.
- the secret information generation unit 141 generates secret information ⁇ ⁇ , ⁇ , 0 and secret information ⁇ ⁇ , ⁇ , 1 as shown in Expression 129 by the processing device.
- the secret information generation unit 141 generates secret information ⁇ ⁇ , ⁇ , 0 and secret information ⁇ ⁇ , ⁇ , 1 as shown in Equation 130 by the processing device.
- the secret information generation unit 141 uses the processing device to store the secret information s 0 ( ⁇ , ⁇ , 0), the secret information s 0 ( ⁇ , ⁇ , 1) , the secret information s i ( ⁇ , ⁇ , 0), and the secret information.
- s i ( ⁇ , ⁇ , 1) is generated as shown in Equation 131.
- Expression 114 is provided for the base B and the base B * shown in Expression 113.
- the number 132, s 0 as a coefficient of a basis vector b * 0, 1 of the basis B * 0 ( ⁇ , ⁇ , ⁇ ) + ⁇ ⁇ , ⁇ set the iota, basis vector b * 0,1 + 1,.
- B * 0, 1 + n0 are set as e ⁇ 0 ( ⁇ , ⁇ , ⁇ ) , and the basis vectors b * 0, n0 + 1,. . . , B * 0, n0 + u0 is set to 0, and the basis vectors b * 0, n0 + u0 + 1,. . . , B * 0, n0 + u0 + w0 as the coefficients ⁇ 0,1 ( ⁇ , ⁇ , ⁇ ),. . . , ⁇ 0, w0 ( ⁇ , ⁇ , ⁇ ) and the basis vectors b * 0, n0 + u0 + w0 + 1,. . .
- n0, u0, w0, z0 is that of n 0, u 0, w 0 , z 0 , respectively.
- E ⁇ 0 ( ⁇ , ⁇ , ⁇ ) is a 2mf max- dimensional vector in which 1 is set as a coefficient of one basis vector and 0 is set as a coefficient of another basis vector, and 1 as a coefficient. Are different vectors for each ( ⁇ , ⁇ , ⁇ ).
- e ⁇ i ( ⁇ , ⁇ , ⁇ ) is a 2mf max k max dimensional vector in which 1 is set as the coefficient of one basis vector and 0 is set as the coefficient of the other basis vector,
- the basis vectors for which 1 is set as a coefficient are different vectors for each ( ⁇ , ⁇ , ⁇ ).
- E ⁇ 1 is an n-dimensional vector in which 1 is set as the coefficient of the basis vector b * t, 1 and 0 is set as the coefficient of the other basis vector.
- the key distribution unit 150 includes the access structure S input in (S201) and k * 0 ( ⁇ , ⁇ , ⁇ ) , k * 1 ( ⁇ , ⁇ , ⁇ ),. . . , K * L ( ⁇ , ⁇ , ⁇ ) as elements, the secret key sk S is secretly distributed to the decryption device 300 via the network, for example.
- the decryption key sk S may be distributed to the decryption device 300 by other methods.
- the key generation device 100 generates the decryption key sk S by executing the KeyGen algorithm expressed by Equation 134 to Equation 135.
- the key generation device 100 distributes the generated decryption key sk S to the decryption device 300.
- the encryption device 200 includes a public parameter acquisition unit 210, an information input unit 220, an encrypted data generation unit 230, and a data transmission unit 240.
- the processing of the Enc algorithm will be described based on FIG. (S301: Public parameter acquisition step)
- the public parameter acquisition unit 210 acquires, for example, the public parameter pk generated by the key generation device 100 via the network by the communication device.
- the attribute set ⁇ is set with, for example, user attribute information that can be decrypted.
- the encrypted data generation unit 230 generates the element c 0 of the ciphertext ct ⁇ by the processing device as shown in Formula 136. Encrypted data generation unit 230, the processing unit, for each integer t included in the attribute information gamma, it generates an element c t of ciphertext ct gamma as shown in (137). The encrypted data generation unit 230 generates the element cd + 1 of the ciphertext ct ⁇ by the processing device as shown in Equation 138.
- the data transmission unit 240 transmits the ciphertext ct ⁇ including the attribute set ⁇ input in (S302) and the c 0 , c t , and cd + 1 generated in (S303) to the network using, for example, a communication device.
- the ciphertext ct ⁇ may be transmitted to the decryption apparatus 300 by other methods.
- step S304 the encryption apparatus 200 transmits the generated ciphertext ct ⁇ to the decryption device 300.
- the decoding device 300 includes an information acquisition unit 310, a span program calculation unit 320, a complementary coefficient calculation unit 330, and a decoding unit 340.
- the information acquisition unit 310 includes a decryption key acquisition unit 311 and a ciphertext acquisition unit 312.
- the complementary coefficient calculation unit 330 includes a polynomial selection unit 331 and a coefficient calculation unit 332.
- the decoding unit 340 includes a pairing calculation unit 341 and a message calculation unit 342.
- the span program calculation unit 320 determines whether or not the access structure S included in the decryption key sk S acquired in (S401) accepts ⁇ included in the ciphertext ct ⁇ acquired in (S402) by the processing device. judge.
- the method of determining whether or not the access structure S accepts ⁇ is as described in “Second-1.2th span program in the first embodiment”. If the access structure S accepts ⁇ (accepted in S403), the span program calculation unit 320 advances the process to (S404). On the other hand, if the access structure S rejects ⁇ (rejection in S403), the ciphertext ct ⁇ cannot be decrypted with the decryption key sk S , and the process ends.
- the polynomial selection unit 331 of the complementary coefficient calculation unit 330 uses the processing device to set I ( ⁇ , ⁇ ) ⁇ ⁇ 1,. . . , L ⁇ .
- the calculation method of I ( ⁇ , ⁇ ) is as described in “2-2. Attribute inner product and secondary span program of the first embodiment”.
- the pairing calculation unit 341 of the decryption unit 340 generates the session key K ⁇ , 0 , K ⁇ , 1 by calculating the formula 141 using the processing device.
- the cryptographic system 10 implements a functional encryption scheme using a secondary span program.
- the range that can be expressed as the relationship R is wide.
- the polynomial a i (x) is divided by the polynomial d ⁇ (x) ⁇ for each polynomial d ⁇ (x) f ⁇ obtained by factoring the target polynomial d (x).
- An element in which the remainder is set and an element in which the remainder is set by dividing the polynomial b i (x) by the polynomial d ⁇ (x) f ⁇ are key elements k * 0 ( ⁇ , ⁇ , ⁇ ) , k * 1 ( ⁇ , ⁇ , ⁇ ),. . . , K * L ( ⁇ , ⁇ , ⁇ ) .
- secret information ⁇ and secret information ⁇ are distributed and set in each key element k * 0 ( ⁇ , ⁇ , ⁇ ) . Then, by performing pairing operation between the key element and the cryptographic element using the coefficients ⁇ and ⁇ , the remainder set for each key element is set to 0, the secret information ⁇ is set to 0, and the secret information ⁇ is set to 1.
- session keys K ⁇ , 0 , K ⁇ , 1 are extracted from the ciphertext. As a result, a functional encryption method using a secondary span program is realized.
- the KP-FE method has been described.
- the CP-FE method can also be realized by representing the KeyGen algorithm, the Enc algorithm, and the Dec algorithm as shown in Expression 145 to Expression 148, respectively.
- the Setup algorithm is the same for the KP-FE method and the CP-FE method.
- an attribute-based encryption scheme can be achieved by representing the Setup algorithm, KeyGen algorithm, Enc algorithm, and Dec algorithm as shown in Equations 149 to 153, respectively.
- n t is 2mf max k max +2.
- the CP-FE scheme shown in Formula 145 to Formula 148 can be changed to the attribute-based encryption scheme.
- Embodiment 3 FIG.
- a functional encryption scheme in which the number of dimensions of each base is small instead of a larger number of bases than in the functional encryption scheme described in the second embodiment will be described.
- a description will be given focusing on differences from the cryptographic system 10 according to the second embodiment.
- the configuration of key generation apparatus 100, encryption apparatus 200, and decryption apparatus 300 according to Embodiment 3 is the same as that of key generation apparatus 100, encryption apparatus 200, and decryption apparatus 300 according to Embodiment 2 shown in FIGS. Same as the configuration. Since the processing of the Dec algorithm according to the third embodiment is the same as the processing of the Dec algorithm according to the second embodiment, here, the processing of the Setup algorithm, the KeyGen algorithm, and the Enc algorithm according to the third embodiment will be described. To do.
- the process flow of the Setup algorithm, the KeyGen algorithm, and the Enc algorithm according to the third embodiment is the same as the process flow of the Setup algorithm, the KeyGen algorithm, and the Enc algorithm according to the second embodiment shown in FIGS.
- n is an integer of 1 or more, and u 0 , w 0 , z 0 , u t , w t , and z t are each an integer of 0 or more.
- the process (5) is the same as that in the second embodiment.
- the master key generation unit 110 based on linear transformation X t generated in (6) (tau, kappa, iota), base from canonical basis A t generated in (5) B t ( ⁇ , ⁇ , ⁇ ) is generated.
- the master key generation unit 110 as in the second embodiment, the linear transformation X * t generated in (7) (tau, kappa, iota) based on, from the canonical basis A t generated in (5) A base B * t ( ⁇ , ⁇ , ⁇ ) is generated.
- the process (10) is the same as that in the second embodiment.
- the master key generation unit 110 uses the processing device to generate the partial base B ⁇ 0 ( ⁇ , ⁇ , ⁇ ) of the base B 0 ( ⁇ , ⁇ , ⁇ ) generated in (S101 ) and the base B t ( ⁇ , ⁇ , ⁇ ) . parts of iota) base B ⁇ t ( ⁇ , ⁇ , ⁇ ) and generated as indicated in Formula 154.
- the master key generation unit 110 generates the generated partial base B ⁇ 0 ( ⁇ , ⁇ , ⁇ ) and partial base B ⁇ t ( ⁇ , ⁇ , ⁇ ) , the security parameter ⁇ input in (S101), and (S101 ) And the param generated in () are used as a public parameter pk.
- the master key generation unit 110 uses the processing device to generate the partial base B ⁇ * 0 ( ⁇ , ⁇ , ⁇ ) of the base B * 0 ( ⁇ , ⁇ , ⁇ ) generated in (S101 ) and the base B * t ( ⁇ , ⁇ , ⁇ ) and a partial basis B ⁇ * t ( ⁇ , ⁇ , ⁇ ) are generated as shown in Equation 155.
- the master key generation unit 110 sets the generated partial basis B ⁇ * 0 ( ⁇ , ⁇ , ⁇ ) and partial basis B ⁇ * t ( ⁇ , ⁇ , ⁇ ) as the master key sk.
- the key generation device 100 executes the Setup algorithm shown in Formula 156 to generate the public parameter pk and the master key sk.
- the key generation device 100 stores the generated public parameter pk and the master key sk in the storage device.
- the key generation device 100 generates the decryption key sk S by executing the KeyGen algorithm expressed by Equation 159 to Equation 160.
- the key generation device 100 distributes the generated decryption key sk S to the decryption device 300.
- the encrypted data generation unit 230 generates the element c 0 ( ⁇ , ⁇ , ⁇ ) of the ciphertext ct ⁇ as shown in Expression 161 by the processing device.
- the encrypted data generation unit 230 generates the element c t ( ⁇ , ⁇ , ⁇ ) of the ciphertext ct ⁇ as shown in Expression 162 for each integer t included in the attribute information ⁇ by the processing device.
- the encrypted data generation unit 230 generates the element cd + 1 of the ciphertext ct ⁇ as shown in Expression 163 by the processing device.
- step S304 the encryption device 200 transmits the generated ciphertext ct ⁇ to the decryption device 300.
- the cryptographic system 10 according to the third embodiment is different from the functional cryptographic scheme described in the second embodiment in that the number of bases is increased, and the functional cryptographic scheme having a smaller number of dimensions of each base. Is realized.
- the KP-FE method has been described.
- the CP-FE method can also be realized by representing the KeyGen algorithm and the Enc algorithm as shown in Expression 165 to Expression 167, respectively.
- the Setup algorithm is the same for the KP-FE method and the CP-FE method.
- the Dec algorithm is the same as the Dec algorithm shown in Formula 148.
- an attribute-based encryption scheme can be obtained by setting the Setup algorithm, KeyGen algorithm, and Enc algorithm as shown in Formula 168 to Formula 171, respectively.
- n t is 2 in the Setup algorithm.
- the Dec algorithm is the same as the Dec algorithm shown in Formula 153.
- the CP-FE scheme shown in Formula 165 to Formula 167 can be changed to the attribute-based encryption scheme.
- Embodiment 4 FIG.
- an element in which a remainder obtained by dividing the polynomial a i (x) by the polynomial d ⁇ (x) ⁇ is set.
- an element in which a remainder obtained by dividing the polynomial b i (x) by the polynomial d ⁇ (x) f ⁇ is set as a key element.
- the configuration of key generation apparatus 100, encryption apparatus 200, and decryption apparatus 300 according to Embodiment 4 is the same as that of key generation apparatus 100, encryption apparatus 200, and decryption apparatus 300 according to Embodiment 2 shown in FIGS. Same as the configuration.
- the Setup algorithm and Enc algorithm according to the fourth embodiment are the same as the Setup algorithm and Enc algorithm according to the second embodiment.
- the process flow of the Dec algorithm according to the fourth embodiment is the same as the process flow of the Dec algorithm according to the second embodiment shown in FIG.
- FIG. 12 is a flowchart showing the processing of the KeyGen algorithm according to the fourth embodiment.
- the processing from (S501) to (S503) is the same as the processing from (S201) to (S203) shown in FIG. 9, and the processing from (S505) is the same as the processing from (S206) shown in FIG. It is.
- the 2mf max- dimensional vectors that are set, and the basis vectors for which 1 is set as a coefficient are different for each ( ⁇ , ⁇ , ⁇ ).
- the key generation device 100 generates the decryption key sk S by executing the KeyGen algorithm shown in Expression 174 to Expression 175. Then, in (S505), the key generation device 100 distributes the generated decryption key sk S to the decryption device 300.
- the pairing calculation unit 341 of the decryption unit 340 generates the session key K ⁇ , 0 , K ⁇ , 1 by calculating Formula 177 using the processing device.
- the cryptographic system 10 includes an element obtained by assigning the random value ⁇ to the polynomial d ⁇ (x) ⁇ and an element obtained by assigning the random value ⁇ to the polynomial d ⁇ (x) f ⁇ - ⁇ .
- a functional encryption method is realized.
- the KP-FE method has been described.
- the CP-FE method can be realized by representing the KeyGen algorithm, the Enc algorithm, and the Dec algorithm as shown in Equations 181 to 184, respectively.
- the Setup algorithm is the same for the KP-FE method and the CP-FE method.
- an attribute-based encryption scheme can be achieved by representing the KeyGen algorithm and the Dec algorithm as shown in Equation 185 to Equation 187, respectively.
- n t is 2mf max k max +2.
- the Setup algorithm is the same as the Setup algorithm shown in Formula 149
- the Enc algorithm is the same as the Enc algorithm shown in Formula 152.
- the functional encryption method according to the fourth embodiment is replaced with the number of bases as in the case of the functional encryption scheme according to the third embodiment. Furthermore, it can be easily transformed into a functional cryptosystem with a small number of dimensions for each basis.
- Non-Patent Document 4 Unified-Policy FE (UP-FE) system described in Non-Patent Document 4 can also be easily configured from the KP-FE system and the CP-FE system.
- Unified-Policy FE UP-FE
- Embodiment 5 FIG. In the above embodiment, the method for realizing the cryptographic processing in the dual vector space has been described. In the fifth embodiment, a method for realizing cryptographic processing in a dual module will be described.
- the cryptographic primitive processing is realized in the cyclic group of prime order q.
- the ring number R is expressed as in the number 188 using the composite number M, the encryption processing described in the above embodiment can be applied even to modules with the ring number R as a coefficient.
- FIG. 13 is a diagram illustrating an example of a hardware configuration of the key generation device 100, the encryption device 200, and the decryption device 300.
- the key generation device 100, the encryption device 200, and the decryption device 300 include a CPU 911 (Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, A processor).
- CPU 911 Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, A processor
- the CPU 911 is connected to the ROM 913, the RAM 914, the LCD 901 (Liquid Crystal Display), the keyboard 902 (K / B), the communication board 915, and the magnetic disk device 920 via the bus 912, and controls these hardware devices.
- the magnetic disk device 920 (fixed disk device)
- a storage device such as an optical disk device or a memory card read / write device may be used.
- the magnetic disk device 920 is connected via a predetermined fixed disk interface.
- the ROM 913 and the magnetic disk device 920 are examples of a nonvolatile memory.
- the RAM 914 is an example of a volatile memory.
- the ROM 913, the RAM 914, and the magnetic disk device 920 are examples of a storage device (memory).
- the keyboard 902 and the communication board 915 are examples of input devices.
- the communication board 915 is an example of a communication device.
- the LCD 901 is an example of a display device.
- an operating system 921 OS
- a window system 922 a program group 923
- a file group 924 are stored in the magnetic disk device 920 or the ROM 913.
- the programs in the program group 923 are executed by the CPU 911, the operating system 921, and the window system 922.
- the program group 923 includes “master key generation unit 110”, “master key storage unit 120”, “information input unit 130”, “decryption key generation unit 140”, “key distribution unit 150”, “public” in the above description.
- Parameter acquisition unit 210 “ information input unit 220 ”,“ encrypted data generation unit 230 ”,“ data transmission unit 240 ”,“ information acquisition unit 310 ”,“ span program calculation unit 320 ”,“ complement coefficient calculation unit 330 ” ”,“ Decryption unit 340 ”, and the like, software and programs that execute the functions described above, and other programs are stored.
- the program is read and executed by the CPU 911.
- the file group 924 includes “public parameter pk”, “master secret key sk”, “decryption key sk S , sk ⁇ ”, “ciphertext ct ⁇ , ct S ”, “access structure S”, “ Information such as “attribute information” and “message msg”, data, signal values, variable values, and parameters are stored as items of “file” and “database”.
- the “file” and “database” are stored in a recording medium such as a disk or a memory.
- Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit, and extracted, searched, referenced, compared, and calculated. Used for the operation of the CPU 911 such as calculation / processing / output / printing / display. Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during the operation of the CPU 911 for extraction, search, reference, comparison, calculation, calculation, processing, output, printing, and display. Is remembered.
- the arrows in the flowchart mainly indicate input / output of data and signals, and the data and signal values are recorded in a memory of the RAM 914, other recording media such as an optical disk, and an IC chip.
- Data and signals are transmitted online by a bus 912, signal lines, cables, other transmission media, and radio waves.
- what is described as “to part” in the above description may be “to circuit”, “to device”, “to device”, “to means”, and “to function”. It may be “step”, “ ⁇ procedure”, “ ⁇ processing”.
- ⁇ device may be “ ⁇ circuit”, “ ⁇ equipment”, “ ⁇ means”, “ ⁇ function”, and “ ⁇ step”, “ ⁇ procedure”, “ May be “processing”.
- to process may be “to step”. That is, what is described as “ ⁇ unit” may be realized by firmware stored in the ROM 913. Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware.
- Firmware and software are stored in a recording medium such as ROM 913 as a program. The program is read by the CPU 911 and executed by the CPU 911. That is, the program causes a computer or the like to function as the “ ⁇ unit” described above. Alternatively, the procedure or method of “unit” described above is executed by a computer or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
Description
関数型暗号方式において、暗号化鍵ekと復号鍵dkとには、それぞれ、パラメータΦとパラメータΨとが設定される。そして、関係R(Φ,Ψ)が成立する場合に限り、復号鍵dkは暗号化鍵ekで暗号化された暗号文を復号することができる。
この発明は、2次スパンプログラムの考えを利用することにより、関係Rとして表現できる範囲を広くすることが可能な関数型暗号方式を提供することを目的とする。
2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文として生成する暗号化装置と、
前記第1情報と前記第2情報とのうちの他方を復号鍵とし、前記2次スパンプログラムが前記属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号装置と
を備えることを特徴とする。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
bi(i=1,...,n)が空間Vのベクトルの要素であるとき、つまり、数110であるとき、数111は、数112によって生成される部分空間を表す。
また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
この実施の形態では、2次スパンプログラムを用いた関数型暗号方式の基礎となる概念と、2次スパンプログラムを用いた関数型暗号方式の概要とを説明する。
第1に、関数型暗号方式を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)」という豊かな数学的構造を有する空間を説明する。
第2に、関数型暗号方式を実現するための概念を説明する。ここでは、「2次スパンプログラム」、「属性情報の等号と2次スパンプログラム」、「秘密分散方式」について説明する。
第3に、2次スパンプログラムを用いた関数型暗号方式の概要について説明する。
まず、対称双線形ペアリング群について説明する。
対称双線形ペアリング群(q,G,GT,g,e)は、素数qと、位数qの巡回加法群Gと、位数qの巡回乗法群GTと、g≠0∈Gと、多項式時間で計算可能な非退化双線形ペアリング(Nondegenerate Bilinear Pairing)e:G×G→GTとの組である。非退化双線形ペアリングは、e(sg,tg)=e(g,g)stであり、e(g,g)≠1である。
以下の説明において、Gbpgを、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を出力するアルゴリズムとする。
双対ペアリングベクトル空間(q,V,GT,A,e)は、対称双線形ペアリング群(paramG:=(q,G,GT,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,GT,A,e)は、素数q、数115に示すFq上のN次元ベクトル空間V、位数qの巡回群GT、空間Vの標準基底A:=(a1,...,aN)の組であり、以下の演算(1)(2)を有する。ここで、aiは、数116に示す通りである。
空間Vにおけるペアリングは、数117によって定義される。
<第2-1.2次スパンプログラム>
図1は、2次スパンプログラムの説明図である。
体Fqにおける2次スパンプログラムは、2つの多項式の集合A={ai(x)|i∈{0,...,L}}及び集合B={bi(x)|i∈{0,...,L}}と、目標多項式d(x)とを含む。また、2次スパンプログラムは、集合I:={1,...,L}のラベルρを含む。全てのラベルρi(i=1,...,L)は、{p0,p1,...,pn,¬p1,...,¬pn}のいずれか1つのリテラルへ対応付けられる。つまり、ρ:I→{p0,p1,...,pn,¬p1,...,¬pn}である。
集合Iの部分集合Iuは、入力uにより1が設定されたラベルの要素から構成される。つまり、Iu:={i∈I|T(p(i)=1)}である。又は、Iu:={i∈I|[ρ(i)=pj∧uj=1]∨[ρ(i)=¬pj∧uj=0]∨[ρ(i)=p0]}である。
なお、図2では、n=7,L=6としている。また、図2において、ラベルρは、ρ1が¬p2に、ρ2がp1に、ρ3がp4に、ρ4が¬p5に、ρ5が¬p3に、ρ6がp5にそれぞれ対応付けられているとする。
ここで、入力u:=(u1,...,u7)∈{0,1}7が、u1=1,u2=0,u3=1,u4=0,u5=0,u6=1,u7=1であるとする。この場合、部分集合Iuは、破線で囲んだリテラル(p1,p3,p6,p7,¬p2,¬p4,¬p5)に対応付けられているラベルρiの要素iから構成される。つまり、部分集合Iuは、ラベルρ1,ρ2,ρ4の要素iから構成され、部分集合Iu:={i=1,2,4}である。
Ut(t=1,...,dでありUt⊂{0,1}*)は、部分全集合(sub-universe)であり、属性の集合である。そして、Utは、それぞれ部分全集合の識別情報(t)と、n次元ベクトルで表された属性情報(v→)とを含む。つまり、Utは、(t,v→)である。ここで、t∈{1,...,d}であり、v→∈Fq nである。
アクセスストラクチャSを、p0及び{pj:=(t,v→ j)}j=1,...,nを伴う2次スパンプログラムQ:=(A,B,d(x),ρ)とする。つまり、ρ:{1,...,L}→{p0,(t,v→ 1),...,(t,v→ n),¬(t,v→ 1),...,¬(t,v→ n)}である。また、Γを属性集合とする。つまり、Γ:={(t,x→ t)|x→ t∈Fq n,1≦t≦d}である。ここで、tは、{1,...,d}の部分集合であって、全インデックスである必要はない。
属性集合ΓがアクセスストラクチャSに与えられると、{p0,p1,...,pn,¬p1,...,¬pn}のリテラルの真理値Tは次のように決定される。pj=(t,v→ j)かつ(t,x→ t)∈Γかつv→ j・x→ t=0である場合に限り、T(pj):=1になる。pj=¬(t,v→ j)かつ(t,x→ j)∈Γかつv→ j・x→ t≠0である場合に限り、T(¬pj):=1になる。T(p0):=1になる。他の場合には、真理値Tは0になる。
そして、Iu(=I(ρ,Γ)):={i∈I|T(ρ(i))=1}、つまり、I(ρ,Γ):={i∈I|[ρ(i)=(t,v→ j)∧(t,x→ t)∈Γ∧(v→ j・x→ t)=0]∨[ρ(i)=¬(t,v→ j)∧(t,x→ j)∈Γ∧v→ j・x→ t≠0]∨[ρ(i)=p0]}とする。
復号鍵と暗号文との一方に上述したアクセスストラクチャSを持たせ、他方に属性集合Γを持たせることにより、関数型暗号方式を構成する。
KP-FE方式及びCP-FE方式の構成と、各方式を実行する暗号システム10の構成とを説明する。
KP-FE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、アクセスストラクチャSと、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skSを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmsgと、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq n,1≦t≦d}と、公開パラメータpkとを入力として、暗号文ctΓを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、属性の集合であるΓの下で暗号化された暗号文ctΓと、アクセスストラクチャSに対する復号鍵skSと、公開パラメータpkとを入力として、メッセージmsg、又は、識別情報⊥を出力するアルゴリズムである。
暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSを入力としてKeyGenアルゴリズムを実行して、復号鍵skSを生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、メッセージmsgと、属性の集合Γと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctΓを生成する。暗号化装置200は、生成した暗号文ctΓを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skSと、暗号文ctΓとを入力としてDecアルゴリズムを実行して、メッセージmsg又は識別情報⊥を出力する。
CP-FE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq n,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skΓを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmsgと、アクセスストラクチャSと、公開パラメータpkとを入力として、暗号文ctSを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、アクセスストラクチャSの下で暗号化された暗号文ctSと、属性の集合であるΓに対する復号鍵skΓと、公開パラメータpkとを入力として、メッセージmsg、又は、識別情報⊥を出力するアルゴリズムである。
暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合Γを入力としてKeyGenアルゴリズムを実行して、復号鍵skΓを生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、メッセージmsgと、アクセスストラクチャSと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctSを生成する。暗号化装置200は、生成した暗号文ctSを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skΓと、暗号文ctSとを入力としてDecアルゴリズムを実行して、メッセージmsg又は識別情報⊥を出力する。
実施の形態2では、2次スパンプログラムを用いた関数型暗号方式の構成例について説明する。
ここでは、KP-FE方式を例として説明する。
図8と図9とは、鍵生成装置100の動作を示すフローチャートである。図8はSetupアルゴリズムの処理を示すフローチャートであり、図9はKeyGenアルゴリズムの処理を示すフローチャートである。図10は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図11は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、秘密情報生成部141、鍵要素生成部142を備える。
(S101:正規直交基底生成ステップ)
マスター鍵生成部110は、処理装置により、数123を計算して、パラメータparamと、基底B0及び基底B* 0と、基底Bt及び基底B* tとを生成する。
(1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)を入力する。
(2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλを入力としてアルゴリズムGbpgを実行して、双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を生成する。
(3)マスター鍵生成部110は、処理装置により、乱数ψを生成する。
(4)マスター鍵生成部110は、N0にn0+u0+w0+z0を設定し、t=1,...,d(dは1以上の整数)の各整数tについて、Ntにnt+ut+wt+ztを設定する。ここで、n0は2mfmax+1であり、ntは2mfmaxkmax+nである。mは、目標多項式d(x)を因数分解した場合の因数の数である。fmaxは、目標多項式d(x)を因数分解した場合の因数の次数の最大値(後述するfτの最大値)である。kmaxは、1つの識別情報tに対応付けられるラベルρの個数の最大値である。nは1以上の整数であり、u0,w0,z0,ut,wt,ztはそれぞれ0以上の整数である。
(5)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλと、(4)で設定したNtと、(2)で生成したparamG:=(q,G,GT,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,Vt,GT,At,e)の値を生成する。
(6)マスター鍵生成部110は、処理装置により、(4)で設定したNtと、Fqとを入力として、線形変換Xt:=(χt,i,j)i,jをランダムに生成する。なお、GLは、General Linearの略である。つまり、GLは、一般線形群であり、行列式が0でない正方行列の集合であり、乗法に関し群である。また、(χt,i,j)i,jは、行列χt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Ntである。
(7)マスター鍵生成部110は、処理装置により、乱数ψと線形変換Xtとに基づき、X* t:=(νt,i,j)i,j:=ψ・(Xt T)-1を生成する。なお、(νt,i,j)i,jも(χt,i,j)i,jと同様に、行列νt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Ntである。
(8)マスター鍵生成部110は、処理装置により、(6)で生成した線形変換Xtに基づき、(5)で生成した標準基底Atから基底Btを生成する。なお、x→ t,iとは、線形変換Xtのi行目を示す。
(9)マスター鍵生成部110は、処理装置により、(7)で生成した線形変換X* tに基づき、(5)で生成した標準基底Atから基底B* tを生成する。なお、v→ t,iとは、線形変換X* tのi行目を示す。
(10)マスター鍵生成部110は、処理装置により、gTにe(g,g)ψを設定する。また、マスター鍵生成部110は、paramに(5)で生成した{paramVt}t=0,...,dと、gTとを設定する。
マスター鍵生成部110は、処理装置により、(S101)で生成した基底B0の部分基底B^0と、基底Btの部分基底B^tとを数125に示すように生成する。
マスター鍵生成部110は、処理装置により、(S101)で生成した基底B* 0の部分基底B^* 0と、基底B* tの部分基底B^* tとを数126に示すように生成する。
マスター鍵記憶部120は、(S102)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S103)で生成したマスター鍵skを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、上述したアクセスストラクチャS:=(A,B,d(x),ρ)を入力する。なお、ρは、例えば、復号鍵skSの使用者の属性情報が設定されている。また、アクセスストラクチャSに含まれる目標多項式d(x)は、数128に示すように、τ=1,...,mのm個の因数dτ(x)fτに因数分解可能である。
秘密情報生成部141は、処理装置により、秘密情報s0 (τ,κ,0)及び秘密情報s0 (τ,κ,1)と、秘密情報si (τ,κ,0)及び秘密情報si (τ,κ,1)とを数131に示すように生成する。
鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιとについて、復号鍵skSの要素k* 0 (τ,κ,ι)を数132に示すように生成する。
また、e→ 0 (τ,κ,ι)は、1つの基底ベクトルの係数として1が設定され、他の基底ベクトルの係数として0が設定された2mfmax次元のベクトルであって、係数として1が設定される基底ベクトルが(τ,κ,ι)毎に異なるベクトルである。同様に、e→ i (τ,κ,ι)は、1つの基底ベクトルの係数として1が設定され、他の基底ベクトルの係数として0が設定された2mfmaxkmax次元のベクトルであって、係数として1が設定される基底ベクトルが(τ,κ,ι)毎に異なるベクトルである。
また、e→ 1は、基底ベクトルb* t,1の係数として1が設定され、他の基底ベクトルの係数として0が設定されたn次元のベクトルである。
鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιと、i=1,...,Lの各整数iとについて、復号鍵skSの要素k* i (τ,κ,ι)を数133に示すように生成する。
鍵配布部150は、(S201)で入力したアクセスストラクチャSと、(S205)で生成されたk* 0 (τ,κ,ι),k* 1 (τ,κ,ι),...,k* L (τ,κ,ι)とを要素とする復号鍵skSを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skSは、他の方法により復号装置300へ配布されてもよい。
暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。
(S301:公開パラメータ取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部220は、入力装置により、復号装置300へ送信するメッセージmsgを入力する。また、情報入力部220は、入力装置により、属性の集合Γ:={(t,x→ t:=(xt,1,...,xt,n∈Fq n))|1≦t≦d}を入力する。なお、tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。また、属性の集合Γは、例えば、復号可能なユーザの属性情報が設定されている。
暗号化データ生成部230は、処理装置により、暗号文ctΓの要素c0を数136に示すように生成する。
データ送信部240は、(S302)で入力した属性の集合Γと、(S303)で生成されたc0,ct,cd+1とを要素とする暗号文ctΓを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctΓは、他の方法により復号装置300へ送信されてもよい。
復号装置300は、情報取得部310、スパンプログラム計算部320、補完係数計算部330、復号部340を備える。また、情報取得部310は、復号鍵取得部311、暗号文取得部312を備える。また、補完係数計算部330は、多項式選択部331、係数計算部332を備える。また、復号部340は、ペアリング演算部341、メッセージ計算部342を備える。
(S401:復号鍵取得ステップ)
復号鍵取得部311は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵skS:=(S,k* 0 (τ,κ,ι),k* 1 (τ,κ,ι),...,k* L (τ,κ,ι))を取得する。また、復号鍵取得部311は、鍵生成装置100が生成した公開パラメータpkを取得する。
暗号文取得部312は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctΓ:=(Γ,c0,ct,cd+1)を取得する。
スパンプログラム計算部320は、処理装置により、(S401)で取得した復号鍵skSに含まれるアクセスストラクチャSが、(S402)で取得した暗号文ctΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「実施の形態1における第2-1.2次スパンプログラム」で説明した通りである。
スパンプログラム計算部320は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号文ctΓを復号鍵skSで復号できないとして処理を終了する。
補完係数計算部330の多項式選択部331は、処理装置により、I(ρ,Γ)⊆{1,...,L}を計算する。I(ρ,Γ)の計算方法は、「実施の形態1の第2-2.属性の内積と2次スパンプログラム」で説明した通りである。
補完係数計算部330の係数計算部332は、処理装置により、数140となる係数(α1,...,αL)と、係数(β1,...,βL)と、次数(κ1,...,κm)とを計算する。係数(α1,...,αL)と、係数(β1,...,βL)と、次数(κ1,...,κm)との計算方法は、どのような方法でもよく、例えば総当たり法により計算してもよい。
復号部340のメッセージ計算部342は、処理装置により、数142を計算して、メッセージmsg’(=msg)を生成する。
2次スパンプログラムを利用することにより、関係Rとして表現できる範囲が広い。
実施の形態3では、実施の形態2で説明した関数型暗号方式に比べ、基底の数が多くなる代わりに、各基底の次元数が少ない関数型暗号方式を説明する。
実施の形態3では、実施の形態2に係る暗号システム10と異なる部分を中心に説明する。
実施の形態3に係るDecアルゴリズムの処理については、実施の形態2に係るDecアルゴリズムの処理と同じであるため、ここでは、実施の形態3に係るSetupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムの処理について説明する。
実施の形態3に係るSetupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムの処理の流れは、図8~図10に示す実施の形態2に係るSetupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムの処理の流れと同じである。
(S101:正規直交基底生成ステップ)
(1)~(3)の処理は、実施の形態2と同じである。
(4)マスター鍵生成部110は、N0にn0+u0+w0+z0を設定し、t=1,...,d(dは1以上の整数)の各整数tについて、Ntにnt+ut+wt+ztを設定する。ここで、n0は1であり、ntはnである。nは1以上の整数であり、u0,w0,z0,ut,wt,ztはそれぞれ0以上の整数である。
続いて、マスター鍵生成部110は、τ=1,...,m、κ=0,...,fτ、ι=0,1、t=0,...,dの各整数τ、κ、ι、tについて(5)から(9)までの処理を実行する。
(5)の処理は、実施の形態2と同じである。
(6)マスター鍵生成部110は、実施の形態2と同様に、線形変換Xt (τ,κ,ι):=(χt,i,j (τ,κ,ι))i,jをランダムに生成する。
(7)マスター鍵生成部110は、実施の形態2と同様に、X* t (τ,κ,ι):=(νt,i,j (τ,κ,ι))i,j:=ψ・(Xt (τ,κ,ι)T)-1を生成する。
(8)マスター鍵生成部110は、実施の形態2と同様に、(6)で生成した線形変換Xt (τ,κ,ι)に基づき、(5)で生成した標準基底Atから基底Bt (τ,κ,ι)を生成する。
(9)マスター鍵生成部110は、実施の形態2と同様に、(7)で生成した線形変換X* t (τ,κ,ι)に基づき、(5)で生成した標準基底Atから基底B* t (τ,κ,ι)を生成する。
(10)の処理は、実施の形態2と同じである。
マスター鍵生成部110は、処理装置により、(S101)で生成した基底B0 (τ,κ,ι)の部分基底B^0 (τ,κ,ι)と、基底Bt (τ,κ,ι)の部分基底B^t (τ,κ,ι)とを数154に示すように生成する。
マスター鍵生成部110は、処理装置により、(S101)で生成した基底B* 0 (τ,κ,ι)の部分基底B^* 0 (τ,κ,ι)と、基底B* t (τ,κ,ι)の部分基底B^* t (τ,κ,ι)とを数155に示すように生成する。
(S201)から(S204)までと、(S206)との処理は、実施の形態2と同じである。
鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιとについて、復号鍵skSの要素k* 0 (τ,κ,ι)を数157に示すように生成する。
(S301)から(S302)までと、(S304)との処理は、実施の形態2と同じである。
暗号化データ生成部230は、処理装置により、暗号文ctΓの要素c0 (τ,κ,ι)を数161に示すように生成する。
実施の形態2,3では、目標多項式d(x)を因数分解した多項式dτ(x)fτ毎に、多項式dτ(x)κで多項式ai(x)を割った余りを設定した要素と、多項式dτ(x)fτ-κで多項式bi(x)を割った余りを設定した要素とを、鍵要素とした。
実施の形態4では、目標多項式d(x)を因数分解した多項式dτ(x)fτ毎に、多項式dτ(x)κに乱数値γを代入した要素と、多項式dτ(x)fτ-κに乱数値γを代入した要素とを、鍵要素とする。
実施の形態4に係るSetupアルゴリズム、Encアルゴリズムは、実施の形態2に係るSetupアルゴリズム、Encアルゴリズムと同じである。
実施の形態4に係るDecアルゴリズムの処理の流れは、図11に示す実施の形態2に係るDecアルゴリズムの処理の流れと同じである。
図12は、実施の形態4に係るKeyGenアルゴリズムの処理を示すフローチャートである。
(S501)から(S503)までの処理は、図9に示す(S201)から(S203)までの処理と同じであり、(S505)の処理は、図9に示す(S206)との処理と同じである。
鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιと、j=1,...,μ+1の各整数jとについて、復号鍵skSの要素k* 0,j (τ,κ,ι)と要素k* 0,μ+1 (τ,κ,ι)とを数172に示すように生成する。
(S401)から(S404)までの処理は、実施の形態2と同じである。
補完係数計算部330の係数計算部332は、処理装置により、数176となる係数(α1,...,αL)と、係数(β1,...,βL)と、次数κとを計算する。
メッセージ計算部342は、処理装置により、数178を計算して、メッセージmsg’(=msg)を生成する。
以上の実施の形態では、双対ベクトル空間において暗号処理を実現する方法について説明した。実施の形態5では、双対加群において暗号処理を実現する方法について説明する。
言い替えると、ρ(i)=(t,v→)又はρ(i)=¬(t,v→)である場合に、関数ρ~を、ρ~(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρ~が単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
図13は、鍵生成装置100、暗号化装置200、復号装置300のハードウェア構成の一例を示す図である。
図13に示すように、鍵生成装置100、暗号化装置200、復号装置300は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ファイル群924には、上記の説明において「公開パラメータpk」、「マスター秘密鍵sk」、「復号鍵skS,skΓ」、「暗号文ctΓ,ctS」、「アクセスストラクチャS」、「属性情報」、「メッセージmsg」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明において「~部」として説明するものは、「~回路」、「~装置」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。また、「~装置」として説明するものは、「~回路」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。さらに、「~処理」として説明するものは「~ステップ」であっても構わない。すなわち、「~部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「~部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「~部」の手順や方法をコンピュータ等に実行させるものである。
Claims (13)
- 2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文として生成する暗号化装置と、
前記第1情報と前記第2情報とのうちの他方を復号鍵とし、前記2次スパンプログラムが前記属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号装置と
を備えることを特徴とする暗号システム。 - 前記第1情報は、前記2次スパンプログラムとして、多項式d(x)と複数の多項式Di(x)と述語情報とを含み、
前記復号装置は、
前記第1情報に含まれる述語情報と、前記第2情報に含まれる属性情報とに基づき、前記複数の多項式Di(x)から少なくとも一部の多項式Di(x)を選択する多項式選択部と、
前記多項式選択部が選択した多項式Di(x)に係数Δiを掛けた多項式ΔiDi(x)に基づき構成される多項式を、前記多項式d(x)で割り切れるようにする係数Δiを計算する係数計算部と、
前記係数計算部が計算した係数Δiに基づき、前記暗号文を復号する復号部と
を備えることを特徴とする請求項1に記載の暗号システム。 - 前記複数の多項式Di(x)は、i=0,...,L(Lは1以上の整数)の各整数iについての多項式ai(x)及び多項式bi(x)であり、
前記多項式選択部は、前記属性情報と前記述語情報とに基づき、i=1,...,Lのうち一部の整数iの集合Iを選択することにより、多項式a0(x)及び多項式b0(x)と、前記集合Iに含まれる整数iについての多項式ai(x)及び多項式bi(x)とを選択し、
前記係数計算部は、(a0(x)+Σi∈Iαiai(x))・(b0(x)+Σi∈Iβibi(x))を前記多項式d(x)で割り切れるようにする係数αi及び係数βiを前記係数Δiとして計算する
ことを特徴とする請求項2に記載の暗号システム。 - 前記多項式d(x)は、τ=1,...,m(mは1以上の整数)の多項式dτ(x)fτに因数分解され、
前記係数計算部は、Πτ=1 mdτ(x)κτが(a0(x)+Σi∈Iαiai(x))を割り切るようにするとともに、Πτ=1 mdτ(x)fτ-κτが(b0(x)+Σi∈Iβibi(x))を割り切るようにする係数αi及び係数βiと、次数κτとを計算し、
前記復号部は、前記係数αi及び前記係数βiと、前記次数κτとに基づき、前記暗号文を復号する
ことを特徴とする請求項3に記載の暗号システム。 - 前記属性情報は、t=1,...,d(dは1以上の整数)の少なくとも一部の整数tについての属性ベクトルx→ tを含み、
前記述語情報は、i=1,...,Lの各整数iについての識別子tと述語ベクトルv→ iとの組(t,v→ i)を含み、
前記多項式選択部は、i=1,...,Lの各整数iについての前記組(t,v→ i)について、その組の述語ベクトルv→ iとその組の識別情報tについての属性ベクトルx→ tとの内積が0となるか否かにより、整数iを前記集合Iに含めるか否かを判定する
ことを特徴とする請求項3又は4に記載の暗号システム。 - 前記組(t,v→ i)は、肯定形と否定形とのいずれかに対応付けられており、
前記多項式選択部は、前記組(t,v→ i)が肯定形に対応付けられている場合、前記内積が0となるなら、整数iを前記集合Iに含め、前記組(t,v→ i)が否定形に対応付けられている場合、前記内積が0とならないなら、整数iを前記集合Iに含める
ことを特徴とする請求項5に記載の暗号システム。 - 前記多項式d(x)は、τ=1,...,m(mは1以上の整数)の多項式dτ(x)fτに因数分解され、
前記第1情報は、多項式dτ(x)fτ毎に、その多項式dτ(x)fτによって得られる情報が設定された要素を含み、
前記復号部は、前記係数Δiと前記要素とに基づき、前記暗号文を復号する
ことを特徴とする請求項2から6までのいずれかに記載の暗号システム。 - 前記第1情報は、多項式dτ(x)fτ毎に、κ=0,...,fτの各整数κと、i=0,...,Lの各整数iとについて、多項式dτ(x)κで多項式ai(x)を割った余りを設定した要素と、多項式dτ(x)fτ-κで多項式bi(x)を割った余りを設定した要素とを含む
ことを特徴とする請求項7に記載の暗号システム。 - 前記第1情報は、多項式dτ(x)fτ毎に、所定の値γを代入した値を設定した要素を含む
ことを特徴とする請求項7に記載の暗号システム。 - 前記復号部は、前記係数Δiに基づき、前記要素について所定の演算を行うことにより、前記多項式dτ(x)fτによって得られる情報を0にして、前記暗号文を復号する
ことを特徴とする請求項7から9までのいずれかに記載の暗号システム。 - 暗号化装置が、2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文として生成する暗号化工程と、
復号装置が、前記第1情報と前記第2情報とのうちの他方を復号鍵とし、前記2次スパンプログラムが前記属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号工程と
を備えることを特徴とする暗号方法。 - 2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文として生成する暗号化処理と、
前記第1情報と前記第2情報とのうちの他方を復号鍵とし、前記2次スパンプログラムが前記属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号処理と
をコンピュータに実行させることを特徴とする暗号プログラム。 - 2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文とし、他方を復号鍵として取得する情報取得部と、
前記情報取得部が取得した第1情報に含まれる2次スパンプログラムが第2情報に含まれる属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号部と
を備えることを特徴とする復号装置。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201380040471.9A CN104620305B (zh) | 2012-07-31 | 2013-07-17 | 密码系统、密码方法、密码程序以及解密装置 |
| KR1020147036181A KR101606317B1 (ko) | 2012-07-31 | 2013-07-17 | 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치 |
| US14/395,655 US9413531B2 (en) | 2012-07-31 | 2013-07-17 | Cryptographic system, cryptographic method, cryptographic program, and decryption device |
| EP13824763.0A EP2881930B1 (en) | 2012-07-31 | 2013-07-17 | Encryption system, encryption method, encryption program and decryption device |
| ES13824763.0T ES2645463T3 (es) | 2012-07-31 | 2013-07-17 | Sistema criptográfico, método criptográfico, programa criptográfico y dispositivo de desencriptación |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012-170001 | 2012-07-31 | ||
| JP2012170001A JP5814880B2 (ja) | 2012-07-31 | 2012-07-31 | 暗号システム、暗号方法、暗号プログラム及び復号装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014021102A1 true WO2014021102A1 (ja) | 2014-02-06 |
Family
ID=50027784
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2013/069368 Ceased WO2014021102A1 (ja) | 2012-07-31 | 2013-07-17 | 暗号システム、暗号方法、暗号プログラム及び復号装置 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US9413531B2 (ja) |
| EP (1) | EP2881930B1 (ja) |
| JP (1) | JP5814880B2 (ja) |
| KR (1) | KR101606317B1 (ja) |
| CN (1) | CN104620305B (ja) |
| ES (1) | ES2645463T3 (ja) |
| WO (1) | WO2014021102A1 (ja) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9755823B2 (en) * | 2013-05-15 | 2017-09-05 | Mitsubishi Electric Corporation | Cryptographic system, cryptographic method, and computer readable medium |
| WO2015025916A1 (ja) * | 2013-08-22 | 2015-02-26 | 日本電信電話株式会社 | マルチパーティセキュア認証システム、認証サーバ、中間サーバ、マルチパーティセキュア認証方法及びプログラム |
| US9640090B2 (en) | 2014-02-24 | 2017-05-02 | Mitsubishi Electric Corporation | Cryptographic system and computer readable medium |
| US10277564B2 (en) | 2016-05-04 | 2019-04-30 | Nxp Usa, Inc. | Light-weight key update mechanism with blacklisting based on secret sharing algorithm in wireless sensor networks |
| WO2018026944A1 (en) * | 2016-08-02 | 2018-02-08 | X-Logos, LLC | Methods and systems for enhanced data-centric encryption systems using geometric algebra |
| US11223472B2 (en) * | 2016-09-12 | 2022-01-11 | Nippon Telegraph And Telephone Corporation | Encrypted message search method, message transmission/reception system, server, terminal and program |
| US11139952B2 (en) * | 2017-01-18 | 2021-10-05 | Mitsubishi Electric Corporation | Homomorphic computation device, encryption system, and computer readable medium |
| CN111615809A (zh) * | 2018-01-17 | 2020-09-01 | 三菱电机株式会社 | 隐匿分析装置、隐匿分析系统、隐匿分析方法和隐匿分析程序 |
| JP7117964B2 (ja) * | 2018-10-04 | 2022-08-15 | 三菱電機株式会社 | 復号装置、暗号システム、復号方法及び復号プログラム |
| US10937339B2 (en) | 2019-01-10 | 2021-03-02 | Bank Of America Corporation | Digital cryptosystem with re-derivable hybrid keys |
| US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
| US20240163088A1 (en) * | 2022-11-16 | 2024-05-16 | Nicolas LEOUTSARAKOS | Fault-tolerant access to digital assets without storing sensitive security data for decryption |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011232475A (ja) * | 2010-04-27 | 2011-11-17 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0823331A (ja) * | 1994-07-07 | 1996-01-23 | Murata Mach Ltd | 暗号化通信方法及び装置 |
| US7162032B2 (en) * | 1999-12-20 | 2007-01-09 | Telenor Asa | Encryption of programs represented as polynomial mappings and their computations |
| JP3917507B2 (ja) * | 2002-01-28 | 2007-05-23 | 株式会社東芝 | コンテンツ提供側システム、ユーザ側システム、追跡システム、コンテンツ提供方法、暗号化コンテンツ復号方法、不正ユーザ特定方法、暗号化装置、復号装置及びプログラム |
| JPWO2004001701A1 (ja) * | 2002-06-20 | 2005-10-20 | 株式会社日立製作所 | 符号演算装置 |
| KR20050083566A (ko) * | 2002-12-03 | 2005-08-26 | 마츠시타 덴끼 산교 가부시키가이샤 | 키공유 시스템, 공유키 생성장치 및 공유키 복원장치 |
| KR101024768B1 (ko) * | 2003-04-24 | 2011-03-24 | 파나소닉 주식회사 | 파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램 |
| US20080098213A1 (en) * | 2004-07-08 | 2008-04-24 | Koninklijke Philips Electronics, N.V. | Method of Providing Digital Certificate Functionality |
| US7634085B1 (en) | 2005-03-25 | 2009-12-15 | Voltage Security, Inc. | Identity-based-encryption system with partial attribute matching |
| JP2008011092A (ja) * | 2006-06-28 | 2008-01-17 | Fuji Xerox Co Ltd | 暗号化コンテンツ検索方式 |
| US20090080658A1 (en) | 2007-07-13 | 2009-03-26 | Brent Waters | Method and apparatus for encrypting data for fine-grained access control |
| CN101188496B (zh) * | 2007-12-10 | 2010-09-29 | 中兴通讯股份有限公司 | 一种短信加密传输方法 |
| JP2010204466A (ja) | 2009-03-04 | 2010-09-16 | Toshiba Corp | 暗号装置、復号装置、鍵生成装置及びプログラム |
| CN102369687B (zh) * | 2009-04-24 | 2014-09-17 | 日本电信电话株式会社 | 密码系统、密码通信方法、加密装置、密钥生成装置、解密装置、内容服务器装置、程序、存储介质 |
| US8385541B2 (en) * | 2010-02-18 | 2013-02-26 | King Fahd University Of Petroleum And Minerals | Method of performing elliptic polynomial cryptography with elliptic polynomial hopping |
| WO2012011565A1 (ja) * | 2010-07-23 | 2012-01-26 | 日本電信電話株式会社 | 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体 |
| US8532289B2 (en) | 2010-08-16 | 2013-09-10 | International Business Machines Corporation | Fast computation of a single coefficient in an inverse polynomial |
| US8925075B2 (en) * | 2011-11-07 | 2014-12-30 | Parallels IP Holdings GmbH | Method for protecting data used in cloud computing with homomorphic encryption |
| WO2013101136A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Dual composite field advanced encryption standard memory encryption engine |
-
2012
- 2012-07-31 JP JP2012170001A patent/JP5814880B2/ja active Active
-
2013
- 2013-07-17 EP EP13824763.0A patent/EP2881930B1/en not_active Not-in-force
- 2013-07-17 WO PCT/JP2013/069368 patent/WO2014021102A1/ja not_active Ceased
- 2013-07-17 ES ES13824763.0T patent/ES2645463T3/es active Active
- 2013-07-17 US US14/395,655 patent/US9413531B2/en active Active
- 2013-07-17 CN CN201380040471.9A patent/CN104620305B/zh not_active Expired - Fee Related
- 2013-07-17 KR KR1020147036181A patent/KR101606317B1/ko not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011232475A (ja) * | 2010-04-27 | 2011-11-17 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
Non-Patent Citations (9)
| Title |
|---|
| OKAMOTO, T.; TAKASHIMA, K, DECENTRALIZED ATTRIBUTE-BASED SIGNATURES, Retrieved from the Internet <URL:http://eprint.iacr.org/2011/701> |
| OKAMOTO, T.; TAKASHIMA, K.: "Pairing 2008. LNCS", vol. 5209, 2008, SPRINGER HEIDELBERG, article "Homomorphic encryption and signatures from vector decomposition", pages: 57 - 74 |
| OKAMOTO, T.; TAKASHIMA, K: "ASIACRYPT 2009", 2009, SPRINGER HEIDELBERG, article "Hierarchical predicate encryption for inner-products" |
| OKAMOTO, T.; TAKASHIMA, K: "CRYPTO 2010. LNCS", vol. 6223, 2010, SPRINGER HEIDELBERG, article "Fully secure functional encryption with general relations from the decisional linear assumption", pages: 191 - 208 |
| OKAMOTO, T.; TAKASHIMA, K: "PKC 2011", 2011, SPRINGER HEIDELBERG, article "Efficient attribute-based signatures for non-monotone predicates in the standard model" |
| ROSARIO GENNARO ET AL.: "Quadratic Span Programs and Succinct NIZKs without PCPs", 18 June 2012 (2012-06-18), XP047028433, Retrieved from the Internet <URL:https://eprint.iacr.org/2012/215> [retrieved on 20130802] * |
| ROSARIO GENNARO; CRAIG GENTRY; BRYAN PAMO; MARIANA RAYKOVA, QUADRATIC SPAN PROGRAMS AND SUCCINCT NIZKS WITHOUT PCPS, Retrieved from the Internet <URL:http://eprint.iacr.org/2012/215 5> |
| See also references of EP2881930A4 |
| TATSUAKI OKAMOTO ET AL.: "Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption", 22 December 2011 (2011-12-22), XP047270461, Retrieved from the Internet <URL:https://eprint.iacr.org/2010/563> [retrieved on 20130802] * |
Also Published As
| Publication number | Publication date |
|---|---|
| US9413531B2 (en) | 2016-08-09 |
| ES2645463T3 (es) | 2017-12-05 |
| KR101606317B1 (ko) | 2016-03-24 |
| JP5814880B2 (ja) | 2015-11-17 |
| CN104620305A (zh) | 2015-05-13 |
| JP2014029415A (ja) | 2014-02-13 |
| EP2881930B1 (en) | 2017-09-27 |
| KR20150015518A (ko) | 2015-02-10 |
| CN104620305B (zh) | 2016-09-28 |
| EP2881930A4 (en) | 2016-04-06 |
| EP2881930A1 (en) | 2015-06-10 |
| US20150098566A1 (en) | 2015-04-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5814880B2 (ja) | 暗号システム、暗号方法、暗号プログラム及び復号装置 | |
| JP6083234B2 (ja) | 暗号処理装置 | |
| JP5424974B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 | |
| JP5618881B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
| EP2947810B1 (en) | Encryption system, re-encryption key generation device, re-encryption device, encryption method and encryption program | |
| JP5951122B2 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
| JP2015031935A (ja) | 情報処理方法及びプログラム | |
| JP5921410B2 (ja) | 暗号システム | |
| WO2013133158A1 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
| EP3057262B1 (en) | Cipher system, encryption device, re-encryption key generation device, re-encryption device, and cipher program | |
| JP5606351B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム | |
| US11909873B2 (en) | Decryption device, cryptographic system, and decryption method | |
| WO2015125293A1 (ja) | 暗号システム及び暗号プログラム | |
| JP6266130B2 (ja) | 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム | |
| JP6885325B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法、プログラム | |
| WO2017203743A1 (ja) | 暗号化装置、復号装置及び暗号システム | |
| Khamitkar | A survey on fully homomorphic encryption | |
| Chandra et al. | STUDY OF RSA ALGORITHM FOR DATA ENCRYPTION AND DECRYPTION |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13824763 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 14395655 Country of ref document: US |
|
| ENP | Entry into the national phase |
Ref document number: 20147036181 Country of ref document: KR Kind code of ref document: A |
|
| REEP | Request for entry into the european phase |
Ref document number: 2013824763 Country of ref document: EP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2013824763 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |























































































