WO2012011564A1 - 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体 - Google Patents

暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体 Download PDF

Info

Publication number
WO2012011564A1
WO2012011564A1 PCT/JP2011/066692 JP2011066692W WO2012011564A1 WO 2012011564 A1 WO2012011564 A1 WO 2012011564A1 JP 2011066692 W JP2011066692 W JP 2011066692W WO 2012011564 A1 WO2012011564 A1 WO 2012011564A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
max
ciphertext
encryption
coef
Prior art date
Application number
PCT/JP2011/066692
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 ES11809734.4T priority Critical patent/ES2686426T3/es
Priority to EP11809734.4A priority patent/EP2597812B1/en
Priority to US13/703,381 priority patent/US8897442B2/en
Priority to CN201180034973.1A priority patent/CN103004129B/zh
Priority to JP2012525440A priority patent/JP5466763B2/ja
Priority to KR1020127034442A priority patent/KR101478766B1/ko
Publication of WO2012011564A1 publication Critical patent/WO2012011564A1/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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/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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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/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/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/085Secret sharing or secret splitting, e.g. threshold 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/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

Definitions

  • the present invention relates to security technology, and in particular to encryption technology.
  • Non-Patent Document 1 proposes a CHK conversion method.
  • the One-Time signature is used to construct a CCA secure encryption method based on any CPA secure ID-based encryption method.
  • Non-Patent Document 3 proposes a BK conversion method.
  • a message authenticator MAC: “Message Authentication Code”
  • a bit commitment method are used to construct a CCA secure encryption method based on a CPA secure arbitrary ID-based encryption method.
  • the ciphertext generated based on the above-described CHK conversion method includes an encrypted plaintext, a one-time signature of the encrypted plaintext, and a signature key for verifying the one-time signature. Therefore, the ciphertext space of the ciphertext generated based on the CHK conversion method includes not only a space for encrypted plaintext but also a space for a One-Time signature and a signature key.
  • the ciphertext generated based on the above-described BK conversion method includes an encrypted plaintext, a message authenticator, and a bit commitment sequence. Therefore, the ciphertext space of the ciphertext generated based on the BK conversion method includes not only a space for encrypted plaintext but also a space for a message authenticator and a bit commitment sequence.
  • the ciphertext space generated based on the CHK conversion method or the BK conversion method includes a two-dimensional space allocated only for improving the CCA security.
  • the calculation amount and the data amount increase as the ciphertext space size increases, it is desirable that the ciphertext space size be as small as possible.
  • the person who performs the encryption must obtain the ID of the person who performs the decryption before performing the encryption.
  • a ciphertext can be generated without specifying a person who performs decryption by a person who performs encryption and a person who meets a desired condition can decrypt the ciphertext.
  • the present invention has been made in view of the above points, and provides an encryption method that is highly convenient and can improve CCA safety without additional ciphertext space for improving CCA security.
  • a random number r is generated, and a ciphertext C 2 that is an exclusive OR value of the binary sequence corresponding to the random number r and the binary sequence plaintext M is generated.
  • Common key K which is the original cyclic group G T is generated ciphertext C ( ⁇ + 1) is generated by encrypting the random number r by the common key encryption method by using the common key K.
  • Ciphertext including b ⁇ ( ⁇ ) + ⁇ ⁇ n ( ⁇ ) +1 n ( ⁇ ) + ⁇ ( ⁇ ) ⁇ ⁇ ( ⁇ ) b ⁇ ( ⁇ ), and ciphertext C ( ⁇ + 1) C 1 is generated.
  • is an integer of 1 or more
  • is an integer of 0 or more and ⁇ or less
  • n ( ⁇ ) is an integer of 1 or more
  • ⁇ ( ⁇ ) is an integer of 0 or more
  • is 1 Is an integer not less than ⁇
  • I is a constant not less than 2 and not more than n (0) + ⁇ (0)
  • Dimensional vector v ( ⁇ ) ⁇ is the negative ⁇ v ( ⁇ ) ⁇ information
  • a ciphertext can be generated without specifying a person who performs decryption by a person who performs encryption, and a person who meets a desired condition can decrypt the ciphertext.
  • the present invention is highly convenient and can improve the CCA security without an additional ciphertext space for improving the CCA security.
  • FIG. 1 is a diagram illustrating tree structure data expressing a standard logical expression.
  • FIG. 2 is a diagram exemplifying tree structure data expressing a standard logical expression.
  • FIG. 3 is a block diagram for illustrating the encryption system of the present embodiment.
  • FIG. 4 is a block diagram for illustrating the encryption apparatus of the present embodiment.
  • FIG. 5 is a block diagram for illustrating the decoding device of the present embodiment.
  • FIG. 6 is a block diagram for illustrating the key generation apparatus of this embodiment.
  • FIG. 7 is a diagram for illustrating the key generation processing of this embodiment.
  • FIG. 8 is a diagram for illustrating the encryption processing of this embodiment.
  • FIG. 9 is a diagram for illustrating the decoding process of the present embodiment.
  • FIG. 10 is a diagram for illustrating the processing in step 43 in FIG. 9.
  • Matrix represents a set of elements in which operations are defined arranged in a rectangle. Not only the elements of the elements of the ring but also elements of the elements of the group are “matrix”.
  • (•) T represents a transposed matrix of (•) -1 : (•) -1 represents the inverse matrix of.
  • is a logical symbol representing a logical product (AND).
  • ⁇ : ⁇ is a logical symbol representing a logical sum (OR).
  • ⁇ : ⁇ is a logical symbol representing negation (NOT).
  • Propositional variable A propositional variable is a variable on the set ⁇ true, false ⁇ whose elements are “true” and “false” (“false”, “true”) of the proposition. In other words, the domain of the propositional variable is a set having “true” and “false” as elements.
  • Propositional variables and negation of propositional variables are collectively called literals.
  • Logical expression A logical expression means an expression representing a proposition in mathematical logic.
  • “true” and “false” are logical expressions
  • propositional variables are logical expressions
  • negation of logical expressions is logical expressions
  • logical products of logical expressions and logical expressions are logical expressions
  • a logical sum of a logical expression and a logical expression is a logical expression.
  • Z Z represents an integer set.
  • sec sec represents a security parameter (sec ⁇ Z, sec> 0).
  • 0 * : 0 * represents a sequence of * 0's.
  • 1 * : 1 * represents a sequence of * 1's.
  • ⁇ 0,1 ⁇ * : ⁇ 0,1 ⁇ * represents a binary sequence having an arbitrary bit length.
  • An example of ⁇ 0,1 ⁇ * is a sequence consisting of integers 0 and 1. However, ⁇ 0,1 ⁇ * is not limited to a sequence consisting of integers 0 and 1.
  • ⁇ 0,1 ⁇ * is synonymous with a finite field of order 2 or its extension.
  • ⁇ 0,1 ⁇ ⁇ ⁇ 0,1 ⁇ ⁇ represents a binary sequence having a bit length ⁇ ( ⁇ Z, ⁇ > 0).
  • An example of ⁇ 0, 1 ⁇ ⁇ is a sequence consisting of ⁇ integers 0 and 1.
  • ⁇ 0, 1 ⁇ ⁇ is not limited to a sequence composed of integers 0 and 1.
  • F q represents a finite field of order q.
  • the order q is an integer of 1 or more.
  • a prime number or a power value of a prime number is assumed to be the order q.
  • examples of the finite field F q are an elementary field and an extension field based on it.
  • An operation when the finite field F q is a prime field can be easily configured by, for example, a remainder operation modulo the order q.
  • An operation when the finite field F q is an extension field can be easily configured by, for example, a remainder operation modulo an irreducible polynomial.
  • E represents an elliptic curve defined on the finite field Fq .
  • the elliptic curve E is a set including a set of points (x, y) consisting of x, y ⁇ F q that satisfies the Weierstrass equation on the affine coordinates shown below, and a special point O called an infinity point. is there.
  • y 2 + a 1 ⁇ x ⁇ y + a 3 ⁇ y x 3 + a 2 ⁇ x 2 + a 4 ⁇ x + a 6
  • a 1 , a 2 , a 3 , a 4 , a 6 ⁇ F q are satisfied.
  • a binary operation + called elliptic addition is defined for any two points on the elliptic curve E
  • a unary operation ⁇ called inverse element operation is defined for any one point on the elliptic curve E.
  • a finite set of rational points on the elliptic curve E has a subgroup of order p (p ⁇ 1). For example, if the number of elements of a finite set of rational points on the elliptic curve E is #E and p is a large prime number that divides #E, a finite set E [p ] Constitutes a subgroup of a finite set of rational points on the elliptic curve E.
  • G 1 , G 2 , G T each represent a cyclic group of order q.
  • Specific examples of the cyclic group G T is a finite set constituting the extension field of a finite field F q underlying body. An example is a finite set of one of the p th root of the algebraic closure of a finite field F q.
  • the operations defined on the cyclic groups G 1 and G 2 are expressed additively, and the operations defined on the cyclic group G T are expressed multiplicatively.
  • ⁇ ⁇ ⁇ G 1 for Kai ⁇ F q and Omega ⁇ G 1 means that applying operation defined in the cyclic group G 1 with respect ⁇ G 1 ⁇ times, Omega 1, Omega 2 ⁇ 1 + ⁇ 2 ⁇ G for ⁇ G 1 1 is meant to carry out the operation defined in the cyclic group G 1 and the Omega 1 ⁇ G 1 and Omega 2 ⁇ G 1 as operand.
  • ⁇ ⁇ ⁇ G 2 for Kai ⁇ F q and Omega ⁇ G 2 means that applying operation defined in the cyclic group G 2 with respect ⁇ G 2 ⁇ times
  • Omega 1 , ⁇ 1 + ⁇ 2 ⁇ G 2 for Omega 2 ⁇ G 2 means that performs an operation defined in the cyclic group G 2 to the Omega 1 ⁇ G 2 and Omega 2 ⁇ G 2 as operands.
  • Omega chi ⁇ G T for Kai ⁇ F q and Omega ⁇ G T for example, means that the applying operation defined in the cyclic group G T against ⁇ G T ⁇ times, Omega 1, Omega 2 ⁇ G T for ⁇ 1 ⁇ ⁇ 2 ⁇ G T means that performs an operation defined in the cyclic group G T and Omega 1 ⁇ G T and Omega 2 ⁇ G T as an operand.
  • ⁇ represents an integer of 1 or more.
  • n ( ⁇ ): n ( ⁇ ) represents a predetermined integer of 1 or more.
  • ⁇ ( ⁇ ): ⁇ ( ⁇ ) represents a predetermined integer of 0 or more.
  • G 1 n ( ⁇ ) + ⁇ ( ⁇ ) : G 1 n ( ⁇ ) + ⁇ ( ⁇ ) represents the direct product of n ( ⁇ ) + ⁇ ( ⁇ ) cyclic groups G 1 .
  • G 2 n ( ⁇ ) + ⁇ ( ⁇ ) : G 2 n ( ⁇ ) + ⁇ ( ⁇ ) represents the direct product of n ( ⁇ ) + ⁇ ( ⁇ ) cyclic groups G 2 .
  • e ⁇ is the direct product G 1 n ( ⁇ ) + ⁇ ( ⁇ ) ⁇ G 2 n ( ) of the direct product G 1 n ( ⁇ ) + ⁇ ( ⁇ ) and the direct product G 2 n ( ⁇ ) + ⁇ ( ⁇ ) ⁇ ) + ⁇ ( ⁇ ) nondegenerate bilinear mapping which maps the cyclic group G T a represents a (bilinear map).
  • e ⁇ G 1 n ( ⁇ ) + ⁇ ( ⁇ ) ⁇ G 2 n ( ⁇ ) + ⁇ ( ⁇ ) ⁇ G T (1)
  • the bilinear map e ⁇ satisfies the following properties.
  • Bilinearity The bilinear map e ⁇ is all ⁇ 1 ⁇ G 1 n ( ⁇ ) + ⁇ ( ⁇ ) , ⁇ 2 ⁇ G 2 n ( ⁇ ) + ⁇ ( ⁇ ) and ⁇ , ⁇ F q The following relationship is satisfied.
  • e ⁇ ( ⁇ ⁇ ⁇ 1 , ⁇ ⁇ ⁇ 2 ) e ⁇ ( ⁇ 1 , ⁇ 2 ) ⁇ ⁇ ⁇ ...
  • [Non-degenerative] Bilinear map e ⁇ is a unit of cyclic group G T for all ⁇ 1 ⁇ G 1 n ( ⁇ ) + ⁇ ( ⁇ ) and ⁇ 2 ⁇ G 2 n ( ⁇ ) + ⁇ ( ⁇ ) It is not an original mapping.
  • such as the following constitutes a bilinear mapping e [psi using nondegenerate bilinear mapping which maps the Cartesian product G 1 ⁇ G 2 in the cyclic group G T of a cyclic group G 1 and the cyclic group G 2 .
  • Bilinear map Pair is a set of one original cyclic group G 1 and the one of the original cyclic group G 2 as input, and outputs one of the original cyclic group G T.
  • the bilinear map Pair satisfies the following properties. [Bilinearity]
  • the bilinear map Pair satisfies the following relation for all ⁇ 1 ⁇ G 1 , ⁇ 2 ⁇ G 2 and ⁇ , ⁇ F q .
  • Pair ( ⁇ ⁇ ⁇ 1 , ⁇ ⁇ ⁇ 2 ) Pair ( ⁇ 1 , ⁇ 2 ) ⁇ ⁇ ⁇ ... (6)
  • the bilinear map Pair is ⁇ 1 ⁇ G 1 , ⁇ 2 ⁇ G 2 (7) Not a mapping which maps the identity element of the cyclic group G T a.
  • Pair ( ⁇ 1 , ⁇ 2 ) for every ⁇ 1 ⁇ G 1 and ⁇ 2 ⁇ G 2 .
  • a specific example of the bilinear map Pair is a function for performing pairing operations such as Weil pairing and Tate pairing (for example, Reference 4 “Alfred. J. Menezes, ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS , ISBN0-7923-9368-6, pp. 61-81 etc.).
  • Changed pairing function e ( ⁇ 1 , phi ( ⁇ 2 )) ( ⁇ 1 ⁇ G 1 ) combining a function for performing pairing operations such as Tate pairing and a predetermined function phi according to the type of elliptic curve E , ⁇ 2 ⁇ G 2 ) may be used as the bilinear map Pair (for example, see Reference 2).
  • a i ( ⁇ ) is an element of n ( ⁇ ) + ⁇ ( ⁇ ) elements of the cyclic group G 1 Represents an n ( ⁇ ) + ⁇ ( ⁇ ) -dimensional basis vector.
  • An example of the basis vector a i ( ⁇ ) is the unit of the cyclic group G 1 with ⁇ 1 ⁇ g 1 ⁇ G 1 as the i-th element and the remaining n ( ⁇ ) + ⁇ ( ⁇ ) -1 elements This is an n ( ⁇ ) + ⁇ ( ⁇ ) -dimensional basis vector that is an element (additively expressed as “0”).
  • An example of the basis vector a i * ( ⁇ ) is ⁇ 2 ⁇ g 2 ⁇ G 2 as the i-th element, and the remaining n ( ⁇ ) + ⁇ ( ⁇ ) -1 elements of the cyclic group G 2 This is an n ( ⁇ ) + ⁇ ( ⁇ ) -dimensional basis vector as a unit element (additionally expressed as “0”).
  • a 1 * ( ⁇ ) ( ⁇ 2 ⁇ g 2 , 0,0, ..., 0)
  • a 2 * ( ⁇ ) (0, ⁇ 2 ⁇ g 2 , 0, ..., 0)... (9)
  • ... a n ( ⁇ ) + ⁇ ( ⁇ ) * ( ⁇ ) (0,0,0, ..., ⁇ 2 ⁇ g 2 )
  • the matrix A ( ⁇ ) is as follows: .
  • the matrix A * ( ⁇ ) is as follows: become.
  • X ( ⁇ ) represents a matrix of n ( ⁇ ) + ⁇ ( ⁇ ) rows n ( ⁇ ) + ⁇ ( ⁇ ) columns having elements of the finite field F q as elements.
  • the matrix X ( ⁇ ) is used for coordinate transformation of the basis vector a i ( ⁇ ).
  • the matrix X ( ⁇ ) is as follows. Note that each element ⁇ i, j ( ⁇ ) of the matrix X ( ⁇ ) is referred to as a conversion coefficient.
  • X * ( ⁇ ) is used for coordinate transformation of the basis vector a i * ( ⁇ ). Assuming that the elements of i rows and j columns of the matrix X * ( ⁇ ) are ⁇ i, j * ( ⁇ ) ⁇ F q , the matrix X * ( ⁇ ) is as follows. Note that each element ⁇ i, j * ( ⁇ ) of the matrix X * ( ⁇ ) is referred to as a conversion coefficient.
  • n ( ⁇ ) + ⁇ ( ⁇ ) dimensional vector is defined.
  • ⁇ i ⁇ ( ⁇ ) ( ⁇ i, 1 ( ⁇ ), ..., ⁇ i, n ( ⁇ ) + ⁇ ( ⁇ ) ( ⁇ ))... (18)
  • ⁇ j ⁇ * ( ⁇ ) ( ⁇ j, 1 * ( ⁇ ), ..., ⁇ j, n ( ⁇ ) + ⁇ ( ⁇ ) * ( ⁇ ))... (19)
  • the inner product of the n ( ⁇ ) + ⁇ ( ⁇ ) dimensional vector ⁇ i ⁇ ( ⁇ ) and ⁇ j ⁇ * ( ⁇ ) is as follows.
  • ⁇ i ⁇ ( ⁇ ) ⁇ j ⁇ * ( ⁇ ) ⁇ ' ⁇ ⁇ (i, j)... (20)
  • b i ( ⁇ ) represents an n ( ⁇ ) + ⁇ ( ⁇ ) -dimensional basis vector having n ( ⁇ ) + ⁇ ( ⁇ ) elements of the cyclic group G 1 as elements.
  • the basis vector b i ( ⁇ ) is obtained by the following calculation.
  • b i * ( ⁇ ) represents an n ( ⁇ ) + ⁇ ( ⁇ ) -dimensional basis vector whose elements are n ( ⁇ ) + ⁇ ( ⁇ ) elements of the cyclic group G 2 .
  • the basis vector b i * ( ⁇ ) is obtained by the following calculation.
  • e ⁇ (b i ( ⁇ ), b j * ( ⁇ )) g T ⁇ ⁇ ⁇ ' ⁇ ⁇ (i, j) ... (25) That is, the following relations are satisfied from the relations of the expressions (5), (20), (22), and (24).
  • the basis vector b i ( ⁇ ) and the basis vector b i * ( ⁇ ) are dual orthonormal bases of the dual pairing vector space (vector space V ( ⁇ ) and vector space V * ( ⁇ )). Note that if the relationship of Expression (25) is satisfied, basis vectors a i ( ⁇ ) and a i * ( ⁇ ) other than those exemplified in Expressions (8) and (9), and Expressions (21) and (23) Base vectors b i ( ⁇ ) and b i * ( ⁇ ) other than those exemplified in (1) may be used.
  • B ( ⁇ ) X ( ⁇ ) ⁇ A ( ⁇ ) is satisfied.
  • the matrix B ( ⁇ ) is as follows.
  • ⁇ ) represents a matrix of rows n ( ⁇ ) + ⁇ ( ⁇ ) columns.
  • B * ( ⁇ ) X * ( ⁇ ) ⁇ A * ( ⁇ ) is satisfied.
  • the matrix B * ( ⁇ ) is as follows: become.
  • v ( ⁇ ) ⁇ : v ( ⁇ ) ⁇ represents an n ( ⁇ ) -dimensional vector having elements of the finite field F q as elements.
  • v ( ⁇ ) ⁇ (v 1 ( ⁇ ) , ..., v n ( ⁇ ) ( ⁇ )) ⁇ F q n ( ⁇ ) ... (29)
  • w ( ⁇ ) ⁇ : w ( ⁇ ) ⁇ represents an n ( ⁇ ) -dimensional vector having elements of the finite field F q as elements.
  • w ( ⁇ ) ⁇ (w 1 ( ⁇ ) , ..., w n ( ⁇ ) ( ⁇ )) ⁇ F q n ( ⁇ ) ... (30)
  • w ⁇ ( ⁇ ): w ⁇ ( ⁇ ) represents the ⁇ ( ⁇ 1,..., n ( ⁇ ))-th element of the n ( ⁇ ) -dimensional vector w ( ⁇ ) ⁇ .
  • Enc represents a common key encryption function indicating encryption processing of the common key encryption method.
  • Enc K (M) represents a ciphertext obtained by encrypting plaintext M using the common key K according to the common key encryption function Enc.
  • Dec represents a common key decryption function indicating a decryption process of the common key cryptosystem.
  • Dec K (C) Dec K (C) represents a decryption result obtained by decrypting the ciphertext C using the common key K according to the common key decryption function Dec.
  • a function that is difficult to collide represents a function h that satisfies the following condition for a sufficiently large security parameter sec, or a function that can be regarded as a function h.
  • Pr [A (h) (x, y)
  • h (x) h (y) ⁇ x ⁇ y] ⁇ (sec)
  • Pr [•] is the probability of the event [•]
  • ⁇ (sec) is a polynomial for the security parameter sec.
  • An example of a function that is difficult to collide is a hash function such as “cryptographic hash function” disclosed in Reference 1.
  • Random function The "random function", function belongs to a subset phi zeta set [Phi zeta, or represents a function that can be regarded as a function belonging to the subset phi zeta.
  • the set [Phi zeta is the set of all functions that copy to the original based on the set ⁇ 0, 1 ⁇ zeta set ⁇ 0, 1 ⁇ zeta. Any probabilistic polynomial time algorithm can not distinguish between ⁇ set ⁇ ⁇ and the subset ⁇ .
  • An example of the random function is a hash function as described above.
  • a “injective function” is a function that does not map different original images belonging to the domain to the same element belonging to the range, or different original images belonging to the domain. Represents a function that can be regarded as a function that does not map to the same element belonging to the range.
  • a “injection function” is a function that maps an element belonging to the domain to one of the elements belonging to the range, or a pair of elements belonging to the domain to any element belonging to the range. It is a function that can be regarded as a function that maps in one.
  • An example of the injection function is a hash function such as “KDF (Key Derivation Function)” disclosed in Reference Document 1.
  • H S represents a hard-to-collision function that takes two values as inputs and outputs an element of one finite field F q .
  • S max is a positive integer constant.
  • the function H S is or collision function for outputting one elements of the finite field F q as inputs the original and one binary sequence of one of the cyclic group G T, input two binary sequences Is a collision-resistant function that outputs an element of one finite field Fq .
  • Specific examples of the function H S include a bijection function that maps two input values to a single binary sequence, a hash function such as “cryptographic hash function” disclosed in Reference 1, and a finite binary sequence.
  • R represents a bijection function that takes one value as input and outputs one binary sequence.
  • injective function R is a like function that outputs a single function or outputting one binary sequence of the original as the input of the cyclic group G T, one binary sequence as input one binary sequence .
  • a specific example of the injection function R is a function including a injection function that copies one input value to one binary sequence and a hash function such as “cryptographic hash function” disclosed in Reference 1, or A hash function such as “cryptographic hash function” disclosed in Reference 1.
  • the injection function R is preferably a one-way function, and more preferably a random function. From the viewpoint of safety, the injection function R is preferably a one-way function, and more preferably a random function.
  • the function encryption method is a method in which a ciphertext is decrypted when a truth value of a logical expression determined by a combination of first information and second information is “true”.
  • first information and second information are embedded in the ciphertext, and the other is embedded in the key information.
  • predicate encryption method disclosed in "" Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products, "with Amit Sahai and Brent Waters One of 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology” (reference 9) It is a kind of function cryptography.
  • a value corresponding to secret information is secretly distributed hierarchically in a manner corresponding to a predetermined logical expression.
  • the predetermined logical expression includes a propositional variable whose truth value is determined by a combination of the first information and the second information, and further includes any or all of the logical symbols ⁇ , ⁇ , and ⁇ as necessary.
  • a secret sharing scheme satisfying N is called a K t -out-of-N distribution scheme (or “K t -out-of-N threshold distribution scheme”)
  • K t -out-of-N threshold distribution scheme for example, Reference 10 “Kurosawa Rin, Ogata Wakaha , “Basic Mathematics of Modern Cryptography (Electronic Information and Communication Lecture Series)”, Corona, March 2004, p.116-119, Reference 11 “A. Shamir,“ How to Share a Secret ”, Communications of the ACM, November 1979, Volume 22, Number 11, pp.612-613.
  • the secret information SE can be restored if all share information share (1), ..., share (N) is given, but any N-1 share information shares Even if ( ⁇ 1 ), ..., share ( ⁇ N-1 ) is given, no information of the secret information SE can be obtained.
  • the secret information SE can be restored if K t pieces of different share information share ( ⁇ 1 ), ..., share ( ⁇ Kt ) are given. Even if K t ⁇ 1 pieces of share information share ( ⁇ 1 ),..., Share ( ⁇ Kt-1 ) are given, the information of the secret information SE cannot be obtained at all.
  • Kt subscript represents the K t.
  • the secret information SE can be restored by the following restoration process using, for example, a Lagrange interpolation formula.
  • Each secret sharing described above can also be performed on the body. Also, these values can be expanded to secretly distribute a value corresponding to the secret information SE to a value corresponding to the share information share.
  • the value corresponding to the secret information SE is the secret information SE itself or the function value of the secret information SE
  • the value corresponding to the share information share is the share information share itself or the function value of the share information.
  • finite field F q original a is secret information SE ⁇ F element g of q cyclic group G T corresponding to T SE ⁇ G T each share information share the secret information SE (1) of, according to share (2) original g T share (1) of the cyclic group G T, it may be a secret distributed g T share (2) ⁇ G T .
  • the above-described secret information SE is a linear combination of the share information share (Equations (31) and (32)).
  • a secret sharing scheme in which the secret information SE is a linear combination of the share information share is called a linear secret sharing scheme.
  • the predetermined logical expression described above can be expressed by tree structure data obtained by secretly sharing secret information in a hierarchical manner. That is, according to De Morgan's law, the above-mentioned predetermined logical expression is a logical expression composed of literals, or a logical expression composed of at least part of the logical symbols ⁇ and ⁇ and literals (these are referred to as “standard logical expressions”). This standard logical expression can be expressed by tree structure data obtained by secretly sharing secret information in a hierarchical manner.
  • the tree structure data representing the standard logical expression includes a plurality of nodes, at least some of the nodes are parent nodes of one or more child nodes, one of the parent nodes is a root node, and at least of the child nodes Some are leaf nodes. There is no parent node of the root node or a child node of the leaf node.
  • the value corresponding to the secret information corresponds to the root node, and the value corresponding to the share information obtained by secretly sharing the value corresponding to the parent node corresponds to the child node of each parent node.
  • the secret sharing mode secret sharing scheme and threshold
  • Each leaf node corresponds to each literal constituting the standard logical expression, and the truth value of each literal is determined by the combination of the first information and the second information.
  • a value corresponding to the share information corresponding to the leaf node corresponding to the literal whose truth value is true is obtained, but according to the share information corresponding to the leaf node corresponding to the literal whose truth value is false.
  • the obtained value is not obtained.
  • the value corresponding to the share information corresponding to the parent node depends on the share information corresponding to the child node. It is restored only when the number of values obtained is equal to or greater than the threshold value corresponding to the parent node.
  • the secret information finally corresponding to the root node depends on which literal value corresponding to which leaf node is true and the structure of the tree structure data (including the form of secret sharing at each node). It is determined whether or not the value corresponding to can be restored.
  • the tree structure data is configured so that the value corresponding to the secret information corresponding to the root node can be finally restored only when the truth value of each literal corresponding to each leaf node makes the truth value of the normal form logical expression true. If so, such tree structure data represents a standard logical expression. Tree structure data expressing such a standard logical expression can be easily set. Specific examples are shown below.
  • Fig. 1 shows the standard form formula PRO (1) ⁇ PRO (2 including the propositional variables PRO (1), PRO (2) and the negation of the propositional variable PRO (3) ⁇ PRO (3) and the logical symbols ⁇ , ⁇ ) Is a diagram illustrating tree structure data expressing ⁇ PRO (3).
  • the tree structure data illustrated in FIG. 1 includes a plurality of nodes N 1 ,..., N 5 .
  • Node N 1 is a parent node of nodes N 2 and N 5
  • node N 2 is a parent node of nodes N 3 and N 4
  • one of the parent nodes is node N 1
  • one of the child nodes is set as leaf nodes.
  • the child nodes N 3 and N 4 of the node N 2 have values corresponding to the share information SE-SH 1 and SH 1 in which the value corresponding to the share information SE is secretly distributed by the 2-out-of-2 distribution method. Correspond to each.
  • the leaf nodes N 3 , N 4 , and N 5 have the literals PRO (1), PRO (2), and ⁇ PRO (3 ) Correspond to each other, and the truth values of the literals PRO (1), PRO (2), and ⁇ PRO (3) are determined by a combination of the first information and the second information.
  • Figure 2 shows the propositional variables PRO (1), PRO (2), PRO (3), PRO (6), PRO (7) and the negation of the propositional variables PRO (4), PRO (5) ⁇ PRO (4), ⁇ PRO (5) and the logical expression (PRO (1) ⁇ PRO (2)) ⁇ (PRO (2) ⁇ PRO (3)) ⁇ (PRO (1) ⁇ PRO ( 3)) ⁇ PRO (4) ⁇ ( ⁇ PRO (5) ⁇ PRO (6)) ⁇ is a diagram illustrating tree structure data representing PRO (7).
  • the tree structure data illustrated in FIG. 2 includes a plurality of nodes N 1 ,..., N 11 .
  • Node N 1 is a parent node of nodes N 2 , N 6 , N 7
  • Node N 2 is a parent node of nodes N 3 , N 4 , N 5
  • Node N 7 is a parent node of nodes N 8 , N 11
  • the node N 8 is a parent node of the nodes N 9 and N 10
  • the node N 1 which is one of the parent nodes is a root node
  • the nodes N 3 , N 4 , N 5 , N 6 , N 9 , N 10 , and N 11 are leaf nodes.
  • the values corresponding to the share information SE, SE, and SE that are secretly shared with each other correspond to each other.
  • the child nodes N 3 , N 4 , and N 5 of the node N 2 each share information (1, f (1)) in which the value corresponding to the share information SE is secretly distributed by the 2-out-of-3 distribution method , (2, f (2)), (3, f (3)) correspond to values.
  • each share information SH 4 and SE-SH 4 obtained by secret sharing using the 2-out-of-2 sharing method with a value corresponding to the share information SE correspond respectively.
  • the child nodes N 9 and N 10 of the node N 8 correspond to the share information SH 4 and SH 4 obtained by secretly sharing the value corresponding to the share information SH 4 using the 1-out-of-2 distribution method. Correspond to each value.
  • the corresponding value corresponds
  • the leaf nodes N 3 , N 4 , N 5 , N 6 , N 9 , N 10 , and N 11 have standard logical expressions (PRO (1) ⁇ PRO (2)) ⁇ (PRO (2) (PRO (3)) ⁇ (PRO (1) ⁇ PRO (3)) ⁇ PRO (4) ⁇ ( ⁇ PRO (5) ⁇ PRO (6)) ⁇
  • Corresponding to each literal PRO (1), PRO (2), PRO (2), PRO (3), PRO (1), PRO (3), ⁇ PRO (4),, PRO (5), PRO (6 ), PRO (7) truth value is determined by the combination of the first information and the second information.
  • the combination of the first information and the second information is a standard logical expression (PRO (1) ⁇ PRO (2)) ⁇ (PRO (2) ⁇ PRO (3)) ⁇ (PRO (1) ⁇ PRO ( 3))
  • the value corresponding to the secret information SE is restored only when the truth value of ⁇ PRO (4) ⁇ ( ⁇ PRO (5) ⁇ PRO (6)) ⁇ PRO (7) is made true.
  • ⁇ Access structure> Share information at leaf nodes obtained for a combination of first information and second information when a predetermined logical expression is expressed by tree structure data obtained by secretly sharing secret information hierarchically as described above Whether the truth value of the logical expression determined by the combination of the first information and the second information is “true” or “false” depending on whether the value according to the secret information can be restored from the value according to Can be judged.
  • the truth value of the logical expression determined by the combination of the first information and the second information is “true”
  • the combination of the first information and the second information is accepted, and when the truth value is “false”
  • the first information A mechanism that rejects the combination of the second information and the second information is called an access structure.
  • the total number of leaf nodes of the tree structure data expressing a predetermined logical expression is ⁇
  • 1, ..., ⁇ be the second information.
  • the above-described tree structure data is implemented as a labeled matrix LMT (MT, LAB).
  • a value corresponding to the secret information SE ⁇ F q corresponds to the root node of the tree structure data expressing a predetermined logical expression as described above
  • an element of a predetermined finite field F q is defined as an element.
  • the following relationship holds between the COL dimension vector GV ⁇ to be performed and the COL dimension vector CV ⁇ having elements of the finite field F q corresponding to the secret information SE as elements.
  • GV ⁇ (gv 1 , ..., gv COL ) ⁇ F q COL ... (35)
  • CV ⁇ (cv 1 , ..., cv COL ) ⁇ F q COL ... (36)
  • SE GV ⁇ ⁇ (CV ⁇ ) T ... (37)
  • GV ⁇ (1 F , ..., 1 F ) ⁇ F q COL ... (38)
  • 1,.
  • VSET2 ⁇ , w ( ⁇ ) ⁇
  • 1, ..., ⁇ contains w ( ⁇ ) ⁇ and the inner product v ( ⁇ ) ⁇ ⁇ w ( ⁇ ) ⁇ is 0 If the truth value of the propositional variable PRO ( ⁇ ) is “false” and the inner product v ( ⁇ ) ⁇ .w ( ⁇ ) ⁇ is not equal to 0, deal with.
  • a label LAB ( ⁇ ) corresponding to PRO ( ⁇ ) represents v ( ⁇ ) ⁇ , and a label LAB ( ⁇ ) corresponding to ⁇ PRO ( ⁇ ) represents ⁇ v ( ⁇ ) ⁇ .
  • ⁇ v ( ⁇ ) ⁇ is a logical expression that represents the v ( ⁇ ) ⁇ negative, it is possible ⁇ v ( ⁇ ) ⁇ from v ( ⁇ ) ⁇ the identified.
  • TFV ⁇ (tfv (1), ..., tfv ( ⁇ ))... (40)
  • tfv ( ⁇ ) 0 (PRO ( ⁇ ) is false) if v ( ⁇ ) ⁇ w ( ⁇ ) ⁇ ⁇ 0... (42)
  • a value corresponding to the secret information SE can be restored from a value corresponding to the share information share ( ⁇ ) corresponding to the identifier ⁇ , and a row vector mt corresponding to the identifier ⁇ .
  • the COL dimension vector GV ⁇ belongs to the vector space spanned by ⁇ ⁇ . That is, by determining whether or not the COL dimension vector GV ⁇ belongs to the vector space spanned by the row vector mt ⁇ ⁇ corresponding to the identifier ⁇ , from the value corresponding to the share information share ( ⁇ ) corresponding to the identifier ⁇ It can be determined whether or not the value corresponding to the secret information SE can be restored.
  • the row vectors mt lambda ⁇ vector space spanned by means vector space can be represented by a row vector mt lambda ⁇ linear combination of.
  • the access structure accepts the combination of the first information and the second information, “the access structure accepts the second information. And the fact that the access structure does not accept the combination of the first information and the second information is called “the access structure rejects the second information”. Accept if GV ⁇ ⁇ span ⁇ MT TFV > Refusal if ⁇ (GV ⁇ ⁇ span ⁇ MT TFV >)
  • B * ( ⁇ ) ⁇ is a matrix B * ( ⁇ ) or a submatrix thereof
  • B ( ⁇ ) ⁇ is a matrix B ( ⁇ ) or a submatrix thereof.
  • coef ( ⁇ ) and coef ⁇ ( ⁇ ) ⁇ F q are constants or random numbers.
  • coef ( ⁇ ) and coef ⁇ ( ⁇ ) are random numbers.
  • ( ⁇ 2 (0), ..., ⁇ I (0)) (0 F , ⁇ 3 (0), 0 F , ⁇ 5 (0))
  • Enc-3 The ciphertext C ( ⁇ + 1) of plaintext M is generated using the common key K.
  • C ( ⁇ + 1) Enc K (M)...
  • the common key cryptosystem Enc may be, for example, Camellia (registered trademark) that can be encrypted using the common key K, AES, or the exclusive OR of the common key and plain text, but other simple
  • Enc K (M) may be generated as follows. However, in the example of equation (60), M ⁇ G T is assumed.
  • C ( ⁇ + 1) g T ⁇ ' ⁇ M... (60)
  • g T tau and g T tau 'and g T ⁇ ⁇ ⁇ ' may be handled as generator of G T instead of a g T a generator of G T.
  • a combination of C ( ⁇ ) and D * ( ⁇ ) is specified using a mapping that specifies the correspondence between ⁇ of key information SKS and ⁇ of ciphertext, and [Dec (PK, SKS, C): The process of “decryption” may be executed.
  • the second information VSET2 ⁇ , w ( ⁇ ) ⁇
  • 1, ..., n of ⁇ ( ⁇ ) th element v n ( ⁇ ) ( ⁇ ) may be a 1 F. If the element w 1 ( ⁇ ) is not 1 F may be used to w ( ⁇ ) ⁇ / w 1 ( ⁇ ) instead of w ( ⁇ ) ⁇ , element v n ( ⁇ ) ( ⁇ ) is 1 F may be used v ( ⁇ ) ⁇ / v n ( ⁇ ) ( ⁇ ) is v ( ⁇ ) ⁇ instead of if not.
  • First information VSET1 in this case ⁇ , v ( ⁇ ) ⁇
  • 1, ..., ⁇ 1 th element of v 1 (lambda) is the 1 F.
  • the attacker passes the plaintext M 0 , M 1 that is two bit strings to the cryptographic oracle having the public parameter PK, and the cryptographic oracle randomly selects bit ⁇ ⁇ 0,1 ⁇ , and one plaintext M Encrypt the bit and pass the ciphertext C bit to the attacker.
  • the attacker can pass the ciphertext C bit '(C bit ' ⁇ C bit ) to the decryption oracle having the key information SKS and receive the decryption result of the ciphertext C bit 'from the decryption oracle.
  • the attacker outputs bit' ⁇ ⁇ 0,1 ⁇ .
  • M ' C ( ⁇ + 1) (+) MAP (K)... (72)
  • MAP (K) represents the mapping to a binary sequence of K ⁇ G T.
  • the attacker can take the following strategy (hereinafter referred to as “assumed strategy”).
  • the public parameter PK is given to the attacker.
  • 1, ..., ⁇ and two plaintexts M 0 and M 1 to the encryption oracle having the public parameter PK .
  • C bit (VSET2, C (0), ⁇ C ( ⁇ ) ⁇ ( ⁇ , w ( ⁇ ) ⁇ ) ⁇ VSET2 , C bit ( ⁇ + 1))... (74)
  • the attacker passes the following ciphertext C bit 'to the decryption oracle having the key information SKS (formula (52)), and receives the decryption result of the ciphertext C bit ' from the decryption oracle.
  • C bit ' (VSET2, C (0), ⁇ C ( ⁇ ) ⁇ ( ⁇ , w ( ⁇ ) ⁇ ) ⁇ VSET2 , C bit ( ⁇ + 1) (+) ⁇ M)... (75)
  • ⁇ M is a binary sequence whose value is known to the attacker.
  • the encryption device that performs the encryption processing executes the following processing.
  • the random number generation unit generates a random number r.
  • the first encryption unit generates a ciphertext C 2 that is an exclusive OR value of the binary sequence corresponding to the random number r and the binary sequence plaintext M.
  • Random number r is a secret information, which does not know the random number r can not restore the plaintext M from the ciphertext C 2.
  • the common key generation unit generating a cyclic group G T based g T and constant tau, to tau ', generates a common key K to satisfy the following relation.
  • the second encryption unit encrypts the random number r by the common key encryption method using the common key K, and generates the ciphertext C ( ⁇ + 1).
  • ⁇ , ⁇ ⁇ (0) ( ⁇ 2, ..., I)
  • the decoding device that performs the decoding process executes the following process.
  • the first key information is represented by the following formula.
  • the first decryption unit decrypts the input ciphertext C ′ ( ⁇ + 1) using the common key K ′ to generate a decrypted value r ′.
  • the second decryption unit performs binary processing according to the decryption value r ′.
  • a decrypted value M ′ that is an exclusive OR of the sequence and the input binary sequence ciphertext C 2 ′ is generated.
  • ⁇ '', ⁇ ⁇ '' (0) ( ⁇ 2, ..., I)
  • the decryption oracle to which the ciphertext C bit 'is input generates a common key K' (formula (82)) when there is a coefficient const ( ⁇ ) satisfying formula (45) (DEC-11), and the common key
  • the first information VSET1 ⁇ , v ( ⁇ ) ⁇
  • 1, ..., ⁇ is incorporated into the key information
  • the second information VSET2 ⁇ , w ( ⁇ ) ⁇
  • An example in which 1, ..., ⁇ is embedded in the ciphertext is shown.
  • the second information VSET2 ⁇ , w ( ⁇ ) ⁇
  • 1,..., ⁇ is incorporated into the key information
  • the first information VSET1 ⁇ , v ( ⁇ ) ⁇
  • 1 , ..., ⁇ may be included in the ciphertext.
  • the n ( ⁇ ) -dimensional vector v ( ⁇ ) ⁇ constituting the first information VSET1 corresponds to a specific policy
  • the second information VSET2 ⁇ , w ( ⁇ ) ⁇
  • The n ( ⁇ ) -dimensional vector w ( ⁇ ) ⁇ constituting 1, ..., ⁇ corresponds to the attribute.
  • the cryptographic system 1 of the present embodiment includes an encryption device 110, a decryption device 120, and a key generation device 130.
  • the encryption device 110 and the decryption device 120, and the decryption device 120 and the key generation device 130 can transmit information via a network, a portable recording medium, or the like.
  • the encryption device 110 includes an input unit 111, an output unit 112, a storage unit 113, a control unit 114, a random number generation unit 115, encryption units 116 a, 116 d, and 116 e, and a function calculation unit. 116b, a common key generation unit 116c, and a combination unit 117.
  • the encryption device 110 is a special device including, for example, a known or dedicated computer including a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read-Only Memory), and a special program.
  • the random number generation unit 115, the encryption units 116a, 116d, and 116e, the function calculation unit 116b, the common key generation unit 116c, and the combining unit 117 are, for example, processing units configured by the CPU executing a special program. Further, at least a part of the processing unit may be formed of a special integrated circuit, such as the random number generation unit 115 being a known random number generation IC (integrated circuit).
  • the storage unit 113 is, for example, a RAM, a register, a cache memory, an element in an integrated circuit, an auxiliary storage device such as a hard disk, or a storage area including at least a combination of these.
  • the input unit 111 is, for example, an input interface such as a keyboard, a communication device such as a modem or a LAN (Local Area Network) card, or an input port such as a USB terminal.
  • the output unit 112 is, for example, an output interface, a communication device such as a modem or a LAN card, or an output port such as a USB terminal.
  • the encryption device 110 executes each process under the control of the control unit 114.
  • the decryption device 120 of this embodiment includes an input unit 121, an output unit 122, a storage unit 123, a control unit 124, a common key generation unit 126 a, decryption units 126 b and 126 e, a function calculation unit 126 c, a determination A portion 126d and a separation portion 127.
  • the decoding device 120 is a special device including a known or dedicated computer including a CPU, RAM, ROM, and the like and a special program, for example.
  • control unit 124, the common key generation unit 126a, the decryption units 126b and 126e, the function calculation unit 126c, the determination unit 126d, and the separation unit 127 are, for example, processing units configured by the CPU executing a special program. is there. Further, at least a part of the processing unit may be configured by a special integrated circuit.
  • the storage unit 123 is, for example, a RAM, a register, a cache memory, an element in an integrated circuit, an auxiliary storage device such as a hard disk, or a storage area including at least a combination of these.
  • the input unit 121 is, for example, an input interface, a communication device, or an input port.
  • the output unit 122 is, for example, an output interface, a communication device, an output port, or the like.
  • the decoding device 120 executes each process under the control of the control unit 124.
  • the key generation device 130 includes an input unit 131, an output unit 132, a storage unit 133, a control unit 134, a selection unit 135, a share information generation unit 136a, a secret information generation unit 136b, and a key.
  • the generators 136c, 136d, and 136e are included.
  • the key generation device 130 is a special device including, for example, a known or dedicated computer including a CPU, a RAM, a ROM, and the like and a special program.
  • control unit 134, the selection unit 135, the share information generation unit 136a, the secret information generation unit 136b, and the key generation units 136c, 136d, and 136e are, for example, processing units configured by the CPU executing a special program. is there. Further, at least a part of the processing unit may be configured by a special integrated circuit.
  • the storage unit 133 is, for example, a RAM, a register, a cache memory, an element in an integrated circuit, an auxiliary storage device such as a hard disk, or a storage area formed by a combination of at least a part thereof.
  • the input unit 131 is, for example, an input interface, a communication device, an input port, or the like.
  • the output unit 132 is, for example, an output interface, a communication device, an output port, or the like.
  • the key generation device 130 executes each process under the control of the control unit 134.
  • the master key information MSK is set in the key generation device 130 so that it can be used by the key generation device 130.
  • the master key information MSK is confidential information and is not disclosed.
  • the setting of the public parameter PK or the like to the device may be performed by incorporating the public parameter PK or the like in a special program that configures the device, or may be performed by being stored in the storage device of the device. . In this embodiment, an example in which a public parameter PK or the like is incorporated in a special program is shown.
  • the key information generation process is executed particularly when the key information SKS is not stored in the storage unit 123 of the decryption device 120. When the key information SKS is stored in the storage unit 123 of the decryption device 120, this process may be omitted.
  • the key information generation process may be performed before the ciphertext is generated or may be performed after the ciphertext is generated.
  • a labeled matrix LMT (MT, LAB) corresponding to the key information to be generated is input to the input unit 131 of the key generation device 130 (FIG. 6).
  • the labeled matrix LMT (MT, LAB) is the label LAB ( ⁇ ) corresponding to the matrix MT of Equation (34) and the n ( ⁇ ) -dimensional vector v ( ⁇ ) ⁇ constituting the first information VSET1.
  • the input labeled matrix LMT (MT, LAB) is stored in the storage unit 133 (step S11).
  • the selection unit 135 arbitrarily selects a COL dimension vector CV ⁇ ⁇ F q COL (formula (36)) having elements of the finite field F q as elements, and stores the COL dimension vector CV ⁇ in the storage unit 133.
  • the COL dimension vector CV ⁇ is input to the secret information generation unit 136b, and the secret information generation unit 136b generates the secret information SE according to the equation (37) and stores it in the storage unit 133 (step S14).
  • the secret information SE is input to the key generation unit 136c, and the key generation unit 136c generates key information D * (0) according to the equation (46) and stores it in the storage unit 133.
  • the key generation unit 136c generates key information D * (0) according to the equation (47) and stores it in the storage unit 133 (step S15).
  • the key information SKS is generated according to the equation (52) and sent to the output unit 132 (step S17).
  • the output unit 132 outputs key information SKS (step S18).
  • the key information SKS is input to the input unit 121 of the decryption device 120 (FIG. 5) and stored in the storage unit 123.
  • the random number generation unit 115 generates a random number r and stores the random number r in the storage unit 113.
  • the random number r is an element of a set forming a domain of the injection function R.
  • injective function R is a function that receives the one of the original cyclic group G T is the original cyclic group G T
  • injective function R is as input one binary sequence
  • the random number r is a binary sequence (step S22).
  • a random number r and plaintext M are input to the encryption unit 116a.
  • Random number r and the ciphertext C 2 is input to function operation unit 116 b.
  • S max in this embodiment is a constant.
  • An example of S max is shown below (step S24).
  • a generator g T and constants of the common key generation unit 116c is the cyclic group G T tau, tau ', generates a common key K ⁇ G T satisfying the formula (76) with respect to ⁇ ' ⁇ F q.
  • An example of ⁇ ′ ⁇ F q is shown below (step S25).
  • ⁇ ' H 2 (r, C 2 ) ⁇ F q (
  • a common key K and a random number r are input to the encryption unit 116d.
  • the encryption unit 116d encrypts the random number r by the common key encryption method using the common key K, and generates the following ciphertext C ( ⁇ + 1).
  • C ( ⁇ + 1) Enc K (r)... (87)
  • the ciphertext C ( ⁇ + 1) is stored in the storage unit 113 (step S26).
  • ⁇ , ⁇ ⁇ (0) ( ⁇ 2, ..., I)
  • Equations (55) and (56) also need to be satisfied.
  • H 1 (r, C 2 ),..., H Smax (r, C 2 ) are preferably in a one-to-one correspondence.
  • the value of S max is ⁇ , ⁇ 3 (0), ⁇ 5 (0), ⁇ 3 ⁇ n ( ⁇ ) +1 ( ⁇ ), ..., ⁇ 4 ⁇ n ( ⁇ ) ( ⁇ ) Or more.
  • the ciphertext C 1 and the ciphertext C 2 are input to the combining unit 117.
  • the combining unit 117 generates a bit combination value between the binary sequence corresponding to the ciphertext C 1 and the ciphertext C 2 as the ciphertext Code.
  • Code C 1
  • the decryption device 120 can specify the position of the ciphertext C 1 and the position of the ciphertext C 2 in the ciphertext Code. For example, the position of the ciphertext C 1 and the position of the ciphertext C 2 in the ciphertext Code are fixed, or the position of the ciphertext C 1 and the position of the ciphertext C 2 in the ciphertext Code are represented. Additional information is added to the ciphertext Code (step S28).
  • the ciphertext Code is sent to the output unit 112.
  • the output unit 112 outputs the ciphertext Code (step S29). This completes the encryption process.
  • the ciphertext Code ′ is input to the input unit 121 of the decryption device 120 (FIG. 5) and stored in the storage unit 123.
  • the ciphertext Code ′ is, for example, the above-described ciphertext Code (step S41).
  • Ciphertext Code ' is input to the separation unit 127, separation unit 127 ciphertext Code at a predetermined been methods' to separate the' ciphertext C 2 'ciphertext C 1 is equal to the encrypted ciphertext C 1'
  • the sentence C 2 ′ is stored in the storage unit 123.
  • Common key generating unit 126a determines whether or not it is possible to recover the symmetric key K' ⁇ G T by using the key information SKS and ciphertext C 1 '.
  • 1, ..., ⁇ and each label LAB ( ⁇ ) of LMT (MT, LAB) N ( ⁇ ) dimensional vector v ( ⁇ ) ⁇ each label LAB ( ⁇ ) of the labeled matrix LMT (MT, LAB) included in and n ( ⁇ ) dimensional vector w ( ⁇ ) included in VSET2 of ciphertext C ⁇
  • the inner product v ( ⁇ ) ⁇ w ( ⁇ ) ⁇ is determined to be 0, and GV ⁇ ⁇ using the result and each label LAB ( ⁇ ) of LMT (MT, LAB) It is determined whether or not span ⁇ MT TFV >.
  • Step S43 GV ⁇ ⁇ span common key K' ⁇ G T if ⁇ MT TFV> are possible restoration, GV ⁇ ⁇ span ⁇ MT TFV> unless the common key K' ⁇ G T can be restored.
  • step S43 A specific example of the process in step S43 will be described later. If it is determined that the common key K′ ⁇ G T cannot be restored, the decryption is rejected (step S48), and the decryption process ends.
  • the common key generation unit 126a calculates a coefficient const (mu) satisfying the formula (45), the common key K according to equation (82) ' ⁇ G T is calculated.
  • the generated common key K ′ is stored in the storage unit 123 (step S44).
  • the decryption unit 126b stores the decrypted value r ′ in the storage unit 123 (step S45).
  • the decrypted value r ′ and the ciphertext C 2 ′ are input to the function calculation unit 126c.
  • Two pieces of information VSET2 ′ and ciphertext C ′ (0), ⁇ C ′ ( ⁇ ) ⁇ ( ⁇ , w ( ⁇ ) ⁇ ) ⁇ VSET2 ′) are input.
  • Value ⁇ '', ⁇ ⁇ '' (0) ( ⁇ 2, ..., I)
  • Equation (55) (56) of ⁇ ⁇ (0), ⁇ ⁇ ( ⁇ ) is ⁇ ⁇ '' (0), ⁇ ⁇ '' relationships it is necessary to be satisfied substituted (lambda).
  • ⁇ '', ⁇ 3 '' (0) , ⁇ 5 ′′ (0), ⁇ 3 ⁇ n ( ⁇ ) +1 ′′ ( ⁇ ),..., ⁇ 4 ⁇ n ( ⁇ ) ′′ ( ⁇ ) are represented by H 1 (r ′, C 2 '), ..., H Smax (r', C 2 ')
  • ⁇ '' 1 ⁇ ⁇
  • the value of S max is ⁇ '', ⁇ 3 '' (0), ⁇ 5 '' (0), ⁇ 3 n ( ⁇ ) +1 '' ( ⁇ ), ..., ⁇ 4 -It is more than the number of n ( ⁇ ) '' ( ⁇ ).
  • ⁇ '', ⁇ ⁇ '' (0) ( ⁇ 2, ..., I)
  • the determination unit 126d determines whether or not all of the following are satisfied (step S47).
  • C '(0) C''(0)... (93)
  • the decoding is rejected (step S48), and the decoding process ends.
  • the ciphertext C 2 ′ and the decrypted value r ′ of the binary sequence are input to the decryption unit 126e.
  • the decoded value M ′ is sent to the output unit 122, and the output unit 122 outputs the decoded value M ′ (step S50). This completes the decoding process.
  • Step S43 Specific Example of Processing in Step S43
  • a case where the COL dimension vector GV ⁇ of Equation (38) is used is exemplified.
  • 1,... Corresponding to the labeled matrix LMT (MT, LAB).
  • MT TFV is expressed as follows.
  • is an integer equal to or greater than 1 and equal to or less than the number of rows and columns of the submatrix MT TFV .
  • MT TFV 'is as follows. However, each element after ⁇ + 1 row may not exist, and each element after ⁇ + 1 column may not exist.
  • submatrix MT TFV in the second row of the row vectors mt 2 ⁇ (mt 2,1, ..., mt 2, COL) mt 2,1 times a row vector of the first row of MT TFV 'from
  • the row vector (0 F , mt 2,2 '', ..., mt 2, COL '') obtained by subtracting the calculated row vector and divided by mt 2,2 '' is the second row of MT TFV ' A row vector.
  • the upper triangulation matrix MT TFV ' can be generated by processing each row vector of the already generated MT TFV ' and processing a row vector having a larger row number.
  • the operation for generating the upper triangulation matrix MT TFV ' is a unary operation in units of row vectors and a binary operation between row vectors, and different operations are performed on different elements in the same row vector. Is not allowed.
  • the division method is the additive unit element 0 F
  • the row vector to be processed is selected again. If the submatrix MT TFV contains multiple row vectors that are not linearly independent from each other (ie, multiple row vectors that are linearly dependent), then one row vector representing such a row vector will be an element of the upper triangular matrix of ⁇ ⁇ ⁇ .
  • the other row vectors are row vectors having only the additive unit element 0 F as an element (step S432).
  • Common key generation unit 126a is a vector of formula (98) below as a new (mt 1,1 '... mt 1, COL'), 1 line of the row vector of the upper triangulation matrix MT TFV '( mt 1,1 '... mt 1, COL ') is updated.
  • mt ⁇ ′, COL ′ represents a row vector of the ⁇ ′ row of the upper triangulation matrix MT TFV ′.
  • the common key generation unit 126a determines that K ′ can be decrypted if Expression (99) is satisfied (step S438), and determines that K ′ cannot be decrypted if this is not satisfied. (Step S439).
  • All the calculation contents for generating the upper triangulation matrix MT TFV ′ in step S432 and all the calculation contents in step S434 are stored in the storage unit 123.
  • K ′ can be decoded (step S438), all the operations for generating the upper triangulation matrix MT TFV ′ and all the operations in step S434 are performed on each element of the submatrix MT TFV . Is applied to the matrix obtained as an indefinite element.
  • ⁇ ′, COL ) ( ⁇ ′ ROW (1),... ROW ( ⁇ ) ⁇ SET), that is, the column vector ind ⁇ ′ ⁇ and the coefficient const ( ⁇ ′ corresponding to the column vector ) And sum of products. const (ROW (1)) ⁇ ind ROW (1) ⁇ + ...
  • step S47 it is determined whether the expressions (93) and (94) are both satisfied.
  • C ′ (0) and C ′ ( ⁇ ) ( ⁇ 1,..., ⁇ )
  • the first value is output when both of the expressions (93) and (94) are satisfied, and the determination is made by the function that outputs the first value when at least a part of the expressions (93) and (94) is not satisfied. Also good.
  • the decryption device 120 may output error information, may output a random number unrelated to the decryption result, or may not output anything.
  • Each operation defined on the finite field F q may be replaced with an operation defined on the finite ring Z q of order q .
  • An example of a method of replacing each operation defined on the finite field F q with an operation defined on the finite ring Z q is a method of allowing q other than a prime number or a power value thereof. Equation (46) (48) - (51) (53) - (56) term additive identity is multiplied in other operations the unit element of the cyclic group G 1 or G 2. The calculation of the term multiplied by the additive unit element may or may not be performed.
  • the processing contents of the functions that each device should have are described by a program.
  • the processing functions are realized on the computer by executing the program on the computer.
  • the program describing the processing contents can be recorded on a computer-readable recording medium.
  • the computer-readable recording medium any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
  • This program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded.
  • the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads the program stored in its own storage device and executes the process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good.
  • ASP Application Service Provider

Abstract

 暗号化時に乱数rを生成し、暗号文C2=M(+)R(r)、関数値HS(r,C2)、共通鍵K、共通鍵Kによる乱数rの暗号文C(Ψ+1)、関数値HS(r,C2)に対応する共通鍵Kの暗号文C(0),C(λ)を生成する。復号化時に入力された暗号文C'(0),C'(λ)から共通鍵K'を復号し、共通鍵K'を用いて入力された暗号文C'(Ψ+1)を復号して復号値r'を生成し、関数値HS(r',C2')を生成し、入力された暗号文C'(0),C'(λ)と関数値HS(r',C2')に対応する共通鍵K'の暗号文C''(0),C''(λ)とが一致しない場合に復号を拒絶し、一致する場合に入力された暗号文C2'を復号する。

Description

暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体
 本発明は、セキュリティ技術に関し、特に暗号技術に関する。
 暗号研究分野の一つに、選択暗号文攻撃に対して安全な(CCA-Secure:Chosen Ciphertext Attacks - Secure )暗号方式(CCA安全な暗号方式)がある。特に近年、一般に選択平文攻撃(CPA: Chosen Plaintext Attack)に対する安全性しか持たないIDベース暗号(IBE: Identity-based Encryption)方式(例えば、非特許文献1参照)に基づきCCA安全な暗号方式を構成しようとする研究が盛んである。例えば、非特許文献2では、CHK変換方式が提案されている。CHK変換方式では、CPA安全な任意のIDベース暗号方式に基づいてCCA安全な暗号方式を構築するためにOne-Time 署名が用いられる。例えば、非特許文献3では、BK変換方式が提案されている。BK変換方式では、CPA安全な任意のIDベース暗号方式に基づいてCCA安全な暗号方式を構築するために、メッセージ認証子(MAC: Message Authentication Code)とビットコミットメント方式とが用いられる。
D.Boneh, M. Franklin, "Identity based encryption from the Weil pairing," Crypto 2001, Lecture Notes in Computer Science, Vol. 2139, Springer-Verlag, pp.213-229, 2001. R. Canetti, S. Halevi, J. Katz, "Chosen-Ciphertext Security from Identity-Based Encryption," Proc. of EUROCRYPT’04, LNCS 3027, pp. 207-222, 2004. D. Boneh, J. Katz, "Improved Efficiency for CCA-Secure Cryptosystems Built Using Identity-Based Encryption," Proc. of CT-RSA’05, LNCS 3376, pp. 87-103, 2005.
 上述したCHK変換方式に基づいて生成された暗号文は、暗号化された平文と当該暗号化された平文のOne-Time署名と当該One-Time署名を検証するための署名鍵とを含む。そのため、CHK変換方式に基づいて生成される暗号文の暗号文空間は、暗号化された平文のための空間だけではなく、One-Time署名や署名鍵のための空間を含む。上述したBK変換方式に基づいて生成された暗号文は、暗号化された平文とメッセージ認証子とビットコミットメント列とを含む。そのため、BK変換方式に基づいて生成される暗号文の暗号文空間は、暗号化された平文のための空間だけではなく、メッセージ認証子やビットコミットメント列のための空間を含む。すなわち、CHK変換方式やBK変換方式に基づいて生成される暗号文空間は、CCA安全性を向上させるためのみに割り当てられた2次元の空間を含む。しかしながら、暗号文空間のサイズが大きくなるほど演算量やデータ量が増加するため、暗号文空間のサイズはできるだけ小さいほうが望ましい。
 また、IDベース暗号方式では、暗号化を行う者が、暗号化を行う前に復号を行う者のIDを取得しておかなければならない。これに対し、暗号化を行う者が復号を行う者を特定することなく暗号文を生成でき、所望の条件に合致した者が当該暗号文を復号できる方式を構成できれば便利である。
 本発明はこのような点に鑑みてなされたものであり、利便性が高く、CCA安全性の向上のための付加的な暗号文空間なしにCCA安全性を向上できる暗号方式を提供する。
 本発明の暗号化では、乱数rが生成され、乱数rに応じたバイナリ系列とバイナリ系列の平文Mとの排他的論理和値である暗号文C2が生成される。乱数rと暗号文C2との組が衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力されてSmax(Smax≧1)個の関数値HS(r,C2)(S=1,...,Smax)が生成される。巡回群GTの元である共通鍵Kが生成され、共通鍵Kを用いて共通鍵暗号方式によって乱数rを暗号化して暗号文C(Ψ+1)が生成される。C(0)=υ・b1(0)+Σι=2 Iυι(0)・bι(0)、C(λ)=υ・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)・bι(λ)、及び暗号文C(Ψ+1)を含む暗号文C1が生成される。
 ここで、Ψが1以上の整数であり、ψが0以上Ψ以下の整数であり、n(ψ)が1以上の整数であり、ζ(ψ)が0以上の整数であり、λが1以上Ψ以下の整数であり、Iが2以上n(0)+ζ(0)以下の定数であり、eψのそれぞれが巡回群G1のn(ψ)+ζ(ψ)個の元γβ(β=1,...,n(ψ)+ζ(ψ))と巡回群G2のn(ψ)+ζ(ψ)個の元γβ *(β=1,...,n(ψ)+ζ(ψ))とを入力として巡回群GTの1個の元を出力する非退化な双線形写像であり、iが1以上n(ψ)+ζ(ψ)以下の整数であり、bi(ψ)が巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、bi *(ψ)が巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、δ(i,j)がクロネッカーのデルタ関数であり、巡回群GTの生成元gT及び定数τ,τ'に対してeψ(bi(ψ), bj *(ψ))=gT τ・τ'・δ(i,j)が満たされ、w(λ)=(w1(λ),...,wn(λ)(λ))がw1(λ),...,wn(λ)(λ)を要素とするn(λ)次元ベクトルである。υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が関数値HS(r,C2)(S=1,...,Smax)の何れかに対応する。
 本発明の復号では、SE=Σμ∈SETconst(μ)・share(μ)(μ∈SET)を満たす係数const(μ)が存在する場合に、第1鍵情報D*(0)、第2鍵情報D*(λ)、及び、入力された暗号文C'(0)、C'(λ)を用いて、以下のように共通鍵K'が生成される。
