Cómo generar una clave pública a partir de una clave privada utilizando el algoritmo de firma digital de curva elíptica

Estoy tratando de entender la base gráfica que subyace al discreto algoritmo logarítmico de firma digital de curva elíptica (ECDSA) presentado en el Capítulo 4 de "Dominar Bitcoin" por Andreas Antonopolous: https://github.com/aantonop/bitcoinbook/blob/develop /ch04.asciidoc

Andreas dice que un punto en una curva elíptica se puede agregar a sí mismo dibujando una tangente, encontrando la intersección y luego reflejando el nuevo punto en el eje x. Esto no tiene sentido para mí, pero por ahora solo creeré ciegamente. Entonces K = k * G, donde k es la clave privada, G es un "Punto generador" constante y K es la clave pública.

Luego muestra la figura adjunta que muestra gráficamente cómo pasar de G a 8G.

  1. ¿Es "8" la clave privada en este ejemplo?
  2. Dados K ​​y G, no parece que esta función sea irreversible. ¿Me estoy perdiendo algo o solo se vuelve irreversible en el equivalente logarítmico discreto?ingrese la descripción de la imagen aquí
¿Cómo te imaginas pasar de 2G a G?

Respuestas (3)

  1. Sí.
  2. Imagina que todo lo que puedes ver es el punto en G y el punto en 8G. Está tratando de determinar cuántas veces se agregó el punto. Y el número no es 8, está entre 1 y 2^256.

¿Me estoy perdiendo algo o solo se vuelve irreversible en el equivalente logarítmico discreto?

No tengo idea de lo que eso significa; Eso lo dejo para que otro lo responda.

Técnicamente hablando, no es irreversible. El algoritmo de fuerza bruta ciega (elija la clave privada = 1, pruebe, si no es la clave pública correcta, incremente la clave privada y vuelva a intentarlo) funcionaría, aunque el algoritmo más conocido para resolver el DLP de curva elíptica toma aproximadamente O (n ^ (1 /2)) pasos, donde n es el orden del Grupo de Curva Elíptica. Para Secp256k1, eso significa alrededor de 2^128 pasos, lo cual es completamente inviable (hasta que las computadoras cuánticas se conviertan en realidad).
Claro, creo que en realidad es solo un paso de bebé genérico o un método Pollards Rho, que son algoritmos de colisión. Pollard Rho es un poco más lento pero requiere mucha menos memoria. Puede buscarlos o puedo enviarle mi tesis de honor, que hice en ECC.
@WizardOfOzzie ¡Buena lectura! Creo que querías enlazar a royalforkblog.com/2014/09/04/ecc
Estoy en Android, así que no puedo editar, pero siéntete libre de eliminar el enlace incorrecto o editarlo si no lo hago primero.

En realidad, por lo que entendí sobre ECDSA, al leer este blog , en K= k*G, k no es la clave principal, es solo un número aleatorio. y la coordenada x de K se conoce como R y usando R, k y la clave privada determinamos S.

R = coordenada x (k*G)

S = k^-1 (z + dA * R) módulo p

donde dA es la clave privada

Lea ese blog para obtener una buena comprensión de ECDSA.

Ahora, para determinar k a partir de K y G, no hay resta de puntos ni división de puntos, por lo que no podemos obtener el número aleatorio k directamente de K y G mediante K/G. Pero como @StephenM347 mencionó en el comentario, un ataque de fuerza bruta es posible, pero no es posible con la potencia computacional actual.

¿Es "8" la clave privada en este ejemplo?

Respuesta: Sí.

Dados K ​​y G, no parece que esta función sea irreversible. ¿Me estoy perdiendo algo o solo se vuelve irreversible en el equivalente logarítmico discreto?

Evitando informaciones técnicas más profundas, esa función es de hecho reversible. La suposición de su seguridad se basa en el hecho de que el tiempo para calcular la operación inversa es demasiado para ejecutarlo prácticamente con la tecnología de potencia de procesamiento actual.

De todos modos, cualquier avance en la ponderación de la computación cuántica podría representar un paso más hacia el debilitamiento del cifrado basado en la curva elíptica ECDSA.

Como es bien sabido, si el control de calidad se hiciera realidad en términos de equipos, cualquier algoritmo de encriptación basado en el método mencionado se volvería repentinamente vulnerable sin tanto esfuerzo.

Es por eso que apoyo firmemente los proyectos de criptomonedas que respaldan las firmas XMSS en lugar de ECDSA para la resiliencia cuántica a largo plazo. Un buen ejemplo de la última tecnología mencionada es QRL https://theqrl.org