
요즘 보안, 블록체인, 인증 시스템 등을 공부하다 보니 결국 가장 근본이 되는 개념이 암호학(Cryptography)이라는 생각이 들었습니다.
특히 웹 서비스나 인증 시스템을 기획하거나 개발할 때
- 로그인
- 인증 토큰
- 결제
- 개인정보 보호
같은 기능들이 모두 암호 기술 위에 올라가 있기 때문에 기본 개념 정도는 알고 있어야 한다고 느껴 스터디를 시작했습니다.
이번 글에서는 암호학의 기본 개념부터 현대 암호의 구조까지 정리해보겠습니다.
Chapter 1. 암호학(Cryptography)이란 무엇인가
1. 암호학의 정의
암호학은 정보를 보호하기 위해 데이터를 변환하는 기술입니다.
쉽게 말하면 누군가 메시지를 보더라도 내용을 이해하지 못하도록 만드는 기술입니다.
대표적인 예시는 다음과 같습니다.
• HTTPS 통신
• 로그인 비밀번호 저장
• 블록체인 서명
• 모바일 결제 인증
2. 암호학의 4가지 목표
암호학은 단순히 숨기는 기술이 아니라 다음 4가지 목표를 가지고 있습니다.
목표 설명
- 기밀성 (Confidentiality): 허가된 사람만 정보를 볼 수 있음
- 무결성 (Integrity): 데이터가 변조되지 않았음을 보장
- 인증 (Authentication): 메시지를 보낸 사람이 맞는지 확인
- 부인 방지 (Non-repudiation): 보낸 사람이 나중에 부정하지 못함
예를 들어 HTTPS는
- 암호화 → 기밀성
- 해시 → 무결성
- 인증서 → 인증
을 동시에 해결합니다.
Chapter 2. 평문과 암호문
암호학에서 가장 기본적인 용어입니다.
용어 의미
- Plaintext: 암호화되지 않은 원본 데이터
- Ciphertext: 암호화된 데이터
- Encryption: 평문 → 암호문
- Decryption: 암호문 → 평문
예시
평문: HELLO
암호화 → KHOOR
이렇게 알고리즘과 키를 이용해 변환하는 것이 암호화입니다.
Chapter 3. 고전 암호 (Classical Cryptography)
컴퓨터 이전 시대의 암호 방식입니다.
대표적으로 다음 두 가지가 있습니다.
1. 시저 암호 (Caesar Cipher)
가장 유명한 암호 방식입니다.
원리:
알파벳을 일정한 숫자만큼 이동시키는 방식
예시 (3칸 이동)
A → D
B → E
C → F
HELLO를 암호화하면
HELLO
→ KHOOR
문제점
가능한 키가 26개 뿐이라서 브루트포스 공격으로 쉽게 깨집니다.
2. 치환 암호 (Substitution Cipher)
각 문자에 다른 문자를 매핑하는 방식입니다.
예시
A → Q
B → W
C → E
하지만 빈도 분석(Frequency Analysis)을 이용하면 쉽게 해독됩니다.
Chapter 4. 현대 암호의 시작
컴퓨터 시대가 되면서 수학 기반 암호가 등장했습니다.
현대 암호는 크게 두 가지로 나뉩니다.
- 대칭키 암호: 암호화와 복호화 키가 동일
- 공개키 암호: 서로 다른 키 사용
Chapter 5. 대칭키 암호 (Symmetric Key)
하나의 같은 키를 사용하는 방식입니다.
암호화 키 = 복호화 키
예시 구조
Plaintext
↓
Encryption + Key
↓
Ciphertext
↓
Decryption + Key
↓
Plaintext
대표적인 알고리즘
- AES
- DES
- ChaCha20
AES (Advanced Encryption Standard)
현재 가장 널리 사용하는 암호입니다.
사용 예시
- HTTPS
- VPN
- WiFi 암호화
- 디스크 암호화
특징
- 블록 암호
- 128 / 192 / 256 bit 키
대칭키의 문제
문제는 키 전달입니다.
예를 들어
A → B에게 메시지 보내려면
A ----- Key -----> B
이 키를 누군가 가로채면 끝입니다.
그래서 등장한 것이
공개키 암호
Chapter 6. 공개키 암호 (Public Key Cryptography)
1970년대 등장한 혁신적인 암호 방식입니다.
키가 두 개 있습니다.
- Public Key: 공개
- Private Key: 비밀
구조
- Public Key → 암호화
- Private Key → 복호화
예시
A → B에게 메시지 보냄
B의 Public Key로 암호화
↓
B의 Private Key로만 복호화 가능
그래서 키 전달 문제가 해결됩니다
Chapter 7. RSA 알고리즘
대표적인 공개키 암호입니다.
핵심 아이디어는
큰 수의 소인수 분해가 매우 어렵다입니다.
간단한 과정
1. 두 개의 큰 소수 선택
p, q
2. 곱하기
n = p × q
3. 공개키 생성
Public Key = (e, n)
4. 개인키 생성
Private Key = (d, n)
암호화
C = M^e mod n
복호화
M = C^d mod n
Chapter 8. 해시 함수 (Hash Function)
해시는 암호화와 다릅니다.
- 단방향: 복호화 불가능
- 고정 길이: 입력 길이와 상관 없음
- 충돌: 저항 같은 해시 찾기 어려움
예시
password123
→ e99a18c428cb38d5f260853678922e03
대표적인 알고리즘
- SHA-256
- SHA-3
- bcrypt
- Argon2
해시의 활용
대표적인 사용 사례
1. 비밀번호 저장
DB에 이렇게 저장합니다.
password → hash(password)
그래서 서버도 비밀번호 원문을 모릅니다.
2. 데이터 무결성 검증
파일 다운로드 시
SHA256 체크
를 사용하는 이유입니다.
Chapter 9. 디지털 서명
공개키 암호를 이용한 전자 서명 기술입니다.
과정
1. 메시지 해시 생성
hash(message)
2. 개인키로 서명
3. 공개키로 검증
결과
- 위조 불가능
- 작성자 확인 가능
사용 사례
- 블록체인
- 소프트웨어 배포
- 인증서
Chapter 10. 실제 서비스에서의 암호
현대 서비스는 여러 암호 기술을 조합합니다.
예시: HTTPS
구성
1. 공개키 암호 → 키 교환
2. 대칭키 암호 → 데이터 통신
3. 해시 → 무결성 검증
즉
RSA + AES + SHA
가 함께 사용됩니다.
마무리
암호학은 단순히 보안 기술이 아니라
- 인증
- 결제
- 블록체인
- 클라우드
- 로그인
등 거의 모든 IT 시스템의 기반 기술입니다.
특히 서비스를 설계할 때도
- 비밀번호 저장 방식
- 인증 토큰
- 세션 관리
등에서 암호 개념을 이해하고 있어야
안전한 구조를 만들 수 있습니다.
다음 글에서는
- 대칭키 암호 알고리즘 (AES) 내부 구조
- 블록체인과 암호학
을 조금 더 깊게 정리해보려고 합니다.