Elliptisk kryptografi

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 23 november 2021; kontroller kräver 37 redigeringar .

Elliptisk kryptografi är en gren av kryptografi som studerar asymmetriska kryptosystem baserade på elliptiska kurvor över ändliga fält . Den största fördelen med elliptisk kryptografi är att subexponentiella diskreta logaritmalgoritmer inte är kända i dagsläget .

Användningen av elliptiska kurvor för att skapa kryptosystem föreslogs oberoende av Neil Koblitz och Victor Miller 1985 [ 1] .

Introduktion

1985 föreslogs det oberoende av Neil Koblitz och Victor Miller att använda de algebraiska egenskaperna hos elliptiska kurvor i kryptografi . Från det ögonblicket började den snabba utvecklingen av en ny riktning inom kryptografi, för vilken termen "kryptografi på elliptiska kurvor" används. Rollen för den huvudsakliga kryptografiska operationen utförs genom operationen av skalär multiplikation av en punkt på en elliptisk kurva med ett givet heltal, vilket bestäms genom operationerna att addera och dubbla punkterna i en elliptisk kurva. De senare utförs i sin tur på basis av additions-, multiplikations- och inversionsoperationer i det finita fält över vilket kurvan betraktas. Av särskilt intresse i elliptisk kurvkryptografi beror på fördelarna som dess användning i trådlös kommunikation ger - hög hastighet och liten nyckellängd [2] . Asymmetrisk kryptografi är baserad på komplexiteten i att lösa vissa matematiska problem. Tidiga kryptosystem med offentlig nyckel, såsom RSA-algoritmen , är säkra på grund av att det är svårt att faktorisera ett sammansatt antal i primtalsfaktorer. När man använder algoritmer på elliptiska kurvor, antas det att det inte finns några subexponentiella algoritmer för att lösa problemet med diskret logaritm i grupper av sina punkter. I det här fallet bestämmer ordningen för gruppen av punkter i den elliptiska kurvan problemets komplexitet. Man tror att för att uppnå samma nivå av kryptografisk styrka som i RSA krävs grupper av mindre beställningar, vilket minskar kostnaderna för att lagra och överföra information. Till exempel, vid RSA 2005-konferensen, tillkännagav National Security Agency skapandet av "Suite B", som endast använder elliptiska kryptografialgoritmer, och endast 384-bitars nycklar används för att skydda information klassificerad upp till "Top Secret".

Elliptiska kurvor över ändliga fält

En elliptisk kurva är en uppsättning punkter som uppfyller ekvationen:

Denna ekvation kan övervägas över godtyckliga fält och, i synnerhet, över ändliga fält , som är av speciellt intresse för kryptografi.

I kryptografi betraktas elliptiska kurvor över två typer av ändliga fält : enkla fält med udda karaktäristik ( , där är ett primtal) och fält med karakteristik 2 ( ).

Elliptiska kurvor över fält med udda karaktäristik

Över det karakteristiska fältet kan ekvationen för den elliptiska kurvan E reduceras till formen:

var är konstanter tillfredsställande .

Gruppen av punkter i en elliptisk kurva E över ett fält är uppsättningen av par som ligger på E , kombinerat med nollelementet :

Det bör noteras att i varje element som inte är noll finns det antingen två kvadratrötter, eller ingen, så punkterna på den elliptiska kurvan är uppdelade i par av formen och .

Exempel

Betrakta en elliptisk kurva över ett fält . På denna kurva, i synnerhet, ligger punkten , eftersom . Det är lätt att kontrollera att punkterna , , , alla är punkter i den givna kurvan.

Hasses teorem

Hasses elliptiska kurvsats säger att antalet punkter på en elliptisk kurva är nära storleken på det finita fältet:

vad ger:

Elliptiska kurvor över fält med egenskap 2

Över ett fält med karakteristik 2 övervägs två typer av elliptiska kurvor:

Den speciella bekvämligheten med supersingulära elliptiska kurvor är att det är lätt att beräkna ordningen för dem, medan det är svårt att beräkna ordningen för icke-supersingulära kurvor. Supersingulära kurvor är särskilt bekväma för att skapa ett hemgjort ECC (Elliptic-curve cryptography) kryptosystem. För att använda dem kan du klara dig utan den tidskrävande proceduren att beräkna ordern.

Projektiva koordinater

För att beräkna summan av ett par punkter på en elliptisk kurva krävs inte bara flera operationer av addition och multiplikation i , utan också en inversionsoperation , det vill säga för ett givet fynd så att , vilket är en eller två storleksordningar långsammare än multiplikation. Lyckligtvis kan punkter på en elliptisk kurva representeras i olika koordinatsystem som inte kräver användning av inversion när man lägger till punkter:

Det är viktigt att notera att det kan finnas olika namn – till exempel kallar IEEE P1363-2000 projektiva koordinater vad som brukar kallas Jacobi-koordinater.

Kryptering/dekryptering med elliptiska kurvor

Den första uppgiften i systemet som övervägs är att kryptera den vanliga texten i meddelandet , som kommer att skickas som ett värde (Hur?) [3] för punkten . Här kommer punkten att representera texten som är inkodad i den och kommer därefter att avkodas. Observera att det inte är möjligt att koda ett meddelande med bara en koordinat eller en punkt, eftersom inte alla sådana koordinater är tillgängliga i . Liksom i fallet med nyckelutbytessystemet, i krypterings- och dekrypteringssystemen, betraktas också punkten och den elliptiska gruppen som parametrar . Användaren väljer en privat nyckel och genererar en offentlig nyckel . För att kryptera och skicka ett meddelande till användaren väljer användaren ett slumpmässigt positivt heltal och beräknar en chiffertext som består av ett par punkter

. I det här fallet ett par punkter.

Observera att parten använder partens publika nyckel : . För att dekryptera denna chiffertext, multiplicera den första punkten i paret med den hemliga nyckeln och subtrahera resultatet från den andra punkten:

Användaren maskerade meddelandet genom att lägga till . Ingen utom den här användaren känner till värdet på , så även om det är den offentliga nyckeln kan ingen avmaska ​​. Användaren inkluderar dock också ett "tips" i meddelandet, vilket kommer att räcka för att ta bort masken från den som har den privata nyckeln . För att återställa meddelandet måste motståndaren beräkna från data och , vilket verkar vara en svår uppgift [4] .

Aritmetiska operationer på punkter på en elliptisk kurva är inte ekvivalenta med dessa aritmetiska operationer på deras koordinater.

Punkterna i en elliptisk kurva över ett ändligt fält representerar en grupp [5] . Multiplikation reduceras till upprepad dubblering och summering.

Till exempel, G+G ≠ 2G ( detta är olika operationer ), 2G + 2^115G = 2^115G + 2G (summeringen är kommutativ);

2G=2*G; 4G=2*2G; 8G=2*4G; 16G = 2*8G, etc. (för två identiska punkter - endast fördubblingsoperationen);

25*G; 25 = 11001 (i binärt); 25 = 1*2^0 + 0*2^1 + 0*2^2 + 1*2^3 + 1*2^4 = 1 + 8 + 16; 25G = 16G + 8G + G = 1*(2^4)G + 1*(2^3)G + 1*G (summeringsoperation).

24G/3 = 24G * (3^-1 mod P); där 3^(-1) mod P - modulär multiplikativ invers ,

5G - 3G = 5G + (-3G); där -3G = nG - 3G = O - 3G - additiv invers, punkt motsatt .

Exempel

Betrakta fallet , , som motsvarar kurvan

och .

Anta att användaren är på väg att skicka ett meddelande till användaren som är kodat med en elliptisk punkt och att användaren väljer ett slumpmässigt nummer . Den publika nyckeln är . Vi har:

.

Därför måste användaren skicka chiffertexten .

Krypteringsimplementering

Specifika implementeringar av elliptiska kurvor krypteringsalgoritmer beskrivs nedan. Här överväger vi de allmänna principerna för elliptisk kryptografi.

Parameteruppsättning

För att använda elliptisk kryptografi måste alla deltagare komma överens om alla parametrar som definierar den elliptiska kurvan, d.v.s. en uppsättning kryptografiska protokollparametrar. Den elliptiska kurvan bestäms av konstanter och från ekvation (2). Den Abeliska undergruppen av punkter är cyklisk och ges av en genererande punkt G . I detta fall måste kofaktorn , där n är ordningen för punkten G , vara liten ( , helst jämn ).

Så, för fältet för egenskap 2, uppsättningen parametrar: , och för det sista fältet , där , uppsättningen parametrar: .

Det finns flera rekommenderade parameteruppsättningar:

Gör följande för att skapa din egen uppsättning parametrar.

  1. Välj en uppsättning alternativ.
  2. Hitta en elliptisk kurva som uppfyller denna uppsättning parametrar.

Två metoder används för att hitta kurvan för en given uppsättning parametrar.

Det finns flera klasser av kryptografiskt "svaga" kurvor som bör undvikas:

Snabb reduktion (NIST-kurvor)

Division modulo p (som är nödvändig för addition och multiplikation) kan utföras snabbare om p väljs till ett primtal nära potensen 2. I synnerhet kan p vara ett Mersenne-primtal . Till exempel, eller är bra val . National Institute of Standards and Technology (NIST) rekommenderar att man använder liknande primtal som p .

En annan fördel med NIST-rekommenderade kurvor är valet av , vilket påskyndar additionsoperationen i Jacobi-koordinater.

Elliptiska kurvor rekommenderas av NIST

NIST rekommenderar 15 elliptiska kurvor, av vilka många härleddes av Jerry Solinas (NSA) baserat på Neil Koblitz' arbete [10] . I synnerhet rekommenderar FIPS 186-3 [11] 10 slutfält. Några av dem:

Dessutom rekommenderas en elliptisk kurva för varje ändligt fält. Dessa finita fält och elliptiska kurvor är ofta felaktigt valda på grund av den höga säkerhetsnivån. Enligt NIST motiverades deras val av effektiviteten i mjukvaruimplementeringen [13] . Det finns tvivel om säkerheten för åtminstone ett fåtal av dem [14] [15] [16] .

Nyckelstorlek

Den snabbaste algoritmen som löser det diskreta logaritmproblemet på elliptiska kurvor, som Shanks algoritm och Pollards ρ-metod , behöver operationer. Därför måste storleken på fältet vara minst dubbelt så stor som nyckeln. Till exempel, för en 128-bitars nyckel, rekommenderas det att använda en elliptisk kurva över ett fält , där p är 256 bitar långt.

De mest komplexa elliptiska kurvkretsarna som hittills har spruckits offentligt har innehållit en 112-bitars nyckel för ett ändligt primfält och en 109-bitars nyckel för ett ändligt fält med karakteristik 2. . I juli 2009 hittade ett kluster av över 200 Sony Playstation 3:or en 109-bitars nyckel på 3,5 månader. Nyckeln över funktionsfält 2 hittades i april 2004 med 2 600 datorer under en period av 17 månader .

En analog till Diffie-Hellman nyckelutbyte

Antag att abonnenterna A och B vill komma överens om en nyckel som de senare kommer att använda i något klassiskt kryptosystem. Först och främst väljer de öppet något ändligt fält och någon elliptisk kurva över det. Deras nyckel är byggd från en slumpmässig punkt på denna elliptiska kurva. Om de har en slumpmässig punkt , så ger till exempel dess -koordinat ett slumpmässigt element , som sedan kan konverteras till ett -bit heltal i -ärt talsystem (där ), och detta tal kan fungera som en nyckel i deras klassiska kryptosystem. De måste välja en punkt så att alla deras meddelanden till varandra är öppna och ändå ingen annan än de två vet något om .

