IMPLEMENTACIÓN EN HARDWARE DEL ALGORITMO RIJNDAEL

Tamaño: px
Comenzar la demostración a partir de la página:

Download "IMPLEMENTACIÓN EN HARDWARE DEL ALGORITMO RIJNDAEL"

Transcripción

1 IMPLEMENTACIÓN EN HARDWARE DEL ALGORITMO RIJNDAEL Germán Jácome-Calderón, Jaime Velasco-Medina, Julio López-Hernández* Grupo de Bioelectrónica y Nanoelectrónica, Escuela EIEE *Escuela EISC, Universidad del Valle,A.A , Cali, Colombia gecalder73@tutopia.com, jvelasco@univalle.edu.co, jlopez@eisc.univalle.edu.co ABSTRACT This article presents the design of two hardware architectures for the Rijndael algorithm, using programmable logic devices and VHDL description language. The Iterative and Pipeline architectures were designed by considering the hardware implementation advantages for some transformations of Rijndael algorithm over software implementations. Additionally, different designs were taken in account for implementing the multiplication of the MixColumn transformation, evaluating speed and area parameters. The architectures were compiled and simulated using Quartus II tool of Altera, and the simulation results are good and these are compared with different results presented in the literature. RESUMEN Este artículo presenta el diseño de dos arquitecturas en hardware para el algoritmo Rijndael, usando dispositivos lógicos programables y el lenguaje de descripción VHDL. Las arquitecturas Iterativa y Pipeline fueron diseñadas considerando las ventajas que presenta la implementación de algunas transformaciónes del algoritmo Rijndael en hardware con respecto a las implementaciones en software. Adicionalmente, para la implementación de las arquitecturas se consideraron diferentes diseños para la multiplicación en la transformación MixColumn evaluando los parámetros de velocidad y área respectivamente. Las arquitecturas fueron compiladas y simuladas usando la herramienta Quartus II de Altera, y los resultados de simulación son altamente satisfactorios y son comparados con los presentados en la literatura.

2 IMPLEMENTACIÓN EN HARDWARE DEL ALGORITMO RIJNDAEL Germán Jácome-Calderón, Jaime Velasco-Medina, Julio López-Hernández* Grupo de Bioelectrónica y Nanoelectrónica, Escuela EIEE *Escuela EISC, Universidad del Valle,A.A , Cali, Colombia gecalder73@tutopia.com, jvelasco@univalle.edu.co, jlopez@eisc.univalle.edu.co RESUMEN Este artículo presenta el diseño de dos arquitecturas en hardware para el algoritmo Rijndael, usando dispositivos lógicos programables y el lenguaje de descripción VHDL. Las arquitecturas Iterativa y Pipeline fueron diseñadas considerando las ventajas que presenta la implementación de algunas transformaciónes del algoritmo Rijndael en hardware con respecto a las implementaciones en software. Adicionalmente, para la implementación de las arquitecturas se consideraron diferentes diseños para la multiplicación en la transformación MixColumn evaluando los parámetros de velocidad y área respectivamente. Las arquitecturas fueron compiladas y simuladas usando la herramienta Quartus II de Altera, y los resultados de simulación son satisfactorios y son comparados con los presentados en la literatura. 1. INTRODUCCION La transmisión de información entre sistemas electrónicos requiere cada vez más del uso de técnicas criptográficas, es decir, se requieren sistemas que sean capaces de realizar el proceso de encriptación y desencriptación en el menor tiempo posible debido al alto volumen de información que se procesa, entonces es aquí donde el hardware presenta mayores ventajas sobre el software. Las implementaciones en hardware presentan un mejor desempeño para los requerimientos de alta velocidad en las comunicaciones, seguridad física y bajo costo. Los algoritmos criptográficos implementados en hardware son físicamente más seguros debido a que éstos no pueden ser fácilmente modificados por un atacante externo [1]. Para alcanzar seguridad en la información, existen en el mercado varios algoritmos y sistemas criptográficos, algunos de los cuales ya han quedado obsoletos puesto que han sido atacados exitosamente. Por lo tanto existe la necesidad de crear nuevos algoritmos criptográficos que resistan los ataques basados en el uso de los computadores de alto desempeño. Teniendo en cuenta las consideraciones anteriores, el NIST (National Institute of Standards and Technology) llevó a cabo el proceso de coordinación para reemplazar al sistema criptográfico DES (Data Encryption Standard). En este contexto, los algoritmos seleccionados por el NIST como finalistas para el AES (Advanced Encryption Standard) fueron: MARS, RC6, RIJNDAEL, SERPENT y TWOFISH [2]. NIST anunció el 2 de 0ctubre del 2000, que el algoritmo Rijndael fue seleccionado como el algoritmo AES (Advanced Encryption Standard), debido a su seguridad, desempeño, eficiencia, flexibilidad y facilidad de implementación [3]. En este contexto, en la literatura se encuentran algunas implementaciones en hardware del algoritmo Rijndael, las cuales son presentadas en [1], [7], [8], [9], [10] y [11], sin embargo estos diseños son realizados usando herramientas y dispositivos que no presentan buen desempeño. Entonces este trabajo es orientado a presentar diseños eficientes para implementaciones en hardware del algoritmo Rijndael usando la herramienta Quartus II de Altera, la cual realiza un excelente proceso de síntesis sobre dispositivos FPGAs. Este trabajo esta organizado de la siguiente manera, en la sección 2 se presenta una descripción detallada del algoritmo Rijndael, en la sección 3 se describe el diseño y la implementación en hardware del algoritmo Rijndael, en la sección 4 se presentan los resultados de las simulaciones para las dos arquitecturas hardware diseñadas para el algoritmo Rijndael, y finalmente en la sección 5 se presentan algunas conclusiones y trabajo futuro. 2. EL ALGORITMO RIJNDAEL Todas las operaciones usadas en el algoritmo Rijndael son operaciones de cambio de posición de los bytes y operaciones sobre el cuerpo finito GF(2 8 ). El tamaño de las entradas para el algoritmo Rijndael, tanto para el texto como para la clave varían entre 128 y 256 bits considerando un incremento de 32 bits. NIST solo estandarizó la versión con un tamaño de texto de 128 bits y un tamaño de clave de 128, 192 y 256 bits. El algoritmo Rijndael ha sido diseñado considerando un conjunto amplio de estrategias, las cuales presentan resistencia contra el criptoanálisis lineal y diferencial [9]. Dentro de las estrategias, el algoritmo emplea algunas iteraciones llamadas vueltas que están divididas en diferentes transformaciones, cada una con su propia funcionalidad. Se define el estado de un bloque de código como el resultado intermedio del proceso de encriptación. El estado es representado por un arreglo rectangular de bytes el cual siempre contiene 4 filas. El número de columnas es determinado por el tamaño del bloque: si el tamaño del bloque es N, el número de columnas N b es igual a N/32. El estado es inicializado considerando un texto plano en el orden a 0,0, a 1,0, a 2,0, a 3,0, a 0,1, a 0,2. Las vueltas son realizadas considerando transformaciones que operan sobre el estado. Por último, al final de las operaciones de encriptación, la salida o el texto encriptado es extraído del estado tomando los bytes del estado en el mismo orden. La clave usada en el algoritmo es similarmente mostrada como un arreglo rectangular de bytes con 4 filas, el número de columnas de la clave está determinado por N K y es igual al tamaño de la clave dividido por 32. Algunas veces la clave es presentada como un arreglo lineal de palabras de 4 bytes. En este caso, las palabras están distribuidas dentro de cada columna. El número de vueltas está descrito por N r y depende de

