System and method for authenticating RFID tags
09734322 · 2017-08-15
Assignee
Inventors
Cpc classification
G06K7/10366
PHYSICS
H04L9/3066
ELECTRICITY
H04L2209/805
ELECTRICITY
International classification
H04L9/32
ELECTRICITY
Abstract
A system and method of providing authenticity to a radio frequency identification (RFID) tag are provided. The method comprises generating a plurality of digital signatures, wherein each digital signature is generated using an index value unique to that digital signature and using information associated with the RFID tag; and storing the plurality of digital signatures on the RFID tag in association with respective index values to enable a desired digital signature to be selected according to a provided index value. Also provided are a system and method of enabling an RFID reader to authenticate an RFID tag, which utilize a challenge comprising an index value to request one of the stored signature and authenticating same. Also provided is an RFID tag that is configured to participate in the challenge-response protocol.
Claims
1. A method for authenticating a radio frequency identification (RFID) tag, the method comprising: sending a challenge comprising an index value i to the RFID tag, the index value i in a set of index values, wherein each index value in the set of index values is associated with a single signature, and wherein an i.sup.th signature corresponding to the index value i comprises an i.sup.th set of signature components; receiving, in response to the challenge, at least, the corresponding i.sup.th set of signature components, wherein each of said i.sup.th set of signature components having been generated from a message m.sub.i comprising at least a hidden portion H.sub.i and a corresponding visible portion V.sub.i and stored on the RFID tag; obtaining the corresponding visible portion V.sub.i and a public key W corresponding to the i.sup.th set of signature components; and, verifying the corresponding i.sup.th set of signature components using the corresponding visible portion V.sub.i and the public key W; wherein the RFID tag is authenticated if the corresponding i.sup.th set of signature components is verified, and wherein the hidden portion H.sub.i is recoverable from the corresponding i.sup.th set of signature components, wherein each of the i.sup.th set of signature components stored on the RFID tag remain available for subsequent challenges.
2. The method of claim 1, wherein before authenticating the RFID tag the method further comprises: recovering a representation H.sub.i′ of the hidden portion H.sub.i from a signature component c.sub.i of the i.sup.th set of signature components; and, verifying the i.sup.th set of signature components if a specified characteristic is successfully recovered from the representation H.sub.i′.
3. The method of claim 2, wherein the specified characteristic comprises identifying an expected value in the representation H.sub.i′.
4. The method of claim 2, wherein the specified characteristic comprises confirming an expected redundancy in the representation H.sub.i′.
5. The method of claim 1, wherein the corresponding visible portion V.sub.i is obtained from the RFID tag.
6. The method of claim 1, wherein the public key W is obtained by recovering the public key W from the RFID tag.
7. The method of claim 1, wherein the public key W is obtained from a signing station that generated the corresponding i.sup.th set of signature components.
8. The method according to claim 1, wherein the hidden portion H.sub.i comprises a product identifier for identifying a product associated with the RFID tag.
9. The method according to claim 1, wherein the visible portion V.sub.i is the same for all i sets of signature components.
10. The method according to claim 1, wherein the i sets of signature components were generated using an Elliptic Curve Pintsov-Vanstone Signature (ECPVS) scheme.
11. The method according to claim 1, wherein the i sets of signature components each comprise a pair of signature components (c.sub.i, s.sub.i).
12. The method according to claim 1, wherein the i sets of signature components each comprise three signature components (c1.sub.i, c2.sub.i, s.sub.i), and wherein the i sets of signature components were generated using an Elliptic Curve Digital Signature with Recovery (ECDSR) scheme and a public key for at least one of the three signature components, and wherein a first signature component c1.sub.i was generated from a first separated hidden portion H1.sub.i, and a second signature component c2.sub.i was generated from a second separated hidden portion H2.sub.i, the first separated hidden portion H1.sub.i and the second separated hidden portion H2.sub.i having been separated from the hidden portion H.sub.i, the method further comprising: recovering information from the at least one of the three signature components using the public key.
13. The method according to claim 12, wherein the first signature component c1.sub.i is a single value for all i sets of signature components.
14. A non-transitory computer readable storage medium comprising computer executable instructions for execution by an RFID reader to authenticate a radio frequency identification (RFID) tag, the instructions comprising: instructions to send a challenge comprising an index value i to the RFID tag, the index value i in a set of index values, wherein each index value in the set of index values is associated with a single signature, and wherein an i.sup.th signature corresponding to the index value i comprises an i.sup.th set of signature components; instructions to receive, in response to the challenge, at least, the corresponding i.sup.th set of signature components, wherein each of said i.sup.th set of signature components having been generated from a message m.sub.i comprising at least a hidden portion H.sub.i and a corresponding visible portion V.sub.i and stored on the RFID tag; instructions to obtain the corresponding visible portion V.sub.i and a public key W corresponding to the i.sup.th set of signature components; and, instructions to verify the corresponding i.sup.th set of signature components using the corresponding visible portion V.sub.i and the public key W; wherein the RFID tag is authenticated if the corresponding i.sup.th set of signature components is verified, and wherein the hidden portion H.sub.i is recoverable from the corresponding i.sup.th set of signature components, wherein each of the i.sup.th set of signature components stored on the RFID tag remain available for subsequent challenges.
15. A computing device operative to authenticate an RFID tag, the computing device comprising a processor, a memory, and an interface for establishing a communicable connection to the RFID tag, the memory comprising computer executable instructions for causing the processor to: send a challenge comprising an index value i to the RFID tag, the index value i in a set of index values, wherein each index value in the set of index values is associated with a single signature, and wherein an i.sup.th signature corresponding to the index value i comprises an i.sup.th set of signature components; receive, in response to the challenge, at least, the corresponding i.sup.th set of signature components, wherein each of said i.sup.th set of signature components having been generated from a message m.sub.i comprising at least a hidden portion H.sub.i and a corresponding visible portion V.sub.i and stored on the RFID tag; obtain the corresponding visible portion V.sub.i and a public key W corresponding to the i.sup.th set of signature components; and, verify the corresponding i.sup.th set of signature components using the corresponding visible portion V.sub.i and the public key W; wherein the RFID tag is authenticated if the corresponding i.sup.th set of signature components is verified, and wherein the hidden portion H.sub.i is recoverable from the corresponding i.sup.th set of signature components, wherein each of the i.sup.th set of signature components stored on the RFID tag remain available for subsequent challenges.
16. An RFID reader configured to authenticate a RFID tag, the RFID reader operative to: send a challenge comprising an index value i to the RFID tag, the index value i in a set of index values, wherein each index value in the set of index values is associated with a single signature, and wherein an i.sup.th signature corresponding to the index value i comprises an i.sup.th set of signature components; receive, in response to the challenge, at least, the corresponding i.sup.th set of signature components, wherein each of said i.sup.th set of signature components having been generated from a message m.sub.i comprising at least a hidden portion H.sub.i and a corresponding visible portion V.sub.i and stored on the RFID tag; obtain the corresponding visible portion V.sub.i and a public key W corresponding to the i.sup.th set of signature components; and, verify the corresponding i.sup.th set of signature components using the corresponding visible portion V.sub.i and the public key W; wherein the RFID reader is operative to authenticate the RFID tag if the corresponding i.sup.th set of signature components is verified, wherein each of the i.sup.th set of signature components stored on the RFID tag remain available for subsequent challenges.
17. The RFID reader of claim 16, wherein before authenticating the RFID tag the RFID reader is further operative to: recover a representation H.sub.i′ of the hidden portion H.sub.i from a signature component c.sub.i of the i.sup.th set of signature components; and, verify the i.sup.th set of signature components if a specified characteristic is successfully recovered from the representation H.sub.i′.
18. The RFID reader according to claim 16, wherein the i sets of signature components were generated using an Elliptic Curve Pintsov-Vanstone Signature (ECPVS) scheme.
19. The RFID reader according to claim 16, wherein the i sets of signature components each comprise a pair of signature components (c.sub.i, s.sub.i).
20. The RFID reader according to claim 16, wherein the i sets of signature components each comprise three signature components (c1.sub.i, c2.sub.i, s.sub.i), and wherein the i sets of signature components were generated using an Elliptic Curve Digital Signature with Recovery (ECDSR) scheme and a public key for at least one of the three signature components, and wherein a first signature component c1.sub.i was generated from a first separated hidden portion H1.sub.i, and a second signature component c2.sub.i was generated from a second separated hidden portion H2.sub.i, the first separated hidden portion H1.sub.i and the second separated hidden portion H2.sub.i having been separated from the hidden portion H.sub.i, the RFID reader further operative to: recover information from the at least one of the three signature components using the public key.
21. A method of enabling an RFID tag to be authenticated, the method comprising: receiving a challenge comprising an index value i, the index value i in a set of index values, wherein each index value in the set of index values is associated with a single signature, and wherein an i.sup.th signature corresponding to the index value i comprises an i.sup.th set of signature components; obtaining the corresponding i.sup.th set of signature components from i sets of signature components stored on the RFID tag, wherein each of said i.sup.th set of signature components having been generated from a message m.sub.i comprising at least a hidden portion H.sub.i that includes the index value i unique to the corresponding i.sup.th set of signature components, and a corresponding visible portion V.sub.i′; and, providing the corresponding i.sup.th set of signature components in response to the challenge; wherein a challenger may authenticate the RFID tag by obtaining the corresponding visible portion V.sub.i and a public key W corresponding to the i.sup.th set of signature components, and authenticating the RFID tag when the corresponding i.sup.th set of signature components has been verified using the corresponding visible portion V.sub.i and the public key W, wherein each of the i sets of signature components stored on the RFID tag remain available for subsequent challenges.
22. The method according to claim 21, wherein the i sets of signature components each comprise three signature components (c1.sub.i, c2.sub.i, s.sub.i), and wherein the i sets of signature components were generated using an Elliptic Curve Digital Signature with Recovery (ECDSR) scheme and a public key for at least one of the three signature components, and wherein a first signature component c1.sub.i was generated from a first separated hidden portion H1.sub.i, and a second signature component c2.sub.i was generated from a second separated hidden portion H2.sub.i, the first separated hidden portion H1.sub.i and the second separated hidden portion H2.sub.i having been separated from the hidden portion H.sub.i, wherein the challenger may further recover private information from the at least one of the three signature components using the public key.
23. An RFID tag configured to: receive a challenge comprising an index value i, the index value i in a set of index values, wherein each index value in the set of index values is associated with a single signature, and wherein an i.sup.th signature corresponding to the index value i comprises an i.sup.th set of signature components; obtain the corresponding i.sup.th set of signature components from i sets of signature components stored on the RFID tag, wherein each of said i.sup.th set of signature components having been generated from a message m.sub.i comprising at least a hidden portion H.sub.i that includes the index value i unique to the corresponding i.sup.th set of signature components, and a corresponding visible portion V.sub.i′; and, provide the corresponding i.sup.th set of signature components in response to the challenge; wherein a challenger may authenticate the RFID tag by obtaining the corresponding visible portion V.sub.i and a public key W corresponding to the i.sup.th set of signature components, and authenticating the RFID tag when the corresponding i.sup.th set of signature components has been verified using the corresponding visible portion V.sub.i and the public key W, wherein each of the i sets of signature components stored on the RFID tag remain available for subsequent challenges.
24. A method of manufacturing an RFID tag that may be authenticated, the method comprising: generating a plurality of i sets of signature components, each of the i sets of signature components generated from a message m.sub.i comprising at least a hidden portion H.sub.i and a corresponding visible portion V.sub.i, wherein at least the hidden portion H.sub.i is recoverable from at least one of the signature components; and, storing each of the plurality of i sets of signature components on the RFID tag in association with a respective index value i, the index value i in a set of index values, wherein each index value i in the set of index values is associated with a single signature, and wherein an i.sup.th signature corresponding to the index value i comprises an i.sup.th set of signature components, and wherein each of the i sets signature components stored on the RFID tag remain available to be chosen by each of a plurality of challenges.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Embodiments will now be described by way of example only with reference to the appended drawings wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
DETAILED DESCRIPTION
(11) It has been recognized that an increasing concern as RFID tags are used in broader applications, is the potential loss of privacy and potential identity theft. One approach to increase RFID security and privacy is to permanently disable the tag through a “kill” command. This technique may not be practical for tags requiring multiple uses, which is often the case for vehicle immobilizer and near field rapid payment systems. Some of the other security measures lacking practical and technological feasibility include active jamming of transmissions from the RFID tags and enclosing the tag in a metal mesh or foil container (Faraday cage) that is impenetrable by radio frequency signals. These measures may be considered necessary in some circumstances because of the inherently weak security implementations used with the currently available RFID tags.
(12) In 2005, a team of researchers at Johns Hopkins University Information Security Institute and RSA Laboratories announced a security weakness in the DST tag. The team was able to break the system and crack the key from reading just two challenge/response pairs. Furthermore, the team was able to digitally clone DST tags from their original counterparts to enable an automobile and for payment of gasoline using the “SpeedPass” system as discussed in the RFID Journal article entitled “Attack on a Cryptographic RFID Device” by Ari Juels, February 2005.
(13) The attack on the DST tag was deemed to be as a result of a weakness in the design of the low processing power cryptographic algorithm, and the small size of the encryption key. Most of the inexpensive RFID tags belong in the Class 1 and 2 categories as defined by the industry body, EPCglobal (www.epcglobalinc.org). These tags are known to have limited computational and storage capabilities and can lack support for performing cryptographic operations, such as generating digital signatures. Since a passive tag is powered by its interaction with an electromagnetic field transmitted by the reader, any additional computation can significantly reduce the effectiveness (range) of the tag.
(14) It can be expected that memory in RFID tags should continue to drop in price more rapidly than processors. Therefore, an approach which depends on additional memory is preferable to a more processor intensive cryptographic algorithm for securing RFID tags.
(15) Notwithstanding, a limiting constraint is often the storage space available on such inexpensive RFID tags. An asymmetric cryptographic algorithm such as the Rivest-Shamir & Adleman (RSA) algorithm would likely require a minimum 1024 bit signature. The relatively large size of an RSA signature can result in a tag which is prohibitively expensive. In some commercial applications, such as in the manufacturing of pharmaceutical products, multiple signatures may need to be stored, as more fully discussed in U.S. application Ser. Nos. 11/852,709; 11/852,819; and 11/898,181, each filed on Sep. 10, 2007.
(16) To overcome the above-described drawbacks, the following provides a system and method for authenticating an RFID tag that utilizes multiple signatures stored on the RFID tag to randomize the authentication process, and to avoid skimming or other malicious attacks.
(17) Referring now to
(18) The system 10 also comprises an RFID reader 14, which is typically remote and independent from the signing station 12. The RFID reader 14 is configured to generate a radio frequency (RF) field 24, which energizes the RFID tag 20 when the RFID tag 20 is within a communicable range. It can be appreciated that other devices (not shown) can be configured to act as both an RFID reader 14 and a signing station 12 if the application permits. In this example the RFID tag 20 is a passive tag but it will be appreciated that the RFID tag 20 may instead be an active tag, e.g. if the cost can be justified for the particular application. The RFID reader 14 in this example also comprises a cryptographic processor 15 which has the capability of formatting a bit string and transmitting the bit string as a challenge 16 to the RFID tag 20. The cryptographic processor 15 in this example is also configured to perform ECC cryptographic operations that suit the particular application. The RFID tag 20 is capable of receiving the challenge 16, generating a bit string, and returning the bit string to the RFID reader 14 as a response 18. The RFID reader 14 may then use the cryptographic processor 15 to verify the response 18 for authenticating the RFID tag 20.
(19) It will be appreciated that any module or component exemplified herein that executes instructions may include or otherwise have access to computer readable media such as storage media, computer storage media, or data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by an application, module, or both. Any such computer storage media may be part of components of the cryptographic processors 13, 15 or RFID tag 20, or accessible or connectable thereto. Any application or module herein described may be implemented using computer readable/executable instructions that may be stored or otherwise held by such computer readable media.
(20) An example schematic structure for an RFID tag 20 is shown in
(21) In the example shown in
(22) Also shown in
(23) It can be appreciated that the smaller the signature size, the greater the number of digital signatures 26 that can be stored when provided with a fixed amount of memory on the RFID tag 20. It has therefore been recognized that a signature scheme based on ECC is particularly advantageous for use in the system 10, since ECC can provide a smaller signature size for a particular cryptographic strength. For example, a 168 bit ECC signature has been found to provide similar security strength as a typical 1024 bit RSA signature. Consequently, by using ECC in the system 10, multiple signatures can be more readily stored on a single RFID tag 20 enabling the operations discussed below to be implemented.
(24) As is known in the art, ECC is implemented in an algebraic system defined on a group of points of an elliptic curve over a finite field, and encryption schemes using ECC are based on the intractability of the discrete log problem in finite groups.
(25) In one example, the domain parameters of such an ECC cryptosystem are: an elliptic curve having the form y.sup.2=x.sup.3+dx+c, a finite field F, an elliptic curve group E (comprising a set of points that are defined by elements of the underlying field and satisfy the elliptic curve equation together with the point at infinity), and a seed point G that can be used to generate each element of the elliptic curve group E. Each point on the elliptic curve is defined by a pair of elements of the underlying finite field that satisfy the equation of the curve. One correspondent in the cryptosystem has a private key a, 0<a<n where n is the order of the point G and a corresponding public key Q.sub.A=aG. The public key may be certified by a certifying authority (CA) who signs the public key of a correspondent and, thereafter, the signature added by the CA on the public key, may be verified by another correspondent who trusts the CA, in order to authenticate the public key Q.sub.A.
(26) To achieve the same security level as a 1024 bit RSA signature, an elliptic curve key size of 160 bits or higher should be used. One of the examples described herein uses the Elliptic Curve Pintsov-Vanstone signature (ECPVS) scheme, and another of the examples uses the Elliptic Curve Digital Signature Algorithm (ECDSA) scheme for implementing the challenge-response authentication process executed by the system 10. It can be appreciated that other ECC schemes can also be used according to the principles discussed herein. It can also be appreciated that the principles discussed herein may also be applied to other cryptographic schemes, whether known or yet to be discovered, that make it possible to include multiple digital signatures on the same RFID tag 20.
(27) The ECPVS scheme is a digital signature scheme that enables message recovery, which suggests that part of the message being signed is hidden in the signature and can be recovered during the signature verification process. The ECPVS scheme is specified in IEEE 1363a-2004, ISO/IEEE 9796-3, and as a draft ANSI standard. In the ECPVS scheme, a message M that is to be signed is at least conceptually divided into two separate and distinct portions or sets of data H and V (e.g. M=H∥V). The value H is a portion of the message or a set of data that is to be hidden in the signature and recovered during the verification process. The value V is another portion of the message or another set of data, which is also signed but can be sent “in the clear” as plaintext or is otherwise readily or publicly available, and used in the verification process. The portion H can only be recovered by those entities that possess a particular verification key and the portion V can be read by any entity, e.g. any RFID reader 14, without verifying the signature. It can be appreciated that this enables sensitive data to be hidden in the signature only to be read by a device having the public key of the signing station 12, while other data can be left in the clear for other uses such as basic identification of the product 22 or RFID tag 20 itself.
(28) The ECPVS signature generation algorithm typically begins by specifying a particular characteristic for the portion H that can be examined when verifying the signature. For example, one can examine the portion H once recovered to determine if the recovered portion H has a particular amount of redundancy (e.g. redundancy that is above a predetermined limit deemed sufficient to prevent an existential forgery attack). In an another example, a data string or set of data that is capable of being compared to a known and expected value may be used as a characteristic to verify the signature. The following summarizes ECPVS signature generation operations that may be performed by a signer (e.g. the signing station 12), wherein the signer has a long term private key w and a corresponding public key W.
(29) First, an ephemeral key pair (k, Q) is generated, wherein Q=kG and is a point on the elliptic curve, k is a random integer 1≦k<n, and n is the order of the group generated by the elliptic curve base point G. Next, a key k.sub.1=KDF(Q) is constructed, wherein KDF is a key derivation function. In general, a KDF is used to derive a secret key from a secret value and/or other known information. In the ECPVS scheme, the KDF uses, as an input, the point Q and possibly other information, and generates an encryption key k.sub.1. The signer then computes a first signature component c as c=ENC.sub.k.sub.
(30) Next, an intermediate component h is computed as h=Hash(c∥V), where Hash is a suitable hash function, e.g. SHA1. If preferred, additional information that may be available or become available to parties verifying the signature (in other words information that the verifier needs ‘on the side’ for verification), e.g. a certificate or identifying information of the signer, may be incorporated into h. The intermediate component h is then converted to an integer e. A second signature component s is then calculated using a suitable signing equation, such as the Schnorr algorithm, wherein: s=e.Math.w+k mod n, w being a long term private key of the signer (e.g. the signing station 12 in the examples discussed herein). The resultant signature 26 comprises the components c, s, and V, wherein the components may be communicated as a set of three components (c, s, V) or as a set of two components (s, c∥V) as illustrated schematically in
(31) The following steps may be performed in order to verify an ECPVS signature having the form: (s, c∥V), when the verifier is provided with or otherwise has access to the signer's genuine public key W.
(32) First, the intermediate component h is computed using the component c∥V, the same hash function used in generating the signature, and any additional information (such as data identifying the signer), such that, in this example: h=Hash(c∥V). Next, h is converted to an integer e. A representation Q′ of the ephemeral public key Q is then computed using the integer e, the public key W of the signer, the base point G, and the signature component s, e.g. such that, in this example: Q′=sG−eW. Next, a decryption key k.sub.1′ is computed using the same KDF used by the signer when generating the signature, also using the same additional information (if any), such that, in this example: k.sub.1′=KDF(Q′). A representation H′ of the hidden portion H is then recovered by decrypting the component c using the decryption key k.sub.1′ derived per the above, and a complementary decryption function DEC, such that, in this example: H′=DEC.sub.k.sub.
(33) Since the message M has been subdivided, it is only necessary for one portion, e.g. H.sub.i to contain the requisite characteristic and to be hidden. The other portion V is plaintext that has the same structure as in the original message M and thus can improve bandwidth efficiency. As such, when the ECPVS scheme is used in authenticating an RFID tag 20, the visible portion V may include any portion of data that is not required to be confidential but needs to be available to the RFID readers 14. The portion H hidden in c can, on the other hand, contain confidential information which is only available to those individuals who have the public key W of the signer. It can then be appreciated that the data contained in V is ‘visible’ and thus available to any device or entity that is capable of reading the RFID tag 20.
(34) Referring now to
(35) The signing station 12 generates a portion of the input set 34, such as the index value i, while the remaining portion(s), e.g. the UID and product ID may be obtained by reading the RFID tag 20 or through user or other input. Referring back to
(36) An embodiment illustrating a challenge-response scheme using the system 10 is shown by way of example in
(37) In the example shown in
(38) By storing a relatively large number of signatures 26 (e.g. compared to other schemes such as RSA), each being available to be chosen randomly via the challenge 16 sent by the RFID reader 14, an eavesdropper cannot gain any advantage by monitoring the individual signature 26 being transmitted. Subsequent interrogation of the RFID tag 20 by an RFID reader 14 should, in all probability, generate a different index value i and, thus require a different signature 26. In this way, skimming of the RFID tag 20 becomes more time consuming, ultimately more difficult, and thus should be prohibitive to the interloper. The RFID reader 14 can choose the index values i in any manner it desires, but should be non-repeating as shown in this example.
(39) In another embodiment, shown in
(40) The ECDSA is a widely standardized elliptical curve-based signature scheme, appearing in the ANSI X9.62, FIPS 186-2, IEEE 1363-2000 and ISO/IEC 15946-2 standards as well as several draft standards.
(41) The ECDSA signature generation scheme operates on several domain parameters, namely: a long term private key d, a point P, and a message m. The signature generation scheme outputs a pair of signature components (r, s), wherein r and s are integers. An overview of the ECDSA operations is as follows:
(42) 1. Select an ephemeral private key k, where kε.sub.R [1, n−1], and n is the order of the group generated by the elliptic curve base point, the base point also being one of the domain parameters.
(43) 2. Compute an ephemeral public key kP=(x.sub.1,y.sub.1) and convert x.sub.1 to an integer
(44) 3. Compute r=
(45) 4. Compute e=H(m), where H denotes a cryptographic hash function whose output has a bit-length that is no more than the bit-length of n (if this condition is not satisfied, then the output of H can be truncated).
(46) 5. Compute s=k.sup.1(e+dr) mod n, where d is the long term private key of the signer, and wherein if s=0, then go back to step 1.
(47) 6. Output the pair of signature components (r, s) as the ECDSA signature.
(48) The ECDSA signature verification process operates on several domain parameters, namely: the long term a public key Q corresponding to private key d, i.e. Q=dP; the message m, and the signature (r, s) derived above. The ECDSA signature verification process outputs a rejection or acceptance of the signature, and proceeds as follows:
(49) 1. Verify that r and s are integers in the interval [1,n−1]. If any verification fails then a rejection is returned.
(50) 2. Compute e=H(m).
(51) 3. Compute w=s.sup.−1 mod n.
(52) 4. Compute u.sub.1=ew mod n and u.sub.2=rw mod n.
(53) 5. Compute R=u.sub.1P+u.sub.2Q
(54) 6. If R=∞ then the signature is rejected.
(55) 7. Convert the x-coordinate x.sub.1 of R to an integer
(56) 8. Compute V=
(57) 9. If v=r then the signature is accepted, if not then the signature is rejected.
(58) As discussed above, an ECDSA signature is made up of two integers, namely r and s, both of which are bit strings of the same size as the order of the curve. For example, with a curve of order 160, the signature size is 160×2=320 bits or 40 bytes.
(59) Referring now to
(60) An embodiment illustrating a challenge-response scheme using the system 10 configured for implementing the ECDSA, is shown by way of example in
(61) Accordingly, it can be seen that the principles for incorporating a plurality of digital signatures on an RFID tag 20, to enable different signatures to be used to verify the RFID tag 20 at different times, to avoid skimming, can be applied to both signature schemes providing message recovery and those that do not.
(62) Another example utilizing a signature scheme providing message recovery is shown in
(63) For signature generation, an entity A (e.g. the signing station 12) uses its private key d.sub.A, an entity B's public key G.sub.B (e.g. the RFID reader 14), and signs the message M, having plaintext V and hidden portions H.sub.1 and H.sub.2, which will be encrypted. Entity A generates an ephemeral key pair (k, Q) and then using k and the public key G.sub.B, constructs a value Q.sub.B=kG.sub.B. The value Q.sub.B is used to create an encryption key for encrypting the portion H.sub.1 so that only entity B (or an entity having access to B's private key if applicable) can recover or unlock the confidential information contained in the portion H.sub.1.
(64) Two encryption keys are computed using a key derivation function: k, =KDF(Q.sub.B) and k.sub.2=KDF(Q). Using the two encryption keys, the recoverable and confidential portions are then encrypted, using a suitable encryption scheme, to generate a pair of corresponding signature components: c.sub.1=ENC.sub.k.sub.
(65) An intermediate value h is then computed by hashing a combination (e.g. concatenation) of the pair of signature components c.sub.1 and c.sub.2 and the visible portion V′: h=Hash(c.sub.1∥c.sub.2∥V). Hash is a suitable hash function, e.g. SHA1, that may also incorporate additional information such as identity information of entity A into h. The value h is then converted into an integer e to be used in computing another signature component s.
(66) The signature component s, as is done in ECPVS, can be computed using a suitable signing equation such as the Schnorr equation: s=e.Math.d.sub.A+k mod n. The resultant signature having the set of components (s, c.sub.1∥c.sub.2∥V) may then be provided as an output.
(67) In this way, the portion H.sub.2 can be recovered by entity B or any other entity Z using the public key of the signer A. A process of partial message recovery is thus possible, which involves obtaining a representation H.sub.2′ of the portion of the message H.sub.2 having a particular amount of redundancy so that the redundancy can be checked to verify the signature. For the purpose of this illustration, it will be assumed that the verifying entity is an RFID reader 14 that cannot recover H.sub.1 because it does not possess the secret key d.sub.B, and thus H.sub.1 remains confidential with respect to that RFID reader 14.
(68) The RFID reader 14 obtains the signature having components (s, c.sub.1∥c.sub.2∥V) and uses the public key G.sub.A of the signing entity, in this example, the signing station 12, to verify the signature. The intermediate value h is first computed using the same hash function, Hash, and the combination c.sub.1∥c.sub.2∥V, and any additional information that is to be used in creating h. The value h is then converted into an integer e and a representation Q′ of the ephemeral key Q is then computed using the signature component s, the public key G.sub.A, and the point G as: Q′=sG−eG.sub.A. Having computed Q′, the RFID reader 14 then uses the same key derivation function KDF to obtain a decryption key k.sub.2′=KDF(Q′). The decryption key k.sub.2′ and the signature component c.sub.2 are then used, with the complementary decryption function DEC, to recover H.sub.2′ from c.sub.2. Having recovered H.sub.2′, the RFID reader 14 then checks for the characteristic, e.g. a certain amount of redundancy, and accepts or rejects the signature on this basis. As such, if the RFID reader 14 does not find the proper amount of redundancy, the signature is deemed to be invalid.
(69) A process can also be used to both verify the signature and recover the confidential portion H.sub.1, for example, if an RFID reader 14 is allowed to both verify the digital signatures 26, and recover the confidential data hidden in the digital signatures 26. In such a case, the RFID reader 14 obtains the digital signature 26 having components (s, c.sub.1∥c.sub.2∥v) and uses the public key G.sub.A of the signing station 12 and its own private key d.sub.B, to verify the signature. As above, the intermediate value h is first computed using the same hash function Hash and the combination c.sub.1∥c.sub.2∥V and any additional information used when creating h. The value h is then converted into an integer a and a representation Q′ of the ephemeral key Q is then computed using the signature component s and the public key G.sub.A as: Q′=sG−eG.sub.A. As can be appreciated from above, the value Q.sub.8 was computed using the public key of the RFID reader 14, that being G.sub.B. As such, the RFID reader 14 can compute a representation Q.sub.B′ of the value Q.sub.B using its private key do, the signature component s, the integer e, the public key G.sub.A, and the point G as follows: Q.sub.B′=d.sub.B−sG−d.sub.B.Math.eG.sub.A. Having computed Q′ and Q.sub.B′, the RFID reader 14 then uses the same key derivation function KDF to obtain decryption key k.sub.2′=KDF(Q′) as above, and also to obtain decryption key k.sub.1′=KDF(Q.sub.B′). The decryption keys k.sub.1′ and k.sub.2′ and the signature components c.sub.1 and c.sub.2 are then used, with the complementary decryption function DEC, to recover H.sub.1′ and H.sub.2′ from c.sub.1 and c.sub.2 respectively. Having recovered H.sub.1′ and H.sub.2′, the RFID reader 14 then checks for the proper amount of redundancy in H.sub.2′, and accepts or rejects both H.sub.1′ and H.sub.2′ on this basis since, if the redundancy in H.sub.2′ is incorrect, the signature is invalid or has been compromised in some way.
(70) By incorporating an ECDSR type signature scheme, it can therefore be seen that being able to specify a particular characteristic, which is then encrypted in the recoverable portion (e.g. H.sub.2) in an ECPV signature, enables one to check a predictable, recoverable output for verifying the signature. Also, using the public key of the RFID reader 14 when encrypting the confidential portion, enables one to limit who/what can recover the confidential portion to one or more specific entities, in this example, a particular RFID reader 14. It can be appreciated that this example embodiment is for illustrative purposes only and that the principles described herein can also be implemented using a plurality of portions, e.g. H and V only, wherein the hidden portion H is computed as H.sub.2 in the above and is also used to verify the signature. As such, in general, the message is divided into a plurality of portions.
(71) Turning now to
(72) As can be seen in
(73) The ECC signature scheme that is chosen will typically depend on the amount of storage available on the RFID tag 20 and the type of application, e.g. based on the use of the ECPV or the ECDSR signature schemes, when privacy of data is important.
(74) The challenge-response system described herein increases the difficulty of a skimming attack on an RFID tag 20, whereby an attacker reads and copies the digital signature 26. A skimmer may be able to skim signature S.sub.j from an RFID tag 20, but, when the attacker attempts to impersonate the RFID tag 20, the challenger (e.g. RFID reader 14) in all probability will ask for a different signature S.sub.i than the signature S.sub.j that the attacker skimmed.
(75) Furthermore, the attacker will require more power and time to obtain a large set of stored signatures, and thus making it more difficult to clone the tag. An additional mechanism to limit the number of signatures requested may be further utilized to increase the difficulty of skimming phase.
(76) In one embodiment, the RFID tag 20 can be designed to “sleep” for a period after transmitting a signature in response to a challenge 16. One approach would be to wait 1 second between the first and second response, two seconds between the second and third, then 4 seconds, then 8 seconds, and so on. Of course, the starting time can be shorter or longer, and the factor between successive wait times can be made larger or smaller than two. To avoid very long waits during normal use, the RFID tag 20 can be designed to always run the sleeping cycle after sending out a signature, and then if a further challenge 16 is not received during this period, it can reduce the next wait time back to normal, or at least to a lower value. More generally, the RFID tag 20 can be configured to ensure that multiple signatures 26 cannot be read out too fast, by imposing any reasonable restrictions.
(77) In addition, the principles described herein can be supplemented with known cryptographic operations to further increase the security of the RFID tag 20 as will now be described. It should be noted that having a multiplicity of pre-stored signatures can be supplemented by a careful combination with a more conventional system such as the DST. That is, the RFID tag 20 can also compute a cryptographic operation to verify its identity, in addition to providing one of the stored signatures 26.
(78) In symmetric key cryptosystems, where the RFID reader 14 and the RFID tag 20 have access to a shared secret, as in the DST system, the RFID reader 14 can apply a keyed cryptographic function, such as MAC, to a separate random challenge 16 provided from the RFID reader 20. To further reduce cost and processing power, however, some synergy and pre-stored signatures may be obtained. For example, the shared secret may be combined with the signature response S.sub.j. If the signature scheme being used is the ECPVS scheme using a block cipher such as AES, then the RFID reader 14 can combine the signature 26 and the shared secret with an exclusive-or (XOR) operation, which is known to be particularly efficient. The RFID reader 14, who also possess the shared secret, can undo the XOR operation to recover the signature. An unauthorized skimmer however, would effectively have the signature covered by a one-time pad. Even if the skimmer obtains two protected signatures, because the padding is done to effectively random ciphertext, it would be difficult for the skimmer to recover the signature, other than by using an exhaustive search over all values of the shared secret.
(79) Although the above principles have been described making reference to certain specific embodiments, it will be appreciated that various modifications thereof are applicable within the scope of the claims appended hereto.