Está en la página 1de 19

2013

Instituto Tecnolgico de Iztapalapa II Jess Oblea Acosta

[ENCRIPTACIN]
DES, TDES, IDEA, BLOOWFISH, RC2,RC4,RC5, AES

DES DATA ENCRYPTION STANDARD Data Encryption Standard (DES) es un algoritmo de cifrado, es decir, un mtodo para cifrar informacin, escogido como un estndar FIPS en los Estados Unidos en 1976, y cuyo uso se ha propagado ampliamente por todo el mundo. El algoritmo fue controvertido al principio, con algunos elementos de diseo clasificados, una longitud de clave relativamente corta, y las continuas sospechas sobre la existencia de alguna puerta trasera para la National Security Agency (NSA). Posteriormente DES fue sometido a un intenso anlisis acadmico y motiv el concepto moderno del cifrado por bloques y su criptoanlisis. Hoy en da, DES se considera inseguro para muchas aplicaciones. Esto se debe principalmente a que el tamao de clave de 56 bits es corto; las claves de DES se han roto en menos de 24 horas. Existen tambin resultados analticos que demuestran debilidades tericas en su cifrado, aunque son inviables en la prctica. Se cree que el algoritmo es seguro en la prctica en su variante de Triple DES, aunque existan ataques tericos. Desde hace algunos aos, el algoritmo ha sido sustituido por el nuevo AES (Advanced Encryption Standard). DESCRIPCIN DEL CIFRADO. Estrictamente hablando, AES no es precisamente Rijndael (aunque en la prctica se los llama de manera indistinta) ya que Rijndael permite un mayor rango de tamao de bloques y longitud de claves; AES tiene un tamao de bloque fijo de 128 bits y tamaos de llave de 128, 192 o 256 bits, mientras que Rijndael puede ser especificado por una clave que sea mltiplo de 32 bits, con un mnimo de 128 bits y un mximo de 256 bits. La mayora de los clculos del algoritmo AES se hacen en un campo finito determinado. AES opera en una matriz de 44 bytes, llamada state (algunas versiones de Rijndael con un tamao de bloque mayor tienen columnas adicionales en el state). PSEUDOCDIGO

1.

Expansin de la clave usando el esquema de claves de Rijndael. Etapa inicial: AddRoundKey Rondas:

1. SubBytes en este paso se realiza una sustitucin no lineal donde cada byte es reemplazado con otro de acuerdo a una tabla de bsqueda. 2. ShiftRows en este paso se realiza una transposicin donde cada fila del state es rotada de manera cclica un nmero determinado de veces. 3. MixColumns operacin de mezclado que opera en las columnas del state, combinando los cuatro bytes en cada columna usando una transformacin lineal. 4. AddRoundKey cada byte del state es combinado con la clave round; cada clave round se deriva de la clave de cifrado usando una iteracin de la clave. Etapa final: 1. SubBytes 2. ShiftRows 3. AddRoundKey

Etapa SubBytes- Substitucin de bits En la etapa SubBytes, cada byte en la matriz es actualizado usando la caja-S de Rijndael de 8 bits. Esta operacin provee la no linealidad en el cifrado. La caja-S utilizada proviene de la funcin inversa alrededor del GF(28), conocido por tener grandes propiedades de no linealidad. Para evitar ataques basados en simples propiedades algebraicas, la caja-S se construye por la combinacin de la funcin inversa con una transformacin afn inversible. La caja-S tambin se elige para evitar puntos estables (y es por lo tanto un derangement), y tambin cualesquiera puntos estables opuestos. La caja-S es descrita en mayor profundidad en el artculo caja-S de Rijndael.

Etapa ShiftRows-Desplazar filas El paso ShiftRows opera en las filas del state; rota de manera cclica los bytes en cada fila por un determinado offset. En AES, la primera fila queda en la misma posicin. Cada byte de la segunda fila es rotado una posicin a la izquierda. De manera similar, la tercera y cuarta filas son rotadas por los offsets de dos y tres respectivamente. De esta manera, cada columna del state resultante del paso ShiftRows est compuesta por bytes de cada columna del state inicial. (variantes de Rijndael con mayor tamao de bloque tienen offsets distintos).

