Czy współczesne szyfrowanie wywodzi się z szyfru Cezara?
Bezpośrednio nie. AES (Advanced Encryption Standard) to szyfr, który chroni dziś między innymi połączenia HTTPS i sieci Wi-Fi. Nikt nie stworzył go, ulepszając przesuwanie liter, i nie ma drzewa genealogicznego prowadzącego z Rzymu do Twojej przeglądarki. Rola szyfru Cezara jest skromniejsza i łatwiejsza do obrony. To wczesny, dobrze opisany przykład idei, które przetrwały, a jego słabości to te same problemy, z którymi musiał się zmierzyć każdy późniejszy szyfr.
Ta strona idzie tropem tych problemów. Część rzymską opisuje historia szyfru Cezara.
Co przetrwało: znana metoda i tajny klucz
Szyfr Cezara dzieli szyfrowanie na dwie części. Metoda to „przesuń każdą literę”, a kluczem jest wielkość przesunięcia. Pierwszą część może znać każdy, byle druga pozostała tajna.
W 1883 roku Auguste Kerckhoffs zapisał to jako zasadę projektowania szyfrów wojskowych: system ma pozostać bezpieczny nawet wtedy, gdy wpadnie w ręce wroga. Claude Shannon ujął to później krócej: „wróg zna system”. Kerckhoffs myślał o szyfrach wojskowych swoich czasów, a szyfr Cezara i tak tego testu nie zdaje, bo ma za mało kluczy. Sam podział na metodę i klucz widać w nim jednak wyraźnie.
Jest to też szyfr symetryczny: ten sam klucz szyfruje i odszyfrowuje. Tak samo działa AES.
Co go pokonało: dwie słabości
Pierwsza słabość to liczba kluczy. Przy 25 możliwych przesunięciach atak brute force zajmuje ręcznie kilka minut.
Druga przetrwała znacznie dłużej. Przesunięcie zachowuje wzorce języka: najczęstsza litera wiadomości staje się najczęstszą literą szyfrogramu. Wykorzystuje to analiza częstotliwości, opisana przez Al-Kindiego w IX wieku. Tę samą słabość widać też od innej strony: każda litera wyniku zależy od jednej litery wiadomości, więc nic się nie miesza.
Sama większa liczba kluczy tego nie naprawi. Losowy alfabet podstawieniowy ma około 4 × 10²⁶ kluczy, a i tak przegrywa z liczeniem liter.
Pierwsza odpowiedź: stale zmieniać przesunięcie
Skoro jedno przesunięcie zdradza wzorce, można użyć wielu. W 1467 roku Leon Battista Alberti opisał tarczę szyfrującą ze zmieniającym się alfabetem. W 1553 roku Giovan Battista Bellaso opublikował metodę znaną dziś jako szyfr Vigenère’a, w której każda litera słowa kluczowego wybiera własne przesunięcie Cezara. Spłaszcza to statystykę liter, ale słowo kluczowe się powtarza, a w 1863 roku Friedrich Kasiski ogłosił ogólny sposób łamania.
Ta myśl ma swój logiczny koniec. Dla każdej litery nowe, losowe przesunięcie, klucz długi jak wiadomość i nigdy nie użyty ponownie. To szyfr z kluczem jednorazowym, opisany przez Franka Millera w 1882 roku i wdrożony w dalekopisach przez Gilberta Vernama od 1917 roku. Shannon dowiódł, że jest nie do złamania. Jest też niewygodny, bo obie strony potrzebują ogromnego tajnego klucza, dostarczonego wcześniej bezpieczną drogą.
Druga odpowiedź: wymieszać wiadomość
Praca Shannona z 1949 roku o systemach utajniania nazwała dwie cechy mocnego szyfru. Konfuzja ukrywa, jak wynik zależy od klucza. Dyfuzja rozprasza wzorce wiadomości po całym wyniku, tak że mała zmiana na wejściu zmienia dużą część wyjścia. Dyfuzję najłatwiej zobaczyć na przykładzie: bierzemy wiadomość, zmieniamy w niej jedną literę i szyfrujemy obie wersje.
Szyfr Cezara, przesunięcie 3
DWDN Z QRFB
EWDN Z QRFB
AES-128
63CE61C59ED4AFAC6A81BDAE36587AD9
E8B1F5FBF47765DCA202B2C5EEE8FD14
W szyfrze Cezara zmienia się tylko pierwsza litera wyniku, więc porównanie od razu zdradza, gdzie wiadomości się różnią. W AES zmienia się tu każdy bajt wyniku i nic nie wskazuje, która litera była inna.
Wokół tych cech powstały szyfry blokowe, które szyfrują dane porcjami o stałej długości. DES, opublikowany jako standard USA w 1977 roku, szyfrował bloki 64-bitowe kluczem 56-bitowym. Jego konstrukcja okazała się trwalsza niż długość klucza: w 1998 roku maszyna zbudowana przez Electronic Frontier Foundation znalazła klucz DES w 56 godzin. To znów pierwsza słabość szyfru Cezara, tylko w dużo większej skali.
Co łączy AES z szyfrem Cezara
AES zaprojektowali Joan Daemen i Vincent Rijmen, a jako standard USA opublikowano go w 2001 roku. Szyfruje bloki 128-bitowe kluczami o długości 128, 192 lub 256 bitów, w 10, 12 lub 14 rundach. Każda runda ma cztery kroki, a dwa z nich mają znajomo brzmiące nazwy: SubBytes podstawia każdy bajt według tabeli, a ShiftRows przesuwa bajty w wierszach.
Na tym podobieństwo się kończy. W szyfrze Cezara przesunięcie jest kluczem. W AES przesunięcia są stałe i jawne, a klucz wchodzi w osobnym kroku, AddRoundKey. Tabela podstawień powstała z algebry i dobrano ją tak, by opierała się znanym atakom. Uczciwie można więc powiedzieć tyle, że oba szyfry używają podstawiania i przesuwania, czyli starych i ogólnych narzędzi.
Cezar, Vigenère, DES i AES w porównaniu
| Szyfr | Liczba kluczy | Co go pokonało |
|---|---|---|
| Cezar, I wiek p.n.e. | 25 | Sprawdzenie wszystkich kluczy lub liczenie liter |
| Vigenère, 1553 | 11 881 376 dla klucza z 5 liter | Powtarzający się klucz, potem liczenie liter |
| Klucz jednorazowy, 1882 | Tyle, ile możliwych wiadomości | Nic, jeśli użyty poprawnie. Trudnością jest sam klucz. |
| DES, 1977 | 2⁵⁶, około 7,2 × 10¹⁶ | Sprawdzanie kluczy: 56 godzin w 1998 roku |
| AES-128, 2001 | 2¹²⁸, około 3,4 × 10³⁸ | Nie jest publicznie znany praktyczny atak |
Dlaczego wciąż uczy się szyfru Cezara
Można go wykonać i złamać na kartce w ciągu jednej lekcji. Dzięki temu dobrze wprowadza pojęcia klucza, ataku brute force i statystyki liter, zanim pojawi się matematyka. Zobacz, jak korzystają z niego nauczyciele, albo zacznij od przewodnika dla początkujących i narzędzia szyfru Cezara.
Nie daje żadnej realnej ochrony, więc nadaje się tylko do nauki i łamigłówek. Do ochrony prawdziwych danych użyj sprawdzonej biblioteki z AES lub podobnym współczesnym szyfrem i nie projektuj własnego. Strona o praktycznych zastosowaniach pokazuje, gdzie szyfr Cezara wciąż się pojawia.
Najczęstsze pytania
Czy AES opiera się na szyfrze Cezara?
Nie. Oba używają podstawiania i przesuwania, ale AES wyrasta z XX-wiecznych szyfrów blokowych. Jego bezpośredni poprzednik to szyfr Square tych samych autorów.
Czy szyfr Cezara jest symetryczny czy asymetryczny?
Symetryczny. To samo przesunięcie szyfruje i odszyfrowuje, więc muszą je znać obie strony. AES też jest symetryczny, a RSA asymetryczny.
Dlaczego szyfr Cezara był ważny, skoro jest tak słaby?
Pokazuje metodę i klucz jako dwie osobne rzeczy, a jego wady łatwo zobaczyć: za mało kluczy i wzorce języka, które przetrwały szyfrowanie. Późniejsze szyfry musiały rozwiązać oba problemy.
Czy szyfr Cezara jest używany we współczesnym szyfrowaniu?
Nie. Żaden współczesny system nie używa go do ochrony danych. Przetrwał w nauczaniu, łamigłówkach i ROT13, które ukrywa tekst tylko przed przypadkowym spojrzeniem.