ECIES (eng. Elliptic Curve Integrated Encryption Scheme ) er et offentligt nøglekrypteringsskema baseret på elliptiske kurver. Denne ordning blev foreslået af Victor Shoup i 2001. ECIES bruges i forskellige standarder såsom ANSI X9.63, IEEE 1363a, ISO 18033-2 og SECG SEC 1.
I 1997 opfandt forskerne Mihir Bellare og Phillip Rogaway DLAES-ordningen ( Discrete Logarithm Augmented Encryption Scheme ), som efterfølgende blev omdøbt til DHAES ( Diffie-Hellman Augmented Encryption Scheme ) i 1998 og senere for at undgå forveksling med forkortelsen AES , omdøbt til DHIES ( Diffie-Hellman Integrated Encryption Scheme ). DHIES er et avanceret ElGamal- skema , der bruger elliptiske kurver, forskellige simuleringsindsættelsesalgoritmer og hash-funktioner. [en]
DHIES blev evalueret af ANSI, og med nogle ændringer blev ordningen inkluderet i ANSI X9.63-standarden i 2001. Også uafhængigt, med nogle ændringer, blev ordningen inkluderet i IEEE 1363-standarden i 2000. I 2004, da ANSI X9.63-standarden blev offentlig, reviderede IEEE ordningen for at tage hensyn til fordelene ved de to tidligere ANSI X9.63- og IEEE 1363-standarder og inkluderede den nye ordning i IEEE 1363a-standarden i 2004.
Alle ovenstående skemaer kaldes samlet ECIES (Elliptic Curve Integrated Encryption Scheme ).
I 2009 blev en af ECIES-versionerne inkluderet i ISO/IEC 18033-2-standarden og i 2009 i SECG SEC 1-standarden. [1]
ECIES (Elliptic Curve Integrated Encryption Scheme) inkluderer flere funktioner:
Første side - Alice : [2]
Anden side - Bob: [2]
Antag at Alice vil sende en besked til Bob. Alice har Bobs offentlige nøgle , Bob har den tilsvarende private nøgle , og Alice genererer et midlertidigt par af sine offentlige og private nøgler. De private nøgler er elementerne i det endelige felt (feltet, hvorpå den elliptiske kurve er angivet), og de offentlige nøgler er de punkter, der hører til den elliptiske kurve og beregnes som produktet af den private nøgle og generatoren g af den elliptiske kurve. [3]
For at sende en besked gør Alice følgende: [3]
Med hensyn til dekrypteringsprocessen er de trin, som Bob skal følge, som følger: [4]
Sikkerheden af ECIES er afhængig af beregningskompleksiteten af Elliptic Curve Group Discrete Logaritm Problem ( ECDLP ). Kryptografiske algoritmer kan også stole på den beregningsmæssige kompleksitet af faktoriseringsproblemer (algoritmeeksempel: RSA ) og diskret logaritme ( ElGamal-skema ). ECDLP anses dog for at være den sværeste [5] af disse tre opgaver, hvilket fører til en vigtig fordel ved ECIES: nøglestørrelse.
Sikkerhedsniveau (bit) | RSA nøglelængde (bits) | ECIES nøglelængde (bits) |
---|---|---|
80 | 1024 | 160-223 |
112 | 2048 | 224-255 |
128 | 3072 | 256-283 |
192 | 7680 | 384-511 |
256 | 15360 | 512-571 |
Fordelen i nøglestørrelsen giver dig mulighed for at stille mindre krav til hardwaren (for eksempel til størrelsen af bufferen, RAM og fysisk hukommelse; til kanalbåndbredden ved overførsel af nøgler over netværket).
En vigtig ulempe ved ECIES sammenlignet med andre kryptografiske algoritmer er eksistensen af flere versioner af ECIES beskrevet af forskellige standarder ( ANSI X9.63, IEEE 1363a, ISO/IEC 18033-2 og SECG SEC 1). Forskellene mellem disse standarder er valget af specifikke funktioner og parametre til implementering af ECIES-komponenterne (KA, KDF, ENC, MAC, HASH). Ulempen er, at det ikke er muligt at implementere en version af ECIES, der opfylder alle standarder [6] .
Victor Shope beviste [7] , at hvis den offentlige nøgle U ikke er inkluderet i KDF-inputtet, og hvis kun x-koordinaten for den delte hemmelighed bruges i KDF, så er ECIES modtagelig for Adaptive Chosen Ciphertext-angreb (CCA2) )). Sårbarheden kaldes "blød", fordi intet angreb var i stand til at opnå meningsfuld information ved hjælp af denne sårbarhed.
En mulig løsning foreslået af Shoup er at tilføje den offentlige nøgle U til input fra KDF.
Shoup beviste også [8] , at ECIES-skemaet kan være sårbart, når XOR-funktionen bruges til kryptering af meddelelser med variabel længde. Dette kan især føre til en sårbarhed over for Adaptive Chosen Ciphertext Attacks (CCA2)-angreb . Mulige løsninger:
Denne type angreb er mulig, når en modstander specifikt giver en forkert offentlig nøgle. Hvis afsenderen ikke autentificerer den anden parts offentlige nøgle, så vil modstanderen kunne erstatte den offentlige nøgle med en mindre nøgle for at få en delt hemmelighed eller få information om afsenderens private nøgle. Mulige løsninger:
Et eksempel [12] på en effektiv og sikker implementering af ECIES i overensstemmelse med IEEE 1363a og ISO/IEC 18033-2: