Вы находитесь на странице: 1из 24

INSTITUTO TECNOLGICO DE IZTAPALAPA II

Alumno: Romero Tercero Carlos Investigacin: Algoritmos de Criptografa Grupo: Octavo Semestre Carrera: Ingeniera en Tics Materia: Administracin y seguridad en redes Profesor: Mic. Naim de Luna Mendoza

DES (Data Encryption Standard).


DES (Data Encryption Standard, estndar de cifrado de datos) es un algoritmo desarrollado originalmente por IBM a requerimiento del NBS (National Bureau of Standards, Oficina Nacional de Estandarizacin, en la actualidad denominado NIST, National Institute of Standards and Technology, Instituto Nacional de Estandarizacin y Tecnologa) de EE.UU. y posteriormente modificado y adoptado por el gobierno de EE.UU. en 1977 como estndar de cifrado de todas las informaciones sensibles no clasificadas. Posteriormente, en 1980, el NIST estandariz los diferentes modos de operacin del algoritmo. Es el ms estudiado y utilizado de los algoritmos de clave simtrica. El nombre original del algoritmo, tal como lo denomin IBM, era Lucifer. Trabajaba sobre bloques de 128 bits, teniendo la clave igual longitud. Se basaba en operaciones lgicas booleanas y poda ser implementado fcilmente, tanto en software como en hardware. Tras las modificaciones introducidas por el NBS, consistentes bsicamente en la reduccin de la longitud de clave y de los bloques, DES cifra bloques de 64 bits, mediante permutacin y sustitucin y usando una clave de 64 bits, de los que 8 son de paridad (esto es, en realidad usa 56 bits), produciendo as 64 bits cifrados

DES tiene 19 etapas diferentes. La primera etapa es una transposicin, una permutacin inicial (IP) del texto plano de 64 bits, independientemente de la clave. La ltima etapa es otra transposicin (IP-1), exactamente la inversa de la primera. La penltima etapa intercambia los 32 bits de la izquierda y los 32 de la derecha. Las 16 etapas restantes son una Red de Feistel de 16 rondas. En cada una de las 16 iteraciones se emplea un valor, Ki , obtenido a partir de la clave de 56 bits y distinto en cada iteracin.

Se realiza una permutacin inicial (PC-1) sobre la clave, y luego la clave obtenida se divide en dos mitades de 28 bits, cada una de las cuales se rota a izquierda un nmero de bits determinado que no siempre es el mismo. Ki se deriva de la eleccin permutada (PC-2) de 48 de los 56 bits de estas dos mitades rotadas.

La funcin f de la red de Feistel se compone de una permutacin de expansin (E), que convierte el bloque correspondiente de 32 bits en uno de 48. Despus realiza una or-exclusiva con el valor Ki, tambin de 48 bits, aplica ocho S-Cajas de 6*4 bits, y efecta una nueva permutacin (P).

Para descifrar basta con usar el mismo algoritmo empleando las Ki en orden inverso. Est descrito oficialmente en FIPS PUB 46. Descripcin paso a paso del algoritmo DES. (i) Encriptacin: 1.- Procesar la clave. 1.1.- Solicitar una clave de 64 bits al usuario. La clave se puede introducir directamente o puede ser el resultado de alguna operacin anterior, ya que no hay ninguna especificacin al respecto. De cada uno de los ocho bytes se elimina el octavo bit (el menos significativo) 1.2.- Calcular las sub claves.

1.2.1.- Realizar la siguiente permutacin en la clave de 64 bits reducindose la misma a 56 bits (El bit 1, el ms significativo, de la clave transformada es el bit 57 de la clave original, el bit 2 pasa a ser el bit 49, etc.).

1.2.2.- Dividir la clave permutada en dos mitades de 28 bits cada una. C(0) el bloque que contiene los 28 bits de mayor peso y D(0) los 28 bits restantes. 1.2.3.- Calcular las 16 subclaves (Empezar con i=1) 1.2.3.1.-Rotar uno o dos bits a la izquierda C(i-1) y D(i-1) para obtener C(i) y D(i), respectivamente. El nmero de bits de desplazamiento est dado por la tabla siguiente:

1.2.3.2.-Concatenar C(i) y D(i) y permutar como se indica a continuacin. As se obtiene K(i), que tiene una longitud de 48 bits.

