Aceasta este o întrebare totuși care navighează la limitele războaielor meta/politice în cadrul comunității criptografiei.
SafeCurves este o resursă bună, dar este foarte cu opinii despre ce înseamnă „sigur”.
Ca exemplu secp256k1
, curba folosită de Bitcoin și Ethereum pentru a le garanta securitatea este considerată „nesigură” de către echipa SafeCurves, în timp ce în prezent are peste 1000+ B$ „bug bounty” sub formă de BTC și ETH care ar putea fi piratată dacă ați putea Rupe-o...
Deci, nu, nu este pentru că SafeCurves spune că ceva nu este "sigur"asta inseamna ca este"spart„. Curbele NIST ar putea fi mai bune, sigur, dar încă funcționează și își fac treaba și (din câte știm noi) nu există atacuri efective, practice împotriva lor, care să amenințe sistemele care le folosesc în prezent, atâta timp cât sunt implementate "corespunzator"...
Care înseamnă nu sunt sparte, și nu aș spune personal că nu sunt „sigure” pentru utilizare în 2021. Dar dacă proiectez un nou sistem în care să pot alege orice mecanism de acord cheie sau algoritm de semnătură, nici nu sunt prima mea alegere.
O problemă uriașă atunci când lucrezi în dezvoltarea de software (și hardware) este „conformitatea”, iar NIST sunt cei care emit „standardele” care sunt considerate ca Sfântul Graal în lumea conformității, mă tem.
Deci, în timp ce lucrează în prezent la noi schițe (de ex. proiectul pentru FIPS 186-5 include în prezent Ed25519 ca algoritm de semnătură) care conține mai multe curbe „moderne”, încă nu și-au actualizat recomandările și standardele și, prin urmare, multe entități sunt mandatate să se bazeze pe recomandările lor vechi, cum ar fi curba P-256.
Compatibilitatea este, de asemenea, o mare problemă. De exemplu, curba NIST P-256 este susținută de Web Crypto API, care ar trebui să fie în timp constant și „securizat” (în sensul „nu cunoaștem atacuri efective, practice împotriva acesteia”). Între timp, Curve25519, mai modern, este considerat a fi mai sigur și mai puțin predispus la erori de implementare decât P-256, dar nu este încă acceptat de API-ul Web Crypto. Deci, pentru a face chestii JavaScript folosind ECC, este mai bine să utilizați P-256 decât Curve25519 pentru moment. (Sau WASM, dar acesta este un alt subiect.)
De asemenea, este important de observat că GnuPG urmează Specificațiile OpenPGP și încearcă să fie un instrument larg interoperabil, inter-compatibil. Ca atare, acceptă o mulțime de scheme diferite, printre care unele sunt mai vechi decât altele, unele sunt mai mult sau mai puțin utilizate.
Există o schiță care include suport pentru Ed25519 și X25519 în PGP, care este deschisă în prezent și la care sa lucrat activ în ultimii câțiva ani:
Aceleași probleme de compatibilitate apar și cu PGP: dacă doriți să puteți comunica cu ușurință cu ceilalți care îl folosesc, cel mai bine este să utilizați ceva pe care alții îl folosesc/sprijin.
Deci, PGP va ajunge acolo la un moment dat, dar este un proces lent și atâta timp cât aceste curbe și standarde vechi nu sunt practic (sau riscă să fie) rupte, acest proces lent probabil nu se va accelera.
Acum, dacă vă schimbați cheile PGP dacă utilizați P-256 sau o altă curbă al cărei „cost pentru rho” este peste 2^100 în acea listă: https://safecurves.cr.yp.to/rho.html ?
Aș spune „Nu”. Nu trebuie să vă faceți griji pentru moment, cel puțin pentru următorii 5 ani, eventual mai mult. Dar Calculatoare cuantice ar putea schimba această poveste în câțiva ani în plus, dacă vor fi la fel de eficienți pe cât ne așteptăm să fie în rezolvarea problemei logaritmului discret în practică.