Prenumeranter (användare) A och B väljer först öppet en punkt ∈ som "bas"; spelar samma roll som generatorn i Diffie-Hellman-systemet för finita fält. Vi kräver dock inte att det är ett genererande element i gruppen av punkter i kurvan . Denna grupp kanske inte är cyklisk. Även om det är cykliskt, låt oss inte slösa tid på att kontrollera vad som är ett genererande element (eller ens hitta det totala antalet N poäng, vilket vi inte kommer att behöva i det följande). Vi vill att undergruppen som genereras av B ska vara stor, helst i samma storleksordning som den själv . För närvarande antar vi att det är en öppet tagen punkt på en mycket stor order (lika med antingen , eller en stor divisor ).

För att bilda en nyckel väljer man först slumpmässigt ett heltal jämförbart i storleksordning med (som är nära ); han håller detta nummer hemligt. Den beräknar ∈ och passerar denna punkt öppet. Prenumerant B gör samma sak: han väljer slumpmässigt och sänder offentligt ∈ . Då är den hemliga nyckeln de använder ∈ . Båda användarna kan beräkna denna nyckel. Till exempel vet den (punkten överfördes öppet) och sin egen hemlighet . En tredje part känner dock endast till och . Bortsett från att lösa problemet med diskret logaritm - att hitta en från och (eller hitta från och ), verkar det inte finnas något sätt att hitta , bara veta och [17] .

Ett exempel på ett Diffie-Hellman-nyckelutbyte

Som ett exempel, låt oss ta

... _

som motsvarar kurvan

och .

Det kan beräknas att . Användare A:s privata nyckel är , så A:s publika nyckel är det

.

Användare B:s privata nyckel är , så B:s publika nyckel är det

.

Den gemensamma hemligheten är

.

Säkerhet för kryptografi med elliptiska kurvor

Säkerheten som tillhandahålls av den elliptiska kurvans kryptografiska metoden beror på hur svårt det är att lösa problemet med att bestämma från data och . Detta problem brukar kallas det diskreta logaritmproblemet på en elliptisk kurva. Den snabbaste metoden som idag är känd för att ta logaritmer på en elliptisk kurva är den så kallade Pollardmetoden. Tabellen (se nedan) jämför effektiviteten av denna metod med siktprimtalsfaktoriseringsmetoden i det allmänna talfältet. Av den framgår att jämfört med RSA, vid användning av kryptografimetoder på elliptiska kurvor, uppnås ungefär samma skyddsnivå med betydligt mindre nyckellängder.

Dessutom, givet samma nyckellängder, är den beräkningsansträngning som krävs av RSA och elliptisk kurvkryptografi inte mycket annorlunda. Jämfört med RSA på lika skyddsnivåer tillhör alltså kryptografi baserad på elliptiska kurvor med kortare nyckellängd en klar beräkningsfördel [18] .

Tabell: Beräkningsansträngning som krävs för kryptoanalys med elliptiska kurvor och RSA

Nyckelstorlek MIPS år
150 3,8*10^10
205 7,1*10^18
234 1,6*10^28
Nyckelstorlek MIPS år
512 3*10^4
768 3*10^7
1024 3*10^11
1280 3*10^14
1536 3*10^16
2048 3*10^20

Konstruktion av en elektronisk digital signatur med elliptiska kurvor

ECDSA - algoritmen (Elliptic Curve Digital Signature Algorithm) har antagits som ANSI X9F1- och IEEE P1363-standarder .

Skapa nycklar

  1. En elliptisk kurva väljs . Antalet punkter på den måste vara delbart med ett stort primtal n.
  2. Beställningens baspunkt väljs .
  3. Ett slumpmässigt tal väljs .
  4. Beräknat .
  5. Den privata nyckeln är d, den publika nyckeln är tupeln <a, b, G, n, Q>.

Skapa en signatur

  1. Ett slumpmässigt tal väljs .
  2. och beräknas .
  3. Villkoret är kontrollerat eftersom signaturen annars inte beror på den privata nyckeln. Om r = 0, väljs ett annat slumpmässigt tal k.
  4. Beräknat .
  5. Beräknat .
  6. Villkoret kontrolleras , eftersom numret som krävs för att verifiera signaturen i detta fall inte existerar. Om s = 0, väljs ett annat slumpmässigt tal k.

