Comment Call me old-fashioned (Score 1) 701
int main(int argc, char **argv) {
Simple:
When the card is inserted, the ATM asks for the card's public key
Then it's the card's turn to repeat the same process:
At this point, both the card and the ATM know that they are talking to the appropriate device. Each device can then generate a symmetrical key for that session, and encrypt it with the other device's public key, and use those keys for any further communication.
"God is a comedian playing to an audience too afraid to laugh." - Voltaire