{طاهر الجمل (Taher Elgamal), 1985}
Fonamentat sobre l'algorisme
DH, i base pel
DSA i
l'ECDSA
(Elgamal es pot combinar per a fer signatura o xifrat; veurem només la combinació de signatura que és
de la que partirem per a veure el DSA i l'ECDSA)
Tots aquests algorismes es basen en
els problemes
CDH i
DDH
(i aquests, del DLP)
Donats $\mathbb{Z}_{p}^{*}$ ($p$ primer), i $\alpha$ un generador (per tant $\mathbb{Z}_{p}^{*}$ és cíclic)
$x \equiv \log_{\alpha} \beta \pmod p$
és computacionalment difícil
$\Downarrow$
farem servir aquest fet per a generar le claus:
la privada serà el logaritme (modular) de la pública
Tots els usuaris poden compartir els paràmetres bàsics:
el grup cíclic $\mathbb{Z}_{p}^{*}$ i un generador $\alpha$
Les mateixes consideracions de DH per a $p$ i $\alpha$ apliquen aquí
Cada usuari $\text{u}$ ha de generar:
Gestió:
Nota: comparem el cost de generació de claus
d'Elgamal (1 random + 1 exp) amb el d'RSA (2 primers)
La signatura d'$m$ és la tupla $(r, s)$
A partir de la recepció del missatge $m$ i la signatura $(r,s)$
$\text{Nota: }\left\{ \begin{eqnarray} v_2 &=& \alpha^{h(m)} \bmod p \\ &=& \alpha^{a_\text{u}r+ks \bmod{(p-1)}} \bmod p \\ &=& \color{blue}{\alpha^{a_\text{u}r+ks} \bmod{p}} \\ v_1 &=& (y_\text{u})^{r} r^s \bmod p \\ &=& \alpha^{a_\text{u}r} \alpha^{ks} \bmod{p} \\ &=& \color{blue}{\alpha^{a_\text{u}r+ks} \bmod{p}} \end{eqnarray} \right.$
$\text{Nota: }\left\{ \begin{eqnarray} v_2 &=& \alpha^{h(m)} \bmod p \\ &=& \alpha^{a_\text{u}r+ks \bmod{(p-1)}} \bmod p \\ &=& \color{blue}{\alpha^{a_\text{u}r+ks} \bmod{p}} \\ v_1 &=& (y_\text{u})^{r} r^s \bmod p \\ &=& \alpha^{a_\text{u}r} \alpha^{ks} \bmod{p} \\ &=& \color{blue}{\alpha^{a_\text{u}r+ks} \bmod{p}} \end{eqnarray} \right.$
Generació | Signatura | Validació | |
RSA | molt lent | mig | ràpid |
Elgamal | molt ràpid | mig | mig |
{NIST, 1991}
Directament basat en
l'algorisme Elgamal en combinació de signatura
DSA (Digital Signature Algorithm) actualment està sent desplaçat per la variant sobre corbes el·líptiques (ECDSA)
DSA té una seguretat equivalent a Elgamal però:
Aquests dos fets fan que Elgamal no es faci servir per signatura, en favor de l'equivalent DSA
Elgamal $\rightarrow$ DSA: reduïm $r$ i $s$ mòdul $\color{red}{q}$, on $\color{red}{q | (p-1)}$:
\[\begin{eqnarray} \text{random }k &\rightarrow& 0 < k < p-1 \\ r &=& \alpha^k \bmod p \\ s &=& \dfrac{h(m)-a_\text{u}r}{k} \bmod{(p-1)}\quad \\ \end{eqnarray}\]
$\downarrow$
\[\begin{eqnarray} &&\color{red}{q | (p-1)} \\ \text{random }k &\rightarrow& 0 < k < \color{red}{q} \\ r &=& (\alpha^k \bmod p) \color{red}{\bmod q} \qquad\\ s &=& \dfrac{h(m)+a_\text{u}r}{k} \color{grey}{\bmod{(p-1)}} \color{red}{\bmod{q}}\quad \end{eqnarray}\]
Quan vegem com dimensionar els paràmetres pels diferents
algorismes, veurem que la mida recomanada en bits és:
$\|q\| \approx \dfrac{1}{6}\|p\|$
Paràmetres: $p$, $q$, $\alpha$
Clau privada: $a$ (un nombre aleatori $0 < a < q-2$)
Clau pública: $\alpha^a \bmod p$
Com a Elgamal, tots els usuaris poden
compartir els paràmetres bàsics:
el grup cíclic $\mathbb{Z}_{p}^{*}$, el generador $\alpha$, i a més a més $q$
Les mateixes consideracions de DH i Elgamal per a $p$ apliquen aquí
En canvi en DSA, $\alpha$ no ha de ser generador
de $\mathbb{Z}_p^*$
(no ha de tenir $\text{ord}{(\alpha)} = \phi(p) = p -1$),
si no que $\text{ord}{(\alpha)} = q$ i $q|(p-1)$
Generació | Signatura | Validació | |
RSA | molt lent | mig | ràpid |
DSA | molt ràpid | mig | mig |
els atacs sobre DSA són els algorismes per a calcular el logaritme discret
el NIST
recomana
$\|p\| \geq 2048$ bit i $\|q\| \geq 224$ fins el 2030
$p$
$q$
(bits de seguretat)
$1024$
$160$
$\leftrightarrow$
$80$
$2048$
$224$
$\leftrightarrow$
$112$
$3072$
$256$
$\leftrightarrow$
$128$
(Criptografia de Corba El·líptica) $\rightarrow$