En criptografía , el cifrado es el proceso de transformar (más específicamente, codificar ) información de manera que, idealmente, solo las partes autorizadas puedan decodificarla. Este proceso convierte la representación original de la información, conocida como texto simple , en una forma alternativa conocida como texto cifrado . A pesar de su objetivo, el cifrado en sí no evita las interferencias, sino que niega el contenido inteligible a un posible interceptor.
Por razones técnicas, un sistema de cifrado suele utilizar una clave de cifrado pseudoaleatoria generada por un algoritmo . Es posible descifrar el mensaje sin poseer la clave, pero para un sistema de cifrado bien diseñado se requieren considerables recursos computacionales y habilidades. Un destinatario autorizado puede descifrar fácilmente el mensaje con la clave proporcionada por el remitente a los destinatarios, pero no a los usuarios no autorizados.
Históricamente, se han utilizado diversas formas de cifrado para ayudar a la criptografía. Las primeras técnicas de cifrado se utilizaban a menudo en la mensajería militar. Desde entonces, han surgido nuevas técnicas que se han vuelto comunes en todas las áreas de la informática moderna. [1] Los esquemas de cifrado modernos utilizan los conceptos de clave pública y clave simétrica . [1] Las técnicas de cifrado modernas garantizan la seguridad porque las computadoras modernas son ineficientes a la hora de descifrar el cifrado.
Una de las primeras formas de cifrado es el reemplazo de símbolos, que se encontró por primera vez en la tumba de Khnumhotep II , que vivió en el año 1900 a. C. en Egipto. El cifrado por reemplazo de símbolos no es "estándar", lo que significa que los símbolos requieren un cifrado o una clave para ser entendidos. Este tipo de cifrado temprano se utilizó en toda la Antigua Grecia y Roma con fines militares. [2] Uno de los desarrollos de cifrado militar más famosos fue el cifrado César , en el que una letra de texto simple se desplaza un número fijo de posiciones a lo largo del alfabeto para obtener la letra codificada. Un mensaje codificado con este tipo de cifrado podría decodificarse con un número fijo en el cifrado César. [3]
Alrededor del año 800 d. C., el matemático árabe Al-Kindi desarrolló la técnica del análisis de frecuencias , que fue un intento de descifrar sistemáticamente los códigos, incluido el código César. [2] Esta técnica examinaba la frecuencia de las letras en el mensaje cifrado para determinar el cambio apropiado: por ejemplo, la letra más común en el texto en inglés es E y, por lo tanto, es probable que esté representada por la letra que aparece con mayor frecuencia en el texto cifrado. Esta técnica se volvió ineficaz con el código polialfabético , descrito por Al-Qalqashandi (1355-1418) [4] y Leon Battista Alberti (en 1465), que variaba el alfabeto de sustitución a medida que avanzaba el cifrado para confundir dicho análisis.
Alrededor de 1790, Thomas Jefferson teorizó sobre un sistema de cifrado para codificar y descodificar mensajes con el fin de proporcionar una forma más segura de correspondencia militar. El sistema de cifrado, conocido hoy como el sistema de cifrado de rueda o el disco de Jefferson , aunque nunca llegó a construirse, se teorizó como un carrete que podía mezclar un mensaje en inglés de hasta 36 caracteres. El mensaje podía descifrarse conectando el mensaje mezclado a un receptor con un sistema de cifrado idéntico. [5]
En 1917, el mayor del ejército estadounidense Joseph Mauborne desarrolló de forma independiente un dispositivo similar al disco de Jefferson, el M-94 , que se utilizó en las comunicaciones militares estadounidenses hasta 1942. [6]
En la Segunda Guerra Mundial, las potencias del Eje utilizaron una versión más avanzada de la M-94 llamada la máquina Enigma . La máquina Enigma era más compleja porque, a diferencia de la Rueda de Jefferson y la M-94, cada día el conjunto de letras cambiaba a una combinación completamente nueva. La combinación de cada día solo la conocía el Eje, por lo que muchos pensaron que la única forma de descifrar el código sería probar más de 17.000 combinaciones en 24 horas. [7] Los Aliados utilizaron la potencia informática para limitar severamente la cantidad de combinaciones razonables que necesitaban comprobar cada día, lo que llevó a la desciframiento de la máquina Enigma.
Hoy en día, el cifrado se utiliza en la transferencia de comunicaciones a través de Internet para la seguridad y el comercio. [1] A medida que la potencia informática sigue aumentando, el cifrado de las computadoras evoluciona constantemente para evitar ataques de espionaje . [8] Uno de los primeros conjuntos de cifrado "modernos", DES , utilizaba una clave de 56 bits con 72.057.594.037.927.936 posibilidades; fue descifrado en 1999 por el descifrador de fuerza bruta DES de la EFF , que requirió 22 horas y 15 minutos para hacerlo. Los estándares de cifrado modernos a menudo utilizan tamaños de clave más fuertes, como AES (modo de 256 bits), TwoFish , ChaCha20-Poly1305 , Serpent (configurable hasta 512 bits). Los conjuntos de cifrado que utilizan una clave de 128 bits o superior, como AES, no podrán ser descifrados por fuerza bruta porque la cantidad total de claves es de 3,4028237e+38 posibilidades. La opción más probable para descifrar cifrados con un tamaño de clave elevado es encontrar vulnerabilidades en el propio cifrado, como sesgos inherentes y puertas traseras , o explotar efectos secundarios físicos mediante ataques de canal lateral . Por ejemplo, RC4 , un cifrado de flujo, se descifró debido a sesgos inherentes y vulnerabilidades en el cifrado.
En el contexto de la criptografía, el cifrado sirve como mecanismo para garantizar la confidencialidad . [1] Dado que los datos pueden ser visibles en Internet, la información confidencial, como las contraseñas y las comunicaciones personales, puede quedar expuesta a posibles interceptores . [1] El proceso de cifrado y descifrado de mensajes implica claves . Los dos tipos principales de claves en los sistemas criptográficos son las de clave simétrica y las de clave pública (también conocidas como clave asimétrica). [9] [10]
Muchos algoritmos criptográficos complejos a menudo utilizan aritmética modular simple en sus implementaciones. [11]
En los esquemas de clave simétrica , [12] las claves de cifrado y descifrado son las mismas. Las partes que se comunican deben tener la misma clave para lograr una comunicación segura. La máquina Enigma alemana utilizaba una nueva clave simétrica cada día para codificar y descodificar mensajes. Además de los tipos de cifrado tradicionales, las personas pueden mejorar su seguridad utilizando VPN o configuraciones específicas del navegador para cifrar su conexión a Internet, lo que proporciona protección adicional de la privacidad mientras navegan por la web. [13]
En los esquemas de cifrado de clave pública , la clave de cifrado se publica para que cualquiera la use y cifre los mensajes. Sin embargo, solo la parte receptora tiene acceso a la clave de descifrado que permite leer los mensajes. [14] El cifrado de clave pública se describió por primera vez en un documento secreto en 1973; [15] antes, todos los esquemas de cifrado eran de clave simétrica (también llamados de clave privada). [16] : 478 Aunque se publicó posteriormente, el trabajo de Diffie y Hellman se publicó en una revista con un gran número de lectores, y se describió explícitamente el valor de la metodología. [17] El método se conoció como el intercambio de claves Diffie-Hellman .
RSA (Rivest–Shamir–Adleman) es otro sistema criptográfico de clave pública notable . Creado en 1978, todavía se utiliza hoy en día para aplicaciones que involucran firmas digitales . [18] Utilizando la teoría de números , el algoritmo RSA selecciona dos números primos , que ayudan a generar tanto las claves de cifrado como de descifrado. [19]
En 1991, Phil Zimmermann escribió una aplicación de cifrado de clave pública disponible públicamente llamada Pretty Good Privacy (PGP) , que se distribuyó gratuitamente con el código fuente. Symantec adquirió PGP en 2010 y se actualiza periódicamente. [20]
El cifrado ha sido utilizado durante mucho tiempo por los ejércitos y los gobiernos para facilitar la comunicación secreta. Ahora se utiliza comúnmente para proteger la información dentro de muchos tipos de sistemas civiles. Por ejemplo, el Instituto de Seguridad Informática informó que en 2007, el 71% de las empresas encuestadas utilizaban cifrado para algunos de sus datos en tránsito, y el 53% utilizaba cifrado para algunos de sus datos almacenados. [21] El cifrado se puede utilizar para proteger datos "en reposo", como la información almacenada en computadoras y dispositivos de almacenamiento (por ejemplo, unidades flash USB ). En los últimos años, ha habido numerosos informes de datos confidenciales, como registros personales de clientes, expuestos a través de la pérdida o el robo de computadoras portátiles o unidades de respaldo; cifrar dichos archivos en reposo ayuda a protegerlos si las medidas de seguridad físicas fallan. [22] [23] [24] Los sistemas de gestión de derechos digitales , que evitan el uso o la reproducción no autorizados de material con derechos de autor y protegen el software contra la ingeniería inversa (ver también protección de copia ), es otro ejemplo algo diferente de uso del cifrado en datos en reposo. [25]
El cifrado también se utiliza para proteger los datos en tránsito, por ejemplo, los datos que se transfieren a través de redes (por ejemplo, Internet, comercio electrónico ), teléfonos móviles , micrófonos inalámbricos , sistemas de intercomunicación inalámbricos , dispositivos Bluetooth y cajeros automáticos bancarios . En los últimos años ha habido numerosos informes sobre datos en tránsito que han sido interceptados. [26] Los datos también deben cifrarse cuando se transmiten a través de redes para protegerse contra el espionaje del tráfico de red por parte de usuarios no autorizados. [27]
Los métodos convencionales para borrar permanentemente datos de un dispositivo de almacenamiento implican sobrescribir todo el contenido del dispositivo con ceros, unos u otros patrones, un proceso que puede llevar una cantidad significativa de tiempo, dependiendo de la capacidad y el tipo de medio de almacenamiento. La criptografía ofrece una forma de hacer que el borrado sea casi instantáneo. Este método se llama cripto-destrucción . Un ejemplo de implementación de este método se puede encontrar en dispositivos iOS , donde la clave criptográfica se guarda en un "almacenamiento borrable" dedicado. [28] Debido a que la clave se almacena en el mismo dispositivo, esta configuración por sí sola no ofrece privacidad total o protección de seguridad si una persona no autorizada obtiene acceso físico al dispositivo.
En el siglo XXI, el cifrado se utiliza para proteger los datos digitales y los sistemas de información. A medida que la potencia informática ha aumentado con el paso de los años, la tecnología de cifrado se ha vuelto cada vez más avanzada y segura. Sin embargo, este avance tecnológico también ha puesto de manifiesto una posible limitación de los métodos de cifrado actuales.
La longitud de la clave de cifrado es un indicador de la solidez del método de cifrado. [29] Por ejemplo, la clave de cifrado original, DES (Data Encryption Standard), era de 56 bits, lo que significa que tenía 2^56 posibilidades de combinación. Con la potencia informática actual, una clave de 56 bits ya no es segura, siendo vulnerable a ataques de fuerza bruta . [30]
La computación cuántica utiliza propiedades de la mecánica cuántica para procesar grandes cantidades de datos simultáneamente. Se ha descubierto que la computación cuántica alcanza velocidades de computación miles de veces más rápidas que las supercomputadoras actuales. [31] Esta potencia de computación presenta un desafío para la tecnología de cifrado actual. Por ejemplo, el cifrado RSA utiliza la multiplicación de números primos muy grandes para crear un número semiprimo para su clave pública. Decodificar esta clave sin su clave privada requiere que se factorice este número semiprimo, lo que puede llevar mucho tiempo en las computadoras modernas. Una supercomputadora tardaría entre semanas y meses en factorizar esta clave. [ cita requerida ] Sin embargo, la computación cuántica puede utilizar algoritmos cuánticos para factorizar este número semiprimo en la misma cantidad de tiempo que tardan las computadoras normales en generarlo. Esto haría que todos los datos protegidos por el cifrado de clave pública actual sean vulnerables a los ataques de la computación cuántica. [32] Otras técnicas de cifrado como la criptografía de curva elíptica y el cifrado de clave simétrica también son vulnerables a la computación cuántica. [ cita requerida ]
Si bien la computación cuántica podría ser una amenaza para la seguridad del cifrado en el futuro, la computación cuántica tal como está actualmente todavía es muy limitada. Actualmente, la computación cuántica no está disponible comercialmente, no puede manejar grandes cantidades de código y solo existe como dispositivos computacionales, no como computadoras. [33] Además, los avances en computación cuántica también podrán usarse en favor del cifrado. La Agencia de Seguridad Nacional (NSA) está preparando actualmente estándares de cifrado post-cuántico para el futuro. [34] El cifrado cuántico promete un nivel de seguridad que podrá contrarrestar la amenaza de la computación cuántica. [33]
El cifrado es una herramienta importante, pero no es suficiente por sí solo para garantizar la seguridad o privacidad de la información sensible durante su vida útil. La mayoría de las aplicaciones de cifrado protegen la información solo en reposo o en tránsito, dejando los datos sensibles en texto claro y potencialmente vulnerables a una divulgación indebida durante el procesamiento, como por ejemplo en un servicio en la nube . El cifrado homomórfico y el cómputo multipartito seguro son técnicas emergentes para calcular datos cifrados; estas técnicas son generales y completas de Turing , pero implican altos costos computacionales y/o de comunicación.
En respuesta al cifrado de datos en reposo, los ciberadversarios han desarrollado nuevos tipos de ataques. Estas amenazas más recientes al cifrado de datos en reposo incluyen ataques criptográficos, [35] ataques de texto cifrado robado , [36] ataques a claves de cifrado, [37] ataques internos , ataques de corrupción o integridad de datos, [38] ataques de destrucción de datos y ataques de ransomware . Las tecnologías de protección de datos de fragmentación de datos [39] y defensa activa [40] intentan contrarrestar algunos de estos ataques distribuyendo, moviendo o mutando el texto cifrado para que sea más difícil de identificar, robar, corromper o destruir. [41]
La cuestión de equilibrar la necesidad de seguridad nacional con el derecho a la privacidad ha sido debatida durante años, ya que el cifrado se ha vuelto crítico en la sociedad digital actual. El debate sobre el cifrado moderno [42] comenzó alrededor de los años 90, cuando el gobierno de Estados Unidos intentó prohibir la criptografía porque, según ellos, amenazaría la seguridad nacional. El debate está polarizado en torno a dos puntos de vista opuestos. Aquellos que ven el cifrado fuerte como un problema que facilita que los delincuentes oculten sus actos ilegales en línea y otros que argumentan que el cifrado mantiene seguras las comunicaciones digitales. El debate se calentó en 2014, cuando las grandes empresas tecnológicas como Apple y Google establecieron el cifrado por defecto en sus dispositivos. Este fue el comienzo de una serie de controversias que pone en juego a gobiernos, empresas y usuarios de Internet.
El cifrado, por sí solo, puede proteger la confidencialidad de los mensajes, pero aún se necesitan otras técnicas para proteger la integridad y autenticidad de un mensaje; por ejemplo, la verificación de un código de autenticación de mensajes (MAC) o una firma digital generalmente se realiza mediante un algoritmo hash o una firma PGP . Los algoritmos de cifrado autenticados están diseñados para proporcionar tanto cifrado como protección de integridad juntos. Los estándares para software y hardware criptográficos para realizar cifrado están ampliamente disponibles, pero usar el cifrado con éxito para garantizar la seguridad puede ser un problema desafiante. Un solo error en el diseño o ejecución del sistema puede permitir ataques exitosos. A veces, un adversario puede obtener información no cifrada sin deshacer directamente el cifrado. Véase, por ejemplo, análisis de tráfico , TEMPEST o caballo de Troya . [43]
Los mecanismos de protección de la integridad, como las direcciones MAC y las firmas digitales, deben aplicarse al texto cifrado cuando se crea por primera vez, normalmente en el mismo dispositivo utilizado para componer el mensaje, para proteger un mensaje de extremo a extremo a lo largo de toda su ruta de transmisión; de lo contrario, cualquier nodo entre el remitente y el agente de cifrado podría potencialmente alterarlo. El cifrado en el momento de la creación solo es seguro si el propio dispositivo de cifrado tiene las claves correctas y no ha sido alterado. Si un dispositivo de punto final se ha configurado para confiar en un certificado raíz que controla un atacante, por ejemplo, entonces el atacante puede inspeccionar y alterar los datos cifrados realizando un ataque de intermediario en cualquier parte a lo largo de la ruta del mensaje. La práctica común de interceptación de TLS por parte de los operadores de red representa una forma controlada y sancionada institucionalmente de dicho ataque, pero los países también han intentado emplear dichos ataques como una forma de control y censura. [44]
Incluso cuando el cifrado oculta correctamente el contenido de un mensaje y no se puede alterar en reposo o en tránsito, la longitud de un mensaje es una forma de metadatos que aún puede filtrar información confidencial sobre el mensaje. Por ejemplo, los conocidos ataques CRIME y BREACH contra HTTPS fueron ataques de canal lateral que se basaron en la filtración de información a través de la longitud del contenido cifrado. [45] El análisis de tráfico es una amplia clase de técnicas que a menudo emplean longitudes de mensajes para inferir la implementación sensible sobre los flujos de tráfico mediante la agregación de información sobre una gran cantidad de mensajes.
Rellenar la carga útil de un mensaje antes de cifrarlo puede ayudar a ocultar la longitud real del texto claro, a costa de aumentar el tamaño del texto cifrado e introducir o aumentar la sobrecarga de ancho de banda . Los mensajes se pueden rellenar de forma aleatoria o determinista , y cada enfoque tiene diferentes ventajas y desventajas. Cifrar y rellenar mensajes para formar blobs aleatorios uniformes acolchados o PURB es una práctica que garantiza que el texto cifrado no filtre metadatos sobre el contenido de su texto claro y filtre información mínima asintóticamente a través de su longitud. [46]