domingo, 23 de julio de 2023

¿Qué es el criptosistema de clave pública?

 

La criptografía simétrica o de clave publica se caracteriza porque dentro del mismo canal de transmisión un emisor (quien envía el mensaje) y un receptor (recibe el mensaje), cada uno de ellos posee dos claves propias y diferentes, una es la clave privada y la otra es una clave pública.



Con el conjunto de dos claves se puede realizar en cada extremo de la comunicación el cifrado y descifrado del mensaje. La clave privada es secreta y por ellos se deberá custodiar de tal manera que nadie la conozca y por ningún motivo se debe enviar o compartir con nadie. La clave pública será accesible por todos los usuarios del sistema o canal que quieran comunicarse.

Ambas claves tienen una relación matemática entre sí, pero la seguridad de esta técnica se basa en que el conocimiento de una de las claves no permite descubrir cuál es la otra clave. En realidad, sería necesario conocer todos los números primos grandes para ser capaz de deducir una clave a partir de otra, pero está demostrado que en la práctica se tardarían demasiados años sólo en el proceso de obtención de los números primos grandes.

Cada una de las partes hace publica una de las claves y mantiene en secreto la otra. Así cuando uno de los participantes en la comunicación desea enviar un mensaje a otro lo cifrará con la clave pública del destinatario, garantizando de esta forma que soló el destinatario será capaza de leerlo.

Si uno de los usuarios cifra cierto mensaje con su clave privada, el resto de los implicados puede saber que proviene realmente de él. La forma de hacerlo es descifrar el mensaje enviado con la clave publica de quien envió la información, si la comprobación del resultado encuentra total coincidencia, autentica al remitente y genera la seguridad para proceder a descifrar el mensaje.

Estos algoritmos pueden trabajar indistintamente con cualquiera de las claves, de manera que un mensaje cifrado con la clave pública sólo puede descifrarse con la clave privada, pero cualquier mensaje cifrado con la clave privada sólo puede ser descifrado con la clave pública.

El algoritmo asimétrico, es que está basado en funciones matemáticas las cuales son fáciles de resolver en un sentido, pero que su resolución en sentido contrario es extremadamente complicada, a menos que se conozca la clave. Las claves públicas y privadas se generan simultáneamente y están ligadas la una a la otra.

Las parejas de claves tienen varias y muy importantes funciones, entre las que destacamos:

  • Cifrar la información.
  • Asegurar la integridad de los datos transmitidos.
  • Garantizar la autenticidad del emisor.

Cifrado:

  • Mensaje + clave pública del receptor = Mensaje cifrado
  • Mensaje encriptado emisor + clave privada del receptor = Mensaje descifrado

Autenticación

  • Mensaje + clave privada emisor = Mensaje firmado
  • Mensaje firmado por el emisor + clave pública = Autenticación

 

¿Cómo funciona y cuáles son sus algoritmos representativos?

A diferencia de los algoritmos de clave secreta, que existen desde los tiempos de los romanos, los métodos asimétricos son muy recientes. En 1976, Whitfield Diffie y Martin Hellman crearon un método con la ayuda de Ralph Merkle para iniciar una comunicación segura sin haber acordado previamente una clave secreta.

Los principales algoritmos de cifrados asimétricos son:

RSA:

RSA fue desarrollado en 1977 por Ron Rivest, Adi Shamir y Len Adleman. El nombre RSA proviene de las iniciales de los apellidos de sus inventores El algoritmo fue patentado en 1983 por MIT, pero la patente expiró el 21 de septiembre de 2000 y desde entonces se utiliza libremente.


El algoritmo asimétrico por excelencia, este algoritmo se basa en la pareja de claves, la pública y la privada de las que ya hemos hablado con anterioridad. La seguridad de este algoritmo radica en el problema de la factorización de números enteros muy grandes, y en el problema RSA, porque descifrar por completo un texto cifrado con RSA no es posible actualmente, aunque sí un descifrado parcial. Algunas características muy importantes de RSA es la longitud de clave, actualmente como mínimo se debe utilizar una longitud de 2048 bits, aunque es recomendable que sea de 4096 bits o superior para tener una mayor seguridad.

 

ElGamal:

El esquema criptográfico de ElGamal fue descrito por el criptógrafo egipcio Taher Elgamal en 1985. Como hemos comentado anteriormente, basa su seguridad en la complejidad sobre el problema matemático del logaritmo discreto. Para este caso se trabaja sobre Zp, donde p es un número primo. Las etapas de este sistema son las siguientes:

·         Generación de claves, Por un lado, el individuo A toma un generador g del grupo cíclico (Zp) y un número aleatorio a {0, ...p−1}. Además, calcula t ≡ g a mod p, lo que nos deja una clave pública kpub = (p, g, t) y una clave privada kpriv = a.

 

·         Cifrado del mensaje: Supongamos que un individuo B quiere mandar un mensaje M a un individuo A. Para ello, consulta la clave pública de A y elige al azar un número b {2, ..., p − 2} y calcula

lo que hace que obtenga el mensaje cifrado c = (c1, c2) el cual envía al individuo A.

·         Descifrado del mensaje: Cuando el individuo A recibe el mensaje cifrado c, comienza calculando el inverso de c a 1 modulo p utilizando su clave privada. Llamamos a ese valor u = c a 1 mod p. Así obtiene la decodificación del mensaje.



ECC:

ECC son las siglas de criptografía de curva elíptica. Se trata de un método de criptografía asimétrica o clave pública. Tiene diferencias respecto a RSA. La diferencia más importante es el tamaño de las claves. Ofrece la misma seguridad que RSA, pero las claves son mucho más pequeñas. Una clave ECC de 256 bits equivale a una clave RSA de 3072, por lo que hay una diferencia considerable.

Pero también ofrece otras mejoras ECC. Por ejemplo, si lo comparamos con RSA es mucho más ligero, rápido y seguro. Esto hace que se utilice cada vez más en certificados SSL/TLS. Además, ECC es compatible con la mayoría de los sistemas operativos y navegadores actuales, por lo que facilita mucho su uso. Es compatible en sistemas como Windows (desde la versión Vista), macOS, Android o iOS, así como en los principales navegadores como son Google Chrome, Mozilla Firefox, Opera o Edge.

Si hablamos estrictamente de seguridad, hay numerosos ataques que se han implementado contra RSA. ECC en este sentido aporta mayor seguridad y beneficios como los siguientes:

  • Las claves son más pequeñas, por lo que tendrán un mejor rendimiento con menor sobrecarga.
  • El ECC escala mejor, mientras que el RSA se vuelve más lento y pesado.
  • ECC es mucho menos vulnerable a Quantum Computing.

El problema más importante que salva ECC es el tamaño y peso de las claves. Como hemos mencionado, son mucho más pequeñas. Puedes ver este cuadro comparativo:

Tamaño de clave ECC

Tamaño de clave RSA

160 bits

1024 bits

224 bits

2048 bits

256 bits

3072 bits

384 bits

7680 bits

521 bits

15360 bits

En definitiva, como ves hay diferencias importantes entre ECC y RSA. La primera es más segura, menos vulnerable a ciertos ataques y además es una clave más pequeña y menos pesada. Ha ido dejando poco a poco a un lado a RSA y el hecho de tener una gran compatibilidad ayuda bastante

 

DSA:

Este algoritmo es también puramente asimétrico, una desventaja de DSA es que quiere mucho más tiempo de cómputo que RSA a igualdad de hardware. DSA se utiliza ampliamente como un algoritmo de firma digital, es actualmente un estándar, pero DSA no se utiliza para cifrar datos, solamente como firma digital. Este algoritmo se utiliza ampliamente en las conexiones SSH para comprobar la firma digital de los clientes, además, existe una variante de DSA basada en curvas elípticas (ECDSA), y está disponible en todas las librerías criptográficas actuales como OpenSSL, GnuTLS o LibreSSL. Otra característica de DSA es la longitud de clave, la mínima longitud de clave es de 512 bits, aunque lo más habitual es usar 1024 bits.

El algoritmo DSA es el utilizado de forma predeterminada por OpenSSH, el popular software del servidor/cliente SSH que usamos ampliamente en cualquier servidor NAS, router o switch compatible con este protocolo, además, tenemos también una compatibilidad perfecta con los diferentes sistemas operativos, independientemente del software utilizado. DSA suele ser más utilizado en SSH que el popular RSA.

RSA-OAEP:

El algoritmo de encriptación asimétrica RSA fue descrito en el año 1977 por Ron Rivest, Adi Shamir y Leonard Adleman. A continuación, se detallan los tres algoritmos que lo componen.

·         Generación de claves y parámetros iniciales:

·         Se escogen dos primos distintos p y q grandes.

·         Se calcula N = pq llamado módulo RSA.

·         Se calcula φ(N) = (p − 1) (q − 1).

·         Se escoge un entero positivo e (1, φ(N)) tal que mcd (e, φ(N)) = 1.

·         Se calcula d tal que d · e ≡ 1 (mód φ(N)).

·         Clave Pública = (N, e).

·         Clave Privada = (p, q, d). 2.

Encriptación de mensajes:

