Frage:
Was ist die realistische und sicherste Krypto für Chiffren mit symmetrischem, asymmetrischem, Hash- und Nachrichtenauthentifizierungscode?
goodguys_activate
2011-01-20 04:40:21 UTC
view on stackexchange narkive permalink

Ich bin daran interessiert, diese zweigleisige Frage für 2011 zu aktualisieren:

  1. Welche Kryptologie eignet sich am besten für Geräte mit geringem Stromverbrauch (z. B. ein Mobiltelefon) und ist dennoch effektiv ?

  2. Welche Kryptologie ist für einen .NET-Entwickler am sichersten?

  3. ol>

    Im November 2008 Rasmus Faber beantwortete diese ähnliche Frage zum Stapelüberlauf mit folgender Antwort:

    • Symmetrische Verschlüsselung: AES-256

    • Asymmetrische Verschlüsselung: RSA mit 4096-Bit-Schlüssel (ich glaube, das ist das Maximum in .NET) oder ECDSA mit 571-Bit-Schlüssel (dies wird jedoch nur in .NET 3.5 unterstützt)

    • Hash: SHA-512

    • Nachrichtenauthentifizierungscode: HMAC mit SHA-512

    Davon abgesehen sind diese für die meisten Anwendungen übertrieben, und Sie sollten es tun Verwenden Sie AES-128, RSA mit 2048-Bit-Schlüssel, SHA-256 und HMAC mit SHA-256.

    Treffen diese Empfehlungen auch heute noch zu?

Ihr April-Update zum Hinzufügen des Diagramms durch "RIMs Verschlüsselungsanbieter" sorgt für viel Verwirrung. Es ist wirklich eine Anzeige für Certicoms ECC-Artikel mit übergroßen RSA-Längen, die für den Effekt hinzugefügt wurden. Sie zitieren irreführende NSA- und NIST-Arbeiten. Wie andere bereits klargestellt haben, waren auch die früheren Empfehlungen übertrieben. Ich schlage vor, das Update nur zu löschen oder als Antwort zu veröffentlichen, da durch das Aktualisieren der Frage auch unklar wird, auf welche früheren Antworten Bezug genommen wurde, es sei denn, die Daten werden überprüft.
@nealmcb - Ich fand es hilfreich ... Ich habe es entfernt. Danke für die Rückmeldung
Es kann sich lohnen, darauf hinzuweisen, dass sich die spezifische Anforderung eines Hash für die Kennwortspeicherung von der Anforderung eines Hash für die Nachrichtenintegrität (ob Übertragung oder Signatur) unterscheidet. Es gibt derzeit Streitigkeiten darüber, was der beste Ansatz für das Kennwort-Hashing ist. scrypt / bcrypt / PBKDF2 - aber einfach SHA-256 / SHA-512 ist definitiv nicht die richtige Antwort.
Könnte jemand die Liste der aktuellsten Chiffren schreiben, die heutzutage ~ sicher verwendet werden können?
Die Antwort von @boleslaw.smialy Rasmus Faber ist eine kurze Zusammenfassung - siehe auch keylength.io
Sieben antworten:
#1
+38
Thomas Pornin
2011-01-20 05:29:19 UTC
view on stackexchange narkive permalink

Die Empfehlungen, die Sie zitieren, sind übertrieben. Ein zu berücksichtigender Punkt ist, dass ab einer bestimmten Ebene (z. B. bei der Schlüsselgröße oder der Ausgabegröße der Hash-Funktion) alle Funktionen "mit vorhersehbarer Technologie unzerbrechlich" sind und es etwas schwierig ist, sie zu vergleichen. Die Feststellung, dass SHA-512 "robuster" als SHA-256 ist, bedeutet, dass Sie sich vorstellen, dass SHA-256 beschädigt werden könnte, was, soweit wir dies jetzt und in den nächsten 40 Jahren beurteilen können, nicht zutrifft (über 40 Jahre hinaus) Der Versuch, sich vorzustellen, welche Technologie wir haben könnten, ist riskant. Vor 40 Jahren stellte sich niemand das Internet so vor, wie es heute ist, aber die meisten Menschen gingen davon aus, dass wir bis 2010 alle fliegende Autos fahren würden.

AES- 128 ist bereits sicher genug und kostengünstiger (AES-256 verwendet 14 Runden, während AES-128 10 Runden verwendet).

