Historia de la criptografía

Juan Vera del Campo - juan.vera@professor.universidadviu.com

Años 40: Alemania controla Europa y amenaza al resto del mundo

Sus comunicaciones radio están protegidas con "la cifra indescifrable"

¿Por qué pensaban que era indescifrable?

¿Cómo se descifró?

¿Qué hemos aprendido desde entonces?

Hoy hablamos de...

  1. Criptografía clásica
  2. Cifrado César
  3. Atacando el cifrado César
  4. Mejoras al cifrado César: sistemas polialfabéticos
  5. Confidencialidad perfecta
  6. Resumen y referencias
Criptografía clásica

Criptografía clásica

Criptografía clásica

Criptografía = cifrado

Hasta los años 70 del siglo XX, la criptografía se usaba solo en el ámbito militar y solo ofrecía confidencialidad:

El enemigo no puede saber nuestros planes

El resultado debería ser un mensaje igual que el original

Criptografía clásica

Mecanismos clásicos de cifrado

  • Cifrados por sustitución: cambiar una letra por otra.
    • Monoalfabéticos: mismo algoritmo para toda las letras
    • Polialfabéticos: algoritmos diferentes para cada letra
    • Características: confusión, S-boxes
  • Cifrados por transposición: mover letras de sitio
    • Característica: difusión, P-boxes

https://medium.com/@maitri.51/securing-the-digital-realm-a-closer-look-at-s-boxes-and-p-boxes-in-encryption-b14b35f7e139

Criptografía clásica

Sustitución monoalfabética:

Texto en claro: H O L A C L A S E
Texto cifrado: K R O D F O D V H

Sustitución polialfabética:

Texto en claro: H O L A C L A S E
Texto cifrado: Z S N R G E S W G

Ejemplo de transposición:

Texto en claro: H O L A C L A S E
Texto cifrado: O C S H A A L L E
Criptografía clásica

Transposición: escítala griega

  • Dos varas del mismo grosor
  • Envío: se enrolla una cinta de forma espiral a uno de los bastones y se escribía el mensaje longitudinalmente.
  • Recepción: se enrollaba la cinta en la vara gemela para leer el mensaje original.
Criptografía clásica

Sustitución: cifrado César

  • Es un cifrado monoalfabético: "sustituimos una letra por otra que viene posiciones detrás"
  • Es más antiguo que los romanos: incluso la Biblia hebrea incluye palabras con cifrado de sustitución y evitar así escribir la palabra real.
Criptografía clásica

Criptografía moderna

Combinación de sustitución (s-boxes) y permutación (p-boxes)

center

César y la fortaleza

Cifrado César

Fuerza bruta, análisis frecuencial y fortaleza de un algoritmo

César y la fortaleza

Historia

  • Leyenda: Julio César lo usaba para comunicarse con sus generales
  • Como todos los cifrados de sustitución monalfabética, se descifra con facilidad y en la práctica no ofrece apenas seguridad en la comunicación.

El cifrado César forma parte de sistemas más complejos de cifrado y su estudio sirve para entender por qué los cifrados fallan.

César y la fortaleza

Cifrado

Por ejemplo, clave :

Si necesitas repasar la aritmética modular, consulta el glosario

César y la fortaleza

Descifrado

Giramos la tabla. Fíjate: para , el descifrado es equivalente a cifrar con :

César y la fortaleza

Atacando el cifrado César

Fuerza bruta y algoritmos rotos

César y la fortaleza

Descifrar un texto probando todas las claves posibles

Ataque de fuerza bruta: probar todas las claves hasta que encontremos la "buena":

center

En el sistema César clásico... solo tenemos que probar 26 posibles claves

, así que podemos probar las 26 claves una a una: ataque de fuerza bruta

https://www.imperva.com/learn/application-security/brute-force-attack/

César y la fortaleza

Descifrada una carta encriptada de las guerras carlistas escrita en Bizkaia

"...han llegado a Leqitio 6 trincaduras con pertrechos para ellos...."

https://www.elcorreo.com/culturas/descifra-carta-encriptada-20211108081121-nt.html

César y la fortaleza

Contramedidas

¿Cómo podemos proteger estos sistemas contra la fuerza bruta?

César y la fortaleza

Posibles defensas contra la fuerza bruta:

  • Cerradura: aumentando el tamaño de la clave, el atacante pasará más tiempo intentanto abrir la cerradura
  • Tarjeta: limitamos el número de intentos antes de bloquear la tarjeta, o hacemos que cada intento cueste dinero

