domingo, 2 de agosto de 2009

Criptosistema El Gamal

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

3 comentarios:

  1. 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.

    ResponderEliminar
  2. disculpa es K=(C1)Xb mod P

    ResponderEliminar
  3. Si 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.

    Gracias por haberte fijado :)

    ResponderEliminar