CoderTools

RC 패밀리 암호화/복호화

Ron Rivest가 설계한 RC2/RC4/RC5/RC6 대칭 암호

⚠️ 보안 주의

RC4는 알려진 취약점이 있으며 TLS/SSL에서 더 이상 사용되지 않습니다. 최대 보안을 위해 AES-256 사용을 고려하세요. 모든 데이터는 브라우저에서 로컬로 처리됩니다.

RC2 키 길이: 1-128 바이트. 블록 크기: 64 비트. 권장 유효 키 비트: 128
형식 옵션

RC 패밀리 소개

RC(Rivest Cipher, 'Ron's Code') 패밀리는 Ron Rivest가 MIT와 RSA Security에서 수십 년에 걸쳐 설계했습니다. RC2(1987년, RFC 2268로 1998년 발행): 64비트 블록 암호, 64~128비트 가변 키, 수출용으로 제작. RC4(1987년, 1994년 Cypherpunks 메일링 목록에 유출): WEP 키 스케줄 취약점과 FMS 공격으로 유명한 스트림 암호.

RC5(1994년, Rivest): 완전히 매개변수화된 RC5-w/r/b 블록 암호. RC5-32/12/16이 참조 구현. RC6(1998년, Rivest/Gupta/Shamir/Yin): 정수 곱셈과 4개 레지스터로 RC5를 확장한 AES 최종 후보, 128비트 블록, 20라운드.

알고리즘 비교

알고리즘 유형 키 길이 블록 크기 보안 상태
RC2 블록 암호 1-128 바이트 64 비트 약함 지원 중단
RC4 스트림 암호 1-256 바이트 N/A (스트림) 약함 지원 중단
RC5 블록 암호 0-255 바이트 32/64/128 비트 양호 안전
RC6 블록 암호 16/24/32 바이트 128 비트 우수 AES 최종 후보

RC2 (Rivest Cipher 2)

RC2는 1987년에 설계된 64비트 블록 암호입니다. 가변 길이 키(1-128 바이트)를 사용하며 키 검색 공간을 제한할 수 있는 고유한 '유효 키 비트' 매개변수가 있습니다.

원래 비밀로 설계된 RC2는 40비트 유효 키 길이로 수출 호환성을 목표로 했습니다. 알려진 취약점으로 인해 레거시 시스템 호환성에만 사용해야 합니다.

RC4 (Rivest Cipher 4)

RC4는 1987년에 설계된 스트림 암호입니다. 평문과 XOR되는 의사 난수 바이트 스트림(키스트림)을 생성합니다. 단순성과 속도로 알려져 SSL/TLS, WEP, WPA 프로토콜에서 널리 사용되었습니다.

발견된 취약점(특히 키스트림의 초기 바이트)으로 인해 RC4는 현대 보안 프로토콜에서 더 이상 사용되지 않습니다. 'RC4-Drop' 변형은 이러한 문제를 완화하기 위해 초기 키스트림 바이트를 버립니다.

RC5 (Rivest Cipher 5)

1994년에 발표된 RC5는 세 가지 변수를 가진 매개변수화 가능한 설계를 도입했습니다: 워드 크기(w), 라운드 수(r), 키 길이(b). 이 유연성으로 다양한 보안 요구사항에 맞게 RC5를 조정할 수 있습니다.

RC5는 주요 비선형 연산으로 데이터 종속 회전을 사용하여 단순하지만 효과적입니다. 일반적인 구성에는 RC5-32/12/16(32비트 워드, 12라운드, 16바이트 키)이 있습니다.

RC6 (Rivest Cipher 6)

RC6는 1998년 AES 후보로 제출되어 5개의 최종 후보 중 하나가 되었습니다. 더 나은 확산을 위해 정수 곱셈으로 RC5를 확장하고 2개 대신 4개의 작업 레지스터를 사용합니다.

128비트 고정 블록 크기와 128/192/256비트 키 지원으로 RC6는 우수한 보안을 제공합니다. Rijndael이 AES로 선정되었지만 RC6는 여전히 존중받는 안전한 알고리즘입니다.

주요 기능

  • RC2: 가변 키 길이의 레거시 블록 암호, 호환성 목적으로만 사용
  • RC4: 매우 빠른 스트림 암호화, 실시간 애플리케이션에 이상적
  • RC5: 유연한 보안/성능 절충을 허용하는 매개변수화 가능한 설계
  • RC6: 강력한 보안 보장을 제공하는 현대적인 블록 암호
  • 모든 알고리즘은 특허가 없으며 모든 용도로 무료로 사용 가능

암호화 모드 (RC5/RC6)

  • CBC: RC2/RC5/RC6용 CBC — RC2/RC5-32/RC6-32의 64비트 블록은 동일 키로 ≈32GB 이상의 CBC 데이터에서 Sweet32 위험에 노출. RC4는 CBC 없이 네이티브 PRGA 스트림 제공.
  • ECB: RC2/RC5/RC6용 ECB — 각 블록이 독립적으로 모든 라운드 처리. 동일 블록→동일 암호문. 단일 블록 토큰/키 래핑에만 허용.
  • CFB: RC2/RC5/RC6용 CFB — 블록 함수가 이전 암호문을 암호화하고 상위 n비트가 명문 n비트와 XOR. 자동 동기화 스트림 모드.
  • OFB: RC2/RC5/RC6용 OFB — 반복 재암호화로 키스트림 생성, 평문과 독립. 오류 전파 없음.

보안 고려사항

  • RC4는 새로운 어플리케이션에 절대 사용 금지. RFC 7465(2015)가 TLS에서 RC4를 공식 금지. FMS 공격(2001)은 1분 내에 WEP 키를 복구. RC4 지원은 레거시 복호화 전용.
  • RC4-Drop(PRGA 첫 768~3072바이트 폐기)은 취약점을 줄이지만 제거하지 못함. NOMORE 공격(2015, Black Hat): RC4 TLS에서 75시간 만에 쿠키 복구.
  • RC5와 RC6에는 완전 라운드 실용 공격이 없지만 64비트 블록이 동일 키로 ≈32GB CBC 데이터에서 Sweet32 노출.
  • RC2는 40비트 유효 키(수출용)로 설계되어 약한 암호로 간주. 레거시 S/MIME 호환성에만 사용.

사용 사례

  • WEP/WPA 레거시 포렌식: 3바이트 IV와 네트워크 키에서 패킷별 RC4 키스트림 재구성
  • S/MIME 호환 복호화: RFC 2268 하의 RC2/40 또는 RC2/128로 암호화된 이메일 아카이브
  • RC5 매개변수화 연구: RC5-32/12/16 대 RC5-64/20/16 비교로 ARX 워드 폭 확장성 이해
  • AES 후보 평가: RC6-32/20을 Rijndael, Serpent, Twofish, MARS와 동일 테스트 벡터로 비교

참고자료

빠른 메뉴

최근 사용 도구 없음