스트림 암호화 (Stream Cipher)

agnusdei·2025년 11월 25일

Information Security

목록 보기
20/96

🔑 스트림 암호화 (Stream Cipher) 개요

스트림 암호는 대칭 키 암호(Symmetric-key Cipher) 방식 중 하나로, 평문(Plaintext) 데이터를 비트(bit) 또는 바이트(byte) 단위의 연속적인 흐름으로 처리하여 암호화하는 방식입니다. 블록 암호(Block Cipher)와 달리 고정된 블록 단위로 처리하지 않고, 실시간성이 중요한 환경에서 매우 효율적입니다.

1. 작동 원리 (OTP의 확장)

스트림 암호의 근본적인 원리는 일회용 패드 (OTP, One-Time Pad)와 같습니다.

  • 일회용 패드: 평문과 동일한 길이의 완벽한 난수(True Random Number)를 키로 사용하여 XOR 연산을 수행하며, 이론적으로 해독 불가능한 완벽한 보안을 제공합니다.
  • 스트림 암호: OTP의 완벽한 난수를 대신하여, 키(Key)의사 난수 생성기 (PRBG, Pseudo-Random Bit Generator)를 통해 의사 난수(Pseudo-Random Number)로 구성된 키스트림(KSK_S)을 생성하여 사용합니다.

암호문(C)=평문(P)키스트림(KS)암호문 (C) = 평문 (P) \oplus 키스트림 (K_S)

2. 스트림 암호의 기술적 분류

스트림 암호는 키스트림 생성 방식에 따라 크게 두 가지 유형으로 분류됩니다.

구분동기식 스트림 암호 (Synchronous Stream Cipher)비동기식 스트림 암호 (Self-Synchronizing Stream Cipher)
키스트림 생성내부 상태(Initial Vector/IV)에 의해서만 결정됨. 암호문과는 무관함.이전 단계에서 생성된 암호문의 일부에 의해 결정됨.
특징송신자와 수신자의 키스트림 생성 상태가 항상 동기화되어야 함.통신 중 일부 비트 오류가 발생해도 시간이 지나면 자동 복구(동기화)됨.
예시RC4, A5/1, ChaCha20Cipher Feedback (CFB) 모드로 운영되는 블록 암호

💡 난수 생성 방식 및 보안성 (제시된 예시 활용)

제시된 이미지에서 설명하는 난수 생성 방식은 스트림 암호의 보안성을 결정하는 가장 중요한 요소입니다.

1. 난수 방식 (True Randomness)

난수 방식: 이진 수열 사용. 이진 수열이란 동전을 던져서 나오는 값처럼 [0, 1] 구간에서 임의로 선택된 수로 구성하는 수열을 뜻한다.

  • 의미: 이는 참 난수(True Random Number) 또는 물리적 난수를 의미합니다. 물리적인 현상(예: 동전 던지기, 방사성 붕괴, 열잡음 등)을 이용하여 예측 불가능한 이진 수열을 만듭니다.
  • 특징: 완벽한 비주기성(Non-periodicity)비결정성(Non-determinism)을 가지므로, 일회용 패드와 같이 이론적으로 최고의 보안 강도를 제공합니다.
  • 문제점: 난수를 실시간으로 대량 생성하는 것이 어렵고, 생성된 난수를 안전하게 공유하고 관리하는 것이 실용적으로 매우 어렵습니다.

2. 의사 난수 방식 (Pseudo-Random Number, PRN)

의사 난수 방식 Pseudo-Random Number: 함수를 이용하여 발생하는 난수. 진정한 난수는 아니며 실제는 아주 긴 주기를 가지는 수열이다.

  • 의미: 현재 상용 스트림 암호에서 채택하는 방식입니다. 확정적인 알고리즘(Deterministic Algorithm), 즉 의사 난수 생성기 (PRBG)를 사용하여 난수처럼 보이는 비트열을 생성합니다.
  • 특징:
    • 결정론적: 키(Seed)가 주어지면 항상 동일한 수열이 생성됩니다.
    • 주기성: 언젠가는 수열이 반복됩니다. 하지만 현대 암호에서는 주기가 21282^{128}과 같이 매우 길어 실질적으로 무한한 것으로 간주합니다.
  • 보안성: PRBG가 암호학적으로 안전하게 설계되었다면 (CSPRNG, Cryptographically Secure PRNG), 생성된 키스트림은 통계적으로 진정한 난수와 구별할 수 없어 강력한 보안을 유지합니다.

🌟 스트림 암호의 장단점 및 고려사항

스트림 암호는 기술적으로 다음과 같은 장단점을 가집니다.

장점 (Advantages)단점 (Disadvantages)
고속 처리: 비트 단위의 단순한 XOR 연산으로, 하드웨어/소프트웨어 구현 시 처리 속도가 매우 빠릅니다.키스트림 재사용 금지: 키스트림(KSK_S)을 재사용하면 평문이 노출될 수 있어 키 관리에 엄격해야 합니다 (암호학적 안전성의 핵심).
하드웨어 효율성: 단순한 구조 덕분에 작은 칩 면적과 적은 전력 소모로 구현 가능합니다 (IoT, RFID 환경 적합).오류 전파: 동기식 스트림 암호의 경우, 키스트림의 동기(Synchronization)가 어긋나면 이후 모든 복호화가 실패합니다.

기술사 관점에서의 보안 고려사항: 스트림 암호는 키스트림의 높은 비선형성(Nonlinearity)긴 주기(Periodicity)를 확보하는 PRBG 설계가 핵심입니다. 취약한 PRBG는 선형 피드백 시프트 레지스터 (LFSR, Linear Feedback Shift Register) 기반의 분석이나 기타 수학적 공격에 노출될 수 있습니다.


profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글