WO2014021102A1 - 暗号システム、暗号方法、暗号プログラム及び復号装置 - Google Patents

暗号システム、暗号方法、暗号プログラム及び復号装置 Download PDF

Info

Publication number
WO2014021102A1
WO2014021102A1 PCT/JP2013/069368 JP2013069368W WO2014021102A1 WO 2014021102 A1 WO2014021102 A1 WO 2014021102A1 JP 2013069368 W JP2013069368 W JP 2013069368W WO 2014021102 A1 WO2014021102 A1 WO 2014021102A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
polynomial
encryption
coefficient
ciphertext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2013/069368
Other languages
English (en)
French (fr)
Inventor
克幸 高島
岡本 龍明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
NTT Inc
Original Assignee
Mitsubishi Electric Corp
Nippon Telegraph and Telephone Corp
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 Mitsubishi Electric Corp, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Priority to CN201380040471.9A priority Critical patent/CN104620305B/zh
Priority to KR1020147036181A priority patent/KR101606317B1/ko
Priority to US14/395,655 priority patent/US9413531B2/en
Priority to EP13824763.0A priority patent/EP2881930B1/en
Priority to ES13824763.0T priority patent/ES2645463T3/es
Publication of WO2014021102A1 publication Critical patent/WO2014021102A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Definitions

  • This invention relates to a functional encryption method using the idea of a secondary span program.
  • the functional encryption method is an encryption method in which the relationship between the encryption key ek and the decryption key dk is further advanced and made more flexible.
  • a parameter ⁇ and a parameter ⁇ are set for the encryption key ek and the decryption key dk, respectively. Only when the relationship R ( ⁇ , ⁇ ) is established, the decryption key dk can decrypt the ciphertext encrypted with the encryption key ek.
  • Non-Patent Document 3 describes a functional encryption method.
  • Non-patent document 6 describes the secondary span program.
  • the functional encryption method described in Non-Patent Document 3 is a method using a primary span program.
  • this functional encryption method there is a limit to the range that can be expressed as the relationship R.
  • An object of the present invention is to provide a functional encryption system that can widen the range that can be expressed as the relation R by utilizing the idea of the secondary span program.
  • An encryption system includes: An encryption device that generates one of the first information including the secondary span program and the second information including the attribute information as ciphertext; Based on the information obtained from the secondary span program and the attribute information when the other of the first information and the second information is a decryption key and the secondary span program accepts the attribute information, And a decryption device for decrypting the ciphertext.
  • the range that can be expressed as the relationship R can be made an idealized range by using the idea of the secondary span program.
  • Explanatory drawing of a secondary span program. Explanatory drawing of the subset Iu . 1 is a configuration diagram of an encryption system 10 that executes a KP-FE scheme.
  • FIG. 1 is a configuration diagram of a cryptographic system 10 that executes a CP-FE scheme.
  • FIG. FIG. 4 is a configuration diagram of a key generation device 100 according to a second embodiment.
  • FIG. 4 is a configuration diagram of an encryption apparatus 200 according to Embodiment 2.
  • FIG. 4 is a configuration diagram of a decoding device 300 according to Embodiment 2.
  • 9 is a flowchart showing processing of a Setup algorithm according to the second embodiment.
  • 9 is a flowchart showing processing of a KeyGen algorithm according to the second embodiment.
  • 9 is a flowchart showing processing of an Enc algorithm according to the second embodiment.
  • 9 is a flowchart showing processing of a Dec algorithm according to the second embodiment.
  • 9 is a flowchart showing processing of a KeyGen algorithm according to the fourth embodiment.
  • the figure which shows an example of the hardware constitutions of the key generation apparatus 100, the encryption apparatus 200, and the decoding apparatus 300.
  • the processing device is a CPU 911 or the like which will be described later.
  • the storage device is a ROM 913, a RAM 914, a magnetic disk 920, etc., which will be described later.
  • the communication device is a communication board 915 or the like which will be described later.
  • the input device is a keyboard 902, a communication board 915, and the like which will be described later. That is, the processing device, the storage device, the communication device, and the input device are hardware.
  • Equation 101 represents selecting y from A randomly according to the distribution of A. That is, in Equation 101, y is a random number.
  • Equation 102 represents selecting y from A uniformly. That is, in Equation 102, y is a uniform random number.
  • the number 103 represents that y is a set defined by z, or y is a set to which z is substituted.
  • a is a constant, the number 104 represents that the machine (algorithm) A outputs a for the input x.
  • the number 105 that is, F q indicates a finite field of order q.
  • Equation 106 The vector notation represents a vector representation in the finite field Fq . That is, Equation 106.
  • Equation 107 represents the inner product shown in Equation 109 between the two vectors x ⁇ and v ⁇ shown in Equation 108.
  • X T represents the transpose of the matrix X.
  • Equation 114 is obtained.
  • Vt means V t.
  • .delta.i, j if is indicated by superscript, this .delta.i, j refers to [delta] i, j.
  • f ⁇ if the " ⁇ " are indicated by superscript, this Ftau refers to f tau, this Kappatau means kappa tau.
  • the encryption process includes a key generation process, an encryption process, and a decryption process.
  • Embodiment 1 a concept that is the basis of a functional encryption scheme using a secondary span program and an outline of a functional encryption scheme using a secondary span program will be described.
  • DPVS Dual Pairing Vector Spaces
  • secondary span program”, “equal sign of attribute information and secondary span program”, and “secret sharing scheme” will be described.
  • Third, an outline of a functional encryption method using a secondary span program will be described.
  • Symmetric bilinear pairing groups (q, G, G T, g, e) is a prime number q, and the cyclic additive group G of order q, and a cyclic multiplicative group G T of order q, g ⁇ 0 ⁇ G
  • nondegenerate bilinear pairing that can be calculated in polynomial time (nondegenerate bilinear pairing) e: a set of a G ⁇ G ⁇ G T.
  • a i is as shown in Expression 116.
  • Equation 118 The linear transformation ⁇ i, j in the space V shown in Equation 118 can perform Equation 119.
  • the linear transformation ⁇ i, j is called a distortion map.
  • a dual pairing vector space is configured by the above-described symmetric bilinear pairing group.
  • a dual pairing vector space can also be configured by an asymmetric bilinear pairing group. It is easy to apply the following description to a case where a dual pairing vector space is configured by an asymmetric bilinear pairing group.
  • FIG. 1 is an explanatory diagram of a secondary span program.
  • i ⁇ ⁇ 0,. . . , L ⁇ and set B ⁇ b i (x)
  • T (p j ): u j
  • T ( ⁇ p j ): ⁇ u j
  • T (p 0 ): 1.
  • T (p (i) 1) ⁇ .
  • FIG. 2 is an explanatory diagram of the subset Iu .
  • the label [rho, the [rho 1 is ⁇ P 2
  • the [rho 2 is p 1
  • the [rho 3 is p 4
  • [rho to 4 ⁇ P 5 is a ⁇ P 3, [rho 6
  • the quadratic span program is a set of ( ⁇ 1 ,..., ⁇ L ) and ( ⁇ 1 ,..., ⁇ L ) in the field F q L such that the target polynomial d (x) divides the number 120.
  • Accept input u ⁇ ⁇ 0,1 ⁇ n (or accept subset I u ) only if the tuple exists.
  • the secondary span program rejects the input u ⁇ ⁇ 0,1 ⁇ n otherwise.
  • the quadratic span program has inputs u ⁇ ⁇ 0,1 ⁇ n only if there exists a set of ⁇ i and ⁇ i for i ⁇ I u such that the target polynomial d (x) divides the number 121. Is accepted. Then, if the secondary span program accepts the input u ⁇ ⁇ 0,1 ⁇ n , it is possible to calculate ⁇ i and ⁇ i pairs for i ⁇ I u in polynomial time (non-patent literature). 6).
  • the input u ⁇ ⁇ 0,1 ⁇ n is accepted only if there exists a set of
  • U t includes identification information (t) of a partial complete set and attribute information (v ⁇ ) represented by an n-dimensional vector. That is, U t is (t, v ⁇ ).
  • t is ⁇ 1,. . . , D ⁇ , and not all indexes.
  • T (p 0 ): 1. In other cases, the truth value T is zero.
  • a functional encryption scheme is configured by providing one of the decryption key and the ciphertext with the access structure S described above and the other having the attribute set ⁇ .
  • a functional encryption scheme in which the access structure S is provided in the decryption key is called a Key-Policy functional encryption (KP-FE) method
  • KP-FE Key-Policy functional encryption
  • Ciphertext-Policy functional encryption This is called a CP-FE method.
  • KP-FE method includes four algorithms: Setup, KeyGen, Enc, and Dec.
  • the Setup algorithm is a probabilistic algorithm that receives a security parameter ⁇ and outputs a public parameter pk and a master key sk.
  • the KeyGen algorithm is a stochastic algorithm that receives the access structure S, the public parameter pk, and the master key sk and outputs the decryption key sk S.
  • the Dec algorithm receives the message msg or the identification information ⁇ ⁇ ⁇ by inputting the ciphertext ct ⁇ encrypted under the attribute set ⁇ , the decryption key sk S for the access structure S, and the public parameter pk. The algorithm to output.
  • FIG. 3 is a configuration diagram of the cryptographic system 10 that executes the KP-FE scheme.
  • the encryption system 10 includes a key generation device 100, an encryption device 200, and a decryption device 300.
  • the key generation device 100 executes the Setup algorithm with the security parameter ⁇ as an input, and generates a public parameter pk and a master key sk. Then, the key generation device 100 discloses the generated public parameter pk. Further, the key generation device 100 executes the KeyGen algorithm with the access structure S as an input, generates a decryption key sk S , and distributes it to the decryption device 300 in a secret manner.
  • the encryption apparatus 200 receives the message msg, the attribute set ⁇ , and the public parameter pk and executes the Enc algorithm to generate a ciphertext ct ⁇ .
  • the encryption device 200 transmits the generated ciphertext ct ⁇ to the decryption device 300.
  • the decryption device 300 receives the public parameter pk, the decryption key sk S, and the ciphertext ct ⁇ , executes the Dec algorithm, and outputs a message msg or identification information ⁇ .
  • the CP-FE system includes four algorithms: Setup, KeyGen, Enc, and Dec.
  • the Setup algorithm is a probabilistic algorithm that receives a security parameter ⁇ and outputs a public parameter pk and a master key sk.
  • the Enc algorithm is a probabilistic algorithm that outputs the ciphertext ct S with the message msg, the access structure S, and the public parameter pk as inputs.
  • the Dec algorithm receives the message msg or the identification information ⁇ ⁇ ⁇ by inputting the ciphertext ct S encrypted under the access structure S, the decryption key sk ⁇ for ⁇ which is a set of attributes, and the public parameter pk. The algorithm to output.
  • FIG. 4 is a configuration diagram of the cryptographic system 10 that executes the CP-FE scheme.
  • the encryption system 10 includes a key generation device 100, an encryption device 200, and a decryption device 300.
  • the key generation device 100 executes the Setup algorithm with the security parameter ⁇ as an input, and generates a public parameter pk and a master key sk. Then, the key generation device 100 discloses the generated public parameter pk. Further, the key generation apparatus 100 executes the KeyGen algorithm with the attribute set ⁇ as an input, generates a decryption key sk ⁇ , and distributes it to the decryption apparatus 300 in a secret manner.
  • the encryption device 200 receives the message msg, the access structure S, and the public parameter pk and executes the Enc algorithm to generate a ciphertext ct S.
  • the encryption device 200 transmits the generated ciphertext ct S to the decryption device 300.
  • the decryption device 300 receives the public parameter pk, the decryption key sk ⁇ , and the ciphertext ct S , executes the Dec algorithm, and outputs a message msg or identification information ⁇ .
  • the Dec algorithm selects a subset I ( ⁇ , ⁇ ) by the above-described method based on the access structure S and the attribute set ⁇ , and further uses a coefficient ( ⁇ 1 ,..., ⁇ L ) and coefficients ( ⁇ 1 ,..., ⁇ L ). Then, based on the subset I ( ⁇ , ⁇ ) , the coefficients ( ⁇ 1 ,..., ⁇ L ) and the coefficients ( ⁇ 1 ,..., ⁇ L ), the ciphertext ct ⁇ (or ct S ) is obtained. Decrypt and calculate message msg.
  • the Setup algorithm is usually executed only once during system setup.
  • the KeyGen algorithm is executed each time a user decryption key is generated.
  • the Enc algorithm is executed every time the message msg is encrypted.
  • the Dec algorithm is executed every time the ciphertext is decrypted.
  • the functional encryption scheme is configured using the access structure S based on the secondary span program.
  • the range that can be expressed as the relationship R can be made an idealized range.
  • Embodiment 2 a configuration example of a functional encryption scheme using a secondary span program will be described.
  • the KP-FE method will be described as an example.
  • FIG. 5 is a configuration diagram of the key generation apparatus 100 according to the second embodiment.
  • FIG. 6 is a configuration diagram of the encryption device 200 according to the second embodiment.
  • FIG. 7 is a configuration diagram of the decoding device 300 according to the second embodiment.
  • 8 and 9 are flowcharts showing the operation of the key generation apparatus 100.
  • FIG. 8 is a flowchart showing the process of the Setup algorithm
  • FIG. 9 is a flowchart showing the process of the KeyGen algorithm.
  • FIG. 10 is a flowchart showing the operation of the encryption apparatus 200, and is a flowchart showing the processing of the Enc algorithm.
  • FIG. 11 is a flowchart showing the operation of the decoding apparatus 300, and is a flowchart showing the Dec algorithm processing.
  • the key generation device 100 includes a master key generation unit 110, a master key storage unit 120, an information input unit 130, a decryption key generation unit 140, and a key distribution unit 150.
  • the decryption key generation unit 140 includes a secret information generation unit 141 and a key element generation unit 142.
  • the master key generation unit 110 calculates the equation 123 by the processing device, and generates the parameter param, the base B 0 and the base B * 0, and the base B t and the base B * t .
  • n t For each integer t of d (d is an integer of 1 or more) sets n t + u t + w t + z t to N t.
  • n 0 is 2mf max +1
  • n t is 2mf max k max + n.
  • m is the number of factors when the target polynomial d (x) is factored.
  • f max is the maximum value of the factor order when the target polynomial d (x) is factorized (maximum value of f ⁇ described later).
  • k max is the maximum value of the number of labels ⁇ associated with one piece of identification information t.
  • n is an integer of 1 or more
  • u 0 , w 0 , z 0 , u t , w t , and z t are each an integer of 0 or more.
  • GL is an abbreviation for General Linear. That is, GL is a general linear group, a set of square matrices whose determinants are not 0, and a group for multiplication.
  • the master key generation unit 110 sets e (g, g) ⁇ to g T by the processing device.
  • the master key generation unit 110 executes the algorithm Gob shown in Equation 124 to generate param, base B 0 and base B * 0 , base B t and base B * t. To do.
  • the master key generation unit 110 the processing device is generated as shown in part the base B ⁇ 0 and partial base B ⁇ t and the number 125 of the basis B t of the basis B 0 generated in (S101).
  • the master key generation unit 110 combines the generated partial base B ⁇ 0 and the partial base B ⁇ t , the security parameter ⁇ input in (S101), and the param generated in (S101), and sets the public parameter pk To do.
  • the master key generation unit 110 (S103: Master key generation step)
  • the master key generation unit 110 the processing unit, generated as shown the partial base B ⁇ * 0 of the basis B * 0 that generated and a portion basis B ⁇ * t of the basis B * t to the number 126 (S101) To do.
  • the master key generation unit 110 sets the generated partial base B ⁇ * 0 and partial base B ⁇ * t as the master key sk.
  • the master key storage unit 120 stores the public parameter pk generated in (S102) in the storage device. Further, the master key storage unit 120 stores the master key sk generated in (S103) in the storage device.
  • the key generation apparatus 100 executes the Setup algorithm shown in Formula 127 to generate the public parameter pk and the master key sk.
  • the key generation device 100 stores the generated public parameter pk and the master key sk in the storage device.
  • the public parameter is made public via a network, for example, so that the encryption device 200 and the decryption device 300 can obtain it.
  • for example, attribute information of the user of the decryption key sk S is set.
  • the secret information generation unit 141 generates secret information ⁇ ⁇ , ⁇ , 0 and secret information ⁇ ⁇ , ⁇ , 1 as shown in Expression 129 by the processing device.
  • the secret information generation unit 141 generates secret information ⁇ ⁇ , ⁇ , 0 and secret information ⁇ ⁇ , ⁇ , 1 as shown in Equation 130 by the processing device.
  • the secret information generation unit 141 uses the processing device to store the secret information s 0 ( ⁇ , ⁇ , 0), the secret information s 0 ( ⁇ , ⁇ , 1) , the secret information s i ( ⁇ , ⁇ , 0), and the secret information.
  • s i ( ⁇ , ⁇ , 1) is generated as shown in Equation 131.
  • Expression 114 is provided for the base B and the base B * shown in Expression 113.
  • the number 132, s 0 as a coefficient of a basis vector b * 0, 1 of the basis B * 0 ( ⁇ , ⁇ , ⁇ ) + ⁇ ⁇ , ⁇ set the iota, basis vector b * 0,1 + 1,.
  • B * 0, 1 + n0 are set as e ⁇ 0 ( ⁇ , ⁇ , ⁇ ) , and the basis vectors b * 0, n0 + 1,. . . , B * 0, n0 + u0 is set to 0, and the basis vectors b * 0, n0 + u0 + 1,. . . , B * 0, n0 + u0 + w0 as the coefficients ⁇ 0,1 ( ⁇ , ⁇ , ⁇ ),. . . , ⁇ 0, w0 ( ⁇ , ⁇ , ⁇ ) and the basis vectors b * 0, n0 + u0 + w0 + 1,. . .
  • n0, u0, w0, z0 is that of n 0, u 0, w 0 , z 0 , respectively.
  • E ⁇ 0 ( ⁇ , ⁇ , ⁇ ) is a 2mf max- dimensional vector in which 1 is set as a coefficient of one basis vector and 0 is set as a coefficient of another basis vector, and 1 as a coefficient. Are different vectors for each ( ⁇ , ⁇ , ⁇ ).
  • e ⁇ i ( ⁇ , ⁇ , ⁇ ) is a 2mf max k max dimensional vector in which 1 is set as the coefficient of one basis vector and 0 is set as the coefficient of the other basis vector,
  • the basis vectors for which 1 is set as a coefficient are different vectors for each ( ⁇ , ⁇ , ⁇ ).
  • E ⁇ 1 is an n-dimensional vector in which 1 is set as the coefficient of the basis vector b * t, 1 and 0 is set as the coefficient of the other basis vector.
  • the key distribution unit 150 includes the access structure S input in (S201) and k * 0 ( ⁇ , ⁇ , ⁇ ) , k * 1 ( ⁇ , ⁇ , ⁇ ),. . . , K * L ( ⁇ , ⁇ , ⁇ ) as elements, the secret key sk S is secretly distributed to the decryption device 300 via the network, for example.
  • the decryption key sk S may be distributed to the decryption device 300 by other methods.
  • the key generation device 100 generates the decryption key sk S by executing the KeyGen algorithm expressed by Equation 134 to Equation 135.
  • the key generation device 100 distributes the generated decryption key sk S to the decryption device 300.
  • the encryption device 200 includes a public parameter acquisition unit 210, an information input unit 220, an encrypted data generation unit 230, and a data transmission unit 240.
  • the processing of the Enc algorithm will be described based on FIG. (S301: Public parameter acquisition step)
  • the public parameter acquisition unit 210 acquires, for example, the public parameter pk generated by the key generation device 100 via the network by the communication device.
  • the attribute set ⁇ is set with, for example, user attribute information that can be decrypted.
  • the encrypted data generation unit 230 generates the element c 0 of the ciphertext ct ⁇ by the processing device as shown in Formula 136. Encrypted data generation unit 230, the processing unit, for each integer t included in the attribute information gamma, it generates an element c t of ciphertext ct gamma as shown in (137). The encrypted data generation unit 230 generates the element cd + 1 of the ciphertext ct ⁇ by the processing device as shown in Equation 138.
  • the data transmission unit 240 transmits the ciphertext ct ⁇ including the attribute set ⁇ input in (S302) and the c 0 , c t , and cd + 1 generated in (S303) to the network using, for example, a communication device.
  • the ciphertext ct ⁇ may be transmitted to the decryption apparatus 300 by other methods.
  • step S304 the encryption apparatus 200 transmits the generated ciphertext ct ⁇ to the decryption device 300.
  • the decoding device 300 includes an information acquisition unit 310, a span program calculation unit 320, a complementary coefficient calculation unit 330, and a decoding unit 340.
  • the information acquisition unit 310 includes a decryption key acquisition unit 311 and a ciphertext acquisition unit 312.
  • the complementary coefficient calculation unit 330 includes a polynomial selection unit 331 and a coefficient calculation unit 332.
  • the decoding unit 340 includes a pairing calculation unit 341 and a message calculation unit 342.
  • the span program calculation unit 320 determines whether or not the access structure S included in the decryption key sk S acquired in (S401) accepts ⁇ included in the ciphertext ct ⁇ acquired in (S402) by the processing device. judge.
  • the method of determining whether or not the access structure S accepts ⁇ is as described in “Second-1.2th span program in the first embodiment”. If the access structure S accepts ⁇ (accepted in S403), the span program calculation unit 320 advances the process to (S404). On the other hand, if the access structure S rejects ⁇ (rejection in S403), the ciphertext ct ⁇ cannot be decrypted with the decryption key sk S , and the process ends.
  • the polynomial selection unit 331 of the complementary coefficient calculation unit 330 uses the processing device to set I ( ⁇ , ⁇ ) ⁇ ⁇ 1,. . . , L ⁇ .
  • the calculation method of I ( ⁇ , ⁇ ) is as described in “2-2. Attribute inner product and secondary span program of the first embodiment”.
  • the pairing calculation unit 341 of the decryption unit 340 generates the session key K ⁇ , 0 , K ⁇ , 1 by calculating the formula 141 using the processing device.
  • the cryptographic system 10 implements a functional encryption scheme using a secondary span program.
  • the range that can be expressed as the relationship R is wide.
  • the polynomial a i (x) is divided by the polynomial d ⁇ (x) ⁇ for each polynomial d ⁇ (x) f ⁇ obtained by factoring the target polynomial d (x).
  • An element in which the remainder is set and an element in which the remainder is set by dividing the polynomial b i (x) by the polynomial d ⁇ (x) f ⁇ are key elements k * 0 ( ⁇ , ⁇ , ⁇ ) , k * 1 ( ⁇ , ⁇ , ⁇ ),. . . , K * L ( ⁇ , ⁇ , ⁇ ) .
  • secret information ⁇ and secret information ⁇ are distributed and set in each key element k * 0 ( ⁇ , ⁇ , ⁇ ) . Then, by performing pairing operation between the key element and the cryptographic element using the coefficients ⁇ and ⁇ , the remainder set for each key element is set to 0, the secret information ⁇ is set to 0, and the secret information ⁇ is set to 1.
  • session keys K ⁇ , 0 , K ⁇ , 1 are extracted from the ciphertext. As a result, a functional encryption method using a secondary span program is realized.
  • the KP-FE method has been described.
  • the CP-FE method can also be realized by representing the KeyGen algorithm, the Enc algorithm, and the Dec algorithm as shown in Expression 145 to Expression 148, respectively.
  • the Setup algorithm is the same for the KP-FE method and the CP-FE method.
  • an attribute-based encryption scheme can be achieved by representing the Setup algorithm, KeyGen algorithm, Enc algorithm, and Dec algorithm as shown in Equations 149 to 153, respectively.
  • n t is 2mf max k max +2.
  • the CP-FE scheme shown in Formula 145 to Formula 148 can be changed to the attribute-based encryption scheme.
  • Embodiment 3 FIG.
  • a functional encryption scheme in which the number of dimensions of each base is small instead of a larger number of bases than in the functional encryption scheme described in the second embodiment will be described.
  • a description will be given focusing on differences from the cryptographic system 10 according to the second embodiment.
  • the configuration of key generation apparatus 100, encryption apparatus 200, and decryption apparatus 300 according to Embodiment 3 is the same as that of key generation apparatus 100, encryption apparatus 200, and decryption apparatus 300 according to Embodiment 2 shown in FIGS. Same as the configuration. Since the processing of the Dec algorithm according to the third embodiment is the same as the processing of the Dec algorithm according to the second embodiment, here, the processing of the Setup algorithm, the KeyGen algorithm, and the Enc algorithm according to the third embodiment will be described. To do.
  • the process flow of the Setup algorithm, the KeyGen algorithm, and the Enc algorithm according to the third embodiment is the same as the process flow of the Setup algorithm, the KeyGen algorithm, and the Enc algorithm according to the second embodiment shown in FIGS.
  • n is an integer of 1 or more, and u 0 , w 0 , z 0 , u t , w t , and z t are each an integer of 0 or more.
  • the process (5) is the same as that in the second embodiment.
  • the master key generation unit 110 based on linear transformation X t generated in (6) (tau, kappa, iota), base from canonical basis A t generated in (5) B t ( ⁇ , ⁇ , ⁇ ) is generated.
  • the master key generation unit 110 as in the second embodiment, the linear transformation X * t generated in (7) (tau, kappa, iota) based on, from the canonical basis A t generated in (5) A base B * t ( ⁇ , ⁇ , ⁇ ) is generated.
  • the process (10) is the same as that in the second embodiment.
  • the master key generation unit 110 uses the processing device to generate the partial base B ⁇ 0 ( ⁇ , ⁇ , ⁇ ) of the base B 0 ( ⁇ , ⁇ , ⁇ ) generated in (S101 ) and the base B t ( ⁇ , ⁇ , ⁇ ) . parts of iota) base B ⁇ t ( ⁇ , ⁇ , ⁇ ) and generated as indicated in Formula 154.
  • the master key generation unit 110 generates the generated partial base B ⁇ 0 ( ⁇ , ⁇ , ⁇ ) and partial base B ⁇ t ( ⁇ , ⁇ , ⁇ ) , the security parameter ⁇ input in (S101), and (S101 ) And the param generated in () are used as a public parameter pk.
  • the master key generation unit 110 uses the processing device to generate the partial base B ⁇ * 0 ( ⁇ , ⁇ , ⁇ ) of the base B * 0 ( ⁇ , ⁇ , ⁇ ) generated in (S101 ) and the base B * t ( ⁇ , ⁇ , ⁇ ) and a partial basis B ⁇ * t ( ⁇ , ⁇ , ⁇ ) are generated as shown in Equation 155.
  • the master key generation unit 110 sets the generated partial basis B ⁇ * 0 ( ⁇ , ⁇ , ⁇ ) and partial basis B ⁇ * t ( ⁇ , ⁇ , ⁇ ) as the master key sk.
  • the key generation device 100 executes the Setup algorithm shown in Formula 156 to generate the public parameter pk and the master key sk.
  • the key generation device 100 stores the generated public parameter pk and the master key sk in the storage device.
  • the key generation device 100 generates the decryption key sk S by executing the KeyGen algorithm expressed by Equation 159 to Equation 160.
  • the key generation device 100 distributes the generated decryption key sk S to the decryption device 300.
  • the encrypted data generation unit 230 generates the element c 0 ( ⁇ , ⁇ , ⁇ ) of the ciphertext ct ⁇ as shown in Expression 161 by the processing device.
  • the encrypted data generation unit 230 generates the element c t ( ⁇ , ⁇ , ⁇ ) of the ciphertext ct ⁇ as shown in Expression 162 for each integer t included in the attribute information ⁇ by the processing device.
  • the encrypted data generation unit 230 generates the element cd + 1 of the ciphertext ct ⁇ as shown in Expression 163 by the processing device.
  • step S304 the encryption device 200 transmits the generated ciphertext ct ⁇ to the decryption device 300.
  • the cryptographic system 10 according to the third embodiment is different from the functional cryptographic scheme described in the second embodiment in that the number of bases is increased, and the functional cryptographic scheme having a smaller number of dimensions of each base. Is realized.
  • the KP-FE method has been described.
  • the CP-FE method can also be realized by representing the KeyGen algorithm and the Enc algorithm as shown in Expression 165 to Expression 167, respectively.
  • the Setup algorithm is the same for the KP-FE method and the CP-FE method.
  • the Dec algorithm is the same as the Dec algorithm shown in Formula 148.
  • an attribute-based encryption scheme can be obtained by setting the Setup algorithm, KeyGen algorithm, and Enc algorithm as shown in Formula 168 to Formula 171, respectively.
  • n t is 2 in the Setup algorithm.
  • the Dec algorithm is the same as the Dec algorithm shown in Formula 153.
  • the CP-FE scheme shown in Formula 165 to Formula 167 can be changed to the attribute-based encryption scheme.
  • Embodiment 4 FIG.
  • an element in which a remainder obtained by dividing the polynomial a i (x) by the polynomial d ⁇ (x) ⁇ is set.
  • an element in which a remainder obtained by dividing the polynomial b i (x) by the polynomial d ⁇ (x) f ⁇ is set as a key element.
  • the configuration of key generation apparatus 100, encryption apparatus 200, and decryption apparatus 300 according to Embodiment 4 is the same as that of key generation apparatus 100, encryption apparatus 200, and decryption apparatus 300 according to Embodiment 2 shown in FIGS. Same as the configuration.
  • the Setup algorithm and Enc algorithm according to the fourth embodiment are the same as the Setup algorithm and Enc algorithm according to the second embodiment.
  • the process flow of the Dec algorithm according to the fourth embodiment is the same as the process flow of the Dec algorithm according to the second embodiment shown in FIG.
  • FIG. 12 is a flowchart showing the processing of the KeyGen algorithm according to the fourth embodiment.
  • the processing from (S501) to (S503) is the same as the processing from (S201) to (S203) shown in FIG. 9, and the processing from (S505) is the same as the processing from (S206) shown in FIG. It is.
  • the 2mf max- dimensional vectors that are set, and the basis vectors for which 1 is set as a coefficient are different for each ( ⁇ , ⁇ , ⁇ ).
  • the key generation device 100 generates the decryption key sk S by executing the KeyGen algorithm shown in Expression 174 to Expression 175. Then, in (S505), the key generation device 100 distributes the generated decryption key sk S to the decryption device 300.
  • the pairing calculation unit 341 of the decryption unit 340 generates the session key K ⁇ , 0 , K ⁇ , 1 by calculating Formula 177 using the processing device.
  • the cryptographic system 10 includes an element obtained by assigning the random value ⁇ to the polynomial d ⁇ (x) ⁇ and an element obtained by assigning the random value ⁇ to the polynomial d ⁇ (x) f ⁇ - ⁇ .
  • a functional encryption method is realized.
  • the KP-FE method has been described.
  • the CP-FE method can be realized by representing the KeyGen algorithm, the Enc algorithm, and the Dec algorithm as shown in Equations 181 to 184, respectively.
  • the Setup algorithm is the same for the KP-FE method and the CP-FE method.
  • an attribute-based encryption scheme can be achieved by representing the KeyGen algorithm and the Dec algorithm as shown in Equation 185 to Equation 187, respectively.
  • n t is 2mf max k max +2.
  • the Setup algorithm is the same as the Setup algorithm shown in Formula 149
  • the Enc algorithm is the same as the Enc algorithm shown in Formula 152.
  • the functional encryption method according to the fourth embodiment is replaced with the number of bases as in the case of the functional encryption scheme according to the third embodiment. Furthermore, it can be easily transformed into a functional cryptosystem with a small number of dimensions for each basis.
  • Non-Patent Document 4 Unified-Policy FE (UP-FE) system described in Non-Patent Document 4 can also be easily configured from the KP-FE system and the CP-FE system.
  • Unified-Policy FE UP-FE
  • Embodiment 5 FIG. In the above embodiment, the method for realizing the cryptographic processing in the dual vector space has been described. In the fifth embodiment, a method for realizing cryptographic processing in a dual module will be described.
  • the cryptographic primitive processing is realized in the cyclic group of prime order q.
  • the ring number R is expressed as in the number 188 using the composite number M, the encryption processing described in the above embodiment can be applied even to modules with the ring number R as a coefficient.
  • FIG. 13 is a diagram illustrating an example of a hardware configuration of the key generation device 100, the encryption device 200, and the decryption device 300.
  • the key generation device 100, the encryption device 200, and the decryption device 300 include a CPU 911 (Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, A processor).
  • CPU 911 Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, A processor
  • the CPU 911 is connected to the ROM 913, the RAM 914, the LCD 901 (Liquid Crystal Display), the keyboard 902 (K / B), the communication board 915, and the magnetic disk device 920 via the bus 912, and controls these hardware devices.
  • the magnetic disk device 920 (fixed disk device)
  • a storage device such as an optical disk device or a memory card read / write device may be used.
  • the magnetic disk device 920 is connected via a predetermined fixed disk interface.
  • the ROM 913 and the magnetic disk device 920 are examples of a nonvolatile memory.
  • the RAM 914 is an example of a volatile memory.
  • the ROM 913, the RAM 914, and the magnetic disk device 920 are examples of a storage device (memory).
  • the keyboard 902 and the communication board 915 are examples of input devices.
  • the communication board 915 is an example of a communication device.
  • the LCD 901 is an example of a display device.
  • an operating system 921 OS
  • a window system 922 a program group 923
  • a file group 924 are stored in the magnetic disk device 920 or the ROM 913.
  • the programs in the program group 923 are executed by the CPU 911, the operating system 921, and the window system 922.
  • the program group 923 includes “master key generation unit 110”, “master key storage unit 120”, “information input unit 130”, “decryption key generation unit 140”, “key distribution unit 150”, “public” in the above description.
  • Parameter acquisition unit 210 “ information input unit 220 ”,“ encrypted data generation unit 230 ”,“ data transmission unit 240 ”,“ information acquisition unit 310 ”,“ span program calculation unit 320 ”,“ complement coefficient calculation unit 330 ” ”,“ Decryption unit 340 ”, and the like, software and programs that execute the functions described above, and other programs are stored.
  • the program is read and executed by the CPU 911.
  • the file group 924 includes “public parameter pk”, “master secret key sk”, “decryption key sk S , sk ⁇ ”, “ciphertext ct ⁇ , ct S ”, “access structure S”, “ Information such as “attribute information” and “message msg”, data, signal values, variable values, and parameters are stored as items of “file” and “database”.
  • the “file” and “database” are stored in a recording medium such as a disk or a memory.
  • Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit, and extracted, searched, referenced, compared, and calculated. Used for the operation of the CPU 911 such as calculation / processing / output / printing / display. Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during the operation of the CPU 911 for extraction, search, reference, comparison, calculation, calculation, processing, output, printing, and display. Is remembered.
  • the arrows in the flowchart mainly indicate input / output of data and signals, and the data and signal values are recorded in a memory of the RAM 914, other recording media such as an optical disk, and an IC chip.
  • Data and signals are transmitted online by a bus 912, signal lines, cables, other transmission media, and radio waves.
  • what is described as “to part” in the above description may be “to circuit”, “to device”, “to device”, “to means”, and “to function”. It may be “step”, “ ⁇ procedure”, “ ⁇ processing”.
  • ⁇ device may be “ ⁇ circuit”, “ ⁇ equipment”, “ ⁇ means”, “ ⁇ function”, and “ ⁇ step”, “ ⁇ procedure”, “ May be “processing”.
  • to process may be “to step”. That is, what is described as “ ⁇ unit” may be realized by firmware stored in the ROM 913. Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware.
  • Firmware and software are stored in a recording medium such as ROM 913 as a program. The program is read by the CPU 911 and executed by the CPU 911. That is, the program causes a computer or the like to function as the “ ⁇ unit” described above. Alternatively, the procedure or method of “unit” described above is executed by a computer or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

 パラメータΦが設定された暗号化鍵ekをパラメータΨが設定された復号鍵dkで復号する場合に、関係R(Φ,Ψ)が成立する場合に限り、復号鍵dkは暗号化鍵ekで暗号化された暗号文を復号することができる関数型暗号方式において、関係Rとして表現できる範囲を広くすることを目的とする。暗号システム10は、多項式d(x)と複数の多項式D(x)と述語情報とを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文とし、他方を復号鍵とする。復号装置300は、述語情報と属性情報とに基づき、複数の多項式D(x)から少なくとも一部の多項式D(x)を選択し、選択した多項式D(x)に係数Δを掛けた多項式Δ(x)に基づき構成される多項式を、多項式d(x)で割り切れるようにする係数Δを計算する。復号装置300は、計算した係数Δに基づき、前記暗号文を復号する。

Description

暗号システム、暗号方法、暗号プログラム及び復号装置
 この発明は、2次スパンプログラムの考えを利用した関数型暗号方式に関する。
 関数型暗号方式は、暗号化鍵ekと、復号鍵dkとの間の関係をより高度化し、より柔軟にした暗号方式である。
 関数型暗号方式において、暗号化鍵ekと復号鍵dkとには、それぞれ、パラメータΦとパラメータΨとが設定される。そして、関係R(Φ,Ψ)が成立する場合に限り、復号鍵dkは暗号化鍵ekで暗号化された暗号文を復号することができる。
 非特許文献3には、関数型暗号方式についての記載がある。
 非特許文献6には、2次スパンプログラムについての記載がある。
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-74, Springer Heidelberg (2008) Okamoto, T., Takashima, K.: Hierarchical predicate encryption for inner-products, In: ASIACRYPT 2009, Springer Heidelberg (2009) Okamoto, T., Takashima, K.: Fully secure functional encryption with general relations from the decisional linear assumption. In: Rabin, T. (ed.) CRYPTO 2010. LNCS, vol. 6223, pp. 191-208. Springer Heidelberg (2010). Full version is available at http://eprint.iacr.org/2010/563 Okamoto, T., Takashima, K.: Efficient attribute-based signatures for non-monotone predicates in the standard model, In: PKC 2011, Springer Heidelberg (2011) Okamoto, T., Takashima, K.:Decentralized Attribute-Based Signatures http://eprint.iacr.org/2011/701 Rosario Gennaro and Craig Gentry and Bryan Parno and Mariana Raykova: Quadratic Span Programs and Succinct NIZKs without PCPs http://eprint.iacr.org/2012/215
 非特許文献3に記載された関数型暗号方式は、1次スパンプログラムを利用した方式である。この関数型暗号方式では、関係Rとして表現できる範囲に限界がある。
 この発明は、2次スパンプログラムの考えを利用することにより、関係Rとして表現できる範囲を広くすることが可能な関数型暗号方式を提供することを目的とする。
 この発明に係る暗号システムは、
 2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文として生成する暗号化装置と、
 前記第1情報と前記第2情報とのうちの他方を復号鍵とし、前記2次スパンプログラムが前記属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号装置と
を備えることを特徴とする。
 この発明に係る暗号システムでは、2次スパンプログラムの考えを利用することにより、関係Rとして表現できる範囲が理想化された範囲とすることが可能である。
2次スパンプログラムの説明図。 部分集合Iの説明図。 KP-FE方式を実行する暗号システム10の構成図。 CP-FE方式を実行する暗号システム10の構成図。 実施の形態2に係る鍵生成装置100の構成図。 実施の形態2に係る暗号化装置200の構成図。 実施の形態2に係る復号装置300の構成図。 実施の形態2に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態2に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態2に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態2に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態4に係るKeyGenアルゴリズムの処理を示すフローチャート。 鍵生成装置100、暗号化装置200、復号装置300のハードウェア構成の一例を示す図。
 以下、図に基づき、発明の実施の形態を説明する。
 以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
 以下の説明における記法について説明する。
 Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
Figure JPOXMLDOC01-appb-M000001
 Aが集合であるとき、数102は、Aからyを一様に選択することを表す。つまり、数102において、yは一様乱数である。
Figure JPOXMLDOC01-appb-M000002
 数103は、yがzにより定義された集合であること、又はyがzを代入された集合であることを表す。
Figure JPOXMLDOC01-appb-M000003
 aが定数であるとき、数104は、機械(アルゴリズム)Aが入力xに対しaを出力することを表す。
Figure JPOXMLDOC01-appb-M000004
 数105、つまりFは、位数qの有限体を示す。
Figure JPOXMLDOC01-appb-M000005
 ベクトル表記は、有限体Fにおけるベクトル表示を表す。つまり、数106である。
Figure JPOXMLDOC01-appb-M000006
 数107は、数108に示す2つのベクトルxとvとの数109に示す内積を表す。
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
Figure JPOXMLDOC01-appb-M000009
 Xは、行列Xの転置行列を表す。
 b(i=1,...,n)が空間Vのベクトルの要素であるとき、つまり、数110であるとき、数111は、数112によって生成される部分空間を表す。
Figure JPOXMLDOC01-appb-M000010
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
 数113に示す基底Bと基底Bとに対して、数114である。
Figure JPOXMLDOC01-appb-M000013
Figure JPOXMLDOC01-appb-M000014
 また、以下の説明において、“Vt”が下付き又は上付きで示されている場合、このVtはVを意味する。同様に、“δi,j”が上付きで示されている場合、このδi,jは、δi,jを意味する。同様に、“fτ”、“κτ”が上付きで示されている場合、このfτは、fτを意味し、このκτはκτを意味する。
 また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
 また、以下の説明において、暗号処理は、鍵生成処理、暗号化処理、復号処理を含む。
 実施の形態1.
 この実施の形態では、2次スパンプログラムを用いた関数型暗号方式の基礎となる概念と、2次スパンプログラムを用いた関数型暗号方式の概要とを説明する。
 第1に、関数型暗号方式を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)」という豊かな数学的構造を有する空間を説明する。
 第2に、関数型暗号方式を実現するための概念を説明する。ここでは、「2次スパンプログラム」、「属性情報の等号と2次スパンプログラム」、「秘密分散方式」について説明する。
 第3に、2次スパンプログラムを用いた関数型暗号方式の概要について説明する。
 <第1.双対ペアリングベクトル空間>
 まず、対称双線形ペアリング群について説明する。
 対称双線形ペアリング群(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である。
 以下の説明において、Gbpgを、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を出力するアルゴリズムとする。
 次に、双対ペアリングベクトル空間について説明する。
 双対ペアリングベクトル空間(q,V,G,A,e)は、対称双線形ペアリング群(param:=(q,G,G,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,G,A,e)は、素数q、数115に示すF上のN次元ベクトル空間V、位数qの巡回群G、空間Vの標準基底A:=(a,...,a)の組であり、以下の演算(1)(2)を有する。ここで、aは、数116に示す通りである。
Figure JPOXMLDOC01-appb-M000015
Figure JPOXMLDOC01-appb-M000016
 演算(1):非退化双線形ペアリング
 空間Vにおけるペアリングは、数117によって定義される。
Figure JPOXMLDOC01-appb-M000017
 これは、非退化双線形である。つまり、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):ディストーション写像
 数118に示す空間Vにおける線形変換φi,jは、数119を行うことができる。
Figure JPOXMLDOC01-appb-M000018
Figure JPOXMLDOC01-appb-M000019
 ここで、線形変換φi,jをディストーション写像と呼ぶ。
 以下の説明において、Gdpvsを、1λ(λ∈自然数)、N∈自然数、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を入力として、セキュリティパラメータがλであり、N次元の空間Vとする双対ペアリングベクトル空間のパラメータparam:=(q,V,G,A,e)の値を出力するアルゴリズムとする。
 なお、ここでは、上述した対称双線形ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。なお、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
 <第2.関数型暗号を実現するための概念>
 <第2-1.2次スパンプログラム>
 図1は、2次スパンプログラムの説明図である。
 体Fにおける2次スパンプログラムは、2つの多項式の集合A={a(x)|i∈{0,...,L}}及び集合B={b(x)|i∈{0,...,L}}と、目標多項式d(x)とを含む。また、2次スパンプログラムは、集合I:={1,...,L}のラベルρを含む。全てのラベルρi(i=1,...,L)は、{p,p,...,p,¬p,...,¬p}のいずれか1つのリテラルへ対応付けられる。つまり、ρ:I→{p,p,...,p,¬p,...,¬p}である。
 入力u:=(u,...,u)∈{0,1}に対して、j=1,...,nの各整数jについて、T(p):=u及びT(¬p):=¬uにより、リテラルの真理値Tが設定される。また、どんな入力uに対しても、pの真理値Tは1が設定される。つまり、T(p):=1である。
 集合Iの部分集合Iは、入力uにより1が設定されたラベルの要素から構成される。つまり、I:={i∈I|T(p(i)=1)}である。又は、I:={i∈I|[ρ(i)=p∧u=1]∨[ρ(i)=¬p∧u=0]∨[ρ(i)=p]}である。
 図2は、部分集合Iの説明図である。
 なお、図2では、n=7,L=6としている。また、図2において、ラベルρは、ρが¬pに、ρがpに、ρがpに、ρが¬pに、ρが¬pに、ρがpにそれぞれ対応付けられているとする。
 ここで、入力u:=(u,...,u)∈{0,1}が、u=1,u=0,u=1,u=0,u=0,u=1,u=1であるとする。この場合、部分集合Iは、破線で囲んだリテラル(p,p,p,p,¬p,¬p,¬p)に対応付けられているラベルρの要素iから構成される。つまり、部分集合Iは、ラベルρ,ρ,ρの要素iから構成され、部分集合I:={i=1,2,4}である。
 2次スパンプログラムは、目標多項式d(x)が数120を割り切るような体F における(α,...,α)及び(β,...,β)の組であって、部分集合Iに含まれない全てのiに対してα=0=βである(α,...,α)及び(β,...,β)の組が存在する場合に限り、入力u∈{0,1}を受理する(又は、部分集合Iを受理する)。そして、2次スパンプログラムは、他の場合には、入力u∈{0,1}を拒絶する。
Figure JPOXMLDOC01-appb-M000020
 つまり、2次スパンプログラムは、目標多項式d(x)が数121を割り切るようなi∈Iについてのα及びβの組が存在する場合に限り、入力u∈{0,1}を受理する。
Figure JPOXMLDOC01-appb-M000021
 そして、2次スパンプログラムが入力u∈{0,1}を受理する場合、i∈Iについてのα及びβの組を、多項式時間で計算することが可能である(非特許文献6参照)。
 図2に示す例であれば、2次スパンプログラムは、目標多項式d(x)が数122を割り切るようなi∈I:={i=1,2,4}についてのα及びβの組が存在する場合に限り、入力u∈{0,1}を受理する。
Figure JPOXMLDOC01-appb-M000022
 <第2-2.属性の内積と2次スパンプログラム>
 U(t=1,...,dでありU⊂{0,1})は、部分全集合(sub-universe)であり、属性の集合である。そして、Uは、それぞれ部分全集合の識別情報(t)と、n次元ベクトルで表された属性情報(v)とを含む。つまり、Uは、(t,v)である。ここで、t∈{1,...,d}であり、v∈F である。
 U=(t,v)をpとする。つまり、p=(t,v)である。p:=(t,v )(j=1,...,n;t∈{1,...,d})による2次スパンプログラムQ:=(A,B,d(x),ρ)における、部分集合Iの決定方法について説明する。
 アクセスストラクチャSを、p及び{p:=(t,v )}j=1,...,nを伴う2次スパンプログラムQ:=(A,B,d(x),ρ)とする。つまり、ρ:{1,...,L}→{p,(t,v ),...,(t,v ),¬(t,v ),...,¬(t,v )}である。また、Γを属性集合とする。つまり、Γ:={(t,x )|x ∈F ,1≦t≦d}である。ここで、tは、{1,...,d}の部分集合であって、全インデックスである必要はない。
 属性集合ΓがアクセスストラクチャSに与えられると、{p,p,...,p,¬p,...,¬p}のリテラルの真理値Tは次のように決定される。p=(t,v )かつ(t,x )∈Γかつv ・x =0である場合に限り、T(p):=1になる。p=¬(t,v )かつ(t,x )∈Γかつv ・x ≠0である場合に限り、T(¬p):=1になる。T(p):=1になる。他の場合には、真理値Tは0になる。
 そして、I(=I(ρ,Γ)):={i∈I|T(ρ(i))=1}、つまり、I(ρ,Γ):={i∈I|[ρ(i)=(t,v )∧(t,x )∈Γ∧(v ・x )=0]∨[ρ(i)=¬(t,v )∧(t,x )∈Γ∧v ・x ≠0]∨[ρ(i)=p]}とする。
 <第3.関数型暗号方式の概要>
 復号鍵と暗号文との一方に上述したアクセスストラクチャSを持たせ、他方に属性集合Γを持たせることにより、関数型暗号方式を構成する。
 アクセスストラクチャSを復号鍵に持たせた関数型暗号方式をKey-Policy関数型暗号(KP-FE)方式と呼び、アクセスストラクチャSを暗号文に持たせた暗号方式をCiphertext-Policy関数型暗号(CP-FE)方式と呼ぶ。
 KP-FE方式及びCP-FE方式の構成と、各方式を実行する暗号システム10の構成とを説明する。
 <第3-1.KP-FE方式>
 KP-FE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
 (Setup)
 Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
 (KeyGen)
 KeyGenアルゴリズムは、アクセスストラクチャSと、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skを出力する確率的アルゴリズムである。
 (Enc)
 Encアルゴリズムは、メッセージmsgと、属性の集合であるΓ:={(t,x )|x ∈F ,1≦t≦d}と、公開パラメータpkとを入力として、暗号文ctΓを出力する確率的アルゴリズムである。
 (Dec)
 Decアルゴリズムは、属性の集合であるΓの下で暗号化された暗号文ctΓと、アクセスストラクチャSに対する復号鍵skと、公開パラメータpkとを入力として、メッセージmsg、又は、識別情報⊥を出力するアルゴリズムである。
 図3は、KP-FE方式を実行する暗号システム10の構成図である。
 暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
 鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSを入力としてKeyGenアルゴリズムを実行して、復号鍵skを生成して復号装置300へ秘密裡に配布する。
 暗号化装置200は、メッセージmsgと、属性の集合Γと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctΓを生成する。暗号化装置200は、生成した暗号文ctΓを復号装置300へ送信する。
 復号装置300は、公開パラメータpkと、復号鍵skと、暗号文ctΓとを入力としてDecアルゴリズムを実行して、メッセージmsg又は識別情報⊥を出力する。
 <第3-2.CP-FE方式>
 CP-FE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
 (Setup)
 Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
 (KeyGen)
 KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x )|x ∈F ,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skΓを出力する確率的アルゴリズムである。
 (Enc)
 Encアルゴリズムは、メッセージmsgと、アクセスストラクチャSと、公開パラメータpkとを入力として、暗号文ctを出力する確率的アルゴリズムである。
 (Dec)
 Decアルゴリズムは、アクセスストラクチャSの下で暗号化された暗号文ctと、属性の集合であるΓに対する復号鍵skΓと、公開パラメータpkとを入力として、メッセージmsg、又は、識別情報⊥を出力するアルゴリズムである。
 図4は、CP-FE方式を実行する暗号システム10の構成図である。
 暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
 鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合Γを入力としてKeyGenアルゴリズムを実行して、復号鍵skΓを生成して復号装置300へ秘密裡に配布する。
 暗号化装置200は、メッセージmsgと、アクセスストラクチャSと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctを生成する。暗号化装置200は、生成した暗号文ctを復号装置300へ送信する。
 復号装置300は、公開パラメータpkと、復号鍵skΓと、暗号文ctとを入力としてDecアルゴリズムを実行して、メッセージmsg又は識別情報⊥を出力する。
 KP-FE方式及びCP-FE方式のどちらにおいても、Decアルゴリズムでは、アクセスストラクチャSと属性集合Γとに基づき、上述した方法により、部分集合I(ρ,Γ)を選択し、さらに係数(α,...,α)及び係数(β,...,β)を特定する。そして、部分集合I(ρ,Γ)と係数(α,...,α)及び係数(β,...,β)とに基づき、暗号文ctΓ(又はct)を復号してメッセージmsgを計算する。
 なお、Setupアルゴリズムは、通常、システムのセットアップ時に1度だけ実行される。KeyGenアルゴリズムは、ユーザの復号鍵を生成する度に実行される。Encアルゴリズムは、メッセージmsgを暗号化する度に実行される。Decアルゴリズムは、暗号文を復号する度に実行される。
 実施の形態1に係る暗号システム10では、2次スパンプログラムに基づくアクセスストラクチャSを用いて関数型暗号方式を構成する。これにより、関係Rとして表現できる範囲を理想化された範囲とすることが可能となる。
 実施の形態2.
 実施の形態2では、2次スパンプログラムを用いた関数型暗号方式の構成例について説明する。
 ここでは、KP-FE方式を例として説明する。
 図5は、実施の形態2に係る鍵生成装置100の構成図である。図6は、実施の形態2に係る暗号化装置200の構成図である。図7は、実施の形態2に係る復号装置300の構成図である。
 図8と図9とは、鍵生成装置100の動作を示すフローチャートである。図8はSetupアルゴリズムの処理を示すフローチャートであり、図9はKeyGenアルゴリズムの処理を示すフローチャートである。図10は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図11は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
 鍵生成装置100の機能と動作とについて説明する。
 鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、秘密情報生成部141、鍵要素生成部142を備える。
 図8に基づき、Setupアルゴリズムの処理について説明する。
 (S101:正規直交基底生成ステップ)
 マスター鍵生成部110は、処理装置により、数123を計算して、パラメータparamと、基底B及び基底B と、基底B及び基底B とを生成する。
Figure JPOXMLDOC01-appb-M000023
 つまり、マスター鍵生成部110は以下の処理を実行する。
 (1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)を入力する。
 (2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλを入力としてアルゴリズムGbpgを実行して、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を生成する。
 (3)マスター鍵生成部110は、処理装置により、乱数ψを生成する。
 (4)マスター鍵生成部110は、Nにn+u+w+zを設定し、t=1,...,d(dは1以上の整数)の各整数tについて、Nにn+u+w+zを設定する。ここで、nは2mfmax+1であり、nは2mfmaxmax+nである。mは、目標多項式d(x)を因数分解した場合の因数の数である。fmaxは、目標多項式d(x)を因数分解した場合の因数の次数の最大値(後述するfτの最大値)である。kmaxは、1つの識別情報tに対応付けられるラベルρの個数の最大値である。nは1以上の整数であり、u,w,z,u,w,zはそれぞれ0以上の整数である。
 続いて、マスター鍵生成部110は、t=0,...,dの各整数tについて以下の(5)から(9)までの処理を実行する。
 (5)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλと、(4)で設定したNと、(2)で生成したparam:=(q,G,G,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)の値を生成する。
 (6)マスター鍵生成部110は、処理装置により、(4)で設定した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である。
 (7)マスター鍵生成部110は、処理装置により、乱数ψと線形変換Xとに基づき、X :=(νt,i,ji,j:=ψ・(X -1を生成する。なお、(νt,i,ji,jも(χt,i,ji,jと同様に、行列νt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Nである。
 (8)マスター鍵生成部110は、処理装置により、(6)で生成した線形変換Xに基づき、(5)で生成した標準基底Aから基底Bを生成する。なお、x t,iとは、線形変換Xのi行目を示す。
 (9)マスター鍵生成部110は、処理装置により、(7)で生成した線形変換X に基づき、(5)で生成した標準基底Aから基底B を生成する。なお、v t,iとは、線形変換X のi行目を示す。
 (10)マスター鍵生成部110は、処理装置により、gにe(g,g)ψを設定する。また、マスター鍵生成部110は、paramに(5)で生成した{paramVtt=0,...,dと、gとを設定する。
 すなわち、(S101)で、マスター鍵生成部110は、数124に示すアルゴリズムGobを実行して、paramと、基底B及び基底B と、基底B及び基底B とを生成する。
Figure JPOXMLDOC01-appb-M000024
 (S102:公開パラメータ生成ステップ)
 マスター鍵生成部110は、処理装置により、(S101)で生成した基底Bの部分基底B^と、基底Bの部分基底B^とを数125に示すように生成する。
Figure JPOXMLDOC01-appb-M000025
 マスター鍵生成部110は、生成した部分基底B^及び部分基底B^と、(S101)で入力されたセキュリティパラメータλと、(S101)で生成したparamとを合わせて、公開パラメータpkとする。
 (S103:マスター鍵生成ステップ)
 マスター鍵生成部110は、処理装置により、(S101)で生成した基底B の部分基底B^ と、基底B の部分基底B^ とを数126に示すように生成する。
Figure JPOXMLDOC01-appb-M000026
 マスター鍵生成部110は、生成した部分基底B^ と部分基底B^ とをマスター鍵skとする。
 (S104:マスター鍵記憶ステップ)
 マスター鍵記憶部120は、(S102)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S103)で生成したマスター鍵skを記憶装置に記憶する。
 つまり、(S101)から(S103)において、鍵生成装置100は、数127に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、(S104)で、鍵生成装置100は、生成した公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
 なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
Figure JPOXMLDOC01-appb-M000027
 図9に基づき、KeyGenアルゴリズムの処理について説明する。
 (S201:情報入力ステップ)
 情報入力部130は、入力装置により、上述したアクセスストラクチャS:=(A,B,d(x),ρ)を入力する。なお、ρは、例えば、復号鍵skの使用者の属性情報が設定されている。また、アクセスストラクチャSに含まれる目標多項式d(x)は、数128に示すように、τ=1,...,mのm個の因数dτ(x)fτに因数分解可能である。
Figure JPOXMLDOC01-appb-M000028
 (S202:秘密情報π生成ステップ)
 秘密情報生成部141は、処理装置により、秘密情報πτ,κ,0及び秘密情報πτ,κ,1を数129に示すように生成する。
Figure JPOXMLDOC01-appb-M000029
 (S203:秘密情報χ生成ステップ)
 秘密情報生成部141は、処理装置により、秘密情報χτ,κ,0及び秘密情報χτ,κ,1を数130に示すように生成する。
Figure JPOXMLDOC01-appb-M000030
 (S204:秘密情報s生成ステップ)
 秘密情報生成部141は、処理装置により、秘密情報s (τ,κ,0)及び秘密情報s (τ,κ,1)と、秘密情報s (τ,κ,0)及び秘密情報s (τ,κ,1)とを数131に示すように生成する。
Figure JPOXMLDOC01-appb-M000031
 (S205:鍵要素生成ステップ)
 鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιとについて、復号鍵skの要素k (τ,κ,ι)を数132に示すように生成する。
Figure JPOXMLDOC01-appb-M000032
 なお、上述したように、数113に示す基底Bと基底Bとに対して、数114である。したがって、数132は、基底B の基底ベクトルb 0,1の係数としてs (τ,κ,ι)+πτ,κ,ιを設定し、基底ベクトルb 0,1+1,...,b 0,1+n0の係数としてe (τ,κ,ι)を設定し、基底ベクトルb 0,n0+1,...,b 0,n0+u0の係数として0を設定し、基底ベクトルb 0,n0+u0+1,...,b 0,n0+u0+w0の係数としてη0,1 (τ,κ,ι),...,η0,w0 (τ,κ,ι)を設定し、基底ベクトルb 0,n0+u0+w0+1,...,b 0,n0+u0+w0+z0の係数として0を設定することを意味する。ここで、n0,u0,w0,z0はそれぞれn,u,w,zのことである。
 また、e (τ,κ,ι)は、1つの基底ベクトルの係数として1が設定され、他の基底ベクトルの係数として0が設定された2mfmax次元のベクトルであって、係数として1が設定される基底ベクトルが(τ,κ,ι)毎に異なるベクトルである。同様に、e (τ,κ,ι)は、1つの基底ベクトルの係数として1が設定され、他の基底ベクトルの係数として0が設定された2mfmaxmax次元のベクトルであって、係数として1が設定される基底ベクトルが(τ,κ,ι)毎に異なるベクトルである。
 また、e は、基底ベクトルb t,1の係数として1が設定され、他の基底ベクトルの係数として0が設定されたn次元のベクトルである。
 鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιと、i=1,...,Lの各整数iとについて、復号鍵skの要素k (τ,κ,ι)を数133に示すように生成する。
Figure JPOXMLDOC01-appb-M000033
 (S206:鍵配布ステップ)
 鍵配布部150は、(S201)で入力したアクセスストラクチャSと、(S205)で生成されたk (τ,κ,ι),k (τ,κ,ι),...,k (τ,κ,ι)とを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skは、他の方法により復号装置300へ配布されてもよい。
 つまり、(S201)から(S205)において、鍵生成装置100は、数134から数135に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S206)で、鍵生成装置100は、生成した復号鍵skを復号装置300へ配布する。
Figure JPOXMLDOC01-appb-M000034
Figure JPOXMLDOC01-appb-M000035
 暗号化装置200の機能と動作とについて説明する。
 暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。
 図10に基づき、Encアルゴリズムの処理について説明する。
 (S301:公開パラメータ取得ステップ)
 公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
 (S302:情報入力ステップ)
 情報入力部220は、入力装置により、復号装置300へ送信するメッセージmsgを入力する。また、情報入力部220は、入力装置により、属性の集合Γ:={(t,x :=(xt,1,...,xt,n∈F ))|1≦t≦d}を入力する。なお、tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。また、属性の集合Γは、例えば、復号可能なユーザの属性情報が設定されている。
 (S303:暗号要素生成ステップ)
 暗号化データ生成部230は、処理装置により、暗号文ctΓの要素cを数136に示すように生成する。
Figure JPOXMLDOC01-appb-M000036
 暗号化データ生成部230は、処理装置により、属性情報Γに含まれる各整数tについて、暗号文ctΓの要素cを数137に示すように生成する。
Figure JPOXMLDOC01-appb-M000037
 暗号化データ生成部230は、処理装置により、暗号文ctΓの要素cd+1を数138に示すように生成する。
Figure JPOXMLDOC01-appb-M000038
 (S304:データ送信ステップ)
 データ送信部240は、(S302)で入力した属性の集合Γと、(S303)で生成されたc,c,cd+1とを要素とする暗号文ctΓを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctΓは、他の方法により復号装置300へ送信されてもよい。
 つまり、(S301)から(S303)において、暗号化装置200は、数139に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。そして、(S304)で、暗号化装置200は生成した暗号文ctΓを復号装置300へ送信する。
Figure JPOXMLDOC01-appb-M000039
 復号装置300の機能と動作とについて説明する。
 復号装置300は、情報取得部310、スパンプログラム計算部320、補完係数計算部330、復号部340を備える。また、情報取得部310は、復号鍵取得部311、暗号文取得部312を備える。また、補完係数計算部330は、多項式選択部331、係数計算部332を備える。また、復号部340は、ペアリング演算部341、メッセージ計算部342を備える。
 図11に基づき、Decアルゴリズムの処理について説明する。
 (S401:復号鍵取得ステップ)
 復号鍵取得部311は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵sk:=(S,k (τ,κ,ι),k (τ,κ,ι),...,k (τ,κ,ι))を取得する。また、復号鍵取得部311は、鍵生成装置100が生成した公開パラメータpkを取得する。
 (S402:暗号文取得ステップ)
 暗号文取得部312は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctΓ:=(Γ,c,c,cd+1)を取得する。
 (S403:スパンプログラム計算ステップ)
 スパンプログラム計算部320は、処理装置により、(S401)で取得した復号鍵skに含まれるアクセスストラクチャSが、(S402)で取得した暗号文ctΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「実施の形態1における第2-1.2次スパンプログラム」で説明した通りである。
 スパンプログラム計算部320は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号文ctΓを復号鍵skで復号できないとして処理を終了する。
 (S404:多項式選択ステップ)
 補完係数計算部330の多項式選択部331は、処理装置により、I(ρ,Γ)⊆{1,...,L}を計算する。I(ρ,Γ)の計算方法は、「実施の形態1の第2-2.属性の内積と2次スパンプログラム」で説明した通りである。
 (S405:係数計算ステップ)
 補完係数計算部330の係数計算部332は、処理装置により、数140となる係数(α,...,α)と、係数(β,...,β)と、次数(κ,...,κ)とを計算する。係数(α,...,α)と、係数(β,...,β)と、次数(κ,...,κ)との計算方法は、どのような方法でもよく、例えば総当たり法により計算してもよい。
Figure JPOXMLDOC01-appb-M000040
 ここで、I(ρ,Γ)に含まれない全てのiについては、α=0=βである。
 (S406:ペアリング演算ステップ)
 復号部340のペアリング演算部341は、処理装置により、数141を計算して、セッション鍵Kτ,0,Kτ,1を生成する。
Figure JPOXMLDOC01-appb-M000041
 (S407:メッセージ計算ステップ)
 復号部340のメッセージ計算部342は、処理装置により、数142を計算して、メッセージmsg’(=msg)を生成する。
Figure JPOXMLDOC01-appb-M000042
 なお、数143に示すように、数141を計算することによりg ζが得られる。そのため、数142を計算することにより、メッセージmsg’(=msg)を得られる。
Figure JPOXMLDOC01-appb-M000043
 つまり、(S401)から(S407)において、復号装置300は、数144に示すDecアルゴリズムを実行して、メッセージmsg’(=msg)を生成する。
Figure JPOXMLDOC01-appb-M000044
 以上のように、実施の形態2に係る暗号システム10では、2次スパンプログラムを利用した関数型暗号方式を実現する。
 2次スパンプログラムを利用することにより、関係Rとして表現できる範囲が広い。
 特に、実施の形態2に係る暗号システム10では、目標多項式d(x)を因数分解した多項式dτ(x)fτ毎に、多項式dτ(x)κで多項式a(x)を割った余りを設定した要素と、多項式dτ(x)fτ-κで多項式b(x)を割った余りを設定した要素とを、鍵要素k (τ,κ,ι),k (τ,κ,ι),...,k (τ,κ,ι)とする。また、各鍵要素k (τ,κ,ι)に、秘密情報πと秘密情報χとを分散させて設定する。そして、係数α,βを用いて、鍵要素と暗号要素とのペアリング演算をすることにより、各鍵要素に設定された余りを0にし、秘密情報πを0にし、秘密情報χを1にすることにより、暗号文からセッション鍵Kτ,0,Kτ,1を抽出する。これにより、2次スパンプログラムを利用した関数型暗号方式を実現する。
 なお、上記説明では、KP-FE方式について説明した。しかし、KeyGenアルゴリズム、Encアルゴリズム、Decアルゴリズムをそれぞれ数145から数148に示すようにすることにより、CP-FE方式とすることも可能である。なお、Setupアルゴリズムは、KP-FE方式とCP-FE方式とで同じである。
Figure JPOXMLDOC01-appb-M000045
Figure JPOXMLDOC01-appb-M000046
Figure JPOXMLDOC01-appb-M000047
Figure JPOXMLDOC01-appb-M000048
 また、上記説明では、関数型暗号方式について説明した。しかし、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズム、Decアルゴリズムをそれぞれ数149から数153に示すようにすることにより、属性ベース暗号方式とすることも可能である。なお、属性ベース暗号方式の場合、Setupアルゴリズムにおいて、nは2mfmaxmax+2である。
Figure JPOXMLDOC01-appb-M000049
Figure JPOXMLDOC01-appb-M000050
Figure JPOXMLDOC01-appb-M000051
Figure JPOXMLDOC01-appb-M000052
Figure JPOXMLDOC01-appb-M000053
 同様に、数145から数148に示すCP-FE方式を属性ベース暗号方式に変更することも可能である。
 また、上記説明では、Nにn+u+w+zを設定し、Nにn+u+w+zを設定した。ここで、例えば、u=n,w=n,z=2として、Nにn+n+n+2=3n+2とし、u=n,w=n,z=1として、Nにn+n+n+1=3n+1としてもよい。
 実施の形態3.
 実施の形態3では、実施の形態2で説明した関数型暗号方式に比べ、基底の数が多くなる代わりに、各基底の次元数が少ない関数型暗号方式を説明する。
 実施の形態3では、実施の形態2に係る暗号システム10と異なる部分を中心に説明する。
 実施の形態3に係る鍵生成装置100、暗号化装置200、復号装置300の構成は、図5~図7に示す実施の形態2に係る鍵生成装置100、暗号化装置200、復号装置300の構成と同じである。
 実施の形態3に係るDecアルゴリズムの処理については、実施の形態2に係るDecアルゴリズムの処理と同じであるため、ここでは、実施の形態3に係るSetupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムの処理について説明する。
 実施の形態3に係るSetupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムの処理の流れは、図8~図10に示す実施の形態2に係るSetupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムの処理の流れと同じである。
 図8に基づき、Setupアルゴリズムの処理について説明する。
 (S101:正規直交基底生成ステップ)
 (1)~(3)の処理は、実施の形態2と同じである。
 (4)マスター鍵生成部110は、Nにn+u+w+zを設定し、t=1,...,d(dは1以上の整数)の各整数tについて、Nにn+u+w+zを設定する。ここで、nは1であり、nはnである。nは1以上の整数であり、u,w,z,u,w,zはそれぞれ0以上の整数である。
 続いて、マスター鍵生成部110は、τ=1,...,m、κ=0,...,fτ、ι=0,1、t=0,...,dの各整数τ、κ、ι、tについて(5)から(9)までの処理を実行する。
 (5)の処理は、実施の形態2と同じである。
 (6)マスター鍵生成部110は、実施の形態2と同様に、線形変換X (τ,κ,ι):=(χt,i,j (τ,κ,ι)i,jをランダムに生成する。
 (7)マスター鍵生成部110は、実施の形態2と同様に、X (τ,κ,ι):=(νt,i,j (τ,κ,ι)i,j:=ψ・(X (τ,κ,ι)T-1を生成する。
 (8)マスター鍵生成部110は、実施の形態2と同様に、(6)で生成した線形変換X (τ,κ,ι)に基づき、(5)で生成した標準基底Aから基底B (τ,κ,ι)を生成する。
 (9)マスター鍵生成部110は、実施の形態2と同様に、(7)で生成した線形変換X (τ,κ,ι)に基づき、(5)で生成した標準基底Aから基底B (τ,κ,ι)を生成する。
 (10)の処理は、実施の形態2と同じである。
 (S102:公開パラメータ生成ステップ)
 マスター鍵生成部110は、処理装置により、(S101)で生成した基底B (τ,κ,ι)の部分基底B^ (τ,κ,ι)と、基底B (τ,κ,ι)の部分基底B^ (τ,κ,ι)とを数154に示すように生成する。
Figure JPOXMLDOC01-appb-M000054
 マスター鍵生成部110は、生成した部分基底B^ (τ,κ,ι)及び部分基底B^ (τ,κ,ι)と、(S101)で入力されたセキュリティパラメータλと、(S101)で生成したparamとを合わせて、公開パラメータpkとする。
 (S103:マスター鍵生成ステップ)
 マスター鍵生成部110は、処理装置により、(S101)で生成した基底B (τ,κ,ι)の部分基底B^ (τ,κ,ι)と、基底B (τ,κ,ι)の部分基底B^ (τ,κ,ι)とを数155に示すように生成する。
Figure JPOXMLDOC01-appb-M000055
 マスター鍵生成部110は、生成した部分基底B^ (τ,κ,ι)と部分基底B^ (τ,κ,ι)とをマスター鍵skとする。
 (S104)の処理は、実施の形態2と同じである。
 つまり、(S101)から(S103)において、鍵生成装置100は、数156に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、(S104)で、鍵生成装置100は、生成した公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
Figure JPOXMLDOC01-appb-M000056
 図9に基づき、KeyGenアルゴリズムの処理について説明する。
 (S201)から(S204)までと、(S206)との処理は、実施の形態2と同じである。
 (S205:鍵要素生成ステップ)
 鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιとについて、復号鍵skの要素k (τ,κ,ι)を数157に示すように生成する。
Figure JPOXMLDOC01-appb-M000057
 鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιと、i=1,...,Lの各整数iとについて、復号鍵skの要素k (τ,κ,ι)を数158に示すように生成する。
Figure JPOXMLDOC01-appb-M000058
 つまり、(S201)から(S205)において、鍵生成装置100は、数159から数160に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S206)で、鍵生成装置100は、生成した復号鍵skを復号装置300へ配布する。
Figure JPOXMLDOC01-appb-M000059
Figure JPOXMLDOC01-appb-M000060
 図10に基づき、Encアルゴリズムの処理について説明する。
 (S301)から(S302)までと、(S304)との処理は、実施の形態2と同じである。
 (S303:暗号要素生成ステップ)
 暗号化データ生成部230は、処理装置により、暗号文ctΓの要素c (τ,κ,ι)を数161に示すように生成する。
Figure JPOXMLDOC01-appb-M000061
 暗号化データ生成部230は、処理装置により、属性情報Γに含まれる各整数tについて、暗号文ctΓの要素c (τ,κ,ι)を数162に示すように生成する。
Figure JPOXMLDOC01-appb-M000062
 暗号化データ生成部230は、処理装置により、暗号文ctΓの要素cd+1を数163に示すように生成する。
Figure JPOXMLDOC01-appb-M000063
 つまり、(S301)から(S303)において、暗号化装置200は、数164に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。そして、(S304)で、暗号化装置200は生成した暗号文ctΓを復号装置300へ送信する。
Figure JPOXMLDOC01-appb-M000064
 以上のように、実施の形態3に係る暗号システム10は、実施の形態2で説明した関数型暗号方式に比べ、基底の数が多くなる代わりに、各基底の次元数が少ない関数型暗号方式を実現する。
 なお、上記説明では、KP-FE方式について説明した。しかし、KeyGenアルゴリズム、Encアルゴリズムをそれぞれ数165から数167に示すようにすることにより、CP-FE方式とすることも可能である。なお、Setupアルゴリズムは、KP-FE方式とCP-FE方式とで同じである。また、Decアルゴリズムは、数148に示すDecアルゴリズムと同じである。
Figure JPOXMLDOC01-appb-M000065
Figure JPOXMLDOC01-appb-M000066
Figure JPOXMLDOC01-appb-M000067
 また、上記説明では、関数型暗号方式について説明した。しかし、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズムをそれぞれ数168から数171に示すようにすることにより、属性ベース暗号方式とすることも可能である。なお、属性ベース暗号方式の場合、Setupアルゴリズムにおいて、nは2である。Decアルゴリズムは、数153に示すDecアルゴリズムと同じである。
Figure JPOXMLDOC01-appb-M000068
Figure JPOXMLDOC01-appb-M000069
Figure JPOXMLDOC01-appb-M000070
Figure JPOXMLDOC01-appb-M000071
 同様に、数165から数167に示すCP-FE方式を属性ベース暗号方式に変更することも可能である。
 また、上記説明では、Nにn+u+w+zを設定し、Nにn+u+w+zを設定した。ここで、例えば、u=n,w=n,z=2として、Nにn+n+n+2=3n+2(n=1のため、N=5)とし、u=n,w=n,z=1として、Nにn+n+n+1=3n+1としてもよい。
 実施の形態4.
 実施の形態2,3では、目標多項式d(x)を因数分解した多項式dτ(x)fτ毎に、多項式dτ(x)κで多項式a(x)を割った余りを設定した要素と、多項式dτ(x)fτ-κで多項式b(x)を割った余りを設定した要素とを、鍵要素とした。
 実施の形態4では、目標多項式d(x)を因数分解した多項式dτ(x)fτ毎に、多項式dτ(x)κに乱数値γを代入した要素と、多項式dτ(x)fτ-κに乱数値γを代入した要素とを、鍵要素とする。
 実施の形態4に係る鍵生成装置100、暗号化装置200、復号装置300の構成は、図5~図7に示す実施の形態2に係る鍵生成装置100、暗号化装置200、復号装置300の構成と同じである。
 実施の形態4に係るSetupアルゴリズム、Encアルゴリズムは、実施の形態2に係るSetupアルゴリズム、Encアルゴリズムと同じである。
 実施の形態4に係るDecアルゴリズムの処理の流れは、図11に示す実施の形態2に係るDecアルゴリズムの処理の流れと同じである。
 図12は、実施の形態4に係るKeyGenアルゴリズムの処理を示すフローチャートである。
 図12に基づき、KeyGenアルゴリズムの処理について説明する。
 (S501)から(S503)までの処理は、図9に示す(S201)から(S203)までの処理と同じであり、(S505)の処理は、図9に示す(S206)との処理と同じである。
 (S504:鍵要素生成ステップ)
 鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιと、j=1,...,μ+1の各整数jとについて、復号鍵skの要素k 0,j (τ,κ,ι)と要素k 0,μ+1 (τ,κ,ι)とを数172に示すように生成する。
Figure JPOXMLDOC01-appb-M000072
 鍵要素生成部142は、処理装置により、τ=1,...,mの各整数τと、κ=0,...,fτの各整数κと、ι=0,1の各整数ιと、i=1,...,Lの各整数iとについて、復号鍵skの要素k (τ,κ,ι)を数173に示すように生成する。
Figure JPOXMLDOC01-appb-M000073
 ここで、e 0,j (τ,κ,ι)(j=1,...,μ+1)は、1つの基底ベクトルの係数として1が設定され、他の基底ベクトルの係数として0が設定された2mfmax次元のベクトルであって、係数として1が設定される基底ベクトルが(τ,κ,ι)毎に異なるベクトルである。
 つまり、(S501)から(S504)において、鍵生成装置100は、数174から数175に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S505)で、鍵生成装置100は、生成した復号鍵skを復号装置300へ配布する。
Figure JPOXMLDOC01-appb-M000074
Figure JPOXMLDOC01-appb-M000075
 図11に基づき、Decアルゴリズムの処理について説明する。
 (S401)から(S404)までの処理は、実施の形態2と同じである。
 (S405:係数計算ステップ)
 補完係数計算部330の係数計算部332は、処理装置により、数176となる係数(α,...,α)と、係数(β,...,β)と、次数κとを計算する。
Figure JPOXMLDOC01-appb-M000076
 ここで、I(ρ,Γ)に含まれない全てのiについては、α=0=βである。また、τ=1,...,m及びι=0,1の全ての整数τ,ιについてhτ,κ,ι(x):=hτ,κ,ι,0+hτ,κ,ι,1x+・・・+hτ,κ,ι,μμである。
 (S406:ペアリング演算ステップ)
 復号部340のペアリング演算部341は、処理装置により、数177を計算して、セッション鍵Kτ,0,Kτ,1を生成する。
Figure JPOXMLDOC01-appb-M000077
 (S407:メッセージ計算ステップ)
 メッセージ計算部342は、処理装置により、数178を計算して、メッセージmsg’(=msg)を生成する。
Figure JPOXMLDOC01-appb-M000078
 なお、数179に示すように、数177を計算することによりg ζが得られる。そのため、数178を計算することにより、メッセージmsg’(=msg)を得られる。
Figure JPOXMLDOC01-appb-M000079
 つまり、(S401)から(S407)において、復号装置300は、数180に示すDecアルゴリズムを実行して、メッセージmsg’(=msg)を生成する。
Figure JPOXMLDOC01-appb-M000080
 以上のように、実施の形態4に係る暗号システム10は、多項式dτ(x)κに乱数値γを代入した要素と、多項式dτ(x)fτ-κに乱数値γを代入した要素とを、鍵要素として関数型暗号方式を実現する。
 なお、上記説明では、KP-FE方式について説明した。しかし、KeyGenアルゴリズム、Encアルゴリズム、Decアルゴリズムをそれぞれ数181から数184に示すようにすることにより、CP-FE方式とすることも可能である。なお、Setupアルゴリズムは、KP-FE方式とCP-FE方式とで同じである。
Figure JPOXMLDOC01-appb-M000081
Figure JPOXMLDOC01-appb-M000082
Figure JPOXMLDOC01-appb-M000083
Figure JPOXMLDOC01-appb-M000084
 また、関数型暗号方式について説明した。しかし、KeyGenアルゴリズム、Decアルゴリズムをそれぞれ数185から数187に示すようにすることにより、属性ベース暗号方式とすることも可能である。なお、属性ベース暗号方式の場合、Setupアルゴリズムにおいて、nは2mfmaxmax+2である。また、Setupアルゴリズムは、数149に示すSetupアルゴリズムと同じであり、Encアルゴリズムは、数152に示すEncアルゴリズムと同じである。
Figure JPOXMLDOC01-appb-M000085
Figure JPOXMLDOC01-appb-M000086
Figure JPOXMLDOC01-appb-M000087
 同様の変更を行うことにより、数181から数184に示すCP-FE方式を属性ベース暗号方式に変更することも可能である。
 また、上記説明では、Nにn+u+w+zを設定し、Nにn+u+w+zを設定した。ここで、例えば、u=n,w=n,z=2として、Nにn+n+n+2=3n+2とし、u=n,w=n,z=2として、Nにn+n+n+2=3n+2としてもよい。
 また、上記説明では、実施の形態2に係る関数型暗号方式と同様に、復号鍵や暗号文が長くなる代わりに、基底の数が少ない関数型暗号方式とした。しかし、実施の形態3,4に係る関数型暗号方式に基づき、実施の形態4に係る関数型暗号方式を、実施の形態3に係る関数型暗号方式と同様に、基底の数が多くなる代わりに、各基底の次元数が少ない関数型暗号方式に容易に変形できる。
 また、以上の実施の形態では、KP-FE方式とCP-FE方式とについて説明した。しかし、非特許文献4に記載されたUnified-Policy FE(UP-FE)方式も、KP-FE方式とCP-FE方式とから容易に構成することができる。
 実施の形態5.
 以上の実施の形態では、双対ベクトル空間において暗号処理を実現する方法について説明した。実施の形態5では、双対加群において暗号処理を実現する方法について説明する。
 つまり、以上の実施の形態では、素数位数qの巡回群において暗号プリミティブの処理を実現した。しかし、合成数Mを用いて数188のように環Rを表した場合、環Rを係数とする加群においても、上記実施の形態で説明した暗号処理を適用することができる。
Figure JPOXMLDOC01-appb-M000088
 以上の実施の形態で説明したアルゴリズムにおけるFをRに変更すれば、双対加群における暗号プリミティブの処理を実現することができる。
 なお、以上の実施の形態において、安全性の証明の観点から、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)である。
 次に、実施の形態における暗号処理システム10(鍵生成装置100、暗号化装置200、復号装置300)のハードウェア構成について説明する。
 図13は、鍵生成装置100、暗号化装置200、復号装置300のハードウェア構成の一例を示す図である。
 図13に示すように、鍵生成装置100、暗号化装置200、復号装置300は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
 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」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
 ファイル群924には、上記の説明において「公開パラメータpk」、「マスター秘密鍵sk」、「復号鍵sk,skΓ」、「暗号文ctΓ,ct」、「アクセスストラクチャS」、「属性情報」、「メッセージmsg」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
 また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
 また、上記の説明において「~部」として説明するものは、「~回路」、「~装置」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。また、「~装置」として説明するものは、「~回路」、「~機器」、「~手段」、「~機能」であってもよく、また、「~ステップ」、「~手順」、「~処理」であってもよい。さらに、「~処理」として説明するものは「~ステップ」であっても構わない。すなわち、「~部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「~部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「~部」の手順や方法をコンピュータ等に実行させるものである。
 100 鍵生成装置、110 マスター鍵生成部、120 マスター鍵記憶部、130 情報入力部、140 復号鍵生成部、141 秘密情報生成部、142 鍵要素生成部、150 鍵配布部、200 暗号化装置、210 公開パラメータ取得部、220 情報入力部、230 暗号化データ生成部、240 データ送信部、300 復号装置、311 復号鍵取得部、312 暗号文取得部、320 スパンプログラム計算部、330 補完係数計算部、331 多項式選択部、332 係数計算部、340 復号部、341 ペアリング演算部、342 メッセージ計算部。

Claims (13)

  1.  2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文として生成する暗号化装置と、
     前記第1情報と前記第2情報とのうちの他方を復号鍵とし、前記2次スパンプログラムが前記属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号装置と
    を備えることを特徴とする暗号システム。
  2.  前記第1情報は、前記2次スパンプログラムとして、多項式d(x)と複数の多項式D(x)と述語情報とを含み、
     前記復号装置は、
     前記第1情報に含まれる述語情報と、前記第2情報に含まれる属性情報とに基づき、前記複数の多項式D(x)から少なくとも一部の多項式D(x)を選択する多項式選択部と、
     前記多項式選択部が選択した多項式D(x)に係数Δを掛けた多項式Δ(x)に基づき構成される多項式を、前記多項式d(x)で割り切れるようにする係数Δを計算する係数計算部と、
     前記係数計算部が計算した係数Δに基づき、前記暗号文を復号する復号部と
    を備えることを特徴とする請求項1に記載の暗号システム。
  3.  前記複数の多項式D(x)は、i=0,...,L(Lは1以上の整数)の各整数iについての多項式a(x)及び多項式b(x)であり、
     前記多項式選択部は、前記属性情報と前記述語情報とに基づき、i=1,...,Lのうち一部の整数iの集合Iを選択することにより、多項式a(x)及び多項式b(x)と、前記集合Iに含まれる整数iについての多項式a(x)及び多項式b(x)とを選択し、
     前記係数計算部は、(a(x)+Σi∈Iα(x))・(b(x)+Σi∈Iβ(x))を前記多項式d(x)で割り切れるようにする係数α及び係数βを前記係数Δとして計算する
    ことを特徴とする請求項2に記載の暗号システム。
  4.  前記多項式d(x)は、τ=1,...,m(mは1以上の整数)の多項式dτ(x)fτに因数分解され、
     前記係数計算部は、Πτ=1 τ(x)κτが(a(x)+Σi∈Iα(x))を割り切るようにするとともに、Πτ=1 τ(x)fτ-κτが(b(x)+Σi∈Iβ(x))を割り切るようにする係数α及び係数βと、次数κτとを計算し、
     前記復号部は、前記係数α及び前記係数βと、前記次数κτとに基づき、前記暗号文を復号する
    ことを特徴とする請求項3に記載の暗号システム。
  5.  前記属性情報は、t=1,...,d(dは1以上の整数)の少なくとも一部の整数tについての属性ベクトルx を含み、
     前記述語情報は、i=1,...,Lの各整数iについての識別子tと述語ベクトルv との組(t,v )を含み、
     前記多項式選択部は、i=1,...,Lの各整数iについての前記組(t,v )について、その組の述語ベクトルv とその組の識別情報tについての属性ベクトルx との内積が0となるか否かにより、整数iを前記集合Iに含めるか否かを判定する
    ことを特徴とする請求項3又は4に記載の暗号システム。
  6.  前記組(t,v )は、肯定形と否定形とのいずれかに対応付けられており、
     前記多項式選択部は、前記組(t,v )が肯定形に対応付けられている場合、前記内積が0となるなら、整数iを前記集合Iに含め、前記組(t,v )が否定形に対応付けられている場合、前記内積が0とならないなら、整数iを前記集合Iに含める
    ことを特徴とする請求項5に記載の暗号システム。
  7.  前記多項式d(x)は、τ=1,...,m(mは1以上の整数)の多項式dτ(x)fτに因数分解され、
     前記第1情報は、多項式dτ(x)fτ毎に、その多項式dτ(x)fτによって得られる情報が設定された要素を含み、
     前記復号部は、前記係数Δと前記要素とに基づき、前記暗号文を復号する
    ことを特徴とする請求項2から6までのいずれかに記載の暗号システム。
  8.  前記第1情報は、多項式dτ(x)fτ毎に、κ=0,...,fτの各整数κと、i=0,...,Lの各整数iとについて、多項式dτ(x)κで多項式a(x)を割った余りを設定した要素と、多項式dτ(x)fτ-κで多項式b(x)を割った余りを設定した要素とを含む
    ことを特徴とする請求項7に記載の暗号システム。
  9.  前記第1情報は、多項式dτ(x)fτ毎に、所定の値γを代入した値を設定した要素を含む
    ことを特徴とする請求項7に記載の暗号システム。
  10.  前記復号部は、前記係数Δに基づき、前記要素について所定の演算を行うことにより、前記多項式dτ(x)fτによって得られる情報を0にして、前記暗号文を復号する
    ことを特徴とする請求項7から9までのいずれかに記載の暗号システム。
  11.  暗号化装置が、2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文として生成する暗号化工程と、
     復号装置が、前記第1情報と前記第2情報とのうちの他方を復号鍵とし、前記2次スパンプログラムが前記属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号工程と
    を備えることを特徴とする暗号方法。
  12.  2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文として生成する暗号化処理と、
     前記第1情報と前記第2情報とのうちの他方を復号鍵とし、前記2次スパンプログラムが前記属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号処理と
    をコンピュータに実行させることを特徴とする暗号プログラム。
  13.  2次スパンプログラムを含む第1情報と、属性情報を含む第2情報とのうちの一方を暗号文とし、他方を復号鍵として取得する情報取得部と、
     前記情報取得部が取得した第1情報に含まれる2次スパンプログラムが第2情報に含まれる属性情報を受理する場合に前記2次スパンプログラムと前記属性情報とから得られる情報に基づき、前記暗号文を復号する復号部と
    を備えることを特徴とする復号装置。
PCT/JP2013/069368 2012-07-31 2013-07-17 暗号システム、暗号方法、暗号プログラム及び復号装置 Ceased WO2014021102A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201380040471.9A CN104620305B (zh) 2012-07-31 2013-07-17 密码系统、密码方法、密码程序以及解密装置
KR1020147036181A KR101606317B1 (ko) 2012-07-31 2013-07-17 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치
US14/395,655 US9413531B2 (en) 2012-07-31 2013-07-17 Cryptographic system, cryptographic method, cryptographic program, and decryption device
EP13824763.0A EP2881930B1 (en) 2012-07-31 2013-07-17 Encryption system, encryption method, encryption program and decryption device
ES13824763.0T ES2645463T3 (es) 2012-07-31 2013-07-17 Sistema criptográfico, método criptográfico, programa criptográfico y dispositivo de desencriptación

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-170001 2012-07-31
JP2012170001A JP5814880B2 (ja) 2012-07-31 2012-07-31 暗号システム、暗号方法、暗号プログラム及び復号装置

Publications (1)

Publication Number Publication Date
WO2014021102A1 true WO2014021102A1 (ja) 2014-02-06

Family

ID=50027784

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/069368 Ceased WO2014021102A1 (ja) 2012-07-31 2013-07-17 暗号システム、暗号方法、暗号プログラム及び復号装置

Country Status (7)

Country Link
US (1) US9413531B2 (ja)
EP (1) EP2881930B1 (ja)
JP (1) JP5814880B2 (ja)
KR (1) KR101606317B1 (ja)
CN (1) CN104620305B (ja)
ES (1) ES2645463T3 (ja)
WO (1) WO2014021102A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9755823B2 (en) * 2013-05-15 2017-09-05 Mitsubishi Electric Corporation Cryptographic system, cryptographic method, and computer readable medium
WO2015025916A1 (ja) * 2013-08-22 2015-02-26 日本電信電話株式会社 マルチパーティセキュア認証システム、認証サーバ、中間サーバ、マルチパーティセキュア認証方法及びプログラム
US9640090B2 (en) 2014-02-24 2017-05-02 Mitsubishi Electric Corporation Cryptographic system and computer readable medium
US10277564B2 (en) 2016-05-04 2019-04-30 Nxp Usa, Inc. Light-weight key update mechanism with blacklisting based on secret sharing algorithm in wireless sensor networks
WO2018026944A1 (en) * 2016-08-02 2018-02-08 X-Logos, LLC Methods and systems for enhanced data-centric encryption systems using geometric algebra
US11223472B2 (en) * 2016-09-12 2022-01-11 Nippon Telegraph And Telephone Corporation Encrypted message search method, message transmission/reception system, server, terminal and program
US11139952B2 (en) * 2017-01-18 2021-10-05 Mitsubishi Electric Corporation Homomorphic computation device, encryption system, and computer readable medium
CN111615809A (zh) * 2018-01-17 2020-09-01 三菱电机株式会社 隐匿分析装置、隐匿分析系统、隐匿分析方法和隐匿分析程序
JP7117964B2 (ja) * 2018-10-04 2022-08-15 三菱電機株式会社 復号装置、暗号システム、復号方法及び復号プログラム
US10937339B2 (en) 2019-01-10 2021-03-02 Bank Of America Corporation Digital cryptosystem with re-derivable hybrid keys
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
US20240163088A1 (en) * 2022-11-16 2024-05-16 Nicolas LEOUTSARAKOS Fault-tolerant access to digital assets without storing sensitive security data for decryption

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232475A (ja) * 2010-04-27 2011-11-17 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0823331A (ja) * 1994-07-07 1996-01-23 Murata Mach Ltd 暗号化通信方法及び装置
US7162032B2 (en) * 1999-12-20 2007-01-09 Telenor Asa Encryption of programs represented as polynomial mappings and their computations
JP3917507B2 (ja) * 2002-01-28 2007-05-23 株式会社東芝 コンテンツ提供側システム、ユーザ側システム、追跡システム、コンテンツ提供方法、暗号化コンテンツ復号方法、不正ユーザ特定方法、暗号化装置、復号装置及びプログラム
JPWO2004001701A1 (ja) * 2002-06-20 2005-10-20 株式会社日立製作所 符号演算装置
KR20050083566A (ko) * 2002-12-03 2005-08-26 마츠시타 덴끼 산교 가부시키가이샤 키공유 시스템, 공유키 생성장치 및 공유키 복원장치
KR101024768B1 (ko) * 2003-04-24 2011-03-24 파나소닉 주식회사 파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램
US20080098213A1 (en) * 2004-07-08 2008-04-24 Koninklijke Philips Electronics, N.V. Method of Providing Digital Certificate Functionality
US7634085B1 (en) 2005-03-25 2009-12-15 Voltage Security, Inc. Identity-based-encryption system with partial attribute matching
JP2008011092A (ja) * 2006-06-28 2008-01-17 Fuji Xerox Co Ltd 暗号化コンテンツ検索方式
US20090080658A1 (en) 2007-07-13 2009-03-26 Brent Waters Method and apparatus for encrypting data for fine-grained access control
CN101188496B (zh) * 2007-12-10 2010-09-29 中兴通讯股份有限公司 一种短信加密传输方法
JP2010204466A (ja) 2009-03-04 2010-09-16 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム
CN102369687B (zh) * 2009-04-24 2014-09-17 日本电信电话株式会社 密码系统、密码通信方法、加密装置、密钥生成装置、解密装置、内容服务器装置、程序、存储介质
US8385541B2 (en) * 2010-02-18 2013-02-26 King Fahd University Of Petroleum And Minerals Method of performing elliptic polynomial cryptography with elliptic polynomial hopping
WO2012011565A1 (ja) * 2010-07-23 2012-01-26 日本電信電話株式会社 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体
US8532289B2 (en) 2010-08-16 2013-09-10 International Business Machines Corporation Fast computation of a single coefficient in an inverse polynomial
US8925075B2 (en) * 2011-11-07 2014-12-30 Parallels IP Holdings GmbH Method for protecting data used in cloud computing with homomorphic encryption
WO2013101136A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Dual composite field advanced encryption standard memory encryption engine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232475A (ja) * 2010-04-27 2011-11-17 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
OKAMOTO, T.; TAKASHIMA, K, DECENTRALIZED ATTRIBUTE-BASED SIGNATURES, Retrieved from the Internet <URL:http://eprint.iacr.org/2011/701>
OKAMOTO, T.; TAKASHIMA, K.: "Pairing 2008. LNCS", vol. 5209, 2008, SPRINGER HEIDELBERG, article "Homomorphic encryption and signatures from vector decomposition", pages: 57 - 74
OKAMOTO, T.; TAKASHIMA, K: "ASIACRYPT 2009", 2009, SPRINGER HEIDELBERG, article "Hierarchical predicate encryption for inner-products"
OKAMOTO, T.; TAKASHIMA, K: "CRYPTO 2010. LNCS", vol. 6223, 2010, SPRINGER HEIDELBERG, article "Fully secure functional encryption with general relations from the decisional linear assumption", pages: 191 - 208
OKAMOTO, T.; TAKASHIMA, K: "PKC 2011", 2011, SPRINGER HEIDELBERG, article "Efficient attribute-based signatures for non-monotone predicates in the standard model"
ROSARIO GENNARO ET AL.: "Quadratic Span Programs and Succinct NIZKs without PCPs", 18 June 2012 (2012-06-18), XP047028433, Retrieved from the Internet <URL:https://eprint.iacr.org/2012/215> [retrieved on 20130802] *
ROSARIO GENNARO; CRAIG GENTRY; BRYAN PAMO; MARIANA RAYKOVA, QUADRATIC SPAN PROGRAMS AND SUCCINCT NIZKS WITHOUT PCPS, Retrieved from the Internet <URL:http://eprint.iacr.org/2012/215 5>
See also references of EP2881930A4
TATSUAKI OKAMOTO ET AL.: "Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption", 22 December 2011 (2011-12-22), XP047270461, Retrieved from the Internet <URL:https://eprint.iacr.org/2010/563> [retrieved on 20130802] *

Also Published As

Publication number Publication date
US9413531B2 (en) 2016-08-09
ES2645463T3 (es) 2017-12-05
KR101606317B1 (ko) 2016-03-24
JP5814880B2 (ja) 2015-11-17
CN104620305A (zh) 2015-05-13
JP2014029415A (ja) 2014-02-13
EP2881930B1 (en) 2017-09-27
KR20150015518A (ko) 2015-02-10
CN104620305B (zh) 2016-09-28
EP2881930A4 (en) 2016-04-06
EP2881930A1 (en) 2015-06-10
US20150098566A1 (en) 2015-04-09

Similar Documents

Publication Publication Date Title
JP5814880B2 (ja) 暗号システム、暗号方法、暗号プログラム及び復号装置
JP6083234B2 (ja) 暗号処理装置
JP5424974B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP5618881B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
EP2947810B1 (en) Encryption system, re-encryption key generation device, re-encryption device, encryption method and encryption program
JP5951122B2 (ja) 暗号システム、暗号方法及び暗号プログラム
JP2015031935A (ja) 情報処理方法及びプログラム
JP5921410B2 (ja) 暗号システム
WO2013133158A1 (ja) 暗号システム、暗号方法及び暗号プログラム
EP3057262B1 (en) Cipher system, encryption device, re-encryption key generation device, re-encryption device, and cipher program
JP5606351B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム
US11909873B2 (en) Decryption device, cryptographic system, and decryption method
WO2015125293A1 (ja) 暗号システム及び暗号プログラム
JP6266130B2 (ja) 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
JP6885325B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
WO2017203743A1 (ja) 暗号化装置、復号装置及び暗号システム
Khamitkar A survey on fully homomorphic encryption
Chandra et al. STUDY OF RSA ALGORITHM FOR DATA ENCRYPTION AND DECRYPTION

Legal Events

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

Ref document number: 13824763

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14395655

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20147036181

Country of ref document: KR

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2013824763

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2013824763

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE