✖

Szyfr Vigenère’a

Szyfr Vigenère’a to słynny szyfr wykorzystujący wiele alfabetów szyfrowych, dzięki czemu jest znacznie bardziej odporny na klasyczną analizę częstotliwości.

Zasada szyfrowania i deszyfrowania

Sposób szyfrowania wyjaśnimy za pomocą szyfru Cezara. Kluczem szyfru Vigenère’a jest dowolne słowo złożone z liter alfabetu angielskiego, czyli a—z. Kluczem może być na przykład słowo „bcf”. Szyfrowanie polega na tym, że zapisujemy tekst jawny, a tuż pod nim klucz, który powtarzamy tak długo, aż będzie tak samo długi jak tekst jawny. Ponieważ alfabet angielski nie ma polskich znaków diakrytycznych, pomijamy je i słowo „dobry wieczór” zapisujemy jako „dobrywieczor”. Dla tekstu jawnego „dobrywieczor” wyglądałoby to tak:

Tekst jawny:dobrywieczor
Klucz:bcfbcfbcfbcf

Teraz wszystkie litery tekstu jawnego zaszyfrujemy szyfrem Cezara z odpowiednim kluczem, czyli z kluczem z tej samej kolumny. Szyfr Cezara jest szyfrem przesuwającym, a klucz mówi, o ile liter mamy przesunąć literę tekstu jawnego, licząc od litery „a”. Litera „b” oznacza na przykład przesunięcie o jedną literę alfabetu „w prawo”. Litera „d” oznacza przesunięcie o trzy litery w prawo. Słowo „czesc” zaszyfrowalibyśmy szyfrem Cezara z kluczem „b” jako „daftd”.

W szyfrze Cezara szyfrujemy cały tekst jedną literą, a w szyfrze Vigenère’a zwykle szyfrujemy kilkoma literami. Szyfrowanie tekstu „dobrywieczor” kluczem „bcf” wyglądałoby więc tak:

Tekst jawny:dobrywieczor
Klucz:bcfbcfbcfbcf
Szyfrogram:eqgsabjghaqw

Pierwszą literę „d” szyfrowaliśmy kluczem „b”, czyli przesunięciem o jedną literę, dlatego wynikiem jest litera „e”. Literę „o” szyfrowaliśmy kluczem „c”, czyli przesunięciem o dwie litery, wynikiem jest litera „q”. I tak dalej.

Deszyfrujemy dokładnie tak samo, tylko zamiast przesuwać litery „w prawo”, przesuwamy je „w lewo”.

Narzędzie online do szyfrowania i deszyfrowania szyfrem Vigenère’a

Tekst:
Klucz:

Kwadrat Vigenère’a

Cały proces szyfrowania i deszyfrowania można też wyjaśnić na kwadracie Vigenère’a, czyli pomocy, której możemy użyć podczas szyfrowania. Kwadrat Vigenère’a to tabela z 26 wierszami i 26 kolumnami. W każdym wierszu jest wpisany alfabet, przy czym w każdym kolejnym wierszu jest przesunięty o jedną literę:

Mając taki kwadrat Vigenère’a, szyfrowalibyśmy następująco: bierzemy literę z tekstu jawnego i znajdujemy wiersz z tą literą. Potem bierzemy literę z klucza i znajdujemy kolumnę. Literą szyfrogramu jest litera z odpowiedniego wiersza i kolumny.

W poprzednim przykładzie szyfrowaliśmy „dobrywieczor” kluczem „bcf”. Znajdujemy więc wiersz, który zaczyna się od „d”, i kolumnę, która zaczyna się od „b”. W przecięciu tego wiersza i kolumny jest litera „e”, czyli wynikowa litera szyfrogramu.

Przy deszyfrowaniu postępowalibyśmy odwrotnie. Gdybyśmy chcieli odszyfrować literę „e” kluczem „b”, znaleźlibyśmy kolumnę „b”, w niej wiersz zawierający literę „e”, a litera na początku tego wiersza byłaby literą tekstu jawnego.

Główna siła szyfru Vigenère’a

Dlaczego szyfr Vigenère’a był w swoich czasach tak mocny? Ponieważ znacznie utrudniał klasyczną analizę częstotliwości. Na przykład w szyfrze Cezara dwie jednakowe litery tekstu jawnego zawsze zamieniają się na te same litery szyfrogramu. W szyfrze Vigenère’a tak nie jest, a przynajmniej nie zawsze.

Gdybyśmy zaszyfrowali tekst „Brawo brawo brawo” kluczem „stan”, otrzymalibyśmy szyfrogram „tkajg urnoh bespo”. Widzimy, że chociaż tekst jawny zawiera trzy takie same słowa, w szyfrogramie każde słowo wygląda zupełnie inaczej.

Wybór klucza

Bezpieczeństwo szyfru Vigenère’a bardzo silnie zależy od wyboru klucza. W szyfrze Cezara było obojętne, jaką literę wybierzemy, o ile była różna od „a”, a w szyfrze Vigenère’a różne klucze dają różny poziom bezpieczeństwa.

  • Klucz złożony tylko z jednej litery sprowadza szyfr Vigenère’a z powrotem do szyfru Cezara.
  • Klucz złożony z kilku jednakowych liter, na przykład „mmm”, także prowadzi do szyfru Cezara.
  • Tekst zaszyfrowany krótkim kluczem będzie bardzo łatwo rozszyfrować.
  • Dostatecznie długi szyfrogram zaszyfrowany niezbyt krótkim kluczem (około pięćdziesięciu znaków) będzie również bardzo łatwo rozszyfrować. Na komputerze w ciągu sekund.
  • Tekst zaszyfrowany kluczem, który jest zupełnie losowy i jest tak samo długi jak sam tekst, będzie niemożliwy do rozszyfrowania.