¿Por qué alguien no puede crear una firma digital válida sin conocer su clave privada?

Entiendo de las siguientes dos publicaciones que el remitente no muestra las claves privadas cuando los mineros de bitcoin validan su transacción:

¿Qué sucede con la clave privada en el pago?

¿Cómo se pueden verificar las transacciones sin la clave privada?

En su lugar, se proporciona una firma digital que se basa en la clave privada y, según tengo entendido, esa firma digital es verificable cuando se "compara" con la clave pública.

Entonces, ¿por qué alguien no puede generar una firma digital verificable usando solo la clave pública de otra persona?

O dicho de otra manera, citando una respuesta de la primera publicación mencionada anteriormente:

"No se puede crear una firma válida sin acceso a la clave privada" , ¿por qué no?

Respuestas (3)

Bitcoin usa algo llamado Algoritmo de firma digital de curva elíptica (ECDSA) para firmar y verificar transacciones. Lea el artículo de Wikipedia vinculado para conocer el proceso exacto de cómo funciona ECDSA. Si comprende cómo funciona el operador de módulo, debería tener sentido por qué no puede hacer una firma sin la clave privada.


Es un poco difícil para mí explicar esto, ya que se basa en algunas matemáticas complejas, pero lo intentaré.

Para producir una firma ECDSA válida, necesita la clave privada, que es un número entero grande. Se usa explícitamente en el algoritmo de creación de firmas, pero la clave pública no. Además, la clave pública no es un número entero como la clave privada; más bien es un punto en una curva elíptica. Entonces, incluso si conoce la clave pública, no puede crear una firma con ella porque no es la clave privada y no puede recuperar la clave privada de la clave pública.

La clave privada no se puede recuperar de la clave pública debido a un problema llamado Problema del logaritmo discreto de curva elíptica. De Wikipedia :

se supone que encontrar el logaritmo discreto de un elemento de curva elíptica aleatoria con respecto a un punto base conocido públicamente no es factible: este es el "problema del logaritmo discreto de curva elíptica" (ECDLP).

La clave privada es el logaritmo discreto. Aunque esto es una suposición, se ha demostrado en la práctica que ECDLP es un problema difícil, es decir, es difícil encontrar el registro discreto dado un punto base y un punto de clave pública. Por lo tanto, no puede obtener la clave privada que se requiere en ECDSA para producir la firma.

gracias, esto definitivamente ayuda, aunque no puedo afirmar que entiendo completamente la respuesta, el solo hecho de saber que no tenía ningún defecto simple en mi comprensión de cómo funciona Bitcoin es útil.

"No se puede crear una firma válida sin acceso a la clave privada", ¿por qué no?

En pocas palabras: porque no existe un algoritmo conocido hoy en día para hacerlo.

Esta es una característica de las firmas digitales de la criptografía de clave pública. Probablemente esté fuera del alcance de este sitio explicar cómo funciona la criptografía. Tal vez https://crypto.stackexchange.com/ sería un mejor lugar para preguntar.