Practical Programming - Pt 8.1: Diffie Hellman