Algorisme cangur de Pollard

De testwiki
Salta a la navegació Salta a la cerca

En teoria computacional de nombres i àlgebra computacional, lPlantilla:'algoritme cangur de Pollard (també l'algoritme lambda de Pollard, vegeu Naming a continuació) és un algorisme per resoldre el problema del logaritme discret. L'algorisme va ser introduït l'any 1978 pel teòric dels nombres John M. Pollard, en el mateix article que el seu més conegut algorisme rho de Pollard per resoldre el mateix problema. Tot i que Pollard va descriure l'aplicació del seu algorisme al problema del logaritme discret en el grup multiplicatiu d'unitats mòdul un p primer, de fet és un algorisme genèric de logaritme discret: funcionarà en qualsevol grup cíclic finit.[1][2]

Algorisme

Suposem G és un grup cíclic finit d'ordre n que és generada per l'element α, i busquem trobar el logaritme discret x de l'element β a la base α. En altres paraules, un busca xZn de tal manera que αx=β. L'algorisme lambda permet cercar x en algun interval [a,,b]Zn. Es pot cercar tot el rang de possibles logaritmes mitjançant la configuració a=0 i b=n1.[3]

1. Trieu un conjunt S de nombres enters positius de mitjana aproximadament ba i definir un mapa pseudoaleatori f:GS.

2. Trieu un nombre enter N i calcular una seqüència d'elements de grup {x0,x1,,xN} d'acord amb: [4]

x0=αb

xi+1=xiαf(xi) per i=0,1,,N1

3. Calcular

d=i=0N1f(xi).

Observeu que:

xN=x0αd=αb+d.

4. Comenceu a calcular una segona seqüència d'elements de grup {y0,y1,} d'acord amb:

y0=β

yi+1=yiαf(yi) for i=0,1,,N1

i una seqüència de nombres enters corresponent {d0,d1,} d'acord amb:

dn=i=0n1f(yi)

Observeu que:

yi=y0αdi=βαdi per i=0,1,,N1

5. Deixeu de calcular els termes de {yi} i {di} quan es compleix alguna de les condicions següents:

A) yj=xN per a alguns j. Si les seqüències {xi} i {yj} "xocar" d'aquesta manera, llavors tenim:
xN=yjαb+d=βαdjβ=αb+ddjxb+ddj(modn)
i així hem acabat.
B). di>ba+d Si això passa, l'algoritme no ha pogut trobar. Els intents posteriors es poden fer canviant l'elecció de S i/o f.

Referències

Plantilla:Referències