¿Cuánto tiempo le tomaría a una computadora grande descifrar una clave privada?

Estoy haciendo una presentación sobre Bitcoins y estaba buscando algunos cálculos para que la gente se sienta segura con el cifrado de clave privada. Primero responda, cuánto tiempo en bytes tiene la clave privada, luego cuántas combinaciones de números contendrá, y luego cuál es la computadora o red de supercomputadoras más rápida y cuánto tiempo tomaría descifrar una clave privada usando esa computadora. Creo que el resultado sería muy educativo según mis propios cálculos. Gracias.

Comentarios

Responder

cuánto mide en bytes la clave privada

32 bytes o 256 bits

entonces cuántas combinaciones de números contendrá

Hay 2 ^ 256 claves privadas diferentes. Eso «es un poco más grande que un 1 seguido de 77 ceros.

cuál es la computadora o red de supercomputadoras más rápida

En su punto máximo alrededor de agosto de 2011, la red de Bitcoin comprobaba 15 billones de hashes sha256 por segundo. (Consulte http://bitcoin.sipa.be/ )

cuánto tiempo tomaría descifrar una clave privada usando esa computadora

Si asumimos que se tarda el mismo tiempo en ejecutar una operación ECDSA que en comprobar un hash sha256 (tarda mucho más), y usamos una optimización que nos permite solo necesitar 2 ^ 128 operaciones ECDSA, luego se puede calcular el tiempo necesario:

>>> pow(2,128) / (15 * pow(2,40)) / 3600 / 24 / 365.25 / 1e9 / 1e9 0.6537992112229596 

Son 600 millones de años.

Eso » Es una estimación muy conservadora del tiempo necesario para romper una sola dirección de Bitcoin.

Editar: se señaló que las computadoras tienden a ser exponencialmente más rápidas con el tiempo, según Ley de Moore . Suponiendo que la velocidad de cómputo se duplica cada año (la ley de Moore dice 2 años, pero erraremos por el lado de la precaución), entonces en 59 años solo tomará 1,13 años. Así que sus monedas estarán seguras durante los próximos 60 años sin un cambio en los algoritmos utilizados para proteger la cadena de bloques. Sin embargo, esperaría que los algoritmos se cambiaran mucho antes de que sea factible romper la protección que brindan.

Comentarios

  • La ley de ‘ de Moore (o similar) probablemente reduciría un poco ese número, pero no lo suficiente como para importar. Siempre que la respuesta sea » más tiempo del que tomaría extraer las monedas almacenadas en esa dirección «, deberíamos estar seguros 🙂
  • Importa, porque las personas merecen saber qué tan seguro es su dinero.
  • Eso ‘ se supone que Moore ‘ puede continuar por otras 6 décadas. Por otro lado, tal vez el control de calidad esté ya generalizado para ese entonces.
  • Excelente respuesta. Vale la pena señalar que el poder acumulativo de la red de Bitcoin ‘ ahora es casi 10 veces mayor que el valor desde que se escribió esta respuesta. Por lo tanto, ‘ s » solo » ~ 653 millones de años de cálculo.

Respuesta

Una clave privada de Bitcoin es un número aleatorio de 256 bits. Sin embargo, la clave pública revela cierta información sobre la clave privada. Los algoritmos más conocidos para romper ECDSA requieren operaciones O (sqrt (n)). Eso significa que se necesitarían 2 ^ 128 operaciones para romper una cuenta de Bitcoin.

La clave ECDSA más grande rota hasta la fecha del tipo que usa Bitcoin tenía 112 bits de longitud. Una cuenta de Bitcoin es más de 4000 billones de veces más difícil de romper.

El único riesgo realista sería la computación cuántica.

Comentarios

  • También debe tenerse en cuenta que incluso se espera que incluso la computación cuántica reduzca el tiempo de pow (2, N) a pow (2, N / 2) que, aunque significativo, no lo está abriendo de par en par. Consulta en.wikipedia.org/wiki/Key_size
  • @GaryRowe. Estás ‘ equivocado. . La reducción a la mitad de la longitud de la clave se aplica a las claves simétricas. La mayoría de los cifrados asimétricos (incluido ECDSA que se utiliza para bitcoint) se pueden romper en tiempo polinómico con una computadora cuántica gracias al algoritmo de Shor ‘ s.Para citar ese artículo de Wikipedia » El consenso general es que estos algoritmos de clave pública son inseguros en cualquier tamaño de clave si son computadoras cuánticas lo suficientemente grandes capaces de ejecutar Shor ‘ estará disponible. «. Si bien hay esquemas de firmas de prueba cuántica, ‘ probablemente inflarían la cadena de bloques mucho .
  • @CodeInChaos Buenos puntos todos – lo siento haber introducido confusión.
  • El ataque O (sqrt (n)) es el ataque de cumpleaños, que es posible en todos los esquemas de cifrado. ¿A qué » información sobre la clave privada » que revela la clave pública se refiere?
  • @dionyziz I ‘ No estoy hablando del ataque de cumpleaños, sino ‘ estoy hablando de revertir una clave pública ECDSA para obtener la clave privada correspondiente. La » información sobre la clave privada » que revela la clave pública es el punto correspondiente a esa clave privada multiplicada por el generador. Esto permite el uso de algoritmos de logaritmos discretos como gran paso, pequeño paso .

Respuesta

Una clave privada de Bitcoin (clave ECC) es un número entero entre uno y aproximadamente 10 ^ 77. Puede que esto no parezca una gran selección, pero para fines prácticos es esencialmente infinito. Si pudiera procesar un billón de claves privadas por segundo, se necesitaría más de un millón de veces la edad del universo para contarlas todas. Incluso peor aún, solo enumerar estas claves consumiría más que la energía total producida por el sol durante 32 años. Este vasto espacio de claves juega un papel fundamental en la seguridad de la red Bitcoin.

Comentarios

  • Chuck Norris ha contado hasta el infinito, dos veces.
  • Chuck Norris le dijo a Satoshi Nakomoto lo que tenía que hacer.

Respuesta

2 ^ 256 = 1.1×10 ^ 77 = número de combinaciones de teclas

2 ^ 128 = 3.4×10 ^ 38 = el número promedio de conjeturas necesarias

Según este sitio web: http://en.wikipedia.org/wiki/TOP500 , la supercomputadora más rápida es la computadora K que tiene 10.51 petaflops.

Un petaflop es 10 ^ 15 FLOPS, instr de punto flotante uctions por segundo.

Hasta ahora todo bien, pero necesito saber cuántos FLOPS se necesitan por conjetura.

[Me aventuraré a adivinar:]

Entre 1,000 y 10,000 FLOPS (o equivalentes enteros) por intento.

10.51×10 ^ 15 operaciones / segundo / 1000 a 10000 operaciones / intento) = 10.51×10 ^ 12 a 10.51×10 ^ 11 intento / segundo.

