Claves privadas de fuerza bruta

En esta publicación de un ingeniero de Ethereum tomada de la wiki de Ethereum sobre claves privadas de fuerza bruta, escribe:

"Las claves públicas tienen un tamaño tal que, en ausencia de un avance en la solución del problema del logaritmo discreto, la fuerza bruta no es práctica para cualquier cantidad concebible de poder de cómputo. Con 2^128 combinaciones posibles, y si asumimos que una computadora moderna puede calcular, digamos, un mil millones por segundo (que es una sobreestimación masiva), se necesitaría un millón de computadoras de este tipo ~ 5e15 años para forzar su clave. mil millones de años".

Sin embargo, según esta pregunta, una clave privada tiene una longitud de 256 bits. En este caso, ¿por qué la cita se refiere a 2^128 en lugar de 2^256?

2^128 es el tamaño de la búsqueda de colisiones de fuerza bruta en 256 bits debido a la paradoja del cumpleaños. Así que tal vez hay un vínculo. Pero luego solo tienes que encontrar una colisión entre direcciones de 160 bits, por lo que 2^80 operaciones, que es mucho menos...
Mis cálculos podrían estar equivocados, pero cuando cambié el número a 2^80 manteniendo el resto de los parámetros iguales, solo tomaría 38 años.

Respuestas (1)

Descargo de responsabilidad: No es mi dominio de experiencia.

Ethereum utiliza criptografía de curva elíptica (ECC) por seguridad. Se pueden realizar pruebas ingenuas de fuerza bruta de una clave de 256 bits probando todas las combinaciones de 2^256. Sin embargo, de manera similar a cómo es innecesario probar cada número entre 2y n - 1para probar si nes primo (el método de la escuela secundaria en el peor de los casos es O(n^0.5), pero existen algoritmos incluso mejores ), ECC se puede romper resolviendo el problema de registro discreto de curva elíptica relevante de manera más eficiente .

Los algoritmos más conocidos para resolver el problema logarítmico discreto de la curva elíptica funcionan en el peor de los casos O(n^0.5); (2^256)^0.5produce 2^128pasos para la fuerza bruta de una clave de 256 bits. Por lo tanto, como máximo 2^128se requieren pruebas para descifrar una clave de 256 bits utilizada para Ethereum. Tenga en cuenta que esto no está relacionado con la paradoja del cumpleaños, que pertenece a las colisiones; el hecho de que ambos sean la raíz cuadrada de nes pura coincidencia.