WO2012011564A1 - 暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体 - Google Patents
暗号化装置、復号装置、暗号化方法、復号方法、プログラム、及び記録媒体 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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/0836—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0847—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
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
Description
このように本発明では、利便性が高く、CCA安全性の向上のための付加的な暗号文空間なしにCCA安全性を向上できる。
〔定義〕
行列:「行列」とは演算が定義された集合の元を矩形に並べたものを表す。環の元を要素とするものだけではなく、群の元を要素とするものも「行列」である。
(・)T:(・)Tは・の転置行列を表す。
(・)-1:(・)-1は・の逆行列を表す。
∨:∨は論理和(OR)を表す論理記号である。
¬:¬は否定(NOT)を表す論理記号である。
命題変数:命題変数は命題の「真」,「偽」("false","true")を要素とする集合{真,偽}上の変数である。すなわち、命題変数の定義域は「真」,「偽」を要素とする集合である。命題変数及び命題変数の否定を総称してリテラル(literal)と呼ぶ。
論理式:論理式とは数理論理学における命題を表す式を意味する。具体的には「真」及び「偽」は論理式であり、命題変数は論理式であり、論理式の否定は論理式であり、論理式と論理式との論理積は論理式であり、論理式と論理式との論理和は論理式である。
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を満たす。
0F:0Fは有限体Fqの加法単位元(零元)を表す。
1F:1Fは有限体Fqの乗法単位元を表す。
δ(i,j):δ(i,j)はクロネッカーのデルタ関数を表す。i=jの場合にδ(i,j)=1Fを満たし、i≠jの場合にδ(i,j)=0Fを満たす。
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」等参照)。
ψ:ψは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ψ:G1 n(ψ)+ζ(ψ)×G2 n(ψ)+ζ(ψ)→GT …(1)
双線形写像eψは以下の性質を満たす。
[双線形性]双線形写像eψは、すべてのΓ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ)及びν,κ∈Fqについて以下の関係を満たす。
eψ(ν・Γ1,κ・Γ2)=eψ(Γ1,Γ2)ν・κ …(2)
[非退化性]双線形写像eψは、すべてのΓ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ)を巡回群GTの単位元に写す写像ではない。
[計算可能性]あらゆる
Γ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ) …(3)
についてeψ(Γ1,Γ2)を効率的に計算するアルゴリズムが存在する。
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(Ω1,Ω2)ν・κ …(6)
[非退化性]双線形写像Pairは、すべての
Ω1∈G1,Ω2∈G2 …(7)
を巡回群GTの単位元に写す写像ではない。
[計算可能性]あらゆるΩ1∈G1,Ω2∈G2についてPair(Ω1,Ω2)を効率的に計算するアルゴリズムが存在する。
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(ψ)を張る。
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*(ψ)を張る。
eψ(ai(ψ), aj *(ψ))=gT τ・δ(i,j) …(10)
を満たす。すなわち、i=jの場合には、式(5)(6)の関係より、以下の関係が満たされる。
eψ(ai(ψ), aj *(ψ))
= Pair(κ1・g1,κ2・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・g1,κ2・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
e(ai(ψ), aj *(ψ))=gT δ(i,j) …(11)
gT 0=1は巡回群GTの単位元であり、gT 1=gTは巡回群GTの生成元である。基底ベクトルai(ψ)と基底ベクトルai *(ψ)とは双対正規直交基底であり、ベクトル空間V(ψ)とベクトル空間V*(ψ)とは、双線形写像を構成可能な双対ベクトル空間〔双対ペアリングベクトル空間(DPVS:Dual Paring Vector space)〕である。
χi →(ψ)=(χi,1(ψ),...,χi,n(ψ)+ζ(ψ)(ψ)) …(18)
χj →*(ψ)=(χj,1 *(ψ),...,χj,n(ψ)+ζ(ψ) *(ψ)) …(19)
すると、式(17)の関係から、n(ψ)+ζ(ψ)次元ベクトルχi →(ψ)とχj →*(ψ)との内積は、以下のようになる。
χi →(ψ)・χj →*(ψ)=τ'・δ(i,j) …(20)
bi(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j(ψ)・aj(ψ) …(21)
例えば、基底ベクトルaj(ψ)(j=1,...,n(ψ)+ζ(ψ))が式(8)によって表現される場合、基底ベクトルbi(ψ)の各要素をそれぞれ列挙して表現すると、以下のようになる。
bi(ψ)=(χi,1(ψ)・κ1・g1,χi,2(ψ)・κ1・g1,
...,χi,n(ψ)+ζ(ψ)(ψ)・κ1・g1) …(22)
巡回群G1のn(ψ)+ζ(ψ)個の元を要素とするすべてのn(ψ)+ζ(ψ)次元ベクトルは、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ)(i=1,...,n(ψ)+ζ(ψ))の線形和によって表される。すなわち、n(ψ)+ζ(ψ)次元の基底ベクトルbi(ψ)は前述のベクトル空間V(ψ)を張る。
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*(ψ)を張る。
eψ(bi(ψ), bj *(ψ))=gT τ・τ'・δ(i,j) …(25)
すなわち、式(5)(20)(22)(24)の関係から、以下の関係が満たされる。
eψ(bi(ψ), bj *(ψ))=gT δ(i,j) …(26)
基底ベクトルbi(ψ)と基底ベクトルbi *(ψ)とは、双対ペアリングベクトル空間(ベクトル空間V(ψ)とベクトル空間V*(ψ))の双対正規直交基底である。
なお、式(25)の関係を満たすのであれば、式(8)(9)で例示したもの以外の基底ベクトルai(ψ)及びai *(ψ)や、式(21)(23)で例示したもの以外の基底ベクトルbi(ψ)及びbi *(ψ)を用いてもよい。
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(λ))番目の要素を表す。
EncK(M):EncK(M)は、共通鍵Kを用い、共通鍵暗号関数Encに従って平文Mを暗号化して得られた暗号文を表す。
Dec:Decは、共通鍵暗号方式の復号処理を示す共通鍵復号関数を表す。
DecK(C):DecK(C)は、共通鍵Kを用い、共通鍵復号関数Decに従って暗号文Cを復号して得られた復号結果を表す。
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」などのハッシュ関数である。
単射関数:「単射関数」とは、その定義域に属する互いに異なる元の像をその値域に属する同一の元に写像することがない関数、又は、その定義域に属する互いに異なる元の像をその値域に属する同一の元に写像することがない関数とみなせる関数を表す。すなわち「単射関数」は、その定義域に属する元をその値域に属する何れかの元に一対一で写像する関数、又は、その定義域に属する元をその値域に属する何れかの元に一対一で写像する関数みなせる関数である。単射関数の例は、参考文献1に開示された「KDF(Key Derivation Function)」などのハッシュ関数である。
次に、関数暗号方式の基本的な構成について説明する。
関数暗号方式とは、第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)に開示された述語暗号方式は関数暗号方式の一種である。
上述した所定の論理式と階層的な秘密分散との関係を説明する。
秘密分散とは、しきい値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.」等参照)。
・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)
・f(0)=SEを満たすKt-1次の多項式f(x)=ξ0+ξ1・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)
(φρ-φ1)・...・(φρ-φρ-1)・(φρ-φρ+1)・...・(φρ-φKt)
式(33)の分子は、以下のように表される。
(x-φ1)・...・(x-φρ-1)・(x-φρ+1)・...・(x-φKt)
上述のように秘密情報を階層的に秘密分散して得られる木構造データによって所定の論理式を表現した場合、第1情報と第2情報との組み合わせに対して得られる葉ノードでのシェア情報に応じた値から秘密情報に応じた値を復元できるか否かによって、第1情報と第2情報との組み合わせによって定まる論理式の真理値が「真」となるか「偽」となるかを判定できる。以下、第1情報と第2情報との組み合わせによって定まる論理式の真理値が「真」となる場合に第1情報と第2情報との組み合わせを受け入れ、「偽」となる場合に第1情報と第2情報との組み合わせを拒絶する仕組みをアクセス構造と呼ぶ。
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→であってもよい。
(share(1),...,share(Ψ))T=MT・(CV→)T …(39)
上述のように所定の論理式を表現した木構造データが定まれば、これら2つの要件を満たす行列MTを選択することは容易である。秘密情報SEやシェア情報share(λ)が変数であったとしても、これら2つの要件を満たす行列MTを選択することは容易である。すなわち、行列MTを定めた後で秘密情報SEやシェア情報share(λ)の値が定められてもよい。
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)
{(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)
受け入れ if GV→∈span<MTTFV>
拒絶 if ¬(GV→∈span<MTTFV>)
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とされる。
-入力:1sec,(Ψ;n(1),...,n(Ψ))
-出力:マスター鍵情報MSK,公開パラメータPK
(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,...,Ψ)
-入力:公開パラメータPK,マスター鍵情報MSK,第1情報VSET1={λ,v(λ)→|λ=1,...,Ψ}に対応するラベル付き行列LMT(MT,LAB)
-出力:鍵情報SKS
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)
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ι(λ)は乱数である。
SKS=(LMT(MT,LAB),D*(0),D*(1),...,D(Ψ)) …(52)
-入力:公開パラメータPK,平文M,第2情報VSET2={λ,w(λ)→|λ=1,...,Ψ}(w1(λ)=1F)
-出力:暗号文C
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))=(0F,υ3(0),0F,υ5(0))
υ'=υ3(0)
(υn(λ)+1(λ),...,υ3・n(λ)(λ))=(0F,...,0F)
K=gT τ・τ'・υ'∈GT …(57)
例えば、τ=τ'=1Fの場合、以下の関係が満たされる。
K=gT υ'∈GT …(58)
C(Ψ+1)=EncK(M) …(59)
共通鍵暗号方式Encは、例えば共通鍵Kを用いて暗号化可能に構成されたカメリア(Camellia)(登録商標)やAESや共通鍵と平文との排他的論理和などでよいが、その他の簡単な例として以下のようにEncK(M)を生成してもよい。ただし、式(60)の例ではM∈GTとされる。
C(Ψ+1)=gT υ'・M …(60)
C=(VSET2,C(0),{C(λ)}(λ,w(λ)→)∈VSET2,C(Ψ+1)) …(61)
ただし、下付き添え字の「w(λ)→」は「w(λ)→」を表す。
-入力:公開パラメータPK,鍵情報SKS,暗号文C
-出力:平文M'
M'=DecK(C(Ψ+1))=DecK(C(Ψ+1)) …(68)
例えば、式(60)に例示した共通鍵暗号方式の場合、以下のように平文M'が生成される。
M'=C(Ψ+1)/K …(69)
以下の[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安全ではない。このことを簡単な例を示して説明する。この簡単な例では、平文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)
復号処理を行う復号装置が以下の処理を実行する。
(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’を生成する。
(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'を生成する。
この改良方式に対し、上述の想定戦略が適用された場合を想定する。
[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が格納されているときには、この処理が省略されてもよい。鍵情報の生成処理は暗号文の生成前に行われてもよいし、暗号文の生成後に行われてもよい。
出力部132は鍵情報SKSを出力する(ステップS18)。鍵情報SKSは復号装置120(図5)の入力部121に入力され、記憶部123に格納される。
図8に例示するように、暗号化処理では、まず暗号化装置110(図4)の入力部111に第2情報VSET2={λ,w(λ)→|λ=1,...,Ψ}とバイナリ系列の平文Mとが入力され、それらが記憶部113に格納される(ステップS21)。
暗号化部116aに乱数r及び平文Mが入力される。暗号化部116aは、以下のように、乱数rに単射関数Rを作用させて得られたバイナリ系列である関数値R(r)と平文Mとの排他的論理和値を暗号文C2とする。
C2=M(+)R(r) …(84)
暗号文C2は記憶部113に格納される(ステップS23)。
Smax=3+Σλ=1 Ψn(λ) …(85)
υ'=H2(r,C2)∈Fq …(86)
C(Ψ+1)=EncK(r) …(87)
暗号文C(Ψ+1)は記憶部113に格納される(ステップS26)。
関数値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)。
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)。
r'=DecK'(C'(Ψ+1)) …(90)
復号部126bは、復号値r'を記憶部123に格納する(ステップS45)。
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)がすべて満たされる場合、復号部126eにバイナリ系列の暗号文C2'及び復号値r'が入力される。復号部126eは、復号値r'に単射関数Rを作用させたバイナリ系列の関数値R(r')と暗号文C2'との排他的論理和値を復号値M'として生成する(ステップS49)
M'=C2'(+)R(r') …(95)
。復号値M'は出力部122に送られ、出力部122は復号値M'を出力する(ステップS50)。これで復号処理が終了する。
以下にステップ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が以下のように表現される。
(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)。
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値が出力される関数によって判定がなされてもよい。
上述の有限体Fq上で定義された各演算が位数qの有限環Zq上で定義された演算に置き換えられてもよい。有限体Fq上で定義された各演算を有限環Zq上で定義された演算に置き換える方法の一例は、素数やそのべき乗値以外のqを許容する方法である。
式(46)(48)-(51)(53)-(56)その他の演算において加法単位元が乗じられる項は巡回群G1やG2の単位元となる。加法単位元が乗じられる項の演算は行われてもよいし、行われなくてもよい。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
110 暗号化装置
120 復号装置
Claims (36)
- 暗号化装置であって、
乱数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)の何れかに対応する、暗号化装置。 - 請求項1の暗号化装置であって、
前記乱数rに応じたバイナリ系列は、前記乱数rにランダム関数を作用させた関数値である、暗号化装置。 - 請求項1の暗号化装置であって、
前記衝突困難な関数HSの少なくとも一部はランダム関数である、暗号化装置。 - 請求項2の暗号化装置であって、
前記衝突困難な関数HSの少なくとも一部はランダム関数である、暗号化装置。 - 請求項1から4の何れかの暗号化装置であって、
前記定数τ,τ'、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r,C2)(S=1,...,Smax)、及びυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、暗号化装置。 - 請求項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)の何れかである、暗号化装置。 - 請求項6の暗号化装置であって、
前記定数τ,τ'、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r,C2)(S=1,...,Smax)、及びυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、暗号化装置。 - 復号装置であって、
SE=Σμ∈SETconst(μ)・share(μ)(μ∈SET)を満たす係数const(μ)が存在する場合に、第1鍵情報D*(0)、第2鍵情報D*(λ)、及び、入力された暗号文C'(0)、C'(λ)を用いて、共通鍵
前記共通鍵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}を満たすλの集合を表す、復号装置。 - 請求項8の復号装置であって、
前記衝突困難な関数HSの少なくとも一部はランダム関数である、復号装置。 - 請求項9の復号装置であって、
前記要素v1(λ),...,vn(λ)(λ)、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r',C2')(S=1,...,Smax)、及びυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、復号装置。 - 請求項8の復号装置であって、
前記要素v1(λ),...,vn(λ)(λ)、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r',C2')(S=1,...,Smax)、及びυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、復号装置。 - 請求項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ι *(λ)である、復号装置。 - 請求項12の復号装置であって、
前記復号値r'に応じたバイナリ系列は、前記復号値r'にランダム関数を作用させた関数値である、復号装置。 - 請求項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復号部をさらに有する、復号装置。 - 請求項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ι *(λ)である、復号装置。 - 請求項15の復号装置であって、
前記復号値r'に応じたバイナリ系列は、前記復号値r'にランダム関数を作用させた関数値である、復号装置。 - 暗号化方法であって、
乱数生成部が、乱数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)の何れかにに対応する、暗号化方法。 - 請求項17の暗号化方法であって、
前記乱数rに応じたバイナリ系列は、前記乱数rにランダム関数を作用させた関数値である、暗号化方法。 - 請求項17の暗号化方法であって、
前記衝突困難な関数HSの少なくとも一部はランダム関数である、暗号化方法。 - 請求項18の暗号化方法であって、
前記衝突困難な関数HSの少なくとも一部はランダム関数である、暗号化方法。 - 請求項17から20の何れかの暗号化方法であって、
前記定数τ,τ'、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r,C2)(S=1,...,Smax)、及びυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、暗号化方法。 - 請求項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)の何れかである、暗号化方法。 - 請求項22の暗号化方法であって、
前記定数τ,τ'、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r,C2)(S=1,...,Smax)、及びυ,υι(0)(ι=2,...,I),υι(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、暗号化方法。 - 復号方法であって、
SE=Σμ∈SETconst(μ)・share(μ)(μ∈SET)を満たす係数const(μ)が存在する場合に、共通鍵生成部が、第1鍵情報D*(0)、第2鍵情報D*(λ)、及び、入力された暗号文C'(0)、C'(λ)を用いて、共通鍵
第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}を満たすλの集合を表す、復号方法。 - 請求項24の復号方法であって、
前記衝突困難な関数HSの少なくとも一部はランダム関数である、復号方法。 - 請求項25の復号方法であって、
前記要素v1(λ),...,vn(λ)(λ)、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r',C2')(S=1,...,Smax)、及びυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、復号方法。 - 請求項24の復号方法であって、
前記要素v1(λ),...,vn(λ)(λ)、前記要素w1(λ),...,wn(λ)(λ)、前記関数値HS(r',C2')(S=1,...,Smax)、及びυ'',υι''(0)(ι=2,...,I),υι''(λ)(ι=n(λ)+1,...,n(λ)+ζ(λ))が有限体Fqの元であり、
前記巡回群G1及びG2の位数のそれぞれが前記有限体Fqの位数q(q≧1)と等しい、復号方法。 - 請求項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ι *(λ)である、復号方法。 - 請求項28の復号方法であって、
前記復号値r'に応じたバイナリ系列は、前記復号値r'にランダム関数を作用させた関数値である、復号方法。 - 請求項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復号部をさらに有する、復号方法。 - 請求項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ι *(λ)である、復号方法。 - 請求項31の復号方法であって、
前記復号値r'に応じたバイナリ系列は、前記復号値r'にランダム関数を作用させた関数値である、復号方法。 - 請求項1の暗号化装置としてコンピュータを機能させるためのプログラム。
- 請求項1の暗号化装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
- 請求項8の復号装置としてコンピュータを機能させるためのプログラム。
- 請求項8の復号装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
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)
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)
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)
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)
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 | 日本電信電話株式会社 | 関数暗号応用システム及び方法 |
-
2011
- 2011-07-22 US US13/703,381 patent/US8897442B2/en active Active
- 2011-07-22 EP EP11809734.4A patent/EP2597812B1/en active Active
- 2011-07-22 KR KR1020127034442A patent/KR101478766B1/ko active IP Right Grant
- 2011-07-22 ES ES11809734.4T patent/ES2686426T3/es active Active
- 2011-07-22 WO PCT/JP2011/066692 patent/WO2012011564A1/ja active Application Filing
- 2011-07-22 CN CN201180034973.1A patent/CN103004129B/zh active Active
- 2011-07-22 JP JP2012525440A patent/JP5466763B2/ja active Active
Patent Citations (2)
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)
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)
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 |