Etapa MixColumns- Mezclar columnas. En el paso MixColumns, los cuatro bytes de cada columna del state se combinan usando una transformacin lineal inversible. La funcin MixColumns toma cuatro bytes como entrada y devuelve cuatro bytes, donde cada byte de entrada influye todas las salidas de cuatro bytes. Junto con ShiftRows, MixColumns implica difusin en el cifrado. Cada columna se trata como un polinomio GF(28) y luego se multiplica el mdulo x^4+1 con un polinomio fijo c(x). El paso MixColumns puede verse como una multiplicacin matricial en el campo finito de Rijndael.

Etapa AddRoundKey- Clculo de las subclaves. En el paso AddRoundKey, la subclave se combina con el state. En cada ronda se obtiene una subclave de la clave principal, usando la iteracin de la clave; cada subclave es del mismo tamao que el state. La subclave se agrega combinando cada byte del state con el correspondiente byte de la subclave usando XOR.

Optimizacin del cifrado. En sistemas de 32 bits o de mayor tamao de palabra, es posible acelerar la ejecucin de este algoritmo mediante la conversin de las transformaciones SubBytes, ShiftRows y MixColumn en tablas. Se tienen cuatro tablas de 256 entradas de 32 bits que utilizan un total de 4 kilobytes (4096 bytes) de memoria, un Kb cada tabla. De esta manera, una ronda del algoritmo consiste en 16 bsquedas en una tabla seguida de 16 operaciones XOR de 32 bits en el paso AddRoundKey. Si el tamao de 4 kilobytes de la tabla es demasiado grande para una plataforma determinada, la operacin de bsqueda en la tabla se puede realizar mediante una sola tabla de 256 entradas de 32 bits mediante el uso de rotaciones circulares. TDES En criptografa el Triple DES se llama algoritmo que hace triple cifrado del DES. Este tambin es muy conocido como TDES o 3DES y fue desarrollado por IBM en 1978. Cuando se descubri que una clave de 56 bits no era suficiente para evitar un ataque de fuerza bruta, TDES fue elegido como forma de agrandar el largo de la clave sin necesidad de cambiar de algoritmo de cifrado. Este mtodo de cifrado es inmune al ataque por encuentro a medio camino, doblando la longitud efectiva de la clave, pero en cambio es preciso triplicar el numero de operaciones de cifrado, haciendo este mtodo de cifrado muchsimo mas seguro que el DES. La clave utilizada por Triple DES es de 128 bits (112 de clave y 16 de paridad), es decir, dos claves de 64 bits (56 de clave y 8 de paridad) de los utilizados en DES. El motivo de utilizar este de tipo de clave es la compatibilidad con DES. Si la clave utilizada es el conjunto de dos claves DES iguales el resultado ser el mismo para DES y para Triple DES. Otra forma de utilizar Triple DES es con una clave de 192 bits (168 bits de clave y 24 bits de paridad). En este caso se cifrar primero con k1, a continuacin con k2 y finalmente con k3. Para ser compatible con DES es necesario que k1=k2=k3 El TDES utiliza 48 rondas en sus clculos, lo cual lo hace muy resistente al criptoanlisis diferencial. Sin embargo, debido a que TDES realiza un trabajo extra, hay una disminucin del rendimiento pesada. El TDES permite aumentar de manera significativa la seguridad del DES, pero posee la desventaja de requerir ms recursos para el cifrado y descifrado. Por lo general, se reconocen diversos tipos o modos de cifrado del Triple DES, y el modo escogido dicta el nmero de claves usadas y que funciones son llevadas a cabo, estos modos son los siguientes:

DES-EEE3: Cifrado triple DES con 3 claves diferentes, es decir, la data se encriptada, encriptada y encriptada. DES-EDE3: Una clave diferente para cada una de las operaciones de triple DES (cifrado, descifrado, cifrado), por tanto la data es encriptada, descencriptada y encriptada. DES-EEE2: Lo mismo que DES-EEE3, pero usa solo dos claves, y el primer y tercer proceso de encriptacin usan la misma clave. Esto quiere decir, que la segunda operacin utiliza una clave diferente. DES-EDE2: Lo mismo que DES-EDE3, pero usa solo dos claves, y el primer y el tercer proceso de encriptacin usan la misma clave. Esto quiere decir, que la segunda operacin utiliza una clave diferente.