3 los valores de N b y N K. 2.1 Proceso de Encriptación El algoritmo de encriptación de Rijndael está compuesto por: Una transformación AddRoundKey N r -1 vueltas Una vuelta final Cada vuelta consta de 4 transformaciones, las cuales son: SubByte, ShiftRow, MixColumn y AddRoundKey. La vuelta final del algoritmo es ligeramente diferente, en ésta, la transformación MixColumn ha sido eliminada. La transformación SubByte es una sustitución no lineal de bytes, que opera sobre cada uno de los bytes del estado independientemente usando una tabla de sustitución o S- box. La transformación usa la misma S-box para todos los bytes [3]. En la transformación ShiftRow, la primera fila se mantiene constante mientras que las 3 ultimas filas del estado son rotadas dependiendo del número de columnas (N b ) que tenga el estado (4, 6, 8). La fila 2 es rotada a la izquierda una vez para cualquier número de columnas del estado; la fila 3 es rotada 2 veces a la izquierda para un estado de 4 y 6 columnas, y es rotada 3 veces a la izquierda para un estado de 8 columnas; y la fila 4 es rotada 3 veces a la izquierda para un estado de 4 y 6 columnas y es rotada 4 veces a la izquierda para un estado de 8 columnas. En la transformación MixColumn, las columnas N b del estado son transformadas por medio de una multiplicación usando una matriz fija. Las operaciones son llevadas a cabo dentro del cuerpo finito GF(2 8 ). En este caso la adición es realizada usando una simple XOR y la multiplicación no corresponde a la multiplicación estándar de enteros. En conjunto con la transformación ShiftRow, esta transformación asegura que después de unas pocas vueltas, todos los bits de salida dependen únicamente de los bits de entrada. La transformación final es la transformación AddRoundKey, en la cual se realiza una simple operación XOR entre la clave o subclaves y el último estado de cada vuelta. Este último estado es el estado siguiente después de haber realizado la transformación MixColumn excepto en la primera vuelta en la cual se realiza con el texto original. Cada una de las vueltas contiene N b palabras que son derivadas de la clave inicial por medio del cronograma de claves [3]. 2.2 Generación de las Subclaves La expansión de la clave es un arreglo lineal de palabras de 4 bytes, donde el número total de palabras generadas (44,52,60) esta determinado por la relación N b (N r +1). Las primeras N k (N k =4,6,8) palabras contienen la clave inicial, es decir los primeros 128, 192 y 256 bits. Todas las palabras siguientes son generadas recursivamente en términos de las palabras anteriores. Cuando las palabras de la clave inicial han sido usadas, todas las palabras siguientes W[i] se generan con la XOR de la palabra anterior W[i-1] y la palabra en la posición W[i-N k ]. Además, la generación de las palabras de las subclaves depende del valor de N k. Para palabras en posiciones que son un múltiplo de N k, se le aplica una transformación a W[i-1] antes de realizar la XOR con W[i-N k ]. Esta transformación está compuesta por: a) Una transformación llamada RotWord para la rotación de los bytes de la palabra. b) Una transformación SubWord, la cual aplica la S-box a todos los 4 bytes de la palabra, la transformación SubWord usa los mismos valores de la S-box que usa la transformación SubByte. c) Una transformación llamada Rcon, la cual es una XOR entre la palabra y algunos valores que depende de las palabras que se encuentran en posiciones que son múltiplo de N k. 2.3 Proceso de Desencriptación El algoritmo de desencriptación consiste en la aplicación de las transformaciones del algoritmo de encriptación en orden inverso para obtener el texto plano. Las transformaciones usadas para desencriptar son: InvShiftRow, InvSubByte, InvMixColumn y AddRoundKey. La vuelta final del algoritmo es ligeramente diferente por que se ha eliminado la transformación InvMixColum. La transformación InvAddRoundKey es la misma transformación AddRoundKey que fue descrita en el proceso de encriptación, ya que ésta solo involucra una aplicación de la operación XOR. La transformación InvMixColumn es la inversa de la transformación MixColumn. En la transformación InvMixColumn, las columnas N b del estado son transformadas por medio de una multiplicación usando una matriz fija. La transformación InvShiftRow es la inversa de la transformación ShiftRow. En la transformación InvShiftRow, la primera fila se mantiene constante mientras que las 3 ultimas filas del estado son rotadas dependiendo del número de columnas (N b ) que tenga el estado (4, 6, 8). La fila 2 es rotada a la derecha una vez para cualquier número de columnas del estado; la fila 3 es rotada 2 veces a la derecha para un estado de 4 y 6 columnas, y es rotada a la derecha 3 veces para un estado de 8 columnas; y la fila 4 es rotada 3 veces a la derecha para un estado de 4 y 6 columnas y es rotada a la derecha 4 veces para un estado de 8 columnas. La transformación InvSubByte es la inversa de la transformación SubByte. La transformación InvSubByte es una sustitución no lineal de bytes que opera sobre cada uno de los bytes del estado independientemente. La transformación InvSubByte usa la S-box inversa de la SubByte [3]. 3. ARQUITECTURAS HARDWARE PARA RIJNDAEL El algoritmo Rijndael puede ser implementado en hardware considerando diferentes arquitecturas tales como: Iterativa, Pipeline, SubPipeline y Loop unrolled [1][5]. En este trabajo son implementadas las arquitecturas Iterativa y Pipeline. En la Figura 1 se muestra un diagrama general de las arquitecturas Iterativa y Pipeline. Las otras dos arquitecturas no son presentadas en este trabajo, sin embargo, se puede mencionar que la arquitectura SubPipeline no es eficiente para implementar en hardware el algoritmo Rijndael debido a que cada una de las transformaciones realizadas en las vueltas toman diferentes tiempos, y de otro lado la arquitectura Loop Unroled comparada con la arquitectura Iterativa, no presenta un considerable incremento en el Throughput, sin embargo, el área que se requiere para esta implementación es casi 10 veces mayor que el área para la arquitectura Iterativa.

4 Implementación de la Transformación ShiftRow La transformación ShiftRow, realiza una serie de rotaciones de los bytes dentro de cada fila del estado. Su implementación en hardware consiste en la interconexión directa de las salidas de la transformación SubByte hasta las entradas de la transformación MixColumn. Esta transformación fue realizada directamente en la transformación SubByte mediante la asignación de señales, es decir asignando a cada byte de salida de la transformación SubByte el byte correspondiente de la rotación Implementación de la Transformación MixColumn Figura 1: Arquitecturas a) Iterativa b) Pipeline 3.1 Arquitectura Iterativa La arquitectura Iterativa implementada en hardware para el proceso de encriptación está conformada por los siguientes bloques funcionales [12]: Bloque AddRoundKey Bloque Round Bloque SubKey Bloque de la Unidad de Control Esta arquitectura recibe como entrada 128 bits de texto plano y 128 bits de clave, los cuales entran al primer bloque llamado AddRoundKey, el cual realiza una operación XOR entre el texto plano y la clave inicial. El segundo bloque se llama Round, el cual realiza la función de implementar las 10 vueltas del algoritmo de encriptación, donde la última vuelta (10) es ligeramente diferente de las primeras 9 vueltas debido a que no realiza la transformación MixColumn. El tercer bloque se llama SubKey, el cual se encarga de la generación de las subclaves que serán usadas en cada una de las vueltas del proceso de encriptación. El último bloque es la Unidad de Control, el cual se encarga de sincronizar y controlar las operaciones de todos los bloques anteriores Implementación del Bloque Round Para implementar el bloque Round se realizaron 2 diseños. El primer diseño permite trabajar como una vuelta regular del algoritmo (1 a 9), o como la última vuelta del algoritmo (10), la cual no realiza la transformación MixColumn. En este caso, se utilizó un multiplexor, el cual nos permite seleccionar entre la vuelta regular del algoritmo o la última vuelta del algoritmo. Para el segundo diseño, los datos que salen de la transformación SubByte y ShiftRow pasan directamente a la transformación MixColumn Implementación de la Transformación SubByte La implementación de la transformación SubByte se realizó usando 16 memorias ROMs de 256*8 bits, las cuales contienen el vector de inicialización con los valores de la S- box que son utilizadas en cada una de las vueltas del algoritmo para lograr la sustitución de los 128 bits en un solo ciclo. Para la transformación MixColumn se realizaron dos diseños, seleccionándose finalmente el mas optimo de acuerdo a la velocidad de encriptación. Para la primera implementación se diseñó un multiplicador llamado X2-X3. Este multiplicador realiza la multiplicación de un byte por 2 y por 3 dentro del cuerpo finito GF(2 8 ). En este caso, para la implementación de la transformación Mixcolumn se requieren 16 multiplicaciones por 2 y 16 multiplicaciones por 3, así como también 48 operaciones XOR. El circuito para realizar la transformación MixColumn para 16 bytes emplea 4 módulos de la transformación MixColumn para 4 bytes. Para la segunda implementación de la transformación MixColumn, se realizó un multiplicador diferente, el cual solo realiza la multiplicación por 2 dentro del cuerpo finito GF(2 8 ), este multiplicador fue llamado Xtime [3]. En este caso para la implementación de la transformación Mixcolumn, se requieren 16 multiplicaciones por 2, así como tamb ién 60 operaciones XOR. La transformación MixColumn es solamente para 4 bytes por lo tanto el circuito para realizar la transformación MixColumn para 16 bytes emplea 4 de estos módulos Implementación del Bloque Subkey: Generación de las SubClaves La generación de las subclaves se lleva a cabo en el bloque SubKey. El bloque SubKey está conformado por la secuencia de las siguientes transformaciones: Transformación SubWord Transformación RotWord Transformación Rcon Implementación de la Transformación SubWord Para la implementación de la transformación SubWord se utilizan 4 memorias ROMs como las utilizadas en la transformación SubByte. La diferencia entre estas dos transformaciones es que la transformación SubWord solo utiliza 4 memorias ROMs mientras que la transformación SubByte utiliza 16 memorias ROMs Implementación de la Transformación RotWord La implementación de la transformación RotWord se realizó de manera similar a la implementación de la transformación ShiftRow en el proceso de encriptación, con la diferencia que la transformación RotWord solo actúa sobre 4 bytes y no sobre 16 bytes como en la transformación ShiftRow.