1.2.3.3.-Ir a 1.2.3.1. Hasta que se haya calculado K(16). 2.- Procesar el bloque de datos de 64 bits. 2.1.- Obtener un bloque de datos de 64 bits. Si el bloque contiene menos de 64 bits debe ser completado para poder continuar con el siguiente paso. 2.2.- Realizar la siguiente permutacin del bloque:

2.3.- Dividir el bloque resultante en dos mitades de 32 bits cada una. L(0) el bloque que contiene los 32 bits de mayor peso y R(0) el resto. 2.4.- Aplicar las 16 subclaves obtenidas en el paso 1 2.4.1.- E(R(i)). Expandir R(i) de 32 a 48 bits de acuerdo con la tabla que se muestra debajo:

2.4.2.- E(R(i-1)) Xor K(i). Or-exclusiva del resultado del paso 2.4.1. con K(i) 2.4.3.- B(1), B(2),..., B(8). Partir E(R(i-1)) Xor K(i) en ocho bloques de seis bits. B(1) representa a los bits 1-6, B(2) representa a los bits 7-12,..., B(8) representa a los bits 43-48. 2.4.4.- S(1)(B(1)), S(2)(B(2)),..., S(8)(B(8)). Sustituir todos los B(j) por los valores correspondientes de las S-Cajas o tablas de sustitucin (Substitution Boxes, S-Boxes) de 6*4

bits, segn se indica en los sub apartados que siguen. Todos los valores de las S-Cajas se consideran de 4 bits de longitud. (Ver S-cajas del algoritmo DES, pgina siguiente) 2.4.4.1.-Tomar los bits 1 y 6 de B(j) y formar un nmero de 2 bits que llamaremos m. Este valor nos indicar la fila en la tabla de sustitucin correspondiente S(j). Obsrvese que m=0 representa la 1 fila y m=3 la ltima. 2.4.4.2.-Con los bits 2 a 5 de B(j) formar otro nmero, n, de cuatro bits que indicar la columna de S(j) en la que buscar el valor de sustitucin. En esta ocasin n=0 representa la 1 columna y n=15 la ltima columna. 2.4.4.3.-Reemplazar B(j) con S(j)(m,n), m fila y n columna. 2.4.4.4.-Ejemplo. Sea B(3)=42, en binario B(3)=101010. Buscaremos el nuevo valor de B(3) en S(3). Fila m y columna n, segn lo expuesto anteriormente m=10, n=0101, y en decimal m=2 y n=5. Por tanto, B(3) ser S(3)(2,5)=15 2.4.4.5.-Volver a 2.4.4.1. hasta que todos los bloques B(j) hayan sido reemplazados por el valor de S(j) adecuado. 2.4.5.- P[S(1)(B(1))... S(2)(B(8))]. Concatenar los bloques B(1) a B(8) y permutar los 32 bits (cuatro bits cada B(j)) en funcin de esta tabla:

2.4.5.1.-Volver a 2.4.4.1. hasta que todos los bloques B(j) hayan sido reemplazados por el valor de S(j) adecuado.

2.4.6.- P[S(1)(B(1))... S(2)(B(8))]. Concatenar los bloques B(1) a B(8) y permutar los 32 bits (cuatro bits cada B(j)) en funcin de esta tabla:

2.4.7.- R(i). Realizar una or-exclusiva entre el valor resultante y L(i-1). Este valor ser R(i). Por tanto, R(i)=L(i-1) Xor P[S(1)(B(1))... S(2)(B(8))] 2.4.8.- L(i). L(i)=R(i-1) 2.4.9.- Repetir desde 2.4.1. hasta que se hayan aplicado las 16 subclaves.

2.5.- Hacer la siguiente permutacin del bloque R(16)L(16). Obsrvese que esta vez R(16) precede a L(16)

(ii) Desencriptacin: Usar el mismo proceso descrito con anterioridad pero empleando las subclaves en orden inverso, esto es, en lugar de aplicar K(1) para la primera iteracin aplicar K(16), K(15) para la segunda y as hasta K(1). Vectores de prueba para DES Estos son algunos de los valores que se pueden emplear para comprobar si la implementacin que se ha llevado a cabo del algoritmo DES es correcta. Ejemplo 1: Bloque a cifrar en hexadecimal: 0123456789abcdef Clave: 133457799BBCDFF1 Cifrado: 85E813540F0AB405 Ejemplo 2: Bloque a cifrar en hexadecimal: 8787878787878787 Clave: 0E329232EA6D0D73 Cifrado: 0000000000000000 Ejemplo 3: Texto a cifrar: Your lips are smoother than vaseline