3.4×10 ^ 38 conjeturas / crack / 10.51×10 ^ 12 conjeturas / segundo = 3.2×10 ^ 25 segundos.

3.2×10 ^ 25 segundos / 60 segundos / minuto / 60 minutos / hora / 24 horas / día / 365.25 días / año = 1.01×10 ^ 18 años

1.01×10 ^ 18 años / 1×10 ^ 9 / 1×10 ^ 9 = 1.014 a 10.014 billones de años.

Entonces, las computadoras en la red Bitcoin son dos veces más rápidas que la computadora de laboratorio más grande.

Comentarios

  • Se requieren exactamente 0 FLOP para pruebe una combinación, ya que FLOP es una operación de punto flotante, y las matemáticas EC solo requieren operaciones con números enteros.
  • Nunca ha habido una computadora en la que haya trabajado que no haya podido ‘ t hacer entero ma th. Así que supongo que la computadora K de Corea del Sur también puede hacerlo.
  • Sí, pero la proporción entre la velocidad de las operaciones de números enteros y de coma flotante difiere significativamente entre el hardware. Dada una determinada distribución de los tipos de hardware que constituyen la potencia minera de Bitcoin ‘, puede dar una estimación, pero la respuesta a la pregunta » cuántos FLOPS se necesitan por intento «, la respuesta es ciertamente 0.
  • número de combinaciones de teclas = 2 ^ 256; número promedio de intentos necesarios = 2 ^ 256/2 = 2 ^ 256 * 2 ^ -1 = 2 ^ 255, ¿nadie se dio cuenta? Bueno, no cambia los mil millones (de mil millones) de años necesarios ..

Respuesta

