본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
(스트림암호에서 넘어옴)
Stream Cipher
  • 데이터 흐름을 순차적으로 처리해가는 암호 알고리즘
  • 평문과 키 스트림을 XOR 연산하여 생성한다. 이론적으로 완벽하게 안전한 One Time Pad를 현실적으로 구현한 것이다.
  • 블록 암호보다 빠르지만 암호화 강도는 약하다. 주로 실시간성이 요구되는 음성, 영상 등에 이용된다.

키(와 초기값 IV)를 의사난수 생성기에 넣어 평문과 같은 길이의 키 스트림을 만들고, 평문과 비트 단위로 XOR 해 암호문을 만든다. 복호화도 같은 키 스트림을 다시 XOR 한다.

  • 낮은 지연 - 블록이 찰 때까지 기다리지 않고 비트·바이트가 들어오는 대로 처리하므로 버퍼가 작거나 한 글자씩 처리해야 하는 통신에 알맞다[1]
  • 오류 전파가 없다 - 동기식 스트림 암호에서 전송 중 암호문 한 비트가 바뀌면 복호화된 평문도 같은 위치의 한 비트만 틀리고 다른 비트에는 영향이 없다. 그래서 전송 오류가 잦은 환경에 유리하다[1] 블록 암호의 OFB·CTR 모드도 같은 성질을 가지는 반면 CBC 는 오류가 블록 전체와 다음 블록에 번진다[2]
  • 자기 동기식 스트림 암호는 앞선 암호문 몇 비트로 키 스트림을 만들므로 오류가 그 몇 비트 범위 안에서만 번지고 그 뒤에는 저절로 회복된다
  • 키 스트림 재사용 금지 - 같은 키와 IV 로 만든 키 스트림을 두 메시지에 쓰면 두 암호문을 XOR 했을 때 키 스트림이 지워져 평문끼리의 XOR 이 드러난다. 그래서 메시지마다 IV(논스)를 바꾼다
  • 비트를 뒤집으면 평문의 같은 비트가 뒤집히므로 무결성을 주지 못한다. MAC 이나 인증 암호와 함께 쓴다

블록 암호와 구별하기

편집 원본 편집
구분 스트림 암호 블록 암호
처리 단위 비트·바이트 고정 길이 블록(64·128비트)
지연 낮다 블록을 채워야 한다(패딩 필요)
암호문 1비트 오류 같은 위치 1비트만 모드에 따라 블록 전체·다음 블록까지(CBC)
주의점 키 스트림(키+IV) 재사용 금지 모드 선택, IV 관리
  • RC4
  • ChaCha20, LFSR 기반 A5/1·E0
  1. ↑ 1.0 1.1 Alfred Menezes, Paul van Oorschot, Scott Vanstone, 「Handbook of Applied Cryptography」 6장 Stream Ciphers, CRC Press, https://cacr.uwaterloo.ca/hac/about/chap6.pdf, 확인일: 2026-11-04.
  2. ↑ 「Recommendation for Block Cipher Modes of Operation」(NIST SP 800-38A) 부록 D Error Properties, NIST, https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf, 확인일: 2026-11-04.