ALGORITMOS CRIPTOGRAFICOS




 CLASIFICACIÓN DE LOS MÉTODOS

 En función de su naturaleza 

Sustitución  : Sustituyen unos símbolos por otros. 

Permutación : Cambian el orden de los simbolos. 

Producto : Aplican 2 o más veces los métodos anteriores, cuantos más métodos se apliquen 
                 más seguridad se tiene. 


Según la clave 
Simétricos o clave privada : La clave de cifrado o descifrado es la misma.

Asimétricos o clave pública : Las claves de cifrado y descifrado  son diferentes, el 
                                             conocimiento de una no implica el conocimiento de la otra. 


Según la clase de cifrado
Cifrado en bloque : Toman el texto en claro, lo dividen en bloques de igual longitud y 
                               cifran cada bloque independientemente. Suelen emplearse bloques 
                               de 64 bits. 

Cifrado en flujo : El texto en claro se cifra bit a bit, cifrándose cada uno con clave 
                          diferente.


 ALGORITMOS DE CLAVE SIMÉTRICA

En el cifrado de la información mediante clave simétrica las dos partes que intervienen 
poseen la misma clave para cifrar y descifrar el mensaje.
 
Existen muchos tipos de cifrado en bloque simétrico con clave secreta como son :
 DES ( Data Encryption Standard ), RC2, GOST, RC4, CAST, SAFER-64 ( Secure 
And Fast Encryption Routine ), BLOWFISH, IDEA ( International Data Encryption 
Algorithm ), etc.


Los modos de operación de los algoritmos simétricos 

Existen cuatro modos de operación definidos para DES (los cuales han sido
 generalizados para cualquier cifrador de bloque). Estos modos fueron estandarizados 
en 1980 por NIST. Se trata de los siguientes: 

oECB (Electronic CodeBook): cifra cada bloque de 64 bits del mensaje en claro uno 
tras otro con la misma clave de 56 bits. Un par de bloques idénticos de mensaje en 
claro producen bloques idénticos de mensaje cifrado.
 
oCBC (Cipher Block Chaining): sobre cada bloque de 64 bits del mensaje en claro 
se ejecuta un OR exclusivo con el bloque previo del mensaje cifrado antes de 
proceder al cifrado con la clave DES. De este modo, el cifrado de cada bloque 
depende del anterior y bloques idénticos de mensaje en claro producen diferentes 
mensajes cifrados. 

oCFB (Cipher FeedBack): el cifrado de un bloque de mensaje en claro procede de 
ejecutar un OR exclusivo del bloque de mensaje en claro con el bloque previo 
cifrado. CFB puede modificarse para trabajar con bloques de longitud inferior a 64 bits. 

oOFB (Output FeedBack): Se generan una serie valores pseudoaleatorios de 64 bits 
( normalmente, tantos como bloques de datos hay ). A cada uno de los bloques de 
mensaje en claro se les aplica un OR exclusivo junto con uno de los valores aleatorios, 
el resultado obtenido son los bloques de mensaje cifrado.

Explicación de varios algoritmos simétricos

Damos una explicación, de los algoritmos más importantes hablando de sus creadores, 
funcionamiento, y situación actual.


 DES

Es el más estudiado y utilizado de los algoritmos de clave simétrica, fue diseñado por 
IBM y utilizado habitualmente desde los años 70. Es un método de cifrado altamente 
resistente frente ataques criptoanalíticos diferenciales. Por desgracia, su tamaño de 
clave (56 bits) la hace vulnerable a ataques de fuerza bruta.

El algoritmo de cifrado de clave secreta DES cifra bloques de información de 64 bits 
con una clave de 56 bits, realmente la clave inicial es de 64 bits, pero los bits menos 
significativos de cada byte se utilizan como bits de paridad, por ello se pueden eliminar 
al no aportar ninguna información adicional, por lo que nos queda la clave de 56 bits.

A los 64 bits del mensaje en claro ( bloque ), se le aplica una permutación definida por 
una tabla para mezclarlos en una fase inicial. A continuación de dividen en dos 
sub-bloques de 32 bits cada uno (L.0,R.0), en estas condiciones el cifrado viene 
definido por:

	Li=Ri-1
                Ri=Li-1 xor f(Ri-1,Ki)

para i=1..16 y f(..) es una función de los 32 bits de Ri-1 y de una clave Ki. Con todo 
ello, al final de la vuelta 16 se aplica la permutación inversa a la inicial  a los 64 bits 
concatenados ( L16,R16), siendo la salida de esta permutación el cifrado del mensaje 
inicial.

Naturalmente si el mensaje a cifrar excede de 64 bits se divide en sub-bloques de 64 
bits ( el último se meten bits de relleno hasta llegar a los 64 bits) y se le aplica a cada 
uno el proceso anterior. El mensaje cifrado ocupa lo mismo que el mensaje en claro.

