Se trata de un sistema de clave pública.
1- Se selecciona un primo p
2- Se selecciona un elemento primitivo a
3- El receptor selecciona un numero secreto Xb = clave privada
4- Con Xb genera su clave pública Yb = (a) Xb mod p
5- Par de claves (Xb, Yb) Clave pública, ojo porque al enviarse las claves libremente deben ser certificadas, mediante una autoridad de certificación.
6- Emisor selecciona K1 donde 0 < K1 < p - 1
calcula K = (Yb)K1 mod p
7- Si un emisor cifra el mensaje M
C1 = (a)K1 mod p
C2 = K * M mod p
y envía (C1, C2)
8- El receptor recibe M (C1, C2)
K = (C1)Xb mod p (Gracias Dexter)
9- Para extraer el mensaje
C2 * (K) -1 mod p
NOTA: la nomenclatura (C1)Yb, significa, C1 Elevado a Yb
(K) -1 es inverso de K, en la aritmetica modular finita p
disculpa tengo entendido que para calcular K (extraer el mensaje) es Xb y no Yb, entonces quedaria K= (C1)Yb mod P. el problema seria como encontramos la clave privada Xb.
ResponderEliminardisculpa es K=(C1)Xb mod P
ResponderEliminarSi tienes, razon, es una errata, al parecer he cometido un pequeño error, muchas gracias, el descifrado debe hacerse con la clave privada, y el cifrado con lo pública, no tiene sentido, que se hagan las dos cosas con la misma clave, Yb.
ResponderEliminarGracias por haberte fijado :)