new exercise diffie-hellman