close
Přeskočit na obsah

RC4

Z Wikipedie, otevřené encyklopedie

RC4 (též ARC4 nebo ARCFOUR) je v kryptografii název proudové symetrické šifry. Používala se například pro šifrovaný přenos webových stránek (TLS) nebo pro zabezpečení přenosu v bezdrátových sítích (WEP). Byla populární pro svou jednoduchost a rychlost, ale kvůli svým zranitelnostem je dnes považována za prolomenou.[1][2]

Šifru RC4 navrhl Ron Rivest z RSA Security v roce 1987. RC4 byla původně obchodním tajemstvím, ale v září 1994 byl popis šifry anonymně zaslán do Cypherpunks mailing listu, odkud byl odeslán do usenetové skupiny sci.crypt a zde ji za 2 dny prolomil Bob Jenkins.[3][4] Zveřejnění kódu zneplatnilo obchodní tajemství, ale problém nastal s názvem RC4, který byl chráněn ochranou známkou. Proto vznikly alternativní názvy, jako ARC4 nebo ARCFOUR, které ochrannou známku obešly. Šifra RC4 se stala součástí běžně používaných šifrovacích protokolů (SSL/TLS pro HTTPS nebo WEP a WPA pro bezdrátové sítě)[3].

Hlavním faktorem úspěchu RC4 je široký rozsah použitelnosti v aplikacích, jeho rychlost a jednoduchost: efektivní a snadná implementace v softwaru i hardwaru.

Šifra RC4 generuje pseudonáhodný proud bajtů (keystream). Stejně jako proudové šifry, používá k šifrování spojení náhodných bajtů spolu s čistým textem (operací XOR) a dešifrování probíhá podobným způsobem, ale inverzně. Ke generování keystreamu používá šifra vnitřní stav, který tvoří:

  1. pole bajtů o délce 256 (S)
  2. dvě celočíselné proměnné (i a j)

Pole S se inicializuje za použití klíče o volitelné délce až 256 bajtů (2048 bitů), viz dále.

Algoritmus pro rozvrhnutí klíče

[editovat | editovat zdroj]

Algoritmus pro rozvrhnutí klíče (anglicky key-scheduling algorithm) je použit pro inicializaci permutace v poli S. Délka klíče je definována jako počet bajtů klíče a může být v rozmezí od 1 do 256, většinou mezi 5 a 16, což odpovídá klíč o délce 40–128 bitů. Nejdříve je pole S inicializováno na S[i] = i. Pole S je pak zpracována v cyklu s 256 opakováními podobným způsobem jako hlavní PRGA, ale navíc přidává bajty z klíče.

for i from 0 to 255
    S[i] := i
endfor
j := 0
for i from 0 to 255
    j := (j + S[i] + key[i mod keylength]) mod 256
    prohoď S[i] a S[j]
endfor

Pseudonáhodné generování

[editovat | editovat zdroj]
BERJAYA
Vyhledávací cyklus RC4.

Generátor mění svůj stav a produkuje bajty keystreamu. V každé iteraci generátor inkrementuje i; hodnotu S s indexem i přičte do j, a vymění hodnoty S[i] a S [j] (každý prvek S je tak vyměněn s jiným prvkem alespoň jednou za 256 iterací); výsledným bajtem cyklu je prvek S s indexem S[i]+S[j] (všechny inkrementace a součty modulo 256).

i := 0
j := 0
while GeneratingOutput:
    i := (i + 1) mod 256
    j := (j + S[i]) mod 256
    prohoď S[i] a S[j]
    K := S[(S[i] + S[j]) mod 256]
    output K
endwhile

Implementace

[editovat | editovat zdroj]

Mnoho proudových šifer je založeno na lineárních posuvných registrech, které jsou snadno a rychle implementovatelné v hardwaru, méně však v softwaru. Návrh RC4 se vyhýbá použití lineárních posuvných registrů a je ideální pro implementaci v softwaru, protože vyžaduje pouze bajtovou manipulaci.

Testovací vektory

[editovat | editovat zdroj]

Testovací vektory nejsou oficiální, ale lze je použít pro otestování implementace RC4. Klíče a Text jsou v ASCII, zašifrovaný řetězec je v šestnáctkové soustavě (HEX).

Klíč Keystream Text Zašifrováno
\0de188941a3375d3a8a061e67576e926d…\0\0\0\0\0\0\0\0DE188941A3375D3A
Keyeb9f7781b734ca72a7194a2867b64295…PlaintextBBF316E8D940AF0AD3
Wiki6044db6d41b7e8e7a4d6f9fbd4428354…pedia1021BF0420
Secret04d46b053ca87b594172302aec9bb992…Attack at dawn45A01F645FC35B383552544B9BF5

Použití RC4

[editovat | editovat zdroj]

U příkladů označených „(volitelně)“, je RC4 šifrování jednou z možných šifer, které lze použít.

  1. POPOV, A. Prohibiting RC4 Cipher Suites. IETF [online]. 2015 [cit. 2026-05-28]. Dostupné online.
  2. RC4 NOMORE. www.rc4nomore.com [online]. [cit. 2026-05-28]. Dostupné online.
  3. 1 2 Thank you Bob Anderson. cypherpunks.venona.com [online]. [cit. 2026-05-28]. Dostupné v archivu pořízeném z originálu dne 2003-05-13.
  4. RC4 ?. groups.google.com [online]. [cit. 2026-05-28]. Dostupné online.
  5. Skype's encryption procedure partly exposed [online]. www.h-online.com [cit. 2010-07-08]. Dostupné online.

V tomto článku byl použit překlad textu z článku RC4 na anglické Wikipedii.