Que el descifrado sea costoso tiene el problema de que también le costará al receptor, que descifra legítimamente. Actualmente no se recomienda esta estrategia

Estrategia actual: obligar al atacante a que tenga que probar muchas claves

César y la fortaleza

Tamaños de clave

Contraseñas: podemos aumentar el tamaño de clave aumentando tanto el número como el tipo de caracteres

Tipo Ejemplo # de claves diferentes Tamaño en bits
PIN de 4 números 3659 9999
4 letras mayúsculas CASA 614656
4 letras + especiales Ca*4 33362176 25 bits
5 letras + especiales Ca*4S 2535525376 32 bits
41 letras + especiales o18uIo=...9f89fdA!S 256 bits
54 mayúsculas KJASWE...SAJKSAJF 256 bits
77 números 923821321...12998 256 bits

En criptografía solemos medir la longitud de una clave con la cantidad de bits que necesitamos para guardarla

Medir las claves en bits nos permite comparar "su fortaleza": mismo número de bits, misma seguridad

César y la fortaleza

Igual que en la leyenda del ajedrez...

Cada vez que aumentamos un bit se dobla el número de claves posibles

Eso tiene un crecimiento exponencial: rápidamente llegamos a números enormes

Veremos que claves de 256 bits es el estándar actual para tamaño de clave

https://www.pragatiedible.com/the-legend-of-rice-and-chess-exponential-growth/

César y la fortaleza

Fuerza bruta

  • En una CPU "estándar" se prueban 1.000.000 clave/CPU/s
  • es decir: clave/CPU/s
  • es decir: se prueban claves/s en 1000 CPU
  • es decir: se prueban 3.6 * claves/h en 1000 CPU
  • en AWS EC2 una c4.large cuesta 10 céntimos/h
  • es decir claves/€/h

Si tenemos capacidad de diseñar/fabricar en hardware (ASIC) los costes bajan después de un periodo de amortización

César y la fortaleza

Alquilando equipos en la nube por segundos, con un euro cada segundo podemos probar claves

Si estimamos que nuestro "secreto" vale 1000 €: nos hacen falta un sistema criptográfico que permita escoger entre claves diferentes para guardar el secreto durante una hora.

Nota que . Se dice que este sistema tiene una fortaleza de 48 bits: un atacante tiene que probar claves si quiere romperlo por fuerza bruta

Observa: aumentando el número de bits de la clave aumentamos exponencialmente el tiempo necesario para romper el sistema. Con 128 bits... necesitaríamos miles de años.

César y la fortaleza

Fortaleza de un algoritmo

¿Qué algoritmo "es más seguro", DES, AES o RSA?

Para comparar la seguridad de los algoritmos usamos el concepto de fortaleza

En los algoritmos bien diseñados, su fortaleza depende solo del tamaño de la clave: claves más largas tienen una fortaleza mayor

La fortaleza o seguridad de un algoritmo es el tamaño en bits de su espacio de claves. Es decir, el número de claves diferentes posibles que se tienen que probar para romperlo por fuerza bruta. Normalmente se expresa en bits.

César y la fortaleza

Ejemplos:

  • Si el atacante tiene que romper César por fuerza bruta, tiene que probar 28 contraseñas diferentes: entre 4 y 5 bits de fortaleza
  • Si el atacante tiene que probar claves para romper un algoritmo, este algoritmo tiene fortaleza 48 bits

Los algoritmos actuales tienen fortalezas de 128 ó 256 bits, pero ya veremos esto con más detalles en sesiones posteriores

César y la fortaleza

Aumentando el espacio de claves en César: mapeo aleatorio

Hemos visto que el César original tiene como máximo 26 claves, aproximadamente , es decir, entre 4 y 5 bits de fortaleza.

Podemos mejorarlo permitiendo cualquier mapeo aleatorio:

Ahora tenemos posibles claves, , 88 bits de fortaleza.

César y la fortaleza

¿Cuánto tiempo necesitamos guardar un secreto?

  • "Atacaremos a las 11" dejará de ser secreto a las 11: 1 día
  • "Mis cartas personales": 10 años
  • "La fórmula de la Coca-Cola": 100 años

Piensa: en 10 años la tecnología ha avanzado mucho: lo que ahora cuesta 100 años, ¡en 10 años podría ser automático!