Der derzeit größte defekte RSA-Schlüssel ist ein 768-Bit-Modul, und es hat einige gedauert großer Aufwand (vier Jahre und wirklich große Köpfe). 1024-Bit-Schlüssel werden für die kurzfristige Sicherheit als verwendbar angesehen, obwohl größere Schlüssel empfohlen werden. 2048-Bit-Schlüssel sind angemessen. Die Verwendung eines doppelt so großen Schlüssels bedeutet achtmal mehr Arbeit für das Signieren oder Entschlüsseln, sodass Sie ihn nicht übertreiben möchten. Auf dieser Website finden Sie eine Übersicht darüber, wie die Länge des RSA-Schlüssels mit der Sicherheit in Beziehung gesetzt werden kann.

ECDSA über eine 256-Bit-Kurve erreicht bereits ein "unzerbrechliches" Sicherheitsniveau (dh ungefähr) die gleiche Stufe wie AES mit einem 128-Bit-Schlüssel oder SHA-256 gegen Kollisionen). Beachten Sie, dass es auf Primfeldern elliptische Kurven und auf Binärfeldern Kurven gibt. Welche Art am effizientesten ist, hängt von der verwendeten Hardware ab (bei Kurven ähnlicher Größe bevorzugt ein PC die Kurven in einem Hauptfeld, dedizierte Hardware lässt sich jedoch leichter mit Binärfeldern erstellen; die Anweisungen CLMUL auf den neueren Intel- und AMD-Prozessoren kann dies geändert werden.

SHA-512 verwendet 64-Bit-Operationen. Dies ist auf einem PC schnell, auf einer Smartcard nicht so schnell. SHA-256 ist häufig ein besseres Angebot für kleine Hardware (einschließlich 32-Bit-Architekturen wie Heimrouter oder Smartphones).

Im Moment sind billige RFID-Systeme zu stromsparend, um eines der oben genannten zu verwenden (mit anderen Worten, RFID-Systeme, die nicht so billig sein können, wie sie sein könnten). RFID-Systeme verwenden immer noch benutzerdefinierte Algorithmen mit häufig fragwürdiger Sicherheit. Mobiltelefone hingegen verfügen über ausreichend CPU-Leistung, um eine ordnungsgemäße Kryptografie mit AES oder RSA durchzuführen (ja, sogar billige Nicht-Smartphones).

http://keylength.com/ gibt einige Empfehlungen für Größen, die einem Jahr oder Jahren gegeben sind, Größen usw.
#2
+11
Rasmus Faber
2011-01-20 15:39:09 UTC
view on stackexchange narkive permalink

Die zitierte Antwort ist meine Antwort auf die sicherste Krypto in .NET.

Meine Empfehlungen (sowohl für hoch als auch niedrig) Geräte mit Stromversorgung):

  • Symmetrische Verschlüsselung: AES-128

  • Asymmetrische Verschlüsselung: RSA mit 2048-Bit-Schlüssel oder ECDSA / ECDH mit 256-Bit-Schlüssel

  • Hash: SHA-256

  • Nachrichtenauthentifizierungscode: HMAC mit SHA-256

Stream-Verschlüsselung: AES-128 im CTR-Modus

#3
+6
PulpSpy
2011-01-20 05:09:21 UTC
view on stackexchange narkive permalink

In Bezug auf die Sicherheit sind diese Empfehlungen immer noch gültig und das gleiche, was ich machen würde.

Bei asymmetrischen Chiffren gibt es drei Dinge, mit denen Sie sich befassen: Verschlüsselung, Schlüsselaustausch und Signaturen. RSA kann sowohl ein Verschlüsselungs- als auch ein Signaturschema sein, während ECDSA speziell eine Signatur ist. Es gibt jedoch auch Versionen der Verschlüsselung und des Schlüsselaustauschs mit elliptischen Kurven (nicht sicher, was gemeinfrei ist). Die Parametergrößen sind jedoch für alle drei gleich.

Das einzige andere Problem ist, dass SHA-256/512 bald ersetzt wird, in diesem Fall jedoch "bald" 2012.

Bei geringem Stromverbrauch hängt es wirklich davon ab, wie wenig Strom verbraucht wird. Wenn Sie mit Handy ein Smartphone meinen, sind alle diese angemessen. Für eine Smartcard, RFID, ein Sensornetzwerk usw. ist das eine andere Geschichte. Außerdem befinden sich die meisten Algorithmen mit geringem Stromverbrauch nicht in einer Standardbibliothek. Ich würde Sie jedoch zu den Parametergrößen im letzten Satz "nicht übertrieben" lenken.