(36 caracteres + Chr (13)+Chr(10)) En hexadecimal: 596f7572206c6970 732061726520736d 6f6f746865722074 68616e2076617365 6c696e650d0a0000 Clave: 0E329232EA6D0D73 Cifrado: C0999FDDE378D7ED 727DA00BCA5A84EE 47F269A4D6438190 D9D52F78F5358499

828AC9B453E0E653 Ejemplo 4: Texto a cifrar (24 Caracteres): Now is the time for all (24 Caracteres -hay un espacio en blanco del final-) En hexadecimal: 4e6f772069732074 68652074696d6520 666f7220616c6c20 Clave: 0123456789ABCDEF Cifrado: 3FA40E8A984D4815 6A271787AB8883F9 893D51EC4B563B53

DES MULTIPLE.
Consiste en aplicar varias veces el algoritmo DES (con diferentes claves) al mensaje original. El ms conocidos de todos ellos el Triple-DES (T-DES), el cual consiste en aplicar 3 veces DES de la siguiente manera: 1. Se codifica con la clave K1. 2. Se decodifica el resultado con la clave K2. 3. Lo obtenido se vuelve a codificar con K 1. La clave resultante el la concatenacin de K1 y K2 con una longitud de 112 bits. En 1998 el NIST (National Institute of Standards Technology) convoco a un concurso para poder determinar un algoritmo simtricos seguro y prximo sustito de DES. Se aceptaron 15 candidatos y a

principios del ao 2000 los 5 finalistas fueron MARS, RC-6, Serpent y TwoFish y Rijndael (que en octubre sera el ganador).

IDEA.
El siguiente es un esquema general del funcionamiento del algoritmo IDEA. En cada paso elemental por el que pasa el texto de 64 bits, este sufre las siguientes alteraciones para dar el cifrado: 1: Divisin del bloque de 64 bits de texto en cuatro subbloques de 16 bits: X1, X2, X3 y X4, y de los 128 de la clave en 8: Z1 ... Z8. Estos ltimos son intencionadamente m s complicados, y se tratar n aparte. 2: Multiplicacin de X1 por el primer subbloque de la clave Z1 3: A ello se aade X2 y el segundo subbloque de la clave Z2 4: A lo que se aade X3 y el segundo subbloque de la clave Z3 5: Lo que se multiplica por X4 y por el cuarto subbloque de la clave 6: Se hace una operacin de or exclusivo (XOR) entre el bloque resultado de las operaciones segunda y cuarta 7: XOR entre el resultado de la tercera y la quinta operacin 8: Se multiplican los resultados de la sexta operacin con el quinto subbloque de la clave, Z5

9: Se suma el resultado de las operaciones sexta y sptima 10: Se multiplica el resultado de la novena operacin con el sexto subbloque de la clave, Z6 11: Se suman los resultados de la octava y la dcima operacin 12: XOR del resultado de la segunda y la dcima 13: XOR del resultado de la cuarta y la dcima 14: XOR del resultado de la tercera y la undcima 15: XOR del resultado de la quinta y la undcima De esta forma se consigue el texto cifrado, juntando los cuatro bloques resultantes de las operaciones cuatro ltimas operaciones. Evidentemente, la seguridad del cifrador aumenta cuando el texto pasa varias veces por el algoritmo, y el IDEA lo hace 8 veces. Para retroalimentarlo, basta con permutar los bloques segundo y tercero de la salida, y hacerlos entrar de nuevo, en todas las etapas menos en la ltima. Despus de la octava ronda, hay una transformacin final, que consiste en los cuatro pasos siguientes: 1: Multiplicar X1 por el primer subbloque de la clave 2: Aadir X2 al segundo bloque de la clave 3: Aadir X3 al tercer subbloque de la clave 4: Multiplicar X4 por el cuarto subbloque de la clave Finalmente, se concatenan estos ltimos cuatro bloques para conseguir el texto cifrado de salida. La creacin de los subbloques de la clave, en el 1er paso del algoritmo, consiste en dividir los 128 bits de dicha clave en ocho subbloques de los cuales slo seis se utilizan en la primera vuelta, reservando dos para la segunda. Tras esto, la clave se hace rotar 25 bits a la izquierda (mediante la funcin de desplazamiento de los bits en la palabra que proporciona el operador "<<" del lenguaje de programacin C), y de nuevo se divide la clave en ocho subclaves. Las cuatro primeras se utilizan en

la segunda etapa del algoritmo, y las cuatro ltimas en la tercera. La clave se rota otros 25 bits a la izquierda para conseguir las ocho siguientes subclaves, y as sucesivamente.

BLOWFISH.
Un algoritmo criptogrfico es una funcin matemtica usada en los procesos de encriptacin y desencriptacin. Trabaja en combinacin con una llave (un nmero, palabra, frase, o contrasea) para encriptar y desencriptar datos. Para encriptar, el algoritmo combina matemticamente la informacin a proteger con una llave provista. El resultado de este clculo son los datos encriptados. Para desencriptar, el algoritmo hace un clculo combinando los datos en criptados con una llave provista, siendo el resultado de esta combinacin los datos desencriptados (exactamente igual a como estaban antes de ser encriptados si se us la misma llave). Si la llave o los datos son modificados el algoritmo produce un resultado diferente. El objetivo del algoritmo Blowfishes encriptar y desencriptar datos, mediante una red de Feistel que por deficines reversible. BLowfish realiza esta tarea soportando claves de hasta 448 bits y encripta de a bloques de 64 bits. El algoritmo Blowfish fue uno de los tantos diseados por el experto en seguridad y criptografa, Bruce Schneier. El blowfish utiliza un cifrado en bloques de 64 bits y permite utilizar una clave de longitud variable de hasta 448 bits (56bytes). Luego de tomar la clave inicial, se genera una expansin de claves a partir de la dada para afirmar la seguridad del algoritmo. La encriptacin se basa en una red de Feistel de 16 rondas (la cantidad de rondas no es arbitraria pues se pueden implementar ms o menos rondas dependiendo de si se quiere ms seguridad o ms velocidad). Para este Trabajo Prctico se decidi utilizar el estndar de 16 rondas dado que permite una buena seguridad y buena velocidad balanceadas. Antes de encriptar o desencriptar, se debe inicializar el algoritmo, lo cual significa generar las subclaves a partir de una clave dada por el usuario. CARACTERISTICAS. Rpido: Cifra datos en microprocesadores de 32 bits a una tasa de 18 ciclos de reloj por byte. Compacto: Puede correr en un espacio de memoria inferior a los 5K.

Sencillo: Tiene una estructura sencilla que lo hace fcil de implementar. Variables seguras: La longitud de la clave es variable y puede ser hasta de 448 bits, lo que permite negociar entre trabajar a alta velocidad y una alta seguridad. Opera con bloques de 64 bits: Toma 64 bits de texto plano y entrega 64 bits de texto cifrado. Se utilizan 2 operaciones bsicas, la XOR y la adicin.

Ejemplo En primera instancia se ingresa una serie de 32 bits la cual se divide en 4 bloque de 8 bits. Ahora se procede a sustituir con las S-Box. Una vez realizado esto se comienza realizando una suma entre el resultado de la S-Box 1 y la S-Box 2. Despus se realiza una XOR entre el resultado de la suma anterior y el resultado de la S-Box 3. Por ltimo el resultado anterior se suma con el resultado de la S-Box 4. Finalizando la funcin F.

Ejemplo. 1. Inicializar el primer P-matriz y luego los cuatro S-cajas, con el fin, con una cuerda fija. Esta cadena se compone de los dgitos hexadecimales de pi (menos los 3 primeros). 3,14159265358979323846264338 ...

Por ejemplo: P1 = 0x243f6a88 P2 = 0x85a308d3 P3 = 0x13198a2e P4 = 0x03707344 2. XOR P1 con los primeros 32 bits de la clave, P2 XOR con el segundo de 32 bits de la clave, y as sucesivamente para todos los bits de la clave. Algoritmo En total, 521 iteraciones son necesarias para generar todas las subclaves necesarias. Las aplicaciones pueden almacenar las subclaves en lugar de ejecutar este proceso de derivacin varias veces. Blowfish es un algoritmo que consta de 16 rondas. La entrada es un elemento de datos de 64 bits, x. Divide x en dos mitades de 32 bits: XL, XR Para i = 1 a 16: XL = xLXOR Pi xR= F (x1.16) XORxR Intercambio XL y XR Siguiente i Intercambio XL y XR. xR= xRXORP17 XL = xLXORP18 Recombinarse XL y XR

Divide xL en cuatro cuartos de ocho bits: F (xl) = ((S1+S2)XORS3)+S4

RC2
En la criptografa , RC2 (tambin conocido como ARC2 ) es un cifrado de bloque diseado por Ron Rivest en 1987. "RC" significa "Cdigo de Ron" o "Rivest Cipher", otros sistemas de cifrado diseado por Rivest incluyen RC4 , RC5 y RC6 . El desarrollo de RC2 fue patrocinado por Lotus , que buscaban una costumbre cifra que, tras la evaluacin de la NSA , podra ser exportado como parte de su Lotus Notes software. La NSA sugiri un par de cambios, que Rivest incorporado. Tras nuevas negociaciones, la cifra fue aprobada para la exportacin en 1989. Junto con RC4, RC2 con una de 40 bits tamao de la clave fue tratado favorablemente EE.UU. bajo las regulaciones de exportacin de la criptografa .

Inicialmente, los detalles del algoritmo se mantuvieron en secreto - propiedad de RSA Security - pero el 29 de enero de 1996, el cdigo fuente para RC2 fue publicado annimamente en Internet en la Usenet foro, sci.crypt .

Menciones de CodeView y SoftICE (populares depuradores ) sugieren que haba sido ingeniera inversa . Una descripcin similar se haba producido anteriormente con RC4. En marzo de 1998 Ron Rivest autor de un RFC que describe pblicamente RC2 s mismo. RC2 es un bloque de 64 bits de cifrado con un tamao variable clave . Sus 18 rondas se disponen como una fuente pesada red de Feistel , con 16 rondas de un tipo ( MEZCLA ) puntuado por dos rondas de otro tipo ( maceracin ). Una ronda de mezcla est compuesta de cuatro aplicaciones de la transformacin MIX, como se muestra en el diagrama. RC2 es vulnerable a un ataque clave relacionada con el uso de 2 34 textos planos escogidos (Kelsey et al., 1997).

RC4
En criptografa RC4 (ARCFOUR) es un cifrador simtrico de flujo diseado por Ron Rivest de RSA Security en 1987. Aunque en trminos oficiales de RSA el trmino RC4 son las iniciales de Rivest Cipher 4, el acrnimo RC es comnmente entendido como el cdigo de Ron. Tambin son del dominio pblico sus cifradores por bloque RC2 y RC5. RC4 fue inicialmente un algoritmo comercializado como secreto, esto quiere decir que, solo se tena acceso al binario del algoritmo y no se saba cmo estaba implementado ni su algoritmo terico; pero en septiembre de 1994 una descripcin de ste fue annimamente publicada en la lista de correo Cypherpunk. El algoritmo fue publicado rpidamente en el grupo de noticias de sci.crypt y de ah a muchos otros sitios en la Internet. Al publicarse el algoritmo ste dejo de comercializarse como algoritmo secreto. El nombre RC4 es una marca registrada. Al algoritmo se le llama tambin ARCFOUR para evitar problemas legales con la marca registrada, adems se ha convertido en parte comn de algunos protocolos de cifrado y estndares utilizados frecuentemente, incluyendo WEP y WAP para tarjetas wireless y SSL. RC4 es uno de los cifradores ms rpidos utilizados en aplicaciones serias y comerciales, siendo un cifrador de flujo, y como tal es bsicamente un generador de nmeros pseudo aleatorios inicializado desde una llave secreta por arriba de los 256 bytes (para el caso de ssl y para evitar el ataque Fluhrer, Martin, Shamir). El algoritmo RC4, genera una clave de flujo la cual es simplemente pasada por la funcin XOR para producir el flujo cifrado. Para descifrar se utiliza exactamente la misma funcin de cifrado. Una de las razones a las que debe su popularidad es su sencillez. El algoritmo puede ser memorizado y rpidamente implementado, adicionalmente es ideal para implementaciones de software, pues requiere solamente manipulaciones de longitudes de un byte. Utiliza 256 bytes de memoria para los estados del arreglo, de S[0] pasa a S[255] , n bytes de memoria para la llave, de la Key [0] pasando a travs de key [255], as como variables enteras i, j, k. n esta definida como el nmero de bytes en la llave y puede tener un rango de entre 1 < = n <= 255, pensando en aplicaciones comunes n =8 n =16 es comn (64 y 128 bits, respectivamente), en este estudio se utiliz n =5 que es una llave de 40 bits.

El algoritmo RC4 consta de dos partes, el primero comienza con la inicializacin de la llave del algoritmo (KSA), que usa la llave para inicializar el nmero generador pseudo aleatorio. Dentro de la criptografa RC4 o ARC4 es el sistema de cifrado de flujo Stream cipher ms utilizado y se usa en algunos de los protocolos ms populares como Transport Layer Security (TLS/SSL) (para proteger el trfico de Internet) y Wired Equivalent Privacy (WEP) (para aadir seguridad en las redes inalmbricas). RC4 fue excluido enseguida de los estndares de alta seguridad por los criptgrafos y algunos modos de usar el algoritmo de criptografa RC4 lo han llevado a ser un sistema de criptografa muy inseguro, incluyendo su uso WEP. No est recomendado su uso en los nuevos sistemas, sin embargo, algunos sistemas basados en RC4 son lo suficientemente seguros para un uso comn. RC4 es un un algoritmo sorprendentemente simple. Este consiste en 2 algoritmos: 1-Key Scheduling Algorithm (KSA) y 2- Pseudo-Random Generation Algorithm (PRGA). Ambos de estos algoritmos usan 8-by-8 S-box, el cual es solo un array de 256 nmeros en el cual ambos son nicos en cuanto a rango y su valor va desde 0 hasta 255. Todos los nmeros de 0 a 255 existen dentro del array, pero estn solo mezclados de diferentes maneras, el KSA se encarga de realizar la primera mezcla en el S-Box, basado en el valor de la semilla dada dentro de l, y esta "semilla" puede ser de 256 bits de largo. Primero, el S-box array es llenado con valores secuenciales desde 0-255. Este array ser llamado simplemente S. Entonces, el otro array de 256-bits es llenado con el valor de la "semilla", repitiendo como sea necesario hasta que todo el array es llenado. Este array ser llamado K, entonces el array S es mezclado usando el siguiente pseudocdigo.

RC5
Es un sistema de cifrado el cual fue diseado por Ronald Rivest en 1994. Este algoritmo sali en sustitucin del esquema RC4, el cual haba sido publicado annimamente en Internet. RC5 es un algoritmo que opera por bloques. Tamao variable de bloques: 32, 64 o 128 bits. Palabra clave entre 0 y 2040 bits. vueltas entre 0 y 255. bloques de 64 bits (2 palabras de 32 bits), en 12 rondas o vueltas y con una clave de 128 bits (16 bytes). RC5 hace uso de rotaciones dependientes. En su estructura contiene algunas operaciones como sumas modulares y operaciones XOR. Adecuado para ser implementado en hardware y software. Utiliza computacin bsica y operaciones que podemos encontrar en un microprocesador. Adaptable a procesadores de diferentes tamaos de palabra; puede utilizar tamao de palabra de 16, 32 y 64 bits. Bajo consumo de memoria; uso en tarjetas inteligentes o dispositivos donde la disponibilidad de espacio sea un factor. Proporciona alta seguridad. Utiliza la clave secreta del usuario para expandir un arreglo S de claves, que contiene 2(r + 1) palabras aleatorias determinada por la clave original.

AES
AES es el nuevo estndar de cifrado simtrico dispuesto por el NIST, despus de un periodo de competencia entre 15 algoritmos sometidos. El 2 de Octubre de 2000 fue designado el algoritmo Rijndael como AES, el estndar reemplaz de TDES, para ser usado en los prximos 20 aos. El algoritmo Rijndael fue elegido por el NIST (National Institute of Standards and Technology), para ser el estndar en los prximos 20 aos y es llamado AES (Advanced Encryption Standar). Rijndael fue elegido despus de pasar un periodo de anlisis durante aproximadamente 3 aos, Rijndael fue elegido como la mejor opcin dentro de 15 candidatos, sus principales caractersticas fueron su fcil diseo, su versatilidad en ser implementado en diferentes dispositivos, as como ser inmune a los ataques conocidos hasta la fecha, soportar bloques de datos de 128bits y claves de 128, 192, y 256 bits. La idea bsica general es tener un estndar que mejore el performance de TDES y sea resist ente a los ataques conocidos. AES (Advanced Encryption Standar) es el nuevo estndar de criptografa simtrica adoptado en el FIPS 197[34](Federal Information Processing Standards). En este reporte estamos comprometidos a poder dar de la manera ms simple la descripcin total del algoritmo, y dar algunas caractersticas de importancia. Desde 1977 que apareci la primera versin del estndar FIPS 46, asume como estndar el algoritmo DES (Data Encryption Standar), y sus posteriores reafirmaciones en 1983, 1988, 1993, y 1999. Casi siempre haba visto opiniones controversiales de DES, sin embargo nunca fue dado un ataque que derivara por completo la clave secreta partiendo de la informacin pblica, pero su corta longitud de clave lo comprometa poco a poco. La ltima reafirmacin de DES en octubre de 1999 realmente fue suplantado por TDES, que es una versin mltiple de DES, designado como TDEA (Triple Data Encryption Algorithm). De hecho, ya se tenan planes de encontrar un reemplazo definitivo a DES. A pesar de un nmero grande de algoritmos que en la poca estaban presentes como: IDEA, RC5, skipjack, 3-way, FEAL, LOKI, SAFER, SHARK,... NIST decidi convocar a un concurso que tuvo como principales objetivos obtener un algoritmo simtrico que garantice su seguridad para los prximos 20 aos a partir del ao 2000. La convocatoria apareci el 2 de enero de 1997, se admitieron 15 algoritmos, en agosto de 1998 en la primera conferencia AES se discutieron los algoritmos sometidos

y posteriormente en la segunda conferencia AES en marzo de 1999, se realizaron los ltimos comentarios. Para que en agosto de 1999 se comunicaran los 5 finalistas: MARS, RC6, Rijndael, Serpent y Twofish. En abril del 2000 se llev a cabo la tercera conferencia AES, recibiendo los ltimos anlisis, para que finalmente el 2 de octubre del ao 2000 se diera a conocer el ganador y se dispuso al Algoritmo RIJNDAEL como AES [46]. Esto llego a ser asumido oficial en noviembre 26 el 2001 en el FIPS 197. A partir de esa fecha hay conferencias especiales para analizar la situacin actual de AES, la ltima se llevada a cabo en mayo del 2004. La descripcin de AES es simple si se cuentan con todos los elementos. Esta consiste en dos partes, la primera en el proceso de cifrado y la segunda en el proceso de generacin de las subclaves, una primera aproximacin se muestra la siguiente figura:

De manera un poco ms detallada el algoritmo AES llega a ser:

Entonces la descripcin de AES consiste de dos partes, en describir el proceso de Cifrado, y el proceso de Generacin de las subclaves o Extensin de la clave K. El bloque de cifrado tiene una longitud de 128 bits, la longitud de la clave K varia de 128, 192 y 256 bits, en cada caso AES tiene 10,12, y 14 rondas respectivamente. El proceso de cifrado consiste esencialmente en la descripcin de las 4 transformaciones bsicas de AES: ByteSub, ShiftRow, MixColumns, y AddRoundKey. Es importante mencionar que el caso de Rijndael las funciones o transformaciones bsicas son ligeramente diferentes en el proceso de descifrado, sin embargo es poco el esfuerzo necesario para poder comprender todo. Los autores del algoritmo escribieron un libro que se ha tomado como referencia oficial donde se describe con mayor profundidad varios aspectos aqu expuestos[46].

Citas Web.

http://www.tierradelazaro.com/public/libros/des.pdf http://www.segu-info.com.ar/criptologia/simetricos.htm http://sistemasumma.com/2010/09/14/algoritmo-de-encriptacion-idea/ http://www.scribd.com/doc/81493725/ALGORITMO-BLOWFISH http://en.wikipedia.org/wiki/RC2 http://tlapixqui.izt.uam.mx/septcol/pags/resumenes/Contrib2_Cripto_S-Estrella.pdf http://es.wikipedia.org/wiki/RC4 http://profesores.fi-b.unam.mx/jaqui/Algoritmo%20RC5.pdf http://www.openboxer.260mb.com/asignaturas/criptografia/CSimetrica/RC5.php http://computacion.cs.cinvestav.mx/~jjangel/aes/AES_v2005_jjaa.pdf