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 pueden enviarle información cifrada que solo será accesible usando la clave privada del creador.
La tecnología de cifrado asimétrico 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 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 grabado 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 pulsos 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.
generacion de claves
El siguiente paso es la generación de las claves privadas y públicas. La primera en generase es la clave privada. Para su creación segura se ha de usar un generador de números aleatorios muy seguro y una piscina de entropía. Estos dos garantizarán que el número aleatorio aplicado a la fórmula matemática elegida sea realmente casual. Con ello garantizaremos la seguridad de la clave desde su inicio.
Una vez que el generador de números 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, cerrará 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 grabado que podrá resolver con nuestra clave privada. Sin embargo, nada ni nadie bajo ninguna circunstancia podrá revelar 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.
Propagacion 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 las claves más sencillas y personales que existen. 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 envío de correos privados y grabados.
- Uso de criptografía basada en identidad. Este es un sistema sencillo 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 salvación que la clave privada 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 grabado 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 pueda corroborar que inequívocamente proviene de Juan.
- El mensaje viaja firmado y grabado 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 probablemente sería 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 herramienta perfecta 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.
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 privadas y públicas. Esto permite que emisor y receptor puedan compartir información de forma segura.
- El sistema también permite la autenticación de la información cifrada gracias a un proceso de firma digital.
- Ofrece un alto nivel de confidencialidad, integridad y garantiza el no-repudio de la información.
Desventajas
- En comparación con el 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 defectuosos dañaría el sistema de encendido completamente.
- La complejidad de los algoritmos resulta en una dificultad en el análisis de funcionamiento y seguridad de los mismos. Esto hace que detectar fallas o errores 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 está comprometida.