Puncte:1

Este posibil să semnați criptografic un mesaj cu o cheie privată, păstrând public conținutul pre-imagine?

drapel sa
A W

În esență, caut o modalitate ca utilizatorul A să creeze un mesaj semnat pe care utilizatorul B îl poate 1) verifica că utilizatorul A a scris (adică folosind ecrecover) și 2) conținutul mesajului poate fi citit de utilizatorul B fără a fi nevoie de utilizatorul Aâ cheia privată.

Știu că este posibil ca utilizatorul A să folosească criptarea asimetrică pentru a semna un mesaj care poate fi verificat ca fiind autentic, dar vreau ca utilizatorul B să poată citi conținutul acelui mesaj și să se poată baza pe el fără a fi nevoie să întreb. utilizatorul A pentru o versiune separată necodificată a mesajului, deoarece utilizatorul A ar putea să se afle în versiunea necodificată.

knaccc avatar
drapel es
Scopul unei semnături este că semnatarul nu poate minți despre ce mesaj este semnat.
fgrieu avatar
drapel ng
Nu văd nimic în ceea ce se cere să nu facă o semnătură standard. În special, „conținutul mesajului poate fi citit de utilizatorul B fără a avea nevoie de cheia privată a utilizatorului A” este o caracteristică standard a oricărei scheme de semnătură. Receptorul nu are nevoie de cheia privată a semnatarului; au nevoie de cheia _publică_. Iar „utilizați criptarea asimetrică pentru a semna un mesaj” are o eroare de terminologie: criptarea criptează, nu semnează. Poate vrei să spui „folosește _criptografia_ asimetrică pentru a semna un mesaj”.
Puncte:3
drapel in

Securitatea schemelor de semnătură nu necesită criptarea mesajului. Algoritmul hash și parametrii algoritmului de semnătură sunt cunoscuți public și sunt singurii secreti cheia semnatarului trebuie ținută secretă tot timpul. Hashingul înainte de semnare face parte din schema de semnătură de la prima schemă de semnătură adevărată; Semnătura Rabin sistem.

În securitatea schemelor de semnătură avem un adversar, falsificatorul, al cărui scop este falsificarea unei semnături a unui mesaj care nu a fost niciodată semnat înainte. Pentru un joc simplu, puteți considera că falsificatorul a obținut $n$ perechi de $(\sigma_i,m_i)$ acestea sunt mesajul și perechea de semnături. Acum, dacă falsificatorul poate scoate un mesaj nou $m \neq m_i$ pentru $i \în \{1,n\}$ cu o semnătură valabilă $(\sigma,m)$ numim asta un fals pentru semnătura digitală cu Fals existential.

Este posibil să semnați criptografic un mesaj cu o cheie privată, păstrând public conținutul pre-imagine?

Da. Atâta timp cât mesajul nu trebuie să fie confidențial, nu există nicio problemă cu schemele securizate de semnătură precum RSASSA-PSS, DSA, ECDSA, EdDSA, Schnoor etc. Mesajul poate fi semnat necriptat. Acest lucru este comun în mediile digitale. Puteți vedea conținutul și semnătura unui PDF, imagine, documente guvernamentale etc. și puteți verifica semnătura dacă aveți adevărata cheie publică a semnatarului.

Rețineți că, dacă algoritmul hash nu este rezistent la a doua pre-imagine, atunci falsificarea este iminentă. Utilizați funcția criptografică rezistentă la coliziune pentru a obține cel puțin Falsificare universală (UF) sub Chosen-Message Attack (CMA) UF-CMA, cum ar fi SHA2, SHAKE din SHA3 și BLAKE2.

Dacă se bazează doar pe a doua rezistență pre-imagine a SHA-1, atunci există atacuri la coliziunea $\operatorname{SHA-1}$ ca;

  • Alice creează două mesaje care au aceeași valoare SHA-1, $m_1$ este ceea ce Bob vrea să semneze și $m_2$ este ceea ce Alice are avantajul pentru ei.
  • Alice trimite $m_1$ lui Bob și Bob citește și semnează. $$(\sigma,m_1) = Semn(\operatorname{SHA-1}(m_1))$$
  • Alice trimite $(\sigma,m_2)$ lui Charlie.
  • Charlie verifică semnul de atunci $\operatorname{SHA-1}(m_1) = \operatorname{SHA-1}(m_2)$
  • Alice beneficiază.

Nu setați securitatea schemelor stricate, chiar dacă acestea atenuează riscurile actuale.

mafu avatar
drapel kr
Nu înțeleg această propoziție: *Sperăm că niciunul dintre algoritmii hash criptografic... nu sunt siguri pe a doua rezistență înainte de imagine.*
kelalaka avatar
drapel in
@mafu Trebuie să rescriu acea parte. Dacă se folosește funcția hash ruptă de rezistență la coliziune, există un atac. Prin urmare, utilizați întotdeauna funcții hash rezistente la coliziuni.

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.