My bank uses a smartcard reader (separate module not connected to the computer) as depicted below:
When I need to log into my account it provides me with a challenge and I need to provide some details:
I need to provide the 8 digits, enter my pin and then it returns an 8 number sequence which is then to be entered after which you are logged in.
A similar mechanism is employed for signing transactions but using the M2 button (blue one) rather than the M1 and instead of a random number you need to first give the amount and then the timestamp. I'm interested in the cryptography used behind it (if it's symmetric, assymetric or a combination of both) and how the signing is actually done.
a user guide can be found here.