Puncte:1

Care este diferența dintre „Funcția de curbă eliptică” și „Funcțiile Hash” precum SHA256?

drapel hk

Citesc despre bitcoin și sunt puțin confuz despre „funcția de curbă eliptică” și „SHA256”. Au aceleasi proprietati? Pot fi folosite ambele pentru a genera perechi de chei private și publice?

drapel et
SHA256 este o funcție hash - https://en.wikipedia.org/wiki/Hash_function și pentru ECC căutați aici - https://en.wikipedia.org/wiki/Elliptic-curve_cryptography
kelalaka avatar
drapel in
Editarea dvs. este o întrebare cu totul nouă, ar trebui să fie anulată.Schimbarea cursului întrebării odată cu răspunsul nu este un comportament acceptat în [așa]. Care este intrarea lui SHA-256? Există o [problema de spațiu de intrare scurt](https://crypto.stackexchange.com/a/81652/18298) în funcțiile hash. De asemenea, nu există [fără multiplicare pe ECC](https://crypto.stackexchange.com/q/88214/18298), doar înmulțire scalară.
kelalaka avatar
drapel in
De asemenea, dacă am înțeles corect, nu puteți mapa intrările în mod arbitrar pentru a puncta pe curbă. ECC se bazează pe [problema logaritmului discret](https://crypto.stackexchange.com/q/76230/18298), așa că mai întâi selectăm un întreg uniform aleatoriu, apoi îl mapăm la un punct al curbei prin înmulțirea scalară.
Puncte:10
drapel in

Care este diferența dintre „Funcția de curbă eliptică” și „Funcțiile Hash” precum SHA256?

Nu există un context real dat, totuși îl putem înțelege ca

  • Funcția SHA-256:

    Da este o funcție, într-un mod destul de precis: a funcția hash criptografică (hash rezistent la coliziune);

    $$\operatorname{SHA256}:\{0,1\}^* \to \{0,1\}^{256}$$

    • Într-un fel: ar trebui să fie practic imposibil să inversați rezumatul hash dat (sau, adversarii mărginiți polinomial nu îl pot inversa).
    • Determinat: aceeași intrare trebuie să ofere aceeași ieșire.
    • Aleatoriu: nu ar trebui să cunoaștem hash-ul de intrare înainte de al hash. Putem citi acest lucru deoarece funcțiile hash sunt candidate pentru Random Oracles (RO) și SHA256 nu este, deoarece are un atac de extensie de lungime, SHA3 și Blake2 sunt mai aproape de RO.
    • are Rezistență înainte de imagine: aproape de un singur sens; dată o valoare hash $h$ trebuie să fie imposibil ca adversarii în timp polinomial să găsească intrare $m$ astfel încât $\operatorname{SHA256}(m) = h$.
    • A doua rezistență pre-imagine: dat un mesaj $m$ și este valoarea hash $h$, găsiți alt mesaj $m'$ astfel încât $\operatorname{SHA256}(m) = h = \operatorname{SHA256}(m')$.
    • și Rezistenta la coliziune; găsiți mesajele de intrare distincte $m_1 \neq m_2$ astfel încât $\operatorname{SHA256}(m_1) = \operatorname{SHA256}(m_2)$.

    Bitcoin folosește SHA256 dublu (SHA256d) și SHA256d este sigur împotriva atacurilor de extensie de lungime.

  • Funcția de curbă eliptică:

    Aceasta este denumirea ciudată, este funcția L a curbelor eliptice sau ce? Întrucât întrebarea se referă la Bitcoin, ar trebui să fie mai degrabă setul de funcții pe care curbele eliptice le oferă mai mult decât funcțiile de mai jos:

    • Plus ca operație de grup (adăugare, negație, inversă, navetă și asociere).

    • Înmulțirea scalară: dat un punct de bază $G$ si adauga-l $t$ ori:

      $$[t]G : = \underbrace{G + G + \cdots + G}_{t-time} $$

    • Generarea cheii publice: Selectați aleatoriu $k$ si calculeaza $[k]G$.

    • ECDSA generarea semnăturii.

    • ECDSA validarea semnăturii.

Acum răspunsurile la cealaltă întrebare sunt clare.

Au aceleasi proprietati?

Nu, ei nu! Chiar și una este o funcție, cealaltă este un set de funcții.

Pot fi folosite ambele pentru a genera perechi de chei private și publice?

Nu.

Cu toate acestea, se poate folosi SHA256 pentru a digera o sursă de entropie pentru a selecta aleator $k$ pentru cheia lor privată și găsiți cheia publică $K = [k]G$ prin utilizarea înmulțirii scalare a curbelor eliptice.

Și Adresa Bitcoin este calculată ca;

$$\text{Adresa Bitcoin} = \operatorname{RIPEMD160(SHA256(}K))$$ ca adrese de 20 de octeți (RIPEMD).


Notă specială: Unele cărți/site-uri web blockchain folosesc multiplicarea EC pentru multiplicarea scalară EC, cum ar fi cartea lui Antonolopus Mastering Bitcoin, pagina 68. Acest lucru îi încurcă pe mulți, deoarece încep să creadă că $P\cdot Q$ există. Nu! EC formează grupuri abeliene aditive, iar cu înmulțirea scalară (modul obișnuit de a defini pentru grupurile aditive) formează un Modulul Z, nimic mai mult.

Cort Ammon avatar
drapel gb
+1. Aș fi spus că sunt ca și cum ar compara merele și urangutanii, dar ai depus efort suplimentar pentru a descrie proprietățile merelor și proprietățile urangutanilor într-un mod care ar trebui să ajute OP să cerceteze subiectul și, eventual, să formezi o întrebare mai exigentă în viitorul. Excelent formular de schimb de stive!
kelalaka avatar
drapel in
@CortAmmon OP nu a specificat sursa, cu toate acestea, am văzut că multe site-uri și cărți provoacă confuzie. Vedeți nota specială nou adăugată cu un exemplu.
Maarten Bodewes avatar
drapel in
Vom exclude semnăturile bazate pe hash pentru moment, cred. Dacă îi numărați pe aceștia, puteți face și autentificarea mesajelor, derivarea cheilor și generarea de numere aleatorii „cu o funcție hash”.
kelalaka avatar
drapel in
@MaartenBodewes Sigur că există. Vreau să păstrez răspunsul în contextul bitcoin. Și funcțiile hash sunt omniprezente, deoarece am enumerat câteva [aici] (https://crypto.stackexchange.com/q/64588/18298). Știți că este folosit în bitcoin?
kelalaka avatar
drapel in
@MaartenBodewes blockchains acum este un subiect larg pe care s-ar putea să-mi lipsească unul care folosește...
kelalaka avatar
drapel in
@MaartenBodewes există un motiv anume pentru a fi eliminat din HNQ? Văzut acum în timp ce căutam editările OP.
Puncte:1
drapel cn

Ambele sunt funcții. înseamnă că sunt relații între două mulțimi (mulțimea de intrare și setul de ieșire) astfel încât fiecare element $x$ al setului de intrare este în relație cu cel mult un element al setului de ieșire. Acest element se numește imaginea a $x$.

Dar nu au același statut în criptografie. Funcția în „funcția de curbă eliptică” este o modalitate de a descrie o curbă eliptică. Dacă funcția este $f$, punctele curbei sunt $(x, f(x))$.

SHA-256, este un algoritm (un algoritm este mai precis decât o funcție, deoarece indică modul în care se calculează imaginile) care este folosit pentru a genera hashuri.

Pentru a genera cheia privată, alegem uniform la întâmplare un număr întreg $n$ de $256$ biți.

Pentru a genera cheia publică înmulțim un generator $G$ (dată ca parametru public al curbei) de $n$ (prin utilizarea procedurii pătratului și înmulțirii). Ne oferă un punct al curbei $P$. Uneori asta $P$ este considerat ca un hash al cheii private. Dar este mult mai mult decât un simplu hash, este o cheie publică. Verifică mult mai multe proprietăți decât funcțiile hash obișnuite, cum ar fi SHA-256.

Dacă doriți mai multe detalii, puteți căuta: https://en.wikipedia.org/wiki/Elliptic_curve_digital_signature_algorithm

drapel hk
Dacă SHA256 este ireversibil sau rezistent la preimagine. De ce bitcoin pur și simplu nu folosește SHA256 pentru a genera o cheie publică dintr-o cheie privată generată aleatoriu în loc de multiplicarea curbei eliptice. Știu că intrarea lui SHA256 poate fi orice și ieșirea poate fi de la 0 la 2^256. Poate cineva să-mi explice înmulțirea curbei eliptice sau funcția, indiferent ce este, în sensul de intrare și de ieșire, la fel ca SHA256. Pentru că nu pot să înțeleg din Wikipedia. L-am incercat de cateva ori.
Ievgeni avatar
drapel cn
Rezistența înainte de imagine nu este suficientă. Trebuie să semnezi, este mult mai dificil de realizat, o simplă funcție hash nu este suficientă. Curba eliptică nu este matematică de bază, puteți încerca să citiți asta: cryptobook.nakov.com/asymmetric-key-ciphers/

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.