Hay una vanitygen utilidad (consulte la versión de exploitagency «s que es una bifurcación mejorada de la versión samr7 «s ) que puede darte las estimaciones de cuánto tiempo se tarda en encontrar la clave privada para el patrón dado (consulta: vg_output_timing_console() ). Algunos casos especiales (como los caracteres repetidos) son más difíciles que otros.

La dificultad de encontrar una dirección personalizada depende de su estructura exacta (letras iniciales y números) y la probabilidad de que se dé tal salida a los algoritmos involucrados, que pueden consistir en varios pivotes donde la dificultad cambia repentinamente. bitcoin wiki

Aquí está la tabla que puede se puede encontrar en la página wiki de bitcoin que proporciona tiempos estimados para descifrar claves privadas para los patrones de dirección dados:

bitcoin, vanitygen para intentar atacar direcciones, Vanitygen, tabla de tasas de búsqueda de claves, Mkey / s, CPU / GPU, tabla, decillones de años, tiempo promedio

La siguiente tabla de ejemplo muestra cómo una vanidad cada vez más compleja afecta la dificultad y el tiempo promedio requerido para encontrar una coincidencia solo para esa vanidad, y mucho menos la completa address, para una máquina capaz de buscar 1 millón de claves por segundo.

Usando vanitygen, podría pensar que podría encontrar la clave privada para una dirección determinada. En la práctica, esto se considera imposible.


Ejemplo práctico

Vamos a «crear el siguiente unspendable dirección de bitcoin :

$ unspendable.py 23456789A123456789A12345678 mainnet: 123456789A123456789A12345678Yr8Dxi 

Luego, usando vanitygen puedo calcular el rendimiento en mi máquina (> 240 Kkey / s):

$ vanitygen -q -k -o/dev/null 1 [241.29 Kkey/s][total 2880199][Found 11618] 

Nota: lo anterior se probó en MacBook Pro (Intel Core i7 de 2,3 GHz, DDR3 de 16 GB a 1600 MHz).

Además, puede calcular el tiempo estimado cuando se buscan patrones específicos, por ejemplo,

  • para encontrar los primeros 5 caracteres de 26-35 (pocos segundos):

    $ vanitygen -q -k -o/dev/null 12345 [698.17 Kkey/s][total 8192][Prob 0.2%][50% in 4.5s] 
  • 6 primeros caracteres de 26 a 35 (pocos minutos):

    $ vanitygen -q -k -o/dev/null 123456 [701.39 Kkey/s][total 51712][Prob 0.0%][50% in 4.3min] 
  • 7 caracteres de 26 a 35 (pocas horas):

    $ vanitygen -q -k -o/dev/null 1234567 [471.87 Kkey/s][total 8192][Prob 0.0%][50% in 6.3h] 
  • 8 caracteres de fuera de 26-35 (pocas semanas):

    $ vanitygen -q -k -o/dev/null 12345678 [658.82 Kkey/s][total 2548480][Prob 0.0%][50% in 10.8d] 
  • 9 caracteres ou t de 26-35 (pocos años):

    $ vanitygen -q -k -o/dev/null 123456789 [572.50 Kkey/s][total 1631744][Prob 0.0%][50% in 2.0y] 
  • 10 caracteres de 26-35 (un siglo):

    $ vanitygen -q -k -o/dev/null 123456789A [630.48 Kkey/s][total 118528][Prob 0.0%][50% in 104.2y] 
  • 11 caracteres de 26 a 35 (algunos milenios)

    $ vanitygen -q -k -o/dev/null 123456789A1 [579.78 Kkey/s][total 17348352][Prob 0.0%][50% in 6571.6y] 
  • 12 caracteres de 26 a 35 (cientos de milenios):

    vanitygen -q -k -o/dev/null 123456789A12 [751.61 Kkey/s][total 6720512][Prob 0.0%][50% in 294013.9y] 
  • 13 caracteres de 26 a 35 (miles de milenios, pocos millones de años):

    $ vanitygen -q -k -o/dev/null 123456789A123 [666.93 Kkey/s][total 3886080][Prob 0.0%][50% in 1.921802e+07y] 
  • 14 caracteres de 26- 35 (mil millones de años):

    $ vanitygen -q -k -o/dev/null 123456789A1234 [817.44 Kkey/s][total 3994880][Prob 0.0%][50% in 9.094109e+08y] 
  • 15 caracteres de 26-35 (50 mil millones de años):

    $ vanitygen -q -k -o/dev/null 123456789A12345 [784.31 Kkey/s][total 4633856][Prob 0.0%][50% in 5.497420e+10y] 
  • … 28 caracteres ( decillón de años si «con suerte)

    $ vanitygen -q -k -o/dev/null 123456789A123456789A12345678 [910.34 Kkey/s][total 2723072][Prob 0.0%][50% in 3.981113e+33y] 

