Shufs algoritme

Schufs algoritme  er en effektiv algoritme [1] til at tælle antallet af punkter på en elliptisk kurve over et begrænset felt . Algoritmen har applikationer i elliptisk kryptografi , hvor det er vigtigt at kende antallet af punkter for at bedømme vanskeligheden ved at løse et diskret logaritmeproblem på en gruppe af punkter på en elliptisk kurve.

Algoritmen blev udgivet i 1985 af René Chouf og det var et teoretisk gennembrud, da det var den første deterministiske polynomielle tidsalgoritme til at tælle punkter på en elliptisk kurve . Før Schufs algoritme var tilgange til at tælle punkter på elliptiske kurver, såsom den simple algoritme for små og store trin , for det meste besværlige og krævede eksponentiel køretid.

Denne artikel forklarer Schufs tilgang med fokus på de matematiske ideer bag algoritmen.

Introduktion

Lade være  en elliptisk kurve defineret over et endeligt felt , hvor for primtal og heltal . Over et felt med karakteristik kan en elliptisk kurve gives (kort) af Weierstrass-ligningen

med . Sættet af punkter defineret over består af løsninger, der opfylder ligningen for kurven og punktet ved uendelig . Hvis man bruger gruppeloven om elliptiske kurver på denne mængde, kan man se, at denne mængde danner en abelsk gruppe , hvor den fungerer som nul-elementet. For at tælle punkter på en elliptisk kurve beregner vi sættets kardinalitet . Schuf-tilgangen bruger Hasses elliptiske kurvesætning , sammen med den kinesiske restsætning og divisionspolynomier til at beregne kardinaliteten .

Hasses sætning

Hasses sætning siger, at hvis er en elliptisk kurve over et endeligt felt, så opfylder uligheden

Dette stærke resultat, opnået af Hasse i 1934, forenkler vores opgave ved at indsnævre det til et begrænset (skønt stort) sæt af muligheder. Hvis vi bestemmer hvordan og bruger dette resultat, får vi, at beregningen af ​​effektmodulo , hvor , er tilstrækkelig til at beregne , og derfor til at opnå . Selvom der ikke er nogen effektiv måde at beregne direkte for generelle tal, er det muligt at beregne et lille primtal ret effektivt. Vi vælger som et sæt af forskellige primtal, sådan at . Hvis givet for alle , giver den kinesiske restsætning dig mulighed for at beregne .

For at beregne for primtal bruger vi Frobenius endomorfismeteori og divisionspolynomier . Bemærk, at det ikke giver problemer at overveje primtal , da vi altid kan vælge et større primtal for at sikre, at produktet er stort nok. Under alle omstændigheder bruges Schuf-algoritmen oftest til casen , da der er mere effektive, såkaldte -adiske algoritmer, til felter med lille karakteristik.

Frobenius endomorfisme

Givet en elliptisk kurve defineret over , overvejer vi punkter på over , den algebraiske lukning af feltet . Det vil sige, at vi tillader punkter at have koordinater i . Frobenius-endomorfismen strækker sig over en elliptisk kurve med en kortlægning .

Dette kort er identisk med og kan udvides med et punkt til det uendelige , hvilket gør det til en gruppemorfisme fra sig selv.

Frobenius endomorfismen opfylder en andengradsligning relateret til magt ved følgende sætning:

Sætning: Frobenius-endomorfien givet ved kortlægningen opfylder den karakteristiske ligning

, hvor

Så for alt , hvad vi har , hvor + betyder tilføjelsen af ​​en elliptisk kurve, og og betyder skalarproduktet af et punkt på og et punkt på [2] .

Du kan prøve at beregne disse punkter i symbolsk form , og som funktioner på koordinatringen på kurven , og så lede efter en værdi , der opfylder ligningen. Graderne viser sig dog at være meget store, og denne tilgang har ingen praktisk værdi.

Schufs idé var at udføre sådanne beregninger og begrænse sig til at bestille point for forskellige små primtal . Ved at rette et ulige primtal fortsætter vi med at løse problemet med at bestemme , defineret som , for et givet primtal . Hvis punktet er i -torsion undergruppen af ​​, Så , Hvor er det eneste heltal sådan at og . Bemærk det og det for ethvert heltal , vi har . Har således samme rækkefølge som . Så for , som hører til , har vi også hvis . Derfor har vi reduceret vores problem til at løse ligningen

hvor og ligge i intervallet .

Beregninger modulo

Divisionspolynomiet med indeks l  er et polynomium, således at dets rødder er nøjagtigt x - koordinaterne af ordenspunkter l . Så betyder begrænsningen af ​​beregningentil l -torsionspunkterne beregningen af ​​disse udtryk som funktioner af koordinatringen E og modulet af det l -te divisionspolynomium. Det vil sige, at vi arbejder i. Dette betyder især, at graden af ​​X og Y defineret afikke overstiger 1 med hensyn til variablen y ogmed hensyn til variablen x .

Punktproduktet kan udføres med dobbelt-og-tilføj- metoden eller med th divisionspolynomiet. Den anden tilgang giver:

,

hvor  er det n . divisionspolynomium. Bemærk, at det kun er en funktion af x , lad os betegne denne funktion med .

Vi skal opdele problemet i to tilfælde: det tilfælde, hvor , og det tilfælde, hvor .

Case 1:

Ved at bruge additionsformlen for gruppen får vi:

Bemærk, at denne beregning er umulig, hvis ulighedsantagelsen mislykkes.

Vi kan nu indsnævre valget af x -koordinaten for to muligheder, nemlig de positive og negative tilfælde. Ved hjælp af y- koordinaten bestemmer vi, hvilket af de to tilfælde, der finder sted.

