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.