Es ist unklar, ob SHA-3 (2012 ausgewählt) SHA-2 (SHA-256 und SHA-512) "ersetzen" wird. Das NIST hat das sicherlich nicht behauptet. Es scheint, dass SHA-3 initiiert wurde, um bereit zu sein, wenn SHA-2 gebrochen werden sollte, aber SHA-2 erweist sich als ziemlich belastbar.
Meinetwegen. Ich glaube, dass die Widerstandsfähigkeit von SHA-2 von allen Kryptoanalytikern, die sich auf SHA-3-Kandidaten konzentrieren und nicht darauf, SHA-2 zu brechen, künstlich erhöht werden kann. ;)
Auch in der Liste fehlt eine Stream-Verschlüsselung - haben Sie eine Empfehlung @Thomas?
Eine "Stream-Verschlüsselung" ist meist ein spezifischer Verwendungskontext. AES im CTR-Modus ist eine Stream-Verschlüsselung. Wenn wir etwas schneller wollen, können wir uns Algorithmen ansehen, die speziell dafür entwickelt wurden. Das Schlaue ist, sich das [eSTREAM-Portfolio] (http://www.ecrypt.eu.org/stream/) anzusehen. Ich würde Sosemanuk wählen, aber ich bin in dieser Frage etwas voreingenommen.
#4
+6
nealmcb
2011-01-20 22:03:49 UTC
view on stackexchange narkive permalink

Für die Sicherheit bis zum Jahr 2030 empfehlen die versierten Mitarbeiter von NIST, mindestens SHA-224, 2048 Bit für RSA oder DSA, 224-Bit-EDCSA und AES-128 oder 3-Schlüssel-Triple-DES zu verwenden.

Aufgrund ihrer Arbeit hat die US-Regierung Ende 2010 diese Algorithmen abgelehnt: SHA-1, 1024-Bit-RSA oder DSA, 160-Bit-ECDSA (elliptische Kurven), 80/112-Bit-2TDEA (Dreifach-DES mit zwei Schlüsseln)

Weitere Informationen finden Sie in diesem Beitrag und in den NIST-Dokumenten, auf die verwiesen wird: http://securitymusings.com/article/1587/algorithm-and-key-length- Verfall

TripleDES ist aufgrund von zwei kleinen Blockgrößen (64 Bit) gefährdet.
Ich habe gehört, dass das wahr ist, @boleslaw.smialy, z.Für bestimmte authentifizierte Betriebsmodi wäre jedoch ein Zeiger auf weitere Informationen hilfreich.Und ich stimme zu, dass AES im Allgemeinen besser ist als jede dieser Formen von Triple DES.
#5
+5
Bruno Rohée
2011-04-07 20:47:33 UTC
view on stackexchange narkive permalink

Cryptographic Right Answers von Colin Percival aus dem Jahr 2009 ist meiner Meinung nach immer noch ziemlich aktuell und deckt die Frage und mehr ab.

#6
+2
Justin Clarke
2011-01-20 05:16:37 UTC
view on stackexchange narkive permalink

Bei symmetrischen Chiffren ist es möglicherweise besser, AES-128 anstelle von AES-256 zu verwenden, da der Schlüsselplan für AES-256 möglicherweise Schwachstellen aufweist: http://www.schneier.com/blog/archives/ 2009/07 / another_new_aes.html

Ich bin völlig anderer Meinung. Das ist eine völlige Fehlinterpretation dieser Ergebnisse. (Ich kenne mich in diesem Bereich aus.) Diese Ergebnisse gelten nicht für die meisten Anwendungen von AES (oder für die ordnungsgemäße Verwendung von AES). Darüber hinaus gilt keines der dort genannten Ergebnisse für die vollständige 14-Runden-AES-256-Verschlüsselung.
http://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.html hat mehr zu diesem Thema, im Grunde genommen, wenn Sie Ihren Schlüssel zufällig ausgewählt haben (was gute Protokolle tun), sind diese verwandten Schlüsselangriffe ohne jegliche Bedeutung.
#7
  0
Dave
2011-01-20 05:56:56 UTC
view on stackexchange narkive permalink

Wir haben mehrere Verschlüsselungs- und Hashing-Methoden ausgewählt und die gesamte Ausgabe in ein gemeinsames Hex-Format konvertiert. Unsere sensibelsten Daten verwenden SHA-256 und DES-3, während weniger sensible Daten, die leicht erraten werden können, MD5 & RC4 verwenden und wir für einige Dinge auch eine direkte XOR-Konvertierung verwenden. Jede symmetrische Verschlüsselung hat ein eigenes Passwort und alle verschlüsselten Daten sind mit einer Prüfsumme versehen. Es ist gefährlich, sich für alles auf eine Verschlüsselung zu verlassen.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...