본문 바로가기
목차
CE

Cryptography: From Symmetric-Key Encryption to TLS

by ds31x 2026. 1. 29.
728x90
반응형

1. Symmetric Key Cryptography (대칭키 암호)

1.1 개념

대칭키 암호는 암호화와 복호화에 동일한 키를 사용하는 암호 방식..

  • 송신자와 수신자가 같은 비밀 키(secret key)를 공유
  • 매우 빠른 속도로 대량의 데이터를 암호화 가능

대표적인 알고리즘은 다음과 같다.

  • DES (Data Encryption Standard)
  • AES (Advanced Encryption Standard)
  • ChaCha20

1.2 도입과 발전

  • 개념적 사용: 고대부터 존재 (치환 암호 등)
  • 현대적 대칭키 암호 체계 정립: 1970년대
    • DES 공개: 1977년
    • AES 표준화: 2001년

1.3 한계점

대칭키 암호의 가장 큰 문제는 키 전달(key distribution) 임..

  • 통신 전에 비밀 키를 안전하게 전달 해야 함
  • 네트워크 환경 에서는 키 유출 위험이 큼

이 문제를 해결하기 위해 공개키 암호(public key cryptography)가 등장.


1.4 현재 상황

  • 여전히 모든 실무 암호 시스템의 핵심 : session당 임시 대칭키를 활용.
  • TLS, SSH, PGP 모두 실제 데이터 암호화는 대칭키 사용
  • 공개키 암호는 보조 역할(인증, 키 교환)에 집중

2. Public Key Cryptography (공개키 암호)

2.1 개념

공개키 암호는 서로 다른 두 개의 키를 사용하는 암호 방식 임.

  • Public key(공개키): 누구에게나 공개
  • Private key(개인키): 소유자만 보관

두 키는 수학적으로 연결된 key pair 임.


2.2 공개키 암호의 역할

공개키 암호는 다음 문제를 해결:

  • 안전한 키 교환
  • 사용자 또는 서버 인증
  • 전자서명 생성 및 검증

공개키 암호는 속도가 느리기 때문에,
실제 데이터 암호화보다는 초기 신뢰 형성 단계에서 사용됨.

 

단, identity와 public key를 binding (공개키신뢰)하는 것은 여전히 해결해야하는 난제임:

2026.01.28 - [CE] - Comparison of Public Key–Owner Binding Models: WoT, email-key binding, CA/Certificate

 

Comparison of Public Key–Owner Binding Models: WoT, email-key binding, CA/Certificate

Comparison of Public Key–Owner Binding Models (Trust Model)공개키 암호에서 가장 중요한 문제는어떤 공개키(public key)가 어떤 주체(identity, owner)에 대응되는지를 어떻게 확인하느냐임이를 "공개키에 대한 trust

ds31x.tistory.com


2.3 도입 연도

  • 공개키 암호 개념 제안: 1976년
    • Diffie-Hellman 논문 발표
  • RSA 알고리즘 공개: 1977년

2.4 현재 상황

  • 단독 사용보다는 대칭키 암호와 결합된 형태로 사용
  • TLS, SSH, PGP/GPG의 핵심 기반 기술
  • 현대 암호 시스템의 출발점

3. PGP (Pretty Good Privacy)

3.1 목적

PGP는 개인 간 메시지와 파일을 안전하게 보호하기 위한 암호 시스템 임.

다음에 주로 이용됨:

  • 이메일 암호화
  • 파일 암호화
  • 전자서명

3.2 암호 구조

PGP는 공개키 암호와 대칭키 암호를 결합하여 사용.

  1. 메시지마다 임시 대칭키 생성
  2. 메시지는 대칭키로 암호화
  3. 대칭키는 수신자의 public key로 암호화

3.3 도입 연도

  • PGP 최초 공개: 1991년 (Phil Zimmermann)

3.4 신뢰 모델

PGP는 중앙 인증기관(CA)을 사용하지 않는 특징을 가짐: WoT.

  • 개인이 개인의 public key에 서명
  • 신뢰가 네트워크 형태로 확장
  • 이를 Web of Trust라고 부름

3.5 현재 상황

  • 사용자는 소수
  • 개발자, 연구자, 보안 중심 사용자 위주로 사용
  • 개념적 중요성은 여전히 큼

4. GPG (GNU Privacy Guard)

4.1 개념

GPG는 PGP 표준(OpenPGP)을 구현한 자유 소프트웨어 도구 임.

  • PGP: 표준과 개념
  • GPG: 실제 구현 프로그램

https://ds31x.github.io/wiki/gpg/

 

GNU Privacy Guard (GPG)

 

ds31x.github.io


4.2 도입 연도

  • GPG 최초 공개: 1999년

4.3 기능

  • 공개키/개인키 생성
  • 파일 및 메시지 암호화
  • 전자서명 및 검증
  • 키 서버를 통한 공개키 배포

