The Mathematics of Diffie-Hellman Key Exchange