Introducción a la Criptografía Moderna CC5301 (2014/01)

Profesor: Alejandro Hevia

Propósito: El propósito del curso es dotar al estudiante de herramientas de análisis para diseñar y evaluar formalmente algoritmos y protocolos criptográficos tales como sistemas de encriptación simétrica y asimétrica, esquemas de firmas digitales, entre otros.

Aspectos administrativos:

Cátedra: Lunes y Miércoles 10:15am-11:45am, Sala Q13
Auxiliar: Viernes 10:15am-11:45am, Sala Q13
Sitio web oficial (especialmente el Foro de Discusión): ucursos
Carga académica: 10 UD,
Requisitos: (CC30A, CC30B, MA34A) o (MA47A), o Autorización (por revisar)
Carácter del curso: electivo Cs. de la Computación

Material de lectura del curso

Se recomienda suplementar el material de cátedra con los siguientes libros:

Sin embargo, los textos anteriores pueden no cubrir toda la materia discutida en clases.

Calendario de lectura del curso

Estas lecturas son altamente recomendadas para las clases de cátedra/ auxiliares indicadas.
  • Semana 10 de Marzo 2014: capítulos 1 y 2 de [BR-pre] (Introducción y Criptografía clásica). Y capítulos 1 y 2 del libro de KL
  • Semana 17 de Marzo 2014: capítulos 2 de [BR-pre] y capítulos 3.1 del libro de [KL]
  • Semanas 24 y 31 de Marzo 2014: capítulos 3 (block ciphers) y (También ver capítulo 2 (block ciphers) y los apuntes de postgrado de [BR-post]). Capítulo 5 del libro de [KL]
  • Semanas 7 y 14 de Abril 2014: capítulo 4 (pseudo-random functions) de [BR-pre] (también ver capítulo 4 de los apuntes de postgrado de [BR-post]). Sección 3.3 del libro de [KL].

Tareas

Aquí se publicarán detalles de las tareas del curso.

Temario

  1. Elementos Básicos:
    1. Introducción
    2. Conceptos Básicos: objetivo de seguridad (privacidad, autentificación), adversarios, recursos. Seguridad demostrable como una reducción.
    3. Criptografía Clásica (cifrados de sustitución y variantes, ataques). One-time pad y seguridad perfecta, limitaciones.
  2. Criptografía Simétrica (Clave Privada):
    1. Cifradores de Bloque: Modelos, construcciones (DES, AES)
    2. Funciones Pseudo-aleatorias
    3. Encriptación Simétrica: Modelos de seguridad, construcciones basadas en cifradores de bloque
    4. Funciones unidireccionales y resistentes a colisiones: potenciales candidatos (MD5, SHA-1, SHA-256, SHA-3, otros), modelos de seguridad, el ataque de los cumpleaños
    5. Autentificación de Mensajes: modelos y construcciones (CBC-MAC, HMAC, UMAC, CMAC, y otros)
    6. Encriptación autentificada
    7. Mecanismos de Encapsulamientode Claves (KEM)
  3. Criptografía Asimétrica (Clave Pública):
    1. Teoría de Números Computacional
    2. Primitivas basadas en teoría de números
    3. Encriptación Asimétrica
    4. Firmas Digitales
  4. Criptografía en la Práctica:
    1. Infraestructura de Clave Pública (PKI)
    2. Problemas al implementar algoritmos criptográficos
    3. Acuerdo de Claves: Diffie-Hellman y intercambio de claves autentificado (AKE).
    4. Canales seguros (SSL/TLS)
  5. Tópicos Avanzados (si el tiempo lo permite)
    1. Mecanismos para compartir secretos (Secret Sharing)
    2. Generación de bits pseudo-aleatorios
    3. Introducción a demostraciones interactivas y protocolos de Nula Divulgación (Zero Knowledge)
    4. Criptografía Umbral. aplicación a DNSSEC y votación electrónica, Mixnets y/o DCnets.
    5. Introducción a protocolos criptográficos genéricos (Computación Multi-partita Segura).

Evaluación:

