¿Importa la certificación criptográfica FIPS 140-2 para Bitcoin?

Estoy implementando parte del cliente de Bitcoin en C# y noté que tengo la opción de elegir entre FIPS 140-2 y versiones no certificadas de SHA256. Supuestamente ambas versiones dan el mismo hash.

¿Importa la elección de la biblioteca SHA-2 para Bitcoin? ¿Existe la biblioteca FIPS-2 en Mono y dispositivos móviles?

"¿La elección de la biblioteca SHA-2 para Bitcoin?" ¿Qué? ¿Hay un error gramatical en esa oración?
@HighlyIrregular Vaya y TY. Me perdí una palabra mientras escribía en mi teléfono celular. Las oraciones incompletas parecen

Respuestas (2)

Básicamente, nunca debe elegir FIPS-140 a menos que no tenga otra opción. El cumplimiento de FIPS-140 se proporciona principalmente para las personas que deben cumplir con FIPS-140 por motivos normativos o de políticas.

Tenga en cuenta que eso no quiere decir que la validación FIPS-140 sea mala. Es genial. Si encuentra errores o problemas, es una victoria pura. Si puede elegir entre una implementación que ha sido validada por FIPS y otra que no, la primera es la mejor opción. Pero eso no tiene nada que ver con habilitar los modos FIPS-140.

Su implementación ha sido validada por FIPS. No le hagas daño cerebral.

Votaría a favor si dijera por qué FIPS-140 es menos deseable.
Demasiadas razones. Por un lado, digamos que encuentra un error en su código validado por FIPS. ¿Paga $ 35,000 para arreglarlo (ya que necesitará una nueva validación) o deja el error? Y FIPS requiere que rompas cosas que son perfectamente capaces de funcionar. Además, los modos FIPS se mantienen bajo el supuesto de que nadie los habilitará nunca. Solo están allí para que pueda poner una marca de verificación en el cuadro "FIPS validado". Si habilita el modo FIPS y algo no funciona y presenta un informe de error, se le indicará "deshabilitar el modo FIPS".

Aquí hay algunas estadísticas de rendimiento que he encontrado hasta ahora para mi implementación de C#:

Una sola clave pública ECC (después de la operación ECC) puede tener aplicado el algoritmo Base58Checked a esta tasa

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

Así que sí, la versión validada por FIPS es más rápida y probablemente mejor.