WO2011135895A1 - 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 - Google Patents

暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 Download PDF

Info

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
Application number
PCT/JP2011/053174
Other languages
English (en)
French (fr)
Inventor
克幸 高島
岡本 龍明
Original Assignee
三菱電機株式会社
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社, 日本電信電話株式会社 filed Critical 三菱電機株式会社
Priority to ES11774680.0T priority Critical patent/ES2693146T3/es
Priority to EP11774680.0A priority patent/EP2565862B1/en
Priority to CN201180020997.1A priority patent/CN102859571B/zh
Priority to US13/640,885 priority patent/US8913742B2/en
Priority to KR1020127025089A priority patent/KR101386294B1/ko
Publication of WO2011135895A1 publication Critical patent/WO2011135895A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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/0847Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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/3073Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

 多くの暗号機能を有する安全な関数型暗号方式を提供することを目的とする。スパンプログラムに属性ベクトルの内積を適用することにより、アクセスストラクチャを構成した。このアクセスストラクチャは、スパンプログラムの設計と、属性ベクトルの設計とに自由度があり、アクセス制御の設計に大きな自由度を有する。そして、このアクセスストラクチャに対して秘密分散の概念を用いることで、多くの暗号機能を有する安全な関数型暗号処理を実現した。

Description

暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
 この発明は、関数型暗号(Functional Encryption,FE)方式に関するものである。
 非特許文献3-6,10,12,13,15,18には、関数型暗号方式の1つのクラスであるIDベース暗号(Identity-Based Encryption,IBE)方式についての記載がある。また、非特許文献2,7,9,16,19,23-26,28には、関数型暗号方式の1つのクラスである属性ベース暗号(Attribute-Based Encryption,ABE)方式についての記載がある。
