Here's a little analogy that might help:

1. you have a secret you want to send to a friend. You want to lock the message in a box, but you don't want to let him have the key to your lock.

2. Put the message in the box. Put your padlock through the handle and lock it so no-one can open it. Send it to your friend

3. Your friend knows the message is valid and it came from you because he's got a list of all the serial numbers of the valid padlocks. He can't open it though because he doesn't have your key.

4. Your friend puts his own padlock through the handle next to yours and sends it back to you

5. You know it got to your friend OK, because you know the serial number of his padlock, even though you can't open it as you don't have a copy of his key.

6. You know it's safe, so you remove your padlock and send it back to your friend

7. Your friend now removes his padlock, opens the box and reads the message.

You have successfully exchanged a secret message without either of you knowing the other's secret code/key.

Now imagine this done with software in microseconds.


Tim H.
1986 4/4 VVTi Sport, 2002 LR Defender, 2022 Mini Cooper SE