Figure JPOXMLDOC01-appb-M000003
共通鍵K'を用い、入力された暗号文C'(Ψ+1)が復号されて復号値r'が生成される。復号値r'と入力された暗号文C2'との組が衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力されてSmax(Smax≧1)個の関数値HS(r',C2')(S=1,...,Smax)が生成される。暗号文C'(0),C'(λ)と暗号文C''(0)=υ''・b1(0)+Σι=2 Iυι''(0)・bι(0),C''(λ)=υ''・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)・bι(λ)とそれぞれが一致しない場合に復号が拒絶される。
 ただし、v(λ)=(v1(λ),...,vn(λ)(λ))がv1(λ),...,vn(λ)(λ)を要素とするn(λ)次元ベクトルであり、w(λ)=(w1(λ),...,wn(λ)(λ))がw1(λ),...,wn(λ)(λ)を要素とするn(λ)次元ベクトルであり、ラベルLAB(λ)(λ=1,...,Ψ)がn(λ)次元ベクトルv(λ)又はn(λ)次元ベクトルv(λ)の否定¬v(λ)を表す情報であり、「LAB(λ)=v(λ)」はLAB(λ)がn(λ)次元ベクトルv(λ)を表すことを意味し、「LAB(λ)=¬v(λ)」はn(λ)次元ベクトルv(λ)の否定¬v(λ)を表すことを意味し、share(λ)(λ=1,...,Ψ)が秘密情報SEを秘密分散して得られたシェア情報を表し、第1鍵情報がD*(0)=-SE・b1 *(0)+Σι=2 Icoefι(0)・bι *(0)であり、LAB(λ)=v(λ)となるλに対する第2鍵情報がD*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)+Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)であり、LAB(λ)=¬v(λ)となるλに対する第2鍵情報がD*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)であり、SETが{LAB(λ)=v(λ)}∧{v(λ)・w(λ)=0}又は{LAB(λ)=¬v(λ)}∧{v(λ)・w(λ)≠0}を満たすλの集合を表す。υ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が関数値HS(r',C2')(S=1,...,Smax)の何れかに対応する。
 本発明では、暗号文C'(0),C'(λ)と暗号文C''(0),C''(λ)とがそれぞれ一致しない場合に復号を拒絶することとしたためCCA安全性が向上する。本発明では、CCA安全性を向上させるための付加的な暗号文空間が不要である。本発明は、暗号化を行う者が復号を行う者を特定することなく暗号文を生成でき、所望の条件に合致した者が当該暗号文を復号できる。
 このように本発明では、利便性が高く、CCA安全性の向上のための付加的な暗号文空間なしにCCA安全性を向上できる。