Beimel, A., Secure schemes for secret sharing and key distribution. PhD Thesis, Israel Institute of Technology, Technion, Haifa, Israel, 1996 Bethencourt, J., Sahai, A., Waters, B.: Ciphertextpolicy attribute-based encryption. In: 2007 IEEE Symposium on Security and Privacy, pp. 321・34. IEEE Press (2007) Boneh, D., Boyen, X.: Efficient selective-ID secure identity based encryption without random oracles. In:Cachin, C., Camenisch, J. (eds.) EUROCRYPT 2004. LNCS, vol. 3027, pp. 223・38. Springer Heidelberg(2004) Boneh, D., Boyen, X.: Secure identity based encryption without random oracles. In: Franklin, M.K. (ed.)CRYPTO 2004. LNCS, vol. 3152, pp. 443・59. Springer Heidelberg (2004) Boneh, D., Boyen, X., Goh, E.: Hierarchical identity based encryption with constant size ciphertext. In:Cramer, R. (ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 440・56. Springer Heidelberg (2005) Boneh, D., Franklin, M.: Identity-based encryption from the Weil pairing. In: Kilian, J. (ed.) CRYPTO2001. LNCS, vol. 2139, pp. 213・29. Springer Heidelberg (2001) Boneh, D., Hamburg, M.: Generalized identity based and broadcast encryption scheme. In: Pieprzyk, J.(ed.) ASIACRYPT 2008. LNCS, vol. 5350, pp. 455・70. Springer Heidelberg (2008) Boneh, D., Katz, J., Improved efficiency for CCA-secure cryptosystems built using identity based encryption. RSA-CT 2005, LNCS, Springer Verlag (2005) Boneh, D., Waters, B.: Conjunctive, subset, and range queries on encrypted data. In: Vadhan, S.P. (ed.)TCC 2007. LNCS, vol. 4392, pp. 535・54. Springer Heidelberg (2007) Boyen, X., Waters, B.: Anonymous hierarchical identity-based encryption (without random oracles). In:Dwork, C. (ed.) CRYPTO 2006. LNCS, vol. 4117, pp. 290・07. Springer Heidelberg (2006) Canetti, R., Halevi S., Katz J., Chosen-ciphertext security from identity-based encryption. EUROCRYPT2004, LNCS, Springer-Verlag (2004) Cocks, C.: An identity based encryption scheme based on quadratic residues. In: Honary, B. (ed.) IMAInt. Conf. LNCS, vol. 2260, pp. 360・63. Springer Heidelberg (2001) Gentry, C.: Practical identity-based encryption without random oracles. In: Vaudenay, S. (ed.) EUROCRYPT 2006. LNCS, vol. 4004, pp. 445・64. Springer Heidelberg (2006) Gentry, C., Halevi, S.: Hierarchical identity-based encryption with polynomially many levels. In: Reingold,O. (ed.) TCC 2009. LNCS, vol. 5444, pp. 437・56. Springer Heidelberg (2009) Gentry, C., Silverberg, A.: Hierarchical ID-based cryptography. In: Zheng, Y. (ed.) ASIACRYPT 2002.LNCS, vol. 2501, pp. 548・66. Springer Heidelberg (2002) Goyal, V., Pandey, O., Sahai, A., Waters, B.: Attribute-based encryption for fine-grained access controlof encrypted data. In: ACM Conference on Computer and Communication Security 2006, pp. 89・8, ACM(2006) Groth, J., Sahai, A.: Efficient non-interactive proof systems for bilinear groups. In: Smart, N.P. (ed.)EUROCRYPT 2008. LNCS, vol. 4965, pp. 415・32. Springer Heidelberg (2008) Horwitz, J., Lynn, B.: Towards hierarchical identity-based encryption. In: Knudsen, L.R. (ed.) EUROCRYPT 2002. LNCS, vol. 2332, pp. 466・81. Springer Heidelberg (2002) Katz, J., Sahai, A., Waters, B.: Predicate encryption supporting disjunctions, polynomial equations, andinner products. In: Smart, N.P. (ed.) EUROCRYPT 2008. LNCS, vol. 4965, pp. 146・62. Springer Heidelberg (2008) Lewko, A.B., Waters, B.: Fully secure HIBE with short ciphertexts. ePrint, IACR, http://eprint.iacr.org/2009/482 Okamoto, T., Takashima, K.: Homomorphic encryption and signatures from vector decomposition. In:Galbraith, S.D., Paterson, K.G. (eds.) Pairing 2008. LNCS, vol. 5209, pp. 57・4. Springer Heidelberg(2008) Okamoto, T., Takashima, K.: Hierarchical predicate encryption for Inner-Products, In: ASIACRYPT 2009,Springer Heidelberg (2009) Ostrovsky, R., Sahai, A., Waters, B.: Attribute-based encryption with non-monotonic access structures.In: ACM Conference on Computer and Communication Security 2007, pp. 195・03, ACM (2007) Pirretti, M., Traynor, P., McDaniel, P., Waters, B.: Secure attribute-based systems. In: ACM Conferenceon Computer and Communication Security 2006, pp. 99・12, ACM, (2006) Sahai, A., Waters, B.: Fuzzy identity-based encryption. In: Cramer, R. (ed.) EUROCRYPT 2005. LNCS,vol. 3494, pp. 457・73. Springer Heidelberg (2005) Shi, E., Waters, B.: Delegating capability in predicate encryption systems. In: Aceto, L., Damgard, I.,Goldberg, L.A., Halldosson, M.M., Ingofsdotir, A., Walukiewicz, I. (eds.) ICALP (2) 2008. LNCS, vol.5126, pp. 560・78. Springer Heidelberg (2008) Waters, B.: Efficient identity based encryption without random oracles. Eurocrypt 2005, LNCS No. 3152,pp.443・59.Springer Verlag, 2005. Waters, B.: Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably securerealization. ePrint, IACR, http://eprint.iacr.org/2008/290 Waters, B.: Dual system encryption: Realizing fully secure IBE and HIBE under simple assumptions. In:Halevi, S. (ed.) CRYPTO 2009. LNCS, vol. 5677, pp. 619・36. Springer Heidelberg (2009)
 この発明は、多機能な暗号機能を有する安全な関数型暗号方式を提供することを目的とする。
 この発明に係る暗号処理システムは、
 鍵生成装置と暗号化装置と復号装置とを備え、t=0,...,d(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて暗号処理を実行する暗号処理システムであり、
 前記鍵生成装置は、
 i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv :=(vi,i’)(i’=1,...,n,nは1以上の整数)との肯定形の組(t,v )又は否定形の組¬(t,v )のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第1情報入力部と、
 r個の要素を有するベクトルf及びwと、前記第1情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s,...,s:=M・f→Tと、値s:=w・f→Tと、所定の値θ(i=1,...,L)とに基づき、要素k と、i=1,...,Lの各整数iについての要素k とを生成する復号鍵生成部であって、
 基底B の基底ベクトルb 0,p(pは所定の値)の係数として前記値-sを設定し、基底ベクトルb 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定して要素k を生成し、
 i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v )である場合には、その組の識別情報tが示す基底B の基底ベクトルb t,1の係数としてs+θi,1を設定するとともに、前記識別情報tとi’=2,...,nの各整数i’とが示す基底ベクトルb t,i’の係数としてθi,i’を設定して要素k を生成し、変数ρ(i)が否定形の組¬(t,v )である場合には、その組の識別情報tとi’=1,...,nの各整数i’とが示す基底ベクトルb t,i’の係数としてsi,i’を設定して要素k を生成する復号鍵生成部と
を備え、
 前記暗号化装置は、
 t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γを入力する第2情報入力部と、
 前記第2情報入力部が入力した属性集合Γに基づき、要素cと、前記属性集合Γに含まれる各識別情報tについてについての要素cとを生成する暗号化データ生成部であって、
 基底Bの基底ベクトルb0,p(pは前記p)の係数として乱数値δを設定するとともに、基底ベクトルb0,q(qは前記q)の係数として所定の値ζを設定した要素cを生成し、
 前記属性集合Γに含まれる各識別情報tについて、基底Bの基底ベクトルbt,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’を設定した要素cとを生成する暗号化データ生成部と
を備え、
 前記復号装置は、
 前記暗号化データ生成部が生成した要素c及び要素cと、前記属性集合Γとを含む暗号化データcを取得するデータ取得部と、
 前記復号鍵生成部が生成した要素k 及び要素k と、前記変数ρ(i)とを含む復号鍵skを取得する復号鍵取得部と、
 前記データ取得部が取得した暗号化データcに含まれる属性集合Γと、前記復号鍵取得部が取得した復号鍵skに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0となるiと、変数ρ(i)が否定形の組¬(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αを合計した場合にsとなる補完係数αを計算する補完係数計算部と、
 前記暗号化データcに含まれる要素c,要素cと、前記復号鍵skに含まれる要素k ,要素k とについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αとに基づき、数1に示すペアリング演算を行い値K=g ζκを計算するペアリング演算部と
を備えることを特徴とする。
Figure JPOXMLDOC01-appb-M000023
 この発明に係る暗号処理システムは、スパンプログラム(Span Program)と内積述語とを用いて関数型暗号を実現しており、多機能な暗号機能を実現している。また、従来の関数型暗号方式に比べ、安全性が高い。
行列M^の説明図。 行列Mδの説明図。 の説明図。 →Tの説明図。 Key-Policy関数型暗号方式を実行する暗号処理システム10の構成図。 Key-Policy関数型暗号方式を実行する暗号処理システム10の機能を示す機能ブロック図。 Setupアルゴリズムの処理を示すフローチャート。 KeyGenアルゴリズムの処理を示すフローチャート。 Encアルゴリズムの処理を示すフローチャート。 Decアルゴリズムの処理を示すフローチャート。 Ciphertext-Policy関数型暗号方式のアルゴリズムを実行する暗号処理システム10の構成図。 Ciphertext-Policy関数型暗号方式を実行する暗号処理システム10の機能を示す機能ブロック図。 KeyGenアルゴリズムの処理を示すフローチャート。 Encアルゴリズムの処理を示すフローチャート。 Decアルゴリズムの処理を示すフローチャート。 署名処理システム20の構成図。 署名処理システム20の機能を示す機能ブロック図。 Setupアルゴリズムの処理を示すフローチャート。 KeyGenアルゴリズムの処理を示すフローチャート。 Encアルゴリズムの処理を示すフローチャート。 Decアルゴリズムの処理を示すフローチャート。 鍵生成装置100、暗号化装置200、復号装置300、署名装置400、検証装置500のハードウェア構成の一例を示す図。
 以下、図に基づき、発明の実施の形態を説明する。
 以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
 以下の説明における記法について説明する。
 Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
Figure JPOXMLDOC01-appb-M000024
 Aが集合であるとき、数102は、Aからyを一様に選択することを表す。つまり、数102において、yは一様乱数である。
Figure JPOXMLDOC01-appb-M000025
 数103は、yがzにより定義された集合であること、又はyがzを代入された集合であることを表す。
Figure JPOXMLDOC01-appb-M000026
 aが定数であるとき、数104は、機械(アルゴリズム)Aが入力xに対しaを出力することを表す。
Figure JPOXMLDOC01-appb-M000027
 数105、つまりFは、位数qの有限体を示す。
Figure JPOXMLDOC01-appb-M000028
 ベクトル表記は、有限体Fにおけるベクトル表示を表す。つまり、数106である。
Figure JPOXMLDOC01-appb-M000029
 数107は、数108に示す2つのベクトルxとvとの数109に示す内積を表す。
Figure JPOXMLDOC01-appb-M000030
Figure JPOXMLDOC01-appb-M000031
Figure JPOXMLDOC01-appb-M000032
 Xは、行列Xの転置行列を表す。
 b(i=1,...,n)が空間Vのベクトルの要素であるとき、つまり、数110であるとき、数111は、数112によって生成される部分空間を表す。
Figure JPOXMLDOC01-appb-M000033
Figure JPOXMLDOC01-appb-M000034
Figure JPOXMLDOC01-appb-M000035
 数113に示す基底Bと基底Bとに対して、数114である。
Figure JPOXMLDOC01-appb-M000036
Figure JPOXMLDOC01-appb-M000037
 また、以下の説明において、“nt”が下付き又は上付きで示されている場合、このntはnを意味する。同様に、“Vt”が下付き又は上付きで示されている場合、このVtはVを意味する。同様に、“δi,j”が上付きで示されている場合、このδi,jは、δi,jを意味する。
 また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
 また、基底を表すB0,Bd+1が下付きで示されている場合、このB0,Bd+1はそれぞれB,Bd+1を表す。同様に、基底を表すB*0,B*d+1が下付きで示されている場合、このB*0,B*d+1はそれぞれB ,B d+1を表す。
 また、以下の説明において、暗号処理とは、鍵生成処理、暗号化処理、復号処理を含むものであり、署名処理とは、鍵生成処理、署名処理、検証処理を含むものである。
 実施の形態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」について詳細に説明する。
 <第1.関数型暗号方式>
 関数型暗号方式は、暗号化鍵(encryption-key,ek)と、復号鍵(decryption-key,dk)との間の関係をより高度化し、より柔軟にした暗号方式である。
 関数型暗号方式において、暗号化鍵と復号鍵とは、それぞれ、属性xと属性vとが設定されている。そして、関係Rに対してR(x,v)が成立する場合に限り、復号鍵dk:=(dk,v)は暗号化鍵ek:=(ek,x)で暗号化された暗号文を復号することができる。
 関数型暗号方式には、データベースのアクセスコントロール、メールサービス、コンテンツ配布等の様々なアプリケーションが存在する(非特許文献2,7,9,16,19,23-26,28参照)。
 Rが等号関係である場合、つまり、x=vである場合に限りR(x,v)が成立する場合、関数型暗号方式はIDベース暗号方式である。
 IDベース暗号方式よりも一般化された関数型暗号方式として、属性ベース暗号方式がある。
 属性ベース暗号方式では、暗号化鍵と復号鍵とに設定される属性が属性の組である。例えば、暗号化鍵と復号鍵とに設定される属性が、それぞれ、X:=(x,...,x)と、V:=(v,...,v)とである。
 そして、属性のコンポーネントについて、コンポーネント毎の等号関係(例えば、{x=v}t∈{1,...,d})がアクセスストラクチャSに入力される。そして、アクセスストラクチャSが入力を受理した場合にのみ、R(X,V)が成立する。つまり、暗号化鍵で暗号化された暗号文を復号鍵で復号することができる。
 アクセスストラクチャSが復号鍵dkに埋め込まれている場合、属性ベース暗号(ABE)方式は、Key-Policy ABE(KP-ABE)と呼ばれる。一方、アクセスストラクチャSが暗号文に埋め込まれている場合、属性ベース暗号(ABE)方式は、Ciphertext-Policy ABE(CP-ABE)と呼ばれる。
 非特許文献19に記載された内積述語暗号(Inner-Product Encryption,IPE)も関数型暗号の1つのクラスである。ここでは、暗号化鍵と復号鍵とに設定される属性がぞれぞれ体又は環上のベクトルである。例えば、x:=(x,...,x)∈F とv:=(v,...,v)∈F とがそれぞれ暗号化鍵と復号鍵とに設定される。そして、x・v=0である場合に限り、R(x,v)が成立する。
 <第2.双対ペアリングベクトル空間>
 まず、対称双線形ペアリング群(Symmetric Bilinear Pairing Groups)について説明する。
 対称双線形ペアリング群(q,G,G,g,e)は、素数q、位数qの巡回加法群Gと位数qの巡回乗法群Gと、g≠0∈Gと、多項式時間で計算可能な非退化双線形ペアリング(Nondegenerate Bilinear Pairing)e:G×G→Gとの組である。非退化双線形ペアリングは、e(sg,tg)=e(g,g)stであり、e(g,g)≠1である。
 以下の説明において、数115を、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を出力するアルゴリズムとする。
Figure JPOXMLDOC01-appb-M000038
 次に、双対ペアリングベクトル空間について説明する。
 双対ペアリングベクトル空間(q,V,G,A,e)は、対称双線形ペアリング群(param:=(q,G,G,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,G,A,e)は、素数q、数116に示すF上のN次元ベクトル空間V、位数qの巡回群G、空間Vの標準基底A:=(a,...,a)の組であり、以下の演算(1)(2)を有する。ここで、aは、数117に示す通りである。
Figure JPOXMLDOC01-appb-M000039
Figure JPOXMLDOC01-appb-M000040
 演算(1):非退化双線形ペアリング
 空間Vにおけるペアリングは、数118によって定義される。
Figure JPOXMLDOC01-appb-M000041
 これは、非退化双線形である。つまり、e(sx,ty)=e(x,y)stであり、全てのy∈Vに対して、e(x,y)=1の場合、x=0である。また、全てのiとjとに対して、e(a,a)=e(g,g)δi,jである。ここで、i=jであれば、δi,j=1であり、i≠jであれば、δi,j=0である。また、e(g,g)≠1∈Gである。
 演算(2):ディストーション写像
 数119に示す空間Vにおける線形変換φi,jは、数120を行うことができる。
Figure JPOXMLDOC01-appb-M000042
Figure JPOXMLDOC01-appb-M000043
 ここで、線形変換φi,jをディストーション写像と呼ぶ。
 以下の説明において、数121を、1λ(λ∈自然数)、N∈自然数、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を入力として、セキュリティパラメータがλであり、N次元の空間Vとする双対ペアリングベクトル空間のパラメータparam:=(q,V,G,A,e)の値を出力するアルゴリズムとする。
Figure JPOXMLDOC01-appb-M000044
 なお、ここでは、上述した対称双線形ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。なお、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
 <第3.関数型暗号を実現するための概念>
 <第3-1.スパンプログラム>
 図1は、行列M^の説明図である。
 {p,...,p}を変数の集合とする。M^:=(M,ρ)は、ラベル付けされた行列である。ここで、行列Mは、F上の(L行×r列)の行列である。また、ρは、行列Mの各列に付されたラベルであり、{p,...,p,¬p,...,¬p}のいずれか1つのリテラルへ対応付けられる。なお、Mの全ての行に付されたラベルρi(i=1,...,L)がいずれか1つのリテラルへ対応付けられる。つまり、ρ:{1,...,L}→{p,...,p,¬p,...,¬p}である。
 全ての入力列δ∈{0,1}に対して、行列Mの部分行列Mδは定義される。行列Mδは、入力列δによってラベルρに値“1”が対応付けられた行列Mの行から構成される部分行列である。つまり、行列Mδは、δ=1であるようなpに対応付けられた行列Mの行と、δ=0であるような¬pに対応付けられた行列Mの行とからなる部分行列である。
 図2は、行列Mδの説明図である。なお、図2では、n=7,L=6,r=5としている。つまり、変数の集合は、{p,...,p}であり、行列Mは(6行×5列)の行列である。また、図2において、ラベルρは、ρが¬pに、ρがpに、ρがpに、ρが¬pに、ρが¬pに、ρがpにそれぞれ対応付けられているとする。
 ここで、入力列δ∈{0,1}が、δ=1,δ=0,δ=1,δ=0,δ=0,δ=1,δ=1であるとする。この場合、破線で囲んだリテラル(p,p,p,p,¬p,¬p,¬p)に対応付けられている行列Mの行からなる部分行列が行列Mδである。つまり、行列Mの1行目(M),2行目(M),4行目(M)からなる部分行列が行列Mδである。
 言い替えると、写像γ:{1,...,L}→{0,1}が、[ρ(j)=p]∧[δ=1]又は[ρ(j)=¬p]∧[δ=0]である場合、γ(j)=1であり、他の場合、γ(j)=0であるとする。この場合に、Mδ:=(Mγ(j)=1である。ここで、Mは、行列Mのj番目の行である。
 つまり、図2では、写像γ(j)=1(j=1,2,4)であり、写像γ(j)=0(j=3,5,6)である。したがって、(Mγ(j)=1は、M,M,Mであり、行列Mδである。
 すなわち、写像γ(j)の値が“0”であるか“1”であるかによって、行列Mのj番目の行が行列Mδに含まれるか否かが決定される。
 1∈span<Mδ>である場合に限り、スパンプログラムM^は入力列δを受理し、他の場合には入力列δを拒絶する。つまり、入力列δによって行列M^から得られる行列Mδの行を線形結合して1が得られる場合に限り、スパンプログラムM^は入力列δを受理する。なお、1とは、各要素が値“1”である行ベクトルである。
 例えば、図2の例であれば、行列Mの1,2,4行目からなる行列Mδの各行を線形結合して1が得られる場合に限り、スパンプログラムM^は入力列δを受理する。つまり、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^は入力列δを受理する。
 ここで、ラベルρが正のリテラル{p,...,p}にのみ対応付けられている場合、スパンプログラムはモノトーンと呼ばれる。一方、ラベルρがリテラル{p,...,p,¬p,...,¬p}に対応付けられている場合、スパンプログラムはノンモノトーンと呼ばれる。ここでは、スパンプログラムはノンモノトーンとする。そして、ノンモノトーンスパンプログラムを用いて、アクセスストラクチャ(ノンモノトーンアクセスストラクチャ)を構成する。アクセスストラクチャとは、簡単に言うと暗号へのアクセス制御を行うものである。つまり、暗号文を復号できるか否かの制御を行うものである。
 詳しくは後述するが、スパンプログラムがモノトーンではなく、ノンモノトーンであることにより、スパンプログラムを利用して構成する関数型暗号方式の利用範囲が広がる。
 <第3-2.属性ベクトルの内積とアクセスストラクチャ>
 ここでは、属性ベクトルの内積を用いて上述した写像γ(j)を計算する。つまり、属性ベクトルの内積を用いて、行列Mのどの行を行列Mδに含めるかを決定する。
 U(t=1,...,dでありU⊂{0,1})は、部分全集合(sub-universe)であり、属性の集合である。そして、Uは、それぞれ部分全集合の識別情報(t)と、n次元ベクトル(v)とを含む。つまり、Uは、(t,v)である。ここで、t∈{1,...,d}であり、v∈F ntである。
 U:=(t,v)をスパンプログラムM^:=(M,ρ)における変数pとする。つまり、p:=(t,v)である。そして、変数(p:=(t,v),(t’,v’),...)としたスパンプログラムM^:=(M,ρ)をアクセスストラクチャSとする。
 つまり、アクセスストラクチャS:=(M,ρ)であり、ρ:{1,...,L}→{(t,v),(t’,v’),...,¬(t,v),¬(t’,v’),...}である。
 次に、Γを属性の集合とする。つまり、Γ:={(t,x )|x ∈Fqnt,1≦t≦d}である。
 アクセスストラクチャSにΓが与えられた場合、スパンプログラムM^:=(M,ρ)に対する写像γ:{1,...,L}→{0,1}は、以下のように定義される。i=1,...,Lの各整数iについて、[ρ(i)=(t,v )]∧[(t,x )∈Γ]∧[v ・x =0]、又は、[ρ(i)=¬(t,v )]∧[(t,x )∈Γ]∧[v ・x ≠0]である場合、γ(j)=1であり、他の場合、γ(j)=0とする。
 つまり、属性ベクトルvとxとの内積に基づき、写像γが計算される。そして、上述したように、写像γにより、行列Mのどの行を行列Mδに含めるかが決定される。すなわち、属性ベクトルvとxとの内積により、行列Mのどの行を行列Mδに含めるかが決定され、1∈span<(Mγ(i)=1>である場合に限り、アクセスストラクチャS:=(M,ρ)はΓを受理する。
 <第3-3.秘密分散方式>
 アクセスストラクチャ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を閾値と呼ぶ。
 また、d,...,d10の10個の分散情報を生成した場合に、d,...,dまでの8個の分散情報であれば秘密情報sを復元できるが、d,...,d10までの8個の分散情報であれば秘密情報sを復元できないというような秘密分散方式もある。つまり、手に入れた分散情報の数だけでなく、分散情報の組合せに応じて秘密情報sを復元できるか否かを制御する秘密分散方式もある。
 図3は、sの説明図である。図4は、s→Tの説明図である。
 行列Mを(L行×r列)の行列とする。f→Tを数122に示す列ベクトルとする。
Figure JPOXMLDOC01-appb-M000045
 数123に示すsを共有される秘密情報とする。
Figure JPOXMLDOC01-appb-M000046
 また、数124に示すs→TをsのL個の分散情報のベクトルとする。
Figure JPOXMLDOC01-appb-M000047
 そして、分散情報sをρ(i)に属するものとする。
 アクセスストラクチャS:=(M,ρ)がΓを受理する場合、つまりγ:{1,...,L}→{0,1}について1∈span<(Mγ(i)=1>である場合、I⊆{i∈{1,...,L}|γ(i)-=1}である定数{α∈F|i∈I}が存在する。
 これは、図2の例で、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^は入力列δを受理すると説明したことからも明らかである。つまり、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^が入力列δを受理するのであれば、α(M)+α(M)+α(M)=1となるα,α,αが存在する。
 そして、数125である。
Figure JPOXMLDOC01-appb-M000048
 なお、定数{α}は、行列Mのサイズにおける多項式時間で計算可能である。
 この実施の形態及び以下の実施の形態に係る関数型暗号方式は、上述したように、スパンプログラムに内積述語と秘密分散方式とを適用してアクセスストラクチャを構成する。そのため、スパンプログラムにおける行列Mや、内積述語における属性情報x及び属性情報v(述語情報)を設計するにより、アクセス制御を自由に設計することができる。つまり、非常に高い自由度でアクセス制御の設計を行うことができる。なお、行列Mの設計は、秘密分散方式の閾値等の条件設計に相当する。
 例えば、上述した属性ベース暗号方式は、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャにおいて、内積述語の設計をある条件に限定した場合に相当する。つまり、この実施の形態及び以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャに比べ、属性ベース暗号方式におけるアクセスストラクチャは、内積述語における属性情報x及び属性情報v(述語情報)を設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、属性ベース暗号方式は、属性情報{x t∈{1,...,d}と{v t∈{1,...,d}とを、等号関係に対する2次元ベクトル、例えばx :=(1,x)とv :=(v,-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.関数型暗号方式の基本構成>
 <第4-1.Key-Policy関数型暗号方式の基本構成>
 Key-Policy関数型暗号方式の構成を簡単に説明する。なお、Key-Policyとは、復号鍵にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
 Key-Policy関数型暗号方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
 (Setup)
 Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットμ:=(d;n,...,n)とが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
 (KeyGen)
 KeyGenアルゴリズムは、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skを出力する確率的アルゴリズムである。
 (Enc)
 Encアルゴリズムは、メッセージmと、属性の集合であるΓ:={(t,x )|x ∈F nt,1≦t≦d}と、公開パラメータpkとを入力として、暗号化データcを出力する確率的アルゴリズムである。
 (Dec)
 Decアルゴリズムは、属性の集合であるΓの下で暗号化された暗号化データcと、アクセスストラクチャSに対する復号鍵skと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
 Key-Policy関数型暗号方式は、全てのアクセスストラクチャSと属性の集合Γと、正しく生成された公開パラメータpkとマスター鍵skと数126に示す暗号文cとに対して、アクセスストラクチャSが属性の集合Γを受理する場合、m=Dec(pk,sk,c)であり、アクセスストラクチャSが属性の集合Γを拒絶する場合、m=Dec(pk,sk,c)となる確率は無視し得る程度である。
Figure JPOXMLDOC01-appb-M000049
 <第4-2.暗号処理システム10>
 上述したKey-Policy関数型暗号方式のアルゴリズムを実行する暗号処理システム10について説明する。
 図5は、Key-Policy関数型暗号方式を実行する暗号処理システム10の構成図である。
 暗号処理システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
 鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットμ:=(d;n,...,n)とを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSを入力としてKeyGenアルゴリズムを実行して、復号鍵skを生成して復号装置300へ秘密裡に配布する。
 暗号化装置200は、メッセージmと、属性の集合Γと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号化データcを生成する。暗号化装置200は、生成した暗号化データcを復号装置300へ送信する。
 復号装置300は、公開パラメータpkと、復号鍵skと、暗号化データcとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
 <第4-3.Key-Policy関数型暗号方式及び暗号処理システム10の詳細>
 図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であるとする。
 鍵生成装置100の機能と動作とについて説明する。鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130(第1情報入力部)、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、fベクトル生成部141、sベクトル生成部142、乱数生成部143、鍵要素生成部144を備える。
 まず、図7に基づき、Setupアルゴリズムの処理について説明する。
 (S101:正規直交基底生成ステップ)
 マスター鍵生成部110は、処理装置により、数127を計算して、paramμ→と、t=0,...,dの各整数tについて基底B及び基底B とを生成する。
Figure JPOXMLDOC01-appb-M000050
 つまり、マスター鍵生成部110は以下の処理を実行する。
 (1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)と、属性のフォーマットμ:=(d;n,...,n)とを入力する。ここで、dは1以上の整数であり、t=1,...,dまでの各整数tについてnは1以上の整数である。
 (2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)を入力としてアルゴリズムGbpgを実行して、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を生成する。
 (3)マスター鍵生成部110は、処理装置により、乱数ψを生成するとともに、Nに5を、t=1,...,dの各整数tについてNに4nを設定する。
 続いて、マスター鍵生成部110は、t=0,...,dの各整数tについて以下の(4)から(8)までの処理を実行する。
 (4)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)と、(3)で設定したNと、(2)で生成したparam:=(q,G,G,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)の値を生成する。
 (5)マスター鍵生成部110は、処理装置により、(3)で設定したNと、Fとを入力として、線形変換X:=(χt,i,ji,jをランダムに生成する。なお、GLは、General Linearの略である。つまり、GLは、一般線形群であり、行列式が0でない正方行列の集合であり、乗法に関し群である。また、(χt,i,ji,jは、行列χt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,nである。
 (6)マスター鍵生成部110は、処理装置により、乱数ψと線形変換Xとに基づき、(νt,i,ji,j:=ψ・(X -1を生成する。なお、(νt,i,ji,jも(χt,i,ji,jと同様に、行列νt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,nである。
 (7)マスター鍵生成部110は、処理装置により、(5)で生成した線形変換Xに基づき、(4)で生成した標準基底Aから基底Bを生成する。
 (8)マスター鍵生成部110は、処理装置により、(6)で生成した(νt,i,ji,jに基づき、(4)で生成した標準基底Aから基底B を生成する。
 (9)マスター鍵生成部110は、処理装置により、gにe(g,g)ψを設定する。また、マスター鍵生成部110は、paramμ→に(4)で生成した{paramVtt=0,...,dと、gとを設定する。なお、t=0,...,dとi=1,...,Nとの各整数t,iについて、g=e(bt,i,b t,i)である。
 すなわち、(S101)で、マスター鍵生成部110は、数128に示すアルゴリズムGobを実行して、paramμ→と、t=0,...,dの各整数tについて基底B及び基底B とを生成する。
Figure JPOXMLDOC01-appb-M000051
 (S102:公開パラメータ生成ステップ)
 マスター鍵生成部110は、処理装置により、(S101)で生成した基底Bの部分基底B^と、t=1,...,dの各整数tについて、部分基底B^とを数129に示すように生成する。
Figure JPOXMLDOC01-appb-M000052
 マスター鍵生成部110は、生成した部分基底B^及び部分基底B^と、(S101)で入力されたセキュリティパラメータλ(1λ)と、(S101)で生成したparamμ→とを合わせて、公開パラメータpkとする。
 (S103:マスター鍵生成ステップ)
 マスター鍵生成部110は、処理装置により、(S101)で生成した基底B の部分基底B^ と、t=1,...,dの各整数tについて、部分基底B^ とを数130に示すように生成する。
Figure JPOXMLDOC01-appb-M000053
 マスター鍵生成部110は、生成した部分基底B^ と部分基底B^ とをマスター鍵skとする。
 (S104:マスター鍵記憶ステップ)
 マスター鍵記憶部120は、(S102)でt=0,...,dの各整数tについて生成した部分基底B^ を含む公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S103)でt=0,...,dの各整数tについて生成した部分基底B^ を含むマスター鍵skを記憶装置に記憶する。
 つまり、(S101)から(S103)において、マスター鍵生成部110は数131に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、(S104)で、マスター鍵記憶部120が生成された公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
 なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
Figure JPOXMLDOC01-appb-M000054
 次に、図8に基づき、KeyGenアルゴリズムの処理について説明する。
 (S201:情報入力ステップ)
 情報入力部130は、入力装置により、上述したアクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号鍵skの使用者の属性情報が設定されている。
 (S202:fベクトル生成ステップ)
 fベクトル生成部141は、処理装置により、r個の要素を有するベクトルfを数132に示すようにランダムに生成する。
Figure JPOXMLDOC01-appb-M000055
 (S203:sベクトル生成ステップ)
 sベクトル生成部142は、処理装置により、(S201)で入力したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S202)で生成したベクトルfとに基づき、ベクトルs→T:=(s,...,sを数133に示すように生成する。
Figure JPOXMLDOC01-appb-M000056
 また、sベクトル生成部142は、処理装置により、(S202)で生成したベクトルfに基づき、値sを数134に示すように生成する。
Figure JPOXMLDOC01-appb-M000057
 (S204:乱数生成ステップ)
 乱数生成部143は、処理装置により、乱数ηと、i=1,...,Lの各整数iについて、乱数θとを数135に示すように生成する。
Figure JPOXMLDOC01-appb-M000058
 (S205:鍵要素生成ステップ)
 鍵要素生成部144は、処理装置により、復号鍵skの要素k を数136に示すように生成する。
Figure JPOXMLDOC01-appb-M000059
 なお、上述したように、数113に基底Bと基底Bとに対して、数114である。したがって、数136は、基底B の基底ベクトルb 0,1の係数として-sを設定し、基底ベクトルb 0,2の係数として0を設定し、基底ベクトルb 0,3の係数として1を設定し、基底ベクトルb 0,4の係数としてηを設定し、基底ベクトルb 0,5の係数として0を設定することを意味する。
 また、鍵要素生成部144は、処理装置により、i=1,...,Lの各整数iについて、復号鍵skの要素k を数137に示すように生成する。
Figure JPOXMLDOC01-appb-M000060
 つまり、数137は、数136と同様に、ρ(i)が肯定形の組(t,v )である場合には、基底B の基底ベクトルb t,1の係数としてs+θi,1を設定し、基底ベクトルb t,2,...,b t,ntの係数としてθi,2,...,θi,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を設定することを意味する。
 一方、ρ(i)が否定形の組¬(t,v )である場合には、基底B の基底ベクトルb t,1,...,b t,ntの係数としてsi,1,...,si,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を設定することを意味する。
 (S206:鍵配布ステップ)
 鍵配布部150は、(S201)で入力したアクセスストラクチャSと、(S205)で生成されたk ,k ,...,k とを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skは、他の方法により復号装置300へ配布されてもよい。
 つまり、(S201)から(S205)において、情報入力部130と復号鍵生成部140とは数138に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S206)で、鍵配布部150が生成された復号鍵skを復号装置300へ配布する。
Figure JPOXMLDOC01-appb-M000061
 暗号化装置200の機能と動作とについて説明する。暗号化装置200は、公開パラメータ取得部210、情報入力部220(第2情報入力部)、暗号化データ生成部230、データ送信部240(データ出力部)を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232を備える。
 図9に基づき、Encアルゴリズムの処理について説明する。
 (S301:公開パラメータ取得ステップ)
 公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
 (S302:情報入力ステップ)
 情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性の集合Γ:={(t,x :=(xt,1,...,xt,nt∈Fqnt))|1≦t≦d}を入力する。なお、tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。また、属性の集合Γは、例えば、復号可能なユーザの属性情報が設定されている。
 (S303:乱数生成ステップ)
 乱数生成部231は、処理装置により、乱数δ、乱数φ,φt,1,...,φt,nt,ζを数139に示すように生成する。
Figure JPOXMLDOC01-appb-M000062
 (S304:cベクトル生成ステップ)
 暗号要素生成部232は、処理装置により、暗号化データcの要素cを数140に示すように生成する。
Figure JPOXMLDOC01-appb-M000063
 また、暗号要素生成部232は、処理装置により、Γに含まれる(t,x )の各整数tについて、暗号化データcの要素cを数141に示すように生成する。
Figure JPOXMLDOC01-appb-M000064
 また、暗号要素生成部232は、処理装置により、暗号化データcの要素cd+1を数142に示すように生成する。
Figure JPOXMLDOC01-appb-M000065
 (S305:データ送信ステップ)
 データ送信部240は、(S302)で入力した属性の集合Γと、(S304)で生成されたc,c,cd+1とを要素とする暗号化データcを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号化データcは、他の方法により復号装置300へ送信されてもよい。
 つまり、(S301)から(S304)において、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230は、数143に示すEncアルゴリズムを実行して、暗号化データcを生成する。そして、(S305)で、データ送信部240が生成された暗号化データcを復号装置300へ送信する。
Figure JPOXMLDOC01-appb-M000066
 復号装置300の機能と動作とについて説明する。復号装置300は、復号鍵取得部310、データ受信部320(データ取得部)、スパンプログラム計算部330、補完係数計算部340、ペアリング演算部350、平文情報計算部360を備える。
 図10に基づき、Decアルゴリズムの処理について説明する。
 (S401:復号鍵取得ステップ)
 復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵sk:=(S,k ,k ,...,k )を取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
 (S402:データ受信ステップ)
 データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号化データcを受信する。
 (S403:スパンプログラム計算ステップ)
 スパンプログラム計算部330は、処理装置により、(S401)で取得した復号鍵skに含まれるアクセスストラクチャSが、(S402)で受信した暗号化データcに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「第3.関数型暗号を実現するための概念」で説明した通りである。
 スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号化データcを復号鍵skで復号できないとして処理を終了する。
 (S404:補完係数計算ステップ)
 補完係数計算部340は、処理装置により、数144となるIと、定数(補完係数){αi∈Iとを計算する。
Figure JPOXMLDOC01-appb-M000067
 (S405:ペアリング演算ステップ)
 ペアリング演算部350は、処理装置により、数145を計算して、セッション鍵K=g ζを生成する。
Figure JPOXMLDOC01-appb-M000068
 なお、数146に示すように、数145を計算することにより鍵K=g ζが得られる。
Figure JPOXMLDOC01-appb-M000069
 (S406:平文情報計算ステップ)
 平文情報計算部360は、処理装置により、m’=cd+1/Kを計算して、メッセージm’(=m)を生成する。なお、cd+1は数142に示す通りg ζmであり、Kはg ζであるから、m’=cd+1/Kを計算すればメッセージmが得られる。
 つまり、(S401)から(S406)において、復号装置300は、数147に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure JPOXMLDOC01-appb-M000070
 以上のように、暗号処理システム10は、スパンプログラムと内積述語と秘密分散とを用いて構成したアクセスストラクチャSを用いて、暗号方式(関数型暗号方式)を実現する。したがって、暗号処理システム10は、非常に高い自由度でアクセス制御の設計を行うことが可能な暗号方式を実現する。
 また、暗号処理システム10が実現する暗号方式は、非常に安全性が高い。上述したように、関数型暗号方式の1つのクラス(最も限定したクラス)にIDベース暗号がある。既存の実用的なIDベース暗号と比較しても、暗号処理システム10が実現する暗号方式はある意味において安全性が高い。
 なお、上記説明では、(S101)の(3)でNを5に、Nを4n(=n+n+n+n)に設定した。したがって、基底A、基底B、基底B は、いずれも4n+5次元である。
 しかし、n+n+n+nをn+u+w+zにしてもよい。つまり、1つ目のnをそのままnとし、2つ目のnをuとし、3つ目のnをwとし、4つ目のnをzとしてもよい。すなわち、Nをn+u+w+zに設定してもよい。ここで、n,u,w,zは、それぞれ異なる値であってもよく、nは上述したように1以上の整数であり、u,w,zはいずれも0以上の整数である。
 この場合、数131に示すSetupアルゴリズムは、数148のように書き換えられる。つまり、基底B^と基底B^ の基底ベクトルの添え字が変更される。
Figure JPOXMLDOC01-appb-M000071
 また、数138に示すKeyGenアルゴリズムは、数149のように書き換えられる。
Figure JPOXMLDOC01-appb-M000072
 また、数143に示すEncアルゴリズムは、数150のように書き換えられる。
Figure JPOXMLDOC01-appb-M000073
 なお、数147に示すDecアルゴリズムには変更はない。
 また、Nは5ではなく、2以上の整数であればよい。Nが2であると、基底Bと基底B とが2次元になる。この場合、KeyGenアルゴリズムにおいて、k :=(-s,1)B*0とし、Encアルゴリズムにおいて、c:=(δ,ζ)B0とすればよい。
 また、上記説明では、KeyGenアルゴリズムにおいて、k :=(-s,0,1,η,0)B*0とした。しかし、所定の値κを用いて、k :=(-s,0,κ,η,0)B*0としてもよい。この場合、Decアルゴリズムで計算されるK:=gζκ となるため、Encアルゴリズムにおいて、cd+1:=gζκ mとすればよい。
 また、上記説明では、vi,ntの値について特に限定しなかった。しかし、安全性の証明の観点から、vi,nt:=1である限定としてもよい。
 また、安全性の証明の観点から、i=1,...,Lの各整数iについてのρ(i)は、それぞれ異なる識別情報tについての肯定形の組(t,v)又は否定形の組¬(t,v)であると限定してもよい。
 言い替えると、ρ(i)=(t,v)又はρ(i)=¬(t,v)である場合に、関数ρを、ρ(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρが単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
 実施の形態2.
 この実施の形態では、「Ciphertext-Policy関数型暗号(Ciphertext-Policy Functional Encryption,CP-FE)方式」について説明する。なお、この実施の形態で説明する「Ciphertext-Policy関数型暗号方式」も、実施の形態1で説明した概念に基づき構成される。
 この実施の形態では、まず、「Ciphertext-Policy関数型暗号方式」の基本構成について説明する。次に、この「Ciphertext-Policy関数型暗号方式」を実現する「暗号処理システム10」の基本構成について説明する。そして、この実施の形態に係る「Ciphertext-Policy関数型暗号方式」及び「暗号処理システム10」について詳細に説明する。
 <Ciphertext-Policy関数型暗号方式の基本構成>
 Ciphertext-Policy関数型暗号方式の構成を簡単に説明する。なお、Ciphertext-Policyとは、暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
 Ciphertext-Policy関数型暗号方式は、Key-Policy関数型暗号方式と同様に、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
 (Setup)
 Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットμ:=(d;n,...,n)とが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
 (KeyGen)
 KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x )|x ∈F nt,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skΓを出力する確率的アルゴリズムである。
 (Enc)
 Encアルゴリズムは、メッセージmと、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkとを入力として、暗号化データcを出力する確率的アルゴリズムである。
 (Dec)
 Decアルゴリズムは、アクセスストラクチャSの下で暗号化された暗号化データcと、属性の集合であるΓに対する復号鍵skΓと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
 Ciphertext-Policy関数型暗号方式は、全てのアクセスストラクチャSと属性の集合Γと、正しく生成された公開パラメータpkとマスター鍵skと数151に示す暗号文cとに対して、アクセスストラクチャSが属性の集合Γを受理する場合、m=Dec(pk,skΓ,c)であり、アクセスストラクチャSが属性の集合Γを拒絶する場合、m=Dec(pk,skΓ,c)となる確率は無視し得る程度である。
Figure JPOXMLDOC01-appb-M000074
 <暗号処理システム10>
 上述したCiphertext-Policy関数型暗号方式のアルゴリズムを実行する暗号処理システム10について説明する。
 図11は、暗号処理システム10の構成図である。
 暗号処理システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
 鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットμ:=(d;n,...,n)とを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合Γを入力としてKeyGenアルゴリズムを実行して、復号鍵skΓを生成して復号装置300へ秘密裡に配布する。
 暗号化装置200は、メッセージmと、アクセスストラクチャSと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号化データcを生成する。暗号化装置200は、生成した暗号化データcを復号装置300へ送信する。
 復号装置300は、公開パラメータpkと、復号鍵skと、暗号化データcとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
 <Ciphertext-Policy関数型暗号方式及び暗号処理システム10の詳細>
 図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であるとする。
 鍵生成装置100の機能と動作とについて説明する。鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130(第1情報入力部)、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、乱数生成部143、鍵要素生成部144を備える。
 上述したように、Setupアルゴリズムは、Key-Policy関数型暗号方式の場合と同様であり、数131に示す通りである。
 図13に基づき、KeyGenアルゴリズムの処理について説明する。
 (S501:情報入力ステップ)
 情報入力部130は、入力装置により、属性の集合Γ:={(t,x :=(xt,1,...,xt,nt∈F nt))|1≦t≦d}を入力する。なお、属性の集合Γは、例えば、復号鍵skΓの使用者の属性情報が設定されている。
 (S502:乱数生成ステップ)
 乱数生成部143は、処理装置により、乱数δ、乱数φ,φt,1,...,φt,ntを数152に示すように生成する。
Figure JPOXMLDOC01-appb-M000075
 (S503:鍵要素生成ステップ)
 鍵要素生成部144は、処理装置により、復号鍵skΓの要素k を数153に示すように生成する。
Figure JPOXMLDOC01-appb-M000076
 また、鍵要素生成部144は、処理装置により、Γに含まれる(t,x )の各整数tについて、復号鍵skΓの要素k を数154に示すように生成する。
Figure JPOXMLDOC01-appb-M000077
 (S504:鍵配布ステップ)
 鍵配布部150は、(S501)で入力した属性の集合Γと、(S503)で生成されたk ,k とを要素とする復号鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skΓは、他の方法により復号装置300へ配布されてもよい。
 つまり、(S501)から(S503)において、情報入力部130と復号鍵生成部140とは数155に示すKeyGenアルゴリズムを実行して、復号鍵skΓを生成する。そして、(S504)で、鍵配布部150が生成された復号鍵skΓを復号装置300へ配布する。
Figure JPOXMLDOC01-appb-M000078
 暗号化装置200の機能と動作とについて説明する。暗号化装置200は、公開パラメータ取得部210、情報入力部220(第2情報入力部)、暗号化データ生成部230、データ送信部240(データ出力部)を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232、fベクトル生成部233、sベクトル生成部234を備える。
 図14に基づき、Encアルゴリズムの処理について説明する。
 (S601:公開パラメータ取得ステップ)
 公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
 (S602:情報入力ステップ)
 情報入力部220は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号可能なユーザの属性情報が設定されている。
 また、情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。
 (S603:fベクトル生成ステップ)
 fベクトル生成部233は、処理装置により、r個の要素を有するベクトルfを数156に示すようにランダムに生成する。
Figure JPOXMLDOC01-appb-M000079
 (S604:sベクトル生成ステップ)
 sベクトル生成部234は、処理装置により、(S602)で入力したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S603)で生成したベクトルfとに基づき、ベクトルs→T:=(s,...,sを数157に示すように生成する。
Figure JPOXMLDOC01-appb-M000080
 また、sベクトル生成部234は、処理装置により、(S603)で生成したベクトルfに基づき、値sを数158に示すように生成する。
Figure JPOXMLDOC01-appb-M000081
 (S605:乱数生成ステップ)
 乱数生成部231は、処理装置により、乱数ηと、i=1,...,Lの各整数iについて乱数θと、乱数ζとを数159に示すように生成する。
Figure JPOXMLDOC01-appb-M000082
 (S606:暗号要素生成ステップ)
 暗号要素生成部232は、処理装置により、暗号化データcの要素cを数160に示すように生成する。
Figure JPOXMLDOC01-appb-M000083
 また、暗号要素生成部232は、処理装置により、i=1,...,Lの各整数iについて、暗号化データcの要素cを数161に示すように生成する。
Figure JPOXMLDOC01-appb-M000084
 また、暗号要素生成部232は、処理装置により、暗号化データcの要素cd+1を数162に示すように生成する。
Figure JPOXMLDOC01-appb-M000085
 (S607:データ送信ステップ)
 データ送信部240は、(S602)で入力したアクセスストラクチャSと、(S606)で生成されたc,c,...,c,cd+1とを要素とする暗号化データcを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号化データcは、他の方法により復号装置300へ送信されてもよい。
 つまり、(S601)から(S606)において、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230は、数163に示すEncアルゴリズムを実行して、暗号化データcを生成する。そして、(S607)で、データ送信部240が生成された暗号化データcを復号装置300へ送信する。
Figure JPOXMLDOC01-appb-M000086
 復号装置300の機能と動作とについて説明する。復号装置300は、復号鍵取得部310、データ受信部320(データ取得部)、スパンプログラム計算部330、補完係数計算部340、ペアリング演算部350、平文情報計算部360を備える。
 図15に基づき、Decアルゴリズムの処理について説明する。
 (S701:復号鍵取得ステップ)
 復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵skΓを取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
 (S702:データ受信ステップ)
 データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号化データcを受信する。
 (S703:スパンプログラム計算ステップ)
 スパンプログラム計算部330は、処理装置により、(S702)で取得した暗号化データcに含まれるアクセスストラクチャSが、(S701)で受信した復号鍵skΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「第3.関数型暗号を実現するための概念」で説明した通りである。
 スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S703で受理)、処理を(S704)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S703で拒絶)、暗号化データcを復号鍵skで復号できないとして処理を終了する。
 (S704)から(S706)とは、実施の形態1における図9に示す(S404)と(S406)と同様である。
 つまり、(S701)から(S706)において、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230は、数164に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure JPOXMLDOC01-appb-M000087
 実施の形態2に係る暗号処理システム10は、実施の形態1に係る暗号処理システム10と同様に、非常に高い自由度でアクセス制御の設計を行うことが可能な暗号方式を実現する。また、実施の形態2に係る暗号処理システム10は、実施の形態1に係る暗号処理システム10と同様に、安全性が高い。
 なお、実施の形態1と同様に、N=n+n+n+nをn+u+w+zにしてもよい。つまり、1つ目のnをそのままnとし、2つ目のnをuとし、3つ目のnをwとし、4つ目のnをzとしてもよい。すなわち、Nをn+u+w+zに設定してもよい。ここで、n,u,w,zは、それぞれ異なる値であってもよく、nは上述したように1以上の整数であり、u,w,zはいずれも0以上の整数である。
 この場合、Setupアルゴリズムは、実施の形態1と同様に数148のように書き換えられる。
 また、数155に示すKeyGenアルゴリズムは、数165のように書き換えられる。
Figure JPOXMLDOC01-appb-M000088
 また、数163に示すEncアルゴリズムは、数166のように書き換えられる。
Figure JPOXMLDOC01-appb-M000089
 なお、数164に示すDecアルゴリズムには変更はない。
 また、Nは5ではなく、2以上の整数であればよい。Nが2であると、基底Bと基底B とが2次元になる。この場合、KeyGenアルゴリズムにおいて、k :=(δ,1)B*0とし、Encアルゴリズムにおいて、c:=(-s,ζ)B0とすればよい。
 また、上記説明では、KeyGenアルゴリズムにおいて、k :=(δ,0,1,φ,0)B*0とした。しかし、所定の値κを用いて、k :=(δ,0,κ,φ,0)B*0としてもよい。この場合、Decアルゴリズムで計算されるK:=gζκ となるため、Encアルゴリズムにおいて、cd+1:=gζκ mとすればよい。
 また、上記説明では、vi,ntの値について特に限定しなかった。しかし、安全性の証明の観点から、vi,nt:=1である限定としてもよい。
 また、安全性の証明の観点から、i=1,...,Lの各整数iについてのρ(i)は、それぞれ異なる識別情報tについての肯定形の組(t,v)又は否定形の組¬(t,v)であると限定してもよい。
 言い替えると、関数ρを、ρ(i)=(t,v)又はρ(i)=¬(t,v)である場合にρ(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρが単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
 また、実施の形態1では、アクセスストラクチャSを復号鍵skに持たせ、属性集合Γを暗号化データcに持たせたKey-Policy関数型暗号について説明した。また、実施の形態2では、アクセスストラクチャSを暗号化データcに持たせ、属性集合Γを復号鍵skΓに持たせたCiphertext-Policy関数型暗号について説明した。
 しかし、2つのアクセスストラクチャSとSとを用意し、一方のアクセスストラクチャSを復号鍵に持たせ、他方のアクセスストラクチャSを暗号化データcに持たせるとともに、アクセスストラクチャSに対応する属性集合Γを復号鍵に持たせ、アクセスストラクチャSに対応する属性集合Γを暗号化データcに持たせてもよい。そして、アクセスストラクチャSが属性集合Γを受理し、かつ、アクセスストラクチャSが属性集合Γを受理した場合にのみ、暗号化データcを復号鍵で復号可能としてもよい。
 つまり、Key-Policy関数型暗号とCiphertext-Policy関数型暗号とを組み合わせた暗号方式としてもよい。
 実施の形態3.
 この実施の形態では、実施の形態2で説明した「Ciphertext-Policy関数型暗号方式」を応用した署名方式について説明する。
 この実施の形態では、まず、「Ciphertext-Policy関数型暗号方式に基づく署名方式」の基本構成について説明する。次に、この「署名方式」を実現する「署名処理システム20」の基本構成について説明する。そして、この実施の形態に係る「署名方式」及び「署名処理システム20」について詳細に説明する。
 <Ciphertext-Policy関数型暗号方式に基づく署名方式の基本構成>
 Ciphertext-Policy関数型暗号方式に基づく署名方式は、Setup、KeyGen、Sig、Verの4つのアルゴリズムを備える。
 (Setup)
 Setupアルゴリズムは、セキュリティパラメータλと、属性のフォーマットμ:=(d;n,...,n)とが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
 (KeyGen)
 KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x )|x ∈F 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>
 上述した署名処理のアルゴリズムを実行する署名処理システム20について説明する。
 図16は、署名処理システム20の構成図である。
 署名処理システム20は、鍵生成装置100、署名装置400、検証装置500を備える。
 鍵生成装置100は、セキュリティパラメータλと、属性のフォーマットμ:=(d;n,...,n)とを入力として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”を出力する。
 <署名方式及び署名処理システム20の詳細>
 図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であるとする。
 鍵生成装置100の機能と動作とについて説明する。鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130(第1情報入力部)、署名鍵生成部160、鍵配布部150を備える。また、署名鍵生成部160は、乱数生成部161、鍵要素生成部162、秘匿要素生成部163を備える。
 まず、図18に基づき、Setupアルゴリズムの処理について説明する。
 (S801:正規直交基底生成ステップ)
 マスター鍵生成部110は、処理装置により、数167を計算して、paramμ→と、t=0,...,d+2の各整数tについて基底B及び基底B とを生成する。
Figure JPOXMLDOC01-appb-M000090
 数167について、実施の形態1における(S101)に示す数127と異なる部分のみ説明する。まず、数167では、(3)でn,nd+1に1を設定し、nd+2に2を設定する。そして、t=0,...,d+2の各整数tについて、Nに4nを設定する。そして、(4)から(8)までの処理が、t=0,...,d+2の各整数tについて繰り返される。
 すなわち、(S801)で、マスター鍵生成部110は、数168に示すアルゴリズムGobを実行して、paramμ→と、t=0,...,d+2の各整数tについて基底B及び基底B とを生成する。
Figure JPOXMLDOC01-appb-M000091
 (S802:部分基底B^生成ステップ)
 マスター鍵生成部110は、処理装置により、t=1,...,d+2の各整数tについて、部分基底B^を数169に示すように生成する。
Figure JPOXMLDOC01-appb-M000092
 (S803:部分基底B^ 生成ステップ)
 マスター鍵生成部110は、処理装置により、t=1,...,d+2の各整数tについて、部分基底B^ を数170に示すように生成する。
Figure JPOXMLDOC01-appb-M000093
 (S804:マスター鍵記憶ステップ)
 マスター鍵生成部110は、t=0,...,d+2の各整数tについての部分基底B^と、t=1,...,d+2の各整数tについての部分基底B^ と、基底ベクトルb 0,3と、(S101)で入力されたセキュリティパラメータλ(1λ)と、(S101)で生成したparamμ→とを合わせて、公開パラメータpkとする。
 また、マスター鍵生成部110は、基底ベクトルb 0,1をマスター鍵skとする。
 そして、マスター鍵記憶部120は、公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
 つまり、(S801)から(S803)において、マスター鍵生成部110は数171に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、(S804)で、マスター鍵記憶部120が生成された公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
 なお、公開パラメータは、例えば、ネットワークを介して公開され、署名装置400や検証装置500が取得可能な状態にされる。
Figure JPOXMLDOC01-appb-M000094
 次に、図19に基づき、KeyGenアルゴリズムの処理について説明する。
 (S901:情報入力ステップ)
 情報入力部130は、入力装置により、属性の集合Γ:={(t,x :=(xt,1,...,xt,nt∈F nt))|1≦t≦d}を入力する。なお、属性の集合Γは、例えば、署名鍵skΓの使用者の属性情報が設定されている。
 (S902:乱数生成ステップ)
 乱数生成部161は、処理装置により、t=1,...,d、ι=1,...,nの各整数tとιとについて、乱数δ、乱数φ,φt,ι,φd+2,ι,φd+3,ιを数172に示すように生成する。
Figure JPOXMLDOC01-appb-M000095
 (S903:鍵要素生成ステップ)
 鍵要素生成部162は、処理装置により、署名鍵skΓの要素k を数173に示すように生成する。
Figure JPOXMLDOC01-appb-M000096
 また、鍵要素生成部162は、処理装置により、Γに含まれる(t,x )の各整数tについて、署名鍵skΓの要素k を数174に示すように生成する。
Figure JPOXMLDOC01-appb-M000097
 また、鍵要素生成部162は、処理装置により、署名鍵skΓの要素k d+2と要素k d+3とを数175に示すように生成する。
Figure JPOXMLDOC01-appb-M000098
 (S904:鍵配布ステップ)
 鍵配布部150は、(S901)で入力した属性の集合Γと、(S903)で生成されたk ,k ,k d+2,k d+3とを要素とする署名鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に署名装置400へ配布する。もちろん、復号鍵skΓは、他の方法により署名装置400へ配布されてもよい。
 つまり、(S901)から(S903)において、情報入力部130と署名鍵生成部160とは数176に示すKeyGenアルゴリズムを実行して、署名鍵skΓを生成する。そして、(S904)で、鍵配布部150が生成された署名鍵skΓを署名装置400へ配布する。
Figure JPOXMLDOC01-appb-M000099
 署名装置400の機能と動作について説明する。署名装置400は、署名鍵取得部410、情報入力部420(第2情報入力部)、補完係数計算部430、行列生成部440、署名生成部450、データ送信部460(データ出力部)を備える。また、署名生成部450は、乱数生成部451、署名要素生成部452を備える。
 図20に基づき、Sigアルゴリズムの処理について説明する。
 (S1001:署名鍵取得ステップ)
 署名鍵取得部410は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された署名鍵skΓ:=(Γ,k ,k ,k d+2,k d+3)を取得する。また、署名鍵取得部410は、鍵生成装置100が生成した公開パラメータpkを取得する。
 (S1002:情報入力ステップ)
 情報入力部420は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、ここで入力されるアクセスストラクチャSは、(S1001)で入力した署名鍵skΓに含まれる属性の集合Γを受理するものとする。
 また、情報入力部220は、入力装置により、署名を付すメッセージmを入力する。
 (S1003:補完係数計算ステップ)
 補完係数計算部430は、処理装置により、数177となるIと、定数(補完係数){αi∈Iとを計算する。
Figure JPOXMLDOC01-appb-M000100
 なお、Mとは、行列Mのi行目のことである。
 (S1004:行追加ステップ)
 行列生成部440は、処理装置により、行列Mに追加するベクトルML+1とそのラベルρ(L+1)とを数178に示すように生成する。
Figure JPOXMLDOC01-appb-M000101
 ここでは、v L+1:=(1)とする。
 (S1005:乱数生成ステップ)
 乱数生成部451は、処理装置により、乱数ξを数179に示すように生成する。
Figure JPOXMLDOC01-appb-M000102
 (S1006:署名要素生成ステップ)
 署名要素生成部452は、処理装置により、署名ベクトルs→*の要素であるs を数180に示すように生成する。
Figure JPOXMLDOC01-appb-M000103
 また、署名要素生成部452は、処理装置により、i=1,...,L+1の各整数iについて、署名ベクトルs→*の要素であるs を数181に示すように生成する。
Figure JPOXMLDOC01-appb-M000104
 また、署名要素生成部452は、処理装置により、署名ベクトルs→*の要素であるs L+2を数182に示すように生成する。
Figure JPOXMLDOC01-appb-M000105
 (S1007:データ送信ステップ)
 データ送信部460は、(S1002)で入力したメッセージmと、アクセスストラクチャS:=(M,ρ)と、(S1007)で生成されたs*→とを含む署名データsigを、例えば通信装置によりネットワークを介して検証装置500へ送信する。もちろん、署名データsigは、他の方法により検証装置500へ送信されてもよい。
 つまり、(S1001)から(S1006)において、署名鍵取得部410、情報入力部420、補完係数計算部430、行列生成部440、署名生成部450は、数183に示すSigアルゴリズムを実行して、署名データsigを生成する。そして、(S1007)で、データ送信部460が生成された署名データを検証装置500へ送信する。
Figure JPOXMLDOC01-appb-M000106
 検証装置500の機能と動作とについて説明する。検証装置500は、公開パラメータ取得部510、データ受信部520(データ取得部)、暗号化データ生成部530、ペアリング演算部540を備える。暗号化データ生成部530は、乱数生成部531、暗号要素生成部532、fベクトル生成部533、sベクトル生成部534を備える。
 図21に基づき、Verアルゴリズムの処理について説明する。
 (S1101:公開パラメータ取得ステップ)
 公開パラメータ取得部510は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
 (S1102:データ受信ステップ)
 データ受信部320は、例えば、通信装置によりネットワークを介して、署名装置400が送信した署名データsigを受信する。
 (S1103:fベクトル生成ステップ)
 fベクトル生成部533は、処理装置により、r個の要素を有するベクトルfを数184に示すようにランダムに生成する。
Figure JPOXMLDOC01-appb-M000107
 (S1104:sベクトル生成ステップ)
 sベクトル生成部534は、処理装置により、(S1102)で受信したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S1103)で生成したベクトルfとに基づき、ベクトルs→T:=(s,...,sを数185に示すように生成する。
Figure JPOXMLDOC01-appb-M000108
 また、sベクトル生成部534は、処理装置により、(S1103)で生成したベクトルfに基づき、値sと値sL+1とを数186に示すように生成する。
Figure JPOXMLDOC01-appb-M000109
 (S1105:乱数生成ステップ)
 乱数生成部531は、処理装置により、i=1,...,L+2の各整数iについて、乱数η,ηL+2、1,ηL+2、2,θ,sL+2を数187に示すように生成する。
Figure JPOXMLDOC01-appb-M000110
 (S1106:暗号要素生成ステップ)
 暗号要素生成部532は、処理装置により、暗号化データcの要素cを数188に示すように生成する。
Figure JPOXMLDOC01-appb-M000111
 また、暗号要素生成部532は、処理装置により、i=1,...,L+1の各整数iについて、暗号化データcの要素cを数189に示すように生成する。
Figure JPOXMLDOC01-appb-M000112
 また、暗号要素生成部532は、処理装置により、暗号化データcの要素cL+2を数190に示すように生成する。
Figure JPOXMLDOC01-appb-M000113
 (S1107:ペアリング演算ステップ)
 ペアリング演算部540は、処理装置により、数191を計算する。
Figure JPOXMLDOC01-appb-M000114
 なお、ここでは、ρ(L+1):=¬(d+1,v L+1:=(1))であるとする。
 ペアリング演算部540は、数191を計算した結果が値“1”であれば、値“1”を出力し、その他の値であれば値“0”を出力する。ここで、数191を計算した結果が値“1”であれば、署名が検証できたことを示し、その他の値であれば署名が検証できなかったことを示す。
 なお、数192に示すように、署名データsigが正しいデータであれば、数191を計算することにより値“1”が得られる。
Figure JPOXMLDOC01-appb-M000115
 つまり、(S1101)から(S1107)において、公開パラメータ取得部510、データ受信部520、暗号化データ生成部530、ペアリング演算部540は、数193に示すVerアルゴリズムを実行して、署名データsigを検証する。
Figure JPOXMLDOC01-appb-M000116
 以上のように、署名処理システム20は、スパンプログラムと内積述語と秘密分散とを用いて構成したアクセスストラクチャSを用いて、署名方式を実現する。
 なお、Sigアルゴリズムにおいて、乱数ξや乱数rを用いて署名ベクトルs→*の要素を生成しているのは、署名ベクトルs→*の要素の生成元の情報である署名鍵skΓの要素kの変数δや変数φをランダム化するためである。署名鍵skΓの要素kの変数δや変数φをランダム化することにより、署名データの要素であるs→*からこれらの変数が読み取られることを防止することができる。つまり、署名データがどの署名鍵skΓに基づき生成されたものであるかを読み取られることを防止することができる。すなわち、リンクアビリティを高くすることができる。
 また、上記説明では、(S801)のNを4n(=n+n+n+n)に設定した。
 しかし、n+n+n+nをn+u+w+zにしてもよい。つまり、1つ目のnをそのままnとし、2つ目のnをuとし、3つ目のnをwとし、4つ目のnをzとしてもよい。すなわち、Nをn+u+w+zに設定してもよい。ここで、n,u,w,zは、それぞれ異なる値であってもよく、nは上述したように1以上の整数であり、u,w,zはいずれも0以上の整数である。
 この場合、数171に示すSetupアルゴリズムは、数194のように書き換えられる。つまり、基底B^と基底B^ の基底ベクトルの添え字が変更される。
Figure JPOXMLDOC01-appb-M000117
 また、数176に示すKeyGenアルゴリズムは、数195のように書き換えられる。
Figure JPOXMLDOC01-appb-M000118
 また、数183に示すSigアルゴリズムは、数196のように書き換えられる。
Figure JPOXMLDOC01-appb-M000119
 また、数193に示すVerアルゴリズムは、数197のように書き換えられる。
Figure JPOXMLDOC01-appb-M000120
 また、NやNd+1は4ではなく、1以上の整数であればよい。Nが1であると、基底Bと基底B とが1次元になる。この場合、KeyGenアルゴリズムにおいて、k 0,j:=(δ)B*0とし、Verアルゴリズムにおいて、c:=(-s-sL+2B0とすればよい。
 また、Nd+2は8ではなく、2以上の整数であればよい。Nd+2が2であると、基底Bd+2と基底B d+2とが2次元になる。この場合、KeyGenアルゴリズムにおいて、k d+2:=(δ(1,0))B*d+2、k d+3:=(δ(0,1))B*d+2とし、Verアルゴリズムにおいて、c:=(sL+2-θL+2m,θL+2Bd+2とすればよい。
 また、上記説明では、vi,ntの値について特に限定しなかった。しかし、安全性の証明の観点から、vi,nt:=1である限定としてもよい。
 また、安全性の証明の観点から、i=1,...,Lの各整数iについてのρ(i)は、それぞれ異なる識別情報tについての肯定形の組(t,v)又は否定形の組¬(t,v)であるとしてもよい。
 言い替えると、関数ρを、ρ(i)=(t,v)又はρ(i)=¬(t,v)である場合にρ(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρが単射であるとしてもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
 また、上記説明では、Sigアルゴリズムにおいて、行追加ステップ(S1004)で、行列MにL+1行目として、ベクトルML+1の1行を追加した。しかし、行列Mに追加する行は、1行以上であれば何行であっても構わない。また、追加したML+1:=1であるとした。しかし、追加する行は、1に限らず他のベクトルであってもよい。
 また、上記説明では、追加したL+1行目のラベルρ(L+1):=¬(d+1,v L+1:=(1))とした。しかし、追加する行のラベルの設定は、処理が成立するようになっていればよく、これに限るものではない。
 つまり、追加する行や、追加する行のラベルは、Verアルゴリズムのペアリング演算ステップ(S1107)でペアリング演算をした場合に、追加した行の情報が0になるように設定されていればよい。
 なお、追加した行が2行以上である場合には、追加した行数に応じて、SigアルゴリズムやVerアルゴリズムにおける処理の繰り返し回数を変更する必要がある。
 また、署名処理の安全性を高めるため、数171に示す署名アルゴリズムを数198のように変更し、数183に示すSigアルゴリズムを数199のように変更してもよい。
Figure JPOXMLDOC01-appb-M000121
Figure JPOXMLDOC01-appb-M000122
 つまり、Setupアルゴリズムにおいて乱数値が設定された秘匿ベクトルp t,ιを生成し、Sigアルゴリズムでこの秘匿ベクトルp t,ιを用いて署名ベクトルs→*の要素s を生成している点が変更されている。また、Setupアルゴリズムにおいて、基底B^ を公開パラメータpkではなく、マスター鍵skに含め、秘密にしている点が変更されている。これにより、署名処理の安全性が高くなっている。
 なお、このようにSetupアルゴリズムと、Sigアルゴリズムとを変更した場合であっても、数199に示すように、署名データsigが正しいデータであれば、アルゴリズムにおいて、ペアリング演算を計算することにより値“1”が得られる。
Figure JPOXMLDOC01-appb-M000123
 また、Verアルゴリズムにおいて、暗号要素生成ステップ(S1106)で、cを生成することなく、cL+2:=(s-θL+2m,θL+2,0,0,0,0,ηL+2,1,ηL+2,2)としてもよい。そして、ペアリング演算ステップ(S1107)で、Πi=1 L+2e(c,s )を計算するとしてもよい。
 つまり、上記説明では、cとcL+2とを乱数sL+2で結びつけ、ペアリング演算を行った場合にcとcL+2との間でsL+2が打ち消されるようにしていた。しかし、予めsL+2を用いず、処理を簡略化してもよい。
 この場合、KeyGenアルゴリズムにおいてk を生成する必要はない。同様に、Sigアルゴリズムにおいて、s を生成する必要はない。
 実施の形態4.
 実施の形態1では、安全性の証明の観点から、i=1,...,Lの各整数iについてのρ(i)は、それぞれ異なる識別情報tについての肯定形の組(t,v)又は否定形の組¬(t,v)であるとしてもよいと説明した。つまり、ρが単射であるとしてもよいと説明した。しかし、ρが単射でなくてもよい。
 この場合、安全性の証明の観点から、実施の形態1で説明したKey-Policy関数型暗号のSetupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムを以下のように変更してもよい。ここでは、実施の形態1で説明したKey-Policy関数型暗号の各アルゴリズムについての変更部分のみを説明する。
 この実施の形態において、φを数201に示す値であるとする。
Figure JPOXMLDOC01-appb-M000124
 Setupアルゴリズムについては、(1λ,μ:=(d;n,...,n))が入力された場合に、Setup(1λ,μ’:=(d;n’,...,n’))を実行する。ここで、t=1,...,dの各整数tについて、n’:=n+φである。
 KeyGenアルゴリズムについては、k の生成方法を数202のようにする。
Figure JPOXMLDOC01-appb-M000125
 Encアルゴリズムについては、cの生成方法を数203のようにする。
Figure JPOXMLDOC01-appb-M000126
 ここでは、実施の形態1で説明したKey-Policy関数型暗号についてのみ、ρが単射でない場合の処理の変更方法について説明した。しかし、同様の考え方に基づき、他の実施の形態で説明した暗号処理や署名処理を変更してもよい。
 実施の形態5.
 以上の実施の形態では、双対ベクトル空間において暗号処理及び署名処理を実現する方法について説明した。この実施の形態では、双対加群において暗号処理及び署名処理を実現する方法について説明する。
 つまり、以上の実施の形態では、素数位数qの巡回群において暗号処理を実現した。しかし、合成数Mを用いて数204のように環Rを表した場合、環Rを係数とする加群においても、上記実施の形態で説明した暗号処理を適用することができる。
Figure JPOXMLDOC01-appb-M000127
 例えば、実施の形態1で説明したKey-Policy関数型暗号を、環Rを係数とする加群において実現すると数205から数208のようになる。
Figure JPOXMLDOC01-appb-M000128
Figure JPOXMLDOC01-appb-M000129
Figure JPOXMLDOC01-appb-M000130
Figure JPOXMLDOC01-appb-M000131
 ここでは、実施の形態1で説明したKey-Policy関数型暗号についてのみ、環Rを係数とする加群において実現する方法を示した。しかし、原則として、以上の実施の形態で体Fとして説明した処理を、環Rに置き換えることにより、以上の実施の形態で説明した他の暗号処理や署名処理についても、環Rを係数とする加群において実現できる。
 なお、以上の実施の形態におけるSetupアルゴリズムは、暗号処理システム10あるいは署名処理システム20のセットアップ時に一度実行すればよく、復号鍵を生成する度に実行する必要はない。また、上記説明では、SetupアルゴリズムとKeyGenアルゴリズムとを鍵生成装置100が実行するとしたが、SetupアルゴリズムとKeyGenアルゴリズムとをそれぞれ異なる装置が実行するとしてもよい。
 また、以上の実施の形態では、スパンプログラムM^は、入力列δによって行列M^から得られる行列Mδの行を線形結合して1が得られる場合に限り、入力列δを受理するとした。しかし、スパンプログラムM^は、1ではなく、他のベクトルvが得られる場合に限り、入力列δを受理するとしてもよい。
 この場合、KeyGenアルゴリズムにおいてs:=1・f→Tではなく、s:=v・f→Tとすればよい。同様に、Sigアルゴリズムにおいてαを計算する際、Σi∈Iα=vとなるαを計算すればよい。
 また、上記説明における暗号処理は、権限の委譲を行うことも可能である。権限の委譲とは、復号鍵を有する者がその復号鍵よりも権限の弱い下位の復号鍵を生成することである。ここで、権限が弱いとは、復号できる暗号化データが限定されるという意味である。
 例えば、第1階層目(最上位)においては、t=1の基底Bと基底B とを用い、第2階層目においては、t=1,2の基底Bと基底B とを用い、・・・、第k階層目においては、t-1,...,kの基底Bと基底B とを用いる。用いる基底Bと基底B とが増える分、属性情報が多く設定されることになる。したがって、より復号鍵の権限が限定されることになる。
 次に、実施の形態における暗号処理システム10(鍵生成装置100、暗号化装置200、復号装置300、)と、署名処理システム20(鍵生成装置100、署名装置400、検証装置500)のハードウェア構成について説明する。
 図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は、所定の固定ディスクインタフェースを介して接続される。
 ROM913、磁気ディスク装置920は、不揮発性メモリの一例である。RAM914は、揮発性メモリの一例である。ROM913とRAM914と磁気ディスク装置920とは、記憶装置(メモリ)の一例である。また、キーボード902、通信ボード915は、入力装置の一例である。また、通信ボード915は、通信装置(ネットワークインタフェース)の一例である。さらに、LCD901は、表示装置の一例である。
 磁気ディスク装置920又はROM913などには、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
 プログラム群923には、上記の説明において「マスター鍵生成部110」、「マスター鍵記憶部120」、「情報入力部130」、「復号鍵生成部140」、「鍵配布部150」、「公開パラメータ取得部210」、「情報入力部220」、「暗号化データ生成部230」、「データ送信部240」、「復号鍵取得部310」、「データ受信部320」、「スパンプログラム計算部330」、「補完係数計算部340」、「ペアリング演算部350」、「平文情報計算部360」、「署名鍵取得部410」、「情報入力部420」、「補完係数計算部430」、「署名生成部450」、「データ送信部460」、「公開パラメータ取得部510」、「データ受信部520」、「暗号化データ生成部530」、「ペアリング演算部540」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
 ファイル群924には、上記の説明において「公開パラメータpk」、「マスター鍵sk」、「暗号化データc」、「復号鍵sk」、「復号鍵skΓ」、「アクセスストラクチャS」、「属性の集合Γ」、「メッセージm」、「署名データsig」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
 また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
 また、上記の説明において「~部」として説明するものは、「~回路」、「~装置」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。また、「~装置」として説明するものは、「~回路」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。さらに、「~処理」として説明するものは「~ステップ」であっても構わない。すなわち、「~部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「~部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「~部」の手順や方法をコンピュータ等に実行させるものである。
 10 暗号処理システム、20 署名処理システム、100 鍵生成装置、110 マスター鍵生成部、120 マスター鍵記憶部、130 情報入力部、140 復号鍵生成部、141 fベクトル生成部、142 sベクトル生成部、143 乱数生成部、144 鍵要素生成部、145 秘匿要素生成部、150 鍵配布部、160 署名鍵生成部、161 乱数生成部、162 鍵要素生成部、200 暗号化装置、210 公開パラメータ取得部、220 情報入力部、230 暗号化データ生成部、231 乱数生成部、232 暗号要素生成部、233 fベクトル生成部、234 sベクトル生成部、240 データ送信部、300 復号装置、310 復号鍵取得部、320 データ受信部、330 スパンプログラム計算部、340 補完係数計算部、350 ペアリング演算部、360 平文情報計算部、400 署名装置、410 署名鍵取得部、420 情報入力部、430 補完係数計算部、440 行列生成部、450 署名生成部、451 乱数生成部、452 署名要素生成部、460 データ送信部、500 検証装置、510 公開パラメータ取得部、520 データ受信部、530 暗号化データ生成部、540 ペアリング演算部、531 乱数生成部、532 暗号要素生成部、533 fベクトル生成部、534 sベクトル生成部。

Claims (15)

  1.  鍵生成装置と暗号化装置と復号装置とを備え、t=0,...,d(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて暗号処理を実行する暗号処理システムであり、
     前記鍵生成装置は、
     i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv :=(vi,i’)(i’=1,...,n,nは1以上の整数)との肯定形の組(t,v )又は否定形の組¬(t,v )のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第1情報入力部と、
     r個の要素を有するベクトルf及びwと、前記第1情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s,...,s:=M・f→Tと、値s:=w・f→Tと、所定の値θ(i=1,...,L)とに基づき、要素k と、i=1,...,Lの各整数iについての要素k とを生成する復号鍵生成部であって、
     基底B の基底ベクトルb 0,p(pは所定の値)の係数として前記値-sを設定し、基底ベクトルb 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定して要素k を生成し、
     i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v )である場合には、その組の識別情報tが示す基底B の基底ベクトルb t,1の係数としてs+θi,1を設定するとともに、前記識別情報tとi’=2,...,nの各整数i’とが示す基底ベクトルb t,i’の係数としてθi,i’を設定して要素k を生成し、変数ρ(i)が否定形の組¬(t,v )である場合には、その組の識別情報tとi’=1,...,nの各整数i’とが示す基底ベクトルb t,i’の係数としてsi,i’を設定して要素k を生成する復号鍵生成部と
    を備え、
     前記暗号化装置は、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γを入力する第2情報入力部と、
     前記第2情報入力部が入力した属性集合Γに基づき、要素cと、前記属性集合Γに含まれる各識別情報tについてについての要素cとを生成する暗号化データ生成部であって、
     基底Bの基底ベクトルb0,p(pは前記p)の係数として乱数値δを設定するとともに、基底ベクトルb0,q(qは前記q)の係数として所定の値ζを設定した要素cを生成し、
     前記属性集合Γに含まれる各識別情報tについて、基底Bの基底ベクトルbt,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’を設定した要素cとを生成する暗号化データ生成部と
    を備え、
     前記復号装置は、
     前記暗号化データ生成部が生成した要素c及び要素cと、前記属性集合Γとを含む暗号化データcを取得するデータ取得部と、
     前記復号鍵生成部が生成した要素k 及び要素k と、前記変数ρ(i)とを含む復号鍵skを取得する復号鍵取得部と、
     前記データ取得部が取得した暗号化データcに含まれる属性集合Γと、前記復号鍵取得部が取得した復号鍵skに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0となるiと、変数ρ(i
    )が否定形の組¬(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αを合計した場合にsとなる補完係数αを計算する補完係数計算部と、
     前記暗号化データcに含まれる要素c,要素cと、前記復号鍵skに含まれる要素k ,要素k とについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αとに基づき、数1に示すペアリング演算を行い値K=g ζκを計算するペアリング演算部と
    を備えることを特徴とする暗号処理システム。
    Figure JPOXMLDOC01-appb-M000001
  2.  前記暗号処理システムは、少なくとも基底ベクトルb0,i(i=1,...,5)を有する基底Bと、少なくとも基底ベクトルbt,i(i=1,...,n,...,n+u,...,n+u+w,...,n+u+w+z)(u,w,zは1以上の整数、)を有する基底B(t=1,...,d)と、少なくとも基底ベクトルb 0,i(i=1,...,5)を有する基底B と、少なくとも基底ベクトルb t,i(i=1,...,n,...,n+u,...,n+u+w,...,n+u+w+z)を有する基底B (t=1,...,d)とを用いて暗号処理を実行し、
     前記鍵生成装置の前記復号鍵生成部は、乱数値ηと所定の値κとに基づき数2に示す要素k を生成するとともに、変数ρ(i)が肯定形の組(t,v )である場合には、乱数値θ,ηi,i’(i=1,...,L,i’=1,...,w)とに基づき数3に示す要素k を生成し、変数ρ(i)が否定形の組¬(t,v )である場合には、乱数値ηi,i’(i=1,...,L,i’=1,...,w)とに基づき数4に示す要素k を生成し、
     前記暗号化装置の前記暗号化データ生成部は、乱数値δ,φと所定の値ζとに基づき数5に示す要素cを生成するとともに、前記乱数値δ,φt,i(i=1,...,z)に基づき数6に示す要素cとを生成する
    ことを特徴とする請求項1に記載の暗号処理システム。
    Figure JPOXMLDOC01-appb-M000002
    Figure JPOXMLDOC01-appb-M000003
    Figure JPOXMLDOC01-appb-M000004
    Figure JPOXMLDOC01-appb-M000005
    Figure JPOXMLDOC01-appb-M000006
  3.  t=0,...,d(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて暗号処理を実行する暗号処理システムにおいて、復号鍵skを生成する鍵生成装置であり、
     i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv :=(vi,i’)(i’=1,...,n,nは1以上の整数)との肯定形の組(t,v )又は否定形の組¬(t,v )のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第1情報入力部と、
     r個の要素を有するベクトルf及びwと、前記第1情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s,...,s:=M・f→Tと、値s:=w・f→Tと、所定の値θ(i=1,...,L)とに基づき、要素k と、i=1,...,Lの各整数iについての要素k とを生成する復号鍵生成部であって、
     基底B の基底ベクトルb 0,p(pは所定の値)の係数として前記値-sを設定し、基底ベクトルb 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定して要素k を生成し、
     i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v )である場合には、その組の識別情報tが示す基底B の基底ベクトルb t,1の係数としてs+θi,1を設定するとともに、前記識別情報tとi’=2,...,nの各整数i’とが示す基底ベクトルb t,i’の係数としてθi,i’を設定して要素k を生成し、変数ρ(i)が否定形の組¬(t,v )である場合には、その組の識別情報tとi’=1,...,nの各整数i’とが示す基底ベクトルb t,i’の係数としてsi,i’を設定して要素k を生成する復号鍵生成部と、
     前記第1情報入力部が入力した変数ρ(i)と、前記復号鍵生成部が生成した要素k 及び要素k とを含むデータを復号鍵skとして配布する鍵配布部と
    を備えることを特徴とする鍵生成装置。
  4.  t=0,...,d(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データcを生成する暗号化装置であり、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γを入力する第2情報入力部と、
     前記第2情報入力部が入力した属性集合Γに基づき、要素cと、前記属性集合Γに含まれる各識別情報tについての要素cとを生成する暗号化データ生成部であって、
     基底Bの基底ベクトルb0,p(pは所定の値)の係数として乱数値δを設定するとともに、基底ベクトルb0,q(qは前記pとは異なる所定の値)の係数として所定の値ζを設定した要素cを生成し、
     前記属性集合Γに含まれる各識別情報tについて、基底Bの基底ベクトルbt,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’を設定した要素cとを生成する暗号化データ生成部と、
     前記第2情報入力部が入力した属性集合Γと、前記暗号化データ生成部が生成した要素c及び要素cとを暗号化データcとして出力するデータ出力部と
    を備えることを特徴とする暗号化装置。
  5.  t=0,...,d(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データcを復号鍵skで復号する復号装置であり、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γに基づき生成された要素cと、要素c(前記属性集合Γに含まれる各整数)とであって、
     基底Bの基底ベクトルb0,p(pは所定の値)の係数として乱数値δが設定されるとともに、基底ベクトルb0,q(qは前記pとは異なる所定の値)の係数として所定の値ζが設定された要素cと、
     前記属性集合Γに含まれる各識別情報tについて、基底Bの基底ベクトルbt,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’が設定された要素c
    を前記属性集合Γとともに、暗号化データcとして取得するデータ取得部と、
     r個(rは1以上の整数)の要素を有するベクトルf及びwとL行r列の所定の行列Mとに基づき生成される列ベクトルs→T:=(s,...,s:=M・f→T及び値s:=w・f→Tと、所定の値θ(i=1,...,L)と、i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)及び属性ベクトルv :=(vi,i’)(i’=1,...,n,nは1以上の整数)の肯定形の組(t,v )又は否定形の組¬(t,v )のいずれかである変数ρ(i)とに基づき生成された要素k と、要素k (i=1,...,Lの各整数)とであって、
     基底B の基底ベクトルb 0,p(pは前記p)の係数として前記値-sが設定され、基底ベクトルb 0,q(qは前記q)の係数として所定の値κが設定された要素k と、
     i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v )である場合には、その組の識別情報tが示す基底B の基底ベクトルb t,1の係数としてs+θi,1が設定されるとともに、前記識別情報tとi’=2,...,nの各整数i’とが示す基底ベクトルb t,i’の係数としてθi,i’が設定された要素k であって、変数ρ(i)が否定形の組¬(t,v )である場合には、その組の識別情報tとi’=1,...,nの各整数i’とが示す基底ベクトルb t,i’の係数としてsi,i’が設定された要素k
    を前記変数ρ(i)とともに、復号鍵skとして取得する復号鍵取得部と、
     前記データ取得部が取得した暗号化データcに含まれる属性集合Γと、前記復号鍵取得部が取得した復号鍵skに含まれる変数ρ(i)とに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0となるiと、変数ρ(i)が否定形の組¬(t,v )であり、かつ、その組のv と、その組の識別情報t
    が示すΓに含まれるx との内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αを合計した場合にsとなる補完係数αを計算する補完係数計算部と、
     前記暗号化データcに含まれる要素c,要素cと、前記復号鍵skに含まれる要素k ,要素k とについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αとに基づき、数7に示すペアリング演算を行い値K=g ζκを計算するペアリング演算部と
    を備えることを特徴とする復号装置。
    Figure JPOXMLDOC01-appb-M000007
  6.  鍵生成装置と暗号化装置と復号装置とを備え、t=0,...,d(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて暗号処理を実行する暗号処理システムであり、
     前記鍵生成装置は、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γを入力する第1情報入力部と、
     前記第1情報入力部が入力した属性集合Γに基づき、要素k と、前記属性集合Γに含まれる各識別情報tについての要素k とを生成する復号鍵生成部であって、
     基底B の基底ベクトルb 0,p(pは所定の値)の係数として乱数値δを設定するとともに、基底ベクトルb 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定した要素k を生成し、
     前記属性集合Γに含まれる各識別情報tについて、基底B の基底ベクトルb t,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’を設定した要素k とを生成する復号鍵生成部と
    を備え、
     前記暗号化装置は、
     i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv :=(vi,i’)(i’=1,...,n,nは1以上の整数)との肯定形の組(t,v )又は否定形の組¬(t,v )のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第2情報入力部と、
     r個の要素を有するベクトルf及びwと、前記第2情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s,...,s:=M・f→Tと、値s:=w・f→Tと、所定の値θ(i=1,...,L)とに基づき、要素cと、i=1,...,Lの各整数iについての要素cとを生成する暗号化データ生成部であって、
     基底Bの基底ベクトルb0,p(pは前記p)の係数として前記値-sを設定し、基底ベクトルb0,q(qは前記q)の係数として所定の値ζを設定して要素cを生成し、
     i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v )である場合には、その組の識別情報tが示す基底Bの基底ベクトルbt,1の係数としてs+θi,1を設定するとともに、前記識別情報tとi’=2,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてθi,i’を設定して要素cを生成し、変数ρ(i)が否定形の組¬(t,v )である場合には、その組の識別
    情報tとi’=1,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてsi,i’を設定して要素cを生成する暗号化データ生成部と
    を備え、
     前記復号装置は、
     前記暗号化データ生成部が生成した要素c及び要素cと、前記変数ρ(i)とを含む暗号化データcを取得するデータ取得部と、
     前記復号鍵生成部が生成した要素k 及び要素k と、前記属性集合Γとを含む復号鍵skΓを取得する復号鍵取得部と、
     前記データ取得部が取得した暗号化データcに含まれるi=1,...,Lの各整数iについての変数ρ(i)と、前記復号鍵取得部が取得した復号鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0となるiと、変数ρ(i)が否定形の組¬(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αを合計した場合にsとなる補完係数αを計算する補完係数計算部と、
     前記暗号化データcに含まれる要素c,要素cと、前記復号鍵skΓに含まれる要素k ,要素k とについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αとに基づき、数8に示すペアリング演算を行い値K=g ζκを計算するペアリング演算部と
    を備えることを特徴とする暗号処理システム。
    Figure JPOXMLDOC01-appb-M000008
  7.  前記暗号処理システムは、少なくとも基底ベクトルb0,i(i=1,...,5)を有する基底Bと、少なくとも基底ベクトルbt,i(i=1,...,n,...,n+u,...,n+u+w,...,n+u+w+z)(u,w,zは1以上の整数、)を有する基底B(t=1,...,d)と、少なくとも基底ベクトルb 0,i(i=1,...,5)を有する基底B と、少なくとも基底ベクトルb t,i(i=1,...,n,...,n+u,...,n+u+w,...,n+u+w+z)を有する基底B (t=1,...,d)とを用いて暗号処理を実行し、
     前記鍵生成装置の前記復号鍵生成部は、乱数値δ,φと所定の値κとに基づき数9に示す要素k を生成するとともに、前記乱数値δ,φt,i(i=1,...,w)に基づき数10に示す要素k とを生成し、
     前記暗号化装置の前記暗号化データ生成部は、乱数値ηと所定の値ζとに基づき数11に示す要素cを生成するとともに、変数ρ(i)が肯定形の組(t,v )である場合には、乱数値θ,ηi,i’(i=1,...,L,i’=1,...,z)とに基づき数12に示す要素cを生成し、変数ρ(i)が否定形の組¬(t,v )である場合には、乱数値ηi,i’(i=1,...,L,i’=1,...,z)とに基づき数13に示す要素cを生成する
    ことを特徴とする請求項6に記載の暗号処理システム。
    Figure JPOXMLDOC01-appb-M000009
    Figure JPOXMLDOC01-appb-M000010
    Figure JPOXMLDOC01-appb-M000011
    Figure JPOXMLDOC01-appb-M000012
    Figure JPOXMLDOC01-appb-M000013
  8.  t=0,...,d(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて暗号処理を実行する暗号処理システムにおいて、復号鍵skΓを生成する鍵生成装置であり、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γを入力する第1情報入力部と、
     前記第1情報入力部が入力した属性集合Γに基づき、要素k と、前記属性集合Γに含まれる各識別情報tについての要素k とを生成する復号鍵生成部であって、
     基底B の基底ベクトルb 0,p(pは所定の値)の係数として乱数値δを設定するとともに、基底ベクトルb 0,q(qは前記pとは異なる所定の値)の係数として所定の値κを設定した要素k を生成し、
     前記属性集合Γに含まれる各識別情報tについて、基底B の基底ベクトルb t,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’を設定した要素k とを生成する復号鍵生成部と、
     前記第1情報入力部が入力した変数ρ(i)と、前記復号鍵生成部が生成した要素k 及び要素k とを含むデータを復号鍵skΓとして配布する鍵配布部と
    を備えることを特徴とする鍵生成装置。
  9.  t=0,...,d(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データcを生成する暗
    号化装置であり、
     i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv :=(vi,i’)(i’=1,...,n,nは1以上の整数)との肯定形の組(t,v )又は否定形の組¬(t,v )のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mとを入力する第2情報入力部と、
     r個の要素を有するベクトルf及びwと、前記第2情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s,...,s:=M・f→Tと、値s:=w・f→Tと、所定の値θ(i=1,...,L)とに基づき、要素cと、i=1,...,Lの各整数iについての要素cとを生成する暗号化データ生成部であって、
     基底Bの基底ベクトルb0,p(pは前記p)の係数として前記値-sを設定し、基底ベクトルb0,q(qは前記q)の係数として所定の値ζを設定して要素cを生成し、
     i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v )である場合には、その組の識別情報tが示す基底Bの基底ベクトルbt,1の係数としてs+θi,1を設定するとともに、前記識別情報tとi’=2,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてθi,i’を設定して要素cを生成し、変数ρ(i)が否定形の組¬(t,v )である場合には、その組の識別情報tとi’=1,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてsi,i’を設定して要素cを生成する暗号化データ生成部と、
     前記第2情報入力部が入力した属性集合Γと、前記暗号化データ生成部が生成した要素c及び要素cとを暗号化データcとして出力するデータ出力部と
    を備えることを特徴とする暗号化装置。
  10.  t=0,...,d(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて暗号処理を実行する暗号処理システムにおいて、暗号化データcを復号鍵skΓで復号する復号装置であり、
     r個(rは1以上の整数)の要素を有するベクトルf及びwとL行r列の所定の行列Mとに基づき生成される列ベクトルs→T:=(s,...,s:=M・f→T及び値s:=w・f→Tと、所定の値θ(i=1,...,L)と、i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv :=(vi,i’)(i’=1,...,n,nは1以上の整数)との肯定形の組(t,v )又は否定形の組¬(t,v )のいずれかである変数ρ(i)とに基づき生成された要素cと、要素c(i=1,...,Lの各整数)とであって、
     基底Bの基底ベクトルb0,p(pは所定の値)の係数として前記値-sが設定され、基底ベクトルb0,q(qは前記pとは異なる所定の値)の係数として所定の値ζが設定された要素cと、
     i=1,...,Lの各整数iについて、変数ρ(i)が肯定形の組(t,v )である場合には、その組の識別情報tが示す基底Bの基底ベクトルbt,1の係数としてs+θi,1が設定されるとともに、前記識別情報tとi’=2,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてθi,i’が設定された要素cであって、変数ρ(i)が否定形の組¬(t,v )である場合には、その組の識別情報tとi’=1,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてsi,i’が設定された要素c
    を前記変数ρ(i)とともに、暗号化データcとして取得するデータ取得部と、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γに基づき生成された要素k と、要素k (tは前記属性集合Γに含
    まれる各整数)とであって、
     基底B の基底ベクトルb 0,p(pは前記p)の係数として乱数値δが設定されるとともに、基底ベクトルb 0,q(qは前記q)の係数として所定の値κが設定された要素k と、
     前記属性集合Γに含まれる各識別情報tについて、基底B の基底ベクトルb t,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’が設定された要素k
    を前記属性集合Γとともに、復号鍵skΓとして取得する復号鍵取得部と、
     前記データ取得部が取得した暗号化データcに含まれる変数ρ(i)と、前記復号鍵取得部が取得した復号鍵skに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0となるiと、変数ρ(i)が否定形の組¬(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、αを合計した場合にsとなる補完係数αを計算する補完係数計算部と、
     前記暗号化データcに含まれる要素c,要素cと、前記復号鍵skに含まれる要素k ,要素k とについて、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αとに基づき、数14に示すペアリング演算を行い値K=g ζκを計算するペアリング演算部と
    を備えることを特徴とする復号装置。
    Figure JPOXMLDOC01-appb-M000014
  11.  鍵生成装置と署名装置と検証装置とを備え、t=1,...,d,d+2(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて署名処理を実行する署名処理システムであり、
     前記鍵生成装置は、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γを入力する第1情報入力部と、
     前記第1情報入力部が入力した属性集合Γに基づき、前記属性集合Γに含まれる各識別情報tについての要素k と、要素k d+2と、要素k d+3とを生成する署名鍵生成部であって、
     前記属性集合Γに含まれる各識別情報tについて、基底B の基底ベクトルb t,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’を設定した要素k を生成し、
     基底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 :=(vi,i’)(i’=1,...,n,nは1以上の整数)との肯定形の組(t,v
    )又は否定形の組¬(t,v )のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力部と、
     前記署名鍵生成部が生成した要素k と、要素k d+2と、要素k d+3と、前記属性集合Γとを署名鍵skΓとして取得する署名鍵取得部と、
     i=1,...,Lの各整数iについての変数ρ(i)と、前記署名鍵取得部が取得した署名鍵skΓに含まれる属性集合Γとに基づき、i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0となるiと、変数ρ(i)が否定形の組¬(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMに基づき、αを合計したした場合に所定のベクトルwとなる補完係数αを計算する補完係数計算部と、
     前記変数ρ(i)と、前記属性集合Γと、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αとに基づき、i=1,...,Lの各整数iについてのs と、s とを生成する署名生成部であって、
     βを、行列Mの各行番号を表す各整数iについて、βを合計した場合に全ての要素が0となる値とし、
     行列Mの各行番号を表す各整数iについて、
     i∈Iであって、変数ρ(i)が肯定形の組(t,v )である場合には、値γ:=αとし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が0で、yi,1=1であるベクトルとし、
     i∈Iであって、変数ρ(i)が否定形の組¬(t,v )である場合には、値γ:=α/(v ・x )とし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が1であるベクトルとし、
     i∈Iでなく、変数ρ(i)が肯定形の組(t,v )である場合には、値γ:=0とし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が0で、yi,1=1であるベクトルとし、
     i∈Iでなく、変数ρ(i)が否定形の組¬(t,v )である場合には、値γ:=0とし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が1であるベクトルとして、
    数15に示すように行列Mの各行番号を表す各整数iについてのs と、s とを生成する署名生成部と
    を備え、
     前記検証装置は、
     前記署名生成部が生成したs ,s と、メッセージmと、変数ρ(i)と、行列Mとを含む署名データsigを取得するデータ取得部と、
     r個の要素を有するベクトルfと、前記ベクトルwと、前記データ取得部が取得した行列Mとに基づき生成される列ベクトルs→T:=(s,...,s:=M・f→Tと、値s:=w・f→Tと、所定の値θ(iは行列Mの各行番号とX)とに基づき、行列Mの各行番号を表す各整数iについての要素cと、要素cとを生成する暗号化データ生成部であって、
     前記行列Mの各行番号を表す各整数iについて、変数ρ(i)が肯定形の組(t,v )である場合には、その組の識別情報tが示す基底Bの基底ベクトルbt,1の係数としてs+θi,1を設定するとともに、前記識別情報tとi’=2,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてθi,i’を設定して要素cを生成し、変数ρ(i)が否定形の組¬(t,v )である場合には、その組の識別情報tとi’=1,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてsi,i’を設定して要素cを生成し、
     基底Bd+2の基底ベクトルbd+2,p’(p’は前記p’)にs-θmを設定
    するとともに、基底ベクトルbd+2,q’(q’は前記q’)にθを設定して要素cを生成する暗号化データ生成部と、
     行列Mの各行番号とXとを示す各整数iについて、数16に示すペアリング演算を行い、前記署名データsigの正当性を検証するペアリング演算部と
    を備えることを特徴とする署名処理システム。
    Figure JPOXMLDOC01-appb-M000015
    Figure JPOXMLDOC01-appb-M000016
  12.  前記署名処理システムは、少なくとも基底ベクトルb0,i(i=1,...,4)を有する基底Bと、少なくとも基底ベクトルbt,i(i=1,...,n,...,n+u,...,n+u+w,...,n+u+w+z)(u,w,zは1以上の整数、)を有する基底B(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 と、少なくとも基底ベクトルb t,i(i=1,...,n,...,n+u,...,n+u+w,...,n+u+w+z)を有する基底B (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,...,wの各整数ιとについて、要素k と、要素k と、要素k d+2と、要素k d+3とを、乱数値δ,φ,φt,ι,φd+2,1,φd+2,2,φd+3,1,φd+3,2に基づき、数17に示すように生成し、
     前記署名装置は、さらに、
     前記行列MのL+1行目に所定の行ベクトルML+1を追加する行列生成部
    を備え
     前記署名装置の前記署名生成部は、
     要素k と、要素k と、要素k d+2と、要素k d+3と、乱数値ξとに基づき、数18に示すように、i=1,...,L+1の各整数iについてのs と、s としてs 及びs L+2とを生成し、
     前記検証装置の前記暗号化データ生成部は、
     i=1,...,L+1の各整数iと、i‘=1,...,zの各整数i’とについて、乱数値θ,ηi,i’,ηL+2,1,ηL+2,2に基づき、数19に示すよう
    に、要素cと、要素cとして要素c及び要素cL+2とを生成し、
     前記ペアリング演算部は、i=1,...,L+2の各整数iについて、前記ペアリング演算を行う
    ことを特徴とする請求項11に記載の署名処理システム。
    Figure JPOXMLDOC01-appb-M000017
    Figure JPOXMLDOC01-appb-M000018
    Figure JPOXMLDOC01-appb-M000019
  13.  t=1,...,d,d+2(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて署名処理を実行する署名処理システムにおいて、署名鍵skΓを生成する鍵生成装置であり、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γを入力する第1情報入力部と、
     前記第1情報入力部が入力した属性集合Γに基づき、前記属性集合Γに含まれる各識別情報tについての要素k と、要素k d+2と、要素k d+3とを生成する署名鍵生成部であって、
     前記属性集合Γに含まれる各識別情報tについて、基底B の基底ベクトルb t,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’を設定した要素k を生成し、
     基底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 と、要素k d+2と、要素k d+3とを含むデータを署名鍵skΓとして配布する鍵配布部と
    を備えることを特徴とする鍵生成装置。
  14.  t=1,...,d,d+2(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて署名処理を実行する署名処理システムにおいて、署名データsigを生成する署名装置であり、
     i=1,...,L(Lは1以上の整数)の各整数iについての変数ρ(i)であって、識別情報t(t=1,...,dのいずれかの整数)と、属性ベクトルv :=(vi,i’)(i’=1,...,n,nは1以上の整数)との肯定形の組(t,v )又は否定形の組¬(t,v )のいずれかである変数ρ(i)と、L行r列(rは1以上の整数)の所定の行列Mと、メッセージmとを入力する第2情報入力部と、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γに基づき生成された要素k (tは前記属性集合Γに含まれる各識別情報)と、要素k d+2と、要素k d+3とであって、
     前記属性集合Γに含まれる各識別情報tについて、基底B の基底ベクトルb t,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’が設定された要素k と、
     基底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 )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0となるiと、変数ρ(i)が否定形の組¬(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0とならないiとの集合Iを特定するとともに、特定した集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMに基づき、αを合計した場合に所定のベクトルwとなる補完係数αを計算する補完係数計算部と、
     前記変数ρ(i)と、前記属性集合Γと、前記補完係数計算部が特定した集合Iと、前記補完係数計算部が計算した補完係数αとに基づき、行列Mの各行番号を表す各整数iについてのs と、s とを生成する署名生成部であって、
     βを、行列Mの各行番号を表す各整数iについて、βを合計した場合に全ての要素が0となる値とし、
     行列Mの各行番号を表す各整数iについて、
     i∈Iであって、変数ρ(i)が肯定形の組(t,v )である場合には、値γ:=αとし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が0で、yi,1=1であるベクトルとし、
     i∈Iであって、変数ρ(i)が否定形の組¬(t,v )である場合には、値γ:=α/(v ・x )とし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が1であるベクトルとし、
     i∈Iでなく、変数ρ(i)が肯定形の組(t,v )である場合には、値γ:=0とし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が0で、yi,1=1であるベクトルとし、
     i∈Iでなく、変数ρ(i)が否定形の組¬(t,v )である場合には、値γ:=0とし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が1であるベクトルとして、
    数20に示すように行列Mの各行番号を表すの各整数iについてのs と、s とを生成する署名生成部と
     前記第2情報入力部が入力した変数ρ(i)と行列Mとメッセージmと、前記署名生成部が生成したs とs とs とを含むデータを署名データsigとして出力するデータ出力部と
    を備えることを特徴とする署名装置。
    Figure JPOXMLDOC01-appb-M000020
  15.  t=1,...,d,d+2(dは1以上の整数)の各整数tについての基底Bと基底B とを用いて署名処理を実行する署名処理システムにおいて、署名データsigを検証する検証装置であり、
     t=1,...,dの少なくとも1つ以上の整数tについて、識別情報tと、属性ベクトルx :=(xt,i’)(i’=1,...,n,nは1以上の整数)とを有する属性集合Γに基づき生成された要素k (tは前記属性集合Γに含まれる各識別情報)と、要素k d+2と、要素k d+3とであって、
     前記属性集合Γに含まれる各識別情報tについて、基底B の基底ベクトルb t,i’(i’=1,...,n)の係数として前記乱数値δ倍したxt,i’が設定された要素k と、
     基底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 :=(vi,i’)(i’=1,...,n,nは1以上の整数)との肯定形の組(t,v )又は否定形の組¬(t,v )のいずれかである変数ρ(i)と、前記属性集合Γとに基づき計算された集合Iと補完係数αとであって、
     i=1,...,Lの各整数iのうち、変数ρ(i)が肯定形の組(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0となるiと、変数ρ(i)が否定形の組¬(t,v )であり、かつ、その組のv と、その組の識別情報tが示すΓに含まれるx との内積が0とならないiとの集合Iと、
     集合Iに含まれるiについて、前記第2情報入力部が入力した行列Mのi行目の要素であるMに基づき、αを合計した場合に所定のベクトルwとなる補完係数αと、
     前記変数ρ(i)と、前記属性集合Γと、前記集合Iと、前記補完係数αとに基づき生成されたs (i=1,...,Lの各整数)と、s とであって、
     βを、行列Mの各行番号を表す各整数iについて、βを合計した場合に全ての要素が0となる値とし、
     行列Mの各行番号を表す各整数iについて、
     i∈Iであって、変数ρ(i)が肯定形の組(t,v )である場合には、値γ:=αとし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が0で、yi,1=1であるベクトルとし、
     i∈Iであって、変数ρ(i)が否定形の組¬(t,v )である場合には、値γ:=α/(v ・x )とし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が1であるベクトルとし、
     i∈Iでなく、変数ρ(i)が肯定形の組(t,v )である場合には、値γ:=0とし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が0で、yi,1=1であるベクトルとし、
     i∈Iでなく、変数ρ(i)が否定形の組¬(t,v )である場合には、値γ:=0とし、ベクトルy :=(yi,ι)(ι:=1,...,n)をy とv との内積が1であるベクトルとして、
    数21に示すように生成されたs と、s
    のうち、s と、s とメッセージmと、変数ρ(i)と、行列Mとを含む署名データsigを取得するデータ取得部と、
     r個(rは1以上の整数)の要素を有するベクトルfと、前記ベクトルwと、前記第2情報入力部が入力した行列Mとに基づき生成される列ベクトルs→T:=(s,...,s:=M・f→Tと、値s:=w・f→Tと、所定の値θ(iは行列Mの各行番号とX)とに基づき、i=1,...,Lの各整数iについての要素cと、要素cとを生成する暗号化データ生成部であって、
     行列Mの各行番号を表す各整数iについて、変数ρ(i)が肯定形の組(t,v )である場合には、その組の識別情報tが示す基底Bの基底ベクトルbt,1の係数としてs+θi,1を設定するとともに、前記識別情報tとi’=2,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてθi,i’を設定して要素cを生成し、変数ρ(i)が否定形の組¬(t,v )である場合には、その組の識別情報tとi’=1,...,nの各整数i’とが示す基底ベクトルbt,i’の係数としてsi,i’を設定して要素cを生成し、
     基底Bd+2の基底ベクトルbd+2,p’(p’は前記p’)にs-θmを設定するとともに、基底ベクトルbd+2,q’(q’は前記q’)にθを設定して要素cを生成する暗号化データ生成部と、
     行列Mの各行番号とXとを示す各整数iについて、数22に示すペアリング演算を行い、前記署名データsigの正当性を検証するペアリング演算部と
    を備えることを特徴とする検証装置。
    Figure JPOXMLDOC01-appb-M000021
PCT/JP2011/053174 2010-04-27 2011-02-15 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 WO2011135895A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
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
CN201180020997.1A CN102859571B (zh) 2010-04-27 2011-02-15 密码处理系统、密钥生成装置、加密装置、解密装置、签名处理系统、签名装置以及验证装置
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
KR1020127025089A KR101386294B1 (ko) 2010-04-27 2011-02-15 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-101657 2010-04-27
JP2010101657A JP5424974B2 (ja) 2010-04-27 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 삼성에스디에스 주식회사 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치
CN104798339B (zh) 2013-01-12 2018-06-01 三菱电机株式会社 密钥生成装置、隐匿检索系统和密钥发布方法
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
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
WO2015083210A1 (ja) * 2013-12-02 2015-06-11 三菱電機株式会社 データ処理システム及び暗号装置及び復号装置及びプログラム
EP3113405B1 (en) 2014-02-24 2020-10-28 Mitsubishi Electric Corporation Cipher system and cipher program
CN106471558B (zh) * 2014-07-02 2018-03-20 三菱电机株式会社 矩阵生成装置及矩阵生成方法
EP3282437B1 (en) 2015-04-07 2021-10-27 Mitsubishi Electric Corporation Functional encryption system
US9209974B1 (en) * 2015-05-03 2015-12-08 Zeutro, Llc Functional encryption key management
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
US10728227B2 (en) * 2016-08-02 2020-07-28 X-Logos, LLC 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
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US20180212753A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-To-End Secure Operations Using a Query Vector
WO2018136801A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-to-end secure operations using a query matrix
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
WO2019016916A1 (ja) * 2017-07-20 2019-01-24 三菱電機株式会社 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002332671A1 (en) * 2001-08-13 2003-03-03 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
JP2006107274A (ja) * 2004-10-07 2006-04-20 Matsushita Electric Ind Co Ltd ハッシュ関数演算システム、暗号化システムおよび不正解析・改竄防止システム
JP2007235659A (ja) 2006-03-02 2007-09-13 Mebius Corp 鍵管理方法、暗号処理方法、電子署名方法、アクセス管理方法
WO2007105709A1 (ja) * 2006-03-14 2007-09-20 Nec Corporation 情報処理システム、情報処理方法および情報処理プログラム
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
CN101617351B (zh) * 2007-01-19 2011-06-22 三菱电机株式会社 密文生成装置、密码通信系统以及群参数生成装置
JP5349261B2 (ja) 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
CN102396012B (zh) 2009-04-24 2014-05-07 日本电信电话株式会社 秘密分散系统、分散装置、分散管理装置、取得装置、其处理方法、秘密分散方法
WO2010123122A1 (ja) 2009-04-24 2010-10-28 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP2565862A1 (en) 2013-03-06
ES2693146T3 (es) 2018-12-07
US20130028415A1 (en) 2013-01-31
US8913742B2 (en) 2014-12-16
JP5424974B2 (ja) 2014-02-26
KR20120139753A (ko) 2012-12-27
JP2011232475A (ja) 2011-11-17
CN102859571A (zh) 2013-01-02
EP2565862B1 (en) 2018-08-01
CN102859571B (zh) 2015-06-10
EP2565862A4 (en) 2017-07-19
KR101386294B1 (ko) 2014-04-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