🧠 들어가며
인터넷 보안을 제대로 이해하려면 그 기초가 되는 암호학(Cryptography) 을 알아야 합니다. 이번 2강에서는 암호의 기초 개념부터 대칭키·비대칭키 구조, 해시 함수, 디지털 서명, 그리고 암호 시스템 설계 원리까지 폭넓게 다룹니다.
1️⃣ 암호의 개념과 기초
🔐 암호(Cryptography)란?
평문(Plaintext)을 읽을 수 없는 형태의 암호문(Ciphertext)으로 변환하여
정보의 기밀성을 유지하는 기술
- 암호화(Encryption): 평문 → 암호문
- 복호화(Decryption): 암호문 → 평문
- 목적: 제3자의 도청, 위조, 변조로부터 정보 보호
🧩 암호의 구성 요소
| 구성 요소 | 설명 |
|---|---|
| 평문 (Plaintext) | 누구나 읽을 수 있는 일반 메시지 |
| 암호문 (Ciphertext) | 암호화되어 인가된 자만 이해할 수 있는 메시지 |
| 암호키 (Key) | 암호화 및 복호화 시 사용되는 핵심 값 |
| 알고리즘 (Algorithm) | 암호화를 수행하는 수학적 절차 |
2️⃣ 암호의 역사와 발전 과정
📜 고대 암호
| 시대 | 암호 방식 | 설명 |
|---|---|---|
| 고대 그리스 | 스테가노그래피 (Steganography) | 메시지를 숨기는 암호법 — 노예의 머리에 글을 새겨 머리카락이 자란 후 전달 |
| 로마 시대 | 시저 암호 (Caesar Cipher) | 알파벳을 일정 자릿수 이동시켜 치환하는 방식 (예: A→D) |
| 중세 유럽 | 전치 암호 (Transposition Cipher) | 문자의 순서를 바꿔 암호화 (행렬 재배열) |
| 2차 세계대전 | 기계 암호 (Enigma) | 독일군이 사용한 전자식 암호기, 연합군은 이를 해독해 전세를 바꿈 |
💻 현대 암호의 등장
- 1970년대: 컴퓨터의 등장과 함께 디지털 암호학이 본격화
- 1976년: Diffie-Hellman이 공개키(비대칭키) 암호화 개념 제시
- 1977년: IBM의 DES(Data Encryption Standard) 발표
- 2001년: AES(Advanced Encryption Standard) 표준 채택
🔸 고대 → 전자 → 디지털 암호로 진화하며, 수학과 컴퓨터 과학이 결합된 현대 암호체계가 등장했다.
3️⃣ 암호 시스템의 구성과 분류
암호 시스템은 크게 두 가지로 나뉩니다:
| 구분 | 대칭키 암호 | 비대칭키 암호 |
|---|---|---|
| 키 구조 | 암호화 키 = 복호화 키 (동일) | 암호화 키 ≠ 복호화 키 (쌍으로 존재) |
| 속도 | 빠름 | 느림 |
| 보안성 | 키 유출 시 전체 노출 위험 | 공개키는 공개해도 안전 (비밀키로만 복호화 가능) |
| 대표 알고리즘 | DES, 3DES, AES | RSA, ECC, Diffie-Hellman |
4️⃣ 대칭키 암호 (Symmetric Key Encryption)
💡 개념
송신자와 수신자가 하나의 동일한 키를 공유하여 암호화/복호화를 수행하는 방식.
- 장점: 속도가 빠르고 구현이 간단
- 단점: 키 분배가 어렵고, 키 유출 시 전체 통신 노출
🔹 대표 알고리즘
| 알고리즘 | 특징 | 비트 길이 | 운영 모드 |
|---|---|---|---|
| DES | 64비트 블록 암호, 56비트 키 사용, 16라운드 암호화 | 64bit / 56bit | ECB, CBC, CFB, OFB |
| 3DES | DES를 3번 반복하여 보안 강화 (하지만 속도 느림) | 112~168bit | ECB, CBC 등 |
| AES | 128비트 블록, 128/192/256비트 키 지원, 빠르고 안전 | 128~256bit | CTR, CBC 등 |
🔸 DES → 3DES → AES로 발전하며 블록 크기와 키 길이가 늘어났다. AES는 오늘날 대부분의 암호화 통신(SSL, VPN, Wi-Fi 등)에 사용된다.
5️⃣ 비대칭키 암호 (Asymmetric Key Encryption)
💡 개념
암호화 키(공개키)와 복호화 키(개인키)가 서로 다른 쌍으로 구성되어 있는 방식.
- 공개키(Public Key): 누구나 접근 가능
- 개인키(Private Key): 본인만 보유
- 부인 방지(Non-repudiation) 기능 제공 — “내가 보냈다”는 증거 남김
🔹 대표 알고리즘
| 알고리즘 | 수학적 기반 | 키 길이 | 특징 |
|---|---|---|---|
| RSA | 큰 소수의 곱(소인수분해 문제) | 1024~4096bit | 공개키 기반 인증 시스템의 핵심 |
| Diffie-Hellman | 이산 로그 문제 | 2048bit 이상 | 안전한 키 교환 방식, 인증 기능은 없음 |
| ECC | 타원 곡선상의 이산 로그 문제 | 160~521bit | 적은 연산량으로 높은 보안성 — 모바일 환경에 적합 |
✅ RSA는 공개키 암호의 대표 주자이며, ECC는 스마트카드·IoT 등 경량 환경에서 각광받고 있다.
6️⃣ 해시 함수 (Hash Function)
💡 정의
임의의 길이의 입력값을 고정된 길이의 출력값(Hash) 으로 변환하는 단방향 함수.
- 복호화 불가 (1-Way)
- 같은 입력 → 같은 출력
- 서로 다른 입력 → 다른 출력 (충돌 최소화)
🔹 주요 특징 및 조건
| 조건 | 설명 |
|---|---|
| 압축성 | 입력 길이보다 출력 길이가 짧음 |
| 1방향성 | 출력값으로부터 입력값을 유추 불가 |
| 충돌 저항성 | 서로 다른 입력이 같은 해시값을 만들 확률이 극히 낮음 |
💥 생일 공격 (Birthday Attack) 약 23명만 있어도 생일이 겹칠 확률이 50%인 것처럼, 해시 충돌도 작은 확률로 발생할 수 있어 SHA-256 등 긴 해시를 사용한다.
7️⃣ 디지털 서명 (Digital Signature)
💡 개념
송신자가 개인키(Private Key) 로 서명하고, 수신자는 공개키(Public Key) 로 이를 검증하여 신뢰성을 보장하는 기술.
🔹 서명 과정
- 송신자가 메시지의 해시값을 구함
- 해당 해시값을 자신의 개인키로 암호화 → 디지털 서명 생성
- 수신자는 송신자의 공개키로 복호화하여 동일한 해시값인지 검증
🔹 제공 기능
| 기능 | 설명 |
|---|---|
| 무결성 | 메시지가 전송 중 변조되지 않았음을 보장 |
| 인증 | 송신자의 신원을 확인 |
| 부인 방지 | 송신자가 송신 사실을 부인할 수 없음 |
8️⃣ 암호 시스템의 설계 원칙
🔹 주요 보안 속성
- 기밀성(Confidentiality): 허가된 사용자만 접근
- 무결성(Integrity): 데이터가 변조되지 않음
- 인증(Authentication): 신원 및 메시지 진위 확인
- 부인방지(Non-repudiation): 송신자 행위 부정 불가
🔹 설계 시 고려할 요소
| 항목 | 내용 |
|---|---|
| 혼돈 (Confusion) | 키와 평문의 관계를 복잡하게 만들어 유추를 어렵게 함 |
| 확산 (Diffusion) | 평문 변경이 암호문 전체에 영향을 주도록 설계 |
| 라운드 (Round) | 반복적 암호화를 통해 보안성 강화 |
| 쇄돌 효과 (Avalanche Effect) | 입력의 한 비트 변화가 출력의 절반 이상을 바꿈 |
9️⃣ 공개키 기반구조 (PKI)
공개키와 사용자 정보를 신뢰성 있게 연결하기 위한 인증 체계.
📜 구성 요소
| 구성 요소 | 설명 |
|---|---|
| CA (Certificate Authority) | 공인인증서를 발급하는 기관 |
| RA (Registration Authority) | 사용자 신원을 검증하여 CA에 전달 |
| CRL (Certificate Revocation List) | 폐기된 인증서 목록 관리 |
| CPS (Certificate Practice Statement) | CA 운영 정책과 절차 명시 문서 |
🔚 결론
🔐 “암호학은 수학이지만, 보안은 사람의 신뢰 위에 서 있다.”
암호 기술은 기밀성과 인증을 보장하지만, 진정한 보안은 기술뿐 아니라 운영자의 인식과 관리 체계에서 완성된다.
대칭키의 속도, 비대칭키의 신뢰성, 해시의 무결성 — 이 모든 것이 오늘날 인터넷 보안의 근간을 이룬다.
🧩 핵심 요약
- 대칭키: 빠르지만 키 관리 어려움
- 비대칭키: 느리지만 보안성 우수
- 해시 함수: 단방향 변환, 데이터 무결성 보장
- 디지털 서명: 인증 + 부인방지 제공
- PKI: 공개키 신뢰를 위한 제도적 기반
- 보안 3요소 (CIA): 기밀성 · 무결성 · 가용성