14 Z. <strong>Kotulski</strong>nom monety. W praktyce poszukujemy bardziej efektywnych rde takichstrumieni ni wzorcowe rzuty monet.W zastosowaniach profesjonalnych o wymaganym duym stopniu poufnocii zarazem o stosunkowo niewielkiej intensywnoci (np. korespondencjadyplomatyczna) wykorzystywane s metody podobne do oryginalnegopomys lu Vernama. Na tamie magnetycznej, dostarczanej nastpnie w bezpiecznysposb do obu korespondujcych stron, zapisuje si cig bitw (uzyskany,na przykad, z generatora zycznego i wszechstronnie statystycznieprzetestowany), ktry po jednokrotnym wykorzystaniu jest niszczony. Wtelekomunikacji, gdzie potrzebne s dzi rda bitw ointensywnoci do1 GB/sek, wykorzystywane s matematyczne metody generowania bitw.Przedstawimy teraz wybrane <strong>algorytmy</strong> stosowane w tych generatorach.4.2. Metody teorio<strong>liczb</strong>owe. Przedstawione w poprzednim rozdzialegeneratory oparte na schemacie wielokrotnego obliczania reszt modulo Mmog by z powodzeniem wykorzystane do generowania cigw bitw. Wnajprostszej wersji wystarczy kad z wygenerowanych <strong>liczb</strong> naturalnychzapisa w formie binarnej, uzyskujc kadorazowo blok bitw, czyli znakw0" lub 1". W celu poprawienia wasnoci statystycznych (zgodnoci zrozkadem rwnomiernym i zapewnienia niezalenoci) mona wybra pojedyncze,na przykad najm lodsze, bity zkadej <strong>liczb</strong>y otrzymanej jako resztamodulo M. Odrbnym problemem pozostaje przewidywalno generatorwarytmetycznych, wasno dyskwalikujca cigi bitw w zastosowaniachkryptogracznych. Dlatego te, w celu uzyskania cigu nadajcego sie dopraktycznego wykorzystania naley sign do arytmetycznych generatorw<strong>liczb</strong> <strong>losowych</strong> nie posiadajcych cechy przewidywalnoci. A to wymaga skorzystaniaz pewnych faktw znanych w teorii <strong>liczb</strong>.4.2.1. Generator reszt kwadratowych BBS. Generator <strong>liczb</strong> <strong>losowych</strong>,ktry nie ma cechy przewidywalnoci, zosta opracowany przez trzech autorw(Blum, Blum, Shub) i od ich nazwisk nazwany BBS, por. [3]. Generowanie<strong>liczb</strong>y losowej nastpuje w wyniku obliczenia reszty kwadratowej wedugwzoru(4.1)X i = X 2 i;1mod Mdla i = 1 2 . . . Sia algorytmu polega na odpowiednim wyborze <strong>liczb</strong>yM oraz punktu startowego generatora (ziarna). Budujc generator BBS,w pierwszym kroku znajdujemy dwie <strong>liczb</strong>y pierwsze p i q, odpowiedniodue (najlepiej w sposb tajny), i nastpnie obliczamy(4.2)M = pq:Nastpnie ustalamy punkt startowy, wybierajc <strong>liczb</strong> naturaln s z przedziau(1M), speniajc warunek NWD(s M)=1 i przyjmujemy
<strong>Generatory</strong> <strong>liczb</strong> <strong>losowych</strong> 15(4.3)(4.4)X 0 = s 2 :Jeeli <strong>liczb</strong>y p i q speniaj warunekp q 3mod4(czyli reszta z dzielenia p oraz q przez 4 jest rwna 3), to przeksztacenie(4.1) deniuje permutacj na (Z M ) 2 i okres generatora jest maksymalny.Jeeli znany jest rozkad <strong>liczb</strong>y M na czynniki pierwsze (p i q nie sgenerowane w sposb tajny), to kolejne bity generatora BBS mona obliczamniejszym nakadem obliczeniowym, korzystajc z zalenoci (por. [17])(4.5)B(x 2jmod M) =B(x mod m)gdzie B() jest operacj obliczania najmodszego bitu <strong>liczb</strong>y cakowitej oraz(4.6) =2 j mod (M) (M) =(p ; 1)(q ; 1):Dla legalnego uytkownika generatora wasno ta jest uatwieniempracy. Niestety, jest to rwnie uatwienie dla potencjalnego napastnika usi-ujcego zama szyfr wykorzystujcy generator BBS.4.2.2. Generator potgowy RSA. Generator bitw <strong>losowych</strong>, ktrego bezpieczestwooparte jest na systemie podobnym do kryptosystemu kluczapublicznego RSA, zaproponowany zosta w pracy [2]. Metoda generowaniacigu bitw b 1 b 2 ...b l polega na realizacji nastpujcych krokw.(4.7)(4.8) Generujemy dwie<strong>liczb</strong>y pierwsze p i q w taki sposb, jak dla szyfruRSA (due <strong>liczb</strong>y pierwsze zblionej wielkoci { zasady bezpieczestwaRSA omwione s np. w [38]). ObliczamyM = pq (M) =(p ; 1)(q ; 1): Wybieramy losow <strong>liczb</strong> w, 1