Cum este implementată semnătura digitală? Să luăm în considerare încă un exemplu. Să spunem că Sam va trimite Tom un contract sau numărul cardului său de credit în formă digitală. Pentru a confirma autenticitatea acestor documente, Tom are nevoie de o semnătură digitală a lui Sem. Primul Sam își trimite documentul. Apoi utilizează un algoritm de hash pentru a calcula identificatorul acestui document, criptează valoarea hashed cu propria cheie privată și îl trimite Tom. Aceasta este semnătura digitală a lui Sam. Volumul cu același algoritm hash calculează mai întâi ID-ul documentului primit. Apoi el descifrează sensul pe care la primit de la Sam folosind cheia comună oferită de Sam. Dacă două valori hash coincid, Tom nu numai că afirmă că acest document este autentic, dar că semnătura lui Sam este validă. Este clar că realizarea tranzacțiilor comerciale în cadrul acestui scenariu este mult mai sigură decât utilizarea unei semnături de mână pe hârtie care poate fi falsificată. Și dacă informațiile trimise de Sam Tom sunt confidențiale (de exemplu, conțin un număr de card de credit), atunci ele pot fi criptate, astfel încât numai Tom le poate citi.
Mesaj Digest și semnături digitale
Atunci când creați o semnătură digitală a unui anumit mesaj PGP, acesta trebuie criptat cu cheia secretă. Dar PGP nu folosește cu adevărat cheia privată pentru a cripta întregul mesaj, deoarece acest proces ar fi lung. În schimb, PGP criptează MessageDigest.
MessageDigest se calculează de la expeditorul mesajului. Cheia secretă este folosită de către expeditor pentru a cripta MessageDigest și o adâncitură temporară (amprentă de timp), formând o semnătură digitală, sau semnătura certificatului. Expeditorul trimite semnătura digitală la mesaj. Destinatarul primește mesajul și semnătura digitală, restaurează MessageDigest original al semnăturii digitale folosind decriptare cheia publică a expeditorului, recalculează MessageDigest mesaj și compară cu cele obținute de la MessageDigest expeditor. Dacă acestea sunt egale, atunci mesajul de mai sus nu a fost făcută nici o schimbare.
Un atacator potențial ar trebui fie să producă un mesaj care produce o MessageDigest identică (care nu este posibil), sau trebuie să creeze o nouă semnătură digitală a MessageDigest modificată (care, de asemenea, nu este posibilă fără cunoașterea cheii private a expeditorului).
Semnăturile digitale autentifică mesajul, precum și verifică corectitudinea mesajului când acesta este trimis între utilizatori pentru a detecta modificările mesajului din efectele oricărei erori sau acțiuni deliberate.
Utilizarea MessageDigest pentru a genera semnături digitale are și alte avantaje pe lângă viteza semnificativă decât semnarea directă a unui mesaj complet cu o cheie secretă. Mesajul Digest permite ca semnăturile să fie o funcție standard cu o lungime fixă mică, indiferent de mărimea mesajului real. De asemenea, vă permite să monitorizați automat integritatea mesajului, într-un mod similar cu utilizarea unei sume de control, permite ca semnătura să fie stocată separat de mesaj, eventual într-o anumită arhivă publică, fără a expune informațiile secrete despre mesajul real, deoarece nimeni nu poate extrage un mesaj din MessageDigest.
Schema. Sistemul de semnătură digitală.
1. Sam procesează un document de algoritm special pe care îl va trimite lui Tom, ca rezultat al primirii unui anumit parametru, calculat pe baza conținutului documentului. De obicei, acest lucru necesită mult mai puțin spațiu decât documentul original - un parametru de 128 sau 160 de biți.
2. Apoi Sam folosește cheia privată pentru a cripta parametrul primit. Valoarea finală servește drept semnătura digitală a lui Sam.
3. Sam trimite Tom un document și semnătura sa digitală.
4. Tom ignoră documentul primit de la Tom, prin același algoritm pe care Tom la folosit.
5. Tom apoi decriptează semnătura digitală primită de la Sam folosind cheia publică oferită de Sam.
6. Volumul compară valoarea parametrului obținut la pasul 4 cu valoarea decriptată a semnăturii digitale. Dacă aceste valori sunt identice, semnătura este autentică și documentul "în tranzit" nu a fost modificat. În caz contrar, fie documentul este distorsionat, fie semnătura este falsificată sau ambele.
Cel mai probabil este pentru acest lucru, sau un sistem similar se va desfășura afaceri prin internet sau orice alt serviciu de informații. Acest algoritm a stat la baza proiectului național de standardul SUA - Digital Signature Standard (DSS). Acesta se aplică: Algoritmul Secure Hash Algorith pentru a calcula parametrii hash și criptosistem cheia publică, cunoscut sub numele de Digital Signature Algorith (DSA) și este destinat pentru hash semnătura digitală a parametrilor. O serie de elemente de proiect DSS au fost criticate, cu toate acestea, multe dintre comentariile au venit de la interesul financiar al grupului în respingerea proiectului.
Timpul va indica dacă una dintre metodele de creare a unei semnături digitale este acceptată ca standard. Cu toate acestea, indiferent de rezultat, ceea ce este important este că există într-adevăr o oportunitate de a efectua în condiții de siguranță operațiunile de tranzacționare digitală.