5 Implementación de la Transformación Rcon La transformación Rcon utiliza una memoria ROM de 10x8 bits. Cada vez que se va a generar una nueva subclave, la transformación Rcon accesa a la memoria ROM y toma el dato indicado de acuerdo a la vuelta que se esta ejecutando y realiza la operación XOR con el resultado de la transformación RotWord Implementación de la Unidad de Control La Unidad de Control se realizó diseñando una máquina de estados FSM, la cual se encarga de controlar cada uno de los bloques que conforman el algoritmo Rijndael, asignando en cada ciclo de reloj el dato adecuado para la transformación Rcon del bloque SubKey y seleccionando la vuelta que se debe realizar. En la Tabla 1 se muestra la tabla de estados de la FSM. En este caso, en cada estado la FSM controla la transferencia de las entradas correspondientes para cada bloque. En el estado S0 se controlan las entradas a la transformación AddRoundKey (el texto plano y la clave) y la entrada para la generación de las subclaves en el bloque SubKey (clave inicial); en el estado S1, las salidas de los dos bloques anteriores son conectadas a la entrada del bloque Round. Desde el estado S2 hasta el estado S10 se realiza la realimentación del bloque Round y el bloque SubKey, variando únicamente las señales AS, las cuales son los datos de la transformación Rcon; y en el estado S10 se activa la señal SELR, la cual permite seleccionar la última vuelta del algoritmo. Estado Señales Estado Señales S0 AS=0000 S6 AS=0110 S1 AS=0001 S7 AS=0111 S2 AS=0010 S8 AS=1000 S3 AS=0011 S9 AS=1001 S4 AS=0100 S10 SELR=1 S5 AS=0101 S11 READY=1 Tabla 1: Tabla de Estados de la FSM para la Arquitectura Iterativa de Encriptación 3.2 Arquitectura Pipeline La arquitectura Pipeline implementada en hardware para el proceso de encriptación está conformada por los siguientes bloques funcionales [12]: Bloque AddRoundKey Bloque Registro Bloque Round (1-9) Bloque Round Final (10) Bloque SubKey Bloque de la Unidad de Control Esta arquitectura recibe un bloque de 128 bits de texto plano y 128 bits de clave, los cuales entran al primer bloque llamado AddRoundKey, el cual realiza una operación XOR entre el texto plano y la clave inicial. El segundo bloque es un Registro, el cual se encarga de almacenar el dato de salida del bloque AddRoundKey para ser posteriormente capturado por el bloque Round. El tercer bloque se llama Round, en el cual se implementan las primeras 9 vueltas del algoritmo. El cuarto bloque se llama Round Final el cual realiza la vuelta final del algoritmo. El quinto bloque se llama SubKey, en el cual se generan las subclaves que serán usadas en cada una de las vueltas del proceso de encriptación. El último bloque es la Unidad de Control, el cual se encarga de sincronizar y controlar las operaciones de todos los bloques anteriores Implementación del Bloque Round El bloque Round, está conformado por los siguientes bloques funcionales, los cuales realizan la misma función que en la Arquitectura Iterativa y por lo tanto no se explicarán en esta sección: Bloque SubByte y ShiftRow Bloque MixColumn Bloque AddRoundKey Implementación del Bloque Round Final El bloque Round Final, está conformado por los siguientes bloques funcionales, los cuales realizan la misma función que en la Arquitectura Iterativa y por lo tanto no se explicarán en esta sección: Bloque SubByte y ShiftRow Bloque AddRoundKey Implementación de la Unidad de Control La Unidad de Control se realizó diseñando una máquina de estados FSM, la cual genera señales hacia todos los bloques, de tal forma que en cada estado estas señales son asignadas como las entradas para los 10 bloques Round, 10 bloques SubKey y para los 11 Registros. En la Tabla 2 se muestra la tabla de estados de la FSM. La forma de implementar el comportamiento Pipeline es detectando el cambio de las señales de entrada de los registros o el cambio en las señales de salida de los bloques Round. Cada vez que se detecta un cambio en la señal de entrada de los registros es por que hay un dato nuevo para el siguiente bloque combinatorio Round, éste captura el nuevo dato de entrada y genera el resultado, en ese instante se detecta un dato nuevo en la salida del bloque combinatorio lo que genera el almacenamiento de un nuevo dato en el siguiente registro y esto funciona como una cadena desde el primer estado hasta el décimo estado, el cual genera el dato encriptado. Debido a que en la entrada del sistema existe un dato nuevo para cada ciclo de reloj, entonces es posible procesar un dato en cada ciclo de reloj, una vez el primer dato de entrada ha llegado a la salida del sistema; esta operación marca la diferencia con la arquitectura Iterativa que para procesar cada uno de los datos se requerían 10 ciclos de reloj, mientras que en la arquitectura Pipeline el primer dato se va a demorar 10 ciclos de reloj, sin embargo los siguientes datos son procesados en cada ciclo. De esta forma se logra un Throughput 10 veces mayor que el Throughput para la Arquitectura Iterativa.

6 Estado Señales Estado Señales S0 S1 S2 S3 S4 S5 AS0=0000 AS1=0001 AS2=0010 AS3=0011 AS4=0100 AS5=0101 AS6=0110 AS7=0111 AS8=1000 AS9=1001 S6 S7 S8 S9 S10 S11 AS0=0000 AS1=0001 AS2=0010 AS3=0011 AS4=0100 AS5=0101 AS6=0110 AS7=0111 AS8=1000 AS9=1001 READY=1 Tabla 2: Tabla de Estados de la FSM para la Arquitectura Pipeline 4. RESULTADOS DE SIMULACION PARA EL ALGORITMO RIJNDAEL En esta sección se presentan los resultados de simulación para las arquitecturas Iterativa y Pipeline, así como también se presenta una comparación entre los resultados obtenidos en este trabajo y los encontrados en la literatura. 4.1 Resultados de Simulación para la Arquitectura Iterativa Simulaciones para el Proceso de Encriptación En la Figura 2 se muestra el texto encriptado ( d02dc09fbdc a0b32) para un texto plano de 128 bits (3243f6a8885a308d313198a2e ) usando la clave de 128 bits (2b7e151628aed2a6abf cf4f3c). En este caso, la arquitectura usa el multiplexor MuxDato en el bloque Round y para la compilación se considera el parámetro de velocidad. Los resultados de simulación para la encriptación de la arquitectura iterativa del algoritmo Rijndael son presentados en la Tabla 3: Desde la Tabla 3 podemos observar que el mayor Throughput y la menor Área se obtuvieron para la arquitectura implementada con MuxDato optimizada para velocidad y para área respectivamente. Celdas Lógicas I/O Pines Velocidad Con Sin MuxDato MuxDato (15%) (18%) (81%) (81%) Área Con Sin MuxDato MuxDato (13%) (15%) (81%) (81%) EABs 21 (87%) 21 (87%) 21 (87%) 21 (87%) Bits de Memoria (41%) (41%) (41%) (41%) Fmáx Clk 16.6 ns 16.8 ns 19.8 ns 17 ns Ciclos End time ns ns ns ns Throughput Tabla 3: Resultados de Simulación de la Encriptación para la Arquitectura Iterativa Simulaciones para el Proceso de Desencriptación En la Figura 3 se muestra el texto desencriptado (3243f6a8885a308d313198a2e ) para un texto encriptado de 128 bits ( d02dc09fbdc a0b32) usando la clave de 128 bits (2b7e151628aed2a6abf cf4f3c). En este caso, la arquitectura usa el multiplexor MuxDato en el bloque InvRound y para la compilación se considera el parámetro de velocidad. Figura 2: Resultado de Simulación de la Encriptación para la Arquitectura Iterativa

7 Figura 3: Resultado de Simulación de la Desencriptación para la Arquitectura Iterativa Los resultados de simulación para la desencriptación de la arquitectura iterativa del algoritmo Rijndael son presentados en la Tabla 4: Celdas Lógicas I/O Pines 386 (81%) Velocidad Con Sin MuxDato MuxDato (25%) (30%) 386 (81%) Área Con Sin MuxDato MuxDato (18%) (27%) 386 (81%) 386 (81%) EABs 21 (87%) 21 (87%) 21 (87%) 21 (87%) Bits de Memoria Fmáx (41%) (41%) (41%) (41%) Clk 21.5 ns 22 ns 23.9 ns 22.4 ns Ciclos End time ns ns ns 267 ns Throughput Desde la Tabla 4 podemos observar que el mayor Throughput y la menor Área se obtuvieron para la arquitectura implementada con MuxDato optimizada para velocidad y para área respectivamente. 4.2 Resultados de Simulación para la Arquitectura Pipeline Simulaciones para el Proceso de Encriptación En la Figura 4 se muestra el primer texto encriptado ( d02dc09fbdc a0b32) para un texto plano de 128 bits (3243f6a8885a308d313198a2e ) usando la clave de 128 bits (2b7e151628aed2a6abf cf4f3c). En este caso, solo se muestra el primer texto encriptado debido a que la ventana de simulación no permite mostrar los 10 textos encriptados. Los resultados de simulación para la encriptación de la arquitectura Pipeline del algoritmo Rijndael son presentados en la Tabla 5: Tabla 4: Resultados de Simulación de la Desencriptación para la Arquitectura Iterativa Figura 4: Resultado de Simulación de la Encriptación para la Arquitectura Pipeline