Más sobre esto en el tema 3

César y la fortaleza

Mejorando la fuerza bruta

¿Podemos encontrar un método más rápido que probar las claves una a una?

Hq fulswrjudild, ho fliudgr Fhvdu, wdpelhq frqrflgr frpr fliudgr sru
ghvsodcdplhqwr, frgljr gh Fhvdu r ghvsodcdplhqwr gh Fhvdu, hv xqd gh
odv whfqlfdv gh fliudgr pdv vlpsohv b pdv xvdgdv. Hv xq wlsr gh
fliudgr sru vxvwlwxflrq hq ho txh xqd ohwud hq ho whawr ruljlqdo hv
uhhpsodcdgd sru rwud ohwud

https://www.dcode.fr/caesar-cipher

Si el mensaje es suficientemente largo, podemos analizar la frecuencia de aparición de los carácteres

César y la fortaleza

Análisis de frecuencias

¡La estadística se mantiene igual (pero movida) después del cifrado César!

César y la fortaleza

Rotura de algoritmos criptográficos

El cifrado César, incluso con mapeos aleatorios, lleva roto como mínimo desde el siglo IX, cuando Al-Kindi describió por primera vez el análisis de frecuencia contra el cifrado César

Es decir: no es necesario probar todas las claves ciegamente. Por ejemplo, podemos descartar todas aquellas que darían un texto con un número imposible de Z

Un algoritmo está roto desde el punto de vista criptográfico cuando se conoce un ataque más eficiente que la fuerza bruta.

Vigenère y Enigma

Mejoras al cifrado César: sistemas polialfabéticos

Vigenère y Enigma

Vigenère y Enigma

Tabula recta

Johannes Trithemius en 1508, con el primer libro conocido dedicado a la criptografía, inició el sistema de cifrados polialfabéticos...

...al principio sin clave.

Vigenère y Enigma

Cifrado de Vigenère

Cifrado polialfabético de Giovan Battista Bellaso en 1553, pero atribuido a Vigenère

ahora será una secuencia de números.

Es decir: la primera letra se desplaza 23 posiciones, la segunda 8, la tercera 3, luego 23 otra vez, luego 8, luego 3...

Habitualmente se escriben las letras que cifran el texto "AAA":

Vigenère y Enigma

Siendo la longitud de la clave

Ejemplo.

HOL AMU NDO
||| ||| |||
XID XID XID
||| ||| |||
EWO XUX KLR 
Vigenère y Enigma

"Le chiffre indéchiffrable" se utilizó desde el siglo XVI hasta bien entrado el siglo XX.

...aunque ya había expertos en romperlo en el siglo XIX.

Vigenère y Enigma

Ejemplo

Wr urutlsyrmjae, wl omxvsda Gwwsr, feefaez ggrgcuhg ggma gajjaps hsj dqwhpszmqaifta, gghaga hw Gwsmv g hwsbpsdsmuifxg dq Gwwsr, qw mrs dq psw leoragss pi umxrmhg qss emetdee c eek ueevek. Ee yf xapa hw gafdevs hod wmwlifyumgn qr wp iuq yfe defvs if ex xwblo avakanmp ww jeqqhpszmhs tgr axje defvs

https://www.dcode.fr/vigenere-cipher

Vigenère y Enigma

Seguridad de Vigenére

Ahora el espacio de claves es (clave de 3 carácteres):

Se puede aumentar el espacio de claves indefinidamente con contraseñas más largas.

Para contraseñas de carácteres:

Ejemplos :

  • Si , existen claves diferentes. Coste de fuerza bruta: 0,5 €
  • Si , existen claves diferentes. Coste: 100 mil millones de €
Vigenère y Enigma

Vulnerabilidad: la repetición de la clave, que además es de longitud adivinable y normalmente corta.

Si segmentamos el texto cifrado de acuerdo a la longitud de la contraseña, cada fragmento de texto mostrará las mismas estadísticas del idioma (cifrado César)...

Sólo hace falta adivinar la longitud de la "contraseña" (Hamming, Kasiski) o...

...como el espacio de longitudes será probablemente limitado, podemos probarlos uno por uno hasta que tenemos una estadística reconocible.

Vigenère está también roto. Su análisis es más laborioso que César, pero no es necesaria la fuerza bruta sobre todo el espacio de claves.

Un espacio de claves grande no es suficiente
No se debe cifrar dos trozos del mensaje con la misma clave

Vigenère y Enigma

Máquina Enigma

  • Inventada por Arthur Scherbius y usada a partir de los años 20 del siglo XX
  • Existía versión comercial y versión militar
  • Finalmente "vencida" por Alan Turing.
  • Ejemplo de uso
Vigenère y Enigma

Vigenère y Enigma

Máquina Enigma: seguridad

  • Sistema polialfabético como Vigenère, con una clave muy larga que se define con la posición inicial de los rotores
  • Con la tecnología de la época no era posible hacer fuerza bruta antes de que cambiase la clave (cada día)
  • "Indescifrable" según casi todos los expertos.

Información adicional: https://en.wikipedia.org/wiki/Cryptanalysis_of_the_Enigma

Vigenère y Enigma

Protocolo alemán de uso:

  • La posición de los rotores se cambiaba cada día
  • Parte de la clave la escogían los operadores de radio y se enviaba por las ondas al inicio
  • El texto era natural
Vigenère y Enigma

Se rompió más "por mal protocolo" que porque el sistema fuese defectuoso

  • Los rotores se cambiaban cada día para que no coincidiesen las letras: A no podía cifrarse como A, ni igual que ayer. Eso limitaba el espacio de claves: ya no hay que probar nada que se parezca a la configuración de ayer.
  • Parte de la clave la escogían los operadores de radio:
    • se enviaba por ondas radio al inicio... dos veces (aunque esto cambió en 1940)
    • Los operadores en medio de una guerra no siempre escogían claves perfectamente aleatorias. A veces era AAA, ó ABC...
  • El texto era natural: nada que reportar, hitler, meteorología... aparecían con mucha frecuencia
Vigenère y Enigma

Una vez reducido el espacio de clave, identificados qué textos es probable que apareciesen y otros atajos...

...el cifrado del día se podía romper por fuerza bruta en 20 minutos, cada mañana, utilizando una batería de máquinas llamada "Bombe"

La "Bombe" fue una de las primeras máquinas de procesado binario.

El descifrado de Enigma fue una de las claves que permitió a los aliados ganar la Segunda Guerra Mundial

Confidencialidad perfecta

Confidencialidad perfecta

One-time-pad (cifrado Vernam)

Confidencialidad perfecta

Confidencialidad perfecta

Seguridad perfecta o incondicional: no se puede deducir ninguna propiedad del texto original en claro, incluso aunque el atacante tenga recursos infinitos (tiempo, dinero)

  • Gilbert Sandford Vernam inventó y patentó una máquina de cifrado en 1917
  • Shannon demostró en 1945 que esa máquina tenía cifrado perfecto

Communication Theory of Secrecy Systems, Claude E. Shannon, Bell System Technical Journal, vol.28-4, page 656--715, Oct. 1949.

Confidencialidad perfecta

Definición exacta:

Confidencialidad perfecta (perfect secrecy): un sistema es perfectamente seguro si y solo si para cualquier distribución de probabilidad sobre el espacio de mensajes en claro , y para todos los mensajes en claro y para todos los textos cifrados posibles , la probabilidad condicionada de dada y la probabilidad de coinciden

Confidencialidad perfecta

Si tienes el texto cifrado "XHAJSJXXNFHFDOIOJUMNF" (21 caracteres):

  • existe una clave de tamaño 21 que descifra "ATACADALASOCHOENPUNTO"
  • existe otra clave de tamaño 21 que descifra "SEHAQUEDADOBUENATARDE"
  • existe una clave de tamaño 21 que descifra cualquier otro mensaje que se te ocurra de 21 caracteres
  • un atacante no sabe qué mensaje es el que realmente se cifró, así que aunque pruebe las claves una a una no sabrá nunca si ha acertado con "la buena"

Definición informal: un cifrado perfecto no puede descifrarse ni siquiera por fuerza bruta porque un atacante no puede distinguir el mensaje real de todos los posibles mensajes falsos

Confidencialidad perfecta

¿A qué hora atacamos?

Imagina que unos atacantes acuerdan el siguiente mapeo, es decir, clave:

  • A = 16 horas
  • B = 7 horas
  • C = 13 horas
  • ...

El castillo captura este mensaje: "Atacamos a las F"

¿El castillo tiene alguna forma de conocer a qué hora le atacarán?

