Sei sulla pagina 1di 3

Algoritmo de encriptamiento de data estandar (DES)

El algoritmo DES encripta un bloque de 64 bits usando una clave de 64 bits. Las claves actuales contienen 56 bits, los cuales 8 bits son usados como bit de paridad para cada byte. Los mensajes mayores de 64 bits pueden ser encriptados como se muestra a continuacin El algoritmo tiene tres fases: 1) los 64 bits del bloque son permutados, 2) luego, se dan 16 vueltas de una operacin d ica de permutacin aplicados sobre el resultado de la clave y de los datos, y 3) el inverso de la permutacin original es aplicado al resultado. Este procedimiento se puede describir grficamente con la siguiente figura:

el resultado

Figura 3. Algoritmo de encriptamiento DES.

Durante cada vuelta, los bloques de 64 bits son divididos en dos de 32 bits y 48 bits diferentes son seleccionados de la clave de 56 bits. Si se denota estas dos partes como Li y Ri respectivamente, y los 48 bits de la clave como Ki entonces las tres piezas son combinadas durante la ronda. Donde F es la funcin combina la clave con los bits de datos seleccionados es la disyuncin la exclusiva (XOR). La siguiente figura ilustra las operaciones basicas en cada ronda:

Figura 4. Manipulacin cada vuelta del DES.

Se necesita definir la funcin y mostrar como se deriva cada Ki de los 56 bits de la clave. Inicialmente, la clave de 56 bits es permutada. Los bits de paridad son ignorados, reduciendo la clave de 64 a 56 bits (tabla 3). Entonces, para cada ronda, los 56 bits actuales son divididos en dos de 28 bits y a cada parte se le aplica un shift a la izquierda de uno o dos datos, dependiendo de la ronda, tal como se muestra en la tabla 4. Los 56 bits que resultan de este shift son usados como la entrada de la primera ronda.
Posicin de entrada 1 2 Posicin de salida 3 4 5 ... 59 60 61 62 63

8 16 24 56 52 ... 17 25 45 37 29

Tabla 3. Permutacin de la clave DES.

Ronda 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Shift 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Tabla 4. Shifts de la clave DES por ronda.

La funcin combina el resultado de los 48 bits de la clave para la ronda i (Ki) con el lado derecho del bloque de datos de la ronda anterior ( Ri-1 ). Se llama a Ki como K y a Ri-1 como R para simplificar la notacin Primero, la funcin expande R de 32 bits a 48 bits para que pueda ser combinada con los 48 bits de K. Para hacer esto se pican R en trozos de 4 bits y se expande a 6 bits tomando el bit m a la izquierda y el m a la derecha adyacentes al bloque de 4 bits. Luego, los 48 bits de K se dividen en trozos de 6 bits y a cada trozo se le aplica el XOR con el correspondiente trozo resultante de la expansin de R. Finalmente, a cada resultado de valores de 6 bits se reduce a un trozo de 4 bits a travs de una sustitucin (sustitucin ox). Actualmente hay 8 diferentes sustituciones, una para cada trozo de 6 bits. Una caracteriistica agradable de DES es que el encriptamiento y desencriptamiento trabajan exactamente igual. La diferencia es que las claves son aplicadas en orden inverso. La descripcin anterior esta limitada a bloques de datos de 64 bits, Para encriptar un mensaje muy largo usando DES, se aplica tecnicamente la tecnica de "cipher block chaining (CBC)". La idea de CBC es simple: al bloque ciphertext i, se le

aplica el XOR con el bloque plaintext (i + 1) antes de correrla a travs del DES. Un vector inicializado (IV) es usado en lugar del ciphertext, no existente para el bloque 0. Este vector IV, el cual es un numero generado aleatoriamente en el procedimiento, es enviado con el mensaje para que el primer bloque del plaintext pueda ser recuperado. El trabajo de desencriptamiento es realizado en orden inverso, comenzando con el ultimo bloque y movindose hacia el principio del mensaje. Esta tecnica es mostrada en la siguiente figura:

Figura 5. Tcnica CBC para mensajes de gran longitud.

No hay una prueba matemtica que indique que DES es seguro. La seguridad es lograda a travez de la aplicacin usando dos tecnicas: confusin y difusin Solo existe una vez para romper el algoritmo, esta es hacer una busqueda exhaustiva de la clave. Existen 255 posibilidades = 3.6 x 1016 claves. Sobre una estacin de trabajo Alpha a 175 MHz es posible realizar un intento de desencriptar en 4 microsegundos, significa que tomaria 1.4 x 1017 microsegundos romper la clave (aproximadamente 4500 alphas). Si se colocan 9000 Alphas a correr en paralelo, la busqueda tomaria 6 meses. La cantidad de tiempo tiene que ser cuidadosamente considerado, tomando en cuenta que la velocidad de las computadoras se duplica cada 18 meses. Por esta razn muchas aplicaciones estan comenzando a usar triple DES, esto es encriptar la data tres veces. Esto se puede hacer con tres claves separadas o con dos: la primera es usada, luego la segunda y finalmente la primera es usada nuevamente.

http://www.ldc.usb.ve/~redes/Temas/Tema43/des.html

Potrebbero piacerti anche