테마
03. 대칭키 암호
학습 목표
- 대칭키(Symmetric Key) 암호의 원리를 설명할 수 있다.
- XOR 연산으로 암호화/복호화가 어떻게 이루어지는지 이해한다.
- 키 길이와 보안성의 관계를 설명할 수 있다.
- 대표적인 대칭키 알고리즘(AES, ARIA 등)을 알 수 있다.
- 대칭키의 장점과 약점을 파악한다.
전체 구조
1. 대칭키란?
핵심 개념
대칭키 암호는 하나의 키로 암호화도 하고 복호화도 한다. 이것이 전부다.
일상의 비유
대칭키는 자동차 키와 같다.
| 자동차 키 | 대칭키 |
|---|---|
| 키 하나로 문을 잠근다 | 키 하나로 암호화한다 |
| 같은 키로 문을 연다 | 같은 키로 복호화한다 |
| 키를 잃어버리면 차 문이 열린다 | 키가 노출되면 암호가 풀린다 |
암기 포인트: 대칭키 = 키 1개 = 암호화, 복호화 모두 같은 키 사용
2. XOR 연산으로 이해하는 대칭키
XOR(Exclusive OR)이란?
XOR은 두 비트가 서로 다를 때만 1을 출력하는 논리 연산이다.
| 입력 A | 입력 B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
규칙은 단순하다: 같으면 0, 다르면 1
XOR로 암호화하기: ASCII 'A'의 예
대문자 A의 ASCII 코드는 65, 2진수로 0100 0001이다.
비트 단위 계산 과정
암호화 (평문 XOR 키 = 암호문):
평문: 0 1 0 0 0 0 0 1
키: 1 1 0 1 0 1 0 1
──────────────────────────────
결과: 1 0 0 1 0 1 0 0 ← 암호문복호화 (암호문 XOR 키 = 평문):
암호문: 1 0 0 1 0 1 0 0
키: 1 1 0 1 0 1 0 1
──────────────────────────────
결과: 0 1 0 0 0 0 0 1 ← 원래 평문 복원!핵심: 같은 키로 XOR을 두 번 하면 원래 값으로 돌아온다. 이것이 대칭키의 수학적 근거다.
XOR의 마법
실제 대칭키 알고리즘은 XOR만 쓰지는 않는다. 치환, 순열, 라운드 함수 등을 복잡하게 조합한다. 하지만 어떤 대칭키 알고리즘이든 내부를 파고 들어가면 반드시 XOR이 등장한다.
3. 대표 대칭키 알고리즘
| 알고리즘 | 키 길이 | 특징 | 현재 사용 |
|---|---|---|---|
| DES | 56비트 | 최초의 표준, 현재 취약 | 사용 금지 |
| 3DES | 112/168비트 | DES 3회 반복 | 하위 호환용 |
| AES-128 | 128비트 | 국제 표준, 가장 많이 사용 | 적극 권장 |
| AES-256 | 256비트 | 최고 수준 보안 | 적극 권장 |
| SEED | 128비트 | 한국 표준 | 국내 사용 |
| ARIA | 128/192/256비트 | 한국 표준 | 국내 사용 |
암기 포인트: AES(Advanced Encryption Standard)가 국제적으로 가장 많이 쓰이는 대칭키 알고리즘이다.
4. 키 길이와 보안성
키 길이 = 경우의 수 = 보안성
키가 8비트라면? 경우의 수는 2^8 = 256가지뿐이다. 256가지를 다 시도하면 금방 뚫린다.
키 길이와 보안성은 비례한다
암기 포인트: 키 길이와 보안성은 무조건 비례한다. 길면 길수록 안전하다.
5. 대칭키의 장점과 약점
장점: 효율이 뛰어나다
대칭키는 비대칭키에 비해 훨씬 빠르고 연산량이 적다.
특히 모바일 환경에서 중요하다:
- 암호화/복호화를 반복하면 CPU를 많이 사용한다
- CPU를 많이 쓰면 배터리가 빨리 닳는다
- 따라서 가능하면 대칭키를 사용하는 것이 유리하다
약점: 키 노출 = 보안 끝
대칭키의 가장 큰 약점은 키가 노출되면 끝이라는 것이다.
키도 결국 '정보'다
키라는 것이 물리적으로 특별한 존재가 아니다. 키도 결국 하드디스크에 저장 가능한 2진수 정보에 불과하다.
- 파일로 저장할 수 있다
- 네트워크로 전송할 수 있다
- USB에 복사할 수 있다
암기 포인트: 키도 정보다. 특별한 물리적 존재가 아니라, 키로 활용되는 데이터일 뿐이다. 따라서 안전한 보관이 핵심이다.
6. 용어 정리
| 용어 | 영문 | 설명 |
|---|---|---|
| 평문 | Plaintext | 암호화 전의 원본 데이터 |
| 암호문 | Ciphertext | 암호화된 데이터 |
| 암호화 | Encryption | 평문을 암호문으로 변환 |
| 복호화 | Decryption | 암호문을 평문으로 복원 |
| 보안성 부여 | - | 암호화의 다른 표현 |
핵심 암기 포인트
대칭키: 키가 1개. 같은 키로 암호화도, 복호화도 한다.
XOR: 대칭키 알고리즘의 핵심 연산. 같은 키로 두 번 XOR하면 원래 값 복원.
AES: 국제 표준 대칭키 알고리즘. AES-128, AES-256이 가장 많이 쓰임.
키 길이 ∝ 보안성: 무조건 비례. 길수록 안전.
장점: 비대칭키보다 훨씬 빠르고 효율적.
약점: 키 노출 = 보안 완전 상실. 키 보관이 핵심 이슈.
확인 질문
- 대칭키에서 "대칭"이라는 이름이 붙은 이유는 무엇인가?
- XOR 연산으로 같은 키를 두 번 적용하면 왜 원래 값으로 돌아오는가?
- AES-128과 AES-256의 차이는 무엇이며, 어떤 것이 더 안전한가?
- 대칭키의 키 길이와 보안성은 어떤 관계인가?
- 대칭키 방식의 가장 큰 약점은 무엇이며, 이것이 인터넷 환경에서 어떤 문제를 일으키는가?