Confidencialidad perfecta
  • La primera vez, el castillo no tiene forma saber a qué hora le atacarán ni aunque pruebe todas las claves. Este cifrado es perfecto
  • Pero puede aprovechar el primer mensaje para descifrar los siguientes que usen la misma clave:
    • Si no le han atacado a la 1, sabe que F no es 1
    • Si no le han atacado a las 2, sabe que F no es 2
    • Si le atacan a las 3, sabe que F es 3
  • Tras cada ataque, los atacantes tienen que cambiar qué significan las letras. La clave solo puede usarse una vez.
  • Si el castillo intercepta un mensaje tio HK, sabe que H es 1 ó 2 porque no existe la "hora 37": el mapeo tiene que ser completo. Es decir, la clave tiene que ser tan larga como el mensaje
Confidencialidad perfecta

Condiciones de la confidencialidad perfecta

Shanon (1949) demostró que para tener confidencialidad perfecta el sistema de cifrado tienen que cumplir obligatoriamente las siguientes características:

  • La clave debe tan larga como el mensaje
  • La clave solo se usa una vez
  • Totalmente aleatoria

Problema: ¿cómo distribuimos estas claves tan largas?

El cifrado perfecto no se puede descifrar, pero la necesidad de claves largas limita su uso

Communication Theory of Secrecy Systems, Claude E. Shannon, Bell System Technical Journal, vol.28-4, page 656--715, Oct. 1949.

Confidencialidad perfecta

Convirtiendo Vigènere en cifrado perfecto: cifrado Vernam (one time pad)

El cifrado de Vigenère sufría un problema similar al del César (aunque camuflado): manifestaba la estadística del mensaje en claro en el mensaje cifrado

Podemos evitar que se manifieste la estadística en el texto cifrado si utilizamos cada letra de la clave una sola vez

Msg: ELMENSAJEQUEQUEREMOSCIFRARPUEDESERCUALQUIERA
Key: LACLAVEDEBESERTANLARGACOMOELMENSAJEYSEREPITE

Cif: PLOPNNEMIRYWULXRRXOJIIHFMFTFQHRKEAGSSPHYXMKE
Confidencialidad perfecta

Vernam patentó el one-time-pad de una manera similar pero equivalente:


La longitud en bytes de es igual que la longitud en bytes de .

Las claves se guardaban en hojas de papel de un solo uso. Las dos partes tenían una colección de estas hojas y se destruía en cuanto se usaba.

La NSA tenía 86.000 one-time-pads solo para el año 1972.

Si lo necesitas, mira la operación XOR en el glosario

Confidencialidad perfecta

El teléfono rojo entre Washington y Moscú fue un teletipo que usaba cifrado de bloque de un solo uso

La clave se intercambiaba por valija diplomática en cinta perforada que se entregaba en ambos sentidos. Mientras no hiciese falta, se guardaba protegida y se destruía después de ser usada

Además, el one-time-pad permitía trabajar de forma segura sin intercambiar ningún algoritmo secreto que diera ventaja técnica al enemigo

Confidencialidad perfecta

Vulnerabilidades

Ninguna. Ni siquiera por fuerza bruta: si pruebas claves, puedes "descifrar" el texto cifrado y conseguir cualquier mensaje que se te ocurra...

...mientras se cumplan las hipótesis de trabajo para la clave :

  • tan larga como el mensaje
  • un solo uso
  • aleatoria (i.e. uniformemente distribuida)

Los humanos somos muy malos para distinguir qué es y qué no es aleatorio

Confidencialidad perfecta

El principal problema es que la longitud en bytes de es igual a la longitud en bytes de

Para poder usar un one-time-pad, la clave se prepara por adelantado

Cuesta tanto enviar de forma segura como enviar directamente en claro por el mismo canal seguro

Más ejemplos: https://www.cryptomuseum.com/covert/conceal/index.htm

Confidencialidad perfecta
  • Al final de la segunda guerra mundial, EEUU descifró el one-time-pad usado por los diplomáticos alemanes porque utilizaban contraseñas no totalmente aleatorias y podían adivinarse.
  • 1944: EEUU descifró mensajes de la URSS a Australia... porque utilizaban el mismo one-time-pad que la URSS usaba con EEUU.
  • 1962 (ataque canal lateral): las máquinas usadas para cifrar eran eléctricas y emitían un campo magnético, que Japón podría haber aprovechado para captar qué cifraba la embajada de EEUU: TEMPEST

Resumen y referencias

