1. Field of the Invention
The present invention relates to broadcast encryption for performing 1:N (where N is an integer of 2 or more) communications and, more particularly, to broadcast encryption that is based on a receiver's ID.
2. Description of the Related Art
The present inventor and co-researcher have proposed broadcast encryption that employs pairing on an elliptic curve (Shigeo MITSUNARI, Ryuichi SAKAI, and Masao KASAHARA, “A New Traitor Tracing”, IEICE Transactions Vol.E85-A, No. 2, pp. 481-484, Feb. 2002; Japanese Patent Laid Open No. 2002-271310). Thereafter, Boneh et al. proposed broadcast encryption where a unique number is assigned to each client, that is, each decryption device (D. Boneh, C. Gentry, and B. Waters, “Collusion Resistant Broadcast Encryption With Short Ciphertexts and Private keys” Euro-crypt 2005). The Boneh proposal employs pairing on an elliptic curve, each client possesses an individual secret key, and the broadcaster adds a header to an encrypted message with a key for each session. The client decrypts the session key from the header and the client's own secret key and thus decrypts the message.
An object of the present invention is to provide a new broadcast cryptosystem that obviates the need to change the system parameters and the secret keys for respective clients in response to the withdrawal of a client.
The present invention comprises:
generating two elements P and Q on the elliptic curve and numbers s and r by means of a key generator comprising a digital information processing device as a secret of the key generator;
transforming Ids of decryption devices into hash values Ii using a collision-resistant hash function h by means of the key generator;
determining secret keys Ki for respective decryption devices, using the key generator, by means of a polynomial f(Ii) including s as a variable and coefficients determined by the hash values Ii including f(Ii)−1 and the secret element P as factors; providing the respective decryption devices with the secret keys Ki;
making public R: R=rQ, a parameter y including a factor bi (P, Q) comprising a bilinear map of P and Q and the vector Rv: Rv=(sR, s2R, . . . , sNR) as public keys for encryption, where N is a number equal to or more than the total number of decryption devices; and
making public vector Qv: Qv=(sQ, s2Q, sN−1Q) as a public key for decryption.
This invention comprises encrypting a message m using a session key Ks where Ks=yk, the kth power of the public parameter y, is the key for each session by means of an encryption device comprising a digital information processing device;
generating a first component H1 in a header, using the encryption device, as H1=kΠieSf(Ii)R, where S is a set of hash values of the decryption device IDs;
generating a second component H2 in the header including k and P as factors, using the encryption device, and transmitting the message m and the first and second components in the header to the decryption device.
The set S of hash values may also be transmitted to a decryption device with the header serving as a third component or may be published on a public board or the like.
This invention comprises determining the value of the bilinear map A=bi(Ki, H1) of the first component H1 in the header and the secret key Ki of the decryption device, with an decryption device that comprises a digital information processing device;
determining an element ΠjεS,j≠i(s+Ij)Q−ΠjεS,j≠iIjQ on the elliptic curve from the set S of hash values and the vector Qv and fiurter determining a parameter B: B=bi (H2, ΠjεS,j≠i(s+Ij)Q−ΠjεS,j≠iIjQ;
and decrypting the session key Ks from a ΠjεS,j≠iIj−1 power of A/B: A/BΠjεS,j≠i Ij−1, where the index is Ij−1 not Ij−1 and decrypting the message m with the decrypted session key Ks.
Preferably, the bilinear map is a modified pairing en (,), the polynomial f(Ii) is f(Ii)=s+Ii, the secret key Ki of each decryption device is Ki=(s+Ii)−1P, the parameter y is y=en (P,Q)r, and the second component H2 is krP.
More preferably, coefficient generating means for successively determining the coefficient of each order of s in ΠjεS,j≠i(s+Ij)Q from (s+I1) to ΠjεS,j≠i(s+Ij) in the order of (s+I1), (s+I1) (s+I2), . . . from the set S of hash values and the public vector Qv is provided.
Particularly preferably, I1 is the initial value of the zero-order coefficient and 1 is the initial value of the first order coefficient, by the coefficient generating means, a calculation I1×I2 and a calculation 1×I1+I2 are first performed, then a calculation (I1×I2)×I3, a calculation (I1+I2)×I3+I1×I2 and a calculation I1+I2+I3 are performed, and calculations until ΠjεS,j≠i(s+Ij) are sequentially performed.
According to the present invention, because the secret keys of the clients (decryption devices) are a function of the hash values of the IDs thereof, the origin of the leak when a secret key is leaked can be traced. Further, the parameters P and Q of the secrets and the numbers of the secrets are kept secure by a discrete logarithm problem on an elliptic curve. In addition, an attacker is unable to falsify a header that fulfils the same role as that of the first component H1 of the legitimate header in accordance with the secret key or the like of a client that drops out. Therefore, even when a client drops out, there is no need to modify the system parameters, or the secret key of a regular decryption device, or the like.
A terminal secret key generator 16 transforms the ID (IDi) of individual clients into hash values Ii by means of a hash function h. Here, i is the number of the client. A polynomial whose coefficients are determined by the hash value Ii, having a variable s that is a secret element of the integer ring Z/nZ, is denoted by f(Ii). For the sake of simplification, f(Ii)=s+Ii is here. Further, the secret key Ki for each client is determined by Ki=(s+Ii)−1P=f (Ii)−1P. The secret key Ki is an element of the n torsion group on the elliptic curve E(Fq) and, because it is an individual parameter for each client, when the leaked secret key Ki is established, it is possible to confirm which client the secret key has been leaked by.
The public key generator 18 comprises an encryption public key generator 19 and a decryption public key generator 20, where the encryption public key generator 19 calculates the element R-rQ of the n torsion group on the elliptic curve by means of the element Q of the secret and the number r of the secret. Thereafter, where Ri=siR, the respective components of RI to RN are determined and these are arranged in the order of RI to RN to produce a public vector Rv. In the drawings, vectors are represented by bold characters and, in the specification, vectors are denoted with the subscript v. The encryption public key generator 19 otherwise determines the element rP of the n torsion group on the elliptic curve from the number r of secrets and the element P and uses the pairing en to determine y=en(P, Q)r=en(rP, Q)=en(P, rQ). The decryption public key generator 20 determines Qi=siQ(i=1 to N−1) and determines vector Qv which consists of component Qi. Qi is an element of the n torsion group on the elliptic curve.
The public board 8 comprises a home page or the like enabling the sender 6 and encryption device 10 to obtain public keys, and a public parameter store 21 stores the parameters n, E (Fq), h, en(,), and N. An encryption public key store 22 stores the public keys R, rP, y, and Rv for encryption. A decryption public key store 23 stores a decryption public key Qv for decryption. A terminal secret key generator 16 acquires an ID from a decryption device 10 and sends the secret key Ki for each terminal to the decryption device 10.
The structure of the encryption device 6 is shown in
The process for generating the coefficients ci will now be illustrated. Supposing that j=2, the value of register f0 is I1·I2, the value of register f1 is I2+I1, and the value of register f2 is I1. The value of register f3 is 1 and the values of registers f4 to IN remain zero. For j=3, the value of register f0 is I1·I2·I3, the value of register f1 is (I1+I2)I3+I1·I2, the value of register f3 is I3+(I1+I2), the value of register f4 is 1, and the values of registers f5 to fN remain zero. Likewise thereafter, the processing is continued until j=N, and the value of the register fN is 1; the value of register fN−1 is I1+I2+ . . . +IN. The expansion coefficients are likewise obtained; the value of register f0 is I1·I2·I3 . . . IN. Since the coefficients ci are produced sequentially, they are obtained with a relatively short computation time.
Supposing that g=Πj=1−N,j≠i(s+Ij)−Πj=1−N,j≠iIj, then, B=en(H2, gQ), the hash values I1 to IN are contained in the third component H3 of the header, and the value of siQ(j=1−N−1) is published as the decryption public key Qv. Hence, Πj=1−N,j≠i(s+Ij)Q−Πj=1−N,j≠iIjQ)=gQ is used for the pairing can be calculated, but g containing the secret number s can therefore not be calculated. The calculation for gQ is performed by the coefficient generator 58.
Because H2=krP, B can be calculated by B=en(P,Q)rk(Πj=1−N,j≠i(s+Ij)−Πj=1−N,j≠iIj)=en(P,Q)rkg.
A calculator 55 comprises a divider 56 and a power calculator 57, and A is divided by B by the divider 56. In cases where B−1 is determined by the pairing calculator 54, that is, B−1=en (H2, Πj=1−N,j≠iIjQ−Πj=1−N,j≠i(s+Ij)Q), a multiplier may be used in place of the divider to determine A·B−1. A/B=en(P,Q)rkΠj=1−N,j≠i Ij=KsΠj=1−N,j≠i Ij, and Πj=1−N,j≠iIj−1 can be determined from the third component H3 of the header. Hence, (A/B)Πj=1−N,j≠i Ij−1 is determined by the power calculator 57 and it is the session key Ks. en(P,Q)rkΠjεS Ij can also be used as the session key Ks, in which case the session key can also be determined by (A/B)Ii.
Although, in this embodiment, a situation where all the clients supplied with a secret key Ki can decrypt has been described, a situation where only those clients who belong to a partial set T of set S can decrypt is also possible. In this case, the first component H1 of header is H1=kΠiεT(S+Ii)R and the third component H3 is T. Further, A=en(Ki,H1)=en((s+Ii)−1P,kΠjεT,j≠i(s+Ii)R) and B=en(H2,ΠjεT,j≠i(s+Ij)Q−ΠjεT,j≠iIjQ). Thus, the terminals that can decrypt can be changed dynamically. The security mechanism of the embodiment is shown in Table 4.
Number | Date | Country | Kind |
---|---|---|---|
2007-147784 | Jun 2007 | JP | national |