Módulo 2. Criptografía
Módulo 2. Criptografía
PID_00276301
Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea este eléctrico,
mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita
del titular de los derechos.
© FUOC • PID_00276301 Criptografía
Índice
Introducción............................................................................................... 5
Objetivos....................................................................................................... 6
Resumen....................................................................................................... 26
Bibliografía................................................................................................. 27
© FUOC • PID_00276301 5 Criptografía
Introducción
Hay que remarcar que este será el hilo conductor del módulo, pero es igual-
mente importante e imprescindible consultar todas las referencias que se in-
dican. Aun así, algunas son complementarias y no obligatorias y se presentan
con el título «Para saber más».
© FUOC • PID_00276301 6 Criptografía
Objetivos
Para garantizar todas estas propiedades, se han diseñado numerosas premisas Lecturas recomendadas
y�protocolos�criptográficos a lo largo de la historia: desde el histórico cifrado
A.�Narayanan;�J.�Bonneau;
que utilizaba Julio César hace más de dos mil años al conocido intercambio E.�Felten;�et�al. (2016). Bit-
de�claves�Diffie-Hellman, en 1976, o las criptomonedas que han revolucio- coin and Cryptocurrency Tech-
nologies: A Comprehensive
nado el paradigma económico en la última década, junto con la tecnología Introduction. Nueva Jersey:
Princeton University Press.
de las cadenas� de� bloques (en inglés, blockchain), destinada a revolucionar
Borrador de la publicación
el paradigma de las comunicaciones en los próximos años, para mencionar previo al libro en: <https://
[Link]/33zGqmO>.
solo algunos ejemplos. Pero la historia de la criptografía en si tiene, en par-
W.�Diffie;�M.�Hellman
te, un componente bélico, no solo por el contexto en que se ha desarrollado, (1976). «New directions
in cryptography». IEEE
sino porque a la propuesta de una primitiva o protocolo criptográfico, la han Transactions on Informa-
seguido muchas veces ataques que mostraban sus debilidades. A veces eran tion Theory (vol. 22, nº 6,
pág. 644-654). <https://
ataques de llamados adversarios que pretendían, por ejemplo, descifrar las co- [Link]/31p3XEe>.
municaciones y obtener informaciones secretas (no cuesta de imaginar este
escenario en las guerras); otras veces era la misma comunidad investigadora,
que evaluaba la seguridad de las herramientas propuestas para garantizar la
seguridad. Sea como fuere, después del descubrimiento de alguna debilidad o
vulnerabilidad, llega el momento de la enmienda con una nueva propuesta,
con el objetivo que no solo cumpla con las funciones propuestas sino que se
© FUOC • PID_00276301 8 Criptografía
C = Ek(M)
Es importante que el cifrado permita que el receptor del mensaje lo pueda des-
cifrar con cierta facilidad. Así, aplicando un algoritmo de descifrado al texto
cifrado con una cierta clave k', no necesariamente la anterior, se consigue re-
cuperar el texto en claro. De manera resumida, podríamos decir que:
m = Dk'(C)
verificación, respectivamente. Del mismo modo que pasaba con los cifrados,
para garantizar la seguridad del protocolo de firma digital, no solo hay que
tener en cuenta la seguridad de los algoritmos de firma y verificación, sino la
generación adecuada de las claves.
Dos protagonistas ocupan la mayoría de las historias criptográficas: Alicia y Ved también
Bernat. Ellos son los encargados de cifrar, descifrar, firmar, compartir y hacer
Para saber más, podéis leer el
todo aquello que haga falta en la mayoría de situaciones que aborda la cripto- apartado 1 del módulo «Intro-
grafía. Otros personajes que los acompañan son Eva y Óscar (que acostumbran ducción a la criptografía».
a letra el mensaje limpio sustituyendo cada letra por la que hay a la cabeza
de tres posiciones al alfabeto. Así, las letras A del texto en claro pasaban a ser
D en el texto cifrado, las B se sustituían por E, las Z por B, y así con el resto
de letras del alfabeto. En el caso del cifrado por decalaje, el procedimiento es
similar, pero se desconoce el número de posiciones que se desplaza una letra
al alfabeto cuando se cifra. Justamente este número es la clave secreta que solo
tendrían que conocer el emisor del mensaje y el receptor. En el caso del cifrado
de César, la clave secreta k es 3.
Ejemplo
Si hoy en día el supercomputador más rápido que se conoce tiene una velocidad máxima
de la orden de 1017 operaciones por segundo, y si la longitud de una clave en un cifrado
de los que usamos para cifrar las comunicaciones por internet es de 120 bits, esto quiere
decir que para lanzar un ataque de fuerza sucia hacen falta 2128 claves. Por lo tanto, el
supercomputador más rápido necesitaría 5.000 veces la edad del universo para llevar a
cabo satisfactoriamente el ataque.
¿El ataque de fuerza sucia, no obstante, es una curiosidad histórica? No, más Lectura recomendada
bien al contrario. La historia reciente es testigo que se han registrado estos
National�Institute�of�Stan-
ataques, aunque se conozca una mitigación relativamente sencilla. Un caso dards�and�Technology
bastante conocido es el ataque de fuerza sucia al cifrado DES. (NIST) (1999). Data encry-
ption standard (DES). FI-
PS PUB 46-3. <https://
[Link]/30AiopU>.
A pesar de que hoy en día no se utilizan estos cifrados históricos, es impor-
tante entender el funcionamiento de algunos. En particular, los conceptos�de
difusión�y�confusión, que son fundamentales en el diseño de los cifrados si- Ved también
métricos modernos, y que están inspirados en las técnicas de transposición y
Para saber más, podéis leer el
sustitución de los cifrados clásicos. Más concretamente, la confusión incluye apartado 2 del módulo «Intro-
ducción a la criptografía».
© FUOC • PID_00276301 12 Criptografía
sustituciones para que la relación entre la clave y el texto cifrado sea tan com-
plicada como se pueda, mientras que la difusión utiliza transformaciones que
disipan las propiedades estadísticas del texto en claro entre el texto cifrado.
Las letras no aparecen aleatoriamente en los textos, y hay patrones que de-
penden del idioma en que está escrito el texto. A los mensajes en catalán, por
ejemplo, letras como, por ejemplo, la A o la E son muy comunes, mientras que
otras como la Y o la K no lo son mucho. Igualmente, algunas combinaciones
de letras como por ejemplo BR o NS son muy habituales, mientras que otras
como NB o GJ no lo son.
Todavía más, hay una distribución característica de las letras que es práctica-
mente la misma para la mayoría de casos de esta lengua. Así, si el cifrado pre-
serva las propiedades naturales del texto en claro al texto cifrado, el cifrado
puede ser potencialmente objeto de ataques de análisis de frecuencias. Se ana-
lizan las propiedades estadísticas de las letras del texto cifrado, de los grupos
de dos letras (bigramas) o incluso de los grupos de tres letras (trigramas), y par-
tiendo de la suposición que el texto está cifrado en un idioma, se asume que
los grupos de letras, bigramas o trigramas del texto coinciden con los grupos
de letras, bigramas o trigramas más frecuentes en esta lengua. A partir de aquí
se deriva parte del texto, y en el supuesto de que todavía quede texto cifrado
para descifrar, la información parcial obtenida puede ayudar a continuar con
el análisis de frecuencias de nuevos grupos de letras. Hay que mencionar que
el texto tiene que ser bastante largo (se considera que de cuatro páginas, como
mínimo) para que sea posible un ataque de análisis de frecuencias.
En otro de los cifrados clásicos, el de sustitución simple, cada letra del texto
en claro se reemplaza por otra: una letra concreta del texto en claro siempre
se transformará en la misma letra al mensaje cifrado. Por ejemplo, suponemos
que todas las A se convierten en X. Un texto cifrado con una alta frecuencia
de letras X podría sugerir que la X representa la letra A. Aún así, podría ser
también una E u otra letra muy común; por lo tanto, hay que mirar diferen-
tes combinaciones y ver con estas suposiciones qué es el texto resultante al
descifrarlo.
© FUOC • PID_00276301 13 Criptografía
A lo largo de los siglos se han planteado diferentes alternativas para defenderse Ved también
de este ataque, como por ejemplo diseñar cifrados en que cada carácter no
Para saber más, podéis leer el
se sustituya siempre por el mismo: es el caso de los cifrados polialfabéticos apartado 2 del módulo «Intro-
(por ejemplo, el cifrado de Vigenère, que durante siglos se denominó el cifrado ducción a la criptografía». En-
contraréis más detalles de ci-
indescifrable) o de las máquinas de rotores de la primera mitad del siglo XX (por frados clásicos y sobre el ata-
que de análisis de frecuencias.
ejemplo, la máquina Enigma), que esencialmente eran inmunes al análisis de Intentad averiguar qué cifra-
dos se pueden aplicar de ma-
frecuencias directo, aunque otros tipos de análisis consiguieron descodificar nera eficiente ante un ataque
los mensajes de estos aparatos. de análisis de frecuencias.
© FUOC • PID_00276301 14 Criptografía
Cuando se tienen que cifrar las comunicaciones digitales, la longitud del men-
saje puede ser mucha y muy grande. Por lo tanto, hay que abordar estos casos
convenientemente. Las propuestas existentes se agrupan en dos grandes tipos
de cifrados: de flujo y por bloques. En este apartado hablaremos de los ataques
relacionados con los primeros y en el siguiente apartado, de los relacionados
con los segundos.
Cuando se cifran bits, como pasa en los cifrados modernos, la operación que Lectura recomendada
se utiliza habitualmente es XOR (eXclusive ORO), que se denota como .
H.�Knospe (2019). A course
Así pues, se cifra y se descifra . En los esquemas de in Cryptography. Providence:
American Mathematical So-
cifrado de flujo, el texto en claro M puede ser de cualquier longitud: lo único ciety.
que se tiene que garantizar es que F(k) tenga la misma longitud. De hecho, no
hay que conocer el mensaje entero antes de empezar a cifrar o descifrar, y es
posible implementar el algoritmo para que trabaje con un flujo de datos que
va llegando (el texto en claro o el texto cifrado) y otro flujo de datos que se
va generando a partir de la clave (el texto de cifrado). Por eso, se denomina
cifrado de flujo. Evidentemente, la seguridad de la cifra está en la construcción
de la función F. Hay un amplio abanico de estas funciones, que dan lugar a
cifrados de flujo diferentes: entre las más conocidas hay RC4, A5/1 o Samba20.
En un caso límite, si se considera la longitud de k igual que F(k) (F(k) = k), el re-
sultado es el cifrado�de�Vernam, también conocido como one-time pad (OTP),
o bloque desechable. A pesar de su sencillez, se trata del cifrado más seguro
que hay. Es tan seguro que incluso adversarios con poderes computacionales
ilimitados, pero sin la clave, no obtendrían ninguna información del texto en
claro. Desgraciadamente, presenta dos grandes problemas:
© FUOC • PID_00276301 15 Criptografía
• La longitud de k, que tiene que ser un valor aleatorio, tiene que ser la One-time pad
misma que la del mensaje.
Este cifrado se utilizó mucho
en el proyecto Venona, una
• No se puede reutilizar para dos mensajes diferentes (por eso se dice que es colaboración secreta de las
agencias de inteligencia de los
desechable), hecho que limita mucho el uso. Estados Unidos y el Reino Uni-
do en que intentaban descifrar
de manera ilícita mensajes de
la Unión Soviética, sobre to-
Los cifrados de flujo tienen varias ventajas que los hacen muy adecuados para do durante la Segunda Guerra
algunas aplicaciones. El más notable es que son especialmente eficientes y más Mundial.
Igual que pasa con el cifrado de Vernam, en general los cifrados de flujo son
vulnerables a los ataques si se utiliza la misma clave dos veces para cifrar dos
mensajes diferentes.
Una manera de evitar este problema es utilizar un vector�de�inicialización Para saber más
(IV, del inglés inicialization vector), enviado en claro, que se combina con una
Sobre los ataques al proto-
clave maestra secreta para crear una clave única para el cifrado del flujo. Por colo WEP, podéis consultar
ejemplo, esto se usó en el protocolo para cifrar las redes inalámbrica con WEP esta web: <[Link]-
[Link]/[Link]?
(del inglés wired equivalente privacy, o equivalente a la privacidad con hilo), que id=simple_wep_crack>.
utilizaba el popular cifrado de flujo RC4. Uno de los muchos problemas con el
protocolo WEP era que su IV era demasiado corto: concretamente, de 24 bits.
Esto significaba que había una gran probabilidad que se utilizara dos veces el
mismo IV si se enviaban miles de paquetes con la misma clave secreta, hecho
© FUOC • PID_00276301 16 Criptografía
Si un atacante conoce información parcial del texto en claro del texto cifrado,
puede llevar a cabo lo que se conoce como ataque de modificación de bit (en
inglés, bit-flipping attack) para conseguir descifrar el texto en claro de manera
ilícita. La idea principal detrás del ataque, y que se utiliza en otros muchos
ataques criptográficos, es modificar el contenido del mensaje sin conocer la
clave k.
Este tipo de atacante que se coloca en medio de Alicia y Bernat se acostumbra Ved también
a denominar atacante intermediario (en inglés, man-in-the-middle). Veremos un
Para saber más, podéis leer los
ejemplo muy popular con un protocolo de intercambio de claves más adelan- apartados 2, 3 i 4 del módulo
te. «Criptografía de clave simétri-
ca» para entender el funciona-
miento de los cifrados de flujo
y ver diferentes ejemplos.
© FUOC • PID_00276301 17 Criptografía
Como hemos visto antes, los cifrados por bloques son el otro gran grupo de
cifrados de criptografía simétrica (es decir, suponemos que tanto Alicia como
Bernat conocen la misma clave secreta) que permite cifrar mensajes de longi-
tud considerablemente larga.
(1)
El cifrado por bloques cifra el mensaje por bloques de una cierta dimensión Notad que esto no pasaba con
un cifrado de flujo.
fijada a priori. Un cifrado por bloques es determinista, es decir, si Alicia utiliza el
mismo cifrado con su clave k en bloques de una cierta dimensión fijada a priori,
el texto cifrado es el mismo1. Para diseñar cifrados por bloques, siempre se
tienen en cuenta los conceptos de confusión y difusión que hemos comentado
anteriormente en el subapartado 2.1.
Actualmente, el cifrado por bloques más utilizado es el AES (del inglés advanced Ved también
encryption standard, o encriptación estándar avanzada), que sustituyó el DES (del
Encontraréis la descripción del
inglés data encryption standard, o encriptación de datos estándar) y sus variantes funcionamiento del criptosis-
2DES y 3DES, después de que se probaran las inseguridades. tema AES en el apartado 6 del
módulo «Criptografía de clave
simétrica».
Observad que dos bloques de texto completo iguales siempre generarán el mis-
mo bloque cifrado. Esta manera de cifrar bloque por bloque se denomina mo-
do�de�libro�electrónico (ECB, del inglés electronic code book), y es susceptible
a varios ataques de fuerza sucia, por el hecho que el mismo bloque de texto
siempre generará el mismo cifrado, y también a ataques de supresión e inser-
ción, en que un atacante manipulará convenientemente los bloques. Como
parte positiva, si hay un único error de bit en la transmisión del cifrado, esto
se traduce en un único error en todo el bloque de texto en claro al descifrar.
Hemos supuesto anteriormente que la dimensión total del mensaje para cifrar
es exactamente un múltiplo de la dimensión fijada de los bloques, pero obvia-
mente esto pasa en muy pocos casos. Lo que se hace es añadir información,
de forma que, a la hora de descifrar, el programa será capaz de detectar que
aquello no formaba parte del mensaje y, por lo tanto, lo descartará. Esta infor-
mación que se añade además del mensaje para rellenarlo hasta la dimensión
adecuada se denomina relleno (o padding, en inglés). Hay diferentes estánda-
res que indican cómo se añade padding: destacamos PKCS#7 y X.923.
De los más populares destacamos POODLE, una vulnerabilidad descubierta Para saber más
por un grupo de ingenieros de Google, Bodo Möller, Thai Duong y Krzysztof
Encontraréis la descrip-
Kotowicz, y que ponía a cuerpo descubierto el protocolo SSL 3.0. ción del ataque POODLE en
<[Link]
Ved también
(2)
Una de las principales características de estas funciones es que son unidirec- Notad que hablamos de un
mensaje y no del mensaje. En reali-
cionales: es muy sencillo calcular el valor resumen de un mensaje, pero muy
dad, hay muchos mensajes que
complicado, desde un punto de vista computacional, calcular un2 mensaje a tienen el mismo valor resumen (se
denominan colisiones), pero todos
partir del valor resumen. Principalmente aportan integridad, porque un cam- son difíciles de calcular.
Aun así, si buscáis más del 50 % de probabilidades que dos personas del aula
hagan los años el mismo día, solo necesitaréis 23 personas.
© FUOC • PID_00276301 20 Criptografía
En lugar de que Alicia y Bernat tengan una sola clave secreta, lo que tendrá
cada uno es un par de claves: una de pública y una de secreta. La pública per-
mitirá que cualquier persona pueda cifrar un mensaje dirigido a esta persona,
mientras que la secreta permitirá que justamente solo ella sea capaz de desci-
frar el mensaje. A pesar de que este nuevo paradigma se introdujo en 1976,
no fue hasta dos años más tarde, en 1978, cuando Rivest, Shamir y Adleman
propusieron el primer cifrado concreto de clave pública: el conocido como
cifrado�RSA.
En el año 1998, Bleichenbacher propuso un ataque al cifrado RSA. Se trata de Ved también
un ataque de oráculo, pareciendo en abstracto a los que hemos visto anterior-
Podéis leer el módulo «Cripto-
mente, y que se dirige en concreto al formato que tiene el relleno PKCS1 v1.5. grafía de clave pública», don-
Así, el atacante modifica ligeramente el texto cifrado y utiliza un oráculo para de encontraréis información
más detallada de algunos de
ver si el descifrado sería correcto o no. A sabiendas de los cambios introducidos los cifrados de clave pública.
Tienen un alto componente
en el texto cifrado, puede utilizarlos para obtener información del mensaje. matemático; si lo necesitáis,
podéis leer el módulo «Funda-
mentos matemáticos. Concep-
tos básicos de criptografía»,
como apoyo fundamental.
¿Cómo obtiene un lugar la clave pública de otra parte? ¿Cómo determina un destinata-
rio si una clave pública pertenece realmente al emisor? ¿Cómo sabe el destinatario que
el emisor está utilizando la clave pública con un propósito legítimo para el cual están
autorizados? ¿Cómo se puede revocar una clave en caso de compromiso o pérdida?
• Garantizar�la�seguridad�de�la�información�confidencial: normalmen-
te, un certificado contiene una clave pública, un nombre, una fecha de
caducidad, el nombre de la autoridad que emite el certificado (y, por lo
tanto, vale para la identidad del usuario), un número de serie, todas las
políticas pertinentes que describen cómo se ha emitido el certificado y có-
mo se puede utilizar, la firma digital del emisor del certificado y, quizás,
otras informaciones.
Para gestionar todos estos elementos, se introduce lo que se conoce como in-
fraestructura�de�clave�pública (PKI, del inglés public key infrastructure), que
combina hardware, software y políticas y procedimientos de seguridad para
gestionar certificados y autoridades de certificación.
© FUOC • PID_00276301 23 Criptografía
(4)
Flame4 incluía un simple servidor web que se presentaba como servidor de El ataque fue descubierto en
2012 por la empresa Kaspersky.
Windows Update para anunciar las «actualitzaciones» disponibles con código
malicioso. Microsoft utilizaba ciertas firmas de código para las actualitzaciones
Para saber más
y, por lo tanto, nadie tendría que poder crear binarios que se aceptaran como
procedentes de Microsoft. Pero Flame fue capaz de alguna manera de firmar Podéis encontrar más de-
talles sobre el ataque Fla-
todos sus binarios como Microsoft, y uno de los motivos detrás de todo eran me en el informe que se
los errores crípticos de Microsoft en el diseño de la PKI. publicó del ataque aquí:
<[Link]
flame-questions-and-ans-
wers/34344/>.
Ved también
Así, los protocolos criptográficos tienen un gran peso para permitir lle-
var a cabo determinadas acciones en la vida digital de una manera se-
gura.
Las firmas�digitales son ejemplos de estos protocolos criptográficos, y hay de Curvas elípticas
muchos tipos, dependiendo de las diferentes situaciones donde se tengan que
Son unas curvas cúbicas que
usar: firmas ciegas, o de sortija, o multifirmas. El DSA (del inglés digital signa- tienen la particularidad que
ture standard, o estándar de firma digital) fue el primer sistema de firma digital sus puntos se pueden sumar.
La estructura resultante es bas-
aprobado por el NIST, en 1994, y continúa siendo un estándar federal. A pesar tante útil en muchos protoco-
los criptográficos, puesto que,
de que fue un poco controvertido cuando se propuso, ahora parece general- entre otras propiedades, per-
mite utilizar claves más cortas
mente aceptado. Tiene su equivalente basado en curvas�elípticas, laECDSA garantizando la misma seguri-
(del inglés elliptic curve digital signature standard). dad.
Igual que otras muchas compañías, Sony utilizaba la firma ECDSA en su con- (5)
Podéis encontrar la presenta-
sola de videojuegos PlayStation 3, que se lanzó al mercado en 2006. La firma ción en un congreso científico en
<[Link]
digital se utilizaba para identificar el código que había sido aprobado por Sony
para que se ejecutara en la consola y evitar, así, que se ejecutara un código
© FUOC • PID_00276301 25 Criptografía
no autorizado. Desgraciadamente, Sony pasó por alto una característica muy Ved también
importante de la ECDSA y cometió un error en la implementación, hecho que
Os recomendamos leer el mó-
provocó que en 2010 hubiera un ataque contra el protocolo que tuvo un gran dulo «Protocolos criptográfi-
eco en los medios de comunicación. El ECDSA utiliza un número aleatorio que cos», donde encontraréis in-
formación más detallada de al-
tendría que ser diferente cada vez que se ejecuta el protocolo, pero a finales de gunos de los protocolos crip-
tográficos más importantes,
2010, un grupo de piratas informáticos fail0verflow5 se dieron cuenta de que como son el protocolo de tres
pasos de Shamir, los esque-
Sony utilizaba el mismo número aleatorio para todas las firmas. Eso permitía, mas de compartición de secre-
tos, las firmas ciegas, las prue-
a partir de dos firmas válidas, recuperar la clave secreta que Sony utilizaba para bas de conocimiento nulo, los
las firmas resolviendo dos sencillas ecuaciones y creando su propio programa- protocolos de transferencia in-
consciente o los protocolos de
rio para la PlayStation 3. computación multiparte segu-
ros.
© FUOC • PID_00276301 26 Criptografía
Resumen
En este módulo hemos repasado uno de los pilares sobre los cuales se sostie-
ne la ciberseguridad: la criptografía. Hemos revisado los principales cifrados:
desde los cifrados clásicos que se empleaban en la Antigüedad hasta los que se
utilizan actualmente, tanto en el paradigma de clave simétrica como en el de
clave pública. Aun así, hemos tratado otros conceptos igualmente importan-
tes, como son las infraestructuras de clave pública, las funciones resumen o
algunos de los principales protocolos criptográficos.
Bibliografía
Diffie, W.; Hellman, M. (1976). «New directions in cryptography». IEEE Transactions on
Information Theory (vol. 22, nº 6, pág. 644–654). <[Link]
Holden, J. (2017). The Mathematics of Secrets. Cryptography from Caesar Ciphers to Digital
Encryption. Nueva Jersey: Princeton University Press.
Kahn, D. (1996). The Codebreakers: The Comprehensive History of Secret Communication from
Ancient Times to the Internet. Nueva York: Scribner.
Kaliski, B. (1998). PKCS #7: Cryptographic Message Syntax Version 1.5 [en línea]. <https://
[Link]/html/rfc2315>.
Katz, J.; Lindell, Y. (2015). Introduction to Modern Cryptography. Boca Raton: CRC.
Narayanan, A.; Bonneau, J.; Felten, E., et al. (2016). Cryptography Bitcoin and Cryptocu-
rrency Technologies. A Comprehensive Introduction. Nueva Jersey: Princeton University Press.
Borrador de la publicación previo al libro en: <[Link]
National Institute of Standards and Technology (NIST) (1999). Data encryption stan-
dard (DES). FIPS PUB 46-3. <[Link]
Paar, C.; Pelzl, J. (2009). Understanding Cryptography: A Textbook for Students and Practitio-
ners. Heidelberg: Springer.