Přehled
RC4 (také ARC4 nebo ARCFOUR) je symetrická proudová šifra navržená Ronem Rivestem koncem 80. let. Její hlavní přednosti byly jednoduchost a rychlost v softwaru i hardwaru. RC4 generuje pseudonáhodný proud bajtů, který se pomocí operace XOR kombinuje s otevřeným textem a produkuje šifrovaný výstup. Díky malé režii byla šifra hojně používána v řadě protokolů a aplikací, avšak s narůstajícím počtem analýz se od jejího používání v nových projektech odstupuje.
Princip fungování
Algoritmus RC4 pracuje ve dvou fázích: KSA (Key-Scheduling Algorithm) inicializuje vnitřní stav zadaným klíčem a PRGA (Pseudo-Random Generation Algorithm) generuje kontinuální proud bajtů. Stav tvoří pole 256 bajtů a dva indexy, které se při každém kroku mění a způsobují permutaci. Výstupní bajty mají být náhodné, ale v praxi vykazují statistické odchylky, především v počátečních octetech proudu.
Historie a šíření
RC4 byl vytvořen firmou RSA Security a po dlouhou dobu byl považován za proprietární. V 90. letech došlo k veřejnému zveřejnění implementace, po kterém komunita ověřila shodu s původní verzí. Značka "RC" (Rivest's Cipher) zůstala spjata s návrhem, přičemž název ARCFOUR se používá z důvodu ochranných známek a právních otázek. RC4 se stal součástí mnoha standardů a protokolů, například v implementacích pro zabezpečení sítí a přenosu dat.
Použití a příklady
V praxi byl RC4 integrován do běžných protokolů, zejména tam, kde byla žádána nízká režie a jednoduchost. Mezi konkrétní oblasti nasazení patřily implementace bezdrátových sítí a starší verze zabezpečení přenosu dat. Hlavní výhodou byla rychlost a malá náročnost na paměť, což umožňovalo použití i v omezených zařízeních.
Bezpečnostní problémy a omezení
RC4 vykazuje několik dobře zdokumentovaných slabin. Nejdůležitější jsou biasy v počátečních bytech generovaného proudu a citlivost na opakované použití stejného proudu (keystreamu). Pokud se začne šifrování bez odstranění prvních bajtů nebo pokud se stejný klíč/vektor inicializace použije vícekrát, útočník může rekonstruovat data nebo postupně získat klíč. U protokolu WEP vedla kombinace chybného návrhu IV a použití RC4 k úplnému prolomení ochrany. Z těchto důvodů moderní kryptografická komunita nedoporučuje RC4 pro nové systémy a mnoho protokolů přestalo RC4 podporovat.
Doporučení a alternativy
- Vyhnout se RC4 v nových návrzích; preferovat ověřené proudové šifry nebo blokové šifry v bezpečných módech (např. AES-GCM).
- Pokud je nutné zachovat kompatibilitu se systémy používajícími RC4, aplikovat mitigace jako odstranění prvních bajtů proudu ("RC4-drop") a důsledně předcházet opakovanému použití klíčů.
- Pro bezdrátové sítě a přenosy dat používat moderní standardy, které řeší slabiny původních návrhů.
Rozdíly a poznámky
RC4 je proudová šifra, což ji odlišuje od blokových šifer, které pracují s pevně velkými bloky dat. Z praktického hlediska to znamená jiný model nasazení a jiné typy chyb, zejména riziko opakování proudu. Přestože byla RC4 v minulosti velmi populární, z hlediska dlouhodobé bezpečnosti ji nahradily robustnější konstrukce s formálně analyzovanými vlastnostmi.
Odkazy a zdroje
Pro další čtení a konkrétní technické detaily je níže uveden přehled odkazů na příklady, standardy a veřejné diskuze:
- Dokumentace a popisy RC4
- Obecné informace o proudových šifrách
- RC4 v kontextu zabezpečení přenosu (TLS/SSL)
- Použití RC4 ve WEP
- Mitigace: vyřazení počátečních bajtů
- Příklady nesprávného použití
- Související šifry: RC2
- Související šifry: RC5
- Související šifry: RC6
- Historie a status obchodního tajemství
- Veřejná diskuse a zveřejnění kódu
- Archivy a internetové zdroje
- Ověření implementací
- Technické popisy algoritmu
- Otázky ochranných známek
- RC4 v kryptografických standardech
- Použití v bezdrátových standardech
- Důvody rozšíření RC4
- Šifrovací principy
- Délky klíčů a varianty
- Popis KSA (Key-Scheduling Algorithm)
- Kryptografické standardy a bezpečnostní požadavky
- Shrnutí doporučení a bezpečnostních praktik