I kryptografin är RC4 ett välkänt exempel på ett streamchiffer som länge använts i praktiska protokoll som Secure Sockets Layer (SSL) och i trådlösa system som WEP. I grunden producerar RC4 en ström av pseudotillfälliga bytevärden som sedan kombineras med klartexten genom en bitvis XOR-operation. Den enkla konstruktionen och höga hastigheten gjorde RC4 populärt i mjukvara och hårdvara, men samma enkelhet bidrog också till flera implementeringsproblem och svagheter kring just början av utdatakärnströmmen.
Egenskaper och hur RC4 fungerar
Algoritmen består av två huvuddelar: en key-scheduling-algoritm (KSA) som initierar ett internt tillstånd utifrån en hemlig nyckel och en pseudotillfällig generator (PRGA) som skapar den löpande nyckelströmmen — alltså de krypterade bitar som kombineras med meddelandet. Nyckellängder i praktiken har varierat, ofta mellan 40 och 256 bitar, och eftersom RC4 är ett strömchiffer är det avgörande att samma nyckelström aldrig återanvänds för mer än ett meddelande.
RC4 utvecklades av Ron Rivest 1987 och distribuerades ursprungligen som proprietär mjukvara. Efter att beskrivningen läckt till nyhetsgruppen och vidare till större delar av Internet blev koden allmänt känd; utskriften verifierades mot proprietär programvara som använde licensierad RC4. Eftersom algoritmen är offentlig används ibland alternativa beteckningar som ARC4 eller ARCFOUR för att hantera varumärkesfrågor.
Användningsområden och historisk spridning
Tack vare små resurser för implementation och hög prestanda införlivades RC4 i en rad krypteringsprotokoll, inklusive tidiga varianter av trådlösa säkerhetslösningar som WPA och WEP samt i många SSL/TLS-implementationer. De främsta skälen för adoption var enkelhet och snabbhet, särskilt i miljöer med begränsade processorkapaciteter eller där låg latens var viktig.
Säkerhet och kända svagheter
Under 1990-talet och 2000-talet upptäcktes flera svagheter i RC4, både i algoritmens initialiseringsbeteende och i statistiska biaser i tidiga byte av keystreamen. Ett vanligt fel var att återanvända IV eller nyckeluppsättningar, vilket ledde till praktiska attacker och gjorde exempelvis WEP mycket osäkra kryptosystem. Kryptografer observerade att RC4 inte längre uppfyller kriterierna för ett säker chiffer, och rekommendationer började istället peka mot modernare konstruktioner och protokoll utan RC4.
- Implementeringsrisker: felaktig hantering av initiala nyckelströmmar.
- Statistiska avvikelser: biaser i tidiga delar av strömmen som kan utnyttjas.
- Nyckelåteranvändning: samma keystream för två olika meddelanden kan avslöja klartext.
Som motåtgärder har praktiker föreslagit att kassera de första bajtena av keystreamen vid varje nyckel (en teknik som ibland förbättrar säkerheten något) och att kombinera RC4 med noggrann nyckelhantering. Trots sådana åtgärder har många standarder och implementatörer slutligen avrådt från RC4 och bytt till andra algoritmer som är designade för nutida hotbilder.
Skillnader mot andra Rivest-chiffer och avslutande anmärkningar
RC4 hör till en familj av ciphers utvecklade av Ron Rivest, där andra kända varianter är RC2, RC5 och RC6. Till skillnad från dessa är RC4 ett renodlat strömchiffer snarare än en blockchiffer. Ursprungligen hölls RC4 som affärshemlighet, men dess spridning och de praktiska problemen som följde visar hur viktigt det är att kryptografiska metoder granskas öppet av både forskare och praktiker — något som kryptografer länge betonat.
För den som vill studera RC4 vidare finns många resurser och analyser att läsa; sökningar på relevanta termer i facklitteratur och tekniska rapporter ger djupare insikt i både konstruktionen och attackmetoderna. Kort sagt: RC4 är historiskt intressant och pedagogiskt användbar för att förstå strömchiffer, men för nyare system bör man välja modernare och bättre granskade alternativ.