center

  • La información de contexto puede ayudar a descifrar un mensaje
  • Definimos la fortaleza de un algoritmo como el tamaño de la clave en bits, si no se puede romper más que por fuerza bruta
  • Un algoritmo se considera bueno mientras no se conozca ningún otro ataque aparte de la fuerza bruta
  • La criptografía perfecta es posible, pero no práctica
  • El mejor sistema de cifrado puede caer si se usa de forma incorrecta:
    • no hay que reutilizar claves
    • la fuente de aletoriedad tiene que ser realmente aleatoria
    • el diseño de buenos protocolos no es evidente
  • Hasta los '70 la criptografía o era "insegura" (cifrados César, Vigenere, Enigma) o no era "práctica" (one-time-pad)

1976, el año que empezó todo...

La NSA selecciona un algoritmo de cifrado simétrico de IBM para comunicaciones de la administración: DES (Data Encryption Standard), que es "casi" perfecto.

Whitfield Diffie y Martin Hellman generan el primer algoritmo práctico de criptografía asimétrica, que permite distribuir fácilmente claves seguras.

Referencias

Ejercicios opcionales pero muy recomendables:

¡Gracias!

¿Recordáis la máxima de Shanon y los principios de Kerckhoffs? "El adversario conoce el sistema". Es decir: los único que debe ser secreto (a parte del mensaje, claro) es la clave de cifrado/descifrado. Se tiene que asumir que el adversario conoce las funciones e() y d() Aún no estaban preocupados de identificar con quién estaban hablando: "si conoce la clave, será un interlocutor legítimo". Nota: ¿Cifrar o encriptar? En este curso llamaremos a la ciencia "criptogafía" y al acto "cifrado". Encontrarás gente que utiliza "encriptar" como sinónimo de "cifrar". La RAE ha aceptado recientemente el verbo "encriptar", pero la polémica sobre si usar o no ese verbo sigue abierta en nuestro sector.

Con "clásicos" queremos decir que se usaban desde tiempos del imperio egipcio, pasando por hebreos, griegos, romanos, edad media, edad moderna (incluidas las guerras mundiales)... es decir, desde que se inventó la escritura hasta ayer mismo. Estos dos métodos de cifrado se han utilizado durante miles de años, y nuestros algoritmos de cifrado simétrico actual aún los tienen como parte de sus pasos

Fíjate: - En el primer caso, las letras A y L siempre se cifran igual - En el segundo caso, las letras A y L se cifran diferente cada vez - En el tercer caso, son las mismas letras pero desordenadas El cifrado con XOR es un tipo de cifrado polialfabético

Recordad: la criptografía quiere mejorar la dispersión y la difusión del mensaje original. La transposición simple como la de la escítala ayuda en ambos casos. Prácticamente todos los algoritmos actuales de cifrado simétrico utilizan sistemas de transposición como uno de los pasos del cifrado. Imagen: https://upload.wikimedia.org/wikipedia/commons/5/51/Skytale.png

Desde tiempos de los romanos, el cifrado por excelencia hasta la década de los '70 ha sido algún tipo de cifrado por sustitución más o menos complejo. Los estudiaremos a continuación con más detalle en el resto de capítulos Imagen: https://upload.wikimedia.org/wikipedia/commons/2/2b/Caesar3.svg

Gracias a la ayuda de los computadores modernos podemos hacer redes complejas pero, en esencia, seguimos haciendo permutaciones y sustituciones

Es muy posible que César utilizase sistemas más complejos de cifrado que no conocemos: "There is even a rather ingeniously written treatise by the grammarian Probus concerning the secret meaning of letters in the composition of Caesar's epistles." — Aulus Gellius, Attic Nights 17.9.1–5 Imagen: https://upload.wikimedia.org/wikipedia/commons/8/8f/Gaius_Iulius_Caesar_%28Vatican_Museum%29.jpg

En las transparencias que siguen, asumimos que el alfabeto es el latino y solo hay 26 posibles letras

El descifrado césar sigue exactamente el mismo algoritmo que el cifrado, pero usando una clave diferente. Esto pasará a menudo: la función de cifrado (o al menos algunos de los pasos de la función de cifrado) es muy parecida a la función de descifrado. Esto es una enorme ventaja porque nos permite utilizar los mismos programas, o parte de los mismos, para cifrar y descifrar: - menos errores, al reutilizar código - si usamos hardware especializado, podemos reaprovecharlo en el envío y la recepción

