Szyfr Ścieżkowy

Szyfr Ścieżkowy jest szyfrem przestawieniowym. Jego działanie polega na przestawieniu kolejności liter, bazując na uproszczonym kształcie ścieżki poprowadzonej przez komórki tabeli.

Zastosowanie

Szyfr Ścieżkowy jest prostym szyfrem przestawieniowym, który można stosować ręcznie, bez potrzeby używania dodatkowych urządzeń. Był znany od dziesięcioleci i używany w sytuacjach, kiedy stosowanie bardziej skomplikowanych sposobów szyfrowania nie było możliwe.

Operacje szyfrowania i deszyfrowania za pomocą Szyfru Ścieżkowego przeprowadza się zwykle na kartce papieru. Litery zapisywane są w tabeli o wymiarach określonych przez sekretny klucz.

Algorytm

Szyfrowanie wiadomości rozpoczyna się od utworzenia tabeli, której jeden wymiar określony jest przez sekretny klucza, a drugi wymiar zależy od ilości danych do zaszyfrowania. Komunikujące się strony muszą określić, który wymiar tabeli (szerokość czy wysokość) jest wyznaczony przez sekretny klucz, oraz w jaki sposób litery wiadomości będą zapisywane do tabeli (wierszami lub kolumnami). Jeżeli jakieś komórki tabeli nie zostaną wypełnione literami, jeden z dwóch możliwych sposobów traktowania ich może zostać wybrany:

  1. Komórki mogą pozostać puste i powinny być ignorowane podczas wszystkich późniejszych operacji szyfrowania.
  2. Nadawca może wpisać do nich jakieś rzadkie litery i podczas dalszego szyfrowania traktować je jako część tekstu jawnego. Po odszyfrowaniu, odbiorca powinien być w stanie określić, że te dodatkowe litery nie mają sensu więc należy je zignorować.

Jeszcze jedna dodatkowa rzecz musi zostać ustalona pomiędzy nadawcą i odbiorcą: kolejność w jakiej litery z tabeli powinny być dopisywane do tworzonego szyfrogramu. Litery powinny być pobierane w na tyle skomplikowany sposób, aby zapobiec pojawianiu się fragmentów tekstu jawnego w szyfrogramie. Z drugiej strony, powinno dać się opisać wybraną kolejność w taki sposób, żeby dało się ją stosunkowo łatwo zapamiętać.

Kolejność pobierania liter z tabeli często definiuje się opisując ścieżki w tabeli, którymi należy podążać podczas szyfrowania, na przykład "poruszaj się dookoła w kierunku zgodnym ze wskazówkami zegara, od zewnątrz do wewnątrz, startując z górnego lewego rogu tabeli". Nazwa szyfru wywodzi się z tych właśnie ścieżek, używanych podczas szyfrowania i deszyfrowania. Sposób definiowania ścieżki również wchodzi w skład sekretnego klucza dla tego szyfru.

Przykładowo, zaszyfrujmy za pomocą Szyfru Ścieżkowego nazwę pewnego miasta położonego na południu Wielkiej Brytanii, Brighton and Hove. Przyjmijmy liczbę 3 jako sekretny klucz, który będzie określał szerokość tabeli. Przyjmijmy również, że tabela będzie wypełniana wierszami, od lewej do prawej. Wreszcie, ustalmy, że tabela będzie odczytywana poruszając się po okręgu, w kierunku zgodnym ze wskazówkami zegara, poczynając od górnego prawego rogu.

Pierwszym krokiem szyfrowania danych jest usunięcie z wiadomości znaków nie będących literami, a następnie zmienienie wszystkich liter na wielkie litery:

BRIGHTONANDHOVE

Litery wiadomości należy potem wpisać do tabeli, która ma szerokość trzech kolumn:

BRI
GHT
ONA
NDH
OVE

Szczęśliwie, w tym przypadku wszystkie pola w tabeli zostały wypełnione, więc nie trzeba traktować dolnych pustych miejsc w specjalny sposób.

Litery są następnie odczytywane z tabeli i formują szyfrogram. Odczytywanie rozpoczyna się od prawego górnego rogu, a następnie jest kontynuowane po spirali do środka tabeli. Wynikowy szyfrogram będzie następujący:

ITAHEVONOGBRHND

Jak widać, oryginalna wiadomość została skutecznie ukryta, a szyfrogram nie ujawnia żadnych fragmentów tekstu jawnego. Oznacza to, że wybrany sekretny klucz skutecznie zabezpieczył ważne dane.

Znając długość szyfrogramu oraz sekretny klucz, odbiorca zaszyfrowanej wiadomości jest w stanie odtworzyć tabelę takich samych rozmiarów, jakich użył nadawca podczas szyfrowania. Następnie, dzięki znajomości przepisu na ścieżkę, odbiorca może wpisać otrzymywane litery w odpowiednie pozycje tabeli. Po wpisaniu liter do tabeli, pozostaje je już jedynie odczytać, w takiej samej kolejności, w jakiej były one wpisywane do tabeli przez nadawcę.

Bezpieczeństwo Szyfru Ścieżkowego

Szyfr Ścieżkowy zabezpiecza wiadomości w lepszy sposób niż poprzednio opisany Szyfr Płotkowy, ze względu na to, klucz sekretny określa nie tylko wielkość tabeli, ale również ścieżkę używaną do odczytania z niej liter. Ponieważ liczba możliwych definicji ścieżek jest bardzo duża, to bardzie wiele jest też możliwych sekretnych kluczy. Dłuższe wiadomości chronione przez ten szyfr z właściwie dobranymi parametrami sekretnego klucza, są uważane za praktycznie niemożliwe do złamania za pomocą ataków siłowych, nawet tych przeprowadzanych przez szybkie współczesne komputery.

Należy jednak mieć na uwadze, że nie wszystkie konfiguracje zapewniają satysfakcjonujący poziom zabezpieczenia. Niefortunnie wybrane klucze mogą ujawniać fragmenty tekstu jawnego, znacznie ułatwiając tym samym kryptoanalizę szyfru.

Implementacja

Główną funkcjonalnością Szyfru Ścieżkowego jest poprawne odczytywanie zdefiniowanej ścieżki. Implementacje tego szyfru będą różniły się więc, w zależności od użytych kształtów ścieżek.

Działanie Szyfru Ścieżkowego z dwoma typami ścieżek można przetestować na stronie Crypto-Online.