암호화 기초
쉽게 말하면
암호화는 편지를 자물쇠 상자에 넣는 거예요. 같은 열쇠로 잠그고 여는 방식(대칭키)은 빠르지만 열쇠를 상대에게 안전하게 건네기가 어려워요. 그래서 '누구나 잠글 수 있는 자물쇠(공개키)'와 '나만 가진 열쇠(개인키)'를 따로 두는 방식(공개키)이 나왔어요. 실제로는 둘을 섞어서 써요.
시험용 정의
대칭키 암호는 암호화·복호화에 같은 키를 써서 빠르지만 키 배송이 어렵고(DES, 3DES, AES, SEED, ARIA), 공개키(비대칭) 암호는 공개키와 개인키를 짝으로 써서 키 배송 문제를 풀지만 느리다(RSA, ECC, DSA). 해시는 임의 길이 데이터를 고정 길이 값으로 바꾸는 일방향 함수로 무결성 확인에 쓴다(MD5, SHA-256). 전자 서명은 내 개인키로 서명하고 상대가 내 공개키로 확인한다.
비유로 이해하기
공개키는 누구나 넣을 수 있는 우체통 투입구, 개인키는 우체통을 여는 집배원의 열쇠다. 투입구로 넣은 편지는 열쇠를 가진 사람만 꺼낸다.
자세히
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| 평문 / 암호문 | 읽을 수 있는 원래 글 / 암호화된 글 |
| 복호화 | 암호문을 평문으로 되돌리기 |
| 일방향 | 한쪽으로만 계산되고 거꾸로 되돌릴 수 없는 성질 |
| 인증서 | 이 공개키가 진짜 누구 것인지 인증 기관(CA)이 보증한 문서 |
대칭키 vs 공개키
| 구분 | 대칭키 | 공개키(비대칭) |
|---|---|---|
| 키 | 같은 키 하나 | 공개키 + 개인키 짝 |
| 속도 | 빠름 | 느림 |
| 키 관리 | N명이면 N(N-1)/2개, 배송 어려움 | 1명당 1쌍, 공개키는 공개 |
| 예 | DES(56비트), 3DES, AES(128·192·256), SEED, ARIA | RSA(소인수분해), ECC(타원곡선), DSA, 디피-헬만(키 교환) |
| 주 용도 | 많은 데이터 암호화 | 키 교환, 전자 서명 |
어느 키로 무엇을
- 비밀 보내기: 받는 사람의 공개키로 암호화 → 받는 사람 개인키로 복호화
- 전자 서명: 보내는 사람의 개인키로 서명 → 누구나 보내는 사람 공개키로 확인 (인증·부인 방지)
- 하이브리드: 공개키로 대칭키(세션 키)를 안전하게 나눈 뒤, 실제 데이터는 대칭키로 빠르게 (TLS가 이렇게 한다)
해시와 PKI
해시는 같은 입력이면 같은 값, 조금만 달라도 전혀 다른 값이 나와 파일이 바뀌었는지 확인한다. MD5(128비트)·SHA-1은 약해져 SHA-256 이상을 쓴다. PKI는 인증 기관(CA)이 발급한 X.509 인증서로 공개키의 주인을 보증하는 체계다.
시험에 이렇게 나와요
- 대칭키(DES·AES·SEED) vs 공개키(RSA·ECC) 구분과 장단점
- 키 개수 N(N-1)/2
- 암호화는 받는 이 공개키, 서명은 보내는 이 개인키
- 해시 (MD5, SHA), PKI·인증서
확인 문제
Q1. 암호화와 복호화에 서로 다른 키(공개키·개인키)를 쓰는 방식의 대표 알고리즘은?
- SEED
- AES
- RSA
- DES
정답 보기
3번 RSA
RSA는 공개키(비대칭) 알고리즘이다. DES·AES·SEED는 같은 키를 쓰는 대칭키 알고리즘.
Q2. 다음 중 대칭키 알고리즘이 아닌 것은?
- 3DES
- RSA
- AES
- SEED
정답 보기
2번 RSA
RSA는 공개키(비대칭) 알고리즘이다. AES, SEED, 3DES는 같은 키로 암호화·복호화하는 대칭키 알고리즘이다.
Q3. 전자 서명을 만들 때 쓰는 키는?
- 보내는 사람의 공개키
- 받는 사람의 공개키
- 받는 사람의 개인키
- 보내는 사람의 개인키
정답 보기
4번 보내는 사람의 개인키
내 개인키로 서명, 상대는 내 공개키로 확인.
Q4. 10명이 서로 대칭키로 통신하려면 필요한 키 개수는?
- 10
- 20
- 45
- 100
정답 보기
3번 45
45개다. 두 사람마다 키 하나가 필요해 n(n-1)/2 = 10 × 9 ÷ 2다. 공개키 방식이면 한 사람에 2개씩 20개면 된다.
헷갈리기 쉬운 O·X
해시 값으로 원래 데이터를 되돌릴 수 있다.
정답 보기
X 일방향 함수라 되돌릴 수 없다.
공개키 암호는 대칭키 암호보다 처리 속도가 빠르다.
정답 보기
X 느리다. 그래서 키 교환에만 쓰고 데이터는 대칭키로.
AES는 DES를 대체한 대칭키 암호 표준이다.
정답 보기
O 128·192·256비트 키.