La evaluación se basa en un control, un proyecto y un exámen (con apuntes) más varias (entre 3 y 4) tareas cortas. El proyecto es desarrollado durante el semestre. Posibles alternativas para el proyecto incluyen

  1. Desarrollo teórico de un sistema criptográfico (con seguridad demostrable) para algún problema propuesto por el estudiante o el profesor,
  2. Diseño o implementación de un ataque criptoanalítico reciente, o de un software criptográfico novedoso.
  3. Escritura y presentación de un artículo corto tipo estado del arte, discusión de artículo reciente, o investigación en algún tema relativo al curso.

Temas para Posibles Proyectos

  • Survey en tecnicas y aplicaciones de indistinguishability ofuscation
  • Survey en tecnicas y aplicaciones de encriptación buscable o encriptación determinista o encriptación que preserva el orden
  • Análisis de seguridad del protocolo de bitcoin y variantes.
  • Análisis de seguridad de la implementación del protocolo SSL (en particular, la verificación de certificados) dentro de aplicaciones bancarias chilenas.
  • Hacer un resumen y clasificación de qué países usan sistemas de votación electrónica donde la verificación es basada en técnicas criptográficas.
  • Survey on tecnicas y ataques usando "related-key attacks", más info en este paper o en ésto.
  • Survey de leakeage-resilient cryptography.
  • Survey de ataques sobre hash functions actuales. Incluir discusión respecto a cómo se diseñó, las otras funciones de hash actualmente discutidas para el nuevo estándar, detalles y ataques.
  • Hacer un resumen, explicar, y quizas sugerir mejoras al paper de cómo implementar PRF a partir de funciones aún más débiles que PRF.
  • Programa que detecta idioma de un texto, si está comprimido, si es un ejecutable, imagen, etc., sin estar necesariamente depender de que exista header de formato

Tareas

Las tareas consistirán en demostraciones y resolución de problemas principalmente teóricos.

Nota Magister y Doctorado: La opción (3.) arriba es la alternativa sugerida para estudiantes de Magister o Doctorado tomando el curso. Dependiendo del caso y del alcance del proyecto, estudiantes de postgrado podrán convalidar la nota del proyecto como nota simultánea de proyecto y tareas. Tal convalidación debe ser aprobada por el profesor al momento de presentar el tema del proyecto.

Notas y situación final

Dada la nota de control C1, notas de las n>=3 tareas T1,T2,..,Tn, la nota del proyecto NProyecto, y la nota del examen Ex, la ponderación será la siguiente:
  • NC = (C1+NProyecto + EX)/3
  • NT = (NT1+.. +NTn)/n
  • NF = 0,7*NC + 0,3*NT
El examen no reemplazaró la nota de control (C1). Para aprobar el curso se requiere:
  • NC≥4.0
  • NProyecto ≥ 4.0
  • NT ≥ 4.0

Bibliografía:

  1. Mihir Bellare y Phil Rogaway, “Introduction to Cryptography, Lecture Notes”, University of California San Diego, 2006. (Disponible en versiones del curso para pregrado, y de postgrado) Se recomienda revisar ambos.
  2. J. Katz and Y. Lindell. Introduction to Modern Cryptography, Chapman & Hall/CRC Press, 2007. Disponible en biblioteca. Ver la errata y la sec. 4.6.3 revisada.
  3. J. Katz, Digital Signatures, Springer, 2010
  4. Douglas Stinson, “Cryptography, Theory and Practice”, Second edition, Editorial Cgapman and Hall/CRC, 2002
  5. Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, “Handbook of Applied Cryptography”, CRC press, 1997. Disponible gratis!.
  6. Oded Goldreich, “Foundations of Cryptography, Basic Tools”, Cambridge University Press, 2001
  7. Oded Goldreich, “Foundations of Cryptography, Basic Applications”, Cambridge University Press, 2004
  8. Josef Pieprzyk, Thomas Hardjono, Jennifer Seberry, “Foundamentals of Computer Security”, Springer, 2003

Última modificación: 10 de Marzo 2014.