CRYPTOGRAPHIC TOKEN WITH LEAK-RESISTANT KEY DERIVATION
First Claim
1. A portable cryptographic token for deriving cryptographic authentication codes for securing transactions between a user of said token and a server, and which limits the number of times secret keys are used so as to provide protection against external monitoring attacks, comprising:
- (a) a key cache configured to include a top-level key, a plurality of intermediate-level keys, and a lowest-level key, each key having a key value;
(b) at least one key updater configured to receive as an input the key value for a particular level, and to operate on that key value using a block cipher to generate a value for a key one level below said particular level;
(c) a timer;
(d) said token being configured to use said at least one key updater and said timer to derive periodically;
(i) a new lowest-level key value, where said value of a second-to-lowest level key from said cache is an input to said key updater;
(ii) after a plurality of updates to said lowest-level key value, a new second-to-lowest level key value, where said value of a third-to-lowest-level key from said cache is an input to said key updater;
(iii) after a plurality of updates to said second-lowest-level key, a new third-to-lowest level key value, where said value of a fourth-to-lowest-level key from said cache is an input to said key updater;
said token being usable in securing transactions with the server based on values derived from said lowest-level key values.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatuses for increasing the leak-resistance of cryptographic systems are disclosed. A cryptographic token maintains secret key data based on a top-level key. The token can produce updated secret key data using an update process that makes partial information that might have previously leaked to attackers about the secret key data no longer usefully describe the new updated secret key data. By repeatedly applying the update process, information leaking during cryptographic operations that is collected by attackers rapidly becomes obsolete. Thus, such a system can remain secure against attacks involving analysis of measurements of the device'"'"'s power consumption, electromagnetic characteristics, or other information leaked during transactions. Transactions with a server can be secured with the token.
52 Citations
26 Claims
-
1. A portable cryptographic token for deriving cryptographic authentication codes for securing transactions between a user of said token and a server, and which limits the number of times secret keys are used so as to provide protection against external monitoring attacks, comprising:
-
(a) a key cache configured to include a top-level key, a plurality of intermediate-level keys, and a lowest-level key, each key having a key value; (b) at least one key updater configured to receive as an input the key value for a particular level, and to operate on that key value using a block cipher to generate a value for a key one level below said particular level; (c) a timer; (d) said token being configured to use said at least one key updater and said timer to derive periodically; (i) a new lowest-level key value, where said value of a second-to-lowest level key from said cache is an input to said key updater; (ii) after a plurality of updates to said lowest-level key value, a new second-to-lowest level key value, where said value of a third-to-lowest-level key from said cache is an input to said key updater; (iii) after a plurality of updates to said second-lowest-level key, a new third-to-lowest level key value, where said value of a fourth-to-lowest-level key from said cache is an input to said key updater; said token being usable in securing transactions with the server based on values derived from said lowest-level key values. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of deriving cryptographic authentication codes to secure transactions between a user of a token and a server while providing protection against external monitoring attacks in said token, said method implemented in said token, said token including a key cache containing a plurality of keys from a highest level to a lowest level, where said number of levels is at least 4, comprising:
-
(a) using a timer to update a key index value; (b) performing at least one key update operation to update at least a portion of said key cache, where; (i) each key update operation includes a block cipher operation; (ii) each key update operation uses a parent key to derive a child key; and (iii) only those keys affected by said update in said key index value are updated; and (c) deriving a value from said lowest level key to secure a transaction with said server. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method for a server to secure transactions involving a user of a cryptographic token, the token being configured to derive and cache a plurality of secret keys at different levels while limiting the number of times each secret key is used so as to provide protection against external monitoring attacks, and the token being further configured to produce, from a lowest-level key, a cryptographic authentication code for securing said transaction, the method comprising:
-
(a) obtaining a candidate for a key index value to be tried; (b) obtaining a top-level key for said token; (c) re-deriving a second-to-highest key, corresponding to said key index value being tried, by performing at least a block cipher operation using said top-level key; (d) re-deriving a succession of child key values, at successively lower levels, by performing at least a block cipher operation using a parent key of each child key being derived, until a lowest-level key is obtained; and (e) attempting to authenticate said token using a value derived from said lowest-level key, and if said authentication attempt fails, repeating said re-derivations in (c) and (d) with another candidate key index value close to said key index value obtained in (a). - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A computer-readable medium containing program instructions that when executed by a processor implement a method for a server to secure a transaction involving a user of a cryptographic token, the token being configured to derive and cache a plurality of secret keys at different levels while limiting the number of times each secret key is used so as to provide protection against external monitoring attacks, and the token being further configured to produce, from a lowest-level key, a cryptographic authentication code for securing said transaction, the method comprising:
-
(a) obtaining a candidate for a key index value to be tried; (b) obtaining a top-level key for said token; (c) re-deriving a second-to-highest key, corresponding to said key index value, by performing at least a block cipher operation using said top-level key; (d) re-deriving a succession of child key values, at successively lower levels, by performing at least a block cipher operation using a parent key of each child key being derived, until a lowest-level key is obtained; and (e) attempting to authenticate said token using a value derived from said lowest-level key, and if said authentication attempt fails, repeating said re-derivations in (c) and (d) with another candidate key index value close to said key index value obtained in (a). - View Dependent Claims (22, 23, 24, 25, 26)
-
Specification