O semnătură digitală este un mecanism criptografic utilizat pentru a verifica autenticitatea și integritatea datelor digitale. Ne putem gândi la ea ca la o versiune digitală a semnăturilor scrise de mână convenționale, dar cu un nivel mai ridicat de complexitate și securitate.

Mai simplu spus, putem descrie o semnătură digitală ca un cod atașat unui mesaj sau document. Odată generat, codul acționează ca dovadă că mesajul nu a fost manipulat pe drumul de la expeditor la destinatar.

Deși conceptul de securizare a comunicațiilor folosind criptografie datează din cele mai vechi timpuri, schemele de semnătură digitală au devenit o posibilă realitate în anii 1970 odată cu dezvoltarea criptografiei cu cheie publică (PKC). Așadar, pentru a afla cum funcționează semnăturile digitale, trebuie mai întâi să înțelegem elementele de bază ale funcțiilor hash și criptografia cu chei publice.


Funcții hash

Hashingul este unul dintre elementele principale ale unui sistem de semnătură digitală. Procesul de hashing este convertirea datelor de orice dimensiune în date de ieșire de dimensiune fixă. Acest lucru se face folosind un tip special de algoritmi cunoscuți sub numele de funcții hash. Ieșirea generată de funcția hash este cunoscută ca valoarea hash sau rezumatul mesajului.

În combinație cu criptografie, așa-numitele funcții hash criptografice pot fi utilizate pentru a genera o valoare hash (digest) care acționează ca o amprentă digitală unică. Aceasta înseamnă că orice modificare a intrării (mesajului) va avea ca rezultat o ieșire diferită (valoare hash). Din acest motiv, funcțiile hash criptografice sunt utilizate pe scară largă pentru a verifica datele digitale.


Criptografie cu chei publice (PKC)

Criptografia cu cheie publică sau PKC se referă la un sistem criptografic care utilizează o pereche de chei: o cheie publică și o cheie privată. Cele două chei sunt legate matematic și pot fi folosite atât pentru criptarea datelor, cât și pentru semnăturile digitale.

Ca instrument de criptare, PKC este mai sigur decât metodele de criptare simetrice mai simple. În timp ce sistemele mai vechi se bazează pe aceeași cheie pentru a cripta și decripta informațiile, PKC permite ca datele să fie criptate cu o cheie publică și datele să fie decriptate cu cheia privată corespunzătoare.

În plus, schema PKC poate fi folosită și la crearea semnăturilor digitale. În esență, procesul constă în hashing mesajul (sau datele digitale) împreună cu cheia privată a semnatarului. Destinatarul mesajului poate verifica apoi dacă semnătura este validă utilizând cheia publică furnizată de semnatar.

În unele situații, semnăturile digitale pot conține criptare, dar nu este întotdeauna cazul. De exemplu, blockchain-ul Bitcoin folosește PKC și semnături digitale, dar, spre deosebire de ceea ce cred mulți, nu este implicată nicio criptare. Din punct de vedere tehnic, Bitcoin folosește așa-numitul algoritm de semnătură digitală cu curbă eliptică (ECDSA) pentru a autentifica tranzacțiile.


Cum funcționează semnăturile digitale

În contextul criptomonedelor, un sistem de semnătură digitală constă adesea din trei pași principali: hashing, semnare și verificare.

Hashing de date

Primul pas este să trimiți mesajul sau datele digitale. Acest lucru se realizează prin trimiterea datelor folosind un algoritm de hashing pentru a crea o valoare hash (adică un rezumat al mesajului). După cum am menționat, mesajele pot varia foarte mult în dimensiune, dar atunci când sunt hash, toate valorile lor hash au aceeași lungime. Aceasta este proprietatea principală a funcției hash.

Cu toate acestea, hashingul datelor nu este necesar pentru a crea o semnătură digitală, deoarece se poate folosi o cheie privată pentru a semna un mesaj care nu a fost deloc codificat. Dar pentru criptomonede, datele sunt întotdeauna hashing, deoarece lucrul cu rezumate cu lungime fixă ​​simplifică întregul proces.

Semnătura

După hashing informațiile, expeditorul mesajului trebuie să îl semneze. Aici intervine criptografia cu cheie publică. Există mai multe tipuri de algoritmi de semnătură digitală, fiecare având propriul său mecanism. Dar, în esență, mesajul hashing va fi semnat cu o cheie privată, iar destinatarul mesajului își poate verifica autenticitatea folosind cheia privată corespunzătoare (furnizată de semnatar).

Cu alte cuvinte, dacă cheia privată nu este activată în momentul creării semnăturii, destinatarul mesajului nu va putea folosi cheia publică corespunzătoare pentru a-i verifica autenticitatea. Atât cheile publice, cât și cele private sunt generate de expeditorul mesajului, dar cheia publică este transmisă destinatarului.

Este de remarcat faptul că semnăturile digitale sunt direct legate de conținutul fiecărui mesaj. Prin urmare, spre deosebire de semnăturile de mână, care sunt în general aceleași, indiferent de mesaj, fiecare mesaj semnat digital va avea o semnătură digitală diferită.

Audit

Să luăm un exemplu pentru a ilustra întregul proces până la ultimul pas de verificare. Imaginați-vă că Alice îi scrie un mesaj lui Bob, îl combină hash și apoi combină valoarea hash cu cheia ei privată pentru a crea o semnătură digitală. Semnătura va acționa ca o amprentă digitală unică a acestui mesaj.

Când Bob primește mesajul, poate verifica validitatea semnăturii digitale folosind cheia publică furnizată de Alice. Așa că Bob poate fi sigur că semnătura a fost creată de Alice, pentru că doar ea are o cheie privată care se potrivește cu acea cheie publică (cel puțin la asta ne așteptăm).

Prin urmare, este foarte important ca Alice să-și păstreze cheia privată secretă. Dacă o altă persoană obține cheia privată a lui Alice, poate crea o semnătură digitală și poate uzurpa identitatea lui Alice. În contextul Bitcoin, aceasta înseamnă că cineva poate folosi cheia privată a lui Alice pentru a-și muta sau cheltui Bitcoin-urile fără permisiunea ei.


De ce sunt importante semnăturile digitale?

Semnăturile digitale sunt adesea folosite pentru a obține trei rezultate: integritatea datelor, autentificarea și failoverul.

  • Integritatea datelor. Bob poate verifica că mesajul lui Alice nu s-a schimbat pe parcurs. Orice modificare a mesajului va duce la crearea unei semnături complet diferite.

  • Autenticitate. Cu condiția ca cheia privată a lui Alice să fie păstrată secretă, Bob poate folosi cheia ei publică pentru a verifica dacă semnăturile digitale au fost create de Alice și de nimeni altcineva.

  • Fiabilitate. Odată ce semnătura este generată, Alice nu poate nega că a semnat-o în viitor, cu excepția cazului în care cheia ei privată este compromisă.


Opțiuni de utilizare

Semnăturile digitale pot fi aplicate diferitelor tipuri de documente și certificate digitale. Ca atare, au mai multe utilizări. Unele dintre cele mai comune utilizări sunt:  

  • Tehnologii informaționale: îmbunătățirea securității sistemelor de comunicații prin Internet.

  • Finanțe: Semnăturile digitale pot fi aplicate la audituri, rapoarte de cheltuieli, contracte de credit și multe altele.

  • Reglementare legală: Semnarea digitală a tuturor tipurilor de contracte de afaceri și acorduri legale, inclusiv documente guvernamentale.

  • Asistență medicală: Semnăturile digitale pot preveni contrafacerea rețetelor și a dosarelor medicale.

  • Blockchain: schemele de semnătură digitală asigură că numai proprietarii legitimi ai unei criptomonede pot semna o tranzacție pentru a muta fonduri (cu condiția ca cheile lor private să nu fie compromise).


Prescripţie

Principalele provocări cu care se confruntă schemele de semnătură digitală se bazează pe cel puțin trei cerințe: 

  • Algoritm: calitatea algoritmilor utilizați într-o schemă de semnătură digitală este importantă. Aceasta este, în special, alegerea funcțiilor hash și a sistemelor criptografice fiabile.

  • Implementare: dacă algoritmii sunt buni și implementarea lipsește, este probabil ca sistemul de semnătură digitală să fie defect.

  • Cheie privată: Dacă cheile private sunt pierdute sau compromise într-un fel, proprietățile de autenticitate și de non-eșec vor fi anulate. Pentru utilizatorii de criptomonede, pierderea unei chei private poate cauza pierderi financiare semnificative.


Semnături electronice vs. semnături digitale

Semnăturile digitale se referă la un tip specific de semnături electronice care aparțin oricărei metode electronice de semnare a documentelor și a mesajelor. Prin urmare, toate semnăturile digitale sunt semnături electronice, dar nu invers.

Principala diferență dintre ele este metoda de autentificare. Semnăturile digitale folosesc sisteme criptografice, cum ar fi funcțiile hash, criptarea cu cheie publică și tehnicile de criptare.


Rezultate

Funcțiile hash și criptografia cu cheie publică sunt în centrul sistemelor de semnătură digitală, care au în prezent multe utilizări. Când sunt aplicate corect, semnăturile digitale pot îmbunătăți securitatea, pot asigura integritatea și pot facilita autentificarea tuturor tipurilor de date digitale.

În domeniul blockchain, semnăturile digitale sunt folosite pentru a semna și a autoriza cripto-tranzacțiile. Ele sunt deosebit de importante pentru Bitcoin, deoarece semnăturile asigură că monedele pot fi cheltuite numai de persoanele care au cheile private corespunzătoare.

Deși de mulți ani folosim atât semnături electronice, cât și digitale, încă mai avem loc să creștem. O mare parte din birocrația de astăzi este încă bazată pe hârtie, dar probabil vom vedea o adoptare mai mare a semnăturilor digitale pe măsură ce trecem la un tip mai digital de sisteme de procesare a datelor.