Instituto de Ingeniería Eléctrica – Facultad de Ingeniería

Universidad de la República Oriental del Uruguay

 

 

Implementación de un bloque DES

Proyecto del curso

Diseño De Circuitos Digitales Utilizando

Dispositivos Lógicos Programables

 

Docentes :

Ing. Julio Pérez Acle

Ing. Juan Pablo Oliver

Ing. Oscar de Oliveira

Ing. Jorge Myszne

Proyecto presentado por :

Alejandro Pareja

Fernando Reyes

Objetivo

 

 

El fin de este proyecto consistió en implementar en hardware el algoritmo de encriptación DES (Data Encryption Standard) descripto en el estándar FIPS PUB 46, y adoptado por el gobierno de los Estados Unidos en 1977. Este algoritmo encripta palabras de 64 bits a partir de una llave de 56 bits. El dato encriptado también tiene 64 bits.

Implementación

 

 

Se diseñó un dispositivo encriptador que, tomando la palabra a cifrar y la llave desde memorias ROM donde fueron previamente grabadas, permite al cabo de 16 períodos de reloj obtener el dato encriptado, el que puede ser visualizado de a bytes, comenzando por el byte bajo, desde dos display de 7 segmentos, en notación hexadecimal.

Una señal de reset, activa por nivel alto, permite indicar al dispositivo que comience el proceso.

Del mismo modo, se implementó un dispositivo desencriptador que tomando también la llave y, en este caso, la palabra encriptada, devuelve luego de 16 períodos de reloj el dato original. También este dato de salida se puede visualizar de a bytes en dos display de 7 segmentos en notación hexadecimal.

El funcionamiento correcto de ambos dispositivos fue testeado a partir de programas de software que implementan el mismo algoritmo.

Diseño

 

 

Para construir en hardware el trabajo diseñado, se utilizó el programa MAX + Plus II de Altera, que permite diseñar un circuito lógico y programarlo en alguno de sus chips admisibles. En este caso se utilizó el chip FLEX10K20RC240-4 de la familia FLEX10K de Altera, por ser el único de los disponibles que permite utilizar memoria, la que es necesaria para grabar la llave y el dato a encriptar o desencriptar.

De la programación surge que el 95% del chip seleccionado queda ocupado por cualquiera de los dos proyectos, el encriptador o el desencriptador.

Comentarios

 

 

Una de las dificultades principales del proyecto fue la de encontrar un balance entre el espacio que ocupa en el chip y el tiempo que demora en obtener el dato de salida. La solución a la que se llegó -95% del chip y 16 períodos de reloj- puede, dependiendo de la aplicación que se desee construir a partir del encriptador o del desencriptador, ser mejorada en lo que refiere al espacio que ocupa, pero no en lo que respecta al tiempo que demora.

Una posible aplicación del proyecto puede ser la construcción de un sistema en hardware capaz de descifrar contraseñas de Unix, cuyo proceso de encriptado se basa en DES.

Enlaces de referencia

 

 

Descripción del algorimo DES.

Aspectos cualitativos del algoritmo.

Seguridad en Unix.

FIPS PUB 46-3.