
대칭키 암호화(Symmetric-key Cryptography)는 암호화와 복호화에 동일한 비밀 키를 사용하는 방식으로, 처리 단위에 따라 블록 암호와 스트림 암호로 나뉩니다. 기술사 수준에서는 이 둘의 동작 원리, 특성, 장단점, 응용 분야 및 블록 암호의 운용 모드에 대한 깊이 있는 이해가 필수적입니다.
블록 암호는 고정된 길이의 블록(Block) 단위로 평문을 암호문으로 변환하는 대칭키 암호 방식입니다. 대표적으로 AES (Advanced Encryption Standard), DES (Data Encryption Standard), ARIA, SEED 등이 있습니다.
블록 암호는 단일 블록 처리 방식으로는 보안성이 낮으므로, 가변 길이의 데이터나 연속적인 데이터에 적용하기 위해 다양한 운용 모드(Modes of Operation)가 정의됩니다.
| 운용 모드 | 약어 및 명칭 | 특징 및 보안성 |
|---|---|---|
| ECB | Electronic Code Book (전자 코드북) | 가장 단순. 각 블록을 독립적으로 암호화. 동일 평문 블록 동일 암호문 블록이 되어 패턴 노출 취약, 보안성 가장 낮음. 병렬 처리 가능. |
| CBC | Cipher Block Chaining (암호 블록 연결) | 가장 널리 사용. 이전 암호문 블록이 다음 평문 블록과 XOR 연산되어 체인을 형성. IV (Initial Vector) 사용. 동일 평문 블록이라도 다른 암호문 생성. 보안성 높음. 암호화는 병렬 불가, 복호화는 병렬 가능. 오류 전파 발생 (암호문 1비트 오류 복호화 시 해당 블록 전체 + 다음 블록 1비트 오류). |
| CFB/OFB/CTR | Cipher Feedback/Output Feedback/Counter | 블록 암호를 스트림 암호 형태로 변환하여 운용하는 모드 (블록 암호 기반 스트림 암호). 패딩 불필요. CTR 모드는 병렬 처리와 임의 접근(Random Access)이 용이하여 고속 처리에 유리하며 현대 암호화에서 활용도가 높음. |
스트림 암호는 비트(Bit) 또는 바이트(Byte) 단위의 평문 스트림을 키 스트림(Key Stream)과 XOR 연산하여 암호문 스트림을 생성하는 대칭키 암호 방식입니다. 대표적으로 RC4, ChaCha20, A5/1 등이 있습니다.
(: 번째 암호문 비트, : 번째 평문 비트, : 번째 키 스트림 비트)
| 분류 | 동기화 방식 | 특징 |
|---|---|---|
| 동기식 스트림 암호 | Synchronous Stream Cipher | 키 스트림이 평문이나 암호문의 영향을 받지 않고 오직 키와 초기화 벡터 (IV)에 의해 독립적으로 생성. 오류 전파가 없어 통신 오류에 강하지만, 송수신자 간 동기화가 필수적. |
| 비동기식 스트림 암호 | Asynchronous Stream Cipher | 키 스트림 생성에 이전 암호문 또는 평문의 일부가 피드백되어 사용됨. 자기 동기화 (Self-synchronizing) 특성이 있어 일시적인 동기 오류를 스스로 복구 가능. |
| 구분 (Aspect) | 블록 암호 (Block Cipher) | 스트림 암호 (Stream Cipher) |
|---|---|---|
| 처리 단위 | 고정 크기의 블록 (예: 64bit, 128bit) | 비트 또는 바이트 (1bit, 8bit) |
| 암호화 연산 | 복잡한 치환/순열 (S-Box, P-Box)의 반복 (Feistel 구조 등) | 키 스트림과 평문의 XOR 연산 |
| 속도/효율성 | 상대적으로 느림 (블록 단위 처리), 하드웨어/소프트웨어 모두 적합 | 상대적으로 빠름 (단순 XOR 연산), 하드웨어 구현 용이 |
| 오류 전파 | 운용 모드에 따라 발생 (ECB 제외, CBC/CFB 등) | 없음 (동기식) 또는 제한적 (비동기식) |
| 병렬 처리 | 운용 모드에 따라 가능 (ECB, CTR) 또는 불가능 (CBC 암호화) | 용이 (비트/바이트 단위 독립적 처리) |
| 주요 응용 | 파일 암호화, 데이터베이스, VPN (IPsec), TLS의 기반 | 실시간 통신 (음성, 영상 스트리밍), 무선 통신 (GSM, LTE) |
| 대표 알고리즘 | AES, DES, T-DES, ARIA, SEED | RC4, ChaCha20, Salsa20, A5/1 |
| 데이터 무결성 | 별도의 MAC (Message Authentication Code) 필요 (CBC-MAC, HMAC 등) | 별도의 MAC 필요 |
이러한 블록 암호와 스트림 암호의 기술적 특성과 운용 모드에 대한 이해는 시스템 설계 시 보안성, 성능, 오류 제어 등의 요구사항에 따라 적절한 암호화 메커니즘을 선택하는 데 중요한 기준이 됩니다.