RC4(Rivest Cipher 4)는 1987년 Ron Rivest가 설계한 스트림 암호입니다. 비트의 의사 난수 스트림(키스트림이라고 함)을 생성하여 데이터를 암호화합니다. 이 스트림은 일반적으로 XOR 연산을 사용하여 평문 데이터와 결합되어 암호문을 생성합니다.
암호화: 평문의 각 바이트를 키스트림의 해당 바이트와 결합하여 암호문을 생성합니다.
복호화: 동일한 키스트림을 사용하여 암호문을 XOR 연산하고 원래 평문을 복구합니다.
속도: RC4는 특히 리소스가 제한된 환경에서 빠른 속도와 효율성으로 유명합니다.
단순성: 구현이 간단하고 최소한의 리소스만 필요하므로 처리 능력이 제한된 환경에 적합합니다.
역사적 용도: RC4는 보안 통신을 위한 SSL/TLS 및 무선 네트워크 보안을 위한 WEP과 같은 프로토콜에서 널리 사용되었습니다.
키 생성: 비밀 키(일반적으로 40~2048비트) RC4 상태를 초기화하는 데 사용됩니다.
키스트림 생성: RC4 알고리즘은 키를 기반으로 의사 난수 키스트림을 생성합니다.
암호화: 평문의 각 바이트를 키스트림 바이트와 XOR하여 암호문을 생성합니다.
복호화: 동일한 키스트림을 사용하여 암호문을 XOR하고 원본 평문을 복구합니다.
라이브러리/도구: RC4는 다양한 라이브러리에서 지원되지만 보안상의 이유로 종종 지원이 중단됩니다.
Python: pycryptodome 라이브러리.
Java: javax.crypto 패키지(더 강력한 알고리즘을 위해 권장하지 않음).
C#: System.Security.Cryptography 네임스페이스.
레거시 시스템: RC4 암호화를 여전히 사용하는 구형 시스템(예: 구형 SSL/TLS 구현)을 사용하는 경우.
중요하지 않은 애플리케이션: 보안보다 속도가 더 중요한 프로젝트를 진행하는 경우. 하지만 일반적으로 더 강력한 암호화를 위해 권장하지 않습니다.
교육 목적: RC4는 간단하기 때문에 대칭 암호와 스트림 암호를 가르치는 데 자주 사용됩니다.