Cómo se mencionó
anteriormente, el criptosistema de clave pública emplea una clave pública y una
clave privada que se encuentran relacionadas matemáticamente. El mensaje
inicial que posteriormente es cifrado con la clave pública debe ser descifrado
con la clave privada y viceversa.
En la
criptografía de clave pública no se hace tanto uso de operaciones lógicas sino
de operaciones matemáticas que implican la resolución de problemas de alta
complejidad. Lo anterior conlleva a que los mensajes encriptados lleven números
en lugar de colecciones de bits, ya que de esta manera se pueden realizar este
tipo de operaciones matemáticas (Hernández, 2016).
Dentro de los
algoritmos más representativos de la criptografía asimétrica se encuentran:
Algoritmo RSA
El algoritmo RSA hace
parte de los modelos de clave pública tanto para cifrar datos como para crear
firmas digitales. Es de los criptosistemas de clave pública más utilizados por
su sencillez de implementación y nivel de seguridad.

Su funcionamiento
se basa en operaciones matemáticas complejas, en donde el par de claves se
calcula mediante el producto de dos números primos muy grandes que son
denominados generalmente como p y q. La seguridad de este
algoritmo radica en que ambos números deben ser aleatorios y tener una longitud
de bits similar (Maillo, 2017).
n = p*q
Luego de esto se
escoge un numero e que sea primo relativo con (p-1)(q-1), y que
tenga inversa módulo (p-1)(q-1), donde existirá un numero d tal
que:
d * e ☰ 1(mod(p-1)*(q-1))
Obtenidos estos
valores se define el par de claves del algoritmo de la siguiente manera:
Clave Pública = (n,e)
Clave Privada = (n,d)
Para cifrar la
información el algoritmo RSA usa la siguiente expresión matemática:
c = m^e (mod n)
Y para decodificar
usa:
m = c^d (mod n)
Algoritmo de
intercambio de clave de Diffie-Hellman
Más que un algoritmo
es un protocolo de intercambio de información en el que tanto emisor como
receptor terminan obteniendo una información en común. Este intercambio
funciona de tal manera que los participantes puedan pactar una clave secreta
compartida sobre un canal inseguro, evitando el inconveniente de distribución
de claves (Domingo, 2004).
Para cumplir a
cabalidad este protocolo de intercambio se siguen los siguientes pasos:1. Los
usuarios, A y B, eligen públicamente un grupo multiplicativo
finito G de orden n y un generador α ∈ G.
2. A genera un
número aleatorio a, calcula α^a dentro de G y transmite el
resultado de B.
3. B genera un
número aleatorio b, calcula α^b dentro de G y transmite el resultado de
A.
4. A recibe α^b y calcula (α^b)^a dentro de G.
5. B recibe α^a y calcula (α^a)^b dentro de G.
Al final del
protocolo, A y B han pactado un elemento α^ab del grupo G
que es común en ambos y secreto para el resto de los usuarios.
Algoritmo
ElGamal
Este es un
algoritmo de uso libre, típicamente utilizado en protocolos de correo seguros.
Se basa en el algoritmo de intercambio de Diffie-Hellman y aplica el problema
del cálculo del logaritmo discreto para dar un nivel de seguridad superior
sobre la información que se protege. Aunque en sus inicios fue pensado para
usarse con firmas digitales también aplica para la protección de datos
sensibles (Maillo, 2017).
Las claves de
este cifrado se crean a partir de la elección de un número k que sea
primo relativo con p-1. Luego de esto, siendo m el mensaje a
proteger se calcula:
a = g^k (mod p)
b = (y^k)*m (mod p)
El par (a,b) constituye
el texto codificado, que tendrá una longitud doble a la del texto original.
Por otra parte,
el descifrado se hace con la expresión:
m ☰ b|a^x (mod p)
Referencias:
- Domingo, J & Herrera J. (2004). Criptosistemas de clave pública. En: Criptografía (Modulo 5). https://openaccess.uoc.edu/server/api/core/bitstreams/3e55b538-eb12-44eb-9abf-6a59b38157b8/content
- Hernández,
L. (2016). Criptografía de clave asimétrica. En: La
Criptografía (pp. 93-134). Editorial CSIC Consejo Superior de
Investigaciones Científicas.
- Maillo,
J. (2017). Criptografía moderna. En: Sistemas seguros de
acceso y transmisión de datos (pp. 67-85). RA-MA Editorial.