Revisé muchos artículos que dicen que es muy imposible romper la clave pública de bitcoin y obtener una clave privada de ella. Entiendo que la clave pública contiene alguna información de su clave privada correspondiente. ¿Alguien puede sugerirme algunos pasos para el cálculo manual e invertir la multiplicación escalar de la clave pública para obtener la clave privada? No estoy buscando ningún script para hacer esto, pero estoy buscando pasos matemáticos para revertir la clave pública a clave privada.
Primero , puede ver en este foro cómo calcular la clave pública a partir de la clave privada utilizando las matemáticas de curva elíptica (EC): ¿Cómo se obtiene una clave pública de Bitcoin a partir de una clave privada?
El punto G indicado es el "punto base" en EC y es un parámetro conocido. Puede ver todos los parámetros utilizados por la CE utilizados en bitcoin aquí: https://en.bitcoin.it/wiki/Secp256k1
En resumen, la EC para bitcoin se conoce como secp256k1 : y^2 = x^3 + 7 , y la clave pública está formada por duplicación de puntos repetitivos y multiplicaciones de puntos escalares .
Entonces, como puede ver, el problema es tratar de revertir una serie de multiplicaciones modulares , o lo que en matemáticas EC se llama el problema del logaritmo discreto (en analogía con el problema del logaritmo discreto real en otros criptosistemas como DSA y DH): dados dos puntos P y Q (que pertenecen a un subgrupo de un EC) encuentran el entero x que satisface la ecuación Q = x·P
Así que ahora puedes usar diferentes algoritmos para intentar revertir la operación: los más conocidos son el algoritmo baby-step, el algoritmo de paso gigante y el método rho de Pollard .
Puede encontrar una descripción paso a paso de ellos aquí: http://andrea.corbellini.name/2015/06/08/elliptic-curve-cryptography-breaking-security-and-a-comparison-with-rsa/
Creo que esto puede servir como punto de partida.
Esto simplemente no es prácticamente posible ; es una de las premisas básicas de la criptografía de clave pública :
La fuerza de un sistema de criptografía de clave pública se basa en el esfuerzo computacional ( factor de trabajo en criptografía) requerido para encontrar la clave privada de su clave pública emparejada. Si es así, la seguridad efectiva solo requiere mantener privada la clave privada; la clave pública se puede distribuir abiertamente sin comprometer la seguridad.
A menos que alguien rompa el algoritmo criptográfico utilizado para generar las claves, su mejor opción es simplemente generar claves aleatorias y verificar si la clave pública correspondiente coincide con la que ya tiene. (Bueno, eso es una ligera exageración, pero entiendes el punto).
Creo que no es posible recuperar la clave pública, alguien habría aplicado el poder de la supercomputación para recuperar todos los bitcoins y volverse súper rico.
Una clave pública se deriva de una clave privada. Para derivar la clave pública, necesita una curva elíptica, Bitcoin eligió usar secp256k1. Su clave pública es su clave privada multiplicada por el punto generador (que es un conjunto constante en el estándar secp256k1), por lo que es un punto en la curva
Willtech
S0YS0
math
pila, hay compatibilidad con LaTeX allí en lugar de resaltado de código ... Por lo que he leído, si puede hacer que el propietario de una dirección determinada firme cosas incorrectamente, consulte el algoritmo de generación de firma Wiki (saltar a . ..it is also crucial to select different k for different signatures
... específicamente), entonces es posible encontrar la clave privada sin una búsqueda exhaustiva. Nota al margen, esto podría usarse para grabar datos a través de claves privadas reveladas intencionalmente como una transacción final.