ου γαρ εστιν κρυπτον ο ου φανερον γενησεται ουδε αποκρυφον ο ου γνωσθησεται και εις φανερον ελθη
Wersja PL ENG Version

Szyfr Myszkowskiego

  • Ogólny opis
  • Algorytm
  • Implementacja
Szyfr Myszkowskiego jest szyfrem przestawieniowym. Jego działanie polega na przestawieniu pozycji liter oryginalnej wiadomości, bazując na tabeli wypełnionej literami w kolejności wskazanej przez sekretny klucz.
Szyfr Przestawieniowy
Szyfr Myszkowskiego jest szyfrem bardzo podobnym do Kolumnowego Szyfru Przestawieniowego. Została zaproponowana przez Émile Victor Théodore Myszkowskiego w roku 1902.

Operacje szyfrowania i deszyfrowania za pomocą Szyfru Myszkowskiego przeprowadza się zwykle na kartce papieru, na której rysuje się tabelę, zawierającą wszystkie litery przetwarzanej wiadomości.

Podobnie jak w przypadku Kolumnowego Szyfru Przestawieniowego operacje szyfrowania i deszyfrowania są przeprowadzane przy użyciu tabeli. Liczba kolumn w tej tabeli jest określona przez sekretny klucz.

Sekretnym kluczem w Szyfrze Myszkowskiego jest zazwyczaj jedno słowo lub po prostu ciąg liter. Sekretne słowo należy przekonwertować na odpowiadający mu ciąg liczb, o takiej samej długości. Wszystkie liczby określane są przez miejsca, jakie poszczególne litery zajmują w alfabecie. Literze sekretnego słowa, która zajmuje najniższe miejsce w alfabecie należy przypisać liczbę 1, druga z kolei litera alfabetu otrzyma numer 2, i tak dalej.

W przeciwieństwie do Kolumnowego Szyfru Przestawieniowego, sekretne słowo kluczowe powinno zawierać powtarzające się litery. Identycznym literom należy przyporządkować takie same liczby (co również odróżnia ten szyfr od Kolumnowego Szyfru Przestawieniowego).

Przykładowo, jeśli za słowo kluczowe przyjmie się nazwę pewnego miasta w Anglii:
  SWINDON
to odpowiadająca mu sekwencja liczb będzie wynosić:
  5623143
Jak widać, obu literom N zostały przyporządkowane trójki.

W celu zaszyfrowania wiadomości, wszystkie jej litery powinny zostać wpisane do tabeli, wierszami, od lewej do prawej. Wielkość tabeli zależy od długości wiadomości. Jedynym z góry określonym wymiarem jest szerokość tabeli, która jest zdefiniowana przez długość sekretnego słowa kluczowego (która jest równa długości ciągu liczb, utworzonego na jego podstawie). Sekretne słowo kluczowe jest oczywiście znane obu komunikującym się stronom.

Jeżeli po wpisaniu do tabeli całej wiadomości, niektóre pola w dolnym wierszu tabeli pozostały wolne, to jeden z dwóch możliwych sposobów ich traktowania może zostać wybrany:

  1. Komórki tabeli 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 i, że powinny zostać zignorowane.

W kolejnym kroku szyfrowania, litery powinny zostać odczytane z tabeli w specyficzny sposób i dopisane do tworzonego szyfrogramu. Kolejność czytania liter jest określona przez ciąg numerów, zbudowany na podstawie słowa kluczowego. Należy ja odczytywać kolumnami, z góry do dołu, startując od kolumny, której pozycja odpowiada pozycji numeru 1 w ciągu numerów. Następna kolumna jest wskazana przez numer 2 w tym ciągu, i tak dalej, aż do odczytania liter za wszystkich kolumn tabeli.

Jeżeli danemu numerowi przyporządkowanych jest więcej niż jedna kolumna tabeli (jak wiemy, jest to cecha odróżniająca ten szyfr od Kolumnowego Szyfru Przestawieniowego), to litery z tych kolumn należy odczytać równocześnie, wierszami z góry do dołu. Takie postępowanie odróżnia ten szyfr od Kolumnowego Szyfru Przestawieniowego i sprawia, że nawet jeśli wszystkie inne parametry były identyczne, utworzone szyfrogramy byłyby różne dla obu szyfrów.

Aby ułatwić ten krok, zaleca się zapisanie numerów z ciągu nad odpowiadającymi im kolumnami.

Przykładowo, poniżej przedstawiono kroki, które należy wykonać, aby zaszyfrować tytuł jednej z komedii Szekspira A Midsummer Night's Dream (czyli taką samą wiadomość, jaką zaprezentowano dla Kolumnowego Szyfru Przestawieniowego). W tym celu wykorzystano sekretne słowo kluczowe przedstawione powyżej. Odpowiadający mu ciąg numerów wynosi 5623143, więc tabela, która będzie użyta podczas szyfrowania ma siedem kolumn.

Po usunięciu wszystkich znaków, które nie są literami, oraz zamienieniu wszystkich liter na wielkie litery, wiadomość powinna zostać wpisania do tabeli:

5623143
AMIDSUM
MERNIGH
TSDREAM

Nad wiadomością zapisano numery uzyskane ze słowa kluczowego. Określają one kolejność, w jakiej należy brać kolumny, z których następnie wszystkie litery powinny zostać odczytane (od góry do dołu) i dopisane do tworzonego szyfrogramu. W zaprezentowanym przykładzie jako pierwsza powinna zostać odczytana kolumna SIE, a jako druga kolumna IRD. Kolumny DNR oraz MHM powinny zostać odczytane razem, wierszami. Pozostałe kolumny mają przypisane unikalne numery, więc powinny zostać odczytane według zwykłego schematu. Utworzony szyfrogram będzie składał się z następujących znaków:
  SIE IRD DMNHRM UGA AMT MES

Wreszcie, po usunięciu spacji, które zostały dodane w celu zaznaczenia oddzielnych kolumn, otrzymuje się zaszyfrowaną wiadomość:
  SIEIRDDMNHRMUGAAMTMES

Aby odszyfrować otrzymany szyfrogram, odbiorca powinien wykonać następujące kroki:

  1. Znając sekretne słowo kluczowe oraz długość wiadomości, tabela o takiej samej długości, jaką miała tabela użyta do szyfrowania, powinna zostać utworzona.
  2. Szyfrogram powinien zostać wpisany do kolumn tabeli, poczynając od najbardziej lewej kolumny do najbardziej prawej, od góry do dołu. Kolumny z przypisanymi takimi samymi numerami powinny być wypełniane razem, wierszami z góry na dół.
  3. Kolumny powinny zostać poprzestawiane i umieszczone w pozycjach, w których powinny się znajdować według słowa kluczowego.
  4. Odszyfrowana wiadomość może zostać odczytana wierszami, startując od górnego wiersza, od lewej do prawej.

Siła Szyfru Myszkowskiego

Szyfr Myszkowskiego zapewnia podobny poziom zabezpieczeń co Kolumnowy Szyfr Przestawieniowy.

Aby złamać ten szyfr, atakujący powinien działać w taki same sposób, to znaczy zbudować szereg tabeli o różnych wielkościach, powpisywać do nich litery szyfrogramu (kolumnami), a następnie szukać w nich pojawiających się w wierszach anagramów rzeczywistych słów.

Strona w trakcie budowy.