

벤치마크 결과 분석 (보고서 작성용)
1. DES와 3DES의 선형적 속도 비례 (The 1:3 Ratio)
10 MB 구간을 보면 DES 암호화는 약 107 ms, 3DES는 약 280 ms가 소요되었습니다. 3DES가 DES보다 정확히 2.5배에서 3배 정도 느린 것을 확인할 수 있습니다.
분석: 이는 3DES가 완전히 새로운 알고리즘이 아니라, 기존 DES를 단순히 세 번 반복(Encrypt-Decrypt-Encrypt)하는 구조이기 때문입니다. 연산량이 3배 늘어남에 따라 처리 시간(Latency)도 정직하게 3배 늘어나는 소프트웨어 처리의 한계를 명확히 보여주는 데이터입니다.
분석: 하드웨어 시스템 설계 관점에서 볼 때, DES의 비트 단위 순열(Bit-level Permutation)은 CPU의 산술 논리 장치(ALU)에서 매우 비효율적인 시프트(Shift) 연산을 강제합니다. 반면, AES는 바이트(8-bit) 단위의 행렬 연산(SubBytes, MixColumns)으로 구성되어 있습니다. 현대의 프로세서(Apple Silicon, Intel 등)는 이 AES 연산을 하드웨어 레벨에서 0사이클에 가깝게 처리해 버리는 전용 가속 명령어(AES-NI 등)를 내장하고 있기 때문에 이러한 압도적인 속도 차이가 발생합니다.
분석: 우리가 구현한 모드가 CBC (Cipher Block Chaining)이기 때문입니다. CBC 모드의 암호화는 이전 블록이 끝나야 다음 블록을 처리할 수 있는 직렬 병목(Dependency)이 걸리지만, 복호화는 모든 암호문 블록을 이미 가지고 있으므로 병렬 처리(Parallel Processing)가 가능합니다.

실험 환경: 평문으로 16바이트 블록이 정확히 두 번 반복되는 데이터(Houston.Texas.12Houston.Texas.12)를 주입하여 각 모드의 암호문 변화를 관찰했습니다.
결과 분석:
ECB 모드: 두 개의 암호문 블록이 완벽하게 동일한 16진수 값(Hex)으로 출력되었습니다. 이는 구조에 따라, 동일한 평문 블록은 항상 동일한 암호문 블록으로 1:1 매핑되기 때문입니다.
CBC, CFB, OFB, CNT(CTR) 모드: 초기화 벡터(IV) 또는 Nonce가 결합되고, 이전 블록의 결과가 다음 블록에 영향을 주거나(Feedback) 카운터가 증가하는 구조로 인해, 완전히 동일한 평문 블록임에도 불구하고 두 번째 암호문 블록은 첫 번째 블록과 전혀 다른 무작위 형태의 데이터로 생성되었습니다.
결론: ECB 모드는 데이터의 본래 구조와 반복 패턴을 암호문에서도 그대로 노출합니다. 따라서 비트맵 이미지나 반복적인 헤더를 포함하는 네트워크 패킷을 암호화할 때 공격자에게 통계적 힌트를 제공하는 치명적인 결함이 있음을 확인했습니다.

실험 환경: 수신자에게 전달되는 도중에 해커가 개입했다는 가정하에, 두 개의 서로 다른 블록(BlockA... 및 BlockB...)으로 구성된 암호문을 가로채어 블록 0과 블록 1의 순서를 강제로 뒤바꾸고(Swap) 복호화를 수행했습니다.
결과 분석:
ECB 모드 (성공적 변조): 암호문 블록의 순서를 바꾼 후 복호화한 결과, 원본 텍스트에 어떠한 데이터 손상(Garbled text)도 발생하지 않고 평문의 순서만 깔끔하게 뒤바뀌어 출력되었습니다. 각 블록의 암복호화가 독립적으로 이루어지기 때문입니다.
CBC 모드 (에러 전파 발생): 암호문 블록의 순서를 뒤바꾼 후 복호화하자 원본 텍스트가 완전히 파괴된 외계어 문자열이 출력되었습니다. CBC의 복호화 수식은 입니다. 이전 암호문 블록()의 위치와 값이 변조되었으므로, 현재 블록의 평문()을 도출하는 XOR 연산이 붕괴하며 에러가 연쇄적으로 전파(Error Propagation)되었습니다.
결론: 공격자가 암호화 키를 모르더라도, ECB 모드에서는 암호문의 순서를 임의로 조작하여 논리적 흐름(예: 금융 거래 내역의 순서)을 변조할 수 있습니다. 반면, CBC와 같은 피드백 기반 모드들은 순서가 조작되면 복호화 과정에서 치명적인 에러가 발생하므로, 수신자가 데이터의 무결성(Integrity)이 훼손되었음을 즉각적으로 인지할 수 있습니다.