¿Es la frase semilla de 12 palabras lo suficientemente segura?

¿Es la frase semilla de 12 palabras (como la que usa Electrum, por ejemplo) lo suficientemente segura para generar una billetera fuera de línea?

Mi entendimiento es este: el grupo de 2048 palabras genera 11 bits de entrofia por palabra. 12 palabras en semilla hacen un total de 132 bits de entrofia.

¿Se considera esto lo suficientemente seguro?

No estoy hablando de ser resistente a la computación cuántica, solo de que no sea factible descifrar usando la fuerza bruta dada la potencia informática esperada en el futuro previsible.

Respuestas (4)

128 bits generalmente se considera más que suficiente; 132 bits ciertamente son suficientes.

¿Se considera esto lo suficientemente seguro?

Nada es "suficientemente seguro" si no sabemos el costo.

De acuerdo, si tiene $ 100k en bitcoins, la frase de 12 palabras es lo suficientemente segura.

Si la frase de 12 palabras es la semilla del "Método para destruir el Universo", recomendaría agregar al menos 11 bits de entropía y usar 13 palabras.

Así que digamos que tengo $ 100k. ¿Puede explicar por qué esto se considera seguro?
Porque el atacante tiene que gastar muchos más fondos para forzar su clave. Nadie te atacará.
Para poner en perspectiva las búsquedas exhaustivas, la red Bitcoin hasta la fecha ha realizado aproximadamente 83 bits de trabajo. Esto es con una inversión de cientos de millones de dólares, probablemente millones de chips ASIC producidos y actualmente más de 150 megavatios de gasto de energía.
@Bitcoin tu comentario es la respuesta que estaba buscando. Gracias.
+1 maldita sea, ya publiqué el método para destruir el universo en la cadena Bitcoin a 128 bits. ya veremos.

En resumen: la semilla de 12 palabras tiene suficiente entropía para estar a salvo de un ataque de fuerza bruta.

En primer lugar, no todos los 132 bits son aleatorios. La semilla usa algún tipo de suma de control.

Hablemos de 128 bits de entropía.

Imaginemos el siguiente ataque:

Tomaremos mil millones (10^9) del hardware de minería más potente en 2017 (13 TH/s cada uno). Haremos un ataque de fuerza bruta de 1000 años para comprometer cualquiera de los miles de millones (10 ^ 9) de billeteras existentes con monedas dentro.

Este ataque comprobará el siguiente número de combinaciones de semillas:

10^9 * (13 * 10^12) * (1000 * 365 * 24 * 3600) = ~ 10^33 combinaciones marcadas

128 bits de entropía equivalen a ~ 10^38 combinaciones totales

Significa que el ataque dado tiene la siguiente posibilidad de romper una o más de 10 ^ 9 billeteras :

1/10^5 = 0.001%

PD No olvides que es una tarea extra complicada averiguar si esta o aquella semilla contiene dinero. El hardware de minería de hash tiene una tarea mucho más simple. No tenemos hardware para verificar semillas al mismo ritmo que los ASIC modernos.

bueno, el ataque en realidad tendría que atacar claves privadas/públicas, que es al menos 1000 veces más lento que el hashing. pero cerca

La seguridad en bits de un mnemotécnico de 12 palabras que tiene una suma de comprobación válida según BIP39 no es de 132 bits, sino de 128 bits, ya que los últimos 4 bits se determinan en función de los primeros 128 bits, la "entropía" inicial.

  • Aunque el rango de 2^132 de todos los mnemotécnicos posibles es 16 veces mayor que 2^128 (donde (2^128)*16 = 2^132), la suma de verificación no se puede predecir a menos que un atacante pueda romper SHA256, ya que la suma de verificación se calcula en función del resumen hash de los 128 bits principales formateado como una matriz de bytes.

Entonces, la idea con la suma de verificación era ralentizar a un atacante para que no buscara en todas las mnemotecnias posibles de 12 palabras, de las cuales hay 2^132, aunque el número de válidas es 2^128 en términos de una suma de verificación válida (como si reduciendo la fuerza de 12 palabras a 11,6363636364 palabras, ya que la suma de comprobación completa parte de la última palabra), ya que un atacante tendría que ejecutar el algoritmo SHA256 cada vez, lo que ralentizaría su búsqueda de fuerza bruta.

  • Por lo tanto, mientras que 2048 ^ 12 = 2 ^ 132, la suma de verificación significa que el rango de mnemónicos válidos para la suma de verificación es 2048 ^ 11.6363636364 == 2 ^ 128.

En resumen, creo que un mnemotécnico con una suma de verificación válida sería más seguro que uno sin suma de verificación, sobre la base de que probablemente sea menos probable que SHA256 se descifre pronto, lo que de otro modo aceleraría una posible búsqueda de fuerza bruta de todos los mnemotécnicos.

  • Esto significa que un atacante aún necesita buscar en el rango de 2^132 para encontrar uno de los 2^128 válidos (es decir, no hay forma de buscar solo en el rango de los válidos, a menos que SHA256 esté roto).

Nota: si quisiera elevar su seguridad al cuadrado (es decir, elevarla a la potencia de 2), una regla nemotécnica de 24 palabras que representa 264 bits (menos una suma de verificación de 8 bits) sería el cuadrado de dos reglas nemotécnicas de 12 palabras en términos de bit de seguridad como 2^128*2^128 == 2^256.

Un salto tan grande en la seguridad podría ayudar a proteger a un usuario más tarde del algoritmo de Grover que se ejecuta en una computadora cuántica lo suficientemente rápida que podría realizar una búsqueda de fuerza bruta de n tiempos en el "cuadrado de n tiempos", en comparación con las computadoras clásicas que requieren n -hora.

De: https://en.wikipedia.org/wiki/Grover%27s_algorithm :

El algoritmo de Grover podría aplicar fuerza bruta a una clave criptográfica simétrica de 128 bits en aproximadamente 2^64 iteraciones o una clave de 256 bits en aproximadamente 2^128 iteraciones.

En otras palabras, una regla nemotécnica de 12 palabras tendría su seguridad reducida a 64 bits (considerada insegura) en términos de seguridad informática clásica, mientras que una regla nemotécnica de 24 palabras solo se reduciría a 128 bits en el mismo escenario.