RC 패밀리 암호화/복호화
Ron Rivest가 설계한 RC2/RC4/RC5/RC6 대칭 암호
⚠️ 보안 주의
RC4는 알려진 취약점이 있으며 TLS/SSL에서 더 이상 사용되지 않습니다. 최대 보안을 위해 AES-256 사용을 고려하세요. 모든 데이터는 브라우저에서 로컬로 처리됩니다.
RC 패밀리 소개
RC 암호 패밀리는 MIT와 RSA Security의 Ron Rivest가 설계했습니다. 'RC'는 원래 'Rivest Cipher' 또는 'Ron's Code'를 의미했습니다. 패밀리에는 각각 고유한 특성을 가진 RC2, RC4, RC5, RC6가 포함됩니다.
RC2는 1987년 설계된 64비트 블록 암호입니다. RC4는 SSL/TLS와 WEP에서 널리 사용된 스트림 암호입니다. RC5는 혁신적인 매개변수화 가능한 구조를 도입했습니다. RC6는 더 나은 확산을 위해 정수 곱셈으로 RC5를 확장한 AES 후보로 설계되었습니다.
알고리즘 비교
| 알고리즘 | 유형 | 키 길이 | 블록 크기 | 보안 | 상태 |
|---|---|---|---|---|---|
| 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: 블록 체인 - 각 블록이 이전 암호화된 블록과 XOR됨. 대부분의 경우 권장.
- ECB: 코드북 - 각 블록이 독립적으로 암호화됨. 민감한 데이터에는 권장되지 않음.
- CFB: 암호 피드백 - 블록 암호를 스트림 암호로 변환. 자체 동기화.
- OFB: 출력 피드백 - 독립적으로 키스트림 생성. 오류 전파 없음.
보안 고려사항
- RC4는 알려진 취약점으로 인해 새로운 애플리케이션에 사용하면 안 됨
- RC4-Drop(처음 768-3072 바이트 버리기)은 일부 공격을 완화하지만 권장되지 않음
- 충분한 라운드(12+)와 키 길이(128+ 비트)의 RC5는 안전한 것으로 간주됨
- RC6는 AES에 필적하는 우수한 보안을 제공
사용 사례
- 레거시 시스템 호환성 및 마이그레이션
- 교육 및 연구 목적
- RC5를 사용한 임베디드 시스템 (간단한 구현)
- RC6를 사용한 고보안 애플리케이션