4.4 현재 상황

  • 오픈소스 진영에서 사실상 표준 PGP 도구
  • Git commit 서명, 패키지 무결성 검증에 활용
  • 실무 보안 도구로 안정적 사용 중

5. SSH (Secure Shell)

5.1 목적

SSH는 원격 시스템에 안전하게 접속하기 위한 네트워크 프로토콜 임.

  • 원격 로그인
  • 원격 명령 실행
  • 파일 전송

2025.08.05 - [utils] - ssh (Secure SHell) 사용 방법

 

ssh (Secure SHell) 사용 방법

SSH 는 Secure SHell의 약자로 암호화된 보안 연결을 통해 원격 서버에 안전하게 접속하고 명령을 실행할 수 있게 해주는 네트워크 프로토콜을 가리킴. (이를 사용하는 클라이언트 및 앱을 가리키기

ds31x.tistory.com

2026.01.10 - [Linux] - sftp - Secure FTP

 

sftp - Secure FTP

Intro.sftp는 내 컴퓨터와 원격 서버 사이에서 파일을 안전하게 주고받기 위한 프로그램.SSH 연결을 그대로 사용 ,별도의 계정이나 비밀번호를 또 만들 필요가 없음.openssh-server 설치시sftp도 서브시

ds31x.tistory.com

 

2024.12.26 - [Linux] - [Linux] scp: Secure Copy Protocol

 

[Linux] scp: Secure Copy Protocol

0.scp란?scp 는 파일을 한 컴퓨터에서 다른 컴퓨터로 안전하게 복사하기 위한 명령어 및 프로토콜SSH(Secure Shell) 프로토콜을 사용하여 데이터 전송 중에 암호화를 제공1.로컬로 특정 파일 복사해오

ds31x.tistory.com


5.2 공개키 암호의 사용 방식

SSH는 공개키 암호를 사용자 인증(authentication)에 사용됨:

  • 비밀번호 대신 private key로 인증
  • private key는 외부로 전송되지 않음

2023.12.27 - [utils/git and github] - [ssh-keygen] ssh 정의 및 private key와 public key 생성하기.

 

[ssh-keygen] ssh 정의 및 private key와 public key 생성하기.

ssh (secure shell)ssh는 secure shell의 약자로 네트워크 상에서 암호화된 통신을 위한 프로토콜 (및 이를 구현한 프로그램)을 가르킴. 주로 원격지의 장비에 보안이 보장된 접속을 제공하며 이를 위해

ds31x.tistory.com


5.3 도입 연도

  • SSH 최초 공개: 1995년

5.4 현재 상황

  • 서버 관리의 사실상 표준
  • GitHub, GitLab 등 개발 플랫폼의 기본 인증 수단
  • 비밀번호 인증보다 훨씬 안전한 방식으로 평가됨

2023.12.27 - [utils/git and github] - [github] ssh 키 등록하기.

 

[github] ssh 키 등록하기.

Github 계정에 사용할 ssh 키 만들기2023.12.27 - [utils/git and github] - [ssh-keygen] ssh 관련 private key와 public key 생성하기. [ssh-keygen] ssh 관련 private key와 public key 생성하기.ssh (secure shell)ssh는 secure shell의 약자

ds31x.tistory.com


6. TLS (Transport Layer Security)

6.1 목적

TLS는 네트워크 통신 전체를 안전하게 보호하기 위한 보안 프로토콜 임.

  • HTTPS
  • API 통신
  • 이메일 전송 보안

6.2 TLS의 암호 구조

TLS는 다음 구조를 가진다.

  • 공개키 암호: 서버 인증, 키 교환
  • 대칭키 암호: 실제 데이터 암호화

6.3 도입 연도

  • SSL 최초 공개: 1995년
  • TLS 1.0 표준화: 1999년
  • TLS 1.3 표준화: 2018년

6.4 신뢰 모델

TLS는 CA(Certificate Authority) 기반 중앙 신뢰 모델을 사용한다.

  • CA가 서버 인증서를 서명
  • 브라우저와 OS는 CA를 미리 신뢰

6.5 현재 상황

  • 인터넷 보안의 핵심 인프라
  • HTTPS는 사실상 필수 요소
  • TLS 1.3 중심으로 빠르게 전환 중

7. 전체 흐름 요약

기술 도입 연도 역할 현재 위치
대칭키 암호 고대~1970s 데이터 암호화 모든 시스템의 핵심
공개키 암호 1976 인증, 키 교환 기반 기술
PGP 1991 개인 간 암호화 제한적 사용
GPG 1999 PGP 구현체 개발자 중심
SSH 1995 원격 접속 인증 서버 표준
TLS 1999 통신 보안 인터넷 필수

결론

현대 보안 시스템은 대칭키 암호의 효율성, 공개키 암호의 신뢰 형성 능력, 그리고 이를 결합한 PGP, SSH, TLS와 같은 프로토콜 위에서 동작하고 있음

728x90