Elliptisk kurvkryptografi (ECC) använder de matematiska egenskaperna hos elliptiska kurvor för att producera kryptografiska system för offentliga nycklar. Liksom all kryptografi med public key är ECC baserad på matematiska funktioner som är enkla att beräkna i en riktning, men mycket svåra att vända. I fallet med ECC ligger denna svårighet i omöjligheten att beräkna den diskreta logaritmen för ett slumpmässigt elliptiskt kurvelement med avseende på en allmänt känd baspunkt eller "elliptisk kurva diskret logaritmproblem" (ECDLP)1. De Elliptisk kurva Digital signaturalgoritm (ECDSA) är en allmänt använd signeringsalgoritm för kryptering med offentlig nyckel som använder ECC.
prestanda
För de flesta användare är det viktigt att komma ihåg att, jämfört med den mer mogna och allmänt använda RSA-algoritmen, erbjuder ECDSA motsvarande kryptografisk styrka med mycket lägre nyckelstorlekar. Även om symmetrisk kryptering är det mest effektiva schemat som används idag, är någon form av asymmetrisk kryptering nödvändig för en säker SSL /TLS handskakning. ECC-algoritmer erbjuder den närmaste asymmetriska ekvivalenten till symmetrisk kryptering när det gäller prestanda. Som visas i tabellen nedan ökar ECDSA-tangentstorlekar linjärt med symmetriska krypteringsnycklar med motsvarande styrka (som 2 × den symmetriska nyckelstorleken), medan RSA-tangenter snabbt blir mycket större:
Ekvivalent nyckelstorlek (bitar) | ||
---|---|---|
Symmetrisk | ECDSA | RSA |
80 | 160 | 1024 |
112 | 224 | 2048 |
128 | 256 | 3072 |
192 | 384 | 7680 |
256 | 512 | 15360 |
ECDSAs mindre nyckelstorlekar innebär att starkare kryptering kan uppnås med mindre datorkraft och nätverksbandbredd än RSA; detta är särskilt fördelaktigt för mobila enheter och Internet of Things (IoT) -enheter som blir allt mer allmänt förekommande.
ECDSA har godkänts av US National Institute of Standards and Technology (NIST) och är för närvarande godkänt av US National Security Agency (NSA) för skydd av topphemlig information med en nyckelstorlek på 384 bitar (motsvarande en 7680- bit RSA-nyckel).