Claves (a)simétricas, Números primos, HASH, RSA, Diffie-Hellman

¿Cómo funciona?
K_pub): se puede compartir libremente.K_priv): debe mantenerse secreta.K_pub de David).K_priv de David).K_priv de David) para generar la firma.K_pub de David).
Propiedades matemáticas especiales
Difíciles de factorizar
Ejemplo:
\[ n = p \cdot q \]
Multiplicar dos primos es fácil, pero encontrar los factores de un número grande (n) (es decir, recuperar (p) y (q) a partir de (n)) es computacionalmente muy difícil.
Idea clave:
La seguridad de RSA se basa en que, aunque cualquiera puede calcular (n), solo quien conoce (p) y (q) puede realizar ciertas operaciones matemáticas (como calcular la clave privada).

Irreversibilidad:
Aunque conozcas la función hash, no puedes recuperar el mensaje original a partir del hash.
El proceso es “unidireccional”: solo puedes calcular el hash, nunca invertirlo.
Colisión de hash:
Dos mensajes diferentes pueden, en casos raros, producir el mismo hash.
Esto se llama colisión y los buenos algoritmos de hash la hacen extremadamente improbable.

Elegir dos números primos grandes:
(p) y (q)
Calcular el producto:
\[
n = p \cdot q
\] Este número (n) será parte de ambas claves.
Calcular la función phi de Euler:
\[
\varphi(n) = (p-1) \cdot (q-1)
\] Es un valor auxiliar necesario para los siguientes pasos.
Elegir el exponente público:
Selecciona un número (e) tal que (1 < e < (n)) y que sea coprimo con ((n)), es decir: \[
\gcd(e, \varphi(n)) = 1
\] Esto garantiza que (e) tenga inverso módulo ((n)).
Calcular el exponente privado:
Busca el número (d) tal que: \[
e \cdot d \equiv 1 \pmod{\varphi(n)}
\] Es decir, (d) es el inverso multiplicativo de (e) módulo ((n)).
Las claves resultantes son:
Solo quien conoce los primos originales puede calcular la clave privada. El resto del mundo solo conoce la clave pública.
\[ c \equiv m^{e} \pmod{n} \]
¿Qué significa esta fórmula?
- (m) es el mensaje convertido en número.
- (e) es la clave pública del receptor.
- (n) es el producto de dos números primos grandes (parte de la clave).
- La expresión (m^{e} ) significa: eleva el mensaje a la potencia (e), divide el resultado entre (n) y quédate solo con el resto.
- El resultado, (c), es el mensaje cifrado que se envía.
- Envía (c) al receptor.
\[ m \equiv c^{d} \pmod{n} \]
La seguridad de RSA se basa en que, sin conocer la clave privada (d), es prácticamente imposible recuperar el mensaje original (m) a partir de (c).
A elige un secreto (a) (privado) y calcula: \[ A = g^{a} \pmod{p} \] Envía (A) a B.
B elige un secreto (b) (privado) y calcula: \[ B = g^{b} \pmod{p} \] Envía (B) a A.
Cada uno calcula la clave compartida:
En ambos casos: \[ K = g^{ab} \pmod{p} \] por lo que A y B comparten la misma clave sin haberla enviado nunca.
Un atacante puede ver los valores públicos: \[ p,\quad g,\quad A = g^{a} \pmod{p},\quad B = g^{b} \pmod{p} \]
Pero para calcular la clave secreta compartida: \[ K = g^{ab} \pmod{p} \] necesitaría conocer el valor secreto de (a) o (b).
¿Por qué es seguro?
La seguridad de Diffie-Hellman se basa en que, aunque los valores públicos se pueden ver y copiar, el secreto solo puede ser calculado por quienes conocen los valores privados.
Por eso se usa para acordar claves en canales inseguros.
Piensa siempre en ejemplos concretos: HTTPS, VPN, cifrado de disco, correo cifrado…

Criptografía Asimétrica - Otras Presentaciones