Szyfr strumieniowy

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Szyfr strumieniowy – nazywany także algorytmem strumieniowym, algorytmem potokowym lub szyfrem strumieniowym; jest to algorytm symetryczny, który szyfruje oddzielnie każdy bit wiadomości. Algorytm ten składa się z generatora strumienia bitowego, będącego kluczem szyfrującym oraz elementu dodającego (na przykład operacji XOR)[1].

Wykorzystując operację XOR szyfrowanie wiadomości wygląda następująco:

C_i = S_i \oplus M_i

gdzie S_i to strumień bitów będący kluczem, M_i to tekst jawny a C_i to szyfrogram

Odszyfrowywanie zakodowanej wiadomości odbywa się w identyczny sposób – generujemy strumień szyfrujący i XOR-ujemy go z szyfrogramem:

S_i \oplus C_i = S_i \oplus S_i \oplus M_i = M_i

Istnieją szyfry strumieniowe oparte na generatorach liczb pseudolosowych – jeśli generator jest kryptograficznie silny, to ziarno generatora może służyć jako klucz, a generowany strumień pseudolosowych liczb jako strumień szyfrujący. Blum Blum Shub jest przykładem generatora, dla którego istnieje dowód, że złamanie go jest co najmniej równie trudne jak rozbicie liczby stanowiącej klucz na czynniki.

Szyframi strumieniowymi są też tryby CFB, OFB i CTR szyfrów blokowych. Generują one z samego klucza i z wektora inicjalizującego (nie korzystając z danych) strumień szyfrujący, po czym XOR-ują go z danymi.

Przypisy

  1. Bruce Schneier: Kryptografia dla praktyków: protokoły, algorytmy i programy źródłowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 2002, s. 30-31. ISBN 83-204-2678-2.

Zobacz też[edytuj | edytuj kod]