Ist die FIPS 140-2-Krypto-Zertifizierung für Bitcoin wichtig?

Ich implementiere einen Teil des Bitcoin-Clients in C# und habe festgestellt, dass ich die Wahl zwischen FIPS 140-2 und nicht zertifizierten Versionen von SHA256 habe. Angeblich geben beide Versionen den gleichen Hash aus.

Spielt die Wahl der SHA-2-Bibliothek für Bitcoin eine Rolle? Ist die FIPS-2-Bibliothek in Mono und Mobilgeräten vorhanden?

"Trifft die Wahl der SHA-2-Bibliothek für Bitcoin zu?" Macht es was? Ist in dem Satz ein Grammatikfehler?
@HighlyIrregular Hoppla & TY. Ich habe beim Tippen auf meinem Handy ein Wort verpasst. Unvollständige Sätze scheinen

Antworten (2)

Sie sollten sich grundsätzlich nie für FIPS-140 entscheiden, es sei denn, Sie haben keine andere Wahl. Die Einhaltung von FIPS-140 wird in erster Linie für Personen bereitgestellt, die FIPS-140 aus regulatorischen oder politischen Gründen einhalten müssen.

Beachten Sie, dass dies nicht bedeutet, dass die FIPS-140- Validierung schlecht ist. Es ist toll. Wenn es Fehler oder Probleme findet, ist das ein reiner Gewinn. Wenn Sie die Wahl zwischen einer FIPS-validierten und einer nicht validierten Implementierung haben, ist erstere die bessere Wahl. Aber das hat nichts damit zu tun, ob Sie FIPS-140-Modi aktivieren.

Ihre Implementierung wurde FIPS-validiert. Beschädige es nicht im Gehirn.

Würde positiv stimmen, wenn Sie sagen würden, warum FIPS-140 weniger wünschenswert ist.
Zu viele Gründe. Angenommen, Sie finden einen Fehler in Ihrem FIPS-validierten Code. Bezahlen Sie 35.000 US-Dollar für die Behebung (da Sie eine neue Validierung benötigen) oder lassen Sie den Fehler drin? Und FIPS verlangt, dass Sie Dinge kaputt machen, die perfekt funktionieren können. Außerdem werden FIPS-Modi unter der Annahme beibehalten, dass niemand sie jemals aktivieren wird. Sie sind nur da, damit Sie ein Häkchen in das Kästchen „FIPS validiert“ setzen können. Wenn Sie den FIPS-Modus aktivieren und etwas nicht funktioniert und Sie einen Fehlerbericht einreichen, erhalten Sie die Meldung „FIPS-Modus deaktivieren“.

Hier sind einige Leistungsstatistiken, die ich bisher für meine C#-Implementierung erstellt habe:

Auf einen einzelnen öffentlichen ECC-Schlüssel (nach der ECC-Operation) kann der Base58Checked-Algorithmus mit dieser Rate angewendet werden

   Algorithm                             Time for 100,000 Base58Check(byte[] key)
   ------------------------------       ---------------------------------------------
   SHA256Managed()                       4500ms
   SHA256CryptoServiceProvider()         3640ms  <--- CSP FIPS version

Also ja, die FIPS-validierte Version ist schneller und wahrscheinlich besser.