La criptografía asimétrica es una de las técnicas más potentes de la informática y parte fundamental de la seguridad de Internet y las redes de tipo blockchain. Su uso ha permitido altos niveles de seguridad allí donde es necesario garantizando privacidad e incluso anonimato.
Una de las técnicas criptográficas más potentes diseñadas por el hombre es la criptografía asimétrica o criptografía de clave pública. Este sistema consiste en la utilización de una fórmula matemática muy compleja para crear un par de claves. Esta primera clave es la clave privada. La clave privada es de uso exclusivo para el creador del par de claves, y sirve para cifrar y descifrar mensajes de forma completamente segura.
La segunda clave es la llamada clave pública. Esta es una clave que el creador puede entregar a terceras personas. La clave pública se crea a partir de la clave privada, pero el proceso inverso es imposible. De esta forma, el creador de las claves puede compartir esta clave pública con terceras personas, y gracias a ella estas personas puedan enviarle información cifrada que solo será accesible usando la clave privada del creador.
La tecnología de cifrado asimétrica fue inventada por Ralph Merkle, Whitfield Diffie y Martin Hellman en el año de 1976. Este esquema de claves privadas y públicas garantiza el establecimiento de comunicaciones completamente seguras, incluso sobre canales inseguros. Razón por la que en la actualidad este sistema criptográfico es el más usado. Un claro ejemplo son las estructuras públicas y privadas que permiten la comunicación por internet, donde se hace uso de criptografía asimétrica para garantizar la privacidad de las comunicaciones.
¿Cómo funciona la criptografía asimétrica?
El funcionamiento del sistema de criptografía pública comprende de una serie de etapas bien definidas. Todas y cada una de ellas garantizan que el sistema funcione correctamente. Acá explicaremos con bastante detalle cada una de ellas:
Algoritmo y curva de cifrado
En primer lugar se ha de definir qué algoritmo de cifrado asimétrico se usará. Cada algoritmo tiene propiedades únicas. Estas propiedades están relacionadas con la curva elíptica que usa el algoritmo para su funcionamiento. En este punto, las curvas elípticas consideradas para el cifrado asimétrico son numerosas. Existen al menos de forma registrada y bien estudiadas, 22 curvas en total.
Por ejemplo, la Curve25519 de Daniel Bernsteins es muy utilizada en algoritmos de cifrado compactos y muy eficientes. Sin embargo en las redes blockchain de criptomonedas como Bitcoin la curva más usada es la secp256k1. Esta curva es el estándar de facto de la seguridad de las criptodivisas.
Generación de claves
El siguiente paso es la generación de las claves privada y pública. La primera en generase es la clave privada. Para su creación segura se ha de usar un generador de números aleatorio muy seguro y una pool de entropía. Estos dos garantizarán que el número aleatorio aplicado a la fórmula matemática elegida sea realmente aleatorio. Con ello garantizaremos la seguridad de la clave desde su inicio.
Una vez que el generador de número aleatorios ha dado un número, este se aplica a la fórmula elegida. El sistema comienza a resolver la fórmula y de ella obtenemos un número que será nuestra clave privada. Generada nuestra clave privada, se inicia el ciclo de generación de la clave pública. Este ciclo, utilizará el número de la clave privada para enlazar de forma unidireccional la clave privada con la pública. De esta forma, la clave pública podrá generar contenido cifrado que podremos resolver con nuestra clave privada. Sin embargo, nada ni nadie bajo ninguna circunstancia podrá develar nuestra clave privada utilizando un proceso contrario.
Una vez ha culminado este proceso de generación tendremos a la mano nuestras dos claves listas para el siguiente paso de uso.
Propagación de confianza
El tercer elemento del funcionamiento de los sistemas de criptografía asimétrica es la propagación segura de las claves. Con esto se busca generar espacios que garanticen la seguridad de los canales de comunicación. Entre estos métodos tenemos:
- Infraestructura de clave pública o PKI. Esta es una infraestructura en la que existe una o varias entidades emisoras de certificados. Cada entidad se relaciona con un nivel de confianza y dicho nivel sirve para asegurar la autenticidad de las claves públicas. Este esquema es el que se usa en Internet para asegurar la autenticidad de los certificados SSL/TLS de las páginas webs.
- Establecimiento de una red de confianza. Este es el esquema de propagación de claves más sencillo y personal que existe. Establece que cada usuario tiene una serie de contactos con los que comparte su clave pública de forma abierta o privada. Este esquema de propagación es muy utilizado por sistemas como PGP para el envió de correos privados y cifrados.
- Uso de criptografía basada en identidad. Este es un sencillo sistema de propagación que utiliza un sistema centralizado que gestiona nuestras claves. Las claves generadas están relacionadas con la identidad real o virtual que proporcionamos al sistema.
- Uso de criptografía basada en certificados. En este modelo el usuario posee una clave privada y otra pública. La clave pública la envía a una Autoridad de certificación. Esta se asegura utilizando criptografía basada en identidad de generar un certificado que asegura la validez de los datos.
- Uso de criptografía sin certificados. Este modelo es parecido al anterior con la salvedad que la clave privada generada por la autoridad es parcial. La clave privada final depende de la clave privada parcial y un número aleatorio calculado por el usuario. Esto garantiza un mayor nivel de seguridad.
Envío y recepción de mensajes
Una vez que hemos propagado las claves públicas de forma segura, podemos empezar a utilizar el sistema para enviar y recibir mensajes de forma segura. Este esquema de envío y recepción funciona generalmente de la siguiente forma:
- Juan genera un mensaje el cual es cifrado usando la clave pública de María, y firmado con la clave privada de Juan. Esto garantiza que el mensaje solo pueda ser visto por María y ella puede corroborar que inequívocamente proviene de Juan.
- El mensaje viaja firmado y cifrado por el canal de comunicación. Si es interceptado el esfuerzo será fútil porque no se podrá leer información alguna del mismo.
- Una vez que el mensaje llega a su destinatario María, ella usará su clave privada para descifrarlo. Al mismo tiempo, podrá usar la clave pública de Juan para validar que realmente el mensaje ha sido enviado por él.
- Se repite el proceso para realizar la respuesta correspondiente.
Como ven este proceso de comunicación resuelve de forma efectiva las comunicaciones seguras en canales abiertos. Corromper o manipular un mensaje enviado usando criptografía asimétrica no es cosa fácil. De hecho, un sistema de cifrado asimétrico bien construido haría prácticamente imposible tal cosa. De allí su uso tan extendido en Internet y en blockchain. Todo ello con el fin de ofrecer el máximo de seguridad a los usuarios.
Uso de la criptografía asimétrica en la blockchain
Desde su nacimiento la tecnología blockchain ha buscado la forma de brindar la mayor seguridad posible. En la búsqueda de tales niveles de seguridad, la criptografía asimétrica ha jugado un papel muy importante. Su uso permitió la generación de claves públicas (direcciones) y privadas que permiten asegurar, enviar y recibir criptomonedas de forma segura.
De hecho, la tecnología blockchain ha sido una perfecta herramienta para probar y desarrollar nuevas técnicas criptográficas. Avances que no solo tienen un impacto positivo en el ecosistema blockchain sino en la informática en general. Ejemplo de esto son por ejemplo los esquemas como las Pruebas de Conocimiento Cero (ZKP) o las firmas Schnorr.
Curso Elemental de NFT
Nivel básicoEstá claro que ya nada será igual desde los NFT, y por ello es esencial conocer todos los aspectos básicos que encierran este tipo de token.
Ventajas y Desventajas de la criptografía asimétrica
Ventajas
- Este sistema ofrece una alta tasa de seguridad, pues el esquema de cifrado es altamente complejo. El criptoanálisis de estos sistemas es complicado y los ataques de fuerza bruta para romperlo son ineficientes y nada prácticos.
- Permite asegurar canales de comunicación abiertos y públicos gracias al esquema de claves privada y pública. Esto permite que emisor y receptor puedan compartir información de forma segura.
- El sistema también permite la autentificación de la información cifrada gracias a un proceso de firmado digital.
- Ofrece un alto nivel de confidencialidad, integridad y garantiza el no-repudio de la información.
Desventajas
- En comparación con sistema de cifrado simétrico es computacionalmente más costoso.
- El sistema de cifrado es susceptible a elementos ajenos a la programación del sistema de cifrado. Por ejemplo, un generador de números aleatorios defectuoso comprometería el sistema de cifrado completamente.
- La complejidad de los algoritmos resulta en una dificultades en el análisis de funcionamiento y seguridad de los mismos. Esto hace que detectar fallos o bugs sea más complejo y difícil en estos sistemas.
- Algunos esquemas de propagación de confianza son centralizados. Esto es un importante punto de fallo que puede traducirse en manipulación de certificados si la estructura es comprometida.