Embodiments of the invention will now be described, by way of example only, with reference to the following diagrams wherein:
The inventors have envisaged that it is feasible to provide digital certification functionality based on polynomials. Such an approach is potentially cheaper to implement than aforementioned public key techniques, and is capable of providing further benefits of more flexibility than aforementioned symmetrical key techniques which require an on-line server.
In overview, the invention concerns a method of providing digital certification functionality as depicted in
In a first step of the method, the CA 20 chooses or generates a random secret P. The CA 20 then uses the secret P to sign a publicly disclosed string mA on behalf of the first device A 30, whereafter the CA 20 secretly communicates the signed string mA to the first device A 30 as depicted by an arrow 50 in
In a second step of the method, the second device B 40 obtains some secret information denoted by an arrow 60 from the CA 20 and thereby enabling the second device B 40 to generate a key KAB to implicitly or explicitly verify the authenticity of the string mA.
In a third step of the method, the first device A 30, by using some publicly available information 70 on the second device B 40, is operable to generate the key KAB provided that the string mA used by the device B is authentic.
In a fourth step of the method, the second device B 40 uses its key KAB to protect data (INFO) communicated as denoted by an arrow 80 from the second device B 40 to the first device A 30. The first device A 30 is operable to employ its key KAB to access the data (INFO).
Although
In Blom's scheme, a network has N users, and every message transmitted in the network is enciphered with a key of M bits, said key being unique for each pair of source-destination users involved. The scheme is operable to construct a key scheme that requires storage of a least possible number of bits at each user. In the scheme, the number of bits required is referred as the size of the user storage denoted by S. When there are N users in the network such that each user is defined by a unique user number i in a range of 0 to N−1, a user address ai of user i is expressible as a vector as described in Equation 5 (Eq. 5):
a
i=(ai0,ai1, . . . ,ai(l−1)) Eq. 5
where 1=logb(N) and wherein user numbers in a radix b are included as described by Equation 6 (Eq. 6):
There is also defined cumulative functions f according to Equations 7 to 9 (Eq. 7 to 9):
f
m(x,y)−fm(y,x) Eq. 7
wherein
x,yε{0,1,2, . . . ,b−1} Eq. 8
mε{0, . . . ,l−1} Eq. 9
In Blom's scheme, a key kij for communication between users i and j is then described by Equation 10 (Eq. 10):
wherein it is assumed that functions fm(.,.) have subsets of the Galois field GF(2M) as their respective range of values and do not have any other property than commutativity. In calculating keys kij according to Blom's scheme, the user i always uses fm(aim,.) and thus only has to store b values for each function.
The Blom's scheme uses a polynomial p(x,y) in the Galois field GF(q), the polynomial p(x, y) having a property that p(x,y)=p(y, x) and that each user is associated with an unique element i in the Galois field GF(q) where the element i is useable to identify the user. It is also assumed that q is in the order of 2M for representing the elements of the Galois field GF(q) with M bits. To generate a key for users i and j, the polynomial p(i, j) is evaluated. Thus, a specific user i only needs to know the polynomial p(i, y) so that each user only knows a part of the total polynomial, the polynomial being defined by Equation 11 (Eq. 11):
p(x,y)=(x0,x1, . . . ,xn−1)A(y0,y1, . . . ,yn−1)T Eq. 11
wherein A is a symmetrical n×n element matrix.
Each user only has to store n coefficients in the form of the vector bi as described by Equation 12 (Eq. 12):
b
i=(i0,i1, . . . ,in−1)A Eq. 12
Calculation of the key kij then involves firstly calculating (j0, j1, . . . ,jn−1) and then performing scalar multiplication of this vector and the vector bi.
The present invention employs certificate functionality based on polynomials, for example as utilized in Blom's scheme. In general terms, as depicted in
In
After the aforementioned set-up phase, if the device B explicitly wants to verify the authenticity of a version of the string mA in its possession, for example as depicted in
On reception of the encryption E(kAB, r), the device A evaluates the polynomial P(mA, x) wherein x=b in order to obtain a derived key k′AB=P(mA, b). Next, the device A then sends a number r′=D(kAB′, E(kAB, r)) to the device B wherein D denotes decryption. The device B then only accepts the authenticity of mA provided that the numbers r=r′ as verification. In such verification after the set-up phase, the CA is not involved, although the device A is required to be available on-line.
As depicted in
Upon receipt of the encryption, the device A computes a key “kAB′=P(mA, b) and then computes the content as “X′=D(kAB′, E(kAB, X)”. In a situation where the string mAused by the device B is authentic, the device A will compute a proper value for the key, namely the keys kAB and kAB′ will correspond, so the device A is able to access the information X. Conversely, in an event of mA being modified to the string mA′, the device B will not be able to verify explicitly the authenticity of mA′ but will generate a key kAB′=P(b, mA′) and use it to encrypt the information X; on account of properties of the Blom's scheme incorporated into the present invention, the device A will not be able to compute the key kAB′ knowing only mA′ and P(mA, X) and the device B then implicitly verifies the authenticity of the string mA. In both cases, the device A is able to verify authenticity provided that the device B is the originator of the messages, for example B adds a Message Authentication Code to the message sent to the device A.
Whereas
The invention as described in the foregoing superficially resembles public key certificates in the respect that on-line access to the CA 20 is not required to certify authenticity of the string mA. On account of Blom's scheme being preferably utilized in the present invention, a modified string mA arising in interaction between the two devices A, B will result in a failed authenticity check in a similar manner to normal public key certificates. However, there are significant differences between the present invention and public key certificate systems.
In schemes illustrated in
Moreover, the schemes of
In schemes of
The invention illustrated in
An advantage of using Blom's scheme in the present invention is that a value used to evaluate for the certificate P(y, x) can be chosen arbitrarily and hence allows any information to be stored in this value. Moreover, this value is public and therefore serves substantially as a public key. Moreover, Blom's scheme when employed in the present invention is computationally simpler than using the IBE.
It will be appreciated that embodiments of the invention described in the foregoing are susceptible to being modified without departing from the scope of the invention as defined by the accompanying claims.
In the present invention depicted in
Thus, in the context of the present invention, the string mA is used to store information which should be verifiable. In many practical situations, it is not practical to store information, for example program content, directly in the string mA as it would render the string inconveniently long. In order to address such a problem of unwieldy string size, it is preferably that the string includes a down-sized edited version, also known as a “digest”, of the information as described by Equation 13 (Eq. 13):
m=h(mD1) Eq. 13
using the aforementioned one-way hash function.
A further embodiment of the invention will be described, the embodiment utilizing certification functionality as described in the foregoing.
In
Operation of the system 200 will now be described with reference to
In the system 200, the device D1300 obtains, for example by payment, right to play program content denoted by C1, C2 and C3 up to a certain time limit T1. Similarly, the device D2 obtains, for example also by payment, rights to play the content C1 and C2 up to certain time T2. Moreover, the device D3 obtains rights to play the content C2 up to a time T3. Acquiring these rights for the devices D1, D2, D3 enables the devices to receive publicly corresponding data content strings mD1, mD2, mD3 respectively as conveniently described by Equations 14, 15 and 16 (Eqs. 14, 15 and 16) and also included in FIG. 5:
m
D1
=D1∥RC1∥RC2∥RC3∥T1 Eq. 14
m
D2
=D2∥RC1∥RC2∥T2 Eq. 15
m
D3
=D3∥RC2∥T3 Eq. 16
where ∥ denotes concatenation. In association with publicly receiving the strings mD1, mD2, mD3, the devices D1, D2, D3 also secretly receive corresponding polynomials P(h(mD1), x), P(h(mD2), x), P(h(mD3), x) respectively, wherein P(y, x) is a random symmetrical polynomial of sufficiently high degree as described in the foregoing, the polynomials for the devices D1, D2, D3 being chosen by the Content Rights Authority (CRA 210).
The CRA 210 accepts the CM1, CM2 are trusted servers and they secretly receive polynomials P(h(CM1),x), P(h(CM2),x) respectively, both of these servers storing the contents C1, C2, C3.
In operation, the device D1 sends a request to CM1 for the content C3. This request includes a reference to the requested content, namely IDC3, and also the string mD1 as provided in Equation 14. Upon reception of this request, CM1 220 verifies if rights RC3 for the requested content C3 is comprised in the content string mD1 and also verifies whether of not the time at which the request is sent is earlier than the time T1. If all checks made in association with the request from the device D1300 are found to be valid, the CM1 220 performs the following steps:
(a) the CM1 220 computes a down-sized edited version of the string mD1, namely a string m=h(mD1);
(b) the CM1 220 evaluates a polynomial P(h(CM1),x) wherein x=m from (a) above to obtain a polynomial decryption key K;
(c) the CM1 220 computes an encrypted version of the content C3 using the K from (b) above, namely E(K, C3);
(d) the CM1 220 sends the encrypted version E(K, C3) of the content C3 to the device D1300.
Upon receipt at the device D1300 of encrypted data E(K, C3) sent from CM1 220, the device D1300 evaluates a polynomial P(h(mD1), x) wherein x=h(CM1) to obtain a decryption key K′. Next, the device D1 processes the encrypted data E(K, C3) to derive a decrypted version C3′ of the data content C3 according to Equation 17 (Eq. 17):
C
3
=D(K′,E(K,C3)) Eq. 17
Assuming that the device D2 310 requests the content C3 from CM2 230, the device D2 does not have rights to the data content C3. When CM2 receives the request for the content C3 and the string mD2=D2∥RC1∥RC2∥T2, CM2 will notice that RC3 is not part of mD2 and therefore it will not send the data content C3 to the device D2 310. Clearly, the device D2 310 could send a modified string m′D2=D2∥RC1∥RC3∥T2 to CM2. CM2 will accept this modified string, evaluate P(h(CM2),x) in x=h(m′D2) to obtain the key K′ and send E(K′, C3) to the device D2. However, the device D2 will not be able to compute the key K′ when it has access only to the polynomial P(h(mD2), x). Therefore, it is not possible for the device D2 310 to decrypt the received content. Moreover, it is substantially impossible for the device D2 310 to modify its content rights and gain access to the content C3.
Clearly, in the system 200, every device D can request content from every CM and the CM will be able to explicitly or implicitly verify content rights. In the system 200, similarly in other related systems using public key security techniques, the CRA 210 only plays a role in issuing content rights not required on-line during content delivery. The devices D cannot modify content rights or the expiry time because they then cannot generate keys used by the CM's to encrypt or decrypt content.
In the accompanying claims, numerals and other symbols included within brackets are included to assist understanding of the claims and are not intended to limit the scope of the claims in any way.
Expressions such as “comprise”, “include”, “incorporate”, “contain”, “is” and “have” are to be construed in a non-exclusive manner when interpreting the description and its associated claims, namely construed to allow for other items or components which are not explicitly defined also to be present. Reference to the singular is also to be construed to be a reference to the plural and vice versa.
Number | Date | Country | Kind |
---|---|---|---|
04103254.1 | Jul 2004 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB05/52224 | 7/4/2005 | WO | 00 | 1/3/2007 |