ECIES (ing. Elliptic Curve Integrated Encryption Scheme ) este o schemă de criptare cu cheie publică bazată pe curbe eliptice. Această schemă a fost propusă de Victor Shoup în 2001. ECIES este utilizat în diferite standarde, cum ar fi ANSI X9.63, IEEE 1363a, ISO 18033-2 și SECG SEC 1.
În 1997, oamenii de știință Mihir Bellare și Phillip Rogaway au inventat schema DLAES ( Discrete Logarithm Augmented Encryption Scheme ), care a fost redenumită ulterior DHAES ( Diffie-Hellman Augmented Encryption Scheme ) în 1998, iar mai târziu, pentru a evita confuzie cu abrevierea AES , redenumită DHIES ( Schema de criptare integrată Diffie-Hellman ). DHIES este o schemă avansată ElGamal care utilizează curbe eliptice, diverși algoritmi de inserție de simulare și funcții hash. [unu]
DHIES a fost evaluat de ANSI și, cu unele modificări, schema a fost inclusă în standardul ANSI X9.63 în 2001. De asemenea, independent, cu unele modificări, schema a fost inclusă în standardul IEEE 1363 în 2000. În 2004, când standardul ANSI X9.63 a devenit public, IEEE a revizuit schema pentru a ține cont de avantajele celor două standarde anterioare ANSI X9.63 și IEEE 1363 și a inclus noua schemă în standardul IEEE 1363a în 2004.
Toate schemele de mai sus sunt denumite colectiv ECIES (Elliptic Curve Integrated Encryption Scheme ).
În 2009, una dintre versiunile ECIES a fost inclusă în standardul ISO / IEC 18033-2, iar în 2009 în standardul SECG SEC 1. [1]
ECIES (Elliptic Curve Integrated Encryption Scheme) include mai multe caracteristici:
Prima parte - Alice : [2]
A doua parte - Bob: [2]
Să presupunem că Alice vrea să-i trimită un mesaj lui Bob. Alice are cheia publică a lui Bob , Bob are cheia privată corespunzătoare și Alice generează o pereche temporară de chei publice și private . Cheile private sunt elementele câmpului final (câmpul pe care este dată curba eliptică), iar cheile publice sunt punctele care aparțin curbei eliptice și sunt calculate ca produsul cheii private și generatorul g de curba eliptică. [3]
Pentru a trimite un mesaj, Alice face următoarele: [3]
În ceea ce privește procesul de decriptare, pașii pe care Bob trebuie să-i urmeze sunt următorii: [4]
Securitatea ECIES se bazează pe complexitatea computațională a problemei de logaritm discret al grupului de curbe eliptice ( ECDLP ). Algoritmii criptografici se pot baza, de asemenea, pe complexitatea computațională a problemelor de factorizare (exemplu de algoritm: RSA ) și pe logaritmul discret ( schema ElGamal ). Cu toate acestea, ECDLP este considerată cea mai grea [5] dintre aceste trei sarcini, ceea ce duce la un avantaj important al ECIES: dimensiunea cheii.
Nivel de securitate (bit) | Lungimea cheii RSA (biți) | Lungimea cheii ECIES (biți) |
---|---|---|
80 | 1024 | 160-223 |
112 | 2048 | 224-255 |
128 | 3072 | 256-283 |
192 | 7680 | 384-511 |
256 | 15360 | 512-571 |
Avantajul dimensiunii cheii vă permite să faceți cerințe mai mici asupra hardware-ului (de exemplu, cu privire la dimensiunea bufferului, a memoriei RAM și a memoriei fizice; asupra lățimii de bandă a canalului în cazul transferului cheilor prin rețea).
Un dezavantaj important al ECIES în comparație cu alți algoritmi criptografici este existența mai multor versiuni de ECIES descrise de diferite standarde ( ANSI X9.63, IEEE 1363a, ISO/IEC 18033-2 și SECG SEC 1). Diferențele dintre aceste standarde sunt alegerea funcțiilor și parametrilor specifici pentru implementarea componentelor ECIES (KA, KDF, ENC, MAC, HASH). Dezavantajul este că nu este posibilă implementarea unei versiuni de ECIES care să satisfacă toate standardele [6] .
Victor Shope a dovedit [7] că, dacă cheia publică U nu este inclusă în intrarea KDF și dacă numai coordonatele x a secretului partajat este utilizată în KDF, atunci ECIES este susceptibil la atacurile Adaptive Chosen Ciphertext (CCA2). )). Vulnerabilitatea se numește „soft” deoarece niciun atac nu a putut obține informații semnificative folosind această vulnerabilitate.
O posibilă soluție sugerată de Shoup este adăugarea cheii publice U la intrarea KDF.
De asemenea, Shoup a demonstrat [8] că schema ECIES poate fi vulnerabilă atunci când funcția XOR este utilizată la criptarea mesajelor cu lungime variabilă. În special, acest lucru poate duce la o vulnerabilitate la atacurile Adaptive Chosen Ciphertext Attacks (CCA2) . Solutii posibile:
Acest tip de atac este posibil atunci când un adversar furnizează în mod specific o cheie publică incorectă. Dacă expeditorul nu autentifică cheia publică a celeilalte părți, atunci adversarul va putea înlocui cheia publică cu o cheie mai mică pentru a obține un secret partajat sau a obține informații despre cheia privată a expeditorului. Solutii posibile:
Un exemplu [12] de implementare eficientă și sigură a ECIES conform cu IEEE 1363a și ISO/IEC 18033-2: