654. 스트림 암호 (Stream Cipher) - RC4 (사장), ChaCha20

핵심 인사이트: 1GB짜리 동영상을 통째로 받아서 한 방에 암호화하려면 메모리(RAM)가 1GB나 필요하다. 초창기 빈약한 기기들에겐 불가능한 미션이었다. 그래서 '스트림 암호'는 영상이 파이프를 타고 1비트씩 졸졸졸 흘러올 때마다, 암호화 키도 1비트씩 계속 만들어내어 실시간으로 찰칵찰칵 섞어버리는 눈물겨운 실시간 다이어트 암호화 방식이다.

Ⅰ. 스트림 암호 (Stream Cipher)의 개념

  • 대칭키 암호 방식의 한 갈래로, 평문 데이터를 한꺼번에 모아서 처리하지 않고, 물 흐르듯이 1비트(또는 1바이트) 단위로 순차적으로 처리하며 암호화하는 기법입니다.
  • 원리: 암호화 알고리즘이 짧은 비밀 키(Key)를 씨앗(Seed) 삼아서, 무한히 긴 0과 1의 랜덤 난수열(Key Stream)을 폭포수처럼 콸콸 만들어 냅니다. 흘러오는 원본 데이터(평문)와 이 난수열(키 스트림)을 1:1로 겹쳐서 XOR(배타적 논리합) 연산만 톡 때려주면 1 나노초 만에 암호화가 끝납니다.

Ⅱ. 스트림 암호의 장점과 단점

  • 장점 (초고속, 저메모리): 단순히 숫자를 1:1로 비교하는 XOR 연산만 쓰기 때문에 하드웨어(CPU) 부하가 거의 없고 처리 속도가 빛의 속도입니다. 버퍼(메모리)에 데이터를 모아둘 필요도 없습니다. 초기 와이파이나 블루투스 같은 실시간 무선 환경에 적합했습니다.
  • 단점 (재사용의 재앙): 같은 키 스트림(난수열)을 실수로 두 번 재사용하는 순간, 해커가 암호문을 XOR 연산으로 뒤집어 원본 비밀번호를 1초 만에 털어버릴 수 있는 끔찍한 수학적 약점이 존재합니다.

Ⅲ. 스트림 암호의 흥망성쇠 🌟

1. 몰락한 제왕: RC4 (Rivest Cipher 4)

  • 1987년에 개발되어 무선 LAN 초기 보안인 WEP 통신 등에 전 세계적으로 가장 많이 쓰였던 전설적인 스트림 암호입니다.
  • 몰락: 앞선 580번 문서에서 배운 것처럼, IV(초기화 벡터) 재사용 취약점 때문에 암호화 공식의 패턴이 간파되어 5분 만에 해킹당하는 치명적 약점이 까발려졌습니다. 현재는 IETF에 의해 모든 인터넷 프로토콜(TLS 등)에서 **사용이 완전 금지(Deprecated)**되었습니다.

2. 화려한 부활: ChaCha20 (차차20)

  • 구글(Google)이 주도하여 RC4를 관짝에 넣고 그 자리를 대체하기 위해 밀어붙인 현대적인 초고속 스트림 암호 알고리즘입니다.
  • 특징: 기존 블록 암호인 AES가 소프트웨어(앱) 환경에서 돌리면 속도가 살짝 느려지는 약점이 있는데, ChaCha20은 소프트웨어 연산에 극도로 최적화되어 구형 스마트폰이나 저사양 IoT 기기에서도 AES보다 3배 이상 빠르게 쌩쌩 돌아갑니다.
  • 현재 인터넷 보안 표준인 TLS 1.3에서 AES와 함께 공식 암호화 알고리즘으로 채택되어 모바일 웹 환경을 지배하고 있습니다.

📢 섹션 요약 비유: 블록 암호(AES)가 물건(데이터)이 1톤 트럭에 꽉 찰 때까지 기다렸다가 거대한 탑차 문을 한 방에 특수 자물쇠로 잠그는 묵직한 방식이라면, 스트림 암호는 컨베이어 벨트 위로 사과(1비트)가 1개씩 굴러올 때마다 그 위에 0.1초 만에 독약 코팅(XOR 연산)을 칙칙 뿌려서 실시간으로 내보내는 초고속 시스템입니다. RC4는 이 독약 배합 공식이 털려서 망했고, ChaCha20은 구글이 새롭게 발명한 절대 안 뚫리는 완벽한 독약 배합기입니다.