8 Velocidad Área Celdas Lógicas 4205 (6%) 4100 (6%) I/O Pines 385 (71%) 385 (71%) ESBs 105 (%) 105 (%) Bits de Memoria (35%) (35%) Fmáx Clk ns ns Ciclos End time ns ns Throughput 9.27 Gbps 8.39 Gbps Tabla 5: Resultados de Simulación de la Encriptación para la Arquitectura Pipeline Desde la Tabla 5 podemos observar que el Throughput es del orden de Gigabits y que este valor es muy superior al obtenido para la arquitectura Iterativa. El mayor Throughput se obtuvo para la implementación que considera el parámetro de velocidad Simulaciones para el Proceso de Desencriptación En la Figura 5 se muestra el primer texto desencriptado (3243f6a8885a308d313198a2e ) para un texto encriptado de 128 bits ( d02dc09fbdc a0b32) usando la clave de 128 bits (2b7e151628aed2a6abf cf4f3c). En este caso la clave mostrada (d014f9a8c9ee2589e13f0cc8b6630ca6) es la última subclave generada en el proceso de encriptación con la cual se inicia el proceso de desencriptación. En este caso, solo se muestra el primer texto desencriptado debido a que la ventana de simulación no permite mostrar los 10 textos desencriptados. Los resultados de simulación para la desencriptación de la arquitectura Pipeline del algoritmo Rijndael son presentados en la Tabla 6: Velocidad Área Celdas Lógicas 8243 (12%) 7660 (11%) I/O Pines 385 (71%) 385 (71%) ESBs 105 (%) 105 (%) Bits de Memoria (35%) (35%) Fmáx Clk ns ns Ciclos End time ns ns Throughput 5.57 Gbps 5.53 Gbps Tabla 6: Resultado de Simulación de la Desencriptación para la Arquitectura Pipeline Desde la Tabla 6 podemos observar que el mayor Throughput se obtuvo para la implementación que considera el parámetro de velocidad y que éste tiene una variación muy pequeña comparado con el del parámetro de área, lo mismo ocurre con las celdas lógicas. 4.3 Comparación de Resultados Con el propósito de comparar los diferentes resultados obtenidos en este trabajo y los resultados presentados por otros investigadores, en la Tabla 7 se muestran en detalle los resultados presentados en diferentes plataformas de hardware y software. Desde la Tabla 7 podemos observar que las implementaciones realizadas en hardware presentan una ventaja significativa en el Throughput con respecto a los resultados obtenidos en las implementaciones realizadas en software. También se observa que la arquitectura Pipeline presenta un mayor Throughput que la arquitectura Iterativa. Con respecto a los resultados obtenidos en este trabajo se puede decir que son altamente satisfactorios, tanto para la arquitectura Iterativa como para la Pipeline. En realidad estos resultados son mejores debido a que usamos ciertas ventajas que presentan algunas transformaciones del algoritmo Rijndael para implementarlas en hardware, así como tambien hemos usado una mejor herramienta de síntesis y simulación (Quartus II de Altera) para dispositivos FPGAs. Figura 5: Resultado de Simulación de la Desencriptación para la Arquitectura Pipeline

9 Autor [1] Encriptación Desencriptación Throughput () CLs Throughput Plataforma () CLs Código VHDL sobre una FPGA Xilinx virtex XCV1000BG * [4] Código VHDL sobre una FPGA Altera EPF10K250AGC599-1 [5] Código VHDL sobre una FPGA Xilinx virtex XCV1000BG560-6 [6] * Código VHDL sobre un asic 0.5µm [7] Código VHDL sobre una FPGA Altera EPF10K250AGC599-1 [8] Código VHDL sobre una FPGA Altera EPF10K130EQC240-1 [10] Código C, trabajando en un Pentium Pro 200 [11] Código C, trabajando en un Celeron 850 ** Código VHDL sobre una FPGA Altera EPF10K250SBC * * 8243 Código VHDL sobre una FPGA Altera EP2A70B724C7 *Resultados obtenidos en arquitecturas Pipeline. **Resultados obtenidos en este trabajo. Tabla 7: Comparación de Resultados para Diferentes Implementaciones en Software y Hardware 5. CONCLUSIONES Y TRABAJO FUTURO Este trabajo presenta una descripción detallada del diseño de dos arquitecturas hardware para el algoritmo de encriptación Rijndael, las cuales fueron diseñadas usando dispositivos lógicos programables y el lenguaje VHDL. Las arquitecturas Iterativa y Pipeline fueron compiladas sobre los dispositivos EPF10K200SBC600-1 y EP2A70B724C7 respectivamente. En este caso, se debe tener en cuenta que las arquitecturas implementadas han sido realizadas en modo no realimentado, es decir, que solo se encripta un bloque de texto de 128 bits usando una clave de 128 bits. Es importante resaltar que diferentes resultados fueron obtenidos, los cuales son presentados en las siguientes conclusiones: Las implementaciones en hardware presentan una ventaja significativa en el Throughput con respecto a los resultados obtenidos en las implementaciones en software. La arquitectura Pipeline presenta un mayor Throughput que la arquitectura Iterativa debido a que la arquitectura Pipeline permite procesar bloques de texto plano en paralelo. Sin embargo, no es posible utilizar una arquitectura Pipeline para modos de operación realimentados, debido a que para el modo de operación realimentado no es posible comenzar a encriptar el siguiente bloque de texto hasta que la encriptación del bloque anterior se haya terminado. Estos modos de operación realimentados están siendo utilizados actualmente debido a que permiten alcanzar una mayor seguridad, pero si tenemos en cuenta la gran seguridad que ofrece el algoritmo Rijndael, no es tan necesario usar el modo realimentado. Existe una gran diferencia para los valores de los parámetros Throughput y Área en los procesos de encriptación y desencriptación para la arquitectura Pipeline. El proceso de desencriptación utiliza casi el doble de celdas lógicas que el proceso de encriptación, por esta razón el parámetro Throughput presenta una diferencia del 39% entre los dos procesos. Para la arquitectura Iterativa esta diferencia es del 21%. Los resultados obtenidos para el Throughput en las arquitecturas Iterativa y Pipeline superan a los presentados en la literatura. El área utilizada para la implementación de la arquitectura Pipeline es realmente poca si comparamos ésta con respecto al área obtenida por la arquitectura Iterativa. Con respecto al trabajo futuro, las principales tareas a realizar son: Realizar los diseños presentados usando la combinación de captura esquemática y VHDL, con lo cual se podrían alcanzar mejores resultados que los obtenidos usando solo el lenguaje VHDL. Extender el tamaño del bloque de clave a 192 y 256 bits. Sin embargo se debe tener en cuenta que para el caso de tamaños de clave de 256 bits el proceso es un poco mas complicado, ya que el algoritmo Rijndael realiza un proceso mas complejo en la generación de las subclaves, pero este cambio sería únicamente en el bloque SubKey (Generación de las Subclaves). Diseñar el hardware necesario para realizar el proceso de encriptación y desencriptación de un texto completo. Es decir, realizar la máquina de estados que permita coordinar y controlar la adquisición de los bloques de 128 bits del texto completo. Realizar una implementacion en hardware del algoritmo Rijndael para el modo realimentado, en este caso, se debe realizar una máquina de estados que permita realizar la operación XOR entre el texto encriptado y el nuevo texto plano. Finalmente, la principal tarea para el futuro es diseñar un criptoprocesador de alto desempeño para el algoritmo Rijndael.

10 6. BIBLIOGRAFÍA [1] A. Elbirt, W. Yip, B. Chetwynd, C. Paar, "An FPGA-Based Performance Evaluation of the AES Block Cipher Candidate Algorithm Finalists", cuments/aelbirtpaarieeetranvls.pdf [2] NIST. AES Round 2 Information, hms [3] NIST. FIPS-197, [4] P. Mroczkowski, Implementation of the block cipher Rijndael using Altera FPGA, ments/ pmroczkowski.pdf [5] K. Gaj y P. Chodowiec, Comparison of the hardware performance of the AES candidates using reconfigurable hardware, 3/papers/22-kgaj.pdf [6] NSA, Hardware Performance Simulations of Round 2 Advanced Encryption Standard Algorithms, A-AESfinalreport.pdf [7] M. Barcelos, A. Panato y R. Reis, Um IP Criptografia padrao Rijndael para projetos em FPGA, [8] V. Fisher, Realization of the Round 2 Candidates using Altera FPGA, nf3/papers/24-vfischer.pdf [9] lockciphers.html [10] B. Gladman,, AES Algorithm Efficiency, ology/aes [11] W. Dai, Speed Comparation of Popular CryptoAlgorithms, ml [12] G. Jácome-Calderón, Implementación en Hardware del Algoritmo Rijndael, Tesis de Pregrado, Escuela EIEE, Universidad del Valle, Cali, Colombia, 2003.

IMPLEMENTACIÓN EN HARDWARE DEL ALGORITMO SERPENT. Fredy Morales-Castro, Jaime Velasco-Medina, Julio C. López-Hernandez*

IMPLEMENTACIÓN EN HARDWARE DEL ALGORITMO SERPENT. Fredy Morales-Castro, Jaime Velasco-Medina, Julio C. López-Hernandez* IMPLEMENTACIÓN EN HARDWARE DEL ALGORITMO SERPENT Fredy Morales-Castro, Jaime Velasco-Medina, Julio C. López-Hernandez* Grupo de Bioelectrónica y Nanoelectrónica, Escuela EIEE *Escuela EISC, Universidad

Más detalles

Implementación Hardware del Estandar de Encriptación Avanzado (AES) en una FPGA

Implementación Hardware del Estandar de Encriptación Avanzado (AES) en una FPGA Implementación Hardware del Estandar de Encriptación Avanzado (AES) en una FPGA Jorge Alberto Celi Méndez, Ing. Ronald Alberto Ponguillo Intriago Facultad de Ingeniería en Electricidad y Computación Escuela

Más detalles

DISEÑO DE MULTIPLICADORES PARALELOS DE 16 BITS EN FPGAS. Gustavo E. Ordóñez-Fernández, Lewin A. López-López, Jaime Velasco-Medina

DISEÑO DE MULTIPLICADORES PARALELOS DE 16 BITS EN FPGAS. Gustavo E. Ordóñez-Fernández, Lewin A. López-López, Jaime Velasco-Medina DISEÑO DE MULTIPLICADORES PARALELOS DE 16 BITS EN FPGAS Gustavo E. Ordóñez-Fernández, Lewin A. López-López, Jaime Velasco-Medina Grupo de Bioelectrónica y Nanoelectrónica, EIEE, Universidad del Valle A.A.

Más detalles

4.5. Procedimiento de síntesis

4.5. Procedimiento de síntesis 4.5. Procedimiento de síntesis En este apartado se resumen los pasos a seguir para completar la implementación de un sistema digital en un dispositivo programable: descripción del sistema mediante uno

Más detalles

MULTIPLICADOR NXN DE ALTO THROUGHPUT PARA FPGAS

