Criptografía y Cifrado de la Información 2021
Este curso es una introducción al estudio de los métodos de criptografía, criptoanálisis y cifrado de la información, la cual consiste en procesar datos en forma ininteligible, de forma reversible, sin pérdida de información, normalmente de forma digital. Dicho de otra forma, la criptografía es el estudio de cómo alterar un mensaje para que alguien que lo intercepte no pueda leerlo sin el algoritmo y la clave adecuados. En esta materia, estudiaremos de manera introductoria los principales métodos y protocolos actuales de cifrado, así como su implementación computacional.
La primera parte el curso inicia con una revisión histórica de la criptografía, para dar paso rápidamente a los métodos usados en la criptografía actual. Se hace una revisión de conceptos y herramientas básicas sobre los que se fundamentan la mayoría de algoritmos y métodos criptográficos. Se estudian los métodos criptográficos simétricos. En particular, se estudian principalmente los métodos de cifrado en flujo (stream ciphers), así como los cifrados en bloque (block ciphers). Se estudian métodos de integridad de datos, y algunas construcciones clásicas como los sistemas de autenticación de mensajes (MAC). Luego se estudian los métodos asimétricos. Se introduce el concepto de intercambio de claves, y los métodos de cifrado de clave pública y sus aplicaciones. Estudiamos principalmente los protocolos de Diffie-Hellman, el sistema RSA, así como los métodos CCA.
El curso finaliza con una serie de temas avanzados y recientes como la criptografía de curvas elípticas y otros métodos avanzados. Se discuten temas novedosos como las criptomonedas y los métodos de blockchain, así como las implicaciones de la computación cuántica para la criptografía.
Prerrequisitos
Se recomienda que los estudiantes antes del curso estén habituados con los siguientes temas:
- Álgebra lineal (matricial).
- Matemática discreta (conteo, permutaciones, divisibilidad, congruencias).
- Cálculo (funciones, límites, derivadas).
- Estadística (probabilidad, distribuciones de probabilidad).
- Programación en Python.
Bastará con haber cursado una materia de cálculo, una de estadística, una de álgebra lineal, y una de mátemática discreta. En el caso de programación, bastará con haber tomado un curso básico de Python, aunque conviene conocer temas de estructuas de datos y algoritmos.
El curso tiene una carga fuerte en el tema de Teoría de Números. Cuando sea conveniente, dedicaremos una parte del curso a cubrir algunos prerrequisitos necesarios en los temas de congruencias y aritmética modular. También cubriremos algún material sobre distribuciones discretas de probabilidad.
Programa del curso
Horario
- Martes y Jueves, de 19:00 a 20:35.
Office Hours
- Viernes, de 18:00 a 20:00.
Material del curso
No. | Fecha | Tópicos | Recursos |
---|---|---|---|
01 | 08.07.2021 | Introducción. Aspectos generales de la criptografía. Aula 01 |
Secciones 1.1 a 1.4, Handbook. |
02 | 13.07.2021 | Sistemas de cifrado históricos. Aula 02 |
Capítulos 1 y 2, libro de Easttom. |
L1 | 15.07.2021 | Lab 1 Lab 01 | cipher1.txt cipher2.txt cipher3.txt sp_frequencies.txt |
03 | 20.07.2021 | Repaso de probabilidad. Aula 03 |
|
04 | 22.07.2021 | Repaso de probabilidad II. Aula 04 |
|
L2 | 22.07.2021 | Lab 2 | Lab 02 |
05 | 27.07.2021 | One Time Pad. Cifrados de flujo. Aula 05 |
|
06 | 03.08.2021 | Cifrados de flujo II. Aula 06 |
|
L3 | 05.08.2021 | Lab 3 | Lab 03 Imagenes_a_bits.ipynb |
07 | 10.08.2021 | Seguridad de PRGs. Test Estadísticos. Aula 07 |
|
L4 | 12.08.2021 | Lab 4 | Lab 04 |
08 | 17.08.2021 | Cifrados de bloque. DES. Aula 08 |
|
09 | 19.08.2021 | Cifrados de bloque II. AES. Aula 09 |
|
L5 | 19.08.2021 | Lab 5 | Lab 05 |
10 | 31.08.2021 | Integridad de mensajes. Aula 10 |
|
11 | 02.09.2021 | Funciones Hash. SHA-256. HMAC. Aula 11 |
|
L6 | 07.09.2021 | Lab 6 | Lab 06 Ejemplos |
12 | 21.09.2021 | Repaso de divisibilidad, MMC, Algoritmo de Euclides. Aula 12 |
|
13 | 21.09.2021 | Repaso de aritmética modular. Potenciación binaria. Aula 13 |
|
14 | 23.09.2021 | Aritmética modular. Función $\varphi$ de Euler. Teorema de Euler-Fermat. Test de Fermat | Aula 14 |
L7 | 23.09.2021 | Lab 7 | Lab 07 |
15 | 28.09.2021 | Residuos cuadráticos. Orden y raíces primitivas. Aula 15 |
|
16 | 05.10.2021 | Intercambio de claves. Mètodo de Diffie-Hellman. Aula 16 |
|
L8 | 07.10.2021 | Lab 8 | Lab 08 |
17 | 14.10.2021 | Cifrados de clave pública. RSA. Aula 17 |
|
18 | 19.10.2021 | RSA y ataques a RSA. Aula 18 |
|
L9 | 21.10.2021 | Lab 9 | Lab 09 |
19 | 26.10.2021 | Cifrado de ElGamal. Aula 19 |
|
L10 | 02.11.2021 | Lab 10 | Lab 10 |
20 | 04.11.2021 | Firmas Digitales. Aplicaciones. Aula 20 |
|
21 | 09.11.2021 | Construcción de Firmas Digitales. Aula 21 |
|
22 | 16.11.2021 | Presentación de Seminarios. | |
23 | 18.11.2021 | Presentación de Seminarios. | |
24 | 23.11.2021 | Presentación de Seminarios. | |
25 | 25.11.2021 | Presentación de Seminarios. |
Claves públicas para el Lab 9
Equipo | Clave Pública | Equipo | Clave Pública |
---|---|---|---|
Equipo 1 | MjE0NjE1LjI3MTc0MQ== | Equipo 7 | MjYxMjUxLjQzMzg0Mw== |
Equipo 2 | MTM2NjI3LjEzNzkwMw== | Equipo 8 | MjM4NzAzLjM2MDg3Nw== |
Equipo 3 | MzAzOTk3LjM0NTM4Mw== | Equipo 9 | |
Equipo 4 | NjE5NTcuODIzMTk= | Equipo 10 | MjE0OS4xMTM1 |
Equipo 5 | MzQ3NDAyLjc2MjA3OQ== | Equipo 11 | |
Equipo 6 | MzEzMTUxLjQxODM2Nw== | Equipo 12 | Mjc4NDcxLjgyOTAyMQ== |
Seminarios
A continuación se listan algunos temas sugeridos para presentación de seminarios. Temas-seminario.pdf
Temas a presentar:
Tema No. | Equipo | Fecha | Tópicos |
---|---|---|---|
10 | Equipo 1 | 16.11.2021 | Protocolos de seguridad de redes Presentación |
9 | Equipo 6 | 16.11.2021 | Firewalls Presentación |
7 | Equipo 2 | 16.11.2021 | Protocolo SSH Presentación |
2 | Equipo 5 | 18.11.2021 | Seguridad Web Presentación |
8 | Equipo 4 | 18.11.2021 | Protocolos SSL/STL y Https Presentación |
3 | Equipo 8 | 18.11.2021 | VPNs y Tunneling Presentación |
4 | Equipo 12 | 23.11.2021 | Cifrado en VPNs Presentación |
5 | Equipo 3 | 23.11.2021 | Cifrado en WhatsApp Presentación |
6 | Equipo 11 | 23.11.2021 | Cifrados en Telefonía Móvil Presentación |
11 y 12 | Equipo 7 | 25.11.2021 | Blockchain y Criptomonedas Presentación |
17 | Equipo 9 | 25.11.2021 | Criptovirología Presentación |
15 | Equipo 10 | 25.11.2021 | Certificados Digitales en Guatemala Presentación |
Referencias
Textos:
Referencias adicionales:
-
A. Menezes, P. van Oorschot, S. Vanstone (2021). Handbook of Applied Cryptography.
-
Jonathan Katz, Yehuda Lindell (2021). Introduction to Modern Cryptography
-
Niels Ferguson, Bruce Schneier, Tadayoshi Kohno (2012). Cryptography Engineering. 3rd. Edition.
-
Seth James Nielson, Christopher K. Monson (2019). Practical Cryptography in Python.
-
Christof Paar, Jan Pelzl (2010). Understanding Cryptography.