WO2011135895A1 - 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 - Google Patents
暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 Download PDFInfo
- Publication number
- WO2011135895A1 WO2011135895A1 PCT/JP2011/053174 JP2011053174W WO2011135895A1 WO 2011135895 A1 WO2011135895 A1 WO 2011135895A1 JP 2011053174 W JP2011053174 W JP 2011053174W WO 2011135895 A1 WO2011135895 A1 WO 2011135895A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- integer
- vector
- basis
- variable
- identification information
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0847—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
-
- 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/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Definitions
- the present invention relates to a functional encryption (FE) system.
- Non-Patent Documents 3-6, 10, 12, 13, 15, and 18 describe an ID-based encryption (Identity-Based Encryption, IBE) method, which is one class of functional encryption methods.
- Non-Patent Documents 2, 7, 9, 16, 19, 23-26, 28 also describe an attribute-based encryption (Attribute-Based Encryption, ABE) system that is one class of functional encryption systems. .
- An object of the present invention is to provide a secure functional encryption method having a multifunctional encryption function.
- a decryption key generating unit which generates the element k * i for each integer i of L, Basis B * 0 of the basis vector b * 0, p (p is a predetermined value) setting the value -s 0 as a coefficient of, (a predetermined value different from q is the p) basis vector b * 0, q
- N t and ⁇ i v i, i ′ are set as the coefficients of the basis vectors b * t, i ′ indicated by the integers i ′ of n t to generate the element k * i , and the variable ⁇ (i) is negative
- the identification information t and i ′ 1,. . . , Nt
- a decryption key generation unit for generating element k * i by setting s i v i, i ′ as a coefficient of base vector b * t, i ′ indicated by each integer i ′
- An encrypted data generation unit that generates an element c 0 and an element c t for each piece of identification information t included in the attribute set ⁇ based on the attribute set ⁇ input by the second information input unit;
- (p-wherein p) basis vectors b 0, p basal B 0 sets the random number value ⁇ as the coefficients of the basis vectors b 0, q (q is the q) setting the predetermined value ⁇ as the coefficients of the elements c 0
- For each identification information t included in the attribute set ⁇ , x t, i multiplied by the random value ⁇ as a coefficient of the basis vector b t, i ′ (i ′ 1,..., N t ) of the basis
- variable ⁇ (i) is an affirmative pair (t, v ⁇ i ) and is included in ⁇ indicated by v ⁇ i of the pair and identification information t of the pair. I where the inner product of x ⁇ t is 0, the variable ⁇ (i) is a negative combination (t, v ⁇ i ), and v ⁇ i of the set and the identification information of the set.
- the set I with i in which the inner product of x ⁇ t included in ⁇ indicated by t is not 0 is specified, and ⁇ i s i is added to i included in the specified set I, s 0 is obtained.
- the cryptographic processing system realizes functional encryption using a span program and an inner product predicate, and realizes a multifunctional cryptographic function. In addition, it is more secure than the conventional functional encryption method.
- Explanatory drawing of the matrix M ⁇ .
- Explanatory drawing of s- > T. 1 is a configuration diagram of a cryptographic processing system 10 that executes a Key-Policy functional encryption scheme.
- the functional block diagram which shows the function of the cryptographic processing system 10 which performs a Key-Policy functional encryption method.
- the flowchart which shows the process of a Setup algorithm.
- 1 is a configuration diagram of a cryptographic processing system 10 that executes an algorithm of a Ciphertext-Policy functional encryption scheme.
- the functional block diagram which shows the function of the cryptographic processing system 10 which performs a Ciphertext-Policy functional encryption method.
- the flowchart which shows the process of KeyGen algorithm.
- the flowchart which shows the process of an Enc algorithm.
- the flowchart which shows the process of a Dec algorithm. 1 is a configuration diagram of a signature processing system 20.
- FIG. 3 is a functional block diagram showing functions of the signature processing system 20.
- FIG. The flowchart which shows the process of a Setup algorithm.
- the flowchart which shows the process of KeyGen algorithm.
- the flowchart which shows the process of an Enc algorithm.
- the flowchart which shows the process of a Dec algorithm. 2 is a diagram illustrating an example of a hardware configuration of a key generation device 100, an encryption device 200, a decryption device 300, a signature device 400, and a verification device 500.
- 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.
- nt means n t.
- Vt means V t.
- .delta.i, j if is indicated by superscript, this .delta.i, j refers to [delta] i, j.
- ⁇ means that the subscript or superscript is superscripted.
- B0 representing a base
- Bd + 1 is indicated by a subscript, respectively the B0, Bd + 1 represents B 0, B d + 1.
- B * 0 and B * d + 1 representing the base are shown as subscripts
- the B * 0 and B * d + 1 represent B * 0 and B * d + 1 , respectively.
- encryption processing includes key generation processing, encryption processing, and decryption processing
- signature processing includes key generation processing, signature processing, and verification processing.
- Embodiment 1 a concept that serves as a basis for realizing a “functional encryption scheme” described in the following embodiment and one configuration of the functional encryption will be described.
- functional encryption will be briefly described.
- DPVS Dual Pairing Vector Spaces
- Third, the concept for realizing functional encryption will be described.
- “span program”, “inner product of attribute vectors and access structure”, and “secret sharing scheme (secret sharing scheme)” will be described.
- Fourth, a “functional encryption scheme” according to this embodiment will be described.
- a “Key-Policy Functional Encryption (KP-FE) scheme” will be described.
- the functional encryption scheme is an encryption scheme in which the relationship between the encryption key (encryption-key, ek) and the decryption key (decryption-key, dk) is further advanced and made more flexible.
- an attribute x and an attribute v are set for the encryption key and the decryption key, respectively.
- the sentence can be decrypted.
- Various functions such as database access control, mail service, and content distribution exist in the functional encryption system (see Non-Patent Documents 2, 7, 9, 16, 19, 23-26, 28).
- the functional encryption method is an ID-based encryption method.
- an attribute-based encryption method as a functional encryption method more generalized than the ID-based encryption method.
- an attribute set for an encryption key and a decryption key is a set of attributes.
- R (X, V) is established only when the access structure S receives the input.
- the ciphertext encrypted with the encryption key can be decrypted with the decryption key.
- the attribute-based encryption (ABE) scheme is called Key-Policy ABE (KP-ABE).
- KP-ABE Key-Policy ABE
- Ciphertext-Policy ABE Ciphertext-Policy ABE
- the inner product predicate encryption (IPE) described in Non-Patent Document 19 is also a class of functional encryption.
- the attributes set for the encryption key and the decryption key are vectors on the field or ring, respectively.
- x ⁇ : (x 1 , ..., x n) ⁇ F q n
- Symmetric Bilinear Pairing Groups (q, G, G T, g, e) is a prime number q, a cyclic multiplicative group G T cyclic additive group G and order q of order q, and 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 Equation 117.
- Equation 120 The linear transformation ⁇ i, j in the space V shown in Equation 119 can perform Equation 120.
- 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 the matrix M ⁇ . ⁇ P 1 ,. . . , P n ⁇ be a set of variables.
- M ⁇ : (M, ⁇ ) is a labeled matrix.
- the matrix M is a matrix of (L rows ⁇ r columns) on F q . ⁇ is a label attached to each column of the matrix M, and ⁇ p 1 ,. . . , P n , ⁇ p 1 ,. . . , ⁇ p n ⁇ is associated with any one literal.
- a submatrix M ⁇ of the matrix M is defined.
- the matrix M ⁇ is a partial matrix composed of rows of the matrix M in which the value “1” is associated with the label ⁇ by the input column ⁇ .
- the matrix M is a matrix of (6 rows ⁇ 5 columns).
- 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
- a submatrix composed of rows of the matrix M associated with literals (p 1 , p 3 , p 6 , p 7 , ⁇ p 2 , ⁇ p 4 , ⁇ p 5 ) surrounded by broken lines is a matrix M. ⁇ . That is, the submatrix composed of the first row (M 1 ), the second row (M 2 ), and the fourth row (M 4 ) of the matrix M is the matrix M ⁇ .
- (M j ) ⁇ (j) 1 is M 1 , M 2 , M 4 and the matrix M ⁇ . That is, whether or not the jth row of the matrix M is included in the matrix M ⁇ is determined depending on whether the value of the mapping ⁇ (j) is “0” or “1”.
- the span program M ⁇ accepts the input sequence ⁇ only if 1 ⁇ ⁇ span ⁇ M ⁇ >, and rejects the input sequence ⁇ otherwise.
- the span program M ⁇ accepts the input string ⁇ only when 1 ⁇ is obtained by linearly combining the rows of the matrix M ⁇ obtained from the matrix M ⁇ with the input string ⁇ .
- 1 ⁇ is a row vector in which each element has a value “1”.
- the span program M ⁇ will only change the input string ⁇ if 1 ⁇ is obtained by linearly combining the rows of the matrix M ⁇ consisting of the first, second, and fourth rows of the matrix M. Accept.
- a literal ⁇ p 1 ,. . . , P n ⁇ the span program is called monotone.
- the label ⁇ is a literal ⁇ p 1 ,. . . , P n , ⁇ p 1 ,. . . , ⁇ p n ⁇
- the span program is assumed to be non-monotone.
- an access structure non-monotone access structure
- the access structure simply controls access to encryption. That is, it controls whether or not the ciphertext can be decrypted.
- the span program is not monotone but non-monotone, the use range of the functional encryption system configured by using the span program is expanded.
- mapping ⁇ (j) is calculated using the inner product of the attribute vectors.
- the inner product of the attribute vectors is used to determine which row of the matrix M is included in the matrix M ⁇ .
- U t includes identification information (t) of a partial complete set and an nt- dimensional vector (v ⁇ ), respectively. That is, U t is (t, v ⁇ ).
- mapping ⁇ is calculated based on the inner product of the attribute vectors v 1 ⁇ and x 2 ⁇ .
- the secret sharing scheme is to distribute secret information into meaningless shared information.
- the secret information s is dispersed into 10 pieces, and 10 pieces of shared information are generated.
- each of the 10 pieces of shared information does not have the information of the secret information s. Therefore, even if one piece of shared information is obtained, no information about the secret information s can be obtained. On the other hand, if all 10 pieces of shared information are obtained, the secret information s can be restored.
- secret information s can be restored if only a part (e.g., eight) is obtained even if not all 10 pieces of shared information are obtained.
- a case where the secret information s can be restored with 8 of the 10 pieces of shared information in this way is called 8-out-of-10. That is, a case where the secret information s can be restored with t pieces of the n pieces of shared information is called t-out-of-n. This t is called a threshold value.
- D 1 ,. . . , D 10 , d 1 ,. . . , D 8 up to 8 shared information can restore the secret information s, but d 3 ,. . .
- D 10 is also a secret sharing scheme in which the secret information s cannot be restored if it is eight pieces of shared information.
- FIG. 4 is an explanatory diagram of s ⁇ T.
- the matrix M is a matrix of (L rows ⁇ r columns).
- Let f ⁇ T be a column vector shown in Formula 122.
- Let s 0 shown in Equation 123 be shared secret information.
- s ⁇ T shown in Expression 124 is a vector of L pieces of shared information of s 0 .
- the shared information s i is assumed to belong to ⁇ (i).
- the functional encryption scheme according to this embodiment and the following embodiments configures an access structure by applying the inner product predicate and the secret sharing scheme to the span program. Therefore, the access control can be freely designed by designing the matrix M in the span program and the attribute information x and attribute information v (predicate information) in the inner product predicate. That is, the access control can be designed with a very high degree of freedom.
- the design of the matrix M corresponds to a condition design such as a threshold of the secret sharing scheme.
- the attribute-based encryption method described above corresponds to a case where the design of the inner product predicate is limited to a certain condition in the access structure in the functional encryption method according to this embodiment and the following embodiments.
- the access structure in the attribute-based encryption scheme is designed to design the attribute information x and the attribute information v (predicate information) in the inner product predicate compared to the access structure in the functional encryption scheme according to this embodiment and the following embodiments. Since there is no degree of freedom, the degree of freedom in designing access control is low. More specifically, the attribute-based encryption method uses attribute information ⁇ x ⁇ t ⁇ t ⁇ ⁇ 1,. . . , D ⁇ and ⁇ v ⁇ t ⁇ t ⁇ ⁇ 1,. . .
- the inner product predicate encryption method described above corresponds to the case where the design of the matrix M in the span program is limited to a certain condition in the access structure in the functional encryption method according to this embodiment and the following embodiments. That is, the access structure in the inner product predicate encryption system has less degree of freedom in designing the matrix M in the span program than the access structure in the functional encryption system according to this embodiment and the following embodiments. Low degree of freedom in design.
- the inner product predicate encryption scheme is a case where the secret sharing scheme is limited to 1-out-of-1 (or d-out-of-d).
- the access structure in the functional encryption scheme according to this embodiment and the following embodiments constitutes a non-monotone access structure using a non-monotone span program. Therefore, the degree of freedom in designing access control is further increased.
- the non-monotone span program includes a negative literal ( ⁇ p)
- ⁇ p negative literal
- the first company has four departments, A department, B department, C department, and D department.
- the configuration of the Key-Policy functional encryption scheme will be briefly described.
- Key-Policy means that Policy is embedded in the decryption key, that is, an access structure is embedded.
- the Key-Policy functional encryption scheme includes four algorithms: Setup, KeyGen, Enc, and Dec. (Setup)
- the Dec algorithm receives the message m or the identification information ⁇ by inputting the encrypted data c encrypted under ⁇ which is a set of attributes, the decryption key sk S for the access structure S, and the public parameter pk. The algorithm to output.
- FIG. 5 is a configuration diagram of the cryptographic processing system 10 that executes the Key-Policy functional encryption scheme.
- the cryptographic processing system 10 includes a key generation device 100, an encryption device 200, and a decryption device 300.
- the key generating apparatus 100, and the security parameter ⁇ , the format of the attribute ⁇ ⁇ : (d; n 1, ..., n d) and run the Setup algorithm as an input, and the public parameter pk and master key sk Is generated. Then, the key generation device 100 discloses the generated public parameter pk.
- the key generation device 100 executes the KeyGen algorithm with the access structure S as an input, generates the decryption key sk S , and distributes it to the decryption device 300 in a secret manner.
- the encryption device 200 receives the message m, the attribute set ⁇ , and the public parameter pk and executes the Enc algorithm to generate encrypted data c.
- the encryption device 200 transmits the generated encrypted data c to the decryption device 300.
- the decryption device 300 receives the public parameter pk, the decryption key sk S, and the encrypted data c, executes the Dec algorithm, and outputs the message m or the identification information ⁇ .
- FIG. 6 is a functional block diagram showing functions of the cryptographic processing system 10 that executes the Key-Policy functional encryption scheme.
- the cryptographic processing system 10 includes the key generation device 100, the encryption device 200, and the decryption device 300.
- 7 and 8 are flowcharts showing the operation of the key generation device 100.
- FIG. FIG. 7 is a flowchart showing the process of the Setup algorithm
- FIG. 8 is a flowchart showing the process of the KeyGen algorithm.
- FIG. 7 is a flowchart showing the process of the Setup algorithm
- FIG. 8 is a flowchart showing the process of the KeyGen algorithm.
- FIG. 9 is a flowchart showing the operation of the encryption apparatus 200, and is a flowchart showing the processing of the Enc algorithm.
- the key generation device 100 includes a master key generation unit 110, a master key storage unit 120, an information input unit 130 (first information input unit), a decryption key generation unit 140, and a key distribution unit 150.
- the decryption key generation unit 140 includes an f vector generation unit 141, an s vector generation unit 142, a random number generation unit 143, and a key element generation unit 144.
- the master key generation unit 110 executes the following process.
- d is an integer of 1 or more
- t 1,. . .
- the n t for each integer t to d is an integer of 1 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 combines the generated partial base B ⁇ 0 and the partial base B ⁇ t , the security parameter ⁇ (1 ⁇ ) input in (S101), and param ⁇ ⁇ generated in (S101).
- the public parameter pk The public parameter pk.
- 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 generation unit 110 executes the Setup algorithm shown in Formula 131 to generate the public parameter pk and the master key sk.
- the public key pk and the master key sk generated by the master key storage unit 120 are stored in the storage device.
- the public parameter is made public via a network, for example, and is made available for the encryption device 200 and the decryption device 300.
- the matrix M of the access structure S is set according to the conditions of the system to be realized.
- attribute information of the user of the decryption key sk S is set.
- the f vector generation unit 141 randomly generates a vector f ⁇ having r elements by using the processing device as shown in Expression 132.
- the s vector generation unit 142 uses the processing device to generate a vector s based on the (L rows ⁇ r columns) matrix M included in the access structure S input in (S201) and the vector f ⁇ generated in (S202).
- ⁇ T : (s 1 ,..., S L ) T is generated as shown in Equation 133.
- the s vector generation unit 142 generates the value s 0 as shown in the equation 134 based on the vector f ⁇ generated in (S202) by the processing device.
- Equation 136 sets ⁇ s 0 as the coefficient of the basis vector b * 0,1 of the basis B * 0 , sets 0 as the coefficient of the basis vector b * 0,2 , and sets the basis vector b * 0,3. 1 is set, ⁇ 0 is set as the coefficient of the basis vector b * 0,4 , and 0 is set as the coefficient of the basis vector b * 0,5 .
- the equation 137 is expressed as s as a coefficient of the basis vector b * t, 1 of the basis B * t when ⁇ (i) is a positive pair (t, v ⁇ i ).
- i + ⁇ i v i, 1 is set, and the basis vectors b * t, 2,. . . , B * t, nt as the coefficients of ⁇ i v i, 2 ,. . .
- ⁇ i v i, nt and set basis vectors b * t, nt + 1,. . . , B * t, 2nt are set to 0, and the basis vectors b * t, 2nt + 1,. . . , B * t, 3nt coefficients ⁇ i, 1 ,. . . , ⁇ i, nt and set basis vectors b * t, 3nt + 1,. . . , B * t, and 4 nt are set to 0.
- the basis vector b * t, 1 of the basis B * t,. . . , B * t, nt as coefficients of s i v i, 1 ,. . . , S i v i, nt and set basis vectors b * t, nt + 1,. . . , B * t, 2nt are set to 0, and the basis vectors b * t, 2nt + 1,. . . , B * t, 3nt coefficients ⁇ i, 1 ,. . . , ⁇ i, nt and set basis vectors b * t, 3nt + 1,. . . , B * t, and 4 nt are set to 0.
- 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.
- step S206 the key distribution unit 150 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 (second information input unit), an encrypted data generation unit 230, and a data transmission unit 240 (data output unit).
- the encrypted data generation unit 230 includes a random number generation unit 231 and an encryption element generation unit 232.
- 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 random number generator 231 uses a processing device to generate a random number ⁇ , random numbers ⁇ 0 , ⁇ t, 1 ,. . . , ⁇ t, nt , ⁇ are generated as shown in Equation 139.
- the encryption element generation unit 232 generates the element c 0 of the encrypted data c as indicated by the expression 140 by the processing device.
- the encryption element generator 232 the processing unit, for each integer t of contained in gamma (t, x ⁇ t), generates an element c t encrypted data c as shown in Formula 141.
- the encryption element generation unit 232 generates the element cd + 1 of the encrypted data c as indicated by Formula 142 by the processing device.
- the data transmission unit 240 transmits the encrypted data c including the attribute set ⁇ input in (S302) and the c 0 , c t , and c d + 1 generated in (S304) to the network using, for example, a communication device.
- the encrypted data c may be transmitted to the decryption device 300 by other methods.
- step S ⁇ b> 305 the data transmission unit 240 transmits the generated encrypted data c to the decryption device 300.
- the decryption apparatus 300 includes a decryption key acquisition unit 310, a data reception unit 320 (data acquisition unit), a span program calculation unit 330, a complementary coefficient calculation unit 340, a pairing calculation unit 350, and a plaintext information calculation unit 360.
- the data receiving unit 320 receives the encrypted data c transmitted by the encryption device 200 via the network by the communication device.
- the span program calculation unit 330 determines whether or not the access structure S included in the decryption key sk S acquired in (S401) accepts ⁇ included in the encrypted data c received in (S402) by the processing device. judge.
- the method for determining whether or not the access structure S accepts ⁇ is as described in “3. Concept for realizing functional encryption”. If the access structure S accepts ⁇ (accepted in S403), the span program calculation unit 330 advances the process to (S404). On the other hand, when the access structure S rejects ⁇ (rejection in S403), the process is terminated assuming that the encrypted data c cannot be decrypted with the decryption key sk S.
- the complement coefficient calculation unit 340 calculates I which becomes the number 144 and a constant (complement coefficient) ⁇ i ⁇ i ⁇ I by the processing device.
- the cryptographic processing system 10 implements the cryptographic scheme (functional cryptographic scheme) using the access structure S configured using the span program, inner product predicate, and secret sharing. Therefore, the cryptographic processing system 10 realizes an encryption method that can design access control with a very high degree of freedom. In addition, the encryption method realized by the encryption processing system 10 is very secure. As described above, ID-based encryption is one class (the most limited class) of the functional encryption scheme. Even in comparison with existing practical ID-based encryption, the encryption method realized by the encryption processing system 10 is highly secure in a sense.
- the n t + n t + n t + n t may be n t + u t + w t + z t. That is, the first n t a as n t, the second n t and u t, the third n t and w t, the fourth n t may be z t.
- n t , u t , w t , and z t may be different values, and n t is an integer equal to or greater than 1 as described above, and u t , w t , and z t are all the same. It is an integer of 0 or more.
- the Setup algorithm shown in Expression 131 is rewritten as shown in Expression 148. That is, the subscripts of the basis vectors of the basis B ⁇ t and the basis B ⁇ * t are changed.
- the KeyGen algorithm shown in Equation 138 can be rewritten as shown in Equation 149.
- the Enc algorithm shown in Expression 143 can be rewritten as Expression 150. Note that there is no change in the Dec algorithm shown in Formula 147.
- N 0 is not 5, but may be an integer of 2 or more.
- the base B 0 and the base B * 0 are two-dimensional.
- k * 0 : ( ⁇ s 0 , 1) B * 0 in the KeyGen algorithm
- c 0 : ( ⁇ , ⁇ ) B0 in the Enc algorithm.
- k * 0 : ( ⁇ s 0 , 0,1, ⁇ 0 , 0) B * 0 .
- K: g ⁇ T calculated by the Dec algorithm
- d ⁇ be the mapping.
- ⁇ 1 may be limited to be injection.
- FIG. 1 a “Ciphertext-Policy Functional Encryption (CP-FE) scheme” will be described.
- the “Ciphertext-Policy functional encryption method” described in this embodiment is also configured based on the concept described in the first embodiment.
- a basic configuration of “Ciphertext-Policy functional encryption” will be described.
- a basic configuration of the “cryptographic processing system 10” that realizes the “Ciphertext-Policy functional encryption scheme” will be described.
- the “Ciphertext-Policy functional encryption method” and the “encryption processing system 10” according to this embodiment will be described in detail.
- Ciphertext-Policy means that Policy is embedded in a ciphertext, that is, an access structure is embedded.
- the Ciphertext-Policy functional encryption scheme includes four algorithms, Setup, KeyGen, Enc, and Dec, as in the Key-Policy functional encryption scheme.
- the Dec algorithm receives the message m or the identification information ⁇ by inputting the encrypted data c encrypted under the access structure S, the decryption key sk ⁇ for ⁇ which is a set of attributes, and the public parameter pk. This is the output algorithm.
- FIG. 11 is a configuration diagram of the cryptographic processing system 10.
- the cryptographic processing system 10 includes a key generation device 100, an encryption device 200, and a decryption device 300.
- the key generating apparatus 100, and the security parameter ⁇ , the format of the attribute ⁇ ⁇ : (d; n 1, ..., n d) and run the Setup algorithm as an input, and the public parameter pk and master key sk Is generated. Then, the key generation device 100 discloses the generated public parameter pk.
- the key generation device 100 executes the KeyGen algorithm with the attribute set ⁇ as an input, generates a decryption key sk ⁇ , and distributes it to the decryption device 300 in a secret manner.
- the encryption device 200 receives the message m, the access structure S, and the public parameter pk and executes the Enc algorithm to generate encrypted data c.
- the encryption device 200 transmits the generated encrypted data c to the decryption device 300.
- the decryption device 300 receives the public parameter pk, the decryption key sk S, and the encrypted data c, executes the Dec algorithm, and outputs the message m or the identification information ⁇ .
- FIG. 12 is a functional block diagram showing functions of the cryptographic processing system 10 that executes the Ciphertext-Policy functional encryption scheme.
- the cryptographic processing system 10 includes the key generation device 100, the encryption device 200, and the decryption device 300.
- FIG. 13 is a flowchart showing the operation of the key generation device 100, and is a flowchart showing the processing of the KeyGen algorithm.
- FIG. 14 is a flowchart showing the operation of the encryption apparatus 200, and is a flowchart showing the processing of the Enc algorithm.
- the key generation device 100 includes a master key generation unit 110, a master key storage unit 120, an information input unit 130 (first information input unit), a decryption key generation unit 140, and a key distribution unit 150.
- the decryption key generation unit 140 includes a random number generation unit 143 and a key element generation unit 144.
- the Setup algorithm is the same as in the case of the Key-Policy functional encryption scheme, and is as shown in Equation 131.
- attribute set ⁇ for example, attribute information of the user of the decryption key sk ⁇ is set.
- the random number generation unit 143 uses a processing device to generate a random number ⁇ , random numbers ⁇ 0 , ⁇ t, 1 ,. . . , ⁇ t, nt are generated as shown in Formula 152.
- the key element generation unit 144 generates the element k * 0 of the decryption key sk ⁇ as shown in Expression 153 by the processing device.
- the key distribution unit 150 receives the decryption key sk ⁇ having the attribute set ⁇ input in (S501) and the k * 0 and k * t generated in (S503) as elements via a network, for example. And secretly distribute it to the decryption device 300.
- the decryption key sk ⁇ may be distributed to the decryption apparatus 300 by other methods.
- step S503 the information input unit 130 and the decryption key generation unit 140 execute the KeyGen algorithm shown in Formula 155 to generate the decryption key sk ⁇ .
- step S504 the key distribution unit 150 distributes the generated decryption key sk ⁇ to the decryption device 300.
- the encryption device 200 includes a public parameter acquisition unit 210, an information input unit 220 (second information input unit), an encrypted data generation unit 230, and a data transmission unit 240 (data output unit).
- the encrypted data generation unit 230 includes a random number generation unit 231, an encryption element generation unit 232, an f vector generation unit 233, and an s vector generation unit 234.
- the processing of the Enc algorithm will be described based on FIG. (S601: 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 access structure S is set according to the system conditions to be realized.
- decryptable user attribute information is set for ⁇ of the access structure S.
- the information input unit 220 inputs a message m to be transmitted to the decryption device 300 using the input device.
- the f vector generation unit 233 randomly generates a vector f 1 ⁇ having r elements by using the processing device as shown in Expression 156.
- the s vector generation unit 234 uses the processing device to generate a vector s based on the (L rows ⁇ r columns) matrix M included in the access structure S input in (S602) and the vector f ⁇ generated in (S603).
- ⁇ T : (s 1 ,..., S L ) T is generated as shown in Equation 157.
- the s vector generation unit 234 generates the value s 0 as shown in Expression 158 based on the vector f ⁇ generated in (S603) by the processing device.
- the data transmission unit 240 receives the access structure S input in (S602) and the c 0 , c 1 ,. . . , C L , c d + 1 are transmitted to the decryption device 300 via the network by the communication device, for example.
- the encrypted data c may be transmitted to the decryption device 300 by other methods.
- step S ⁇ b> 607 the data transmission unit 240 transmits the generated encrypted data c to the decryption device 300.
- the decryption apparatus 300 includes a decryption key acquisition unit 310, a data reception unit 320 (data acquisition unit), a span program calculation unit 330, a complementary coefficient calculation unit 340, a pairing calculation unit 350, and a plaintext information calculation unit 360.
- the decryption key acquisition unit 310 acquires the decryption key sk ⁇ distributed from the key generation apparatus 100 via the network by the communication apparatus. Further, the decryption key acquisition unit 310 acquires the public parameter pk generated by the key generation device 100.
- the data receiving unit 320 receives the encrypted data c transmitted by the encryption device 200 via the network by the communication device.
- the span program calculation unit 330 determines whether or not the access structure S included in the encrypted data c acquired in (S702) accepts ⁇ included in the decryption key sk ⁇ received in (S701) by the processing device. judge.
- the method for determining whether or not the access structure S accepts ⁇ is as described in “3. Concept for realizing functional encryption”. If the access structure S accepts ⁇ (accepted in S703), the span program calculation unit 330 advances the process to (S704). On the other hand, if the access structure S rejects ⁇ (rejected in S703), the process is terminated because the encrypted data c cannot be decrypted with the decryption key sk S.
- the cryptographic processing system 10 according to the second embodiment realizes a cryptographic scheme capable of designing access control with a very high degree of freedom.
- the cryptographic processing system 10 according to the second embodiment has high security, similar to the cryptographic processing system 10 according to the first embodiment.
- n t , u t , w t , and z t may be different values, and n t is an integer equal to or greater than 1 as described above, and u t , w t , and z t are all the same. It is an integer of 0 or more.
- the Setup algorithm is rewritten as in Formula 148 as in the first embodiment.
- the KeyGen algorithm shown in Expression 155 can be rewritten as shown in Expression 165.
- the Enc algorithm shown in Expression 163 can be rewritten as Expression 166. There is no change in the Dec algorithm shown in Formula 164.
- N 0 is not 5, but may be an integer of 2 or more.
- the base B 0 and the base B * 0 are two-dimensional.
- k * 0 : ( ⁇ , 1) B * 0 in the KeyGen algorithm
- c 0 : ( ⁇ s 0 , ⁇ ) B0 in the Enc algorithm.
- k * 0 : ( ⁇ , 0, 1, ⁇ 0 , 0) B * 0 in the KeyGen algorithm.
- K: g ⁇ T calculated by the Dec algorithm
- ⁇ 1 (i) t ⁇ 1,. . . , L ⁇ ⁇ ⁇ 1,. . .
- d ⁇ be the mapping.
- ⁇ 1 may be limited to be injection.
- the key-policy functional encryption in which the access structure S is given to the decryption key sk S and the attribute set ⁇ is given to the encrypted data c has been described.
- the ciphertext-policy functional encryption in which the access structure S is included in the encrypted data c and the attribute set ⁇ is included in the decryption key sk ⁇ has been described.
- two access structures S 1 and S 2 are prepared, one access structure S 1 is provided as a decryption key, the other access structure S 2 is provided as encrypted data c, and the access structure S 2 is assigned to the access structure S 2 .
- the corresponding attribute set ⁇ 2 may be given to the decryption key, and the attribute set ⁇ 1 corresponding to the access structure S 1 may be given to the encrypted data c.
- the encrypted data c may be decrypted with the decryption key only when the access structure S 1 accepts the attribute set ⁇ 1 and the access structure S 2 accepts the attribute set ⁇ 2 . That is, an encryption scheme combining Key-Policy functional encryption and Ciphertext-Policy functional encryption may be used.
- Embodiment 3 a signature scheme applying the “Ciphertext-Policy functional encryption scheme” described in the second embodiment will be described.
- a basic configuration of “signature scheme based on Ciphertext-Policy functional encryption scheme” will be described.
- a basic configuration of the “signature processing system 20” that realizes the “signature scheme” will be described.
- the “signature method” and “signature processing system 20” according to this embodiment will be described in detail.
- the signature scheme based on the Ciphertext-Policy functional encryption scheme includes four algorithms: Setup, KeyGen, Sig, and Ver. (Setup)
- FIG. 16 is a configuration diagram of the signature processing system 20.
- the signature processing system 20 includes a key generation device 100, a signature device 400, and a verification device 500.
- the key generating apparatus 100, and the security parameter ⁇ , the format of the attribute ⁇ ⁇ : (d; n 1, ..., n d) and run the Setup algorithm as an input, and the public parameter pk and master key sk Is generated. Then, the key generation device 100 discloses the generated public parameter pk.
- the key generation device 100 receives the attribute set ⁇ and executes the KeyGen algorithm to generate a signature key sk ⁇ and distribute it to the signature device 400 in a secret manner.
- the signature device 400 executes the Sig algorithm with the message m, the access structure S, the public parameter pk, and the signature key sk ⁇ as input, and generates a signature vector s ⁇ * .
- the signature device 400 transmits the generated signature vector s ⁇ * , the message m, and the access structure S to the verification device 500.
- the verification apparatus 500 receives the signature vector s ⁇ * , the message m, the access structure S, and the public parameter pk, executes the Ver algorithm, and outputs a value “1” or a value “0”.
- FIG. 17 is a functional block diagram showing functions of the signature processing system 20.
- the signature processing system 20 includes the key generation device 100, the signature device 400, and the verification device 500.
- 18 and 19 are flowcharts illustrating the operation of the key generation apparatus 100.
- FIG. 18 is a flowchart showing the process of the Setup algorithm
- FIG. 19 is a flowchart showing the process of the KeyGen algorithm.
- FIG. 20 is a flowchart showing the operation of the signature device 400, and is a flowchart showing the processing of the Sig algorithm.
- the key generation device 100 includes a master key generation unit 110, a master key storage unit 120, an information input unit 130 (first information input unit), a signature key generation unit 160, and a key distribution unit 150.
- the signature key generation unit 160 includes a random number generation unit 161, a key element generation unit 162, and a secret element generation unit 163.
- Equation 167 Only the part different from Expression 127 shown in (S101) in Embodiment 1 will be described in Expression 167.
- 1 is set to n 0 and n d + 1 in (3), and 2 is set to n d + 2 .
- t 0,. . .
- the master key generation unit 110 executes the Setup algorithm shown in Formula 171 to generate the public parameter pk and the master key sk.
- the public key pk and the master key sk generated by the master key storage unit 120 are stored in the storage device.
- the public parameter is made public via a network, for example, so that the signature device 400 and the verification device 500 can acquire the public parameter.
- attribute set ⁇ for example, attribute information of the user of the signature key sk ⁇ is set.
- the key element generation unit 162 generates the element k * 0 of the signature key sk ⁇ as shown in Expression 173 by the processing device.
- the key element generation unit 162, the processing unit for each integer t of contained in gamma (t, x ⁇ t), it generates an element k * t of the signature key sk gamma as shown in Formula 174. Further, the key element generation unit 162 generates the element k * d + 2 and the element k * d + 3 of the signature key sk ⁇ by the processing device as shown in Expression 175.
- the key distribution unit 150 uses the signature key sk ⁇ including the attribute set ⁇ input in (S901) and the k * 0 , k * t , k * d + 2 , and k * d + 3 generated in (S903).
- the data is secretly distributed to the signature device 400 via a network by a communication device.
- the decryption key sk ⁇ may be distributed to the signature device 400 by other methods.
- step S903 the information input unit 130 and the signature key generation unit 160 execute the KeyGen algorithm expressed by Equation 176 to generate the signature key sk ⁇ .
- step S904 the key distribution unit 150 distributes the generated signature key sk ⁇ to the signature device 400.
- the signature device 400 includes a signature key acquisition unit 410, an information input unit 420 (second information input unit), a complementary coefficient calculation unit 430, a matrix generation unit 440, a signature generation unit 450, and a data transmission unit 460 (data output unit).
- the signature generation unit 450 includes a random number generation unit 451 and a signature element generation unit 452.
- the signature key acquisition unit 410 acquires the public parameter pk generated by the key generation device 100.
- the complement coefficient calculation unit 430 calculates I which becomes Formula 177 and a constant (complement coefficient) ⁇ i ⁇ i ⁇ I by the processing device. Note that M i is the i-th row of the matrix M.
- the matrix generation unit 440 generates a vector ML + 1 to be added to the matrix M and its label ⁇ (L + 1) by the processing device as shown in Formula 178.
- v ⁇ L + 1 : (1).
- the random number generation unit 451 generates a random number ⁇ as shown in Formula 179 by the processing device.
- the signature element generation unit 452 generates s * 0 , which is an element of the signature vector s ⁇ * , as shown in Formula 180 by the processing device.
- the signature element generation unit 452 generates s * L + 2 , which is an element of the signature vector s ⁇ * , by the processing device as shown in Formula 182.
- the data is transmitted to the verification apparatus 500 via the network.
- the signature data sig may be transmitted to the verification apparatus 500 by other methods.
- step S ⁇ b> 1007 the data transmission unit 460 transmits the generated signature data to the verification apparatus 500.
- the verification apparatus 500 includes a public parameter acquisition unit 510, a data reception unit 520 (data acquisition unit), an encrypted data generation unit 530, and a pairing calculation unit 540.
- the encrypted data generation unit 530 includes a random number generation unit 531, an encryption element generation unit 532, an f vector generation unit 533, and an s vector generation unit 534.
- the Ver algorithm process will be described with reference to FIG. (S1101: Public parameter acquisition step)
- the public parameter acquisition unit 510 acquires, for example, the public parameter pk generated by the key generation device 100 via the network by the communication device.
- the data receiving unit 320 receives the signature data sig transmitted from the signature device 400 via the network by the communication device.
- the f vector generation unit 533 randomly generates a vector f 1 ⁇ having r elements by the processing device as shown in Formula 184.
- the s vector generation unit 534 uses the processing device to generate the vector s based on the (L rows ⁇ r columns) matrix M included in the access structure S received in (S1102) and the vector f ⁇ generated in (S1103).
- ⁇ T : (s 1 ,..., S L ) T is generated as shown in Equation 185.
- the s vector generation unit 534 generates the value s 0 and the value s L + 1 as shown in Expression 186 based on the vector f ⁇ generated in (S1103) by the processing device.
- the pairing calculation unit 540 calculates Formula 191 by the processing device.
- the pairing calculation unit 540 outputs a value “1” if the result of calculating the formula 191 is a value “1”, and outputs a value “0” if it is any other value.
- the result of calculating Formula 191 is a value “1”
- Expression 192 if the signature data sig is correct data, the value “1” can be obtained by calculating Expression 191.
- the signature processing system 20 implements the signature scheme using the access structure S configured using the span program, inner product predicate, and secret sharing.
- the element of the signature vector s ⁇ * is generated using the random number ⁇ or the random number r, and the element k of the signature key sk ⁇ , which is information of the generation source of the element of the signature vector s ⁇ * This is because the variable ⁇ and the variable ⁇ are randomized.
- By randomizing the variable ⁇ and the variable ⁇ of the element k of the signature key sk ⁇ it is possible to prevent these variables from being read from s ⁇ * which is an element of the signature data. That is, it is possible to prevent reading of which signature key sk ⁇ the signature data is generated. That is, link ability can be increased.
- the n t + n t + n t + n t may be n t + u t + w t + z t. That is, the first n t a as n t, the second n t and u t, the third n t and w t, the fourth n t may be z t. That may be set N t to n t + u t + w t + z t.
- n t , u t , w t , and z t may be different values, and n t is an integer equal to or greater than 1 as described above, and u t , w t , and z t are all the same. It is an integer of 0 or more.
- the Setup algorithm shown in Expression 171 can be rewritten as shown in Expression 194. That is, the subscripts of the basis vectors of the basis B ⁇ t and the basis B ⁇ * t are changed.
- the KeyGen algorithm shown in Equation 176 can be rewritten as shown in Equation 195.
- the Sig algorithm shown in Expression 183 can be rewritten as shown in Expression 196.
- the Ver algorithm shown in Expression 193 can be rewritten as Expression 197.
- N 0 and N d + 1 are not 4 and may be integers of 1 or more.
- N 0 is 1, the base B 0 and the base B * 0 are one-dimensional.
- c 0 : ( ⁇ s 0 ⁇ s L + 2 ) B0 in the Ver algorithm.
- N d + 2 is not 8 and may be an integer of 2 or more.
- the base B d + 2 and the base B * d + 2 are two-dimensional.
- ⁇ 1 (i) t ⁇ 1,. . . , L ⁇ ⁇ ⁇ 1,. . .
- d ⁇ be the mapping.
- ⁇ ⁇ it may be as a single shot.
- one row of the vector ML + 1 is added as the L + 1 row to the matrix M.
- the number of rows added to the matrix M is not limited as long as it is one or more.
- added M L + 1 : 1 ⁇ .
- the added row is not limited to 1 ⁇ , but may be another vector.
- the setting of the label of the line to be added is not limited to this as long as the process is established.
- the added row and the label of the added row need only be set so that the information of the added row becomes 0 when the pairing computation is performed in the Ver algorithm pairing computation step (S1107).
- the added row and the label of the added row need only be set so that the information of the added row becomes 0 when the pairing computation is performed in the Ver algorithm pairing computation step (S1107).
- the signature algorithm shown in Formula 171 may be changed as shown in Formula 198, and the Sig algorithm shown in Formula 183 may be changed as shown in Formula 199. That is, a secret vector p * t, ⁇ set with a random value in the Setup algorithm is generated, and an element s * i of the signature vector s ⁇ * is generated by using the secret vector p * t, ⁇ in the Sig algorithm. There have been changes.
- the basis B ⁇ * t is included in the master key sk, not the public parameter pk, and is kept secret. This increases the security of the signature process. Even when the Setup algorithm and the Sig algorithm are changed in this way, as shown in Formula 199, if the signature data sig is correct data, the algorithm calculates a pairing operation. “1” is obtained.
- c L + 2 : (s 0 ⁇ L + 2 m, ⁇ L + 2 , 0, 0, 0, 0, ⁇ L + 2, 1 without generating c 0 in the encryption element generation step (S1106). , ⁇ L + 2,2 ).
- c 0 and c L + 2 are connected by a random number s L + 2 and when a pairing operation is performed, s L + 2 is canceled between c 0 and c L + 2 .
- the processing may be simplified without using s L + 2 in advance. In this case, it is not necessary to generate k * 0 in the KeyGen algorithm. Similarly, it is not necessary to generate s * 0 in the Sig algorithm.
- Embodiment 4 FIG.
- i 1,. . .
- ⁇ ⁇ it has been described as may be the injection.
- ⁇ ⁇ may not injective.
- the Setup algorithm, KeyGen algorithm, and Enc algorithm of the Key-Policy functional encryption described in Embodiment 1 may be changed as follows. Here, only the changed part of each algorithm of the Key-Policy functional encryption described in the first embodiment will be described.
- ⁇ is a value represented by Formula 201.
- Equation 202 For the KeyGen algorithm, the method of generating k * i is as shown in Equation 202.
- the Enc algorithm so that the number 203 a method of generating a c t.
- Embodiment 5 FIG.
- the method for realizing the cryptographic process and the signature process in the dual vector space has been described.
- a method for realizing encryption processing and signature processing in a dual module will be described.
- cryptographic processing is realized in a cyclic group with a prime number q.
- the ring R is represented by using the composite number M as shown in Formula 204, the cryptographic processing described in the above embodiment can be applied to modules with the ring R as a coefficient.
- Equations 205 to 208 are obtained.
- the Key-Policy functional encryption described in Embodiment 1 is shown as a method for realizing in a module with a ring R as a coefficient.
- the ring R can be used as a coefficient for the other encryption processing and signature processing described in the above embodiment. Can be realized in modules.
- the Setup algorithm in the above embodiment may be executed once when setting up the cryptographic processing system 10 or the signature processing system 20, and need not be executed every time a decryption key is generated.
- the key generation apparatus 100 executes the Setup algorithm and the KeyGen algorithm.
- different apparatuses may execute the Setup algorithm and the KeyGen algorithm.
- the span program M ⁇ accepts the input string ⁇ only when 1 ⁇ is obtained by linearly combining the rows of the matrix M ⁇ obtained from the matrix M ⁇ with the input string ⁇ . did.
- the span program M ⁇ may accept the input sequence ⁇ only when another vector v ⁇ is obtained instead of 1 ⁇ .
- the cryptographic processing in the above description can also delegate authority.
- Delegation of authority means that a person having a decryption key generates a lower-order decryption key having weaker authority than the decryption key.
- FIG. 22 is a diagram illustrating an example of a hardware configuration of the key generation device 100, the encryption device 200, the decryption device 300, the signature device 400, and the verification device 500.
- the key generation device 100, the encryption device 200, the decryption device 300, the signature device 400, and the verification device 500 include a CPU 911 (Central Processing Unit, a central processing unit, a processing device, an arithmetic unit that executes a program.
- CPU 911 Central Processing Unit
- 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 (network interface).
- 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 ”,“ decryption key acquisition unit 310 ”,“ data reception unit 320 ”,“ span program calculation unit 330 ” ”,“ Complement coefficient calculation unit 340 ”,“ pairing calculation unit 350 ”,“ plaintext information calculation unit 360 ”,“ signature key acquisition unit 410 ”,“ information input unit 420 ”,“ complement coefficient calculation unit 430 ”,“ “Signature generation unit 450”, “Data transmission unit 460”, “Public parameter acquisition unit 510”, “Data reception unit 520”, “Encrypted data generation unit 530”, “Pairing calculation unit 540”, etc.
- the file group 924 includes “public parameter pk”, “master key sk”, “encrypted data c”, “decryption key sk S ”, “decryption key sk ⁇ ”, “access structure S”, “ Information, data, signal values, variable values, and parameters such as attribute set ⁇ , “message m”, and “signature data sig” 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 “to 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)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
Description
鍵生成装置と暗号化装置と復号装置とを備え、t=0,...,d(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムであり、
前記鍵生成装置は、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第1情報入力部と、
r個の要素を有するベクトルf→及びw→と、前記第1情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、値s0:=w→・f→Tと、所定の値θi(i=1,...,L)とに基づき、要素k* 0と、i=1,...,Lの各整数iについての要素k* iとを生成する復号鍵生成部であって、
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として前記値-s0を設定し、基底ベクトルb* 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定して要素k* 0を生成し、
i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底B* tの基底ベクトルb* t,1の係数としてsi+θivi,1を設定するとともに、前記識別情報tとi’=2,...,ntの各整数i’とが示す基底ベクトルb* t,i’の係数としてθivi,i’を設定して要素k* iを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tとi’=1,...,ntの各整数i’とが示す基底ベクトルb* t,i’の係数としてsivi,i’を設定して要素k* iを生成する復号鍵生成部と
を備え、
前記暗号化装置は、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γを入力する第2情報入力部と、
前記第2情報入力部が入力した属性集合Γに基づき、要素c0と、前記属性集合Γに含まれる各識別情報tについてについての要素ctとを生成する暗号化データ生成部であって、
基底B0の基底ベクトルb0,p(pは前記p)の係数として乱数値δを設定するとともに、基底ベクトルb0,q(qは前記q)の係数として所定の値ζを設定した要素c0を生成し、
前記属性集合Γに含まれる各識別情報tについて、基底Btの基底ベクトルbt,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’を設定した要素ctとを生成する暗号化データ生成部と
を備え、
前記復号装置は、
前記暗号化データ生成部が生成した要素c0及び要素ctと、前記属性集合Γとを含む暗号化データcを取得するデータ取得部と、
前記復号鍵生成部が生成した要素k* 0及び要素k* iと、前記変数ρ(i)とを含む復号鍵skSを取得する復号鍵取得部と、
前記データ取得部が取得した暗号化データcに含まれる属性集合Γと、前記復号鍵取得部が取得した復号鍵skSに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αisiを合計した場合にs0となる補完係数αiを計算する補完係数計算部と、
前記暗号化データcに含まれる要素c0,要素ctと、前記復号鍵skSに含まれる要素k* 0,要素k* iとについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αiとに基づき、数1に示すペアリング演算を行い値K=gT ζκを計算するペアリング演算部と
を備えることを特徴とする。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
bi(i=1,...,n)が空間Vのベクトルの要素であるとき、つまり、数110であるとき、数111は、数112によって生成される部分空間を表す。
また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
また、基底を表すB0,Bd+1が下付きで示されている場合、このB0,Bd+1はそれぞれB0,Bd+1を表す。同様に、基底を表すB*0,B*d+1が下付きで示されている場合、このB*0,B*d+1はそれぞれB* 0,B* d+1を表す。
この実施の形態では、後の実施の形態で説明する「関数型暗号(Functional Encryption)方式」を実現する基礎となる概念と、関数型暗号の1つの構成について説明する。
第1に、関数型暗号について簡単に説明する。
第2に、関数型暗号を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)」という豊かな数学的構造を有する空間を説明する。
第3に、関数型暗号を実現するための概念を説明する。ここでは、「スパンプログラム(Span Program)」、「属性ベクトルの内積とアクセスストラクチャ」、「秘密分散方式(秘密共有方式)」について説明する。
第4に、この実施の形態に係る「関数型暗号方式」を説明する。この実施の形態では、「Key-Policy関数型暗号(Key-Policy Functional Encryption,KP-FE)方式」について説明する。そこで、まず、「Key-Policy関数型暗号方式」の基本構成について説明する。次に、この「Key-Policy関数型暗号方式」を実現する「暗号処理システム10」の基本構成について説明する。そして、この実施の形態に係る「Key-Policy関数型暗号方式」及び「暗号処理システム10」について詳細に説明する。
関数型暗号方式は、暗号化鍵(encryption-key,ek)と、復号鍵(decryption-key,dk)との間の関係をより高度化し、より柔軟にした暗号方式である。
関数型暗号方式において、暗号化鍵と復号鍵とは、それぞれ、属性xと属性vとが設定されている。そして、関係Rに対してR(x,v)が成立する場合に限り、復号鍵dkv:=(dk,v)は暗号化鍵ekx:=(ek,x)で暗号化された暗号文を復号することができる。
関数型暗号方式には、データベースのアクセスコントロール、メールサービス、コンテンツ配布等の様々なアプリケーションが存在する(非特許文献2,7,9,16,19,23-26,28参照)。
属性ベース暗号方式では、暗号化鍵と復号鍵とに設定される属性が属性の組である。例えば、暗号化鍵と復号鍵とに設定される属性が、それぞれ、X:=(x1,...,xd)と、V:=(v1,...,vd)とである。
そして、属性のコンポーネントについて、コンポーネント毎の等号関係(例えば、{xt=vt}t∈{1,...,d})がアクセスストラクチャSに入力される。そして、アクセスストラクチャSが入力を受理した場合にのみ、R(X,V)が成立する。つまり、暗号化鍵で暗号化された暗号文を復号鍵で復号することができる。
アクセスストラクチャSが復号鍵dkVに埋め込まれている場合、属性ベース暗号(ABE)方式は、Key-Policy ABE(KP-ABE)と呼ばれる。一方、アクセスストラクチャSが暗号文に埋め込まれている場合、属性ベース暗号(ABE)方式は、Ciphertext-Policy ABE(CP-ABE)と呼ばれる。
まず、対称双線形ペアリング群(Symmetric Bilinear Pairing Groups)について説明する。
対称双線形ペアリング群(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である。
以下の説明において、数115を、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を出力するアルゴリズムとする。
双対ペアリングベクトル空間(q,V,GT,A,e)は、対称双線形ペアリング群(paramG:=(q,G,GT,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,GT,A,e)は、素数q、数116に示すFq上のN次元ベクトル空間V、位数qの巡回群GT、空間Vの標準基底A:=(a1,...,aN)の組であり、以下の演算(1)(2)を有する。ここで、aiは、数117に示す通りである。
空間Vにおけるペアリングは、数118によって定義される。
<第3-1.スパンプログラム>
図1は、行列M^の説明図である。
{p1,...,pn}を変数の集合とする。M^:=(M,ρ)は、ラベル付けされた行列である。ここで、行列Mは、Fq上の(L行×r列)の行列である。また、ρは、行列Mの各列に付されたラベルであり、{p1,...,pn,¬p1,...,¬pn}のいずれか1つのリテラルへ対応付けられる。なお、Mの全ての行に付されたラベルρi(i=1,...,L)がいずれか1つのリテラルへ対応付けられる。つまり、ρ:{1,...,L}→{p1,...,pn,¬p1,...,¬pn}である。
図2は、行列Mδの説明図である。なお、図2では、n=7,L=6,r=5としている。つまり、変数の集合は、{p1,...,p7}であり、行列Mは(6行×5列)の行列である。また、図2において、ラベルρは、ρ1が¬p2に、ρ2がp1に、ρ3がp4に、ρ4が¬p5に、ρ5が¬p3に、ρ6がp5にそれぞれ対応付けられているとする。
ここで、入力列δ∈{0,1}7が、δ1=1,δ2=0,δ3=1,δ4=0,δ5=0,δ6=1,δ7=1であるとする。この場合、破線で囲んだリテラル(p1,p3,p6,p7,¬p2,¬p4,¬p5)に対応付けられている行列Mの行からなる部分行列が行列Mδである。つまり、行列Mの1行目(M1),2行目(M2),4行目(M4)からなる部分行列が行列Mδである。
つまり、図2では、写像γ(j)=1(j=1,2,4)であり、写像γ(j)=0(j=3,5,6)である。したがって、(Mj)γ(j)=1は、M1,M2,M4であり、行列Mδである。
すなわち、写像γ(j)の値が“0”であるか“1”であるかによって、行列Mのj番目の行が行列Mδに含まれるか否かが決定される。
例えば、図2の例であれば、行列Mの1,2,4行目からなる行列Mδの各行を線形結合して1→が得られる場合に限り、スパンプログラムM^は入力列δを受理する。つまり、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する場合には、スパンプログラムM^は入力列δを受理する。
詳しくは後述するが、スパンプログラムがモノトーンではなく、ノンモノトーンであることにより、スパンプログラムを利用して構成する関数型暗号方式の利用範囲が広がる。
ここでは、属性ベクトルの内積を用いて上述した写像γ(j)を計算する。つまり、属性ベクトルの内積を用いて、行列Mのどの行を行列Mδに含めるかを決定する。
つまり、アクセスストラクチャS:=(M,ρ)であり、ρ:{1,...,L}→{(t,v→),(t’,v’→),...,¬(t,v→),¬(t’,v’→),...}である。
アクセスストラクチャSにΓが与えられた場合、スパンプログラムM^:=(M,ρ)に対する写像γ:{1,...,L}→{0,1}は、以下のように定義される。i=1,...,Lの各整数iについて、[ρ(i)=(t,v→ i)]∧[(t,x→ t)∈Γ]∧[v→ i・x→ t=0]、又は、[ρ(i)=¬(t,v→ i)]∧[(t,x→ t)∈Γ]∧[v→ i・x→ t≠0]である場合、γ(j)=1であり、他の場合、γ(j)=0とする。
つまり、属性ベクトルv→とx→との内積に基づき、写像γが計算される。そして、上述したように、写像γにより、行列Mのどの行を行列Mδに含めるかが決定される。すなわち、属性ベクトルv→とx→との内積により、行列Mのどの行を行列Mδに含めるかが決定され、1→∈span<(Mi)γ(i)=1>である場合に限り、アクセスストラクチャS:=(M,ρ)はΓを受理する。
アクセスストラクチャS:=(M,ρ)に対する秘密分散方式について説明する。
なお、秘密分散方式とは、秘密情報を分散させ、意味のない分散情報にすることである。例えば、秘密情報sを10個に分散させ、10個の分散情報を生成する。ここで、10個の分散情報それぞれは、秘密情報sの情報を有していない。したがって、ある1個の分散情報を手に入れても秘密情報sに関して何ら情報を得ることはできない。一方、10個の分散情報を全て手に入れれば、秘密情報sを復元できる。
また、10個の分散情報を全て手に入れなくても、一部だけ(例えば、8個)手に入れれば秘密情報sを復元できる秘密分散方式もある。このように、10個の分散情報のうち8個で秘密情報sを復元できる場合を、8-out-of-10と呼ぶ。つまり、n個の分散情報のうちt個で秘密情報sを復元できる場合を、t-out-of-nと呼ぶ。このtを閾値と呼ぶ。
また、d1,...,d10の10個の分散情報を生成した場合に、d1,...,d8までの8個の分散情報であれば秘密情報sを復元できるが、d3,...,d10までの8個の分散情報であれば秘密情報sを復元できないというような秘密分散方式もある。つまり、手に入れた分散情報の数だけでなく、分散情報の組合せに応じて秘密情報sを復元できるか否かを制御する秘密分散方式もある。
行列Mを(L行×r列)の行列とする。f→Tを数122に示す列ベクトルとする。
これは、図2の例で、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する場合には、スパンプログラムM^は入力列δを受理すると説明したことからも明らかである。つまり、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する場合には、スパンプログラムM^が入力列δを受理するのであれば、α1(M1)+α2(M2)+α4(M4)=1→となるα1,α2,α4が存在する。
そして、数125である。
例えば、上述した属性ベース暗号方式は、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャにおいて、内積述語の設計をある条件に限定した場合に相当する。つまり、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャに比べ、属性ベース暗号方式におけるアクセスストラクチャは、内積述語における属性情報x及び属性情報v(述語情報)を設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、属性ベース暗号方式は、属性情報{x→ t}t∈{1,...,d}と{v→ t}t∈{1,...,d}とを、等号関係に対する2次元ベクトル、例えばx→ t:=(1,xt)とv→ t:=(vt,-1)とに限定した場合に相当する。
また、上述した内積述語暗号方式は、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャにおいて、スパンプログラムにおける行列Mの設計をある条件に限定した場合に相当する。つまり、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャに比べ、内積述語暗号方式におけるアクセスストラクチャは、スパンプログラムにおける行列Mの設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、内積述語暗号方式は、秘密分散方式を1-out-of-1(あるいは、d-out-of-d)に限定した場合である。
具体的には、ノンモノトーンスパンプログラムには、否定形のリテラル(¬p)を含むため、否定形の条件を設定できる。例えば、第1会社には、A部とB部とC部とD部との4つの部署があったとする。ここで、第1会社のB部以外の部署の属するユーザにのみアクセス可能(復号可能)というアクセス制御をしたいとする。この場合に、否定形の条件の設定ができないとすると、「第1会社のA部とC部とD部とのいずれかに属すること」という条件を設定する必要がある。一方、否定形の条件の設定ができるとすると、「第1会社の社員であって、B部以外に属すること」という条件を設定することができる。つまり、否定形の条件が設定できることで、自然な条件設定が可能となる。なお、ここでは部署の数が少ないが、部署の数が多い場合等は非常に有効であることが分かる。
<第4-1.Key-Policy関数型暗号方式の基本構成>
Key-Policy関数型暗号方式の構成を簡単に説明する。なお、Key-Policyとは、復号鍵にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
Key-Policy関数型暗号方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットμ→:=(d;n1,...,nd)とが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skSを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmと、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq nt,1≦t≦d}と、公開パラメータpkとを入力として、暗号化データcを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、属性の集合であるΓの下で暗号化された暗号化データcと、アクセスストラクチャSに対する復号鍵skSと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
上述したKey-Policy関数型暗号方式のアルゴリズムを実行する暗号処理システム10について説明する。
図5は、Key-Policy関数型暗号方式を実行する暗号処理システム10の構成図である。
暗号処理システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットμ→:=(d;n1,...,nd)とを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSを入力としてKeyGenアルゴリズムを実行して、復号鍵skSを生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、メッセージmと、属性の集合Γと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号化データcを生成する。暗号化装置200は、生成した暗号化データcを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skSと、暗号化データcとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
図6から図10に基づき、Key-Policy関数型暗号方式、及び、Key-Policy関数型暗号方式を実行する暗号処理システム10の機能と動作とについて説明する。
図6は、Key-Policy関数型暗号方式を実行する暗号処理システム10の機能を示す機能ブロック図である。暗号処理システム10は、上述したように、鍵生成装置100、暗号化装置200、復号装置300を備える。
図7と図8とは、鍵生成装置100の動作を示すフローチャートである。なお、図7はSetupアルゴリズムの処理を示すフローチャートであり、図8はKeyGenアルゴリズムの処理を示すフローチャートである。図9は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図10は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
なお、以下の説明では、xt,1:=1であるとする。
(S101:正規直交基底生成ステップ)
マスター鍵生成部110は、処理装置により、数127を計算して、paramμ→と、t=0,...,dの各整数tについて基底Bt及び基底B* tとを生成する。
(1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)と、属性のフォーマットμ→:=(d;n1,...,nd)とを入力する。ここで、dは1以上の整数であり、t=1,...,dまでの各整数tについてntは1以上の整数である。
(2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)を入力としてアルゴリズムGbpgを実行して、双線形ペアリング群のパラメータparamG:=(q,G,GT,g,e)の値を生成する。
(3)マスター鍵生成部110は、処理装置により、乱数ψを生成するとともに、N0に5を、t=1,...,dの各整数tについてNtに4ntを設定する。
(4)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)と、(3)で設定したNtと、(2)で生成したparamG:=(q,G,GT,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,VT,GT,A,e)の値を生成する。
(5)マスター鍵生成部110は、処理装置により、(3)で設定した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である。
(6)マスター鍵生成部110は、処理装置により、乱数ψと線形変換Xtとに基づき、(ν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である。
(7)マスター鍵生成部110は、処理装置により、(5)で生成した線形変換Xtに基づき、(4)で生成した標準基底Atから基底Btを生成する。
(8)マスター鍵生成部110は、処理装置により、(6)で生成した(νt,i,j)i,jに基づき、(4)で生成した標準基底Atから基底B* tを生成する。
(9)マスター鍵生成部110は、処理装置により、gTにe(g,g)ψを設定する。また、マスター鍵生成部110は、paramμ→に(4)で生成した{paramVt}t=0,...,dと、gTとを設定する。なお、t=0,...,dとi=1,...,Ntとの各整数t,iについて、gT=e(bt,i,b* t,i)である。
マスター鍵生成部110は、処理装置により、(S101)で生成した基底Btの部分基底B^0と、t=1,...,dの各整数tについて、部分基底B^tとを数129に示すように生成する。
マスター鍵生成部110は、処理装置により、(S101)で生成した基底B* tの部分基底B^* 0と、t=1,...,dの各整数tについて、部分基底B^* tとを数130に示すように生成する。
マスター鍵記憶部120は、(S102)でt=0,...,dの各整数tについて生成した部分基底B^* tを含む公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S103)でt=0,...,dの各整数tについて生成した部分基底B^* tを含むマスター鍵skを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、上述したアクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号鍵skSの使用者の属性情報が設定されている。
sベクトル生成部142は、処理装置により、(S201)で入力したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S202)で生成したベクトルf→とに基づき、ベクトルs→T:=(s1,...,sL)Tを数133に示すように生成する。
鍵要素生成部144は、処理装置により、復号鍵skSの要素k* 0を数136に示すように生成する。
また、鍵要素生成部144は、処理装置により、i=1,...,Lの各整数iについて、復号鍵skSの要素k* iを数137に示すように生成する。
一方、ρ(i)が否定形の組¬(t,v→ i)である場合には、基底B* tの基底ベクトルb* t,1,...,b* t,ntの係数としてsivi,1,...,sivi,ntを設定し、基底ベクトルb* t,nt+1,...,b* t,2ntの係数として0を設定し、基底ベクトルb* t,2nt+1,...,b* t,3ntの係数としてηi,1,...,ηi,ntを設定し、基底ベクトルb* t,3nt+1,...,b* t,4ntの係数として0を設定することを意味する。
鍵配布部150は、(S201)で入力したアクセスストラクチャSと、(S205)で生成されたk* 0,k* 1,...,k* Lとを要素とする復号鍵skSを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skSは、他の方法により復号装置300へ配布されてもよい。
(S301:公開パラメータ取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性の集合Γ:={(t,x→ t:=(xt,1,...,xt,nt∈Fqnt))|1≦t≦d}を入力する。なお、tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。また、属性の集合Γは、例えば、復号可能なユーザの属性情報が設定されている。
暗号要素生成部232は、処理装置により、暗号化データcの要素c0を数140に示すように生成する。
データ送信部240は、(S302)で入力した属性の集合Γと、(S304)で生成されたc0,ct,cd+1とを要素とする暗号化データcを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号化データcは、他の方法により復号装置300へ送信されてもよい。
(S401:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵skS:=(S,k* 0,k* 1,...,k* L)を取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号化データcを受信する。
スパンプログラム計算部330は、処理装置により、(S401)で取得した復号鍵skSに含まれるアクセスストラクチャSが、(S402)で受信した暗号化データcに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「第3.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号化データcを復号鍵skSで復号できないとして処理を終了する。
ペアリング演算部350は、処理装置により、数145を計算して、セッション鍵K=gT ζを生成する。
平文情報計算部360は、処理装置により、m’=cd+1/Kを計算して、メッセージm’(=m)を生成する。なお、cd+1は数142に示す通りgT ζmであり、KはgT ζであるから、m’=cd+1/Kを計算すればメッセージmが得られる。
また、暗号処理システム10が実現する暗号方式は、非常に安全性が高い。上述したように、関数型暗号方式の1つのクラス(最も限定したクラス)にIDベース暗号がある。既存の実用的なIDベース暗号と比較しても、暗号処理システム10が実現する暗号方式はある意味において安全性が高い。
しかし、nt+nt+nt+ntをnt+ut+wt+ztにしてもよい。つまり、1つ目のntをそのままntとし、2つ目のntをutとし、3つ目のntをwtとし、4つ目のntをztとしてもよい。すなわち、Ntをnt+ut+wt+ztに設定してもよい。ここで、nt,ut,wt,ztは、それぞれ異なる値であってもよく、ntは上述したように1以上の整数であり、ut,wt,ztはいずれも0以上の整数である。
この場合、数131に示すSetupアルゴリズムは、数148のように書き換えられる。つまり、基底B^tと基底B^* tの基底ベクトルの添え字が変更される。
言い替えると、ρ(i)=(t,v→)又はρ(i)=¬(t,v→)である場合に、関数ρ~を、ρ~(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρ~が単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
この実施の形態では、「Ciphertext-Policy関数型暗号(Ciphertext-Policy Functional Encryption,CP-FE)方式」について説明する。なお、この実施の形態で説明する「Ciphertext-Policy関数型暗号方式」も、実施の形態1で説明した概念に基づき構成される。
この実施の形態では、まず、「Ciphertext-Policy関数型暗号方式」の基本構成について説明する。次に、この「Ciphertext-Policy関数型暗号方式」を実現する「暗号処理システム10」の基本構成について説明する。そして、この実施の形態に係る「Ciphertext-Policy関数型暗号方式」及び「暗号処理システム10」について詳細に説明する。
Ciphertext-Policy関数型暗号方式の構成を簡単に説明する。なお、Ciphertext-Policyとは、暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
Ciphertext-Policy関数型暗号方式は、Key-Policy関数型暗号方式と同様に、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットμ→:=(d;n1,...,nd)とが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq nt,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skΓを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmと、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkとを入力として、暗号化データcを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、アクセスストラクチャSの下で暗号化された暗号化データcと、属性の集合であるΓに対する復号鍵skΓと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
上述したCiphertext-Policy関数型暗号方式のアルゴリズムを実行する暗号処理システム10について説明する。
図11は、暗号処理システム10の構成図である。
暗号処理システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットμ→:=(d;n1,...,nd)とを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合Γを入力としてKeyGenアルゴリズムを実行して、復号鍵skΓを生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、メッセージmと、アクセスストラクチャSと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号化データcを生成する。暗号化装置200は、生成した暗号化データcを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skSと、暗号化データcとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
図12から図15に基づき、Ciphertext-Policy関数型暗号方式、及び、Ciphertext-Policy関数型暗号方式を実行する暗号処理システム10の機能と動作とについて説明する。
図12は、Ciphertext-Policy関数型暗号方式を実行する暗号処理システム10の機能を示す機能ブロック図である。暗号処理システム10は、上述したように、鍵生成装置100、暗号化装置200、復号装置300を備える。
図13は、鍵生成装置100の動作を示すフローチャートであり、KeyGenアルゴリズムの処理を示すフローチャートである。なお、Setupアルゴリズムは、Key-Policy関数型暗号方式の場合と同様であるため、ここのでは説明を省略する。図14は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図15は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
なお、以下の説明では、xt,1:=1であるとする。
(S501:情報入力ステップ)
情報入力部130は、入力装置により、属性の集合Γ:={(t,x→ t:=(xt,1,...,xt,nt∈Fq nt))|1≦t≦d}を入力する。なお、属性の集合Γは、例えば、復号鍵skΓの使用者の属性情報が設定されている。
鍵要素生成部144は、処理装置により、復号鍵skΓの要素k* 0を数153に示すように生成する。
鍵配布部150は、(S501)で入力した属性の集合Γと、(S503)で生成されたk* 0,k* tとを要素とする復号鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skΓは、他の方法により復号装置300へ配布されてもよい。
(S601:公開パラメータ取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部220は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号可能なユーザの属性情報が設定されている。
また、情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。
sベクトル生成部234は、処理装置により、(S602)で入力したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S603)で生成したベクトルf→とに基づき、ベクトルs→T:=(s1,...,sL)Tを数157に示すように生成する。
暗号要素生成部232は、処理装置により、暗号化データcの要素c0を数160に示すように生成する。
データ送信部240は、(S602)で入力したアクセスストラクチャSと、(S606)で生成されたc0,c1,...,cL,cd+1とを要素とする暗号化データcを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号化データcは、他の方法により復号装置300へ送信されてもよい。
(S701:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵skΓを取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号化データcを受信する。
スパンプログラム計算部330は、処理装置により、(S702)で取得した暗号化データcに含まれるアクセスストラクチャSが、(S701)で受信した復号鍵skΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「第3.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S703で受理)、処理を(S704)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S703で拒絶)、暗号化データcを復号鍵skSで復号できないとして処理を終了する。
この場合、Setupアルゴリズムは、実施の形態1と同様に数148のように書き換えられる。
また、数155に示すKeyGenアルゴリズムは、数165のように書き換えられる。
言い替えると、関数ρ~を、ρ(i)=(t,v→)又はρ(i)=¬(t,v→)である場合にρ~(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρ~が単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
しかし、2つのアクセスストラクチャS1とS2とを用意し、一方のアクセスストラクチャS1を復号鍵に持たせ、他方のアクセスストラクチャS2を暗号化データcに持たせるとともに、アクセスストラクチャS2に対応する属性集合Γ2を復号鍵に持たせ、アクセスストラクチャS1に対応する属性集合Γ1を暗号化データcに持たせてもよい。そして、アクセスストラクチャS1が属性集合Γ1を受理し、かつ、アクセスストラクチャS2が属性集合Γ2を受理した場合にのみ、暗号化データcを復号鍵で復号可能としてもよい。
つまり、Key-Policy関数型暗号とCiphertext-Policy関数型暗号とを組み合わせた暗号方式としてもよい。
この実施の形態では、実施の形態2で説明した「Ciphertext-Policy関数型暗号方式」を応用した署名方式について説明する。
この実施の形態では、まず、「Ciphertext-Policy関数型暗号方式に基づく署名方式」の基本構成について説明する。次に、この「署名方式」を実現する「署名処理システム20」の基本構成について説明する。そして、この実施の形態に係る「署名方式」及び「署名処理システム20」について詳細に説明する。
Ciphertext-Policy関数型暗号方式に基づく署名方式は、Setup、KeyGen、Sig、Verの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットμ→:=(d;n1,...,nd)とが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x→ t)|x→ t∈Fq nt,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、署名鍵skΓを出力する確率的アルゴリズムである。
(Sig)
Sigアルゴリズムは、メッセージmと、署名鍵skΓと、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkとを入力として、署名データsigを出力する確率的アルゴリズムである。
(Ver)
Verアルゴリズムは、メッセージmと、アクセスストラクチャS:=(M,ρ)と、署名データsigと、公開パラメータpkとを入力として、署名の検証に成功したことを示す値“1”、又は、署名の検証に失敗したことを示す値“0”を出力するアルゴリズムである。
上述した署名処理のアルゴリズムを実行する署名処理システム20について説明する。
図16は、署名処理システム20の構成図である。
署名処理システム20は、鍵生成装置100、署名装置400、検証装置500を備える。
鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットμ→:=(d;n1,...,nd)とを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合Γを入力としてKeyGenアルゴリズムを実行して、署名鍵skΓを生成して署名装置400へ秘密裡に配布する。
署名装置400は、メッセージmと、アクセスストラクチャSと、公開パラメータpkと、署名鍵skΓとを入力としてSigアルゴリズムを実行して、署名ベクトルs→*を生成する。署名装置400は、生成した署名ベクトルs→*と、メッセージmと、アクセスストラクチャSとを検証装置500へ送信する。
検証装置500は、署名ベクトルs→*と、メッセージmと、アクセスストラクチャSと、公開パラメータpkとを入力としてVerアルゴリズムを実行して、値“1”、又は、値“0”を出力する。
図17から図21に基づき、署名方式、及び、署名処理システム20の機能と動作とについて説明する。
図17は、署名処理システム20の機能を示す機能ブロック図である。署名処理システム20は、上述したように、鍵生成装置100、署名装置400、検証装置500を備える。
図18と図19とは、鍵生成装置100の動作を示すフローチャートである。図18はSetupアルゴリズムの処理を示すフローチャートであり、図19はKeyGenアルゴリズムの処理を示すフローチャートである。図20は、署名装置400の動作を示すフローチャートであり、Sigアルゴリズムの処理を示すフローチャートである。図21は、検証装置500の動作を示すフローチャートであり、Verアルゴリズムの処理を示すフローチャートである。
なお、以下の説明では、xt,1:=1であるとする。
(S801:正規直交基底生成ステップ)
マスター鍵生成部110は、処理装置により、数167を計算して、paramμ→と、t=0,...,d+2の各整数tについて基底Bt及び基底B* tとを生成する。
マスター鍵生成部110は、t=0,...,d+2の各整数tについての部分基底B^tと、t=1,...,d+2の各整数tについての部分基底B^* 0と、基底ベクトルb* 0,3と、(S101)で入力されたセキュリティパラメータλ(1λ)と、(S101)で生成したparamμ→とを合わせて、公開パラメータpkとする。
また、マスター鍵生成部110は、基底ベクトルb* 0,1をマスター鍵skとする。
そして、マスター鍵記憶部120は、公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、署名装置400や検証装置500が取得可能な状態にされる。
(S901:情報入力ステップ)
情報入力部130は、入力装置により、属性の集合Γ:={(t,x→ t:=(xt,1,...,xt,nt∈Fq nt))|1≦t≦d}を入力する。なお、属性の集合Γは、例えば、署名鍵skΓの使用者の属性情報が設定されている。
乱数生成部161は、処理装置により、t=1,...,d、ι=1,...,ntの各整数tとιとについて、乱数δ、乱数φ0,φt,ι,φd+2,ι,φd+3,ιを数172に示すように生成する。
鍵要素生成部162は、処理装置により、署名鍵skΓの要素k* 0を数173に示すように生成する。
鍵配布部150は、(S901)で入力した属性の集合Γと、(S903)で生成されたk* 0,k* t,k* d+2,k* d+3とを要素とする署名鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に署名装置400へ配布する。もちろん、復号鍵skΓは、他の方法により署名装置400へ配布されてもよい。
(S1001:署名鍵取得ステップ)
署名鍵取得部410は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された署名鍵skΓ:=(Γ,k* 0,k* t,k* d+2,k* d+3)を取得する。また、署名鍵取得部410は、鍵生成装置100が生成した公開パラメータpkを取得する。
情報入力部420は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、ここで入力されるアクセスストラクチャSは、(S1001)で入力した署名鍵skΓに含まれる属性の集合Γを受理するものとする。
また、情報入力部220は、入力装置により、署名を付すメッセージmを入力する。
行列生成部440は、処理装置により、行列Mに追加するベクトルML+1とそのラベルρ(L+1)とを数178に示すように生成する。
署名要素生成部452は、処理装置により、署名ベクトルs→*の要素であるs* 0を数180に示すように生成する。
データ送信部460は、(S1002)で入力したメッセージmと、アクセスストラクチャS:=(M,ρ)と、(S1007)で生成されたs*→とを含む署名データsigを、例えば通信装置によりネットワークを介して検証装置500へ送信する。もちろん、署名データsigは、他の方法により検証装置500へ送信されてもよい。
(S1101:公開パラメータ取得ステップ)
公開パラメータ取得部510は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
データ受信部320は、例えば、通信装置によりネットワークを介して、署名装置400が送信した署名データsigを受信する。
sベクトル生成部534は、処理装置により、(S1102)で受信したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S1103)で生成したベクトルf→とに基づき、ベクトルs→T:=(s1,...,sL)Tを数185に示すように生成する。
乱数生成部531は、処理装置により、i=1,...,L+2の各整数iについて、乱数η0,ηL+2、1,ηL+2、2,θi,sL+2を数187に示すように生成する。
暗号要素生成部532は、処理装置により、暗号化データcの要素c0を数188に示すように生成する。
ペアリング演算部540は、処理装置により、数191を計算する。
ペアリング演算部540は、数191を計算した結果が値“1”であれば、値“1”を出力し、その他の値であれば値“0”を出力する。ここで、数191を計算した結果が値“1”であれば、署名が検証できたことを示し、その他の値であれば署名が検証できなかったことを示す。
なお、数192に示すように、署名データsigが正しいデータであれば、数191を計算することにより値“1”が得られる。
しかし、nt+nt+nt+ntをnt+ut+wt+ztにしてもよい。つまり、1つ目のntをそのままntとし、2つ目のntをutとし、3つ目のntをwtとし、4つ目のntをztとしてもよい。すなわち、Ntをnt+ut+wt+ztに設定してもよい。ここで、nt,ut,wt,ztは、それぞれ異なる値であってもよく、ntは上述したように1以上の整数であり、ut,wt,ztはいずれも0以上の整数である。
この場合、数171に示すSetupアルゴリズムは、数194のように書き換えられる。つまり、基底B^tと基底B^* tの基底ベクトルの添え字が変更される。
また、Nd+2は8ではなく、2以上の整数であればよい。Nd+2が2であると、基底Bd+2と基底B* d+2とが2次元になる。この場合、KeyGenアルゴリズムにおいて、k* d+2:=(δj(1,0))B*d+2、k* d+3:=(δj(0,1))B*d+2とし、Verアルゴリズムにおいて、c0:=(sL+2-θL+2m,θL+2)Bd+2とすればよい。
言い替えると、関数ρ~を、ρ(i)=(t,v→)又はρ(i)=¬(t,v→)である場合にρ~(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρ~が単射であるとしてもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
また、上記説明では、追加したL+1行目のラベルρ(L+1):=¬(d+1,v→ L+1:=(1))とした。しかし、追加する行のラベルの設定は、処理が成立するようになっていればよく、これに限るものではない。
つまり、追加する行や、追加する行のラベルは、Verアルゴリズムのペアリング演算ステップ(S1107)でペアリング演算をした場合に、追加した行の情報が0になるように設定されていればよい。
なお、追加した行が2行以上である場合には、追加した行数に応じて、SigアルゴリズムやVerアルゴリズムにおける処理の繰り返し回数を変更する必要がある。
なお、このようにSetupアルゴリズムと、Sigアルゴリズムとを変更した場合であっても、数199に示すように、署名データsigが正しいデータであれば、アルゴリズムにおいて、ペアリング演算を計算することにより値“1”が得られる。
つまり、上記説明では、c0とcL+2とを乱数sL+2で結びつけ、ペアリング演算を行った場合にc0とcL+2との間でsL+2が打ち消されるようにしていた。しかし、予めsL+2を用いず、処理を簡略化してもよい。
この場合、KeyGenアルゴリズムにおいてk* 0を生成する必要はない。同様に、Sigアルゴリズムにおいて、s* 0を生成する必要はない。
実施の形態1では、安全性の証明の観点から、i=1,...,Lの各整数iについてのρ(i)は、それぞれ異なる識別情報tについての肯定形の組(t,v→)又は否定形の組¬(t,v→)であるとしてもよいと説明した。つまり、ρ~が単射であるとしてもよいと説明した。しかし、ρ~が単射でなくてもよい。
この場合、安全性の証明の観点から、実施の形態1で説明したKey-Policy関数型暗号のSetupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムを以下のように変更してもよい。ここでは、実施の形態1で説明したKey-Policy関数型暗号の各アルゴリズムについての変更部分のみを説明する。
以上の実施の形態では、双対ベクトル空間において暗号処理及び署名処理を実現する方法について説明した。この実施の形態では、双対加群において暗号処理及び署名処理を実現する方法について説明する。
この場合、KeyGenアルゴリズムにおいてs0:=1→・f→Tではなく、s0:=v→・f→Tとすればよい。同様に、Sigアルゴリズムにおいてαiを計算する際、Σi∈IαiMi=v→となるαiを計算すればよい。
例えば、第1階層目(最上位)においては、t=1の基底Btと基底B* tとを用い、第2階層目においては、t=1,2の基底Btと基底B* tとを用い、・・・、第k階層目においては、t-1,...,kの基底Btと基底B* tとを用いる。用いる基底Btと基底B* tとが増える分、属性情報が多く設定されることになる。したがって、より復号鍵の権限が限定されることになる。
図22は、鍵生成装置100、暗号化装置200、復号装置300、署名装置400、検証装置500のハードウェア構成の一例を示す図である。
図22に示すように、鍵生成装置100、暗号化装置200、復号装置300、署名装置400、検証装置500は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ファイル群924には、上記の説明において「公開パラメータpk」、「マスター鍵sk」、「暗号化データc」、「復号鍵skS」、「復号鍵skΓ」、「アクセスストラクチャS」、「属性の集合Γ」、「メッセージm」、「署名データsig」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明において「~部」として説明するものは、「~回路」、「~装置」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。また、「~装置」として説明するものは、「~回路」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。さらに、「~処理」として説明するものは「~ステップ」であっても構わない。すなわち、「~部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「~部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「~部」の手順や方法をコンピュータ等に実行させるものである。
Claims (15)
- 鍵生成装置と暗号化装置と復号装置とを備え、t=0,...,d(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムであり、
前記鍵生成装置は、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第1情報入力部と、
r個の要素を有するベクトルf→及びw→と、前記第1情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、値s0:=w→・f→Tと、所定の値θi(i=1,...,L)とに基づき、要素k* 0と、i=1,...,Lの各整数iについての要素k* iとを生成する復号鍵生成部であって、
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として前記値-s0を設定し、基底ベクトルb* 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定して要素k* 0を生成し、
i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底B* tの基底ベクトルb* t,1の係数としてsi+θivi,1を設定するとともに、前記識別情報tとi’=2,...,ntの各整数i’とが示す基底ベクトルb* t,i’の係数としてθivi,i’を設定して要素k* iを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tとi’=1,...,ntの各整数i’とが示す基底ベクトルb* t,i’の係数としてsivi,i’を設定して要素k* iを生成する復号鍵生成部と
を備え、
前記暗号化装置は、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γを入力する第2情報入力部と、
前記第2情報入力部が入力した属性集合Γに基づき、要素c0と、前記属性集合Γに含まれる各識別情報tについてについての要素ctとを生成する暗号化データ生成部であって、
基底B0の基底ベクトルb0,p(pは前記p)の係数として乱数値δを設定するとともに、基底ベクトルb0,q(qは前記q)の係数として所定の値ζを設定した要素c0を生成し、
前記属性集合Γに含まれる各識別情報tについて、基底Btの基底ベクトルbt,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’を設定した要素ctとを生成する暗号化データ生成部と
を備え、
前記復号装置は、
前記暗号化データ生成部が生成した要素c0及び要素ctと、前記属性集合Γとを含む暗号化データcを取得するデータ取得部と、
前記復号鍵生成部が生成した要素k* 0及び要素k* iと、前記変数ρ(i)とを含む復号鍵skSを取得する復号鍵取得部と、
前記データ取得部が取得した暗号化データcに含まれる属性集合Γと、前記復号鍵取得部が取得した復号鍵skSに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0となるiと、変数ρ(i
)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αisiを合計した場合にs0となる補完係数αiを計算する補完係数計算部と、
前記暗号化データcに含まれる要素c0,要素ctと、前記復号鍵skSに含まれる要素k* 0,要素k* iとについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αiとに基づき、数1に示すペアリング演算を行い値K=gT ζκを計算するペアリング演算部と
を備えることを特徴とする暗号処理システム。
- 前記暗号処理システムは、少なくとも基底ベクトルb0,i(i=1,...,5)を有する基底B0と、少なくとも基底ベクトルbt,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)(ut,wt,ztは1以上の整数、)を有する基底Bt(t=1,...,d)と、少なくとも基底ベクトルb* 0,i(i=1,...,5)を有する基底B* 0と、少なくとも基底ベクトルb* t,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)を有する基底B* t(t=1,...,d)とを用いて暗号処理を実行し、
前記鍵生成装置の前記復号鍵生成部は、乱数値η0と所定の値κとに基づき数2に示す要素k* 0を生成するとともに、変数ρ(i)が肯定形の組(t,v→ i)である場合には、乱数値θi,ηi,i’(i=1,...,L,i’=1,...,wt)とに基づき数3に示す要素k* iを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、乱数値ηi,i’(i=1,...,L,i’=1,...,wt)とに基づき数4に示す要素k* iを生成し、
前記暗号化装置の前記暗号化データ生成部は、乱数値δ,φ0と所定の値ζとに基づき数5に示す要素c0を生成するとともに、前記乱数値δ,φt,i(i=1,...,zt)に基づき数6に示す要素ctとを生成する
ことを特徴とする請求項1に記載の暗号処理システム。
- t=0,...,d(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムにおいて、復号鍵skSを生成する鍵生成装置であり、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第1情報入力部と、
r個の要素を有するベクトルf→及びw→と、前記第1情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、値s0:=w→・f→Tと、所定の値θi(i=1,...,L)とに基づき、要素k* 0と、i=1,...,Lの各整数iについての要素k* iとを生成する復号鍵生成部であって、
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として前記値-s0を設定し、基底ベクトルb* 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定して要素k* 0を生成し、
i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底B* tの基底ベクトルb* t,1の係数としてsi+θivi,1を設定するとともに、前記識別情報tとi’=2,...,ntの各整数i’とが示す基底ベクトルb* t,i’の係数としてθivi,i’を設定して要素k* iを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tとi’=1,...,ntの各整数i’とが示す基底ベクトルb* t,i’の係数としてsivi,i’を設定して要素k* iを生成する復号鍵生成部と、
前記第1情報入力部が入力した変数ρ(i)と、前記復号鍵生成部が生成した要素k* 0及び要素k* iとを含むデータを復号鍵skSとして配布する鍵配布部と
を備えることを特徴とする鍵生成装置。 - t=0,...,d(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データcを生成する暗号化装置であり、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γを入力する第2情報入力部と、
前記第2情報入力部が入力した属性集合Γに基づき、要素c0と、前記属性集合Γに含まれる各識別情報tについての要素ctとを生成する暗号化データ生成部であって、
基底B0の基底ベクトルb0,p(pは所定の値)の係数として乱数値δを設定するとともに、基底ベクトルb0,q(qは前記pとは異なる所定の値)の係数として所定の値ζを設定した要素c0を生成し、
前記属性集合Γに含まれる各識別情報tについて、基底Btの基底ベクトルbt,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’を設定した要素ctとを生成する暗号化データ生成部と、
前記第2情報入力部が入力した属性集合Γと、前記暗号化データ生成部が生成した要素c0及び要素ctとを暗号化データcとして出力するデータ出力部と
を備えることを特徴とする暗号化装置。 - t=0,...,d(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データcを復号鍵skSで復号する復号装置であり、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γに基づき生成された要素c0と、要素ct(前記属性集合Γに含まれる各整数)とであって、
基底B0の基底ベクトルb0,p(pは所定の値)の係数として乱数値δが設定されるとともに、基底ベクトルb0,q(qは前記pとは異なる所定の値)の係数として所定の値ζが設定された要素c0と、
前記属性集合Γに含まれる各識別情報tについて、基底Btの基底ベクトルbt,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’が設定された要素ctと
を前記属性集合Γとともに、暗号化データcとして取得するデータ取得部と、
r個(rは1以上の整数)の要素を有するベクトルf→及びw→とL行r列の所定の行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→T及び値s0:=w→・f→Tと、所定の値θi(i=1,...,L)と、i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)及び属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)の肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)とに基づき生成された要素k* 0と、要素k* i(i=1,...,Lの各整数)とであって、
基底B* 0の基底ベクトルb* 0,p(pは前記p)の係数として前記値-s0が設定され、基底ベクトルb* 0,q(qは前記q)の係数として所定の値κが設定された要素k* 0と、
i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底B* tの基底ベクトルb* t,1の係数としてsi+θivi,1が設定されるとともに、前記識別情報tとi’=2,...,ntの各整数i’とが示す基底ベクトルb* t,i’の係数としてθivi,i’が設定された要素k* iであって、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tとi’=1,...,ntの各整数i’とが示す基底ベクトルb* t,i’の係数としてsivi,i’が設定された要素k* iと
を前記変数ρ(i)とともに、復号鍵skSとして取得する復号鍵取得部と、
前記データ取得部が取得した暗号化データcに含まれる属性集合Γと、前記復号鍵取得部が取得した復号鍵skSに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報t
が示すΓに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αisiを合計した場合にs0となる補完係数αiを計算する補完係数計算部と、
前記暗号化データcに含まれる要素c0,要素ctと、前記復号鍵skSに含まれる要素k* 0,要素k* iとについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αiとに基づき、数7に示すペアリング演算を行い値K=gT ζκを計算するペアリング演算部と
を備えることを特徴とする復号装置。
- 鍵生成装置と暗号化装置と復号装置とを備え、t=0,...,d(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムであり、
前記鍵生成装置は、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γを入力する第1情報入力部と、
前記第1情報入力部が入力した属性集合Γに基づき、要素k* 0と、前記属性集合Γに含まれる各識別情報tについての要素k* tとを生成する復号鍵生成部であって、
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として乱数値δを設定するとともに、基底ベクトルb* 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定した要素k* 0を生成し、
前記属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’を設定した要素k* tとを生成する復号鍵生成部と
を備え、
前記暗号化装置は、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第2情報入力部と、
r個の要素を有するベクトルf→及びw→と、前記第2情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、値s0:=w→・f→Tと、所定の値θi(i=1,...,L)とに基づき、要素c0と、i=1,...,Lの各整数iについての要素ciとを生成する暗号化データ生成部であって、
基底B0の基底ベクトルb0,p(pは前記p)の係数として前記値-s0を設定し、基底ベクトルb0,q(qは前記q)の係数として所定の値ζを設定して要素c0を生成し、
i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θivi,1を設定するとともに、前記識別情報tとi’=2,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてθivi,i’を設定して要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別
情報tとi’=1,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてsivi,i’を設定して要素ciを生成する暗号化データ生成部と
を備え、
前記復号装置は、
前記暗号化データ生成部が生成した要素c0及び要素ctと、前記変数ρ(i)とを含む暗号化データcを取得するデータ取得部と、
前記復号鍵生成部が生成した要素k* 0及び要素k* iと、前記属性集合Γとを含む復号鍵skΓを取得する復号鍵取得部と、
前記データ取得部が取得した暗号化データcに含まれるi=1,...,Lの各整数iについての変数ρ(i)と、前記復号鍵取得部が取得した復号鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αisiを合計した場合にs0となる補完係数αiを計算する補完係数計算部と、
前記暗号化データcに含まれる要素c0,要素ctと、前記復号鍵skΓに含まれる要素k* 0,要素k* iとについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αiとに基づき、数8に示すペアリング演算を行い値K=gT ζκを計算するペアリング演算部と
を備えることを特徴とする暗号処理システム。
- 前記暗号処理システムは、少なくとも基底ベクトルb0,i(i=1,...,5)を有する基底B0と、少なくとも基底ベクトルbt,i(i=1,...,nt,...,nt+u,...,nt+ut+wt,...,nt+ut+wt+zt)(ut,wt,ztは1以上の整数、)を有する基底Bt(t=1,...,d)と、少なくとも基底ベクトルb* 0,i(i=1,...,5)を有する基底B* 0と、少なくとも基底ベクトルb* t,i(i=1,...,nt,...,nt+ut,...,nt+u+wt,...,nt+ut+wt+zt)を有する基底B* t(t=1,...,d)とを用いて暗号処理を実行し、
前記鍵生成装置の前記復号鍵生成部は、乱数値δ,φ0と所定の値κとに基づき数9に示す要素k* 0を生成するとともに、前記乱数値δ,φt,i(i=1,...,wt)に基づき数10に示す要素k* tとを生成し、
前記暗号化装置の前記暗号化データ生成部は、乱数値η0と所定の値ζとに基づき数11に示す要素c0を生成するとともに、変数ρ(i)が肯定形の組(t,v→ i)である場合には、乱数値θi,ηi,i’(i=1,...,L,i’=1,...,zt)とに基づき数12に示す要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、乱数値ηi,i’(i=1,...,L,i’=1,...,zt)とに基づき数13に示す要素ciを生成する
ことを特徴とする請求項6に記載の暗号処理システム。
- t=0,...,d(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムにおいて、復号鍵skΓを生成する鍵生成装置であり、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γを入力する第1情報入力部と、
前記第1情報入力部が入力した属性集合Γに基づき、要素k* 0と、前記属性集合Γに含まれる各識別情報tについての要素k* tとを生成する復号鍵生成部であって、
基底B* 0の基底ベクトルb* 0,p(pは所定の値)の係数として乱数値δを設定するとともに、基底ベクトルb* 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定した要素k* 0を生成し、
前記属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’を設定した要素k* tとを生成する復号鍵生成部と、
前記第1情報入力部が入力した変数ρ(i)と、前記復号鍵生成部が生成した要素k* 0及び要素k* iとを含むデータを復号鍵skΓとして配布する鍵配布部と
を備えることを特徴とする鍵生成装置。 - t=0,...,d(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データcを生成する暗
号化装置であり、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第2情報入力部と、
r個の要素を有するベクトルf→及びw→と、前記第2情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、値s0:=w→・f→Tと、所定の値θi(i=1,...,L)とに基づき、要素c0と、i=1,...,Lの各整数iについての要素ciとを生成する暗号化データ生成部であって、
基底B0の基底ベクトルb0,p(pは前記p)の係数として前記値-s0を設定し、基底ベクトルb0,q(qは前記q)の係数として所定の値ζを設定して要素c0を生成し、
i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θivi,1を設定するとともに、前記識別情報tとi’=2,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてθivi,i’を設定して要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tとi’=1,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてsivi,i’を設定して要素ciを生成する暗号化データ生成部と、
前記第2情報入力部が入力した属性集合Γと、前記暗号化データ生成部が生成した要素c0及び要素ctとを暗号化データcとして出力するデータ出力部と
を備えることを特徴とする暗号化装置。 - t=0,...,d(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データcを復号鍵skΓで復号する復号装置であり、
r個(rは1以上の整数)の要素を有するベクトルf→及びw→とL行r列の所定の行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→T及び値s0:=w→・f→Tと、所定の値θi(i=1,...,L)と、i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)とに基づき生成された要素c0と、要素ci(i=1,...,Lの各整数)とであって、
基底B0の基底ベクトルb0,p(pは所定の値)の係数として前記値-s0が設定され、基底ベクトルb0,q(qは前記pとは異なる所定の値)の係数として所定の値ζが設定された要素c0と、
i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θivi,1が設定されるとともに、前記識別情報tとi’=2,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてθivi,i’が設定された要素ciであって、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tとi’=1,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてsivi,i’が設定された要素ciと
を前記変数ρ(i)とともに、暗号化データcとして取得するデータ取得部と、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γに基づき生成された要素k* 0と、要素k* t(tは前記属性集合Γに含
まれる各整数)とであって、
基底B* 0の基底ベクトルb* 0,p(pは前記p)の係数として乱数値δが設定されるとともに、基底ベクトルb* 0,q(qは前記q)の係数として所定の値κが設定された要素k* 0と、
前記属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’が設定された要素k* tと
を前記属性集合Γとともに、復号鍵skΓとして取得する復号鍵取得部と、
前記データ取得部が取得した暗号化データcに含まれる変数ρ(i)と、前記復号鍵取得部が取得した復号鍵skSに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αisiを合計した場合にs0となる補完係数αiを計算する補完係数計算部と、
前記暗号化データcに含まれる要素c0,要素ctと、前記復号鍵skSに含まれる要素k* 0,要素k* iとについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αiとに基づき、数14に示すペアリング演算を行い値K=gT ζκを計算するペアリング演算部と
を備えることを特徴とする復号装置。
- 鍵生成装置と署名装置と検証装置とを備え、t=1,...,d,d+2(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムであり、
前記鍵生成装置は、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γを入力する第1情報入力部と、
前記第1情報入力部が入力した属性集合Γに基づき、前記属性集合Γに含まれる各識別情報tについての要素k* tと、要素k* d+2と、要素k* d+3とを生成する署名鍵生成部であって、
前記属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’を設定した要素k* tを生成し、
基底B* d+2の基底ベクトルb* d+2,p’(p’は所定の値)の係数として前記乱数値δを設定した要素k* d+2を生成し、
基底B* d+2の基底ベクトルb* d+2,q’(q’は前記p’とは異なる所定の値)の係数として前記乱数値δを設定した要素k* d+3を生成する署名鍵生成部と
を備え、
前記署名装置は、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→
i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力部と、
前記署名鍵生成部が生成した要素k* tと、要素k* d+2と、要素k* d+3と、前記属性集合Γとを署名鍵skΓとして取得する署名鍵取得部と、
i=1,...,Lの各整数iについての変数ρ(i)と、前記署名鍵取得部が取得した署名鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMiに基づき、αiMiを合計したした場合に所定のベクトルw→となる補完係数αiを計算する補完係数計算部と、
前記変数ρ(i)と、前記属性集合Γと、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αiとに基づき、i=1,...,Lの各整数iについてのs* iと、s* Xとを生成する署名生成部であって、
βiを、行列Mの各行番号を表す各整数iについて、βiMiを合計した場合に全ての要素が0となる値とし、
行列Mの各行番号を表す各整数iについて、
i∈Iであって、変数ρ(i)が肯定形の組(t,v→ i)である場合には、値γi:=αiとし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が0で、yi,1=1であるベクトルとし、
i∈Iであって、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、値γi:=αi/(v→ i・x→ t)とし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が1であるベクトルとし、
i∈Iでなく、変数ρ(i)が肯定形の組(t,v→ i)である場合には、値γi:=0とし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が0で、yi,1=1であるベクトルとし、
i∈Iでなく、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、値γi:=0とし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が1であるベクトルとして、
数15に示すように行列Mの各行番号を表す各整数iについてのs* iと、s* Xとを生成する署名生成部と
を備え、
前記検証装置は、
前記署名生成部が生成したs* i,s* Xと、メッセージmと、変数ρ(i)と、行列Mとを含む署名データsigを取得するデータ取得部と、
r個の要素を有するベクトルf→と、前記ベクトルw→と、前記データ取得部が取得した行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、値s0:=w→・f→Tと、所定の値θi(iは行列Mの各行番号とX)とに基づき、行列Mの各行番号を表す各整数iについての要素ciと、要素cXとを生成する暗号化データ生成部であって、
前記行列Mの各行番号を表す各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θivi,1を設定するとともに、前記識別情報tとi’=2,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてθivi,i’を設定して要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tとi’=1,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてsivi,i’を設定して要素ciを生成し、
基底Bd+2の基底ベクトルbd+2,p’(p’は前記p’)にs0-θXmを設定
するとともに、基底ベクトルbd+2,q’(q’は前記q’)にθXを設定して要素cXを生成する暗号化データ生成部と、
行列Mの各行番号とXとを示す各整数iについて、数16に示すペアリング演算を行い、前記署名データsigの正当性を検証するペアリング演算部と
を備えることを特徴とする署名処理システム。
- 前記署名処理システムは、少なくとも基底ベクトルb0,i(i=1,...,4)を有する基底B0と、少なくとも基底ベクトルbt,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)(ut,wt,ztは1以上の整数、)を有する基底Bt(t=1,...,d)と、少なくとも基底ベクトルbd+1,i(i=1,...,4)を有する基底Bd+1と、少なくとも基底ベクトルbd+2,i(i=1,...,8)を有する基底Bd+2と、少なくとも基底ベクトルb* 0,i(i=1,...,4)を有する基底B* 0と、少なくとも基底ベクトルb* t,i(i=1,...,nt,...,nt+ut,...,nt+ut+wt,...,nt+ut+wt+zt)を有する基底B* t(t=1,...,d)と、少なくとも基底ベクトルb* d+1,i(i=1,...,4)を有する基底B* d+1と、少なくとも基底ベクトルb* d+2,i(i=1,...,8)を有する基底B* d+2とを用いて署名処理を実行し、
前記鍵生成装置の前記署名鍵生成部は、
前記属性集合Γに含まれる各識別情報tと、ι=1,...,wtの各整数ιとについて、要素k* 0と、要素k* tと、要素k* d+2と、要素k* d+3とを、乱数値δj,φ0,φt,ι,φd+2,1,φd+2,2,φd+3,1,φd+3,2に基づき、数17に示すように生成し、
前記署名装置は、さらに、
前記行列MのL+1行目に所定の行ベクトルML+1を追加する行列生成部
を備え
前記署名装置の前記署名生成部は、
要素k* 0と、要素k* tと、要素k* d+2と、要素k* d+3と、乱数値ξとに基づき、数18に示すように、i=1,...,L+1の各整数iについてのs* iと、s* Xとしてs* 0及びs* L+2とを生成し、
前記検証装置の前記暗号化データ生成部は、
i=1,...,L+1の各整数iと、i‘=1,...,ztの各整数i’とについて、乱数値θi,ηi,i’,ηL+2,1,ηL+2,2に基づき、数19に示すよう
に、要素ciと、要素cXとして要素c0及び要素cL+2とを生成し、
前記ペアリング演算部は、i=1,...,L+2の各整数iについて、前記ペアリング演算を行う
ことを特徴とする請求項11に記載の署名処理システム。
- t=1,...,d,d+2(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムにおいて、署名鍵skΓを生成する鍵生成装置であり、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γを入力する第1情報入力部と、
前記第1情報入力部が入力した属性集合Γに基づき、前記属性集合Γに含まれる各識別情報tについての要素k* tと、要素k* d+2と、要素k* d+3とを生成する署名鍵生成部であって、
前記属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’を設定した要素k* tを生成し、
基底B* d+2の基底ベクトルb* d+2,p’(p’は所定の値)の係数として前記乱数値δを設定した要素k* d+2を生成し、
基底B* d+2の基底ベクトルb* d+2,q’(q’は前記p’とは異なる所定の値)の係数として前記乱数値δを設定した要素k* d+3を生成する署名鍵生成部と、
前記第1情報入力部が入力した属性集合Γと、前記署名鍵生成部が生成した要素k* tと、要素k* d+2と、要素k* d+3とを含むデータを署名鍵skΓとして配布する鍵配布部と
を備えることを特徴とする鍵生成装置。 - t=1,...,d,d+2(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムにおいて、署名データsigを生成する署名装置であり、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力部と、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γに基づき生成された要素k* t(tは前記属性集合Γに含まれる各識別情報)と、要素k* d+2と、要素k* d+3とであって、
前記属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’が設定された要素k* tと、
基底B* d+2の基底ベクトルb* d+2,p’(p’は所定の値)の係数として前記乱数値δが設定された要素k* d+2と、
基底B* d+2の基底ベクトルb* d+2,q’(q’は前記p’とは異なる所定の値)の係数として前記乱数値δが設定された要素k* d+3と
を前記属性集合Γとともに、署名鍵skΓとして取得する署名鍵取得部と、
i=1,...,Lの各整数iについての変数ρ(i)と、前記署名鍵取得部が取得した署名鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルw→となる補完係数αiを計算する補完係数計算部と、
前記変数ρ(i)と、前記属性集合Γと、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αiとに基づき、行列Mの各行番号を表す各整数iについてのs* iと、s* Xとを生成する署名生成部であって、
βiを、行列Mの各行番号を表す各整数iについて、βiMiを合計した場合に全ての要素が0となる値とし、
行列Mの各行番号を表す各整数iについて、
i∈Iであって、変数ρ(i)が肯定形の組(t,v→ i)である場合には、値γi:=αiとし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が0で、yi,1=1であるベクトルとし、
i∈Iであって、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、値γi:=αi/(v→ i・x→ t)とし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が1であるベクトルとし、
i∈Iでなく、変数ρ(i)が肯定形の組(t,v→ i)である場合には、値γi:=0とし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が0で、yi,1=1であるベクトルとし、
i∈Iでなく、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、値γi:=0とし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が1であるベクトルとして、
数20に示すように行列Mの各行番号を表すの各整数iについてのs* iと、s* Xとを生成する署名生成部と
前記第2情報入力部が入力した変数ρ(i)と行列Mとメッセージmと、前記署名生成部が生成したs* 0とs* iとs* Xとを含むデータを署名データsigとして出力するデータ出力部と
を備えることを特徴とする署名装置。
- t=1,...,d,d+2(dは1以上の整数)の各整数tについての基底Btと基底B* tとを用いて署名処理を実行する署名処理システムにおいて、署名データsigを検証する検証装置であり、
t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx→ t:=(xt,i’)(i’=1,...,nt,ntは1以上の整数)とを有する属性集合Γに基づき生成された要素k* t(tは前記属性集合Γに含まれる各識別情報)と、要素k* d+2と、要素k* d+3とであって、
前記属性集合Γに含まれる各識別情報tについて、基底B* tの基底ベクトルb* t,i’(i’=1,...,nt)の係数として前記乱数値δ倍したxt,i’が設定された要素k* tと、
基底B* d+2の基底ベクトルb* d+2,p’(p’は所定の値)の係数として前記乱数値δが設定された要素k* d+2と、
基底B* d+2の基底ベクトルb* d+2,q’(q’は前記p’とは異なる所定の値)の係数として前記乱数値δが設定された要素k* d+3と、
i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv→ i:=(vi,i’)(i’=1,...,nt,ntは1以上の整数)との肯定形の組(t,v→ i)又は否定形の組¬(t,v→ i)のいずれかである変数ρ(i)と、前記属性集合Γとに基づき計算された集合Iと補完係数αiとであって、
i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0となるiと、変数ρ(i)が否定形の組¬(t,v→ i)であり、かつ、その組のv→ iと、その組の識別情報tが示すΓに含まれるx→ tとの内積が0とならないiとの集合Iと、
集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMiに基づき、αiMiを合計した場合に所定のベクトルw→となる補完係数αiと、
前記変数ρ(i)と、前記属性集合Γと、前記集合Iと、前記補完係数αiとに基づき生成されたs* i(i=1,...,Lの各整数)と、s* Xとであって、
βiを、行列Mの各行番号を表す各整数iについて、βiMiを合計した場合に全ての要素が0となる値とし、
行列Mの各行番号を表す各整数iについて、
i∈Iであって、変数ρ(i)が肯定形の組(t,v→ i)である場合には、値γi:=αiとし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が0で、yi,1=1であるベクトルとし、
i∈Iであって、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、値γi:=αi/(v→ i・x→ t)とし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が1であるベクトルとし、
i∈Iでなく、変数ρ(i)が肯定形の組(t,v→ i)である場合には、値γi:=0とし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が0で、yi,1=1であるベクトルとし、
i∈Iでなく、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、値γi:=0とし、ベクトルy→ i:=(yi,ι)(ι:=1,...,nt)をy→ iとv→ iとの内積が1であるベクトルとして、
数21に示すように生成されたs* iと、s* Xと
のうち、s* iと、s* Xとメッセージmと、変数ρ(i)と、行列Mとを含む署名データsigを取得するデータ取得部と、
r個(rは1以上の整数)の要素を有するベクトルf→と、前記ベクトルw→と、前記第2情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s1,...,sL)T:=M・f→Tと、値s0:=w→・f→Tと、所定の値θi(iは行列Mの各行番号とX)とに基づき、i=1,...,Lの各整数iについての要素ciと、要素cXとを生成する暗号化データ生成部であって、
行列Mの各行番号を表す各整数iについて、変数ρ(i)が肯定形の組(t,v→ i)である場合には、その組の識別情報tが示す基底Btの基底ベクトルbt,1の係数としてsi+θivi,1を設定するとともに、前記識別情報tとi’=2,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてθivi,i’を設定して要素ciを生成し、変数ρ(i)が否定形の組¬(t,v→ i)である場合には、その組の識別情報tとi’=1,...,ntの各整数i’とが示す基底ベクトルbt,i’の係数としてsivi,i’を設定して要素ciを生成し、
基底Bd+2の基底ベクトルbd+2,p’(p’は前記p’)にs0-θXmを設定するとともに、基底ベクトルbd+2,q’(q’は前記q’)にθXを設定して要素cXを生成する暗号化データ生成部と、
行列Mの各行番号とXとを示す各整数iについて、数22に示すペアリング演算を行い、前記署名データsigの正当性を検証するペアリング演算部と
を備えることを特徴とする検証装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/640,885 US8913742B2 (en) | 2010-04-27 | 2011-02-15 | Cryptographic processing system, key generation device, encryption device, decryption device, signature processing system, signature device, and verification device |
CN201180020997.1A CN102859571B (zh) | 2010-04-27 | 2011-02-15 | 密码处理系统、密钥生成装置、加密装置、解密装置、签名处理系统、签名装置以及验证装置 |
ES11774680.0T ES2693146T3 (es) | 2010-04-27 | 2011-02-15 | Sistema de procesamiento criptográfico, dispositivo de generación de claves, dispositivo de cifrado, dispositivo de descifrado, sistema de procesamiento de firmas, dispositivo de firma y dispositivo de verificación |
EP11774680.0A EP2565862B1 (en) | 2010-04-27 | 2011-02-15 | Encryption processing system, key generation device, encryption device, decryption device, signature processing system, signature device and verification device |
KR1020127025089A KR101386294B1 (ko) | 2010-04-27 | 2011-02-15 | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010101657A JP5424974B2 (ja) | 2010-04-27 | 2010-04-27 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
JP2010-101657 | 2010-04-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011135895A1 true WO2011135895A1 (ja) | 2011-11-03 |
Family
ID=44861216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/053174 WO2011135895A1 (ja) | 2010-04-27 | 2011-02-15 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8913742B2 (ja) |
EP (1) | EP2565862B1 (ja) |
JP (1) | JP5424974B2 (ja) |
KR (1) | KR101386294B1 (ja) |
CN (1) | CN102859571B (ja) |
ES (1) | ES2693146T3 (ja) |
WO (1) | WO2011135895A1 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012086405A1 (ja) * | 2010-12-22 | 2012-06-28 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
JP2013109048A (ja) * | 2011-11-18 | 2013-06-06 | Mitsubishi Electric Corp | 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置 |
WO2013133158A1 (ja) * | 2012-03-06 | 2013-09-12 | 三菱電機株式会社 | 暗号システム、暗号方法及び暗号プログラム |
CN104718566A (zh) * | 2012-10-19 | 2015-06-17 | 三菱电机株式会社 | 密码系统 |
WO2016132546A1 (ja) * | 2015-02-20 | 2016-08-25 | 三菱電機株式会社 | データ保管装置及びデータ処理方法及びデータ処理プログラム |
CN107251480A (zh) * | 2015-02-20 | 2017-10-13 | 三菱电机株式会社 | 数据保管装置、数据更新系统、数据处理方法和数据处理程序 |
US10050782B2 (en) | 2014-12-05 | 2018-08-14 | Mitsubishi Electric Corporation | Decryption condition addition device, cryptographic system, and computer readable medium |
US10454673B2 (en) | 2014-12-05 | 2019-10-22 | Mitsubishi Electric Corporation | Cryptographic system, master key update apparatus, and non-transitory computer-readable recording medium storing master key update program |
US10691815B2 (en) | 2016-04-27 | 2020-06-23 | Mitsubishi Electric Corporation | Attribute linkage apparatus, transfer system, attribute linkage method and computer readable medium |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5492007B2 (ja) * | 2010-08-04 | 2014-05-14 | 日本放送協会 | コンテンツサーバ、コンテンツ受信装置、属性鍵発行サーバ、ユーザ鍵発行サーバ、アクセス制御システム、コンテンツ配信プログラムおよびコンテンツ受信プログラム |
JP5618881B2 (ja) * | 2011-03-25 | 2014-11-05 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
JP5650630B2 (ja) * | 2011-11-22 | 2015-01-07 | 日本電信電話株式会社 | 鍵交換システム、鍵交換装置、鍵交換方法、鍵交換プログラム |
JP2013150026A (ja) * | 2012-01-17 | 2013-08-01 | Mitsubishi Electric Corp | データ処理システム及び秘匿化装置及び秘密鍵生成装置及び秘匿化方法及び秘密鍵生成方法及びプログラム |
JP5814880B2 (ja) | 2012-07-31 | 2015-11-17 | 三菱電機株式会社 | 暗号システム、暗号方法、暗号プログラム及び復号装置 |
KR101493212B1 (ko) * | 2012-10-31 | 2015-02-23 | 삼성에스디에스 주식회사 | 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치 |
US9237137B2 (en) | 2013-01-12 | 2016-01-12 | Mitsubishi Electric Corporation | Key generation device, key generation program, secret search system, and key distribution method |
EP3057262B1 (en) * | 2013-10-09 | 2021-07-28 | Mitsubishi Electric Corporation | Cipher system, encryption device, re-encryption key generation device, re-encryption device, and cipher program |
EP2860905A1 (en) * | 2013-10-09 | 2015-04-15 | Thomson Licensing | Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product |
CN105850072B (zh) * | 2013-12-02 | 2018-11-20 | 三菱电机株式会社 | 数据处理系统、加密装置以及解密装置 |
CN106031080B (zh) | 2014-02-24 | 2019-07-16 | 三菱电机株式会社 | 加密系统 |
WO2016002020A1 (ja) * | 2014-07-02 | 2016-01-07 | 三菱電機株式会社 | 行列生成装置及び行列生成方法及び行列生成プログラム |
JP6305638B2 (ja) | 2015-04-07 | 2018-04-04 | 三菱電機株式会社 | 暗号システム及び鍵生成装置 |
US9209974B1 (en) * | 2015-05-03 | 2015-12-08 | Zeutro, Llc | Functional encryption key management |
JP5957126B1 (ja) * | 2015-06-24 | 2016-07-27 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、およびプログラム |
EP3494663B8 (en) * | 2016-08-02 | 2023-11-01 | Algemetric, Inc. | Methods and systems for enhanced data-centric encryption systems using geometric algebra |
US11290252B2 (en) | 2017-01-20 | 2022-03-29 | Enveil, Inc. | Compression and homomorphic encryption in secure query and analytics |
US11196540B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | End-to-end secure operations from a natural language expression |
US11507683B2 (en) | 2017-01-20 | 2022-11-22 | Enveil, Inc. | Query processing with adaptive risk decisioning |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
US11777729B2 (en) | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
US20180212753A1 (en) | 2017-01-20 | 2018-07-26 | Enveil, Inc. | End-To-End Secure Operations Using a Query Vector |
SG10201701044SA (en) * | 2017-02-09 | 2018-09-27 | Huawei Int Pte Ltd | System and method for computing private keys for self certified identity based signature schemes |
EP3648395A4 (en) * | 2017-07-20 | 2020-05-20 | Mitsubishi Electric Corporation | ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION PROCEDURE, ENCRYPTION PROGRAM, DECRYPTION PROCEDURE AND DECRYPTION PROGRAM |
CN111066076B (zh) | 2017-09-12 | 2023-03-17 | 三菱电机株式会社 | 登记终端、密钥服务器、检索系统和计算机能读取的存储介质 |
JP6456451B1 (ja) | 2017-09-25 | 2019-01-23 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 通信装置、通信方法、及びプログラム |
US10193690B1 (en) * | 2017-09-29 | 2019-01-29 | U.S. Bancorp, National Association | Systems and methods to secure data using computer system attributes |
JP7024666B2 (ja) * | 2018-08-28 | 2022-02-24 | 日本電信電話株式会社 | Idベースハッシュ証明系構成装置、idベース暗号装置及びプログラム |
JP7117964B2 (ja) * | 2018-10-04 | 2022-08-15 | 三菱電機株式会社 | 復号装置、暗号システム、復号方法及び復号プログラム |
US10902133B2 (en) | 2018-10-25 | 2021-01-26 | Enveil, Inc. | Computational operations in enclave computing environments |
US10817262B2 (en) | 2018-11-08 | 2020-10-27 | Enveil, Inc. | Reduced and pipelined hardware architecture for Montgomery Modular Multiplication |
US11469903B2 (en) * | 2019-02-28 | 2022-10-11 | Microsoft Technology Licensing, Llc | Autonomous signing management operations for a key distribution service |
WO2021001990A1 (ja) * | 2019-07-04 | 2021-01-07 | 三菱電機株式会社 | データ処理装置、復号装置、データ処理方法、復号方法、データ処理プログラム及び復号プログラム |
WO2021112877A1 (en) * | 2019-12-06 | 2021-06-10 | Hewlett-Packard Development Company, L.P. | Key distribution |
US11601258B2 (en) | 2020-10-08 | 2023-03-07 | Enveil, Inc. | Selector derived encryption systems and methods |
CN112733111B (zh) * | 2020-12-31 | 2023-05-23 | 暨南大学 | 一种基于片段分割的阈值谓词加密生物特征认证方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2429116B1 (en) * | 2001-08-13 | 2013-07-10 | The Board of Trustees of the Leland Stanford Junior University | Method for identity-based encryption and related crytographic techniques |
JP2006107274A (ja) * | 2004-10-07 | 2006-04-20 | Matsushita Electric Ind Co Ltd | ハッシュ関数演算システム、暗号化システムおよび不正解析・改竄防止システム |
JP2007235659A (ja) | 2006-03-02 | 2007-09-13 | Mebius Corp | 鍵管理方法、暗号処理方法、電子署名方法、アクセス管理方法 |
US8121284B2 (en) * | 2006-03-14 | 2012-02-21 | Nec Corporation | Information processing system, information processing method, and information processing program |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
EP2120227B1 (en) * | 2007-01-19 | 2015-04-15 | Mitsubishi Electric Corporation | Cryptogram generating device, cryptogram communication system, and group parameter generating device |
JP5349261B2 (ja) | 2009-04-23 | 2013-11-20 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
CN102396012B (zh) | 2009-04-24 | 2014-05-07 | 日本电信电话株式会社 | 秘密分散系统、分散装置、分散管理装置、取得装置、其处理方法、秘密分散方法 |
US8964982B2 (en) | 2009-04-24 | 2015-02-24 | Nippon Telegraph And Telephone Corporation | Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program, and storage medium |
-
2010
- 2010-04-27 JP JP2010101657A patent/JP5424974B2/ja active Active
-
2011
- 2011-02-15 US US13/640,885 patent/US8913742B2/en active Active
- 2011-02-15 ES ES11774680.0T patent/ES2693146T3/es active Active
- 2011-02-15 EP EP11774680.0A patent/EP2565862B1/en active Active
- 2011-02-15 KR KR1020127025089A patent/KR101386294B1/ko active IP Right Grant
- 2011-02-15 WO PCT/JP2011/053174 patent/WO2011135895A1/ja active Application Filing
- 2011-02-15 CN CN201180020997.1A patent/CN102859571B/zh active Active
Non-Patent Citations (3)
Title |
---|
ALLISON LEWKO ET AL.: "Fully Secure Functional Encryption: Attribute- Based Encryption and (Hierarchical) Inner Product Encryption", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2010/110, 29 March 2010 (2010-03-29), XP061004012, Retrieved from the Internet <URL:http://eprint.iacr.org> [retrieved on 20110309] * |
BRENT WATERS: "Dual System Encryption: Realizing Fully Secure IBE and HIBE under Simple Assumptions", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2009/385, 6 August 2009 (2009-08-06), XP061003532, Retrieved from the Internet <URL:http://eprint.iacr.org/2009/385.pdf> [retrieved on 20110309] * |
TATSUAKI OKAMOTO ET AL.: "Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2010/563, 5 November 2010 (2010-11-05), XP061004308, Retrieved from the Internet <URL:http://eprint.iacr.org/2010/563.> [retrieved on 20110309] * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8938623B2 (en) | 2010-12-22 | 2015-01-20 | Mitsubishi Electric Corporation | Cryptographic processing system, key generation device, encryption device, decryption device, cryptographic processing method, and cryptographic processing program |
WO2012086405A1 (ja) * | 2010-12-22 | 2012-06-28 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
JP2013109048A (ja) * | 2011-11-18 | 2013-06-06 | Mitsubishi Electric Corp | 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置 |
US9407438B2 (en) | 2012-03-06 | 2016-08-02 | Mitsubishi Electric Corporation | Cryptographic system, cryptographic method, and cryptographic program |
KR20140138176A (ko) * | 2012-03-06 | 2014-12-03 | 미쓰비시덴키 가부시키가이샤 | 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
JP2013186181A (ja) * | 2012-03-06 | 2013-09-19 | Mitsubishi Electric Corp | 暗号システム、暗号方法及び暗号プログラム |
KR101588992B1 (ko) | 2012-03-06 | 2016-01-26 | 미쓰비시덴키 가부시키가이샤 | 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
WO2013133158A1 (ja) * | 2012-03-06 | 2013-09-12 | 三菱電機株式会社 | 暗号システム、暗号方法及び暗号プログラム |
CN104718566A (zh) * | 2012-10-19 | 2015-06-17 | 三菱电机株式会社 | 密码系统 |
US10050782B2 (en) | 2014-12-05 | 2018-08-14 | Mitsubishi Electric Corporation | Decryption condition addition device, cryptographic system, and computer readable medium |
US10454673B2 (en) | 2014-12-05 | 2019-10-22 | Mitsubishi Electric Corporation | Cryptographic system, master key update apparatus, and non-transitory computer-readable recording medium storing master key update program |
DE112014007226B4 (de) | 2014-12-05 | 2023-09-07 | Mitsubishi Electric Corporation | Entschlüsselungsbedingungs-Hinzufügungsvorrichtung, kryptografisches System und Entschlüsselungsbedingungs-Hinzufügungsprogramm |
JPWO2016132546A1 (ja) * | 2015-02-20 | 2017-06-22 | 三菱電機株式会社 | データ保管装置及びデータ処理方法及びデータ処理プログラム |
CN107251480A (zh) * | 2015-02-20 | 2017-10-13 | 三菱电机株式会社 | 数据保管装置、数据更新系统、数据处理方法和数据处理程序 |
CN107251480B (zh) * | 2015-02-20 | 2018-07-10 | 三菱电机株式会社 | 数据保管装置、数据更新系统和数据处理方法 |
WO2016132546A1 (ja) * | 2015-02-20 | 2016-08-25 | 三菱電機株式会社 | データ保管装置及びデータ処理方法及びデータ処理プログラム |
US10116442B2 (en) | 2015-02-20 | 2018-10-30 | Mitsubishi Electric Corporation | Data storage apparatus, data updating system, data processing method, and computer readable medium |
US10592682B2 (en) | 2015-02-20 | 2020-03-17 | Mitsubishi Electric Corporation | Data storage apparatus, data processing method, and computer readable medium adding a user attribute of a revoked user to an embedded decryption condition while encrypted data remains in an encrypted state |
US10691815B2 (en) | 2016-04-27 | 2020-06-23 | Mitsubishi Electric Corporation | Attribute linkage apparatus, transfer system, attribute linkage method and computer readable medium |
Also Published As
Publication number | Publication date |
---|---|
US8913742B2 (en) | 2014-12-16 |
ES2693146T3 (es) | 2018-12-07 |
KR20120139753A (ko) | 2012-12-27 |
KR101386294B1 (ko) | 2014-04-17 |
EP2565862A1 (en) | 2013-03-06 |
JP5424974B2 (ja) | 2014-02-26 |
EP2565862A4 (en) | 2017-07-19 |
CN102859571B (zh) | 2015-06-10 |
US20130028415A1 (en) | 2013-01-31 |
EP2565862B1 (en) | 2018-08-01 |
CN102859571A (zh) | 2013-01-02 |
JP2011232475A (ja) | 2011-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5424974B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 | |
JP5693206B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5618881B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5680007B2 (ja) | 暗号システム、暗号方法及び暗号プログラム | |
JP5769401B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及びプログラム | |
JP5606344B2 (ja) | 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム | |
JP5334873B2 (ja) | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム | |
JP5921410B2 (ja) | 暗号システム | |
JP5606351B2 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 201180020997.1 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11774680 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 20127025089 Country of ref document: KR Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13640885 Country of ref document: US Ref document number: 2011774680 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |