La criptografía , o criptología (del griego antiguo : κρυπτός , romanizado : kryptós "oculto, secreto"; y γράφειν graphein , "escribir", o -λογία -logia , "estudio", respectivamente [1] ), es la práctica y el estudio de técnicas para la comunicación segura en presencia de comportamiento adversario . [2] De manera más general, la criptografía trata sobre la construcción y el análisis de protocolos que evitan que terceros o el público lean mensajes privados. [3] La criptografía moderna existe en la intersección de las disciplinas de las matemáticas, la informática , la seguridad de la información , la ingeniería eléctrica , el procesamiento de señales digitales , la física y otras. [4] Los conceptos básicos relacionados con la seguridad de la información ( confidencialidad de los datos , integridad de los datos , autenticación y no repudio ) también son fundamentales para la criptografía. [5] Las aplicaciones prácticas de la criptografía incluyen el comercio electrónico , las tarjetas de pago basadas en chip , las monedas digitales , las contraseñas de computadoras y las comunicaciones militares .
La criptografía antes de la era moderna era efectivamente sinónimo de cifrado , convirtiendo información legible ( texto simple ) en texto sin sentido ininteligible ( texto cifrado ), que solo se puede leer invirtiendo el proceso ( descifrado ). El remitente de un mensaje cifrado (codificado) comparte la técnica de descifrado (decodificación) solo con los destinatarios previstos para impedir el acceso de los adversarios. La literatura criptográfica a menudo utiliza los nombres "Alice" (o "A") para el remitente, "Bob" (o "B") para el destinatario previsto y "Eve" (o "E") para el adversario que escucha a escondidas . [6] Desde el desarrollo de las máquinas de cifrado de rotor en la Primera Guerra Mundial y la llegada de las computadoras en la Segunda Guerra Mundial , los métodos criptográficos se han vuelto cada vez más complejos y sus aplicaciones más variadas.
La criptografía moderna se basa en gran medida en la teoría matemática y la práctica de la ciencia informática; los algoritmos criptográficos están diseñados en torno a supuestos de dureza computacional , lo que hace que dichos algoritmos sean difíciles de romper en la práctica real por cualquier adversario. Si bien es teóricamente posible entrar en un sistema bien diseñado, es inviable en la práctica real hacerlo. Por lo tanto, estos esquemas, si están bien diseñados, se denominan "computacionalmente seguros". Los avances teóricos (por ejemplo, las mejoras en los algoritmos de factorización de números enteros ) y la tecnología informática más rápida requieren que estos diseños se reevalúen continuamente y, si es necesario, se adapten. Los esquemas teóricamente seguros de la información que se puede demostrar que no se pueden romper ni siquiera con un poder de cómputo ilimitado, como el bloc de un solo uso , son mucho más difíciles de usar en la práctica que los mejores esquemas teóricamente rompibles pero computacionalmente seguros.
El crecimiento de la tecnología criptográfica ha planteado una serie de cuestiones jurídicas en la era de la información . El potencial de la criptografía para su uso como herramienta de espionaje y sedición ha llevado a muchos gobiernos a clasificarla como un arma y a limitar o incluso prohibir su uso y exportación. [7] En algunas jurisdicciones donde el uso de la criptografía es legal, las leyes permiten a los investigadores obligar a la divulgación de claves de cifrado para documentos relevantes para una investigación. [8] [9] La criptografía también desempeña un papel importante en la gestión de derechos digitales y en las disputas por infracción de derechos de autor en relación con los medios digitales . [10]
El primer uso del término "criptografía" (en oposición a " criptograma ") se remonta al siglo XIX, y tiene su origen en " El escarabajo de oro ", un cuento de Edgar Allan Poe . [11] [12]
Hasta los tiempos modernos, la criptografía se refería casi exclusivamente al "cifrado", que es el proceso de convertir información ordinaria (llamada texto plano ) en una forma ininteligible (llamada texto cifrado ). [13] El descifrado es lo inverso, en otras palabras, pasar del texto cifrado ininteligible de nuevo al texto plano. Un cifrado (o cifrador) es un par de algoritmos que llevan a cabo el cifrado y el descifrado inverso. El funcionamiento detallado de un cifrado está controlado tanto por el algoritmo como, en cada caso, por una "clave". La clave es un secreto (idealmente conocido solo por los comunicantes), normalmente una cadena de caracteres (idealmente corta para que pueda ser recordada por el usuario), que se necesita para descifrar el texto cifrado. En términos matemáticos formales, un " criptosistema " es la lista ordenada de elementos de textos planos finitos posibles, textos cifrados finitos posibles, claves finitas posibles y los algoritmos de cifrado y descifrado que corresponden a cada clave. Las claves son importantes tanto formalmente como en la práctica, ya que los sistemas de cifrado sin claves variables pueden descifrarse fácilmente con solo conocer el sistema de cifrado utilizado y, por lo tanto, son inútiles (o incluso contraproducentes) para la mayoría de los propósitos. Históricamente, los sistemas de cifrado se solían utilizar directamente para cifrar o descifrar sin procedimientos adicionales como la autenticación o las comprobaciones de integridad.
Existen dos tipos principales de criptosistemas: simétricos y asimétricos . En los sistemas simétricos, los únicos conocidos hasta la década de 1970, la misma clave secreta cifra y descifra un mensaje. La manipulación de datos en sistemas simétricos es significativamente más rápida que en los asimétricos. Los sistemas asimétricos utilizan una "clave pública" para cifrar un mensaje y una "clave privada" relacionada para descifrarlo. La ventaja de los sistemas asimétricos es que la clave pública se puede publicar libremente, lo que permite a las partes establecer una comunicación segura sin tener una clave secreta compartida. En la práctica, los sistemas asimétricos se utilizan para intercambiar primero una clave secreta y luego la comunicación segura procede a través de un sistema simétrico más eficiente que utiliza esa clave. [14] Los ejemplos de sistemas asimétricos incluyen el intercambio de claves Diffie-Hellman , RSA ( Rivest-Shamir-Adleman ), ECC ( Criptografía de curva elíptica ) y la criptografía postcuántica . Los algoritmos simétricos seguros incluyen el AES ( Estándar de cifrado avanzado ) de uso común que reemplazó al antiguo DES ( Estándar de cifrado de datos ). [15] Los algoritmos simétricos inseguros incluyen esquemas de enredo del lenguaje infantil como Pig Latin u otras jergas , y todos los esquemas criptográficos históricos, por más serios que hayan sido concebidos, anteriores a la invención de la libreta de un solo uso a principios del siglo XX.
En el uso coloquial , el término " código " se utiliza a menudo para referirse a cualquier método de cifrado o de ocultación de significados. Sin embargo, en criptografía, código tiene un significado más específico: la sustitución de una unidad de texto simple (es decir, una palabra o frase con significado) por una palabra clave (por ejemplo, "ualabí" sustituye a "ataque al amanecer"). Un cifrado, en cambio, es un esquema para cambiar o sustituir un elemento por debajo de dicho nivel (una letra, una sílaba o un par de letras, etc.) para producir un texto cifrado.
Criptoanálisis es el término utilizado para el estudio de métodos para obtener el significado de información cifrada sin acceso a la clave normalmente requerida para hacerlo; es decir, es el estudio de cómo "descifrar" algoritmos de cifrado o sus implementaciones.
Algunos utilizan los términos "criptografía" y "criptología" indistintamente en inglés, [16] mientras que otros (incluida la práctica militar estadounidense en general) utilizan "criptografía" para referirse específicamente al uso y la práctica de técnicas criptográficas y "criptología" para referirse al estudio combinado de la criptografía y el criptoanálisis. [17] [18] El inglés es más flexible que varios otros idiomas en los que "criptología" (realizada por criptólogos) siempre se utiliza en el segundo sentido mencionado anteriormente. El RFC 2828 advierte que la esteganografía a veces se incluye en la criptología. [19]
El estudio de las características de los lenguajes que tienen alguna aplicación en criptografía o criptología (por ejemplo, datos de frecuencia, combinaciones de letras, patrones universales, etc.) se denomina criptolingüística. La criptolingüística se utiliza especialmente en aplicaciones de inteligencia militar para descifrar comunicaciones extranjeras. [20] [21]
Antes de la era moderna, la criptografía se centraba en la confidencialidad de los mensajes (es decir, el cifrado): la conversión de mensajes de una forma comprensible a una incomprensible y viceversa en el otro extremo, volviéndolos ilegibles para interceptores o fisgones sin conocimiento secreto (es decir, la clave necesaria para descifrar ese mensaje). El cifrado intentaba garantizar el secreto en las comunicaciones, como las de espías , líderes militares y diplomáticos. En las últimas décadas, el campo se ha expandido más allá de las preocupaciones de confidencialidad para incluir técnicas para la verificación de la integridad de los mensajes, la autenticación de la identidad del remitente/receptor, las firmas digitales , las pruebas interactivas y la computación segura , entre otras.
Los principales tipos de cifrados clásicos son los cifrados de transposición , que reorganizan el orden de las letras en un mensaje (por ejemplo, "hola mundo" se convierte en "ehlol owrdl" en un esquema de reordenamiento trivialmente simple), y los cifrados de sustitución , que reemplazan sistemáticamente letras o grupos de letras con otras letras o grupos de letras (por ejemplo, "vuela de inmediato" se convierte en "gmz bu podf" reemplazando cada letra con la que la sigue en el alfabeto latino ). [22] Las versiones simples de cualquiera de ellos nunca han ofrecido mucha confidencialidad frente a oponentes emprendedores. Un cifrado de sustitución temprano fue el cifrado de César , en el que cada letra en el texto simple se reemplazaba por una letra un número fijo de posiciones más abajo en el alfabeto. Suetonio informa que Julio César lo usó con un desplazamiento de tres para comunicarse con sus generales. Atbash es un ejemplo de un cifrado hebreo temprano. El uso más antiguo conocido de la criptografía es un texto cifrado tallado en piedra en Egipto ( c. 1900 a. C. ), pero es posible que se haya hecho para diversión de observadores alfabetizados más que como una forma de ocultar información.
Se dice que los griegos de la época clásica conocían los cifrados (por ejemplo, el cifrado de transposición de escítala que se afirma que fue utilizado por el ejército espartano ). [23] La esteganografía (es decir, ocultar incluso la existencia de un mensaje para mantenerlo confidencial) también se desarrolló por primera vez en la antigüedad. Un ejemplo temprano, de Heródoto , fue un mensaje tatuado en la cabeza rapada de un esclavo y oculto bajo el cabello que había vuelto a crecer. [13] Otros métodos de esteganografía implican "ocultarse a simple vista", como usar un cifrado musical para disfrazar un mensaje cifrado dentro de una partitura regular. Ejemplos más modernos de esteganografía incluyen el uso de tinta invisible , micropuntos y marcas de agua digitales para ocultar información.
En la India, el Kama Sutra de Vātsyāyana, de 2000 años de antigüedad, habla de dos tipos diferentes de cifrados llamados Kautiliyam y Mulavediya. En el Kautiliyam, las sustituciones de letras del cifrado se basan en relaciones fonéticas, como las vocales que se convierten en consonantes. En el Mulavediya, el alfabeto cifrado consiste en emparejar letras y utilizar las recíprocas. [13]
En la Persia sasánida , había dos escrituras secretas, según el autor musulmán Ibn al-Nadim : la šāh-dabīrīya (literalmente "escritura del rey"), que se utilizaba para la correspondencia oficial, y la rāz-saharīya , que se utilizaba para comunicar mensajes secretos con otros países. [24]
David Kahn señala en The Codebreakers que la criptología moderna se originó entre los árabes , las primeras personas en documentar sistemáticamente los métodos criptoanalíticos. [25] Al-Khalil (717-786) escribió el Libro de mensajes criptográficos , que contiene el primer uso de permutaciones y combinaciones para enumerar todas las posibles palabras árabes con y sin vocales. [26]
Los textos cifrados producidos por un cifrador clásico (y algunos cifrados modernos) revelarán información estadística sobre el texto simple, y esa información a menudo puede usarse para descifrar el cifrado. Después del descubrimiento del análisis de frecuencia , casi todos esos cifrados podían ser descifrados por un atacante informado. Dichos cifrados clásicos aún gozan de popularidad hoy en día, aunque principalmente como rompecabezas (ver criptograma ). El matemático y polímata árabe Al-Kindi escribió un libro sobre criptografía titulado Risalah fi Istikhraj al-Mu'amma ( Manuscrito para descifrar mensajes criptográficos ), que describía el primer uso conocido de técnicas de criptoanálisis de análisis de frecuencia. [27] [28]
Las frecuencias de las letras de los idiomas pueden resultar de poca ayuda para algunas técnicas de cifrado históricas extendidas, como el cifrado homofónico , que tienden a aplanar la distribución de frecuencias. Para esos cifrados, las frecuencias de los grupos de letras de los idiomas (o n-gramas) pueden proporcionar un ataque.
En esencia, todos los cifrados siguieron siendo vulnerables al criptoanálisis mediante la técnica de análisis de frecuencia hasta el desarrollo del cifrado polialfabético , más claramente por Leon Battista Alberti alrededor del año 1467, aunque hay algunos indicios de que ya lo conocía Al-Kindi. [28] La innovación de Alberti fue utilizar diferentes cifrados (es decir, alfabetos de sustitución) para varias partes de un mensaje (quizás para cada letra sucesiva de texto simple en el límite). También inventó lo que probablemente fue el primer dispositivo de cifrado automático , una rueda que implementó una realización parcial de su invención. En el cifrado Vigenère , un cifrado polialfabético , el cifrado utiliza una palabra clave , que controla la sustitución de letras dependiendo de qué letra de la palabra clave se utiliza. A mediados del siglo XIX, Charles Babbage demostró que el cifrado Vigenère era vulnerable al examen de Kasiski , pero esto fue publicado por primera vez unos diez años después por Friedrich Kasiski . [29]
Aunque el análisis de frecuencia puede ser una técnica poderosa y general contra muchos cifrados, el cifrado ha seguido siendo a menudo eficaz en la práctica, ya que muchos criptoanalistas potenciales desconocían la técnica. Descifrar un mensaje sin utilizar el análisis de frecuencia requería esencialmente el conocimiento del cifrado utilizado y quizás de la clave involucrada, lo que hacía que el espionaje, el soborno, el robo, la deserción, etc., fueran enfoques más atractivos para los criptoanalistas desinformados. Finalmente, en el siglo XIX se reconoció explícitamente que el secreto del algoritmo de un cifrado no es una salvaguarda sensata ni práctica de la seguridad del mensaje; de hecho, se comprendió además que cualquier esquema criptográfico adecuado (incluidos los cifrados) debería seguir siendo seguro incluso si el adversario comprende completamente el algoritmo del cifrado en sí. La seguridad de la clave utilizada debería ser suficiente por sí sola para que un buen cifrado mantenga la confidencialidad ante un ataque. Este principio fundamental fue enunciado explícitamente por primera vez en 1883 por Auguste Kerckhoffs y generalmente se denomina Principio de Kerckhoffs ; Alternativamente, y de forma más contundente, Claude Shannon , el inventor de la teoría de la información y los fundamentos de la criptografía teórica, lo reiteró como la máxima de Shannon : "el enemigo conoce el sistema".
Se han utilizado diferentes dispositivos físicos y ayudas para ayudar con los cifrados. Uno de los primeros puede haber sido la escítala de la antigua Grecia, una varilla supuestamente utilizada por los espartanos como ayuda para un cifrado de transposición. En la época medieval, se inventaron otras ayudas como la rejilla de cifrado , que también se utilizó para una especie de esteganografía. Con la invención de los cifrados polialfabéticos llegaron ayudas más sofisticadas como el disco de cifrado del propio Alberti , el esquema de tabula recta de Johannes Trithemius y el cifrado de rueda de Thomas Jefferson (no conocido públicamente, y reinventado independientemente por Bazeries alrededor de 1900). Muchos dispositivos mecánicos de cifrado/descifrado se inventaron a principios del siglo XX, y varios fueron patentados, entre ellos las máquinas de rotor , entre las que se incluye la famosa máquina Enigma utilizada por el gobierno y el ejército alemán desde fines de la década de 1920 y durante la Segunda Guerra Mundial . [30] Los cifrados implementados por ejemplos de mejor calidad de estos diseños de máquinas provocaron un aumento sustancial en la dificultad criptoanalítica después de la Primera Guerra Mundial. [31]
El criptoanálisis de los nuevos dispositivos de cifrado mecánico resultó ser difícil y laborioso. En el Reino Unido, los esfuerzos criptoanalíticos en Bletchley Park durante la Segunda Guerra Mundial impulsaron el desarrollo de medios más eficientes para llevar a cabo tareas repetitivas, como el descifrado de códigos militares . Esto culminó con el desarrollo de Colossus , la primera computadora digital, programable y totalmente electrónica del mundo , que ayudó a descifrar los códigos generados por la máquina Lorenz SZ40/42 del ejército alemán .
La investigación académica abierta y extensa sobre criptografía es relativamente reciente, y comenzó a mediados de la década de 1970. A principios de la década de 1970, el personal de IBM diseñó el algoritmo Data Encryption Standard (DES) que se convirtió en el primer estándar de criptografía del gobierno federal en los Estados Unidos. [32] En 1976, Whitfield Diffie y Martin Hellman publicaron el algoritmo de intercambio de claves Diffie-Hellman. [33] En 1977, el algoritmo RSA se publicó en la columna Scientific American de Martin Gardner . [34] Desde entonces, la criptografía se ha convertido en una herramienta ampliamente utilizada en comunicaciones, redes de computadoras y seguridad informática en general.
Algunas técnicas criptográficas modernas sólo pueden mantener sus claves secretas si ciertos problemas matemáticos son intratables , como la factorización de números enteros o los problemas de logaritmos discretos , por lo que existen profundas conexiones con las matemáticas abstractas . Hay muy pocos criptosistemas que hayan demostrado ser incondicionalmente seguros. El bloc de un solo uso es uno de ellos, y Claude Shannon lo demostró. Hay unos pocos algoritmos importantes que han demostrado ser seguros bajo ciertas suposiciones. Por ejemplo, la inviabilidad de factorizar números enteros extremadamente grandes es la base para creer que RSA es seguro, y algunos otros sistemas, pero aun así, no hay pruebas de inquebrantabilidad disponibles ya que el problema matemático subyacente permanece abierto. En la práctica, estos se utilizan ampliamente y la mayoría de los observadores competentes creen que son inquebrantables en la práctica. Hay sistemas similares a RSA, como uno de Michael O. Rabin , que son demostrablemente seguros siempre que la factorización de n = pq sea imposible; es bastante inutilizable en la práctica. El problema del logaritmo discreto es la base para creer que algunos otros criptosistemas son seguros y, nuevamente, hay sistemas relacionados, menos prácticos, que son demostrablemente seguros en relación con el problema de solubilidad o insolubilidad del logaritmo discreto. [35]
Además de conocer la historia criptográfica, los diseñadores de algoritmos y sistemas criptográficos también deben considerar sensatamente los posibles desarrollos futuros mientras trabajan en sus diseños. Por ejemplo, las mejoras continuas en la capacidad de procesamiento de las computadoras han aumentado el alcance de los ataques de fuerza bruta , por lo que al especificar longitudes de clave , las longitudes de clave requeridas están avanzando de manera similar. [36] El impacto potencial de la computación cuántica ya está siendo considerado por algunos diseñadores de sistemas criptográficos que desarrollan criptografía post-cuántica. [¿ Cuándo? ] La anunciada inminencia de pequeñas implementaciones de estas máquinas puede estar haciendo que la necesidad de precaución preventiva sea algo más que meramente especulativa. [5]
Antes de principios del siglo XX, la criptografía se ocupaba principalmente de los patrones lingüísticos y lexicográficos . Desde entonces, la criptografía ha ampliado su alcance y ahora hace un uso extensivo de subdisciplinas matemáticas, incluidas la teoría de la información , la complejidad computacional , la estadística, la combinatoria , el álgebra abstracta , la teoría de números y las matemáticas finitas . [37] La criptografía también es una rama de la ingeniería, pero una inusual ya que se ocupa de la oposición activa, inteligente y malévola; otros tipos de ingeniería (por ejemplo, la ingeniería civil o química) solo necesitan lidiar con fuerzas naturales neutrales. También hay una investigación activa que examina la relación entre los problemas criptográficos y la física cuántica .
Así como el desarrollo de las computadoras digitales y de la electrónica ayudó al criptoanálisis, hizo posible cifrados mucho más complejos. Además, las computadoras permitieron el cifrado de cualquier tipo de datos representables en cualquier formato binario, a diferencia de los cifrados clásicos que solo cifraban textos en lenguaje escrito; esto era nuevo y significativo. El uso de la computadora ha suplantado así a la criptografía lingüística, tanto para el diseño de cifrados como para el criptoanálisis. Muchos cifrados informáticos pueden caracterizarse por su funcionamiento en secuencias de bits binarios (a veces en grupos o bloques), a diferencia de los esquemas clásicos y mecánicos, que generalmente manipulan caracteres tradicionales (es decir, letras y dígitos) directamente. Sin embargo, las computadoras también han ayudado al criptoanálisis, lo que ha compensado en cierta medida la mayor complejidad de los cifrados. No obstante, los buenos cifrados modernos se han mantenido por delante del criptoanálisis; Generalmente, el uso de un cifrado de calidad es muy eficiente (es decir, rápido y requiere pocos recursos, como memoria o capacidad de CPU), mientras que descifrarlo requiere un esfuerzo de muchos órdenes de magnitud mayor, y mucho mayor que el requerido para cualquier cifrado clásico, lo que hace que el criptoanálisis sea tan ineficiente y poco práctico que resulta prácticamente imposible.
La criptografía de clave simétrica se refiere a métodos de cifrado en los que tanto el emisor como el receptor comparten la misma clave (o, menos comúnmente, en los que sus claves son diferentes, pero están relacionadas de una manera fácilmente computable). Este fue el único tipo de cifrado conocido públicamente hasta junio de 1976. [33]
Los cifrados de clave simétrica se implementan como cifrados de bloque o cifrados de flujo . Un cifrado de bloque cifra la entrada en bloques de texto sin formato, en lugar de caracteres individuales, el formato de entrada utilizado por un cifrado de flujo.
El Estándar de cifrado de datos (DES) y el Estándar de cifrado avanzado (AES) son diseños de cifrado de bloques que han sido designados estándares de criptografía por el gobierno de los EE. UU. (aunque la designación de DES fue finalmente retirada después de que se adoptara el AES). [38] A pesar de su desuso como estándar oficial, DES (especialmente su variante triple-DES , aún aprobada y mucho más segura ) sigue siendo bastante popular; se utiliza en una amplia gama de aplicaciones, desde el cifrado ATM [39] hasta la privacidad del correo electrónico [40] y el acceso remoto seguro . [41] Se han diseñado y publicado muchos otros cifrados de bloques, con una variación considerable en calidad. Muchos, incluso algunos diseñados por profesionales capacitados, han sido completamente descifrados, como FEAL . [5] [42]
Los cifrados de flujo, a diferencia del tipo "bloque", crean un flujo de material de clave de longitud arbitraria, que se combina con el texto simple bit a bit o carácter a carácter, de forma similar a la libreta de un solo uso . En un cifrado de flujo, el flujo de salida se crea en función de un estado interno oculto que cambia a medida que opera el cifrado. Ese estado interno se configura inicialmente utilizando el material de clave secreta. RC4 es un cifrado de flujo ampliamente utilizado. [5] Los cifrados de bloque se pueden utilizar como cifrados de flujo generando bloques de un flujo de clave (en lugar de un generador de números pseudoaleatorios ) y aplicando una operación XOR a cada bit del texto simple con cada bit del flujo de clave. [43]
Los códigos de autenticación de mensajes (MAC) son muy similares a las funciones hash criptográficas , excepto que se puede usar una clave secreta para autenticar el valor hash al recibirlo; [5] [44] esta complicación adicional bloquea un esquema de ataque contra algoritmos de resumen simple , por lo que se ha pensado que vale la pena el esfuerzo. Las funciones hash criptográficas son un tercer tipo de algoritmo criptográfico. Toman un mensaje de cualquier longitud como entrada y generan un hash corto de longitud fija , que se puede usar en (por ejemplo) una firma digital. Para las buenas funciones hash, un atacante no puede encontrar dos mensajes que produzcan el mismo hash. MD4 es una función hash de uso prolongado que ahora está rota; MD5 , una variante reforzada de MD4, también se usa ampliamente pero está rota en la práctica. La Agencia de Seguridad Nacional de los EE. UU. desarrolló la serie de funciones hash similares a MD5 de algoritmos hash seguros: SHA-0 era un algoritmo defectuoso que la agencia retiró; SHA-1 se implementa ampliamente y es más seguro que MD5, pero los criptoanalistas han identificado ataques en su contra; La familia SHA-2 mejora a SHA-1, pero es vulnerable a conflictos a partir de 2011; y la autoridad de estándares de EE. UU. pensó que era "prudente" desde una perspectiva de seguridad desarrollar un nuevo estándar para "mejorar significativamente la robustez del conjunto de herramientas de algoritmos hash general del NIST ". [45] Por lo tanto, se pretendía que una competencia de diseño de funciones hash seleccionara un nuevo estándar nacional estadounidense, que se llamaría SHA-3 , para 2012. La competencia terminó el 2 de octubre de 2012, cuando el NIST anunció que Keccak sería el nuevo algoritmo hash SHA-3. [46] A diferencia de los cifrados de bloque y flujo que son invertibles, las funciones hash criptográficas producen una salida hash que no se puede usar para recuperar los datos de entrada originales. Las funciones hash criptográficas se utilizan para verificar la autenticidad de los datos recuperados de una fuente no confiable o para agregar una capa de seguridad.
Los criptosistemas de clave simétrica utilizan la misma clave para cifrar y descifrar un mensaje, aunque un mensaje o un grupo de mensajes pueden tener una clave diferente a la de otros. Una desventaja importante de los cifrados simétricos es la gestión de claves necesaria para utilizarlos de forma segura. Idealmente, cada par de partes que se comunican debe compartir una clave diferente, y quizás también para cada texto cifrado intercambiado. La cantidad de claves necesarias aumenta con el cuadrado de la cantidad de miembros de la red, lo que requiere muy rápidamente esquemas complejos de gestión de claves para mantenerlas todas coherentes y secretas.
En un artículo innovador de 1976, Whitfield Diffie y Martin Hellman propusieron la noción de criptografía de clave pública (también llamada, de manera más general, criptografía de clave asimétrica ) en la que se utilizan dos claves diferentes pero matemáticamente relacionadas: una clave pública y una clave privada . [47] Un sistema de clave pública está construido de tal manera que el cálculo de una clave (la "clave privada") es computacionalmente inviable a partir de la otra (la "clave pública"), aunque estén necesariamente relacionadas. En cambio, ambas claves se generan en secreto, como un par interrelacionado. [48] El historiador David Kahn describió la criptografía de clave pública como "el concepto nuevo más revolucionario en el campo desde que surgió la sustitución polialfabética en el Renacimiento". [49]
En los criptosistemas de clave pública, la clave pública puede distribuirse libremente, mientras que su clave privada emparejada debe permanecer secreta. En un sistema de cifrado de clave pública, la clave pública se utiliza para cifrar, mientras que la clave privada o secreta se utiliza para descifrar. Si bien Diffie y Hellman no pudieron encontrar un sistema de este tipo, demostraron que la criptografía de clave pública era posible al presentar el protocolo de intercambio de claves Diffie-Hellman , una solución que ahora se usa ampliamente en comunicaciones seguras para permitir que dos partes acuerden en secreto una clave de cifrado compartida . [33] El estándar X.509 define el formato más comúnmente utilizado para los certificados de clave pública . [50]
La publicación de Diffie y Hellman desencadenó un gran esfuerzo académico por encontrar un sistema práctico de cifrado de clave pública. Esta carrera finalmente fue ganada en 1978 por Ronald Rivest , Adi Shamir y Len Adleman , cuya solución se conoce desde entonces como el algoritmo RSA . [51]
Los algoritmos Diffie-Hellman y RSA , además de ser los primeros ejemplos conocidos públicamente de algoritmos de clave pública de alta calidad, han estado entre los más utilizados. Otros algoritmos de clave asimétrica incluyen el criptosistema Cramer-Shoup , el cifrado ElGamal y varias técnicas de curva elíptica .
Un documento publicado en 1997 por el Cuartel General de Comunicaciones del Gobierno ( GCHQ ), una organización de inteligencia británica, reveló que los criptógrafos del GCHQ habían anticipado varios desarrollos académicos. [52] Según se informa, alrededor de 1970, James H. Ellis había concebido los principios de la criptografía de clave asimétrica. En 1973, Clifford Cocks inventó una solución que era muy similar en su lógica de diseño a RSA. [52] [53] En 1974, se afirma que Malcolm J. Williamson desarrolló el intercambio de claves Diffie-Hellman. [54]
La criptografía de clave pública también se utiliza para implementar esquemas de firma digital . Una firma digital recuerda a una firma ordinaria; ambas tienen la característica de ser fáciles de producir para un usuario, pero difíciles de falsificar para cualquier otra persona . Las firmas digitales también pueden estar vinculadas permanentemente al contenido del mensaje que se está firmando; luego no se pueden "mover" de un documento a otro, ya que cualquier intento será detectable. En los esquemas de firma digital, hay dos algoritmos: uno para la firma , en el que se utiliza una clave secreta para procesar el mensaje (o un hash del mensaje, o ambos), y otro para la verificación , en el que se utiliza la clave pública coincidente con el mensaje para verificar la validez de la firma. RSA y DSA son dos de los esquemas de firma digital más populares. Las firmas digitales son fundamentales para el funcionamiento de las infraestructuras de clave pública y muchos esquemas de seguridad de red (por ejemplo, SSL/TLS , muchas VPN , etc.). [42]
Los algoritmos de clave pública se basan con mayor frecuencia en la complejidad computacional de problemas "duros", a menudo de la teoría de números . Por ejemplo, la dificultad de RSA está relacionada con el problema de factorización de números enteros , mientras que Diffie-Hellman y DSA están relacionadas con el problema del logaritmo discreto . La seguridad de la criptografía de curva elíptica se basa en problemas de teoría de números que involucran curvas elípticas . Debido a la dificultad de los problemas subyacentes, la mayoría de los algoritmos de clave pública involucran operaciones como la multiplicación modular y la exponenciación, que son mucho más costosas computacionalmente que las técnicas utilizadas en la mayoría de los cifrados de bloques, especialmente con tamaños de clave típicos. Como resultado, los criptosistemas de clave pública son comúnmente criptosistemas híbridos , en los que se utiliza un algoritmo de cifrado de clave simétrica rápido y de alta calidad para el mensaje en sí, mientras que la clave simétrica relevante se envía con el mensaje, pero cifrada utilizando un algoritmo de clave pública. De manera similar, a menudo se utilizan esquemas de firma híbridos, en los que se calcula una función hash criptográfica y solo se firma digitalmente el hash resultante. [5]
Las funciones hash criptográficas son funciones que toman una entrada de longitud variable y devuelven una salida de longitud fija, que se puede usar, por ejemplo, en una firma digital. Para que una función hash sea segura, debe ser difícil calcular dos entradas que generen el mismo valor ( resistencia a colisiones ) y calcular una entrada que genere un valor hash de salida determinado ( resistencia a preimagen ). MD4 es una función hash de uso prolongado que ahora está rota; MD5 , una variante reforzada de MD4, también se usa ampliamente pero está rota en la práctica. La Agencia de Seguridad Nacional de los Estados Unidos desarrolló la serie de algoritmos hash seguros de funciones hash similares a MD5: SHA-0 era un algoritmo defectuoso que la agencia retiró; SHA-1 se implementa ampliamente y es más seguro que MD5, pero los criptoanalistas han identificado ataques en su contra; la familia SHA-2 mejora SHA-1, pero es vulnerable a conflictos a partir de 2011; y la autoridad de estándares de EE. UU. pensó que era "prudente" desde una perspectiva de seguridad desarrollar un nuevo estándar para "mejorar significativamente la robustez del conjunto de herramientas de algoritmos hash general del NIST ". [45] Por lo tanto, se pretendía que una competencia de diseño de funciones hash seleccionara un nuevo estándar nacional estadounidense, que se llamaría SHA-3 , para 2012. La competencia terminó el 2 de octubre de 2012, cuando el NIST anunció que Keccak sería el nuevo algoritmo hash SHA-3. [46] A diferencia de los cifrados de bloque y flujo que son invertibles, las funciones hash criptográficas producen una salida hash que no se puede utilizar para recuperar los datos de entrada originales. Las funciones hash criptográficas se utilizan para verificar la autenticidad de los datos recuperados de una fuente no confiable o para agregar una capa de seguridad.
El objetivo del criptoanálisis es encontrar alguna debilidad o inseguridad en un esquema criptográfico, permitiendo así su subversión o evasión.
Es un error común pensar que todos los métodos de cifrado se pueden descifrar. En relación con su trabajo en Bell Labs durante la Segunda Guerra Mundial , Claude Shannon demostró que el cifrado de libreta de un solo uso es irrompible, siempre que el material de la clave sea verdaderamente aleatorio , nunca se reutilice, se mantenga en secreto de todos los posibles atacantes y tenga una longitud igual o mayor que el mensaje. [55] La mayoría de los cifrados , aparte de la libreta de un solo uso, se pueden descifrar con suficiente esfuerzo computacional mediante un ataque de fuerza bruta , pero la cantidad de esfuerzo necesario puede depender exponencialmente del tamaño de la clave, en comparación con el esfuerzo necesario para utilizar el cifrado. En tales casos, se podría lograr una seguridad efectiva si se demuestra que el esfuerzo requerido (es decir, el "factor de trabajo", en términos de Shannon) está más allá de la capacidad de cualquier adversario. Esto significa que se debe demostrar que no se puede encontrar un método eficiente (a diferencia del método de fuerza bruta que consume mucho tiempo) para descifrar el cifrado. Dado que hasta la fecha no se ha encontrado tal prueba, la libreta de un solo uso sigue siendo el único cifrado teóricamente irrompible. Aunque el cifrado de un solo uso bien implementado no se puede romper, el análisis del tráfico aún es posible.
Existe una amplia variedad de ataques criptoanalíticos, y se pueden clasificar de varias maneras. Una distinción común gira en torno a lo que Eve (un atacante) sabe y qué capacidades están disponibles. En un ataque de solo texto cifrado , Eve tiene acceso solo al texto cifrado (los buenos criptosistemas modernos suelen ser efectivamente inmunes a los ataques de solo texto cifrado). En un ataque de texto plano conocido , Eve tiene acceso a un texto cifrado y su texto plano correspondiente (o a muchos pares de estos). En un ataque de texto plano elegido , Eve puede elegir un texto plano y aprender su texto cifrado correspondiente (quizás muchas veces); un ejemplo es la jardinería , utilizada por los británicos durante la Segunda Guerra Mundial. En un ataque de texto cifrado elegido , Eve puede elegir textos cifrados y aprender sus textos planos correspondientes. [5] Finalmente, en un ataque de hombre en el medio, Eve se interpone entre Alice (el remitente) y Bob (el destinatario), accede y modifica el tráfico y luego lo reenvía al destinatario. [56] También son importantes, y a menudo de forma abrumadora, los errores (generalmente en el diseño o uso de uno de los protocolos involucrados).
El criptoanálisis de los cifrados de clave simétrica normalmente implica la búsqueda de ataques contra los cifrados de bloque o de flujo que sean más eficientes que cualquier ataque que pudiera hacerse contra un cifrado perfecto. Por ejemplo, un simple ataque de fuerza bruta contra DES requiere un texto plano conocido y 2,55 descifrados , probando aproximadamente la mitad de las claves posibles, para llegar a un punto en el que las probabilidades sean mejores que incluso de que se haya encontrado la clave buscada. Pero esto puede no ser suficiente garantía; un ataque de criptoanálisis lineal contra DES requiere 2,43 textos planos conocidos (con sus correspondientes textos cifrados) y aproximadamente 2,43 operaciones DES. [57] Esto es una mejora considerable con respecto a los ataques de fuerza bruta.
Los algoritmos de clave pública se basan en la dificultad computacional de varios problemas. Los más famosos de ellos son la dificultad de la factorización entera de semiprimos y la dificultad de calcular logaritmos discretos , que aún no se ha demostrado que sean solucionables en tiempo polinomial ( P ) utilizando solo una computadora clásica de Turing-completa . Gran parte del criptoanálisis de clave pública se ocupa del diseño de algoritmos en P que puedan resolver estos problemas, o utilizando otras tecnologías, como las computadoras cuánticas . Por ejemplo, los algoritmos más conocidos para resolver la versión basada en curvas elípticas del logaritmo discreto requieren mucho más tiempo que los algoritmos más conocidos para factorizar, al menos para problemas de tamaño más o menos equivalente. Por lo tanto, para lograr una fuerza de cifrado equivalente, las técnicas que dependen de la dificultad de factorizar números compuestos grandes, como el criptosistema RSA, requieren claves más grandes que las técnicas de curva elíptica. Por esta razón, los criptosistemas de clave pública basados en curvas elípticas se han vuelto populares desde su invención a mediados de la década de 1990.
Mientras que el criptoanálisis puro utiliza debilidades en los propios algoritmos, otros ataques a criptosistemas se basan en el uso real de los algoritmos en dispositivos reales, y se denominan ataques de canal lateral . Si un criptoanalista tiene acceso, por ejemplo, a la cantidad de tiempo que el dispositivo tardó en cifrar una serie de textos sin formato o informar de un error en un carácter de contraseña o PIN, puede utilizar un ataque de tiempo para romper un cifrado que de otro modo sería resistente al análisis. Un atacante también podría estudiar el patrón y la longitud de los mensajes para obtener información valiosa; esto se conoce como análisis de tráfico [58] y puede ser bastante útil para un adversario alerta. La mala administración de un criptosistema, como permitir claves demasiado cortas, hará que cualquier sistema sea vulnerable, independientemente de otras virtudes. La ingeniería social y otros ataques contra humanos (por ejemplo, soborno, extorsión , chantaje , espionaje, criptoanálisis de manguera de goma o tortura) se emplean habitualmente debido a que son más rentables y factibles de realizar en una cantidad de tiempo razonable en comparación con el criptoanálisis puro por un amplio margen.
Gran parte del trabajo teórico en criptografía se centra en los primitivos criptográficos (algoritmos con propiedades criptográficas básicas) y su relación con otros problemas criptográficos. A partir de estos primitivos básicos se construyen herramientas criptográficas más complicadas. Estos primitivos proporcionan propiedades fundamentales, que se utilizan para desarrollar herramientas más complejas llamadas criptosistemas o protocolos criptográficos , que garantizan una o más propiedades de seguridad de alto nivel. Sin embargo, tenga en cuenta que la distinción entre primitivos criptográficos y criptosistemas es bastante arbitraria; por ejemplo, el algoritmo RSA a veces se considera un criptosistema y a veces un primitivo. Los ejemplos típicos de primitivos criptográficos incluyen funciones pseudoaleatorias , funciones unidireccionales , etc.
A menudo se utilizan uno o más primitivos criptográficos para desarrollar un algoritmo más complejo, llamado sistema criptográfico o criptosistema . Los criptosistemas (por ejemplo, el cifrado El-Gamal ) están diseñados para proporcionar una funcionalidad particular (por ejemplo, cifrado de clave pública) al tiempo que garantizan ciertas propiedades de seguridad (por ejemplo, seguridad de ataque de texto simple elegido (CPA) en el modelo de oráculo aleatorio ). Los criptosistemas utilizan las propiedades de los primitivos criptográficos subyacentes para respaldar las propiedades de seguridad del sistema. Como la distinción entre primitivos y criptosistemas es algo arbitraria, se puede derivar un criptosistema sofisticado de una combinación de varios criptosistemas más primitivos. En muchos casos, la estructura del criptosistema implica una comunicación de ida y vuelta entre dos o más partes en el espacio (por ejemplo, entre el remitente de un mensaje seguro y su receptor) o a través del tiempo (por ejemplo, datos de respaldo protegidos criptográficamente ). Dichos criptosistemas a veces se denominan protocolos criptográficos .
Algunos criptosistemas ampliamente conocidos incluyen RSA, la firma Schnorr , el cifrado ElGamal y Pretty Good Privacy (PGP). Los criptosistemas más complejos incluyen sistemas de dinero electrónico [59] , sistemas de cifrado de firmas , etc. Algunos criptosistemas más "teóricos" [ se necesita aclaración ] incluyen sistemas de prueba interactiva [60] ( como pruebas de conocimiento cero ) [61] y sistemas para compartir secretos [ 62] [63]
La criptografía ligera (LWC) se refiere a algoritmos criptográficos desarrollados para un entorno estrictamente restringido. El crecimiento de la Internet de las cosas (IoT) ha impulsado la investigación en el desarrollo de algoritmos ligeros que se adapten mejor al entorno. Un entorno de IoT requiere restricciones estrictas en el consumo de energía, la capacidad de procesamiento y la seguridad. [64] Algoritmos como PRESENT, AES y SPECK son ejemplos de los muchos algoritmos LWC que se han desarrollado para alcanzar el estándar establecido por el Instituto Nacional de Estándares y Tecnología . [65]
La criptografía se utiliza ampliamente en Internet para ayudar a proteger los datos de los usuarios y evitar escuchas clandestinas. Para garantizar el secreto durante la transmisión, muchos sistemas utilizan criptografía de clave privada para proteger la información transmitida. Con los sistemas de clave pública, se puede mantener el secreto sin una clave maestra o una gran cantidad de claves. [66] Pero, algunos algoritmos como BitLocker y VeraCrypt generalmente no son criptografía de clave pública-privada. Por ejemplo, Veracrypt usa un hash de contraseña para generar la clave privada única. Sin embargo, se puede configurar para que se ejecute en sistemas de clave pública-privada. La biblioteca de cifrado de código abierto C++ OpenSSL proporciona software y herramientas de cifrado gratuitos y de código abierto . El conjunto de cifrado de cifrado más utilizado es AES , [67] ya que tiene aceleración de hardware para todos los procesadores basados en x86 que tienen AES-NI . Un contendiente cercano es ChaCha20-Poly1305 , que es un cifrado de flujo , sin embargo, se usa comúnmente para dispositivos móviles, ya que están basados en ARM , que no cuentan con la extensión del conjunto de instrucciones AES-NI.
La criptografía se puede utilizar para proteger las comunicaciones mediante su cifrado. Los sitios web utilizan el cifrado a través de HTTPS . [68] El cifrado de "extremo a extremo", donde solo el remitente y el receptor pueden leer los mensajes, se implementa para el correo electrónico en Pretty Good Privacy y para la mensajería segura en general en WhatsApp , Signal y Telegram . [68]
Los sistemas operativos utilizan el cifrado para mantener las contraseñas en secreto, ocultar partes del sistema y garantizar que las actualizaciones de software provengan realmente del fabricante del sistema. [68] En lugar de almacenar contraseñas en texto simple, los sistemas informáticos almacenan hashes de las mismas; luego, cuando un usuario inicia sesión, el sistema pasa la contraseña dada a través de una función hash criptográfica y la compara con el valor hash del archivo. De esta manera, ni el sistema ni un atacante tienen acceso en ningún momento a la contraseña en texto simple. [68]
A veces se utiliza el cifrado para cifrar todo el disco duro. Por ejemplo, el University College de Londres ha implementado BitLocker (un programa de Microsoft) para hacer que los datos del disco duro sean opacos sin que los usuarios inicien sesión. [68]
Las técnicas criptográficas permiten tecnologías de criptomonedas , como tecnologías de contabilidad distribuida (por ejemplo, cadenas de bloques ), que financian aplicaciones de criptoeconomía como las finanzas descentralizadas (DeFi) . Las técnicas criptográficas clave que permiten las criptomonedas y la criptoeconomía incluyen, entre otras: claves criptográficas , función hash criptográfica, cifrado asimétrico (clave pública) , autenticación multifactor (MFA) , cifrado de extremo a extremo (E2EE) y pruebas de conocimiento cero (ZKP) .
La criptografía ha sido de interés durante mucho tiempo para la recopilación de inteligencia y las agencias de aplicación de la ley . [9] Las comunicaciones secretas pueden ser delictivas o incluso traidoras . [ cita requerida ] Debido a que facilita la privacidad y la disminución de la privacidad que conlleva su prohibición, la criptografía también es de considerable interés para los defensores de los derechos civiles. En consecuencia, ha habido una historia de cuestiones legales controvertidas en torno a la criptografía, especialmente desde que la llegada de computadoras económicas hizo posible el acceso generalizado a la criptografía de alta calidad.
En algunos países, incluso el uso doméstico de la criptografía está, o ha estado, restringido. Hasta 1999, Francia restringió significativamente el uso de la criptografía a nivel nacional, aunque desde entonces ha relajado muchas de estas reglas. En China e Irán , todavía se requiere una licencia para usar criptografía. [7] Muchos países tienen restricciones estrictas sobre el uso de la criptografía. Entre las más restrictivas se encuentran las leyes de Bielorrusia , Kazajstán , Mongolia , Pakistán , Singapur, Túnez y Vietnam . [69]
En Estados Unidos, la criptografía es legal para uso doméstico, pero ha habido mucho conflicto sobre cuestiones legales relacionadas con la criptografía. [9] Un tema particularmente importante ha sido la exportación de criptografía y software y hardware criptográficos. Probablemente debido a la importancia del criptoanálisis en la Segunda Guerra Mundial y la expectativa de que la criptografía seguiría siendo importante para la seguridad nacional, muchos gobiernos occidentales han, en algún momento, regulado estrictamente la exportación de criptografía. Después de la Segunda Guerra Mundial, era ilegal en Estados Unidos vender o distribuir tecnología de cifrado en el extranjero; de hecho, el cifrado fue designado como equipo militar auxiliar y se incluyó en la Lista de municiones de Estados Unidos . [70] Hasta el desarrollo de la computadora personal, los algoritmos de clave asimétrica (es decir, técnicas de clave pública) e Internet, esto no fue especialmente problemático. Sin embargo, a medida que Internet creció y las computadoras se volvieron más ampliamente disponibles, las técnicas de cifrado de alta calidad se hicieron conocidas en todo el mundo.
En la década de 1990, la regulación de las exportaciones de criptografía en Estados Unidos se enfrentó a varios desafíos. Después de que el código fuente del programa de cifrado Pretty Good Privacy (PGP) de Philip Zimmermann llegara a Internet en junio de 1991, una denuncia de RSA Security (en aquel entonces llamada RSA Data Security, Inc.) dio lugar a una larga investigación penal de Zimmermann por parte del Servicio de Aduanas de Estados Unidos y el FBI , aunque nunca se presentaron cargos. [71] [72] Daniel J. Bernstein , entonces estudiante de posgrado en la Universidad de California en Berkeley , presentó una demanda contra el gobierno de Estados Unidos impugnando algunos aspectos de las restricciones basándose en motivos de libertad de expresión . El caso Bernstein v. Estados Unidos de 1995 resultó finalmente en una decisión de 1999 de que el código fuente impreso para algoritmos y sistemas criptográficos estaba protegido como libertad de expresión por la Constitución de los Estados Unidos. [73]
En 1996, treinta y nueve países firmaron el Acuerdo de Wassenaar , un tratado de control de armas que trata sobre la exportación de armas y tecnologías de "doble uso" como la criptografía. El tratado estipuló que el uso de criptografía con longitudes de clave cortas (56 bits para cifrado simétrico, 512 bits para RSA) ya no estaría sujeto a control de exportación. [74] Las exportaciones de criptografía de los EE. UU. se volvieron menos estrictamente reguladas como consecuencia de una importante relajación en 2000; [75] ya no hay muchas restricciones sobre los tamaños de clave en el software de mercado masivo exportado desde EE. UU . Desde esta relajación en las restricciones de exportación de EE. UU., y debido a que la mayoría de las computadoras personales conectadas a Internet incluyen navegadores web de origen estadounidense como Firefox o Internet Explorer , casi todos los usuarios de Internet en todo el mundo tienen acceso potencial a criptografía de calidad a través de sus navegadores (por ejemplo, a través de Transport Layer Security ). Los programas de cliente de correo electrónico Mozilla Thunderbird y Microsoft Outlook también pueden transmitir y recibir correos electrónicos a través de TLS, y pueden enviar y recibir correo electrónico cifrado con S/MIME . Muchos usuarios de Internet no se dan cuenta de que su software de aplicación básico contiene criptosistemas tan amplios . Estos navegadores y programas de correo electrónico son tan omnipresentes que incluso los gobiernos cuya intención es regular el uso civil de la criptografía generalmente no consideran práctico hacer mucho para controlar la distribución o el uso de criptografía de esta calidad, por lo que incluso cuando dichas leyes están en vigor, su aplicación real a menudo es prácticamente imposible. [ cita requerida ]
Otro tema polémico relacionado con la criptografía en los Estados Unidos es la influencia de la Agencia de Seguridad Nacional en el desarrollo y la política de cifrado. [9] La NSA estuvo involucrada en el diseño de DES durante su desarrollo en IBM y su consideración por la Oficina Nacional de Normas como un posible estándar federal para la criptografía. [76] DES fue diseñado para ser resistente al criptoanálisis diferencial , [77] una técnica criptoanalítica poderosa y general conocida por la NSA e IBM, que se hizo pública solo cuando fue redescubierta a fines de la década de 1980. [78] Según Steven Levy , IBM descubrió el criptoanálisis diferencial, [72] pero mantuvo la técnica en secreto a pedido de la NSA. La técnica se hizo pública solo cuando Biham y Shamir la redescubrieron y anunciaron algunos años después. Todo el asunto ilustra la dificultad de determinar qué recursos y conocimientos podría tener realmente un atacante.
Otro caso de la participación de la NSA fue el asunto del chip Clipper de 1993 , un microchip de cifrado que se pretendía que formara parte de la iniciativa de control de criptografía Capstone . Clipper fue ampliamente criticado por los criptógrafos por dos razones. El algoritmo de cifrado (llamado Skipjack ) fue clasificado (desclasificado en 1998, mucho después de que la iniciativa Clipper caducara). El cifrado clasificado provocó preocupaciones de que la NSA había debilitado deliberadamente el cifrado para ayudar a sus esfuerzos de inteligencia. Toda la iniciativa también fue criticada por su violación del Principio de Kerckhoffs , ya que el esquema incluía una clave de depósito especial en poder del gobierno para su uso por parte de las fuerzas del orden (es decir, escuchas telefónicas ). [72]
La criptografía es fundamental para la gestión de derechos digitales (DRM), un grupo de técnicas para controlar tecnológicamente el uso de material protegido por derechos de autor , que se está implementando y desplegando ampliamente a instancias de algunos titulares de derechos de autor. En 1998, el presidente estadounidense Bill Clinton firmó la Ley de Derechos de Autor del Milenio Digital (DMCA), que criminalizó toda producción, difusión y uso de ciertas técnicas y tecnologías criptoanalíticas (ahora conocidas o descubiertas más tarde); específicamente, aquellas que pudieran usarse para eludir los esquemas tecnológicos DRM. [79] Esto tuvo un impacto notable en la comunidad de investigación criptográfica, ya que se puede argumentar que cualquier investigación criptoanalítica violaba la DMCA. Desde entonces, se han promulgado estatutos similares en varios países y regiones, incluida la implementación en la Directiva de Derechos de Autor de la UE . Los tratados firmados por los estados miembros de la Organización Mundial de la Propiedad Intelectual exigen restricciones similares .
El Departamento de Justicia de los Estados Unidos y el FBI no han aplicado la DMCA tan rigurosamente como algunos temían, pero la ley, no obstante, sigue siendo controvertida. Niels Ferguson , un respetado investigador de criptografía, ha declarado públicamente que no publicará parte de su investigación sobre un diseño de seguridad de Intel por miedo a ser procesado bajo la DMCA. [80] El criptólogo Bruce Schneier ha argumentado que la DMCA fomenta la dependencia del proveedor , al tiempo que inhibe las medidas reales hacia la ciberseguridad. [81] Tanto Alan Cox ( desarrollador del núcleo de Linux desde hace mucho tiempo) como Edward Felten (y algunos de sus estudiantes en Princeton) han encontrado problemas relacionados con la Ley. Dmitry Sklyarov fue arrestado durante una visita a los EE. UU. desde Rusia y encarcelado durante cinco meses en espera de juicio por supuestas violaciones de la DMCA derivadas del trabajo que había realizado en Rusia, donde el trabajo era legal. En 2007, las claves criptográficas responsables de la codificación de contenido de Blu-ray y HD DVD fueron descubiertas y publicadas en Internet . En ambos casos, la Asociación Cinematográfica de Estados Unidos envió numerosos avisos de eliminación de contenidos en virtud de la DMCA, y hubo una reacción masiva en Internet [10] provocada por el impacto percibido de dichos avisos sobre el uso justo y la libertad de expresión .
En el Reino Unido, la Ley de Regulación de los Poderes de Investigación otorga a la policía del Reino Unido poderes para obligar a los sospechosos a descifrar archivos o entregar contraseñas que protegen las claves de cifrado. El incumplimiento es un delito en sí mismo, punible con una pena de prisión de dos años o de hasta cinco años en casos que involucran seguridad nacional. [8] Se han producido procesos judiciales exitosos en virtud de la Ley; el primero, en 2009, [82] resultó en una pena de 13 meses de prisión. [83] Leyes similares de divulgación forzada en Australia, Finlandia, Francia y la India obligan a los sospechosos individuales bajo investigación a entregar claves de cifrado o contraseñas durante una investigación criminal.
En los Estados Unidos, el caso penal federal de Estados Unidos v. Fricosu abordó si una orden de registro puede obligar a una persona a revelar una contraseña o frase de cifrado . [84] La Electronic Frontier Foundation (EFF) argumentó que esto es una violación de la protección contra la autoincriminación otorgada por la Quinta Enmienda . [85] En 2012, el tribunal dictaminó que, en virtud de la Ley de todos los mandatos judiciales , el acusado estaba obligado a presentar un disco duro sin cifrar ante el tribunal. [86]
En muchas jurisdicciones, el estatus legal de la divulgación forzosa sigue sin estar claro.
La disputa de cifrado entre el FBI y Apple de 2016 se refiere a la capacidad de los tribunales de Estados Unidos de obligar a los fabricantes a ayudar a desbloquear teléfonos móviles cuyo contenido está protegido criptográficamente.
Como posible contramedida a la divulgación forzada, algunos programas criptográficos admiten la negación plausible , donde los datos cifrados son indistinguibles de los datos aleatorios no utilizados (por ejemplo, los de una unidad que ha sido borrada de forma segura ).