¿Quieres entender por qué los algoritmos criptográficos pueden prometer seguridad? Todos están basados en operaciones matemáticas, problemas difíciles de resolver, probabilidad y estadística.
Veamos un plan de estudios de matemáticas que podrías usar para adquirir las habilidades matemáticas necesarias para entender mejor los algoritmos criptográficos.
Básico básico
Empecemos por los fundamentos más profundos que debes tener, que hasta pueden parecer obvios. Lo importante es que tengas la seguridad de que los dominas y si no, te proporcionamos algunos recursos para que los repases.
Álgebra
Es necesario conocer los procedimientos algebraicos a fondo porque en esto se basa la resolución de problemas de muchas otras áreas. Además la factorización es uno de los problemas más importantes de la criptografía actual, y aquí es donde aprenderás el concepto básico en práctica. Si sientes que te falta aprender un poco, puedes tomar estos cursos:
Probabilidad y estadística
Siempre que hablamos de que un algoritmo es seguro, lo decimos basados en la probabilidad de que alguien pueda encontrar una solución a un problema muy difícil en un número de intentos razonable.
Por ejemplo: confiamos en que la probabilidad de que alguien rompa un cifrado es cercana a cero, pero realmente esta probabilidad nunca es cero absoluto, sino algo como 1/2^128 por intento, pero alguien motivado podría hacer miles de millones de intentos. Para poder calcular estas probabilidades hay que entender lo básico de probabilidad y estadística.
La probabilidad también te ayudará a entender lo que es una distribución de probabilidad, que es muy importante tanto para atacar algoritmos criptográficos como para verificar que las salidas de estos son seguras.
Puedes aprender un poco de esto en los siguientes cursos:
Matemáticas discretas
Me atrevería a decir que esta es la rama más importante de matemáticas que debes de conocer como programador y como criptógrafo. La mayoría de los operaciones criptográficas y de algoritmos de programación están basadas en el conocimiento que aprenderás aquí. Ya hemos mencionado que las matemáticas discretas son el estudio de las cosas que se pueden contar, sean finitas o infinitas, a diferencia de las matemáticas continuas que estudian los números reales o cosas que son continuas, incontables y sin divisiones claras.
A continuación te listamos algunos de los temas que debes dominar o por lo menos conocer bien.
Lógica
La lógica tiene la intención de formalizar el razonamiento de tal manera que lo podamos estudiar, entender y aplicar a otras áreas.
En este tema se habla de cosas como tablas de verdad, lógica proposicional, deducción, teorías y lógica de primer orden, etc.
Teoría de números
La teoría de números trata acerca de los números enteros, sus propiedades, operaciones y relaciones. Esta es la base de varios problemas difíciles que sirven para crear los algoritmos criptográficos modernos. En esta rama se estudia la divisibilidad, los números primos, la aritmética modular y los algoritmos relacionados con estas operaciones.
Si no vas a estudiar nada más, entender los temas de un curso de teoría de números enfocado en criptografía es suficiente para no sentirte sin rumbo. Estos cursos pueden ayudarte a aprender lo que necesitas:
- Number Theory for Cryptography
- Temario con Bibliografía y tareas del curso de Teoría de Números del CIMAT
- Mathematical foundations of cryptography
- Yet Another Introductory Number Theory Textbook - Cryptology Emphasis
Combinatoria
Esta sub-rama de las matemáticas discretas tiene que ver con el conteo, combinaciones y arreglos de objetos en estructuras discretas (con objetos claramente separados) como los grafos y conjuntos. Normalmente estas estructuras discretas contienen números, pero podrían contener palabras, textos, frases. La combinatoria incluye el conteo de objetos y combinaciones que llevamos a a cabo en probabilidad y estadística: las operaciones de combinación y permutación.
Algunos recursos que te ayudarán a aprender combinatoria a fondo se encuentran aquí: Combinatorics and Discrete Mathematics que tiene un conjunto de libros sobre combinatoria con diferentes enfoques.
Cursos de matemáticas discretas generales
Algunos cursos y temarios que puedes tomar son:
- Curso de matemáticas discretas
- Temario sobre matemáticas discretas para Maestría en Ciencias de la Computación
Geometría analítica
Conocer las propiedades matemáticas de los objetos geométricos te ayudará a comprender intuitivamente algunas de los problemas difíciles en los que está basada la criptografía.
Algunos cursos que puedes tomar:
Álgebra lineal
El álgebra lineal tiene que ver con el estudio de ecuaciones lineales (que pueden ser graficadas en el plano cartesiano con una recta), sus soluciones y su tratamiento a través de vectores y matrices.
Muchas de las técnicas utilizadas en álgebra lineal son ocupadas en criptografía para crear algoritmos seguros que sean imposibles de revertir sin conocer la llave correcta. Un ejemplo es el algoritmo Rijndael, el actual AES.
Algunos recursos que te ayudarána a aprender matemáticas discretas son:
Opcionales
Si quieres avanzar a campos muy adelantados de la criptografía, debes estudias campos aún más específicos de las matemáticas discretas como:
- Teoría de grupos
- Teoría de grafos
- Retículas (algo muy importante para la criptografía post-cuántica)
Cursos completos
Para finalizar, te quiero presentar recursos que tienen un conjunto completo básico de todas las matemáticas necesarias para entender los algoritmos criptográficos modernos.
- MANUAL DE CRIPTOGRAFÍA: FUNDAMENTOS MATEMÁTICOS DE LA CRIPTOGRAFÍA PARA UN ESTUDIANTE DE GRADO - Tiene apartados para todos los tipos de algoritmos criptográficos usados en la actualidad, explicando su soporte matemático. Si quieres profundizar en algún tema de estos, podrías tomar el curso específico que sugerimos aquí.
- Especialización en matemáticas discretas en Coursera - Tiene todos los temas relacionados con matemáticas para computación y criptografía divididos en varios cursos, lo puedes tomar de manera gratuita.
- Mathematical foundations of Cryptography - Tiene todos los temas necesarios para entender la criptografía, incluyendo los temas selectos de todas las matemáticas para ir directo al grano. Esto requerirá que tengas cubierto las matemáticas básicas para no perderte.
- Temario de maestría en seguridad de la ISICAL - Tiene todos los cursos que alguien debería de tomar para especializarse en ciberseguridad, con temarios completos y bibliografía, lo que te puede servir como una guía si lo que prefieres es aprender de los libros.
Bonus: Cryptogaphy, Boolean Functions and related problems
Conclusión
Como podrás observar, hay una gran cantidad de recursos para aprender lo necesario para entender la criptografía a fondo, desde sus bases matemáticas. Puedes usar estas recomendaciones como guía, o ver los temas y buscar tus propios recursos para seguir aprendiendo. Si tienes alguna recomendación no dudes en compartirla con nosotros para poder actualizar nuestra lista y cada vez hacerla mejor.
Comentar