図1は、標準形論理式を表現する木構造データを例示する図である。 図2は、標準形論理式を表現する木構造データを例示する図である。 図3は、本形態の暗号システムを例示するためのブロック図である。 図4は、本形態の暗号化装置を例示するためのブロック図である。 図5は、本形態の復号装置を例示するためのブロック図である。 図6は、本形態の鍵生成装置を例示するためのブロック図である。 図7は、本形態の鍵生成処理を例示するための図である。 図8は、本形態の暗号化処理を例示するための図である。 図9は、本形態の復号処理を例示するための図である。 図10は、図9のステップ43の処理を例示するための図である。
 本発明を実施するための形態を説明する。
 〔定義〕
 行列:「行列」とは演算が定義された集合の元を矩形に並べたものを表す。環の元を要素とするものだけではなく、群の元を要素とするものも「行列」である。
 (・)T:(・)Tは・の転置行列を表す。
 (・)-1:(・)-1は・の逆行列を表す。
 ∧:∧は論理積(AND)を表す論理記号である。
 ∨:∨は論理和(OR)を表す論理記号である。
 ¬:¬は否定(NOT)を表す論理記号である。
 命題変数:命題変数は命題の「真」,「偽」("false","true")を要素とする集合{真,偽}上の変数である。すなわち、命題変数の定義域は「真」,「偽」を要素とする集合である。命題変数及び命題変数の否定を総称してリテラル(literal)と呼ぶ。
 論理式:論理式とは数理論理学における命題を表す式を意味する。具体的には「真」及び「偽」は論理式であり、命題変数は論理式であり、論理式の否定は論理式であり、論理式と論理式との論理積は論理式であり、論理式と論理式との論理和は論理式である。
 Z:Zは整数集合を表す。
 sec:secはセキュリティパラメータ(sec∈Z, sec>0)を表す。
 0*:0*は*個の0からなる列を表す。
 1*:1*は*個の1からなる列を表す。
 {0,1}*:{0,1}*は任意ビット長のバイナリ系列を表す。{0,1}*の一例は、整数0及び1からなる系列である。しかし、{0,1}*は整数0及び1からなる系列に限定されない。{0,1}*は位数2の有限体又はその拡大体と同義である。
 {0,1}ζ:{0,1}ζはビット長ζ(ζ∈Z, ζ>0)のバイナリ系列を表す。{0,1}ζの一例は、ζ個の整数0及び1からなる系列である。しかし、{0,1}ζは整数0及び1からなる系列に限定されない。{0,1}ζは位数2の有限体(ζ=1の場合)又はそれをζ次拡大した拡大体(ζ>1の場合)と同義である。
 (+):(+)はバイナリ系列間の排他的論理和演算子を表す。例えば、10110011(+)11100001=01010010を満たす。
 Fq:Fqは位数qの有限体を表す。位数qは1以上の整数であり、例えば、素数や素数のべき乗値を位数qとする。すなわち、有限体Fqの例は素体やそれを基礎体とした拡大体である。有限体Fqが素体である場合の演算は、例えば、位数qを法とする剰余演算によって容易に構成できる。有限体Fqが拡大体である場合の演算は、例えば、既約多項式を法とする剰余演算によって容易に構成できる。有限体Fqの具体的な構成方法は、例えば、参考文献1「ISO/IEC 18033-2: Information technology - Security techniques - Encryption algorithms - Part 2: Asymmetric ciphers」に開示されている。
 0F:0Fは有限体Fqの加法単位元(零元)を表す。
 1F:1Fは有限体Fqの乗法単位元を表す。
 δ(i,j):δ(i,j)はクロネッカーのデルタ関数を表す。i=jの場合にδ(i,j)=1Fを満たし、i≠jの場合にδ(i,j)=0Fを満たす。
 E:Eは有限体Fq上で定義された楕円曲線を表す。楕円曲線Eは、以下に示すアフィン(affine)座標上のWeierstrass方程式を満たすx,y∈Fqからなる点(x,y)の集合と無限遠点と呼ばれる特別な点Oとを含む集合である。
   y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6
ただし、a1,a2,a3,a4,a6∈Fqを満たす。
 楕円曲線E上の任意の2点に対して楕円加算と呼ばれる二項演算+が定義され、楕円曲線E上の任意の1点に対して逆元演算と呼ばれる単項演算-が定義される。楕円曲線E上の有理点からなる有限集合が楕円加算に関して群をなすこと、楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できること、及びコンピュータ上での楕円加算などの楕円演算の具体的な演算方法はよく知られている(例えば、参考文献1、参考文献2「RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems」、参考文献3「イアン・F・ブラケ、ガディエル・セロッシ、ナイジェル・P・スマート=著、「楕円曲線暗号」、出版=ピアソン・エデュケーション、ISBN4-89471-431-0」等参照)。
 楕円曲線E上の有理点からなる有限集合は位数p(p≧1)の部分群を持つ。例えば、楕円曲線E上の有理点からなる有限集合の要素数が#Eであり、pが#Eを割り切る大きい素数であるとすると、楕円曲線Eのp等分点からなる有限集合E[p]は、楕円曲線E上の有理点からなる有限集合の部分群を構成する。楕円曲線Eのp等分点とは、楕円曲線E上の点Aのうち、楕円曲線E上での楕円スカラー倍算値p・Aがp・A=Oを満たす点を意味する。
 G1, G2,GT:G1, G2, GTはそれぞれ位数qの巡回群を表す。巡回群G1, G2の具体例は、楕円曲線Eのp等分点からなる有限集合E[p]やその部分群である。G1=G2であってもよいしG1≠G2であってもよい。巡回群GTの具体例は、有限体Fqを基礎体とする拡大体を構成する有限集合である。その一例は、有限体Fqの代数閉包における1のp乗根からなる有限集合である。巡回群G1, G2,GTの位数と有限体Fqの位数とが同一である場合にはより安全性が高い。
 本形態では、巡回群G1, G2上で定義された演算を加法的に表現し、巡回群GT上で定義された演算を乗法的に表現する。例えば、χ∈Fq及びΩ∈G1に対するχ・Ω∈G1は、Ω∈G1に対して巡回群G1で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G1に対するΩ12∈G1は、Ω1∈G1とΩ2∈G1とを被演算子として巡回群G1で定義された演算を行うことを意味する。同様に、例えば、χ∈Fq及びΩ∈G2に対するχ・Ω∈G2は、Ω∈G2に対して巡回群G2で定義された演算をχ回施すことを意味し、Ω1, Ω2∈G2に対するΩ12∈G2は、Ω1∈G2とΩ2∈G2とを被演算子として巡回群G2で定義された演算を行うことを意味する。一方、χ∈Fq及びΩ∈GTに対するΩχ∈GTは、例えば、Ω∈GTに対して巡回群GTで定義された演算をχ回施すことを意味し、Ω12∈GTに対するΩ1・Ω2∈GTは、Ω1∈GTとΩ2∈GTとを被演算子として巡回群GTで定義された演算を行うことを意味する。
 Ψ:Ψは1以上の整数を表す。
 ψ:ψは0以上Ψ以下の整数ψ=0,...,Ψを表す。
 λ:λは1以上Ψ以下の整数λ=1,...,Ψを表す。
 n(ψ):n(ψ)は予め定められた1以上の整数を表す。
 ζ(ψ):ζ(ψ)は予め定められた0以上の整数を表す。
 G1 n(ψ)+ζ(ψ):G1 n(ψ)+ζ(ψ)はn(ψ)+ζ(ψ)個の巡回群G1の直積を表す。
 G2 n(ψ)+ζ(ψ):G2 n(ψ)+ζ(ψ)はn(ψ)+ζ(ψ)個の巡回群G2の直積を表す。
 g1, g2,gT:g1, g2, gTはそれぞれ巡回群G, G1, G2, GTの生成元を表す。
 V(ψ):V(ψ)はn(ψ)+ζ(ψ)個の巡回群G1の直積からなるn(ψ)+ζ(ψ)次元のベクトル空間を表す。
 V*(ψ):V*(ψ)はn(ψ)+ζ(ψ)個の巡回群G2の直積からなるn(ψ)+ζ(ψ)次元のベクトル空間を表す。
 eψ:eψは直積G1 n(ψ)+ζ(ψ)と直積G2 n(ψ)+ζ(ψ)との直積G1 n(ψ)+ζ(ψ)×G2 n(ψ)+ζ(ψ)を巡回群GTに写す非退化な双線形写像(bilinear map)を表す。双線形写像eψは、巡回群G1のn(ψ)+ζ(ψ)個の元γβ(β=1,...,n(ψ)+ζ(ψ))と巡回群G2のn(ψ)+ζ(ψ)個の元γβ *(β=1,...,n(ψ)+ζ(ψ))とを入力とし、巡回群GTの1個の元を出力する。
   eψ:G1 n(ψ)+ζ(ψ)×G2 n(ψ)+ζ(ψ)→GT     …(1)
 双線形写像eψは以下の性質を満たす。
 [双線形性]双線形写像eψは、すべてのΓ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ)及びν,κ∈Fqについて以下の関係を満たす。
   eψ(ν・Γ1,κ・Γ2)=eψ12)ν・κ     …(2)
 [非退化性]双線形写像eψは、すべてのΓ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ)を巡回群GTの単位元に写す写像ではない。
 [計算可能性]あらゆる
   Γ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ)     …(3)
