Machtsgenerator

Uit testwiki
Naar navigatie springen Naar zoeken springen

Een machtsgenerator is een pseudotoevalsgenerator, een algoritme dat pseudotoevalsgetallen produceert. Dat zijn getallen die deterministisch worden voortgebracht en dus niet echt willekeurig zijn, maar veel eigenschappen van toevalsgetallen hebben.

Definitie

Een machtsgenerator is een algoritme voor het berekenen van de rij (un) via de recursieve relatie:

un=un1e(modm);

Daarin zijn u0 (de startwaarde), m en e gehele getallen zodanig dat ggd(u0,m)=1.

Voor de gegenereerde getallen geldt: 0unm1.

De machtsgenerator heeft veel toepassingen op het gebied van cryptografie. Daarnaast zijn pseudotoevalsgetallen ook van belang voor numerieke simulaties van Monte Carlo-methoden, numerieke analyse, het testen van computerchips voor gebreken en de programmering van speelautomaten. Verschillende toepassingen vereisen verschillende eigenschappen van de getallen.

Complexiteit

Voor een machtsgenerator met m een priemgetal en periode T kan de lineaire complexititeit L afgeschat worden door:

LT2m1.

RSA-generator

Een bijzonder geval van een machtsgenerator is de RSA-generator. Als d zodanig gekozen wordt dat ggd(e,φ(m))=1, met φ(m) de Eulerfunctie, wordt de generator RSA-generator genoemd. Het is aangetoond dat als de periode T van de rij (un) voldoet aan de ongelijkheid Tm3/4+ε voor een gegeven e>0, dan zijn de fracties (un/m)n=1T uniform verdeeld op het interval [0,1].

Blum-Blum-Shub generator

Een ander speciall geval is de Blum-Blum-Shub-generator, Als e=2, wordt de generator Blum-Blum-Shub-generator genoemd, bedacht door Lenore Blum, Manuel Blum and Michael Shub in 1986. Deze generator is van de vorm unun12(modm), met m=pq het product van twee grote priemgetallen p en q. Bij elke stap van het algoritme wordt een uitkomst verkregen uit het berekende getal un. Die uitkomst is meestal de pariteitsbit van un of een of meer van de minst significante bits van un.

De beginwaarde u0 moet een geheel getal zijn ongelijk aan 1 en ggd(u0,m)=1. De priemgetallen p en q moeten beide modulo 4 congruent zijn met 3 (dit garandeert dat elk kwadratisch residu een wortel heeft die ook een kwadratisch residu is) en ggd(φ(p1),φ(q1)) moet klein zijn (dit maakt de cycluslengte groot).

Een interessant kenmerk van de Blum-Blum-Shub-generator is de mogelijkheid om elke ui rechtstreeks te berekenen (via de stelling van Euler).

Beveiliging

De Blum-Blum-Shub-generator is niet geschikt voor gebruik in simulaties, alleen voor cryptografie, omdat het algoritme erg traag is. Het heeft wel een ongewoon sterke beveiliging; de kwaliteit van de generator hangt af van de rekentechnische moeilijkheid van het ontbinden in priemfactoren.

Als factorisatie in priemfactoren moeilijk is (zoals wordt vermoed), zou de Blum-Blum-Shub-generator met grote m een output moeten hebben vrij van niet-willekeurige patronen die kunnen worden ontdekt met niet te veel berekeningen. Zo lijkt het net zo veilig als andere encryptietechnologieën gebonden aan de factorisatieprobleem, zoals RSA-encryptie.

Lineaire complexiteit

Neem aan dat de rij (un) periodiek is met periode T. Dan geldt voor de lineaire complexiteit L van de Blum-Blum-Shub-generator de afschatting:

LTφ(m)1/2.

Met behulp van van de Chinese reststelling kan men zien dat de lineaire complexiteit modulo een samengesteld getal m gelijk is aan de grootste lineaire complexiteit modulo alle priem machtsdelers van m. Dit geldt inderdaad als m=m1m2, met m1,m22 relatief priem en als een zekere oneindige rij (sn) voor n=1,2, voldoet aan de congruenties:

Sn+L1aL11sn+L11++a0Sn(modm1)

en

Sn+L2bL21sn+L21+...+b0Sn(modm)2

We zetten bk=ak=0 voor k<0 en definiëren vervolgens integers

0c0,,cL1m1, met L=max{L1,L2}

vanuit de congruenties:

cLjaL1j(modm1) en cLjbL2j(modm2).

Dan geldt dat Sn+LcL1sn+L1++c0Sn(modm),n=1,2,

Daarom geldt dat voor een Blum-integer m=pq met pqm1/2 dat de lineaire complexiteit L de volgende formule niet overschrijdt:

L=max{Lp,Lq}max{Tp,Tq}max{p,q}=(1+o(1))m1/2,

met Lp en Tp de lineaire complexiteit en de periode modulo p en Lq en Tq de lineaire complexiteit en de periode modulo q.

In het meest interessante geval voor toepassing, namelijk als de periode T van orde m is, geven bovenstaande formules dat L van grootst mogelijke orde m is.

Referenties

Cusick, T.W., C. Ding, and A. Renvall, Stream ciphers and number theory, Elsevier (2004)

Shparlinski, I., On the linear complexity of the power generator, School of MPCE (2001)