Vale la pena señalar que la dirección generada anteriormente tiene 34 bytes, pero la el primer carácter es solo el identificador de red (para bitcoin, generalmente es 1 o 3), y los últimos 4 bytes es solo una suma de comprobación. Para obtener más detalles sobre la dirección, consulte esta página wiki de bitcoin .


Tasas de búsqueda de claves

Seguro La tasa de búsqueda de claves se puede aumentar utilizando una mejor GPU o varias CPU (consulte: -t), pero aún así, las estimaciones pueden ser enormes.

Por ejemplo, aquí está la tabla de tasas de búsqueda de claves en la página wiki de bitcoin :

Vanitygen, tabla de tasas de búsqueda de claves, Mkey / s, CPU / GPU

Y aquí hay algunos informes de usuarios para diferentes GPU:

  • i7 8700K – ~ 3Mkey / c
  • GTX 980TI (v1.42) – ~ 73Mh
  • GTX 1050ti – ~ 23 Mkey / c
  • GTX 1070 – ~ 50Mhkey / s
  • GTX 1080ti – ~ 108 Mkey / c

Fuente: Lista de GPU compatibles (GH-46) .

Respuesta

El único riesgo realista sería la computación cuántica.

O el descubrimiento de un error o falla en los algoritmos del software BTC. Luego, el descifrado podría ser cuestión de segundos, dependiendo del tipo de falla.

Comentarios

  • Hola y bienvenido a StackExchange. ¿Está seguro de que no ‘ no quería hacer de esto un comentario sobre otra respuesta, en lugar de una respuesta independiente por sí misma?
  • @ThePiachu, gracias . Como sabrá, los nuevos usuarios no pueden publicar comentarios, solo respuestas. El moderador puede solucionar este problema. (Solo puedo comentar mis propias respuestas)
  • Oh, usted es moderador. Acabo de notar. 🙂

Respuesta

La computadora más rápida es 150 Petraflops FPC por segundo, no 10 … Prueba y mantenerse al día con los tiempos (NV Link y Volta HCP Cards en los procesadores de potencia de IBM) … puede leer o ver más en el sitio web de team green o en los videos de la Conferencia 2015 en U tube. Dado que la respuesta general parece estar basada en 10 Petraflops como la computadora más rápida del mundo …Debería poder ver claramente qué tan rápido puede cambiar el FPC por segundo. El Departamento de Energía está planeando un sistema 300P que ya se basa en la misma tecnología.

El punto es que la gente de bitcoin que le dice cuán seguro es basado en 10P ya tiene las matemáticas básicas mal entre 15 y 30 veces porque evidentemente no saben tanto como piensan. Las mejoras son Sin depender tampoco de la Ley de Moore, los avances recientes y las limitaciones actuales tienen que ver con una Ley completamente diferente que es lo que NV Link resolvió lo mejor que pudo y mejoró el tiempo de computación tan bien. Este es solo el ejemplo de hoy de cómo su La teoría de mil millones de billones de años ya está equivocada por un factor de 15-30 y continuará equivocándose cada año a un ritmo mucho más alto de lo que suponen. En 30 años o menos, bitcoin en su nivel actual será fácilmente descifrado por cualquiera que tenga entre 40 y 50.000 dólares para gastar (en dinero de hoy) o que pueda usar cualquier cantidad de supercomputadoras universitarias o corporativas.

Cualquiera que realmente crea que la tecnología de 50 años va a mantener algo digitalmente seguro durante 50 años más tarde, francamente, no es el tipo de persona que deberías ser p prestar CUALQUIER atención a … ¿Eso significa que Bitcoin es peligroso hoy? En realidad no, pero si las mismas personas están a cargo de su seguridad en 30 años, son las mismas personas despistadas que están aquí ahora mismo.

Comentarios

  • NVLink es una tecnología que permite una comunicación más rápida y con mayor eficiencia energética entre los nodos de una supercomputadora. Ninguno de ellos es realmente una preocupación si ‘ está construyendo un descifrador de claves distribuido.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *