대칭키 & 공개키 암호화: 데이터 보호를 위한 키 관리 방법
🔑 대칭 키(Symmentric Key)
- 암호화와 복호화에
같은 암호 키
(대칭 키)를 사용하는 알고리즘
- 해당 키를 아는 사람만 문서를 복호화할 수 있음.
- Session Key, Secret Key, Shared Key, 대칭키, 단용키라고도 함
- 대표적인 알고리즘: DES, 3DES, AES, SEED, ARIA, 최근 주목받고 있는 암호인 ChaCha20
- 장점: 기밀성 제공, 공개 키 암호화 방식에 비해 속도가 빠름.
- 단점: 무결성/ 인증/ 부인방지를 보장하지 않음.
- 부인방지: 메시지의 송수신이나 교환 후, 또는 통신이나 처리가 실행된 후에 그 사실을 사후에 증명함으로써 사실 부인을 방지하는 보안기술
- 키 교환 중
탈취 문제
발생 가능성
사람마다 키 교환을 따로
해야하기 때문에, 사람의 수 증가 → 관리해야 할 키의 수가 방대해짐
🔐 대칭 키 암호
- 하나의 비밀키를 client와 server가 함께 사용
암호화 키 === 복호화 키
- 공개 키와 비밀 키를 별도로 가지는 것에 비하면 계산 속도가 빠름.
- 비밀 키 하나만 알아내면 암호화된 내용을 해독 가능 →
해커로부터 안전하지 않음.
- 대칭 키 암호는
암호화하는 단위
에 따라 스트림 암호와 블록 암호로 나눌 수 있음.
스트림 암호
: 연속적인 비트/ 바이트를 계속해서 입력받아서, 그에 대응하는 암호화 비트/ 바이트를 생성하는 방식.
블록 암호
: 정해진 한 단위(블록)을 입력받아 그에 대응하는 암호화 블록을 생성하는 방식
🔑 공개 키(Public Key)/ 비대칭 키(Asymmetric Key)
- 암호화와 복호화에 사용하는
암호키를 분리
한 알고리즘
- 대칭키의 키 교환 문제를 해결하기 위해 등장
키가 공개
되어 있기 때문에, 키 교환 필요성이 사라짐.
- 대칭키의 경우, 송수신자의 키를 알아야하기 때문에 분배가 어렵고 복잡하지만, 공개 키와 비밀 키로 분리할 경우 남들이 알아도 되는
공개 키만 공개
하면 됨.
- 대표적인 알고리즘:
Diffie Hellman
, RSA
, DSA
, ECC
- Diffie Hellman : 최초의 공개키 알고리즘, 위조에 취약
- RSA : 대표적 공개키 알고리즘
- DSA : 전자서명 알고리즘 표준
- ECC : 짧은 키로 높은 암호 강도, 빠른 구현 가능 PDA, 스마트폰등에 사용
- 장점: 키 분배 필요 X, 기밀성/ 인증/ 부인방지 기능 제공
- 단점: 느린 속도
- 긴 문서를 암호화하는데 사용하기 보단, 대칭 키 알고리즘의 키 값에 대한 암호에 사용됨.
- 방식
암호모드
: 송신자 공개 키로 암호화 → 송신자 사설 키로 복호화 소량의 메시지 암호화 목적, 주로 키 교환의 용도로 사용
인증모드
: 송신자 사설 키로 암호화 → 송신자 공개키로 복호화 메시지를 인증 부인방지
하는 것이 목적
🔐 공개 키 암호
- 암호화와 복호화에 사용하는 키가 다름.
공개 키
: 모든 사람이 접근 가능한 키/ 암호화
에 사용하는 키
비밀 키
: 사용자만 가지고 있는 키/ 복호화
에 사용하는 키
- 공개 키는 누구나 알 수 있지만, 비밀 키는 키의 소유자만이 알 수 있음.
- 특정 비밀키를 가지는 사용자만 내용을 열어볼 수 있음.
- 안전한 메시지 전달 가능
- 공개 키 암호화 방식은 우체통에 비유할 수 있음.
- 우체통의 투입구
공개 키
를 통해 누구나 편지를 넣을 수 있음.
- 편지함은 열쇠
비밀 키
를 가진 사람만 열 수 있음.
- 공개 키 암호화/ 복호화 방식
- A: B의 공개 키로 암호화한 데이터를 B에 보냄.
- B: 본인의 비밀 키로 복호화한 평문 확인 → A의 공개키로 응답을 암호화 → A에 보냄.
- A: 자신의 비밀 키로 암호화된 응답문 복호화
- 따라서, B의 공개 키에 대응되는 비밀 키를 가지고 있는 B만 해당 데이터를 볼 수 있게 됨.
- 단, 대칭 키에 비해 암호화/ 복호화 과정이 매우 복잡함.