Vi viser først, at X kun er en funktion af x . Overvej . Da det er lige, omskriver vi udtrykket ved at erstatte det med

og det har vi

Nu, hvis for , så gælder ligheden for

for alle punkter af P l -torsion.

Som tidligere nævnt, ved hjælp af Y og , kan vi nu bestemme, hvilken af ​​de to værdier ( eller ) der virker. Det giver mening . Schoofs algoritme husker værdierne i en variabel for hver betragtet primtal l .

Case 2:

Lad os antage det . Da l er et ulige primtal, er det umuligt for , og derfor . Det følger af den karakteristiske ligning, at , og derfor at . Det følger heraf, at q er en kvadratisk modulo l . Lad . Beregn ind og tjek om . Hvis ja, så er , afhængigt af y-koordinaten.

Hvis q ikke er kvadratisk modulo l , eller hvis ligheden fejler for nogle w og , er vores antagelse forkert, så . Den karakteristiske ligning giver .

Yderligere sag

Husk, at vores oprindelige aftaler ikke tager højde for sagen . Da vi antog, at q er ulige, og især hvis og kun hvis det har et element af orden 2. Ved definitionen af ​​addition i en gruppe skal ethvert element af orden 2 have formen . Således, hvis og kun hvis polynomiet har en rod i , hvis og kun hvis gcd .

Algoritme

Input: 1. Elliptisk kurve . 2. Et heltal q for et endeligt felt med . Konklusion:Antal E -point over . Vi vælger et sæt ulige primtal S , der ikke indeholder p , sådan at vi accepterer hvis gcd , ellers accepterer vi . Vi beregner divisionspolynomiet . Alle beregninger i løkken nedenfor udføres i ringen For vi udfører : Lad være det eneste heltal sådan at og . Vi beregner , og . Hvis Beregn . for at gøre : hvis hvis da ; ellers . ellers hvis q er en kvadratisk modulo l beregn w med beregn hvis ellers hvis ellers ellers Brug den kinesiske restsætning til at beregne t modulo N ud fra ligningen hvor . Vi udleder .

Sværhedsgrad

De fleste beregninger involverer beregning og , for hvert primtal , det vil sige beregning , , , for hvert primtal . Beregningerne involverer eksponentiering i ringen og kræver multiplikationer. Da graden er , er hvert element i ringen et polynomium af grad . Ved primtalssætningen er der omkring primtal af størrelse , som giver for , og vi får . Hver multiplikation i ringen kræver således multiplikationer i , hvilket igen kræver bitvise operationer. I alt er antallet af bitoperationer for hvert primtal . Hvis man antager, at denne beregning skal udføres for hver af primtallene, bliver den samlede kompleksitet af Schufs algoritme . Brug af hurtige polynomieoperationer og heltalsaritmetik reducerer denne tid til .

Forbedringer af Schuf-algoritmen

I 1990'erne kom Noam Elkis og derefter A. O. L. Atkin med forbedringer til den grundlæggende Schuf-algoritme ved at begrænse sættet af primtal til tal af en bestemt art. Disse tal blev kendt som henholdsvis Elkis-primtal og Atkin-primtal. Et primtal kaldes et Elkis-primtal, hvis den karakteristiske lighed er nedbrydelig over , og Atkin-primtal er primtal, der ikke er Elkis-primtal. Atkin viste, hvordan man kombinerer information opnået fra Atkin-primtal med information opnået fra Elkis-primtal for at opnå en effektiv algoritme, som blev kaldt " Schof-Elkis-Atkin-algoritmen . Den første opgave er at bestemme, om en given primtal er en Elkis- eller Atkin-primtal. For at få dette bruger vi modulære polynomier, som opstår, når man studerer modulære former og fortolker elliptiske kurver over komplekse tals felt som gitter. Når vi først har afgjort, hvilket tilfælde vi har, kan vi i stedet for at bruge divisionspolynomier arbejde med polynomier, der har lavere grader end divisionspolynomier: i stedet for . For effektiv implementering anvendes probabilistiske rodfindende algoritmer, som gør algoritmen til en Las Vegas-algoritme snarere end en deterministisk algoritme. Under den heuristiske antagelse, at omkring halvdelen af ​​primtal mindre end eller lig med er Elkis-primtal, giver dette en algoritme, der er mere effektiv end Schoofs algoritme, og den forventede køretid for denne algoritme er , hvis du bruger almindelig aritmetik, og , hvis du bruger hurtig aritmetik. Det skal bemærkes, at denne heuristiske antagelse er sand for de fleste elliptiske kurver, men er ikke kendt for det generelle tilfælde, selvom den generaliserede Riemann-hypotese er sand .

Implementeringer

Nogle af algoritmerne er blevet implementeret i C++ af Mike Scott og er tilgængelige i kildekoden . Implementeringen er helt gratis (ingen betingelser, ingen begrænsninger), men bruger MIRACL- biblioteket , som distribueres under AGPLv3- licensen .

Se også

Noter

  1. Selvom ECDSA- artiklen siger følgende: Skoofs algoritme er ret ineffektiv i praksis for p -værdier , der virkelig er af interesse, dvs. p > 2 160 .
  2. Punktet mP, der er lig med m-fold addition af punktet P i den additive gruppe af punkter i en elliptisk kurve, kaldes skalarproduktet af punktet og tallet m , og selve punkterne mP kaldes skalære multipla af punktet ( Rybolovlev 2004 ). I Tiborgs bog ( van Tilborg 2006 ) kaldes det samme begreb for et skalært multiplum.

Litteratur