the Imitation Game

March 28, 2023

Este es un proyecto individual para el curso CE4301 - Arquitectura de Computadores I, llamado "The Imitation Game" en el que se ha diseñado e implementado un ASIP (Procesador Específico de Aplicaciones) para desencriptar imágenes utilizando el algoritmo RSA (Rivest-Shamir-Adleman).

Tecnologías utilizadas

El programa fue construido en Ubuntu 18.04 LTS y se utilizaron las siguientes tecnologías: Ensamblador nasm para x86: para realizar la aritmética modular necesaria, en especial la exponenciación modular requerida para la desencriptación. Python 3.6.9: para manejar la entrada y salida de archivos, así como para visualizar la imagen resultante. Librerías: os: para manejar la entrada y salida de archivos. termcolor: para dar formato a los mensajes de salida en la terminal. PIL: para abrir y guardar imágenes.

Funcionamiento del programa

El programa recibe la llave privada necesaria para la desencriptación en un archivo llamado keys.txt y la imagen encriptada ubicada en la carpeta "static". El programa procesa la imagen y la muestra al usuario en una cuadrícula de 1x2, donde la imagen de entrada (encriptada) se muestra en la primera celda y la imagen procesada (desencriptada) se muestra en la segunda celda.

Cómo ejecutar el programa

Para ejecutar el programa, se deben seguir los siguientes pasos:

  • Descargar o clonar el repositorio del proyecto en tu ordenador.
  • Asegurarse de tener instalado Python 3.6.9.
  • Instalar la librería termcolor y PIL.
  • Abrir una terminal en el directorio del proyecto.
  • Ejecutar el programa con el siguiente comando: python3 main.py
  • Seguir las instrucciones que aparecen en la terminal.

Link al Proyecto

Ejemplo de Uso
Resultado Esperado