Observación en el César clásico, de media, tenemos que probar solo 13 claves: ¡la mitad!

José Ramón Cuesta, archivero, investigador y escritor, que explica que el mensaje "está codificado mediante el sistema de sustitución simple o de letras emparejadas". Para poder interpretarlo hay que sustituir cada letra por su par. Cada vez que aparece una a hay que sustituirla por una eme, la be por una ene y la ce por una o. Y así de forma sucesiva. Es decir, es un César con k=12. Fíjate en algunas curiosidades típicas en el ámbito militar para simplificar el proceso de cifrado manual: "no tiene en cuenta la uve, sustituida por la be, que es representada por la ene. Tampoco consta la ka ni la eñe. La u sirve para representar tanto la i latina como la i griega." Estas simplificaciones de letras dependen de la lengua original. Fíjate también que para interpretar el texto necesitas información de contexto, porque son telegramas y no novelas. Estas características (letras de menos, jerga) ya no las estudia la criptografía moderna aunque sí que sean necesarias para interpretar correctamente un mensaje, y fueron importantes para descifrar textos en el pasado. Por ejemplo con la máquina enigma, como veremos más tarde. Además, la forma del papel sugiere que estaba oculto en algún sitio y tenía esa forma para que no fuese reconocible. Sí que hay un rama de la criptografía moderna que estudia cómo ocultar un mensaje: la esteganografía.

