Skip to content

Commit

Permalink
Add session: post-quantum
Browse files Browse the repository at this point in the history
  • Loading branch information
Juanvvc committed Dec 7, 2023
1 parent e8ba2a1 commit 7f78513
Show file tree
Hide file tree
Showing 18 changed files with 360 additions and 18 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ el apartado "Contenido".
- [TLS y *Public Key Infrastructure*](https://juanvvc.github.io/crypto/07-pki.html)
- [Ransomware](https://juanvvc.github.io/crypto/08-ransomware.html)
- [Esteganografía](https://juanvvc.github.io/crypto/09-esteganografia.html)
- [Criptografía Post-cuántica](https://juanvvc.github.io/crypto/10-postcuantica.html)

Recuerda: puedes "imprimir a PDF" para obtener las translarencias en PDF
Recuerda: puedes "imprimir a PDF" para obtener las translarencias en PDF, aunque solo en Chrome o Edge. Firefox y Safari no lo hacen correctamente.

## Descarga local

Expand Down
2 changes: 1 addition & 1 deletion slides/01-conceptos.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Criptografía - Principios Básicos
author: Juan Vera
keywords: criptografía,principios
paginate: true
footer: '[Inicio](index.html)'
footer:
headingDivider: 2
theme: marp-viu
transition: fade
Expand Down
31 changes: 24 additions & 7 deletions slides/02-historia.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Criptografía - Historia de la criptografía
author: Juan Vera
keywords: historia,criptografía,cesar,vigenere,enigma,vernam,one-time-pad
paginate: true
footer: '[Inicio](index.html)'
footer:
headingDivider: 2
theme: marp-viu
transition: fade
Expand Down Expand Up @@ -40,9 +40,9 @@ Sus comunicaciones radio están protegidas con "la cifra indescifrable"

1. [Criptografía clásica](#4)
1. [Cifrado César](#9)
1. [Mejoras al cifrado César: sistemas polialfabéticos](#26)
1. [Confidencialidad perfecta](#41)
1. [Resumen y referencias](#53)
1. [Mejoras al cifrado César: sistemas polialfabéticos](#28)
1. [Confidencialidad perfecta](#43)
1. [Resumen y referencias](#55)

# Criptografía clásica
<!--
Expand Down Expand Up @@ -287,7 +287,6 @@ Si tenemos capacidad de diseñar/fabricar $d()$ en hardware ([ASIC](https://en.w
<!-- 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 -->

---
<!-- _class: smaller-font with-success -->

Alquilando equipos en la nube por segundos, con un euro cada segundo podemos probar $10^{11}$ claves

Expand All @@ -297,9 +296,25 @@ Nos hacen falta un sistema criptográfico que permita escoger entre $2·10^{14}$

Este sistema tendría fortaleza 48 bits: un atacante tiene que probar $2^{48}$ 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.
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

**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. Normalmente se expresa en bits.
## Fortaleza de un algoritmo
<!-- _class: with-success -->

¿Qué 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 número de claves que tienen que probar un atacante por fuerza bruta para romper un algoritmo**. Normalmente se expresa en bits.

---

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 $2^{48}$ 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

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

Expand Down Expand Up @@ -364,6 +379,8 @@ Si el mensaje es suficientemente largo, **podemos analizar la frecuencia de apar

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**.


Expand Down
2 changes: 1 addition & 1 deletion slides/03-simetrica.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Criptografía - Cifrado simétrico
author: Juan Vera
keywords: criptografía,simétrica,aes,chacha,salsa
paginate: true
footer: '[Inicio](index.html)'
footer:
headingDivider: 2
theme: marp-viu
transition: fade
Expand Down
20 changes: 17 additions & 3 deletions slides/04-complejidad.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Criptografía - Teoría de la complejidad y acuerdo Diffie-Hellman
author: Juan Vera
keywords: criptografía,complejidad,diffie-hellman
paginate: true
footer: '[Inicio](index.html)'
footer:
headingDivider: 2
theme: marp-viu
transition: fade
Expand Down Expand Up @@ -51,7 +51,7 @@ Antes de empezar necesitaremos un poco de teoría de complejidad. Vamos allá.

1. [Teoría de la complejidad](#4)
1. [Acuerdo de clave Diffie-Hellman](#26)
1. [Conclusiones](#43)
1. [Conclusiones](#44)

# Teoría de la complejidad
<!-- _class: lead -->
Expand Down Expand Up @@ -615,14 +615,27 @@ Compara, para AES: $\|k\| = 128$
> https://blog.cloudflare.com/why-are-some-keys-small/
> https://www.keylength.com/en/3/
## Uso de la clave D-H con AES o Chacha: Función derivación de clave KDF
<!-- _class: smaller-font -->

El número secreto generado por el intercambio Diffie-Hellman no debe utilizarse como clave en protocolos de cifrado simétrico AES ni en cifrados de flujo como ChaCha20: no existen requisitos de seguridad para este número, como que sean perfectamente uniformes

Por esto, se utiliza una transformación **KDF** (*Key Derivation Function*). ​ Las KDF se pueden utilizar para extender claves en otras más largas o para obtener claves en un cierto formato. Las funciones de hash pueden usarse como KDF, aunque suelen incluir también inputs adicionales

Más información aquí:

- https://es.wikipedia.org/wiki/Funci%C3%B3n_de_derivaci%C3%B3n_de_clave
- https://crypto.stackexchange.com/questions/101439/how-is-diffe-hellman-linked-to-aes
- https://crypto.stackexchange.com/questions/66893/what-should-i-use-for-consequent-aes-key-derivation

## Composición de elementos criptográficos

Acamos de ver una composición de elementos criptográficos: D-H y AES

- Alice y Bob acuerdan una clave AES-256 utilizando DH-4096
- Alice y Bob utilizan esa clave para comunicaciones seguras con AES.

Esto es una introducción a TLS. En la última parte de la asignatura veremos este protocolo con mucho más detalle.
Esto es solo una presentación de TLS. En la última parte de la asignatura veremos este protocolo con mucho más detalle.

# Conclusiones
<!--
Expand All @@ -641,6 +654,7 @@ header: Hash
## Referencias

- [New Directions in Cryptography](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.37.9720), Whitfield Diffie y Martin E. Hellman, 1976. El paper describe parte de la teoría de la complejidad que hemos estudiado aquí y describe el intercambio de claves Diffie-Hellman
- [NP-Hardness](https://jeffe.cs.illinois.edu/teaching/algorithms/book/12-nphard.pdf), capítulo 12 del libro [Algorithms](https://jeffe.cs.illinois.edu/teaching/algorithms/) de Jeff Erickson. Aunque no está enfocado a la criptografía, es una buena explicación de los problemas P y NP.

---

Expand Down
2 changes: 1 addition & 1 deletion slides/05-asimetrica.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Criptografía - Cifrado asimétrico
author: Juan Vera
keywords: criptografía,asimétrica,rsa,dsa,diffie-hellman
paginate: true
footer: '[Inicio](index.html)'
footer:
headingDivider: 2
theme: marp-viu
transition: fade
Expand Down
2 changes: 1 addition & 1 deletion slides/06-hashes.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Criptografía - Funciones de Hash y Blockchain
author: Juan Vera
keywords: criptografía,hash,sha256,bitcoin
paginate: true
footer: '[Inicio](index.html)'
footer:
headingDivider: 2
theme: marp-viu
transition: fade
Expand Down
2 changes: 1 addition & 1 deletion slides/07-pki.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Criptografía - Public Key Infrastructure
author: Juan Vera
keywords: criptografía,protocolos,ssl,https,tls,pki
paginate: true
footer: '[Inicio](index.html)'
footer:
headingDivider: 2
theme: marp-viu
transition: fade
Expand Down
2 changes: 1 addition & 1 deletion slides/08-ransomware.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
marp: true
title: Criptografía - Ransomware
paginate: true
footer: '[Inicio](index.html)'
footer:
headingDivider: 2
theme: marp-viu
---
Expand Down
2 changes: 1 addition & 1 deletion slides/09-esteganografia.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Criptografía - Esteganografía
author: Juan Vera
keywords: criptografía,esteganografía,watermarking,fingerprinting
paginate: true
footer: '[Inicio](index.html)'
footer:
headingDivider: 2
theme: marp-viu
transition: fade
Expand Down
Loading

0 comments on commit 7f78513

Please sign in to comment.