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] .
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".
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 ( ).
Ö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 .
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 elliptiska kurvsats säger att antalet punkter på en elliptisk kurva är nära storleken på det finita fältet:
vad ger:
Ö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.
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.
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
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 .
Betrakta fallet , , som motsvarar kurvan
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 .
Specifika implementeringar av elliptiska kurvor krypteringsalgoritmer beskrivs nedan. Här överväger vi de allmänna principerna för elliptisk kryptografi.
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.
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:
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.
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] .
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 .
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] .
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ä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 |
ECDSA - algoritmen (Elliptic Curve Digital Signature Algorithm) har antagits som ANSI X9F1- och IEEE P1363-standarder .
Signaturen för meddelandet M är ett par siffror (r, s).
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] .
Public key kryptosystem | |||||||||
---|---|---|---|---|---|---|---|---|---|
Algoritmer |
| ||||||||
Teori |
| ||||||||
Standarder |
| ||||||||
Ämnen |
|