Shufs algoritm

Schufs algoritm  är en effektiv algoritm [1] för att räkna antalet punkter på en elliptisk kurva över ett ändligt fält . Algoritmen har applikationer inom elliptisk kryptografi , där det är viktigt att veta antalet punkter för att bedöma svårigheten att lösa ett diskret logaritmproblem på en grupp av punkter på en elliptisk kurva.

Algoritmen publicerades 1985 av René Chouf och det var ett teoretiskt genombrott eftersom det var den första deterministiska polynomtidsalgoritmen för att räkna punkter på en elliptisk kurva . Före Schufs algoritm var tillvägagångssätt för att räkna punkter på elliptiska kurvor, såsom den enkla algoritmen för små och stora steg , för det mesta arbetskrävande och krävde exponentiell körtid.

Den här artikeln förklarar Schufs tillvägagångssätt, med fokus på de matematiska idéerna bakom algoritmen.

Inledning

Låta vara  en elliptisk kurva definierad över ett ändligt fält , där för primtal och heltal . Över ett fält med karakteristik kan en elliptisk kurva ges (kortfattat) av Weierstrass ekvation

med . Uppsättningen av punkter som definieras över består av lösningar som uppfyller ekvationen för kurvan och punkten i oändligheten . Om man använder grupplagen om elliptiska kurvor på denna mängd kan man se att denna mängd bildar en abelisk grupp , där den fungerar som nollelementet. För att räkna poäng på en elliptisk kurva, beräknar vi uppsättningens kardinalitet . Schuf-metoden använder Hasses elliptiska kurvsats , tillsammans med den kinesiska restsatsen och divisionspolynomen för att beräkna kardinaliteten .

Hasses teorem

Hasses teorem säger att om är en elliptisk kurva över ett ändligt fält så uppfyller olikheten

Detta starka resultat, som Hasse erhöll 1934, förenklar vår uppgift genom att begränsa den till en ändlig (men stor) uppsättning möjligheter. Om vi ​​bestämmer hur och använder detta resultat får vi att beräkningen av effektmodulen , där , är tillräcklig för att beräkna , och därför för att få . Även om det inte finns något effektivt sätt att beräkna direkt för allmänna tal, är det möjligt att beräkna ett litet primtal ganska effektivt. Vi väljer som en uppsättning av olika primtal, så att . Om det ges för alla låter den kinesiska restsatsen dig beräkna .

För att beräkna för primtal använder vi Frobenius endomorfismteorin och divisionspolynom . Observera att det inte leder till problem att ta hänsyn till primtal , eftersom vi alltid kan välja ett större primtal för att säkerställa att produkten är tillräckligt stor. I vilket fall som helst används Schuf-algoritmen oftast för fallet eftersom det finns mer effektiva, så kallade -adiska algoritmer, för fält med liten karakteristik.

Frobenius endomorphism

Med tanke på en elliptisk kurva definierad över , anser vi punkter på över , den algebraiska stängningen av fältet . Det vill säga vi tillåter punkter att ha koordinater i . Frobenius endomorphism över sträcker sig en elliptisk kurva med en kartläggning .

Denna karta är identisk med och kan förlängas med en punkt till oändligheten , vilket gör den till en gruppmorfism från sig själv.

Frobenius-endomorfismen uppfyller en andragradsekvation relaterad till makt genom följande teorem:

Teorem: Frobenius-endomorfismen som ges av kartläggningen uppfyller den karakteristiska ekvationen

, var

Sedan för allt vi har , där + betyder tillägget av en elliptisk kurva, och och betyder skalärprodukten av en punkt på och en punkt på [2] .

Du kan försöka beräkna dessa punkter i symbolisk form , och som funktioner på koordinatringen på kurvan , och sedan leta efter ett värde som uppfyller ekvationen. Examina visar sig dock vara mycket stora och detta tillvägagångssätt har inget praktiskt värde.

Schufs idé var att utföra sådana beräkningar och begränsa sig till att beställa poäng för olika små primtal . Genom att fixa ett udda primtal fortsätter vi att lösa problemet med att bestämma , definierat som , för ett givet primtal . Om punkten är i -torsion undergruppen av , då , där är det enda heltal så att och . Notera det och det för alla heltal vi har . Har alltså samma ordning som . Sedan för , som hör till , har vi också om . Följaktligen har vi reducerat vårt problem till att lösa ekvationen

var och ligga i intervallet .

Beräkningar modulo

Divisionspolynomet med index l  är ett polynom så att dess rötter är exakt x -koordinaterna för ordningspunkter l . Då innebär begränsningen av beräkningentill l -torsionspunkterna beräkningen av dessa uttryck som funktioner av koordinatringen E och modulen för det l -:e divisionspolynomet. Det vill säga vi arbetar i. Detta innebär i synnerhet att graden av X och Y definierade avinte överstiger 1 med avseende på variabeln y ochmed avseende på variabeln x .

Prickprodukten kan göras med dubbel-och-lägg- metoden eller med th divisionspolynomet. Det andra tillvägagångssättet ger:

,

var  är n :te divisionspolynomet. Observera att det endast är en funktion av x , låt oss beteckna denna funktion med .

Vi måste dela upp problemet i två fall: fallet där , och fallet där .

Fall 1:

Med hjälp av additionsformeln för gruppen får vi:

Observera att denna beräkning är omöjlig om ojämlikhetsantagandet misslyckas.

