도청자가 보는 것
public기준점과 양쪽 공개값은 볼 수 있지만, 임시 비밀값 a와 b는 네트워크에 나오지 않는다.
각자의 임시 비밀값은 로컬에만 두고, 공개 채널에는 계산된 공개값만 보낸다.
a
g^a mod p →
(g^b)^a = g^(ab)
b
← g^b mod p
(g^a)^b = g^(ab)
기준점과 양쪽 공개값은 볼 수 있지만, 임시 비밀값 a와 b는 네트워크에 나오지 않는다.
순수 DH만 쓰면 중간자가 공개값을 바꿔 끼울 수 있다. TLS는 인증서 서명으로 이 구멍을 막는다.
임시 비밀값이 안전하게 폐기되면, 나중에 서버 장기 키만 유출되어도 과거 공유 비밀을 복원하기 어렵다.