IN YNIERIA BEZPIECZE STWA LABORATORIUM NR 6 WYBRANE ZAGADNIENIA Z TEORII LICZB 1. Wybrane zagadnena z teor lczb Do onstruowana systemów ryptografcznych u Ŝ ywa sę czę sto wyrafnowanego aparatu matematycznego, tórego ops mo Ŝ na znaleź ć z zaawansowanych podrę cznach teor lczb algebry. Dla zrozumena opsywanych tutaj algorytmów wystarczy znajomoś ć podanych n Ŝ ej netórych problemów teor lczb. Du Ŝ e znaczene w ryptograf mają lczby perwsze, czyl tae lczby, tóre dzelą sę bez reszty tylo przez 1 przez sebe. Wa Ŝ ne jest te Ŝ poję ce lczb wzglę dne perwszych: dwe lczby a, b są wzglę dne perwsze, jeś l ne mają wspólnych dzelnów >1, co zapsuje sę jao nwd(a, b) 1, gdze nwd jest srótem słów najwę szy wspólny dzeln. 1.1. Arytmetya modularna Wyn dzałań przy zastosowanu tzw. arytmety modularnej meszczą sę zwyle w soń czonym zborze lczb, dlatego teŝ ten sposób wyonywana oblczeń nazywa sę w USA w szołach ś rednch arytmetyą zegarową, ponewaŝ na tarczy zegara analogowego stneje tylo lczb. Notacja oznacza, Ŝ e a b (mod n) (1.1) a b + n (1.2) dla pewnej lczby całowtej. Przyładowo, 7 1 (mod 3); 6 0 (mod 3). Załada sę zwyle, Ŝ e lczby a b są dodatne, oraz Ŝ e b < n. Przy tych załoŝ enach lczba b jest resztą z dzelena lczby a przez lczbę n. Zna jest symbolem ongruencj, wobec tego, nterpretują c równane (1.1) mów sę, Ŝ e a jest ongruentne do b modulo n. Zbór lczb całowtych {0, 1,..., n-1} (1.3) tworzy tzw. zupełny zbór reszt modulo n, zaś operacja a (mod n) (1.4) nazywa sę reducją modularną, w wynu tórej otrzymuje sę taą resztę z dzelena a przez n, tóra jest mnejsza od n. - 1 -
Do ongruencj odnos sę małe twerdzene Fermata, tóre mów, Ŝ e jeś l p jest lczbą perwszą, to dla a całowtych nepodzelnych przez p a p ( mod p) 1 Z twerdzena tego wyna, Ŝ a p mod p ( ) a Podany tu ops arytmety modularnej moŝ e ne zgadzać sę z defncjam operacj modulo, przyję tym w netórych ję zyach programowana. Np Pascal dopuszcza wyonywane operacj modulo na lczbach dodatnch ujemnych, z modułem równeŝ dodatnm lub ujemnym, wobec czego wyn tych operacj moŝ e sę zawerać w przedzale [ n + l, n 1], a w ję zyu C wyraŝ ene a % b oznacza resztę z dzelena a przez b. Dzałana arytmety modularnej spełnają prawa przemennoś c, łą cznoś c rozdzelnoś c mnoŝ ena wzglę dem dodawana: a + b (mod n) b + a (mod n), (1-5) a b (mod n) b a (mod n), (1-6) a (b + c) (mod n) a b + a c (mod n). (1-7) PowaŜ nym uproszczenem arytmety modularnej jest moŝ lwoś ć reduowana poś rednch wynów oblczeń modulo n. Zamast wę c wyonywać najperw wszyste oblczena w zwyły sposób, a wyn ostateczny zreduować modulo n, ten sam wyn uzysuje sę łatwej, stosują c zaleŝ noś c: a + b (mod n) (a (mod n)) + (b (mod n)) (mod n), (1.8) a b (mod n) (a (mod n)) (b (mod n)) (mod n), (1.9) a (b + c) (mod n) ((a (mod n)) (b (mod n)) (mod n)+ (1.10) + (a (mod n)) (c (mod n)) (mod n))) (mod n). Gdy moduł arytmety modularnej n jest lczbą -cyfrową, to stosują c powyŝ sze zasady reducj, wyn poś redne ne przeroczą lczby 2-cyfrowej. Trzeba pamę tać, Ŝ e moduł ten w ryptograf jest przewaŝ ne lczbą ogromną, o luset cyfrach dzesę tnych, co stwarza zapotrzebowane na specjalne ułady scalone dla arytmety modularnej na specjalzowane systemy oprogramowana, pozwalają ce na dowolną doładnoś ć wyonywana dzałań w arytmetyce całowtolczbowej. 1.2. Algorytm Euldesa Bardzo waŝ ną rolę w ryptograf spełna znany od ponad 2300 lat algorytm Euldesa, pozwalają cy w soń czonej lczbe roów znaleź ć najwę szy wspólny dzeln dwóch lczb. Algorytm poszuwana najwę szego wspólnego dzelna dwóch lczb naturalnych a 0 a 1, spełnają cych warune a 0 > a 1, polega na wyonanu ser operacj dzelena całowtolczbowego zgodne ze schematem: a 0 q 1 a 1 + a 2, a 2 < a 1 a1 q 2 a 2 + a 3, a 3 < a 2 a -1 q a +1, a +1 < a a q +1 a +1-2 -
Proces dzelena oń czy sę z chwlą otrzymana reszty równej zeru. Ostatna róŝ na od zera reszta jest poszuwanym najwę szym wspólnym dzelnem lczb a 0 a 1. Algorytm Euldesa moŝ na opsać za pomocą bardzo prostej zaleŝ noś c reurencyjnej: y dla x 0 nwd ( x, y) nwd( y ( mod x), x) dla x 0 1.3. Teorolczbowa funcja Eulera KaŜ da lczba naturalna n da sę przedstawć w postac nastę pują cego loczynu potę g dodatnch lczb perwszych: n 1 p d (1.) Jest to tzw. rozład anonczny lczby n. Funcję Eulera φ(n) defnuje sę dla aŝ dej lczby naturalnej (całowtej dodatnej) n w sposób nastę pują cy: { s : ( 1 s n) ( nwd( s, )) 1} φ ( n) n Inaczej mówą c jest to moc zboru lczb ne wę szych od n wzglę dne perwszych z n. Funcja Eulera φ(n) oreś la lczbę lczb naturalnych w zborze {1, 2,, n-1} wzglę dne perwszych z n. Na przyład, φ(8) 4, ponewaŝ w zborze lczb mnejszych od 8 tylo 1, 3, 5 7 są wzglę dne perwsze z 8. Lczby wzglę dne perwsze ne mają Ŝ adnego wspólnego podzelna wę szego od 1. Funcja Eulera dla lczby perwszej p jest oczywś ce równa p-1. Aby znaleź ć wartoś ć funcj Eulera dla lczby złoŝ onej, rozłada sę ją na loczyn lczb perwszych (1.). Przyładowo, dla n 2646 moŝ na napsać : n 2646 2 3 3 7 2 ; zatem φ(2646) 1 3 2 2 7 6 756. Netóre własnoś c funcj Eulera podane są nŝ ej: (a) φ(p) p-l, (b) φ(p r ) p r-1 (p-1), (c) φ(a, b) φ(a)φ(b), gdy nwd(a, b) 1, 1 (d) φ(n) n ( 1 / p ) gdze n, p oraz ja we wzorze na rozład lczby naturalnej na loczyn potę g lczb perwszych. 1.4. Potę gowane modularne Reducja modularna pozwala unać duŝych wynów pośrednch przy operacj potęgowana modularnego, sładającego sę z wyonywana sewencj moŝeń dzeleń. Np. operację: 8 a ( modn) a a a a a a a a( modn) moŝna wyonać następująco: 8 a (modn) 2 2 2 ( a ( modn) ) ( modn) ) ( modn) - 3 -
czyl zamast mnoŝyć przez sebe 8 razy lczbę a zreduować wyn modulo n wyonuje sę 3 mnoŝena 3 reducje modularne. Z powyŝszego przyładu wyna, Ŝe oblczene x a (mod n) jest bardzo proste, jeśl wyładn a jest potęgą dwój. Jeśl wyładn ne jest potęgą lczby 2, wówczas stosuje sę następujący algorytm do oblczena wyraŝena x a (mod n), zwany szybm algorytmem potęgowana modularnego: Algorytm wyznaczana wyraŝ ena w x a (mod n) 1. Zapsać wyładn a w systeme dwójowym: a a m a m-1 a 1 a 0, a {0,1} 2. w : 1, : m 3. w : w 2 (mod n) 4. jeśl a 1, to w : w x (mod n) 5. : -l 6. jeśl > 0, to przejść do rou 3, w przypadu przecwnym otrzymuje sę Ŝądany wyn w x a (mod n) 1.5. Odwrotno ś ć multyplatywna modulo n Oblczene odwrotnośc multyplatywnej x a -l modulo n lczby a polega na rozwązanu równana: ax 1 (mod n) (1.14) tóre odpowada równanu ax + n 1 (1.15) gdze jest pewną lczbą całowtą. Oczywśce zachodz a a -1 (mod n) 1. W teor lczb znany jest algorytm rozwązana lnowego równana dofantycznego ax + by nwd(a, b) (1.16) w dzedzne lczb całowtych. Jest to jedno równane (juŝ w III weu potrafł je rozwązywać matematy grec Dofantos) z dwema newadomym x y, tóre ma nesończene wele rozwązań. Jeśl lczby x 0 y 0 spełnają to równane, to wszyste lczby x x 0 + b, y y 0 a, gdze 0, ±1, ±2,... są równeŝ rozwązanam równana (1.16). Algorytm rozwązana równana dofantycznego polega na wyznaczanu elementów trzech sewencj: q 0 1 r 0 0 s 0 a q 1 0 r 1 1 s 1 b Dla > 1 elementy sewencj oblcza sę z wzorów: n s dv s 2 q 2 nq r r 2 nr mod s 2 s s Dla pewnego m, taego, Ŝe s m 0, otrzyma sę: x q q m y r m nwd a, b) ( s m - 4 -
Odwrotność multyplatywna lczby a modulo n stneje tylo wówczas, gdy nwd(a,n) 1. Jeśl węc lczby a n są względne perwsze, to stneje tylo jedna odwrotność multyplatywna x a -1 (mod n) mnejsza od modułu n, spełnająca warune xa (mod n) 1. Uogólnone małe twerdzene Fermata głos, Ŝe jeśl nwd(a, n) 1, to ϕ a ( n) 1 ( modn ) (1.17) sąd, po podzelenu obu stron równana (1.17) przez a otrzyma sę ϕ a ( n) 1 a ( mod n ) (2.18) co jest nną metodą oblczana odwrotnośc multyplatywnej modulo n. ϕ(n) oznacza funcję Eulera. Przyładowo, jeśl a 4 n 11, to 4-1 4 9 (mod 11) 3. 2. Szyfr Hlla Szyfr ten doonuje przeształcena lnowego d znaów testu jawnego m 1, m 2,, m d w d znaów ryptogramu c 1, c 2,,c d. Kluczem jest macerz współczynnów. Dla d 2, wyraŝene szyfrujące ma postać: c1 c 2 11 21 22 m1 modn m 2 Deszyfrowana doonujemy, uŝywając macerzy odwrotnej K -1, przy czym gdze I jest macerzą jednostową. K K modn I, Przyład. Nech lucz algorytmu Hlla będze następującą macerzą: Wtedy test jawny ryptogram mają postać: m K R Y P c T U V O Np dla m 1 K (jest to 10. ltera alfabetu lcząc od 0), m 2 R (17. ltera alfabetu lcząc od 0): 10 19 mod26 17 20 A zatem ryptogram ma postać: TU. Powtarzamy tę operację dla wszystch par lter, otrzymując pełen ryptogram. - 5 -
Oblczane macerzy odwrotnej. Aby doonać operacj deszyfrowana, naleŝy znaleźć macerz odwrotną, co oznacza rozwązane następującego równana: a c b a d c b d 1 mod26 0 0 1 Szuamy odwrotnośc macerzy, co moŝna zapsać: 5 d b a b ad bc ad bc. c d c a ad bc ad bc Stąd d b a b a b ad bc ad bc a b 1 c d c d c a c d 0 ad bc ad bc dalej: 0 1 Z zaleŝnośc tych wyna, Ŝe mus być moŝlwość dzelena modulo przez ad-bc zatem wyn tego dzałana mus być jedną z lczb 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 lub 25. Wartość ad-bc jest nazywana wyznacznem macerzy. Uogólnając, wyznaczn macerzy lucza mus być względne perwszy z n (w naszym przypadu równym 26). Wyznaczn macerzy wynos 3 5 7 1 1mod 26. A zatem macerz 19 odwrotna będze mała postać mod26 5 5 3 21 3 Dla c 1 19, c 2 20: 21 19 19 10 mod26 3 20 17 Inny przyład wyznaczena macerzy odwrotnej. Nech macerzą lucza będze. 9 10 Najperw oblczamy wyznaczn macerzy lucza: det 9 10 ( 3 10 9 7) mod26 ( 30 63) mod26 ( 33+ 2*26) mod26 19-6 -
Wyznaczn macerzy jest względne perwszy z lczbą n (równą 26), a zatem stneje macerz odwrotna. Korzystając ze wzorów podanych w materałach, otrzymujemy: 10 19 19 mod26 9 10 9 3 19 19 W arytmetyce modularnej operacja dzelena oznacza mnoŝene przez odwrotność, a zatem naleŝy znaleźć odwrotność multyplatywną lczby 19, czyl lczbę spełnającą warune: ( 19 a ) mod26 1 gdze a jest odwrotnoścą multyplatywną lczby 19. UŜywając wzorów, podanych w pt. 1.5, otrzymujemy szuaną lczbę jest ną lczba 11, a zatem: 9 10 10 11 ( 7 + 26) 11 6 1 ( + ) mod26 9 26 11 3 11 5 7 MoŜna sprawdzć, Ŝe macerz 6 1 7 jest macerzą odwrotną dla 9 10. 3. Zadana 3.1. Zapoznać sę z materałam 3.2. Zamplementować szyfr Hlla dla macerzy n n. - 7 -