EDE (Encriptar, Desencriptar y Encriptar) puede parecer un poco extrao al principio, surgen preguntas como: Cunta proteccin podra proporcionarse mediante el cifrado de algo, descifrarlo y el cifrado de nuevo?, bueno en realidad, la parte del descifrado se descifra con una clave diferente. Cuando los datos los datos se cifran con una clave simtrica y luego se descifra con una clave simtrica diferente, se vuelve ms confusa. As que en realidad los datos no son actualmente descifrados en esta operacin intermedia. Ellos solos se ejecutan a travs de un proceso de descifrado con una clave diferente. ALGORITMO DES DES es el algoritmo prototipo del cifrado por bloques, un algoritmo que toma un texto en claro de una longitud fija de bits y lo transforma mediante una serie de operaciones bsicas en otro texto cifrado de la misma longitud. En el caso de DES el tamao del bloque es de 64 bits. DES utiliza tambin una clave criptogrfica para modificar la transformacin, de modo que el descifrado slo puede ser realizado por aquellos que conozcan la clave concreta utilizada en el cifrado.

Estructura bsica: La estructura bsica del algoritmo aparece representada en la siguiente figura:

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 Orexclusiva 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. Ya sabiendo como funciona el DES, vemos que para aplicar el TDES es simplemente realizarlo el DES tres veces, dependiendo en el modo en que se desee. IDEA En el mbito de la criptografa, el algoritmo de cifrado IDEA o el algoritmo de encripcin internacional de datos es un cifrado de bloques del tipo simtrico. Se ha diseado por primera vez por James Massey de ETH Zurich y Xuejia Lai. Con una ligera mejora en el sistema de cifrado de cifrado estndar PES o propuesta anterior, IDEA fue trado por primera vez sobre el ao 1991, que se proyecta como un sustituto para el DES o Data Encryption Standard. Fue creado en el marco de un acuerdo de investigacin de la Fundacin Hasler, que fue adquirida por Ascom-Tech AG. Est patentado en Alemania,

Austria, Espaa, Alemania, Suecia, Italia, Reino Unido, EE.UU. y Suiza, entre otros pases, y el nombre de IDEA tambin es una marca registrada. El algoritmo IDEA es muy interesante. Se compone de un cierto nmero de medidas que, sobre todo, hacer que parezca que tiene una funcin hash irreversible en lugar de un cifrado de bloques. Adems, es fascinante, ya que evita por completo el empleo de las tablas de bsqueda. IDEA utiliza 52 sub teclas, cada uno de los cuales es 16 bits de largo. Dos bits se emplean durante cada ronda adecuada, mientras que cuatro se utilizan antes de cada ronda y despus de la finalizacin de la ltima. Cuenta con un total de ocho rondas. El bloque de texto sin formato de IDEA se divide en cuatro 16/4 bits de largo separadas. Tres funciones se emplean en IDEA para reunir a dos valores de 16 bits para crear un resultado de 16 bits, con un total, XOR y multiplicacin.

Para el descifrado de sonido codificado con IDEA, la conexin de la mquina receptora necesita para identificar una clave de IDEA a juego, la frase clave de los cuales pueden ser incluso los 255 caracteres de longitud. Cifrado IDEA es considerablemente ms rpido y por lo general piensa que es significativamente ms seguro que cualquier cifrado DES. Dependiendo de la rapidez de una CPU, cualquier permutacin de DES, IDEA y el cifrado de archivo de claves se puede activar con xito.

Para medir la potencia de IDEA contra criptoanlisis diferencial, los diseadores han realizado repite y anlisis profundos y la comunidad cientfica ha trado bajo numerosos ataques en el momento de la prueba rigurosa. Se encontr que IDEA es de hecho seguro y protegido en la mayora de supuestos. Esto se debe a que no hay eslabones dbiles sern de los tipos algebraicos o lineales se han encontrado, en IDEA. De acuerdo con investigadores de este mtodo de cifrado, IDEA fue uno de los algoritmos ms seguros y ms rpidos que el pblico poda utilizar. Segn algunos, no se puede dividir por posiblemente no sea la fuerza bruta nada. IDEA opera en 64 bits bloques con una clave de 128 bits clave, y se compone de una serie de ocho transformaciones idnticas (una vuelta, ver la figura) y una transformacin de salida (la media caa ). Los procesos para el cifrado y el descifrado son similares. IDEA deriva gran parte de su seguridad por las intercaladas operaciones de diferentes grupos modular la suma y la multiplicacin y bit a bit OR exclusivo (XOR) - que son algebraicamente "incompatible" en algn sentido. Con ms detalle, estos operadores, que todo trato con cantidades de 16 bits, son:

Bit a bit OR exclusivo (indicado con un crculo azul ms ). La adicin mdulo 2(indicado con un punto a favor en caja verde ). Multiplicacin mdulo 2 1, donde la palabra de todo ceros (0x0000) se interpreta como 2 (indicado por un crculo rojo punto ). Despus de las ocho rondas viene una final "media vuelta", la transformacin de salida se muestra a continuacin:

BLOWFISH En criptografa, Blowfish es un codificador de bloques simtricos, diseado por Bruce Schneier en 1993 e incluido en un gran nmero de conjuntos de codificadores y productos de cifrado. Mientras que ningn analizador de cifrados de Blowfish efectivo ha sido encontrado hoy en da, se ha dado ms atencin de la decodificacin de bloques con bloques ms grandes, como AES y Twofish.[cita requerida]

Schneier dise Blowfish como un algoritmo de uso general, que intentaba reemplazar al antiguo DES y evitar los problemas asociados con otros algoritmos. Al mismo tiempo, muchos otros diseos eran propiedad privada, patentados o los guardaba el gobierno. Schneier declar Blowfish no tiene patente, y as se quedar en los dems continentes. El algoritmo est a disposicin del pblico, y puede ser usado libremente por cualquiera . El Algoritmo Blowfish usa bloques de 64 bits y claves que van desde los 32 bits hasta 448 bits. Es un codificador de 16 rondas Feistel y usa llaves que dependen de las Cajas-S. Tiene una estructura similar a CAST-128, el cual usa Cajas-S fijas.

El diagrama muestra la accin de Blowfish. Cada lnea representa 32 bits. El algoritmo guarda 2 arrays de subclaves: El array P de 18 entradas y 4 cajas-S de 256 entradas. Una

entrada del array P es usada cada ronda, despus de la ronda final, a cada mitad del bloque de datos se le aplica un XOR con uno de las 2 entradas del array P que no han sido utilizadas.

La funcin divide las entrada de 32 bits en 4 bloques de 8 bits, y usa los bloques como entradas para las cajas-S. Las salidas deben estar en mdulo 232 y se les aplica un ok XOR para producir la salida final de 32 bits.

Debido a que Blowfish est en la red Feistel, puede ser invertido aplicando un XOR entre P17 y P18 al bloque texto codificado, y as sucesivamente se usan las P-entradas en orden reversivo.

La generacin de claves comienza inicializando los P-arrays y las cajas-S con los valores derivados de los dgitos hexadecimales de pi, los cuales no contienen patrones obvios. A la clave secreta se le aplica un XOR con las P-entradas en orden (ciclando la clave si es necesario). Un bloque de 64 bits de puros ceros es cifrado con el algoritmo como se indica. El texto codificado resultante reemplaza a P1 y P2. Entonces el texto codificado es cifrado de nuevo con la nuevas subclaves, P3 y P4 son reemplazados por el nuevo texto codificado. Esto contina, reemplazando todas las entradas del P-array y todas las entradas de las cajas-S. En total, el algoritmo de cifrado Blowfish correr 521 veces para generar todas las subclaves, cerca de 4KB de datos son procesados. 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 aprobado 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 textos planos escogidos (Kelsey et al., 1997).

RC4 En criptografa , RC4 (tambin conocido como ARC4 o ARCFOUR significado Presunta RC4, ver ms abajo) es el software ms utilizado cifrado de flujo y se utiliza en los protocolos populares como Transport Layer Security (TLS) (para proteger el trfico de Internet) y WEP (a asegurar las redes inalmbricas). Mientras notable por su simplicidad y la velocidad en el software, RC4 tiene puntos dbiles que argumentan en contra de su uso en los nuevos sistemas. Es especialmente vulnerables cuando el principio de la salida de cadenas de claves no se descarta, o cuando se utilizan las teclas no aleatorias o relacionados, algunos formas de utilizar RC4 pueden conducir a muy inseguros sistemas criptogrficos, tales como WEP . A partir de 2013, se especula que algunas agencias cryptologic estatales pueden poseer la capacidad de romper RC4 incluso cuando se utiliza el protocolo TLS. Algoritmo de llave de programacin (KSA). La clave de programacin algoritmo se utiliza para inicializar la permutacin de la matriz de "S". "KeyLength" se define como el nmero de bytes de la clave y puede estar en el intervalo 1 KeyLength 256, tpicamente entre 5 y 16, que corresponde a una longitud de clave de 40 a 128 bits. En primer lugar, la matriz de "S" se inicializa a la permutacin identidad . S se procesa a continuacin para 256 iteraciones de una manera similar a la PRGA principal, pero tambin se mezcla en bytes de la clave al mismo tiempo.