についてeψ12)を効率的に計算するアルゴリズムが存在する。
 本形態では、以下のような、巡回群G1と巡回群G2との直積G1×G2を巡回群GTに写す非退化な双線形写像を用いて双線形写像eψを構成する。
   Pair:G1×G2→GT     …(4)
本形態の双線形写像eψは、巡回群G1のn(ψ)+ζ(ψ)個の元γβ (β=1,...,n(ψ)+ζ(ψ))からなるn(ψ)+ζ(ψ)次元ベクトル(γ1,...,γn(ψ)+ζ(ψ))と、巡回群G2のn(ψ)+ζ(ψ)個の元γβ *(β=1,...,n(ψ)+ζ(ψ))からなるn(ψ)+ζ(ψ)次元ベクトル(γ1 *,...,γn(ψ)+ζ(ψ) *)との入力に対し、巡回群GTの1個の元を出力する。
   eψ:Πβ=1 n(ψ)+ζ(ψ)Pair(γβ, γβ *)     …(5)
 双線形写像Pairは、巡回群G1の1個の元と巡回群G2の1個の元との組を入力とし、巡回群GTの1個の元を出力する。双線形写像Pairは、以下の性質を満たす。
 [双線形性]双線形写像Pairは、すべてのΩ1∈G1,Ω2∈G2及びν,κ∈Fqについて以下の関係を満たす。
   Pair(ν・Ω1,κ・Ω2)=Pair(Ω12)ν・κ     …(6)
 [非退化性]双線形写像Pairは、すべての
   Ω1∈G1,Ω2∈G2     …(7)
を巡回群GTの単位元に写す写像ではない。
 [計算可能性]あらゆるΩ1∈G1,Ω2∈G2についてPair(Ω12)を効率的に計算するアルゴリズムが存在する。
 双線形写像Pairの具体例は、WeilペアリングやTateペアリングなどのペアリング演算を行うための関数である(例えば、参考文献4「Alfred. J. Menezes,ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp. 61-81」等参照)。楕円曲線Eの種類に応じ、Tateペアリングなどのペアリング演算を行うための関数と所定の関数phiを組み合わせた変更ペアリング関数e(Ω1,phi(Ω2))(Ω1∈G1,Ω2∈G2)を双線形写像Pairとして用いてもよい(例えば、参考文献2等参照)。ペアリング演算をコンピュータ上で行うためのアルゴリズムとしては、周知のMiller のアルゴリズム(参考文献5「V. S. Miller, “Short Programs for functions on Curves,”1986,インターネット<http://crypto.stanford.edu/miller/miller.pdf>」などが存在する。ペアリング演算を効率的に行うための楕円曲線や巡回群の構成方法はよく知られている(例えば、参考文献2、参考文献6「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001」、参考文献7「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN '2002, LNCS 2576, pp.257-267, Springer-Verlag. 2003」、参考文献8「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」等参照)。
 ai(ψ)(i=1,...,n(ψ)+ζ(ψ)):ai(ψ)は巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。基底ベクトルai(ψ)の一例は、κ1・g1∈G1をi次元目の要素とし、残りのn(ψ)+ζ(ψ)-1個の要素を巡回群G1の単位元(加法的に「0」と表現)とするn(ψ)+ζ(ψ)次元の基底ベクトルである。この場合、n(ψ)+ζ(ψ)次元の基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))の各要素をそれぞれ列挙して表現すると、以下のようになる。
   a1(ψ)=(κ1・g1,0,0,...,0)
   a2(ψ)=(0,κ1・g1,0,...,0)     …(8)
        ...
   an(ψ)+ζ(ψ)(ψ)=(0,0,0,...,κ1・g1)
 ここで、κ1は加法単位元0F以外の有限体Fqの元からなる定数であり、κ1∈Fqの具体例はκ1=1Fである。基底ベクトルai(ψ)は直交基底であり、巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルai(ψ)は前述のベクトル空間V(ψ)を張る。
 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ)):ai *(ψ)は巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。基底ベクトルai *(ψ)の一例は、κ2・g2∈G2をi次元目の要素とし、残りのn(ψ)+ζ(ψ)-1個の要素を巡回群G2の単位元(加法的に「0」と表現)とするn(ψ)+ζ(ψ)次元の基底ベクトルである。この場合、基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))の各要素をそれぞれ列挙して表現すると、以下のようになる。
   a1 *(ψ)=(κ2・g2,0,0,...,0)
   a2 *(ψ)=(0,κ2・g2,0,...,0)     …(9)
        ...
   an(ψ)+ζ(ψ) *(ψ)=(0,0,0,...,κ2・g2)
 ここで、κ2は加法単位元0F以外の有限体Fqの元からなる定数であり、κ2∈Fqの具体例はκ2=1Fである。基底ベクトルai *(ψ)は直交基底であり、巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルai *(ψ)は前述のベクトル空間V*(ψ)を張る。
 なお、基底ベクトルai(ψ)と基底ベクトルai *(ψ)とは、0Fを除く有限体Fqの元τ=κ1・κ2について
   eψ(ai(ψ), aj *(ψ))=gT τ・δ(i,j)      …(10)
を満たす。すなわち、i=jの場合には、式(5)(6)の関係より、以下の関係が満たされる。
  eψ(ai(ψ), aj *(ψ))
       = Pair(κ1・g12・g2)・Pair(0, 0)・...・Pair(0, 0)
       = Pair(g1, g2)κ1・κ2・Pair(g1, g2)0・0・...・Pair(g1, g2)0・0
       = Pair(g1, g2)κ1・κ2=gT τ
上付き添え字κ1,κ2はそれぞれκ1,κ2を表す。一方、i≠jの場合には、eψ(ai(ψ), aj *(ψ))=Πi=1 n(ψ)+ζ(ψ) Pair(ai(ψ), aj *(ψ))の右辺は、Pair(κ1・g12・g2)を含まず、Pair(κ1・g1,0)と Pair(0,κ2・g2)とPair(0,0)との積になる。さらに、式(6)の関係からPair(g1, 0)=Pair(0, g2)=Pair(g1, g2)0を満たす。そのため、i≠jの場合には、以下の関係が満たされる。
   eψ(ai(ψ), aj *(ψ))=eψ(g1, g2)0=gT 0
 特に、τ=κ1・κ2=1Fである場合(例えば、κ12=1Fの場合)、以下の関係が満たされる。
   e(ai(ψ), aj *(ψ))=gT δ(i,j)      …(11)
gT 0=1は巡回群GTの単位元であり、gT 1=gTは巡回群GTの生成元である。基底ベクトルai(ψ)と基底ベクトルai *(ψ)とは双対正規直交基底であり、ベクトル空間V(ψ)とベクトル空間V*(ψ)とは、双線形写像を構成可能な双対ベクトル空間〔双対ペアリングベクトル空間(DPVS:Dual Paring Vector space)〕である。
 A(ψ):A(ψ)は、基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。例えば、基底ベクトルai(ψ)(i=1,...,n(ψ)+ζ(ψ))が式(8)によって表現される場合、行列A(ψ)は以下のようになる。
Figure JPOXMLDOC01-appb-M000004
 A*(ψ):A*(ψ)は、基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。例えば、基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))が式(9)によって表現される場合、行列A*(ψ)は以下のようになる。
Figure JPOXMLDOC01-appb-M000005
 X(ψ):X(ψ)は有限体Fqの元を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。行列X(ψ)は基底ベクトルai(ψ)の座標変換に用いられる。行列X(ψ)のi行j列(i=1,...,n(ψ)+ζ(ψ),j=1,...,n(ψ)+ζ(ψ))の要素をχi,j(ψ)∈Fqとすると、行列X(ψ)は以下のようになる。
Figure JPOXMLDOC01-appb-M000006
なお、行列X(ψ)の各要素χi,j(ψ)を変換係数と呼ぶ。
 X *(ψ):行列X*(ψ)と行列X(ψ)とはX*(ψ)=τ'・(X(ψ)-1)Tの関係を満たす。ただし、τ'∈Fqは有限体Fqに属する任意の定数であり、例えば、τ'=1Fである。X*(ψ)は基底ベクトルai *(ψ)の座標変換に用いられる。行列X*(ψ)のi行j列の要素をχi,j *(ψ)∈Fqとすると、行列X*(ψ)は以下のようになる。
