Diffie Hellman Key Algorithm