Tema 1: Introducción a la Criptografía:
Elementos de un sistema criptográfico, procesos criptográficos, criptosistemas y sus características. Introducción a la seguridad criptográfica. Posibles clasificaciones de las técnicas criptográficas
Tema 2: Fundamentos Matemáticos:
Números primos, factorización de un número. Algoritmo de Euclides Extendido. Primos seguros y primos fuertes.
Aritmética modular, inverso de una congruencia, grupo de las unidades de Zm, grupos cíclicos, generadores. Restos cuadráticos, Símbolos de Legendre y Jacobi. Teorema de Euler y pequeño Teorema de Fermat. Pruebas de primalidad y generación de números primos. Teorema chino del resto.
Tema 3: Criptografía Clásica
Cifrados por transposición. Desórdenes. Ejemplos históricos.
Cifrados por sustitución monoalfabéticos: sustituciones monográmicas y poligrámicas. Ejemplos históricos. Criptoanálisis de las sustituciones monoalfabéticas. Análisis de frecuencias.
Cifrados por sustitución polialfabéticos: ejemplos históricos. Criptoanálisis de los cifrados polialfabéticos. El método de Kasiski, índice de coincidencia. Rotores y máquinas de cifrado.
Tema 4: Esteganografía
Elementos de un sistema esteganográfico, procesos esteganográficos, estegosistemas y sus características. Posibles clasificaciones de las técnicas esteganográficas. Desarrollo histórico de la Esteganografía. Esteganografía digital, esteganografía en imágenes, Least Significant Bit (LSB). Marcas de agua vs. Esteganografía
Tema 5: Introducción a la Criptografía Moderna
Teoría de la información de Shannon: cantidad de información, unidad de información, entropía, ratio absoluta y ratio real del lenguaje, redundancia del lenguaje. Difusión y confusión. Condiciones de secreto perfecto, información mutua y distancia de unicidad. Teoría de la complejidad computacional.
Tema 6: Criptosistemas de clave secreta
Cifrados en flujo, cifrado de Vernam. Requisitos de las secuencias cifrantes. Generadores de secuencias pseudoaleatorias. Complejidad lineal. Sistema RC4.
Cifrados en bloque. Redes de Feistel. El criptosistema DES. Otros cifrados de bloque: Triple DES, AES.
Tema 7: Criptografía de clave pública
Protocolo de intercambio de clave de Diffie-Hellman. El criptosistema de ElGamal. El criptosistema RSA: elección de parámetros, mensajes inocultables, claves parejas. Criptosistema de Rabin. Curvas elípticas y su aplicación a la criptografía de clave pública. Teorema chino del resto y RSA.
Tema 8: Firma digital y Funciones Hash
Esquemas de firma digital. Firma digital RSA, firma digital ElGamal, otras firmas digitales. Funciones hash. Función MD5 y funciones SHA. Esquemas de certificación digital.
En las primeras prácticas el alumno irá construyendo, en lenguaje C, una serie de herramientas con las que formará una biblioteca de funciones que le facilitarán el desarrollo de prácticas posteriores.
BLOQUE 1: Operaciones en congruencias, división módulo n, algoritmo de Euclides, algoritmo extendido de Euclides, criba de Eratóstenes, factorización por fuerza bruta, exponenciación módulo n.
BLOQUE 2: Generación de números aleatorios, pruebas de primalidad, algoritmo de Miller-Rabin, generación de números primos fuertes, algoritmo de Gordon.
BLOQUE 3: Algoritmos de criptografía clásica. Análisis de frecuencias, cifrado polialfabético, criptoanálisis.
BLOQUE 4: Esteganografía con imágenes.
BLOQUE 5: Cálculo de raíces primitivas, Símbolo de Legendre, Símbolo de Jacobi, Teorema chino de los restos.
BLOQUE 6: Criptografía de clave secreta (simétrica). Cifrado DES, cifrado AES.
BLOQUE 7: Criptografía de clave pública. Algoritmo de intercambio de claves de Diffie-Hellman, algoritmo de Pohlig-Hellman, sistema RSA optimizado, cifrado ElGamal.
BLOQUE 8: Firma digital y funciones resumen.