Szyfr Ramsaya
Szyfr Ramsaya – szyfr opracowany przez radzieckich kryptologów w pierwszej połowie lat 30 XX wieku. W latach 1935–41 był używany przez radziecką siatkę szpiegowską w Japonii kierowaną przez Richarda Sorge. Ramsay był to kryptonim Sorgego, czasem używany do określenia całej siatki. W różnych nieco zmienionych wariantach szyfr ten był stosowany przez radzieckich szpiegów do początku lat 50.
Szyfrowanie
edytujWszystkie depesze siatki Sorgego były pisane w języku angielskim. Jako przykład użyjemy zdania: Wikipedia. The free encyclopedia.
Tekst był szyfrowany dwuetapowo – najpierw przy użyciu stałego dwuczęściowego klucza literowego, a następnie jednorazowego, niepowtarzalnego dla każdej depeszy, klucza numerycznego.
Szyfrowanie. Etap I
edytujKlucz literowy składał się z dwóch części – słowa subway (wybranego przez samego Sorge) i zdania A sin to err (ang. Grzechem jest błądzić; zdanie to zawiera litery występujące najczęściej w języku angielskim). Najpierw należy stworzyć alfabet szyfrowy. W tym celu pisano słowo SUBWAY, a pod nim w kolejnych wierszach tabeli pozostałe litery alfabetu. Na końcu dodawano kropkę "." i znak "/ " (był on nazywany znakiem zmiany i służył do oznaczania fragmentów tekstu zawierających cyfry).
S | U | B | W | A | Y |
---|---|---|---|---|---|
C | D | E | F | G | H |
I | J | K | L | M | N |
O | P | Q | R | T | V |
X | Z | . | / |
Teraz w kolumnach powstałej tabeli należy (zaczynając od lewej) odnaleźć i kolejno oznaczyć liczbami od 0 do 7 litery zdania-klucza A S I N T O E R (ostatnie R opuszczano). Kolejność liter w zdaniu-kluczu nie ma tu znaczenia, liczy się kolejność ich pojawiania się w kolumnach tabeli.
S = 0 | U | B | W | A = 5 | Y |
C | D | E = 3 | F | G | H |
I = 1 | J | K | L | M | N = 7 |
O = 2 | P | Q | R = 4 | T = 6 | V |
X | Z | . | / |
Przy użyciu takiej tabeli tworzono rozbudowany wariant szachownicy Polibiusza – tzw. szachownicę z rozgałęzieniem. Pod pierwszym wierszem zawierającym cyfry 0–9 wpisywano litery zdania-klucza według kolejności nadanych im liczb. Komórki pod cyframi 8 i 9 pozostają puste. Cyfry te będą współrzędnymi dwóch pozostałych wierszy, do których wpisywano pozostałe litery i znaki z tabeli, odczytując je kolumnami od lewej.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
S | I | O | E | R | A | T | N | |||
8 | C | X | U | D | J | P | Z | B | K | Q |
9 | . | W | F | L | / | G | M | Y | H | V |
Posługując się powstałą tabelą szyfrujemy tekst-przykład przypisując kolejnym literom cyfry – współrzędne tych liter w tabeli:
W | I | K | I | P | E | D | I | A | . | T | H | E | F | R | E | E | E | N | C | Y | C | L | O | P | E | D | I | A | . |
91 | 1 | 88 | 1 | 85 | 3 | 83 | 1 | 5 | 90 | 6 | 98 | 3 | 92 | 4 | 3 | 3 | 3 | 7 | 80 | 97 | 80 | 93 | 2 | 85 | 3 | 83 | 1 | 5 | 90 |
Jak widać, współrzędne większości liter i znaków są dwucyfrowe (wiersz+kolumna) ale dla liter ze zdania-klucza są to pojedyncze cyfry. Ponieważ te litery występują w języku angielskim z największą częstotliwością, pozwala to na znaczne skrócenie zaszyfrowanej depeszy. Stwarza to też dodatkowe utrudnienie dla kryptoanalityka. Po zakończeniu szyfrowania cyfry depeszy były grupowane po 5 i dalej przetwarzane w postaci takich grup. W ten sposób podział na jedno- i dwucyfrowe współrzędne był ukrywany.
Tekst zaszyfrowany wygląda teraz tak:
91188 18538 31590 69839 24333 78097 80932 85383 15905 – cyfra 5 została dodana, żeby wypełnić ostatnią grupę (mogły to być jakiekolwiek cyfry i dodawno ich tyle, ile brakowało do pełnej liczby 5 cyfr).
Cyfry szyfrowano w następujący sposób: wstawiano znak zmiany "/ ", następnie wpisywano cyfry (każdą dwukrotnie) i zamykano ten ciąg cyfr znowu znakiem zmiany. Np. liczba 2437 byłaby zaszyfrowana jako /22443377/.
Szyfrowanie. Etap II
edytujTak zaszyfrowany tekst jest już dość trudny do odczytania, ale żeby zabezpieczyć go przed profesjonalnymi kryptoanalitykami przeprowadzano jeszcze jedno szyfrowanie, tym razem z użyciem jednorazowego klucza numerycznego. Jako źródła tego klucza siatka Ramsay używała "Rocznika statystycznego Rzeszy Niemieckiej" ("Statistischen Jahrbuch für das Deutsches Reich") z 1935 roku. Wybierano stronę, wiersz i kolumnę z tabeli i wypisywano wierszami potrzebną liczbę cyfr – identyczną, jak liczba cyfr w tekście zaszyfrowanym (spisywanie zaczynano od ostatniej cyfry z liczby znajdującej się w wybranej komórce). Dla każdej depeszy wybierano inne współrzędne miejsca, od którego wypisywano cyfry. W ten sposób klucz numeryczny był niepowtarzalny. Jako dodatkowe skomplikowanie szyfru przyjęto zasadę, że siatka Sorgego wypisywała kod numeryczny z pierwszej części rocznika, wydrukowanej na białych kartkach (zawierała dane o gospodarce Niemiec), a centrala w Moskwie szyfrując depesze do siatki – z drugiej części, wydrukowanej na zielonych kartkach (dane międzynarodowe).
Klucz numeryczny zapisywano pod wstępnie zaszyfrowanym tekstem i przeprowadzano tzw. dodawanie bez przeniesienia tj. opuszczano część dziesiętną wyniku zapisując tylko liczbę jedności. Dodawano pojedyncze pary cyfr, a nie całe grupy jako liczby.
szyfr wstępny | 91188 | 18538 | 31590 | 69839 | 24333 | 78097 | 80932 | 85383 | 15905 | |
klucz numeryczny | + | 35635 | 51303 | 24932 | 10010 | 78191 | 12106 | 21169 | 41861 | 76147 |
szyfr ostateczny | = | 26713 | 69831 | 55422 | 79849 | 92424 | 80193 | 01091 | 26144 | 81042 |
Pozostawało jeszcze umieszczenie w depeszy współrzędnych, według których odbiorca mógł znaleźć klucz numeryczny. Z numeru strony opuszczano liczbę setek, a dla wiersza przeznaczano dwie cyfry. Klucz mógł się znajdować np. na stronie 23, 123 lub 223. Odbiorca musiał znaleźć właściwą stronę metodą prób i błędów. Ułatwiał to fakt, że wszystkie depesze siatki Ramsay zaczynały się od formuły DAL (Dal było skrótem od Dalnyj Wostok – Daleki Wschód). Wystarczyło wypisać pięć cyfr klucza (DAL = 83593) i sprawdzić efekt rozszyfrowania pierwszej grupy depeszy. Dla kryptoanalityków było to kolejne utrudnienie, a dla szyfrującego zwiększało zakres możliwych do uzyskania kluczy numerycznych.
Załóżmy, że wybrano stronę 123 i 7 wiersz w 6 kolumnie. Współrzędne utworzą więc grupę 23076. Wysyłanie jej w takiej, jawnej postaci uznano za niebezpieczne. Wykonywano więc jeszcze jedno dodawanie bez przeniesienia – grupy opisującej współrzędne klucza, czwartej grupy szyfru licząc od początku i trzeciej od końca:
23076 | |
79849 | |
+ | 01091 |
= | 93806 |
Powstałą grupę umieszczano na początku depeszy i całość nadawano przez radio do Moskwy (za pośrednictwem radiostacji położonej w okolicach Władywostoku).
93806 26713 69831 55422 79849 92424 80193 01091 26144 81042
Deszyfrowanie
edytujPrzy rozszyfrowywaniu stosuje się odejmowanie bez przeniesienia: jeżeli odjemna jest mniejsza od odjemnika – zwiększa się ją o 10.
Odbiorca depeszy najpierw oddzielał od niej pierwszą grupę, zawierającą współrzędne klucza numerycznego. Teraz poprzez odejmowanie bez przeniesienia tej grupy, trzeciej grupy od końca i czwartej od początku ustalał te współrzędne. Opisaną powyżej metodą prób i błędów sprawdzał, na której stronie Rocznika Statystycznego znajduje się początek klucza numerycznego, wypisywał całość klucza i (znowu odejmowaniem bez przeniesienia) przekształcał zaszyfrowaną depeszę w ciąg cyfr, który był już podstawą do odczytania tekstu jawnego przy pomocy szachownicy. Szachownicę odbiorca tworzył powtarzając etap I szyfrowania – potrzebne klucze były stałe i znane obu stronom.
Odporność na złamanie
edytujSzyfr Ramsaya był połączeniem szyfru homofonicznego i szyfru z kluczem jednorazowym, co czyniło go bardzo odpornym na złamanie. Japońscy kryptoanalitycy nie zdołali odczytać żadnej z bardzo wielu przechwyconych depesz siatki Sorgego. Udało się to dopiero w 1941 roku, kiedy po rozbiciu siatki aresztowany razem z Sorgem szyfrant-radiotelegrafista – Max Clausen – wyjawił im algorytm szyfru.
Bibliografia
edytuj- David Kahn: Łamacze kodów. Warszawa: Wydawnictwa Naukowo-Techniczne, 2004. ISBN 83-204-2746-0.
- Андрей Синельников: Шифры советской разведки. [dostęp 2016-03-18].
- Robert Guillain: Sorge. Warszawa: Książka i Wiedza, 1987. ISBN 83-05-11536-4.