Verweis auf https://web.archive.org/web/20140212143556/http://courses.cs.tamu.edu:80/pooch/665_spring2008/Australian-sec-2006/less19.html
RSA
RSA-Verschlüsselung und -Entschlüsselung sind kommutativ,
daher kann sie direkt als digitales Signaturschema verwendet werden,
wenn ein RSA-Schema {(e, R), (d, p, q)}
zum Signieren einer Nachricht M gegeben ist. Berechnen Sie:
S = M Leistung d (mod R)
Um eine Signatur zu verifizieren, berechnen Sie:
M = S Leistung e (mod R) = M Leistung ed (mod R) = M (mod R)
RSA kann sowohl für die Verschlüsselung als auch für digitale Signaturen verwendet werden,
indem einfach die Reihenfolge umgekehrt wird, in der die Exponenten verwendet werden: der geheime Exponent (d) zum Erstellen der Signatur, der öffentliche Exponent (e), damit jeder die Signatur überprüfen kann. Alles andere ist identisch.
DSA (Digital Signature Algorithm)
DSA ist eine Variante auf den ElGamal und Schnorr Algorithmen eine Signatur 320 Bit erzeugt, aber mit 512-1024 Bit - Sicherheits Sicherheit wieder ruht auf Schwierigkeiten bei der Berechnung diskreter Logarithmen ganz allgemein akzeptiert wurde
DSA Key Generation
zunächst gemeinsame globale Öffentlichkeit Schlüsselwerte (p, q, g) werden gewählt:
Wählen Sie eine große Primzahl p = 2 Potenz L,
wobei L = 512 bis 1024 Bit und ein Vielfaches von 64 ist.
Wählen Sie q, ein 160-Bit-Primfaktor von p-1,
wählen Sie g = h power (p-1) / q
für jedes h1,
dann wählt jeder Benutzer einen privaten Schlüssel und berechnet seinen öffentlichen Schlüssel:
wähle x compute y = g power x (mod p)
Die Generierung von DSA-Schlüsseln ist verwandt mit El Gamal, jedoch etwas komplexer. Hauptsächlich aufgrund der Verwendung des sekundären 160-Bit-Moduls q, der verwendet wird, um Berechnungen zu beschleunigen und die Größe der resultierenden Signatur zu verringern.
DSA-Signaturerstellung und -verifizierung
zum Signieren einer Nachricht M
erzeugen einen zufälligen Signaturschlüssel k, k berechnen
r = (g Leistung k (mod p)) (mod q)
s = k-1.SHA (M) + xr (mod q)
senden Signatur (r, s) mit Nachricht
zum Überprüfen einer Signatur, berechnen:
w = s-1 (mod q)
u1 = (SHA (M) .w) (mod q)
u2 = rw (mod q)
v = (g Leistung u1.y Potenz u2 (mod p)) (mod q)
Wenn v = r, wird die Signatur verifiziert
Die Signaturerstellung ähnelt wieder ElGamal mit der Verwendung eines temporären Signaturschlüssels k pro Nachricht, berechnet jedoch zuerst mod p und dann mod q, um die Größe des Ergebnisses zu verringern. Beachten Sie, dass die Verwendung der Hash-Funktion SHA hier explizit ist. Die Überprüfung besteht auch darin, zwei Berechnungen zu vergleichen, die wiederum etwas komplexer sind als El Gamal, aber damit zusammenhängen.
Beachten Sie, dass fast alle Berechnungen mod q sind und daher viel schneller sind.
Im Gegensatz zu RSA kann DSA jedoch nur für digitale Signaturen verwendet werden
DSA-Sicherheit
Das Vorhandensein eines unterschwelligen Kanals besteht in vielen Schemata (bei denen eine Zufallszahl ausgewählt werden muss), nicht nur bei DSA. Es unterstreicht die Notwendigkeit einer "Systemsicherheit", nicht nur eines guten Algorithmus.