Szyfr Vigenère'a

Kapitoly: Szyfr Vigenère'a, Jak złamać szyfr Vigenère'a znając długość klucza, Szacowanie długości klucza szyfru Vigenère'a, Jak obliczyć długość klucza szyfru Vigenère'a, Test Friedmana - indeks zbieżności

Szyfr Vigenère'a to słynny szyfr, który wykorzystuje wiele alfabetów szyfrujących, dzięki czemu jest znacznie bardziej odporny na klasyczną analizę częstotliwości.

Zasady szyfrowania i deszyfrowania

Procedurę szyfrowania można wyjaśnić za pomocą szyfru Cezara. Kluczem szyfru Vigenère'a jest dowolne słowo składające się z liter alfabetu angielskiego, tj. a-z. Przykładowo, kluczem może być słowo "bcf". Szyfrowanie odbywa się następnie poprzez zapisanie tekstu jawnego, a bezpośrednio pod nim klucza, który jest powtarzany, dopóki nie osiągnie tej samej długości co tekst jawny. Dla otwartego tekstu "dobryvecer" wyglądałoby to następująco:

Tekst otwarty
:dobryvecer
Klucz:bcfbcfbcfb

Teraz zaszyfrujemy wszystkie litery z tekstu jawnego za pomocą szyfru Cezara z odpowiednim kluczem, tj. z kluczem w tej samej kolumnie. Szyfr Cezara jest szyfrem przestawieniowym, klucz wskazuje o ile liter przesunąć literę tekstu jawnego, mierząc od litery "a". Na przykład litera "b" oznacza przesunięcie o jedną literę alfabetu "w prawo". Litera "d" oznacza przesunięcie o trzy litery w prawo. Zaszyfrowalibyśmy słowo "hello" szyfrem Cezara i kluczem "b" do "bipk".

Podczas gdy w szyfrze Cezara szyfrujemy cały tekst za pomocą jednej litery, w szyfrze Vigenère'a zazwyczaj szyfrujemy za pomocą wielu liter. Tak więc zaszyfrowanie tekstu "dobryvecer" kluczem "bcf" wyglądałoby następująco:

Tekst jawny:dobryvecer
Klucz:bcfbcfbcfb
Szyfrogram:eqgsaafejs

Zaszyfrowaliśmy pierwszą literę "d" kluczem "b", z przesunięciem o jedną literę, stąd wynikiem jest litera "e". Zaszyfrowaliśmy pierwszą literę "o" kluczem "c", przesunięcie o dwie litery, w wyniku czego otrzymaliśmy literę "q". itd.

Odszyfrowujemy dokładnie w ten sam sposób, tylko zamiast przesuwać litery "w prawo", przesuwamy je "w lewo".

Narzędzie online do szyfrowania i deszyfrowania szyfru Vigenère'a

Tekst:
Klucz:
acje

Kwadrat Vigenère'a

Cały proces szyfrowania i deszyfrowania można również wyjaśnić za pomocą kwadratu Vigenère'a, który jest narzędziem, którego możemy użyć podczas szyfrowania. Kwadrat Vigenère'a to tabela składająca się z 26 wierszy i 26 kolumn. W każdym rzędzie wpisany jest alfabet, a w każdym rzędzie jest on zawsze przesunięty o jedną literę:

Jeśli mamy taki kwadrat Vigenère'a, szyfrowanie przebiegałoby w następujący sposób: wzięlibyśmy literę z otwartego tekstu i znaleźlibyśmy wiersz z tą literą. Następnie bierzemy literę z klucza i znajdujemy kolumnę. Litera z szyfrogramu byłaby następnie literą z odpowiedniego wiersza i kolumny.

W poprzednim przykładzie zaszyfrowaliśmy "dobryden" kluczem "bcf". Znajdujemy więc wiersz zaczynający się od "d" i kolumnę zaczynającą się od "b". Na przecięciu tego wiersza i kolumny znajduje się litera "e", wynikowa litera szyfrogramu.

Podczas odszyfrowywania zrobilibyśmy odwrotnie. Gdybyśmy chcieli odszyfrować literę "e" za pomocą klucza "b", znaleźlibyśmy kolumnę "b", w niej znaleźlibyśmy wiersz zawierający literę "e", a litera znajdująca się na początku tego wiersza byłaby literą z tekstu jawnego.

Główne zalety szyfru Vigenère'a

Dlaczego szyfr Vigenère'a był tak silny w swoim czasie? Ponieważ bardzo utrudniał klasyczną analizę częstotliwości. Na przykład w szyfrze Cezara dwie identyczne litery w tekście jawnym są szyfrowane na te same litery w szyfrogramie. Ale nie jest to prawdą w przypadku szyfru Vigenère'a, przynajmniej nie zawsze.

Gdybyśmy zaszyfrowali tekst "Okay okay okay" kluczem "tent", otrzymalibyśmy szyfrogram "vhbew woojx dbtke". Widzimy, że chociaż tekst jawny zawiera te same trzy słowa, każde słowo wygląda zupełnie inaczej w wynikowym szyfrogramie. Środkowe słowo, "woojx", zawiera nawet dwie litery "o", ale są one utworzone z dwóch różnych liter tekstu jawnego: "ob".

Wybór klucza

Na bezpieczeństwo szyfru Vigenère'a duży wpływ ma wybór klucza. Podczas gdy w szyfrze Cezara nie miało znaczenia, która litera została wybrana, o ile różniła się od "a", w szyfrze Vigenère'a różne klucze prowadzą do różnych poziomów bezpieczeństwa szyfru.

  • Klucz składający się tylko z jednej litery redukuje szyfr Vigenère'a z powrotem do szyfru Cezara.
  • Klucz składający się z wielu identycznych liter, takich jak "mmm", ponownie prowadzi do szyfru Cezara.
  • Tekst zaszyfrowany za pomocą krótkiego klucza będzie bardzo łatwy do złamania.
  • Wystarczająco długi szyfrogram, który został zaszyfrowany za pomocą niezbyt krótkiego klucza (około pięćdziesięciu znaków), również będzie bardzo łatwy do złamania. Na komputerze w ciągu kilku sekund.
  • Szyfrogram zaszyfrowany kluczem, który jest całkowicie losowy i tak długi jak sam szyfrogram, będzie niemożliwy do złamania.