MULTIPLICADOR NXN DE ALTO THROUGHPUT PARA FPGAS MULTIPLICADOR NXN DE ALTO THROUGHPUT PARA FPGAS Mario Vera-Lizcano, Jaime Velasco-Medina Grupo de Bio-Nanoelectrónica, EIEE, Universidad del Valle A.A. 2536, Cali, Colombia mario, jvelasco@univalle.edu.co

Más detalles

Simulaciones y resultados

Simulaciones y resultados Capítulo 6 Simulaciones y resultados En este capítulo se incluyen simulaciones del funcionamiento del WEP y la técnica FCICT utilizando la interfase visual creada en MATLAB. La primera simulación consiste

Más detalles

Criptografía y Seguridad de Datos Introducción a la Criptografía: Confidencialidad de los mensajes

Criptografía y Seguridad de Datos Introducción a la Criptografía: Confidencialidad de los mensajes Criptografía y Seguridad de Datos Introducción a la Criptografía: Confidencialidad de los mensajes Carlos Figueira. Carlos Figueira. Universidad Simón Bolívar Basado en láminas del Profesor Henric Johnson

Más detalles

Diseño de un Procesador para el Alineamiento Global de Secuencias de DNA

Diseño de un Procesador para el Alineamiento Global de Secuencias de DNA Diseño de un Procesador para el Alineamiento Global de Secuencias de DNA Martin A. Lozano, Jaime Velasco-Medina Grupo de Bio-nanoelectrónica EIEE, Universidad del Valle, A.A. 25360, Cali, Colombia E-mail:

Más detalles

EXPANSIÓN DE LA CLAVE EN RIJNDAEL: DISEÑO Y OPTIMIZACIÓN EN VHDL

EXPANSIÓN DE LA CLAVE EN RIJNDAEL: DISEÑO Y OPTIMIZACIÓN EN VHDL EXPANSIÓN DE LA CLAVE EN RIJNDAEL: DISEÑO Y OPTIMIZACIÓN EN VHDL Juan Carlos Bonadero Laboratorio Alta Frecuencia (LAF) Facultad de Ingeniería. U.N.M.D.P. jbona@fi.mdp.edu.ar Oscar Norberto Bria Instituto

Más detalles

Bloques Aritméticos - Multiplicadores

Bloques Aritméticos - Multiplicadores Bloques Aritméticos - Multiplicadores La multiplicación es una operación cara (en términos de recursos) y lenta Este hecho ha motivado la integración de unidades completas de multiplicación en los DSPs

Más detalles

Diseñando Hardware a la Medida con el Módulo de LabVIEW FPGA. ni.com/fpga

Diseñando Hardware a la Medida con el Módulo de LabVIEW FPGA. ni.com/fpga Diseñando Hardware a la Medida con el Módulo de LabVIEW FPGA Agenda Beneficios de los FPGAs para Sistemas de Medición y Control Programando FPGAs con LabVIEW Aplicaciones Recursos 3 Qué es un FPGA? Interconexiones

Más detalles

Curso a Distancia INTRODUCCIÓN AL DISEÑO DIGITAL CON VHDL Y LÓGICA PROGRAMABLE. Ing. Arturo J. Miguel de Priego Paz Soldán.

Curso a Distancia INTRODUCCIÓN AL DISEÑO DIGITAL CON VHDL Y LÓGICA PROGRAMABLE. Ing. Arturo J. Miguel de Priego Paz Soldán. Curso a Distancia INTRODUCCIÓN AL DISEÑO DIGITAL CON VHDL Y LÓGICA PROGRAMABLE Ing. Arturo J. Miguel de Priego Paz Soldán www.tourdigital.net Chincha, Perú 30 de octubre de 2008 Capítulo 4 DESCODIFICADORES

Más detalles

Semana 12: Encriptación. Criptografía

Semana 12: Encriptación. Criptografía Semana 12: Encriptación Criptografía Aprendizajes esperados Contenidos: Conceptos básicos de criptografía Tipos de cifradores Cifrado de bloques Conceptos básicos Un mensaje en su estado original consiste

Más detalles

Descripción en VHDL de circuitos aritméticos para campos finitos GF(2 m )

Descripción en VHDL de circuitos aritméticos para campos finitos GF(2 m ) Descripción en VHDL de circuitos aritméticos para campos finitos GF(2 m ) Presenta: Mario Alberto García-Martínez 1 Contenido Introducción Generalidades El exponenciador para GF(2 m ) El multiplicador

Más detalles

Estudio del impacto de implementaciones de operadores aritméticos en dispositivos lógicos programables FPGA

Estudio del impacto de implementaciones de operadores aritméticos en dispositivos lógicos programables FPGA Estudio del impacto de implementaciones de operadores aritméticos en dispositivos lógicos programables FPGA Marino, Ariel Alberto Grupo de Investigación y Servicios en Electrónica y Control Facultad Regional

Más detalles

Introducción a VHDL. Sistemas digitales UTM-2006 JJVS

Introducción a VHDL. Sistemas digitales UTM-2006 JJVS Introducción a VHDL Sistemas digitales UTM-2006 JJVS Surgimiento de VHDL Necesidad de nuevos métodos ya que los clásicos (esquemáticos), llegan a ser ineficientes en diseños de altas escalas de integración.

Más detalles

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE 1 SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE tiempo de acceso RAM, algunas veces se usa cerrojo en el Juan Manuel Narváez Sánchez, Carlos Andrés Moreno Tenjica, Estudent Member IEEE

Más detalles

Bloques funcionales combinacionales. Bloques para el encaminamiento y/o transferencia de datos

Bloques funcionales combinacionales. Bloques para el encaminamiento y/o transferencia de datos Bloques para el encaminamiento y/o transferencia de datos Multiplexor Demultiplexor Decodificador Codificador Bloques para el procesamiento de datos Comparador Bloques para la generación de funciones booleanas

Más detalles

SISTEMAS ELECTRÓNICOS DIGITALES

SISTEMAS ELECTRÓNICOS DIGITALES SISTEMAS ELECTRÓNICOS DIGITALES PRÁCTICA 6 SISTEMA DE ENCRIPTACIÓN 1. Objetivos - Estudio del funcionamiento de memorias RAM y CAM. - Estudio de métodos de encriptación y compresión de datos. 2. Enunciado

Más detalles

placas de prototipado (i) Material docente en los laboratorios de la Facultad de Informática Diseño Automático de Sistemas

placas de prototipado (i) Material docente en los laboratorios de la Facultad de Informática Diseño Automático de Sistemas 1 Material docente en los laboratorios de la Facultad de Informática Diseño Automático de Sistemas José Manuel Mendías Cuadros Dpto. Arquitectura de Computadores y Automática Universidad Complutense de

Más detalles

Filtrado de imágenes usando hardware dedicado

Filtrado de imágenes usando hardware dedicado Filtrado de imágenes usando hardware dedicado Acosta Nelson & Tosini Marcelo INCA/INTIA Depto. Computación y Sistemas Fac. Cs. exactas UNCPBA (7000) Tandil Argentina Email: { nacosta, mtosini }@exa.unicen.edu.ar

Más detalles

Introducción a los Procesadores. Por: Carlos A. Fajardo

Introducción a los Procesadores. Por: Carlos A. Fajardo Introducción a los Procesadores Por: Carlos A. Fajardo cafajar@uis.edu.co Revisado Septiembre de 213 Clasificación de los procesadores Sistemas Digitales Profesor: Carlos Fajardo 2 Sistemas Digitales Profesor:

Más detalles

4.1. Circuitos Digitales Configurables

4.1. Circuitos Digitales Configurables 4.1. Circuitos Digitales Configurables Los circuitos digitales configurable son sistemas electrónicos digitales cuya función se puede modificar utilizando solamente una parte de los elementos que los componen

Más detalles

Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales

Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales EL-611 Complemento de Diseño Lógico y Objetivos y Evaluación Segundo Curso de Sistemas Digitales Complementar Materia Enfoque Diseños de Mayor Envergadura 1 Control + Examen y 6 Ejercicios (aprox.) Tareas

Más detalles

Análisis, Estudio e Implementación de Divisores Paralelos y Secuenciales de 16 bits Usando FPGAs

Análisis, Estudio e Implementación de Divisores Paralelos y Secuenciales de 16 bits Usando FPGAs Análisis, Estudio e Implementación de Divisores Paralelos y Secuenciales de 16 bits Usando FPGAs John Michael Espinosa-Duran, Jaime Velasco-Medina, Mario E. Vera-Lizcano Grupo de Bio-Nanoelectrónica, Escuela

Más detalles

Introducción al Diseño Digital con FPGAs.

Introducción al Diseño Digital con FPGAs. Introducción al Diseño Digital con FPGAs www.emtech.com.ar Temario del curso Dia 1: Introducción y ejemplo practico paso a paso Dia 2: VHDL, flujo de diseño y otro ejemplo Dia 3: Detalles de diseño e implementacion

Más detalles

Introducción a LabVIEW FPGA. Juan Gil

Introducción a LabVIEW FPGA. Juan Gil Introducción a LabVIEW FPGA Juan Gil National Instruments Tecnología FPGA Bloques de Memoria Almacene conjuntos de datos o valores en RAM definida por el usuario Bloques de Lógica Configurables (CLBs)

Más detalles

Objetivos. Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica I SEMESTRE 2007. Contenido del Curso EL FLUJO DE DISEÑO O DIGITAL

Objetivos. Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica I SEMESTRE 2007. Contenido del Curso EL FLUJO DE DISEÑO O DIGITAL Objetivos OBJETIVO GENERAL Laboratorio de Diseño o de Sistemas Digitales EL-3312 Diseñar, simular, sintetizar e implementar sistemas digitales usando lenguajes de alto nivel para la descripción de hardware