Vi kan nu begränsa valet av x -koordinaten för två möjligheter, nämligen de positiva och negativa fallen. Med hjälp av y -koordinaten bestämmer vi vilket av de två fallen som äger rum.

Vi visar först att X endast är en funktion av x . Överväg . Eftersom det är jämnt, genom att ersätta med , skriver vi om uttrycket som

och vi har

Nu, om för , då gäller jämställdheten för

för alla punkter av P l -torsion.

Som tidigare nämnts, med hjälp av Y och , kan vi nu avgöra vilket av de två värdena ( eller ) som fungerar. Det ger mening . Schoofs algoritm kommer ihåg värdena i en variabel för varje primtal l som betraktas .

Fall 2:

Låt oss anta det . Eftersom l är ett udda primtal är det omöjligt för , och därför . Det följer av den karakteristiska ekvationen att , och därför att . Det följer att q är en kvadratisk modulo l . Låt . Beräkna in och kontrollera om . Om så är fallet är det , beroende på y-koordinaten.

Om q inte är kvadratisk modulo l , eller om likheten misslyckas för vissa w och , är vårt antagande fel, så . Den karakteristiska ekvationen ger .

Ytterligare fall

Kom ihåg att våra initiala avtal inte tar hänsyn till fallet . Eftersom vi antog att q är udda, och i synnerhet om och endast om det har ett element av ordning 2. Enligt definitionen av addition i en grupp måste alla element av ordning 2 ha formen . Således, om och endast om polynomet har en rot i , om och endast om gcd .

Algoritm

Inmatning: 1. Elliptisk kurva . 2. Ett heltal q för ett ändligt fält med . Slutsats:Antal E poäng över . Vi väljer en uppsättning udda primtal S , som inte innehåller p , så att vi accepterar om gcd , annars accepterar vi . Vi beräknar divisionspolynomet . Alla beräkningar i slingan nedan utförs i ringen För vi kör : Låta vara det enda heltal så att och . Vi beräknar och . Om sedan Beräkna . för att göra : om om ; annars . annars om q är en kvadratisk modulo l beräkna w med beräkna om annars om annars Använd den kinesiska restsatsen för att beräkna t modulo N från ekvationen där . Vi härleder .

Svårighet

De flesta beräkningar involverar beräkning och , för varje primtal , det vill säga beräkning , , , för varje primtal . Beräkningarna innebär exponentiering i ringen och kräver multiplikationer. Eftersom graden är , är varje element i ringen ett polynom av grad . Genom primtalssatsen finns det ungefär primtal av storlek , vilket ger för , och vi får . Varje multiplikation i ringen kräver alltså multiplikationer i , vilket i sin tur kräver bitvisa operationer. Totalt är antalet bitoperationer för varje primtal . Om man antar att denna beräkning behöver göras för vart och ett av primtalen, blir den totala komplexiteten för Schufs algoritm . Genom att använda snabba polynomoperationer och heltalsaritmetik minskar denna tid till .

Förbättringar av Schuf-algoritmen

På 1990-talet kom Noam Elkis och sedan A. O. L. Atkin med förbättringar av den grundläggande Schuf-algoritmen genom att begränsa uppsättningen av primtal till tal av ett visst slag. Dessa tal blev kända som Elkis-primtal respektive Atkin-primtal. Ett primtal kallas ett Elkis-primtal om den karakteristiska likheten är nedbrytbar över , och Atkin-primtal är primtal som inte är Elkis-primtal. Atkin visade hur man kombinerar information erhållen från Atkin-primtal med information erhållen från Elkis-primtal för att få en effektiv algoritm, som kallades " Schof-Elkis-Atkin-algoritmen . Den första uppgiften är att avgöra om ett givet primtal är ett Elkis- eller Atkin-primtal. För att få detta använder vi modulära polynom, som uppstår när man studerar modulära former och tolkar elliptiska kurvor över komplexa tals fält som gitter. När vi väl har bestämt vilket fall vi har, istället för att använda divisionspolynom , kan vi arbeta med polynom som har lägre grader än divisionspolynom: istället för . För effektiv implementering används probabilistiska rotsökningsalgoritmer, vilket gör algoritmen till en Las Vegas-algoritm snarare än en deterministisk algoritm. Under det heuristiska antagandet att ungefär hälften av primtalen mindre än eller lika med är Elkis-primtal, ger detta en algoritm som är mer effektiv än Schoofs algoritm, och den förväntade körtiden för denna algoritm är , om man använder vanlig aritmetik, och , om man använder snabb aritmetik. Det bör noteras att detta heuristiska antagande är sant för de flesta elliptiska kurvor, men är inte känt för det allmänna fallet, även om den generaliserade Riemann-hypotesen är sann .

Implementeringar

Några av algoritmerna har implementerats i C++ av Mike Scott och är tillgängliga i källkod . Implementeringen är helt gratis (inga villkor, inga begränsningar), men använder MIRACL- biblioteket , som distribueras under AGPLv3- licensen .

Se även

Anteckningar

  1. Även om ECDSA -artikeln säger följande: Skoofs algoritm är ganska ineffektiv i praktiken för p -värden som verkligen är av intresse, dvs p > 2 160 .
  2. Punkten mP, lika med den m-faldiga additionen av punkten P i den additiva gruppen av punkter i en elliptisk kurva, kallas skalärprodukten av punkten och talet m , och själva punkterna mP kallas skalära multiplar av punkten ( Rybolovlev 2004 ). I Tiborgs bok ( van Tilborg 2006 ) kallas samma begrepp en skalär multipel.

Litteratur