Introducción a la Criptografía moderna

La criptografía es una disciplina de la seguridad informática que se ocupa de proteger la confidencialidad, integridad y autenticidad de la información a través de técnicas de cifrado y descifrado. Su objetivo principal es garantizar que la información transmitida solo pueda ser leída y comprendida por las personas autorizadas para hacerlo, y que no pueda ser accedida por terceros no autorizados. La criptografía se utiliza en una amplia variedad de aplicaciones, desde la protección de comunicaciones militares y gubernamentales hasta la seguridad de transacciones financieras y comerciales en línea. También se utiliza para proteger la privacidad de los usuarios de internet, como en el caso del cifrado de las comunicaciones en línea y el almacenamiento seguro de contraseñas.

Existen diferentes tipos de algoritmos criptográficos que se emplean en la criptografía, entre los que destacan los algoritmos de clave simétrica y de clave pública. Los algoritmos de clave simétrica utilizan la misma clave para cifrar y descifrar el mensaje, mientras que los algoritmos de clave pública utilizan un par de claves, una pública y otra privada, para cifrar y descifrar el mensaje.

Escenario General

El problema general en criptografía que se busca resolver es la comunicación segura entre dos individuos, Alice y Bob, a través de un canal inseguro en presencia de un adversario, Eve. El objetivo es proteger la confidencialidad e integridad de la información transmitida, evitando que Eve pueda leer o modificar el mensaje.

La criptografía proporciona herramientas para lograr este objetivo, y se basa en la utilización de algoritmos criptográficos que transforman el mensaje original en un mensaje cifrado, que solo puede ser leído por el destinatario legítimo que posee la clave de descifrado adecuada. Los algoritmos criptográficos más comunes son los basados en clave simétrica y clave pública.

En la criptografía de clave simétrica, Alice y Bob comparten una misma clave secreta, que utilizan tanto para cifrar como para descifrar el mensaje. Sin embargo, el problema de esta técnica es que la clave debe ser compartida previamente y de manera segura, lo que puede resultar complicado en algunos casos.

En la criptografía de clave pública, en cambio, cada usuario dispone de un par de claves, una pública y otra privada. La clave pública se comparte abiertamente, mientras que la clave privada solo la conoce el usuario correspondiente. Con esta técnica, Alice cifra el mensaje con la clave pública de Bob, y solo Bob puede descifrarlo con su clave privada. Esto permite una comunicación más segura, sin necesidad de compartir una clave secreta previamente.

En cualquier caso, el objetivo principal de la criptografía es garantizar que el mensaje enviado por Alice llegue a Bob de manera segura y sin ser leído ni alterado por Eve. Para ello, se utilizan técnicas criptográficas que protegen la confidencialidad e integridad del mensaje, y se aplican medidas adicionales como la autenticación y la firma digital para garantizar la identidad de los emisores y receptores de los mensajes.

Objetivos

La criptografía tiene varios objetivos principales que se enfocan en garantizar la seguridad de la información transmitida. A continuación, se describen los principales objetivos de la criptografía:

Confidencialidad: este objetivo se centra en asegurar que el contenido del mensaje se mantenga secreto y solo sea accesible por el destinatario legítimo. Para lograr la confidencialidad, se utilizan técnicas de cifrado que transforman el mensaje original en un mensaje cifrado que solo puede ser entendido por el destinatario autorizado que posee la clave de descifrado adecuada.

Integridad: el objetivo de la integridad es garantizar que el mensaje transmitido no se altere durante su tránsito de un punto a otro. Para asegurar la integridad, se utilizan técnicas de hash, que generan un valor numérico que representa el mensaje original y que permite detectar cualquier cambio en el mensaje durante la transmisión.

Autenticidad: el objetivo de la autenticidad es asegurar que la fuente de información es legítima y que el mensaje no ha sido manipulado por terceros. Para lograr la autenticidad, se utilizan técnicas de autenticación, como las firmas digitales, que permiten al receptor verificar la identidad del emisor del mensaje.

