Szyfr strumieniowy: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja nieprzejrzana][wersja przejrzana]
Usunięta treść Dodana treść
ort., brak przecinka przed a
Brak kropki na końcu zdania
Linia 4: Linia 4:
:<math>C_i = S_i \oplus M_i</math>
:<math>C_i = S_i \oplus M_i</math>


gdzie <math>S_i</math> to strumień bitów będący kluczem, <math>M_i</math> to [[tekst jawny]], a <math>C_i</math> to [[szyfrogram (kryptografia)|szyfrogram]]
gdzie <math>S_i</math> to strumień bitów będący kluczem, <math>M_i</math> to [[tekst jawny]], a <math>C_i</math> to [[szyfrogram (kryptografia)|szyfrogram]].


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

Wersja z 18:33, 23 kwi 2017

Szyfr strumieniowy (także: algorytm strumieniowy, algorytm potokowy) – 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].

Szyfrowanie wiadomości wykorzystujące operację XOR wygląda następująco:

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

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

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.

  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ż