El algoritmo ha sido descifrado varias veces, incluso se puede construir una máquina 
descodificadora con un coste de alrededor de 250.000 dólares por todo ello, en la 
actualidad ofrece protección contra el pirata informático habitual, pero no contra un 
esfuerzo masivo por parte de un usuario con grandes recursos. En estos momentos 
es un algoritmo débil, que se puede aplicar para codificar datos no muy importantes, 
en un futuro no muy lejano, será totalmente vulnerable para todos. 


Triple-DES (3DES)

Una mejora del algoritmo DES, que siempre había sido muy criticado debido a la 
pequeña longitud de la clave, es Triple-DES. Con este procedimiento, el mensaje 
es cifrado tres veces. Existen varias implementaciones: 

1.DES-EEE3. Se cifra tres veces con una clave diferente cada vez. 
2.DES-EDE3. Primero se cifra, luego se descifra y por último se vuelve a cifrar, 
cada vez con una clave diferente. 
3.DES-EEE2 y DES-EDE2. Similares a los anteriores con la salvedad de que la clave 
usada en el primer y en el último paso coinciden. 

Se estima que las dos primeras implementaciones, con claves diferentes, son las 
más seguras. Si se quiere romper el algoritmo usando la fuerza bruta, la complejidad 
asciende a O(2112) frente a la complejidad del DES básico O(255).


BLOWFISH

Blowfish fue creado por Bruce Scheiner, autor del libro Applied Criptography 
(considerado por muchos como la "biblia" en cuestiones de criptografía). Utiliza 
claves de hasta 448 bits y, hasta el momento, ha resistido con éxito todos los 
ataques. Por ello y por su estructura se le considera uno de los algoritmos más 
seguros, a pesar de lo cual no se utiliza masivamente. Tal vez se deba a la relativa 
juventud del algoritmo. Su autor no ha patentado el método para que pueda ser 
empleado sin limitaciones. 

El autor indicó a la hora de diseñarlo que sus objetivos eran los de conseguir un 
método de cifrado simétrico de bloque rápido, compacto, sencillo y seguro que 
pudiera ser utilizado con una clave de longitud variable.

El cifrado se lleva a cabo mediante 16 vueltas en las que se opera con una función 
sencilla, cada vuelta incluye una permutación en función de la clave y una sustitución 
en función de la clave y de los datos. El resto de operaciones elementales son XOR 
y la suma modular ( módulo 2^32 ). 

Asimismo, en cada vuelta existen cuatro tablas de datos o cajas S con 236 entradas 
cada una. El descifrado es equivalente sin más que aplicar las claves ( K1...K18 ) en 
orden inverso.

De momento es un algoritmo del que nos podemos fiar.


CAST

CAST (Carlisle Adams y Stafford Taverns) tiene estructura similar a la de Blowfish. 
Parece ser un buen algoritmo, aunque tampoco lleva el tiempo suficiente como 
para haber sido atacado hasta la saciedad. De momento, sus posibilidades son 
buenas. Se conocen ataques criptoanalíticos contra la versión de clave 64 bits, 
aunque distan mucho de ser eficaces (requieren 2^17 textos sin cifrar y 2^48 
cálculos diferentes). 

No se conocen ataques contra la versión de 128 bits. Ha sido patentado por Entrust 
Technologies, quienes permiten el uso libre de este algoritmo. 


IDEA

IDEA (International Data Encription Algorithm) ha sido desarrollado por Xuejia Lay y 
James Massey. A pesar de que solamente lleva unos años en uso, es probablemente 
el mejor algoritmo de bloques existente. Utiliza texto en bloques de 64 bits y una clave 
de 128 bits. 

Ha sido diseñado de tal manera que el proceso de encriptado consiste en ocho pasos 
de encriptación que son idénticos excepto en los sub-bloques de la clave utilizados, 
terminando con una transformación de la salida. En cada paso se utilizan tres 
operaciones: suma bit a bit, multiplicación bit a bit y OR exclusivo. 

Se crean para cada paso de encriptación seis sub-bloques de 16 bits de la clave de 
128 bits, además de otros cuatro para la transformación final, con lo cual tenemos 52 
bloques. El proceso para crearlos es el siguiente: la clave de 128 bits es dividida en 
ocho bloques de 16 bits, que serán los ocho primeros sub-bloques. 

La clave es desplazada 25 posiciones a la izquierda, y vuelve a ser dividida en ocho 
bloques, que serán los siguientes ocho bloques. Este proceso se repite hasta obtener 
los 52 bloques.

