wst p do kryptografii grzegorz szkibielwmf.univ.szczecin.pl/~szkibiel/ksiazki/krypt.pdf1.1...

103

Upload: trancong

Post on 01-Mar-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

WST�P DO KRYPTOGRAFII

Grzegorz Szkibiel

Jesie« 2012/13

Spis tre±ci

1 Kryptogra�a a steganogra�a 5

1.1 Steganogra�a . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2 Szyfry przestawieniowe . . . . . . . . . . . . . . . . . . . . . . 81.3 Systemy kryptogra�czne . . . . . . . . . . . . . . . . . . . . . 9

2 Klasyczne metody szyfrowania 12

2.1 Szyfry cykliczne . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2 Monoalfabetyczny szyfr Beauforta . . . . . . . . . . . . . . . . 132.3 Kody a�niczne jednowymiarowe . . . . . . . . . . . . . . . . . 142.4 Permutacje alfabetu . . . . . . . . . . . . . . . . . . . . . . . 152.5 Analiza cz¦sto±ci wyst¦powania liter . . . . . . . . . . . . . . . 162.6 Homofony i nulle . . . . . . . . . . . . . . . . . . . . . . . . . 172.7 Jednostki dwuliterowe czyli digramy . . . . . . . . . . . . . . . 182.8 Szyfr Playfaira . . . . . . . . . . . . . . . . . . . . . . . . . . 202.9 Podwójny szyfr Playfaira . . . . . . . . . . . . . . . . . . . . . 212.10 szyfr Delastelle'a . . . . . . . . . . . . . . . . . . . . . . . . . 222.11 Jednostki wieloliterowe . . . . . . . . . . . . . . . . . . . . . . 232.12 Szyfry polialfabetyczne . . . . . . . . . . . . . . . . . . . . . . 232.13 �a«cuch szyfrów i DES . . . . . . . . . . . . . . . . . . . . . . 28

3 Maszyny szyfruj¡ce 32

3.1 Zasada dziaªania . . . . . . . . . . . . . . . . . . . . . . . . . 323.2 Jak zªamano szyfr ENIGMY . . . . . . . . . . . . . . . . . . . 36

4 Macierze szyfruj¡ce 41

4.1 Algebra liniowa modulo N . . . . . . . . . . . . . . . . . . . . 414.2 Szyfry Hill'a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.3 A�niczne przeksztaªcenia szyfruj¡ce . . . . . . . . . . . . . . . 48

2

5 Pakowanie plecaka 50

5.1 Postawienie problemu . . . . . . . . . . . . . . . . . . . . . . . 505.2 Szybko rosn¡ce ci¡gi . . . . . . . . . . . . . . . . . . . . . . . 515.3 Kryptosystem

oparty na problemie pakowania plecaka . . . . . . . . . . . . . 53

6 Systemy z publicznym kluczem 56

6.1 Numeryczna funkcja jednokierunkowa . . . . . . . . . . . . . . 576.2 Funkcje skrótu . . . . . . . . . . . . . . . . . . . . . . . . . . 586.3 poufno±¢ i autentyczno±¢. . . . . . . . . . . . . . . . . . . . . . 586.4 Wymiana kluczy . . . . . . . . . . . . . . . . . . . . . . . . . 606.5 2-1 funkcje jednokierunkowe . . . . . . . . . . . . . . . . . . . 60

7 System RSA 62

7.1 Rozkªad liczb na czynniki . . . . . . . . . . . . . . . . . . . . 627.2 Liczby wybrane losowo . . . . . . . . . . . . . . . . . . . . . . 637.3 Zasada dziaªania systemu RSA . . . . . . . . . . . . . . . . . 647.4 Wpadka systemowa wspólny moduª . . . . . . . . . . . . . . . 657.5 Wpadka systemowa niski wykªadnik . . . . . . . . . . . . . . . 65

8 Teorio-liczbowe podstawy RSA 67

8.1 Systemy pozycyjne . . . . . . . . . . . . . . . . . . . . . . . . 678.2 Iterowane podnoszenie do kwadratu . . . . . . . . . . . . . . . 698.3 Twierdzenie Eulera i

Maªe Twierdzenie Fermata . . . . . . . . . . . . . . . . . . . . 698.4 liczby pseudo-pierwsze . . . . . . . . . . . . . . . . . . . . . . 718.5 Chi«skie twierdzenie o resztach . . . . . . . . . . . . . . . . . 748.6 Kongruencje stopnia 2 . . . . . . . . . . . . . . . . . . . . . . 778.7 Gra w orªa i reszk¦ przez telefon . . . . . . . . . . . . . . . . . 80

9 Zastosowania arytmetyki

modulo m do rozkªadu liczb 83

9.1 Wzory skróconego mno»enia . . . . . . . . . . . . . . . . . . . 839.2 Metoda ρ rozkªadu na czynniki . . . . . . . . . . . . . . . . . 859.3 Metoda faktoryzacji Fermata . . . . . . . . . . . . . . . . . . . 879.4 Bazy rozkªadu . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

3

10 Logarytm dyskretny 92

10.1 Poj¦cie logarytm dyskretny . . . . . . . . . . . . . . . . . . . 9210.2 System Di�ego�Hellmana

uzgadniania klucza . . . . . . . . . . . . . . . . . . . . . . . . 9310.3 System kryptogra�czny Masseya-Omury . . . . . . . . . . . . 9510.4 System ElGamala . . . . . . . . . . . . . . . . . . . . . . . . . 96

11 Protokoªy o zerowej wiedzy i przekazy nierozró»nialne 97

11.1 Kolorowanie mapy . . . . . . . . . . . . . . . . . . . . . . . . 9711.2 Logarytm dyskretny . . . . . . . . . . . . . . . . . . . . . . . 9911.3 Przekazy nierozró»nialne . . . . . . . . . . . . . . . . . . . . . 10011.4 Dowód faktoryzacji . . . . . . . . . . . . . . . . . . . . . . . . 102

4

Rozdziaª 1

Kryptogra�a a steganogra�a

Kryptogra�a jako dyscyplina matematyczna zajmuj¡ca si¦ metodami przesy-ªania wiadomo±ci w zakamu�owanej formie tak, aby tylko adresat mógª od-czyta¢ wiadomo±¢, rozwin¦ªa si¦ w drugiej poªowie dwudziestego wieku cho-cia» byªa ona stosowana znacznie wcze±niej. Do czasów drugiej wojny ±wia-towej szyfrów oczywi±cie u»ywano, jednak aparat matematyczny nie byª sto-sowany do ich tworzenia. Prawdziwa bomba wybuchªa, kiedy u»ywane odlat dwudziestych maszyny mechaniczne zostaªy zast¡pione przez komputeryo du»ej mocy obliczeniowej. Wówczas okazaªo si¦, »e praktycznie ka»dy szyfrwynaleziony do tego czasu mo»e by¢ zªamany w stosunkowo krótkim czasie.Zaistniaªa potrzeba systemu szyfruj¡cego, który nie tylko chroniªby tajem-nice wojskowe, ale przede wszystkim informacje bankowe ukryte w ogólniedost¦pnej sieci komputerowej. Wiadomo przy tym, »e tego rodzaju systemb¦dzie ,,atakowany� od samego pocz¡tku.

Z drugiej strony, na pocz¡tku lat siedemdziesi¡tych ujawniono w ko«cu,kto zªamaª tajemnic¦ niemieckiej ENIGMY. To zmusiªo wielu matematykówi informatyków do gª¦bszego zainteresowania si¦ ,,now¡� dziedzin¡ nauki,która stanowi najszersz¡ drog¦ od matematyki do informatyki. Kryptogra�ajednak»e jest nauk¡ si¦gajac¡ jeszcze czasów staro»ytnych. W trakcie wy-kªadu prze±ledzimy histori¦ tej nauki oraz wejdziemy w nowoczesne metodyszyfrowania.

5

1.1 Steganogra�a

Jest wiele terminów okre±laj¡cych, z pozoru mogªoby si¦ wydawa¢, t¦ sam¡rzecz: kryptogra�a, kryptologia, kodowanie, steganogra�a, szyfrowanie itd.Jednak»e dla osób dogª¦bnie studiuj¡cych temat, ró»nice mi¦dzy tymi poj¦-ciami staj¡ si¦ wyra¹ne. Steganogra�a, na przykªad zajmuje si¦ kamu�owa-niem tekstu w dosªownym tego sªowa znaczeniu. Zakamu�owanie (zakrycie)i odkrycie tekstu nie wymagaj¡ skomplikowanych algorytmów, tylko pewnejzasady logicznej, szablonu, b¡d¹ odczynników chemicznych. Opiszemy tunajpopularniejsze metody steganografów.

Jedn¡ z metod jest u»ywanie w tek±cie dwóch charakterów pisania po-szczególnych liter. Litery napisane inaczej utworz¡ ukryty tekst. Innymsposobem jest robienie maªej przerwy tu» przed liter¡, któr¡ chcieliby±my»eby adresat przeczytaª. Zamiast pisa¢ dªugi i nic nie znacz¡cy tekst mo»nawykorzysta¢ tekst ju» napisany (np. gazet¦ lub ksi¡»k¦) i zaznaczy¢ potrzeb-ne litery tak, aby nikt niepowoªany nie domy±liª si¦, ze co± jest zaznaczone:

Sto dwadzie±cia zªotych jest mi znów potrzebne. Kochany Tatoprzy±lij mi je w czwartek. Ryby w tym jeziorze s¡ wyj¡tkowo nieu-chwytne.

S t o dwadzie±cia zªotych j e s t mi znów potrze bne. Kochan y Ta t oprzy±lij mi je w c zwartek. R yby w tym jez iorze s¡ wyj¡ tkowoni euchwytne.

Inn¡ metod¡ jest wskazanie ci¡gu liczb pokazuj¡cych pozycj¦ danej li-tery b¡d¹ w alfabecie, b¡d¹ te» w jakiej± ksi¡»ce. Na przykªad posªuguj¡csi¦ ksi¡»k¡ Neal'a Koblitza ,,Wykªad z teorii liczb i kryptogra�i� mo»emyzaszyfrowa¢ sªowo ,,mama� ci¡giem liczb 21 26 31 2. Ci¡g ten rozszyfrowu-jemy licz¡c litery od okre±lonego miejsca w ksi¡»ce. W naszym przypadkujest to pocz¡tek tekstu ,,Wst¦pu�. By wskaza¢ po»¡dany ci¡g liczb mo»emyposªu»y¢ si¦ cho¢by pudeªkiem domina przesªanym w paczce.

Aby ukry¢ wiadomo±¢ mo»na te» si¦ posªu»y¢ rebusem, lub te» labiryntemz literami w korytarzach. Prawidªowe przej±cie takiego labiryntu ujawni namukryty tekst. Podobnie, wiadomo±¢ mo»emy schowa¢ w obrazek z dziwnymidetalami, który staje si¦ czytelny, gdy w odpowiedniej od niego odlegªo±cimrugniemy oczami i zobaczymy trójwymiarowy rysunek. Obraz, jako taki,te» mo»e posªu»y¢ steganografowi do ukrycia wiadomo±ci. Na przykªad pe-wne detale (¹d¹bªa traw lub tym podobne) mog¡ ukªada¢ si¦ w kod Morse'a.

Ciekaw¡ grup¡ metod steganogra�cznych jest zamiana ukrywanej wiado-

6

mo±ci w ªatwo, ale na pewno ¹le zrozumian¡ wiadomo±¢ brzmi¡c¡ caªkiemnieszkodliwie. Mo»na rozró»ni¢ tu dwie kategorie: maskowanie i zasªanianie.

Maskowanie wymaga najpierw zgody obu stron co do przekazywanegokodu. Cz¦sto stosuj¡ to bryd»y±ci, którzy trzymaj¡c odpowiednio papierosalub robi¡c szereg niewinnych czynno±ci, w istocie przekazuj¡ sobie informa-cje. Mistrzami w przekazywaniu zamaskowanych informacji s¡ te» wi¦¹nio-wie, którzy tworz¡ swój swoisty »argon. niektóre sªowa w tym »argonie todziura, paka � wi¦zienie; ±nieg, cukier � kokaina; obczyszczenie � kradzie»itp. W czasie drugiej wojny ±wiatowej, Amerykanie zatrudnili radiooperato-rów, którzy rozmawiali w swoim ojczystym j¦zyku � Nawaho. Japo«czycy niemogli przechwyci¢ i zidenty�kowa¢ »adnej z wysyªanych wiadomo±ci. Bardzodobry (jak na tamte czasy) niemiecki szyfr ENIGMA zostaª, jak wiadomo,zªamany.

Mówi¡c o maskowaniu, trudno jest tu nie wspomnie¢ o audycjach ra-dia BBC w 1944 roku, gdzie w±ród tzw, prywatnych wiadomo±ci zapodziaªosi¦ hasªo ,,dªugie struny jesiennych skrzypiec�, a jaki± czas pó¹niej ,,rani¡me serce monotonnym brzmieniem�. Oznaczaªo to dokªadn¡ dat¦ i miejsceinwazji na Francj¦. Niemiecka Abwehra Admiraªa Canarisa rozszyfrowaªadokªadnie t¦ wiadomo±¢, która dotarªa do wszystkich niemieckich jednostekz wyj¡tkiem stacjonuj¡cej w Normandii VII armii. Do dzi± nie wyja±niono wpeªni, dlaczego armia ta nie zostaªa ostrze»ona. Wspomnie¢ mo»emy tak»eo audycjach Polskiego Radia, nadaj¡cych sªynne ,,Uwaga, uwaga, nadcho-dzi, KO-MA 27�. Tak»e Japo«czycy, »eby przekaza¢ swoim statkom wia-domo±¢ o wojnie z USA u»yli sªów ,,higaszi no kaze ame� (wschodni wiatr,deszcz). Sªowa te zostaªy wplecione w prognoz¦ pogody i powtórzone dwu-krotnie. Z maskowaniem sªów za pomoc¡ zjawisk meteorologicznych trzebajednak mocno uwa»a¢, o czym przekonaªa si¦ Miss Holly Golightly w �l-mie ,,�niadanie u Ti�aniego�. Przekazana przez ni¡ ,,wiadomo±¢ o pogodzie�,która brzmiaªa ,,±nieg w Nowym Orleanie� byªa mocno podejrzana i stró»owieprawa skojarzyli to sobie z handlem kokain¡.

Zasada zasªaniania tekstu najcz¦±ciej jest typu ,,czytaj n�t¡ liter¦ pookre±lonym znaku�. Mo»e to by¢ spacja, pocz¡tek nowej linii tekstu lubsamogªoska. Zasªanianie stosowali powszechnie »oªnierze, którzy chcieli prze-kaza¢ miejsce swego pobytu rodzinie, ale nie mogli tego zrobi¢ w o�cjalnysposób. Dla jednego z nich nie sko«czyªo si¦ to dobrze, poniewa» rodzicew li±cie powrotnym spytali go: ,,Gdzie jest to Nutsi? Nie mo»emy znale¹¢tego w »adnym atlasie!�. Równie» Kornel Makuszy«ski w ksi¡»ce ,,Szatanz siódmej klasy� u»yª ten rodzaj zasªaniania. Bohater ksi¡»ki tak sprytnie

7

napisaª list, »e jego przyjaciele bez wi¦kszego trudu rozszyfrowali wiadomo±¢,któr¡ chciaª przekaza¢:

Serdecznie ukochany panie profesorze!Trzeba byªo takiego jak ja wariata, aby nie znaj¡c okolicyruszy¢ na dalek¡ w¦drówk¦. Takim jednak szcz¦±cie sprzyja.Ziemie okoliczne s¡ bardzo pi¦kne, leczEjgoªa pi¦kniejsza.�al mi jedynie, »e pana tu ze mn¡ nie ma.Caªy jestem i zdrów. Znalazªem miªe towarzystwoi dlatego nie wiem dobrze, kiedy wreszcie powróc¦ doEjgoªy. B¡d¹cie jednak»e o mnie spokojni, cho¢bym nawetdªugo nie powracaª.Ogromnie mi t¦skno za panem, panie profesorze, za pani¡Mari¡ i pann¡ Wandeczk¡. �ciskam wszystkich i ª¡cz¦ukªony dla caªego domu. Wdzi¦czny Ada±.

Inny sposób zasªaniania wymaga szablonu, którym zasªania si¦ napisanytekst. W okienkach szablonu odczytujemy nasz¡ ukryt¡ wiadomo±¢. Metodata wymaga jednak doskonaªego wyczucia miejsca � umiej¦tno±ci dopasowaniatekstu tak, aby odpowiedni wyraz znalazª si¦ w wyznaczonym szablonemmiejscu.

1.2 Szyfry przestawieniowe

Szyfry przestawieniowe (lub anagramowe) s¡ tak»e rodzajami steganogra-mów, mimo »e okre±la si¦ je mianem ,,szyfry�. Dokªadnie, »eby zaszyfrowa¢pewien tekst, przestawiamy jego litery wedªug okre±lonej zasady. Przyto-czymy tu dwa przykªady szyfrów przestawieniowych.

Szyfr pªotowy. Ukªadamy litery tekstu ,,wzdªó» pªotu�, tj. wzdªó»ªamanej zªo»onej ze sko±nych odcinków. Wysoko±¢ pªotu jest okre±lona liczb¡liter przypadaj¡c¡ na jeden odcinek ªamanej. Nast¦pnie tekst zaszyfrowanyodczytujemy wierszami. Na przykªad, chc¡c zaszyfrowa¢ tekst INSYGNIA�MIERCI pªotem o wysoko±ci 3, zapisujemy

I G � RN Y N A M E C

S I I I

8

i przepisujemy ig±rnynamecsiii. Generalnie, przy szyfrowaniu obowi¡zujezasada, »e w tek±cie zaszyfrowanym nie ma znaków interpunkcyjnych anispacji. Mo»e to prowadzi¢ do nieporozumie«, ale zasada ta utrudnia te»ewentualne ªamanie szyfru. Przy pªocie wysoko±ci 5, zaszyfrowany tekstkªsókipr¡ew»i, to KSI��E PÓ�KRWI.

Szyfr kwadratowy. Tekst, który chcemy zaszyfrowa¢ wpisujemy w kwa-drat (lub kilka takich samych kwadratów) wierszami, a jako szyfr odczytu-jemy kolumnami, i to wedªug pewnej permutacji. Na przykªad, u»yjemykwadratu 4× 4 z permutacj¡ (12)(34) i zaszyfrujemy tekst KOMNATA TA-JEMNIC. Poniewa» tekst ten ma mniej ni» 16 liter, na jego ko«cu dopisujemydowolne litery (tzw. nulle) i wpisujemy tekst w kwadrat

K O M NA T A TA J E MN I C X

Odczytuj¡c kolumy wg kolejno±ci 2 − 1 − 4 − 3, otrzymujemy otjikaannt-mxmaec. Istotn¡ wskazówk¡ identy�kuj¡c¡ szyfr kwadratowy jest fakt, »eliczba liter w tek±cie zaszyfrowanym jest wielokrotno±ci¡ kwadratu liczbynaturalnej n. Sama liczba n oznacza dªugo±¢ boku kwadratu. Np. tekstaeim«lkifzinocyofz ma 18 liter, co mo»e oznacza¢, »e zostaª u»yty szyfr kwa-dratowy z kwadratem o boku 3, a do zaszyfrowania u»yto dwóch kwadratów.

1.3 Systemy kryptogra�czne

Podstawowym elementem, który odró»nia steganogra�¦ od kryptogra�i jestsystem kryptogra�czny. Jest to poj¦cie które w przypadku metod kryptogra-�cznych mo»na w miar¦ ªatwo zde�niowa¢. Na pocz¡tek zde�niujmy kilkapodstawowych elementów.

Aby jednak wiadomo±¢ mogªa by¢ wysªana, najpierw trzeba j¡ w jaki±sposób napisa¢. W tym celu u»ywamy alfabetu, który de�niujemy jako do-wolny zbiór sko«czony. Liczb¦ elementów zbioruA (alfabetu) b¦dziemy ozna-

cza¢ przez |A|, #A lub A. Do zapisywania wiadomo±ci b¦dziemy u»ywa¢alfabetu ªaci«skiego

A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,

9

który uto»samimy z liczbami 0, 1, 2, . . . , 25. B¦dziemy te» rozwa»a¢ innealfabety, którym w podobny sposób odpowiada¢ b¦d¡ liczby ze zbioru Zq

wszystkich liczb caªkowitych nieujemnych i mniejszych od q. Zbiór ten mat¦ zalet¦, »e jego elementy mo»na dodawa¢, odejmowa¢ i mno»y¢ zgodnie zzasadami arytmetyki modulo q.

Litery alfabetu mo»na ukªada¢ w bloki liter. Blok dwuliterowy nazywamydigramem, trzyliterowy trigramem i, ogólnie, blok n�literowy nazywamy n�gramem. Litery i bloki liter ukªadaj¡ si¦ w tekst. Oznaczmy przez An zbiórwszystkich n�gramów z alfabetu A. Tekstem nazywamy dowolny elementzbioru

A∗ =⋃n≥0

An.

Generalnie, szyfrujemy tylko wiadomo±ci, które co± oznaczaj¡, wi¦c niemog¡ to by¢ przypadkowe ci¡gi liter. Koniecznym zatem jest zde�niowaniepoj¦cia j¦zyka. J¦zykiem nazywamy dowolny podzbiór zbioru A∗.

Zaªó»my wi¦c, »e mamy wybrany konkretny j¦zyk oraz pewien tekst wtym j¦zyku. Tekst ów nazywamy jawnym lub otwartym. Alfabet A, w którymjest on napisany tak»e nazywamy jawnym. Aby przesªa¢ tekst, szyfrujemygo. Mo»emy w tym celu u»y¢ jednego alfabetu szyfrowego B (szyfry monoal-fabetyczne), lub te» wielu alfabetów szyfrowych (szyfry polialfabetyczne). Wtym drugim przypadku, u»ywa si¦ raczej wielu kopii tego samego alfabetu.Zawsze jednak potrzebne nam jest przeksztaªcenie szyfruj¡ce, czyli funkcjaró»nowarto±ciowa E okre±lona w A∗ o warto±ciach w B∗. Je±lim jest tekstemjawnym, to E(m) nazywamy kryptotekstem, lub szyfrem.

W dalszej cz¦±ci wykªadu b¦dziemy u»ywa¢ synonimów wymienionychwy»ej poj¦¢, które oznacza¢ b¦d¡ to samo, je±li nie zostanie podana inna de-�nicja. Na przykªad, sªowo ,,tekst� b¦dziemy stosowa¢ zamiennie ze sªowem,,wiadomo±¢�.

Istnieje wiele mo»liwo±ci zde�niowania przeksztaªcenia E. Najpro±ciejjest zada¢ bijekcj¦ e : A → B. Poniewa» B ma wówczas tyle samo ele-mentów co A, wi¦c przyjmujemy, »e A = B. Przeksztaªcenie e generuje Ew nastepuj¡cy sposób. Je»eli m = l1l2 . . . lq jest wiadomo±ci¡, to E(m) =e(l1)e(l2) . . . e(lq). W podobny sposób generujemy E z funkcji ró»nowarto-±ciowej e : An → Bm. W tym wypadku, liczba liter w szyfrowanej wiado-mo±ci musi by¢ podzielna przez n. Je±li tak nie jest, nale»y dopisa¢ do tejwiadomo±ci odpowiedni¡ ilo±¢ liter.

Zde�niujemy teraz poj¦cie kryptosystemu. Kryptosystemem nazywamy

10

rodzin¦ przeksztaªce« szyfruj¡cych {Ek : k ∈ K}, gdzie K jest pewnym zbio-rem (sko«czonym lub nie) zwanym przestrzeni¡ kluczy. Dowolny element kprzestrzeni kluczy nazywamy kluczem.

Skoro dla dowolnego k odwzorowanie Ek jest ró»nowarto±ciowe, istniejeodwzorowanie odwrotne Dk, które nazywamy deszyfrowaniem. Je±li m jestwiadomo±ci¡ jawn¡, to dla dowolnego klucza k,

Dk(Ek(m)) = m.

Nie musi jednak zachodzi¢ Ek(Dk(m)) = m.

11

Rozdziaª 2

Klasyczne metody szyfrowania

Korzenie kryptogra�i si¦gaj¡ czasów staro»ytnego Rzymu. Tam wªa±nie po-wstaª i byª u»ywany pierwszy system kryptogra�czny. Od tego systemu,zwanego te» szyfrem Cezara lub cyklicznym zaczniemy nasz przegl¡d metodklasycznych. Nast¦pnie rozwa»ymy budow¦ innych, bardziej skomplikowa-nych systemów, które byªy u»ywane w historii lub te» byªy stworzone doinnych celów ni» ochrona tajemnic.

2.1 Szyfry cykliczne

Zostaªy wynalezione, a na pewno u»ywane przez Juliusza Cezara. Maj¡ onebardzo ªatwy klucz, ale jednocze±nie s¡ ªatwe do zªamania.

Oznaczmy przez p jednostk¦ tekstu jawnego i zaªó»my »e tych jednostekjest N . Wtedy funkcja szyfruj¡ca Ek jest okre±lona wzorem

Ek(p) = p+ k(mod N).

Kluczem jest tu liczba k, a przestrze« kluczy pokrywa si¦ z alfabetem ZN .Je±li k jest równe 3, to aby zaszyfrowa¢ sªowo TAK, przeksztaªcamy je wci¡g 19 0 12, nast¦pnie dodajemy do ka»dej z tych liczb 3 modulo 26 otrzy-muj¡c 24 3 15 i z powrotem przeksztaªcamy liczby na litery by otrzyma¢wdn. Przeksztaªcenie szyfruj¡ce okre±lone powy»ej nazywamy przesuni¦ciem.Wygodnie jest tutaj napisa¢ alfabet, a pod nim liczby odpowiadaj¡ce po-szczególnym literom.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

12

W celu odszyfrowania wiadomo±ci tgyfz kqyz, zaszyfrowanej kluczem 6,zamieniamy j¡ najpierw w ci¡g liczb 19 6 24 5 25 10 16 24 25. Tym razem,pd ka»dej z liczb odejmujemy 6 (modulo 26) i otrzymujemy 13 0 18 25 194 10 18 19. W nast¦pnym kroku patrzymy jakie litery s¡ na pozycjach zostatniego ci¡gu i otrzymujemy wiadomo±¢ jawn¡ NASZ TEKST.

Jest ogólnie przyj¦te, »e tekst zaszyfrowany podajemy w blokach pi¦cioliterowych. Uªatwia to przekazywanie tekstu i zmniejsza ryzyko pomyªki przywysyªaniu i deszyfrowaniu.

Zajmiemy si¦ teraz ªamaniem szyfrów cyklicznych. Je±li wiemy na pewno,»e mamy do czynienia z szyfrem cyklicznym i znamy ilo±¢ liter w alfabecie,czyli N , ªamanie polega na znalezieniu liczby k. Za k wystarczy podstawi¢ka»d¡ z N mo»liwo±ci i sprawdza¢ po kolei sens otrzymanych w ten sposóbwiadomo±ci.

Na przykªad, przypu±¢my, »e chcemy zªama¢ szyfr xolfd vhcdp nrzd.

Wiemy przy tym, »e N = 26. Sprawdzamy po kolei wszystkie mo»liwe klucze.Zauwa»amy przy tym, »e odejmowanie liczby k modulo 26 jest tym samym, cododawanie liczby 26−k modulo 26. Dodajemy wi¦c do liczb odpowiadaj¡cychliterom szyfru, tj. 23 14 11 5 3 21 7 2 3 15 13 17 25 3, kolejno k = 1, k =2, . . . , k = 25. Cz¦sto, aby wyeliminowa¢ przypadek wystarczy wypróbowa¢kilka pierwszych liter. Przy k = 1 mamy pocz¡tek YPM, co jest nieczytalne.Podobnie dla k = 2. Tym razem mamy ZQ. Szcz¦±cie u±miecha si¦ do nasdosy¢ pó¹no, bo dopiero dla k = 23. Otrzymujemy wówczas ci¡g 20 11 82 0 18 4 25 0 12 10 14 22 0, co daje fraz¦ ULICA SEZAMKOWA. Tensposób ªamania szyfrów nazywa si¦ metod¡ brutalnej siªy, lub wyczerpaniaprzestrzeni kluczy.

Juliusz Cezar u»ywaª klucza 3, ale i tak dowódcy legionów raczej domy-±lali si¦ tre±ci przysªanych wiadomo±ci ni» je odszyfrowywali. Jego nast¦pca,Oktawian August u»ywaª klucza 2, nast¦pnie 1, a potem w ogóle zrezygnowaªz szyfrowania wiadomo±ci.

2.2 Monoalfabetyczny szyfr Beauforta

W zasadzie szyfr ten, wynaleziony przez G. Sestri w 1710 roku, jest cz¦-±ci¡ bardziej skomplikowanej techniki szyfrowania. Tutaj przedstawimy tylkopodstawowy krok tej techniki, który mo»e istnie¢ jako samodzielny systemszyfruj¡cy.

Podobnie jak w przypadku szyfrów Cezara, przestrzeni¡ kluczy jest ZN ,

13

ale przeksztaªcenie szyfruj¡ce jest dane wzorem

Ek(p) = −p+ k(mod N).

Zauwa»my, »e przeksztaªcenie deszyfruj¡ce ma tak¡ sam¡ posta¢. Zatem szy-frowanie i deszyfrowanie odbywa si¦ za pomoc¡ tego samego przeksztaªcenia.Zauwa»my te», »e w przeciwie«stwie do kryptosystemu Cezara, gdzie E0 byªoidentyczno±ci¡, w kryptosystemie Beauforta, Ek nie jest identyczno±ci¡ dla»adnego k.

Ze wzgl¦du na maª¡ liczb¦ kluczy, równie» i ten szyfr mo»na ªama¢ przezwyczerpanie przestrzeni kluczy. Podamy jeszcze alfabet jawny i szyfrowy dlaklucza 3. Zauwa»my, »e kolejno±¢ liter w alfabecie szyfrowym jest odwrócona.

A B C D E F G H I J K L M N O P Q R S T U V W X Y ZD C B A Z Y X W V U T S R Q P O N M L K J I H G F E

2.3 Kody a�niczne jednowymiarowe

Je»eli zamiast jednej liczby jeste±my w stanie zapami¦ta¢ dwie, to mo»emystosowa¢ nieco bardziej skomplikowany kod a�niczny, gdzie przeksztaªcenieszyfruj¡ce ma posta¢ E(p) = ap + b (mod N). Naszym kluczem jest tu pa-ra (a, b). �eby rozszyfrowa¢ wiadomo±¢ u»ywamy innego klucza. Dokªadnie,D(c) = a′c + b′( mod N), gdzie a′ jest liczb¡ odwrotn¡ do a modulo N , ab′ = −a′b w ZN . Musimy tu uwa»a¢, czy NWD(a, N) jest równy 1, gdy» wprzeciwnym wypadku nasz szyfr nie b¦dzie jednoznaczny. Kiedy a = 1, koda�niczny staje si¦ kodem cyklicznym. Gdy b = 0, kod a�niczny nazywamyszyfrem liniowym. W przypadku alfabetu 26-literowego, przestrze« kluczyma 312 (= 12 · 26) elementów. Nie jest to du»a liczba z kyptoanalitycznegopunktu widzenia, ale rozwa»enie takiej liczby przypadków mo»e stworzy¢pewne trudno±ci. Zademostrujemy metod¦, która ogranicza istotnie liczb¦rozwa»anych przypadków.

2.1 Przykªad. Zªamiemy szyfr vqtmx ozdtg hgjqm aqhcx bgkgt ag. Wszyfrze tym najcz¦stsz¡ liter¡ jest g, a nast¦pn¡ jest q. Podejrzewamy, »eg (pozycja 6) to zaszyfrowane a (pozycja 0), natomiast q (pozycja 16), to e(pozycja 4). Mamy wi¦c

6a′+b′≡0( mod 26)16a′+b′≡4( mod 26)

14

Odejmuj¡c obie kongruencje stronami otrzymujemy 10a′ ≡ 4 (mod 26), ast¡d natychmiast a′ = 3. Chwil¦ potem mamy b′ = 8 i mamy klucz deszy-fruj¡cy. Zastosowanie tego klucza daje nam tekst jawny Ten szyfr nadaje si¦do zªamania.

2.4 Permutacje alfabetu

Znacznie trudniejsze od szyfrów cyklicznych oraz a�nicznych s¡ szyfry, w któ-rych ka»da litera alfabetu jawnego jest zast¡piona liter¡ alfabetu szyfrowegobez stosowania okre±lonego algorytmu arytmetycznego. Zatem przestrze«kluczy jest równa zbiorowi wszystkich permutacji alfabetu. W celu uªatwie-nia zapami¦tania przeksztaªcenia szyfruj¡cego stosujemy tu innego rodzajuklucz. Jest to sªowo, którego litery zast¦puj¡ pocz¡tkowe litery alfabetu jaw-nego. Dalsze litery dopisujemy tak jak wyst¦puj¡ one w alfabecie jawnymprzy czym pomijamy ju» wykorzystane znaki. Na przykªad stosuj¡c klucz,,szyfrowanie� dostajemy nast¦puj¡ce przeksztaªcenie szyfruj¡ce:

a b c d e f g h i j k l m n o p q r s t u v w x y zS Z Y F R O W A N I E B C D G H J K L M P Q T U V X

Opisany powy»ej kryptosystem nazywamy permutacyjnym. Jego odmia-n¡ jest stosowany w pierwszych maszynach szyfruj¡cych kryptosystem trans-pozycyjny, tj. taki, którego przestrze« kluczy jest równa zbiorowi wszystkichpermutacji, które mo»na zapisa¢ w postaci iloczynu rozª¡cznych transpozycji.Przykªadem tu jest nast¦puj¡ce przeksztaªcenie szyfruj¡ce:

a b c d e f g h i j k l m n o p q r s t u v w x y zZ C B F R D W K N J H M L I O P T E Y Q X V G U S A

Poniewa» szyfry tego rodzaju byªy zaprogramowane w maszynach jakometody standardowe, nikt nie musiaª pami¦ta¢ klucza. Zalet¡ szyfrów trans-pozycyjnych jest fakt, »e klucze szyfruj¡cy i rozszyfrowuj¡cy s¡ identyczne.Zatem ta sama maszyna sªu»yªa zarówno do szyfrowania jak i do rozszyfro-wywania wiadomo±ci.

15

2.5 Analiza cz¦sto±ci wyst¦powania liter

Ta metoda ªamania szyfrów opiera si¦ na prawach rachunku prawdopodo-bie«stwa. Wiadomo, »e pewne litery wyst¦puj¡ w tek±cie cz¦±ciej ni» inne.Oto alfabet angielski poukªadany wedªug cz¦sto±ci wyst¦powania liter: E �12.5%, T, A, O, I, N � 9.2-7%, S, R � 6%, L, D� 4%, C, U, M, F, P, G, W,Y, B � 3-1.5%, V, K, X, J, Q, Z � 1-0.1%,

Je»eli wi¦c przechwycimy wiadomo±¢ na tyle dªug¡ (lub na tyle du»owiadomo±ci), aby wyeliminowa¢ przypadkowo±¢, mo»emy przypuszcza¢, »enajcz¦±ciej powtarzaj¡ca si¦ litera to zakodowane E, T, A, O, I lub N. Je»elimamy do czynienia z kodem cyklicznym, nasze sprawdzanie mo»liwo±ci dla bogranicza si¦ do sze±ciu przypadków. Okazuje si¦, »e na podstawie badaniaentropii j¦zyka, czyli ilo±ci informacji zawartej w jednym symbolu zaszyfrowa-nego tekstu, mo»na zªama¢ ka»dy szyfr, który szyfruje tekst angielski maj¡cywi¦cej ni» 25 liter.

Oczywi±cie metoda ta nie dziaªa, je±li przechwytywane wiadomo±ci s¡krótkie (maj¡ mniej ni» 25 liter) i klucz cz¦sto si¦ zmienia. Na przykªad,je±li przechwycimy tylko xolfd vhcdpnrzd. jak w rozwa»anym wy»ej szyfrzecyklicznym, to nie wida¢ tu, która litera pojawia si¦ najcz¦±ciej. Z drugiejstrony jednak, jak si¦ okazuje, klucze s¡ bardzo niech¦tnie zmieniane. Rz¡dStanów Zjednoczonych nie zdecydowaª si¦ na zmian¦ kluczy nawet po tym,jak wszystkie zgin¦ªy w tajemniczej kradzie»y w Zagrzebiu na pocz¡tku dru-giej wojny ±wiatowej.

Kiedy ju» wiemy, które litery pojawiaj¡ si¦ najcz¦±ciej, zwracamy uwag¦na powtarzaj¡ce si¦ pary. Na przykªad EA jest najcz¦±ciej pojawiaj¡cymsi¦ digramem samogªosek. Dosy¢ cz¦sty jest te» digram IO. Natomiast OI,IA, AI, OA i AO s¡ ju» znacznie rzadsze. Digram AE nie pojawia si¦ prawienigdy. Ogólnie, dziesi¦¢ najcz¦stszych digramów w j¦zyku angielskim, to TH,HE, AN, IN, ER, RE, ON, ES, TI oraz AT.

Dla przykªadu spróbujmy rozszyfrowa¢ nast¦puj¡cy tekst

wktqr ziqzd xlzwt lsoet rvozi qfqbolwktq rziqz olzgg fgxko liofu sqkutfqatr kqveq kkgzl qktqe ethzq wstqlyggrg fsnzg ziglt vigso cto� xzeitltqut ksnqv qozof utqlz tk

Aby uªatwi¢ nieco ªamanie, przypu±¢my »e wiemy ju», i» najcz¦±ciej poja-wiaj¡c¡ si¦ w tek±cie jawnym liter¡ nie jest e.

16

Z analizy cz¦sto±ci wynika, »e najcz¦stszymi literami w zaszyfrowanymtek±cie s¡ q, t, z, g, k, l, o, i i f. Tworzymy teraz tak zwan¡ tabel¦ kontaktów:

q t z g k l o i fq 0 0 2 0 3 2 1 0 1t 6 0 0 0 2 2 1 0 1z 2 1 0 2 0 1 2 4 0g 0 0 2 2 0 1 0 0 2k 1 3 0 1 1 0 1 0 0l 1 2 3 0 0 0 0 1 0o 0 0 2 0 0 3 0 0 3i 3 1 0 1 0 0 1 0 0f 2 0 0 1 0 0 0 1 0

Podaje ona jak cz¦sto w zaszyfrowanym tek±cie wyst¦puj¡ digramy zªo»onez najcz¦±ciej wyst¦puj¡cych liter. Na przykªad digram kq wyst¦puje 3 razy(szukamy w tabeli miejsca, gdzie krzy»uje si¦ wiersz k z kolumn¡ q.

Wiemy, »e q nie jest zaszyfrowanym E. Zgadujemy zatem, »e to t od-powiada E. Poniewa» mamy 6 par tq, a t ma by¢ E, wi¦c q odpowiadazapewne A. Trzeci¡ liter¡ z kolei jest Z. Poniewa» T jest jeszcze ,,wolne�,przyporz¡dkujmy z → T . Poniewa» zi pojawia si¦ 4 razy, a iz w ogóle si¦nie pojawia, przypuszczamy, »e i → H. Na koniec zauwa»amy jeszcze, »e ggpojawia si¦ dwa razy. Dobrze jest wi¦c postawi¢, »e g to O. Podstawiamyteraz odgadni¦te litery do naszego kryptogramu i odgadujemy reszt¦ liter nazasadzie ,,co pasuje�. Tekstem jawnym jest wi¦c: BREAD THAT MUSTBE SLICED WITH AN AX IS A BREAD THAT IS TOO NOURISHINGLARGE NAKED CARROTS ARE ACCEPTABLE AS FOOD ONLY TOTHOSE WHO LIVE IN HUTCHES EAGERLY AWAITING EASTER.

2.6 Homofony i nulle

kiedy przekonano si¦, »e analiza cz¦sto±ci wyst¦powania liter jest pot¦»n¡broni¡, zacz¦to si¦ zastanawia¢, jak utrudni¢ t¦ analiz¦. Nasuwaj¡ si¦ tutajdwie dosy¢ oczywiste metody. Jedn¡ z nich jest ,,dokªadanie� liter, a drug¡zmniejszanie ilo±ci najcz¦±ciej powtarzaj¡cych si¦ znaków. Prowadzi to do

17

dwóch de�nicji. Nullem nazywamy jednostk¦ tekstu zaszyfrowanego, któ-rej nie odpowiada »adna jednostka tekstu jawnego. Oczywi±cie, nasze prze-ksztaªcenie szyfruj¡ce musi by¢ w dalszym ci¡gu wzajemnie jednoznaczne.Zatem, w praktyce, do alfabetu jawnego dorzucamy ,,znak pusty�, któremuodpowiada pewien znak w alfabecie zaszyfrowanym. Na przykªad

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ∅ ∅′s z y f r o w a n i e 3 c d g h j k 4 m p q t u v x b l

W powy»szym szyfrze, wyst¦puj¡ dwa nulle: b i l. Wtajemniczeni wiedz¡, »epo otrzymaniu zaszyfrowanej wiadomo±ci, nale»y te dwa znaki zignorowa¢.Na przykªad zaszyfrowane wiadomo±ci esmsbhp13m1s oraz e1sbmsh1pb3msoznaczaj¡ to samo, a mianowicie wiadomo±¢ KATAPULTA.

Druga de�nicja jest nast¦puj¡ca: homofonem nazywamy jednostk¦ tekstujawnego, której odpowiada wi¦cej ni» jedna jednostka tekstu zaszyfrowanego.I tym razem mamy problemy z wieloznaczno±ci¡ funkcji szyfruj¡cej. Problemten pokonujemy powtarzaj¡c elementy w alfabecie jawnym. A oto przykªad

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A A Ts z y f r o w a n i e 3 c d g h j k 4 m p q t u v x b 5 l

Trzy homofony powy»szego alfabetu to A, A i T. Dzi¦ki nim wiadomo±¢ KA-TAPULTA mo»emy zaszyfrowa¢ tak, »e »adna litera alfabetu zaszyfrowanegonie powtarza si¦: esm5hp31b.

Przy ukªadaniu przeksztaªcenia szyfruj¡cego mo»emy stosowa¢ zarównonulle jak i homofony. �amanie szyfru jest wtedy jeszcze bardziej utrudnione.Oprócz tych dwóch utrudnie« stosowane s¡ te» i inne bardziej skomplikowane.Niektóre z nich opiszemy poni»ej.

2.7 Jednostki dwuliterowe czyli digramy

Digramy jako alfabet po raz pierwszy zastosowaª niejaki Giovanni BattistaPorta w 1563 roku. Alfabet taki skªadaª si¦ z czterystu digramów i do ka»degoz nich Porta z niebywaª¡ inwencj¡ dobraª pewien szczególny znak.

Ogólnie, stosuj¡c digramy jako jednostki tekstu jawnego, mamy alfabetzªo»ony z N2 liter. Jego symbole zast¦pujemy b¡d¹ pojedynczymi znakami,

18

Rysunek 2.1: Tablica Porty

jak to zrobiª Porta, b¡d¹ te» (innymi) digramami. Nasze przeksztaªcenieszyfruj¡ce przedstawiamy w postaci tabeli, jak na przykªad w tabeli Porty.Dokªadnie, je±li A jest alfabetem, to przeksztaªceniem bazowym jest bijek-cja E∗k : A2 → A2. W szczególno±ci liczba liter w tek±cie jawnym m musiby¢ parzysta. Przestrzeni¡ kluczy jest tu oczywi±cie zbiór wszystkich permu-tacji zbioru A2. Przeksztaªcenie szyfruj¡ce Ek jest generowane przez E∗k wnaturalny sposób, tj. Je±li m = m1m2 . . .mp, gdzie mi s¡ digramami, to

Ek(m) = E∗k(m2)E∗k(m2) . . . E

∗k(mp).

Powy»sze przeksztaªcenie nazywamy 2-dzielnym.Aby zªama¢ kod digramowy mo»emy stosowa¢ analiz¦ cz¦sto±ci wyst¦po-

wania jednostek dwuliterowych. Aby metoda ta si¦ powiodªa, przechwyconytekst musi by¢ bardzo dªugi. Je»eli dla tekstu o jednostkach jednoliterowychpotrzebowali±myN znaków, aby ªamanie si¦ powiodªo, to teraz potrzebujemyokoªo N2 znaków. Dla j¦zyka angielskiego jest to ju» ponad 525 liter.

19

Gªówn¡ przeszkod¡ przy stosowaniu szyfrów dwudzielnych jest brak efek-tywnego algorytmu szyfruj¡cego i deszyfruj¡cego. Próby uproszczenia ogól-nej zasady doprowadziªy do powstania szyfrów opartych na kwadracie orazna macierzach. Szyfry oparte na kwadracie omówimy w nast¦pnych trzechpodrozdziaªach.

2.8 Szyfr Playfaira

Problem zapami¦tania du»ej ilo±ci znaków doprowadziª w 1854 roku nieja-kiego Charlesa Wheatstone'a do wynalezienia prostej metody zast¦powaniajednego bloku liter drugim. Litery alfabetu umieszczone s¡ w kwadracie 5×5,a blok liter tekstu jawnego tworzy w tym kwadracie przek¡tn¡ prostok¡ta.Blok dwuliterowy odczytany z drugiej przek¡tnej jest odpowiadaj¡cym blo-kiem kryptotekstu. Je±li litery znajduj¡ si¦ w tym samym wierszu lub w tejsamej kolumnie, szyfrowanie jest nieco trudniejsze. Ogólnie po krótkiej prak-tyce, ªatwo jest posªugiwa¢ si¦ opisanym szyfrem. Szyfr ten nazwany szyfremPlayfaira, byª stosowany przez Anglików, prawdopodobnie, od czasów WojnyKrymskiej (1854), poprzez Wojny Burskie (1880 do 1902) a» do ko«ca pierw-szej wojny ±wiatowej. Wiadomo jednak, »e od poªowy 1915 roku, Niemcy niemieli problemów z jego zªamaniem.

Szyfr ten u»ywa digramów jako jednostek tekstu. Kluczem jest macierz5× 5 zawieraj¡ca 25 liter (bez j). Do jej uªo»enia u»yjemy sªowa kluczowego,,szyfrowanie�.

s z y f ro w a n ie b c d gh k l m pq t u v x

Digram xy = kijkmn, gdzie x 6= y oraz i, j, m, n ∈ {1, 2, 3, 4, 5} szyfrujemyjako

kinkmj je±li i 6= m oraz j 6= n;

ki,j+1ki,n+1 je±li i = m oraz j 6= n;

ki+1,jkm+1,j je±li i 6= m oraz j = n.

(Dodanie 1 do wska¹nika 5 daje tu wynik 1.) Je»eli x = y, digram rozdzie-lamy, tzn. wtykamy pomi¦dzy x i y liter¦ q, która jest ró»na od x i od y.

20

Przeksztaªcenie deszyfruj¡ce w pierwszym przypadku, tj. gdy deszyfro-wane litery znajduj¡ si¦ w innych wierszach oraz kolumnach, pokrywa si¦z szyfruj¡cym. W pozostaªych przypadkach pozycje liter digramu przesu-wamy w lewo lub w gór¦ stosuj¡c zasad¦ cykliczno±ci. Zauwa»my, »e wzaszyfrowanym tek±cie nie mo»e si¦ tra�¢ digram postaci xx.

�amanie szyfru Playfaira i pozostaªych dwóch szyfrów opartych na kwa-dracie, polega na analizie statystycznej powi¡za« liter kryptotekstu i na tejpodstawie odtworzeniu kwadratu.

2.9 Podwójny szyfr Playfaira

Aby unikn¡¢ niewygody zwi¡zanej z digramami zªo»onymi z takich samych li-ter, w latach trzydziestych XX wieku, na potrzeby faszystowskiej organizacjiSD stworzono system oparty na dwóch kwadratach. Tym razem zrezygno-wano z litery y, która byªa zast¦powana przez i. Przeksztaªcenie szyfruj¡cetak»e zostaªo zmody�kowane, tzn. zostaª dodany dodatkowy krok. Krokpodstawowy algorytmu szyfruj¡cego niewiele ró»niª si¦ od przeksztaªceniaPlayfaira. Dokªadnie, wykorzystano dwa kwadraty:

d o p e lk a s t nv r f h bc g i j mq u w x z

s i c h er t d n ab f g j kl m o p qu v w x z

. (2.1)

Pierwszej litery digramu szukamy w pierwszym kwadracie, a drugiej w dru-gim. W rezultacie mamy tylko dwa przypadki. Je±li lijlmn jest digramem,przy czym lij jest w pierwszym kwadracie, a lmn w drugim, i, j, m, n ∈{1, 2, 3, 4, 5}, to bijekcja zbioru digramów wyglada nast¦puj¡co.

E∗(lijlmn) =

{lmjlin je±li i 6= m,

li,j+1lm,n+1 je±li i = m

i znów, pierwsza litera jest w pierwszym kwadracie, a druga w drugim orazdodanie 1 rozumiemy jako przesuni¦cie cykliczne w kwadracie.

Jak ju» wspomnieli±my, algorytm szyfrowania skªadaª si¦ z dwóch kroków.W pierwszym tekst jawny dzielony byª na póª lub na bloki 17-literowe wprzypadku, gdy wiadomo±¢ zawieraªa wi¦cej ni» 34 litery. Bloki te byªy

21

umieszczane jeden nad drugim, a digramy do szyfrowania zbierano pionowo.Na przykªad, aby zaszyfrowa¢ tekst ZBIERAMY SIE W PIATEK dzielimygo na poªowy i odpowiednio umieszczamy:

Z B I E R A M Y SI E W P I A T E K

Digramy do przeksztaªcenia to ZI, BE, IW, EP, RI, AA, MT, YE, SK. Sto-suj¡c kwadraty z (2.1) otrzymujemy digramy lv, lk, wo, jh, of, sr, nm, pq orazfa, które po prostu ª¡czymy w tekst otrzymuj¡c szyfr: lvlkw ojhof srnmp qfa.

Przy deszyfrowaniu, post¦pujemy w odwrotnej kolejno±ci. Zauwa»amy, »eprzeksztaªcenie deszyfruj¡ce digramy jest takie samo jak szyfruj¡ce w pierw-szym przypadku, tj. kiedy litery znajduj¡ si¦ w wierszach o innych numerach.

2.10 szyfr Delastelle'a

Kwadrat zaproponowany przez felixa Delastelle'a w 1902 roku jest typowymprzykªadem szyfru transpozycyjnego (przeksztaªcenie szyfruj¡ce jest równedeszyfruj¡cemu) i eliminuje wszelkie niedogodno±ci zwi¡zane ze stosowaniemró»nych przypadków. W kwadracie Delastelle'a nie ma litery w, któr¡ zast¦-pujemy przez v.

s z y f ro a n i eb c d g hj k l m pq t u v x

Bazowe przeksztaªcenie szyfruj¡ce polega na zamianie wspóªrz¦dnych: E ∗(lijlmn) = limljn. Dla przykªadu zaszyfrujemy fraz¦ SZYFR FRANCUSKI.Pod ka»d¡ liter¡ piszemy pionowo jej wspóªrz¦dne w kwadracie, i znajdujemylitery o wspóªrz¦dnych zapisanych poziomo.

S Z Y F R F R A N C U S K I1 1 s 1 1 s 1 1 s 1 2 z 2 3 n 5 1 q 4 2 k1 2 z 3 4 g 5 4 v 5 2 t 3 2 c 3 1 b 2 4 i

Otrzymany kryptogram to szsgs vztnc qbki.

22

2.11 Jednostki wieloliterowe

Aby jeszcze bardziej utrudni¢ ªamanie tekstu mo»emy zastosowa¢ trigramy,czyli jednostki trzyliterowe. Pojawia si¦ tu jednak problem odpowiedniegozapisania przeksztaªcenia szyfruj¡cego � tabelka musi by¢ trzywymiarowa.Tym gorszy jest ten problem im dªu»sze s¡ jednostki tekstu. Specjalne sze-±ciany szyfruj¡ce na wzór kwadratów Playfaira byªy proponowane przez LuigiGioppi di Tuerkheim w 1897 roku oraz przez Williama Friedmana w latachdwudziestych XX wieku. Zdecydowanie ch¦tniej przyj¦to popularne podczasI Wojny �wiatowej ksi¡»ki kodowe, gdzie szyfrowano od razu caªe wyrazya nawet zdania. Jednostkami tekstu jawnego s¡ tu cz¦sto powtarzaj¡ce si¦sekwencje liter. W dalszej perspektywie oznacza to tworzenie swego rodzaju,,sªowników� zwanych ksi¡»kami kodowymi. I tu pojawia si¦ kolejny problem.Nikt nie jest w stanie pami¦ta¢ caªej tre±ci takiej ksi¡»ki. Zatem musi onazawsze by¢ pod r¦k¡ zarówno koduj¡cego jak i dekoduj¡cego. Stwarza todu»e pole manewru dla szpiegów i nie tylko. W sierpniu 1914 roku niemieckikr¡»ownik Magdeburg próbowaª uciec od rosyjskiego pancernika i sztuka tamu si¦ nie udaªa. Co gorsza, statek zamiast zaton¡¢, osiadª na mieli¹nie iw zwi¡zku z tym wszystkie ksi¡»ki kodowe niemieckiej marynarki zamiastzaton¡¢, tra�ªy w r¦ce Rosjan, którzy po przestudiowaniu ich ,,podali dalej�.W rezultacie ksi¡»ki dostaªy si¦ w r¦ce niejakiego Winstona Churchilla, którywiedziaª jak je wykorzysta¢.

2.12 Szyfry polialfabetyczne

Blaise de Vigenére w wydanej w 1586 roku ksi¡»ce Traicté des Chifres opi-saª kilka ró»nych metod szyfrowania. Ostatecznie jego nazwiskiem nazwanoszyfr, który opisany byª wcze±niej przez biskupa J.H. von Trittenheim'a. Ideaszyfrów tego typu polega na u»yciu kilku metod szyfruj¡cych nast¦puj¡cychpo sobie. Na przykªad, rozwa»my ci¡g kluczy k0, k1, . . . , kr−1 do szyfrówCezara. Przeksztaªcenie szyfruj¡ce de�niujemy w nast¦puj¡cy sposób.

Ek0k1...kr−1(m0m1 . . .mn) = (m0 + k0)(m1 + k1) . . . (mn + kn mod r),

przy czy dodawanie wykonujemy modulo liczba liter w alfabecie.Stosuj¡c uto»samienie liter alfabetu z liczbami modulo 26 mo»emy uto»-

sami¢ ci¡g kluczy i sªowo. Na przykªad zaszyfrujmy FUNKCJA POLIALFA-BETYCZNA stosuj¡c klucz anulka. W tym celu uªó»my tabel¦ przesuni¦¢:

23

A B C D E F G H I J K L M N O P Q R S T U V W X Y Za b c d e f g h i j k l m n o p q r s t u v w x y zn o p q r s t u v w x y z a b c d e f g h i j k l mu v w x y z a b c d e f g h i j k l m n o p q r s tl m n o p q r s t u v w x y z a b c d e f g h i j kk l m n o p q r s t u v w x y z a b c d e f g h i ja b c d e f g h i j k l m n o p q r s t u v w x y z

Pierwszy wiersz powy»szej tabeli to alfabet, a ka»dy nast¦pny wiersz, toalfabet pisany pocz¡wszy od odpowiedniej litery sªowa�klucza.

Nast¦pnie nasz tekst dzielimy na bloki dªugo±ci sªowa ,,anulka� i szyfru-jemy pierwsz¡ liter¦ ka»dego bloku wedªug pierwszego szyfru, drug¡ wedªugdrugiego itd.

F U N K C Ja n u l k af h h v m j

A P O L I Aa n u l k aa c i w s a

L F A B E Ta n u l k al s u m o t

Y C Z N Aa n u l ky p t y k

Otrzymali±my zatem kryptogram fhhvm jaciw salsu motyp tyk. Deszyfro-wanie odbywa si¦ na podobnej zasadzie, tj.

Dk0k1...kr−1(m0m1 . . .mn) = (m0 − k0)(m1 − k1) . . . (mn − kn mod r),

gdzie odejmowanie jest wykonywane modulo liczba liter w alfabecie. Abyuªatwi¢ szyfrowanie i odszyfrowywanie, J.H. von Trittenheim zaproponowaªponi»sz¡ tabel¦ przesuni¦¢ alfabetu. Nazywa si¦ ona tablic¡ Tryteniusza lubtabula recta.

24

a b c d e f g h i j k l m n o p q r s t u v w x y zb c d e f g h i j k l m n o p q r s t u v w x y z ac d e f g h i j k l m n o p q r s t u v w x y z a bd e f g h i j k l m n o p q r s t u v w x y z a b ce f g h i j k l m n o p q r s t u v w x y z a b c df g h i j k l m n o p q r s t u v w x y z a b c d eg h i j k l m n o p q r s t u v w x y z a b c d e fh i j k l m n o p q r s t u v w x y z a b c d e f gi j k l m n o p q r s t u v w x y z a b c d e f g hj k l m n o p q r s t u v w x y z a b c d e f g h ik l m n o p q r s t u v w x y z a b c d e f g h i jl m n o p q r s t u v w x y z a b c d e f g h i j km n o p q r s t u v w x y z a b c d e f g h i j k ln o p q r s t u v w x y z a b c d e f g h i j k l mo p q r s t u v w x y z a b c d e f g h i j k l m np q r s t u v w x y z a b c d e f g h i j k l m n oq r s t u v w x y z a b c d e f g h i j k l m n o pr s t u v w x y z a b c d e f g h i j k l m n o p qs t u v w x y z a b c d e f g h i j k l m n o p q ru v w x y z a b c d e f g h i j k l m n o p q r s tv w x y z a b c d e f g h i j k l m n o p q r s t uw x y z a b c d e f g h i j k l m n o p q r s t u vx y z a b c d e f g h i j k l m n o p q r s t u v wy z a b c d e f g h i j k l m n o p q r s t u v w xz a b c d e f g h i j k l m n o p q r s t u v w x y

�amanie szyfrów Vigenére'a polega na dopasowaniu odpowiedniego alfa-betu do pozycji danej litery. Gªównym problemem jest tutaj jednak znalezie-nie okresu r. I to jest zapewne gªówna przyczyna, dla której szyfr Viginére'abyª ,,nieªamalny� przez prawie trzysta lat! Dopiero w 1863 roku, o�cer ar-mii pruskiej, F. W. Kasiski wynalazª metod¦ wypadkowej przypadkowo±ci1,której nie opiszemy z uwagi na zbyt skomplikowany aparat statystyczny.

Wykorzystuj¡c ci¡g kluczy k0k1 · · · kr−1 do monoalfabetycznych szyfrówBeauforta tworzymy szyfr Beauforta, w którym przeksztaªcenia szyfruj¡ce ideszyfruj¡ce pokrywaj¡ si¦.

Ek0k1...kr−1(m0m1 . . .mn) = (−m0 + k0)(−m1 + k1) . . . (−mn + kn mod r),

1ang. the incidence of coincidences

25

Dodawanie i odejmowanie, odbywa si¦ na zasadach arytmetyki modularnej zmoduªem, którym jest liczba liter w alfabecie.

Stosuj¡c uto»samienie liter alfabetu z liczbami modulo 26 mo»emy uto»sa-mi¢ ci¡g kluczy i pewien wyraz � hasªo. Dla przykªadu zaszyfrujmy FUNK-CJA POLIALFABETYCZNA stosuj¡c klucz anulka. W tym celu uªó»mytabel¦ alfabetów szyfruj¡cych:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Za z y x w v u t s r q p o n m l k j i h g f e d c bn m l k j i h g f e d c b a z y x w v u t s r q p ou t s r q p o n m l k j i h g f e d c b a z y x w vl k j i h g f e d c b a z y x w v u t s r q p o n mk j i h g f e d c b a z y x w v u t s r q p o n m la z y x w v u t s r q p o n m l k j i h g f e d c b

Nast¦pnie nasz tekst dzielimy na bloki dªugo±ci sªowa anulka i szyfru-jemy pierwsz¡ liter¦ ka»dego bloku wedªug pierwszego szyfru, drug¡ wedªugdrugiego itd.

F U N K C Ja n u l k av t h b i r

A P O L I Aa n u l k aa y g a c a

L F A B E Ta n u l k ap i u k g h

Y C Z N Aa n u l kc l v y k

Otrzymali±my zatem kryptogram vthbi rayga capiu kghcl vyk. Podobnie jakdla szyfru Vigenére'a i w tym przypadku mo»emy utworzy¢ odpowiedni¡tabel¦ przesuni¦¢ alfabetu.

Uogólnieniem dwóch powy»szych systemów jest wariant a�niczny szyfruVigenére'a. Do konstrukcji przeksztaªcenia szyfruj¡cego u»ywamy tu ci¡gukluczy (n0, k0), (n1, k1) . . . , (nr−1, kr−1) do szyfrów a�nicznych. Sama kon-strukcja odbywa si¦ na podobnej zasadzie jak w poprzednich przypadkach:

E(m0m1 . . .mp) = (n0m0 + k0)(n1m1 + k1) . . . (np mod rmp + kp mod r).

Wedªug F. Bauera, oryginalny szyfr Vigenére'a skªadaª si¦ z serii przesu-ni¦tych alfabetów ustawionych bez okre±lonych reguª arytmetycznych:

26

A B C D E F G H I J K L M N O P Q R S T U V W X Y Zs z y f r o w a n i e b c d g h j k l m p q t u v xz y f r o w a n i e b c d g h j k l m p q t u v x sy f r o w a n i e b c d g h j k l m p q t u v x s zf r o w a n i e b c d g h j k l m p q t u v x s z yr o w a n i e b c d g h j k l m p q t u v x s z y fo w a n i e b c d g h j k l m p q t u v x s z y f r

Generalnie, je±li mamy ci¡g E0, E1, . . . , Er−1 bijekcji alfabetu, to gene-rowany przez ten ci¡g szyfr polialfabetyczny jest dany przez przeksztaªcenie

E(m0m1 . . .mp) = E0(m0)E1(m1) . . . Ep mod r(mp),

gdzie m = m0m1 . . .mp jest wiadomo±ci¡ jawn¡. Dla przykªadu, szyfr frazyszyfr oryginalny w powy»szym systemie, to lssnq muogk ubusc.

W latach czterdziestych XX wieku C.E. Shannon stworzyª teori¦ entropii,która zajmuje si¦ badaniem informacji zawartej w tek±cie. Mi¦dzy innymizde�niowaª on zasad¦ bezwarunkowego bezpiecze«stwa, czyli szyfru niemo»-liwego do zªamania. Szyfr polialfabetyczny jest takim, je±li speªnione s¡nast¦puj¡ce warunki

• Klucz u»yty do szyfrowania wiadomo±ci jest dªu»szy lub równy szyfro-wanej wiadomo±ci.

• Klucz musi by¢ wygenerowany w sposób caªkowicie losowy (nie mo»eistnie¢ sposób na odtworzenie klucza na podstawie znajomo±ci dziaªaniageneratorów liczb pseudolosowych).

• Klucz nie mo»e by¢ u»yty do zaszyfrowania wi¦cej ni» jednej wiadomo-±ci.

Opublikowany w 1917 roku szyfr G.S. Vernama speªnia te warunki. Krypto-system ten jest u»ywany do dzi± w poª¡czeniu gor¡cej linii mi¦dzy Waszyng-tonem a Moskw¡. Idea tego szyfru polega na tym, »e klucz jest generowanypseudoprzypadkowo i ten sam generator strumienia pseudoprzypadkowegozamontowany jest na obu ko«cach linii przesyªowej. Klucz szyfruj¡cy i de-szyfruj¡cy jest ten sam. Wiadomo±¢ jest najpierw kodowana na strumie« zeri jedynek a nast¦pnie dodawany jest do niej modulo dwa pseudoprzypadkowystrumie« klucza. Dekodowanie odbywa si¦ w oparciu o t¦ sam¡ zasad¦.

27

Zdecydowanie nie jest bezwarunkowo bezpieczny system autoklucz, gdziesama szyfrowana wiadomo±¢ jest kluczem (drugi warunek nie jest speªniony).System autoklucza polega na zastosowaniu pewnego systemu, gdzie literyalfabetu mo»na uto»sami¢ z kluczem. W ten sposób pami¦tamy jeden klucz(starter), wedªug którego szyfrujemy pierwsz¡ liter¦ tekstu. Druga litera jestszyfrowana wg klucza, którym jest pierwsza litera itd. Dla szyfru Cezara,gdzie starterem jest k, mamy

E(m0m1m2 . . .mp) = (m0 + k)(m1 +m0)(m2 +m1) . . . (mp +mp−1).

2.13 �a«cuch szyfrów i DES

Do±¢ istotn¡ wad¡ schematu opisanego w poprzednim paragra�e, jest fakt, »eten sam tekst szyfruje si¦ tak samo, je±li u»yty jest ten sam klucz. Chodzi oto, »e potencjalny intruz wcale nie musi zna¢ tekstu jawnego, by wymusi¢ naodbiorcy szyfru okre±lone dziaªanie � wystarczy, »e prze±le mu przechwyconywcze±niej (zaszyfrowany) tekst. Poniewa» intruz wie jaka reakcja byªa wcze-±niej, podejrzewa, »e taka sama b¦dzie i tym razem. Jednym ze sposobówomini¦cia tej niedogodno±ci jest zastosowanie �a«cuch szyfrów 1. Pomysª jestnast¦puj¡cy:

Dzielimy tekst jawny (zakodowany w strumie« bitów) na bloki Mi po nbitów. Potrzebny jest inicjuj¡cy wektor zero-jedynkowy C0 o n bitach orazklucz K tej samej dªugo±ci. Pierwszy blok tekstu jawnego szyfrujemy jakoC1 = M1 ⊕ C0 ⊕ K, drugi jako C2 = M2 ⊕ C1 ⊕ K, i tak dalej. Ogólnie,Cj = Mj ⊕ Cj−1 ⊕ K. W celu rozszyfrowania, dzielimy tekst zaszyfrowanyna n-bitowe kawaªki Ci i otrzymujemy kolejno M1 = C1⊕C0⊕K, nast¦pnie,M2 = C2 ⊕ C1 ⊕K itd. Je±li który± z Ci jest bª¦dny, to otrzymujemy bª¡dw co najwy»ej dwóch kawaªkach tekstu jawnego, mianowicie Mi oraz Mi+1.Wektor C0 musi by¢ przesªany innym kanaªem ni» wiadomo±¢ jawna i klucz.Przy odpowiednio du»ym n istnieje bardzo maªa szansa, »e wiadomo±¢, kluczi wektor inicjuj¡cy powtórz¡ si¦.

�a«cuch szyfrów jest wykorzystany w systemie DES1, który byª u»ywanyod 1977 roku do ko«ca lat osiemdzisi¡tych. W 1974 roku, National Bureau ofStandards zobowiazaªo �rmy ameryka«skie do napisania programu szyfruj¡-cego, który b¦dzie standardem w kodowaniu wiadomo±ci rz¡dowych. Miaª on

1ang. cipherblock chaining

1Data Encryption Standard

28

zastapi¢ niewygodne w u»yciu ksi¡»ki kodowe. Odpowiedzi¡ �rmy IBM byªsystem LUCIFER, który po uproszczeniu i mody�kacji staª si¦ standardem.Program szyfruj¡cy zostaª rozpowszechniony w postaci ko±ci, któr¡ ka»dyzainteresowany mógª wmontowa¢ w swój komputer. Rozszyfrowywanie pole-gaªo na u»yciu tej samej ko±ci.

Opiszemy teraz zasad¦ dziaªania algorytmu DES. Wej±ciowe 64 bity s¡najpierw pomieszane przez pocz¡tkow¡ permutacj¦ IP . Pierwsze 32 bitytworz¡ wektor L0, a nast¦pne 32 tworz¡ R0. Po szesnastu rundach manipu-lacji, wektory lewy i prawy ª¡cz¡ si¦ w caªo±¢ i przechodz¡ przez permutacj¦IP−1 generuj¡c ostateczn¡ wersj¦ szyfru.

Podczas 16 rund szyfrowania tworz¡ si¦ kolejno wektory L1, L2, . . . , L16

oraz R1, R2, . . . , R16. Dla 1 ≤ i ≤ 16, mamy

Li = Ri−1, Ri = Li−1 ⊕ f(Ri−1, Ki),

gdzie f(Ri−1, Ki) jest wektorem dwójkowym o 32 wspóªrz¦dnych, a wektoryKi s¡ 48-bitowymi wektorami generowanymi przez klucz K wedªug proce-dury, któr¡ opiszemy pó¹niej.

Dekodowanie odbywa si¦ w odwrotn¡ stron¦, tj. najpierw zaszyfrowanytekst jest poddawany permutacji IP−1, tworz¡ si¦ L16 i R16, a nast¦pnieobliczane s¡ kolejno

R15 = L16, L15 = R16 ⊕ f(R15, K16) . . . , R0 = L1, L0 = R1 ⊕ f(R0, K1).

Poª¡czony wektor L0R0 jest poddany permutacji IP i powstaje ci¡g 64 bitówwiadomo±ci jawnej.

Warto±ci¡ funkcji f jest 32-bitowy ci¡g. Procedura jego powstawania wy-gl¡da nast¦puj¡co. Jak ju» wspominali±my, Ki ma 48 bitów, a Ri−1 - 32 bity.Aby te wektory doda¢, musimy rozszerzy¢ Ri−1 do 48 bitów. RozszerzenieRi−1 odbywa si¦ wedªug Tabeli selekcji bitów. Powstaªy 48-bitowy strumie«jest podzielony na 8 wektorow 6-bitowych, które s¡ przepuszczone przez S-boksy (Tabela S-boksów). Aby przybli»y¢ metod¦ dziaªania S-boksów, roz-wa»my wektor sze±ciobitowy a1a2a3a4a5a6, na przykªad 010011, który tra�ana S4. Bity a1a6 to numer wiersza (i), a a2a3a4a5 to numer kolumny (j) zapi-sane w ukªadzie dwójkowym. Strumie« wyj±ciowy (w ukªadzie dziesi¦tnym)jest na pozycji (i, j) S-boksa. W naszym przypadku, 012 = 1 oraz 10012 = 9i w S4 znajduje si¦ na pozycji (1, 9) liczba 7 = 01112. Zatem strumieniemwyj±ciowym jest 0111.

29

32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

Rysunek 2.2: Tabela selekcji bitów

Po wyj±ciu z S-boksów, strumienie 4-bitowe ª¡cz¡ si¦ tworz¡c 32-bitowywektor, który dodatkowo przechodzi przez permutacj¦ P .

Klucz K ma 64 bity podzielone na 8-bitowe cz¦±ci, z których ka»da ma7 efektywnych bitów, a ósmy bit sprawdza parzysto±¢. Dokªadnie, jest onustalony tak, by w caªej ósemce liczba jedynek byªa parzysta. W przypadku,gdyby wyst¡piª bª¡d w transmisji klucza, zostaje on wykryty z dokªadnymwskazaniem ósemki, w której wyst¡piª. Z 64 bitów klucza, po sprawdzeniupoprawno±ci, 8 bitów sprawdzaj¡cych jest odrzuconych, a pozostaªe 56 bitówprzechodzi przez permutacj¦ pocz¡tkow¡ PC1. Spermutowany strumie« 56bitów jest podzielony na póª. Pierwsze 28 bitów tworzy wektor C0, a nast¦-pne D0. Wektory C1 i D1 powstaj¡ przez (cykliczne) przesuni¦cie zawarto±ciC0, odpowiednio, D0 o LS1 = 1 pozycji w lewo. Ogólnie, Ci oraz Di powstaj¡przez przesuni¦cie zawarto±ci, odpowiednio, Ci−1, Di−1 o LSi pozycji w lewo.Wektory Ci oraz Di s¡ nast¦pnie ª¡czone i po przej±ciu selekcji PC2 tworz¡48-bitowy strumie« Ki.

Gªówne zarzuty wobec DES, to, po pierwsze, zbyt krótki klucz, co powo-duje, »e mo»e on by¢ znaleziony w miar¦ szybko metod¡ sprawdzenia wszyst-kich 256 mo»liwo±ci. Po drugie, nie wiadomo, jakie kryteria kierowaªy kon-struktorami S-boksów. Testy statystyczne pokazuj¡, »e liczby w S-boksachnie s¡ przypadkowe. Niewykluczone, »e kryje si¦ tu pewna furtka pozwala-j¡ca ªatwo rozszyfrowa¢ zakodowan¡ wiadomo±¢.

Mimo swoich wad DES byª do±¢ dªugo u»ywany, a» w ko«cu ust¡piª onmiejsca kryptosystemom o kluczu publicznym. Rozpowszechnienie szybkich,ªatwo programowalnych komputerów doprowadziªo do sytuacji, w której ko±¢szyfruj¡ca okazaªa si¦ zb¦dna: Po co montowa¢ do komputera dodatkoweurz¡dzenie, je±li mo»na napoisa¢ program, który powoduje takie samo dzia-ªanie, a jeszcze dodatkowo mo»na go w ka»dej chwili ulepszy¢.

30

kolumna0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

wiersz0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 71 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

S1 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 03 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 130 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 101 3 13 4 7 1 2 8 14 12 0 1 10 6 9 11 5

S2 2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 153 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 90 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 81 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1

S3 2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 73 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 120 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 151 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9

S4 2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 43 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 140 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 91 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6

S5 2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 143 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 30 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 111 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8

S6 2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 63 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 130 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 11 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6

S7 2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 23 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 120 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 71 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2

S8 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 83 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Rysunek 2.3: Tabela S-boksów

31

Rozdziaª 3

Maszyny szyfruj¡ce

Kod maszyn szyfruj¡cych jest klasycznym transpozycyjnym szyfrem polial-fabetycznym. Ze wzgl¦du jednak na wag¦, jak¡ odegraª on w historii, po-±wi¦camy mu osobny rozdziaª.

3.1 Zasada dziaªania

Pomysª skonstruowania maszyny szyfruj¡cej powstaª zapewne wraz z ide¡zwykªej maszyny do pisania � wystarczy inaczej poª¡czy¢ klawiatur¦ z czcion-kami, a zamiast tekstu pisanego na klawiaturze, na papierze pojawi si¦ szyfr.Aby nie u»ywa¢ dwóch maszyn (jednej do szyfrowania, drugiej do rozszyfro-wywania), powszechnie u»ywa si¦ w maszynach szyfrów transpozycyjnych.

Na rysunku 3.1. przedstawiony jest uproszczony schemat zwykªej ma-szyny do pisania. Je±li wci±niemy klawisz ,,O�, na papierze pojawi si¦ li-tera ,,O�. Zmienimy teraz sposób zadrutowania, czyli przebieg szarych linii(rysunek 3.2). Tym razem po wci±ni¦ciu klawisza ,,O�, na papierze pojawi si¦litera ,,I�. A je±li wci±niemy po kolei S O W A, napiszemy szyfr sªowa ,,sowa�,czyli wisk.

Nast¦pnym krokiem jest skonstruowanie kilku pasków z szarymi liniami,które de�niuj¡ szyfr oraz zaprojektowanie maszyny w ten sposób, by paski temo»na byªo w dowolnym momencie wymienia¢. St¡d ju» tylko krok do zast¡-pienia paska walcem � wystarczy umie±ci¢ styki na obwodzie. Walec (rotor)mo»e si¦ obraca¢ i w ten sposób zmienia¢ metod¦ szyfrowania (rysunek 3.3).

Naci±ni¦cie klawisza oznacza obrót walca o jeden styk. Zatem, po naci-±ni¦ciu ,,S� pojawia si¦ ,,W� (jak dot¡d), ale walec si¦ obraca i po naci±ni¦ciu

32

Rysunek 3.1: Maszyna do pisania

,,O� mamy ju» ,,E�. W ostateczno±ci zaszyfrowane sªowo SOWA, to oeke.Nast¦pne ulepszenia, to doªo»enie kolejnych walców oraz re�ektora, który

wykorzystuje walce podwójnie (sygnaª idzie z klawiatury, szyfrowany jestprzez walce, a nast¦pnie odbijany przez re�ektor i ponownie szyfrowany przezwszystkie walce. Stosowano te» kilka innych metod, jak np. ruchome bolce,które powoduj¡, »e walce obracaj¡ si¦ o wi¦cej ni» jeden styk.

U»ywana przez Amerykanów maszyna szyfruj¡ca Hagelin skonstruowanaprzez B. Hagelina posiada a» 6 rotorów z odpowiednio, 26, 25, 23, 21, 19 i 17bolcami. Ka»dy z tych bolców mo»e by¢ w pozycji pasywnej lub aktywnej.Po zaszyfrowaniu litery, wszystkie walce obracaj¡ si¦ o jedn¡ pozycj¦ w zale»-no±ci od pozycji bolców. Po zaszyfrowaniu 25-literowego tekstu, drugi walec(i tylko on) jest w oryginalej pozycji. Poniewa» liczby bolców na poszcze-gólnych rotorach s¡ kopierwsze, system Hagelin mo»na porówna¢ do szyfruVigenere'a z okresem równym 26 · 25 · 23 · 21 · 19 · 17 = 101 405 850.

Elekro-mechaniczna ENIGMA, u»ywana przez Niemców i Japo«czyków,zostaªa wynaleziona w 1923 roku przez A. Scherbius'a. W pierwszej wersjibyªy to trzy rotory oraz re�ektor. W 1941 oraz 1943 roku doªo»ono po jednymwalcu. Naci±ni¦cie klawisza ,,A� powoduje szyfrowanie litery wg schematuz rysunku 3.4, tj. po wyj±ciu z klawwiatury (2), sygnaª przechodzi przezprzeka¹nik (3), styki (4), trzy walce szyfruj¡ce (5), re�ektor (6) i ponownieprzez walce i styki. Otrzymujemy liter¦ ,,S�. Teraz mamy jeszcze dodatkow¡pªyt¦ przeª¡czników (8), która zamienia nasze ,,S� na ,,D�. Ostatecznie zapalasi¦ »arówka (9) z liter¡ ,,D�. Po caªej tej procedurze, pierwszy walec (tylko)

33

Rysunek 3.2: Maszyna do szyfrowania

Rysunek 3.3: Maszyna do szyfrowania z obracanym walcem

obracaª si¦ o jedn¡ pozycj¦. Po ,,wstukaniu� 26-literowego tekstu, pierwszywalec wracaª do pierwotnego ustawienia, a drugi obracaª si¦ o jedn¡ pozycj¦.

Najsªabsz¡ stron¡ ENIGMY i gªównym powodem zªamania szyfru byªsposób przesyªania identy�katorów, czyli ustawie« poszczególnych walców.Odpowiednie rotory oraz poª¡czenia wtyczek byªy przekazywane w odpo-wiednich arkuszach ustawie«. Aby zacz¡¢ szyfrowanie, nale»aªo ustawi¢ po-ªo»enie pocz¡tkowe rotorów (pierwszy identy�kator - ABC). Nast¦pnie zako-dowa¢ dowolny trigram (np. AAA), co dawaªo drugi identy�kator (JME).Po ustawieniu rotorów na AAA (nasz przykªadowy trigram) mo»na kodowa¢wiadomo±¢, np. ENIGMAKODJEDEN. Zaszyfrowany tekst do wysªania toabc jme bikrn hozyp wjls.

34

Rysunek 3.4: Schemat ENIGMY

35

Aby rozszyfrowa¢ wiadomo±¢ abc jme bikrn hozyp wjls ustawiamy ro-tory na ABC (pierwszy identy�kator), wstukujemy JME (drugi identy�ka-tor), co daje wiadomo±¢ AAA. Ustawiamy rotory na AAA i wstukujemydalsz¡ cz¦±¢ tekstu.

3.2 Jak zªamano szyfr ENIGMY

Tajemnica kodu ENIGMY zostaªa zªamana w 1932 roku przez Polskie BiuroSzyfrów kierowane przez Maksymiliana Ci¦»kiego. Pod jego kierunkiem pra-cowaªo trzech matematyków: Marian Rejewski, Jerzy Ró»ycki oraz HenrykZygalski. Dane techniczne oraz sposoby szyfrowania zostaªy najpierw przeka-zywane od jesieni 1931 roku wywiadowi francuzkiemu przez szpiega Hansa�Thilo Schmidta. Pod koniec 1932 roku major Gustav Bertrand (pseudonim,,Bolek�) przesªaª te dane do Polskiego Biura Szyfrów. Teraz przyszªa kolejna rozszyfrowanie.

Co zauwa»ono od razu, to dwa trigramy, które poprzedzaªy ka»dy tekstpodawany w blokach pi¦cioliterowych. Marian Rejewski zaªo»yª, »e jest toidenty�kator, który skªada si¦ z dwóch identycznych trigramów zaszyfrowa-nych na dwa ró»ne sposoby. Niech P1, P2, P3, P4, P5, P6 oznaczaj¡ permu-tacje alfabetu, którymi zaszyfrowana jest odpowiednia litera identy�katora.Wówczas, je±li i ∈ {1, 2, 3}, to z tego, »e Pia = x oraz Pi+3a = y wynikanatychmiast, »e Pi+3P

−1i x = y. Jednak»e ENIGMA stosowaªa szyfry trans-

pozycyjne, wi¦c P−1i = Pi. St¡d mamy Pi+3Pix = y. Przyjrzyjmy si¦ tablicy

identy�katorów (rysunek 3.5).W permutacji P4P1 mamy

• z 1. a przechodzi na siebie;

• z 35. s przechodzi na siebie;

• z 2. i 4. b przechodzi na c i odwrotnie;

• z 30. i 53. r przechodzi na w i odwrotnie.

Post¦pujemy podobnie dalej i ostatecznie otrzymujemy

P4P1 = (a)(s)(bc)(rw)(dvpfkxgzyo)(eijmunqlht).

36

1 AUQ AMN 23 NXD QTU 45 TMN EBY2 BNH CHL 24 NXD QTU 46 TMN EBY3 BCT CGJ 25 NLU QFZ 47 TAA EXB4 CIK BZT 26 OBU DLZ 48 USE NWH5 DDB VDV 27 PVJ FEG 49 VII PZK6 EJP IPS 28 QGA LYB 50 VII PZK7 FBR KLE 29 QGA LYB 51 VQZ PVR8 GPB ZSV 30 RJL WPX 52 VQZ PVR9 HNO THD 31 RJL WPX 53 WTM RAO10 HNO THD 32 RJL WPX 54 WTM RAO11 HXV TTI 33 RJL WPX 55 WTM RAO12 IKG JKF 34 RFC WQQ 56 WKI RKK13 IKG JKF 35 SYX SCW 57 XRS GNM14 IND JHU 36 SYX SCW 58 XRS GNM15 JWF MIC 37 SYX SCW 59 XOI GUK16 JWF MIC 38 SYX SCW 60 XYW GCP17 KHB XJV 39 SYX SCW 61 YPC OSQ18 KHB XJV 40 SJM SPO 62 YPC OSQ19 LDR HDE 41 SJM SPO 63 ZZY YRA20 LDR HDE 42 SJM SPO 64 ZEF YOC21 MAW UXP 43 SUG SMF 65 ZSJ YWG22 MAW UXP 44 SUG SMF

Rysunek 3.5: Tablica identy�katorów ENIGMY.

Podobnie znajdujemy zªo»enia P5P2 oraz P6P3.

P5P2 = (d)(k)(axt)(cgy)(blfqveoum)(hjpswizrn),

P6P3 = (abviktjgfcqny)(duzrehlxwpsmo).

Cykle dªugo±ci jeden (,,samiczki� wg »argonu Polskiego Biura Szyfrów)s¡ najªatwiejsze: je±li P4P1 = α, to oznacza to, »e musi istnie¢ β takie, »eP4β = α oraz P1α = β. Zatem zarówno P1 jak i P4 zawieraj¡ transpozycj¦(as). Podobnie, P2 oraz P5 maj¡ w swoim rozkªadzie (dk). Co do pozostaªychcykli, to potrzebne nam jest pewne twierdzenie z teorii permutacji.

37

3.1.Twierdzenie. Zaªó»my, »e permutacja P zawiera 2-cykle

(x1y1)(x2y2) . . . (xkyk)

a permutacja Q zawiera 2-cykle

(y1x2)(y2x3) . . . (ykx1).

Wówczas zªo»enie QP zawiera k-cykle (x1x2 . . . xk) oraz (ykyk−1 . . . y1).

Zatem, je±li 10�cykle w P4P1 ,,zgrywaj¡ si¦ w fazie�, to wystarczy podpierwszym podpisa¢ drugi w odwrotnej kolejno±ci i wszystkie transpozycje P1

oraz P4 mamy w zasi¦gu r¦ki. Problem jednak jest w znalezieniu fazy tak dla2- jak i dla 10-cykli. W tym celu trzeba sprawdzi¢ 20 (= 2 · 10) przypadków.Co gorsza, przypadki te s¡ niezale»ne od przypadków rozwa»anych dla pozo-staªych permutacji. W efekcie pozostaje do rozwa»enia 2 ·10 ·3 ·9 ·13 = 7020przypadków.

Marian Rejewski skorzystaª tu ze znanego stereotypu dotycz¡cego Niem-ców: lubi¡ oni porz¡dek. Poza tym, maªo kto potra� wybra¢ na klawiaturzetypowo przypadkowy ukªad, zwªaszcza gdy musi to robi¢ po raz setny w ci¡gudnia. W zwi¡zku z tym, cz¦st¡ praktyk¡ byª wybór identy�katora aaa, bbblub sss. Zaªó»my wi¦c, »e identy�katory 35-39, to aaa, poniewa» P4 oraz P1

zawieraj¡ cykl (as). Wynika st¡d, »e P2a = y, P5a = c, wi¦c P2 zawiera cykl(ay), natomiast P5, transpozycj¦ ac. Zapiszmy odpowiednio 3-cykle zªo»eniaP5P2:

a x ty g c

Otrzymujemy transpozycje (ay), (xg) oraz (tc) wchodz¡ce w skªad P2 i (yx),(gt) oraz (ca) b¦d¡ce cz¦±ci¡ P5. Chwil¦ pó¹niej otrzymujemy caªy rozkªadpermutacji P3 i P6.

a b v i k t j g f c q n yx l h e r z u d o m s p w

St¡d

P3 = (ax)(bl)(vh)(ie)(kr)(tz)(ju)(gd)(fo)(cm)(qs)(np)(yw) oraz

P6 = (xb)(lv)(hi)(ek)(rt)(zj)(ug)(df)(oc)(mq)(sn)(py)(wa).

38

Id¡c tym tropem, widzimy, »e pierwsza i trzecia litera tekstu jawnego iden-ty�katora 1, to s. Zatem litera ±rodkowa, to pewnie te» s. Mamy zatemrozkªady

P2 = (dk)(ay)(xg)(tc)(su)(wo)(ie)(zv)(rq)(nf)(hl)(jb)(pm),

P5 = (dk)(yx)(gt)(ca)(uw)(oi)(ez)(vr)(qn)(fh)(lj)(bp)(ms).

Zostaj¡ nam ju» tylko P1 i P4. Patrzymy na identy�katory 53-55 (na przy-kªad) i zauwa»amy, »e ich druga i trzecia litera tekstów jawnych, to c. Za-pewne wi¦c pierwsza litera, to tak»e c. Otrzymujemy st¡d cykle (cw) oraz(br), które s¡ cz¦±ci¡ P1 oraz cykle (wb) i (rc) jako cz¦±¢ permutacji P5. Nakoniec rozwa»amy identy�katory 49 i 50, których tekst jawny, to prawdopo-dobnie, eee i otrzymujemy ostatecznie

P1 = (as)(cw)(br)(ev)(id)(jo)(my)(uz)(ng)(qx)(lk)(hf)(tp),

P4 = (as)(wb)(rc)(vi)(dj)(om)(yu)(zn)(gq)(xl)(kh)(ft)(pe).

Caªa tabela jawnych tekstów identy�katorów przedstawiona jest poni»ej.Je±li we¹miemy jeszcze pod uwag¦ ukªad klawiszy na klawiaturze ENIGMY(tak»e poni»ej) oraz kolejno±¢ liter w alfabecie, to w tabeli jawnych tekstówidenty�katorów nie znajdziemy nic oryginalnego. Pocz¡wszy od roku 1933

1 sss 12 ddd 23 ggg 34 bnm 45 ppp 56 cde2 rfv 13 ddd 24 ggg 35 aaa 46 ppp 57 qqq3 rtz 14 dfg 25 ghj 36 aaa 47 pyx 58 qqq4 wer 15 ooo 26 jjj 37 aaa 48 zui 59 qwe5 ikl 16 ooo 27 tzu 38 aaa 49 eee 60 qay6 vbn 17 lll 28 xxx 39 aaa 50 eee 61 mmm7 hjk 18 lll 29 xxx 40 abc 51 ert 62 mmm8 nml 19 kkk 30 bbb 41 abc 52 ert 63 uvw9 �f 20 kkk 31 bbb 42 abc 53 ccc 64 uio10 �f 21 yyy 32 bbb 43 asd 54 ccc 65 uuu11 fgv 22 yyy 33 bbb 44 asd 55 ccc

Rysunek 3.6: Jawne teksty identy�katorów ENIGMY.

identy�katory, w których byªy 3 takie same litery zostaªy zakazane. Byªo ju»jednak za pó¹no, poniewa» Polacy znali ju» dobrze ENIGM�. Zªe zwyczajezreszt¡ i tak pozostaªy i zawsze mo»na si¦ byªo dopatrzy¢ pewnej reguªy wukªadzie liter identy�katora.

39

Q W E R T Z U I OA S D F G H J K

P Y X C V B N M L

Rysunek 3.7: Klawiatura ENIGMY.

Odszyfrowanie tabeli identy�katorów byªo najwa»niejsz¡ cz¦±ci¡ ªamaniaszyfru, ale nie ko«cz¡c¡. Teraz w oparciu o otrzymane permutacje nale»aªoodpowiednio dobra¢ rotory, zaprogramowa¢ maszyn¦ oraz skorzysta¢ z niejodczytuj¡c tekst. Od 1936 roku, szyfr nale»aªo ªama¢ codziennie, poniewa»obowi¡zkowa byªa codzienna zmiana rotorów i innych ustawie«. Ka»de zustawie« byªo jednak dokªadnie obejrzane przez pracowników Polskiego BiuraSzyfrów i w zasadzie ka»da przechwycona wiadomo±¢ byªa rozszyfrowana.

40

Rozdziaª 4

Macierze szyfruj¡ce

System kryptogra�czny, który rozwa»ymy w tym rozdziale zostaª zapropo-nowany przez Lester'a Hill'a w 1929 roku. System ten, jak za chwil¦ zo-baczymy staª si¦ przeªomem w kryptogra�i, poniewa» jest to historyczniepierwszy system, który szyfruje wieloliterowe jednostki tekstu i nie wymagaprzy tym skomplikowanego klucza. Podstawow¡ ide¡ jest tu algebra liniowa,a wªa±ciwie teoria moduªów nad ZN .

4.1 Algebra liniowa modulo N

Przypuszczamy, »e dany jest 26-literowy (lub, ogólnie, N -literowy) alfabet,w którym uto»samiamy litery i liczby tak, jak dotychczas. Jako jednostkitekstu wybieramy n-gramy, czyli bloki n literowe. Poniewa» uogólnienie jestproste, wi¦c ograniczymy si¦ do przypadków, gdy n = 2 lub n = 3. Ka»dydigram przedstawiamy jako wektor o dwóch wspóªrz¦dnych. Dokªadnie, blok

liter xy przedstawiamy jako

(xy

). Na przykªad, digramowi ON odpowiada

wektor

(1413

). Podobnie uto»samiamy trigramy i wektory o trzech wspóª-

rz¦dnych, xyz, to(x y z

)Titd.

Jak wiadomo, ka»demu wektorowi zaczepionemu w prostok¡tnym ukªa-dzie wspóªrz¦dnych odpowiada punkt ko«ca tego wektora. Zatem mo»emytu wprowadzi¢ prostok¡tny ukªad wspóªrz¦dnych, tyle »e nie b¦dzie to Rn,ale Zn

26 lub ogólnie ZnN . Ka»demu n-gramowi odpowiada wi¦c punkt na (sko«-

czonej) pªaszczy¹nie a�nicznej.

41

Teraz, gdy przedstawili±my ju» nasze n-gramy jako wektory b¡d¹ punktyna pªaszczy¹nie a�nicznej, mo»emy wykorzysta¢ przeksztaªcenia ró»nowar-to±ciowe pªaszczyzny jako funkcje szyfruj¡ce. W szczególno±ci mo»emy tuwykorzysta¢ wiadomo±ci z algebry liniowej i a�nicznej. Przypomnijmy wi¦c,»e dowolne przeksztaªcenie liniowe (homomor�zm) f ma swoj¡ reprezentacj¦macierzow¡, czyli tak¡ macierz A, »e dla dowolnego wektora X mamy f(X)równe AX. Macierz A otrzymujemy (w przypadku, gdy n = 2) przeksztaª-

caj¡c przez f generatory

(10

)oraz

(01

)a nast¦pnie ukªadaj¡c macierz z

obrazów. Je±li f jest ró»nowarto±ciowe (jest monomor�zmem), to odwzo-rowanie odwrotne do f jest reprezentowane przez macierz odwrotn¡ do A.

Podamy teraz prosty algorytm na obliczenie macierzy odwrotnej do A.Jest to znany algorytm eliminacji Gaussa. Jest on te» podstaw¡ kryptoana-lizy systemów opartych na macierzach. W celu obliczenia macierzy odwrotnejdo A, ukªadamy najpierw macierz (A|I), gdzie I jest macierz¡ jednostkow¡.Nast¦pnie stosujemy elementarne przeksztaªcenia wierszy:

1. pomno»enie wiersza przez liczb¦ odwracaln¡ modulo N ,

2. zamiana dwóch wierszy,

3. dodanie do jednego wiersza kombinacji liniowej pozostaªych,

Macierz A tak aby dosta¢ macierz jednostkow¡ I. Oczywi±cie, w tym samymczasie jest przeksztaªcana druga cz¦±¢ macierzy (A|I). Gdy ju» to osi¡gniemy,macierz¡ po prawej stronie I b¦dzie macierz odwrotna do A. Opisany algo-rytm mo»na te» stosowa¢ dla macierzy nieodwracalnej. Wtedy nie b¦dziemyjednak w stanie doprowadzi¢ lewej strony do postaci macierzy jednostkowej.

Dla przykªadu, obliczymy macierz odwrotn¡ do

(9 1519 2

), gdzie wspóª-

czynniki s¡ z Z26.(9 15 | 1 019 2 | 0 1

)formujemy macierz (A|I)(

1 19 | 3 019 2 | 0 1

)mno»ymy pierwszywiersz przez 3 = 9−1(

1 19 | 3 00 5 | 21 1

)19 razy odejmujemypierwszy wiersz od drugiego

42

(1 19 | 3 00 1 | 25 21

)mno»ymy drugiwiersz przez 5−1 = 21(

1 0 | 22 170 1 | 25 21

)19 razy odejmujemydrugi wiersz od pierwszego

Zatem A−1 =

(22 1725 21

). Zastosujemy teraz eliminacj¦ Gaussa, aby znale¹¢

macierz odwrotn¡ do B =

2 4 51 3 2315 24 13

. Otrzymujemy

2 4 5 | 1 0 01 3 23 | 0 1 015 24 13 | 0 0 1

1 3 23 | 0 1 0

2 4 5 | 1 0 015 24 13 | 0 0 1

1 3 23 | 0 1 0

0 24 11 | 1 24 00 5 6 | 0 11 1

1 3 23 | 0 1 0

0 5 6 | 0 11 10 24 11 | 1 24 0

1 3 23 | 0 1 0

0 1 22 | 0 23 210 24 11 | 1 24 0

1 0 9 | 0 10 15

0 1 22 | 0 23 210 0 3 | 1 18 16

1 0 9 | 0 10 15

0 1 22 | 0 23 210 0 1 | 9 6 14

1 0 0 | 23 8 19

0 1 0 | 10 21 250 0 1 | 9 6 14

.

43

Ostatecznie mamy B−1 =

23 8 1910 21 259 6 14

.

By nie robi¢ nic ,,na darmo� warto jest wiedzie¢, kiedy dana macierz jestodwracalna. Mówi o tym nast¦puj¡ce twierdzenie.

4.2.Twierdzenie. Dla dowolnej macierzy A o wspóªczynnikach w ZN nast¦-puj¡ce warunki s¡ równowa»ne:

(i) NWD(detA, N) = 1;

(ii) A ma macierz odwrotn¡;

(iii) je±li x i y nie s¡ jednocze±nie równe zeru, to A

(xy

)6=(

00

);

(iv) A okre±la odwzorowanie wzajemnie jednoznaczne. �

4.2 Szyfry Hill'a

Przedstawimy tu dokªadnie metod¦ szyfrowania, deszyfrowania oraz krypto-analizy systemu Hill'a dla macierzy 2× 2.

Szyfrowanie wygl¡da nast¦puj¡co:

1. Wybieramy macierz A o wspóªczynnikach caªkowitych odwracaln¡ mo-dulo 26.

2. Grupujemy tekst jawny w digramy. Je±li liczba liter w tek±cie nie jestpodzielna przez 2, dodajemy na ko«cu tekstu cokolwiek.

3. Ka»dy utworzony wektor p =

(xy

)tekstu jawnego mno»ymy przez

macierz A i wektory Ap ustawiamy po kolei w tekst zaszyfrowany.

4.3.Przykªad.Macierz¡ szyfruj¡c¡ jest

(1 20 3

). Zaszyfrujemy tekst UKRY-

WAMY.

44

Grupujemy najpierw nasz tekst w jednostki dwuliterowe i otrzymujemypi¦¢ wektorów (

2010

),

(1724

),

(220

),

(1224

). (4.1)

Po pomno»eniu tych wektorów przez nasz¡ macierz szyfruj¡c¡ otrzymu-jemy (

144

),

(1320

),

(220

),

(820

)co po podstawieniu odpowiedników literowych daje kryptotekst oenuwaiu.

Poniewa» w opisanej powy»ej metodzie szyfrowania wykorzystali±my di-gramy jako jednostki tekstu, powy»sza metoda szyfrowania nazywa si¦ 2�szyfrem Hill'a. Je±li nasz tekst podzielimy na jednostki n-literowe i do szy-frowania u»yjemy macierzy n× n, to otrzymamy n�szyfr Hill'a.Uwagi. 1) Nasza macierz szyfruj¡ca A wcale nie musi mie¢ wspóªczynnikówz Z26. Wystarczy, »e po otrzymaniu wektorów zaszyfrowanego tekstu we¹-miemy ich wspóªczynniki modulo 26. Macierz A musi jednak by¢ odwracalnamodulo 26.2) Zamiast mno»y¢ ka»dy wektor z (4.1) przez macierz A mo»emy od razupomno»y¢ A przez macierz (

20 17 22 1210 24 0 24

),,zªo»on¡� z tych wektorów. Otrzymana macierz b¦dzie macierz¡, której ko-lumnami s¡ wektory tekstu zaszyfrowanego.

Deszyfrowanie. �eby rozszyfrowa¢ szyfr Hill'a, u»ywamy macierzy od-

wrotnej do macierzy szyfruj¡cej. Dokªadnie, je±li c =

(c1c2

)jest digramem

tekstu zaszyfrowanego, to A−1c jest odpowiadaj¡cym mu digramem tekstujawnego.

4.4.Przykªad. Rozkodujemy 2�szyfr Hilla qilyfsnnpajguw zaszyfrowany zapomoc¡ macierzy

A =

(9 1519 2

).

45

Stosuj¡c opisany w 4.1 algorytm na znalezienie macierzy odwrotnej do Aznajdujemy

A−1 =

(22 1725 21

).

Nast¦pnie mno»¡c A−1 przez macierz digramów zaszyfrowanego tekstu otrzy-mujemy(

22 1725 21

)(16 11 5 13 15 9 208 24 18 13 0 6 22

)=

(20 0 0 13 18 14 822 25 9 0 11 13 0

),

co daje nam tekst UWAZAJ NA SLONIA.

�amanie. Okazuje si¦, »e gdy znajdziemy n odpowiadaj¡cych sobie n�gramów, to b¦dziemy te» w stanie znale¹¢ i macierz deszyfruj¡c¡. By tozrobi¢ mo»na wykorzysta¢ podobny do opisanego w 4.1 algorytm znajdywa-nia macierzy odwrotnej. Opiszemy go, trzymaj¡c si¦ naszej dotychczasowejzasady, dla digramów. Dokªadnie, je±li mamy wektory tekstu jawnego p1 oraz

p2 oraz odpowiadaj¡ce im wektory c1 i c2, to tworzymy macierz

(cT1 | pT1cT2 | pT2

),

której wierszami s¡ wspóªrz¦dne wektorów tekstu zaszyfrowanego, po którychnast¦puj¡ wspóªrz¦dne odpowiadaj¡cych im wektorów tekstu jawnego. Na-st¦pnie przeksztaªcamy otrzyman¡ macierz stosuj¡c elementarne operacje nawierszach tak, aby po lewej stronie otrzyma¢ macierz jednostkow¡. To copojawi si¦ po prawej stronie jest transponowan¡ macierz¡ deszyfruj¡c¡.

4.5.Przykªad. Rozszyfrujemy wiadomo±¢ hmrzsewcrnwfnncc wiedz¡c, »e za-czyna si¦ ona od sªowa DEAR.

Wiemy, »e wektorom tekstu zaszyfrowanego

(712

)i

(1725

)odpowiadaj¡

wektory

(34

)oraz

(017

). Zastosujemy teraz opisany algorytm do znalezienia

macierzy deszyfruj¡cej A−1.(7 12 | 3 417 25 | 0 17

)tworzymy macierz

(cT1 | pT1cT2 | pT2

),(

1 24 | 19 817 25 | 0 17

)mno»ymy pierwszywiersz przez 15 = 7−1,(

1 24 | 19 80 7 | 15 11

)9 razy dodajemypierwszy wiersz do drugiego,

46

(1 24 | 19 80 1 | 17 9

)mno»ymy drugiwiersz przez 7−1 = 15,(

1 0 | 0 10 1 | 17 9

)2 razy dodajemydrugi wiersz do pierwszego.

Zatem A−1 =

(1 170 9

). Aby otrzyma¢ tekst jawny, mno»ymy otrzyman¡

macierz deszyfruj¡c¡ przez macierz zªo»on¡ z digramów tekstu zaszyfrowa-nego. Otrzymujemy(

1 170 9

)(7 17 18 22 17 22 13 212 25 4 2 13 5 13 2

)=

(3 0 8 4 4 3 0 104 17 10 18 13 19 13 18

),

co nam daje tekst DEAR IKE SEND TANKS.

Aby metoda ªamania szyfru podana w powy»szym przykªadzie zadziaªaªa,macierz zªo»ona z digramów tekstu zaszyfrowanego (lewa strona macierzywyj±ciowej) musi by¢ macierz¡ odwracaln¡. Je±li tak nie jest, nasz algorytmsi¦ w pewnym momencie urywa i po lewej stronie nie mo»emy otrzyma¢macierzy jednostkowej. Co wtedy mo»na zrobi¢? Mo»emy szuka¢ innychodpowiadaj¡cych sobie digramów. Je±li takiej mo»liwo±ci nie ma, staramysi¦ uzyska¢ jak najwi¦cej informacji na temat macierzy A−1 i rozwa»y¢ kilkamo»liwo±ci.

4.6.Przykªad. Przypu±¢my, »e przechwycili±my wiadomo±¢ wkncchssjh iwiemy, »e pierwszym sªowem jest GIVE. Nasz¡ macierz¡ wyj±ciow¡ jest

W =

(22 10 | 6 813 2 | 21 4

).

Nie mo»emy wykona¢ ju» pierwszego kroku algorytmu, poniewa» ani 22ani 13 nie s¡ odwracalne modulo 26. Dlatego musimy zrezygnowa¢ ze zwykªejdrogi. By zebra¢ troch¦ informacji na temat A−1 stosujemy nasz algorytmmodulo 13, czyli najpierw redukujemy wyrazy W modulo 13, a nast¦pnie

znajdujemy macierz deszyfruj¡c¡ modulo 13. Jest ni¡

(2 43 2

). Zatem

A−1 =

(2 43 2

)+ 13A1,

47

gdzie macierz A1 jest macierz¡ zªo»on¡ z zer i jedynek (16 mo»liwo±ci).Wiemy jednak, »e macierz A−1 jest odwracalna, wi¦c jej wyznacznik musiby¢ liczb¡ nieparzyst¡. To wyklucza 10 mo»liwo±ci. Nast¦pnie wykorzystu-jemy informacj¦, »e

A−1

(22 1310 2

)=

(6 218 4

),

co nam pozostawia dwie mo»liwo±ci:

(1 01 1

)oraz

(1 11 1

). Pierwsza macierz

daje nam wiadomo±¢ GIVE GHEMHP, co odrzucamy jako nieczyteln¡. Dru-ga macierz daje nam wiadomo±¢ GIVE THEM UP, co prawdopodobnie jesttekstem jawnym.

W naszych przykªadach wykorzystali±my tylko macierze 2×2 i przy ªama-niu szyfrów zakªadali±my, »e nasz przeciwnik u»ywaª takich wªa±nie macierzyi alfabetu dwudziesto�sze±cio�literowego. Je»eli u»yte s¡ macierze wy»szychrozmiarów, ªamanie szyfrów staje si¦ trudniejsze, ale sama procedura ªama-nia jest identyczna. Zauwa»my, »e zbyt du»e rozmiary macierzy szyfruj¡cejte» nie s¡ wskazane, poniewa» pocz¡tek tekstu zaszyfrowanego staje si¦ wte-dy szyfrem permutacyjnym, który mo»na zªama¢ stosuj¡c analiz¦ cz¦sto±ciwyst¦powania liter.

4.3 A�niczne przeksztaªcenia szyfruj¡ce

Ogólniejsz¡ form¡ szyfrowania wektora digramu (n�gramu) jest pomno»eniego najpierw przez pewn¡ macierz A, a nast¦pnie dodanie staªego wektora b.Zatem, je±li przez c oznaczymy jednostk¦ tekstu zaszyfrowanego, a przez pjednostk¦ tekstu jawnego, to c = Ap + b. Przeksztaªcenie deszyfruj¡ce mawtedy posta¢ p = A−1c− b′, gdzie b′ = A−1b. Zauwa»my, »e macierz A musiby¢ macierz¡ odwracaln¡.

�eby zªama¢ szyfr a�niczny, wystarczy zna¢ trzy odpowiadaj¡ce sobie di-gramy. Zaªó»my, »e digramom c1, c2 i c3 tekstu zaszyfrowanego odpowiadaj¡digramy p1, p2 i p3 tekstu jawnego. Mamy wtedy

p1 = A−1c1 + b′

p2 = A−1c2 + b′

p3 = A−1c3 + b′.

(4.2)

48

Odejmuj¡c trzecie równanie od pierwszego i drugiego. Otrzymujemy ukªadrówna«

(p1 − p3) = A−1(c1 − c3)(p2 − p3) = A−1(c2 − c3).

Teraz traktujemy p1−p3 oraz p2−p3 jako digramy tekstu jawnego, a c1−c3 ic2− c3 jako digramy kryptogramu i stosuj¡c algorytm opisany w 4.2 znajdu-jemy A−1. Kiedy ju» znamy t¦ macierz, z dowolnego równania ukªadu (4.2)obliczamy b′.

49

Rozdziaª 5

Pakowanie plecaka

5.1 Postawienie problemu

Jak zauwa»yli±my, szyfry oparte na rachunku macierzowym nie s¡ przera»a-j¡co trudne do zªamania. Zdecydowanie trudniejszy jest kryptosystem opartyna nast¦puj¡cym problemie pakowania plecaka:

Zaªó»my, »e musimy zabra¢ ze sob¡ na wycieczk¦ w góry wiele ,,potrzeb-nych� przedmiotów. Jednak»e do dyspozycji mamy jedynie plecak o ograni-czonej pojemno±ci S. Przedmioty maj¡ obj¦to±ci a1, a2, . . . , an, które pozsumowaniu daj¡ obj¦to±¢ wi¦ksz¡ od S. Musimy zatem z czego± zrezy-gnowa¢. Jedynym kryterium jest tu tylko to, by plecak byª zapakowanyoptymalnie, tj. bierzemy tylko te przedmioty, których obj¦to±ci daj¡ sum¦ S.Co zatem wªo»y¢ do plecaka?

5.1 Przykªad. Niech (a1, a2, a3, a4, a5) = (2, 7, 8, 11, 12) oraz niech S = 21.Wówczas mamy a1 + a3 + a5 = S oraz a1 + a2 + a5 = S. Zatem zabieramyze sob¡ przedmioty pierwszy, trzeci i pi¡ty, lub pierwszy, drugi i szósty.

Powy»szy problem mo»na sformuªowa¢ nast¦puj¡co:Dla danych liczb naturalnych a1, a2, . . . , an oraz S, znale¹¢ taki ci¡g x1,x2, . . . , xn zªo»ony z zer i jedynek, »eby zachodziªa równo±¢

a1x1 + a2x2 + · · ·+ anxn = S. (5.1)

Rozwa»aj¡c ci¡g z przykªadu 5.1 dostajemy dwa rozwi¡zania:

x1 = x3 = x5 = 1,x2 = x4 = 0

orazx1 = x2 = x5 = 1,x3 = x4 = 0.

50

Aby znale¹¢ ci¡g x1, x2, . . . , xn, dla którego (5.1) zachodzi musimy wy-kona¢ co najwy»ej n dodawa«, jednak »eby rozwi¡za¢ problem pakowaniaplecaka metod¡ prób i bª¦dów, musimy sprawdzi¢ wszystkie 2n mo»liwo±ci.Oznacza to, »e rozwi¡zanie powy»szego problemu zajmuje O(2n) czasu. Naj-szybszy znany algorytm dziaªa w czasie O(2

n2 ). Je±li n = 100, to komputer

wykonuj¡cy 220 (procesor 1MHz) operacji na sekund¦ potrzebuje na rozwi¡-zanie problemu pakowania plecaka czas rz¦du 230, czyli okoªo miliard sekundalbo ponad 30 lat!

Pewne warto±ci liczb a1, a2, . . . , an zdecydowanie przy±pieszaj¡ rozwi¡-zanie problemu pakowania plecaka. Na przykªad, je±li s¡ to pot¦gi dwójki,to rozwi¡zanie sprowadza si¦ do znalezienia rozwini¦cia liczby S w systemiedwójkowym. Rozwini¦cie to znajdujemy w czasie logarytmicznym stosuj¡ctzw. ,,chciwy algorytm�, który opiszemy poni»ej.

5.2 Szybko rosn¡ce ci¡gi

Ci¡g liczb naturalnych a1, a2, . . . , an nazywamy szybko rosn¡cym, je±li

j−1∑i=1

ai < aj dla j ∈ {2, 3, . . . , n}.

Przykªadem szybko rosn¡cego ci¡gu jest 2, 3, 7, 14, 27. Niech S = 37.Wówczas ,,chciwy algorytm� dziaªa nast¦puj¡co: Zawsze bierzemy najwi¦k-szy przedmiot jaki si¦ mie±ci. Tak wi¦c x5 = 1, ale x4 = 0 poniewa»27 + 14 > 37. x3 = 1 gdy» 27 + 7 < 37. Podobnie, x2 = 1 oraz x1 = 0.

Ogólnie, je±li mamy szybko rosn¡cy ci¡g a1, a2, . . . , an, to wyznaczamyxn, xn−1, . . . , x1 korzystaj¡c ze wzorów

xn =

{1, je±li S ≥ an

0, je±li S < anoraz

xj =

{1, je±li S −

∑ni=j+1 xiai ≥ aj

0, je±li S −∑n

i=j+1 xiai < aj

dla j ∈ n− 1, n− 2, . . . , 1.Problem pakowania plecaka dla ci¡gów szybko rosn¡cych mo»e by¢ wi¦c

rozwi¡zany bardzo szybko. Poni»szy system kryptogra�czny Merklego�Hell-

51

mana, który do roku 1982 byª uwa»any za najlepszy system o tzw. kluczupublicznym opiera si¦ na ,,zamianie� problemu trudnego na problem ªatwy.

Zaªó»my, »e a1, a2, . . . , an jest szybko rosn¡cym ci¡giem liczb natural-nych. Niech m b¦dzie liczb¡ naturaln¡ wi¦ksz¡ od 2an. We¹my dowoln¡liczb¦ caªkowit¡ nieujemn¡ w wzgl¦dnie pierwsz¡ z m i utwórzmy ci¡g b1,b2, . . . , bn bior¡c wa1, wa2, . . . , wan modulo m.

Je»eli b1, b2, . . . , bn nie jest ci¡giem szybko rosn¡cym, to »eby rozwi¡za¢problem pakowania plecaka

∑ni=1 xibi = S, nie mo»emy u»y¢ chciwego algo-

rytmu. Jednak»e, je±li znamy w−1, to mo»emy rozwi¡za¢ problem pakowaniaplecaka

n∑i=1

xiai = S0, (5.2)

gdzie S0 ≡ Sw−1 (mod m). Kiedy mamy ju» rozwi¡zany problem (5.2), towiemy, »e

w−1S =n∑i=1

w−1xibi ≡n∑i=1

xiai (mod m).

Powy»sz¡ procedur¦ opiszemy na przykªadzie.

5.2 Przykªad. Rozwa»my szybko rosn¡cy ci¡g

(a1, a2, a3, a4, a5) = (3, 5, 9, 20, 44), m = 89 oraz w = 67.

Zauwa»my, »e w−1 = 4. Wówczas (b1, b2, b3, b4, b5) = (23, 68, 69, 5, 11). �ebyrozwi¡za¢ problem pakowania plecaka

23x1 + 68x2 + 69x3 + 5x4 + 11x5 = 84,

mno»ymy obie strony powy»szego równania przez 4 i redukujemy modulo 89otrzymuj¡c

3x1 + 5x2 + 9x3 + 20x4 + 44x5 = 69.

Teraz rozwi¡zujemy ªatwo powy»szy problem pakowania plecaka otrzymuj¡cx1 = x3 = 0; x2 = x4 = x5 = 1. Zatem nasz pierwotny problem marozwi¡zanie 68 + 5 + 11 = 84.

52

5.3 Kryptosystem

oparty na problemie pakowania plecaka

System kryptogra�czny oparty na problemie pakowania plecaka dziaªa na-st¦puj¡co. Wybieramy szybko rosn¡cy ci¡g a1, a2, . . . , an, liczb¦ m > 2anoraz liczb¦ w wzgl¦dnie pierwsz¡ z m. Nast¦pnie obliczamy wyrazy ci¡gub1, b2, . . . , bn, który jest kluczem szyfruj¡cym. W celu zaszyfrowania wia-domo±ci, zamieniamy j¡ najpierw na ci¡g bitów, zgodnie z poni»sz¡ tabelk¡.Nast¦pnie otrzymany ci¡g zer i jedynek dzielimy na bloki dªugo±ci n. Dlaka»dego bloku x1, x2, . . . , xn, obliczamy sum¦

∑ni=1 xibi i otrzymany ci¡g sum

wysyªamy jako tekst zaszyfrowany, lub w omówiony wcze±niej z adresatemsposób, zamieniamy liczby na bloki liter i nast¦pnie wysyªamy.

litera odpowiednik litera odpowiednik

A 00000 N 01101B 00001 O 01110C 00010 P 01111D 00011 Q 10000E 00100 R 10001F 00101 S 10010G 00110 T 10011H 00111 U 10100I 01000 V 10101J 01001 W 10110K 01010 X 10111L 01011 Y 11000M 01100 Z 11001

Dla przykªadu zaszyfrujemy wiadomo±¢ REPLY IMMEDIATELY u»ywa-j¡c ci¡gu C = (2002, 3337, 2503, 2170, 503, 172, 3347, 855). Najpierw zamie-niamy litery na bity i otrzymany ci¡g dzielimy na bloki 8-bitowe. Jak zwykle,ostatni blok uzupeªniamy dowolnie, aby tak jak pozostaªe miaª 8 bitów.

10001001 00011110 10111100 00100001 1000110000100000 11010000 00001001 10010001 01111000

53

W kolejnym kroku obliczamy odpowiednie sumy wyrazów ci¡gu C otrzy-muj¡c kryptogram

(3360, 3192, 7350, 3358, 2677, 7509, 1358, 5027, 8513). (5.3)

Na przykªad dodajemy 2002, 503 i 855 »eby otrzyma¢ 3360. Je±li chcemyotrzyma¢ kryptogram zapisany alfabetycznie, mo»emy zamieni¢ liczby z sys-temu dziesi¦tnego na pozycyjny o podstawie 26. Wtedy cyframi s¡ pozycjeliter, wi¦c zamiast liczb dziesi¦tnych mamy bloki liter. Zauwa»my, »e sumawszystkich elementów ci¡gu C, to 14889 i jest to liczba mniejsza od 263. Mo-»emy wi¦c ka»d¡ liczb¦ kryptogramu (5.3) zast¡pi¢ blokiem trzech liter. Naprzykªad, 7350 = 10 · 262 + 22 · 26 + 18, wi¦c zast¦pujemy j¡ blokiem KWS.Ostatecznie otrzymujemy

EZGJEE KWSEZE DYZDSH LCVCAG HLJMPL.

Zauwa»my teraz, »e klucz szyfruj¡cy mo»e by¢ podany do publicznej wia-domo±ci: Mamy tekst jawny oraz kryptogram wªa±nie otrzymany, ale czyjeste±my w stanie odczyta¢ inny kryptogram, np.

NCZKQL KENNCO LWMKEN

lub w postaci numerycznej,

(8865, 7187, 6877, 8854, 8020, 6877), (5.4)

zaszyfrowany tym samym kluczem? W sumie, to nawet nie wiemy od razu,ile liter jest w tek±cie jawnym.

Powy»sza idea prowadzi do powstania sieci korespondentów. Ka»dy u»yt-kownik sieci ma swój prywatny klucz rozszyfrowuj¡cy, a klucze szyfruj¡cemog¡ by¢ umieszczone w swoistej ,,ksi¡»ce telefonicznej�, która jest dostarczo-na ka»demu u»ytkownikowi sieci. Ide¦ t¦ omówimy w nast¦pnym rozdziale, ateraz poka»emy jak mo»na ªatwo rozszyfrowa¢ szyfr (5.4). Do rozszyfrowaniapotrzebujemy oryginalnego ci¡gu szybko rosn¡cego, jakim jest

(2, 11, 14, 29, 58, 119, 241, 480),

liczby m = 3837 oraz w−1 = 23. Znajdujemy kolejno:

8865 · 23 ≡ 534 (mod 3837)

7187 · 23 ≡ 310 (mod 3837)

6877 · 23 ≡ 854 (mod 3837)

8854 · 23 ≡ 281 (mod 3837)

8020 · 23 ≡ 284 (mod 3837),

54

a nast¦pnie

534 = 0 · 2 + 1 · 11 + 1 · 14 + 1 · 29 + 0 · 58 + 0 · 119 + 0 · 241 + 1 · 480

310 = 0 · 2 + 1 · 11 + 0 · 14 + 0 · 29 + 1 · 58 + 0 · 119 + 1 · 241 + 0 · 480

854 = 0 · 2 + 0 · 11 + 1 · 14 + 0 · 29 + 0 · 58 + 1 · 119 + 1 · 241 + 1 · 480

281 = 0 · 2 + 1 · 11 + 0 · 14 + 1 · 29 + 0 · 58 + 0 · 119 + 1 · 241 + 0 · 480

284 = 0 · 2 + 0 · 11 + 1 · 14 + 1 · 29 + 0 · 58 + 0 · 119 + 1 · 241 + 0 · 480.

Zatem wiadomo±¢ (5.4) w wersji binarnej, to

01110 00101 00101 00010 0111010100 10001 10010 00100 111,

co daje wiadomo±¢ jawn¡ OFF COURSE. Trzy ostatnie bity zostaªy dodaneprzy szyfrowaniu, aby dopeªni¢ blok.

Zauwa»my, »e je»eli dªugo±¢ ci¡gu jest równa 5, to opisany szyfr jestbardziej skomplikowan¡ wersj¡ klasycznego szyfru permutacyjnego - literaalfabetu jest zast¡piona liczb¡ w sposób wzajemnie jednoznaczny. W opi-sanym przykªadzie liczb¡, lub blokiem trzech liter zast¦pujemy osiem bitówtekstu jawnego, co jest niepeªnym digramem. W ten sposób istotnie zmie-niamy dotychczas poznane reguªy szyfrowania, gdzie dªugo±¢ szyfrowanegobloku liter byªa zawsze liczb¡ naturaln¡.

W roku 1983 Shamir opublikowaª prac¦, która zdyskwali�kowaªa sys-tem kryptogra�czny oparty na problemie pakowania plecaka jako systembezpieczny. Otó» okazaªo si¦, »e szyfr ten mo»na zªama¢ w czasie wielo-mianowym. Po roku 1983 starano si¦ utrudni¢ szyfr, ale poniewa» ka»dapróba ko«czyªa si¦ szybko podobn¡ publikacj¡, szyfry oparte na problemiepakowania plecaka nie maj¡ dzi± du»ego powodzenia, mimo »e niektóre z nichw dalszym ci¡gu s¡ nie zªamane.

55

Rozdziaª 6

Systemy z publicznym kluczem

Jak ju» zauwa»yli±my przy okazji omawiania systemu kryptogra�cznego opar-tego o problem pakowania plecaka, istniej¡ szyfry, których klucz szyfruj¡cyjest a» tak ró»ny od klucza rozszyfrowuj¡cego, »e ten pierwszy mo»na bezobawy poda¢ do publicznej wiadomo±ci. Tego rodzaju kryptosystem nazy-wamy szyfrem o kluczu publicznym. Przy okazji takiego systemu mo»emymówi¢ o tworzeniu pewnej sieci u»ytkowników, z których ka»dy ma swój(jawny) klucz szyfruj¡cy oraz (tajny) rozszyfrowuj¡cy. Gdyby±my chcieliutworzy¢ tego rodzaju sie¢ maj¡c do dyspozycji jedynie szyfry klasyczne, toka»dy z u»ytkowników musiaªby pami¦ta¢ klucze szyfruj¡ce wszystkich u»yt-kowników oraz klucz rozszyfrowuj¡cy wiadomo±¢ od ka»dego u»ytkownika.Je»eli tych u»ytkowników byªoby n, to ka»dy z nich miaªby do zapami¦tania2(n − 1) kluczy, a w caªej sieci byªoby 2n(n − 1) kluczy. Co gorsza, u»yt-kownicy musieliby mie¢ do siebie peªne zaufanie, poniewa» ka»dy z kluczyszyfruj¡cych jest te» kluczem rozszyfrowuj¡cym.

System kryptogra�czny z kluczem publicznym zdecydowanie ograniczaliczb¦ kluczy. Dokªadnie, liczba kluczy dla caªej sieci, to tylko n. Ka»dyz u»ytkowników pami¦ta wi¦c tylko jeden klucz � swój rozszyfrowuj¡cy, na-tomiast klucze szyfruj¡ce podane s¡ w swego rodzaju ksi¡»ce telefonicznej.Znajomo±¢ tych kluczy nie jest równoznaczna z dost¦pem do ka»dej wiado-mo±ci, jaka si¦ pojawia w sieci.

Systemy kryptogra�czne, w których znajomo±¢ klucza szyfruj¡cego ozna-cza praktycznie znajomo±¢ klucza rozszyfruj¡cego nazywamy systemami sy-metrycznymi. Pozostaªe systemy, czyli systemy o kluczu publicznym nazy-wamy systemami asymetrycznymi lub niesymetrycznymi.

56

6.1 Numeryczna funkcja jednokierunkowa

Aby zbudowa¢ omawiany wy»ej kryptosystem oraz sie¢ jego u»ytkowników,potrzebne nam b¦dzie poj¦cie funkcji jednokierunkowej. Poj¦ciem funkcjaokre±la¢ tu b¦dziemy raczej schemat lub algorytm szyfrowania ni» funkcj¦ w±cisªym znaczeniu. W ka»dym razie jest to funkcja ªatwa do obliczenia wjednym kierunku, ale bardzo trudna do obliczenia w kierunku przeciwnym.Czyli, znaj¡c argument bez trudu obliczamy warto±¢ funkcji, ale znajomo±¢warto±ci funkcji nie pozwala nam obliczy¢ argumentu, dla którego ta war-to±¢ jest przyjmowana. Na przykªad, aby obliczy¢ iloczyn dwóch liczb 500-cyfrowych, nowoczesne komputery potrzebuj¡ kilku mikrosekund. Jednak»e,aby rozªo»y¢ na czynniki liczb¦ 1000 cyfrow¡, te same komputery potrzebuj¡wieków.

Idea funkcji jednokierunkowej pojawiªa si¦ w 1974, jednak wydaje si¦ »ejest ona nieco starsza. W 1968 roku, kiedy rodziª si¦ system operacyjnyUNIX, potrzebny byª solidny system zabezpieczania informacji. Rozwi¡zanoto w ten sposób, »e kiedy u»ytkownik po raz pierwszy wprowadza hasªo lub jezmienia, jest ono zaszyfrowane, a gdy hasªo to jest wprowadzane ponownie,system szyfruje je i porównuje z wcze±niej zaszyfrowan¡ wersj¡.

Pierwszy szczegóªowy opis funkcji jednokierunkowej opublikowaª G. Pur-dy w 1974 roku. Opisana wtedy funkcja, to f : Fp → Fp, gdzie p = 264 − 59,a funkcja jest okre±lona wzorem

f(x) = x224+17 + a1x224+3 + a2x

3 + a3x2 + a4x+ a5,

gdzie wspóªczynniki ai byªy pewnymi liczbami 19�cyfrowymi.Zauwa»my, »e obliczenie funkcji odwrotnej do powy»szej nie jest niemo»-

liwe, tylko po prostu zajmuje du»o czasu. Do tej pory nie przedstawionofunkcji ,,czysto� jednokierunkowej, tj. takiej, która po upªywie jakiego± czasunie przestaªa by¢ jednokierunkow¡. Nie udowodniono nawet, »e taka funkcjaistnieje lub te», »e nie isnieje.

Ciekawy przykªad funkcji jednokierunkowej przedstawiª A. Salomaa tak»ew 1974 roku. Jego pomysª polegaª na wykorzystaniu ksi¡»ki telefonicznej.Numer telefonu oznaczaª pierwsz¡ liter¦ nazwiska abonenta. Bardzo ªatwojest zakodowa¢ dan¡ liter¦ je±li mamy do dyspozycji spis telefonów. Jednaktrudno jest przeszuka¢ caª¡ ksi¡»k¦ telefoniczn¡, aby odnale¹¢, na jak¡ liter¦zaczyna si¦ nazwisko wªa±ciciela numeru telefonicznego. Przykªadowy szyfr,

57

to914538761 914628841 914526316 914330826914692564 914539302 914540189

Jak wida¢ z tego przykªadu, szyfr jest do±¢ dªugi. St¡d idea funkcji skrótu.

6.2 Funkcje skrótu

Inaczej s¡ nazywane funkcjami haszuj¡cymi. Stosuje si¦ je do skróceniaszyfru. Chodzi o to, »e kryptogram jest zwykle dªugi (ok. 1012 bitów wprzypadku podpisu elektronicznego). Funkcja skrótu przeprowadza go naznacznie krótszy tekst (np. do 1000 bitów). Jest to mo»liwe, poniewa» niewszystkie liczby 1012-bitowe s¡ wykorzystane przez dany system kryptogra-�czny. Mo»liwe jest zatem utworzenie bijekcji.

6.3 poufno±¢ i autentyczno±¢.

Problem poufno±ci i autentyczno±ci pojawiª si¦ wrazem z systemami kryp-togra�cznymi o kluczu publicznym. Poufno±¢ jest to wymóg polegaj¡cy natym, aby przesyªana wiadomo±¢ mogªa by¢ odszyfrowana tylko przez adre-sata. Autentyczno±¢ jest to wymóg, aby adresat miaª pewno±¢, »e osoba,której podpis widnieje pod wiadomo±ci¡ jest nadawc¡.Brak poufno±ci i autentyczno±ci. Je±li mamy do czynienia z sieci¡ u»yt-kowników, którzy posªuguj¡ si¦ klasycznym systemem szyfrowania, to ka»dyz nich zna klucz szyfruj¡cy (a zatem i rozszyfrowuj¡cy) ka»dego innego u»yt-kownika sieci. Zatem nie mo»e tu by¢ mowy ani o poufno±ci ani o autentycz-no±ci wysyªanych wiadomo±ci.Poufno±¢ zachowana, ale brak autentyczno±ci. Zaªó»my, »e Piotrek iAgnieszka s¡ u»ytkownikami pewnej sieci. Wówczas oboje maj¡ swoje kluczepubliczne opublikowane w informatorze dla u»ytkowników. Je±li Agnieszkachce wysªa¢ do Piotrka wiadomo±¢ m, szyfruje j¡ najpierw kluczem publicz-nym Piotrka (powiedzmy FP ). Klucz rozszyfrowuj¡cy F

−1P ma Piotrek i tylko

on jest w stanie roszyfrowa¢ szyfr FP (m). Jednak»e Izka, mo»e podszy¢ si¦pod Agnieszk¦ i wysªa¢ do Piotrka swoj¡ wªasn¡ wiadomo±¢ m′. Szyfrujej¡ identycznie jak Agnieszka, tj. oblicza FP (m′). Oczywi±cie, Izka nawetje±li przechwyci kryptogram Agnieszki, nie jest w stanie go rozszyfrowa¢, alePiotrek nigdy nie jest pewien, od kogo otrzymaª wiadomo±¢. Mamy wi¦c

58

tu do czynienia z przypadkiem, kiedy kryptogram jest poufny (tzn. tylkoadresat mo»e go rozszyfrowa¢), ale nie jest autentyczny (tzn. adresat nie wiena pewno, czy osoba podpisana jest nadawc¡).Autentyczno±¢ zachowana, ale brak poufno±ci. Rozwa»my spraw¦ za-pªaty za zakupy za pomoc¡ karty kredytowej. Sama wiadomo±¢ (kwota trans-akcji, wykaz zakupionych towarów itp.) nie jest tu wa»na, wi¦c mo»e by¢ tek-stem jewnym, ale z którego konta pójdzie przelew jest rzecz¡ do±¢ istotn¡.Obecnie, autentyczno±¢ karty jest sprawdzana przez porównanie podpisówklienta na karcie i zªo»onego w obecno±ci sprzedawcy lub za pomoc¡ cztero-cyfrowego numeru identy�kacyjnego (PINu). Czasami, je±li bank stwierdzi,»e klient, który zwykle nie wydawaª du»o, nagle zaczyna ,,szasta¢� pieni¦dzmi,odpowiedni urz¦dnik dzwoni do niego i zadaje mnóstwo pyta«, które maj¡stwierdzi¢ autentyczno±¢. Skªadania podpisu, wstukiwania PINu oraz roz-mowy z urz¦dnikiem bankowym daªoby si¦ unikn¡¢ gdyby istniaªa w±ródwszystkich posiadaczy kart pewna sie¢ pozwalaj¡ca na wysªanie przy ka»dymu»yciu karty kredytowej swojego podpisu stwierdzaj¡cego autentyczno±¢.

Tego rodzaju podpis jest u»ywany w tak zwanym ,,immobilizerze� sa-mochodowym. Podpis jest elektronicznie zapisany w chipie wtopionym wkluczyk. Tylko tym kluczykiem mo»na uruchomi¢ dany samochód. Je»elikto± usiªuje wªo»y¢ do stacyjki inny klucz, odpowiedni chip zamontowanyw stacyjce wykrywa niezgodno±¢ i uruchamia szereg czynno±ci, tj. odcinapr¡d od stacyjki oraz paliwo od silnika. Oczywi±cie, je±li niepo»¡dana osobaposi¡dzie wªa±ciwy kluczyk, nie b¦dzie miaªa ona trudno±ci z uruchomieniemsamochodu.Poufno±¢ i autentyczno±¢ zachowana. Wyobra¹my sobie sie¢, któragrupuje inwestorów i maklerów. Inwestorzy obawiaj¡ si¦, »e ich maklerzymog¡ kupowa¢ akcje przyznaj¡c si¦ do ich zakupu dopiero gdy ich ceny ro-sn¡ (wtedy bior¡ prowizje), a je±li spadaj¡, twierdzi¢, »e dostali wyra¹nepolecenie zakupu akcji (na dowód pokazuj¡ zaszyfrowany tekst z poleceniemod inwestora. Maklerzy natomiast, boj¡ si¦, »e je±li zakupi¡ walory tra-c¡ce na warto±ci, »aden inwestor nie przyzna si¦ do wysªania kryptogramu zpoleceniem zakupu. Potrzeba tu wi¦c zachowania zarówno poufno±ci jak i au-tentyczno±ci. Jest to zachowane, je±li wiadomo±¢ jest najpierw zaszyfrowanakluczem prywatnym nadawcy, a nast¦pnie kluczem publicznym odbiorcy.

59

6.4 Wymiana kluczy

Systemy z kluczem publicznym s¡ jeszcze mªode i istniej¡ spore problemyz zastosowaniem ich w praktyce. Przede wszystkim, s¡ one znacznie wol-niejsze od systemów klasycznych, tj. liczba jednostek tekstu przesyªanychw ci¡gu sekundy jest istotnie mniejsza dla systemów z kluczem publicznym.Jest to gªówny powód, dla którego systemy te nie zostaªy wprowadzone dopowszechnago u»ytku. Jednak»e daj¡ one bardzo dobr¡ sposobno±¢ do prze-syªania (tajnych) kluczy systemów klasycznych. Klucze mo»na wymienia¢wi¦c cz¦sto bez korzystania z pomocy kurierów. Wi¦ksze obj¦to±ciowo infor-macje wysyªane s¡ ju» z wykorzystaniem metod klasycznych.

6.5 2-1 funkcje jednokierunkowe

Wpoprzednich podrozdziaªach omawiali±my pewne funkcje jednokierunkowe,które ze wzgl¦du na zastosowanie musiaªy by¢ wzajemnie jednoznaczne lubprzynajmniej ró»nowarto±ciowe. Okazuje si¦, »e funkcje, które przyjmuj¡jedn¡ warto±¢ dla dwóch argumentów (podobnie jak x2) maj¡ równie ciekawezastosowanie. Poka»emy, »e za ich pomoc¡ mo»na zagra¢ w orªa i reszk¦ przeztelefon. Idea tej zabawy jest prosta i mo»na j¡ wytªumaczy¢ natychmiast.Przypu±¢my, »e Alicja oraz Stefan chc¡ rozstrzygn¡¢, do kogo ma nale»e¢samochód. W tym celu mog¡ oni rzuci¢ monet¡ i zda¢ si¦ na los. Jednak»edzieli ich pewna odlegªo±¢ przez co mog¡ si¦ porozumiewa¢ wyª¡cznie przeztelefon. Maj¡ te» do dyspozycji pewn¡ funkcj¦ f , która warto±¢ y przyj-muje dla dwóch argumentów x1 oraz x2. Zakªadamy tutaj, »e znaj¡c pewienargument, bez trudu mo»na obliczy¢ warto±¢ funkcji odpowiadaj¡c¡ temuargumentowi, jednak je±li znamy jak¡± warto±¢, nie mo»emy obliczy¢ bez do-datkowych informacji ani jednego argumentu, który odpowiada tej warto±ci.Zakªadamy, »e Stefan nie zna tych dodatkowych informacji, natomiast Alicjazna. Ich gra wygl¡da nast¦puj¡co:

1. Stefan wybiera losowo argument x i oblicza warto±¢ y = f(x), któr¡wysyªa Alicji (argument x pozostawia w tajemnicy).

2. Alicja po otrzymaniu y i znaj¡c dodatkowe informacje, oblicza x1 orazx2. Rzut monet¡ polega teraz na losowym wybraniu jednego argumentux1 lub x2. Ten argument (zaªó»my, »e jest to x1) wysyªa ona Stefanowi.

60

3. Je±li x = x1 Stefan przegrywa, i nie mo»e si¦ z tego wykr¦ci¢, poniewa»je±li powie Alicji, »e wygraª, to ona za»¡da od niego drugiego elementu.

4. Je»eli x 6= x1, wygrywa Stefan i na dowód wygranej przesyªa Alicjix = x2.

Zauwa»my, »e dodatkowo, Alicja nie mo»e si¦ tu wykr¦ci¢ od wygranej.Natomiast Stefan, je±li koniecznie chce przegra¢, zaªatwia to bez problemu.Okazuje si¦, »e jest mo»liwe omini¦cie i tego mankamentu, ale odpowiednirezultat (znany dobrze w pewnych kr¦gach) nie zostaª do tej pory opubli-kowany.

W dalszej cz¦±ci wykªadu poznamy teorio-liczbowe i algebraiczne pod-stawy przytoczonych koncepcji kryptogra�cznych.

61

Rozdziaª 7

System RSA

Przy poszukiwaniu funkcji jednokierunkowej f , któr¡ chcemy zastosowa¢ wsystemie o kluczu publicznym, chcemy u»y¢ pomysªu wzgl¦dnie prostego dozastosowania. Z drugiej strony chcemy mie¢ pewno±¢, »e znalezienie f−1 nieb¦dzie ªatwe. Potrzebujemy wi¦c silnych dowodów empirycznych, którychmo»e dostarczy¢ nam historia poszukiwa« takiej funkcji.

7.1 Rozkªad liczb na czynniki

System RSA (Rivest � Shamir � Adleman), który tu przedstawimy, opartyjest na problemie znalezienia rozkªadu liczby zªo»onej na czynniki pierw-sze. Funkcj¡ jednokierunkow¡ jest tu funkcja okre±lona w zbiorze par liczbpierwszych o warto±ciach w zbiorze liczb naturalnych. Na przykªad, pomno-»enie dwóch dwu-cyfrowych liczb pierwszych, powiedzmy 23 i 47 nie powinnosprawi¢ nam wi¦kszego problemu. Natomiast pytanie o rozkªad liczby 2047(wiemy, »e jest ona iloczynem dwóch dwu-cyfrowych liczb pierwszych) jesttrudne.

Przypomnijmy, »e funkcj¡ Eulera ϕ(n) nazywamy moc zbioru liczb dodat-nich wzgl¦dnie pierwszych z n. Zauwa»my, »e je±li n = pq, gdzie p oraz q s¡liczbami pierwszymi, to znajomo±¢ warto±ci funkcji Eulera ϕ(n) = n+1−p−qjest równowa»na znajomo±ci liczb p i q. Istotnie, je±li znamy n, p oraz q, bezproblemu mo»emy obliczy¢ n + 1 − p − q. Je»eli natomiast znamy n orazϕ(n), to znamy te» n = pq oraz n + 1− ϕ(n) = p + q i »eby obliczy¢ p orazq, rozwi¡zujemy w miar¦ prosty ukªad równa« stopnia drugiego.

W przypadku systemu RSA, kluczem jawnym jest (n, e), gdzie n jest ilo-

62

czynem dwóch liczb pierwszych, a e jest liczb¡ wzgl¦dnie pierwsz¡ z ϕ(n).Kluczem tajnym jest natomiast (n, d), gdzie d jest liczb¡ odwrotn¡ do e mo-dulo ϕ(n). Znajomo±¢ rozkªadu liczby n oraz liczba ϕ(n) nie s¡ potrzebne doszyfrowania ani do deszyfrowania, wi¦c lepiej o nich zapomnie¢. Najpopular-niejsz¡ metod¡ ªamania RSA jest wªa±nie znajdywanie rozkªadu liczby n.

7.2 Liczby wybrane losowo

Nast¦pnym krokiem jest tu wygenerowanie klucza. Potrzebna do tego s¡losowe liczby pierwsze p oraz q i liczba losowa spomi¦dzy 1 i φ(pq). Gdymówimy o liczbie losowej, mamy na my±li liczb¦ wybran¡ przez pewien gene-rator liczb losowych b¡d¹ pseudolosowych. Tym generatorem jest maszyna,która generuje ci¡g liczb tak, aby nikt nie mógª przewidzie¢ jaka jest nast¦pnaliczba w ci¡gu, ani sam generator nie byª w stanie powtórzy¢ wygenerowa-nego wcze±niej ci¡gu. Nie zale»y nam tutaj, aby wykorzysta¢ najwi¦kszeznane liczby pierwsze, poniewa» te s¡ szybko znalezione przez postronnegointruza. Aby otrzyma¢ losow¡ liczb¦ pierwsz¡, najpierw generujemy liczb¦m (im wi¦ksz¡ tym lepiej). Je±li oka»e si¦ ona liczb¡ parzyst¡ zast¡pimy j¡przez m + 1. Nast¦pnie zastosujemy odpowiednie testy pierwszo±ci, aby zo-baczy¢, czy m jest pierwsza. Je±li nie, zast¦pujemy j¡ przez m+2, m+4 itd.,a» znajdziemy w ko«cu liczb¦ pierwsz¡. Poniewa» prawdopodobie«stwo zna-lezienia liczby pierwszej w pobli»u losowo wybranej liczby m wynosi 1/ lnm,mo»emy si¦ spodziewa¢, »e po przetestowaniu okoªo lnm liczb tra�my naliczb¦ pierwsz¡. Podobnie szukamy liczby losowej e, która jest wzgl¦dniepierwsza z φ(n).

Wspomniane testy pierwszo±ci opieraj¡ si¦ najcz¦±ciej na Maªym Twier-dzeniu Fermata oraz na liczbach pseudopierwszych.

7.1 Twierdzenie. (Maªe Twierdzenie Fermata) Je±li p jest liczb¡ pierwsz¡oraz a - p, to ap−1 ≡ 1 (mod p).

Liczb¡ pseudopierwsz¡ o podstawie a nazywamy tak¡ liczb¦ zªo»on¡ n,dla której an−1 ≡ 1 (mod n). W przeciwie«stwie do liczb pierwszych, liczbypseudopierwsze s¡ znacznie trudniejsze do znalezienia. Najmniejsz¡ liczb¡pseudopierwsz¡ o podstawie 2 jest 341, a o podstawie 3, 91.

63

7.3 Zasada dziaªania systemu RSA

Ka»dy u»ytkownik wybiera dwie liczby pierwsze p oraz q, oraz liczb¦ losow¡ e,która jest wzgl¦dnie pierwsza z ϕ(pq). Niech n = pq, e < φ(n) (mo»na wzi¡¢liczb¦ e modulo φ(n)) oraz d = e−1 (mod ϕ(n)). Kluczem szyfruj¡cym jestKE = (n, e). Mo»na go poda¢ do publicznej wiadomo±ci. Natomiast klu-czem rozszyfrowuj¡cym jest KD = (n, d). Ten klucz lepiej jest zachowa¢ wtajemnicy tak jak liczby p, q oraz ϕ(n). Przeksztaªceniem szyfruj¡cym jestfunkcja f : Zn → Zn okre±lona wzorem f(P ) ≡ P e (mod n). Przeksztaª-ceniem deszyfruj¡cym jest funkcja f−1 odwrotna do f i okre±lona wzoremf−1(C) ≡ Cd (mod n).

Pozostaje jeszcze wyja±ni¢, jakie jednostki tekstu b¦dziemy u»ywa¢. Cho-dzi tu przede wszystkim o to, aby ka»dy u»ytkownik systemu u»ywaª tychsamych jednostek. Zaªó»my wi¦c, »e teksty jawne i zaszyfrowane b¦d¡ za-pisane za pomoc¡ tego samego alfabetu licz¡cego N symboli. Wybieramyliczby k i l tak, aby Nk < n < N l. Jako jednostki tekstu jawnego we¹miemybloki po k liter, które b¦dziemy traktowali jako liczby k�cyfrowe w systemieo podstawie N . Podobnie, jednostkami zaszyfrowanymi b¦d¡ bloki po l liter.Zatem ka»dy blok tekstu zaszyfrowanego ma przypisan¡ warto±¢ liczbow¡mi¦dzy 0 i N l − 1.

7.2 Przykªad. Przyjmiemy N = 26, k = 3 i l = 4. Zatem jednostkitekstu jawnego s¡ trigramami, a jednostki tekstu zaszyfrowanego � tetra-gramami. Chcemy przesªa¢ wiadomo±¢ TAK do u»ytkownika A, który maklucz szyfruj¡cy (46927, 39423). W tym celu szukamy najpierw odpowied-nika liczbowego sªowa TAK. Jest to 19 · 262 + 0 · 26 + 10 = 12854. Na-st¦pnie obliczamy 1285439423 mod 46927 otrzymuj¡c w wyniku 14251 =0 · 263 + 21 · 262 + 2 · 26 + 3, a to daje nam kryptotekst avbc. Tym samymkluczem zaszyfrowano inny tekst uzyskuj¡c kryptogram b�c. Czy jeste± wstanie odtworzy¢ tekst jawny?

Adresat ma swój klucz rozszyfrowuj¡cy (46927, 26767), który pozwala muobliczy¢ 1425126767 mod 46927 = 12854, a to mu daje sªowo TAK.

U»ytkownik systemu RSA z powy»szego przykªadu wygenerowaª swojeklucze u»ywaj¡c liczb pierwszych 281 i 167. Oczywi±cie u»yli±my tutaj bar-dziej ,,wyobra»alne� liczby ni» to si¦ zwykle stosuje. Normalnie, liczby k i l s¡tak dobrane, aby Nk miaªo nie mniej ni» 200 cyfr dziesi¦tnych. �eby podnie±¢du»¡ liczb¦ do du»ej pot¦gi stosujemy algorytm iterowanego podnoszenia dokwadratu. Zajmuje on, O(log3 n) operacji na bitach.

64

7.4 Wpadka systemowa wspólny moduª

Przypu±¢my, »e dwóch u»ytkowników u»ywa tego samego moduªu n, tzn.maj¡ oni klucze (publiczne) postaci (n, e1) oraz (n, e2). Je±li ta sama wia-domo±¢ jest wysªana do obu u»ytkowników, to mo»na j¡ rozszyfrowa¢ bezznajomo±ci klucza rozszyfruj¡cego pod warunkiem, »e e1 oraz e2 s¡ wzgl¦d-nie pierwsze. Dokªadnie, je±li znamy me1modn oraz me2modn oraz zachodziNWD(e1, e2) = 1, to istniej¡ liczby caªkowite x, y takie, »e e1x + e2y = 1.Zatem

(me1)x(me2)y = me1x+e2ymodn = m.

Dla przykªadu przypu±¢my, »e n = 5038301, e1 = 787, e2 = 6785. Tekstjawny dzielimy tu na trigramy, które przechodz¡ w 5�gramy. Zaªó»my, »eprzechwycili±my teksty HOTIT oraz EOXNS. U»ywaj¡c algorytmu Euklidesadostajemy 888e1 − 103e2 = 1. przechwycone 5�gramy odpowiadaj¡ liczbom3457967 oraz 2089872. Obliczamy zatem

3457967888 · 2089872−103 mod 5038301

= 4458054 · 999321 mod 5038301

= 11502,

a to daje wiadomo±¢ jawn¡ rak.

7.5 Wpadka systemowa niski wykªadnik

Zaªó»my, »e k u»ytkowników posiada w kluczu ten sam wykªadnik, któryjest mniejszy od k, tj. ich klucze publiczne to (n1, e), n2, e), . . . , (nk, e),gdzie e < k. Przypu±¢my, »e do wszystkich k u»ytkowników zostaªa wysªanata sama wiadomo±¢ m. Zatem do i�tego u»ytkownika dociera wiadomo±¢yi = me mod ni. Poniewa» m < ni oraz e < k, wi¦c me < n1n2 . . . nk.U»ywaj¡c chi«skiego twierdzenia o resztach rozwi¡zujemy ukªad kongruencji

Y ≡ yi (mod ni) gdzie 1 ≤ i ≤ k.

Na podstawie tego» twierdzenia istnieje dokªadnie jedno rozwi¡zanie modulon1n2 . . . nk takiego ukªadu kongruencji je±li liczby n1, n2, . . . , nk s¡ wzgl¦dniepierwsze. W tym wypadku mamy me = Y i »eby obliczy¢ m wystarczy wzi¡¢zwykªy pierwiastek stopnia e z Y .

65

Rozwa»my dla przykªadu e = 3 oraz n1 = 2881, n2 = 2867, n3 = 3127.Szyfrujemy tu digramy tekstu, a tekst zaszyfrowany skªada si¦ z trigramów.Przypu±¢my, »e przechwycili±my wiadomo±ci BZG, BGX oraz CDZ wysªanedo naszych trzech u»ytkowników. Wiadomo±ciom tym odpowiadaj¡ liczby1332, 855 oraz 1455. Wiemy te», »e wszystkie trzy kryptogramy to jest tasama wiadomo±¢ jawna. U»ywaj¡c chi«skiego twierdzenia o resztach, ro-zwi¡zujemy ukªad kongruencji

Y ≡ 1332 (mod 2881) Y ≡ 855 (mod 2867) Y ≡ 1455 (mod 3127)

otrzymuj¡c Y = m3 = 211708736. Pierwiastek sze±cienny z tej ostatniejliczby wynosi 596, czyli tekstem jawnym jest wy.

66

Rozdziaª 8

Teorio-liczbowe podstawy RSA

8.1 Systemy pozycyjne

Stosowany powszechnie system zapisu liczb nazywamy systemem pozycyj-nym, poniewa» znaczenie cyfry zale»y od pozycji, na której si¦ owa cyfraznajduje. Poza tym, nasz system liczenia nazywamy dziesi¦tnym, poniewa»mamy dokªadnie 10 cyfr. Liczba cyfr w systemie pozycyjnym zale»y od pod-stawy. Dokªadnie, dowoln¡ liczb¦ caªkowit¡ nieujemn¡ n zapisujemy przypodstawie b ≥ 2 w postaci

(dk−1dk−2 . . . d1d0)b, (8.1)

gdzie dk−1, dk−2, . . . , d1, d0 s¡ liczbami caªkowitymi nieujemnymi oraz nie-wi¦kszymi od b− 1 nazywanymi cyframi. Zapis (8.1) oznacza, »e

n = dk−1bk−1 + · · ·+ d1b+ d0. (8.2)

Je»eli n jest liczb¡ ujemn¡ to wyra»enie po prawej stronie równo±ci (8.2)zacz¦liby±my od znaku −. Je»eli dk−1 nie jest zerem, to mówimy, »e n jestliczb¡ k-cyfrow¡ w systemie pozycyjnym o podstawie b. Je»eli b = 10 tonawiasy w (8.1) opuszczamy, gdy» wtedy mamy do czynienia ze zwykªymdziesi¦tnym systemem pozycyjnym. Podobnie opu±cimy nawiasy gdy wybórpodstawy jasno wynika z kontekstu. Zapis (8.2) nazywamy rozwini¦ciemliczby n przy podstawie b.

Je»eli b > 10, to pisownia niektórych cyfr jest uci¡»liwa (wymaga do-datkowych nawiasów) lub niejasna: (101)b mo»na rozumie¢ na dwa sposoby.

67

Dlatego dla oznaczenia cyfr 10, 11, 12, . . . u»ywamy liter: A, B, C, . . . Oczy-wi±cie mo»na u»ywa¢ liter lub innych znaków dla oznaczenia wszystkich cyfr.Na przykªad dla podstawy 26, która jest u»ywana w kryptogra�i, cyframi s¡po prostu litery alfabetu ªaci«skiego.

Cz¦sto zdarza si¦, »e trzeba przej±¢ od jednej podstawy systemu pozy-cyjnego do drugiej. Zwykle jest to przej±cie do podstawy 10 lub od pod-stawy 10. Przechodzenie do podstawy 10 polega na obliczeniu wyra»enia poprawej stronie (8.2). Gorzej jest przej±¢ od podstawy 10 do innej podstawy.Najbardziej naturalnym sposobem jest sekwencyjne dzielenie z reszt¡, którezademonstrujemy na przykªadzie.

8.1 Przykªad. Zapiszemy liczb¦ 346 w systemie trójkowym, czyli przy pod-stawie 3. Dzielimy 346 na 3 otrzymuj¡c 115, reszta 1. Zatem 346 = 115·3+1.Teraz dzielimy 115 na 3 otrzymuj¡c 38, reszta 1. St¡d 346 = 38 ·32 +1 ·3+1.Kontynuuj¡c ten proces otrzymamy

346 = 35 + 34 + 2 · 32 + 31 + 1,

czyli 346 = (110211)3.

Je»eli przechodzimy od podstawy b1 6= 10 do podstawy b2 6= 10, to mo»natu przechodzi¢ po±rednio przez podstaw¦ 10. Czasem jednak bardziej efek-tywne jest zapisanie b1 i cyfr w systemie o podstawie b2 oraz odpowiedniepogrupowanie. Je»eli dodatkowo b1 jest pot¦g¡ b2, to sposób ten jest bardzoszybki.Przykªady

8.2. Zapiszemy (548)16 w systemie dwójkowym. Poniewa» 16 = 24, 5 =1 · 22 + 1, 4 = 1 · 22 oraz 8 = 1 · 23, mamy

(548)16 = 5 · 162 + 4 · 16 +8 = 1 · 210 + 1 · 28 + 1 · 26 + 1 · 23 = (10101001000)2.

8.3. Zapiszemy n = (212021)3 w systemie o podstawie 9. Grupujemy cyfrypo 2 (bo 9 = 32) zaczynaj¡c od prawej strony: 21, 20, 21. (Je±li ,,nie starcza�cyfr na ostatni¡ grup¦, dodajemy z przodu odpowiedni¡ liczb¦ zer. Poniewa»(21)3 = 2 · 3 + 1 = 7, a (20)3 = 2 · 3 = 6, wi¦c n = (767)9.

Dziaªania arytmetyczne na liczbach w systemie o podstawie b wykonujemybez anga»owania w to podstawy 10. Dodawanie, odejmowanie i mno»eniepisemne przeprowadzamy tak jak dotychczas, przy czym przy ,,po»yczaniu�bierzemy nie 10 lecz b.

68

Tak»e uªamki mo»na rozwija¢ przy dowolnej podstawie. Maj¡ one (sko«-czon¡ lub niesko«czon¡ posta¢ (dk−1dk−2 . . . d1d0, d−1d−2 . . . )b. Warto tu za-uwa»y¢, »e przy zmianie podstawy, mog¡ te» zmieni¢ si¦ uªamki okresowe.Na przykªad 0, 33333 · · · = (0, 1)3, a 0, 5 = (0, 11111 . . . )3.

8.2 Iterowane podnoszenie do kwadratu

Podnoszenie du»ych liczb do pot¦g o jeszcze wi¦kszych wykªadnikach nie jestobliczeniowo trudne, ale gromadzenie du»ych liczb zabiera du»o pami¦ci. Wprzypadku zastosowa« w systemach kryptogra�cznych, mamy zawsze do czy-nienia z dziaªaniami w sko«czonych strukturach algebraicznych. To znaczniezmniejsza rz¡d liczb, którymi operujemy. Dla przykªadu obliczymy poteg¦348171( mod 1019). W tym celu zapisujemy

348171 = 34827+25+23+2+1

=

((((3482)2 · 348

)2)2

· 348

)22

· 348

2

· 348.

Nasze pot¦gowanie sprowadza si¦ zatem do podnoszenia do kwadratu lubmno»enia przez 348, przy czym za ka»dym razem wynik redukujemy modulo1019. Po wykonaniu oblicze« otrzymujemy 127.

8.3 Twierdzenie Eulera i

Maªe Twierdzenie Fermata

Twierdzenia te mog¡ znacznie uªatwi¢ pot¦gowanie liczb w arytmetyce modu-larnej. Uzasadniaj¡ te», dlaczego zaszyfrowany za pomoc¡ RSA szyfr mo»nate» rozszyfrowa¢.

8.4 Twierdzenie. (Eulera) Je»eli NWD(a, m) = 1, to aϕ(m) ≡ 1 (mod m).

Twierdzenie to mo»e by¢ udowodnione za pomoc¡ elementarnych metod,my jednak u»yjemy tu nieco ,,ci¦»szej broni�, a mianowicie znanego z teoriigrup faktu, »e dowolny element grupy podniesiony do pot¦gi, której wykªad-nikiem jest rz¡d grupy daje element neutralny.

69

Dowód. W grupie elementów odwracalnych pier±cienia Zm mamy dokªadnieϕ(m) elementów. Jest to wi¦c grupa sko«czona rz¦du ϕ(m). Zatem dowolnyjej element podniesiony do pot¦gi ϕ(m) daje element neutralny, czyli 1.

�atwym wnioskiem z twierdzenia Eulera jest nast¦puj¡ce twierdzenie.

8.5 Twierdzenie. (Maªe twierdzenie Fermata) Je»eli p jest liczb¡ pierwsz¡oraz p - a, to ap−1 ≡ 1 (mod p). Dla dowolnej liczby caªkowitej b zachodzikongruencja bp ≡ b (mod p). �

Nieco trudniejszy jest dowód poni»szego wniosku.

8.6 Wniosek. Je±li p - a i n ≡ m (mod p− 1), to an ≡ am (mod p).

Dowód. Przypu±¢my, »e n > m. Poniewa» p − 1|n −m, wi¦c mo»emy napi-sa¢ n = m+ c(p− 1) dla pewnej liczby naturalnej c. Mno»ymy przez siebiec razy kongruencj¦ ap−1 ≡ 1 (mod p) aby otrzyma¢ ac(p−1) ≡ 1 (mod p).�eby otrzyma¢ tez¦ wystarczy pomno»y¢ stronami ostatni¡ kongruencj¦ przezoczywiste przystawanie am ≡ am (mod p).

Podobnie uzasadniamy nast¦pny wniosek.

8.7 Wniosek. Je»eli liczby a oraz m s¡ wzgl¦dnie pierwsze oraz zachodzikongruencja r ≡ s (mod ϕ(m)), to ar ≡ as (mod m). �

Podamy teraz dwa przykªady zastosowa« powy»szych wniosków.

Przykªady.

8.7. Znajdziemy ostatni¡ cyfr¦ liczby 2100000000000 w systemie o podstawie 7.Wykªadnik 100000000000 daje reszt¦ 4 przy dzieleniu przez 7− 1 = 6. St¡d2100000000000 ≡ 24 (mod 7). Poniewa» 24 = 16, a 16 ≡ 2 (mod 7), wi¦cszukan¡ ostatni¡ cyfr¡ jest 2.

8.8. Znajdziemy ostatni¡ cyfr¦ 31234 w ukªadzie szestnastkowym. Mamy tuϕ(16) = 7, a 1234 ≡ 2 (mod 7). Zatem 31234 ≡ 9 (mod 16) i ostatni¡ cyfr¡jest 9.

Okazuje si¦, »e najni»sza pot¦ga a w Twierdzeniu Eulera jest cz¦sto mniej-sza ni» ϕ(m). Wynika to z faktu, »e rz¡d grupy nie jest, ogólnie rzecz bior¡c,rz¦dem elementu, ani nawet wykªadnikiem grupy. Na przykªad ϕ(105) = 48,ale dla a wzgl¦dnie pierwszych ze 105 mamy a12 ≡ 1 (mod 105). Poni»szetwierdzenie pokazuje jak ulepszy¢ pot¦g¦ a.

70

8.8 Twierdzenie. Przypu±¢my, »e m = pα11 p

α22 . . . pαkk , gdzie wszystkie pi s¡

ró»ne i pαii ||m. Niech n = NWW(ϕ (pα11 ) , ϕ (pα2

2 ) , . . . , ϕ (pαkk )). Wtedy mamyan ≡ 1 (mod m) dla ka»dego a wzgl¦dnie pierwszego z m.

Dowód. Z twierdzenia Eulera wynika aϕ(pαii ) ≡ 1 (mod pαii ) dla ka»dego

i ∈ {1, 2, . . . , k}. Mno»¡c t¦ kongruencj¦ stronami przez siebie n/pαii razyotrzymujemy an ≡ 1 (mod pαii ) dla ka»dego i. St¡d bezpo±rednio wynika, »edla dowolnego i mamy pαii |an− 1. Zatem i m|an− 1, a to nam daje tez¦.

Wracaj¡c do uwagi przed powy»szym twierdzeniem, zauwa»my, »e 105 =3 · 5 · 7 i 12 = NWW(ϕ(3), ϕ(5), ϕ(7)) = NWW(2, 4, 6).

8.9 Przykªad. Obliczymy 21000000 modulo 77. Mamy tu 77 = 7·11, ϕ(7) = 6,ϕ(11) = 10, NWW(6, 10) = 30. St¡d 230 ≡ 1 (mod 77). Nast¦pnie mamy1000000 = 30 · 33333 + 10, wi¦c 21000000 ≡ 210 ≡ 23 (mod 77).

8.4 liczby pseudo-pierwsze

Potrzebne s¡ du»e liczb pierwsze i to takie, których generalnie nikt nie zna.Pojawia si¦ zatem potrzeba szybkich algorytmów szukaj¡cych liczb pierw-szych lub testuj¡cych liczby na pierwszo±¢. Wi¦kszo±¢, a w zasadzie pra-wie wszystkie takie algorytmy s¡ algorytmami probabilistycznymi, w którychprawdopodobie«stwo, »e otrzymamy liczb¦ pierwsz¡ nie jest równe 1. Mo»esi¦ wi¦c zdarzy¢, »e otrzymana liczba jest zªo»ona.

Warunki równowa»ne pierwszo±ci liczby, jak np. Twierdzenie Wilsona,które mówi, »e liczba n jest pierwsza wtedy i tylko wtedy, gdy (n − 1)! ≡−1 (mod n), nie s¡ dobrym kryterium � ªatwiej sprawdzi¢ czy n jest liczb¡pierwsz¡ dziel¡c j¡ przez kolejne liczby nieparzyste ni» oblicza¢ (n−1)! (nawetmodulo n).

Dobrym testem pierwszo±ci jest Maªe Twierdzenie Fermata (8.5). Pro-blem w tym, i» nie jest to warunek równowa»ny pierwszo±ci. Na przykªad,2340 ≡ 1 (mod 341), chocia» 341 nie jest liczb¡ pierwsz¡. Nasze rozwa»aniaoprzemy jednak na tym twierdzeniu, badaj¡c które liczby zªo»one speªniaj¡tez¦ Maªego Twierdzenia Fermata.

Liczb¦ zªo»on¡ n nazywamy pseudopierwsz¡ przy podstawie a (lub a-pseudopierwsz¡), je±li

an−1 ≡ 1 (mod n). (8.3)

71

Piszemy wówczas w skrócie: n jest psp(a). Zauwa»my, »e je»eli NWD(a, n) = 1,to warunek 8.3 jest równowa»ny kongruencji an−1 ≡ 1 (mod n).

Zauwa»my, »e liczba 341 jest 2-pseudopierwsza. Jak pokazaª Sarrus w1819 roku, jest to najmniejsza liczba pseudopierwsza przy podstawie 2. Ko-lejne odkrywane liczby psp(2) byªy nieparzyste. Dopiero w 1950, D.H. Leh-mer odkryª pierwsz¡ parzyst¡ liczb¦ 2-pseudopierwsz¡. Najmniejsz¡ liczb¡3-pseudopierwsz¡ jest natomiast 91.

Okazuje si¦, ze liczb pseudopierwszych (o dowolnej podstawie) jest nie-sko«czenie wiele, ale s¡ one rozmieszczone do±¢ »zadko". Na przykªad mamytylko 5597 liczb psp(2) mniejszych od miliarda. Tymczasem liczb pierwszychw tym przedziale jest ponad 50 milionów. Zatem, je»eli pewna liczba nmniej-sza od miliarda speªnia warunek 8.3 dla a = 2, to prawdopodobie«stwo, »e njest pierwsza jest wi¦ksze od 0, 9999. Liczba, która jest psp(2) nie musi by¢jednocze±nie psp(3). Okazuje si¦, »e liczb mniejszych od miliarda, które s¡pseudopierwsze jednocze±nie przy podstawie 2, 3 i 5 jest tylko 685. Mo»nawi¦c zrobi¢ caªkiem por¦czn¡ tablic¦ tych liczb, która pozwoli nam odrzuca¢liczby zªo»one speªniaj¡ce tez¦ Maªego Twierdzenia Fermata.

Wydaje si¦ wi¦c, »e bior¡c odpowiednio du»o pocz¡tkowych liczb pierw-szych jako podstawy dojdziemy w ko«cu do sytuacji, w której nie znajdziemyliczb pseudopierwszych mniejszych od okre±lonej liczby. Jak odkryª w 1912roku R.D. Carmichael, jest to sytuacja niemo»liwa. Liczb¦ zªo»on¡ n nazy-wamy liczb¡ Carmichaela, je±li n jest psp(a) dla ka»dej liczby a wzgl¦dniepierwszej z n. Jak pokazaª w roku 1992 A. Granville, liczb Carmichaela jestniesko«czenie wiele. Podamy przykªad jednej z nich.

8.10 Przykªad. Mamy 561 = 3 · 11 · 17. Niech a b¦dzie liczb¡ wzgl¦dniepierwsz¡ z 561. Korzystaj¡c z Maªego Twierdzenia Fermata, otrzymujemy:

a2 ≡ 1 (mod 3) ⇒ a560 ≡ (a2)280 ≡ 1 (mod 3)

a10 ≡ 1 (mod 11) ⇒ a560 ≡ (a10)56 ≡ 1 (mod 11)

a16 ≡ 1 (mod 17) ⇒ a560 ≡ (a16)35 ≡ 1 (mod 17).

Dalej, z chi«skiego twierdzenia o resztach, dostajemy a560 ≡ 1 (mod 561),co oznacza, »e 561 jest liczb¡ Carmichaela.

Do±¢ du»y post¦p w skuteczno±ci testów opartych na liczbach pseudo-pierwszych daje nast¦puj¡ca obserwacja. Je±li liczba p jest pierwsza, to kon-gruencja x2 ≡ 1 (mod p) ma dokªadnie 2 rozwi¡zania: 1 i −1 (twierdzenieLagrange'a). Z tego samego twierdzenia wynika, »e je»eli x2 ≡ 1 (mod n)

72

ma wi¦cej ni» dwa rozwi¡zania, to n musi by¢ liczb¡ zªo»on¡. Zatem problemtestowania liczby n na pierwszo±¢ sprowadza si¦ do szukania nietrywialnychpierwiastków stopnia 2 z jedynki modulo n.

Z oczywistych wzgl¦dów, b¦dziemy dalej rozwa»a¢ tylko liczby nieparzy-ste n. Skoro n jest nieparzysta, to n−1 mo»na zapisa¢ w postaci 2rs, gdzie sjest liczb¡ nieparzyst¡ oraz r > 0. Przypu±¢my, »e liczba n jest pierwsza lubpseudopierwsza przy podstawie a. Wówczas an−1 ≡ 1 (mod n). Rozwa»amypo kolei liczby

x0 = asmodn, x1 = a2smodn, . . . xr = a2rsmodn.

Zauwa»my, »e aby obliczy¢ warto±ci wszystkich wyrazów ci¡gu

X = (x0, x1, . . . , xr),

wystarczy obliczy¢ x0, a nast¦pnie podnosi¢ j¡ sukcesywnie do kwadratu iredukowa¢ modulo n otrzymuj¡c kolejne wyrazy. Zauwa»my, »e mamy tu 3mo»liwo±ci:

1. istnieje 0 < t ≤ r, takie »e xt = 1 oraz xt−1 = −1,

2. istnieje 0 < t ≤ r, takie »e xt = 1, xt−1 6= ±1,

3. x0 = 1.

Oczywi±cie, je±li xt = 1, to dla i > t mamy xi = 1. Zatem je±li w pewnymmomencie konstrukcji ci¡gu X pojawi si¦ 1, to wszystkie nast¦pne wyrazy te»s¡ równe 1. Poniewa» xr = an−1, wi¦c xr = 1. Je±li speªniony jest warunek 2,to oznacza to, »e kongruencja x2 ≡ 1 (mod n) ma wi¦cej ni» dwa pierwiastki(bo 1, −1 oraz xt−1), czyli n na pewno nie jest liczb¡ pierwsz¡. Pozostaªeprzypadki daj¡ nast¦puj¡c¡ de�nicj¦.

Przypu±¢my, »e n jest nieparzyst¡ psp(a). Mówimy, »e n jest liczb¡ silniepseudopierwsz¡, przy podstawie a lub spsp(a), je»eli as ≡ 1 (mod n) lubistnieje 0 < t < r, takie »e a2ts ≡ −1 (mod n), gdzie n − 1 = 2rs, s jestliczb¡ nieparzyst¡ oraz r > 0.

W terminologii ci¡gu X mamy, »e n jest spsp(a), je±li jest speªnionywarunek 1 lub 3.

8.11 Przykªad. Rozwa»my najmniejsz¡ psp(2), czyli 341. Mamy 340 =22 · 85 oraz x0 = 32, x1=1. Oznacza to, »e 341 nie jest spsp(2). Co wi¦-cej, poniewa» x0 jest nietrywialnym pierwiastkiem kwadratowym z 1 mo-dulo 341, wi¦c mo»emy znale¹¢ rozkªad 341 obliczaj¡c NWD(32− 1, 341) = 31oraz NWD(32 + 1, 341) = 11.

73

8.12 Przykªad. We¹my n = 561. Jest to liczba Carmichaela, czyli jest onapseudopierwsza przy ka»dej podstawie. Mamy 560 = 24 · 35 i niech a = 2.Wówczas x0 = 263, x1 = 166, x2 = 67, x3 = 1. Zatem 561 nie jest spsp(2).

8.13 Przykªad. Najmniejsz¡ liczb¡ silnie pseudopierwsz¡ przy podstawie 2jest 2047 = 23 ·89. Poka»emy, »e jest to istotnie liczba silnie pseudopierwsza.Mamy 2046 = 2 · 1023 oraz x0 = 1.

Wszystkich liczb psp(2) mniejszych od dziesi¦ciu miliardów jest 14884,ale liczb spsp(2) jest ju» tylko 3291. Najmniejsz¡ liczb¡ b¦d¡c¡ jednocze±niespsp(2) oraz spsp(3) jest 1373653 = 829 · 1657. Nie ma liczby mniejszejod dziesi¦ciu miliardów, która by byªa jednocze±nie spsp(a) dla 2 ≤ a ≤13. Mimo to liczb silnie pseudopierwszych przy dowolnej podstawie jestniesko«czenie wiele, co udowodnili C. Pomerance, J.L. Selfridge i S.S. Wag-sta� w 1980 roku.

8.5 Chi«skie twierdzenie o resztach

Twierdzenie, które tu przedstawimy zostaªo odkryte i wykorzystywane w ±re-dniowiecznych Chinach. Przyczyn¡ tego odkrycia byªy trudno±ci z mno»e-niem i dodawaniem du»ych liczb � ªatwiej jest nauczy¢ si¦ na pami¦¢ kilkukombinacji, ni» wykonywa¢ dziaªania arytmetyczne w pami¦ci. A dokªad-nie, kiedy dowódca chciaª zliczy¢ swoje wojsko, kazaª ustawi¢ si¦ »oªnierzomw dwu-szeregu, nast¦pnie w trzy-szeregu, potem w pi¦cio-szeregu itd. Liczba,,niesparowanych� »oªnierzy w ka»dym z tych ustawie« (czyli reszty z dzie-lenia ogólnej liczby »oªnierzy przez 2, 3, 5, . . . ) dawaªy liczb¦ wszystkich»oªnierzy. �eby skonkretyzowa¢ nasze my±lenie, rozwa»my nast¦puj¡cy przy-kªad.

8.14 Przykªad. Po ustawieniu caªego wojska w 3-, 5- i 7-szeregu dosta-li±my, odpowiednio 2, 1 oraz 6 niesparowanych »oªnierzy. Jaka jest liczebno±¢oddziaªu, je»eli wiadomo, »e »oªnierzy jest mniej ni» 100?

Formalizuj¡c zadanie, niech x b¦dzie liczb¡ »oªnierzy. Zatem reszty z dzie-lenia x przez 3, 5 oraz 7, to 2, 1 i 6. St¡d

x ≡ 2 (mod 3) (8.4)

x ≡ 1 (mod 5) (8.5)

x ≡ 6 (mod 7) (8.6)

74

Powy»szy system trzech kongruencji rozwi¡»emy korzystaj¡c z dowodu na-st¦pnego twierdzenia.

8.15 Twierdzenie (Chi«skie twierdzenie o resztach). Przypu±¢my, »e m1,m2, . . . , mr s¡ parami wzgl¦dnie pierwsze. Wówczas ukªad kongruencji

x ≡ a1 (mod m1)

x ≡ a2 (mod m2)

...

x ≡ ar (mod mr)

(8.7)

ma jednoznaczne rozwi¡zanie modulo m1m2 . . .mr.

Dowód. Wprowad¹my nast¦puj¡ce oznaczenia: M = m1m2 . . .mr, Mi = Mmi,

xi = M−1i mod mi dla 1 ≤ i ≤ r. Rozwa»my teraz liczb¦

x = a1M1x1 + a2M2x2 + · · ·+ arMrxr.

Poniewa» dla j 6= i zachodzi Mj ≡ 0 (mod xi), wi¦c x ≡ aiMixi (mod mi)dla ka»dego i. Ale Mixi ≡ 1 (mod mi), wi¦c x ≡ ai (mod mi) dla 1 ≤ i ≤ r.

Pozostaje jeszcze udowodni¢ jednoznaczno±¢. Niech x1 oraz x2 b¦d¡dwoma rozwi¡zaniami ukªadu (8.7). Zatem x1 ≡ x2 (mod mi) dla 1 ≤ i ≤ r.St¡d mi | x1 − x2, a poniewa» m1, m2, . . . mr s¡ wzgl¦dnie pierwsze, wi¦cM | x1 − x2. Zatem dwa rozwi¡zania (8.7) ró»ni¡ si¦ o wielokrotno±¢ M iukªad ten ma jednoznaczne modulo M rozwi¡zanie.

W odró»nieniu od dowodów wielu innych podobnych twierdze«, dowódchi«skiego twierdzenia o resztach daje wzór na rozwi¡zanie ukªadu kongru-encji.

8.16 Przykªad. Rozwa»my ukªad kongruencji z przykªadu 8.14. Stosuj¡coznaczenia dowodu twierdzenia 8.15, mamy M = 105 oraz

i mi ai Mi xi

1 3 2 35 22 5 1 21 13 7 6 15 1

75

St¡d

x ≡ 2 · 35 · 2 + 1 · 21 · 1 + 6 · 15 · 1 (mod 105)

≡ 140 + 21 + 90 (mod 105)

≡ 251 (mod 105)

≡ 41 (mod 105).

Zaªo»enie o kopierwszo±ci moduªów jest do±¢ istotnym ograniczeniem.Na przykªad, ukªadu kongruencji

x ≡ 3 (mod 8)

x ≡ 7 (mod 12)(8.8)

nie mo»na rozwi¡za¢ stosuj¡c twierdzenia 8.15, poniewa» 8 oraz 12 nie s¡wzgl¦dnie pierwsze. Nie oznacza to jednak, »e ukªad ten nie ma rozwi¡zania.Rozwi¡»emy go w nast¦pnym przykªadzie.

8.17 Przykªad. Aby rozwi¡za¢ ukªad kongruencji 8.8 zapiszmy najpierw12 = 4 · 3 i rozbijmy drug¡ kongruencj¦ ukªadu na dwie kongruencje x ≡ 7(mod 4) i x ≡ 7 (mod 3). Mamy zatem ukªad trzech kongruencji

x ≡ 3 (mod 8)

x ≡ 3 (mod 4)

x ≡ 1 (mod 3).

(8.9)

Ale rozwi¡zanie pierwszej kongruencji ukªadu (8.9) speªnia te» drug¡ kon-gruencj¦, wi¦c druga kongruencja jest niepotrzebna. Otrzymujemy wi¦c rów-nowa»ny (8.8) ukªad kongruencji

x ≡ 3 (mod 8)

x ≡ 1 (mod 3).

Ostatni ukªad rozwi¡zujemy stosuj¡c chi«skie twierdzenie o resztach (8.15),otrzymuj¡c x ≡ 19 (mod 24).

76

8.6 Kongruencje stopnia 2

Rozwa»my nast¦puj¡cy przykªad

8.18 Przykªad. Chcemy znale¹¢ wszystkie liczby n, których ostatnie trzycyfry s¡ takie same jak w n2. Od razu zauwa»amy, »e takimi liczbami s¡0 oraz 1. Po chwili zauwa»amy te», »e 1000, 1001 i wszystkie liczby ko«-cz¡ce si¦ na 000 lub 001 maj¡ wymagan¡ wªasno±¢. Dochodzimy wi¦c dokongruencji

n ≡ n2 (mod 1000), (8.10)

której rozwi¡zanie da nam wszystkie szukane liczby. Jest to kongruencjadrugiego stopnia (f(n) = n− n2). Jej rozwi¡zaniami (modulo 1000) s¡ 0, 1,376, 625.

Gdyby w przykªadzie 8.18 moduª byª maªy, to kongruencj¦ (8.10) rozwi¡-zaliby±my podstawiaj¡c za n wszystkie nieujemne liczby caªkowite mniejszeod m. Metoda ta nie pracuje, je±li m jest du»¡ liczb¡. W rozdziale tympoka»emy, »e kongruencje o moduªach zªo»onych mo»na zredukowa¢ do kon-gruencji o moduªach pierwszych. To pozwoli nam rozwi¡za¢ niektóre kon-gruencje. Nie b¦dziemy tu wprowadza¢ skomplikowanej teorii pozwalaj¡cejnam rozwi¡za¢ ka»d¡ kongruencj¦.

Pierwiastkiem modulo m wielomianu f(x) o wspóªczynnikach caªkowitychnazywamy tak¡ liczb¦ r, »e f(r) ≡ 0 (mod m). Je±li r jest pierwiastkiemwielomianu f(x) modulo m oraz r ≡ r′ (mod m), to f(r) ≡ f(r′) (mod m),czyli r′ te» jest pierwiastkiem wielomianu f(x) modulo m. Nasze rozwa»aniana temat pierwiastków b¦dziemy ogranicza¢ do Zm i mówi¡c ,,rozwi¡zanie�mamy na my±li rozwi¡zanie modulo m.

Przykªady.

8.19. Wielomian x2 + 2 nie ma pierwiastków modulo 7. Sprawdzamy topodstawiaj¡c za x kolejne liczby 0, 1, 2, 3, 4, 5, 6.

8.20. Wielomian x2 − 2 ma w Z7 dokªadnie dwa pierwiastki: 3 i 4.

Zauwa»my, »e wielomian f(x) z przykªadu 8.18 byª stopnia drugiego imiaª dokªadnie 4 pierwiastki modulo 1000. Jak wiadomo, w ciaªach licz-bowych, wielomian nie mo»e mie¢ wi¦cej pierwiastków ni» jego stopie«. Wszczególno±ci, wielomian stopnia 2 nie mo»e mie¢ trzech pierwiastków.

77

8.21. Wielomian x2 − 1 ma w Z12 cztery pierwiastki: 1, 5, 7 oraz 11.

Rozwa»ymy teraz metod¦ redukcji moduªu zªo»onego m na moduªy b¦-d¡ce pot¦gami liczb pierwszych z rozkªadu m. Je±li m = pα1

1 pα22 . . . pαkk , to

kongruencja f(x) ≡ 0 (mod m) implikuje k kongruencji f(x) ≡ 0 (mod pαii ),gdzie 1 ≤ i ≤ k. Odwrotna implikacja tak»e zachodzi, poniewa» pot¦giró»nych liczb pierwszych s¡ kopierwsze.

8.22 Przykªad. Rozwa»my kongruencj¦ x2 ≡ 1 (mod 105). Poniewa» 105 =3 ·5 ·7, wi¦c nasza kongruencja jest równowa»na ukªadowi trzech kongruencji

x2 ≡ 1 (mod 3)

x2 ≡ 1 (mod 5)

x2 ≡ 1 (mod 7).

Ka»d¡ z powy»szych kongruencji rozwi¡zujemy podstawiaj¡c kolejne liczbyi otrzymujemy w trzech przypadkach po dwa rozwi¡zania: 1 i 2 modulo 3,1 i 4 modulo 5 oraz 1 i 6 modulo 7. Dowolna kombinacja tych rozwi¡za«daje rozwi¡zanie modulo 105. Oznaczmy przez r pierwiastek wielomianux2 − 1 modulo 105. r jest jednym z rozwi¡za« o±miu poni»szych ukªadówkongruencji.

r ≡ 1 (mod 3) r ≡ 2 (mod 3) r ≡ 1 (mod 3)

r ≡ 1 (mod 5) r ≡ 1 (mod 5) r ≡ 4 (mod 5)

r ≡ 1 (mod 7), r ≡ 1 (mod 7), r ≡ 1 (mod 7),

r ≡ 2 (mod 3) r ≡ 1 (mod 3)

r ≡ 4 (mod 5) r ≡ 1 (mod 5)

r ≡ 1 (mod 7), r ≡ 6 (mod 7),

r ≡ 2 (mod 3) r ≡ 1 (mod 3) r ≡ 2 (mod 3)

r ≡ 1 (mod 5) r ≡ 4 (mod 5) r ≡ 4 (mod 5)

r ≡ 6 (mod 7), r ≡ 6 (mod 7), r ≡ 6 (mod 7).

Rozwi¡zaniami (modulo 105) tych ukªadów kongruencji s¡, kolejno, 1, 71,64, 29, 76, 41, 34 i 104.

78

Wracaj¡c do przykªadu 8.18, kongruencja 8.10 jest równowa»na ukªadowikongruencji

n ≡ n2 (mod 23)

n ≡ n2 (mod 53).(8.11)

Pierwsz¡ kongruencj¦ z (8.11) mo»emy jeszcze rozwi¡za¢ podstawiaj¡c ko-lejne liczby od 0 do 7. Przy drugiej kongruencji metoda ta zawodzi ze wzgl¦duna zbyt wiele liczb. Zastosujemy wi¦c inn¡ metod¦. Poniewa» kongruencj¦n ≡ n2 (mod 5) speªniaj¡ dwie liczby (modulo 5) 0 oraz 1, wi¦c kongruencj¦

n ≡ n2 (mod 52) (8.12)

speªniaj¡ liczby postaci 0+5k1 oraz 1+5l1. Podstawiamy te liczby do (8.12)otrzymuj¡c 5k1 ≡ 0 (mod 52) oraz 5l1 ≡ 10l1 (mod 52). St¡d kongruencjek1 ≡ 0 (mod 5) i l1 ≡ 2l1 (mod 5), które daj¡ k1 = 0 oraz l1 = 0. Mamyzatem 2 rozwi¡zania modulo 25: 0 oraz 1. Rozwi¡zaniami modulo 125 drugiejkongruencji z (8.12) s¡ liczby postaci 52k2 oraz 1+52l2. Wykonuj¡c podobneobliczenia jak powy»ej dostajemy dwa rozwi¡zania: 0 i 1. Aby rozwi¡za¢zadanie postawione w przykªadzie 8.18, wystarczy rozwi¡za¢ cztery ukªadykongruencji

r ≡ e1 (mod 23)

r ≡ e2 (mod 53),

gdzie za e1 oraz e2 podstawiamy 0 lub 1. Cztery szukane rozwi¡zania to 0,1, 376 i 625.

8.23 Przykªad. Rozwi¡»emy kongruencj¦

x2 + 4x+ 2 ≡ 0 (mod 49). (8.13)

Mamy tutaj f(x) = x2+4x+2 oraz 49 = 72. Zaczynamy wi¦c od kongruencjix2 + 4x + 2 ≡ 0 (mod 7), dla której znajdujemy rozwi¡zanie podstawiaj¡cpo kolei wszystkie liczby od 0 do 6. Znajdujemy dwa pierwiastki x1 = 1oraz x2 = 2. Zatem pierwiastki kongruencji (8.13), to 1 + 7k oraz 2 + 7l.Podstawiajac je do (8.13) otrzymujemy

42k ≡ −7 (mod 49) oraz 7l ≡ −14 (mod 49),

co redukuje si¦ do

6k ≡ −1 (mod 7) oraz l ≡ −2 (mod 7)

i ostatecznie daje rozwi¡zania x1 = 8 oraz x2 = 37.

79

8.24 Przykªad. Rozwi¡»emy kongruencj¦

x2 + x+ 7 ≡ 0 (mod 9). (8.14)

Jedynym pierwiastkiem kongruencji x2 + x+ 7 ≡ 0 (mod 3) jest x0 = 1. Alezapisuj¡c x = 1 + 3k i podstawiaj¡c do (8.14), otrzymujemy 0 ≡ 0 (mod 9),wi¦c x1 = 1 + 3 · 0 = 1, x2 = 1 + 3 · 1 = 4 oraz x3 = 1 + 3 · 2 = 7 s¡pierwiastkami (8.14).

8.25 Przykªad. Poszukamy pierwiastków kwadratowych z 1 modulo 16.Rozwa»ymy wi¦c wielomian f(x) = x2 − 1. Modulo 8, ma on 4 pierwiastki:x01 = 1, x02 = 3, x03 = 5 i x04 = 7. Dalej szukamy ki, gdzie xi = x0i + 8kioraz f(xi) ≡ 0 (mod 16) dla i ∈ {1, 2, 3, 4}. Otrzymujemy sprzeczno±¢ dlak2 i k3 oraz 0 ≡ 0 (mod 16) dla k1 i k2. Zatem pierwiastkami kwadratowymiz jedynki modulo 16 s¡ 1, 9, 7 i 15.

Zako«czymy ten podrozdziaª jeszcze jednym przykªadem, który ma du»eznaczenie w kryptogra�i.

8.26 Przykªad. Przypu±¢my, »e p i q s¡ ró»nymi liczbami pierwszymi orazn = pq. Wówczas kongruencja x2 ≡ 1 (mod n) ma dokªadnie 4 rozwi¡zania,poniewa» ka»da z kongruencji x2 ≡ 1 (mod p) oraz x2 ≡ 1 (mod q) madokªadnie dwa rozwi¡zania. Rozwi¡zania ±1 nazywamy trywialnymi. Je±lix jest nietrywialnym rozwi¡zaniem, to NWD(x− 1, n) oraz NWD(x+ 1, n) s¡liczbami p i q. Zatem je±li znamy nietrywialne rozwi¡zanie kongruencji x2 ≡ 1(mod n), to znamy te» rozkªad liczby n. Odwrotnie, je±li znamy rozkªadliczby n, czyli p oraz q, to rozwi¡zania kongruencji x2 ≡ 1 (mod n) mo»emyotrzyma¢ korzystaj¡c z chi«skiego twierdzenia o resztach dla czterech ukªa-dów kongruencji:

x ≡ e1 (mod p), x ≡ e2 (mod q)

dla e1, e2 ∈ {0, 1}.

8.7 Gra w orªa i reszk¦ przez telefon

Wykorzystamy tu stosunkowo maªe liczby, »eby caªy czas kontrolowa¢ prze-bieg gry. Niech wi¦c n = 341 = 11 · 31. Powró¢my do Alicji i Stefana, którzysi¦ ju» pojawili na tym wykªadzie. Liczby 11 oraz 31 s¡ znane Alicji, a Stefanzna tylko ich iloczyn, tj. 341.

80

1. Stefan wybiera losowo liczb¦ 0 < x ≤ 340 i oblicza warto±¢ x2. Zaªó»my,»e x = 134, wi¦c x2 = 224. Alicja otrzymuje tylko liczb¦ 224.

2. Alicja po otrzymaniu y = 224 oraz wiedz¡c, »e 341 = 11 · 31, obliczacztery pierwiastki równania x2 = 224 modulo 341. Robi to w nast¦pu-j¡cy sposób. Poniewa» x2 ≡ 224 (mod 341), wi¦c

x2 ≡ 224 ≡ 4 (mod 11)

x2 ≡ 224 ≡ 7 (mod 31)

st¡d mamy jedn¡ z czterech mo»liwo±cix ≡ ± 2 (mod 11)

x ≡ ± 10 (mod 31)

Stosuj¡c oznaczenia z dowodu chi«skiego twierdzenia o resztach roz-wi¡zujemy powy»szy ukªad nast¦puj¡co: a1 = 2, m1 = 11, a2 = 10,m2 = 31, M = 341. Obliczamy teraz M1 = 31 oraz M2 = 11. Stosuj¡calgorytm Euklidesa lub w inny sposób obliczamy N1 = 6 i N2 = 17.Teraz ju» bez trudu otrzymujemy

x = 2 · 31 · 6 + 10 · 11 · 17 = 2242,

co modulo 341 daje 196. Alicja mo»e t¦ liczb¦ potraktowa¢ jako swoj¡szcz¦±liw¡ i wysªa¢ j¡ Stefanowi, lub te» obliczy¢ trzy pozostaªe liczbyrozwi¡zuj¡c nast¦puj¡ce ukªady kongruencji

x ≡ −2 (mod 11); x ≡ 2 (mod 11); x ≡ −2 (mod 11);x ≡ 10 (mod 31); x ≡ −10 (mod 31); x ≡ −10 (mod 31).

Wówczas do dyspozycji b¦dzie miaªa liczby 196 oraz 134 (tak»e −196i −134, ale to si¦ nie liczy) i b¦dzie w prawdziwej rozterce decyduj¡c,czy ma wysªa¢ x2 = 196, czy te» x1 = 134.

3. Je±li wysªaªa x1 = 134 Stefan ma pecha, poniewa» nie zna on liczby196, której Alicja natychmiast za»¡da.

4. Je»eli jednak Alicja wysªaªa x2 = 196, wygrywa Stefan i na dowódwygranej przesyªa Alicji liczb¦ 134.

Zauwa»my, »e mo»emy tu zastosowa¢ ka»d¡ liczb¦ n, która jest iloczynemdwóch liczb pierwszych p i q, przy czym je±li gramy faktycznie o samochód

81

to liczby te musz¡ by¢ na tyle du»e i tak dobrane, »eby nie mo»na byªo zbytszybko znale¹¢ rozkªadu liczby n. Liczby p = 11 oraz q = 31 z powy»-szego przykªadu mog¡ co najwy»ej sªu»y¢ do gry o rozbite lusterko boczne.Zauwa»my te», »e w punkcie 4, Stefan mo»e udowodni¢ swoj¡ wygran¡ znaj-duj¡c bez problemu rozkªad liczby n, poniewa» NWD(x1 − x2, n) jest wi¦kszyod 1, czyli stanowi nietrywialny dzielnik liczby n.

82

Rozdziaª 9

Zastosowania arytmetyki

modulo m do rozkªadu liczb

Najpopularniejsz¡ metod¡ ªamania szyfru RSA jest próba znalezienia kluczadeszyfruj¡cego. Jest to równowa»ne znalezieniu rozkªadu liczby n na czyn-niki. Zaproponujemy tu kilka metod opartych o Twierdzenie Eulera orazMaªe Twierdzenie Fermata.

9.1 Wzory skróconego mno»enia

Zaczniemy od nast¦puj¡cego prostego wniosku, który znamy z tzw. ,,wzorówskróconego mno»enia�

9.1 Twierdzenie. Dla dowolnej liczby caªkowitej b i dowolnej liczby natu-ralnej n liczba bn − 1 jest podzielna przez b− 1. Iloraz jest równy

bn−1 + bn−2 + · · ·+ b2 + b+ 1.

Dowód. Korzystamy ze znanej to»samo±ci

bn − 1 = (b− 1)(bn−1 + bn−2 + · · ·+ b2 + b+ 1).

Zamieniaj¡c b na bm otrzymujemy natychmiast nast¦puj¡cy wniosek.

9.2 Wniosek. Dla ka»dej liczby caªkowitej b i dowolnych liczb naturalnychn i m zachodzi równo±¢

bmn − 1 = (bm − 1)(bm(n−1) + bm(n−2) + · · ·+ b2m + bm + 1).

83

Jako przykªad zastosowania powy»szego wniosku zobaczmy, »e 235 − 1dzieli si¦ przez 31 oraz przez 127. Ciekawszym spostrze»eniem jest tu fakt,»e je±li 2n − 1 jest liczb¡ pierwsz¡, to n jest tak»e liczb¡ pierwsz¡. Liczbyzªo»one Mersenne'a (tzn. liczby postaci 2p − 1, gdzie p jest liczb¡ pierwsz¡)s¡ kontrprzykªadem na to, »e twierdzenie odwrotne nie zachodzi.

9.3 Twierdzenie. Niech liczba b b¦dzie wzgl¦dnie pierwsza z liczb¡ m i niecha i c b¦d¡ liczbami naturalnymi. Je±li ba ≡ 1 (mod m), b c ≡ 1 (mod m)oraz d = NWD(a, c), to bd ≡ 1 (mod m).

Dowód. Zapiszmy d = ua+vc, gdzie u i v s¡ liczbami caªkowitymi. Poniewa»a i c s¡ dodatnie, wi¦c jedna z liczb u, v jest dodatnia, a druga ujemna lubrówna 0. Zaªó»my, »e u > 0, v ≤ 0. Mamy bau ≡ 1 (mod m) oraz bc(−v) ≡ 1(mod m). Z drugiej kongruencji wynika, »e (bc(−v))−1 ≡ 1 (mod m). Mno»¡cstronami pierwsz¡ kongruencj¦ oraz t¦ ostatni¡, otrzymujemy bau+vc ≡ 1(mod m), co dowodzi tez¦.

9.4 Twierdzenie. Je±li p jest dzielnikiem pierwszym liczby bn−1, to (i) dlapewnego dzielnika d < n liczby n mamy p | bd − 1, lub (ii) p ≡ 1 (mod n).Je±li p > 2 oraz liczba n jest nieparzysta, to wówczas w przypadku (ii) mamyp ≡ 1 (mod 2n).

Dowód. Poniewa» p | bn − 1, wi¦c p nie jest dzielnikiem b. Zatem w my±lmaªego twierdzenia Fermata bp−1 ≡ 1 (mod p). Z poprzedniego twierdzeniaotrzymujemy bd ≡ 1 (mod p), gdzie d = NWD(n, p− 1). Je»eli d < n, top | bd − 1, czyli zachodzi (i). Je±li d = n, to d | p− 1, wi¦c mamy (ii). Je»elip i n s¡ obie nieparzyste i n | p− 1, to tak»e 2 | p− 1 i p ≡ 1 (mod 2n).

Przykªady. Je±li chcemy rozªo»y¢ na czynniki jak¡kolwiek liczb¦ n to spraw-dzamy po kolei czy liczby pierwsze mniejsze od

√n s¡ dzielnikami n. Je±li

n jest du»a pojawiaj¡ si¦ tu przynajmniej dwa problemy. Po pierwsze liczbpierwszych robi si¦ du»o, a po drugie rozpoznawanie liczb pierwszych powy-»ej 100 staje si¦ kªopotliwe i cz¦sto wymaga iterowania algorytmu. Powy»szetwierdzenie znacznie zaw¦»a ilo±¢ dzielników pierwszych liczby n.

9.5. Rozªó»my na czynniki liczb¦ 2047. Zauwa»my, »e 2047 = 211 − 1 oraz√2047 < 46. Z twierdzenia 9.4 wynika, »e je±li p | 2047, to p ≡ 1 (mod 22)

gdy» p i 11 s¡ nieparzyste a jedynym wªa±ciwym dzielnikiem jedenastu jest 1.Zatem je±li jaka± liczba pierwsza mniejsza od 46 dzieli 2047 to musi to by¢ 23.Po podzieleniu przekonujemy si¦, »e 2047 = 23 · 89.

84

9.6. Rozªó»my na czynniki liczb¦ 312 − 1 = 531440. Z wniosku 9.2 wynikanatychmiast, »e 31−1, 32−1, 33−1, 34−1 oraz 36−1 dziel¡ 531440. Zatemnasza liczba na pewno dzieli si¦ przez 24, 5, (dzielniki 34 − 1), 13 (dzielnik33 − 1) i 7 (dzielnik 33 + 1, bo 36 − 1 = (33 − 1)(33 + 1)). Po podzieleniuotrzymujemy 531440 = 24 · 5 · 7 · 13 · 73. Poniewa» 73 jest liczb¡ pierwsz¡otrzymali±my nasz rozkªad.

9.7. Rozªó»my na czynniki pierwsze liczb¦ 34359738367 = 235−1. Po pierw-sze, mamy natychmiast dzielniki pierwsze 25 − 1 = 31 i 27 − 1 = 127. Popodzieleniu otrzymujemy 34359738367 = 31 · 127 · 8727391. Liczba 8727391jest jednak zbyt du»a aby orzec, czy jest to liczba pierwsza, czy nie. Pier-wiastek z tej liczby jest mniejszy od 2955, wi¦c w dalszym ci¡gu mamy wielekªopotliwych dzielników pierwszych do sprawdzenia. Z Twierdzenia 9.4 wy-nika jednak, »e mamy do sprawdzenia tylko liczby pierwsze spo±ród 36, 71,106, 141, i tak dalej a» do 2955. Od razu odrzucamy 36, a skoro 71 jest liczb¡pierwsz¡, dzielimy i otrzymujemy 8727391 = 71 · 122921. Pierwiastek z tejostatniej liczby wynosi ,,ju» tylko� 351. Z naszego ci¡gu mo»liwych dzielni-ków pierwszych wyszukujemy liczby 211 i 281 mniejsze od 351 i sprawdzamy,»e nie s¡ one dzielnikami 122921. Zatem 122921 jest liczb¡ pierwsz¡ i naszymrozkªadem na czynniki jest 34359738367 = 31 · 71 · 127 · 122921.

Twierdzenie 9.4 oraz powy»sze przykªady pokazuj¡ dlaczego wszystkie,,rekordowe� liczby pierwsze s¡ liczbami Mersenne'a. Przestaje te» dziwi¢fakt, »e pod koniec lat siedemdziesi¡tych XX wieku rekord najwi¦kszej liczbypierwszej 221701 − 1 nale»aª do uczniów liceum.

9.2 Metoda ρ rozkªadu na czynniki

Metoda rozkªadu liczby zªo»onej na czynniki, któr¡ teraz zaprezentujemyzostaªa przedstawiona przez J.M. Pollarda. Nazywana jest ona równie» me-tod¡ Monte Carlo. Mo»emy stosowa¢ j¡ do ka»dej liczby naturalnej i przyodpowiednim doborze parametrów jest ona szybsza ni» dzielenie przez kolejneliczby pierwsze mniejsze od

√n.

Pierwszy krok w metodzie ρ polega na wyborze ªatwo obliczalnej funk-cji przeksztaªcaj¡cej zbiór Zn w siebie. Jak zwykle, w pierwszej kolejno±cipróbujemy wielomianów. W drugim kroku wybieramy pewn¡ pocz¡tkow¡warto±¢ x0, a nast¦pnie obliczamy kolejne iteracje funkcji f :

x1 = f(x0), x2 = f(x1), x3 = f(x2), . . .

85

Po otrzymaniu pewnej liczby pocz¡tkowych wyrazów tak zde�niowanegoci¡gu, rozwa»amy ró»nice wyrazów tego ci¡gu w nadziei, »e pewna z tychró»nic, powiedzmy xi − xj, nie jest wzgl¦dnie pierwsza z n. Je±li taka sytu-acja nast¡pi, to wówczas NWD(xi − xj, n) jest jednym z dzielników n.

Powy»szy algorytm zilustrujemy na w miar¦ prostym przykªadzie. Niechwi¦c n = 15857, f(x) = x2 + 1, x0 = 2. Obliczamy kolejne warto±ci xjotrzymuj¡c

x0 = 2, x1 = 5, x2 = 26,x3 = 677, x4 = 14334, x5 = 4408,x6 = 5640, x7 = 459, x8 = 4541.

Nast¦pnie badamy kolejne ró»nice, tj. najpierw odejmujemy x0 od wszystkichpozostaªych i zauwa»amy, »e za ka»dym razem wychodzi i» liczby xj−x0 oraz15857 s¡ wzgl¦dnie pierwsze. Nast¦pnie, poniewa» x0 − x1 ju» badali±my,wi¦c rozwa»amy ró»nice xj − x1 dla j > 1, a potem xj − x2 dla j > 2 itd.W ko«cu mamy NWD(x7 − x6, 15857) = NWD(−5181, 15857) = 157. Zatem15857 = 157 · 101. Je»eli chodzi o wielomian, który u»ywamy, to jest to,niestety, kwestia wyczucia.

Opisany algorytm mo»na nieco ulepszy¢, a mianowicie dla ka»dego in-deksu k wystarczy obliczy¢ tylko jeden NWD. Aby opisa¢ to ulepszenie,zauwa»my najpierw, »e je±li pewne indeksy k0 i j0 speªniaj¡ kongruencj¦xk0 ≡ xj0 (mod r) dla pewnego dzielnika r liczby n, to kongruencja ta jestspeªniona dla wszystkich indeksów k > k0, j > j0 takich, »e k − j = k0 − j0.Wynika to z nast¦puj¡cej wªasno±ci kongruencji:

je»eli y ≡ z (mod m), to f(y) ≡ f(z) (mod m),

a dokªadnie, je±li xk0 ≡ xj0 (mod r), to równie» xk0+1 = f(xk0) ≡ f(xj0) =xj0+1 (mod r), wi¦c i xk0+2 ≡ xj0+2 (mod r) itd.

Opiszemy wi¦c wspomnian¡ mody�kacj¦. W dalszym ci¡gu obliczamy ko-lejne warto±ci xk. Zaªó»my, »e k jest liczb¡ (h+1)�bitow¡, tj. 2h ≤ k < 2h+1.Za j we¹my 2h − 1, czyli najwi¦ksz¡ liczb¦ h�bitow¡. Porównujemy wtedyxk z xj. Tak zmody�kowany algorytm pozwala nam tylko raz obliczy¢ war-to±¢ NWD(xk − xj, n) dla ka»dego k. W powy»szym przykªadzie n = 157857ograniczamy si¦ wi¦c do nast¦puj¡cych oblicze«:

x1 − x0 = 3, NWD(3, 15857) = 1

x2 − x1 = 21, NWD(21, 15857) = 1

x3 − x1 = 672, NWD(672, 15857) = 1

86

x4 − x3 = 3657, NWD(3657, 15857) = 1

x5 − x3 = 3731, NWD(3731, 15857) = 1

x6 − x3 = 4963, NWD(4963, 15857) = 1

x7 − x3 = −218, NWD(−218, 15857) = 1

x8 − x7 = 4082, NWD(4082, 15857) = 157.

i w tym momencie algorytm staje si¦ szybszy od metody dziele« przez kolejneliczby pierwsze.

9.3 Metoda faktoryzacji Fermata

Opisane dotychczas metody rozkªadu du»ych liczb na czynniki dziaªaªy b¡d¹z pewnym prawdopodobie«stwem, b¡d¹ te» tylko dla bardzo szczególnychliczb. Okazuje si¦ jednak, »e jak dot¡d, nie znaleziono skutecznej metodyrozkªadu, która zawsze zadziaªa i nie wymaga m¦cz¡cych oblicze«. Omówimyteraz metod¦, która dziaªa skutecznie dla liczb, których dzielniki s¡ zbytblisko siebie. Opiera si¦ ona na nast¦puj¡cym twierdzeniu.

9.8 Twierdzenie. Niech n b¦dzie dodatni¡ liczb¡ nieparzyst¡. Istnieje wów-czas wzajemnie jednoznaczna odpowiednio±¢ pomi¦dzy rozkªadami (a, b) liczbyn = ab i zapisami (t, s) liczby n = t2 − s2.

Dowód. Wystarczy sprawdzi¢, »e nast¦puj¡ce odwzorowania s¡ wzajemniejednoznaczne.

(a, b) 7→(a+ b

2,a− b

2

); (t, s) 7→ (t+ s, t− s).

W naszych dalszych rozwa»aniach b¦dziemy stosowa¢ oznaczenia przyj¦tew twierdzeniu 9.16 oraz zakªada¢, »e liczba n jest nieparzysta.

Zauwa»my, »e je»eli n = ab oraz a, b s¡ blisko siebie, to s = (a− b)/2 jestmaª¡ liczb¡, czyli liczba t niewiele ró»ni si¦ od

√n. Szukaj¡c zatem rozkªadu

(a, b) liczby n próbujemy kolejnych warto±ci t od [√n]+1 a» znajdziemy tak¡

liczb¦ t, »e t2 − n jest peªnym kwadratem. Jest to nasza liczba s2.

9.9 Przykªad. Rozªó»my na czynniki liczb¦ n = 200819. W tym celu obli-czamy

[√200819

]+ 1 = 449 i sprawdzamy, czy liczby 4492 − 200819 = 782,

4502 − 200819 = 1681 itd. s¡ kwadratami. Okazuje si¦, »e 782 nie jestkwadratem, ale 1681 = 412. Zatem

200819 = 4502 − 412 = 491 · 409.

87

Oczywi±cie, cz¦sto si¦ zdarza, »e opisana powy»ej metoda nie przynosirezultatu. Istnieje pewne ulepszenie, które teraz opiszemy. Mianowicie, mo-

»emy spróbowa¢ warto±ci t =[√

kn]

+ 1,[√

kn]

+ 2 itd. dla k ∈ N. Tym

razem otrzymamy t2 − s2 = kn, czyli rozkªad liczby kn. Je±li k jest maª¡liczb¡, to NWD(t+ s, n) > 1, czyli poznamy nietrywialny dzielnik wªa±ciwyliczby n.

9.10 Przykªad. Rozªó»my na czynniki liczb¦ 141467. Sprawdzaj¡c t = 377,378, . . . dochodzimy do wniosku, »e do niczego nie dojdziemy. Próbujemyzatem k = 3 i sprawdzamy liczby 652, 653, 654 oraz 655. Otrzymujemy6552 − 141467 = 682. Nast¦pnie obliczamy NWD(655 + 68, 141467) = 241 iotrzymujemy rozkªad

141467 = 241 · 587.

Poka»emy, »e je±li metoda Fermata nie przyniosªa po»¡danego skutkui chcemy zastosowa¢ opisane ulepszenie, to nie warto bra¢ tu pod uwag¦k = 2. Istotnie, je±li t2 − s2 = 2n, to jedna z liczb t + s, t − s musi by¢parzysta. Zatem obie liczby t i s s¡ parzyste b¡d¹ obie s¡ nieparzyste. Zatemi t− s jest parzysta. Wynika st¡d, »e 4|2n, czyli n jest liczb¡ parzyst¡. Jestto sprzeczno±¢, poniewa» rozwa»amy tu tylko liczby n nieparzyste. Mo»napokaza¢ (dowód wymaga znajomo±ci pewnych nie wprowadzonych tu poj¦¢),»e równie» k = 4 jest ,,zª¡� liczb¡.

9.4 Bazy rozkªadu

Metoda baz rozkªadu jest ulepszeniem metody Fermata opisanej w poprzed-nim podrozdziale. Opiera si¦ ona na nast¦puj¡cej obserwacji. Je»eli t2 ≡ s2

(mod n), ale t 6≡ ±s (mod n), to n|t2 − s2 ale n - t − s ani t + s. ZatemNWD(t− s, n) > 1 lub NWD(t+ s, n) > 1. Dla przykªadu rozwa»my liczb¦4633. Zauwa»my, »e 4633|772 − 362. Mamy NWD(77− 36, 4633) = 41, wi¦c4633 = 41 · 113. Istotnym problemem jest tu znalezienie 77 i 36.

Wprowadzimy teraz kilka poj¦¢. Bezwzgl¦dnie najmniejsz¡ reszt¡ z dzie-lenia liczby caªkowitej a przez n ∈ Z nazywamy liczb¦ caªkowit¡ r tak¡,»e a ≡ r (mod n) oraz je±li a ≡ s (mod n), to |r| ≤ |s|. Baz¡ rozkªadunazywamy zbiór B = {−1, p1, p2, . . . , ph−1}, gdzie pi s¡ ró»nymi liczbamipierwszymi. Liczba b jest B�liczb¡, je»eli bezwzgl¦dnie najmniejsza reszta zdzielenia b2 przez n rozkªada si¦ na iloczyn liczb nale»¡cych do zbioru B.

88

Powró¢my do przykªadu liczby n = 4633. Niech B = {−1, 2, 3}. Wów-czas 67, 68 i 69 s¡ B�liczbami, poniewa»

672 ≡ −144 (mod 4633 ), −144 = −1 · 24 · 32;682 ≡ −9 (mod 4633 ), −9 = −1 · 32;692 ≡ 128 (mod 4633 ), 128 = 27.

Niech teraz Zh2 oznacza h�wymiarow¡ przestrze« wektorow¡ nad ciaªem

Z2. Dla ka»dej liczby n i danej bazy rozkªadu B zawieraj¡cej h liczb, ka»dejB�liczbie b przypisujemy wektor ε ∈ Zh

2 w nast¦puj¡cy sposób.

Je»eli b2 mod n =∏h−1

i=0 pαii niech εi = αi mod 2.

Wówczas ε = (ε0, ε1, . . . , εh−1).

W naszym przykªadzie (n = 4633, B = {−1, 2, 3}) B�liczbie 67 odpo-wiada wektor (1, 0, 0), B�liczbie 68 odpowiada tak»e (1, 0, 0), a B�liczbie 69odpowiada wektor (0, 1, 0).

Przypu±¢my, »e mamy dany pewien zbiór B�liczb bj takich, »e odpowia-dajace im wektory εj = (ε0j, ε1j, . . . , εh−1,j) sumuj¡ si¦ do zera. Oznaczmyprzez aj bezwzgl¦dnie najmniejsz¡ reszt¦ z dzielenia b2j przez n i zapiszmy

aj =h−1∏i=0

pαiji .

Poniewa» εj sumuj¡ si¦ do zera, aj jest kwadratem. Zatem iloczyn liczb ajjest kwadratem. Oznaczmy γi = 1

2

∑j αij. Niech teraz

c =∏i

pγii mod n, b =∏j

bj mod n.

Wówczas mamy b2 ≡ c2 (mod n). Je»eli mamy pecha, to b ≡ ±c (mod n).Szukamy wtedy nowego zbioru B�liczb.

Sprawdzimy, czy mieli±my pecha w naszym przykªadzie, gdzie n = 4633,B = {−1, 2, 3}. Poniewa» (1, 0, 0)+ (1, 0, 0) = (0, 0, 0), wi¦c mo»emy przyj¡¢b1 = 67 oraz b2 = 68. Wówczas a1 = −1 · 24 · 32 oraz a2 = −1 · 32. Popomno»eniu otrzymujemy a1a2 = 24 · 34, c = 22 · 32 mod 4633 = 36 orazb = 67 · 68 mod 4633 = −77. Poniewa» −77 6≡ ±36 (mod 4)633, wi¦c mamyszcz¦±cie!

89

Zastanówmy si¦ teraz, jak cz¦sto mo»emy mie¢ pecha. Skoro n jest liczb¡zªo»on¡, która rozkªada si¦ na iloczyn r czynników pierwszych, to liczba b2

ma 2r ≥ 4 pierwiastków. Zatem losowy pierwiastek z b2 jest równy ±b zprawdopodobie«stwem 2

2r≤ 1

2. Zatem w k próbach mamy przynajmniej

jedn¡ ,,dobr¡� par¦ (b, c) z prawdopodobie«stwem wi¦kszym ni» 1− 12k.

W dalszym ci¡gu nie wiemy, jak wybra¢ odpowiedni¡ baz¦ rozkªadu Boraz zbiór B�liczb bj. Zwykle stosuje si¦ tu dwa sposoby.

1. Za B bierzemy −1 oraz h−1 pocz¡tkowych liczb pierwszych. Nast¦pniezbieramy ,,na »ywioª� du»o B�liczb maj¡c nadziej¦, »e w ko«cu namsi¦ poszcz¦±ci.

2. Najpierw zbieramy bj tak, aby b2j miaªo maª¡ bezwzgl¦dn¡ reszt¦ przy

dzieleniu przez n (na przykªad rozwa»amy liczby bliskie[√

kn], itd.).

Nast¦pnie za B bierzemy dokªadnie to co potrzeba, aby zbiór wszystkiebj byªy B�liczbami.

Stosuj¡c 1, wzi¦li±my w naszym przykªadzie B = {−1, 2, 3} oraz za B�liczby wzi¦lismy 67, 68, 69. (682 = 4624). Spróbujmy si¦ uprze¢, »e 68, 69oraz 96 maj¡ by¢ B-liczbami (962 ≈ 2 ·4633). Poniewa» 96 = −50 mod 4633,wi¦c za B przyjmujemy zbiór {−1, 2, 3, 5}. Mamy−9 = −1 · 32 ε1 = (1, 0, 0, 0)128 = 27 ε2 = (0, 1, 0, 0)−50 = −1 · 2 · 52 ε2 = (1, 1, 0, 0).

Dalej, b = 68 · 69 · 96 mod 4633 = 1031 oraz c = 24 · 3 · 5 mod 4633 = 240.Obliczamy teraz NWD(1031− 240, 4633) otrzymuj¡c 113. Zatem

4633 = 113 · 41.

Na zako«czenie podamy jeszcze jeden przykªad.

9.11 Przykªad. Niech n = 1829. Szukamy liczb bj w pobli»u√kn i jedno-

cze±nie nie chcemy, »eby w rozkªadzie b2j mod n byªy liczby pierwsze wi¦kszeod 13. Rezultat przedstawimy w poni»szej tabelce.

90

bj −1 2 3 5 7 11 13

42 1 1 143 2 161 2 174 1 185 1 1 186 4 1

Mo»emy wi¦c za bj wzi¡¢ 43 i 86 lub 42, 43, 61 oraz 85. W pierwszymprzypadku mamy pecha, poniewa» 43 · 86 mod 1829 = 40 oraz 23 · 5 = 40. Wdrugim przypadku nie jest juz tak ¹le, poniewa» 42 · 43 · 61 · 85 mod 1829 =1459, 2 · 3 · 5 · 7 · 13 mod 1829 = 901 i NWD(1459 + 901, 1829) = 59. Zatem1829 = 59 · 31.

91

Rozdziaª 10

Logarytm dyskretny

10.1 Poj¦cie logarytm dyskretny

System RSA jest oparty na tym, »e pomno»enie przez siebie dwóch liczbjest istotnie ªatwiejsze ni» rozkªad liczby na czynniki. Podobn¡ wªasno±¢,,jednokierunkowo±ci� ma te» podnoszenie liczby do pot¦gi w (du»ym) cielesko«czonym. Zauwa»my, »e w R, obliczenie bx nie jest istotnie ªatwiejsze odobliczenia logb x i to z dowoln¡ dokªadno±ci¡. Nie jest to jednak prawd¡ dlaciaª sko«czonych.

Zaªó»my, »e mamy ustalon¡ liczb¦ b nale»¡c¡ do grupy multyplikatywnejpewnego ciaªa sko«czonego Fq. Je±li chcemy obliczy¢ bx, stosujemy wypró-bowan¡ metod¦ iterowanego podnoszenia do kwadratu, która dziaªa w miar¦szybko. Je±li jednak wiemy tylko, »e y jest pewn¡ pot¦g¡ elementu b, nie jestªatwo znale¹¢ taki wykªadnik x, »eby bx = y. Potrzebujemy zatem funkcjiokre±lonej na ciele sko«czonym i odwrotnej do pot¦gowania. Tak¡ funkcj¦nazywamy logarymem dyskretnym. Dokªadnie, logarytmem dyskretnym, opodstawie b ∈ F∗q z elementu y nazywamy tak¡ liczb¦ caªkowit¡ x, »e bx = y.

Przykªady.

10.1. We¹my q = 19. Wtedy liczba 2 jest generatorem grupy F∗19. Logaryt-mem dyskretnym o podstawie 2 z 7 jest 6.

10.2. W grupie F∗9 rozwa»my element α, który jest pierwiastkiem wielomianux2 − x− 1. Logarytmem dyskretnym o podstawie α z −1 jest 4.

10.3. Rozwa»ymy ciaªo F16129, tutaj 16129 = 1272. Niech generatorem grupymultyplikatywnej b¦dzie g = a+ 2, przy czym a jest pierwiastkiem drugiego

92

stopnia z −1 = 126. Wówczas logarytmem dyskretnym z 87 jest 12032, a z2a+ 2, 12000.

Zwró¢my uwag¦ na to, »e logarytm dyskretny ma warto±ci w Z, czyli nietam gdzie argumenty. Dokªadnie jest to funkcja z grupy multyplikatywnejciaªa sko«czonego do pier±cienia liczb caªkowitych.

Podobnie jak i dla rozkªadu liczb na czynniki pierwsze, istniej¡ algorytmypozwalaj¡ce stosunkowo szybko obliczy¢ logarytm dyskretny dla pewnych,szczególnych liczb oraz ciaª. Nie b¦dziemy si¦ jednak zajmowa¢ tymi algo-rytmami, poniewa» ich dokªadne wytªumaczenie wymaga znajomo±ci proble-mów zwi¡zanych z teori¡ ciaª sko«czonych, której tutaj nie przedstawimy.W zamian omówimy kilka systemów opartych na logarytmie dyskretnym.

10.2 System Di�ego�Hellmana

uzgadniania klucza

Jak ju» wspomnieli±my, systemy z publicznym kluczem s¡ wci¡» zbyt wolne,aby za ich pomoc¡ przesyªa¢ dªugie wiadomo±ci. Z drugiej strony, je±li wia-domo±¢ jest odpowiednio krótka, nie mo»na zªama¢ szyfru stosuj¡c analiz¦cz¦sto±ci wyst¦powania liter. Dlatego systemów z publicznym kluczem cz¦stou»ywa si¦ do uzgadniania kluczy systemów klasycznych. Opiszemy tu systemwymiany kluczy oparty o logarytm dyskretny.

Zaªó»my, »e do szyfrowania chcemy u»ywa¢ pewnego klucza k. Liczb¦ kwybieramy losowo z pewnego przedziaªu pocz¡tkowego liczb naturalnych.Zauwa»my, »e wybranie liczby z takiego przedziaªu jest równowa»ne wybraniulosowego elementu pewnego du»ego ciaªa sko«czonego Fpf , którego elementyuto»samiamy z liczbami naturalnymi z przedziaªu [0, pf − 1].

Aby uto»sami¢ elementy Fpf z liczbami caªkowitymi, wybieramy najpierwbaz¦ tego ciaªa (jako przestrzeni wektorowej) nad Zp. Wtedy ka»demu ele-mentowi ciaªa Fpf odpowiada f�elementowy ci¡g elementów Zp. Ci¡g tenreprezentuje liczb¦ zapisan¡ w systemie o podstawie p. Oczywi±cie, nie jestto jedyny sposób uto»samienia pewnego przedziaªu liczb naturalnych z ele-mentami ciaªa sko«czonego.

Metoda Di�ego�Hellmana dziaªa nast¦puj¡co. Potrzebujemy tu du»egociaªa sko«czonego Fq oraz generatora g grupy F∗q. Liczb¦ q i element g poda-jemy do publicznej wiadomo±ci. Przypu±¢my, »e dwoje u»ytkowników, Majai Gucio, chce uzgodni¢ klucz. Kluczem tym b¦dzie pewien element Fq. Aby

93

rozpocz¡¢ negocjacje, Maja wybiera dla siebie liczb¦ M , a Gucio liczb¦ G.Pot¦gi gM oraz gG oboje podaj¡ do publicznej wiadomo±ci. Wspólnym taj-nym kluczem, którego b¦d¡ u»ywa¢ jest gMG. Oczywi±cie, je±li znamy gG

oraz M albo gM oraz G, to bez problemów obliczamy gMG. Nie jest tojednak ªatwe, je±li znamy tylko gM i gG.

Oczywi±cie, opisany system mo»emy stosowa¢ tylko wtedy, je±li praw-dziwe jest nast¦puj¡ce zaªo»enieZaªo»enie Di�ego�Hellmana. Zadanie obliczenia gab nie jest ªatwe je±liznane s¡ tylko ga oraz gb.

Powy»sze zaªo»enie jest tak samo silne jak zaªo»enie, »e logarytm dys-kretny w grupie nie mo»e by¢ ªatwo obliczony. Dokªadnie, je±li znamy prostysposób obliczania logarytmu dyskretnego, to znaj¡c ga i gb, bez problemu ob-liczymy a oraz b, a wi¦c i gab. Znanym problemem jest wynikanie odwrotne,tj. czy je±li obliczenie gab znaj¡c ga i gb jest ªatwe, to tak»e obliczenie loga-rytmu dyskretnego jest ªatwe. Jest to wci¡» otwarty problem.

Dziaªanie opisanego systemu wymiany kluczy opiszemy na podstawie ªa-twego przeksztaªcenia szyfruj¡cego oraz maªego ciaªa sko«czonego.

10.4 Przykªad. Przypu±¢my, »e naszym przeksztaªceniem szyfruj¡cym jestprzesuni¦cie, a wi¦c kluczem jest tu liczba k, któr¡ dodajemy modulo 26 doka»dej litery tekstu jawnego. Kluczem rozszyfrowuj¡cym jest tu wi¦c liczba−k (mod 26). Sam klucz wybieramy bior¡c reszt¦ z dzielenia uzgodnionejliczby przez 26. Niech g (generator F53) b¦dzie równy 3. Zaªó»my, »e Majawybraªa liczb¦ losow¡ M = 29, wi¦c jej kluczem publicznym jest 329 = 26.Kluczem publicznym Gucia jest 3G = 12. Zatem uzgodnionym kluczemszyfruj¡cym jest p = 1229 = 21.

Sprawd¹my teraz, czy jest to rzeczywi±cie uzgodniony klucz, tj. czy Guciootrzymaª t¦ sam¡ liczb¦. Wybran¡ liczb¡ Gucia byªo G = 47. Maja ma kluczpubliczny 26 (= 329). Zatem Gucio otrzymaª klucz szyfruj¡cy p = 2647 = 21.

10.5 Przykªad. Zaªó»my, »e umawiamy si¦ na dwuliterowe hasªo do szy-fru permutacyjnego i wykorzystujemy ciaªo F16129 z generatorem grupy mul-typlikatywnej g = a + 2, gdzie a jest pierwiastkiem kwadratowym z −1.Oboje Przypu±¢my, »e Gucio zaczyna negocjacje od (tajnego) hasªa HI, aMaja od TK. Oboje zamieniaj¡ swoje hasªa na liczby. S¡ to, odpowiednio,G = 190 = 7 · 26 + 8 oraz M = 504 = 19 ∗ 26 + 10. Gucio i Maja upublicz-niaj¡ elementy (a+2)190 = 7a+94 oraz, odpowiednio, (a+2)504 = 68a+40.Maja, aby uzyska¢ hasªo, podnosi 7a+94 do pot¦gi 504 otrzymuj¡c 21a+24.Uzgodnionym hasªem jest wi¦c V Y .

94

10.3 System kryptogra�czny Masseya-Omury

Aby u»ywa¢ tego systemu, wszyscy u»ytkownicy musz¡ zdecydowa¢ si¦ u»y-wa¢ ustalonego, powszechnie znanego ciaªa sko«czonego Fq. Ka»dy u»ytkow-nik wybiera (w tajemnicy przed innymi) liczb¦ losow¡ 0 ≤ e ≤ q − 1, którajest wzgl¦dnie pierwsza z q − 1. Nast¦pnie ka»dy oblicza liczb¦ odwrotn¡do e modulo q − 1. Obie liczby e oraz d stanowi¡ klucz prywatny. Je»eliTola chce wysªa¢ do Lolka wiadomo±¢ P , najpierw uto»samia j¡ z pewnymelementem ciaªa Fq, a nast¦pnie wysyªa do Lolka wiadomo±¢ P eT . Loleknie próbuje nawet odszyfrowywa¢ wiadomo±ci, tylko stosuj¡c swój klucz pry-watny oblicza P eT eL i tak otrzymany element odsyªa do Toli, która z koleioblicza P eT eLdT = P eL i odsyªa to Do Lolka, który po obliczeniu P eLdL = Pbez trudu odczytuje wiadomo±¢.

10.6 Przykªad. Ponownie rozwa»ymy ciaªo F16129. Zaªó»my, »e naszymkluczem jest (779, 6563). Otrzymali±my od Toli wiadomo±¢

(32a+ 66, 16a+ 112, 12a+ 112, 48a+ 66, 69a+ 116, 66a+ 0).

Ka»dy z elemetów podnosimy do pot¦gi o wykªadniku 779, otrzymujemy

(75a+ 48, 118a+ 93, 118a+ 78, 28a+ 81, 71a+ 79, 38a+ 0)

i odsyªamy to do Toli. Chwil¦ pó¹niej, Tola przysyªa nam ci¡g

(75a+ 95, 30a+ 40, 38a+ 122, 38a+ 83, 67a+ 62, 100a+ 0).

Tym razem, podnosz¡c do pot¦gi 6563, otrzymujemy

(9a+ 4, 18a+ 19, 8a+ 12, 15a+ 17, 4a+ 25, 10a+ 0)

i odczytujemy wiadomo±¢ (kolejne liczby, to pozycje liter alfabetu): jest

imprezka.

Zauwa»my, »e wa»nym jest, aby u»ytkownik, który odczytaª wiele infor-macji nie byª w stanie znale¹¢ eT nawet je±li dotarªo do niego du»o wiado-mo±ci P eT . Gdyby bowiem Lolek rozwi¡zaª problem logarytmu dyskretnego,to szybko obliczyªby eT a wi¦c i dT , a to oznaczaªoby, »e byªby w stanie nietylko odczyta¢ ka»d¡ wiadomo±¢, jak¡ wysyªa Tola (niezale»nie od tego, dokogo jest ona skierowana), ale równie» mógªby bez trudu ,,podszy¢ si¦� podTol¦.

95

Zwró¢my te» uwag¦ i na to, »e system Maseya-Omury wymaga stosowa-nia dobrej metody potwierdzania to»samo±ci, poniewa» adresat, otrzymuj¡cnajpierw P e, nie wie, czyim kluczem e jest ta wiadomo±¢ zaszyfrowana. Takwi¦c Lolek mo»e otrzyma¢ wiadomo±¢ od Justysi b¦d¡c przekonanym, »e jestto wiadomo±¢ od Toli. Z drugiej strony, tak»e Tola po otrzymaniu P eT eL

musi by¢ pewna, »e odpowied¹ przyszªa od Lolka a nie od innego u»ytkow-nika systemu.

10.4 System ElGamala

Tutaj równie» potrzebne jest ustalone ciaªo sko«czone Fq (odpowiednio du»e)oraz pewien element g ∈ F∗q. Podobnie jak powy»ej, tekstem zaszyfrowanymb¡d¹ jego jednostkami s¡ elementy Fq. Ka»dy uzytkownik wybiera losowoliczb¦ caªkowit¡ 0 < a < q − 1, która jest jego tajnym kluczem rozszyfrowu-j¡cym. jawnym kluczem szyfruj¡cym jest ga.

Zaªó»my, »e chcemy wysªa¢ do u»ytkownika A wiadomo±¢ P . W tym celuwybieramy losow¡ liczb¦ naturaln¡ k i wysyªamy par¦ elementów (gk, PgaAk).Oczywi±cie jeste±my w stanie obliczy¢ gaAk znaj¡c tylko gaA , poniewa» wy-starczy t¦ liczb¦ podnie±¢ do pot¦gi k. Adresat A chc¡c odczyta¢ wiadomo±¢,podnosi najpierw gk do pot¦gi aA, a nast¦pnie dzieli PgaAk przez otrzyman¡liczb¦ uzyskuj¡c wiadomo±¢ P . Je±li adresat preferuje mno»enie, to zamiastpodnosi¢ gk do pot¦gi aA, podnosi t¦ liczb¦ do pot¦gi q− 1− aA a nast¦pniemno»y wynik oraz PgaAk otrzymuj¡c P .

Kto±, kto potra� rozwi¡za¢ problem logarytmu dyskretnego w Fq beztrudu rozszyfruje ka»d¡ wiadomo±¢, poniewa» znaj¡c g oraz ga jest on wstanie znale¹¢ klucz rozszyfrowuj¡cy a. Je»eli zaªo»enie Di�ego�Hellmananie zachodzi, to tak»e mo»na zªama¢ szyfr ElGamala znajduj¡c gak znaj¡ctylko gk (przesyªane) oraz ga (publiczne).

96

Rozdziaª 11

Protokoªy o zerowej wiedzy i

przekazy nierozró»nialne

Poj¦cie zerowej wiedzy pojawiªo si¦ w kryptogra�i na pocz¡tku lat osiem-dziesi¡tych. Zostaªo ono sprowokowane rozwojem rynku �nansowego, a wszczególno±ci poª¡czeniem rynku usªug bankowych z rynkiem usªug teleko-munikacyjnych. Dokªadnie, wyobra¹my sobie sytuacj¦, gdy klient znajduj¡cysi¦ na Karaibach chce dokona¢ operacji w banku, który jest w Szwajcarii. Wtym celu u»ywa linii telefonicznej i zleca t¡ drog¡ wykonanie operacji. Pro-blemem jest potwierdzenie to»samo±ci zleceniodawcy. Oczywi±cie mo»e onpoda¢ jakie± hasªo, które go zidenty�kuje. Tylko, »e hasªo to zna¢ b¦dzie odtej pory urz¦dnik bankowy oraz kilka innych osób, które w danej chwili przy-sªuchuj¡ si¦ rozmowie. Zleceniodawca chciaªby wi¦c nie tyle poda¢ hasªo cou d o w o d n i ¢ fakt, »e to hasªo zna. Po przeprowadzeniu takiego dowodu,urz¦dnik bankowy powinien by¢ pewien to»samo±ci zleceniodawcy, ale jegowiedza na temat tajnego hasªa powinna by¢ taka sama jak przed rozmow¡.

Jak konkretnie przeprowadzi¢ dowód o zerowej wiedzy wytªumaczymy woparciu o dwa poni»sze przykªady.

11.1 Kolorowanie mapy

Jest udowodnione, »e ka»d¡ map¦ na pªaszczy¹nie mo»na pokolorowa¢ u»y-waj¡c czterech kolorów. Niektóre mapy mo»na pokolorowa¢ u»ywaj¡c tylkotrzech kolorów. Przypu±¢my, »e Urszuli udaªo si¦ pokolorowa¢ pewn¡ dosy¢skomplikowan¡ map¦ trzema kolorami � czerwonym, niebieskim i zielonym.

97

Chce ona przekona¢ Stefana, »e istotnie potra� ona pokolorowa¢ dan¡ map¦,ale jednocze±nie nie chce pokazywa¢ mapy.

Aby przeprowadzi¢ dowód o zerowej wiedzy musimy przeªo»y¢ map¦ naj¦zyk matematyczny, a dokªadnie na j¦zyk teorii grafów.

Grafem nazywamy par¦ zbiorów (V,E), gdzie elementami zbioru E s¡zbiory dwuelementowe {u, v} przy czym u, v ∈ V . Elementy zbioru V na-zywamy wierzchoªkami i interpretujemy je geometrycznie jako punkty, aelementy zbioru E nazywamy kraw¦dziami i interpretujemy jako odcinki.Mówimy, »e graf jest pokolorowany kolorami c, n, z, je±li istnieje funkcjaf : V → {c, n, z} taka, »e f(u) 6= f(v) je»eli tylko {u, v} ∈ E.

Map¦ uto»samiamy z grafem w ten sposób, »e zbiór pa«stw staje si¦zbiorem V , a do zbioru E nale»¡ te i tylko te pary pa«stw, które maj¡wspóln¡ granic¦.

Tak wi¦c zakªadamy, »e Urszula pokolorowaªa pewien graf i b¦dzie terazudowadnia¢ Stefanowi, »e dokonaªa tego w sposób prawidªowy. Wyobra¹mysobie wierzchoªki tego grafu jako maªe, biaªe kuleczki, a kraw¦dzie jako pr¦ty.W ±rodku kuleczek znajduj¡ si¦ trzy lampki: czerwona, niebieska i zielona.Urszula posiada dwa urz¡dzenia:

A, które uaktywnia lampk¦ o wybranym kolorze w ka»dym z wierzchoªku;

B, które po naci±ni¦ciu przycisku wybiera losow¡ permutacj¦ trzech kolorówi zmienia kolor aktywnej lampki w ka»dym wierzchoªku zgodnie z t¡permutacj¡.

Zaªó»my, »e lampki wewn¡trz wierzchoªków zapalaj¡ si¦ je±li kto± chwyciza pr¦t ª¡cz¡cy te dwa wierzchoªki. Urszula konstruuje 3�kolorowanie grafui za pomoc¡ urz¡dzania A uaktywnia lampki w ka»dym z wierzchoªków. Aoto procedura, któr¡ wykonuje Stefan:

1. Stefan mo»e chwyci¢ za jeden pr¦t i zapali¢ lampki na jego ko«cach.Je±li graf jest pokolorowany prawidªowo, wierzchoªki rozbªyskuj¡ róo»-nymi kolorami.

2. Urszula naciska przycisk urz¡dzenia B i permutuje kolory.

3. Kroki 1. i 2. s¡ powtarzane tak dªugo, a» Stefan nie przekona si¦, »egraf jest pokolorowany prawidªowo.

98

Zauwa»my, »e je±li graf nie jest pokolorowany prawidªowo, to w pewnymmomencie Stefan chwyci za pr¦t, którego wierzchoªki zapal¡ si¦ tym samymkolorem. Po drugie, z uwagi na ci¡gªe permutowanie kolorów, Stefan nie jestw stanie odtworzy¢ pokolorowania grafu. Istotnie, gdyby Urszula znaªabyStefana na tyle, »e byªaby w stanie przwidzie¢, który pr¦t on chwyci, niemusiaªaby w ogóle kolorowa¢ grafu, tylko po prostu zadbaªaby o to, by nako«cach pr¦ta, który zamierza chwyci¢ Stefan aktywne byªy lampki ró»nychkolorów.

11.2 Logarytm dyskretny

Przyjmiemy tu, »e mamy dane pewne ciaªo sko«czone Fq oraz generator gjego grupy multyplikatywnej. Niech y ∈ F∗q. Przypu±¢my, »e Urszula znala-zªa rozwi¡zanie równania gx = y, czyli logarytm dyskretny o podstawnie g zelementu y. Chce ona teraz przekona¢ Stefana, i» faktycznie zna ona loga-rytm dyskretny, ale nie chce podawa¢ warto±ci liczbowej x. Oboje, Urszulai Stefan znaj¡ ciaªo sko«czone Fq oraz rz¡d jego grupy multyplikatywnej.Oto ci¡g kroków, które wykonuj¡ w celu przeprowadzenia dowodu o zerowejwiedzy:

Krok 1. Urszula generuje losow¡ liczb¦ dodatni¡ e < q − 1 i wysyªa Stefa-nowi element b = ge.

Krok 2. Stefan decyduje, któr¡ z poni»szych czynno±ci ma wykona¢ (mo»ewykona¢ dokªadnie jedn¡ z nich):

Krok 2a. Stefan prosi Urszul¦ o ujawnienie e. Jej prawdomówno±¢sprawdza obliczaj¡c ge i porównuj¡c to z otrzyman¡ liczb¡ b.

Krok 2b. Stefan prosi Urszul¦ o wskazanie reszty r z dzielenia x + eprzez q − 1. Je±li Urszula faktycznie zna x (a próbuje ona toudowodni¢), to znalezienie tej reszty nie powinno jej przysporzy¢problemu. Stefan sprawdza prawdomówno±¢ Urszuli obliczaj¡c gr

i przyrównuj¡c to do yb. Zauwa»my, »e yb = gxge = gx+e = gr.

Krok 3. Kroki 1. oraz 2. s¡ powtarzane tak dªugo, a» Stefan jest caªkowicieprzekonany, »e Urszula zna x.

Zauwa»my najpierw, »e Stefan nie mo»e domaga¢ si¦ od Urszuli obu in-formacji z podpunktów 2a. oraz 2b. Gdyby poznaª on jednocze±nie e oraz r,

99

to poznaªby te» x = r − e. Nast¦pnie zauwa»my, »e znajomo±¢ x nie jestUrszuli potrzebna je»eli Stefan decyduje si¦ na 2a. Jednak»e mo»e on zdecy-dowa¢ si¦ na krok 2b., a tu ju» znajomo±¢ x jest potrzebna. Po co wi¦c jestpotrzebny krok 2a.? Gdyby go nie byªo, Urszula mogªaby wysªa¢ ge

yw kroku

1., a w kroku 2b. po prostu e. Krok 2a. zapobiega takiej mo»liwo±ci.W powy»szym dowodzie istotnie wyst¦puje zerowa wiedza. Je±li bowiem

kto± nie zna liczby x, ale jest w stanie przewidzie¢ post¦powanie Stefana,tzn. wie, co on wybierze w nast¦pnym kroku, to bez trudu mo»e go oszuka¢.Mianowicie, je±li wiadomo, »e Stefan zdecyduje si¦ na 2a., to nale»y muprzesªa¢ ge w kroku 1. oraz e w kroku 2a. Je»eli natomiast wiemy, »e Stefanzdecyduje si¦ na 2b., to wysyªamy mu ge

yw kroku 1. oraz e w kroku 2b.

11.1 Przykªad. Ponownie wykorzystamy F16129 z generatorem g = a + 2,gdzie a2 + 1 = 0. Urszula udowodni Stefanowi, »e zna warto±¢ x logarytmudyskretnego z y = 96a + 106. W tym celu generuje e i wysyªa ge = 111a +120. Je±li Stefan poprosi o e, Urszula wy±le mu 41 i Stefan sprawdzi, »e(a + 2)41 = 111a + 120. Urszula ponownie generuje e i tym razem wysyªa82a+62. Przypu±¢my, »e Stefan poprosi tym razem o reszt¦ z dzielenia x+eprzez 16128. Wtedy Urszula wysyªa mu liczb¦ 15276, a Stefan sprawdza,czy (a+ 2)15276 = (82a+ 62)(96a+ 106). Czynno±ci te powtarzaj¡ a» Stefanuzna, »e Urszula istotnie zna warto±¢ x

11.3 Przekazy nierozró»nialne

Powy»ej przedstawione dowody byªy dowodami interaktywnymi, tzn. pod-czas uzasadniania Urszula oraz Stefan kontaktowali si¦ ze sob¡. Kanaª prze-kazów nierozró»nialnych sªu»y do konstruowania nieinteraktywnych dowodówo zerowej wiedzy. Przebiega on zatem w jedn¡ stron¦ � w kierunku sprawdza-j¡cego. Dopuszczamy tu jednak mo»liwo±¢, »e pewne informacje mog¡ by¢przesªane w drug¡ stron¦, ale ju» nie kanaªem tylko ,,publicznie�. Dokªadnie,kanaª przekazów nierozró»nialnych umo»liwia Urszuli przekazanie Stefanowidwóch pakietów zaszyfrowanych informacji przy czym speªnione musz¡ by¢nast¦puj¡ce warunki:

1. Stefan mo»e rozszyfrowa¢ dokªadnie jeden z przesªanych dwóch pakie-tów.

2. Urszula nie wie, który z pakietów zostanie rozszyfrowany.

100

3. Stefan oraz Urszula s¡ pewni, »e warunki 1) oraz 2) s¡ speªnione.

Opiszmy przykªad kanaªu przekazów nierozró»nialnych oparty na proble-mie logarytmu dyskretnego. Potrzebne nam b¦dzie (du»e) ciaªo sko«czoneFq oraz ustalony element b ∈ F∗q taki, »e je±li znamy bx oraz by, to trudnojest obliczy¢ bxy (czyli speªnione jest zaªo»enie Di�ego�Hellmana). Dalej,potrzebne nam b¦dzie przeksztaªcenie ψ : Fq → Fn2 . Przy czym warto±cizarówno przeksztaªcenia ψ jak i przeksztaªcenia odwrotnego mog¡ by¢ obli-czone w ªatwy sposób. Zaªó»my, »e wszystkie ci¡gi n-bitowe maj¡ce na ko«cu0 nale»¡ do przeciwdziedziny ψ. Je±li q = pf oraz elementy Fq uto»samimyz liczbami caªkowitymi zapisanymi w systemie o podstawie p, to ψ mo»e od-wzorowywa¢ te elementy przypisuj¡c im ci¡g bitów wyst¦puj¡cych w zapisiedwójkowym odpowiadaj¡cych liczb.

Przypu±¢my, »e jednostkami tekstu s¡ ci¡gi n�bitów, tzn. elementy Fn2 .Potrzebny nam jeszcze b¦dzie ustalony element C ∈ F∗q taki, »e nikt nie znajego logarytmu dyskretnego.

Kanaª przekazów nierozró»nialnych dziaªa w nast¦puj¡cy sposób. Stefanwybiera losowo liczby 0 < x < q − 1 oraz 1 ∈ {1, 2}. Nast¦pnie tworzyswój klucz publiczny (β1, β2), gdzie βi = bx oraz β3−i = C

bx. Dopuszczamy tu

mo»liwo±¢ utworzenia serii tego rodzaju kluczy publicznych. B¦d¡ one znaneUrszuli (tak jak i wszystkim innym). Zauwa»my, »e Stefan nie zna logarytmudyskretnego liczby β3−i poniewa» nikt nie zna logarytmu dyskretnego liczbyC.

Urszula wybiera teraz teksty m1 oraz m2, które przypisuje dwóm pa-kietom. Wybiera ona te» liczby losowe y1, y2 ∈ {0, 1, . . . , q − 1} i wysyªaStefanowi dwa pakiety:

by1 , α1 = m1 + ψ(βy11 ) oraz by2 , α2 = m2 + ψ(βy22 ).

Poniewa» βyii = (bx)yi , a Stefan zna zarówno by1 oraz x, wi¦c mo»e on ªatwowyznaczy¢ ψ(βyii ), a co za tym idzie, tak»e wyznaczy¢ mi = αi + ψ(βyii ).Odczytanie wiadomo±ci m3−i jest jednak niemo»liwe, poniewa» znajomo±¢by3−i oraz C nie jest wystarczaj¡ca do znalezienia βy3−i3−i (zaªo»enie Di�ego�Hellmana). Tak wi¦c Stefan mo»e odczyta¢ dokªadnie jedn¡ z przesªanychwiadomo±ci.

Urszula mo»e bez trudu sprawdzi¢, »e β1β2 = C, wi¦c Stefan nie mo»ezna¢ logarytmów dyskretnych z obu elementów β1 oraz β2. Jednak»e w jegointeresie le»y posiadanie jak najwi¦cej informacji. Urszula mo»e wi¦c by¢pewna, »e Stefan zna logarytm dyskretny dokªadnie jednej z liczb β1, β2. Nie

101

ma jednak sposobu na to, by zdecydowa¢ jednoznacznie z którego elementuzna Stefan logarytm dyskretny. Tak wi¦c warunki 2) oraz 3) de�nicji kanaªuprzekazów nierozró»nialnych s¡ speªnione.

11.4 Dowód faktoryzacji

Opiszemy procedur¦ nieiteraktywnego dowodu o zerowej wiedzy, za pomoc¡którego Urszula przekona stefana, »e zna ona rozkªad na czynniki liczby caª-kowitej n. Wykorzystamy tu fakt, »e znajomo±¢ faktoryzacji liczby n jest rów-nowa»na umiej¦tno±ci znajdywania pierwiastków kwadratowych modulo n zdowolnej liczby. Istotnie, je±li znamy rozkªad n na iloczyn liczb pierwszychp oraz q i mamy rozwi¡za¢ kongruencj¦ y ≡ x2 (mod n), to rozwi¡zujemydwie kongruencje y ≡ x2 (mod p) oraz y ≡ x2 (mod q) a nast¦pnie stosujemychi«skie twierdzenie o resztach dostaj¡c cztery pierwiastki wyj±ciowej kon-gruencji. Je±li natomiast potra�my rozwi¡za¢ kongruencj¦ y ≡ x2 (mod n),czyli znale¹¢ ±x1 oraz ±x2, takie, »e x2

1 ≡ x22 (mod n), to znajdziemy te»

nietrywialny dzielnik liczby n, który jest równy NWD(x1 + x2, n).Opiszemy teraz procedur¦ dowodu o zerowej wiedzy. Zakªadamy tutaj, »e

nad wszystkim czuwa niezale»ny arbiter okre±lany mianem Centrum, którydostarcza te» pewnych informacji zarówno dla Urszuli jak i dla Stefana.

1. Centrum generuje losow¡ liczb¦ x i wysyªa do Urszuli i do Stefana liczb¦y = x2 mod n.

2. Urszula oblicza cztery pierwiastki kwadratowe ±x1 oraz ±x2 z liczbyy. Jeden z nich nazywa x0. Nast¦pnie wybiera losow¡ liczb¦ r i ozna-cza s = r2 mod n. Potem kªadzie m1 = r mod n oraz m2 = x0rmod n. Ostatecznie Urszula wysyªa Stefanowi za pomoc¡ kanaªu prze-kazów nierozró»nialnych wiadomo±ci m1 oraz m2, a drog¡ publiczn¡przekazuje mu s.

3. Stefan jest w stanie odczyta¢ tylko jedn¡ wiadomo±¢. Sprawdza, czyjej kwadrat przystaje modulo n do s, czy do ys.

4. Czynno±ci 1.�3. s¡ powtarzane dopóty, dopóki nie sko«cz¡ si¦ wszystkieklucze publiczne (β1, β2) Stefana u»ywane do aktywacji kanaªu przeka-zów nierozró»nialnych. Je±li byªo T kluczy, to Stefan jest pewny zprawdopodobie«stwem 1 − 2−T , »e Urszula zna rozkªad liczby n naczynniki.

102

Przeprowad¹my teraz zwykª¡ dyskusj¦ na temat, czy powy»szy protokóªjest istotnie dowodem o zerowej wiedzy. Zastanówmy si¦ najpierw, w jakisposób Urszula mogªaby oszuka¢ Stefana. Wiadomo±¢ m1 nie zawiera pier-wiastka z y, ale wiadomo±¢ m2 zawiera pierwiastek z y i nie mo»na nic nato poradzi¢. Jedyn¡ szans¡ uszustwa byªoby wi¦c tutaj przesyªanie dwóchidentycznych wiadomo±ci m1. Szybko jednak Stefan nabraªby podejrze«, po-niewa» za ka»dym razem przy sprawdzaniu otrzymywaªby s, a taki ukªadprzydarza si¦ tylko wówczas, gdy przy generowaniu klucza (β1, β2) liczb¡losow¡ i jest zawsze 1. Czy Stefan odtworzyªby wszystkie pierwiastki kwa-dratowe z y? Tak¡ mo»liwo±¢ daje mu tylko wiadomo±¢ m2. Poniewa» jed-nak liczba r nie jest mu znana, wi¦c nie mo»e on obliczy¢ x0 znaj¡c tylkox0r mod n oraz r2 mod n. Tak wi¦c Stefan nie jest w stanie znale¹¢ nawetjednego pierwiastka kongruencji y ≡ x2 (mod n).

103