The present invention relates to improving aspects of usage of bilinear mappings in cryptographic applications.
The applicability of bilinear mappings to cryptography has been known for some time, particularly for elliptic curve cryptography. To facilitate an understanding of the present invention, a brief review of such bilinear mappings is given below, this review also defining various symbols and terminology used throughout the specification.
In the present specification, G1 and G2 denote two additive groups with elements defined in a ground field GF(q) or an extension field GF(qk) where q is some power of prime p and k is an integer, and G3 denotes a subgroup of a multiplicative group of GF(qk)* where the superscripted star indicates exclusion of the zero value. The groups G1, G2 and G3 are such that there exists a computable bilinear mapping p relating elements in the additive groups G1, G2 to elements in the multiplicative group G3. This bilinear mapping is, for example, a Tate pairing for which:
p: G1×G2→G3
As is well known to persons skilled in the art, for cryptographic purposes, a modified form of the Tate pairing is used that ensures p(P,P)≠1 where PεG1 and PεG2; however, for convenience, the Tate pairing is referred to below simply by its usual name without labeling it as modified.
Generally, though not necessarily, the elements of the groups G1 and G2 are points on an elliptic curve E (typically, a supersingular elliptic curve) defined over the ground field GF(q) or the extension field GF(qk). In this case, G1 is a [l]-torsion subgroup of the group G2 and satisfies [l]P=O for all PεG1 where O is the identity element, l is a large prime, and l*cofactor=number of points in G2; additionally, the value of k is the smallest integer for which l|(qk−1). Both G1 and G3 are of prime order l.
For convenience, the examples given hereinafter will assume that the elements of G1 and G2 are points on an elliptic curve.
As the mapping p between the additive groups G1 and G2, and the multiplicative group G3 is bilinear, then for P, Q, R in the appropriate additive group, both:
p(P+Q,R)=p(P,R)*p(Q,R)
p(P,Q+R)=p(P,Q)*p(P,R)
Furthermore, exponents/multipliers can be moved around. Thus, where [a]P represents the scalar multiplication of point P by an integer a (that is, P added to itself a times), then for integers a, b, c εZl:
As is well known to persons skilled in the art, the computation of the Tate pairing is effected as follows
p(P,Q)=f(P,Q)e
where f( ) is a predetermined function, and epub is an exponent formed from known parameters—more particularly:
epub=(qk−1)/l
Further background regarding the application of bilinear maps (and, in particular, the Tate pairing) to cryptographic uses (such as for encryption and signing) can be found in the following references:
The computation and transmission of the results of bilinear mappings in cryptographic applications can place significant demands on the resources of the entities involved particularly in the case of entities with limited resources such as smartcards and mobile telephones.
It is an object of the present invention to provide improvements in how bilinear mappings are implemented in cryptographic applications, particularly by entities with limited resources.
According to one aspect of the present invention, there is provided a cryptographic method comprising computing a first non-degenerate bilinear mapping of a first pair of elements one of which is formed by or from a secret of a first entity, the first mapping being computable by applying a predetermined function to said elements and then exponentiating the result with a known exponent; wherein the first mapping is computed by:
According to another aspect of the present invention, there is provided a computational entity for use in a cryptographic method involving computation of a non-degenerate bilinear mapping of two elements by applying a predetermined function to said elements and then exponentiating the result with a known exponent; the entity comprising
Embodiments of the invention will now be described, by way of non-limiting example, with reference to the accompanying diagrammatic drawings, in which:
In the following, the splitting of the computation of a non-degenerate bilinear map between two entities is described for the case of the bilinear map being a Tate pairing applied to elements in the form of points on an elliptic curve. The terminology, symbols and mathematical background introduced above are to be taken as applying to the embodiments of the invention described below. In particular, the computation of a Tate pairing for points P and Q is taken to be computable as:
p(P,Q)=f(P,Q)e
where f( ) is a predetermined function, and epub is an exponent formed from known parameters—more particularly:
epub=(qk−1)/l
where q, k and l have the meanings given them hereinbefore.
In the first and second embodiments of the invention described below with respect to
With regard to the points P1 and Q1 involved in the first mapping, one of these points comprises a secret held by entity A. Were this not the case, any concerns over the computational loading of entity A could easily be satisfied by exporting the points P1 and Q1 to entity B for the latter to carry out computation of the first mapping. The secret held by the entity A can be a secret point, or a secret precursor used by the entity A to form the secret point each time it is required for the first mapping. For example, the secret precursor could be a secret string which the entity A converts to a point using a mapToPoint function, such functions being known per se. The precursor could, alternatively, be a secret integer from which the entity A generates one of the points P1, Q1 by scalar multiplication with a non-secret point.
The context of the first and second embodiments is cryptographic usage of bilinear mappings but other usages are possible.
Turning now to a more detailed consideration of the first embodiment, as illustrated in
i1=f(P1,Q1)
This intermediate result is then used as the output v passed to entity B. The entity B then completes the computation of the first bilinear map by exponentiating the received quantity v by the aforesaid known exponent epub to generate the result m1 of the first mapping:
m1=ve
In this way, the entity A is relieved of part (up to 30%) of the computational load involved in computing the first bilinear map; however, the secret held by entity A and used for one of the points P1, Q1 has not been revealed because entity A has carried out the first stage of computing the mapping.
To increase the security of transmission of the partial computation result from entity A to entity B, entity A can blind this result before it is used as the output v. This is illustrated in
v=z·i1
where z εZ*p.
The blinding is automatically removed by the entity B when it exponentiates the quantity v by the exponent epub without the need to take any other action. The reason for this is that: z raised to the power (qk−1)/l=1. Whilst this is generally true, it can be readily shown for the case of working in characteristic p (that is, the elements of GF(q) are integers mod p) since in this case k=2 and the term (qk−1) becomes (p+1)(p−1) with the consequence that z raised to the power (qk−1)/l includes a term z(p−1); since the computation is being done mod p:
z(p−1)=1 mod p
by Fermat's Little Theorem whereby regardless of any remaining term of the exponentiation of z, the result will be 1.
Frequently, in cryptographic authentication applications the entity B will compute a second mapping and compare it with the result of the first mapping. Such an arrangement is illustrated in
m2=f(P2,Q2)e
the entity B then comparing the values of m1 and m2 (operation 17) to check if they are equal.
It can be seen that in the course of the computation effected by the entity B, both the quantity v and the intermediate result f(P2,Q2) formed during operation 16, are subject to exponentiation by the exponent epub. In fact, as is illustrated in
This reduces the computational loading of entity B by 20%-30% as only a single exponentiation is now required.
The second embodiment of the invention differs from the first embodiment in that in the second embodiment, entity A effects exponentiation by a component e1 of the exponent epub, entity B being left to complete the exponentiation using a complementary component exponent e2 where:
e1*e2=epub
This is illustrated in
v=i1e
Entity B then computes m1 in operation 23 as:
m1=ve
An advantageous split of the exponent epub into two components e1 and e2 is achieved when e2 is set to the value of the ‘cofactor’ in the above-mentioned relationship:
l*cofactor=number of points in G2
This gives rise to the result of the computation i1e
a+σb
where ‘σ’ indicates a second dimension. The output v produced by the computation effected by entity A is the element ‘a’ and the parity of the element ‘b’. The entity B re-forms i1e
It is noted that the extra computational workload placed on entity A by the partial exponentiation effected in the
p+1=l*cofactor
so that:
e1=epub/e2=(p2−1)/l*cofactor=((p−1)(p+1))/(p+1)=(p−1)
Furthermore, it is known that (i1)p is the complex conjugate of (i1) so that it possible to compute (i1)p−1 as the complex conjugate of (i1) divided by (i1).
It will be appreciated that as for the entity B in the versions of the first embodiment illustrated in
where i1e
The interface block 31 comprises a data input channel 33, a data output channel 34, and an access security entity 35. The interface block 31 is adapted to permit the smartcard 30 to be coupled with a smartcard interface provided on other apparatus. The access security entity 35 is, for example, implemented to require the input of a PIN code before allowing use of the smartcard 30, this code being input by a user via apparatus with which the smartcard is operatively coupled.
The input channel 33 is arranged to receive a point on an elliptic curve whilst the output channel 34 is arranged to provide the output v.
The cryptographic block 32 of the smartcard 30 comprises a non-volatile memory 36 for holding a secret point SA, and processing block 37 for computing the aforesaid predetermined function f( ) as applied to the point received over the input channel 33 and the secret point SA. The processing block 37 is arranged to output the result of its computation on the output channel 34.
The secret point SA is, for example, installed at the time of manufacture of the smartcard 30 or subsequently downloaded through a one-time download mechanism built into the card. The secret point SA is typically generated by a trusted authority. However, where appropriate for the target application of the smartcard 30, it is also possible to have the smartcard internally generate the secret point SA, for example, by applying a mapToPoint function to a randomly generated string. As previously mentioned, rather than storing a secret point SA, the smartcard 30 can be arranged to store a secret precursor from which a point can be formed as and when required.
Four example cryptographic applications of embodiments of the invention will now be described with reference to
The
More particularly, the trusted authority 45 has a secret s, a first public point P and a second public point R formed as R=[s]P. As well as publishing the points P and R, the trusted authority also publishes E, GF(q), k, GF(qk), and a mapToPoint hash function H1 where:
H1: {0,1)*→G2
Publication of the system parameters is not needed if the trusted authority knows that the entities already possess these parameters or can obtain them from some other source. The published parameters enables any recipient party to determine epub; alternatively, epub can be included as such in the published parameters.
The secret point SA stored in the smartcard 30 is derived by the trusted authority 45 as:
SA=[S]QA
where:
QA=H1(IDA)
The smartcard 30 when interfaced with the card terminal 41 and enabled by the input of an appropriate PIN via a keypad 43 of the terminal, can communicate (for example, over a network, not shown) with the remote computer 40 (entity B). In order to authenticate the smartcard 30, the remote computer 40 issues a challenge to which the smartcard must respond correctly for the remote computer to trust that the smartcard is associated with the identifier IDA, this identifier having either been provided to the remote computer A in advance of the challenge-response exchange, or along with the response issued by the smartcard 30. The steps of the challenge-response mechanism are set out below, with the step numbering being the same as that shown in
Challenge by Authenticator Entity B (Remote System 40)
Response by Prover Entity A (Smartcard 30)
Verification by Authenticating Entity B (Remote System 40)
That the first mapping computed in steps 4 and 6 should equal the second mapping computed in step 8 if the correct secret point SA is used by smartcard 30 in step 4, can be readily shown:
the first mapping is: p(U,SA)=p([r]P,[s]QA)=p(P,QA)rs
the second mapping is: p(R,[r]QA)=p([s]P,[r]QA)=p(P,QA)sr
In a variant of the
That the first mapping computed in steps 4 and 6 of this variant of the
the first mapping is: p(U,SA)=p([r][s]P,[1/s]QA)=p(P,QA)r
the second mapping is: p(P,[r]QA)=p(P,QA)r
The
However, in contrast to the
SA=[1/(a+s)]Q
where Q is a third public point established by the trusted authority 45. This manner of deriving a point from an identifier string is described in the paper by N. McCullagh, P. Barreto entitled “Efficient and Forward-Secure Identity-Based Signcryption”, May 2004, locatable in the IACR e-print archive http://eprint.iacr.org.
The trusted authority publishes the points P, Q and R (=[s]P) as well as the other system parameters E, GF(q), k, GF(qk), and the hash function H2.
The steps of the
Challenge by Authenticator Entity B (Remote System 40)
Response by Prover Entity A (Smartcard 30)
Verification by Authenticating Entity B (Remote System 40)
That the first mapping computed in steps 5 and 7 of the
In the foregoing example, A's secret point SA was generated as SA=[1/(a+s)]Q. In fact, following McCullagh and Barreto, the denominator (a+s) can be generalised to any polynomial in s. In this case, the
U=[r]([a]P+2R2+5R3)
In a variant of the
That the first mapping computed in steps 5 and 7 of this variant of the
The identifier-based authentication methods disclosed above with reference to
For the
The
As in the preceding examples, the entity A takes the form of a smartcard 39 though the form of this smartcard is different from the card 30 used in the preceding examples as now the secret (private key) held by the smartcard 39 takes the form of a number rather than a point. The processing effected by smartcard 39 is also different to that carried out by card 30 as will be seen hereinafter.
As with the smartcard 30 in the applications of
The steps of the
Challenge by Authenticator Entity B (Remote System 40)
Response by Prover Entity A (Smartcard 39)
Verification by Authenticating Entity B (Remote System 40)
That the first mapping computed in steps 4 and 6 of the
the first mapping is: p([1/s]U,P)=p([1/s][r][s]P,P)=p(P,P)r
the second mapping is: p(P,[r]P)=p(P,P)r
The fourth cryptographic application, depicted in
SA=[s]QA=[s]H1(IDA)
where H1 is the hash function mentioned above in relation to the
When an encryptor entity C with computer 50 wishes to send a message t securely to the party controlling the smartcard 30, the encryptor entity C obtains, in any suitable manner trusted by the encryptor entity, the public key IDA of the intended recipient. The encryption process then proceeds as follows (the step numbering being that used in
Message Encryption by Encryptor (Computer 50)
Message Decryption by Decryptor Entities A and B (Smartcard 30 and Computer 51)
To decrypt the message, the recipient inserts smartcard 30 into an appropriate interface of computer 51 and enables the smartcard by entering the PIN via the keyboard of the computer 51. Decryption then proceeds as follows:
The general form of the encryption-decryption algorithm is known but not the split of computation between entities A and B for deriving the mapping result m4.
That the mapping computed in step 4 should equal the second mapping computed in steps 9 and 11 if the correct secret point SA is used by smartcard 30 in step 9, can be readily shown:
step 4 mapping is: p(R,[r]QA)=p([s]P,[r]QA)=p(P,QA)sr
steps 9 & 11 mapping is: p(U,SA)=p([r]P,sQA)=p(P,QA)rs
By effecting partial computation of the mapping p(U,SA) within the smartcard 30, the secret SA is not revealed to the computer 51 so that the party controlling the smartcard may be willing to use a less secure computer 51 than if the computer had to use the secret SA to effect decryption.
It will be appreciated that many variants are possible to the above described embodiments of the invention. In particular, rather than the elements such as P1, Q1 and P2, Q2 being points on an elliptic curve, they could be any elements with the appropriate mathematical properties enabling a non-degenerate computable bilinear map to be provided. It is also to be understood that the present invention is not limited to the Tate pairing and can be applied to any bilinear mapping computable as a predetermined function of the elements concerned followed by an exponentiation of the result.
It will be further appreciated that whilst certain explanatory passages given above have been given with examples working in characteristic p, this is not intended to limit the scope of the present invention and working in other characteristics, such as characteristic 2 or characteristic 3 is also possible.
Although only the entity A of the
With regard to the four cryptographic applications described above with reference to
Number | Date | Country | Kind |
---|---|---|---|
PCT/IT2004/000723 | Dec 2004 | WO | international |
Number | Name | Date | Kind |
---|---|---|---|
7113594 | Boneh et al. | Sep 2006 | B2 |
7120311 | Snyder | Oct 2006 | B2 |
7239701 | Ogishi et al. | Jul 2007 | B1 |
7481363 | Zuili | Jan 2009 | B2 |
7587605 | Venkatesan et al. | Sep 2009 | B1 |
7590236 | Boneh et al. | Sep 2009 | B1 |
7594261 | Lauter et al. | Sep 2009 | B2 |
7634087 | Boneh et al. | Dec 2009 | B2 |
7639799 | Lauter et al. | Dec 2009 | B2 |
7769167 | Eisentraeger et al. | Aug 2010 | B2 |
20020021803 | Solinas | Feb 2002 | A1 |
20020073316 | Collins et al. | Jun 2002 | A1 |
20030081785 | Boneh et al. | May 2003 | A1 |
20030179950 | Komura et al. | Sep 2003 | A1 |
20040064700 | Kim et al. | Apr 2004 | A1 |
20040123098 | Chen et al. | Jun 2004 | A1 |
20040131191 | Chen et al. | Jul 2004 | A1 |
20040139029 | Zhang et al. | Jul 2004 | A1 |
20050036609 | Eisentraeger et al. | Feb 2005 | A1 |
20050038755 | Silverbook et al. | Feb 2005 | A1 |
20050262354 | Komano | Nov 2005 | A1 |
Number | Date | Country |
---|---|---|
1 379 024 | Jan 2004 | EP |
WO03017559 | Feb 2003 | WO |
Number | Date | Country | |
---|---|---|---|
20080016346 A1 | Jan 2008 | US |