Marek Grajek KURS KRYPTOLOGII
Nieco historii
Wiek, w którym żyjemy, nie ma jeszcze nawet dziesięciu lat, a już zwykło się go
określać mianem stulecia wiedzy lub stulecia informacji. Mniejsza o to, że in-
formacja nie zawsze jest tożsama z wiedzą; otacza nas wszystkich wielka chmura
informacyjnego smogu, który z pewnością z wiedzą nie ma nic wspólnego. Poza tym
- kluczowa rola wiedzy w ludzkiej cywilizacji była rzeczą oczywistą nawet dla
jej najwcześniejszych przedstawicieli. Wnikliwa lektura historycznych książek
pozwala stwierdzić, że człowiek cenił wiedzę praktycznie od chwili narodzin
społeczeństwa. Aby wiedza była użyteczna dla całego społeczeństwa, należało ją
gromadzić i przekazywać, tak jednak, by nie dostała się w niepowołane ręce. Za-
tem sposoby ukrywania wiedzy pojawiły się prawie w tym samym momencie, co sama
wiedza oraz społeczność, w której się pojawiła.
Najstarsze inskrypcje, które z pewnością miały na celu
ukrycie swej treści przed niepowołanym okiem, pochodzą ze
starożytnego Egiptu, z okresu ok. 1.900 lat p.n.e. W naj-
starszych księgach Starego Testamentu niektóre pojęcia za-
pisywano szyfrem zwanym Atbasz; nie wiemy, czy użycie
szyfru miało w
tym wypadku na celu ukrycie treści, czy
też podkreślenie wielkiej, Boskiej tajemnicy, z którą ob-
cował czytelnik Pisma... Czym bliżej naszych czasów, tym
więcej pojawia się przykładów utajniania informacji oraz
rośnie
różnorodność jego form. Starożytni Spartanie
utajniali niektóre przesłania nawijając spiralnie wąski
pas skóry na drewnianą laskę (zwaną „skytale”), a następ-
nie zapisując tekst przesłania wzdłuż laski; po rozwinię-
ciu skórzanego pasa znaki występowały na nim w przypadko-
wej kolejności. Odbiorca czytał przesłanie po nawinięciu
pasa na laskę o tej samej średnicy – można powiedzieć, że
średnica „skytale” stanowiła klucz do szyfru.
Herodot przekazał informację o Greku Histiajosie, który
służąc na dworze wielkiego króla Persji postanowił prze-
słać swemu krewnemu w Milecie informację o dogodnym mo-
mencie dla wzniecenia powstania przeciw perskim władcom.
W tym celu przywołał jednego ze swoich niewolników, ogo-
lił na łyso jego czaszkę i wytatuował nie niej treść ostrzeżenia, po czym po-
czekał, aż posłańcowi odrosły włosy i wyprawił go w drogę do kraju. W starożyt-
nych Chinach często zapisywano list na skrawku cienkiego jedwabiu, po czy zawi-
jano go w gałkę wosku, którą posłaniec połykał. W nieco późniejszych czasach
Juliusz Cezar prowadząc kampanię w Galii, wśród plemion celtyckich, zwykł koor-
dynować działania kilku oddziałów, na jakie podzielił swą armię, wysyłając do
ich dowódców kurierów z rozkazami. Zważywszy jednak niebezpieczeństwo wpadnię-
cia kuriera w ręce wroga szyfrował treść listów zastępując każdy znak łaciń-
skiego alfabetu znakiem położonym o trzy pozycje w alfabecie dalej, np. literę
C zastępując znakiem F.
Dość wcześnie pojawiły się trzy zasadnicze sposoby utajniania informacji, które
zachowują swoją aktualność aż do dnia dzisiejszego: steganografia, kody i szy-
fry. Jako pierwsza pojawiła się bodaj steganografia, którą w języku polskim
można określić bardziej swojskim mianem tajnopisu. W pewnym uproszczeniu korzy-
stał z niej anonimowy Grek wysyłając depeszę wytatuowaną na głowie posłańca.
©ŁAMACZE SZYFRÓW
1
www.lamaczeszyfrow.pl
Marek Grajek KURS KRYPTOLOGII
Istotą steganografii jest bowiem nie tyle ukrycie treści przekazu, lecz samego
faktu, że przekaz ma miejsce.
Strażnicy perskiej drogi królewskiej, którzy musieli wielokroć rewidować po-
słańca, z pewnością przeoczyli depeszę ukrytą pod włosami, zatem steganografia
spełniła swoją rolę. Z czasem jej metody uległy wyrafinowaniu, kiedy użytkowni-
cy uznali, że sam fakt wysyłania kuriera lub przesyłki budzi wystarczającą po-
dejrzliwość ze strony wroga, jeśli nie zapewni się niewinnego i wiarygodnego
zarazem powodu dla ich podróży.
Zamiast więc ukrywać fakt przekazywania informacji, przesyłali pozornie niewin-
ne wiadomości, ukrywając właściwą informację albo w ich treści, albo na jej no-
śniku. Przykładem jest rysunek motyla na ilustracji obok zrobiony przez „bada-
cza owadów”, a w rzeczywistości generała armii brytyjskiej i przyszłego twórcę
skautingu Roberta Baden-Powella. Jak się okazało motyl miał tu znaczenie drugo-
rzędne - w rzeczywistości szkic przedstawiał narys i rozkład dział jednej z
wrogich twierdz.
Klasycznym wykorzystywanym w tym celu sposobem było użycie tzw. sympatycznych
atramentów. Na karcie papirusu, pergaminu lub papieru notowano właściwą treść
przekazu zapisując go np. mlekiem lub sokiem z cytryny (przy braku powyższych
zawsze można było się posłużyć moczem), po czym po wyschnięciu pisma na tej sa-
mej karcie pisano normalnym atramentem list o zupełnie niewinnej treści, np.
rodzinne pozdrowienia dla dalekiego krewnego. Nawet przy wnikliwiej rewizji po-
słaniec mógł utrzymywać, że przewozi jedynie niewinną korespondencję rodzinną.
Właściwy odbiorca pisma ogrzewał je nad płomieniem świecy lub pocierał kartę
szmatką nasączoną odpowiednim odczynnikiem i odczytywał tajną treść. Starożytne
i średniowieczne poradniki pełne są receptur tajemnych atramentów, których nie
wydobędą na jaw najpowszechniej stosowane przez przeciwnika odczynniki lub za-
biegi. Epoka tajnych atramentów dobiegła kresu w zasadzie dopiero w czasie II
wojny światowej, kiedy to Niemcy opracowali proces fizyczny pozwalający wydobyć
na jaw praktycznie każdy rodzaj tajnego pisma. Alianci znaleźli w urzędach
pocztowych pokonanej III Rzeszy dwa mniej lub bardziej zdewastowane egzemplarze
tzw. „organów Wurlitzera”, których używano do badania poczty pod kątem obecno-
ści tajnego pismo na skalę przemysłową.
Kiedy w świecie pojawiły się gazety i innego rodzaju pisma ulotne, popularny
stał się inny sposób przekazu tajnych wiadomości. Wystarczyło wziąć niewinny
egzemplarz gazety i w umówionym uprzednio z odbiorcą miejscu cienką igłą nakłuć
niewidoczne gołym okiem dziurki np. pod kolejnymi literami tekstu poufnej wia-
domości. Inny sposób wykorzystania druków podlegających masowej ekspedycji
opracowali tuż przed II wojną światową pomysłowi Niemcy. Wykorzystali zaawanso-
wanie firm niemieckiego przemysłu fotograficznego w dziedzinie technologii fo-
©ŁAMACZE SZYFRÓW
2
www.lamaczeszyfrow.pl
Marek Grajek KURS KRYPTOLOGII
tochemicznych dla wykorzystania w szpiegowskim rzemiośle znanej już wcześniej
mikrofotografii. W opracowanej przez nich technice zdjęcie dowolnego dokumentu
pomniejszano fotograficznie w kilku etapach tak, że kilkanaście stron druku lub
pisma mieściło się na mikrofotografii o rozmiarach ok. 1 milimetra.
Tak otrzymaną mikrofotografię wycinano z kliszy specjalnie zaostrzoną igłą do
zastrzyków i naklejano w umówionym z odbiorcą miejscu w niewinnym tekście -
technika zyskała nazwę „mikrokropek”. Kiedy Amerykanie, uprzedzeni przez po-
dwójnego agenta, wykryli w sierpniu 1941 roku pierwszy przekaz tego rodzaju,
mikrofotografia udawała niewinną kropkę na znaczku pocztowym. Niewątpliwą zale-
tą mikrokropek był fakt, że łatwo można było ukryć w nich zdjęcia lub rysunki
tajnych obiektów lub dokumentów, trudne do przesłania w innej formie.
Jeżeli nadawca i odbiorca nie dysponują opisanymi środkami technicznymi, zawsze
mogą próbować wymienić list o całkowicie neutralnej treści, w którym znaczące
będą tylko określone znaki, np. stojące na pierwszej pozycji w danym wierszu,
słowie itd. Z reguły dobór odpowiednich słów w odpowiednich pozycjach nie jest
łatwym problemem, a listy ukrywające poufną treść rażą nienaturalnością stylu
lub słownictwa (np. „Tak, ale jak najdalej od partyjniactwa i sobiepaństwa”).
Zapewne łatwiej byłoby stosować je współcześnie, kiedy żargon świata polityki,
mediów lub nauki bywa nienaturalny sam przez się, także bez ukrywania poufnych
przekazów. Tyle tylko, że współczesna technika doprowadziła do renesansu tech-
nik steganograficznych w zupełnie inny sposób. W Internecie wymieniane są co-
dziennie miliony zbiorów zawierających muzykę, obraz lub filmy. Każda jednostka
informacji - muzyczna nuta albo punkt w statycznym lub dynamicznym obrazie -
jest w nich kodowana w postaci liczby. Okazuje się, że ludzkie oko i ucho nie
są wystarczająco czułym urządzeniem, by zauważyć różnicę np. tonu, gdy przed-
stawiająca go liczba zostanie zmieniona przykładowo z wartości 251 na 252. W
efekcie wartość najmniej znaczącego bitu binarnej reprezentacji tej liczby (i
innych liczb w tym samym przekazanie) łatwo wykorzystać do przesłania utajnio-
nej informacji, której przypadkowy słuchacz lub widz nie zauważą, jednak wyłowi
ją i odczyta odpowiednie oprogramowanie w komputerze odbiorcy. W ten zadziwia-
jący sposób przerzucono naturalny pomost pomiędzy ogoloną czaszką perskiego
niewolnika sprzed prawie 3 tysięcy lat i czasami jak najbardziej nam współcze-
snymi.
Wieści o metodzie stosowanej przez Juliusza Cezara mogą świadczyć, że szyfry
pojawiły się jako drugi, po steganografii, sposób utajniania informacji, my
jednak zajmiemy się najpierw kodami, głównie ze względu na ich podobieństwo do
naszego naturalnego języka. Nawiasem mówiąc, sam język, jakim posługujemy się
na co dzień, także stanowi rodzaj kodu. Zauważmy, że nienazwanym pojęciom, któ-
re funkcjonują w naszym umyśle, we wczesnym dzieciństwie uczymy się nadawać
określenia w języku używanym przez otoczenie. Każde wypowiadane przez nas słowo
lub konstrukcja języka odpowiadają jakiemuś pojęciu, przy czym ich wzajemne
przyporządkowanie jest kwestią czysto umowną - przecież ludzie posługujący się
językami dla nas obcymi także jakoś się wzajemnie porozumiewają, mimo użycia
zupełnie innych słów dla oznaczenia tych samych pojęć. Nawiasem mówiąc, analo-
gia z językami obcymi ukazuje kodową naturę naszego języka: ludzie mówiący
wspólnym językiem używają jednego kodu, dzięki czemu porozumiewają się wzajem-
nie. Wystarczy jednak użyć tego samego kodu wobec osoby z innego kręgu języko-
wego, by spotkać się z informacyjną barierą. Zauważmy zresztą, że istnieją
szczególne odmiany języka, których celem jest ukrywanie informacji przed osoba-
©ŁAMACZE SZYFRÓW
3
www.lamaczeszyfrow.pl
Marek Grajek KURS KRYPTOLOGII
mi postronnymi; gwara więzienna, przestępcza, przemytnicza a także język więk-
szości dyscyplin naukowych.
Od tego spostrzeżenia prosta droga prowadzi do wniosku, że wystarczy opracować
poufny słownik pojęć, by można było ukrywać treść rozmowy lub korespondencji
przed osobami postronnymi. Okazało się przy tym, że taki poufny słownik nie
musi obejmować wszystkich słów języka naturalnego, lecz jedynie wybraną grupę
pojęć pełniących kluczową rolę w dialogu, którego treść należało ukryć przed
postronnymi. Weźmy dla przykładu dowolną informację prasową i wytnijmy z niej
określenia czasu, miejsca i osób, a przekonamy się, że tak spreparowany tekst
stanie się pozbawionym znaczenia bełkotem. Właśnie w ten sposób postępowali au-
torzy kodów, których struktura była w naturalny sposób zależna od przedmiotu
wymiany informacji. W kodzie dyplomatycznym pojawiały się kodowe oznaczenia
głównych aktorów i czynności sceny politycznej i dyplomatycznej. W kodzie woj-
skowym określenia militarne: jednostek, rodzajów broni, typowych manewrów wojsk
itp.
W swej skrajnej, a zarazem najbardziej natural-
nej postaci kod
winien obejmować możliwie
dużą grupę słów języka. W istocie
kody opracowy-
wane w XIX i na początku XX wieku miewały
monstrualne rozmiary; jeden z kodów telegra-
ficznych zawierał
kodowe odpowiedniki ponad 300
tysięcy pojęć. Kody w takiej
postaci miały co
najmniej dwie wady. Z konieczności były one
wy-
dawane jako pokaźnych rozmiarów księgi, które
trudno było
ukryć przed przeciwnikiem, zwłasz-
cza, jeśli były przeznaczone
do użytku na jego terenie. W związku z tym uży-
cie kodów upowszechniło się przede wszystkim w tych dziedzinach, w których
nadawca i odbiorca informacji działali w stacjonarnym i dobrze strzeżonym loka-
lu, jak np. w ambasadach danego kraju. Drugą wadą kodów był długi czas i spory
wysiłek konieczne dla ich opracowania i bezpiecznego powielenia. Sam proces
produkcji kodu trwał wiele miesięcy, a jego użycie rozciągało się na lata, je-
śli nie na dziesiątki lat. Oczywiście w tak długim okresie czasu przeciwnik zy-
skiwał możliwość przechwycenia wielu depesz utajnionych tym samym kodem, co
stanowiło dlań doskonały punkt do ataku.
Fragment typowego kodu mógł wyglądać następująco (w pierwszej kolumnie słowa
języka naturalnego, w drugiej ich odpowiedniki kodowe):
EBONIT
ARIT
ECHO
DUNA
EDUKACJA
KROT
EFEKT
RIFA
EGOISTA
KUST
EGZAMIN
BIST
EGZEKUCJA
AGRI
EGZEMPLARZ
MERT
Zauważmy dwie właściwości przytoczonego fragmentu księgi kodowej. Pojęcia języ-
ka naturalnego są w niej uporządkowane w kolejności alfabetycznej, natomiast
ich odpowiedniki kodowe w przypadkowym porządku. Taka organizacja sprzyja pro-
cesowi kodowania - nadawca, który musi zakodować słowo EGZAMIN łatwo odnajdzie
©ŁAMACZE SZYFRÓW
4
www.lamaczeszyfrow.pl
Marek Grajek KURS KRYPTOLOGII
je w tabeli, jednak odbiorca natrudzi się nieco nad odnalezieniem słowa BIST.
Przytoczony fragment tabeli pozwala sądzić, że mamy do czynienia z kodem dwu-
częściowym, którego pierwszą część stanowią uporządkowane alfabetycznie słowa
tekstu jawnego, drugą zaś - także uporządkowane alfabetycznie słowa kodu.
Nadawca wykorzystuje pierwszą część, zaś odbiorca drugą, w której pierwszej ko-
lumnie występują uporządkowane alfabetycznie słowa kodowe. Obie części księgi
kodowej, występujące zresztą czasami jako oddzielne księgi, przypominają dwu-
stronny i dwujęzyczny słownik.
Kod dwuczęściowy był szesnastowiecznym wynalazkiem francuskiej dynastii krypto-
logów, rodziny Rossignol. Wcześniej stosowano kody jednoczęściowe (zwane także
jednoksiążkowymi), w których słowa kodu dobierano w taki sposób, by występowały
w identycznym porządku, jako słowa tekstu jawnego. W takim wariancie przytoczo-
ny powyżej fragment kodu mógłby przyjąć postać:
EBONIT
EBUT
ECHO
ECIT
EDUKACJA
ECUN
EFEKT
EDOR
EGOISTA
EFAN
EGZAMIN
EFIZ
EGZEKUCJA
ELAS
EGZEMPLARZ
EMIR
Kod jednoczęściowy był oczywiście bardziej wrażliwy na atak od kodu dwuczęścio-
wego. Odnalezienie przez kryptologa znaczenia słów ECUN i EFIZ pozwalało mu
sięgnąć po zwyczajny słownik języka i próbować dopasować do grup kodowych EDOR
i EFAN któreś ze słów znajdujących się pomiędzy EDUKACJĄ i EGZAMINEM.
Druga specyficzna właściwość przytoczonego fragmentu kodu sprowadza się do
tego, że grupy kodowe mają strukturę sylabiczną naturalnego języka, innymi sło-
wy - dają się wymówić. Jest to efekt świadomie przyjętej konwencji; w ogólnym
przypadku zamiast słowa EBUT można użyć słowa ERXZ, zamiast ECIT - GRZH itd.
Kody przeżywały jednak okres swej największej świetności w końcówce XIX i po-
czątku XX wieku, w erze telegrafu. Wiadomość po zakodowaniu była przekazywana w
ręce telegrafisty, który nadawał ją do odbiorcy. Zarówno nadający, jak i odbie-
rający depeszę pracownik telegrafu pracował szybciej oraz popełniał mniej błę-
dów, gdy przesyłany tekst składał się z jednostek dających się wymówić: zdecy-
dowanie łatwiej nadać wiadomość w stylu EBUT EFIZ EMIR, niż ERXZ GRZH IRGH. W
związku z tym kompanie telegraficzne pobierały niższe opłaty o telegramów skła-
dających się z wymawialnych jednostek tekstu, niż całkowicie przypadkowych zna-
ków, a autorzy kodów dostosowali się do ekonomicznej rzeczywistości.
Praktyka zastępowania kodowymi odpowiednikami jedynie najczęściej pojawiających
się pojęć zrodziła w okresie renesansu najpowszechniej wówczas używane narzę-
dzie utajniania informacji, tzw. nomenklator. W swojej najbardziej typowej po-
staci zawierał kodowe odpowiedniki najczęściej wykorzystywanych w koresponden-
cji pojęć oraz towarzyszący im prosty szyfr, którym zabezpieczano fragmenty
tekstu dla których brakowało odpowiedników w kodzie. Przykład prostego nomen-
klatora przedstawiono poniżej.
KOMPANIA
8381
BATALION
9211
©ŁAMACZE SZYFRÓW
5
www.lamaczeszyfrow.pl
Marek Grajek KURS KRYPTOLOGII
PUŁK
1153
DYWIZJA
0455
ATAKUJE
9802
BRONI SIĘ
6653
WYCOFUJE SIĘ
1388
DOSTARCZYĆ AMUNICJĘ
9077
PRZYSŁAĆ POSIŁKI
6615
ABCDEFGHIJKLMNOPQRSTUVWXYZ
QWERTYUIOPASDFGHJKLZXCVBNM
Meldunek o treści „Trzecia kompania atakuje. Dostarczyć amunicję” utajniony z
wykorzystaniem powyższego nomenklatora przybierze postać:
ZKMTEOQ838198029077
Zauważmy, że ani kod, ani szyfr nie zawierają odpowiedników dla znaku odstępu
pomiędzy wyrazami, jak również znaków przestankowych (kropek, przecinków itd.).
To dość często spotykana cecha zarówno kodów, jak i szyfrów; spacje i znaki
przestankowe są w nich albo opuszczane przed utajnieniem tekstu, zastępowane
literą lub parą znaków rzadko wykorzystywanymi w danym języku (np. w szyfrogra-
mach niemieckiej Enigmy spacja była zastępowana rzadko występującą w niemieckim
języku literą X lub pomijana przy szyfrowaniu).
Skuteczny atak na kod wymagał zgromadzenia dużej liczby kodowanych depesz. Sama
natura korespondencji sprawiała, że pewne pojęcia występowały w nich częściej
od innych. Ponadto proces kodowania zastępuje słowa języka naturalnego, ale nie
zniekształca naturalnej struktury wypowiedzi w tym języku. Kryptolog mógł za-
kładać, że na początku depeszy wystąpi określenie jej adresata („Do dowództwa
dywizji”, „Do Ministerstwa Spraw Zagraniczych” itp.), po nim zwrot grzeczno-
ściowy lub formuła rozpoczynająca depeszę („Szanowny Panie Ministrze”, „Panie
generale” lub „Dowódca pułku melduje”), po niej zaś szereg zdań o strukturze
zgodnej z naturą języka oraz wojskowym, dyplomatycznym lub innym charakterem
depeszy. W kolejnych przejętych depeszach te same elementy zaczynają powtarzać
się w tym samych lub zbliżonych pozycjach, dostarczając atakującemu kod coraz
lepszych hipotez dotyczących ich znaczenia. Kiedy uda mu się z wystarczającym
poziomem pewności określić znaczenie kilku grup kodowych, przeszykuje pod kątem
ich wystąpienia wcześniej zarejestrowane depesze, usiłując zidentyfikować grupy
kody często towarzyszące analizowanym i określić także ich znaczenie. W istocie
najtrudniejszym etapem pracy jest sformułowanie i potwierdzenie pierwszych hi-
potez. Późniejsze poszerzenie zakresu włamania jest tylko kwestią czasu i cier-
pliwości. Oczywiście autorzy kodów doskonale wiedzieli, na czym polegają ich
słabości i usiłowali im zapobiegać co najmniej na dwa sposoby. Pierwszym było
wprowadzanie do księgi kodowej wielu odpowiedników dla najczęściej używanych
słów. Np. w kodzie projektowanym dla użytku dyplomatycznego słowa MINISTER i
AMBASADOR z reguły posiadały po kilka odpowiedników kodowych, a zadaniem szy-
franta było używanie ich na przemian, bez jakiejkolwiek regularności. Do dru-
giego sposobu zabezpieczania kodu przed złamaniem powrócimy przy okazji prezen-
tacji szyfrów.
Jeszcze w czasie II wojny światowej kody były wykorzystywane praktycznie przez
wszystkie walczące strony, a jeśli używając ich przestrzegano pewnych elemen-
tarnych zasad bezpieczeństwa łączności, były równie lub bardziej bezpieczne od
©ŁAMACZE SZYFRÓW
6
www.lamaczeszyfrow.pl
Marek Grajek KURS KRYPTOLOGII
szyfrów. Np. Brytyjczycy łamali liczne szyfry włoskie, w tym dwa rodzaje szy-
frów maszynowych stosowanych przez włoską marynarkę, jednak do momentu kapitu-
lacji Włoch nie zdołali złamać włoskich kodów używanych na najwyższych szcze-
blach dowodzenia marynarki. Ale też druga wojna światowa była ostatnim konflik-
tem, w którym kody odegrały znaczącą rolę. Jeszcze w jej trakcie upowszechnie-
nie użycia maszyn szyfrujących, związana z tym wygoda, szybkość i brak błędów
sprawiły, że kody stopniowo utraciły znaczenie na rzecz szyfrów. Nie oznacza
to, że nie są wykorzystywane do dnia dzisiejszego, jednak współcześnie wykorzy-
stuje się kody w większej mierze do celów niezwiązanych z utajnianiem informa-
cji. Ktokolwiek, kto miał do czynienia z komputerami osobistymi musiał zetknąć
się także z archiwizatorami informacji, które potrafią przekształcić zbiór spo-
rych rozmiarów w niewielkie archiwum. Czynią to wykorzystując właśnie kody,
choć nie odnoszące się do jednostek języka naturalnego. Typowy archiwizator
przegląda zbiór źródłowy tworząc słownik powtarzających się sekwencji bitów, po
czym najczęściej powtarzającym się sekwencjom przypisuje najkrótsze oznaczenia
kodowe, nieco mniej częsty - dłuższe, choć i tak z reguły znacząco krótsze od
reprezentowanych przez nie słów. Ostatnim etapem jego pracy jest zastąpienie
pierwotnych słów ich odpowiednikami z właśnie opracowanego słownika. Dzięki
temu, że najczęściej występujące sekwencje są zastępowane przez najkrótsze sło-
wa kodowe, wynikowy zbiór jest z reguły znacząco mniejszy od pierwotnego. Innym
zastosowaniem kodów jest transmisja danych z zakłóceniami. Treść podlegająca
transmisji jest zastępowana lub uzupełniana przez słowa kodowe, które po stro-
nie odbiorczej pozwalają na określenie, czy informacja dotarła bez błędów. Je-
żeli używany kod pozwala jedynie na wykrycie błędu, jest określany jako kod z
detekcją błędów. Bywają jednak stosowane także kody, które pozwalają na napra-
wienie błędnie odebranego pakietu danych, jeśli liczba błędów w odbiorze nie
przekroczyła określonego poziomu - takie systemy są nazywane kodami z autoko-
rekcją błędów.
Trzecim, obok steganografii i kodów, sposobem utajniania informacji są szyfry.
Powróćmy do Juliusza Cezara, który z listach do swoich legatów zastępował każdą
literę znakiem położonym o trzy pozycje w alfabecie dalej. Jego własne imię,
IULIUS CAESAR przybierało zatem formę LXNLXV FDHVDU. Postępując w opisany spo-
sób posługiwał się właśnie szyfrowaniem, którego istotą jest zastępowanie każ-
dej litery tekstu jawnego literą szyfrogramu. Najważniejsza różnica pomiędzy
kodami opisanymi powyżej, a szyframi, do których opisu właśnie przystępujemy,
polega na tym, że w kodowaniu zastępowane są całe słowa tekstu jawnego, a przy
szyfrowaniu - oddzielne litery (choć nie zawsze jedna litera tekstu jawnego
jest zastępowana przez jedną literę szyfrogramu).
Cezar mógł czuć się pewnie, przesyłając zaszyfrowane listy swoim legatom; wśród
walczących po przeciwnej stronie plemion celtyckich sama sztuka czytania była
rzadka, toteż jego prosty szyfr gwarantował bezpieczeństwo wiadomości. Gdyby
jednak wśród oponentów znalazł się Rzymianin-dezerter, dodatkowo świadomy sztu-
czek Cezara, nie miałby zbyt wielu problemów ze złamaniem jego szyfru. Dwa al-
fabety 26-znakowe można przesunąć wzajemnie na 25 sposobów, aby znak zaszyfro-
wany nie był tożsamy znakowi tekstu jawnego; szyfr Cezara dysponował zaledwie
25 różnymi kluczami. Przypomnijmy jednak prosty szyfr, stanowiący element opi-
sanego powyżej nomenklatora:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
QWERTYUIOPASDFGHJKLZXCVBNM
©ŁAMACZE SZYFRÓW
7
www.lamaczeszyfrow.pl
Marek Grajek KURS KRYPTOLOGII
Jego górny wiersz bywa określany mianem alfabetu jawnego, dolny - alfabetu szy-
frowego. Aby szyfr działał znaki alfabetu szyfrowego nie muszą, jak u Cezara,
być uporządkowane w kolejności alfabetycznej. Co więcej, znaki alfabetu szyfro-
wego wcale nie muszą być tożsame ze znakami alfabetu jawnego: równie dobrym wa-
riantem będzie szyfr przedstawiony poniżej:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
¢£¤¥§©®µ¶¿€Ω∩∫≈⌂▲☺♠♦◄►♀♣□∆
Nawiasem mówiąc, zanim do konstrukcji szyfrów zaczęto podchodzić w sposób sys-
tematyczny i naukowy, wśród ich autorów dominowało przekonanie, że czym bar-
dziej osobliwych symboli użyją w alfabecie szyfrowym, tym szyfr będzie trud-
niejszy do złamania. Nic bardziej mylnego; oba przedstawione powyżej rodzaje
szyfru stanowią równie banalny problem dla kogoś, kto chciałby odczytać zaszy-
frowane nimi informacje. Wracając do wymagań dotyczących alfabetu jawnego i al-
fabetu szyfrowego, ważne jest jedynie, by oba alfabety zawierały taką samą
liczbę elementów, a związek pomiędzy nimi był różnowartościowy i jednoznaczny
(tzn. dla każdego elementu alfabetu jawnego istniał dokładnie jeden odpowiednik
w alfabecie szyfrowym i dla dowolnych dwóch różnych elementów alfabetu jawnego
ich odpowiedniki szyfrowe także były różne).
Może się wydawać, że skonstruowaliśmy właśnie szyfr znacznie trudniejszy do
złamania, niż Cezar: dla określonego alfabetu jawnego i szyfrowego o 26 elemen-
tach istnieje 26! (w przybliżeniu 4·10
27
) ich możliwych wzajemnych przyporządko-
wań. Taki sposób rozumowania był jednak rafą, na której rozbiły się marzenia
wielu kryptologów o szyfrach niemożliwych do złamania. Skonstruowawszy nowy
szyfr pracowicie wyznaczali liczbę możliwych, generowanych przezeń kombinacji,
po czy zadumawszy się nad jej ogromem ogłaszali, że żaden ludzki umysł nie
przeniknie tak złożonej tajemnicy. Wkrótce w trakcie naszego kursu przekonamy
się, że najważniejszym błędem w tym rozumowaniu jest założenie, że jedyną drogą
do złamania szyfru jest przeanalizowanie wszystkich możliwych w nim przypadków.
Dla zdecydowanej większości znanych szyfrów zaprojektowano drogi prowadzące do
rozwiązania na skróty.
Aby dwie strony mogły bezpiecznie porozumiewać się korzystając z szyfru, muszą
dysponować parą identycznie przyporządkowanych alfabetów jawnego i szyfrowego.
Przekazywanie ich w formie przedstawionej powyżej jest niewygodne, a zapamięty-
wanie - niemożliwe. Dlatego dla definiowania wzajemnego przyporządkowania alfa-
betu jawnego i szyfrowego zwykło się używać mnemotechnicznej sztuczki, polega-
jącej na generowaniu ich w oparciu o słowo kluczowe. Załóżmy, że słowem kluczo-
wym dla naszego szyfru jest KRYPTOLOGIA; na jego podstawie tworzymy parę alfa-
betów w następujący sposób. W górnym wierszu wypisujemy alfabet jawny w kolej-
ności alfabetycznej. W dolnym wypisujemy słowo kluczowe, pomijając w nim kolej-
ne wystąpienia tego samego znaku (czyli w naszym przykładzie powtórzone O). Po
wypisaniu słowa kluczowego wypisujemy w kolejności alfabetycznej te znaki alfa-
betu, które nie wystąpiły w słowie kluczowym. Uzyskujemy następujące podstawie-
nie szyfrowe:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
KRYPTOLGIABCDEFHJMNQSUVWXZ
Zaletą opisanego podejścia jest fakt, że strony nie muszą pamiętać całego pod-
stawienia szyfrującego, generując je dynamicznie na podstawie słowa kluczowego.
©ŁAMACZE SZYFRÓW
8
www.lamaczeszyfrow.pl
Marek Grajek KURS KRYPTOLOGII
W kodzie pojęcie klucza nie istnieje. Z szyfrem z reguły związane są dwa poję-
cia; algorytmu szyfrowania, który nie musi być tajny, oraz klucza do szyfru.
Dobrze zaprojektowane algorytmy szyfrujące gwarantują bezpieczeństwo łączności
pod warunkiem poufności samego klucza.
Przypomnijmy jeszcze raz, że kody działają na słowach tekstu jawnego, podczas
gdy szyfry - na pojedynczych literach. Ma to istotne znaczenie dla metod łama-
nia kodów i szyfrów. Jak pamiętamy, pracę nad złamaniem kodu rozpoczynano od
identyfikacji najczęściej występujących elementów, po czym na podstawie miejsca
w tekście, w którym najczęściej występowały, próbowano określić ich znaczenie.
Kod ukrywa pojęcia tekstu jawnego, jednak nie zaciera specyficznej dla każdego
języka i tematyki korespondencji struktury całego tekstu. W związku z tym do
prac nad łamaniem kodów z reguły powoływano ludzi świetnie znających strukturę
języka tekstu jawnego. Ich doświadczenie było mniej przydatne przy analizie
szyfru. Ponieważ każda litera jest poddawana przekształceniu osobno, znaczna
część czysto językowych własności tekstu jawnego ulega w szyfrach zatarciu. W
niektórych rodzajach szyfru można próbować zidentyfikować nie tyle słowa, ile
najczęściej występujące dwójki i trójki liter (kryptolodzy określają je mianem
biogramów i trygramów). Nie zmienia to jednak faktu, że znajomość języka nie-
przyjaciela jest zdecydowanie mniej przydatna przy analizie szyfrów, niż kodów.
Na zakończenie musimy powrócić do zasygnalizowanego wcześniej sposobu dodatko-
wego zabezpieczania kodów. Pamiętamy, że największym niebezpieczeństwem dla ko-
dów jest powtarzanie tych samych pojęć (słów kodowych) w kolejnych depeszach.
Gdyby jednak tak zmodyfikować kod, by to samo słowo kluczowe w każdej depeszy
wyglądało inaczej, kod stałby się znacznie bardziej bezpieczny. Z takiej obser-
wacji zrodził się pomysł dodatkowego zabezpieczania kodu przez jego przeszyfro-
wywanie. Załóżmy, że operujemy kodem liczbowym, tj, takim, w którym słowa kodu
mają postać grup 4-cyfrowych. Załóżmy także, że zakodowana depesza brzmi:
1773 9767 5288 1525 0941 6825 9983 7254
Załóżmy także, że obok książki kodowej mamy do dyspozycji inny dokument, w któ-
rym wydrukowano wiele wierszy przypadkowych liczb. Wybieramy w nim w sposób lo-
sowy punkt, od którego zaczniemy korzystać zeń przy przetwarzaniu danej depe-
szy; załóżmy, że wybraliśmy stronę 10, wiersz 2, zaczynający się od następują-
cej sekwencji liczb:
9837 8836 5294 0284 9123 0026 0122 1165
Zapisujemy zakodowaną depeszą nad wybranym fragmentem liczbowym, po czym w ko-
lejnych kolumnach dodajemy liczby modulo 10 otrzymując:
1773 9767 5288 1525 0941 6825 9983 7254
9837 8836 5294 0284 9123 0026 0122 1165
0500 7593 0472 1709 9064 6841 9005 8319
Zawartość ostatniego wiersza przesyłamy odbiorcy dołączając do niej liczbę
1002, informującą o miejscu w tabeli liczb, od którego rozpoczęliśmy proces
przeszyfrowywania kodu (przypomnijmy - 10 strona, 2 wiersz). Odbiorca odnajdzie
w swojej tabeli odpowiednie miejsce, po czym rozpocznie pracę od odjęcia cyfr z
tabeli od cyfr szyfrogramu, przystępując następnie do odczytania samego kodu.
Ze względu na sposób użycia liczbowe tabele używane w procesie przeszyfrowywa-
nia kodu bywały określane jako tabele dodajników lub odjemników. O ile sama
księga kodu zachowywała swoją ważność w długim czasie, o tyle tabele odjemników
©ŁAMACZE SZYFRÓW
9
www.lamaczeszyfrow.pl
Marek Grajek KURS KRYPTOLOGII
bywały często zmieniane, co w zdecydowany sposób utrudniało przeciwnikowi atak
na kod.
Na zakończenie wstępu historycznego mała dygresja natury
terminologicznej. Zadziwiające, ale w ciągu kilku tysięcy
lat rozwoju profesji związanej z utajnianiem informacji jej
adepci długo nie mogli dorobić się powszechnie akceptowanej
nazwy. Zapewne wynikało to z głębokiej tajemnicy otaczającej
ich działania: po co wymyślać nazwę dla ludzi, którzy ofi-
cjalnie nie istnieją? Ponieważ sama dyscyplina powoli zyska-
ła określenie kryptografii (od greckiego „tajnego pisma”),
uprawiający ją ludzie bywali określani mianem kryptografów.
Ale w początkach XX wieku, kiedy gwałtowny rozwój radia po-
budził zapotrzebowanie na ich pracę, niektórzy z reprezen-
tantów dyscypliny zdali sobie sprawę, że nieco inne kwalifi-
kacje konieczne są
przy projektowaniu kodów i szyfrów, oraz przy próbach ich
złamania. Dopiero w początku lat 1920-tych Amerykanin, William Friedman, za-
proponował, by stara nazwa „kryptografów” pozostała przy ludziach projektują-
cych kody i szyfry, aby ich przeciwników łamiących zabezpieczenia określać
mianem „kryptoanalityków”, a obie grupy łącznie nazywać „kryptologami”. Propo-
zycja przyjęła się, choć do tej pory w języku polskim nie znaleziono dobrego od-
powiednika dla angielskiego słowa „cryptanalyst”. Chyba sami Anglosasi też
nie
są szczęśliwi z jego brzemienia, bowiem obiegowo określają ludzi łamiących kody
i szyfry opisowym mianem „codebreakes”, czyli łamacze kodów lub łamacze szy-
frów...
Nieświadomi obserwatorzy z zewnątrz często określają osobę konstruującą
szyfry mianem „szyfranta”, a przez analogię osobę zajmującą się łamaniem
szyfrogramu lub kodowanej depeszy - „deszyfrantem”. To całkowite nieporozumie-
nie: „szyfrant” w rzeczywistości uzywa kodu lub szyfru, ale nie zajmuje się ich
konstrukcją, pozostającą domeną „kryptologa”. Tak więc szyfrant otrzymuje tekst
jawny depeszy i aktualny klucz do szyfru, szyfruje wiadomość i przekazuje
otrzymany szyfrogram osobie nadającej go do odbiorcy. Można przypuszczać, że
określenie „deszyfrant” miało oznaczać osobę zajmującą się przekształcaniem
szyfrogramu z powrotem w tekst jawny. Problem w tym, że słowo „deszyfrant” w
zasadzie w języku polskim nie istnieje: zarówno szyfrowaniem, jak i odczytywa-
niem szyfrogramu zajmuje się ten sam szyfrant. Z pewnością w żadnym wypadku nie
wolno używać słowa „szyfrant” dla oznaczenia osoby zajmującej się projektowa-
niem szyfrów (kryptologa) lub ich łamaniem (kryptoanalityka).
Dzisiejszy wykład miał na celu jedynie wprowadzenie do historii i zasadniczych
pojęć dyscypliny, zatem nie kończy się praktycznym zadaniem. W kolejnym spotka-
niu powrócimy do szyfrów podobnych do tych, od których rozpoczęliśmy prezenta-
cję tej metody utajniania informacji, a wykład zakończymy praktycznym zadaniem
z kryptoanalizy.
©ŁAMACZE SZYFRÓW
10
www.lamaczeszyfrow.pl