개념 사전 · 개념

Diffie–Hellman 키 합의

DH · Diffie-Hellman · 디피 헬먼

Diffie–Hellman은 서로의 공개값을 교환하고 각자의 비밀값으로 같은 공유 비밀을 계산하는 키 합의 방식이다. 계산값이 같다는 사실만으로 상대 신원을 알 수 없으므로 서명·인증 등과 결합한다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

01무엇이고, 어떤 일을 하나

  • 비밀키 자체를 통신로에 보내지 않고 공통 비밀을 만든다.
  • 임시 키를 이용해 장기 인증키와 세션 보호키의 의존성을 줄인다.
  • 같은 프로토콜의 키 도출 재료를 제공한다.

02어떤 순서로 동작하나

  1. 비밀값 선택

    공개된 p·g 아래에서 두 참여자가 각자 비밀 지수 a·b를 고른다.

  2. 공개값 교환

    A=g^a mod p와 B=g^b mod p를 교환하며 비밀 지수 자체는 보내지 않는다.

  3. 공유값 계산

    한쪽은 B^a, 다른 쪽은 A^b를 mod p로 계산하여 같은 g^(ab)를 얻는다.

  4. 상대와 결합

    만으로 상대가 인증되지는 않으므로 같은 프로토콜이 서명과 협상 문맥을 연결한다.

03먼저 알아둘 용어와 구성요소

연산에 사용하는 공통 수학적 매개변수.
세션마다 생성하고 보호해야 하는 비밀값.
타원곡선 위에서 임시 키로 수행하는 계열 키 합의.
장기 인증키 유출이 과거 세션키 복원으로 바로 이어지지 않도록 하는 성질.
유한체 에서 연결마다 임시 키를 사용하는 키 합의.

04예제로 따라가기

  • 학습용 p=23, g=5에서 비밀값 6과 15를 사용하면 공개값은 각각 8과 19이며 양쪽 공유값은 2가 된다.
  • 에서는 이 작은 정수 예를 실제 매개변수로 쓰지 않고 승인된 그룹과 충분한 난수로 임시 키를 만든다.
  • 장기 인증키가 나중에 유출되어도 임시 키가 안전하게 폐기된 키 합의는 과거 암호문 보호에 기여한다.

05혼동하기 쉬운 점과 확인 기준

  • 인증하지 않은 교환은 중간자가 각 끝점과 따로 공유값을 만들 수 있는 문제를 해결하지 못한다.
  • 공유 비밀을 그대로 모든 용도의 키로 재사용하지 않고 프로토콜이 정한 KDF와 문맥 분리를 사용한다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.