상세 컨텐츠

본문 제목

키 관리

암호학

by 나야홍박사 2026. 4. 9. 17:36

본문

1. 비밀키(대칭키) 분배의 어려움과 키 계층 구조

비밀키 방식에서는 수신자와 송신자가 동일한 키를 가져야 합니다.

    • 기존 분배 방식의 한계: 물리적인 방법으로 키를 전달하는 것은 링크 암호화에서는 가능하지만 단대단(End-to-End) 암호화에서는 적용이 어려움
      •  이전 키를 사용하여 암호화된 새로운 키를 전송하는 방법도 있지만, 공격자에게 한 번 키가 노출되면 이후의 모든 키가 노출된다는 치명적인 단점이 있음
    • 키 계층 구조: 이 문제를 해결하기 위해 두 가지 키를 분리하여 운영
      • 마스터키: 키 분배 센터(KDC)와 사용자가 공유하는 유일한 장기 키로, 통신 개체가 N개일 때 N개의 마스터키가 필요함
      • 세션키: 종단 시스템 간의 실제 통신을 암호화하는 임시 키로, 논리적 연결에 사용된 후 폐기됨
        • N개의 개체가 통신할 경우 $N(N-1) / 2$개의 세션키가 필요

2. 제3자 신뢰 기관: KDC를 이용한 비밀키 분배 (Kerberos 방식)

단대단 암호화에서 널리 채택되는 방식은 제3자인 '키 분배 센터(KDC)'를 통하는 것입니다. 각 사용자 A와 B는 KDC와 각각의 마스터키($KA$, $KB$)를 공유하고 있다고 가정합니다.

  • (1) 세션키 요구: 발신자 A가 KDC에게 세션키를 요구하며 A와 B의 신원 정보(ID)를 보냄
    • (Request || ID(A), A, B)
  • (2) KDC의 키 배포: KDC는 A와 B에게 세션키(SK)와 상대의 신원정보, 타임스탬프(T)를 묶어 각자의 마스터키로 암호화하여 배포
    • ($E_{KA}[SK, ID(B), T]$, $E_{KB}[SK, ID(A), T]$).
  • (3) 신원 확인 (A$\rightarrow$B): A는 전달받은 세션키를 이용해 $E_{SK}[ID(A), T]$를 B에게 전송하여 통신을 시작하고, B는 A의 신원 확인
  • (4) 추가 인증 (B$\rightarrow$A): B는 수신 확인 및 인증을 위해 타임스탬프에 1을 더하여 $E_{SK}[ID(B), T+1]$를 A에게 전송하고, A는 이를 통해 B의 신원을 최종 확인

3. 공개키 분배의 유효성과 SESAME 프로토콜

공개키 방식에서도 키를 단순히 공개 발표하거나, 기관의 디렉토리에 등록하여 전자적으로 접근하게 하는 방법이 있습니다. 하지만 이런 방식은 다른 사용자로 위장하여 공개키를 공개하거나, 디렉토리 정보 자체를 수정해 임의의 가입자로 위장하는 문제점이 존재합니다.

 

이를 해결하기 위해 공개키 기관을 거쳐 세션키를 분배하는 과정(SESAME)을 거칩니다.

  1. A가 B의 공개키를 타임스탬프와 함께 공개키 기관에 요구합니다.
  2. 기관은 B의 공개키를 기관의 개인키로 암호화(서명)하여 A에게 전송합니다.
  3. A는 B의 공개키를 확보한 후, 자신의 식별자와 임시비표($N_1$)를 B의 공개키로 암호화하여 B에게 보냅니다.
  4. B 역시 공개키 기관을 통해 A의 공개키를 안전하게 획득합니다.
  5. B는 임시비표 $N_1$, $N_2$를 A의 공개키로 암호화해 A에게 응답합니다.
  6. A는 $N_2$를 다시 B의 공개키로 암호화해 전송하여 서로를 인증합니다.
  7. 마지막으로 A는 실제 통신에 쓸 세션키($Ks$)를 선택하여, 이를 자신의 개인키로 서명하고 다시 B의 공개키로 암호화($E_{KUb}[E_{KRa}[Ks]]$)하여 B에게 전송합니다.

'암호학' 카테고리의 다른 글

전자 서명과 PKI  (0) 2026.04.09
해쉬(Hash) 함수  (0) 2026.04.09
공개키 암호  (0) 2026.04.09
비밀키 암호  (0) 2026.04.09
암호의 개념과 고전 암호  (1) 2026.03.18

관련글 더보기