{Diffie, Hellman; 1976}
Permet acordar un nombre aleatori entre dos usuaris a partir de la hipòtesi CDH
(hipòtesi computacional Diffie-Hellman).
Aquest nombre aleatori es pot fer servir de clau per a xifrar les posteriors comunicacions
fent servir xifrat simètric.
(DH no permet signar ni xifrar, però és la base d'altres algorismes que sí ho permeten)
CDH és un problema amb trampa relacionat amb el problema DLP (Problema del logaritme discret). El DLP conjectura que es difícil el càlcul del logaritme (funció inversa de l'exponenciació) en certs grups
Tenim un $\mathbb{Z}_{p}^{*}$ ($p$ primer) i seleccionem
un element generador $\alpha\,$
($\mathbb{Z}_{p}^{*}$ és cíclic)
Llavors, existeix un $0 \leq x < p-1$ únic que compleix per a cada $\beta \in \mathbb{Z}_{p}^{*}$:
$x \equiv \log_{\alpha} \beta \pmod p$
(o de forma equivalent: $\beta \equiv \alpha^x \pmod p$)
...però és computacionalment difícil* calcular-lo
Suposem que tenim un grup cíclic sobre un conjunt $\mathbb{Z}_{p}^{*}$
($p$ primer) amb l'element generador $\alpha$
A partir de conèixer $\alpha$, $\alpha^i$ i $\alpha^j$ per a $0 \leq i,j < p-1$
llavors el càlcul de $\alpha^{ij}$ és computacionalment difícil...
...si és que no coneixem "la trampa"
CDH requereix que DLP sigui computacionalment difícil
CDH està relacionat amb la hipòtesi DDH (Decisional DH):
que diu que $\alpha^{ij}$ és indistingible d'un valor escollit aleatòriament
de $\mathbb{Z}_{p}^{*}$
Totes les hipòtesis han de ser certes per a que DH sigui segur
Si coneixem $i$ i $\alpha^j$ (ò $j$ i $\alpha^i$) llavors el càlcul d'$\alpha^{ij}$ és fàcil:
Si coneixes $i$: $\alpha^{ij} = {(\alpha^j)}^{i} \pmod p$
Si coneixes $j$: $\alpha^{ij} = {(\alpha^i)}^{j} \pmod p$
(en canvi si no coneixes ni $i$ ni $j$, és computacionalment difícil encara que coneguis $\alpha^i$ i $\alpha^j$)
A partir d'aquí $I$ i $J$ comparteixen el secret $\alpha^{ij}$
Un atacant que vegi el tràfic ($\alpha^i$ i $\alpha^j$) i conegui $\alpha$ no és capaç d'aprendre res sobre el secret $\alpha^{ij}$
Els paràmetres $p$ i $\alpha$ es poden seleccionar a priori, poden ser públics i fer-se servir múltiples vegades:
DH no autentica:
problemes sobre la implementació:
els atacs sobre DH són els millors algorismes per a calcular $log_{\alpha}(\alpha^{ij}) \pmod p$
el NIST
recomana
$\|p\| \geq 2048$ bit fins el 2030
RSA
AES
(bits de seguretat)
$1024$
$\leftrightarrow$
$80$
$80$
$2048$
$\leftrightarrow$
$112$
$112$
$3072$
$\leftrightarrow$
$128$
$128$
$15360$
$\leftrightarrow$
$256$
$256$
(RSA) $\rightarrow$