Diffie-Hellman key agreement method