Figure JPOXMLDOC01-appb-M000007
なお、行列X*(ψ)の各要素χi,j *(ψ)を変換係数と呼ぶ。
 この場合、n(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の単位行列をI(ψ)とするとX(ψ)・(X*(ψ))T=τ'・I(ψ)を満たす。すなわち、単位行列を以下のように定義する。
Figure JPOXMLDOC01-appb-M000008
これについて以下が満たされる。
Figure JPOXMLDOC01-appb-M000009
 ここで、以下のようなn(ψ)+ζ(ψ)次元ベクトルを定義する。
   χi (ψ)=(χi,1(ψ),...,χi,n(ψ)+ζ(ψ)(ψ))     …(18)
   χj →*(ψ)=(χj,1 *(ψ),...,χj,n(ψ)+ζ(ψ) *(ψ))    …(19)
すると、式(17)の関係から、n(ψ)+ζ(ψ)次元ベクトルχi (ψ)とχj →*(ψ)との内積は、以下のようになる。
   χi (ψ)・χj →*(ψ)=τ'・δ(i,j)     …(20)
 bi(ψ):bi(ψ)は巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。bi(ψ)は行列X(ψ)を用いて基底ベクトルai(ψ) (i=1,...,n(ψ)+ζ(ψ))を座標変換することで得られる。具体的には、基底ベクトルbi(ψ)は、以下の演算によって得られる。
  bi(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j(ψ)・aj(ψ)     …(21)
例えば、基底ベクトルaj(ψ)(j=1,...,n(ψ)+ζ(ψ))が式(8)によって表現される場合、基底ベクトルbi(ψ)の各要素をそれぞれ列挙して表現すると、以下のようになる。
   bi(ψ)=(χi,1(ψ)・κ1・g1i,2(ψ)・κ1・g1,
            ...,χi,n(ψ)+ζ(ψ)(ψ)・κ1・g1)   …(22)
 巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ)は前述のベクトル空間V(ψ)を張る。
 bi *(ψ):bi *(ψ)は巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルを表す。bi *(ψ)は行列X*(ψ)を用いて基底ベクトルai *(ψ)(i=1,...,n(ψ)+ζ(ψ))を座標変換することで得られる。具体的には、基底ベクトルbi *(ψ)は、以下の演算によって得られる。
   bi *(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j *(ψ)・aj *(ψ)     …(23)
例えば、基底ベクトルaj *(ψ) (j=1,...,n(ψ)+ζ(ψ))が式(9)によって表現される場合、基底ベクトルbi *(ψ)の各要素をそれぞれ列挙して表現すると、以下のようになる。
   bi *(ψ)=(χi,1 *(ψ)・κ2・g2 ,χi,2 *(ψ)・κ2・g2,
           ...,χi,n(ψ)+ζ(ψ) *(ψ)・κ2・g2)  …(24)
 巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルbi *(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルbi *(ψ)は前述のベクトル空間V*(ψ)を張る。
 なお、基底ベクトルbi(ψ)と基底ベクトルbi *(ψ)とは、0Fを除く有限体Fqの元τ=κ1・κ2について以下の関係を満たす。
   eψ(bi(ψ), bj *(ψ))=gT τ・τ'・δ(i,j)     …(25)
 すなわち、式(5)(20)(22)(24)の関係から、以下の関係が満たされる。
Figure JPOXMLDOC01-appb-M000010
 特にτ=κ1・κ2=1F(例えば、κ12=1F)及びτ'=1Fである場合、以下の関係が満たされる。
   eψ(bi(ψ), bj *(ψ))=gT δ(i,j)     …(26)
 基底ベクトルbi(ψ)と基底ベクトルbi *(ψ)とは、双対ペアリングベクトル空間(ベクトル空間V(ψ)とベクトル空間V*(ψ))の双対正規直交基底である。
 なお、式(25)の関係を満たすのであれば、式(8)(9)で例示したもの以外の基底ベクトルai(ψ)及びai *(ψ)や、式(21)(23)で例示したもの以外の基底ベクトルbi(ψ)及びbi *(ψ)を用いてもよい。
 B(ψ):B(ψ)は基底ベクトルbi(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列である。B(ψ)=X(ψ)・A(ψ)を満たす。例えば、基底ベクトルbi(ψ)が式(22)によって表現される場合、行列B(ψ)は以下のようになる。
Figure JPOXMLDOC01-appb-M000011
 B*(ψ):B*(ψ)は基底ベクトルbi *(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列を表す。B*(ψ)=X*(ψ)・A*(ψ)を満たす。例えば、基底ベクトルbi *(ψ) (i=1,...,n(ψ)+ζ(ψ))が式(24)によって表現される場合、行列B*(ψ)は以下のようになる。
Figure JPOXMLDOC01-appb-M000012
 v(λ):v(λ)は有限体Fqの元を要素とするn(λ)次元ベクトルを表す。
   v(λ)=(v1(λ),...,vn(λ)(λ))∈Fq n(λ)     …(29)
 vμ(λ):vμ(λ)はn(λ)次元ベクトルv(λ)のμ(μ=1,...,n(λ))番目の要素を表す。
 w(λ):w(λ)は有限体Fqの元を要素とするn(λ)次元ベクトルを表す。
   w(λ)=(w1(λ),...,wn(λ)(λ))∈Fq n(λ)     …(30)
 wμ(λ):wμ(λ)はn(λ)次元ベクトルw(λ)のμ(μ=1,...,n(λ))番目の要素を表す。
 Enc:Encは共通鍵暗号方式の暗号化処理を示す共通鍵暗号関数を表す。
 EncK(M):EncK(M)は、共通鍵Kを用い、共通鍵暗号関数Encに従って平文Mを暗号化して得られた暗号文を表す。
 Dec:Decは、共通鍵暗号方式の復号処理を示す共通鍵復号関数を表す。
 DecK(C):DecK(C)は、共通鍵Kを用い、共通鍵復号関数Decに従って暗号文Cを復号して得られた復号結果を表す。
 衝突困難な関数:「衝突困難な関数」とは、十分大きなセキュリティパラメータsecに対して以下の条件を満たす関数h、又は、関数hとみなせる関数を表す。
     Pr[A(h)=(x,y)|h(x)=h(y)∧x≠y]<ε(sec)
 ただし、Pr[・]は事象[・]の確率であり、A(h)は関数hに対してh(x)=h(y)を満たす値x,y(x≠y)を算出する確率的多項式時間アルゴリズムであり、ε(sec)はセキュリティパラメータsecについての多項式である。衝突困難な関数の例は、参考文献1に開示された「cryptographic hash function」などのハッシュ関数である。
 ランダム関数:「ランダム関数」とは、集合Φζの部分集合φζに属する関数、又は、当該部分集合φζに属する関数とみなせる関数を表す。ただし、集合Φζは集合{0,1}ζの元を集合{0,1}ζの元へ写すすべての関数の集合である。任意の確率的多項式時間アルゴリズムは、集合Φζと部分集合φζとを区別できない。ランダム関数の例は、上述のようなハッシュ関数である。
 単射関数:「単射関数」とは、その定義域に属する互いに異なる元の像をその値域に属する同一の元に写像することがない関数、又は、その定義域に属する互いに異なる元の像をその値域に属する同一の元に写像することがない関数とみなせる関数を表す。すなわち「単射関数」は、その定義域に属する元をその値域に属する何れかの元に一対一で写像する関数、又は、その定義域に属する元をその値域に属する何れかの元に一対一で写像する関数みなせる関数である。単射関数の例は、参考文献1に開示された「KDF(Key Derivation Function)」などのハッシュ関数である。
 HS(S=1,...,Smax):HSは2個の値を入力として1個の有限体Fqの元を出力する衝突困難な関数を表す。Smaxは正の整数定数である。関数HSの例は1個の巡回群GTの元と1個のバイナリ系列とを入力として1個の有限体Fqの元を出力する衝突困難な関数や、2個のバイナリ系列を入力として1個の有限体Fqの元を出力する衝突困難な関数などである。関数HSの具体例は、入力された2個の値を1つのバイナリ系列に写す単射関数と、参考文献1に開示された「cryptographic hash function」などのハッシュ関数と、「バイナリ系列を有限体の元へ写す変換関数(例えば参考文献1の「Octet string and integer/finite field conversion」参照)を含む関数である。入力された2個の値を1つのバイナリ系列に写す単射関数の具体例は、入力された1個の巡回群GTの元をバイナリ系列に写像してそのバイナリ系列と入力された1個のバイナリ系列との排他的論理和を出力する関数、又は、入力された2つのバイナリ系列の排他的論理和を出力する関数などである。安全性の観点から、関数HSは一方向性関数であることが望ましく、ランダム関数であることがより望ましい。関数HSの一部のみが一方向性関数やランダム関数であってもよいが、安全性の観点から、すべての関数HSは一方向性関数であることが望ましく、ランダム関数であることがより望ましい。安全性の観点から、関数HS(S=1,...,Smax)は互いに異なる関数であることが望ましい。
 R:Rは1個の値を入力として1個のバイナリ系列を出力する単射関数を表す。単射関数Rの例は1個の巡回群GTの元を入力として1個のバイナリ系列を出力する関数や、1個のバイナリ系列を入力として1個のバイナリ系列を出力する関数などである。単射関数Rの具体例は、入力された1個の値を1つのバイナリ系列に写す単射関数と参考文献1に開示された「cryptographic hash function」などのハッシュ関数とを含む関数、又は、参考文献1に開示された「cryptographic hash function」などのハッシュ関数である。単射関数Rは、一方向性関数であることが望ましく、ランダム関数であることがより望ましい。安全性の観点から、単射関数Rは一方向性関数であることが望ましく、ランダム関数であることがより望ましい。
 〔関数暗号方式〕
 次に、関数暗号方式の基本的な構成について説明する。
 関数暗号方式とは、第1情報と第2情報との組み合わせによって定まる論理式の真理値が「真」となる場合に暗号文が復号される方式である。「第1情報」と「第2情報」の一方が暗号文に埋め込まれ、他方が鍵情報に埋め込まれる。例えば、「"Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products," with Amit Sahai and Brent Waters One of 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology」(参考文献9)に開示された述語暗号方式は関数暗号方式の一種である。
 これ以外にも様々な公知の関数暗号方式が存在するが、以下では未公開の新たな関数暗号方式を説明する。以下に説明する新たな関数暗号方式では秘密情報に応じた値が所定の論理式に応じた態様で階層的に秘密分散される。所定の論理式は、第1情報と第2情報との組み合わせによって真理値が定まる命題変数を含み、必要に応じてさらに論理記号∧,∨,¬の何れか又はすべてを含む。各命題変数の真理値が特定されることで定まる当該所定の論理式の真理値が「真」となる場合に秘密情報に応じた値が復元され、それに基づいて暗号文が復号される。
 <論理式と階層的な秘密分散との関係>
 上述した所定の論理式と階層的な秘密分散との関係を説明する。
 秘密分散とは、しきい値Kt(Kt≧1)個以上のシェア情報が得られた場合にのみ秘密情報が復元されるように、秘密情報をN(N≧2)個のシェア情報に分散することである。Kt=Nを満たす秘密分散の方式(SSS: Secret Sharing Scheme)をN-out-of-N分散方式(或いは「N-out-of-Nしきい値分散方式」)といい、Kt<Nを満たす秘密分散の方式をKt-out-of-N分散方式(或いは「Kt-out-of-Nしきい値分散方式」)という(例えば、参考文献10「黒沢馨、尾形わかは、“現代暗号の基礎数理 (電子情報通信レクチャーシリーズ)”、コロナ社 、2004年3月、p.116-119」、参考文献11「A. Shamir, "How to Share a Secret", Communications of the ACM, November 1979, Volume 22, Number 11, pp.612-613.」等参照)。
 N-out-of-N分散方式では、すべてのシェア情報share(1),...,share(N)が与えられれば秘密情報SEを復元できるが、任意のN-1個のシェア情報share(φ1),...,share(φN-1)が与えられても秘密情報SEの情報はまったく得られない。以下に、N-out-of-N分散方式の一例を示す。
 ・SH1,...,SHN-1をランダムに選択する。
 ・SHN=SE-(SH1+...+SHN-1)の計算を行う。
 ・SH1,...,SHNを各シェア情報share(1),...,share(N)とする。
 ・すべてのシェア情報share(1),...,share(N)が与えられれば、以下の復元処理によって秘密情報SEの復元が可能である。
   SE=share(1)+...+share(N)     …(31)
 Kt-out-of-N分散方式では、任意の相違なるKt個のシェア情報share(φ1),...,share(φKt)が与えられれば秘密情報SEを復元できるが、任意のKt-1個のシェア情報share(φ1),...,share(φKt-1)が与えられても秘密情報SEの情報はまったく得られない。添え字のKtはKtを表す。以下にKt-out-of-N分散方式の一例を示す。
 ・f(0)=SEを満たすKt-1次の多項式f(x)=ξ01・x+ξ2・x2+...+ξKt-1・xKt-1をランダムに選ぶ。すなわち、ξ0=SEとし、ξ1,...,ξKt-1をランダムに選ぶ。シェア情報をshare(ρ)=(ρ, f(ρ))(ρ=1,...,N)とする。(ρ, f(ρ))からのρ及びf(ρ)の抽出が可能であり、(ρ, f(ρ))の例はρとf(ρ)とのビット結合値である。
 ・任意の相違なるKt個のシェア情報share(φ1),...,share(φKt)((φ1,...,φKt)⊂(1,...,N))が得られた場合、例えば、ラグランジェ(Lagrange)の補間公式を用い、以下のような復元処理によって秘密情報SEの復元が可能である。
   SE=f(0)=LA1・f(φ1)+...+ LAKt・f(φKt)  …(32)
Figure JPOXMLDOC01-appb-M000013
は先頭からρ番目の被演算子〔分母の要素(φρρ)、分子の要素(x-φρ)〕が存在しないことを意味する。すなわち、式(33)の分母は、以下のように表される。
   (φρ1)・...・(φρρ-1)・(φρρ+1)・...・(φρKt)
 式(33)の分子は、以下のように表される。
   (x-φ1)・...・(x-φρ-1)・(x-φρ+1)・...・(x-φKt)
 上述した各秘密分散は体上でも実行可能である。また、これらを拡張して秘密情報SEに応じた値をシェア情報shareに応じた値に秘密分散することもできる。秘密情報SEに応じた値とは秘密情報SEそのものや秘密情報SEの関数値であり、シェア情報shareに応じた値とはシェア情報shareそのものやシェア情報の関数値である。例えば、有限体Fqの元である秘密情報SE∈Fqに応じた巡回群GTの元gT SE∈GTを秘密情報SEの各シェア情報share(1),share(2)に応じた巡回群GTの元gT share(1),gT share(2)∈GTに秘密分散することもできる。上述した秘密情報SEはシェア情報shareの線形結合となる(式(31)(32))。秘密情報SEがシェア情報shareの線形結合となる秘密分散方式を線形秘密分散方式と呼ぶ。
 上述した所定の論理式は、秘密情報を階層的に秘密分散して得られる木構造データによって表現できる。すなわち、ド・モルガンの法則により、上述した所定の論理式はリテラルからなる論理式、又は、論理記号∧,∨の少なくとも一部とリテラルとからなる論理式(これらを「標準形論理式」と呼ぶことにする)によって表現でき、この標準形論理式は秘密情報を階層的に秘密分散して得られる木構造データによって表現できる。
 標準形論理式を表現する木構造データは複数のノードを含み、少なくとも一部のノードは1個以上の子ノードの親ノードとされ、親ノードの1つはルートノードとされ、子ノードの少なくとも一部は葉ノードとされる。ルートノードの親ノードや、葉ノードの子ノードは存在しない。ルートノードには秘密情報に応じた値が対応し、各親ノードの子ノードには当該親ノードに対応する値を秘密分散して得られたシェア情報に応じた値が対応する。各ノードでの秘密分散形態(秘密分散方式やしきい値)は標準形論理式に応じて定まる。また、各葉ノードには標準形論理式を構成する各リテラルが対応し、当該各リテラルの真理値は第1情報と第2情報との組み合わせによって定まる。
 ここで、真理値が真となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られるが、真理値が偽となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られないものとする。また、上述した秘密分散の性質により、親ノードに対応するシェア情報に応じた値(その親ノードがルートノードであれば秘密情報に応じた値)は、その子ノードに対応するシェア情報に応じた値が当該親ノードに対応するしきい値以上の個数だけ得られた場合にのみ復元される。そのため、どの葉ノードに対応するリテラルの真理値が真になったのかと木構造データの構成(各ノードでの秘密分散の形態を含む)とに応じ、最終的にルートノードに対応する秘密情報に応じた値が復元できるか否かが定まる。各葉ノードに対応する各リテラルの真理値が標準形論理式の真理値を真にする場合にのみ最終的にルートノードに対応する秘密情報に応じた値が復元できるように木構造データが構成されている場合、このような木構造データは標準形論理式を表現する。このような標準形論理式を表現する木構造データは容易に設定できる。以下に具体例を示す。
 図1は、命題変数PRO(1),PRO(2)と命題変数PRO(3)の否定¬PRO(3)と論理記号∧,∨とを含む標準形論理式PRO(1)∧PRO(2)∨¬PRO(3)を表現する木構造データを例示する図である。図1に例示する木構造データは複数のノードN1,...,N5を含む。ノードN1はノードN2,N5の親ノードとされ、ノードN2はノードN3,N4の親ノードとされ、親ノードの1つノードN1がルートノードとされ、子ノードの一部であるノードN3,N4,N5が葉ノードとされる。ノードN1には秘密情報SEに応じた値が対応し、ノードN1の子ノードN2,N5には、秘密情報SEに応じた値が1-out-of-2分散方式で秘密分散された各シェア情報SE,SEに応じた値がそれぞれ対応する。ノードN2の子ノードN3,N4には、シェア情報SEに応じた値が2-out-of-2分散方式で秘密分散された各シェア情報SE-SH1,SH1に応じた値がそれぞれ対応する。すなわち、葉ノードN3にはシェア情報share(1)=SE-SH1に応じた値が対応し、葉ノードN4にはシェア情報share(2)=SH1に応じた値が対応し、葉ノードN5にはシェア情報share(3)=SEに応じた値が対応する。葉ノードN3,N4,N5には標準形論理式PRO(1)∧PRO(2)∨¬PRO(3)を構成する各リテラルPRO(1),PRO(2),¬PRO(3)がそれぞれ対応し、当該各リテラルPRO(1),PRO(2),¬PRO(3)の真理値は第1情報と第2情報との組み合わせによって定まる。ここで、真理値が真となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られるが、真理値が偽となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られない。この場合、第1情報と第2情報との組み合わせが標準形論理式PRO(1)∧PRO(2)∨¬PRO(3)の真理値を真にする場合にのみ秘密情報SEに応じた値が復元される。
 図2は、命題変数PRO(1),PRO(2),PRO(3),PRO(6),PRO(7)と命題変数PRO(4),PRO(5)の否定¬PRO(4),¬PRO(5)と論理記号∧,∨とを含む標準形論理式(PRO(1)∧PRO(2))∨(PRO(2)∧PRO(3))∨(PRO(1)∧PRO(3))∨¬PRO(4)∨(¬PRO(5)∨PRO(6))∧PRO(7)を表現する木構造データを例示する図である。
 図2に例示する木構造データは複数のノードN1,...,N11を含む。ノードN1はノードN2,N6,N7の親ノードとされ、ノードN2はノードN3,N4,N5の親ノードとされ、ノードN7はノードN8,N11の親ノードとされ、ノードN8はノードN9,N10の親ノードとされ、親ノードの1つであるノードN1がルートノードとされ、ノードN3,N4,N5,N6,N9,N10,N11が葉ノードとされる。ノードN1には秘密情報SEに応じた値が対応し、ノードN1の子ノードN2,N6,N7には、秘密情報SEに応じた値が1-out-of-3分散方式で秘密分散された各シェア情報SE,SE,SEに応じた値がそれぞれ対応する。ノードN2の子ノードN3,N4,N5には、シェア情報SEに応じた値が2-out-of-3分散方式で秘密分散された各シェア情報(1,f(1)),(2,f(2)),(3,f(3))に応じた値がそれぞれ対応する。ノードN7の子ノードN8,N11には、シェア情報SEに応じた値が2-out-of-2分散方式で秘密分散して得られた各シェア情報SH4,SE-SH4に応じた値がそれぞれ対応する。ノードN8の子ノードN9,N10には、シェア情報SH4に応じた値が1-out-of-2分散方式で秘密分散して得られた各シェア情報SH4,SH4に応じた値がそれぞれ対応する。すなわち、葉ノードN3にはシェア情報share(1)=(1,f(1))に応じた値が対応し、葉ノードN4にはシェア情報share(2)=(2,f(2))に応じた値が対応し、葉ノードN5にはシェア情報share(3)=(3,f(3))に応じた値が対応し、葉ノードN6にはシェア情報share(4)=SEに応じた値が対応し、葉ノードN9にはシェア情報share(5)=SH4に応じた値が対応し、葉ノードN10にはシェア情報share(6)=SH4に応じた値が対応し、葉ノードN11にはシェア情報share(7)=SE-SH4に応じた値が対応する。また、葉ノードであるノードN3,N4,N5,N6,N9,N10,N11には標準形論理式(PRO(1)∧PRO(2))∨(PRO(2)∧PRO(3))∨(PRO(1)∧PRO(3))∨¬PRO(4)∨(¬PRO(5)∨PRO(6))∧PRO(7)を構成する各リテラルPRO(1),PRO(2),PRO(2),PRO(3),PRO(1),PRO(3),¬PRO(4),¬PRO(5),PRO(6),PRO(7)がそれぞれ対応し、各リテラルPRO(1),PRO(2),PRO(2),PRO(3),PRO(1),PRO(3),¬PRO(4),¬PRO(5),PRO(6),PRO(7)の真理値は第1情報と第2情報との組み合わせによって定まる。ここで、真理値が真となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られるが、真理値が偽となったリテラルに対応する葉ノードに対応するシェア情報に応じた値は得られない。この場合、第1情報と第2情報との組み合わせが標準形論理式(PRO(1)∧PRO(2))∨(PRO(2)∧PRO(3))∨(PRO(1)∧PRO(3))∨¬PRO(4)∨(¬PRO(5)∨PRO(6))∧PRO(7)の真理値を真にする場合にのみ秘密情報SEに応じた値が復元される。
 <アクセス構造>
 上述のように秘密情報を階層的に秘密分散して得られる木構造データによって所定の論理式を表現した場合、第1情報と第2情報との組み合わせに対して得られる葉ノードでのシェア情報に応じた値から秘密情報に応じた値を復元できるか否かによって、第1情報と第2情報との組み合わせによって定まる論理式の真理値が「真」となるか「偽」となるかを判定できる。以下、第1情報と第2情報との組み合わせによって定まる論理式の真理値が「真」となる場合に第1情報と第2情報との組み合わせを受け入れ、「偽」となる場合に第1情報と第2情報との組み合わせを拒絶する仕組みをアクセス構造と呼ぶ。
 上述のように所定の論理式を表現した木構造データの葉ノードの総数をΨとし、各葉ノードに対応する識別子をλ=1,...,Ψとする。各葉ノードに対応するn(λ)次元ベクトルv(λ)の集合{v(λ)}λ=1,...,Ψを第1情報とし、n(λ)次元ベクトルw(λ)の集合{w(λ)}λ=1,...,Ψを第2情報とする。また、上述した木構造データをラベル付き行列LMT(MT,LAB)として実装する。
 ラベル付き行列LMT(MT,LAB)は、以下のΨ行COL列(COL≧1)の行列MTと、行列MTの各行λ=1,...,Ψに対応付けられたラベルLAB(λ)とを含む。
Figure JPOXMLDOC01-appb-M000014
 行列MTの各要素mtλ,col(col=1,...,COL)は次の2つの要件を満たす。第1に、上述のように所定の論理式を表現した木構造データのルートノードに秘密情報SE∈Fqに応じた値が対応する場合、予め定められた有限体Fqの元を要素とするCOL次元ベクトルGVと秘密情報SEに応じた有限体Fqの元を要素とするCOL次元ベクトルCVとの間に以下の関係が成立する。
   GV=(gv1,...,gvCOL)∈Fq COL     …(35)
   CV=(cv1,...,cvCOL)∈Fq COL     …(36)
   SE=GV・(CV)T     …(37)
 以下にCOL次元ベクトルGVの具体例を示す。
   GV=(1F,...,1F)∈Fq COL     …(38)
ただし、GV=(1F,0F,...,0F)∈Fq COLなどのその他のCOL次元ベクトルがGVであってもよい。
 第2に、識別子λに対応する葉ノードにシェア情報share(λ)∈Fqに応じた値が対応する場合、以下の関係が成立する。
   (share(1),...,share(Ψ))T=MT・(CV)T   …(39)
 上述のように所定の論理式を表現した木構造データが定まれば、これら2つの要件を満たす行列MTを選択することは容易である。秘密情報SEやシェア情報share(λ)が変数であったとしても、これら2つの要件を満たす行列MTを選択することは容易である。すなわち、行列MTを定めた後で秘密情報SEやシェア情報share(λ)の値が定められてもよい。
 また、行列MTの各行λ=1,...,Ψに対応付けられたラベルLAB(λ)は、識別子λに対応する葉ノードに対応するリテラル(PRO(λ)又は¬PRO(λ))に対応する。ここで、命題変数PRO(λ)の真理値が「真」であることと第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}が含むv(λ)と第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}が含むw(λ)との内積v(λ)・w(λ)が0となることとが等価であると扱い、命題変数PRO(λ)の真理値が「偽」であることと内積v(λ)・w(λ)が0とならないこととが等価であると扱う。PRO(λ)に対応するラベルLAB(λ)がv(λ)を表し、¬PRO(λ)に対応するラベルLAB(λ)が¬v(λ)を表すものとする。なお、¬v(λ)はv(λ)の否定を表す論理式であり、¬v(λ)からv(λ)の特定が可能である。LAB(λ)がv(λ)を表すことを「LAB(λ)=v(λ)」と表記し、LAB(λ)が¬v(λ)を表すことを「LAB(λ)=¬v(λ)」と表記する。LAB(λ)(λ=1,...,Ψ)の集合{LAB(λ)}λ=1,...,ΨをLABと表記する。
 Ψ次元ベクトルTFVが以下のように定義される。
   TFV=(tfv(1),...,tfv(Ψ))     …(40)
 要素tfv(λ)は、内積v(λ)・w(λ)が0のときにtfv(λ)=1となり、0以外のときにtfv(λ)=0となる。
   tfv(λ)=1 (PRO(λ)が真)  if v(λ)・w(λ)=0  …(41)
   tfv(λ)=0 (PRO(λ)が偽)  if v(λ)・w(λ)≠0 …(42)
 さらに、以下の論理式の真理値が「真」になるときLIT(λ)=1と表記し「偽」になるときLIT(λ)=0と表記する。
 {(LAB(λ)=v(λ))∧(tfv(λ)=1)}∨{(LAB(λ)=¬v(λ))∧(tfv(λ)=0)}
                              …(43)
 すなわち、識別子λに対応する葉ノードに対応するリテラルの真理値が「真」になるときLIT(λ)=1と表記し「偽」になるときLIT(λ)=0と表記する。すると、行列MTが含む行ベクトルのうちLIT(λ)=1となる行ベクトルmtλ =(mtλ,1,...,mtλ,COL)のみからなる部分行列MTTFVは以下のように表記できる。
   MTTFV=(MT)LIT(λ)=1     …(44)
 上述した秘密分散方式が線形秘密分散方式である場合、識別子λに対応するシェア情報share(λ)に応じた値から秘密情報SEに応じた値が復元できることと、識別子λに対応する行ベクトルmtλ で張られるベクトル空間にCOL次元ベクトルGVが属することとは等価である。すなわち、識別子λに対応する行ベクトルmtλ で張られるベクトル空間にCOL次元ベクトルGVが属するか否かを判定することで、識別子λに対応するシェア情報share(λ)に応じた値から秘密情報SEに応じた値が復元できるか否かが判定できる。、行ベクトルmtλ で張られるベクトル空間とは、行ベクトルmtλ の線形結合で表すことができるベクトル空間を意味する。
 ここで、上述の部分行列MTTFVの各行ベクトルmtλ で張られるベクトル空間span<MTTFV>にCOL次元ベクトルGVが属する場合に第1情報と第2情報との組み合わせが受け入れられ、そうでない場合に第1情報と第2情報との組み合わせが拒絶されることにする。これにより、上述のアクセス構造が具体化される。なお、上述したようにラベル付き行列LMT(MT,LAB)が第1情報に対応する場合、アクセス構造が第1情報と第2情報との組み合わせを受け入れることを「アクセス構造が第2情報を受け入れる」といい、アクセス構造が第1情報と第2情報との組み合わせを受け入れないことを「アクセス構造が第2情報を拒絶する」という。
   受け入れ if GV∈span<MTTFV>
   拒絶   if ¬(GV∈span<MTTFV>)
 GV∈span<MTTFV>の場合、以下を満たす係数const(μ)が存在し、このような係数const(μ)は行列MTのサイズのオーダーの多項式時間で求めることができる。
   SE=Σμ∈SETconst(μ)・share(μ)     …(45)
   {const(μ)∈Fq|μ∈SET},SET⊆{1,...,λ|LIT(λ)=1}
 <アクセス構造を用いた関数暗号方式の基本方式>
 以下では、アクセス構造を用いた関数暗号方式によって鍵カプセル化メカニズムKEM (Key Encapsulation Mechanisms)を構成する場合の基本方式を例示する。この基本方式はSetup(1sec,(Ψ;n(1),...,n(Ψ))),GenKey(PK,MSK,LMT(MT,LAB)),Enc(PK,M,{λ,v(λ)|λ=1,...,Ψ})(v1(λ)=1F),Dec(PK,SKS,C)を含む。また、第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}の1番目の要素w1(λ)が1Fとされる。
 [Setup(1sec,(Ψ;n(1),...,n(Ψ))):セットアップ]
 -入力:1sec,(Ψ;n(1),...,n(Ψ))
 -出力:マスター鍵情報MSK,公開パラメータPK
 Setupでは各ψ=0,...,Ψについて以下の処理が実行される。
 (Setup-1) 1secを入力としてセキュリティパラメータsecでの位数q、楕円曲線E、巡回群G1, G2,GT、双線形写像eψ(ψ=0,...,Ψ)が生成される(param=(q, E, G1, G2,GT, eψ))。
 (Setup-2) τ'∈Fqが選択され、X*(ψ)=τ'・(X(ψ)-1)Tを満たす行列X(ψ),X*(ψ)が選択される。
 (Setup-3) 基底ベクトルai(ψ) (i=1,...,n(ψ)+ζ(ψ))が式(21)に従って座標変換され、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ) (i=1,...,n(ψ)+ζ(ψ))が生成される。基底ベクトルbi(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列B(ψ)が生成される。
 (Setup-4) 基底ベクトルai *(ψ) (i=1,...,n(ψ)+ζ(ψ))が式(23)に従って座標変換され、n(ψ)+ζ(ψ)次元の基底ベクトルbi *(ψ)(i=1,...,n(ψ)+ζ(ψ))が生成される。基底ベクトルbi *(ψ) (i=1,...,n(ψ)+ζ(ψ))を要素とするn(ψ)+ζ(ψ)行n(ψ)+ζ(ψ)列の行列B*(ψ)が生成される。
 (Setup-5) B*(ψ)^の集合{B*(ψ)^}ψ=0,...,Ψをマスター鍵情報MSK={B*(ψ)^}ψ=0,...,Ψとする。B(ψ)^の集合{B(ψ)^}ψ=0,...,Ψと1secとparamとを公開パラメータPKとする。ただし、B*(ψ)^は行列B*(ψ)又はその部分行列であり、B(ψ)^は行列B(ψ)又はその部分行列である。集合{B*(ψ)^}ψ=0,...,Ψは、少なくとも、b1 *(0),b1 *(λ) …,bn(λ) *(λ)(λ=1,...,Ψ)を含む。集合{B(ψ)^}ψ=0,...,Ψは、少なくとも、b1(0),b1(λ),…,bn(λ)(λ)(λ=1,...,Ψ)を含む。以下に一例を示す。
 ・n(0)+ζ(0)≧5, ζ(λ)=3・n(λ)
 ・B(0)^=(b1(0) b3(0) b5(0))T
 ・B(λ)^
  =(b1(λ) … bn(λ)(λ) b3・n(λ)+1(λ) … b4・n(λ)(λ))T(λ=1,...,Ψ)
 ・B*(0)^=(b1 *(0) b3 *(0) b4 *(0))T
 ・B*(λ)^
  =(b1 *(λ) … bn(λ) *(λ) b2・n(λ)+1 *(λ) … b3・n(λ) *(λ))T(λ=1,...,Ψ)
 [GenKey(PK,MSK,LMT(MT,LAB)):鍵情報生成]
 -入力:公開パラメータPK,マスター鍵情報MSK,第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}に対応するラベル付き行列LMT(MT,LAB)
 -出力:鍵情報SKS
 (GenKey-1) 式(35)-(39)を満たす秘密情報SEに対して以下の処理が実行される。
   D*(0)=-SE・b1 *(0)+Σι=2 Icoefι(0)・bι *(0)     …(46)
 ただし、Iは2以上n(0)+ζ(0)以下の定数である。coefι(0)∈Fqは定数又は乱数である。「乱数」とは真性乱数や擬似乱数を意味する。以下にD*(0)の一例を示す。なお、式(47)のcoef4(0)は乱数である。
   D*(0)=-SE・b1 *(0)+b3 *(0)+coef4(0)・b4 *(0)     …(47)
 (GenKey-2) 式(35)-(39)を満たすshare(λ)(λ=1,...,Ψ)に対して以下の処理が実行される。
 LAB(λ)=v(λ)となるλに対して、以下のD*(λ)が生成される。
   D*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)
       +Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)
       +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)     …(48)
 LAB(λ)=¬v(λ)となるλに対して、以下のD*(λ)が生成される。
   D*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)
       +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)     …(49)
ただしcoef(λ),coefι(λ)∈Fqは定数又は乱数である。以下に一例を示す。
 LAB(λ)=v(λ)となるλに対して、例えば以下のD*(λ)が生成される。
   D*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)
       +Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)
       +Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)     …(50)
 LAB(λ)=¬v(λ)となるλに対して、例えば以下のD*(λ)が生成される。
   D*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)
       +Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)     …(51)
なお、式(50)(51)のcoef(λ)及びcoefι(λ)は乱数である。
 (GenKey-3) 以下の鍵情報が生成される。
   SKS=(LMT(MT,LAB),D*(0),D*(1),...,D(Ψ))     …(52)
 [Enc(PK,M,VSET2):暗号化]
 -入力:公開パラメータPK,平文M,第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}(w1(λ)=1F)
 -出力:暗号文C
 (Enc-1) 以下の処理によって共通鍵Kの暗号文C(ψ)(ψ=0,...,Ψ)が生成される。
  C(0)=υ・b1(0)+Σι=2 Iυι(0)・bι(0)     …(53)
  C(λ)=υ・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)・bι(λ)
                             …(54)
 ただし、υ,υι(ψ)∈Fq(ψ=0,...,Ψ)は定数又は乱数であり、以下の関係が満たされる。
   (coef2(0),...,coefI(0))・(υ2(0),...,υI(0))=υ'   …(55)
   coefι(λ)・υι(λ)=0F (ι=n(λ)+1,...,n(λ)+ζ(λ)) …(56)
υ'の例はυ2(0),...,υI(0)の何れか1個である。例えば、υ,υ3(0),υ5(0),υ3・n(λ)+1(λ),...,υ4・n(λ)(λ)が乱数であり、ζ(λ)=3・n(λ)、I=5であり、以下の関係が満たされる。
   (υ2(0),...,υI(0))=(0F3(0),0F5(0))
   υ'=υ3(0)
   (υn(λ)+1(λ),...,υ3・n(λ)(λ))=(0F,...,0F)
 (Enc-2) 以下の共通鍵が生成される。
   K=gT τ・τ'・υ'∈GT     …(57)
例えば、τ=τ'=1Fの場合、以下の関係が満たされる。
   K=gT υ'∈GT     …(58)
 (Enc-3) 共通鍵Kを用いて平文Mの暗号文C(Ψ+1)が生成される。
   C(Ψ+1)=EncK(M)     …(59)
 共通鍵暗号方式Encは、例えば共通鍵Kを用いて暗号化可能に構成されたカメリア(Camellia)(登録商標)やAESや共通鍵と平文との排他的論理和などでよいが、その他の簡単な例として以下のようにEncK(M)を生成してもよい。ただし、式(60)の例ではM∈GTとされる。
   C(Ψ+1)=gT υ'・M     …(60)
 (Enc-4) 以下の暗号文が生成される。
   C=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈VSET2,C(Ψ+1))     …(61)
ただし、下付き添え字の「w(λ)→」は「w(λ)」を表す。
 [Dec(PK,SKS,C):復号]
 -入力:公開パラメータPK,鍵情報SKS,暗号文C
 -出力:平文M'
 (Dec-1) λ=1,...,Ψについて、鍵情報SKSが含むラベル付き行列LMT(MT,LAB)の各ラベルLAB(λ)であるn(λ)次元ベクトルv(λ)と暗号文CのVSET2が含むn(λ)次元ベクトルw(λ)との内積v(λ)・w(λ)が0となるか否かが判定され、これとLMT(MT,LAB)の各ラベルLAB(λ)とによってGV∈span<MTTFV>であるか否かが判定される(式(40)-(45))。GV∈span<MTTFV>でなければ暗号文Cが拒絶され、GV∈span<MTTFV>であれば暗号文Cが受け入れられる。
 (Dec-2) 暗号文Cが受け入れられると、SET⊆{1,...,λ|LIT(λ)=1}と式(45)を満たす係数const(μ)(μ∈SET)とが計算される。
 (Dec-3) 以下の共通鍵が生成される。
Figure JPOXMLDOC01-appb-M000015
 ここで、式(6)(25)(55)より、以下の関係が満たされる。
Figure JPOXMLDOC01-appb-M000016
 式(6)(25)(41)(48)(54)(56)及びw1(λ)=1Fより、以下の関係が満たされる。
Figure JPOXMLDOC01-appb-M000017
 式(6)(25)(42)(49)(54)(56)より、以下の関係が満たされる。
Figure JPOXMLDOC01-appb-M000018
 式(45)(63)-(65)より以下の関係が満たされる。
