TRABAJOS:

OBJETIVOS:

  1. Aprender a implementar cifrados modernos, en particular, el cifrado de Vernam y cifrados basados en RSA.
  2. Usar la teoría de números vista en clase para implementar correctamente los cifrados anteriores.
  3. Criptoanalizar en ciertos casos sencillos el criptosistema RSA.
  4. Redactar una memoria del trabajo con claridad de pensamiento y en correcto español.

EVALUACIÓN:

  1. Valoraré los razonamientos, su justificación y exposición. Es importante comprobar que los parámetros de los criptosistemas verifican las condiciones dadas en los teoremas vistos en clase.
  2. Valoraré la correción de los algoritmos.
  3. Valoraré el estilo de programación, esto es, concisión, limpieza del código, facilidad de lectura y estructuración.
  4. Valoraré la redacción de la memoria en cuanto a claridad, concisión así como a síntesis de la información. Quitaré puntos a las memorias vacías de contenido y de lectura farragosa.
  5. Igual que en el trabajo anterior, quitaré puntos por las faltas de ortografía y, en especial, por las memorias escritas en formato sms.

DESCRIPCIÓN:

  1. Implementar un criptosistema de Vernam. Las características del mismo son las siguientes:
    1. El sistema aceptará una cadena de caracteres de longitud desconocida.
    2. Los caracteres de la cadena pertenecerán al juego completo de caracteres del castellano, esto es, incluirán minúsculas, mayúsculas, letras acentuadas, ñ, diéresis y todos los signos de puntuación, incluidos los espacios.
    3. El programa ha de devolver la secuencia aleatoria usada en el cifrado así como el criptograma.
  2. Implementar un criptosistema RSA.
    1. Justificar la elección de todos los parámetros del criptosistema y probar que son correctos.
    2. Describir todos los detalles de implementación del RSA.
    3. El criptosistema recibirá un texto claro de longitud variable en las condiciones del apartado anterior.
    4. La implementación incluirá la función de cifrado y la de descifrado. En los procesos de cifrado y descifrado, se contabilizarán los tiempos.
  3. Implementar uno de los siguientes criptosistemas, según os toque:
    1. Sistema de firma digital basado en RSA.
      1. Los mensajes en claro tendrán el mismo formato que en los casos anteriores.
      2. El programa tendrá que producir un criptograma y una rúbrica.
      3. Tendréis que descifrar el criptograma y recuperar la rúbrica y mostrar que funciona.
      4. Poniéndoos en el papel de un espía, modificaréis el criptograma y probaréis que la rúbrica detecta la alteración del mensaje.
    2. Criptosistema de ElGamal.
      1. Los mensajes en claro tendrán el mismo formato que en los casos anteriores.
      2. Justificar la elección de los parámetros del criptosistema.
      3. El criptosistema recibirá un texto claro de longitud variable, que se intentará que no sea mayor que los posibles módulos del criptosistema, y habrá de cifrarlo y descifrarlo. Igual que en el caso anterior, se contabilizarán los tiempos.
  4. Criptoanalizar cifrados con RSA.

 


Asignación de trabajos:

David Baquero
Rubén Carrasco y José Manuel Gallo
Virginia Martín, Mario Hidalgo y Yang Yong
Daniel Herrero y Alberto Jiménez
Alfonso Roa y Salif