â¦Cheile publice sunt derivate din cheile private folosind ECDSA ⦠folosind secp256k1.
Nu chiar. Transformarea cheii private în cheie publică nu este folosind ECDSA. Este conform parametrilor secp256k1, folosind o operație numită înmulțire de puncte și pentru a face perechea de chei publică/privată utilizabilă mai tarziu pentru ECDSA.
Aceasta este o funcție unidirecțională... până când țineți cont de calculul cuantic. Cu calculul cuantic, s-ar putea să puteți obține forța brută și să descoperi cheile private din cheile publice.
Corect. Este ușor să treci de la cheie privată la cheie publică, nu invers, dacă nu emitem ipoteze Calculatoare cuantice relevante din punct de vedere criptografic (nu-ți ține respirația).
De ce a fost ales ECDSA în locul algoritmilor de hashing?
Astfel încât să putem semna digital mesajele cu cheia privată și să verificăm perechile mesaj/semnătură cu cheia publică; deci într-un mod astfel încât cheia privată este necesară pentru a produce perechi mesaj/semnătură care trec verificarea, pentru diferite mesaje. Nu am putea face acest lucru dacă cheia publică a fost obținută prin hashing cheia privată¹. Cu alte cuvinte: faptul că funcția de la cheia privată la cheia publică este unidirecțională nu este o condiție suficientă pentru a fi făcută semnatura digitala posibil.
¹ Există algoritmi de semnătură bazați pe hashing, dar cheia publică nu este obținută printr-un hash al cheii private cu un hash standard. Cheia publică cuprinde mai multe hashuri, ceea ce o face mult mai mare decât cei 33 de octeți ai unei chei publice ECDSA secp256k1. De asemenea, numărul de mesaje care pot fi semnate în siguranță este limitat.