Criptografía de clave pública


La criptografía de clave pública , o criptografía asimétrica , es un sistema criptográfico que utiliza pares de claves . Cada par consta de una clave pública (que puede ser conocida por otros) y una clave privada (que puede que nadie más que el propietario conozca). La generación de tales pares de claves depende de algoritmos criptográficos que se basan en problemas matemáticos denominados funciones unidireccionales . La seguridad efectiva requiere mantener privada la clave privada; la clave pública se puede distribuir abiertamente sin comprometer la seguridad. [1]

En un sistema de este tipo, cualquier persona puede cifrar un mensaje utilizando la clave pública del receptor previsto , pero ese mensaje cifrado solo puede descifrarse con la clave privada del receptor . Esto permite, por ejemplo, que un programa de servidor genere una clave criptográfica destinada a una criptografía de clave simétrica adecuada , y luego utilice la clave pública abiertamente compartida de un cliente para cifrar esa clave simétrica recién generada.. El servidor puede enviar esta clave simétrica cifrada a través de un canal inseguro al cliente; solo el cliente puede descifrarlo utilizando la clave privada del cliente (que se empareja con la clave pública utilizada por el servidor para cifrar el mensaje). Dado que el cliente y el servidor tienen la misma clave simétrica, pueden usar de forma segura el cifrado de clave simétrica (probablemente mucho más rápido) para comunicarse a través de canales que de otro modo serían inseguros. Este esquema tiene la ventaja de no tener que precompartir manualmente claves simétricas (un problema fundamentalmente difícil) mientras se obtiene la ventaja de mayor rendimiento de datos de la criptografía de clave simétrica .

Con la criptografía de clave pública, también es posible una autenticación sólida . Un remitente puede combinar un mensaje con una clave privada para crear una firma digital corta en el mensaje. Cualquiera que tenga la clave pública correspondiente del remitente puede combinar ese mensaje con una firma digital reclamada; si la firma coincide con el mensaje, se verifica el origen del mensaje (es decir, debe haber sido realizado por el propietario de la clave privada correspondiente). [2] [3]

Los algoritmos de clave pública son primitivas de seguridad fundamentales en los criptosistemas modernos , incluidas aplicaciones y protocolos que ofrecen garantía de confidencialidad, autenticidad y no repudiabilidad de las comunicaciones electrónicas y el almacenamiento de datos. Son la base de numerosos estándares de Internet, como Transport Layer Security (TLS) , S / MIME , PGP y GPG . Algunos algoritmos de clave pública proporcionan secreto y distribución de claves (p. Ej., Intercambio de claves Diffie-Hellman ), algunos proporcionan firmas digitales (p. Ej., Algoritmo de firma digital ) y algunos proporcionan ambos (p. Ej., RSA). En comparación con el cifrado simétrico , el cifrado asimétrico es bastante más lento que el buen cifrado simétrico, demasiado lento para muchos propósitos. Los criptosistemas actuales (como TLS , Secure Shell ) utilizan tanto el cifrado simétrico como el cifrado asimétrico, a menudo mediante el uso de cifrado asimétrico para intercambiar de forma segura una clave secreta que luego se utiliza para el cifrado simétrico.

Antes de mediados de la década de 1970, todos los sistemas de cifrado utilizaban algoritmos de clave simétrica , en los que tanto el remitente como el destinatario utilizan la misma clave criptográfica con el algoritmo subyacente, que deben mantenerla en secreto. Por necesidad, la clave en cada uno de estos sistemas tenía que intercambiarse entre las partes comunicantes de alguna manera segura antes de cualquier uso del sistema, por ejemplo, a través de un canal seguro . Este requisito nunca es trivial y muy rápidamente se vuelve inmanejable a medida que aumenta el número de participantes, o cuando los canales seguros no están disponibles, o cuando (como es una práctica criptográfica sensata), las claves se cambian con frecuencia. En particular, si los mensajes están destinados a ser seguros para otros usuarios, se requiere una clave separada para cada posible par de usuarios.

Por el contrario, en un sistema de claves públicas, las claves públicas se pueden difundir amplia y abiertamente, y su propietario solo debe mantener en secreto las claves privadas correspondientes.


Se usa un número impredecible (generalmente grande y aleatorio ) para comenzar la generación de un par aceptable de claves adecuadas para su uso por un algoritmo de clave asimétrica.
En un esquema de cifrado de clave asimétrica, cualquiera puede cifrar mensajes utilizando una clave pública, pero solo el titular de la clave privada emparejada puede descifrar dicho mensaje. La seguridad del sistema depende del secreto de la clave privada, que no debe ser conocida por ningún otro.
En el esquema de intercambio de claves Diffie-Hellman , cada parte genera un par de claves pública / privada y distribuye la clave pública del par. Después de obtener una copia auténtica (nb, esto es fundamental) de las claves públicas de cada uno, Alice y Bob pueden calcular un secreto compartido sin conexión. El secreto compartido se puede utilizar, por ejemplo, como clave para un cifrado simétrico que será, esencialmente, en todos los casos, mucho más rápido.
En este ejemplo, el mensaje está firmado digitalmente , pero no encriptado. 1) Alice firma un mensaje con su clave privada. 2) Bob puede verificar que Alice envió el mensaje y que el mensaje no ha sido modificado.