대칭키

암호화와 복호화에 동일한 키 하나를 사용하는 암호화 방식입니다.

핵심 구조

[키 A] → 암호화/복호화에 동일하게 사용

암호화: 평문 + 키A → 암호문
복호화: 암호문 + 키A → 평문

주요 특징

항목내용
키 개수1개
키 배송 문제있음 (키 전달 중 탈취 위험)
속도빠름 (공개키 대비)
대표 알고리즘AES, DES, 3DES

키 배송 문제

A가 B에게 키를 전달하는 과정에서
제3자가 키를 탈취하면 → 암호문도 복호화 가능
→ 이를 해결하기 위해 공개키 방식을 활용

실사용 예시

사례내용
HTTPS공개키로 키 교환 후 실제 통신은 대칭키로 수행
파일 암호화AES로 대용량 파일 암호화
DB 암호화저장 데이터 암호화

Java 예시 (AES)

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(256);
SecretKey secretKey = keyGen.generateKey();

Cipher cipher = Cipher.getInstance("AES");

// 암호화
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encrypted = cipher.doFinal("plaintext".getBytes());

// 복호화
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decrypted = cipher.doFinal(encrypted);

대칭키는 속도가 빠르다는 장점 때문에 대용량 데이터 암호화에 적합하며, 키 배송 문제는 공개키 방식과 혼합하여 해결합니다.

CSLOG에서 보기