👩💻 Join our community of thousands of amazing developers!
This article assumes knowledge of basic group theory, and basic asymptotic complexity (big O notation). For efficiency reasons, most encryption used on the internet and elsewhere is done using symmetric-key algorithms. A symmetric key algorithm uses one key for both encryption and decryption. This requires the sender and receiver to share knowledge of a secret key. For two parties who have never communicated securely before, this is a non-trivial problem. How does one establish a shared secret u...