Figure JPOXMLDOC01-appb-M000019
 例えば、τ=τ'=1Fの場合、以下の関係が満たされる。
   K=gT υ'∈GT     …(67)
 (Dec-4) 共通鍵Kを用い、以下のように平文M'が生成される。
   M'=DecK(C(Ψ+1))=DecK(C(Ψ+1))     …(68)
 例えば、式(60)に例示した共通鍵暗号方式の場合、以下のように平文M'が生成される。
   M'=C(Ψ+1)/K     …(69)
 なお、gTをGTの生成元とする代わりにgT τやgT τ'やgT τ・τ'をGTの生成元と扱ってもよい。また、鍵情報SKSのλと暗号文のλとを対応関係を特定する写像を用いてC(λ)とD*(λ)との組み合わせを特定し、[Dec(PK,SKS,C):復号]の処理が実行されてもよい。第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}の1番目の要素w1(λ)が1Fとされるだけではなく、第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}のn(λ)番目の要素vn(λ)(λ)が1Fとされてもよい。要素w1(λ)が1Fでない場合にはw(λ)の代わりにw(λ)/w1(λ)を用いてもよく、要素vn(λ)(λ)が1Fでない場合にはv(λ)の代わりにv(λ)/vn(λ)(λ)を用いてもよい。第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}の代わりに第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}が用いられ、第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}の代わりに第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}が用いられてもよい。この場合には第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}の1番目の要素v1(λ)が1Fとされる。
 〔CCA安全性〕
 以下の[1]-[4]が実行された場合に式(70)の関係が満たされるとき、以下の暗号オラクル及び復号オラクルに対応する暗号方式はCCA安全である。
   Pr[bit=bit']<(1/2)-FNK(sec)     …(70)
ただしFNK(sec)はsecの関数であり、0<FNK(sec)≦1/2が満たされる。[2]の後に[3]が行われるのであれば「CCA2に対して安全である」といい、[3]の後に[2]が行われるのであれば「CCA1に対して安全である」という。「CCA2」は「CCA1」よりも強力な攻撃法である。
 [1]攻撃者に公開パラメータPKが与えられる。
 [2]攻撃者は、公開パラメータPKを持つ暗号オラクルに2つのビット列である平文M0,M1を渡し、暗号オラクルは、ランダムにbit∈{0,1}を選択し、一方の平文Mbitを暗号化し、その暗号文Cbitを攻撃者に渡す。
 [3]攻撃者は、鍵情報SKSを持つ復号オラクルに暗号文Cbit'(Cbit'≠Cbit)を渡し、復号オラクルから暗号文Cbit'の復号結果を受け取ることができる。
 [4]攻撃者は、bit'∈{0,1}を出力する。
 〔アクセス構造を用いた関数暗号方式の基本方式のCCA安全性〕
 上述したアクセス構造を用いた関数暗号方式の基本方式はCCA安全ではない。このことを簡単な例を示して説明する。この簡単な例では、平文Mがバイナリ系列である。平文Mに対する共通鍵Kを用いた共通鍵暗号方式の暗号文C(Ψ+1)=EncK(M)(式(59))が以下の式に従って生成される。
   C(Ψ+1)=MAP(K)(+)M    …(71)
共通鍵Kを用いた暗号文C(Ψ+1)の復号結果(式(68))が以下の式に従って生成される。
   M'=C(Ψ+1)(+)MAP(K)    …(72)
なお、MAP(K)はK∈GTのバイナリ系列への写像を表す。この場合、攻撃者は以下のような戦略(以下「想定戦略」と呼ぶ)をとることができる。
 [1]攻撃者に公開パラメータPKが与えられる。
 [2]攻撃者は、公開パラメータPKを持つ暗号オラクルに第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}と2つの平文M0, M1を渡す。暗号オラクルは、ランダムにbit∈{0,1}を選択し、一方の平文Mbitを共通鍵K(式(57))で暗号化して以下の暗号文Cbit(Ψ+1)
   Cbit(Ψ+1)=MAP(K)(+)Mbit    …(73)
を生成する。暗号オラクルはさらに暗号文C(0), C(λ)(λ=1,...,Ψ)(式(53)(54))を生成し、以下の暗号文を攻撃者に渡す。
   Cbit=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈VSET2,Cbit(Ψ+1)) …(74)
 [3]攻撃者は、鍵情報SKS(式(52))を持つ復号オラクルに以下の暗号文Cbit'を渡し、復号オラクルから暗号文Cbit'の復号結果を受け取る。
   Cbit'=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈VSET2,Cbit(Ψ+1)(+)ΔM) …(75)
ただしΔMは攻撃者に値が知られたバイナリ系列である。
 ここで、bit=0だったのであれば、Cbit(Ψ+1)=MAP(K)(+)M0であり、Cbit(Ψ+1)(+)ΔMの復号結果はM0(+)ΔMとなる。一方、bit=1だったのであれば、Cbit(Ψ+1)=MAP(K)(+)M1であり、Cbit(Ψ+1)(+)ΔMの復号結果はM0(+)ΔMとなる。
 [4]攻撃者は、Cbit'の復号結果がM0(+)ΔMのときにbit'=0を出力し、M1(+)ΔMのときにbit'=1を出力する。
 この場合Pr[bit=bit']=1となり、式(70)を満たさない。
 〔本形態のアクセス構造を用いた関数暗号方式〕
 上述のように、アクセス構造を用いた関数暗号方式の基本方式はCCA安全ではない。一方、アクセス構造を用いた関数暗号方式の基本方式にCCA安全性を持たせるためにCHK 変換方式やBK 変換方式を用いるのでは、CCA安全性を向上させるためのみに用いる2次元の暗号文空間がさらに必要となる。本形態では、CCA安全性を向上させるための追加の暗号文空間なしにCCA安全性が向上する。
 <関数暗号方式の改良方式>
 以下に、本形態の関数暗号方式の改良方式を概説する。
 [暗号化処理]
 暗号化処理を行う暗号化装置が以下の処理を実行する。
 (Enc-11) 乱数生成部が、乱数rを生成する。
 (Enc-12) 第1暗号化部が、乱数rに応じたバイナリ系列とバイナリ系列の平文Mとの排他的論理和値である暗号文C2を生成する。乱数rは秘密情報であり、乱数rを知らないものは暗号文C2から平文Mを復元できない。
 (Enc-13) 関数演算部が、乱数rと暗号文C2との組をSmax(Smax≧1)個の衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力し、Smax(Smax≧1)個の関数値HS(r,C2)(S=1,...,Smax)を生成する。
 (Enc-14) 共通鍵生成部が、巡回群GTの生成元gT及び定数τ,τ'に対し、以下の関係を満たす共通鍵Kを生成する。
   K=gT τ・τ'・υ'∈GT    …(76)
 (Enc-15) 第2暗号化部が、共通鍵Kを用いて共通鍵暗号方式によって乱数rを暗号化して暗号文C(Ψ+1)を生成する。
 (Enc-16) 第3暗号化部が、以下のC(0), C(λ)(λ=1,...,Ψ), C(Ψ+1)を含む暗号文C1を生成する。
  C(0)=υ・b1(0)+Σι=2 Iυι(0)・bι(0)   …(77)
  C(λ)
  =υ・Σι=1 n(λ)wι(λ)・bι(λ)
  +Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)・bι(λ)  …(78)
  C(Ψ+1)
 式(55)(56)の関係が満たされ、υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が関数値HS(r,C2)(S=1,...,Smax)の何れかに対応する。言い換えると、υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が関数値HS(r,C2)(S=1,...,Smax)の何れかに応じて定まる。例えば、υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部が関数値HS(r,C2)(S=1,...,Smax)の何れか又は関数値HS(r,C2)(S=1,...,Smax)の何れかの関数値である。関数値HS(r,C2)(S=1,...,Smax)に対応しないυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))は定数や乱数とされる。
 [復号処理]
 復号処理を行う復号装置が以下の処理を実行する。
 (DEC-11) 式(45)を満たす係数const(μ)が存在する場合、共通鍵生成部が以下の第1鍵情報D*(0),第2鍵情報D*(λ)(λ=1,...,Ψ)及び共通鍵K’を生成する。
 第1鍵情報は以下の式で表される。
   D*(0)=-SE・b1 *(0)+Σι=2 Icoefι(0)・bι *(0)    …(79)
 LAB(λ)=v(λ)を満たすλに対する第2鍵情報D*(λ)は、以下の式で表される。
   D*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)
      +Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)
      +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)   …(80)
 LAB(λ)=¬v(λ)を満たすλに対する第2鍵情報D*(λ)は、以下の式で表される。
   D*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)
      +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)      …(81)
 共通鍵生成部は、入力された暗号文C'(0)、C'(λ)(λ=1,...,Ψ)を用いて、以下の式に従って共通鍵K’を生成する。
Figure JPOXMLDOC01-appb-M000020
 (DEC-12) 第1復号部が、共通鍵K'を用い、入力された暗号文C'(Ψ+1)を復号して復号値r'を生成する。
 (DEC-13) 関数演算部が、復号値r'と入力された暗号文C2'との組をSmax(Smax≧1)個の衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力し、Smax(Smax≧1)個の関数値HS(r',C2')(S=1,...,Smax)を生成する。
 (DEC-14) 暗号文C'(0),C'(λ)と暗号文C''(0)=υ''・b1(0)+Σι=2 Iυι''(0)・bι(0),C''(λ)=υ''・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)・bι(λ)とが一致しない場合、判定部が復号を拒絶する。一方、暗号文C'(0),C'(λ)と暗号文C''(0),C''(λ)とが一致する場合、第2復号部が復号値r'に応じたバイナリ系列と入力されたバイナリ系列の暗号文C2'との排他的論理和である復号値M'を生成する。
 なお、υ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が関数値HS(r',C2')(S=1,...,Smax)の何れかに対応する。言い換えると、υ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が関数値HS(r',C2')(S=1,...,Smax)の何れかに応じて定まる。例えば、υ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部が関数値HS(r',C2')(S=1,...,Smax)の何れか又は関数値HS(r',C2')(S=1,...,Smax)の何れかの関数値である。また、関数値HS(r',C2')(S=1,...,Smax)に対応しないυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))は定数又は乱数とされる。
 <関数暗号方式の改良方式のCCA安全性>
 この改良方式に対し、上述の想定戦略が適用された場合を想定する。
 [1]攻撃者に公開パラメータPKが与えられる。
 [2]攻撃者は、公開パラメータPKを持つ暗号オラクルに第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}と2つの平文M0, M1を渡す。暗号オラクルは、ランダムにbit∈{0,1}を選択し、乱数rを生成し(Enc-11)、乱数rに応じたバイナリ系列とバイナリ系列の平文Mbitとの排他的論理和値である暗号文C2を生成し(Enc-12)、乱数rと暗号文C2との組をSmax(Smax≧1)個の衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力し、Smax(Smax≧1)個の関数値HS(r,C2)(S=1,...,Smax)を生成し(Enc-13)、K=gT τ・τ'・υ'∈GT(式(76))を満たす共通鍵Kを生成し(Enc-14)、共通鍵Kを用いて共通鍵暗号方式によって乱数rを暗号化して暗号文C(Ψ+1)を生成する。さらに、暗号オラクルは、C(0)=υ・b1(0)+Σι=2 Iυι(0)・bι(0)(式(77))、C(λ)=υ・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)・bι(λ)(式(78))及びC(Ψ+1)を含む暗号文C1を生成する(Enc-16)。ここで、υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部が関数値HS(r,C2)(S=1,...,Smax)の何れかに依存する。暗号オラクルは、生成した暗号文C1及びC2を含む暗号文Cbitを攻撃者に渡す。
 [3]攻撃者は、以下の暗号文を生成できる。
   C2'=C2(+)ΔM    …(83)
しかしながら、乱数rを知らない攻撃者は乱数rと暗号文C2'との組をSmax(Smax≧1)個の衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力し、関数値HS(r,C2')(S=1,...,Smax)を生成することができない。そのため、攻撃者は、暗号文C1と暗号文C2'とを含む暗号文Cbit'を、第1鍵情報D*(0)(式(79))及び第2鍵情報D*(λ)(式(80)(81))を持つ復号オラクルに渡す。
 暗号文Cbit'が入力された復号オラクルは、式(45)を満たす係数const(μ)が存在する場合に共通鍵K'(式(82))を生成し(DEC-11)、共通鍵K'を用いて暗号文C1が含む暗号文C'(Ψ+1)を復号して復号値r'を生成し(DEC-12)、復号値r'と入力された暗号文C2'との組をSmax(Smax≧1)個の衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力し、Smax(Smax≧1)個の関数値HS(r',C2')(S=1,...,Smax)を生成する(DEC-13)。関数HSの衝突困難性によって高い確率でHS(r',C2')≠HS(r,C2)となるため、暗号文C'(0),C'(λ)と暗号文C''(0)=υ''・b1(0)+Σι=2 Iυι''(0)・bι(0), C''(λ)=υ''・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)・bι(λ)とが一致しない確率が高く、復号は拒絶される。
 [4]攻撃者は、C2'=C2(+)ΔMの復号結果を取得できないため、「復号結果がM0(+)ΔMのときにbit'=0を出力し、M1(+)ΔMのときにbit'=1を出力する」ことができない。よって、この攻撃者の戦略は成功しない。
 〔実施形態〕
 次に、上記改良方式の実施形態を説明する。以下では、第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}が鍵情報に組み込まれ、第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}が暗号文に組み込まれる例を示す。しかしながら、第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}が鍵情報に組み込まれ、第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}が暗号文に組み込まれる構成でもかまわない。なお、本形態の例では、第1情報VSET1を構成するn(λ)次元ベクトルv(λ)が特定のポリシーに対応し、第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}を構成するn(λ)次元ベクトルw(λ)が属性に対応する。n(λ)次元ベクトルw(λ)に対応する属性がn(λ)次元ベクトルv(λ)に対応するポリシーに合致するときに内積v(λ)・w(λ)=0となり、n(λ)次元ベクトルw(λ)に対応する属性がn(λ)次元ベクトルv(λ)に対応するポリシーに合致しないときに内積v(λ)・w(λ)≠0となるように設定されている。
 [全体構成]
 図1に例示するように、本形態の暗号システム1は、暗号化装置110と復号装置120と鍵生成装置130とを有する。暗号化装置110と復号装置120、復号装置120と鍵生成装置130は、ネットワークや可搬型記録媒体などを介した情報伝達が可能とされている。
 [暗号化装置]
 図4に例示するように、本形態の暗号化装置110は、入力部111、出力部112、記憶部113、制御部114、乱数生成部115、暗号化部116a,116d,116e、関数演算部116b、共通鍵生成部116c及び結合部117を有する。
 暗号化装置110は、例えば、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read-Only Memory)等を備える公知又は専用のコンピュータと特別なプログラムを含む特別な装置である。乱数生成部115、暗号化部116a,116d,116e、関数演算部116b、共通鍵生成部116c及び結合部117は、例えば、CPUが特別なプログラムを実行することで構成される処理部である。また、乱数生成部115が公知の乱数生成用IC(integrated Circuit)とするなど、処理部の少なくとも一部が特別な集積回路で構成してもよい。また、記憶部113は、例えば、RAM、レジスタ、キャッシュメモリ、集積回路内の素子若しくはハードディスク等の補助記憶装置、又は、これらの少なくとも一部の結合からなる記憶領域である。入力部111は、例えば、キーボードなどの入力インタフェースや、モデム、LAN(Local Area Network)カード等の通信装置や、USB端子などの入力ポートなどである。出力部112は、例えば、出力インタフェースや、モデム、LANカード等の通信装置、USB端子などの出力ポートなどである。また、暗号化装置110は、制御部114の制御のもと各処理を実行する。
 [復号装置]
 図5に例示するように、本形態の復号装置120は、入力部121、出力部122、記憶部123、制御部124、共通鍵生成部126a、復号部126b,126e、関数演算部126c、判定部126d及び分離部127を有する。
 復号装置120は、例えば、CPU、RAM、ROM等を備える公知又は専用のコンピュータと特別なプログラムを含む特別な装置である。すなわち、制御部124、共通鍵生成部126a、復号部126b,126e、関数演算部126c、判定部126d及び分離部127は、例えば、CPUが特別なプログラムを実行することで構成される処理部である。また、処理部の少なくとも一部が特別な集積回路で構成されてもよい。また、記憶部123は、例えば、RAM、レジスタ、キャッシュメモリ、集積回路内の素子若しくはハードディスク等の補助記憶装置、又は、これらの少なくとも一部の結合からなる記憶領域である。また、入力部121は、例えば、入力インタフェースや通信装置や入力ポートなどである。出力部122は、例えば、出力インタフェースや通信装置や出力ポートなどである。また、復号装置120は、制御部124の制御のもと各処理を実行する。
 [鍵生成装置]
 図6に例示するように、本形態の鍵生成装置130は、入力部131、出力部132、記憶部133、制御部134、選択部135、シェア情報生成部136a、秘密情報生成部136b及び鍵生成部136c,136d,136eを有する。
 鍵生成装置130は、例えば、CPU、RAM、ROM等を備える公知又は専用のコンピュータと特別なプログラムを含む特別な装置である。すなわち、制御部134、選択部135、シェア情報生成部136a、秘密情報生成部136b及び鍵生成部136c,136d,136eは、例えば、CPUが特別なプログラムを実行することで構成される処理部である。また、処理部の少なくとも一部が特別な集積回路で構成されてもよい。また、記憶部133は、例えば、RAM、レジスタ、キャッシュメモリ、集積回路内の素子若しくはハードディスク等の補助記憶装置、又は、これらの少なくとも一部の結合からなる記憶領域である。また、入力部131は、例えば、入力インタフェースや通信装置や入力ポートなどである。出力部132は、例えば、出力インタフェースや通信装置や出力ポートなどである。また、鍵生成装置130は、制御部134の制御のもと各処理を実行する。
 [事前設定]
 次に、本形態の各処理を実行するための事前設定を説明する。
 図示していない管理装置によって前述のSetup(1sec,(Ψ;n(1),...,n(Ψ))):セットアップ]が実行され、集合{B(ψ)^}ψ=0,...,Ψと1secとparam=(q, E, G1, G2, GT, eψ)とからなる公開パラメータPKと、マスター鍵情報MSK={B*(ψ)^}ψ=0,...,Ψとが設定される。公開パラメータPKは、暗号化装置110、復号装置120及び鍵生成装置130で利用可能なようにこれらの装置に設定される。マスター鍵情報MSKは、鍵生成装置130で利用可能なように鍵生成装置130に設定される。マスター鍵情報MSKは秘密情報であり、公開されない。装置への公開パラメータPKなどの設定は、装置を構成する特別なプログラムに公開パラメータPKなどが組み込まれることで行われてもよいし、装置の記憶装置に格納されることで行われてもよい。本形態では、特別なプログラムに公開パラメータPKなどが組み込まれている例を示す。
 [鍵情報の生成処理]
 鍵情報の生成処理は、特に、復号装置120の記憶部123に鍵情報SKSが格納されていない場合に実行される。復号装置120の記憶部123に鍵情報SKSが格納されているときには、この処理が省略されてもよい。鍵情報の生成処理は暗号文の生成前に行われてもよいし、暗号文の生成後に行われてもよい。
 図7に例示するように、鍵情報の生成処理では、まず鍵生成装置130(図6)の入力部131に、生成する鍵情報に対応するラベル付き行列LMT(MT,LAB)が入力される。前述のように、ラベル付き行列LMT(MT,LAB)は、式(34)の行列MTと第1情報VSET1を構成するn(λ)次元ベクトルv(λ)に対応するラベルLAB(λ)(LAB(λ)=v(λ)又はLAB(λ)=¬v(λ))とが対応付けられた情報である。入力されたラベル付き行列LMT(MT,LAB)は記憶部133に格納される(ステップS11)。
 次に、選択部135が有限体Fqの元を要素とするCOL次元ベクトルCV∈Fq COL(式(36))を任意に選択し、COL次元ベクトルCVを記憶部133に格納する(ステップS12)。シェア情報生成部136aに行列MTとCOL次元ベクトルCVとが入力され、シェア情報生成部136aが式(39)に従ってシェア情報share(λ)∈Fq(λ=1,...,Ψ)を計算し、生成したシェア情報share(λ)∈Fq(λ=1,...,Ψ)を記憶部133に格納する(ステップS13)。秘密情報生成部136bにCOL次元ベクトルCVが入力され、秘密情報生成部136bが式(37)に従って秘密情報SEを生成して記憶部133に格納する(ステップS14)。
 次に、鍵生成部136cに秘密情報SEが入力され、鍵生成部136cは式(46)に従って鍵情報D*(0)を生成して記憶部133に格納する。例えば、鍵生成部136cは式(47)に従って鍵情報D*(0)を生成して記憶部133に格納する(ステップS15)。鍵生成部136dにラベル情報LAB(λ)(λ=1,...,Ψ)が入力され、鍵生成部136dは式(48)(49)に従って鍵情報D*(λ)(λ=1,...,Ψ)を生成して記憶部133に格納する。例えば、鍵生成部136dは式(50)(51)に従って鍵情報D*(λ)(λ=1,...,Ψ)を生成して記憶部133に格納する(ステップS16)。ラベル付き行列LMT(MT,LAB)、鍵情報D*(0)及び鍵情報D*(λ)(λ=1,...,Ψ)は鍵生成部136eに入力され、鍵生成部136eは、式(52)に従って鍵情報SKSを生成して出力部132に送る(ステップS17)。
 出力部132は鍵情報SKSを出力する(ステップS18)。鍵情報SKSは復号装置120(図5)の入力部121に入力され、記憶部123に格納される。
 [暗号化処理]
 図8に例示するように、暗号化処理では、まず暗号化装置110(図4)の入力部111に第2情報VSET2={λ,w(λ)|λ=1,...,Ψ}とバイナリ系列の平文Mとが入力され、それらが記憶部113に格納される(ステップS21)。
 次に、乱数生成部115が乱数rを生成し、乱数rを記憶部113に格納する。乱数rは単射関数Rの定義域をなす集合の元である。例えば、単射関数Rが1個の巡回群GTの元を入力とする関数であるなら乱数rは巡回群GTの元であり、単射関数Rが1個のバイナリ系列を入力とする関数であるなら乱数rはバイナリ系列である(ステップS22)。
 暗号化部116aに乱数r及び平文Mが入力される。暗号化部116aは、以下のように、乱数rに単射関数Rを作用させて得られたバイナリ系列である関数値R(r)と平文Mとの排他的論理和値を暗号文C2とする。
   C2=M(+)R(r)    …(84)
暗号文C2は記憶部113に格納される(ステップS23)。
 関数演算部116bに乱数rと暗号文C2とが入力される。関数演算部116bは、乱数rと暗号文C2との組をSmax(Smax≧1)個の衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力し、Smax(Smax≧1)個の関数値HS(r,C2)∈Fq(S=1,...,Smax)を生成する。なお、本形態のSmaxは定数である。以下にSmaxの一例を示す(ステップS24)。
   Smax=3+Σλ=1 Ψn(λ)    …(85)
 次に、共通鍵生成部116cが巡回群GTの生成元gT及び定数τ,τ',υ'∈Fqに対して式(76)を満たす共通鍵K∈GTを生成する。υ'∈Fqは乱数でもよいが、本形態では、共通鍵生成部116cに入力された関数値HS(r,C2)∈Fq(S=1,...,Smax)の何れかに対応する値をυ'∈Fqとする。例えば、関数値HS(r,C2)∈Fq(S=1,...,Smax)の何れか又は関数値HS(r,C2)∈Fq(S=1,...,Smax)の何れかの関数値がυ'∈Fqとなる。以下にυ'∈Fqの一例を示す(ステップS25)。
   υ'=H2(r,C2)∈Fq    …(86)
 暗号化部116dには共通鍵Kと乱数rとが入力される。暗号化部116dは、共通鍵Kを用いて共通鍵暗号方式によって乱数rを暗号化し、以下の暗号文C(Ψ+1)を生成する。
   C(Ψ+1)=EncK(r)    …(87)
