La criptografía es la ciencia del uso de códigos y cifrados para proteger los mensajes, en su nivel más básico. El cifrado es la codificación de mensajes con la intención de permitir que el destinatario entienda el significado del mensaje. Es una función bidireccional (debe poder deshacer cualquier codificación que haya hecho al mensaje). Esto está diseñado para proteger los datos en tránsito.
Uno de los primeros cifrados implicaba un simple cambio. Por ejemplo, si solo cambia algunas letras del alfabeto por unas pocas, el alfabeto podría verse así:
NOPQRSTUVWXYZABCDEFGHIJKLM
Luego, cada letra del alfabeto corresponde a una letra diferente, pero es difícil determinar cuál, si aún no lo sabe. Usando este cifrado, el mensaje 'Hola' se traduce como 'Uryyb'.
Desafortunadamente, los avances en el análisis, particularmente el análisis de patrones impulsado por computadoras muy potentes, hicieron que este tipo de cifrados fuera muy fácil de romper.
En respuesta a eso, hemos desarrollado algoritmos muy fuertes y complejos. Estos se pueden dividir en dos tipos básicos de encriptaciones: Los algoritmos HASH, algoritmos simétricos y algoritmos asimétricos.
Los algoritmos simétricos también se conocen como algoritmos de 'clave secreta', y los algoritmos asimétricos se conocen como algoritmos de 'clave pública'. La diferencia clave entre los dos es que los algoritmos simétricos usan la misma clave para codificar y decodificar (vea la primera figura a continuación), mientras que los algoritmos asimétricos usan diferentes claves para el cifrado y descifrado (vea la segunda figura a continuación).
Como puede ver en la figura anterior, con cifrado simétrico, si el emisor y el recepto quieren comunicarse, el emisor primero cifra su mensaje con la clave secreta (el mensaje cifrado se llama texto cifrado). Luego se lo envía al receptor. receptor descifra el mensaje con la misma clave secreta y puede leer el mensaje. Para devolver un mensaje, se invierte el proceso.
Este proceso es rápido, escalable y muy seguro. El problema es que requiere que ambas partes ya tengan la misma clave secreta. Si no lo hacen, deben pasarlo por canales inseguros, lo que esencialmente elimina la seguridad del cifrado.
Con el cifrado asimétrico, como en la figura anterior, si Ana y David quieren comunicarse, Ana cifra su mensaje con la clave pública de David y se lo envía. Luego descifra el mensaje con su clave privada para leerlo. Para devolver un mensaje, se invierte el proceso.
De esta manera, cualquiera puede enviarle un mensaje a David, ya que puede hacer que su clave pública esté disponible para cualquiera, pero solo ella puede descifrar un mensaje (ya que mantiene su clave privada en secreto). También resuelve la necesidad de pasar una clave secreta a lo largo de canales inseguros, porque no hay necesidad de pasar un secreto en absoluto. La desventaja es que requiere que todos los que quieran comunicarse tengan dos claves diferentes (no escalables), y es relativamente lento.
En general, cuando se habla de cifrado, las consideraciones más importantes son:
- Autenticación / No repudio: si puede o no probar dónde se originaron los mensajes (¿Estoy seguro de quién envió este mensaje?).
- Reutilización: ¿puedo seguir usando esta clave o será necesario volver a generarla para cada nueva comunicación?
- Efectividad: ¿con qué rapidez puedo transferir grandes cantidades de datos?
- Escalabilidad: ¿es factible para grupos grandes?
- Distribución: ¿cómo distribuye las llaves a las personas con las que se está comunicando, sin divulgar el secreto a nadie más?
Ahí es donde comienzan a surgir diferencias significativas entre el cifrado simétrico y asimétrico, que se resume a continuación:
Para utilizar lo mejor de ambos mundos, muchos protocolos de cifrado modernos utilizarán cifrado asimétrico para establecer una conexión y crear un secreto compartido. Luego, cambiarán al cifrado simétrico para beneficiarse de la diferencia de velocidad.
Comentarios