RC4


En criptografía , RC4 (Rivest Cipher 4 también conocido como ARC4 o ARCFOUR que significa Supuesto RC4, ver más abajo) es un cifrado de flujo . Si bien es notable por su simplicidad y velocidad en el software, se han descubierto múltiples vulnerabilidades en RC4, lo que lo vuelve inseguro. [3] [4] Es especialmente vulnerable cuando no se descarta el comienzo del flujo de claves de salida , o cuando se utilizan claves no aleatorias o relacionadas. Los usos particularmente problemáticos de RC4 han llevado a protocolos muy inseguros como WEP . [5]

A partir de 2015 , se especula que algunas agencias criptológicas estatales pueden tener la capacidad de romper RC4 cuando se usan en el protocolo TLS . [6] IETF ha publicado RFC 7465 para prohibir el uso de RC4 en TLS; [3] Mozilla y Microsoft han emitido recomendaciones similares. [7] [8]

RC4 fue diseñado por Ron Rivest de RSA Security en 1987. Si bien se denomina oficialmente "Rivest Cipher 4", el acrónimo RC se entiende alternativamente como "Ron's Code" [9] (ver también RC2 , RC5 y RC6 ).

RC4 fue inicialmente un secreto comercial , pero en septiembre de 1994 se publicó una descripción anónima en la lista de correo de Cypherpunks . [10] Pronto se publicó en el grupo de noticias sci.crypt , donde Bob Jenkins lo analizó a los pocos días . [11] Desde allí se extendió a muchos sitios en Internet. Se confirmó que el código filtrado era genuino, ya que se encontró que su salida coincidía con la del software propietario que utiliza RC4 con licencia. Debido a que el algoritmo es conocido, ya no es un secreto comercial. El nombre RC4 es una marca comercial, por lo que a menudo se hace referencia a RC4 como ARCFOUR o ARC4 (lo que significa supuesto RC4) [12] para evitar problemas de marca registrada. RSA Security nunca ha lanzado oficialmente el algoritmo; Sin embargo, Rivest se vinculó al artículo de Wikipedia en inglés sobre RC4 en sus propias notas de curso en 2008 [13] y confirmó la historia de RC4 y su código en un artículo de 2014 suyo. [14]

RC4 se convirtió en parte de algunos protocolos y estándares de cifrado de uso común, como WEP en 1997 y WPA en 2003/2004 para tarjetas inalámbricas; y SSL en 1995 y su sucesor TLS en 1999, hasta que fue prohibido para todas las versiones de TLS por RFC 7465 en 2015, debido a los ataques RC4 que debilitan o rompen el RC4 utilizado en SSL/TLS. Los principales factores del éxito de RC4 en una gama tan amplia de aplicaciones han sido su velocidad y simplicidad: las implementaciones eficientes tanto en software como en hardware fueron muy fáciles de desarrollar.

RC4 genera un flujo de bits pseudoaleatorios (un flujo de claves ). Al igual que con cualquier cifrado de flujo, estos se pueden usar para el cifrado combinándolo con el texto sin formato utilizando bit-wise exclusivo-or ; el descifrado se realiza de la misma manera (ya que exclusivo-o con datos dados es una involución ). Esto es similar al bloc de notas de un solo uso, excepto que se utilizan bits pseudoaleatorios generados , en lugar de un flujo preparado.


La etapa de búsqueda de RC4. El byte de salida se selecciona buscando los valores de S[i] y S[j] , sumándolos módulo 256 y luego usando la suma como un índice en S ; S(S[i] + S[j]) se utiliza como un byte del flujo de claves, K.