![bg left:50%](images/historia/voynich.jpg) Pero no siempre es posible saber si un mensaje se ha descifrado correctamente: - El [manuscrito Voynich](https://es.wikipedia.org/wiki/Manuscrito_Voynich) aún no ha sido descifrado. Suponiendo que use César, no se sabe en qué lengua está escrito originalmente. - Imagina que solo está cifrada la hora "atacamos a las X"... Si una clave descifra "a las 5" y otra "a las 7" ¿cómo validamos qué hora es correcta? <!-- El manuscrito Voynich podría ser una broma de textos sin sentido. Los expertos parecen hacer descartado que el manuscrito Voynich tenga un cifrado simple como el César. Aún así, han analizado los textos y han encontrado que siguen pautas estadísticas de un lenguaje real. El misterio sigue abierto. Imagen: https://upload.wikimedia.org/wikipedia/commons/9/93/Voynich_Manuscript_%2832%29.jpg

Estos no son exactamente sistemas de cifrado, pero nos sirven para explicar lo que es la fuerza bruta. ¿Cómo abrirías la cerradura de la puerta? ¿Cómo puede un ladrón utilizar una tarjeta de crédito robada? ¿Qué estrategias se usan en cada caso para proteger el sistema? Images: free for commercial use: - https://pixabay.com/photos/money-cards-business-credit-card-256319/ - https://pixabay.com/photos/lock-combination-security-safety-1929089/

Por supuesto, el atacante puede intentar usar una llave maestra, o robar el PIN con ingeniería social. Ese tipo de ataques o bien es "romper un algoritmo" o bien "usar canales laterales". No vamos a considerarlos por ahora, vamos a considerar que los sistemas se usan cómo se han diseñado

Fíjate en estos casos: - a mismo número de caracteres, mayores posibilidades (números...) aumenta el tamaño en bits - a mismo número de posibilidades, aumentar el número de caracter aumenta el tamaño en bits - una contraseña de 54 letras mayúsculas tiene el mismo número de bits que una contraseña de letras minúsculas, mayúscuas, números y caracteres especiales: misma seguridad

Estos cálculos están desactualizados y son más rápidos cada año. En cualquier caso sirven para hacernos una idea de lo rápido que pueden hacer fuerza bruta los ordenadores actuales

No recuerdo qué cifré aquí, ni con que clave, pero no parece difícil descubrirlo. - Hay letras solas, que en castellano solo pueden ser a, y, o. También e, u, pero es muy improbable. Cualquier otra letra será aún más improbable. Por eso la criptografía clásica en realidad nunca ha usado espacios: da mucha información al adversario - Haciendo análisis de frecuencias, la h aparece muchas veces: es muy probable que sea a ó e - Los dígrafos hv gh (varias veces...) podrían ser es, el, me, le ó se **La información de contexto nos ayuda a descifrar (espacios, lenguaje...)**. Eso también pasa en una web actual: ¿qué es lo que tiene un mensaje cifrado a un banco inmediatamente después de visitar una tienda?

## Transponer y sustituir Podemos añadir una transposición a la vez de una substitución: ![center](images/historia/marshrut.png) Podemos mapear cualquier letra a cualquier otra letra ``` ABCDEFGHIJKLMNOPQRSTUVWXYZ XZCTEROSIULKWNGYQFHDJVMAPB ``` Todo esto aumenta el espacio de claves, pero sigue siendo vulnerable a análisis de frecuencia. <!-- En vez de usar un movimiento en el alfabeto, podemos cambiar totalmente el alfabeto. Eso aumenta espectacularmente el espacio de claves, hasta el punto de que no es posible para un humano hacer fuerza bruta... ... pero no impide hacer análisis frecuencial. Cualquiera de estas propuestas está tan rota como el cifrado César. Imagen: https://i1.wp.com/nozdr.ru/_media/games/quest/for/cipher/marshrut.png

La primetra letra del mensaje se cifra con la primera columna, la segunda con la segunda... y así. ¡El texto ya no es analizable por frecuencias! Pero no comple la máxima de Shanon: el sistema es seguro solo mientras que la table se mantenga en secreto. La tabula recta abrió el camino de los cifrados polialfabéticos. Solo unos 20 años después, Battista Bellaso añadió una clave al sistema

Fíjate: el "tabula recta" es un Vigenère con una clave fija que se se puede cambiar $k=ABCD...WXYZ$

Images: https://people.duke.edu/~ng46/collections/crypto-disk-us-ww1-front.jp

clave: SESAME Ahora el análisis frecuencil es mucho más complejo... ¡pero podemos agrupar los textos en grupos de 6 y aplicar frecuencias a cada columna! ¿Por qué 6? No lo sabemos. Podemos probar, o buscar ciclos (que son comunes) y estimar la longitud de la clabe. En ejemplo, la w está muchas veces en grupos de palabras solos: ¿quizá es la E cifrada con una de esas S de la clave?

Entreguerras, guerra civil española, ejército alemán. En la guerra civil española, el bando sublevado utilizaba la versión comercial (que los ingleses sabían leer) Fijate: - Los rotores podían extraerse e intercambiar sus posiciones - Los rotores podían empezar en cualquier letra - El panel conectaba (o no) pares de letra entre sí. Al principio tenía 4 cables, luego aumentó a 6. El panel era exclusivo de la versión militar. La clave era: posición de los rotores, letras iniciales en los rotores, posición de los cables. Todo esto cambiaba cada día. Además, para evitar que todos los alemanes usasen cada día la misma clave en todos sus mensajes, había al inicio un pequeño paso adicional de anuncio de "clave de sesión".

https://res.cloudinary.com/practicaldev/image/fetch/s--2qwhwBZd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/maxime1992/my-dev.to/master/blog-posts/enigma-part-1/assets/enigma-schema.jpg El ejemplo de la derecha solo muestra la versión comercial sin el panel frontal de cables. Los aliados tenían copias de la versión comercial pero no la versión militar. No sabían, entre otros detalles, cómo estaban cableados los rotores por dentro. Además, la versión militar tenía 5 rotores disponibles, de los que cada día se usaban tres.

excepto la longitud... y el momento de enviarlo, ...y el número de mensajes La fotogradía no es la máquina patentada por Vernam, si la máquina de Lorentz, usada en la Segunda Guerra mundial por los alemanes para mensajes que necesitaban permanecer secretos mucho tiempo (comunicaciones dipomáticas, por ejemplo). La máquina de Lorentz era similar al a de Vernam: https://en.wikipedia.org/wiki/Lorenz_cipher

Desde que los matemáticos entraron en la criptografía, existe definiciones de todos los términos tan exactas y formales como incomprensibles para un profano Cosas que implica: - Lo que dijimos antes: dado un texto cifrado, no conocemos nada de su texto en claro - Dado un texto cifrado, el mensaje en claro podría ser cualquiera:

En realidad esto ya se sabía antes de que Vernan inventase su máquina. Pero el invento de Vernan permitió usar este tipo de cifrado, y además Shannon acabó formalizando la teoría matemática que empezó la criptografía moderna

Esos libritos naranjas son los libros de claves, y el gran problema de estas máquinas es cómo hacer llegar los libros de claves a cada espía

La criptografía actual empezó en 1976: se escogió un algoritmo de cifrado simétrico que es casi perfecto y además práctico, y se descubrió la criptogradía asimétrica que permitía publicar parte de la clave.