next up previous contents
Siguiente: Digital Signature Standard Un nivel arriba: Diversos esquemas de autentificación Anterior: Esquema RSA

Esquema ElGamal

Recordamos que todo usuario posee una llave pública (pU,xU,yU) y una llave secreta zU, donde p es primo, xU es un elemento primitivo de $Z\!\!\!Z_p^*$ e $y_U=x_U^{z_U}\mbox{\rm mod }p$. Se tiene pues: Un intruso S que conociese el mensaje m buscaría generar los correspondientes coeficientes (u,e) de la firma. Si conociese u, el exponente e podría conocerse calculando $\log_u\left(x_U^m y_U^{-u}\right)$. Si conociese e, el elemento u podría conocerse tratando de reslver la ecuación: $x_U^m=y_U^u u^{e}\mbox{\rm mod }p$. Algún otro intento consistiría en tratar de calcular simultáneamente u,e. No se conoce de un algoritmo eficiente que lo haga. Tampoco se ha demostrado que no exista tal algoritmo. Sn embargo, de manera aleatoria un intruso podría generar mensajes firmados: Sean $i,j\in [\![0,p-2]\!]$ tales que j y p-1 sean primos relativos. Definamos:

\begin{eqnarray*}u &=& x^i y^j\mbox{\rm mod }p \\
e &=& -uj^{-1}\mbox{\rm mod ...
...{\rm mod }(p-1)\right)\\
m &=& -eij^{-1}\mbox{\rm mod }(p-1)
\end{eqnarray*}


Entonces (u,e) es una firma de m con la llave pública (p,x,y). En efecto, módulo p valen las igualadades siguientes:

\begin{displaymath}y^u u^e = y^u \left(x^i y^j\right)^{-uj^{-1}} = x^{-uij^{-1}} = x^m.\end{displaymath}

Un segundo procedimiento para generar firmas legítimas sobre ciertos mensajes es el siguiente: Supongamos conocido unmensaje m con su firma correspondiente (u,e). Sean $h,i,j\in [\![0,p-2]\!]$ tales que hu-je y p-1 sean primos relativos. Definamos:

\begin{eqnarray*}u' &=& u^h x^i y^j\mbox{\rm mod }p \\
e' &=& eu'\left(hu-je\r...
...(hm-ie\right)\cdot \left(hu-je\right)^{-1}\mbox{\rm mod }(p-1)
\end{eqnarray*}


Entonces (u',e') es una firma de m' con la llave pública (p,x,y).
next up previous contents
Siguiente: Digital Signature Standard Un nivel arriba: Diversos esquemas de autentificación Anterior: Esquema RSA
Guillermo Morales-Luna
2000-10-29