Cómo funcionan en línea las técnicas comunes de criptografía

Cómo funcionan en línea las técnicas comunes de criptografía

Sin las técnicas modernas de criptografía, Internet, tal como la conocemos, no existiría. Las comunicaciones seguras permiten prácticamente todas las interacciones en línea. Los algoritmos de cifrado permiten el intercambio seguro de datos y la verificación confiable de la identidad. Sin estas herramientas criptográficas comunes, nuestra moderna sociedad conectada no podría funcionar como lo hace hoy.

Algoritmos de cifrado de claves simétricas

sobrecifrado-simétrico

Los algoritmos de cifrado de clave simétrica se basan en una contraseña segura que actúa como clave. Esta es la forma más antigua de encriptación. Las llaves simétricas forman la base de todo, desde cerraduras de combinación hasta el cifrado moderno de discos duros. AES, DES y Blowfish son algoritmos modernos de cifrado de clave simétrica.

Dado que el cifrado simétrico requiere una clave compartida, el intercambio de claves debe realizarse de forma segura. Si bien las técnicas modernas como el intercambio de claves Diffie-Hellmen permiten intercambiar un secreto compartido a través de líneas inseguras, se requiere una sobrecarga de comunicación significativa para hacerlo, así como una confianza compartida entre las comunicaciones. Si una clave compartida no se puede intercambiar de forma segura, no se puede realizar la comunicación.

Si bien el cifrado de clave simétrica se utiliza en las comunicaciones en línea, casi siempre se combina con el cifrado de clave pública, lo que permite una comunicación segura a través de canales abiertos.

Algoritmos de cifrado de clave asimétrica (clave pública)

técnicas-de-cifrado-comunes-en-línea-clave-pública

El cifrado asimétrico o de clave pública utiliza un par de claves criptográficas. Estas claves se relacionan entre sí matemáticamente. La clave pública, ampliamente compartida, encripta el mensaje. La clave privada descifra el mensaje. Como resultado, cualquier remitente puede cifrar un mensaje con la clave pública del destinatario. Entonces pueden estar seguros de que solo el destinatario previsto puede descifrar el mensaje porque las partes no comparten ningún secreto; no necesitan confianza.

Como ejemplo práctico, considere esta analogía. ¿Qué pasa si Alice quiere comunicarse de forma segura con Bob, pero no confía en él?

  1. Alice compra una combinación de candado y llave. Ella abre el candado con su llave y le envía el candado abierto a Bob.
  2. Bob coloca su mensaje en una caja y usa el candado de Alice para cerrarlo.
  3. Bob le devuelve la caja cerrada a Alice, asegurada con el candado de Alice.
  4. Alice abre la caja con la llave del candado, que solo ella posee.

Para facilitar la comunicación, Alice puede duplicar el candado desbloqueado y publicarlo ampliamente. Cualquiera que tenga el candado puede enviarle comunicaciones seguras. Con una cerradura lo suficientemente compleja, un atacante no puede obtener la llave solo de la cerradura.

Seguridad en (grandes) números

Para permanecer seguros, estos algoritmos se basan en problemas complejos de candado/matemáticos sin una solución eficiente conocida. Estos problemas intratables definen funciones unidireccionales: fáciles de calcular en una dirección pero extremadamente difíciles de calcular hacia atrás. RSA, un algoritmo de clave pública de uso común, se basa en la dificultad de encontrar factores primos de números enteros con cientos de dígitos decimales.

Para empezar, un usuario de RSA genera dos números primos muy grandes. Estos números luego se multiplican para crear el producto. El usuario mantiene en secreto los factores primos que componen la clave privada. El usuario publica una clave pública derivada del producto del par principal. La clave pública cifra los mensajes; la clave privada los descifra.

Sin conocer los factores primos, encontrar los factores primos del producto llevaría una cantidad de tiempo inviable. RSA-1024, el estándar mínimo, utiliza productos binarios de 1024 bits hechos a partir de números primos binarios de 512 bits. Según las matemáticas, se necesitarían 5,95 × 10^211 años para factorizar sin la clave. En perspectiva, el universo solo ha existido durante un período comparativamente corto de 13,75 x 10^19 años.

Funciones hash

técnicas-de-cifrado-comunes-online-hash

Una función hash traduce un mensaje de longitud arbitraria a una cadena de longitud fija llamada hash o resumen. Los hashes criptográficos son deterministas: la misma entrada siempre produce la misma salida. Incluso los cambios menores en el mensaje darán como resultado un hash radicalmente diferente. Descubrir dos mensajes únicos que producen el mismo valor hash, llamado colisión hash, debería ser inviable.

Las firmas digitales y la autenticación de contraseña utilizan funciones hash como SHA. En lugar de autenticar su contraseña de texto sin formato, los servidores de inicio de sesión utilizan el hash de la contraseña. El servidor compara este hash con el hash almacenado en el servidor. Mismo hash, misma contraseña.

Hachís salados

técnicas-de-cifrado-comunes-en-línea-hash-sal

Para el almacenamiento de contraseñas, las empresas suelen agregar una «sal» antes del hash. Esta cadena generada aleatoriamente se concatena con el texto de la contraseña antes del hash, lo que garantiza que incluso dos contraseñas idénticas produzcan hashes distintos. Esto también protege contra un ataque de diccionario en una tabla robada de contraseñas cifradas.

Conclusión

Hasta la década de 1970, el cifrado se basaba en claves simétricas. Solo después de la prueba de encriptación de clave pública, dos claves diferentes, una de encriptación y otra de desencriptación, podrían usarse para comunicarse. Este cambio revolucionario, que permite la comunicación sin confianza, es lo que permite que Internet exista en la forma que tiene hoy. Todo, desde la banca y las compras hasta la mensajería y la navegación web, depende de él.

Experto Geek - Tu Guía en Tendencias Tecnológicas