Pollards kængurualgoritme

I beregningstalteori og beregningsmæssig algebra er Pollards kængurualgoritme (og også Pollards lambdaalgoritme , se afsnittet om titel nedenfor) en algoritme til løsning af det diskrete logaritmeproblem . Algoritmen blev foreslået i 1978 af talteoretikeren J. M. Pollard i samme papir [1] som hans bedre kendte ρ-algoritme til at løse det samme problem. Selvom Pollard beskriver anvendelsen af ​​denne algoritme til det diskrete logaritmeproblem i en multiplikativ gruppe modulo a prime p , er det i virkeligheden en generel diskret logaritmealgoritme - den vil fungere på enhver cyklisk finit gruppe.

Algoritme

Lade være  en endelig cyklisk gruppe af orden genereret af et element , og vi leder efter den diskrete logaritme af elementet med hensyn til basen . Med andre ord, vi leder efter , sådan at . Lambda-algoritmen giver os mulighed for at søge i en delmængde af . Vi kan søge efter det fulde sæt af mulige logaritmer ved at antage og , selvom ρ-algoritmen vil være mere effektiv i dette tilfælde. Vi går videre som følger:

1. Vælg et sæt heltal og definer en pseudo-tilfældig afbildning .

2. Vælg et heltal og beregn rækkefølgen af ​​gruppeelementer i henhold til formlerne:

3. Beregn

.

Læg mærke til det

4. Vi begynder at beregne den anden sekvens af gruppeelementer ved hjælp af formlerne

og den tilsvarende sekvens af heltal ifølge formlen

.

Læg mærke til det

til

5. Stop computing , og når en af ​​betingelserne er opfyldt

A) for nogle . Hvis sekvenserne og "kolliderer" på denne måde, har vi: så vi fandt, hvad vi ønskede. B) . Hvis dette sker, har algoritmen ikke kunnet finde . Et andet forsøg kan gøres ved at ændre sættet eller/og tilknytningen .

Sværhedsgrad

Pollard specificerede en tidskompleksitet for algoritmen , baseret på probabilistisk ræsonnement, som følger af antagelsen om, at f virker pseudo-tilfældigt. Bemærk, at i det tilfælde, hvor størrelsen af ​​mængden { a , …, b } måles i bits , hvilket er sædvanligt i kompleksitetsteori , har mængden størrelseslog( b  −  a ), så den algoritmiske kompleksitet er lig med , som er en eksponent for problemstørrelsen. Af denne grund anses Pollards lambda-algoritme for at være en eksponentiel kompleksitetsalgoritme . For et eksempel på en tids-subeksponentiel algoritme, se Order calculus algoritme .

Titel

Algoritmen kendes under to navne.

Fornavnet er Pollards "kænguru"-algoritme . Navnet henviser til en analogi brugt i artiklen, hvor algoritmen blev foreslået. Artiklen forklarer algoritmen i forhold til at bruge en tam kænguru til at fange en vild . Som Pollard [2] forklarede , var denne analogi inspireret af et "charmerende" papir offentliggjort i samme nummer af Scientific American som udgivelsen af ​​RSA Public Key Cryptosystem . Artikel [3] beskriver et eksperiment, hvor "energiomkostningerne ved at flytte en kænguru, målt i iltforbrug ved forskellige hastigheder, blev bestemt ved at placere en kænguru på et løbebånd ".

Det andet navn er Pollards lambda-algoritme . Meget lig navnet på Pollards anden algoritme for diskret logaritme, ρ-algoritmen , og dette navn skyldes algoritmens visualiseringslighed med det græske bogstav lambda ( ). Den korte linje i bogstavet lambda svarer til rækkefølgen . Følgelig svarer den lange linje til den sekvens , der "kolliderer med" den første sekvens (svarende til mødet mellem de korte og lange linjer i et bogstav).

Pollard foretrækker at bruge navnet "kænguru-algoritme" [4] for at undgå forveksling med nogle parallelle versioner af ρ-algoritmen, som også kaldes "lambda-algoritmer".

Se også

Noter

  1. Pollard, 1978 .
  2. Pollard, 2000 , s. 437-447.
  3. Dawson, 1977 , s. 78-89.
  4. jmptidcott2 . Hentet 5. november 2016. Arkiveret fra originalen 17. august 2016.

Litteratur