Pollards ro-metode for diskret logaritme ( -metode ) er en algoritme for diskret logaritme i ringen af rester modulo prime, med eksponentiel kompleksitet . Foreslået af den britiske matematiker John Pollard i 1978 , er algoritmens grundlæggende ideer meget lig dem i Pollards ro-algoritme for talfaktorisering . Denne metode overvejes for gruppen af rester, der ikke er nul, modulo , hvor er et primtal større end .
For et givet primtal og to heltal , og det er nødvendigt at finde et heltal , der opfylder sammenligningen:
(en) |
hvor er et element i den cykliske gruppe genereret af elementet .
Vi betragter en sekvens af par af heltal modulo og en sekvens af heltal modulo , defineret som følger:
(2) |
(3) |
(fire) |
(5) |
Bemærk: i alle udtryk tages der hensyn til de mindste ikke-negative rester.
Note 2 : i et mere generelt tilfælde er det muligt at opdele i 3 delmængder på en lidt anderledes måde: vi deler gruppen op i tre delmængder omtrent lige store, så den ikke hører til undermængden .
Da hver tredje af segmentet, som et element tilhører, sandsynligvis ikke er relateret til elementerne i sekvenserne , er den resulterende sekvens pseudo-tilfældig. Derfor kan der eksistere tal og sådan, at . Hvis du kan finde sådan et par tal, får du:
(6) |
Hvis tallet er relativt primtal til , så kan denne sammenligning løses, og den diskrete logaritme kan findes:
(7) |
Hvis den største fælles divisor af tal og er lig med tallet , så er der en løsning på denne sammenligning for modulo . Lad , så det ønskede tal , hvor kan tage værdierne . Derfor, hvis det er et tilstrækkeligt lille tal, løses problemet ved at opregne alle mulige værdier for . I værste fald - når - viser metoden sig ikke at være bedre end en komplet opregning af alle mulige værdier for den diskrete logaritme.
For at søge efter indekser bruges Floyd-cyklussøgningsalgoritmen . Når du bruger denne algoritme, er der på det -. trin værdier, og der søges efter et tal, som . Den mindste værdi , hvor denne betingelse er opfyldt, kaldes epact . Hvis på samme tid , så
(otte) |
Lad en gruppe af punkter af en elliptisk kurve (EC) være givet . Uden tab af generalitet kan vi antage, at og er et primtal. Angiv ordreundergruppen med og fix et genererende element . For et vilkårligt element i gruppen er problemet med diskret logaritme at finde elementet
Gruppen er repræsenteret som en fagforening , hvor der er vilkårlige sæt af omtrent samme kardinalitet. Iterationsfunktionen er defineret som
(9) |
Således hvor koefficienterne er defineret som følger
(ti) |
(elleve) |
Ved at vælge en vilkårlig begyndelsesværdi konstrueres to sekvenser og indtil en kollision er fundet på nogle . Baseret på formlerne (10) og (11) løses det diskrete logaritmeproblem:
(12) |
Det er vigtigt, at værdien opnået under kollisionen afhænger af startværdien og bestemmer den beregningsmæssige kompleksitet af Pollard-metoden.
Algoritmens hovedarbejde er at beregne sekvenser . Disse beregninger kræver tre modulo-multiplikationer for at gå videre til næste iteration. Størrelsen af den nødvendige hukommelse er minimal, da der ikke er behov for at gemme information om alle tidligere elementer i sekvenserne. Således er kompleksiteten af algoritmen reduceret til kompleksiteten af problemet med at finde epact, som igen har et heuristisk kompleksitetsestimat , og i forskellige tilfælde kan værdierne af konstanten være ret forskellige, men som en regel, ligge indenfor .
Sammenlignet med andre diskrete logaritmealgoritmer er Pollards algoritme billigere både med hensyn til binære operationer og med hensyn til den nødvendige mængde hukommelse. For eksempel, for tilstrækkeligt store værdier af tallet, er denne algoritme mere effektiv med hensyn til kompleksitet end COS- algoritmen og Adleman-algoritmen , som har kompleksitet . Sammenlignet med Shanks-algoritmen , som også har kompleksitet , er Pollard-algoritmen mere fordelagtig i forhold til den anvendte hukommelse - Shanks-algoritmen kræver hukommelse, mens størrelsen af den nødvendige hukommelse er konstant for denne algoritme (forudsat at Floyd-cyklussøgningsalgoritmen er Brugt).
Ideen med Pollards metode til distribuerede hukommelsessystemer er at adskille iterationen af punkter mellem klientarbejdsstationer og søgningen efter en kollision af serveren. Lad et sæt klientarbejdsstationer angives Serveren bestemmer de parametre, der er fælles for systemet, nogle undergrupper , og initialiserer arbejdsstationerne. Klientarbejdsstationen bygger en sekvens af punkter og sender punkterne element for element til serveren. Hvis punktet ikke er i databasen, tilføjer serveren punktet til databasen, ellers beregner den værdien af den diskrete logaritme.
Ideen bag denne metode er at parallelisere iterationsfunktionen og kollisionsdetektionsalgoritmen separat. Iterationsfunktionen er paralleliseret på stadiet med beregning af sekvenser og Det skal bemærkes, at parallel beregning af og for en fast værdi og efterfølgende sammenligning er ineffektiv. Dette skyldes, at den overhead, der er forbundet med at bruge streams, er beregningsmæssigt dyrere end computing . Det er derfor tilrådeligt at beregne sekvenser på en sådan måde, at overheaden udjævnes. Dette kan opnås ved at organisere beregninger af sekvenser af formen og , hvor er størrelsen af beregningsblokken, . Kollisionsdetektionsfunktionen i Pollard-metoden sammenligner og . Denne sammenligning kan paralleliseres ved at bruge en iterationsalgoritme for delte hukommelsessystemer. Resultatet af at udføre punktiterationsfunktionen er to sæt punkter og , som sammenlignes blok for blok, det vil sige i tilfælde af to kerner.
Pollard - metoden til distribuerede hukommelsessystemer kan udvides til brug på multi-core arbejdsstationer. Ideen med metoden er, at iterationen af punkter af klientarbejdsstationer sker i overensstemmelse med en bestemt algoritme, hvis essens er, at der er en klientarbejdsstation, der bygger en sekvens af punkter . Derefter vælger arbejdsstationen en delmængde af punkter og sender den til serveren. Kontrol af tilhørsforhold til en delmængde udføres i parallel tilstand: og (i tilfælde af to kerner). Serveren tilføjer punkter og til databasen, indtil den finder et allerede eksisterende punkt.
Der er flere væsentlige forbedringer til algoritmen baseret på forskellige tricks.
En forbedring er beskrevet i [Teske 1998]. Forskellen på metoden præsenteret i papiret ligger i den komplicerede iterative funktion - den indeholder 20 forskellige grene i stedet for de tre beskrevet ovenfor. Numeriske eksperimenter viser, at en sådan forbedring fører til en gennemsnitlig fremskyndelse af random walk-algoritmen med 20 %.
I sit arbejde med at beregne diskrete logaritmer foreslog Pollard også en metode, som blev kaldt sådan, fordi formen på et græsk bogstav ligner billedet af to stier, der går sammen til én. Ideen med metoden er at gå to veje på én gang: en fra det tal , hvis diskrete logaritme skal findes, den anden fra det tal, hvis diskrete logaritme allerede er kendt. Hvis disse to stier konvergerer, bliver det muligt at finde den diskrete logaritme af et tal . Pollard foreslog, at trinene på hver sti betragtes som kænguruspring, hvorfor denne algoritme nogle gange omtales som "kængurumetoden". Hvis man ved, at den ønskede diskrete logaritme ligger i et eller andet kort interval, så kan kængurumetoden tilpasses, nemlig at bruge kænguruer med kortere hop.
En vigtig egenskab ved lambda-metoden er, at den let kan distribueres på tværs af flere computere. Hver deltager i distribueret databehandling vælger et tilfældigt tal og begynder at lave pseudo-tilfældige trin fra tallet , hvor er det element i gruppen, som den diskrete logaritme søges for. Hver deltager bruger den samme let beregnelige pseudo-tilfældige funktion , hvor er et relativt lille sæt tal med en gennemsnitsværdi, der kan sammenlignes med gruppestørrelsen , som har orden . Effekterne for er beregnet på forhånd. Derefter antager "vandringen", startende fra elementet , formen:
Lad den anden deltager, ved at vælge det indledende nummer , få sekvensen Hvis den skærer sekvensen , det vil sige for nogle , så, under hensyntagen til det , er følgende sandt:
(13) |
(fjorten) |
Typisk bruges denne metode, når grupperækkefølgen er enkel. Siden da, hvis alle de tal, der er valgt i begyndelsen af beregningerne, er forskellige i absolut værdi , så kan sammenligningen let løses for at finde den diskrete logaritme . En lille vanskelighed er, at kampen kan forekomme inden for samme sekvens, hvilket betyder, at . Men hvis antallet af deltagere i beregningerne er stort nok, så er sandsynligheden for et match mellem sekvenser større end sandsynligheden for et match inden for samme sekvens.
Det er muligt at bruge en pseudo-tilfældig funktion . I dette tilfælde vil alle matchninger være nyttige: et match inden for samme sekvens kan også bruges til at beregne den diskrete logaritme. I tilfælde af et sådant match bliver metoden simpelthen til en metode. Men hvis det er kendt, at den ønskede diskrete logaritme ligger i et kort interval, så kan den oprindelige metode bruges. Så vil køretiden være cirka kvadratroden af længden af intervallet. I dette tilfælde skal gennemsnitsværdien af heltal fra sættet være mindre, så "kænguruerne" kun springer over et interval med den ønskede længde.
Den centrale computer skal spore alle sekvenser fra alle deltagere til kampe. Ifølge fødselsdagsparadokset forventes et match, når antallet af elementer i alle sekvenser er af størrelsesordenen ). I den beskrevne form kræver denne metode naturligvis en stor mængde hukommelse på den centrale computer. Den næste idé, beskrevet i arbejdet af van Orschot, reducerer hukommelseskravene kraftigt og gør således denne metode anvendelig til at løse komplekse problemer. Tanken er at overveje de såkaldte udvalgte punkter. Det antages, at gruppens elementer er repræsenteret af heltal (eller muligvis sæt af heltal). Et fornemt binært længdefelt i et sådant tal vil bestå af alle nuller i omkring den th del af tiden. En tilfældig gåtur vil gå gennem sådanne udvalgte punkter i gennemsnit hvert skridt. Hvis to tilfældige sekvenser skærer hinanden et sted, så vil de skære hinanden yderligere og sammen komme til det næste valgte punkt. Så ideen er kun at sende disse udvalgte punkter til den centrale computer, hvilket vil reducere den nødvendige hukommelsesstørrelse med en faktor.