View on GitHub

cr2021

Curso de Criptografía y Cifrado de la Información 2021

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:

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

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