El cifrado es la principal aplicación de la criptografía; hace que los datos sean incomprensibles para garantizar su confidencialidad. El cifrado utiliza un algoritmo llamado cifra y un valor secreto llamado clave; si no conoces la clave secreta, no puedes descifrar, ni puedes sacar nada de información sobre el mensaje cifrado, y tampoco ningún atacante.
Este post se centrará en el cifrado simétrico, que es el más simple tipo de cifrado. En el cifrado simétrico, la clave utilizada para descifrar es la igual que la clave utilizada para cifrar (a diferencia del cifrado asimétrico o cifrado de clave pública, en el que la clave utilizada para descifrar es diferente de la clave utilizada para cifrar). Comenzaremos por aprender acerca de las formas más básicas de cifrado simétrico, cifrados clásicos que son seguros solo contra los atacantes menos habituados, y luego pasaremos a las formas más fuertes que son muy seguras.
lo basico
Cuando estamos encriptando un mensaje, el texto sin formato se refiere al mensaje que no está encriptado y texto cifrado al mensaje cifrado. Por tanto, un cifrado esta compuesto por dos funciones: el cifrado convierte un texto plano en un texto cifrado, y el descifrado convierte un texto cifrado en un texto plano. Por ejemplo, abajo mostramos un cifrado, E, representado como un cuadro que toma como entrada un texto plano P, y
una clave, K, y producir un texto cifrado, C, como salida. Escribiremos esta relación como C = E (K, P). Del mismo modo, cuando el cifrado está en modo de descifrado, escribiremos
D (K, C).

Para algunos cifrados, el texto cifrado tiene el mismo tamaño que el texto sin formato; para otros, el texto cifrado es un poco más largo. Sin embargo, los textos cifrados nunca serán más cortos que los textos planos.
cifrados clasicos
Los cifrados clásicos son cifrados anteriores a las computadoras y, por lo tanto, funcionan
con letras en lugar de bits. Son mucho más simples que el moderno cifrado como DES, por ejemplo, en la antigua Roma o durante la Primera Guerra Mundial, no se podía utilizar la potencia de un chip de computadora para codificar un mensaje, por lo que se tenía que hacer todo con solo lápiz y papel. Hay muchos cifrados clásicos, pero los más famosos son el cifrado César y el cifrado Vigenère.
el cifrado cesar
El cifrado César se llama así porque el historiador romano Suetonio informó que Julio César lo usó. Cifra un mensaje cambiando cada una de las letras hacia abajo tres posiciones en el alfabeto, envolviendo a A si el cambio llega a Z. Por ejemplo, ZOO encripta a CRR, FDHVDU descifra a CAESAR, y así sucesivamente, como se muestra en la Figura de abajo. No hay nada especial en el valor 3; simplemente es más fácil calcular en
la cabeza de uno que 11 o 23. El cifrado César es muy fácil de descifrar: para descifrar un texto cifrado determinado, simplemente mueva las letras tres posiciones hacia atrás para recuperar el texto sin formato. El cifrado César puede haber sido lo suficientemente fuerte durante el tiempo de Craso y Cicerón. Dado que no se trata de una clave secreta (siempre son 3), los usuarios del cifrado de César solo tenía que asumir que los atacantes eran analfabetos o muy poco educados para entenderlo, una suposición que es mucho menos realista hoy. (De hecho, en 2006, la policía italiana arrestó a un jefe de la mafia después de
descifrar mensajes escritos en pequeños trozos de papel que fueron cifrados utilizando una variante del cifrado César: ABC se cifró en 456 en lugar de
DEF, por ejemplo.)

