it-swarm.com.de

Was ist der Unterschied zwischen DSA und RSA?

Es scheint, dass beide Verschlüsselungsalgorithmen öffentliche und private Schlüssel erfordern. Warum sollte ich eines gegen das andere auswählen, um die Verschlüsselung in meiner Client-Server-Anwendung bereitzustellen?

112
WilliamKF

Verweisend, 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 es direkt als digitales Signaturschema verwendet werden
mit einem RSA-Schema {(e, R), (d, p, q)}
Um eine Nachricht M zu signieren, berechnen Sie:
S = M Leistung d (mod R)
Um eine Signatur zu verifizieren, berechnen Sie:
M = S Leistung e (mod R) = M Leistung e.d (mod R) = M (mod R)

RSA kann sowohl für die Verschlüsselung als auch für digitale Signaturen verwendet werden. einfach durch Umkehren der Reihenfolge, in der die Exponenten verwendet werden: der geheime Exponent (d) zum Erstellen der Signatur, der öffentliche Exponent (e) zum Überprüfen der Signatur. Alles andere ist identisch.

DSA (Digital Signature Algorithm)
DSA ist eine Variante der ElGamal- und Schnorr-Algorithmen, die eine 320-Bit-Signatur erzeugt. Mit 512-1024-Bit-Sicherheit beruht die Sicherheit jedoch wieder auf der Schwierigkeit, diskrete Logarithmen zu berechnen

DSA-Schlüsselgenerierung
Zuerst werden gemeinsam genutzte globale öffentliche Schlüsselwerte (p, q, g) ausgewählt:
wähle eine große Primzahl p = 2 Potenz L
wobei L = 512 bis 1024 Bit und ein Vielfaches von 64 ist
wähle q, einen 160-Bit-Primfaktor von p-1
wähle g = h Potenz (p-1)/q
für jeden h1
dann wählt jeder Benutzer einen privaten Schlüssel und berechnet seinen öffentlichen Schlüssel:
wähle x berechne y = g Potenz x (mod p)

Die DSA-Schlüsselgenerierung ist verwandt, aber etwas komplexer als El Gamal. Dies ist hauptsächlich auf die Verwendung des sekundären 160-Bit-Moduls q zurückzuführen, mit dem Berechnungen beschleunigt und die Größe der resultierenden Signatur verringert werden können.

DSA-Signaturerstellung und -prüfung

eine Nachricht unterschreiben M
generiere zufälligen Signaturschlüssel k, k berechne
r = (g Leistung k (mod p)) (mod q)
s = k - 1. SHA (M) + x.r (mod q)
Unterschrift (en) mit Nachricht senden

um eine Signatur zu verifizieren, berechnen Sie:
w = s-1 (mod q)
u1 = (SHA (M) .w) (mod q)
u2 = r.w (mod q)
v = (g Potenz u1.y Potenz u2 (mod p)) (mod q)
Wenn v = r, wird die Signatur verifiziert

Die Signaturerstellung ähnelt wiederum ElGamal mit der Verwendung eines temporären Signaturschlüssels k pro Nachricht, wobei jedoch zuerst mod p und dann mod q berechnet werden, um die Größe des Ergebnisses zu verringern. Beachten Sie, dass die Verwendung der Hash-Funktion SHA hier explizit angegeben ist. Die Überprüfung besteht auch aus dem Vergleich von zwei Berechnungen, die ebenfalls etwas komplexer sind als El Gamal, sich jedoch auf diese beziehen.
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 existiert in vielen Schemata (alle, für die eine Zufallszahl ausgewählt werden muss), nicht nur in DSA. Es betont die Notwendigkeit einer "Systemsicherheit", nicht nur eines guten Algorithmus.

23
AVA

Aktivieren Sie Antwort von AVA unten .

Meine alte Antwort scheint falsch zu sein

82
SDReyes

Übrigens können Sie nicht mit DSA verschlüsseln, sondern nur signieren. Obwohl sie mathematisch äquivalent sind (mehr oder weniger), können Sie DSA in der Praxis nicht als Verschlüsselungsschema, sondern nur als digitales Signaturschema verwenden.

24
Henri

Mit Bezug auf man ssh-keygen Ist die Länge eines DSA-Schlüssels auf genau 1024 Bit beschränkt, um mit NISTs FIPS 186-2 kompatibel zu bleiben. Theoretisch sind jedoch längere DSA-Schlüssel möglich. FIPS 186-3 erlaubt dies ausdrücklich. Darüber hinaus ist die Sicherheit bei 1024 Bit langen RSA- oder DSA-Schlüsseln nicht mehr gewährleistet.

Zusammenfassend ist ein 2048-Bit-RSA-Schlüssel derzeit die beste Wahl.

MEHR VORSICHTSMASSNAHMEN

Das Herstellen einer sicheren SSH-Verbindung erfordert mehr als die Auswahl einer sicheren Verschlüsselungsschlüsselpaartechnologie. Angesichts von Edward Snowdens NSA Enthüllungen muss man noch wachsamer sein als bisher für ausreichend gehalten.

Um nur ein Beispiel zu nennen, ist die Verwendung eines sicheren Schlüsselaustauschalgorithmus ebenso wichtig. Hier ist ein guter Überblick über die aktuellen besten SSH-Härtungsmethoden .

20

Und zusätzlich zu den oben genannten Nizza Antworten.

  • DSA verwendet den diskreten Logarithmus.
  • RSA verwendet die Ganzzahlfaktorisierung.

RSA steht für Ron [~ # ~] r [~ # ~] ivest, Adi [~ # ~] s [~ # ~] hamir und Leonard [~ # ~] ein [~ # ~] dleman.

6
Premraj