666. 디피-헬만 (Diffie-Hellman Key Exchange) 상호 키 교환 원리

핵심 인사이트: 앨리스와 밥은 철저히 도청당하고 있는 투명한 유리방(인터넷) 안에서 대칭키(열쇠)를 교환해야 한다. 열쇠를 그냥 던져주면 해커가 복사해서 가로챈다. 디피-헬만은 두 사람이 투명한 방 안에서 각자 '자기만 아는 물감'을 섞어 공중에 던지는 마법이다. 둘의 물감이 합쳐지는 순간, 둘의 손에는 똑같은 색(암호키)이 만들어지지만, 밖에서 지켜보던 해커는 절대 그 색을 만들 수 없다.

Ⅰ. 대칭키 배송의 저주를 깬 최초의 발명품

앞선 653번 문서에서 **대칭키(AES)의 치명적 단점은 "암호화용 열쇠를 어떻게 상대방에게 해커 몰래 전달할 것인가?(키 배송 문제)"**라고 배웠습니다. 1976년, 휘트필드 디피(Diffie)와 마틴 헬만(Hellman)은 이산대수(DLP)의 수학적 난제를 이용해, 서로 얼굴을 한 번도 본 적 없는 두 사람이 도청당하는 인터넷상에서 당당하게 평문으로 숫자를 주고받으면서도 둘만이 아는 완벽한 '공통 비밀키'를 만들어내는 기적의 알고리즘을 발명했습니다. (비대칭키 암호학의 시초가 됨)

Ⅱ. 디피-헬만 키 교환의 동작 원리 (물감 비유) 🌟

수학(이산대수) 대신 직관적인 물감 섞기로 이해하는 것이 전 세계의 국룰입니다.

  1. 공개 정보 공유: 앨리스와 밥은 인터넷 게시판(도청 가능)에 "우리 기본 베이스 물감으로 노란색을 쓰자"고 대놓고 약속합니다. (해커도 노란색을 봅니다.)
  2. 개인키 생성: 앨리스는 자신만 아는 빨간색 물감을, 밥은 자신만 아는 파란색 물감을 각자 몰래 고릅니다. (절대 남에게 안 보여줌)
  3. 혼합 및 전송 (핵심):
    • 앨리스는 기본(노란색)에 자기꺼(빨간색)를 섞어 주황색을 만듭니다.
    • 밥은 기본(노란색)에 자기꺼(파란색)를 섞어 초록색을 만듭니다.
    • 이 섞인 주황색초록색을 인터넷으로 쿨하게 서로에게 전송합니다. (해커가 중간에 주황색, 초록색 물감을 가로챕니다.)
  4. 비밀키 완성:
    • 앨리스는 밥에게 받은 초록색에 자신의 몰래 간직한 빨간색을 섞습니다. 👉 (노랑+파랑) + 빨강 = 똥색 완성!
    • 밥은 앨리스에게 받은 주황색에 자신의 몰래 간직한 파란색을 섞습니다. 👉 (노랑+빨강) + 파랑 = 똥색 완성!
    • 두 사람은 서로 열쇠를 직접 주지 않았는데도 똑같은 '똥색(대칭 암호키)'을 공유하게 되었습니다.

Ⅲ. 해커(스니퍼)의 절망

  • 해커는 인터넷을 도청하며 노란색, 주황색, 초록색 물감을 모두 손에 넣었습니다.
  • 하지만 물감이 한 번 섞이면 다시 분리할 수 없듯이(이산대수의 일방향성), 앨리스의 진짜 비밀인 '빨간색'이 몇 스푼 들어갔는지 절대 역추적할 수 없습니다. 따라서 해커는 죽었다 깨어나도 '똥색(비밀키)'을 만들어 낼 수 없습니다.

Ⅳ. 치명적인 약점 (MITM, 중간자 공격) 🌟

디피-헬만은 도청(스니핑)에는 우주 최강이지만, 중간에 끼어드는 **중간자 공격(Man-In-The-Middle Attack)**에는 무기력하게 당합니다.

  • 해커의 위장: 앨리스가 "주황색 물감"을 밥에게 던질 때, 중간에 있는 해커 다스가 잽싸게 가로챕니다. 그리고 다스는 자기가 만든 "보라색 물감"을 마치 앨리스인 척 밥에게 줍니다.
  • 밥은 다스와 똥색 열쇠를 만들고, 앨리스도 다스와 똥색 열쇠를 만들게 됩니다. 두 사람은 서로 통신한다고 착각하지만, 실제로는 다스가 중간에서 양쪽의 암호를 모두 다 풀어보며(도청/조작) 비웃고 있게 됩니다.
  • 해결책: 이를 막기 위해 반드시 통신 전, 상대방이 가짜인지 확인하는 전자 서명(RSA, 인증서) 과정을 추가하여 결합해 사용해야 합니다.

📢 섹션 요약 비유: 디피-헬만은 두 명의 마술사가 유리방 안에서 서로 각자의 비밀 레시피가 담긴 음료를 공중에 뿌려 섞어 마시는 것입니다. 밖에서 유리방을 구경하는 도둑(해커)은 공중에 뿌려진 혼합 음료의 색깔만 볼 뿐, 그 안에 설탕과 소금이 몇 그램씩 들어갔는지 절대 분해해 낼 수 없습니다. 오직 마술사 둘만이 자기 레시피를 추가해 완벽히 똑같은 맛의 마법 물약(암호 키)을 마실 수 있습니다.