비대칭키 암호(Asymmetric Cryptography)

암호화할 때 사용되는 키와 복호화할 때 사용하는 키가 서로 다른 암호 알고리즘

키 배송 문제

대칭키 암호를 사용하기 위해서는 키 배송 문제가 발생함.

해결방법

  • 키 사전 공유
    • 키 관리기관(TA, Trusted Authority)이 사전에 송수신자들에게 비밀 경로를 통하여 키를 전달
    • 문제점
      • TA가 모든 사용자들의 키(𝑛(𝑛−1)/2개)를 관리해야 함
      • TA와 사용자 간의 안전한 통로 확보 문제
  • 온라인 키 분배
    • 키배포 센터(KDC, key distribution center)에서 키를 전달
    • 배포 과정
      • 키배포 센터에 통신을 위한 키 요청
      • 키배포 센터는 의사난수 생성기를 통해 세션키를 생성
      • 사용자의 키로 세션키를 암호화하여 전달
      • 사용자는 자신의 키로 복호화하여 세션키를 얻음
  • Diffie-Hellman의 키 교환
  • 공개키 암호

Diffie-Hellman의 키 교환

  • 최초의 비밀키 교환 프로토콜
  • 이산 로그 문제를 활용
    • y = g^x mod p: y, p, g를 아는 상태에서 x는 구하기 어렵다는 문제
    • Key = g^xy mod p: p와 g가 알려져도 x, y는 알 수 없음
  • 실제로는 키를 교환하는 것이 아니라 공유하는 키를 생성

키 교환 절차

  • 통신의 주체는 두개의 수 p와 g를 선택
    • p(1024bit, 300자리가 넘는 십진수)
    • g(1 < g < p-1)
  • Alice는 개인키 x를 정하고, R1 = g^x mod p 를 계산
  • Bob은 개인키 y를 정하고, R2 = g^y mod p 를 계산
  • 서로에게 R1, R2(공개키)를 전달
  • Alice는 (R2)^x mod p, Bob은 (R1)^y mod p를 계산하여 비밀키 도출
  • 이후 비밀키를 사용하여 통신

공격

  • 이산대수 공격
    • R1, R2 를 도청자가 가로채 x, y를 구하게 되면 K를 알아 낼 수 있다.
    • 비밀키의 역할을 할 수 없음
  • 중간자 공격(MITM, Man-In-The-Middle Attack)
    • 공격자는 키 교환 중간에 끼어들 수 있음
    • 통신 주체간 인증단계가 없기 때문
    • 해결 방법
      • 전자서명과 공개키 인증서
      • 국대국 프로토콜(STS, Station-To-Station Protocol)

공개키 암호

  • 수학적으로 해결하기 곤란한 문제를 기반으로 기밀성 유지
  • 전자문서의 무결성과 부인방지 기능을 가지는 전자서명 구현, 다양한 암호 프로토콜에 사용 가능
  • 공개키(암호화키), 개인키(복호화키)로 분리
    • 두 키는 수학적 관계로 이루어져 있으므로 별개로 생성 불가

통신 과정

  • 수신자는 공개키를 송신자에게 전달
  • 송신자는 공개키를 이용하여 세션키를 암호화하고 수신자에게 전달
  • 수신자는 개인키로 암호문을 복호화