Najpierw sprawdź, czy to szyfr Cezara
Szyfr Cezara przesuwa każdą literę o tyle samo, a resztę zostawia. Zdradza go kilka rzeczy. Odstępy i interpunkcja zwykle zostają, więc tekst wygląda jak zdania z bezsensownych słów. Podwojone litery pozostają podwojone. Niektóre litery pojawiają się dużo częściej niż inne, tak samo nierówno jak w zwykłym języku.
Ten rozkład zobaczysz po wklejeniu tekstu do narzędzia analizy częstotliwości. Jeśli liczby są prawie równe, to prawdopodobnie inny szyfr.
Najszybciej: sprawdź wszystkie przesunięcia
Przy alfabecie z 26 liter jest tylko 25 przesunięć, więc można po prostu sprawdzić wszystkie. Zrobi to za Ciebie solver, który obsługuje też polskie litery. Jak działa ta metoda, pokazuje strona o ataku brute force, gdzie sprawdzisz tekst bez opuszczania artykułu.
Ręcznie: policz litery
Sprawdzanie 25 przesunięć ręcznie jest żmudne, a liczenie liter pozwala trafić szybciej. W zwykłym tekście kilka liter pojawia się znacznie częściej niż reszta. Po polsku są to A, I i E, a ich kolejność zależy od tekstu. Tę metodę, analizę częstotliwości, opisał Al-Kindi w IX wieku. Weźmy taką wiadomość:
ZWVARHTF ZPL WYGF ZAHYFT TVZJPL NKF GHKGDVUP DPLJGVYUF KGDVU. GHIPLYG SPZA P UPL TVD UPRVTB KVRHK PKGPLZG. Najczęstsza litera to P, która występuje 11 razy na 88 liter. Oto pierwsza trójka:
| Litera | Liczba |
|---|---|
| P | 11 |
| G | 9 |
| V | 8 |
Teraz załóż, że P oznacza jedną z częstych polskich liter, i policz przesunięcie. Ponumeruj alfabet od A = 0. Dla E = 4 wychodzi 15 − 4 = 11, a dla I = 8 wychodzi 15 − 8 = 7. Cofnij litery i czytaj:
| Jeśli P oznacza | Przesunięcie | Początek wyniku |
|---|---|---|
| E | 11 | OLKPGWIU OEA LNVU OPWNUI I… |
| I | 7 | SPOTKAMY SIE PRZY STARYM M… |
Pierwszy strzał tym razem nie trafia, drugi daje czytelny tekst. To normalne, zwłaszcza po polsku. Przy niepowodzeniu spróbuj kolejnej częstej litery, np. A.
Pokaż całą wiadomość
SPOTKAMY SIE PRZY STARYM MOSCIE GDY ZADZWONI WIECZORNY DZWON. ZABIERZ LIST I NIE MOW NIKOMU DOKAD IDZIESZ.
Ręcznie: zgadnij słowo
Można też zacząć od słowa. Krótkie, częste wyrazy łatwo wypatrzyć, a jeden trafny strzał daje przesunięcie dla całej wiadomości. W tekście powyżej jest słowo UPL. Jeśli to NIE, to U oznacza N. U = 20, a N = 13, więc 20 − 13 = 7, tyle samo, ile wyszło z liczenia. Jeśli wynik jest ujemny, dodaj 26.
To działa też przy szyfrach podstawieniowych, tylko dłużej trwa. Więcej wskazówek znajdziesz w artykule o rozpoznawaniu wzorców.
Jak odpowiedź wybiera komputer
Program nie umie czytać, więc mierzy. Dla każdego przesunięcia porównuje liczby liter z tym, czego należy się spodziewać w danym języku. Często służy do tego statystyka chi-kwadrat, a najniższa wartość wskazuje najlepsze dopasowanie:
χ² = Σ (zaobserwowane − oczekiwane)² / oczekiwane Nasz solver działa podobnie: każdemu wierszowi przyznaje ocenę opartą na częstości liter i na początku stawia najwyższą. Przy bardzo krótkim tekście ocena może zawieść, więc przeczytaj pierwszy wiersz, zanim mu zaufasz.
Jeśli nic nie działa
Jeśli żadne przesunięcie nie daje czytelnych słów, to prawdopodobnie inny szyfr. Przesunięcie o 13 to ROT13, które solver też obejmuje. Odwrócony alfabet to Atbash. Prawie równe liczby liter wskazują na szyfr Vigenère’a, a nierówny rozkład bez pasującego przesunięcia na szyfr podstawieniowy.
Współczesne szyfrowanie to co innego. Żadna z tych metod nie otworzy zaszyfrowanego pliku, hasła ani wiadomości chronionej przez AES, który zaprojektowano tak, by ukrywał wszystkie te wzorce. Wyjaśnia to artykuł od szyfru Cezara do współczesnego szyfrowania.
Najczęstsze pytania
Czy można odszyfrować szyfr Cezara bez klucza?
Tak. Przy alfabecie z 26 liter jest tylko 25 przesunięć, więc można sprawdzić wszystkie albo wyliczyć przesunięcie z liczby liter lub ze zgadniętego słowa.
Której litery szukać najpierw?
Znajdź najczęstszą literę w szyfrogramie i załóż, że oznacza jedną z najczęstszych liter języka. Po polsku są to A, I i E.
Jak wyliczyć przesunięcie z jednej litery?
Ponumeruj alfabet od A = 0 i odejmij literę tekstu jawnego od litery szyfru. Jeśli wynik jest ujemny, dodaj 26.
Co, jeśli żadne przesunięcie nie daje czytelnego tekstu?
Prawdopodobnie to inny szyfr, np. Vigenère’a lub podstawieniowy, albo w ogóle nie jest to szyfr.