A method using a first device (600, 800) and a second device (605, 805) to generate a security value comprising a One-Time Password or a Message Authentication Code signature comprising: using the first device to send first information to the second device and using the second device to receive the first information whereby the first device submits (710, 811) a device challenge to the second device; using the second device to store a private key and to perform an asymmetric cryptographic operation on said device challenge with said private key to produce a resulting cryptogram; using the second device to send second information to the first device and using the first device to receive said second information whereby the second device returns said resulting cryptogram to the first device; using the first device to verify (711, 810) said resulting cryptogram; using the first device to capture values of one or more variable inputs, which include one or more of a time value, a counter value, a challenge value, and transaction data; using the first device to obtain an intermediate dynamic value by a calculation using said one or more variable inputs and a symmetric cryptographic algorithm which employs at least one secret, wherein creating said intermediate dynamic value includes using a secret or secrets stored in the first device and data associated with said private key; using the first device to transform said dynamic value into said security value comprising a One-Time Password or a Message Authentication Code signature, wherein said transforming includes producing said security value of a size that is smaller than the size of the cryptogram that was generated by said asymmetric cryptographic operation; and using the first device to present said security value on a display of said first device (600, 800); wherein said first device generates said security value on condition that said verification of said resulting cryptogram is successful; wherein said first device (600, 800) is a smart card reader including an interface to accept a smart card and a power supply, and said second device (605, 805) is a smart card. using the first device to send first information to the second device and using the second device to receive the first information whereby the first device submits (710, 811) a device challenge to the second device; using the second device to store a private key and to perform an asymmetric cryptographic operation on said device challenge with said private key to produce a resulting cryptogram; using the second device to send second information to the first device and using the first device to receive said second information whereby the second device returns said resulting cryptogram to the first device; using the first device to verify (711, 810) said resulting cryptogram; using the first device to capture values of one or more variable inputs, which include one or more of a time value, a counter value, a challenge value, and transaction data; using the first device to obtain an intermediate dynamic value by a calculation using said one or more variable inputs and a symmetric cryptographic algorithm which employs at least one secret, wherein creating said intermediate dynamic value includes using a secret or secrets stored in the first device and data associated with said private key; using the first device to transform said dynamic value into said security value comprising a One-Time Password or a Message Authentication Code signature, wherein said transforming includes producing said security value of a size that is smaller than the size of the cryptogram that was generated by said asymmetric cryptographic operation; and using the first device to present said security value on a display of said first device (600, 800); wherein said first device generates said security value on condition that said verification of said resulting cryptogram is successful;