Public-Key Cryptosystem(a.k.a Asymmetric Cryptosystem)

  • Before the mid 1970s all cipher systems were symmetric key algorithms
  • 여전히 현재도 대칭 키가 많이 쓰인다.
    • 실제로 비대칭 키보다 대칭 키 알고리즘이 속도가 빠르다.

 

Asymmetric key Breakthrough: The Key Exchange Problem

  • 대칭 키 알고리즘의 키 배송 문제
    • 사전에 안전한 방법으로 키를 거네주는 방식으로 기본적으로 모든 사용자 사이에 안전한 통로가 필요하다.
    • 사용자가 많은 경우에는 그만큼 많은 키를 관리해야 하는 문제가 있다.
    • 공격자가 도중에 가로챌 위험이 존재한다.

 

Diffie-Hellman Key Exchange

Diffie와 Hellman이 제안한 최초의 비밀 키 교환 알고리즘이다.

대칭 키는 '키는 이미 정해져 있고 이를 어떻게 공유할까?'라면, Diffie Hellman 키 교환 방식은 '사전에 정해진 키 값은 없고 특정 변수를 받아 각자 계산해 비밀 키를 만들어내는 것'이다.

 

 

RSA, DH와 같은 공개 키 암호화 방식은, 두 타입의 키를 생성한다.

  • public key
    • 데이터를 암호화할 때 쓰인다.
    • Not a secret(공개되어도 된다.)
  • private key
    • 데이터를 복호화할 때 쓰인다.
    • A secret(공개되어서는 안된다.)

 

Public-key 암호화 방식의 응용

  • Encryption/Decryption (Confidentiality)
  • Digital Signatures (Authentication)
    • 아래 예시는 비대칭키를 활용한 Digital Signature인데, 대칭키도 사용될 수 있다. HMAC은 대칭키를 활용한다.

  • Key Exchange

공개키 암호화 방식의 문제는 대칭키 암호화 방식보다 훨씬 느리다는 것이다. Diffie-Hellman은 보통 대칭키 교환을 구현하는데 사용된다.

이것은 종종 hybrid cryptosystem으로도 불린다.

  • 공개키 암호화를 이용하여 key를 Encapsulation한다.
  • 대칭키 암호화를 이용하여 data를 Encapsulation한다.

 

Authenticated Diffie-Hellman Exchange

  • Diffie-Hellman은 키 교환의 문제를 해결했다.
  • 그러나, man-in-the-middle attacks(중간자 공격)에도 안전할까?
    • 예를 들어, 오로지 Bob이라는 사용자와 공유되는 key를 만들었다고 믿고 있지만, 정말 Bob과 공유되는 key라는 것을 확신할 수 있을까? 만약 Attacker와 공유되는 key라면 어떨까?
  • DH에서 어떻게 서로를 authenticate할 수 있을까?(송신자와 수신자의 identity를 증명)
  • 이부분은 추후에 TLS에서 다시 배우도록 하자.

 

Forward Secrecy and Diffie-Hellman

현대의 웹 브라우저와 웹 서버는 기본적으로 RSA보다 DH를 Key Exchange에 선호한다. 그 이유에는 Forward Secrecy가 있다.

  • Forward Secrecy란
    • 비밀키가 노출되었을 경우에도 기존 암호문을 노출된 비밀키로 해독할 수 없도록 보증하는 것이다.
  • RSA는 비밀키가 노출되었을 경우 모든 이전의 통신 암호문들이 해독될 수 있는 위험을 안고 있다.
  • Diffie-Hellman Ephemeral이 그 솔루션이다.
    • 매 커넥션(connection)마다 비밀 키를 생성하고 버린다.
  • private / public key pair를 생성하는 속도는 DHE가 RSA보다 훨씬 빠르다.
  • 그래서 DHE가 TLS 1.3에서 기본 KE algorithm으로 채택되었다.

 

Public Key Infrastructure (PKI)

Digital Certificate 서비스를 위한 roles, policies, hardware, software, procedures를 포함하는 인프라이다. 한국에서는 정부가 발행한 인증서가 국내 사용자의 identity를 증명하는데 사용된다.

 

References

https://skogkatt.tistory.com/29

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기