Más detalles

Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal

Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal www.emtech.com.ar Temario Introducción Circuitos Digitales FPGAs Flujo y Herramientas de Diseño Diseño para Síntesis Simulación

Más detalles

DISEÑO DE UN PROCESADOR CRIPTOGRÁFICO RIJNDAEL EN FPGA

DISEÑO DE UN PROCESADOR CRIPTOGRÁFICO RIJNDAEL EN FPGA DISEÑO DE UN PROCESADOR CRIPTOGRÁFICO RIJNDAEL EN FPGA Alejandro Segredo asegredo@bloomberg.net Enrique Zabala ezabala@adinet.com.uy Gustavo Bellora bellora@ort.edu.uy Facultad de Ingeniería. Bernard Wand-Polak.

Más detalles

Implementación del algoritmo Threefish-256 en hardware reconfigurable

Implementación del algoritmo Threefish-256 en hardware reconfigurable Implementación del algoritmo Threefish-256 en hardware reconfigurable Threefish-256 algorithm implementation on reconfigurable hardware Nathaly Nieto-Ramírez Ing. Electrónica, Investigador Grupo de Arquitecturas

Más detalles

Electrónica Digital II. Arquitecturas de las Celdas Lógicas. Octubre de 2014

Electrónica Digital II. Arquitecturas de las Celdas Lógicas. Octubre de 2014 Electrónica Digital II Arquitecturas de las Celdas Lógicas Octubre de 2014 Estructura General de los FPLDs Un FPLD típico contiene un número de celdas dispuestas en forma matricial, en las cuales se pueden

Más detalles

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA NOMBRE DE LA ASIGNATURA: BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA PROGRAMA DE ESTUDIOS DE LA MAESTRÍA EN INGENIERÍA ELECTRÓNICA CON OPCIÓN EN INSTRUMENTACIÓN DIGITAL

Más detalles

Capítulo 9. Implementación en VHDL y síntesis en FPGA

Capítulo 9. Implementación en VHDL y síntesis en FPGA Capítulo 9 Implementación en VHDL y síntesis en FPGA El objetivo final del proyecto es implementar una selección de los métodos de estimación espectral descritos en el equipo final de resonancia magnética,

Más detalles

Sistema de Gestión de Aplicaciones Implementadas en FPGAs

Sistema de Gestión de Aplicaciones Implementadas en FPGAs Sistema de Gestión de Aplicaciones Implementadas en FPGAs Ledo Bañobre, R. 1, Losada Sampayo, A. 1, Álvarez Ruiz de Ojeda, J. 1 1 Departamento de Tecnología Electrónica, Escuela Técnica Superior de Ingenieros

Más detalles

Programación Automática de FPGAs desde lenguajes de alto nivel para aplicaciones multimedias

Programación Automática de FPGAs desde lenguajes de alto nivel para aplicaciones multimedias Programación Automática de FPGAs desde lenguajes de alto nivel para aplicaciones multimedias Depto. de Ingeniería y Ciencia de los Computadores. Grupo de Arquitectura Avanzada de Computadores y Computación

Más detalles

Sistemas Digitales Trabajo Práctico 2. Voltímetro digital con salida VGA

Sistemas Digitales Trabajo Práctico 2. Voltímetro digital con salida VGA Sistemas Digitales - 66.17 Trabajo Práctico 2 Voltímetro digital con salida VGA Sistemas Digitales - 66.17 Facultad de Ingeniería - UBA 2 1. Objetivo El objetivo del presente Trabajo Práctico consiste

Más detalles

Sistemas Electrónicos Digitales. PRACTICA nº 3

Sistemas Electrónicos Digitales. PRACTICA nº 3 PRACTICA nº 3 Diseño top-down estructural y síntesis de un procesador dedicado elemental para resolver el cálculo del máximo común divisor (MCD) de dos números sin signo Objetivos: Análisis, diseño y síntesis

Más detalles

10 CRIPTOGRAFÍA, PROTECCIÓN DE DATOS Y APLICACIONES c RA-MA

10 CRIPTOGRAFÍA, PROTECCIÓN DE DATOS Y APLICACIONES c RA-MA ÍNDICE PRÓLOGO................................................... 27 CAPÍTULO 1. INTRODUCCIÓN A LA CRIPTOGRAFÍA.. 29 1.1. IDEAS BÁSICAS Y CONCEPTOS GENERALES....... 29 1.2. SUSTITUCIÓN Y TRANSPOSICIÓN.............

Más detalles

Criptografía. Diplomado- TI (2) Criptografía. Diplomado-TI (2) 9 de enero de 2012

Criptografía. Diplomado- TI (2) Criptografía. Diplomado-TI (2) 9 de enero de 2012 9 de enero de 2012 Simetrías y Asimetrías Para generar una transmisión segura de datos, debemos contar con un canal que sea seguro, esto es debemos emplear técnicas de forma que los datos que se envían

Más detalles

Microcontroladores y FPGA para el Desarrollo de Sistemas Embebidos

Microcontroladores y FPGA para el Desarrollo de Sistemas Embebidos Microcontroladores y FPGA para el Desarrollo de Sistemas Embebidos Ing. José Manuel Vólquez Ingeniero de Aplicaciones National Instruments de México La Esencia de las Plataformas Embebidas Sistema Integrado

Más detalles

Lab 6. Cuádruple registro de 16 bits y 3 puertos E/S

Lab 6. Cuádruple registro de 16 bits y 3 puertos E/S Lab 6 Cuádruple registro de 16 bits y 3 puertos E/S Objetivo: Codificar en VHDL y verificar el funcionamiento de un registro de cuatro palabras y de las operaciones de lectura y escritura sobre el mismo.

Más detalles

Planificaciones Sistemas Digitales. Docente responsable: ALVAREZ NICOLAS. 1 de 5

Planificaciones Sistemas Digitales. Docente responsable: ALVAREZ NICOLAS. 1 de 5 Planificaciones 8641 - Sistemas Digitales Docente responsable: ALVAREZ NICOLAS 1 de 5 OBJETIVOS El objetivo de la materia es aprender a diseñar arquitecturas digitales utilizando como herramienta los lenguajes

Más detalles

GENERADOR AUTOMÁTICO DE FFT CON ALTO GRADO DE PARALELISMO

GENERADOR AUTOMÁTICO DE FFT CON ALTO GRADO DE PARALELISMO GENERADOR AUTOMÁTICO DE FFT CON ALTO GRADO DE PARALELISMO Julián F. Acosta Orozco, Mario Vera-Lizcano, Jaime Velasco Medina Grupo de Bio-Nanoelectrónica, EIEE, Universidad del Valle A.A. 25360, Cali, Colombia

Más detalles

Circuitos Integrados Reconfigurables de Bajo Consumo

Circuitos Integrados Reconfigurables de Bajo Consumo Trabajo de Fin de Grado en Ingeniería Electrónica Circuitos Integrados Reconfigurables de Bajo Consumo Diseño e implementación del algoritmo de cifrado estándar AES Autor: Álvaro Pérez Mayo Tutor: Inés

Más detalles

FPGAs. Susana Borromeo Área de Tecnología Electrónica. Diseño de Sistemas Electrónicos. 2014/2015. Metodología de Diseño. Características generales

FPGAs. Susana Borromeo Área de Tecnología Electrónica. Diseño de Sistemas Electrónicos. 2014/2015. Metodología de Diseño. Características generales FPGAs Susana Borromeo Área de Tecnología Electrónica Esquema Conceptos generales Dispositivos Lógicos Programables FPGAs Metodología de Diseño VHDL Características generales VHDL Comportamental y Estructural

Más detalles

IMPLEMENTACIÓN DE LA FUNCIÓN POTENCIA MODULAR EN HARDWARE REPROGRAMABLE. Freddy. Bolaños, Rubén. Nieto, Álvaro. Bernal.

IMPLEMENTACIÓN DE LA FUNCIÓN POTENCIA MODULAR EN HARDWARE REPROGRAMABLE. Freddy. Bolaños, Rubén. Nieto, Álvaro. Bernal. IMPLEMENTACIÓN DE LA FUNCIÓN POTENCIA MODULAR EN HARDWARE REPROGRAMABLE. Freddy. Bolaños, Rubén. Nieto, Álvaro. Bernal. Escuela de Ingeniería Eléctrica y Electrónica. Grupo de Arquitecturas Digitales y

Más detalles

Dispositivos Lógicos Programables

Dispositivos Lógicos Programables Dispositivos Lógicos Programables Luis Entrena, Celia López, Mario García, Enrique San Millán Universidad Carlos III de Madrid 1 Indice Tecnologías de implementación de circuitos programables Circuitos

Más detalles

CIRCUITO PARA LA MODIFICACION AUTOMATICA DEL HISTOGRAMA DE UNA IMAGEN DE VIDEO

CIRCUITO PARA LA MODIFICACION AUTOMATICA DEL HISTOGRAMA DE UNA IMAGEN DE VIDEO EUSKAL HERRIKO UNIVERSITATEA UNIVERSIDAD DEL PAIS VASCO DOCTORADO EN TECNOLOGIAS DE LA INFORMACION ARQUITECTURAS PARA EL PROCESAMIENTO DE IMAGENES CIRCUITO PARA LA MODIFICACION AUTOMATICA DEL HISTOGRAMA

Más detalles

