Algoritmo RC4 (Encriptado de Claves WEP)

Publicado por D3M0N, 08 de Abril de 2011, 10:05:43 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

D3M0N

bien ultimamente he esta leyendo y poniandome al tanto de varios algoritmos, tanto de cifrados/encriptados tanto de WEP como WPA y WPA2 y bueno, hoy les voy a hablar un poco sobre este algoritmo llamado RC4 o ARC4. este algoritmo se usa en algunos de los protocolos como Transport Layer Security (TLS/SSL) (para proteger el trí¡fico de Internet [ :o ;D]) y Wired Equivalent Privacy (WEP) (para aíñadir seguridad en las redes inalí¡mbricas [ :o ;D]).

Cita de: wikipediaRC4 fue excluido enseguida de los estí¡ndares de alta seguridad por los criptígrafos y algunos modos de usar el algoritmo de criptografí­a RC4 lo han llevado a ser un sistema de criptografí­a muy inseguro, incluyendo su uso WEP.

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 nímeros en el cual ambos son ínicos en cuanto a rango y su valor va desde 0 hasta 255. Todos los nímeros de 0 a 255 existen dentro del array, pero estí¡n 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 pseudocídigo.

j=0;
for i = 0 to 255
{
   j = (j+S[i] + K[i]) mod 256;
   intercambia S[i] and S[j];
}


Una vez que eso es hecho, la S-box es intercambiada basí¡ndose en el valor de la "semilla". Esa es la "Key" programada para el algoritmo, algo sencillo.

Ahora cuando el keystream data es necesitado, el Pseudo-Random Generation Algorithm (PRGA) es usado. Este algoritmo tiene 2 contadores, el i y la j, en el cual ambos son inicializados en 0 para comenzar. Despuís de eso, cada bit de keystream data es usado en el siguiente Pseudo-Code:

i = (i + 1) mod 256;
j = (j + S[i]) mod 256;
intercambia S[i] and S[j];
t = (S[i] + S[j] mod 256;
Exponer valor de S[t];


El valor expuesto del byte de S[t] es el primer byte del keystream. Este algoritmo es repetido para conseguir bytes adicionales de keystream. RC4 es simplemente suficiente, que puede ser fí¡cilmente memorizado e implementado en el aire, y puede llegar a ser un poco "mí¡s" seguro si es usado apropiadamente, en fin, hay algunos problemas con la forma que RC4 es usado con el cifrado WEP en Wi-Fi.