Jak złamać szyfr Cezara za pomocą odległości między literami

Kapitoly: Szyfr Cezara, Jak złamać szyfr Cezara brutalną siłą, Jak złamać szyfr Cezara za pomocą odległości między literami

Atak przy użyciu minimalnych odstępów między literami

SzyfrCezara ma jedną interesującą właściwość wynikającą z jego definicji. Ponieważ tylko przesuwa litery, zawsze o tę samą odległość, odległości między literami w tekście jawnym i szyfrogramie pozostają takie same.

Na przykład, jeśli tekst jawny miałby postać "abe" i zaszyfrowalibyśmy go kluczem "g", otrzymalibyśmy szyfrogram "ghk". W ten sposób odległość między literami "a", "b", oznaczonymi przez |a, b|, jest równa jeden: |a,b| = 1 i dla liter w szyfrogramie, |g, h| = 1. Podobnie dla pary |b,e| = 3 i |h,k| = 3 i wreszcie dla pary |a,e| = 4 i |g,k| = 4.

Jedyny problem pojawia się, gdy przejdziemy do ostatniej litery, "z". Wtedy nie pasuje. Gdybyśmy zaszyfrowali "xz" kluczem "c", otrzymalibyśmy szyfrogram "zb". Nie |x,z| = 2, ale |z,b| = 24.

Aby to pasowało, musimy zawsze liczyć krótszą ze ścieżek. Oznacza to, że możemy dostać się z "b" do "z" albo w kierunku "bcd...xyz", co zwróciłoby odległość 24, albo w przeciwnym kierunku "baz", co zwróciłoby odległość 2 - prawidłową odległość. Dlatego zawsze będziemy wybierać krótszą z tych dwóch odległości. Nazwiemy tę odległość minimalną odległością liter.

Idea ataku

W tabelach znajdziemy trzy najczęściej używane litery w czeskim tekście. Są to "e, a, o". Teraz w tekście zaszyfrowanym znajdujemy sześć najczęściej występujących liter (Dlaczego sześć, a dlaczego trzy? Tak naprawdę nie ma to znaczenia, ale ta kombinacja daje całkiem dobre wyniki). W sześciu najczęściej występujących literach znajdujemy teraz tryplet liter, które mają takie same minimalne odległości między sobą jak tryplet liter "e, a, o". Jeśli znajdziemy taką trójkę, prawdopodobnie znaleźliśmy trójkę liter, do których zaszyfrowano trójkę liter "e, a, o". Na podstawie tych informacji możemy łatwo wyprowadzić klucz szyfrujący.

Ponownie, dostarczono narzędzie, które wykonuje ten algorytm. Wstaw zaszyfrowany szyfrem Cezara tekst do pola tekstowego, a narzędzie podejmie próbę złamania i odszyfrowania tekstu.

Szyfrogram: