Was ist besser für GPG-Schlüssel - RSA oder DSA?

39737
grawity

ssh-keygenStandardmäßig werden RSA-Schlüssel erstellt, gpg --gen-keyDSA / ElGamal wird jedoch bevorzugt.

Welches - RSA oder DSA - ist besser für GPG?

56
Siehe auch [diese StackOverflow-Frage] (https://stackoverflow.com/questions/2841094/what-is-the-difference-between-dsa-and-rsa) sowie [meine Antwort] (https: // stackoverflow). com / questions / 2821736 / whats-the-difference-between-id-rsa-pub-und-id-dsa-pub / 27855045 # 27855045) zu einem Duplikat dieser Frage, die besagt, dass _why_RSA wesentlich sicherer ist als DSA, sowohl im Jahr 2010 als auch mit den heute bekannten Sicherheitslücken (alle für DSA). Adam Katz vor 7 Jahren 1

6 Antworten auf die Frage

35
CesarB

Die GPG-Betreuer überlegen , die Standardeinstellung in RSA zu ändern (Quelle: Umgang mit Schwäche in SHA-1 [LWN.net] ). Es scheint also, dass RSA derzeit die bessere Option ist (und sie sollten mehr darüber wissen als Sie oder ich).

23
nik

RSA und DSA - falsche Vorstellungen und nützliche Informationen enthalten
einige ältere RSA- Referenzen und die jüngsten DSA- Referenzen,


Im Jahr 2003, RSA vs DSA Signatures - Der Gewinner ist ... - RSA .

Grundsätzlich ist die Schlüsselgenerierung für DSA also unglaublich schneller, was sinnvoll ist, wenn Sie die Algorithmen verstehen. Die Signierung ist für DSA ebenfalls schneller, jedoch nicht so stark. Die große Stärke von RSA ist die Überprüfung, die viel schneller ist als DSA .

Jüngster IETF-Entwurf: DSA mit SHA-2 für DNSSEC, Ablauf am 7. Januar 2010.
Es hat einige Gründe, DSA heute gegenüber RSA zu fördern.

Die Verwendung von DSA mit SHA-256 in DNSSEC hat gegenüber der Verwendung von RSA mit SHA-256 bei Verwendung von 2048-Bit-Schlüsseln einige Vor- und Nachteile . DSA-Signaturen sind viel kürzer als RSA-Signaturen . Bei dieser Größe beträgt der Unterschied 512 Bits gegenüber 2048 Bits. Auf typischen Plattformen, die 2048-Bit-Schlüssel verwenden, ist das Signieren von DSA etwa dreimal schneller als bei RSA. Die Überprüfung der RSA-Signaturen ist jedoch mehr als zehnmal schneller als für DSA .

Die kryptografische Stärke von DSA gilt im Allgemeinen als RSA, wenn der öffentliche DSA-Schlüssel und der öffentliche RSA-Schlüssel dieselbe Größe haben. Eine solche Beurteilung könnte sich in Zukunft natürlich ändern, wenn neue Angriffe gefunden werden, die mit dem einen oder dem anderen Algorithmus besser funktionieren.

Derzeit sind keine Angriffe auf die spezifischen DSA-Parameter bekannt, die für dieses Dokument ausgewählt wurden. Eine solche Einschätzung könnte sich in Zukunft natürlich ändern.

Dies ist jedoch momentan nur ein Entwurf .

Jeder liebt die Überprüfungsgeschwindigkeit von RSA (!).

8
pgs

RSA. In SHA-1, dem von DSA verwendeten Hash, wurden einige Schwachstellen entdeckt . Debian migriert alle ihre Schlüssel von DSA zu RSA.

5
Adam Matan

Eine Forum-Diskussion zitieren :

Mein Rat wäre, einen RSA-Signaturschlüssel ("Primärschlüssel" oder "Hauptschlüssel") und einen RSA-Unterschlüssel zur Verschlüsselung zu verwenden. Der Grund für die Verwendung von RSA zum Signieren ist hauptsächlich darauf zurückzuführen, dass Sie mit RSA größere Hashwerte verwenden können als DSA. Mit DSA2 können Sie auch größere Hashes verwenden, aber RSA wird seit vielen Jahren länger unterstützt als DSA2.

Ich denke, wenn Sie es auf eine standardisierte Art und Weise verwenden (dh Sie verschlüsseln keine riesigen Datenmengen), werden beide gut funktionieren.

Ich würde mich persönlich für RSA entscheiden, weil ich den Algorithmus gelernt habe und er einer der schönsten Algorithmen ist, die ich je gesehen habe.

4
Manuel Faux

Auch die Verwendung von SHA-2-Algorithmen ist seit der aktuellen Version von DSS möglich und zulässig. aber ich konnte nicht herausfinden, welche Revision GPG folgt.

Bezüglich der aktuellen DSS-Spezifikation ( FIPS-186-3, S. i) kann jede in der SHS (FIPS-180-3, S. iv) angegebene Hash-Funktion verwendet werden:

DSS:

Von FIPS genehmigte digitale Signaturalgorithmen müssen mit einer entsprechenden Hash-Funktion verwendet werden, die im SHS angegeben ist.

SHS:

Dieser Standard spezifiziert fünf sichere Hash-Algorithmen - SHA-1, SHA-224, SHA-256, SHA-384 und SHA-512 - zur Berechnung einer komprimierten Darstellung elektronischer Daten (Nachrichten).


Zur Frage: Beide Algorithmen basieren auf mathematischen Problemen, die sich nicht als sicher herausstellen (RSA verwendet das Problem der Faktorisierung und DSA das Problem des diskreten Logarithmus). Man kann nicht sagen, dass einer sicherer ist als der andere, denn nicht der eine Problem noch das andere wurde jemals gelöst.

Bei der Verwendung von DSA mit SHA-1 kann jedoch ein Sicherheitsproblem auftreten, wie bereits von pgs gesagt .

1
Ram

Tatsache ist, dass es für Sie wahrscheinlich nicht viel ausmacht. Als Teil der Vorbereitung zur Erzeugung eines Schlüsselpaares und als Teil der Aufrechterhaltung vorhandener Schlüsselpaare - unabhängig davon, welche asymmetrische Krypto Sie wählen, sollten Sie Folgendes tun: 1) Prüfen der aktuellen Empfehlungen Schlüssellängen 2) Wählen Sie ein Basis- / Modulo-Modul zur Optimierung des Signierens oder der Überprüfung - je nachdem, was häufiger zu tun ist (Schlüssel, die bei der Ausgabe von TLS / SSL-Serverzertifikaten verwendet werden sollen, sollten für die Überprüfung optimiert werden, da jeder Webbrowser die Signatur überprüft ... Schlüssel, die in der Signiersoftware verwendet wurden, sollten auf ähnliche Weise optimiert werden.) 3) Stellen Sie sicher, dass Sie Ihre Schlüssel altern lassen. Wenn Sie denselben Schlüssel für ssh-auth seit einigen Jahren verwenden, kann es Zeit sein, sich zu regenerieren, selbst wenn Sie einen Schlüssel auswählen Größe, die für die Anwendung heute noch angemessen ist.

Sowohl RSA als auch DSA wurden im Wesentlichen bewertet. Wenn Sie eine zuverlässige Codebasis verwenden (RSAREF, RSA Commercial, Mozilla / Netscape, Microsoft, OpenSSL, ...), ist es Ihnen wahrscheinlich egal, welches Kryptosystem Sie verwenden, solange Sie es richtig verwenden und die aktuellen Best Practices anwenden