Algoritmo de generacin de pseudo-aleatorio (PRGA). Por lo que se necesitan muchas iteraciones, el PRGA modifica el estado y emite un byte de la cadena de claves. En cada iteracin, los incrementos PRGA i , busca el i simo elemento de S, S [ i ], y aade que a j , intercambia los valores de S [ i ] y S [ j ] y, a continuacin, utiliza la suma S [ i ] + S [ j ] (mdulo 256) como un ndice para buscar un tercer elemento de S, (el valor de K de cadenas de claves a continuacin) que se XOR con el siguiente byte del mensaje para producir el siguiente byte de cualquiera de texto cifrado o texto plano. Cada elemento de S se intercambia con otro elemento, al menos, una vez cada 256 iteraciones.

RC5 A diferencia de muchos esquemas, RC5 tiene una variable de tamao de bloque (32, 64 o 128 bits de ), tamao de la clave (0 a 2040 bits) y el nmero de rondas (0 a 255). La eleccin inicial sugerido de parmetros eran de un tamao de bloque de 64 bits, una clave de 128 bits y 12 rondas. Una caracterstica clave de RC5 es el uso de rotaciones dependientes de los datos, uno de los objetivos de RC5 era para pedir al estudio y evaluacin de tales operaciones como una primitiva criptogrfica . RC5 tambin se compone de una serie de mdulos aadidos y la exclusiva OR (XOR) . La estructura general del algoritmo es un Feistel red-como. Las rutinas de cifrado y descifrado pueden ser especificadas en unas pocas lneas de cdigo. El horario clave, sin embargo, es ms compleja, la ampliacin de la clave mediante un proceso esencialmente funcin unidireccional con las expansiones binarias de ambos e y el nmero ureo como fuentes de " nada por mis nmeros manga ". La simplicidad tentadora del algoritmo junto con la novedad de las rotaciones dependientes de los datos ha hecho RC5 un objeto de estudio atractivo para los criptoanalistas. Los RC5 se denota bsicamente como RC5-w/r/b donde w = tamao de la palabra en bits, r = nmero de rondas, b = nmero de bytes de 8 bits en la clave.

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.

Planificacin de claves. 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. Definicin de las constantes. Las dos constantes basadas en nmeros irracionales trascendentes: Pw = 0dd((e-2)2w) con la base de los logaritmos naturales e = 2.71828182, y Qw = 0dd(( - 1)2w) basada en el nmero ureo, = 1.61180339.

Se realizan los siguientes pasos. La clave original se convierte de bytes a palabras. Esto se consigue al tomar la clave K [0...b-1] y colocarla en el arreglo L [0]. La operacin se realiza de manera natural utilizando bytes de la clave para llenar cada palabra sucesiva en L, del byte menos significativo al ms significativo; los bytes faltantes para completar L se rellenan con ceros. Se obtiene un patrn de bits pseudoaleatorios para iniciar S, utilizando una progresin aritmtica con perodo 2w determinada por las constantes Pw y Qw S [0] Pw S [i] S [i-1] + Qw, variando i desde 1 hasta 2r + 1. Mezclado de la clave secreta. En este paso se mezcla la clave del usuario, utilizando los arreglos S y L. el pseudocdigo siguiente establece el proceso de mezcla:

Cifrado del mensaje en claro Se combina cada bloque con una clave: A A + S[ 0] y B B + S [1]. Esta es la transformacin inicial. Para cada ronda i desde 1 hasta r se aplican las siguientes operaciones: A ((A B) << B) + S [2 *i] B ((B A) <<A) + S [2*i +1]

También podría gustarte