Criptografía: cómo usar las matemáticas para entendernos

Resumen: 

El objetivo principal de este proyecto es que el alumnado conozca los fundamentos de una parte de las Matemáticas llamada "Teoría de códigos" para comprender, por una parte, el funcionamiento de códigos de uso cotidiano como la letra del DNI, los códigos de barras o los números de las cuentas bancarias y, por otra parte, entender cómo se cifran mensajes para conseguir su confidencialidad mediante técnicas matemáticas, tanto en el pasado como en la actualidad. El aprendizaje y la práctica de estos fundamentos deberán llevar al alumnado, no sólo a un conocimiento profundo y técnico sobre las cuestiones tratadas, sino también a valorar la matemáticas como una ciencia útil, bella y necesaria en nuestra vida diaria. Los/as estudiantes resolverán diversos problemas relacionados con la aritmética modular, la teoría de códigos y la criptografía a lo largo del curso. Primeramente se tendrá una toma de contacto en una sesión inicial entre alumnado y profesorado. En la segunda sesión se resolverán problemas de aritmética modular y divisibilidad que serán de utilidad en el futuro. En la tercera sesión, se describirán algunos códigos de uso habitual, prestando especial atención a los caracteres o dígitos de control como los del DNI, las cuentas bancarias o los códigos de barras GTIN-13. Estudiará también su capacidad para detectar y corregir errores con técnicas de aritmética modular. En la cuarta sesión, se describirán algunos sistemas clásicos de cifrado. Se cifrarán y descifrarán mensajes con estas técnicas y utilizarán la técnica del análisis de frecuencias para descifrar textos encriptados con cifrados de sustitución. En la quinta sesión se comentarán los fundamentos de la criptografía de clave pública y los alumnos crearán sus claves públicas y privadas, que usarán para enviar mensajes de correo firmados y cifrados. En todo el proyecto se fomentará el uso del rigor matemático para resolver los diversos problemas que se planteen. Los/as alumnos/as participarán de manera activa en la resolución de las diferentes actividades que se les irán proponiendo a lo largo del curso. Muchas de estas actividades serán realizadas en equipo.

1ª Sesión: 

Objetivo:

El objetivo principal es dar una visión general del proyecto a todo el alumnado  participante en el Campus. En particular este proyecto busca que los/as estudiantes  conozcan los fundamentos de una parte de las Matemáticas llamada "Teoría de códigos", para comprender, por una parte, el funcionamiento de códigos de uso cotidiano como la letra del DNI, los códigos de barras o los números de las cuentas bancarias y, por otra parte, entender cómo se cifran mensajes para conseguir su confidencialidad mediante técnicas matemáticas, tanto en el pasado como en la actualidad. El aprendizaje y la práctica de estos fundamentos deberá llevar al alumnado, no solo a un conocimiento profundo y técnico sobre las cuestiones tratadas, sino también a valorar la Matemáticas como una ciencia útil, bella y necesaria en nuestra vida diaria.

Desarrollo:

Los/as profesores/as coordinadores/as del Campus Científico harán una presentación del programa a todo el alumnado. Uno/a de los/as profesores/as de cada proyecto lo presentará a los/as estudiantes para que todos tengan una idea de sus objetivos y su contenido. Posteriormente, los/as participantes se repartirán por proyectos para, en cada uno de ellos conocerse entre el alumnado y con el profesorado manifestando el porqué de su interés y sus expectativas en su desarrollo.

2ª Sesión: 

Objetivos: 

Conocer las nociones básicas de divisibilidad. Operar en aritmética modular. Deducir criterios de divisibilidad. Resolver ecuaciones en congruencias lineales sencillas. Usar las técnicas matemáticas con rigor. Presentar adecuadamente la solución a problemas.

Desarrollo: 

Se motivará el uso de técnicas de teoría de códigos y de criptografía mediante la descripción de problemas que pueden darse en procesos de comunicación. Se usará el cifrado de César para motivar la necesidad del uso de aritmética modular para resolver estos problemas. Se presentarán las nociones básicas de divisibilidad y aritmética modular.  El alumnado estudiará los fundamentos de la aritmética modular y las operaciones asociadas mediante la resolución de algunos problemas. Se usarán técnicas de aritmética modular y el significado de la expresión decimal de un número para obtener criterios de divisibilidad por algunos números. El alumnado usará el algoritmo de Euclides para calcular el máximo común divisor y obtener la identidad de Bézout asociada. Se mostrará que el algoritmo de Euclides es más eficiente que los métodos basados en la factorización mediante la propuesta de factorización con un ordenador de un número producto de dos primos grandes. Este hecho es crucial en algoritmos de cifrado como RSA. Los/as estudiantes descubrirán cuándo existen inversos, módulo un número natural y verán cómo calcularlos con ayuda de la identidad de Bézout. Se resolverán algunas ecuaciones en congruencias. Con ello el alumnado  conocerá las técnicas de aritmética modular necesarias para trabajar con criptografía y códigos en las siguientes sesiones.

