The present invention relates to smartcards with cryptographic functionality and to methods and systems using such smartcards to provide cryptographic services in an organisation.
As used herein, the term “organisation” is intended to cover any formal or informal body such as a commercial enterprise, interest group, international organisation or country. Furthermore, the term “smartcard” as used herein is intended to include any small-sized object (such as a credit-card sized object) incorporating processing functionality, usually on a single chip, that is externally accessible by any suitable interface whether using physical contacts or non-contact means such as inductive, capacitive, photoelectric or the like. The processing functionality can be based on a program-controlled processor or dedicated circuitry. A smartcard can be powered in any suitable manner such as by an external source via physical contacts, by an on-card power source, by inductive coupling, or by a photo-voltaic arrangement. As is well known, a smartcard will normally include both volatile and non-volatile memory. Where the memory is used to store secrets, at least the memory should be tamper resistant/tamper proof.
In many organisations, a variety of cryptographic functions are used to secure processes operated by the organisation, these functions including, for example, authentication, digital signatures, key generation, etc. These cryptographic functions generally involve use of a secret associated with a user who may either be representing themselves or a particular entity within the organisation.
Where only a single cryptographic function is required, it is convenient to provide the user's secret, and associated cryptographic functionality for using the secret, on a smartcard that the user can carry around. Provision of the cryptographic functionality on the smartcard is necessary in order to ensure that the secret is never required to be exported off the card.
Presently, most available smartcards are single function cards, such as a smartcard used for secure storage, a smartcard used for entity authentication, a smart card used for digital signature, a smartcard used for decryption or so on.
Where a user is required to be involved in the use of multiple different cryptographic functions, as may well be the case in a large organisation, it becomes inconvenient and expensive to provide a respective smartcard for each cryptographic function to be implemented.
Accordingly, it has been proposed to provide a smartcard with multiple fixed functions, each function operating independently of the other functions. One example is described in U.S. A-2,002,0100808, titled “Smart card having multiple controlled access electronic pockets” and filed on Nov. 30, 2001. This document describes a multifunction smartcard having a purse with a plurality of pockets capable of registering a stored value limited to a predetermined purpose.
Using this approach to provide a smartcard for use in providing multiple cryptographic functions is too expensive and complex as it requires the smartcard to generate and hold a number of different keys each for one specific purpose.
It is an object of the present invention to provide a smartcard that can be used in providing multiple cryptographic services yet is less expensive and complex than previously-proposed solutions.
As will become apparent hereinafter, embodiments of the present invention make use of cryptographic techniques using bilinear mappings. Accordingly, a brief description will now be given of certain such prior art techniques.
In the present specification, G1 and G2 denote two algebraic groups of large prime order l in which the discrete logarithm problem is believed to be hard and for which there exists a non-degenerate computable bilinear map p, for example, a Tate pairing or Weil pairing. Note that G1 is a [l]-torsion subgroup of a larger algebraic group G0 and satisfies [l]P=O for all PεG1 where 0 is the identity element, l is a large prime, and l*cofactor=number of elements in G0. The group G2 is a subgroup of a multiplicative group of a finite field.
For the Weil pairing: the bilinear map p is expressed as
p: G1×G1→G2.
The Tate pairing can be similarly expressed though it is possible for it to be of asymmetric form:
p: G1×G0→G2
Generally, the elements of the groups G0 and G1 are points on an elliptic curve (typically, though not necessarily, a supersingular elliptic curve); however, this is not necessarily the case.
As is well known to persons skilled in the art, for cryptographic purposes, modified forms of the Weil and Tate pairings are used that ensure p(P,P)≈1 where PεG1; however, for convenience, the pairings are referred to below simply by their usual names without labeling them as modified. Further background regarding Weil and Tate pairings and their cryptographic uses can be found in the following references:
For convenience, the examples given below assume the use of a symmetric bilinear map (p: G1×G1→G2) with the elements of G1 being points on an elliptic curve; however, these particularities, are not to be taken as limitations on the scope of the present invention.
As the mapping between G1 and G2 is bilinear, exponents/multipliers can be moved around. For example if a, b, cεZ (where Z is the set of all integers) and P, QεG1 then
Additionally, the following cryptographic hash functions are defined:
H1: {0,1)*→G1
H2 {0,1)*→Z*l
H3: G2→{0,1)*
The function H1( ) is often referred to as the mapToPoint function as it serves to convert a string input to a point on the elliptic curve being used.
A normal public/private key pair can be defined for a trusted authority:
Additionally, an identifier based public key/private key pair can be defined for a party with the cooperation of the trusted authority. As is well known to persons skilled in the art, in “identifier-based” cryptographic methods a public, cryptographically unconstrained, string is used in conjunction with public data of a trusted authority to carry out tasks such as data encryption or signing. The complementary tasks, such as decryption and signature verification, require the involvement of the trusted authority to carry out computation based on the public string and its own private data In message-signing applications and frequently also in message encryption applications, the string serves to “identify” a party (the sender in signing applications, the intended recipient in encryption applications); this has given rise to the use of the label “identifier-based” or “identity-based” generally for these cryptographic methods. However, at least in certain encryption applications, the string may serve a different purpose to that of identifying the intended recipient and, indeed, may be an arbitrary string having no other purpose than to form the basis of the cryptographic processes. Accordingly, the use of the term “identifier-based” herein in relation to cryptographic methods and systems is to be understood simply as implying that the methods and systems are based on the use of a cryptographically unconstrained string whether or not the string serves to identify the intended recipient. Furthermore, as used herein the term “string” is simply intended to imply an ordered series of bits whether derived from a character string, a serialized image bit map, a digitized sound signal, or any other data source.
In the present case, the identifier-based public/private key pair defined for the party has a public key QID and private key SID where QID, SIDεG1. The trusted authority's normal public/private key pair (P,R/s) is linked with the identifier-based public/private key by
SID=sQID and QID=H1 (ID)
where ID is the identifier string for the party.
Some typical uses for the above described key pairs will now be given with reference to
Short Signatures (see dashed box 2): The holder of the private key s (that is, the trusted authority 1 or anyone to whom the latter has disclosed s) can use s to sign a bit string; more particularly, where m denotes a message to be signed, the holder of s computes:
V=sH1(m).
Verification by party A involves this party checking that the following equation is satisfied:
p(P,V)=p(R, H1(m))
This is based upon the mapping between G1 and G2 being bilinear exponents/multipliers, as described above. That is to say,
Further description of short signatures of this form can be found in “Short signatures from the Weil pairing”, Boneh, D., B. Lynn, and H. Shacham, in Advances in Cryptology—ASIACRYPT '01, LNCS 2248, pages 514-532, Springer-Verlag, 2001.
Identifier-Based Encryption (see dashed box 3):—Identifier based encryption allows the holder of the private key SID of an identifier based key pair (in this case, party B) to decrypt a message sent to them encrypted (by party A) using B's public key QID.
More particularly, party A, in order to encrypt a message m, first computes:
U=rP
where r is a random element of Z*l. Next, party A computes:
V=m⊕H3(p(R, rQID))
Party A now has the ciphertext elements U and V which it sends to party B.
Decryption of the message by party B is performed by computing:
The foregoing example encryption scheme is the “Basicldent” scheme described in the above-referenced paper by D. Boneh and M. Franklin. As noted in that paper, this basic scheme is not secure against a chosen ciphertext attack (the scheme only being described to facilitate an understanding of the principles involved—a fully secure scheme is described later on in the paper and the reader should refer to the paper for details).
Identifier-Based Signatures (see dashed box 4):—Identifier based signatures using pairings can be implemented. For example:
Party B first computes:
r=p(SID, P)k
where k is a random element of Z*l.
Party B then applies the hash function H2 to m∥r (concatenation of m and r) to obtain:
h=H2(m∥r).
Thereafter party B computes
U=(k−h)SID
thus generating the output U and h as the signature on the message m.
Verification of the signature by party A can be established by computing:
r′=p(U, P)·p(QID, R)h
where the signature can only be accepted if h=H2(m∥r′).
According to a first aspect of the present invention, there is provided a method of providing cryptographic services in an organisation, the method comprising:
Each smartcard thus need only be provided with limited cryptographic functionality, the functionality provided being selected such that the stored secret is protected but can be brought into play in respect of a variety of cryptographic services. The smartcard can, in this way, be kept functionally lightweight enabling costs to be kept down. Most of the processing involved in providing the full cryptographic services is carried out off the smartcard.
According to a second aspect of the present invention, there is provided a system for providing cryptographically-protected processes in an organisation, the system comprising:
According to a third aspect of the present invention, there is provided a smartcard comprising:
Embodiments of the invention will now be described, by way of non-limiting example, with reference to the accompanying diagrammatic drawings, in which:
The departments of the organisation are interconnected by a network 25. The computers 20A and 20B are also connected to the network 25 as is a printer 21. The printer 21 has a smartcard interface by which a smartcard can be coupled to the printer.
The form of the members' smartcards will now be described with reference to the smartcard 10A of member A, the other smartcards being substantially the same. The smartcard 10A comprises an input/output interface functional block 11 and a cryptographic functional block 14 (shown in dashed outline).
The interface block 11 comprises a data input channel 30, a data output channel 31, and an access security entity 12. The interface block 11 is adapted to permit the smartcard to be coupled with a smartcard interface provided on apparatus such as the computer 20A or printer 21. The access security entity 12 is, for example, implemented to require the input of a PIN code before allowing use of the smartcard, this code being input by a user via apparatus with which the smartcard is operatively coupled.
The input channel 30 is arranged to receive an input string (generically, string str) whilst the output channel 31 is arranged to output a point on an elliptic curve (generically, point R and for smartcard 10A of member A, RA). The form in which the point RA is output can be set by entity 19 of interface block 11 to be, for example, of string form.
The cryptographic block 14 of smartcard 10A comprises the following functional entities:
The secret-generator entity 15 can be omitted if the smartcard is directly manufactured with the secret sA installed, or if provision is made for the secure loading of the secret into the memory via the interface 11.
As will be more fully described hereinafter, providing the member smartcards 10A, 10B etc. with the minimal cryptographic functionality represented by entities 16-18, permits the organisation of which A and B are members, to operate a range of cryptographically-secured processes involving various cryptographic functions such as signing, encryption, decryption.
In the
Thus, member A may have authority from the finance department to authorise expense requests. Accordingly, the finance department asks member A to provide a public key based on the string “expense authority” this being the first string of several possible strings that the finance department uses to describe the finance-related authority of members. Member A then uses their smartcard (for example, after operatively coupling it with their computer 20A) to take the string “expense authority” as the input string str and output a corresponding point RAF (the suffix F indicating that the point relates to the Finance department). Thus:
Of course, the finance department needs to be sure that it really is receiving a public key generated by A's smartcard 10A before storing this in A's record in database 32. This can be achieved in a number of ways. For example, the finance department may require A to physically attend at the finance department and present A's smartcard 10A which is then coupled to processing apparatus in the department to generate the public key. In fact, this is not necessary because provided the finance department reliably knows one public key generated by A's smartcard, it can check whether a public key purportedly generated by that card from a string provided by the department is genuine. This check is based on a bilinear map p such as a Weil or Tate pairing as follows:
Member B similarly forms its department public keys using smartcard 10B and appropriate input strings provided by each department. The string provided to B by any particular department may be the same or different to that provided to A depending on whether B has the same department related attribute. Thus, B may not have any spending authority from the Finance department so that the string used as the basis for B's public key for the finance department is “no authority” so that:
Having described an application context for the smartcard 10A, several example usages will now be given.
To decrypt the message, member A inserts his smartcard 10A into his computer's smartcard interface, authenticates himself to the smartcard by inputting his PIN, and uses the smartcard to compute the decryption key:
RAdec=sA(Map-To-Point(EKS))
This decryption key is output to A's computer, and the computer then decrypts the document as follows:
m=V⊕H3(t(U, RAdec))
In this example, the encryption key string EKS is likely to change each time, that is, EKS and thus the decryption key RAdec are session keys. However, in certain applications the EKS may be re-used so that the corresponding decryption key can be stored (securely) as a long-term key. It will be appreciated that not only the departments, but also any other member, can send data confidentially to member A using the foregoing method, A then using his smartcard in the decryption of the data.
The above example usages are not exhaustive. For example, the signature process 4 of
It will be appreciated that many variants are possible to the above described embodiments of the invention. Thus the access control entity 12 and output form entity 19 of the smartcard interface block 11 can be omitted if desired. Furthermore, whilst in the foregoing user interaction with a smartcard has been via apparatus to which the smartcard is coupled by its interface 1, it is also possible to provide user interface elements on the smartcard itself such as a number pad (for data input) and an LCD display (for data output). The smartcard can contain additional functionality including, though not preferred, other cryptographic functionality.
Number | Date | Country | Kind |
---|---|---|---|
0326100.5 | Nov 2003 | GB | national |