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).
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.
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.
Para ejecutar el programa, se deben seguir los siguientes pasos:
Link al Proyecto