O enigmie, szyfrach i kluczach

Przyszedł czas na poznanie Enigmy i wyjaśnienie dlaczego nowoczesne szyfry są bezpieczne, mimo że wszyscy wiedzą jak działają.

Enigma była dobra…

Omówiłem już w skrócie jak działa szyfr Cezara (do przeczytania tutaj). Wiemy, że jest on prosty do złamania metodą siłową (podstawiając kolejne litery, aż zadziała) lub metodą statystyczną przedstawioną w poprzednim artykule. Co jeśli każda kolejna litera będzie przestawiana o inną ilość miejsc w alfabecie, a następnie zaszyfrujemy ją ponownie?

Przykładem wykorzystania takiego złożonego szyfru przestawieniowego, była Enigma. Był to szyfr, który z każdym znakiem przesuwał kolejne tarcze, zmieniając ilość o jaką przesuwał daną literę. Oznaczało to, że ta sama litera mogła być reprezentowana na różne sposoby w zależności od miejsca w jakim występowała. Znając pierwotne ułożenie tarcz (klucz), które było przekazywane wraz z szyfrogramem, operator rozkodowywał wiadomość litera po literze. Tajność była więc utrzymywana, dzięki tajności samego algorytmu szyfrowania – budowy enigmy – nie klucza.

… ale teraz byłaby prosta do złamania

Nowoczesne algorytmy, jak AES bazują na pełnej jawności algorytmu, a to klucz jest tajny. To tak jakbyśmy mówili, że użyliśmy szyfru Cezara, ale tylko uprawnione osoby wiedzą o ile liter przesunęliśmy się w alfabecie lub rozdali wszystkim Enigmy, nie mówiąc jak ustawiliśmy początkowe rolki.

W przypadku szyfru Cezara mamy zaledwie około 30 możliwych kluczy, w Enigmie już ponad 17 tysięcy. Nowoczesne szyfry również można złamać, ale klucz o długości 256 bitów to już:

115,792,089,237,316,195,423,570,985,008,690,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000

możliwych rozwiązań. W zależności od wydajności maszyn obliczeniowych, znalezienie poprawnego klucza może zająć od kilkunastu, do kilkuset lat prób i błędów, co sprawia że możemy uważać je za bezpieczne.

Jak to wygląda – schemat działania szyfru symetrycznego

W pierwszej kolejności musimy przekazać nasz klucz. Nadawca zaszyfruje za jego pomocą wiadomość i prześle nam  szyfrogram, który my za pomocą tego samego klucza odczytamy.

Trzeba chronić klucze!

Tutaj pojawia się jednak jeden problem. Żeby komunikować się z drugą stroną, musimy najpierw ustalić zasady szyfrowania oraz klucz. To właśnie jest najsłabszy i najczęściej wykorzystywany moment. Opisane wyżej metody szyfrowania są metodami symetrycznymi, to znaczy że istnieje jeden klucz, który pozwala zarówno zaszyfrować, a także odszyfrować wiadomość. Musimy go bezpiecznie przekazać drugiej stronie, a każda osoba, która go pozna, będzie mogła zarówno czytać, jak i tworzyć nowe szyfrogramy.

Możemy to porównać do zamka w drzwiach. Wszyscy wiedzą, że drzwi są zamknięte na klucz, a także znają sposób użycia klucza, jednak nie są w stanie ich otworzyć ani zamknąć nie mając klucza. Każda osoba, która dorobi sobie klucz może bez przeszkód zarówno otwierać jak i zamykać drzwi, dlatego dbamy o to, aby nie wpadł on w niepowołane ręce. Podobnie ma się z naszym hasłem do komputera – wszyscy wiedzą jak wpisać hasło, nie znają jednak hasła.

Co więc zrobić, żeby nie móc się bezpiecznie porozumiewać, nie bojąc się o kompromitacje hasła? Z pomocą przychodzą nam szyfry asymetryczne.

Dodaj komentarz