O semnătură digitală este o schemă matematică folosită pentru a demonstra
autenticitatea mesajelor sau documentelor digitale. O semnătură digitală validă oferă destinatarului o bază solidă pentru a crede că mesajul a fost creat de către un expeditor cunoscut să fie sigur că expeditorul nu poate nega că a trimis mesaju și că mesajul nu a fost modificat pe parcurs Semnăturile digitale sunt un element standard al celor mai multe suite de protocoale criptografice, și sunt frecvent utilizate pentru distribuirea de software, tranzacții financiare, software de gestiunea contractelor, precum și în alte cazuri în care este important să se detecteze falsificarea sau manipularea datelor.
O schemă de semnătură digitală este formată de obicei din 3 algoritmi:
Un algoritm de generare a cheilor care alege o cheie privată uniform
aleatoare dintr-un set de chei private posibile. Algoritmul produce la ieșire cheia privată împreună cu o cheie publică corespunzătoare. Un algoritm de semnare care, când i se prezintă un mesaj și o cheie privată, produce o semnătură. Un algoritm de verificare a semăturii care, primind mesajul, cheia publică și semnătura, poate accepta sau respinge mesajul în raport cu autenticitatea sa. Este nevoie de două două proprietăți principale. În primul rând, autenticitatea semnăturii generate dintr-un mesaj fix și cu o cheie privată fixă să poată fi verificată utilizând cheia publică corespunzătoare. În al doilea rând, să fie imposibil din punct de vedere computațional ca cineva să genereze o semnătură validă fără să știe cheia privată. O semnătură digitală este un mecanism de autentificare, care permite creatorului de mesaj să atașeze un cod care acționează ca o semnătură. Digital Signature Algorithm (DSA), dezvoltat de către National Institute of Standards and Technology, este unul din multe exemple algoritmi de semnare. Toate sistemele de semnătură digitală au în comun următoarele premise de bază, indiferent de teoria criptografică sau de prevederile legale: 1. Algoritmi de calitate Se știe că unii algoritmi cu chei publice sunt nesiguri, întrucât s-au descoperit atacuri practice împotriva lor. Implementări de calitate O implementare cu greșeli a unui algoritm (sau protocol) bun nu va funcționa. Utilizatorii (și software-ul lor) trebuie să efectueze corespunzător protocolul de semnare. Cheia privată trebuie să rămână privată Dacă cheia privată devine cunoscută oricărei alte părți, acea parte poate produce semnături digitale perfecte de orice fel. Proprietarul cheii publice trebuie să fie verificabil O cheie publică asociată cu Bob chiar provine de la Bob. Acest lucru se face de obicei folosind o infrastructură de chei publice (PKI) și asocierea cheie publică↔utilizator este atestată de către operatorul PKI (numit autoritate de certificare). Pentru PKI-urile deschise în care oricine poate solicita un astfel de atestat (întruchipat universal într-un certificat de identitate protejat criptografic), posibilitatea atestării eronate este netrivială. Operatorii de PKI comerciale au suferit mai multe probleme cunoscute publicului. Astfel de greșeli ar putea duce la documente fals semnate, și, astfel, fals atribuite. Sistemele PKI „închise” sunt mai costisitoare, dar mai greu de subminat în acest fel. Numai dacă toate aceste condiții sunt îndeplinite, o semnătură digitală va fi de fapt o probă a identității cui a trimis mesajul, și, prin urmare, a acordului pentru conținutul lor. Prevederile legale nu pot schimba această realitate a posibilităților inginerești, deși unele încă nu reflectă această realitate. Unele legislaturi au adoptat legi și/sau reglementări în multe jurisdicții prin care autorizează, aprobă, încurajează, sau permit semnăturile digitale și limitează sau reglementează efecte lor juridice. Primul pare să fi fost statul Utah, din Statele Unite, urmat la scurt timp de statele Massachusetts și California. Alte țări au adoptat și ele legi sau reglementări emise în acest domeniu, iar ONU are de mai mult timp un model activ de proiect de lege pe această temă. Aceste acte normative (sau propuneri legislative) variază de la loc la loc, și au răspuns în proporție variată așteptărilor (optimiste sau pesimiste) față de starea de fond a ingineriei criptografice actuale, uneori având efectul de a deruta potențialii utilizatori și clienți, dintre care aproape toți nu au cunoștințe de criptografie.