En criptografía , el cifrado es el proceso de codificar información. Este proceso convierte la representación original de la información, conocida como texto sin formato , en una forma alternativa conocida como texto cifrado . Idealmente, sólo las partes autorizadas pueden descifrar un texto cifrado a texto sin formato y acceder a la información original. El cifrado en sí no previene la interferencia, pero niega el contenido inteligible a un posible interceptor.
Por razones técnicas, un esquema 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 esquema de cifrado bien diseñado, se requieren considerables recursos y habilidades computacionales. Un destinatario autorizado puede descifrar fácilmente el mensaje con la clave proporcionada por el autor a los destinatarios, pero no a los usuarios no autorizados.
Históricamente, se han utilizado diversas formas de cifrado para ayudar en 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 para descifrar el cifrado.
Una de las primeras formas de cifrado es la sustitución 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 de reemplazo de símbolos es "no estándar", lo que significa que los símbolos requieren un cifrado o clave para comprenderse. 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 , que era un sistema en el que una letra en un texto normal se desplaza hacia abajo un número fijo de posiciones en el alfabeto para obtener la letra codificada. Un mensaje codificado con este tipo de cifrado podría descodificarse con el número fijo del 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 frecuencia, que fue un intento de descifrar sistemáticamente los cifrados César. [2] Esta técnica analizó la frecuencia de las letras en el mensaje cifrado para determinar el cambio apropiado. Esta técnica quedó ineficaz después de la creación del cifrado polialfabético por León Battista Alberti en 1465, que incorporaba diferentes conjuntos de idiomas. Para que el análisis de frecuencia sea útil, la persona que intenta descifrar el mensaje necesitaría saber qué idioma eligió el remitente. [2]
Alrededor de 1790, Thomas Jefferson teorizó un cifrado para codificar y decodificar mensajes con el fin de proporcionar una forma más segura de correspondencia militar. El cifrado, conocido hoy como Wheel Cipher o Jefferson Disk , 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 podría descifrarse conectando el mensaje confuso a un receptor con un cifrado idéntico. [4]
Un dispositivo similar al Jefferson Disk, el M-94 , fue desarrollado de forma independiente en 1917 por el mayor del ejército estadounidense Joseph Mauborne. Este dispositivo se utilizó en las comunicaciones militares estadounidenses hasta 1942. [5]
En la Segunda Guerra Mundial, las potencias del Eje utilizaron una versión más avanzada del M-94 llamada Máquina Enigma . La Máquina Enigma era más compleja porque, a diferencia de la Rueda Jefferson y la M-94, cada día el revoltijo 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. [6] Los aliados utilizaron la potencia informática para limitar severamente el número de combinaciones razonables que necesitaban verificar todos los días, lo que llevó a la ruptura de la Máquina Enigma.
Hoy en día, el cifrado se utiliza en la transferencia de comunicaciones a través de Internet por motivos de seguridad y comercio. [1] A medida que la potencia informática sigue aumentando, el cifrado informático evoluciona constantemente para evitar ataques de escuchas ilegales . [7] Con uno de los primeros conjuntos de cifrado "modernos", DES , que utiliza una clave de 56 bits con 72.057.594.037.927.936 posibilidades que puede ser descifrada en 22 horas y 15 minutos por el cracker DES de EFF en 1999, que utilizaba un método de fuerza bruta. de agrietamiento. Los estándares de cifrado modernos suelen utilizar tamaños de clave más fuertes, a menudo 256, 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 forzados de forma bruta debido a la cantidad total de claves de 3.4028237e+38 posibilidades. La opción más probable para descifrar cifrados con un tamaño de clave alto es encontrar vulnerabilidades en el propio cifrado, como sesgos inherentes y puertas traseras . Por ejemplo, RC4 , un cifrado de flujo, fue descifrado debido a sesgos y vulnerabilidades inherentes al 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 contraseñas y comunicaciones personales, puede quedar expuesta a posibles interceptores . [1] El proceso de cifrar y descifrar mensajes implica claves . Los dos tipos principales de claves en los sistemas criptográficos son la clave simétrica y la clave pública (también conocida como clave asimétrica). [8] [9]
Muchos algoritmos criptográficos complejos suelen utilizar aritmética modular simple en sus implementaciones. [10]
En los esquemas de clave simétrica , [11] 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 decodificar mensajes.
En los esquemas de cifrado de clave pública , la clave de cifrado se publica para que cualquiera pueda usarla y cifrar mensajes. Sin embargo, sólo la parte receptora tiene acceso a la clave de descifrado que permite leer los mensajes. [12] El cifrado de clave pública se describió por primera vez en un documento secreto en 1973; [13] anteriormente, todos los esquemas de cifrado eran de clave simétrica (también llamada clave privada). [14] : 478 Aunque se publicó posteriormente, el trabajo de Diffie y Hellman se publicó en una revista con un gran número de lectores y el valor de la metodología se describió explícitamente. [15] El método pasó a ser conocido como intercambio de claves Diffie-Hellman .
RSA (Rivest–Shamir–Adleman) es otro criptosistema de clave pública notable . Creado en 1978, todavía se utiliza hoy en día para aplicaciones que implican firmas digitales . [16] Utilizando la teoría de números , el algoritmo RSA selecciona dos números primos , que ayudan a generar las claves de cifrado y descifrado. [17]
Phil Zimmermann escribió en 1991 una aplicación de cifrado de clave pública disponible públicamente llamada Pretty Good Privacy (PGP) y se distribuyó de forma gratuita con el código fuente. Symantec compró PGP en 2010 y se actualiza periódicamente. [18]
Los militares y los gobiernos han utilizado durante mucho tiempo el cifrado para facilitar las comunicaciones secretas. Actualmente se utiliza habitualmente para proteger información en 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% utilizaban cifrado para algunos de sus datos almacenados. [19] 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, que han quedado expuestos debido a la pérdida o el robo de computadoras portátiles o unidades de respaldo; cifrar dichos archivos en reposo ayuda a protegerlos si fallan las medidas de seguridad física. [20] [21] [22] Los sistemas de gestión de derechos digitales , que impiden el uso o la reproducción no autorizados de material protegido por derechos de autor y protegen el software contra la ingeniería inversa (ver también protección de copia ), es otro ejemplo algo diferente del uso del cifrado de datos en reposo. [23]
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 de bancos . En los últimos años ha habido numerosos informes sobre la interceptación de datos en tránsito. [24] Los datos también deben cifrarse cuando se transmiten a través de redes para protegerlos contra escuchas ilegales del tráfico de la red por parte de usuarios no autorizados. [25]
Los métodos convencionales para eliminar 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 manera de hacer que el borrado sea casi instantáneo. Este método se llama cripto-trituración . Se puede encontrar un ejemplo de implementación de este método en dispositivos iOS , donde la clave criptográfica se guarda en un "almacenamiento borrable" dedicado. [26] Debido a que la clave se almacena en el mismo dispositivo, esta configuración por sí sola no ofrece protección total de privacidad o seguridad si una persona no autorizada obtiene acceso físico al dispositivo.
El cifrado se utiliza en el siglo XXI para proteger los sistemas de información y datos digitales. A medida que la potencia informática aumentó a lo largo de los años, la tecnología de cifrado se ha vuelto más avanzada y segura. Sin embargo, este avance en la tecnología también ha expuesto 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. [27] Por ejemplo, la clave de cifrado original, DES (Estándar de cifrado de datos), 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 y es vulnerable a ataques de fuerza bruta . [28]
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. [29] Esta potencia informática 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 factorizar este número semiprimo, lo que puede llevar mucho tiempo en las computadoras modernas. A una supercomputadora le tomaría entre semanas y meses tener en cuenta esta clave. [ cita necesaria ] Sin embargo, la computación cuántica puede usar algoritmos cuánticos para factorizar este número semiprimo en la misma cantidad de tiempo que les toma a las computadoras normales 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. [30] 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 necesaria ]
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. [31] Además, los avances en la computación cuántica también podrán utilizarse a favor del cifrado. La Agencia de Seguridad Nacional (NSA) está preparando estándares de cifrado poscuánticos para el futuro. [32] El cifrado cuántico promete un nivel de seguridad que podrá contrarrestar la amenaza de la computación cuántica. [31]
El cifrado es una herramienta importante, pero no es suficiente por sí sola para garantizar la seguridad o privacidad de la información confidencial durante toda 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 confidenciales en texto claro y potencialmente vulnerables a una divulgación inadecuada durante el procesamiento, como por ejemplo mediante un servicio en la nube . El cifrado homomórfico y la computación multipartita segura son técnicas emergentes para calcular datos cifrados; Estas técnicas son generales y completas de Turing , pero incurren en 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, [33] ataques de texto cifrado robado , [34] ataques a claves de cifrado, [35] ataques internos , corrupción de datos o ataques de integridad, [36] ataques de destrucción de datos y ransomware. ataques. Las tecnologías de fragmentación de datos [37] y defensa activa [38] de protección de datos 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. [39]
La cuestión de equilibrar la necesidad de seguridad nacional con el derecho a la privacidad se ha debatido durante años, desde que el cifrado se ha vuelto crítico en la sociedad digital actual. El debate sobre la criptografía moderna [40] comenzó alrededor de los años 90, cuando el gobierno estadounidense 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 un cifrado fuerte como un problema que facilita a los delincuentes ocultar sus actos ilegales en línea y otros que argumentan que el cifrado mantiene seguras las comunicaciones digitales. El debate se acaloró en 2014, cuando las grandes tecnológicas como Apple y Google configuraron el cifrado de forma predeterminada en sus dispositivos. Este fue el inicio de una serie de controversias que ponen 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 cifrado y protección de integridad juntos. Los estándares para software y hardware criptográficos para realizar cifrado están ampliamente disponibles, pero utilizar 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 . [41]
Se deben aplicar mecanismos de protección de integridad, como MAC y firmas digitales , al texto cifrado cuando se crea por primera vez, generalmente en el mismo dispositivo utilizado para redactar el mensaje, para proteger un mensaje de un extremo a otro a lo largo de su ruta de transmisión completa; de lo contrario, cualquier nodo entre el remitente y el agente de cifrado podría alterarlo. El cifrado en el momento de la creación solo es seguro si el dispositivo de cifrado tiene las claves correctas y no ha sido manipulado. Si un dispositivo terminal 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 lugar 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 tal ataque, pero los países también han intentado emplear tales ataques como una forma de control y censura. [42]
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 e BREACH contra HTTPS fueron ataques de canal lateral que se basaron en la fuga de información a través de la longitud del contenido cifrado. [43] El análisis de tráfico es una clase amplia de técnicas que a menudo emplea longitudes de mensajes para inferir una implementación sensible sobre los flujos de tráfico agregando información sobre una gran cantidad de mensajes.
Rellenar la carga útil de un mensaje antes de cifrarlo puede ayudar a ocultar la verdadera longitud del texto sin cifrar, a costa de aumentar el tamaño del texto cifrado e introducir o aumentar la sobrecarga del ancho de banda . Los mensajes pueden rellenarse de forma aleatoria o determinista , y cada enfoque tiene diferentes compensaciones. Cifrar y rellenar mensajes para formar blobs aleatorios uniformes y acolchados o PURB es una práctica que garantiza que el texto cifrado no filtre metadatos sobre el contenido de su texto sin cifrar y filtre información asintóticamente mínima a través de su longitud. [44]