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

Toy ECDSA

Genera claves, firma un entero y comprueba su firma. Cambia el mensaje para observar el resultado de la verificación.

Parámetros públicos

E: y² = x³ + ax + b mod p · B = dA

Punto generador A = (x, y, 1)

Se comprueba que p y q sean primos probables, que la curva sea no singular y que qA = O. Los ejemplos grandes tienen orden 4q; A genera el subgrupo de orden q.

1. Claves y firma

0 < m, d < q
R = k_E A · r = x_R mod q
s = (m + dr) k_E⁻¹ mod q

2. Verificación

Introduce la clave pública B y la firma recibida. Se usa el mensaje m del panel anterior.

3. Experimentos

Alice y Bob generan claves independientes, firman m y verifican las firmas y un mensaje modificado. Todo el intercambio se simula en este navegador.

La búsqueda de d usa baby-step giant-step y busca 1 ≤ d ≤ min(q−1, 2³²−1). Los ejemplos de 128 a 1024 bits sirven para probar la aritmética; sus curvas supersingulares no son parámetros de producción.

Práctica didáctica en C17 y WebAssembly. Los cálculos y la clave privada permanecen en este navegador. rand() y la aritmética sin tiempo constante no son adecuados para firmas reales.