Cyber project

Seungyun Lee·2026년 4월 19일
post-thumbnail

Benchmark

벤치마크 결과 분석 (보고서 작성용)
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배 늘어나는 소프트웨어 처리의 한계를 명확히 보여주는 데이터입니다.

  1. AES의 압도적인 퍼포먼스와 하드웨어 가속 (Hardware Acceleration)
    동일한 10 MB를 AES-128은 불과 7.4 ms 만에 처리했습니다. DES보다 약 14배, 3DES보다 약 38배 빠른 수치입니다. 단순히 수학 공식이 가벼워서가 아닙니다.

분석: 하드웨어 시스템 설계 관점에서 볼 때, DES의 비트 단위 순열(Bit-level Permutation)은 CPU의 산술 논리 장치(ALU)에서 매우 비효율적인 시프트(Shift) 연산을 강제합니다. 반면, AES는 바이트(8-bit) 단위의 행렬 연산(SubBytes, MixColumns)으로 구성되어 있습니다. 현대의 프로세서(Apple Silicon, Intel 등)는 이 AES 연산을 하드웨어 레벨에서 0사이클에 가깝게 처리해 버리는 전용 가속 명령어(AES-NI 등)를 내장하고 있기 때문에 이러한 압도적인 속도 차이가 발생합니다.

  1. 암호화(Encrypt) vs 복호화(Decrypt) 속도 차이
    AES의 10 MB 처리 결과를 보면 암호화는 7.396 ms, 복호화는 0.816 ms로 복호화가 훨씬 빠릅니다. (DES 계열도 복호화가 소폭 빠름)

분석: 우리가 구현한 모드가 CBC (Cipher Block Chaining)이기 때문입니다. CBC 모드의 암호화는 이전 블록이 끝나야 다음 블록을 처리할 수 있는 직렬 병목(Dependency)이 걸리지만, 복호화는 모든 암호문 블록을 이미 가지고 있으므로 병렬 처리(Parallel Processing)가 가능합니다.


Implementation of Five Block Cipher Modes (AES-128)

A. Repeated Message Blocks Test (패턴 노출 및 구조적 취약성 분석)

실험 환경: 평문으로 16바이트 블록이 정확히 두 번 반복되는 데이터(Houston.Texas.12Houston.Texas.12)를 주입하여 각 모드의 암호문 변화를 관찰했습니다.

결과 분석:

  • ECB 모드: 두 개의 암호문 블록이 완벽하게 동일한 16진수 값(Hex)으로 출력되었습니다. 이는 Ci=Ek(Pi)C_i = E_k(P_i) 구조에 따라, 동일한 평문 블록은 항상 동일한 암호문 블록으로 1:1 매핑되기 때문입니다.

  • CBC, CFB, OFB, CNT(CTR) 모드: 초기화 벡터(IV) 또는 Nonce가 결합되고, 이전 블록의 결과가 다음 블록에 영향을 주거나(Feedback) 카운터가 증가하는 구조로 인해, 완전히 동일한 평문 블록임에도 불구하고 두 번째 암호문 블록은 첫 번째 블록과 전혀 다른 무작위 형태의 데이터로 생성되었습니다.

결론: ECB 모드는 데이터의 본래 구조와 반복 패턴을 암호문에서도 그대로 노출합니다. 따라서 비트맵 이미지나 반복적인 헤더를 포함하는 네트워크 패킷을 암호화할 때 공격자에게 통계적 힌트를 제공하는 치명적인 결함이 있음을 확인했습니다.

B. Ciphertext Block Swapping Test (에러 전파 및 무결성 검증)

실험 환경: 수신자에게 전달되는 도중에 해커가 개입했다는 가정하에, 두 개의 서로 다른 블록(BlockA... 및 BlockB...)으로 구성된 암호문을 가로채어 블록 0과 블록 1의 순서를 강제로 뒤바꾸고(Swap) 복호화를 수행했습니다.

결과 분석:

  • ECB 모드 (성공적 변조): 암호문 블록의 순서를 바꾼 후 복호화한 결과, 원본 텍스트에 어떠한 데이터 손상(Garbled text)도 발생하지 않고 평문의 순서만 깔끔하게 뒤바뀌어 출력되었습니다. 각 블록의 암복호화가 독립적으로 이루어지기 때문입니다.

  • CBC 모드 (에러 전파 발생): 암호문 블록의 순서를 뒤바꾼 후 복호화하자 원본 텍스트가 완전히 파괴된 외계어 문자열이 출력되었습니다. CBC의 복호화 수식은 Pi=Dk(Ci)Ci1P_i = D_k(C_i) \oplus C_{i-1} 입니다. 이전 암호문 블록(Ci1C_{i-1})의 위치와 값이 변조되었으므로, 현재 블록의 평문(PiP_i)을 도출하는 XOR 연산이 붕괴하며 에러가 연쇄적으로 전파(Error Propagation)되었습니다.

결론: 공격자가 암호화 키를 모르더라도, ECB 모드에서는 암호문의 순서를 임의로 조작하여 논리적 흐름(예: 금융 거래 내역의 순서)을 변조할 수 있습니다. 반면, CBC와 같은 피드백 기반 모드들은 순서가 조작되면 복호화 과정에서 치명적인 에러가 발생하므로, 수신자가 데이터의 무결성(Integrity)이 훼손되었음을 즉각적으로 인지할 수 있습니다.

profile
Design Verification engineer

0개의 댓글