Subido por Jonathan Olmedo

TAREA 2 OG100617

Anuncio
FACULTAD DE INGENIERIA Y SISTEMAS
Tema: Investigar el algoritmo de RC4
Alumno: Jonathan Fabricio Olmedo Galindo
Carrera: Ingenieria en Ciencias de la Computación
Maestro: Elmer Elias Chanchan
Materia: Criptografía y seguridad de redes
Fecha: 24-03-2021
Introducción
Dentro de la criptografía RC4 o ARC4 es el sistema de cifrado de flujo Stream cipher
más utilizado y se usa en algunos de los protocolos más populares como Transport
Layer Security (TLS/SSL) (para proteger el tráfico de Internet) y Wired Equivalent
Privacy (WEP) (para añadir seguridad en las redes inalámbricas).
RC4 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. No está
recomendada su aplicación en proyectos nuevos; sin embargo, algunos sistemas
basados en RC4 son lo suficientemente seguros para un uso común.
Historia algoritmo de RC4
El algoritmo de criptografía RC4 fue diseñado por Ronald Rivest de la RSA Security
en el año 1987, su nombre completo es Rivest Cipher 4, teniendo el acrónimo RC
un significado alternativo al de Ron's Code utilizado para los algoritmos de cifrado
RC2, RC5 y RC6.
Inicialmente el algoritmo era un secreto registrado, pero en septiembre de 1994 una
descripción del algoritmo fue distribuida anónimamente en una lista de correo de
Cypherpunks. Enseguida pasó al grupo de noticias sci.crypt y de allí a numerosos
sitios de Internet, dejando así de ser secreto; sin embargo RC4 aún es una marca
registrada.
Actualmente la implementación no oficial de RC4 es legal, pero no puede utilizarse
bajo el nombre de RC4. Por este motivo, y con el fin de evitar problemas legales a
raíz de la marca registrada, a menudo podemos verlo nombrado como ARCFOUR,
ARC4 (Alleged-RC4). RSA Security nunca ha liberado de manera oficial el algoritmo
de su RC4.
RC4 es parte de los protocolos de cifrado más comunes como WEP, TLS y WPA
para tarjetas inalámbricas. Los factores principales para el éxito de RC4 y su
aplicación en tan amplio rango de aplicaciones han sido su increíble velocidad y su
simplicidad. La implementación eficiente en software y en hardware fueron muy
simples de desarrollar.
RC4 es un protocolo sorprendentemente simple que emplea 2 algoritmos: 1-Key
Scheduling Algorithm (KSA) y 2- Pseudo-Random Generation Algorithm (PRGA),
cada uno de los cuales usa un estado interno secreto: 8-por-8 S-box, que es un
arreglo con los 256 posibles bytes permutados y dos índices de 8 bits ("i" y "j" en el
código siguiente). El KSA genera la permutación en el S-Box basándose en una clave de
longitud variable ("keylength", entre 40 y 2048 bits).
Cifrado y descifrado (explicación paso a paso)
El algoritmo es muy simple, este consiste en cifrar un mensaje mediante una
operación xor byte a byte entre éste y una secuencia de clave cuyos bytes van
cambiando dinámicamente durante la cifra.
Para generar dicha secuencia cifrante, se cuenta con dos rutinas conocidas
como KSA (Key Scheduling Algorithm) y PRGA (Pseudo-Random Generation
Algorithm).
1. Inicialice el vector de estado S (256 bytes, utilizado como semilla 1 para la
generación de flujo de claves). En orden ascendente, asigne 0,1,2,3,4,5,6 ...,
254,255 a cada byte
2. Clave inicial (ingresada por el usuario), cualquier longitud. Si la longitud de
entrada es inferior a 256 bytes, rotará hasta que esté llena. Por ejemplo, la
clave de entrada es 1,2,3,4,5, luego complete 1,2,3,4,5,1,2,3,4,5 1,2,3,4,5
Se obtiene un vector T de 256 bytes del proceso de rotación anterior (utilizado
como semilla 2 para la generación de flujo de claves)
3. Iniciar la operación de reemplazo del vector de estado S (usado para
interrumpir la semilla inicial 1)
Sigue las reglas a continuación
Desde el byte cero, ejecute 256 veces para asegurarse de que se procesa
cada byte
El vector de estado S procesado de esta manera es casi aleatorio.
4. Finalmente, la generación y el cifrado del flujo de claves.
Supongamos que mi número de bytes de texto plano es datalength = 1024
bytes (por supuesto, puede ser cualquier número de bytes)
i=0;
j=0;
mientras que (datalength -) {// es equivalente a 1024 ejecuciones, la
secuencia de claves generada de esta manera también es de 1024 bytes
El descifrado es como se escribió anteriormente, y XOR dos veces es el texto
original, por lo que siempre que la secuencia de claves se reanude, XOR obtendrá
el texto original.
Bibliografía
Pasos del principio de cifrado RC4. (2020). programador clic.
https://programmerclick.com/article/2081772559/
Wikipedia contributors. (2021, 4 marzo). RC4. Wikipedia.
https://en.wikipedia.org/wiki/RC4
Chen, J., & Miyaji, A. (2011). Generalized Analysis on Key Collisions of Stream
Ciphers RC4.
Fluhrer, S., Mantin, I., & Shamir, A. (2002). Attacks on RC4 and WEP.
Mantin, I. (2001). Analysis of the stream ciphers RC4.
Matsui, M. (2009). Key Collisions of the RC4 Stream Cipher.
Descargar