·         Recibe como entrada la clave pública (N, e) y un mensaje M, 0 ≤ M < N.

·         Se calcula C = Me mod N.

·         La salida es el texto cifrado C. 3.

Desencriptación de mensajes:

·         Se recibe como entrada el módulo público N, la clave privada d, y el texto cifrado C, 0 ≤ C < N.

·         Se calcula M = C d mod N.


¿Ventajas, desventajas y diferencias con el criptosistema simétrico?

 Ventajas:

  • No necesita el establecimiento de un canal seguro para intercambiar la clave. 
  • No aumenta del número de claves en una red.
  • Uso prolongado de la misma clave.
  • Permite el diseño fácil de protocolos de firma digital, autenticación, no repudio, integridad y confidencialidad.
  • Se resuelve el problema de la distribución de las llaves simétricas (cifrado simétrico).


Desventajas:

  • Es más lento que los algoritmos de clave simétrica, Operaciones de cifrado y descifrado lentos.
  • No es eficiente con grandes cantidades de datos.
  • Se necesitan claves de longitud larga (de 2048 a 4096 bits) para que sean seguras.
  • La seguridad depende de la eficiencia de los ordenadores.
  • La clave privada debe ser cifrada por algún algoritmo simétrico.
  • Las curvas elípticas de permiten usar claves más cortas para un nivel de seguridad.

¿Caso práctico de aplicación (qué algoritmo, dónde y cómo usarlo)?


Entorno Laboral:

Donde una empresa pude invertir dinero en proteger su información, considerado como de los activos más importantes de la empresa. Por ejemplo:

Identificación de los empleados: Se trataría de la sustitución de los mecanismos de identificación tradicionales, basados en usuarios y contraseña, por otros basados en certificados digitales. De esta forma se garantiza la identidad de quien accede a aplicaciones corporativas. Al empleado será beneficioso ya que no tendrá que recordar múltiples contraseñas y a la empresa que este método es más seguro.

La oficina sin Papel: Hasta ahora la información completa de los procesos requiere guardar la documentación en papel con una serie de firmas o autorizaciones. Esto necesita el establecimiento de los mecanismos necesarios para realizar y verificar firmas electrónicas en distintos procedimientos.

Conexiones seguras: Es la posibilidad de conectar de manera segura diferentes sucursales de la misma compañía a través de redes públicas (VPNs), lo cual produce una reducción de costos sin comprometer la seguridad.

Accesos remotos de empleados: El acceso remoto puede realizarse por redes públicas de manera segura sin necesidad de recurrir a infraestructura dedicada. Se trata de utilizar el mismo sistema de identificación de aplicaciones, usando el mismo certificado digital.


Entorno Comercial:

La firma electrónica:  La tecnología de PKI (Public-Key Crytography Standards) permite cumplir con lo establecido por la ley de firma electrónica esencial para el comercio electrónico. Un ejemplo son las firmas electrónicas en las notarías, para firma de documentos.

En cualquier contrato entre dos partes, y no olvidemos que una compra con la tarjeta, la adjudicación de un crédito o demás transacciones requieren de una firma en el contrato. La cual se puede realizar por internet con una firma digital.

Tarjetas inteligentes: Si el soporte para los para los certificados digitales es una tarjeta inteligente, que puede utilizarse ese mismo soporte para fidelización de los clientes, a través de servicios complementarios, monedero electrónico, posibilidad de personalización de la tarjeta.

Telefonía móvil:  Siendo los usuarios de telefonía móvil un potencial cliente de los servicios del comercio electrónico, con la ventaja que tienen un dispositivo móvil con capacidad de almacenar sus certificados digitales.


Transacciones monetarias:

Empresas como VISA y MasterCard, con el apoyo de GTE, IBM Microsoft, Nescape, SAIC, Terisa y Verisign, desarrollaron un conjunto de especificaciones llamadas SET (Secure Electronic Transactions). Hay que dejar claro que SET no algo alternativo q RSA, ni siquiera que lo complemente, sino que es un protocolo de nivel superior que se sustenta sobre los estándares de RSA y que ha hace un amplio uso de ellos.

Las transacciones en SET se llevan a cabo entre: el comprador, un vendedor y un banco. Se trata de realizar una compra, de tal forma que el comerciante no conozca los datos bancarios del comprador y ni el banco no conozca los detalles de la compra.

Para ellos SET introduce el concepto de firma dual, una nueva aplicación de la firma electrónica.

 

¿Observaciones y recomendaciones para implementar el criptosistema?

Autenticación:

Cada participante dispone de una pareja de claves, si uno de los participantes cifra una cierta información con la clave privada, el resto de los implicados puede saber que la información proviene realmente de él. La forma de hacerlo es descifrar el mensaje enviado con la clave pública del remitente y comprobar que el resultado coincide con la información esperada.

Puede ya verse el mecanismo de autenticación del desafío - respuesta. En el una de las partes envía a la otra, a la que quiere identificar, el desafío consiste en un pequeño mensaje que el destinatario de volverá cifrado. La primera de las partes puede comprobar si al descifrar con la clave con la clave del supuesto interlocutor el mensaje recibido de vuelta, se obtiene el desafío que ella lo envió. Sí es así, el interlocutor queda perfectamente identificado.

 

Firma digital:

Este tipo de funcionalidad tiene como misión la de resumir una información dada en un pequeño mensaje. A una información concreta corresponde siempre el mismo resumen, y si la función de hash está bien diseñada la probabilidad que dos informaciones parecidas den como resultado el mismo resumen es extremadamente baja. De entre los algoritmos de hashing destacan como unos de los más utilizados tanto el SHA-1 como el MD5.

 La utilidad de este tipo de algoritmos surge cuando se desea comprobar que un mensaje no ha sido alterado durante la transmisión. Si el remitente de un mensaje aplica una función de hashing sobre la información que desea transmitir, obtendrá un resumen de pequeño tamaño relacionado casi biunívocamente con el texto original. A continuación, puede cifrar este resumen con su clave privada y adjuntar el resultado al mensaje antes transmitido. Esto es lo que se denomina la firma digital del mensaje.

 El resultado es que cuando el destinatario reciba el mensaje aplicará el mismo algoritmo de hashing a la información y obtendrá el resumen del mensaje. Descifrará la firma adjunta al mensaje recibido y comprobará si coincide del resumen que había obtenido.  Si es así, el mensaje proviene del remitente esperado y se tiene la garantía de que no fue alterado durante la transmisión.

Ocultamiento, Cifrado de información:

EL uso de parejas de claves pública-privada hace que deba cifrarse la información de distinta forma según el que vaya a leerla. Es decir, que no puede utilizar la misma clave sobre un fichero de nuestro disco duro para garantizar que sólo nosotros podremos verlo, que, sobre un mensaje de correo para enviarlo a otra persona, o incluso a varias personas.

Al contrario de cuando creamos una firma para un mensaje, donde siempre utilizamos nuestra clave privada, para cifrar una información debe utilizarse la clave pública del destinatario, de tal forma que solo él pueda descifrar lo cifrado.

Esto plantea un problema cuando se desea enviar la misma información a varios destinatarios. Ya que debemos cifrar la información con la clave pública de cada uno de ellos, habrá que crear un mensaje en el que aparezca la información que deseamos enviar tantas veces como destinatarios, cifrada cada vez con una clave.

Cuando se cifra información para ser almacenada, surge una cuestión a la que hay dar respuesta: ¿Qué ocurre si el propietario de la clave privada, con la que descifraría la información, la pierde?

La respuesta es que no se puede recuperar la cifrado, lo que lleva, en casi todas las situaciones, a hacer una copia de seguridad de la pareja de claves.

Referencias

  • López, A. (8 de octubre de 2022). Todo sobre criptografía: algoritmos de clave simétrica y asimétrica. Redes Zone.
  • Hernández, L. (2016). Criptografía de clave asimétrica. En: La criptografía (pp. 93-134) [versión electrónica]. Editorial CSIC Consejo Superior de Investigaciones Científicas.
  • Hernández Encinas, L. (2016). La criptografía. Madrid, Spain: Editorial CSIC Consejo Superior de Investigaciones Científicas. Recuperado de https://elibro.net/es/ereader/uniminuto/41843?page=98.
  • Márquez-Corbella, I. (2015, September). Criptografía basada en códigos correctores: alternativa a los clásicos criptosistemas de clave pública. In Congreso de Jóvenes Investigadores de la Real Sociedad Matemática Española.
  • PÚBLICA, C. La criptografía de clave pública y su aplicación información.
  • Palacios, R., & Delgado, V. (2006, January). Introducción a la Criptografía: tipos de algoritmos. In anales de mecánica y electricidad.
  • Miguel Salgado, A. (2021). Criptografía postcuántica. http://hdl.handle.net/10810/54321.
  • Cordero Jure, P. V. (2008). Implementación de un Sistema de Votación Electrónica Eficiente para Múltiples Candidatos.

¿Qué es el criptosistema de clave pública?

  La criptografía simétrica o de clave publica se caracteriza porque dentro del mismo canal de transmisión un emisor (quien envía el mensaje...