Top Banner

Click here to load reader

Algoritmo AES

Jan 29, 2016

ReportDownload

Documents

Es un algoritmo de cifrado simétrico desarrollado por los estudiantes Vincent Rijmen y Joan Daemen de la Katholieke Universiteit Leuven en Bélgica, bajo el nombre "Rijndael" fue presentado en 1997 al concurso organizado por el Instituto Nacional de Normas y Tecnologías (NIST) para elegir el mejor algoritmo de cifrado; el algoritmo gano el concurso transformándose en un estándar en el año 2002, con algunos cambios fue posteriormente renombrado AES (Advanced Encryption Standard) y se convirtió en uno de los algoritmos más utilizados en la actualidad.

ALGORITMO DE CIFRADO SIMTRICO AES. ACELERACIN DE TIEMPO DE CMPUTO SOBRE ARQUITECTURAS MULTICORE.

Trabajo Final de Especialista en Redes y Seguridad Adrin Pousa

ALGORITMO DE CIFRADO SIMTRICO AES.ACELERACIN DE TIEMPO DE CMPUTO SOBRE ARQUITECTURAS MULTICORE.

T r a b a j o F i n a l p r e s e n t a d o p a r a o b t e n e r e l gr a d o d e E s p e c i a l i s t a e n R e d e s y S e gu r i d a d

Autor: Lic. Adrin Pousa.

Director: Lic. Javier Daz.

Co-Director: Ing. Armando De Giusti.

Facultad de Informtica - Universidad Nacional de La Plata

D i c i e m b r e d e 2 0 1 1

Contenido

Objetivo ............................................................................................................................................... 1

Introduccin ........................................................................................................................................ 3

Captulo 1

Criptografa.......................................................................................................................................... 5

1.1 Definicin .................................................................................................................................. 5

1.2 Sistemas de cifrado simtricos .................................................................................................. 5

1.3 Sistemas de cifrado asimtricos ................................................................................................ 6

Captulo 2

Algoritmo AES...................................................................................................................................... 9

2.1 Historia del algoritmo AES......................................................................................................... 9

2.2 Mencin sobre los fundamentos matemticos ........................................................................ 9

2.3 Bloques AES ............................................................................................................................. 10

2.4 Claves ...................................................................................................................................... 10

2.5 Cifrado AES: Rondas y operaciones......................................................................................... 14

2.6 Descifrado AES ........................................................................................................................ 17

Captulo 3

Arquitecturas multicore y herramientas paralelas ........................................................................... 19

3.1 Evolucin hacia las arquitecturas multicore ........................................................................... 19

3.2 Herramientas paralelas ........................................................................................................... 22

Captulo 4

Algoritmo AES Implementaciones..................................................................................................... 25

4.1 Implementacin y software utilizado...................................................................................... 25

4.2 Implementacin secuencial..................................................................................................... 26

4.3 Implementaciones paralelas ................................................................................................... 26

Captulo 5

Anlisis de rendimiento..................................................................................................................... 29

5.1 Hardware utilizado .................................................................................................................. 29

5.2 Tiempos de ejecucin.............................................................................................................. 30

5.3 Aceleracin (SpeedUp) ............................................................................................................ 31

Trabajo Final de Especialista en Redes y Seguridad Adrin PousaiCaptulo 6

Conclusiones y trabajo a futuro ........................................................................................................ 33

6.1 Conclusiones............................................................................................................................ 33

6.2 Trabajo a futuro....................................................................................................................... 34

Bibliografa bsica: ............................................................................................................................ 37

Trabajo Final de Especialista en Redes y Seguridad Adrin Pousaii

Objetivo

El objetivo de este trabajo es mostrar la aceleracin en el tiempo de cmputo del algoritmo criptogrfico Advanced Encryption Standard (AES) con clave de tamao 128bits, que se obtiene al aprovechar el paralelismo que proveen las arquitecturas multicoresactuales utilizando herramientas de programacin paralela.

AES es uno de los algoritmos de criptografa ms usados en la actualidad, con el crecimiento de las redes y la informacin que se maneja hoy en da puede ser necesario cifrar un volumen muy grande de informacin para lo que se requiere mayor velocidad en los procesadores, pero esto actualmente no es posible debido a que los procesadores han llegado al lmite de velocidad por problemas trmicos y de consumo, por esta razn se est incrementando la cantidad de procesadores en los equipos.

Como aporte de la concrecin de este trabajo se pretende presentar un anlisis de rendimiento que muestre cmo a pesar de las limitaciones de velocidad de los procesadores, es posible, mediante herramientas de programacin paralela, aprovechar las arquitecturas multicore para acelerar el cmputo del algoritmo AES y as reducir el tiempo de cifrar informacin ya sea para almacenarla o enviarla por la red.

Trabajo Final de Especialista en Redes y Seguridad Adrin Pousa10

Introduccin

Desde mucho antes que existieran las computadoras los seres humanos han tenido la necesidad de intercambiar mensajes de forma segura, de manera que solo puedan ser ledos por las personas a quienes van dirigidos. A partir de esta necesidad es que nace la criptografa, esta provee tcnicas de codificacin y decodificacin de informacin para un intercambio seguro. Desde la aparicin de las computadoras y ms aun con el crecimiento de las redes, la necesidad de intercambiar informacin de manera segura fue mayor y es donde aparecen implementaciones de distintos sistemas de cifrado.

Existen dos sistemas de cifrado que involucran distintos tipos de algoritmos, los sistemas simtricos y los sistemas asimtricos, ambos con sus ventajas y sus desventajas.

Dentro de los sistemas simtricos se encuentra el algoritmo Advanced Encryption Standard (AES), que es uno de los algoritmos ms utilizados en la actualidad, considerado por el gobierno de los Estados Unidos como un algoritmo seguro para proteccin nacional de informacin y del cual, aun no se conocen ataques eficientes que puedan vulnerarlo.

Hoy en da la el volumen de informacin que se maneja en ocasiones es muy grande y en algunos casos es necesario almacenar esta informacin o transmitirla en forma segura, AES es un algoritmo simple y rpido, pero aun as, el tiempo de computo de cifrar un gran volumen de informacin puede ser importante, es necesario en estos casos contar con procesadores ms veloces.

Los procesadores han venido siendo ms rpido cada ao, pero en la actualidad este crecimiento se ve interrumpido por problemas trmicos y de consumo dentro de los procesadores. Por esta razn es que las arquitecturas actuales tienen ms de un procesador de manera de poder aprovechar el paralelismo que proveen, y en la medida que se pueda poder acelerar el tiempo de cmputo de las aplicaciones.

Siempre fue comn el uso de arquitecturas como multiprocesadores y clusters dentro del mbito acadmico-cientfico, hoy en da los costos de estas arquitecturas han bajado y es posible encontrarlas fuera de este mbito; tambin se le ha dado importancia a las placas para procesamiento grafico (GPU) que han sido usadas con mucho xito para aplicaciones de propsito general.

Estas arquitecturas junto con el uso de herramientas de programacin paralela adecuadas para cada caso, como son OpenMP, MPI y CUDA permiten paralelizar algoritmos de manera de acelerar el tiempo de cmputo.

Como muestra este trabajo, el algoritmo AES puede ser implementado con herramientas paralelas y ejecutado sobre arquitecturas multicores de manera de reducir el costo de cifrado y descifrado de datos ya sea para almacenarlos o para hacer una transferencia importante de datos sensibles sobre una red pblica.

Captulo 1

Criptografa

1.1 Definicin

La criptografa (del griego oculta y escribir, literalmente escritura oculta) es el arte o ciencia de cifrar (encriptar) y descifrar (desencriptar) informacin utilizando tcnicas que hagan posible el intercambio de mensajes de manera segura que solo puedan ser ledos por las personas a quienes van dirigidos.

Existen dos tipos bsicos de sistemas de cifrado:

Sistemas de cifrado simtricos (o sistemas de clave secreta o de clave privada). Sistemas de cifrado asimtrico (o sistemas de clave pblica).

1.2 Sistemas de cifrado simtricos

Los sistemas simtricos utilizan la misma clave para encriptar y desencriptar. Existen dos modos de operacin bsicos:

Cifrado en bloques: La informacin a cifrar se divide en bloques de longitud fija (8,16,

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.