暗号文C(Ψ+1)は記憶部113に格納される(ステップS26)。
 暗号化部116eには、第2情報VSET2、関数値HS(r,C2)∈Fq(S=1,...,Smax)の少なくとも一部及び暗号文C(Ψ+1)が入力される。暗号化部116eは、予め定められた基準に従い、関数値HS(r,C2)∈Fq(S=1,...,Smax)の少なくとも一部に対応する値をυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値とし、式(77)(78)に従ってC(0)及びC(λ)(λ=1,...,Ψ)を生成する。例えば、υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部が、関数値HS(r,C2)∈Fq(S=1,...,Smax)の少なくとも一部又は関数値HS(r,C2)∈Fq(S=1,...,Smax)の少なくとも一部の関数値とされる。式(55)(56)が満たされる必要もある。例えば、Smax=3+Σλ=1 Ψn(λ)の場合、ζ(λ)=3・n(λ)、I=5とし、υ2(0),υ4(0),υn(λ)+1(λ),...,υ3・n(λ)(λ)をそれぞれ零元0Fとし、υ'=υ3(0)とし、υ,υ3(0),υ5(0),υ3・n(λ)+1(λ),...,υ4・n(λ)(λ)のそれぞれをH1(r,C2),...,HSmax(r,C2)の何れかとする。この際、安全性の観点から、υ,υ3(0),υ5(0),υ3・n(λ)+1(λ),...,υ4・n(λ)(λ)とH1(r,C2),...,HSmax(r,C2)とが一対一で対応することが望ましい。その場合、Smaxの値は、υ,υ3(0),υ5(0),υ3・n(λ)+1(λ),...,υ4・n(λ)(λ)の個数以上である。
 関数値HS(r,C2)∈Fq(S=1,...,Smax)のいずれにも対応しないυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))は、例えば、有限体Fqから選択された定数とされる。υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の何れがH1(r,C2),...,HSmax(r,C2)の何れに対応するのかは、例えば、予め定められている。
 暗号化部116eは、第2情報VSET2、C(0)、C(λ)(λ=1,...,Ψ)及びC(Ψ+1)を含む、以下のような暗号文C1を生成する。
   C1=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈VSET2),C(Ψ+1))  …(88)
暗号文C1は記憶部113に格納される(ステップS27)。
 暗号文C1及び暗号文C2は結合部117に入力される。結合部117は、暗号文C1に対応するバイナリ系列と暗号文C2とのビット結合値を暗号文Codeとして生成する。
   Code=C1|C2    …(89)
 復号装置120は、暗号文Code内の暗号文C1の位置と暗号文C2の位置とを特定できる。例えば、暗号文Code内の暗号文C1の位置と暗号文C2の位置とが固定とされる、又は、暗号文Code内の暗号文C1の位置と暗号文C2の位置とを表す付加情報が暗号文Codeに付加される(ステップS28)。
 暗号文Codeは出力部112に送られる。出力部112は暗号文Codeを出力する(ステップS29)。これで暗号化処理が終了する。
 [復号処理]
 図9に例示するように、復号処理では、まず復号装置120(図5)の入力部121に暗号文Code'が入力され、記憶部123に格納される。暗号文Code'は例えば上述の暗号文Codeである(ステップS41)。
 暗号文Code'は分離部127に入力され、分離部127は予め定めれれた方法で暗号文Code'を暗号文C1'と暗号文C2'とに分離し、暗号文C1'と暗号文C2'とを記憶部123に格納する。暗号文Code'が暗号文Codeである場合、C1=C1'かつC2=C2'である(ステップS42)。
 次に共通鍵生成部126aに鍵情報SKS及び暗号文C1'が入力される。共通鍵生成部126aは、鍵情報SKS及び暗号文C1'を用いて共通鍵K'∈GTを復元可能であるか否かを判定する。すなわち、共通鍵生成部126aは、ラベル付き行列LMT(MT,LAB)に対応する第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}、暗号文C1'が含む第2情報VSET2'={λ,w(λ)|λ=1,...,Ψ}、及びLMT(MT,LAB)の各ラベルLAB(λ)とを用い、鍵情報SKSが含むラベル付き行列LMT(MT,LAB)の各ラベルLAB(λ)であるn(λ)次元ベクトルv(λ)と暗号文CのVSET2が含むn(λ)次元ベクトルw(λ)との内積v(λ)・w(λ)が0となるか否かをそれぞれ判定し、それらの結果とLMT(MT,LAB)の各ラベルLAB(λ)とを用いてGV∈span<MTTFV>であるか否かが判定する。前述のように、GV∈span<MTTFV>であれば共通鍵K'∈GTが復元可能であり、GV∈span<MTTFV>でなければ共通鍵K'∈GTが復元可能でない(ステップS43)。ステップS43の処理の具体例は後述する。共通鍵K'∈GTが復元可能でないと判断された場合には復号が拒絶され(ステップS48)、復号処理が終了する。
 一方、共通鍵K'∈GTが復元可能であると判断された場合、共通鍵生成部126aは、式(45)を満たす係数const(μ)を求め、式(82)に従って共通鍵K'∈GTを計算する。生成された共通鍵K'は記憶部123に格納される(ステップS44)。
 暗号文C1'が含む暗号文C'(Ψ+1)及び共通鍵K'は復号部126bに入力される。C1=C1'で或る場合、C(Ψ+1)=C'(Ψ+1)が満たされる。復号部126bは、共通鍵K'を用い、入力された暗号文C'(Ψ+1)を復号し、以下の復号値r'を得る。
   r'=DecK'(C'(Ψ+1))    …(90)
 復号部126bは、復号値r'を記憶部123に格納する(ステップS45)。
 関数演算部126cに復号値r'と暗号文C2'とが入力される。関数演算部126cは、復号値r'と暗号文C2'との組をSmax(Smax≧1)個の衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力して関数値HS(r',C2')(S=1,...,Smax)を生成する。各関数値HS(r',C2')(S=1,...,Smax)は記憶部123に格納される(ステップS46)。
 次に、判定部126dに、関数値HS(r',C2')∈Fq(S=1,...,Smax)の少なくとも一部、及び、暗号文C1'が含む第2情報VSET2'並びに暗号文C'(0),{C'(λ)}(λ,w(λ)→)∈VSET2')が入力される。判定部126dは、第2情報VSET2'が含むn(λ)次元ベクトルw(λ)及び関数値HS(r',C2')の少なくとも一部を用いて、以下の暗号文C''(0), C''(λ)(λ=1,...,Ψ)を生成する。
   C''(0)=υ''・b1(0)+Σι=2 Iυι''(0)・bι(0)    …(91)
   C''(λ)=υ''・Σι=1 n(λ)wι(λ)・bι''(λ)
       +Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)・bι(λ)  …(92)
暗号文C''(0)及びC''(λ)(λ=1,...,Ψ)の生成方法は、第2情報VSET2が第2情報VSET2'に置換され、関数値HS(r,C2)が関数値HS(r',C2')に置換され、υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))がυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))に置換される以外は、ステップS27での暗号文C(0)及びC(λ)(λ=1,...,Ψ)の生成方法と同一である。すなわち、判定部126dは、上記の予め定められた基準に従い、関数値HS(r',C2')∈Fq(S=1,...,Smax)の少なくとも一部に対応する値をυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値とし、式(91)(92)に従ってC''(0)及びC''(λ)(λ=1,...,Ψ)を生成する。例えば、υ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部が、関数値HS(r',C2')∈Fq(S=1,...,Smax)の少なくとも一部又は関数値HS(r',C2')∈Fq(S=1,...,Smax)の少なくとも一部の関数値とされる。式(55)(56)のυι(0),υι(λ)がυι''(0),υι''(λ)に置換された関係が満たされる必要もある。例えば、Smax=3+Σλ=1 Ψn(λ)の場合、ζ(λ)=3・n(λ)、I=5とし、υ2''(0),υ4''(0),υn(λ)+1''(λ),...,υ3・n(λ)''(λ)をそれぞれ零元0Fとし、υ'',υ3''(0),υ5''(0),υ3・n(λ)+1''(λ),...,υ4・n(λ) ''(λ)のそれぞれをH1(r',C2'),...,HSmax(r',C2')の何れかとする。例えば、υ'',υ3''(0),υ5''(0),υ3・n(λ)+1''(λ),...,υ4・n(λ)''(λ)とH1(r',C2'),...,HSmax(r',C2')とは一対一で対応する。その場合、Smaxの値は、υ'',υ3''(0),υ5''(0),υ3・n(λ)+1''(λ),...,υ4・n(λ)''(λ)の個数以上である。
 関数値HS(r',C2')∈Fq(S=1,...,Smax)のいずれにも対応しないυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))は、例えば、有限体Fqから選択された定数(ステップS27と同一の定数)とされる。υ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の何れがH1(r',C2'),...,HSmax(r',C2')の何れに対応するのかは、例えば、ステップS27と同一の基準に従って予め定められている。
 判定部126dは、以下のすべてが満たされるか否かを判定する(ステップS47)。
   C'(0)=C''(0)    …(93)
   C'(λ)=C''(λ)(λ=1,...,Ψ)    …(94)
 ここで、式(93)(94)の少なくとも一部が満たさない場合には復号が拒絶され(ステップS48)、復号処理が終了する。
 一方、式(93)(94)がすべて満たされる場合、復号部126eにバイナリ系列の暗号文C2'及び復号値r'が入力される。復号部126eは、復号値r'に単射関数Rを作用させたバイナリ系列の関数値R(r')と暗号文C2'との排他的論理和値を復号値M'として生成する(ステップS49)
   M'=C2'(+)R(r')    …(95)
。復号値M'は出力部122に送られ、出力部122は復号値M'を出力する(ステップS50)。これで復号処理が終了する。
 [ステップS43の処理の具体例]
 以下にステップS43の処理の具体例を説明する。なお、以下では説明の簡略化のため、式(38)のCOL次元ベクトルGVが用いられる場合を例示する。ただし、これは本発明を限定するものではなく、式(36)のように一般化されたCOL次元ベクトルGVが用いられる場合に以下の処理が拡張され、適用されてもよい。
 図10に例示するように、まず共通鍵生成部126aは、ラベル付き行列LMT(MT,LAB)に対応する第1情報VSET1={λ,v(λ)|λ=1,...,Ψ}、暗号文C1'が含む第2情報VSET2'={λ,w(λ)|λ=1,...,Ψ}、及びLMT(MT,LAB)の各ラベルLAB(λ)とを用い、式(41)-(44)に示した部分行列MTTFVを生成する。ここではMTTFVが以下のように表現される。
Figure JPOXMLDOC01-appb-M000021
 ただし、式(96)のMTTFVはω行COL列の行列であり、ωは1以上の整数であり、ROW(1),...,ROW(ω)はそれぞれLIT(ROW(1))=1,..., LIT(ROW(ω))=1となる行列MT(式(34))の行番号ROW(1),...,ROW(ω)∈SETである(ステップS431)。
 次に、共通鍵生成部126aは、MTTFVの行ベクトルmtλ' =(mtλ',1,...,mtλ',COL)(λ'= ROW(1),...,ROW(ω))ごとの演算やMTTFVの行ベクトルmtλ' 間の演算を行って、対角成分を乗法単位元1FとしたΩ×Ωの上三角行列を1行1列からΩ行Ω列までの部分行列とし、Ω+1行以降の行ベクトルmtλ' が存在する場合にはΩ+1行以降の行ベクトルmtλ' の全要素を加法単位元0Fとした上三角化行列MTTFV'を生成する。ただし、Ωは1以上であって部分行列MTTFVの行数及び列数以下の整数である。MTTFV'は例えば以下のようになる。
Figure JPOXMLDOC01-appb-M000022
 ただしΩ+1行以降の各要素が存在しない場合もあり得、また、Ω+1列以降の各要素が存在しない場合もあり得る。
 このような上三角化行列MTTFV'は例えば、ガウスの消去法を利用して生成できる。すなわち、例えばまず、部分行列MTTFVの1行目の行ベクトルmt1 =(mt1,1,...,mt1,COL)をmt1,1で除算したものをMTTFV'の1行目の行ベクトルとする。次に、部分行列MTTFVの2行目の行ベクトルmt2 =(mt2,1,...,mt2,COL)からMTTFV'の1行目の行ベクトルをmt2,1倍した行ベクトルを減じた行ベクトル(0F,mt2,2'',...,mt2,COL'')をmt2,2''で除算したものをMTTFV'の2行目の行ベクトルとする。同様に、既に生成したMTTFV'の各行ベクトルを用いてそれよりも大きな行番号の行ベクトルを加工していくことにより、上三角化行列MTTFV'が生成できる。なお、上三角化行列MTTFV'を生成するための演算は、行ベクトル単位の単項演算と行ベクトル間の2項演算であり、同一の行ベクトル内の異なる要素に対して異なる演算を行うことは許されない。除算するための法が加法単位元0Fとなった場合には加工対象の行ベクトルが選びなおされる。部分行列MTTFVが互いに線形独立でない複数の行ベクトル(すなわち一次従属な複数の行ベクトル)を含む場合、そのような行ベクトルを代表する1つの行ベクトルがΩ×Ωの上三角行列の要素を含む行ベクトルとなり、その他の行ベクトルは加法単位元0Fのみを要素とした行ベクトルとなる(ステップS432)。
 次に、共通鍵生成部126aはλ'=2に設定する(ステップS433)。共通鍵生成部126aは、以下の式(98)のベクトルを新たな(mt1,1' ... mt1,COL')として、上三角化行列MTTFV'の1行目の行ベクトル(mt1,1' ... mt1,COL')を更新する。
   (mt1,1' ... mt1,COL')-(mt1,λ' - 1F)・(mtλ',1' ... mtλ',COL') …(98)
(mtλ',1' ... mtλ',COL')は上三角化行列MTTFV'のλ'行目の行ベクトルを表す。
 共通鍵生成部126aはλ'=Ωであるか否かを判定し(ステップS435)、λ'=Ωでなければλ'+1を新たなλ'とし(ステップS436)、ステップS434の処理に戻る。一方、λ'=Ωであれば共通鍵生成部126aは、以下が満たされるか否かを判定する(ステップS437)。
   (mt1,1' ... mt1,COL')=(1F,...,1F)    …(99)
 共通鍵生成部126aは、式(99)が満たされるならばK'の復号が可能であると判定し(ステップS438)、これを満たさないならばK'の復号が不可能であると判定する(ステップS439)。
 ステップS432の上三角化行列MTTFV'を生成するためのすべての演算内容とステップS434でのすべての演算内容とは記憶部123に格納される。K'の復号が可能であると判定された場合(ステップS438)、上三角化行列MTTFV'を生成するためのすべての演算とステップS434でのすべての演算が、部分行列MTTFVの各要素を不定元として得られる行列に施される。それによって得られる行列の1行目の列ベクトルは、部分行列MTTFVの各要素を不定元として得られる行列INDTFVの列ベクトルindλ' =(indλ',1,...,indλ',COL)(λ'=ROW(1),...,ROW(ω)∈SET)の線形和、すなわち、当該列ベクトルindλ' と当該列ベクトルに対応する係数const(λ')との積和となる。
   const(ROW(1))・indROW(1) +...+const(ROW(ω))・indROW(ω)
 行列INDTFVのμ行目(μ∈SET)の列ベクトルindμ に対応する係数const(μ)が式(45)を満たす係数const(μ)となる(式(37)(39)の関係参照)。
 〔変形例等〕
 本発明は上述の各実施の形態に限定されるものではない。例えば、ステップS47では、式(93)(94)がともに満たされるか否かが判定されたが、その代わりにC'(0)及びC'(λ)(λ=1,...,Ψ)を結合した情報とC''(0)及びC''(λ)(λ=1,...,Ψ)を結合した情報とが一致するか否かが判定されてもよい。或いはC'(0)及びC'(λ)(λ=1,...,Ψ)に対応する1つの関数値とC''(0)及びC''(λ)(λ=1,...,Ψ)に対応する1つの関数値とが一致するか否かが判定されてもよい。或いは式(93)(94)がともに満たされる場合に第1値が出力され、式(93)(94)の少なくとも一部が満たされない場合に第1値が出力される関数によって判定がなされてもよい。
 ステップS48で復号が拒絶されるときに、復号装置120がエラー情報を出力してもよいし、復号結果と無関係な乱数を出力してもよいし、何も出力しなくてもよい。
 上述の有限体Fq上で定義された各演算が位数qの有限環Zq上で定義された演算に置き換えられてもよい。有限体Fq上で定義された各演算を有限環Zq上で定義された演算に置き換える方法の一例は、素数やそのべき乗値以外のqを許容する方法である。
 式(46)(48)-(51)(53)-(56)その他の演算において加法単位元が乗じられる項は巡回群G1やG2の単位元となる。加法単位元が乗じられる項の演算は行われてもよいし、行われなくてもよい。
 上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
 上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
 このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
1 暗号システム
110 暗号化装置
120 復号装置

Claims (36)

  1.  暗号化装置であって、
     乱数rを生成する乱数生成部と、
     前記乱数rに応じたバイナリ系列とバイナリ系列の平文Mとの排他的論理和値である暗号文C2を生成する第1暗号化部と、
     前記乱数rと前記暗号文C2との組を衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力して得られる、Smax(Smax≧1)個の関数値HS(r,C2)(S=1,...,Smax)を生成する関数演算部と、
     巡回群GTの元である共通鍵Kを生成する共通鍵生成部と、
     前記共通鍵Kを用いて共通鍵暗号方式によって前記乱数rを暗号化して暗号文C(Ψ+1)を生成する第2暗号化部と、
     C(0)=υ・b1(0)+Σι=2 Iυι(0)・bι(0)、C(λ)=υ・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)・bι(λ)、及び前記暗号文C(Ψ+1)を含む暗号文C1を生成する第3暗号化部と、を有し、
     Ψが1以上の整数であり、ψが0以上Ψ以下の整数であり、n(ψ)が1以上の整数であり、ζ(ψ)が0以上の整数であり、λが1以上Ψ以下の整数であり、Iが2以上n(0)+ζ(0)以下の定数であり、eψのそれぞれが巡回群G1のn(ψ)+ζ(ψ)個の元γβ(β=1,...,n(ψ)+ζ(ψ))と巡回群G2のn(ψ)+ζ(ψ)個の元γβ *(β=1,...,n(ψ)+ζ(ψ))とを入力として前記巡回群GTの1個の元を出力する非退化な双線形写像であり、iが1以上n(ψ)+ζ(ψ)以下の整数であり、bi(ψ)が前記巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、bi *(ψ)が前記巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、δ(i,j)がクロネッカーのデルタ関数であり、前記巡回群GTの生成元gT及び定数τ,τ'に対してeψ(bi(ψ), bj *(ψ))=gT τ・τ'・δ(i,j)が満たされ、w(λ)=(w1(λ),...,wn(λ)(λ))がw1(λ),...,wn(λ)(λ)を要素とするn(λ)次元ベクトルであり、υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が前記関数値HS(r,C2)(S=1,...,Smax)の何れかに対応する、暗号化装置。
  2.  請求項1の暗号化装置であって、
     前記乱数rに応じたバイナリ系列は、前記乱数rにランダム関数を作用させた関数値である、暗号化装置。
  3.  請求項1の暗号化装置であって、
     前記衝突困難な関数HSの少なくとも一部はランダム関数である、暗号化装置。
  4.  請求項2の暗号化装置であって、
     前記衝突困難な関数HSの少なくとも一部はランダム関数である、暗号化装置。
  5.  請求項1から4の何れかの暗号化装置であって、
     前記定数τ,τ'、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r,C2)(S=1,...,Smax)、及びυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
     前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、暗号化装置。
  6.  請求項1から4の何れかの暗号化装置であって、
     ζ(λ)=3・n(λ)、I=5、Smax=3+Σλ=1 Ψn(λ)であり、υ2(0),υ4(0),υn(λ)+1(λ),...,υ3・n(λ)(λ)が零元であり、K=gT τ・τ'・υ'∈GT、υ'=υ3(0)であり、υ,υ3(0),υ5(0),υ3・n(λ)+1(λ),...,υ4・n(λ)(λ)のそれぞれがH1(r,C2),...,HSmax(r,C2)の何れかである、暗号化装置。
  7.  請求項6の暗号化装置であって、
     前記定数τ,τ'、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r,C2)(S=1,...,Smax)、及びυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
     前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、暗号化装置。
  8.  復号装置であって、
     SE=Σμ∈SETconst(μ)・share(μ)(μ∈SET)を満たす係数const(μ)が存在する場合に、第1鍵情報D*(0)、第2鍵情報D*(λ)、及び、入力された暗号文C'(0)、C'(λ)を用いて、共通鍵
    Figure JPOXMLDOC01-appb-M000001
    を生成する共通鍵生成部と、
     前記共通鍵K'を用い、入力された暗号文C'(Ψ+1)を復号して復号値r'を生成する第1復号部と、
     前記復号値r'と入力された暗号文C2'との組を衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力して得られる、Smax(Smax≧1)個の関数値HS(r',C2')(S=1,...,Smax)を生成する関数演算部と、
     前記暗号文C'(0),C'(λ)と、暗号文C''(0)=υ''・b1(0)+Σι=2 Iυι''(0)・bι(0), C''(λ)=υ''・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)・bι(λ)と、が一致しない場合に復号を拒絶する判定部と、を有し、
     υ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が前記関数値HS(r',C2')(S=1,...,Smax)の何れかに対応し、
     Ψが1以上の整数であり、ψが0以上Ψ以下の整数であり、ζ(ψ)が0以上の整数であり、λが1以上Ψ以下の整数であり、n(ψ)が1以上の整数であり、Iが2以上n(0)+ζ(0)以下の定数であり、eψのそれぞれが巡回群G1のn(ψ)+ζ(ψ)個の元γβ(β=1,...,n(ψ)+ζ(ψ))と巡回群G2のn(ψ)+ζ(ψ)個の元γβ *(β=1,...,n(ψ)+ζ(ψ))とを入力として巡回群GTの1個の元を出力する非退化な双線形写像であり、iが1以上n(ψ)+ζ(ψ)以下の整数であり、bi(ψ)が前記巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、bi *(ψ)が前記巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、δ(i,j)がクロネッカーのデルタ関数であり、前記巡回群GTの生成元gT及び定数τ,τ'に対してeψ(bi(ψ), bj *(ψ))=gT τ・τ'・δ(i,j)が満たされ、v(λ)=(v1(λ),...,vn(λ)(λ))がv1(λ),...,vn(λ)(λ)を要素とするn(λ)次元ベクトルであり、w(λ)=(w1(λ),...,wn(λ)(λ))がw1(λ),...,wn(λ)(λ)を要素とするn(λ)次元ベクトルであり、ラベルLAB(λ)(λ=1,...,Ψ)が前記n(λ)次元ベクトルv(λ)又は前記n(λ)次元ベクトルv(λ)の否定¬v(λ)を表す情報であり、LAB(λ)=v(λ)は、LAB(λ)が前記n(λ)次元ベクトルv(λ)を表すことを意味し、LAB(λ)=¬v(λ)は、LAB(λ)が前記n(λ)次元ベクトルv(λ)の否定¬v(λ)を表すことを意味し、share(λ)(λ=1,...,Ψ)が秘密情報SEを秘密分散して得らたシェア情報を表し、前記第1鍵情報がD*(0)=-SE・b1 *(0)+Σι=2 Icoefι(0)・bι *(0)であり、LAB(λ)=v(λ)となるλに対する前記第2鍵情報がD*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)+Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)であり、LAB(λ)=¬v(λ)となるλに対する前記第2鍵情報がD*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)であり、SETが{LAB(λ)=v(λ)}∧{v(λ)・w(λ)=0}又は{LAB(λ)=¬v(λ)}∧{v(λ)・w(λ)≠0}を満たすλの集合を表す、復号装置。
  9.  請求項8の復号装置であって、
     前記衝突困難な関数HSの少なくとも一部はランダム関数である、復号装置。
  10.  請求項9の復号装置であって、
     前記要素v1(λ),...,vn(λ)(λ)、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r',C2')(S=1,...,Smax)、及びυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
     前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、復号装置。
  11.  請求項8の復号装置であって、
     前記要素v1(λ),...,vn(λ)(λ)、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r',C2')(S=1,...,Smax)、及びυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
     前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、復号装置。
  12.  請求項8から11の何れかの復号装置であって、
     ζ(λ)=3・n(λ)、I=5、Smax=3+Σλ=1 Ψn(λ)であり、υ2''(0),υ4''(0),υn(λ)+1''(λ),...,υ3・n(λ)''(λ)が零元であり、K'=gT τ・τ'・υ'''∈GT、υ'''=υ3''(0)であり、υ'',υ3''(0),υ5''(0),υ3・n(λ)+1''(λ),...,υ4・n(λ)''(λ)のそれぞれがH1(r',C2'),...,HSmax(r',C2')の何れかであり、前記第1鍵情報がD*(0)=-SE・b1 *(0)+b3 *(0)+coef4(0)・b4 *(0)であり、LAB(λ)=v(λ)となるλに対する前記第2鍵情報がD*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)+Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)+Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)であり、LAB(λ)=¬v(λ)となるλに対する前記第2鍵情報がD*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)+Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)である、復号装置。
  13.  請求項12の復号装置であって、
     前記復号値r'に応じたバイナリ系列は、前記復号値r'にランダム関数を作用させた関数値である、復号装置。
  14.  請求項8から11の何れかの復号装置であって、
     前記暗号文C'(0)及びC'(λ)と、暗号文C''(0)=υ''・b1(0)+Σι=2 Iυι''(0)・bι(0)及びC''(λ)=υ''・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)・bι(λ)と、が一致する場合に、前記復号値r'に応じたバイナリ系列と入力されたバイナリ系列の暗号文C2'との排他的論理和である復号値M'を生成する第2復号部をさらに有する、復号装置。
  15.  請求項14の復号装置であって、
     ζ(λ)=3・n(λ)、I=5、Smax=3+Σλ=1 Ψn(λ)であり、υ2''(0),υ4''(0),υn(λ)+1''(λ),...,υ3・n(λ)''(λ)が零元であり、K'=gT τ・τ'・υ'''∈GT、υ'''=υ3''(0)であり、υ'',υ3''(0),υ5''(0),υ3・n(λ)+1''(λ),...,υ4・n(λ)''(λ)のそれぞれがH1(r',C2'),...,HSmax(r',C2')の何れかであり、前記第1鍵情報がD*(0)=-SE・b1 *(0)+b3 *(0)+coef4(0)・b4 *(0)であり、LAB(λ)=v(λ)となるλに対する前記第2鍵情報がD*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)+Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)+Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)であり、LAB(λ)=¬v(λ)となるλに対する前記第2鍵情報がD*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)+Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)である、復号装置。
  16.  請求項15の復号装置であって、
     前記復号値r'に応じたバイナリ系列は、前記復号値r'にランダム関数を作用させた関数値である、復号装置。
  17.  暗号化方法であって、
     乱数生成部が、乱数rを生成するステップと、
     第1暗号化部が、前記乱数rに応じたバイナリ系列とバイナリ系列の平文Mとの排他的論理和値である暗号文C2を生成するステップと、
     関数演算部が、前記乱数rと前記暗号文C2との組を衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力して得られる、Smax(Smax≧1)個の関数値HS(r,C2)(S=1,...,Smax)を生成するステップと、
     共通鍵生成部が、巡回群GTの元である共通鍵Kを生成するステップと、
     第2暗号化部が、前記共通鍵Kを用いて共通鍵暗号方式によって前記乱数rを暗号化して暗号文C(Ψ+1)を生成するステップと、
     第3暗号化部が、C(0)=υ・b1(0)+Σι=2 Iυι(0)・bι(0)、C(λ)=υ・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)・bι(λ)、及び前記暗号文C(Ψ+1)を含む暗号文C1を生成するステップと、を有し、
     Ψが1以上の整数であり、ψが0以上Ψ以下の整数であり、n(ψ)が1以上の整数であり、ζ(ψ)が0以上の整数であり、λが1以上Ψ以下の整数であり、Iが2以上n(0)+ζ(0)以下の定数であり、eψのそれぞれが巡回群G1のn(ψ)+ζ(ψ)個の元γβ(β=1,...,n(ψ)+ζ(ψ))と巡回群G2のn(ψ)+ζ(ψ)個の元γβ *(β=1,...,n(ψ)+ζ(ψ))とを入力として前記巡回群GTの1個の元を出力する非退化な双線形写像であり、iが1以上n(ψ)+ζ(ψ)以下の整数であり、bi(ψ)が前記巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、bi *(ψ)が前記巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、δ(i,j)がクロネッカーのデルタ関数であり、前記巡回群GTの生成元gT及び定数τ,τ'に対してeψ(bi(ψ), bj *(ψ))=gT τ・τ'・δ(i,j)が満たされ、w(λ)=(w1(λ),...,wn(λ)(λ))がw1(λ),...,wn(λ)(λ)を要素とするn(λ)次元ベクトルであり、υ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が前記関数値HS(r,C2)(S=1,...,Smax)の何れかにに対応する、暗号化方法。
  18.  請求項17の暗号化方法であって、
     前記乱数rに応じたバイナリ系列は、前記乱数rにランダム関数を作用させた関数値である、暗号化方法。
  19.  請求項17の暗号化方法であって、
     前記衝突困難な関数HSの少なくとも一部はランダム関数である、暗号化方法。
  20.  請求項18の暗号化方法であって、
     前記衝突困難な関数HSの少なくとも一部はランダム関数である、暗号化方法。
  21.  請求項17から20の何れかの暗号化方法であって、
     前記定数τ,τ'、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r,C2)(S=1,...,Smax)、及びυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
     前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、暗号化方法。
  22.  請求項17から20の何れかの暗号化方法であって、
     ζ(λ)=3・n(λ)、I=5、Smax=3+Σλ=1 Ψn(λ)であり、υ2(0),υ4(0),υn(λ)+1(λ),...,υ3・n(λ)(λ)が零元であり、K=gT τ・τ'・υ'∈GT、υ'=υ3(0)であり、υ,υ3(0),υ5(0),υ3・n(λ)+1(λ),...,υ4・n(λ)(λ)のそれぞれがH1(r,C2),...,HSmax(r,C2)の何れかである、暗号化方法。
  23.  請求項22の暗号化方法であって、
     前記定数τ,τ'、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r,C2)(S=1,...,Smax)、及びυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
     前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、暗号化方法。
  24.  復号方法であって、
     SE=Σμ∈SETconst(μ)・share(μ)(μ∈SET)を満たす係数const(μ)が存在する場合に、共通鍵生成部が、第1鍵情報D*(0)、第2鍵情報D*(λ)、及び、入力された暗号文C'(0)、C'(λ)を用いて、共通鍵
    Figure JPOXMLDOC01-appb-M000002
    を生成するステップと、
     第1復号部が、前記共通鍵K'を用い、入力された暗号文C'(Ψ+1)を復号して復号値r'を生成するステップと、
     関数演算部が、前記復号値r'と入力された暗号文C2'との組をSmax(Smax≧1)個の衝突困難な関数HS(S=1,...,Smax)のそれぞれに入力してSmax(Smax≧1)個の関数値HS(r',C2')(S=1,...,Smax)を生成するステップと、
     判定部が、前記暗号文C'(0),C'(λ)と、暗号文C''(0)=υ''・b1(0)+Σι=2 Iυι''(0)・bι(0), C''(λ)=υ''・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)・bι(λ)と、が一致しない場合に復号を拒絶するステップと、を有し、
     υ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))の少なくとも一部の値が前記関数値HS(r',C2')(S=1,...,Smax)の何れかに対応し、
     Ψが1以上の整数であり、ψが0以上Ψ以下の整数であり、ζ(ψ)が0以上の整数であり、λが1以上Ψ以下の整数であり、n(ψ)が1以上の整数であり、Iが2以上n(0)+ζ(0)以下の定数であり、eψのそれぞれが巡回群G1のn(ψ)+ζ(ψ)個の元γβ(β=1,...,n(ψ)+ζ(ψ))と巡回群G2のn(ψ)+ζ(ψ)個の元γβ *(β=1,...,n(ψ)+ζ(ψ))とを入力として巡回群GTの1個の元を出力する非退化な双線形写像であり、iが1以上n(ψ)+ζ(ψ)以下の整数であり、bi(ψ)が前記巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、bi *(ψ)が前記巡回群G2のn(ψ)+ζ(ψ)個の元を要素とするn(ψ)+ζ(ψ)次元の基底ベクトルであり、δ(i,j)がクロネッカーのデルタ関数であり、前記巡回群GTの生成元gT及び定数τ,τ'に対してeψ(bi(ψ), bj *(ψ))=gT τ・τ'・δ(i,j)が満たされ、v(λ)=(v1(λ),...,vn(λ)(λ))がv1(λ),...,vn(λ)(λ)を要素とするn(λ)次元ベクトルであり、w(λ)=(w1(λ),...,wn(λ)(λ))がw1(λ),...,wn(λ)(λ)を要素とするn(λ)次元ベクトルであり、ラベルLAB(λ)(λ=1,...,Ψ)が前記n(λ)次元ベクトルv(λ)又は前記n(λ)次元ベクトルv(λ)の否定¬v(λ)を表す情報であり、LAB(λ)=v(λ)は、LAB(λ)が前記n(λ)次元ベクトルv(λ)を表すことを意味し、LAB(λ)=¬v(λ)は、LAB(λ)が前記n(λ)次元ベクトルv(λ)の否定¬v(λ)を表すことを意味し、share(λ)(λ=1,...,Ψ)が秘密情報SEを秘密分散して得らたシェア情報を表し、前記第1鍵情報がD*(0)=-SE・b1 *(0)+Σι=2 Icoefι(0)・bι *(0)であり、LAB(λ)=v(λ)となるλに対する前記第2鍵情報がD*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)+Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)であり、LAB(λ)=¬v(λ)となるλに対する前記第2鍵情報がD*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)・bι *(λ)であり、SETが{LAB(λ)=v(λ)}∧{v(λ)・w(λ)=0}又は{LAB(λ)=¬v(λ)}∧{v(λ)・w(λ)≠0}を満たすλの集合を表す、復号方法。
  25.  請求項24の復号方法であって、
     前記衝突困難な関数HSの少なくとも一部はランダム関数である、復号方法。
  26.  請求項25の復号方法であって、
     前記要素v1(λ),...,vn(λ)(λ)、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r',C2')(S=1,...,Smax)、及びυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
     前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、復号方法。
  27.  請求項24の復号方法であって、
     前記要素v1(λ),...,vn(λ)(λ)、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r',C2')(S=1,...,Smax)、及びυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
     前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、復号方法。
  28.  請求項24から27の何れかの復号方法であって、
     ζ(λ)=3・n(λ)、I=5、Smax=3+Σλ=1 Ψn(λ)であり、υ2''(0),υ4''(0),υn(λ)+1''(λ),...,υ3・n(λ)''(λ)が零元であり、K'=gT τ・τ'・υ'''∈GT、υ'''=υ3''(0)であり、υ'',υ3''(0),υ5''(0),υ3・n(λ)+1''(λ),...,υ4・n(λ)''(λ)のそれぞれがH1(r',C2'),...,HSmax(r',C2')の何れかであり、前記第1鍵情報がD*(0)=-SE・b1 *(0)+b3 *(0)+coef4(0)・b4 *(0)であり、LAB(λ)=v(λ)となるλに対する前記第2鍵情報がD*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)+Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)+Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)であり、LAB(λ)=¬v(λ)となるλに対する前記第2鍵情報がD*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)+Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)である、復号方法。
  29.  請求項28の復号方法であって、
     前記復号値r'に応じたバイナリ系列は、前記復号値r'にランダム関数を作用させた関数値である、復号方法。
  30.  請求項24から27の何れかの復号方法であって、
     前記暗号文C'(0)及びC'(λ)と、暗号文C''(0)=υ''・b1(0)+Σι=2 Iυι''(0)・bι(0)及びC''(λ)=υ''・Σι=1 n(λ)wι(λ)・bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι''(λ)・bι(λ)と、が一致する場合に、前記復号値r'に応じたバイナリ系列と入力されたバイナリ系列の暗号文C2'との排他的論理和である復号値M'を生成する第2復号部をさらに有する、復号方法。
  31.  請求項30の復号方法であって、
     ζ(λ)=3・n(λ)、I=5、Smax=3+Σλ=1 Ψn(λ)であり、υ2''(0),υ4''(0),υn(λ)+1''(λ),...,υ3・n(λ)''(λ)が零元であり、K'=gT τ・τ'・υ'''∈GT、υ'''=υ3''(0)であり、υ'',υ3''(0),υ5''(0),υ3・n(λ)+1''(λ),...,υ4・n(λ)''(λ)のそれぞれがH1(r',C2'),...,HSmax(r',C2')の何れかであり、前記第1鍵情報がD*(0)=-SE・b1 *(0)+b3 *(0)+coef4(0)・b4 *(0)であり、LAB(λ)=v(λ)となるλに対する前記第2鍵情報がD*(λ)=(share(λ)+coef(λ)・v1(λ))・b1 *(λ)+Σι=2 n(λ)coef(λ)・vι(λ)・bι *(λ)+Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)であり、LAB(λ)=¬v(λ)となるλに対する前記第2鍵情報がD*(λ)=share(λ)・Σι=1 n(λ)vι(λ)・bι *(λ)+Σι=2・n(λ)+1 3・n(λ)coefι(λ)・bι *(λ)である、復号方法。
  32.  請求項31の復号方法であって、
     前記復号値r'に応じたバイナリ系列は、前記復号値r'にランダム関数を作用させた関数値である、復号方法。
  33.  請求項1の暗号化装置としてコンピュータを機能させるためのプログラム。
  34.  請求項1の暗号化装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
  35.  請求項8の復号装置としてコンピュータを機能させるためのプログラム。
  36.  請求項8の復号装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
