Introduction
Imagine you want to send a secret message to a friend without anyone else reading it, but you can't meet to share a secret key first. This problem needs a way to lock and unlock messages using different keys, so you can communicate safely even if others listen.