Signaturen för meddelandet M är ett par siffror (r, s).

Signaturverifiering

  1. Låt oss kontrollera att siffrorna r och s hör till siffrorna (1, n). Annars är verifieringsresultatet negativt och signaturen avvisas.
  2. Beräkna och H(M).
  3. Beräkna och .
  4. Beräkna .
  5. Signaturen är sann om och endast om v = r [19] .

Applikationer

De flesta av kryptosystemen i modern kryptografi kan naturligtvis "överföras" till elliptiska kurvor. Grundidén är att den kända algoritmen som används för specifika ändliga grupper skrivs om för att använda grupper av rationella punkter i elliptiska kurvor:

Det bör noteras att säkerheten för sådana digitala signatursystem inte bara beror på den kryptografiska styrkan hos krypteringsalgoritmer, utan också på den kryptografiska styrkan hos de kryptografiska hashfunktioner och slumptalsgeneratorer som används .

Enligt en recension från 2013 är de mest använda kurvorna nistp256, nistp384, nistp521, secp256k1, secp384r1, secp521r1 [20] .

Anteckningar

  1. Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman. Introduktion till matematisk kryptografi . - Springer, 2008. - 524 sid. - (Grundutbildningstexter i matematik). — ISBN 9780387779942 .
  2. Bolotov A. A., Gashkov S. B., Frolov A. B., Chasovskikh A. A. . En elementär introduktion till elliptisk kryptografi. 11 sid.
  3. Koda siffror till punkter på en elliptisk kurva i ett ändligt fält och kryptera-dekryptera dem. . Hämtad 29 oktober 2019.
  4. Zhdanov O.N., Zolotarev V.V. Metoder och medel för kryptografiskt skydd av information. 167 sid.
  5. Elliptisk kryptografi: En teori . Hämtad 13 oktober 2016.
  6. Rekommenderade elliptiska kurvor för statligt bruk
  7. SEK 2: Rekommenderade domänparametrar för elliptisk kurva
  8. Schoofs algoritm  (nedlänk)
  9. Schoof–Elkies–Atkin-algoritm
  10. Neal Koblitz. Random Curves: Journeys of a Mathematicians . - Springer, 2009. - S. 312-313. — 402 sid. — ISBN 9783540740780 .
  11. FIPS 186-3 Arkiverad 7 oktober 2013. // NIST, 2009; utfasade 2013 med lanseringen av FIPS 186-4
  12. Denna sekvens kan tyckas vara ett misstag. Det sista värdet är dock exakt 521, inte 512 bitar.
  13. Daniel J. Bernstein , Tanja Lange, Security dangers of the NIST curves // 2013.09.16: "Varför valde NIST dessa kurvor? * De flesta vi har frågat: säkerhet * Faktiskt NIST-designdokument: effektivitet" ( [1] )
  14. Daniel J. Bernstein och Tanja Lange. SafeCurves: att välja säkra kurvor för kryptografi med elliptisk kurva.  (engelska) . safecurves.cr.yp.to (18 november 2013). Hämtad: 20 december 2013.
  15. Evgeny Zolotov . Snowden och elliptisk krypto: Bitcoin och TOR är bortom alla misstankar, men hur är det med andra projekt? , Computerra (16 september 2013). Hämtad 20 december 2013.
  16. Dr Michael Scott, Backdoors in NIST elliptic curves Arkiverad 20 december 2013 på Wayback Machine , 24 oktober 2013: "Kurvorna i sig föreslogs av Jerry Solinas som arbetade på NSA."
  17. Chalkin T.A. Zhdanov O.N. Tillämpning av elliptiska kurvor i kryptografi.
  18. Zhdanov O.N., Zolotarev V.V. Metoder och medel för kryptografiskt skydd av information. 186 sid.
  19. Ishmukhametov Sh.T. Faktoriseringsmetoder för naturliga tal.99 sid.
  20. Bos et al, Elliptic Curve Cryptography in Practice // MSR-TR-2013-119, november 2013

Länkar