El gamal
Mateo Sanabria Ardila
Introducción a la criptografía
Recordemos Diffie-Hellman
-
Que parámetros son publico para el intercambio de llaves en DH?
-
Como se consiguen dichos parámetros?
-
Es suficiente con DH para lograr establecer un canal de comunicaciones seguro?
-
Por que es seguro DH? Cuando nos referimos al tamano de clave en DH a que parametro se hace referencia?
Alice
BOB
DH: key-exchange
a = K_{prA} \in \{2, \cdots ,p-2\}
b = K_{prB} \in \{2, \cdots ,p-2\}
A \equiv \alpha^{a} \ mod \ p = K_{pubA}
B \equiv \alpha^{b} \ mod \ p = K_{pubB}
K_{AB} \equiv B^a \ mod \ p
K_{AB} \equiv A^b \ mod \ p
Problema del logaritmo discreto: PLD
Dados \ p,\beta \in \mathbb{Z}^{*}_{p} \ y \ un \ generador \ \alpha
econtrar \ x \ tal \ que
\alpha^x \equiv \beta \ \textbf{mod} \ p
Note que solucionar el problema del logaritmo discreto eficientemente permite conocer la llave acordada en DF, Por qué ?
\log_{\alpha} (\beta) \equiv x \ \textbf{mod} \ p
Es posible romper PLD?
Ataques contra PLD
Tamaño de clave recomendado basado en algunos ataques conocidos, para los estandares computacionales actuales:
-
Búsqueda por fuerza bruta: La cardinalidad del grupo debe ser del orden de 2**80
-
Baby-step giant-step, algoritmo Pohlig–Hellman, algoritmo rho de Pollard : La cardinalidad del grupo debe ser de al menos 2**160
\alpha^{x} \equiv A \ \textbf{mod} \ p
\color{red}K_{private}
\color{blue}K_{public}
Se puede tener un canal seguro basado en PLD?
Alice
BOB
\tiny d = K_{prB} \in \{2, \cdots ,p-2\}
\tiny K_{pubB} = \beta \equiv \alpha^{b} \ mod \ p
\tiny y \equiv x \times K_M \ \textbf{mod} p
Escoge un p primo y un generador alpha
\tiny (\beta,p,\alpha)
\tiny (y,K_E)
\tiny K_{E} \equiv \alpha^{i} \ mod \ p
\tiny i \in \{2, \cdot, p-2 \}
\tiny K_{M} \equiv \beta^{i} \ mod \ p
\tiny K_M \equiv K_{E}^{d} \ \textbf{mod} \ p
\tiny x \equiv y \times K_{M}^{-1}
Alice quire enviarle x a Bob
Correctitud ElGamal
\small d_{k_{pr}}(K_E,y) \equiv y \cdot (K_M)^{-1} \ mod \ p
\small \equiv (x \cdot K_M) \cdot (K_{E}^d)^{-1} \ mod \ p
\small \equiv (x \cdot (\alpha^d)^i) \cdot ((\alpha^i)^d)^-1 \ mod \ p
\small \equiv x \cdot \alpha^{d\cdot i -d\cdot i} \ mod \ p
\small \equiv x \ mod \ p
\small d_{k_{pr}}(K_E,y) \equiv x \ mod \ p
Optimización usando el pequeño teorema de fermat
K_E \in \mathbb{Z}_{p}^{*} : K_{E}^{p-1} \equiv 1 \ mod \ p
\small K_{M}^{-1} \equiv (K_{E}^{d})^{-1} \cdot 1 \ mod \ p
\equiv (K_{E}^{d})^{-1} \cdot K_{E}^{p-1} \ mod \ p
\equiv K_{E}^{p-1-d} \ mod \ p
x \equiv y \cdot K_{M}^{-1} \equiv K_{E}^{p-1-d} \ mod \ p
onservaciones ElGamal
-
La llave publica de Bob y los parámetros alpha y p, son siempre los mismos.
-
Ke Debe ser diferente para cada texto plano!! (Ke = ephemeral key)
-
ElGamal es un esquema de encriptación probabilistico. (Cifrar el mismo texto plano con la misma llave varias veces entrega diferente texto cifrado)
-
Que tan seguro es ElGamal?
El Gamal
By Mateo Sanabria Ardila
El Gamal
El Gamal
- 112