Wie schlecht ist 3 als öffentlicher Exponent der RSA?

8

Ich erstelle eine Anwendung, wo ich RSA verwenden muss, um einige Dinge mit einem öffentlichen Schlüssel zu verschlüsseln. Ich möchte, dass diese Verschlüsselung wirklich schnell ist. Anfangs habe ich einen 2048-Bit-Schlüssel mit F4 (= 65537) als Exponent versucht, aber er ist nicht schnell genug. Also jetzt überlege ich die folgenden 2 Optionen:

  1. 2048 Bitmodul, e = 3
  2. 1024 Bitmodul, e = 65537

Beide erfüllen meine Leistungsanforderungen, aber welche bietet bessere Sicherheit? Ich sollte auch beachten, dass ich das PKCS # 1 Padding-Schema verwende.

    
safsaf32 28.12.2009, 00:49
quelle

7 Antworten

9

Wenn Sie in PKCS # 1 zufälliges Padding wie OAEP verwenden, sind die meisten (alle?) der bekannten Schwachstellen durch die Verwendung niedriger Exponenten nicht mehr relevant.

Hast du es auch mit e = 17 versucht? Es gibt keine Regel, die besagt, dass Sie entweder 3 oder 65537 wählen müssen.

    
Mark Byers 28.12.2009, 01:04
quelle
5

Vorausgesetzt, dass Sie ein gutes Padding-Schema verwenden, gibt es keinen bekannten Grund, warum e = 3 eine schlechtere Sicherheit haben sollte als jeder andere öffentliche Exponent. Die Verwendung eines kurzen Exponenten hat Probleme, wenn Sie auch kein gutes Padding-Schema verwenden, aber das Problem liegt mehr im Padding-Schema als im Exponenten.

Das "Bauchgefühl" vieler Forscher ist, dass e = 3 nicht besser ist als jeder andere öffentliche Exponent, und e = 3 könnte sich zu einem unbestimmten zukünftigen Datum als etwas schwächer erweisen Nichts deutet auf eine solche Schwäche hin.

Die Schlüssellänge hat einen viel höheren praktischen Einfluss auf die Sicherheit. Ein 768-Bit-RSA-Schlüssel wurde kürzlich geknackt (das war nicht einfach! Vier Jahre Arbeit mit großen Computern und größeren Gehirnen). Ein 1024-Bit-Schlüssel wird für die Kurzzeit als ausreichend angesehen, aber Langzeitverwendungen (z. B. die verschlüsselten Daten haben einen hohen Wert und müssen noch im Jahr 2030 vertraulich sein) würden etwas Größeres erfordern, z. 2048 Bits. Siehe diese Seite für viele Informationen darüber, wie Kryptographie Stärke geschätzt werden kann und wurde von verschiedenen Forschern und Organisationen geschätzt.

Wenn Sie nach einer sehr schnellen asymmetrischen Verschlüsselung suchen, sollten Sie das Rabin-Williams-Verschlüsselungsschema untersuchen, das schneller ist als RSA, während für dieselbe Ausgabelänge mindestens das gleiche Sicherheitsniveau zur Verfügung steht (aber es gibt keinen einfach zu verwendenden detaillierten Standard für dieses Schema, im Gegensatz zu RSA mit PKCS # 1, so dass Sie hier ein wenig auf sich gestellt sind ).

    
Thomas Pornin 22.01.2010 16:37
quelle
2

Bruce Schneier und Niels Ferguson schlagen in ihrem Buch "Practical Cryptography " vor, einen öffentlichen Exponenten für 3 zu verwenden Signaturen und 5 für die Verschlüsselung. Sie sollten die anderen Kriterien überprüfen, die sie empfehlen, die Katastrophen vermeiden. Abschnitt 13.4 deckt dies ab (S. 229 ff.) Und diskutiert die nicht sehr komplexe Anforderung, dass bei gegebenem n = pq (wobei p und q zufällige Primzahlen sind) weder (p-1) noch (q-1) ein Vielfaches von 3 oder 5 sein können Aber überprüfen Sie immer noch das Buch für die Details.

(Ich glaube, es gibt eine neue Ausgabe des Buches, die 2010 erscheinen wird .)

    
Jonathan Leffler 28.12.2009 04:35
quelle
2

Obwohl derzeit kein Angriff bekannt ist, wenn eine korrekte Auffüllung verwendet wird, führen kleine Exponenten im Falle von Implementierungsfehlern eher zu Exploits. Und Implementierungsfehler sind leider immer noch eine Bedrohung. Z.B. das ist eine Schwachstelle, die ziemlich "populär" war. (Beachten Sie, dass dies für Signaturen gilt. Ich möchte nur zeigen, dass selbst kommerzielle Software schwerwiegende Fehler enthalten kann.)

Wenn Sie Ecken schneiden müssen, dann müssen Sie die möglichen Auswirkungen Ihrer Handlungen berücksichtigen. I.e. die Wahl eines kleinen Moduls oder eines kleinen Exponenten haben beide ihre eigenen Nachteile.

Wenn Sie einen kleinen (1024 Bit) Modul wählen, können Sie nicht davon ausgehen, dass Ihre Daten jahrzehntelang vertraulich behandelt werden können.

Wenn Sie einen kleinen Exponenten wählen, sind Sie möglicherweise anfälliger für Implementierungsfehler.

Im ersten Fall wissen Sie ziemlich genau, wann Ihre Geheimnisse in Gefahr sind, da es recht einfach ist, dem Fortschritt beim Factoring zu folgen. (Dies setzt natürlich voraus, dass Agenturen, die keine NSA veröffentlichen, nicht dein Feind sind). Im zweiten Fall (Implementierungsfehler) wissen Sie nicht, wann Sie einen Fehler gemacht haben. Sie könnten mit e = 3 sicher sein, oder Sie haben einen großen Fehler gemacht. I.e. in einem Fall haben Sie eine ziemlich gute Möglichkeit, Ihr Risiko zu schätzen, und in dem anderen Fall haben Sie nicht.

Daher würde ich empfehlen, e = 3 überhaupt nicht zu verwenden. Ich würde mehr Sicherheitsmarge gegen schwer vorhersehbare Bedrohungen verwenden, als diese Bedrohungen, die in großem Umfang veröffentlicht werden.

    
Accipitridae 27.01.2010 10:31
quelle
1

Wenn Ihr Exponent niedrig ist und der Wert von m * e & lt; modulus, können Sie einfach die eth-Wurzel des Chiffretextes entschlüsseln.

Das ist von meinen Notizen zu Krypto von vor zwei Jahren. Aber als Antwort auf Ihre Frage scheint Option 2 besser zu sein.

Jemand, der mathematischer interessiert ist, könnte Ihnen vielleicht eine bessere Erklärung dafür geben.

    
Ritwik Bose 28.12.2009 00:55
quelle
1

Zu Ihrer Information, sehen Sie das für ein bisschen Geschichte: Ссылка

    
Yuhong Bao 08.06.2011 07:00
quelle
0

Um Don Coppersmiths Aufsatz von 1997 "Kleine Lösungen für Polynomgleichungen und Schwachstellen-RSA-Schwachstellen" zu zitieren:

  

RSA-Verschlüsselung mit Exponent 3 ist angreifbar, wenn der Gegner zwei Drittel der Nachricht kennt.

Dies ist zwar kein Problem, wenn das Padding-Schema RSA-OAEP verwendet wird, das PKCS # 1-Padding-Schema (das op verwendet) ist jedoch anfällig, wenn der öffentliche Exponent 3 verwendet wird.

    
FaST4 01.02.2018 09:36
quelle

Tags und Links