PCT/JP2011/066692 2010-07-23 2011-07-22 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体 WO2012011564A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
ES11809734.4T ES2686426T3 (es) 2010-07-23 2011-07-22 Dispositivo de encriptación, dispositivo de desencriptación, método de encriptación, método de desencriptación, programa y medio de grabación
EP11809734.4A EP2597812B1 (en) 2010-07-23 2011-07-22 Encryption device, decryption device, encryption method, decryption method, program, and recording medium
US13/703,381 US8897442B2 (en) 2010-07-23 2011-07-22 Encryption device, decryption device, encryption method, decryption method, program, and recording medium
CN201180034973.1A CN103004129B (zh) 2010-07-23 2011-07-22 加密装置、解密装置、加密方法、解密方法、程序及记录介质
JP2012525440A JP5466763B2 (ja) 2010-07-23 2011-07-22 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体
KR1020127034442A KR101478766B1 (ko) 2010-07-23 2011-07-22 암호화 장치, 복호 장치, 암호화 방법, 복호 방법, 프로그램, 및 기록 매체

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010166406 2010-07-23
JP2010-166406 2010-07-23

Publications (1)

Publication Number Publication Date
WO2012011564A1 true WO2012011564A1 (ja) 2012-01-26

Family

ID=45496982

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/066692 WO2012011564A1 (ja) 2010-07-23 2011-07-22 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体

Country Status (7)

Country Link
US (1) US8897442B2 (ja)
EP (1) EP2597812B1 (ja)
JP (1) JP5466763B2 (ja)
KR (1) KR101478766B1 (ja)
CN (1) CN103004129B (ja)
ES (1) ES2686426T3 (ja)
WO (1) WO2012011564A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651864A (zh) * 2012-05-16 2012-08-29 佛山科学技术学院 异构无线传感器网络的密钥设置方法
CN102665210A (zh) * 2012-05-19 2012-09-12 佛山科学技术学院 分区的无线传感器网络的安全密钥设置方法
CN102665209A (zh) * 2012-05-10 2012-09-12 佛山科学技术学院 无线传感器网络密钥设置方法
JP2013168833A (ja) * 2012-02-16 2013-08-29 Nippon Telegr & Teleph Corp <Ntt> 公開鍵暗号システム、公開鍵暗号方法、送信装置、受信装置、およびプログラム
WO2014112182A1 (ja) * 2013-01-18 2014-07-24 三菱電機株式会社 データ復号装置、属性ベース暗号システム、乱数要素除去装置、ランダム化秘密鍵生成装置、データ復号方法およびデータ復号プログラム
JP2016006921A (ja) * 2014-06-20 2016-01-14 日本電信電話株式会社 コミットメント方法、コミットメントシステム、送信者装置、受信者装置及びプログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201506331SA (en) * 2013-12-11 2015-09-29 Singapore Man University Method for matching probabilistic encrypted data
EP3125221A4 (en) * 2014-03-28 2018-04-04 Sony Corporation Encryption processing device, and encryption processing method and program
US20170148357A1 (en) * 2014-07-02 2017-05-25 Mitsubishi Electric Corporation Matrix generation apparatus, matrix generation method, and non-transitory computer-readable recording medium storing matrix generation program
US10218496B2 (en) * 2014-08-04 2019-02-26 Cryptography Research, Inc. Outputting a key based on an authorized sequence of operations
JP5968484B1 (ja) * 2015-03-18 2016-08-10 日本電信電話株式会社 シェア復旧システム、シェア復旧方法、およびプログラム
KR101580514B1 (ko) * 2015-06-22 2015-12-28 (주) 시큐어가드 테크놀러지 시드 키를 이용한 패스워드 관리방법, 패스워드 관리장치 및 이를 적용한 컴퓨터로 읽을 수 있는 기록매체
CN105721166B (zh) * 2016-03-03 2018-09-21 武汉大学 一种量子计算安全的身份识别协议建立方法
CN107196760B (zh) * 2017-04-17 2020-04-14 徐智能 具有可调整性的伴随式随机重构密钥的序列加密方法
US10411891B2 (en) * 2017-06-28 2019-09-10 Nxp B.V. Distance-revealing encryption
CN110348229B (zh) * 2019-06-11 2021-09-21 北京思源理想控股集团有限公司 数据的加密方法及装置、数据的解密方法及装置
CN110278206B (zh) * 2019-06-19 2021-10-08 董玺 一种基于双私人密钥的bwe加密算法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177998A (ja) * 2007-01-22 2008-07-31 Nippon Telegr & Teleph Corp <Ntt> 同報通信暗号化方法、情報暗号化方法、情報復号方法、それらの装置、それらのプログラム、およびそれらの記録媒体
WO2010123112A1 (ja) * 2009-04-24 2010-10-28 日本電信電話株式会社 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
AU1732497A (en) * 1996-02-21 1997-09-10 Card Call Service Co., Ltd. Communication method using common key
US7093137B1 (en) * 1999-09-30 2006-08-15 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US20020141577A1 (en) * 2001-03-29 2002-10-03 Ripley Michael S. Method and system for providing bus encryption based on cryptographic key exchange
US7088821B2 (en) * 2001-05-03 2006-08-08 Cheman Shaik Absolute public key cryptographic system and method surviving private-key compromise with other advantages
US20050195975A1 (en) * 2003-01-21 2005-09-08 Kevin Kawakita Digital media distribution cryptography using media ticket smart cards
US9818136B1 (en) * 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
KR100585119B1 (ko) * 2004-01-07 2006-06-01 삼성전자주식회사 암호화 장치, 암호화 방법 및 그 기록매체
US7937593B2 (en) * 2004-08-06 2011-05-03 Broadcom Corporation Storage device content authentication
US20080046731A1 (en) * 2006-08-11 2008-02-21 Chung-Ping Wu Content protection system
WO2008074534A1 (en) * 2006-12-21 2008-06-26 International Business Machines Corporation Key distribution for securing broadcast transmission to groups of users in wireless networks
EP2311257B1 (en) * 2008-08-13 2016-01-06 GVBB Holdings S.A.R.L Apparatus and method for encrypting image data, and decrypting the encrypted image data, and image data distribution system
JP5322620B2 (ja) * 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
JP5285778B2 (ja) * 2009-08-03 2013-09-11 日本電信電話株式会社 関数暗号応用システム及び方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177998A (ja) * 2007-01-22 2008-07-31 Nippon Telegr & Teleph Corp <Ntt> 同報通信暗号化方法、情報暗号化方法、情報復号方法、それらの装置、それらのプログラム、およびそれらの記録媒体
WO2010123112A1 (ja) * 2009-04-24 2010-10-28 日本電信電話株式会社 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体

Non-Patent Citations (13)

* Cited by examiner, † Cited by third party
Title
A. MIYAJI; M. NAKABAYASHI; S. TAKANO: "New explicit conditions of elliptic curve Traces for FR-Reduction", IEICE TRANS. FUNDAMENTAL, vol. E84-A, no. 0, May 2001 (2001-05-01), pages 1234 - 1243
A. SHAMIR: "How to Share a Secret", COMMUNICATIONS OF THE ACM, vol. 22, no. 11, November 1979 (1979-11-01), pages 612 - 613
ALFRED J. MENEZES: "ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS", KLUWER ACADEMIC PUBLISHERS, pages: 61 - 81
AMIT SAHAI; BRENT WASTERS: "Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products", JOURNAL OF CRYPTOLOGY, 2008
D. BONEH; J. KATZ: "Improved Efficiency for CCA-Secure Cryptosystems Built Using Identity-Based Encryption", PROC. OF CT-RSA'05, 2005, pages 87 - 103, XP055377457
D. BONEH; M. FRANKLIN: "Crypto 2001, Lecture Notes in Computer Science", vol. 2139, 2001, SPRINGER-VERLAG, article "Identity based encryption from the Weil pairing", pages: 213 - 229
DAN BONEH ET AL.: "Improved Efficiency for CCA- Secure Cryptosystems Built Using Identity-Based Encryption", PROC. OF CT-RSA'05, 2004, pages 87 - 103, XP055377457, Retrieved from the Internet <URL:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.77.7424> [retrieved on 20110803] *
IAN F. BLAKE; GADIEL SEROUSSI; NIGEL PAUL SMART: "Elliptic Curves in Cryptography", PEASON EDUCATION
KAORU KUROSAWA; WAKAHA OGATA: "Basic Mathematics of Modern Encryption", March 2004, CORONA PUBLISHING CO., article "Electronics, information and communication lectures series", pages: 116 - 119
P. S. L. M. BARRETO; B. LYNN; M. SCOTT: "Proc. SCN'2002", 2003, SPRINGER-VERLAG, article "Constructing elliptic curves with prescribed embedding degrees", pages: 257 - 267
R. CANETTI; S. HALEVI; J. KATZ: "Chosen-Ciphertext Security from Identity-Based Encryption", PROC. OF EUROCRYPT'04, LNCS, vol. 3027, 2004, pages 207 - 222
R. DUPONT; A. ENGE; F. MORAIN, BUILDING CURVES WITH ARBITRARY SMALL MOV DEGREE OVER FINITE PRIME FIELDS, Retrieved from the Internet <URL:http://eprint.iacr.org/2002/094>
V S. MILLER, SHORT PROGRAMS FOR FUNCTIONS ON CURVES, 1986, Retrieved from the Internet <URL:http://crypto.stanford.edu/miller/miller.pdf>

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013168833A (ja) * 2012-02-16 2013-08-29 Nippon Telegr & Teleph Corp <Ntt> 公開鍵暗号システム、公開鍵暗号方法、送信装置、受信装置、およびプログラム
CN102665209A (zh) * 2012-05-10 2012-09-12 佛山科学技术学院 无线传感器网络密钥设置方法
CN102651864A (zh) * 2012-05-16 2012-08-29 佛山科学技术学院 异构无线传感器网络的密钥设置方法
CN102665210A (zh) * 2012-05-19 2012-09-12 佛山科学技术学院 分区的无线传感器网络的安全密钥设置方法
WO2014112182A1 (ja) * 2013-01-18 2014-07-24 三菱電機株式会社 データ復号装置、属性ベース暗号システム、乱数要素除去装置、ランダム化秘密鍵生成装置、データ復号方法およびデータ復号プログラム
JP5959667B2 (ja) * 2013-01-18 2016-08-02 三菱電機株式会社 データ復号装置、属性ベース暗号システム、乱数要素除去装置、データ復号方法およびデータ復号プログラム
JP2016006921A (ja) * 2014-06-20 2016-01-14 日本電信電話株式会社 コミットメント方法、コミットメントシステム、送信者装置、受信者装置及びプログラム

Also Published As

Publication number Publication date
CN103004129A (zh) 2013-03-27
CN103004129B (zh) 2015-04-08
KR20130024931A (ko) 2013-03-08
US8897442B2 (en) 2014-11-25
US20130083921A1 (en) 2013-04-04
ES2686426T3 (es) 2018-10-17
EP2597812B1 (en) 2018-06-20
KR101478766B1 (ko) 2015-01-02
JP5466763B2 (ja) 2014-04-09
EP2597812A4 (en) 2016-09-28
EP2597812A1 (en) 2013-05-29
JPWO2012011564A1 (ja) 2013-09-09

Similar Documents

Publication Publication Date Title
JP5466763B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体
JP5291795B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体
JP5256342B2 (ja) 情報生成装置、方法、プログラム及びその記録媒体
JP5422053B2 (ja) 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
JP5379914B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、秘密分散方法、プログラム、及び記録媒体
JP5285778B2 (ja) 関数暗号応用システム及び方法
JP5562475B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム
Li et al. Identity-based multi-recipient public key encryption scheme and its application in IoT
JP6259402B2 (ja) 鍵配送管理装置、端末装置、鍵配送システム、およびプログラム
Backes et al. Fully secure inner-product proxy re-encryption with constant size ciphertext
JP5612494B2 (ja) 関数暗号を用いた時限暗号システム、時限暗号方法、装置、プログラム
Kara et al. A Probabilistic Public-Key Encryption with Ensuring Data Integrity in Cloud Computing

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: 11809734

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012525440

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2011809734

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13703381

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20127034442

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE