CriptografíaSexto SemestreIngeniería Informática Fecha: lunes 15 de abril de 2013
INSTITUTO TECNOLOGICO DE CHIHUAHUA II
AES: 1.- ¿Qué es? AES es un sistema de cifrado por bloques, dise ˜nado para manejar longitudes de clave y de bloque variables, ambas comprendidas entre los 128 y los 256 bits. 2.- ¿Cuándo se originó? En octubre de 2000 el NIST (National Institute for Standards and Technology) anunciaba oficialmente la adopción del algoritmo Rijndael (pronunciado más o menos como reindal) como nuevo Estándar Avanzado de Cifrado (AES) para su empleo en aplicaciones criptográficas no militares 3.- ¿Por qué se originó? Porque DES ya era posible desencriptarlo con máquinas en cuestión de unas horas, por tener llaves de encriptación muy cortas (56 bits), y tamaño de bloques muy pequeños. 4.- ¿Cuál es su función? Encripta y desencripta datos usando una llave que es la que cifra el mensaje en bloques. AES, a diferencia de algoritmos como DES, no posee estructura de red de Feistel. En su lugar se ha definido cada ronda como una composición de cuatro funciones invertibles diferentes, formando tres capas, diseñadas para proporcionar resistencia frente a criptoanálisis lineal y diferencial. 5.- Pasos de ¿cómo funciona? *La capa de mezcla lineal —funciones DesplazarFila y MezclarColumnas— permite obtener un alto nivel de difusión a lo largo de varias rondas. *La capa no lineal —función ByteSub—consiste en la aplicación paralela de s-cajas con propiedades óptimas de no linealidad. *La capa de adición de clave es un simple or-exclusivo entre el estado intermedio y la subclave correspondiente a cada ronda. 6.- ¿Qué tan seguro es? Según sus autores, es altamente improbable que existan claves débiles o semidébiles en AES, debido a la estructura de su diseño, que busca eliminar la simetría en las subclaves. También se ha comprobado que es resistente a criptoanálisis tanto lineal como diferencial. La llave de encriptación más larga (256 bits) hace más difícil que se rompa haciendo que el sistema no tenga debilidades. 7.- ¿Quién lo desarrolló? NIST (National Institute for Standards and Technology) 8.- Áreas o campos de aplicación: aplicaciones criptográficas no militares, gobierno, mensajería, inicios de sesión (contraseñas, no. de tarjetas, membresías, PINS), llamadas telefónicas, etc… 9.- Niveles de implementación Implementa diferentes longitudes de llave dependiendo del nivel de seguridad que se quiera implementar con llaves de 128 bits se hacen 9 rondas, con las llaves de 192 se hacen 11 rondas y para las llaves de 256 bits se hacen 13 rondas. A veces los gobiernos de ciertos paises en sus leyes establecen el nivel de encriptado que deben usar las empresas en sus documentos clasificados y es por ello que se debe de poder modificar la longitud de las llaves. 10.- Forma de usarlo: Una forma de usar el cifrado AES es descargando el programa de la página: http://www.aescrypt.com e instalarlo en su plataforma (Windows, Mac, Linux) o bien entrando a la página: http://www.everpassword.com/aes-encryptor, existe también una librería en Java (JCE) que implementa el cifrado AES 11.- ¿Cuáles son los pasos que se realizan en cada ronda? Consiste en una serie de 4 transformaciones matemáticas, las cuales se repiten 9, 11, o 13 veces dependiendo de la longitud del bloque y de la longitud de la clave. Todos los ciclos, excepto el último son similares y consisten de las siguinetes transformaciónes: ByteSub (sustitución de bytes), ShiftRow (Desplazamiento de filas), MixColumns (Multiplicación de columnas), AddRoundKey (se aplica XOR entre los bits del texto y la llave), en este ciclo se ejecutan las siguientes transfromaciones: ByteSub, ShiftRow, AddRoundKey 12.- ¿Qué es un GF(2^8) Galois Field? cómo se usa en AES? AES es un sistema de cifrado por bloques, diseñado para manejar longitudes de clave y de bloque variables, ambas comprendidas entre los 128 y los 256 bits. Realiza varias de sus operaciones internas a nivel de byte, interpretando éstos como elementos de un cuerpo de Galois GF(28). El resto de operaciones se efectúan en términos de registros de 32 bits. Sin embargo, en algunos casos, una secuencia de 32 bits se toma como un polinomio de grado inferior a 4, cuyos coeficientes son a su vez polinomios en GF(28).