implementacja szyfru RC4 liczy kilka zaledwie wierszy kodu. W tabeli 7.4 zamieszczono zaczerpnięte z książki [RESC01] wartości przepustowości szyfru RC4 i trzech symetrycznych szyfrów blokowych.
Tabela 7.4. Porównanie szybkości wybranych szyfrów symetrycznych (na komputerze z procesorem Pentium II)
Szyfr |
Długość klucza |
Szybkość (Mb/s) |
DES |
56 bitów |
9 |
3DES |
168 bitów |
3 |
RC2 |
zmienna |
0,9 |
RC4 |
zmienna |
45 |
Podstawowa przewaga szyfrów blokowych nad szyframi strumieniowymi polega na możliwości wielokrotnego używania tych samych kluczy; gdyby przy użyciu szyfru strumieniowego zaszyfrowano dwa różne szyfrogramy tym samym kluczem, różnica symetryczna szyfrogramów byłaby identyczna z różnicą symetryczną tekstów jawnych. Korzystając bowiem z przemienności i łączności operacji XOR, możemy napisać
(X©K)©(Y©K) =
(X © K) © (K © Y)
= X©(K©K)ffi Y = Xffi 0 © Y = (X© 0)© Y = X© Y
Jeśli strumienie X i Y są tekstami w języku naturalnym, numerami kart kre-ivtowych lub innymi obiektami o znanych właściwościach, kryptoanaliza staje się znacznie ułatwiona, o czym piszą Dawson i Nielsen w artykule [DAWS96].
Dla aplikacji wykorzystujących szyfrowanie i deszyfrację danych, na przykład zplikacji webowych wymieniających informację z serwerami WWW, szyfr strumieniowy jest lepszym wyborem. Dla aplikacji operujących blokami danych, między innymi aplikacji bazodanowych, poczty elektronicznej i transferu plików, szvfry blokowe okazują się wygodniejsze. Mimo to generalnie szyfry obu kategorii nadają się dla dowolnych aplikacji.
Szyfr strumieniowy można skonstruować na bazie dowolnego, bezpiecznego kryptograficznie generatora liczb pseudołosowych, takiego jak te opisywane w seksach 7.2 i 7.3. W następnej sekcji zajmiemy się dokładniej szyfrem bazującym na specyficznym, dedykowanym generatorze.
RC4 to szyfr strumieniowy zaprojektowany w roku 1987 przez Rona Rivesta z firmy RSA Security. Operuje na poziomie poszczególnych bajtów przy użyciu klucza zmiennej długości, a podstawą wykonywanych przez niego transformacji są