Patent ID: 7506165

Claim:
A method for performing a plurality of secure payment transactions using a smartcard, where said smartcard and a verifier of said payment transaction share an initial secret starting key value, comprising: (a) initializing said smartcard, where said initializing includes: (i) storing said starting key value in a nonvolatile key storage memory location; and (ii) storing an initial value in a nonvolatile transaction counter memory location; (b) for each of a plurality of payment transactions: (i) computing an updated key value: (x) by cryptographically transforming at least said stored key value and said transaction counter; (y) where said transforming at least obscures partial information about said stored key, thereby deterring attacks that combine partial information leaked in said plurality of transactions; (ii) updating said nonvolatile memory locations including: (x) updating said key storage location with said updated key value; and (y) incrementing said value of said transaction counter location; (iii) using said updated key value to compute a message authentication code authenticating said transaction; and (iv) sending said computed message authentication code and said transaction counter to a third party for use in verifying said payment transaction.