crypto
← Volver a las prácticas Práctica 07

Toy ECDH

Recorre la multiplicación escalar bit a bit y acuerda un punto secreto con ECDH. Compara los algoritmos RTL y LTR con enteros de hasta 2048 bits.

Parámetros públicos

y² = x³ + ax + b mod p

P para kP; G para ECDH (x1, y1, z1)

Puntos normalizados (x1, y1, 1); infinito (0, 1, 0). ECDH exige p de al menos 7 bits y puntos finitos. La validación de p usa 32 rondas de Miller–Rabin.

Multiplicación escalar

Compara todas las iteraciones: RTL recorre los bits desde el menos significativo y LTR desde el más significativo.

Cada fila muestra Q y P al terminar la iteración. En RTL, P ya está duplicado; en LTR, P permanece fijo.

Simulación local de ECDH

A = rG · B = sG
K_A = rB · K_B = sA

Alice usa RTL y Bob usa LTR. Los secretos del ejemplo son públicos y sirven para repetir la prueba.

Intercambio entre dos equipos

Acuerden p, a, b y G. Cada persona genera su secreto en su equipo y comparte únicamente A o B. Introduce aquí la clave pública recibida y calcula tu K.

B · clave pública recibida (x2, y2, z2)

Implementación didáctica: rand() genera los secretos de práctica. No incluye autenticación, KDF, verificación del orden del subgrupo ni ejecución de tiempo constante. El resultado K es un punto, no una clave lista para cifrar.