살구.LOG

PGP(Pretty Good Privacy) 동작 원리 및 암호화 알고리즘 본문

정보보호/기술

PGP(Pretty Good Privacy) 동작 원리 및 암호화 알고리즘

Salgoo26 2026. 6. 9. 19:10

PGP는 이메일 및 파일을 암호화하고 전자 서명을 생성하는 데 사용되는 강력한 보안 소프트웨어 및 프로토콜이다.

이메일이 전송되고 수신될 때 내부에서 어떤 과정을 거치며, 각 단계마다 어떤 암호화 알고리즘이 사용되는지 알아보자.

 

1. 송신자 (보내는 사람) : 서명 및 암호화 과정

① 해시(Hash) 추출 및 전자서명 생성

  • 동작: 메일 원문을 해시 함수에 넣어 고정된 길이의 '해시값'을 추출한다. 이 해시값을 송신자의 개인키로 암호화하여 '전자서명'을 생성한다.
  • 목적: 데이터 무결성 보장, 발신자 신원 인증 및 부인방지
  • 사용 알고리즘
    • 해시 알고리즘: SHA-256, SHA-512 (과거 MD5, SHA-1 사용)
    • 서명 알고리즘: RSA, DSA

② 데이터 압축

  • 동작: 메일 원문과 생성된 전자서명을 하나로 묶어 압축
  • 목적: 네트워크 전송 용량 최소화 및 암호 분석 공격(Cryptanalysis) 방어력 향상
  • 사용 알고리즘: ZIP, ZLIB, BZIP2

③ 세션키 생성 및 데이터 암호화 (대칭키 사용)

  • 동작: PGP 시스템이 난수를 발생시켜 일회용 대칭키인 '세션키(Session Key)'를 생성. 이 세션키로 압축된 데이터 전체를 빠르게 암호화한다.
  • 목적: 대용량 메시지의 기밀성을 고속으로 확보
  • 사용 알고리즘: AES (현재 표준), IDEA (초기 PGP 표준), CAST-128, 3DES

④ 세션키 암호화 (공개키 사용)

  • 동작: 데이터를 잠글 때 사용한 일회용 '세션키'를 수신자의 공개키로 한 번 더 암호화
  • 목적: 세션키를 네트워크상에서 안전하게 수신자에게 전달 (수신자의 개인키로만 열 수 있음)
  • 사용 알고리즘: RSA, ElGamal

⑤ 최종 전송

  • 암호화된 데이터(③)와 암호화된 세션키(④)를 결합하여 최종적으로 이메일을 전송

 

2. 수신자 (받는 사람) : 복호화 및 검증 과정

수신 과정은 송신 과정의 정확한 역순으로 진행된다.

① 세션키 복호화

  • 수신자는 본인의 개인키를 사용하여 암호화된 세션키를 복호화 (RSA, ElGamal)

② 데이터 복호화

  • 확보한 세션키(대칭키)를 이용해 암호화되어 있던 메일 본문 데이터를 복호화한다. (AES, IDEA 등)

③ 압축 해제

  • 복호화된 데이터의 압축을 풀어 '메일 원문'과 '전자서명'으로 분리 (ZIP, ZLIB)

④ 전자서명 검증

  • 송신자의 공개키로 전자서명을 복호화하여 원본 해시값을 확인
  • 동시에 수신한 메일 원문을 직접 해시 함수에 넣어 새로운 해시값을 계산한다.
  • 두 해시값이 완벽히 일치하면 내용 변조가 없었으며, 정상적인 송신자가 보냈음이 최종 검증된다.

'정보보호 > 기술' 카테고리의 다른 글

RSA 암호화 알고리즘  (0) 2026.06.09
해시함수의 성질  (0) 2026.06.09
IDS(침입 탐지 시스템)의 분류  (0) 2026.06.08
VPN의 종류  (1) 2026.06.08
암호화 알고리즘  (0) 2026.06.07