Introduccion a la Criptografía Moderna CC51Q (2007/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.

Aspectos administrativos:

Cátedra: Martes, Jueves 4:15pm-5:45pm, B211
Auxiliar: Lunes 4:15pm-6:45pm, B211
Sitio web oficial (especialmente el Foro de Discusión): ucursos
Carga académica: 10 UD,
Requisitos: (CC30A, CC30B, MA34A) o (MA47A), o Autorización
Carácter del curso: electivo Cs. de la Computación

Novedades

  • Tarea 1 está disponible.
  • Calendario de próximas lecturas disponible.
  • Importante: Escoger un proyecto y comunicarselo al profesor antes del Martes 3 de Abril. Ver listado de proyectos posibles.
  • Fechas Importantes:
    1. Entrega Reporte de Avance proyecto: 24 de Abril, 2007

Material de Lectura

Estas lecturas son altamente recomendadas para las clases de cátedra/ auxiliares indicadas.

Tareas

  • Tarea 1: fecha entrega 20 de Abril, 23:59hrs. Disponible en (PDF).

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)
  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, 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)
  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. Autentificación e identificación (passwords), vía terceras partes confiables (Needham-Schroeder, Kerberos)
    3. Acuerdo de Claves: Diffie-Hellman y intercambio de claves autentificado (AKE).
    4. Canales seguros (SSL y Encriptación autentificada)
    5. Problemas al implementar algoritmos criptográficos
  5. Tópicos Avanzados:
    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. Introducción a protocolos criptográficos genéricos (Computación Multi-partita Segura, Votación Electrónica)
Nota: El curso se dicta por primera vez. Por lo tanto, el temario del curso es potencialmente variable dependiendo de disponibilidad de tiempo, en especial en los tópicos avanzados.

Evaluación:

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

  1. Desarrollo de un software de seguridad y/o criptográfico,
  2. 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.

Posibles Proyectos (todos ya asignados)

  • Estado del arte de protocolos alternativos criptograficos para DNSSEC. (Asignado: Cristian Campora)
  • Estado del arte o implementación de protocolos de acuerdo de claves. (Asignado: Felipe Muñoz)
  • Estado del arte o implementación de algoritmos para watermarking de tipo criptográfico; un watermark es un sello detectables en contenido digital como música o películas. (Asignado: Nicolás Rosselot)
  • Estado del arte en protocolos criptográficos para comunicación anónima. (Asignado: Patricio Seguel)
  • Estado del arte en algoritmos de generación de bits pseudo-aleatorios. (Asignado: César Castro)
  • Estado del arte en funciones de hash criptográficas. (Asignado: Alejandro García)
  • Implementación de algoritmo eficiente para resolver el problema del 'logaritmo discreto'. (Asignado: Danny Godoy)
  • Implementación de protocolos 'mix-networks'. (Asignado: Patricia Alarcón)
  • Estado del arte de encriptación basada en identidad -- identity based encryption. (Asignado: Alexis Henríque)
  • Estado del arte de criptografía visual. (Asignado: Dusan Juretic)
  • Implementar un esquema de compartición de secretos verificable. (Asignado: Ernesto Castillo)
  • Implementar algún esquema de firmas grupales (multifirmas, firmas anillo, firmas de grupo, etc.) (Asignado: Francisco Gutiérrez)
  • Estado del arte de esquemas de compartición de secretos. (Asignado: Marcelo Sénchez)
  • Estado del arte en protocolos criptográficos para "evaluación segura de funciones" (secure function evaluation). (Asignado: Cristián Olate)
  • Estado del arte en consultas seguras a base de datos (private information retrieval). (Asignado: Andres Ignacio Pérez)
  • Implementar un ataque "Man-in-the-middle" en el protocol SSH. (Asignado: Sebastián Kreft)
  • Implementar un ataque "Man-in-the-middle" en el protocol HTTPS. (Asignado: Felipe Troncoso)
  • Implementar el ataque "Meet-in-the-middle" para desencriptar un texto cifrado usando algún cifrador de bloque (posiblemente con tamaño de bloque y espacio de claves reducido). (Asignado: Fernando Krell)
  • Implementar protocolo de backup distríbuido resistente a catástrofes en internet. (Asignado: Violeta Díaz)
  • Implementar el protocolo de Blum para "Lanzar una moneda por teléfono". (Asignado: Joaquín Rivas)
  • Estudio de variaciones de criptoanalisis lineal sobre AES. (Asignado: José Verschae)
Solicitar directamente al profesor el tema, quien le clarificará el alcance del proyecto. Cualquier otro tema o posible forma del proyecto queda a criterio del profesor y debe ser consultado con él.

Tareas

Las tareas consistirán en demostraciones y resolución de problemas, tanto teóricos como relativos a implementaciones en software.

Nota Magister y Doctorado: La opción (2.) 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.

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)
  2. Douglas Stinson, “Cryptography, Theory and Practice”, Second edition, Editorial Cgapman and Hall/CRC, 2002
  3. Oded Goldreich, “Foundations of Cryptography, Basic Tools”, Cambridge University Press, 2001
  4. Oded Goldreich, “Foundations of Cryptography, Basic Applications”, Cambridge University Press, 2004
  5. Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, “Handbook of Applied Cryptography”, CRC press, 1997
  6. Josef Pieprzyk, Thomas Hardjono, Jennifer Seberry, “Foundamentals of Computer Security”, Springer, 2003

Última modificación: 29 Marzo 2007.