En el primer paso de encriptación el bloque de texto de 64 bits se divide en cuatro 
bloques de 16 bits, ya que todas las operaciones se harán con números de 16 bits. 
Se comienza combinando los cuatro primeros sub-bloques de la clave con dos de los 
bloques de texto sumándolos bit a bit, y con los otros dos multiplicándolos bit a bit. 

Por último, se realiza el OR exclusivo entre los bloques resultado de las operaciones 
anteriores y otros dos sub-bloques de la clave. Así, al final del primer paso se obtienen 
cuatro bloques que serán la entrada del segundo paso con el orden cambiado 
parcialmente.

Este proceso se repite en cada uno de los siete siguientes pasos utilizando diferentes 
sub-bloques de la clave. Para terminar, los cuatro bloques resultado del octavo paso 
son combinados con los cuatro sub-bloques que quedan sin utilizar sumándolos y 
multiplicándolos bit a bit, obteniéndose finalmente cuatro bloques de 16 bits de texto 
encriptado. En ningún punto del proceso de encriptado se usan contiguamente dos 
operaciones iguales.

El proceso de desencriptación es prácticamente el mismo que el de encriptación, con 
la diferencia de los 52 sub-bloques de la clave son los inversos de los empleados en 
la encriptación respecto de la operación en la que fueron usados, además de utilizarse 
en el orden inverso.

Tendencias :
 	Debido a la previsible retirada de DES, prestigiosos criptógrafos de todo el 
mundo han estado trabajando desde los últimos años de la década de los ochenta 
para encontrar algoritmos, de un lado compatibles con DES (debido al gran número 
de productos basados en DES utilizados en todo el mundo), y de otro, lo 
suficientemente robustos como para sustituirle con garantías.
Los programas actuales que implementan IDEA son tan rápidos como los que 
implementan DES. 
En estos momentos se cree que es resistente al criptoanálisis.


SAFER

SAFER es un algoritmo diseñado por Robert Massey (uno de los creadores de IDEA). 
Tiene claves de hasta 128 bits y, a pesar de algunas debilidades en la primera versión 
y de ciertos ataques, parece un algoritmo seguro. Este programa fue desarrollado para 
la empresa Cylink. 

RC2

RC2 es un cógido protegido bajo secreto comercial (aunque no patentado) por RSA 
Data Security Inc. Existen ataques criptoanalíticos que, aunque requieren de gran 
cantidad de texto cifrado, muestran las vulnerabilidades de RC-2. 

RC-2 es un cifrador de bloque con una longitud de clave variable. Tiene definido los 
mismos modos que DES y, con una clave de 64 bits, su implementación en software 
es dos o tres veces más rápida que la de DES. 

Existen versiones mejoradas, y hoy día RC2 tiende a utilizarse cada vez menos en 
beneficio de su "hermano mayor" RC4.


RC4

RC4 es un intento de reemplazar RC2 por un algoritmo más sólido. También es un 
secreto comercial, aunque (al igual que RC2) su código fuente ha sido publicado en 
grupos de discusión. 

RC-4, al igual que RC-2, tiene una longitud de clave variable. Sin embargo, se trata 
de un cifrador de flujo. 

No se conocen ataques contra él. Forma una parte vital del sistema de cifrado en 
capas SSL, ampliamente utilizado en navegadores de Internet tales como Netscape 
Navigator y Microsoft Internet Explorer. Por desgracia, la versión exportable de RC4 
tiene una clave de solamente 40 bits, lo que lo hace altamente vulnerable a ataques 
de fuerza bruta. La versión EEUU, con clave de 128 bits, es segura. 

RC5

RC5 fue diseñado por Ron Rivest y se encuentra bajo patente de RSA Data Security 
Inc. Es relativamente nuevo, y se conocen ciertos tipos de ataques contra él. 
Asimismo existe un cierto número (pequeño) de claves débiles que no deben utilizarse. 
A pesar de ello, se le considera un sistema seguro. 


COMPARACION DE ALGORITMOS 

Tabla comparativa, de los algoritmos considerados como más importantes: 
                       
	                                 DES     	BLOWFISH	                IDEA
Longitud de la clave	56 bits	Variable hasta 448 bits	128 bits
Número de pasos	             16 vueltas	        16 vueltas	                 8 vueltas más transformación final
Funciones lógicas primitivas	Xor	Xor más suma mod 2^32	Xor más suma mod2^16 más multiplicación                                             mod 2^16+1






ALGORITMOS ASIMETRICOS
FIRMA DIGITAL Y ALGORITMOS HASH


MENU :


SERVICIOS Y MECANISMOS DE SEGURIDAD

SSL

ALGORITMOS ASIMETRICOS

SHTTP

SET

ENLACES
Hosted by www.Geocities.ws

1