암호 알고리즘
쉽게 말하면
암호화는 남이 못 읽게 데이터를 바꾸는 거예요. 잠그는 열쇠와 여는 열쇠가 같으면 대칭 키(빠르지만 열쇠를 안전하게 건네기 어려워요), 다르면 비대칭 키예요. 비대칭은 누구나 아는 공개 키로 잠그고 나만 가진 개인 키로 열어요. 해시는 데이터를 짧은 고정 길이 값으로 바꾸는데, 되돌릴 수 없어서 비밀번호 저장과 위·변조 확인에 써요.
시험용 정의
대칭 키(비밀 키) 암호는 암호화와 복호화에 같은 키를 쓴다. 빠르고 효율적이지만 키 배송·관리가 어렵다. 데이터를 일정 크기 블록으로 나눠 처리하는 블록 암호(DES 64비트 블록·56비트 키, 3DES, AES 128비트 블록·128/192/256비트 키, SEED 한국인터넷진흥원 개발, ARIA 국가보안기술연구소 주도, IDEA)와 비트 단위로 처리하는 스트림 암호(RC4, LFSR)가 있다. 비대칭 키(공개 키) 암호는 공개 키로 암호화하고 개인 키로 복호화하며 키 관리가 쉽지만 느리다: RSA(큰 수의 소인수분해), ECC(타원 곡선), 디피-헬만(키 교환, 이산 대수), ElGamal(이산 대수). 해시는 임의 길이 입력을 고정 길이 값으로 바꾸는 일방향 함수로 SHA 계열, MD5(128비트), HAVAL 등이 있다. 같은 비밀번호도 다른 해시값이 나오게 덧붙이는 무작위 값을 솔트라 한다. 전자 서명은 보낸 사람의 개인 키로 서명하고 공개 키로 검증해 인증·무결성·부인 방지를 준다. PKI는 인증 기관(CA)이 공개 키 인증서를 발급·관리하는 기반 구조다.
비유로 이해하기
대칭 키는 같은 열쇠 두 개를 나눠 갖는 집 열쇠다. 비대칭 키는 누구나 넣을 수 있지만 주인만 여는 우체통이다. 해시는 지문과 같다. 지문으로 사람을 확인할 수는 있지만 지문으로 사람을 다시 만들 수는 없다.
자세히
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| 평문 / 암호문 | 읽을 수 있는 원래 데이터 / 암호화한 데이터 |
| 복호화 | 암호문을 평문으로 되돌리는 것 |
| 공개 키 / 개인 키 | 누구에게나 공개하는 키 / 본인만 보관하는 키 |
| 일방향 | 한쪽으로만 계산되고 거꾸로 되돌릴 수 없는 성질 |
| 솔트 | 해시 전에 비밀번호에 덧붙이는 무작위 값 |
| 부인 방지 | 보낸 사람이 보내지 않았다고 잡아뗄 수 없게 하는 것 |
대칭 키 vs 비대칭 키
| 구분 | 대칭 키 | 비대칭 키 |
|---|---|---|
| 키 | 암·복호화 키 같음 (비밀 키) | 공개 키로 암호화, 개인 키로 복호화 |
| 속도 | 빠름 | 느림 |
| 키 개수 (n명) | n(n−1)/2 | 2n |
| 키 관리 | 배송·관리 어려움 | 쉬움 |
| 알고리즘 | DES, 3DES, AES, SEED, ARIA, IDEA, RC4 | RSA, ECC, 디피-헬만, ElGamal |
블록 암호 정리
| 알고리즘 | 블록 | 키 | 메모 |
|---|---|---|---|
| DES | 64비트 | 56비트 | 미국 표준, 현재는 취약 |
| 3DES | 64비트 | DES를 세 번 | DES 강화 |
| AES | 128비트 | 128·192·256비트 | DES 후속 미국 표준 |
| SEED | 128비트 | 128·256비트 | 한국인터넷진흥원(KISA) 개발 |
| ARIA | 128비트 | 128·192·256비트 | 국가보안기술연구소 중심 학·연·관 개발 |
| IDEA | 64비트 | 128비트 | 스위스 개발, PGP에 사용 |
해시와 전자 서명
- 해시는 복호화할 수 없다. 비밀번호는 해시(+솔트)로 저장해 원문을 보관하지 않는다
- 해시 함수 예: SHA-1, SHA-256(SHA-2), MD5, HAVAL, N-NASH, SNEFRU
- 전자 서명: 문서 해시를 보낸 사람의 개인 키로 서명 → 받는 사람이 공개 키로 검증
기출에서 더 나온 것
| 말 | 뜻 |
|---|---|
| 복호화 | 암호문을 평문으로 되돌리는 작업 (평문 → 암호문은 암호화) |
| 스트림 암호 | 평문을 비트·바이트 단위로 차례로 암호화하는 대칭키 방식 (예: RC4). 해시를 쓰는 것이 아니다 |
| 대칭키의 단점 | 같은 키를 양쪽이 나눠 가져야 해서 키 교환이 필요하다. 대신 속도가 빠르다 |
| HSM | 하드웨어 보안 모듈. 암호 키를 만들고 안전하게 보관하는 전용 장치. 클라우드 HSM도 하드웨어 기반이다 |
| 해시 함수 | MD4·MD5·SHA 계열. 같은 입력엔 늘 같은 고정 길이 값이 나와 무결성 확인에 쓴다. 되돌릴 수 없고 키를 만드는 용도가 아니다 |
시험에 이렇게 나와요
- 소인수 분해의 어려움을 이용한 공개키 → RSA (1978년 MIT)
- 대칭키(키가 같음) → DES·AES·SEED·ARIA / 블록 암호가 아닌 것 → RC4(스트림)
- 해시 → MD4·MD5·SHA (AES는 성격이 다름). 해시는 무결성 확인용, 키 생성용이 아님
- 공개키 → 수신자 공개키로 암호화, 수신자 개인키로 복호화. n명이면 키 2n개
- DES 블록 크기 → 64비트
- 같은 비밀번호도 다르게 저장되게 덧붙이는 값 → 솔트
확인 문제
Q1. 사용자 10명이 서로 대칭 키로 통신하려면 키가 몇 개 필요할까요?
- 20개
- 10개
- 100개
- 45개
정답 보기
4번 45개
대칭 키는 두 사람마다 키 하나: n(n−1)/2 = 10 × 9 / 2 = 45개. 비대칭 키는 사람마다 공개 키·개인 키 한 쌍이라 2n = 20개.
Q2. 비대칭 키 암호 알고리즘은?
- ARIA
- SEED
- RSA
- AES
정답 보기
3번 RSA
RSA는 공개 키 암호. 나머지는 대칭 키 블록 암호.
Q3. 큰 숫자를 소인수분해하기 어렵다는 점을 이용한 공개 키 암호는?
- DES
- ECC
- MD5
- RSA
정답 보기
4번 RSA
Rivest, Shamir, Adleman.
Q4. 한국인터넷진흥원(KISA)이 개발한 128비트 블록 암호는?
- ARIA
- AES
- IDEA
- SEED
정답 보기
4번 SEED
ARIA는 국가보안기술연구소가 주도했다.
Q5. 사용자 20명이 비대칭 키 방식으로 통신할 때 필요한 키 개수는?
- 20
- 40
- 190
- 380
정답 보기
2번 40
2n = 40. 대칭 키면 20 × 19 / 2 = 190.
헷갈리기 쉬운 O·X
해시 함수는 해시값으로 원래 데이터를 복원할 수 있다.
정답 보기
X 일방향이라 복원할 수 없다.
대칭 키 암호는 비대칭 키 암호보다 일반적으로 처리 속도가 빠르다.
정답 보기
O
공개 키 암호에서 받는 사람의 공개 키로 암호화한 데이터는 받는 사람의 개인 키로 복호화한다.
정답 보기
O