Puncte:1

Procesul de verificare din ECDSA este același sau diferit de cel din RSA?

drapel nl

Cu o pereche de chei RSA, din înțelesul meu, Alice care deține cheia privată poate cripta un mesaj într-o semnătură. Apoi îi trimitea lui Bob semnătura împreună cu mesajul ei original. Bob ar putea apoi să folosească cheia publică a lui Alice pentru a decripta semnătura, care ar returna apoi mesajul. Mesajul decriptat va fi apoi comparat cu mesajul original. Dacă sunt la fel, asta îi dovedește lui Bob că mesajul a fost într-adevăr de la Alice.

Pe de altă parte, cu o pereche de chei ECDSA, procesul de verificare este același cu perechile de chei RSA? Adică, comparând mesajul decriptat cu mesajul original pentru a vedea dacă sunt la fel?

Ceea ce mă încurcă este că, pe baza a ceea ce am înțeles cum este utilizat ECDSA în contractele blockchain, de exemplu, în loc să compare mesajul decriptat din cheia publică și mesajul original, ECDSA pare să compare în schimb cheia publică. . Este capabil să recupereze cheia publică din semnătură și să verifice. Bob ar compara că cheia publică recuperată din semnătură este aceeași cu cheia publică a lui Alice.

Procesul de verificare în ECDSA este același cu RSA? Sau procesul de verificare este diferit de RSA și este ca și cum este folosit în contractul inteligent pe blockchains?

Puncte:4
drapel ng

TL;DR: procesul de verificare a semnăturii în ECDSA este foarte diferit de cel din RSA. Descrierea întrebării a acestor scheme de semnătură este incorectă pentru ECDSA, aproximativă pentru RSA.


Alice care deține cheia privată este capabilă să cripteze un mesaj într-o semnătură.

Este o terminologie incorectă. Alice care deține cheia privată este capabilă semn un mesaj sau transforma un mesaj. Ea nu cripta, deoarece criptarea urmărește să facă mesajul de neinteligibil pentru adversari, dar în RSA transformarea $m\mapsto s=m^d\bmod n$ Alice a folosit cheia privată $(n,d)$ poate fi anulat folosind $s\mapsto m=s^e\bmod n$ de oricine are cheia publică $(n,e)$, adică oricine din punct de vedere criptografic standard. Astfel, transformarea făcută pentru semnătură nu se califică drept criptare.

Bob ar putea apoi să folosească cheia publică a lui Alice pentru a decripta semnătura, care ar returna apoi mesajul. Mesajul decriptat va fi apoi comparat cu mesajul original. Dacă sunt la fel, asta îi dovedește lui Bob că mesajul a fost într-adevăr de la Alice.

Din nou, aceasta este o terminologie incorectă. În loc de decripta ar trebui să existe transforma înapoi, iar intenția generală este de a verifica mesajul împotriva semnăturii și a cheii publice a lui Alice.

Lăsând deoparte terminologia, cele două ghilimele de mai sus nu se potrivesc cu modul în care este practicată semnătura RSA. Cu metoda prezentată, dimensiunea mesajului este limitată, iar procedura generală este nesigură. Exemple printre multe atacuri:

  • Mesajele $0$, $1$ și $n-1$ au semnături banale (mesajul în sine), ceea ce permite ca mesajele pe care Alice nu le-a semnat niciodată să fie acceptate de Bob atunci când au venit cu adevărat de la un adversar.
  • Este ușor să iei oricare $s$ și cheia publică și creează un mesaj (de obicei fără sens). $m$ care este semnătura $s$, în același efect.
  • Dacă un adversar creează mesaje $m_1$, $m_2$, $m_3$, $m_4$ cu $m_1\cdot m_2=m_3\cdot m_4$, cel mai târziu semnificativ și cei trei primii suficient de semnificativ pentru a o convinge pe Alice să producă semnăturile $s_1$, $s_2$, $s_3$ de $m_1$, $m_2$, $m_3$, atunci adversarul poate calcula semnătura $s_4$ de semnificative $m_4$ la fel de $s_4=s_1\cdot s_2\cdot{s_3}^{-1}\bmod n$. Asta e posibil uneori.

Din acest motiv, semnătura RSA nu se practică ca la întrebare. Este de obicei folosit RSASSA-PSS sau RSASSA-PKCS1-v1_5. Și apoi generarea semnăturii și verificarea semnăturii nu mai funcționează la fel ca criptarea/decriptarea (fie că este vorba de criptarea RSA din manuale sau criptarea RSA așa cum se practică, cum ar fi RSAES-OAEP, RSA-KEM sau criptarea hibridă).

Ceea ce este corect este că în verificarea semnăturii RSA (cu anexă), așa cum se practică, se calculează o funcție a semnăturii și a cheii publice, apoi se compară rezultatul cu mesajul (sau cu un hash al acestuia; în cazul RSASSA-PSS, un multi- hash nivelat cu sare opțională adăugată).

Pe de altă parte, cu o pereche de chei ECDSA, procesul de verificare este același cu perechile de chei RSA? Adică, comparând mesajul decriptat cu mesajul original pentru a vedea dacă sunt la fel?

Nu, în verificarea semnăturii ECDSA, este nu a calculat o anumită funcție a semnăturii și a cheii publice, apoi a comparat rezultatul cu mesajul (sau cu un hash al acestuia). Funcționează în alt mod: hash-ul mesajului este o intrare la un calcul care implică și semnătura și cheia publică, mai degrabă decât în ​​comparație cu în cele din urmă.

â¦ECDSA pare să compare cheia publicăâ¦

Nici cele normal nici alterna Metodele de verificare a semnăturii ECDSA se potrivesc cu aceasta.

(ECDSA) este capabil să recupereze cheia publică din semnăturăâ¦

Un fel de: cu ECDSA, este posibilă recuperarea unei chei publice funcționale dintr-o semnătură și mesajul asociat sau hash-ul acesteia. Asta e recuperarea cheii publice. Dar această operațiune nu face parte din modul în care se realizează în mod normal verificarea semnăturii. Și are limitări:

Potenţial, mai multe chei publice candidate pot fi recuperate dintr-o semnătură. La un cost mic, semnatarul poate genera semnătura ECDSA în așa fel încât doar una dintre cheile publice candidate să fie viabilă și astfel încât verificatorul să aibă un cost suplimentar foarte mic pentru a determina care este cheia publică corectă.

Nu pot spune cu siguranță dacă recuperarea cheii publice ECDSA, urmată de compararea cheii publice recuperate cu cheia publică adevărată, ar fi un echivalent robust al verificării normale și pentru care curbe. Aceasta este o chestiune de interes doar teoretic, deoarece avem verificarea standard a semnăturii.

Notă: pentru schemele de semnătură RSA, recuperarea cheii publice nu este o caracteristică tipică. Este posibil cu RSASSA-PKCS1-v1_5 sau alte semnături deterministe, câteva perechi mesaj/semnătură și opțiuni comune de $e$; dar nu este posibil cu alte semnături RSASSA-PSS sau alte semnături aleatorii.

Puncte:1
drapel it

Alice... criptează un mesaj într-o semnătură.

Strict vorbind, semnarea este diferită de criptare! De exemplu. pentru RSA, utilizați cheia publică pentru a cripta un mesaj, dar pentru a semna folosiți cheia privată.

În plus, verificarea ECC este total diferită de RSA, deoarece au caracteristici matematice diferite. Un exemplu este că pentru RSA trebuie să utilizați o schemă bună de umplutură pentru a evita diferite tipuri de atacuri. Dar ECDSA nu are nevoie de el.

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.