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

58

ssh-keygenStandardmäßig werden RSA-Schlüssel erstellt, gpg --gen-keybevorzugt jedoch DSA / ElGamal.

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

Grawity
quelle
1
Siehe auch diese StackOverflow-Frage sowie meine Antwort auf ein Duplikat dieser Frage, in der erläutert wird, warum RSA sowohl im Jahr 2010 als auch mit den heute bekannten Sicherheitslücken (alle für DSA) bedeutend sicherer als DSA ist.
Adam Katz

Antworten:

25

RSA und DSA - Missverständnisse und nützliche Informationen enthalten
einige ältere RSA- Referenzen und die jüngste DSA- Referenz.


Im Jahr 2003 RSA vs DSA Signaturen - Der Gewinner ist ... - RSA .

Grundsätzlich ist die Schlüsselgenerierung für DSA also unglaublich schneller. Dies ist sinnvoll, wenn Sie die Algorithmen verstehen. Das Signieren ist für DSA ebenfalls schneller, jedoch nicht so stark. Die Stärke von RSA liegt in der Überprüfung, die wesentlich schneller ist als die von DSA .

Jüngster IETF-Entwurf: DSA mit SHA-2 für DNSSEC , läuft am 7. Januar 2010 aus.
Es gibt einige Gründe, DSA heute vor RSA zu bewerben .

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

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

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

Dies ist jedoch derzeit nur ein Entwurf .

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

nik
quelle
6

Zitieren einer Forumsdiskussion :

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

Ich denke, wenn Sie es auf eine standardmäßige Art und Weise verwenden (dh Sie verschlüsseln keine große Datenmenge), werden sie beide gut abschneiden.

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

Adam Matan
quelle
4

Auch die Verwendung von SHA-2-Algorithmen ist seit der aktuellen Revision von DSS möglich und erlaubt; aber ich konnte nicht herausfinden, welcher Revision GPG folgt.

In Bezug auf die aktuelle 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 Algorithmen für digitale Signaturen müssen mit einer geeigneten Hash-Funktion verwendet werden, die im SHS angegeben ist.

SHS:

Diese Norm legt fünf sichere Hash-Algorithmen fest - SHA-1, SHA-224, SHA-256, SHA-384 und SHA-512 - zur Berechnung einer komprimierten Darstellung elektronischer Daten (Nachricht).


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

Wenn Sie jedoch DSA mit SHA-1 verwenden, besteht möglicherweise ein Sicherheitsproblem, wie bereits von pgs erwähnt .

Manuel Faux
quelle
1

Tatsache ist, dass es Ihnen wahrscheinlich nicht viel ausmacht :) Im Rahmen der Vorbereitung der Generierung eines Schlüsselpaars und der Beibehaltung vorhandener Schlüsselpaare sollten Sie unabhängig von der von Ihnen gewählten asymmetrischen Krypto Folgendes tun: 1) Überprüfen der empfohlenen Aktualität Schlüssellängen 2) Wählen Sie eine Basis / Modulo, um die Signatur oder Überprüfung zu optimieren. Dies hängt davon ab, was häufiger gemacht wird ... Schlüssel, die in der Signatursoftware verwendet wurden, sollten auf ähnliche Weise optimiert werden Größe, die für die Anwendung heute noch angemessen ist.

Sowohl RSA als auch DSA wurden im Wesentlichen evaluiert. 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

RAM
quelle