Skip to content

oxcar103/Practicas-TNC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Practicas-TNC

Prácticas de la asignatura Teoría de Números y Criptografía (TNC).

  • Teoría de Números:
    • P1-Test de Miller-Rabin y Solovay-Strassen: En esta práctica, testearemos la primalidad de nuestro DNI usando dos resultados del Pequeño Teorema de Fermat como son los test de Miller-Rabin o de Solovay-Strassen, es decir, buscar si existen raíces de la unidad distintas de 1 y -1 o comprobar que se mantienen los residuos cuadráticos, respectivamente. En ambos casos tenemos certeza de que el número no es primo si el test da negativo pero hay incerteza si da positivo.
    • P2-Fracción Continua Simple(FCS): En esta práctica, aprenderemos a descomponer un número real en su Fracción Continua Simple asociada. Nótese que dicha descomposición será finita si el número es racional pero será infinita si es irracional.
    • P3-Ecuaciones de Pell: En esta práctica, exploraremos las ecuaciones de Pell resolviéndolas y comprobando que nos dan lugar a una fracción formada por los coeficientes convergente, y la compararemos con los resultados obtenidos para FCS.
    • P4-Sucesiones de Lucas (I): En esta práctica, comenzaremos el estudio de estas sucesiones con la introducción al concepto de entero cuadrático y las propiedades de los coeficientes de dicho entero, así como valores teóricos para números primos.
    • P5-Sucesiones de Lucas (II): En esta práctica, continuaremos el estudio de estas sucesiones con una mejora en la eficiencia del cálculo de las sucesiones de coeficientes y más valores teóricos de sus coeficientes para números primos.
    • P6-Primalidad con Sucesiones de Lucas y elementos primitivos: En esta práctica, veremos dos certificados de primalidad. En el primero aplicaremos lo aprendido sobre Sucesciones de Lucas para encontrar una que nos verifique la primalidad de un número dado. Y en el segundo, calcularemos un elemento primitivo del cuerpo, por lo que se garantiza la primalidad.
    • P7-Descomposición en Factores Primos(I): En esta práctica, conoceremos los métodos de Fermat y de Pollard de descomposición de un número en factores y los usaremos junto con los resultados anteriores de test y certificados de primalidad para descomponer dos números en factores primos.
    • P8-Descomposición en Factores Primos(II): En esta práctica, repetiremos nuestro objetivo final de descomponer un número en factores primos pero con un número mucho mayor, viendo así cómo los algoritmos pierden su potencial al enfrentarse a grandes números.
    • P9-Curvas Elípticas: En esta práctica, nos iniciaremos en el cifrado mediante curvas elípticas con unos sencillos ejemplos de cálculo de puntos y del orden de un punto dado.
  • Criptografía:
    • P1-Criptosistemas Simétricos: En esta práctica, tendremos un primer contacto con los algoritmos de cifrado simétricos con el algoritmo MiniAES junto con los modos de operación, en particular, OFB y CFB.
    • P2-Complejidad Algorítmica: En esta práctica, retornaremos al plano teórico mediante el cálculo de la complejidad algorítmica de un par de problemas muy interesantes.
    • P3-Criptosistema RSA: En esta práctica, nos introduciremos en el estudio del algoritmo de cifrado asimétrico RSA tanto desde el punto de vista de la funcionalidad como desde la perspectiva del ataque viendo la importancia de que los parámetros privados lo sigan siendo.
    • P4-Logaritmo Discreto: En esta práctica, estudiaremos la robustez del problema del algoritmo discreto, en particular, un par de algoritmos para abordarlo. Partimos de unos parámetros públicos de ElGamal y un criptograma dado, nuestro objetivo será obtener el mensaje.

Licencia

El proyecto en conjunto se distribuye bajo la licencia GPL.