Firma: la firma digital es una técnica que se utiliza para vincular cierta información al mensaje. Esto permite asegurar que el mensaje no ha sido alterado desde el momento en que fue firmado, y que el emisor del mensaje es quien dice ser.

Anonimato: este objetivo se centra en preservar la identidad de los participantes en una comunicación. Para lograr el anonimato, se utilizan técnicas como la encriptación de la dirección IP, el uso de redes anónimas y el uso de criptografía de clave pública para cifrar la identidad de los participantes.

Sistemas criptográficos de clave secreta

Los sistemas criptográficos de clave secreta, también conocidos como sistemas criptográficos de clave simétrica, son una técnica de cifrado en la que el emisor y el receptor comparten la misma clave secreta para cifrar y descifrar los mensajes. En este sistema, Alice y Bob comparten una clave privada K que se utiliza para cifrar y descifrar los mensajes.

Cuando Alice desea enviar un mensaje a Bob, ella utiliza la clave privada K para cifrar el mensaje y envía el mensaje cifrado a través de un canal inseguro, como la red de Internet. Cuando Bob recibe el mensaje cifrado, utiliza la misma clave privada K para descifrar el mensaje y leerlo en su forma original.

Uno de los principales beneficios de los sistemas criptográficos de clave secreta es que son rápidos y eficientes. Debido a que la misma clave se utiliza tanto para cifrar como para descifrar los mensajes, el proceso de cifrado y descifrado es rápido y fácil de implementar. Además, estos sistemas son altamente seguros siempre y cuando la clave secreta se mantenga confidencial.

Sistemas de criptografía de clave secreta

Sin embargo, una de las principales desventajas de los sistemas criptográficos de clave secreta es la dificultad de compartir la clave secreta de manera segura entre Alice y Bob. Esto requiere la existencia de un canal seguro de comunicación previo entre ambos, lo que puede resultar problemático en algunas situaciones. Si un tercero no autorizado, como Eve, obtiene la clave secreta, ella también puede descifrar los mensajes cifrados. Por esta razón, es importante utilizar técnicas de gestión de claves seguras para proteger la clave secreta y garantizar la confidencialidad de los mensajes transmitidos. Estas técnicas incluyen la generación aleatoria de claves, la distribución segura de claves utilizando algoritmos de intercambio de claves, la autenticación mutua de las partes y la renovación periódica de las claves.

Además, incluso si la clave secreta no es interceptada, existe la posibilidad de que Eve pueda reconstruir la clave a través de ataques criptoanalíticos. Estos ataques se basan en el análisis del cifrado para inferir información sobre la clave secreta. Si Eve puede reconstruir la clave secreta, entonces puede leer los mensajes cifrados.

Otra limitación de los sistemas criptográficos de clave secreta es que no son adecuados para la firma digital. La firma digital es una técnica de criptografía que permite a Alice autenticar un mensaje y garantizar su integridad. En los sistemas de clave secreta, no es posible asegurar la integridad y autenticidad del mensaje de manera independiente, ya que tanto el emisor como el receptor deben compartir la misma clave secreta.

Acercamiento Probabilístico

La formalización matemática de la criptografía se basa en la teoría de la información y la probabilidad. En particular, el enfoque probabilístico se utiliza para analizar la seguridad de los sistemas criptográficos.

La formalización matemática del sistema criptográfico de clave secreta se basa en la noción de perfecta seguridad. Un sistema de cifrado es perfectamente seguro si el mensaje original y el mensaje cifrado son estadísticamente independientes, es decir, si no se puede obtener información sobre el mensaje original a partir del mensaje cifrado.

La relación matemática que formaliza la perfecta seguridad es la siguiente:

image-1673279828484.png

Donde P(M) es la probabilidad del mensaje original y P(M|C) es la probabilidad del mensaje original dado el mensaje cifrado.

La ecuación anterior significa que la probabilidad del mensaje original no cambia después de haber sido cifrado, es decir, que el mensaje cifrado no proporciona ninguna información adicional sobre el mensaje original. Esta propiedad se conoce como perfecta seguridad y es el ideal teórico para cualquier sistema criptográfico.

Sin embargo, es importante destacar que la perfecta seguridad es difícil de lograr en la práctica debido a las limitaciones en la generación de números aleatorios y la complejidad de los algoritmos utilizados. Por lo tanto, en la práctica, se utilizan sistemas criptográficos que proporcionan un nivel aceptable de seguridad, pero no cumplen con la propiedad de perfecta seguridad.

Distribución de claves criptográficas

La distribución de claves criptográficas es un problema fundamental en la criptografía de clave secreta. En un sistema con múltiples usuarios, cada par de usuarios necesita tener una clave distinta para poder comunicarse de forma segura. Por lo tanto, si queremos aumentar el número de usuarios en una red, el número de claves necesarias aumenta de manera exponencial, lo que se convierte en un problema de escalabilidad.

Existen varios métodos para distribuir claves criptográficas de manera segura y eficiente. Uno de los métodos más utilizados es el intercambio de claves de Diffie-Hellman. Este método permite a dos usuarios generar una clave compartida de forma segura, incluso si Eve está escuchando la conversación.

El intercambio de claves de Diffie-Hellman funciona de la siguiente manera:

  1. Alice y Bob acuerdan de antemano un grupo de números enteros y un número primo grande p.
  2. Cada uno de ellos elige un número secreto aleatorio, a para Alice y b para Bob.
  3. Luego, cada uno de ellos calcula un número público usando la fórmula g^a mod p para Alice y g^b mod p para Bob, donde g es un número entero elegido de manera pública.
  4. Luego, intercambian estos números públicos.
  5. Finalmente, Alice y Bob calculan la clave compartida de forma independiente utilizando la fórmula g^(a*b) mod p.

De esta manera, Alice y Bob pueden generar una clave compartida de forma segura sin necesidad de transmitirla a través de un canal de comunicación inseguro.

Otro método para distribuir claves criptográficas es mediante el uso de un servidor de claves. En este método, todos los usuarios confían en un servidor centralizado que mantiene una base de datos de claves criptográficas. Cada usuario tiene una clave pública y una clave privada, y su clave pública se almacena en el servidor de claves. Cuando un usuario quiere enviar un mensaje cifrado a otro usuario, obtiene la clave pública del destinatario del servidor de claves. El remitente puede entonces cifrar el mensaje con la clave pública del destinatario y enviarlo. Solo el destinatario puede descifrar el mensaje utilizando su clave privada.

Este método tiene la ventaja de que no se necesita compartir una clave privada entre los usuarios individuales, lo que elimina la necesidad de actualizar constantemente las claves. Sin embargo, existe un riesgo de seguridad ya que un atacante podría intentar atacar el servidor de claves para obtener las claves públicas de los usuarios y luego descifrar los mensajes.

Criptografía de clave pública

La criptografía de clave pública, fue propuesta en 1976 por Whitfield Diffie y Martin Hellman y  también se conoce como criptografía asimétrica porque utiliza dos claves diferentes, una para encriptar y otra para desencriptar, mientras que la criptografía de clave secreta utiliza la misma clave para ambas operaciones y por lo tanto es simétrica.

Una de las ventajas de la criptografía de clave pública es que permite la creación de firmas digitales, que son esenciales para la autenticación y la integridad de los mensajes. Una firma digital es un código que se adjunta a un mensaje encriptado y que confirma que el mensaje proviene del remitente que dice ser y que no ha sido alterado en tránsito. La criptografía de clave pública se basa en problemas matemáticos difíciles de resolver, como el problema de factorización de números grandes o el problema del logaritmo discreto. Estos problemas son fáciles de plantear, pero muy difíciles de resolver con los algoritmos actuales, lo que hace que la criptografía de clave pública sea segura.

image-1673279843334.png

Un ejemplo común de criptografía de clave pública es el protocolo SSL / TLS utilizado en el cifrado de conexiones seguras en la web. Al visitar un sitio web seguro, el servidor envía su clave pública al navegador del usuario, que luego utiliza esa clave para cifrar cualquier información enviada al servidor. Solo el servidor puede descifrar la información utilizando su clave privada.

La criptografía de clave pública, también conocida como criptografía asimétrica, utiliza dos claves diferentes: una clave pública (e) y una clave privada (d). La clave pública se puede compartir libremente, mientras que la clave privada se mantiene en secreto. Cuando alguien quiere enviar un mensaje cifrado a Bob, primero encripta el mensaje con la clave pública de Bob (e), lo que genera el mensaje cifrado (C). Dado que la clave pública de Bob es conocida por todos, cualquier persona puede encriptar un mensaje para él. Sin embargo, solo Bob puede descifrar el mensaje cifrado, ya que es el único que posee la clave privada (d) que se utiliza para descifrar el mensaje.

Mensaje original (M) + clave pública de Bob (e) = Mensaje cifrado (C)

Mensaje cifrado (C) + clave privada de Bob (d) = Mensaje original (M)

Este esquema de clave pública se utiliza comúnmente para la seguridad en Internet, como en la transmisión segura de información confidencial, como datos de tarjetas de crédito, contraseñas y otros datos privados. También se utiliza para la autenticación y la firma digital, donde se utiliza la clave privada para firmar un documento y la clave pública para verificar la autenticidad de la firma.

La analogía del candado es una buena forma de entender el concepto de clave pública y privada. La clave pública se puede compartir ampliamente, como el candado que está disponible para cualquiera que quiera cerrarlo. Sin embargo, solo la persona que tiene la clave privada correspondiente puede abrir el candado o descifrar el mensaje. Es como si el propietario del candado tuviera una llave especial que solo él o ella posee y que solo puede usar para abrir el candado.

En cuanto a la idea de la clave pública como una dirección, es similar a cómo las personas pueden enviar correo a una dirección específica sin necesidad de tener acceso a la llave de la puerta. La clave pública es la dirección a la que se envía el mensaje y la clave privada es la llave que se usa para abrir el mensaje. Así, la clave pública actúa como un punto de acceso para que cualquiera pueda enviar mensajes de forma segura al destinatario correcto, mientras que la clave privada garantiza que solo el destinatario real puede acceder al mensaje.

Criptografia y Empresas

Por ultimo, es necesario mostrar que existen muchas empresas y protocolos que utilizan la criptografía. Aquí hay algunos ejemplos:

AES (Advanced Encryption Standard): es un algoritmo de cifrado de bloques utilizado para proteger la información confidencial. AES se considera uno de los algoritmos criptográficos más seguros y se utiliza ampliamente en aplicaciones de seguridad de la información.

RSA (Rivest-Shamir-Adleman): es un algoritmo de cifrado asimétrico utilizado para cifrar y firmar digitalmente la información. RSA se basa en la teoría de números y se utiliza en aplicaciones de seguridad de la información como SSL, SSH y PGP.

SHA-2 (Secure Hash Algorithm 2): es una familia de algoritmos de hash criptográficos utilizados para verificar la integridad de la información. SHA-2 se considera uno de los algoritmos de hash más seguros y se utiliza en aplicaciones como la autenticación de contraseñas y la verificación de archivos.

Blowfish: es un algoritmo de cifrado de bloques simétrico utilizado para proteger la información confidencial. Blowfish se considera uno de los algoritmos más rápidos y seguros y se utiliza en aplicaciones como la protección de contraseñas y la encriptación de archivos.

ECC (Elliptic Curve Cryptography): es un algoritmo de cifrado asimétrico que utiliza curvas elípticas en lugar de números enteros para generar claves criptográficas. ECC se considera más eficiente y seguro que los algoritmos de cifrado tradicionales y se utiliza en aplicaciones como la seguridad de dispositivos móviles y la autenticación de contraseñas.

Un comentario

  1. Pingback:Criptografía moderna e intercambios de clave - GREEN

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *