상세 컨텐츠

본문 제목

전자 서명과 PKI

암호학

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

본문

1. 전자문서와 전자상거래의 문제점 해결

  • 전자문서의 한계: 물리적 특성으로 위변조를 식별할 수 있는 종이와 달리, 전자문서는 위변조가 쉽고(무결성 위협), 누가 작성했는지 입증하기 어려움 (부인방지 위협)
  • 전자상거래의 위협: 비대면 환경이라 거래 상대방의 신원 확인이 곤란하고(사용자 인증 위협), 네트워크 전송 내용의 비밀 유지가 어려움 (기밀성 위협)

이를 극복하기 위한 전자서명의 4가지 요건은 다음과 같습니다.

  1. 위조 불가 (Not forgeable): 합법적인 개인키 소유자(행위자) 외에는 서명 생성이 불가함을 증명해야 함
  2. 변경 불가 (Unalterable): 서명한 문서의 내용이나 서명 자체가 변경되지 않음을 증명해야 함
  3. 부인 불가 (Non-Repudiation): 서명은 오직 본인 이외에는 불가능하므로 사후에 부인할 수 없음을 증명함
  4. 재사용 불가 (Not Reusable): 해당 서명을 복사해 다른 전자문서의 서명으로 사용할 수 없음을 증명해야 함

2. 공개키를 이용한 전자서명 원리

전자서명에서 개인키는 서명자 본인의 '인감도장' 역할을 하고, 공개키는 서명을 확인하는 '인감증명서' 역할을 합니다.

  1. 전송할 평문의 메시지 다이제스트(해시값) 계산
  2. 계산된 다이제스트를 송신자의 개인키로 암호화 [전자서명]
  3. 메시지와 전자서명을 함께 수신자에게 전송
  4. 수신자는 받은 메시지에서 직접 메시지 다이제스트 계산
  5. 송신자로부터 온 전자서명을 송신자의 공개키로 복호화
  6. 복호화하여 나온 해시값과 4번에서 직접 계산한 해시값을 비교하여, 일치하면 문서의 무결성과 송신자의 신원을 확신할 수 있음

3. 하이브리드 암호 시스템: 전자봉투 (Digital Envelope)

전자봉투 방식은 처리 속도가 빠른 대칭키 암호와, 키 관리가 편한 공개키 암호의 장점을 모두 결합해 '서명'과 '기밀성'을 동시에 달성합니다.

  1. 송신자는 난수를 생성하여 이를 통신에 쓸 대칭키(비밀키/세션키)로 지정
  2. 용량이 큰 본문 메시지는 속도가 빠른 이 대칭키로 암호화
  3. 128비트짜리 대칭키 자체는 수신자의 1024비트 공개키로 암호화 이렇게 키를 암호화한 패키지를 '전자봉투'라고 부름
  4. 송신자는 전자봉투와 암호화된 메시지를 수신자에게 함께 전송
  5. 수신자는 자신의 개인키로 전자봉투를 열어(복호화) 128비트 대칭키를 획득하고, 이 대칭키로 암호 메시지를 복호화하여 평문을 읽음

4. PKI 구성요소와 X.509 인증서

위의 모든 시스템이 동작하려면 서명을 검증할 때 사용하는 '공개키'가 정말 그 사람의 것인지 믿을 수 있어야 합니다. 이를 위해 공인된 기관이 보증을 서주는 체계가 PKI입니다.

  • 인증서의 정의: 개인키와 한 쌍인 공개키가 특정 자연인 또는 법인의 소유임을, 인증기관이 자신의 개인키로 전자서명하여 증명하는 전자적 정보 (현실의 인감증명서 역할)
  • X.509 (RFC 2459): 인증서의 국제 표준 포맷으로, 약 1KB 정도의 바이너리 데이터로 이루어져 있음
    • 내부에는 확장 항목 외에 서명 전 인증서 내용(tbsCertificate), 메시지 다이제스트 및 공개키 알고리즘 명세, 인증기관 정보 등이 필수로 포함
  • 인증서 발행: 사용자가 공개키를 인증기관에 등록하면, 기관은 이를 자신의 개인키로 서명하여 발행

📌 PKI의 핵심 구성 기관

  • CA (Certificate Authority): 루트 CA 및 공인인증기관으로, 인증서를 발행하는 주체
  • RA (Registration Authorities): 사용자의 신원을 대면 혹은 온라인으로 확인하고 등록 업무를 수행하는 기관
  • CRL (Certificate Revocation List): 유효기간이 지나기 전 개인키가 유출되는 등의 이유로 폐지된 인증서들의 블랙리스트(폐지 목록)
    • 인증 서버는 통신 전 이 CRL을 참조하여 인증서의 유효성 검증

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

해쉬(Hash) 함수  (0) 2026.04.09
키 관리  (0) 2026.04.09
공개키 암호  (0) 2026.04.09
비밀키 암호  (0) 2026.04.09
암호의 개념과 고전 암호  (1) 2026.03.18

관련글 더보기