3ª Sesión: 

Objetivos: 

Conocer algunos códigos que permitan detectar o corregir errores. Usar técnicas de aritmética modular para identificar si un código detecta o corrige errores. Identificar mensajes con errores mediante técnicas de teoría de códigos. Usar con rigor las técnicas matemáticas. Presentar adecuadamente la solución a problemas.

Desarrollo: 

Se explicarán los códigos de repetición. Se definirán los conceptos de detección y corrección de errores por un código. Se mostrarán ejemplos de redundancia en el lenguaje usual: faltas de ortografía, lenguaje SMS... Se presentarán algunos códigos habituales y el alumnado tendrá  que analizar su capacidad para detectar y corregir errores: Paridad, DNI, cuentas bancarias, GTIN-13 (códigos de barras), extensiones del código de paridad. Con ello el alumnado conocerá algunos códigos basados en técnicas de aritmética modular e identificará en algunos casos sencillos si permiten detectar o corregir errores. También deberá recuperar mensajes en los que se ha producido algún error.

4ª Sesión: 

Objetivos: 

Conocer algunos métodos de cifrado. Usar técnicas de aritmética modular para cifrar y descifrar mensajes en los que se conoce la clave. Ser capaces de obtener funciones de descifrado a partir de las funciones de cifrado en casos sencillos. Usar técnicas de análisis de frecuencias para descodificar mensajes cifrados en los que se desconoce la clave. Usar con rigor las técnicas matemáticas. Presentar adecuadamente la solución a los problemas.

Desarrollo: 

Se mostrarán diversas técnicas clásicas de cifrado, como el método de codificación por trasposición por medio de la escítala. Se mostrará la técnica de cifrado de César y el alumnado cifrará y descifrará mensajes cifrados con esta técnica. Se mostrará la técnica de cifrado afín. Se cifrarán y descifrarán mensajes por esta técnica. Se mostrará la técnica del cifrado por sustitución y cómo es vulnerable al análisis de frecuencias. El alumnado descifrará mensajes cifrados por sustitución por análisis de variables, que serán textos literarios o canciones. Se cifrarán o descifrarán mensajes mediante el criptosistema de Vigenère. Se mostrará  por qué las libretas de clave única constituyen un criptosistema perfecto.

Con todo esto el alumnado tendrá que ser capaz de cifrar y descifrar mensajes utilizando técnicas de aritmética modular. También identificará algún mensaje mediante análisis de frecuencias. 

5ª Sesión: 

Objetivos:

Conocer los fundamentos de la criptografía de clave pública. Crear claves públicas y privadas con ayuda de herramientas informáticas. Cifrar y firmar mensajes con sistemas de criptografía de clave pública. Conocer algunos aspectos básicos de seguridad informática relacionados con la custodia de claves públicas y privadas.

Desarrollo:

Se mostrará al alumnado los problemas de intercambio de clave y de necesidad de muchas claves que aparecen en la criptografía clásica. Se explicarán los sistemas de criptografía de clave pública. El alumnado creará claves públicas y privadas con ayuda de programas informáticos y enviarán y recibirán mensajes cifrados y firmados con criptografía de clave pública con ayuda de programas informáticos adecuados.

Con ello el alumnado creará claves públicas y privadas y cifrará y firmará mensajes usando sistemas de criptografía de clave pública.

Referencias recomendadas: 

BIBLIOGRAFÍA

  • R. Fuster, «Matemàtica discreta», Editorial UPV, Valencia, 2009.
  • J. Gómez, «Matemáticos, espías y piratas informáticos», RBA, Barcelona, 2010.
  • B. Schneier, «Applied Cryptography», J. Wiley & Sons, New York, 1996.
  • A. Vera López, R. Esteban Romero, «Problemas y ejercicios de Matemática discreta», AVL, Bilbao, 1995.
  • Wikipedia: IBAN  http://en.wikipedia.org/wiki/International_Bank_Account_Number
Lugar donde se desarrollará el proyecto: 
Universidad Politécnica de Valencia
ETS Ingeniería Informática. Edificios 1G-1E-1H
Campus de Vera s/n
46022 València Valencia
Campus: 
Departamento: 
Escuela Técnica Superior de Ingeniería Informática, UPV ; Facultat de Ciéncies Matemàtiques UV
Provincia: