insight/Diffie-Hellman

Diffie-Hellman key exchange

whjungdev 2024. 9. 13. 22:31

유래

  • Whitfield DiffieMartin Hellman이 1976년에 암호 키를 교환하는 방법을 제시하였다.
  • 발명에 기여한 두 사람의 이름을 따 Diffie-Hellman이 되었다.
  • 안전하지 않는 채널에 공유 비밀키를 설정할 수 있는 방법이다.

 

방식

칼러로 빗대어 설명된 그림 - 위키피디아 참고

알리스와 밥은 임의의 시작 색상을 동의합니다.

"노란색"으로 공통으로 시작해봅니다.

알리스는 "주황색"을 비밀 색상으로 선택합니다.

밥은 "청록색"을 비밀 색상으로 선택합니다.

알리스의 "노란색"+"주황색" -> "황토색"을 공유합니다.

밥은 "노란색"+"청록색" -> "연파란색"을 공유합니다.

각자 공유된 색상과 비밀 색상을 혼합하면 같은 비밀 색상인 "진한갈색"이 완성됩니다.

 

암호화 수식으로 정리된 내용은 위키디피아를 참고하면 좋을 것으로 보입니다.

- https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

 

Diffie–Hellman key exchange - Wikipedia

From Wikipedia, the free encyclopedia Method of exchanging cryptographic keys With Diffie–Hellman key exchange, two parties arrive at a common secret key, without passing the common secret key across the public channel. Diffie–Hellman (DH) key exchange

en.wikipedia.org

 

안전한가?

- Chatgpt 답변으로 대체합니다.

  1. VPN (Virtual Private Network):
    • VPN 연결을 설정할 때 안전한 키 교환을 위해 Diffie-Hellman 알고리즘을 사용합니다. 예를 들어, IPSec과 같은 VPN 프로토콜에서 DH 키 교환은 클라이언트와 서버 간의 세션 키를 안전하게 생성하는 데 사용됩니다.
  2. TLS/SSL (Transport Layer Security / Secure Sockets Layer):
    • Diffie-Hellman 키 교환은 웹 브라우저와 서버 간의 HTTPS 연결에서 사용됩니다. 이를 통해 두 장치가 공유하는 비밀 키를 생성하고, 이후 데이터를 암호화하여 전송합니다. 특히 DHE (Diffie-Hellman Ephemeral) 방식은 매 세션마다 새로운 키를 생성해 향상된 보안을 제공합니다.
  3. SSH (Secure Shell):
    • SSH는 네트워크를 통한 안전한 원격 접속을 제공하는 프로토콜로, DH 키 교환을 사용하여 클라이언트와 서버 간의 세션 암호화 키를 안전하게 교환합니다.
  4. PGP/GPG (Pretty Good Privacy / GNU Privacy Guard):
    • Diffie-Hellman은 이메일 암호화 및 디지털 서명에 사용되는 PGP와 GPG에서도 사용됩니다. 이 방법을 통해 송신자와 수신자가 안전하게 데이터를 주고받을 수 있습니다.
  5. Wireless Security (WPA3):
    • WPA3라는 최신 Wi-Fi 보안 프로토콜은 Diffie-Hellman 키 교환의 변형인 **Simultaneous Authentication of Equals (SAE)**를 사용해 Wi-Fi 네트워크에서 안전한 인증을 제공합니다.
  6. Bluetooth Secure Simple Pairing:
    • BLE(Bluetooth Low Energy) 환경에서 Diffie-Hellman을 사용하는 방식으로 기기 간에 안전하게 암호화 키를 교환합니다. 특히 인증되지 않은 기기 간의 보안 강화를 위해 사용됩니다.

Diffie-Hellman은 데이터 전송 중간에서 키 교환을 가로채려는 공격을 방지하며, 해커가 통신 내용을 알아낼 수 없도록 중요한 비밀 키를 안전하게 공유하는 데 매우 중요한 역할을 합니다.