Dispositivos lógicos programables (PLDs(

Dispositivos lógicos programables (PLDs( Dispositivos lógicos programables (PLDs( PLDs) SPLDs (Dispositivos lógicos programables simples) Estructuras lógicas basadas en planos AND-OR CPLDs (Dispositivos lógicos programables complejos) Combinan

Más detalles

En este capítulo se habla sobre las distintas arquitecturas y algoritmos de multiplicación rápida que se encontraron en la bibliografía.

En este capítulo se habla sobre las distintas arquitecturas y algoritmos de multiplicación rápida que se encontraron en la bibliografía. Capítulo 4 Algoritmos de multiplicación rápida En este capítulo se habla sobre las distintas arquitecturas y algoritmos de multiplicación rápida que se encontraron en la bibliografía. Los sistemas en un

Más detalles

Implementación Hardware de Aplicaciones de la Pirámide

Implementación Hardware de Aplicaciones de la Pirámide Implementación Hardware de Aplicaciones de la Pirámide Marco Aurelio Nuño Maganda 1, Miguel Arias Estrada 1, Claudia Feregrino Uribe 1 1 Instituto Nacional de Astrofísica, Óptica y Electrónica. Luis Enrique

Más detalles

Capítulo 6. Algoritmos de cifrado

Capítulo 6. Algoritmos de cifrado Capítulo 6. Algoritmos de cifrado 6.1 Introducción Un algoritmo de cifrado o algoritmo criptográfico es un método matemático cuya utilidad es encriptar y desencriptar un determinado mensaje. Generalmente

Más detalles

TEMA 5.3 SISTEMAS DIGITALES

TEMA 5.3 SISTEMAS DIGITALES TEMA 5.3 SISTEMAS DIGITALES TEMA 5 SISTEMAS DIGITALES FUNDAMENTOS DE ELECTRÓNICA 08 de enero de 2015 TEMA 5.3 SISTEMAS DIGITALES Introducción Sistemas combinacionales Sistemas secuenciales TEMA 5.3 SISTEMAS

Más detalles

ARQUITECTURAS ESPECIALES

ARQUITECTURAS ESPECIALES ARQUITECTURAS ESPECIALES EL - 337 Página Qué es un Multiplexor? EL - 337 Un multiplexor o MUX es un switch digital (interruptor digital) que conecta una de las entradas con su única salida. Desde el punto

Más detalles

Sistemas Combinacionales y Sistemas Secuenciales

Sistemas Combinacionales y Sistemas Secuenciales y Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 y 1 2 3 y Contenido Al hablar de sistemas, nos referimos

Más detalles

FFT de 64 Puntos para Redes de Datos Inalámbricas Basadas en OFDM

FFT de 64 Puntos para Redes de Datos Inalámbricas Basadas en OFDM FFT de 64 Puntos para Redes de Datos Inalámbricas Basadas en OFDM Sancho M.A., Angarita F.E., Sansaloni T., Perez-Pascual A. Departamento de Ingeniería Electrónica, Universidad Politécnica de Valencia,

Más detalles

DISEÑO ASÍNCRONO DE LAS FUNCIONES DE TRANSFORMACIÓN DEL ALGORITMO THREEFISH-256.

DISEÑO ASÍNCRONO DE LAS FUNCIONES DE TRANSFORMACIÓN DEL ALGORITMO THREEFISH-256. DISEÑO ASÍNCRONO DE LAS FUNCIONES DE TRANSFORMACIÓN DEL ALGORITMO THREEFISH-256. ASYNCHRONOUS DESIGN OF TRANSFORMATION FUNCTIONS OF THREEFISH-256 ALGORITHM Nathaly Nieto Ramírez 1 Rubén Darío Nieto Londoño

Más detalles

Implementación de un Hardware Reconfigurable de los Bloques de un Sistema RSA

Implementación de un Hardware Reconfigurable de los Bloques de un Sistema RSA Implementación de un Hardware Reconfigurable de los Bloques de un Sistema RSA Freddy Bolaños Martínez* Rubén Darío Nieto Londoño** Álvaro Bernal Noreña*** * ** Ingeniero Electrónico, Estudiante Maestría

Más detalles

Frecuencia Máxima de un Sistema Digital Sincrónico (Básico)

Frecuencia Máxima de un Sistema Digital Sincrónico (Básico) Frecuencia Máxima de un Sistema Digital Sincrónico (Básico) Nota Técnica 8 Cristian Sisterna Introducción Comúnmente se expresa que un sistema puede funcionar satisfactoriamente a 100MHz, o a 133MHz o

Más detalles

MicroBlaze en Sistemas Embebidos para Aplicaciones Criptográficas

MicroBlaze en Sistemas Embebidos para Aplicaciones Criptográficas MicroBlaze en Sistemas Embebidos para Aplicaciones Criptográficas González I, Gómez-Arribas F. J, Martínez J Escuela Politécnica Superior, Madrid, España, {Ivan.Gonzalez, Francisco.Gomez, Javier.Martinez}@ii.uam.es

Más detalles

Descripción del algoritmo DES (Data Encryption Standard)

Descripción del algoritmo DES (Data Encryption Standard) Descripción del algoritmo DES (Data Encryption Standard) Jorge Sánchez Arriazu diciembre de 1999 DES Introducción DES (Data Encryption Standard, estándar de cifrado de datos) es un algoritmo desarrollado

Más detalles

Aritmética Computacional Factorización de enteros con Curvas Elípticas Avance de Proyecto

Aritmética Computacional Factorización de enteros con Curvas Elípticas Avance de Proyecto Aritmética Computacional Factorización de enteros con Curvas Elípticas Avance de Proyecto 1. Introducción Saúl Zapotecas Martínez Cuauhtemoc Mancillas López Centro de Investigación y Estudios Avanzados

Más detalles

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López.

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López. UNIVERSIDAD CARLOS III DE MADRID Ejercicios de VHDL Circuitos Integrados y Microelectrónica Luis Entrena Celia López Mario García Enrique San Millán Marta Portela Almudena Lindoso Problema 1 Se pretende

Más detalles

2.3. Data Encryption Standard (DES)

2.3. Data Encryption Standard (DES) 2.3. DATA ENCRYPTION STANDARD (DES) 17 con un número entero de 0 a n, yposteriormenteseaplicauncorrimientode k posiciones, esto es equivalente a realizar la suma modular descrita líneas arriba: (a + k)

Más detalles

Estudio, simulación e implementación de estándares de cifrado simétrico, utilizando MatLab, VHDL y FPGA

Estudio, simulación e implementación de estándares de cifrado simétrico, utilizando MatLab, VHDL y FPGA Estudio, simulación e implementación de estándares de cifrado simétrico, utilizando MatLab, VHDL y FPGA María Fernanda Granda, Leandro Reina Pérez Ingeniería Eléctrica y Electrónica, Escuela Politécnica

Más detalles

T E M A. Algoritmos de criptografía simétrica. [2.1] Cómo estudiar este tema? [2.2] Cifradores de bloque. [2.3] Cifradores de flujo

T E M A. Algoritmos de criptografía simétrica. [2.1] Cómo estudiar este tema? [2.2] Cifradores de bloque. [2.3] Cifradores de flujo Algoritmos de criptografía simétrica [2.1] Cómo estudiar este tema? [2.2] Cifradores de bloque [2.3] Cifradores de flujo [2.4] Funciones resumen T E M A 2 Esquema Algoritmos de criptografía simétrica Cifrado

Más detalles

3. Algoritmo DES (Data Encription Standard)

3. Algoritmo DES (Data Encription Standard) 3. Algoritmo DES (Data Encription Standard) 3.1. Fundamentos Cifrado por bloques (block cipher) Opera sobre un bloque de texto plano de n bits para producir un texto cifrado de n bits. Tipicamente, la

Más detalles

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Tutoría 2. Banco de memoria de 8 y 16 bits (8086) Tutoría 2. Banco de memoria de 8 y 16 bits (8086) RESUMEN Cuando el procesador opera en modo mínimo, éste genera las señales de control para la memoria y los dispositivos de E/S. [1, pág. 292]. Para utilizar

Más detalles

3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES. ha desarrollado durante los últimos 30 años gracias a los avances tecnológicos de

3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES. ha desarrollado durante los últimos 30 años gracias a los avances tecnológicos de 3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES 3.1 Introducción al procesamiento digital de señales Una alternativa para el procesado analógico de señales es el procesado digital. Esta área se ha desarrollado

Más detalles

METODOLOGIAS DE DISEÑO PARA COMPUTACIÓN RECONFIGURABLE.

METODOLOGIAS DE DISEÑO PARA COMPUTACIÓN RECONFIGURABLE. METODOLOGIAS DE DISEÑO PARA COMPUTACIÓN RECONFIGURABLE. Iñigo Aguirre; Jose Angel Ezquerra. Universidad del País Vasco. Euskal Herriko Unibertsitatea. jtpagpoi@sc.ehu.es. RESUMEN Este trabajo tiene por

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN 1. Competencias Implementar sistemas de medición y control bajo los

Más detalles

Implementación de una unidad procesadora de cuatro bits, como material didáctico

Implementación de una unidad procesadora de cuatro bits, como material didáctico Implementación de una unidad procesadora de cuatro bits, como material didáctico Ángel Eduardo Gasca Herrera Universidad Veracruzana Agasca3@hotmail.com Jacinto Enrique Pretelin Canela Universidad Veracruzana

Más detalles

Recursos y Metodologías. Función. Programas

Recursos y Metodologías. Función. Programas Recursos y Metodologías Sistema Digital Estructura { + Función Descripción Datos R. Cómputo R. Almacenamiento R. Conexionado { Comandos Implementación Full-custom Semi-custom Gate Arrays Programas Lenguaje

Más detalles

CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER

CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER ENTREGA: 26/11/2010 1 INTRODUCCIÓN La tecnología es cada vez más sencilla de

Más detalles

METODOLOGIA DE DISEÑO DE CIRCUITOS INTEGRADOS DIGITALES

METODOLOGIA DE DISEÑO DE CIRCUITOS INTEGRADOS DIGITALES METODOLOGIA DE DISEÑO DE CIRCUITOS INTEGRADOS DIGITALES MANUEL JESÚS BELLIDO DÍAZ ANGEL BARRIGA BARROS GUIÓN DEL TEMA INTRODUCCIÓN METODOLOGÍA DE DISEÑO TÉCNICAS DE IMPLEMENTACIÓN DE CID COMPARACIÓN ENTRE

Más detalles

Sistemas Electrónicos Digitales. Práctica 2 Implementación de un filtro FIR basado en estructura MAC

Sistemas Electrónicos Digitales. Práctica 2 Implementación de un filtro FIR basado en estructura MAC Sistemas Electrónicos igitales 2 o Ing. Telecomunicación Práctica 2 Implementación de un filtro FIR basado en estructura MAC Javier Toledo Moreo pto. Electrónica, Tecnología de Computadoras y Proyectos

Más detalles

Método simétrico con cifrado por bloques desarrollado por Counterpane Labs y presentado al concurso del NIST que buscaba un sustituto para DES (el

Método simétrico con cifrado por bloques desarrollado por Counterpane Labs y presentado al concurso del NIST que buscaba un sustituto para DES (el Método simétrico con cifrado por bloques desarrollado por Counterpane Labs y presentado al concurso del NIST que buscaba un sustituto para DES (el concurso AES). Twofish llegó a la ronda final del concurso

Más detalles

Presentation Title 1

Presentation Title 1 Presentation Title 1 Índice Introducción. Aspectos legales. Análisis del municipio. Zonas de cobertura. Velocidad de navegación. Infraestructura de la red I. Estándar 802.11. Estándar 802.16. Infraestructura

Más detalles

FIELD PROGRAMMABLE GATE ARRAY (FPGA)

FIELD PROGRAMMABLE GATE ARRAY (FPGA) FIELD PROGRAMMABLE GATE ARRAY 21 FIELD PROGRAMMABLE GATE ARRAY (FPGA) 2.1. QUÉ ES UN FPGA? Un FPGA (field programmable gate array) es un dispositivo semiconductor que contiene componentes lógicos programables

Más detalles

Módulos aritméticos I

Módulos aritméticos I Práctica 3 Módulos aritméticos I 1 Introducción El diseño de ALUs que sean capaces de realizar cálculos a alta velocidad es fundamental dentro del diseño de la CPU. Con este objetivo, se plantea en esta

Más detalles

Síntesis arquitectónica y de alto nivel

Síntesis arquitectónica y de alto nivel Síntesis arquitectónica y de alto nivel Módulo 1. Concepto y fases de la Síntesis de Alto Nivel 1 Diseño de circuitos: la complejidad Tratamiento de problemas de complejidad creciente Rápido desarrollo

Más detalles

INTRODUCCIÓN A LOS CIRCUITOS INTEGRADOS

INTRODUCCIÓN A LOS CIRCUITOS INTEGRADOS INTRODUCCIÓN A LOS CIRCUITOS INTEGRADOS Luis Entrena Arrontes Celia López Mario García Enrique San Millán Marta Portela Almudena Lindoso 1 Índice 1.1 Los circuitos integrados. Ventajas e inconvenientes

Más detalles

Diseño y Desarrollo de una Plataforma Criptográfica Reconfigurable de Alto Desempeño

Diseño y Desarrollo de una Plataforma Criptográfica Reconfigurable de Alto Desempeño Diseño y Desarrollo de una Plataforma Criptográfica Reconfigurable de Alto Desempeño Ignacio Algredo-Badillo, René Cumplido-Parra, Claudia Feregrino-Uribe 1 Instituto Nacional de Astrofísica, Óptica y

Más detalles

Arquitecturas de Computadores. 4 Sistemas Combinacionales y Secuenciales Prof. Javier Cañas R.

Arquitecturas de Computadores. 4 Sistemas Combinacionales y Secuenciales Prof. Javier Cañas R. Arquitecturas de Computadores 4 Sistemas Combinacionales y Secuenciales Prof. Javier Cañas R. Temario 1. Introducción 2. Sistemas Combinacionales (SC) 3. Implantación de SC mediante PLA 4. Sistemas Secuenciales

Más detalles

Circuitos combinacionales. Funciones integradas

Circuitos combinacionales. Funciones integradas Circuitos combinacionales. Funciones integradas Salvador Marcos González salvador.marcos@uah.es Funciones integradas Introducción La introducción en el diseño de sistemas digitales de circuitos MSI (media

Más detalles

Circuitos Secuenciales

Circuitos Secuenciales EL - 337 Página Agenda EL - 337 Página 2 Introducción El biestable de flip flops de flip flops tipo D de flip flops tipo T de flip flops tipo S-R de flip flops tipo J-K de circuitos Conclusiones Introducción

Más detalles

concepto y fases de la SAN

concepto y fases de la SAN concepto y fases de la SAN Síntesis Arquitectónica y de Alto Nivel José Manuel Mendías Cuadros Dpto. Arquitectura de Computadores y Automática Universidad Complutense de Madrid diseño de circuitos: la

Más detalles

INTRODUCCIÓN. Comunicación Serial.

INTRODUCCIÓN. Comunicación Serial. INTRODUCCIÓN La función principal de este tipo de comunicación es la de convertir datos de salida de forma paralela a serial y la de convertir datos de entrada de forma serial a paralela. El acceso al

Más detalles

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN UNIDAD DOS: INTRODUCCIÓN Una computadora es una máquina electrónica diseñada para manipular y procesar información de acuerdo a un conjunto de ordenes o programas. para que esto sea posible se requiere

Más detalles

Sistemas Operativos. Gestión de E/S Discos. Dr. Wenceslao Palma

Sistemas Operativos. Gestión de E/S Discos. Dr. Wenceslao Palma Sistemas Operativos Gestión de E/S Discos Dr. Wenceslao Palma M. Conceptos Considerando el almacenamiento se tiene la siguiente jerarquía: Memoria Caché, Memoria Principal, Discos

Más detalles

Autómata Programable (PLC)

Autómata Programable (PLC) Autómata Programable (PLC) UPCO ICAI Departamento de Electrónica y Automática 1 Hardware del autómata Sistema digital basado en un microprocesador CPU Reloj Marca el funcionamiento de todo el sistema (20

Más detalles

Tema 7 - Registros, contadores y memorias

Tema 7 - Registros, contadores y memorias -, contadores y memorias Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx

Más detalles

Explicación del Cifrado en Bloques Simétrico DES

Explicación del Cifrado en Bloques Simétrico DES Explicación del Cifrado en Bloques Simétrico DES 1. Introducción 2. Descripción del algoritmo DES 3. Algoritmo de Cifrado 4. Generación de la subclave Ki 5. Función f(r i-1, K i ) 6. Suma L i R i 7. Permutación

Más detalles

Electrónica Digital. Actividad Dirigida. Implementación de un Cronómetro Digital

Electrónica Digital. Actividad Dirigida. Implementación de un Cronómetro Digital Electrónica Digital Actividad Dirigida Implementación de un Cronómetro Digital Trabajo a realizar La actividad consiste en la implementación de un cronómetro digital con capacidad de cuenta de minutos

Más detalles

Criptografía Moderna. Criptosistemas Simétricos o de Clave Secreta: Criptosistemas Asimétricos o de Clave Pública: Canal seguro.

Criptografía Moderna. Criptosistemas Simétricos o de Clave Secreta: Criptosistemas Asimétricos o de Clave Pública: Canal seguro. Criptografía Moderna Criptosistemas Simétricos o de Clave Secreta: Canal seguro Criptosistemas Asimétricos o de Clave Pública: Clave pública Clave secreta Criptografía Moderna Criptosistemas modernos Clave

Más detalles

EVOLUCIÓN HISTÓRICA DE LOS µp

EVOLUCIÓN HISTÓRICA DE LOS µp EVOLUCIÓN HISTÓRICA DE LOS µp El primer procesador fue inventado por los Babilonios en el año 500 ac En 1642 se perfeccionó la primera calculadora por Blas Pascal A mediados del siglo pasado se inventaron

Más detalles

Introducción a los dispositivos de lógica programable en campo (FPGA) Laboratorio de diseño digital

Introducción a los dispositivos de lógica programable en campo (FPGA) Laboratorio de diseño digital Introducción a los dispositivos de lógica programable en campo (FPGA) Laboratorio de diseño digital MARÍA ISABEL SCHIAVON - 2005 1907 1 950 RESEÑA HISTORICA 60 MSI 70 LSI microprocesador 1958 80 circuitos

Más detalles

CAPITULO 3 IMPLEMENTACIÓN DEL INVERSOR ELEVADOR. En el presente capítulo se muestran, de manera general, la etapa de potencia y de

CAPITULO 3 IMPLEMENTACIÓN DEL INVERSOR ELEVADOR. En el presente capítulo se muestran, de manera general, la etapa de potencia y de CAPITULO 3 IMPLEMENTACIÓN DEL INVERSOR ELEVADOR MONO - ETAPA 3.1 Introducción En el presente capítulo se muestran, de manera general, la etapa de potencia y de control de conmutación implementadas. Se

Más detalles