¿Podría hacerse más seguro el cifrado César? Puedes, por ejemplo, imagina una versión que usa un valor de cambio secreto en lugar de usar siempre 3, pero eso no ayudaría mucho porque un atacante podría probar fácilmente los 25 posibles valores de cambio hasta que el mensaje descifrado tenga sentido.
el cifrado vigenere
Se necesitaron aproximadamente 1500 años para ver una mejora significativa del cifrado César en forma de cifrado Vigenère, creado en el siglo XVI por un italiano llamado Giovan Battista Bellaso. El nombre «Vigenère» viene del francés Blaise de Vigenère, que inventó un cifrado diferente en el siglo XVI, pero debido a una mala atribución histórica, el nombre de Vigenère quedó sellado. Sin embargo, el cifrado de Vigenère se hizo popular y más tarde fue utilizado durante la Guerra Civil Americana por las fuerzas confederadas y durante WWI por el ejército suizo, entre otros. El cifrado Vigenère es similar al cifrado César, excepto que las letras no se desplazan en tres lugares, sino en valores definidos por una clave, una colección de letras que representan números según su posición en el alfabeto. Por ejemplo, si la clave es DUH, las letras del texto sin formato son cambiadas usando los valores 3, 20, 7 porque D es tres letras después de A, U es 20 letras después de A, y H son siete letras después de A. El patrón 3, 20, 7 se repite hasta que haya cifrado todo el texto sin formato. Por ejemplo, la palabra CRYPTO cifraría a FLFSNV usando DUH como clave: C se cambia tres posiciones a F, R se desplaza 20 posiciones a L, y así sucesivamente. La imagen de abajo ilustra este principio al cifrar la frase THEYDRINKTHETEA

El cifrado Vigenère es claramente más seguro que el cifrado César, pero todavía es bastante fácil de romper. El primer paso para romperlo es descubrir la longitud de la clave. Por ejemplo, tome el ejemplo de la Figura 1-3, donde ELLOS BEBEN EL TÉ encripta a WBLBXYLHRWBLWYH con la clave DUH. (Los espacios generalmente se eliminan para ocultar los límites de las palabras). Observa que en el texto cifrado WBLBXYLHRWBLWYH, el grupo de tres letras WBL aparece dos veces en el texto cifrado a intervalos de nueve letras. Esto sugiere que la misma palabra de tres letras se cifró con los mismos valores de cambio, produciendo WBL cada vez. Un criptoanalista puede entonces deducir que la longitud de la clave es nueve o un valor divisible por nueve (es decir, tres). Además, pueden adivinar que esta palabra repetida de tres letras es THE y, por lo tanto, determinar DUH como posible clave de encriptación.
El segundo paso para descifrar el cifrado de Vigenère es determinar la clave real utilizando un método llamado análisis de frecuencia, que explota la distribución desigual de letras en idiomas. Por ejemplo, en inglés, E es la letra más común, por lo que si encuentra que X es la letra más común en un texto cifrado, el valor de texto plano más probable en esta posición es E. A pesar de su relativa debilidad, el cifrado de Vigenère puede haber sido suficiente bueno para cifrar de forma segura los mensajes cuando se utiliza. Primero, porque el ataque que se acaba de describir necesita mensajes de al menos unas pocas oraciones, no funciona si el cifrado se utilizó para cifrar solo mensajes cortos. Segundo, la mayoría los mensajes debían ser secretos solo durante breves períodos de tiempo, por lo que no importa si los textos cifrados fueron finalmente descifrados por el enemigo. (El criptógrafo del siglo XIX Auguste Kerckhoffs estimó que la mayoría de los mensajes en tiempo de guerra requerían confidencialidad por solo tres o cuatro horas).
¿Como funciona el cifrado?
Basados en cifrados simplistas como los cifrados Caesar y Vigenère, podemos tratar de abstraer el funcionamiento de un cifrado, primero identificando sus dos componentes principales: una permutación y un modo de funcionamiento. Una permutación es una función que transforma un elemento (en criptografía, una letra o un grupo
de bits) de modo que cada elemento tiene un inverso único (por ejemplo, el desplazamiento Cesar de tres letras del cifrado). Un modo de operación es un algoritmo que usa una permutación para procesar mensajes de tamaño arbitrario. El modo del cifrado César es trivial: simplemente repite la misma permutación para cada letra, pero como has visto, el cifrado Vigenère tiene un modo más complejo, donde las letras en diferentes posiciones se someten a diferentes permutaciones.
En las siguientes secciones, analizamos con más detalle cuáles son y cómo se relacionan con la seguridad de un cifrado. Utilizamos cada componente para mostrar por qué los cifrados clásicos están condenados a ser inseguros, a diferencia de los cifrados modernos que ejecutamos en computadoras de alta velocidad.
permutaciones
La mayoría de los cifrados clásicos funcionan reemplazando cada letra con otra letra: en otras palabras, realizando una sustitución. En los cifrados Cesar y Vigenère, la sustitución es un cambio en el alfabeto, aunque el alfabeto o el conjunto de símbolos puede variar: en lugar del alfabeto inglés, podría ser el alfabeto arabe; en lugar de letras, pueden ser palabras, números o ideogramas, por ejemplo. La representación o codificación de información es un asunto separado que es mayormente irrelevante para la seguridad. (Eran simplemente considerando las letras latinas porque eso es lo que usan los cifrados clásicos).
La sustitución de un cifrado no puede ser una sustitución cualquiera. Debería ser un
permutación, que es una reordenación de las letras de la A a la Z, de modo que cada letra tiene un inverso único. Por ejemplo, una sustitución que transforma las letras A, B, C y D, respectivamente en C, A, D y B es una permutación, porque cada letra se asigna a otra letra única. Pero la sustitución que transforma A, B, C, D en D, A, A, C no es una permutación, porque tanto B como C se asignan a A. Con una permutación, cada letra tiene exactamente una inversa. Aún así, no todas las permutaciones son seguras. Para estar seguro, las permutaciónes de un cifrado debe satisfacer tres criterios:
- La permutación debe ser determinada por la clave, para mantener la permutación secreta siempre que la clave sea secreta. En el cifrado Vigenère, si no se conoce la clave, no se sabe cuál de los 26 permutaciones se utilizó ; por lo tanto, no se puede descifrar fácilmente.
- Diferentes claves deberían resultar en diferentes permutaciones. De lo contrario, será más fácil descifrar sin la clave: si diferentes claves dan como resultado permutaciones idénticas, significa que hay menos claves distintas que permutaciones distintas, y por lo tanto menos posibilidades para probar para descifrar sin la clave. En el cifrado Vigenère, cada letra de la clave determina una sustitución; existen 26 letras distintas y tantas permutaciones distintas.
- La permutación debe parecer aleatoria. No debe haber patrón en el texto cifrado después de realizar una permutación, porque los patrones hacen que una permutación sea predecible para un atacante y, por lo tanto, menos seguro. Por ejemplo, la sustitucion del cifrado VigenèreLa es bastante predecible: si se determina que A encripta a F, podría concluir que el valor de cambio es 5 y también sabría que B encripta a G, que C encripta a H. Sin embargo, con una permutación elegida al azar, saber que A encripta a F solo le diría que B no encripta a F.
Llamaremos a la permutación que satisface estos criterios permutación segura. Pero como verás a continuación, una permutación segura es necesaria pero no suficiente por sí solo para construir un cifrado seguro. Un cifrado también necesitará un modo de operación para admitir mensajes de cualquier longitud.
el modo de operacion
Digamos que tenemos una permutación segura que transforma A en X, B en M y N
a L, por ejemplo. Por lo tanto, la palabra BANANA se cifra en MXLXLX, donde cada ocurrencia de A es reemplazada por una X. Usando la misma permutación para todas las letras en el texto llano revela cualquier duplicado de letras en texto sin formato. Al analizar estos duplicados, es posible que no descifre el mensaje completo, pero algo sacarás sobre el mensaje. En el ejemplo de BANANA, no necesita la clave para adivinar que el texto sin formato tiene la misma letra en las tres posiciones X y otra misma letra en las dos posiciones L. Entonces, si sabe, por ejemplo, que el mensaje es un nombre de fruta, puede determinar que es BANANA en lugar de CHERRY, o lo que sea.
El modo de operación (o simplemente modo) de un cifrado mitiga la exposición de letras duplicadas en el texto sin formato mediante el uso de diferentes permutaciones para las letras duplicadas. El modo del cifrado de Vigenère aborda parcialmente esto: si la clave tiene N letras, entonces N permutaciones diferentes serán utilizado para cada N letras consecutivas. Sin embargo, esto todavía puede resultar en patrones en el texto cifrado porque cada letra N del mensaje utiliza la misma permutación. Es por eso que el análisis de frecuencia funciona para romper el cifrado Vigenère, como viste antes. El análisis de frecuencia se puede anular si el cifrado de Vigenère solo cifra textos planos que tienen la misma longitud que la clave. Pero incluso entonces, hay otro problema: reutilizar la misma clave varias veces expone similitudes entre textos planos. Por ejemplo, con la clave KYN, las palabras TIE y PIE encripta a DGR y ZGR, respectivamente. Ambos terminan con los mismos dos letras (GR), revelando que ambos textos planos comparten sus dos últimas letras. Encontrar estos patrones no debería ser posible con un cifrado seguro. Para construir un cifrado seguro, debe combinar una permutación segura con un modo seguro. Idealmente, esta combinación evita que los atacantes descifren cualquier cosa sobre un mensaje que no sea su longitud.
porque los cifrados clasicos son inseguros
Los cifrados clásicos están condenados a ser inseguros porque se limitan a operaciones que puedes hacer en tu cabeza o en una hoja de papel. Carecen del poder computacional de una computadora y se rompen fácilmente por un simple programa de computador. Veamos la razón fundamental por la que esa simplicidad los hace inseguros en el mundo actual. Recuerde que la permutación de un cifrado debe parecer aleatoria para poder
ser segura. Por supuesto, la mejor manera de parecer aleatorio es ser aleatorio, es decir, seleccionar cada permutación al azar del conjunto de todas las permutaciones. Y hay muchas permutaciones para elegir. En el caso del 26- letra del alfabeto inglés, hay aproximadamente 2^88 permutaciones:
26! = 403291461126605635584000000 ≈ 2
^88
Aquí, el signo de exclamación (!) es el símbolo factorial, definido como
sigue:
n! = n × (n − 1) × (n – 2) × . . . × 3 × 2
(Para ver por qué terminamos con este número, cuente las permutaciones como listas de letras reordenadas: hay 26 opciones para la primera letra posible, luego 25 posibilidades para el segundo, 24 para el tercero, y así sucesivamente).
El número es enorme: es del mismo orden de magnitud que el número de
átomos en el cuerpo humano. Pero los cifrados clásicos solo pueden usar una pequeña
fracción de esas permutaciones, es decir, aquellas que solo necesitan simples operaciones y que tienen una breve descripción (como una algoritmo o una pequeña tabla de consulta). El problema es que una permutacion segura no puede adoptar estas dos limitaciones.
Puedes obtener permutaciones seguras usando operaciones simples eligiendo una permutación aleatoria, representándola como una tabla de 25 letras (suficiente para
representan una permutación de 26 letras, faltando la 26), y aplicándolo buscando letras en esta tabla. Pero entonces no tendrías una breve descripción. Por ejemplo, se necesitarían 250 letras para describir 10 diferentes permutaciones, en lugar de solo las 10 letras utilizadas en el cifrado de Vigenère. También puedes producir permutaciones seguras con una breve descripción. En lugar de simplemente cambiar el alfabeto, podría usar operaciones más complejas como la suma, la multiplicación, etc. Así es como los cifrados modernos funcionan: dada una clave de 128 o 256 bits, realizamos cientos de operaciones de bits para cifrar una sola letra. Este proceso es rápido en una computadora que puede realizar miles de millones de operaciones de bits por segundo, pero llevaría horas hacerlo a mano, y todavía sería vulnerable al análisis de frecuencia.
emcriptacion perfecta. las claves otp
Básicamente, un cifrado clásico no puede ser seguro a menos que venga con una enorme
clave, pero cifrar con una clave enorme no es práctico. Sin embargo, la clave OTP (one time pad) es el cifrado más seguro. De hecho, garantiza un secreto perfecto: incluso si un atacante tiene poder computacional ilimitado , es imposible aprender nada sobre el texto sin formato excepto por su longitud.
En las siguientes secciones del post , les mostraremos cómo funciona una clave OTP de un solo uso y luego ofrezzeremos un boceto de su prueba de seguridad.
encriptando con OTP
la clave OTP de un solo uso toma un texto plano, P, y una clave aleatoria K, tiene la misma longitud que P y produce un texto cifrado C, definido como
C = P ⊕ K
donde C, P y K son cadenas de bits de la misma longitud y donde ⊕ es el
operación OR exclusiva bit a bit (XOR), definida como 0 ⊕ 0 = 0, 0 ⊕ 1 = 1, 1 ⊕
0 = 1, 1 ⊕ 1 = 0.
Se presenta OTP de una sola vez en su forma habitual, como trabajo en bits, pero se puede adaptar a otros símbolos. Con letras, por ejemplo, terminarías con una variante del cifrado César con un índice de desplazamiento elegido al azar para cada letra.
El descifrado del OTP de un solo uso es idéntico al cifrado; es solo un XOR: P = C ⊕ K. De hecho, podemos verificar C ⊕ K = P ⊕ K ⊕ K = P porque aplicando el XOR a K consigo mismo da la cadena de todos ceros 000. . . 000. Eso es todo … incluso más simple que el cifrado César. Por ejemplo, si P = 01101101 y K = 10110100, entonces podemos calcular
el seguimiento:
C = P ⊕ K = 01101101 ⊕ 10110100 = 11011001
El descifrado recupera P calculando lo siguiente:
P = C ⊕ K = 11011001 ⊕ 10110100 = 01101101
Lo importante es que un OTP de un solo uso solo se puede usar una vez: cada clave K debe usarse solo una vez. Si se utiliza la misma K para cifrar P1 y P2 a C1 y C2, entonces un hacker puede calcular lo siguiente:
C1 ⊕ C2 = (P1 ⊕ K) ⊕ (P2 ⊕ K) = P1 ⊕ P2 ⊕ K ⊕ K = P1 ⊕ P2
Un hacker calcularia la diferencia XOR de P1 y P2 , información que debe mantenerse en secreto. Además, si el texto plano del mensaje se conoce, entonces se puede recuperar el otro mensaje.
Por supuesto, la clave OTP de un solo uso es absolutamente incómoda de usar porque requiere una clave de la misma longitud que el texto y una nueva clave aleatoria para cada nuevo mensaje o grupo de datos. Para cifrar un disco duro de un terabyte, deberías necesitar otra unidad de un terabyte para almacenar la clave. No obstante, OTP se ha utilizado a lo largo de la historia. Por ejemplo, fue utilizado por el Ejecutivo de Operaciones Especiales británico durante la Segunda Guerra Mundial, por espías de la KGB, por la NSA, y todavía se utiliza hoy en contextos específicos.
¿porque otp es seguro?
Aunque OTP de un solo uso no es práctico, es importante comprender lo que lo hace seguro. En la década de 1940, el matemático estadounidense Claude Shannon demostró que la clave del OTP de un solo uso debe ser al menos tan larga como el mensaje para lograr el secreto perfecto. La idea de la prueba es bastante simple. Suponga que el atacante tiene poder ilimitado y, por lo tanto, puede probar todas las claves. El objetivo es cifrar de manera que el atacante no pueda sacar informacion ninguna del texto sin formato dado algún texto cifrado. La intuición detrás del perfecto secreto de OTP de un solo uso es asi: si K es aleatorio, la C resultante parece tan aleatoria como K a un
atacante porque la operacion XOR de una cadena aleatoria con cualquier cadena fija produce una cadena aleatoria. Para ver esto, considere la probabilidad de obtener 0 como el primer bit de una cadena aleatoria (es decir, una probabilidad de 1/2). ¿Cuál es el
probabilidad de que un bit aleatorio XOR con el segundo bit sea 0? 1/2 otra vez. El mismo argumento se puede iterar sobre cadenas de bits de cualquier longitud. Por tanto, el texto cifrado C parece aleatorio para un atacante que no conoce K, por lo que es literalmente imposible aprender algo sobre P dado C, incluso para un hacker con tiempo y poder ilimitados. En otras palabras, conociendo el texto cifrado no proporciona información alguna sobre el texto plano, excepto su longitud: prácticamente la definición de un cifrado seguro.
Por ejemplo, si un texto cifrado tiene 128 bits de longitud (lo que significa que el texto sin formato es 128 bits también), hay 2^128 posibles textos cifrados; por lo tanto, debe haber 2^128 posibles textos sin formato desde el punto de vista del atacante. Pero si
hay menos de 2^128 claves posibles, el atacante puede descartar algunas
textos planos. Si la clave es de solo 64 bits, por ejemplo, el atacante puede
determinar el 2^64 posibles textos planos y descartar una abrumadora mayoría de cadenas de 128 bits. El atacante no sabría qué texto plano es, pero sabria lo que no es el texto plano, lo que hace que el secreto del cifrado sea imperfecto.
Como puede ver, debe tener una clave tan larga como el texto plano para lograr seguridad perfecta, pero esto rápidamente se vuelve impráctico para el uso en el mundo real. A continuación, analizaremos los enfoques adoptados en el cifrado moderno para lograr la mejor seguridad posible y práctica.
probabilidad en criptografia
Una probabilidad es un número que expresa la probabilidad, o posibilidad, de que suceda algún evento. Esta expresado como un número entre 0 y 1, donde 0 significa «nunca» y 1 significa «siempre». Cuanto más nos acerquemos a 1, mayor es la probabilidad. Encontrarás muchas explicaciones de la probabilidad, generalmente en términos de bolas blancas y bolas rojas en una bolsa y la probabilidad de elegir una bola de cualquier color.
La criptografía a menudo usa probabilidades para medir las posibilidades de éxito de un ataque, 1) contando las número de eventos exitosos (por ejemplo, el evento «Encontrar la clave secreta correcta») y 2) contar el número total de posibles eventos (por ejemplo, el
el número total de llaves es 2^n si tratamos con claves de n bits). En este ejemplo, la probabilidad de que una clave elegida es la correcta es 1/(2^n).
La probabilidad de que un evento no suceda es 1 – p, si la probabilidad del evento es p. La probabilidad de obtener una clave incorrecta en nuestro ejemplo anterior es
por lo tanto 1 – 1/(2^n) , un número muy cercano a 1, lo que significa casi certeza de elegir una clave no correcta.
seguridad de la encriptacion
Hemos visto que los cifrados clásicos no son seguros y que un sistema perfectamente seguro como OTP no es práctico. Por tanto, tendremos que ceder un poco en términos de seguridad si queremos cifrados seguros y utilizables. ¿Pero, que significa realmente eso de «seguro»? Intuitivamente, un cifrado es seguro si, dado un cifrado aplicado a una gran cantidad de texto sin formato, no se puede aprender nada sobre el comportamiento del cifrado cuando se aplica a otros textos planos.
Los modelos de ataque y los objetivos de seguridad deben ir juntos; no puedes reclamar un sistema seguro sin explicar contra quién o de qué está seguro.
Por tanto, una noción de seguridad es la combinación de algún objetivo de seguridad con algún modelo de ataque. Diremos que un cifrado logra cierta noción de seguridad si cualquier atacante que trabaja en un modelo determinado no puede lograr el objetivo de seguridad.
modelos de ataque
Un modelo de ataque es un conjunto de suposiciones sobre cómo los atacantes pueden interactuar con un cifrado y lo que pueden y no pueden hacer. Los objetivos de un
modelo de ataque son los siguientes:
– Establecer requisitos para los criptógrafos que diseñan cifrados, de modo que saben qué atacantes y qué tipo de ataques proteger.
– Dar pautas a los usuarios, sobre si un cifrado será seguro para utilizar en su entorno.
– Proporcionar pistas a los criptoanalistas que intentan descifrar cifrados, para que sepan si un ataque dado es válido. Un ataque solo es válido si es factible en el modelo considerado.
Los modelos de ataque no necesitan coincidir exactamente con la realidad; son una
aproximación. Como dijo el estadístico George E. P. Box, «todos los modelos son
incorrectos; la pregunta práctica es qué tan equivocados tienen que estar para no ser
útil.» Para ser útiles en criptografía, los modelos de ataque deben al menos abarcar lo que los atacantes pueden hacer para atacar un cifrado. El modelo es bueno si sobreestima las capacidades de los atacantes, porque ayuda a anticipar futuras técnicas de ataque, solo los criptografos paranoicos sobreviven. Un mal modelo subestima a los atacantes y proporciona falsa confianza en un cifrado al hacer que parezca seguro en teoría cuando no es seguro en realidad.
principio de kerckchoffs’s
Una suposición hecha en todos los modelos es el llamado principio de Kerckhoffs, que establece que la seguridad de un cifrado debe basarse solo en el secreto de la clave y no en el secreto del cifrado. Esto puede parecer obvio hoy, cuando los cifrados y los protocolos se especifican y utilizan públicamente por todo el mundo. Pero históricamente, el lingüista holandés Auguste Kerckhoffs se referia a máquinas de cifrado militares diseñadas específicamente para un determinado ejército o división. Citando su ensayo de 1883 “La Cryptographie Militaire ”, donde enumera seis requisitos de un sistema de cifrado militar: «El sistema no debe requerir confidencialidad ya que puede ser robado por el enemigo sin causar problemas «.
modelos de caja negra (black-box)
Consideremos ahora algunos modelos de ataque útiles expresados en términos de lo que
el atacante puede observar y qué consultas puede hacer al cifrado. Una consulta para nuestros propósitos es la operación que envía un valor de entrada a alguna función y obtiene una salida, sin exponer los detalles de esa función.
Una consulta de cifrado, por ejemplo, toma un texto sin formato y devuelve un
texto cifrado correspondiente, sin revelar la clave secreta. A estos modelos los llamamos modelos de caja negra, porque el atacante solo ve lo que entra y sale del cifrado. Por ejemplo, algunos chips de tarjetas inteligentes protegen de forma segura las partes internas de un cifrado, así como sus claves, pero se le permite conectar al chip y pedirle que descifre cualquier texto cifrado. El atacante recibiría el texto sin formato correspondiente, que puede ayudarles a determinar la clave. Ese es un ejemplo real donde las consultas de descifrado son posibles.
Hay varios modelos de ataque de caja negra diferentes. Aquí se enumeran en orden de más débil a más fuerte, describiendo las capacidades de los atacantes para cada modelo:
- Los atacantes de solo texto cifrado (COA) observan los textos cifrados pero no deducen los textos sin formato asociados, y no deducen cómo fueron los textos sin formato seleccionados. Los atacantes en el modelo COA son pasivos y no pueden realizar consultas de cifrado o descifrado.
- Los atacantes de texto plano conocidos (KPA) observan textos cifrados y conocen el textos plano asociado. Los atacantes en el modelo KPA obtienen así una lista de pares de texto sin formato cifrado, donde se supone que los textos sin formato son seleccionados aleatoriamente. Nuevamente, KPA es un modelo de atacante pasivo.
- Los atacantes de texto simple elegido (CPA) pueden realizar consultas de cifrado para los textos planos de su elección y observa los textos cifrados resultantes. Este modelo captura situaciones donde los atacantes pueden elegir todo o parte de los textos planos que están encriptados y luego ver los textos cifrados. A diferencia de COA o KPA, que son modelos pasivos, los CPA son activos, porque influyen en los procesos de cifrado en lugar de espiar pasivamente.
- Los atacantes de texto cifrado elegido (CCA) pueden cifrar y descifrar; es decir, pueden realizar consultas de cifrado y consultas de descifrado.El modelo CCA puede sonar ridículo al principio, si puede descifrar,¿Qué más necesitas? Pero, al igual que el modelo CPA, su objetivo es representar situaciones en las que los atacantes pueden tener alguna influencia en el texto cifrado y luego obtener acceso al texto sin formato. Además, descifrar algo no siempre es suficiente para romper un sistema. Por ejemplo,algunos dispositivos de protección de video permiten a los atacantes realizar consultas de encriptacion y consultas de descifrado utilizando el chip del dispositivo, pero los atacantes de contexto están interesados en la clave para redistribuirla;en este caso, poder descifrar «gratis» no es suficiente para romper el sistema.
En los modelos anteriores, cada texto cifrado proviene del cálculo de la función de cifrado. Esto significa que generar 2n pares de texto sin formato cifrado a través de consultas de cifrado requieren tanto cálculo como probar 2n claves. El costo de las consultas debe ser
tenido en cuenta cuando se calcula el costo de un ataque.
modelos de caja gris (gray-box)
En un modelo de caja gris, el atacante tiene acceso a la implementación de un cifrado.
Esto hace que los modelos de caja gris sean más realistas que los modelos de caja negra para aplicaciones como tarjetas inteligentes, sistemas integrados y sistemas virtualizados, a los que los atacantes a menudo tienen acceso físico y, por lo tanto, pueden
manipular los componentes internos de los algoritmos. De la misma manera, los modelos de caja gris son más difíciles de definir que los de caja negra porque dependen de las propiedades físicas y analógicas en lugar de solo de los algoritmos de entrada y salida, y la teoría criptográfica a menudo no podrá abstraer la complejidad del mundo real.
Los ataques de canal lateral son una familia de ataques dentro de los modelos de caja gris. Un canal lateral es una fuente de información que depende de la implementación del cifrado, ya sea en software o hardware. Los atacantes de canal lateral observan o miden las características analógicas de la implementación de un cifrado pero no altera su integridad; no son invasivos. En el caso de implementaciones en tarjetas inteligentes, por ejemplo, un canal lateral típico puede se cuando los atacantes miden el consumo de energía, las emanaciones electromagnéticas o ruido acústico.
Los ataques invasivos son una familia de ataques a implementaciones de cifrado que
son más potentes que los ataques de canal lateral y más costosos porque requieren equipo sofisticado. Puede ejecutar un canal lateral básico atacando con una PC estándar y un osciloscopio estándar, pero es invasivo. Los ataques requieren herramientas como microscopios de alta resolución y un laboratorio Quimico. Los ataques invasivos, por tanto, consisten en un conjunto completo de técnicas y procedimientos, desde el uso de ácido nítrico para quitar el empaque de un chip hasta la adquisición de imágenes microscópicas, ingeniería inversa parcial y posible modificación del comportamiento del chip con alguna tecnica como la inyeccion laser.
objetivos de seguridad
Hemos definido informalmente el objetivo de la seguridad como para que se cumpla el axioma «no se puede aprender nada sobre el comportamiento del cifrado». Para convertir esta idea en una rigurosa definición matemática, los criptógrafos definen dos objetivos de seguridad principales que corresponden a diferentes ideas de lo que significa aprender algo sobre el comportamiento de un cifrado:
Indistinguibilidad (IND) Los textos cifrados deben ser indistinguibles de cadenas aleatorias. Esto generalmente se ilustra con este hipotético juego: si un atacante elige dos textos sin formato y luego recibe un texto cifrado de uno de los dos (elegido al azar), no deberían poder decir de qué texto sin formato se cifró, incluso realizando consultas de cifrado con los dos textos sin formato (y consultas de descifrado, si el modelo es CCA
en lugar de CPA).
No maleabilidad (NM) Dado un texto cifrado C1 = E (K, P1), debería ser imposible crear otro texto cifrado, C2, cuyo correspondiente texto llano, P2, se relacione con P1 de una manera significativa (por ejemplo, para crear un P2 que sea igual a P1 ⊕ 1 o un P1 ⊕ X para algún valor conocido X).
En el proximo post, analizaremos estos objetivos de seguridad en el contexto de diferentes modelos de ataque.